<?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>229549</bug_id>
          
          <creation_ts>2021-08-26 05:12:32 -0700</creation_ts>
          <short_desc>Resync WPT webrtc tests from upstream</short_desc>
          <delta_ts>2021-09-20 05:04:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>clopez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1787543</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-26 05:12:32 -0700</bug_when>
    <thetext>Resync WPT webrtc tests from upstream</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787544</commentid>
    <comment_count>1</comment_count>
      <attachid>436500</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-26 05:13:43 -0700</bug_when>
    <thetext>Created attachment 436500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789672</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-02 05:16:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/82670236&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793638</commentid>
    <comment_count>3</comment_count>
      <attachid>438225</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-15 01:51:45 -0700</bug_when>
    <thetext>Created attachment 438225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793713</commentid>
    <comment_count>4</comment_count>
      <attachid>438246</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-15 08:35:11 -0700</bug_when>
    <thetext>Created attachment 438246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794168</commentid>
    <comment_count>5</comment_count>
      <attachid>438246</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-09-16 12:42:50 -0700</bug_when>
    <thetext>Comment on attachment 438246
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794391</commentid>
    <comment_count>6</comment_count>
      <attachid>438460</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-17 04:40:58 -0700</bug_when>
    <thetext>Created attachment 438460
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794412</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-17 06:24:24 -0700</bug_when>
    <thetext>This introduces a test that is flaky on stress bots.
This is getting fixed at https://bugs.webkit.org/show_bug.cgi?id=230399</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794449</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-17 08:34:12 -0700</bug_when>
    <thetext>Found 1 new test failure: imported/w3c/web-platform-tests/webrtc/RTCDataChannel-close.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795009</commentid>
    <comment_count>9</comment_count>
      <attachid>438650</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-20 02:58:05 -0700</bug_when>
    <thetext>Created attachment 438650
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795024</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-20 05:04:37 -0700</bug_when>
    <thetext>Committed r282743 (241880@main): &lt;https://commits.webkit.org/241880@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438650.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436500</attachid>
            <date>2021-08-26 05:13:43 -0700</date>
            <delta_ts>2021-09-15 01:51:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229549-20210826141341.patch</filename>
            <type>text/plain</type>
            <size>230148</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTc2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTIwNWJiMzNiNTlmNDQ4NzBkZDhk
MjczN2Y1ZmUwMjNkY2EyMzExYS4uMzdmMjViMDFlNTZjYzk2ZGUwZTE3NTA5MTU5NGY4NjU4ZjRl
NDhlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA4LTI2ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN5bmMgV1BUIHdlYnJ0YyB0ZXN0cyBmcm9t
IHVwc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjk1NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHRlc3RzLW9wdGlvbnMuanNvbjoKKwogMjAyMS0wOC0yNiAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2lnbmFsaW5nIHN0YXRlIGNoZWNrIHdoZW4gYXBw
bHlpbmcgYSBsb2NhbCBvciByZW1vdGUgZGVzY3JpcHRpb24gaXMgbm8gbG9uZ2VyIGFsaWduZWQg
d2l0aCB0aGUgV2ViUlRDIHNwZWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDgx
YzM4ZmY3MzY3NDRjNjQxNjZlZGM3OWVhYjAwMWQ5NTIwMWZhNzguLmIyNjc3ZjQwMGY3NTU5MGJh
MjkyYTkxNTg2MmM0YjgwMGQ5NzAyYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDk4IEBACisyMDIxLTA4LTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXN5bmMgV1BUIHdlYnJ0YyB0ZXN0cyBmcm9tIHVwc3RyZWFtCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk1NDkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJlc291cmNl
cy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb246CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy1leHRlbnNpb25zL3RyYW5zZmVyLWRhdGFjaGFubmVsLXNlcnZpY2Utd29ya2VyLmh0
dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy1leHRlbnNpb25zL3RyYW5zZmVyLWRhdGFjaGFubmVsLXNlcnZpY2Utd29ya2VyLmh0dHBz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5z
aW9ucy90cmFuc2Zlci1kYXRhY2hhbm5lbC1zZXJ2aWNlLXdvcmtlci5qczogQWRkZWQuCisgICAg
ICAgIChvbm1lc3NhZ2UpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0
ZW5zaW9ucy93M2MtaW1wb3J0LmxvZzoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjLWljZS9NRVRBLnltbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy1pY2UvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi1oZWxwZXIuanM6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJ
Y2VUcmFuc3BvcnQtZXh0ZW5zaW9uLWhlbHBlci5qcy4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjLWljZS9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtaWNlL1JUQ0ljZVRyYW5zcG9y
dC1leHRlbnNpb24uaHR0cHMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24u
aHR0cHMuaHRtbC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWljZS93M2Mt
aW1wb3J0LmxvZzogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1z
dGF0cy9NRVRBLnltbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy1zdGF0cy9SRUFETUUubWQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMtc3RhdHMvZ2V0U3RhdHMtcmVtb3RlLWNhbmRpZGF0ZS1hZGRyZXNzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9nZXRT
dGF0cy1yZW1vdGUtY2FuZGlkYXRlLWFkZHJlc3MuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtc3RhdHMvaWRs
aGFybmVzcy53aW5kb3cuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy1zdGF0cy9pZGxoYXJuZXNzLndpbmRvdy5qczogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9zdXBwb3J0ZWQtc3RhdHMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLXN0YXRzL3N1cHBv
cnRlZC1zdGF0cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjLXN0YXRzL3czYy1pbXBvcnQubG9nOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNl
cnZlcnMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFD
aGFubmVsLWNsb3NlLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENEYXRhQ2hhbm5lbC1pY2VSZXN0YXJ0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pY2VSZXN0YXJ0Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5u
ZWwtc2VuZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0YXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtc3RhdGUuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZElj
ZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1hZGRJY2VDYW5kaWRhdGUuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNr
Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1jYXB0dXJlLXZpZGVvLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYXB0dXJl
LXZpZGVvLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKKyAg
ICAgICAgKGRvRXhjaGFuZ2UpOgorICAgICAgICAoYXN5bmMgbGlzdGVuRm9yU1NSQ3MpOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29u
bmVjdGlvblN0YXRlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdl
dFN0YXRzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZWxheS1jYW52YXMuaHR0cHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXJlbGF5LWNhbnZhcy5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJ
Y2UuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlw
dGlvbi1wcmFuc3dlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXByYW5zd2VyLmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZl
ci1zdG9wLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTdGF0cy1oZWxwZXIuanM6CisgICAgICAgICh2YWxpZGF0
ZUNvZGVjU3RhdHMpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZGF0YWNo
YW5uZWwtZW1wdHlzdHJpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwtZW1wdHlzdHJpbmcuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2dldHN0YXRzLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9uby1tZWRpYS1jYWxsLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1lZGlhLWNhbGwu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb21pc2VzLWNhbGwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvbWlz
ZXMtY2FsbC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvUkVBRE1FLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL2R0bHMtc2V0dXAuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtc2V0dXAuaHR0cHMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zl
ci1kYXRhY2hhbm5lbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXItZGF0YWNoYW5uZWwuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNs
b2NrcmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1leHRlbnNpb24tc3VwcG9ydC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvcnRwLWV4dGVuc2lvbi1zdXBwb3J0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZwOC1m
bXRwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm90b2NvbC92cDgtZm10cC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3czYy1pbXBvcnQubG9nOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC1uby1zc3Jjcy5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBz
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2
NC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxj
YXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90b29scy9wYWNrYWdlLmpzb246CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZzoKKwogMjAyMS0wOC0yNiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2lnbmFsaW5nIHN0YXRl
IGNoZWNrIHdoZW4gYXBwbHlpbmcgYSBsb2NhbCBvciByZW1vdGUgZGVzY3JpcHRpb24gaXMgbm8g
bG9uZ2VyIGFsaWduZWQgd2l0aCB0aGUgV2ViUlRDIHNwZWMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24K
aW5kZXggZDc5OWZhOTQxNTAzNjhjMDkzMjJiNWE0N2FmNzIwNWI5Zjg1YTVkYy4uOTkzNWFjNzg4
YjZlYzIxNWYzNGUyNDk3YWZmN2RlZWI2M2M1OWU0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24K
QEAgLTQ0NSw3ICs0NDUsOSBAQAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2VibWVzc2FnaW5n
LyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0YyI6ICJpbXBvcnQi
LCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zIjogImltcG9ydCIs
IAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWljZSI6ICJpbXBvcnQiLCAKICAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1wcmlvcml0eSI6ICJpbXBvcnQiLCAKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kiOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvd2Vic29ja2V0cyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnN0
b3JhZ2UiOiAiaW1wb3J0IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL3RyYW5zZmVyLWRhdGFjaGFubmVs
LXNlcnZpY2Utd29ya2VyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvdHJhbnNmZXItZGF0YWNo
YW5uZWwtc2VydmljZS13b3JrZXIuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5YmIy
OTQzMTFhNzNmZTBmNGE2YWM1YzFkOTIxMmY1Y2VmNGIxOTAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNp
b25zL3RyYW5zZmVyLWRhdGFjaGFubmVsLXNlcnZpY2Utd29ya2VyLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBvZmZlcmVyIGRhdGEgY2hhbm5lbCBpbiBzZXJ2aWNl
IHdvcmtlcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL3RyYW5zZmVyLWRhdGFjaGFubmVsLXNlcnZpY2Ut
d29ya2VyLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL3RyYW5zZmVyLWRhdGFjaGFubmVsLXNlcnZpY2Utd29y
a2VyLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI1ZmVlNGZlMWVmMzNiZTBjYjViMzU3NWNjMTc1
NWMwYjVlNmI0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvdHJhbnNmZXItZGF0YWNoYW5uZWwt
c2VydmljZS13b3JrZXIuaHR0cHMuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiBjcmVhdGVD
b25uZWN0aW9ucyh0ZXN0LCBmaXJzdENvbm5lY3Rpb25DYWxsYmFjaywgc2Vjb25kQ29ubmVjdGlv
bkNhbGxiYWNrKQoreworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgdGVzdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7CisKKyAgICBwYzEub25pY2VjYW5kaWRhdGUgPSAoZSkgPT4gcGMyLmFkZElj
ZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7CisgICAgcGMyLm9uaWNlY2FuZGlkYXRlID0gKGUpID0+
IHBjMS5hZGRJY2VDYW5kaWRhdGUoZS5jYW5kaWRhdGUpOworCisgICAgZmlyc3RDb25uZWN0aW9u
Q2FsbGJhY2socGMxKTsKKworICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVy
KCk7CisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICAgIGF3YWl0
IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisKKyAgICBzZWNvbmRDb25uZWN0aW9u
Q2FsbGJhY2socGMyKTsKKworICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3
ZXIoKTsKKyAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICAgIGF3
YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOworfQorCithc3luYyBmdW5jdGlv
biB3YWl0Rm9yTWVzc2FnZShyZWNlaXZlciwgZGF0YSkKK3sKKyAgICB3aGlsZSAodHJ1ZSkgewor
ICAgICAgICBjb25zdCByZWNlaXZlZCA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcmVj
ZWl2ZXIub25tZXNzYWdlID0gKGV2ZW50KSA9PiByZXNvbHZlKGV2ZW50LmRhdGEpKTsKKyAgICAg
ICAgaWYgKGRhdGEgPT09IHJlY2VpdmVkKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KK30K
KworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgbGV0IGZyYW1lOworICAgIGNv
bnN0IHNjb3BlID0gJ3Jlc291cmNlcy8nOworICAgIGNvbnN0IHNjcmlwdCA9ICd0cmFuc2Zlci1k
YXRhY2hhbm5lbC1zZXJ2aWNlLXdvcmtlci5qcyc7CisKKyAgICBhd2FpdCBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyKHRlc3QsIHNjb3BlKTsKKyAgICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2Fp
dCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHtzY29wZX0pOworICAg
IHRlc3QuYWRkX2NsZWFudXAoYXN5bmMgKCkgPT4geworICAgICAgICByZXR1cm4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcih0ZXN0LCBzY29wZSk7CisgICAgfSk7CisgICAgY29uc3Qgd29ya2Vy
ID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisKKyAgICBjb25zdCBtZXNzYWdlQ2hhbm5lbCA9
IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworCisgICAgbGV0IGxvY2FsQ2hhbm5lbDsKKyAgICBsZXQg
cmVtb3RlQ2hhbm5lbDsKKworICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnModGVzdCwgKGZpcnN0Q29ubmVjdGlvbikg
PT4geworICAgICAgICAgICAgbG9jYWxDaGFubmVsID0gZmlyc3RDb25uZWN0aW9uLmNyZWF0ZURh
dGFDaGFubmVsKCdzZW5kRGF0YUNoYW5uZWwnKTsKKyAgICAgICAgICAgIHdvcmtlci5wb3N0TWVz
c2FnZSh7Y2hhbm5lbDogbG9jYWxDaGFubmVsLCBwb3J0OiBtZXNzYWdlQ2hhbm5lbC5wb3J0Mn0s
IFtsb2NhbENoYW5uZWwsIG1lc3NhZ2VDaGFubmVsLnBvcnQyXSk7CisgICAgICAgIH0sIChzZWNv
bmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9uZGF0YWNo
YW5uZWwgPSAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICByZW1vdGVDaGFubmVsID0gZXZl
bnQuY2hhbm5lbDsKKyAgICAgICAgICAgICAgICByZW1vdGVDaGFubmVsLm9ub3BlbiA9IHJlc29s
dmU7CisgICAgICAgICAgICB9OworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGNvbnN0IHBy
b21pc2UgPSB3YWl0Rm9yTWVzc2FnZShtZXNzYWdlQ2hhbm5lbC5wb3J0MSwgIk9LIik7CisgICAg
cmVtb3RlQ2hhbm5lbC5zZW5kKCJPSyIpOworICAgIGF3YWl0IHByb21pc2U7CisKKyAgICBjb25z
dCBkYXRhID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiByZW1vdGVDaGFubmVsLm9ubWVzc2FnZSA9
IChldmVudCkgPT4gcmVzb2x2ZShldmVudC5kYXRhKSk7CisgICAgbWVzc2FnZUNoYW5uZWwucG9y
dDEucG9zdE1lc3NhZ2Uoe21lc3NhZ2U6ICJPSzIifSk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2Fp
dCBkYXRhLCAiT0syIik7Cit9LCAib2ZmZXJlciBkYXRhIGNoYW5uZWwgaW4gc2VydmljZSB3b3Jr
ZXIiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0
ZW5zaW9ucy90cmFuc2Zlci1kYXRhY2hhbm5lbC1zZXJ2aWNlLXdvcmtlci5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvdHJh
bnNmZXItZGF0YWNoYW5uZWwtc2VydmljZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE5MTlkMGI5
YTdiMWMxZWY5OTFjZmQ2MDE4YTgyNjhlMjcxZWIxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMv
dHJhbnNmZXItZGF0YWNoYW5uZWwtc2VydmljZS13b3JrZXIuanMKQEAgLTAsMCArMSwxNSBAQAor
bGV0IGNoYW5uZWw7CitsZXQgcG9ydDsKK29ubWVzc2FnZSA9IChlKSA9PiB7CisgICAgaWYgKGUu
ZGF0YS5wb3J0KSB7CisgICAgICAgIHBvcnQgPSBlLmRhdGEucG9ydDsKKyAgICAgICAgcG9ydC5v
bm1lc3NhZ2UgPSAoZXZlbnQpID0+IGNoYW5uZWwuc2VuZChldmVudC5kYXRhLm1lc3NhZ2UpOwor
ICAgIH0KKyAgICBpZiAoZS5kYXRhLmNoYW5uZWwpIHsKKyAgICAgICAgY2hhbm5lbCA9IGUuZGF0
YS5jaGFubmVsOworICAgICAgICBjaGFubmVsLm9ub3BlbiA9ICgpID0+IHBvcnQucG9zdE1lc3Nh
Z2UoIm9wZW5lZCIpOworICAgICAgICBjaGFubmVsLm9uZXJyb3IgPSAoKSA9PiBwb3J0LnBvc3RN
ZXNzYWdlKCJlcnJvcmVkIik7CisgICAgICAgIGNoYW5uZWwub25jbG9zZSA9ICgpID0+IHBvcnQu
cG9zdE1lc3NhZ2UoImNsb3NlZCIpOworICAgICAgICBjaGFubmVsLm9ubWVzc2FnZSA9IChldmVu
dCkgPT4gcG9ydC5wb3N0TWVzc2FnZShldmVudC5kYXRhKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0
ZW5zaW9ucy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvdzNjLWltcG9ydC5sb2cKaW5kZXggYTY0NGVi
NWRmYWQ4NTZmM2Y1NzdmZjhhZDAyZTZhZjMwMzk2NDk1Yy4uMTJlZTAxYmU3MjlmNjY2ZDRlOGY4
NzFmNGNlYzQ3NzRlYjAwZDM5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy93M2MtaW1wb3J0LmxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRl
bnNpb25zL3czYy1pbXBvcnQubG9nCkBAIC0yMywzICsyMyw3IEBAIExpc3Qgb2YgZmlsZXM6CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5z
aW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2UtaGVscGVyLmpzCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBT
eW5jaHJvbml6YXRpb25Tb3VyY2Utc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMv
UlRDUnRwVHJhbnNjZWl2ZXItaGVhZGVyRXh0ZW5zaW9uQ29udHJvbC5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy90cmFu
c2Zlci1kYXRhY2hhbm5lbC1zZXJ2aWNlLXdvcmtlci5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy90cmFuc2Zl
ci1kYXRhY2hhbm5lbC1zZXJ2aWNlLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvdHJhbnNmZXItZGF0YWNoYW5u
ZWwtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMtZXh0ZW5zaW9ucy90cmFuc2Zlci1kYXRhY2hhbm5lbC5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1pY2Uv
TUVUQS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy1pY2UvTUVUQS55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY4MzM0OWUzY2IxMGZmMGFkNGMzMjNjNzBk
YWFlYzg4ZjExNDhjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWljZS9NRVRBLnltbApAQCAtMCwwICsxLDMgQEAK
K3NwZWM6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtaWNlLworc3VnZ2VzdGVkX3Jldmll
d2VyczoKKyAgLSBhbHZlc3RyYW5kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1pY2UvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lv
bi1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy1pY2UvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi1oZWxwZXIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjU5ZWM1OWI4ZGYyODQ3ZTdlMmEzYzUxM2QzZDZmZDAxMDI3ZjE2ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
LWljZS9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLWhlbHBlci5qcwpAQCAtMCwwICsxLDQyIEBA
CisndXNlIHN0cmljdCc7CisKKy8vIENvbnN0cnVjdCBhbiBSVENJY2VUcmFuc3BvcnQgaW5zdGFu
Y2UuIFRoZSBpbnN0YW5jZSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUKKy8vIGNsZWFuZWQgdXAgd2hl
biB0aGUgdGVzdCBmaW5pc2hlcy4KK2Z1bmN0aW9uIG1ha2VJY2VUcmFuc3BvcnQodCkgeworICBj
b25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gaWNlVHJhbnNwb3J0LnN0b3AoKSk7CisgIHJldHVybiBpY2VUcmFuc3BvcnQ7Cit9
CisKKy8vIENvbnN0cnVjdCB0d28gUlRDSWNlVHJhbnNwb3J0IGluc3RhbmNlcywgY29uZmlndXJl
IHRoZW0gdG8gZXhjaGFuZ2UKKy8vIGNhbmRpZGF0ZXMsIHRoZW4gZ2F0aGVyKCkgdGhlbS4KKy8v
IFJldHVybnMgYSAyLWxpc3Q6IFsgUlRDSWNlVHJhbnNwb3J0LCBSVENJY2VUcmFuc3BvcnQgXQor
ZnVuY3Rpb24gbWFrZUFuZEdhdGhlclR3b0ljZVRyYW5zcG9ydHModCkgeworICBjb25zdCBsb2Nh
bFRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7CisgIGNvbnN0IHJlbW90ZVRyYW5zcG9y
dCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7CisgIGxvY2FsVHJhbnNwb3J0Lm9uaWNlY2FuZGlkYXRl
ID0gZSA9PiB7CisgICAgaWYgKGUuY2FuZGlkYXRlKSB7CisgICAgICByZW1vdGVUcmFuc3BvcnQu
YWRkUmVtb3RlQ2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsKKyAgICB9CisgIH07CisgIHJlbW90ZVRy
YW5zcG9ydC5vbmljZWNhbmRpZGF0ZSA9IGUgPT4geworICAgIGlmIChlLmNhbmRpZGF0ZSkgewor
ICAgICAgbG9jYWxUcmFuc3BvcnQuYWRkUmVtb3RlQ2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsKKyAg
ICB9CisgIH07CisgIGxvY2FsVHJhbnNwb3J0LmdhdGhlcih7fSk7CisgIHJlbW90ZVRyYW5zcG9y
dC5nYXRoZXIoe30pOworICByZXR1cm4gWyBsb2NhbFRyYW5zcG9ydCwgcmVtb3RlVHJhbnNwb3J0
IF07Cit9CisKKy8vIENvbnN0cnVjdCB0d28gUlRDSWNlVHJhbnNwb3J0IGluc3RhbmNlcywgY29u
ZmlndXJlIHRoZW0gdG8gZXhjaGFuZ2UKKy8vIGNhbmRpZGF0ZXMgYW5kIHBhcmFtZXRlcnMsIHRo
ZW4gZ2F0aGVyKCkgYW5kIHN0YXJ0KCkgdGhlbS4KKy8vIFJldHVybnMgYSAyLWxpc3Q6CisvLyAg
ICAgWyBjb250cm9sbGluZyBSVENJY2VUcmFuc3BvcnQsCisvLyAgICAgICBjb250cm9sbGVkIFJU
Q0ljZVRyYW5zcG9ydCBdCitmdW5jdGlvbiBtYWtlR2F0aGVyQW5kU3RhcnRUd29JY2VUcmFuc3Bv
cnRzKHQpIHsKKyAgY29uc3QgWyBsb2NhbFRyYW5zcG9ydCwgcmVtb3RlVHJhbnNwb3J0IF0gPSBt
YWtlQW5kR2F0aGVyVHdvSWNlVHJhbnNwb3J0cyh0KTsKKyAgbG9jYWxUcmFuc3BvcnQuc3RhcnQo
cmVtb3RlVHJhbnNwb3J0LmdldExvY2FsUGFyYW1ldGVycygpLCAnY29udHJvbGxpbmcnKTsKKyAg
cmVtb3RlVHJhbnNwb3J0LnN0YXJ0KGxvY2FsVHJhbnNwb3J0LmdldExvY2FsUGFyYW1ldGVycygp
LCAnY29udHJvbGxlZCcpOworICByZXR1cm4gWyBsb2NhbFRyYW5zcG9ydCwgcmVtb3RlVHJhbnNw
b3J0IF07Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy1pY2UvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy1pY2UvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDM4MjA3NmJiZmE4YjdlOTVlYjlhOTE4NWZkZmNmZDkyYmViODc3ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjLWljZS9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMzIEBACisKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0IGNvbnN0cnVjdG9yIGRvZXMg
bm90IHRocm93IElsbGVnYWwgY29uc3RydWN0b3IKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0IGluaXRp
YWwgcHJvcGVydGllcyBhcmUgc2V0IElsbGVnYWwgY29uc3RydWN0b3IKK0ZBSUwgZ2F0aGVyKCkg
d2l0aCB7IGljZVNlcnZlcnM6IG51bGwgfSBzaG91bGQgdGhyb3cgVHlwZUVycm9yIElsbGVnYWwg
Y29uc3RydWN0b3IKK0ZBSUwgZ2F0aGVyKCkgd2l0aCB7IGljZVNlcnZlcnM6IHVuZGVmaW5lZCB9
IHNob3VsZCBzdWNjZWVkIElsbGVnYWwgY29uc3RydWN0b3IKK0ZBSUwgZ2F0aGVyKCkgd2l0aCBv
bmUgdHVybnMgc2VydmVyLCBvbmUgdHVybiBzZXJ2ZXIsIHVzZXJuYW1lLCBjcmVkZW50aWFsIHNo
b3VsZCBzdWNjZWVkIElsbGVnYWwgY29uc3RydWN0b3IKK0ZBSUwgZ2F0aGVyKCkgd2l0aCAyIHN0
dW4gc2VydmVycyBzaG91bGQgc3VjY2VlZCBJbGxlZ2FsIGNvbnN0cnVjdG9yCitGQUlMIGdhdGhl
cigpIHRocm93cyBpZiBjbG9zZWQgSWxsZWdhbCBjb25zdHJ1Y3RvcgorRkFJTCBnYXRoZXIoKSB0
cmFuc2l0aW9ucyBnYXRoZXJpbmdTdGF0ZSB0byAnZ2F0aGVyaW5nJyBJbGxlZ2FsIGNvbnN0cnVj
dG9yCitGQUlMIGdhdGhlcigpIHRocm93cyBpZiBjYWxsZWQgdHdpY2UgSWxsZWdhbCBjb25zdHJ1
Y3RvcgorRkFJTCBldmVudHVhbGx5IHRyYW5zaXRpb24gZ2F0aGVyaW5nU3RhdGUgdG8gJ2NvbXBs
ZXRlJyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IElsbGVnYWwgY29uc3RydWN0b3IiCitGQUlMIG9uaWNlY2FuZGlkYXRlIGZp
cmVzIHdpdGggbnVsbCBjYW5kaWRhdGUgYmVmb3JlIGdhdGhlcmluZ1N0YXRlIHRyYW5zaXRpb25z
IHRvICdjb21wbGV0ZScgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9yIgorRkFJTCBnYXRoZXIo
KSByZXR1cm5zIGF0IGxlYXN0IG9uZSBob3N0IGNhbmRpZGF0ZSBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IElsbGVnYWwgY29u
c3RydWN0b3IiCitGQUlMIGdhdGhlcigpIHJldHVybnMgbm8gY2FuZGlkYXRlcyB3aXRoIHsgZ2F0
aGVyUG9saWN5OiAncmVsYXknfSBhbmQgbm8gdHVybiBzZXJ2ZXJzIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogSWxsZWdhbCBj
b25zdHJ1Y3RvciIKK0ZBSUwgc3RhcnQoKSB0aHJvd3MgaWYgY2xvc2VkIElsbGVnYWwgY29uc3Ry
dWN0b3IKK0ZBSUwgc3RhcnQoKSB0aHJvd3MgaWYgdXNlcm5hbWVGcmFnbWVudCBvciBwYXNzd29y
ZCBub3Qgc2V0IElsbGVnYWwgY29uc3RydWN0b3IKK0ZBSUwgc3RhcnQoKSB0aHJvd3MgaWYgdXNl
cm5hbWVGcmFnbWVudCBkb2VzIG5vdCBjb25mb3JtIHRvIHN5bnRheCBJbGxlZ2FsIGNvbnN0cnVj
dG9yCitGQUlMIHN0YXJ0KCkgdGhyb3dzIGlmIHBhc3N3b3JkIGRvZXMgbm90IGNvbmZvcm0gdG8g
c3ludGF4IElsbGVnYWwgY29uc3RydWN0b3IKK0ZBSUwgc3RhcnQoKSBkb2VzIG5vdCB0cmFuc2l0
aW9uIHN0YXRlIHRvICdjaGVja2luZycgaWYgbm8gcmVtb3RlIGNhbmRpZGF0ZXMgYWRkZWQgSWxs
ZWdhbCBjb25zdHJ1Y3RvcgorRkFJTCBzdGFydCgpIHdpdGggZGVmYXVsdCByb2xlIHNldHMgcm9s
ZSBhdHRyaWJ1dGUgdG8gJ2NvbnRyb2xsZWQnIElsbGVnYWwgY29uc3RydWN0b3IKK0ZBSUwgc3Rh
cnQoKSBzZXRzIHJvbGUgYXR0cmlidXRlIHRvICdjb250cm9sbGluZycgSWxsZWdhbCBjb25zdHJ1
Y3RvcgorRkFJTCBhZGRSZW1vdGVDYW5kaWRhdGUoKSB0aHJvd3MgaWYgY2xvc2VkIElsbGVnYWwg
Y29uc3RydWN0b3IKK0ZBSUwgYWRkUmVtb3RlQ2FuZGlkYXRlKCkgdGhyb3dzIG9uIGludmFsaWQg
Y2FuZGlkYXRlIElsbGVnYWwgY29uc3RydWN0b3IKK0ZBSUwgc3RhcnQoKSB0cmFuc2l0aW9ucyBz
dGF0ZSB0byAnY2hlY2tpbmcnIGlmIG9uZSByZW1vdGUgY2FuZGlkYXRlIGhhZCBiZWVuIGFkZGVk
IElsbGVnYWwgY29uc3RydWN0b3IKK0ZBSUwgYWRkUmVtb3RlQ2FuZGlkYXRlKCkgdHJhbnNpdGlv
bnMgc3RhdGUgdG8gJ2NoZWNraW5nJyBpZiBzdGFydCgpIGhhZCBiZWVuIGNhbGxlZCBiZWZvcmUg
SWxsZWdhbCBjb25zdHJ1Y3RvcgorRkFJTCBzdGFydCgpIHRocm93cyBpZiBsYXRlciBjYWxsZWQg
d2l0aCBhIGRpZmZlcmVudCByb2xlIElsbGVnYWwgY29uc3RydWN0b3IKK0ZBSUwgc3RhcnQoKSBm
bHVzaGVzIHJlbW90ZSBjYW5kaWRhdGVzIGFuZCB0cmFuc2l0aW9ucyBzdGF0ZSB0byAnbmV3JyBp
ZiBsYXRlciBjYWxsZWQgd2l0aCBkaWZmZXJlbnQgcmVtb3RlIHBhcmFtZXRlcnMgSWxsZWdhbCBj
b25zdHJ1Y3RvcgorRkFJTCBUd28gUlRDSWNlVHJhbnNwb3J0cyBjb25uZWN0IHRvIGVhY2ggb3Ro
ZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9yIgorRkFJTCBUd28gUlRDSWNlVHJhbnNwb3J0
cyBjb25maWd1cmVkIHdpdGggdGhlIGNvbnRyb2xsaW5nIHJvbGUgcmVzb2x2ZSB0aGUgY29uZmxp
Y3QgaW4gYmFuZCBhbmQgc3RpbGwgY29ubmVjdC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9y
IgorRkFJTCBUd28gUlRDSWNlVHJhbnNwb3J0cyBjb25maWd1cmVkIHdpdGggdGhlIGNvbnRyb2xs
ZWQgcm9sZSByZXNvbHZlIHRoZSBjb25mbGljdCBpbiBiYW5kIGFuZCBzdGlsbCBjb25uZWN0LiBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IElsbGVnYWwgY29uc3RydWN0b3IiCitGQUlMIFNlbGVjdGVkIGNhbmRpZGF0ZSBwYWly
IGNoYW5nZXMgb25jZSB0aGUgUlRDSWNlVHJhbnNwb3J0cyBjb25uZWN0LiBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IElsbGVn
YWwgY29uc3RydWN0b3IiCitGQUlMIGdldFNlbGVjdGVkQ2FuZGlkYXRlUGFpcigpIHJldHVybnMg
bnVsbCBvbmNlIHRoZSBSVENJY2VUcmFuc3BvcnQgaXMgc3RvcHBlZC4gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBJbGxlZ2Fs
IGNvbnN0cnVjdG9yIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1pY2UvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMtaWNlL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
YjRkNTJhZGNlNTY3M2JhYjVkNTI3NTM2ZDY3Zjg5YTAzYTQ4Y2QyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtaWNl
L1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMuaHRtbApAQCAtMCwwICsxLDM2MiBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ0ljZVRyYW5z
cG9ydC1leHRlbnNpb25zLmh0dHBzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ0ljZVRyYW5zcG9y
dC1leHRlbnNpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7
CisKKy8vIFRoZXNlIHRlc3RzIGFyZSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGV4dGVuc2lvbiBz
cGVjaWZpY2F0aW9uOgorLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1pY2UvCisKKy8v
IFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20KKy8vIFJUQ0lj
ZVRyYW5zcG9ydC1leHRlbnNpb24taGVscGVyLmpzOgorLy8gICBtYWtlSWNlVHJhbnNwb3J0Cisv
LyAgIG1ha2VHYXRoZXJBbmRTdGFydFR3b0ljZVRyYW5zcG9ydHMKKworY29uc3QgSUNFX1VGUkFH
ID0gJ3UnLnJlcGVhdCg0KTsKK2NvbnN0IElDRV9QV0QgPSAncCcucmVwZWF0KDIyKTsKKwordGVz
dCgoKSA9PiB7CisgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsK
K30sICdSVENJY2VUcmFuc3BvcnQgY29uc3RydWN0b3IgZG9lcyBub3QgdGhyb3cnKTsKKwordGVz
dCgoKSA9PiB7CisgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsK
KyAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQucm9sZSwgbnVsbCwgJ0V4cGVjdCByb2xlIHRv
IGJlIG51bGwnKTsKKyAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuc3RhdGUsICduZXcnLCBg
RXhwZWN0IHN0YXRlIHRvIGJlICduZXcnYCk7CisgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0
LmdhdGhlcmluZ1N0YXRlLCAnbmV3JywKKyAgICBgRXhwZWN0IGdhdGhlcmluZ1N0YXRlIHRvIGJl
ICduZXcnYCk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldExvY2FsQ2Fu
ZGlkYXRlcygpLCBbXSwKKyAgICAnRXhwZWN0IG5vIGxvY2FsIGNhbmRpZGF0ZXMnKTsKKyAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlQ2FuZGlkYXRlcygpLCBbXSwK
KyAgICAnRXhwZWN0IG5vIHJlbW90ZSBjYW5kaWRhdGVzJyk7CisgIGFzc2VydF9lcXVhbHMoaWNl
VHJhbnNwb3J0LmdldFNlbGVjdGVkQ2FuZGlkYXRlUGFpcigpLCBudWxsLAorICAgICdFeHBlY3Qg
bm8gc2VsZWN0ZWQgY2FuZGlkYXRlIHBhaXInKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMoaWNlVHJh
bnNwb3J0LmdldExvY2FsUGFyYW1ldGVycygpLCBudWxsLAorICAgICdFeHBlY3QgbG9jYWwgcGFy
YW1ldGVycyBnZW5lcmF0ZWQnKTsKKyAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVt
b3RlUGFyYW1ldGVycygpLCBudWxsLAorICAgICdFeHBlY3Qgbm8gcmVtb3RlIHBhcmFtZXRlcnMn
KTsKK30sICdSVENJY2VUcmFuc3BvcnQgaW5pdGlhbCBwcm9wZXJ0aWVzIGFyZSBzZXQnKTsKKwor
dGVzdCh0ID0+IHsKKyAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsK
KyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CisgICAgaWNlVHJhbnNwb3J0Lmdh
dGhlcih7IGljZVNlcnZlcnM6IG51bGwgfSkpOworfSwgJ2dhdGhlcigpIHdpdGggeyBpY2VTZXJ2
ZXJzOiBudWxsIH0gc2hvdWxkIHRocm93IFR5cGVFcnJvcicpOworCit0ZXN0KHQgPT4geworICBj
b25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOworICBpY2VUcmFuc3BvcnQu
Z2F0aGVyKHsgaWNlU2VydmVyczogdW5kZWZpbmVkIH0pOworfSwgJ2dhdGhlcigpIHdpdGggeyBp
Y2VTZXJ2ZXJzOiB1bmRlZmluZWQgfSBzaG91bGQgc3VjY2VlZCcpOworCit0ZXN0KHQgPT4gewor
ICBjb25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOworICBpY2VUcmFuc3Bv
cnQuZ2F0aGVyKHsgaWNlU2VydmVyczogW3sKKyAgICB1cmxzOiBbJ3R1cm5zOnR1cm4uZXhhbXBs
ZS5vcmcnLCAndHVybjp0dXJuLmV4YW1wbGUubmV0J10sCisgICAgdXNlcm5hbWU6ICd1c2VyJywK
KyAgICBjcmVkZW50aWFsOiAnY3JlZCcsCisgIH1dIH0pOworfSwgJ2dhdGhlcigpIHdpdGggb25l
IHR1cm5zIHNlcnZlciwgb25lIHR1cm4gc2VydmVyLCB1c2VybmFtZSwgY3JlZGVudGlhbCcgKwor
ICAgICcgc2hvdWxkIHN1Y2NlZWQnKTsKKwordGVzdCh0ID0+IHsKKyAgY29uc3QgaWNlVHJhbnNw
b3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKKyAgaWNlVHJhbnNwb3J0LmdhdGhlcih7IGljZVNl
cnZlcnM6IFt7CisgICAgdXJsczogWydzdHVuOnN0dW4xLmV4YW1wbGUubmV0JywgJ3N0dW46c3R1
bjIuZXhhbXBsZS5uZXQnXSwKKyAgfV0gfSk7Cit9LCAnZ2F0aGVyKCkgd2l0aCAyIHN0dW4gc2Vy
dmVycyBzaG91bGQgc3VjY2VlZCcpOworCit0ZXN0KHQgPT4geworICBjb25zdCBpY2VUcmFuc3Bv
cnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOworICBpY2VUcmFuc3BvcnQuc3RvcCgpOworICBhc3Nl
cnRfdGhyb3dzX2RvbSgnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBpY2VUcmFuc3BvcnQuZ2F0
aGVyKHt9KSk7Cit9LCAnZ2F0aGVyKCkgdGhyb3dzIGlmIGNsb3NlZCcpOworCit0ZXN0KHQgPT4g
eworICBjb25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOworICBpY2VUcmFu
c3BvcnQuZ2F0aGVyKHt9KTsKKyAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2F0aGVyaW5n
U3RhdGUsICdnYXRoZXJpbmcnKTsKK30sIGBnYXRoZXIoKSB0cmFuc2l0aW9ucyBnYXRoZXJpbmdT
dGF0ZSB0byAnZ2F0aGVyaW5nJ2ApOworCit0ZXN0KHQgPT4geworICBjb25zdCBpY2VUcmFuc3Bv
cnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOworICBpY2VUcmFuc3BvcnQuZ2F0aGVyKHt9KTsKKyAg
YXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gaWNlVHJhbnNwb3J0
LmdhdGhlcih7fSkpOworfSwgJ2dhdGhlcigpIHRocm93cyBpZiBjYWxsZWQgdHdpY2UnKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNl
VHJhbnNwb3J0KHQpOworICBjb25zdCB3YXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBpY2VU
cmFuc3BvcnQsICdnYXRoZXJpbmdzdGF0ZWNoYW5nZScpOworICBpY2VUcmFuc3BvcnQuZ2F0aGVy
KHt9KTsKKyAgYXdhaXQgd2F0Y2hlci53YWl0X2ZvcignZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnKTsK
KyAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2F0aGVyaW5nU3RhdGUsICdjb21wbGV0ZScp
OworfSwgYGV2ZW50dWFsbHkgdHJhbnNpdGlvbiBnYXRoZXJpbmdTdGF0ZSB0byAnY29tcGxldGUn
YCk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgaWNlVHJhbnNwb3J0ID0g
bWFrZUljZVRyYW5zcG9ydCh0KTsKKyAgY29uc3Qgd2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIo
dCwgaWNlVHJhbnNwb3J0LAorICAgICAgWyAnaWNlY2FuZGlkYXRlJywgJ2dhdGhlcmluZ3N0YXRl
Y2hhbmdlJyBdKTsKKyAgaWNlVHJhbnNwb3J0LmdhdGhlcih7fSk7CisgIGxldCBjYW5kaWRhdGU7
CisgIGRvIHsKKyAgICAoKHsgY2FuZGlkYXRlIH0gPSBhd2FpdCB3YXRjaGVyLndhaXRfZm9yKCdp
Y2VjYW5kaWRhdGUnKSkpOworICB9IHdoaWxlIChjYW5kaWRhdGUgIT09IG51bGwpOworICBhc3Nl
cnRfZXF1YWxzKGljZVRyYW5zcG9ydC5nYXRoZXJpbmdTdGF0ZSwgJ2dhdGhlcmluZycpOworICBh
d2FpdCB3YXRjaGVyLndhaXRfZm9yKCdnYXRoZXJpbmdzdGF0ZWNoYW5nZScpOworICBhc3NlcnRf
ZXF1YWxzKGljZVRyYW5zcG9ydC5nYXRoZXJpbmdTdGF0ZSwgJ2NvbXBsZXRlJyk7Cit9LCAnb25p
Y2VjYW5kaWRhdGUgZmlyZXMgd2l0aCBudWxsIGNhbmRpZGF0ZSBiZWZvcmUgZ2F0aGVyaW5nU3Rh
dGUnICsKKyAgICBgIHRyYW5zaXRpb25zIHRvICdjb21wbGV0ZSdgKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQp
OworICBjb25zdCB3YXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBpY2VUcmFuc3BvcnQsICdp
Y2VjYW5kaWRhdGUnKTsKKyAgaWNlVHJhbnNwb3J0LmdhdGhlcih7fSk7CisgIGNvbnN0IHsgY2Fu
ZGlkYXRlIH0gPSBhd2FpdCB3YXRjaGVyLndhaXRfZm9yKCdpY2VjYW5kaWRhdGUnKTsKKyAgYXNz
ZXJ0X25vdF9lcXVhbHMoY2FuZGlkYXRlLmNhbmRpZGF0ZSwgJycpOworICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGljZVRyYW5zcG9ydC5nZXRMb2NhbENhbmRpZGF0ZXMoKSwgW2NhbmRpZGF0ZV0pOwor
fSwgJ2dhdGhlcigpIHJldHVybnMgYXQgbGVhc3Qgb25lIGhvc3QgY2FuZGlkYXRlJyk7CisKK3By
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRy
YW5zcG9ydCh0KTsKKyAgY29uc3Qgd2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgaWNlVHJh
bnNwb3J0LCAnaWNlY2FuZGlkYXRlJyk7CisgIGljZVRyYW5zcG9ydC5nYXRoZXIoeyBnYXRoZXJQ
b2xpY3k6ICdyZWxheScgfSk7CisgIGNvbnN0IHsgY2FuZGlkYXRlIH0gPSBhd2FpdCB3YXRjaGVy
LndhaXRfZm9yKCdpY2VjYW5kaWRhdGUnKTsKKyAgYXNzZXJ0X2VxdWFscyhjYW5kaWRhdGUsIG51
bGwpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKGljZVRyYW5zcG9ydC5nZXRMb2NhbENhbmRpZGF0
ZXMoKSwgW10pOworfSwgYGdhdGhlcigpIHJldHVybnMgbm8gY2FuZGlkYXRlcyB3aXRoIHsgZ2F0
aGVyUG9saWN5OiAncmVsYXknfSBhbmQgbm8gdHVybmAgKworICAgICcgc2VydmVycycpOworCitj
b25zdCBkdW1teVJlbW90ZVBhcmFtZXRlcnMgPSB7CisgIHVzZXJuYW1lRnJhZ21lbnQ6IElDRV9V
RlJBRywKKyAgcGFzc3dvcmQ6IElDRV9QV0QsCit9OworCit0ZXN0KCgpID0+IHsKKyAgY29uc3Qg
aWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOworICBpY2VUcmFuc3BvcnQuc3Rv
cCgpOworICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZFN0YXRlRXJyb3InLAorICAgICgpID0+
IGljZVRyYW5zcG9ydC5zdGFydChkdW1teVJlbW90ZVBhcmFtZXRlcnMpKTsKKyAgYXNzZXJ0X2Vx
dWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlUGFyYW1ldGVycygpLCBudWxsKTsKK30sIGBzdGFy
dCgpIHRocm93cyBpZiBjbG9zZWRgKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IGljZVRyYW5z
cG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJy
b3IsICgpID0+IGljZVRyYW5zcG9ydC5zdGFydCh7fSkpOworICBhc3NlcnRfdGhyb3dzX2pzKFR5
cGVFcnJvciwKKyAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoeyB1c2VybmFtZUZyYWdtZW50
OiBJQ0VfVUZSQUcgfSkpOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwKKyAgICAoKSA9
PiBpY2VUcmFuc3BvcnQuc3RhcnQoeyBwYXNzd29yZDogSUNFX1BXRCB9KSk7CisgIGFzc2VydF9l
cXVhbHMoaWNlVHJhbnNwb3J0LmdldFJlbW90ZVBhcmFtZXRlcnMoKSwgbnVsbCk7Cit9LCAnc3Rh
cnQoKSB0aHJvd3MgaWYgdXNlcm5hbWVGcmFnbWVudCBvciBwYXNzd29yZCBub3Qgc2V0Jyk7CisK
K3Rlc3QoKCkgPT4geworICBjb25zdCBURVNUX0NBU0VTID0gWworICAgIHt1c2VybmFtZUZyYWdt
ZW50OiAnMnNoJywgZGVzY3JpcHRpb246ICdsZXNzIHRoYW4gNCBjaGFyYWN0ZXJzIGxvbmcnfSwK
KyAgICB7CisgICAgICB1c2VybmFtZUZyYWdtZW50OiAneCcucmVwZWF0KDI1NyksCisgICAgICBk
ZXNjcmlwdGlvbjogJ2dyZWF0ZXIgdGhhbiAyNTYgY2hhcmFjdGVycyBsb25nJywKKyAgICB9LAor
ICAgIHt1c2VybmFtZUZyYWdtZW50OiAnMTIzXG4nLCBkZXNjcmlwdGlvbjogJ2lsbGVnYWwgY2hh
cmFjdGVyJ30sCisgIF07CisgIGZvciAoY29uc3Qge3VzZXJuYW1lRnJhZ21lbnQsIGRlc2NyaXB0
aW9ufSBvZiBURVNUX0NBU0VTKSB7CisgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0lj
ZVRyYW5zcG9ydCgpOworICAgIGFzc2VydF90aHJvd3NfZG9tKAorICAgICAgJ1N5bnRheEVycm9y
JywKKyAgICAgICgpID0+IGljZVRyYW5zcG9ydC5zdGFydCh7IHVzZXJuYW1lRnJhZ21lbnQsIHBh
c3N3b3JkOiBJQ0VfUFdEIH0pLAorICAgICAgYGlsbGVnYWwgdXNlcm5hbWVGcmFnbWVudCAoJHtk
ZXNjcmlwdGlvbn0pIHNob3VsZCB0aHJvdyBhIFN5bnRheEVycm9yYCk7CisgIH0KK30sICdzdGFy
dCgpIHRocm93cyBpZiB1c2VybmFtZUZyYWdtZW50IGRvZXMgbm90IGNvbmZvcm0gdG8gc3ludGF4
Jyk7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBURVNUX0NBU0VTID0gWworICAgIHtwYXNzd29y
ZDogJ3gnLnJlcGVhdCgyMSksIGRlc2NyaXB0aW9uOiAnbGVzcyB0aGFuIDIyIGNoYXJhY3RlcnMg
bG9uZyd9LAorICAgIHsKKyAgICAgIHBhc3N3b3JkOiAneCcucmVwZWF0KDI1NyksCisgICAgICBk
ZXNjcmlwdGlvbjogJ2dyZWF0ZXIgdGhhbiAyNTYgY2hhcmFjdGVycyBsb25nJywKKyAgICB9LAor
ICAgIHtwYXNzd29yZDogKCd4Jy5yZXBlYXQoMjEpICsgJ1xuJyksIGRlc2NyaXB0aW9uOiAnaWxs
ZWdhbCBjaGFyYWN0ZXInfSwKKyAgXTsKKyAgZm9yIChjb25zdCB7cGFzc3dvcmQsIGRlc2NyaXB0
aW9ufSBvZiBURVNUX0NBU0VTKSB7CisgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0lj
ZVRyYW5zcG9ydCgpOworICAgIGFzc2VydF90aHJvd3NfZG9tKAorICAgICAgJ1N5bnRheEVycm9y
JywKKyAgICAgICgpID0+IGljZVRyYW5zcG9ydC5zdGFydCh7IHVzZXJuYW1lRnJhZ21lbnQ6IElD
RV9VRlJBRywgcGFzc3dvcmQgfSksCisgICAgICBgaWxsZWdhbCBwYXNzd29yZCAoJHtkZXNjcmlw
dGlvbn0pIHNob3VsZCB0aHJvdyBhIFN5bnRheEVycm9yYCk7CisgIH0KK30sICdzdGFydCgpIHRo
cm93cyBpZiBwYXNzd29yZCBkb2VzIG5vdCBjb25mb3JtIHRvIHN5bnRheCcpOworCitjb25zdCBh
c3NlcnRfaWNlX3BhcmFtZXRlcnNfZXF1YWxzID0gKGEsIGIpID0+IHsKKyAgYXNzZXJ0X2VxdWFs
cyhhLnVzZXJuYW1lRnJhZ21lbnQsIGIudXNlcm5hbWVGcmFnbWVudCwKKyAgICAgICd1c2VybmFt
ZUZyYWdtZW50cyBhcmUgZXF1YWwnKTsKKyAgYXNzZXJ0X2VxdWFscyhhLnBhc3N3b3JkLCBiLnBh
c3N3b3JkLCAncGFzc3dvcmRzIGFyZSBlcXVhbCcpOworfTsKKwordGVzdCh0ID0+IHsKKyAgY29u
c3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKKyAgaWNlVHJhbnNwb3J0LnN0
YXJ0KGR1bW15UmVtb3RlUGFyYW1ldGVycyk7CisgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0
LnN0YXRlLCAnbmV3Jyk7CisgIGFzc2VydF9pY2VfcGFyYW1ldGVyc19lcXVhbHMoaWNlVHJhbnNw
b3J0LmdldFJlbW90ZVBhcmFtZXRlcnMoKSwKKyAgICAgIGR1bW15UmVtb3RlUGFyYW1ldGVycyk7
Cit9LCBgc3RhcnQoKSBkb2VzIG5vdCB0cmFuc2l0aW9uIHN0YXRlIHRvICdjaGVja2luZycgaWYg
bm8gcmVtb3RlIGNhbmRpZGF0ZXMgYCArCisgICAgJ2FkZGVkJyk7CisKK3Rlc3QodCA9PiB7Cisg
IGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7CisgIGljZVRyYW5zcG9y
dC5zdGFydChkdW1teVJlbW90ZVBhcmFtZXRlcnMpOworICBhc3NlcnRfZXF1YWxzKGljZVRyYW5z
cG9ydC5yb2xlLCAnY29udHJvbGxlZCcpOworfSwgYHN0YXJ0KCkgd2l0aCBkZWZhdWx0IHJvbGUg
c2V0cyByb2xlIGF0dHJpYnV0ZSB0byAnY29udHJvbGxlZCdgKTsKKwordGVzdCh0ID0+IHsKKyAg
Y29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKKyAgaWNlVHJhbnNwb3J0
LnN0YXJ0KGR1bW15UmVtb3RlUGFyYW1ldGVycywgJ2NvbnRyb2xsaW5nJyk7CisgIGFzc2VydF9l
cXVhbHMoaWNlVHJhbnNwb3J0LnJvbGUsICdjb250cm9sbGluZycpOworfSwgYHN0YXJ0KCkgc2V0
cyByb2xlIGF0dHJpYnV0ZSB0byAnY29udHJvbGxpbmcnYCk7CisKK2NvbnN0IGNhbmRpZGF0ZTEg
PSBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsKKyAgY2FuZGlkYXRlOiAnY2FuZGlkYXRlOjEgMSB1ZHAg
MjExMzkyOTQ3MSAyMDMuMC4xMTMuMTAwIDEwMTAwIHR5cCBob3N0JywKKyAgc2RwTWlkOiAnJywK
K30pOworCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRy
YW5zcG9ydCgpOworICBpY2VUcmFuc3BvcnQuc3RvcCgpOworICBhc3NlcnRfdGhyb3dzX2RvbSgn
SW52YWxpZFN0YXRlRXJyb3InLAorICAgICgpID0+IGljZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5k
aWRhdGUoY2FuZGlkYXRlMSkpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKGljZVRyYW5zcG9ydC5n
ZXRSZW1vdGVDYW5kaWRhdGVzKCksIFtdKTsKK30sICdhZGRSZW1vdGVDYW5kaWRhdGUoKSB0aHJv
d3MgaWYgY2xvc2VkJyk7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBpY2VUcmFuc3BvcnQgPSBu
ZXcgUlRDSWNlVHJhbnNwb3J0KCk7CisgIGFzc2VydF90aHJvd3NfZG9tKCdPcGVyYXRpb25FcnJv
cicsCisgICAgKCkgPT4gaWNlVHJhbnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0ZSgKKyAgICAgIG5l
dyBSVENJY2VDYW5kaWRhdGUoeyBjYW5kaWRhdGU6ICdpbnZhbGlkJywgc2RwTWlkOiAnJyB9KSkp
OworICBhc3NlcnRfYXJyYXlfZXF1YWxzKGljZVRyYW5zcG9ydC5nZXRSZW1vdGVDYW5kaWRhdGVz
KCksIFtdKTsKK30sICdhZGRSZW1vdGVDYW5kaWRhdGUoKSB0aHJvd3Mgb24gaW52YWxpZCBjYW5k
aWRhdGUnKTsKKwordGVzdCh0ID0+IHsKKyAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRy
YW5zcG9ydCh0KTsKKyAgaWNlVHJhbnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0ZShjYW5kaWRhdGUx
KTsKKyAgaWNlVHJhbnNwb3J0LnN0YXJ0KGR1bW15UmVtb3RlUGFyYW1ldGVycyk7CisgIGFzc2Vy
dF9lcXVhbHMoaWNlVHJhbnNwb3J0LnN0YXRlLCAnY2hlY2tpbmcnKTsKKyAgYXNzZXJ0X2FycmF5
X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlQ2FuZGlkYXRlcygpLCBbY2FuZGlkYXRlMV0p
OworfSwgYHN0YXJ0KCkgdHJhbnNpdGlvbnMgc3RhdGUgdG8gJ2NoZWNraW5nJyBpZiBvbmUgcmVt
b3RlIGNhbmRpZGF0ZSBoYWQgYmVlbiBgICsKKyAgICAnYWRkZWQnKTsKKwordGVzdCh0ID0+IHsK
KyAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKKyAgaWNlVHJhbnNw
b3J0LnN0YXJ0KGR1bW15UmVtb3RlUGFyYW1ldGVycyk7CisgIGljZVRyYW5zcG9ydC5hZGRSZW1v
dGVDYW5kaWRhdGUoY2FuZGlkYXRlMSk7CisgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LnN0
YXRlLCAnY2hlY2tpbmcnKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0
UmVtb3RlQ2FuZGlkYXRlcygpLCBbY2FuZGlkYXRlMV0pOworfSwgYGFkZFJlbW90ZUNhbmRpZGF0
ZSgpIHRyYW5zaXRpb25zIHN0YXRlIHRvICdjaGVja2luZycgaWYgc3RhcnQoKSBoYWQgYmVlbiBg
ICsKKyAgICAnY2FsbGVkIGJlZm9yZScpOworCit0ZXN0KHQgPT4geworICBjb25zdCBpY2VUcmFu
c3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOworICBpY2VUcmFuc3BvcnQuc3RhcnQoZHVtbXlS
ZW1vdGVQYXJhbWV0ZXJzKTsKKyAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9y
JywKKyAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoZHVtbXlSZW1vdGVQYXJhbWV0ZXJzLCAn
Y29udHJvbGxpbmcnKSk7Cit9LCAnc3RhcnQoKSB0aHJvd3MgaWYgbGF0ZXIgY2FsbGVkIHdpdGgg
YSBkaWZmZXJlbnQgcm9sZScpOworCit0ZXN0KHQgPT4geworICBjb25zdCBpY2VUcmFuc3BvcnQg
PSBtYWtlSWNlVHJhbnNwb3J0KHQpOworICBpY2VUcmFuc3BvcnQuc3RhcnQoeworICAgIHVzZXJu
YW1lRnJhZ21lbnQ6ICcxJy5yZXBlYXQoNCksCisgICAgcGFzc3dvcmQ6ICcxJy5yZXBlYXQoMjIp
LAorICB9KTsKKyAgaWNlVHJhbnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0ZShjYW5kaWRhdGUxKTsK
KyAgY29uc3QgY2hhbmdlZFJlbW90ZVBhcmFtZXRlcnMgPSB7CisgICAgdXNlcm5hbWVGcmFnbWVu
dDogJzInLnJlcGVhdCg0KSwKKyAgICBwYXNzd29yZDogJzInLnJlcGVhdCgyMiksCisgIH07Cisg
IGljZVRyYW5zcG9ydC5zdGFydChjaGFuZ2VkUmVtb3RlUGFyYW1ldGVycyk7CisgIGFzc2VydF9l
cXVhbHMoaWNlVHJhbnNwb3J0LnN0YXRlLCAnbmV3Jyk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMo
aWNlVHJhbnNwb3J0LmdldFJlbW90ZUNhbmRpZGF0ZXMoKSwgW10pOworICBhc3NlcnRfaWNlX3Bh
cmFtZXRlcnNfZXF1YWxzKGljZVRyYW5zcG9ydC5nZXRSZW1vdGVQYXJhbWV0ZXJzKCksCisgICAg
ICBjaGFuZ2VkUmVtb3RlUGFyYW1ldGVycyk7Cit9LCBgc3RhcnQoKSBmbHVzaGVzIHJlbW90ZSBj
YW5kaWRhdGVzIGFuZCB0cmFuc2l0aW9ucyBzdGF0ZSB0byAnbmV3JyBpZiBgICsKKyAgICdsYXRl
ciBjYWxsZWQgd2l0aCBkaWZmZXJlbnQgcmVtb3RlIHBhcmFtZXRlcnMnKTsKKworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBbIGxvY2FsVHJhbnNwb3J0LCByZW1vdGVUcmFuc3Bv
cnQgXSA9CisgICAgICBtYWtlR2F0aGVyQW5kU3RhcnRUd29JY2VUcmFuc3BvcnRzKHQpOworICBj
b25zdCBsb2NhbFdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIGxvY2FsVHJhbnNwb3J0LCAn
c3RhdGVjaGFuZ2UnKTsKKyAgY29uc3QgcmVtb3RlV2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIo
dCwgcmVtb3RlVHJhbnNwb3J0LCAnc3RhdGVjaGFuZ2UnKTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwo
WworICAgIGxvY2FsV2F0Y2hlci53YWl0X2Zvcignc3RhdGVjaGFuZ2UnKS50aGVuKCgpID0+IHsK
KyAgICAgIGFzc2VydF9lcXVhbHMobG9jYWxUcmFuc3BvcnQuc3RhdGUsICdjb25uZWN0ZWQnKTsK
KyAgICB9KSwKKyAgICByZW1vdGVXYXRjaGVyLndhaXRfZm9yKCdzdGF0ZWNoYW5nZScpLnRoZW4o
KCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhyZW1vdGVUcmFuc3BvcnQuc3RhdGUsICdjb25u
ZWN0ZWQnKTsKKyAgICB9KSwKKyAgXSk7Cit9LCAnVHdvIFJUQ0ljZVRyYW5zcG9ydHMgY29ubmVj
dCB0byBlYWNoIG90aGVyJyk7CisKK1snY29udHJvbGxpbmcnLCAnY29udHJvbGxlZCddLmZvckVh
Y2gocm9sZSA9PiB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBbIGxv
Y2FsVHJhbnNwb3J0LCByZW1vdGVUcmFuc3BvcnQgXSA9CisgICAgICAgIG1ha2VBbmRHYXRoZXJU
d29JY2VUcmFuc3BvcnRzKHQpOworICAgIGxvY2FsVHJhbnNwb3J0LnN0YXJ0KHJlbW90ZVRyYW5z
cG9ydC5nZXRMb2NhbFBhcmFtZXRlcnMoKSwgcm9sZSk7CisgICAgcmVtb3RlVHJhbnNwb3J0LnN0
YXJ0KGxvY2FsVHJhbnNwb3J0LmdldExvY2FsUGFyYW1ldGVycygpLCByb2xlKTsKKyAgICBjb25z
dCBsb2NhbFdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIGxvY2FsVHJhbnNwb3J0LCAnc3Rh
dGVjaGFuZ2UnKTsKKyAgICBjb25zdCByZW1vdGVXYXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0
LCByZW1vdGVUcmFuc3BvcnQsICdzdGF0ZWNoYW5nZScpOworICAgIGF3YWl0IFByb21pc2UuYWxs
KFsKKyAgICAgIGxvY2FsV2F0Y2hlci53YWl0X2Zvcignc3RhdGVjaGFuZ2UnKS50aGVuKCgpID0+
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhsb2NhbFRyYW5zcG9ydC5zdGF0ZSwgJ2Nvbm5lY3Rl
ZCcpOworICAgICAgfSksCisgICAgICByZW1vdGVXYXRjaGVyLndhaXRfZm9yKCdzdGF0ZWNoYW5n
ZScpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZVRyYW5zcG9ydC5z
dGF0ZSwgJ2Nvbm5lY3RlZCcpOworICAgICAgfSksCisgICAgXSk7CisgIH0sIGBUd28gUlRDSWNl
VHJhbnNwb3J0cyBjb25maWd1cmVkIHdpdGggdGhlICR7cm9sZX0gcm9sZSByZXNvbHZlIHRoZSBg
ICsKKyAgICAgICdjb25mbGljdCBpbiBiYW5kIGFuZCBzdGlsbCBjb25uZWN0LicpOworfSk7CisK
K3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgYXN5bmMgZnVuY3Rpb24gd2FpdEZvclNlbGVj
dGVkQ2FuZGlkYXRlUGFpckNoYW5nZVRoZW5Db25uZWN0ZWQodCwgdHJhbnNwb3J0LAorICAgICAg
dHJhbnNwb3J0TmFtZSkgeworICAgIGNvbnN0IHdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQs
IHRyYW5zcG9ydCwKKyAgICAgICAgWyAnc3RhdGVjaGFuZ2UnLCAnc2VsZWN0ZWRjYW5kaWRhdGVw
YWlyY2hhbmdlJyBdKTsKKyAgICBhd2FpdCB3YXRjaGVyLndhaXRfZm9yKCdzZWxlY3RlZGNhbmRp
ZGF0ZXBhaXJjaGFuZ2UnKTsKKyAgICBjb25zdCBzZWxlY3RlZENhbmRpZGF0ZVBhaXIgPSB0cmFu
c3BvcnQuZ2V0U2VsZWN0ZWRDYW5kaWRhdGVQYWlyKCk7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMo
c2VsZWN0ZWRDYW5kaWRhdGVQYWlyLCBudWxsLAorICAgICAgICBgJHt0cmFuc3BvcnROYW1lfSBz
ZWxlY3RlZCBjYW5kaWRhdGUgcGFpciBzaG91bGQgbm90IGJlIG51bGwgb25jZSBgICsKKyAgICAg
ICAgJ3RoZSBzZWxlY3RlZGNhbmRpZGF0ZXBhaXJjaGFuZ2UgZXZlbnQgZmlyZXMnKTsKKyAgICBh
c3NlcnRfdHJ1ZSgKKyAgICAgICAgdHJhbnNwb3J0LmdldExvY2FsQ2FuZGlkYXRlcygpLnNvbWUo
CisgICAgICAgICAgICAoeyBjYW5kaWRhdGUgfSkgPT4KKyAgICAgICAgICAgICAgICBjYW5kaWRh
dGUgPT09IHNlbGVjdGVkQ2FuZGlkYXRlUGFpci5sb2NhbC5jYW5kaWRhdGUpLAorICAgICAgICBg
JHt0cmFuc3BvcnROYW1lfSBzZWxlY3RlZCBjYW5kaWRhdGUgcGFpciBsb2NhbCBzaG91bGQgYmUg
aW4gdGhlIGAgKworICAgICAgICAnbGlzdCBvZiBsb2NhbCBjYW5kaWRhdGVzJyk7CisgICAgYXNz
ZXJ0X3RydWUoCisgICAgICAgIHRyYW5zcG9ydC5nZXRSZW1vdGVDYW5kaWRhdGVzKCkuc29tZSgK
KyAgICAgICAgICAgICh7IGNhbmRpZGF0ZSB9KSA9PgorICAgICAgICAgICAgICAgIGNhbmRpZGF0
ZSA9PT0gc2VsZWN0ZWRDYW5kaWRhdGVQYWlyLnJlbW90ZS5jYW5kaWRhdGUpLAorICAgICAgICBg
JHt0cmFuc3BvcnROYW1lfSBzZWxlY3RlZCBjYW5kaWRhdGUgcGFpciBsb2NhbCBzaG91bGQgYmUg
aW4gdGhlIGAgKworICAgICAgICAnbGlzdCBvZiByZW1vdGUgY2FuZGlkYXRlcycpOworICAgIGF3
YWl0IHdhdGNoZXIud2FpdF9mb3IoJ3N0YXRlY2hhbmdlJyk7CisgICAgYXNzZXJ0X2VxdWFscyh0
cmFuc3BvcnQuc3RhdGUsICdjb25uZWN0ZWQnLAorICAgICAgICBgJHt0cmFuc3BvcnROYW1lfSBz
dGF0ZSBzaG91bGQgYmUgJ2Nvbm5lY3RlZCdgKTsKKyAgfQorICBjb25zdCBbIGxvY2FsVHJhbnNw
b3J0LCByZW1vdGVUcmFuc3BvcnQgXSA9CisgICAgICBtYWtlR2F0aGVyQW5kU3RhcnRUd29JY2VU
cmFuc3BvcnRzKHQpOworICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgd2FpdEZvclNlbGVjdGVk
Q2FuZGlkYXRlUGFpckNoYW5nZVRoZW5Db25uZWN0ZWQodCwgbG9jYWxUcmFuc3BvcnQsCisgICAg
ICAgICdsb2NhbCB0cmFuc3BvcnQnKSwKKyAgICB3YWl0Rm9yU2VsZWN0ZWRDYW5kaWRhdGVQYWly
Q2hhbmdlVGhlbkNvbm5lY3RlZCh0LCByZW1vdGVUcmFuc3BvcnQsCisgICAgICAgICdyZW1vdGUg
dHJhbnNwb3J0JyksCisgIF0pOworfSwgJ1NlbGVjdGVkIGNhbmRpZGF0ZSBwYWlyIGNoYW5nZXMg
b25jZSB0aGUgUlRDSWNlVHJhbnNwb3J0cyBjb25uZWN0LicpOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgIGNvbnN0IFsgdHJhbnNwb3J0LCBdID0gbWFrZUdhdGhlckFuZFN0YXJ0VHdv
SWNlVHJhbnNwb3J0cyh0KTsKKyAgY29uc3Qgd2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwg
dHJhbnNwb3J0LCAnc2VsZWN0ZWRjYW5kaWRhdGVwYWlyY2hhbmdlJyk7CisgIGF3YWl0IHdhdGNo
ZXIud2FpdF9mb3IoJ3NlbGVjdGVkY2FuZGlkYXRlcGFpcmNoYW5nZScpOworICB0cmFuc3BvcnQu
c3RvcCgpOworICBhc3NlcnRfZXF1YWxzKHRyYW5zcG9ydC5nZXRTZWxlY3RlZENhbmRpZGF0ZVBh
aXIoKSwgbnVsbCk7Cit9LCAnZ2V0U2VsZWN0ZWRDYW5kaWRhdGVQYWlyKCkgcmV0dXJucyBudWxs
IG9uY2UgdGhlIFJUQ0ljZVRyYW5zcG9ydCBpcyAnICsKKyAgICAnc3RvcHBlZC4nKTsKKworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy1pY2UvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1pY2UvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzFmMTdlMzMwNGZlNWNjMzYxZDY3ZmYxNGI1Y2NlMjY2ZmQyNzUxNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
LWljZS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1pY2UvTUVUQS55bWwKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1pY2UvUlRD
SWNlVHJhbnNwb3J0LWV4dGVuc2lvbi1oZWxwZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1pY2UvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lv
bi5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9NRVRBLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLXN0YXRzL01FVEEueW1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjEwYmNmODU2ZWI5MjU4ZTA4NDVmMmZkY2I2ZTA4YzQzZWJjZGY3OGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1z
dGF0cy9NRVRBLnltbApAQCAtMCwwICsxLDUgQEAKK3NwZWM6IGh0dHBzOi8vdzNjLmdpdGh1Yi5p
by93ZWJydGMtc3RhdHMvCitzdWdnZXN0ZWRfcmV2aWV3ZXJzOgorICAtIGhlbmJvcworICAtIHZy
MDAwbQorICAtIGphbi1pdmFyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9SRUFETUUubWQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9SRUFETUUubWQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmI2OTM3Mjg5NDhkODk4YzljM2Y4MWI3ZTFmMmJjNzk1OWZhODY4ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjLXN0YXRzL1JFQURNRS5tZApAQCAtMCwwICsxLDcgQEAKK1RoZSBmb2xsb3dpbmcgNCB0
ZXN0IGNhc2VzIGluIHRoZSBgd2VicnRjL2AgZGlyZWN0b3J5IHRlc3Qgc29tZSBvZiB0aGUgbWFu
ZGF0b3J5LXRvLWltcGxlbWVudCBzdGF0cyBkZWZpbmVkIGluIFdlYlJUQyBTdGF0aXN0aWNzOgor
CisqIGBnZXRzdGF0cy5odG1sYAorKiBgUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMu
aHRtbGAKKyogYFJUQ1BlZXJDb25uZWN0aW9uLXRyYWNrLXN0YXRzLmh0dHBzLmh0bWxgCisqIGBS
VENSdHBSZWNlaXZlci1nZXRTdGF0cy5odHRwcy5odG1sYAorKiBgUlRDUnRwU2VuZGVyLWdldFN0
YXRzLmh0dHBzLmh0bWxgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9nZXRTdGF0cy1yZW1vdGUtY2FuZGlkYXRlLWFk
ZHJlc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMtc3RhdHMvZ2V0U3RhdHMtcmVtb3RlLWNhbmRpZGF0ZS1hZGRyZXNzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjBiNmE3OTU1NjEyMDVhNDZmNmRlOTk4MDAzMjNkZDhm
MWFmZGUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMtc3RhdHMvZ2V0U3RhdHMtcmVtb3RlLWNhbmRpZGF0ZS1hZGRy
ZXNzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworRkFJTCBEbyBub3QgZXhwb3NlIGlu
IHN0YXRzIHJlbW90ZSBhZGRyZXNzZXMgdGhhdCBhcmUgbm90IGtub3duIHRvIGJlIGFscmVhZHkg
ZXhwb3NlZCB0byBKUyBhc3NlcnRfZXF1YWxzOiBhZGRyZXNzIHNob3VsZCBiZSBudWxsIGV4cGVj
dGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK1BBU1MgRXhw
b3NlIGluIHN0YXRzIHJlbW90ZSBhZGRyZXNzZXMgdGhhdCBhcmUgYWxyZWFkeSBleHBvc2VkIHRv
IEpTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjLXN0YXRzL2dldFN0YXRzLXJlbW90ZS1jYW5kaWRhdGUtYWRkcmVzcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtc3Rh
dHMvZ2V0U3RhdHMtcmVtb3RlLWNhbmRpZGF0ZS1hZGRyZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhl
MmFlYzkwZTY4MzZjZGNkMDViNDQ4ZDJkNTgxZWVjM2JkNTUzNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLXN0YXRz
L2dldFN0YXRzLXJlbW90ZS1jYW5kaWRhdGUtYWRkcmVzcy5odG1sCkBAIC0wLDAgKzEsODEgQEAK
KzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5FeHBvc3VyZSBv
ciByZW1vdGUgY2FuZGlkYXRlIGFkZHJlc3Mgb24gc3RhdHM8L3RpdGxlPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3dlYnJ0Yy9SVENTdGF0cy1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgJ3Vz
ZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBs
b2NhbFBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgo
KSA9PiBsb2NhbFBjLmNsb3NlKCkpOworICAgIGNvbnN0IHJlbW90ZVBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiByZW1vdGVQYy5jbG9zZSgp
KTsKKworICAgIGNvbnN0IHByb21pc2VEYXRhQ2hhbm5lbCA9IG5ldyBQcm9taXNlKHJlc29sdmUg
PT4geworICAgICAgICByZW1vdGVQYy5hZGRFdmVudExpc3RlbmVyKCdkYXRhY2hhbm5lbCcsIChl
dmVudCkgPT4geworICAgICAgICAgICAgcmVzb2x2ZShldmVudC5jaGFubmVsKTsKKyAgICAgICAg
fSk7CisgICAgfSk7CisKKyAgICBjb25zdCBsb2NhbERhdGFDaGFubmVsID0gbG9jYWxQYy5jcmVh
dGVEYXRhQ2hhbm5lbCgndGVzdCcpOworCisgICAgbG9jYWxQYy5hZGRFdmVudExpc3RlbmVyKCdp
Y2VjYW5kaWRhdGUnLCBldmVudCA9PiB7CisgICAgICAgIGlmIChldmVudC5jYW5kaWRhdGUpCisg
ICAgICAgICAgICByZW1vdGVQYy5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKKyAg
ICB9KTsKKyAgICBleGNoYW5nZU9mZmVyQW5zd2VyKGxvY2FsUGMsIHJlbW90ZVBjKTsKKworICAg
IGNvbnN0IHJlbW90ZURhdGFDaGFubmVsID0gYXdhaXQgcHJvbWlzZURhdGFDaGFubmVsOworCisg
ICAgbG9jYWxEYXRhQ2hhbm5lbC5zZW5kKCJ0ZXN0Iik7CisKKyAgICBhd2FpdCBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHsKKyAgICAgICAgcmVtb3RlRGF0YUNoYW5uZWwub25tZXNzYWdlID0gcmVz
b2x2ZTsKKyAgICB9KTsKKworICAgIGNvbnN0IHJlbW90ZUNhbmRpZGF0ZVN0YXRzID0gZ2V0UmVx
dWlyZWRTdGF0cyhhd2FpdCBsb2NhbFBjLmdldFN0YXRzKCksICJyZW1vdGUtY2FuZGlkYXRlIik7
CisgICAgYXNzZXJ0X2VxdWFscyhyZW1vdGVDYW5kaWRhdGVTdGF0cy5hZGRyZXNzLCBudWxsLCAi
YWRkcmVzcyBzaG91bGQgYmUgbnVsbCIpOworfSwgIkRvIG5vdCBleHBvc2UgaW4gc3RhdHMgcmVt
b3RlIGFkZHJlc3NlcyB0aGF0IGFyZSBub3Qga25vd24gdG8gYmUgYWxyZWFkeSBleHBvc2VkIHRv
IEpTIik7CisKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgbG9j
YWxQYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHRlc3QuYWRkX2NsZWFudXAoKCkg
PT4gbG9jYWxQYy5jbG9zZSgpKTsKKyAgICBjb25zdCByZW1vdGVQYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gcmVtb3RlUGMuY2xvc2UoKSk7
CisKKyAgICBjb25zdCBwcm9taXNlRGF0YUNoYW5uZWwgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+
IHsKKyAgICAgICAgcmVtb3RlUGMuYWRkRXZlbnRMaXN0ZW5lcignZGF0YWNoYW5uZWwnLCAoZXZl
bnQpID0+IHsKKyAgICAgICAgICAgIHJlc29sdmUoZXZlbnQuY2hhbm5lbCk7CisgICAgICAgIH0p
OworICAgIH0pOworCisgICAgY29uc3QgbG9jYWxEYXRhQ2hhbm5lbCA9IGxvY2FsUGMuY3JlYXRl
RGF0YUNoYW5uZWwoJ3Rlc3QnKTsKKworICAgIGxvY2FsUGMuYWRkRXZlbnRMaXN0ZW5lcignaWNl
Y2FuZGlkYXRlJywgZXZlbnQgPT4geworICAgICAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKQorICAg
ICAgICAgICAgcmVtb3RlUGMuYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CisgICAg
fSk7CisgICAgcmVtb3RlUGMuYWRkRXZlbnRMaXN0ZW5lcignaWNlY2FuZGlkYXRlJywgZXZlbnQg
PT4geworICAgICAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKQorICAgICAgICAgICAgbG9jYWxQYy5h
ZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKKyAgICB9KTsKKyAgICBleGNoYW5nZU9m
ZmVyQW5zd2VyKGxvY2FsUGMsIHJlbW90ZVBjKTsKKworICAgIGNvbnN0IHJlbW90ZURhdGFDaGFu
bmVsID0gYXdhaXQgcHJvbWlzZURhdGFDaGFubmVsOworCisgICAgbG9jYWxEYXRhQ2hhbm5lbC5z
ZW5kKCJ0ZXN0Iik7CisKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAg
ICAgcmVtb3RlRGF0YUNoYW5uZWwub25tZXNzYWdlID0gcmVzb2x2ZTsKKyAgICB9KTsKKworICAg
IGNvbnN0IHJlbW90ZUNhbmRpZGF0ZVN0YXRzID0gZ2V0UmVxdWlyZWRTdGF0cyhhd2FpdCBsb2Nh
bFBjLmdldFN0YXRzKCksICJyZW1vdGUtY2FuZGlkYXRlIik7CisgICAgYXNzZXJ0X25vdF9lcXVh
bHMocmVtb3RlQ2FuZGlkYXRlU3RhdHMuYWRkcmVzcywgbnVsbCwgImFkZHJlc3Mgc2hvdWxkIG5v
dCBiZSBudWxsIik7CisKK30sICJFeHBvc2UgaW4gc3RhdHMgcmVtb3RlIGFkZHJlc3NlcyB0aGF0
IGFyZSBhbHJlYWR5IGV4cG9zZWQgdG8gSlMiKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9p
ZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjgxM2E5YzI4MDVkMGY3ZDlhOTM3MDY3ZmM1MWNmOWNkNjU2ZDBm
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjLXN0YXRzL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKKworUEFTUyBpZGxfdGVzdCBzZXR1cAorUEFTUyBpZGxfdGVzdCB2YWxpZGF0
aW9uCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjLXN0YXRzL2lkbGhhcm5lc3Mud2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9pZGxoYXJuZXNzLndp
bmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBi
NTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9pZGxoYXJuZXNzLndpbmRvdy5odG1sCkBAIC0wLDAg
KzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0
cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjLXN0YXRzL2lkbGhhcm5lc3Mud2luZG93LmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtc3RhdHMvaWRsaGFybmVzcy53
aW5kb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk4NzEyZmM0ODUyOThhMDQ1NWU0NGM5ZjI5NDA3ZGMyMzJm
Y2E2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjLXN0YXRzL2lkbGhhcm5lc3Mud2luZG93LmpzCkBAIC0wLDAgKzEs
MTQgQEAKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcworLy8gTUVU
QTogc2NyaXB0PS9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcworCisndXNlIHN0cmljdCc7CisKKy8v
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtc3RhdHMvCisKK2lkbF90ZXN0KAorICBbJ3dl
YnJ0Yy1zdGF0cyddLAorICBbJ3dlYnJ0YyddLAorICBpZGxfYXJyYXkgPT4geworICAgIC8vIE5v
IGludGVyZmFjZXMgdG8gdGVzdAorICB9CispOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtc3RhdHMvc3VwcG9ydGVkLXN0YXRz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjLXN0YXRzL3N1cHBvcnRlZC1zdGF0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTFmZWI4MGM4MzI3YjA4MmQwOTRmOGQwNTE1NzA5N2Y2NjY1NjJhZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLXN0
YXRzL3N1cHBvcnRlZC1zdGF0cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMTIgQEAKKworUEFT
UyBnZXRTdGF0cyBzdWNjZWVkcworUEFTUyBWYWxpZGF0aW5nIHN0YXRzCitQQVNTIGNvZGVjJ3Mg
cGF5bG9hZFR5cGUKK0ZBSUwgY29kZWMncyBjb2RlY1R5cGUgYXNzZXJ0X3RydWU6IElzIGNvZGVj
VHlwZSBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIGNvZGVjJ3MgdHJhbnNw
b3J0SWQgYXNzZXJ0X3RydWU6IElzIHRyYW5zcG9ydElkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK1BBU1MgY29kZWMncyBtaW1lVHlwZQorUEFTUyBjb2RlYydzIGNsb2NrUmF0ZQor
UEFTUyBjb2RlYydzIGNoYW5uZWxzCitQQVNTIGNvZGVjJ3Mgc2RwRm10cExpbmUKK1BBU1MgY29k
ZWMncyB0aW1lc3RhbXAKK1BBU1MgY29kZWMncyB0eXBlCitQQVNTIGNvZGVjJ3MgaWQKK0ZBSUwg
aW5ib3VuZC1ydHAncyByZWNlaXZlcklkIGFzc2VydF90cnVlOiBJcyByZWNlaXZlcklkIHByZXNl
bnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgaW5ib3VuZC1ydHAncyByZW1vdGVJZCBh
c3NlcnRfdHJ1ZTogSXMgcmVtb3RlSWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
UEFTUyBpbmJvdW5kLXJ0cCdzIGZyYW1lc0RlY29kZWQKK1BBU1MgaW5ib3VuZC1ydHAncyBrZXlG
cmFtZXNEZWNvZGVkCitGQUlMIGluYm91bmQtcnRwJ3MgZnJhbWVXaWR0aCBhc3NlcnRfdHJ1ZTog
SXMgZnJhbWVXaWR0aCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIGluYm91
bmQtcnRwJ3MgZnJhbWVIZWlnaHQgYXNzZXJ0X3RydWU6IElzIGZyYW1lSGVpZ2h0IHByZXNlbnQg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgaW5ib3VuZC1ydHAncyBmcmFtZUJpdERlcHRo
IGFzc2VydF90cnVlOiBJcyBmcmFtZUJpdERlcHRoIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK0ZBSUwgaW5ib3VuZC1ydHAncyBmcmFtZXNQZXJTZWNvbmQgYXNzZXJ0X3RydWU6IElz
IGZyYW1lc1BlclNlY29uZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIGlu
Ym91bmQtcnRwJ3MgcXBTdW0gYXNzZXJ0X3RydWU6IElzIHFwU3VtIHByZXNlbnQgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKK1BBU1MgaW5ib3VuZC1ydHAncyB0b3RhbERlY29kZVRpbWUKK1BBU1Mg
aW5ib3VuZC1ydHAncyB0b3RhbEludGVyRnJhbWVEZWxheQorUEFTUyBpbmJvdW5kLXJ0cCdzIHRv
dGFsU3F1YXJlZEludGVyRnJhbWVEZWxheQorRkFJTCBpbmJvdW5kLXJ0cCdzIHZvaWNlQWN0aXZp
dHlGbGFnIGFzc2VydF90cnVlOiBJcyB2b2ljZUFjdGl2aXR5RmxhZyBwcmVzZW50IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitQQVNTIGluYm91bmQtcnRwJ3MgbGFzdFBhY2tldFJlY2VpdmVkVGlt
ZXN0YW1wCitGQUlMIGluYm91bmQtcnRwJ3MgYXZlcmFnZVJ0Y3BJbnRlcnZhbCBhc3NlcnRfdHJ1
ZTogSXMgYXZlcmFnZVJ0Y3BJbnRlcnZhbCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitQQVNTIGluYm91bmQtcnRwJ3MgaGVhZGVyQnl0ZXNSZWNlaXZlZAorUEFTUyBpbmJvdW5kLXJ0
cCdzIGZlY1BhY2tldHNSZWNlaXZlZAorUEFTUyBpbmJvdW5kLXJ0cCdzIGZlY1BhY2tldHNEaXNj
YXJkZWQKK1BBU1MgaW5ib3VuZC1ydHAncyBieXRlc1JlY2VpdmVkCitGQUlMIGluYm91bmQtcnRw
J3MgcGFja2V0c0ZhaWxlZERlY3J5cHRpb24gYXNzZXJ0X3RydWU6IElzIHBhY2tldHNGYWlsZWRE
ZWNyeXB0aW9uIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgaW5ib3VuZC1y
dHAncyBwYWNrZXRzRHVwbGljYXRlZCBhc3NlcnRfdHJ1ZTogSXMgcGFja2V0c0R1cGxpY2F0ZWQg
cHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBpbmJvdW5kLXJ0cCdzIHBlckRz
Y3BQYWNrZXRzUmVjZWl2ZWQgYXNzZXJ0X3RydWU6IElzIHBlckRzY3BQYWNrZXRzUmVjZWl2ZWQg
cHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBpbmJvdW5kLXJ0cCdzIG5hY2tD
b3VudAorUEFTUyBpbmJvdW5kLXJ0cCdzIGZpckNvdW50CitQQVNTIGluYm91bmQtcnRwJ3MgcGxp
Q291bnQKK0ZBSUwgaW5ib3VuZC1ydHAncyBzbGlDb3VudCBhc3NlcnRfdHJ1ZTogSXMgc2xpQ291
bnQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBpbmJvdW5kLXJ0cCdzIHRv
dGFsUHJvY2Vzc2luZ0RlbGF5IGFzc2VydF90cnVlOiBJcyB0b3RhbFByb2Nlc3NpbmdEZWxheSBw
cmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIGluYm91bmQtcnRwJ3MgZXN0aW1h
dGVkUGxheW91dFRpbWVzdGFtcCBhc3NlcnRfdHJ1ZTogSXMgZXN0aW1hdGVkUGxheW91dFRpbWVz
dGFtcCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIGluYm91bmQtcnRwJ3Mg
aml0dGVyQnVmZmVyRGVsYXkKK1BBU1MgaW5ib3VuZC1ydHAncyBqaXR0ZXJCdWZmZXJFbWl0dGVk
Q291bnQKK1BBU1MgaW5ib3VuZC1ydHAncyB0b3RhbFNhbXBsZXNSZWNlaXZlZAorRkFJTCBpbmJv
dW5kLXJ0cCdzIHRvdGFsU2FtcGxlc0RlY29kZWQgYXNzZXJ0X3RydWU6IElzIHRvdGFsU2FtcGxl
c0RlY29kZWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBpbmJvdW5kLXJ0
cCdzIHNhbXBsZXNEZWNvZGVkV2l0aFNpbGsgYXNzZXJ0X3RydWU6IElzIHNhbXBsZXNEZWNvZGVk
V2l0aFNpbGsgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBpbmJvdW5kLXJ0
cCdzIHNhbXBsZXNEZWNvZGVkV2l0aENlbHQgYXNzZXJ0X3RydWU6IElzIHNhbXBsZXNEZWNvZGVk
V2l0aENlbHQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBpbmJvdW5kLXJ0
cCdzIGNvbmNlYWxlZFNhbXBsZXMKK1BBU1MgaW5ib3VuZC1ydHAncyBzaWxlbnRDb25jZWFsZWRT
YW1wbGVzCitQQVNTIGluYm91bmQtcnRwJ3MgY29uY2VhbG1lbnRFdmVudHMKK1BBU1MgaW5ib3Vu
ZC1ydHAncyBpbnNlcnRlZFNhbXBsZXNGb3JEZWNlbGVyYXRpb24KK1BBU1MgaW5ib3VuZC1ydHAn
cyByZW1vdmVkU2FtcGxlc0ZvckFjY2VsZXJhdGlvbgorUEFTUyBpbmJvdW5kLXJ0cCdzIGF1ZGlv
TGV2ZWwKK1BBU1MgaW5ib3VuZC1ydHAncyB0b3RhbEF1ZGlvRW5lcmd5CitQQVNTIGluYm91bmQt
cnRwJ3MgdG90YWxTYW1wbGVzRHVyYXRpb24KK1BBU1MgaW5ib3VuZC1ydHAncyBmcmFtZXNSZWNl
aXZlZAorRkFJTCBpbmJvdW5kLXJ0cCdzIGRlY29kZXJJbXBsZW1lbnRhdGlvbiBhc3NlcnRfdHJ1
ZTogSXMgZGVjb2RlckltcGxlbWVudGF0aW9uIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK1BBU1MgaW5ib3VuZC1ydHAncyBwYWNrZXRzUmVjZWl2ZWQKK1BBU1MgaW5ib3VuZC1ydHAn
cyBwYWNrZXRzTG9zdAorUEFTUyBpbmJvdW5kLXJ0cCdzIGppdHRlcgorRkFJTCBpbmJvdW5kLXJ0
cCdzIHBhY2tldHNEaXNjYXJkZWQgYXNzZXJ0X3RydWU6IElzIHBhY2tldHNEaXNjYXJkZWQgcHJl
c2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBpbmJvdW5kLXJ0cCdzIHBhY2tldHNS
ZXBhaXJlZCBhc3NlcnRfdHJ1ZTogSXMgcGFja2V0c1JlcGFpcmVkIHByZXNlbnQgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgaW5ib3VuZC1ydHAncyBidXJzdFBhY2tldHNMb3N0IGFzc2Vy
dF90cnVlOiBJcyBidXJzdFBhY2tldHNMb3N0IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK0ZBSUwgaW5ib3VuZC1ydHAncyBidXJzdFBhY2tldHNEaXNjYXJkZWQgYXNzZXJ0X3RydWU6
IElzIGJ1cnN0UGFja2V0c0Rpc2NhcmRlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitGQUlMIGluYm91bmQtcnRwJ3MgYnVyc3RMb3NzQ291bnQgYXNzZXJ0X3RydWU6IElzIGJ1cnN0
TG9zc0NvdW50IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgaW5ib3VuZC1y
dHAncyBidXJzdERpc2NhcmRDb3VudCBhc3NlcnRfdHJ1ZTogSXMgYnVyc3REaXNjYXJkQ291bnQg
cHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBpbmJvdW5kLXJ0cCdzIGJ1cnN0
TG9zc1JhdGUgYXNzZXJ0X3RydWU6IElzIGJ1cnN0TG9zc1JhdGUgcHJlc2VudCBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorRkFJTCBpbmJvdW5kLXJ0cCdzIGJ1cnN0RGlzY2FyZFJhdGUgYXNzZXJ0
X3RydWU6IElzIGJ1cnN0RGlzY2FyZFJhdGUgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorRkFJTCBpbmJvdW5kLXJ0cCdzIGdhcExvc3NSYXRlIGFzc2VydF90cnVlOiBJcyBnYXBMb3Nz
UmF0ZSBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIGluYm91bmQtcnRwJ3Mg
Z2FwRGlzY2FyZFJhdGUgYXNzZXJ0X3RydWU6IElzIGdhcERpc2NhcmRSYXRlIHByZXNlbnQgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgaW5ib3VuZC1ydHAncyBmcmFtZXNEcm9wcGVkIGFz
c2VydF90cnVlOiBJcyBmcmFtZXNEcm9wcGVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK0ZBSUwgaW5ib3VuZC1ydHAncyBwYXJ0aWFsRnJhbWVzTG9zdCBhc3NlcnRfdHJ1ZTogSXMg
cGFydGlhbEZyYW1lc0xvc3QgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBp
bmJvdW5kLXJ0cCdzIGZ1bGxGcmFtZXNMb3N0IGFzc2VydF90cnVlOiBJcyBmdWxsRnJhbWVzTG9z
dCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIGluYm91bmQtcnRwJ3Mgc3Ny
YworUEFTUyBpbmJvdW5kLXJ0cCdzIGtpbmQKK1BBU1MgaW5ib3VuZC1ydHAncyB0cmFuc3BvcnRJ
ZAorUEFTUyBpbmJvdW5kLXJ0cCdzIGNvZGVjSWQKK1BBU1MgaW5ib3VuZC1ydHAncyB0aW1lc3Rh
bXAKK1BBU1MgaW5ib3VuZC1ydHAncyB0eXBlCitQQVNTIGluYm91bmQtcnRwJ3MgaWQKK0ZBSUwg
b3V0Ym91bmQtcnRwJ3MgcnR4U3NyYyBhc3NlcnRfdHJ1ZTogSXMgcnR4U3NyYyBwcmVzZW50IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIG91dGJvdW5kLXJ0cCdzIG1lZGlhU291cmNlSWQK
K0ZBSUwgb3V0Ym91bmQtcnRwJ3Mgc2VuZGVySWQgYXNzZXJ0X3RydWU6IElzIHNlbmRlcklkIHBy
ZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mgb3V0Ym91bmQtcnRwJ3MgcmVtb3Rl
SWQKK0ZBSUwgb3V0Ym91bmQtcnRwJ3MgcmlkIGFzc2VydF90cnVlOiBJcyByaWQgcHJlc2VudCBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBvdXRib3VuZC1ydHAncyBsYXN0UGFja2V0U2Vu
dFRpbWVzdGFtcCBhc3NlcnRfdHJ1ZTogSXMgbGFzdFBhY2tldFNlbnRUaW1lc3RhbXAgcHJlc2Vu
dCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBvdXRib3VuZC1ydHAncyBoZWFkZXJCeXRl
c1NlbnQKK0ZBSUwgb3V0Ym91bmQtcnRwJ3MgcGFja2V0c0Rpc2NhcmRlZE9uU2VuZCBhc3NlcnRf
dHJ1ZTogSXMgcGFja2V0c0Rpc2NhcmRlZE9uU2VuZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCitGQUlMIG91dGJvdW5kLXJ0cCdzIGJ5dGVzRGlzY2FyZGVkT25TZW5kIGFzc2VydF90
cnVlOiBJcyBieXRlc0Rpc2NhcmRlZE9uU2VuZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitGQUlMIG91dGJvdW5kLXJ0cCdzIGZlY1BhY2tldHNTZW50IGFzc2VydF90cnVlOiBJcyBm
ZWNQYWNrZXRzU2VudCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIG91dGJv
dW5kLXJ0cCdzIHJldHJhbnNtaXR0ZWRQYWNrZXRzU2VudAorUEFTUyBvdXRib3VuZC1ydHAncyBy
ZXRyYW5zbWl0dGVkQnl0ZXNTZW50CitGQUlMIG91dGJvdW5kLXJ0cCdzIHRhcmdldEJpdHJhdGUg
YXNzZXJ0X3RydWU6IElzIHRhcmdldEJpdHJhdGUgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorUEFTUyBvdXRib3VuZC1ydHAncyB0b3RhbEVuY29kZWRCeXRlc1RhcmdldAorUEFTUyBv
dXRib3VuZC1ydHAncyBmcmFtZVdpZHRoCitQQVNTIG91dGJvdW5kLXJ0cCdzIGZyYW1lSGVpZ2h0
CitGQUlMIG91dGJvdW5kLXJ0cCdzIGZyYW1lQml0RGVwdGggYXNzZXJ0X3RydWU6IElzIGZyYW1l
Qml0RGVwdGggcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBvdXRib3VuZC1y
dHAncyBmcmFtZXNQZXJTZWNvbmQKK1BBU1Mgb3V0Ym91bmQtcnRwJ3MgZnJhbWVzU2VudAorUEFT
UyBvdXRib3VuZC1ydHAncyBodWdlRnJhbWVzU2VudAorUEFTUyBvdXRib3VuZC1ydHAncyBmcmFt
ZXNFbmNvZGVkCitQQVNTIG91dGJvdW5kLXJ0cCdzIGtleUZyYW1lc0VuY29kZWQKK0ZBSUwgb3V0
Ym91bmQtcnRwJ3MgZnJhbWVzRGlzY2FyZGVkT25TZW5kIGFzc2VydF90cnVlOiBJcyBmcmFtZXNE
aXNjYXJkZWRPblNlbmQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBvdXRi
b3VuZC1ydHAncyBxcFN1bQorRkFJTCBvdXRib3VuZC1ydHAncyB0b3RhbFNhbXBsZXNTZW50IGFz
c2VydF90cnVlOiBJcyB0b3RhbFNhbXBsZXNTZW50IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK0ZBSUwgb3V0Ym91bmQtcnRwJ3Mgc2FtcGxlc0VuY29kZWRXaXRoU2lsayBhc3NlcnRf
dHJ1ZTogSXMgc2FtcGxlc0VuY29kZWRXaXRoU2lsayBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCitGQUlMIG91dGJvdW5kLXJ0cCdzIHNhbXBsZXNFbmNvZGVkV2l0aENlbHQgYXNzZXJ0
X3RydWU6IElzIHNhbXBsZXNFbmNvZGVkV2l0aENlbHQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorRkFJTCBvdXRib3VuZC1ydHAncyB2b2ljZUFjdGl2aXR5RmxhZyBhc3NlcnRfdHJ1
ZTogSXMgdm9pY2VBY3Rpdml0eUZsYWcgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
UEFTUyBvdXRib3VuZC1ydHAncyB0b3RhbEVuY29kZVRpbWUKK1BBU1Mgb3V0Ym91bmQtcnRwJ3Mg
dG90YWxQYWNrZXRTZW5kRGVsYXkKK0ZBSUwgb3V0Ym91bmQtcnRwJ3MgYXZlcmFnZVJ0Y3BJbnRl
cnZhbCBhc3NlcnRfdHJ1ZTogSXMgYXZlcmFnZVJ0Y3BJbnRlcnZhbCBwcmVzZW50IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitGQUlMIG91dGJvdW5kLXJ0cCdzIHF1YWxpdHlMaW1pdGF0aW9uUmVh
c29uIGFzc2VydF90cnVlOiBJcyBxdWFsaXR5TGltaXRhdGlvblJlYXNvbiBwcmVzZW50IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIG91dGJvdW5kLXJ0cCdzIHF1YWxpdHlMaW1pdGF0aW9u
RHVyYXRpb25zIGFzc2VydF90cnVlOiBJcyBxdWFsaXR5TGltaXRhdGlvbkR1cmF0aW9ucyBwcmVz
ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIG91dGJvdW5kLXJ0cCdzIHF1YWxpdHlM
aW1pdGF0aW9uUmVzb2x1dGlvbkNoYW5nZXMKK0ZBSUwgb3V0Ym91bmQtcnRwJ3MgcGVyRHNjcFBh
Y2tldHNTZW50IGFzc2VydF90cnVlOiBJcyBwZXJEc2NwUGFja2V0c1NlbnQgcHJlc2VudCBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBvdXRib3VuZC1ydHAncyBuYWNrQ291bnQKK1BBU1Mg
b3V0Ym91bmQtcnRwJ3MgZmlyQ291bnQKK1BBU1Mgb3V0Ym91bmQtcnRwJ3MgcGxpQ291bnQKK0ZB
SUwgb3V0Ym91bmQtcnRwJ3Mgc2xpQ291bnQgYXNzZXJ0X3RydWU6IElzIHNsaUNvdW50IHByZXNl
bnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgb3V0Ym91bmQtcnRwJ3MgZW5jb2Rlcklt
cGxlbWVudGF0aW9uIGFzc2VydF90cnVlOiBJcyBlbmNvZGVySW1wbGVtZW50YXRpb24gcHJlc2Vu
dCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBvdXRib3VuZC1ydHAncyBwYWNrZXRzU2Vu
dAorUEFTUyBvdXRib3VuZC1ydHAncyBieXRlc1NlbnQKK1BBU1Mgb3V0Ym91bmQtcnRwJ3Mgc3Ny
YworUEFTUyBvdXRib3VuZC1ydHAncyBraW5kCitQQVNTIG91dGJvdW5kLXJ0cCdzIHRyYW5zcG9y
dElkCitQQVNTIG91dGJvdW5kLXJ0cCdzIGNvZGVjSWQKK1BBU1Mgb3V0Ym91bmQtcnRwJ3MgdGlt
ZXN0YW1wCitQQVNTIG91dGJvdW5kLXJ0cCdzIHR5cGUKK1BBU1Mgb3V0Ym91bmQtcnRwJ3MgaWQK
K1BBU1MgcmVtb3RlLWluYm91bmQtcnRwJ3MgbG9jYWxJZAorUEFTUyByZW1vdGUtaW5ib3VuZC1y
dHAncyByb3VuZFRyaXBUaW1lCitGQUlMIHJlbW90ZS1pbmJvdW5kLXJ0cCdzIHRvdGFsUm91bmRU
cmlwVGltZSBhc3NlcnRfdHJ1ZTogSXMgdG90YWxSb3VuZFRyaXBUaW1lIHByZXNlbnQgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgcmVtb3RlLWluYm91bmQtcnRwJ3MgZnJhY3Rpb25Mb3N0
IGFzc2VydF90cnVlOiBJcyBmcmFjdGlvbkxvc3QgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorRkFJTCByZW1vdGUtaW5ib3VuZC1ydHAncyByZXBvcnRzUmVjZWl2ZWQgYXNzZXJ0X3Ry
dWU6IElzIHJlcG9ydHNSZWNlaXZlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitG
QUlMIHJlbW90ZS1pbmJvdW5kLXJ0cCdzIHJvdW5kVHJpcFRpbWVNZWFzdXJlbWVudHMgYXNzZXJ0
X3RydWU6IElzIHJvdW5kVHJpcFRpbWVNZWFzdXJlbWVudHMgcHJlc2VudCBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorRkFJTCByZW1vdGUtaW5ib3VuZC1ydHAncyBwYWNrZXRzUmVjZWl2ZWQgYXNz
ZXJ0X3RydWU6IElzIHBhY2tldHNSZWNlaXZlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitGQUlMIHJlbW90ZS1pbmJvdW5kLXJ0cCdzIHBhY2tldHNMb3N0IGFzc2VydF90cnVlOiBJ
cyBwYWNrZXRzTG9zdCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIHJlbW90
ZS1pbmJvdW5kLXJ0cCdzIGppdHRlciBhc3NlcnRfdHJ1ZTogSXMgaml0dGVyIHByZXNlbnQgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgcmVtb3RlLWluYm91bmQtcnRwJ3MgcGFja2V0c0Rp
c2NhcmRlZCBhc3NlcnRfdHJ1ZTogSXMgcGFja2V0c0Rpc2NhcmRlZCBwcmVzZW50IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitGQUlMIHJlbW90ZS1pbmJvdW5kLXJ0cCdzIHBhY2tldHNSZXBhaXJl
ZCBhc3NlcnRfdHJ1ZTogSXMgcGFja2V0c1JlcGFpcmVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK0ZBSUwgcmVtb3RlLWluYm91bmQtcnRwJ3MgYnVyc3RQYWNrZXRzTG9zdCBhc3Nl
cnRfdHJ1ZTogSXMgYnVyc3RQYWNrZXRzTG9zdCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitGQUlMIHJlbW90ZS1pbmJvdW5kLXJ0cCdzIGJ1cnN0UGFja2V0c0Rpc2NhcmRlZCBhc3Nl
cnRfdHJ1ZTogSXMgYnVyc3RQYWNrZXRzRGlzY2FyZGVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK0ZBSUwgcmVtb3RlLWluYm91bmQtcnRwJ3MgYnVyc3RMb3NzQ291bnQgYXNzZXJ0
X3RydWU6IElzIGJ1cnN0TG9zc0NvdW50IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
K0ZBSUwgcmVtb3RlLWluYm91bmQtcnRwJ3MgYnVyc3REaXNjYXJkQ291bnQgYXNzZXJ0X3RydWU6
IElzIGJ1cnN0RGlzY2FyZENvdW50IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgcmVtb3RlLWluYm91bmQtcnRwJ3MgYnVyc3RMb3NzUmF0ZSBhc3NlcnRfdHJ1ZTogSXMgYnVy
c3RMb3NzUmF0ZSBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIHJlbW90ZS1p
bmJvdW5kLXJ0cCdzIGJ1cnN0RGlzY2FyZFJhdGUgYXNzZXJ0X3RydWU6IElzIGJ1cnN0RGlzY2Fy
ZFJhdGUgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCByZW1vdGUtaW5ib3Vu
ZC1ydHAncyBnYXBMb3NzUmF0ZSBhc3NlcnRfdHJ1ZTogSXMgZ2FwTG9zc1JhdGUgcHJlc2VudCBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCByZW1vdGUtaW5ib3VuZC1ydHAncyBnYXBEaXNj
YXJkUmF0ZSBhc3NlcnRfdHJ1ZTogSXMgZ2FwRGlzY2FyZFJhdGUgcHJlc2VudCBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorRkFJTCByZW1vdGUtaW5ib3VuZC1ydHAncyBmcmFtZXNEcm9wcGVkIGFz
c2VydF90cnVlOiBJcyBmcmFtZXNEcm9wcGVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK0ZBSUwgcmVtb3RlLWluYm91bmQtcnRwJ3MgcGFydGlhbEZyYW1lc0xvc3QgYXNzZXJ0X3Ry
dWU6IElzIHBhcnRpYWxGcmFtZXNMb3N0IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
K0ZBSUwgcmVtb3RlLWluYm91bmQtcnRwJ3MgZnVsbEZyYW1lc0xvc3QgYXNzZXJ0X3RydWU6IElz
IGZ1bGxGcmFtZXNMb3N0IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgcmVt
b3RlLWluYm91bmQtcnRwJ3Mgc3NyYworUEFTUyByZW1vdGUtaW5ib3VuZC1ydHAncyBraW5kCitQ
QVNTIHJlbW90ZS1pbmJvdW5kLXJ0cCdzIHRyYW5zcG9ydElkCitQQVNTIHJlbW90ZS1pbmJvdW5k
LXJ0cCdzIGNvZGVjSWQKK1BBU1MgcmVtb3RlLWluYm91bmQtcnRwJ3MgdGltZXN0YW1wCitQQVNT
IHJlbW90ZS1pbmJvdW5kLXJ0cCdzIHR5cGUKK1BBU1MgcmVtb3RlLWluYm91bmQtcnRwJ3MgaWQK
K0ZBSUwgcmVtb3RlLW91dGJvdW5kLXJ0cCdzIGxvY2FsSWQgYXNzZXJ0X3RydWU6IElzIGxvY2Fs
SWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCByZW1vdGUtb3V0Ym91bmQt
cnRwJ3MgcmVtb3RlVGltZXN0YW1wIGFzc2VydF90cnVlOiBJcyByZW1vdGVUaW1lc3RhbXAgcHJl
c2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCByZW1vdGUtb3V0Ym91bmQtcnRwJ3Mg
cmVwb3J0c1NlbnQgYXNzZXJ0X3RydWU6IElzIHJlcG9ydHNTZW50IHByZXNlbnQgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgcmVtb3RlLW91dGJvdW5kLXJ0cCdzIHJvdW5kVHJpcFRpbWUg
YXNzZXJ0X3RydWU6IElzIHJvdW5kVHJpcFRpbWUgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorRkFJTCByZW1vdGUtb3V0Ym91bmQtcnRwJ3MgdG90YWxSb3VuZFRyaXBUaW1lIGFzc2Vy
dF90cnVlOiBJcyB0b3RhbFJvdW5kVHJpcFRpbWUgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorRkFJTCByZW1vdGUtb3V0Ym91bmQtcnRwJ3Mgcm91bmRUcmlwVGltZU1lYXN1cmVtZW50
cyBhc3NlcnRfdHJ1ZTogSXMgcm91bmRUcmlwVGltZU1lYXN1cmVtZW50cyBwcmVzZW50IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIHJlbW90ZS1vdXRib3VuZC1ydHAncyBwYWNrZXRzU2Vu
dCBhc3NlcnRfdHJ1ZTogSXMgcGFja2V0c1NlbnQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorRkFJTCByZW1vdGUtb3V0Ym91bmQtcnRwJ3MgYnl0ZXNTZW50IGFzc2VydF90cnVlOiBJ
cyBieXRlc1NlbnQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCByZW1vdGUt
b3V0Ym91bmQtcnRwJ3Mgc3NyYyBhc3NlcnRfdHJ1ZTogSXMgc3NyYyBwcmVzZW50IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitGQUlMIHJlbW90ZS1vdXRib3VuZC1ydHAncyBraW5kIGFzc2VydF90
cnVlOiBJcyBraW5kIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgcmVtb3Rl
LW91dGJvdW5kLXJ0cCdzIHRyYW5zcG9ydElkIGFzc2VydF90cnVlOiBJcyB0cmFuc3BvcnRJZCBw
cmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIHJlbW90ZS1vdXRib3VuZC1ydHAn
cyBjb2RlY0lkIGFzc2VydF90cnVlOiBJcyBjb2RlY0lkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK0ZBSUwgcmVtb3RlLW91dGJvdW5kLXJ0cCdzIHRpbWVzdGFtcCBhc3NlcnRfdHJ1
ZTogSXMgdGltZXN0YW1wIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgcmVt
b3RlLW91dGJvdW5kLXJ0cCdzIHR5cGUgYXNzZXJ0X3RydWU6IElzIHR5cGUgcHJlc2VudCBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCByZW1vdGUtb3V0Ym91bmQtcnRwJ3MgaWQgYXNzZXJ0
X3RydWU6IElzIGlkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgY3NyYydz
IGNvbnRyaWJ1dG9yU3NyYyBhc3NlcnRfdHJ1ZTogSXMgY29udHJpYnV0b3JTc3JjIHByZXNlbnQg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgY3NyYydzIGluYm91bmRSdHBTdHJlYW1JZCBh
c3NlcnRfdHJ1ZTogSXMgaW5ib3VuZFJ0cFN0cmVhbUlkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK0ZBSUwgY3NyYydzIHBhY2tldHNDb250cmlidXRlZFRvIGFzc2VydF90cnVlOiBJ
cyBwYWNrZXRzQ29udHJpYnV0ZWRUbyBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitG
QUlMIGNzcmMncyBhdWRpb0xldmVsIGFzc2VydF90cnVlOiBJcyBhdWRpb0xldmVsIHByZXNlbnQg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgY3NyYydzIHRpbWVzdGFtcCBhc3NlcnRfdHJ1
ZTogSXMgdGltZXN0YW1wIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgY3Ny
YydzIHR5cGUgYXNzZXJ0X3RydWU6IElzIHR5cGUgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorRkFJTCBjc3JjJ3MgaWQgYXNzZXJ0X3RydWU6IElzIGlkIHByZXNlbnQgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKK1BBU1MgcGVlci1jb25uZWN0aW9uJ3MgZGF0YUNoYW5uZWxzT3BlbmVk
CitQQVNTIHBlZXItY29ubmVjdGlvbidzIGRhdGFDaGFubmVsc0Nsb3NlZAorRkFJTCBwZWVyLWNv
bm5lY3Rpb24ncyBkYXRhQ2hhbm5lbHNSZXF1ZXN0ZWQgYXNzZXJ0X3RydWU6IElzIGRhdGFDaGFu
bmVsc1JlcXVlc3RlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIHBlZXIt
Y29ubmVjdGlvbidzIGRhdGFDaGFubmVsc0FjY2VwdGVkIGFzc2VydF90cnVlOiBJcyBkYXRhQ2hh
bm5lbHNBY2NlcHRlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIHBlZXIt
Y29ubmVjdGlvbidzIHRpbWVzdGFtcAorUEFTUyBwZWVyLWNvbm5lY3Rpb24ncyB0eXBlCitQQVNT
IHBlZXItY29ubmVjdGlvbidzIGlkCitQQVNTIGRhdGEtY2hhbm5lbCdzIGxhYmVsCitQQVNTIGRh
dGEtY2hhbm5lbCdzIHByb3RvY29sCitGQUlMIGRhdGEtY2hhbm5lbCdzIGRhdGFDaGFubmVsSWRl
bnRpZmllciBhc3NlcnRfdHJ1ZTogSXMgZGF0YUNoYW5uZWxJZGVudGlmaWVyIHByZXNlbnQgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgZGF0YS1jaGFubmVsJ3Mgc3RhdGUKK1BBU1MgZGF0
YS1jaGFubmVsJ3MgbWVzc2FnZXNTZW50CitQQVNTIGRhdGEtY2hhbm5lbCdzIGJ5dGVzU2VudAor
UEFTUyBkYXRhLWNoYW5uZWwncyBtZXNzYWdlc1JlY2VpdmVkCitQQVNTIGRhdGEtY2hhbm5lbCdz
IGJ5dGVzUmVjZWl2ZWQKK1BBU1MgZGF0YS1jaGFubmVsJ3MgdGltZXN0YW1wCitQQVNTIGRhdGEt
Y2hhbm5lbCdzIHR5cGUKK1BBU1MgZGF0YS1jaGFubmVsJ3MgaWQKK0ZBSUwgbWVkaWEtc291cmNl
J3MgYXVkaW9MZXZlbCBhc3NlcnRfdHJ1ZTogSXMgYXVkaW9MZXZlbCBwcmVzZW50IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitGQUlMIG1lZGlhLXNvdXJjZSdzIHRvdGFsQXVkaW9FbmVyZ3kgYXNz
ZXJ0X3RydWU6IElzIHRvdGFsQXVkaW9FbmVyZ3kgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorRkFJTCBtZWRpYS1zb3VyY2UncyB0b3RhbFNhbXBsZXNEdXJhdGlvbiBhc3NlcnRfdHJ1
ZTogSXMgdG90YWxTYW1wbGVzRHVyYXRpb24gcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorRkFJTCBtZWRpYS1zb3VyY2UncyBlY2hvUmV0dXJuTG9zcyBhc3NlcnRfdHJ1ZTogSXMgZWNo
b1JldHVybkxvc3MgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBtZWRpYS1z
b3VyY2UncyBlY2hvUmV0dXJuTG9zc0VuaGFuY2VtZW50IGFzc2VydF90cnVlOiBJcyBlY2hvUmV0
dXJuTG9zc0VuaGFuY2VtZW50IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwg
bWVkaWEtc291cmNlJ3Mgd2lkdGggYXNzZXJ0X3RydWU6IElzIHdpZHRoIHByZXNlbnQgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgbWVkaWEtc291cmNlJ3MgaGVpZ2h0IGFzc2VydF90cnVl
OiBJcyBoZWlnaHQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBtZWRpYS1z
b3VyY2UncyBiaXREZXB0aCBhc3NlcnRfdHJ1ZTogSXMgYml0RGVwdGggcHJlc2VudCBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBtZWRpYS1zb3VyY2UncyBmcmFtZXMgYXNzZXJ0X3RydWU6
IElzIGZyYW1lcyBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIG1lZGlhLXNv
dXJjZSdzIGZyYW1lc1BlclNlY29uZCBhc3NlcnRfdHJ1ZTogSXMgZnJhbWVzUGVyU2Vjb25kIHBy
ZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgbWVkaWEtc291cmNlJ3MgdHJhY2tJ
ZGVudGlmaWVyCitQQVNTIG1lZGlhLXNvdXJjZSdzIGtpbmQKK0ZBSUwgbWVkaWEtc291cmNlJ3Mg
cmVsYXllZFNvdXJjZSBhc3NlcnRfdHJ1ZTogSXMgcmVsYXllZFNvdXJjZSBwcmVzZW50IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitQQVNTIG1lZGlhLXNvdXJjZSdzIHRpbWVzdGFtcAorUEFTUyBt
ZWRpYS1zb3VyY2UncyB0eXBlCitQQVNTIG1lZGlhLXNvdXJjZSdzIGlkCitGQUlMIHNlbmRlcidz
IG1lZGlhU291cmNlSWQgYXNzZXJ0X3RydWU6IElzIG1lZGlhU291cmNlSWQgcHJlc2VudCBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBzZW5kZXIncyB0cmFja0lkZW50aWZpZXIgYXNzZXJ0
X3RydWU6IElzIHRyYWNrSWRlbnRpZmllciBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitGQUlMIHNlbmRlcidzIGVuZGVkIGFzc2VydF90cnVlOiBJcyBlbmRlZCBwcmVzZW50IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIHNlbmRlcidzIGtpbmQgYXNzZXJ0X3RydWU6IElzIGtp
bmQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBzZW5kZXIncyB0aW1lc3Rh
bXAgYXNzZXJ0X3RydWU6IElzIHRpbWVzdGFtcCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitGQUlMIHNlbmRlcidzIHR5cGUgYXNzZXJ0X3RydWU6IElzIHR5cGUgcHJlc2VudCBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBzZW5kZXIncyBpZCBhc3NlcnRfdHJ1ZTogSXMgaWQg
cHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCByZWNlaXZlcidzIHRyYWNrSWRl
bnRpZmllciBhc3NlcnRfdHJ1ZTogSXMgdHJhY2tJZGVudGlmaWVyIHByZXNlbnQgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgcmVjZWl2ZXIncyBlbmRlZCBhc3NlcnRfdHJ1ZTogSXMgZW5k
ZWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCByZWNlaXZlcidzIGtpbmQg
YXNzZXJ0X3RydWU6IElzIGtpbmQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJ
TCByZWNlaXZlcidzIHRpbWVzdGFtcCBhc3NlcnRfdHJ1ZTogSXMgdGltZXN0YW1wIHByZXNlbnQg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgcmVjZWl2ZXIncyB0eXBlIGFzc2VydF90cnVl
OiBJcyB0eXBlIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgcmVjZWl2ZXIn
cyBpZCBhc3NlcnRfdHJ1ZTogSXMgaWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
RkFJTCB0cmFuc3BvcnQncyBwYWNrZXRzU2VudCBhc3NlcnRfdHJ1ZTogSXMgcGFja2V0c1NlbnQg
cHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCB0cmFuc3BvcnQncyBwYWNrZXRz
UmVjZWl2ZWQgYXNzZXJ0X3RydWU6IElzIHBhY2tldHNSZWNlaXZlZCBwcmVzZW50IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitQQVNTIHRyYW5zcG9ydCdzIGJ5dGVzU2VudAorUEFTUyB0cmFuc3Bv
cnQncyBieXRlc1JlY2VpdmVkCitGQUlMIHRyYW5zcG9ydCdzIHJ0Y3BUcmFuc3BvcnRTdGF0c0lk
IGFzc2VydF90cnVlOiBJcyBydGNwVHJhbnNwb3J0U3RhdHNJZCBwcmVzZW50IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCitGQUlMIHRyYW5zcG9ydCdzIGljZVJvbGUgYXNzZXJ0X3RydWU6IElzIGlj
ZVJvbGUgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCB0cmFuc3BvcnQncyBp
Y2VMb2NhbFVzZXJuYW1lRnJhZ21lbnQgYXNzZXJ0X3RydWU6IElzIGljZUxvY2FsVXNlcm5hbWVG
cmFnbWVudCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIHRyYW5zcG9ydCdz
IGR0bHNTdGF0ZQorRkFJTCB0cmFuc3BvcnQncyBpY2VTdGF0ZSBhc3NlcnRfdHJ1ZTogSXMgaWNl
U3RhdGUgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyB0cmFuc3BvcnQncyBz
ZWxlY3RlZENhbmRpZGF0ZVBhaXJJZAorUEFTUyB0cmFuc3BvcnQncyBsb2NhbENlcnRpZmljYXRl
SWQKK1BBU1MgdHJhbnNwb3J0J3MgcmVtb3RlQ2VydGlmaWNhdGVJZAorUEFTUyB0cmFuc3BvcnQn
cyB0bHNWZXJzaW9uCitQQVNTIHRyYW5zcG9ydCdzIGR0bHNDaXBoZXIKK1BBU1MgdHJhbnNwb3J0
J3Mgc3J0cENpcGhlcgorRkFJTCB0cmFuc3BvcnQncyB0bHNHcm91cCBhc3NlcnRfdHJ1ZTogSXMg
dGxzR3JvdXAgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCB0cmFuc3BvcnQn
cyBzZWxlY3RlZENhbmRpZGF0ZVBhaXJDaGFuZ2VzIGFzc2VydF90cnVlOiBJcyBzZWxlY3RlZENh
bmRpZGF0ZVBhaXJDaGFuZ2VzIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
dHJhbnNwb3J0J3MgdGltZXN0YW1wCitQQVNTIHRyYW5zcG9ydCdzIHR5cGUKK1BBU1MgdHJhbnNw
b3J0J3MgaWQKK1BBU1MgY2FuZGlkYXRlLXBhaXIncyB0cmFuc3BvcnRJZAorUEFTUyBjYW5kaWRh
dGUtcGFpcidzIGxvY2FsQ2FuZGlkYXRlSWQKK1BBU1MgY2FuZGlkYXRlLXBhaXIncyByZW1vdGVD
YW5kaWRhdGVJZAorUEFTUyBjYW5kaWRhdGUtcGFpcidzIHN0YXRlCitQQVNTIGNhbmRpZGF0ZS1w
YWlyJ3Mgbm9taW5hdGVkCitGQUlMIGNhbmRpZGF0ZS1wYWlyJ3MgcGFja2V0c1NlbnQgYXNzZXJ0
X3RydWU6IElzIHBhY2tldHNTZW50IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgY2FuZGlkYXRlLXBhaXIncyBwYWNrZXRzUmVjZWl2ZWQgYXNzZXJ0X3RydWU6IElzIHBhY2tl
dHNSZWNlaXZlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIGNhbmRpZGF0
ZS1wYWlyJ3MgYnl0ZXNTZW50CitQQVNTIGNhbmRpZGF0ZS1wYWlyJ3MgYnl0ZXNSZWNlaXZlZAor
RkFJTCBjYW5kaWRhdGUtcGFpcidzIGxhc3RQYWNrZXRTZW50VGltZXN0YW1wIGFzc2VydF90cnVl
OiBJcyBsYXN0UGFja2V0U2VudFRpbWVzdGFtcCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitGQUlMIGNhbmRpZGF0ZS1wYWlyJ3MgbGFzdFBhY2tldFJlY2VpdmVkVGltZXN0YW1wIGFz
c2VydF90cnVlOiBJcyBsYXN0UGFja2V0UmVjZWl2ZWRUaW1lc3RhbXAgcHJlc2VudCBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBjYW5kaWRhdGUtcGFpcidzIGZpcnN0UmVxdWVzdFRpbWVz
dGFtcCBhc3NlcnRfdHJ1ZTogSXMgZmlyc3RSZXF1ZXN0VGltZXN0YW1wIHByZXNlbnQgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgY2FuZGlkYXRlLXBhaXIncyBsYXN0UmVxdWVzdFRpbWVz
dGFtcCBhc3NlcnRfdHJ1ZTogSXMgbGFzdFJlcXVlc3RUaW1lc3RhbXAgcHJlc2VudCBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBjYW5kaWRhdGUtcGFpcidzIGxhc3RSZXNwb25zZVRpbWVz
dGFtcCBhc3NlcnRfdHJ1ZTogSXMgbGFzdFJlc3BvbnNlVGltZXN0YW1wIHByZXNlbnQgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgY2FuZGlkYXRlLXBhaXIncyB0b3RhbFJvdW5kVHJpcFRp
bWUKK1BBU1MgY2FuZGlkYXRlLXBhaXIncyBjdXJyZW50Um91bmRUcmlwVGltZQorUEFTUyBjYW5k
aWRhdGUtcGFpcidzIGF2YWlsYWJsZU91dGdvaW5nQml0cmF0ZQorRkFJTCBjYW5kaWRhdGUtcGFp
cidzIGF2YWlsYWJsZUluY29taW5nQml0cmF0ZSBhc3NlcnRfdHJ1ZTogSXMgYXZhaWxhYmxlSW5j
b21pbmdCaXRyYXRlIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgY2FuZGlk
YXRlLXBhaXIncyBjaXJjdWl0QnJlYWtlclRyaWdnZXJDb3VudCBhc3NlcnRfdHJ1ZTogSXMgY2ly
Y3VpdEJyZWFrZXJUcmlnZ2VyQ291bnQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
UEFTUyBjYW5kaWRhdGUtcGFpcidzIHJlcXVlc3RzUmVjZWl2ZWQKK1BBU1MgY2FuZGlkYXRlLXBh
aXIncyByZXF1ZXN0c1NlbnQKK1BBU1MgY2FuZGlkYXRlLXBhaXIncyByZXNwb25zZXNSZWNlaXZl
ZAorUEFTUyBjYW5kaWRhdGUtcGFpcidzIHJlc3BvbnNlc1NlbnQKK0ZBSUwgY2FuZGlkYXRlLXBh
aXIncyByZXRyYW5zbWlzc2lvbnNSZWNlaXZlZCBhc3NlcnRfdHJ1ZTogSXMgcmV0cmFuc21pc3Np
b25zUmVjZWl2ZWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBjYW5kaWRh
dGUtcGFpcidzIHJldHJhbnNtaXNzaW9uc1NlbnQgYXNzZXJ0X3RydWU6IElzIHJldHJhbnNtaXNz
aW9uc1NlbnQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBjYW5kaWRhdGUt
cGFpcidzIGNvbnNlbnRSZXF1ZXN0c1NlbnQgYXNzZXJ0X3RydWU6IElzIGNvbnNlbnRSZXF1ZXN0
c1NlbnQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBjYW5kaWRhdGUtcGFp
cidzIGNvbnNlbnRFeHBpcmVkVGltZXN0YW1wIGFzc2VydF90cnVlOiBJcyBjb25zZW50RXhwaXJl
ZFRpbWVzdGFtcCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIGNhbmRpZGF0
ZS1wYWlyJ3MgcGFja2V0c0Rpc2NhcmRlZE9uU2VuZCBhc3NlcnRfdHJ1ZTogSXMgcGFja2V0c0Rp
c2NhcmRlZE9uU2VuZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIGNhbmRp
ZGF0ZS1wYWlyJ3MgYnl0ZXNEaXNjYXJkZWRPblNlbmQgYXNzZXJ0X3RydWU6IElzIGJ5dGVzRGlz
Y2FyZGVkT25TZW5kIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgY2FuZGlk
YXRlLXBhaXIncyByZXF1ZXN0Qnl0ZXNTZW50IGFzc2VydF90cnVlOiBJcyByZXF1ZXN0Qnl0ZXNT
ZW50IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgY2FuZGlkYXRlLXBhaXIn
cyBjb25zZW50UmVxdWVzdEJ5dGVzU2VudCBhc3NlcnRfdHJ1ZTogSXMgY29uc2VudFJlcXVlc3RC
eXRlc1NlbnQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBjYW5kaWRhdGUt
cGFpcidzIHJlc3BvbnNlQnl0ZXNTZW50IGFzc2VydF90cnVlOiBJcyByZXNwb25zZUJ5dGVzU2Vu
dCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIGNhbmRpZGF0ZS1wYWlyJ3Mg
dGltZXN0YW1wCitQQVNTIGNhbmRpZGF0ZS1wYWlyJ3MgdHlwZQorUEFTUyBjYW5kaWRhdGUtcGFp
cidzIGlkCitQQVNTIGxvY2FsLWNhbmRpZGF0ZSdzIHRyYW5zcG9ydElkCitGQUlMIGxvY2FsLWNh
bmRpZGF0ZSdzIGFkZHJlc3MgYXNzZXJ0X3RydWU6IElzIGFkZHJlc3MgcHJlc2VudCBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBsb2NhbC1jYW5kaWRhdGUncyBwb3J0CitQQVNTIGxvY2Fs
LWNhbmRpZGF0ZSdzIHByb3RvY29sCitQQVNTIGxvY2FsLWNhbmRpZGF0ZSdzIGNhbmRpZGF0ZVR5
cGUKK1BBU1MgbG9jYWwtY2FuZGlkYXRlJ3MgcHJpb3JpdHkKK0ZBSUwgbG9jYWwtY2FuZGlkYXRl
J3MgdXJsIGFzc2VydF90cnVlOiBJcyB1cmwgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorRkFJTCBsb2NhbC1jYW5kaWRhdGUncyByZWxheVByb3RvY29sIGFzc2VydF90cnVlOiBJcyBy
ZWxheVByb3RvY29sIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgbG9jYWwt
Y2FuZGlkYXRlJ3MgdGltZXN0YW1wCitQQVNTIGxvY2FsLWNhbmRpZGF0ZSdzIHR5cGUKK1BBU1Mg
bG9jYWwtY2FuZGlkYXRlJ3MgaWQKK1BBU1MgcmVtb3RlLWNhbmRpZGF0ZSdzIHRyYW5zcG9ydElk
CitGQUlMIHJlbW90ZS1jYW5kaWRhdGUncyBhZGRyZXNzIGFzc2VydF90cnVlOiBJcyBhZGRyZXNz
IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgcmVtb3RlLWNhbmRpZGF0ZSdz
IHBvcnQKK1BBU1MgcmVtb3RlLWNhbmRpZGF0ZSdzIHByb3RvY29sCitQQVNTIHJlbW90ZS1jYW5k
aWRhdGUncyBjYW5kaWRhdGVUeXBlCitQQVNTIHJlbW90ZS1jYW5kaWRhdGUncyBwcmlvcml0eQor
RkFJTCByZW1vdGUtY2FuZGlkYXRlJ3MgdXJsIGFzc2VydF90cnVlOiBJcyB1cmwgcHJlc2VudCBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCByZW1vdGUtY2FuZGlkYXRlJ3MgcmVsYXlQcm90
b2NvbCBhc3NlcnRfdHJ1ZTogSXMgcmVsYXlQcm90b2NvbCBwcmVzZW50IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitQQVNTIHJlbW90ZS1jYW5kaWRhdGUncyB0aW1lc3RhbXAKK1BBU1MgcmVtb3Rl
LWNhbmRpZGF0ZSdzIHR5cGUKK1BBU1MgcmVtb3RlLWNhbmRpZGF0ZSdzIGlkCitQQVNTIGNlcnRp
ZmljYXRlJ3MgZmluZ2VycHJpbnQKK1BBU1MgY2VydGlmaWNhdGUncyBmaW5nZXJwcmludEFsZ29y
aXRobQorUEFTUyBjZXJ0aWZpY2F0ZSdzIGJhc2U2NENlcnRpZmljYXRlCitGQUlMIGNlcnRpZmlj
YXRlJ3MgaXNzdWVyQ2VydGlmaWNhdGVJZCBhc3NlcnRfdHJ1ZTogSXMgaXNzdWVyQ2VydGlmaWNh
dGVJZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIGNlcnRpZmljYXRlJ3Mg
dGltZXN0YW1wCitQQVNTIGNlcnRpZmljYXRlJ3MgdHlwZQorUEFTUyBjZXJ0aWZpY2F0ZSdzIGlk
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjLXN0YXRzL3N1cHBvcnRlZC1zdGF0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtc3RhdHMvc3VwcG9ydGVkLXN0YXRzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmQwOGExNmIxMWVjM2RmYWJhYWQ1YWY3MGI4ZjM4MjU1MjI2YzVhOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjLXN0YXRzL3N1cHBvcnRlZC1zdGF0cy5odG1sCkBAIC0wLDAgKzEsMTUxIEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1l
b3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5TdXBwb3J0IGZvciBhbGwgc3RhdHMgZGVmaW5l
ZCBpbiBXZWJSVEMgU3RhdHM8L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vd2VicnRjL2RpY3Rpb25hcnkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi93ZWJydGMvUlRDU3RhdHMtaGVs
cGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvLyBpbnNwaXJlZCBmcm9t
IHNpbWlsYXIgdGVzdCBmb3IgTVRJIHN0YXRzIGluIC4uL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMuaHRtbAorCisKKworLy8gRnJvbSBodHRwczovL3cz
Yy5naXRodWIuaW8vd2VicnRjLXN0YXRzL3dlYnJ0Yy1zdGF0cy5odG1sI3J0Y3N0YXRzdHlwZS1z
dHIqCisKK2NvbnN0IGRpY3Rpb25hcnlOYW1lcyA9IHsKKyAgImNvZGVjIjogIlJUQ0NvZGVjU3Rh
dHMiLAorICAiaW5ib3VuZC1ydHAiOiAiUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzIiwKKyAgIm91
dGJvdW5kLXJ0cCI6ICJSVENPdXRib3VuZFJ0cFN0cmVhbVN0YXRzIiwKKyAgInJlbW90ZS1pbmJv
dW5kLXJ0cCI6ICJSVENSZW1vdGVJbmJvdW5kUnRwU3RyZWFtU3RhdHMiLAorICAicmVtb3RlLW91
dGJvdW5kLXJ0cCI6ICJSVENSZW1vdGVPdXRib3VuZFJ0cFN0cmVhbVN0YXRzIiwKKyAgImNzcmMi
OiAiUlRDUnRwQ29udHJpYnV0aW5nU291cmNlU3RhdHMiLAorICAicGVlci1jb25uZWN0aW9uIjog
IlJUQ1BlZXJDb25uZWN0aW9uU3RhdHMiLAorICAiZGF0YS1jaGFubmVsIjogIlJUQ0RhdGFDaGFu
bmVsU3RhdHMiLAorICAibWVkaWEtc291cmNlIjogeworICAgIGF1ZGlvOiAiUlRDQXVkaW9Tb3Vy
Y2VTdGF0cyIsCisgICAgdmlkZW86ICJSVENWaWRlb1NvdXJjZVN0YXRzIgorICB9LAorICAic2Vu
ZGVyIjogeworICAgIGF1ZGlvOiAiUlRDQXVkaW9TZW5kZXJTdGF0cyIsCisgICAgdmlkZW86ICJS
VENWaWRlb1NlbmRlclN0YXRzIgorICB9LAorICAicmVjZWl2ZXIiOiB7CisgICAgYXVkaW86ICJS
VENBdWRpb1JlY2VpdmVyU3RhdHMiLAorICAgIHZpZGVvOiAiUlRDVmlkZW9SZWNlaXZlclN0YXRz
IiwKKyAgfSwKKyAgInRyYW5zcG9ydCI6ICJSVENUcmFuc3BvcnRTdGF0cyIsCisgICJjYW5kaWRh
dGUtcGFpciI6ICJSVENJY2VDYW5kaWRhdGVQYWlyU3RhdHMiLAorICAibG9jYWwtY2FuZGlkYXRl
IjogIlJUQ0ljZUNhbmRpZGF0ZVN0YXRzIiwKKyAgInJlbW90ZS1jYW5kaWRhdGUiOiAiUlRDSWNl
Q2FuZGlkYXRlU3RhdHMiLAorICAiY2VydGlmaWNhdGUiOiAiUlRDQ2VydGlmaWNhdGVTdGF0cyIs
Cit9OworCisKK2FzeW5jIGZ1bmN0aW9uIGdldEFsbFN0YXRzKHQsIHBjKSB7CisgIC8vIFRyeSB0
byBvYnRhaW4gYXMgbWFueSBzdGF0cyBhcyBwb3NzaWJsZSwgd2FpdGluZyB1cCB0byAyMCBzZWNv
bmRzIGZvcgorICAvLyByb3VuZFRyaXBUaW1lIHdoaWNoIGNhbiB0YWtlIHNldmVyYWwgUlRDUCBt
ZXNzYWdlcyB0byBjYWxjdWxhdGUuCisgIGxldCBzdGF0czsKKyAgZm9yIChsZXQgaSA9IDA7IGkg
PCAyMDsgaSsrKSB7CisgICAgc3RhdHMgPSBhd2FpdCBwYy5nZXRTdGF0cygpOworICAgIGNvbnN0
IHZhbHVlcyA9IFsuLi5zdGF0cy52YWx1ZXMoKV07CisgICAgY29uc3QgW2F1ZGlvLCB2aWRlb10g
PSBbImF1ZGlvIiwgInZpZGVvIl0ubWFwKGtpbmQgPT4KKyAgICAgIHZhbHVlcy5maW5kKHMgPT4g
cy50eXBlID09ICJyZW1vdGUtaW5ib3VuZC1ydHAiICYmIHMua2luZCA9PSBraW5kKSk7CisgICAg
aWYgKGF1ZGlvICYmICJyb3VuZFRyaXBUaW1lIiBpbiBhdWRpbyAmJgorICAgICAgICB2aWRlbyAm
JiAicm91bmRUcmlwVGltZSIgaW4gdmlkZW8pIHsKKyAgICAgIHJldHVybiBzdGF0czsKKyAgICB9
CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChyLCAxMDAwKSk7Cisg
IH0KKyAgcmV0dXJuIHN0YXRzOworfQorCisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICAgIC8vIGxvYWQgdGhlIElETCB0byBrbm93IHdoaWNoIG1lbWJlcnMgdG8gYmUgbG9va2luZyBm
b3IKKworICAgIGNvbnN0IGlkbCA9IGF3YWl0IGZldGNoKCIvaW50ZXJmYWNlcy93ZWJydGMtc3Rh
dHMuaWRsIikudGhlbihyID0+IHIudGV4dCgpKTsKKyAgICAvLyBmb3IgUlRDU3RhdHMgZGVmaW5p
dGlvbgorICAgIGNvbnN0IHdlYnJ0Y0lkbCA9IGF3YWl0IGZldGNoKCIvaW50ZXJmYWNlcy93ZWJy
dGMuaWRsIikudGhlbihyID0+IHIudGV4dCgpKTsKKyAgICBjb25zdCBhc3RBcnJheSA9IFdlYklE
TDIucGFyc2UoaWRsICsgd2VicnRjSWRsKTsKKworICAgIGxldCBhbGwgPSB7fTsKKyAgICBmb3Ig
KGxldCB0eXBlIGluIGRpY3Rpb25hcnlOYW1lcykgeworICAgICAgICAvLyBUT0RPOiBtYWtlIHVz
ZSBvZiBhdWRpby92aWRlbyBkaXN0aW5jdGlvbgorICAgICAgbGV0IGRpY3Rpb25hcmllcyA9IGRp
Y3Rpb25hcnlOYW1lc1t0eXBlXS5hdWRpbyA/IE9iamVjdC52YWx1ZXMoZGljdGlvbmFyeU5hbWVz
W3R5cGVdKSA6IFtkaWN0aW9uYXJ5TmFtZXNbdHlwZV1dOworICAgICAgYWxsW3R5cGVdID0gW107
CisgICAgICBsZXQgaSA9IDA7CisgICAgICAvLyBSZWN1cnNpdmVseSBjb2xsZWN0IG1lbWJlcnMg
ZnJvbSBpbmhlcml0ZWQgZGljdGlvbmFyaWVzCisgICAgICB3aGlsZSAoaSA8IGRpY3Rpb25hcmll
cy5sZW5ndGgpIHsKKyAgICAgICAgY29uc3QgZGljdE5hbWUgPSBkaWN0aW9uYXJpZXNbaV07Cisg
ICAgICAgIGNvbnN0IGRpY3QgPSBhc3RBcnJheS5maW5kKGkgPT4gaS5uYW1lID09PSBkaWN0TmFt
ZSAmJiBpLnR5cGUgPT09ICJkaWN0aW9uYXJ5Iik7CisgICAgICAgIGlmIChkaWN0ICYmIGRpY3Qu
bWVtYmVycykgeworICAgICAgICAgIGFsbFt0eXBlXSA9IGFsbFt0eXBlXS5jb25jYXQoZGljdC5t
ZW1iZXJzLm1hcChtID0+IG0ubmFtZSkpOworICAgICAgICAgIGlmIChkaWN0LmluaGVyaXRhbmNl
KSB7CisgICAgICAgICAgICBkaWN0aW9uYXJpZXMucHVzaChkaWN0LmluaGVyaXRhbmNlKTsKKyAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaSsrOworICAgICAgfQorICAgICAgLy8gVW5p
cXVlLWlmeQorICAgICAgYWxsW3R5cGVdID0gWy4uLm5ldyBTZXQoYWxsW3R5cGVdKV07CisgICAg
fQorCisKKyAgY29uc3QgcmVtYWluaW5nID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhbGwp
KTsKKyAgICBmb3IgKGNvbnN0IHR5cGUgaW4gcmVtYWluaW5nKSB7CisgICAgICByZW1haW5pbmdb
dHlwZV0gPSBuZXcgU2V0KHJlbWFpbmluZ1t0eXBlXSk7CisgICAgfQorCisgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9z
ZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGNvbnN0IGRjMSA9IHBjMS5jcmVhdGVEYXRh
Q2hhbm5lbCgiZHVtbXkiLCB7bmVnb3RpYXRlZDogdHJ1ZSwgaWQ6IDB9KTsKKyAgY29uc3QgZGMy
ID0gcGMyLmNyZWF0ZURhdGFDaGFubmVsKCJkdW1teSIsIHtuZWdvdGlhdGVkOiB0cnVlLCBpZDog
MH0pOworCisgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHt2aWRlbzogdHJ1
ZSwgYXVkaW86dHJ1ZX0pOworICBmb3IgKGNvbnN0IHRyYWNrIG9mIHN0cmVhbS5nZXRUcmFja3Mo
KSkgeworICAgIHBjMS5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKKyAgICBwYzIuYWRkVHJhY2so
dHJhY2ssIHN0cmVhbSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiB0cmFjay5zdG9wKCkpOwor
ICB9CisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGF3YWl0IGV4Y2hhbmdl
T2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBjb25zdCBzdGF0cyA9IGF3YWl0IGdldEFsbFN0YXRz
KHQsIHBjMSk7CisKKyAgLy8gVGhlIGZvY3VzIG9mIHRoaXMgdGVzdCBpcyBub3QgQVBJIGNvcnJl
Y3RuZXNzLCBidXQgcmF0aGVyIHRvIHByb3ZpZGUgYW4KKyAgLy8gYWNjZXNzaWJsZSBtZXRyaWMg
b2YgaW1wbGVtZW50YXRpb24gcHJvZ3Jlc3MgYnkgZGljdGlvbmFyeSBtZW1iZXIuIFdlIGNvdW50
CisgIC8vIHdoZXRoZXIgd2UndmUgc2VlbiBlYWNoIGRpY3Rpb25hcnkncyBtZW1iZXJzIGluIGdl
dFN0YXRzKCkuCisKKyAgdGVzdCh0ID0+IHsKKyAgICBmb3IgKGNvbnN0IHN0YXQgb2Ygc3RhdHMu
dmFsdWVzKCkpIHsKKyAgICAgIGlmIChhbGxbc3RhdC50eXBlXSkgeworICAgICAgICBjb25zdCBt
ZW1iZXJOYW1lcyA9IGFsbFtzdGF0LnR5cGVdOworICAgICAgICBjb25zdCByZW1haW5pbmdOYW1l
cyA9IHJlbWFpbmluZ1tzdGF0LnR5cGVdOworICAgICAgICBhc3NlcnRfdHJ1ZShtZW1iZXJOYW1l
cy5sZW5ndGggPiAwLCAiVGVzdCBlcnJvci4gTm8gbWVtYmVyIGZvdW5kLiIpOworICAgICAgICBm
b3IgKGNvbnN0IG1lbWJlck5hbWUgb2YgbWVtYmVyTmFtZXMpIHsKKyAgICAgICAgICBpZiAobWVt
YmVyTmFtZSBpbiBzdGF0KSB7CisgICAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhzdGF0W21l
bWJlck5hbWVdLCB1bmRlZmluZWQsICJOb3QgdW5kZWZpbmVkIik7CisgICAgICAgICAgICByZW1h
aW5pbmdOYW1lcy5kZWxldGUobWVtYmVyTmFtZSk7CisgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICB9CisgICAgfQorICB9LCAiVmFsaWRhdGluZyBzdGF0cyIpOworCisgIGZvciAoY29uc3Qg
dHlwZSBpbiBhbGwpIHsKKyAgICBmb3IgKGNvbnN0IG1lbWJlck5hbWUgb2YgYWxsW3R5cGVdKSB7
CisgICAgICB0ZXN0KHQgPT4geworICAgICAgICBhc3NlcnRfdHJ1ZSghcmVtYWluaW5nW3R5cGVd
LmhhcyhtZW1iZXJOYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgYElzICR7bWVtYmVyTmFtZX0g
cHJlc2VudGApOworICAgICAgfSwgYCR7dHlwZX0ncyAke21lbWJlck5hbWV9YCk7CisgICAgfQor
ICB9Cit9LCAnZ2V0U3RhdHMgc3VjY2VlZHMnKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtc3RhdHMvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy1zdGF0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2E3NDVlMGRiYzFhMzFm
NWI1NDVlM2U2NGI1ODFmYTVlMzI4NmFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtc3RhdHMvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwyMSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtc3RhdHMvTUVUQS55bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9SRUFETUUubWQKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9nZXRT
dGF0cy1yZW1vdGUtY2FuZGlkYXRlLWFkZHJlc3MuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLXN0YXRzL2lkbGhhcm5lc3Mud2luZG93Lmpz
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtc3Rh
dHMvc3VwcG9ydGVkLXN0YXRzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVy
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMtZXhwZWN0ZWQudHh0CmluZGV4
IDM4MGM0N2NiN2FkZGYxMDY5NjdjMmMwZmUxMWM3Y2VkMTU1NjlhYTAuLmIxNjE3MTcyOGI1MDU2
MmIwZWMwNTI0MTFmMjUzZTc0MjMzMjQ1ZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2Vy
dmVycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4
dApAQCAtMTQwLDE4ICsxNDAsNCBAQCBGQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdp
dGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNzd29yZCwgYW5kCiAgICAgICAgICAg
YWNjZXNzVG9rZW46ICcnCiAgICAgICAgIH0KICAgICAgIH1dIH0pIiBkaWQgbm90IHRocm93Ci1G
QUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNy
ZWRlbnRpYWxUeXBlIG9hdXRoLCBhbmQgc3RyaW5nIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IElu
dmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+Ci0gICAg
ICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewotICAgICAgICB1cmxzOiAndHVybnM6dHVybi5leGFt
cGxlLm9yZycsCi0gICAgICAgIGNyZWRlbnRpYWxUeXBlOiAnb2F1dGgnLAotICAgICAgICB1c2Vy
bmFtZTogJ3VzZXInLAotICAgICAgICBjcmVkZW50aWFsOiAnY3JlZCcKLSAgICAgIH1dIH0pIiBk
aWQgbm90IHRocm93Ci1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggdHVybnMg
c2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCwgYW5kIHN0cmluZyBjcmVkZW50aWFsIHNob3Vs
ZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIo
KSA9PgotICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKLSAgICAgICAgdXJsczogJ3R1cm5z
OnR1cm4uZXhhbXBsZS5vcmcnLAotICAgICAgICBjcmVkZW50aWFsVHlwZTogJ29hdXRoJywKLSAg
ICAgICAgdXNlcm5hbWU6ICd1c2VyJywKLSAgICAgICAgY3JlZGVudGlhbDogJ2NyZWQnCi0gICAg
ICB9XSB9KSIgZGlkIG5vdCB0aHJvdwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZl
cnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCmluZGV4IDFjYmYxZDZjMWRhNDdi
ODBkOWIzZDcxNzNmNzgwNjJmMmU0OWJmMTAuLjM2ZjEyNzc2NzhhYzNlNDAyZTYwZTEyNTRjMzli
YzBkNGQ4NGU4NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Nv
bmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCkBAIC0zNzAsMzYgKzM3MCw0IEBACiAgICAgICB9
XSB9KSk7CiAgIH0sICd3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFzc3dvcmQs
IGFuZCBvYmplY3QgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yJyk7
CiAKLSAgLyoKLSAgICA0LjMuMi4gIFRvIHNldCBhIGNvbmZpZ3VyYXRpb24KLSAgICAgIDExLjYu
IElmIHNjaGVtZSBuYW1lIGlzIHR1cm4gb3IgdHVybnMsIGFuZCBzZXJ2ZXIuY3JlZGVudGlhbFR5
cGUgaXMgIm9hdXRoIiwKLSAgICAgICAgICAgIGFuZCBzZXJ2ZXIuY3JlZGVudGlhbCBpcyBub3Qg
YW4gUlRDT0F1dGhDcmVkZW50aWFsLCB0aGVuIHRocm93IGFuCi0gICAgICAgICAgICBJbnZhbGlk
QWNjZXNzRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgKi8KLSAgY29uZmlnX3Rlc3Qo
bWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZEFjY2Vzc0Vycm9yJywg
KCkgPT4KLSAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7Ci0gICAgICAgIHVybHM6ICd0dXJu
czp0dXJuLmV4YW1wbGUub3JnJywKLSAgICAgICAgY3JlZGVudGlhbFR5cGU6ICdvYXV0aCcsCi0g
ICAgICAgIHVzZXJuYW1lOiAndXNlcicsCi0gICAgICAgIGNyZWRlbnRpYWw6ICdjcmVkJwotICAg
ICAgfV0gfSkpOwotICB9LCAnd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRo
LCBhbmQgc3RyaW5nIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvcicp
OwotCi0gIC8qCi0gICAgVGVzdGVkCi0gICAgICA0LjMuMi4gIFRvIHNldCBhIGNvbmZpZ3VyYXRp
b24KLSAgICAgICAgMTEuMS02LgotCi0gICAgVW50ZXN0YWJsZQotICAgICAgNC4zLjIuICBUbyBz
ZXQgYSBjb25maWd1cmF0aW9uCi0gICAgICAgIDExLjcuICBBcHBlbmQgc2VydmVyIHRvIHZhbGlk
YXRlZFNlcnZlcnMuCi0KLSAgICBDb3ZlcmFnZSBSZXBvcnQKLSAgICAgIFRlc3RlZCAgICAgICAg
IDkKLSAgICAgIE5vdCBUZXN0ZWQgICAgIDAKLSAgICAgIFVudGVzdGFibGUgICAgIDEKLSAgICAg
IFRvdGFsICAgICAgICAgMTAKLSAgICovCi0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5u
ZWwtY2xvc2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwKaW5kZXggY2Q0YWNlMmE4MzZiZTJj
OWYxOGRlY2E0OGM4YzAxZjVlMWNkZmYxZC4uZTJhNWJhNzcyNDVjZTRkODIwNGY0NzNjZmVkMWMx
MjIzNzQxNjY3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5l
bC1jbG9zZS5odG1sCkBAIC00NSw3ICs0NSw3IEBAIGZvciAoY29uc3Qgb3B0aW9ucyBvZiBbe30s
IHtuZWdvdGlhdGVkOiB0cnVlLCBpZDogMH1dKSB7CiAgICAgYXNzZXJ0X3RydWUoY2xvc2luZ1Nl
ZW4sICdDbG9zaW5nIGV2ZW50IHdhcyBzZWVuJyk7CiAgIH0sIGBDbG9zZSAke21vZGV9IGNhdXNl
cyBjbG9zaW5nIGFuZCBjbG9zZSBldmVudCB0byBiZSBjYWxsZWRgKTsKIAotICBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3Qg
cGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzEuY2xvc2UoKSk7CiAgICAgY29uc3QgW2NoYW5uZWwxLCBjaGFubmVsMl0gPSBhd2FpdCBjcmVh
dGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucywgcGMxKTsKQEAgLTEwMCw1ICsxMDAsODEgQEAg
Zm9yIChjb25zdCBvcHRpb25zIG9mIFt7fSwge25lZ290aWF0ZWQ6IHRydWUsIGlkOiAwfV0pIHsK
ICAgICBwYzEuY2xvc2UoKTsKICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHQuc3Rl
cF90aW1lb3V0KHJlc29sdmUsIDEwKSk7CiAgIH0sIGBDbG9zZSBwZWVyY29ubmVjdGlvbiBhZnRl
ciAke21vZGV9IGNsb3NlIGNhdXNlcyBubyBldmVudHNgKTsKKworICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7
CisgICAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCdub3QtY291bnRlZCcsIG9wdGlvbnMpOworICAg
IGNvbnN0IHRva2VuRGF0YUNoYW5uZWwgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAg
IHBjMi5vbmRhdGFjaGFubmVsID0gcmVzb2x2ZTsKKyAgICB9KTsKKyAgICBleGNoYW5nZUljZUNh
bmRpZGF0ZXMocGMxLCBwYzIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBw
YzIpOworICAgIGlmICghb3B0aW9ucy5uZWdvdGlhdGVkKSB7CisgICAgICBhd2FpdCB0b2tlbkRh
dGFDaGFubmVsOworICAgIH0KKyAgICBsZXQgY2xvc2VFeHBlY3RlZENvdW50ID0gMDsKKyAgICBs
ZXQgZXJyb3JFeHBlY3RlZENvdW50ID0gMDsKKyAgICBsZXQgcmVzb2x2ZUNvdW50SXNaZXJvOwor
ICAgIGxldCB3YWl0Rm9yQ291bnRJc1plcm8gPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAg
ICAgIHJlc29sdmVDb3VudElzWmVybyA9IHJlc29sdmU7CisgICAgfSk7CisgICAgZm9yIChsZXQg
aSA9IDE7IGkgPD0gMTA7IGkrKykgeworICAgICAgaWYgKCdpZCcgaW4gb3B0aW9ucykgeworICAg
ICAgICBvcHRpb25zLmlkID0gaTsKKyAgICAgIH0KKyAgICAgIHBjMS5jcmVhdGVEYXRhQ2hhbm5l
bCgnJywgb3B0aW9ucyk7CisgICAgICBpZiAob3B0aW9ucy5uZWdvdGlhdGVkKSB7CisgICAgICAg
IGNvbnN0IGNoYW5uZWwgPSBwYzIuY3JlYXRlRGF0YUNoYW5uZWwoJycsIG9wdGlvbnMpOworICAg
ICAgICBjaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgdC5zdGVwX2Z1bmMoZXZlbnQg
PT4geworICAgICAgICAgIGFzc2VydF90cnVlKGV2ZW50IGluc3RhbmNlb2YgUlRDRXJyb3JFdmVu
dCwgJ2Vycm9yIGV2ZW50ICcgKyBldmVudCk7CisgICAgICAgICAgZXJyb3JFeHBlY3RlZENvdW50
IC09IDE7CisgICAgICAgIH0pKTsKKyAgICAgICAgY2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCdj
bG9zZScsIHQuc3RlcF9mdW5jKGV2ZW50ID0+IHsKKyAgICAgICAgICBjbG9zZUV4cGVjdGVkQ291
bnQgLT0gMTsKKyAgICAgICAgICBpZiAoY2xvc2VFeHBlY3RlZENvdW50ID09IDApIHsKKyAgICAg
ICAgICAgIHJlc29sdmVDb3VudElzWmVybygpOworICAgICAgICAgIH0KKyAgICAgICAgfSkpOwor
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Cisg
ICAgICAgICAgcGMyLm9uZGF0YWNoYW5uZWwgPSAoe2NoYW5uZWx9KSA9PiB7CisgICAgICAgICAg
ICBjaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgdC5zdGVwX2Z1bmMoZXZlbnQgPT4g
eworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShldmVudCBpbnN0YW5jZW9mIFJUQ0Vycm9yRXZl
bnQpOworICAgICAgICAgICAgICBlcnJvckV4cGVjdGVkQ291bnQgLT0gMTsKKyAgICAgICAgICAg
IH0pKTsKKyAgICAgICAgICAgIGNoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xvc2UnLCB0LnN0
ZXBfZnVuYyhldmVudCA9PiB7CisgICAgICAgICAgICAgIGNsb3NlRXhwZWN0ZWRDb3VudCAtPSAx
OworICAgICAgICAgICAgICBpZiAoY2xvc2VFeHBlY3RlZENvdW50ID09IDApIHsKKyAgICAgICAg
ICAgICAgICByZXNvbHZlQ291bnRJc1plcm8oKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfSkpOworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgIH0KKyAgICAgICAgfSk7
CisgICAgICB9CisgICAgICArK2Nsb3NlRXhwZWN0ZWRDb3VudDsKKyAgICAgICsrZXJyb3JFeHBl
Y3RlZENvdW50OworICAgIH0KKyAgICBhc3NlcnRfZXF1YWxzKGNsb3NlRXhwZWN0ZWRDb3VudCwg
MTApOworICAgIC8vIFdlIGhhdmUgdG8gd2FpdCB1bnRpbCBTQ1RQIGlzIGNvbm5lY3RlZCBiZWZv
cmUgd2UgY2xvc2UsIG90aGVyd2lzZQorICAgIC8vIHRoZXJlIHdpbGwgYmUgbm8gc2lnbmFsLgor
ICAgIC8vIFRoZSBzdGF0ZSBpcyBub3QgYXZhaWxhYmxlIHVuZGVyIFBsYW4gQiwgYW5kIHVucmVs
aWFibGUgb24gbmVnb3RpYXRlZAorICAgIC8vIGNoYW5uZWxzLgorICAgIC8vIFRPRE8oYnVncy53
ZWJydGMub3JnLzEyMjU5KTogUmVtb3ZlIGRlcGVuZGVuY3kgb24gIm5lZ290aWF0ZWQiCisgICAg
aWYgKHBjMS5zY3RwICYmICFvcHRpb25zLm5lZ290aWF0ZWQpIHsKKyAgICAgIHdhaXRGb3JTdGF0
ZShwYzEuc2N0cCwgJ2Nvbm5lY3RlZCcpOworICAgIH0gZWxzZSB7CisgICAgICAvLyBVbmRlciBw
bGFuIEIsIHdlIGRvbid0IGhhdmUgYSBkdGxzIHRyYW5zcG9ydCB0byB3YWl0IG9uLCBzbyBqdXN0
CisgICAgICAvLyB3YWl0IGEgYml0LgorICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCAxMDApKTsKKyAgICB9CisgICAgcGMxLmNsb3NlKCk7
CisgICAgYXdhaXQgd2FpdEZvckNvdW50SXNaZXJvOworICAgIGFzc2VydF9lcXVhbHMoY2xvc2VF
eHBlY3RlZENvdW50LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKGVycm9yRXhwZWN0ZWRDb3VudCwg
MCk7CisgIH0sIGBDbG9zZSBwZWVyY29ubmVjdGlvbiBjYXVzZXMgY2xvc2UgZXZlbnQgYW5kIGVy
cm9yIG9uIG1hbnkgY2hhbm5lbHMsICR7bW9kZX1gKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
RGF0YUNoYW5uZWwtaWNlUmVzdGFydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pY2VSZXN0YXJ0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWExODc3ZmJkNjc0Y2EwZDY1ZTdlZjBmMjZlY2Uw
ODhiYzAzYzU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtaWNlUmVzdGFydC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgRGF0YSBjaGFubmVsIHJlbWFpbnMgdXNhYmxl
IGFmdGVyIElDRSByZXN0YXJ0CitQQVNTIERhdGEgY2hhbm5lbCByZW1haW5zIHVzYWJsZSBhdCBl
YWNoIHN0ZXAgb2YgYW4gSUNFIHJlc3RhcnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtaWNlUmVz
dGFydC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDRGF0YUNoYW5uZWwtaWNlUmVzdGFydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZWM1MGE1
ODcwOTM4OGJhZTcyZTk2ODQ2MzAzMTBjMzI1NjFlNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hh
bm5lbC1pY2VSZXN0YXJ0Lmh0bWwKQEAgLTAsMCArMSw3NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+
Cis8dGl0bGU+UlRDRGF0YUNoYW5uZWwgaW50ZXJhY3Rpb25zIHdpdGggSUNFIHJlc3RhcnQ8L3Rp
dGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorJ3VzZSBzdHJpY3QnOworCithc3luYyBmdW5jdGlvbiBjaGVja0NhblBhc3NEYXRhKGNo
YW5uZWwxLCBjaGFubmVsMikgeworICBjaGFubmVsMS5zZW5kKCdoZWxsbycpOworICBjb25zdCBt
ZXNzYWdlID0gYXdhaXQgYXdhaXRNZXNzYWdlKGNoYW5uZWwyKTsKKyAgYXNzZXJ0X2VxdWFscyht
ZXNzYWdlLCAnaGVsbG8nKTsKK30KKworYXN5bmMgZnVuY3Rpb24gcGluZ1BvbmdEYXRhKGNoYW5u
ZWwxLCBjaGFubmVsMiwgc2l6ZT0xKSB7CisgIGNoYW5uZWwxLnNlbmQoJ2hlbGxvJyk7CisgIGNv
bnN0IHJlcXVlc3QgPSBhd2FpdCBhd2FpdE1lc3NhZ2UoY2hhbm5lbDIpOworICBhc3NlcnRfZXF1
YWxzKHJlcXVlc3QsICdoZWxsbycpOworICBjb25zdCByZXNwb25zZSA9ICd4Jy5yZXBlYXQoc2l6
ZSk7CisgIGNoYW5uZWwyLnNlbmQocmVzcG9uc2UpOworICBjb25zdCByZXNwb25zZVJlY2VpdmVk
ID0gYXdhaXQgYXdhaXRNZXNzYWdlKGNoYW5uZWwxKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXNwb25z
ZSwgcmVzcG9uc2VSZWNlaXZlZCk7Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
Y29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgY29uc3QgW2NoYW5uZWwx
LCBjaGFubmVsMl0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwge30sIHBjMSwgcGMy
KTsKKyAgY2hhbm5lbDIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB0LnVucmVhY2hlZF9mdW5j
KCkpOworICBjaGFubmVsMi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHQudW5yZWFjaGVkX2Z1
bmMoKSk7CisKKyAgYXdhaXQgY2hlY2tDYW5QYXNzRGF0YShjaGFubmVsMSwgY2hhbm5lbDIpOwor
ICBhd2FpdCBjaGVja0NhblBhc3NEYXRhKGNoYW5uZWwyLCBjaGFubmVsMSk7CisKKyAgcGMxLnJl
c3RhcnRJY2UoKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisKKyAg
YXdhaXQgY2hlY2tDYW5QYXNzRGF0YShjaGFubmVsMSwgY2hhbm5lbDIpOworICBhd2FpdCBjaGVj
a0NhblBhc3NEYXRhKGNoYW5uZWwyLCBjaGFubmVsMSk7CisgIGNoYW5uZWwxLmNsb3NlKCk7Cisg
IGNoYW5uZWwyLmNsb3NlKCk7Cit9LCBgRGF0YSBjaGFubmVsIHJlbWFpbnMgdXNhYmxlIGFmdGVy
IElDRSByZXN0YXJ0YCk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNs
b3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgY29uc3QgW2NoYW5uZWwxLCBjaGFubmVs
Ml0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwge30sIHBjMSwgcGMyKTsKKyAgY2hh
bm5lbDIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB0LnVucmVhY2hlZF9mdW5jKCkpOworICBj
aGFubmVsMi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHQudW5yZWFjaGVkX2Z1bmMoKSk7CisK
KyAgYXdhaXQgcGluZ1BvbmdEYXRhKGNoYW5uZWwxLCBjaGFubmVsMik7CisgIHBjMS5yZXN0YXJ0
SWNlKCk7CisKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgYXdhaXQgcGlu
Z1BvbmdEYXRhKGNoYW5uZWwxLCBjaGFubmVsMik7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNj
cmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGF3YWl0IHBpbmdQb25nRGF0YShjaGFu
bmVsMSwgY2hhbm5lbDIpOworICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBw
YzIuY3JlYXRlQW5zd2VyKCkpOworICBhd2FpdCBwaW5nUG9uZ0RhdGEoY2hhbm5lbDEsIGNoYW5u
ZWwyKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0
aW9uKTsKKyAgYXdhaXQgcGluZ1BvbmdEYXRhKGNoYW5uZWwxLCBjaGFubmVsMik7CisgIGNoYW5u
ZWwxLmNsb3NlKCk7CisgIGNoYW5uZWwyLmNsb3NlKCk7Cit9LCBgRGF0YSBjaGFubmVsIHJlbWFp
bnMgdXNhYmxlIGF0IGVhY2ggc3RlcCBvZiBhbiBJQ0UgcmVzdGFydGApOworCisKKworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNl
bmQtZXhwZWN0ZWQudHh0CmluZGV4IGJlYTE4ZWEwMTBkYjUzYTE3MGM0NDU2NzQwNWFhMDMzODFk
OWM1OWQuLjNiOTUxNDViYTMwODNkZmUwZTVmZGEyMWFlNDE5MjAzMDAxMmFlZjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0RhdGFDaGFubmVsLXNlbmQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQtZXhwZWN0
ZWQudHh0CkBAIC0zLDggKzMsMTAgQEAgUEFTUyBDYWxsaW5nIHNlbmQoKSB3aGVuIGRhdGEgY2hh
bm5lbCBpcyBpbiBjb25uZWN0aW5nIHN0YXRlIHNob3VsZCB0aHJvdyBJbnZhbGkKIFBBU1MgRGF0
YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBzaW1wbGUgc3RyaW5nIGFuZCByZWNlaXZl
IGFzIHN0cmluZwogUEFTUyBEYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIHVuaWNv
ZGUgc3RyaW5nIGFuZCByZWNlaXZlIGFzIHVuaWNvZGUgc3RyaW5nCiBQQVNTIERhdGFjaGFubmVs
IHNob3VsZCBpZ25vcmUgYmluYXJ5VHlwZSBhbmQgYWx3YXlzIHJlY2VpdmUgc3RyaW5nIG1lc3Nh
Z2UgYXMgc3RyaW5nCitQQVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgYW4g
ZW1wdHkgc3RyaW5nIGFuZCByZWNlaXZlIGFuIGVtcHR5IHN0cmluZwogUEFTUyBEYXRhY2hhbm5l
bCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIFVpbnQ4QXJyYXkgbWVzc2FnZSBhbmQgcmVjZWl2ZSBh
cyBBcnJheUJ1ZmZlcgogUEFTUyBEYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIEFy
cmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXIKK1BBU1MgRGF0YWNo
YW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBhbiBlbXB0eSBBcnJheUJ1ZmZlciBtZXNzYWdl
IGFuZCByZWNlaXZlIGFzIEFycmF5QnVmZmVyCiBQQVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBh
YmxlIHRvIHNlbmQgQmxvYiBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5QnVmZmVyCiBQQVNT
IERhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgQXJyYXlCdWZmZXIgbWVzc2FnZSBh
bmQgcmVjZWl2ZSBhcyBCbG9iCiBGQUlMIERhdGFjaGFubmVsIGJpbmFyeVR5cGUgc2hvdWxkIHJl
Y2VpdmUgbWVzc2FnZSBhcyBCbG9iIGJ5IGRlZmF1bHQgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGlu
aXRpYWwgYmluYXJ5VHlwZSB2YWx1ZSB0byBiZSBibG9iIGV4cGVjdGVkICJibG9iIiBidXQgZ290
ICJhcnJheWJ1ZmZlciIKQEAgLTEzLDggKzE1LDEwIEBAIEZBSUwgRGF0YWNoYW5uZWwgc2VuZCgp
IHVwIHRvIG1heCBzaXplIHNob3VsZCBzdWNjZWVkLCBhYm92ZSBtYXggc2l6ZSBzaG91bGQgZmFp
CiBQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBzaW1w
bGUgc3RyaW5nIGFuZCByZWNlaXZlIGFzIHN0cmluZwogUEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFu
bmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgdW5pY29kZSBzdHJpbmcgYW5kIHJlY2VpdmUgYXMg
dW5pY29kZSBzdHJpbmcKIFBBU1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgaWdub3Jl
IGJpbmFyeVR5cGUgYW5kIGFsd2F5cyByZWNlaXZlIHN0cmluZyBtZXNzYWdlIGFzIHN0cmluZwor
UEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgYW4gZW1w
dHkgc3RyaW5nIGFuZCByZWNlaXZlIGFuIGVtcHR5IHN0cmluZwogUEFTUyBOZWdvdGlhdGVkIGRh
dGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgVWludDhBcnJheSBtZXNzYWdlIGFuZCBy
ZWNlaXZlIGFzIEFycmF5QnVmZmVyCiBQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hvdWxk
IGJlIGFibGUgdG8gc2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5
QnVmZmVyCitQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2Vu
ZCBhbiBlbXB0eSBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5QnVmZmVy
CiBQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBCbG9i
IG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXIKIFBBU1MgTmVnb3RpYXRlZCBkYXRh
Y2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJl
Y2VpdmUgYXMgQmxvYgogRkFJTCBOZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJpbmFyeVR5cGUgc2hv
dWxkIHJlY2VpdmUgbWVzc2FnZSBhcyBCbG9iIGJ5IGRlZmF1bHQgYXNzZXJ0X2VxdWFsczogRXhw
ZWN0IGluaXRpYWwgYmluYXJ5VHlwZSB2YWx1ZSB0byBiZSBibG9iIGV4cGVjdGVkICJibG9iIiBi
dXQgZ290ICJhcnJheWJ1ZmZlciIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFD
aGFubmVsLXNlbmQuaHRtbAppbmRleCAxOTUyOTIxZmJmMjZmMmM2ZTk1NDYwMDBhMWU5ODQzYjQ0
MDgyNGU4Li5kNzUyNDVjMzQ3NWM1NmNjOTgzNjU4NzZhM2JkYzRhNjY2ZmI2MzA4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC5odG1sCkBAIC0zNSw4
ICszNSwxMCBAQAogCiAvLyBTaW1wbGUgQVNDSUkgZW5jb2RlZCBzdHJpbmcKIGNvbnN0IGhlbGxv
U3RyaW5nID0gJ2hlbGxvJzsKK2NvbnN0IGVtcHR5U3RyaW5nID0gJyc7CiAvLyBBU0NJSSBlbmNv
ZGVkIGJ1ZmZlciByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3RyaW5nCiBjb25zdCBoZWxsb0J1ZmZl
ciA9IFVpbnQ4QXJyYXkub2YoMHg2OCwgMHg2NSwgMHg2YywgMHg2YywgMHg2Zik7Citjb25zdCBl
bXB0eUJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KCk7CiBjb25zdCBoZWxsb0Jsb2IgPSBuZXcgQmxv
YihbaGVsbG9CdWZmZXJdKTsKIAogLy8gVW5pY29kZSBzdHJpbmcgd2l0aCBtdWx0aXBsZSBjb2Rl
IHVuaXRzCkBAIC0xMTIsNiArMTE0LDIwIEBAIGZvciAoY29uc3Qgb3B0aW9ucyBvZiBbe30sIHtu
ZWdvdGlhdGVkOiB0cnVlLCBpZDogMH1dKSB7CiAgICAgICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2Us
IGhlbGxvU3RyaW5nKTsKICAgICB9KTsKICAgfSwgYCR7bW9kZX0gc2hvdWxkIGlnbm9yZSBiaW5h
cnlUeXBlIGFuZCBhbHdheXMgcmVjZWl2ZSBzdHJpbmcgbWVzc2FnZSBhcyBzdHJpbmdgKTsKKyAg
cHJvbWlzZV90ZXN0KHQgPT4geworICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwg
b3B0aW9ucykKKyAgICAudGhlbigoW2NoYW5uZWwxLCBjaGFubmVsMl0pID0+IHsKKyAgICAgIGNo
YW5uZWwxLnNlbmQoZW1wdHlTdHJpbmcpOworICAgICAgLy8gU2VuZCBhIG5vbi1lbXB0eSBzdHJp
bmcgaW4gY2FzZSB0aGUgaW1wbGVtZW50YXRpb24gaWdub3JlcyBlbXB0eSBtZXNzYWdlcworICAg
ICAgY2hhbm5lbDEuc2VuZChoZWxsb1N0cmluZyk7CisgICAgICByZXR1cm4gYXdhaXRNZXNzYWdl
KGNoYW5uZWwyKQorICAgIH0pLnRoZW4obWVzc2FnZSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxz
KHR5cGVvZiBtZXNzYWdlLCAnc3RyaW5nJywKKyAgICAgICAgJ0V4cGVjdCBtZXNzYWdlIHRvIGJl
IGEgc3RyaW5nJyk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgZW1wdHlTdHJpbmcp
OworICAgIH0pOworICB9LCBgJHttb2RlfSBzaG91bGQgYmUgYWJsZSB0byBzZW5kIGFuIGVtcHR5
IHN0cmluZyBhbmQgcmVjZWl2ZSBhbiBlbXB0eSBzdHJpbmdgKTsKIAogICAvKgogICAgIDYuMi4g
c2VuZCgpCkBAIC0xNzAsNiArMTg2LDIyIEBAIGZvciAoY29uc3Qgb3B0aW9ucyBvZiBbe30sIHtu
ZWdvdGlhdGVkOiB0cnVlLCBpZDogMH1dKSB7CiAgICAgfSk7CiAgIH0sIGAke21vZGV9IHNob3Vs
ZCBiZSBhYmxlIHRvIHNlbmQgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJh
eUJ1ZmZlcmApOwogCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICByZXR1cm4gY3JlYXRlRGF0
YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMpCisgICAgLnRoZW4oKFtjaGFubmVsMSwgY2hhbm5lbDJd
KSA9PiB7CisgICAgICBjaGFubmVsMi5iaW5hcnlUeXBlID0gJ2FycmF5YnVmZmVyJzsKKyAgICAg
IGNoYW5uZWwxLnNlbmQoZW1wdHlCdWZmZXIuYnVmZmVyKTsKKyAgICAgIC8vIFNlbmQgYSBub24t
ZW1wdHkgYnVmZmVyIGluIGNhc2UgdGhlIGltcGxlbWVudGF0aW9uIGlnbm9yZXMgZW1wdHkgbWVz
c2FnZXMKKyAgICAgIGNoYW5uZWwxLnNlbmQoaGVsbG9CdWZmZXIuYnVmZmVyKTsKKyAgICAgIHJl
dHVybiBhd2FpdE1lc3NhZ2UoY2hhbm5lbDIpCisgICAgfSkudGhlbihtZXNzYWdlQnVmZmVyID0+
IHsKKyAgICAgIGFzc2VydF90cnVlKG1lc3NhZ2VCdWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZl
ciwKKyAgICAgICAgJ0V4cGVjdCBtZXNzYWdlQnVmZmVyIHRvIGJlIGFuIEFycmF5QnVmZmVyJyk7
CisKKyAgICAgIGFzc2VydF9lcXVhbHNfdHlwZWRfYXJyYXkobWVzc2FnZUJ1ZmZlciwgZW1wdHlC
dWZmZXIuYnVmZmVyKTsKKyAgICB9KTsKKyAgfSwgYCR7bW9kZX0gc2hvdWxkIGJlIGFibGUgdG8g
c2VuZCBhbiBlbXB0eSBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5QnVm
ZmVyYCk7CisKICAgLyoKICAgICA2LjIuIHNlbmQoKQogICAgICAgMy4gIEV4ZWN1dGUgdGhlIHN1
YiBzdGVwIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIHR5cGUgb2YgdGhlIG1ldGhvZHMgYXJndW1l
bnQ6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3Bv
cnQtc3RhdGUtZXhwZWN0ZWQudHh0CmluZGV4IGYxODk0YmY5NzJmOGMyNjRiZWNhNTc1ZTY2Zjc4
ZjRhMjkyNzNiYzIuLjZkMjFiMzM0NDZkYTY4MDhkNzJiNWFkMDFmNzY4MTgxNzkwZGMyMjAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0R0bHNUcmFuc3BvcnQtc3RhdGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQt
c3RhdGUtZXhwZWN0ZWQudHh0CkBAIC0yLDQgKzIsNSBAQAogUEFTUyBEVExTIHRyYW5zcG9ydCBn
b2VzIHRvIGNvbm5lY3RlZCBzdGF0ZQogRkFJTCBjbG9zZSgpIGNhdXNlcyB0aGUgbG9jYWwgdHJh
bnNwb3J0IHRvIGNsb3NlIGltbWVkaWF0ZWx5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjbG9z
ZWQiIGJ1dCBnb3QgImNvbm5lY3RlZCIKIFBBU1MgY2xvc2UoKSBjYXVzZXMgdGhlIG90aGVyIGVu
ZCdzIERUTFMgdHJhbnNwb3J0IHRvIGNsb3NlCitGQUlMIHN0b3AgYnVuZGxlZCB0cmFuc2NlaXZl
ciByZXRhaW5zIGR0bHMgdHJhbnNwb3J0IHN0YXRlIGFzc2VydF9lcXVhbHM6IGdldFJlY2VpdmVy
cyBkb2VzIG5vdCBleHBvc2UgYSByZWNlaXZlciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2ZXIgZXhw
ZWN0ZWQgMSBidXQgZ290IDIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRs
c1RyYW5zcG9ydC1zdGF0ZS5odG1sCmluZGV4IGQwMjMwZGUwZTY0ZDBkY2Y1YjEzNzFjYzI2ZjU3
MDk1MDUzYThmZDIuLmNhNDlmY2M5NWYyOTdlMDc4ODllY2YzMmMyMWEzNWI5ZTMxMWI2OGIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0R0bHNUcmFuc3BvcnQtc3RhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0YXRlLmh0
bWwKQEAgLTg2LDQgKzg2LDU3IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgYXdhaXQg
cmVzb2x2ZVdoZW4odCwgZHRsc1RyYW5zcG9ydDIsICdjbG9zZWQnKTsKIH0sICdjbG9zZSgpIGNh
dXNlcyB0aGUgb3RoZXIgZW5kXCdzIERUTFMgdHJhbnNwb3J0IHRvIGNsb3NlJyk7CiAKK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgY29uZmlnID0ge2J1bmRsZVBvbGljeTogIm1h
eC1idW5kbGUifTsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZyk7
CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xv
c2UoKSk7CisKKyAgcGMxLm9uaWNlY2FuZGlkYXRlID0gZSA9PiBwYzIuYWRkSWNlQ2FuZGlkYXRl
KGUuY2FuZGlkYXRlKTsKKyAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZSA9PiBwYzEuYWRkSWNlQ2Fu
ZGlkYXRlKGUuY2FuZGlkYXRlKTsKKworICBwYzEuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7Cisg
IHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3Jp
cHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNj
cmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOworICBhd2FpdCBwYzEuc2V0UmVtb3Rl
RGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgIGNvbnN0IFt2aWRlb1RjLCBh
dWRpb1RjXSA9IHBjMS5nZXRUcmFuc2NlaXZlcnMoKTsKKyAgY29uc3QgW3ZpZGVvVHAsIGF1ZGlv
VHBdID0KKyAgICAgIHBjMS5nZXRUcmFuc2NlaXZlcnMoKS5tYXAodGMgPT4gdGMuc2VuZGVyLnRy
YW5zcG9ydCk7CisKKyAgY29uc3QgW3ZpZGVvUGMyVHAsIGF1ZGlvUGMyVHBdID0KKyAgICAgIHBj
Mi5nZXRUcmFuc2NlaXZlcnMoKS5tYXAodGMgPT4gdGMuc2VuZGVyLnRyYW5zcG9ydCk7CisKKyAg
YXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAyLCAncGMxIHRyYW5z
Y2VpdmVyIGNvdW50Jyk7CisgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpLmxl
bmd0aCwgMiwgJ3BjMiB0cmFuc2NlaXZlciBjb3VudCcpOworICBhc3NlcnRfZXF1YWxzKHZpZGVv
VGMuc2VuZGVyLnRyYW5zcG9ydCwgdmlkZW9UYy5yZWNlaXZlci50cmFuc3BvcnQpOworICBhc3Nl
cnRfZXF1YWxzKHZpZGVvVGMuc2VuZGVyLnRyYW5zcG9ydCwgYXVkaW9UYy5zZW5kZXIudHJhbnNw
b3J0KTsKKworICBhd2FpdCBQcm9taXNlLmFsbChbcmVzb2x2ZVdoZW4odCwgdmlkZW9UcCwgJ2Nv
bm5lY3RlZCcpLAorICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdoZW4odCwgdmlkZW9QYzJU
cCwgJ2Nvbm5lY3RlZCcpXSk7CisKKyAgYXNzZXJ0X2VxdWFscyhhdWRpb1RjLnNlbmRlciwgcGMx
LmdldFNlbmRlcnMoKVsxXSk7CisKKyAgbGV0IHN0b3BwZWRUcmFuc2NlaXZlciA9IHBjMS5nZXRU
cmFuc2NlaXZlcnMoKVswXTsKKyAgYXNzZXJ0X2VxdWFscyhzdG9wcGVkVHJhbnNjZWl2ZXIsIHZp
ZGVvVGMpOyAvLyBzYW5pdHkKKyAgbGV0IG9uZW5kZWQgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+
IHsKKyAgICBzdG9wcGVkVHJhbnNjZWl2ZXIucmVjZWl2ZXIudHJhY2sub25lbmRlZCA9IHJlc29s
dmU7CisgIH0pOworICBzdG9wcGVkVHJhbnNjZWl2ZXIuc3RvcCgpOworICBhd2FpdCBvbmVuZGVk
OworCisgIGFzc2VydF9lcXVhbHMoCisgICAgICBwYzEuZ2V0UmVjZWl2ZXJzKCkubGVuZ3RoLCAx
LAorICAgICAgJ2dldFJlY2VpdmVycyBkb2VzIG5vdCBleHBvc2UgYSByZWNlaXZlciBvZiBhIHN0
b3BwZWQgdHJhbnNjZWl2ZXInKTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICAgIHBjMS5nZXRTZW5k
ZXJzKCkubGVuZ3RoLCAxLAorICAgICAgJ2dldFNlbmRlcnMgZG9lcyBub3QgZXhwb3NlIGEgc2Vu
ZGVyIG9mIGEgc3RvcHBlZCB0cmFuc2NlaXZlcicpOworICBhc3NlcnRfZXF1YWxzKGF1ZGlvVGMu
c2VuZGVyLCBwYzEuZ2V0U2VuZGVycygpWzBdKTsgLy8gc2FuaXR5CisgIGFzc2VydF9lcXVhbHMo
YXVkaW9UYy5zZW5kZXIudHJhbnNwb3J0LCBhdWRpb1RwKTsgLy8gc2FuaXR5CisgIGFzc2VydF9l
cXVhbHMoYXVkaW9UcC5zdGF0ZSwgJ2Nvbm5lY3RlZCcpOworfSwgJ3N0b3AgYnVuZGxlZCB0cmFu
c2NlaXZlciByZXRhaW5zIGR0bHMgdHJhbnNwb3J0IHN0YXRlJyk7CisKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5z
aW9uLWhlbHBlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjU5ZWM1OWI4ZGYy
ODQ3ZTdlMmEzYzUxM2QzZDZmZDAxMDI3ZjE2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLWhlbHBlci5qcworKysgL2Rl
di9udWxsCkBAIC0xLDQyICswLDAgQEAKLSd1c2Ugc3RyaWN0JzsKLQotLy8gQ29uc3RydWN0IGFu
IFJUQ0ljZVRyYW5zcG9ydCBpbnN0YW5jZS4gVGhlIGluc3RhbmNlIHdpbGwgYXV0b21hdGljYWxs
eSBiZQotLy8gY2xlYW5lZCB1cCB3aGVuIHRoZSB0ZXN0IGZpbmlzaGVzLgotZnVuY3Rpb24gbWFr
ZUljZVRyYW5zcG9ydCh0KSB7Ci0gIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFu
c3BvcnQoKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBpY2VUcmFuc3BvcnQuc3RvcCgpKTsKLSAg
cmV0dXJuIGljZVRyYW5zcG9ydDsKLX0KLQotLy8gQ29uc3RydWN0IHR3byBSVENJY2VUcmFuc3Bv
cnQgaW5zdGFuY2VzLCBjb25maWd1cmUgdGhlbSB0byBleGNoYW5nZQotLy8gY2FuZGlkYXRlcywg
dGhlbiBnYXRoZXIoKSB0aGVtLgotLy8gUmV0dXJucyBhIDItbGlzdDogWyBSVENJY2VUcmFuc3Bv
cnQsIFJUQ0ljZVRyYW5zcG9ydCBdCi1mdW5jdGlvbiBtYWtlQW5kR2F0aGVyVHdvSWNlVHJhbnNw
b3J0cyh0KSB7Ci0gIGNvbnN0IGxvY2FsVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsK
LSAgY29uc3QgcmVtb3RlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgbG9jYWxU
cmFuc3BvcnQub25pY2VjYW5kaWRhdGUgPSBlID0+IHsKLSAgICBpZiAoZS5jYW5kaWRhdGUpIHsK
LSAgICAgIHJlbW90ZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5kaWRhdGUoZS5jYW5kaWRhdGUpOwot
ICAgIH0KLSAgfTsKLSAgcmVtb3RlVHJhbnNwb3J0Lm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7Ci0g
ICAgaWYgKGUuY2FuZGlkYXRlKSB7Ci0gICAgICBsb2NhbFRyYW5zcG9ydC5hZGRSZW1vdGVDYW5k
aWRhdGUoZS5jYW5kaWRhdGUpOwotICAgIH0KLSAgfTsKLSAgbG9jYWxUcmFuc3BvcnQuZ2F0aGVy
KHt9KTsKLSAgcmVtb3RlVHJhbnNwb3J0LmdhdGhlcih7fSk7Ci0gIHJldHVybiBbIGxvY2FsVHJh
bnNwb3J0LCByZW1vdGVUcmFuc3BvcnQgXTsKLX0KLQotLy8gQ29uc3RydWN0IHR3byBSVENJY2VU
cmFuc3BvcnQgaW5zdGFuY2VzLCBjb25maWd1cmUgdGhlbSB0byBleGNoYW5nZQotLy8gY2FuZGlk
YXRlcyBhbmQgcGFyYW1ldGVycywgdGhlbiBnYXRoZXIoKSBhbmQgc3RhcnQoKSB0aGVtLgotLy8g
UmV0dXJucyBhIDItbGlzdDoKLS8vICAgICBbIGNvbnRyb2xsaW5nIFJUQ0ljZVRyYW5zcG9ydCwK
LS8vICAgICAgIGNvbnRyb2xsZWQgUlRDSWNlVHJhbnNwb3J0IF0KLWZ1bmN0aW9uIG1ha2VHYXRo
ZXJBbmRTdGFydFR3b0ljZVRyYW5zcG9ydHModCkgewotICBjb25zdCBbIGxvY2FsVHJhbnNwb3J0
LCByZW1vdGVUcmFuc3BvcnQgXSA9IG1ha2VBbmRHYXRoZXJUd29JY2VUcmFuc3BvcnRzKHQpOwot
ICBsb2NhbFRyYW5zcG9ydC5zdGFydChyZW1vdGVUcmFuc3BvcnQuZ2V0TG9jYWxQYXJhbWV0ZXJz
KCksICdjb250cm9sbGluZycpOwotICByZW1vdGVUcmFuc3BvcnQuc3RhcnQobG9jYWxUcmFuc3Bv
cnQuZ2V0TG9jYWxQYXJhbWV0ZXJzKCksICdjb250cm9sbGVkJyk7Ci0gIHJldHVybiBbIGxvY2Fs
VHJhbnNwb3J0LCByZW1vdGVUcmFuc3BvcnQgXTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1l
eHRlbnNpb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzODIwNzZiYmZhOGI3
ZTk1ZWI5YTkxODVmZGZjZmQ5MmJlYjg3N2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0KLUZBSUwgUlRDSWNlVHJhbnNwb3J0IGNv
bnN0cnVjdG9yIGRvZXMgbm90IHRocm93IElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgUlRDSWNl
VHJhbnNwb3J0IGluaXRpYWwgcHJvcGVydGllcyBhcmUgc2V0IElsbGVnYWwgY29uc3RydWN0b3IK
LUZBSUwgZ2F0aGVyKCkgd2l0aCB7IGljZVNlcnZlcnM6IG51bGwgfSBzaG91bGQgdGhyb3cgVHlw
ZUVycm9yIElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgZ2F0aGVyKCkgd2l0aCB7IGljZVNlcnZl
cnM6IHVuZGVmaW5lZCB9IHNob3VsZCBzdWNjZWVkIElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwg
Z2F0aGVyKCkgd2l0aCBvbmUgdHVybnMgc2VydmVyLCBvbmUgdHVybiBzZXJ2ZXIsIHVzZXJuYW1l
LCBjcmVkZW50aWFsIHNob3VsZCBzdWNjZWVkIElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgZ2F0
aGVyKCkgd2l0aCAyIHN0dW4gc2VydmVycyBzaG91bGQgc3VjY2VlZCBJbGxlZ2FsIGNvbnN0cnVj
dG9yCi1GQUlMIGdhdGhlcigpIHRocm93cyBpZiBjbG9zZWQgSWxsZWdhbCBjb25zdHJ1Y3Rvcgot
RkFJTCBnYXRoZXIoKSB0cmFuc2l0aW9ucyBnYXRoZXJpbmdTdGF0ZSB0byAnZ2F0aGVyaW5nJyBJ
bGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIGdhdGhlcigpIHRocm93cyBpZiBjYWxsZWQgdHdpY2Ug
SWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBldmVudHVhbGx5IHRyYW5zaXRpb24gZ2F0aGVyaW5n
U3RhdGUgdG8gJ2NvbXBsZXRlJyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IElsbGVnYWwgY29uc3RydWN0b3IiCi1GQUlMIG9u
aWNlY2FuZGlkYXRlIGZpcmVzIHdpdGggbnVsbCBjYW5kaWRhdGUgYmVmb3JlIGdhdGhlcmluZ1N0
YXRlIHRyYW5zaXRpb25zIHRvICdjb21wbGV0ZScgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9y
IgotRkFJTCBnYXRoZXIoKSByZXR1cm5zIGF0IGxlYXN0IG9uZSBob3N0IGNhbmRpZGF0ZSBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IElsbGVnYWwgY29uc3RydWN0b3IiCi1GQUlMIGdhdGhlcigpIHJldHVybnMgbm8gY2FuZGlk
YXRlcyB3aXRoIHsgZ2F0aGVyUG9saWN5OiAncmVsYXknfSBhbmQgbm8gdHVybiBzZXJ2ZXJzIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogSWxsZWdhbCBjb25zdHJ1Y3RvciIKLUZBSUwgc3RhcnQoKSB0aHJvd3MgaWYgY2xvc2Vk
IElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgc3RhcnQoKSB0aHJvd3MgaWYgdXNlcm5hbWVGcmFn
bWVudCBvciBwYXNzd29yZCBub3Qgc2V0IElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgc3RhcnQo
KSB0aHJvd3MgaWYgdXNlcm5hbWVGcmFnbWVudCBkb2VzIG5vdCBjb25mb3JtIHRvIHN5bnRheCBJ
bGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIHN0YXJ0KCkgdGhyb3dzIGlmIHBhc3N3b3JkIGRvZXMg
bm90IGNvbmZvcm0gdG8gc3ludGF4IElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgc3RhcnQoKSBk
b2VzIG5vdCB0cmFuc2l0aW9uIHN0YXRlIHRvICdjaGVja2luZycgaWYgbm8gcmVtb3RlIGNhbmRp
ZGF0ZXMgYWRkZWQgSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBzdGFydCgpIHdpdGggZGVmYXVs
dCByb2xlIHNldHMgcm9sZSBhdHRyaWJ1dGUgdG8gJ2NvbnRyb2xsZWQnIElsbGVnYWwgY29uc3Ry
dWN0b3IKLUZBSUwgc3RhcnQoKSBzZXRzIHJvbGUgYXR0cmlidXRlIHRvICdjb250cm9sbGluZycg
SWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBhZGRSZW1vdGVDYW5kaWRhdGUoKSB0aHJvd3MgaWYg
Y2xvc2VkIElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgYWRkUmVtb3RlQ2FuZGlkYXRlKCkgdGhy
b3dzIG9uIGludmFsaWQgY2FuZGlkYXRlIElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgc3RhcnQo
KSB0cmFuc2l0aW9ucyBzdGF0ZSB0byAnY2hlY2tpbmcnIGlmIG9uZSByZW1vdGUgY2FuZGlkYXRl
IGhhZCBiZWVuIGFkZGVkIElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgYWRkUmVtb3RlQ2FuZGlk
YXRlKCkgdHJhbnNpdGlvbnMgc3RhdGUgdG8gJ2NoZWNraW5nJyBpZiBzdGFydCgpIGhhZCBiZWVu
IGNhbGxlZCBiZWZvcmUgSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBzdGFydCgpIHRocm93cyBp
ZiBsYXRlciBjYWxsZWQgd2l0aCBhIGRpZmZlcmVudCByb2xlIElsbGVnYWwgY29uc3RydWN0b3IK
LUZBSUwgc3RhcnQoKSBmbHVzaGVzIHJlbW90ZSBjYW5kaWRhdGVzIGFuZCB0cmFuc2l0aW9ucyBz
dGF0ZSB0byAnbmV3JyBpZiBsYXRlciBjYWxsZWQgd2l0aCBkaWZmZXJlbnQgcmVtb3RlIHBhcmFt
ZXRlcnMgSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBUd28gUlRDSWNlVHJhbnNwb3J0cyBjb25u
ZWN0IHRvIGVhY2ggb3RoZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9yIgotRkFJTCBUd28g
UlRDSWNlVHJhbnNwb3J0cyBjb25maWd1cmVkIHdpdGggdGhlIGNvbnRyb2xsaW5nIHJvbGUgcmVz
b2x2ZSB0aGUgY29uZmxpY3QgaW4gYmFuZCBhbmQgc3RpbGwgY29ubmVjdC4gcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBJbGxl
Z2FsIGNvbnN0cnVjdG9yIgotRkFJTCBUd28gUlRDSWNlVHJhbnNwb3J0cyBjb25maWd1cmVkIHdp
dGggdGhlIGNvbnRyb2xsZWQgcm9sZSByZXNvbHZlIHRoZSBjb25mbGljdCBpbiBiYW5kIGFuZCBz
dGlsbCBjb25uZWN0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IElsbGVnYWwgY29uc3RydWN0b3IiCi1GQUlMIFNlbGVjdGVk
IGNhbmRpZGF0ZSBwYWlyIGNoYW5nZXMgb25jZSB0aGUgUlRDSWNlVHJhbnNwb3J0cyBjb25uZWN0
LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJU
eXBlRXJyb3I6IElsbGVnYWwgY29uc3RydWN0b3IiCi1GQUlMIGdldFNlbGVjdGVkQ2FuZGlkYXRl
UGFpcigpIHJldHVybnMgbnVsbCBvbmNlIHRoZSBSVENJY2VUcmFuc3BvcnQgaXMgc3RvcHBlZC4g
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9yIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0
ZW5zaW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiNGQ1MmFkY2U1NjczYmFiNWQ1Mjc1MzZkNjdmODlh
MDNhNDhjZDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNl
VHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYyICsw
LDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5SVENJ
Y2VUcmFuc3BvcnQtZXh0ZW5zaW9ucy5odHRwcy5odG1sPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJSVENJY2VU
cmFuc3BvcnQtZXh0ZW5zaW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotJ3VzZSBz
dHJpY3QnOwotCi0vLyBUaGVzZSB0ZXN0cyBhcmUgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBleHRl
bnNpb24gc3BlY2lmaWNhdGlvbjoKLS8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtaWNl
LwotCi0vLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tCi0v
LyBSVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLWhlbHBlci5qczoKLS8vICAgbWFrZUljZVRyYW5z
cG9ydAotLy8gICBtYWtlR2F0aGVyQW5kU3RhcnRUd29JY2VUcmFuc3BvcnRzCi0KLWNvbnN0IElD
RV9VRlJBRyA9ICd1Jy5yZXBlYXQoNCk7Ci1jb25zdCBJQ0VfUFdEID0gJ3AnLnJlcGVhdCgyMik7
Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNw
b3J0KCk7Ci19LCAnUlRDSWNlVHJhbnNwb3J0IGNvbnN0cnVjdG9yIGRvZXMgbm90IHRocm93Jyk7
Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNw
b3J0KCk7Ci0gIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LnJvbGUsIG51bGwsICdFeHBlY3Qg
cm9sZSB0byBiZSBudWxsJyk7Ci0gIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LnN0YXRlLCAn
bmV3JywgYEV4cGVjdCBzdGF0ZSB0byBiZSAnbmV3J2ApOwotICBhc3NlcnRfZXF1YWxzKGljZVRy
YW5zcG9ydC5nYXRoZXJpbmdTdGF0ZSwgJ25ldycsCi0gICAgYEV4cGVjdCBnYXRoZXJpbmdTdGF0
ZSB0byBiZSAnbmV3J2ApOwotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGljZVRyYW5zcG9ydC5nZXRM
b2NhbENhbmRpZGF0ZXMoKSwgW10sCi0gICAgJ0V4cGVjdCBubyBsb2NhbCBjYW5kaWRhdGVzJyk7
Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldFJlbW90ZUNhbmRpZGF0ZXMo
KSwgW10sCi0gICAgJ0V4cGVjdCBubyByZW1vdGUgY2FuZGlkYXRlcycpOwotICBhc3NlcnRfZXF1
YWxzKGljZVRyYW5zcG9ydC5nZXRTZWxlY3RlZENhbmRpZGF0ZVBhaXIoKSwgbnVsbCwKLSAgICAn
RXhwZWN0IG5vIHNlbGVjdGVkIGNhbmRpZGF0ZSBwYWlyJyk7Ci0gIGFzc2VydF9ub3RfZXF1YWxz
KGljZVRyYW5zcG9ydC5nZXRMb2NhbFBhcmFtZXRlcnMoKSwgbnVsbCwKLSAgICAnRXhwZWN0IGxv
Y2FsIHBhcmFtZXRlcnMgZ2VuZXJhdGVkJyk7Ci0gIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0
LmdldFJlbW90ZVBhcmFtZXRlcnMoKSwgbnVsbCwKLSAgICAnRXhwZWN0IG5vIHJlbW90ZSBwYXJh
bWV0ZXJzJyk7Ci19LCAnUlRDSWNlVHJhbnNwb3J0IGluaXRpYWwgcHJvcGVydGllcyBhcmUgc2V0
Jyk7Ci0KLXRlc3QodCA9PiB7Ci0gIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3Bv
cnQodCk7Ci0gIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PgotICAgIGljZVRyYW5z
cG9ydC5nYXRoZXIoeyBpY2VTZXJ2ZXJzOiBudWxsIH0pKTsKLX0sICdnYXRoZXIoKSB3aXRoIHsg
aWNlU2VydmVyczogbnVsbCB9IHNob3VsZCB0aHJvdyBUeXBlRXJyb3InKTsKLQotdGVzdCh0ID0+
IHsKLSAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgaWNlVHJh
bnNwb3J0LmdhdGhlcih7IGljZVNlcnZlcnM6IHVuZGVmaW5lZCB9KTsKLX0sICdnYXRoZXIoKSB3
aXRoIHsgaWNlU2VydmVyczogdW5kZWZpbmVkIH0gc2hvdWxkIHN1Y2NlZWQnKTsKLQotdGVzdCh0
ID0+IHsKLSAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgaWNl
VHJhbnNwb3J0LmdhdGhlcih7IGljZVNlcnZlcnM6IFt7Ci0gICAgdXJsczogWyd0dXJuczp0dXJu
LmV4YW1wbGUub3JnJywgJ3R1cm46dHVybi5leGFtcGxlLm5ldCddLAotICAgIHVzZXJuYW1lOiAn
dXNlcicsCi0gICAgY3JlZGVudGlhbDogJ2NyZWQnLAotICB9XSB9KTsKLX0sICdnYXRoZXIoKSB3
aXRoIG9uZSB0dXJucyBzZXJ2ZXIsIG9uZSB0dXJuIHNlcnZlciwgdXNlcm5hbWUsIGNyZWRlbnRp
YWwnICsKLSAgICAnIHNob3VsZCBzdWNjZWVkJyk7Ci0KLXRlc3QodCA9PiB7Ci0gIGNvbnN0IGlj
ZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0gIGljZVRyYW5zcG9ydC5nYXRoZXIo
eyBpY2VTZXJ2ZXJzOiBbewotICAgIHVybHM6IFsnc3R1bjpzdHVuMS5leGFtcGxlLm5ldCcsICdz
dHVuOnN0dW4yLmV4YW1wbGUubmV0J10sCi0gIH1dIH0pOwotfSwgJ2dhdGhlcigpIHdpdGggMiBz
dHVuIHNlcnZlcnMgc2hvdWxkIHN1Y2NlZWQnKTsKLQotdGVzdCh0ID0+IHsKLSAgY29uc3QgaWNl
VHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgaWNlVHJhbnNwb3J0LnN0b3AoKTsK
LSAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gaWNlVHJhbnNw
b3J0LmdhdGhlcih7fSkpOwotfSwgJ2dhdGhlcigpIHRocm93cyBpZiBjbG9zZWQnKTsKLQotdGVz
dCh0ID0+IHsKLSAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAg
aWNlVHJhbnNwb3J0LmdhdGhlcih7fSk7Ci0gIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0Lmdh
dGhlcmluZ1N0YXRlLCAnZ2F0aGVyaW5nJyk7Ci19LCBgZ2F0aGVyKCkgdHJhbnNpdGlvbnMgZ2F0
aGVyaW5nU3RhdGUgdG8gJ2dhdGhlcmluZydgKTsKLQotdGVzdCh0ID0+IHsKLSAgY29uc3QgaWNl
VHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgaWNlVHJhbnNwb3J0LmdhdGhlcih7
fSk7Ci0gIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGljZVRy
YW5zcG9ydC5nYXRoZXIoe30pKTsKLX0sICdnYXRoZXIoKSB0aHJvd3MgaWYgY2FsbGVkIHR3aWNl
Jyk7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgaWNlVHJhbnNwb3J0ID0g
bWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgY29uc3Qgd2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIo
dCwgaWNlVHJhbnNwb3J0LCAnZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnKTsKLSAgaWNlVHJhbnNwb3J0
LmdhdGhlcih7fSk7Ci0gIGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ2dhdGhlcmluZ3N0YXRlY2hh
bmdlJyk7Ci0gIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LmdhdGhlcmluZ1N0YXRlLCAnY29t
cGxldGUnKTsKLX0sIGBldmVudHVhbGx5IHRyYW5zaXRpb24gZ2F0aGVyaW5nU3RhdGUgdG8gJ2Nv
bXBsZXRlJ2ApOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IGljZVRyYW5z
cG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0gIGNvbnN0IHdhdGNoZXIgPSBuZXcgRXZlbnRX
YXRjaGVyKHQsIGljZVRyYW5zcG9ydCwKLSAgICAgIFsgJ2ljZWNhbmRpZGF0ZScsICdnYXRoZXJp
bmdzdGF0ZWNoYW5nZScgXSk7Ci0gIGljZVRyYW5zcG9ydC5nYXRoZXIoe30pOwotICBsZXQgY2Fu
ZGlkYXRlOwotICBkbyB7Ci0gICAgKCh7IGNhbmRpZGF0ZSB9ID0gYXdhaXQgd2F0Y2hlci53YWl0
X2ZvcignaWNlY2FuZGlkYXRlJykpKTsKLSAgfSB3aGlsZSAoY2FuZGlkYXRlICE9PSBudWxsKTsK
LSAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2F0aGVyaW5nU3RhdGUsICdnYXRoZXJpbmcn
KTsKLSAgYXdhaXQgd2F0Y2hlci53YWl0X2ZvcignZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnKTsKLSAg
YXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2F0aGVyaW5nU3RhdGUsICdjb21wbGV0ZScpOwot
fSwgJ29uaWNlY2FuZGlkYXRlIGZpcmVzIHdpdGggbnVsbCBjYW5kaWRhdGUgYmVmb3JlIGdhdGhl
cmluZ1N0YXRlJyArCi0gICAgYCB0cmFuc2l0aW9ucyB0byAnY29tcGxldGUnYCk7Ci0KLXByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5z
cG9ydCh0KTsKLSAgY29uc3Qgd2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgaWNlVHJhbnNw
b3J0LCAnaWNlY2FuZGlkYXRlJyk7Ci0gIGljZVRyYW5zcG9ydC5nYXRoZXIoe30pOwotICBjb25z
dCB7IGNhbmRpZGF0ZSB9ID0gYXdhaXQgd2F0Y2hlci53YWl0X2ZvcignaWNlY2FuZGlkYXRlJyk7
Ci0gIGFzc2VydF9ub3RfZXF1YWxzKGNhbmRpZGF0ZS5jYW5kaWRhdGUsICcnKTsKLSAgYXNzZXJ0
X2FycmF5X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0TG9jYWxDYW5kaWRhdGVzKCksIFtjYW5kaWRh
dGVdKTsKLX0sICdnYXRoZXIoKSByZXR1cm5zIGF0IGxlYXN0IG9uZSBob3N0IGNhbmRpZGF0ZScp
OwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1h
a2VJY2VUcmFuc3BvcnQodCk7Ci0gIGNvbnN0IHdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQs
IGljZVRyYW5zcG9ydCwgJ2ljZWNhbmRpZGF0ZScpOwotICBpY2VUcmFuc3BvcnQuZ2F0aGVyKHsg
Z2F0aGVyUG9saWN5OiAncmVsYXknIH0pOwotICBjb25zdCB7IGNhbmRpZGF0ZSB9ID0gYXdhaXQg
d2F0Y2hlci53YWl0X2ZvcignaWNlY2FuZGlkYXRlJyk7Ci0gIGFzc2VydF9lcXVhbHMoY2FuZGlk
YXRlLCBudWxsKTsKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0TG9jYWxD
YW5kaWRhdGVzKCksIFtdKTsKLX0sIGBnYXRoZXIoKSByZXR1cm5zIG5vIGNhbmRpZGF0ZXMgd2l0
aCB7IGdhdGhlclBvbGljeTogJ3JlbGF5J30gYW5kIG5vIHR1cm5gICsKLSAgICAnIHNlcnZlcnMn
KTsKLQotY29uc3QgZHVtbXlSZW1vdGVQYXJhbWV0ZXJzID0gewotICB1c2VybmFtZUZyYWdtZW50
OiBJQ0VfVUZSQUcsCi0gIHBhc3N3b3JkOiBJQ0VfUFdELAotfTsKLQotdGVzdCgoKSA9PiB7Ci0g
IGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsKLSAgaWNlVHJhbnNw
b3J0LnN0b3AoKTsKLSAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywKLSAg
ICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoZHVtbXlSZW1vdGVQYXJhbWV0ZXJzKSk7Ci0gIGFz
c2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldFJlbW90ZVBhcmFtZXRlcnMoKSwgbnVsbCk7Ci19
LCBgc3RhcnQoKSB0aHJvd3MgaWYgY2xvc2VkYCk7Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCBp
Y2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7Ci0gIGFzc2VydF90aHJvd3NfanMo
VHlwZUVycm9yLCAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoe30pKTsKLSAgYXNzZXJ0X3Rocm93
c19qcyhUeXBlRXJyb3IsCi0gICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KHsgdXNlcm5hbWVG
cmFnbWVudDogSUNFX1VGUkFHIH0pKTsKLSAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsCi0g
ICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KHsgcGFzc3dvcmQ6IElDRV9QV0QgfSkpOwotICBh
c3NlcnRfZXF1YWxzKGljZVRyYW5zcG9ydC5nZXRSZW1vdGVQYXJhbWV0ZXJzKCksIG51bGwpOwot
fSwgJ3N0YXJ0KCkgdGhyb3dzIGlmIHVzZXJuYW1lRnJhZ21lbnQgb3IgcGFzc3dvcmQgbm90IHNl
dCcpOwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgVEVTVF9DQVNFUyA9IFsKLSAgICB7dXNlcm5h
bWVGcmFnbWVudDogJzJzaCcsIGRlc2NyaXB0aW9uOiAnbGVzcyB0aGFuIDQgY2hhcmFjdGVycyBs
b25nJ30sCi0gICAgewotICAgICAgdXNlcm5hbWVGcmFnbWVudDogJ3gnLnJlcGVhdCgyNTcpLAot
ICAgICAgZGVzY3JpcHRpb246ICdncmVhdGVyIHRoYW4gMjU2IGNoYXJhY3RlcnMgbG9uZycsCi0g
ICAgfSwKLSAgICB7dXNlcm5hbWVGcmFnbWVudDogJzEyM1xuJywgZGVzY3JpcHRpb246ICdpbGxl
Z2FsIGNoYXJhY3Rlcid9LAotICBdOwotICBmb3IgKGNvbnN0IHt1c2VybmFtZUZyYWdtZW50LCBk
ZXNjcmlwdGlvbn0gb2YgVEVTVF9DQVNFUykgewotICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5l
dyBSVENJY2VUcmFuc3BvcnQoKTsKLSAgICBhc3NlcnRfdGhyb3dzX2RvbSgKLSAgICAgICdTeW50
YXhFcnJvcicsCi0gICAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoeyB1c2VybmFtZUZyYWdt
ZW50LCBwYXNzd29yZDogSUNFX1BXRCB9KSwKLSAgICAgIGBpbGxlZ2FsIHVzZXJuYW1lRnJhZ21l
bnQgKCR7ZGVzY3JpcHRpb259KSBzaG91bGQgdGhyb3cgYSBTeW50YXhFcnJvcmApOwotICB9Ci19
LCAnc3RhcnQoKSB0aHJvd3MgaWYgdXNlcm5hbWVGcmFnbWVudCBkb2VzIG5vdCBjb25mb3JtIHRv
IHN5bnRheCcpOwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgVEVTVF9DQVNFUyA9IFsKLSAgICB7
cGFzc3dvcmQ6ICd4Jy5yZXBlYXQoMjEpLCBkZXNjcmlwdGlvbjogJ2xlc3MgdGhhbiAyMiBjaGFy
YWN0ZXJzIGxvbmcnfSwKLSAgICB7Ci0gICAgICBwYXNzd29yZDogJ3gnLnJlcGVhdCgyNTcpLAot
ICAgICAgZGVzY3JpcHRpb246ICdncmVhdGVyIHRoYW4gMjU2IGNoYXJhY3RlcnMgbG9uZycsCi0g
ICAgfSwKLSAgICB7cGFzc3dvcmQ6ICgneCcucmVwZWF0KDIxKSArICdcbicpLCBkZXNjcmlwdGlv
bjogJ2lsbGVnYWwgY2hhcmFjdGVyJ30sCi0gIF07Ci0gIGZvciAoY29uc3Qge3Bhc3N3b3JkLCBk
ZXNjcmlwdGlvbn0gb2YgVEVTVF9DQVNFUykgewotICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5l
dyBSVENJY2VUcmFuc3BvcnQoKTsKLSAgICBhc3NlcnRfdGhyb3dzX2RvbSgKLSAgICAgICdTeW50
YXhFcnJvcicsCi0gICAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoeyB1c2VybmFtZUZyYWdt
ZW50OiBJQ0VfVUZSQUcsIHBhc3N3b3JkIH0pLAotICAgICAgYGlsbGVnYWwgcGFzc3dvcmQgKCR7
ZGVzY3JpcHRpb259KSBzaG91bGQgdGhyb3cgYSBTeW50YXhFcnJvcmApOwotICB9Ci19LCAnc3Rh
cnQoKSB0aHJvd3MgaWYgcGFzc3dvcmQgZG9lcyBub3QgY29uZm9ybSB0byBzeW50YXgnKTsKLQot
Y29uc3QgYXNzZXJ0X2ljZV9wYXJhbWV0ZXJzX2VxdWFscyA9IChhLCBiKSA9PiB7Ci0gIGFzc2Vy
dF9lcXVhbHMoYS51c2VybmFtZUZyYWdtZW50LCBiLnVzZXJuYW1lRnJhZ21lbnQsCi0gICAgICAn
dXNlcm5hbWVGcmFnbWVudHMgYXJlIGVxdWFsJyk7Ci0gIGFzc2VydF9lcXVhbHMoYS5wYXNzd29y
ZCwgYi5wYXNzd29yZCwgJ3Bhc3N3b3JkcyBhcmUgZXF1YWwnKTsKLX07Ci0KLXRlc3QodCA9PiB7
Ci0gIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0gIGljZVRyYW5z
cG9ydC5zdGFydChkdW1teVJlbW90ZVBhcmFtZXRlcnMpOwotICBhc3NlcnRfZXF1YWxzKGljZVRy
YW5zcG9ydC5zdGF0ZSwgJ25ldycpOwotICBhc3NlcnRfaWNlX3BhcmFtZXRlcnNfZXF1YWxzKGlj
ZVRyYW5zcG9ydC5nZXRSZW1vdGVQYXJhbWV0ZXJzKCksCi0gICAgICBkdW1teVJlbW90ZVBhcmFt
ZXRlcnMpOwotfSwgYHN0YXJ0KCkgZG9lcyBub3QgdHJhbnNpdGlvbiBzdGF0ZSB0byAnY2hlY2tp
bmcnIGlmIG5vIHJlbW90ZSBjYW5kaWRhdGVzIGAgKwotICAgICdhZGRlZCcpOwotCi10ZXN0KHQg
PT4gewotICBjb25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOwotICBpY2VU
cmFuc3BvcnQuc3RhcnQoZHVtbXlSZW1vdGVQYXJhbWV0ZXJzKTsKLSAgYXNzZXJ0X2VxdWFscyhp
Y2VUcmFuc3BvcnQucm9sZSwgJ2NvbnRyb2xsZWQnKTsKLX0sIGBzdGFydCgpIHdpdGggZGVmYXVs
dCByb2xlIHNldHMgcm9sZSBhdHRyaWJ1dGUgdG8gJ2NvbnRyb2xsZWQnYCk7Ci0KLXRlc3QodCA9
PiB7Ci0gIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0gIGljZVRy
YW5zcG9ydC5zdGFydChkdW1teVJlbW90ZVBhcmFtZXRlcnMsICdjb250cm9sbGluZycpOwotICBh
c3NlcnRfZXF1YWxzKGljZVRyYW5zcG9ydC5yb2xlLCAnY29udHJvbGxpbmcnKTsKLX0sIGBzdGFy
dCgpIHNldHMgcm9sZSBhdHRyaWJ1dGUgdG8gJ2NvbnRyb2xsaW5nJ2ApOwotCi1jb25zdCBjYW5k
aWRhdGUxID0gbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7Ci0gIGNhbmRpZGF0ZTogJ2NhbmRpZGF0ZTox
IDEgdWRwIDIxMTM5Mjk0NzEgMjAzLjAuMTEzLjEwMCAxMDEwMCB0eXAgaG9zdCcsCi0gIHNkcE1p
ZDogJycsCi19KTsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBS
VENJY2VUcmFuc3BvcnQoKTsKLSAgaWNlVHJhbnNwb3J0LnN0b3AoKTsKLSAgYXNzZXJ0X3Rocm93
c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywKLSAgICAoKSA9PiBpY2VUcmFuc3BvcnQuYWRkUmVt
b3RlQ2FuZGlkYXRlKGNhbmRpZGF0ZTEpKTsKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhpY2VUcmFu
c3BvcnQuZ2V0UmVtb3RlQ2FuZGlkYXRlcygpLCBbXSk7Ci19LCAnYWRkUmVtb3RlQ2FuZGlkYXRl
KCkgdGhyb3dzIGlmIGNsb3NlZCcpOwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgaWNlVHJhbnNw
b3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOwotICBhc3NlcnRfdGhyb3dzX2RvbSgnT3BlcmF0
aW9uRXJyb3InLAotICAgICgpID0+IGljZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5kaWRhdGUoCi0g
ICAgICBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsgY2FuZGlkYXRlOiAnaW52YWxpZCcsIHNkcE1pZDog
JycgfSkpKTsKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlQ2Fu
ZGlkYXRlcygpLCBbXSk7Ci19LCAnYWRkUmVtb3RlQ2FuZGlkYXRlKCkgdGhyb3dzIG9uIGludmFs
aWQgY2FuZGlkYXRlJyk7Ci0KLXRlc3QodCA9PiB7Ci0gIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1h
a2VJY2VUcmFuc3BvcnQodCk7Ci0gIGljZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5kaWRhdGUoY2Fu
ZGlkYXRlMSk7Ci0gIGljZVRyYW5zcG9ydC5zdGFydChkdW1teVJlbW90ZVBhcmFtZXRlcnMpOwot
ICBhc3NlcnRfZXF1YWxzKGljZVRyYW5zcG9ydC5zdGF0ZSwgJ2NoZWNraW5nJyk7Ci0gIGFzc2Vy
dF9hcnJheV9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldFJlbW90ZUNhbmRpZGF0ZXMoKSwgW2NhbmRp
ZGF0ZTFdKTsKLX0sIGBzdGFydCgpIHRyYW5zaXRpb25zIHN0YXRlIHRvICdjaGVja2luZycgaWYg
b25lIHJlbW90ZSBjYW5kaWRhdGUgaGFkIGJlZW4gYCArCi0gICAgJ2FkZGVkJyk7Ci0KLXRlc3Qo
dCA9PiB7Ci0gIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0gIGlj
ZVRyYW5zcG9ydC5zdGFydChkdW1teVJlbW90ZVBhcmFtZXRlcnMpOwotICBpY2VUcmFuc3BvcnQu
YWRkUmVtb3RlQ2FuZGlkYXRlKGNhbmRpZGF0ZTEpOwotICBhc3NlcnRfZXF1YWxzKGljZVRyYW5z
cG9ydC5zdGF0ZSwgJ2NoZWNraW5nJyk7Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMoaWNlVHJhbnNw
b3J0LmdldFJlbW90ZUNhbmRpZGF0ZXMoKSwgW2NhbmRpZGF0ZTFdKTsKLX0sIGBhZGRSZW1vdGVD
YW5kaWRhdGUoKSB0cmFuc2l0aW9ucyBzdGF0ZSB0byAnY2hlY2tpbmcnIGlmIHN0YXJ0KCkgaGFk
IGJlZW4gYCArCi0gICAgJ2NhbGxlZCBiZWZvcmUnKTsKLQotdGVzdCh0ID0+IHsKLSAgY29uc3Qg
aWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgaWNlVHJhbnNwb3J0LnN0YXJ0
KGR1bW15UmVtb3RlUGFyYW1ldGVycyk7Ci0gIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3Rh
dGVFcnJvcicsCi0gICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KGR1bW15UmVtb3RlUGFyYW1l
dGVycywgJ2NvbnRyb2xsaW5nJykpOwotfSwgJ3N0YXJ0KCkgdGhyb3dzIGlmIGxhdGVyIGNhbGxl
ZCB3aXRoIGEgZGlmZmVyZW50IHJvbGUnKTsKLQotdGVzdCh0ID0+IHsKLSAgY29uc3QgaWNlVHJh
bnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgaWNlVHJhbnNwb3J0LnN0YXJ0KHsKLSAg
ICB1c2VybmFtZUZyYWdtZW50OiAnMScucmVwZWF0KDQpLAotICAgIHBhc3N3b3JkOiAnMScucmVw
ZWF0KDIyKSwKLSAgfSk7Ci0gIGljZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5kaWRhdGUoY2FuZGlk
YXRlMSk7Ci0gIGNvbnN0IGNoYW5nZWRSZW1vdGVQYXJhbWV0ZXJzID0gewotICAgIHVzZXJuYW1l
RnJhZ21lbnQ6ICcyJy5yZXBlYXQoNCksCi0gICAgcGFzc3dvcmQ6ICcyJy5yZXBlYXQoMjIpLAot
ICB9OwotICBpY2VUcmFuc3BvcnQuc3RhcnQoY2hhbmdlZFJlbW90ZVBhcmFtZXRlcnMpOwotICBh
c3NlcnRfZXF1YWxzKGljZVRyYW5zcG9ydC5zdGF0ZSwgJ25ldycpOwotICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGljZVRyYW5zcG9ydC5nZXRSZW1vdGVDYW5kaWRhdGVzKCksIFtdKTsKLSAgYXNzZXJ0
X2ljZV9wYXJhbWV0ZXJzX2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlUGFyYW1ldGVycygp
LAotICAgICAgY2hhbmdlZFJlbW90ZVBhcmFtZXRlcnMpOwotfSwgYHN0YXJ0KCkgZmx1c2hlcyBy
ZW1vdGUgY2FuZGlkYXRlcyBhbmQgdHJhbnNpdGlvbnMgc3RhdGUgdG8gJ25ldycgaWYgYCArCi0g
ICAnbGF0ZXIgY2FsbGVkIHdpdGggZGlmZmVyZW50IHJlbW90ZSBwYXJhbWV0ZXJzJyk7Ci0KLXBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgWyBsb2NhbFRyYW5zcG9ydCwgcmVtb3Rl
VHJhbnNwb3J0IF0gPQotICAgICAgbWFrZUdhdGhlckFuZFN0YXJ0VHdvSWNlVHJhbnNwb3J0cyh0
KTsKLSAgY29uc3QgbG9jYWxXYXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBsb2NhbFRyYW5z
cG9ydCwgJ3N0YXRlY2hhbmdlJyk7Ci0gIGNvbnN0IHJlbW90ZVdhdGNoZXIgPSBuZXcgRXZlbnRX
YXRjaGVyKHQsIHJlbW90ZVRyYW5zcG9ydCwgJ3N0YXRlY2hhbmdlJyk7Ci0gIGF3YWl0IFByb21p
c2UuYWxsKFsKLSAgICBsb2NhbFdhdGNoZXIud2FpdF9mb3IoJ3N0YXRlY2hhbmdlJykudGhlbigo
KSA9PiB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGxvY2FsVHJhbnNwb3J0LnN0YXRlLCAnY29ubmVj
dGVkJyk7Ci0gICAgfSksCi0gICAgcmVtb3RlV2F0Y2hlci53YWl0X2Zvcignc3RhdGVjaGFuZ2Un
KS50aGVuKCgpID0+IHsKLSAgICAgIGFzc2VydF9lcXVhbHMocmVtb3RlVHJhbnNwb3J0LnN0YXRl
LCAnY29ubmVjdGVkJyk7Ci0gICAgfSksCi0gIF0pOwotfSwgJ1R3byBSVENJY2VUcmFuc3BvcnRz
IGNvbm5lY3QgdG8gZWFjaCBvdGhlcicpOwotCi1bJ2NvbnRyb2xsaW5nJywgJ2NvbnRyb2xsZWQn
XS5mb3JFYWNoKHJvbGUgPT4gewotICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgY29u
c3QgWyBsb2NhbFRyYW5zcG9ydCwgcmVtb3RlVHJhbnNwb3J0IF0gPQotICAgICAgICBtYWtlQW5k
R2F0aGVyVHdvSWNlVHJhbnNwb3J0cyh0KTsKLSAgICBsb2NhbFRyYW5zcG9ydC5zdGFydChyZW1v
dGVUcmFuc3BvcnQuZ2V0TG9jYWxQYXJhbWV0ZXJzKCksIHJvbGUpOwotICAgIHJlbW90ZVRyYW5z
cG9ydC5zdGFydChsb2NhbFRyYW5zcG9ydC5nZXRMb2NhbFBhcmFtZXRlcnMoKSwgcm9sZSk7Ci0g
ICAgY29uc3QgbG9jYWxXYXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBsb2NhbFRyYW5zcG9y
dCwgJ3N0YXRlY2hhbmdlJyk7Ci0gICAgY29uc3QgcmVtb3RlV2F0Y2hlciA9IG5ldyBFdmVudFdh
dGNoZXIodCwgcmVtb3RlVHJhbnNwb3J0LCAnc3RhdGVjaGFuZ2UnKTsKLSAgICBhd2FpdCBQcm9t
aXNlLmFsbChbCi0gICAgICBsb2NhbFdhdGNoZXIud2FpdF9mb3IoJ3N0YXRlY2hhbmdlJykudGhl
bigoKSA9PiB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMobG9jYWxUcmFuc3BvcnQuc3RhdGUsICdj
b25uZWN0ZWQnKTsKLSAgICAgIH0pLAotICAgICAgcmVtb3RlV2F0Y2hlci53YWl0X2Zvcignc3Rh
dGVjaGFuZ2UnKS50aGVuKCgpID0+IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZW1vdGVUcmFu
c3BvcnQuc3RhdGUsICdjb25uZWN0ZWQnKTsKLSAgICAgIH0pLAotICAgIF0pOwotICB9LCBgVHdv
IFJUQ0ljZVRyYW5zcG9ydHMgY29uZmlndXJlZCB3aXRoIHRoZSAke3JvbGV9IHJvbGUgcmVzb2x2
ZSB0aGUgYCArCi0gICAgICAnY29uZmxpY3QgaW4gYmFuZCBhbmQgc3RpbGwgY29ubmVjdC4nKTsK
LX0pOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGFzeW5jIGZ1bmN0aW9uIHdhaXRG
b3JTZWxlY3RlZENhbmRpZGF0ZVBhaXJDaGFuZ2VUaGVuQ29ubmVjdGVkKHQsIHRyYW5zcG9ydCwK
LSAgICAgIHRyYW5zcG9ydE5hbWUpIHsKLSAgICBjb25zdCB3YXRjaGVyID0gbmV3IEV2ZW50V2F0
Y2hlcih0LCB0cmFuc3BvcnQsCi0gICAgICAgIFsgJ3N0YXRlY2hhbmdlJywgJ3NlbGVjdGVkY2Fu
ZGlkYXRlcGFpcmNoYW5nZScgXSk7Ci0gICAgYXdhaXQgd2F0Y2hlci53YWl0X2Zvcignc2VsZWN0
ZWRjYW5kaWRhdGVwYWlyY2hhbmdlJyk7Ci0gICAgY29uc3Qgc2VsZWN0ZWRDYW5kaWRhdGVQYWly
ID0gdHJhbnNwb3J0LmdldFNlbGVjdGVkQ2FuZGlkYXRlUGFpcigpOwotICAgIGFzc2VydF9ub3Rf
ZXF1YWxzKHNlbGVjdGVkQ2FuZGlkYXRlUGFpciwgbnVsbCwKLSAgICAgICAgYCR7dHJhbnNwb3J0
TmFtZX0gc2VsZWN0ZWQgY2FuZGlkYXRlIHBhaXIgc2hvdWxkIG5vdCBiZSBudWxsIG9uY2UgYCAr
Ci0gICAgICAgICd0aGUgc2VsZWN0ZWRjYW5kaWRhdGVwYWlyY2hhbmdlIGV2ZW50IGZpcmVzJyk7
Ci0gICAgYXNzZXJ0X3RydWUoCi0gICAgICAgIHRyYW5zcG9ydC5nZXRMb2NhbENhbmRpZGF0ZXMo
KS5zb21lKAotICAgICAgICAgICAgKHsgY2FuZGlkYXRlIH0pID0+Ci0gICAgICAgICAgICAgICAg
Y2FuZGlkYXRlID09PSBzZWxlY3RlZENhbmRpZGF0ZVBhaXIubG9jYWwuY2FuZGlkYXRlKSwKLSAg
ICAgICAgYCR7dHJhbnNwb3J0TmFtZX0gc2VsZWN0ZWQgY2FuZGlkYXRlIHBhaXIgbG9jYWwgc2hv
dWxkIGJlIGluIHRoZSBgICsKLSAgICAgICAgJ2xpc3Qgb2YgbG9jYWwgY2FuZGlkYXRlcycpOwot
ICAgIGFzc2VydF90cnVlKAotICAgICAgICB0cmFuc3BvcnQuZ2V0UmVtb3RlQ2FuZGlkYXRlcygp
LnNvbWUoCi0gICAgICAgICAgICAoeyBjYW5kaWRhdGUgfSkgPT4KLSAgICAgICAgICAgICAgICBj
YW5kaWRhdGUgPT09IHNlbGVjdGVkQ2FuZGlkYXRlUGFpci5yZW1vdGUuY2FuZGlkYXRlKSwKLSAg
ICAgICAgYCR7dHJhbnNwb3J0TmFtZX0gc2VsZWN0ZWQgY2FuZGlkYXRlIHBhaXIgbG9jYWwgc2hv
dWxkIGJlIGluIHRoZSBgICsKLSAgICAgICAgJ2xpc3Qgb2YgcmVtb3RlIGNhbmRpZGF0ZXMnKTsK
LSAgICBhd2FpdCB3YXRjaGVyLndhaXRfZm9yKCdzdGF0ZWNoYW5nZScpOwotICAgIGFzc2VydF9l
cXVhbHModHJhbnNwb3J0LnN0YXRlLCAnY29ubmVjdGVkJywKLSAgICAgICAgYCR7dHJhbnNwb3J0
TmFtZX0gc3RhdGUgc2hvdWxkIGJlICdjb25uZWN0ZWQnYCk7Ci0gIH0KLSAgY29uc3QgWyBsb2Nh
bFRyYW5zcG9ydCwgcmVtb3RlVHJhbnNwb3J0IF0gPQotICAgICAgbWFrZUdhdGhlckFuZFN0YXJ0
VHdvSWNlVHJhbnNwb3J0cyh0KTsKLSAgYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgIHdhaXRGb3JT
ZWxlY3RlZENhbmRpZGF0ZVBhaXJDaGFuZ2VUaGVuQ29ubmVjdGVkKHQsIGxvY2FsVHJhbnNwb3J0
LAotICAgICAgICAnbG9jYWwgdHJhbnNwb3J0JyksCi0gICAgd2FpdEZvclNlbGVjdGVkQ2FuZGlk
YXRlUGFpckNoYW5nZVRoZW5Db25uZWN0ZWQodCwgcmVtb3RlVHJhbnNwb3J0LAotICAgICAgICAn
cmVtb3RlIHRyYW5zcG9ydCcpLAotICBdKTsKLX0sICdTZWxlY3RlZCBjYW5kaWRhdGUgcGFpciBj
aGFuZ2VzIG9uY2UgdGhlIFJUQ0ljZVRyYW5zcG9ydHMgY29ubmVjdC4nKTsKLQotcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBbIHRyYW5zcG9ydCwgXSA9IG1ha2VHYXRoZXJBbmRT
dGFydFR3b0ljZVRyYW5zcG9ydHModCk7Ci0gIGNvbnN0IHdhdGNoZXIgPSBuZXcgRXZlbnRXYXRj
aGVyKHQsIHRyYW5zcG9ydCwgJ3NlbGVjdGVkY2FuZGlkYXRlcGFpcmNoYW5nZScpOwotICBhd2Fp
dCB3YXRjaGVyLndhaXRfZm9yKCdzZWxlY3RlZGNhbmRpZGF0ZXBhaXJjaGFuZ2UnKTsKLSAgdHJh
bnNwb3J0LnN0b3AoKTsKLSAgYXNzZXJ0X2VxdWFscyh0cmFuc3BvcnQuZ2V0U2VsZWN0ZWRDYW5k
aWRhdGVQYWlyKCksIG51bGwpOwotfSwgJ2dldFNlbGVjdGVkQ2FuZGlkYXRlUGFpcigpIHJldHVy
bnMgbnVsbCBvbmNlIHRoZSBSVENJY2VUcmFuc3BvcnQgaXMgJyArCi0gICAgJ3N0b3BwZWQuJyk7
Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNv
bm5lY3Rpb25TZXR1cC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rp
b25TZXR1cC5odG1sCmluZGV4IDExZmM0ZTRmYTBjMjIyZGY0ZTE0NjlhNTI1ODI5NWJmMzcwMzUy
M2MuLmQyY2RlNTkzNjQwNDUxZjQzMTdjYjA5Y2JhMTQ0MmJiMWMwMjgyMjIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0bWwKQEAgLTM1LDE2
ICszNSw4IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKIAogICBsZXQgY2FuZGlkYXRlczF0
bzIgPSBbXTsKICAgbGV0IGNhbmRpZGF0ZXMydG8xID0gW107Ci0gIHBjMS5vbmljZWNhbmRpZGF0
ZSA9IGV2ZW50ID0+IHsKLSAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7Ci0gICAgICBjYW5kaWRh
dGVzMXRvMi5wdXNoKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQotICB9Ci0gIHBjMi5vbmljZWNh
bmRpZGF0ZSA9IGV2ZW50ID0+IHsKLSAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7Ci0gICAgICBj
YW5kaWRhdGVzMnRvMS5wdXNoKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQotICB9CisgIHBjMS5v
bmljZWNhbmRpZGF0ZSA9IGUgPT4gY2FuZGlkYXRlczF0bzIucHVzaChlLmNhbmRpZGF0ZSk7Cisg
IHBjMi5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gY2FuZGlkYXRlczJ0bzEucHVzaChlLmNhbmRpZGF0
ZSk7CiAgIGNvbnN0IHBjMkdhdGhlcmVkQ2FuZGlkYXRlcyA9IG5ldyBQcm9taXNlKChyZXNvbHZl
KSA9PiB7CiAgICAgcGMyLmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdl
JywgKCkgPT4gewogICAgICAgaWYgKHBjMi5pY2VHYXRoZXJpbmdTdGF0ZSA9PSAnY29tcGxldGUn
KSB7CkBAIC03NCwxNiArNjYsOCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAKICAgbGV0
IGNhbmRpZGF0ZXMxdG8yID0gW107CiAgIGxldCBjYW5kaWRhdGVzMnRvMSA9IFtdOwotICBwYzEu
b25pY2VjYW5kaWRhdGUgPSBldmVudCA9PiB7Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewot
ICAgICAgY2FuZGlkYXRlczF0bzIucHVzaChldmVudC5jYW5kaWRhdGUpOwotICAgIH0KLSAgfQot
ICBwYzIub25pY2VjYW5kaWRhdGUgPSBldmVudCA9PiB7Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0
ZSkgewotICAgICAgY2FuZGlkYXRlczJ0bzEucHVzaChldmVudC5jYW5kaWRhdGUpOwotICAgIH0K
LSAgfQorICBwYzEub25pY2VjYW5kaWRhdGUgPSBlID0+IGNhbmRpZGF0ZXMxdG8yLnB1c2goZS5j
YW5kaWRhdGUpOworICBwYzIub25pY2VjYW5kaWRhdGUgPSBlID0+IGNhbmRpZGF0ZXMydG8xLnB1
c2goZS5jYW5kaWRhdGUpOwogICBjb25zdCBwYzFHYXRoZXJlZENhbmRpZGF0ZXMgPSBuZXcgUHJv
bWlzZSgocmVzb2x2ZSkgPT4gewogICAgIHBjMS5hZGRFdmVudExpc3RlbmVyKCdpY2VnYXRoZXJp
bmdzdGF0ZWNoYW5nZScsICgpID0+IHsKICAgICAgIGlmIChwYzEuaWNlR2F0aGVyaW5nU3RhdGUg
PT0gJ2NvbXBsZXRlJykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQK
aW5kZXggNjZjMDBhYzU1YWJiZWQ2MjBlNmMzMjBhYzYwODliYjY3OTJiMTFhZi4uNjdhZjc5NGJl
ZTE0NzQ3YzIzYTlkZDdjNmUwMmIzN2QyZTQ5NzIzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
YWRkSWNlQ2FuZGlkYXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5k
aWRhdGUtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsMTMgQEAKIAogRkFJTCBBZGQgSUNFIGNhbmRp
ZGF0ZSBiZWZvcmUgc2V0dGluZyByZW1vdGUgZGVzY3JpcHRpb24gc2hvdWxkIHJlamVjdCB3aXRo
IEludmFsaWRTdGF0ZUVycm9yIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVk
OiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIGFkZEljZUNhbmRpZGF0
ZSh7ImNhbmRpZGF0ZSI6IiIsInNkcE1pZCI6bnVsbCwic2RwTUxpbmVJbmRleCI6bnVsbH0pIHNo
b3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25z
IGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBt
ZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIGFkZEljZUNhbmRpZGF0ZSh1bmRlZmluZWQpIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5k
LW9mLWNhbmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3QgY2Fu
ZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBt
PXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIGFkZEljZUNhbmRpZGF0ZShudWxs
KSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0
aW9ucyBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdl
ZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCBhZGRJY2VDYW5kaWRhdGUoe30pIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9m
LWNhbmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlk
YXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZp
ZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIGFkZEljZUNhbmRpZGF0ZSh7ImNhbmRp
ZGF0ZSI6IiIsInNkcE1pZCI6bnVsbCwic2RwTUxpbmVJbmRleCI6bnVsbH0pIHdvcmtzCitGQUlM
IGFkZEljZUNhbmRpZGF0ZSh7ImNhbmRpZGF0ZSI6IiIsInNkcE1pZCI6bnVsbCwic2RwTUxpbmVJ
bmRleCI6bnVsbH0pIGFkZHMgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnMg
YXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1l
ZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BB
U1MgYWRkSWNlQ2FuZGlkYXRlKHVuZGVmaW5lZCkgd29ya3MKK0ZBSUwgYWRkSWNlQ2FuZGlkYXRl
KHVuZGVmaW5lZCkgYWRkcyBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9ucyBh
c3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVk
aWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyBhZGRJY2VDYW5kaWRhdGUobnVsbCkgd29ya3MKK0ZBSUwgYWRkSWNlQ2FuZGlkYXRlKG51bGwp
IGFkZHMgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnMgYXNzZXJ0X3RydWU6
IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09
YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgYWRkSWNlQ2Fu
ZGlkYXRlKHt9KSB3b3JrcworRkFJTCBhZGRJY2VDYW5kaWRhdGUoe30pIGFkZHMgYT1lbmQtb2Yt
Y2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnMgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRh
dGUgbGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlk
ZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgYWRkSWNlQ2FuZGlkYXRlKHt9KSBpbiBz
dGFibGUgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBib3RoIG0t
c2VjdGlvbnMgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBi
ZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKIEZBSUwgYWRkSWNlQ2FuZGlkYXRlKHt1c2VybmFtZUZyYWdtZW50OiB1c2VybmFtZUZy
YWdtZW50MSwgc2RwTWlkOiBzZHBNaWQxfSkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2Yt
Y2FuZGlkYXRlcyB0byB0aGUgZmlyc3QgbS1zZWN0aW9uIGFzc2VydF90cnVlOiBFeHBlY3QgY2Fu
ZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBt
PXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIGFkZEljZUNhbmRpZGF0ZSh7dXNl
cm5hbWVGcmFnbWVudDogdXNlcm5hbWVGcmFnbWVudDIsIHNkcE1MaW5lSW5kZXg6IDF9KSBzaG91
bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIHRoZSBmaXJzdCBtLXNlY3Rp
b24gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCkBAIC0xNyw4ICsyMSw5IEBA
IEZBSUwgYWRkSWNlQ2FuZGlkYXRlIHdpdGggZmlyc3Qgc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4
IGFkZCBjYW5kaWRhdGUgdG8gZmlyc3QKIEZBSUwgYWRkSWNlQ2FuZGlkYXRlIHdpdGggc2Vjb25k
IHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCBzaG91bGQgYWRkIGNhbmRpZGF0ZSB0byBzZWNvbmQg
bWVkaWEgc3RyZWFtIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91
bmQgYWZ0ZXIgbWVkaWEgbGluZSBtPXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlM
IEFkZCBjYW5kaWRhdGUgZm9yIGZpcnN0IG1lZGlhIHN0cmVhbSB3aXRoIG51bGwgdXNlcm5hbWVG
cmFnbWVudCBzaG91bGQgYWRkIGNhbmRpZGF0ZSB0byBmaXJzdCBtZWRpYSBzdHJlYW0gYXNzZXJ0
X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxp
bmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgQWRk
aW5nIG11bHRpcGxlIGNhbmRpZGF0ZXMgc2hvdWxkIGFkZCBjYW5kaWRhdGVzIHRvIHRoZWlyIGNv
cnJlc3BvbmRpbmcgbWVkaWEgc3RyZWFtIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxp
bmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVvIGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIEFkZCB3aXRoIGVtcHR5IGNhbmRpZGF0ZSBzdHJp
bmcgKGVuZCBvZiBjYW5kaWRhdGUpIHNob3VsZCBzdWNjZWVkIGFzc2VydF90cnVlOiBFeHBlY3Qg
Y2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFu
ZCBtPXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEFkZCB3aXRoIGVtcHR5IGNh
bmRpZGF0ZSBzdHJpbmcgKGVuZCBvZiBjYW5kaWRhdGVzKSBzaG91bGQgc3VjY2VlZCBhc3NlcnRf
dHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGlu
ZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBBZGQg
Y2FuZGlkYXRlIHdpdGggYm90aCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXggbWFudWFsbHkgc2V0
IHRvIG51bGwgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcgorUEFTUyBhZGRJY2VDYW5kaWRh
dGUgd2l0aCBhIGNhbmRpZGF0ZSBhbmQgbmVpdGhlciBzZHBNaWQgbm9yIHNkcE1MaW5lSW5kZXgg
c2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcgogUEFTUyBBZGQgY2FuZGlkYXRlIHdpdGggb25s
eSB2YWxpZCBjYW5kaWRhdGUgc3RyaW5nIHNob3VsZCByZWplY3Qgd2l0aCBUeXBlRXJyb3IKIFBB
U1MgQWRkIGNhbmRpZGF0ZSB3aXRoIGludmFsaWQgY2FuZGlkYXRlIHN0cmluZyBhbmQgYm90aCBz
ZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXggbnVsbCBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9y
CiBGQUlMIEFkZCBjYW5kaWRhdGUgd2l0aCBpbnZhbGlkIHNkcE1pZCBzaG91bGQgcmVqZWN0IHdp
dGggT3BlcmF0aW9uRXJyb3IgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6
IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWFkZEljZUNhbmRpZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0
bWwKaW5kZXggNWZjYjZlODY0YThhMjIzZDUwNjJiMjJiN2E4ZjVlODlmYmY5ZDRjYi4uZDhlMjRk
NjA4YmFlZTZjNjBlNmQyYjNhZTI0Njk3NGZlNjkzNmVjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tYWRkSWNlQ2FuZGlkYXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRl
Lmh0bWwKQEAgLTE1OCwxOCArMTU4LDI4IEBAIGE9cnRjcC1yc2l6ZQogICAgIG51bGwsCiAgICAg
Ly8gTWVtYmVycyBpbiB0aGUgZGljdGlvbmFyeSB0YWtlIHRoZWlyIGRlZmF1bHQgdmFsdWVzCiAg
ICAge30KLSAgXS5mb3JFYWNoKGluaXQgPT4gcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIF0uZm9yRWFjaChpbml0ID0+
IHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOwogCi0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAKLSAgICBhd2FpdCBw
Yy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYyk7Ci0gICAgYXdhaXQgcGMuYWRkSWNl
Q2FuZGlkYXRlKGluaXQpOwotICAgIGFzc2VydF9jYW5kaWRhdGVfbGluZV9iZXR3ZWVuKHBjLnJl
bW90ZURlc2NyaXB0aW9uLnNkcCwKLSAgICAgIG1lZGlhTGluZTEsIGVuZE9mQ2FuZGlkYXRlTGlu
ZSwgbWVkaWFMaW5lMik7Ci0gICAgYXNzZXJ0X2NhbmRpZGF0ZV9saW5lX2FmdGVyKHBjLnJlbW90
ZURlc2NyaXB0aW9uLnNkcCwKLSAgICAgIG1lZGlhTGluZTIsIGVuZE9mQ2FuZGlkYXRlTGluZSk7
Ci0gIH0sIGBhZGRJY2VDYW5kaWRhdGUoJHtKU09OLnN0cmluZ2lmeShpbml0KX0pIHNob3VsZCB3
b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25zYCkpOwor
ICAgICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2MpOworICAgICAg
YXdhaXQgcGMuYWRkSWNlQ2FuZGlkYXRlKGluaXQpOworICAgIH0sIGBhZGRJY2VDYW5kaWRhdGUo
JHtKU09OLnN0cmluZ2lmeShpbml0KX0pIHdvcmtzYCk7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAg
ICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgICAgYXdhaXQgcGMuc2V0
UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2MpOworICAgICAgYXdhaXQgcGMuYWRkSWNlQ2Fu
ZGlkYXRlKGluaXQpOworICAgICAgYXNzZXJ0X2NhbmRpZGF0ZV9saW5lX2JldHdlZW4ocGMucmVt
b3RlRGVzY3JpcHRpb24uc2RwLAorICAgICAgICBtZWRpYUxpbmUxLCBlbmRPZkNhbmRpZGF0ZUxp
bmUsIG1lZGlhTGluZTIpOworICAgICAgYXNzZXJ0X2NhbmRpZGF0ZV9saW5lX2FmdGVyKHBjLnJl
bW90ZURlc2NyaXB0aW9uLnNkcCwKKyAgICAgICAgbWVkaWFMaW5lMiwgZW5kT2ZDYW5kaWRhdGVM
aW5lKTsKKyAgICB9LCBgYWRkSWNlQ2FuZGlkYXRlKCR7SlNPTi5zdHJpbmdpZnkoaW5pdCl9KSBh
ZGRzIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25zYCk7CisgIH0pOwogCiAg
IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwpAQCAtNDE4LDcgKzQyOCw3IEBAIGE9cnRjcC1yc2l6ZQogICAgICAgYXNzZXJ0
X2NhbmRpZGF0ZV9saW5lX2JldHdlZW4ocGMucmVtb3RlRGVzY3JpcHRpb24uc2RwLAogICAgICAg
ICBtZWRpYUxpbmUxLCBlbmRPZkNhbmRpZGF0ZUxpbmUsIG1lZGlhTGluZTIpOwogICAgIH0pOwot
ICB9LCAnQWRkIHdpdGggZW1wdHkgY2FuZGlkYXRlIHN0cmluZyAoZW5kIG9mIGNhbmRpZGF0ZSkg
c2hvdWxkIHN1Y2NlZWQnKTsKKyAgfSwgJ0FkZCB3aXRoIGVtcHR5IGNhbmRpZGF0ZSBzdHJpbmcg
KGVuZCBvZiBjYW5kaWRhdGVzKSBzaG91bGQgc3VjY2VlZCcpOwogCiAgIC8qCiAgICAgNC40LjIu
ICBhZGRJY2VDYW5kaWRhdGUKQEAgLTQ0MCw2ICs0NTAsMTUgQEAgYT1ydGNwLXJzaXplCiAgICAg
ICAgIH0pKSk7CiAgIH0sICdBZGQgY2FuZGlkYXRlIHdpdGggYm90aCBzZHBNaWQgYW5kIHNkcE1M
aW5lSW5kZXggbWFudWFsbHkgc2V0IHRvIG51bGwgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJv
cicpOwogCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
CisKKyAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYyk7CisgICAg
cHJvbWlzZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJvciwKKyAgICAgIHBjLmFkZEljZUNhbmRpZGF0
ZSh7Y2FuZGlkYXRlOiBjYW5kaWRhdGVTdHIxfSkpOworICB9LCAnYWRkSWNlQ2FuZGlkYXRlIHdp
dGggYSBjYW5kaWRhdGUgYW5kIG5laXRoZXIgc2RwTWlkIG5vciBzZHBNTGluZUluZGV4IHNob3Vs
ZCByZWplY3Qgd2l0aCBUeXBlRXJyb3InKTsKKwogICBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKIApAQCAtNjA5LDUgKzYyOCw0IEBA
IGE9cnRjcC1yc2l6ZQogICAgICAgICAgIHVzZXJuYW1lRnJhZ21lbnQ6IHVzZXJuYW1lRnJhZ21l
bnQxCiAgICAgICAgIH0pKSk7CiAgIH0sICdBZGQgY2FuZGlkYXRlIHdpdGggc2RwTWlkIGJlbG9u
Z2luZyB0byBkaWZmZXJlbnQgdXNlcm5hbWVGcmFnbWVudCBzaG91bGQgcmVqZWN0IHdpdGggT3Bl
cmF0aW9uRXJyb3InKTsKLQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRU
cmFjay5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy1leHBl
Y3RlZC50eHQKaW5kZXggMjIyN2Q2M2QwNzJhMGUwMzQ4NmMwNDc4MmI1OTk3OWU4ZDM3Y2NmZS4u
NGQ1NTI5NjA1MDQzMmQ4MTYwZWVlYjg1M2EwZDI1MDhjNjJiMmY1NiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tYWRkVHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFk
ZFRyYWNrLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtOCw0ICs4LDUgQEAgUEFTUyBhZGRUcmFjayB3
aXRoIGV4aXN0aW5nIHNlbmRlciB3aXRoIG51bGwgdHJhY2ssIHNhbWUga2luZCwgYW5kIHJlY3Zv
bmx5IGRpcmUKIFBBU1MgYWRkVHJhY2sgd2l0aCBleGlzdGluZyBzZW5kZXIgdGhhdCBoYXMgbm90
IGJlZW4gdXNlZCB0byBzZW5kIHNob3VsZCByZXVzZSB0aGUgc2VuZGVyCiBQQVNTIGFkZFRyYWNr
IHdpdGggZXhpc3Rpbmcgc2VuZGVyIHRoYXQgaGFzIGJlZW4gdXNlZCB0byBzZW5kIHNob3VsZCBj
cmVhdGUgbmV3IHNlbmRlcgogUEFTUyBhZGRUcmFjayB3aXRoIGV4aXN0aW5nIHNlbmRlciB3aXRo
IG51bGwgdHJhY2ssIGRpZmZlcmVudCBraW5kLCBhbmQgcmVjdm9ubHkgZGlyZWN0aW9uIHNob3Vs
ZCBjcmVhdGUgbmV3IHNlbmRlcgorRkFJTCBBZGRpbmcgbW9yZSB0cmFja3MgZG9lcyBub3QgZ2Vu
ZXJhdGUgbW9yZSBjYW5kaWRhdGVzIGlmIGJ1bmRsZWQgYXNzZXJ0X3VucmVhY2hlZDogTm8gY2Fs
bGVyIGNhbmRpZGF0ZXMgc2hvdWxkIGJlIGdlbmVyYXRlZC4gUmVhY2hlZCB1bnJlYWNoYWJsZSBj
b2RlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1hZGRUcmFjay5odHRwcy5odG1sCmluZGV4IDc1ODU5NjFmMzFjZTk0MmRiOTRhNmU1
OWJlNzZjZjhiOGIzZGUwZGYuLjUyNTMyM2NhZDA3ZDdkZDkzOGRhNzQ0YTAyZGY5MzM5N2IyZTVl
ZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tYWRkVHJhY2suaHR0cHMuaHRtbApAQCAtMjg2LDUgKzI4Niw1NSBAQAogICAgICAg
NS4xLiBhZGRUcmFjawogICAgICAgICAxMC4gVXBkYXRlIHRoZSBuZWdvdGlhdGlvbi1uZWVkZWQg
ZmxhZyBmb3IgY29ubmVjdGlvbi4KIAotICAgKi8KKyAgKi8KKworICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgICAgY29uc3QgY2FsbGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
ICAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7CisgICAgY29uc3QgY2FsbGVl
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxs
ZWUuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7
YXVkaW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3Mo
KS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIGNvbnN0IFt0cmFja10gPSBz
dHJlYW0uZ2V0VHJhY2tzKCk7CisgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBjYWxsZXIuYWRkVHJh
bnNjZWl2ZXIodHJhY2spOworICAgIC8vIE5vdGUgdGhhdCB0aGlzIHRlc3QgZG9lc24ndCBwcm9j
ZXNzIGNhbmlkaWRhdGVzLgorICAgIHsKKyAgICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgY2FsbGVy
LmNyZWF0ZU9mZmVyKCk7CisgICAgICBhd2FpdCBjYWxsZXIuc2V0TG9jYWxEZXNjcmlwdGlvbihv
ZmZlcik7CisgICAgICBhd2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOwor
ICAgICAgY29uc3QgYW5zd2VyID0gYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dlcigpOworICAgICAg
YXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgICAgIGF3YWl0IGNh
bGxlci5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOworICAgIH0KKyAgICBhc3NlcnRfZXF1
YWxzKHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24sICdzZW5kb25seScpOworICAgIGF3YWl0
IHdhaXRGb3JJY2VHYXRoZXJpbmdTdGF0ZShjYWxsZXIsIFsnY29tcGxldGUnXSk7CisgICAgYXdh
aXQgd2FpdEZvckljZUdhdGhlcmluZ1N0YXRlKGNhbGxlZSwgWydjb21wbGV0ZSddKTsKKworICAg
IGNvbnN0IHNlY29uZF9zdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9
KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHNlY29uZF9zdHJlYW0uZ2V0VHJhY2tzKCkuZm9y
RWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICAvLyBUaGVyZSBtYXkgYmUgY2FsbGVl
IGNhbmRpZGF0ZXMgaW4gZmxpZ2h0LiBJdCBzZWVtcyB0aGF0IHdhaXRpbmcKKyAgICAvLyBmb3Ig
YSBjcmVhdGVPZmZlcigpIGlzIGVub3VnaCB0aW1lIHRvIGxldCB0aGVtIGNvbXBsZXRlIHByb2Nl
c3NpbmcuCisgICAgLy8gVE9ETyhodHRwczovL2NyYnVnLmNvbS93ZWJydGMvMTMwOTUpOiBGaXgg
YnVnIGFuZCByZW1vdmUuCisgICAgYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CisKKyAgICBj
b25zdCBbc2Vjb25kX3RyYWNrXSA9IHNlY29uZF9zdHJlYW0uZ2V0VHJhY2tzKCk7CisgICAgY2Fs
bGVyLm9uaWNlY2FuZGlkYXRlID0gdC51bnJlYWNoZWRfZnVuYygKKyAgICAgICdObyBjYWxsZXIg
Y2FuZGlkYXRlcyBzaG91bGQgYmUgZ2VuZXJhdGVkLicpOworICAgIGNhbGxlZS5vbmljZWNhbmRp
ZGF0ZSA9IHQudW5yZWFjaGVkX2Z1bmMoCisgICAgICAnTm8gY2FsbGVlIGNhbmRpZGF0ZXMgc2hv
dWxkIGJlIGdlbmVyYXRlZC4nKTsKKyAgICBjYWxsZXIuYWRkVHJhY2soc2Vjb25kX3RyYWNrKTsK
KyAgICB7CisgICAgICBjb25zdCBvZmZlciA9IGF3YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOwor
ICAgICAgYXdhaXQgY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICAgICAgYXdh
aXQgY2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICAgIGNvbnN0IGFuc3dl
ciA9IGF3YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKKyAgICAgIGF3YWl0IGNhbGxlZS5zZXRM
b2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgICAgICBhd2FpdCBjYWxsZXIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oYW5zd2VyKTsKKyAgICB9CisgICAgLy8gQ2hlY2sgdGhhdCB3ZSdyZSBidW5kbGVk
LgorICAgIGNvbnN0IFtmaXJzdF90cmFuc2NlaXZlciwgc2Vjb25kX3RyYW5zY2VpdmVyXSA9IGNh
bGxlci5nZXRUcmFuc2NlaXZlcnMoKTsKKyAgICBhc3NlcnRfZXF1YWxzKGZpcnN0X3RyYW5zY2Vp
dmVyLnRyYW5zcG9ydCwgc2Vjb25kX3RyYW5zY2VpdmVyLnRyYW5zcG9ydCk7CisKKyAgfSwgJ0Fk
ZGluZyBtb3JlIHRyYWNrcyBkb2VzIG5vdCBnZW5lcmF0ZSBtb3JlIGNhbmRpZGF0ZXMgaWYgYnVu
ZGxlZCcpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYXB0dXJlLXZpZGVv
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhcHR1cmUtdmlkZW8uaHR0cHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMmQ1Nzg0NmRmOTVlMDdjYTNhZmQzNDVlOWFlMmZiYTdl
MTM3NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYXB0dXJlLXZpZGVvLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBDYXB0dXJpbmcgYSB2aWRlbyBl
bGVtZW50IGFuZCBzZW5kaW5nIGl0IHZpYSBQZWVyQ29ubmVjdGlvbiBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHNvdXJjZVZp
ZGVvLmNhcHR1cmVTdHJlYW0gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnc291cmNlVmlkZW8uY2Fw
dHVyZVN0cmVhbSgpJywgJ3NvdXJjZVZpZGVvLmNhcHR1cmVTdHJlYW0nIGlzIHVuZGVmaW5lZCki
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhcHR1cmUtdmlkZW8uaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWNhcHR1cmUtdmlkZW8uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmMwMjIyZGMy
MWQ3NzlhNmFiOTgyZDk2M2NmM2ZkNWFjZmMxOWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tY2FwdHVyZS12aWRlby5odHRwcy5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsK
KworLy8gVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IDx2aWRlbz4gY2FwdHVyZSB3b3JrcyB2aWEgUGVl
ckNvbm5lY3Rpb24uCisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc291cmNl
VmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICBzb3VyY2VWaWRlby5z
cmMgPSAiL21lZGlhL3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmci53ZWJtIjsKKyAgc291
cmNlVmlkZW8ubG9vcCA9IHRydWU7CisKKyAgY29uc3Qgb25DYW5QbGF5ID0gbmV3IFByb21pc2Uo
ciA9PiBzb3VyY2VWaWRlby5vbmNhbnBsYXkgPSByKTsKKyAgYXdhaXQgb25DYW5QbGF5OworCisg
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIC8vIEF0dGFjaCB2aWRl
byB0byBwYzEuCisgIGNvbnN0IHN0cmVhbSA9IHNvdXJjZVZpZGVvLmNhcHR1cmVTdHJlYW0oKTsK
KyAgY29uc3QgdHJhY2tzID0gc3RyZWFtLmdldFRyYWNrcygpOworICBwYzEuYWRkVHJhY2sodHJh
Y2tzWzBdKTsKKworICBjb25zdCBkZXN0VmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2
aWRlbycpOworICBkZXN0VmlkZW8uYXV0b3BsYXkgPSB0cnVlOworCisgIC8vIFNldHVwIHBjMS0+
cGMyLgorICBjb25zdCBoYXZlVHJhY2tFdmVudDEgPSBuZXcgUHJvbWlzZShyID0+IHBjMi5vbnRy
YWNrID0gcik7CisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGF3YWl0IHBj
MS5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlv
bihwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9u
KCk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlv
bik7CisKKyAgLy8gRGlzcGxheSBwYzIgcmVjZWl2ZWQgdHJhY2sgaW4gdmlkZW8gZWxlbWVudC4K
KyAgY29uc3Qgb25Mb2FkZWRNZXRhZGF0YSA9IG5ldyBQcm9taXNlKHIgPT4gZGVzdFZpZGVvLm9u
bG9hZGVkbWV0YWRhdGEgPSByKTsKKyAgZGVzdFZpZGVvLnNyY09iamVjdCA9IG5ldyBNZWRpYVN0
cmVhbShbKGF3YWl0IGhhdmVUcmFja0V2ZW50MSkudHJhY2tdKTsKKworICAvLyBTdGFydCBwbGF5
YmFjayBhbmQgd2FpdCBmb3IgdmlkZW8gb24gdGhlIG90aGVyIHNpZGUuCisgIHNvdXJjZVZpZGVv
LnBsYXkoKTsKKyAgYXdhaXQgb25Mb2FkZWRNZXRhZGF0YTsKKworICAvLyBXYWl0IHVudGlsIHRo
ZSB2aWRlbyBoYXMgbm9uLXplcm8gcmVzb2x1dGlvbiBhbmQgc29tZSBub24tYmxhY2sgcGl4ZWxz
LgorICBhd2FpdCBuZXcgUHJvbWlzZShwID0+IHsKKyAgICBmdW5jdGlvbiBjaGVja0NvbG9yKCkg
IHsKKyAgICAgICAgaWYgKGRlc3RWaWRlby52aWRlb1dpZHRoID4gMCAmJiBnZXRWaWRlb1NpZ25h
bChkZXN0VmlkZW8pID4gMC4wKQorICAgICAgICAgIHAoKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgIHQuc3RlcF90aW1lb3V0KGNoZWNrQ29sb3IsIDApOworICAgIH0KKyAgICBjaGVja0NvbG9y
KCk7CisgIH0pOworCisgIC8vIFVzZXMgSGVscGVyLmpzIEdldFZpZGVvU2lnbmFsIHRvIHF1ZXJ5
IHxkZXN0VmlkZW98IHBpeGVsIHZhbHVlIGF0IGEgY2VydGFpbiBwb3NpdGlvbi4KKyAgY29uc3Qg
cGl4ZWxWYWx1ZSA9IGdldFZpZGVvU2lnbmFsKGRlc3RWaWRlbyk7CisKKyAgLy8gQW55dGhpbmcg
bm9uLWJsYWNrIG1lYW5zIHRoYXQgY2FwdHVyZSB3b3Jrcy4KKyAgYXNzZXJ0X25vdF9lcXVhbHMo
cGl4ZWxWYWx1ZSwgMCk7CisgIH0sICJDYXB0dXJpbmcgYSB2aWRlbyBlbGVtZW50IGFuZCBzZW5k
aW5nIGl0IHZpYSBQZWVyQ29ubmVjdGlvbiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tZ2V0U3RhdHMuaHR0cHMuaHRtbAppbmRleCA0OWY4ODEzMWMzZTFmNzViOGI3Y2I5MjY3OTJm
OWFjNzFmNDFlOGVlLi5mMjZhOTNlYTI4OTk5ZTI0MWU3Mzc0ZmY5ZDA3ZjM5NDEyODE2YWExIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWdldFN0YXRzLmh0dHBzLmh0bWwKQEAgLTI2NCw4ICsyNjQsMTEgQEAKICAgICAib3V0Ym91
bmQtcnRwIiwKICAgICAicmVtb3RlLWluYm91bmQtcnRwIiwKICAgICAicmVtb3RlLW91dGJvdW5k
LXJ0cCIsCisgICAgIm1lZGlhLXNvdXJjZSIsCiAgICAgInBlZXItY29ubmVjdGlvbiIsCiAgICAg
ImRhdGEtY2hhbm5lbCIsCisgICAgInNlbmRlciIsCisgICAgInJlY2VpdmVyIiwKICAgICAidHJh
bnNwb3J0IiwKICAgICAiY2FuZGlkYXRlLXBhaXIiLAogICAgICJsb2NhbC1jYW5kaWRhdGUiLApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpz
CmluZGV4IDVhZWYwYThlMjFlNDJmYWZlNTg3MTljMGZiMjQ2YTkxOWQxYjE1ZDEuLjE1MjEyNzc0
MThmYWJkZGY1YzExZTc5MTE0ZTRjOWZhNDEzMjBmOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMKQEAgLTE3NiwxMSArMTc2LDkg
QEAgZnVuY3Rpb24gZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKSB7CiAgICAgbG9jYWxQ
Yy5hZGRFdmVudExpc3RlbmVyKCdpY2VjYW5kaWRhdGUnLCBldmVudCA9PiB7CiAgICAgICBjb25z
dCB7IGNhbmRpZGF0ZSB9ID0gZXZlbnQ7CiAKLSAgICAgIC8vIGNhbmRpZGF0ZSBtYXkgYmUgbnVs
bCB0byBpbmRpY2F0ZSBlbmQgb2YgY2FuZGlkYXRlIGdhdGhlcmluZy4KLSAgICAgIC8vIFRoZXJl
IGlzIG9uZ29pbmcgZGlzY3Vzc2lvbiBvbiB3M2Mvd2VicnRjLXBjIzEyMTMKLSAgICAgIC8vIHRo
YXQgdGhlcmUgc2hvdWxkIGJlIGFuIGVtcHR5IGNhbmRpZGF0ZSBzdHJpbmcgZXZlbnQKLSAgICAg
IC8vIGZvciBlbmQgb2YgY2FuZGlkYXRlIGZvciBlYWNoIG09IHNlY3Rpb24uCi0gICAgICBpZihj
YW5kaWRhdGUgJiYgcmVtb3RlUGMuc2lnbmFsaW5nU3RhdGUgIT09ICdjbG9zZWQnKSB7CisgICAg
ICAvLyBHdWFyZCBhZ2FpbnN0IGFscmVhZHkgY2xvc2VkIHBlZXJjb25uZWN0aW9uIHRvCisgICAg
ICAvLyBhdm9pZCB1bnJlbGF0ZWQgZXhjZXB0aW9ucy4KKyAgICAgIGlmIChyZW1vdGVQYy5zaWdu
YWxpbmdTdGF0ZSAhPT0gJ2Nsb3NlZCcpIHsKICAgICAgICAgcmVtb3RlUGMuYWRkSWNlQ2FuZGlk
YXRlKGNhbmRpZGF0ZSk7CiAgICAgICB9CiAgICAgfSk7CkBAIC0yNDIsOCArMjQwLDcgQEAgYXN5
bmMgZnVuY3Rpb24gd2FpdEZvckljZUdhdGhlcmluZ1N0YXRlKHBjLCB3YW50ZWRTdGF0ZXMpIHsK
IGFzeW5jIGZ1bmN0aW9uIGxpc3RlbkZvclNTUkNzKHQsIHJlY2VpdmVyKSB7CiAgIHdoaWxlICh0
cnVlKSB7CiAgICAgY29uc3Qgc3NyY3MgPSByZWNlaXZlci5nZXRTeW5jaHJvbml6YXRpb25Tb3Vy
Y2VzKCk7Ci0gICAgYXNzZXJ0X3RydWUoQXJyYXkuaXNBcnJheShzc3JjcykpOwotICAgIGlmIChz
c3Jjcy5sZW5ndGggPiAwKSB7CisgICAgaWYgKEFycmF5LmlzQXJyYXkoc3NyY3MpICYmIHNzcmNz
Lmxlbmd0aCA+IDApIHsKICAgICAgIHJldHVybiBzc3JjczsKICAgICB9CiAgICAgYXdhaXQgbmV3
IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChyLCAwKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5l
Y3Rpb25TdGF0ZS5odHRwcy5odG1sCmluZGV4IDMyMGIwM2RmYzgwZjhlN2U0YTIwZDllMjQzYjlj
Yzg3Yzg4ODgxYzcuLjUwODNiZTZjZGZkMTZmNWMyYzY3YTgwYTdkYmM5YzI0MDFmMWEwYTggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sCkBAIC0zMjAsMTUgKzMy
MCwxMSBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMxLmNsb3NlKCkpOwogICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0gIHBjMS5vbmljZWNhbmRpZGF0ZSA9
IGFzeW5jIGUgPT4gewotICAgIGlmIChlLmNhbmRpZGF0ZSkgewotICAgICAgYXdhaXQgcGMyLmFk
ZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7Ci0gICAgfQotICB9OworICBwYzEub25pY2VjYW5k
aWRhdGUgPSBlID0+IHBjMi5hZGRJY2VDYW5kaWRhdGUoZS5jYW5kaWRhdGUpOwogICBwYzEuY2Fu
ZGlkYXRlQnVmZmVyID0gW107CiAgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gewogICAgIC8v
IERvbid0IGFkZCBjYW5kaWRhdGUgaWYgY2FuZGlkYXRlIGJ1ZmZlciBpcyBhbHJlYWR5IHVzZWQK
LSAgICBpZiAoZS5jYW5kaWRhdGUgJiYgcGMxLmNhbmRpZGF0ZUJ1ZmZlcikgeworICAgIGlmIChw
YzEuY2FuZGlkYXRlQnVmZmVyKSB7CiAgICAgICBwYzEuY2FuZGlkYXRlQnVmZmVyLnB1c2goZS5j
YW5kaWRhdGUpCiAgICAgfQogICB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlR2F0aGVy
aW5nU3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKaW5kZXgg
ODcwZTZhZDcyZWMzNTZlY2VmYmNhNjg4NzhkYTczMWUzNDdlZDE3Yy4uNThiMTQ4OWQ5ZmY5YTYz
ZWJmMjhjMWU2OTI5NmEzYmMyNTFmYzc4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlR2F0
aGVyaW5nU3RhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS5odG1s
CkBAIC0xMSw3ICsxMSw3IEBACiAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMv
YXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKIAogICAvLyBUaGUgZm9sbG93aW5nIGhlbHBl
ciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoK
LSAgLy8gZXhjaGFuZ2VPZmZlckFuc3dlcgorICAvLyBleGNoYW5nZUFuc3dlcgogICAvLyBleGNo
YW5nZUljZUNhbmRpZGF0ZXMKICAgLy8gZ2VuZXJhdGVBdWRpb1JlY2VpdmVPbmx5T2ZmZXIKIApA
QCAtNTIsNiArNTIsOCBAQAogICAgKi8KICAgdGVzdCh0ID0+IHsKICAgICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2Uo
KSk7CisKICAgICBhc3NlcnRfZXF1YWxzKHBjLmljZUdhdGhlcmluZ1N0YXRlLCAnbmV3Jyk7CiAg
IH0sICdJbml0aWFsIGljZUdhdGhlcmluZ1N0YXRlIHNob3VsZCBiZSBuZXcnKTsKIApAQCAtMTYy
LDcgKzE2NCwxMiBAQAogICB9LCAncmVuZWdvdGlhdGlvbiB0aGF0IGNsb3NlcyBhbGwgdHJhbnNw
b3J0cyBzaG91bGQgcmVzdWx0IGluIElDRSBnYXRoZXJpbmcgc3RhdGUgIm5ldyInKTsKIAogICAv
KgotICAgIDQuNC4yLiAgUlRDSWNlR2F0aGVyaW5nU3RhdGUgRW51bQorICAgIDQuMy4yLiAgUlRD
SWNlR2F0aGVyaW5nU3RhdGUgRW51bQorICAgICAgbmV3CisgICAgICAgIEFueSBvZiB0aGUgUlRD
SWNlVHJhbnNwb3J0cyBhcmUgaW4gdGhlICJuZXciIGdhdGhlcmluZyBzdGF0ZSBhbmQgbm9uZQor
ICAgICAgICBvZiB0aGUgdHJhbnNwb3J0cyBhcmUgaW4gdGhlICJnYXRoZXJpbmciIHN0YXRlLCBv
ciB0aGVyZSBhcmUgbm8KKyAgICAgICAgdHJhbnNwb3J0cy4KKwogICAgICAgZ2F0aGVyaW5nCiAg
ICAgICAgIEFueSBvZiB0aGUgUlRDSWNlVHJhbnNwb3J0IHMgYXJlIGluIHRoZSBnYXRoZXJpbmcg
c3RhdGUuCiAKQEAgLTE3OSw3ICsxODYsNyBAQAogICAgICAgICBpbmRpY2F0aW9uIGZvciB0aGlz
IHRyYW5zcG9ydCBoYXMgYmVlbiBzZW50LiBJdCB3aWxsIG5vdCBnYXRoZXIgY2FuZGlkYXRlcwog
ICAgICAgICBhZ2FpbiB1bnRpbCBhbiBJQ0UgcmVzdGFydCBjYXVzZXMgaXQgdG8gcmVzdGFydC4K
ICAgICovCi0gIGFzeW5jX3Rlc3QodCA9PiB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKQEAgLTE5Myw3ICsyMDAsNyBAQAogICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQg
PSBwYzIuc2N0cC50cmFuc3BvcnQuaWNlVHJhbnNwb3J0OwogCiAgICAgICAgIGFzc2VydF9lcXVh
bHMoaWNlVHJhbnNwb3J0LmdhdGhlcmluZ1N0YXRlLCAnZ2F0aGVyaW5nJywKLSAgICAgICAgICAn
RXhwZWN0IElDRSB0cmFuc3BvcnQgdG8gYmUgaW4gY2hlY2tpbmcgZ2F0aGVyaW5nU3RhdGUgd2hl
biBpY2VHYXRoZXJpbmdTdGF0ZSBpcyBjaGVja2luZycpOworICAgICAgICAgICdFeHBlY3QgSUNF
IHRyYW5zcG9ydCB0byBiZSBpbiBnYXRoZXJpbmcgZ2F0aGVyaW5nU3RhdGUgd2hlbiBpY2VHYXRo
ZXJpbmdTdGF0ZSBpcyBnYXRoZXJpbmcnKTsKIAogICAgICAgfSBlbHNlIGlmKGljZUdhdGhlcmlu
Z1N0YXRlID09PSAnY29tcGxldGUnKSB7CiAgICAgICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IHBj
Mi5zY3RwLnRyYW5zcG9ydC5pY2VUcmFuc3BvcnQ7CkBAIC0yMDcsMTcgKzIxNCwyMCBAQAogCiAg
ICAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCd0ZXN0Jyk7CiAKLSAgICBhc3NlcnRfZXF1YWxzKHBj
Mi5vbmljZWdhdGhlcmluZ3N0YXRlY2hhbmdlLCBudWxsLAotICAgICAgJ0V4cGVjdCBjb25uZWN0
aW9uIHRvIGhhdmUgaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UgZXZlbnQnKTsKLQogICAgIC8vIFNw
ZWMgYnVnIHczYy93ZWJydGMtcGMjMTM4MgogICAgIC8vIEJlY2F1c2Ugc2N0cCBpcyBvbmx5IGRl
ZmluZWQgd2hlbiBhbnN3ZXIgaXMgc2V0LCB3ZSBsaXN0ZW4KICAgICAvLyB0byBwYzIgc28gdGhh
dCB3ZSBjYW4gYmUgY29uZmlkZW50IHRoYXQgc2N0cCBpcyBkZWZpbmVkCiAgICAgLy8gd2hlbiBp
Y2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSBldmVudCBpcyBmaXJlZC4KICAgICBwYzIuYWRkRXZlbnRM
aXN0ZW5lcignaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnLCBvbkljZUdhdGhlcmluZ1N0YXRlQ2hh
bmdlKTsKIAorCiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKLSAgICBleGNo
YW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2Ny
aXB0aW9uKCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuc2N0cC50cmFuc3BvcnQuaWNlVHJhbnNw
b3J0LmdhdGhlcmluZ1N0YXRlLCAnbmV3Jyk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKworICAgIGF3YWl0IGV4Y2hhbmdlQW5zd2Vy
KHBjMSwgcGMyKTsKICAgfSwgJ2Nvbm5lY3Rpb24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNob3Vs
ZCBldmVudHVhbGx5IGhhdmUgY29ubmVjdGVkIGNvbm5lY3Rpb24gc3RhdGUnKTsKIAogICAvKgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMuaHRtbAppbmRleCA3ZGExNGNkNWUw
ZjNmNWM3ZTgwN2I2MWNiMGU3ZWNjNzIxNmZmMDA3Li5mODBmYTVmZTFmNDY1Y2Y5NDYzNDdmMzBk
MDZlZjhhOTA1MmFmNDVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3Rh
dHMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMu
aHRtbApAQCAtOTUsNyArOTUsMTEgQEAgY29uc3QgbWFuZGF0b3J5ID0gewogICBdLAogICBSVEND
b2RlY1N0YXRzOiBbCiAgICAgInBheWxvYWRUeXBlIiwKLSAgICAiY29kZWNUeXBlIiwKKyAgICAv
KiBjb2RlY1R5cGUgaXMgcGFydCBvZiBNVEkgYnV0IGlzIG5vdCBzeXN0ZW1hdGljYWxseSBzZXQK
KyAgICAgICBwZXIgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYnJ0Yy1zdGF0cy8jZG9tLXJ0Y2Nv
ZGVjc3RhdHMtY29kZWN0eXBlCisgICAgICAgSWYgdGhlIGRpY3Rpb25hcnkgbWVtYmVyIGlzIG5v
dCBwcmVzZW50LCBpdCBtZWFucyB0aGF0CisgICAgICB0aGlzIG1lZGlhIGZvcm1hdCBjYW4gYmUg
Ym90aCBlbmNvZGVkIGFuZCBkZWNvZGVkLiAqLworICAgIC8vICJjb2RlY1R5cGUiLAogICAgICJt
aW1lVHlwZSIsCiAgICAgImNsb2NrUmF0ZSIsCiAgICAgImNoYW5uZWxzIiwKQEAgLTEzMCw3ICsx
MzQsMTEgQEAgY29uc3QgbWFuZGF0b3J5ID0gewogICAgICJmaW5nZXJwcmludCIsCiAgICAgImZp
bmdlcnByaW50QWxnb3JpdGhtIiwKICAgICAiYmFzZTY0Q2VydGlmaWNhdGUiLAotICAgICJpc3N1
ZXJDZXJ0aWZpY2F0ZUlkIiwKKyAgICAvKiBpc3N1ZXJDZXJ0aWZpY2F0ZUlkIGlzIHBhcnQgb2Yg
TVRJIGJ1dCBpcyBub3Qgc3lzdGVtYXRpY2FsbHkgc2V0CisgICAgICAgcGVyIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi93ZWJydGMtc3RhdHMvI2RvbS1ydGNjZXJ0aWZpY2F0ZXN0YXRzLWlzc3VlcmNl
cnRpZmljYXRlaWQKKyAgICAgICBJZiB0aGUgY3VycmVudCBjZXJ0aWZpY2F0ZSBpcyBhdCB0aGUg
ZW5kIG9mIHRoZSBjaGFpbgorICAgICAgIChpLmUuIGEgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUp
LCB0aGlzIHdpbGwgbm90IGJlIHNldC4gKi8KKyAgICAvLyAiaXNzdWVyQ2VydGlmaWNhdGVJZCIs
CiAgIF0sCiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBv
cnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY0NjIwMDdkNjQyYjIwNTkwOTFiODFiMzA4ODYwMTE0
NGNmZDAwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBsYW4tYi1pcy1ub3Qtc3Vw
cG9ydGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBQbGFuIEIgaXMgbm90
IHN1cHBvcnRlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBv
cnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZGU2YjFiMDAzYTQxNmU3NzMyYTA2MGY5ZjVhODNmZjQ0NjA4ODZjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQuaHRtbApAQCAt
MCwwICsxLDI4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0
YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT48L3RpdGxlPgorPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBz
dHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIC8vIFBsYW4gQiBpcyBhIGxl
Z2FjeSBmZWF0dXJlIHRoYXQgc2hvdWxkIG5vdCBiZSBzdXBwb3J0ZWQgb24gYSBtb2Rlcm4KKyAg
Ly8gYnJvd3Nlci4gVG8gcGFzcyB0aGlzIHRlc3QgeW91IG11c3QgZWl0aGVyIGlnbm9yZSBzZHBT
ZW1hbnRpY3MgYWx0b2dldGhlcgorICAvLyAoYW5kIGNvbnN0cnVjdCB3aXRoIFVuaWZpZWQgUGxh
biBkZXNwaXRlIHVzIGFza2luZyBmb3IgUGxhbiBCKSBvciB0aHJvdyBhbgorICAvLyBleGNlcHRp
b24uCisgIGxldCBwYyA9IG51bGw7CisgIHRyeSB7CisgICAgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oe3NkcFNlbWFudGljczoicGxhbi1iIn0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMuY2xvc2UoKSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAvLyBUZXN0IHBhc3NlZCEKKyAgICBy
ZXR1cm47CisgIH0KKyAgLy8gSWYgd2UgZGlkIG5vdCB0aHJvdywgd2UgbXVzdCBub3QgaGF2ZSBn
b3R0ZW4gd2hhdCB3ZSBhc2tlZCBmb3IuIElmCisgIC8vIHNkcFNlbWFudGljcyBpcyBub3QgcmVj
b2duaXplZCBieSB0aGUgYnJvd3NlciBpdCB3aWxsIGJlIHVuZGVmaW5lZCBoZXJlLgorICBhc3Nl
cnRfbm90X2VxdWFscyhwYy5nZXRDb25maWd1cmF0aW9uKCkuc2RwU2VtYW50aWNzLCAicGxhbi1i
Iik7Cit9LCAnUGxhbiBCIGlzIG5vdCBzdXBwb3J0ZWQnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1yZWxheS1jYW52YXMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcmVsYXktY2FudmFzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMmVmZjZl
Y2FhNzUzMDQ5OGRlODQ1NDNlOWVkNzI1MTZiZDk3ZjE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tcmVsYXktY2FudmFzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworRkFJTCBUd28gUGVlckNvbm5lY3Rpb25zIHJlbGF5aW5nIGEgY2FudmFzIHNvdXJjZSBhc3Nl
cnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgMTgzLjYgKy8tIDIgYnV0IGdvdCAxODguNDI5OTk5
OTk5OTk5OTgKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVsYXktY2FudmFzLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1yZWxheS1jYW52YXMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTlj
ZDA2ODIyMGQ2ZjBlYzJhOGE3N2UyMTVhNDA3MDJmOTFlZTc1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tcmVsYXktY2FudmFzLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIg
Y29udGVudD0ibG9uZyI+Cis8dGl0bGU+UmVsYXkgY2FudmFzIHZpYSBQZWVyQ29ubmVjdGlvbnM8
L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisgICd1c2Ugc3RyaWN0JzsKKworLy8gVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGNhbnZhcyBj
YXB0dXJlIHdvcmtzIHJlbGF5ZWQgYmV0d2VlbiBzZXZlcmFsIHBlZXIgY29ubmVjdGlvbnMuCisK
K2Z1bmN0aW9uIEdyZWVuRnJhbWVXZWJHTCh3aWR0aCwgaGVpZ2h0KSB7CisgIGNvbnN0IGNhbnZh
cyA9CisgICAgICBPYmplY3QuYXNzaWduKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycp
LCB7d2lkdGgsIGhlaWdodH0pOworICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnd2Vi
Z2wnKTsKKyAgaWYgKGN0eCA9PT0gbnVsbCkgcmV0dXJuOworICByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoZnVuY3Rpb24gZHJhdyAoKSB7CisgICAgY3R4LmNsZWFyQ29sb3IoMC4wLCAxLjAsIDAuMCwg
MS4wKTsKKyAgICBjdHguY2xlYXIoY3R4LkNPTE9SX0JVRkZFUl9CSVQpOworICAgIHJlcXVlc3RB
bmltYXRpb25GcmFtZShkcmF3KTsKKyAgfSk7CisgIHJldHVybiBjYW52YXMuY2FwdHVyZVN0cmVh
bSgpOworfQorCisKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworCisgIC8vIEJ1aWxkIGEg
Y2hhaW4KKyAgLy8gY2FudmFzIC10cmFjay0+IHBjMSAtbmV0d29yay0+IHBjUmVsYXlJbiAtdHJh
Y2stPgorICAvLyAgICAgICBwY1JlbGF5T3V0IC1uZXR3b3JrLT4gcGMyIC10cmFjay0+IHZpZGVv
CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGNSZWxheUluID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGNSZWxheUluLmNsb3NlKCkpOworCisg
IGNvbnN0IHBjUmVsYXlPdXQgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwY1JlbGF5T3V0LmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAg
Ly8gQXR0YWNoIGNhbnZhcyB0byBwYzEuCisgIGNvbnN0IHN0cmVhbSA9IEdyZWVuRnJhbWVXZWJH
TCg2NDAsIDQ4MCk7CisgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgIHBj
MS5hZGRUcmFjayh0cmFjayk7CisKKyAgY29uc3QgdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3ZpZGVvJyk7CisgIHYuYXV0b3BsYXkgPSB0cnVlOworCisgIC8vIFNldHVwIHBjMS0+cGNSZWxh
eUluIHZpZGVvIHN0cmVhbS4KKyAgY29uc3QgaGF2ZVRyYWNrRXZlbnQxID0gbmV3IFByb21pc2Uo
ciA9PiBwY1JlbGF5SW4ub250cmFjayA9IHIpOworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMx
LCBwY1JlbGF5SW4pOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhd2Fp
dCBwY1JlbGF5SW4uc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOwor
ICBhd2FpdCBwY1JlbGF5SW4uc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhd2FpdCBwYzEuc2V0
UmVtb3RlRGVzY3JpcHRpb24ocGNSZWxheUluLmxvY2FsRGVzY3JpcHRpb24pOworCisgIC8vIFBs
dWcgb3V0cHV0IG9mIHBjUmVsYXlJbiB0byBwY1JlbGF5T3V0LgorICBwY1JlbGF5T3V0LmFkZFRy
YWNrKChhd2FpdCBoYXZlVHJhY2tFdmVudDEpLnRyYWNrKTsKKworICAvLyBTZXR1cCBwY1JlbGF5
T3V0LT5wYzIgdmlkZW8gc3RyZWFtLgorICBjb25zdCBoYXZlVHJhY2tFdmVudDIgPSBuZXcgUHJv
bWlzZShyID0+IHBjMi5vbnRyYWNrID0gcik7CisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwY1Jl
bGF5T3V0LCBwYzIpOworICBhd2FpdCBwY1JlbGF5T3V0LnNldExvY2FsRGVzY3JpcHRpb24oKTsK
KyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjUmVsYXlPdXQubG9jYWxEZXNjcmlw
dGlvbik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIGF3YWl0IHBjUmVs
YXlPdXQuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgIC8v
IERpc3BsYXkgcGMyIHJlY2VpdmVkIHRyYWNrIGluIHZpZGVvIGVsZW1lbnQuCisgIHYuc3JjT2Jq
ZWN0ID0gbmV3IE1lZGlhU3RyZWFtKFsoYXdhaXQgaGF2ZVRyYWNrRXZlbnQyKS50cmFja10pOwor
ICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHYub25sb2FkZWRtZXRhZGF0YSA9IHIpOworCisgIC8v
IFdhaXQgc29tZSB0aW1lIHRvIGVuc3VyZSB0aGF0IGZyYW1lcyBnb3QgdGhyb3VnaC4KKyAgYXdh
aXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCAxMDAwKSk7
CisKKyAgLy8gVXNlcyBIZWxwZXIuanMgR2V0VmlkZW9TaWduYWwgdG8gcXVlcnkgfHZ8IHBpeGVs
IHZhbHVlIGF0IGEgY2VydGFpbiBwb3NpdGlvbi4KKyAgY29uc3QgcGl4ZWxWYWx1ZSA9IGdldFZp
ZGVvU2lnbmFsKHYpOworCisgIC8vIEV4cGVjdGVkIHZhbHVlIGNvbXB1dGVkIGJhc2VkIG9uIEdl
dFZpZGVvU2lnbmFsIGNvZGUsIHdoaWNoIHRha2VzIGdyZWVuIHBpeGVsIGRhdGEKKyAgLy8gd2l0
aCBjb2VmZmljaWVudCAwLjcyLgorICBhc3NlcnRfYXBwcm94X2VxdWFscyhwaXhlbFZhbHVlLCAw
LjcyKjI1NSwgMik7CisgIH0sICJUd28gUGVlckNvbm5lY3Rpb25zIHJlbGF5aW5nIGEgY2FudmFz
IHNvdXJjZSIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNl
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2UuaHR0cHMtZXhwZWN0
ZWQudHh0CmluZGV4IDYyZTQzMzAwZjIxMzFjN2MzNjJiMmEzOTMwMzZmOGE2NmI0MTFhZjEuLjUz
NTEwOTM5M2ZlYjg4ODMzNTQwZmEwMzMyMWU5ZDIxZjk3NWU2MWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXJlc3RhcnRJY2UuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJl
c3RhcnRJY2UuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsNyBAQCBGQUlMIHJlc3RhcnRJ
Y2UoKSBkb2VzIG5vdCB0cmlnZ2VyIG5lZ290aWF0aW9uIGFoZWFkIG9mIGluaXRpYWwgbmVnb3Rp
YXRpb24gYXNzZQogUEFTUyByZXN0YXJ0SWNlKCkgaGFzIG5vIGVmZmVjdCBvbiBpbml0aWFsIG5l
Z290aWF0aW9uCiBQQVNTIHJlc3RhcnRJY2UoKSBmaXJlcyBuZWdvdGlhdGlvbm5lZWRlZCBhZnRl
ciBpbml0aWFsIG5lZ290aWF0aW9uCiBQQVNTIHJlc3RhcnRJY2UoKSBjYXVzZXMgZnJlc2ggdWZy
YWdzCitQQVNTIHJlc3RhcnRJY2UoKSByZXRhaW5zIGR0bHMgdHJhbnNwb3J0cwogUEFTUyByZXN0
YXJ0SWNlKCkgd29ya3MgaW4gaGF2ZS1sb2NhbC1vZmZlcgogUEFTUyByZXN0YXJ0SWNlKCkgd29y
a3MgaW4gaW5pdGlhbCBoYXZlLWxvY2FsLW9mZmVyCiBQQVNTIHJlc3RhcnRJY2UoKSB3b3JrcyBp
biBoYXZlLXJlbW90ZS1vZmZlcgpAQCAtMTIsNCArMTMsMTcgQEAgUEFTUyByZXN0YXJ0SWNlKCkg
aXMgc2F0aXNmaWVkIGJ5IHJlbW90ZSBJQ0UgcmVzdGFydAogUEFTUyByZXN0YXJ0SWNlKCkgdHJ1
bXBzIHtpY2VSZXN0YXJ0OiBmYWxzZX0KIFBBU1MgcmVzdGFydEljZSgpIHN1cnZpdmVzIHJvbGxi
YWNrCiBGQUlMIHJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByZW1vdGUgb2ZmZXIgY29udGFpbmluZyBw
YXJ0aWFsIHJlc3RhcnQgYXNzZXJ0X2ZhbHNlOiBSZXN0YXJ0ZWQgMiBleHBlY3RlZCBmYWxzZSBn
b3QgdHJ1ZQorUEFTUyByZXN0YXJ0SWNlKCkgaGFzIG5vIGVmZmVjdCBvbiBpbml0aWFsIG5lZ290
aWF0aW9uIChwZXJmZWN0IG5lZ290aWF0aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgZmlyZXMgbmVn
b3RpYXRpb25uZWVkZWQgYWZ0ZXIgaW5pdGlhbCBuZWdvdGlhdGlvbiAocGVyZmVjdCBuZWdvdGlh
dGlvbikKK1BBU1MgcmVzdGFydEljZSgpIGNhdXNlcyBmcmVzaCB1ZnJhZ3MgKHBlcmZlY3QgbmVn
b3RpYXRpb24pCitQQVNTIHJlc3RhcnRJY2UoKSByZXRhaW5zIGR0bHMgdHJhbnNwb3J0cyAocGVy
ZmVjdCBuZWdvdGlhdGlvbikKK1BBU1MgcmVzdGFydEljZSgpIHdvcmtzIGluIGhhdmUtbG9jYWwt
b2ZmZXIgKHBlcmZlY3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3RhcnRJY2UoKSB3b3JrcyBpbiBp
bml0aWFsIGhhdmUtbG9jYWwtb2ZmZXIgKHBlcmZlY3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3Rh
cnRJY2UoKSB3b3JrcyBpbiBoYXZlLXJlbW90ZS1vZmZlciAocGVyZmVjdCBuZWdvdGlhdGlvbikK
K1BBU1MgcmVzdGFydEljZSgpIGRvZXMgbm90aGluZyBpbiBpbml0aWFsIGhhdmUtcmVtb3RlLW9m
ZmVyIChwZXJmZWN0IG5lZ290aWF0aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcmVt
b3RlIG9mZmVyIChwZXJmZWN0IG5lZ290aWF0aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgaXMgc2F0
aXNmaWVkIGJ5IHJlbW90ZSBJQ0UgcmVzdGFydCAocGVyZmVjdCBuZWdvdGlhdGlvbikKK1BBU1Mg
cmVzdGFydEljZSgpIHRydW1wcyB7aWNlUmVzdGFydDogZmFsc2V9IChwZXJmZWN0IG5lZ290aWF0
aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcm9sbGJhY2sgKHBlcmZlY3QgbmVnb3Rp
YXRpb24pCitGQUlMIHJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByZW1vdGUgb2ZmZXIgY29udGFpbmlu
ZyBwYXJ0aWFsIHJlc3RhcnQgKHBlcmZlY3QgbmVnb3RpYXRpb24pIGFzc2VydF9mYWxzZTogUmVz
dGFydGVkIDIgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tcmVzdGFydEljZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy5o
dG1sCmluZGV4IDhmOGM2NjFhNDFkZDBhMWNiOGY1NmJhZjgwZjZkM2I3OTdmOWUyMjkuLjBlNGVj
ZjY0Yzg1M2ZjZTlkNGU0YTY2ODU2ZjJhMDYwZjJiZGJiMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXJlc3RhcnRJY2UuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0
dHBzLmh0bWwKQEAgLTE2LDE1ICsxNiwzNiBAQCBmdW5jdGlvbiBnZXRMaW5lcyhzZHAsIHN0YXJ0
c1dpdGgpIHsKIGNvbnN0IGdldFVmcmFncyA9ICh7c2RwfSkgPT4gZ2V0TGluZXMoc2RwLCAiYT1p
Y2UtdWZyYWc6Iik7CiBjb25zdCBnZXRQd2RzID0gKHtzZHB9KSA9PiBnZXRMaW5lcyhzZHAsICJh
PWljZS1wd2Q6Iik7CiAKLWFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZp
cnN0KHBjMSwgcGMyKSB7Ci0gIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBj
MS5jcmVhdGVPZmZlcigpKTsKK2NvbnN0IG5lZ290aWF0b3JzID0gWworICB7CisgICAgdGFnOiAi
IiwKKyAgICBhc3luYyBzZXRPZmZlcihwYykgeworICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNj
cmlwdGlvbihhd2FpdCBwYy5jcmVhdGVPZmZlcigpKTsKKyAgICB9LAorICAgIGFzeW5jIHNldEFu
c3dlcihwYykgeworICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYy5j
cmVhdGVBbnN3ZXIoKSk7CisgICAgfSwKKyAgfSwKKyAgeworICAgIHRhZzogIiAocGVyZmVjdCBu
ZWdvdGlhdGlvbikiLAorICAgIGFzeW5jIHNldE9mZmVyKHBjKSB7CisgICAgICBhd2FpdCBwYy5z
ZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgICAgfSwKKyAgICBhc3luYyBzZXRBbnN3ZXIocGMpIHsK
KyAgICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgICB9LAorICB9LAorXTsK
KworYXN5bmMgZnVuY3Rpb24gZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIs
IG5lZ290aWF0b3IpIHsKKyAgYXdhaXQgbmVnb3RpYXRvci5zZXRPZmZlcihwYzEpOwogICBhd2Fp
dCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBhd2Fp
dCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOworICBh
d2FpdCBuZWdvdGlhdG9yLnNldEFuc3dlcihwYzIpOwogICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOyAvLyBFbmQgb24gcGMxLiBObyByYWNlCiB9
CiAKLWFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPblNlY29uZChwYzEsIHBj
MikgewotICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2Zm
ZXIoKSk7Cithc3luYyBmdW5jdGlvbiBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25TZWNvbmQocGMx
LCBwYzIsIG5lZ290aWF0b3IpIHsKKyAgYXdhaXQgbmVnb3RpYXRvci5zZXRPZmZlcihwYzEpOwog
ICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOwog
ICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigp
KTsKICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24ocGMxLnJlbW90ZURlc2NyaXB0aW9u
KTsgLy8gRW5kIG9uIHBjMi4gTm8gcmFjZQpAQCAtNjUsMzMwICs4NiwzOTAgQEAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4gewogICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBj
MSk7CiB9LCAicmVzdGFydEljZSgpIGRvZXMgbm90IHRyaWdnZXIgbmVnb3RpYXRpb24gYWhlYWQg
b2YgaW5pdGlhbCBuZWdvdGlhdGlvbiIpOwogCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0g
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7
Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFuc2Nl
aXZlcigiYXVkaW8iKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlv
bm5lZWRlZCA9IHIpOwotICBwYzEucmVzdGFydEljZSgpOwotICBhd2FpdCBleGNoYW5nZU9mZmVy
QW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0gIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25O
ZWVkZWQodCwgcGMxKTsKLX0sICJyZXN0YXJ0SWNlKCkgaGFzIG5vIGVmZmVjdCBvbiBpbml0aWFs
IG5lZ290aWF0aW9uIik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRp
byIpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0g
cik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLSAg
cGMxLnJlc3RhcnRJY2UoKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlh
dGlvbm5lZWRlZCA9IHIpOwotfSwgInJlc3RhcnRJY2UoKSBmaXJlcyBuZWdvdGlhdGlvbm5lZWRl
ZCBhZnRlciBpbml0aWFsIG5lZ290aWF0aW9uIik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9z
ZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRy
YW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJz
dChwYzEsIHBjMik7Ci0KLSAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2Fs
RGVzY3JpcHRpb24pOwotICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxE
ZXNjcmlwdGlvbik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwg
cGMyKTsKLSAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0
aW9uKVswXSwgb2xkVWZyYWcxLCAiY29udHJvbCAxIik7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxz
KGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMiwgImNvbnRyb2wg
MiIpOwotCi0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMx
Lm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVu
ZE9uRmlyc3QocGMxLCBwYzIpOwotICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEu
bG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5s
b2NhbERlc2NyaXB0aW9uKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwg
b2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFs
cyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOwotICBhd2FpdCBhc3Nl
cnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci0KLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFu
c3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJh
Z3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBuZXdVZnJhZzEsICJVbmNoYW5nZWQgMSIpOwot
ICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBd
LCBuZXdVZnJhZzIsICJVbmNoYW5nZWQgMiIpOwotfSwgInJlc3RhcnRJY2UoKSBjYXVzZXMgZnJl
c2ggdWZyYWdzIik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcGMxID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIp
OwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7
Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLQotICBj
b25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNv
bnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLQotICBh
d2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7Ci0g
IHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEu
bG9jYWxEZXNjcmlwdGlvbik7Ci0gIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0
IHBjMi5jcmVhdGVBbnN3ZXIoKSk7Ci0gIC8vIFNldmVyYWwgdGVzdHMgaW4gdGhpcyBmaWxlIGlu
aXRpYWxpemVzIHRoZSBvbm5lZ290aWF0aW9ubmVlZGVkIGxpc3RlbmVyCi0gIC8vIGJlZm9yZSB0
aGUgc2V0TG9jYWxEZXNjcmlwdGlvbigpIG9yIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgdGhhdCB3
ZSBleHBlY3QKLSAgLy8gdG8gdHJpZ2dlciBuZWdvdGlhdGlvbiBuZWVkZWQuIFRoaXMgYWxsb3dz
IENocm9tZSB0byBleGVyY2lzZSB0aGVzZSB0ZXN0cwotICAvLyB3aXRob3V0IHRpbWluZyBvdXQg
ZHVlIHRvIGEgYnVnIHRoYXQgY2F1c2VzIG9ubmVnb3RpYXRpb25uZWVkZWQgdG8gZmlyZSB0b28K
LSAgLy8gZWFybHkuCi0gIC8vIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20vOTg1Nzk3KTogT25jZSBD
aHJvbWUgZG9lcyBub3QgZmlyZSBPTk4gdG9vIGVhcmx5LAotICAvLyBzaW1wbHkgZG8gImF3YWl0
IG5ldyBQcm9taXNlKC4uLikiIGluc3RlYWQgb2YKLSAgLy8gImF3YWl0IG5lZ290aWF0aW9uTmVl
ZGVkUHJvbWlzZSIgaGVyZSBhbmQgaW4gb3RoZXIgdGVzdHMgaW4gdGhpcyBmaWxlLgotICBjb25z
dCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQotICAgICAgbmV3IFByb21pc2UociA9PiBwYzEu
b25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRp
b24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJh
Z3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzEsICJVbmNoYW5nZWQgMSIpOwot
ICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBd
LCBvbGRVZnJhZzIsICJVbmNoYW5nZWQgMiIpOwotICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFBy
b21pc2U7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsK
LSAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwot
ICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0g
IGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEg
Y2hhbmdlZCIpOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJh
ZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRl
ZCh0LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSB3b3JrcyBpbiBoYXZlLWxvY2FsLW9mZmVyIik7
Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2FpdCBu
ZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IHBj
MS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKLSAgcGMxLnJl
c3RhcnRJY2UoKTsKLSAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERl
c2NyaXB0aW9uKTsKLSAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNy
ZWF0ZUFuc3dlcigpKTsKLSAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KLSAgICAg
IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQg
cGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3Qg
W29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBb
b2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGF3YWl0IG5l
Z290aWF0aW9uTmVlZGVkUHJvbWlzZTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9u
Rmlyc3QocGMxLCBwYzIpOwotICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9j
YWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2Nh
bERlc2NyaXB0aW9uKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xk
VWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhu
ZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOwotICBhd2FpdCBhc3NlcnRO
b05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIHdvcmtzIGluIGlu
aXRpYWwgaGF2ZS1sb2NhbC1vZmZlciIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0g
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7
Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFuc2Nl
aXZlcigiYXVkaW8iKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlv
bm5lZWRlZCA9IHIpOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEs
IHBjMik7Ci0KLSAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3Jp
cHRpb24pOwotICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlw
dGlvbik7Ci0KLSAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0
ZU9mZmVyKCkpOwotICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVz
Y3JpcHRpb24pOwotICBwYzEucmVzdGFydEljZSgpOwotICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigpKTsKLSAgY29uc3QgbmVnb3RpYXRpb25O
ZWVkZWRQcm9taXNlID0KLSAgICAgIG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25u
ZWVkZWQgPSByKTsKLSAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ocGMyLnJlbW90ZURl
c2NyaXB0aW9uKTsgLy8gRW5kIG9uIHBjMS4gTm8gcmFjZQotICBhc3NlcnRfdWZyYWdzX2VxdWFs
cyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzEsICJVbmNoYW5n
ZWQgMSIpOwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3Jp
cHRpb24pWzBdLCBvbGRVZnJhZzIsICJVbmNoYW5nZWQgMiIpOwotICBhd2FpdCBuZWdvdGlhdGlv
bk5lZWRlZFByb21pc2U7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBj
MSwgcGMyKTsKLSAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3Jp
cHRpb24pOwotICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlw
dGlvbik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwg
InVmcmFnIDEgY2hhbmdlZCIpOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcx
LCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlh
dGlvbk5lZWRlZCh0LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSB3b3JrcyBpbiBoYXZlLXJlbW90
ZS1vZmZlciIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gIHBjMi5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsK
LSAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCkp
OwotICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24p
OwotICBwYzEucmVzdGFydEljZSgpOwotICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24o
YXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigpKTsKLSAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRp
b24ocGMyLnJlbW90ZURlc2NyaXB0aW9uKTsgLy8gRW5kIG9uIHBjMS4gTm8gcmFjZQotICBhd2Fp
dCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIGRv
ZXMgbm90aGluZyBpbiBpbml0aWFsIGhhdmUtcmVtb3RlLW9mZmVyIik7Ci0KLXByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0g
IGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0K
LSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+
IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3
ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLQotICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFn
cyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdz
KHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLQotICBwYzEucmVzdGFydEljZSgpOwotICBhd2FpdCBu
ZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGNvbnN0IG5l
Z290aWF0aW9uTmVlZGVkUHJvbWlzZSA9Ci0gICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5l
Z290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPblNl
Y29uZChwYzIsIHBjMSk7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9j
YWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMSwgIm5vdGhpbmcgeWV0IDEiKTsKLSAgYXNzZXJ0
X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZy
YWcyLCAibm90aGluZyB5ZXQgMiIpOwotICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2U7
Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLSAgY29u
c3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25z
dCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGFzc2Vy
dF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdl
ZCIpOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcyLCBvbGRVZnJhZzIsICJ1
ZnJhZyAyIGNoYW5nZWQiKTsKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBw
YzEpOwotfSwgInJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByZW1vdGUgb2ZmZXIiKTsKLQotcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKLSAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgp
KTsKLQotICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0gIGF3YWl0IG5ldyBQcm9taXNl
KHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZl
ckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwotCi0gIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0
VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRV
ZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworLy8gUnVuIHJlbWFpbmluZyB0ZXN0cyB0d2lj
ZTogb25jZSBmb3IgZWFjaCBuZWdvdGlhdG9yCisKK2ZvciAoY29uc3QgbmVnb3RpYXRvciBvZiBu
ZWdvdGlhdG9ycykgeworICBjb25zdCB7dGFnfSA9IG5lZ290aWF0b3I7CisKKyAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNs
b3NlKCkpOworCisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0IG5l
dyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBwYzEucmVz
dGFydEljZSgpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwg
cGMyLCBuZWdvdGlhdG9yKTsKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQs
IHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkgaGFzIG5vIGVmZmVjdCBvbiBpbml0aWFsIG5lZ290
aWF0aW9uJHt0YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0
IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwor
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRyYW5z
Y2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3Rp
YXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJz
dChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisgICAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgICBhd2Fp
dCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIH0sIGBy
ZXN0YXJ0SWNlKCkgZmlyZXMgbmVnb3RpYXRpb25uZWVkZWQgYWZ0ZXIgaW5pdGlhbCBuZWdvdGlh
dGlvbiR7dGFnfWApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2Nl
aXZlcigiYXVkaW8iKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChw
YzEsIHBjMiwgbmVnb3RpYXRvcik7CisKKyAgICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFn
cyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJh
Z3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJF
bmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFs
cyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzEsICJjb250cm9s
IDEiKTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3Jp
cHRpb24pWzBdLCBvbGRVZnJhZzIsICJjb250cm9sIDIiKTsKKworICAgIHBjMS5yZXN0YXJ0SWNl
KCk7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBu
ZWdvdGlhdG9yKTsKKyAgICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxE
ZXNjcmlwdGlvbik7CisgICAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2Fs
RGVzY3JpcHRpb24pOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9s
ZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFs
cyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOworICAgIGF3YWl0IGFz
c2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKKworICAgIGF3YWl0IGV4Y2hhbmdlT2Zm
ZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBhc3NlcnRfdWZy
YWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBuZXdVZnJhZzEs
ICJVbmNoYW5nZWQgMSIpOworICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIu
bG9jYWxEZXNjcmlwdGlvbilbMF0sIG5ld1VmcmFnMiwgIlVuY2hhbmdlZCAyIik7CisgIH0sIGBy
ZXN0YXJ0SWNlKCkgY2F1c2VzIGZyZXNoIHVmcmFncyR7dGFnfWApOworCisgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBjb25maWcgPSB7YnVuZGxlUG9saWN5OiAibWF4LWJ1
bmRsZSJ9OworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpOwor
ICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOworCisgICAgcGMxLm9uaWNlY2FuZGlkYXRlID0gZSA9PiBwYzIuYWRkSWNlQ2Fu
ZGlkYXRlKGUuY2FuZGlkYXRlKTsKKyAgICBwYzIub25pY2VjYW5kaWRhdGUgPSBlID0+IHBjMS5h
ZGRJY2VDYW5kaWRhdGUoZS5jYW5kaWRhdGUpOworCisgICAgLy8gU2VlIHRoZSBleHBsYW5hdGlv
biBiZWxvdyBhYm91dCBDaHJvbWUncyBvbm5lZ290aWF0aW9ubmVlZGVkIGZpcmluZworICAgIC8v
IHRvbyBlYXJseS4KKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UxID0KKyAgICAg
ICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIHBj
MS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlv
Iik7CisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlMTsKKyAgICBhd2FpdCBleGNo
YW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisKKyAgICBj
b25zdCBbdmlkZW9UYywgYXVkaW9UY10gPSBwYzEuZ2V0VHJhbnNjZWl2ZXJzKCk7CisgICAgY29u
c3QgW3ZpZGVvVHAsIGF1ZGlvVHBdID0KKyAgICAgICAgcGMxLmdldFRyYW5zY2VpdmVycygpLm1h
cCh0YyA9PiB0Yy5zZW5kZXIudHJhbnNwb3J0KTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRU
cmFuc2NlaXZlcnMoKS5sZW5ndGgsIDIsICd0cmFuc2NlaXZlciBjb3VudCcpOworCisgICAgLy8g
T24gQ2hyb21lLCBpdCBpcyBwb3NzaWJsZSAobGlrZWx5LCBldmVuKSB0aGF0IHZpZGVvVGMuc2Vu
ZGVyLnRyYW5zcG9ydC5zdGF0ZQorICAgIC8vIHdpbGwgYmUgJ2Nvbm5lY3RlZCcgYnkgdGhlIHRp
bWUgd2UgZ2V0IGhlcmUuICBXZSdsbCByYWNlIDIgcHJvbWlzZXMgaGVyZToKKyAgICAvLyAxLiBS
ZXNvbHZlIGFmdGVyIG9uc3RhdGVjaGFuZ2UgaXMgY2FsbGVkIHdpdGggY29ubmVjdGVkIHN0YXRl
LgorICAgIC8vIDIuIElmIGFscmVhZHkgY29ubmVjdGVkLCByZXNvbHZlIGltbWVkaWF0ZWx5Lgor
ICAgIGF3YWl0IFByb21pc2UucmFjZShbCisgICAgICBuZXcgUHJvbWlzZShyID0+IHZpZGVvVGMu
c2VuZGVyLnRyYW5zcG9ydC5vbnN0YXRlY2hhbmdlID0KKyAgICAgICAgKCkgPT4gdmlkZW9UYy5z
ZW5kZXIudHJhbnNwb3J0LnN0YXRlID09ICJjb25uZWN0ZWQiICYmIHIoKSksCisgICAgICBuZXcg
UHJvbWlzZShyID0+IHZpZGVvVGMuc2VuZGVyLnRyYW5zcG9ydC5zdGF0ZSA9PSAiY29ubmVjdGVk
IiAmJiByKCkpCisgICAgXSk7CisgICAgYXNzZXJ0X2VxdWFscyh2aWRlb1RjLnNlbmRlci50cmFu
c3BvcnQuc3RhdGUsICJjb25uZWN0ZWQiKTsKKworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3
ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBhc3NlcnRfZXF1YWxzKHZp
ZGVvVHAsIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5zZW5kZXIudHJhbnNwb3J0LAorICAgICAg
ICAgICAgICAgICAgJ29mZmVyL2Fuc3dlciByZXRhaW5zIGR0bHMgdHJhbnNwb3J0Jyk7CisgICAg
YXNzZXJ0X2VxdWFscyhhdWRpb1RwLCBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMV0uc2VuZGVyLnRy
YW5zcG9ydCwKKyAgICAgICAgICAgICAgICAgICdvZmZlci9hbnN3ZXIgcmV0YWlucyBkdGxzIHRy
YW5zcG9ydCcpOworCisgICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlMiA9CisgICAg
ICAgIG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBw
YzEucmVzdGFydEljZSgpOworICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTI7Cisg
ICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0
b3IpOworCisgICAgY29uc3QgW25ld1ZpZGVvVHAsIG5ld0F1ZGlvVHBdID0KKyAgICAgICAgcGMx
LmdldFRyYW5zY2VpdmVycygpLm1hcCh0YyA9PiB0Yy5zZW5kZXIudHJhbnNwb3J0KTsKKyAgICBh
c3NlcnRfZXF1YWxzKHZpZGVvVHAsIG5ld1ZpZGVvVHAsICdpY2UgcmVzdGFydCByZXRhaW5zIGR0
bHMgdHJhbnNwb3J0Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhhdWRpb1RwLCBuZXdBdWRpb1RwLCAn
aWNlIHJlc3RhcnQgcmV0YWlucyBkdGxzIHRyYW5zcG9ydCcpOworICB9LCBgcmVzdGFydEljZSgp
IHJldGFpbnMgZHRscyB0cmFuc3BvcnRzJHt0YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNv
bnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwor
CisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNl
KHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisKKyAgICBjb25zdCBb
b2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3Qg
W29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgYXdh
aXQgbmVnb3RpYXRvci5zZXRPZmZlcihwYzEpOworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAg
YXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAg
ICBhd2FpdCBuZWdvdGlhdG9yLnNldEFuc3dlcihwYzIpOworICAgIC8vIFNldmVyYWwgdGVzdHMg
aW4gdGhpcyBmaWxlIGluaXRpYWxpemVzIHRoZSBvbm5lZ290aWF0aW9ubmVlZGVkIGxpc3RlbmVy
CisgICAgLy8gYmVmb3JlIHRoZSBzZXRMb2NhbERlc2NyaXB0aW9uKCkgb3Igc2V0UmVtb3RlRGVz
Y3JpcHRpb24oKSB0aGF0IHdlIGV4cGVjdAorICAgIC8vIHRvIHRyaWdnZXIgbmVnb3RpYXRpb24g
bmVlZGVkLiBUaGlzIGFsbG93cyBDaHJvbWUgdG8gZXhlcmNpc2UgdGhlc2UgdGVzdHMKKyAgICAv
LyB3aXRob3V0IHRpbWluZyBvdXQgZHVlIHRvIGEgYnVnIHRoYXQgY2F1c2VzIG9ubmVnb3RpYXRp
b25uZWVkZWQgdG8gZmlyZSB0b28KKyAgICAvLyBlYXJseS4KKyAgICAvLyBUT0RPKGh0dHBzOi8v
Y3JidWcuY29tLzk4NTc5Nyk6IE9uY2UgQ2hyb21lIGRvZXMgbm90IGZpcmUgT05OIHRvbyBlYXJs
eSwKKyAgICAvLyBzaW1wbHkgZG8gImF3YWl0IG5ldyBQcm9taXNlKC4uLikiIGluc3RlYWQgb2YK
KyAgICAvLyAiYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlIiBoZXJlIGFuZCBpbiBvdGhl
ciB0ZXN0cyBpbiB0aGlzIGZpbGUuCisgICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNl
ID0KKyAgICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIp
OworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlv
bik7CisgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0
aW9uKVswXSwgb2xkVWZyYWcxLCAiVW5jaGFuZ2VkIDEiKTsKKyAgICBhc3NlcnRfdWZyYWdzX2Vx
dWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzIsICJVbmNo
YW5nZWQgMiIpOworICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKKyAgICBhd2Fp
dCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7Cisg
ICAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwor
ICAgIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsK
KyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJh
ZyAxIGNoYW5nZWQiKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBv
bGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0
aW9uTmVlZGVkKHQsIHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkgd29ya3MgaW4gaGF2ZS1sb2Nh
bC1vZmZlciR7dGFnfWApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFu
c2NlaXZlcigiYXVkaW8iKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290
aWF0aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgbmVnb3RpYXRvci5zZXRPZmZlcihwYzEpOwor
ICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9u
KHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldEFuc3dlcihw
YzIpOworICAgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9CisgICAgICAgIG5ldyBQ
cm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBwYzEu
c2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtv
bGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBb
b2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXdhaXQg
bmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJF
bmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBjb25zdCBbbmV3VWZyYWcxXSA9
IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW25ld1VmcmFnMl0g
PSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGFzc2VydF91ZnJhZ3Nfbm90
X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOworICAgIGFz
c2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hh
bmdlZCIpOworICAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKKyAg
fSwgYHJlc3RhcnRJY2UoKSB3b3JrcyBpbiBpbml0aWFsIGhhdmUtbG9jYWwtb2ZmZXIke3RhZ31g
KTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlv
Iik7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBu
ZWdvdGlhdG9yKTsKKworICAgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2Nh
bERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9j
YWxEZXNjcmlwdGlvbik7CisKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldE9mZmVyKHBjMik7Cisg
ICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsK
KyAgICBwYzEucmVzdGFydEljZSgpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlv
bihhd2FpdCBwYzEuY3JlYXRlQW5zd2VyKCkpOworICAgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVk
UHJvbWlzZSA9CisgICAgICAgIG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVk
ZWQgPSByKTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihwYzIucmVtb3RlRGVz
Y3JpcHRpb24pOyAvLyBFbmQgb24gcGMxLiBObyByYWNlCisgICAgYXNzZXJ0X3VmcmFnc19lcXVh
bHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcxLCAiVW5jaGFu
Z2VkIDEiKTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVz
Y3JpcHRpb24pWzBdLCBvbGRVZnJhZzIsICJVbmNoYW5nZWQgMiIpOworICAgIGF3YWl0IG5lZ290
aWF0aW9uTmVlZGVkUHJvbWlzZTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25G
aXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisgICAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRV
ZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0
VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVh
bHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKKyAgICBhc3NlcnRf
dWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQi
KTsKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CisgIH0sIGBy
ZXN0YXJ0SWNlKCkgd29ya3MgaW4gaGF2ZS1yZW1vdGUtb2ZmZXIke3RhZ31gKTsKKworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7CisKKyAgICBwYzIuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAgYXdh
aXQgbmVnb3RpYXRvci5zZXRPZmZlcihwYzIpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNj
cmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgcGMxLnJlc3RhcnRJY2UoKTsKKyAg
ICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigp
KTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihwYzIucmVtb3RlRGVzY3JpcHRp
b24pOyAvLyBFbmQgb24gcGMxLiBObyByYWNlCisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlv
bk5lZWRlZCh0LCBwYzEpOworICB9LCBgcmVzdGFydEljZSgpIGRvZXMgbm90aGluZyBpbiBpbml0
aWFsIGhhdmUtcmVtb3RlLW9mZmVyJHt0YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0
IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisg
ICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIg
PT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVy
QW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisKKyAgICBjb25zdCBbb2xk
VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW29s
ZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgcGMxLnJl
c3RhcnRJY2UoKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9u
bmVlZGVkID0gcik7CisgICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KKyAgICAg
ICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPblNlY29uZChwYzIsIHBjMSwgbmVnb3RpYXRvcik7
CisgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9u
KVswXSwgb2xkVWZyYWcxLCAibm90aGluZyB5ZXQgMSIpOworICAgIGFzc2VydF91ZnJhZ3NfZXF1
YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMiwgIm5vdGhp
bmcgeWV0IDIiKTsKKyAgICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2U7CisgICAgYXdh
aXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOwor
ICAgIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsK
KyAgICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7
CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZy
YWcgMSBjaGFuZ2VkIik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMiwg
b2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7CisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlh
dGlvbk5lZWRlZCh0LCBwYzEpOworICB9LCBgcmVzdGFydEljZSgpIHN1cnZpdmVzIHJlbW90ZSBv
ZmZlciR7dGFnfWApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2Nl
aXZlcigiYXVkaW8iKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0
aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3Qo
cGMxLCBwYzIsIG5lZ290aWF0b3IpOworCisgICAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJh
Z3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZy
YWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAg
cGMyLnJlc3RhcnRJY2UoKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290
aWF0aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uU2Vj
b25kKHBjMiwgcGMxLCBuZWdvdGlhdG9yKTsKKyAgICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVm
cmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRV
ZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFs
cyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOworICAgIGFzc2VydF91
ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIp
OworICAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKKworICAgIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsK
KyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24p
WzBdLCBuZXdVZnJhZzEsICJVbmNoYW5nZWQgMSIpOworICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxz
KGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG5ld1VmcmFnMiwgIlVuY2hhbmdl
ZCAyIik7CisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworICB9
LCBgcmVzdGFydEljZSgpIGlzIHNhdGlzZmllZCBieSByZW1vdGUgSUNFIHJlc3RhcnQke3RhZ31g
KTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlv
Iik7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBu
ZWdvdGlhdG9yKTsKKworICAgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2Nh
bERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9j
YWxEZXNjcmlwdGlvbik7CisKKyAgICBwYzEucmVzdGFydEljZSgpOworICAgIGF3YWl0IG5ldyBQ
cm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBwYzEu
c2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoe2ljZVJlc3RhcnQ6IGZh
bHNlfSkpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNj
cmlwdGlvbik7CisgICAgYXdhaXQgbmVnb3RpYXRvci5zZXRBbnN3ZXIocGMyKTsKKyAgICBhd2Fp
dCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNv
bnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBj
b25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAg
YXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBj
aGFuZ2VkIik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZy
YWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7CisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5l
ZWRlZCh0LCBwYzEpOworICB9LCBgcmVzdGFydEljZSgpIHRydW1wcyB7aWNlUmVzdGFydDogZmFs
c2V9JHt0YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRyYW5zY2Vp
dmVyKCJhdWRpbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRp
b25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChw
YzEsIHBjMiwgbmVnb3RpYXRvcik7CisKKyAgICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFn
cyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJh
Z3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgICBh
d2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAg
YXdhaXQgbmVnb3RpYXRvci5zZXRPZmZlcihwYzEpOworICAgIGNvbnN0IG5lZ290aWF0aW9uTmVl
ZGVkUHJvbWlzZSA9CisgICAgICAgIG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25u
ZWVkZWQgPSByKTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogInJv
bGxiYWNrIn0pOworICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKKyAgICBhd2Fp
dCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7Cisg
ICAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwor
ICAgIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsK
KyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJh
ZyAxIGNoYW5nZWQiKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBv
bGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0
aW9uTmVlZGVkKHQsIHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcm9sbGJhY2sk
e3RhZ31gKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKHtidW5kbGVQb2xpY3k6ICJtYXgtY29tcGF0In0pOworICAg
IGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7YnVuZGxlUG9saWN5OiAibWF4LWNv
bXBhdCJ9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigi
YXVkaW8iKTsKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7CisgICAgYXdhaXQgbmV3
IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IGV4
Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKworICAg
IGNvbnN0IG9sZFVmcmFnczEgPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAg
IGNvbnN0IG9sZFVmcmFnczIgPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAg
IGNvbnN0IG9sZFB3ZHMyID0gZ2V0UHdkcyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgICBw
YzEucmVzdGFydEljZSgpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3Rp
YXRpb25uZWVkZWQgPSByKTsKKworICAgIC8vIEVuZ2luZWVyIGEgcGFydGlhbCBJQ0UgcmVzdGFy
dCBmcm9tIHBjMgorICAgIHBjMi5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgbmVnb3RpYXRvci5z
ZXRPZmZlcihwYzIpOworICAgIHsKKyAgICAgIGxldCB7dHlwZSwgc2RwfSA9IHBjMi5sb2NhbERl
c2NyaXB0aW9uOworICAgICAgLy8gUmVzdG9yZSBib3RoIG9sZCBpY2UtdWZyYWcgYW5kIG9sZCBp
Y2UtcHdkIHRvIHRyaWdnZXIgYSBwYXJ0aWFsIHJlc3RhcnQKKyAgICAgIHNkcCA9IHNkcC5yZXBs
YWNlKGdldFVmcmFncyh7c2RwfSlbMF0sIG9sZFVmcmFnczJbMF0pOworICAgICAgc2RwID0gc2Rw
LnJlcGxhY2UoZ2V0UHdkcyh7c2RwfSlbMF0sIG9sZFB3ZHMyWzBdKTsKKyAgICAgIGNvbnN0IG5l
d1VmcmFnczIgPSBnZXRVZnJhZ3Moe3NkcH0pOworICAgICAgY29uc3QgbmV3UHdkczIgPSBnZXRQ
d2RzKHtzZHB9KTsKKyAgICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKG5ld1VmcmFnczJbMF0sIG9s
ZFVmcmFnczJbMF0sICJjb250cm9sIHVmcmFnIG1hdGNoIik7CisgICAgICBhc3NlcnRfdWZyYWdz
X2VxdWFscyhuZXdQd2RzMlswXSwgb2xkUHdkczJbMF0sICJjb250cm9sIHB3ZCBtYXRjaCIpOwor
ICAgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnczJbMV0sIG9sZFVmcmFnczJb
MV0sICJjb250cm9sIHVmcmFnIG5vbi1tYXRjaCIpOworICAgICAgYXNzZXJ0X3VmcmFnc19ub3Rf
ZXF1YWxzKG5ld1B3ZHMyWzFdLCBvbGRQd2RzMlsxXSwgImNvbnRyb2wgcHdkIG5vbi1tYXRjaCIp
OworICAgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlLCBzZHB9KTsKKyAg
ICB9CisgICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KKyAgICAgICAgbmV3IFBy
b21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IG5lZ290
aWF0b3Iuc2V0QW5zd2VyKHBjMSk7CisgICAgY29uc3QgbmV3VWZyYWdzMSA9IGdldFVmcmFncyhw
YzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMobmV3VWZyYWdz
MVswXSwgb2xkVWZyYWdzMVswXSwgIlVuY2hhbmdlZCAxIik7CisgICAgYXNzZXJ0X3VmcmFnc19u
b3RfZXF1YWxzKG5ld1VmcmFnczFbMV0sIG9sZFVmcmFnczFbMV0sICJSZXN0YXJ0ZWQgMiIpOwor
ICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKKyAgICBhd2FpdCBuZWdvdGlhdG9y
LnNldE9mZmVyKHBjMSk7CisgICAgY29uc3QgbmV3ZXN0VWZyYWdzMSA9IGdldFVmcmFncyhwYzEu
bG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld2VzdFVm
cmFnczFbMF0sIG9sZFVmcmFnczFbMF0sICJSZXN0YXJ0ZWQgMSIpOworICAgIGFzc2VydF91ZnJh
Z3Nfbm90X2VxdWFscyhuZXdlc3RVZnJhZ3MxWzFdLCBvbGRVZnJhZ3MxWzFdLCAiUmVzdGFydGVk
IDIiKTsKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CisgIH0s
IGByZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcmVtb3RlIG9mZmVyIGNvbnRhaW5pbmcgcGFydGlhbCBy
ZXN0YXJ0JHt0YWd9YCk7CiAKLSAgcGMxLnJlc3RhcnRJY2UoKTsKLSAgcGMyLnJlc3RhcnRJY2Uo
KTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIp
OwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25TZWNvbmQocGMyLCBwYzEpOwotICBj
b25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNv
bnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAgYXNz
ZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFu
Z2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwg
InVmcmFnIDIgY2hhbmdlZCIpOwotICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQs
IHBjMSk7Ci0KLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIp
OwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24p
WzBdLCBuZXdVZnJhZzEsICJVbmNoYW5nZWQgMSIpOwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhn
ZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBuZXdVZnJhZzIsICJVbmNoYW5nZWQg
MiIpOwotICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVz
dGFydEljZSgpIGlzIHNhdGlzZmllZCBieSByZW1vdGUgSUNFIHJlc3RhcnQiKTsKLQotcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKLSAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgp
KTsKLQotICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0gIGF3YWl0IG5ldyBQcm9taXNl
KHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZl
ckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwotCi0gIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0
VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRV
ZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotCi0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIGF3
YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdh
aXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtpY2VSZXN0
YXJ0OiBmYWxzZX0pKTsKLSAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2Nh
bERlc2NyaXB0aW9uKTsKLSAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMy
LmNyZWF0ZUFuc3dlcigpKTsKLSAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5s
b2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxv
Y2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9j
YWxEZXNjcmlwdGlvbik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9s
ZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMo
bmV3VWZyYWcxLCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKLSAgYXdhaXQgYXNzZXJ0
Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSB0cnVtcHMge2lj
ZVJlc3RhcnQ6IGZhbHNlfSIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0
IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFuc2NlaXZlcigi
YXVkaW8iKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRl
ZCA9IHIpOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7
Ci0KLSAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24p
OwotICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7
Ci0KLSAgcGMxLnJlc3RhcnRJY2UoKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25u
ZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihh
d2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7Ci0gIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlz
ZSA9Ci0gICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7
Ci0gIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAicm9sbGJhY2sifSk7Ci0g
IGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFu
c3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwotICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFn
cyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdz
KHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1Vm
cmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90
X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOwotICBhd2Fp
dCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIHN1
cnZpdmVzIHJvbGxiYWNrIik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qg
cGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHtidW5kbGVQb2xpY3k6ICJtYXgtY29tcGF0In0p
OwotICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe2J1bmRsZVBvbGljeTogIm1h
eC1jb21wYXQifSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1
ZGlvIik7Ci0gIHBjMS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKLSAgYXdhaXQgbmV3IFByb21p
c2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0KLSAgY29uc3Qgb2xkVWZyYWdzMSA9IGdl
dFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IG9sZFVmcmFnczIgPSBnZXRV
ZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBvbGRQd2RzMiA9IGdldFB3ZHMo
cGMyLmxvY2FsRGVzY3JpcHRpb24pOwotCi0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IG5l
dyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLQotICAvLyBFbmdp
bmVlciBhIHBhcnRpYWwgSUNFIHJlc3RhcnQgZnJvbSBwYzIKLSAgcGMyLnJlc3RhcnRJY2UoKTsK
LSAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCkp
OwotICB7Ci0gICAgbGV0IHt0eXBlLCBzZHB9ID0gcGMyLmxvY2FsRGVzY3JpcHRpb247Ci0gICAg
Ly8gUmVzdG9yZSBib3RoIG9sZCBpY2UtdWZyYWcgYW5kIG9sZCBpY2UtcHdkIHRvIHRyaWdnZXIg
YSBwYXJ0aWFsIHJlc3RhcnQKLSAgICBzZHAgPSBzZHAucmVwbGFjZShnZXRVZnJhZ3Moe3NkcH0p
WzBdLCBvbGRVZnJhZ3MyWzBdKTsKLSAgICBzZHAgPSBzZHAucmVwbGFjZShnZXRQd2RzKHtzZHB9
KVswXSwgb2xkUHdkczJbMF0pOwotICAgIGNvbnN0IG5ld1VmcmFnczIgPSBnZXRVZnJhZ3Moe3Nk
cH0pOwotICAgIGNvbnN0IG5ld1B3ZHMyID0gZ2V0UHdkcyh7c2RwfSk7Ci0gICAgYXNzZXJ0X3Vm
cmFnc19lcXVhbHMobmV3VWZyYWdzMlswXSwgb2xkVWZyYWdzMlswXSwgImNvbnRyb2wgdWZyYWcg
bWF0Y2giKTsKLSAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhuZXdQd2RzMlswXSwgb2xkUHdkczJb
MF0sICJjb250cm9sIHB3ZCBtYXRjaCIpOwotICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhu
ZXdVZnJhZ3MyWzFdLCBvbGRVZnJhZ3MyWzFdLCAiY29udHJvbCB1ZnJhZyBub24tbWF0Y2giKTsK
LSAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3UHdkczJbMV0sIG9sZFB3ZHMyWzFdLCAi
Y29udHJvbCBwd2Qgbm9uLW1hdGNoIik7Ci0gICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0
aW9uKHt0eXBlLCBzZHB9KTsKLSAgfQotICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2Ug
PQotICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwot
ICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlQW5zd2VyKCkp
OwotICBjb25zdCBuZXdVZnJhZ3MxID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsK
LSAgYXNzZXJ0X3VmcmFnc19lcXVhbHMobmV3VWZyYWdzMVswXSwgb2xkVWZyYWdzMVswXSwgIlVu
Y2hhbmdlZCAxIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZ3MxWzFdLCBv
bGRVZnJhZ3MxWzFdLCAiUmVzdGFydGVkIDIiKTsKLSAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQ
cm9taXNlOwotICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRl
T2ZmZXIoKSk7Ci0gIGNvbnN0IG5ld2VzdFVmcmFnczEgPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVz
Y3JpcHRpb24pOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3ZXN0VWZyYWdzMVswXSwg
b2xkVWZyYWdzMVswXSwgIlJlc3RhcnRlZCAxIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFs
cyhuZXdlc3RVZnJhZ3MxWzFdLCBvbGRVZnJhZ3MxWzFdLCAiUmVzdGFydGVkIDIiKTsKLSAgYXdh
aXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSBz
dXJ2aXZlcyByZW1vdGUgb2ZmZXIgY29udGFpbmluZyBwYXJ0aWFsIHJlc3RhcnQiKTsKK30KIAog
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXBy
YW5zd2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJh
bnN3ZXItZXhwZWN0ZWQudHh0CmluZGV4IDEwMjY0ZWI2ZTQxNjc3ZjRjYTk5NDU0YmYyODYzMDlj
N2ZjYWM2M2EuLjY5ODZlM2UwYzE0ODYzN2ZiYzA3ODE3YzYxZWQ2ODMzMjY0OGNlZGYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXItZXhwZWN0
ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCiBGQUlMIHNldExvY2FsRGVzY3JpcHRpb24ocHJhbnN3
ZXIpIGZyb20gc3RhYmxlIHN0YXRlIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJv
ciBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0i
IHRocmV3IG9iamVjdCAiT3BlcmF0aW9uRXJyb3I6IEZhaWxlZCB0byBzZXQgbG9jYWwgcHJhbnN3
ZXIgc2RwOiBDYWxsZWQgaW4gd3Jvbmcgc3RhdGU6IHN0YWJsZSIgdGhhdCBpcyBub3QgYSBET01F
eGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAw
LCBleHBlY3RlZCAxMQotRkFJTCBzZXRMb2NhbERlc2NyaXB0aW9uKHByYW5zd2VyKSBzaG91bGQg
c3VjY2VlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2Jq
ZWN0IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbl0iCitQQVNTIHNldExvY2FsRGVzY3JpcHRpb24ocHJh
bnN3ZXIpIHNob3VsZCBzdWNjZWVkCiBQQVNTIHNldExvY2FsRGVzY3JpcHRpb24ocHJhbnN3ZXIp
IGNhbiBiZSBhcHBsaWVkIG11bHRpcGxlIHRpbWVzIHdoaWxlIHN0aWxsIGluIGhhdmUtbG9jYWwt
cHJhbnN3ZXIKIFBBU1Mgc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpIGZyb20gaGF2ZS1sb2Nh
bC1wcmFuc3dlciBzdGF0ZSBzaG91bGQgc3VjY2VlZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1zZXRMb2NhbERlc2NyaXB0aW9uLXByYW5zd2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2Nh
bERlc2NyaXB0aW9uLXByYW5zd2VyLmh0bWwKaW5kZXggZTQyOTZhZWYxMzlmMTlkMDgyMjljOTQ1
MGY2MWMzMDcwNjE0N2QyNC4uMDE4NDVmMDliMTZjZTFmZjAzNzQ3ZjAzOWRlZTVkZTg5YjE5YTVh
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wcmFuc3dlci5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbApA
QCAtMTAzLDcgKzEwMyw2IEBACiAgICAgICAgICAgYXNzZXJ0X3Nlc3Npb25fZGVzY19zaW1pbGFy
KHBjLnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uLCBwcmFuc3dlcik7CiAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhwYy5jdXJyZW50TG9jYWxEZXNjcmlwdGlvbiwgbnVsbCk7CiAKLSAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHBjLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCk7CiAKICAgICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHN0YXRlcywgWydoYXZlLXJlbW90ZS1vZmZlcicsICdo
YXZlLWxvY2FsLXByYW5zd2VyJ10pOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2Vp
dmVyLXN0b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC1leHBlY3RlZC50eHQKaW5k
ZXggMGViYmZlNGY3MmUyNTczYTgzZTNiYzAwZDdmYTY3NDFmM2I3MDJlMC4uMGViYTY4YjVhZTc4
NTY1Yjc1OTViNDczOWE0OWE1N2Q1YjRhYzg1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3Rv
cC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC1leHBlY3RlZC50eHQKQEAgLTEs
MTAgKzEsMTEgQEAKIAogUEFTUyBBIHRyYW5zY2VpdmVyIGFkZGVkIGFuZCBzdG9wcGVkIGJlZm9y
ZSB0aGUgaW5pdGlhbCBvZmZlciBnZW5lcmF0aW9uIHNob3VsZCBub3QgdHJpZ2dlciBhbiBvZmZl
ciBtLXNlY3Rpb24gZ2VuZXJhdGlvbgorUEFTUyBBIHRyYW5zY2VpdmVyIGFkZGVkIGFuZCBzdG9w
cGVkIHNob3VsZCBub3QgY3Jhc2ggd2hlbiBnZXR0aW5nIHJlY2VpdmVyJ3MgdHJhbnNwb3J0CiBQ
QVNTIER1cmluZyByZW5lZ290aWF0aW9uLCBhZGRpbmcgYW5kIHN0b3BwaW5nIGEgdHJhbnNjZWl2
ZXIgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgcmVuZWdvdGlhdGVkIG9mZmVyIG0tc2VjdGlvbiBnZW5l
cmF0aW9uCiBQQVNTIEEgc3RvcHBlZCBzZW5kb25seSB0cmFuc2NlaXZlciBzaG91bGQgZ2VuZXJh
dGUgYW4gaW5hY3RpdmUgbS1zZWN0aW9uIGluIHRoZSBvZmZlcgogUEFTUyBBIHN0b3BwZWQgaW5h
Y3RpdmUgdHJhbnNjZWl2ZXIgc2hvdWxkIGdlbmVyYXRlIGFuIGluYWN0aXZlIG0tc2VjdGlvbiBp
biB0aGUgb2ZmZXIKIFBBU1MgSWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVkIGxvY2FsbHksIHNl
dHRpbmcgYSBsb2NhbGx5IGdlbmVyYXRlZCBhbnN3ZXIgc2hvdWxkIHN0aWxsIHdvcmsKIFBBU1Mg
SWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVkIHJlbW90ZWx5LCBzZXR0aW5nIGEgbG9jYWxseSBn
ZW5lcmF0ZWQgYW5zd2VyIHNob3VsZCBzdGlsbCB3b3JrCiBGQUlMIElmIGEgdHJhbnNjZWl2ZXIg
aXMgc3RvcHBlZCwgdHJhbnNjZWl2ZXJzLCBzZW5kZXJzIGFuZCByZWNlaXZlcnMgc2hvdWxkIGRp
c2FwcGVhciBhZnRlciBvZmZlci9hbnN3ZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMCBidXQg
Z290IDEKLUZBSUwgSWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVkLCB0cmFuc2NlaXZlcnMgc2hv
dWxkIGVuZCB1cCBpbiBzdGF0ZSBzdG9wcGVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJpbmFj
dGl2ZSIgYnV0IGdvdCAic3RvcHBlZCIKK0ZBSUwgSWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVk
LCB0cmFuc2NlaXZlcnMgc2hvdWxkIGVuZCB1cCBpbiBzdGF0ZSBzdG9wcGVkIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJzdG9wcGVkIiBidXQgZ290ICJpbmFjdGl2ZSIKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
VHJhbnNjZWl2ZXItc3RvcC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC5odG1sCmluZGV4IDRmM2E5
Y2U4NWZhMjQ0YmM2NzM0NDdmYTM4OWY0NGJkYzM4MWIyMzAuLjc2NmIzNGQ3YjEyMGYwZTIxNGFj
MDI4Y2QxZjViODJjOWM3ODA2MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBUcmFuc2NlaXZlci1zdG9wLmh0bWwKQEAgLTIxLDYgKzIxLDE4IEBAIHByb21pc2VfdGVz
dChhc3luYyAodCk9PiB7CiAgICAgYXNzZXJ0X3RydWUob2ZmZXIuc2RwLmluY2x1ZGVzKCJtPXZp
ZGVvIiksICJvZmZlciBzaG91bGQgY29udGFpbiBhIHZpZGVvIG0tc2VjdGlvbiIpOwogfSwgIkEg
dHJhbnNjZWl2ZXIgYWRkZWQgYW5kIHN0b3BwZWQgYmVmb3JlIHRoZSBpbml0aWFsIG9mZmVyIGdl
bmVyYXRpb24gc2hvdWxkIG5vdCB0cmlnZ2VyIGFuIG9mZmVyIG0tc2VjdGlvbiBnZW5lcmF0aW9u
Iik7CiAKK3Byb21pc2VfdGVzdChhc3luYyAodCk9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7
CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIiwgeyBkaXJlY3Rpb246ICJzZW5kb25s
eSIgfSk7CisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICAgIGFzc2VydF9lcXVh
bHMobnVsbCwgcGMxLmdldFRyYW5zY2VpdmVycygpWzFdLnJlY2VpdmVyLnRyYW5zcG9ydCk7CisK
KyAgICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMV0uc3RvcCgpOworICAgIGFzc2VydF9lcXVhbHMo
cGMxLmdldFRyYW5zY2VpdmVycygpWzFdLnJlY2VpdmVyLnRyYW5zcG9ydCwgbnVsbCk7Cit9LCAi
QSB0cmFuc2NlaXZlciBhZGRlZCBhbmQgc3RvcHBlZCBzaG91bGQgbm90IGNyYXNoIHdoZW4gZ2V0
dGluZyByZWNlaXZlcidzIHRyYW5zcG9ydCIpOworCiBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpPT4g
ewogICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwpAQCAtMTM2LDggKzE0OCw4IEBAIHByb21pc2Vf
dGVzdChhc3luYyAodCkgPT4gewogICBwYzJUcmFuc2NlaXZlciA9IHBjMi5nZXRUcmFuc2NlaXZl
cnMoKVswXTsKICAgcGMxLmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3AoKTsKICAgYXdhaXQgZXhj
aGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7Ci0gIGFzc2VydF9lcXVhbHMoJ3N0b3BwZWQnLCBw
YzFUcmFuc2NlaXZlci5kaXJlY3Rpb24pOwotICBhc3NlcnRfZXF1YWxzKCdzdG9wcGVkJywgcGMy
VHJhbnNjZWl2ZXIuZGlyZWN0aW9uKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzFUcmFuc2NlaXZlci5k
aXJlY3Rpb24sICdzdG9wcGVkJyk7CisgIGFzc2VydF9lcXVhbHMocGMyVHJhbnNjZWl2ZXIuZGly
ZWN0aW9uLCAnc3RvcHBlZCcpOwogfSwgJ0lmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCwgdHJh
bnNjZWl2ZXJzIHNob3VsZCBlbmQgdXAgaW4gc3RhdGUgc3RvcHBlZCcpOwogCiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5odHRwcy5o
dG1sCmluZGV4IGM5ZGNlNDVkNzM4ODRiY2U3NGYxNjRiYTMwNmNlNjdiY2M3MzkyMDUuLjc3MzIz
YjUwM2FiZDdkYzEyZTU4OTRhYmNlMjhkYTU3YTliOWU5MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2Vp
dmVyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbApAQCAtOTIsMTIgKzky
LDEwIEBACiAKICAgY29uc3QgdHJpY2tsZSA9ICh0LCBwYzEsIHBjMikgPT4gewogICAgIHBjMS5v
bmljZWNhbmRpZGF0ZSA9IHQuc3RlcF9mdW5jKGFzeW5jIGUgPT4gewotICAgICAgaWYgKGUuY2Fu
ZGlkYXRlKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgYXdhaXQgcGMyLmFkZEljZUNhbmRp
ZGF0ZShlLmNhbmRpZGF0ZSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICBhc3Nl
cnRfdHJ1ZShmYWxzZSwgImFkZEljZUNhbmRpZGF0ZSB0aHJldyBlcnJvcjogIiArIGUubmFtZSk7
Ci0gICAgICAgIH0KKyAgICAgIHRyeSB7CisgICAgICAgIGF3YWl0IHBjMi5hZGRJY2VDYW5kaWRh
dGUoZS5jYW5kaWRhdGUpOworICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBhc3NlcnRfdHJ1
ZShmYWxzZSwgImFkZEljZUNhbmRpZGF0ZSB0aHJldyBlcnJvcjogIiArIGUubmFtZSk7CiAgICAg
ICB9CiAgICAgfSk7CiAgIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTdGF0cy1oZWxwZXIuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTdGF0cy1oZWxwZXIu
anMKaW5kZXggODFhYmUyNDU2ZTk0YmI4NGU0ZDU2Yzk3ODFkYzMwMmE1MDI0OTBlNS4uMzNjYmY0
YTkzM2JkMzc1NTNhODU5NWUwNjkyZjk3MTdlMTQ1ZWNjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU3RhdHMtaGVscGVy
LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1N0YXRzLWhlbHBlci5qcwpAQCAtMjA3LDggKzIwNyw5IEBAIGZ1bmN0aW9uIHZhbGlk
YXRlQ29kZWNTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKIAogICBhc3NlcnRfc3RyaW5nX2Zp
ZWxkKHN0YXRzLCAnbWltZVR5cGUnKTsKICAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0
cywgJ2Nsb2NrUmF0ZScpOwotICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnY2hh
bm5lbHMnKTsKLQorICBpZiAoc3RhdHMua2luZCA9PT0gJ2F1ZGlvJykgeworICAgIGFzc2VydF91
bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdjaGFubmVscycpOworICB9CiAgIGFzc2VydF9zdHJp
bmdfZmllbGQoc3RhdHMsICdzZHBGbXRwTGluZScpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1l
bXB0eXN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MjY4ZjVkMTcyYzYzMTUxYjIxY2VhZjMw
OTA3ZjEzZmQxMTc5NjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
ZGF0YWNoYW5uZWwtZW1wdHlzdHJpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
OSArMCwwIEBACi0KLVBBU1MgQ2FuIHNlbmQgZW1wdHkgc3RyaW5ncyBhY3Jvc3MgYSBXZWJSVEMg
ZGF0YSBjaGFubmVsLgotTWVzc2FnZXMgZXhjaGFuZ2VkCi0KLVNlbnQ6IFtlbXB0eSBzdHJpbmdd
Ci1TZW50OiAiZG9uZSIKLVJlY2VpdmVkOiBbZW1wdHkgc3RyaW5nXQotUmVjZWl2ZWQ6ICJkb25l
IgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwtZW1wdHlzdHJp
bmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDU2YmFjNzM2N2U2ZjkwMzRm
ODNiYmVlNjk5ODMxM2I3ODliOGMwZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTEwICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPCEtLQotVGhpcyB0ZXN0IGNyZWF0ZXMgYSBk
YXRhIGNoYW5uZWwgYmV0d2VlbiB0d28gbG9jYWwgUGVlckNvbm5lY3Rpb24gaW5zdGFuY2VzCi1h
bmQgZW5zdXJlcyB0aGF0IGFuIGVtcHR5IHN0cmluZyBzZW50IGJ5IG9uZSBpcyByZWNlaXZlZCBi
eSB0aGUgc2Vjb25kLgotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci0gIDxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KLSAgPHRp
dGxlPlJUQ1BlZXJDb25uZWN0aW9uIERhdGEgQ2hhbm5lbCBFbXB0eSBTdHJpbmcgVGVzdDwvdGl0
bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KLSAgPGgyPk1lc3Nh
Z2VzIGV4Y2hhbmdlZDwvaDI+Ci0gIDxkaXYgaWQ9Im1zZyI+PC9kaXY+Ci0KLSAgPCEtLSBUaGVz
ZSBmaWxlcyBhcmUgaW4gcGxhY2Ugd2hlbiBleGVjdXRpbmcgb24gVzNDLiAtLT4KLSAgPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCdDYW4gc2Vu
ZCBlbXB0eSBzdHJpbmdzIGFjcm9zcyBhIFdlYlJUQyBkYXRhIGNoYW5uZWwuJyk7Ci0KLSAgdmFy
IGdGaXJzdENvbm5lY3Rpb24gPSBudWxsOwotICB2YXIgZ1NlY29uZENvbm5lY3Rpb24gPSBudWxs
OwotICB2YXIgc2VuZENoYW5uZWwgPSBudWxsOwotICB2YXIgcmVjZWl2ZUNoYW5uZWwgPSBudWxs
OwotCi0gIHZhciBvblJlY2VpdmVDaGFubmVsID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgcmVj
ZWl2ZUNoYW5uZWwgPSBldmVudC5jaGFubmVsOwotICAgIHJlY2VpdmVDaGFubmVsLm9ubWVzc2Fn
ZSA9IG9uUmVjZWl2ZU1lc3NhZ2U7Ci0gIH07Ci0KLQotICAvLyBXaGVuIHRoZSBkYXRhIGNoYW5u
ZWwgaXMgb3Blbiwgc2VuZCBhbiBlbXB0eSBzdHJpbmcgbWVzc2FnZQotICAvLyBmb2xsb3dlZCBi
eSBhIG1lc3NhZ2UgdGhhdCBjb250YWlucyB0aGUgc3RyaW5nICJkb25lIi4KLSAgdmFyIG9uU2Vu
ZENoYW5uZWxPcGVuID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgdmFy
IG1zZ0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21zZycpOwotICAgIHNlbmRDaGFubmVs
LnNlbmQoJycpOwotICAgIG1zZ0VsLmlubmVySFRNTCArPSAnU2VudDogW2VtcHR5IHN0cmluZ108
YnI+JzsKLSAgICBzZW5kQ2hhbm5lbC5zZW5kKCdkb25lJyk7Ci0gICAgbXNnRWwuaW5uZXJIVE1M
ICs9ICdTZW50OiAiZG9uZSI8YnI+JzsKLSAgfSk7Ci0KLSAgLy8gQ2hlY2sgdGhlIG1lc3NhZ2Vz
IHJlY2VpdmVkIG9uIHRoZSBvdGhlciBzaWRlLgotICAvLyBUaGVyZSBzaG91bGQgYmUgYW4gZW1w
dHkgc3RyaW5nIG1lc3NhZ2UgZm9sbG93ZWQgYnkgYSBtZXNzYWdlIHRoYXQKLSAgLy8gY29udGFp
bnMgdGhlIHN0cmluZyAiZG9uZSIuCi0gIC8vIFBhc3MvRmFpbCB0aGUgdGVzdCBhY2NvcmRpbmcg
dG8gdGhlIG1lc3NhZ2VzIHJlY2VpdmVkCi0gIHZhciBlbXB0eU1lc3NhZ2VSZWNlaXZlZCA9IGZh
bHNlOwotICB2YXIgb25SZWNlaXZlTWVzc2FnZSA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uIChl
dmVudCkgewotICAgIHZhciBtc2dFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtc2cnKTsK
LSAgICBtc2dFbC5pbm5lckhUTUwgKz0gJ1JlY2VpdmVkOiAnICsKLSAgICAgICAgKGV2ZW50LmRh
dGEgPyAnIicgKyBldmVudC5kYXRhICsgJyInIDogJ1tlbXB0eSBzdHJpbmddJykgKyAnPGJyPic7
Ci0gICAgaWYgKGVtcHR5TWVzc2FnZVJlY2VpdmVkKSB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGV2
ZW50LmRhdGEsICdkb25lJywgJ1RoZSAiZG9uZSIgbWVzc2FnZSB3YXMgbm90IHJlY2VpdmVkJyk7
Ci0gICAgICB0ZXN0LmRvbmUoKTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICBhc3NlcnRfZXF1
YWxzKGV2ZW50LmRhdGEsICcnLCAnRW1wdHkgbWVzc2FnZSBub3QgcmVjZWl2ZWQnKTsKLSAgICAg
IGVtcHR5TWVzc2FnZVJlY2VpdmVkID0gdHJ1ZTsKLSAgICB9Ci0gIH0pOwotCi0gIGZ1bmN0aW9u
IGV4Y2hhbmdlSWNlKHBjKSB7Ci0gICAgIHJldHVybiBmdW5jdGlvbihlKSB7Ci0gICAgICAgaWYg
KGUuY2FuZGlkYXRlKSB7Ci0gICAgICAgICAgcGMuYWRkSWNlQ2FuZGlkYXRlKGUuY2FuZGlkYXRl
KTsKLSAgICAgICB9Ci0gICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBleGNoYW5nZURlc2NyaXB0
aW9uKHBjMSwgcGMyKSB7Ci0gICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICByZXR1cm4g
cGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAgICAgfTsK
LSAgfQotCi0gIHRlc3Quc3RlcChmdW5jdGlvbigpIHsKLSAgICBnRmlyc3RDb25uZWN0aW9uID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOwotICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4g
Z0ZpcnN0Q29ubmVjdGlvbi5jbG9zZSgpKTsKLQotICAgIGdTZWNvbmRDb25uZWN0aW9uID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOwotICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gZ1Nl
Y29uZENvbm5lY3Rpb24uY2xvc2UoKSk7Ci0KLSAgICBnRmlyc3RDb25uZWN0aW9uLm9uaWNlY2Fu
ZGlkYXRlID0gZXhjaGFuZ2VJY2UoZ1NlY29uZENvbm5lY3Rpb24pOwotICAgIGdTZWNvbmRDb25u
ZWN0aW9uLm9uaWNlY2FuZGlkYXRlID0gZXhjaGFuZ2VJY2UoZ0ZpcnN0Q29ubmVjdGlvbik7Ci0K
LSAgICBnU2Vjb25kQ29ubmVjdGlvbi5vbmRhdGFjaGFubmVsID0gb25SZWNlaXZlQ2hhbm5lbDsK
LQotICAgIC8vIE5vdGUgdGhlIGRhdGEgY2hhbm5lbCB3aWxsIHByZXNlcnZlIHRoZSBvcmRlciBv
ZiBtZXNzYWdlcwotICAgIC8vIGV4Y2hhbmdlZCBvdmVyIGl0IGJ5IGRlZmF1bHQuCi0gICAgc2Vu
ZENoYW5uZWwgPSBnRmlyc3RDb25uZWN0aW9uLmNyZWF0ZURhdGFDaGFubmVsKCdzZW5kRGF0YUNo
YW5uZWwnKTsKLSAgICBzZW5kQ2hhbm5lbC5vbm9wZW4gPSBvblNlbmRDaGFubmVsT3BlbjsKLQot
ICAgIGdGaXJzdENvbm5lY3Rpb24uY3JlYXRlT2ZmZXIoKQotICAgIC50aGVuKGdGaXJzdENvbm5l
Y3Rpb24uc2V0TG9jYWxEZXNjcmlwdGlvbi5iaW5kKGdGaXJzdENvbm5lY3Rpb24pKQotICAgIC50
aGVuKGV4Y2hhbmdlRGVzY3JpcHRpb24oZ1NlY29uZENvbm5lY3Rpb24sIGdGaXJzdENvbm5lY3Rp
b24pKQotICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIGdTZWNvbmRDb25uZWN0
aW9uLmNyZWF0ZUFuc3dlcigpOwotICAgIH0pCi0gICAgLnRoZW4oZ1NlY29uZENvbm5lY3Rpb24u
c2V0TG9jYWxEZXNjcmlwdGlvbi5iaW5kKGdTZWNvbmRDb25uZWN0aW9uKSkKLSAgICAudGhlbihl
eGNoYW5nZURlc2NyaXB0aW9uKGdGaXJzdENvbm5lY3Rpb24sIGdTZWNvbmRDb25uZWN0aW9uKSkK
LSAgICAuY2F0Y2godGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgYXNzZXJ0X3Vu
cmVhY2hlZCgnRXJyb3IgJyArIGUubmFtZSArICc6ICcgKyBlLm1lc3NhZ2UpOwotICAgICB9KSk7
Ci0gIH0pOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0c3RhdHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L2dldHN0YXRzLmh0bWwKaW5kZXggMDk1MGEzNzRjM2NkOGE0NGNiYjhiZmZjMjk5MWZjNmRjOTU0
MTdjOC4uZDZhNjkyYmI3ODYwYjljNmJkNzY5OWJhNGU5OWVhODAxMDkyMmMwOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0
c3RhdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9nZXRzdGF0cy5odG1sCkBAIC0yNywxNiArMjcsMTEgQEAgVGhpcyB0ZXN0IHVz
ZXMgZGF0YSBvbmx5LCBhbmQgdGh1cyBkb2VzIG5vdCByZXF1aXJlIGZha2UgbWVkaWEgZGV2aWNl
cy4KICAgdmFyIGdTZWNvbmRDb25uZWN0aW9uID0gbnVsbDsKIAogICB2YXIgb25JY2VDYW5kaWRh
dGVUb0ZpcnN0ID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAvLyBJZiBl
dmVudC5jYW5kaWRhdGUgaXMgbnVsbCA9IG5vIG1vcmUgY2FuZGlkYXRlcy4KLSAgICBpZiAoZXZl
bnQuY2FuZGlkYXRlKSB7Ci0gICAgICBnU2Vjb25kQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUo
ZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkSWNlQ2Fu
ZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CiAgIH0pOwogCiAgIHZhciBvbkljZUNhbmRpZGF0ZVRv
U2Vjb25kID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBpZiAoZXZlbnQu
Y2FuZGlkYXRlKSB7Ci0gICAgICBnRmlyc3RDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVu
dC5jYW5kaWRhdGUpOwotICAgIH0KKyAgICBnRmlyc3RDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0
ZShldmVudC5jYW5kaWRhdGUpOwogICB9KTsKIAogICB2YXIgZ2V0U3RhdHNSZWNvcmRCeVR5cGUg
PSBmdW5jdGlvbihzdGF0cywgdHlwZSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbm8tbWVkaWEtY2FsbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9u
by1tZWRpYS1jYWxsLWV4cGVjdGVkLnR4dAppbmRleCBhZDIxODkzMWQ3NTVlMWY1NjQwMTAzYzMz
ODAyOGRlMWIwZmQ0MTlkLi5jYWU3NWJmN2ZmMzM4OWJiNTQ5N2E0N2NlNGM4YzYwZGMxZTA3Y2Rj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9uby1tZWRpYS1jYWxsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9uby1tZWRpYS1jYWxsLWV4cGVjdGVk
LnR4dApAQCAtMiw1ICsyLDUgQEAKIFBBU1MgQ2FuIHNldCB1cCBhIGJhc2ljIFdlYlJUQyBjYWxs
IHdpdGggbm8gZGF0YS4KIGljZUNvbm5lY3Rpb25TdGF0ZSBpbmZvCiAKLUZpcnN0OiBjb25uZWN0
ZWQKK0ZpcnN0OiBjb21wbGV0ZWQKIFNlY29uZDogY29ubmVjdGVkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9uby1tZWRpYS1j
YWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9uby1tZWRpYS1jYWxsLmh0bWwKaW5kZXggYjFlYmEwOGQwYjQzM2M2MGM2MzMyMTk5Y2Qz
NTI5NDg0NzAyOGEwYy4uOWQyNTk4NTE4ZGE0YmJiY2I3YWM3ODAyNmIwNzM3ZDQwZGNjMDllZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvbm8tbWVkaWEtY2FsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1lZGlhLWNhbGwuaHRtbApAQCAtNTgsMTYgKzU4
LDExIEBACiAgIH07CiAKICAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9GaXJzdCA9IHRlc3Quc3RlcF9m
dW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgLy8gSWYgZXZlbnQuY2FuZGlkYXRlIGlzIG51bGwg
PSBubyBtb3JlIGNhbmRpZGF0ZXMuCi0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAg
Z1NlY29uZENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAg
fQorICAgIGdTZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUp
OwogICB9KTsKIAogICB2YXIgb25JY2VDYW5kaWRhdGVUb1NlY29uZCA9IHRlc3Quc3RlcF9mdW5j
KGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ0Zp
cnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9Cisg
ICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKICAg
fSk7CiAKICAgdmFyIG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlID0gdGVzdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZXZlbnQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb21pc2VzLWNhbGwtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvbWlzZXMt
Y2FsbC1leHBlY3RlZC50eHQKaW5kZXggZjMxZmE4NGI5MmFiNTNlMmVlZjlmNmQzMmJhNzJhMGE0
ZWFjNDc0MS4uZjI0YWFhMGIwNmUyZjFiZWM5NDJmNzE3YjFjNDg5MzJlN2MxZGVjYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvbWlzZXMtY2FsbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvbWlzZXMtY2FsbC1leHBlY3RlZC50eHQKQEAg
LTIsNSArMiw1IEBACiBQQVNTIENhbiBzZXQgdXAgYSBiYXNpYyBXZWJSVEMgY2FsbCB3aXRoIG9u
bHkgZGF0YSB1c2luZyBwcm9taXNlcy4KIGljZUNvbm5lY3Rpb25TdGF0ZSBpbmZvCiAKLUZpcnN0
OiBjb25uZWN0ZWQKK0ZpcnN0OiBjb21wbGV0ZWQKIFNlY29uZDogY29ubmVjdGVkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm9taXNlcy1jYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm9taXNlcy1jYWxsLmh0bWwKaW5kZXggOGI5YTI3NTU0OTczNTMxZTg1
Mjg0MDZhNTJkMzhiN2M1NTkzMmYzYy4uZWU2NGI0NjNlZTIyYWNhMWI2OGU2ODc1ZTEyNDQyNWM5
ZTQzNzQzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvbWlzZXMtY2FsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb21pc2VzLWNhbGwuaHRtbApAQCAt
MjQsMTYgKzI0LDExIEBAIFRoaXMgdGVzdCB1c2VzIGRhdGEgb25seSwgYW5kIHRodXMgZG9lcyBu
b3QgcmVxdWlyZSBmYWtlIG1lZGlhIGRldmljZXMuCiAgIHZhciBnU2Vjb25kQ29ubmVjdGlvbiA9
IG51bGw7CiAKICAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9GaXJzdCA9IHRlc3Quc3RlcF9mdW5jKGZ1
bmN0aW9uKGV2ZW50KSB7Ci0gICAgLy8gSWYgZXZlbnQuY2FuZGlkYXRlIGlzIG51bGwgPSBubyBt
b3JlIGNhbmRpZGF0ZXMuCi0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ1NlY29u
ZENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQorICAg
IGdTZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwogICB9
KTsKIAogICB2YXIgb25JY2VDYW5kaWRhdGVUb1NlY29uZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ0ZpcnN0Q29u
bmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ0Zp
cnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKICAgfSk7CiAK
ICAgdmFyIG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZXZlbnQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL1JFQURNRS50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9SRUFETUUudHh0Cmlu
ZGV4IDEzMTA3MTdjY2I5YzAzNWIwMTFmZjVmZTU0MzBmYmQ3ZTlmMTU4ZjIuLjVlMTdmYmY5YzM1
NGVkYWJhZjQ4ZjZlZTFkMDE3ZjIzZDE4ZTIxNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL1JFQURNRS50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvUkVBRE1FLnR4dApAQCAtMiwyMiArMiwyMSBAQCBUaGlzIGRpcmVjdG9yeSBjb250
YWlucyBmaWxlcyB0aGF0IHRlc3QgZm9yIGJlaGF2aW9yIHJlbGV2YW50IHRvIHdlYnJ0YywKIGJ1
dCB3aGljaCBpcyBzcGVjaWZpZWQgaW4gcHJvdG9jb2wgc3BlY2lmaWNhdGlvbnMgZnJvbSB0aGUg
SUVURiwgbm90IGluCiBBUEkgcmVjb21tZW5kYXRpb25zIGZyb20gdGhlIFczQy4KIAotVGhlIG1h
aW4gc3BlY2lmaWNhdGlvbnMgYXJlIGdpdmVuIGluIHRoZSBmb2xsb3dpbmcgaW50ZXJuZXQtZHJh
ZnRzOgotCi0tIGRyYWZ0LWlldGYtcnRjd2ViLW92ZXJ2aWV3Ci0tIGRyYWZ0LWlldGYtcnRjd2Vi
LXRyYW5zcG9ydHMKLS0gZHJhZnQtaWV0Zi1ydGN3ZWItc2VjdXJpdHktYXJjaAotLSBkcmFmdC1p
ZXRmLXJ0Y3dlYi1zZWN1cml0eQotLSBkcmFmdC1pZXRmLXJ0Y3dlYi1ydHAtdXNhZ2UKLS0gZHJh
ZnQtaWV0Zi1ydGN3ZWItanNlcAotLSBkcmFmdC1pZXRmLXJ0Y3dlYi1pcC1oYW5kbGluZwotLSBk
cmFmdC1pZXRmLXJ0Y3dlYi1mZWMKLS0gZHJhZnQtaWV0Zi1ydGN3ZWItZGF0YS1wcm90b2NvbAot
LSBkcmFmdC1pZXRmLXJ0Y3dlYi1kYXRhLWNoYW5uZWwKLS0gZHJhZnQtaWV0Zi1tbXVzaWMtc2Rw
LXNpbXVsY2FzdAotLSBkcmFmdC1pZXRmLW1tdXNpYy1yaWQKK1RoZSBtYWluIHNwZWNpZmljYXRp
b25zIGFyZSBnaXZlbiBpbiB0aGUgZm9sbG93aW5nIFJGQ3M6CiAKIC0gUkZDIDc3NDIsICJXZWJS
VEMgVmlkZW8gUHJvY2Vzc2luZyBhbmQgQ29kZWMgUmVxdWlyZW1lbnRzIgogLSBSRkMgNzg3NCwg
IldlYlJUQyBBdWRpbyBDb2RlYyBhbmQgUHJvY2Vzc2luZyBSZXF1aXJlbWVudHMiCistIFJGQyA4
ODI1IChkcmFmdC1pZXRmLXJ0Y3dlYi1vdmVydmlldykKKy0gUkZDIDg4MjYgKGRyYWZ0LWlldGYt
cnRjd2ViLXNlY3VyaXR5KQorLSBSRkMgODgyNyAoZHJhZnQtaWV0Zi1ydGN3ZWItc2VjdXJpdHkt
YXJjaCkKKy0gUkZDIDg4MjggKGRyYWZ0LWlldGYtcnRjd2ViLWlwLWhhbmRsaW5nKQorLSBSRkMg
ODgyOSAoZHJhZnQtaWV0Zi1ydGN3ZWItanNlcCkKKy0gUkZDIDg4MzEgKGRyYWZ0LWlldGYtcnRj
d2ViLWRhdGEtY2hhbm5lbCkKKy0gUkZDIDg4MzIgKGRyYWZ0LWlldGYtcnRjd2ViLWRhdGEtcHJv
dG9jb2wpCistIFJGQyA4ODM0IChkcmFmdC1pZXRmLXJ0Y3dlYi1ydHAtdXNhZ2UpCistIFJGQyA4
ODM1IChkcmFmdC1pZXRmLXJ0Y3dlYi10cmFuc3BvcnRzKQorLSBSRkMgODg1MSAoZHJhZnQtaWV0
Zi1tbXVzaWMtcmlkKQorLSBSRkMgODg1MyAoZHJhZnQtaWV0Zi1tbXVzaWMtc2RwLXNpbXVsY2Fz
dCkKKy0gUkZDIDg4NTQgKGRyYWZ0LWlldGYtcnRjd2ViLWZlYykKIAotQW4gb3ZlcnZpZXcgb2Yg
dGhlIGRlcGVuZGVuY2llcyBpbnZvbHZlZCBpcyBpbiBkcmFmdC1qZW5uaW5ncy1ydGN3ZWItZGVw
cworVGhpcyBsaXN0IGlzIGluY29tcGxldGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9kdGxzLXNldHVwLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtc2V0dXAuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA1ZDIwOTZhODA1ZDVkYzA0MDMyMGY0NzhhNGE2YjQ1NTdhNjVkNjIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm90b2NvbC9kdGxzLXNldHVwLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKKworUEFTUyBQQyBzaG91bGQgYWNjZXB0IGluaXRpYWwgb2ZmZXIgd2l0aCBzZXR1cD1hY3Rw
YXNzCitGQUlMIFBDIHNob3VsZCBhY2NlcHQgaW5pdGlhbCBvZmZlciB3aXRoIHNldHVwPWFjdGl2
ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYT1zZXR1cDpwYXNzaXZlIiBidXQgZ290ICJhPXNl
dHVwOmFjdGl2ZSIKK0ZBSUwgUEMgc2hvdWxkIGFjY2VwdCBpbml0aWFsIG9mZmVyIHdpdGggc2V0
dXA9cGFzc2l2ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJPcGVyYXRpb25FcnJvcjogRmFpbGVkIHRvIHNldCBsb2NhbCBhbnN3ZXIgc2RwOiBG
YWlsZWQgdG8gYXBwbHkgdGhlIGRlc2NyaXB0aW9uIGZvciBtPSBzZWN0aW9uIHdpdGggbWlkPSdh
MSc6IE9mZmVyZXIgbXVzdCB1c2UgYWN0cGFzcyB2YWx1ZSBvciBjdXJyZW50IG5lZ290aWF0ZWQg
cm9sZSBmb3Igc2V0dXAgYXR0cmlidXRlLiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1zZXR1cC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvZHRscy1zZXR1cC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlYjBhMWFl
NjUyYTQzNTVkZDkxZGFmMjQ5MTM2ZjI5M2JiNTA5ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9k
dGxzLXNldHVwLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIGE9c2V0dXAgU0RQ
IHBhcmFtZXRlciB0ZXN0PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8vIFRlc3RzIGZv
ciBjb3JyZWN0IGJlaGF2aW9yIG9mIERUTFMgYT1zZXR1cCBwYXJhbWV0ZXIuCisKKy8vIFNEUCBj
b3BpZWQgZnJvbSBKU0VQIEV4YW1wbGUgNy4xCisvLyBJdCBjb250YWlucyB0d28gbWVkaWEgc3Ry
ZWFtcyB3aXRoIGRpZmZlcmVudCB1ZnJhZ3MsIGFuZCBidW5kbGUKKy8vIHR1cm5lZCBvbi4KK2Nv
bnN0IGtTZHAgPSBgdj0wCitvPS0gNDk2MjMwMzMzMzE3OTg3MTcyMiAxIElOIElQNCAwLjAuMC4w
CitzPS0KK3Q9MCAwCithPWljZS1vcHRpb25zOnRyaWNrbGUKK2E9Z3JvdXA6QlVORExFIGExIHYx
CithPWdyb3VwOkxTIGExIHYxCittPWF1ZGlvIDEwMTAwIFVEUC9UTFMvUlRQL1NBVlBGIDk2IDAg
OCA5NyA5OAorYz1JTiBJUDQgMjAzLjAuMTEzLjEwMAorYT1taWQ6YTEKK2E9c2VuZHJlY3YKK2E9
cnRwbWFwOjk2IG9wdXMvNDgwMDAvMgorYT1ydHBtYXA6MCBQQ01VLzgwMDAKK2E9cnRwbWFwOjgg
UENNQS84MDAwCithPXJ0cG1hcDo5NyB0ZWxlcGhvbmUtZXZlbnQvODAwMAorYT1ydHBtYXA6OTgg
dGVsZXBob25lLWV2ZW50LzQ4MDAwCithPW1heHB0aW1lOjEyMAorYT1leHRtYXA6MSB1cm46aWV0
ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZAorYT1leHRtYXA6MiB1cm46aWV0ZjpwYXJhbXM6
cnRwLWhkcmV4dDpzc3JjLWF1ZGlvLWxldmVsCithPW1zaWQ6NDcwMTdmZWUtYjZjMS00MTYyLTky
OWMtYTI1MTEwMjUyNDAwIGY4MzAwNmM1LWEwZmYtNGUwYS05ZWQ5LWQzZTY3NDdiZTdkOQorYT1p
Y2UtdWZyYWc6RVRFbgorYT1pY2UtcHdkOk90U0swV3BOdHBVamtZNCs4NmpzN1pRbAorYT1maW5n
ZXJwcmludDpzaGEtMjU2IDE5OkUyOjFDOjNCOjRCOjlGOjgxOkU2OkI4OjVDOkY0OkE1OkE4OkQ4
OjczOjA0OkJCOjA1OjJGOjcwOjlGOjA0OkE5OjBFOjA1OkU5OjI2OjMzOkU4OjcwOjg4OkEyCith
PXNldHVwOmFjdHBhc3MKK2E9ZHRscy1pZDoxCithPXJ0Y3A6MTAxMDEgSU4gSVA0IDIwMy4wLjEx
My4xMDAKK2E9cnRjcC1tdXgKK2E9cnRjcC1yc2l6ZQorbT12aWRlbyAxMDEwMiBVRFAvVExTL1JU
UC9TQVZQRiAxMDAgMTAxCitjPUlOIElQNCAyMDMuMC4xMTMuMTAwCithPW1pZDp2MQorYT1zZW5k
cmVjdgorYT1ydHBtYXA6MTAwIFZQOC85MDAwMAorYT1ydHBtYXA6MTAxIHJ0eC85MDAwMAorYT1m
bXRwOjEwMSBhcHQ9MTAwCithPWV4dG1hcDoxIHVybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNk
ZXM6bWlkCithPXJ0Y3AtZmI6MTAwIGNjbSBmaXIKK2E9cnRjcC1mYjoxMDAgbmFjaworYT1ydGNw
LWZiOjEwMCBuYWNrIHBsaQorYT1tc2lkOjQ3MDE3ZmVlLWI2YzEtNDE2Mi05MjljLWEyNTExMDI1
MjQwMCBmMzBiZGI0YS01ZGI4LTQ5YjUtYmNkYy1lMGM5YTIzMTcyZTAKK2E9aWNlLXVmcmFnOkJH
S2sKK2E9aWNlLXB3ZDptcXlXc0FqdnRLd1RHbnZoUHp0UTltSWYKK2E9ZmluZ2VycHJpbnQ6c2hh
LTI1NiAxOTpFMjoxQzozQjo0Qjo5Rjo4MTpFNjpCODo1QzpGNDpBNTpBODpEODo3MzowNDpCQjow
NToyRjo3MDo5RjowNDpBOTowRTowNTpFOToyNjozMzpFODo3MDo4ODpBMgorYT1zZXR1cDphY3Rw
YXNzCithPWR0bHMtaWQ6MQorYT1ydGNwOjEwMTAzIElOIElQNCAyMDMuMC4xMTMuMTAwCithPXJ0
Y3AtbXV4CithPXJ0Y3AtcnNpemUKK2A7CisKK2ZvciAobGV0IHNldHVwIG9mIFsnYWN0cGFzcycs
ICdhY3RpdmUnLCAncGFzc2l2ZSddKSB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
ICBjb25zdCBzZHAgPSBrU2RwLnJlcGxhY2UoL2E9c2V0dXA6YWN0cGFzcy9nLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnYT1zZXR1cDonICsgc2V0dXApOworICAgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNs
b3NlKCkpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVy
Jywgc2RwOiBzZHB9KTsKKyAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYzEuY3JlYXRlQW5zd2Vy
KCk7CisgICAgY29uc3QgcmVzdWx0aW5nU2V0dXAgPSBhbnN3ZXIuc2RwLm1hdGNoKC9hPXNldHVw
OlxTKy8pOworICAgIGlmIChzZXR1cCA9PT0gJ2FjdGl2ZScpIHsKKyAgICAgIGFzc2VydF9lcXVh
bHMocmVzdWx0aW5nU2V0dXBbMF0sICdhPXNldHVwOnBhc3NpdmUnKTsKKyAgICB9IGVsc2UgaWYg
KHNldHVwID09PSAncGFzc2l2ZScpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0aW5nU2V0
dXBbMF0sICdhPXNldHVwOmFjdGl2ZScpOworICAgIH0gZWxzZSBpZiAoc2V0dXAgPT09ICdhY3Rw
YXNzJykgeworICAgICAgLy8gRm9yIGFjdHBhc3MsIGVpdGhlciBhY3RpdmUgb3IgcGFzc2l2ZSBh
cmUgbGVnYWwsIGFsdGhvdWdoCisgICAgICAvLyBhY3RpdmUgaXMgUkVDT01NRU5ERUQgYnkgUkZD
IDU3NjMgLyA4ODQyLgorICAgICAgYXNzZXJ0X2luX2FycmF5KHJlc3VsdGluZ1NldHVwWzBdLCBb
J2E9c2V0dXA6YWN0aXZlJywgJ2E9c2V0dXA6cGFzc2l2ZSddKTsKKyAgICB9CisgICAgYXdhaXQg
cGMxLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgfSwgJ1BDIHNob3VsZCBhY2NlcHQg
aW5pdGlhbCBvZmZlciB3aXRoIHNldHVwPScgKyBzZXR1cCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVy
LWRhdGFjaGFubmVsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWE3MjdjZjdhYzA1YjFmY2Mx
M2E4OWVmNmYxYWQyMjk3MGVjZDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXItZGF0
YWNoYW5uZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIEhhbmRvdmVyIHdp
dGggZGF0YWNoYW5uZWwgcmVpbml0aWF0ZWQgZnJvbSBuZXcgY2FsbGVlIGNvbXBsZXRlcyBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdvZmZlclBjLnNjdHAu
dHJhbnNwb3J0JykiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9oYW5kb3Zlci1kYXRhY2hhbm5lbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmMjI0ZjgyMmE3NmJi
NDg5MjRiYzEzZTU5ZDUzZjhhMjRkOTlmNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zl
ci1kYXRhY2hhbm5lbC5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1l
dGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBIYW5kb3ZlcnM8L3Rp
dGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNv
bnN0IG9mZmVyUGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgYW5zd2VyUGNG
aXJzdCA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBhbnN3ZXJQY1NlY29uZCA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHsKKyAgICBv
ZmZlclBjLmNsb3NlKCk7CisgICAgYW5zd2VyUGNGaXJzdC5jbG9zZSgpOworICAgIGFuc3dlclBj
U2Vjb25kLmNsb3NlKCk7CisgIH0pOworICBjb25zdCBvZmZlckRhdGFjaGFubmVsMSA9IG9mZmVy
UGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2luaXRpYWwnKTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVz
KG9mZmVyUGMsIGFuc3dlclBjRmlyc3QpOworCisgIC8vIE5lZ290aWF0ZSBjb25uZWN0aW9uIHdp
dGggUEMgMQorICBjb25zdCBvZmZlcjEgPSBhd2FpdCBvZmZlclBjLmNyZWF0ZU9mZmVyKCk7Cisg
IGF3YWl0IG9mZmVyUGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcjEpOworICBhd2FpdCBhbnN3
ZXJQY0ZpcnN0LnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyMSk7CisgIGNvbnN0IGFuc3dlcjEg
PSBhd2FpdCBhbnN3ZXJQY0ZpcnN0LmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBvZmZlclBjLnNl
dFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcjEpOworICBhd2FpdCBhbnN3ZXJQY0ZpcnN0LnNldExv
Y2FsRGVzY3JpcHRpb24oYW5zd2VyMSk7CisgIGNvbnN0IGRhdGFjaGFubmVsQXRBbnN3ZXJQY0Zp
cnN0ID0gYXdhaXQgbmV3IFByb21pc2UoCisgICAgciA9PiBhbnN3ZXJQY0ZpcnN0Lm9uZGF0YWNo
YW5uZWwgPSAoe2NoYW5uZWx9KSA9PiByKGNoYW5uZWwpKTsKKyAgY29uc3QgaWNlVHJhbnNwb3J0
ID0gb2ZmZXJQYy5zY3RwLnRyYW5zcG9ydDsKKyAgLy8gQ2hlY2sgdGhhdCBtZXNzYWdlcyBnZXQg
dGhyb3VnaC4KKyAgZGF0YWNoYW5uZWxBdEFuc3dlclBjRmlyc3Quc2VuZCgnaGVsbG8nKTsKKyAg
Y29uc3QgbWVzc2FnZTEgPSBhd2FpdCBhd2FpdE1lc3NhZ2Uob2ZmZXJEYXRhY2hhbm5lbDEpOwor
ICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UxLCAnaGVsbG8nKTsKKworICAvLyBSZW5lZ290aWF0ZSB3
aXRoIFBDIDIKKyAgLy8gTm90ZSAtIElDRSBjYW5kaWRhdGVzIHdpbGwgYWxzbyBiZSBzZW50IHRv
IGFuc3dlclBjMSwgYnV0IHRoYXQgc2hvdWxkbid0IG1hdHRlci4KKyAgZXhjaGFuZ2VJY2VDYW5k
aWRhdGVzKG9mZmVyUGMsIGFuc3dlclBjU2Vjb25kKTsKKyAgY29uc3Qgb2ZmZXIyID0gYXdhaXQg
b2ZmZXJQYy5jcmVhdGVPZmZlcigpOworICBhd2FpdCBvZmZlclBjLnNldExvY2FsRGVzY3JpcHRp
b24ob2ZmZXIyKTsKKyAgYXdhaXQgYW5zd2VyUGNTZWNvbmQuc2V0UmVtb3RlRGVzY3JpcHRpb24o
b2ZmZXIyKTsKKyAgY29uc3QgYW5zd2VyMiA9IGF3YWl0IGFuc3dlclBjU2Vjb25kLmNyZWF0ZUFu
c3dlcigpOworICBhd2FpdCBvZmZlclBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcjIpOwor
ICBhd2FpdCBhbnN3ZXJQY1NlY29uZC5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcjIpOworCisg
IC8vIEtpbGwgdGhlIGZpcnN0IFBDLiBUaGlzIHNob3VsZCBub3QgYWZmZWN0IGFueXRoaW5nLCBi
dXQgbGVhdmluZyBpdCBtYXkgY2F1c2UgdW50b3dhcmQgZXZlbnRzLgorICBhbnN3ZXJQY0ZpcnN0
LmNsb3NlKCk7CisKKyAgY29uc3QgYW5zd2VyRGF0YUNoYW5uZWwyID0gYW5zd2VyUGNTZWNvbmQu
Y3JlYXRlRGF0YUNoYW5uZWwoJ3NlY29uZCBiYWNrJyk7CisKKyAgY29uc3QgZGF0YWNoYW5uZWxB
dE9mZmVyUGNTZWNvbmQgPSBhd2FpdCBuZXcgUHJvbWlzZShyID0+IG9mZmVyUGMub25kYXRhY2hh
bm5lbCA9ICh7Y2hhbm5lbH0pID0+IHIoY2hhbm5lbCkpOworCisgIGF3YWl0IG5ldyBQcm9taXNl
KHIgPT4gZGF0YWNoYW5uZWxBdE9mZmVyUGNTZWNvbmQub25vcGVuID0gcik7CisKKyAgZGF0YWNo
YW5uZWxBdE9mZmVyUGNTZWNvbmQuc2VuZCgnaGVsbG8gYWdhaW4nKTsKKyAgY29uc3QgbWVzc2Fn
ZTIgPSBhd2FpdCBhd2FpdE1lc3NhZ2UoYW5zd2VyRGF0YUNoYW5uZWwyKTsKKyAgYXNzZXJ0X2Vx
dWFscyhtZXNzYWdlMiwgJ2hlbGxvIGFnYWluJyk7Cit9LCAnSGFuZG92ZXIgd2l0aCBkYXRhY2hh
bm5lbCByZWluaXRpYXRlZCBmcm9tIG5ldyBjYWxsZWUgY29tcGxldGVzJyk7CisKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLmh0bWwKaW5kZXgg
Mzc4ZDY1ZmZjMzIwYmYwYWM2YTZhMTY2OTBkZDk5MmQwZjVlNTM2ZC4uNzQ4Y2JlZmY4ZDdiZDgz
YmU0NzNjMDQ5OTA4YjUzZjdmZTJiYzk3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9oYW5kb3Zlci5odG1sCkBAIC02OSw2ICs2OSw0IEBAIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKICAgYXdhaXQgb2ZmZXJQYy5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcjIpOwog
fSwgJ05lZ290aWF0aW9uIG9mIGhhbmRvdmVyIGluaXRpYXRlZCBhdCBjYWxsZWUgd29ya3MnKTsK
IAotCi0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9ydHAtY2xvY2tyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMGIyNGMyNjJk
ODU5Mzk0OGZlYTVkY2YwMjM2NmRhNmE0ZGYyNzJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRw
LWNsb2NrcmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgdmlkZW8gcnRw
IHRpbWVzdGFtcHMgaW5jcmVhc2UgYnkgYXBwcm94aW1hdGVseSA5MDAwMCBwZXIgc2Vjb25kCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL3J0cC1jbG9ja3JhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1jbG9ja3JhdGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40MTc3NDIwMDUwZjU4MjA5NGQ4ZmUyOTNhYWMxNjY1YmRhZWE3OThlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0ZS5odG1sCkBAIC0wLDAgKzEsNDAgQEAK
KzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzwhLS0gVGhpcyBmaWxlIGNv
bnRhaW5zIGEgdGVzdCB0aGF0IHdhaXRzIGZvciB0d28gc2Vjb25kcy4gLS0+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5SVFAgY2xvY2tyYXRlPC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKyd1c2Ugc3RyaWN0JzsKKworYXN5bmMgZnVuY3Rpb24gaW5pdGlhdGVTaW5nbGVUcmFja0Nh
bGxBbmRSZXR1cm5SZWNlaXZlcih0LCBraW5kKSB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29u
c3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMyLmNsb3NlKCkpOworCisgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHtb
a2luZF06dHJ1ZX0pOworICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHRyYWNrLnN0b3AoKSk7CisgIHBjMS5hZGRUcmFjayh0cmFjaywg
c3RyZWFtKTsKKworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBjb25zdCB0
cmFja0V2ZW50ID0gYXdhaXQgZXhjaGFuZ2VPZmZlckFuZExpc3RlblRvT250cmFjayh0LCBwYzEs
IHBjMik7CisgIGF3YWl0IGV4Y2hhbmdlQW5zd2VyKHBjMSwgcGMyKTsKKyAgYXdhaXQgd2FpdEZv
ckNvbm5lY3Rpb25TdGF0ZUNoYW5nZShwYzIsIFsnY29ubmVjdGVkJ10pOworICByZXR1cm4gdHJh
Y2tFdmVudC5yZWNlaXZlcjsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAvLyB0
aGUgZ2V0U3luY2hyb25pemF0aW9uU291cmNlcyBBUEkgZXhwb3NlcyB0aGUgcnRwIHRpbWVzdGFt
cC4KKyAgY29uc3QgcmVjZWl2ZXIgPSBhd2FpdCBpbml0aWF0ZVNpbmdsZVRyYWNrQ2FsbEFuZFJl
dHVyblJlY2VpdmVyKHQsICd2aWRlbycpOworICBjb25zdCBmaXJzdCA9IGF3YWl0IGxpc3RlbkZv
clNTUkNzKHQsIHJlY2VpdmVyKTsKKyAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0LnN0
ZXBfdGltZW91dChyZXNvbHZlLCAyMDAwKSk7CisgIGNvbnN0IHNlY29uZCA9IGF3YWl0IGxpc3Rl
bkZvclNTUkNzKHQsIHJlY2VpdmVyKTsKKyAgLy8gcnRwVGltZXN0YW1wIG1heSB3cmFwIGF0IDB4
ZmZmZmZmZmYsIHRha2UgY2FyZSBvZiB0aGF0LgorICBjb25zdCBhY3R1YWxDbG9ja1JhdGUgPSAo
KHNlY29uZFswXS5ydHBUaW1lc3RhbXAgLSBmaXJzdFswXS5ydHBUaW1lc3RhbXAgKyAweGZmZmZm
ZmZmKSAlIDB4ZmZmZmZmZmYpIC8gKHNlY29uZFswXS50aW1lc3RhbXAgLSBmaXJzdFswXS50aW1l
c3RhbXApICogMTAwMDsKKyAgYXNzZXJ0X2FwcHJveF9lcXVhbHMoYWN0dWFsQ2xvY2tSYXRlLCA5
MDAwMCwgOTAwMCwgJ1ZpZGVvIGNsb2NrcmF0ZSBpcyBhcHByb3hpbWF0ZWx5IDkwMDAwJyk7Cit9
LCAndmlkZW8gcnRwIHRpbWVzdGFtcHMgaW5jcmVhc2UgYnkgYXBwcm94aW1hdGVseSA5MDAwMCBw
ZXIgc2Vjb25kJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1leHRlbnNpb24tc3Vw
cG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdlYjMwYzUyNDc3MmIzYzU0YzY0YWFlZmM5YjkwYmVjNjNkYWI2ZjAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNyBAQAorCitQQVNTIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIHVybjppZXRmOnBhcmFt
czpydHAtaGRyZXh0OnNzcmMtYXVkaW8tbGV2ZWwgaXMgcHJlc2VudCBpbiBvZmZlcgorUEFTUyBS
VFAgaGVhZGVyIGV4dGVuc2lvbiB1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZCBp
cyBwcmVzZW50IGluIG9mZmVyCitQQVNTIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIHVybjozZ3BwOnZp
ZGVvLW9yaWVudGF0aW9uIGlzIHByZXNlbnQgaW4gb2ZmZXIKK1BBU1MgUlRQIGhlYWRlciBleHRl
bnNpb24gdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczpydHAtc3RyZWFtLWlkIGlzIHBy
ZXNlbnQgaW4gb2ZmZXIKK1BBU1MgUlRQIGhlYWRlciBleHRlbnNpb24gdXJuOmlldGY6cGFyYW1z
OnJ0cC1oZHJleHQ6c2RlczpyZXBhaXJlZC1ydHAtc3RyZWFtLWlkIGlzIHByZXNlbnQgaW4gb2Zm
ZXIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWV4dGVuc2lvbi1zdXBwb3J0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAt
ZXh0ZW5zaW9uLXN1cHBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2QzZmU4N2Q5M2RjODBmZmQ4NjRh
MzE0N2M3NGMyMmViZjU2OGIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWV4dGVuc2lvbi1z
dXBwb3J0Lmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIFJUUCBleHRlbnNpb25zPC90aXRs
ZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi90aGlyZF9wYXJ0eS9zZHAvc2RwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisndXNlIHN0cmljdCc7CisKK2FzeW5jIGZ1bmN0aW9uIHNldHVwKCkgeworICBjb25zdCBwYzEg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycp
OworICBwYzEuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CisgIGNvbnN0IG9mZmVyID0gYXdhaXQg
cGMxLmNyZWF0ZU9mZmVyKCk7CisgIHBjMS5jbG9zZSgpOworICByZXR1cm4gb2ZmZXIuc2RwOwor
fQorCisvLyBFeHRlbnNpb25zIHRoYXQgTVVTVCBiZSBzdXBwb3J0ZWQKK2NvbnN0IG1hbmRhdG9y
eUV4dGVuc2lvbnMgPSBbCisgIC8vIERpcmVjdGx5IHJlZmVyZW5jZWQgaW4gV2ViUlRDIFJUUCB1
c2FnZQorICAndXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c3NyYy1hdWRpby1sZXZlbCcsIC8v
IFJGQyA4ODM0IDUuMi4yCisgICd1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZCcs
ICAvLyBSRkMgODgzNCA1LjIuNAorICAndXJuOjNncHA6dmlkZW8tb3JpZW50YXRpb24nLCAgLy8g
UkZDIDg4MzQgNS4yLjUKKyAgLy8gUmVxdWlyZWQgZm9yIHN1cHBvcnQgb2Ygc2ltdWxjYXN0IHdp
dGggUklECisgICd1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOnJ0cC1zdHJlYW0taWQn
LCAgLy8gUkZDIDg4NTIgNC4zCisgICd1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOnJl
cGFpcmVkLXJ0cC1zdHJlYW0taWQnLCAgLy8gUkZDIDg4NTIgNC40CitdOworCisvLyBGb3IgZnVy
dGhlciB0ZXN0aW5nOgorLy8gLSBBZGQgdGVzdCBmb3IgcmFwaWQgc3luY2hyb25pemF0aW9uIC0g
UkZDIDg4MzQgNS4yLjEKKy8vIC0gQWRkIHRlc3QgZm9yIGVuY3J5cHRlZCBoZWFkZXIgZXh0ZW5z
aW9ucyAoUkZDIDY5MDQpCisvLyAtIFNlcGFyYXRlIHRlc3RzIGZvciBleHRlbnNpb25zIGluIGF1
ZGlvIGFuZCB2aWRlbyBzZWN0aW9ucworCitmb3IgKGNvbnN0IGV4dGVuc2lvbiBvZiBtYW5kYXRv
cnlFeHRlbnNpb25zKSB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBz
ZHAgPSBhd2FpdCBzZXR1cCgpOworICAgIGNvbnN0IGV4dGVuc2lvbnMgPSBTRFBVdGlscy5tYXRj
aFByZWZpeChzZHAsICdhPWV4dG1hcDonKQorICAgICAgICAgIC5tYXAoU0RQVXRpbHMucGFyc2VF
eHRtYXApOworICAgIGFzc2VydF90cnVlKCEhZXh0ZW5zaW9ucy5maW5kKGV4dCA9PiBleHQudXJp
ID09PSBleHRlbnNpb24pKTsKKyAgfSwgYFJUUCBoZWFkZXIgZXh0ZW5zaW9uICR7ZXh0ZW5zaW9u
fSBpcyBwcmVzZW50IGluIG9mZmVyYCk7Cit9CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
cnRwLXBheWxvYWR0eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sCmluZGV4IDY4
MDZlNzVlZDUxNGMwNDk2OGQwM2I2ZDg0MTNkYWEzOGI4M2QwNTMuLmFhNDY0Zjg2NTZmZTlhMDkw
Mzc0ZTQzNDZjNDM2MDBjZjBiNDk3YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1wYXlsb2FkdHlwZXMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLmh0bWwKQEAgLTUxLDcgKzUxLDcgQEAgcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBmb3IgKGxldCBwYXlsb2FkVHlwZSA9IDY0OyBwYXls
b2FkVHlwZSA8PSA5NTsgcGF5bG9hZFR5cGUrKykgewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CiAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxp
ZEFjY2Vzc0Vycm9yJywKLSAgICAgIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2Zm
ZXInLCBzZHA6IGNyZWF0ZU9mZmVyU2RwKDY0KX0pKTsKKyAgICAgIHBjLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHA6IGNyZWF0ZU9mZmVyU2RwKHBheWxvYWRUeXBlKX0p
KTsKICAgICBwYy5jbG9zZSgpOwogICB9CiB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24gd2l0aCBh
IGNvZGVjIGluIHRoZSByYW5nZSA2NC05NSB0aHJvd3MgYW4gSW52YWxpZEFjY2Vzc0Vycm9yJyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbApp
bmRleCA1ZWI4MzI5NTE3ZmJlZmU5NDY4MmZlNzkxYWU4MTc2OWQwM2RhMTk3Li4zZmMzYmRhMmE1
MmNmNzE5MGMwMWFiNGQ4OTI2ZDc1ZDNkNGZkODVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL3NwbGl0Lmh0dHBzLmh0bWwKQEAgLTM4LDE2ICszOCwyMiBAQCBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgaWYgKGUuY2FuZGlkYXRlKSB7CiAgICAgICBjb25z
dCB0YXJnZXQgPSBlLmNhbmRpZGF0ZS5zZHBNTGluZUluZGV4ID09PSAwID8gY2FsbGVlQXVkaW8g
OiBjYWxsZWVWaWRlbzsKICAgICAgIHRhcmdldC5hZGRJY2VDYW5kaWRhdGUoe3NkcE1pZDogZS5j
YW5kaWRhdGUuc2RwTWlkLCBjYW5kaWRhdGU6IGUuY2FuZGlkYXRlLmNhbmRpZGF0ZX0pOworICAg
IH0gZWxzZSB7CisgICAgICBjYWxsZWVBdWRpby5hZGRJY2VDYW5kaWRhdGUoKTsKKyAgICAgIGNh
bGxlZVZpZGVvLmFkZEljZUNhbmRpZGF0ZSgpOwogICAgIH0KICAgfSk7CiAgIGNhbGxlZUF1ZGlv
LmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWNhbmRpZGF0ZScsIChlKSA9PiB7CiAgICAgaWYgKGUuY2Fu
ZGlkYXRlKSB7CiAgICAgICBjYWxsZXIuYWRkSWNlQ2FuZGlkYXRlKHtzZHBNaWQ6IGUuY2FuZGlk
YXRlLnNkcE1pZCwgY2FuZGlkYXRlOiBlLmNhbmRpZGF0ZS5jYW5kaWRhdGV9KTsKICAgICB9Cisg
ICAgLy8gTm90ZTogY2FsbGVyLmFkZEljZUNhbmRpZGF0ZSBpcyBvbmx5IGNhbGxlZCBmb3Igdmlk
ZW8gdG8gYXZvaWQgY2FsbGluZyBpdCB0d2ljZS4KICAgfSk7CiAgIGNhbGxlZVZpZGVvLmFkZEV2
ZW50TGlzdGVuZXIoJ2ljZWNhbmRpZGF0ZScsIChlKSA9PiB7CiAgICAgaWYgKGUuY2FuZGlkYXRl
KSB7CiAgICAgICBjYWxsZXIuYWRkSWNlQ2FuZGlkYXRlKHtzZHBNaWQ6IGUuY2FuZGlkYXRlLnNk
cE1pZCwgY2FuZGlkYXRlOiBlLmNhbmRpZGF0ZS5jYW5kaWRhdGV9KTsKKyAgICB9IGVsc2Ugewor
ICAgICAgY2FsbGVyLmFkZEljZUNhbmRpZGF0ZSgpOwogICAgIH0KICAgfSk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL3ZwOC1mbXRwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZwOC1mbXRwLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zODI1YTk3NTY3M2EwYmU2NzQ5ZTQyN2FkNTJiZmJmODRlY2Y5MDg1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvdnA4LWZtdHAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitGQUlMIHNldFJlbW90ZURlc2NyaXB0aW9uIHBhcnNlcyBtYXgtZnIgYW5kIG1heC1mcyBmbXRw
IHBhcmFtZXRlcnMgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3ZwOC1mbXRwLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92cDgtZm10cC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2
ZWE2MzU5NDlmMTRiZmVjMTgwMDVjMDgwM2E5YmM5OWQ2ODA5ZWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC92cDgtZm10cC5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1l
dGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgor
PHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIEZhaWxlZCBTdGF0ZTwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
UlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0
cmljdCc7CisKKy8vIFRlc3Qgc3VwcG9ydCBmb3IKKy8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcv
aHRtbC9yZmM3NzQxI3NlY3Rpb24tNi4xCisKK2NvbnN0IHNkcCA9IGB2PTAKK289LSAwIDMgSU4g
SVA0IDEyNy4wLjAuMQorcz0tCit0PTAgMAorYT1maW5nZXJwcmludDpzaGEtMjU2IEE3OjI0Ojcy
OkNBOjZFOjAyOjU1OjM5OkJBOjY2OkRGOjZFOkNDOjRDOkQ4OkIwOjFBOkJGOjFBOjU2OjY1OjdE
OkY0OjAzOkFEOjdFOjc3OjQzOjJBOjI5OkVDOjkzCittPXZpZGVvIDkgVURQL1RMUy9SVFAvU0FW
UEYgMTAwCitjPUlOIElQNCAwLjAuMC4wCithPXJ0Y3AtbXV4CithPXNlbmRvbmx5CithPW1pZDp2
aWRlbworYT1ydHBtYXA6MTAwIFZQOC85MDAwMAorYT1mbXRwOjEwMCBtYXgtZnI9MzA7bWF4LWZz
PTM2MDAKK2E9c2V0dXA6YWN0cGFzcworYT1pY2UtdWZyYWc6RVRFbgorYT1pY2UtcHdkOk90U0sw
V3BOdHBVamtZNCs4NmpzN1ovbAorYDsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBj
b25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjLmNsb3NlKCkpOworCisgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAn
b2ZmZXInLCBzZHB9KTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBjb25z
dCByZWNlaXZlciA9IHBjLmdldFJlY2VpdmVycygpWzBdOworICBjb25zdCBwYXJhbWV0ZXJzID0g
cmVjZWl2ZXIuZ2V0UGFyYW1ldGVycygpOworICBjb25zdCB7c2RwRm10cExpbmV9ID0gcGFyYW1l
dGVycy5jb2RlY3NbMF07CisgIGFzc2VydF90cnVlKCEhc2RwRm10cExpbmUpOworICBhc3NlcnRf
dHJ1ZShzZHBGbXRwTGluZS5zcGxpdCgnOycpLmluY2x1ZGVzKCdtYXgtZnI9MzAnKSk7CisgIGFz
c2VydF90cnVlKHNkcEZtdHBMaW5lLnNwbGl0KCc7JykuaW5jbHVkZXMoJ21heC1mcz0zNjAwJykp
OworfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uIHBhcnNlcyBtYXgtZnIgYW5kIG1heC1mcyBmbXRw
IHBhcmFtZXRlcnMnKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC93M2MtaW1wb3J0LmxvZwppbmRleCA0ZTNjODFlNTk3MzY2YjM0MjFiNTI1MjgzZGE1NjYx
NTk2ZmM2OWY2Li42OWZkY2JmMWNiZGNmMzAxNzcwZTdmYzkxNjBlZDQwOGFiNDNlM2I3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC93M2MtaW1wb3J0LmxvZwpAQCAtMjAs
MTMgKzIwLDE3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtZmluZ2VycHJpbnQt
dmFsaWRhdGlvbi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1zZXR1cC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIt
ZGF0YWNoYW5uZWwuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2Utc3RhdGUuaHR0cHMu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL2ljZS11ZnJhZ3B3ZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvanNlcC1pbml0aWFsLW9mZmVyLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9taXNzaW5nLWZpZWxkcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvbXNpZC1wYXJzZS5odG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
cnRwLWNsb2NrcmF0ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWRlbXV4aW5nLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5z
aW9uLXN1cHBvcnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1wYXlsb2FkdHlwZXMuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NjdHAtZm9y
bWF0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm90b2NvbC9zaW11bGNhc3QtYW5zd2VyLmh0bWwKQEAgLTM0LDMgKzM4LDQgQEAgTGlz
dCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdW5rbm93bi1tZWRpYXR5cGVz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC92aWRlby1jb2RlY3MuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZwOC1mbXRwLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3NpbXBsZWNhbGwtbm8tc3NyY3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXBsZWNhbGwtbm8tc3NyY3MuaHR0cHMu
aHRtbAppbmRleCA1MTYwNDUxZjAxMmU2NDJkZDU2OTdlMDM0YTE5YTdmODg5NTQyMWVhLi5mMmUy
MDg0NjIzNGJiNDcwM2QyM2M4NzZmNDY4OTk0ZGNkNzRiZTMwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLW5v
LXNzcmNzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC1uby1zc3Jjcy5odHRwcy5odG1sCkBAIC04OCwx
NiArODgsMTEgQEAKICAgfTsKIAogICB2YXIgb25JY2VDYW5kaWRhdGVUb0ZpcnN0ID0gdGVzdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAvLyBJZiBldmVudC5jYW5kaWRhdGUgaXMg
bnVsbCA9IG5vIG1vcmUgY2FuZGlkYXRlcy4KLSAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7Ci0g
ICAgICBnU2Vjb25kQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsK
LSAgICB9CisgICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRp
ZGF0ZSk7CiAgIH0pOwogCiAgIHZhciBvbkljZUNhbmRpZGF0ZVRvU2Vjb25kID0gdGVzdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7Ci0gICAg
ICBnRmlyc3RDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwotICAg
IH0KKyAgICBnRmlyc3RDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUp
OwogICB9KTsKIAogICB2YXIgb25SZW1vdGVUcmFjayA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9u
KGV2ZW50KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWwK
aW5kZXggZmZlMDQzYjZhMjM3ZmFlMWE0ZjcwZTJjZmFjNDk1YTJhNjEzMmMyOC4uZGJmNmI5YTUw
ODNhODdmZWVlYjNkOTNiZWZhMGEwNjAxN2JlODU1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3NpbXBsZWNhbGwuaHR0cHMuaHRtbApAQCAtNzksMTYgKzc5LDExIEBACiAgIH07CiAKICAg
dmFyIG9uSWNlQ2FuZGlkYXRlVG9GaXJzdCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50
KSB7Ci0gICAgLy8gSWYgZXZlbnQuY2FuZGlkYXRlIGlzIG51bGwgPSBubyBtb3JlIGNhbmRpZGF0
ZXMuCi0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ1NlY29uZENvbm5lY3Rpb24u
YWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQorICAgIGdTZWNvbmRDb25u
ZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwogICB9KTsKIAogICB2YXIg
b25JY2VDYW5kaWRhdGVUb1NlY29uZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7
Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJ
Y2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ0ZpcnN0Q29ubmVjdGlv
bi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKICAgfSk7CiAKICAgdmFyIG9uUmVt
b3RlVHJhY2sgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxj
YXN0L2Jhc2ljLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbAppbmRleCA1ZDVmM2I1
MmY1ZjY2OGNhMmRkZDUyMThjNWM5ZjYwYjg4NDU1NWRmLi5iZjJiYWE4Y2FiOTlkMTU0MmY0NjU1
NGIzNTY2NGRhMjU3NjhlNWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11
bGNhc3QvYmFzaWMuaHR0cHMuaHRtbApAQCAtOSwxMiArOSwxMiBAQAogPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcmlkcyA9IFswLCAxLCAyXTsKKyAgY29uc3Qg
cmlkcyA9IFswLCAxXTsKICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwogICBjb25zdCBwYzIgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CiAK
ICAgcmV0dXJuIG5lZ290aWF0ZVNpbXVsY2FzdEFuZFdhaXRGb3JWaWRlbyh0LCByaWRzLCBwYzEs
IHBjMik7Ci19LCAnQmFzaWMgc2ltdWxjYXN0IHNldHVwIHdpdGggdGhyZWUgc3BhdGlhbCBsYXll
cnMnKTsKK30sICdCYXNpYyBzaW11bGNhc3Qgc2V0dXAgd2l0aCB0d28gc3BhdGlhbCBsYXllcnMn
KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0
Lmh0dHBzLmh0bWwKaW5kZXggMjZlZDJlOTA0YThiMzUxN2M5ZGQzNWFmMjc2MzMwZDUzNDFkNzM4
OC4uZDIzZjI5NTJhZWE0M2Y4M2RiZmUzNzI2NmJiYmQ1YzUxYWU3YjVlZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxj
YXN0L2gyNjQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sCkBAIC0xNywxMiAr
MTcsMTIgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBhc3NlcnRfaW1wbGVtZW50cygn
Z2V0Q2FwYWJpbGl0aWVzJyBpbiBSVENSdHBTZW5kZXIsICdSVENSdHBTZW5kZXIuZ2V0Q2FwYWJp
bGl0aWVzIG5vdCBzdXBwb3J0ZWQnKTsKICAgYXNzZXJ0X2ltcGxlbWVudHMoUlRDUnRwU2VuZGVy
LmdldENhcGFiaWxpdGllcygndmlkZW8nKS5jb2RlY3MuZmluZChjID0+IGMubWltZVR5cGUgPT09
ICd2aWRlby9IMjY0JyksICdIMjY0IG5vdCBzdXBwb3J0ZWQnKTsKIAotICBjb25zdCByaWRzID0g
WzAsIDEsIDJdOworICBjb25zdCByaWRzID0gWzAsIDFdOwogICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAg
IGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMi5jbG9zZSgpKTsKIAogICByZXR1cm4gbmVnb3RpYXRlU2ltdWxjYXN0QW5kV2FpdEZv
clZpZGVvKHQsIHJpZHMsIHBjMSwgcGMyLCB7bWltZVR5cGU6ICd2aWRlby9IMjY0J30pOwotfSwg
J0gyNjQgc2ltdWxjYXN0IHNldHVwIHdpdGggdGhyZWUgc3BhdGlhbCBsYXllcnMnKTsKK30sICdI
MjY0IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHR3byBzcGF0aWFsIGxheWVycycpOwogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9z
ZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy5odG1sCmluZGV4IGY3NTRjNjNmZmU5ZDQ3NGEwZWE4
NGI0MDNjZDdiNWVkN2JhYWUxYTIuLjFhNzQzNzFiZmI2ZDcwMTY1YTQzMzYwN2VlYzYyYjU5MDll
NmRmNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Np
bXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy5odG1sCkBAIC0yMiw3ICsyMiw3IEBA
IGFzeW5jIGZ1bmN0aW9uIHF1ZXJ5UmVjZWl2ZXJTdGF0cyhwYykgewogfQogCiBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHJpZHMgPSBbMCwgMSwgMl07CisgIGNvbnN0IHJpZHMg
PSBbMCwgMV07CiAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0
dHBzLmh0bWwKaW5kZXggZTM1NjdlNjFjMjFkMWI2OGU1NDlmYzhiMDQ1YjQ4ZWE5YjA3ZWNjNS4u
OTQxNDVkMGM3OTRlZTMzY2E0YmFmZTAwY2ZmMmUwODExY2ZmZTJlMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0
L3ZwOC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMuaHRtbApAQCAtMTIsMTIgKzEyLDEy
IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgYXNzZXJ0X2ltcGxlbWVudHMoJ2dldENh
cGFiaWxpdGllcycgaW4gUlRDUnRwU2VuZGVyLCAnUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGll
cyBub3Qgc3VwcG9ydGVkJyk7CiAgIGFzc2VydF9pbXBsZW1lbnRzKFJUQ1J0cFNlbmRlci5nZXRD
YXBhYmlsaXRpZXMoJ3ZpZGVvJykuY29kZWNzLmZpbmQoYyA9PiBjLm1pbWVUeXBlID09PSAndmlk
ZW8vVlA4JyksICdWUDggbm90IHN1cHBvcnRlZCcpOwogCi0gIGNvbnN0IHJpZHMgPSBbMCwgMSwg
Ml07CisgIGNvbnN0IHJpZHMgPSBbMCwgMV07CiAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOwogCiAgIHJldHVybiBuZWdvdGlhdGVTaW11bGNhc3RBbmRXYWl0Rm9yVmlkZW8o
dCwgcmlkcywgcGMxLCBwYzIsIHttaW1lVHlwZTogJ3ZpZGVvL1ZQOCd9KTsKLX0sICdWUDggc2lt
dWxjYXN0IHNldHVwIHdpdGggdGhyZWUgc3BhdGlhbCBsYXllcnMnKTsKK30sICdWUDggc2ltdWxj
YXN0IHNldHVwIHdpdGggdHdvIHNwYXRpYWwgbGF5ZXJzJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Rv
b2xzL3BhY2thZ2UuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Rvb2xzL3BhY2thZ2UuanNvbgppbmRleCBlMGMxY2ZkYTNlODE4YWVlZDUz
OTg3OGQ4ZWY2N2VjMmRkOTkxNjM3Li5mMjZjZmNjMTQyMWJmOGY5ZWNlZWI5ZjdjMTc0NmZmMjZm
Yjc5MzJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy90b29scy9wYWNrYWdlLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdG9vbHMvcGFja2FnZS5qc29uCkBAIC02
LDEwICs2LDEwIEBACiAgICAgImxpbnQiOiAiZXNsaW50IC1jIC5lc2xpbnRyYy5qcyAuLi8qLmh0
bWwgLi4vKi5qcyIKICAgfSwKICAgImRldkRlcGVuZGVuY2llcyI6IHsKLSAgICAiZXNsaW50Ijog
Il40LjExLjAiLAorICAgICJlc2xpbnQiOiAiXjcuMjQuMCIsCiAgICAgImVzbGludC1wbHVnaW4t
aHRtbCI6ICJeNC4wLjAiLAogICAgICJqc2NvZGVzaGlmdCI6ICJeMC41LjEiLAotICAgICJqc2Rv
bSI6ICJeMTEuMTEuMCIKKyAgICAianNkb20iOiAiXjE2LjUuMyIKICAgfSwKICAgImxpY2Vuc2Ui
OiAiQlNEIiwKICAgInByaXZhdGUiOiB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQu
bG9nCmluZGV4IDUxNGI2MWZmMWVkNjMwODY4YmRmMzU0ZGJjYmNiZTAxMzgzZmViY2IuLjc5YTA4
MWRlYTY4Njk0NDI4NDFhMzg0NzE1OWQ1MzZkZTRiM2FiNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3czYy1pbXBvcnQubG9nCkBAIC0zMSw2ICszMSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5u
ZWwtYmluYXJ5VHlwZS53aW5kb3cuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1idWZmZXJlZEFtb3VudC5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0
YUNoYW5uZWwtY2xvc2UuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVs
LWlkLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLWJsb2Itb3JkZXIuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQu
aHRtbApAQCAtNDAsOCArNDEsNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Vycm9yLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDYW5kaWRh
dGUtY29uc3RydWN0b3IuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUtcGFpci5odHRw
cy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi1oZWxwZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5z
aW9uLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLVNMRC1TUkQtdGlt
aW5nLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGQtdHJhY2stbm8tZGVhZGxvY2suaHR0cHMu
aHRtbApAQCAtNTIsNiArNTEsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRy
YW5zY2VpdmVyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5Ucmlja2xlSWNlQ2FuZGlkYXRl
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tY2FuZGlkYXRlLWluLXNkcC5odHRwcy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tY2FwdHVyZS12aWRlby5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0
YXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25zdHJ1Y3Rvci5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tY3JlYXRlQW5zd2VyLmh0bWwKQEAgLTc4LDYgKzc4LDggQEAgTGlzdCBvZiBmaWxlczoKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS1saW5lYXIuaHR0cHMu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVsYXkt
Y2FudmFzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdGUtdHJhY2stbXV0ZS5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tcmVtb3ZlVHJhY2suaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJl
c3RhcnRJY2Utb25uZWdvdGlhdGlvbm5lZWRlZC5odHRwcy5odG1sCkBAIC0xMzQsNyArMTM2LDYg
QEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENTdGF0cy1oZWxwZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENUcmFja0V2ZW50LWNvbnN0cnVjdG9yLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENUcmFja0V2ZW50LWZpcmUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL2RhdGFjaGFubmVsLWVtcHR5c3RyaW5nLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9kaWN0aW9uYXJ5LWhl
bHBlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL2dldHN0YXRzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9oaXN0b3JpY2FsLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Rl
c3RzLW9wdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgppbmRleCAy
MjUxY2ZkOTU1NTUxZjhiM2Y1MTA2Y2E0Nzk0MzE4OGUyOTdjNmE4Li4wNjY3MTMwZTBiZGJlOTQx
ZDBmNzkwYTVlYTdjNzlhY2ZlOTg4OTY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90ZXN0cy1v
cHRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCkBAIC0zOTk4
LDYgKzM5OTgsOSBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy1leHRlbnNpb25zL1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS1zZW5kZXJDYXB0dXJlVGlt
ZU9mZnNldC5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAorICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1zdGF0cy9zdXBwb3J0ZWQtc3RhdHMuaHRtbCI6
IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1vbnRvbmVjaGFuZ2UtbG9uZy5odG1sIjogWwog
ICAgICAgICAic2xvdyIKICAgICBdLApAQCAtNDAxMyw2ICs0MDE2LDkgQEAKICAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UuaHRt
bCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtaWNlUmVzdGFydC5odG1sIjogWworICAg
ICAgICAic2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAg
IF0sCkBAIC00MDIyLDYgKzQwMjgsOSBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRpbWluZy5odHRwcy5odG1s
IjogWwogICAgICAgICAic2xvdyIKICAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYXB0dXJlLXZpZGVvLmh0dHBzLmh0
bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0
bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCkBAIC00MDQzLDYgKzQwNTIsMTIgQEAKICAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAg
ICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC5odG1sIjogWworICAgICAgICAic2xv
dyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1yZWxheS1jYW52YXMuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNs
b3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUuaHR0cHMuaHRtbCI6IFsKICAgICAg
ICAgInNsb3ciCiAgICAgXSwKQEAgLTQwODUsNiArNDEwMCwxMiBAQAogICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2UtdWZyYWdwd2QuaHRtbCI6
IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0ZS5odG1sIjogWworICAgICAgICAi
c2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC92cDgtZm10cC5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAogICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMu
aHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438225</attachid>
            <date>2021-09-15 01:51:45 -0700</date>
            <delta_ts>2021-09-15 08:35:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229549-20210915105129.patch</filename>
            <type>text/plain</type>
            <size>278259</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzgyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGEwNDNlYjM0MTY2N2E5MTkxMzAw
ZDA1MzEwYjdlY2VkMzlkZWYxYy4uOTkxODc5NTA3ZGFlNzI2YTBiN2FhMDRjNTNhZTJjYWQ4NjUz
N2JkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTE1ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN5bmMgV1BUIHdlYnJ0YyB0ZXN0cyBmcm9t
IHVwc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjk1NDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyNjcwMjM2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuc2tpcHBpbmcgc29tZSB0ZXN0
cyB0aGF0IGFyZSBubyBsb25nZXIgZmxha3kuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHRl
c3RzLW9wdGlvbnMuanNvbjoKKwogMjAyMS0wOS0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgVXNlIGV2ZW50IHF1ZXVlIHRvIGZpcmUgUlRDUGVlckNvbm5l
Y3Rpb24gZXZlbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA4NGYxZGY2OGFi
M2IyMjZhYTE4NWJmZWQxYjgwZmI3Mzk3N2NjNGUyLi5lZWJiZWFmYmU4MjVjNzcyYzBkMTc3NGQz
MzAzNzkyMTBhYzkxODE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMTcgQEAKKzIwMjEtMDktMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIFJlc3luYyBXUFQgd2VicnRjIHRlc3RzIGZyb20gdXBzdHJlYW0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTU0OQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODI2NzAyMzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VT
ZXJ2ZXJzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xv
c2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
RGF0YUNoYW5uZWwtY2xvc2UuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbC1zZW5kLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtc3RhdGUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlvblN0
YXRlLWNhbmRpZGF0ZS1wYWlyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24taGVscGVyLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNw
b3J0LWV4dGVuc2lvbi5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VD
YW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
YWRkSWNlQ2FuZGlkYXRlLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tY2FwdHVyZS12aWRlby5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRv
UmVjZWl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2VpdmUuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVs
dEljZVNlcnZlcnMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWdldElkZW50aXR5QXNzZXJ0aW9uLnN1Yi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1oZWxwZXIuanM6CisgICAgICAgIChkb0V4Y2hhbmdlKToKKyAgICAgICAgKGFzeW5j
IGxpc3RlbkZvclNTUkNzKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0
aW9uU3RhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhl
cmluZ1N0YXRlLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0
b3J5LWdldFN0YXRzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZWVySWRlbnRpdHktZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBl
ZXJJZGVudGl0eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxp
bmVhci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXBsYW4tYi1pcy1ub3Qtc3VwcG9ydGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMt
bm90LXN1cHBvcnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbGF5LWNhbnZhcy5odHRwcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcmVsYXktY2FudmFzLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUuaHR0
cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLWFuc3dlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERl
c2NyaXB0aW9uLW9mZmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wcmFuc3dlci5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVz
Y3JpcHRpb24tdHJhY2tzLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRlZ3JhZGF0aW9uUHJlZmVy
ZW5jZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1z
ZXREaXJlY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldERpcmVjdGlvbi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0
b3AtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UnRwVHJhbnNjZWl2ZXItc3RvcC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1N0YXRzLWhlbHBlci5qczoKKyAgICAgICAgKHZhbGlkYXRlQ29k
ZWNTdGF0cyk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5l
bC1lbXB0eXN0cmluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0c3RhdHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2lkZW50aXR5LWhlbHBlci5zdWIuanM6IEFk
ZGVkLgorICAgICAgICAocGFyc2VBc3NlcnRpb25SZXN1bHQpOgorICAgICAgICAoZ2V0SWRwRG9t
YWlucyk6CisgICAgICAgIChhc3NlcnRfcnRjZXJyb3JfcmVqZWN0aW9uKToKKyAgICAgICAgKHNl
dCBob3N0U3RyaW5nKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1l
ZGlhLWNhbGwuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb21p
c2VzLWNhbGwuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL1JFQURNRS50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9kdGxzLXNldHVwLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9kdGxzLXNldHVwLmh0dHBzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92
ZXItZGF0YWNoYW5uZWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1j
bG9ja3JhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3J0cC1jbG9ja3JhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3J0cC1leHRlbnNpb24tc3VwcG9ydC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1wYXlsb2FkdHlwZXMuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9udC1k
b250LWRvbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9udC1kb250LWRvbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdnA4LWZtdHAt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3ZwOC1mbXRwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLW5vLXNzcmNzLmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0
L2Jhc2ljLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9z
aW11bGNhc3QvZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJh
bWV0ZXJzLWFjdGl2ZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxj
YXN0L3ZwOC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
dG9vbHMvcGFja2FnZS5qc29uOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
dzNjLWltcG9ydC5sb2c6CisKIDIwMjEtMDktMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIFVzZSBldmVudCBxdWV1ZSB0byBmaXJlIFJUQ1BlZXJDb25uZWN0
aW9uIGV2ZW50cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTIxYjE5Njk2ZDM5OTBmNzM3ZjhlYmU2
OWVkZDQxNTMxNTYyMjkyMy4uODM3Nzg0MzFmZjA2NjlkOTE1YjExYjFiOTg1OTc0ZGM3ZDNmZDk1
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTk3LDIwICsyMTk3LDExIEBAIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVn
b3RpYXRpb24tc3RyCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS1saW5lYXIuaHR0
cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKICMgU2tpcCB0aW1pbmcgb3V0IHRlc3QKLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJl
bW90ZURlc2NyaXB0aW9uLXRyYWNrcy5odHRwcy5odG1sIFsgU2tpcCBdCisKIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZS10cmFj
ay1tdXRlLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJ1ZmZlcmVkQW1vdW50Lmh0bWwgWyBTa2lwIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0
ZS1jYW5kaWRhdGUtcGFpci5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMu
aHR0cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tb25pY2VjYW5kaWRhdGVlcnJvci5odHRwcy5odG1sIFsgU2tp
cCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENUcmFja0V2ZW50
LWZpcmUuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvZHRscy1maW5nZXJwcmludC12YWxpZGF0aW9uLmh0bWwgWyBTa2lwIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9iYXNpYy5odHRw
cy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9z
aW11bGNhc3QvZ2V0U3RhdHMuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRtbCBbIFNraXAgXQot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3NldFBhcmFt
ZXRlcnMtYWN0aXZlLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMuaHRtbCBbIFNraXAgXQotCiBmYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNsb3NlZC1zdGF0ZS5odG1sIFsgU2tpcCBd
CiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWljZWNvbm5lY3Rpb25zdGF0ZWNo
YW5nZS1ldmVudC5odG1sIFsgU2tpcCBdCiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLW1vcmUtbWVkaWEtdG8tbmVnb3RpYXRlLmh0bWwgWyBTa2lwIF0KQEAgLTIyMTgsNiArMjIw
OSw5IEBAIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tb3ZlcmxvYWRlZC1vcGVy
YXRpb25zLXBhcmFtcy5odG1sIFsgU2tpcCBdCiBmYXN0L21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRl
ci1yZXBsYWNlVHJhY2suaHRtbCBbIFNraXAgXQogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1pbnNwZWN0LW9mZmVyLWJ1bmRsZVBvbGljeS1idW5kbGUtb25seS5odG1sIFsgRmFp
bHVyZSBdCiAKKyMgTWlzc2luZyBBUEkgc3VwcG9ydC4KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhcHR1cmUtdmlkZW8uaHR0cHMuaHRt
bCBbIFNraXAgXQorCiAjIE9ubHkgaU9TIFdLMSBoYXMgdGVzdFJ1bm5lci5zZXRQYWdlUGF1c2Vk
LgogZmFzdC9kb20vdGltZXItZmlyZS1hZnRlci1wYWdlLXBhdXNlLmh0bWwgWyBTa2lwIF0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhw
ZWN0YXRpb25zLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9y
dC1leHBlY3RhdGlvbnMuanNvbgppbmRleCA3NDUzN2Y4YTBlZjM0NmFkZmI4ODZjMWE3OGVmZDk5
MDI4Yjc1YzA5Li5iNDcwNGJlZDA5ZmI1ZDc5ZDk5NmU0NTQxODIyNWM2MzcwZDQzY2Y0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3Rh
dGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9y
dC1leHBlY3RhdGlvbnMuanNvbgpAQCAtNDY2LDUgKzQ2Niw2IEBACiAgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrbGV0cyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3gt
ZnJhbWUtb3B0aW9ucyI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy94aHIiOiAi
aW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS90ZXN0L2h0bWwvaW5mcmFzdHJ1Y3R1cmUiOiAi
aW1wb3J0IgorICAgICJ3ZWItcGxhdGZvcm0vdGVzdC9odG1sL2luZnJhc3RydWN0dXJlIjogImlt
cG9ydCIsIAorICAgICJ3ZWJydGMtcGxhdGZvcm0tdGVzdHMvd2VicnRjIjogImltcG9ydCIKIH0K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNl
cnZlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dApp
bmRleCAzODBjNDdjYjdhZGRmMTA2OTY3YzJjMGZlMTFjN2NlZDE1NTY5YWEwLi5iMTYxNzE3Mjhi
NTA1NjJiMGVjMDUyNDExZjI1M2U3NDIzMzI0NWYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWlj
ZVNlcnZlcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy1leHBlY3Rl
ZC50eHQKQEAgLTE0MCwxOCArMTQwLDQgQEAgRkFJTCBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykg
LSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFzc3dvcmQsIGFuZAogICAgICAg
ICAgIGFjY2Vzc1Rva2VuOiAnJwogICAgICAgICB9CiAgICAgICB9XSB9KSIgZGlkIG5vdCB0aHJv
dwotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVy
LCBjcmVkZW50aWFsVHlwZSBvYXV0aCwgYW5kIHN0cmluZyBjcmVkZW50aWFsIHNob3VsZCB0aHJv
dyBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9Pgot
ICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKLSAgICAgICAgdXJsczogJ3R1cm5zOnR1cm4u
ZXhhbXBsZS5vcmcnLAotICAgICAgICBjcmVkZW50aWFsVHlwZTogJ29hdXRoJywKLSAgICAgICAg
dXNlcm5hbWU6ICd1c2VyJywKLSAgICAgICAgY3JlZGVudGlhbDogJ2NyZWQnCi0gICAgICB9XSB9
KSIgZGlkIG5vdCB0aHJvdwotRkFJTCBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIHR1
cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1dGgsIGFuZCBzdHJpbmcgY3JlZGVudGlhbCBz
aG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlv
biAiKCkgPT4KLSAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7Ci0gICAgICAgIHVybHM6ICd0
dXJuczp0dXJuLmV4YW1wbGUub3JnJywKLSAgICAgICAgY3JlZGVudGlhbFR5cGU6ICdvYXV0aCcs
Ci0gICAgICAgIHVzZXJuYW1lOiAndXNlcicsCi0gICAgICAgIGNyZWRlbnRpYWw6ICdjcmVkJwot
ICAgICAgfV0gfSkiIGRpZCBub3QgdGhyb3cKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VT
ZXJ2ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMuaHRtbAppbmRleCAxY2JmMWQ2YzFk
YTQ3YjgwZDliM2Q3MTczZjc4MDYyZjJlNDliZjEwLi4zNmYxMjc3Njc4YWMzZTQwMmU2MGUxMjU0
YzM5YmMwZDRkODRlODUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMuaHRtbApAQCAtMzcwLDM2ICszNzAsNCBAQAogICAg
ICAgfV0gfSkpOwogICB9LCAnd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3
b3JkLCBhbmQgb2JqZWN0IGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJv
cicpOwogCi0gIC8qCi0gICAgNC4zLjIuICBUbyBzZXQgYSBjb25maWd1cmF0aW9uCi0gICAgICAx
MS42LiBJZiBzY2hlbWUgbmFtZSBpcyB0dXJuIG9yIHR1cm5zLCBhbmQgc2VydmVyLmNyZWRlbnRp
YWxUeXBlIGlzICJvYXV0aCIsCi0gICAgICAgICAgICBhbmQgc2VydmVyLmNyZWRlbnRpYWwgaXMg
bm90IGFuIFJUQ09BdXRoQ3JlZGVudGlhbCwgdGhlbiB0aHJvdyBhbgotICAgICAgICAgICAgSW52
YWxpZEFjY2Vzc0Vycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICovCi0gIGNvbmZpZ190
ZXN0KG1ha2VQYyA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRBY2Nlc3NFcnJv
cicsICgpID0+Ci0gICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewotICAgICAgICB1cmxzOiAn
dHVybnM6dHVybi5leGFtcGxlLm9yZycsCi0gICAgICAgIGNyZWRlbnRpYWxUeXBlOiAnb2F1dGgn
LAotICAgICAgICB1c2VybmFtZTogJ3VzZXInLAotICAgICAgICBjcmVkZW50aWFsOiAnY3JlZCcK
LSAgICAgIH1dIH0pKTsKLSAgfSwgJ3dpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBv
YXV0aCwgYW5kIHN0cmluZyBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJy
b3InKTsKLQotICAvKgotICAgIFRlc3RlZAotICAgICAgNC4zLjIuICBUbyBzZXQgYSBjb25maWd1
cmF0aW9uCi0gICAgICAgIDExLjEtNi4KLQotICAgIFVudGVzdGFibGUKLSAgICAgIDQuMy4yLiAg
VG8gc2V0IGEgY29uZmlndXJhdGlvbgotICAgICAgICAxMS43LiAgQXBwZW5kIHNlcnZlciB0byB2
YWxpZGF0ZWRTZXJ2ZXJzLgotCi0gICAgQ292ZXJhZ2UgUmVwb3J0Ci0gICAgICBUZXN0ZWQgICAg
ICAgICA5Ci0gICAgICBOb3QgVGVzdGVkICAgICAwCi0gICAgICBVbnRlc3RhYmxlICAgICAxCi0g
ICAgICBUb3RhbCAgICAgICAgIDEwCi0gICAqLwotCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFD
aGFubmVsLWJ1ZmZlcmVkQW1vdW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJ1ZmZlcmVkQW1v
dW50LWV4cGVjdGVkLnR4dAppbmRleCA0MmI2YzYzMjBlOWVlMzcyMTYxYmJiMjBhNTZkMTA0MDBk
YjI5NDhiLi44MDVmOGFmNDhjMDg4MDYyYThhNjQwOGZlNzk5ZmY3MjIwMTZmNzU5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENEYXRhQ2hhbm5lbC1idWZmZXJlZEFtb3VudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwt
YnVmZmVyZWRBbW91bnQtZXhwZWN0ZWQudHh0CkBAIC0xLDEzICsxLDI2IEBACiAKLUhhcm5lc3Mg
RXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1GQUlMIGJ1ZmZlcmVkQW1vdW50IHNo
b3VsZCBpbmNyZWFzZSB0byBieXRlIGxlbmd0aCBvZiBlbmNvZGVkIHVuaWNvZGUgc3RyaW5nIHNl
bnQgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGJ1ZmZlcmVkQW1vdW50IHRvIGJlIHRoZSBieXRlIGxl
bmd0aCBvZiB0aGUgdW5pY29kZSBzdHJpbmcgZXhwZWN0ZWQgMTIgYnV0IGdvdCAwCi1GQUlMIGJ1
ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSB0byBieXRlIGxlbmd0aCBvZiBidWZmZXIgc2Vu
dCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgYnVmZmVyZWRBbW91bnQgdG8gaW5jcmVhc2UgdG8gYnl0
ZSBsZW5ndGggb2Ygc2VudCBidWZmZXIgZXhwZWN0ZWQgNSBidXQgZ290IDAKLUZBSUwgYnVmZmVy
ZWRBbW91bnQgc2hvdWxkIGluY3JlYXNlIHRvIHNpemUgb2YgYmxvYiBzZW50IHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIk5vdFN1cHBvcnRlZEVy
cm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIgotRkFJTCBidWZmZXJlZEFtb3Vu
dCBzaG91bGQgaW5jcmVhc2UgYnkgYnl0ZSBsZW5ndGggZm9yIGVhY2ggbWVzc2FnZSBzZW50IGFz
c2VydF91bnJlYWNoZWQ6IFVuZXhwZWN0ZWQgcHJvbWlzZSByZWplY3Rpb246IEVycm9yOiBhc3Nl
cnRfZXF1YWxzOiBFeHBlY3QgYnVmZmVyZWRBbW91bnQgdG8gYmUgdGhlIHRvdGFsIGxlbmd0aCBv
ZiBhbGwgbWVzc2FnZXMgcXVldWVkIHRvIHNlbmQgZXhwZWN0ZWQgNSBidXQgZ290IDAgUmVhY2hl
ZCB1bnJlYWNoYWJsZSBjb2RlCi1USU1FT1VUIERhdGEgY2hhbm5lbCBidWZmZXJlZGFtb3VudGxv
dyBldmVudCBmaXJlcyBhZnRlciBzZW5kKCkgaXMgY29tcGxldGUgVGVzdCB0aW1lZCBvdXQKLU5P
VFJVTiBEYXRhIGNoYW5uZWwgYnVmZmVyZWRhbW91bnQgaXMgZGF0YS5sZW5ndGggb24gc2VuZChk
YXRhKQotTk9UUlVOIERhdGEgY2hhbm5lbCBidWZmZXJlZGFtb3VudCByZXR1cm5zIHRoZSBzYW1l
IGFtb3VudCBpZiBubyBtb3JlIGRhdGEgaXMgc2VudCBvbiB0aGUgY2hhbm5lbAotTk9UUlVOIERh
dGEgY2hhbm5lbCBidWZmZXJlZGFtb3VudGxvdyBldmVudCBmaXJlcyBvbmx5IG9uY2UgYWZ0ZXIg
bXVsdGlwbGUgY29uc2VjdXRpdmUgc2VuZCgpIGNhbGxzCi1OT1RSVU4gRGF0YSBjaGFubmVsIGJ1
ZmZlcmVkYW1vdW50bG93IGV2ZW50IGZpcmVzIGFmdGVyIGVhY2ggc2VudCBtZXNzYWdlCitQQVNT
IGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IGluaXRpYWwgdmFsdWUgc2hvdWxkIGJlIDAgZm9y
IGJvdGggcGVlcnMKK1BBU1MgZGF0YWNoYW5uZWwgYnVmZmVyZWRBbW91bnQgc2hvdWxkIGluY3Jl
YXNlIHRvIGJ5dGUgbGVuZ3RoIG9mIGVuY29kZWR1bmljb2RlIHN0cmluZyBzZW50CitQQVNTIGRh
dGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSB0byBieXRlIGxlbmd0aCBv
ZiBidWZmZXIgc2VudAorUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQgaW5j
cmVhc2UgdG8gc2l6ZSBvZiBibG9iIHNlbnQKK1BBU1MgZGF0YWNoYW5uZWwgYnVmZmVyZWRBbW91
bnQgc2hvdWxkIGluY3JlYXNlIGJ5IGJ5dGUgbGVuZ3RoIGZvciBlYWNoIG1lc3NhZ2Ugc2VudAor
UEFTUyBkYXRhY2hhbm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQgbm90IGRlY3JlYXNlIGltbWVk
aWF0ZWx5IGFmdGVyIGluaXRpYXRpbmcgY2xvc3VyZQorUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJl
ZEFtb3VudCBzaG91bGQgbm90IGRlY3JlYXNlIGFmdGVyIGNsb3NpbmcgdGhlIHBlZXIgY29ubmVj
dGlvbgorUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJlZGFtb3VudGxvdyBldmVudCBmaXJlcyBhZnRl
ciBzZW5kKCkgaXMgY29tcGxldGUKK1BBU1MgZGF0YWNoYW5uZWwgYnVmZmVyZWRhbW91bnQgaXMg
ZGF0YS5sZW5ndGggb24gc2VuZChkYXRhKQorUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJlZGFtb3Vu
dCByZXR1cm5zIHRoZSBzYW1lIGFtb3VudCBpZiBubyBtb3JlIGRhdGEgaXMKK1BBU1MgZGF0YWNo
YW5uZWwgYnVmZmVyZWRhbW91bnRsb3cgZXZlbnQgZmlyZXMgb25seSBvbmNlIGFmdGVyIG11bHRp
cGxlIGNvbnNlY3V0aXZlIHNlbmQoKSBjYWxscworUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJlZGFt
b3VudGxvdyBldmVudCBmaXJlcyBhZnRlciBlYWNoIHNlbnQgbWVzc2FnZQorUEFTUyBuZWdvdGlh
dGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IGluaXRpYWwgdmFsdWUgc2hvdWxkIGJlIDAg
Zm9yIGJvdGggcGVlcnMKK1BBU1MgbmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBidWZmZXJlZEFtb3Vu
dCBzaG91bGQgaW5jcmVhc2UgdG8gYnl0ZSBsZW5ndGggb2YgZW5jb2RlZHVuaWNvZGUgc3RyaW5n
IHNlbnQKK1BBU1MgbmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQg
aW5jcmVhc2UgdG8gYnl0ZSBsZW5ndGggb2YgYnVmZmVyIHNlbnQKK1BBU1MgbmVnb3RpYXRlZCBk
YXRhY2hhbm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQgaW5jcmVhc2UgdG8gc2l6ZSBvZiBibG9i
IHNlbnQKK1BBU1MgbmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQg
aW5jcmVhc2UgYnkgYnl0ZSBsZW5ndGggZm9yIGVhY2ggbWVzc2FnZSBzZW50CitQQVNTIG5lZ290
aWF0ZWQgZGF0YWNoYW5uZWwgYnVmZmVyZWRBbW91bnQgc2hvdWxkIG5vdCBkZWNyZWFzZSBpbW1l
ZGlhdGVseSBhZnRlciBpbml0aWF0aW5nIGNsb3N1cmUKK1BBU1MgbmVnb3RpYXRlZCBkYXRhY2hh
bm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQgbm90IGRlY3JlYXNlIGFmdGVyIGNsb3NpbmcgdGhl
IHBlZXIgY29ubmVjdGlvbgorUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkYW1v
dW50bG93IGV2ZW50IGZpcmVzIGFmdGVyIHNlbmQoKSBpcyBjb21wbGV0ZQorUEFTUyBuZWdvdGlh
dGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkYW1vdW50IGlzIGRhdGEubGVuZ3RoIG9uIHNlbmQoZGF0
YSkKK1BBU1MgbmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBidWZmZXJlZGFtb3VudCByZXR1cm5zIHRo
ZSBzYW1lIGFtb3VudCBpZiBubyBtb3JlIGRhdGEgaXMKK1BBU1MgbmVnb3RpYXRlZCBkYXRhY2hh
bm5lbCBidWZmZXJlZGFtb3VudGxvdyBldmVudCBmaXJlcyBvbmx5IG9uY2UgYWZ0ZXIgbXVsdGlw
bGUgY29uc2VjdXRpdmUgc2VuZCgpIGNhbGxzCitQQVNTIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwg
YnVmZmVyZWRhbW91bnRsb3cgZXZlbnQgZmlyZXMgYWZ0ZXIgZWFjaCBzZW50IG1lc3NhZ2UKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2Ut
ZXhwZWN0ZWQudHh0CmluZGV4IDNlMTY5ZDYzMGM1ZDFkZjFkOGI5MTExMzIzZDIxODNlNTUxMjI5
N2YuLjZhNGZmNzdiNzI5Y2VhMGYwNWIwMzYwODBmNmI3OTdmZmQ5NmExOGEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Rh
dGFDaGFubmVsLWNsb3NlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1jbG9zZS1leHBlY3Rl
ZC50eHQKQEAgLTMsOCArMywxMCBAQCBQQVNTIENsb3NlIGRhdGFjaGFubmVsIGNhdXNlcyBvbmNs
b3NpbmcgYW5kIG9uY2xvc2UgdG8gYmUgY2FsbGVkCiBQQVNTIENsb3NlIGRhdGFjaGFubmVsIGNh
dXNlcyBjbG9zaW5nIGFuZCBjbG9zZSBldmVudCB0byBiZSBjYWxsZWQKIFBBU1MgQ2xvc2UgcGVl
cmNvbm5lY3Rpb24gY2F1c2VzIGNsb3NlIGV2ZW50IGFuZCBlcnJvciB0byBiZSBjYWxsZWQgb24g
ZGF0YWNoYW5uZWwKIFBBU1MgQ2xvc2UgcGVlcmNvbm5lY3Rpb24gYWZ0ZXIgZGF0YWNoYW5uZWwg
Y2xvc2UgY2F1c2VzIG5vIGV2ZW50cworUEFTUyBDbG9zZSBwZWVyY29ubmVjdGlvbiBjYXVzZXMg
Y2xvc2UgZXZlbnQgYW5kIGVycm9yIG9uIG1hbnkgY2hhbm5lbHMsIGRhdGFjaGFubmVsCiBQQVNT
IENsb3NlIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgY2F1c2VzIG9uY2xvc2luZyBhbmQgb25jbG9z
ZSB0byBiZSBjYWxsZWQKIFBBU1MgQ2xvc2UgbmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBjYXVzZXMg
Y2xvc2luZyBhbmQgY2xvc2UgZXZlbnQgdG8gYmUgY2FsbGVkCiBQQVNTIENsb3NlIHBlZXJjb25u
ZWN0aW9uIGNhdXNlcyBjbG9zZSBldmVudCBhbmQgZXJyb3IgdG8gYmUgY2FsbGVkIG9uIG5lZ290
aWF0ZWQgZGF0YWNoYW5uZWwKIFBBU1MgQ2xvc2UgcGVlcmNvbm5lY3Rpb24gYWZ0ZXIgbmVnb3Rp
YXRlZCBkYXRhY2hhbm5lbCBjbG9zZSBjYXVzZXMgbm8gZXZlbnRzCitQQVNTIENsb3NlIHBlZXJj
b25uZWN0aW9uIGNhdXNlcyBjbG9zZSBldmVudCBhbmQgZXJyb3Igb24gbWFueSBjaGFubmVscywg
bmVnb3RpYXRlZCBkYXRhY2hhbm5lbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1jbG9zZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
RGF0YUNoYW5uZWwtY2xvc2UuaHRtbAppbmRleCBjZDRhY2UyYTgzNmJlMmM5ZjE4ZGVjYTQ4Yzhj
MDFmNWUxY2RmZjFkLi5lMmE1YmE3NzI0NWNlNGQ4MjA0ZjQ3M2NmZWQxYzEyMjM3NDE2NjdlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENEYXRhQ2hhbm5lbC1jbG9zZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwK
QEAgLTQ1LDcgKzQ1LDcgQEAgZm9yIChjb25zdCBvcHRpb25zIG9mIFt7fSwge25lZ290aWF0ZWQ6
IHRydWUsIGlkOiAwfV0pIHsKICAgICBhc3NlcnRfdHJ1ZShjbG9zaW5nU2VlbiwgJ0Nsb3Npbmcg
ZXZlbnQgd2FzIHNlZW4nKTsKICAgfSwgYENsb3NlICR7bW9kZX0gY2F1c2VzIGNsb3NpbmcgYW5k
IGNsb3NlIGV2ZW50IHRvIGJlIGNhbGxlZGApOwogCi0gIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsK
ICAgICBjb25zdCBbY2hhbm5lbDEsIGNoYW5uZWwyXSA9IGF3YWl0IGNyZWF0ZURhdGFDaGFubmVs
UGFpcih0LCBvcHRpb25zLCBwYzEpOwpAQCAtMTAwLDUgKzEwMCw4MSBAQCBmb3IgKGNvbnN0IG9w
dGlvbnMgb2YgW3t9LCB7bmVnb3RpYXRlZDogdHJ1ZSwgaWQ6IDB9XSkgewogICAgIHBjMS5jbG9z
ZSgpOwogICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdC5zdGVwX3RpbWVvdXQocmVz
b2x2ZSwgMTApKTsKICAgfSwgYENsb3NlIHBlZXJjb25uZWN0aW9uIGFmdGVyICR7bW9kZX0gY2xv
c2UgY2F1c2VzIG5vIGV2ZW50c2ApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
ICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgICBwYzEuY3Jl
YXRlRGF0YUNoYW5uZWwoJ25vdC1jb3VudGVkJywgb3B0aW9ucyk7CisgICAgY29uc3QgdG9rZW5E
YXRhQ2hhbm5lbCA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgcGMyLm9uZGF0YWNo
YW5uZWwgPSByZXNvbHZlOworICAgIH0pOworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEs
IHBjMik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisgICAgaWYg
KCFvcHRpb25zLm5lZ290aWF0ZWQpIHsKKyAgICAgIGF3YWl0IHRva2VuRGF0YUNoYW5uZWw7Cisg
ICAgfQorICAgIGxldCBjbG9zZUV4cGVjdGVkQ291bnQgPSAwOworICAgIGxldCBlcnJvckV4cGVj
dGVkQ291bnQgPSAwOworICAgIGxldCByZXNvbHZlQ291bnRJc1plcm87CisgICAgbGV0IHdhaXRG
b3JDb3VudElzWmVybyA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgcmVzb2x2ZUNv
dW50SXNaZXJvID0gcmVzb2x2ZTsKKyAgICB9KTsKKyAgICBmb3IgKGxldCBpID0gMTsgaSA8PSAx
MDsgaSsrKSB7CisgICAgICBpZiAoJ2lkJyBpbiBvcHRpb25zKSB7CisgICAgICAgIG9wdGlvbnMu
aWQgPSBpOworICAgICAgfQorICAgICAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCcnLCBvcHRpb25z
KTsKKyAgICAgIGlmIChvcHRpb25zLm5lZ290aWF0ZWQpIHsKKyAgICAgICAgY29uc3QgY2hhbm5l
bCA9IHBjMi5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgb3B0aW9ucyk7CisgICAgICAgIGNoYW5uZWwu
YWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB0LnN0ZXBfZnVuYyhldmVudCA9PiB7CisgICAgICAg
ICAgYXNzZXJ0X3RydWUoZXZlbnQgaW5zdGFuY2VvZiBSVENFcnJvckV2ZW50LCAnZXJyb3IgZXZl
bnQgJyArIGV2ZW50KTsKKyAgICAgICAgICBlcnJvckV4cGVjdGVkQ291bnQgLT0gMTsKKyAgICAg
ICAgfSkpOworICAgICAgICBjaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2Nsb3NlJywgdC5zdGVw
X2Z1bmMoZXZlbnQgPT4geworICAgICAgICAgIGNsb3NlRXhwZWN0ZWRDb3VudCAtPSAxOworICAg
ICAgICAgIGlmIChjbG9zZUV4cGVjdGVkQ291bnQgPT0gMCkgeworICAgICAgICAgICAgcmVzb2x2
ZUNvdW50SXNaZXJvKCk7CisgICAgICAgICAgfQorICAgICAgICB9KSk7CisgICAgICB9IGVsc2Ug
eworICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICBwYzIu
b25kYXRhY2hhbm5lbCA9ICh7Y2hhbm5lbH0pID0+IHsKKyAgICAgICAgICAgIGNoYW5uZWwuYWRk
RXZlbnRMaXN0ZW5lcignZXJyb3InLCB0LnN0ZXBfZnVuYyhldmVudCA9PiB7CisgICAgICAgICAg
ICAgIGFzc2VydF90cnVlKGV2ZW50IGluc3RhbmNlb2YgUlRDRXJyb3JFdmVudCk7CisgICAgICAg
ICAgICAgIGVycm9yRXhwZWN0ZWRDb3VudCAtPSAxOworICAgICAgICAgICAgfSkpOworICAgICAg
ICAgICAgY2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCdjbG9zZScsIHQuc3RlcF9mdW5jKGV2ZW50
ID0+IHsKKyAgICAgICAgICAgICAgY2xvc2VFeHBlY3RlZENvdW50IC09IDE7CisgICAgICAgICAg
ICAgIGlmIChjbG9zZUV4cGVjdGVkQ291bnQgPT0gMCkgeworICAgICAgICAgICAgICAgIHJlc29s
dmVDb3VudElzWmVybygpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KSk7CisgICAg
ICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgIH0KKyAg
ICAgICsrY2xvc2VFeHBlY3RlZENvdW50OworICAgICAgKytlcnJvckV4cGVjdGVkQ291bnQ7Cisg
ICAgfQorICAgIGFzc2VydF9lcXVhbHMoY2xvc2VFeHBlY3RlZENvdW50LCAxMCk7CisgICAgLy8g
V2UgaGF2ZSB0byB3YWl0IHVudGlsIFNDVFAgaXMgY29ubmVjdGVkIGJlZm9yZSB3ZSBjbG9zZSwg
b3RoZXJ3aXNlCisgICAgLy8gdGhlcmUgd2lsbCBiZSBubyBzaWduYWwuCisgICAgLy8gVGhlIHN0
YXRlIGlzIG5vdCBhdmFpbGFibGUgdW5kZXIgUGxhbiBCLCBhbmQgdW5yZWxpYWJsZSBvbiBuZWdv
dGlhdGVkCisgICAgLy8gY2hhbm5lbHMuCisgICAgLy8gVE9ETyhidWdzLndlYnJ0Yy5vcmcvMTIy
NTkpOiBSZW1vdmUgZGVwZW5kZW5jeSBvbiAibmVnb3RpYXRlZCIKKyAgICBpZiAocGMxLnNjdHAg
JiYgIW9wdGlvbnMubmVnb3RpYXRlZCkgeworICAgICAgd2FpdEZvclN0YXRlKHBjMS5zY3RwLCAn
Y29ubmVjdGVkJyk7CisgICAgfSBlbHNlIHsKKyAgICAgIC8vIFVuZGVyIHBsYW4gQiwgd2UgZG9u
J3QgaGF2ZSBhIGR0bHMgdHJhbnNwb3J0IHRvIHdhaXQgb24sIHNvIGp1c3QKKyAgICAgIC8vIHdh
aXQgYSBiaXQuCisgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHQuc3RlcF90aW1l
b3V0KHJlc29sdmUsIDEwMCkpOworICAgIH0KKyAgICBwYzEuY2xvc2UoKTsKKyAgICBhd2FpdCB3
YWl0Rm9yQ291bnRJc1plcm87CisgICAgYXNzZXJ0X2VxdWFscyhjbG9zZUV4cGVjdGVkQ291bnQs
IDApOworICAgIGFzc2VydF9lcXVhbHMoZXJyb3JFeHBlY3RlZENvdW50LCAwKTsKKyAgfSwgYENs
b3NlIHBlZXJjb25uZWN0aW9uIGNhdXNlcyBjbG9zZSBldmVudCBhbmQgZXJyb3Igb24gbWFueSBj
aGFubmVscywgJHttb2RlfWApOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1p
Y2VSZXN0YXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmMxYTE4NzdmYmQ2NzRjYTBkNjVlN2VmMGYyNmVjZTA4OGJjMDNjNTQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pY2VSZXN0YXJ0LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKKworUEFTUyBEYXRhIGNoYW5uZWwgcmVtYWlucyB1c2FibGUgYWZ0ZXIgSUNFIHJl
c3RhcnQKK1BBU1MgRGF0YSBjaGFubmVsIHJlbWFpbnMgdXNhYmxlIGF0IGVhY2ggc3RlcCBvZiBh
biBJQ0UgcmVzdGFydAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pY2VSZXN0YXJ0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbC1pY2VSZXN0YXJ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFlYzUwYTU4NzA5Mzg4YmFlNzJl
OTY4NDYzMDMxMGMzMjU2MWU1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3Rh
cnQuaHRtbApAQCAtMCwwICsxLDc2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5SVENE
YXRhQ2hhbm5lbCBpbnRlcmFjdGlvbnMgd2l0aCBJQ0UgcmVzdGFydDwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
UlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0
cmljdCc7CisKK2FzeW5jIGZ1bmN0aW9uIGNoZWNrQ2FuUGFzc0RhdGEoY2hhbm5lbDEsIGNoYW5u
ZWwyKSB7CisgIGNoYW5uZWwxLnNlbmQoJ2hlbGxvJyk7CisgIGNvbnN0IG1lc3NhZ2UgPSBhd2Fp
dCBhd2FpdE1lc3NhZ2UoY2hhbm5lbDIpOworICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UsICdoZWxs
bycpOworfQorCithc3luYyBmdW5jdGlvbiBwaW5nUG9uZ0RhdGEoY2hhbm5lbDEsIGNoYW5uZWwy
LCBzaXplPTEpIHsKKyAgY2hhbm5lbDEuc2VuZCgnaGVsbG8nKTsKKyAgY29uc3QgcmVxdWVzdCA9
IGF3YWl0IGF3YWl0TWVzc2FnZShjaGFubmVsMik7CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdCwg
J2hlbGxvJyk7CisgIGNvbnN0IHJlc3BvbnNlID0gJ3gnLnJlcGVhdChzaXplKTsKKyAgY2hhbm5l
bDIuc2VuZChyZXNwb25zZSk7CisgIGNvbnN0IHJlc3BvbnNlUmVjZWl2ZWQgPSBhd2FpdCBhd2Fp
dE1lc3NhZ2UoY2hhbm5lbDEpOworICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLCByZXNwb25zZVJl
Y2VpdmVkKTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBjb25zdCBbY2hhbm5lbDEsIGNoYW5uZWwyXSA9
IGF3YWl0IGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCB7fSwgcGMxLCBwYzIpOworICBjaGFubmVs
Mi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHQudW5yZWFjaGVkX2Z1bmMoKSk7CisgIGNoYW5u
ZWwyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgdC51bnJlYWNoZWRfZnVuYygpKTsKKworICBh
d2FpdCBjaGVja0NhblBhc3NEYXRhKGNoYW5uZWwxLCBjaGFubmVsMik7CisgIGF3YWl0IGNoZWNr
Q2FuUGFzc0RhdGEoY2hhbm5lbDIsIGNoYW5uZWwxKTsKKworICBwYzEucmVzdGFydEljZSgpOwor
ICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKworICBhd2FpdCBjaGVja0Nh
blBhc3NEYXRhKGNoYW5uZWwxLCBjaGFubmVsMik7CisgIGF3YWl0IGNoZWNrQ2FuUGFzc0RhdGEo
Y2hhbm5lbDIsIGNoYW5uZWwxKTsKKyAgY2hhbm5lbDEuY2xvc2UoKTsKKyAgY2hhbm5lbDIuY2xv
c2UoKTsKK30sIGBEYXRhIGNoYW5uZWwgcmVtYWlucyB1c2FibGUgYWZ0ZXIgSUNFIHJlc3RhcnRg
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGNv
bnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMi5jbG9zZSgpKTsKKworICBjb25zdCBbY2hhbm5lbDEsIGNoYW5uZWwyXSA9IGF3YWl0IGNy
ZWF0ZURhdGFDaGFubmVsUGFpcih0LCB7fSwgcGMxLCBwYzIpOworICBjaGFubmVsMi5hZGRFdmVu
dExpc3RlbmVyKCdlcnJvcicsIHQudW5yZWFjaGVkX2Z1bmMoKSk7CisgIGNoYW5uZWwyLmFkZEV2
ZW50TGlzdGVuZXIoJ2Vycm9yJywgdC51bnJlYWNoZWRfZnVuYygpKTsKKworICBhd2FpdCBwaW5n
UG9uZ0RhdGEoY2hhbm5lbDEsIGNoYW5uZWwyKTsKKyAgcGMxLnJlc3RhcnRJY2UoKTsKKworICBh
d2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhd2FpdCBwaW5nUG9uZ0RhdGEoY2hh
bm5lbDEsIGNoYW5uZWwyKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5s
b2NhbERlc2NyaXB0aW9uKTsKKyAgYXdhaXQgcGluZ1BvbmdEYXRhKGNoYW5uZWwxLCBjaGFubmVs
Mik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3
ZXIoKSk7CisgIGF3YWl0IHBpbmdQb25nRGF0YShjaGFubmVsMSwgY2hhbm5lbDIpOworICBhd2Fp
dCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICBhd2Fp
dCBwaW5nUG9uZ0RhdGEoY2hhbm5lbDEsIGNoYW5uZWwyKTsKKyAgY2hhbm5lbDEuY2xvc2UoKTsK
KyAgY2hhbm5lbDIuY2xvc2UoKTsKK30sIGBEYXRhIGNoYW5uZWwgcmVtYWlucyB1c2FibGUgYXQg
ZWFjaCBzdGVwIG9mIGFuIElDRSByZXN0YXJ0YCk7CisKKworCis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0RhdGFDaGFubmVsLXNlbmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC1leHBlY3RlZC50
eHQKaW5kZXggMGI1ZDY0NjUwY2U2NmZhYjIyZGYwY2U5Y2MyNmZhNjdhNWJjYTAyYS4uNjNhMzhj
NDk2OTQ2ZGZhZDYwY2Y0ODE2ZTNiMTk5Yzg2MDUwYjAyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwt
c2VuZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC1leHBlY3RlZC50eHQKQEAgLTMs
OCArMywxMCBAQCBQQVNTIENhbGxpbmcgc2VuZCgpIHdoZW4gZGF0YSBjaGFubmVsIGlzIGluIGNv
bm5lY3Rpbmcgc3RhdGUgc2hvdWxkIHRocm93IEludmFsaQogUEFTUyBEYXRhY2hhbm5lbCBzaG91
bGQgYmUgYWJsZSB0byBzZW5kIHNpbXBsZSBzdHJpbmcgYW5kIHJlY2VpdmUgYXMgc3RyaW5nCiBQ
QVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgdW5pY29kZSBzdHJpbmcgYW5k
IHJlY2VpdmUgYXMgdW5pY29kZSBzdHJpbmcKIFBBU1MgRGF0YWNoYW5uZWwgc2hvdWxkIGlnbm9y
ZSBiaW5hcnlUeXBlIGFuZCBhbHdheXMgcmVjZWl2ZSBzdHJpbmcgbWVzc2FnZSBhcyBzdHJpbmcK
K1BBU1MgRGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBhbiBlbXB0eSBzdHJpbmcg
YW5kIHJlY2VpdmUgYW4gZW1wdHkgc3RyaW5nCiBQQVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBh
YmxlIHRvIHNlbmQgVWludDhBcnJheSBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5QnVmZmVy
CiBQQVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgQXJyYXlCdWZmZXIgbWVz
c2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcgorUEFTUyBEYXRhY2hhbm5lbCBzaG91bGQg
YmUgYWJsZSB0byBzZW5kIGFuIGVtcHR5IEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUg
YXMgQXJyYXlCdWZmZXIKIFBBU1MgRGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBC
bG9iIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXIKIFBBU1MgRGF0YWNoYW5uZWwg
c2hvdWxkIGJlIGFibGUgdG8gc2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCByZWNlaXZlIGFz
IEJsb2IKIEZBSUwgRGF0YWNoYW5uZWwgYmluYXJ5VHlwZSBzaG91bGQgcmVjZWl2ZSBtZXNzYWdl
IGFzIEJsb2IgYnkgZGVmYXVsdCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgaW5pdGlhbCBiaW5hcnlU
eXBlIHZhbHVlIHRvIGJlIGJsb2IgZXhwZWN0ZWQgImJsb2IiIGJ1dCBnb3QgImFycmF5YnVmZmVy
IgpAQCAtMTMsOCArMTUsMTAgQEAgRkFJTCBEYXRhY2hhbm5lbCBzZW5kKCkgdXAgdG8gbWF4IHNp
emUgc2hvdWxkIHN1Y2NlZWQsIGFib3ZlIG1heCBzaXplIHNob3VsZCBmYWkKIFBBU1MgTmVnb3Rp
YXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIHNpbXBsZSBzdHJpbmcgYW5k
IHJlY2VpdmUgYXMgc3RyaW5nCiBQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGJl
IGFibGUgdG8gc2VuZCB1bmljb2RlIHN0cmluZyBhbmQgcmVjZWl2ZSBhcyB1bmljb2RlIHN0cmlu
ZwogUEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3VsZCBpZ25vcmUgYmluYXJ5VHlwZSBh
bmQgYWx3YXlzIHJlY2VpdmUgc3RyaW5nIG1lc3NhZ2UgYXMgc3RyaW5nCitQQVNTIE5lZ290aWF0
ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBhbiBlbXB0eSBzdHJpbmcgYW5k
IHJlY2VpdmUgYW4gZW1wdHkgc3RyaW5nCiBQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hv
dWxkIGJlIGFibGUgdG8gc2VuZCBVaW50OEFycmF5IG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJy
YXlCdWZmZXIKIFBBU1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBz
ZW5kIEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXIKK1BBU1Mg
TmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIGFuIGVtcHR5IEFy
cmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXIKIFBBU1MgTmVnb3Rp
YXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIEJsb2IgbWVzc2FnZSBhbmQg
cmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcgogUEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3Vs
ZCBiZSBhYmxlIHRvIHNlbmQgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBCbG9i
CiBGQUlMIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgYmluYXJ5VHlwZSBzaG91bGQgcmVjZWl2ZSBt
ZXNzYWdlIGFzIEJsb2IgYnkgZGVmYXVsdCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgaW5pdGlhbCBi
aW5hcnlUeXBlIHZhbHVlIHRvIGJlIGJsb2IgZXhwZWN0ZWQgImJsb2IiIGJ1dCBnb3QgImFycmF5
YnVmZmVyIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC5o
dG1sCmluZGV4IDE5NTI5MjFmYmYyNmYyYzZlOTU0NjAwMGExZTk4NDNiNDQwODI0ZTguLmQ3NTI0
NWMzNDc1YzU2Y2M5ODM2NTg3NmEzYmRjNGE2NjZmYjYzMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVs
LXNlbmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwKQEAgLTM1LDggKzM1LDEwIEBACiAK
IC8vIFNpbXBsZSBBU0NJSSBlbmNvZGVkIHN0cmluZwogY29uc3QgaGVsbG9TdHJpbmcgPSAnaGVs
bG8nOworY29uc3QgZW1wdHlTdHJpbmcgPSAnJzsKIC8vIEFTQ0lJIGVuY29kZWQgYnVmZmVyIHJl
cHJlc2VudGF0aW9uIG9mIHRoZSBzdHJpbmcKIGNvbnN0IGhlbGxvQnVmZmVyID0gVWludDhBcnJh
eS5vZigweDY4LCAweDY1LCAweDZjLCAweDZjLCAweDZmKTsKK2NvbnN0IGVtcHR5QnVmZmVyID0g
bmV3IFVpbnQ4QXJyYXkoKTsKIGNvbnN0IGhlbGxvQmxvYiA9IG5ldyBCbG9iKFtoZWxsb0J1ZmZl
cl0pOwogCiAvLyBVbmljb2RlIHN0cmluZyB3aXRoIG11bHRpcGxlIGNvZGUgdW5pdHMKQEAgLTEx
Miw2ICsxMTQsMjAgQEAgZm9yIChjb25zdCBvcHRpb25zIG9mIFt7fSwge25lZ290aWF0ZWQ6IHRy
dWUsIGlkOiAwfV0pIHsKICAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgaGVsbG9TdHJpbmcp
OwogICAgIH0pOwogICB9LCBgJHttb2RlfSBzaG91bGQgaWdub3JlIGJpbmFyeVR5cGUgYW5kIGFs
d2F5cyByZWNlaXZlIHN0cmluZyBtZXNzYWdlIGFzIHN0cmluZ2ApOworICBwcm9taXNlX3Rlc3Qo
dCA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zKQorICAg
IC50aGVuKChbY2hhbm5lbDEsIGNoYW5uZWwyXSkgPT4geworICAgICAgY2hhbm5lbDEuc2VuZChl
bXB0eVN0cmluZyk7CisgICAgICAvLyBTZW5kIGEgbm9uLWVtcHR5IHN0cmluZyBpbiBjYXNlIHRo
ZSBpbXBsZW1lbnRhdGlvbiBpZ25vcmVzIGVtcHR5IG1lc3NhZ2VzCisgICAgICBjaGFubmVsMS5z
ZW5kKGhlbGxvU3RyaW5nKTsKKyAgICAgIHJldHVybiBhd2FpdE1lc3NhZ2UoY2hhbm5lbDIpCisg
ICAgfSkudGhlbihtZXNzYWdlID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIG1lc3Nh
Z2UsICdzdHJpbmcnLAorICAgICAgICAnRXhwZWN0IG1lc3NhZ2UgdG8gYmUgYSBzdHJpbmcnKTsK
KworICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLCBlbXB0eVN0cmluZyk7CisgICAgfSk7Cisg
IH0sIGAke21vZGV9IHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgYW4gZW1wdHkgc3RyaW5nIGFuZCBy
ZWNlaXZlIGFuIGVtcHR5IHN0cmluZ2ApOwogCiAgIC8qCiAgICAgNi4yLiBzZW5kKCkKQEAgLTE3
MCw2ICsxODYsMjIgQEAgZm9yIChjb25zdCBvcHRpb25zIG9mIFt7fSwge25lZ290aWF0ZWQ6IHRy
dWUsIGlkOiAwfV0pIHsKICAgICB9KTsKICAgfSwgYCR7bW9kZX0gc2hvdWxkIGJlIGFibGUgdG8g
c2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5QnVmZmVyYCk7CiAK
KyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIo
dCwgb3B0aW9ucykKKyAgICAudGhlbigoW2NoYW5uZWwxLCBjaGFubmVsMl0pID0+IHsKKyAgICAg
IGNoYW5uZWwyLmJpbmFyeVR5cGUgPSAnYXJyYXlidWZmZXInOworICAgICAgY2hhbm5lbDEuc2Vu
ZChlbXB0eUJ1ZmZlci5idWZmZXIpOworICAgICAgLy8gU2VuZCBhIG5vbi1lbXB0eSBidWZmZXIg
aW4gY2FzZSB0aGUgaW1wbGVtZW50YXRpb24gaWdub3JlcyBlbXB0eSBtZXNzYWdlcworICAgICAg
Y2hhbm5lbDEuc2VuZChoZWxsb0J1ZmZlci5idWZmZXIpOworICAgICAgcmV0dXJuIGF3YWl0TWVz
c2FnZShjaGFubmVsMikKKyAgICB9KS50aGVuKG1lc3NhZ2VCdWZmZXIgPT4geworICAgICAgYXNz
ZXJ0X3RydWUobWVzc2FnZUJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyLAorICAgICAgICAn
RXhwZWN0IG1lc3NhZ2VCdWZmZXIgdG8gYmUgYW4gQXJyYXlCdWZmZXInKTsKKworICAgICAgYXNz
ZXJ0X2VxdWFsc190eXBlZF9hcnJheShtZXNzYWdlQnVmZmVyLCBlbXB0eUJ1ZmZlci5idWZmZXIp
OworICAgIH0pOworICB9LCBgJHttb2RlfSBzaG91bGQgYmUgYWJsZSB0byBzZW5kIGFuIGVtcHR5
IEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXJgKTsKKwogICAv
KgogICAgIDYuMi4gc2VuZCgpCiAgICAgICAzLiAgRXhlY3V0ZSB0aGUgc3ViIHN0ZXAgdGhhdCBj
b3JyZXNwb25kcyB0byB0aGUgdHlwZSBvZiB0aGUgbWV0aG9kcyBhcmd1bWVudDoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0R0bHNUcmFuc3BvcnQtc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS1leHBl
Y3RlZC50eHQKaW5kZXggZjE4OTRiZjk3MmY4YzI2NGJlY2E1NzVlNjZmNzhmNGEyOTI3M2JjMi4u
NmQyMWIzMzQ0NmRhNjgwOGQ3MmI1YWQwMWY3NjgxODE3OTBkYzIyMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1Ry
YW5zcG9ydC1zdGF0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS1leHBlY3Rl
ZC50eHQKQEAgLTIsNCArMiw1IEBACiBQQVNTIERUTFMgdHJhbnNwb3J0IGdvZXMgdG8gY29ubmVj
dGVkIHN0YXRlCiBGQUlMIGNsb3NlKCkgY2F1c2VzIHRoZSBsb2NhbCB0cmFuc3BvcnQgdG8gY2xv
c2UgaW1tZWRpYXRlbHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNsb3NlZCIgYnV0IGdvdCAi
Y29ubmVjdGVkIgogUEFTUyBjbG9zZSgpIGNhdXNlcyB0aGUgb3RoZXIgZW5kJ3MgRFRMUyB0cmFu
c3BvcnQgdG8gY2xvc2UKK0ZBSUwgc3RvcCBidW5kbGVkIHRyYW5zY2VpdmVyIHJldGFpbnMgZHRs
cyB0cmFuc3BvcnQgc3RhdGUgYXNzZXJ0X2VxdWFsczogZ2V0UmVjZWl2ZXJzIGRvZXMgbm90IGV4
cG9zZSBhIHJlY2VpdmVyIG9mIGEgc3RvcHBlZCB0cmFuc2NlaXZlciBleHBlY3RlZCAxIGJ1dCBn
b3QgMgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0
YXRlLmh0bWwKaW5kZXggZDAyMzBkZTBlNjRkMGRjZjViMTM3MWNjMjZmNTcwOTUwNTNhOGZkMi4u
Y2E0OWZjYzk1ZjI5N2UwNzg4OWVjZjMyYzIxYTM1YjllMzExYjY4YiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1Ry
YW5zcG9ydC1zdGF0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtc3RhdGUuaHRtbApAQCAtODYsNCAr
ODYsNTcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBhd2FpdCByZXNvbHZlV2hlbih0
LCBkdGxzVHJhbnNwb3J0MiwgJ2Nsb3NlZCcpOwogfSwgJ2Nsb3NlKCkgY2F1c2VzIHRoZSBvdGhl
ciBlbmRcJ3MgRFRMUyB0cmFuc3BvcnQgdG8gY2xvc2UnKTsKIAorcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCBjb25maWcgPSB7YnVuZGxlUG9saWN5OiAibWF4LWJ1bmRsZSJ9Owor
ICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKTsKKyAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBw
YzEub25pY2VjYW5kaWRhdGUgPSBlID0+IHBjMi5hZGRJY2VDYW5kaWRhdGUoZS5jYW5kaWRhdGUp
OworICBwYzIub25pY2VjYW5kaWRhdGUgPSBlID0+IHBjMS5hZGRJY2VDYW5kaWRhdGUoZS5jYW5k
aWRhdGUpOworCisgIHBjMS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAgcGMxLmFkZFRyYW5z
Y2VpdmVyKCJhdWRpbyIpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBw
YzEuY3JlYXRlT2ZmZXIoKSk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEu
bG9jYWxEZXNjcmlwdGlvbik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0
IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihw
YzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgY29uc3QgW3ZpZGVvVGMsIGF1ZGlvVGNdID0gcGMx
LmdldFRyYW5zY2VpdmVycygpOworICBjb25zdCBbdmlkZW9UcCwgYXVkaW9UcF0gPQorICAgICAg
cGMxLmdldFRyYW5zY2VpdmVycygpLm1hcCh0YyA9PiB0Yy5zZW5kZXIudHJhbnNwb3J0KTsKKwor
ICBjb25zdCBbdmlkZW9QYzJUcCwgYXVkaW9QYzJUcF0gPQorICAgICAgcGMyLmdldFRyYW5zY2Vp
dmVycygpLm1hcCh0YyA9PiB0Yy5zZW5kZXIudHJhbnNwb3J0KTsKKworICBhc3NlcnRfZXF1YWxz
KHBjMS5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDIsICdwYzEgdHJhbnNjZWl2ZXIgY291bnQn
KTsKKyAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAyLCAncGMy
IHRyYW5zY2VpdmVyIGNvdW50Jyk7CisgIGFzc2VydF9lcXVhbHModmlkZW9UYy5zZW5kZXIudHJh
bnNwb3J0LCB2aWRlb1RjLnJlY2VpdmVyLnRyYW5zcG9ydCk7CisgIGFzc2VydF9lcXVhbHModmlk
ZW9UYy5zZW5kZXIudHJhbnNwb3J0LCBhdWRpb1RjLnNlbmRlci50cmFuc3BvcnQpOworCisgIGF3
YWl0IFByb21pc2UuYWxsKFtyZXNvbHZlV2hlbih0LCB2aWRlb1RwLCAnY29ubmVjdGVkJyksCisg
ICAgICAgICAgICAgICAgICAgICByZXNvbHZlV2hlbih0LCB2aWRlb1BjMlRwLCAnY29ubmVjdGVk
JyldKTsKKworICBhc3NlcnRfZXF1YWxzKGF1ZGlvVGMuc2VuZGVyLCBwYzEuZ2V0U2VuZGVycygp
WzFdKTsKKworICBsZXQgc3RvcHBlZFRyYW5zY2VpdmVyID0gcGMxLmdldFRyYW5zY2VpdmVycygp
WzBdOworICBhc3NlcnRfZXF1YWxzKHN0b3BwZWRUcmFuc2NlaXZlciwgdmlkZW9UYyk7IC8vIHNh
bml0eQorICBsZXQgb25lbmRlZCA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgIHN0b3Bw
ZWRUcmFuc2NlaXZlci5yZWNlaXZlci50cmFjay5vbmVuZGVkID0gcmVzb2x2ZTsKKyAgfSk7Cisg
IHN0b3BwZWRUcmFuc2NlaXZlci5zdG9wKCk7CisgIGF3YWl0IG9uZW5kZWQ7CisKKyAgYXNzZXJ0
X2VxdWFscygKKyAgICAgIHBjMS5nZXRSZWNlaXZlcnMoKS5sZW5ndGgsIDEsCisgICAgICAnZ2V0
UmVjZWl2ZXJzIGRvZXMgbm90IGV4cG9zZSBhIHJlY2VpdmVyIG9mIGEgc3RvcHBlZCB0cmFuc2Nl
aXZlcicpOworICBhc3NlcnRfZXF1YWxzKAorICAgICAgcGMxLmdldFNlbmRlcnMoKS5sZW5ndGgs
IDEsCisgICAgICAnZ2V0U2VuZGVycyBkb2VzIG5vdCBleHBvc2UgYSBzZW5kZXIgb2YgYSBzdG9w
cGVkIHRyYW5zY2VpdmVyJyk7CisgIGFzc2VydF9lcXVhbHMoYXVkaW9UYy5zZW5kZXIsIHBjMS5n
ZXRTZW5kZXJzKClbMF0pOyAvLyBzYW5pdHkKKyAgYXNzZXJ0X2VxdWFscyhhdWRpb1RjLnNlbmRl
ci50cmFuc3BvcnQsIGF1ZGlvVHApOyAvLyBzYW5pdHkKKyAgYXNzZXJ0X2VxdWFscyhhdWRpb1Rw
LnN0YXRlLCAnY29ubmVjdGVkJyk7Cit9LCAnc3RvcCBidW5kbGVkIHRyYW5zY2VpdmVyIHJldGFp
bnMgZHRscyB0cmFuc3BvcnQgc3RhdGUnKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDb25u
ZWN0aW9uU3RhdGUtY2FuZGlkYXRlLXBhaXIuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlv
blN0YXRlLWNhbmRpZGF0ZS1wYWlyLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAzNjkzZDMyYTkz
OWE5MGQ3ZGQ1OTk4NzI2N2E0MmYwMzBlNTMxMzM3Li4wN2ZjNjBmNWM1NmI4YWUwZDYzNjNjMzI0
NGYwZTg2ODRmMmI0MmE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDb25uZWN0aW9uU3RhdGUtY2FuZGlkYXRlLXBh
aXIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUtcGFp
ci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJ
TUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIE9uIElDRSBjb25uZWN0ZWQsIGdldFN0
YXRzKCkgY29udGFpbnMgYSBjb25uZWN0ZWQgY2FuZGlkYXRlLXBhaXIgVGVzdCB0aW1lZCBvdXQK
K1BBU1MgT24gSUNFIGNvbm5lY3RlZCwgZ2V0U3RhdHMoKSBjb250YWlucyBhIGNvbm5lY3RlZCBj
YW5kaWRhdGUtcGFpcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLWhlbHBlci5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0ljZVRyYW5zcG9ydC1leHRlbnNpb24taGVscGVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2NTllYzU5YjhkZjI4NDdlN2UyYTNjNTEzZDNkNmZkMDEwMjdmMTZkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNp
b24taGVscGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotJ3VzZSBzdHJpY3Qn
OwotCi0vLyBDb25zdHJ1Y3QgYW4gUlRDSWNlVHJhbnNwb3J0IGluc3RhbmNlLiBUaGUgaW5zdGFu
Y2Ugd2lsbCBhdXRvbWF0aWNhbGx5IGJlCi0vLyBjbGVhbmVkIHVwIHdoZW4gdGhlIHRlc3QgZmlu
aXNoZXMuCi1mdW5jdGlvbiBtYWtlSWNlVHJhbnNwb3J0KHQpIHsKLSAgY29uc3QgaWNlVHJhbnNw
b3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IGljZVRy
YW5zcG9ydC5zdG9wKCkpOwotICByZXR1cm4gaWNlVHJhbnNwb3J0OwotfQotCi0vLyBDb25zdHJ1
Y3QgdHdvIFJUQ0ljZVRyYW5zcG9ydCBpbnN0YW5jZXMsIGNvbmZpZ3VyZSB0aGVtIHRvIGV4Y2hh
bmdlCi0vLyBjYW5kaWRhdGVzLCB0aGVuIGdhdGhlcigpIHRoZW0uCi0vLyBSZXR1cm5zIGEgMi1s
aXN0OiBbIFJUQ0ljZVRyYW5zcG9ydCwgUlRDSWNlVHJhbnNwb3J0IF0KLWZ1bmN0aW9uIG1ha2VB
bmRHYXRoZXJUd29JY2VUcmFuc3BvcnRzKHQpIHsKLSAgY29uc3QgbG9jYWxUcmFuc3BvcnQgPSBt
YWtlSWNlVHJhbnNwb3J0KHQpOwotICBjb25zdCByZW1vdGVUcmFuc3BvcnQgPSBtYWtlSWNlVHJh
bnNwb3J0KHQpOwotICBsb2NhbFRyYW5zcG9ydC5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gewotICAg
IGlmIChlLmNhbmRpZGF0ZSkgewotICAgICAgcmVtb3RlVHJhbnNwb3J0LmFkZFJlbW90ZUNhbmRp
ZGF0ZShlLmNhbmRpZGF0ZSk7Ci0gICAgfQotICB9OwotICByZW1vdGVUcmFuc3BvcnQub25pY2Vj
YW5kaWRhdGUgPSBlID0+IHsKLSAgICBpZiAoZS5jYW5kaWRhdGUpIHsKLSAgICAgIGxvY2FsVHJh
bnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7Ci0gICAgfQotICB9OwotICBs
b2NhbFRyYW5zcG9ydC5nYXRoZXIoe30pOwotICByZW1vdGVUcmFuc3BvcnQuZ2F0aGVyKHt9KTsK
LSAgcmV0dXJuIFsgbG9jYWxUcmFuc3BvcnQsIHJlbW90ZVRyYW5zcG9ydCBdOwotfQotCi0vLyBD
b25zdHJ1Y3QgdHdvIFJUQ0ljZVRyYW5zcG9ydCBpbnN0YW5jZXMsIGNvbmZpZ3VyZSB0aGVtIHRv
IGV4Y2hhbmdlCi0vLyBjYW5kaWRhdGVzIGFuZCBwYXJhbWV0ZXJzLCB0aGVuIGdhdGhlcigpIGFu
ZCBzdGFydCgpIHRoZW0uCi0vLyBSZXR1cm5zIGEgMi1saXN0OgotLy8gICAgIFsgY29udHJvbGxp
bmcgUlRDSWNlVHJhbnNwb3J0LAotLy8gICAgICAgY29udHJvbGxlZCBSVENJY2VUcmFuc3BvcnQg
XQotZnVuY3Rpb24gbWFrZUdhdGhlckFuZFN0YXJ0VHdvSWNlVHJhbnNwb3J0cyh0KSB7Ci0gIGNv
bnN0IFsgbG9jYWxUcmFuc3BvcnQsIHJlbW90ZVRyYW5zcG9ydCBdID0gbWFrZUFuZEdhdGhlclR3
b0ljZVRyYW5zcG9ydHModCk7Ci0gIGxvY2FsVHJhbnNwb3J0LnN0YXJ0KHJlbW90ZVRyYW5zcG9y
dC5nZXRMb2NhbFBhcmFtZXRlcnMoKSwgJ2NvbnRyb2xsaW5nJyk7Ci0gIHJlbW90ZVRyYW5zcG9y
dC5zdGFydChsb2NhbFRyYW5zcG9ydC5nZXRMb2NhbFBhcmFtZXRlcnMoKSwgJ2NvbnRyb2xsZWQn
KTsKLSAgcmV0dXJuIFsgbG9jYWxUcmFuc3BvcnQsIHJlbW90ZVRyYW5zcG9ydCBdOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3Bv
cnQtZXh0ZW5zaW9uLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwMzgyMDc2YmJmYThiN2U5NWVi
OWE5MTg1ZmRmY2ZkOTJiZWI4NzdmLi4yMjg4MmMwOTUwM2Y1NDBlOTYzNGE1Y2M2YzYyZTZhMGFi
NTUyNzA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDYgQEAKIAorSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBUeXBlRXJyb3I6IENhbmRp
ZGF0ZSBtdXN0IG5vdCBoYXZlIGJvdGggbnVsbCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXgKKwog
RkFJTCBSVENJY2VUcmFuc3BvcnQgY29uc3RydWN0b3IgZG9lcyBub3QgdGhyb3cgSWxsZWdhbCBj
b25zdHJ1Y3RvcgogRkFJTCBSVENJY2VUcmFuc3BvcnQgaW5pdGlhbCBwcm9wZXJ0aWVzIGFyZSBz
ZXQgSWxsZWdhbCBjb25zdHJ1Y3RvcgogRkFJTCBnYXRoZXIoKSB3aXRoIHsgaWNlU2VydmVyczog
bnVsbCB9IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgSWxsZWdhbCBjb25zdHJ1Y3RvcgpAQCAtMTQs
MjAgKzE2LDcgQEAgRkFJTCBnYXRoZXIoKSByZXR1cm5zIGF0IGxlYXN0IG9uZSBob3N0IGNhbmRp
ZGF0ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3QKIEZBSUwgZ2F0aGVyKCkgcmV0dXJu
cyBubyBjYW5kaWRhdGVzIHdpdGggeyBnYXRoZXJQb2xpY3k6ICdyZWxheSd9IGFuZCBubyB0dXJu
IHNlcnZlcnMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9yIgogRkFJTCBzdGFydCgpIHRocm93
cyBpZiBjbG9zZWQgSWxsZWdhbCBjb25zdHJ1Y3RvcgogRkFJTCBzdGFydCgpIHRocm93cyBpZiB1
c2VybmFtZUZyYWdtZW50IG9yIHBhc3N3b3JkIG5vdCBzZXQgSWxsZWdhbCBjb25zdHJ1Y3Rvcgot
RkFJTCBzdGFydCgpIHRocm93cyBpZiB1c2VybmFtZUZyYWdtZW50IGRvZXMgbm90IGNvbmZvcm0g
dG8gc3ludGF4IElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgc3RhcnQoKSB0aHJvd3MgaWYgcGFz
c3dvcmQgZG9lcyBub3QgY29uZm9ybSB0byBzeW50YXggSWxsZWdhbCBjb25zdHJ1Y3RvcgogRkFJ
TCBzdGFydCgpIGRvZXMgbm90IHRyYW5zaXRpb24gc3RhdGUgdG8gJ2NoZWNraW5nJyBpZiBubyBy
ZW1vdGUgY2FuZGlkYXRlcyBhZGRlZCBJbGxlZ2FsIGNvbnN0cnVjdG9yCiBGQUlMIHN0YXJ0KCkg
d2l0aCBkZWZhdWx0IHJvbGUgc2V0cyByb2xlIGF0dHJpYnV0ZSB0byAnY29udHJvbGxlZCcgSWxs
ZWdhbCBjb25zdHJ1Y3RvcgogRkFJTCBzdGFydCgpIHNldHMgcm9sZSBhdHRyaWJ1dGUgdG8gJ2Nv
bnRyb2xsaW5nJyBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIGFkZFJlbW90ZUNhbmRpZGF0ZSgp
IHRocm93cyBpZiBjbG9zZWQgSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBhZGRSZW1vdGVDYW5k
aWRhdGUoKSB0aHJvd3Mgb24gaW52YWxpZCBjYW5kaWRhdGUgSWxsZWdhbCBjb25zdHJ1Y3Rvcgot
RkFJTCBzdGFydCgpIHRyYW5zaXRpb25zIHN0YXRlIHRvICdjaGVja2luZycgaWYgb25lIHJlbW90
ZSBjYW5kaWRhdGUgaGFkIGJlZW4gYWRkZWQgSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBhZGRS
ZW1vdGVDYW5kaWRhdGUoKSB0cmFuc2l0aW9ucyBzdGF0ZSB0byAnY2hlY2tpbmcnIGlmIHN0YXJ0
KCkgaGFkIGJlZW4gY2FsbGVkIGJlZm9yZSBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIHN0YXJ0
KCkgdGhyb3dzIGlmIGxhdGVyIGNhbGxlZCB3aXRoIGEgZGlmZmVyZW50IHJvbGUgSWxsZWdhbCBj
b25zdHJ1Y3RvcgotRkFJTCBzdGFydCgpIGZsdXNoZXMgcmVtb3RlIGNhbmRpZGF0ZXMgYW5kIHRy
YW5zaXRpb25zIHN0YXRlIHRvICduZXcnIGlmIGxhdGVyIGNhbGxlZCB3aXRoIGRpZmZlcmVudCBy
ZW1vdGUgcGFyYW1ldGVycyBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIFR3byBSVENJY2VUcmFu
c3BvcnRzIGNvbm5lY3QgdG8gZWFjaCBvdGhlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IElsbGVnYWwgY29uc3RydWN0b3Ii
Ci1GQUlMIFR3byBSVENJY2VUcmFuc3BvcnRzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgY29udHJvbGxp
bmcgcm9sZSByZXNvbHZlIHRoZSBjb25mbGljdCBpbiBiYW5kIGFuZCBzdGlsbCBjb25uZWN0LiBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IElsbGVnYWwgY29uc3RydWN0b3IiCi1GQUlMIFR3byBSVENJY2VUcmFuc3BvcnRzIGNv
bmZpZ3VyZWQgd2l0aCB0aGUgY29udHJvbGxlZCByb2xlIHJlc29sdmUgdGhlIGNvbmZsaWN0IGlu
IGJhbmQgYW5kIHN0aWxsIGNvbm5lY3QuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogSWxsZWdhbCBjb25zdHJ1Y3RvciIKLUZB
SUwgU2VsZWN0ZWQgY2FuZGlkYXRlIHBhaXIgY2hhbmdlcyBvbmNlIHRoZSBSVENJY2VUcmFuc3Bv
cnRzIGNvbm5lY3QuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogSWxsZWdhbCBjb25zdHJ1Y3RvciIKLUZBSUwgZ2V0U2VsZWN0
ZWRDYW5kaWRhdGVQYWlyKCkgcmV0dXJucyBudWxsIG9uY2UgdGhlIFJUQ0ljZVRyYW5zcG9ydCBp
cyBzdG9wcGVkLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IElsbGVnYWwgY29uc3RydWN0b3IiCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRy
YW5zcG9ydC1leHRlbnNpb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMu
aHRtbAppbmRleCBiYjRkNTJhZGNlNTY3M2JhYjVkNTI3NTM2ZDY3Zjg5YTAzYTQ4Y2QyLi45YzZj
ZWM3ZTFlNDk5NGVlNThmNjgyMmQ3NzA0OGVjYThlOGFmNTY5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3Bv
cnQtZXh0ZW5zaW9uLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy5o
dG1sCkBAIC0zLDIwICszLDE3IEBACiA8dGl0bGU+UlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbnMu
aHR0cHMuaHRtbDwvdGl0bGU+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi1oZWxw
ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICd1c2Ugc3RyaWN0JzsKIAogLy8gVGhlc2UgdGVz
dHMgYXJlIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZXh0ZW5zaW9uIHNwZWNpZmljYXRpb246CiAv
LyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLWljZS8KIAotLy8gVGhlIGZvbGxvd2luZyBo
ZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbQotLy8gUlRDSWNlVHJhbnNwb3J0LWV4dGVu
c2lvbi1oZWxwZXIuanM6Ci0vLyAgIG1ha2VJY2VUcmFuc3BvcnQKLS8vICAgbWFrZUdhdGhlckFu
ZFN0YXJ0VHdvSWNlVHJhbnNwb3J0cwotCi1jb25zdCBJQ0VfVUZSQUcgPSAndScucmVwZWF0KDQp
OwotY29uc3QgSUNFX1BXRCA9ICdwJy5yZXBlYXQoMjIpOworZnVuY3Rpb24gbWFrZUljZVRyYW5z
cG9ydCh0KSB7CisgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBpY2VUcmFuc3BvcnQuc3RvcCgpKTsKKyAgcmV0dXJuIGlj
ZVRyYW5zcG9ydDsKK30KIAogdGVzdCgoKSA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5l
dyBSVENJY2VUcmFuc3BvcnQoKTsKQEAgLTQyLDcgKzM5LDcgQEAgdGVzdCgoKSA9PiB7CiAKIHRl
c3QodCA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0g
IGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PgorICBhc3NlcnRfdGhyb3dzKG5ldyBU
eXBlRXJyb3IoKSwgKCkgPT4KICAgICBpY2VUcmFuc3BvcnQuZ2F0aGVyKHsgaWNlU2VydmVyczog
bnVsbCB9KSk7CiB9LCAnZ2F0aGVyKCkgd2l0aCB7IGljZVNlcnZlcnM6IG51bGwgfSBzaG91bGQg
dGhyb3cgVHlwZUVycm9yJyk7CiAKQEAgLTcxLDcgKzY4LDcgQEAgdGVzdCh0ID0+IHsKIHRlc3Qo
dCA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7CiAgIGlj
ZVRyYW5zcG9ydC5zdG9wKCk7Ci0gIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJv
cicsICgpID0+IGljZVRyYW5zcG9ydC5nYXRoZXIoe30pKTsKKyAgYXNzZXJ0X3Rocm93cygnSW52
YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBpY2VUcmFuc3BvcnQuZ2F0aGVyKHt9KSk7CiB9LCAnZ2F0
aGVyKCkgdGhyb3dzIGlmIGNsb3NlZCcpOwogCiB0ZXN0KHQgPT4gewpAQCAtODMsNyArODAsNyBA
QCB0ZXN0KHQgPT4gewogdGVzdCh0ID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUlj
ZVRyYW5zcG9ydCh0KTsKICAgaWNlVHJhbnNwb3J0LmdhdGhlcih7fSk7Ci0gIGFzc2VydF90aHJv
d3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGljZVRyYW5zcG9ydC5nYXRoZXIoe30p
KTsKKyAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBpY2VUcmFuc3Bv
cnQuZ2F0aGVyKHt9KSk7CiB9LCAnZ2F0aGVyKCkgdGhyb3dzIGlmIGNhbGxlZCB0d2ljZScpOwog
CiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CkBAIC0xMDEsNyArOTgsNyBAQCBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CiAgIGljZVRyYW5zcG9ydC5nYXRoZXIoe30pOwogICBsZXQgY2FuZGlk
YXRlOwogICBkbyB7Ci0gICAgKCh7IGNhbmRpZGF0ZSB9ID0gYXdhaXQgd2F0Y2hlci53YWl0X2Zv
cignaWNlY2FuZGlkYXRlJykpKTsKKyAgICAoeyBjYW5kaWRhdGUgfSA9IGF3YWl0IHdhdGNoZXIu
d2FpdF9mb3IoJ2ljZWNhbmRpZGF0ZScpKTsKICAgfSB3aGlsZSAoY2FuZGlkYXRlICE9PSBudWxs
KTsKICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2F0aGVyaW5nU3RhdGUsICdnYXRoZXJp
bmcnKTsKICAgYXdhaXQgd2F0Y2hlci53YWl0X2ZvcignZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnKTsK
QEAgLTEyOSw2NCArMTI2LDI4IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICAnIHNl
cnZlcnMnKTsKIAogY29uc3QgZHVtbXlSZW1vdGVQYXJhbWV0ZXJzID0gewotICB1c2VybmFtZUZy
YWdtZW50OiBJQ0VfVUZSQUcsCi0gIHBhc3N3b3JkOiBJQ0VfUFdELAorICB1c2VybmFtZUZyYWdt
ZW50OiAnZHVtbXlVc2VybmFtZUZyYWdtZW50JywKKyAgcGFzc3dvcmQ6ICdkdW1teVBhc3N3b3Jk
JywKIH07CiAKIHRlc3QoKCkgPT4gewogICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNl
VHJhbnNwb3J0KCk7CiAgIGljZVRyYW5zcG9ydC5zdG9wKCk7Ci0gIGFzc2VydF90aHJvd3NfZG9t
KCdJbnZhbGlkU3RhdGVFcnJvcicsCisgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9y
JywKICAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoZHVtbXlSZW1vdGVQYXJhbWV0ZXJzKSk7
CiAgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldFJlbW90ZVBhcmFtZXRlcnMoKSwgbnVs
bCk7CiB9LCBgc3RhcnQoKSB0aHJvd3MgaWYgY2xvc2VkYCk7CiAKIHRlc3QoKCkgPT4gewogICBj
b25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7Ci0gIGFzc2VydF90aHJv
d3NfanMoVHlwZUVycm9yLCAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoe30pKTsKLSAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsCi0gICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KHsgdXNl
cm5hbWVGcmFnbWVudDogSUNFX1VGUkFHIH0pKTsKLSAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJy
b3IsCi0gICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KHsgcGFzc3dvcmQ6IElDRV9QV0QgfSkp
OworICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4gaWNlVHJhbnNwb3J0LnN0
YXJ0KHt9KSk7CisgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLAorICAgICgpID0+IGlj
ZVRyYW5zcG9ydC5zdGFydCh7IHVzZXJuYW1lRnJhZ21lbnQ6ICdkdW1teScgfSkpOworICBhc3Nl
cnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwKKyAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQo
eyBwYXNzd29yZDogJ2R1bW15JyB9KSk7CiAgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0Lmdl
dFJlbW90ZVBhcmFtZXRlcnMoKSwgbnVsbCk7CiB9LCAnc3RhcnQoKSB0aHJvd3MgaWYgdXNlcm5h
bWVGcmFnbWVudCBvciBwYXNzd29yZCBub3Qgc2V0Jyk7CiAKLXRlc3QoKCkgPT4gewotICBjb25z
dCBURVNUX0NBU0VTID0gWwotICAgIHt1c2VybmFtZUZyYWdtZW50OiAnMnNoJywgZGVzY3JpcHRp
b246ICdsZXNzIHRoYW4gNCBjaGFyYWN0ZXJzIGxvbmcnfSwKLSAgICB7Ci0gICAgICB1c2VybmFt
ZUZyYWdtZW50OiAneCcucmVwZWF0KDI1NyksCi0gICAgICBkZXNjcmlwdGlvbjogJ2dyZWF0ZXIg
dGhhbiAyNTYgY2hhcmFjdGVycyBsb25nJywKLSAgICB9LAotICAgIHt1c2VybmFtZUZyYWdtZW50
OiAnMTIzXG4nLCBkZXNjcmlwdGlvbjogJ2lsbGVnYWwgY2hhcmFjdGVyJ30sCi0gIF07Ci0gIGZv
ciAoY29uc3Qge3VzZXJuYW1lRnJhZ21lbnQsIGRlc2NyaXB0aW9ufSBvZiBURVNUX0NBU0VTKSB7
Ci0gICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOwotICAgIGFz
c2VydF90aHJvd3NfZG9tKAotICAgICAgJ1N5bnRheEVycm9yJywKLSAgICAgICgpID0+IGljZVRy
YW5zcG9ydC5zdGFydCh7IHVzZXJuYW1lRnJhZ21lbnQsIHBhc3N3b3JkOiBJQ0VfUFdEIH0pLAot
ICAgICAgYGlsbGVnYWwgdXNlcm5hbWVGcmFnbWVudCAoJHtkZXNjcmlwdGlvbn0pIHNob3VsZCB0
aHJvdyBhIFN5bnRheEVycm9yYCk7Ci0gIH0KLX0sICdzdGFydCgpIHRocm93cyBpZiB1c2VybmFt
ZUZyYWdtZW50IGRvZXMgbm90IGNvbmZvcm0gdG8gc3ludGF4Jyk7Ci0KLXRlc3QoKCkgPT4gewot
ICBjb25zdCBURVNUX0NBU0VTID0gWwotICAgIHtwYXNzd29yZDogJ3gnLnJlcGVhdCgyMSksIGRl
c2NyaXB0aW9uOiAnbGVzcyB0aGFuIDIyIGNoYXJhY3RlcnMgbG9uZyd9LAotICAgIHsKLSAgICAg
IHBhc3N3b3JkOiAneCcucmVwZWF0KDI1NyksCi0gICAgICBkZXNjcmlwdGlvbjogJ2dyZWF0ZXIg
dGhhbiAyNTYgY2hhcmFjdGVycyBsb25nJywKLSAgICB9LAotICAgIHtwYXNzd29yZDogKCd4Jy5y
ZXBlYXQoMjEpICsgJ1xuJyksIGRlc2NyaXB0aW9uOiAnaWxsZWdhbCBjaGFyYWN0ZXInfSwKLSAg
XTsKLSAgZm9yIChjb25zdCB7cGFzc3dvcmQsIGRlc2NyaXB0aW9ufSBvZiBURVNUX0NBU0VTKSB7
Ci0gICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOwotICAgIGFz
c2VydF90aHJvd3NfZG9tKAotICAgICAgJ1N5bnRheEVycm9yJywKLSAgICAgICgpID0+IGljZVRy
YW5zcG9ydC5zdGFydCh7IHVzZXJuYW1lRnJhZ21lbnQ6IElDRV9VRlJBRywgcGFzc3dvcmQgfSks
Ci0gICAgICBgaWxsZWdhbCBwYXNzd29yZCAoJHtkZXNjcmlwdGlvbn0pIHNob3VsZCB0aHJvdyBh
IFN5bnRheEVycm9yYCk7Ci0gIH0KLX0sICdzdGFydCgpIHRocm93cyBpZiBwYXNzd29yZCBkb2Vz
IG5vdCBjb25mb3JtIHRvIHN5bnRheCcpOwotCiBjb25zdCBhc3NlcnRfaWNlX3BhcmFtZXRlcnNf
ZXF1YWxzID0gKGEsIGIpID0+IHsKICAgYXNzZXJ0X2VxdWFscyhhLnVzZXJuYW1lRnJhZ21lbnQs
IGIudXNlcm5hbWVGcmFnbWVudCwKICAgICAgICd1c2VybmFtZUZyYWdtZW50cyBhcmUgZXF1YWwn
KTsKQEAgLTIxNiwyMiArMTc3LDIxIEBAIHRlc3QodCA9PiB7CiAKIGNvbnN0IGNhbmRpZGF0ZTEg
PSBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsKICAgY2FuZGlkYXRlOiAnY2FuZGlkYXRlOjEgMSB1ZHAg
MjExMzkyOTQ3MSAyMDMuMC4xMTMuMTAwIDEwMTAwIHR5cCBob3N0JywKLSAgc2RwTWlkOiAnJywK
IH0pOwogCiB0ZXN0KCgpID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRy
YW5zcG9ydCgpOwogICBpY2VUcmFuc3BvcnQuc3RvcCgpOwotICBhc3NlcnRfdGhyb3dzX2RvbSgn
SW52YWxpZFN0YXRlRXJyb3InLAorICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcics
CiAgICAgKCkgPT4gaWNlVHJhbnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0ZShjYW5kaWRhdGUxKSk7
CiAgIGFzc2VydF9hcnJheV9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldFJlbW90ZUNhbmRpZGF0ZXMo
KSwgW10pOwogfSwgJ2FkZFJlbW90ZUNhbmRpZGF0ZSgpIHRocm93cyBpZiBjbG9zZWQnKTsKIAog
dGVzdCgoKSA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQo
KTsKLSAgYXNzZXJ0X3Rocm93c19kb20oJ09wZXJhdGlvbkVycm9yJywKKyAgYXNzZXJ0X3Rocm93
cygnT3BlcmF0aW9uRXJyb3InLAogICAgICgpID0+IGljZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5k
aWRhdGUoCi0gICAgICBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsgY2FuZGlkYXRlOiAnaW52YWxpZCcs
IHNkcE1pZDogJycgfSkpKTsKKyAgICAgIG5ldyBSVENJY2VDYW5kaWRhdGUoeyBjYW5kaWRhdGU6
ICdpbnZhbGlkJyB9KSkpOwogICBhc3NlcnRfYXJyYXlfZXF1YWxzKGljZVRyYW5zcG9ydC5nZXRS
ZW1vdGVDYW5kaWRhdGVzKCksIFtdKTsKIH0sICdhZGRSZW1vdGVDYW5kaWRhdGUoKSB0aHJvd3Mg
b24gaW52YWxpZCBjYW5kaWRhdGUnKTsKIApAQCAtMjU2LDIwICsyMTYsMjAgQEAgdGVzdCh0ID0+
IHsKIHRlc3QodCA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQo
dCk7CiAgIGljZVRyYW5zcG9ydC5zdGFydChkdW1teVJlbW90ZVBhcmFtZXRlcnMpOwotICBhc3Nl
cnRfdGhyb3dzX2RvbSgnSW52YWxpZFN0YXRlRXJyb3InLAorICBhc3NlcnRfdGhyb3dzKCdJbnZh
bGlkU3RhdGVFcnJvcicsCiAgICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KGR1bW15UmVtb3Rl
UGFyYW1ldGVycywgJ2NvbnRyb2xsaW5nJykpOwogfSwgJ3N0YXJ0KCkgdGhyb3dzIGlmIGxhdGVy
IGNhbGxlZCB3aXRoIGEgZGlmZmVyZW50IHJvbGUnKTsKIAogdGVzdCh0ID0+IHsKICAgY29uc3Qg
aWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKICAgaWNlVHJhbnNwb3J0LnN0YXJ0
KHsKLSAgICB1c2VybmFtZUZyYWdtZW50OiAnMScucmVwZWF0KDQpLAotICAgIHBhc3N3b3JkOiAn
MScucmVwZWF0KDIyKSwKKyAgICB1c2VybmFtZUZyYWdtZW50OiAndXNlcicsCisgICAgcGFzc3dv
cmQ6ICdwYXNzJywKICAgfSk7CiAgIGljZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5kaWRhdGUoY2Fu
ZGlkYXRlMSk7CiAgIGNvbnN0IGNoYW5nZWRSZW1vdGVQYXJhbWV0ZXJzID0gewotICAgIHVzZXJu
YW1lRnJhZ21lbnQ6ICcyJy5yZXBlYXQoNCksCi0gICAgcGFzc3dvcmQ6ICcyJy5yZXBlYXQoMjIp
LAorICAgIHVzZXJuYW1lRnJhZ21lbnQ6ICd1c2VyMicsCisgICAgcGFzc3dvcmQ6ICdwYXNzJywK
ICAgfTsKICAgaWNlVHJhbnNwb3J0LnN0YXJ0KGNoYW5nZWRSZW1vdGVQYXJhbWV0ZXJzKTsKICAg
YXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuc3RhdGUsICduZXcnKTsKQEAgLTI4MCw4ICsyNDAs
MjIgQEAgdGVzdCh0ID0+IHsKICAgICdsYXRlciBjYWxsZWQgd2l0aCBkaWZmZXJlbnQgcmVtb3Rl
IHBhcmFtZXRlcnMnKTsKIAogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBbIGxv
Y2FsVHJhbnNwb3J0LCByZW1vdGVUcmFuc3BvcnQgXSA9Ci0gICAgICBtYWtlR2F0aGVyQW5kU3Rh
cnRUd29JY2VUcmFuc3BvcnRzKHQpOworICBjb25zdCBsb2NhbFRyYW5zcG9ydCA9IG1ha2VJY2VU
cmFuc3BvcnQodCk7CisgIGNvbnN0IHJlbW90ZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQo
dCk7CisgIGxvY2FsVHJhbnNwb3J0Lm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7CisgICAgaWYgKGUu
Y2FuZGlkYXRlKSB7CisgICAgICByZW1vdGVUcmFuc3BvcnQuYWRkUmVtb3RlQ2FuZGlkYXRlKGUu
Y2FuZGlkYXRlKTsKKyAgICB9CisgIH07CisgIHJlbW90ZVRyYW5zcG9ydC5vbmljZWNhbmRpZGF0
ZSA9IGUgPT4geworICAgIGlmIChlLmNhbmRpZGF0ZSkgeworICAgICAgbG9jYWxUcmFuc3BvcnQu
YWRkUmVtb3RlQ2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsKKyAgICB9CisgIH07CisgIGxvY2FsVHJh
bnNwb3J0LmdhdGhlcih7fSk7CisgIHJlbW90ZVRyYW5zcG9ydC5nYXRoZXIoe30pOworICBsb2Nh
bFRyYW5zcG9ydC5zdGFydChyZW1vdGVUcmFuc3BvcnQuZ2V0TG9jYWxQYXJhbWV0ZXJzKCksICdj
b250cm9sbGluZycpOworICByZW1vdGVUcmFuc3BvcnQuc3RhcnQobG9jYWxUcmFuc3BvcnQuZ2V0
TG9jYWxQYXJhbWV0ZXJzKCksICdjb250cm9sbGVkJyk7CiAgIGNvbnN0IGxvY2FsV2F0Y2hlciA9
IG5ldyBFdmVudFdhdGNoZXIodCwgbG9jYWxUcmFuc3BvcnQsICdzdGF0ZWNoYW5nZScpOwogICBj
b25zdCByZW1vdGVXYXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCByZW1vdGVUcmFuc3BvcnQs
ICdzdGF0ZWNoYW5nZScpOwogICBhd2FpdCBQcm9taXNlLmFsbChbCkBAIC0yOTQsNjkgKzI2OCw0
IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgXSk7CiB9LCAnVHdvIFJUQ0ljZVRyYW5z
cG9ydHMgY29ubmVjdCB0byBlYWNoIG90aGVyJyk7CiAKLVsnY29udHJvbGxpbmcnLCAnY29udHJv
bGxlZCddLmZvckVhY2gocm9sZSA9PiB7Ci0gIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAg
ICBjb25zdCBbIGxvY2FsVHJhbnNwb3J0LCByZW1vdGVUcmFuc3BvcnQgXSA9Ci0gICAgICAgIG1h
a2VBbmRHYXRoZXJUd29JY2VUcmFuc3BvcnRzKHQpOwotICAgIGxvY2FsVHJhbnNwb3J0LnN0YXJ0
KHJlbW90ZVRyYW5zcG9ydC5nZXRMb2NhbFBhcmFtZXRlcnMoKSwgcm9sZSk7Ci0gICAgcmVtb3Rl
VHJhbnNwb3J0LnN0YXJ0KGxvY2FsVHJhbnNwb3J0LmdldExvY2FsUGFyYW1ldGVycygpLCByb2xl
KTsKLSAgICBjb25zdCBsb2NhbFdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIGxvY2FsVHJh
bnNwb3J0LCAnc3RhdGVjaGFuZ2UnKTsKLSAgICBjb25zdCByZW1vdGVXYXRjaGVyID0gbmV3IEV2
ZW50V2F0Y2hlcih0LCByZW1vdGVUcmFuc3BvcnQsICdzdGF0ZWNoYW5nZScpOwotICAgIGF3YWl0
IFByb21pc2UuYWxsKFsKLSAgICAgIGxvY2FsV2F0Y2hlci53YWl0X2Zvcignc3RhdGVjaGFuZ2Un
KS50aGVuKCgpID0+IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhsb2NhbFRyYW5zcG9ydC5zdGF0
ZSwgJ2Nvbm5lY3RlZCcpOwotICAgICAgfSksCi0gICAgICByZW1vdGVXYXRjaGVyLndhaXRfZm9y
KCdzdGF0ZWNoYW5nZScpLnRoZW4oKCkgPT4gewotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlbW90
ZVRyYW5zcG9ydC5zdGF0ZSwgJ2Nvbm5lY3RlZCcpOwotICAgICAgfSksCi0gICAgXSk7Ci0gIH0s
IGBUd28gUlRDSWNlVHJhbnNwb3J0cyBjb25maWd1cmVkIHdpdGggdGhlICR7cm9sZX0gcm9sZSBy
ZXNvbHZlIHRoZSBgICsKLSAgICAgICdjb25mbGljdCBpbiBiYW5kIGFuZCBzdGlsbCBjb25uZWN0
LicpOwotfSk7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgYXN5bmMgZnVuY3Rpb24g
d2FpdEZvclNlbGVjdGVkQ2FuZGlkYXRlUGFpckNoYW5nZVRoZW5Db25uZWN0ZWQodCwgdHJhbnNw
b3J0LAotICAgICAgdHJhbnNwb3J0TmFtZSkgewotICAgIGNvbnN0IHdhdGNoZXIgPSBuZXcgRXZl
bnRXYXRjaGVyKHQsIHRyYW5zcG9ydCwKLSAgICAgICAgWyAnc3RhdGVjaGFuZ2UnLCAnc2VsZWN0
ZWRjYW5kaWRhdGVwYWlyY2hhbmdlJyBdKTsKLSAgICBhd2FpdCB3YXRjaGVyLndhaXRfZm9yKCdz
ZWxlY3RlZGNhbmRpZGF0ZXBhaXJjaGFuZ2UnKTsKLSAgICBjb25zdCBzZWxlY3RlZENhbmRpZGF0
ZVBhaXIgPSB0cmFuc3BvcnQuZ2V0U2VsZWN0ZWRDYW5kaWRhdGVQYWlyKCk7Ci0gICAgYXNzZXJ0
X25vdF9lcXVhbHMoc2VsZWN0ZWRDYW5kaWRhdGVQYWlyLCBudWxsLAotICAgICAgICBgJHt0cmFu
c3BvcnROYW1lfSBzZWxlY3RlZCBjYW5kaWRhdGUgcGFpciBzaG91bGQgbm90IGJlIG51bGwgb25j
ZSBgICsKLSAgICAgICAgJ3RoZSBzZWxlY3RlZGNhbmRpZGF0ZXBhaXJjaGFuZ2UgZXZlbnQgZmly
ZXMnKTsKLSAgICBhc3NlcnRfdHJ1ZSgKLSAgICAgICAgdHJhbnNwb3J0LmdldExvY2FsQ2FuZGlk
YXRlcygpLnNvbWUoCi0gICAgICAgICAgICAoeyBjYW5kaWRhdGUgfSkgPT4KLSAgICAgICAgICAg
ICAgICBjYW5kaWRhdGUgPT09IHNlbGVjdGVkQ2FuZGlkYXRlUGFpci5sb2NhbC5jYW5kaWRhdGUp
LAotICAgICAgICBgJHt0cmFuc3BvcnROYW1lfSBzZWxlY3RlZCBjYW5kaWRhdGUgcGFpciBsb2Nh
bCBzaG91bGQgYmUgaW4gdGhlIGAgKwotICAgICAgICAnbGlzdCBvZiBsb2NhbCBjYW5kaWRhdGVz
Jyk7Ci0gICAgYXNzZXJ0X3RydWUoCi0gICAgICAgIHRyYW5zcG9ydC5nZXRSZW1vdGVDYW5kaWRh
dGVzKCkuc29tZSgKLSAgICAgICAgICAgICh7IGNhbmRpZGF0ZSB9KSA9PgotICAgICAgICAgICAg
ICAgIGNhbmRpZGF0ZSA9PT0gc2VsZWN0ZWRDYW5kaWRhdGVQYWlyLnJlbW90ZS5jYW5kaWRhdGUp
LAotICAgICAgICBgJHt0cmFuc3BvcnROYW1lfSBzZWxlY3RlZCBjYW5kaWRhdGUgcGFpciBsb2Nh
bCBzaG91bGQgYmUgaW4gdGhlIGAgKwotICAgICAgICAnbGlzdCBvZiByZW1vdGUgY2FuZGlkYXRl
cycpOwotICAgIGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ3N0YXRlY2hhbmdlJyk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyh0cmFuc3BvcnQuc3RhdGUsICdjb25uZWN0ZWQnLAotICAgICAgICBgJHt0cmFu
c3BvcnROYW1lfSBzdGF0ZSBzaG91bGQgYmUgJ2Nvbm5lY3RlZCdgKTsKLSAgfQotICBjb25zdCBb
IGxvY2FsVHJhbnNwb3J0LCByZW1vdGVUcmFuc3BvcnQgXSA9Ci0gICAgICBtYWtlR2F0aGVyQW5k
U3RhcnRUd29JY2VUcmFuc3BvcnRzKHQpOwotICBhd2FpdCBQcm9taXNlLmFsbChbCi0gICAgd2Fp
dEZvclNlbGVjdGVkQ2FuZGlkYXRlUGFpckNoYW5nZVRoZW5Db25uZWN0ZWQodCwgbG9jYWxUcmFu
c3BvcnQsCi0gICAgICAgICdsb2NhbCB0cmFuc3BvcnQnKSwKLSAgICB3YWl0Rm9yU2VsZWN0ZWRD
YW5kaWRhdGVQYWlyQ2hhbmdlVGhlbkNvbm5lY3RlZCh0LCByZW1vdGVUcmFuc3BvcnQsCi0gICAg
ICAgICdyZW1vdGUgdHJhbnNwb3J0JyksCi0gIF0pOwotfSwgJ1NlbGVjdGVkIGNhbmRpZGF0ZSBw
YWlyIGNoYW5nZXMgb25jZSB0aGUgUlRDSWNlVHJhbnNwb3J0cyBjb25uZWN0LicpOwotCi1wcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IFsgdHJhbnNwb3J0LCBdID0gbWFrZUdhdGhl
ckFuZFN0YXJ0VHdvSWNlVHJhbnNwb3J0cyh0KTsKLSAgY29uc3Qgd2F0Y2hlciA9IG5ldyBFdmVu
dFdhdGNoZXIodCwgdHJhbnNwb3J0LCAnc2VsZWN0ZWRjYW5kaWRhdGVwYWlyY2hhbmdlJyk7Ci0g
IGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ3NlbGVjdGVkY2FuZGlkYXRlcGFpcmNoYW5nZScpOwot
ICB0cmFuc3BvcnQuc3RvcCgpOwotICBhc3NlcnRfZXF1YWxzKHRyYW5zcG9ydC5nZXRTZWxlY3Rl
ZENhbmRpZGF0ZVBhaXIoKSwgbnVsbCk7Ci19LCAnZ2V0U2VsZWN0ZWRDYW5kaWRhdGVQYWlyKCkg
cmV0dXJucyBudWxsIG9uY2UgdGhlIFJUQ0ljZVRyYW5zcG9ydCBpcyAnICsKLSAgICAnc3RvcHBl
ZC4nKTsKLQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRh
dGUtY29ubmVjdGlvblNldHVwLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtY29u
bmVjdGlvblNldHVwLmh0bWwKaW5kZXggMTFmYzRlNGZhMGMyMjJkZjRlMTQ2OWE1MjU4Mjk1YmYz
NzAzNTIzYy4uZDJjZGU1OTM2NDA0NTFmNDMxN2NiMDljYmExNDQyYmIxYzAyODIyMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1cC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAuaHRtbApAQCAt
MzUsMTYgKzM1LDggQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogCiAgIGxldCBjYW5kaWRh
dGVzMXRvMiA9IFtdOwogICBsZXQgY2FuZGlkYXRlczJ0bzEgPSBbXTsKLSAgcGMxLm9uaWNlY2Fu
ZGlkYXRlID0gZXZlbnQgPT4gewotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAgICAgIGNh
bmRpZGF0ZXMxdG8yLnB1c2goZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9Ci0gIH0KLSAgcGMyLm9u
aWNlY2FuZGlkYXRlID0gZXZlbnQgPT4gewotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAg
ICAgIGNhbmRpZGF0ZXMydG8xLnB1c2goZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9Ci0gIH0KKyAg
cGMxLm9uaWNlY2FuZGlkYXRlID0gZSA9PiBjYW5kaWRhdGVzMXRvMi5wdXNoKGUuY2FuZGlkYXRl
KTsKKyAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZSA9PiBjYW5kaWRhdGVzMnRvMS5wdXNoKGUuY2Fu
ZGlkYXRlKTsKICAgY29uc3QgcGMyR2F0aGVyZWRDYW5kaWRhdGVzID0gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsKICAgICBwYzIuYWRkRXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5nc3RhdGVj
aGFuZ2UnLCAoKSA9PiB7CiAgICAgICBpZiAocGMyLmljZUdhdGhlcmluZ1N0YXRlID09ICdjb21w
bGV0ZScpIHsKQEAgLTc0LDE2ICs2Niw4IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKIAog
ICBsZXQgY2FuZGlkYXRlczF0bzIgPSBbXTsKICAgbGV0IGNhbmRpZGF0ZXMydG8xID0gW107Ci0g
IHBjMS5vbmljZWNhbmRpZGF0ZSA9IGV2ZW50ID0+IHsKLSAgICBpZiAoZXZlbnQuY2FuZGlkYXRl
KSB7Ci0gICAgICBjYW5kaWRhdGVzMXRvMi5wdXNoKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQot
ICB9Ci0gIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGV2ZW50ID0+IHsKLSAgICBpZiAoZXZlbnQuY2Fu
ZGlkYXRlKSB7Ci0gICAgICBjYW5kaWRhdGVzMnRvMS5wdXNoKGV2ZW50LmNhbmRpZGF0ZSk7Ci0g
ICAgfQotICB9CisgIHBjMS5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gY2FuZGlkYXRlczF0bzIucHVz
aChlLmNhbmRpZGF0ZSk7CisgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gY2FuZGlkYXRlczJ0
bzEucHVzaChlLmNhbmRpZGF0ZSk7CiAgIGNvbnN0IHBjMUdhdGhlcmVkQ2FuZGlkYXRlcyA9IG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgcGMxLmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWdh
dGhlcmluZ3N0YXRlY2hhbmdlJywgKCkgPT4gewogICAgICAgaWYgKHBjMS5pY2VHYXRoZXJpbmdT
dGF0ZSA9PSAnY29tcGxldGUnKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5k
aWRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWV4cGVjdGVk
LnR4dAppbmRleCAyMzBjYTdiOWM4NWNiMjg4NmNmMTk2MTk0ZDJhNmE5NjU2ZmYwMmUxLi5mNDFh
ZTQyNTNkZjU4YmNkY2JkMTRhMmQxZTQxMWY5YmNlMWIzODg4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1hZGRJY2VDYW5kaWRhdGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZElj
ZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQKQEAgLTEsOSArMSwxMyBAQAogCiBGQUlMIEFkZCBJQ0Ug
Y2FuZGlkYXRlIGJlZm9yZSBzZXR0aW5nIHJlbW90ZSBkZXNjcmlwdGlvbiBzaG91bGQgcmVqZWN0
IHdpdGggSW52YWxpZFN0YXRlRXJyb3IgcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIk9wZXJhdGlvbkVycm9yOiBFcnJv
ciBwcm9jZXNzaW5nIElDRSBjYW5kaWRhdGUiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIElu
dmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMCwgZXhwZWN0ZWQg
MTEKLUZBSUwgYWRkSWNlQ2FuZGlkYXRlKHsiY2FuZGlkYXRlIjoiIiwic2RwTWlkIjpudWxsLCJz
ZHBNTGluZUluZGV4IjpudWxsfSkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlk
YXRlcyB0byBib3RoIG0tc2VjdGlvbnMgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGlu
ZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgYWRkSWNlQ2FuZGlkYXRlKHVuZGVmaW5lZCkgc2hv
dWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnMg
YXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1l
ZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgYWRkSWNlQ2FuZGlkYXRlKG51bGwpIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNh
bmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRl
IGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVv
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIGFkZEljZUNhbmRpZGF0ZSh7fSkgc2hvdWxk
IHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnMgYXNz
ZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlh
IGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
YWRkSWNlQ2FuZGlkYXRlKHsiY2FuZGlkYXRlIjoiIiwic2RwTWlkIjpudWxsLCJzZHBNTGluZUlu
ZGV4IjpudWxsfSkgd29ya3MKK0ZBSUwgYWRkSWNlQ2FuZGlkYXRlKHsiY2FuZGlkYXRlIjoiIiwi
c2RwTWlkIjpudWxsLCJzZHBNTGluZUluZGV4IjpudWxsfSkgYWRkcyBhPWVuZC1vZi1jYW5kaWRh
dGVzIHRvIGJvdGggbS1zZWN0aW9ucyBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5l
IHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBhZGRJY2VDYW5kaWRhdGUodW5kZWZpbmVkKSB3b3Jr
cworRkFJTCBhZGRJY2VDYW5kaWRhdGUodW5kZWZpbmVkKSBhZGRzIGE9ZW5kLW9mLWNhbmRpZGF0
ZXMgdG8gYm90aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxpbmUg
dG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVvIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitQQVNTIGFkZEljZUNhbmRpZGF0ZShudWxsKSB3b3JrcworRkFJ
TCBhZGRJY2VDYW5kaWRhdGUobnVsbCkgYWRkcyBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGgg
bS1zZWN0aW9ucyBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5k
IGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorUEFTUyBhZGRJY2VDYW5kaWRhdGUoe30pIHdvcmtzCitGQUlMIGFkZEljZUNhbmRp
ZGF0ZSh7fSkgYWRkcyBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9ucyBhc3Nl
cnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEg
bGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBh
ZGRJY2VDYW5kaWRhdGUoe30pIGluIHN0YWJsZSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1v
Zi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9ucyBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRp
ZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12
aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBhZGRJY2VDYW5kaWRhdGUoe3VzZXJu
YW1lRnJhZ21lbnQ6IHVzZXJuYW1lRnJhZ21lbnQxLCBzZHBNaWQ6IHNkcE1pZDF9KSBzaG91bGQg
d29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIHRoZSBmaXJzdCBtLXNlY3Rpb24g
YXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1l
ZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZB
SUwgYWRkSWNlQ2FuZGlkYXRlKHt1c2VybmFtZUZyYWdtZW50OiB1c2VybmFtZUZyYWdtZW50Miwg
c2RwTUxpbmVJbmRleDogMX0pIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0
ZXMgdG8gdGhlIGZpcnN0IG0tc2VjdGlvbiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKQEAgLTE3LDggKzIxLDkgQEAgUEFTUyBhZGRJY2VDYW5kaWRhdGUgd2l0aCBmaXJzdCBz
ZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXggYWRkIGNhbmRpZGF0ZSB0byBmaXJzdAogUEFTUyBhZGRJ
Y2VDYW5kaWRhdGUgd2l0aCBzZWNvbmQgc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4IHNob3VsZCBh
ZGQgY2FuZGlkYXRlIHRvIHNlY29uZCBtZWRpYSBzdHJlYW0KIFBBU1MgQWRkIGNhbmRpZGF0ZSBm
b3IgZmlyc3QgbWVkaWEgc3RyZWFtIHdpdGggbnVsbCB1c2VybmFtZUZyYWdtZW50IHNob3VsZCBh
ZGQgY2FuZGlkYXRlIHRvIGZpcnN0IG1lZGlhIHN0cmVhbQogUEFTUyBBZGRpbmcgbXVsdGlwbGUg
Y2FuZGlkYXRlcyBzaG91bGQgYWRkIGNhbmRpZGF0ZXMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBt
ZWRpYSBzdHJlYW0KLUZBSUwgQWRkIHdpdGggZW1wdHkgY2FuZGlkYXRlIHN0cmluZyAoZW5kIG9m
IGNhbmRpZGF0ZSkgc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUg
bGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8g
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgQWRkIHdpdGggZW1wdHkgY2FuZGlkYXRlIHN0
cmluZyAoZW5kIG9mIGNhbmRpZGF0ZXMpIHNob3VsZCBzdWNjZWVkIGFzc2VydF90cnVlOiBFeHBl
Y3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlv
IGFuZCBtPXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIEFkZCBjYW5kaWRhdGUg
d2l0aCBib3RoIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCBtYW51YWxseSBzZXQgdG8gbnVsbCBz
aG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yCitQQVNTIGFkZEljZUNhbmRpZGF0ZSB3aXRoIGEg
Y2FuZGlkYXRlIGFuZCBuZWl0aGVyIHNkcE1pZCBub3Igc2RwTUxpbmVJbmRleCBzaG91bGQgcmVq
ZWN0IHdpdGggVHlwZUVycm9yCiBQQVNTIEFkZCBjYW5kaWRhdGUgd2l0aCBvbmx5IHZhbGlkIGNh
bmRpZGF0ZSBzdHJpbmcgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcgogUEFTUyBBZGQgY2Fu
ZGlkYXRlIHdpdGggaW52YWxpZCBjYW5kaWRhdGUgc3RyaW5nIGFuZCBib3RoIHNkcE1pZCBhbmQg
c2RwTUxpbmVJbmRleCBudWxsIHNob3VsZCByZWplY3Qgd2l0aCBUeXBlRXJyb3IKIFBBU1MgQWRk
IGNhbmRpZGF0ZSB3aXRoIGludmFsaWQgc2RwTWlkIHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRp
b25FcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbAppbmRleCA1ZmNiNmU4NjRhOGEyMjNkNTA2
MmIyMmI3YThmNWU4OWZiZjlkNGNiLi5kOGUyNGQ2MDhiYWVlNmM2MGU2ZDJiM2FlMjQ2OTc0ZmU2
OTM2ZWMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbApAQCAtMTU4LDE4ICsxNTgsMjggQEAg
YT1ydGNwLXJzaXplCiAgICAgbnVsbCwKICAgICAvLyBNZW1iZXJzIGluIHRoZSBkaWN0aW9uYXJ5
IHRha2UgdGhlaXIgZGVmYXVsdCB2YWx1ZXMKICAgICB7fQotICBdLmZvckVhY2goaW5pdCA9PiBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgXS5mb3JFYWNoKGluaXQgPT4geworICAgIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAKLSAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKIAotICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Np
b25EZXNjKTsKLSAgICBhd2FpdCBwYy5hZGRJY2VDYW5kaWRhdGUoaW5pdCk7Ci0gICAgYXNzZXJ0
X2NhbmRpZGF0ZV9saW5lX2JldHdlZW4ocGMucmVtb3RlRGVzY3JpcHRpb24uc2RwLAotICAgICAg
bWVkaWFMaW5lMSwgZW5kT2ZDYW5kaWRhdGVMaW5lLCBtZWRpYUxpbmUyKTsKLSAgICBhc3NlcnRf
Y2FuZGlkYXRlX2xpbmVfYWZ0ZXIocGMucmVtb3RlRGVzY3JpcHRpb24uc2RwLAotICAgICAgbWVk
aWFMaW5lMiwgZW5kT2ZDYW5kaWRhdGVMaW5lKTsKLSAgfSwgYGFkZEljZUNhbmRpZGF0ZSgke0pT
T04uc3RyaW5naWZ5KGluaXQpfSkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlk
YXRlcyB0byBib3RoIG0tc2VjdGlvbnNgKSk7CisgICAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNj
cmlwdGlvbihzZXNzaW9uRGVzYyk7CisgICAgICBhd2FpdCBwYy5hZGRJY2VDYW5kaWRhdGUoaW5p
dCk7CisgICAgfSwgYGFkZEljZUNhbmRpZGF0ZSgke0pTT04uc3RyaW5naWZ5KGluaXQpfSkgd29y
a3NgKTsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNs
b3NlKCkpOworCisgICAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVz
Yyk7CisgICAgICBhd2FpdCBwYy5hZGRJY2VDYW5kaWRhdGUoaW5pdCk7CisgICAgICBhc3NlcnRf
Y2FuZGlkYXRlX2xpbmVfYmV0d2VlbihwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAsCisgICAgICAg
IG1lZGlhTGluZTEsIGVuZE9mQ2FuZGlkYXRlTGluZSwgbWVkaWFMaW5lMik7CisgICAgICBhc3Nl
cnRfY2FuZGlkYXRlX2xpbmVfYWZ0ZXIocGMucmVtb3RlRGVzY3JpcHRpb24uc2RwLAorICAgICAg
ICBtZWRpYUxpbmUyLCBlbmRPZkNhbmRpZGF0ZUxpbmUpOworICAgIH0sIGBhZGRJY2VDYW5kaWRh
dGUoJHtKU09OLnN0cmluZ2lmeShpbml0KX0pIGFkZHMgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBi
b3RoIG0tc2VjdGlvbnNgKTsKKyAgfSk7CiAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewog
ICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CkBAIC00MTgsNyArNDI4LDcg
QEAgYT1ydGNwLXJzaXplCiAgICAgICBhc3NlcnRfY2FuZGlkYXRlX2xpbmVfYmV0d2VlbihwYy5y
ZW1vdGVEZXNjcmlwdGlvbi5zZHAsCiAgICAgICAgIG1lZGlhTGluZTEsIGVuZE9mQ2FuZGlkYXRl
TGluZSwgbWVkaWFMaW5lMik7CiAgICAgfSk7Ci0gIH0sICdBZGQgd2l0aCBlbXB0eSBjYW5kaWRh
dGUgc3RyaW5nIChlbmQgb2YgY2FuZGlkYXRlKSBzaG91bGQgc3VjY2VlZCcpOworICB9LCAnQWRk
IHdpdGggZW1wdHkgY2FuZGlkYXRlIHN0cmluZyAoZW5kIG9mIGNhbmRpZGF0ZXMpIHNob3VsZCBz
dWNjZWVkJyk7CiAKICAgLyoKICAgICA0LjQuMi4gIGFkZEljZUNhbmRpZGF0ZQpAQCAtNDQwLDYg
KzQ1MCwxNSBAQCBhPXJ0Y3AtcnNpemUKICAgICAgICAgfSkpKTsKICAgfSwgJ0FkZCBjYW5kaWRh
dGUgd2l0aCBib3RoIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCBtYW51YWxseSBzZXQgdG8gbnVs
bCBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yJyk7CiAKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGF3YWl0IHBjLnNldFJlbW90ZURl
c2NyaXB0aW9uKHNlc3Npb25EZXNjKTsKKyAgICBwcm9taXNlX3JlamVjdHNfanModCwgVHlwZUVy
cm9yLAorICAgICAgcGMuYWRkSWNlQ2FuZGlkYXRlKHtjYW5kaWRhdGU6IGNhbmRpZGF0ZVN0cjF9
KSk7CisgIH0sICdhZGRJY2VDYW5kaWRhdGUgd2l0aCBhIGNhbmRpZGF0ZSBhbmQgbmVpdGhlciBz
ZHBNaWQgbm9yIHNkcE1MaW5lSW5kZXggc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcicpOwor
CiAgIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOwogCkBAIC02MDksNSArNjI4LDQgQEAgYT1ydGNwLXJzaXplCiAgICAgICAgICAgdXNl
cm5hbWVGcmFnbWVudDogdXNlcm5hbWVGcmFnbWVudDEKICAgICAgICAgfSkpKTsKICAgfSwgJ0Fk
ZCBjYW5kaWRhdGUgd2l0aCBzZHBNaWQgYmVsb25naW5nIHRvIGRpZmZlcmVudCB1c2VybmFtZUZy
YWdtZW50IHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRpb25FcnJvcicpOwotCiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAyMjI3ZDYzZDA3MmEw
ZTAzNDg2YzA0NzgyYjU5OTc5ZThkMzdjY2ZlLi40ZDU1Mjk2MDUwNDMyZDgxNjBlZWViODUzYTBk
MjUwOGM2MmIyZjU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkVHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC04LDQgKzgsNSBAQCBQQVNTIGFkZFRyYWNrIHdpdGggZXhpc3Rpbmcgc2VuZGVyIHdpdGggbnVs
bCB0cmFjaywgc2FtZSBraW5kLCBhbmQgcmVjdm9ubHkgZGlyZQogUEFTUyBhZGRUcmFjayB3aXRo
IGV4aXN0aW5nIHNlbmRlciB0aGF0IGhhcyBub3QgYmVlbiB1c2VkIHRvIHNlbmQgc2hvdWxkIHJl
dXNlIHRoZSBzZW5kZXIKIFBBU1MgYWRkVHJhY2sgd2l0aCBleGlzdGluZyBzZW5kZXIgdGhhdCBo
YXMgYmVlbiB1c2VkIHRvIHNlbmQgc2hvdWxkIGNyZWF0ZSBuZXcgc2VuZGVyCiBQQVNTIGFkZFRy
YWNrIHdpdGggZXhpc3Rpbmcgc2VuZGVyIHdpdGggbnVsbCB0cmFjaywgZGlmZmVyZW50IGtpbmQs
IGFuZCByZWN2b25seSBkaXJlY3Rpb24gc2hvdWxkIGNyZWF0ZSBuZXcgc2VuZGVyCitGQUlMIEFk
ZGluZyBtb3JlIHRyYWNrcyBkb2VzIG5vdCBnZW5lcmF0ZSBtb3JlIGNhbmRpZGF0ZXMgaWYgYnVu
ZGxlZCBhc3NlcnRfdW5yZWFjaGVkOiBObyBjYWxsZXIgY2FuZGlkYXRlcyBzaG91bGQgYmUgZ2Vu
ZXJhdGVkLiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tYWRkVHJhY2suaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLmh0bWwK
aW5kZXggNzU4NTk2MWYzMWNlOTQyZGI5NGE2ZTU5YmU3NmNmOGI4YjNkZTBkZi4uNTI1MzIzY2Fk
MDdkN2RkOTM4ZGE3NDRhMDJkZjkzMzk3YjJlNWVlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
YWRkVHJhY2suaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy5odG1s
CkBAIC0yODYsNSArMjg2LDU1IEBACiAgICAgICA1LjEuIGFkZFRyYWNrCiAgICAgICAgIDEwLiBV
cGRhdGUgdGhlIG5lZ290aWF0aW9uLW5lZWRlZCBmbGFnIGZvciBjb25uZWN0aW9uLgogCi0gICAq
LworICAqLworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBjYWxsZXIg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxl
ci5jbG9zZSgpKTsKKyAgICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlZS5jbG9zZSgpKTsKKworICAgIGNvbnN0IHN0
cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOworICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3Rv
cCgpKSk7CisgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKKyAgICBjb25z
dCB0cmFuc2NlaXZlciA9IGNhbGxlci5hZGRUcmFuc2NlaXZlcih0cmFjayk7CisgICAgLy8gTm90
ZSB0aGF0IHRoaXMgdGVzdCBkb2Vzbid0IHByb2Nlc3MgY2FuaWRpZGF0ZXMuCisgICAgeworICAg
ICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIoKTsKKyAgICAgIGF3YWl0
IGNhbGxlci5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICAgIGF3YWl0IGNhbGxlZS5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgICAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBj
YWxsZWUuY3JlYXRlQW5zd2VyKCk7CisgICAgICBhd2FpdCBjYWxsZWUuc2V0TG9jYWxEZXNjcmlw
dGlvbihhbnN3ZXIpOworICAgICAgYXdhaXQgY2FsbGVyLnNldFJlbW90ZURlc2NyaXB0aW9uKGFu
c3dlcik7CisgICAgfQorICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVj
dGlvbiwgJ3NlbmRvbmx5Jyk7CisgICAgYXdhaXQgd2FpdEZvckljZUdhdGhlcmluZ1N0YXRlKGNh
bGxlciwgWydjb21wbGV0ZSddKTsKKyAgICBhd2FpdCB3YWl0Rm9ySWNlR2F0aGVyaW5nU3RhdGUo
Y2FsbGVlLCBbJ2NvbXBsZXRlJ10pOworCisgICAgY29uc3Qgc2Vjb25kX3N0cmVhbSA9IGF3YWl0
IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
c2Vjb25kX3N0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkp
OworICAgIC8vIFRoZXJlIG1heSBiZSBjYWxsZWUgY2FuZGlkYXRlcyBpbiBmbGlnaHQuIEl0IHNl
ZW1zIHRoYXQgd2FpdGluZworICAgIC8vIGZvciBhIGNyZWF0ZU9mZmVyKCkgaXMgZW5vdWdoIHRp
bWUgdG8gbGV0IHRoZW0gY29tcGxldGUgcHJvY2Vzc2luZy4KKyAgICAvLyBUT0RPKGh0dHBzOi8v
Y3JidWcuY29tL3dlYnJ0Yy8xMzA5NSk6IEZpeCBidWcgYW5kIHJlbW92ZS4KKyAgICBhd2FpdCBj
YWxsZXIuY3JlYXRlT2ZmZXIoKTsKKworICAgIGNvbnN0IFtzZWNvbmRfdHJhY2tdID0gc2Vjb25k
X3N0cmVhbS5nZXRUcmFja3MoKTsKKyAgICBjYWxsZXIub25pY2VjYW5kaWRhdGUgPSB0LnVucmVh
Y2hlZF9mdW5jKAorICAgICAgJ05vIGNhbGxlciBjYW5kaWRhdGVzIHNob3VsZCBiZSBnZW5lcmF0
ZWQuJyk7CisgICAgY2FsbGVlLm9uaWNlY2FuZGlkYXRlID0gdC51bnJlYWNoZWRfZnVuYygKKyAg
ICAgICdObyBjYWxsZWUgY2FuZGlkYXRlcyBzaG91bGQgYmUgZ2VuZXJhdGVkLicpOworICAgIGNh
bGxlci5hZGRUcmFjayhzZWNvbmRfdHJhY2spOworICAgIHsKKyAgICAgIGNvbnN0IG9mZmVyID0g
YXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CisgICAgICBhd2FpdCBjYWxsZXIuc2V0TG9jYWxE
ZXNjcmlwdGlvbihvZmZlcik7CisgICAgICBhd2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRp
b24ob2ZmZXIpOworICAgICAgY29uc3QgYW5zd2VyID0gYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dl
cigpOworICAgICAgYXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAg
ICAgIGF3YWl0IGNhbGxlci5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOworICAgIH0KKyAg
ICAvLyBDaGVjayB0aGF0IHdlJ3JlIGJ1bmRsZWQuCisgICAgY29uc3QgW2ZpcnN0X3RyYW5zY2Vp
dmVyLCBzZWNvbmRfdHJhbnNjZWl2ZXJdID0gY2FsbGVyLmdldFRyYW5zY2VpdmVycygpOworICAg
IGFzc2VydF9lcXVhbHMoZmlyc3RfdHJhbnNjZWl2ZXIudHJhbnNwb3J0LCBzZWNvbmRfdHJhbnNj
ZWl2ZXIudHJhbnNwb3J0KTsKKworICB9LCAnQWRkaW5nIG1vcmUgdHJhY2tzIGRvZXMgbm90IGdl
bmVyYXRlIG1vcmUgY2FuZGlkYXRlcyBpZiBidW5kbGVkJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNhcHR1cmUtdmlkZW8uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNh
cHR1cmUtdmlkZW8uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmMwMjIyZGMyMWQ3NzlhNmFiOTgy
ZDk2M2NmM2ZkNWFjZmMxOWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FwdHVy
ZS12aWRlby5odHRwcy5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBj
b250ZW50PSJsb25nIj4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworLy8gVGhpcyB0
ZXN0IGNoZWNrcyB0aGF0IDx2aWRlbz4gY2FwdHVyZSB3b3JrcyB2aWEgUGVlckNvbm5lY3Rpb24u
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc291cmNlVmlkZW8gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICBzb3VyY2VWaWRlby5zcmMgPSAiL21lZGlh
L3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmci53ZWJtIjsKKyAgc291cmNlVmlkZW8ubG9v
cCA9IHRydWU7CisKKyAgY29uc3Qgb25DYW5QbGF5ID0gbmV3IFByb21pc2UociA9PiBzb3VyY2VW
aWRlby5vbmNhbnBsYXkgPSByKTsKKyAgYXdhaXQgb25DYW5QbGF5OworCisgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9z
ZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIC8vIEF0dGFjaCB2aWRlbyB0byBwYzEuCisg
IGNvbnN0IHN0cmVhbSA9IHNvdXJjZVZpZGVvLmNhcHR1cmVTdHJlYW0oKTsKKyAgY29uc3QgdHJh
Y2tzID0gc3RyZWFtLmdldFRyYWNrcygpOworICBwYzEuYWRkVHJhY2sodHJhY2tzWzBdKTsKKwor
ICBjb25zdCBkZXN0VmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICBk
ZXN0VmlkZW8uYXV0b3BsYXkgPSB0cnVlOworCisgIC8vIFNldHVwIHBjMS0+cGMyLgorICBjb25z
dCBoYXZlVHJhY2tFdmVudDEgPSBuZXcgUHJvbWlzZShyID0+IHBjMi5vbnRyYWNrID0gcik7Cisg
IGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGF3YWl0IHBjMS5zZXRMb2NhbERl
c2NyaXB0aW9uKCk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxE
ZXNjcmlwdGlvbik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIGF3YWl0
IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgLy8g
RGlzcGxheSBwYzIgcmVjZWl2ZWQgdHJhY2sgaW4gdmlkZW8gZWxlbWVudC4KKyAgY29uc3Qgb25M
b2FkZWRNZXRhZGF0YSA9IG5ldyBQcm9taXNlKHIgPT4gZGVzdFZpZGVvLm9ubG9hZGVkbWV0YWRh
dGEgPSByKTsKKyAgZGVzdFZpZGVvLnNyY09iamVjdCA9IG5ldyBNZWRpYVN0cmVhbShbKGF3YWl0
IGhhdmVUcmFja0V2ZW50MSkudHJhY2tdKTsKKworICAvLyBTdGFydCBwbGF5YmFjayBhbmQgd2Fp
dCBmb3IgdmlkZW8gb24gdGhlIG90aGVyIHNpZGUuCisgIHNvdXJjZVZpZGVvLnBsYXkoKTsKKyAg
YXdhaXQgb25Mb2FkZWRNZXRhZGF0YTsKKworICAvLyBXYWl0IHVudGlsIHRoZSB2aWRlbyBoYXMg
bm9uLXplcm8gcmVzb2x1dGlvbiBhbmQgc29tZSBub24tYmxhY2sgcGl4ZWxzLgorICBhd2FpdCBu
ZXcgUHJvbWlzZShwID0+IHsKKyAgICBmdW5jdGlvbiBjaGVja0NvbG9yKCkgIHsKKyAgICAgICAg
aWYgKGRlc3RWaWRlby52aWRlb1dpZHRoID4gMCAmJiBnZXRWaWRlb1NpZ25hbChkZXN0VmlkZW8p
ID4gMC4wKQorICAgICAgICAgIHAoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHQuc3RlcF90
aW1lb3V0KGNoZWNrQ29sb3IsIDApOworICAgIH0KKyAgICBjaGVja0NvbG9yKCk7CisgIH0pOwor
CisgIC8vIFVzZXMgSGVscGVyLmpzIEdldFZpZGVvU2lnbmFsIHRvIHF1ZXJ5IHxkZXN0VmlkZW98
IHBpeGVsIHZhbHVlIGF0IGEgY2VydGFpbiBwb3NpdGlvbi4KKyAgY29uc3QgcGl4ZWxWYWx1ZSA9
IGdldFZpZGVvU2lnbmFsKGRlc3RWaWRlbyk7CisKKyAgLy8gQW55dGhpbmcgbm9uLWJsYWNrIG1l
YW5zIHRoYXQgY2FwdHVyZSB3b3Jrcy4KKyAgYXNzZXJ0X25vdF9lcXVhbHMocGl4ZWxWYWx1ZSwg
MCk7CisgIH0sICJDYXB0dXJpbmcgYSB2aWRlbyBlbGVtZW50IGFuZCBzZW5kaW5nIGl0IHZpYSBQ
ZWVyQ29ubmVjdGlvbiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
Y29ubmVjdGlvblN0YXRlLWV4cGVjdGVkLnR4dAppbmRleCBkYmQyMzBmODM0Njc3MWI5Mjk2NjNh
ZDVmN2EyNTA4ODc4Y2FmYWVhLi4zYmY2NWNhMmY3ZTQ2MTcxN2NmN2Y2ZDhjY2FhZjhkNzQ0ZDE0
NDczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50eHQKQEAgLTEsNiAr
MSw0IEBACiAKIFBBU1MgSW5pdGlhbCBjb25uZWN0aW9uU3RhdGUgc2hvdWxkIGJlIG5ldwotUEFT
UyBDbG9zaW5nIHRoZSBjb25uZWN0aW9uIHNob3VsZCBzZXQgY29ubmVjdGlvblN0YXRlIHRvIGNs
b3NlZAotUEFTUyBjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQgZXZlbnR1
YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlCi1GQUlMIGNvbm5lY3Rpb24gd2l0
aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgdHJhbnNwb3J0cyBpbiBj
b25uZWN0ZWQgc3RhdGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3Nj
dHBUcmFuc3BvcnQudHJhbnNwb3J0JykKK0ZBSUwgY29ubmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNo
YW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSBjb25uZWN0ZWQgY29ubmVjdGlvbiBzdGF0ZSBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBkb1NpZ25hbGluZ0hhbmRzaGFrZQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25T
dGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZTk0MTEyNzE4MTU1NzIwZjMxNjIyOTY2YjI3NzYwYjY1
M2MzOTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHRt
bApAQCAtMCwwICsxLDIwOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5jb25uZWN0aW9uU3RhdGU8L3Rp
dGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93
aW5nIGVkaXRvciBkcmFmdDoKKyAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9h
cmNoaXZlcy8yMDE3MDYwNS93ZWJydGMuaHRtCisKKyAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIg
ZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6Cisg
IC8vIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcworICAvLyBkb1NpZ25hbGluZ0hhbmRzaGFrZQorCisg
IC8qCisgICAgNC4zLjIuICBJbnRlcmZhY2UgRGVmaW5pdGlvbgorICAgICAgaW50ZXJmYWNlIFJU
Q1BlZXJDb25uZWN0aW9uIDogRXZlbnRUYXJnZXQgeworICAgICAgICAuLi4KKyAgICAgICAgcmVh
ZG9ubHkgIGF0dHJpYnV0ZSBSVENQZWVyQ29ubmVjdGlvblN0YXRlIGNvbm5lY3Rpb25TdGF0ZTsK
KyAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAgICAgIG9uY29u
bmVjdGlvbnN0YXRlY2hhbmdlOworICAgICAgfTsKKworICAgIDQuNC4zLiAgUlRDUGVlckNvbm5l
Y3Rpb25TdGF0ZSBFbnVtCisgICAgICBlbnVtIFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUgeworICAg
ICAgICAibmV3IiwKKyAgICAgICAgImNvbm5lY3RpbmciLAorICAgICAgICAiY29ubmVjdGVkIiwK
KyAgICAgICAgImRpc2Nvbm5lY3RlZCIsCisgICAgICAgICJmYWlsZWQiLAorICAgICAgICAiY2xv
c2VkIgorICAgICAgfTsKKworICAgIDUuNS4gIFJUQ0R0bHNUcmFuc3BvcnQgSW50ZXJmYWNlCisg
ICAgICBpbnRlcmZhY2UgUlRDRHRsc1RyYW5zcG9ydCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBSVENJY2VUcmFuc3BvcnQgICAgICAgdHJhbnNwb3J0OworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgUlRDRHRsc1RyYW5zcG9ydFN0YXRlIHN0YXRlOworICAgICAgICAuLi4KKyAgICAg
IH07CisKKyAgICAgIGVudW0gUlRDRHRsc1RyYW5zcG9ydFN0YXRlIHsKKyAgICAgICAgIm5ldyIs
CisgICAgICAgICJjb25uZWN0aW5nIiwKKyAgICAgICAgImNvbm5lY3RlZCIsCisgICAgICAgICJj
bG9zZWQiLAorICAgICAgICAiZmFpbGVkIgorICAgICAgfTsKKworICAgIDUuNi4gIFJUQ0ljZVRy
YW5zcG9ydCBJbnRlcmZhY2UKKyAgICAgIGludGVyZmFjZSBSVENJY2VUcmFuc3BvcnQgeworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDSWNlVHJhbnNwb3J0U3RhdGUgc3RhdGU7CisgICAg
ICAgIC4uLgorICAgICAgfTsKKworICAgICAgZW51bSBSVENJY2VUcmFuc3BvcnRTdGF0ZSB7Cisg
ICAgICAgICJuZXciLAorICAgICAgICAiY2hlY2tpbmciLAorICAgICAgICAiY29ubmVjdGVkIiwK
KyAgICAgICAgImNvbXBsZXRlZCIsCisgICAgICAgICJmYWlsZWQiLAorICAgICAgICAiZGlzY29u
bmVjdGVkIiwKKyAgICAgICAgImNsb3NlZCIKKyAgICAgIH07CisgICAqLworCisgIC8qCisgICAg
NC40LjMuICBSVENQZWVyQ29ubmVjdGlvblN0YXRlIEVudW0KKyAgICAgIG5ldworICAgICAgICBB
bnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9ydHMgb3IgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRo
ZSBuZXcKKyAgICAgICAgc3RhdGUgYW5kIG5vbmUgb2YgdGhlIHRyYW5zcG9ydHMgYXJlIGluIHRo
ZSBjb25uZWN0aW5nLCBjaGVja2luZywKKyAgICAgICAgZmFpbGVkIG9yIGRpc2Nvbm5lY3RlZCBz
dGF0ZSwgb3IgYWxsIHRyYW5zcG9ydHMgYXJlIGluIHRoZSBjbG9zZWQgc3RhdGUuCisgICAqLwor
ICB0ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhwYy5jb25uZWN0aW9uU3RhdGUsICduZXcnKTsKKyAgfSwgJ0luaXRp
YWwgY29ubmVjdGlvblN0YXRlIHNob3VsZCBiZSBuZXcnKTsKKworICAvKgorICAgIDQuNC4zLiAg
UlRDUGVlckNvbm5lY3Rpb25TdGF0ZSBFbnVtCisgICAgICBjb25uZWN0ZWQKKyAgICAgICAgQWxs
IFJUQ0ljZVRyYW5zcG9ydHMgYW5kIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiB0aGUgY29ubmVj
dGVkLAorICAgICAgICBjb21wbGV0ZWQgb3IgY2xvc2VkIHN0YXRlIGFuZCBhdCBsZWFzdCBvZiB0
aGVtIGlzIGluIHRoZSBjb25uZWN0ZWQKKyAgICAgICAgb3IgY29tcGxldGVkIHN0YXRlLgorCisg
ICAgNS41LiAgUlRDRHRsc1RyYW5zcG9ydFN0YXRlCisgICAgICBjb25uZWN0ZWQKKyAgICAgICAg
RFRMUyBoYXMgY29tcGxldGVkIG5lZ290aWF0aW9uIG9mIGEgc2VjdXJlIGNvbm5lY3Rpb24uCisK
KyAgICA1LjYuICBSVENJY2VUcmFuc3BvcnRTdGF0ZQorICAgICAgY29ubmVjdGVkCisgICAgICAg
IFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZvdW5kIGEgdXNhYmxlIGNvbm5lY3Rpb24sIGJ1dCBp
cyBzdGlsbAorICAgICAgICBjaGVja2luZyBvdGhlciBjYW5kaWRhdGUgcGFpcnMgdG8gc2VlIGlm
IHRoZXJlIGlzIGEgYmV0dGVyIGNvbm5lY3Rpb24uCisgICAgICAgIEl0IG1heSBhbHNvIHN0aWxs
IGJlIGdhdGhlcmluZyBhbmQvb3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbCByZW1vdGUKKyAgICAg
ICAgY2FuZGlkYXRlcy4gSWYgY29uc2VudCBjaGVja3MgW1JGQzc2NzVdIGZhaWwgb24gdGhlIGNv
bm5lY3Rpb24gaW4gdXNlLAorICAgICAgICBhbmQgdGhlcmUgYXJlIG5vIG90aGVyIHN1Y2Nlc3Nm
dWwgY2FuZGlkYXRlIHBhaXJzIGF2YWlsYWJsZSwgdGhlbiB0aGUKKyAgICAgICAgc3RhdGUgdHJh
bnNpdGlvbnMgdG8gImNoZWNraW5nIiAoaWYgdGhlcmUgYXJlIGNhbmRpZGF0ZSBwYWlycyByZW1h
aW5pbmcKKyAgICAgICAgdG8gYmUgY2hlY2tlZCkgb3IgImRpc2Nvbm5lY3RlZCIgKGlmIHRoZXJl
IGFyZSBubyBjYW5kaWRhdGUgcGFpcnMgdG8KKyAgICAgICAgY2hlY2ssIGJ1dCB0aGUgcGVlciBp
cyBzdGlsbCBnYXRoZXJpbmcgYW5kL29yIHdhaXRpbmcgZm9yIGFkZGl0aW9uYWwKKyAgICAgICAg
cmVtb3RlIGNhbmRpZGF0ZXMpLgorCisgICAgICBjb21wbGV0ZWQKKyAgICAgICAgVGhlIFJUQ0lj
ZVRyYW5zcG9ydCBoYXMgZmluaXNoZWQgZ2F0aGVyaW5nLCByZWNlaXZlZCBhbiBpbmRpY2F0aW9u
IHRoYXQKKyAgICAgICAgdGhlcmUgYXJlIG5vIG1vcmUgcmVtb3RlIGNhbmRpZGF0ZXMsIGZpbmlz
aGVkIGNoZWNraW5nIGFsbCBjYW5kaWRhdGUKKyAgICAgICAgcGFpcnMgYW5kIGZvdW5kIGEgY29u
bmVjdGlvbi4gSWYgY29uc2VudCBjaGVja3MgW1JGQzc2NzVdIHN1YnNlcXVlbnRseQorICAgICAg
ICBmYWlsIG9uIGFsbCBzdWNjZXNzZnVsIGNhbmRpZGF0ZSBwYWlycywgdGhlIHN0YXRlIHRyYW5z
aXRpb25zIHRvICJmYWlsZWQiLgorICAgKi8KKyAgYXN5bmNfdGVzdCh0ID0+IHsKKyAgICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qgb25D
b25uZWN0aW9uU3RhdGVDaGFuZ2UgPSB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICBjb25zdCB7
IGNvbm5lY3Rpb25TdGF0ZSB9ID0gcGMxOworICAgICAgaWYoY29ubmVjdGlvblN0YXRlID09PSAn
Y29ubmVjdGVkJykgeworICAgICAgICBjb25zdCBzY3RwVHJhbnNwb3J0ID0gcGMxLnNjdHA7CisK
KyAgICAgICAgY29uc3QgZHRsc1RyYW5zcG9ydCA9IHNjdHBUcmFuc3BvcnQudHJhbnNwb3J0Owor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGR0bHNUcmFuc3BvcnQuc3RhdGUsICdjb25uZWN0ZWQnLAor
ICAgICAgICAgICdFeHBlY3QgRFRMUyB0cmFuc3BvcnQgdG8gYmUgaW4gY29ubmVjdGVkIHN0YXRl
Jyk7CisKKyAgICAgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gZHRsc1RyYW5zcG9ydC50cmFuc3Bv
cnQKKyAgICAgICAgYXNzZXJ0X3RydWUoaWNlVHJhbnNwb3J0LnN0YXRlID09PSAgJ2Nvbm5lY3Rl
ZCcgfHwKKyAgICAgICAgICBpY2VUcmFuc3BvcnQuc3RhdGUgPT09ICdjb21wbGV0ZWQnLAorICAg
ICAgICAgICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBpbiBjb25uZWN0ZWQgb3IgY29tcGxl
dGVkIHN0YXRlJyk7CisKKyAgICAgICAgdC5kb25lKCk7CisgICAgICB9CisgICAgfSk7CisKKyAg
ICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKKworICAgIGFzc2VydF9lcXVhbHMocGMx
Lm9uY29ubmVjdGlvbnN0YXRlY2hhbmdlLCBudWxsLAorICAgICAgJ0V4cGVjdCBjb25uZWN0aW9u
IHRvIGhhdmUgY29ubmVjdGlvbnN0YXRlY2hhbmdlIGV2ZW50Jyk7CisKKyAgICBwYzEuYWRkRXZl
bnRMaXN0ZW5lcignY29ubmVjdGlvbnN0YXRlY2hhbmdlJywgb25Db25uZWN0aW9uU3RhdGVDaGFu
Z2UpOworCisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgICBkb1NpZ25h
bGluZ0hhbmRzaGFrZShwYzEsIHBjMik7CisgIH0sICdjb25uZWN0aW9uIHdpdGggb25lIGRhdGEg
Y2hhbm5lbCBzaG91bGQgZXZlbnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRl
Jyk7CisKKyAgLyoKKyAgICBUT0RPCisgICAgNC40LjMuICBSVENQZWVyQ29ubmVjdGlvblN0YXRl
IEVudW0KKyAgICAgIGNvbm5lY3RpbmcKKyAgICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3Bv
cnRzIG9yIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiB0aGUKKyAgICAgICAgY29ubmVjdGluZyBv
ciBjaGVja2luZyBzdGF0ZSBhbmQgbm9uZSBvZiB0aGVtIGlzIGluIHRoZSBmYWlsZWQgc3RhdGUu
CisKKyAgICAgIGRpc2Nvbm5lY3RlZAorICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9y
dHMgb3IgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRoZSBkaXNjb25uZWN0ZWQKKyAgICAgICAg
c3RhdGUgYW5kIG5vbmUgb2YgdGhlbSBhcmUgaW4gdGhlIGZhaWxlZCBvciBjb25uZWN0aW5nIG9y
IGNoZWNraW5nIHN0YXRlLgorCisgICAgICBmYWlsZWQKKyAgICAgICAgQW55IG9mIHRoZSBSVENJ
Y2VUcmFuc3BvcnRzIG9yIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiBhIGZhaWxlZCBzdGF0ZS4K
KworICAgICAgY2xvc2VkCisgICAgICAgIFRoZSBSVENQZWVyQ29ubmVjdGlvbiBvYmplY3QncyBb
W2lzQ2xvc2VkXV0gc2xvdCBpcyB0cnVlLgorCisgICAgIDUuNS4gUlRDRHRsc1RyYW5zcG9ydFN0
YXRlCisgICAgICBuZXcKKyAgICAgICAgRFRMUyBoYXMgbm90IHN0YXJ0ZWQgbmVnb3RpYXRpbmcg
eWV0LgorCisgICAgICBjb25uZWN0aW5nCisgICAgICAgIERUTFMgaXMgaW4gdGhlIHByb2Nlc3Mg
b2YgbmVnb3RpYXRpbmcgYSBzZWN1cmUgY29ubmVjdGlvbi4KKworICAgICAgY2xvc2VkCisgICAg
ICAgIFRoZSB0cmFuc3BvcnQgaGFzIGJlZW4gY2xvc2VkLgorCisgICAgICBmYWlsZWQKKyAgICAg
ICAgVGhlIHRyYW5zcG9ydCBoYXMgZmFpbGVkIGFzIHRoZSByZXN1bHQgb2YgYW4gZXJyb3IgKHN1
Y2ggYXMgYSBmYWlsdXJlCisgICAgICAgIHRvIHZhbGlkYXRlIHRoZSByZW1vdGUgZmluZ2VycHJp
bnQpLgorCisgICAgNS42LiAgUlRDSWNlVHJhbnNwb3J0U3RhdGUKKyAgICAgIG5ldworICAgICAg
ICBUaGUgUlRDSWNlVHJhbnNwb3J0IGlzIGdhdGhlcmluZyBjYW5kaWRhdGVzIGFuZC9vciB3YWl0
aW5nIGZvcgorICAgICAgICByZW1vdGUgY2FuZGlkYXRlcyB0byBiZSBzdXBwbGllZCwgYW5kIGhh
cyBub3QgeWV0IHN0YXJ0ZWQgY2hlY2tpbmcuCisKKyAgICAgIGNoZWNraW5nCisgICAgICAgIFRo
ZSBSVENJY2VUcmFuc3BvcnQgaGFzIHJlY2VpdmVkIGF0IGxlYXN0IG9uZSByZW1vdGUgY2FuZGlk
YXRlIGFuZAorICAgICAgICBpcyBjaGVja2luZyBjYW5kaWRhdGUgcGFpcnMgYW5kIGhhcyBlaXRo
ZXIgbm90IHlldCBmb3VuZCBhIGNvbm5lY3Rpb24KKyAgICAgICAgb3IgY29uc2VudCBjaGVja3Mg
W1JGQzc2NzVdIGhhdmUgZmFpbGVkIG9uIGFsbCBwcmV2aW91c2x5IHN1Y2Nlc3NmdWwKKyAgICAg
ICAgY2FuZGlkYXRlIHBhaXJzLiBJbiBhZGRpdGlvbiB0byBjaGVja2luZywgaXQgbWF5IGFsc28g
c3RpbGwgYmUgZ2F0aGVyaW5nLgorCisgICAgICBmYWlsZWQKKyAgICAgICAgVGhlIFJUQ0ljZVRy
YW5zcG9ydCBoYXMgZmluaXNoZWQgZ2F0aGVyaW5nLCByZWNlaXZlZCBhbiBpbmRpY2F0aW9uIHRo
YXQKKyAgICAgICAgdGhlcmUgYXJlIG5vIG1vcmUgcmVtb3RlIGNhbmRpZGF0ZXMsIGZpbmlzaGVk
IGNoZWNraW5nIGFsbCBjYW5kaWRhdGUgcGFpcnMsCisgICAgICAgIGFuZCBhbGwgcGFpcnMgaGF2
ZSBlaXRoZXIgZmFpbGVkIGNvbm5lY3Rpdml0eSBjaGVja3Mgb3IgaGF2ZSBsb3N0IGNvbnNlbnQu
CisKKyAgICAgIGRpc2Nvbm5lY3RlZAorICAgICAgICBUaGUgSUNFIEFnZW50IGhhcyBkZXRlcm1p
bmVkIHRoYXQgY29ubmVjdGl2aXR5IGlzIGN1cnJlbnRseSBsb3N0IGZvciB0aGlzCisgICAgICAg
IFJUQ0ljZVRyYW5zcG9ydCAuIFRoaXMgaXMgbW9yZSBhZ2dyZXNzaXZlIHRoYW4gZmFpbGVkLCBh
bmQgbWF5IHRyaWdnZXIKKyAgICAgICAgaW50ZXJtaXR0ZW50bHkgKGFuZCByZXNvbHZlIGl0c2Vs
ZiB3aXRob3V0IGFjdGlvbikgb24gYSBmbGFreSBuZXR3b3JrLgorICAgICAgICBUaGUgd2F5IHRo
aXMgc3RhdGUgaXMgZGV0ZXJtaW5lZCBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuCisKKyAg
ICAgICAgRXhhbXBsZXMgaW5jbHVkZToKKyAgICAgICAgICBMb3NpbmcgdGhlIG5ldHdvcmsgaW50
ZXJmYWNlIGZvciB0aGUgY29ubmVjdGlvbiBpbiB1c2UuCisgICAgICAgICAgUmVwZWF0ZWRseSBm
YWlsaW5nIHRvIHJlY2VpdmUgYSByZXNwb25zZSB0byBTVFVOIHJlcXVlc3RzLgorCisgICAgICAg
IEFsdGVybmF0aXZlbHksIHRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZpbmlzaGVkIGNoZWNraW5n
IGFsbCBleGlzdGluZworICAgICAgICBjYW5kaWRhdGVzIHBhaXJzIGFuZCBmYWlsZWQgdG8gZmlu
ZCBhIGNvbm5lY3Rpb24gKG9yIGNvbnNlbnQgY2hlY2tzCisgICAgICAgIFtSRkM3Njc1XSBvbmNl
IHN1Y2Nlc3NmdWwsIGhhdmUgbm93IGZhaWxlZCksIGJ1dCBpdCBpcyBzdGlsbCBnYXRoZXJpbmcK
KyAgICAgICAgYW5kL29yIHdhaXRpbmcgZm9yIGFkZGl0aW9uYWwgcmVtb3RlIGNhbmRpZGF0ZXMu
CisKKyAgICAgIGNsb3NlZAorICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBzaHV0IGRv
d24gYW5kIGlzIG5vIGxvbmdlciByZXNwb25kaW5nIHRvIFNUVU4gcmVxdWVzdHMuCisgICAqLwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVj
ZWl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM2MTdiMWRmNmNhODRjYjMzYjVlM2NhNjU0ZmRh
Njg3MmZiYjZkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLW9m
ZmVyVG9SZWNlaXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACisKK1BBU1MgY3JlYXRl
T2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlQXVkaW8gc2V0IHRvIGZhbHNlIHNob3VsZCBub3Qg
Y3JlYXRlIGEgdHJhbnNjZWl2ZXIKK0ZBSUwgY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNl
aXZlQXVkaW8gc2hvdWxkIGNyZWF0ZSBhICJyZWN2b25seSIgdHJhbnNjZWl2ZXIgYXNzZXJ0X2Vx
dWFsczogRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyIGV4cGVjdGVkIDEgYnV0IGdv
dCAwCitGQUlMIG9mZmVyVG9SZWNlaXZlQXVkaW8gb3B0aW9uIHNob3VsZCBiZSBpZ25vcmVkIGlm
IGEgbm9uLXN0b3BwZWQgInJlY3Zvbmx5IiB0cmFuc2NlaXZlciBleGlzdHMgYXNzZXJ0X2VxdWFs
czogRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyIGV4cGVjdGVkIDEgYnV0IGdvdCAw
CitQQVNTIG9mZmVyVG9SZWNlaXZlQXVkaW8gb3B0aW9uIHNob3VsZCBiZSBpZ25vcmVkIGlmIGEg
bm9uLXN0b3BwZWQgInNlbmRyZWN2IiB0cmFuc2NlaXZlciBleGlzdHMKK0ZBSUwgb2ZmZXJUb1Jl
Y2VpdmVBdWRpbyBzZXQgdG8gZmFsc2Ugd2l0aCBhIHRyYWNrIHNob3VsZCBjcmVhdGUgYSAic2Vu
ZG9ubHkiIHRyYW5zY2VpdmVyIGFzc2VydF9lcXVhbHM6IEV4cGVjdCB0cmFuc2NlaXZlciB0byBo
YXZlICJzZW5kb25seSIgZGlyZWN0aW9uIGV4cGVjdGVkICJzZW5kb25seSIgYnV0IGdvdCAic2Vu
ZHJlY3YiCitGQUlMIG9mZmVyVG9SZWNlaXZlQXVkaW8gc2V0IHRvIGZhbHNlIHdpdGggYSAicmVj
dm9ubHkiIHRyYW5zY2VpdmVyIHNob3VsZCBjaGFuZ2UgdGhlIGRpcmVjdGlvbiB0byAiaW5hY3Rp
dmUiIGFzc2VydF9lcXVhbHM6IEV4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJpbmFjdGl2ZSIg
ZGlyZWN0aW9uIGV4cGVjdGVkICJpbmFjdGl2ZSIgYnV0IGdvdCAicmVjdm9ubHkiCitGQUlMIHN1
YnNlcXVlbnQgb2ZmZXJUb1JlY2VpdmVBdWRpbyBzZXQgdG8gZmFsc2Ugd2l0aCBhIHRyYWNrIHNo
b3VsZCBjaGFuZ2UgdGhlIGRpcmVjdGlvbiB0byAic2VuZG9ubHkiIGFzc2VydF9lcXVhbHM6IEV4
cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJzZW5kb25seSIgZGlyZWN0aW9uIGV4cGVjdGVkICJz
ZW5kb25seSIgYnV0IGdvdCAic2VuZHJlY3YiCitQQVNTIGNyZWF0ZU9mZmVyKCkgd2l0aCBvZmZl
clRvUmVjZWl2ZVZpZGVvIHNldCB0byBmYWxzZSBzaG91bGQgbm90IGNyZWF0ZSBhIHRyYW5zY2Vp
dmVyCitGQUlMIGNyZWF0ZU9mZmVyKCkgd2l0aCBvZmZlclRvUmVjZWl2ZVZpZGVvIHNob3VsZCBj
cmVhdGUgYSAicmVjdm9ubHkiIHRyYW5zY2VpdmVyIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBwYyB0
byBoYXZlIG9uZSB0cmFuc2NlaXZlciBleHBlY3RlZCAxIGJ1dCBnb3QgMAorRkFJTCBvZmZlclRv
UmVjZWl2ZVZpZGVvIG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBhIG5vbi1zdG9wcGVkICJy
ZWN2b25seSIgdHJhbnNjZWl2ZXIgZXhpc3RzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBwYyB0byBo
YXZlIG9uZSB0cmFuc2NlaXZlciBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBvZmZlclRvUmVj
ZWl2ZVZpZGVvIG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBhIG5vbi1zdG9wcGVkICJzZW5k
cmVjdiIgdHJhbnNjZWl2ZXIgZXhpc3RzCitGQUlMIG9mZmVyVG9SZWNlaXZlVmlkZW8gc2V0IHRv
IGZhbHNlIHdpdGggYSB0cmFjayBzaG91bGQgY3JlYXRlIGEgInNlbmRvbmx5IiB0cmFuc2NlaXZl
ciBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAic2VuZG9ubHkiIGRp
cmVjdGlvbiBleHBlY3RlZCAic2VuZG9ubHkiIGJ1dCBnb3QgInNlbmRyZWN2IgorRkFJTCBvZmZl
clRvUmVjZWl2ZVZpZGVvIHNldCB0byBmYWxzZSB3aXRoIGEgInJlY3Zvbmx5IiB0cmFuc2NlaXZl
ciBzaG91bGQgY2hhbmdlIHRoZSBkaXJlY3Rpb24gdG8gImluYWN0aXZlIiBhc3NlcnRfZXF1YWxz
OiBFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAiaW5hY3RpdmUiIGRpcmVjdGlvbiBleHBlY3Rl
ZCAiaW5hY3RpdmUiIGJ1dCBnb3QgInJlY3Zvbmx5IgorRkFJTCBzdWJzZXF1ZW50IG9mZmVyVG9S
ZWNlaXZlVmlkZW8gc2V0IHRvIGZhbHNlIHdpdGggYSB0cmFjayBzaG91bGQgY2hhbmdlIHRoZSBk
aXJlY3Rpb24gdG8gInNlbmRvbmx5IiBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgdHJhbnNjZWl2ZXIg
dG8gaGF2ZSAic2VuZG9ubHkiIGRpcmVjdGlvbiBleHBlY3RlZCAic2VuZG9ubHkiIGJ1dCBnb3Qg
InNlbmRyZWN2IgorRkFJTCBvZmZlclRvUmVjZWl2ZUF1ZGlvIGFuZCBWaWRlbyBzaG91bGQgY3Jl
YXRlIHR3byAicmVjdm9ubHkiIHRyYW5zY2VpdmVycyBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgcGMg
dG8gaGF2ZSB0d28gdHJhbnNjZWl2ZXJzIGV4cGVjdGVkIDIgYnV0IGdvdCAwCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLW9mZmVyVG9SZWNlaXZlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkMTgyN2Ex
YzhkNjBhYmU2N2NhZDcyYTllZjMyODAwMDNjNzkyYzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS5odG1sCkBAIC0wLDAgKzEsMTg1IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+VGVzdCBsZWdh
Y3kgb2ZmZXJUb1JlY2VpdmVBdWRpby9WaWRlbyBvcHRpb25zPC90aXRsZT4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy8jbGVnYWN5LWNvbmZp
Z3VyYXRpb24tZXh0ZW5zaW9ucyI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICAvLyBSdW4gc29tZSB0
ZXN0cyBmb3IgYm90aCBhdWRpbyBhbmQgdmlkZW8ga2luZHMKKyAgWydhdWRpbycsICd2aWRlbydd
LmZvckVhY2goKGtpbmQpID0+IHsKKyAgICBjb25zdCBjYXBzS2luZCA9IGtpbmRbMF0udG9VcHBl
ckNhc2UoKSArIGtpbmQuc2xpY2UoMSk7CisKKyAgICBjb25zdCBvZmZlclRvUmVjZWl2ZVRydWUg
PSB7fTsKKyAgICBvZmZlclRvUmVjZWl2ZVRydWVbYG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH1g
XSA9IHRydWU7CisKKyAgICBjb25zdCBvZmZlclRvUmVjZWl2ZUZhbHNlID0ge307CisgICAgb2Zm
ZXJUb1JlY2VpdmVGYWxzZVtgb2ZmZXJUb1JlY2VpdmUke2NhcHNLaW5kfWBdID0gZmFsc2U7CisK
KyAgICAvLyBTdGFydCB0ZXN0aW5nCisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgY29u
c3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMuY2xvc2UoKSk7CisgICAgICBjb25zdCBkdW1teSA9IHBjLmNyZWF0ZURhdGFDaGFubmVs
KCdmb28nKTsgLy8gSnVzdCB0byBoYXZlIHNvbWV0aGluZyB0byBvZmZlcgorCisgICAgICByZXR1
cm4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2VpdmVGYWxzZSkKKyAgICAgIC50aGVuKCgpID0+
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDAs
CisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBoYXZlIG5vIHRyYW5zY2VpdmVycycpOworICAgICAg
fSk7CisgICAgfSwgYGNyZWF0ZU9mZmVyKCkgd2l0aCBvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9
IHNldCB0byBmYWxzZSBzaG91bGQgbm90IGNyZWF0ZSBhIHRyYW5zY2VpdmVyYCk7CisKKyAgICBw
cm9taXNlX3Rlc3QodCA9PiB7CisgICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworCisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgICBy
ZXR1cm4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2VpdmVUcnVlKQorICAgICAgLnRoZW4oKCkg
PT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwg
MSwKKyAgICAgICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyJyk7CisKKyAg
ICAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdyZWN2b25seScsCisgICAg
ICAgICAgJ0V4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJyZWN2b25seSIgZGlyZWN0aW9uJyk7
CisgICAgICB9KTsKKyAgICB9LCBgY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlJHtj
YXBzS2luZH0gc2hvdWxkIGNyZWF0ZSBhICJyZWN2b25seSIgdHJhbnNjZWl2ZXJgKTsKKworICAg
IHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICAg
IHJldHVybiBwYy5jcmVhdGVPZmZlcihvZmZlclRvUmVjZWl2ZVRydWUpCisgICAgICAudGhlbigo
KSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3Ro
LCAxLAorICAgICAgICAgICdFeHBlY3QgcGMgdG8gaGF2ZSBvbmUgdHJhbnNjZWl2ZXInKTsKKwor
ICAgICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmdldFRyYW5zY2VpdmVycygpWzBdOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3JlY3Zvbmx5JywKKyAg
ICAgICAgICAnRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgInJlY3Zvbmx5IiBkaXJlY3Rpb24n
KTsKKyAgICAgIH0pCisgICAgICAudGhlbigoKSA9PiBwYy5jcmVhdGVPZmZlcihvZmZlclRvUmVj
ZWl2ZVRydWUpKQorICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHBj
LmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSwKKyAgICAgICAgICAnRXhwZWN0IHBjIHRvIHN0
aWxsIGhhdmUgb25seSBvbmUgdHJhbnNjZWl2ZXInKTsKKyAgICAgIH0pCisgICAgICA7CisgICAg
fSwgYG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH0gb3B0aW9uIHNob3VsZCBiZSBpZ25vcmVkIGlm
IGEgbm9uLXN0b3BwZWQgInJlY3Zvbmx5IiB0cmFuc2NlaXZlciBleGlzdHNgKTsKKworICAgIHBy
b21pc2VfdGVzdCh0ID0+IHsKKyAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICAgIHJl
dHVybiBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoa2luZCkKKyAgICAgIC50aGVuKChbdHJhY2ssIHN0
cmVhbV0pID0+IHsKKyAgICAgICAgcGMuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7CisgICAgICAg
IHJldHVybiBwYy5jcmVhdGVPZmZlcigpOworICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEsCisg
ICAgICAgICAgJ0V4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlcicpOworCisgICAgICAg
IGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF07CisgICAgICAgIGFz
c2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZHJlY3YnLAorICAgICAgICAg
ICdFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAic2VuZHJlY3YiIGRpcmVjdGlvbicpOworICAg
ICAgfSkKKyAgICAgIC50aGVuKCgpID0+IHBjLmNyZWF0ZU9mZmVyKG9mZmVyVG9SZWNlaXZlVHJ1
ZSkpCisgICAgICAudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJh
bnNjZWl2ZXJzKCkubGVuZ3RoLCAxLAorICAgICAgICAgICdFeHBlY3QgcGMgdG8gc3RpbGwgaGF2
ZSBvbmx5IG9uZSB0cmFuc2NlaXZlcicpOworICAgICAgfSkKKyAgICAgIDsKKyAgICB9LCBgb2Zm
ZXJUb1JlY2VpdmUke2NhcHNLaW5kfSBvcHRpb24gc2hvdWxkIGJlIGlnbm9yZWQgaWYgYSBub24t
c3RvcHBlZCAic2VuZHJlY3YiIHRyYW5zY2VpdmVyIGV4aXN0c2ApOworCisgICAgcHJvbWlzZV90
ZXN0KHQgPT4geworICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKwor
ICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgICAgcmV0dXJuIGdl
dFRyYWNrRnJvbVVzZXJNZWRpYShraW5kKQorICAgICAgLnRoZW4oKFt0cmFjaywgc3RyZWFtXSkg
PT4geworICAgICAgICBwYy5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKKyAgICAgICAgcmV0dXJu
IHBjLmNyZWF0ZU9mZmVyKG9mZmVyVG9SZWNlaXZlRmFsc2UpOworICAgICAgfSkKKyAgICAgIC50
aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5s
ZW5ndGgsIDEsCisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlcicp
OworCisgICAgICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF07
CisgICAgICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZG9ubHkn
LAorICAgICAgICAgICdFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAic2VuZG9ubHkiIGRpcmVj
dGlvbicpOworICAgICAgfSkKKyAgICAgIDsKKyAgICB9LCBgb2ZmZXJUb1JlY2VpdmUke2NhcHNL
aW5kfSBzZXQgdG8gZmFsc2Ugd2l0aCBhIHRyYWNrIHNob3VsZCBjcmVhdGUgYSAic2VuZG9ubHki
IHRyYW5zY2VpdmVyYCk7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjLmNsb3NlKCkpOworCisgICAgICBwYy5hZGRUcmFuc2NlaXZlcihraW5kLCB7ZGlyZWN0aW9u
OiAncmVjdm9ubHknfSk7CisKKyAgICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcihvZmZlclRvUmVj
ZWl2ZUZhbHNlKQorICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHBj
LmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSwKKyAgICAgICAgICAnRXhwZWN0IHBjIHRvIGhh
dmUgb25lIHRyYW5zY2VpdmVyJyk7CisKKyAgICAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5n
ZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5k
aXJlY3Rpb24sICdpbmFjdGl2ZScsCisgICAgICAgICAgJ0V4cGVjdCB0cmFuc2NlaXZlciB0byBo
YXZlICJpbmFjdGl2ZSIgZGlyZWN0aW9uJyk7CisgICAgICB9KQorICAgICAgOworICAgIH0sIGBv
ZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9IHNldCB0byBmYWxzZSB3aXRoIGEgInJlY3Zvbmx5IiB0
cmFuc2NlaXZlciBzaG91bGQgY2hhbmdlIHRoZSBkaXJlY3Rpb24gdG8gImluYWN0aXZlImApOwor
CisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgICAg
ICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICAgIHJldHVybiBnZXRUcmFja0Zyb21Vc2Vy
TWVkaWEoa2luZCkKKyAgICAgIC50aGVuKChbdHJhY2ssIHN0cmVhbV0pID0+IHsKKyAgICAgICAg
cGMuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7CisgICAgICAgIHJldHVybiBwYy5jcmVhdGVPZmZl
cigpOworICAgICAgfSkKKyAgICAgIC50aGVuKChvZmZlcikgPT4gcGMuc2V0TG9jYWxEZXNjcmlw
dGlvbihvZmZlcikpCisgICAgICAudGhlbigoKSA9PiBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24o
cGMubG9jYWxEZXNjcmlwdGlvbikpCisgICAgICAudGhlbigoKSA9PiBwYzIuY3JlYXRlQW5zd2Vy
KCkpCisgICAgICAudGhlbigoYW5zd2VyKSA9PiBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3
ZXIpKQorICAgICAgLnRoZW4oKCkgPT4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2Fs
RGVzY3JpcHRpb24pKQorICAgICAgLnRoZW4oKCkgPT4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1Jl
Y2VpdmVGYWxzZSkpCisgICAgICAudGhlbigob2ZmZXIpID0+IHsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEsCisgICAgICAgICAgJ0V4cGVjdCBw
YyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlcicpOworCisgICAgICAgIGNvbnN0IHRyYW5zY2VpdmVy
ID0gcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF07CisgICAgICAgIGFzc2VydF9lcXVhbHModHJhbnNj
ZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZG9ubHknLAorICAgICAgICAgICdFeHBlY3QgdHJhbnNjZWl2
ZXIgdG8gaGF2ZSAic2VuZG9ubHkiIGRpcmVjdGlvbicpOworICAgICAgfSkKKyAgICAgIDsKKyAg
ICB9LCBgc3Vic2VxdWVudCBvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9IHNldCB0byBmYWxzZSB3
aXRoIGEgdHJhY2sgc2hvdWxkIGNoYW5nZSB0aGUgZGlyZWN0aW9uIHRvICJzZW5kb25seSJgKTsK
KyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwor
CisgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKHsgb2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZSwg
b2ZmZXJUb1JlY2VpdmVWaWRlbzogdHJ1ZSB9KQorICAgIC50aGVuKCgpID0+IHsKKyAgICAgIGFz
c2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAyLAorICAgICAgICAnRXhw
ZWN0IHBjIHRvIGhhdmUgdHdvIHRyYW5zY2VpdmVycycpOworCisgICAgICBhc3NlcnRfZXF1YWxz
KHBjLmdldFRyYW5zY2VpdmVycygpWzBdLmRpcmVjdGlvbiwgJ3JlY3Zvbmx5JywKKyAgICAgICAg
J0V4cGVjdCBmaXJzdCB0cmFuc2NlaXZlciB0byBoYXZlICJyZWN2b25seSIgZGlyZWN0aW9uJyk7
CisgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpWzFdLmRpcmVjdGlvbiwg
J3JlY3Zvbmx5JywKKyAgICAgICAgJ0V4cGVjdCBzZWNvbmQgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAi
cmVjdm9ubHkiIGRpcmVjdGlvbicpOworICAgIH0pOworICB9LCAnb2ZmZXJUb1JlY2VpdmVBdWRp
byBhbmQgVmlkZW8gc2hvdWxkIGNyZWF0ZSB0d28gInJlY3Zvbmx5IiB0cmFuc2NlaXZlcnMnKTsK
KworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVy
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVycy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjg2ZWUyY2U2YmY2ODNmZmRkNDI5M2I3ZjI4ZTc4YjhiMTM1Mjg0
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBSVENQZWVyQ29ubmVjdGlvbi5nZXRE
ZWZhdWx0SWNlU2VydmVycygpIHNob3VsZCByZXR1cm4gYXJyYXkgb2YgUlRDSWNlU2VydmVyIFJU
Q1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzIGlzIG5vdCBhIGZ1bmN0aW9uLiAo
SW4gJ1JUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzKCknLCAnUlRDUGVlckNv
bm5lY3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnMnIGlzIHVuZGVmaW5lZCkKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZlcnMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdl
dERlZmF1bHRJY2VTZXJ2ZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZkYmRiOGRlYzQ2ZGU1NDljMDc3
OTQ5ZWQ5NDZhN2EzMTBlOWI3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERl
ZmF1bHRJY2VTZXJ2ZXJzLmh0bWwKQEAgLTAsMCArMSw5OCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJ
Y2VTZXJ2ZXJzPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICAvLyBUZXN0IGlzIGJh
c2VkIG9uIHRoZSBmb2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgorICAvLyBodHRwczovL3czYy5naXRo
dWIuaW8vd2VicnRjLXBjL2FyY2hpdmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG1sCisKKyAgLyoKKyAg
ICAgIFtDb25zdHJ1Y3RvcihvcHRpb25hbCBSVENDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24p
XQorICAgICAgaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uIDogRXZlbnRUYXJnZXQgeworICAg
ICAgICBzdGF0aWMgc2VxdWVuY2U8UlRDSWNlU2VydmVyPiAgICAgIGdldERlZmF1bHRJY2VTZXJ2
ZXJzKCk7CisgICAgICAgIC4uLgorICAgICAgfTsKKworICAgICAgZGljdGlvbmFyeSBSVENJY2VT
ZXJ2ZXIgeworICAgICAgICByZXF1aXJlZCAoRE9NU3RyaW5nIG9yIHNlcXVlbmNlPERPTVN0cmlu
Zz4pIHVybHM7CisgICAgICAgICAgICAgICAgIERPTVN0cmluZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgdXNlcm5hbWU7CisgICAgICAgICAgICAgICAgIChET01TdHJpbmcgb3IgUlRDT0F1dGhD
cmVkZW50aWFsKSAgY3JlZGVudGlhbDsKKyAgICAgICAgICAgICAgICAgUlRDSWNlQ3JlZGVudGlh
bFR5cGUgICAgICAgICAgICAgICBjcmVkZW50aWFsVHlwZSA9ICJwYXNzd29yZCI7CisgICAgICB9
OworCisgICAgICBkaWN0aW9uYXJ5IFJUQ09BdXRoQ3JlZGVudGlhbCB7CisgICAgICAgIHJlcXVp
cmVkIERPTVN0cmluZyBtYWNLZXk7CisgICAgICAgIHJlcXVpcmVkIERPTVN0cmluZyBhY2Nlc3NU
b2tlbjsKKyAgICAgIH07CisKKyAgICAgIGVudW0gUlRDSWNlQ3JlZGVudGlhbFR5cGUgeworICAg
ICAgICAicGFzc3dvcmQiLAorICAgICAgICAib2F1dGgiCisgICAgICB9OworICAgKi8KKworICB0
ZXN0KCgpID0+IHsKKyAgICBjb25zdCBpY2VTZXJ2ZXJzID0gUlRDUGVlckNvbm5lY3Rpb24uZ2V0
RGVmYXVsdEljZVNlcnZlcnMoKTsKKworICAgIGFzc2VydF90cnVlKEFycmF5LmlzQXJyYXkoaWNl
U2VydmVycyksCisgICAgICAnRXhwZWN0IGljZVNlcnZlcnMgdG8gYmUgYW4gYXJyYXknKTsKKwor
ICAgIC8vIGRpY3Rpb25hcnkgSURMIGNhbm5vdCBiZSB0ZXN0ZWQgYXV0b21hdGljYWxseSB1c2lu
ZyBpZGxoYXJuZXNzCisgICAgZm9yKGNvbnN0IHNlcnZlciBvZiBpY2VTZXJ2ZXJzKSB7CisgICAg
ICBjb25zdCB7IHVybHMsIHVzZXJuYW1lLCBjcmVkZW50aWFsLCBjcmVkZW50aWFsVHlwZSB9ID0g
c2VydmVyOworCisgICAgICBpZihBcnJheS5pc0FycmF5KHVybHMpKSB7CisgICAgICAgIGZvcihj
b25zdCB1cmwgb2YgdXJscykgeworICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHVybCwg
J3N0cmluZycsCisgICAgICAgICAgICAnRXhwZWN0IGVsZW1lbnRzIGluIHVybHMgYXJyYXkgdG8g
YmUgc3RyaW5nJyk7CisgICAgICAgIH0KKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGFzc2VydF9l
cXVhbHModHlwZW9mIHVybHMsICdzdHJpbmcnLAorICAgICAgICAgICdFeHBlY3QgdXJscyB0byBi
ZSBlaXRoZXIgc3RyaW5nIG9yIGFycmF5Jyk7CisgICAgICB9CisKKyAgICAgIGlmKHVzZXJuYW1l
ICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgdXNlcm5hbWUs
ICdzdHJpbmcnLAorICAgICAgICAgICdFeHBlY3QgdXNlcm5hbWUgdG8gYmUgZWl0aGVyIHVuZGVm
aW5lZCBvciBzdHJpbmcnKTsKKyAgICAgIH0KKworICAgICAgYXNzZXJ0X3RydWUoY3JlZGVudGlh
bFR5cGUgPT09ICdwYXNzd29yZCcgfHwgY3JlZGVudGlhbFR5cGUgPT09ICdvYXV0aCcsCisgICAg
ICAgICdFeHBlY3QgY3JlZGVudGlhbFR5cGUgdG8gYmUgZWl0aGVyIHBhc3N3b3JkIG9yIG9hdXRo
JykKKworICAgICAgaWYoY3JlZGVudGlhbCkgeworICAgICAgICBpZih0eXBlb2YoY3JlZGVudGlh
bCkgPT09ICdvYmplY3QnKSB7CisgICAgICAgICAgY29uc3QgeyBtYWNLZXksIGFjY2Vzc1Rva2Vu
IH0gPSBjcmVkZW50aWFsOworICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIG1hY0tleSwg
J3N0cmluZycsCisgICAgICAgICAgICAnRXhwZWN0IG1hY0tleSB0byBiZSBzdHJpbmcnKTsKKwor
ICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGFjY2Vzc1Rva2VuLCAnc3RyaW5nJywKKyAg
ICAgICAgICAgICdFeHBlY3QgYWNjZXNzVG9rZW4gdG8gYmUgc3RyaW5nJyk7CisKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBjcmVkZW50aWFsLCAnc3Ry
aW5nJywKKyAgICAgICAgICAgICdFeHBlY3QgY3JlZGVudGlhbCB0byBiZSBlaXRoZXIgdW5kZWZp
bmVkLCBzdHJpbmcsIG9yIFJUQ09hdXRoQ3JlZGVudGlhbCBkaWN0aW9uYXJ5Jyk7CisgICAgICAg
IH0KKyAgICAgIH0KKyAgICB9CisKKyAgICAvLyBFeHBlY3QgZGVmYXVsdCBpY2Ugc2VydmVycyB0
byBiZSBhY2NlcHRlZCBhcyB2YWxpZCBjb25maWd1cmF0aW9uCisgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzIH0pOworCisgICAgLy8gT25seSBtYWtlIHN1
cmUgdGhlcmUgYXJlIHNhbWUgbnVtYmVyIG9mIGljZSBzZXJ2ZXJzIGNvbmZpZ3VyZWQKKyAgICAv
LyBhbmQgbm90IGRvIGFueSBkZWVwIGVxdWFsaXR5IGNoZWNraW5nCisgICAgYXNzZXJ0X2VxdWFs
cyhwYy5nZXRDb25maWd1cmF0aW9uKCkuaWNlU2VydmVycy5sZW5ndGgsIGljZVNlcnZlcnMubGVu
Z3RoKTsKKworICB9LCAnUlRDUGVlckNvbm5lY3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnMoKSBz
aG91bGQgcmV0dXJuIGFycmF5IG9mIFJUQ0ljZVNlcnZlcicpOworCisgIC8qCisgICAgQ292ZXJh
Z2UgUmVwb3J0CisgICAgICBTaW5jZSB0aGVyZSBpcyBubyBzdGVwcyBpbnZvbHZlZCBhbmQgd2Ug
YXJlIG9ubHkgY2hlY2tpbmcgYmFzaWMgY2FsbCwKKyAgICAgIFRoaXMgaXMgY291bnRlZCBhcyAx
IHRyaXZpYWwgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgVGVzdGVkICAgIDEKKyAgICAgIFRvdGFs
ICAgICAxCisgICAqLworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRJZGVu
dGl0eUFzc2VydGlvbi5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0SWRlbnRpdHlB
c3NlcnRpb24uc3ViLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWQ5NDhhYWRmYTE2MjY3NzQ5
ZGY3ZWQ1MjRkNjgwNDQ2M2Q5MzRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0
SWRlbnRpdHlBc3NlcnRpb24uc3ViLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACisKK0ZB
SUwgZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgbG9hZCBJZFAgcHJveHkgYW5kIHJldHVy
biBhc3NlcnRpb24gZ2VuZXJhdGVkIHVuZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbiAobmVhciAn
Li4ucGMuc2V0SWRlbnRpdHlQcm92aWRlci4uLicpCitGQUlMIGdldElkZW50aXR5QXNzZXJ0aW9u
KCkgc2hvdWxkIHN1Y2NlZWQgaWYgbW9jay1pZHAuanMgcmV0dXJuIGRpZmZlcmVudCBkb21haW4g
YW5kIHByb3RvY29sIGluIGFzc2VydGlvbiB1bmRlZmluZWQgaXMgbm90IGEgZnVuY3Rpb24gKG5l
YXIgJy4uLnBjLnNldElkZW50aXR5UHJvdmlkZXIuLi4nKQorRkFJTCBnZXRJZGVudGl0eUFzc2Vy
dGlvbigpIHNob3VsZCByZWplY3Qgd2l0aCBSVENFcnJvcignaWRwLWV4ZWN1dGlvbi1mYWlsdXJl
JykgaWYgbW9jay1pZHAuanMgdGhyb3dzIGVycm9yIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBpbml0
aWFsIHBjLmlkcEVycm9ySW5mbyB0byBiZSBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0
IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK0ZBSUwgZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBz
aG91bGQgcmVqZWN0IHdpdGggUlRDRXJyb3IoJ2lkcC1iYWQtc2NyaXB0LWZhaWx1cmUnKSBpZiBJ
ZFAgcHJveHkgc2NyaXB0IGRvIG5vdCByZWdpc3RlciBpdHMgY2FsbGJhY2sgdW5kZWZpbmVkIGlz
IG5vdCBhIGZ1bmN0aW9uIChuZWFyICcuLi5wYy5zZXRJZGVudGl0eVByb3ZpZGVyLi4uJykKK0ZB
SUwgZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgcmVqZWN0IHdpdGggT3BlcmF0aW9uRXJy
b3IgaWYgbW9jay1pZHAuanMgcmV0dXJuIGludmFsaWQgcmVzdWx0IHVuZGVmaW5lZCBpcyBub3Qg
YSBmdW5jdGlvbiAobmVhciAnLi4ucGMuc2V0SWRlbnRpdHlQcm92aWRlci4uLicpCitGQUlMIGdl
dElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtbG9h
ZC1mYWlsdXJlJykgaWYgSWRQIGNhbm5vdCBiZSBsb2FkZWQgcGMuc2V0SWRlbnRpdHlQcm92aWRl
ciBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwYy5zZXRJZGVudGl0eVByb3ZpZGVyKCdub25leGlz
dGVudC5sb2NhbGhvc3QnLCB7CisgICAgICBwcm90b2NvbDogYG5vbi1leGlzdGVudGAsCisgICAg
ICB1c2VybmFtZUhpbnQ6IGBhbGljZUBleGFtcGxlLm9yZ2AsCisgICAgfSknLCAncGMuc2V0SWRl
bnRpdHlQcm92aWRlcicgaXMgdW5kZWZpbmVkKQorRkFJTCBnZXRJZGVudGl0eUFzc2VydGlvbigp
IHNob3VsZCByZWplY3Qgd2l0aCBSVENFcnJvcignaWRwLW5lZWQtbG9naW4nKSB3aGVuIG1vY2st
aWRwLmpzIHJlcXVpcmVzIGxvZ2luIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBpbml0aWFsIHBjLmlk
cExvZ2luVXJsIHRvIGJlIG51bGwgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRl
ZmluZWQpIHVuZGVmaW5lZAorRkFJTCBzZXRJZGVudGl0eVByb3ZpZGVyKCkgd2l0aCBubyBwZWVy
SWRlbnRpdHkgcHJvdmlkZWQgc2hvdWxkIHVzZSBwZWVySWRlbnRpdHkgdmFsdWUgZnJvbSBnZXRD
b25maWd1cmF0aW9uKCkgcGMuc2V0SWRlbnRpdHlQcm92aWRlciBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICdwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHByb3RvY29sOiAn
bW9jay1pZHAuanMnCisgICAgfSknLCAncGMuc2V0SWRlbnRpdHlQcm92aWRlcicgaXMgdW5kZWZp
bmVkKQorRkFJTCBDYWxsaW5nIHNldElkZW50aXR5UHJvdmlkZXIoKSBtdWx0aXBsZSB0aW1lcyBz
aG91bGQgcmVzZXQgaWRlbnRpdHkgYXNzZXJ0aW9ucyBwYy5zZXRJZGVudGl0eVByb3ZpZGVyIGlz
IG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdCwgewor
ICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcz9tYXJrPWZpcnN0JworICAgIH0pJywgJ3BjLnNl
dElkZW50aXR5UHJvdmlkZXInIGlzIHVuZGVmaW5lZCkKK0ZBSUwgY3JlYXRlT2ZmZXIoKSBzaG91
bGQgcmV0dXJuIFNEUCBjb250YWluaW5nIGlkZW50aXR5IGFzc2VydGlvbiBzdHJpbmcgaWYgaWRl
bnRpdHkgcHJvdmlkZXIgaXMgc2V0IHBjLnNldElkZW50aXR5UHJvdmlkZXIgaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAncGMuc2V0SWRlbnRpdHlQcm92aWRlcihob3N0U3RyaW5nKGlkcERvbWFpbiwg
cG9ydCksIHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanMnLAorICAgICAgdXNlcm5hbWVI
aW50OiBgYWxpY2VAJHtpZHBEb21haW59YAorICAgIH0pJywgJ3BjLnNldElkZW50aXR5UHJvdmlk
ZXInIGlzIHVuZGVmaW5lZCkKK0ZBSUwgY3JlYXRlT2ZmZXIoKSBzaG91bGQgcmVqZWN0IHdpdGgg
Tm90UmVhZGFibGVFcnJvciBpZiBpZGVudGl0aXR5IGFzc2VydGlvbiByZXF1ZXN0IGZhaWxzIHVu
ZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbiAobmVhciAnLi4ucGMuc2V0SWRlbnRpdHlQcm92aWRl
ci4uLicpCitGQUlMIGNyZWF0ZUFuc3dlcigpIHNob3VsZCByZWplY3Qgd2l0aCBOb3RSZWFkYWJs
ZUVycm9yIGlmIGlkZW50aXRpdHkgYXNzZXJ0aW9uIHJlcXVlc3QgZmFpbHMgdW5kZWZpbmVkIGlz
IG5vdCBhIGZ1bmN0aW9uIChuZWFyICcuLi5wYy5zZXRJZGVudGl0eVByb3ZpZGVyLi4uJykKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0SWRlbnRpdHlBc3NlcnRpb24uc3ViLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmQ4
NjBkOTAxZGVkNzhjOTYzNWRhNjU0MTNhYzYzZTdkYmY0NDYwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tZ2V0SWRlbnRpdHlBc3NlcnRpb24uc3ViLmh0bWwKQEAgLTAsMCArMSw0MDAg
QEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENQZWVy
Q29ubmVjdGlvbi5wcm90b3R5cGUuZ2V0SWRlbnRpdHlBc3NlcnRpb248L3RpdGxlPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
ImlkZW50aXR5LWhlbHBlci5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJp
Y3QnOworCisgIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6
CisgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUv
d2VicnRjLmh0bWwKKworICAvLyBUaGUgdGVzdHMgaGVyZSBpbnRlcmFjdHMgd2l0aCB0aGUgbW9j
ayBpZGVudGl0eSBwcm92aWRlciBsb2NhdGVkIGF0CisgIC8vICAgLy53ZWxsLWtub3duL2lkcC1w
cm94eS9tb2NrLWlkcC5qcworCisgIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBh
cmUgY2FsbGVkIGZyb20gaWRlbnRpdHktaGVscGVyLnN1Yi5qcworICAvLyAgIHBhcnNlQXNzZXJ0
aW9uUmVzdWx0CisgIC8vICAgZ2V0SWRwRG9tYWlucworICAvLyAgIGFzc2VydF9ydGNlcnJvcl9y
ZWplY3Rpb24KKyAgLy8gICBob3N0U3RyaW5nCisKKyAgLyoKKyAgICA5LjYuICBSVENQZWVyQ29u
bmVjdGlvbiBJbnRlcmZhY2UgRXh0ZW5zaW9ucworICAgICAgcGFydGlhbCBpbnRlcmZhY2UgUlRD
UGVlckNvbm5lY3Rpb24geworICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0SWRlbnRpdHlQ
cm92aWRlcihET01TdHJpbmcgcHJvdmlkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFJUQ0lkZW50aXR5UHJvdmlkZXJPcHRpb25zIG9w
dGlvbnMpOworICAgICAgICBQcm9taXNlPERPTVN0cmluZz4gZ2V0SWRlbnRpdHlBc3NlcnRpb24o
KTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFByb21pc2U8UlRDSWRlbnRpdHlBc3NlcnRp
b24+IHBlZXJJZGVudGl0eTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8g
ICAgICAgICAgICAgICAgICAgIGlkcExvZ2luVXJsOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nPyAgICAgICAgICAgICAgICAgICAgaWRwRXJyb3JJbmZvOworICAgICAgfTsK
KworICAgICAgZGljdGlvbmFyeSBSVENJZGVudGl0eVByb3ZpZGVyT3B0aW9ucyB7CisgICAgICAg
IERPTVN0cmluZyBwcm90b2NvbCA9ICJkZWZhdWx0IjsKKyAgICAgICAgRE9NU3RyaW5nIHVzZXJu
YW1lSGludDsKKyAgICAgICAgRE9NU3RyaW5nIHBlZXJJZGVudGl0eTsKKyAgICAgIH07CisgICAq
LworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7CisKKyAgICBj
b25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKKyAgICBjb25zdCBpZHBIb3N0ID0g
aG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpOworCisgICAgcGMuc2V0SWRlbnRpdHlQcm92aWRl
cihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzP2Zvbz1iYXInLAorICAg
ICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YCwKKyAgICAgIHBlZXJJZGVudGl0
eTogJ2JvYkBleGFtcGxlLm9yZycKKyAgICB9KTsKKworICAgIHJldHVybiBwYy5nZXRJZGVudGl0
eUFzc2VydGlvbigpCisgICAgLnRoZW4oYXNzZXJ0aW9uUmVzdWx0U3RyID0+IHsKKyAgICAgIGNv
bnN0IHsgaWRwLCBhc3NlcnRpb24gfSA9IHBhcnNlQXNzZXJ0aW9uUmVzdWx0KGFzc2VydGlvblJl
c3VsdFN0cik7CisKKyAgICAgIGFzc2VydF9lcXVhbHMoaWRwLmRvbWFpbiwgaWRwSG9zdCwKKyAg
ICAgICAgJ0V4cGVjdCBtb2NrLWlkcC5qcyB0byBjb25zdHJ1Y3QgZG9tYWluIGZyb20gaXRzIGxv
Y2F0aW9uLmhvc3QnKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhpZHAucHJvdG9jb2wsICdtb2Nr
LWlkcC5qcycsCisgICAgICAgICdFeHBlY3QgbW9jay1pZHAuanMgdG8gcmV0dXJuIHByb3RvY29s
IG9mIGl0c2VsZiB3aXRoIG5vIHF1ZXJ5IHN0cmluZycpOworCisgICAgICBjb25zdCB7CisgICAg
ICAgIHdhdGVybWFyaywKKyAgICAgICAgYXJncywKKyAgICAgICAgZW52LAorICAgICAgICBxdWVy
eSwKKyAgICAgIH0gPSBhc3NlcnRpb247CisKKyAgICAgIGFzc2VydF9lcXVhbHMod2F0ZXJtYXJr
LCAnbW9jay1pZHAuanMud2F0ZXJtYXJrJywKKyAgICAgICAgJ0V4cGVjdCBhc3NlcnRpb24gcmVz
dWx0IHRvIGNvbnRhaW4gd2F0ZXJtYXJrIGxlZnQgYnkgbW9jay1pZHAuanMnKTsKKworICAgICAg
YXNzZXJ0X2VxdWFscyhhcmdzLm9yaWdpbiwgd2luZG93Lm9yaWdpbiwKKyAgICAgICAgJ0V4cGVj
dCBhcmdzLm9yaWdpbiBhcmd1bWVudCB0byBiZSB0aGUgb3JpZ2luIG9mIHRoaXMgd2luZG93Jyk7
CisKKyAgICAgIGFzc2VydF9lcXVhbHMoZW52LmxvY2F0aW9uLAorICAgICAgICBgaHR0cHM6Ly8k
e2lkcEhvc3R9Ly53ZWxsLWtub3duL2lkcC1wcm94eS9pZHAtdGVzdC5qcz9mb289YmFyYCwKKyAg
ICAgICAgJ0V4cGVjdCBJZFAgcHJveHkgdG8gYmUgbG9hZGVkIHdpdGggZnVsbCB3ZWxsLWtub3du
IFVSTCBjb25zdHJ1Y3RlZCBmcm9tIHByb3ZpZGVyIGFuZCBwcm90b2NvbCcpOworCisgICAgICBh
c3NlcnRfZXF1YWxzKGVudi5vcmlnaW4sIGBodHRwczovLyR7aWRwSG9zdH1gLAorICAgICAgICAn
RXhwZWN0IElkUCB0byBoYXZlIGl0cyBvd24gb3JpZ2luJyk7CisKKyAgICAgIGFzc2VydF9lcXVh
bHMoYXJncy5vcHRpb25zLnByb3RvY29sLCAnaWRwLXRlc3QuanM/Zm9vPWJhcicsCisgICAgICAg
ICdFeHBlY3Qgb3B0aW9ucy5wcm90b2NvbCB0byBiZSB0aGUgc2FtZSB2YWx1ZSBhcyBiZWluZyBw
YXNzZWQgZnJvbSBoZXJlJyk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMoYXJncy5vcHRpb25zLnVz
ZXJuYW1lSGludCwgYGFsaWNlQCR7aWRwRG9tYWlufWAsCisgICAgICAgICdFeHBlY3Qgb3B0aW9u
cy51c2VybmFtZUhpbnQgdG8gYmUgdGhlIHNhbWUgdmFsdWUgYXMgYmVpbmcgcGFzc2VkIGZyb20g
aGVyZScpOworCisgICAgICBhc3NlcnRfZXF1YWxzKGFyZ3Mub3B0aW9ucy5wZWVySWRlbnRpdHks
ICdib2JAZXhhbXBsZS5vcmcnLAorICAgICAgICAnRXhwZWN0IG9wdGlvbnMucGVlcklkZW50aXR5
IHRvIGJlIHRoZSBzYW1lIHZhbHVlIGFzIGJlaW5nIHBhc3NlZCBmcm9tIGhlcmUnKTsKKworICAg
ICAgYXNzZXJ0X2VxdWFscyhxdWVyeS5mb28sICdiYXInLAorICAgICAgICAnRXhwZWN0IHF1ZXJ5
IHN0cmluZyB0byBiZSBwYXJzZWQgYnkgbW9jay1pZHAuanMgYW5kIHJldHVybmVkIGJhY2snKTsK
KyAgICB9KTsKKyAgfSwgJ2dldElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIGxvYWQgSWRQIHBy
b3h5IGFuZCByZXR1cm4gYXNzZXJ0aW9uIGdlbmVyYXRlZCcpOworCisgIC8vIFdoZW4gZ2VuZXJh
dGluZyBhc3NlcnRpb24sIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBkb2Vzbid0IGNhcmUgaWYgdGhl
IHJldHVybmVkIGFzc2VydGlvbgorICAvLyByZXByZXNlbnRzIGlkZW50aXR5IG9mIGRpZmZlcmVu
dCBkb21haW4KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0Owor
CisgICAgY29uc3QgW2lkcERvbWFpbjEsIGlkcERvbWFpbjJdID0gZ2V0SWRwRG9tYWlucygpOwor
ICAgIGFzc2VydF9ub3RfZXF1YWxzKGlkcERvbWFpbjEsIGlkcERvbWFpbjIsCisgICAgICAnU2Fu
aXR5IGNoZWNrIHR3byBpZHBEb21haW5zIGFyZSBkaWZmZXJlbnQnKTsKKworICAgIC8vIEFzayBt
b2NrLWlkcC5qcyB0byByZXR1cm4gYSBjdXN0b20gZG9tYWluIGlkcERvbWFpbjIgYW5kIGN1c3Rv
bSBwcm90b2NvbCBmb28KKyAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJpbmcoaWRw
RG9tYWluMSwgcG9ydCksIHsKKyAgICAgIHByb3RvY29sOiBgbW9jay1pZHAuanM/Z2VuZXJhdG9y
QWN0aW9uPXJldHVybi1jdXN0b20taWRwJmRvbWFpbj0ke2lkcERvbWFpbjJ9JnByb3RvY29sPWZv
b2AsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbjJ9YCwKKyAgICB9KTsK
KworICAgIHJldHVybiBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpCisgICAgLnRoZW4oYXNzZXJ0
aW9uUmVzdWx0U3RyID0+IHsKKyAgICAgIGNvbnN0IHsgaWRwLCBhc3NlcnRpb24gfSA9IHBhcnNl
QXNzZXJ0aW9uUmVzdWx0KGFzc2VydGlvblJlc3VsdFN0cik7CisgICAgICBhc3NlcnRfZXF1YWxz
KGlkcC5kb21haW4sIGlkcERvbWFpbjIpOworICAgICAgYXNzZXJ0X2VxdWFscyhpZHAucHJvdG9j
b2wsICdmb28nKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoYXNzZXJ0aW9uLm9wdGlvbnMudXNlcm5h
bWVIaW50LCBgYWxpY2VAJHtpZHBEb21haW4yfWApOworICAgIH0pOworICB9LCAnZ2V0SWRlbnRp
dHlBc3NlcnRpb24oKSBzaG91bGQgc3VjY2VlZCBpZiBtb2NrLWlkcC5qcyByZXR1cm4gZGlmZmVy
ZW50IGRvbWFpbiBhbmQgcHJvdG9jb2wgaW4gYXNzZXJ0aW9uJyk7CisKKyAgLyoKKyAgICA5LjMu
ICBSZXF1ZXN0aW5nIElkZW50aXR5IEFzc2VydGlvbnMKKyAgICAgIDQuICBJZiB0aGUgSWRQIHBy
b3h5IHByb2R1Y2VzIGFuIGVycm9yIG9yIHJldHVybnMgYSBwcm9taXNlIHRoYXQgZG9lcyBub3Qg
cmVzb2x2ZSB0bworICAgICAgICAgIGEgdmFsaWQgUlRDSWRlbnRpdHlWYWxpZGF0aW9uUmVzdWx0
IChzZWUgOS41IElkUCBFcnJvciBIYW5kbGluZyksIHRoZW4gaWRlbnRpdHkKKyAgICAgICAgICB2
YWxpZGF0aW9uIGZhaWxzLgorCisgICAgOS41LiAgSWRQIEVycm9yIEhhbmRsaW5nCisgICAgICAt
IElmIGFuIGlkZW50aXR5IHByb3ZpZGVyIHRocm93cyBhbiBleGNlcHRpb24gb3IgcmV0dXJucyBh
IHByb21pc2UgdGhhdCBpcyB1bHRpbWF0ZWx5CisgICAgICAgIHJlamVjdGVkLCB0aGVuIHRoZSBw
cm9jZWR1cmUgdGhhdCBkZXBlbmRzIG9uIHRoZSBJZFAgTVVTVCBhbHNvIGZhaWwuIFRoZXNlIHR5
cGVzIG9mCisgICAgICAgIGVycm9ycyB3aWxsIGNhdXNlIGFuIElkUCBmYWlsdXJlIHdpdGggYW4g
UlRDRXJyb3Igd2l0aCBlcnJvckRldGFpbCBzZXQgdG8KKyAgICAgICAgImlkcC1leGVjdXRpb24t
ZmFpbHVyZSIuCisKKyAgICA5LjYuICBSVENQZWVyQ29ubmVjdGlvbiBJbnRlcmZhY2UgRXh0ZW5z
aW9ucworICAgICAgaWRwRXJyb3JJbmZvCisgICAgICAgIEFuIGF0dHJpYnV0ZSB0aGF0IHRoZSBJ
ZFAgY2FuIHVzZSB0byBwYXNzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYmFjayB0byB0aGUKKyAg
ICAgICAgYXBwbGljYXRpb25zIGFib3V0IHRoZSBlcnJvci4gVGhlIGZvcm1hdCBvZiB0aGlzIHN0
cmluZyBpcyBkZWZpbmVkIGJ5IHRoZSBJZFAgYW5kCisgICAgICAgIG1heSBiZSBKU09OLgorICAg
Ki8KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisKKyAgICBhc3NlcnRfZXF1YWxzKHBjLmlkcEVycm9ySW5mbywgbnVsbCwKKyAg
ICAgICdFeHBlY3QgaW5pdGlhbCBwYy5pZHBFcnJvckluZm8gdG8gYmUgbnVsbCcpOworCisgICAg
Y29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBEb21haW5d
ID0gZ2V0SWRwRG9tYWlucygpOworCisgICAgLy8gQXNrIG1vY2staWRwLmpzIHRvIHRocm93IGFu
IGVycm9yIHdpdGggZXJyLmVycm9ySW5mbyBzZXQgdG8gYmFyCisgICAgcGMuc2V0SWRlbnRpdHlQ
cm92aWRlcihob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCksIHsKKyAgICAgIHByb3RvY29sOiBg
bW9jay1pZHAuanM/Z2VuZXJhdG9yQWN0aW9uPXRocm93LWVycm9yJmVycm9ySW5mbz1iYXJgLAor
ICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YCwKKyAgICB9KTsKKworICAg
IHJldHVybiBhc3NlcnRfcnRjZXJyb3JfcmVqZWN0aW9uKCdpZHAtZXhlY3V0aW9uLWZhaWx1cmUn
LAorICAgICAgcGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSkKKyAgICAudGhlbigoKSA9PiB7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKHBjLmlkcEVycm9ySW5mbywgJ2JhcicsCisgICAgICAgICdFeHBl
Y3QgcGMuaWRwRXJyb3JJbmZvIHRvIGJlIHNldCB0byB0aGUgZXJyLmlkcEVycm9ySW5mbyB0aHJv
d24gYnkgbW9jay1pZHAuanMnKTsKKyAgICB9KTsKKyAgfSwgYGdldElkZW50aXR5QXNzZXJ0aW9u
KCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtZXhlY3V0aW9uLWZhaWx1cmUnKSBp
ZiBtb2NrLWlkcC5qcyB0aHJvd3MgZXJyb3JgKTsKKworICAvKgorICAgIDkuNS4gIElkUCBFcnJv
ciBIYW5kbGluZworICAgICAgLSBJZiB0aGUgc2NyaXB0IGxvYWRlZCBmcm9tIHRoZSBpZGVudGl0
eSBwcm92aWRlciBpcyBub3QgdmFsaWQgSmF2YVNjcmlwdCBvciBkb2VzCisgICAgICAgIG5vdCBp
bXBsZW1lbnQgdGhlIGNvcnJlY3QgaW50ZXJmYWNlcywgaXQgY2F1c2VzIGFuIElkUCBmYWlsdXJl
IHdpdGggYW4gUlRDRXJyb3IKKyAgICAgICAgd2l0aCBlcnJvckRldGFpbCBzZXQgdG8gImlkcC1i
YWQtc2NyaXB0LWZhaWx1cmUiLgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICBjb25zdCBwb3J0ID0gd2lu
ZG93LmxvY2F0aW9uLnBvcnQ7CisgICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5z
KCk7CisKKyAgICAvLyBBc2sgbW9jay1pZHAuanMgdG8gbm90IHJlZ2lzdGVyIGl0cyBjYWxsYmFj
ayB0byB0aGUKKyAgICAvLyBSVENJZGVudGl0eVByb3ZpZGVyUmVnaXN0cmFyCisgICAgcGMuc2V0
SWRlbnRpdHlQcm92aWRlcihob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCksIHsKKyAgICAgIHBy
b3RvY29sOiBgbW9jay1pZHAuanM/YWN0aW9uPWRvLW5vdC1yZWdpc3RlcmAsCisgICAgICB1c2Vy
bmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gLAorICAgIH0pOworCisgICAgcmV0dXJuIGFz
c2VydF9ydGNlcnJvcl9yZWplY3Rpb24oJ2lkcC1iYWQtc2NyaXB0LWZhaWx1cmUnLAorICAgICAg
cGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSk7CisKKyAgfSwgYGdldElkZW50aXR5QXNzZXJ0aW9u
KCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtYmFkLXNjcmlwdC1mYWlsdXJlJykg
aWYgSWRQIHByb3h5IHNjcmlwdCBkbyBub3QgcmVnaXN0ZXIgaXRzIGNhbGxiYWNrYCk7CisKKyAg
LyoKKyAgICA5LjMuICBSZXF1ZXN0aW5nIElkZW50aXR5IEFzc2VydGlvbnMKKyAgICAgIDQuICBJ
ZiB0aGUgSWRQIHByb3h5IHByb2R1Y2VzIGFuIGVycm9yIG9yIHJldHVybnMgYSBwcm9taXNlIHRo
YXQgZG9lcyBub3QgcmVzb2x2ZQorICAgICAgICAgIHRvIGEgdmFsaWQgUlRDSWRlbnRpdHlBc3Nl
cnRpb25SZXN1bHQgKHNlZSA5LjUgSWRQIEVycm9yIEhhbmRsaW5nKSwgdGhlbiBhc3NlcnRpb24K
KyAgICAgICAgICBnZW5lcmF0aW9uIGZhaWxzLgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KHQgPT4g
eworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICBjb25zdCBw
b3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7CisgICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJ
ZHBEb21haW5zKCk7CisKKyAgICAvLyBBc2sgbW9jay1pZHAuanMgdG8gcmV0dXJuIGFuIGludmFs
aWQgcmVzdWx0IHRoYXQgaXMgbm90IHByb3BlcgorICAgIC8vIFJUQ0lkZW50aXR5QXNzZXJ0aW9u
UmVzdWx0CisgICAgcGMuc2V0SWRlbnRpdHlQcm92aWRlcihob3N0U3RyaW5nKGlkcERvbWFpbiwg
cG9ydCksIHsKKyAgICAgIHByb3RvY29sOiBgbW9jay1pZHAuanM/Z2VuZXJhdG9yQWN0aW9uPXJl
dHVybi1pbnZhbGlkLXJlc3VsdGAsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERv
bWFpbn1gLAorICAgIH0pOworCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnT3BlcmF0
aW9uRXJyb3InLAorICAgICAgcGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSk7CisgIH0sIGBnZXRJ
ZGVudGl0eUFzc2VydGlvbigpIHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRpb25FcnJvciBpZiBt
b2NrLWlkcC5qcyByZXR1cm4gaW52YWxpZCByZXN1bHRgKTsKKworICAvKgorICAgIDkuNS4gIElk
UCBFcnJvciBIYW5kbGluZworICAgICAgLSBBIFJUQ1BlZXJDb25uZWN0aW9uIG1pZ2h0IGJlIGNv
bmZpZ3VyZWQgd2l0aCBhbiBpZGVudGl0eSBwcm92aWRlciwgYnV0IGxvYWRpbmcgb2YKKyAgICAg
ICAgdGhlIElkUCBVUkkgZmFpbHMuIEFueSBwcm9jZWR1cmUgdGhhdCBhdHRlbXB0cyB0byBpbnZv
a2Ugc3VjaCBhbiBpZGVudGl0eSBwcm92aWRlcgorICAgICAgICBhbmQgY2Fubm90IGxvYWQgdGhl
IFVSSSBmYWlscyB3aXRoIGFuIFJUQ0Vycm9yIHdpdGggZXJyb3JEZXRhaWwgc2V0IHRvCisgICAg
ICAgICJpZHAtbG9hZC1mYWlsdXJlIiBhbmQgdGhlIGh0dHBSZXF1ZXN0U3RhdHVzQ29kZSBhdHRy
aWJ1dGUgb2YgdGhlIGVycm9yIHNldCB0byB0aGUKKyAgICAgICAgSFRUUCBzdGF0dXMgY29kZSBv
ZiB0aGUgcmVzcG9uc2UuCisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgIHBjLnNldElkZW50aXR5UHJvdmlk
ZXIoJ25vbmV4aXN0ZW50Lnt7ZG9tYWluc1tdfX0nLCB7CisgICAgICBwcm90b2NvbDogYG5vbi1l
eGlzdGVudGAsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUBleGFtcGxlLm9yZ2AsCisgICAg
fSk7CisKKyAgICByZXR1cm4gYXNzZXJ0X3J0Y2Vycm9yX3JlamVjdGlvbignaWRwLWxvYWQtZmFp
bHVyZScsCisgICAgICBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpKTsKKyAgfSwgYGdldElkZW50
aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtbG9hZC1mYWls
dXJlJykgaWYgSWRQIGNhbm5vdCBiZSBsb2FkZWRgKTsKKworICAvKgorICAgIDkuMy4xLiAgVXNl
ciBMb2dpbiBQcm9jZWR1cmUKKyAgICAgIFJlamVjdGluZyB0aGUgcHJvbWlzZSByZXR1cm5lZCBi
eSBnZW5lcmF0ZUFzc2VydGlvbiB3aWxsIGNhdXNlIHRoZSBlcnJvciB0bworICAgICAgcHJvcGFn
YXRlIHRvIHRoZSBhcHBsaWNhdGlvbi4gTG9naW4gZXJyb3JzIGFyZSBpbmRpY2F0ZWQgYnkgcmVq
ZWN0aW5nIHRoZQorICAgICAgcHJvbWlzZSB3aXRoIGFuIFJUQ0Vycm9yIHdpdGggZXJyb3JEZXRh
aWwgc2V0IHRvICJpZHAtbmVlZC1sb2dpbiIuCisKKyAgICAgIFRoZSBVUkwgdG8gbG9naW4gYXQg
d2lsbCBiZSBwYXNzZWQgdG8gdGhlIGFwcGxpY2F0aW9uIGluIHRoZSBpZHBMb2dpblVybAorICAg
ICAgYXR0cmlidXRlIG9mIHRoZSBSVENQZWVyQ29ubmVjdGlvbi4KKworICAgIDkuNS4gIElkUCBF
cnJvciBIYW5kbGluZworICAgICAgLSBJZiB0aGUgaWRlbnRpdHkgcHJvdmlkZXIgcmVxdWlyZXMg
dGhlIHVzZXIgdG8gbG9naW4sIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsCisgICAgICAgIFJUQ0Vy
cm9yIHdpdGggZXJyb3JEZXRhaWwgc2V0IHRvICJpZHAtbmVlZC1sb2dpbiIgYW5kIHRoZSBpZHBM
b2dpblVybCBhdHRyaWJ1dGUKKyAgICAgICAgb2YgdGhlIGVycm9yIHNldCB0byB0aGUgVVJMIHRo
YXQgY2FuIGJlIHVzZWQgdG8gbG9naW4uCisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7Cisg
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgIGFzc2VydF9lcXVh
bHMocGMuaWRwTG9naW5VcmwsIG51bGwsCisgICAgICAnRXhwZWN0IGluaXRpYWwgcGMuaWRwTG9n
aW5VcmwgdG8gYmUgbnVsbCcpOworCisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5w
b3J0OworICAgIGNvbnN0IFtpZHBEb21haW5dID0gZ2V0SWRwRG9tYWlucygpOworICAgIGNvbnN0
IGlkcEhvc3QgPSBob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCk7CisKKyAgICBwYy5zZXRJZGVu
dGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHByb3RvY29sOiBgbW9jay1pZHAuanM/Z2Vu
ZXJhdG9yQWN0aW9uPXJlcXVpcmUtbG9naW5gLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VA
JHtpZHBEb21haW59YCwKKyAgICB9KTsKKworICAgIHJldHVybiBhc3NlcnRfcnRjZXJyb3JfcmVq
ZWN0aW9uKCdpZHAtbmVlZC1sb2dpbicsCisgICAgICBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigp
KQorICAgIC50aGVuKGVyciA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKGVyci5pZHBMb2dpblVy
bCwgYGh0dHBzOi8vJHtpZHBIb3N0fS9sb2dpbmAsCisgICAgICAgICdFeHBlY3QgZXJyLmlkcExv
Z2luVXJsIHRvIGJlIHNldCB0byB1cmwgc2V0IGJ5IG1vY2staWRwLmpzJyk7CisKKyAgICAgIGFz
c2VydF9lcXVhbHMocGMuaWRwTG9naW5VcmwsIGBodHRwczovLyR7aWRwSG9zdH0vbG9naW5gLAor
ICAgICAgICAnRXhwZWN0IHBjLmlkcExvZ2luVXJsIHRvIGJlIHNldCB0byB1cmwgc2V0IGJ5IG1v
Y2staWRwLmpzJyk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMocGMuaWRwRXJyb3JJbmZvLCAnbG9n
aW4gcmVxdWlyZWQnLAorICAgICAgICAnRXhwZWN0IHBjLmlkcEVycm9ySW5mbyB0byBiZSBzZXQg
dG8gaW5mbyBzZXQgYnkgbW9jay1pZHAuanMnKTsKKyAgICB9KTsKKyAgfSwgYGdldElkZW50aXR5
QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtbmVlZC1sb2dpbicp
IHdoZW4gbW9jay1pZHAuanMgcmVxdWlyZXMgbG9naW5gKTsKKworICAvKgorICAgIFJUQ0lkZW50
aXR5UHJvdmlkZXJPcHRpb25zIE1lbWJlcnMKKyAgICAgIHBlZXJJZGVudGl0eQorICAgICAgICBU
aGUgaWRlbnRpdHkgb2YgdGhlIHBlZXIuIEZvciBpZGVudGl0eSBwcm92aWRlcnMgdGhhdCBiaW5k
IHRoZWlyIGFzc2VydGlvbnMgdG8gYQorICAgICAgICBwYXJ0aWN1bGFyIHBhaXIgb2YgY29tbXVu
aWNhdGlvbiBwZWVycywgdGhpcyBhbGxvd3MgdGhlbSB0byBnZW5lcmF0ZSBhbiBhc3NlcnRpb24K
KyAgICAgICAgdGhhdCBpbmNsdWRlcyBib3RoIGxvY2FsIGFuZCByZW1vdGUgaWRlbnRpdGllcy4g
SWYgdGhpcyB2YWx1ZSBpcyBvbWl0dGVkLCBidXQgYQorICAgICAgICB2YWx1ZSBpcyBwcm92aWRl
ZCBmb3IgdGhlIHBlZXJJZGVudGl0eSBtZW1iZXIgb2YgUlRDQ29uZmlndXJhdGlvbiwgdGhlIHZh
bHVlIGZyb20KKyAgICAgICAgUlRDQ29uZmlndXJhdGlvbiBpcyB1c2VkLgorICAqLworICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oewor
ICAgICAgcGVlcklkZW50aXR5OiAnYm9iQGV4YW1wbGUubmV0JworICAgIH0pOworCisgICAgY29u
c3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBEb21haW5dID0g
Z2V0SWRwRG9tYWlucygpOworICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5nKGlkcERvbWFp
biwgcG9ydCk7CisKKyAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAg
IHByb3RvY29sOiAnbW9jay1pZHAuanMnCisgICAgfSk7CisKKyAgICByZXR1cm4gcGMuZ2V0SWRl
bnRpdHlBc3NlcnRpb24oKQorICAgIC50aGVuKGFzc2VydGlvblJlc3VsdFN0ciA9PiB7CisgICAg
ICBjb25zdCB7IGFzc2VydGlvbiB9ID0gcGFyc2VBc3NlcnRpb25SZXN1bHQoYXNzZXJ0aW9uUmVz
dWx0U3RyKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoYXNzZXJ0aW9uLmFyZ3Mub3B0aW9ucy5wZWVy
SWRlbnRpdHksICdib2JAZXhhbXBsZS5uZXQnKTsKKyAgICB9KTsKKyAgfSwgJ3NldElkZW50aXR5
UHJvdmlkZXIoKSB3aXRoIG5vIHBlZXJJZGVudGl0eSBwcm92aWRlZCBzaG91bGQgdXNlIHBlZXJJ
ZGVudGl0eSB2YWx1ZSBmcm9tIGdldENvbmZpZ3VyYXRpb24oKScpOworCisgIC8qCisgICAgOS42
LiAgc2V0SWRlbnRpdHlQcm92aWRlcgorICAgICAgMy4gIElmIGFueSBpZGVudGl0eSBwcm92aWRl
ciB2YWx1ZSBoYXMgY2hhbmdlZCwgZGlzY2FyZCBhbnkgc3RvcmVkIGlkZW50aXR5IGFzc2VydGlv
bi4KKyAgICovCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsK
KyAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKKyAgICBjb25zdCBpZHBI
b3N0ID0gaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpOworCisgICAgcGMuc2V0SWRlbnRpdHlQ
cm92aWRlcihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzP21hcms9Zmly
c3QnCisgICAgfSk7CisKKyAgICByZXR1cm4gcGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKQorICAg
IC50aGVuKGFzc2VydGlvblJlc3VsdFN0ciA9PiB7CisgICAgICBjb25zdCB7IGFzc2VydGlvbiB9
ID0gcGFyc2VBc3NlcnRpb25SZXN1bHQoYXNzZXJ0aW9uUmVzdWx0U3RyKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoYXNzZXJ0aW9uLnF1ZXJ5Lm1hcmssICdmaXJzdCcpOworCisgICAgICBwYy5zZXRJ
ZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5q
cz9tYXJrPXNlY29uZCcKKyAgICAgIH0pOworCisgICAgICByZXR1cm4gcGMuZ2V0SWRlbnRpdHlB
c3NlcnRpb24oKTsKKyAgICB9KQorICAgIC50aGVuKGFzc2VydGlvblJlc3VsdFN0ciA9PiB7Cisg
ICAgICBjb25zdCB7IGFzc2VydGlvbiB9ID0gcGFyc2VBc3NlcnRpb25SZXN1bHQoYXNzZXJ0aW9u
UmVzdWx0U3RyKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoYXNzZXJ0aW9uLnF1ZXJ5Lm1hcmssICdz
ZWNvbmQnLAorICAgICAgICAnRXhwZWN0IGdlbmVyYXRlZCBhc3NlcnRpb24gaXMgZnJvbSBzZWNv
bmQgSWRQIGNvbmZpZycpOworICAgIH0pOworICB9LCBgQ2FsbGluZyBzZXRJZGVudGl0eVByb3Zp
ZGVyKCkgbXVsdGlwbGUgdGltZXMgc2hvdWxkIHJlc2V0IGlkZW50aXR5IGFzc2VydGlvbnNgKTsK
KworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7CisgICAgY29u
c3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7CisKKyAgICBwYy5zZXRJZGVudGl0eVBy
b3ZpZGVyKGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KSwgeworICAgICAgcHJvdG9jb2w6ICdt
b2NrLWlkcC5qcycsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gCisg
ICAgfSk7CisKKyAgICByZXR1cm4gcGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKQorICAgIC50aGVu
KGFzc2VydGlvblJlc3VsdFN0ciA9PgorICAgICAgcGMuY3JlYXRlT2ZmZXIoKQorICAgICAgLnRo
ZW4ob2ZmZXIgPT4geworICAgICAgICBhc3NlcnRfdHJ1ZShvZmZlci5zZHAuaW5jbHVkZXMoYFxy
XG5hPWlkZW50aXR5OiR7YXNzZXJ0aW9uUmVzdWx0U3RyfWAsCisgICAgICAgICAgJ0V4cGVjdCBT
RFAgdG8gaGF2ZSBhPWlkZW50aXR5IGxpbmUgY29udGFpbmluZyBhc3NlcnRpb24gc3RyaW5nJykp
OworICAgICAgfSkpOworICB9LCAnY3JlYXRlT2ZmZXIoKSBzaG91bGQgcmV0dXJuIFNEUCBjb250
YWluaW5nIGlkZW50aXR5IGFzc2VydGlvbiBzdHJpbmcgaWYgaWRlbnRpdHkgcHJvdmlkZXIgaXMg
c2V0Jyk7CisKKyAgLyoKKyAgICA0LjQuMi4gIFN0ZXBzIHRvIGNyZWF0ZSBhbiBvZmZlcgorICAg
ICAgMS4gIElmIHRoZSBuZWVkIGZvciBhbiBpZGVudGl0eSBhc3NlcnRpb24gd2FzIGlkZW50aWZp
ZWQgd2hlbiBjcmVhdGVPZmZlciB3YXMKKyAgICAgICAgICBpbnZva2VkLCB3YWl0IGZvciB0aGUg
aWRlbnRpdHkgYXNzZXJ0aW9uIHJlcXVlc3QgcHJvY2VzcyB0byBjb21wbGV0ZS4KKyAgICAgIDIu
ICBJZiB0aGUgaWRlbnRpdHkgcHJvdmlkZXIgd2FzIHVuYWJsZSB0byBwcm9kdWNlIGFuIGlkZW50
aXR5IGFzc2VydGlvbiwgcmVqZWN0IHAKKyAgICAgICAgICB3aXRoIGEgbmV3bHkgY3JlYXRlZCBO
b3RSZWFkYWJsZUVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICovCisgIHByb21pc2Vf
dGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAg
IGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWlu
XSA9IGdldElkcERvbWFpbnMoKTsKKworICAgIHBjLnNldElkZW50aXR5UHJvdmlkZXIoaG9zdFN0
cmluZyhpZHBEb21haW4sIHBvcnQpLCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzP2dl
bmVyYXRvckFjdGlvbj10aHJvdy1lcnJvcicsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAk
e2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdO
b3RSZWFkYWJsZUVycm9yJywKKyAgICAgIHBjLmNyZWF0ZU9mZmVyKCkpOworICB9LCAnY3JlYXRl
T2ZmZXIoKSBzaG91bGQgcmVqZWN0IHdpdGggTm90UmVhZGFibGVFcnJvciBpZiBpZGVudGl0aXR5
IGFzc2VydGlvbiByZXF1ZXN0IGZhaWxzJyk7CisKKyAgLyoKKyAgICA0LjQuMi4gIFN0ZXBzIHRv
IGNyZWF0ZSBhbiBhbnN3ZXIKKyAgICAgIDEuICBJZiB0aGUgbmVlZCBmb3IgYW4gaWRlbnRpdHkg
YXNzZXJ0aW9uIHdhcyBpZGVudGlmaWVkIHdoZW4gY3JlYXRlQW5zd2VyIHdhcworICAgICAgICAg
IGludm9rZWQsIHdhaXQgZm9yIHRoZSBpZGVudGl0eSBhc3NlcnRpb24gcmVxdWVzdCBwcm9jZXNz
IHRvIGNvbXBsZXRlLgorCisgICAgICAyLiAgSWYgdGhlIGlkZW50aXR5IHByb3ZpZGVyIHdhcyB1
bmFibGUgdG8gcHJvZHVjZSBhbiBpZGVudGl0eSBhc3NlcnRpb24sIHJlamVjdCBwCisgICAgICAg
ICAgd2l0aCBhIG5ld2x5IGNyZWF0ZWQgTm90UmVhZGFibGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ug
c3RlcHMuCisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBv
cnQ7CisgICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7CisKKyAgICBwYy5z
ZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KSwgeworICAgICAg
cHJvdG9jb2w6ICdtb2NrLWlkcC5qcz9nZW5lcmF0b3JBY3Rpb249dGhyb3ctZXJyb3InLAorICAg
ICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAorICAgIH0pOworCisgICAgcmV0
dXJuIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpCisgICAgLmNyZWF0ZU9mZmVyKCkKKyAgICAudGhl
bihvZmZlciA9PiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikpCisgICAgLnRoZW4oKCkg
PT4KKyAgICAgIHByb21pc2VfcmVqZWN0cyh0LCAnTm90UmVhZGFibGVFcnJvcicsCisgICAgICAg
IHBjLmNyZWF0ZUFuc3dlcigpKSk7CisKKyAgfSwgJ2NyZWF0ZUFuc3dlcigpIHNob3VsZCByZWpl
Y3Qgd2l0aCBOb3RSZWFkYWJsZUVycm9yIGlmIGlkZW50aXRpdHkgYXNzZXJ0aW9uIHJlcXVlc3Qg
ZmFpbHMnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMuaHRtbAppbmRleCA0OWY4ODEz
MWMzZTFmNzViOGI3Y2I5MjY3OTJmOWFjNzFmNDFlOGVlLi5mMjZhOTNlYTI4OTk5ZTI0MWU3Mzc0
ZmY5ZDA3ZjM5NDEyODE2YWExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBzLmh0bWwKQEAgLTI2NCw4ICsy
NjQsMTEgQEAKICAgICAib3V0Ym91bmQtcnRwIiwKICAgICAicmVtb3RlLWluYm91bmQtcnRwIiwK
ICAgICAicmVtb3RlLW91dGJvdW5kLXJ0cCIsCisgICAgIm1lZGlhLXNvdXJjZSIsCiAgICAgInBl
ZXItY29ubmVjdGlvbiIsCiAgICAgImRhdGEtY2hhbm5lbCIsCisgICAgInNlbmRlciIsCisgICAg
InJlY2VpdmVyIiwKICAgICAidHJhbnNwb3J0IiwKICAgICAiY2FuZGlkYXRlLXBhaXIiLAogICAg
ICJsb2NhbC1jYW5kaWRhdGUiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24taGVscGVyLmpzCmluZGV4IDVhZWYwYThlMjFlNDJmYWZlNTg3MTljMGZiMjQ2
YTkxOWQxYjE1ZDEuLmFjNDM1Mjc5YmQyNGZlNWU1NDM4M2NhZTIxMjFmN2IwYTMyNGRmMjIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIu
anMKQEAgLTE3NiwxMSArMTc2LDkgQEAgZnVuY3Rpb24gZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBj
MSwgcGMyKSB7CiAgICAgbG9jYWxQYy5hZGRFdmVudExpc3RlbmVyKCdpY2VjYW5kaWRhdGUnLCBl
dmVudCA9PiB7CiAgICAgICBjb25zdCB7IGNhbmRpZGF0ZSB9ID0gZXZlbnQ7CiAKLSAgICAgIC8v
IGNhbmRpZGF0ZSBtYXkgYmUgbnVsbCB0byBpbmRpY2F0ZSBlbmQgb2YgY2FuZGlkYXRlIGdhdGhl
cmluZy4KLSAgICAgIC8vIFRoZXJlIGlzIG9uZ29pbmcgZGlzY3Vzc2lvbiBvbiB3M2Mvd2VicnRj
LXBjIzEyMTMKLSAgICAgIC8vIHRoYXQgdGhlcmUgc2hvdWxkIGJlIGFuIGVtcHR5IGNhbmRpZGF0
ZSBzdHJpbmcgZXZlbnQKLSAgICAgIC8vIGZvciBlbmQgb2YgY2FuZGlkYXRlIGZvciBlYWNoIG09
IHNlY3Rpb24uCi0gICAgICBpZihjYW5kaWRhdGUgJiYgcmVtb3RlUGMuc2lnbmFsaW5nU3RhdGUg
IT09ICdjbG9zZWQnKSB7CisgICAgICAvLyBHdWFyZCBhZ2FpbnN0IGFscmVhZHkgY2xvc2VkIHBl
ZXJjb25uZWN0aW9uIHRvCisgICAgICAvLyBhdm9pZCB1bnJlbGF0ZWQgZXhjZXB0aW9ucy4KKyAg
ICAgIGlmIChyZW1vdGVQYy5zaWduYWxpbmdTdGF0ZSAhPT0gJ2Nsb3NlZCcpIHsKICAgICAgICAg
cmVtb3RlUGMuYWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7CiAgICAgICB9CiAgICAgfSk7CkBA
IC0yNDIsOCArMjQwLDcgQEAgYXN5bmMgZnVuY3Rpb24gd2FpdEZvckljZUdhdGhlcmluZ1N0YXRl
KHBjLCB3YW50ZWRTdGF0ZXMpIHsKIGFzeW5jIGZ1bmN0aW9uIGxpc3RlbkZvclNTUkNzKHQsIHJl
Y2VpdmVyKSB7CiAgIHdoaWxlICh0cnVlKSB7CiAgICAgY29uc3Qgc3NyY3MgPSByZWNlaXZlci5n
ZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCk7Ci0gICAgYXNzZXJ0X3RydWUoQXJyYXkuaXNBcnJh
eShzc3JjcykpOwotICAgIGlmIChzc3Jjcy5sZW5ndGggPiAwKSB7CisgICAgaWYgKEFycmF5Lmlz
QXJyYXkoc3NyY3MpICYmIHNzcmNzLmxlbmd0aCA+IDApIHsKICAgICAgIHJldHVybiBzc3JjczsK
ICAgICB9CiAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChyLCAwKSk7
CkBAIC00MTAsNiArNDA3LDE1IEBAIGNvbnN0IHRyYWNrRmFjdG9yaWVzID0gewogICAgICAgY3R4
LmZpbGxTdHlsZSA9IGByZ2IoJHtjb3VudCUyNTV9LCAke2NvdW50KmNvdW50JTI1NX0sICR7Y291
bnQlMjU1fSlgOwogICAgICAgY291bnQgKz0gMTsKICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCB3
aWR0aCwgaGVpZ2h0KTsKKyAgICAgIC8vIEFkZCBzb21lIGJvdW5jaW5nIGJveGVzIGluIGNvbnRy
YXN0IGNvbG9yIHRvIGFkZCBhIGxpdHRsZSBtb3JlIG5vaXNlLgorICAgICAgY29uc3QgY29udHJh
c3QgPSBjb3VudCArIDEyODsKKyAgICAgIGN0eC5maWxsU3R5bGUgPSBgcmdiKCR7Y29udHJhc3Ql
MjU1fSwgJHtjb250cmFzdCpjb250cmFzdCUyNTV9LCAke2NvbnRyYXN0JTI1NX0pYDsKKyAgICAg
IGNvbnN0IHhwb3MgPSBjb3VudCAlICh3aWR0aCAtIDIwKTsKKyAgICAgIGNvbnN0IHlwb3MgPSBj
b3VudCAlIChoZWlnaHQgLSAyMCk7CisgICAgICBjdHguZmlsbFJlY3QoeHBvcywgeXBvcywgeHBv
cyArIDIwLCB5cG9zICsgMjApOworICAgICAgY29uc3QgeHBvczIgPSAoY291bnQgKyB3aWR0aCAv
IDIpICUgKHdpZHRoIC0gMjApOworICAgICAgY29uc3QgeXBvczIgPSAoY291bnQgKyBoZWlnaHQg
LyAyKSAlIChoZWlnaHQgLSAyMCk7CisgICAgICBjdHguZmlsbFJlY3QoeHBvczIsIHlwb3MyLCB4
cG9zMiArIDIwLCB5cG9zMiArIDIwKTsKICAgICAgIC8vIElmIHNpZ25hbCBpcyBzZXQgKDAtMjU1
KSwgYWRkIGEgY29uc3RhbnQtY29sb3IgYm94IG9mIHRoYXQgbHVtaW5hbmNlIHRvCiAgICAgICAv
LyB0aGUgdmlkZW8gZnJhbWUgYXQgY29vcmRpbmF0ZXMgMjAgdG8gNjAgaW4gYm90aCBYIGFuZCBZ
IGRpcmVjdGlvbi4KICAgICAgIC8vIChiaWcgZW5vdWdoIHRvIGF2b2lkIGNvbG9yIGJsZWVkIGZy
b20gc3Vycm91bmRpbmcgdmlkZW8gaW4gc29tZSBjb2RlY3MsCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1pY2VDb25uZWN0aW9uU3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29u
bmVjdGlvblN0YXRlLWV4cGVjdGVkLnR4dAppbmRleCBiMDUyMDExYTY0ZWQxZjAyMzQwMTgzMzk4
YmRhNTVmYjgyNmU3ODQyLi43MWVmNzg2MTVmNDZkYjExMzg1ODRlNzVjODJjZTAyOGFiM2MzZmFl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSw0IEBACiAKIFBBU1MgSW5pdGlhbCBpY2VDb25uZWN0aW9uU3RhdGUgc2hvdWxkIGJlIG5l
dwotRkFJTCBjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQgZXZlbnR1YWxs
eSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdwYzEuc2N0cC50cmFuc3BvcnQnKQorRkFJTCBjb25uZWN0aW9uIHdp
dGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQgZXZlbnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25u
ZWN0aW9uIHN0YXRlIENhbid0IGZpbmQgdmFyaWFibGU6IGRvU2lnbmFsaW5nSGFuZHNoYWtlCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA3MTAzM2EzYzllZmY2
ZTViODQ4NTMxMTI3YzFiNzBlZTkwYmIyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWljZUNvbm5lY3Rpb25TdGF0ZS5odG1sCkBAIC0wLDAgKzEsMTg3IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90
eXBlLmljZUNvbm5lY3Rpb25TdGF0ZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24t
aGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICAvLyBU
ZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgorICAvLyBodHRwczov
L3czYy5naXRodWIuaW8vd2VicnRjLXBjL2FyY2hpdmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG1sCisK
KyAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQ
ZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6CisgIC8vIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcworICAv
LyBkb1NpZ25hbGluZ0hhbmRzaGFrZQorCisgIC8qCisgICAgNC4zLjIuICBJbnRlcmZhY2UgRGVm
aW5pdGlvbgorICAgICAgaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uIDogRXZlbnRUYXJnZXQg
eworICAgICAgICAuLi4KKyAgICAgICAgcmVhZG9ubHkgIGF0dHJpYnV0ZSBSVENJY2VDb25uZWN0
aW9uU3RhdGUgIGljZUNvbm5lY3Rpb25TdGF0ZTsKKyAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgICAgICAgICAgIG9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlOworICAg
ICAgfTsKKworICAgIDQuNC40IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSBFbnVtCisgICAgICBlbnVt
IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSB7CisgICAgICAgICJuZXciLAorICAgICAgICAiY2hlY2tp
bmciLAorICAgICAgICAiY29ubmVjdGVkIiwKKyAgICAgICAgImNvbXBsZXRlZCIsCisgICAgICAg
ICJmYWlsZWQiLAorICAgICAgICAiZGlzY29ubmVjdGVkIiwKKyAgICAgICAgImNsb3NlZCIKKyAg
ICAgIH07CisKKyAgICA1LjYuICBSVENJY2VUcmFuc3BvcnQgSW50ZXJmYWNlCisgICAgICBpbnRl
cmZhY2UgUlRDSWNlVHJhbnNwb3J0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ0lj
ZVRyYW5zcG9ydFN0YXRlIHN0YXRlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyICAgICAgICAgb25zdGF0ZWNoYW5nZTsKKworICAgICAgICAuLi4KKyAgICAgIH07CisK
KyAgICAgIGVudW0gUlRDSWNlVHJhbnNwb3J0U3RhdGUgeworICAgICAgICAibmV3IiwKKyAgICAg
ICAgImNoZWNraW5nIiwKKyAgICAgICAgImNvbm5lY3RlZCIsCisgICAgICAgICJjb21wbGV0ZWQi
LAorICAgICAgICAiZmFpbGVkIiwKKyAgICAgICAgImRpc2Nvbm5lY3RlZCIsCisgICAgICAgICJj
bG9zZWQiCisgICAgICB9OworICAgKi8KKworICAvKgorICAgIDQuNC40IFJUQ0ljZUNvbm5lY3Rp
b25TdGF0ZSBFbnVtCisgICAgICBuZXcKKyAgICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3Bv
cnRzIGFyZSBpbiB0aGUgbmV3IHN0YXRlIGFuZCBub25lIG9mIHRoZW0KKyAgICAgICAgYXJlIGlu
IHRoZSBjaGVja2luZywgZmFpbGVkIG9yIGRpc2Nvbm5lY3RlZCBzdGF0ZSwgb3IgYWxsCisgICAg
ICAgIFJUQ0ljZVRyYW5zcG9ydCBzIGFyZSBpbiB0aGUgY2xvc2VkIHN0YXRlLgorICAgKi8KKyAg
dGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAg
IGFzc2VydF9lcXVhbHMocGMuaWNlQ29ubmVjdGlvblN0YXRlLCAnbmV3Jyk7CisgIH0sICdJbml0
aWFsIGljZUNvbm5lY3Rpb25TdGF0ZSBzaG91bGQgYmUgbmV3Jyk7CisKKyAgLyoKKyAgICA0LjQu
NCBSVENJY2VDb25uZWN0aW9uU3RhdGUgRW51bQorICAgICAgY2hlY2tpbmcKKyAgICAgICAgQW55
IG9mIHRoZSBSVENJY2VUcmFuc3BvcnQgcyBhcmUgaW4gdGhlIGNoZWNraW5nIHN0YXRlIGFuZCBu
b25lIG9mCisgICAgICAgIHRoZW0gYXJlIGluIHRoZSBmYWlsZWQgb3IgZGlzY29ubmVjdGVkIHN0
YXRlLgorCisgICAgICBjb25uZWN0ZWQKKyAgICAgICAgQWxsIFJUQ0ljZVRyYW5zcG9ydCBzIGFy
ZSBpbiB0aGUgY29ubmVjdGVkLCBjb21wbGV0ZWQgb3IgY2xvc2VkIHN0YXRlCisgICAgICAgIGFu
ZCBhdCBsZWFzdCBvbmUgb2YgdGhlbSBpcyBpbiB0aGUgY29ubmVjdGVkIHN0YXRlLgorCisgICAg
ICBjb21wbGV0ZWQKKyAgICAgICAgQWxsIFJUQ0ljZVRyYW5zcG9ydCBzIGFyZSBpbiB0aGUgY29t
cGxldGVkIG9yIGNsb3NlZCBzdGF0ZSBhbmQgYXQgbGVhc3QKKyAgICAgICAgb25lIG9mIHRoZW0g
aXMgaW4gdGhlIGNvbXBsZXRlZCBzdGF0ZS4KKworICAgICAgY2hlY2tpbmcKKyAgICAgICAgVGhl
IFJUQ0ljZVRyYW5zcG9ydCBoYXMgcmVjZWl2ZWQgYXQgbGVhc3Qgb25lIHJlbW90ZSBjYW5kaWRh
dGUgYW5kCisgICAgICAgIGlzIGNoZWNraW5nIGNhbmRpZGF0ZSBwYWlycyBhbmQgaGFzIGVpdGhl
ciBub3QgeWV0IGZvdW5kIGEgY29ubmVjdGlvbgorICAgICAgICBvciBjb25zZW50IGNoZWNrcyBb
UkZDNzY3NV0gaGF2ZSBmYWlsZWQgb24gYWxsIHByZXZpb3VzbHkgc3VjY2Vzc2Z1bAorICAgICAg
ICBjYW5kaWRhdGUgcGFpcnMuIEluIGFkZGl0aW9uIHRvIGNoZWNraW5nLCBpdCBtYXkgYWxzbyBz
dGlsbCBiZSBnYXRoZXJpbmcuCisKKyAgICA1LjYuICBlbnVtIFJUQ0ljZVRyYW5zcG9ydFN0YXRl
CisgICAgICBjb25uZWN0ZWQKKyAgICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgZm91bmQg
YSB1c2FibGUgY29ubmVjdGlvbiwgYnV0IGlzIHN0aWxsCisgICAgICAgIGNoZWNraW5nIG90aGVy
IGNhbmRpZGF0ZSBwYWlycyB0byBzZWUgaWYgdGhlcmUgaXMgYSBiZXR0ZXIgY29ubmVjdGlvbi4K
KyAgICAgICAgSXQgbWF5IGFsc28gc3RpbGwgYmUgZ2F0aGVyaW5nIGFuZC9vciB3YWl0aW5nIGZv
ciBhZGRpdGlvbmFsIHJlbW90ZQorICAgICAgICBjYW5kaWRhdGVzLiBJZiBjb25zZW50IGNoZWNr
cyBbUkZDNzY3NV0gZmFpbCBvbiB0aGUgY29ubmVjdGlvbiBpbiB1c2UsCisgICAgICAgIGFuZCB0
aGVyZSBhcmUgbm8gb3RoZXIgc3VjY2Vzc2Z1bCBjYW5kaWRhdGUgcGFpcnMgYXZhaWxhYmxlLCB0
aGVuIHRoZQorICAgICAgICBzdGF0ZSB0cmFuc2l0aW9ucyB0byAiY2hlY2tpbmciIChpZiB0aGVy
ZSBhcmUgY2FuZGlkYXRlIHBhaXJzIHJlbWFpbmluZworICAgICAgICB0byBiZSBjaGVja2VkKSBv
ciAiZGlzY29ubmVjdGVkIiAoaWYgdGhlcmUgYXJlIG5vIGNhbmRpZGF0ZSBwYWlycyB0bworICAg
ICAgICBjaGVjaywgYnV0IHRoZSBwZWVyIGlzIHN0aWxsIGdhdGhlcmluZyBhbmQvb3Igd2FpdGlu
ZyBmb3IgYWRkaXRpb25hbAorICAgICAgICByZW1vdGUgY2FuZGlkYXRlcykuCisKKyAgICAgIGNv
bXBsZXRlZAorICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBmaW5pc2hlZCBnYXRoZXJp
bmcsIHJlY2VpdmVkIGFuIGluZGljYXRpb24gdGhhdAorICAgICAgICB0aGVyZSBhcmUgbm8gbW9y
ZSByZW1vdGUgY2FuZGlkYXRlcywgZmluaXNoZWQgY2hlY2tpbmcgYWxsIGNhbmRpZGF0ZQorICAg
ICAgICBwYWlycyBhbmQgZm91bmQgYSBjb25uZWN0aW9uLiBJZiBjb25zZW50IGNoZWNrcyBbUkZD
NzY3NV0gc3Vic2VxdWVudGx5CisgICAgICAgIGZhaWwgb24gYWxsIHN1Y2Nlc3NmdWwgY2FuZGlk
YXRlIHBhaXJzLCB0aGUgc3RhdGUgdHJhbnNpdGlvbnMgdG8gImZhaWxlZCIuCisgICAqLworICBh
c3luY190ZXN0KHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIu
Y2xvc2UoKSk7CisKKyAgICBjb25zdCBvbkljZUNvbm5lY3Rpb25TdGF0ZUNoYW5nZSA9IHQuc3Rl
cF9mdW5jKCgpID0+IHsKKyAgICAgIGNvbnN0IHsgaWNlQ29ubmVjdGlvblN0YXRlIH0gPSBwYzE7
CisKKyAgICAgIGlmKGljZUNvbm5lY3Rpb25TdGF0ZSA9PT0gJ2NoZWNraW5nJykgeworICAgICAg
ICBjb25zdCBpY2VUcmFuc3BvcnQgPSBwYzEuc2N0cC50cmFuc3BvcnQudHJhbnNwb3J0OworCisg
ICAgICAgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LnN0YXRlLCAnY2hlY2tpbmcnLAorICAg
ICAgICAgICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBpbiBjaGVja2luZyBzdGF0ZSB3aGVu
IGljZUNvbm5lY3Rpb25TdGF0ZSBpcyBjaGVja2luZycpOworCisgICAgICB9IGVsc2UgaWYoaWNl
Q29ubmVjdGlvblN0YXRlID09PSAnY29ubmVjdGVkJykgeworICAgICAgICBjb25zdCBpY2VUcmFu
c3BvcnQgPSBwYzEuc2N0cC50cmFuc3BvcnQudHJhbnNwb3J0OworCisgICAgICAgIGFzc2VydF9l
cXVhbHMoaWNlVHJhbnNwb3J0LnN0YXRlLCAnY29ubmVjdGVkJywKKyAgICAgICAgICAnRXhwZWN0
IElDRSB0cmFuc3BvcnQgdG8gYmUgaW4gY29ubmVjdGVkIHN0YXRlIHdoZW4gaWNlQ29ubmVjdGlv
blN0YXRlIGlzIGNvbm5lY3RlZCcpOworCisgICAgICB9IGVsc2UgaWYoaWNlQ29ubmVjdGlvblN0
YXRlID09PSAnY29tcGxldGVkJykgeworICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBwYzEu
c2N0cC50cmFuc3BvcnQudHJhbnNwb3J0OworCisgICAgICAgIGFzc2VydF9lcXVhbHMoaWNlVHJh
bnNwb3J0LnN0YXRlLCAnY29tcGxldGVkJywKKyAgICAgICAgICAnRXhwZWN0IElDRSB0cmFuc3Bv
cnQgdG8gYmUgaW4gY29ubmVjdGVkIHN0YXRlIHdoZW4gaWNlQ29ubmVjdGlvblN0YXRlIGlzIGNv
bXBsZXRlZCcpOworICAgICAgfQorICAgIH0pOworCisgICAgcGMxLmNyZWF0ZURhdGFDaGFubmVs
KCd0ZXN0Jyk7CisKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5vbmljZWNvbm5lY3Rpb25zdGF0ZWNo
YW5nZSwgbnVsbCwKKyAgICAgICdFeHBlY3QgY29ubmVjdGlvbiB0byBoYXZlIGljZWNvbm5lY3Rp
b25zdGF0ZWNoYW5nZSBldmVudCcpOworCisgICAgcGMxLmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWNv
bm5lY3Rpb25zdGF0ZWNoYW5nZScsIG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlKTsKKworICAg
IGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgICAgZG9TaWduYWxpbmdIYW5kc2hh
a2UocGMxLCBwYzIpOworICB9LCAnY29ubmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hv
dWxkIGV2ZW50dWFsbHkgaGF2ZSBjb25uZWN0ZWQgY29ubmVjdGlvbiBzdGF0ZScpOworCisgIC8q
CisgICAgVE9ETworICAgIDQuNC40IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSBFbnVtCisgICAgICBm
YWlsZWQKKyAgICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3BvcnQgcyBhcmUgaW4gdGhlIGZh
aWxlZCBzdGF0ZS4KKworICAgICAgZGlzY29ubmVjdGVkCisgICAgICAgIEFueSBvZiB0aGUgUlRD
SWNlVHJhbnNwb3J0IHMgYXJlIGluIHRoZSBkaXNjb25uZWN0ZWQgc3RhdGUgYW5kIG5vbmUgb2YK
KyAgICAgICAgdGhlbSBhcmUgaW4gdGhlIGZhaWxlZCBzdGF0ZS4KKworICAgICAgY2xvc2VkCisg
ICAgICAgIFRoZSBSVENQZWVyQ29ubmVjdGlvbiBvYmplY3QncyBbWyBpc0Nsb3NlZF1dIHNsb3Qg
aXMgdHJ1ZS4KKworICAgIDUuNi4gIGVudW0gUlRDSWNlVHJhbnNwb3J0U3RhdGUKKyAgICAgIG5l
dworICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGlzIGdhdGhlcmluZyBjYW5kaWRhdGVzIGFu
ZC9vciB3YWl0aW5nIGZvcgorICAgICAgICByZW1vdGUgY2FuZGlkYXRlcyB0byBiZSBzdXBwbGll
ZCwgYW5kIGhhcyBub3QgeWV0IHN0YXJ0ZWQgY2hlY2tpbmcuCisKKyAgICAgIGZhaWxlZAorICAg
ICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBmaW5pc2hlZCBnYXRoZXJpbmcsIHJlY2VpdmVk
IGFuIGluZGljYXRpb24gdGhhdAorICAgICAgICB0aGVyZSBhcmUgbm8gbW9yZSByZW1vdGUgY2Fu
ZGlkYXRlcywgZmluaXNoZWQgY2hlY2tpbmcgYWxsIGNhbmRpZGF0ZSBwYWlycywKKyAgICAgICAg
YW5kIGFsbCBwYWlycyBoYXZlIGVpdGhlciBmYWlsZWQgY29ubmVjdGl2aXR5IGNoZWNrcyBvciBo
YXZlIGxvc3QgY29uc2VudC4KKworICAgICAgZGlzY29ubmVjdGVkCisgICAgICAgIFRoZSBJQ0Ug
QWdlbnQgaGFzIGRldGVybWluZWQgdGhhdCBjb25uZWN0aXZpdHkgaXMgY3VycmVudGx5IGxvc3Qg
Zm9yIHRoaXMKKyAgICAgICAgUlRDSWNlVHJhbnNwb3J0IC4gVGhpcyBpcyBtb3JlIGFnZ3Jlc3Np
dmUgdGhhbiBmYWlsZWQsIGFuZCBtYXkgdHJpZ2dlcgorICAgICAgICBpbnRlcm1pdHRlbnRseSAo
YW5kIHJlc29sdmUgaXRzZWxmIHdpdGhvdXQgYWN0aW9uKSBvbiBhIGZsYWt5IG5ldHdvcmsuCisg
ICAgICAgIFRoZSB3YXkgdGhpcyBzdGF0ZSBpcyBkZXRlcm1pbmVkIGlzIGltcGxlbWVudGF0aW9u
IGRlcGVuZGVudC4KKworICAgICAgICBFeGFtcGxlcyBpbmNsdWRlOgorICAgICAgICAgIExvc2lu
ZyB0aGUgbmV0d29yayBpbnRlcmZhY2UgZm9yIHRoZSBjb25uZWN0aW9uIGluIHVzZS4KKyAgICAg
ICAgICBSZXBlYXRlZGx5IGZhaWxpbmcgdG8gcmVjZWl2ZSBhIHJlc3BvbnNlIHRvIFNUVU4gcmVx
dWVzdHMuCisKKyAgICAgICAgQWx0ZXJuYXRpdmVseSwgdGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMg
ZmluaXNoZWQgY2hlY2tpbmcgYWxsIGV4aXN0aW5nCisgICAgICAgIGNhbmRpZGF0ZXMgcGFpcnMg
YW5kIGZhaWxlZCB0byBmaW5kIGEgY29ubmVjdGlvbiAob3IgY29uc2VudCBjaGVja3MKKyAgICAg
ICAgW1JGQzc2NzVdIG9uY2Ugc3VjY2Vzc2Z1bCwgaGF2ZSBub3cgZmFpbGVkKSwgYnV0IGl0IGlz
IHN0aWxsIGdhdGhlcmluZworICAgICAgICBhbmQvb3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbCBy
ZW1vdGUgY2FuZGlkYXRlcy4KKworICAgICAgY2xvc2VkCisgICAgICAgIFRoZSBSVENJY2VUcmFu
c3BvcnQgaGFzIHNodXQgZG93biBhbmQgaXMgbm8gbG9uZ2VyIHJlc3BvbmRpbmcgdG8gU1RVTiBy
ZXF1ZXN0cy4KKyAgICovCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNv
bm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRl
Lmh0dHBzLmh0bWwKaW5kZXggMzIwYjAzZGZjODBmOGU3ZTRhMjBkOWUyNDNiOWNjODdjODg4ODFj
Ny4uNTA4M2JlNmNkZmQxNmY1YzJjNjdhODBhN2RiYzljMjQwMWYxYTBhOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24taWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKQEAgLTMyMCwxNSArMzIwLDExIEBAIHBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7CiAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLSAgcGMxLm9uaWNlY2FuZGlkYXRlID0gYXN5bmMgZSA9
PiB7Ci0gICAgaWYgKGUuY2FuZGlkYXRlKSB7Ci0gICAgICBhd2FpdCBwYzIuYWRkSWNlQ2FuZGlk
YXRlKGUuY2FuZGlkYXRlKTsKLSAgICB9Ci0gIH07CisgIHBjMS5vbmljZWNhbmRpZGF0ZSA9IGUg
PT4gcGMyLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7CiAgIHBjMS5jYW5kaWRhdGVCdWZm
ZXIgPSBbXTsKICAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7CiAgICAgLy8gRG9uJ3QgYWRk
IGNhbmRpZGF0ZSBpZiBjYW5kaWRhdGUgYnVmZmVyIGlzIGFscmVhZHkgdXNlZAotICAgIGlmIChl
LmNhbmRpZGF0ZSAmJiBwYzEuY2FuZGlkYXRlQnVmZmVyKSB7CisgICAgaWYgKHBjMS5jYW5kaWRh
dGVCdWZmZXIpIHsKICAgICAgIHBjMS5jYW5kaWRhdGVCdWZmZXIucHVzaChlLmNhbmRpZGF0ZSkK
ICAgICB9CiAgIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbAppbmRleCA5MzNhMjFjYzc1
ZWZjYjE0OTAzYTU4NmQ5OTE2Mjc4ZmQwYzlmODI2Li42YWZhZjBmYmZiZDFkYzIxMjAyN2ExMTdj
NmVhMzZkZGJmOWQ4ZDEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKQEAgLTExLDcg
KzExLDcgQEAKICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8y
MDE3MDYwNS93ZWJydGMuaHRtbAogCiAgIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9u
cyBhcmUgY2FsbGVkIGZyb20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgotICAvLyBleGNo
YW5nZU9mZmVyQW5zd2VyCisgIC8vIGV4Y2hhbmdlQW5zd2VyCiAgIC8vIGV4Y2hhbmdlSWNlQ2Fu
ZGlkYXRlcwogICAvLyBnZW5lcmF0ZUF1ZGlvUmVjZWl2ZU9ubHlPZmZlcgogCkBAIC01Miw2ICs1
Miw4IEBACiAgICAqLwogICB0ZXN0KHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKwogICAg
IGFzc2VydF9lcXVhbHMocGMuaWNlR2F0aGVyaW5nU3RhdGUsICduZXcnKTsKICAgfSwgJ0luaXRp
YWwgaWNlR2F0aGVyaW5nU3RhdGUgc2hvdWxkIGJlIG5ldycpOwogCkBAIC0xNjYsNyArMTY4LDEy
IEBACiAgIH0sICdyZW5lZ290aWF0aW9uIHRoYXQgY2xvc2VzIGFsbCB0cmFuc3BvcnRzIHNob3Vs
ZCByZXN1bHQgaW4gSUNFIGdhdGhlcmluZyBzdGF0ZSAibmV3IicpOwogCiAgIC8qCi0gICAgNC40
LjIuICBSVENJY2VHYXRoZXJpbmdTdGF0ZSBFbnVtCisgICAgNC4zLjIuICBSVENJY2VHYXRoZXJp
bmdTdGF0ZSBFbnVtCisgICAgICBuZXcKKyAgICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3Bv
cnRzIGFyZSBpbiB0aGUgIm5ldyIgZ2F0aGVyaW5nIHN0YXRlIGFuZCBub25lCisgICAgICAgIG9m
IHRoZSB0cmFuc3BvcnRzIGFyZSBpbiB0aGUgImdhdGhlcmluZyIgc3RhdGUsIG9yIHRoZXJlIGFy
ZSBubworICAgICAgICB0cmFuc3BvcnRzLgorCiAgICAgICBnYXRoZXJpbmcKICAgICAgICAgQW55
IG9mIHRoZSBSVENJY2VUcmFuc3BvcnQgcyBhcmUgaW4gdGhlIGdhdGhlcmluZyBzdGF0ZS4KIApA
QCAtMTgzLDcgKzE5MCw3IEBACiAgICAgICAgIGluZGljYXRpb24gZm9yIHRoaXMgdHJhbnNwb3J0
IGhhcyBiZWVuIHNlbnQuIEl0IHdpbGwgbm90IGdhdGhlciBjYW5kaWRhdGVzCiAgICAgICAgIGFn
YWluIHVudGlsIGFuIElDRSByZXN0YXJ0IGNhdXNlcyBpdCB0byByZXN0YXJ0LgogICAgKi8KLSAg
YXN5bmNfdGVzdCh0ID0+IHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0
IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMxLmNsb3NlKCkpOwogICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwpA
QCAtMTk3LDcgKzIwNCw3IEBACiAgICAgICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IHBjMi5zY3Rw
LnRyYW5zcG9ydC5pY2VUcmFuc3BvcnQ7CiAKICAgICAgICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFu
c3BvcnQuZ2F0aGVyaW5nU3RhdGUsICdnYXRoZXJpbmcnLAotICAgICAgICAgICdFeHBlY3QgSUNF
IHRyYW5zcG9ydCB0byBiZSBpbiBjaGVja2luZyBnYXRoZXJpbmdTdGF0ZSB3aGVuIGljZUdhdGhl
cmluZ1N0YXRlIGlzIGNoZWNraW5nJyk7CisgICAgICAgICAgJ0V4cGVjdCBJQ0UgdHJhbnNwb3J0
IHRvIGJlIGluIGdhdGhlcmluZyBnYXRoZXJpbmdTdGF0ZSB3aGVuIGljZUdhdGhlcmluZ1N0YXRl
IGlzIGdhdGhlcmluZycpOwogCiAgICAgICB9IGVsc2UgaWYoaWNlR2F0aGVyaW5nU3RhdGUgPT09
ICdjb21wbGV0ZScpIHsKICAgICAgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gcGMyLnNjdHAudHJh
bnNwb3J0LmljZVRyYW5zcG9ydDsKQEAgLTIxMSwxNyArMjE4LDIwIEBACiAKICAgICBwYzEuY3Jl
YXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKIAotICAgIGFzc2VydF9lcXVhbHMocGMyLm9uaWNlZ2F0
aGVyaW5nc3RhdGVjaGFuZ2UsIG51bGwsCi0gICAgICAnRXhwZWN0IGNvbm5lY3Rpb24gdG8gaGF2
ZSBpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSBldmVudCcpOwotCiAgICAgLy8gU3BlYyBidWcgdzNj
L3dlYnJ0Yy1wYyMxMzgyCiAgICAgLy8gQmVjYXVzZSBzY3RwIGlzIG9ubHkgZGVmaW5lZCB3aGVu
IGFuc3dlciBpcyBzZXQsIHdlIGxpc3RlbgogICAgIC8vIHRvIHBjMiBzbyB0aGF0IHdlIGNhbiBi
ZSBjb25maWRlbnQgdGhhdCBzY3RwIGlzIGRlZmluZWQKICAgICAvLyB3aGVuIGljZWdhdGhlcmlu
Z3N0YXRlY2hhbmdlIGV2ZW50IGlzIGZpcmVkLgogICAgIHBjMi5hZGRFdmVudExpc3RlbmVyKCdp
Y2VnYXRoZXJpbmdzdGF0ZWNoYW5nZScsIG9uSWNlR2F0aGVyaW5nU3RhdGVDaGFuZ2UpOwogCisK
ICAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOwotICAgIGV4Y2hhbmdlT2ZmZXJB
bnN3ZXIocGMxLCBwYzIpOworCisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHBjMS5zY3RwLnRyYW5zcG9ydC5pY2VUcmFuc3BvcnQuZ2F0aGVy
aW5nU3RhdGUsICduZXcnKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMx
LmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgYXdhaXQgZXhjaGFuZ2VBbnN3ZXIocGMxLCBwYzIp
OwogICB9LCAnY29ubmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hvdWxkIGV2ZW50dWFs
bHkgaGF2ZSBjb25uZWN0ZWQgY29ubmVjdGlvbiBzdGF0ZScpOwogCiAgIC8qCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBhY2Y0
MmVjYzBiM2I2YWU5ZmU5NzcyOGFjYzM4ZjJhZWI1NWIwYjkyLi4zNTg4NzNiNWYzYjJkNDEyZjMy
ZTdjM2M2Zjg3ZmM5ODk4YzA3NjgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnkt
Z2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1n
ZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTksMjIgKzksMjkgQEAgUEFTUyBSVENSZWNl
aXZlZFJ0cFN0cmVhbVN0YXRzJ3MgcGFja2V0c1JlY2VpdmVkCiBQQVNTIFJUQ1JlY2VpdmVkUnRw
U3RyZWFtU3RhdHMncyBwYWNrZXRzTG9zdAogUEFTUyBSVENSZWNlaXZlZFJ0cFN0cmVhbVN0YXRz
J3Mgaml0dGVyCiBGQUlMIFJUQ1JlY2VpdmVkUnRwU3RyZWFtU3RhdHMncyBwYWNrZXRzRGlzY2Fy
ZGVkIGFzc2VydF90cnVlOiBJcyBwYWNrZXRzRGlzY2FyZGVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKLVBBU1MgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgdHJhY2tJZAorRkFJ
TCBSVENSZWNlaXZlZFJ0cFN0cmVhbVN0YXRzJ3MgZnJhbWVzRHJvcHBlZCBhc3NlcnRfdHJ1ZTog
SXMgZnJhbWVzRHJvcHBlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJU
Q0luYm91bmRSdHBTdHJlYW1TdGF0cydzIHJlY2VpdmVySWQgYXNzZXJ0X3RydWU6IElzIHJlY2Vp
dmVySWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENJbmJvdW5kUnRw
U3RyZWFtU3RhdHMncyByZW1vdGVJZCBhc3NlcnRfdHJ1ZTogSXMgcmVtb3RlSWQgcHJlc2VudCBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBSVENJbmJvdW5kUnRwU3RyZWFtU3RhdHMncyBm
cmFtZXNEZWNvZGVkCitQQVNTIFJUQ0luYm91bmRSdHBTdHJlYW1TdGF0cydzIG5hY2tDb3VudAor
UEFTUyBSVENJbmJvdW5kUnRwU3RyZWFtU3RhdHMncyBmcmFtZXNSZWNlaXZlZAorUEFTUyBSVENJ
bmJvdW5kUnRwU3RyZWFtU3RhdHMncyBieXRlc1JlY2VpdmVkCitQQVNTIFJUQ0luYm91bmRSdHBT
dHJlYW1TdGF0cydzIHRvdGFsQXVkaW9FbmVyZ3kKK1BBU1MgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0
YXRzJ3MgdG90YWxTYW1wbGVzRHVyYXRpb24KIEZBSUwgUlRDUmVtb3RlSW5ib3VuZFJ0cFN0cmVh
bVN0YXRzJ3MgbG9jYWxJZCBhc3NlcnRfdHJ1ZTogSXMgbG9jYWxJZCBwcmVzZW50IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1JlbW90ZUluYm91bmRSdHBTdHJlYW1TdGF0cydzIHJv
dW5kVHJpcFRpbWUgYXNzZXJ0X3RydWU6IElzIHJvdW5kVHJpcFRpbWUgcHJlc2VudCBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENTZW50UnRwU3RyZWFtU3RhdHMncyBwYWNrZXRzU2Vu
dCBhc3NlcnRfdHJ1ZTogSXMgcGFja2V0c1NlbnQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQogRkFJTCBSVENTZW50UnRwU3RyZWFtU3RhdHMncyBieXRlc1NlbnQgYXNzZXJ0X3RydWU6
IElzIGJ5dGVzU2VudCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJUQ091
dGJvdW5kUnRwU3RyZWFtU3RhdHMncyB0cmFja0lkIGFzc2VydF90cnVlOiBJcyB0cmFja0lkIHBy
ZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDT3V0Ym91bmRSdHBTdHJlYW1T
dGF0cydzIHNlbmRlcklkIGFzc2VydF90cnVlOiBJcyBzZW5kZXJJZCBwcmVzZW50IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ091dGJvdW5kUnRwU3RyZWFtU3RhdHMncyByZW1vdGVJ
ZCBhc3NlcnRfdHJ1ZTogSXMgcmVtb3RlSWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQogRkFJTCBSVENPdXRib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgZnJhbWVzRW5jb2RlZCBhc3NlcnRf
dHJ1ZTogSXMgZnJhbWVzRW5jb2RlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitG
QUlMIFJUQ091dGJvdW5kUnRwU3RyZWFtU3RhdHMncyBuYWNrQ291bnQgYXNzZXJ0X3RydWU6IElz
IG5hY2tDb3VudCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFJUQ091dGJv
dW5kUnRwU3RyZWFtU3RhdHMncyBmcmFtZXNTZW50IGFzc2VydF90cnVlOiBJcyBmcmFtZXNTZW50
IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDUmVtb3RlT3V0Ym91bmRS
dHBTdHJlYW1TdGF0cydzIGxvY2FsSWQgYXNzZXJ0X3RydWU6IElzIGxvY2FsSWQgcHJlc2VudCBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENSZW1vdGVPdXRib3VuZFJ0cFN0cmVhbVN0
YXRzJ3MgcmVtb3RlVGltZXN0YW1wIGFzc2VydF90cnVlOiBJcyByZW1vdGVUaW1lc3RhbXAgcHJl
c2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENQZWVyQ29ubmVjdGlvblN0YXRz
J3MgZGF0YUNoYW5uZWxzT3BlbmVkIGFzc2VydF90cnVlOiBJcyBkYXRhQ2hhbm5lbHNPcGVuZWQg
cHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENQZWVyQ29ubmVjdGlvblN0
YXRzJ3MgZGF0YUNoYW5uZWxzQ2xvc2VkIGFzc2VydF90cnVlOiBJcyBkYXRhQ2hhbm5lbHNDbG9z
ZWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBSVENEYXRhQ2hhbm5lbFN0
YXRzJ3MgbGFiZWwKIFBBU1MgUlRDRGF0YUNoYW5uZWxTdGF0cydzIHByb3RvY29sCiBGQUlMIFJU
Q0RhdGFDaGFubmVsU3RhdHMncyBkYXRhQ2hhbm5lbElkZW50aWZpZXIgYXNzZXJ0X3RydWU6IElz
IGRhdGFDaGFubmVsSWRlbnRpZmllciBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQ
QVNTIFJUQ0RhdGFDaGFubmVsU3RhdHMncyBzdGF0ZQpAQCAtMzIsMjggKzM5LDIxIEBAIFBBU1Mg
UlRDRGF0YUNoYW5uZWxTdGF0cydzIG1lc3NhZ2VzU2VudAogUEFTUyBSVENEYXRhQ2hhbm5lbFN0
YXRzJ3MgYnl0ZXNTZW50CiBQQVNTIFJUQ0RhdGFDaGFubmVsU3RhdHMncyBtZXNzYWdlc1JlY2Vp
dmVkCiBQQVNTIFJUQ0RhdGFDaGFubmVsU3RhdHMncyBieXRlc1JlY2VpdmVkCi1GQUlMIFJUQ01l
ZGlhU3RyZWFtU3RhdHMncyBzdHJlYW1JZGVudGlmZXIgYXNzZXJ0X3RydWU6IElzIHN0cmVhbUlk
ZW50aWZlciBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJUQ01lZGlhU3Ry
ZWFtU3RhdHMncyB0cmFja0lkcyBhc3NlcnRfdHJ1ZTogSXMgdHJhY2tJZHMgcHJlc2VudCBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBSVENNZWRpYVNvdXJjZVN0YXRzJ3MgdHJhY2tJZGVu
dGlmaWVyCitQQVNTIFJUQ01lZGlhU291cmNlU3RhdHMncyBraW5kCitGQUlMIFJUQ0F1ZGlvU291
cmNlU3RhdHMncyB0b3RhbEF1ZGlvRW5lcmd5IGFzc2VydF90cnVlOiBJcyB0b3RhbEF1ZGlvRW5l
cmd5IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUlRDQXVkaW9Tb3VyY2VT
dGF0cydzIHRvdGFsU2FtcGxlc0R1cmF0aW9uIGFzc2VydF90cnVlOiBJcyB0b3RhbFNhbXBsZXNE
dXJhdGlvbiBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFJUQ1ZpZGVvU291
cmNlU3RhdHMncyB3aWR0aCBhc3NlcnRfdHJ1ZTogSXMgd2lkdGggcHJlc2VudCBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorRkFJTCBSVENWaWRlb1NvdXJjZVN0YXRzJ3MgaGVpZ2h0IGFzc2VydF90
cnVlOiBJcyBoZWlnaHQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBSVENW
aWRlb1NvdXJjZVN0YXRzJ3MgZnJhbWVzUGVyU2Vjb25kIGFzc2VydF90cnVlOiBJcyBmcmFtZXNQ
ZXJTZWNvbmQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENNZWRpYUhh
bmRsZXJTdGF0cydzIHRyYWNrSWRlbnRpZmllciBhc3NlcnRfdHJ1ZTogSXMgdHJhY2tJZGVudGlm
aWVyIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUlRDTWVkaWFIYW5kbGVy
U3RhdHMncyByZW1vdGVTb3VyY2UgYXNzZXJ0X3RydWU6IElzIHJlbW90ZVNvdXJjZSBwcmVzZW50
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJUQ01lZGlhSGFuZGxlclN0YXRzJ3MgZW5k
ZWQgYXNzZXJ0X3RydWU6IElzIGVuZGVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
LUZBSUwgUlRDQXVkaW9IYW5kbGVyU3RhdHMncyBhdWRpb0xldmVsIGFzc2VydF90cnVlOiBJcyBh
dWRpb0xldmVsIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUlRDVmlkZW9I
YW5kbGVyU3RhdHMncyBmcmFtZVdpZHRoIGFzc2VydF90cnVlOiBJcyBmcmFtZVdpZHRoIHByZXNl
bnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUlRDVmlkZW9IYW5kbGVyU3RhdHMncyBm
cmFtZUhlaWdodCBhc3NlcnRfdHJ1ZTogSXMgZnJhbWVIZWlnaHQgcHJlc2VudCBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBSVENWaWRlb0hhbmRsZXJTdGF0cydzIGZyYW1lc1BlclNlY29u
ZCBhc3NlcnRfdHJ1ZTogSXMgZnJhbWVzUGVyU2Vjb25kIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKLUZBSUwgUlRDVmlkZW9TZW5kZXJTdGF0cydzIGZyYW1lc1NlbnQgYXNzZXJ0X3Ry
dWU6IElzIGZyYW1lc1NlbnQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBS
VENWaWRlb1JlY2VpdmVyU3RhdHMncyBmcmFtZXNSZWNlaXZlZCBhc3NlcnRfdHJ1ZTogSXMgZnJh
bWVzUmVjZWl2ZWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSVENWaWRl
b1JlY2VpdmVyU3RhdHMncyBmcmFtZXNEZWNvZGVkIGFzc2VydF90cnVlOiBJcyBmcmFtZXNEZWNv
ZGVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUlRDVmlkZW9SZWNlaXZl
clN0YXRzJ3MgZnJhbWVzRHJvcHBlZCBhc3NlcnRfdHJ1ZTogSXMgZnJhbWVzRHJvcHBlZCBwcmVz
ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJUQ1ZpZGVvUmVjZWl2ZXJTdGF0cydz
IHBhcnRpYWxGcmFtZXNMb3N0IGFzc2VydF90cnVlOiBJcyBwYXJ0aWFsRnJhbWVzTG9zdCBwcmVz
ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIFJUQ0NvZGVjU3RhdHMncyBwYXlsb2Fk
VHlwZQotRkFJTCBSVENDb2RlY1N0YXRzJ3MgY29kZWNUeXBlIGFzc2VydF90cnVlOiBJcyBjb2Rl
Y1R5cGUgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBSVENDb2RlY1N0YXRz
J3MgbWltZVR5cGUKIFBBU1MgUlRDQ29kZWNTdGF0cydzIGNsb2NrUmF0ZQogUEFTUyBSVENDb2Rl
Y1N0YXRzJ3MgY2hhbm5lbHMKIFBBU1MgUlRDQ29kZWNTdGF0cydzIHNkcEZtdHBMaW5lCiBGQUlM
IFJUQ1RyYW5zcG9ydFN0YXRzJ3MgYnl0ZXNTZW50IGFzc2VydF90cnVlOiBJcyBieXRlc1NlbnQg
cHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENUcmFuc3BvcnRTdGF0cydz
IGJ5dGVzUmVjZWl2ZWQgYXNzZXJ0X3RydWU6IElzIGJ5dGVzUmVjZWl2ZWQgcHJlc2VudCBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSVENUcmFuc3BvcnRTdGF0cydzIHJ0Y3BUcmFuc3Bv
cnRTdGF0c0lkIGFzc2VydF90cnVlOiBJcyBydGNwVHJhbnNwb3J0U3RhdHNJZCBwcmVzZW50IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1RyYW5zcG9ydFN0YXRzJ3Mgc2VsZWN0ZWRD
YW5kaWRhdGVQYWlySWQgYXNzZXJ0X3RydWU6IElzIHNlbGVjdGVkQ2FuZGlkYXRlUGFpcklkIHBy
ZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDVHJhbnNwb3J0U3RhdHMncyBs
b2NhbENlcnRpZmljYXRlSWQgYXNzZXJ0X3RydWU6IElzIGxvY2FsQ2VydGlmaWNhdGVJZCBwcmVz
ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1RyYW5zcG9ydFN0YXRzJ3MgcmVt
b3RlQ2VydGlmaWNhdGVJZCBhc3NlcnRfdHJ1ZTogSXMgcmVtb3RlQ2VydGlmaWNhdGVJZCBwcmVz
ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCkBAIC02MSw3ICs2MSw2IEBAIFBBU1MgUlRDSWNl
Q2FuZGlkYXRlUGFpclN0YXRzJ3MgdHJhbnNwb3J0SWQKIFBBU1MgUlRDSWNlQ2FuZGlkYXRlUGFp
clN0YXRzJ3MgbG9jYWxDYW5kaWRhdGVJZAogUEFTUyBSVENJY2VDYW5kaWRhdGVQYWlyU3RhdHMn
cyByZW1vdGVDYW5kaWRhdGVJZAogUEFTUyBSVENJY2VDYW5kaWRhdGVQYWlyU3RhdHMncyBzdGF0
ZQotUEFTUyBSVENJY2VDYW5kaWRhdGVQYWlyU3RhdHMncyBwcmlvcml0eQogUEFTUyBSVENJY2VD
YW5kaWRhdGVQYWlyU3RhdHMncyBub21pbmF0ZWQKIFBBU1MgUlRDSWNlQ2FuZGlkYXRlUGFpclN0
YXRzJ3MgYnl0ZXNTZW50CiBQQVNTIFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0cydzIGJ5dGVzUmVj
ZWl2ZWQKQEAgLTc1LDUgKzc0LDQgQEAgRkFJTCBSVENJY2VDYW5kaWRhdGVTdGF0cydzIHVybCBh
c3NlcnRfdHJ1ZTogSXMgdXJsIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmEKIFBBU1MgUlRD
Q2VydGlmaWNhdGVTdGF0cydzIGZpbmdlcnByaW50CiBQQVNTIFJUQ0NlcnRpZmljYXRlU3RhdHMn
cyBmaW5nZXJwcmludEFsZ29yaXRobQogUEFTUyBSVENDZXJ0aWZpY2F0ZVN0YXRzJ3MgYmFzZTY0
Q2VydGlmaWNhdGUKLUZBSUwgUlRDQ2VydGlmaWNhdGVTdGF0cydzIGlzc3VlckNlcnRpZmljYXRl
SWQgYXNzZXJ0X3RydWU6IElzIGlzc3VlckNlcnRpZmljYXRlSWQgcHJlc2VudCBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3Rh
dHMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRwcy5odG1s
CmluZGV4IDdkYTE0Y2Q1ZTBmM2Y1YzdlODA3YjYxY2IwZTdlY2M3MjE2ZmYwMDcuLmY4MGZhNWZl
MWY0NjVjZjk0NjM0N2YzMGQwNmVmOGE5MDUyYWY0NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LW1hbmRhdG9yeS1nZXRTdGF0cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9y
eS1nZXRTdGF0cy5odHRwcy5odG1sCkBAIC05NSw3ICs5NSwxMSBAQCBjb25zdCBtYW5kYXRvcnkg
PSB7CiAgIF0sCiAgIFJUQ0NvZGVjU3RhdHM6IFsKICAgICAicGF5bG9hZFR5cGUiLAotICAgICJj
b2RlY1R5cGUiLAorICAgIC8qIGNvZGVjVHlwZSBpcyBwYXJ0IG9mIE1USSBidXQgaXMgbm90IHN5
c3RlbWF0aWNhbGx5IHNldAorICAgICAgIHBlciBodHRwczovL3d3dy53My5vcmcvVFIvd2VicnRj
LXN0YXRzLyNkb20tcnRjY29kZWNzdGF0cy1jb2RlY3R5cGUKKyAgICAgICBJZiB0aGUgZGljdGlv
bmFyeSBtZW1iZXIgaXMgbm90IHByZXNlbnQsIGl0IG1lYW5zIHRoYXQKKyAgICAgIHRoaXMgbWVk
aWEgZm9ybWF0IGNhbiBiZSBib3RoIGVuY29kZWQgYW5kIGRlY29kZWQuICovCisgICAgLy8gImNv
ZGVjVHlwZSIsCiAgICAgIm1pbWVUeXBlIiwKICAgICAiY2xvY2tSYXRlIiwKICAgICAiY2hhbm5l
bHMiLApAQCAtMTMwLDcgKzEzNCwxMSBAQCBjb25zdCBtYW5kYXRvcnkgPSB7CiAgICAgImZpbmdl
cnByaW50IiwKICAgICAiZmluZ2VycHJpbnRBbGdvcml0aG0iLAogICAgICJiYXNlNjRDZXJ0aWZp
Y2F0ZSIsCi0gICAgImlzc3VlckNlcnRpZmljYXRlSWQiLAorICAgIC8qIGlzc3VlckNlcnRpZmlj
YXRlSWQgaXMgcGFydCBvZiBNVEkgYnV0IGlzIG5vdCBzeXN0ZW1hdGljYWxseSBzZXQKKyAgICAg
ICBwZXIgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYnJ0Yy1zdGF0cy8jZG9tLXJ0Y2NlcnRpZmlj
YXRlc3RhdHMtaXNzdWVyY2VydGlmaWNhdGVpZAorICAgICAgIElmIHRoZSBjdXJyZW50IGNlcnRp
ZmljYXRlIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGNoYWluCisgICAgICAgKGkuZS4gYSBzZWxmLXNp
Z25lZCBjZXJ0aWZpY2F0ZSksIHRoaXMgd2lsbCBub3QgYmUgc2V0LiAqLworICAgIC8vICJpc3N1
ZXJDZXJ0aWZpY2F0ZUlkIiwKICAgXSwKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBl
ZXJJZGVudGl0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZWVySWRlbnRpdHktZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcyNWMwOTUxZTFjZDUxMGFmOGIwOGYxZmQ1OThjOWFjZTNkZjQw
YjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZWVySWRlbnRpdHktZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjAgQEAKKworRkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIG9uIG9m
ZmVyIHdpdGggYT1pZGVudGl0eSBzaG91bGQgZXN0YWJsaXNoIHBlZXJJZGVudGl0eSBwYzEuc2V0
SWRlbnRpdHlQcm92aWRlciBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwYzEuc2V0SWRlbnRpdHlQ
cm92aWRlcihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzJywKKyAgICAg
IHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAKKyAgICB9KScsICdwYzEuc2V0SWRl
bnRpdHlQcm92aWRlcicgaXMgdW5kZWZpbmVkKQorRkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbigp
IG9uIG9mZmVyIHdpdGggYT1pZGVudGl0eSB0aGF0IHJlc29sdmUgdG8gdmFsdWUgZGlmZmVyZW50
IGZyb20gdGFyZ2V0IHBlZXIgaWRlbnRpdHkgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRNb2Rp
ZmljYXRpb25FcnJvciBwYzEuc2V0SWRlbnRpdHlQcm92aWRlciBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICdwYzEuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDog
J21vY2staWRwLmpzJywKKyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAK
KyAgICB9KScsICdwYzEuc2V0SWRlbnRpdHlQcm92aWRlcicgaXMgdW5kZWZpbmVkKQorRkFJTCBz
ZXRSZW1vdGVEZXNjcmlwdGlvbigpIHdpdGggcGVlcklkZW50aXR5IHNldCBhbmQgd2l0aCBJZFAg
cHJveHkgdGhhdCByZXR1cm4gdmFsaWRhdGlvbkFzc2VydGlvbiB3aXRoIG1pc21hdGNoIGNvbnRl
bnRzIHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRpb25FcnJvciB1bmRlZmluZWQgaXMgbm90IGEg
ZnVuY3Rpb24gKG5lYXIgJy4uLnBjMS5zZXRJZGVudGl0eVByb3ZpZGVyLi4uJykKK0ZBSUwgc2V0
UmVtb3RlRGVzY3JpcHRpb24oKSBhbmQgcGVlcklkZW50aXR5IHNob3VsZCByZWplY3Qgd2l0aCBP
cGVyYXRpb25FcnJvciBpZiBJZFAgcmV0dXJuIHZhbGlkYXRlZCBpZGVudGl0eSB0aGF0IGlzIGRp
ZmZlcmVudCBmcm9tIGl0cyBvd24gZG9tYWluIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ3BjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QxLCB7Cisg
ICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzJywKKyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNl
QCR7aWRwRG9tYWluMn1gCisgICAgfSknLCAncGMxLnNldElkZW50aXR5UHJvdmlkZXInIGlzIHVu
ZGVmaW5lZCkKK0ZBSUwgV2hlbiBJZFAgdGhyb3dzIGVycm9yIGFuZCBwYyBoYXMgdGFyZ2V0IHBl
ZXIgaWRlbnRpdHksIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgYW5kIHBlZXJJZGVudGl0eSByZWpl
Y3RlZCB3aXRoIFJUQ0Vycm9yKCdpZHAtZXhlY3V0aW9uLWVycm9yJykgdW5kZWZpbmVkIGlzIG5v
dCBhIGZ1bmN0aW9uIChuZWFyICcuLi5wYzEuc2V0SWRlbnRpdHlQcm92aWRlci4uLicpCitGQUlM
IElkUCBmYWlsdXJlIHdpdGggbm8gdGFyZ2V0IHBlZXIgaWRlbnRpdHkgc2hvdWxkIGhhdmUgZm9s
bG93aW5nIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgc3VjY2VlZCBhbmQgcmVwbGFjZSBwYy5wZWVy
SWRlbnRpdHkgd2l0aCBhIG5ldyBwcm9taXNlIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ3BjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAg
ICAgIHByb3RvY29sOiAnbW9jay1pZHAuanM/dmFsaWRhdG9yQWN0aW9uPXRocm93LWVycm9yJywK
KyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAKKyAgICB9KScsICdwYzEu
c2V0SWRlbnRpdHlQcm92aWRlcicgaXMgdW5kZWZpbmVkKQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1wZWVySWRlbnRpdHkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlZXJJZGVudGl0eS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjY0YWQyMTJhNWJhNGUwYzZiZjU1ODlmNGNkYTNhNGM3YTUwOGNkYzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZWVySWRlbnRpdHkuaHRtbApAQCAtMCwwICsxLDMz
NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1Bl
ZXJDb25uZWN0aW9uLnByb3RvdHlwZS5wZWVySWRlbnRpdHk8L3RpdGxlPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImlkZW50
aXR5LWhlbHBlci5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOwor
CisgIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6CisgIC8v
ICAgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93ZWJy
dGMuaHRtbAorCisgIC8vIFRoZSB0ZXN0cyBoZXJlIGludGVyYWN0cyB3aXRoIHRoZSBtb2NrIGlk
ZW50aXR5IHByb3ZpZGVyIGxvY2F0ZWQgYXQKKyAgLy8gICAvLndlbGwta25vd24vaWRwLXByb3h5
L21vY2staWRwLmpzCisKKyAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBj
YWxsZWQgZnJvbSBpZGVudGl0eS1oZWxwZXIuc3ViLmpzCisgIC8vICAgcGFyc2VBc3NlcnRpb25S
ZXN1bHQKKyAgLy8gICBnZXRJZHBEb21haW5zCisgIC8vICAgYXNzZXJ0X3J0Y2Vycm9yX3JlamVj
dGlvbgorICAvLyAgIGhvc3RTdHJpbmcKKworICAvKgorICAgIDkuNi4gIFJUQ1BlZXJDb25uZWN0
aW9uIEludGVyZmFjZSBFeHRlbnNpb25zCisgICAgICBwYXJ0aWFsIGludGVyZmFjZSBSVENQZWVy
Q29ubmVjdGlvbiB7CisgICAgICAgIHZvaWQgICAgICAgICAgICAgICBzZXRJZGVudGl0eVByb3Zp
ZGVyKERPTVN0cmluZyBwcm92aWRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgUlRDSWRlbnRpdHlQcm92aWRlck9wdGlvbnMgb3B0aW9u
cyk7CisgICAgICAgIFByb21pc2U8RE9NU3RyaW5nPiBnZXRJZGVudGl0eUFzc2VydGlvbigpOwor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUHJvbWlzZTxSVENJZGVudGl0eUFzc2VydGlvbj4g
cGVlcklkZW50aXR5OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyAgICAg
ICAgICAgICAgICAgICAgaWRwTG9naW5Vcmw7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmc/ICAgICAgICAgICAgICAgICAgICBpZHBFcnJvckluZm87CisgICAgICB9OworCisg
ICAgICBkaWN0aW9uYXJ5IFJUQ0lkZW50aXR5UHJvdmlkZXJPcHRpb25zIHsKKyAgICAgICAgRE9N
U3RyaW5nIHByb3RvY29sID0gImRlZmF1bHQiOworICAgICAgICBET01TdHJpbmcgdXNlcm5hbWVI
aW50OworICAgICAgICBET01TdHJpbmcgcGVlcklkZW50aXR5OworICAgICAgfTsKKworICAgICAg
W0NvbnN0cnVjdG9yKERPTVN0cmluZyBpZHAsIERPTVN0cmluZyBuYW1lKV0KKyAgICAgIGludGVy
ZmFjZSBSVENJZGVudGl0eUFzc2VydGlvbiB7CisgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcg
aWRwOworICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CisgICAgICB9OworICAgKi8K
KworICAvKgorICAgIDQuMy4yLiBzZXRSZW1vdGVEZXNjcmlwdGlvbgorICAgICAgSWYgYW4gYT1p
ZGVudGl0eSBhdHRyaWJ1dGUgaXMgcHJlc2VudCBpbiB0aGUgc2Vzc2lvbiBkZXNjcmlwdGlvbiwg
dGhlIGJyb3dzZXIKKyAgICAgIHZhbGlkYXRlcyB0aGUgaWRlbnRpdHkgYXNzZXJ0aW9uLi4KKwor
ICAgICAgSWYgdGhlICJwZWVySWRlbnRpdHkiIGNvbmZpZ3VyYXRpb24gaXMgYXBwbGllZCB0byB0
aGUgUlRDUGVlckNvbm5lY3Rpb24sIHRoaXMKKyAgICAgIGVzdGFibGlzaGVzIGEgdGFyZ2V0IHBl
ZXIgaWRlbnRpdHkgb2YgdGhlIHByb3ZpZGVkIHZhbHVlLiBBbHRlcm5hdGl2ZWx5LCBpZiB0aGUK
KyAgICAgIFJUQ1BlZXJDb25uZWN0aW9uIGhhcyBwcmV2aW91c2x5IGF1dGhlbnRpY2F0ZWQgdGhl
IGlkZW50aXR5IG9mIHRoZSBwZWVyICh0aGF0CisgICAgICBpcywgdGhlcmUgaXMgYSBjdXJyZW50
IHZhbHVlIGZvciBwZWVySWRlbnRpdHkgKSwgdGhlbiB0aGlzIGFsc28gZXN0YWJsaXNoZXMgYQor
ICAgICAgdGFyZ2V0IHBlZXIgaWRlbnRpdHkuCisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAg
IGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWlu
XSA9IGdldElkcERvbWFpbnMoKTsKKyAgICBjb25zdCBpZHBIb3N0ID0gaG9zdFN0cmluZyhpZHBE
b21haW4sIHBvcnQpOworCisgICAgcGMxLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdCwgewor
ICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcycsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGlj
ZUAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICByZXR1cm4gcGMxLmNyZWF0ZU9mZmVyKCkK
KyAgICAudGhlbihvZmZlciA9PiBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpKQorICAg
IC50aGVuKCgpID0+IHBjMi5wZWVySWRlbnRpdHkpCisgICAgLnRoZW4oaWRlbnRpdHlBc3NlcnRp
b24gPT4geworICAgICAgY29uc3QgeyBpZHAsIG5hbWUgfSA9IGlkZW50aXR5QXNzZXJ0aW9uOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhpZHAsIGlkcERvbWFpbiwgYEV4cGVjdCBJZFAgZG9tYWluIHRv
IGJlICR7aWRwRG9tYWlufWApOworICAgICAgYXNzZXJ0X2VxdWFscyhpZGVudGl0eUFzc2VydGlv
biwgYGFsaWNlQCR7aWRwRG9tYWlufWAsCisgICAgICAgIGBFeHBlY3QgdmFsaWRhdGVkIGlkZW50
aXR5IGZyb20gbW9jay1pZHAuanMgdG8gYmUgc2FtZSBhcyBzcGVjaWZpZWQgaW4gdXNlcm5hbWVI
aW50YCk7CisgICAgfSk7CisgIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbigpIG9uIG9mZmVyIHdp
dGggYT1pZGVudGl0eSBzaG91bGQgZXN0YWJsaXNoIHBlZXJJZGVudGl0eScpOworCisgIC8qCisg
ICAgNC4zLjIuIHNldFJlbW90ZURlc2NyaXB0aW9uCisgICAgICBUaGUgdGFyZ2V0IHBlZXIgaWRl
bnRpdHkgY2Fubm90IGJlIGNoYW5nZWQgb25jZSBzZXQuIE9uY2Ugc2V0LCBpZiBhIGRpZmZlcmVu
dAorICAgICAgdmFsdWUgaXMgcHJvdmlkZWQsIHRoZSB1c2VyIGFnZW50IE1VU1QgcmVqZWN0IHRo
ZSByZXR1cm5lZCBwcm9taXNlIHdpdGggYSBuZXdseQorICAgICAgY3JlYXRlZCBJbnZhbGlkTW9k
aWZpY2F0aW9uRXJyb3IgYW5kIGFib3J0IHRoaXMgb3BlcmF0aW9uLiBUaGUgUlRDUGVlckNvbm5l
Y3Rpb24KKyAgICAgIE1VU1QgYmUgY2xvc2VkIGlmIHRoZSB2YWxpZGF0ZWQgcGVlciBpZGVudGl0
eSBkb2VzIG5vdCBtYXRjaCB0aGUgdGFyZ2V0IHBlZXIKKyAgICAgIGlkZW50aXR5LgorICAgKi8K
KyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24u
cG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKKyAgICBjb25z
dCBpZHBIb3N0ID0gaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpOworCisgICAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEu
Y2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsKKyAgICAg
IHBlZXJJZGVudGl0eTogYGJvYkAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVy
KGlkcEhvc3QsIHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanMnLAorICAgICAgdXNlcm5h
bWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAorICAgIH0pOworCisgICAgcmV0dXJuIHBjMS5j
cmVhdGVPZmZlcigpCisgICAgLnRoZW4ob2ZmZXIgPT4KKyAgICAgIHByb21pc2VfcmVqZWN0cyh0
LCAnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywKKyAgICAgICAgcGMyLnNldFJlbW90ZURlc2Ny
aXB0aW9uKG9mZmVyKSkpCisgICAgLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X3RydWUocGMy
LnNpZ25hbGluZ1N0YXRlLCAnY2xvc2VkJywKKyAgICAgICAgJ0V4cGVjdCBwZWVyIGNvbm5lY3Rp
b24gdG8gYmUgY2xvc2VkIGFmdGVyIG1pc21hdGNoIHBlZXIgaWRlbnRpdHknKTsKKyAgICB9KTsK
KyAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uKCkgb24gb2ZmZXIgd2l0aCBhPWlkZW50aXR5IHRo
YXQgcmVzb2x2ZSB0byB2YWx1ZSBkaWZmZXJlbnQgZnJvbSB0YXJnZXQgcGVlciBpZGVudGl0eSBz
aG91bGQgcmVqZWN0IHdpdGggSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJyk7CisKKyAgLyoKKyAg
ICA5LjQuICBWZXJpZnlpbmcgSWRlbnRpdHkgQXNzZXJ0aW9ucworICAgICAgOC4gIFRoZSBSVENQ
ZWVyQ29ubmVjdGlvbiBkZWNvZGVzIHRoZSBjb250ZW50cyBhbmQgdmFsaWRhdGVzIHRoYXQgaXQg
Y29udGFpbnMgYQorICAgICAgICAgIGZpbmdlcnByaW50IHZhbHVlIGZvciBldmVyeSBhPWZpbmdl
cnByaW50IGF0dHJpYnV0ZSBpbiB0aGUgc2Vzc2lvbiBkZXNjcmlwdGlvbi4KKyAgICAgICAgICBU
aGlzIGVuc3VyZXMgdGhhdCB0aGUgY2VydGlmaWNhdGUgdXNlZCBieSB0aGUgcmVtb3RlIHBlZXIg
Zm9yIGNvbW11bmljYXRpb25zCisgICAgICAgICAgaXMgY292ZXJlZCBieSB0aGUgaWRlbnRpdHkg
YXNzZXJ0aW9uLgorCisgICAgICBJZiBpZGVudGl0eSB2YWxpZGF0aW9uIGZhaWxzLCB0aGUgcGVl
cklkZW50aXR5IHByb21pc2UgaXMgcmVqZWN0ZWQgd2l0aCBhIG5ld2x5CisgICAgICBjcmVhdGVk
IE9wZXJhdGlvbkVycm9yLgorCisgICAgICBJZiBpZGVudGl0eSB2YWxpZGF0aW9uIGZhaWxzIGFu
ZCB0aGVyZSBpcyBhIHRhcmdldCBwZWVyIGlkZW50aXR5IGZvciB0aGUKKyAgICAgIFJUQ1BlZXJD
b25uZWN0aW9uLCB0aGUgcHJvbWlzZSByZXR1cm5lZCBieSBzZXRSZW1vdGVEZXNjcmlwdGlvbiBN
VVNUIGJlIHJlamVjdGVkCisgICAgICB3aXRoIHRoZSBzYW1lIERPTUV4Y2VwdGlvbi4KKyAgICov
CisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9u
LnBvcnQ7CisgICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7CisgICAgY29u
c3QgaWRwSG9zdCA9IGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KTsKKworICAgIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMx
LmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7CisgICAg
ICBwZWVySWRlbnRpdHk6IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIC8vIEFzayBtb2NraWRwLmpzIHRv
IHJldHVybiBjdXN0b20gY29udGVudHMgaW4gdmFsaWRhdGlvbiByZXN1bHQKKyAgICBwYzEuc2V0
SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpz
P3ZhbGlkYXRvckFjdGlvbj1yZXR1cm4tY3VzdG9tLWNvbnRlbnRzJmNvbnRlbnRzPWJvZ3VzJywK
KyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAKKyAgICB9KTsKKworICAg
IGNvbnN0IHBlZXJJZGVudGl0eVByb21pc2UgPSBwYzIucGVlcklkZW50aXR5OworCisgICAgcmV0
dXJuIHBjMS5jcmVhdGVPZmZlcigpCisgICAgLnRoZW4ob2ZmZXIgPT4gUHJvbWlzZS5hbGwoWwor
ICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdPcGVyYXRpb25FcnJvcicsCisgICAgICAgIHBjMi5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikpLAorICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdP
cGVyYXRpb25FcnJvcicsCisgICAgICAgIHBlZXJJZGVudGl0eVByb21pc2UpCisgICAgXSkpOwor
ICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24oKSB3aXRoIHBlZXJJZGVudGl0eSBzZXQgYW5kIHdp
dGggSWRQIHByb3h5IHRoYXQgcmV0dXJuIHZhbGlkYXRpb25Bc3NlcnRpb24gd2l0aCBtaXNtYXRj
aCBjb250ZW50cyBzaG91bGQgcmVqZWN0IHdpdGggT3BlcmF0aW9uRXJyb3InKTsKKworICAvKgor
ICAgIDkuNC4gIFZlcmlmeWluZyBJZGVudGl0eSBBc3NlcnRpb25zCisgICAgICA5LiAgVGhlIFJU
Q1BlZXJDb25uZWN0aW9uIHZhbGlkYXRlcyB0aGF0IHRoZSBkb21haW4gcG9ydGlvbiBvZiB0aGUg
aWRlbnRpdHkgbWF0Y2hlcworICAgICAgICAgIHRoZSBkb21haW4gb2YgdGhlIElkUCBhcyBkZXNj
cmliZWQgaW4gW1JUQ1dFQi1TRUNVUklUWS1BUkNIXS4gSWYgdGhpcyBjaGVjaworICAgICAgICAg
IGZhaWxzIHRoZW4gdGhlIGlkZW50aXR5IHZhbGlkYXRpb24gZmFpbHMuCisgICAqLworICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0Owor
ICAgIGNvbnN0IFtpZHBEb21haW4xLCBpZHBEb21haW4yXSA9IGdldElkcERvbWFpbnMoKTsKKyAg
ICBhc3NlcnRfbm90X2VxdWFscyhpZHBEb21haW4xLCBpZHBEb21haW4yLAorICAgICAgJ1Nhbml0
eSBjaGVjayB0d28gaWRwRG9tYWlucyBhcmUgZGlmZmVyZW50Jyk7CisKKyAgICBjb25zdCBpZHBI
b3N0MSA9IGhvc3RTdHJpbmcoaWRwRG9tYWluMSwgcG9ydCk7CisKKyAgICBjb25zdCBwYzEgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9z
ZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeworICAgICAgcGVl
cklkZW50aXR5OiBgYWxpY2VAJHtpZHBEb21haW4yfWAKKyAgICB9KTsKKworICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgLy8gbW9jay1pZHAuanMgd2lsbCByZXR1
cm4gYXNzZXJ0aW9uIG9mIGRvbWFpbjIgaWRlbnRpdHkKKyAgICAvLyB3aXRoIGRvbWFpbjEgaW4g
dGhlIGlkcC5kb21haW4gZmllbGQKKyAgICBwYzEuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0
MSwgeworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcycsCisgICAgICB1c2VybmFtZUhpbnQ6
IGBhbGljZUAke2lkcERvbWFpbjJ9YAorICAgIH0pOworCisgICAgcmV0dXJuIHBjMS5nZXRJZGVu
dGl0eUFzc2VydGlvbigpCisgICAgLnRoZW4oYXNzZXJ0aW9uUmVzdWx0U3RyID0+IHsKKyAgICAg
IGNvbnN0IHsgaWRwLCBhc3NlcnRpb24gfSA9IHBhcnNlQXNzZXJ0aW9uUmVzdWx0KGFzc2VydGlv
blJlc3VsdFN0cik7CisKKyAgICAgIGFzc2VydF9lcXVhbHMoaWRwLmRvbWFpbiwgaWRwRG9tYWlu
MSwKKyAgICAgICAgJ1Nhbml0eSBjaGVjayBkb21haW4gb2YgYXNzZXJ0aW9uIGlzIGRvbWFpbjEn
KTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhhc3NlcnRpb24ub3B0aW9ucy51c2VybmFtZUhpbnQs
IGBhbGljZUAke2lkcERvbWFpbjJ9YCwKKyAgICAgICAgJ1Nhbml0eSBjaGVjayBkb21haW4xIGlz
IGdvaW5nIHRvIHZhbGlkYXRlIGEgZG9tYWluMiBpZGVudGl0eScpOworCisgICAgICByZXR1cm4g
cGMxLmNyZWF0ZU9mZmVyKCk7CisgICAgfSkKKyAgICAudGhlbihvZmZlciA9PiBQcm9taXNlLmFs
bChbCisgICAgICBwcm9taXNlX3JlamVjdHModCwgJ09wZXJhdGlvbkVycm9yJywKKyAgICAgICAg
cGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSksCisgICAgICBwcm9taXNlX3JlamVjdHMo
dCwgJ09wZXJhdGlvbkVycm9yJywKKyAgICAgICAgcGMyLnBlZXJJZGVudGl0eSkKKyAgICBdKSk7
CisgIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbigpIGFuZCBwZWVySWRlbnRpdHkgc2hvdWxkIHJl
amVjdCB3aXRoIE9wZXJhdGlvbkVycm9yIGlmIElkUCByZXR1cm4gdmFsaWRhdGVkIGlkZW50aXR5
IHRoYXQgaXMgZGlmZmVyZW50IGZyb20gaXRzIG93biBkb21haW4nKTsKKworICAvKgorICAgIDku
NCBWZXJpZnlpbmcgSWRlbnRpdHkgQXNzZXJ0aW9ucworICAgICAgSWYgaWRlbnRpdHkgdmFsaWRh
dGlvbiBmYWlscyBhbmQgdGhlcmUgaXMgYSB0YXJnZXQgcGVlciBpZGVudGl0eSBmb3IgdGhlCisg
ICAgICBSVENQZWVyQ29ubmVjdGlvbiwgdGhlIHByb21pc2UgcmV0dXJuZWQgYnkgc2V0UmVtb3Rl
RGVzY3JpcHRpb24gTVVTVCBiZSByZWplY3RlZAorICAgICAgd2l0aCB0aGUgc2FtZSBET01FeGNl
cHRpb24uCisKKyAgICA5LjUgSWRQIEVycm9yIEhhbmRsaW5nCisgICAgICAtIElmIGFuIGlkZW50
aXR5IHByb3ZpZGVyIHRocm93cyBhbiBleGNlcHRpb24gb3IgcmV0dXJucyBhIHByb21pc2UgdGhh
dCBpcyB1bHRpbWF0ZWx5CisgICAgICAgIHJlamVjdGVkLCB0aGVuIHRoZSBwcm9jZWR1cmUgdGhh
dCBkZXBlbmRzIG9uIHRoZSBJZFAgTVVTVCBhbHNvIGZhaWwuIFRoZXNlIHR5cGVzIG9mCisgICAg
ICAgIGVycm9ycyB3aWxsIGNhdXNlIGFuIElkUCBmYWlsdXJlIHdpdGggYW4gUlRDRXJyb3Igd2l0
aCBlcnJvckRldGFpbCBzZXQgdG8KKyAgICAgICAgImlkcC1leGVjdXRpb24tZmFpbHVyZSIuCisK
KyAgICAgIEFueSBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlIElkUCBNQVkgcHJvdmlkZSBhZGRpdGlv
bmFsIGluZm9ybWF0aW9uIGluIHRoZQorICAgICAgaWRwRXJyb3JJbmZvIGF0dHJpYnV0ZS4gVGhl
IGluZm9ybWF0aW9uIGluIHRoaXMgc3RyaW5nIGlzIGRlZmluZWQgYnkgdGhlCisgICAgICBJZFAg
aW4gdXNlLgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBvcnQgPSB3
aW5kb3cubG9jYXRpb24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFp
bnMoKTsKKyAgICBjb25zdCBpZHBIb3N0ID0gaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpOwor
CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKHsKKyAgICAgIHBlZXJJZGVudGl0eTogYGFsaWNlQCR7aWRwRG9tYWlufWAKKyAgICB9
KTsKKworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgLy8gQXNr
IG1vY2staWRwLmpzIHRvIHRocm93IGVycm9yIGR1cmluZyB2YWxpZGF0aW9uLAorICAgIC8vIGku
ZS4gZHVyaW5nIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbigpCisgICAgcGMxLnNldElkZW50aXR5
UHJvdmlkZXIoaWRwSG9zdCwgeworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcz92YWxpZGF0
b3JBY3Rpb249dGhyb3ctZXJyb3ImZXJyb3JJbmZvPWJhcicsCisgICAgICB1c2VybmFtZUhpbnQ6
IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICByZXR1cm4gcGMxLmNyZWF0ZU9m
ZmVyKCkKKyAgICAudGhlbihvZmZlciA9PiBQcm9taXNlLmFsbChbCisgICAgICBhc3NlcnRfcnRj
ZXJyb3JfcmVqZWN0aW9uKCdpZHAtZXhlY3V0aW9uLWZhaWx1cmUnLAorICAgICAgICBwYzIuc2V0
UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpKSwKKyAgICAgIGFzc2VydF9ydGNlcnJvcl9yZWplY3Rp
b24oJ2lkcC1leGVjdXRpb24tZmFpbHVyZScsCisgICAgICAgIHBjMi5wZWVySWRlbnRpdHkpCisg
ICAgXSkpCisgICAgLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhwYzIuaWRwRXJy
b3JJbmZvLCAnYmFyJywKKyAgICAgICAgJ0V4cGVjdCBwYzIuaWRwRXJyb3JJbmZvIHRvIGJlIHNl
dCB0byB0aGUgZXJyLmlkcEVycm9ySW5mbyB0aHJvd24gYnkgbW9jay1pZHAuanMnKTsKKyAgICB9
KTsKKyAgfSwgYFdoZW4gSWRQIHRocm93cyBlcnJvciBhbmQgcGMgaGFzIHRhcmdldCBwZWVyIGlk
ZW50aXR5LCBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIGFuZCBwZWVySWRlbnRpdHkgcmVqZWN0ZWQg
d2l0aCBSVENFcnJvcignaWRwLWV4ZWN1dGlvbi1lcnJvcicpYCk7CisKKyAgLyoKKyAgICA0LjMu
Mi4gc2V0UmVtb3RlRGVzY3JpcHRpb24KKyAgICAgIElmIHRoZXJlIGlzIG5vIHRhcmdldCBwZWVy
IGlkZW50aXR5LCB0aGVuIHNldFJlbW90ZURlc2NyaXB0aW9uIGRvZXMgbm90IGF3YWl0IHRoZQor
ICAgICAgY29tcGxldGlvbiBvZiBpZGVudGl0eSB2YWxpZGF0aW9uLgorCisgICAgOS41LiAgSWRQ
IEVycm9yIEhhbmRsaW5nCisgICAgICAtIElmIGFuIGlkZW50aXR5IHByb3ZpZGVyIHRocm93cyBh
biBleGNlcHRpb24gb3IgcmV0dXJucyBhIHByb21pc2UgdGhhdCBpcworICAgICAgICB1bHRpbWF0
ZWx5IHJlamVjdGVkLCB0aGVuIHRoZSBwcm9jZWR1cmUgdGhhdCBkZXBlbmRzIG9uIHRoZSBJZFAg
TVVTVCBhbHNvIGZhaWwuCisgICAgICAgIFRoZXNlIHR5cGVzIG9mIGVycm9ycyB3aWxsIGNhdXNl
IGFuIElkUCBmYWlsdXJlIHdpdGggYW4gUlRDRXJyb3Igd2l0aCBlcnJvckRldGFpbAorICAgICAg
ICBzZXQgdG8gImlkcC1leGVjdXRpb24tZmFpbHVyZSIuCisKKyAgICA5LjQuICBWZXJpZnlpbmcg
SWRlbnRpdHkgQXNzZXJ0aW9ucworICAgICAgSWYgaWRlbnRpdHkgdmFsaWRhdGlvbiBmYWlscyBh
bmQgdGhlcmUgaXMgbm8gYSB0YXJnZXQgcGVlciBpZGVudGl0eSwgdGhlIHZhbHVlIG9mCisgICAg
ICB0aGUgcGVlcklkZW50aXR5IE1VU1QgYmUgc2V0IHRvIGEgbmV3LCB1bnJlc29sdmVkIHByb21p
c2UgaW5zdGFuY2UuIFRoaXMgcGVybWl0cworICAgICAgdGhlIHVzZSBvZiByZW5lZ290aWF0aW9u
IChvciBhIHN1YnNlcXVlbnQgYW5zd2VyLCBpZiB0aGUgc2Vzc2lvbiBkZXNjcmlwdGlvbiB3YXMK
KyAgICAgIGEgcHJvdmlzaW9uYWwgYW5zd2VyKSB0byByZXNvbHZlIG9yIHJlamVjdCB0aGUgaWRl
bnRpdHkuCisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cu
bG9jYXRpb24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsK
KyAgICBjb25zdCBpZHBIb3N0ID0gaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpOworCisgICAg
Ly8gQXNrIG1vY2staWRwLmpzIHRvIHRocm93IGVycm9yIGR1cmluZyB2YWxpZGF0aW9uLAorICAg
IC8vIGkuZS4gZHVyaW5nIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbigpCisgICAgcGMxLnNldElk
ZW50aXR5UHJvdmlkZXIoaWRwSG9zdCwgeworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcz92
YWxpZGF0b3JBY3Rpb249dGhyb3ctZXJyb3InLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VA
JHtpZHBEb21haW59YAorICAgIH0pOworCisgICAgY29uc3QgcGVlcklkZW50aXR5UHJvbWlzZTEg
PSBwYzIucGVlcklkZW50aXR5OworCisgICAgcmV0dXJuIHBjMS5jcmVhdGVPZmZlcigpCisgICAg
LnRoZW4ob2ZmZXIgPT4KKyAgICAgIC8vIHNldFJlbW90ZURlc2NyaXB0aW9uIHNob3VsZCBzdWNj
ZWVkIGJlY2F1c2UgdGhlcmUgaXMgbm8gdGFyZ2V0IHBlZXIgaWRlbnRpdHkgc2V0CisgICAgICBw
YzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpKQorICAgIC50aGVuKCgpID0+CisgICAgICBh
c3NlcnRfcnRjZXJyb3JfcmVqZWN0aW9uKCdpZHAtZXhlY3V0aW9uLWZhaWx1cmUnLAorICAgICAg
ICBwZWVySWRlbnRpdHlQcm9taXNlMSwKKyAgICAgICAgYEV4cGVjdCBmaXJzdCBwZWVySWRlbnRp
dHkgcHJvbWlzZSB0byBiZSByZWplY3RlZCB3aXRoIFJUQ0Vycm9yKCdpZHAtZXhlY3V0aW9uLWZh
aWx1cmUnKWApKQorICAgIC50aGVuKCgpID0+IHsKKyAgICAgIGNvbnN0IHBlZXJJZGVudGl0eVBy
b21pc2UyID0gcGMyLnBlZXJJZGVudGl0eTsKKyAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHBlZXJJ
ZGVudGl0eVByb21pc2UyLCBwZWVySWRlbnRpdHlQcm9taXNlMSwKKyAgICAgICAgJ0V4cGVjdCBw
YzIucGVlcklkZW50aXR5IHRvIGJlIHJlcGxhY2VkIHdpdGggYSBmcmVzaCB1bnJlc29sdmVkIHBy
b21pc2UnKTsKKworICAgICAgLy8gcmVnZW5lcmF0ZSBhbiBpZGVudGl0eSBhc3NlcnRpb24gd2l0
aCBubyB0ZXN0IG9wdGlvbiB0byB0aHJvdyBlcnJvcgorICAgICAgcGMxLnNldElkZW50aXR5UHJv
dmlkZXIoaWRwSG9zdCwgeworICAgICAgICBwcm90b2NvbDogJ2lkcC10ZXN0LmpzJywKKyAgICAg
ICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAorICAgICAgfSk7CisKKyAgICAg
IHJldHVybiBwYzEuY3JlYXRlT2ZmZXIoKQorICAgICAgLnRoZW4ob2ZmZXIgPT4gcGMyLnNldFJl
bW90ZURlc2NyaXB0aW9uKG9mZmVyKSkKKyAgICAgIC50aGVuKHBlZXJJZGVudGl0eVByb21pc2Uy
KQorICAgICAgLnRoZW4oaWRlbnRpdHlBc3NlcnRpb24gPT4geworICAgICAgICBjb25zdCB7IGlk
cCwgbmFtZSB9ID0gaWRlbnRpdHlBc3NlcnRpb247CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhp
ZHAsIGlkcERvbWFpbiwKKyAgICAgICAgICBgRXhwZWN0IElkUCBkb21haW4gdG8gYmUgJHtpZHBE
b21haW59YCk7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhuYW1lLCBgYWxpY2VAJHtpZHBEb21h
aW59YCwKKyAgICAgICAgICBgRXhwZWN0IHZhbGlkYXRlZCBpZGVudGl0eSB0byBiZSBhbGljZUAk
e2lkcERvbWFpbn1gKTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjMi5wZWVyaWRlbnRpdHks
IHBlZXJJZGVudGl0eVByb21pc2UyLAorICAgICAgICAgICdFeHBlY3QgcGMyLnBlZXJJZGVudGl0
eSB0byBzdGF5IGZpeGVkIGFmdGVyIGlkZW50aXR5IGlzIHZhbGlkYXRlZCcpOworICAgICAgfSk7
CisgICAgfSk7CisgIH0sICdJZFAgZmFpbHVyZSB3aXRoIG5vIHRhcmdldCBwZWVyIGlkZW50aXR5
IHNob3VsZCBoYXZlIGZvbGxvd2luZyBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIHN1Y2NlZWQgYW5k
IHJlcGxhY2UgcGMucGVlcklkZW50aXR5IHdpdGggYSBuZXcgcHJvbWlzZScpOworCis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWds
YXJlLWxpbmVhci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290
aWF0aW9uLXN0cmVzcy1nbGFyZS1saW5lYXIuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDczNWRj
ODY1YTE2ZTM1MjhkNmQzOTAyZjE1NmM1YTNhZDgwYmUyNjAuLmMxMTcwZWI1NTY0MDZjMjk4NTEx
OTYzNTQ3NzFkMmQ2NjU1OTNmZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVn
b3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotUEFTUyBQZXJmZWN0IG5lZ290aWF0aW9uIHN0
cmVzcyBnbGFyZSBsaW5lYXIKLVBBU1MgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUg
bGluZWFyIHdpdGggcm9sZXMgcmV2ZXJzZWQKK0ZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJl
c3MgZ2xhcmUgbGluZWFyIGFzc2VydF91bnJlYWNoZWQ6IEVycm9yIGluIGlmcmFtZTogT3BlcmF0
aW9uRXJyb3I6IEVycm9yIHByb2Nlc3NpbmcgSUNFIGNhbmRpZGF0ZSBSZWFjaGVkIHVucmVhY2hh
YmxlIGNvZGUKK0ZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFyIHdp
dGggcm9sZXMgcmV2ZXJzZWQgYXNzZXJ0X3VucmVhY2hlZDogRXJyb3IgaW4gaWZyYW1lOiBPcGVy
YXRpb25FcnJvcjogRXJyb3IgcHJvY2Vzc2luZyBJQ0UgY2FuZGlkYXRlIFJlYWNoZWQgdW5yZWFj
aGFibGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9u
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IGExZTdkYmFmOWYzNjI0MjQ2YjZjMGU3MWZjNjRmN2JkOTcz
OWIwNDMuLjYyZGUwOTc3MzRmOTc1ODc1YTUzYTVmYTZmNzVhNmU0M2EwYmE5YmMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0xLDYgKzEsNiBAQAogCiBQQVNTIFBlcmZlY3QgbmVnb3RpYXRpb24gc2V0dXAgY29ubmVjdHMK
IFBBU1MgUGVyZmVjdCBuZWdvdGlhdGlvbiBzZXR1cCBjb25uZWN0cyB3aXRoIHJvbGVzIHJldmVy
c2VkCi1GQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gZ2xhcmUgUmVtb3RlIGRlc2NyaXB0aW9uIHR5
cGUgMCBpcyBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSAxCi1GQUlM
IFBlcmZlY3QgbmVnb3RpYXRpb24gZ2xhcmUgd2l0aCByb2xlcyByZXZlcnNlZCBhc3NlcnRfdW5y
ZWFjaGVkOiBFcnJvciBpbiBpZnJhbWU6IEludmFsaWRTdGF0ZUVycm9yOiBSZW1vdGUgZGVzY3Jp
cHRpb24gdHlwZSAwIGlzIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRl
IDEgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNTIFBlcmZlY3QgbmVnb3RpYXRpb24gZ2xh
cmUKK1BBU1MgUGVyZmVjdCBuZWdvdGlhdGlvbiBnbGFyZSB3aXRoIHJvbGVzIHJldmVyc2VkCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBsYW4tYi1pcy1ub3Qtc3VwcG9ydGVkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXBsYW4tYi1pcy1ub3Qtc3VwcG9ydGVkLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZjQ2MjAwN2Q2NDJiMjA1OTA5MWI4MWIzMDg4NjAxMTQ0Y2ZkMDA5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFBsYW4gQiBpcyBub3Qgc3VwcG9ydGVkCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBsYW4tYi1pcy1ub3Qtc3VwcG9ydGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkZTZi
MWIwMDNhNDE2ZTc3MzJhMDYwZjlmNWE4M2ZmNDQ2MDg4NmMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC5odG1sCkBAIC0wLDAgKzEsMjggQEAK
KzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3By
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgLy8gUGxhbiBCIGlzIGEgbGVnYWN5IGZlYXR1cmUg
dGhhdCBzaG91bGQgbm90IGJlIHN1cHBvcnRlZCBvbiBhIG1vZGVybgorICAvLyBicm93c2VyLiBU
byBwYXNzIHRoaXMgdGVzdCB5b3UgbXVzdCBlaXRoZXIgaWdub3JlIHNkcFNlbWFudGljcyBhbHRv
Z2V0aGVyCisgIC8vIChhbmQgY29uc3RydWN0IHdpdGggVW5pZmllZCBQbGFuIGRlc3BpdGUgdXMg
YXNraW5nIGZvciBQbGFuIEIpIG9yIHRocm93IGFuCisgIC8vIGV4Y2VwdGlvbi4KKyAgbGV0IHBj
ID0gbnVsbDsKKyAgdHJ5IHsKKyAgICBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7c2RwU2Vt
YW50aWNzOiJwbGFuLWIifSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsK
KyAgfSBjYXRjaCAoZSkgeworICAgIC8vIFRlc3QgcGFzc2VkIQorICAgIHJldHVybjsKKyAgfQor
ICAvLyBJZiB3ZSBkaWQgbm90IHRocm93LCB3ZSBtdXN0IG5vdCBoYXZlIGdvdHRlbiB3aGF0IHdl
IGFza2VkIGZvci4gSWYKKyAgLy8gc2RwU2VtYW50aWNzIGlzIG5vdCByZWNvZ25pemVkIGJ5IHRo
ZSBicm93c2VyIGl0IHdpbGwgYmUgdW5kZWZpbmVkIGhlcmUuCisgIGFzc2VydF9ub3RfZXF1YWxz
KHBjLmdldENvbmZpZ3VyYXRpb24oKS5zZHBTZW1hbnRpY3MsICJwbGFuLWIiKTsKK30sICdQbGFu
IEIgaXMgbm90IHN1cHBvcnRlZCcpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXJlbGF5LWNhbnZhcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZWxheS1j
YW52YXMuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjN2E0YWY5YTE0YTk3YmZkZmFl
ZDg4M2FjZTg3MDVjMjFlMmU3ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZWxh
eS1jYW52YXMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIFR3byBQ
ZWVyQ29ubmVjdGlvbnMgcmVsYXlpbmcgYSBjYW52YXMgc291cmNlIGFzc2VydF9hcHByb3hfZXF1
YWxzOiBleHBlY3RlZCAxODMuNiArLy0gMiBidXQgZ290IDE4OC44NQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1yZWxheS1jYW52YXMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbGF5LWNh
bnZhcy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlOWNkMDY4MjIwZDZmMGVjMmE4YTc3ZTIxNWE0
MDcwMmY5MWVlNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZWxheS1jYW52YXMu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDg0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5S
ZWxheSBjYW52YXMgdmlhIFBlZXJDb25uZWN0aW9uczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVj
dGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisv
LyBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgY2FudmFzIGNhcHR1cmUgd29ya3MgcmVsYXllZCBiZXR3
ZWVuIHNldmVyYWwgcGVlciBjb25uZWN0aW9ucy4KKworZnVuY3Rpb24gR3JlZW5GcmFtZVdlYkdM
KHdpZHRoLCBoZWlnaHQpIHsKKyAgY29uc3QgY2FudmFzID0KKyAgICAgIE9iamVjdC5hc3NpZ24o
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyksIHt3aWR0aCwgaGVpZ2h0fSk7CisgIGNv
bnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCd3ZWJnbCcpOworICBpZiAoY3R4ID09PSBudWxs
KSByZXR1cm47CisgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiBkcmF3ICgpIHsKKyAg
ICBjdHguY2xlYXJDb2xvcigwLjAsIDEuMCwgMC4wLCAxLjApOworICAgIGN0eC5jbGVhcihjdHgu
Q09MT1JfQlVGRkVSX0JJVCk7CisgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRyYXcpOworICB9
KTsKKyAgcmV0dXJuIGNhbnZhcy5jYXB0dXJlU3RyZWFtKCk7Cit9CisKKworCitwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisKKyAgLy8gQnVpbGQgYSBjaGFpbgorICAvLyBjYW52YXMgLXRyYWNr
LT4gcGMxIC1uZXR3b3JrLT4gcGNSZWxheUluIC10cmFjay0+CisgIC8vICAgICAgIHBjUmVsYXlP
dXQgLW5ldHdvcmstPiBwYzIgLXRyYWNrLT4gdmlkZW8KKyAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICBj
b25zdCBwY1JlbGF5SW4gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwY1JlbGF5SW4uY2xvc2UoKSk7CisKKyAgY29uc3QgcGNSZWxheU91dCA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjUmVsYXlPdXQuY2xv
c2UoKSk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAvLyBBdHRhY2ggY2FudmFzIHRvIHBjMS4K
KyAgY29uc3Qgc3RyZWFtID0gR3JlZW5GcmFtZVdlYkdMKDY0MCwgNDgwKTsKKyAgY29uc3QgW3Ry
YWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKKyAgcGMxLmFkZFRyYWNrKHRyYWNrKTsKKworICBj
b25zdCB2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgdi5hdXRvcGxheSA9
IHRydWU7CisKKyAgLy8gU2V0dXAgcGMxLT5wY1JlbGF5SW4gdmlkZW8gc3RyZWFtLgorICBjb25z
dCBoYXZlVHJhY2tFdmVudDEgPSBuZXcgUHJvbWlzZShyID0+IHBjUmVsYXlJbi5vbnRyYWNrID0g
cik7CisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjUmVsYXlJbik7CisgIGF3YWl0IHBj
MS5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIGF3YWl0IHBjUmVsYXlJbi5zZXRSZW1vdGVEZXNj
cmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGF3YWl0IHBjUmVsYXlJbi5zZXRMb2Nh
bERlc2NyaXB0aW9uKCk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwY1JlbGF5
SW4ubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgLy8gUGx1ZyBvdXRwdXQgb2YgcGNSZWxheUluIHRv
IHBjUmVsYXlPdXQuCisgIHBjUmVsYXlPdXQuYWRkVHJhY2soKGF3YWl0IGhhdmVUcmFja0V2ZW50
MSkudHJhY2spOworCisgIC8vIFNldHVwIHBjUmVsYXlPdXQtPnBjMiB2aWRlbyBzdHJlYW0uCisg
IGNvbnN0IGhhdmVUcmFja0V2ZW50MiA9IG5ldyBQcm9taXNlKHIgPT4gcGMyLm9udHJhY2sgPSBy
KTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjUmVsYXlPdXQsIHBjMik7CisgIGF3YWl0IHBj
UmVsYXlPdXQuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ocGNSZWxheU91dC5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXdhaXQgcGMyLnNldExv
Y2FsRGVzY3JpcHRpb24oKTsKKyAgYXdhaXQgcGNSZWxheU91dC5zZXRSZW1vdGVEZXNjcmlwdGlv
bihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgLy8gRGlzcGxheSBwYzIgcmVjZWl2ZWQgdHJh
Y2sgaW4gdmlkZW8gZWxlbWVudC4KKyAgdi5zcmNPYmplY3QgPSBuZXcgTWVkaWFTdHJlYW0oWyhh
d2FpdCBoYXZlVHJhY2tFdmVudDIpLnRyYWNrXSk7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4g
di5vbmxvYWRlZG1ldGFkYXRhID0gcik7CisKKyAgLy8gV2FpdCBzb21lIHRpbWUgdG8gZW5zdXJl
IHRoYXQgZnJhbWVzIGdvdCB0aHJvdWdoLgorICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+
IHQuc3RlcF90aW1lb3V0KHJlc29sdmUsIDEwMDApKTsKKworICAvLyBVc2VzIEhlbHBlci5qcyBH
ZXRWaWRlb1NpZ25hbCB0byBxdWVyeSB8dnwgcGl4ZWwgdmFsdWUgYXQgYSBjZXJ0YWluIHBvc2l0
aW9uLgorICBjb25zdCBwaXhlbFZhbHVlID0gZ2V0VmlkZW9TaWduYWwodik7CisKKyAgLy8gRXhw
ZWN0ZWQgdmFsdWUgY29tcHV0ZWQgYmFzZWQgb24gR2V0VmlkZW9TaWduYWwgY29kZSwgd2hpY2gg
dGFrZXMgZ3JlZW4gcGl4ZWwgZGF0YQorICAvLyB3aXRoIGNvZWZmaWNpZW50IDAuNzIuCisgIGFz
c2VydF9hcHByb3hfZXF1YWxzKHBpeGVsVmFsdWUsIDAuNzIqMjU1LCAyKTsKKyAgfSwgIlR3byBQ
ZWVyQ29ubmVjdGlvbnMgcmVsYXlpbmcgYSBjYW52YXMgc291cmNlIik7Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZS10cmFjay1tdXRlLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXJlbW90ZS10cmFjay1tdXRlLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRl
eCBjMzE5OTBkNzAwOWYwODIzYzdlN2JiZTI5ZWI0NzA2OTEzNjVkODQxLi4xZDRiNzZkMmRjNzFj
YzM2NDU4YjY3OGVkNzIwY2MwNjNkZWM2MTNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1v
dGUtdHJhY2stbXV0ZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3Rl
LXRyYWNrLW11dGUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOSBAQAogCiBIYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKIAotRkFJTCBvbnRyYWNrOiB0cmFjayBn
b2VzIGZyb20gbXV0ZWQgdG8gdW5tdXRlZCBhc3NlcnRfdHJ1ZTogdHJhY2sgaXMgbXV0ZWQgaW4g
b250cmFjayBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotVElNRU9VVCBDaGFuZ2luZyB0cmFuc2Nl
aXZlciBkaXJlY3Rpb24gdG8gJ2luYWN0aXZlJyBtdXRlcyB0aGUgcmVtb3RlIHRyYWNrIFRlc3Qg
dGltZWQgb3V0Ci1OT1RSVU4gQ2hhbmdpbmcgdHJhbnNjZWl2ZXIgZGlyZWN0aW9uIHRvICdzZW5k
cmVjdicgdW5tdXRlcyB0aGUgcmVtb3RlIHRyYWNrCi1OT1RSVU4gcGMuY2xvc2UoKSBtdXRlcyBy
ZW1vdGUgdHJhY2tzCitQQVNTIG9udHJhY2s6IHRyYWNrIGdvZXMgZnJvbSBtdXRlZCB0byB1bm11
dGVkCitQQVNTIENoYW5naW5nIHRyYW5zY2VpdmVyIGRpcmVjdGlvbiB0byAnaW5hY3RpdmUnIG11
dGVzIHRoZSByZW1vdGUgdHJhY2sKK0ZBSUwgQ2hhbmdpbmcgdHJhbnNjZWl2ZXIgZGlyZWN0aW9u
IHRvICdzZW5kcmVjdicgdW5tdXRlcyB0aGUgcmVtb3RlIHRyYWNrIGFzc2VydF90cnVlOiBOb3Qg
ZXhwZWN0aW5nIGV2ZW50LCBidXQgZ290IHVubXV0ZSBldmVudCBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorVElNRU9VVCB0cmFuc2NlaXZlci5zdG9wKCkgb24gb25lIHNpZGUgKHdpdGhvdXQgcmVu
ZWdvdGlhdGlvbikgY2F1c2VzIG11dGUgZXZlbnRzIG9uIHRoZSBvdGhlciBUZXN0IHRpbWVkIG91
dAorTk9UUlVOIHBjLmNsb3NlKCkgb24gb25lIHNpZGUgY2F1c2VzIG11dGUgZXZlbnRzIG9uIHRo
ZSBvdGhlcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2UuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IDYyZTQzMzAwZjIxMzFjN2MzNjJiMmEzOTMwMzZmOGE2NmI0MTFhZjEuLjUzNTEwOTM5M2ZlYjg4
ODMzNTQwZmEwMzMyMWU5ZDIxZjk3NWU2MWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3Rh
cnRJY2UuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2UuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsNyBAQCBGQUlMIHJlc3RhcnRJY2UoKSBkb2VzIG5v
dCB0cmlnZ2VyIG5lZ290aWF0aW9uIGFoZWFkIG9mIGluaXRpYWwgbmVnb3RpYXRpb24gYXNzZQog
UEFTUyByZXN0YXJ0SWNlKCkgaGFzIG5vIGVmZmVjdCBvbiBpbml0aWFsIG5lZ290aWF0aW9uCiBQ
QVNTIHJlc3RhcnRJY2UoKSBmaXJlcyBuZWdvdGlhdGlvbm5lZWRlZCBhZnRlciBpbml0aWFsIG5l
Z290aWF0aW9uCiBQQVNTIHJlc3RhcnRJY2UoKSBjYXVzZXMgZnJlc2ggdWZyYWdzCitQQVNTIHJl
c3RhcnRJY2UoKSByZXRhaW5zIGR0bHMgdHJhbnNwb3J0cwogUEFTUyByZXN0YXJ0SWNlKCkgd29y
a3MgaW4gaGF2ZS1sb2NhbC1vZmZlcgogUEFTUyByZXN0YXJ0SWNlKCkgd29ya3MgaW4gaW5pdGlh
bCBoYXZlLWxvY2FsLW9mZmVyCiBQQVNTIHJlc3RhcnRJY2UoKSB3b3JrcyBpbiBoYXZlLXJlbW90
ZS1vZmZlcgpAQCAtMTIsNCArMTMsMTcgQEAgUEFTUyByZXN0YXJ0SWNlKCkgaXMgc2F0aXNmaWVk
IGJ5IHJlbW90ZSBJQ0UgcmVzdGFydAogUEFTUyByZXN0YXJ0SWNlKCkgdHJ1bXBzIHtpY2VSZXN0
YXJ0OiBmYWxzZX0KIFBBU1MgcmVzdGFydEljZSgpIHN1cnZpdmVzIHJvbGxiYWNrCiBGQUlMIHJl
c3RhcnRJY2UoKSBzdXJ2aXZlcyByZW1vdGUgb2ZmZXIgY29udGFpbmluZyBwYXJ0aWFsIHJlc3Rh
cnQgYXNzZXJ0X2ZhbHNlOiBSZXN0YXJ0ZWQgMiBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFT
UyByZXN0YXJ0SWNlKCkgaGFzIG5vIGVmZmVjdCBvbiBpbml0aWFsIG5lZ290aWF0aW9uIChwZXJm
ZWN0IG5lZ290aWF0aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgZmlyZXMgbmVnb3RpYXRpb25uZWVk
ZWQgYWZ0ZXIgaW5pdGlhbCBuZWdvdGlhdGlvbiAocGVyZmVjdCBuZWdvdGlhdGlvbikKK1BBU1Mg
cmVzdGFydEljZSgpIGNhdXNlcyBmcmVzaCB1ZnJhZ3MgKHBlcmZlY3QgbmVnb3RpYXRpb24pCitQ
QVNTIHJlc3RhcnRJY2UoKSByZXRhaW5zIGR0bHMgdHJhbnNwb3J0cyAocGVyZmVjdCBuZWdvdGlh
dGlvbikKK1BBU1MgcmVzdGFydEljZSgpIHdvcmtzIGluIGhhdmUtbG9jYWwtb2ZmZXIgKHBlcmZl
Y3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3RhcnRJY2UoKSB3b3JrcyBpbiBpbml0aWFsIGhhdmUt
bG9jYWwtb2ZmZXIgKHBlcmZlY3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3RhcnRJY2UoKSB3b3Jr
cyBpbiBoYXZlLXJlbW90ZS1vZmZlciAocGVyZmVjdCBuZWdvdGlhdGlvbikKK1BBU1MgcmVzdGFy
dEljZSgpIGRvZXMgbm90aGluZyBpbiBpbml0aWFsIGhhdmUtcmVtb3RlLW9mZmVyIChwZXJmZWN0
IG5lZ290aWF0aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcmVtb3RlIG9mZmVyIChw
ZXJmZWN0IG5lZ290aWF0aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgaXMgc2F0aXNmaWVkIGJ5IHJl
bW90ZSBJQ0UgcmVzdGFydCAocGVyZmVjdCBuZWdvdGlhdGlvbikKK1BBU1MgcmVzdGFydEljZSgp
IHRydW1wcyB7aWNlUmVzdGFydDogZmFsc2V9IChwZXJmZWN0IG5lZ290aWF0aW9uKQorUEFTUyBy
ZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcm9sbGJhY2sgKHBlcmZlY3QgbmVnb3RpYXRpb24pCitGQUlM
IHJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByZW1vdGUgb2ZmZXIgY29udGFpbmluZyBwYXJ0aWFsIHJl
c3RhcnQgKHBlcmZlY3QgbmVnb3RpYXRpb24pIGFzc2VydF9mYWxzZTogUmVzdGFydGVkIDIgZXhw
ZWN0ZWQgZmFsc2UgZ290IHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydElj
ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy5odG1sCmluZGV4IDhm
OGM2NjFhNDFkZDBhMWNiOGY1NmJhZjgwZjZkM2I3OTdmOWUyMjkuLjBlNGVjZjY0Yzg1M2ZjZTlk
NGU0YTY2ODU2ZjJhMDYwZjJiZGJiMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJ
Y2UuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBzLmh0bWwKQEAg
LTE2LDE1ICsxNiwzNiBAQCBmdW5jdGlvbiBnZXRMaW5lcyhzZHAsIHN0YXJ0c1dpdGgpIHsKIGNv
bnN0IGdldFVmcmFncyA9ICh7c2RwfSkgPT4gZ2V0TGluZXMoc2RwLCAiYT1pY2UtdWZyYWc6Iik7
CiBjb25zdCBnZXRQd2RzID0gKHtzZHB9KSA9PiBnZXRMaW5lcyhzZHAsICJhPWljZS1wd2Q6Iik7
CiAKLWFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMy
KSB7Ci0gIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZl
cigpKTsKK2NvbnN0IG5lZ290aWF0b3JzID0gWworICB7CisgICAgdGFnOiAiIiwKKyAgICBhc3lu
YyBzZXRPZmZlcihwYykgeworICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2Fp
dCBwYy5jcmVhdGVPZmZlcigpKTsKKyAgICB9LAorICAgIGFzeW5jIHNldEFuc3dlcihwYykgewor
ICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYy5jcmVhdGVBbnN3ZXIo
KSk7CisgICAgfSwKKyAgfSwKKyAgeworICAgIHRhZzogIiAocGVyZmVjdCBuZWdvdGlhdGlvbiki
LAorICAgIGFzeW5jIHNldE9mZmVyKHBjKSB7CisgICAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2Ny
aXB0aW9uKCk7CisgICAgfSwKKyAgICBhc3luYyBzZXRBbnN3ZXIocGMpIHsKKyAgICAgIGF3YWl0
IHBjLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgICB9LAorICB9LAorXTsKKworYXN5bmMgZnVu
Y3Rpb24gZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3Ip
IHsKKyAgYXdhaXQgbmVnb3RpYXRvci5zZXRPZmZlcihwYzEpOwogICBhd2FpdCBwYzIuc2V0UmVt
b3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBhd2FpdCBwYzIuc2V0TG9j
YWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOworICBhd2FpdCBuZWdvdGlh
dG9yLnNldEFuc3dlcihwYzIpOwogICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMy
LmxvY2FsRGVzY3JpcHRpb24pOyAvLyBFbmQgb24gcGMxLiBObyByYWNlCiB9CiAKLWFzeW5jIGZ1
bmN0aW9uIGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPblNlY29uZChwYzEsIHBjMikgewotICBhd2Fp
dCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7Cithc3lu
YyBmdW5jdGlvbiBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25TZWNvbmQocGMxLCBwYzIsIG5lZ290
aWF0b3IpIHsKKyAgYXdhaXQgbmVnb3RpYXRvci5zZXRPZmZlcihwYzEpOwogICBhd2FpdCBwYzIu
c2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOwogICBhd2FpdCBwYzEu
c2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsKICAgYXdhaXQg
cGMyLnNldExvY2FsRGVzY3JpcHRpb24ocGMxLnJlbW90ZURlc2NyaXB0aW9uKTsgLy8gRW5kIG9u
IHBjMi4gTm8gcmFjZQpAQCAtNjUsMzMwICs4NiwzOTAgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewogICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CiB9LCAicmVz
dGFydEljZSgpIGRvZXMgbm90IHRyaWdnZXIgbmVnb3RpYXRpb24gYWhlYWQgb2YgaW5pdGlhbCBu
ZWdvdGlhdGlvbiIpOwogCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8i
KTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIp
OwotICBwYzEucmVzdGFydEljZSgpOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25G
aXJzdChwYzEsIHBjMik7Ci0gIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMx
KTsKLX0sICJyZXN0YXJ0SWNlKCkgaGFzIG5vIGVmZmVjdCBvbiBpbml0aWFsIG5lZ290aWF0aW9u
Iik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwot
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2Fp
dCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0
IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLSAgcGMxLnJlc3RhcnRJ
Y2UoKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOwotfSwgInJlc3RhcnRJY2UoKSBmaXJlcyBuZWdvdGlhdGlvbm5lZWRlZCBhZnRlciBpbml0
aWFsIG5lZ290aWF0aW9uIik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qg
cGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJh
dWRpbyIpOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7
Ci0KLSAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24p
OwotICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7
Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLSAgYXNz
ZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xk
VWZyYWcxLCAiY29udHJvbCAxIik7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhw
YzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMiwgImNvbnRyb2wgMiIpOwotCi0gIHBj
MS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRp
b25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMx
LCBwYzIpOwotICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlw
dGlvbik7Ci0gIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0
aW9uKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAi
dWZyYWcgMSBjaGFuZ2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEs
IG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOwotICBhd2FpdCBhc3NlcnROb05lZ290aWF0
aW9uTmVlZGVkKHQsIHBjMSk7Ci0KLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmly
c3QocGMxLCBwYzIpOwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2Fs
RGVzY3JpcHRpb24pWzBdLCBuZXdVZnJhZzEsICJVbmNoYW5nZWQgMSIpOwotICBhc3NlcnRfdWZy
YWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBuZXdVZnJhZzIs
ICJVbmNoYW5nZWQgMiIpOwotfSwgInJlc3RhcnRJY2UoKSBjYXVzZXMgZnJlc2ggdWZyYWdzIik7
Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2FpdCBu
ZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IGV4
Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLQotICBjb25zdCBbb2xkVWZy
YWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtvbGRVZnJh
ZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLQotICBhd2FpdCBwYzEuc2V0
TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7Ci0gIHBjMS5yZXN0YXJ0
SWNlKCk7Ci0gIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlw
dGlvbik7Ci0gIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVB
bnN3ZXIoKSk7Ci0gIC8vIFNldmVyYWwgdGVzdHMgaW4gdGhpcyBmaWxlIGluaXRpYWxpemVzIHRo
ZSBvbm5lZ290aWF0aW9ubmVlZGVkIGxpc3RlbmVyCi0gIC8vIGJlZm9yZSB0aGUgc2V0TG9jYWxE
ZXNjcmlwdGlvbigpIG9yIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgdGhhdCB3ZSBleHBlY3QKLSAg
Ly8gdG8gdHJpZ2dlciBuZWdvdGlhdGlvbiBuZWVkZWQuIFRoaXMgYWxsb3dzIENocm9tZSB0byBl
eGVyY2lzZSB0aGVzZSB0ZXN0cwotICAvLyB3aXRob3V0IHRpbWluZyBvdXQgZHVlIHRvIGEgYnVn
IHRoYXQgY2F1c2VzIG9ubmVnb3RpYXRpb25uZWVkZWQgdG8gZmlyZSB0b28KLSAgLy8gZWFybHku
Ci0gIC8vIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20vOTg1Nzk3KTogT25jZSBDaHJvbWUgZG9lcyBu
b3QgZmlyZSBPTk4gdG9vIGVhcmx5LAotICAvLyBzaW1wbHkgZG8gImF3YWl0IG5ldyBQcm9taXNl
KC4uLikiIGluc3RlYWQgb2YKLSAgLy8gImF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSIg
aGVyZSBhbmQgaW4gb3RoZXIgdGVzdHMgaW4gdGhpcyBmaWxlLgotICBjb25zdCBuZWdvdGlhdGlv
bk5lZWRlZFByb21pc2UgPQotICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlv
bm5lZWRlZCA9IHIpOwotICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2Fs
RGVzY3JpcHRpb24pOwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2Fs
RGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzEsICJVbmNoYW5nZWQgMSIpOwotICBhc3NlcnRfdWZy
YWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzIs
ICJVbmNoYW5nZWQgMiIpOwotICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2U7Ci0gIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLSAgY29uc3QgW25l
d1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBbbmV3
VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGFzc2VydF91ZnJh
Z3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOwot
ICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzIsICJ1ZnJhZyAy
IGNoYW5nZWQiKTsKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOwot
fSwgInJlc3RhcnRJY2UoKSB3b3JrcyBpbiBoYXZlLWxvY2FsLW9mZmVyIik7Ci0KLXByb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7
Ci0KLSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2FpdCBuZXcgUHJvbWlzZShy
ID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IHBjMS5zZXRMb2NhbERl
c2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKLSAgcGMxLnJlc3RhcnRJY2UoKTsK
LSAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsK
LSAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigp
KTsKLSAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KLSAgICAgIG5ldyBQcm9taXNl
KHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgcGMxLnNldFJlbW90
ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW29sZFVmcmFnMV0g
PSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBbb2xkVWZyYWcyXSA9
IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGF3YWl0IG5lZ290aWF0aW9uTmVl
ZGVkUHJvbWlzZTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBw
YzIpOwotICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlv
bik7Ci0gIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9u
KTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZy
YWcgMSBjaGFuZ2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9s
ZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOwotICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9u
TmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIHdvcmtzIGluIGluaXRpYWwgaGF2ZS1s
b2NhbC1vZmZlciIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8i
KTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIp
OwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0KLSAg
Y29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBj
b25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0KLSAg
YXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCkpOwot
ICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOwot
ICBwYzEucmVzdGFydEljZSgpOwotICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdh
aXQgcGMxLmNyZWF0ZUFuc3dlcigpKTsKLSAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNl
ID0KLSAgICAgIG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsK
LSAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ocGMyLnJlbW90ZURlc2NyaXB0aW9uKTsg
Ly8gRW5kIG9uIHBjMS4gTm8gcmFjZQotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3Mo
cGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzEsICJVbmNoYW5nZWQgMSIpOwotICBh
c3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBv
bGRVZnJhZzIsICJVbmNoYW5nZWQgMiIpOwotICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21p
c2U7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLSAg
Y29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBj
b25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGFz
c2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hh
bmdlZCIpOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzIs
ICJ1ZnJhZyAyIGNoYW5nZWQiKTsKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0
LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSB3b3JrcyBpbiBoYXZlLXJlbW90ZS1vZmZlciIpOwot
Ci1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOwotCi0gIHBjMi5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKLSAgYXdhaXQgcGMy
LnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCkpOwotICBhd2FpdCBw
YzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBwYzEucmVz
dGFydEljZSgpOwotICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNy
ZWF0ZUFuc3dlcigpKTsKLSAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ocGMyLnJlbW90
ZURlc2NyaXB0aW9uKTsgLy8gRW5kIG9uIHBjMS4gTm8gcmFjZQotICBhd2FpdCBhc3NlcnROb05l
Z290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIGRvZXMgbm90aGluZyBp
biBpbml0aWFsIGhhdmUtcmVtb3RlLW9mZmVyIik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9z
ZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRy
YW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290
aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0
KHBjMSwgcGMyKTsKLQotICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxE
ZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERl
c2NyaXB0aW9uKTsKLQotICBwYzEucmVzdGFydEljZSgpOwotICBhd2FpdCBuZXcgUHJvbWlzZShy
ID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGNvbnN0IG5lZ290aWF0aW9uTmVl
ZGVkUHJvbWlzZSA9Ci0gICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVl
ZGVkID0gcik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPblNlY29uZChwYzIsIHBj
MSk7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlv
bilbMF0sIG9sZFVmcmFnMSwgIm5vdGhpbmcgeWV0IDEiKTsKLSAgYXNzZXJ0X3VmcmFnc19lcXVh
bHMoZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcyLCAibm90aGlu
ZyB5ZXQgMiIpOwotICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2U7Ci0gIGF3YWl0IGV4
Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLSAgY29uc3QgW25ld1VmcmFn
MV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBbbmV3VWZyYWcy
XSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90
X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOwotICBhc3Nl
cnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcyLCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5n
ZWQiKTsKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOwotfSwgInJl
c3RhcnRJY2UoKSBzdXJ2aXZlcyByZW1vdGUgb2ZmZXIiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewotICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMx
LmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEu
YWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9u
bmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9u
Rmlyc3QocGMxLCBwYzIpOwotCi0gIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5s
b2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxv
Y2FsRGVzY3JpcHRpb24pOworLy8gUnVuIHJlbWFpbmluZyB0ZXN0cyB0d2ljZTogb25jZSBmb3Ig
ZWFjaCBuZWdvdGlhdG9yCisKK2ZvciAoY29uc3QgbmVnb3RpYXRvciBvZiBuZWdvdGlhdG9ycykg
eworICBjb25zdCB7dGFnfSA9IG5lZ290aWF0b3I7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0
IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisg
ICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIg
PT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBwYzEucmVzdGFydEljZSgpOwor
ICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlh
dG9yKTsKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CisgIH0s
IGByZXN0YXJ0SWNlKCkgaGFzIG5vIGVmZmVjdCBvbiBpbml0aWFsIG5lZ290aWF0aW9uJHt0YWd9
YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRp
byIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQg
PSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwg
bmVnb3RpYXRvcik7CisgICAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlz
ZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIH0sIGByZXN0YXJ0SWNlKCkg
ZmlyZXMgbmVnb3RpYXRpb25uZWVkZWQgYWZ0ZXIgaW5pdGlhbCBuZWdvdGlhdGlvbiR7dGFnfWAp
OworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8i
KTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVn
b3RpYXRvcik7CisKKyAgICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxE
ZXNjcmlwdGlvbik7CisgICAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2Fs
RGVzY3JpcHRpb24pOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBj
MSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3Mo
cGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzEsICJjb250cm9sIDEiKTsKKyAgICBh
c3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBv
bGRVZnJhZzIsICJjb250cm9sIDIiKTsKKworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAgYXdh
aXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsK
KyAgICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7
CisgICAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24p
OworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVm
cmFnIDEgY2hhbmdlZCIpOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEs
IG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOworICAgIGF3YWl0IGFzc2VydE5vTmVnb3Rp
YXRpb25OZWVkZWQodCwgcGMxKTsKKworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRP
bkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhn
ZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBuZXdVZnJhZzEsICJVbmNoYW5nZWQg
MSIpOworICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlw
dGlvbilbMF0sIG5ld1VmcmFnMiwgIlVuY2hhbmdlZCAyIik7CisgIH0sIGByZXN0YXJ0SWNlKCkg
Y2F1c2VzIGZyZXNoIHVmcmFncyR7dGFnfWApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgICBjb25zdCBjb25maWcgPSB7YnVuZGxlUG9saWN5OiAibWF4LWJ1bmRsZSJ9OworICAg
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpOworICAgIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwor
CisgICAgcGMxLm9uaWNlY2FuZGlkYXRlID0gZSA9PiBwYzIuYWRkSWNlQ2FuZGlkYXRlKGUuY2Fu
ZGlkYXRlKTsKKyAgICBwYzIub25pY2VjYW5kaWRhdGUgPSBlID0+IHBjMS5hZGRJY2VDYW5kaWRh
dGUoZS5jYW5kaWRhdGUpOworCisgICAgLy8gU2VlIHRoZSBleHBsYW5hdGlvbiBiZWxvdyBhYm91
dCBDaHJvbWUncyBvbm5lZ290aWF0aW9ubmVlZGVkIGZpcmluZworICAgIC8vIHRvbyBlYXJseS4K
KyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UxID0KKyAgICAgICAgbmV3IFByb21p
c2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIHBjMS5hZGRUcmFuc2Nl
aXZlcigidmlkZW8iKTsKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAgYXdh
aXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlMTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5z
d2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisKKyAgICBjb25zdCBbdmlkZW9U
YywgYXVkaW9UY10gPSBwYzEuZ2V0VHJhbnNjZWl2ZXJzKCk7CisgICAgY29uc3QgW3ZpZGVvVHAs
IGF1ZGlvVHBdID0KKyAgICAgICAgcGMxLmdldFRyYW5zY2VpdmVycygpLm1hcCh0YyA9PiB0Yy5z
ZW5kZXIudHJhbnNwb3J0KTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMo
KS5sZW5ndGgsIDIsICd0cmFuc2NlaXZlciBjb3VudCcpOworCisgICAgLy8gT24gQ2hyb21lLCBp
dCBpcyBwb3NzaWJsZSAobGlrZWx5LCBldmVuKSB0aGF0IHZpZGVvVGMuc2VuZGVyLnRyYW5zcG9y
dC5zdGF0ZQorICAgIC8vIHdpbGwgYmUgJ2Nvbm5lY3RlZCcgYnkgdGhlIHRpbWUgd2UgZ2V0IGhl
cmUuICBXZSdsbCByYWNlIDIgcHJvbWlzZXMgaGVyZToKKyAgICAvLyAxLiBSZXNvbHZlIGFmdGVy
IG9uc3RhdGVjaGFuZ2UgaXMgY2FsbGVkIHdpdGggY29ubmVjdGVkIHN0YXRlLgorICAgIC8vIDIu
IElmIGFscmVhZHkgY29ubmVjdGVkLCByZXNvbHZlIGltbWVkaWF0ZWx5LgorICAgIGF3YWl0IFBy
b21pc2UucmFjZShbCisgICAgICBuZXcgUHJvbWlzZShyID0+IHZpZGVvVGMuc2VuZGVyLnRyYW5z
cG9ydC5vbnN0YXRlY2hhbmdlID0KKyAgICAgICAgKCkgPT4gdmlkZW9UYy5zZW5kZXIudHJhbnNw
b3J0LnN0YXRlID09ICJjb25uZWN0ZWQiICYmIHIoKSksCisgICAgICBuZXcgUHJvbWlzZShyID0+
IHZpZGVvVGMuc2VuZGVyLnRyYW5zcG9ydC5zdGF0ZSA9PSAiY29ubmVjdGVkIiAmJiByKCkpCisg
ICAgXSk7CisgICAgYXNzZXJ0X2VxdWFscyh2aWRlb1RjLnNlbmRlci50cmFuc3BvcnQuc3RhdGUs
ICJjb25uZWN0ZWQiKTsKKworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0
KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBhc3NlcnRfZXF1YWxzKHZpZGVvVHAsIHBjMS5n
ZXRUcmFuc2NlaXZlcnMoKVswXS5zZW5kZXIudHJhbnNwb3J0LAorICAgICAgICAgICAgICAgICAg
J29mZmVyL2Fuc3dlciByZXRhaW5zIGR0bHMgdHJhbnNwb3J0Jyk7CisgICAgYXNzZXJ0X2VxdWFs
cyhhdWRpb1RwLCBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMV0uc2VuZGVyLnRyYW5zcG9ydCwKKyAg
ICAgICAgICAgICAgICAgICdvZmZlci9hbnN3ZXIgcmV0YWlucyBkdGxzIHRyYW5zcG9ydCcpOwor
CisgICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlMiA9CisgICAgICAgIG5ldyBQcm9t
aXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBwYzEucmVzdGFydElj
ZSgpOworICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTI7CisgICAgYXdhaXQgZXhj
aGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworCisgICAg
Y29uc3QgW25ld1ZpZGVvVHAsIG5ld0F1ZGlvVHBdID0KKyAgICAgICAgcGMxLmdldFRyYW5zY2Vp
dmVycygpLm1hcCh0YyA9PiB0Yy5zZW5kZXIudHJhbnNwb3J0KTsKKyAgICBhc3NlcnRfZXF1YWxz
KHZpZGVvVHAsIG5ld1ZpZGVvVHAsICdpY2UgcmVzdGFydCByZXRhaW5zIGR0bHMgdHJhbnNwb3J0
Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhhdWRpb1RwLCBuZXdBdWRpb1RwLCAnaWNlIHJlc3RhcnQg
cmV0YWlucyBkdGxzIHRyYW5zcG9ydCcpOworICB9LCBgcmVzdGFydEljZSgpIHJldGFpbnMgZHRs
cyB0cmFuc3BvcnRzJHt0YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAg
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3Nl
KCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLmFk
ZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9u
bmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5k
T25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisKKyAgICBjb25zdCBbb2xkVWZyYWcxXSA9
IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW29sZFVmcmFnMl0g
PSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgYXdhaXQgbmVnb3RpYXRv
ci5zZXRPZmZlcihwYzEpOworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgcGMyLnNl
dFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhd2FpdCBuZWdv
dGlhdG9yLnNldEFuc3dlcihwYzIpOworICAgIC8vIFNldmVyYWwgdGVzdHMgaW4gdGhpcyBmaWxl
IGluaXRpYWxpemVzIHRoZSBvbm5lZ290aWF0aW9ubmVlZGVkIGxpc3RlbmVyCisgICAgLy8gYmVm
b3JlIHRoZSBzZXRMb2NhbERlc2NyaXB0aW9uKCkgb3Igc2V0UmVtb3RlRGVzY3JpcHRpb24oKSB0
aGF0IHdlIGV4cGVjdAorICAgIC8vIHRvIHRyaWdnZXIgbmVnb3RpYXRpb24gbmVlZGVkLiBUaGlz
IGFsbG93cyBDaHJvbWUgdG8gZXhlcmNpc2UgdGhlc2UgdGVzdHMKKyAgICAvLyB3aXRob3V0IHRp
bWluZyBvdXQgZHVlIHRvIGEgYnVnIHRoYXQgY2F1c2VzIG9ubmVnb3RpYXRpb25uZWVkZWQgdG8g
ZmlyZSB0b28KKyAgICAvLyBlYXJseS4KKyAgICAvLyBUT0RPKGh0dHBzOi8vY3JidWcuY29tLzk4
NTc5Nyk6IE9uY2UgQ2hyb21lIGRvZXMgbm90IGZpcmUgT05OIHRvbyBlYXJseSwKKyAgICAvLyBz
aW1wbHkgZG8gImF3YWl0IG5ldyBQcm9taXNlKC4uLikiIGluc3RlYWQgb2YKKyAgICAvLyAiYXdh
aXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlIiBoZXJlIGFuZCBpbiBvdGhlciB0ZXN0cyBpbiB0
aGlzIGZpbGUuCisgICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KKyAgICAgICAg
bmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0
IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXNz
ZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xk
VWZyYWcxLCAiVW5jaGFuZ2VkIDEiKTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJh
Z3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzIsICJVbmNoYW5nZWQgMiIpOwor
ICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKKyAgICBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisgICAgY29uc3QgW25l
d1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtu
ZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRf
dWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQi
KTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzIsICJ1
ZnJhZyAyIGNoYW5nZWQiKTsKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQs
IHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkgd29ya3MgaW4gaGF2ZS1sb2NhbC1vZmZlciR7dGFn
fWApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVk
aW8iKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVk
ID0gcik7CisgICAgYXdhaXQgbmVnb3RpYXRvci5zZXRPZmZlcihwYzEpOworICAgIHBjMS5yZXN0
YXJ0SWNlKCk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERl
c2NyaXB0aW9uKTsKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldEFuc3dlcihwYzIpOworICAgIGNv
bnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9CisgICAgICAgIG5ldyBQcm9taXNlKHIgPT4g
cGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtvbGRVZnJhZzFdID0g
Z2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbb2xkVWZyYWcyXSA9
IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXdhaXQgbmVnb3RpYXRpb25O
ZWVkZWRQcm9taXNlOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBj
MSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhw
YzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3Mo
cGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdV
ZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOworICAgIGFzc2VydF91ZnJhZ3Nf
bm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOworICAg
IGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKKyAgfSwgYHJlc3RhcnRJ
Y2UoKSB3b3JrcyBpbiBpbml0aWFsIGhhdmUtbG9jYWwtb2ZmZXIke3RhZ31gKTsKKworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAgYXdh
aXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsK
KworICAgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9u
KTsKKyAgICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlv
bik7CisKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldE9mZmVyKHBjMik7CisgICAgYXdhaXQgcGMx
LnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBwYzEucmVz
dGFydEljZSgpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzEu
Y3JlYXRlQW5zd2VyKCkpOworICAgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9Cisg
ICAgICAgIG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAg
ICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihwYzIucmVtb3RlRGVzY3JpcHRpb24pOyAv
LyBFbmQgb24gcGMxLiBObyByYWNlCisgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdz
KHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcxLCAiVW5jaGFuZ2VkIDEiKTsKKyAg
ICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBd
LCBvbGRVZnJhZzIsICJVbmNoYW5nZWQgMiIpOworICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVk
UHJvbWlzZTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBj
MiwgbmVnb3RpYXRvcik7CisgICAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxv
Y2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5s
b2NhbERlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcx
LCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9l
cXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKKyAgICBhd2Fp
dCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkg
d29ya3MgaW4gaGF2ZS1yZW1vdGUtb2ZmZXIke3RhZ31gKTsKKworICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
Y29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7
CisKKyAgICBwYzIuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAgYXdhaXQgbmVnb3RpYXRv
ci5zZXRPZmZlcihwYzIpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIu
bG9jYWxEZXNjcmlwdGlvbik7CisgICAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgICBhd2FpdCBwYzIu
c2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigpKTsKKyAgICBhd2Fp
dCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihwYzIucmVtb3RlRGVzY3JpcHRpb24pOyAvLyBFbmQg
b24gcGMxLiBObyByYWNlCisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBw
YzEpOworICB9LCBgcmVzdGFydEljZSgpIGRvZXMgbm90aGluZyBpbiBpbml0aWFsIGhhdmUtcmVt
b3RlLW9mZmVyJHt0YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNv
bnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkp
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRy
YW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVn
b3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25G
aXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisKKyAgICBjb25zdCBbb2xkVWZyYWcxXSA9IGdl
dFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW29sZFVmcmFnMl0gPSBn
ZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgcGMxLnJlc3RhcnRJY2UoKTsK
KyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7
CisgICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KKyAgICAgICAgbmV3IFByb21p
c2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IGV4Y2hhbmdl
T2ZmZXJBbnN3ZXJFbmRPblNlY29uZChwYzIsIHBjMSwgbmVnb3RpYXRvcik7CisgICAgYXNzZXJ0
X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZy
YWcxLCAibm90aGluZyB5ZXQgMSIpOworICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFn
cyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMiwgIm5vdGhpbmcgeWV0IDIiKTsK
KyAgICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2U7CisgICAgYXdhaXQgZXhjaGFuZ2VP
ZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGNvbnN0IFtu
ZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBb
bmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0
X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2Vk
Iik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMiwgb2xkVWZyYWcyLCAi
dWZyYWcgMiBjaGFuZ2VkIik7CisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0
LCBwYzEpOworICB9LCBgcmVzdGFydEljZSgpIHN1cnZpdmVzIHJlbW90ZSBvZmZlciR7dGFnfWAp
OworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8i
KTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0g
cik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5l
Z290aWF0b3IpOworCisgICAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2Fs
RGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2Nh
bERlc2NyaXB0aW9uKTsKKworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAgcGMyLnJlc3RhcnRJ
Y2UoKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVk
ID0gcik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uU2Vjb25kKHBjMiwgcGMx
LCBuZWdvdGlhdG9yKTsKKyAgICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9j
YWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxv
Y2FsRGVzY3JpcHRpb24pOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEs
IG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2Vx
dWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOworICAgIGF3YWl0
IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKKworICAgIGF3YWl0IGV4Y2hhbmdl
T2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBhc3NlcnRf
dWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBuZXdVZnJh
ZzEsICJVbmNoYW5nZWQgMSIpOworICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhw
YzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG5ld1VmcmFnMiwgIlVuY2hhbmdlZCAyIik7CisgICAg
YXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworICB9LCBgcmVzdGFydElj
ZSgpIGlzIHNhdGlzZmllZCBieSByZW1vdGUgSUNFIHJlc3RhcnQke3RhZ31gKTsKKworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAgYXdh
aXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsK
KworICAgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9u
KTsKKyAgICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlv
bik7CisKKyAgICBwYzEucmVzdGFydEljZSgpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4g
cGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNj
cmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoe2ljZVJlc3RhcnQ6IGZhbHNlfSkpOworICAg
IGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7Cisg
ICAgYXdhaXQgbmVnb3RpYXRvci5zZXRBbnN3ZXIocGMyKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVt
b3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtuZXdVZnJh
ZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbbmV3VWZy
YWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X3VmcmFn
c19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7Cisg
ICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcg
MiBjaGFuZ2VkIik7CisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEp
OworICB9LCBgcmVzdGFydEljZSgpIHRydW1wcyB7aWNlUmVzdGFydDogZmFsc2V9JHt0YWd9YCk7
CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIp
OworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSBy
KTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVn
b3RpYXRvcik7CisKKyAgICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxE
ZXNjcmlwdGlvbik7CisgICAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2Fs
RGVzY3JpcHRpb24pOworCisgICAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgICBhd2FpdCBuZXcgUHJv
bWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgbmVnb3Rp
YXRvci5zZXRPZmZlcihwYzEpOworICAgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9
CisgICAgICAgIG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsK
KyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogInJvbGxiYWNrIn0pOwor
ICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKKyAgICBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisgICAgY29uc3QgW25l
d1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtu
ZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRf
dWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQi
KTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzIsICJ1
ZnJhZyAyIGNoYW5nZWQiKTsKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQs
IHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcm9sbGJhY2ske3RhZ31gKTsKKwor
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKHtidW5kbGVQb2xpY3k6ICJtYXgtY29tcGF0In0pOworICAgIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7YnVuZGxlUG9saWN5OiAibWF4LWNvbXBhdCJ9KTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAg
ICBwYzEuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9
PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJB
bnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKworICAgIGNvbnN0IG9sZFVm
cmFnczEgPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IG9sZFVm
cmFnczIgPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IG9sZFB3
ZHMyID0gZ2V0UHdkcyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgICBwYzEucmVzdGFydElj
ZSgpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQg
PSByKTsKKworICAgIC8vIEVuZ2luZWVyIGEgcGFydGlhbCBJQ0UgcmVzdGFydCBmcm9tIHBjMgor
ICAgIHBjMi5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgbmVnb3RpYXRvci5zZXRPZmZlcihwYzIp
OworICAgIHsKKyAgICAgIGxldCB7dHlwZSwgc2RwfSA9IHBjMi5sb2NhbERlc2NyaXB0aW9uOwor
ICAgICAgLy8gUmVzdG9yZSBib3RoIG9sZCBpY2UtdWZyYWcgYW5kIG9sZCBpY2UtcHdkIHRvIHRy
aWdnZXIgYSBwYXJ0aWFsIHJlc3RhcnQKKyAgICAgIHNkcCA9IHNkcC5yZXBsYWNlKGdldFVmcmFn
cyh7c2RwfSlbMF0sIG9sZFVmcmFnczJbMF0pOworICAgICAgc2RwID0gc2RwLnJlcGxhY2UoZ2V0
UHdkcyh7c2RwfSlbMF0sIG9sZFB3ZHMyWzBdKTsKKyAgICAgIGNvbnN0IG5ld1VmcmFnczIgPSBn
ZXRVZnJhZ3Moe3NkcH0pOworICAgICAgY29uc3QgbmV3UHdkczIgPSBnZXRQd2RzKHtzZHB9KTsK
KyAgICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKG5ld1VmcmFnczJbMF0sIG9sZFVmcmFnczJbMF0s
ICJjb250cm9sIHVmcmFnIG1hdGNoIik7CisgICAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhuZXdQ
d2RzMlswXSwgb2xkUHdkczJbMF0sICJjb250cm9sIHB3ZCBtYXRjaCIpOworICAgICAgYXNzZXJ0
X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnczJbMV0sIG9sZFVmcmFnczJbMV0sICJjb250cm9s
IHVmcmFnIG5vbi1tYXRjaCIpOworICAgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1B3
ZHMyWzFdLCBvbGRQd2RzMlsxXSwgImNvbnRyb2wgcHdkIG5vbi1tYXRjaCIpOworICAgICAgYXdh
aXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlLCBzZHB9KTsKKyAgICB9CisgICAgY29u
c3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KKyAgICAgICAgbmV3IFByb21pc2UociA9PiBw
YzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IG5lZ290aWF0b3Iuc2V0QW5z
d2VyKHBjMSk7CisgICAgY29uc3QgbmV3VWZyYWdzMSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNj
cmlwdGlvbik7CisgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMobmV3VWZyYWdzMVswXSwgb2xkVWZy
YWdzMVswXSwgIlVuY2hhbmdlZCAxIik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5l
d1VmcmFnczFbMV0sIG9sZFVmcmFnczFbMV0sICJSZXN0YXJ0ZWQgMiIpOworICAgIGF3YWl0IG5l
Z290aWF0aW9uTmVlZGVkUHJvbWlzZTsKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldE9mZmVyKHBj
MSk7CisgICAgY29uc3QgbmV3ZXN0VWZyYWdzMSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlw
dGlvbik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld2VzdFVmcmFnczFbMF0sIG9s
ZFVmcmFnczFbMF0sICJSZXN0YXJ0ZWQgMSIpOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFs
cyhuZXdlc3RVZnJhZ3MxWzFdLCBvbGRVZnJhZ3MxWzFdLCAiUmVzdGFydGVkIDIiKTsKKyAgICBh
d2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CisgIH0sIGByZXN0YXJ0SWNl
KCkgc3Vydml2ZXMgcmVtb3RlIG9mZmVyIGNvbnRhaW5pbmcgcGFydGlhbCByZXN0YXJ0JHt0YWd9
YCk7CiAKLSAgcGMxLnJlc3RhcnRJY2UoKTsKLSAgcGMyLnJlc3RhcnRJY2UoKTsKLSAgYXdhaXQg
bmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBl
eGNoYW5nZU9mZmVyQW5zd2VyRW5kT25TZWNvbmQocGMyLCBwYzEpOwotICBjb25zdCBbbmV3VWZy
YWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtuZXdVZnJh
ZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAgYXNzZXJ0X3VmcmFnc19u
b3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7Ci0gIGFz
c2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hh
bmdlZCIpOwotICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci0KLSAg
YXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwotICBhc3NlcnRf
dWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBuZXdVZnJh
ZzEsICJVbmNoYW5nZWQgMSIpOwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMy
LmxvY2FsRGVzY3JpcHRpb24pWzBdLCBuZXdVZnJhZzIsICJVbmNoYW5nZWQgMiIpOwotICBhd2Fp
dCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIGlz
IHNhdGlzZmllZCBieSByZW1vdGUgSUNFIHJlc3RhcnQiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewotICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMx
LmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEu
YWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9u
bmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9u
Rmlyc3QocGMxLCBwYzIpOwotCi0gIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5s
b2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxv
Y2FsRGVzY3JpcHRpb24pOwotCi0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IG5ldyBQcm9t
aXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgcGMxLnNldExv
Y2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtpY2VSZXN0YXJ0OiBmYWxzZX0p
KTsKLSAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9u
KTsKLSAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dl
cigpKTsKLSAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0
aW9uKTsKLSAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRp
b24pOwotICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlv
bik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVm
cmFnIDEgY2hhbmdlZCIpOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBv
bGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlv
bk5lZWRlZCh0LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSB0cnVtcHMge2ljZVJlc3RhcnQ6IGZh
bHNlfSIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKLSAg
YXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBh
d2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0KLSAgY29uc3Qg
W29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBb
b2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0KLSAgcGMxLnJl
c3RhcnRJY2UoKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5l
ZWRlZCA9IHIpOwotICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3Jl
YXRlT2ZmZXIoKSk7Ci0gIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9Ci0gICAgICBu
ZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IHBj
MS5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAicm9sbGJhY2sifSk7Ci0gIGF3YWl0IG5lZ290
aWF0aW9uTmVlZGVkUHJvbWlzZTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmly
c3QocGMxLCBwYzIpOwotICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxE
ZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERl
c2NyaXB0aW9uKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZy
YWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdV
ZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOwotICBhd2FpdCBhc3NlcnROb05l
Z290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIHN1cnZpdmVzIHJvbGxi
YWNrIik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKHtidW5kbGVQb2xpY3k6ICJtYXgtY29tcGF0In0pOwotICBjb25zdCBw
YzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe2J1bmRsZVBvbGljeTogIm1heC1jb21wYXQifSk7
Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0gIHBj
MS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEu
b25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5k
T25GaXJzdChwYzEsIHBjMik7Ci0KLSAgY29uc3Qgb2xkVWZyYWdzMSA9IGdldFVmcmFncyhwYzEu
bG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IG9sZFVmcmFnczIgPSBnZXRVZnJhZ3MocGMyLmxv
Y2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBvbGRQd2RzMiA9IGdldFB3ZHMocGMyLmxvY2FsRGVz
Y3JpcHRpb24pOwotCi0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIg
PT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLQotICAvLyBFbmdpbmVlciBhIHBhcnRp
YWwgSUNFIHJlc3RhcnQgZnJvbSBwYzIKLSAgcGMyLnJlc3RhcnRJY2UoKTsKLSAgYXdhaXQgcGMy
LnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCkpOwotICB7Ci0gICAg
bGV0IHt0eXBlLCBzZHB9ID0gcGMyLmxvY2FsRGVzY3JpcHRpb247Ci0gICAgLy8gUmVzdG9yZSBi
b3RoIG9sZCBpY2UtdWZyYWcgYW5kIG9sZCBpY2UtcHdkIHRvIHRyaWdnZXIgYSBwYXJ0aWFsIHJl
c3RhcnQKLSAgICBzZHAgPSBzZHAucmVwbGFjZShnZXRVZnJhZ3Moe3NkcH0pWzBdLCBvbGRVZnJh
Z3MyWzBdKTsKLSAgICBzZHAgPSBzZHAucmVwbGFjZShnZXRQd2RzKHtzZHB9KVswXSwgb2xkUHdk
czJbMF0pOwotICAgIGNvbnN0IG5ld1VmcmFnczIgPSBnZXRVZnJhZ3Moe3NkcH0pOwotICAgIGNv
bnN0IG5ld1B3ZHMyID0gZ2V0UHdkcyh7c2RwfSk7Ci0gICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMo
bmV3VWZyYWdzMlswXSwgb2xkVWZyYWdzMlswXSwgImNvbnRyb2wgdWZyYWcgbWF0Y2giKTsKLSAg
ICBhc3NlcnRfdWZyYWdzX2VxdWFscyhuZXdQd2RzMlswXSwgb2xkUHdkczJbMF0sICJjb250cm9s
IHB3ZCBtYXRjaCIpOwotICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZ3MyWzFd
LCBvbGRVZnJhZ3MyWzFdLCAiY29udHJvbCB1ZnJhZyBub24tbWF0Y2giKTsKLSAgICBhc3NlcnRf
dWZyYWdzX25vdF9lcXVhbHMobmV3UHdkczJbMV0sIG9sZFB3ZHMyWzFdLCAiY29udHJvbCBwd2Qg
bm9uLW1hdGNoIik7Ci0gICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlLCBz
ZHB9KTsKLSAgfQotICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQotICAgICAgbmV3
IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBwYzEu
c2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlQW5zd2VyKCkpOwotICBjb25zdCBu
ZXdVZnJhZ3MxID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgYXNzZXJ0X3Vm
cmFnc19lcXVhbHMobmV3VWZyYWdzMVswXSwgb2xkVWZyYWdzMVswXSwgIlVuY2hhbmdlZCAxIik7
Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZ3MxWzFdLCBvbGRVZnJhZ3MxWzFd
LCAiUmVzdGFydGVkIDIiKTsKLSAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOwotICBh
d2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7Ci0g
IGNvbnN0IG5ld2VzdFVmcmFnczEgPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwot
ICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3ZXN0VWZyYWdzMVswXSwgb2xkVWZyYWdzMVsw
XSwgIlJlc3RhcnRlZCAxIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdlc3RVZnJh
Z3MxWzFdLCBvbGRVZnJhZ3MxWzFdLCAiUmVzdGFydGVkIDIiKTsKLSAgYXdhaXQgYXNzZXJ0Tm9O
ZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByZW1v
dGUgb2ZmZXIgY29udGFpbmluZyBwYXJ0aWFsIHJlc3RhcnQiKTsKK30KIAogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLWFuc3dlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLWFuc3dlci1leHBlY3RlZC50
eHQKaW5kZXggZjc5MzhhNTRmMWUzZDBhNGExYjk1ZjYxNjE1ZTUwOTJjZDhkOGFjMi4uZDU2YWE5
YmEyNGRmOGUyNmFmNTliMTExMDI0MWQxOTFlZDhjNTVkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tc2V0TG9jYWxEZXNjcmlwdGlvbi1hbnN3ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXNldExvY2FsRGVzY3JpcHRpb24tYW5zd2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcg
QEAKIAogUEFTUyBzZXRMb2NhbERlc2NyaXB0aW9uKCkgd2l0aCB2YWxpZCBhbnN3ZXIgc2hvdWxk
IHN1Y2NlZWQKIEZBSUwgc2V0TG9jYWxEZXNjcmlwdGlvbigpIHdpdGggdHlwZSBhbnN3ZXIgYW5k
IG51bGwgc2RwIHNob3VsZCB1c2UgbGFzdEFuc3dlciBnZW5lcmF0ZWQgZnJvbSBjcmVhdGVBbnN3
ZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
T3BlcmF0aW9uRXJyb3I6IEV4cGVjdCBsaW5lOiB2PSIKLUZBSUwgc2V0TG9jYWxEZXNjcmlwdGlv
bigpIHdpdGggYW5zd2VyIG5vdCBjcmVhdGVkIGJ5IG93biBjcmVhdGVBbnN3ZXIoKSBzaG91bGQg
cmVqZWN0IHdpdGggSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIHByb21pc2VfcmVqZWN0c19kb206
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJPcGVyYXRp
b25FcnJvcjogRmFpbGVkIHRvIHNldCBsb2NhbCBhbnN3ZXIgc2RwOiBGYWlsZWQgdG8gYXBwbHkg
dGhlIGRlc2NyaXB0aW9uIGZvciBtPSBzZWN0aW9uIHdpdGggbWlkPScwJzogTG9jYWwgZmluZ2Vy
cHJpbnQgZG9lcyBub3QgbWF0Y2ggaWRlbnRpdHkuIEV4cGVjdGVkOiBzaGEtMjU2IEIwOjFCOjQz
Ojg3OjhBOkM1OjAxOkFEOjVDOjE1Ojc5OjVCOkExOjk0OjQyOjUzOjE0OkY0OjNEOjJBOkJBOjM3
OkQxOjVCOjQ1OjlDOjJGOkY5OjNFOjlEOjEzOjBCIEdvdDogc2hhLTI1NiBGQjo2RTpDRTo3Qzox
NDpGRTpDMTo1Mzo2QTo5NTpFQjowRTo5Rjo3MTo3OTo0NjpGMTo2Nzo0Mjo5MDo5NzpDRDpDMTo0
MTo1RTo3RTpDODpCQjpDNzo0NDozMDo4NiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52
YWxpZE1vZGlmaWNhdGlvbkVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMCwgZXhw
ZWN0ZWQgMTMKK0ZBSUwgc2V0TG9jYWxEZXNjcmlwdGlvbigpIHdpdGggYW5zd2VyIG5vdCBjcmVh
dGVkIGJ5IG93biBjcmVhdGVBbnN3ZXIoKSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZE1vZGlm
aWNhdGlvbkVycm9yIHByb21pc2VfcmVqZWN0c19kb206IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJPcGVyYXRpb25FcnJvcjogRmFpbGVkIHRvIHNldCBs
b2NhbCBhbnN3ZXIgc2RwOiBGYWlsZWQgdG8gYXBwbHkgdGhlIGRlc2NyaXB0aW9uIGZvciBtPSBz
ZWN0aW9uIHdpdGggbWlkPScwJzogTG9jYWwgZmluZ2VycHJpbnQgZG9lcyBub3QgbWF0Y2ggaWRl
bnRpdHkuIEV4cGVjdGVkOiBzaGEtMjU2IEFDOjkyOkE4OjQzOjg1OjQ2OjY3OjBDOjE1OkZBOjdF
OkEyOkUzOkNDOjExOjkzOkVBOjdFOjRFOjc3OjBFOkMxOkQ4OkZGOkE3OjZBOjA1OjhFOjNDOjUw
OjQwOkMyIEdvdDogc2hhLTI1NiA4MjpEQjo1QzowRTo3MDo3RTpEOTo1RDpCQTpBMDoxODpBMTo3
MTpGMTo5Qzo2MjpGNDo0NTpCNjoyRjozQjo2OTozNzoyRDo4OTozRDozQzpFRDo3OTowNjpCODow
QSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yOiBw
cm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMCwgZXhwZWN0ZWQgMTMKIEZBSUwgQ2FsbGluZyBz
ZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikgZnJvbSBzdGFibGUgc3RhdGUgc2hvdWxkIHJlamVj
dCB3aXRoIEludmFsaWRNb2RpZmljYXRpb25FcnJvciBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiSW52YWxpZFN0YXRl
RXJyb3I6IEZhaWxlZCB0byBzZXQgbG9jYWwgYW5zd2VyIHNkcDogbm8gcGVuZGluZyByZW1vdGUg
ZGVzY3JpcHRpb24uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkTW9kaWZpY2F0
aW9uRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAxMSwgZXhwZWN0ZWQgMTMKIEZB
SUwgQ2FsbGluZyBzZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikgZnJvbSBoYXZlLWxvY2FsLW9m
ZmVyIHN0YXRlIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IgcHJv
bWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJl
dyBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBGYWlsZWQgdG8gc2V0IGxvY2FsIGFuc3dlciBz
ZHA6IG5vIHBlbmRpbmcgcmVtb3RlIGRlc2NyaXB0aW9uLiIgdGhhdCBpcyBub3QgYSBET01FeGNl
cHRpb24gSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwg
dG8gMTEsIGV4cGVjdGVkIDEzCiBQQVNTIFNldHRpbmcgcHJldmlvdXNseSBnZW5lcmF0ZWQgYW5z
d2VyIGFmdGVyIGEgY2FsbCB0byBjcmVhdGVPZmZlciBzaG91bGQgd29yawpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1vZmZlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLW9mZmVyLWV4cGVjdGVkLnR4dAppbmRleCA2OWIx
MTkxYjBjN2RiZTJmY2I5YTYyNTNiY2M5NjQ3YjQ3ODU2NTlkLi42OGRiMjY2NmM0ZDRhYjFkNDQw
ZjZmNTUwOWMzMjFkMDcxNDdmNzlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERl
c2NyaXB0aW9uLW9mZmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERl
c2NyaXB0aW9uLW9mZmVyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBzZXRM
b2NhbERlc2NyaXB0aW9uIHdpdGggdmFsaWQgb2ZmZXIgc2hvdWxkIHN1Y2NlZWQKIEZBSUwgc2V0
TG9jYWxEZXNjcmlwdGlvbiB3aXRoIHR5cGUgb2ZmZXIgYW5kIG51bGwgc2RwIHNob3VsZCB1c2Ug
bGFzdE9mZmVyIGdlbmVyYXRlZCBmcm9tIGNyZWF0ZU9mZmVyIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIk9wZXJhdGlvbkVycm9yOiBFeHBlY3Qg
bGluZTogdj0iCi1GQUlMIHNldExvY2FsRGVzY3JpcHRpb24oKSB3aXRoIG9mZmVyIG5vdCBjcmVh
dGVkIGJ5IG93biBjcmVhdGVPZmZlcigpIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3IgcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsg
dGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIk9wZXJhdGlvbkVycm9yOiBGYWlsZWQgdG8gc2V0IGxv
Y2FsIG9mZmVyIHNkcDogRmFpbGVkIHRvIGFwcGx5IHRoZSBkZXNjcmlwdGlvbiBmb3IgbT0gc2Vj
dGlvbiB3aXRoIG1pZD0nMCc6IExvY2FsIGZpbmdlcnByaW50IGRvZXMgbm90IG1hdGNoIGlkZW50
aXR5LiBFeHBlY3RlZDogc2hhLTI1NiA4ODo0MzpCMjo5NTo0OTpERTpDMjpBNzo3Nzo1RTpFQzoy
Mjo2RjpENDozRTpCNjpENDpGRDo5NjoyNDoyQjo3Nzo2RjoxODo4NTo0QjpGODo4QTpCQzozMjo0
NjoyRiBHb3Q6IHNoYS0yNTYgMTQ6REM6Mjc6N0E6MDA6NzM6ODM6ODU6MjE6OEI6MkE6ODE6OEY6
Rjk6MDQ6MDE6RDM6MzE6NTQ6Njg6N0Q6MzU6OUM6NkE6QTI6Rjk6MUQ6MEI6NEM6OEU6OTA6MkQi
IHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRNb2RpZmljYXRpb25FcnJvcjogcHJv
cGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVjdGVkIDEzCitGQUlMIHNldExvY2FsRGVz
Y3JpcHRpb24oKSB3aXRoIG9mZmVyIG5vdCBjcmVhdGVkIGJ5IG93biBjcmVhdGVPZmZlcigpIHNo
b3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IgcHJvbWlzZV9yZWplY3Rz
X2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIk9w
ZXJhdGlvbkVycm9yOiBGYWlsZWQgdG8gc2V0IGxvY2FsIG9mZmVyIHNkcDogRmFpbGVkIHRvIGFw
cGx5IHRoZSBkZXNjcmlwdGlvbiBmb3IgbT0gc2VjdGlvbiB3aXRoIG1pZD0nMCc6IExvY2FsIGZp
bmdlcnByaW50IGRvZXMgbm90IG1hdGNoIGlkZW50aXR5LiBFeHBlY3RlZDogc2hhLTI1NiA2MTpD
MTpBNDpENjoxNzo2QTo1QjpBQzo3MTo3NDpGNzo0MDozQzo2QjozMTpEMjo0RDo1RTo3RDpBNDpC
Mzo2Qjo5OTozNTo3MTo4NToxMjpFNToxODpBMjo2QTo0NyBHb3Q6IHNoYS0yNTYgM0Q6RkE6MTI6
NzQ6MkM6RTg6QkU6NjM6N0U6QzM6REU6QTk6Q0Q6Nzc6MzY6NEQ6QTI6Q0Y6NEI6NEY6N0E6RUM6
NUI6NTE6MTI6ODE6NjM6NTI6MDY6RDY6MjE6NEEiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9u
IEludmFsaWRNb2RpZmljYXRpb25FcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAs
IGV4cGVjdGVkIDEzCiBGQUlMIFNldCBjcmVhdGVkIG9mZmVyIG90aGVyIHRoYW4gbGFzdCBvZmZl
ciBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIGFzc2VydF91bnJl
YWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJs
ZSBjb2RlCiBQQVNTIENyZWF0aW5nIGFuZCBzZXR0aW5nIG9mZmVyIG11bHRpcGxlIHRpbWVzIHNo
b3VsZCBzdWNjZWVkCiBQQVNTIFNldHRpbmcgcHJldmlvdXNseSBnZW5lcmF0ZWQgb2ZmZXIgYWZ0
ZXIgYSBjYWxsIHRvIGNyZWF0ZUFuc3dlciBzaG91bGQgd29yawpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wcmFuc3dlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXByYW5zd2VyLWV4cGVjdGVkLnR4dAppbmRleCAxMDI2
NGViNmU0MTY3N2Y0Y2E5OTQ1NGJmMjg2MzA5YzdmY2FjNjNhLi42OTg2ZTNlMGMxNDg2MzdmYmMw
NzgxN2M2MWVkNjgzMzI2NDhjZWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERl
c2NyaXB0aW9uLXByYW5zd2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2Nh
bERlc2NyaXB0aW9uLXByYW5zd2VyLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAogRkFJ
TCBzZXRMb2NhbERlc2NyaXB0aW9uKHByYW5zd2VyKSBmcm9tIHN0YWJsZSBzdGF0ZSBzaG91bGQg
cmVqZWN0IHdpdGggSW52YWxpZFN0YXRlRXJyb3IgcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIk9wZXJhdGlvbkVycm9y
OiBGYWlsZWQgdG8gc2V0IGxvY2FsIHByYW5zd2VyIHNkcDogQ2FsbGVkIGluIHdyb25nIHN0YXRl
OiBzdGFibGUiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBw
cm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMCwgZXhwZWN0ZWQgMTEKLUZBSUwgc2V0TG9jYWxE
ZXNjcmlwdGlvbihwcmFuc3dlcikgc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBSVENTZXNzaW9uRGVzY3JpcHRpb25dIgor
UEFTUyBzZXRMb2NhbERlc2NyaXB0aW9uKHByYW5zd2VyKSBzaG91bGQgc3VjY2VlZAogUEFTUyBz
ZXRMb2NhbERlc2NyaXB0aW9uKHByYW5zd2VyKSBjYW4gYmUgYXBwbGllZCBtdWx0aXBsZSB0aW1l
cyB3aGlsZSBzdGlsbCBpbiBoYXZlLWxvY2FsLXByYW5zd2VyCiBQQVNTIHNldExvY2FsRGVzY3Jp
cHRpb24oYW5zd2VyKSBmcm9tIGhhdmUtbG9jYWwtcHJhbnN3ZXIgc3RhdGUgc2hvdWxkIHN1Y2Nl
ZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wcmFuc3dl
ci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wcmFuc3dlci5odG1sCmlu
ZGV4IGU0Mjk2YWVmMTM5ZjE5ZDA4MjI5Yzk0NTBmNjFjMzA3MDYxNDdkMjQuLjAxODQ1ZjA5YjE2
Y2UxZmYwMzc0N2YwMzlkZWU1ZGU4OWIxOWE1YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNl
dExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2Nh
bERlc2NyaXB0aW9uLXByYW5zd2VyLmh0bWwKQEAgLTEwMyw3ICsxMDMsNiBAQAogICAgICAgICAg
IGFzc2VydF9zZXNzaW9uX2Rlc2Nfc2ltaWxhcihwYy5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiwg
cHJhbnN3ZXIpOwogICAgICAgICAgIGFzc2VydF9lcXVhbHMocGMuY3VycmVudExvY2FsRGVzY3Jp
cHRpb24sIG51bGwpOwogCi0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5wZW5kaW5nUmVtb3Rl
RGVzY3JpcHRpb24sIG51bGwpOwogCiAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzdGF0
ZXMsIFsnaGF2ZS1yZW1vdGUtb2ZmZXInLCAnaGF2ZS1sb2NhbC1wcmFuc3dlciddKTsKICAgICAg
ICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi10cmFj
a3MuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24t
dHJhY2tzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzZjYzZmZWUzMGJkYTkzMWY4
NzNmODJkNTRkNTU5NTkzMmEwYWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0
UmVtb3RlRGVzY3JpcHRpb24tdHJhY2tzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2
IEBACisKK1BBU1MgYWRkVHJhY2soKSB3aXRoIGEgdHJhY2sgYW5kIG5vIHN0cmVhbSBtYWtlcyBv
bnRyYWNrIGZpcmUgd2l0aCBhIHRyYWNrIGFuZCBubyBzdHJlYW0uCitQQVNTIGFkZFRyYWNrKCkg
d2l0aCBhIHRyYWNrIGFuZCBhIHN0cmVhbSBtYWtlcyBvbnRyYWNrIGZpcmUgd2l0aCBhIHRyYWNr
IGFuZCBhIHN0cmVhbS4KK1BBU1Mgb250cmFjayBmaXJlcyBiZWZvcmUgc2V0UmVtb3RlRGVzY3Jp
cHRpb24gcmVzb2x2ZXMuCitQQVNTIGFkZFRyYWNrKCkgd2l0aCB0d28gdHJhY2tzIGFuZCBvbmUg
c3RyZWFtIG1ha2VzIG9udHJhY2sgZmlyZSB0d2ljZSB3aXRoIHRoZSB0cmFja3MgYW5kIHNoYXJl
ZCBzdHJlYW0uCitQQVNTIGFkZFRyYWNrKCkgZm9yIGFuIGV4aXN0aW5nIHN0cmVhbSBtYWtlcyBz
dHJlYW0ub25hZGR0cmFjayBmaXJlLgorUEFTUyBzdHJlYW0ub25hZGR0cmFjayBmaXJlcyBiZWZv
cmUgc2V0UmVtb3RlRGVzY3JpcHRpb24gcmVzb2x2ZXMuCitQQVNTIGFkZFRyYWNrKCkgd2l0aCBh
IHRyYWNrIGFuZCB0d28gc3RyZWFtcyBtYWtlcyBvbnRyYWNrIGZpcmUgd2l0aCBhIHRyYWNrIGFu
ZCB0d28gc3RyZWFtcy4KK1BBU1Mgb250cmFjaydzIHJlY2VpdmVyIG1hdGNoZXMgZ2V0UmVjZWl2
ZXJzKCkuCitQQVNTIHJlbW92ZVRyYWNrKCkgZG9lcyBub3QgcmVtb3ZlIHRoZSByZWNlaXZlci4K
K1BBU1MgcmVtb3ZlVHJhY2soKSBtYWtlcyBzdHJlYW0ub25yZW1vdmV0cmFjayBmaXJlIGFuZCB0
aGUgdHJhY2sgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBzdHJlYW0uCitQQVNTIHN0cmVhbS5vbnJl
bW92ZXRyYWNrIGZpcmVzIGJlZm9yZSBzZXRSZW1vdGVEZXNjcmlwdGlvbiByZXNvbHZlcy4KK1BB
U1MgcmVtb3ZlVHJhY2soKSBtYWtlcyB0cmFjay5vbm11dGUgZmlyZSBhbmQgdGhlIHRyYWNrIHRv
IGJlIG11dGVkLgorUEFTUyB0cmFjay5vbm11dGUgZmlyZXMgYmVmb3JlIHNldFJlbW90ZURlc2Ny
aXB0aW9uIHJlc29sdmVzLgorUEFTUyByZW1vdmVUcmFjaygpIHR3aWNlIGlzIHNhZmUuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0
cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMDc2NTc4MjViZDgyMWFlOGRmNWZjYTAzYjAyZmU1MzllYjdiNzA2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwUGFyYW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorCitGQUlMIHNldFBhcmFtZXRlcnMgd2l0aCBkZWdyYWRhdGlvblByZWZlcmVu
Y2Ugc2V0IHNob3VsZCBzdWNjZWVkIGFzc2VydF9ub3RfZXF1YWxzOiBFeHBlY3Qgc2VuZGVyIHBh
cmFtLnJ0Y3AuY25hbWUgdG8gYmUgc2V0IGdvdCBkaXNhbGxvd2VkIHZhbHVlIHVuZGVmaW5lZAor
RkFJTCBzZXRQYXJhbWV0ZXJzIHdpdGggZGVncmFkYXRpb25QcmVmZXJlbmNlIHVuc2V0IHNob3Vs
ZCBzdWNjZWVkIGFzc2VydF9ub3RfZXF1YWxzOiBFeHBlY3Qgc2VuZGVyIHBhcmFtLnJ0Y3AuY25h
bWUgdG8gYmUgc2V0IGdvdCBkaXNhbGxvd2VkIHZhbHVlIHVuZGVmaW5lZAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBQYXJhbWV0ZXJzLWRlZ3JhZGF0aW9uUHJlZmVyZW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdy
YWRhdGlvblByZWZlcmVuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMmM5MmJjMWMwODE0ZjI5NGUxYjkx
NTNmZWJjNzY4ODZjZjJmZGI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdyYWRh
dGlvblByZWZlcmVuY2UuaHRtbApAQCAtMCwwICsxLDg3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUnRwUGFyYW1ldGVycyBkZWdyYWRhdGlvblBy
ZWZlcmVuY2U8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImRpY3Rpb25hcnktaGVscGVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJSVENSdHBQYXJhbWV0ZXJzLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93
aW5nIGVkaXRvciBkcmFmdDoKKyAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9h
cmNoaXZlcy8yMDE3MDYwNS93ZWJydGMuaHRtbAorCisgIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVy
IGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20gUlRDUnRwUGFyYW1ldGVycy1oZWxwZXIuanM6Cisg
IC8vICAgdmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzCisKKyAgLyoKKyAgICA1LjIuICBSVENS
dHBTZW5kZXIgSW50ZXJmYWNlCisgICAgICBpbnRlcmZhY2UgUlRDUnRwU2VuZGVyIHsKKyAgICAg
ICAgUHJvbWlzZTx2b2lkPiAgICAgICAgICAgc2V0UGFyYW1ldGVycyhvcHRpb25hbCBSVENSdHBQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnMpOworICAgICAgICBSVENSdHBQYXJhbWV0ZXJzICAgICAgICBn
ZXRQYXJhbWV0ZXJzKCk7CisgICAgICB9OworCisgICAgICBkaWN0aW9uYXJ5IFJUQ1J0cFBhcmFt
ZXRlcnMgeworICAgICAgICBET01TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0cmFuc2FjdGlvbklkOworICAgICAgICBzZXF1ZW5jZTxSVENSdHBFbmNvZGluZ1BhcmFtZXRl
cnM+ICAgICAgICBlbmNvZGluZ3M7CisgICAgICAgIHNlcXVlbmNlPFJUQ1J0cEhlYWRlckV4dGVu
c2lvblBhcmFtZXRlcnM+IGhlYWRlckV4dGVuc2lvbnM7CisgICAgICAgIFJUQ1J0Y3BQYXJhbWV0
ZXJzICAgICAgICAgICAgICAgICAgICAgICAgIHJ0Y3A7CisgICAgICAgIHNlcXVlbmNlPFJUQ1J0
cENvZGVjUGFyYW1ldGVycz4gICAgICAgICAgIGNvZGVjczsKKyAgICAgICAgUlRDRGVncmFkYXRp
b25QcmVmZXJlbmNlICAgICAgICAgICAgICAgICAgZGVncmFkYXRpb25QcmVmZXJlbmNlOworICAg
ICAgfTsKKworICAgICAgZW51bSBSVENEZWdyYWRhdGlvblByZWZlcmVuY2UgeworICAgICAgICAi
bWFpbnRhaW4tZnJhbWVyYXRlIiwKKyAgICAgICAgIm1haW50YWluLXJlc29sdXRpb24iLAorICAg
ICAgICAiYmFsYW5jZWQiCisgICAgICB9OworCisgICAgICAtIGRlZ3JhZGF0aW9uUHJlZmVyZW5j
ZSBpcyBzZXQgdG8gdGhlIGxhc3QgdmFsdWUgcGFzc2VkIGludG8gc2V0UGFyYW1ldGVycywKKyAg
ICAgICAgb3IgdGhlIGRlZmF1bHQgdmFsdWUgb2YgImJhbGFuY2VkIiBpZiBzZXRQYXJhbWV0ZXJz
IGhhc24ndCBiZWVuIGNhbGxlZC4KKyAgICovCisKKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCB7IHNlbmRlciB9ID0gcGMuYWRkVHJhbnNjZWl2
ZXIoJ2F1ZGlvJyk7CisKKyAgICBjb25zdCBwYXJhbSA9IHNlbmRlci5nZXRQYXJhbWV0ZXJzKCk7
CisgICAgdmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKTsKKworICAgIGFzc2VydF9l
cXVhbHMocGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNlLCAnYmFsYW5jZWQnLAorICAgICAgJ0V4
cGVjdCBpbml0aWFsIHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSB0byBiZSBiYWxhbmNlZCcp
OworCisgICAgcGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNlID0gJ21haW50YWluLWZyYW1lcmF0
ZSc7CisKKyAgICByZXR1cm4gcGMuc2V0UGFyYW1ldGVycyhwYXJhbSkKKyAgICAudGhlbigoKSA9
PiB7CisgICAgICBjb25zdCBwYXJhbSA9IHNlbmRlci5nZXRQYXJhbWV0ZXJzKCk7CisgICAgICB2
YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0pOworCisgICAgICBhc3NlcnRfZXF1YWxz
KHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSwgJ21haW50YWluLWZyYW1lcmF0ZScpOworICAg
IH0pOworICB9LCAnc2V0UGFyYW1ldGVycyB3aXRoIGRlZ3JhZGF0aW9uUHJlZmVyZW5jZSBzZXQg
c2hvdWxkIHN1Y2NlZWQnKTsKKworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNs
b3NlKCkpOworICAgIGNvbnN0IHsgc2VuZGVyIH0gPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8n
KTsKKworICAgIGNvbnN0IHBhcmFtID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKKyAgICB2YWxp
ZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0pOworCisgICAgYXNzZXJ0X2VxdWFscyhwYXJh
bS5kZWdyYWRhdGlvblByZWZlcmVuY2UsICdiYWxhbmNlZCcsCisgICAgICAnRXhwZWN0IGluaXRp
YWwgcGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNlIHRvIGJlIGJhbGFuY2VkJyk7CisKKyAgICBw
YXJhbS5kZWdyYWRhdGlvblByZWZlcmVuY2UgPSB1bmRlZmluZWQ7CisKKyAgICByZXR1cm4gcGMu
c2V0UGFyYW1ldGVycyhwYXJhbSkKKyAgICAudGhlbigoKSA9PiB7CisgICAgICBjb25zdCBwYXJh
bSA9IHNlbmRlci5nZXRQYXJhbWV0ZXJzKCk7CisgICAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFt
ZXRlcnMocGFyYW0pOworCisgICAgICBhc3NlcnRfZXF1YWxzKHBhcmFtLmRlZ3JhZGF0aW9uUHJl
ZmVyZW5jZSwgdW5kZWZpbmVkKTsKKyAgICB9KTsKKyAgfSwgJ3NldFBhcmFtZXRlcnMgd2l0aCBk
ZWdyYWRhdGlvblByZWZlcmVuY2UgdW5zZXQgc2hvdWxkIHN1Y2NlZWQnKTsKKworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXREaXJlY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJh
bnNjZWl2ZXItc2V0RGlyZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTc5YzVhNmUx
NjAyMzFkYmU1NTQyNjQzNTI1ODQwN2RjODgyZWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNj
ZWl2ZXItc2V0RGlyZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworRkFJTCBz
ZXREaXJlY3Rpb24gc2hvdWxkIGNoYW5nZSB0cmFuc2NlaXZlci5kaXJlY3Rpb24gdHJhbnNjZWl2
ZXIuc2V0RGlyZWN0aW9uIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RyYW5zY2VpdmVyLnNldERp
cmVjdGlvbigncmVjdm9ubHknKScsICd0cmFuc2NlaXZlci5zZXREaXJlY3Rpb24nIGlzIHVuZGVm
aW5lZCkKK0ZBSUwgc2V0RGlyZWN0aW9uIHdpdGggc2FtZSBkaXJlY3Rpb24gc2hvdWxkIGhhdmUg
bm8gZWZmZWN0IHRyYW5zY2VpdmVyLnNldERpcmVjdGlvbiBpcyBub3QgYSBmdW5jdGlvbi4gKElu
ICd0cmFuc2NlaXZlci5zZXREaXJlY3Rpb24oJ3NlbmRvbmx5JyknLCAndHJhbnNjZWl2ZXIuc2V0
RGlyZWN0aW9uJyBpcyB1bmRlZmluZWQpCitGQUlMIHNldERpcmVjdGlvbiBzaG91bGQgY2hhbmdl
IHRyYW5zY2VpdmVyLmRpcmVjdGlvbiBpbmRlcGVuZGVudCBvZiB0cmFuc2NlaXZlci5jdXJyZW50
RGlyZWN0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJyZWN2b25seSIgYnV0IGdvdCAiaW5h
Y3RpdmUiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldERpcmVjdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJh
bnNjZWl2ZXItc2V0RGlyZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJjYmZmNWQ5ODU4Njg0MGFi
OWMzN2ExZTFlMDVmMjYyNTYwODQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNl
dERpcmVjdGlvbi5odG1sCkBAIC0wLDAgKzEsOTUgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENSdHBUcmFuc2NlaXZlci5wcm90b3R5cGUuc2V0RGly
ZWN0aW9uPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIC8vIFRlc3QgaXMgYmFzZWQgb24g
dGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6CisgIC8vIGh0dHBzOi8vcmF3Z2l0LmNvbS93M2Mv
d2VicnRjLXBjL2NjOGQ4MGY0NTViODZjODA0MWQ2M2JjZWI4YjQ1N2Y0NWM3MmFhODkvd2VicnRj
Lmh0bWwKKworICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBm
cm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKKyAgLy8gZ2VuZXJhdGVBbnN3ZXIKKwor
ICAvKgorICAgIDUuNC4gIFJUQ1J0cFRyYW5zY2VpdmVyIEludGVyZmFjZQorICAgICAgaW50ZXJm
YWNlIFJUQ1J0cFRyYW5zY2VpdmVyIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1J0
cFRyYW5zY2VpdmVyRGlyZWN0aW9uICBkaXJlY3Rpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBSVENSdHBUcmFuc2NlaXZlckRpcmVjdGlvbj8gY3VycmVudERpcmVjdGlvbjsKKyAgICAg
ICAgdm9pZCBzZXREaXJlY3Rpb24oUlRDUnRwVHJhbnNjZWl2ZXJEaXJlY3Rpb24gZGlyZWN0aW9u
KTsKKyAgICAgICAgLi4uCisgICAgICB9OworICAgKi8KKworICAgLyoKKyAgICA1LjQuICBzZXRE
aXJlY3Rpb24KKyAgICAgIDQuICBTZXQgdHJhbnNjZWl2ZXIncyBbW0RpcmVjdGlvbl1dIHNsb3Qg
dG8gbmV3RGlyZWN0aW9uLgorICAgKi8KKyAgdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJh
bnNjZWl2ZXIoJ2F1ZGlvJyk7CisgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rp
b24sICdzZW5kcmVjdicpOworICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERp
cmVjdGlvbiwgbnVsbCk7CisKKyAgICB0cmFuc2NlaXZlci5zZXREaXJlY3Rpb24oJ3JlY3Zvbmx5
Jyk7CisgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdyZWN2b25seScp
OworICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgbnVsbCwK
KyAgICAgICdFeHBlY3QgdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiB0byBub3QgY2hhbmdl
Jyk7CisKKyAgfSwgJ3NldERpcmVjdGlvbiBzaG91bGQgY2hhbmdlIHRyYW5zY2VpdmVyLmRpcmVj
dGlvbicpOworCisgICAvKgorICAgIDUuNC4gIHNldERpcmVjdGlvbgorICAgICAgMy4gIElmIG5l
d0RpcmVjdGlvbiBpcyBlcXVhbCB0byB0cmFuc2NlaXZlcidzIFtbRGlyZWN0aW9uXV0gc2xvdCwg
YWJvcnQKKyAgICAgICAgICB0aGVzZSBzdGVwcy4KKyAgICovCisgIHRlc3QodCA9PiB7CisgICAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCB0cmFuc2NlaXZl
ciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycsIHsgZGlyZWN0aW9uOiAnc2VuZG9ubHknIH0p
OworICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZG9ubHknKTsK
KyAgICB0cmFuc2NlaXZlci5zZXREaXJlY3Rpb24oJ3NlbmRvbmx5Jyk7CisgICAgYXNzZXJ0X2Vx
dWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdzZW5kb25seScpOworCisgIH0sICdzZXREaXJl
Y3Rpb24gd2l0aCBzYW1lIGRpcmVjdGlvbiBzaG91bGQgaGF2ZSBubyBlZmZlY3QnKTsKKworICBw
cm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0IHRyYW5z
Y2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywgeyBkaXJlY3Rpb246ICdyZWN2b25s
eScgfSk7CisgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdyZWN2b25s
eScpOworICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgbnVs
bCk7CisKKyAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIoKQorICAgIC50aGVuKG9mZmVyID0+Cisg
ICAgICBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKQorICAgICAgLnRoZW4oKCkgPT4gZ2Vu
ZXJhdGVBbnN3ZXIob2ZmZXIpKSkKKyAgICAudGhlbihhbnN3ZXIgPT4gcGMuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oYW5zd2VyKSkKKyAgICAudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxz
KHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24sICdyZWN2b25seScpOworICAgICAgdHJhbnNj
ZWl2ZXIuc2V0RGlyZWN0aW9uKCdzZW5kcmVjdicpOworICAgICAgYXNzZXJ0X2VxdWFscyh0cmFu
c2NlaXZlci5kaXJlY3Rpb24sICdzZW5kcmVjdicpOworICAgICAgYXNzZXJ0X2VxdWFscyh0cmFu
c2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAncmVjdm9ubHknKTsKKyAgICB9KTsKKyAgfSwgJ3Nl
dERpcmVjdGlvbiBzaG91bGQgY2hhbmdlIHRyYW5zY2VpdmVyLmRpcmVjdGlvbiBpbmRlcGVuZGVu
dCBvZiB0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uJyk7CisKKyAgLyoKKyAgICBUT0RPCisg
ICAgICAgIENhbGxzIHRvIHNldERpcmVjdGlvbigpIGRvIG5vdCB0YWtlIGVmZmVjdCBpbW1lZGlh
dGVseS4gSW5zdGVhZCwgZnV0dXJlIGNhbGxzCisgICAgICAgIHRvIGNyZWF0ZU9mZmVyIGFuZCBj
cmVhdGVBbnN3ZXIgbWFyayB0aGUgY29ycmVzcG9uZGluZyBtZWRpYSBkZXNjcmlwdGlvbiBhcwor
ICAgICAgICBzZW5kcmVjdiwgc2VuZG9ubHksIHJlY3Zvbmx5IG9yIGluYWN0aXZlIGFzIGRlZmlu
ZWQgaW4gW0pTRVBdIChzZWN0aW9uIDUuMi4yLgorICAgICAgICBhbmQgc2VjdGlvbiA1LjMuMi4p
LgorCisgICAgVGVzdGVkIGluIFJUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQu
aHRtbAorICAgICAgNS40LiAgc2V0RGlyZWN0aW9uCisgICAgICAgIDYuICBVcGRhdGUgdGhlIG5l
Z290aWF0aW9uLW5lZWRlZCBmbGFnIGZvciBjb25uZWN0aW9uLgorCisgICAgQ292ZXJhZ2UgUmVw
b3J0CisgICAgICBUZXN0ZWQgICAgICAgIDYKKyAgICAgIE5vdCBUZXN0ZWQgICAgMQorICAgICAg
VW50ZXN0YWJsZSAgICAwCisgICAgICBUb3RhbCAgICAgICAgIDcKKyAgICovCisKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZl
ci1zdG9wLWV4cGVjdGVkLnR4dAppbmRleCAwZWJiZmU0ZjcyZTI1NzNhODNlM2JjMDBkN2ZhNjc0
MWYzYjcwMmUwLi4wZWJhNjhiNWFlNzg1NjViNzU5NWI0NzM5YTQ5YTU3ZDViNGFjODUyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1z
dG9wLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSwxMSBAQAogCiBQQVNTIEEgdHJhbnNjZWl2ZXIg
YWRkZWQgYW5kIHN0b3BwZWQgYmVmb3JlIHRoZSBpbml0aWFsIG9mZmVyIGdlbmVyYXRpb24gc2hv
dWxkIG5vdCB0cmlnZ2VyIGFuIG9mZmVyIG0tc2VjdGlvbiBnZW5lcmF0aW9uCitQQVNTIEEgdHJh
bnNjZWl2ZXIgYWRkZWQgYW5kIHN0b3BwZWQgc2hvdWxkIG5vdCBjcmFzaCB3aGVuIGdldHRpbmcg
cmVjZWl2ZXIncyB0cmFuc3BvcnQKIFBBU1MgRHVyaW5nIHJlbmVnb3RpYXRpb24sIGFkZGluZyBh
bmQgc3RvcHBpbmcgYSB0cmFuc2NlaXZlciBzaG91bGQgbm90IHRyaWdnZXIgYSByZW5lZ290aWF0
ZWQgb2ZmZXIgbS1zZWN0aW9uIGdlbmVyYXRpb24KIFBBU1MgQSBzdG9wcGVkIHNlbmRvbmx5IHRy
YW5zY2VpdmVyIHNob3VsZCBnZW5lcmF0ZSBhbiBpbmFjdGl2ZSBtLXNlY3Rpb24gaW4gdGhlIG9m
ZmVyCiBQQVNTIEEgc3RvcHBlZCBpbmFjdGl2ZSB0cmFuc2NlaXZlciBzaG91bGQgZ2VuZXJhdGUg
YW4gaW5hY3RpdmUgbS1zZWN0aW9uIGluIHRoZSBvZmZlcgogUEFTUyBJZiBhIHRyYW5zY2VpdmVy
IGlzIHN0b3BwZWQgbG9jYWxseSwgc2V0dGluZyBhIGxvY2FsbHkgZ2VuZXJhdGVkIGFuc3dlciBz
aG91bGQgc3RpbGwgd29yawogUEFTUyBJZiBhIHRyYW5zY2VpdmVyIGlzIHN0b3BwZWQgcmVtb3Rl
bHksIHNldHRpbmcgYSBsb2NhbGx5IGdlbmVyYXRlZCBhbnN3ZXIgc2hvdWxkIHN0aWxsIHdvcmsK
IEZBSUwgSWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVkLCB0cmFuc2NlaXZlcnMsIHNlbmRlcnMg
YW5kIHJlY2VpdmVycyBzaG91bGQgZGlzYXBwZWFyIGFmdGVyIG9mZmVyL2Fuc3dlciBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAwIGJ1dCBnb3QgMQotRkFJTCBJZiBhIHRyYW5zY2VpdmVyIGlzIHN0
b3BwZWQsIHRyYW5zY2VpdmVycyBzaG91bGQgZW5kIHVwIGluIHN0YXRlIHN0b3BwZWQgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgImluYWN0aXZlIiBidXQgZ290ICJzdG9wcGVkIgorRkFJTCBJZiBh
IHRyYW5zY2VpdmVyIGlzIHN0b3BwZWQsIHRyYW5zY2VpdmVycyBzaG91bGQgZW5kIHVwIGluIHN0
YXRlIHN0b3BwZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInN0b3BwZWQiIGJ1dCBnb3QgImlu
YWN0aXZlIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZl
ci1zdG9wLmh0bWwKaW5kZXggNGYzYTljZTg1ZmEyNDRiYzY3MzQ0N2ZhMzg5ZjQ0YmRjMzgxYjIz
MC4uNzY2YjM0ZDdiMTIwZjBlMjE0YWMwMjhjZDFmNWI4MmM5Yzc4MDYyYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
VHJhbnNjZWl2ZXItc3RvcC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AuaHRtbApAQCAtMjEs
NiArMjEsMTggQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KT0+IHsKICAgICBhc3NlcnRfdHJ1ZShv
ZmZlci5zZHAuaW5jbHVkZXMoIm09dmlkZW8iKSwgIm9mZmVyIHNob3VsZCBjb250YWluIGEgdmlk
ZW8gbS1zZWN0aW9uIik7CiB9LCAiQSB0cmFuc2NlaXZlciBhZGRlZCBhbmQgc3RvcHBlZCBiZWZv
cmUgdGhlIGluaXRpYWwgb2ZmZXIgZ2VuZXJhdGlvbiBzaG91bGQgbm90IHRyaWdnZXIgYW4gb2Zm
ZXIgbS1zZWN0aW9uIGdlbmVyYXRpb24iKTsKIAorcHJvbWlzZV90ZXN0KGFzeW5jICh0KT0+IHsK
KyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8i
LCB7IGRpcmVjdGlvbjogInNlbmRvbmx5IiB9KTsKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoInZp
ZGVvIik7CisgICAgYXNzZXJ0X2VxdWFscyhudWxsLCBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMV0u
cmVjZWl2ZXIudHJhbnNwb3J0KTsKKworICAgIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVsxXS5zdG9w
KCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMV0ucmVjZWl2ZXIu
dHJhbnNwb3J0LCBudWxsKTsKK30sICJBIHRyYW5zY2VpdmVyIGFkZGVkIGFuZCBzdG9wcGVkIHNo
b3VsZCBub3QgY3Jhc2ggd2hlbiBnZXR0aW5nIHJlY2VpdmVyJ3MgdHJhbnNwb3J0Iik7CisKIHBy
b21pc2VfdGVzdChhc3luYyAodCk9PiB7CiAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CiAgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CkBAIC0x
MzYsOCArMTQ4LDggQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgIHBjMlRyYW5zY2Vp
dmVyID0gcGMyLmdldFRyYW5zY2VpdmVycygpWzBdOwogICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClb
MF0uc3RvcCgpOwogICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKLSAgYXNz
ZXJ0X2VxdWFscygnc3RvcHBlZCcsIHBjMVRyYW5zY2VpdmVyLmRpcmVjdGlvbik7Ci0gIGFzc2Vy
dF9lcXVhbHMoJ3N0b3BwZWQnLCBwYzJUcmFuc2NlaXZlci5kaXJlY3Rpb24pOworICBhc3NlcnRf
ZXF1YWxzKHBjMVRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3N0b3BwZWQnKTsKKyAgYXNzZXJ0X2Vx
dWFscyhwYzJUcmFuc2NlaXZlci5kaXJlY3Rpb24sICdzdG9wcGVkJyk7CiB9LCAnSWYgYSB0cmFu
c2NlaXZlciBpcyBzdG9wcGVkLCB0cmFuc2NlaXZlcnMgc2hvdWxkIGVuZCB1cCBpbiBzdGF0ZSBz
dG9wcGVkJyk7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwKaW5kZXggYzlkY2U0NWQ3Mzg4NGJjZTc0ZjE2NGJh
MzA2Y2U2N2JjYzczOTIwNS4uNzczMjNiNTAzYWJkN2RjMTJlNTg5NGFiY2UyOGRhNTdhOWI5ZTkx
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5o
dHRwcy5odG1sCkBAIC05MiwxMiArOTIsMTAgQEAKIAogICBjb25zdCB0cmlja2xlID0gKHQsIHBj
MSwgcGMyKSA9PiB7CiAgICAgcGMxLm9uaWNlY2FuZGlkYXRlID0gdC5zdGVwX2Z1bmMoYXN5bmMg
ZSA9PiB7Ci0gICAgICBpZiAoZS5jYW5kaWRhdGUpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICBhd2FpdCBwYzIuYWRkSWNlQ2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsKLSAgICAgICAgfSBjYXRj
aCAoZSkgewotICAgICAgICAgIGFzc2VydF90cnVlKGZhbHNlLCAiYWRkSWNlQ2FuZGlkYXRlIHRo
cmV3IGVycm9yOiAiICsgZS5uYW1lKTsKLSAgICAgICAgfQorICAgICAgdHJ5IHsKKyAgICAgICAg
YXdhaXQgcGMyLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7CisgICAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGFzc2VydF90cnVlKGZhbHNlLCAiYWRkSWNlQ2FuZGlkYXRlIHRocmV3IGVy
cm9yOiAiICsgZS5uYW1lKTsKICAgICAgIH0KICAgICB9KTsKICAgfTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1N0YXRz
LWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1N0YXRzLWhlbHBlci5qcwppbmRleCA4MWFiZTI0NTZlOTRiYjg0ZTRkNTZjOTc4
MWRjMzAyYTUwMjQ5MGU1Li4zM2NiZjRhOTMzYmQzNzU1M2E4NTk1ZTA2OTJmOTcxN2UxNDVlY2M5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENTdGF0cy1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU3RhdHMtaGVscGVyLmpzCkBAIC0yMDcsOCAr
MjA3LDkgQEAgZnVuY3Rpb24gdmFsaWRhdGVDb2RlY1N0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykg
ewogCiAgIGFzc2VydF9zdHJpbmdfZmllbGQoc3RhdHMsICdtaW1lVHlwZScpOwogICBhc3NlcnRf
dW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnY2xvY2tSYXRlJyk7Ci0gIGFzc2VydF91bnNpZ25l
ZF9pbnRfZmllbGQoc3RhdHMsICdjaGFubmVscycpOwotCisgIGlmIChzdGF0cy5raW5kID09PSAn
YXVkaW8nKSB7CisgICAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2NoYW5uZWxz
Jyk7CisgIH0KICAgYXNzZXJ0X3N0cmluZ19maWVsZChzdGF0cywgJ3NkcEZtdHBMaW5lJyk7CiB9
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL2RhdGFjaGFubmVsLWVtcHR5c3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2RhdGFjaGFubmVsLWVt
cHR5c3RyaW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzcy
NjhmNWQxNzJjNjMxNTFiMjFjZWFmMzA5MDdmMTNmZDExNzk2My4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLQotUEFTUyBDYW4gc2VuZCBlbXB0eSBz
dHJpbmdzIGFjcm9zcyBhIFdlYlJUQyBkYXRhIGNoYW5uZWwuCi1NZXNzYWdlcyBleGNoYW5nZWQK
LQotU2VudDogW2VtcHR5IHN0cmluZ10KLVNlbnQ6ICJkb25lIgotUmVjZWl2ZWQ6IFtlbXB0eSBz
dHJpbmddCi1SZWNlaXZlZDogImRvbmUiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2RhdGFjaGFubmVsLWVtcHR5c3RyaW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0NTZiYWM3MzY3ZTZmOTAzNGY4M2JiZWU2OTk4MzEzYjc4OWI4YzBkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2RhdGFjaGFubmVsLWVtcHR5c3RyaW5nLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08IS0t
Ci1UaGlzIHRlc3QgY3JlYXRlcyBhIGRhdGEgY2hhbm5lbCBiZXR3ZWVuIHR3byBsb2NhbCBQZWVy
Q29ubmVjdGlvbiBpbnN0YW5jZXMKLWFuZCBlbnN1cmVzIHRoYXQgYW4gZW1wdHkgc3RyaW5nIHNl
bnQgYnkgb25lIGlzIHJlY2VpdmVkIGJ5IHRoZSBzZWNvbmQuCi0tLT4KLQotPGh0bWw+Ci08aGVh
ZD4KLSAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiPgotICA8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gRGF0YSBDaGFubmVs
IEVtcHR5IFN0cmluZyBUZXN0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotICA8ZGl2IGlkPSJs
b2ciPjwvZGl2PgotICA8aDI+TWVzc2FnZXMgZXhjaGFuZ2VkPC9oMj4KLSAgPGRpdiBpZD0ibXNn
Ij48L2Rpdj4KLQotICA8IS0tIFRoZXNlIGZpbGVzIGFyZSBpbiBwbGFjZSB3aGVuIGV4ZWN1dGlu
ZyBvbiBXM0MuIC0tPgotICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICB2YXIgdGVz
dCA9IGFzeW5jX3Rlc3QoJ0NhbiBzZW5kIGVtcHR5IHN0cmluZ3MgYWNyb3NzIGEgV2ViUlRDIGRh
dGEgY2hhbm5lbC4nKTsKLQotICB2YXIgZ0ZpcnN0Q29ubmVjdGlvbiA9IG51bGw7Ci0gIHZhciBn
U2Vjb25kQ29ubmVjdGlvbiA9IG51bGw7Ci0gIHZhciBzZW5kQ2hhbm5lbCA9IG51bGw7Ci0gIHZh
ciByZWNlaXZlQ2hhbm5lbCA9IG51bGw7Ci0KLSAgdmFyIG9uUmVjZWl2ZUNoYW5uZWwgPSBmdW5j
dGlvbiAoZXZlbnQpIHsKLSAgICByZWNlaXZlQ2hhbm5lbCA9IGV2ZW50LmNoYW5uZWw7Ci0gICAg
cmVjZWl2ZUNoYW5uZWwub25tZXNzYWdlID0gb25SZWNlaXZlTWVzc2FnZTsKLSAgfTsKLQotCi0g
IC8vIFdoZW4gdGhlIGRhdGEgY2hhbm5lbCBpcyBvcGVuLCBzZW5kIGFuIGVtcHR5IHN0cmluZyBt
ZXNzYWdlCi0gIC8vIGZvbGxvd2VkIGJ5IGEgbWVzc2FnZSB0aGF0IGNvbnRhaW5zIHRoZSBzdHJp
bmcgImRvbmUiLgotICB2YXIgb25TZW5kQ2hhbm5lbE9wZW4gPSB0ZXN0LnN0ZXBfZnVuYyhmdW5j
dGlvbiAoZXZlbnQpIHsKLSAgICB2YXIgbXNnRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
bXNnJyk7Ci0gICAgc2VuZENoYW5uZWwuc2VuZCgnJyk7Ci0gICAgbXNnRWwuaW5uZXJIVE1MICs9
ICdTZW50OiBbZW1wdHkgc3RyaW5nXTxicj4nOwotICAgIHNlbmRDaGFubmVsLnNlbmQoJ2RvbmUn
KTsKLSAgICBtc2dFbC5pbm5lckhUTUwgKz0gJ1NlbnQ6ICJkb25lIjxicj4nOwotICB9KTsKLQot
ICAvLyBDaGVjayB0aGUgbWVzc2FnZXMgcmVjZWl2ZWQgb24gdGhlIG90aGVyIHNpZGUuCi0gIC8v
IFRoZXJlIHNob3VsZCBiZSBhbiBlbXB0eSBzdHJpbmcgbWVzc2FnZSBmb2xsb3dlZCBieSBhIG1l
c3NhZ2UgdGhhdAotICAvLyBjb250YWlucyB0aGUgc3RyaW5nICJkb25lIi4KLSAgLy8gUGFzcy9G
YWlsIHRoZSB0ZXN0IGFjY29yZGluZyB0byB0aGUgbWVzc2FnZXMgcmVjZWl2ZWQKLSAgdmFyIGVt
cHR5TWVzc2FnZVJlY2VpdmVkID0gZmFsc2U7Ci0gIHZhciBvblJlY2VpdmVNZXNzYWdlID0gdGVz
dC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgdmFyIG1zZ0VsID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ21zZycpOwotICAgIG1zZ0VsLmlubmVySFRNTCArPSAnUmVjZWl2ZWQ6
ICcgKwotICAgICAgICAoZXZlbnQuZGF0YSA/ICciJyArIGV2ZW50LmRhdGEgKyAnIicgOiAnW2Vt
cHR5IHN0cmluZ10nKSArICc8YnI+JzsKLSAgICBpZiAoZW1wdHlNZXNzYWdlUmVjZWl2ZWQpIHsK
LSAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuZGF0YSwgJ2RvbmUnLCAnVGhlICJkb25lIiBtZXNz
YWdlIHdhcyBub3QgcmVjZWl2ZWQnKTsKLSAgICAgIHRlc3QuZG9uZSgpOwotICAgIH0KLSAgICBl
bHNlIHsKLSAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuZGF0YSwgJycsICdFbXB0eSBtZXNzYWdl
IG5vdCByZWNlaXZlZCcpOwotICAgICAgZW1wdHlNZXNzYWdlUmVjZWl2ZWQgPSB0cnVlOwotICAg
IH0KLSAgfSk7Ci0KLSAgZnVuY3Rpb24gZXhjaGFuZ2VJY2UocGMpIHsKLSAgICAgcmV0dXJuIGZ1
bmN0aW9uKGUpIHsKLSAgICAgICBpZiAoZS5jYW5kaWRhdGUpIHsKLSAgICAgICAgICBwYy5hZGRJ
Y2VDYW5kaWRhdGUoZS5jYW5kaWRhdGUpOwotICAgICAgIH0KLSAgICAgfTsKLSAgfQotCi0gIGZ1
bmN0aW9uIGV4Y2hhbmdlRGVzY3JpcHRpb24ocGMxLCBwYzIpIHsKLSAgICAgcmV0dXJuIGZ1bmN0
aW9uKCkgewotICAgICAgIHJldHVybiBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2Fs
RGVzY3JpcHRpb24pOwotICAgICB9OwotICB9Ci0KLSAgdGVzdC5zdGVwKGZ1bmN0aW9uKCkgewot
ICAgIGdGaXJzdENvbm5lY3Rpb24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7Ci0gICAg
dGVzdC5hZGRfY2xlYW51cCgoKSA9PiBnRmlyc3RDb25uZWN0aW9uLmNsb3NlKCkpOwotCi0gICAg
Z1NlY29uZENvbm5lY3Rpb24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7Ci0gICAgdGVz
dC5hZGRfY2xlYW51cCgoKSA9PiBnU2Vjb25kQ29ubmVjdGlvbi5jbG9zZSgpKTsKLQotICAgIGdG
aXJzdENvbm5lY3Rpb24ub25pY2VjYW5kaWRhdGUgPSBleGNoYW5nZUljZShnU2Vjb25kQ29ubmVj
dGlvbik7Ci0gICAgZ1NlY29uZENvbm5lY3Rpb24ub25pY2VjYW5kaWRhdGUgPSBleGNoYW5nZUlj
ZShnRmlyc3RDb25uZWN0aW9uKTsKLQotICAgIGdTZWNvbmRDb25uZWN0aW9uLm9uZGF0YWNoYW5u
ZWwgPSBvblJlY2VpdmVDaGFubmVsOwotCi0gICAgLy8gTm90ZSB0aGUgZGF0YSBjaGFubmVsIHdp
bGwgcHJlc2VydmUgdGhlIG9yZGVyIG9mIG1lc3NhZ2VzCi0gICAgLy8gZXhjaGFuZ2VkIG92ZXIg
aXQgYnkgZGVmYXVsdC4KLSAgICBzZW5kQ2hhbm5lbCA9IGdGaXJzdENvbm5lY3Rpb24uY3JlYXRl
RGF0YUNoYW5uZWwoJ3NlbmREYXRhQ2hhbm5lbCcpOwotICAgIHNlbmRDaGFubmVsLm9ub3BlbiA9
IG9uU2VuZENoYW5uZWxPcGVuOwotCi0gICAgZ0ZpcnN0Q29ubmVjdGlvbi5jcmVhdGVPZmZlcigp
Ci0gICAgLnRoZW4oZ0ZpcnN0Q29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9uLmJpbmQoZ0Zp
cnN0Q29ubmVjdGlvbikpCi0gICAgLnRoZW4oZXhjaGFuZ2VEZXNjcmlwdGlvbihnU2Vjb25kQ29u
bmVjdGlvbiwgZ0ZpcnN0Q29ubmVjdGlvbikpCi0gICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAg
ICByZXR1cm4gZ1NlY29uZENvbm5lY3Rpb24uY3JlYXRlQW5zd2VyKCk7Ci0gICAgfSkKLSAgICAu
dGhlbihnU2Vjb25kQ29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9uLmJpbmQoZ1NlY29uZENv
bm5lY3Rpb24pKQotICAgIC50aGVuKGV4Y2hhbmdlRGVzY3JpcHRpb24oZ0ZpcnN0Q29ubmVjdGlv
biwgZ1NlY29uZENvbm5lY3Rpb24pKQotICAgIC5jYXRjaCh0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKCdFcnJvciAnICsgZS5uYW1lICsgJzogJyAr
IGUubWVzc2FnZSk7Ci0gICAgIH0pKTsKLSAgfSk7Ci08L3NjcmlwdD4KLQotPC9ib2R5PgotPC9o
dG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9nZXRzdGF0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0c3RhdHMuaHRtbAppbmRleCAwOTUwYTM3NGMzY2Q4
YTQ0Y2JiOGJmZmMyOTkxZmM2ZGM5NTQxN2M4Li5kNmE2OTJiYjc4NjBiOWM2YmQ3Njk5YmE0ZTk5
ZWE4MDEwOTIyYzA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9nZXRzdGF0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2dldHN0YXRzLmh0bWwKQEAgLTI3LDE2
ICsyNywxMSBAQCBUaGlzIHRlc3QgdXNlcyBkYXRhIG9ubHksIGFuZCB0aHVzIGRvZXMgbm90IHJl
cXVpcmUgZmFrZSBtZWRpYSBkZXZpY2VzLgogICB2YXIgZ1NlY29uZENvbm5lY3Rpb24gPSBudWxs
OwogCiAgIHZhciBvbkljZUNhbmRpZGF0ZVRvRmlyc3QgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlv
bihldmVudCkgewotICAgIC8vIElmIGV2ZW50LmNhbmRpZGF0ZSBpcyBudWxsID0gbm8gbW9yZSBj
YW5kaWRhdGVzLgotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAgICAgIGdTZWNvbmRDb25u
ZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwotICAgIH0KKyAgICBnU2Vj
b25kQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKICAgfSk7CiAK
ICAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
dmVudCkgewotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAgICAgIGdGaXJzdENvbm5lY3Rp
b24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQorICAgIGdGaXJzdENv
bm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CiAgIH0pOwogCiAgIHZh
ciBnZXRTdGF0c1JlY29yZEJ5VHlwZSA9IGZ1bmN0aW9uKHN0YXRzLCB0eXBlKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9p
ZGVudGl0eS1oZWxwZXIuc3ViLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvaWRlbnRpdHktaGVscGVyLnN1Yi5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTUz
ODM4MDY0OGJlYTQxYzRjYTIwNTdmZjY2NmQ2MTFjYzgzNTQzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaWRlbnRp
dHktaGVscGVyLnN1Yi5qcwpAQCAtMCwwICsxLDcwIEBACisndXNlIHN0cmljdCc7CisKKy8qCisg
IEluIHdlYi1wbGF0Zm9ybS10ZXN0LCBhIG51bWJlciBvZiBkb21haW5zIGFyZSByZXF1aXJlZCB0
byBiZSBzZXQgdXAgbG9jYWxseS4KKyAgVGhlIGxpc3QgaXMgYXZhaWxhYmxlIGF0IGRvY3MvX3dy
aXRpbmctdGVzdHMvc2VydmVyLWZlYXR1cmVzLm1kLiBUaGUKKyAgYXBwcm9wcmlhdGUgaG9zdHMg
ZmlsZSBlbnRyaWVzIGNhbiBiZSBnZW5lcmF0ZWQgd2l0aCB0aGUgV1BUIENMSSB2aWEgdGhlCisg
IGZvbGxvd2luZyBjb21tYW5kOiBgd3B0IG1ha2UtaG9zdHMtZmlsZWAuCisgKi8KKworLyoKKyAg
ICBkaWN0aW9uYXJ5IFJUQ0lkZW50aXR5UHJvdmlkZXJEZXRhaWxzIHsKKyAgICAgIHJlcXVpcmVk
IERPTVN0cmluZyBkb21haW47CisgICAgICAgICAgICAgICBET01TdHJpbmcgcHJvdG9jb2wgPSAi
ZGVmYXVsdCI7CisgICAgfTsKKyAqLworCisvLyBQYXJzZSBhIGJhc2U2NCBKU09OIGVuY29kZWQg
c3RyaW5nIHJldHVybmVkIGZyb20gZ2V0SWRlbnRpdHlBc3NlcnRpb24oKS4KKy8vIFRoaXMgaXMg
YWxzbyB0aGUgc3RyaW5nIHRoYXQgaXMgc2V0IGluIHRoZSBhPWlkZW50aXR5IGxpbmUuCisvLyBS
ZXR1cm5zIGEgeyBpZHAsIGFzc2VydGlvbiB9IHdoZXJlIGlkcCBpcyBvZiB0eXBlIFJUQ0lkZW50
aXR5UHJvdmlkZXJEZXRhaWxzCisvLyBhbmQgYXNzZXJ0aW9uIGlzIHRoZSBkZXNlcmlhbGl6ZWQg
SlNPTiB0aGF0IHdhcyByZXR1cm5lZCBieSB0aGUKKy8vIElkUCBwcm94eSdzIGdlbmVyYXRlQXNz
ZXJ0aW9uKCkgZnVuY3Rpb24uCitmdW5jdGlvbiBwYXJzZUFzc2VydGlvblJlc3VsdChhc3NlcnRp
b25SZXN1bHRTdHIpIHsKKyAgY29uc3QgYXNzZXJ0aW9uUmVzdWx0ID0gSlNPTi5wYXJzZShhdG9i
KGFzc2VydGlvblJlc3VsdFN0cikpOworCisgIGNvbnN0IHsgaWRwIH0gPSBhc3NlcnRpb25SZXN1
bHQ7CisgIGNvbnN0IGFzc2VydGlvbiA9IEpTT04ucGFyc2UoYXNzZXJ0aW9uUmVzdWx0LmFzc2Vy
dGlvbik7CisKKyAgcmV0dXJuIHsgaWRwLCBhc3NlcnRpb24gfTsKK30KKworLy8gUmV0dXJuIHR3
byBkaXN0aW5jdCBJZFAgZG9tYWlucyB0aGF0IGFyZSBkaWZmZXJlbnQgZnJvbSBjdXJyZW50IGRv
bWFpbgorZnVuY3Rpb24gZ2V0SWRwRG9tYWlucygpIHsKKyAgY29uc3QgZG9tYWluQSA9ICd7e2hv
c3RzW2FsdF1bXX19JzsKKyAgY29uc3QgZG9tYWluQiA9ICd7e2RvbWFpbnNbd3d3MV19fSc7Cisg
IGNvbnN0IGRvbWFpbkMgPSAne3tkb21haW5zW3d3dzJdfX0nOworCisgIGlmKHdpbmRvdy5sb2Nh
dGlvbi5ob3N0bmFtZSA9PT0gZG9tYWluQSkgeworICAgIHJldHVybiBbZG9tYWluQiwgZG9tYWlu
Q107CisgIH0gZWxzZSBpZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgPT09IGRvbWFpbkIpIHsK
KyAgICByZXR1cm4gW2RvbWFpbkEsIGRvbWFpbkNdOworICB9IGVsc2UgeworICAgIHJldHVybiBb
ZG9tYWluQSwgZG9tYWluQl07CisgIH0KK30KKworZnVuY3Rpb24gYXNzZXJ0X3J0Y2Vycm9yX3Jl
amVjdGlvbihlcnJvckRldGFpbCwgcHJvbWlzZSwgZGVzYykgeworICByZXR1cm4gcHJvbWlzZS50
aGVuKAorICAgIHJlcyA9PiB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKGBFeHBlY3QgcHJvbWlz
ZSB0byBiZSByZWplY3RlZCB3aXRoIFJUQ0Vycm9yLCBidXQgaW5zdGVhZCBnb3QgJHtyZXN9YCk7
CisgICAgfSwgZXJyID0+IHsKKyAgICAgIGFzc2VydF90cnVlKGVyciBpbnN0YW5jZW9mIFJUQ0Vy
cm9yLAorICAgICAgICAnRXhwZWN0IGVycm9yIG9iamVjdCB0byBiZSBpbnN0YW5jZSBvZiBSVENF
cnJvcicpOworCisgICAgICBhc3NlcnRfZXF1YWxzKGVyci5lcnJvckRldGFpbCwgZXJyb3JEZXRh
aWwsCisgICAgICAgIGBFeHBlY3QgUlRDRXJyb3Igb2JqZWN0IGhhdmUgZXJyb3JEZXRhaWwgc2V0
IHRvICR7ZXJyb3JEZXRhaWx9YCk7CisKKyAgICAgIHJldHVybiBlcnI7CisgICAgfSk7Cit9CisK
Ky8vIGNvbnN0cnVjdCBhIGhvc3Qgc3RyaW5nIGNvbnNpc3Qgb2YgZG9tYWluIGFuZCBvcHRpb25h
bGx5IHBvcnQKKy8vIElmIHRoZSBkZWZhdWx0IEhUVFAvSFRUUFMgcG9ydCBpcyB1c2VkLCB3aW5k
b3cubG9jYXRpb24ucG9ydCByZXR1cm5zCisvLyBlbXB0eSBzdHJpbmcuCitmdW5jdGlvbiBob3N0
U3RyaW5nKGRvbWFpbiwgcG9ydCkgeworICBpZihwb3J0ID09PSAnJykgeworICAgIHJldHVybiBk
b21haW47CisgIH0gZWxzZSB7CisgICAgcmV0dXJuIGAke2RvbWFpbn06JHtwb3J0fWA7CisgIH0K
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL25vLW1lZGlhLWNhbGwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1lZGlhLWNhbGwuaHRtbAppbmRleCBiMWViYTA4
ZDBiNDMzYzYwYzYzMzIxOTljZDM1Mjk0ODQ3MDI4YTBjLi45ZDI1OTg1MThkYTRiYmJjYjdhYzc4
MDI2YjA3MzdkNDBkY2MwOWVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9uby1tZWRpYS1jYWxsLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbm8tbWVkaWEtY2Fs
bC5odG1sCkBAIC01OCwxNiArNTgsMTEgQEAKICAgfTsKIAogICB2YXIgb25JY2VDYW5kaWRhdGVU
b0ZpcnN0ID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAvLyBJZiBldmVu
dC5jYW5kaWRhdGUgaXMgbnVsbCA9IG5vIG1vcmUgY2FuZGlkYXRlcy4KLSAgICBpZiAoZXZlbnQu
Y2FuZGlkYXRlKSB7Ci0gICAgICBnU2Vjb25kQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZl
bnQuY2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlk
YXRlKGV2ZW50LmNhbmRpZGF0ZSk7CiAgIH0pOwogCiAgIHZhciBvbkljZUNhbmRpZGF0ZVRvU2Vj
b25kID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBpZiAoZXZlbnQuY2Fu
ZGlkYXRlKSB7Ci0gICAgICBnRmlyc3RDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5j
YW5kaWRhdGUpOwotICAgIH0KKyAgICBnRmlyc3RDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShl
dmVudC5jYW5kaWRhdGUpOwogICB9KTsKIAogICB2YXIgb25JY2VDb25uZWN0aW9uU3RhdGVDaGFu
Z2UgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvbWlzZXMtY2Fs
bC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvbWlzZXMtY2FsbC5odG1sCmluZGV4IDhiOWEyNzU1NDk3MzUzMWU4NTI4NDA2YTUyZDM4
YjdjNTU5MzJmM2MuLmVlNjRiNDYzZWUyMmFjYTFiNjhlNjg3NWUxMjQ0MjVjOWU0Mzc0M2YgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb21pc2VzLWNhbGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm9taXNlcy1jYWxsLmh0bWwKQEAgLTI0LDE2ICsyNCwx
MSBAQCBUaGlzIHRlc3QgdXNlcyBkYXRhIG9ubHksIGFuZCB0aHVzIGRvZXMgbm90IHJlcXVpcmUg
ZmFrZSBtZWRpYSBkZXZpY2VzLgogICB2YXIgZ1NlY29uZENvbm5lY3Rpb24gPSBudWxsOwogCiAg
IHZhciBvbkljZUNhbmRpZGF0ZVRvRmlyc3QgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVu
dCkgewotICAgIC8vIElmIGV2ZW50LmNhbmRpZGF0ZSBpcyBudWxsID0gbm8gbW9yZSBjYW5kaWRh
dGVzLgotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAgICAgIGdTZWNvbmRDb25uZWN0aW9u
LmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwotICAgIH0KKyAgICBnU2Vjb25kQ29u
bmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKICAgfSk7CiAKICAgdmFy
IG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkg
ewotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAgICAgIGdGaXJzdENvbm5lY3Rpb24uYWRk
SWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQorICAgIGdGaXJzdENvbm5lY3Rp
b24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CiAgIH0pOwogCiAgIHZhciBvbklj
ZUNvbm5lY3Rpb25TdGF0ZUNoYW5nZSA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9SRUFETUUudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvUkVBRE1FLnR4dAppbmRleCAxMzEwNzE3
Y2NiOWMwMzViMDExZmY1ZmU1NDMwZmJkN2U5ZjE1OGYyLi41ZTE3ZmJmOWMzNTRlZGFiYWY0OGY2
ZWUxZDAxN2YyM2QxOGUyMTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9SRUFETUUudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL1JF
QURNRS50eHQKQEAgLTIsMjIgKzIsMjEgQEAgVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgZmlsZXMg
dGhhdCB0ZXN0IGZvciBiZWhhdmlvciByZWxldmFudCB0byB3ZWJydGMsCiBidXQgd2hpY2ggaXMg
c3BlY2lmaWVkIGluIHByb3RvY29sIHNwZWNpZmljYXRpb25zIGZyb20gdGhlIElFVEYsIG5vdCBp
bgogQVBJIHJlY29tbWVuZGF0aW9ucyBmcm9tIHRoZSBXM0MuCiAKLVRoZSBtYWluIHNwZWNpZmlj
YXRpb25zIGFyZSBnaXZlbiBpbiB0aGUgZm9sbG93aW5nIGludGVybmV0LWRyYWZ0czoKLQotLSBk
cmFmdC1pZXRmLXJ0Y3dlYi1vdmVydmlldwotLSBkcmFmdC1pZXRmLXJ0Y3dlYi10cmFuc3BvcnRz
Ci0tIGRyYWZ0LWlldGYtcnRjd2ViLXNlY3VyaXR5LWFyY2gKLS0gZHJhZnQtaWV0Zi1ydGN3ZWIt
c2VjdXJpdHkKLS0gZHJhZnQtaWV0Zi1ydGN3ZWItcnRwLXVzYWdlCi0tIGRyYWZ0LWlldGYtcnRj
d2ViLWpzZXAKLS0gZHJhZnQtaWV0Zi1ydGN3ZWItaXAtaGFuZGxpbmcKLS0gZHJhZnQtaWV0Zi1y
dGN3ZWItZmVjCi0tIGRyYWZ0LWlldGYtcnRjd2ViLWRhdGEtcHJvdG9jb2wKLS0gZHJhZnQtaWV0
Zi1ydGN3ZWItZGF0YS1jaGFubmVsCi0tIGRyYWZ0LWlldGYtbW11c2ljLXNkcC1zaW11bGNhc3QK
LS0gZHJhZnQtaWV0Zi1tbXVzaWMtcmlkCitUaGUgbWFpbiBzcGVjaWZpY2F0aW9ucyBhcmUgZ2l2
ZW4gaW4gdGhlIGZvbGxvd2luZyBSRkNzOgogCiAtIFJGQyA3NzQyLCAiV2ViUlRDIFZpZGVvIFBy
b2Nlc3NpbmcgYW5kIENvZGVjIFJlcXVpcmVtZW50cyIKIC0gUkZDIDc4NzQsICJXZWJSVEMgQXVk
aW8gQ29kZWMgYW5kIFByb2Nlc3NpbmcgUmVxdWlyZW1lbnRzIgorLSBSRkMgODgyNSAoZHJhZnQt
aWV0Zi1ydGN3ZWItb3ZlcnZpZXcpCistIFJGQyA4ODI2IChkcmFmdC1pZXRmLXJ0Y3dlYi1zZWN1
cml0eSkKKy0gUkZDIDg4MjcgKGRyYWZ0LWlldGYtcnRjd2ViLXNlY3VyaXR5LWFyY2gpCistIFJG
QyA4ODI4IChkcmFmdC1pZXRmLXJ0Y3dlYi1pcC1oYW5kbGluZykKKy0gUkZDIDg4MjkgKGRyYWZ0
LWlldGYtcnRjd2ViLWpzZXApCistIFJGQyA4ODMxIChkcmFmdC1pZXRmLXJ0Y3dlYi1kYXRhLWNo
YW5uZWwpCistIFJGQyA4ODMyIChkcmFmdC1pZXRmLXJ0Y3dlYi1kYXRhLXByb3RvY29sKQorLSBS
RkMgODgzNCAoZHJhZnQtaWV0Zi1ydGN3ZWItcnRwLXVzYWdlKQorLSBSRkMgODgzNSAoZHJhZnQt
aWV0Zi1ydGN3ZWItdHJhbnNwb3J0cykKKy0gUkZDIDg4NTEgKGRyYWZ0LWlldGYtbW11c2ljLXJp
ZCkKKy0gUkZDIDg4NTMgKGRyYWZ0LWlldGYtbW11c2ljLXNkcC1zaW11bGNhc3QpCistIFJGQyA4
ODU0IChkcmFmdC1pZXRmLXJ0Y3dlYi1mZWMpCiAKLUFuIG92ZXJ2aWV3IG9mIHRoZSBkZXBlbmRl
bmNpZXMgaW52b2x2ZWQgaXMgaW4gZHJhZnQtamVubmluZ3MtcnRjd2ViLWRlcHMKK1RoaXMgbGlz
dCBpcyBpbmNvbXBsZXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1zZXR1cC5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9kdGxzLXNldHVwLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWQy
MDk2YTgwNWQ1ZGMwNDAzMjBmNDc4YTRhNmI0NTU3YTY1ZDYyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvZHRscy1zZXR1cC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1Mg
UEMgc2hvdWxkIGFjY2VwdCBpbml0aWFsIG9mZmVyIHdpdGggc2V0dXA9YWN0cGFzcworRkFJTCBQ
QyBzaG91bGQgYWNjZXB0IGluaXRpYWwgb2ZmZXIgd2l0aCBzZXR1cD1hY3RpdmUgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgImE9c2V0dXA6cGFzc2l2ZSIgYnV0IGdvdCAiYT1zZXR1cDphY3RpdmUi
CitGQUlMIFBDIHNob3VsZCBhY2NlcHQgaW5pdGlhbCBvZmZlciB3aXRoIHNldHVwPXBhc3NpdmUg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiT3Bl
cmF0aW9uRXJyb3I6IEZhaWxlZCB0byBzZXQgbG9jYWwgYW5zd2VyIHNkcDogRmFpbGVkIHRvIGFw
cGx5IHRoZSBkZXNjcmlwdGlvbiBmb3IgbT0gc2VjdGlvbiB3aXRoIG1pZD0nYTEnOiBPZmZlcmVy
IG11c3QgdXNlIGFjdHBhc3MgdmFsdWUgb3IgY3VycmVudCBuZWdvdGlhdGVkIHJvbGUgZm9yIHNl
dHVwIGF0dHJpYnV0ZS4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtc2V0dXAuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL2R0bHMtc2V0dXAuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWIwYTFhZTY1MmE0MzU1ZGQ5
MWRhZjI0OTEzNmYyOTNiYjUwOWUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1zZXR1cC5o
dHRwcy5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBhPXNldHVwIFNEUCBwYXJhbWV0ZXIg
dGVzdDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvLyBUZXN0cyBmb3IgY29ycmVjdCBi
ZWhhdmlvciBvZiBEVExTIGE9c2V0dXAgcGFyYW1ldGVyLgorCisvLyBTRFAgY29waWVkIGZyb20g
SlNFUCBFeGFtcGxlIDcuMQorLy8gSXQgY29udGFpbnMgdHdvIG1lZGlhIHN0cmVhbXMgd2l0aCBk
aWZmZXJlbnQgdWZyYWdzLCBhbmQgYnVuZGxlCisvLyB0dXJuZWQgb24uCitjb25zdCBrU2RwID0g
YHY9MAorbz0tIDQ5NjIzMDMzMzMxNzk4NzE3MjIgMSBJTiBJUDQgMC4wLjAuMAorcz0tCit0PTAg
MAorYT1pY2Utb3B0aW9uczp0cmlja2xlCithPWdyb3VwOkJVTkRMRSBhMSB2MQorYT1ncm91cDpM
UyBhMSB2MQorbT1hdWRpbyAxMDEwMCBVRFAvVExTL1JUUC9TQVZQRiA5NiAwIDggOTcgOTgKK2M9
SU4gSVA0IDIwMy4wLjExMy4xMDAKK2E9bWlkOmExCithPXNlbmRyZWN2CithPXJ0cG1hcDo5NiBv
cHVzLzQ4MDAwLzIKK2E9cnRwbWFwOjAgUENNVS84MDAwCithPXJ0cG1hcDo4IFBDTUEvODAwMAor
YT1ydHBtYXA6OTcgdGVsZXBob25lLWV2ZW50LzgwMDAKK2E9cnRwbWFwOjk4IHRlbGVwaG9uZS1l
dmVudC80ODAwMAorYT1tYXhwdGltZToxMjAKK2E9ZXh0bWFwOjEgdXJuOmlldGY6cGFyYW1zOnJ0
cC1oZHJleHQ6c2RlczptaWQKK2E9ZXh0bWFwOjIgdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6
c3NyYy1hdWRpby1sZXZlbAorYT1tc2lkOjQ3MDE3ZmVlLWI2YzEtNDE2Mi05MjljLWEyNTExMDI1
MjQwMCBmODMwMDZjNS1hMGZmLTRlMGEtOWVkOS1kM2U2NzQ3YmU3ZDkKK2E9aWNlLXVmcmFnOkVU
RW4KK2E9aWNlLXB3ZDpPdFNLMFdwTnRwVWprWTQrODZqczdaUWwKK2E9ZmluZ2VycHJpbnQ6c2hh
LTI1NiAxOTpFMjoxQzozQjo0Qjo5Rjo4MTpFNjpCODo1QzpGNDpBNTpBODpEODo3MzowNDpCQjow
NToyRjo3MDo5RjowNDpBOTowRTowNTpFOToyNjozMzpFODo3MDo4ODpBMgorYT1zZXR1cDphY3Rw
YXNzCithPWR0bHMtaWQ6MQorYT1ydGNwOjEwMTAxIElOIElQNCAyMDMuMC4xMTMuMTAwCithPXJ0
Y3AtbXV4CithPXJ0Y3AtcnNpemUKK209dmlkZW8gMTAxMDIgVURQL1RMUy9SVFAvU0FWUEYgMTAw
IDEwMQorYz1JTiBJUDQgMjAzLjAuMTEzLjEwMAorYT1taWQ6djEKK2E9c2VuZHJlY3YKK2E9cnRw
bWFwOjEwMCBWUDgvOTAwMDAKK2E9cnRwbWFwOjEwMSBydHgvOTAwMDAKK2E9Zm10cDoxMDEgYXB0
PTEwMAorYT1leHRtYXA6MSB1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZAorYT1y
dGNwLWZiOjEwMCBjY20gZmlyCithPXJ0Y3AtZmI6MTAwIG5hY2sKK2E9cnRjcC1mYjoxMDAgbmFj
ayBwbGkKK2E9bXNpZDo0NzAxN2ZlZS1iNmMxLTQxNjItOTI5Yy1hMjUxMTAyNTI0MDAgZjMwYmRi
NGEtNWRiOC00OWI1LWJjZGMtZTBjOWEyMzE3MmUwCithPWljZS11ZnJhZzpCR0trCithPWljZS1w
d2Q6bXF5V3NBanZ0S3dUR252aFB6dFE5bUlmCithPWZpbmdlcnByaW50OnNoYS0yNTYgMTk6RTI6
MUM6M0I6NEI6OUY6ODE6RTY6Qjg6NUM6RjQ6QTU6QTg6RDg6NzM6MDQ6QkI6MDU6MkY6NzA6OUY6
MDQ6QTk6MEU6MDU6RTk6MjY6MzM6RTg6NzA6ODg6QTIKK2E9c2V0dXA6YWN0cGFzcworYT1kdGxz
LWlkOjEKK2E9cnRjcDoxMDEwMyBJTiBJUDQgMjAzLjAuMTEzLjEwMAorYT1ydGNwLW11eAorYT1y
dGNwLXJzaXplCitgOworCitmb3IgKGxldCBzZXR1cCBvZiBbJ2FjdHBhc3MnLCAnYWN0aXZlJywg
J3Bhc3NpdmUnXSkgeworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3Qgc2Rw
ID0ga1NkcC5yZXBsYWNlKC9hPXNldHVwOmFjdHBhc3MvZywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2E9c2V0dXA6JyArIHNldHVwKTsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
ICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNkcDogc2Rw
fSk7CisgICAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigpOworICAgIGNv
bnN0IHJlc3VsdGluZ1NldHVwID0gYW5zd2VyLnNkcC5tYXRjaCgvYT1zZXR1cDpcUysvKTsKKyAg
ICBpZiAoc2V0dXAgPT09ICdhY3RpdmUnKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdGlu
Z1NldHVwWzBdLCAnYT1zZXR1cDpwYXNzaXZlJyk7CisgICAgfSBlbHNlIGlmIChzZXR1cCA9PT0g
J3Bhc3NpdmUnKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdGluZ1NldHVwWzBdLCAnYT1z
ZXR1cDphY3RpdmUnKTsKKyAgICB9IGVsc2UgaWYgKHNldHVwID09PSAnYWN0cGFzcycpIHsKKyAg
ICAgIC8vIEZvciBhY3RwYXNzLCBlaXRoZXIgYWN0aXZlIG9yIHBhc3NpdmUgYXJlIGxlZ2FsLCBh
bHRob3VnaAorICAgICAgLy8gYWN0aXZlIGlzIFJFQ09NTUVOREVEIGJ5IFJGQyA1NzYzIC8gODg0
Mi4KKyAgICAgIGFzc2VydF9pbl9hcnJheShyZXN1bHRpbmdTZXR1cFswXSwgWydhPXNldHVwOmFj
dGl2ZScsICdhPXNldHVwOnBhc3NpdmUnXSk7CisgICAgfQorICAgIGF3YWl0IHBjMS5zZXRMb2Nh
bERlc2NyaXB0aW9uKGFuc3dlcik7CisgIH0sICdQQyBzaG91bGQgYWNjZXB0IGluaXRpYWwgb2Zm
ZXIgd2l0aCBzZXR1cD0nICsgc2V0dXApOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9o
YW5kb3Zlci1kYXRhY2hhbm5lbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci1kYXRhY2hhbm5l
bC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhmZWUyMDg2MDM1NmJmMTUxMDYwMzFhNjA3OTg4
YTVkNDgxNzczMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBIYW5kb3ZlciB3aXRoIGRhdGFjaGFu
bmVsIHJlaW5pdGlhdGVkIGZyb20gbmV3IGNhbGxlZSBjb21wbGV0ZXMgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6
IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hh
bmRvdmVyLWRhdGFjaGFubmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci1kYXRhY2hhbm5lbC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhmMjI0ZjgyMmE3NmJiNDg5MjRiYzEzZTU5ZDUzZjhhMjRkOTlmNjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci1kYXRhY2hhbm5lbC5odG1sCkBAIC0wLDAgKzEsNjEg
QEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENQZWVy
Q29ubmVjdGlvbiBIYW5kb3ZlcnM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9u
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9mZmVyUGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgY29uc3QgYW5zd2VyUGNGaXJzdCA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICBjb25zdCBhbnN3ZXJQY1NlY29uZCA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHsKKyAgICBvZmZlclBjLmNsb3NlKCk7CisgICAgYW5zd2VyUGNGaXJz
dC5jbG9zZSgpOworICAgIGFuc3dlclBjU2Vjb25kLmNsb3NlKCk7CisgIH0pOworICBjb25zdCBv
ZmZlckRhdGFjaGFubmVsMSA9IG9mZmVyUGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2luaXRpYWwnKTsK
KyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKG9mZmVyUGMsIGFuc3dlclBjRmlyc3QpOworCisgIC8v
IE5lZ290aWF0ZSBjb25uZWN0aW9uIHdpdGggUEMgMQorICBjb25zdCBvZmZlcjEgPSBhd2FpdCBv
ZmZlclBjLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0TG9jYWxEZXNjcmlwdGlv
bihvZmZlcjEpOworICBhd2FpdCBhbnN3ZXJQY0ZpcnN0LnNldFJlbW90ZURlc2NyaXB0aW9uKG9m
ZmVyMSk7CisgIGNvbnN0IGFuc3dlcjEgPSBhd2FpdCBhbnN3ZXJQY0ZpcnN0LmNyZWF0ZUFuc3dl
cigpOworICBhd2FpdCBvZmZlclBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcjEpOworICBh
d2FpdCBhbnN3ZXJQY0ZpcnN0LnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyMSk7CisgIGNvbnN0
IGRhdGFjaGFubmVsQXRBbnN3ZXJQY0ZpcnN0ID0gYXdhaXQgbmV3IFByb21pc2UoCisgICAgciA9
PiBhbnN3ZXJQY0ZpcnN0Lm9uZGF0YWNoYW5uZWwgPSAoe2NoYW5uZWx9KSA9PiByKGNoYW5uZWwp
KTsKKyAgY29uc3QgaWNlVHJhbnNwb3J0ID0gb2ZmZXJQYy5zY3RwLnRyYW5zcG9ydDsKKyAgLy8g
Q2hlY2sgdGhhdCBtZXNzYWdlcyBnZXQgdGhyb3VnaC4KKyAgZGF0YWNoYW5uZWxBdEFuc3dlclBj
Rmlyc3Quc2VuZCgnaGVsbG8nKTsKKyAgY29uc3QgbWVzc2FnZTEgPSBhd2FpdCBhd2FpdE1lc3Nh
Z2Uob2ZmZXJEYXRhY2hhbm5lbDEpOworICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UxLCAnaGVsbG8n
KTsKKworICAvLyBSZW5lZ290aWF0ZSB3aXRoIFBDIDIKKyAgLy8gTm90ZSAtIElDRSBjYW5kaWRh
dGVzIHdpbGwgYWxzbyBiZSBzZW50IHRvIGFuc3dlclBjMSwgYnV0IHRoYXQgc2hvdWxkbid0IG1h
dHRlci4KKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKG9mZmVyUGMsIGFuc3dlclBjU2Vjb25kKTsK
KyAgY29uc3Qgb2ZmZXIyID0gYXdhaXQgb2ZmZXJQYy5jcmVhdGVPZmZlcigpOworICBhd2FpdCBv
ZmZlclBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAgYXdhaXQgYW5zd2VyUGNTZWNv
bmQuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAgY29uc3QgYW5zd2VyMiA9IGF3YWl0
IGFuc3dlclBjU2Vjb25kLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBvZmZlclBjLnNldFJlbW90
ZURlc2NyaXB0aW9uKGFuc3dlcjIpOworICBhd2FpdCBhbnN3ZXJQY1NlY29uZC5zZXRMb2NhbERl
c2NyaXB0aW9uKGFuc3dlcjIpOworCisgIC8vIEtpbGwgdGhlIGZpcnN0IFBDLiBUaGlzIHNob3Vs
ZCBub3QgYWZmZWN0IGFueXRoaW5nLCBidXQgbGVhdmluZyBpdCBtYXkgY2F1c2UgdW50b3dhcmQg
ZXZlbnRzLgorICBhbnN3ZXJQY0ZpcnN0LmNsb3NlKCk7CisKKyAgY29uc3QgYW5zd2VyRGF0YUNo
YW5uZWwyID0gYW5zd2VyUGNTZWNvbmQuY3JlYXRlRGF0YUNoYW5uZWwoJ3NlY29uZCBiYWNrJyk7
CisKKyAgY29uc3QgZGF0YWNoYW5uZWxBdE9mZmVyUGNTZWNvbmQgPSBhd2FpdCBuZXcgUHJvbWlz
ZShyID0+IG9mZmVyUGMub25kYXRhY2hhbm5lbCA9ICh7Y2hhbm5lbH0pID0+IHIoY2hhbm5lbCkp
OworCisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gZGF0YWNoYW5uZWxBdE9mZmVyUGNTZWNvbmQu
b25vcGVuID0gcik7CisKKyAgZGF0YWNoYW5uZWxBdE9mZmVyUGNTZWNvbmQuc2VuZCgnaGVsbG8g
YWdhaW4nKTsKKyAgY29uc3QgbWVzc2FnZTIgPSBhd2FpdCBhd2FpdE1lc3NhZ2UoYW5zd2VyRGF0
YUNoYW5uZWwyKTsKKyAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlMiwgJ2hlbGxvIGFnYWluJyk7Cit9
LCAnSGFuZG92ZXIgd2l0aCBkYXRhY2hhbm5lbCByZWluaXRpYXRlZCBmcm9tIG5ldyBjYWxsZWUg
Y29tcGxldGVzJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL2hhbmRvdmVyLmh0bWwKaW5kZXggMzc4ZDY1ZmZjMzIwYmYwYWM2YTZhMTY2OTBkZDk5MmQw
ZjVlNTM2ZC4uNzQ4Y2JlZmY4ZDdiZDgzYmU0NzNjMDQ5OTA4YjUzZjdmZTJiYzk3YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvaGFuZG92ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5odG1sCkBAIC02OSw2ICs2
OSw0IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgYXdhaXQgb2ZmZXJQYy5zZXRMb2Nh
bERlc2NyaXB0aW9uKGFuc3dlcjIpOwogfSwgJ05lZ290aWF0aW9uIG9mIGhhbmRvdmVyIGluaXRp
YXRlZCBhdCBjYWxsZWUgd29ya3MnKTsKIAotCi0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
cnRwLWNsb2NrcmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtY2xvY2tyYXRlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMGIyNGMyNjJkODU5Mzk0OGZlYTVkY2YwMjM2NmRhNmE0ZGYyNzJhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgdmlkZW8gcnRwIHRpbWVzdGFtcHMgaW5jcmVhc2UgYnkgYXBwcm94aW1h
dGVseSA5MDAwMCBwZXIgc2Vjb25kCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1jbG9ja3JhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL3J0cC1jbG9ja3JhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTc3NDIwMDUwZjU4MjA5NGQ4
ZmUyOTNhYWMxNjY1YmRhZWE3OThlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0
ZS5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11
dGYtOD4KKzwhLS0gVGhpcyBmaWxlIGNvbnRhaW5zIGEgdGVzdCB0aGF0IHdhaXRzIGZvciB0d28g
c2Vjb25kcy4gLS0+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRs
ZT5SVFAgY2xvY2tyYXRlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworYXN5bmMgZnVuY3Rp
b24gaW5pdGlhdGVTaW5nbGVUcmFja0NhbGxBbmRSZXR1cm5SZWNlaXZlcih0LCBraW5kKSB7Cisg
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGNvbnN0IHN0cmVhbSA9
IGF3YWl0IGdldE5vaXNlU3RyZWFtKHtba2luZF06dHJ1ZX0pOworICBjb25zdCBbdHJhY2tdID0g
c3RyZWFtLmdldFRyYWNrcygpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHRyYWNrLnN0b3AoKSk7
CisgIHBjMS5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKKworICBleGNoYW5nZUljZUNhbmRpZGF0
ZXMocGMxLCBwYzIpOworICBjb25zdCB0cmFja0V2ZW50ID0gYXdhaXQgZXhjaGFuZ2VPZmZlckFu
ZExpc3RlblRvT250cmFjayh0LCBwYzEsIHBjMik7CisgIGF3YWl0IGV4Y2hhbmdlQW5zd2VyKHBj
MSwgcGMyKTsKKyAgYXdhaXQgd2FpdEZvckNvbm5lY3Rpb25TdGF0ZUNoYW5nZShwYzIsIFsnY29u
bmVjdGVkJ10pOworICByZXR1cm4gdHJhY2tFdmVudC5yZWNlaXZlcjsKK30KKworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAvLyB0aGUgZ2V0U3luY2hyb25pemF0aW9uU291cmNlcyBBUEkg
ZXhwb3NlcyB0aGUgcnRwIHRpbWVzdGFtcC4KKyAgY29uc3QgcmVjZWl2ZXIgPSBhd2FpdCBpbml0
aWF0ZVNpbmdsZVRyYWNrQ2FsbEFuZFJldHVyblJlY2VpdmVyKHQsICd2aWRlbycpOworICBjb25z
dCBmaXJzdCA9IGF3YWl0IGxpc3RlbkZvclNTUkNzKHQsIHJlY2VpdmVyKTsKKyAgYXdhaXQgbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCAyMDAwKSk7CisgIGNv
bnN0IHNlY29uZCA9IGF3YWl0IGxpc3RlbkZvclNTUkNzKHQsIHJlY2VpdmVyKTsKKyAgLy8gcnRw
VGltZXN0YW1wIG1heSB3cmFwIGF0IDB4ZmZmZmZmZmYsIHRha2UgY2FyZSBvZiB0aGF0LgorICBj
b25zdCBhY3R1YWxDbG9ja1JhdGUgPSAoKHNlY29uZFswXS5ydHBUaW1lc3RhbXAgLSBmaXJzdFsw
XS5ydHBUaW1lc3RhbXAgKyAweGZmZmZmZmZmKSAlIDB4ZmZmZmZmZmYpIC8gKHNlY29uZFswXS50
aW1lc3RhbXAgLSBmaXJzdFswXS50aW1lc3RhbXApICogMTAwMDsKKyAgYXNzZXJ0X2FwcHJveF9l
cXVhbHMoYWN0dWFsQ2xvY2tSYXRlLCA5MDAwMCwgOTAwMCwgJ1ZpZGVvIGNsb2NrcmF0ZSBpcyBh
cHByb3hpbWF0ZWx5IDkwMDAwJyk7Cit9LCAndmlkZW8gcnRwIHRpbWVzdGFtcHMgaW5jcmVhc2Ug
YnkgYXBwcm94aW1hdGVseSA5MDAwMCBwZXIgc2Vjb25kJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL3J0cC1leHRlbnNpb24tc3VwcG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5z
aW9uLXN1cHBvcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlYjMwYzUyNDc3MmIzYzU0YzY0
YWFlZmM5YjkwYmVjNjNkYWI2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9u
LXN1cHBvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIFJUUCBoZWFkZXIg
ZXh0ZW5zaW9uIHVybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNzcmMtYXVkaW8tbGV2ZWwgaXMg
cHJlc2VudCBpbiBvZmZlcgorUEFTUyBSVFAgaGVhZGVyIGV4dGVuc2lvbiB1cm46aWV0ZjpwYXJh
bXM6cnRwLWhkcmV4dDpzZGVzOm1pZCBpcyBwcmVzZW50IGluIG9mZmVyCitQQVNTIFJUUCBoZWFk
ZXIgZXh0ZW5zaW9uIHVybjozZ3BwOnZpZGVvLW9yaWVudGF0aW9uIGlzIHByZXNlbnQgaW4gb2Zm
ZXIKK1BBU1MgUlRQIGhlYWRlciBleHRlbnNpb24gdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6
c2RlczpydHAtc3RyZWFtLWlkIGlzIHByZXNlbnQgaW4gb2ZmZXIKK1BBU1MgUlRQIGhlYWRlciBl
eHRlbnNpb24gdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczpyZXBhaXJlZC1ydHAtc3Ry
ZWFtLWlkIGlzIHByZXNlbnQgaW4gb2ZmZXIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWV4dGVuc2lv
bi1zdXBwb3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lM2QzZmU4N2Q5M2RjODBmZmQ4NjRhMzE0N2M3NGMyMmViZjU2OGIyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvcnRwLWV4dGVuc2lvbi1zdXBwb3J0Lmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0
aW9uIFJUUCBleHRlbnNpb25zPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi90aGlyZF9wYXJ0eS9zZHAvc2Rw
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK2FzeW5jIGZ1bmN0aW9u
IHNldHVwKCkgeworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgcGMx
LmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICBwYzEuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7
CisgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIHBjMS5jbG9zZSgp
OworICByZXR1cm4gb2ZmZXIuc2RwOworfQorCisvLyBFeHRlbnNpb25zIHRoYXQgTVVTVCBiZSBz
dXBwb3J0ZWQKK2NvbnN0IG1hbmRhdG9yeUV4dGVuc2lvbnMgPSBbCisgIC8vIERpcmVjdGx5IHJl
ZmVyZW5jZWQgaW4gV2ViUlRDIFJUUCB1c2FnZQorICAndXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJl
eHQ6c3NyYy1hdWRpby1sZXZlbCcsIC8vIFJGQyA4ODM0IDUuMi4yCisgICd1cm46aWV0ZjpwYXJh
bXM6cnRwLWhkcmV4dDpzZGVzOm1pZCcsICAvLyBSRkMgODgzNCA1LjIuNAorICAndXJuOjNncHA6
dmlkZW8tb3JpZW50YXRpb24nLCAgLy8gUkZDIDg4MzQgNS4yLjUKKyAgLy8gUmVxdWlyZWQgZm9y
IHN1cHBvcnQgb2Ygc2ltdWxjYXN0IHdpdGggUklECisgICd1cm46aWV0ZjpwYXJhbXM6cnRwLWhk
cmV4dDpzZGVzOnJ0cC1zdHJlYW0taWQnLCAgLy8gUkZDIDg4NTIgNC4zCisgICd1cm46aWV0Zjpw
YXJhbXM6cnRwLWhkcmV4dDpzZGVzOnJlcGFpcmVkLXJ0cC1zdHJlYW0taWQnLCAgLy8gUkZDIDg4
NTIgNC40CitdOworCisvLyBGb3IgZnVydGhlciB0ZXN0aW5nOgorLy8gLSBBZGQgdGVzdCBmb3Ig
cmFwaWQgc3luY2hyb25pemF0aW9uIC0gUkZDIDg4MzQgNS4yLjEKKy8vIC0gQWRkIHRlc3QgZm9y
IGVuY3J5cHRlZCBoZWFkZXIgZXh0ZW5zaW9ucyAoUkZDIDY5MDQpCisvLyAtIFNlcGFyYXRlIHRl
c3RzIGZvciBleHRlbnNpb25zIGluIGF1ZGlvIGFuZCB2aWRlbyBzZWN0aW9ucworCitmb3IgKGNv
bnN0IGV4dGVuc2lvbiBvZiBtYW5kYXRvcnlFeHRlbnNpb25zKSB7CisgIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgICBjb25zdCBzZHAgPSBhd2FpdCBzZXR1cCgpOworICAgIGNvbnN0IGV4
dGVuc2lvbnMgPSBTRFBVdGlscy5tYXRjaFByZWZpeChzZHAsICdhPWV4dG1hcDonKQorICAgICAg
ICAgIC5tYXAoU0RQVXRpbHMucGFyc2VFeHRtYXApOworICAgIGFzc2VydF90cnVlKCEhZXh0ZW5z
aW9ucy5maW5kKGV4dCA9PiBleHQudXJpID09PSBleHRlbnNpb24pKTsKKyAgfSwgYFJUUCBoZWFk
ZXIgZXh0ZW5zaW9uICR7ZXh0ZW5zaW9ufSBpcyBwcmVzZW50IGluIG9mZmVyYCk7Cit9CisKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBh
eWxvYWR0eXBlcy5odG1sCmluZGV4IDY4MDZlNzVlZDUxNGMwNDk2OGQwM2I2ZDg0MTNkYWEzOGI4
M2QwNTMuLmFhNDY0Zjg2NTZmZTlhMDkwMzc0ZTQzNDZjNDM2MDBjZjBiNDk3YWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL3J0cC1wYXlsb2FkdHlwZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLmh0
bWwKQEAgLTUxLDcgKzUxLDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBmb3IgKGxl
dCBwYXlsb2FkVHlwZSA9IDY0OyBwYXlsb2FkVHlwZSA8PSA5NTsgcGF5bG9hZFR5cGUrKykgewog
ICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZEFjY2Vzc0Vycm9yJywKLSAgICAgIHBjLnNldFJlbW90
ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHA6IGNyZWF0ZU9mZmVyU2RwKDY0KX0pKTsK
KyAgICAgIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHA6IGNyZWF0
ZU9mZmVyU2RwKHBheWxvYWRUeXBlKX0pKTsKICAgICBwYy5jbG9zZSgpOwogICB9CiB9LCAnc2V0
UmVtb3RlRGVzY3JpcHRpb24gd2l0aCBhIGNvZGVjIGluIHRoZSByYW5nZSA2NC05NSB0aHJvd3Mg
YW4gSW52YWxpZEFjY2Vzc0Vycm9yJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zZGVzLWRvbnQtZG9udC1k
b250LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9udC1kb250LWRvbnQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmUxYWQwYzhiZGUyMDFjZDRhNmU4MDBmOTc2MGFlZjM5NmExY2JjZTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9zZGVzLWRvbnQtZG9udC1kb250LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKKworUEFTUyBkb2VzIG5vdCBjcmVhdGUgb2ZmZXJzIHdpdGggU0RFUworUEFTUyBy
ZWplY3RzIGEgcmVtb3RlIG9mZmVyIHRoYXQgb25seSBpbmNsdWRlcyBTREVTIGFuZCBubyBEVExT
IGZpbmdlcnByaW50CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9udC1kb250LWRvbnQuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL3NkZXMtZG9udC1kb250LWRvbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTM4Yzg0YzhiZmUzOTY4
M2I2ODlhYzQyZTJhM2Y5ZDUzMjQ0MDczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1kb250
LWRvbnQtZG9udC5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRp
dGxlPlJUQ1BlZXJDb25uZWN0aW9uIE1VU1QgTk9UIHN1cHBvcnQgU0RFUzwvdGl0bGU+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvd2VicnRjL3RoaXJkX3BhcnR5L3NkcC9zZHAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1
c2Ugc3RyaWN0JzsKKworLy8gVGVzdCBzdXBwb3J0IGZvcgorLy8gaHR0cHM6Ly93d3cucmZjLWVk
aXRvci5vcmcvcmZjL3JmYzg4MjYjc2VjdGlvbi00LjMuMQorCitjb25zdCBzZHAgPSBgdj0wCitv
PS0gMCAzIElOIElQNCAxMjcuMC4wLjEKK3M9LQordD0wIDAKK209dmlkZW8gOSBVRFAvVExTL1JU
UC9TQVZQRiAxMDAKK2M9SU4gSVA0IDAuMC4wLjAKK2E9cnRjcC1tdXgKK2E9c2VuZG9ubHkKK2E9
bWlkOnZpZGVvCithPXJ0cG1hcDoxMDAgVlA4LzkwMDAwCithPWZtdHA6MTAwIG1heC1mcj0zMDtt
YXgtZnM9MzYwMAorYT1jcnlwdG86MCBBRVNfQ01fMTI4X0hNQUNfU0hBMV84MCBpbmxpbmU6Mm5y
YTI3aFRVYjlpbHluMnJFa0JFUU45V09GdHMyNkYvanZvZmFzdworYT1pY2UtdWZyYWc6RVRFbgor
YT1pY2UtcHdkOk90U0swV3BOdHBVamtZNCs4NmpzN1ovbAorYDsKKworLy8gTmVnYXRpdmUgdGVz
dCBmb3IgQ2hyb21lIGxlZ2FjeSBiZWhhdmlvci4KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3Qgc2Rlc19jb25zdHJhaW50ID0geydtYW5kYXRvcnknOiB7J0R0bHNTcnRwS2V5QWdy
ZWVtZW50JzogZmFsc2V9fTsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVs
bCwgc2Rlc19jb25zdHJhaW50KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsK
KworICBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBw
Yy5jcmVhdGVPZmZlcigpOworICBhc3NlcnRfZmFsc2Uob2ZmZXIuc2RwLmluY2x1ZGVzKCdcbmE9
Y3J5cHRvOicpKTsKK30sICdkb2VzIG5vdCBjcmVhdGUgb2ZmZXJzIHdpdGggU0RFUycpOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgdHJ5IHsKKyAg
ICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2RwfSk7Cisg
ICAgYXNzZXJ0X3VucmVhY2hlZCgiTXVzdCBub3QgYWNjZXB0IFNEUCB3aXRob3V0IGZpbmdlcnBy
aW50Iik7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAvLyBUT0RPOiB3aGljaCBlcnJvciBpcyBjb3Jy
ZWN0PyBTZWUKKyAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYnJ0Yy1wYy9pc3N1ZXMv
MjY3MgorICAgIGFzc2VydF90cnVlKFsnT3BlcmF0aW9uRXJyb3InLCAnSW52YWxpZEFjY2Vzc0Vy
cm9yJ10uaW5jbHVkZXMoZS5uYW1lKSk7CisgIH0KK30sICdyZWplY3RzIGEgcmVtb3RlIG9mZmVy
IHRoYXQgb25seSBpbmNsdWRlcyBTREVTIGFuZCBubyBEVExTIGZpbmdlcnByaW50Jyk7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL3NwbGl0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5o
dG1sCmluZGV4IDVlYjgzMjk1MTdmYmVmZTk0NjgyZmU3OTFhZTgxNzY5ZDAzZGExOTcuLjNmYzNi
ZGEyYTUyY2Y3MTkwYzAxYWI0ZDg5MjZkNzVkM2Q0ZmQ4NWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NwbGl0
Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbApAQCAtMzgsMTYgKzM4LDIyIEBA
IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBpZiAoZS5jYW5kaWRhdGUpIHsKICAgICAg
IGNvbnN0IHRhcmdldCA9IGUuY2FuZGlkYXRlLnNkcE1MaW5lSW5kZXggPT09IDAgPyBjYWxsZWVB
dWRpbyA6IGNhbGxlZVZpZGVvOwogICAgICAgdGFyZ2V0LmFkZEljZUNhbmRpZGF0ZSh7c2RwTWlk
OiBlLmNhbmRpZGF0ZS5zZHBNaWQsIGNhbmRpZGF0ZTogZS5jYW5kaWRhdGUuY2FuZGlkYXRlfSk7
CisgICAgfSBlbHNlIHsKKyAgICAgIGNhbGxlZUF1ZGlvLmFkZEljZUNhbmRpZGF0ZSgpOworICAg
ICAgY2FsbGVlVmlkZW8uYWRkSWNlQ2FuZGlkYXRlKCk7CiAgICAgfQogICB9KTsKICAgY2FsbGVl
QXVkaW8uYWRkRXZlbnRMaXN0ZW5lcignaWNlY2FuZGlkYXRlJywgKGUpID0+IHsKICAgICBpZiAo
ZS5jYW5kaWRhdGUpIHsKICAgICAgIGNhbGxlci5hZGRJY2VDYW5kaWRhdGUoe3NkcE1pZDogZS5j
YW5kaWRhdGUuc2RwTWlkLCBjYW5kaWRhdGU6IGUuY2FuZGlkYXRlLmNhbmRpZGF0ZX0pOwogICAg
IH0KKyAgICAvLyBOb3RlOiBjYWxsZXIuYWRkSWNlQ2FuZGlkYXRlIGlzIG9ubHkgY2FsbGVkIGZv
ciB2aWRlbyB0byBhdm9pZCBjYWxsaW5nIGl0IHR3aWNlLgogICB9KTsKICAgY2FsbGVlVmlkZW8u
YWRkRXZlbnRMaXN0ZW5lcignaWNlY2FuZGlkYXRlJywgKGUpID0+IHsKICAgICBpZiAoZS5jYW5k
aWRhdGUpIHsKICAgICAgIGNhbGxlci5hZGRJY2VDYW5kaWRhdGUoe3NkcE1pZDogZS5jYW5kaWRh
dGUuc2RwTWlkLCBjYW5kaWRhdGU6IGUuY2FuZGlkYXRlLmNhbmRpZGF0ZX0pOworICAgIH0gZWxz
ZSB7CisgICAgICBjYWxsZXIuYWRkSWNlQ2FuZGlkYXRlKCk7CiAgICAgfQogICB9KTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvdnA4LWZtdHAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdnA4LWZtdHAtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM4MjVhOTc1NjczYTBiZTY3NDllNDI3YWQ1MmJmYmY4NGVjZjkwODUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92cDgtZm10cC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK0ZBSUwgc2V0UmVtb3RlRGVzY3JpcHRpb24gcGFyc2VzIG1heC1mciBhbmQgbWF4LWZz
IGZtdHAgcGFyYW1ldGVycyBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvdnA4LWZtdHAuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZwOC1mbXRwLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTZlYTYzNTk0OWYxNGJmZWMxODAwNWMwODAzYTliYzk5ZDY4MDllYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3ZwOC1mbXRwLmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9u
ZyI+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gRmFpbGVkIFN0YXRlPC90aXRsZT4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1
c2Ugc3RyaWN0JzsKKworLy8gVGVzdCBzdXBwb3J0IGZvcgorLy8gaHR0cHM6Ly90b29scy5pZXRm
Lm9yZy9odG1sL3JmYzc3NDEjc2VjdGlvbi02LjEKKworY29uc3Qgc2RwID0gYHY9MAorbz0tIDAg
MyBJTiBJUDQgMTI3LjAuMC4xCitzPS0KK3Q9MCAwCithPWZpbmdlcnByaW50OnNoYS0yNTYgQTc6
MjQ6NzI6Q0E6NkU6MDI6NTU6Mzk6QkE6NjY6REY6NkU6Q0M6NEM6RDg6QjA6MUE6QkY6MUE6NTY6
NjU6N0Q6RjQ6MDM6QUQ6N0U6Nzc6NDM6MkE6Mjk6RUM6OTMKK209dmlkZW8gOSBVRFAvVExTL1JU
UC9TQVZQRiAxMDAKK2M9SU4gSVA0IDAuMC4wLjAKK2E9cnRjcC1tdXgKK2E9c2VuZG9ubHkKK2E9
bWlkOnZpZGVvCithPXJ0cG1hcDoxMDAgVlA4LzkwMDAwCithPWZtdHA6MTAwIG1heC1mcj0zMDtt
YXgtZnM9MzYwMAorYT1zZXR1cDphY3RwYXNzCithPWljZS11ZnJhZzpFVEVuCithPWljZS1wd2Q6
T3RTSzBXcE50cFVqa1k0Kzg2anM3Wi9sCitgOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5
cGU6ICdvZmZlcicsIHNkcH0pOworICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKCk7Cisg
IGNvbnN0IHJlY2VpdmVyID0gcGMuZ2V0UmVjZWl2ZXJzKClbMF07CisgIGNvbnN0IHBhcmFtZXRl
cnMgPSByZWNlaXZlci5nZXRQYXJhbWV0ZXJzKCk7CisgIGNvbnN0IHtzZHBGbXRwTGluZX0gPSBw
YXJhbWV0ZXJzLmNvZGVjc1swXTsKKyAgYXNzZXJ0X3RydWUoISFzZHBGbXRwTGluZSk7CisgIGFz
c2VydF90cnVlKHNkcEZtdHBMaW5lLnNwbGl0KCc7JykuaW5jbHVkZXMoJ21heC1mcj0zMCcpKTsK
KyAgYXNzZXJ0X3RydWUoc2RwRm10cExpbmUuc3BsaXQoJzsnKS5pbmNsdWRlcygnbWF4LWZzPTM2
MDAnKSk7Cit9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24gcGFyc2VzIG1heC1mciBhbmQgbWF4LWZz
IGZtdHAgcGFyYW1ldGVycycpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3czYy1pbXBvcnQubG9nCmluZGV4IDRlM2M4MWU1OTczNjZiMzQyMWI1MjUyODNk
YTU2NjE1OTZmYzY5ZjYuLjQ3YTY3N2MzYmFlNDdlZmZjNzFlMTAyODZhYjYzYjc0OGNjODAyZDAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3czYy1pbXBvcnQubG9nCkBA
IC0yMCwxNyArMjAsMjMgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2Uu
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL2NyeXB0by1zdWl0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1maW5nZXJw
cmludC12YWxpZGF0aW9uLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9kdGxzLXNldHVwLmh0dHBzLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5k
b3Zlci1kYXRhY2hhbm5lbC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2ljZS1zdGF0ZS5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvaWNlLXVmcmFncHdkLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9qc2VwLWluaXRpYWwtb2ZmZXIu
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL21pc3NpbmctZmllbGRzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9tc2lkLXBhcnNlLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9ydHAtY2xvY2tyYXRlLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZGVtdXhpbmcuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1l
eHRlbnNpb24tc3VwcG9ydC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2N0
cC1mb3JtYXQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9udC1kb250LWRvbnQuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NpbXVsY2Fz
dC1hbnN3ZXIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3NpbXVsY2FzdC1vZmZlci5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3Vua25vd24tbWVkaWF0eXBlcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdmlkZW8tY29kZWNzLmh0dHBz
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC92cDgtZm10cC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLW5vLXNzcmNzLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9zaW1wbGVjYWxsLW5vLXNzcmNzLmh0dHBzLmh0bWwKaW5kZXggNTE2MDQ1MWYwMTJlNjQyZGQ1
Njk3ZTAzNGExOWE3Zjg4OTU0MjFlYS4uZjJlMjA4NDYyMzRiYjQ3MDNkMjNjODc2ZjQ2ODk5NGRj
ZDc0YmUzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC1uby1zc3Jjcy5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXBsZWNhbGwt
bm8tc3NyY3MuaHR0cHMuaHRtbApAQCAtODgsMTYgKzg4LDExIEBACiAgIH07CiAKICAgdmFyIG9u
SWNlQ2FuZGlkYXRlVG9GaXJzdCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0g
ICAgLy8gSWYgZXZlbnQuY2FuZGlkYXRlIGlzIG51bGwgPSBubyBtb3JlIGNhbmRpZGF0ZXMuCi0g
ICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkSWNl
Q2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQorICAgIGdTZWNvbmRDb25uZWN0aW9u
LmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwogICB9KTsKIAogICB2YXIgb25JY2VD
YW5kaWRhdGVUb1NlY29uZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAg
aWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5k
aWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJ
Y2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKICAgfSk7CiAKICAgdmFyIG9uUmVtb3RlVHJh
Y2sgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvc2ltcGxlY2FsbC5odHRwcy5odG1sCmluZGV4IGZmZTA0M2I2YTIzN2ZhZTFhNGY3MGUy
Y2ZhYzQ5NWEyYTYxMzJjMjguLmRiZjZiOWE1MDgzYTg3ZmVlZWIzZDkzYmVmYTBhMDYwMTdiZTg1
NTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3NpbXBsZWNhbGwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWwKQEAg
LTc5LDE2ICs3OSwxMSBAQAogICB9OwogCiAgIHZhciBvbkljZUNhbmRpZGF0ZVRvRmlyc3QgPSB0
ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewotICAgIC8vIElmIGV2ZW50LmNhbmRpZGF0
ZSBpcyBudWxsID0gbm8gbW9yZSBjYW5kaWRhdGVzLgotICAgIGlmIChldmVudC5jYW5kaWRhdGUp
IHsKLSAgICAgIGdTZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRh
dGUpOwotICAgIH0KKyAgICBnU2Vjb25kQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQu
Y2FuZGlkYXRlKTsKICAgfSk7CiAKICAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQgPSB0ZXN0
LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsK
LSAgICAgIGdGaXJzdENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7
Ci0gICAgfQorICAgIGdGaXJzdENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRp
ZGF0ZSk7CiAgIH0pOwogCiAgIHZhciBvblJlbW90ZVRyYWNrID0gdGVzdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZXZlbnQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9iYXNpYy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11
bGNhc3QvYmFzaWMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDVlOGVjZWJlOWI2M2M0ZDljMjg2
OWU0Mzk0OThlNjg5MDA1ZjUyMDIuLjczN2I1MzJmNDM0ZDkyYTA1ODY3OTMzOGUxN2MwZDVmZjZm
MmU2OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3NpbXVsY2FzdC9iYXNpYy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0
L2Jhc2ljLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKIAotSGFybmVzcyBFcnJv
ciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgQmFzaWMgc2ltdWxjYXN0IHNl
dHVwIHdpdGggdGhyZWUgc3BhdGlhbCBsYXllcnMgVGVzdCB0aW1lZCBvdXQKK1BBU1MgQmFzaWMg
c2ltdWxjYXN0IHNldHVwIHdpdGggdHdvIHNwYXRpYWwgbGF5ZXJzCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2Fz
dC9iYXNpYy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0bWwKaW5kZXggNWQ1ZjNiNTJm
NWY2NjhjYTJkZGQ1MjE4YzVjOWY2MGI4ODQ1NTVkZi4uYmYyYmFhOGNhYjk5ZDE1NDJmNDY1NTRi
MzU2NjRkYTI1NzY4ZTVlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxj
YXN0L2Jhc2ljLmh0dHBzLmh0bWwKQEAgLTksMTIgKzksMTIgQEAKIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHJpZHMgPSBbMCwgMSwgMl07CisgIGNvbnN0IHJp
ZHMgPSBbMCwgMV07CiAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgY29uc3QgcGMyID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwogCiAg
IHJldHVybiBuZWdvdGlhdGVTaW11bGNhc3RBbmRXYWl0Rm9yVmlkZW8odCwgcmlkcywgcGMxLCBw
YzIpOwotfSwgJ0Jhc2ljIHNpbXVsY2FzdCBzZXR1cCB3aXRoIHRocmVlIHNwYXRpYWwgbGF5ZXJz
Jyk7Cit9LCAnQmFzaWMgc2ltdWxjYXN0IHNldHVwIHdpdGggdHdvIHNwYXRpYWwgbGF5ZXJzJyk7
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11
bGNhc3QvZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDQzMjlhMzIzYmNiMDUyYzhj
MmFiZDQwMjdhMTdiNGRkMmVhNjg0MmMuLmIyYzliMzFmM2Y0NGJmNTVmOWQ1OTE1Njg4MzBkMmU1
ZmViN2MyZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2lt
dWxjYXN0L2dldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKIAotSGFy
bmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgU2ltdWxjYXN0
IGdldFN0YXRzIHJlc3VsdHMgVGVzdCB0aW1lZCBvdXQKK1BBU1MgU2ltdWxjYXN0IGdldFN0YXRz
IHJlc3VsdHMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0
L2gyNjQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGExMGViNzI4MDY3NzQ3MWM5NjU3M2E5YTNm
Nzk5YTc3NmQ2ZDZlYmQuLmU3MmQ0NTMyNjFhNmRiZmVkNDk3MzBlNWE0NjM0NDdkNDJmM2E3NTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIEgyNjQgc2ltdWxjYXN0IHNldHVwIHdpdGgg
dGhyZWUgc3BhdGlhbCBsYXllcnMgVGVzdCB0aW1lZCBvdXQKK1BBU1MgSDI2NCBzaW11bGNhc3Qg
c2V0dXAgd2l0aCB0d28gc3BhdGlhbCBsYXllcnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBzLmh0bWwKaW5kZXggMjZlZDJlOTA0YThiMzUxN2M5ZGQz
NWFmMjc2MzMwZDUzNDFkNzM4OC4uZDIzZjI5NTJhZWE0M2Y4M2RiZmUzNzI2NmJiYmQ1YzUxYWU3
YjVlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRw
cy5odG1sCkBAIC0xNywxMiArMTcsMTIgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBh
c3NlcnRfaW1wbGVtZW50cygnZ2V0Q2FwYWJpbGl0aWVzJyBpbiBSVENSdHBTZW5kZXIsICdSVENS
dHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzIG5vdCBzdXBwb3J0ZWQnKTsKICAgYXNzZXJ0X2ltcGxl
bWVudHMoUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygndmlkZW8nKS5jb2RlY3MuZmluZChj
ID0+IGMubWltZVR5cGUgPT09ICd2aWRlby9IMjY0JyksICdIMjY0IG5vdCBzdXBwb3J0ZWQnKTsK
IAotICBjb25zdCByaWRzID0gWzAsIDEsIDJdOworICBjb25zdCByaWRzID0gWzAsIDFdOwogICBj
b25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzEuY2xvc2UoKSk7CiAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwog
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKIAogICByZXR1cm4gbmVnb3RpYXRl
U2ltdWxjYXN0QW5kV2FpdEZvclZpZGVvKHQsIHJpZHMsIHBjMSwgcGMyLCB7bWltZVR5cGU6ICd2
aWRlby9IMjY0J30pOwotfSwgJ0gyNjQgc2ltdWxjYXN0IHNldHVwIHdpdGggdGhyZWUgc3BhdGlh
bCBsYXllcnMnKTsKK30sICdIMjY0IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHR3byBzcGF0aWFsIGxh
eWVycycpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLWV4cGVj
dGVkLnR4dAppbmRleCA1NTE1ODg1Yzk5M2ExMWY0YTAwMDM2ZjMyN2YxNTJlNzMyYzFlNGQxLi4y
NTcxOTBkYjFjMjQ3ZjU2OWZhNzg3NGRjZTBhOWRlYWM5ZDAwNTk2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qv
c2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJh
bWV0ZXJzLWFjdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACiAKLUhhcm5l
c3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIFNpbXVsY2FzdCBz
ZXRQYXJhbWV0ZXJzIGFjdGl2ZT1mYWxzZSBzdG9wcyBzZW5kaW5nIGZyYW1lcyBUZXN0IHRpbWVk
IG91dAorUEFTUyBTaW11bGNhc3Qgc2V0UGFyYW1ldGVycyBhY3RpdmU9ZmFsc2Ugc3RvcHMgc2Vu
ZGluZyBmcmFtZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbAppbmRleCBmNzU0YzYz
ZmZlOWQ0NzRhMGVhODRiNDAzY2Q3YjVlZDdiYWFlMWEyLi4xYTc0MzcxYmZiNmQ3MDE2NWE0MzM2
MDdlZWM2MmI1OTA5ZTZkZjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbApAQCAt
MjIsNyArMjIsNyBAQCBhc3luYyBmdW5jdGlvbiBxdWVyeVJlY2VpdmVyU3RhdHMocGMpIHsKIH0K
IAogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCByaWRzID0gWzAsIDEsIDJdOwor
ICBjb25zdCByaWRzID0gWzAsIDFdOwogICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA1OTAyMzc3MTFlZWZj
OGZjODk2NzJlYTVjYWEwMWIyMTkwNzg2MmI1Li4wNGQ5NzQzODk3ZjZkYjZmZjg5YTI3YjI4YWRl
MTU0M2JkMmFiYmM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11
bGNhc3QvdnA4Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKIAotSGFybmVzcyBF
cnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgVlA4IHNpbXVsY2FzdCBz
ZXR1cCB3aXRoIHRocmVlIHNwYXRpYWwgbGF5ZXJzIFRlc3QgdGltZWQgb3V0CitQQVNTIFZQOCBz
aW11bGNhc3Qgc2V0dXAgd2l0aCB0d28gc3BhdGlhbCBsYXllcnMKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0
L3ZwOC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy5odG1sCmluZGV4IGUzNTY3ZTYxYzIxZDFi
NjhlNTQ5ZmM4YjA0NWI0OGVhOWIwN2VjYzUuLjk0MTQ1ZDBjNzk0ZWUzM2NhNGJhZmUwMGNmZjJl
MDgxMWNmZmUyZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4
Lmh0dHBzLmh0bWwKQEAgLTEyLDEyICsxMiwxMiBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CiAgIGFzc2VydF9pbXBsZW1lbnRzKCdnZXRDYXBhYmlsaXRpZXMnIGluIFJUQ1J0cFNlbmRlciwg
J1JUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMgbm90IHN1cHBvcnRlZCcpOwogICBhc3NlcnRf
aW1wbGVtZW50cyhSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycpLmNvZGVjcy5m
aW5kKGMgPT4gYy5taW1lVHlwZSA9PT0gJ3ZpZGVvL1ZQOCcpLCAnVlA4IG5vdCBzdXBwb3J0ZWQn
KTsKIAotICBjb25zdCByaWRzID0gWzAsIDEsIDJdOworICBjb25zdCByaWRzID0gWzAsIDFdOwog
ICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzEuY2xvc2UoKSk7CiAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKIAogICByZXR1cm4gbmVnb3Rp
YXRlU2ltdWxjYXN0QW5kV2FpdEZvclZpZGVvKHQsIHJpZHMsIHBjMSwgcGMyLCB7bWltZVR5cGU6
ICd2aWRlby9WUDgnfSk7Ci19LCAnVlA4IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHRocmVlIHNwYXRp
YWwgbGF5ZXJzJyk7Cit9LCAnVlA4IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHR3byBzcGF0aWFsIGxh
eWVycycpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90b29scy9wYWNrYWdlLmpzb24gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90b29scy9wYWNrYWdlLmpz
b24KaW5kZXggZTBjMWNmZGEzZTgxOGFlZWQ1Mzk4NzhkOGVmNjdlYzJkZDk5MTYzNy4uZjI2Y2Zj
YzE0MjFiZjhmOWVjZWViOWY3YzE3NDZmZjI2ZmI3OTMyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdG9vbHMvcGFja2FnZS5q
c29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Rvb2xzL3BhY2thZ2UuanNvbgpAQCAtNiwxMCArNiwxMCBAQAogICAgICJsaW50IjogImVz
bGludCAtYyAuZXNsaW50cmMuanMgLi4vKi5odG1sIC4uLyouanMiCiAgIH0sCiAgICJkZXZEZXBl
bmRlbmNpZXMiOiB7Ci0gICAgImVzbGludCI6ICJeNC4xMS4wIiwKKyAgICAiZXNsaW50IjogIl43
LjI0LjAiLAogICAgICJlc2xpbnQtcGx1Z2luLWh0bWwiOiAiXjQuMC4wIiwKICAgICAianNjb2Rl
c2hpZnQiOiAiXjAuNS4xIiwKLSAgICAianNkb20iOiAiXjExLjExLjAiCisgICAgImpzZG9tIjog
Il4xNi41LjMiCiAgIH0sCiAgICJsaWNlbnNlIjogIkJTRCIsCiAgICJwcml2YXRlIjogdHJ1ZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZwppbmRleCA1MTRiNjFmZjFlZDYzMDg2OGJk
ZjM1NGRiY2JjYmUwMTM4M2ZlYmNiLi4wZGE4NTdiZjBlYmMzZDg1NDQ5MzVmMDQ4NzY3YjBhOTQz
MGZlMTBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZwpAQCAtMzEsNiArMzEs
NyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFyeVR5cGUud2luZG93LmpzCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNo
YW5uZWwtYnVmZmVyZWRBbW91bnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5l
bC1pY2VSZXN0YXJ0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC1ibG9i
LW9yZGVyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwKQEAgLTQwLDcgKzQxLDYgQEAgTGlzdCBv
ZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENFcnJvci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDSWNlQ2FuZGlkYXRlLWNvbnN0cnVjdG9yLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDb25uZWN0
aW9uU3RhdGUtY2FuZGlkYXRlLXBhaXIuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24t
aGVscGVyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0Lmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRpbWluZy5odHRwcy5odG1sCkBAIC01MiwxOSArNTIs
MjUgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFuc2NlaXZlci5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhcHR1cmUtdmlk
ZW8uaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tY29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25zdHJ1Y3Rv
ci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlQW5zd2VyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVh
dGVEYXRhQ2hhbm5lbC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2Vp
dmUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1kZXNj
cmlwdGlvbi1hdHRyaWJ1dGVzLXRpbWluZy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZXhwbGlj
aXQtcm9sbGJhY2staWNlR2F0aGVyaW5nU3RhdGUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRl
Q2VydGlmaWNhdGUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWIuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWdldFN0YXRzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRUcmFuc2NlaXZlcnMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWhlbHBlci10ZXN0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUtZGlzY29ubmVjdGVkLmh0dHBzLmh0bWwKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5l
Y3Rpb25TdGF0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRwcy5odG1sCkBAIC03NCwxMCAr
ODAsMTMgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnNpZ25hbGluZ3N0YXRlY2hh
bmdlZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb250cmFjay5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tb3BlcmF0aW9ucy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVlcklkZW50aXR5Lmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLWhlbHBlci5qcwogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXBsYW4tYi1pcy1ub3Qtc3VwcG9ydGVkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZWxheS1jYW52YXMu
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZS10cmFjay1tdXRlLmh0dHBzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1yZW1vdmVUcmFjay5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydElj
ZS1vbm5lZ290aWF0aW9ubmVlZGVkLmh0dHBzLmh0bWwKQEAgLTEwMyw4ICsxMTIsMTIgQEAgTGlz
dCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi12aWRlb0RldGVjdG9yVGVzdC5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb25JY2VFcnJvckV2ZW50Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50LWNvbnN0cnVjdG9y
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENRdWljU3RyZWFtLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENRdWljVHJhbnNwb3J0LWhlbHBlci5qcworL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1F1aWNUcmFu
c3BvcnQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cENhcGFiaWxpdGllcy1oZWxwZXIuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWNv
ZGVjcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFt
ZXRlcnMtZW5jb2RpbmdzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhlYWRlckV4dGVuc2lvbnMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0
cFBhcmFtZXRlcnMtaGVscGVyLmpzCkBAIC0xMjUsNiArMTM4LDcgQEAgTGlzdCBvZiBmaWxlczoK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBTZW5kZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLWRpcmVjdGlvbi5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNj
ZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0RGlyZWN0aW9u
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5odHRwcy5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0
cFRyYW5zcG9ydC1jb25zdHJ1Y3Rvci5odG1sCkBAIC0xMzQsMTAgKzE0OCwxMCBAQCBMaXN0IG9m
IGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1N0YXRzLWhlbHBlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1RyYWNrRXZlbnQtY29uc3RydWN0b3IuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1RyYWNrRXZl
bnQtZmlyZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvZGF0YWNoYW5uZWwtZW1wdHlzdHJpbmcuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2RpY3Rpb25hcnktaGVscGVyLmpzCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0c3Rh
dHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL2hpc3RvcmljYWwuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL2lkZW50aXR5LWhlbHBlci5zdWIuanMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9pZGxoYXJuZXNzLmh0dHBzLndpbmRv
dy5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L25vLW1lZGlhLWNhbGwuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3Byb21pc2VzLWNhbGwuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkYjRkODhjYTZjZmY5NDliNWMwNDJhMDRhOGZkNWMy
MmM1MTc2OTA3Li5jM2IxYzNhZWQyYmI2Nzc5OGEyZDc5OTljYTZlMzU0OTY5MTZkMGVlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA0NSw3ICsyMDQ1
LDcgQEAgd2Via2l0Lm9yZy9iLzIxODM0NiBbIE1vamF2ZSBdIGZhc3QvdGV4dC9jYW52YXMtY29s
b3ItZm9udHMgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzIxOTQwMyBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5kaWRhdGUtaW4tc2Rw
Lmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMjE5NDYwIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZl
Y3QtbmVnb3RpYXRpb24uaHR0cHMuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzIxOTQ2MCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1w
ZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJraXQu
b3JnL2IvMjE5NTU1IGluc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sIFsgUGFz
cyBUaW1lb3V0IF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29u
IGIvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCmluZGV4IDJhODEyMWFiYzcxZDU3NDM0
MDBjZTJhYTc3YmM3YzQxZWE1M2FjYmQuLjAwNzQzNjUxZmJmNGE4NjdmN2IyYTQxMDQ3ODJlYTEw
NjhlNTRlYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgorKysg
Yi9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KQEAgLTQwNjcsNiArNDA2Nyw5IEBACiAg
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVs
LWNsb3NlLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCisgICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQuaHRt
bCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC5odG1sIjogWwogICAgICAgICAi
c2xvdyIKICAgICBdLApAQCAtNDA3Niw2ICs0MDc5LDkgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tU0xELVNSRC10aW1pbmcu
aHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FwdHVyZS12aWRl
by5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRh
Q2hhbm5lbC5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLApAQCAtNDA5Nyw2ICs0MTAz
LDEyIEBACiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMuaHRtbCI6IFsKICAgICAgICAg
InNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQuaHRtbCI6IFsKKyAg
ICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVsYXktY2FudmFzLmh0dHBzLmh0bWwiOiBbCisg
ICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZS10cmFjay1tdXRlLmh0dHBzLmh0bWwi
OiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCkBAIC00MTM5LDYgKzQxNTEsMTUgQEAKICAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXVmcmFn
cHdkLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCisgICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1jbG9ja3JhdGUuaHRtbCI6IFsK
KyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1kb250LWRvbnQtZG9udC5odG1sIjogWworICAgICAg
ICAic2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm90b2NvbC92cDgtZm10cC5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAog
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFz
aWMuaHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438246</attachid>
            <date>2021-09-15 08:35:11 -0700</date>
            <delta_ts>2021-09-17 04:40:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229549-20210915173505.patch</filename>
            <type>text/plain</type>
            <size>278606</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNDQ2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjM2ZTgwN2Q2ZWUxMzRkN2EzNzgz
MzJlNDk0NjI0YTc0MTE0NThjOS4uN2YzZDFjN2U2N2M5ZjBmYmQ1NjI5MmFjMTRkNmUxNDU2NDIz
NTRlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA5LTE1ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN5bmMgV1BUIHdlYnJ0YyB0ZXN0cyBmcm9t
IHVwc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjk1NDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyNjcwMjM2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuc2tpcHBpbmcgc29tZSB0ZXN0
cyB0aGF0IGFyZSBubyBsb25nZXIgZmxha3kuCisgICAgICAgIE1hcmtpbmcgc29tZSBuZXcgdGVz
dHMgYXMgZmxha3kuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHRlc3RzLW9wdGlvbnMuanNv
bjoKKwogMjAyMS0wOS0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIGV2ZW50IHF1ZXVlIHRvIGZpcmUgUlRDUGVlckNvbm5lY3Rpb24gZXZlbnRzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA4MGMyMTIxMzY3ZWNiNDYwMmVhMjA5MjQz
MGFmM2Y5YjJmMzZhODMyLi5kZDNhZDExMWRhOGNiYmI0NzUwZDM4Njc2NjkwNzEwMDY5OTE2M2Y3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTcgQEAKKzIwMjEt
MDktMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlc3lu
YyBXUFQgd2VicnRjIHRlc3RzIGZyb20gdXBzdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTU0OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODI2NzAyMzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRp
b24taWNlU2VydmVycy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xv
c2UuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFu
bmVsLWljZVJlc3RhcnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFD
aGFubmVsLXNlbmQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0R0bHNUcmFuc3BvcnQtc3RhdGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlvblN0YXRlLWNhbmRpZGF0ZS1w
YWlyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24taGVscGVyLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5o
dHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtY29ubmVj
dGlvblNldHVwLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRl
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1hZGRUcmFjay5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FwdHVy
ZS12aWRlby5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25u
ZWN0aW9uU3RhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2VpdmUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZh
dWx0SWNlU2VydmVycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZlcnMuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldElk
ZW50aXR5QXNzZXJ0aW9uLnN1Yi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIu
anM6CisgICAgICAgIChkb0V4Y2hhbmdlKToKKyAgICAgICAgKGFzeW5jIGxpc3RlbkZvclNTUkNz
KToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWljZUNvbm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWw6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1t
YW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1wZWVySWRlbnRpdHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlZXJJZGVudGl0eS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBsYW4tYi1pcy1u
b3Qtc3VwcG9ydGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXJlbGF5LWNhbnZhcy5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVsYXktY2Fu
dmFzLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUuaHR0cHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
cmVzdGFydEljZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2Nh
bERlc2NyaXB0aW9uLWFuc3dlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLW9mZmVy
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0
TG9jYWxEZXNjcmlwdGlvbi1wcmFuc3dlci5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tdHJhY2tz
Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRlZ3JhZGF0aW9uUHJlZmVyZW5jZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFy
YW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXREaXJlY3Rpb24tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1J0cFRyYW5zY2VpdmVyLXNldERpcmVjdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIt
c3RvcC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJh
bnNjZWl2ZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1N0YXRzLWhlbHBlci5qczoKKyAgICAgICAgKHZhbGlkYXRlQ29kZWNTdGF0cyk6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0c3RhdHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL2lkZW50aXR5LWhlbHBlci5zdWIuanM6IEFkZGVkLgorICAgICAgICAo
cGFyc2VBc3NlcnRpb25SZXN1bHQpOgorICAgICAgICAoZ2V0SWRwRG9tYWlucyk6CisgICAgICAg
IChhc3NlcnRfcnRjZXJyb3JfcmVqZWN0aW9uKToKKyAgICAgICAgKHNldCBob3N0U3RyaW5nKToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1lZGlhLWNhbGwuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb21pc2VzLWNhbGwuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL1JFQURNRS50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9kdGxzLXNldHVw
Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9kdGxzLXNldHVwLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXItZGF0YWNoYW5uZWwt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1jbG9ja3JhdGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL3J0cC1jbG9ja3JhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1l
eHRlbnNpb24tc3VwcG9ydC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3J0cC1wYXlsb2FkdHlwZXMuaHRtbDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9udC1kb250LWRvbnQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL3NkZXMtZG9udC1kb250LWRvbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdnA4LWZtdHAtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZwOC1m
bXRwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJv
dG9jb2wvdzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9zaW1wbGVjYWxsLW5vLXNzcmNzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvZ2V0U3Rh
dHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFjdGl2ZS5o
dHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9z
aW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdG9vbHMvcGFja2FnZS5q
c29uOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdzNjLWltcG9ydC5sb2c6
CisKIDIwMjEtMDktMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFVzZSBldmVudCBxdWV1ZSB0byBmaXJlIFJUQ1BlZXJDb25uZWN0aW9uIGV2ZW50cwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggYThlMjY2NmRhNWM0MTBmZmU1MzMzNjQ5NDU3YmNmM2VmNWJhZDBi
YS4uZGY4MjhlYmFkMTUzMDBjNjFhMWNhOGIxNTE2YmUxYmRiNjExMjc5MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yMTk2LDIxICsyMTk2LDE1IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0cHMuCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1w
ZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KIAoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tcmVsYXktY2FudmFzLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNs
b2NrcmF0ZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KKwogIyBTa2lwIHRpbWluZyBvdXQgdGVzdAot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
c2V0UmVtb3RlRGVzY3JpcHRpb24tdHJhY2tzLmh0dHBzLmh0bWwgWyBTa2lwIF0KKwogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3Rl
LXRyYWNrLW11dGUuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQuaHRtbCBbIFNraXAg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlv
blN0YXRlLWNhbmRpZGF0ZS1wYWlyLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRT
dGF0cy5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmljZWNhbmRpZGF0ZWVycm9yLmh0dHBzLmh0bWwg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1RyYWNr
RXZlbnQtZmlyZS5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9kdGxzLWZpbmdlcnByaW50LXZhbGlkYXRpb24uaHRtbCBbIFNraXAg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2lj
Lmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3NpbXVsY2FzdC9nZXRTdGF0cy5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sIFsgU2tp
cCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0
UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy5odG1sIFsgU2tpcCBdCi0K
IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY2xvc2VkLXN0YXRlLmh0bWwgWyBT
a2lwIF0KIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY29ubmVjdGlvbnN0
YXRlY2hhbmdlLWV2ZW50Lmh0bWwgWyBTa2lwIF0KIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24tbW9yZS1tZWRpYS10by1uZWdvdGlhdGUuaHRtbCBbIFNraXAgXQpAQCAtMjIxOCw2
ICsyMjEyLDkgQEAgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1vdmVybG9hZGVk
LW9wZXJhdGlvbnMtcGFyYW1zLmh0bWwgWyBTa2lwIF0KIGZhc3QvbWVkaWFzdHJlYW0vUlRDUnRw
U2VuZGVyLXJlcGxhY2VUcmFjay5odG1sIFsgU2tpcCBdCiBmYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLWluc3BlY3Qtb2ZmZXItYnVuZGxlUG9saWN5LWJ1bmRsZS1vbmx5Lmh0bWwg
WyBGYWlsdXJlIF0KIAorIyBNaXNzaW5nIEFQSSBzdXBwb3J0LgoraW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FwdHVyZS12aWRlby5odHRw
cy5odG1sIFsgU2tpcCBdCisKICMgT25seSBpT1MgV0sxIGhhcyB0ZXN0UnVubmVyLnNldFBhZ2VQ
YXVzZWQuCiBmYXN0L2RvbS90aW1lci1maXJlLWFmdGVyLXBhZ2UtcGF1c2UuaHRtbCBbIFNraXAg
XQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9y
dC1leHBlY3RhdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMv
aW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4IDc0NTM3ZjhhMGVmMzQ2YWRmYjg4NmMxYTc4
ZWZkOTkwMjhiNzVjMDkuLmI0NzA0YmVkMDlmYjVkNzlkOTk2ZTQ1NDE4MjI1YzYzNzBkNDNjZjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4
cGVjdGF0aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMv
aW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCkBAIC00NjYsNSArNDY2LDYgQEAKICAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtsZXRzIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMveC1mcmFtZS1vcHRpb25zIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3ho
ciI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtL3Rlc3QvaHRtbC9pbmZyYXN0cnVjdHVy
ZSI6ICJpbXBvcnQiCisgICAgIndlYi1wbGF0Zm9ybS90ZXN0L2h0bWwvaW5mcmFzdHJ1Y3R1cmUi
OiAiaW1wb3J0IiwgCisgICAgIndlYnJ0Yy1wbGF0Zm9ybS10ZXN0cy93ZWJydGMiOiAiaW1wb3J0
IgogfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24t
aWNlU2VydmVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMtZXhwZWN0ZWQu
dHh0CmluZGV4IDM4MGM0N2NiN2FkZGYxMDY5NjdjMmMwZmUxMWM3Y2VkMTU1NjlhYTAuLmIxNjE3
MTcyOGI1MDU2MmIwZWMwNTI0MTFmMjUzZTc0MjMzMjQ1ZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRp
b24taWNlU2VydmVycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4
cGVjdGVkLnR4dApAQCAtMTQwLDE4ICsxNDAsNCBAQCBGQUlMIHNldENvbmZpZ3VyYXRpb24oY29u
ZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNzd29yZCwgYW5kCiAg
ICAgICAgICAgYWNjZXNzVG9rZW46ICcnCiAgICAgICAgIH0KICAgICAgIH1dIH0pIiBkaWQgbm90
IHRocm93Ci1GQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBz
ZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRoLCBhbmQgc3RyaW5nIGNyZWRlbnRpYWwgc2hvdWxk
IHRocm93IEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigp
ID0+Ci0gICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewotICAgICAgICB1cmxzOiAndHVybnM6
dHVybi5leGFtcGxlLm9yZycsCi0gICAgICAgIGNyZWRlbnRpYWxUeXBlOiAnb2F1dGgnLAotICAg
ICAgICB1c2VybmFtZTogJ3VzZXInLAotICAgICAgICBjcmVkZW50aWFsOiAnY3JlZCcKLSAgICAg
IH1dIH0pIiBkaWQgbm90IHRocm93Ci1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdp
dGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCwgYW5kIHN0cmluZyBjcmVkZW50
aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1
bmN0aW9uICIoKSA9PgotICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKLSAgICAgICAgdXJs
czogJ3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLAotICAgICAgICBjcmVkZW50aWFsVHlwZTogJ29h
dXRoJywKLSAgICAgICAgdXNlcm5hbWU6ICd1c2VyJywKLSAgICAgICAgY3JlZGVudGlhbDogJ2Ny
ZWQnCi0gICAgICB9XSB9KSIgZGlkIG5vdCB0aHJvdwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9u
LWljZVNlcnZlcnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCmluZGV4IDFjYmYx
ZDZjMWRhNDdiODBkOWIzZDcxNzNmNzgwNjJmMmU0OWJmMTAuLjM2ZjEyNzc2NzhhYzNlNDAyZTYw
ZTEyNTRjMzliYzBkNGQ4NGU4NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCkBAIC0zNzAsMzYgKzM3MCw0IEBA
CiAgICAgICB9XSB9KSk7CiAgIH0sICd3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUg
cGFzc3dvcmQsIGFuZCBvYmplY3QgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vz
c0Vycm9yJyk7CiAKLSAgLyoKLSAgICA0LjMuMi4gIFRvIHNldCBhIGNvbmZpZ3VyYXRpb24KLSAg
ICAgIDExLjYuIElmIHNjaGVtZSBuYW1lIGlzIHR1cm4gb3IgdHVybnMsIGFuZCBzZXJ2ZXIuY3Jl
ZGVudGlhbFR5cGUgaXMgIm9hdXRoIiwKLSAgICAgICAgICAgIGFuZCBzZXJ2ZXIuY3JlZGVudGlh
bCBpcyBub3QgYW4gUlRDT0F1dGhDcmVkZW50aWFsLCB0aGVuIHRocm93IGFuCi0gICAgICAgICAg
ICBJbnZhbGlkQWNjZXNzRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgKi8KLSAgY29u
ZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZEFjY2Vz
c0Vycm9yJywgKCkgPT4KLSAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7Ci0gICAgICAgIHVy
bHM6ICd0dXJuczp0dXJuLmV4YW1wbGUub3JnJywKLSAgICAgICAgY3JlZGVudGlhbFR5cGU6ICdv
YXV0aCcsCi0gICAgICAgIHVzZXJuYW1lOiAndXNlcicsCi0gICAgICAgIGNyZWRlbnRpYWw6ICdj
cmVkJwotICAgICAgfV0gfSkpOwotICB9LCAnd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxU
eXBlIG9hdXRoLCBhbmQgc3RyaW5nIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nl
c3NFcnJvcicpOwotCi0gIC8qCi0gICAgVGVzdGVkCi0gICAgICA0LjMuMi4gIFRvIHNldCBhIGNv
bmZpZ3VyYXRpb24KLSAgICAgICAgMTEuMS02LgotCi0gICAgVW50ZXN0YWJsZQotICAgICAgNC4z
LjIuICBUbyBzZXQgYSBjb25maWd1cmF0aW9uCi0gICAgICAgIDExLjcuICBBcHBlbmQgc2VydmVy
IHRvIHZhbGlkYXRlZFNlcnZlcnMuCi0KLSAgICBDb3ZlcmFnZSBSZXBvcnQKLSAgICAgIFRlc3Rl
ZCAgICAgICAgIDkKLSAgICAgIE5vdCBUZXN0ZWQgICAgIDAKLSAgICAgIFVudGVzdGFibGUgICAg
IDEKLSAgICAgIFRvdGFsICAgICAgICAgMTAKLSAgICovCi0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
RGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVmZmVy
ZWRBbW91bnQtZXhwZWN0ZWQudHh0CmluZGV4IDQyYjZjNjMyMGU5ZWUzNzIxNjFiYmIyMGE1NmQx
MDQwMGRiMjk0OGIuLjgwNWY4YWY0OGMwODgwNjJhOGE2NDA4ZmU3OTlmZjcyMjAxNmY3NTkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsLWJ1ZmZlcmVkQW1vdW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hh
bm5lbC1idWZmZXJlZEFtb3VudC1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsMjYgQEAKIAotSGFy
bmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLUZBSUwgYnVmZmVyZWRBbW91
bnQgc2hvdWxkIGluY3JlYXNlIHRvIGJ5dGUgbGVuZ3RoIG9mIGVuY29kZWQgdW5pY29kZSBzdHJp
bmcgc2VudCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgYnVmZmVyZWRBbW91bnQgdG8gYmUgdGhlIGJ5
dGUgbGVuZ3RoIG9mIHRoZSB1bmljb2RlIHN0cmluZyBleHBlY3RlZCAxMiBidXQgZ290IDAKLUZB
SUwgYnVmZmVyZWRBbW91bnQgc2hvdWxkIGluY3JlYXNlIHRvIGJ5dGUgbGVuZ3RoIG9mIGJ1ZmZl
ciBzZW50IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBidWZmZXJlZEFtb3VudCB0byBpbmNyZWFzZSB0
byBieXRlIGxlbmd0aCBvZiBzZW50IGJ1ZmZlciBleHBlY3RlZCA1IGJ1dCBnb3QgMAotRkFJTCBi
dWZmZXJlZEFtb3VudCBzaG91bGQgaW5jcmVhc2UgdG8gc2l6ZSBvZiBibG9iIHNlbnQgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiTm90U3VwcG9y
dGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iCi1GQUlMIGJ1ZmZlcmVk
QW1vdW50IHNob3VsZCBpbmNyZWFzZSBieSBieXRlIGxlbmd0aCBmb3IgZWFjaCBtZXNzYWdlIHNl
bnQgYXNzZXJ0X3VucmVhY2hlZDogVW5leHBlY3RlZCBwcm9taXNlIHJlamVjdGlvbjogRXJyb3I6
IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBidWZmZXJlZEFtb3VudCB0byBiZSB0aGUgdG90YWwgbGVu
Z3RoIG9mIGFsbCBtZXNzYWdlcyBxdWV1ZWQgdG8gc2VuZCBleHBlY3RlZCA1IGJ1dCBnb3QgMCBS
ZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLVRJTUVPVVQgRGF0YSBjaGFubmVsIGJ1ZmZlcmVkYW1v
dW50bG93IGV2ZW50IGZpcmVzIGFmdGVyIHNlbmQoKSBpcyBjb21wbGV0ZSBUZXN0IHRpbWVkIG91
dAotTk9UUlVOIERhdGEgY2hhbm5lbCBidWZmZXJlZGFtb3VudCBpcyBkYXRhLmxlbmd0aCBvbiBz
ZW5kKGRhdGEpCi1OT1RSVU4gRGF0YSBjaGFubmVsIGJ1ZmZlcmVkYW1vdW50IHJldHVybnMgdGhl
IHNhbWUgYW1vdW50IGlmIG5vIG1vcmUgZGF0YSBpcyBzZW50IG9uIHRoZSBjaGFubmVsCi1OT1RS
VU4gRGF0YSBjaGFubmVsIGJ1ZmZlcmVkYW1vdW50bG93IGV2ZW50IGZpcmVzIG9ubHkgb25jZSBh
ZnRlciBtdWx0aXBsZSBjb25zZWN1dGl2ZSBzZW5kKCkgY2FsbHMKLU5PVFJVTiBEYXRhIGNoYW5u
ZWwgYnVmZmVyZWRhbW91bnRsb3cgZXZlbnQgZmlyZXMgYWZ0ZXIgZWFjaCBzZW50IG1lc3NhZ2UK
K1BBU1MgZGF0YWNoYW5uZWwgYnVmZmVyZWRBbW91bnQgaW5pdGlhbCB2YWx1ZSBzaG91bGQgYmUg
MCBmb3IgYm90aCBwZWVycworUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQg
aW5jcmVhc2UgdG8gYnl0ZSBsZW5ndGggb2YgZW5jb2RlZHVuaWNvZGUgc3RyaW5nIHNlbnQKK1BB
U1MgZGF0YWNoYW5uZWwgYnVmZmVyZWRBbW91bnQgc2hvdWxkIGluY3JlYXNlIHRvIGJ5dGUgbGVu
Z3RoIG9mIGJ1ZmZlciBzZW50CitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3Vs
ZCBpbmNyZWFzZSB0byBzaXplIG9mIGJsb2Igc2VudAorUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJl
ZEFtb3VudCBzaG91bGQgaW5jcmVhc2UgYnkgYnl0ZSBsZW5ndGggZm9yIGVhY2ggbWVzc2FnZSBz
ZW50CitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBub3QgZGVjcmVhc2Ug
aW1tZWRpYXRlbHkgYWZ0ZXIgaW5pdGlhdGluZyBjbG9zdXJlCitQQVNTIGRhdGFjaGFubmVsIGJ1
ZmZlcmVkQW1vdW50IHNob3VsZCBub3QgZGVjcmVhc2UgYWZ0ZXIgY2xvc2luZyB0aGUgcGVlciBj
b25uZWN0aW9uCitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZlcmVkYW1vdW50bG93IGV2ZW50IGZpcmVz
IGFmdGVyIHNlbmQoKSBpcyBjb21wbGV0ZQorUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJlZGFtb3Vu
dCBpcyBkYXRhLmxlbmd0aCBvbiBzZW5kKGRhdGEpCitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZlcmVk
YW1vdW50IHJldHVybnMgdGhlIHNhbWUgYW1vdW50IGlmIG5vIG1vcmUgZGF0YSBpcworUEFTUyBk
YXRhY2hhbm5lbCBidWZmZXJlZGFtb3VudGxvdyBldmVudCBmaXJlcyBvbmx5IG9uY2UgYWZ0ZXIg
bXVsdGlwbGUgY29uc2VjdXRpdmUgc2VuZCgpIGNhbGxzCitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZl
cmVkYW1vdW50bG93IGV2ZW50IGZpcmVzIGFmdGVyIGVhY2ggc2VudCBtZXNzYWdlCitQQVNTIG5l
Z290aWF0ZWQgZGF0YWNoYW5uZWwgYnVmZmVyZWRBbW91bnQgaW5pdGlhbCB2YWx1ZSBzaG91bGQg
YmUgMCBmb3IgYm90aCBwZWVycworUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVk
QW1vdW50IHNob3VsZCBpbmNyZWFzZSB0byBieXRlIGxlbmd0aCBvZiBlbmNvZGVkdW5pY29kZSBz
dHJpbmcgc2VudAorUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNo
b3VsZCBpbmNyZWFzZSB0byBieXRlIGxlbmd0aCBvZiBidWZmZXIgc2VudAorUEFTUyBuZWdvdGlh
dGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSB0byBzaXplIG9m
IGJsb2Igc2VudAorUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNo
b3VsZCBpbmNyZWFzZSBieSBieXRlIGxlbmd0aCBmb3IgZWFjaCBtZXNzYWdlIHNlbnQKK1BBU1Mg
bmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQgbm90IGRlY3JlYXNl
IGltbWVkaWF0ZWx5IGFmdGVyIGluaXRpYXRpbmcgY2xvc3VyZQorUEFTUyBuZWdvdGlhdGVkIGRh
dGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBub3QgZGVjcmVhc2UgYWZ0ZXIgY2xvc2lu
ZyB0aGUgcGVlciBjb25uZWN0aW9uCitQQVNTIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgYnVmZmVy
ZWRhbW91bnRsb3cgZXZlbnQgZmlyZXMgYWZ0ZXIgc2VuZCgpIGlzIGNvbXBsZXRlCitQQVNTIG5l
Z290aWF0ZWQgZGF0YWNoYW5uZWwgYnVmZmVyZWRhbW91bnQgaXMgZGF0YS5sZW5ndGggb24gc2Vu
ZChkYXRhKQorUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkYW1vdW50IHJldHVy
bnMgdGhlIHNhbWUgYW1vdW50IGlmIG5vIG1vcmUgZGF0YSBpcworUEFTUyBuZWdvdGlhdGVkIGRh
dGFjaGFubmVsIGJ1ZmZlcmVkYW1vdW50bG93IGV2ZW50IGZpcmVzIG9ubHkgb25jZSBhZnRlciBt
dWx0aXBsZSBjb25zZWN1dGl2ZSBzZW5kKCkgY2FsbHMKK1BBU1MgbmVnb3RpYXRlZCBkYXRhY2hh
bm5lbCBidWZmZXJlZGFtb3VudGxvdyBldmVudCBmaXJlcyBhZnRlciBlYWNoIHNlbnQgbWVzc2Fn
ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1jbG9zZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1j
bG9zZS1leHBlY3RlZC50eHQKaW5kZXggM2UxNjlkNjMwYzVkMWRmMWQ4YjkxMTEzMjNkMjE4M2U1
NTEyMjk3Zi4uNmE0ZmY3N2I3MjljZWEwZjA1YjAzNjA4MGY2Yjc5N2ZmZDk2YTE4YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRGF0YUNoYW5uZWwtY2xvc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLWV4
cGVjdGVkLnR4dApAQCAtMyw4ICszLDEwIEBAIFBBU1MgQ2xvc2UgZGF0YWNoYW5uZWwgY2F1c2Vz
IG9uY2xvc2luZyBhbmQgb25jbG9zZSB0byBiZSBjYWxsZWQKIFBBU1MgQ2xvc2UgZGF0YWNoYW5u
ZWwgY2F1c2VzIGNsb3NpbmcgYW5kIGNsb3NlIGV2ZW50IHRvIGJlIGNhbGxlZAogUEFTUyBDbG9z
ZSBwZWVyY29ubmVjdGlvbiBjYXVzZXMgY2xvc2UgZXZlbnQgYW5kIGVycm9yIHRvIGJlIGNhbGxl
ZCBvbiBkYXRhY2hhbm5lbAogUEFTUyBDbG9zZSBwZWVyY29ubmVjdGlvbiBhZnRlciBkYXRhY2hh
bm5lbCBjbG9zZSBjYXVzZXMgbm8gZXZlbnRzCitQQVNTIENsb3NlIHBlZXJjb25uZWN0aW9uIGNh
dXNlcyBjbG9zZSBldmVudCBhbmQgZXJyb3Igb24gbWFueSBjaGFubmVscywgZGF0YWNoYW5uZWwK
IFBBU1MgQ2xvc2UgbmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBjYXVzZXMgb25jbG9zaW5nIGFuZCBv
bmNsb3NlIHRvIGJlIGNhbGxlZAogUEFTUyBDbG9zZSBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGNh
dXNlcyBjbG9zaW5nIGFuZCBjbG9zZSBldmVudCB0byBiZSBjYWxsZWQKIFBBU1MgQ2xvc2UgcGVl
cmNvbm5lY3Rpb24gY2F1c2VzIGNsb3NlIGV2ZW50IGFuZCBlcnJvciB0byBiZSBjYWxsZWQgb24g
bmVnb3RpYXRlZCBkYXRhY2hhbm5lbAogUEFTUyBDbG9zZSBwZWVyY29ubmVjdGlvbiBhZnRlciBu
ZWdvdGlhdGVkIGRhdGFjaGFubmVsIGNsb3NlIGNhdXNlcyBubyBldmVudHMKK1BBU1MgQ2xvc2Ug
cGVlcmNvbm5lY3Rpb24gY2F1c2VzIGNsb3NlIGV2ZW50IGFuZCBlcnJvciBvbiBtYW55IGNoYW5u
ZWxzLCBuZWdvdGlhdGVkIGRhdGFjaGFubmVsCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3Nl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEYXRhQ2hhbm5lbC1jbG9zZS5odG1sCmluZGV4IGNkNGFjZTJhODM2YmUyYzlmMThkZWNh
NDhjOGMwMWY1ZTFjZGZmMWQuLmUyYTViYTc3MjQ1Y2U0ZDgyMDRmNDczY2ZlZDFjMTIyMzc0MTY2
N2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2Uu
aHRtbApAQCAtNDUsNyArNDUsNyBAQCBmb3IgKGNvbnN0IG9wdGlvbnMgb2YgW3t9LCB7bmVnb3Rp
YXRlZDogdHJ1ZSwgaWQ6IDB9XSkgewogICAgIGFzc2VydF90cnVlKGNsb3NpbmdTZWVuLCAnQ2xv
c2luZyBldmVudCB3YXMgc2VlbicpOwogICB9LCBgQ2xvc2UgJHttb2RlfSBjYXVzZXMgY2xvc2lu
ZyBhbmQgY2xvc2UgZXZlbnQgdG8gYmUgY2FsbGVkYCk7CiAKLSAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3Nl
KCkpOwogICAgIGNvbnN0IFtjaGFubmVsMSwgY2hhbm5lbDJdID0gYXdhaXQgY3JlYXRlRGF0YUNo
YW5uZWxQYWlyKHQsIG9wdGlvbnMsIHBjMSk7CkBAIC0xMDAsNSArMTAwLDgxIEBAIGZvciAoY29u
c3Qgb3B0aW9ucyBvZiBbe30sIHtuZWdvdGlhdGVkOiB0cnVlLCBpZDogMH1dKSB7CiAgICAgcGMx
LmNsb3NlKCk7CiAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0LnN0ZXBfdGltZW91
dChyZXNvbHZlLCAxMCkpOwogICB9LCBgQ2xvc2UgcGVlcmNvbm5lY3Rpb24gYWZ0ZXIgJHttb2Rl
fSBjbG9zZSBjYXVzZXMgbm8gZXZlbnRzYCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICAgIHBj
MS5jcmVhdGVEYXRhQ2hhbm5lbCgnbm90LWNvdW50ZWQnLCBvcHRpb25zKTsKKyAgICBjb25zdCB0
b2tlbkRhdGFDaGFubmVsID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICBwYzIub25k
YXRhY2hhbm5lbCA9IHJlc29sdmU7CisgICAgfSk7CisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVz
KHBjMSwgcGMyKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAg
ICBpZiAoIW9wdGlvbnMubmVnb3RpYXRlZCkgeworICAgICAgYXdhaXQgdG9rZW5EYXRhQ2hhbm5l
bDsKKyAgICB9CisgICAgbGV0IGNsb3NlRXhwZWN0ZWRDb3VudCA9IDA7CisgICAgbGV0IGVycm9y
RXhwZWN0ZWRDb3VudCA9IDA7CisgICAgbGV0IHJlc29sdmVDb3VudElzWmVybzsKKyAgICBsZXQg
d2FpdEZvckNvdW50SXNaZXJvID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICByZXNv
bHZlQ291bnRJc1plcm8gPSByZXNvbHZlOworICAgIH0pOworICAgIGZvciAobGV0IGkgPSAxOyBp
IDw9IDEwOyBpKyspIHsKKyAgICAgIGlmICgnaWQnIGluIG9wdGlvbnMpIHsKKyAgICAgICAgb3B0
aW9ucy5pZCA9IGk7CisgICAgICB9CisgICAgICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJycsIG9w
dGlvbnMpOworICAgICAgaWYgKG9wdGlvbnMubmVnb3RpYXRlZCkgeworICAgICAgICBjb25zdCBj
aGFubmVsID0gcGMyLmNyZWF0ZURhdGFDaGFubmVsKCcnLCBvcHRpb25zKTsKKyAgICAgICAgY2hh
bm5lbC5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHQuc3RlcF9mdW5jKGV2ZW50ID0+IHsKKyAg
ICAgICAgICBhc3NlcnRfdHJ1ZShldmVudCBpbnN0YW5jZW9mIFJUQ0Vycm9yRXZlbnQsICdlcnJv
ciBldmVudCAnICsgZXZlbnQpOworICAgICAgICAgIGVycm9yRXhwZWN0ZWRDb3VudCAtPSAxOwor
ICAgICAgICB9KSk7CisgICAgICAgIGNoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xvc2UnLCB0
LnN0ZXBfZnVuYyhldmVudCA9PiB7CisgICAgICAgICAgY2xvc2VFeHBlY3RlZENvdW50IC09IDE7
CisgICAgICAgICAgaWYgKGNsb3NlRXhwZWN0ZWRDb3VudCA9PSAwKSB7CisgICAgICAgICAgICBy
ZXNvbHZlQ291bnRJc1plcm8oKTsKKyAgICAgICAgICB9CisgICAgICAgIH0pKTsKKyAgICAgIH0g
ZWxzZSB7CisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAg
IHBjMi5vbmRhdGFjaGFubmVsID0gKHtjaGFubmVsfSkgPT4geworICAgICAgICAgICAgY2hhbm5l
bC5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHQuc3RlcF9mdW5jKGV2ZW50ID0+IHsKKyAgICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoZXZlbnQgaW5zdGFuY2VvZiBSVENFcnJvckV2ZW50KTsKKyAg
ICAgICAgICAgICAgZXJyb3JFeHBlY3RlZENvdW50IC09IDE7CisgICAgICAgICAgICB9KSk7Cisg
ICAgICAgICAgICBjaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2Nsb3NlJywgdC5zdGVwX2Z1bmMo
ZXZlbnQgPT4geworICAgICAgICAgICAgICBjbG9zZUV4cGVjdGVkQ291bnQgLT0gMTsKKyAgICAg
ICAgICAgICAgaWYgKGNsb3NlRXhwZWN0ZWRDb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAg
cmVzb2x2ZUNvdW50SXNaZXJvKCk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pKTsK
KyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAg
fQorICAgICAgKytjbG9zZUV4cGVjdGVkQ291bnQ7CisgICAgICArK2Vycm9yRXhwZWN0ZWRDb3Vu
dDsKKyAgICB9CisgICAgYXNzZXJ0X2VxdWFscyhjbG9zZUV4cGVjdGVkQ291bnQsIDEwKTsKKyAg
ICAvLyBXZSBoYXZlIHRvIHdhaXQgdW50aWwgU0NUUCBpcyBjb25uZWN0ZWQgYmVmb3JlIHdlIGNs
b3NlLCBvdGhlcndpc2UKKyAgICAvLyB0aGVyZSB3aWxsIGJlIG5vIHNpZ25hbC4KKyAgICAvLyBU
aGUgc3RhdGUgaXMgbm90IGF2YWlsYWJsZSB1bmRlciBQbGFuIEIsIGFuZCB1bnJlbGlhYmxlIG9u
IG5lZ290aWF0ZWQKKyAgICAvLyBjaGFubmVscy4KKyAgICAvLyBUT0RPKGJ1Z3Mud2VicnRjLm9y
Zy8xMjI1OSk6IFJlbW92ZSBkZXBlbmRlbmN5IG9uICJuZWdvdGlhdGVkIgorICAgIGlmIChwYzEu
c2N0cCAmJiAhb3B0aW9ucy5uZWdvdGlhdGVkKSB7CisgICAgICB3YWl0Rm9yU3RhdGUocGMxLnNj
dHAsICdjb25uZWN0ZWQnKTsKKyAgICB9IGVsc2UgeworICAgICAgLy8gVW5kZXIgcGxhbiBCLCB3
ZSBkb24ndCBoYXZlIGEgZHRscyB0cmFuc3BvcnQgdG8gd2FpdCBvbiwgc28ganVzdAorICAgICAg
Ly8gd2FpdCBhIGJpdC4KKyAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdC5zdGVw
X3RpbWVvdXQocmVzb2x2ZSwgMTAwKSk7CisgICAgfQorICAgIHBjMS5jbG9zZSgpOworICAgIGF3
YWl0IHdhaXRGb3JDb3VudElzWmVybzsKKyAgICBhc3NlcnRfZXF1YWxzKGNsb3NlRXhwZWN0ZWRD
b3VudCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhlcnJvckV4cGVjdGVkQ291bnQsIDApOworICB9
LCBgQ2xvc2UgcGVlcmNvbm5lY3Rpb24gY2F1c2VzIGNsb3NlIGV2ZW50IGFuZCBlcnJvciBvbiBt
YW55IGNoYW5uZWxzLCAke21vZGV9YCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFu
bmVsLWljZVJlc3RhcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtaWNlUmVzdGFydC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzFhMTg3N2ZiZDY3NGNhMGQ2NWU3ZWYwZjI2ZWNlMDg4YmMwM2M1
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorCitQQVNTIERhdGEgY2hhbm5lbCByZW1haW5zIHVzYWJsZSBhZnRlciBJ
Q0UgcmVzdGFydAorUEFTUyBEYXRhIGNoYW5uZWwgcmVtYWlucyB1c2FibGUgYXQgZWFjaCBzdGVw
IG9mIGFuIElDRSByZXN0YXJ0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0RhdGFDaGFubmVsLWljZVJlc3RhcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWVjNTBhNTg3MDkzODhi
YWU3MmU5Njg0NjMwMzEwYzMyNTYxZTUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtaWNl
UmVzdGFydC5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hh
cnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxl
PlJUQ0RhdGFDaGFubmVsIGludGVyYWN0aW9ucyB3aXRoIElDRSByZXN0YXJ0PC90aXRsZT4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1
c2Ugc3RyaWN0JzsKKworYXN5bmMgZnVuY3Rpb24gY2hlY2tDYW5QYXNzRGF0YShjaGFubmVsMSwg
Y2hhbm5lbDIpIHsKKyAgY2hhbm5lbDEuc2VuZCgnaGVsbG8nKTsKKyAgY29uc3QgbWVzc2FnZSA9
IGF3YWl0IGF3YWl0TWVzc2FnZShjaGFubmVsMik7CisgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwg
J2hlbGxvJyk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHBpbmdQb25nRGF0YShjaGFubmVsMSwgY2hh
bm5lbDIsIHNpemU9MSkgeworICBjaGFubmVsMS5zZW5kKCdoZWxsbycpOworICBjb25zdCByZXF1
ZXN0ID0gYXdhaXQgYXdhaXRNZXNzYWdlKGNoYW5uZWwyKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1
ZXN0LCAnaGVsbG8nKTsKKyAgY29uc3QgcmVzcG9uc2UgPSAneCcucmVwZWF0KHNpemUpOworICBj
aGFubmVsMi5zZW5kKHJlc3BvbnNlKTsKKyAgY29uc3QgcmVzcG9uc2VSZWNlaXZlZCA9IGF3YWl0
IGF3YWl0TWVzc2FnZShjaGFubmVsMSk7CisgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UsIHJlc3Bv
bnNlUmVjZWl2ZWQpOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5j
bG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGNvbnN0IFtjaGFubmVsMSwgY2hhbm5l
bDJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIHt9LCBwYzEsIHBjMik7CisgIGNo
YW5uZWwyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgdC51bnJlYWNoZWRfZnVuYygpKTsKKyAg
Y2hhbm5lbDIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB0LnVucmVhY2hlZF9mdW5jKCkpOwor
CisgIGF3YWl0IGNoZWNrQ2FuUGFzc0RhdGEoY2hhbm5lbDEsIGNoYW5uZWwyKTsKKyAgYXdhaXQg
Y2hlY2tDYW5QYXNzRGF0YShjaGFubmVsMiwgY2hhbm5lbDEpOworCisgIHBjMS5yZXN0YXJ0SWNl
KCk7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworCisgIGF3YWl0IGNo
ZWNrQ2FuUGFzc0RhdGEoY2hhbm5lbDEsIGNoYW5uZWwyKTsKKyAgYXdhaXQgY2hlY2tDYW5QYXNz
RGF0YShjaGFubmVsMiwgY2hhbm5lbDEpOworICBjaGFubmVsMS5jbG9zZSgpOworICBjaGFubmVs
Mi5jbG9zZSgpOworfSwgYERhdGEgY2hhbm5lbCByZW1haW5zIHVzYWJsZSBhZnRlciBJQ0UgcmVz
dGFydGApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsK
KyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGNvbnN0IFtjaGFubmVsMSwgY2hhbm5lbDJdID0gYXdh
aXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIHt9LCBwYzEsIHBjMik7CisgIGNoYW5uZWwyLmFk
ZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgdC51bnJlYWNoZWRfZnVuYygpKTsKKyAgY2hhbm5lbDIu
YWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB0LnVucmVhY2hlZF9mdW5jKCkpOworCisgIGF3YWl0
IHBpbmdQb25nRGF0YShjaGFubmVsMSwgY2hhbm5lbDIpOworICBwYzEucmVzdGFydEljZSgpOwor
CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIGF3YWl0IHBpbmdQb25nRGF0
YShjaGFubmVsMSwgY2hhbm5lbDIpOworICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24o
cGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBhd2FpdCBwaW5nUG9uZ0RhdGEoY2hhbm5lbDEsIGNo
YW5uZWwyKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0
ZUFuc3dlcigpKTsKKyAgYXdhaXQgcGluZ1BvbmdEYXRhKGNoYW5uZWwxLCBjaGFubmVsMik7Cisg
IGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7Cisg
IGF3YWl0IHBpbmdQb25nRGF0YShjaGFubmVsMSwgY2hhbm5lbDIpOworICBjaGFubmVsMS5jbG9z
ZSgpOworICBjaGFubmVsMi5jbG9zZSgpOworfSwgYERhdGEgY2hhbm5lbCByZW1haW5zIHVzYWJs
ZSBhdCBlYWNoIHN0ZXAgb2YgYW4gSUNFIHJlc3RhcnRgKTsKKworCisKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDRGF0YUNoYW5uZWwtc2VuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLWV4cGVj
dGVkLnR4dAppbmRleCAwYjVkNjQ2NTBjZTY2ZmFiMjJkZjBjZTljYzI2ZmE2N2E1YmNhMDJhLi42
M2EzOGM0OTY5NDZkZmFkNjBjZjQ4MTZlM2IxOTljODYwNTBiMDJmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hh
bm5lbC1zZW5kLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLWV4cGVjdGVkLnR4dApA
QCAtMyw4ICszLDEwIEBAIFBBU1MgQ2FsbGluZyBzZW5kKCkgd2hlbiBkYXRhIGNoYW5uZWwgaXMg
aW4gY29ubmVjdGluZyBzdGF0ZSBzaG91bGQgdGhyb3cgSW52YWxpCiBQQVNTIERhdGFjaGFubmVs
IHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgc2ltcGxlIHN0cmluZyBhbmQgcmVjZWl2ZSBhcyBzdHJp
bmcKIFBBU1MgRGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCB1bmljb2RlIHN0cmlu
ZyBhbmQgcmVjZWl2ZSBhcyB1bmljb2RlIHN0cmluZwogUEFTUyBEYXRhY2hhbm5lbCBzaG91bGQg
aWdub3JlIGJpbmFyeVR5cGUgYW5kIGFsd2F5cyByZWNlaXZlIHN0cmluZyBtZXNzYWdlIGFzIHN0
cmluZworUEFTUyBEYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIGFuIGVtcHR5IHN0
cmluZyBhbmQgcmVjZWl2ZSBhbiBlbXB0eSBzdHJpbmcKIFBBU1MgRGF0YWNoYW5uZWwgc2hvdWxk
IGJlIGFibGUgdG8gc2VuZCBVaW50OEFycmF5IG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlC
dWZmZXIKIFBBU1MgRGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBBcnJheUJ1ZmZl
ciBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5QnVmZmVyCitQQVNTIERhdGFjaGFubmVsIHNo
b3VsZCBiZSBhYmxlIHRvIHNlbmQgYW4gZW1wdHkgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVj
ZWl2ZSBhcyBBcnJheUJ1ZmZlcgogUEFTUyBEYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBz
ZW5kIEJsb2IgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcgogUEFTUyBEYXRhY2hh
bm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2Vp
dmUgYXMgQmxvYgogRkFJTCBEYXRhY2hhbm5lbCBiaW5hcnlUeXBlIHNob3VsZCByZWNlaXZlIG1l
c3NhZ2UgYXMgQmxvYiBieSBkZWZhdWx0IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBpbml0aWFsIGJp
bmFyeVR5cGUgdmFsdWUgdG8gYmUgYmxvYiBleHBlY3RlZCAiYmxvYiIgYnV0IGdvdCAiYXJyYXli
dWZmZXIiCkBAIC0xMyw4ICsxNSwxMCBAQCBGQUlMIERhdGFjaGFubmVsIHNlbmQoKSB1cCB0byBt
YXggc2l6ZSBzaG91bGQgc3VjY2VlZCwgYWJvdmUgbWF4IHNpemUgc2hvdWxkIGZhaQogUEFTUyBO
ZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgc2ltcGxlIHN0cmlu
ZyBhbmQgcmVjZWl2ZSBhcyBzdHJpbmcKIFBBU1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91
bGQgYmUgYWJsZSB0byBzZW5kIHVuaWNvZGUgc3RyaW5nIGFuZCByZWNlaXZlIGFzIHVuaWNvZGUg
c3RyaW5nCiBQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGlnbm9yZSBiaW5hcnlU
eXBlIGFuZCBhbHdheXMgcmVjZWl2ZSBzdHJpbmcgbWVzc2FnZSBhcyBzdHJpbmcKK1BBU1MgTmVn
b3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIGFuIGVtcHR5IHN0cmlu
ZyBhbmQgcmVjZWl2ZSBhbiBlbXB0eSBzdHJpbmcKIFBBU1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5l
bCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIFVpbnQ4QXJyYXkgbWVzc2FnZSBhbmQgcmVjZWl2ZSBh
cyBBcnJheUJ1ZmZlcgogUEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxl
IHRvIHNlbmQgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcgor
UEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgYW4gZW1w
dHkgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcgogUEFTUyBO
ZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgQmxvYiBtZXNzYWdl
IGFuZCByZWNlaXZlIGFzIEFycmF5QnVmZmVyCiBQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwg
c2hvdWxkIGJlIGFibGUgdG8gc2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCByZWNlaXZlIGFz
IEJsb2IKIEZBSUwgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBiaW5hcnlUeXBlIHNob3VsZCByZWNl
aXZlIG1lc3NhZ2UgYXMgQmxvYiBieSBkZWZhdWx0IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBpbml0
aWFsIGJpbmFyeVR5cGUgdmFsdWUgdG8gYmUgYmxvYiBleHBlY3RlZCAiYmxvYiIgYnV0IGdvdCAi
YXJyYXlidWZmZXIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1z
ZW5kLmh0bWwKaW5kZXggMTk1MjkyMWZiZjI2ZjJjNmU5NTQ2MDAwYTFlOTg0M2I0NDA4MjRlOC4u
ZDc1MjQ1YzM0NzVjNTZjYzk4MzY1ODc2YTNiZGM0YTY2NmZiNjMwOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNo
YW5uZWwtc2VuZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQuaHRtbApAQCAtMzUsOCArMzUsMTAg
QEAKIAogLy8gU2ltcGxlIEFTQ0lJIGVuY29kZWQgc3RyaW5nCiBjb25zdCBoZWxsb1N0cmluZyA9
ICdoZWxsbyc7Citjb25zdCBlbXB0eVN0cmluZyA9ICcnOwogLy8gQVNDSUkgZW5jb2RlZCBidWZm
ZXIgcmVwcmVzZW50YXRpb24gb2YgdGhlIHN0cmluZwogY29uc3QgaGVsbG9CdWZmZXIgPSBVaW50
OEFycmF5Lm9mKDB4NjgsIDB4NjUsIDB4NmMsIDB4NmMsIDB4NmYpOworY29uc3QgZW1wdHlCdWZm
ZXIgPSBuZXcgVWludDhBcnJheSgpOwogY29uc3QgaGVsbG9CbG9iID0gbmV3IEJsb2IoW2hlbGxv
QnVmZmVyXSk7CiAKIC8vIFVuaWNvZGUgc3RyaW5nIHdpdGggbXVsdGlwbGUgY29kZSB1bml0cwpA
QCAtMTEyLDYgKzExNCwyMCBAQCBmb3IgKGNvbnN0IG9wdGlvbnMgb2YgW3t9LCB7bmVnb3RpYXRl
ZDogdHJ1ZSwgaWQ6IDB9XSkgewogICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLCBoZWxsb1N0
cmluZyk7CiAgICAgfSk7CiAgIH0sIGAke21vZGV9IHNob3VsZCBpZ25vcmUgYmluYXJ5VHlwZSBh
bmQgYWx3YXlzIHJlY2VpdmUgc3RyaW5nIG1lc3NhZ2UgYXMgc3RyaW5nYCk7CisgIHByb21pc2Vf
dGVzdCh0ID0+IHsKKyAgICByZXR1cm4gY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMp
CisgICAgLnRoZW4oKFtjaGFubmVsMSwgY2hhbm5lbDJdKSA9PiB7CisgICAgICBjaGFubmVsMS5z
ZW5kKGVtcHR5U3RyaW5nKTsKKyAgICAgIC8vIFNlbmQgYSBub24tZW1wdHkgc3RyaW5nIGluIGNh
c2UgdGhlIGltcGxlbWVudGF0aW9uIGlnbm9yZXMgZW1wdHkgbWVzc2FnZXMKKyAgICAgIGNoYW5u
ZWwxLnNlbmQoaGVsbG9TdHJpbmcpOworICAgICAgcmV0dXJuIGF3YWl0TWVzc2FnZShjaGFubmVs
MikKKyAgICB9KS50aGVuKG1lc3NhZ2UgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Yg
bWVzc2FnZSwgJ3N0cmluZycsCisgICAgICAgICdFeHBlY3QgbWVzc2FnZSB0byBiZSBhIHN0cmlu
ZycpOworCisgICAgICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UsIGVtcHR5U3RyaW5nKTsKKyAgICB9
KTsKKyAgfSwgYCR7bW9kZX0gc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBhbiBlbXB0eSBzdHJpbmcg
YW5kIHJlY2VpdmUgYW4gZW1wdHkgc3RyaW5nYCk7CiAKICAgLyoKICAgICA2LjIuIHNlbmQoKQpA
QCAtMTcwLDYgKzE4NiwyMiBAQCBmb3IgKGNvbnN0IG9wdGlvbnMgb2YgW3t9LCB7bmVnb3RpYXRl
ZDogdHJ1ZSwgaWQ6IDB9XSkgewogICAgIH0pOwogICB9LCBgJHttb2RlfSBzaG91bGQgYmUgYWJs
ZSB0byBzZW5kIEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXJg
KTsKIAorICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZURhdGFDaGFubmVs
UGFpcih0LCBvcHRpb25zKQorICAgIC50aGVuKChbY2hhbm5lbDEsIGNoYW5uZWwyXSkgPT4gewor
ICAgICAgY2hhbm5lbDIuYmluYXJ5VHlwZSA9ICdhcnJheWJ1ZmZlcic7CisgICAgICBjaGFubmVs
MS5zZW5kKGVtcHR5QnVmZmVyLmJ1ZmZlcik7CisgICAgICAvLyBTZW5kIGEgbm9uLWVtcHR5IGJ1
ZmZlciBpbiBjYXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBpZ25vcmVzIGVtcHR5IG1lc3NhZ2VzCisg
ICAgICBjaGFubmVsMS5zZW5kKGhlbGxvQnVmZmVyLmJ1ZmZlcik7CisgICAgICByZXR1cm4gYXdh
aXRNZXNzYWdlKGNoYW5uZWwyKQorICAgIH0pLnRoZW4obWVzc2FnZUJ1ZmZlciA9PiB7CisgICAg
ICBhc3NlcnRfdHJ1ZShtZXNzYWdlQnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIsCisgICAg
ICAgICdFeHBlY3QgbWVzc2FnZUJ1ZmZlciB0byBiZSBhbiBBcnJheUJ1ZmZlcicpOworCisgICAg
ICBhc3NlcnRfZXF1YWxzX3R5cGVkX2FycmF5KG1lc3NhZ2VCdWZmZXIsIGVtcHR5QnVmZmVyLmJ1
ZmZlcik7CisgICAgfSk7CisgIH0sIGAke21vZGV9IHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgYW4g
ZW1wdHkgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcmApOwor
CiAgIC8qCiAgICAgNi4yLiBzZW5kKCkKICAgICAgIDMuICBFeGVjdXRlIHRoZSBzdWIgc3RlcCB0
aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSB0eXBlIG9mIHRoZSBtZXRob2RzIGFyZ3VtZW50OgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0YXRl
LWV4cGVjdGVkLnR4dAppbmRleCBmMTg5NGJmOTcyZjhjMjY0YmVjYTU3NWU2NmY3OGY0YTI5Mjcz
YmMyLi42ZDIxYjMzNDQ2ZGE2ODA4ZDcyYjVhZDAxZjc2ODE4MTc5MGRjMjIwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENE
dGxzVHJhbnNwb3J0LXN0YXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0YXRlLWV4
cGVjdGVkLnR4dApAQCAtMiw0ICsyLDUgQEAKIFBBU1MgRFRMUyB0cmFuc3BvcnQgZ29lcyB0byBj
b25uZWN0ZWQgc3RhdGUKIEZBSUwgY2xvc2UoKSBjYXVzZXMgdGhlIGxvY2FsIHRyYW5zcG9ydCB0
byBjbG9zZSBpbW1lZGlhdGVseSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY2xvc2VkIiBidXQg
Z290ICJjb25uZWN0ZWQiCiBQQVNTIGNsb3NlKCkgY2F1c2VzIHRoZSBvdGhlciBlbmQncyBEVExT
IHRyYW5zcG9ydCB0byBjbG9zZQorRkFJTCBzdG9wIGJ1bmRsZWQgdHJhbnNjZWl2ZXIgcmV0YWlu
cyBkdGxzIHRyYW5zcG9ydCBzdGF0ZSBhc3NlcnRfZXF1YWxzOiBnZXRSZWNlaXZlcnMgZG9lcyBu
b3QgZXhwb3NlIGEgcmVjZWl2ZXIgb2YgYSBzdG9wcGVkIHRyYW5zY2VpdmVyIGV4cGVjdGVkIDEg
YnV0IGdvdCAyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtc3RhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3Bv
cnQtc3RhdGUuaHRtbAppbmRleCBkMDIzMGRlMGU2NGQwZGNmNWIxMzcxY2MyNmY1NzA5NTA1M2E4
ZmQyLi5jYTQ5ZmNjOTVmMjk3ZTA3ODg5ZWNmMzJjMjFhMzViOWUzMTFiNjhiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENE
dGxzVHJhbnNwb3J0LXN0YXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS5odG1sCkBAIC04
Niw0ICs4Niw1NyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGF3YWl0IHJlc29sdmVX
aGVuKHQsIGR0bHNUcmFuc3BvcnQyLCAnY2xvc2VkJyk7CiB9LCAnY2xvc2UoKSBjYXVzZXMgdGhl
IG90aGVyIGVuZFwncyBEVExTIHRyYW5zcG9ydCB0byBjbG9zZScpOwogCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IGNvbmZpZyA9IHtidW5kbGVQb2xpY3k6ICJtYXgtYnVuZGxl
In07CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpOworICBjb25z
dCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwor
CisgIHBjMS5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gcGMyLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRp
ZGF0ZSk7CisgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gcGMxLmFkZEljZUNhbmRpZGF0ZShl
LmNhbmRpZGF0ZSk7CisKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICBwYzEuYWRk
VHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3
YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9u
KHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24o
YXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0
aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICBjb25zdCBbdmlkZW9UYywgYXVkaW9UY10g
PSBwYzEuZ2V0VHJhbnNjZWl2ZXJzKCk7CisgIGNvbnN0IFt2aWRlb1RwLCBhdWRpb1RwXSA9Cisg
ICAgICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKCkubWFwKHRjID0+IHRjLnNlbmRlci50cmFuc3BvcnQp
OworCisgIGNvbnN0IFt2aWRlb1BjMlRwLCBhdWRpb1BjMlRwXSA9CisgICAgICBwYzIuZ2V0VHJh
bnNjZWl2ZXJzKCkubWFwKHRjID0+IHRjLnNlbmRlci50cmFuc3BvcnQpOworCisgIGFzc2VydF9l
cXVhbHMocGMxLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMiwgJ3BjMSB0cmFuc2NlaXZlciBj
b3VudCcpOworICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDIs
ICdwYzIgdHJhbnNjZWl2ZXIgY291bnQnKTsKKyAgYXNzZXJ0X2VxdWFscyh2aWRlb1RjLnNlbmRl
ci50cmFuc3BvcnQsIHZpZGVvVGMucmVjZWl2ZXIudHJhbnNwb3J0KTsKKyAgYXNzZXJ0X2VxdWFs
cyh2aWRlb1RjLnNlbmRlci50cmFuc3BvcnQsIGF1ZGlvVGMuc2VuZGVyLnRyYW5zcG9ydCk7CisK
KyAgYXdhaXQgUHJvbWlzZS5hbGwoW3Jlc29sdmVXaGVuKHQsIHZpZGVvVHAsICdjb25uZWN0ZWQn
KSwKKyAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVXaGVuKHQsIHZpZGVvUGMyVHAsICdjb25u
ZWN0ZWQnKV0pOworCisgIGFzc2VydF9lcXVhbHMoYXVkaW9UYy5zZW5kZXIsIHBjMS5nZXRTZW5k
ZXJzKClbMV0pOworCisgIGxldCBzdG9wcGVkVHJhbnNjZWl2ZXIgPSBwYzEuZ2V0VHJhbnNjZWl2
ZXJzKClbMF07CisgIGFzc2VydF9lcXVhbHMoc3RvcHBlZFRyYW5zY2VpdmVyLCB2aWRlb1RjKTsg
Ly8gc2FuaXR5CisgIGxldCBvbmVuZGVkID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAg
c3RvcHBlZFRyYW5zY2VpdmVyLnJlY2VpdmVyLnRyYWNrLm9uZW5kZWQgPSByZXNvbHZlOworICB9
KTsKKyAgc3RvcHBlZFRyYW5zY2VpdmVyLnN0b3AoKTsKKyAgYXdhaXQgb25lbmRlZDsKKworICBh
c3NlcnRfZXF1YWxzKAorICAgICAgcGMxLmdldFJlY2VpdmVycygpLmxlbmd0aCwgMSwKKyAgICAg
ICdnZXRSZWNlaXZlcnMgZG9lcyBub3QgZXhwb3NlIGEgcmVjZWl2ZXIgb2YgYSBzdG9wcGVkIHRy
YW5zY2VpdmVyJyk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgICBwYzEuZ2V0U2VuZGVycygpLmxl
bmd0aCwgMSwKKyAgICAgICdnZXRTZW5kZXJzIGRvZXMgbm90IGV4cG9zZSBhIHNlbmRlciBvZiBh
IHN0b3BwZWQgdHJhbnNjZWl2ZXInKTsKKyAgYXNzZXJ0X2VxdWFscyhhdWRpb1RjLnNlbmRlciwg
cGMxLmdldFNlbmRlcnMoKVswXSk7IC8vIHNhbml0eQorICBhc3NlcnRfZXF1YWxzKGF1ZGlvVGMu
c2VuZGVyLnRyYW5zcG9ydCwgYXVkaW9UcCk7IC8vIHNhbml0eQorICBhc3NlcnRfZXF1YWxzKGF1
ZGlvVHAuc3RhdGUsICdjb25uZWN0ZWQnKTsKK30sICdzdG9wIGJ1bmRsZWQgdHJhbnNjZWl2ZXIg
cmV0YWlucyBkdGxzIHRyYW5zcG9ydCBzdGF0ZScpOworCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0lj
ZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUtcGFpci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDb25u
ZWN0aW9uU3RhdGUtY2FuZGlkYXRlLXBhaXIuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDM2OTNk
MzJhOTM5YTkwZDdkZDU5OTg3MjY3YTQyZjAzMGU1MzEzMzcuLjA3ZmM2MGY1YzU2YjhhZTBkNjM2
M2MzMjQ0ZjBlODY4NGYyYjQyYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRh
dGUtcGFpci5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlvblN0YXRlLWNhbmRpZGF0
ZS1wYWlyLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKIAotSGFybmVzcyBFcnJv
ciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgT24gSUNFIGNvbm5lY3RlZCwg
Z2V0U3RhdHMoKSBjb250YWlucyBhIGNvbm5lY3RlZCBjYW5kaWRhdGUtcGFpciBUZXN0IHRpbWVk
IG91dAorUEFTUyBPbiBJQ0UgY29ubmVjdGVkLCBnZXRTdGF0cygpIGNvbnRhaW5zIGEgY29ubmVj
dGVkIGNhbmRpZGF0ZS1wYWlyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24taGVs
cGVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi1oZWxwZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDY1OWVjNTliOGRmMjg0N2U3ZTJhM2M1MTNkM2Q2ZmQwMTAyN2YxNmQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4
dGVuc2lvbi1oZWxwZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0ndXNlIHN0
cmljdCc7Ci0KLS8vIENvbnN0cnVjdCBhbiBSVENJY2VUcmFuc3BvcnQgaW5zdGFuY2UuIFRoZSBp
bnN0YW5jZSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUKLS8vIGNsZWFuZWQgdXAgd2hlbiB0aGUgdGVz
dCBmaW5pc2hlcy4KLWZ1bmN0aW9uIG1ha2VJY2VUcmFuc3BvcnQodCkgewotICBjb25zdCBpY2VU
cmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4g
aWNlVHJhbnNwb3J0LnN0b3AoKSk7Ci0gIHJldHVybiBpY2VUcmFuc3BvcnQ7Ci19Ci0KLS8vIENv
bnN0cnVjdCB0d28gUlRDSWNlVHJhbnNwb3J0IGluc3RhbmNlcywgY29uZmlndXJlIHRoZW0gdG8g
ZXhjaGFuZ2UKLS8vIGNhbmRpZGF0ZXMsIHRoZW4gZ2F0aGVyKCkgdGhlbS4KLS8vIFJldHVybnMg
YSAyLWxpc3Q6IFsgUlRDSWNlVHJhbnNwb3J0LCBSVENJY2VUcmFuc3BvcnQgXQotZnVuY3Rpb24g
bWFrZUFuZEdhdGhlclR3b0ljZVRyYW5zcG9ydHModCkgewotICBjb25zdCBsb2NhbFRyYW5zcG9y
dCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0gIGNvbnN0IHJlbW90ZVRyYW5zcG9ydCA9IG1ha2VJ
Y2VUcmFuc3BvcnQodCk7Ci0gIGxvY2FsVHJhbnNwb3J0Lm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7
Ci0gICAgaWYgKGUuY2FuZGlkYXRlKSB7Ci0gICAgICByZW1vdGVUcmFuc3BvcnQuYWRkUmVtb3Rl
Q2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsKLSAgICB9Ci0gIH07Ci0gIHJlbW90ZVRyYW5zcG9ydC5v
bmljZWNhbmRpZGF0ZSA9IGUgPT4gewotICAgIGlmIChlLmNhbmRpZGF0ZSkgewotICAgICAgbG9j
YWxUcmFuc3BvcnQuYWRkUmVtb3RlQ2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsKLSAgICB9Ci0gIH07
Ci0gIGxvY2FsVHJhbnNwb3J0LmdhdGhlcih7fSk7Ci0gIHJlbW90ZVRyYW5zcG9ydC5nYXRoZXIo
e30pOwotICByZXR1cm4gWyBsb2NhbFRyYW5zcG9ydCwgcmVtb3RlVHJhbnNwb3J0IF07Ci19Ci0K
LS8vIENvbnN0cnVjdCB0d28gUlRDSWNlVHJhbnNwb3J0IGluc3RhbmNlcywgY29uZmlndXJlIHRo
ZW0gdG8gZXhjaGFuZ2UKLS8vIGNhbmRpZGF0ZXMgYW5kIHBhcmFtZXRlcnMsIHRoZW4gZ2F0aGVy
KCkgYW5kIHN0YXJ0KCkgdGhlbS4KLS8vIFJldHVybnMgYSAyLWxpc3Q6Ci0vLyAgICAgWyBjb250
cm9sbGluZyBSVENJY2VUcmFuc3BvcnQsCi0vLyAgICAgICBjb250cm9sbGVkIFJUQ0ljZVRyYW5z
cG9ydCBdCi1mdW5jdGlvbiBtYWtlR2F0aGVyQW5kU3RhcnRUd29JY2VUcmFuc3BvcnRzKHQpIHsK
LSAgY29uc3QgWyBsb2NhbFRyYW5zcG9ydCwgcmVtb3RlVHJhbnNwb3J0IF0gPSBtYWtlQW5kR2F0
aGVyVHdvSWNlVHJhbnNwb3J0cyh0KTsKLSAgbG9jYWxUcmFuc3BvcnQuc3RhcnQocmVtb3RlVHJh
bnNwb3J0LmdldExvY2FsUGFyYW1ldGVycygpLCAnY29udHJvbGxpbmcnKTsKLSAgcmVtb3RlVHJh
bnNwb3J0LnN0YXJ0KGxvY2FsVHJhbnNwb3J0LmdldExvY2FsUGFyYW1ldGVycygpLCAnY29udHJv
bGxlZCcpOwotICByZXR1cm4gWyBsb2NhbFRyYW5zcG9ydCwgcmVtb3RlVHJhbnNwb3J0IF07Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRy
YW5zcG9ydC1leHRlbnNpb24uaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDAzODIwNzZiYmZhOGI3
ZTk1ZWI5YTkxODVmZGZjZmQ5MmJlYjg3N2YuLjIyODgyYzA5NTAzZjU0MGU5NjM0YTVjYzZjNjJl
NmEwYWI1NTI3MDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsNiBAQAogCitIYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFR5cGVFcnJvcjog
Q2FuZGlkYXRlIG11c3Qgbm90IGhhdmUgYm90aCBudWxsIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRl
eAorCiBGQUlMIFJUQ0ljZVRyYW5zcG9ydCBjb25zdHJ1Y3RvciBkb2VzIG5vdCB0aHJvdyBJbGxl
Z2FsIGNvbnN0cnVjdG9yCiBGQUlMIFJUQ0ljZVRyYW5zcG9ydCBpbml0aWFsIHByb3BlcnRpZXMg
YXJlIHNldCBJbGxlZ2FsIGNvbnN0cnVjdG9yCiBGQUlMIGdhdGhlcigpIHdpdGggeyBpY2VTZXJ2
ZXJzOiBudWxsIH0gc2hvdWxkIHRocm93IFR5cGVFcnJvciBJbGxlZ2FsIGNvbnN0cnVjdG9yCkBA
IC0xNCwyMCArMTYsNyBAQCBGQUlMIGdhdGhlcigpIHJldHVybnMgYXQgbGVhc3Qgb25lIGhvc3Qg
Y2FuZGlkYXRlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdAogRkFJTCBnYXRoZXIoKSBy
ZXR1cm5zIG5vIGNhbmRpZGF0ZXMgd2l0aCB7IGdhdGhlclBvbGljeTogJ3JlbGF5J30gYW5kIG5v
IHR1cm4gc2VydmVycyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IElsbGVnYWwgY29uc3RydWN0b3IiCiBGQUlMIHN0YXJ0KCkg
dGhyb3dzIGlmIGNsb3NlZCBJbGxlZ2FsIGNvbnN0cnVjdG9yCiBGQUlMIHN0YXJ0KCkgdGhyb3dz
IGlmIHVzZXJuYW1lRnJhZ21lbnQgb3IgcGFzc3dvcmQgbm90IHNldCBJbGxlZ2FsIGNvbnN0cnVj
dG9yCi1GQUlMIHN0YXJ0KCkgdGhyb3dzIGlmIHVzZXJuYW1lRnJhZ21lbnQgZG9lcyBub3QgY29u
Zm9ybSB0byBzeW50YXggSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBzdGFydCgpIHRocm93cyBp
ZiBwYXNzd29yZCBkb2VzIG5vdCBjb25mb3JtIHRvIHN5bnRheCBJbGxlZ2FsIGNvbnN0cnVjdG9y
CiBGQUlMIHN0YXJ0KCkgZG9lcyBub3QgdHJhbnNpdGlvbiBzdGF0ZSB0byAnY2hlY2tpbmcnIGlm
IG5vIHJlbW90ZSBjYW5kaWRhdGVzIGFkZGVkIElsbGVnYWwgY29uc3RydWN0b3IKIEZBSUwgc3Rh
cnQoKSB3aXRoIGRlZmF1bHQgcm9sZSBzZXRzIHJvbGUgYXR0cmlidXRlIHRvICdjb250cm9sbGVk
JyBJbGxlZ2FsIGNvbnN0cnVjdG9yCiBGQUlMIHN0YXJ0KCkgc2V0cyByb2xlIGF0dHJpYnV0ZSB0
byAnY29udHJvbGxpbmcnIElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgYWRkUmVtb3RlQ2FuZGlk
YXRlKCkgdGhyb3dzIGlmIGNsb3NlZCBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIGFkZFJlbW90
ZUNhbmRpZGF0ZSgpIHRocm93cyBvbiBpbnZhbGlkIGNhbmRpZGF0ZSBJbGxlZ2FsIGNvbnN0cnVj
dG9yCi1GQUlMIHN0YXJ0KCkgdHJhbnNpdGlvbnMgc3RhdGUgdG8gJ2NoZWNraW5nJyBpZiBvbmUg
cmVtb3RlIGNhbmRpZGF0ZSBoYWQgYmVlbiBhZGRlZCBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlM
IGFkZFJlbW90ZUNhbmRpZGF0ZSgpIHRyYW5zaXRpb25zIHN0YXRlIHRvICdjaGVja2luZycgaWYg
c3RhcnQoKSBoYWQgYmVlbiBjYWxsZWQgYmVmb3JlIElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwg
c3RhcnQoKSB0aHJvd3MgaWYgbGF0ZXIgY2FsbGVkIHdpdGggYSBkaWZmZXJlbnQgcm9sZSBJbGxl
Z2FsIGNvbnN0cnVjdG9yCi1GQUlMIHN0YXJ0KCkgZmx1c2hlcyByZW1vdGUgY2FuZGlkYXRlcyBh
bmQgdHJhbnNpdGlvbnMgc3RhdGUgdG8gJ25ldycgaWYgbGF0ZXIgY2FsbGVkIHdpdGggZGlmZmVy
ZW50IHJlbW90ZSBwYXJhbWV0ZXJzIElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgVHdvIFJUQ0lj
ZVRyYW5zcG9ydHMgY29ubmVjdCB0byBlYWNoIG90aGVyIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogSWxsZWdhbCBjb25zdHJ1
Y3RvciIKLUZBSUwgVHdvIFJUQ0ljZVRyYW5zcG9ydHMgY29uZmlndXJlZCB3aXRoIHRoZSBjb250
cm9sbGluZyByb2xlIHJlc29sdmUgdGhlIGNvbmZsaWN0IGluIGJhbmQgYW5kIHN0aWxsIGNvbm5l
Y3QuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlR5cGVFcnJvcjogSWxsZWdhbCBjb25zdHJ1Y3RvciIKLUZBSUwgVHdvIFJUQ0ljZVRyYW5zcG9y
dHMgY29uZmlndXJlZCB3aXRoIHRoZSBjb250cm9sbGVkIHJvbGUgcmVzb2x2ZSB0aGUgY29uZmxp
Y3QgaW4gYmFuZCBhbmQgc3RpbGwgY29ubmVjdC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9y
IgotRkFJTCBTZWxlY3RlZCBjYW5kaWRhdGUgcGFpciBjaGFuZ2VzIG9uY2UgdGhlIFJUQ0ljZVRy
YW5zcG9ydHMgY29ubmVjdC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9yIgotRkFJTCBnZXRT
ZWxlY3RlZENhbmRpZGF0ZVBhaXIoKSByZXR1cm5zIG51bGwgb25jZSB0aGUgUlRDSWNlVHJhbnNw
b3J0IGlzIHN0b3BwZWQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogSWxsZWdhbCBjb25zdHJ1Y3RvciIKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
SWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5o
dHRwcy5odG1sCmluZGV4IGJiNGQ1MmFkY2U1NjczYmFiNWQ1Mjc1MzZkNjdmODlhMDNhNDhjZDIu
LjljNmNlYzdlMWU0OTk0ZWU1OGY2ODIyZDc3MDQ4ZWNhOGU4YWY1NjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRy
YW5zcG9ydC1leHRlbnNpb24uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0
dHBzLmh0bWwKQEAgLTMsMjAgKzMsMTcgQEAKIDx0aXRsZT5SVENJY2VUcmFuc3BvcnQtZXh0ZW5z
aW9ucy5odHRwcy5odG1sPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJSVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9u
LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogJ3VzZSBzdHJpY3QnOwogCiAvLyBUaGVz
ZSB0ZXN0cyBhcmUgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBleHRlbnNpb24gc3BlY2lmaWNhdGlv
bjoKIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtaWNlLwogCi0vLyBUaGUgZm9sbG93
aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tCi0vLyBSVENJY2VUcmFuc3BvcnQt
ZXh0ZW5zaW9uLWhlbHBlci5qczoKLS8vICAgbWFrZUljZVRyYW5zcG9ydAotLy8gICBtYWtlR2F0
aGVyQW5kU3RhcnRUd29JY2VUcmFuc3BvcnRzCi0KLWNvbnN0IElDRV9VRlJBRyA9ICd1Jy5yZXBl
YXQoNCk7Ci1jb25zdCBJQ0VfUFdEID0gJ3AnLnJlcGVhdCgyMik7CitmdW5jdGlvbiBtYWtlSWNl
VHJhbnNwb3J0KHQpIHsKKyAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9y
dCgpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGljZVRyYW5zcG9ydC5zdG9wKCkpOworICByZXR1
cm4gaWNlVHJhbnNwb3J0OworfQogCiB0ZXN0KCgpID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0
ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOwpAQCAtNDIsNyArMzksNyBAQCB0ZXN0KCgpID0+IHsK
IAogdGVzdCh0ID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0
KTsKLSAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CisgIGFzc2VydF90aHJvd3Mo
bmV3IFR5cGVFcnJvcigpLCAoKSA9PgogICAgIGljZVRyYW5zcG9ydC5nYXRoZXIoeyBpY2VTZXJ2
ZXJzOiBudWxsIH0pKTsKIH0sICdnYXRoZXIoKSB3aXRoIHsgaWNlU2VydmVyczogbnVsbCB9IHNo
b3VsZCB0aHJvdyBUeXBlRXJyb3InKTsKIApAQCAtNzEsNyArNjgsNyBAQCB0ZXN0KHQgPT4gewog
dGVzdCh0ID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsK
ICAgaWNlVHJhbnNwb3J0LnN0b3AoKTsKLSAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0
ZUVycm9yJywgKCkgPT4gaWNlVHJhbnNwb3J0LmdhdGhlcih7fSkpOworICBhc3NlcnRfdGhyb3dz
KCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGljZVRyYW5zcG9ydC5nYXRoZXIoe30pKTsKIH0s
ICdnYXRoZXIoKSB0aHJvd3MgaWYgY2xvc2VkJyk7CiAKIHRlc3QodCA9PiB7CkBAIC04Myw3ICs4
MCw3IEBAIHRlc3QodCA9PiB7CiB0ZXN0KHQgPT4gewogICBjb25zdCBpY2VUcmFuc3BvcnQgPSBt
YWtlSWNlVHJhbnNwb3J0KHQpOwogICBpY2VUcmFuc3BvcnQuZ2F0aGVyKHt9KTsKLSAgYXNzZXJ0
X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gaWNlVHJhbnNwb3J0LmdhdGhl
cih7fSkpOworICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGljZVRy
YW5zcG9ydC5nYXRoZXIoe30pKTsKIH0sICdnYXRoZXIoKSB0aHJvd3MgaWYgY2FsbGVkIHR3aWNl
Jyk7CiAKIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKQEAgLTEwMSw3ICs5OCw3IEBAIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKICAgaWNlVHJhbnNwb3J0LmdhdGhlcih7fSk7CiAgIGxldCBj
YW5kaWRhdGU7CiAgIGRvIHsKLSAgICAoKHsgY2FuZGlkYXRlIH0gPSBhd2FpdCB3YXRjaGVyLndh
aXRfZm9yKCdpY2VjYW5kaWRhdGUnKSkpOworICAgICh7IGNhbmRpZGF0ZSB9ID0gYXdhaXQgd2F0
Y2hlci53YWl0X2ZvcignaWNlY2FuZGlkYXRlJykpOwogICB9IHdoaWxlIChjYW5kaWRhdGUgIT09
IG51bGwpOwogICBhc3NlcnRfZXF1YWxzKGljZVRyYW5zcG9ydC5nYXRoZXJpbmdTdGF0ZSwgJ2dh
dGhlcmluZycpOwogICBhd2FpdCB3YXRjaGVyLndhaXRfZm9yKCdnYXRoZXJpbmdzdGF0ZWNoYW5n
ZScpOwpAQCAtMTI5LDY0ICsxMjYsMjggQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAg
ICcgc2VydmVycycpOwogCiBjb25zdCBkdW1teVJlbW90ZVBhcmFtZXRlcnMgPSB7Ci0gIHVzZXJu
YW1lRnJhZ21lbnQ6IElDRV9VRlJBRywKLSAgcGFzc3dvcmQ6IElDRV9QV0QsCisgIHVzZXJuYW1l
RnJhZ21lbnQ6ICdkdW1teVVzZXJuYW1lRnJhZ21lbnQnLAorICBwYXNzd29yZDogJ2R1bW15UGFz
c3dvcmQnLAogfTsKIAogdGVzdCgoKSA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBS
VENJY2VUcmFuc3BvcnQoKTsKICAgaWNlVHJhbnNwb3J0LnN0b3AoKTsKLSAgYXNzZXJ0X3Rocm93
c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywKKyAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRl
RXJyb3InLAogICAgICgpID0+IGljZVRyYW5zcG9ydC5zdGFydChkdW1teVJlbW90ZVBhcmFtZXRl
cnMpKTsKICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlUGFyYW1ldGVycygp
LCBudWxsKTsKIH0sIGBzdGFydCgpIHRocm93cyBpZiBjbG9zZWRgKTsKIAogdGVzdCgoKSA9PiB7
CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsKLSAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IGljZVRyYW5zcG9ydC5zdGFydCh7fSkpOwotICBh
c3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwKLSAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQo
eyB1c2VybmFtZUZyYWdtZW50OiBJQ0VfVUZSQUcgfSkpOwotICBhc3NlcnRfdGhyb3dzX2pzKFR5
cGVFcnJvciwKLSAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoeyBwYXNzd29yZDogSUNFX1BX
RCB9KSk7CisgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiBpY2VUcmFuc3Bv
cnQuc3RhcnQoe30pKTsKKyAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksCisgICAgKCkg
PT4gaWNlVHJhbnNwb3J0LnN0YXJ0KHsgdXNlcm5hbWVGcmFnbWVudDogJ2R1bW15JyB9KSk7Cisg
IGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLAorICAgICgpID0+IGljZVRyYW5zcG9ydC5z
dGFydCh7IHBhc3N3b3JkOiAnZHVtbXknIH0pKTsKICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3Bv
cnQuZ2V0UmVtb3RlUGFyYW1ldGVycygpLCBudWxsKTsKIH0sICdzdGFydCgpIHRocm93cyBpZiB1
c2VybmFtZUZyYWdtZW50IG9yIHBhc3N3b3JkIG5vdCBzZXQnKTsKIAotdGVzdCgoKSA9PiB7Ci0g
IGNvbnN0IFRFU1RfQ0FTRVMgPSBbCi0gICAge3VzZXJuYW1lRnJhZ21lbnQ6ICcyc2gnLCBkZXNj
cmlwdGlvbjogJ2xlc3MgdGhhbiA0IGNoYXJhY3RlcnMgbG9uZyd9LAotICAgIHsKLSAgICAgIHVz
ZXJuYW1lRnJhZ21lbnQ6ICd4Jy5yZXBlYXQoMjU3KSwKLSAgICAgIGRlc2NyaXB0aW9uOiAnZ3Jl
YXRlciB0aGFuIDI1NiBjaGFyYWN0ZXJzIGxvbmcnLAotICAgIH0sCi0gICAge3VzZXJuYW1lRnJh
Z21lbnQ6ICcxMjNcbicsIGRlc2NyaXB0aW9uOiAnaWxsZWdhbCBjaGFyYWN0ZXInfSwKLSAgXTsK
LSAgZm9yIChjb25zdCB7dXNlcm5hbWVGcmFnbWVudCwgZGVzY3JpcHRpb259IG9mIFRFU1RfQ0FT
RVMpIHsKLSAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7Ci0g
ICAgYXNzZXJ0X3Rocm93c19kb20oCi0gICAgICAnU3ludGF4RXJyb3InLAotICAgICAgKCkgPT4g
aWNlVHJhbnNwb3J0LnN0YXJ0KHsgdXNlcm5hbWVGcmFnbWVudCwgcGFzc3dvcmQ6IElDRV9QV0Qg
fSksCi0gICAgICBgaWxsZWdhbCB1c2VybmFtZUZyYWdtZW50ICgke2Rlc2NyaXB0aW9ufSkgc2hv
dWxkIHRocm93IGEgU3ludGF4RXJyb3JgKTsKLSAgfQotfSwgJ3N0YXJ0KCkgdGhyb3dzIGlmIHVz
ZXJuYW1lRnJhZ21lbnQgZG9lcyBub3QgY29uZm9ybSB0byBzeW50YXgnKTsKLQotdGVzdCgoKSA9
PiB7Ci0gIGNvbnN0IFRFU1RfQ0FTRVMgPSBbCi0gICAge3Bhc3N3b3JkOiAneCcucmVwZWF0KDIx
KSwgZGVzY3JpcHRpb246ICdsZXNzIHRoYW4gMjIgY2hhcmFjdGVycyBsb25nJ30sCi0gICAgewot
ICAgICAgcGFzc3dvcmQ6ICd4Jy5yZXBlYXQoMjU3KSwKLSAgICAgIGRlc2NyaXB0aW9uOiAnZ3Jl
YXRlciB0aGFuIDI1NiBjaGFyYWN0ZXJzIGxvbmcnLAotICAgIH0sCi0gICAge3Bhc3N3b3JkOiAo
J3gnLnJlcGVhdCgyMSkgKyAnXG4nKSwgZGVzY3JpcHRpb246ICdpbGxlZ2FsIGNoYXJhY3Rlcid9
LAotICBdOwotICBmb3IgKGNvbnN0IHtwYXNzd29yZCwgZGVzY3JpcHRpb259IG9mIFRFU1RfQ0FT
RVMpIHsKLSAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7Ci0g
ICAgYXNzZXJ0X3Rocm93c19kb20oCi0gICAgICAnU3ludGF4RXJyb3InLAotICAgICAgKCkgPT4g
aWNlVHJhbnNwb3J0LnN0YXJ0KHsgdXNlcm5hbWVGcmFnbWVudDogSUNFX1VGUkFHLCBwYXNzd29y
ZCB9KSwKLSAgICAgIGBpbGxlZ2FsIHBhc3N3b3JkICgke2Rlc2NyaXB0aW9ufSkgc2hvdWxkIHRo
cm93IGEgU3ludGF4RXJyb3JgKTsKLSAgfQotfSwgJ3N0YXJ0KCkgdGhyb3dzIGlmIHBhc3N3b3Jk
IGRvZXMgbm90IGNvbmZvcm0gdG8gc3ludGF4Jyk7Ci0KIGNvbnN0IGFzc2VydF9pY2VfcGFyYW1l
dGVyc19lcXVhbHMgPSAoYSwgYikgPT4gewogICBhc3NlcnRfZXF1YWxzKGEudXNlcm5hbWVGcmFn
bWVudCwgYi51c2VybmFtZUZyYWdtZW50LAogICAgICAgJ3VzZXJuYW1lRnJhZ21lbnRzIGFyZSBl
cXVhbCcpOwpAQCAtMjE2LDIyICsxNzcsMjEgQEAgdGVzdCh0ID0+IHsKIAogY29uc3QgY2FuZGlk
YXRlMSA9IG5ldyBSVENJY2VDYW5kaWRhdGUoewogICBjYW5kaWRhdGU6ICdjYW5kaWRhdGU6MSAx
IHVkcCAyMTEzOTI5NDcxIDIwMy4wLjExMy4xMDAgMTAxMDAgdHlwIGhvc3QnLAotICBzZHBNaWQ6
ICcnLAogfSk7CiAKIHRlc3QoKCkgPT4gewogICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRD
SWNlVHJhbnNwb3J0KCk7CiAgIGljZVRyYW5zcG9ydC5zdG9wKCk7Ci0gIGFzc2VydF90aHJvd3Nf
ZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsCisgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVy
cm9yJywKICAgICAoKSA9PiBpY2VUcmFuc3BvcnQuYWRkUmVtb3RlQ2FuZGlkYXRlKGNhbmRpZGF0
ZTEpKTsKICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlQ2FuZGlk
YXRlcygpLCBbXSk7CiB9LCAnYWRkUmVtb3RlQ2FuZGlkYXRlKCkgdGhyb3dzIGlmIGNsb3NlZCcp
OwogCiB0ZXN0KCgpID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5z
cG9ydCgpOwotICBhc3NlcnRfdGhyb3dzX2RvbSgnT3BlcmF0aW9uRXJyb3InLAorICBhc3NlcnRf
dGhyb3dzKCdPcGVyYXRpb25FcnJvcicsCiAgICAgKCkgPT4gaWNlVHJhbnNwb3J0LmFkZFJlbW90
ZUNhbmRpZGF0ZSgKLSAgICAgIG5ldyBSVENJY2VDYW5kaWRhdGUoeyBjYW5kaWRhdGU6ICdpbnZh
bGlkJywgc2RwTWlkOiAnJyB9KSkpOworICAgICAgbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IGNhbmRp
ZGF0ZTogJ2ludmFsaWQnIH0pKSk7CiAgIGFzc2VydF9hcnJheV9lcXVhbHMoaWNlVHJhbnNwb3J0
LmdldFJlbW90ZUNhbmRpZGF0ZXMoKSwgW10pOwogfSwgJ2FkZFJlbW90ZUNhbmRpZGF0ZSgpIHRo
cm93cyBvbiBpbnZhbGlkIGNhbmRpZGF0ZScpOwogCkBAIC0yNTYsMjAgKzIxNiwyMCBAQCB0ZXN0
KHQgPT4gewogdGVzdCh0ID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5z
cG9ydCh0KTsKICAgaWNlVHJhbnNwb3J0LnN0YXJ0KGR1bW15UmVtb3RlUGFyYW1ldGVycyk7Ci0g
IGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsCisgIGFzc2VydF90aHJvd3Mo
J0ludmFsaWRTdGF0ZUVycm9yJywKICAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoZHVtbXlS
ZW1vdGVQYXJhbWV0ZXJzLCAnY29udHJvbGxpbmcnKSk7CiB9LCAnc3RhcnQoKSB0aHJvd3MgaWYg
bGF0ZXIgY2FsbGVkIHdpdGggYSBkaWZmZXJlbnQgcm9sZScpOwogCiB0ZXN0KHQgPT4gewogICBj
b25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOwogICBpY2VUcmFuc3BvcnQu
c3RhcnQoewotICAgIHVzZXJuYW1lRnJhZ21lbnQ6ICcxJy5yZXBlYXQoNCksCi0gICAgcGFzc3dv
cmQ6ICcxJy5yZXBlYXQoMjIpLAorICAgIHVzZXJuYW1lRnJhZ21lbnQ6ICd1c2VyJywKKyAgICBw
YXNzd29yZDogJ3Bhc3MnLAogICB9KTsKICAgaWNlVHJhbnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0
ZShjYW5kaWRhdGUxKTsKICAgY29uc3QgY2hhbmdlZFJlbW90ZVBhcmFtZXRlcnMgPSB7Ci0gICAg
dXNlcm5hbWVGcmFnbWVudDogJzInLnJlcGVhdCg0KSwKLSAgICBwYXNzd29yZDogJzInLnJlcGVh
dCgyMiksCisgICAgdXNlcm5hbWVGcmFnbWVudDogJ3VzZXIyJywKKyAgICBwYXNzd29yZDogJ3Bh
c3MnLAogICB9OwogICBpY2VUcmFuc3BvcnQuc3RhcnQoY2hhbmdlZFJlbW90ZVBhcmFtZXRlcnMp
OwogICBhc3NlcnRfZXF1YWxzKGljZVRyYW5zcG9ydC5zdGF0ZSwgJ25ldycpOwpAQCAtMjgwLDgg
KzI0MCwyMiBAQCB0ZXN0KHQgPT4gewogICAgJ2xhdGVyIGNhbGxlZCB3aXRoIGRpZmZlcmVudCBy
ZW1vdGUgcGFyYW1ldGVycycpOwogCiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0
IFsgbG9jYWxUcmFuc3BvcnQsIHJlbW90ZVRyYW5zcG9ydCBdID0KLSAgICAgIG1ha2VHYXRoZXJB
bmRTdGFydFR3b0ljZVRyYW5zcG9ydHModCk7CisgIGNvbnN0IGxvY2FsVHJhbnNwb3J0ID0gbWFr
ZUljZVRyYW5zcG9ydCh0KTsKKyAgY29uc3QgcmVtb3RlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5z
cG9ydCh0KTsKKyAgbG9jYWxUcmFuc3BvcnQub25pY2VjYW5kaWRhdGUgPSBlID0+IHsKKyAgICBp
ZiAoZS5jYW5kaWRhdGUpIHsKKyAgICAgIHJlbW90ZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5kaWRh
dGUoZS5jYW5kaWRhdGUpOworICAgIH0KKyAgfTsKKyAgcmVtb3RlVHJhbnNwb3J0Lm9uaWNlY2Fu
ZGlkYXRlID0gZSA9PiB7CisgICAgaWYgKGUuY2FuZGlkYXRlKSB7CisgICAgICBsb2NhbFRyYW5z
cG9ydC5hZGRSZW1vdGVDYW5kaWRhdGUoZS5jYW5kaWRhdGUpOworICAgIH0KKyAgfTsKKyAgbG9j
YWxUcmFuc3BvcnQuZ2F0aGVyKHt9KTsKKyAgcmVtb3RlVHJhbnNwb3J0LmdhdGhlcih7fSk7Cisg
IGxvY2FsVHJhbnNwb3J0LnN0YXJ0KHJlbW90ZVRyYW5zcG9ydC5nZXRMb2NhbFBhcmFtZXRlcnMo
KSwgJ2NvbnRyb2xsaW5nJyk7CisgIHJlbW90ZVRyYW5zcG9ydC5zdGFydChsb2NhbFRyYW5zcG9y
dC5nZXRMb2NhbFBhcmFtZXRlcnMoKSwgJ2NvbnRyb2xsZWQnKTsKICAgY29uc3QgbG9jYWxXYXRj
aGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBsb2NhbFRyYW5zcG9ydCwgJ3N0YXRlY2hhbmdlJyk7
CiAgIGNvbnN0IHJlbW90ZVdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIHJlbW90ZVRyYW5z
cG9ydCwgJ3N0YXRlY2hhbmdlJyk7CiAgIGF3YWl0IFByb21pc2UuYWxsKFsKQEAgLTI5NCw2OSAr
MjY4LDQgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBdKTsKIH0sICdUd28gUlRDSWNl
VHJhbnNwb3J0cyBjb25uZWN0IHRvIGVhY2ggb3RoZXInKTsKIAotWydjb250cm9sbGluZycsICdj
b250cm9sbGVkJ10uZm9yRWFjaChyb2xlID0+IHsKLSAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
ewotICAgIGNvbnN0IFsgbG9jYWxUcmFuc3BvcnQsIHJlbW90ZVRyYW5zcG9ydCBdID0KLSAgICAg
ICAgbWFrZUFuZEdhdGhlclR3b0ljZVRyYW5zcG9ydHModCk7Ci0gICAgbG9jYWxUcmFuc3BvcnQu
c3RhcnQocmVtb3RlVHJhbnNwb3J0LmdldExvY2FsUGFyYW1ldGVycygpLCByb2xlKTsKLSAgICBy
ZW1vdGVUcmFuc3BvcnQuc3RhcnQobG9jYWxUcmFuc3BvcnQuZ2V0TG9jYWxQYXJhbWV0ZXJzKCks
IHJvbGUpOwotICAgIGNvbnN0IGxvY2FsV2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgbG9j
YWxUcmFuc3BvcnQsICdzdGF0ZWNoYW5nZScpOwotICAgIGNvbnN0IHJlbW90ZVdhdGNoZXIgPSBu
ZXcgRXZlbnRXYXRjaGVyKHQsIHJlbW90ZVRyYW5zcG9ydCwgJ3N0YXRlY2hhbmdlJyk7Ci0gICAg
YXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgbG9jYWxXYXRjaGVyLndhaXRfZm9yKCdzdGF0ZWNo
YW5nZScpLnRoZW4oKCkgPT4gewotICAgICAgICBhc3NlcnRfZXF1YWxzKGxvY2FsVHJhbnNwb3J0
LnN0YXRlLCAnY29ubmVjdGVkJyk7Ci0gICAgICB9KSwKLSAgICAgIHJlbW90ZVdhdGNoZXIud2Fp
dF9mb3IoJ3N0YXRlY2hhbmdlJykudGhlbigoKSA9PiB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMo
cmVtb3RlVHJhbnNwb3J0LnN0YXRlLCAnY29ubmVjdGVkJyk7Ci0gICAgICB9KSwKLSAgICBdKTsK
LSAgfSwgYFR3byBSVENJY2VUcmFuc3BvcnRzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgJHtyb2xlfSBy
b2xlIHJlc29sdmUgdGhlIGAgKwotICAgICAgJ2NvbmZsaWN0IGluIGJhbmQgYW5kIHN0aWxsIGNv
bm5lY3QuJyk7Ci19KTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBhc3luYyBmdW5j
dGlvbiB3YWl0Rm9yU2VsZWN0ZWRDYW5kaWRhdGVQYWlyQ2hhbmdlVGhlbkNvbm5lY3RlZCh0LCB0
cmFuc3BvcnQsCi0gICAgICB0cmFuc3BvcnROYW1lKSB7Ci0gICAgY29uc3Qgd2F0Y2hlciA9IG5l
dyBFdmVudFdhdGNoZXIodCwgdHJhbnNwb3J0LAotICAgICAgICBbICdzdGF0ZWNoYW5nZScsICdz
ZWxlY3RlZGNhbmRpZGF0ZXBhaXJjaGFuZ2UnIF0pOwotICAgIGF3YWl0IHdhdGNoZXIud2FpdF9m
b3IoJ3NlbGVjdGVkY2FuZGlkYXRlcGFpcmNoYW5nZScpOwotICAgIGNvbnN0IHNlbGVjdGVkQ2Fu
ZGlkYXRlUGFpciA9IHRyYW5zcG9ydC5nZXRTZWxlY3RlZENhbmRpZGF0ZVBhaXIoKTsKLSAgICBh
c3NlcnRfbm90X2VxdWFscyhzZWxlY3RlZENhbmRpZGF0ZVBhaXIsIG51bGwsCi0gICAgICAgIGAk
e3RyYW5zcG9ydE5hbWV9IHNlbGVjdGVkIGNhbmRpZGF0ZSBwYWlyIHNob3VsZCBub3QgYmUgbnVs
bCBvbmNlIGAgKwotICAgICAgICAndGhlIHNlbGVjdGVkY2FuZGlkYXRlcGFpcmNoYW5nZSBldmVu
dCBmaXJlcycpOwotICAgIGFzc2VydF90cnVlKAotICAgICAgICB0cmFuc3BvcnQuZ2V0TG9jYWxD
YW5kaWRhdGVzKCkuc29tZSgKLSAgICAgICAgICAgICh7IGNhbmRpZGF0ZSB9KSA9PgotICAgICAg
ICAgICAgICAgIGNhbmRpZGF0ZSA9PT0gc2VsZWN0ZWRDYW5kaWRhdGVQYWlyLmxvY2FsLmNhbmRp
ZGF0ZSksCi0gICAgICAgIGAke3RyYW5zcG9ydE5hbWV9IHNlbGVjdGVkIGNhbmRpZGF0ZSBwYWly
IGxvY2FsIHNob3VsZCBiZSBpbiB0aGUgYCArCi0gICAgICAgICdsaXN0IG9mIGxvY2FsIGNhbmRp
ZGF0ZXMnKTsKLSAgICBhc3NlcnRfdHJ1ZSgKLSAgICAgICAgdHJhbnNwb3J0LmdldFJlbW90ZUNh
bmRpZGF0ZXMoKS5zb21lKAotICAgICAgICAgICAgKHsgY2FuZGlkYXRlIH0pID0+Ci0gICAgICAg
ICAgICAgICAgY2FuZGlkYXRlID09PSBzZWxlY3RlZENhbmRpZGF0ZVBhaXIucmVtb3RlLmNhbmRp
ZGF0ZSksCi0gICAgICAgIGAke3RyYW5zcG9ydE5hbWV9IHNlbGVjdGVkIGNhbmRpZGF0ZSBwYWly
IGxvY2FsIHNob3VsZCBiZSBpbiB0aGUgYCArCi0gICAgICAgICdsaXN0IG9mIHJlbW90ZSBjYW5k
aWRhdGVzJyk7Ci0gICAgYXdhaXQgd2F0Y2hlci53YWl0X2Zvcignc3RhdGVjaGFuZ2UnKTsKLSAg
ICBhc3NlcnRfZXF1YWxzKHRyYW5zcG9ydC5zdGF0ZSwgJ2Nvbm5lY3RlZCcsCi0gICAgICAgIGAk
e3RyYW5zcG9ydE5hbWV9IHN0YXRlIHNob3VsZCBiZSAnY29ubmVjdGVkJ2ApOwotICB9Ci0gIGNv
bnN0IFsgbG9jYWxUcmFuc3BvcnQsIHJlbW90ZVRyYW5zcG9ydCBdID0KLSAgICAgIG1ha2VHYXRo
ZXJBbmRTdGFydFR3b0ljZVRyYW5zcG9ydHModCk7Ci0gIGF3YWl0IFByb21pc2UuYWxsKFsKLSAg
ICB3YWl0Rm9yU2VsZWN0ZWRDYW5kaWRhdGVQYWlyQ2hhbmdlVGhlbkNvbm5lY3RlZCh0LCBsb2Nh
bFRyYW5zcG9ydCwKLSAgICAgICAgJ2xvY2FsIHRyYW5zcG9ydCcpLAotICAgIHdhaXRGb3JTZWxl
Y3RlZENhbmRpZGF0ZVBhaXJDaGFuZ2VUaGVuQ29ubmVjdGVkKHQsIHJlbW90ZVRyYW5zcG9ydCwK
LSAgICAgICAgJ3JlbW90ZSB0cmFuc3BvcnQnKSwKLSAgXSk7Ci19LCAnU2VsZWN0ZWQgY2FuZGlk
YXRlIHBhaXIgY2hhbmdlcyBvbmNlIHRoZSBSVENJY2VUcmFuc3BvcnRzIGNvbm5lY3QuJyk7Ci0K
LXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgWyB0cmFuc3BvcnQsIF0gPSBtYWtl
R2F0aGVyQW5kU3RhcnRUd29JY2VUcmFuc3BvcnRzKHQpOwotICBjb25zdCB3YXRjaGVyID0gbmV3
IEV2ZW50V2F0Y2hlcih0LCB0cmFuc3BvcnQsICdzZWxlY3RlZGNhbmRpZGF0ZXBhaXJjaGFuZ2Un
KTsKLSAgYXdhaXQgd2F0Y2hlci53YWl0X2Zvcignc2VsZWN0ZWRjYW5kaWRhdGVwYWlyY2hhbmdl
Jyk7Ci0gIHRyYW5zcG9ydC5zdG9wKCk7Ci0gIGFzc2VydF9lcXVhbHModHJhbnNwb3J0LmdldFNl
bGVjdGVkQ2FuZGlkYXRlUGFpcigpLCBudWxsKTsKLX0sICdnZXRTZWxlY3RlZENhbmRpZGF0ZVBh
aXIoKSByZXR1cm5zIG51bGwgb25jZSB0aGUgUlRDSWNlVHJhbnNwb3J0IGlzICcgKwotICAgICdz
dG9wcGVkLicpOwotCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNh
bmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0
ZS1jb25uZWN0aW9uU2V0dXAuaHRtbAppbmRleCAxMWZjNGU0ZmEwYzIyMmRmNGUxNDY5YTUyNTgy
OTViZjM3MDM1MjNjLi5kMmNkZTU5MzY0MDQ1MWY0MzE3Y2IwOWNiYTE0NDJiYjFjMDI4MjIyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1cC5odG1s
CkBAIC0zNSwxNiArMzUsOCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAKICAgbGV0IGNh
bmRpZGF0ZXMxdG8yID0gW107CiAgIGxldCBjYW5kaWRhdGVzMnRvMSA9IFtdOwotICBwYzEub25p
Y2VjYW5kaWRhdGUgPSBldmVudCA9PiB7Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAg
ICAgY2FuZGlkYXRlczF0bzIucHVzaChldmVudC5jYW5kaWRhdGUpOwotICAgIH0KLSAgfQotICBw
YzIub25pY2VjYW5kaWRhdGUgPSBldmVudCA9PiB7Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkg
ewotICAgICAgY2FuZGlkYXRlczJ0bzEucHVzaChldmVudC5jYW5kaWRhdGUpOwotICAgIH0KLSAg
fQorICBwYzEub25pY2VjYW5kaWRhdGUgPSBlID0+IGNhbmRpZGF0ZXMxdG8yLnB1c2goZS5jYW5k
aWRhdGUpOworICBwYzIub25pY2VjYW5kaWRhdGUgPSBlID0+IGNhbmRpZGF0ZXMydG8xLnB1c2go
ZS5jYW5kaWRhdGUpOwogICBjb25zdCBwYzJHYXRoZXJlZENhbmRpZGF0ZXMgPSBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSkgPT4gewogICAgIHBjMi5hZGRFdmVudExpc3RlbmVyKCdpY2VnYXRoZXJpbmdz
dGF0ZWNoYW5nZScsICgpID0+IHsKICAgICAgIGlmIChwYzIuaWNlR2F0aGVyaW5nU3RhdGUgPT0g
J2NvbXBsZXRlJykgewpAQCAtNzQsMTYgKzY2LDggQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
ewogCiAgIGxldCBjYW5kaWRhdGVzMXRvMiA9IFtdOwogICBsZXQgY2FuZGlkYXRlczJ0bzEgPSBb
XTsKLSAgcGMxLm9uaWNlY2FuZGlkYXRlID0gZXZlbnQgPT4gewotICAgIGlmIChldmVudC5jYW5k
aWRhdGUpIHsKLSAgICAgIGNhbmRpZGF0ZXMxdG8yLnB1c2goZXZlbnQuY2FuZGlkYXRlKTsKLSAg
ICB9Ci0gIH0KLSAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZXZlbnQgPT4gewotICAgIGlmIChldmVu
dC5jYW5kaWRhdGUpIHsKLSAgICAgIGNhbmRpZGF0ZXMydG8xLnB1c2goZXZlbnQuY2FuZGlkYXRl
KTsKLSAgICB9Ci0gIH0KKyAgcGMxLm9uaWNlY2FuZGlkYXRlID0gZSA9PiBjYW5kaWRhdGVzMXRv
Mi5wdXNoKGUuY2FuZGlkYXRlKTsKKyAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZSA9PiBjYW5kaWRh
dGVzMnRvMS5wdXNoKGUuY2FuZGlkYXRlKTsKICAgY29uc3QgcGMxR2F0aGVyZWRDYW5kaWRhdGVz
ID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICBwYzEuYWRkRXZlbnRMaXN0ZW5lcign
aWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnLCAoKSA9PiB7CiAgICAgICBpZiAocGMxLmljZUdhdGhl
cmluZ1N0YXRlID09ICdjb21wbGV0ZScpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZElj
ZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtZXhw
ZWN0ZWQudHh0CmluZGV4IDIzMGNhN2I5Yzg1Y2IyODg2Y2YxOTYxOTRkMmE2YTk2NTZmZjAyZTEu
LmY0MWFlNDI1M2RmNThiY2RjYmQxNGEyZDFlNDExZjliY2UxYjM4ODggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
YWRkSWNlQ2FuZGlkYXRlLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDEzIEBACiAKIEZBSUwgQWRk
IElDRSBjYW5kaWRhdGUgYmVmb3JlIHNldHRpbmcgcmVtb3RlIGRlc2NyaXB0aW9uIHNob3VsZCBy
ZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvciBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiT3BlcmF0aW9uRXJyb3I6
IEVycm9yIHByb2Nlc3NpbmcgSUNFIGNhbmRpZGF0ZSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRp
b24gSW52YWxpZFN0YXRlRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAwLCBleHBl
Y3RlZCAxMQotRkFJTCBhZGRJY2VDYW5kaWRhdGUoeyJjYW5kaWRhdGUiOiIiLCJzZHBNaWQiOm51
bGwsInNkcE1MaW5lSW5kZXgiOm51bGx9KSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1j
YW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9ucyBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0
ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRl
byBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBhZGRJY2VDYW5kaWRhdGUodW5kZWZpbmVk
KSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0
aW9ucyBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdl
ZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCBhZGRJY2VDYW5kaWRhdGUobnVsbCkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQt
b2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnMgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5k
aWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09
dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgYWRkSWNlQ2FuZGlkYXRlKHt9KSBz
aG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9u
cyBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4g
bWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
UEFTUyBhZGRJY2VDYW5kaWRhdGUoeyJjYW5kaWRhdGUiOiIiLCJzZHBNaWQiOm51bGwsInNkcE1M
aW5lSW5kZXgiOm51bGx9KSB3b3JrcworRkFJTCBhZGRJY2VDYW5kaWRhdGUoeyJjYW5kaWRhdGUi
OiIiLCJzZHBNaWQiOm51bGwsInNkcE1MaW5lSW5kZXgiOm51bGx9KSBhZGRzIGE9ZW5kLW9mLWNh
bmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRl
IGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVv
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIGFkZEljZUNhbmRpZGF0ZSh1bmRlZmluZWQp
IHdvcmtzCitGQUlMIGFkZEljZUNhbmRpZGF0ZSh1bmRlZmluZWQpIGFkZHMgYT1lbmQtb2YtY2Fu
ZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnMgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUg
bGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8g
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgYWRkSWNlQ2FuZGlkYXRlKG51bGwpIHdvcmtz
CitGQUlMIGFkZEljZUNhbmRpZGF0ZShudWxsKSBhZGRzIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8g
Ym90aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUg
Zm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVvIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCitQQVNTIGFkZEljZUNhbmRpZGF0ZSh7fSkgd29ya3MKK0ZBSUwgYWRkSWNl
Q2FuZGlkYXRlKHt9KSBhZGRzIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25z
IGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBt
ZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBG
QUlMIGFkZEljZUNhbmRpZGF0ZSh7fSkgaW4gc3RhYmxlIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9
ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3Qg
Y2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFu
ZCBtPXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIGFkZEljZUNhbmRpZGF0ZSh7
dXNlcm5hbWVGcmFnbWVudDogdXNlcm5hbWVGcmFnbWVudDEsIHNkcE1pZDogc2RwTWlkMX0pIHNo
b3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gdGhlIGZpcnN0IG0tc2Vj
dGlvbiBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdl
ZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQogRkFJTCBhZGRJY2VDYW5kaWRhdGUoe3VzZXJuYW1lRnJhZ21lbnQ6IHVzZXJuYW1lRnJhZ21l
bnQyLCBzZHBNTGluZUluZGV4OiAxfSkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2Fu
ZGlkYXRlcyB0byB0aGUgZmlyc3QgbS1zZWN0aW9uIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQpAQCAtMTcsOCArMjEsOSBAQCBQQVNTIGFkZEljZUNhbmRpZGF0ZSB3aXRoIGZp
cnN0IHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCBhZGQgY2FuZGlkYXRlIHRvIGZpcnN0CiBQQVNT
IGFkZEljZUNhbmRpZGF0ZSB3aXRoIHNlY29uZCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXggc2hv
dWxkIGFkZCBjYW5kaWRhdGUgdG8gc2Vjb25kIG1lZGlhIHN0cmVhbQogUEFTUyBBZGQgY2FuZGlk
YXRlIGZvciBmaXJzdCBtZWRpYSBzdHJlYW0gd2l0aCBudWxsIHVzZXJuYW1lRnJhZ21lbnQgc2hv
dWxkIGFkZCBjYW5kaWRhdGUgdG8gZmlyc3QgbWVkaWEgc3RyZWFtCiBQQVNTIEFkZGluZyBtdWx0
aXBsZSBjYW5kaWRhdGVzIHNob3VsZCBhZGQgY2FuZGlkYXRlcyB0byB0aGVpciBjb3JyZXNwb25k
aW5nIG1lZGlhIHN0cmVhbQotRkFJTCBBZGQgd2l0aCBlbXB0eSBjYW5kaWRhdGUgc3RyaW5nIChl
bmQgb2YgY2FuZGlkYXRlKSBzaG91bGQgc3VjY2VlZCBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRp
ZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12
aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBBZGQgd2l0aCBlbXB0eSBjYW5kaWRh
dGUgc3RyaW5nIChlbmQgb2YgY2FuZGlkYXRlcykgc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X3RydWU6
IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09
YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgQWRkIGNhbmRp
ZGF0ZSB3aXRoIGJvdGggc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4IG1hbnVhbGx5IHNldCB0byBu
dWxsIHNob3VsZCByZWplY3Qgd2l0aCBUeXBlRXJyb3IKK1BBU1MgYWRkSWNlQ2FuZGlkYXRlIHdp
dGggYSBjYW5kaWRhdGUgYW5kIG5laXRoZXIgc2RwTWlkIG5vciBzZHBNTGluZUluZGV4IHNob3Vs
ZCByZWplY3Qgd2l0aCBUeXBlRXJyb3IKIFBBU1MgQWRkIGNhbmRpZGF0ZSB3aXRoIG9ubHkgdmFs
aWQgY2FuZGlkYXRlIHN0cmluZyBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yCiBQQVNTIEFk
ZCBjYW5kaWRhdGUgd2l0aCBpbnZhbGlkIGNhbmRpZGF0ZSBzdHJpbmcgYW5kIGJvdGggc2RwTWlk
IGFuZCBzZHBNTGluZUluZGV4IG51bGwgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcgogUEFT
UyBBZGQgY2FuZGlkYXRlIHdpdGggaW52YWxpZCBzZHBNaWQgc2hvdWxkIHJlamVjdCB3aXRoIE9w
ZXJhdGlvbkVycm9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS5odG1sCmluZGV4IDVmY2I2ZTg2NGE4YTIy
M2Q1MDYyYjIyYjdhOGY1ZTg5ZmJmOWQ0Y2IuLmQ4ZTI0ZDYwOGJhZWU2YzYwZTZkMmIzYWUyNDY5
NzRmZTY5MzZlYzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS5odG1sCkBAIC0xNTgsMTggKzE1OCwy
OCBAQCBhPXJ0Y3AtcnNpemUKICAgICBudWxsLAogICAgIC8vIE1lbWJlcnMgaW4gdGhlIGRpY3Rp
b25hcnkgdGFrZSB0aGVpciBkZWZhdWx0IHZhbHVlcwogICAgIHt9Ci0gIF0uZm9yRWFjaChpbml0
ID0+IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICBdLmZvckVhY2goaW5pdCA9PiB7CisgICAgcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKIAot
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgICAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOwogCi0gICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24o
c2Vzc2lvbkRlc2MpOwotICAgIGF3YWl0IHBjLmFkZEljZUNhbmRpZGF0ZShpbml0KTsKLSAgICBh
c3NlcnRfY2FuZGlkYXRlX2xpbmVfYmV0d2VlbihwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAsCi0g
ICAgICBtZWRpYUxpbmUxLCBlbmRPZkNhbmRpZGF0ZUxpbmUsIG1lZGlhTGluZTIpOwotICAgIGFz
c2VydF9jYW5kaWRhdGVfbGluZV9hZnRlcihwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAsCi0gICAg
ICBtZWRpYUxpbmUyLCBlbmRPZkNhbmRpZGF0ZUxpbmUpOwotICB9LCBgYWRkSWNlQ2FuZGlkYXRl
KCR7SlNPTi5zdHJpbmdpZnkoaW5pdCl9KSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1j
YW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9uc2ApKTsKKyAgICAgIGF3YWl0IHBjLnNldFJlbW90
ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjKTsKKyAgICAgIGF3YWl0IHBjLmFkZEljZUNhbmRpZGF0
ZShpbml0KTsKKyAgICB9LCBgYWRkSWNlQ2FuZGlkYXRlKCR7SlNPTi5zdHJpbmdpZnkoaW5pdCl9
KSB3b3Jrc2ApOworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMuY2xvc2UoKSk7CisKKyAgICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Np
b25EZXNjKTsKKyAgICAgIGF3YWl0IHBjLmFkZEljZUNhbmRpZGF0ZShpbml0KTsKKyAgICAgIGFz
c2VydF9jYW5kaWRhdGVfbGluZV9iZXR3ZWVuKHBjLnJlbW90ZURlc2NyaXB0aW9uLnNkcCwKKyAg
ICAgICAgbWVkaWFMaW5lMSwgZW5kT2ZDYW5kaWRhdGVMaW5lLCBtZWRpYUxpbmUyKTsKKyAgICAg
IGFzc2VydF9jYW5kaWRhdGVfbGluZV9hZnRlcihwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAsCisg
ICAgICAgIG1lZGlhTGluZTIsIGVuZE9mQ2FuZGlkYXRlTGluZSk7CisgICAgfSwgYGFkZEljZUNh
bmRpZGF0ZSgke0pTT04uc3RyaW5naWZ5KGluaXQpfSkgYWRkcyBhPWVuZC1vZi1jYW5kaWRhdGVz
IHRvIGJvdGggbS1zZWN0aW9uc2ApOworICB9KTsKIAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKQEAgLTQxOCw3ICs0
MjgsNyBAQCBhPXJ0Y3AtcnNpemUKICAgICAgIGFzc2VydF9jYW5kaWRhdGVfbGluZV9iZXR3ZWVu
KHBjLnJlbW90ZURlc2NyaXB0aW9uLnNkcCwKICAgICAgICAgbWVkaWFMaW5lMSwgZW5kT2ZDYW5k
aWRhdGVMaW5lLCBtZWRpYUxpbmUyKTsKICAgICB9KTsKLSAgfSwgJ0FkZCB3aXRoIGVtcHR5IGNh
bmRpZGF0ZSBzdHJpbmcgKGVuZCBvZiBjYW5kaWRhdGUpIHNob3VsZCBzdWNjZWVkJyk7CisgIH0s
ICdBZGQgd2l0aCBlbXB0eSBjYW5kaWRhdGUgc3RyaW5nIChlbmQgb2YgY2FuZGlkYXRlcykgc2hv
dWxkIHN1Y2NlZWQnKTsKIAogICAvKgogICAgIDQuNC4yLiAgYWRkSWNlQ2FuZGlkYXRlCkBAIC00
NDAsNiArNDUwLDE1IEBAIGE9cnRjcC1yc2l6ZQogICAgICAgICB9KSkpOwogICB9LCAnQWRkIGNh
bmRpZGF0ZSB3aXRoIGJvdGggc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4IG1hbnVhbGx5IHNldCB0
byBudWxsIHNob3VsZCByZWplY3Qgd2l0aCBUeXBlRXJyb3InKTsKIAorICBwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgYXdhaXQgcGMuc2V0UmVt
b3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2MpOworICAgIHByb21pc2VfcmVqZWN0c19qcyh0LCBU
eXBlRXJyb3IsCisgICAgICBwYy5hZGRJY2VDYW5kaWRhdGUoe2NhbmRpZGF0ZTogY2FuZGlkYXRl
U3RyMX0pKTsKKyAgfSwgJ2FkZEljZUNhbmRpZGF0ZSB3aXRoIGEgY2FuZGlkYXRlIGFuZCBuZWl0
aGVyIHNkcE1pZCBub3Igc2RwTUxpbmVJbmRleCBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9y
Jyk7CisKICAgcHJvbWlzZV90ZXN0KHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CiAKQEAgLTYwOSw1ICs2MjgsNCBAQCBhPXJ0Y3AtcnNpemUKICAgICAgICAg
ICB1c2VybmFtZUZyYWdtZW50OiB1c2VybmFtZUZyYWdtZW50MQogICAgICAgICB9KSkpOwogICB9
LCAnQWRkIGNhbmRpZGF0ZSB3aXRoIHNkcE1pZCBiZWxvbmdpbmcgdG8gZGlmZmVyZW50IHVzZXJu
YW1lRnJhZ21lbnQgc2hvdWxkIHJlamVjdCB3aXRoIE9wZXJhdGlvbkVycm9yJyk7Ci0KIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkVHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tYWRkVHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDIyMjdkNjNk
MDcyYTBlMDM0ODZjMDQ3ODJiNTk5NzllOGQzN2NjZmUuLjRkNTUyOTYwNTA0MzJkODE2MGVlZWI4
NTNhMGQyNTA4YzYyYjJmNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTgsNCArOCw1IEBAIFBBU1MgYWRkVHJhY2sgd2l0aCBleGlzdGluZyBzZW5kZXIgd2l0
aCBudWxsIHRyYWNrLCBzYW1lIGtpbmQsIGFuZCByZWN2b25seSBkaXJlCiBQQVNTIGFkZFRyYWNr
IHdpdGggZXhpc3Rpbmcgc2VuZGVyIHRoYXQgaGFzIG5vdCBiZWVuIHVzZWQgdG8gc2VuZCBzaG91
bGQgcmV1c2UgdGhlIHNlbmRlcgogUEFTUyBhZGRUcmFjayB3aXRoIGV4aXN0aW5nIHNlbmRlciB0
aGF0IGhhcyBiZWVuIHVzZWQgdG8gc2VuZCBzaG91bGQgY3JlYXRlIG5ldyBzZW5kZXIKIFBBU1Mg
YWRkVHJhY2sgd2l0aCBleGlzdGluZyBzZW5kZXIgd2l0aCBudWxsIHRyYWNrLCBkaWZmZXJlbnQg
a2luZCwgYW5kIHJlY3Zvbmx5IGRpcmVjdGlvbiBzaG91bGQgY3JlYXRlIG5ldyBzZW5kZXIKK0ZB
SUwgQWRkaW5nIG1vcmUgdHJhY2tzIGRvZXMgbm90IGdlbmVyYXRlIG1vcmUgY2FuZGlkYXRlcyBp
ZiBidW5kbGVkIGFzc2VydF91bnJlYWNoZWQ6IE5vIGNhbGxlciBjYW5kaWRhdGVzIHNob3VsZCBi
ZSBnZW5lcmF0ZWQuIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1hZGRUcmFjay5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkVHJhY2suaHR0cHMu
aHRtbAppbmRleCA3NTg1OTYxZjMxY2U5NDJkYjk0YTZlNTliZTc2Y2Y4YjhiM2RlMGRmLi41MjUz
MjNjYWQwN2Q3ZGQ5MzhkYTc0NGEwMmRmOTMzOTdiMmU1ZWVkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1hZGRUcmFjay5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBz
Lmh0bWwKQEAgLTI4Niw1ICsyODYsNTUgQEAKICAgICAgIDUuMS4gYWRkVHJhY2sKICAgICAgICAg
MTAuIFVwZGF0ZSB0aGUgbmVnb3RpYXRpb24tbmVlZGVkIGZsYWcgZm9yIGNvbm5lY3Rpb24uCiAK
LSAgICovCisgICovCisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGNh
bGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
Y2FsbGVyLmNsb3NlKCkpOworICAgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOworCisgICAgY29u
c3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFj
ay5zdG9wKCkpKTsKKyAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOworICAg
IGNvbnN0IHRyYW5zY2VpdmVyID0gY2FsbGVyLmFkZFRyYW5zY2VpdmVyKHRyYWNrKTsKKyAgICAv
LyBOb3RlIHRoYXQgdGhpcyB0ZXN0IGRvZXNuJ3QgcHJvY2VzcyBjYW5pZGlkYXRlcy4KKyAgICB7
CisgICAgICBjb25zdCBvZmZlciA9IGF3YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOworICAgICAg
YXdhaXQgY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICAgICAgYXdhaXQgY2Fs
bGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICAgIGNvbnN0IGFuc3dlciA9IGF3
YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKKyAgICAgIGF3YWl0IGNhbGxlZS5zZXRMb2NhbERl
c2NyaXB0aW9uKGFuc3dlcik7CisgICAgICBhd2FpdCBjYWxsZXIuc2V0UmVtb3RlRGVzY3JpcHRp
b24oYW5zd2VyKTsKKyAgICB9CisgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5jdXJyZW50
RGlyZWN0aW9uLCAnc2VuZG9ubHknKTsKKyAgICBhd2FpdCB3YWl0Rm9ySWNlR2F0aGVyaW5nU3Rh
dGUoY2FsbGVyLCBbJ2NvbXBsZXRlJ10pOworICAgIGF3YWl0IHdhaXRGb3JJY2VHYXRoZXJpbmdT
dGF0ZShjYWxsZWUsIFsnY29tcGxldGUnXSk7CisKKyAgICBjb25zdCBzZWNvbmRfc3RyZWFtID0g
YXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBzZWNvbmRfc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3Rv
cCgpKSk7CisgICAgLy8gVGhlcmUgbWF5IGJlIGNhbGxlZSBjYW5kaWRhdGVzIGluIGZsaWdodC4g
SXQgc2VlbXMgdGhhdCB3YWl0aW5nCisgICAgLy8gZm9yIGEgY3JlYXRlT2ZmZXIoKSBpcyBlbm91
Z2ggdGltZSB0byBsZXQgdGhlbSBjb21wbGV0ZSBwcm9jZXNzaW5nLgorICAgIC8vIFRPRE8oaHR0
cHM6Ly9jcmJ1Zy5jb20vd2VicnRjLzEzMDk1KTogRml4IGJ1ZyBhbmQgcmVtb3ZlLgorICAgIGF3
YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOworCisgICAgY29uc3QgW3NlY29uZF90cmFja10gPSBz
ZWNvbmRfc3RyZWFtLmdldFRyYWNrcygpOworICAgIGNhbGxlci5vbmljZWNhbmRpZGF0ZSA9IHQu
dW5yZWFjaGVkX2Z1bmMoCisgICAgICAnTm8gY2FsbGVyIGNhbmRpZGF0ZXMgc2hvdWxkIGJlIGdl
bmVyYXRlZC4nKTsKKyAgICBjYWxsZWUub25pY2VjYW5kaWRhdGUgPSB0LnVucmVhY2hlZF9mdW5j
KAorICAgICAgJ05vIGNhbGxlZSBjYW5kaWRhdGVzIHNob3VsZCBiZSBnZW5lcmF0ZWQuJyk7Cisg
ICAgY2FsbGVyLmFkZFRyYWNrKHNlY29uZF90cmFjayk7CisgICAgeworICAgICAgY29uc3Qgb2Zm
ZXIgPSBhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIoKTsKKyAgICAgIGF3YWl0IGNhbGxlci5zZXRM
b2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICAgIGF3YWl0IGNhbGxlZS5zZXRSZW1vdGVEZXNj
cmlwdGlvbihvZmZlcik7CisgICAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBjYWxsZWUuY3JlYXRl
QW5zd2VyKCk7CisgICAgICBhd2FpdCBjYWxsZWUuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIp
OworICAgICAgYXdhaXQgY2FsbGVyLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CisgICAg
fQorICAgIC8vIENoZWNrIHRoYXQgd2UncmUgYnVuZGxlZC4KKyAgICBjb25zdCBbZmlyc3RfdHJh
bnNjZWl2ZXIsIHNlY29uZF90cmFuc2NlaXZlcl0gPSBjYWxsZXIuZ2V0VHJhbnNjZWl2ZXJzKCk7
CisgICAgYXNzZXJ0X2VxdWFscyhmaXJzdF90cmFuc2NlaXZlci50cmFuc3BvcnQsIHNlY29uZF90
cmFuc2NlaXZlci50cmFuc3BvcnQpOworCisgIH0sICdBZGRpbmcgbW9yZSB0cmFja3MgZG9lcyBu
b3QgZ2VuZXJhdGUgbW9yZSBjYW5kaWRhdGVzIGlmIGJ1bmRsZWQnKTsKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tY2FwdHVyZS12aWRlby5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tY2FwdHVyZS12aWRlby5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2YzAyMjJkYzIxZDc3OWE2
YWI5ODJkOTYzY2YzZmQ1YWNmYzE5YzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1j
YXB0dXJlLXZpZGVvLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9ImxvbmciPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisvLyBU
aGlzIHRlc3QgY2hlY2tzIHRoYXQgPHZpZGVvPiBjYXB0dXJlIHdvcmtzIHZpYSBQZWVyQ29ubmVj
dGlvbi4KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzb3VyY2VWaWRlbyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgIHNvdXJjZVZpZGVvLnNyYyA9ICIv
bWVkaWEvdGVzdC12LTEyOGstMzIweDI0MC0yNGZwcy04a2ZyLndlYm0iOworICBzb3VyY2VWaWRl
by5sb29wID0gdHJ1ZTsKKworICBjb25zdCBvbkNhblBsYXkgPSBuZXcgUHJvbWlzZShyID0+IHNv
dXJjZVZpZGVvLm9uY2FucGxheSA9IHIpOworICBhd2FpdCBvbkNhblBsYXk7CisKKyAgY29uc3Qg
cGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMx
LmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgLy8gQXR0YWNoIHZpZGVvIHRvIHBj
MS4KKyAgY29uc3Qgc3RyZWFtID0gc291cmNlVmlkZW8uY2FwdHVyZVN0cmVhbSgpOworICBjb25z
dCB0cmFja3MgPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgIHBjMS5hZGRUcmFjayh0cmFja3NbMF0p
OworCisgIGNvbnN0IGRlc3RWaWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7
CisgIGRlc3RWaWRlby5hdXRvcGxheSA9IHRydWU7CisKKyAgLy8gU2V0dXAgcGMxLT5wYzIuCisg
IGNvbnN0IGhhdmVUcmFja0V2ZW50MSA9IG5ldyBQcm9taXNlKHIgPT4gcGMyLm9udHJhY2sgPSBy
KTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgYXdhaXQgcGMxLnNldExv
Y2FsRGVzY3JpcHRpb24oKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5s
b2NhbERlc2NyaXB0aW9uKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAg
YXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKwor
ICAvLyBEaXNwbGF5IHBjMiByZWNlaXZlZCB0cmFjayBpbiB2aWRlbyBlbGVtZW50LgorICBjb25z
dCBvbkxvYWRlZE1ldGFkYXRhID0gbmV3IFByb21pc2UociA9PiBkZXN0VmlkZW8ub25sb2FkZWRt
ZXRhZGF0YSA9IHIpOworICBkZXN0VmlkZW8uc3JjT2JqZWN0ID0gbmV3IE1lZGlhU3RyZWFtKFso
YXdhaXQgaGF2ZVRyYWNrRXZlbnQxKS50cmFja10pOworCisgIC8vIFN0YXJ0IHBsYXliYWNrIGFu
ZCB3YWl0IGZvciB2aWRlbyBvbiB0aGUgb3RoZXIgc2lkZS4KKyAgc291cmNlVmlkZW8ucGxheSgp
OworICBhd2FpdCBvbkxvYWRlZE1ldGFkYXRhOworCisgIC8vIFdhaXQgdW50aWwgdGhlIHZpZGVv
IGhhcyBub24temVybyByZXNvbHV0aW9uIGFuZCBzb21lIG5vbi1ibGFjayBwaXhlbHMuCisgIGF3
YWl0IG5ldyBQcm9taXNlKHAgPT4geworICAgIGZ1bmN0aW9uIGNoZWNrQ29sb3IoKSAgeworICAg
ICAgICBpZiAoZGVzdFZpZGVvLnZpZGVvV2lkdGggPiAwICYmIGdldFZpZGVvU2lnbmFsKGRlc3RW
aWRlbykgPiAwLjApCisgICAgICAgICAgcCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgdC5z
dGVwX3RpbWVvdXQoY2hlY2tDb2xvciwgMCk7CisgICAgfQorICAgIGNoZWNrQ29sb3IoKTsKKyAg
fSk7CisKKyAgLy8gVXNlcyBIZWxwZXIuanMgR2V0VmlkZW9TaWduYWwgdG8gcXVlcnkgfGRlc3RW
aWRlb3wgcGl4ZWwgdmFsdWUgYXQgYSBjZXJ0YWluIHBvc2l0aW9uLgorICBjb25zdCBwaXhlbFZh
bHVlID0gZ2V0VmlkZW9TaWduYWwoZGVzdFZpZGVvKTsKKworICAvLyBBbnl0aGluZyBub24tYmxh
Y2sgbWVhbnMgdGhhdCBjYXB0dXJlIHdvcmtzLgorICBhc3NlcnRfbm90X2VxdWFscyhwaXhlbFZh
bHVlLCAwKTsKKyAgfSwgIkNhcHR1cmluZyBhIHZpZGVvIGVsZW1lbnQgYW5kIHNlbmRpbmcgaXQg
dmlhIFBlZXJDb25uZWN0aW9uIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1jb25uZWN0aW9uU3RhdGUtZXhwZWN0ZWQudHh0CmluZGV4IGRiZDIzMGY4MzQ2NzcxYjky
OTY2M2FkNWY3YTI1MDg4NzhjYWZhZWEuLjNiZjY1Y2EyZjdlNDYxNzE3Y2Y3ZjZkOGNjYWFmOGQ3
NDRkMTQ0NzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0YXRlLWV4cGVjdGVkLnR4dApAQCAt
MSw2ICsxLDQgQEAKIAogUEFTUyBJbml0aWFsIGNvbm5lY3Rpb25TdGF0ZSBzaG91bGQgYmUgbmV3
Ci1QQVNTIENsb3NpbmcgdGhlIGNvbm5lY3Rpb24gc2hvdWxkIHNldCBjb25uZWN0aW9uU3RhdGUg
dG8gY2xvc2VkCi1QQVNTIGNvbm5lY3Rpb24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBl
dmVudHVhbGx5IGhhdmUgY29ubmVjdGVkIGNvbm5lY3Rpb24gc3RhdGUKLUZBSUwgY29ubmVjdGlv
biB3aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSB0cmFuc3BvcnRz
IGluIGNvbm5lY3RlZCBzdGF0ZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAnc2N0cFRyYW5zcG9ydC50cmFuc3BvcnQnKQorRkFJTCBjb25uZWN0aW9uIHdpdGggb25lIGRh
dGEgY2hhbm5lbCBzaG91bGQgZXZlbnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0
YXRlIENhbid0IGZpbmQgdmFyaWFibGU6IGRvU2lnbmFsaW5nSGFuZHNoYWtlCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVj
dGlvblN0YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDhlOTQxMTI3MTgxNTU3MjBmMzE2MjI5NjZiMjc3
NjBiNjUzYzM5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0
ZS5odG1sCkBAIC0wLDAgKzEsMjA5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBlLmNvbm5lY3Rpb25TdGF0
ZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICAvLyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBm
b2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgorICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRj
LXBjL2FyY2hpdmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG0KKworICAvLyBUaGUgZm9sbG93aW5nIGhl
bHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5q
czoKKyAgLy8gZXhjaGFuZ2VJY2VDYW5kaWRhdGVzCisgIC8vIGRvU2lnbmFsaW5nSGFuZHNoYWtl
CisKKyAgLyoKKyAgICA0LjMuMi4gIEludGVyZmFjZSBEZWZpbml0aW9uCisgICAgICBpbnRlcmZh
Y2UgUlRDUGVlckNvbm5lY3Rpb24gOiBFdmVudFRhcmdldCB7CisgICAgICAgIC4uLgorICAgICAg
ICByZWFkb25seSAgYXR0cmlidXRlIFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUgY29ubmVjdGlvblN0
YXRlOworICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciAgICAgICAgICAg
b25jb25uZWN0aW9uc3RhdGVjaGFuZ2U7CisgICAgICB9OworCisgICAgNC40LjMuICBSVENQZWVy
Q29ubmVjdGlvblN0YXRlIEVudW0KKyAgICAgIGVudW0gUlRDUGVlckNvbm5lY3Rpb25TdGF0ZSB7
CisgICAgICAgICJuZXciLAorICAgICAgICAiY29ubmVjdGluZyIsCisgICAgICAgICJjb25uZWN0
ZWQiLAorICAgICAgICAiZGlzY29ubmVjdGVkIiwKKyAgICAgICAgImZhaWxlZCIsCisgICAgICAg
ICJjbG9zZWQiCisgICAgICB9OworCisgICAgNS41LiAgUlRDRHRsc1RyYW5zcG9ydCBJbnRlcmZh
Y2UKKyAgICAgIGludGVyZmFjZSBSVENEdGxzVHJhbnNwb3J0IHsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFJUQ0ljZVRyYW5zcG9ydCAgICAgICB0cmFuc3BvcnQ7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBSVENEdGxzVHJhbnNwb3J0U3RhdGUgc3RhdGU7CisgICAgICAgIC4uLgor
ICAgICAgfTsKKworICAgICAgZW51bSBSVENEdGxzVHJhbnNwb3J0U3RhdGUgeworICAgICAgICAi
bmV3IiwKKyAgICAgICAgImNvbm5lY3RpbmciLAorICAgICAgICAiY29ubmVjdGVkIiwKKyAgICAg
ICAgImNsb3NlZCIsCisgICAgICAgICJmYWlsZWQiCisgICAgICB9OworCisgICAgNS42LiAgUlRD
SWNlVHJhbnNwb3J0IEludGVyZmFjZQorICAgICAgaW50ZXJmYWNlIFJUQ0ljZVRyYW5zcG9ydCB7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENJY2VUcmFuc3BvcnRTdGF0ZSBzdGF0ZTsK
KyAgICAgICAgLi4uCisgICAgICB9OworCisgICAgICBlbnVtIFJUQ0ljZVRyYW5zcG9ydFN0YXRl
IHsKKyAgICAgICAgIm5ldyIsCisgICAgICAgICJjaGVja2luZyIsCisgICAgICAgICJjb25uZWN0
ZWQiLAorICAgICAgICAiY29tcGxldGVkIiwKKyAgICAgICAgImZhaWxlZCIsCisgICAgICAgICJk
aXNjb25uZWN0ZWQiLAorICAgICAgICAiY2xvc2VkIgorICAgICAgfTsKKyAgICovCisKKyAgLyoK
KyAgICA0LjQuMy4gIFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUgRW51bQorICAgICAgbmV3CisgICAg
ICAgIEFueSBvZiB0aGUgUlRDSWNlVHJhbnNwb3J0cyBvciBSVENEdGxzVHJhbnNwb3J0cyBhcmUg
aW4gdGhlIG5ldworICAgICAgICBzdGF0ZSBhbmQgbm9uZSBvZiB0aGUgdHJhbnNwb3J0cyBhcmUg
aW4gdGhlIGNvbm5lY3RpbmcsIGNoZWNraW5nLAorICAgICAgICBmYWlsZWQgb3IgZGlzY29ubmVj
dGVkIHN0YXRlLCBvciBhbGwgdHJhbnNwb3J0cyBhcmUgaW4gdGhlIGNsb3NlZCBzdGF0ZS4KKyAg
ICovCisgIHRlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjLmNvbm5lY3Rpb25TdGF0ZSwgJ25ldycpOworICB9LCAn
SW5pdGlhbCBjb25uZWN0aW9uU3RhdGUgc2hvdWxkIGJlIG5ldycpOworCisgIC8qCisgICAgNC40
LjMuICBSVENQZWVyQ29ubmVjdGlvblN0YXRlIEVudW0KKyAgICAgIGNvbm5lY3RlZAorICAgICAg
ICBBbGwgUlRDSWNlVHJhbnNwb3J0cyBhbmQgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRoZSBj
b25uZWN0ZWQsCisgICAgICAgIGNvbXBsZXRlZCBvciBjbG9zZWQgc3RhdGUgYW5kIGF0IGxlYXN0
IG9mIHRoZW0gaXMgaW4gdGhlIGNvbm5lY3RlZAorICAgICAgICBvciBjb21wbGV0ZWQgc3RhdGUu
CisKKyAgICA1LjUuICBSVENEdGxzVHJhbnNwb3J0U3RhdGUKKyAgICAgIGNvbm5lY3RlZAorICAg
ICAgICBEVExTIGhhcyBjb21wbGV0ZWQgbmVnb3RpYXRpb24gb2YgYSBzZWN1cmUgY29ubmVjdGlv
bi4KKworICAgIDUuNi4gIFJUQ0ljZVRyYW5zcG9ydFN0YXRlCisgICAgICBjb25uZWN0ZWQKKyAg
ICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgZm91bmQgYSB1c2FibGUgY29ubmVjdGlvbiwg
YnV0IGlzIHN0aWxsCisgICAgICAgIGNoZWNraW5nIG90aGVyIGNhbmRpZGF0ZSBwYWlycyB0byBz
ZWUgaWYgdGhlcmUgaXMgYSBiZXR0ZXIgY29ubmVjdGlvbi4KKyAgICAgICAgSXQgbWF5IGFsc28g
c3RpbGwgYmUgZ2F0aGVyaW5nIGFuZC9vciB3YWl0aW5nIGZvciBhZGRpdGlvbmFsIHJlbW90ZQor
ICAgICAgICBjYW5kaWRhdGVzLiBJZiBjb25zZW50IGNoZWNrcyBbUkZDNzY3NV0gZmFpbCBvbiB0
aGUgY29ubmVjdGlvbiBpbiB1c2UsCisgICAgICAgIGFuZCB0aGVyZSBhcmUgbm8gb3RoZXIgc3Vj
Y2Vzc2Z1bCBjYW5kaWRhdGUgcGFpcnMgYXZhaWxhYmxlLCB0aGVuIHRoZQorICAgICAgICBzdGF0
ZSB0cmFuc2l0aW9ucyB0byAiY2hlY2tpbmciIChpZiB0aGVyZSBhcmUgY2FuZGlkYXRlIHBhaXJz
IHJlbWFpbmluZworICAgICAgICB0byBiZSBjaGVja2VkKSBvciAiZGlzY29ubmVjdGVkIiAoaWYg
dGhlcmUgYXJlIG5vIGNhbmRpZGF0ZSBwYWlycyB0bworICAgICAgICBjaGVjaywgYnV0IHRoZSBw
ZWVyIGlzIHN0aWxsIGdhdGhlcmluZyBhbmQvb3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbAorICAg
ICAgICByZW1vdGUgY2FuZGlkYXRlcykuCisKKyAgICAgIGNvbXBsZXRlZAorICAgICAgICBUaGUg
UlRDSWNlVHJhbnNwb3J0IGhhcyBmaW5pc2hlZCBnYXRoZXJpbmcsIHJlY2VpdmVkIGFuIGluZGlj
YXRpb24gdGhhdAorICAgICAgICB0aGVyZSBhcmUgbm8gbW9yZSByZW1vdGUgY2FuZGlkYXRlcywg
ZmluaXNoZWQgY2hlY2tpbmcgYWxsIGNhbmRpZGF0ZQorICAgICAgICBwYWlycyBhbmQgZm91bmQg
YSBjb25uZWN0aW9uLiBJZiBjb25zZW50IGNoZWNrcyBbUkZDNzY3NV0gc3Vic2VxdWVudGx5Cisg
ICAgICAgIGZhaWwgb24gYWxsIHN1Y2Nlc3NmdWwgY2FuZGlkYXRlIHBhaXJzLCB0aGUgc3RhdGUg
dHJhbnNpdGlvbnMgdG8gImZhaWxlZCIuCisgICAqLworICBhc3luY190ZXN0KHQgPT4geworICAg
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworCisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25z
dCBvbkNvbm5lY3Rpb25TdGF0ZUNoYW5nZSA9IHQuc3RlcF9mdW5jKCgpID0+IHsKKyAgICAgIGNv
bnN0IHsgY29ubmVjdGlvblN0YXRlIH0gPSBwYzE7CisgICAgICBpZihjb25uZWN0aW9uU3RhdGUg
PT09ICdjb25uZWN0ZWQnKSB7CisgICAgICAgIGNvbnN0IHNjdHBUcmFuc3BvcnQgPSBwYzEuc2N0
cDsKKworICAgICAgICBjb25zdCBkdGxzVHJhbnNwb3J0ID0gc2N0cFRyYW5zcG9ydC50cmFuc3Bv
cnQ7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZHRsc1RyYW5zcG9ydC5zdGF0ZSwgJ2Nvbm5lY3Rl
ZCcsCisgICAgICAgICAgJ0V4cGVjdCBEVExTIHRyYW5zcG9ydCB0byBiZSBpbiBjb25uZWN0ZWQg
c3RhdGUnKTsKKworICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBkdGxzVHJhbnNwb3J0LnRy
YW5zcG9ydAorICAgICAgICBhc3NlcnRfdHJ1ZShpY2VUcmFuc3BvcnQuc3RhdGUgPT09ICAnY29u
bmVjdGVkJyB8fAorICAgICAgICAgIGljZVRyYW5zcG9ydC5zdGF0ZSA9PT0gJ2NvbXBsZXRlZCcs
CisgICAgICAgICAgJ0V4cGVjdCBJQ0UgdHJhbnNwb3J0IHRvIGJlIGluIGNvbm5lY3RlZCBvciBj
b21wbGV0ZWQgc3RhdGUnKTsKKworICAgICAgICB0LmRvbmUoKTsKKyAgICAgIH0KKyAgICB9KTsK
KworICAgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcpOworCisgICAgYXNzZXJ0X2VxdWFs
cyhwYzEub25jb25uZWN0aW9uc3RhdGVjaGFuZ2UsIG51bGwsCisgICAgICAnRXhwZWN0IGNvbm5l
Y3Rpb24gdG8gaGF2ZSBjb25uZWN0aW9uc3RhdGVjaGFuZ2UgZXZlbnQnKTsKKworICAgIHBjMS5h
ZGRFdmVudExpc3RlbmVyKCdjb25uZWN0aW9uc3RhdGVjaGFuZ2UnLCBvbkNvbm5lY3Rpb25TdGF0
ZUNoYW5nZSk7CisKKyAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICAgIGRv
U2lnbmFsaW5nSGFuZHNoYWtlKHBjMSwgcGMyKTsKKyAgfSwgJ2Nvbm5lY3Rpb24gd2l0aCBvbmUg
ZGF0YSBjaGFubmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgY29ubmVjdGVkIGNvbm5lY3Rpb24g
c3RhdGUnKTsKKworICAvKgorICAgIFRPRE8KKyAgICA0LjQuMy4gIFJUQ1BlZXJDb25uZWN0aW9u
U3RhdGUgRW51bQorICAgICAgY29ubmVjdGluZworICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRy
YW5zcG9ydHMgb3IgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRoZQorICAgICAgICBjb25uZWN0
aW5nIG9yIGNoZWNraW5nIHN0YXRlIGFuZCBub25lIG9mIHRoZW0gaXMgaW4gdGhlIGZhaWxlZCBz
dGF0ZS4KKworICAgICAgZGlzY29ubmVjdGVkCisgICAgICAgIEFueSBvZiB0aGUgUlRDSWNlVHJh
bnNwb3J0cyBvciBSVENEdGxzVHJhbnNwb3J0cyBhcmUgaW4gdGhlIGRpc2Nvbm5lY3RlZAorICAg
ICAgICBzdGF0ZSBhbmQgbm9uZSBvZiB0aGVtIGFyZSBpbiB0aGUgZmFpbGVkIG9yIGNvbm5lY3Rp
bmcgb3IgY2hlY2tpbmcgc3RhdGUuCisKKyAgICAgIGZhaWxlZAorICAgICAgICBBbnkgb2YgdGhl
IFJUQ0ljZVRyYW5zcG9ydHMgb3IgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIGEgZmFpbGVkIHN0
YXRlLgorCisgICAgICBjbG9zZWQKKyAgICAgICAgVGhlIFJUQ1BlZXJDb25uZWN0aW9uIG9iamVj
dCdzIFtbaXNDbG9zZWRdXSBzbG90IGlzIHRydWUuCisKKyAgICAgNS41LiBSVENEdGxzVHJhbnNw
b3J0U3RhdGUKKyAgICAgIG5ldworICAgICAgICBEVExTIGhhcyBub3Qgc3RhcnRlZCBuZWdvdGlh
dGluZyB5ZXQuCisKKyAgICAgIGNvbm5lY3RpbmcKKyAgICAgICAgRFRMUyBpcyBpbiB0aGUgcHJv
Y2VzcyBvZiBuZWdvdGlhdGluZyBhIHNlY3VyZSBjb25uZWN0aW9uLgorCisgICAgICBjbG9zZWQK
KyAgICAgICAgVGhlIHRyYW5zcG9ydCBoYXMgYmVlbiBjbG9zZWQuCisKKyAgICAgIGZhaWxlZAor
ICAgICAgICBUaGUgdHJhbnNwb3J0IGhhcyBmYWlsZWQgYXMgdGhlIHJlc3VsdCBvZiBhbiBlcnJv
ciAoc3VjaCBhcyBhIGZhaWx1cmUKKyAgICAgICAgdG8gdmFsaWRhdGUgdGhlIHJlbW90ZSBmaW5n
ZXJwcmludCkuCisKKyAgICA1LjYuICBSVENJY2VUcmFuc3BvcnRTdGF0ZQorICAgICAgbmV3Cisg
ICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaXMgZ2F0aGVyaW5nIGNhbmRpZGF0ZXMgYW5kL29y
IHdhaXRpbmcgZm9yCisgICAgICAgIHJlbW90ZSBjYW5kaWRhdGVzIHRvIGJlIHN1cHBsaWVkLCBh
bmQgaGFzIG5vdCB5ZXQgc3RhcnRlZCBjaGVja2luZy4KKworICAgICAgY2hlY2tpbmcKKyAgICAg
ICAgVGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgcmVjZWl2ZWQgYXQgbGVhc3Qgb25lIHJlbW90ZSBj
YW5kaWRhdGUgYW5kCisgICAgICAgIGlzIGNoZWNraW5nIGNhbmRpZGF0ZSBwYWlycyBhbmQgaGFz
IGVpdGhlciBub3QgeWV0IGZvdW5kIGEgY29ubmVjdGlvbgorICAgICAgICBvciBjb25zZW50IGNo
ZWNrcyBbUkZDNzY3NV0gaGF2ZSBmYWlsZWQgb24gYWxsIHByZXZpb3VzbHkgc3VjY2Vzc2Z1bAor
ICAgICAgICBjYW5kaWRhdGUgcGFpcnMuIEluIGFkZGl0aW9uIHRvIGNoZWNraW5nLCBpdCBtYXkg
YWxzbyBzdGlsbCBiZSBnYXRoZXJpbmcuCisKKyAgICAgIGZhaWxlZAorICAgICAgICBUaGUgUlRD
SWNlVHJhbnNwb3J0IGhhcyBmaW5pc2hlZCBnYXRoZXJpbmcsIHJlY2VpdmVkIGFuIGluZGljYXRp
b24gdGhhdAorICAgICAgICB0aGVyZSBhcmUgbm8gbW9yZSByZW1vdGUgY2FuZGlkYXRlcywgZmlu
aXNoZWQgY2hlY2tpbmcgYWxsIGNhbmRpZGF0ZSBwYWlycywKKyAgICAgICAgYW5kIGFsbCBwYWly
cyBoYXZlIGVpdGhlciBmYWlsZWQgY29ubmVjdGl2aXR5IGNoZWNrcyBvciBoYXZlIGxvc3QgY29u
c2VudC4KKworICAgICAgZGlzY29ubmVjdGVkCisgICAgICAgIFRoZSBJQ0UgQWdlbnQgaGFzIGRl
dGVybWluZWQgdGhhdCBjb25uZWN0aXZpdHkgaXMgY3VycmVudGx5IGxvc3QgZm9yIHRoaXMKKyAg
ICAgICAgUlRDSWNlVHJhbnNwb3J0IC4gVGhpcyBpcyBtb3JlIGFnZ3Jlc3NpdmUgdGhhbiBmYWls
ZWQsIGFuZCBtYXkgdHJpZ2dlcgorICAgICAgICBpbnRlcm1pdHRlbnRseSAoYW5kIHJlc29sdmUg
aXRzZWxmIHdpdGhvdXQgYWN0aW9uKSBvbiBhIGZsYWt5IG5ldHdvcmsuCisgICAgICAgIFRoZSB3
YXkgdGhpcyBzdGF0ZSBpcyBkZXRlcm1pbmVkIGlzIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudC4K
KworICAgICAgICBFeGFtcGxlcyBpbmNsdWRlOgorICAgICAgICAgIExvc2luZyB0aGUgbmV0d29y
ayBpbnRlcmZhY2UgZm9yIHRoZSBjb25uZWN0aW9uIGluIHVzZS4KKyAgICAgICAgICBSZXBlYXRl
ZGx5IGZhaWxpbmcgdG8gcmVjZWl2ZSBhIHJlc3BvbnNlIHRvIFNUVU4gcmVxdWVzdHMuCisKKyAg
ICAgICAgQWx0ZXJuYXRpdmVseSwgdGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgZmluaXNoZWQgY2hl
Y2tpbmcgYWxsIGV4aXN0aW5nCisgICAgICAgIGNhbmRpZGF0ZXMgcGFpcnMgYW5kIGZhaWxlZCB0
byBmaW5kIGEgY29ubmVjdGlvbiAob3IgY29uc2VudCBjaGVja3MKKyAgICAgICAgW1JGQzc2NzVd
IG9uY2Ugc3VjY2Vzc2Z1bCwgaGF2ZSBub3cgZmFpbGVkKSwgYnV0IGl0IGlzIHN0aWxsIGdhdGhl
cmluZworICAgICAgICBhbmQvb3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbCByZW1vdGUgY2FuZGlk
YXRlcy4KKworICAgICAgY2xvc2VkCisgICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIHNo
dXQgZG93biBhbmQgaXMgbm8gbG9uZ2VyIHJlc3BvbmRpbmcgdG8gU1RVTiByZXF1ZXN0cy4KKyAg
ICovCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLW9mZmVy
VG9SZWNlaXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLW9mZmVyVG9S
ZWNlaXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzYxN2IxZGY2Y2E4NGNiMzNiNWUzY2E2
NTRmZGE2ODcyZmJiNmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2Zm
ZXItb2ZmZXJUb1JlY2VpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKworUEFTUyBj
cmVhdGVPZmZlcigpIHdpdGggb2ZmZXJUb1JlY2VpdmVBdWRpbyBzZXQgdG8gZmFsc2Ugc2hvdWxk
IG5vdCBjcmVhdGUgYSB0cmFuc2NlaXZlcgorRkFJTCBjcmVhdGVPZmZlcigpIHdpdGggb2ZmZXJU
b1JlY2VpdmVBdWRpbyBzaG91bGQgY3JlYXRlIGEgInJlY3Zvbmx5IiB0cmFuc2NlaXZlciBhc3Nl
cnRfZXF1YWxzOiBFeHBlY3QgcGMgdG8gaGF2ZSBvbmUgdHJhbnNjZWl2ZXIgZXhwZWN0ZWQgMSBi
dXQgZ290IDAKK0ZBSUwgb2ZmZXJUb1JlY2VpdmVBdWRpbyBvcHRpb24gc2hvdWxkIGJlIGlnbm9y
ZWQgaWYgYSBub24tc3RvcHBlZCAicmVjdm9ubHkiIHRyYW5zY2VpdmVyIGV4aXN0cyBhc3NlcnRf
ZXF1YWxzOiBFeHBlY3QgcGMgdG8gaGF2ZSBvbmUgdHJhbnNjZWl2ZXIgZXhwZWN0ZWQgMSBidXQg
Z290IDAKK1BBU1Mgb2ZmZXJUb1JlY2VpdmVBdWRpbyBvcHRpb24gc2hvdWxkIGJlIGlnbm9yZWQg
aWYgYSBub24tc3RvcHBlZCAic2VuZHJlY3YiIHRyYW5zY2VpdmVyIGV4aXN0cworRkFJTCBvZmZl
clRvUmVjZWl2ZUF1ZGlvIHNldCB0byBmYWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNyZWF0ZSBh
ICJzZW5kb25seSIgdHJhbnNjZWl2ZXIgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHRyYW5zY2VpdmVy
IHRvIGhhdmUgInNlbmRvbmx5IiBkaXJlY3Rpb24gZXhwZWN0ZWQgInNlbmRvbmx5IiBidXQgZ290
ICJzZW5kcmVjdiIKK0ZBSUwgb2ZmZXJUb1JlY2VpdmVBdWRpbyBzZXQgdG8gZmFsc2Ugd2l0aCBh
ICJyZWN2b25seSIgdHJhbnNjZWl2ZXIgc2hvdWxkIGNoYW5nZSB0aGUgZGlyZWN0aW9uIHRvICJp
bmFjdGl2ZSIgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgImluYWN0
aXZlIiBkaXJlY3Rpb24gZXhwZWN0ZWQgImluYWN0aXZlIiBidXQgZ290ICJyZWN2b25seSIKK0ZB
SUwgc3Vic2VxdWVudCBvZmZlclRvUmVjZWl2ZUF1ZGlvIHNldCB0byBmYWxzZSB3aXRoIGEgdHJh
Y2sgc2hvdWxkIGNoYW5nZSB0aGUgZGlyZWN0aW9uIHRvICJzZW5kb25seSIgYXNzZXJ0X2VxdWFs
czogRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgInNlbmRvbmx5IiBkaXJlY3Rpb24gZXhwZWN0
ZWQgInNlbmRvbmx5IiBidXQgZ290ICJzZW5kcmVjdiIKK1BBU1MgY3JlYXRlT2ZmZXIoKSB3aXRo
IG9mZmVyVG9SZWNlaXZlVmlkZW8gc2V0IHRvIGZhbHNlIHNob3VsZCBub3QgY3JlYXRlIGEgdHJh
bnNjZWl2ZXIKK0ZBSUwgY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlVmlkZW8gc2hv
dWxkIGNyZWF0ZSBhICJyZWN2b25seSIgdHJhbnNjZWl2ZXIgYXNzZXJ0X2VxdWFsczogRXhwZWN0
IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitGQUlMIG9m
ZmVyVG9SZWNlaXZlVmlkZW8gb3B0aW9uIHNob3VsZCBiZSBpZ25vcmVkIGlmIGEgbm9uLXN0b3Bw
ZWQgInJlY3Zvbmx5IiB0cmFuc2NlaXZlciBleGlzdHMgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHBj
IHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIG9mZmVy
VG9SZWNlaXZlVmlkZW8gb3B0aW9uIHNob3VsZCBiZSBpZ25vcmVkIGlmIGEgbm9uLXN0b3BwZWQg
InNlbmRyZWN2IiB0cmFuc2NlaXZlciBleGlzdHMKK0ZBSUwgb2ZmZXJUb1JlY2VpdmVWaWRlbyBz
ZXQgdG8gZmFsc2Ugd2l0aCBhIHRyYWNrIHNob3VsZCBjcmVhdGUgYSAic2VuZG9ubHkiIHRyYW5z
Y2VpdmVyIGFzc2VydF9lcXVhbHM6IEV4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJzZW5kb25s
eSIgZGlyZWN0aW9uIGV4cGVjdGVkICJzZW5kb25seSIgYnV0IGdvdCAic2VuZHJlY3YiCitGQUlM
IG9mZmVyVG9SZWNlaXZlVmlkZW8gc2V0IHRvIGZhbHNlIHdpdGggYSAicmVjdm9ubHkiIHRyYW5z
Y2VpdmVyIHNob3VsZCBjaGFuZ2UgdGhlIGRpcmVjdGlvbiB0byAiaW5hY3RpdmUiIGFzc2VydF9l
cXVhbHM6IEV4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJpbmFjdGl2ZSIgZGlyZWN0aW9uIGV4
cGVjdGVkICJpbmFjdGl2ZSIgYnV0IGdvdCAicmVjdm9ubHkiCitGQUlMIHN1YnNlcXVlbnQgb2Zm
ZXJUb1JlY2VpdmVWaWRlbyBzZXQgdG8gZmFsc2Ugd2l0aCBhIHRyYWNrIHNob3VsZCBjaGFuZ2Ug
dGhlIGRpcmVjdGlvbiB0byAic2VuZG9ubHkiIGFzc2VydF9lcXVhbHM6IEV4cGVjdCB0cmFuc2Nl
aXZlciB0byBoYXZlICJzZW5kb25seSIgZGlyZWN0aW9uIGV4cGVjdGVkICJzZW5kb25seSIgYnV0
IGdvdCAic2VuZHJlY3YiCitGQUlMIG9mZmVyVG9SZWNlaXZlQXVkaW8gYW5kIFZpZGVvIHNob3Vs
ZCBjcmVhdGUgdHdvICJyZWN2b25seSIgdHJhbnNjZWl2ZXJzIGFzc2VydF9lcXVhbHM6IEV4cGVj
dCBwYyB0byBoYXZlIHR3byB0cmFuc2NlaXZlcnMgZXhwZWN0ZWQgMiBidXQgZ290IDAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2VpdmUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWNyZWF0ZU9mZmVyLW9mZmVyVG9SZWNlaXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQx
ODI3YTFjOGQ2MGFiZTY3Y2FkNzJhOWVmMzI4MDAwM2M3OTJjMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLW9mZmVyVG9SZWNlaXZlLmh0bWwKQEAgLTAsMCArMSwx
ODUgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5UZXN0
IGxlZ2FjeSBvZmZlclRvUmVjZWl2ZUF1ZGlvL1ZpZGVvIG9wdGlvbnM8L3RpdGxlPgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXBjLyNsZWdhY3kt
Y29uZmlndXJhdGlvbi1leHRlbnNpb25zIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIC8vIFJ1biBz
b21lIHRlc3RzIGZvciBib3RoIGF1ZGlvIGFuZCB2aWRlbyBraW5kcworICBbJ2F1ZGlvJywgJ3Zp
ZGVvJ10uZm9yRWFjaCgoa2luZCkgPT4geworICAgIGNvbnN0IGNhcHNLaW5kID0ga2luZFswXS50
b1VwcGVyQ2FzZSgpICsga2luZC5zbGljZSgxKTsKKworICAgIGNvbnN0IG9mZmVyVG9SZWNlaXZl
VHJ1ZSA9IHt9OworICAgIG9mZmVyVG9SZWNlaXZlVHJ1ZVtgb2ZmZXJUb1JlY2VpdmUke2NhcHNL
aW5kfWBdID0gdHJ1ZTsKKworICAgIGNvbnN0IG9mZmVyVG9SZWNlaXZlRmFsc2UgPSB7fTsKKyAg
ICBvZmZlclRvUmVjZWl2ZUZhbHNlW2BvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9YF0gPSBmYWxz
ZTsKKworICAgIC8vIFN0YXJ0IHRlc3RpbmcKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICAgIGNvbnN0IGR1bW15ID0gcGMuY3JlYXRlRGF0YUNo
YW5uZWwoJ2ZvbycpOyAvLyBKdXN0IHRvIGhhdmUgc29tZXRoaW5nIHRvIG9mZmVyCisKKyAgICAg
IHJldHVybiBwYy5jcmVhdGVPZmZlcihvZmZlclRvUmVjZWl2ZUZhbHNlKQorICAgICAgLnRoZW4o
KCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0
aCwgMCwKKyAgICAgICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgbm8gdHJhbnNjZWl2ZXJzJyk7Cisg
ICAgICB9KTsKKyAgICB9LCBgY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlJHtjYXBz
S2luZH0gc2V0IHRvIGZhbHNlIHNob3VsZCBub3QgY3JlYXRlIGEgdHJhbnNjZWl2ZXJgKTsKKwor
ICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAg
ICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcihvZmZlclRvUmVjZWl2ZVRydWUpCisgICAgICAudGhl
bigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVu
Z3RoLCAxLAorICAgICAgICAgICdFeHBlY3QgcGMgdG8gaGF2ZSBvbmUgdHJhbnNjZWl2ZXInKTsK
KworICAgICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmdldFRyYW5zY2VpdmVycygpWzBdOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3JlY3Zvbmx5JywK
KyAgICAgICAgICAnRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgInJlY3Zvbmx5IiBkaXJlY3Rp
b24nKTsKKyAgICAgIH0pOworICAgIH0sIGBjcmVhdGVPZmZlcigpIHdpdGggb2ZmZXJUb1JlY2Vp
dmUke2NhcHNLaW5kfSBzaG91bGQgY3JlYXRlIGEgInJlY3Zvbmx5IiB0cmFuc2NlaXZlcmApOwor
CisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKworICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKwor
ICAgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKG9mZmVyVG9SZWNlaXZlVHJ1ZSkKKyAgICAgIC50
aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5s
ZW5ndGgsIDEsCisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlcicp
OworCisgICAgICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF07
CisgICAgICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAncmVjdm9ubHkn
LAorICAgICAgICAgICdFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAicmVjdm9ubHkiIGRpcmVj
dGlvbicpOworICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IHBjLmNyZWF0ZU9mZmVyKG9mZmVy
VG9SZWNlaXZlVHJ1ZSkpCisgICAgICAudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxLAorICAgICAgICAgICdFeHBlY3QgcGMg
dG8gc3RpbGwgaGF2ZSBvbmx5IG9uZSB0cmFuc2NlaXZlcicpOworICAgICAgfSkKKyAgICAgIDsK
KyAgICB9LCBgb2ZmZXJUb1JlY2VpdmUke2NhcHNLaW5kfSBvcHRpb24gc2hvdWxkIGJlIGlnbm9y
ZWQgaWYgYSBub24tc3RvcHBlZCAicmVjdm9ubHkiIHRyYW5zY2VpdmVyIGV4aXN0c2ApOworCisg
ICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKworICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAg
ICAgcmV0dXJuIGdldFRyYWNrRnJvbVVzZXJNZWRpYShraW5kKQorICAgICAgLnRoZW4oKFt0cmFj
aywgc3RyZWFtXSkgPT4geworICAgICAgICBwYy5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKKyAg
ICAgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKCk7CisgICAgICB9KQorICAgICAgLnRoZW4oKCkg
PT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwg
MSwKKyAgICAgICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyJyk7CisKKyAg
ICAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdzZW5kcmVjdicsCisgICAg
ICAgICAgJ0V4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJzZW5kcmVjdiIgZGlyZWN0aW9uJyk7
CisgICAgICB9KQorICAgICAgLnRoZW4oKCkgPT4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2Vp
dmVUcnVlKSkKKyAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5n
ZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEsCisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBzdGls
bCBoYXZlIG9ubHkgb25lIHRyYW5zY2VpdmVyJyk7CisgICAgICB9KQorICAgICAgOworICAgIH0s
IGBvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9IG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBh
IG5vbi1zdG9wcGVkICJzZW5kcmVjdiIgdHJhbnNjZWl2ZXIgZXhpc3RzYCk7CisKKyAgICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworCisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgICByZXR1
cm4gZ2V0VHJhY2tGcm9tVXNlck1lZGlhKGtpbmQpCisgICAgICAudGhlbigoW3RyYWNrLCBzdHJl
YW1dKSA9PiB7CisgICAgICAgIHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworICAgICAgICBy
ZXR1cm4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2VpdmVGYWxzZSk7CisgICAgICB9KQorICAg
ICAgLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVy
cygpLmxlbmd0aCwgMSwKKyAgICAgICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2Vp
dmVyJyk7CisKKyAgICAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMo
KVswXTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdzZW5k
b25seScsCisgICAgICAgICAgJ0V4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJzZW5kb25seSIg
ZGlyZWN0aW9uJyk7CisgICAgICB9KQorICAgICAgOworICAgIH0sIGBvZmZlclRvUmVjZWl2ZSR7
Y2Fwc0tpbmR9IHNldCB0byBmYWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNyZWF0ZSBhICJzZW5k
b25seSIgdHJhbnNjZWl2ZXJgKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICAgIHBjLmFkZFRyYW5zY2VpdmVyKGtpbmQsIHtkaXJl
Y3Rpb246ICdyZWN2b25seSd9KTsKKworICAgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKG9mZmVy
VG9SZWNlaXZlRmFsc2UpCisgICAgICAudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxLAorICAgICAgICAgICdFeHBlY3QgcGMg
dG8gaGF2ZSBvbmUgdHJhbnNjZWl2ZXInKTsKKworICAgICAgICBjb25zdCB0cmFuc2NlaXZlciA9
IHBjLmdldFRyYW5zY2VpdmVycygpWzBdOworICAgICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2Vp
dmVyLmRpcmVjdGlvbiwgJ2luYWN0aXZlJywKKyAgICAgICAgICAnRXhwZWN0IHRyYW5zY2VpdmVy
IHRvIGhhdmUgImluYWN0aXZlIiBkaXJlY3Rpb24nKTsKKyAgICAgIH0pCisgICAgICA7CisgICAg
fSwgYG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH0gc2V0IHRvIGZhbHNlIHdpdGggYSAicmVjdm9u
bHkiIHRyYW5zY2VpdmVyIHNob3VsZCBjaGFuZ2UgdGhlIGRpcmVjdGlvbiB0byAiaW5hY3RpdmUi
YCk7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsK
KyAgICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgICAgcmV0dXJuIGdldFRyYWNrRnJv
bVVzZXJNZWRpYShraW5kKQorICAgICAgLnRoZW4oKFt0cmFjaywgc3RyZWFtXSkgPT4geworICAg
ICAgICBwYy5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKKyAgICAgICAgcmV0dXJuIHBjLmNyZWF0
ZU9mZmVyKCk7CisgICAgICB9KQorICAgICAgLnRoZW4oKG9mZmVyKSA9PiBwYy5zZXRMb2NhbERl
c2NyaXB0aW9uKG9mZmVyKSkKKyAgICAgIC50aGVuKCgpID0+IHBjMi5zZXRSZW1vdGVEZXNjcmlw
dGlvbihwYy5sb2NhbERlc2NyaXB0aW9uKSkKKyAgICAgIC50aGVuKCgpID0+IHBjMi5jcmVhdGVB
bnN3ZXIoKSkKKyAgICAgIC50aGVuKChhbnN3ZXIpID0+IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9u
KGFuc3dlcikpCisgICAgICAudGhlbigoKSA9PiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIu
bG9jYWxEZXNjcmlwdGlvbikpCisgICAgICAudGhlbigoKSA9PiBwYy5jcmVhdGVPZmZlcihvZmZl
clRvUmVjZWl2ZUZhbHNlKSkKKyAgICAgIC50aGVuKChvZmZlcikgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSwKKyAgICAgICAgICAnRXhw
ZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyJyk7CisKKyAgICAgICAgY29uc3QgdHJhbnNj
ZWl2ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0
cmFuc2NlaXZlci5kaXJlY3Rpb24sICdzZW5kb25seScsCisgICAgICAgICAgJ0V4cGVjdCB0cmFu
c2NlaXZlciB0byBoYXZlICJzZW5kb25seSIgZGlyZWN0aW9uJyk7CisgICAgICB9KQorICAgICAg
OworICAgIH0sIGBzdWJzZXF1ZW50IG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH0gc2V0IHRvIGZh
bHNlIHdpdGggYSB0cmFjayBzaG91bGQgY2hhbmdlIHRoZSBkaXJlY3Rpb24gdG8gInNlbmRvbmx5
ImApOworICB9KTsKKworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2Uo
KSk7CisKKyAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIoeyBvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0
cnVlLCBvZmZlclRvUmVjZWl2ZVZpZGVvOiB0cnVlIH0pCisgICAgLnRoZW4oKCkgPT4geworICAg
ICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDIsCisgICAgICAg
ICdFeHBlY3QgcGMgdG8gaGF2ZSB0d28gdHJhbnNjZWl2ZXJzJyk7CisKKyAgICAgIGFzc2VydF9l
cXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uZGlyZWN0aW9uLCAncmVjdm9ubHknLAorICAg
ICAgICAnRXhwZWN0IGZpcnN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgInJlY3Zvbmx5IiBkaXJlY3Rp
b24nKTsKKyAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKClbMV0uZGlyZWN0
aW9uLCAncmVjdm9ubHknLAorICAgICAgICAnRXhwZWN0IHNlY29uZCB0cmFuc2NlaXZlciB0byBo
YXZlICJyZWN2b25seSIgZGlyZWN0aW9uJyk7CisgICAgfSk7CisgIH0sICdvZmZlclRvUmVjZWl2
ZUF1ZGlvIGFuZCBWaWRlbyBzaG91bGQgY3JlYXRlIHR3byAicmVjdm9ubHkiIHRyYW5zY2VpdmVy
cycpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VT
ZXJ2ZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODZlZTJjZTZiZjY4M2ZmZGQ0MjkzYjdmMjhlNzhiOGIx
MzUyODQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZl
cnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIFJUQ1BlZXJDb25uZWN0aW9u
LmdldERlZmF1bHRJY2VTZXJ2ZXJzKCkgc2hvdWxkIHJldHVybiBhcnJheSBvZiBSVENJY2VTZXJ2
ZXIgUlRDUGVlckNvbm5lY3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnMgaXMgbm90IGEgZnVuY3Rp
b24uIChJbiAnUlRDUGVlckNvbm5lY3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnMoKScsICdSVENQ
ZWVyQ29ubmVjdGlvbi5nZXREZWZhdWx0SWNlU2VydmVycycgaXMgdW5kZWZpbmVkKQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVycy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tZ2V0RGVmYXVsdEljZVNlcnZlcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmRiZGI4ZGVjNDZkZTU0
OWMwNzc5NDllZDk0NmE3YTMxMGU5Yjc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
Z2V0RGVmYXVsdEljZVNlcnZlcnMuaHRtbApAQCAtMCwwICsxLDk4IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24uZ2V0RGVm
YXVsdEljZVNlcnZlcnM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIC8vIFRlc3Qg
aXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6CisgIC8vIGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKKworICAv
KgorICAgICAgW0NvbnN0cnVjdG9yKG9wdGlvbmFsIFJUQ0NvbmZpZ3VyYXRpb24gY29uZmlndXJh
dGlvbildCisgICAgICBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24gOiBFdmVudFRhcmdldCB7
CisgICAgICAgIHN0YXRpYyBzZXF1ZW5jZTxSVENJY2VTZXJ2ZXI+ICAgICAgZ2V0RGVmYXVsdElj
ZVNlcnZlcnMoKTsKKyAgICAgICAgLi4uCisgICAgICB9OworCisgICAgICBkaWN0aW9uYXJ5IFJU
Q0ljZVNlcnZlciB7CisgICAgICAgIHJlcXVpcmVkIChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9N
U3RyaW5nPikgdXJsczsKKyAgICAgICAgICAgICAgICAgRE9NU3RyaW5nICAgICAgICAgICAgICAg
ICAgICAgICAgICB1c2VybmFtZTsKKyAgICAgICAgICAgICAgICAgKERPTVN0cmluZyBvciBSVENP
QXV0aENyZWRlbnRpYWwpICBjcmVkZW50aWFsOworICAgICAgICAgICAgICAgICBSVENJY2VDcmVk
ZW50aWFsVHlwZSAgICAgICAgICAgICAgIGNyZWRlbnRpYWxUeXBlID0gInBhc3N3b3JkIjsKKyAg
ICAgIH07CisKKyAgICAgIGRpY3Rpb25hcnkgUlRDT0F1dGhDcmVkZW50aWFsIHsKKyAgICAgICAg
cmVxdWlyZWQgRE9NU3RyaW5nIG1hY0tleTsKKyAgICAgICAgcmVxdWlyZWQgRE9NU3RyaW5nIGFj
Y2Vzc1Rva2VuOworICAgICAgfTsKKworICAgICAgZW51bSBSVENJY2VDcmVkZW50aWFsVHlwZSB7
CisgICAgICAgICJwYXNzd29yZCIsCisgICAgICAgICJvYXV0aCIKKyAgICAgIH07CisgICAqLwor
CisgIHRlc3QoKCkgPT4geworICAgIGNvbnN0IGljZVNlcnZlcnMgPSBSVENQZWVyQ29ubmVjdGlv
bi5nZXREZWZhdWx0SWNlU2VydmVycygpOworCisgICAgYXNzZXJ0X3RydWUoQXJyYXkuaXNBcnJh
eShpY2VTZXJ2ZXJzKSwKKyAgICAgICdFeHBlY3QgaWNlU2VydmVycyB0byBiZSBhbiBhcnJheScp
OworCisgICAgLy8gZGljdGlvbmFyeSBJREwgY2Fubm90IGJlIHRlc3RlZCBhdXRvbWF0aWNhbGx5
IHVzaW5nIGlkbGhhcm5lc3MKKyAgICBmb3IoY29uc3Qgc2VydmVyIG9mIGljZVNlcnZlcnMpIHsK
KyAgICAgIGNvbnN0IHsgdXJscywgdXNlcm5hbWUsIGNyZWRlbnRpYWwsIGNyZWRlbnRpYWxUeXBl
IH0gPSBzZXJ2ZXI7CisKKyAgICAgIGlmKEFycmF5LmlzQXJyYXkodXJscykpIHsKKyAgICAgICAg
Zm9yKGNvbnN0IHVybCBvZiB1cmxzKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Yg
dXJsLCAnc3RyaW5nJywKKyAgICAgICAgICAgICdFeHBlY3QgZWxlbWVudHMgaW4gdXJscyBhcnJh
eSB0byBiZSBzdHJpbmcnKTsKKyAgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyh0eXBlb2YgdXJscywgJ3N0cmluZycsCisgICAgICAgICAgJ0V4cGVjdCB1cmxz
IHRvIGJlIGVpdGhlciBzdHJpbmcgb3IgYXJyYXknKTsKKyAgICAgIH0KKworICAgICAgaWYodXNl
cm5hbWUgIT09IHVuZGVmaW5lZCkgeworICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB1c2Vy
bmFtZSwgJ3N0cmluZycsCisgICAgICAgICAgJ0V4cGVjdCB1c2VybmFtZSB0byBiZSBlaXRoZXIg
dW5kZWZpbmVkIG9yIHN0cmluZycpOworICAgICAgfQorCisgICAgICBhc3NlcnRfdHJ1ZShjcmVk
ZW50aWFsVHlwZSA9PT0gJ3Bhc3N3b3JkJyB8fCBjcmVkZW50aWFsVHlwZSA9PT0gJ29hdXRoJywK
KyAgICAgICAgJ0V4cGVjdCBjcmVkZW50aWFsVHlwZSB0byBiZSBlaXRoZXIgcGFzc3dvcmQgb3Ig
b2F1dGgnKQorCisgICAgICBpZihjcmVkZW50aWFsKSB7CisgICAgICAgIGlmKHR5cGVvZihjcmVk
ZW50aWFsKSA9PT0gJ29iamVjdCcpIHsKKyAgICAgICAgICBjb25zdCB7IG1hY0tleSwgYWNjZXNz
VG9rZW4gfSA9IGNyZWRlbnRpYWw7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgbWFj
S2V5LCAnc3RyaW5nJywKKyAgICAgICAgICAgICdFeHBlY3QgbWFjS2V5IHRvIGJlIHN0cmluZycp
OworCisgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgYWNjZXNzVG9rZW4sICdzdHJpbmcn
LAorICAgICAgICAgICAgJ0V4cGVjdCBhY2Nlc3NUb2tlbiB0byBiZSBzdHJpbmcnKTsKKworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGNyZWRlbnRpYWws
ICdzdHJpbmcnLAorICAgICAgICAgICAgJ0V4cGVjdCBjcmVkZW50aWFsIHRvIGJlIGVpdGhlciB1
bmRlZmluZWQsIHN0cmluZywgb3IgUlRDT2F1dGhDcmVkZW50aWFsIGRpY3Rpb25hcnknKTsKKyAg
ICAgICAgfQorICAgICAgfQorICAgIH0KKworICAgIC8vIEV4cGVjdCBkZWZhdWx0IGljZSBzZXJ2
ZXJzIHRvIGJlIGFjY2VwdGVkIGFzIHZhbGlkIGNvbmZpZ3VyYXRpb24KKyAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnMgfSk7CisKKyAgICAvLyBPbmx5IG1h
a2Ugc3VyZSB0aGVyZSBhcmUgc2FtZSBudW1iZXIgb2YgaWNlIHNlcnZlcnMgY29uZmlndXJlZAor
ICAgIC8vIGFuZCBub3QgZG8gYW55IGRlZXAgZXF1YWxpdHkgY2hlY2tpbmcKKyAgICBhc3NlcnRf
ZXF1YWxzKHBjLmdldENvbmZpZ3VyYXRpb24oKS5pY2VTZXJ2ZXJzLmxlbmd0aCwgaWNlU2VydmVy
cy5sZW5ndGgpOworCisgIH0sICdSVENQZWVyQ29ubmVjdGlvbi5nZXREZWZhdWx0SWNlU2VydmVy
cygpIHNob3VsZCByZXR1cm4gYXJyYXkgb2YgUlRDSWNlU2VydmVyJyk7CisKKyAgLyoKKyAgICBD
b3ZlcmFnZSBSZXBvcnQKKyAgICAgIFNpbmNlIHRoZXJlIGlzIG5vIHN0ZXBzIGludm9sdmVkIGFu
ZCB3ZSBhcmUgb25seSBjaGVja2luZyBiYXNpYyBjYWxsLAorICAgICAgVGhpcyBpcyBjb3VudGVk
IGFzIDEgdHJpdmlhbCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICBUZXN0ZWQgICAgMQorICAgICAg
VG90YWwgICAgIDEKKyAgICovCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdl
dElkZW50aXR5QXNzZXJ0aW9uLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRJZGVu
dGl0eUFzc2VydGlvbi5zdWItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExZDk0OGFhZGZhMTYy
Njc3NDlkZjdlZDUyNGQ2ODA0NDYzZDkzNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAK
KworRkFJTCBnZXRJZGVudGl0eUFzc2VydGlvbigpIHNob3VsZCBsb2FkIElkUCBwcm94eSBhbmQg
cmV0dXJuIGFzc2VydGlvbiBnZW5lcmF0ZWQgdW5kZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9uIChu
ZWFyICcuLi5wYy5zZXRJZGVudGl0eVByb3ZpZGVyLi4uJykKK0ZBSUwgZ2V0SWRlbnRpdHlBc3Nl
cnRpb24oKSBzaG91bGQgc3VjY2VlZCBpZiBtb2NrLWlkcC5qcyByZXR1cm4gZGlmZmVyZW50IGRv
bWFpbiBhbmQgcHJvdG9jb2wgaW4gYXNzZXJ0aW9uIHVuZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlv
biAobmVhciAnLi4ucGMuc2V0SWRlbnRpdHlQcm92aWRlci4uLicpCitGQUlMIGdldElkZW50aXR5
QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtZXhlY3V0aW9uLWZh
aWx1cmUnKSBpZiBtb2NrLWlkcC5qcyB0aHJvd3MgZXJyb3IgYXNzZXJ0X2VxdWFsczogRXhwZWN0
IGluaXRpYWwgcGMuaWRwRXJyb3JJbmZvIHRvIGJlIG51bGwgZXhwZWN0ZWQgKG9iamVjdCkgbnVs
bCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBnZXRJZGVudGl0eUFzc2VydGlv
bigpIHNob3VsZCByZWplY3Qgd2l0aCBSVENFcnJvcignaWRwLWJhZC1zY3JpcHQtZmFpbHVyZScp
IGlmIElkUCBwcm94eSBzY3JpcHQgZG8gbm90IHJlZ2lzdGVyIGl0cyBjYWxsYmFjayB1bmRlZmlu
ZWQgaXMgbm90IGEgZnVuY3Rpb24gKG5lYXIgJy4uLnBjLnNldElkZW50aXR5UHJvdmlkZXIuLi4n
KQorRkFJTCBnZXRJZGVudGl0eUFzc2VydGlvbigpIHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRp
b25FcnJvciBpZiBtb2NrLWlkcC5qcyByZXR1cm4gaW52YWxpZCByZXN1bHQgdW5kZWZpbmVkIGlz
IG5vdCBhIGZ1bmN0aW9uIChuZWFyICcuLi5wYy5zZXRJZGVudGl0eVByb3ZpZGVyLi4uJykKK0ZB
SUwgZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgcmVqZWN0IHdpdGggUlRDRXJyb3IoJ2lk
cC1sb2FkLWZhaWx1cmUnKSBpZiBJZFAgY2Fubm90IGJlIGxvYWRlZCBwYy5zZXRJZGVudGl0eVBy
b3ZpZGVyIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjLnNldElkZW50aXR5UHJvdmlkZXIoJ25v
bmV4aXN0ZW50LmxvY2FsaG9zdCcsIHsKKyAgICAgIHByb3RvY29sOiBgbm9uLWV4aXN0ZW50YCwK
KyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQGV4YW1wbGUub3JnYCwKKyAgICB9KScsICdwYy5z
ZXRJZGVudGl0eVByb3ZpZGVyJyBpcyB1bmRlZmluZWQpCitGQUlMIGdldElkZW50aXR5QXNzZXJ0
aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtbmVlZC1sb2dpbicpIHdoZW4g
bW9jay1pZHAuanMgcmVxdWlyZXMgbG9naW4gYXNzZXJ0X2VxdWFsczogRXhwZWN0IGluaXRpYWwg
cGMuaWRwTG9naW5VcmwgdG8gYmUgbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3Qg
KHVuZGVmaW5lZCkgdW5kZWZpbmVkCitGQUlMIHNldElkZW50aXR5UHJvdmlkZXIoKSB3aXRoIG5v
IHBlZXJJZGVudGl0eSBwcm92aWRlZCBzaG91bGQgdXNlIHBlZXJJZGVudGl0eSB2YWx1ZSBmcm9t
IGdldENvbmZpZ3VyYXRpb24oKSBwYy5zZXRJZGVudGl0eVByb3ZpZGVyIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ3BjLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdCwgeworICAgICAgcHJvdG9j
b2w6ICdtb2NrLWlkcC5qcycKKyAgICB9KScsICdwYy5zZXRJZGVudGl0eVByb3ZpZGVyJyBpcyB1
bmRlZmluZWQpCitGQUlMIENhbGxpbmcgc2V0SWRlbnRpdHlQcm92aWRlcigpIG11bHRpcGxlIHRp
bWVzIHNob3VsZCByZXNldCBpZGVudGl0eSBhc3NlcnRpb25zIHBjLnNldElkZW50aXR5UHJvdmlk
ZXIgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0
LCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzP21hcms9Zmlyc3QnCisgICAgfSknLCAn
cGMuc2V0SWRlbnRpdHlQcm92aWRlcicgaXMgdW5kZWZpbmVkKQorRkFJTCBjcmVhdGVPZmZlcigp
IHNob3VsZCByZXR1cm4gU0RQIGNvbnRhaW5pbmcgaWRlbnRpdHkgYXNzZXJ0aW9uIHN0cmluZyBp
ZiBpZGVudGl0eSBwcm92aWRlciBpcyBzZXQgcGMuc2V0SWRlbnRpdHlQcm92aWRlciBpcyBub3Qg
YSBmdW5jdGlvbi4gKEluICdwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJpbmcoaWRwRG9t
YWluLCBwb3J0KSwgeworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcycsCisgICAgICB1c2Vy
bmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSknLCAncGMuc2V0SWRlbnRpdHlQ
cm92aWRlcicgaXMgdW5kZWZpbmVkKQorRkFJTCBjcmVhdGVPZmZlcigpIHNob3VsZCByZWplY3Qg
d2l0aCBOb3RSZWFkYWJsZUVycm9yIGlmIGlkZW50aXRpdHkgYXNzZXJ0aW9uIHJlcXVlc3QgZmFp
bHMgdW5kZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9uIChuZWFyICcuLi5wYy5zZXRJZGVudGl0eVBy
b3ZpZGVyLi4uJykKK0ZBSUwgY3JlYXRlQW5zd2VyKCkgc2hvdWxkIHJlamVjdCB3aXRoIE5vdFJl
YWRhYmxlRXJyb3IgaWYgaWRlbnRpdGl0eSBhc3NlcnRpb24gcmVxdWVzdCBmYWlscyB1bmRlZmlu
ZWQgaXMgbm90IGEgZnVuY3Rpb24gKG5lYXIgJy4uLnBjLnNldElkZW50aXR5UHJvdmlkZXIuLi4n
KQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWIuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWdldElkZW50aXR5QXNzZXJ0aW9uLnN1Yi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJiZDg2MGQ5MDFkZWQ3OGM5NjM1ZGE2NTQxM2FjNjNlN2RiZjQ0NjAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWIuaHRtbApAQCAtMCwwICsx
LDQwMCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJU
Q1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5nZXRJZGVudGl0eUFzc2VydGlvbjwvdGl0bGU+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iaWRlbnRpdHktaGVscGVyLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAndXNl
IHN0cmljdCc7CisKKyAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBk
cmFmdDoKKyAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8yMDE3
MDYwNS93ZWJydGMuaHRtbAorCisgIC8vIFRoZSB0ZXN0cyBoZXJlIGludGVyYWN0cyB3aXRoIHRo
ZSBtb2NrIGlkZW50aXR5IHByb3ZpZGVyIGxvY2F0ZWQgYXQKKyAgLy8gICAvLndlbGwta25vd24v
aWRwLXByb3h5L21vY2staWRwLmpzCisKKyAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rp
b25zIGFyZSBjYWxsZWQgZnJvbSBpZGVudGl0eS1oZWxwZXIuc3ViLmpzCisgIC8vICAgcGFyc2VB
c3NlcnRpb25SZXN1bHQKKyAgLy8gICBnZXRJZHBEb21haW5zCisgIC8vICAgYXNzZXJ0X3J0Y2Vy
cm9yX3JlamVjdGlvbgorICAvLyAgIGhvc3RTdHJpbmcKKworICAvKgorICAgIDkuNi4gIFJUQ1Bl
ZXJDb25uZWN0aW9uIEludGVyZmFjZSBFeHRlbnNpb25zCisgICAgICBwYXJ0aWFsIGludGVyZmFj
ZSBSVENQZWVyQ29ubmVjdGlvbiB7CisgICAgICAgIHZvaWQgICAgICAgICAgICAgICBzZXRJZGVu
dGl0eVByb3ZpZGVyKERPTVN0cmluZyBwcm92aWRlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgUlRDSWRlbnRpdHlQcm92aWRlck9wdGlv
bnMgb3B0aW9ucyk7CisgICAgICAgIFByb21pc2U8RE9NU3RyaW5nPiBnZXRJZGVudGl0eUFzc2Vy
dGlvbigpOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUHJvbWlzZTxSVENJZGVudGl0eUFz
c2VydGlvbj4gcGVlcklkZW50aXR5OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nPyAgICAgICAgICAgICAgICAgICAgaWRwTG9naW5Vcmw7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmc/ICAgICAgICAgICAgICAgICAgICBpZHBFcnJvckluZm87CisgICAg
ICB9OworCisgICAgICBkaWN0aW9uYXJ5IFJUQ0lkZW50aXR5UHJvdmlkZXJPcHRpb25zIHsKKyAg
ICAgICAgRE9NU3RyaW5nIHByb3RvY29sID0gImRlZmF1bHQiOworICAgICAgICBET01TdHJpbmcg
dXNlcm5hbWVIaW50OworICAgICAgICBET01TdHJpbmcgcGVlcklkZW50aXR5OworICAgICAgfTsK
KyAgICovCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsKKwor
ICAgIGNvbnN0IFtpZHBEb21haW5dID0gZ2V0SWRwRG9tYWlucygpOworICAgIGNvbnN0IGlkcEhv
c3QgPSBob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCk7CisKKyAgICBwYy5zZXRJZGVudGl0eVBy
b3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanM/Zm9vPWJhcics
CisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gLAorICAgICAgcGVlcklk
ZW50aXR5OiAnYm9iQGV4YW1wbGUub3JnJworICAgIH0pOworCisgICAgcmV0dXJuIHBjLmdldElk
ZW50aXR5QXNzZXJ0aW9uKCkKKyAgICAudGhlbihhc3NlcnRpb25SZXN1bHRTdHIgPT4geworICAg
ICAgY29uc3QgeyBpZHAsIGFzc2VydGlvbiB9ID0gcGFyc2VBc3NlcnRpb25SZXN1bHQoYXNzZXJ0
aW9uUmVzdWx0U3RyKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhpZHAuZG9tYWluLCBpZHBIb3N0
LAorICAgICAgICAnRXhwZWN0IG1vY2staWRwLmpzIHRvIGNvbnN0cnVjdCBkb21haW4gZnJvbSBp
dHMgbG9jYXRpb24uaG9zdCcpOworCisgICAgICBhc3NlcnRfZXF1YWxzKGlkcC5wcm90b2NvbCwg
J21vY2staWRwLmpzJywKKyAgICAgICAgJ0V4cGVjdCBtb2NrLWlkcC5qcyB0byByZXR1cm4gcHJv
dG9jb2wgb2YgaXRzZWxmIHdpdGggbm8gcXVlcnkgc3RyaW5nJyk7CisKKyAgICAgIGNvbnN0IHsK
KyAgICAgICAgd2F0ZXJtYXJrLAorICAgICAgICBhcmdzLAorICAgICAgICBlbnYsCisgICAgICAg
IHF1ZXJ5LAorICAgICAgfSA9IGFzc2VydGlvbjsKKworICAgICAgYXNzZXJ0X2VxdWFscyh3YXRl
cm1hcmssICdtb2NrLWlkcC5qcy53YXRlcm1hcmsnLAorICAgICAgICAnRXhwZWN0IGFzc2VydGlv
biByZXN1bHQgdG8gY29udGFpbiB3YXRlcm1hcmsgbGVmdCBieSBtb2NrLWlkcC5qcycpOworCisg
ICAgICBhc3NlcnRfZXF1YWxzKGFyZ3Mub3JpZ2luLCB3aW5kb3cub3JpZ2luLAorICAgICAgICAn
RXhwZWN0IGFyZ3Mub3JpZ2luIGFyZ3VtZW50IHRvIGJlIHRoZSBvcmlnaW4gb2YgdGhpcyB3aW5k
b3cnKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhlbnYubG9jYXRpb24sCisgICAgICAgIGBodHRw
czovLyR7aWRwSG9zdH0vLndlbGwta25vd24vaWRwLXByb3h5L2lkcC10ZXN0LmpzP2Zvbz1iYXJg
LAorICAgICAgICAnRXhwZWN0IElkUCBwcm94eSB0byBiZSBsb2FkZWQgd2l0aCBmdWxsIHdlbGwt
a25vd24gVVJMIGNvbnN0cnVjdGVkIGZyb20gcHJvdmlkZXIgYW5kIHByb3RvY29sJyk7CisKKyAg
ICAgIGFzc2VydF9lcXVhbHMoZW52Lm9yaWdpbiwgYGh0dHBzOi8vJHtpZHBIb3N0fWAsCisgICAg
ICAgICdFeHBlY3QgSWRQIHRvIGhhdmUgaXRzIG93biBvcmlnaW4nKTsKKworICAgICAgYXNzZXJ0
X2VxdWFscyhhcmdzLm9wdGlvbnMucHJvdG9jb2wsICdpZHAtdGVzdC5qcz9mb289YmFyJywKKyAg
ICAgICAgJ0V4cGVjdCBvcHRpb25zLnByb3RvY29sIHRvIGJlIHRoZSBzYW1lIHZhbHVlIGFzIGJl
aW5nIHBhc3NlZCBmcm9tIGhlcmUnKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhhcmdzLm9wdGlv
bnMudXNlcm5hbWVIaW50LCBgYWxpY2VAJHtpZHBEb21haW59YCwKKyAgICAgICAgJ0V4cGVjdCBv
cHRpb25zLnVzZXJuYW1lSGludCB0byBiZSB0aGUgc2FtZSB2YWx1ZSBhcyBiZWluZyBwYXNzZWQg
ZnJvbSBoZXJlJyk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMoYXJncy5vcHRpb25zLnBlZXJJZGVu
dGl0eSwgJ2JvYkBleGFtcGxlLm9yZycsCisgICAgICAgICdFeHBlY3Qgb3B0aW9ucy5wZWVySWRl
bnRpdHkgdG8gYmUgdGhlIHNhbWUgdmFsdWUgYXMgYmVpbmcgcGFzc2VkIGZyb20gaGVyZScpOwor
CisgICAgICBhc3NlcnRfZXF1YWxzKHF1ZXJ5LmZvbywgJ2JhcicsCisgICAgICAgICdFeHBlY3Qg
cXVlcnkgc3RyaW5nIHRvIGJlIHBhcnNlZCBieSBtb2NrLWlkcC5qcyBhbmQgcmV0dXJuZWQgYmFj
aycpOworICAgIH0pOworICB9LCAnZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgbG9hZCBJ
ZFAgcHJveHkgYW5kIHJldHVybiBhc3NlcnRpb24gZ2VuZXJhdGVkJyk7CisKKyAgLy8gV2hlbiBn
ZW5lcmF0aW5nIGFzc2VydGlvbiwgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIGRvZXNuJ3QgY2FyZSBp
ZiB0aGUgcmV0dXJuZWQgYXNzZXJ0aW9uCisgIC8vIHJlcHJlc2VudHMgaWRlbnRpdHkgb2YgZGlm
ZmVyZW50IGRvbWFpbgorICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBv
cnQ7CisKKyAgICBjb25zdCBbaWRwRG9tYWluMSwgaWRwRG9tYWluMl0gPSBnZXRJZHBEb21haW5z
KCk7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMoaWRwRG9tYWluMSwgaWRwRG9tYWluMiwKKyAgICAg
ICdTYW5pdHkgY2hlY2sgdHdvIGlkcERvbWFpbnMgYXJlIGRpZmZlcmVudCcpOworCisgICAgLy8g
QXNrIG1vY2staWRwLmpzIHRvIHJldHVybiBhIGN1c3RvbSBkb21haW4gaWRwRG9tYWluMiBhbmQg
Y3VzdG9tIHByb3RvY29sIGZvbworICAgIHBjLnNldElkZW50aXR5UHJvdmlkZXIoaG9zdFN0cmlu
ZyhpZHBEb21haW4xLCBwb3J0KSwgeworICAgICAgcHJvdG9jb2w6IGBtb2NrLWlkcC5qcz9nZW5l
cmF0b3JBY3Rpb249cmV0dXJuLWN1c3RvbS1pZHAmZG9tYWluPSR7aWRwRG9tYWluMn0mcHJvdG9j
b2w9Zm9vYCwKKyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWluMn1gLAorICAg
IH0pOworCisgICAgcmV0dXJuIHBjLmdldElkZW50aXR5QXNzZXJ0aW9uKCkKKyAgICAudGhlbihh
c3NlcnRpb25SZXN1bHRTdHIgPT4geworICAgICAgY29uc3QgeyBpZHAsIGFzc2VydGlvbiB9ID0g
cGFyc2VBc3NlcnRpb25SZXN1bHQoYXNzZXJ0aW9uUmVzdWx0U3RyKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoaWRwLmRvbWFpbiwgaWRwRG9tYWluMik7CisgICAgICBhc3NlcnRfZXF1YWxzKGlkcC5w
cm90b2NvbCwgJ2ZvbycpOworICAgICAgYXNzZXJ0X2VxdWFscyhhc3NlcnRpb24ub3B0aW9ucy51
c2VybmFtZUhpbnQsIGBhbGljZUAke2lkcERvbWFpbjJ9YCk7CisgICAgfSk7CisgIH0sICdnZXRJ
ZGVudGl0eUFzc2VydGlvbigpIHNob3VsZCBzdWNjZWVkIGlmIG1vY2staWRwLmpzIHJldHVybiBk
aWZmZXJlbnQgZG9tYWluIGFuZCBwcm90b2NvbCBpbiBhc3NlcnRpb24nKTsKKworICAvKgorICAg
IDkuMy4gIFJlcXVlc3RpbmcgSWRlbnRpdHkgQXNzZXJ0aW9ucworICAgICAgNC4gIElmIHRoZSBJ
ZFAgcHJveHkgcHJvZHVjZXMgYW4gZXJyb3Igb3IgcmV0dXJucyBhIHByb21pc2UgdGhhdCBkb2Vz
IG5vdCByZXNvbHZlIHRvCisgICAgICAgICAgYSB2YWxpZCBSVENJZGVudGl0eVZhbGlkYXRpb25S
ZXN1bHQgKHNlZSA5LjUgSWRQIEVycm9yIEhhbmRsaW5nKSwgdGhlbiBpZGVudGl0eQorICAgICAg
ICAgIHZhbGlkYXRpb24gZmFpbHMuCisKKyAgICA5LjUuICBJZFAgRXJyb3IgSGFuZGxpbmcKKyAg
ICAgIC0gSWYgYW4gaWRlbnRpdHkgcHJvdmlkZXIgdGhyb3dzIGFuIGV4Y2VwdGlvbiBvciByZXR1
cm5zIGEgcHJvbWlzZSB0aGF0IGlzIHVsdGltYXRlbHkKKyAgICAgICAgcmVqZWN0ZWQsIHRoZW4g
dGhlIHByb2NlZHVyZSB0aGF0IGRlcGVuZHMgb24gdGhlIElkUCBNVVNUIGFsc28gZmFpbC4gVGhl
c2UgdHlwZXMgb2YKKyAgICAgICAgZXJyb3JzIHdpbGwgY2F1c2UgYW4gSWRQIGZhaWx1cmUgd2l0
aCBhbiBSVENFcnJvciB3aXRoIGVycm9yRGV0YWlsIHNldCB0bworICAgICAgICAiaWRwLWV4ZWN1
dGlvbi1mYWlsdXJlIi4KKworICAgIDkuNi4gIFJUQ1BlZXJDb25uZWN0aW9uIEludGVyZmFjZSBF
eHRlbnNpb25zCisgICAgICBpZHBFcnJvckluZm8KKyAgICAgICAgQW4gYXR0cmlidXRlIHRoYXQg
dGhlIElkUCBjYW4gdXNlIHRvIHBhc3MgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBiYWNrIHRvIHRo
ZQorICAgICAgICBhcHBsaWNhdGlvbnMgYWJvdXQgdGhlIGVycm9yLiBUaGUgZm9ybWF0IG9mIHRo
aXMgc3RyaW5nIGlzIGRlZmluZWQgYnkgdGhlIElkUCBhbmQKKyAgICAgICAgbWF5IGJlIEpTT04u
CisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKworICAgIGFzc2VydF9lcXVhbHMocGMuaWRwRXJyb3JJbmZvLCBudWxs
LAorICAgICAgJ0V4cGVjdCBpbml0aWFsIHBjLmlkcEVycm9ySW5mbyB0byBiZSBudWxsJyk7CisK
KyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7CisgICAgY29uc3QgW2lkcERv
bWFpbl0gPSBnZXRJZHBEb21haW5zKCk7CisKKyAgICAvLyBBc2sgbW9jay1pZHAuanMgdG8gdGhy
b3cgYW4gZXJyb3Igd2l0aCBlcnIuZXJyb3JJbmZvIHNldCB0byBiYXIKKyAgICBwYy5zZXRJZGVu
dGl0eVByb3ZpZGVyKGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KSwgeworICAgICAgcHJvdG9j
b2w6IGBtb2NrLWlkcC5qcz9nZW5lcmF0b3JBY3Rpb249dGhyb3ctZXJyb3ImZXJyb3JJbmZvPWJh
cmAsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gLAorICAgIH0pOwor
CisgICAgcmV0dXJuIGFzc2VydF9ydGNlcnJvcl9yZWplY3Rpb24oJ2lkcC1leGVjdXRpb24tZmFp
bHVyZScsCisgICAgICBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpKQorICAgIC50aGVuKCgpID0+
IHsKKyAgICAgIGFzc2VydF9lcXVhbHMocGMuaWRwRXJyb3JJbmZvLCAnYmFyJywKKyAgICAgICAg
J0V4cGVjdCBwYy5pZHBFcnJvckluZm8gdG8gYmUgc2V0IHRvIHRoZSBlcnIuaWRwRXJyb3JJbmZv
IHRocm93biBieSBtb2NrLWlkcC5qcycpOworICAgIH0pOworICB9LCBgZ2V0SWRlbnRpdHlBc3Nl
cnRpb24oKSBzaG91bGQgcmVqZWN0IHdpdGggUlRDRXJyb3IoJ2lkcC1leGVjdXRpb24tZmFpbHVy
ZScpIGlmIG1vY2staWRwLmpzIHRocm93cyBlcnJvcmApOworCisgIC8qCisgICAgOS41LiAgSWRQ
IEVycm9yIEhhbmRsaW5nCisgICAgICAtIElmIHRoZSBzY3JpcHQgbG9hZGVkIGZyb20gdGhlIGlk
ZW50aXR5IHByb3ZpZGVyIGlzIG5vdCB2YWxpZCBKYXZhU2NyaXB0IG9yIGRvZXMKKyAgICAgICAg
bm90IGltcGxlbWVudCB0aGUgY29ycmVjdCBpbnRlcmZhY2VzLCBpdCBjYXVzZXMgYW4gSWRQIGZh
aWx1cmUgd2l0aCBhbiBSVENFcnJvcgorICAgICAgICB3aXRoIGVycm9yRGV0YWlsIHNldCB0byAi
aWRwLWJhZC1zY3JpcHQtZmFpbHVyZSIuCisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7Cisg
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgIGNvbnN0IHBvcnQg
PSB3aW5kb3cubG9jYXRpb24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERv
bWFpbnMoKTsKKworICAgIC8vIEFzayBtb2NrLWlkcC5qcyB0byBub3QgcmVnaXN0ZXIgaXRzIGNh
bGxiYWNrIHRvIHRoZQorICAgIC8vIFJUQ0lkZW50aXR5UHJvdmlkZXJSZWdpc3RyYXIKKyAgICBw
Yy5zZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KSwgeworICAg
ICAgcHJvdG9jb2w6IGBtb2NrLWlkcC5qcz9hY3Rpb249ZG8tbm90LXJlZ2lzdGVyYCwKKyAgICAg
IHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAsCisgICAgfSk7CisKKyAgICByZXR1
cm4gYXNzZXJ0X3J0Y2Vycm9yX3JlamVjdGlvbignaWRwLWJhZC1zY3JpcHQtZmFpbHVyZScsCisg
ICAgICBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpKTsKKworICB9LCBgZ2V0SWRlbnRpdHlBc3Nl
cnRpb24oKSBzaG91bGQgcmVqZWN0IHdpdGggUlRDRXJyb3IoJ2lkcC1iYWQtc2NyaXB0LWZhaWx1
cmUnKSBpZiBJZFAgcHJveHkgc2NyaXB0IGRvIG5vdCByZWdpc3RlciBpdHMgY2FsbGJhY2tgKTsK
KworICAvKgorICAgIDkuMy4gIFJlcXVlc3RpbmcgSWRlbnRpdHkgQXNzZXJ0aW9ucworICAgICAg
NC4gIElmIHRoZSBJZFAgcHJveHkgcHJvZHVjZXMgYW4gZXJyb3Igb3IgcmV0dXJucyBhIHByb21p
c2UgdGhhdCBkb2VzIG5vdCByZXNvbHZlCisgICAgICAgICAgdG8gYSB2YWxpZCBSVENJZGVudGl0
eUFzc2VydGlvblJlc3VsdCAoc2VlIDkuNSBJZFAgRXJyb3IgSGFuZGxpbmcpLCB0aGVuIGFzc2Vy
dGlvbgorICAgICAgICAgIGdlbmVyYXRpb24gZmFpbHMuCisgICAqLworICBwcm9taXNlX3Rlc3Qo
dCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgIGNv
bnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9
IGdldElkcERvbWFpbnMoKTsKKworICAgIC8vIEFzayBtb2NrLWlkcC5qcyB0byByZXR1cm4gYW4g
aW52YWxpZCByZXN1bHQgdGhhdCBpcyBub3QgcHJvcGVyCisgICAgLy8gUlRDSWRlbnRpdHlBc3Nl
cnRpb25SZXN1bHQKKyAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJpbmcoaWRwRG9t
YWluLCBwb3J0KSwgeworICAgICAgcHJvdG9jb2w6IGBtb2NrLWlkcC5qcz9nZW5lcmF0b3JBY3Rp
b249cmV0dXJuLWludmFsaWQtcmVzdWx0YCwKKyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7
aWRwRG9tYWlufWAsCisgICAgfSk7CisKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdP
cGVyYXRpb25FcnJvcicsCisgICAgICBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpKTsKKyAgfSwg
YGdldElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIE9wZXJhdGlvbkVycm9y
IGlmIG1vY2staWRwLmpzIHJldHVybiBpbnZhbGlkIHJlc3VsdGApOworCisgIC8qCisgICAgOS41
LiAgSWRQIEVycm9yIEhhbmRsaW5nCisgICAgICAtIEEgUlRDUGVlckNvbm5lY3Rpb24gbWlnaHQg
YmUgY29uZmlndXJlZCB3aXRoIGFuIGlkZW50aXR5IHByb3ZpZGVyLCBidXQgbG9hZGluZyBvZgor
ICAgICAgICB0aGUgSWRQIFVSSSBmYWlscy4gQW55IHByb2NlZHVyZSB0aGF0IGF0dGVtcHRzIHRv
IGludm9rZSBzdWNoIGFuIGlkZW50aXR5IHByb3ZpZGVyCisgICAgICAgIGFuZCBjYW5ub3QgbG9h
ZCB0aGUgVVJJIGZhaWxzIHdpdGggYW4gUlRDRXJyb3Igd2l0aCBlcnJvckRldGFpbCBzZXQgdG8K
KyAgICAgICAgImlkcC1sb2FkLWZhaWx1cmUiIGFuZCB0aGUgaHR0cFJlcXVlc3RTdGF0dXNDb2Rl
IGF0dHJpYnV0ZSBvZiB0aGUgZXJyb3Igc2V0IHRvIHRoZQorICAgICAgICBIVFRQIHN0YXR1cyBj
b2RlIG9mIHRoZSByZXNwb25zZS4KKyAgICovCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBj
b25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgcGMuc2V0SWRlbnRpdHlQ
cm92aWRlcignbm9uZXhpc3RlbnQue3tkb21haW5zW119fScsIHsKKyAgICAgIHByb3RvY29sOiBg
bm9uLWV4aXN0ZW50YCwKKyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQGV4YW1wbGUub3JnYCwK
KyAgICB9KTsKKworICAgIHJldHVybiBhc3NlcnRfcnRjZXJyb3JfcmVqZWN0aW9uKCdpZHAtbG9h
ZC1mYWlsdXJlJywKKyAgICAgIHBjLmdldElkZW50aXR5QXNzZXJ0aW9uKCkpOworICB9LCBgZ2V0
SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgcmVqZWN0IHdpdGggUlRDRXJyb3IoJ2lkcC1sb2Fk
LWZhaWx1cmUnKSBpZiBJZFAgY2Fubm90IGJlIGxvYWRlZGApOworCisgIC8qCisgICAgOS4zLjEu
ICBVc2VyIExvZ2luIFByb2NlZHVyZQorICAgICAgUmVqZWN0aW5nIHRoZSBwcm9taXNlIHJldHVy
bmVkIGJ5IGdlbmVyYXRlQXNzZXJ0aW9uIHdpbGwgY2F1c2UgdGhlIGVycm9yIHRvCisgICAgICBw
cm9wYWdhdGUgdG8gdGhlIGFwcGxpY2F0aW9uLiBMb2dpbiBlcnJvcnMgYXJlIGluZGljYXRlZCBi
eSByZWplY3RpbmcgdGhlCisgICAgICBwcm9taXNlIHdpdGggYW4gUlRDRXJyb3Igd2l0aCBlcnJv
ckRldGFpbCBzZXQgdG8gImlkcC1uZWVkLWxvZ2luIi4KKworICAgICAgVGhlIFVSTCB0byBsb2dp
biBhdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgYXBwbGljYXRpb24gaW4gdGhlIGlkcExvZ2luVXJs
CisgICAgICBhdHRyaWJ1dGUgb2YgdGhlIFJUQ1BlZXJDb25uZWN0aW9uLgorCisgICAgOS41LiAg
SWRQIEVycm9yIEhhbmRsaW5nCisgICAgICAtIElmIHRoZSBpZGVudGl0eSBwcm92aWRlciByZXF1
aXJlcyB0aGUgdXNlciB0byBsb2dpbiwgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwKKyAgICAgICAg
UlRDRXJyb3Igd2l0aCBlcnJvckRldGFpbCBzZXQgdG8gImlkcC1uZWVkLWxvZ2luIiBhbmQgdGhl
IGlkcExvZ2luVXJsIGF0dHJpYnV0ZQorICAgICAgICBvZiB0aGUgZXJyb3Igc2V0IHRvIHRoZSBV
UkwgdGhhdCBjYW4gYmUgdXNlZCB0byBsb2dpbi4KKyAgICovCisgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgYXNzZXJ0
X2VxdWFscyhwYy5pZHBMb2dpblVybCwgbnVsbCwKKyAgICAgICdFeHBlY3QgaW5pdGlhbCBwYy5p
ZHBMb2dpblVybCB0byBiZSBudWxsJyk7CisKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0
aW9uLnBvcnQ7CisgICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7CisgICAg
Y29uc3QgaWRwSG9zdCA9IGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KTsKKworICAgIHBjLnNl
dElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdCwgeworICAgICAgcHJvdG9jb2w6IGBtb2NrLWlkcC5q
cz9nZW5lcmF0b3JBY3Rpb249cmVxdWlyZS1sb2dpbmAsCisgICAgICB1c2VybmFtZUhpbnQ6IGBh
bGljZUAke2lkcERvbWFpbn1gLAorICAgIH0pOworCisgICAgcmV0dXJuIGFzc2VydF9ydGNlcnJv
cl9yZWplY3Rpb24oJ2lkcC1uZWVkLWxvZ2luJywKKyAgICAgIHBjLmdldElkZW50aXR5QXNzZXJ0
aW9uKCkpCisgICAgLnRoZW4oZXJyID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoZXJyLmlkcExv
Z2luVXJsLCBgaHR0cHM6Ly8ke2lkcEhvc3R9L2xvZ2luYCwKKyAgICAgICAgJ0V4cGVjdCBlcnIu
aWRwTG9naW5VcmwgdG8gYmUgc2V0IHRvIHVybCBzZXQgYnkgbW9jay1pZHAuanMnKTsKKworICAg
ICAgYXNzZXJ0X2VxdWFscyhwYy5pZHBMb2dpblVybCwgYGh0dHBzOi8vJHtpZHBIb3N0fS9sb2dp
bmAsCisgICAgICAgICdFeHBlY3QgcGMuaWRwTG9naW5VcmwgdG8gYmUgc2V0IHRvIHVybCBzZXQg
YnkgbW9jay1pZHAuanMnKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhwYy5pZHBFcnJvckluZm8s
ICdsb2dpbiByZXF1aXJlZCcsCisgICAgICAgICdFeHBlY3QgcGMuaWRwRXJyb3JJbmZvIHRvIGJl
IHNldCB0byBpbmZvIHNldCBieSBtb2NrLWlkcC5qcycpOworICAgIH0pOworICB9LCBgZ2V0SWRl
bnRpdHlBc3NlcnRpb24oKSBzaG91bGQgcmVqZWN0IHdpdGggUlRDRXJyb3IoJ2lkcC1uZWVkLWxv
Z2luJykgd2hlbiBtb2NrLWlkcC5qcyByZXF1aXJlcyBsb2dpbmApOworCisgIC8qCisgICAgUlRD
SWRlbnRpdHlQcm92aWRlck9wdGlvbnMgTWVtYmVycworICAgICAgcGVlcklkZW50aXR5CisgICAg
ICAgIFRoZSBpZGVudGl0eSBvZiB0aGUgcGVlci4gRm9yIGlkZW50aXR5IHByb3ZpZGVycyB0aGF0
IGJpbmQgdGhlaXIgYXNzZXJ0aW9ucyB0byBhCisgICAgICAgIHBhcnRpY3VsYXIgcGFpciBvZiBj
b21tdW5pY2F0aW9uIHBlZXJzLCB0aGlzIGFsbG93cyB0aGVtIHRvIGdlbmVyYXRlIGFuIGFzc2Vy
dGlvbgorICAgICAgICB0aGF0IGluY2x1ZGVzIGJvdGggbG9jYWwgYW5kIHJlbW90ZSBpZGVudGl0
aWVzLiBJZiB0aGlzIHZhbHVlIGlzIG9taXR0ZWQsIGJ1dCBhCisgICAgICAgIHZhbHVlIGlzIHBy
b3ZpZGVkIGZvciB0aGUgcGVlcklkZW50aXR5IG1lbWJlciBvZiBSVENDb25maWd1cmF0aW9uLCB0
aGUgdmFsdWUgZnJvbQorICAgICAgICBSVENDb25maWd1cmF0aW9uIGlzIHVzZWQuCisgICovCisg
IHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bih7CisgICAgICBwZWVySWRlbnRpdHk6ICdib2JAZXhhbXBsZS5uZXQnCisgICAgfSk7CisKKyAg
ICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7CisgICAgY29uc3QgW2lkcERvbWFp
bl0gPSBnZXRJZHBEb21haW5zKCk7CisgICAgY29uc3QgaWRwSG9zdCA9IGhvc3RTdHJpbmcoaWRw
RG9tYWluLCBwb3J0KTsKKworICAgIHBjLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdCwgewor
ICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcycKKyAgICB9KTsKKworICAgIHJldHVybiBwYy5n
ZXRJZGVudGl0eUFzc2VydGlvbigpCisgICAgLnRoZW4oYXNzZXJ0aW9uUmVzdWx0U3RyID0+IHsK
KyAgICAgIGNvbnN0IHsgYXNzZXJ0aW9uIH0gPSBwYXJzZUFzc2VydGlvblJlc3VsdChhc3NlcnRp
b25SZXN1bHRTdHIpOworICAgICAgYXNzZXJ0X2VxdWFscyhhc3NlcnRpb24uYXJncy5vcHRpb25z
LnBlZXJJZGVudGl0eSwgJ2JvYkBleGFtcGxlLm5ldCcpOworICAgIH0pOworICB9LCAnc2V0SWRl
bnRpdHlQcm92aWRlcigpIHdpdGggbm8gcGVlcklkZW50aXR5IHByb3ZpZGVkIHNob3VsZCB1c2Ug
cGVlcklkZW50aXR5IHZhbHVlIGZyb20gZ2V0Q29uZmlndXJhdGlvbigpJyk7CisKKyAgLyoKKyAg
ICA5LjYuICBzZXRJZGVudGl0eVByb3ZpZGVyCisgICAgICAzLiAgSWYgYW55IGlkZW50aXR5IHBy
b3ZpZGVyIHZhbHVlIGhhcyBjaGFuZ2VkLCBkaXNjYXJkIGFueSBzdG9yZWQgaWRlbnRpdHkgYXNz
ZXJ0aW9uLgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5w
b3J0OworICAgIGNvbnN0IFtpZHBEb21haW5dID0gZ2V0SWRwRG9tYWlucygpOworICAgIGNvbnN0
IGlkcEhvc3QgPSBob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCk7CisKKyAgICBwYy5zZXRJZGVu
dGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanM/bWFy
az1maXJzdCcKKyAgICB9KTsKKworICAgIHJldHVybiBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigp
CisgICAgLnRoZW4oYXNzZXJ0aW9uUmVzdWx0U3RyID0+IHsKKyAgICAgIGNvbnN0IHsgYXNzZXJ0
aW9uIH0gPSBwYXJzZUFzc2VydGlvblJlc3VsdChhc3NlcnRpb25SZXN1bHRTdHIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhhc3NlcnRpb24ucXVlcnkubWFyaywgJ2ZpcnN0Jyk7CisKKyAgICAgIHBj
LnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdCwgeworICAgICAgICBwcm90b2NvbDogJ21vY2st
aWRwLmpzP21hcms9c2Vjb25kJworICAgICAgfSk7CisKKyAgICAgIHJldHVybiBwYy5nZXRJZGVu
dGl0eUFzc2VydGlvbigpOworICAgIH0pCisgICAgLnRoZW4oYXNzZXJ0aW9uUmVzdWx0U3RyID0+
IHsKKyAgICAgIGNvbnN0IHsgYXNzZXJ0aW9uIH0gPSBwYXJzZUFzc2VydGlvblJlc3VsdChhc3Nl
cnRpb25SZXN1bHRTdHIpOworICAgICAgYXNzZXJ0X2VxdWFscyhhc3NlcnRpb24ucXVlcnkubWFy
aywgJ3NlY29uZCcsCisgICAgICAgICdFeHBlY3QgZ2VuZXJhdGVkIGFzc2VydGlvbiBpcyBmcm9t
IHNlY29uZCBJZFAgY29uZmlnJyk7CisgICAgfSk7CisgIH0sIGBDYWxsaW5nIHNldElkZW50aXR5
UHJvdmlkZXIoKSBtdWx0aXBsZSB0aW1lcyBzaG91bGQgcmVzZXQgaWRlbnRpdHkgYXNzZXJ0aW9u
c2ApOworCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsKKyAg
ICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKKworICAgIHBjLnNldElkZW50
aXR5UHJvdmlkZXIoaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpLCB7CisgICAgICBwcm90b2Nv
bDogJ21vY2staWRwLmpzJywKKyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlu
fWAKKyAgICB9KTsKKworICAgIHJldHVybiBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpCisgICAg
LnRoZW4oYXNzZXJ0aW9uUmVzdWx0U3RyID0+CisgICAgICBwYy5jcmVhdGVPZmZlcigpCisgICAg
ICAudGhlbihvZmZlciA9PiB7CisgICAgICAgIGFzc2VydF90cnVlKG9mZmVyLnNkcC5pbmNsdWRl
cyhgXHJcbmE9aWRlbnRpdHk6JHthc3NlcnRpb25SZXN1bHRTdHJ9YCwKKyAgICAgICAgICAnRXhw
ZWN0IFNEUCB0byBoYXZlIGE9aWRlbnRpdHkgbGluZSBjb250YWluaW5nIGFzc2VydGlvbiBzdHJp
bmcnKSk7CisgICAgICB9KSk7CisgIH0sICdjcmVhdGVPZmZlcigpIHNob3VsZCByZXR1cm4gU0RQ
IGNvbnRhaW5pbmcgaWRlbnRpdHkgYXNzZXJ0aW9uIHN0cmluZyBpZiBpZGVudGl0eSBwcm92aWRl
ciBpcyBzZXQnKTsKKworICAvKgorICAgIDQuNC4yLiAgU3RlcHMgdG8gY3JlYXRlIGFuIG9mZmVy
CisgICAgICAxLiAgSWYgdGhlIG5lZWQgZm9yIGFuIGlkZW50aXR5IGFzc2VydGlvbiB3YXMgaWRl
bnRpZmllZCB3aGVuIGNyZWF0ZU9mZmVyIHdhcworICAgICAgICAgIGludm9rZWQsIHdhaXQgZm9y
IHRoZSBpZGVudGl0eSBhc3NlcnRpb24gcmVxdWVzdCBwcm9jZXNzIHRvIGNvbXBsZXRlLgorICAg
ICAgMi4gIElmIHRoZSBpZGVudGl0eSBwcm92aWRlciB3YXMgdW5hYmxlIHRvIHByb2R1Y2UgYW4g
aWRlbnRpdHkgYXNzZXJ0aW9uLCByZWplY3QgcAorICAgICAgICAgIHdpdGggYSBuZXdseSBjcmVh
dGVkIE5vdFJlYWRhYmxlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgKi8KKyAgcHJv
bWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBE
b21haW5dID0gZ2V0SWRwRG9tYWlucygpOworCisgICAgcGMuc2V0SWRlbnRpdHlQcm92aWRlciho
b3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCksIHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAu
anM/Z2VuZXJhdG9yQWN0aW9uPXRocm93LWVycm9yJywKKyAgICAgIHVzZXJuYW1lSGludDogYGFs
aWNlQCR7aWRwRG9tYWlufWAKKyAgICB9KTsKKworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHMo
dCwgJ05vdFJlYWRhYmxlRXJyb3InLAorICAgICAgcGMuY3JlYXRlT2ZmZXIoKSk7CisgIH0sICdj
cmVhdGVPZmZlcigpIHNob3VsZCByZWplY3Qgd2l0aCBOb3RSZWFkYWJsZUVycm9yIGlmIGlkZW50
aXRpdHkgYXNzZXJ0aW9uIHJlcXVlc3QgZmFpbHMnKTsKKworICAvKgorICAgIDQuNC4yLiAgU3Rl
cHMgdG8gY3JlYXRlIGFuIGFuc3dlcgorICAgICAgMS4gIElmIHRoZSBuZWVkIGZvciBhbiBpZGVu
dGl0eSBhc3NlcnRpb24gd2FzIGlkZW50aWZpZWQgd2hlbiBjcmVhdGVBbnN3ZXIgd2FzCisgICAg
ICAgICAgaW52b2tlZCwgd2FpdCBmb3IgdGhlIGlkZW50aXR5IGFzc2VydGlvbiByZXF1ZXN0IHBy
b2Nlc3MgdG8gY29tcGxldGUuCisKKyAgICAgIDIuICBJZiB0aGUgaWRlbnRpdHkgcHJvdmlkZXIg
d2FzIHVuYWJsZSB0byBwcm9kdWNlIGFuIGlkZW50aXR5IGFzc2VydGlvbiwgcmVqZWN0IHAKKyAg
ICAgICAgICB3aXRoIGEgbmV3bHkgY3JlYXRlZCBOb3RSZWFkYWJsZUVycm9yIGFuZCBhYm9ydCB0
aGVzZSBzdGVwcy4KKyAgICovCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRp
b24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKKworICAg
IHBjLnNldElkZW50aXR5UHJvdmlkZXIoaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpLCB7Cisg
ICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzP2dlbmVyYXRvckFjdGlvbj10aHJvdy1lcnJvcics
CisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAg
ICByZXR1cm4gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkKKyAgICAuY3JlYXRlT2ZmZXIoKQorICAg
IC50aGVuKG9mZmVyID0+IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSkKKyAgICAudGhl
bigoKSA9PgorICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdOb3RSZWFkYWJsZUVycm9yJywKKyAg
ICAgICAgcGMuY3JlYXRlQW5zd2VyKCkpKTsKKworICB9LCAnY3JlYXRlQW5zd2VyKCkgc2hvdWxk
IHJlamVjdCB3aXRoIE5vdFJlYWRhYmxlRXJyb3IgaWYgaWRlbnRpdGl0eSBhc3NlcnRpb24gcmVx
dWVzdCBmYWlscycpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0
YXRzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sCmluZGV4IDQ5
Zjg4MTMxYzNlMWY3NWI4YjdjYjkyNjc5MmY5YWM3MWY0MWU4ZWUuLmYyNmE5M2VhMjg5OTllMjQx
ZTczNzRmZjlkMDdmMzk0MTI4MTZhYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRz
Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMuaHRtbApAQCAtMjY0
LDggKzI2NCwxMSBAQAogICAgICJvdXRib3VuZC1ydHAiLAogICAgICJyZW1vdGUtaW5ib3VuZC1y
dHAiLAogICAgICJyZW1vdGUtb3V0Ym91bmQtcnRwIiwKKyAgICAibWVkaWEtc291cmNlIiwKICAg
ICAicGVlci1jb25uZWN0aW9uIiwKICAgICAiZGF0YS1jaGFubmVsIiwKKyAgICAic2VuZGVyIiwK
KyAgICAicmVjZWl2ZXIiLAogICAgICJ0cmFuc3BvcnQiLAogICAgICJjYW5kaWRhdGUtcGFpciIs
CiAgICAgImxvY2FsLWNhbmRpZGF0ZSIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMKaW5kZXggNWFlZjBhOGUyMWU0MmZhZmU1ODcxOWMw
ZmIyNDZhOTE5ZDFiMTVkMS4uYWM0MzUyNzliZDI0ZmU1ZTU0MzgzY2FlMjEyMWY3YjBhMzI0ZGYy
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhl
bHBlci5qcwpAQCAtMTc2LDExICsxNzYsOSBAQCBmdW5jdGlvbiBleGNoYW5nZUljZUNhbmRpZGF0
ZXMocGMxLCBwYzIpIHsKICAgICBsb2NhbFBjLmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWNhbmRpZGF0
ZScsIGV2ZW50ID0+IHsKICAgICAgIGNvbnN0IHsgY2FuZGlkYXRlIH0gPSBldmVudDsKIAotICAg
ICAgLy8gY2FuZGlkYXRlIG1heSBiZSBudWxsIHRvIGluZGljYXRlIGVuZCBvZiBjYW5kaWRhdGUg
Z2F0aGVyaW5nLgotICAgICAgLy8gVGhlcmUgaXMgb25nb2luZyBkaXNjdXNzaW9uIG9uIHczYy93
ZWJydGMtcGMjMTIxMwotICAgICAgLy8gdGhhdCB0aGVyZSBzaG91bGQgYmUgYW4gZW1wdHkgY2Fu
ZGlkYXRlIHN0cmluZyBldmVudAotICAgICAgLy8gZm9yIGVuZCBvZiBjYW5kaWRhdGUgZm9yIGVh
Y2ggbT0gc2VjdGlvbi4KLSAgICAgIGlmKGNhbmRpZGF0ZSAmJiByZW1vdGVQYy5zaWduYWxpbmdT
dGF0ZSAhPT0gJ2Nsb3NlZCcpIHsKKyAgICAgIC8vIEd1YXJkIGFnYWluc3QgYWxyZWFkeSBjbG9z
ZWQgcGVlcmNvbm5lY3Rpb24gdG8KKyAgICAgIC8vIGF2b2lkIHVucmVsYXRlZCBleGNlcHRpb25z
LgorICAgICAgaWYgKHJlbW90ZVBjLnNpZ25hbGluZ1N0YXRlICE9PSAnY2xvc2VkJykgewogICAg
ICAgICByZW1vdGVQYy5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsKICAgICAgIH0KICAgICB9
KTsKQEAgLTI0Miw4ICsyNDAsNyBAQCBhc3luYyBmdW5jdGlvbiB3YWl0Rm9ySWNlR2F0aGVyaW5n
U3RhdGUocGMsIHdhbnRlZFN0YXRlcykgewogYXN5bmMgZnVuY3Rpb24gbGlzdGVuRm9yU1NSQ3Mo
dCwgcmVjZWl2ZXIpIHsKICAgd2hpbGUgKHRydWUpIHsKICAgICBjb25zdCBzc3JjcyA9IHJlY2Vp
dmVyLmdldFN5bmNocm9uaXphdGlvblNvdXJjZXMoKTsKLSAgICBhc3NlcnRfdHJ1ZShBcnJheS5p
c0FycmF5KHNzcmNzKSk7Ci0gICAgaWYgKHNzcmNzLmxlbmd0aCA+IDApIHsKKyAgICBpZiAoQXJy
YXkuaXNBcnJheShzc3JjcykgJiYgc3NyY3MubGVuZ3RoID4gMCkgewogICAgICAgcmV0dXJuIHNz
cmNzOwogICAgIH0KICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIs
IDApKTsKQEAgLTQxMCw2ICs0MDcsMTUgQEAgY29uc3QgdHJhY2tGYWN0b3JpZXMgPSB7CiAgICAg
ICBjdHguZmlsbFN0eWxlID0gYHJnYigke2NvdW50JTI1NX0sICR7Y291bnQqY291bnQlMjU1fSwg
JHtjb3VudCUyNTV9KWA7CiAgICAgICBjb3VudCArPSAxOwogICAgICAgY3R4LmZpbGxSZWN0KDAs
IDAsIHdpZHRoLCBoZWlnaHQpOworICAgICAgLy8gQWRkIHNvbWUgYm91bmNpbmcgYm94ZXMgaW4g
Y29udHJhc3QgY29sb3IgdG8gYWRkIGEgbGl0dGxlIG1vcmUgbm9pc2UuCisgICAgICBjb25zdCBj
b250cmFzdCA9IGNvdW50ICsgMTI4OworICAgICAgY3R4LmZpbGxTdHlsZSA9IGByZ2IoJHtjb250
cmFzdCUyNTV9LCAke2NvbnRyYXN0KmNvbnRyYXN0JTI1NX0sICR7Y29udHJhc3QlMjU1fSlgOwor
ICAgICAgY29uc3QgeHBvcyA9IGNvdW50ICUgKHdpZHRoIC0gMjApOworICAgICAgY29uc3QgeXBv
cyA9IGNvdW50ICUgKGhlaWdodCAtIDIwKTsKKyAgICAgIGN0eC5maWxsUmVjdCh4cG9zLCB5cG9z
LCB4cG9zICsgMjAsIHlwb3MgKyAyMCk7CisgICAgICBjb25zdCB4cG9zMiA9IChjb3VudCArIHdp
ZHRoIC8gMikgJSAod2lkdGggLSAyMCk7CisgICAgICBjb25zdCB5cG9zMiA9IChjb3VudCArIGhl
aWdodCAvIDIpICUgKGhlaWdodCAtIDIwKTsKKyAgICAgIGN0eC5maWxsUmVjdCh4cG9zMiwgeXBv
czIsIHhwb3MyICsgMjAsIHlwb3MyICsgMjApOwogICAgICAgLy8gSWYgc2lnbmFsIGlzIHNldCAo
MC0yNTUpLCBhZGQgYSBjb25zdGFudC1jb2xvciBib3ggb2YgdGhhdCBsdW1pbmFuY2UgdG8KICAg
ICAgIC8vIHRoZSB2aWRlbyBmcmFtZSBhdCBjb29yZGluYXRlcyAyMCB0byA2MCBpbiBib3RoIFgg
YW5kIFkgZGlyZWN0aW9uLgogICAgICAgLy8gKGJpZyBlbm91Z2ggdG8gYXZvaWQgY29sb3IgYmxl
ZWQgZnJvbSBzdXJyb3VuZGluZyB2aWRlbyBpbiBzb21lIGNvZGVjcywKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1p
Y2VDb25uZWN0aW9uU3RhdGUtZXhwZWN0ZWQudHh0CmluZGV4IGIwNTIwMTFhNjRlZDFmMDIzNDAx
ODMzOThiZGE1NWZiODI2ZTc4NDIuLjcxZWY3ODYxNWY0NmRiMTEzODU4NGU3NWM4MmNlMDI4YWIz
YzNmYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDQgQEAKIAogUEFTUyBJbml0aWFsIGljZUNvbm5lY3Rpb25TdGF0ZSBzaG91bGQg
YmUgbmV3Ci1GQUlMIGNvbm5lY3Rpb24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBldmVu
dHVhbGx5IGhhdmUgY29ubmVjdGVkIGNvbm5lY3Rpb24gc3RhdGUgdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ3BjMS5zY3RwLnRyYW5zcG9ydCcpCitGQUlMIGNvbm5lY3Rp
b24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgY29ubmVjdGVk
IGNvbm5lY3Rpb24gc3RhdGUgQ2FuJ3QgZmluZCB2YXJpYWJsZTogZG9TaWduYWxpbmdIYW5kc2hh
a2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDcxMDMzYTNj
OWVmZjZlNWI4NDg1MzExMjdjMWI3MGVlOTBiYjIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0bWwKQEAgLTAsMCArMSwxODcgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5w
cm90b3R5cGUuaWNlQ29ubmVjdGlvblN0YXRlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVj
dGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisg
IC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6CisgIC8vIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0
bWwKKworICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9t
IFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKKyAgLy8gZXhjaGFuZ2VJY2VDYW5kaWRhdGVz
CisgIC8vIGRvU2lnbmFsaW5nSGFuZHNoYWtlCisKKyAgLyoKKyAgICA0LjMuMi4gIEludGVyZmFj
ZSBEZWZpbml0aW9uCisgICAgICBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24gOiBFdmVudFRh
cmdldCB7CisgICAgICAgIC4uLgorICAgICAgICByZWFkb25seSAgYXR0cmlidXRlIFJUQ0ljZUNv
bm5lY3Rpb25TdGF0ZSAgaWNlQ29ubmVjdGlvblN0YXRlOworICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIEV2ZW50SGFuZGxlciAgICAgICAgICAgb25pY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2U7
CisgICAgICB9OworCisgICAgNC40LjQgUlRDSWNlQ29ubmVjdGlvblN0YXRlIEVudW0KKyAgICAg
IGVudW0gUlRDSWNlQ29ubmVjdGlvblN0YXRlIHsKKyAgICAgICAgIm5ldyIsCisgICAgICAgICJj
aGVja2luZyIsCisgICAgICAgICJjb25uZWN0ZWQiLAorICAgICAgICAiY29tcGxldGVkIiwKKyAg
ICAgICAgImZhaWxlZCIsCisgICAgICAgICJkaXNjb25uZWN0ZWQiLAorICAgICAgICAiY2xvc2Vk
IgorICAgICAgfTsKKworICAgIDUuNi4gIFJUQ0ljZVRyYW5zcG9ydCBJbnRlcmZhY2UKKyAgICAg
IGludGVyZmFjZSBSVENJY2VUcmFuc3BvcnQgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
UlRDSWNlVHJhbnNwb3J0U3RhdGUgc3RhdGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBF
dmVudEhhbmRsZXIgICAgICAgICBvbnN0YXRlY2hhbmdlOworCisgICAgICAgIC4uLgorICAgICAg
fTsKKworICAgICAgZW51bSBSVENJY2VUcmFuc3BvcnRTdGF0ZSB7CisgICAgICAgICJuZXciLAor
ICAgICAgICAiY2hlY2tpbmciLAorICAgICAgICAiY29ubmVjdGVkIiwKKyAgICAgICAgImNvbXBs
ZXRlZCIsCisgICAgICAgICJmYWlsZWQiLAorICAgICAgICAiZGlzY29ubmVjdGVkIiwKKyAgICAg
ICAgImNsb3NlZCIKKyAgICAgIH07CisgICAqLworCisgIC8qCisgICAgNC40LjQgUlRDSWNlQ29u
bmVjdGlvblN0YXRlIEVudW0KKyAgICAgIG5ldworICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRy
YW5zcG9ydHMgYXJlIGluIHRoZSBuZXcgc3RhdGUgYW5kIG5vbmUgb2YgdGhlbQorICAgICAgICBh
cmUgaW4gdGhlIGNoZWNraW5nLCBmYWlsZWQgb3IgZGlzY29ubmVjdGVkIHN0YXRlLCBvciBhbGwK
KyAgICAgICAgUlRDSWNlVHJhbnNwb3J0IHMgYXJlIGluIHRoZSBjbG9zZWQgc3RhdGUuCisgICAq
LworICB0ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgYXNzZXJ0X2VxdWFscyhwYy5pY2VDb25uZWN0aW9uU3RhdGUsICduZXcnKTsKKyAgfSwg
J0luaXRpYWwgaWNlQ29ubmVjdGlvblN0YXRlIHNob3VsZCBiZSBuZXcnKTsKKworICAvKgorICAg
IDQuNC40IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSBFbnVtCisgICAgICBjaGVja2luZworICAgICAg
ICBBbnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9ydCBzIGFyZSBpbiB0aGUgY2hlY2tpbmcgc3RhdGUg
YW5kIG5vbmUgb2YKKyAgICAgICAgdGhlbSBhcmUgaW4gdGhlIGZhaWxlZCBvciBkaXNjb25uZWN0
ZWQgc3RhdGUuCisKKyAgICAgIGNvbm5lY3RlZAorICAgICAgICBBbGwgUlRDSWNlVHJhbnNwb3J0
IHMgYXJlIGluIHRoZSBjb25uZWN0ZWQsIGNvbXBsZXRlZCBvciBjbG9zZWQgc3RhdGUKKyAgICAg
ICAgYW5kIGF0IGxlYXN0IG9uZSBvZiB0aGVtIGlzIGluIHRoZSBjb25uZWN0ZWQgc3RhdGUuCisK
KyAgICAgIGNvbXBsZXRlZAorICAgICAgICBBbGwgUlRDSWNlVHJhbnNwb3J0IHMgYXJlIGluIHRo
ZSBjb21wbGV0ZWQgb3IgY2xvc2VkIHN0YXRlIGFuZCBhdCBsZWFzdAorICAgICAgICBvbmUgb2Yg
dGhlbSBpcyBpbiB0aGUgY29tcGxldGVkIHN0YXRlLgorCisgICAgICBjaGVja2luZworICAgICAg
ICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyByZWNlaXZlZCBhdCBsZWFzdCBvbmUgcmVtb3RlIGNh
bmRpZGF0ZSBhbmQKKyAgICAgICAgaXMgY2hlY2tpbmcgY2FuZGlkYXRlIHBhaXJzIGFuZCBoYXMg
ZWl0aGVyIG5vdCB5ZXQgZm91bmQgYSBjb25uZWN0aW9uCisgICAgICAgIG9yIGNvbnNlbnQgY2hl
Y2tzIFtSRkM3Njc1XSBoYXZlIGZhaWxlZCBvbiBhbGwgcHJldmlvdXNseSBzdWNjZXNzZnVsCisg
ICAgICAgIGNhbmRpZGF0ZSBwYWlycy4gSW4gYWRkaXRpb24gdG8gY2hlY2tpbmcsIGl0IG1heSBh
bHNvIHN0aWxsIGJlIGdhdGhlcmluZy4KKworICAgIDUuNi4gIGVudW0gUlRDSWNlVHJhbnNwb3J0
U3RhdGUKKyAgICAgIGNvbm5lY3RlZAorICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBm
b3VuZCBhIHVzYWJsZSBjb25uZWN0aW9uLCBidXQgaXMgc3RpbGwKKyAgICAgICAgY2hlY2tpbmcg
b3RoZXIgY2FuZGlkYXRlIHBhaXJzIHRvIHNlZSBpZiB0aGVyZSBpcyBhIGJldHRlciBjb25uZWN0
aW9uLgorICAgICAgICBJdCBtYXkgYWxzbyBzdGlsbCBiZSBnYXRoZXJpbmcgYW5kL29yIHdhaXRp
bmcgZm9yIGFkZGl0aW9uYWwgcmVtb3RlCisgICAgICAgIGNhbmRpZGF0ZXMuIElmIGNvbnNlbnQg
Y2hlY2tzIFtSRkM3Njc1XSBmYWlsIG9uIHRoZSBjb25uZWN0aW9uIGluIHVzZSwKKyAgICAgICAg
YW5kIHRoZXJlIGFyZSBubyBvdGhlciBzdWNjZXNzZnVsIGNhbmRpZGF0ZSBwYWlycyBhdmFpbGFi
bGUsIHRoZW4gdGhlCisgICAgICAgIHN0YXRlIHRyYW5zaXRpb25zIHRvICJjaGVja2luZyIgKGlm
IHRoZXJlIGFyZSBjYW5kaWRhdGUgcGFpcnMgcmVtYWluaW5nCisgICAgICAgIHRvIGJlIGNoZWNr
ZWQpIG9yICJkaXNjb25uZWN0ZWQiIChpZiB0aGVyZSBhcmUgbm8gY2FuZGlkYXRlIHBhaXJzIHRv
CisgICAgICAgIGNoZWNrLCBidXQgdGhlIHBlZXIgaXMgc3RpbGwgZ2F0aGVyaW5nIGFuZC9vciB3
YWl0aW5nIGZvciBhZGRpdGlvbmFsCisgICAgICAgIHJlbW90ZSBjYW5kaWRhdGVzKS4KKworICAg
ICAgY29tcGxldGVkCisgICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZpbmlzaGVkIGdh
dGhlcmluZywgcmVjZWl2ZWQgYW4gaW5kaWNhdGlvbiB0aGF0CisgICAgICAgIHRoZXJlIGFyZSBu
byBtb3JlIHJlbW90ZSBjYW5kaWRhdGVzLCBmaW5pc2hlZCBjaGVja2luZyBhbGwgY2FuZGlkYXRl
CisgICAgICAgIHBhaXJzIGFuZCBmb3VuZCBhIGNvbm5lY3Rpb24uIElmIGNvbnNlbnQgY2hlY2tz
IFtSRkM3Njc1XSBzdWJzZXF1ZW50bHkKKyAgICAgICAgZmFpbCBvbiBhbGwgc3VjY2Vzc2Z1bCBj
YW5kaWRhdGUgcGFpcnMsIHRoZSBzdGF0ZSB0cmFuc2l0aW9ucyB0byAiZmFpbGVkIi4KKyAgICov
CisgIGFzeW5jX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMi5jbG9zZSgpKTsKKworICAgIGNvbnN0IG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlID0g
dC5zdGVwX2Z1bmMoKCkgPT4geworICAgICAgY29uc3QgeyBpY2VDb25uZWN0aW9uU3RhdGUgfSA9
IHBjMTsKKworICAgICAgaWYoaWNlQ29ubmVjdGlvblN0YXRlID09PSAnY2hlY2tpbmcnKSB7Cisg
ICAgICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IHBjMS5zY3RwLnRyYW5zcG9ydC50cmFuc3BvcnQ7
CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuc3RhdGUsICdjaGVja2luZycs
CisgICAgICAgICAgJ0V4cGVjdCBJQ0UgdHJhbnNwb3J0IHRvIGJlIGluIGNoZWNraW5nIHN0YXRl
IHdoZW4gaWNlQ29ubmVjdGlvblN0YXRlIGlzIGNoZWNraW5nJyk7CisKKyAgICAgIH0gZWxzZSBp
ZihpY2VDb25uZWN0aW9uU3RhdGUgPT09ICdjb25uZWN0ZWQnKSB7CisgICAgICAgIGNvbnN0IGlj
ZVRyYW5zcG9ydCA9IHBjMS5zY3RwLnRyYW5zcG9ydC50cmFuc3BvcnQ7CisKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuc3RhdGUsICdjb25uZWN0ZWQnLAorICAgICAgICAgICdF
eHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBpbiBjb25uZWN0ZWQgc3RhdGUgd2hlbiBpY2VDb25u
ZWN0aW9uU3RhdGUgaXMgY29ubmVjdGVkJyk7CisKKyAgICAgIH0gZWxzZSBpZihpY2VDb25uZWN0
aW9uU3RhdGUgPT09ICdjb21wbGV0ZWQnKSB7CisgICAgICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9
IHBjMS5zY3RwLnRyYW5zcG9ydC50cmFuc3BvcnQ7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhp
Y2VUcmFuc3BvcnQuc3RhdGUsICdjb21wbGV0ZWQnLAorICAgICAgICAgICdFeHBlY3QgSUNFIHRy
YW5zcG9ydCB0byBiZSBpbiBjb25uZWN0ZWQgc3RhdGUgd2hlbiBpY2VDb25uZWN0aW9uU3RhdGUg
aXMgY29tcGxldGVkJyk7CisgICAgICB9CisgICAgfSk7CisKKyAgICBwYzEuY3JlYXRlRGF0YUNo
YW5uZWwoJ3Rlc3QnKTsKKworICAgIGFzc2VydF9lcXVhbHMocGMxLm9uaWNlY29ubmVjdGlvbnN0
YXRlY2hhbmdlLCBudWxsLAorICAgICAgJ0V4cGVjdCBjb25uZWN0aW9uIHRvIGhhdmUgaWNlY29u
bmVjdGlvbnN0YXRlY2hhbmdlIGV2ZW50Jyk7CisKKyAgICBwYzEuYWRkRXZlbnRMaXN0ZW5lcign
aWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlJywgb25JY2VDb25uZWN0aW9uU3RhdGVDaGFuZ2UpOwor
CisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgICBkb1NpZ25hbGluZ0hh
bmRzaGFrZShwYzEsIHBjMik7CisgIH0sICdjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5l
bCBzaG91bGQgZXZlbnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlJyk7CisK
KyAgLyoKKyAgICBUT0RPCisgICAgNC40LjQgUlRDSWNlQ29ubmVjdGlvblN0YXRlIEVudW0KKyAg
ICAgIGZhaWxlZAorICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9ydCBzIGFyZSBpbiB0
aGUgZmFpbGVkIHN0YXRlLgorCisgICAgICBkaXNjb25uZWN0ZWQKKyAgICAgICAgQW55IG9mIHRo
ZSBSVENJY2VUcmFuc3BvcnQgcyBhcmUgaW4gdGhlIGRpc2Nvbm5lY3RlZCBzdGF0ZSBhbmQgbm9u
ZSBvZgorICAgICAgICB0aGVtIGFyZSBpbiB0aGUgZmFpbGVkIHN0YXRlLgorCisgICAgICBjbG9z
ZWQKKyAgICAgICAgVGhlIFJUQ1BlZXJDb25uZWN0aW9uIG9iamVjdCdzIFtbIGlzQ2xvc2VkXV0g
c2xvdCBpcyB0cnVlLgorCisgICAgNS42LiAgZW51bSBSVENJY2VUcmFuc3BvcnRTdGF0ZQorICAg
ICAgbmV3CisgICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaXMgZ2F0aGVyaW5nIGNhbmRpZGF0
ZXMgYW5kL29yIHdhaXRpbmcgZm9yCisgICAgICAgIHJlbW90ZSBjYW5kaWRhdGVzIHRvIGJlIHN1
cHBsaWVkLCBhbmQgaGFzIG5vdCB5ZXQgc3RhcnRlZCBjaGVja2luZy4KKworICAgICAgZmFpbGVk
CisgICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZpbmlzaGVkIGdhdGhlcmluZywgcmVj
ZWl2ZWQgYW4gaW5kaWNhdGlvbiB0aGF0CisgICAgICAgIHRoZXJlIGFyZSBubyBtb3JlIHJlbW90
ZSBjYW5kaWRhdGVzLCBmaW5pc2hlZCBjaGVja2luZyBhbGwgY2FuZGlkYXRlIHBhaXJzLAorICAg
ICAgICBhbmQgYWxsIHBhaXJzIGhhdmUgZWl0aGVyIGZhaWxlZCBjb25uZWN0aXZpdHkgY2hlY2tz
IG9yIGhhdmUgbG9zdCBjb25zZW50LgorCisgICAgICBkaXNjb25uZWN0ZWQKKyAgICAgICAgVGhl
IElDRSBBZ2VudCBoYXMgZGV0ZXJtaW5lZCB0aGF0IGNvbm5lY3Rpdml0eSBpcyBjdXJyZW50bHkg
bG9zdCBmb3IgdGhpcworICAgICAgICBSVENJY2VUcmFuc3BvcnQgLiBUaGlzIGlzIG1vcmUgYWdn
cmVzc2l2ZSB0aGFuIGZhaWxlZCwgYW5kIG1heSB0cmlnZ2VyCisgICAgICAgIGludGVybWl0dGVu
dGx5IChhbmQgcmVzb2x2ZSBpdHNlbGYgd2l0aG91dCBhY3Rpb24pIG9uIGEgZmxha3kgbmV0d29y
ay4KKyAgICAgICAgVGhlIHdheSB0aGlzIHN0YXRlIGlzIGRldGVybWluZWQgaXMgaW1wbGVtZW50
YXRpb24gZGVwZW5kZW50LgorCisgICAgICAgIEV4YW1wbGVzIGluY2x1ZGU6CisgICAgICAgICAg
TG9zaW5nIHRoZSBuZXR3b3JrIGludGVyZmFjZSBmb3IgdGhlIGNvbm5lY3Rpb24gaW4gdXNlLgor
ICAgICAgICAgIFJlcGVhdGVkbHkgZmFpbGluZyB0byByZWNlaXZlIGEgcmVzcG9uc2UgdG8gU1RV
TiByZXF1ZXN0cy4KKworICAgICAgICBBbHRlcm5hdGl2ZWx5LCB0aGUgUlRDSWNlVHJhbnNwb3J0
IGhhcyBmaW5pc2hlZCBjaGVja2luZyBhbGwgZXhpc3RpbmcKKyAgICAgICAgY2FuZGlkYXRlcyBw
YWlycyBhbmQgZmFpbGVkIHRvIGZpbmQgYSBjb25uZWN0aW9uIChvciBjb25zZW50IGNoZWNrcwor
ICAgICAgICBbUkZDNzY3NV0gb25jZSBzdWNjZXNzZnVsLCBoYXZlIG5vdyBmYWlsZWQpLCBidXQg
aXQgaXMgc3RpbGwgZ2F0aGVyaW5nCisgICAgICAgIGFuZC9vciB3YWl0aW5nIGZvciBhZGRpdGlv
bmFsIHJlbW90ZSBjYW5kaWRhdGVzLgorCisgICAgICBjbG9zZWQKKyAgICAgICAgVGhlIFJUQ0lj
ZVRyYW5zcG9ydCBoYXMgc2h1dCBkb3duIGFuZCBpcyBubyBsb25nZXIgcmVzcG9uZGluZyB0byBT
VFVOIHJlcXVlc3RzLgorICAgKi8KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
aWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9u
U3RhdGUuaHR0cHMuaHRtbAppbmRleCAzMjBiMDNkZmM4MGY4ZTdlNGEyMGQ5ZTI0M2I5Y2M4N2M4
ODg4MWM3Li41MDgzYmU2Y2RmZDE2ZjVjMmM2N2E4MGE3ZGJjOWMyNDAxZjFhMGE4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbApAQCAtMzIwLDE1ICszMjAsMTEg
QEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5j
bG9zZSgpKTsKICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotICBwYzEub25pY2VjYW5kaWRhdGUgPSBhc3lu
YyBlID0+IHsKLSAgICBpZiAoZS5jYW5kaWRhdGUpIHsKLSAgICAgIGF3YWl0IHBjMi5hZGRJY2VD
YW5kaWRhdGUoZS5jYW5kaWRhdGUpOwotICAgIH0KLSAgfTsKKyAgcGMxLm9uaWNlY2FuZGlkYXRl
ID0gZSA9PiBwYzIuYWRkSWNlQ2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsKICAgcGMxLmNhbmRpZGF0
ZUJ1ZmZlciA9IFtdOwogICBwYzIub25pY2VjYW5kaWRhdGUgPSBlID0+IHsKICAgICAvLyBEb24n
dCBhZGQgY2FuZGlkYXRlIGlmIGNhbmRpZGF0ZSBidWZmZXIgaXMgYWxyZWFkeSB1c2VkCi0gICAg
aWYgKGUuY2FuZGlkYXRlICYmIHBjMS5jYW5kaWRhdGVCdWZmZXIpIHsKKyAgICBpZiAocGMxLmNh
bmRpZGF0ZUJ1ZmZlcikgewogICAgICAgcGMxLmNhbmRpZGF0ZUJ1ZmZlci5wdXNoKGUuY2FuZGlk
YXRlKQogICAgIH0KICAgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sCmluZGV4IDkzM2Ey
MWNjNzVlZmNiMTQ5MDNhNTg2ZDk5MTYyNzhmZDBjOWY4MjYuLjZhZmFmMGZiZmJkMWRjMjEyMDI3
YTExN2M2ZWEzNmRkYmY5ZDhkMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmlu
Z1N0YXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbApAQCAt
MTEsNyArMTEsNyBAQAogICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXBjL2FyY2hp
dmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG1sCiAKICAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVu
Y3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6Ci0gIC8v
IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIKKyAgLy8gZXhjaGFuZ2VBbnN3ZXIKICAgLy8gZXhjaGFuZ2VJ
Y2VDYW5kaWRhdGVzCiAgIC8vIGdlbmVyYXRlQXVkaW9SZWNlaXZlT25seU9mZmVyCiAKQEAgLTUy
LDYgKzUyLDggQEAKICAgICovCiAgIHRlc3QodCA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwor
CiAgICAgYXNzZXJ0X2VxdWFscyhwYy5pY2VHYXRoZXJpbmdTdGF0ZSwgJ25ldycpOwogICB9LCAn
SW5pdGlhbCBpY2VHYXRoZXJpbmdTdGF0ZSBzaG91bGQgYmUgbmV3Jyk7CiAKQEAgLTE2Niw3ICsx
NjgsMTIgQEAKICAgfSwgJ3JlbmVnb3RpYXRpb24gdGhhdCBjbG9zZXMgYWxsIHRyYW5zcG9ydHMg
c2hvdWxkIHJlc3VsdCBpbiBJQ0UgZ2F0aGVyaW5nIHN0YXRlICJuZXciJyk7CiAKICAgLyoKLSAg
ICA0LjQuMi4gIFJUQ0ljZUdhdGhlcmluZ1N0YXRlIEVudW0KKyAgICA0LjMuMi4gIFJUQ0ljZUdh
dGhlcmluZ1N0YXRlIEVudW0KKyAgICAgIG5ldworICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRy
YW5zcG9ydHMgYXJlIGluIHRoZSAibmV3IiBnYXRoZXJpbmcgc3RhdGUgYW5kIG5vbmUKKyAgICAg
ICAgb2YgdGhlIHRyYW5zcG9ydHMgYXJlIGluIHRoZSAiZ2F0aGVyaW5nIiBzdGF0ZSwgb3IgdGhl
cmUgYXJlIG5vCisgICAgICAgIHRyYW5zcG9ydHMuCisKICAgICAgIGdhdGhlcmluZwogICAgICAg
ICBBbnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9ydCBzIGFyZSBpbiB0aGUgZ2F0aGVyaW5nIHN0YXRl
LgogCkBAIC0xODMsNyArMTkwLDcgQEAKICAgICAgICAgaW5kaWNhdGlvbiBmb3IgdGhpcyB0cmFu
c3BvcnQgaGFzIGJlZW4gc2VudC4gSXQgd2lsbCBub3QgZ2F0aGVyIGNhbmRpZGF0ZXMKICAgICAg
ICAgYWdhaW4gdW50aWwgYW4gSUNFIHJlc3RhcnQgY2F1c2VzIGl0IHRvIHJlc3RhcnQuCiAgICAq
LwotICBhc3luY190ZXN0KHQgPT4geworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAg
Y29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzEuY2xvc2UoKSk7CiAgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CkBAIC0xOTcsNyArMjA0LDcgQEAKICAgICAgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gcGMy
LnNjdHAudHJhbnNwb3J0LmljZVRyYW5zcG9ydDsKIAogICAgICAgICBhc3NlcnRfZXF1YWxzKGlj
ZVRyYW5zcG9ydC5nYXRoZXJpbmdTdGF0ZSwgJ2dhdGhlcmluZycsCi0gICAgICAgICAgJ0V4cGVj
dCBJQ0UgdHJhbnNwb3J0IHRvIGJlIGluIGNoZWNraW5nIGdhdGhlcmluZ1N0YXRlIHdoZW4gaWNl
R2F0aGVyaW5nU3RhdGUgaXMgY2hlY2tpbmcnKTsKKyAgICAgICAgICAnRXhwZWN0IElDRSB0cmFu
c3BvcnQgdG8gYmUgaW4gZ2F0aGVyaW5nIGdhdGhlcmluZ1N0YXRlIHdoZW4gaWNlR2F0aGVyaW5n
U3RhdGUgaXMgZ2F0aGVyaW5nJyk7CiAKICAgICAgIH0gZWxzZSBpZihpY2VHYXRoZXJpbmdTdGF0
ZSA9PT0gJ2NvbXBsZXRlJykgewogICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBwYzIuc2N0
cC50cmFuc3BvcnQuaWNlVHJhbnNwb3J0OwpAQCAtMjExLDE3ICsyMTgsMjAgQEAKIAogICAgIHBj
MS5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcpOwogCi0gICAgYXNzZXJ0X2VxdWFscyhwYzIub25p
Y2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSwgbnVsbCwKLSAgICAgICdFeHBlY3QgY29ubmVjdGlvbiB0
byBoYXZlIGljZWdhdGhlcmluZ3N0YXRlY2hhbmdlIGV2ZW50Jyk7Ci0KICAgICAvLyBTcGVjIGJ1
ZyB3M2Mvd2VicnRjLXBjIzEzODIKICAgICAvLyBCZWNhdXNlIHNjdHAgaXMgb25seSBkZWZpbmVk
IHdoZW4gYW5zd2VyIGlzIHNldCwgd2UgbGlzdGVuCiAgICAgLy8gdG8gcGMyIHNvIHRoYXQgd2Ug
Y2FuIGJlIGNvbmZpZGVudCB0aGF0IHNjdHAgaXMgZGVmaW5lZAogICAgIC8vIHdoZW4gaWNlZ2F0
aGVyaW5nc3RhdGVjaGFuZ2UgZXZlbnQgaXMgZmlyZWQuCiAgICAgcGMyLmFkZEV2ZW50TGlzdGVu
ZXIoJ2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdlJywgb25JY2VHYXRoZXJpbmdTdGF0ZUNoYW5nZSk7
CiAKKwogICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7Ci0gICAgZXhjaGFuZ2VP
ZmZlckFuc3dlcihwYzEsIHBjMik7CisKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlv
bigpOworICAgIGFzc2VydF9lcXVhbHMocGMxLnNjdHAudHJhbnNwb3J0LmljZVRyYW5zcG9ydC5n
YXRoZXJpbmdTdGF0ZSwgJ25ldycpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlv
bihwYzEubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgICBhd2FpdCBleGNoYW5nZUFuc3dlcihwYzEs
IHBjMik7CiAgIH0sICdjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQgZXZl
bnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlJyk7CiAKICAgLyoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IGFjZjQyZWNjMGIzYjZhZTlmZTk3NzI4YWNjMzhmMmFlYjU1YjBiOTIuLjM1ODg3M2I1ZjNiMmQ0
MTJmMzJlN2MzYzZmODdmYzk4OThjMDc2ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRh
dG9yeS1nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0
b3J5LWdldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtOSwyMiArOSwyOSBAQCBQQVNTIFJU
Q1JlY2VpdmVkUnRwU3RyZWFtU3RhdHMncyBwYWNrZXRzUmVjZWl2ZWQKIFBBU1MgUlRDUmVjZWl2
ZWRSdHBTdHJlYW1TdGF0cydzIHBhY2tldHNMb3N0CiBQQVNTIFJUQ1JlY2VpdmVkUnRwU3RyZWFt
U3RhdHMncyBqaXR0ZXIKIEZBSUwgUlRDUmVjZWl2ZWRSdHBTdHJlYW1TdGF0cydzIHBhY2tldHNE
aXNjYXJkZWQgYXNzZXJ0X3RydWU6IElzIHBhY2tldHNEaXNjYXJkZWQgcHJlc2VudCBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotUEFTUyBSVENJbmJvdW5kUnRwU3RyZWFtU3RhdHMncyB0cmFja0lk
CitGQUlMIFJUQ1JlY2VpdmVkUnRwU3RyZWFtU3RhdHMncyBmcmFtZXNEcm9wcGVkIGFzc2VydF90
cnVlOiBJcyBmcmFtZXNEcm9wcGVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZB
SUwgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgcmVjZWl2ZXJJZCBhc3NlcnRfdHJ1ZTogSXMg
cmVjZWl2ZXJJZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ0luYm91
bmRSdHBTdHJlYW1TdGF0cydzIHJlbW90ZUlkIGFzc2VydF90cnVlOiBJcyByZW1vdGVJZCBwcmVz
ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIFJUQ0luYm91bmRSdHBTdHJlYW1TdGF0
cydzIGZyYW1lc0RlY29kZWQKK1BBU1MgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgbmFja0Nv
dW50CitQQVNTIFJUQ0luYm91bmRSdHBTdHJlYW1TdGF0cydzIGZyYW1lc1JlY2VpdmVkCitQQVNT
IFJUQ0luYm91bmRSdHBTdHJlYW1TdGF0cydzIGJ5dGVzUmVjZWl2ZWQKK1BBU1MgUlRDSW5ib3Vu
ZFJ0cFN0cmVhbVN0YXRzJ3MgdG90YWxBdWRpb0VuZXJneQorUEFTUyBSVENJbmJvdW5kUnRwU3Ry
ZWFtU3RhdHMncyB0b3RhbFNhbXBsZXNEdXJhdGlvbgogRkFJTCBSVENSZW1vdGVJbmJvdW5kUnRw
U3RyZWFtU3RhdHMncyBsb2NhbElkIGFzc2VydF90cnVlOiBJcyBsb2NhbElkIHByZXNlbnQgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDUmVtb3RlSW5ib3VuZFJ0cFN0cmVhbVN0YXRz
J3Mgcm91bmRUcmlwVGltZSBhc3NlcnRfdHJ1ZTogSXMgcm91bmRUcmlwVGltZSBwcmVzZW50IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1NlbnRSdHBTdHJlYW1TdGF0cydzIHBhY2tl
dHNTZW50IGFzc2VydF90cnVlOiBJcyBwYWNrZXRzU2VudCBwcmVzZW50IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCiBGQUlMIFJUQ1NlbnRSdHBTdHJlYW1TdGF0cydzIGJ5dGVzU2VudCBhc3NlcnRf
dHJ1ZTogSXMgYnl0ZXNTZW50IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
UlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0cydzIHRyYWNrSWQgYXNzZXJ0X3RydWU6IElzIHRyYWNr
SWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENPdXRib3VuZFJ0cFN0
cmVhbVN0YXRzJ3Mgc2VuZGVySWQgYXNzZXJ0X3RydWU6IElzIHNlbmRlcklkIHByZXNlbnQgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0cydzIHJl
bW90ZUlkIGFzc2VydF90cnVlOiBJcyByZW1vdGVJZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCiBGQUlMIFJUQ091dGJvdW5kUnRwU3RyZWFtU3RhdHMncyBmcmFtZXNFbmNvZGVkIGFz
c2VydF90cnVlOiBJcyBmcmFtZXNFbmNvZGVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK0ZBSUwgUlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0cydzIG5hY2tDb3VudCBhc3NlcnRfdHJ1
ZTogSXMgbmFja0NvdW50IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUlRD
T3V0Ym91bmRSdHBTdHJlYW1TdGF0cydzIGZyYW1lc1NlbnQgYXNzZXJ0X3RydWU6IElzIGZyYW1l
c1NlbnQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENSZW1vdGVPdXRi
b3VuZFJ0cFN0cmVhbVN0YXRzJ3MgbG9jYWxJZCBhc3NlcnRfdHJ1ZTogSXMgbG9jYWxJZCBwcmVz
ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1JlbW90ZU91dGJvdW5kUnRwU3Ry
ZWFtU3RhdHMncyByZW1vdGVUaW1lc3RhbXAgYXNzZXJ0X3RydWU6IElzIHJlbW90ZVRpbWVzdGFt
cCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1BlZXJDb25uZWN0aW9u
U3RhdHMncyBkYXRhQ2hhbm5lbHNPcGVuZWQgYXNzZXJ0X3RydWU6IElzIGRhdGFDaGFubmVsc09w
ZW5lZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1BlZXJDb25uZWN0
aW9uU3RhdHMncyBkYXRhQ2hhbm5lbHNDbG9zZWQgYXNzZXJ0X3RydWU6IElzIGRhdGFDaGFubmVs
c0Nsb3NlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFJUQ0RhdGFDaGFu
bmVsU3RhdHMncyBsYWJlbAogUEFTUyBSVENEYXRhQ2hhbm5lbFN0YXRzJ3MgcHJvdG9jb2wKIEZB
SUwgUlRDRGF0YUNoYW5uZWxTdGF0cydzIGRhdGFDaGFubmVsSWRlbnRpZmllciBhc3NlcnRfdHJ1
ZTogSXMgZGF0YUNoYW5uZWxJZGVudGlmaWVyIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKIFBBU1MgUlRDRGF0YUNoYW5uZWxTdGF0cydzIHN0YXRlCkBAIC0zMiwyOCArMzksMjEgQEAg
UEFTUyBSVENEYXRhQ2hhbm5lbFN0YXRzJ3MgbWVzc2FnZXNTZW50CiBQQVNTIFJUQ0RhdGFDaGFu
bmVsU3RhdHMncyBieXRlc1NlbnQKIFBBU1MgUlRDRGF0YUNoYW5uZWxTdGF0cydzIG1lc3NhZ2Vz
UmVjZWl2ZWQKIFBBU1MgUlRDRGF0YUNoYW5uZWxTdGF0cydzIGJ5dGVzUmVjZWl2ZWQKLUZBSUwg
UlRDTWVkaWFTdHJlYW1TdGF0cydzIHN0cmVhbUlkZW50aWZlciBhc3NlcnRfdHJ1ZTogSXMgc3Ry
ZWFtSWRlbnRpZmVyIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUlRDTWVk
aWFTdHJlYW1TdGF0cydzIHRyYWNrSWRzIGFzc2VydF90cnVlOiBJcyB0cmFja0lkcyBwcmVzZW50
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFJUQ01lZGlhU291cmNlU3RhdHMncyB0cmFj
a0lkZW50aWZpZXIKK1BBU1MgUlRDTWVkaWFTb3VyY2VTdGF0cydzIGtpbmQKK0ZBSUwgUlRDQXVk
aW9Tb3VyY2VTdGF0cydzIHRvdGFsQXVkaW9FbmVyZ3kgYXNzZXJ0X3RydWU6IElzIHRvdGFsQXVk
aW9FbmVyZ3kgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBSVENBdWRpb1Nv
dXJjZVN0YXRzJ3MgdG90YWxTYW1wbGVzRHVyYXRpb24gYXNzZXJ0X3RydWU6IElzIHRvdGFsU2Ft
cGxlc0R1cmF0aW9uIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUlRDVmlk
ZW9Tb3VyY2VTdGF0cydzIHdpZHRoIGFzc2VydF90cnVlOiBJcyB3aWR0aCBwcmVzZW50IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFJUQ1ZpZGVvU291cmNlU3RhdHMncyBoZWlnaHQgYXNz
ZXJ0X3RydWU6IElzIGhlaWdodCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlM
IFJUQ1ZpZGVvU291cmNlU3RhdHMncyBmcmFtZXNQZXJTZWNvbmQgYXNzZXJ0X3RydWU6IElzIGZy
YW1lc1BlclNlY29uZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ01l
ZGlhSGFuZGxlclN0YXRzJ3MgdHJhY2tJZGVudGlmaWVyIGFzc2VydF90cnVlOiBJcyB0cmFja0lk
ZW50aWZpZXIgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSVENNZWRpYUhh
bmRsZXJTdGF0cydzIHJlbW90ZVNvdXJjZSBhc3NlcnRfdHJ1ZTogSXMgcmVtb3RlU291cmNlIHBy
ZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUlRDTWVkaWFIYW5kbGVyU3RhdHMn
cyBlbmRlZCBhc3NlcnRfdHJ1ZTogSXMgZW5kZWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBSVENBdWRpb0hhbmRsZXJTdGF0cydzIGF1ZGlvTGV2ZWwgYXNzZXJ0X3RydWU6
IElzIGF1ZGlvTGV2ZWwgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSVENW
aWRlb0hhbmRsZXJTdGF0cydzIGZyYW1lV2lkdGggYXNzZXJ0X3RydWU6IElzIGZyYW1lV2lkdGgg
cHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSVENWaWRlb0hhbmRsZXJTdGF0
cydzIGZyYW1lSGVpZ2h0IGFzc2VydF90cnVlOiBJcyBmcmFtZUhlaWdodCBwcmVzZW50IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJUQ1ZpZGVvSGFuZGxlclN0YXRzJ3MgZnJhbWVzUGVy
U2Vjb25kIGFzc2VydF90cnVlOiBJcyBmcmFtZXNQZXJTZWNvbmQgcHJlc2VudCBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBSVENWaWRlb1NlbmRlclN0YXRzJ3MgZnJhbWVzU2VudCBhc3Nl
cnRfdHJ1ZTogSXMgZnJhbWVzU2VudCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIFJUQ1ZpZGVvUmVjZWl2ZXJTdGF0cydzIGZyYW1lc1JlY2VpdmVkIGFzc2VydF90cnVlOiBJ
cyBmcmFtZXNSZWNlaXZlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJU
Q1ZpZGVvUmVjZWl2ZXJTdGF0cydzIGZyYW1lc0RlY29kZWQgYXNzZXJ0X3RydWU6IElzIGZyYW1l
c0RlY29kZWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSVENWaWRlb1Jl
Y2VpdmVyU3RhdHMncyBmcmFtZXNEcm9wcGVkIGFzc2VydF90cnVlOiBJcyBmcmFtZXNEcm9wcGVk
IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUlRDVmlkZW9SZWNlaXZlclN0
YXRzJ3MgcGFydGlhbEZyYW1lc0xvc3QgYXNzZXJ0X3RydWU6IElzIHBhcnRpYWxGcmFtZXNMb3N0
IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgUlRDQ29kZWNTdGF0cydzIHBh
eWxvYWRUeXBlCi1GQUlMIFJUQ0NvZGVjU3RhdHMncyBjb2RlY1R5cGUgYXNzZXJ0X3RydWU6IElz
IGNvZGVjVHlwZSBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFJUQ0NvZGVj
U3RhdHMncyBtaW1lVHlwZQogUEFTUyBSVENDb2RlY1N0YXRzJ3MgY2xvY2tSYXRlCiBQQVNTIFJU
Q0NvZGVjU3RhdHMncyBjaGFubmVscwogUEFTUyBSVENDb2RlY1N0YXRzJ3Mgc2RwRm10cExpbmUK
IEZBSUwgUlRDVHJhbnNwb3J0U3RhdHMncyBieXRlc1NlbnQgYXNzZXJ0X3RydWU6IElzIGJ5dGVz
U2VudCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1RyYW5zcG9ydFN0
YXRzJ3MgYnl0ZXNSZWNlaXZlZCBhc3NlcnRfdHJ1ZTogSXMgYnl0ZXNSZWNlaXZlZCBwcmVzZW50
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJUQ1RyYW5zcG9ydFN0YXRzJ3MgcnRjcFRy
YW5zcG9ydFN0YXRzSWQgYXNzZXJ0X3RydWU6IElzIHJ0Y3BUcmFuc3BvcnRTdGF0c0lkIHByZXNl
bnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDVHJhbnNwb3J0U3RhdHMncyBzZWxl
Y3RlZENhbmRpZGF0ZVBhaXJJZCBhc3NlcnRfdHJ1ZTogSXMgc2VsZWN0ZWRDYW5kaWRhdGVQYWly
SWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENUcmFuc3BvcnRTdGF0
cydzIGxvY2FsQ2VydGlmaWNhdGVJZCBhc3NlcnRfdHJ1ZTogSXMgbG9jYWxDZXJ0aWZpY2F0ZUlk
IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDVHJhbnNwb3J0U3RhdHMn
cyByZW1vdGVDZXJ0aWZpY2F0ZUlkIGFzc2VydF90cnVlOiBJcyByZW1vdGVDZXJ0aWZpY2F0ZUlk
IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKQEAgLTYxLDcgKzYxLDYgQEAgUEFTUyBS
VENJY2VDYW5kaWRhdGVQYWlyU3RhdHMncyB0cmFuc3BvcnRJZAogUEFTUyBSVENJY2VDYW5kaWRh
dGVQYWlyU3RhdHMncyBsb2NhbENhbmRpZGF0ZUlkCiBQQVNTIFJUQ0ljZUNhbmRpZGF0ZVBhaXJT
dGF0cydzIHJlbW90ZUNhbmRpZGF0ZUlkCiBQQVNTIFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0cydz
IHN0YXRlCi1QQVNTIFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0cydzIHByaW9yaXR5CiBQQVNTIFJU
Q0ljZUNhbmRpZGF0ZVBhaXJTdGF0cydzIG5vbWluYXRlZAogUEFTUyBSVENJY2VDYW5kaWRhdGVQ
YWlyU3RhdHMncyBieXRlc1NlbnQKIFBBU1MgUlRDSWNlQ2FuZGlkYXRlUGFpclN0YXRzJ3MgYnl0
ZXNSZWNlaXZlZApAQCAtNzUsNSArNzQsNCBAQCBGQUlMIFJUQ0ljZUNhbmRpZGF0ZVN0YXRzJ3Mg
dXJsIGFzc2VydF90cnVlOiBJcyB1cmwgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYQogUEFT
UyBSVENDZXJ0aWZpY2F0ZVN0YXRzJ3MgZmluZ2VycHJpbnQKIFBBU1MgUlRDQ2VydGlmaWNhdGVT
dGF0cydzIGZpbmdlcnByaW50QWxnb3JpdGhtCiBQQVNTIFJUQ0NlcnRpZmljYXRlU3RhdHMncyBi
YXNlNjRDZXJ0aWZpY2F0ZQotRkFJTCBSVENDZXJ0aWZpY2F0ZVN0YXRzJ3MgaXNzdWVyQ2VydGlm
aWNhdGVJZCBhc3NlcnRfdHJ1ZTogSXMgaXNzdWVyQ2VydGlmaWNhdGVJZCBwcmVzZW50IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1n
ZXRTdGF0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBz
Lmh0bWwKaW5kZXggN2RhMTRjZDVlMGYzZjVjN2U4MDdiNjFjYjBlN2VjYzcyMTZmZjAwNy4uZjgw
ZmE1ZmUxZjQ2NWNmOTQ2MzQ3ZjMwZDA2ZWY4YTkwNTJhZjQ1YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFu
ZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWwKQEAgLTk1LDcgKzk1LDExIEBAIGNvbnN0IG1hbmRh
dG9yeSA9IHsKICAgXSwKICAgUlRDQ29kZWNTdGF0czogWwogICAgICJwYXlsb2FkVHlwZSIsCi0g
ICAgImNvZGVjVHlwZSIsCisgICAgLyogY29kZWNUeXBlIGlzIHBhcnQgb2YgTVRJIGJ1dCBpcyBu
b3Qgc3lzdGVtYXRpY2FsbHkgc2V0CisgICAgICAgcGVyIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93
ZWJydGMtc3RhdHMvI2RvbS1ydGNjb2RlY3N0YXRzLWNvZGVjdHlwZQorICAgICAgIElmIHRoZSBk
aWN0aW9uYXJ5IG1lbWJlciBpcyBub3QgcHJlc2VudCwgaXQgbWVhbnMgdGhhdAorICAgICAgdGhp
cyBtZWRpYSBmb3JtYXQgY2FuIGJlIGJvdGggZW5jb2RlZCBhbmQgZGVjb2RlZC4gKi8KKyAgICAv
LyAiY29kZWNUeXBlIiwKICAgICAibWltZVR5cGUiLAogICAgICJjbG9ja1JhdGUiLAogICAgICJj
aGFubmVscyIsCkBAIC0xMzAsNyArMTM0LDExIEBAIGNvbnN0IG1hbmRhdG9yeSA9IHsKICAgICAi
ZmluZ2VycHJpbnQiLAogICAgICJmaW5nZXJwcmludEFsZ29yaXRobSIsCiAgICAgImJhc2U2NENl
cnRpZmljYXRlIiwKLSAgICAiaXNzdWVyQ2VydGlmaWNhdGVJZCIsCisgICAgLyogaXNzdWVyQ2Vy
dGlmaWNhdGVJZCBpcyBwYXJ0IG9mIE1USSBidXQgaXMgbm90IHN5c3RlbWF0aWNhbGx5IHNldAor
ICAgICAgIHBlciBodHRwczovL3d3dy53My5vcmcvVFIvd2VicnRjLXN0YXRzLyNkb20tcnRjY2Vy
dGlmaWNhdGVzdGF0cy1pc3N1ZXJjZXJ0aWZpY2F0ZWlkCisgICAgICAgSWYgdGhlIGN1cnJlbnQg
Y2VydGlmaWNhdGUgaXMgYXQgdGhlIGVuZCBvZiB0aGUgY2hhaW4KKyAgICAgICAoaS5lLiBhIHNl
bGYtc2lnbmVkIGNlcnRpZmljYXRlKSwgdGhpcyB3aWxsIG5vdCBiZSBzZXQuICovCisgICAgLy8g
Imlzc3VlckNlcnRpZmljYXRlSWQiLAogICBdLAogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tcGVlcklkZW50aXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlZXJJZGVudGl0eS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI1YzA5NTFlMWNkNTEwYWY4YjA4ZjFmZDU5OGM5YWNl
M2RmNDBiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlZXJJZGVudGl0eS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitGQUlMIHNldFJlbW90ZURlc2NyaXB0aW9uKCkg
b24gb2ZmZXIgd2l0aCBhPWlkZW50aXR5IHNob3VsZCBlc3RhYmxpc2ggcGVlcklkZW50aXR5IHBj
MS5zZXRJZGVudGl0eVByb3ZpZGVyIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjMS5zZXRJZGVu
dGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanMnLAor
ICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAorICAgIH0pJywgJ3BjMS5z
ZXRJZGVudGl0eVByb3ZpZGVyJyBpcyB1bmRlZmluZWQpCitGQUlMIHNldFJlbW90ZURlc2NyaXB0
aW9uKCkgb24gb2ZmZXIgd2l0aCBhPWlkZW50aXR5IHRoYXQgcmVzb2x2ZSB0byB2YWx1ZSBkaWZm
ZXJlbnQgZnJvbSB0YXJnZXQgcGVlciBpZGVudGl0eSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ3BjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHByb3Rv
Y29sOiAnbW9jay1pZHAuanMnLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21h
aW59YAorICAgIH0pJywgJ3BjMS5zZXRJZGVudGl0eVByb3ZpZGVyJyBpcyB1bmRlZmluZWQpCitG
QUlMIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgd2l0aCBwZWVySWRlbnRpdHkgc2V0IGFuZCB3aXRo
IElkUCBwcm94eSB0aGF0IHJldHVybiB2YWxpZGF0aW9uQXNzZXJ0aW9uIHdpdGggbWlzbWF0Y2gg
Y29udGVudHMgc2hvdWxkIHJlamVjdCB3aXRoIE9wZXJhdGlvbkVycm9yIHVuZGVmaW5lZCBpcyBu
b3QgYSBmdW5jdGlvbiAobmVhciAnLi4ucGMxLnNldElkZW50aXR5UHJvdmlkZXIuLi4nKQorRkFJ
TCBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIGFuZCBwZWVySWRlbnRpdHkgc2hvdWxkIHJlamVjdCB3
aXRoIE9wZXJhdGlvbkVycm9yIGlmIElkUCByZXR1cm4gdmFsaWRhdGVkIGlkZW50aXR5IHRoYXQg
aXMgZGlmZmVyZW50IGZyb20gaXRzIG93biBkb21haW4gcGMxLnNldElkZW50aXR5UHJvdmlkZXIg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMxLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdDEs
IHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanMnLAorICAgICAgdXNlcm5hbWVIaW50OiBg
YWxpY2VAJHtpZHBEb21haW4yfWAKKyAgICB9KScsICdwYzEuc2V0SWRlbnRpdHlQcm92aWRlcicg
aXMgdW5kZWZpbmVkKQorRkFJTCBXaGVuIElkUCB0aHJvd3MgZXJyb3IgYW5kIHBjIGhhcyB0YXJn
ZXQgcGVlciBpZGVudGl0eSwgc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBhbmQgcGVlcklkZW50aXR5
IHJlamVjdGVkIHdpdGggUlRDRXJyb3IoJ2lkcC1leGVjdXRpb24tZXJyb3InKSB1bmRlZmluZWQg
aXMgbm90IGEgZnVuY3Rpb24gKG5lYXIgJy4uLnBjMS5zZXRJZGVudGl0eVByb3ZpZGVyLi4uJykK
K0ZBSUwgSWRQIGZhaWx1cmUgd2l0aCBubyB0YXJnZXQgcGVlciBpZGVudGl0eSBzaG91bGQgaGF2
ZSBmb2xsb3dpbmcgc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBzdWNjZWVkIGFuZCByZXBsYWNlIHBj
LnBlZXJJZGVudGl0eSB3aXRoIGEgbmV3IHByb21pc2UgcGMxLnNldElkZW50aXR5UHJvdmlkZXIg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMxLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdCwg
eworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcz92YWxpZGF0b3JBY3Rpb249dGhyb3ctZXJy
b3InLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAorICAgIH0pJywg
J3BjMS5zZXRJZGVudGl0eVByb3ZpZGVyJyBpcyB1bmRlZmluZWQpCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXBlZXJJZGVudGl0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVlcklkZW50aXR5Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjRhZDIxMmE1YmE0ZTBjNmJmNTU4OWY0Y2RhM2E0YzdhNTA4Y2RjMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlZXJJZGVudGl0eS5odG1sCkBAIC0wLDAg
KzEsMzM2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+
UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBlLnBlZXJJZGVudGl0eTwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
aWRlbnRpdHktaGVscGVyLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAndXNlIHN0cmlj
dCc7CisKKyAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBkcmFmdDoK
KyAgLy8gICBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXBjL2FyY2hpdmVzLzIwMTcwNjA1
L3dlYnJ0Yy5odG1sCisKKyAgLy8gVGhlIHRlc3RzIGhlcmUgaW50ZXJhY3RzIHdpdGggdGhlIG1v
Y2sgaWRlbnRpdHkgcHJvdmlkZXIgbG9jYXRlZCBhdAorICAvLyAgIC8ud2VsbC1rbm93bi9pZHAt
cHJveHkvbW9jay1pZHAuanMKKworICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMg
YXJlIGNhbGxlZCBmcm9tIGlkZW50aXR5LWhlbHBlci5zdWIuanMKKyAgLy8gICBwYXJzZUFzc2Vy
dGlvblJlc3VsdAorICAvLyAgIGdldElkcERvbWFpbnMKKyAgLy8gICBhc3NlcnRfcnRjZXJyb3Jf
cmVqZWN0aW9uCisgIC8vICAgaG9zdFN0cmluZworCisgIC8qCisgICAgOS42LiAgUlRDUGVlckNv
bm5lY3Rpb24gSW50ZXJmYWNlIEV4dGVuc2lvbnMKKyAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIFJU
Q1BlZXJDb25uZWN0aW9uIHsKKyAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldElkZW50aXR5
UHJvdmlkZXIoRE9NU3RyaW5nIHByb3ZpZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBSVENJZGVudGl0eVByb3ZpZGVyT3B0aW9ucyBv
cHRpb25zKTsKKyAgICAgICAgUHJvbWlzZTxET01TdHJpbmc+IGdldElkZW50aXR5QXNzZXJ0aW9u
KCk7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPFJUQ0lkZW50aXR5QXNzZXJ0
aW9uPiBwZWVySWRlbnRpdHk7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmc/
ICAgICAgICAgICAgICAgICAgICBpZHBMb2dpblVybDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZz8gICAgICAgICAgICAgICAgICAgIGlkcEVycm9ySW5mbzsKKyAgICAgIH07
CisKKyAgICAgIGRpY3Rpb25hcnkgUlRDSWRlbnRpdHlQcm92aWRlck9wdGlvbnMgeworICAgICAg
ICBET01TdHJpbmcgcHJvdG9jb2wgPSAiZGVmYXVsdCI7CisgICAgICAgIERPTVN0cmluZyB1c2Vy
bmFtZUhpbnQ7CisgICAgICAgIERPTVN0cmluZyBwZWVySWRlbnRpdHk7CisgICAgICB9OworCisg
ICAgICBbQ29uc3RydWN0b3IoRE9NU3RyaW5nIGlkcCwgRE9NU3RyaW5nIG5hbWUpXQorICAgICAg
aW50ZXJmYWNlIFJUQ0lkZW50aXR5QXNzZXJ0aW9uIHsKKyAgICAgICAgYXR0cmlidXRlIERPTVN0
cmluZyBpZHA7CisgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgIH07Cisg
ICAqLworCisgIC8qCisgICAgNC4zLjIuIHNldFJlbW90ZURlc2NyaXB0aW9uCisgICAgICBJZiBh
biBhPWlkZW50aXR5IGF0dHJpYnV0ZSBpcyBwcmVzZW50IGluIHRoZSBzZXNzaW9uIGRlc2NyaXB0
aW9uLCB0aGUgYnJvd3NlcgorICAgICAgdmFsaWRhdGVzIHRoZSBpZGVudGl0eSBhc3NlcnRpb24u
LgorCisgICAgICBJZiB0aGUgInBlZXJJZGVudGl0eSIgY29uZmlndXJhdGlvbiBpcyBhcHBsaWVk
IHRvIHRoZSBSVENQZWVyQ29ubmVjdGlvbiwgdGhpcworICAgICAgZXN0YWJsaXNoZXMgYSB0YXJn
ZXQgcGVlciBpZGVudGl0eSBvZiB0aGUgcHJvdmlkZWQgdmFsdWUuIEFsdGVybmF0aXZlbHksIGlm
IHRoZQorICAgICAgUlRDUGVlckNvbm5lY3Rpb24gaGFzIHByZXZpb3VzbHkgYXV0aGVudGljYXRl
ZCB0aGUgaWRlbnRpdHkgb2YgdGhlIHBlZXIgKHRoYXQKKyAgICAgIGlzLCB0aGVyZSBpcyBhIGN1
cnJlbnQgdmFsdWUgZm9yIHBlZXJJZGVudGl0eSApLCB0aGVuIHRoaXMgYWxzbyBlc3RhYmxpc2hl
cyBhCisgICAgICB0YXJnZXQgcGVlciBpZGVudGl0eS4KKyAgICovCisgIHByb21pc2VfdGVzdCh0
ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwor
CisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBE
b21haW5dID0gZ2V0SWRwRG9tYWlucygpOworICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5n
KGlkcERvbWFpbiwgcG9ydCk7CisKKyAgICBwYzEuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0
LCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzJywKKyAgICAgIHVzZXJuYW1lSGludDog
YGFsaWNlQCR7aWRwRG9tYWlufWAKKyAgICB9KTsKKworICAgIHJldHVybiBwYzEuY3JlYXRlT2Zm
ZXIoKQorICAgIC50aGVuKG9mZmVyID0+IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikp
CisgICAgLnRoZW4oKCkgPT4gcGMyLnBlZXJJZGVudGl0eSkKKyAgICAudGhlbihpZGVudGl0eUFz
c2VydGlvbiA9PiB7CisgICAgICBjb25zdCB7IGlkcCwgbmFtZSB9ID0gaWRlbnRpdHlBc3NlcnRp
b247CisgICAgICBhc3NlcnRfZXF1YWxzKGlkcCwgaWRwRG9tYWluLCBgRXhwZWN0IElkUCBkb21h
aW4gdG8gYmUgJHtpZHBEb21haW59YCk7CisgICAgICBhc3NlcnRfZXF1YWxzKGlkZW50aXR5QXNz
ZXJ0aW9uLCBgYWxpY2VAJHtpZHBEb21haW59YCwKKyAgICAgICAgYEV4cGVjdCB2YWxpZGF0ZWQg
aWRlbnRpdHkgZnJvbSBtb2NrLWlkcC5qcyB0byBiZSBzYW1lIGFzIHNwZWNpZmllZCBpbiB1c2Vy
bmFtZUhpbnRgKTsKKyAgICB9KTsKKyAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uKCkgb24gb2Zm
ZXIgd2l0aCBhPWlkZW50aXR5IHNob3VsZCBlc3RhYmxpc2ggcGVlcklkZW50aXR5Jyk7CisKKyAg
LyoKKyAgICA0LjMuMi4gc2V0UmVtb3RlRGVzY3JpcHRpb24KKyAgICAgIFRoZSB0YXJnZXQgcGVl
ciBpZGVudGl0eSBjYW5ub3QgYmUgY2hhbmdlZCBvbmNlIHNldC4gT25jZSBzZXQsIGlmIGEgZGlm
ZmVyZW50CisgICAgICB2YWx1ZSBpcyBwcm92aWRlZCwgdGhlIHVzZXIgYWdlbnQgTVVTVCByZWpl
Y3QgdGhlIHJldHVybmVkIHByb21pc2Ugd2l0aCBhIG5ld2x5CisgICAgICBjcmVhdGVkIEludmFs
aWRNb2RpZmljYXRpb25FcnJvciBhbmQgYWJvcnQgdGhpcyBvcGVyYXRpb24uIFRoZSBSVENQZWVy
Q29ubmVjdGlvbgorICAgICAgTVVTVCBiZSBjbG9zZWQgaWYgdGhlIHZhbGlkYXRlZCBwZWVyIGlk
ZW50aXR5IGRvZXMgbm90IG1hdGNoIHRoZSB0YXJnZXQgcGVlcgorICAgICAgaWRlbnRpdHkuCisg
ICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2Nh
dGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBEb21haW5dID0gZ2V0SWRwRG9tYWlucygpOworICAg
IGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCk7CisKKyAgICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oewor
ICAgICAgcGVlcklkZW50aXR5OiBgYm9iQCR7aWRwRG9tYWlufWAKKyAgICB9KTsKKworICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLnNldElkZW50aXR5UHJv
dmlkZXIoaWRwSG9zdCwgeworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcycsCisgICAgICB1
c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICByZXR1cm4g
cGMxLmNyZWF0ZU9mZmVyKCkKKyAgICAudGhlbihvZmZlciA9PgorICAgICAgcHJvbWlzZV9yZWpl
Y3RzKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAorICAgICAgICBwYzIuc2V0UmVtb3Rl
RGVzY3JpcHRpb24ob2ZmZXIpKSkKKyAgICAudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfdHJ1
ZShwYzIuc2lnbmFsaW5nU3RhdGUsICdjbG9zZWQnLAorICAgICAgICAnRXhwZWN0IHBlZXIgY29u
bmVjdGlvbiB0byBiZSBjbG9zZWQgYWZ0ZXIgbWlzbWF0Y2ggcGVlciBpZGVudGl0eScpOworICAg
IH0pOworICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBvbiBvZmZlciB3aXRoIGE9aWRlbnRp
dHkgdGhhdCByZXNvbHZlIHRvIHZhbHVlIGRpZmZlcmVudCBmcm9tIHRhcmdldCBwZWVyIGlkZW50
aXR5IHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InKTsKKworICAv
KgorICAgIDkuNC4gIFZlcmlmeWluZyBJZGVudGl0eSBBc3NlcnRpb25zCisgICAgICA4LiAgVGhl
IFJUQ1BlZXJDb25uZWN0aW9uIGRlY29kZXMgdGhlIGNvbnRlbnRzIGFuZCB2YWxpZGF0ZXMgdGhh
dCBpdCBjb250YWlucyBhCisgICAgICAgICAgZmluZ2VycHJpbnQgdmFsdWUgZm9yIGV2ZXJ5IGE9
ZmluZ2VycHJpbnQgYXR0cmlidXRlIGluIHRoZSBzZXNzaW9uIGRlc2NyaXB0aW9uLgorICAgICAg
ICAgIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBjZXJ0aWZpY2F0ZSB1c2VkIGJ5IHRoZSByZW1vdGUg
cGVlciBmb3IgY29tbXVuaWNhdGlvbnMKKyAgICAgICAgICBpcyBjb3ZlcmVkIGJ5IHRoZSBpZGVu
dGl0eSBhc3NlcnRpb24uCisKKyAgICAgIElmIGlkZW50aXR5IHZhbGlkYXRpb24gZmFpbHMsIHRo
ZSBwZWVySWRlbnRpdHkgcHJvbWlzZSBpcyByZWplY3RlZCB3aXRoIGEgbmV3bHkKKyAgICAgIGNy
ZWF0ZWQgT3BlcmF0aW9uRXJyb3IuCisKKyAgICAgIElmIGlkZW50aXR5IHZhbGlkYXRpb24gZmFp
bHMgYW5kIHRoZXJlIGlzIGEgdGFyZ2V0IHBlZXIgaWRlbnRpdHkgZm9yIHRoZQorICAgICAgUlRD
UGVlckNvbm5lY3Rpb24sIHRoZSBwcm9taXNlIHJldHVybmVkIGJ5IHNldFJlbW90ZURlc2NyaXB0
aW9uIE1VU1QgYmUgcmVqZWN0ZWQKKyAgICAgIHdpdGggdGhlIHNhbWUgRE9NRXhjZXB0aW9uLgor
ICAgKi8KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9j
YXRpb24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKKyAg
ICBjb25zdCBpZHBIb3N0ID0gaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpOworCisgICAgY29u
c3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsK
KyAgICAgIHBlZXJJZGVudGl0eTogYGFsaWNlQCR7aWRwRG9tYWlufWAKKyAgICB9KTsKKworICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgLy8gQXNrIG1vY2tpZHAu
anMgdG8gcmV0dXJuIGN1c3RvbSBjb250ZW50cyBpbiB2YWxpZGF0aW9uIHJlc3VsdAorICAgIHBj
MS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1p
ZHAuanM/dmFsaWRhdG9yQWN0aW9uPXJldHVybi1jdXN0b20tY29udGVudHMmY29udGVudHM9Ym9n
dXMnLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAorICAgIH0pOwor
CisgICAgY29uc3QgcGVlcklkZW50aXR5UHJvbWlzZSA9IHBjMi5wZWVySWRlbnRpdHk7CisKKyAg
ICByZXR1cm4gcGMxLmNyZWF0ZU9mZmVyKCkKKyAgICAudGhlbihvZmZlciA9PiBQcm9taXNlLmFs
bChbCisgICAgICBwcm9taXNlX3JlamVjdHModCwgJ09wZXJhdGlvbkVycm9yJywKKyAgICAgICAg
cGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSksCisgICAgICBwcm9taXNlX3JlamVjdHMo
dCwgJ09wZXJhdGlvbkVycm9yJywKKyAgICAgICAgcGVlcklkZW50aXR5UHJvbWlzZSkKKyAgICBd
KSk7CisgIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbigpIHdpdGggcGVlcklkZW50aXR5IHNldCBh
bmQgd2l0aCBJZFAgcHJveHkgdGhhdCByZXR1cm4gdmFsaWRhdGlvbkFzc2VydGlvbiB3aXRoIG1p
c21hdGNoIGNvbnRlbnRzIHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRpb25FcnJvcicpOworCisg
IC8qCisgICAgOS40LiAgVmVyaWZ5aW5nIElkZW50aXR5IEFzc2VydGlvbnMKKyAgICAgIDkuICBU
aGUgUlRDUGVlckNvbm5lY3Rpb24gdmFsaWRhdGVzIHRoYXQgdGhlIGRvbWFpbiBwb3J0aW9uIG9m
IHRoZSBpZGVudGl0eSBtYXRjaGVzCisgICAgICAgICAgdGhlIGRvbWFpbiBvZiB0aGUgSWRQIGFz
IGRlc2NyaWJlZCBpbiBbUlRDV0VCLVNFQ1VSSVRZLUFSQ0hdLiBJZiB0aGlzIGNoZWNrCisgICAg
ICAgICAgZmFpbHMgdGhlbiB0aGUgaWRlbnRpdHkgdmFsaWRhdGlvbiBmYWlscy4KKyAgICovCisg
IHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBv
cnQ7CisgICAgY29uc3QgW2lkcERvbWFpbjEsIGlkcERvbWFpbjJdID0gZ2V0SWRwRG9tYWlucygp
OworICAgIGFzc2VydF9ub3RfZXF1YWxzKGlkcERvbWFpbjEsIGlkcERvbWFpbjIsCisgICAgICAn
U2FuaXR5IGNoZWNrIHR3byBpZHBEb21haW5zIGFyZSBkaWZmZXJlbnQnKTsKKworICAgIGNvbnN0
IGlkcEhvc3QxID0gaG9zdFN0cmluZyhpZHBEb21haW4xLCBwb3J0KTsKKworICAgIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMx
LmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7CisgICAg
ICBwZWVySWRlbnRpdHk6IGBhbGljZUAke2lkcERvbWFpbjJ9YAorICAgIH0pOworCisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICAvLyBtb2NrLWlkcC5qcyB3aWxs
IHJldHVybiBhc3NlcnRpb24gb2YgZG9tYWluMiBpZGVudGl0eQorICAgIC8vIHdpdGggZG9tYWlu
MSBpbiB0aGUgaWRwLmRvbWFpbiBmaWVsZAorICAgIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlk
cEhvc3QxLCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzJywKKyAgICAgIHVzZXJuYW1l
SGludDogYGFsaWNlQCR7aWRwRG9tYWluMn1gCisgICAgfSk7CisKKyAgICByZXR1cm4gcGMxLmdl
dElkZW50aXR5QXNzZXJ0aW9uKCkKKyAgICAudGhlbihhc3NlcnRpb25SZXN1bHRTdHIgPT4gewor
ICAgICAgY29uc3QgeyBpZHAsIGFzc2VydGlvbiB9ID0gcGFyc2VBc3NlcnRpb25SZXN1bHQoYXNz
ZXJ0aW9uUmVzdWx0U3RyKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhpZHAuZG9tYWluLCBpZHBE
b21haW4xLAorICAgICAgICAnU2FuaXR5IGNoZWNrIGRvbWFpbiBvZiBhc3NlcnRpb24gaXMgZG9t
YWluMScpOworCisgICAgICBhc3NlcnRfZXF1YWxzKGFzc2VydGlvbi5vcHRpb25zLnVzZXJuYW1l
SGludCwgYGFsaWNlQCR7aWRwRG9tYWluMn1gLAorICAgICAgICAnU2FuaXR5IGNoZWNrIGRvbWFp
bjEgaXMgZ29pbmcgdG8gdmFsaWRhdGUgYSBkb21haW4yIGlkZW50aXR5Jyk7CisKKyAgICAgIHJl
dHVybiBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgICB9KQorICAgIC50aGVuKG9mZmVyID0+IFByb21p
c2UuYWxsKFsKKyAgICAgIHByb21pc2VfcmVqZWN0cyh0LCAnT3BlcmF0aW9uRXJyb3InLAorICAg
ICAgICBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpKSwKKyAgICAgIHByb21pc2VfcmVq
ZWN0cyh0LCAnT3BlcmF0aW9uRXJyb3InLAorICAgICAgICBwYzIucGVlcklkZW50aXR5KQorICAg
IF0pKTsKKyAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uKCkgYW5kIHBlZXJJZGVudGl0eSBzaG91
bGQgcmVqZWN0IHdpdGggT3BlcmF0aW9uRXJyb3IgaWYgSWRQIHJldHVybiB2YWxpZGF0ZWQgaWRl
bnRpdHkgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSBpdHMgb3duIGRvbWFpbicpOworCisgIC8qCisg
ICAgOS40IFZlcmlmeWluZyBJZGVudGl0eSBBc3NlcnRpb25zCisgICAgICBJZiBpZGVudGl0eSB2
YWxpZGF0aW9uIGZhaWxzIGFuZCB0aGVyZSBpcyBhIHRhcmdldCBwZWVyIGlkZW50aXR5IGZvciB0
aGUKKyAgICAgIFJUQ1BlZXJDb25uZWN0aW9uLCB0aGUgcHJvbWlzZSByZXR1cm5lZCBieSBzZXRS
ZW1vdGVEZXNjcmlwdGlvbiBNVVNUIGJlIHJlamVjdGVkCisgICAgICB3aXRoIHRoZSBzYW1lIERP
TUV4Y2VwdGlvbi4KKworICAgIDkuNSBJZFAgRXJyb3IgSGFuZGxpbmcKKyAgICAgIC0gSWYgYW4g
aWRlbnRpdHkgcHJvdmlkZXIgdGhyb3dzIGFuIGV4Y2VwdGlvbiBvciByZXR1cm5zIGEgcHJvbWlz
ZSB0aGF0IGlzIHVsdGltYXRlbHkKKyAgICAgICAgcmVqZWN0ZWQsIHRoZW4gdGhlIHByb2NlZHVy
ZSB0aGF0IGRlcGVuZHMgb24gdGhlIElkUCBNVVNUIGFsc28gZmFpbC4gVGhlc2UgdHlwZXMgb2YK
KyAgICAgICAgZXJyb3JzIHdpbGwgY2F1c2UgYW4gSWRQIGZhaWx1cmUgd2l0aCBhbiBSVENFcnJv
ciB3aXRoIGVycm9yRGV0YWlsIHNldCB0bworICAgICAgICAiaWRwLWV4ZWN1dGlvbi1mYWlsdXJl
Ii4KKworICAgICAgQW55IGVycm9yIGdlbmVyYXRlZCBieSB0aGUgSWRQIE1BWSBwcm92aWRlIGFk
ZGl0aW9uYWwgaW5mb3JtYXRpb24gaW4gdGhlCisgICAgICBpZHBFcnJvckluZm8gYXR0cmlidXRl
LiBUaGUgaW5mb3JtYXRpb24gaW4gdGhpcyBzdHJpbmcgaXMgZGVmaW5lZCBieSB0aGUKKyAgICAg
IElkUCBpbiB1c2UuCisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcG9y
dCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBEb21haW5dID0gZ2V0SWRw
RG9tYWlucygpOworICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9y
dCk7CisKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oeworICAgICAgcGVlcklkZW50aXR5OiBgYWxpY2VAJHtpZHBEb21haW59YAor
ICAgIH0pOworCisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICAv
LyBBc2sgbW9jay1pZHAuanMgdG8gdGhyb3cgZXJyb3IgZHVyaW5nIHZhbGlkYXRpb24sCisgICAg
Ly8gaS5lLiBkdXJpbmcgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKCkKKyAgICBwYzEuc2V0SWRl
bnRpdHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzP3Zh
bGlkYXRvckFjdGlvbj10aHJvdy1lcnJvciZlcnJvckluZm89YmFyJywKKyAgICAgIHVzZXJuYW1l
SGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAKKyAgICB9KTsKKworICAgIHJldHVybiBwYzEuY3Jl
YXRlT2ZmZXIoKQorICAgIC50aGVuKG9mZmVyID0+IFByb21pc2UuYWxsKFsKKyAgICAgIGFzc2Vy
dF9ydGNlcnJvcl9yZWplY3Rpb24oJ2lkcC1leGVjdXRpb24tZmFpbHVyZScsCisgICAgICAgIHBj
Mi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikpLAorICAgICAgYXNzZXJ0X3J0Y2Vycm9yX3Jl
amVjdGlvbignaWRwLWV4ZWN1dGlvbi1mYWlsdXJlJywKKyAgICAgICAgcGMyLnBlZXJJZGVudGl0
eSkKKyAgICBdKSkKKyAgICAudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHBjMi5p
ZHBFcnJvckluZm8sICdiYXInLAorICAgICAgICAnRXhwZWN0IHBjMi5pZHBFcnJvckluZm8gdG8g
YmUgc2V0IHRvIHRoZSBlcnIuaWRwRXJyb3JJbmZvIHRocm93biBieSBtb2NrLWlkcC5qcycpOwor
ICAgIH0pOworICB9LCBgV2hlbiBJZFAgdGhyb3dzIGVycm9yIGFuZCBwYyBoYXMgdGFyZ2V0IHBl
ZXIgaWRlbnRpdHksIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgYW5kIHBlZXJJZGVudGl0eSByZWpl
Y3RlZCB3aXRoIFJUQ0Vycm9yKCdpZHAtZXhlY3V0aW9uLWVycm9yJylgKTsKKworICAvKgorICAg
IDQuMy4yLiBzZXRSZW1vdGVEZXNjcmlwdGlvbgorICAgICAgSWYgdGhlcmUgaXMgbm8gdGFyZ2V0
IHBlZXIgaWRlbnRpdHksIHRoZW4gc2V0UmVtb3RlRGVzY3JpcHRpb24gZG9lcyBub3QgYXdhaXQg
dGhlCisgICAgICBjb21wbGV0aW9uIG9mIGlkZW50aXR5IHZhbGlkYXRpb24uCisKKyAgICA5LjUu
ICBJZFAgRXJyb3IgSGFuZGxpbmcKKyAgICAgIC0gSWYgYW4gaWRlbnRpdHkgcHJvdmlkZXIgdGhy
b3dzIGFuIGV4Y2VwdGlvbiBvciByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGlzCisgICAgICAgIHVs
dGltYXRlbHkgcmVqZWN0ZWQsIHRoZW4gdGhlIHByb2NlZHVyZSB0aGF0IGRlcGVuZHMgb24gdGhl
IElkUCBNVVNUIGFsc28gZmFpbC4KKyAgICAgICAgVGhlc2UgdHlwZXMgb2YgZXJyb3JzIHdpbGwg
Y2F1c2UgYW4gSWRQIGZhaWx1cmUgd2l0aCBhbiBSVENFcnJvciB3aXRoIGVycm9yRGV0YWlsCisg
ICAgICAgIHNldCB0byAiaWRwLWV4ZWN1dGlvbi1mYWlsdXJlIi4KKworICAgIDkuNC4gIFZlcmlm
eWluZyBJZGVudGl0eSBBc3NlcnRpb25zCisgICAgICBJZiBpZGVudGl0eSB2YWxpZGF0aW9uIGZh
aWxzIGFuZCB0aGVyZSBpcyBubyBhIHRhcmdldCBwZWVyIGlkZW50aXR5LCB0aGUgdmFsdWUgb2YK
KyAgICAgIHRoZSBwZWVySWRlbnRpdHkgTVVTVCBiZSBzZXQgdG8gYSBuZXcsIHVucmVzb2x2ZWQg
cHJvbWlzZSBpbnN0YW5jZS4gVGhpcyBwZXJtaXRzCisgICAgICB0aGUgdXNlIG9mIHJlbmVnb3Rp
YXRpb24gKG9yIGEgc3Vic2VxdWVudCBhbnN3ZXIsIGlmIHRoZSBzZXNzaW9uIGRlc2NyaXB0aW9u
IHdhcworICAgICAgYSBwcm92aXNpb25hbCBhbnN3ZXIpIHRvIHJlc29sdmUgb3IgcmVqZWN0IHRo
ZSBpZGVudGl0eS4KKyAgICovCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYzEg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5j
bG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgY29uc3QgcG9ydCA9IHdp
bmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBEb21haW5dID0gZ2V0SWRwRG9tYWlu
cygpOworICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCk7CisK
KyAgICAvLyBBc2sgbW9jay1pZHAuanMgdG8gdGhyb3cgZXJyb3IgZHVyaW5nIHZhbGlkYXRpb24s
CisgICAgLy8gaS5lLiBkdXJpbmcgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKCkKKyAgICBwYzEu
c2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRw
LmpzP3ZhbGlkYXRvckFjdGlvbj10aHJvdy1lcnJvcicsCisgICAgICB1c2VybmFtZUhpbnQ6IGBh
bGljZUAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICBjb25zdCBwZWVySWRlbnRpdHlQcm9t
aXNlMSA9IHBjMi5wZWVySWRlbnRpdHk7CisKKyAgICByZXR1cm4gcGMxLmNyZWF0ZU9mZmVyKCkK
KyAgICAudGhlbihvZmZlciA9PgorICAgICAgLy8gc2V0UmVtb3RlRGVzY3JpcHRpb24gc2hvdWxk
IHN1Y2NlZWQgYmVjYXVzZSB0aGVyZSBpcyBubyB0YXJnZXQgcGVlciBpZGVudGl0eSBzZXQKKyAg
ICAgIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikpCisgICAgLnRoZW4oKCkgPT4KKyAg
ICAgIGFzc2VydF9ydGNlcnJvcl9yZWplY3Rpb24oJ2lkcC1leGVjdXRpb24tZmFpbHVyZScsCisg
ICAgICAgIHBlZXJJZGVudGl0eVByb21pc2UxLAorICAgICAgICBgRXhwZWN0IGZpcnN0IHBlZXJJ
ZGVudGl0eSBwcm9taXNlIHRvIGJlIHJlamVjdGVkIHdpdGggUlRDRXJyb3IoJ2lkcC1leGVjdXRp
b24tZmFpbHVyZScpYCkpCisgICAgLnRoZW4oKCkgPT4geworICAgICAgY29uc3QgcGVlcklkZW50
aXR5UHJvbWlzZTIgPSBwYzIucGVlcklkZW50aXR5OworICAgICAgYXNzZXJ0X25vdF9lcXVhbHMo
cGVlcklkZW50aXR5UHJvbWlzZTIsIHBlZXJJZGVudGl0eVByb21pc2UxLAorICAgICAgICAnRXhw
ZWN0IHBjMi5wZWVySWRlbnRpdHkgdG8gYmUgcmVwbGFjZWQgd2l0aCBhIGZyZXNoIHVucmVzb2x2
ZWQgcHJvbWlzZScpOworCisgICAgICAvLyByZWdlbmVyYXRlIGFuIGlkZW50aXR5IGFzc2VydGlv
biB3aXRoIG5vIHRlc3Qgb3B0aW9uIHRvIHRocm93IGVycm9yCisgICAgICBwYzEuc2V0SWRlbnRp
dHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAgICAgIHByb3RvY29sOiAnaWRwLXRlc3QuanMnLAor
ICAgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgICB9KTsKKwor
ICAgICAgcmV0dXJuIHBjMS5jcmVhdGVPZmZlcigpCisgICAgICAudGhlbihvZmZlciA9PiBwYzIu
c2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpKQorICAgICAgLnRoZW4ocGVlcklkZW50aXR5UHJv
bWlzZTIpCisgICAgICAudGhlbihpZGVudGl0eUFzc2VydGlvbiA9PiB7CisgICAgICAgIGNvbnN0
IHsgaWRwLCBuYW1lIH0gPSBpZGVudGl0eUFzc2VydGlvbjsKKworICAgICAgICBhc3NlcnRfZXF1
YWxzKGlkcCwgaWRwRG9tYWluLAorICAgICAgICAgIGBFeHBlY3QgSWRQIGRvbWFpbiB0byBiZSAk
e2lkcERvbWFpbn1gKTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKG5hbWUsIGBhbGljZUAke2lk
cERvbWFpbn1gLAorICAgICAgICAgIGBFeHBlY3QgdmFsaWRhdGVkIGlkZW50aXR5IHRvIGJlIGFs
aWNlQCR7aWRwRG9tYWlufWApOworCisgICAgICAgIGFzc2VydF9lcXVhbHMocGMyLnBlZXJpZGVu
dGl0eSwgcGVlcklkZW50aXR5UHJvbWlzZTIsCisgICAgICAgICAgJ0V4cGVjdCBwYzIucGVlcklk
ZW50aXR5IHRvIHN0YXkgZml4ZWQgYWZ0ZXIgaWRlbnRpdHkgaXMgdmFsaWRhdGVkJyk7CisgICAg
ICB9KTsKKyAgICB9KTsKKyAgfSwgJ0lkUCBmYWlsdXJlIHdpdGggbm8gdGFyZ2V0IHBlZXIgaWRl
bnRpdHkgc2hvdWxkIGhhdmUgZm9sbG93aW5nIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgc3VjY2Vl
ZCBhbmQgcmVwbGFjZSBwYy5wZWVySWRlbnRpdHkgd2l0aCBhIG5ldyBwcm9taXNlJyk7CisKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJl
c3MtZ2xhcmUtbGluZWFyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3Qt
bmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
NzM1ZGM4NjVhMTZlMzUyOGQ2ZDM5MDJmMTU2YzVhM2FkODBiZTI2MC4uYzExNzBlYjU1NjQwNmMy
OTg1MTE5NjM1NDc3MWQyZDY2NTU5M2ZkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVj
dC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS1saW5lYXIuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1QQVNTIFBlcmZlY3QgbmVnb3RpYXRp
b24gc3RyZXNzIGdsYXJlIGxpbmVhcgotUEFTUyBQZXJmZWN0IG5lZ290aWF0aW9uIHN0cmVzcyBn
bGFyZSBsaW5lYXIgd2l0aCByb2xlcyByZXZlcnNlZAorRkFJTCBQZXJmZWN0IG5lZ290aWF0aW9u
IHN0cmVzcyBnbGFyZSBsaW5lYXIgYXNzZXJ0X3VucmVhY2hlZDogRXJyb3IgaW4gaWZyYW1lOiBP
cGVyYXRpb25FcnJvcjogRXJyb3IgcHJvY2Vzc2luZyBJQ0UgY2FuZGlkYXRlIFJlYWNoZWQgdW5y
ZWFjaGFibGUgY29kZQorRkFJTCBQZXJmZWN0IG5lZ290aWF0aW9uIHN0cmVzcyBnbGFyZSBsaW5l
YXIgd2l0aCByb2xlcyByZXZlcnNlZCBhc3NlcnRfdW5yZWFjaGVkOiBFcnJvciBpbiBpZnJhbWU6
IE9wZXJhdGlvbkVycm9yOiBFcnJvciBwcm9jZXNzaW5nIElDRSBjYW5kaWRhdGUgUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3Rp
YXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlv
bi5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYTFlN2RiYWY5ZjM2MjQyNDZiNmMwZTcxZmM2NGY3
YmQ5NzM5YjA0My4uNjJkZTA5NzczNGY5NzU4NzVhNTNhNWZhNmY3NWE2ZTQzYTBiYTliYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTEsNiArMSw2IEBACiAKIFBBU1MgUGVyZmVjdCBuZWdvdGlhdGlvbiBzZXR1cCBjb25u
ZWN0cwogUEFTUyBQZXJmZWN0IG5lZ290aWF0aW9uIHNldHVwIGNvbm5lY3RzIHdpdGggcm9sZXMg
cmV2ZXJzZWQKLUZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBnbGFyZSBSZW1vdGUgZGVzY3JpcHRp
b24gdHlwZSAwIGlzIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIDEK
LUZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBnbGFyZSB3aXRoIHJvbGVzIHJldmVyc2VkIGFzc2Vy
dF91bnJlYWNoZWQ6IEVycm9yIGluIGlmcmFtZTogSW52YWxpZFN0YXRlRXJyb3I6IFJlbW90ZSBk
ZXNjcmlwdGlvbiB0eXBlIDAgaXMgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcg
c3RhdGUgMSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgUGVyZmVjdCBuZWdvdGlhdGlv
biBnbGFyZQorUEFTUyBQZXJmZWN0IG5lZ290aWF0aW9uIGdsYXJlIHdpdGggcm9sZXMgcmV2ZXJz
ZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRmNDYyMDA3ZDY0MmIyMDU5MDkxYjgxYjMwODg2MDExNDRjZmQwMDkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgUGxhbiBCIGlzIG5vdCBzdXBwb3J0
ZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXBsYW4tYi1pcy1ub3Qtc3VwcG9ydGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmRlNmIxYjAwM2E0MTZlNzczMmEwNjBmOWY1YTgzZmY0NDYwODg2YwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXBsYW4tYi1pcy1ub3Qtc3VwcG9ydGVkLmh0bWwKQEAgLTAsMCArMSwy
OCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+PC90aXRsZT4KKzxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsK
KworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAvLyBQbGFuIEIgaXMgYSBsZWdhY3kgZmVh
dHVyZSB0aGF0IHNob3VsZCBub3QgYmUgc3VwcG9ydGVkIG9uIGEgbW9kZXJuCisgIC8vIGJyb3dz
ZXIuIFRvIHBhc3MgdGhpcyB0ZXN0IHlvdSBtdXN0IGVpdGhlciBpZ25vcmUgc2RwU2VtYW50aWNz
IGFsdG9nZXRoZXIKKyAgLy8gKGFuZCBjb25zdHJ1Y3Qgd2l0aCBVbmlmaWVkIFBsYW4gZGVzcGl0
ZSB1cyBhc2tpbmcgZm9yIFBsYW4gQikgb3IgdGhyb3cgYW4KKyAgLy8gZXhjZXB0aW9uLgorICBs
ZXQgcGMgPSBudWxsOworICB0cnkgeworICAgIHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHtz
ZHBTZW1hbnRpY3M6InBsYW4tYiJ9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3Nl
KCkpOworICB9IGNhdGNoIChlKSB7CisgICAgLy8gVGVzdCBwYXNzZWQhCisgICAgcmV0dXJuOwor
ICB9CisgIC8vIElmIHdlIGRpZCBub3QgdGhyb3csIHdlIG11c3Qgbm90IGhhdmUgZ290dGVuIHdo
YXQgd2UgYXNrZWQgZm9yLiBJZgorICAvLyBzZHBTZW1hbnRpY3MgaXMgbm90IHJlY29nbml6ZWQg
YnkgdGhlIGJyb3dzZXIgaXQgd2lsbCBiZSB1bmRlZmluZWQgaGVyZS4KKyAgYXNzZXJ0X25vdF9l
cXVhbHMocGMuZ2V0Q29uZmlndXJhdGlvbigpLnNkcFNlbWFudGljcywgInBsYW4tYiIpOworfSwg
J1BsYW4gQiBpcyBub3Qgc3VwcG9ydGVkJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tcmVsYXktY2FudmFzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJl
bGF5LWNhbnZhcy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGM3YTRhZjlhMTRhOTdi
ZmRmYWVkODgzYWNlODcwNWMyMWUyZTdkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXJlbGF5LWNhbnZhcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwg
VHdvIFBlZXJDb25uZWN0aW9ucyByZWxheWluZyBhIGNhbnZhcyBzb3VyY2UgYXNzZXJ0X2FwcHJv
eF9lcXVhbHM6IGV4cGVjdGVkIDE4My42ICsvLSAyIGJ1dCBnb3QgMTg4Ljg1CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXJlbGF5LWNhbnZhcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVs
YXktY2FudmFzLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU5Y2QwNjgyMjBkNmYwZWMyYThhNzdl
MjE1YTQwNzAyZjkxZWU3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbGF5LWNh
bnZhcy5odHRwcy5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRp
dGxlPlJlbGF5IGNhbnZhcyB2aWEgUGVlckNvbm5lY3Rpb25zPC90aXRsZT4KKzxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJD
b25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7
CisKKy8vIFRoaXMgdGVzdCBjaGVja3MgdGhhdCBjYW52YXMgY2FwdHVyZSB3b3JrcyByZWxheWVk
IGJldHdlZW4gc2V2ZXJhbCBwZWVyIGNvbm5lY3Rpb25zLgorCitmdW5jdGlvbiBHcmVlbkZyYW1l
V2ViR0wod2lkdGgsIGhlaWdodCkgeworICBjb25zdCBjYW52YXMgPQorICAgICAgT2JqZWN0LmFz
c2lnbihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSwge3dpZHRoLCBoZWlnaHR9KTsK
KyAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJ3dlYmdsJyk7CisgIGlmIChjdHggPT09
IG51bGwpIHJldHVybjsKKyAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uIGRyYXcgKCkg
eworICAgIGN0eC5jbGVhckNvbG9yKDAuMCwgMS4wLCAwLjAsIDEuMCk7CisgICAgY3R4LmNsZWFy
KGN0eC5DT0xPUl9CVUZGRVJfQklUKTsKKyAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZHJhdyk7
CisgIH0pOworICByZXR1cm4gY2FudmFzLmNhcHR1cmVTdHJlYW0oKTsKK30KKworCisKK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKworICAvLyBCdWlsZCBhIGNoYWluCisgIC8vIGNhbnZhcyAt
dHJhY2stPiBwYzEgLW5ldHdvcmstPiBwY1JlbGF5SW4gLXRyYWNrLT4KKyAgLy8gICAgICAgcGNS
ZWxheU91dCAtbmV0d29yay0+IHBjMiAtdHJhY2stPiB2aWRlbworICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7
CisgIGNvbnN0IHBjUmVsYXlJbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjUmVsYXlJbi5jbG9zZSgpKTsKKworICBjb25zdCBwY1JlbGF5T3V0ID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGNSZWxheU91
dC5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIC8vIEF0dGFjaCBjYW52YXMgdG8g
cGMxLgorICBjb25zdCBzdHJlYW0gPSBHcmVlbkZyYW1lV2ViR0woNjQwLCA0ODApOworICBjb25z
dCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOworICBwYzEuYWRkVHJhY2sodHJhY2spOwor
CisgIGNvbnN0IHYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICB2LmF1dG9w
bGF5ID0gdHJ1ZTsKKworICAvLyBTZXR1cCBwYzEtPnBjUmVsYXlJbiB2aWRlbyBzdHJlYW0uCisg
IGNvbnN0IGhhdmVUcmFja0V2ZW50MSA9IG5ldyBQcm9taXNlKHIgPT4gcGNSZWxheUluLm9udHJh
Y2sgPSByKTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGNSZWxheUluKTsKKyAgYXdh
aXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgYXdhaXQgcGNSZWxheUluLnNldFJlbW90
ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXdhaXQgcGNSZWxheUluLnNl
dExvY2FsRGVzY3JpcHRpb24oKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBj
UmVsYXlJbi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAvLyBQbHVnIG91dHB1dCBvZiBwY1JlbGF5
SW4gdG8gcGNSZWxheU91dC4KKyAgcGNSZWxheU91dC5hZGRUcmFjaygoYXdhaXQgaGF2ZVRyYWNr
RXZlbnQxKS50cmFjayk7CisKKyAgLy8gU2V0dXAgcGNSZWxheU91dC0+cGMyIHZpZGVvIHN0cmVh
bS4KKyAgY29uc3QgaGF2ZVRyYWNrRXZlbnQyID0gbmV3IFByb21pc2UociA9PiBwYzIub250cmFj
ayA9IHIpOworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGNSZWxheU91dCwgcGMyKTsKKyAgYXdh
aXQgcGNSZWxheU91dC5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIGF3YWl0IHBjMi5zZXRSZW1v
dGVEZXNjcmlwdGlvbihwY1JlbGF5T3V0LmxvY2FsRGVzY3JpcHRpb24pOworICBhd2FpdCBwYzIu
c2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhd2FpdCBwY1JlbGF5T3V0LnNldFJlbW90ZURlc2Ny
aXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAvLyBEaXNwbGF5IHBjMiByZWNlaXZl
ZCB0cmFjayBpbiB2aWRlbyBlbGVtZW50LgorICB2LnNyY09iamVjdCA9IG5ldyBNZWRpYVN0cmVh
bShbKGF3YWl0IGhhdmVUcmFja0V2ZW50MikudHJhY2tdKTsKKyAgYXdhaXQgbmV3IFByb21pc2Uo
ciA9PiB2Lm9ubG9hZGVkbWV0YWRhdGEgPSByKTsKKworICAvLyBXYWl0IHNvbWUgdGltZSB0byBl
bnN1cmUgdGhhdCBmcmFtZXMgZ290IHRocm91Z2guCisgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29s
dmUgPT4gdC5zdGVwX3RpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOworCisgIC8vIFVzZXMgSGVscGVy
LmpzIEdldFZpZGVvU2lnbmFsIHRvIHF1ZXJ5IHx2fCBwaXhlbCB2YWx1ZSBhdCBhIGNlcnRhaW4g
cG9zaXRpb24uCisgIGNvbnN0IHBpeGVsVmFsdWUgPSBnZXRWaWRlb1NpZ25hbCh2KTsKKworICAv
LyBFeHBlY3RlZCB2YWx1ZSBjb21wdXRlZCBiYXNlZCBvbiBHZXRWaWRlb1NpZ25hbCBjb2RlLCB3
aGljaCB0YWtlcyBncmVlbiBwaXhlbCBkYXRhCisgIC8vIHdpdGggY29lZmZpY2llbnQgMC43Mi4K
KyAgYXNzZXJ0X2FwcHJveF9lcXVhbHMocGl4ZWxWYWx1ZSwgMC43MioyNTUsIDIpOworICB9LCAi
VHdvIFBlZXJDb25uZWN0aW9ucyByZWxheWluZyBhIGNhbnZhcyBzb3VyY2UiKTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IGMzMTk5MGQ3MDA5ZjA4MjNjN2U3YmJlMjllYjQ3MDY5MTM2NWQ4NDEuLjFkNGI3NmQy
ZGM3MWNjMzY0NThiNjc4ZWQ3MjBjYzA2M2RlYzYxM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXJlbW90ZS10cmFjay1tdXRlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1y
ZW1vdGUtdHJhY2stbXV0ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw5IEBACiAKIEhh
cm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAogCi1GQUlMIG9udHJhY2s6IHRy
YWNrIGdvZXMgZnJvbSBtdXRlZCB0byB1bm11dGVkIGFzc2VydF90cnVlOiB0cmFjayBpcyBtdXRl
ZCBpbiBvbnRyYWNrIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1USU1FT1VUIENoYW5naW5nIHRy
YW5zY2VpdmVyIGRpcmVjdGlvbiB0byAnaW5hY3RpdmUnIG11dGVzIHRoZSByZW1vdGUgdHJhY2sg
VGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBDaGFuZ2luZyB0cmFuc2NlaXZlciBkaXJlY3Rpb24gdG8g
J3NlbmRyZWN2JyB1bm11dGVzIHRoZSByZW1vdGUgdHJhY2sKLU5PVFJVTiBwYy5jbG9zZSgpIG11
dGVzIHJlbW90ZSB0cmFja3MKK1BBU1Mgb250cmFjazogdHJhY2sgZ29lcyBmcm9tIG11dGVkIHRv
IHVubXV0ZWQKK1BBU1MgQ2hhbmdpbmcgdHJhbnNjZWl2ZXIgZGlyZWN0aW9uIHRvICdpbmFjdGl2
ZScgbXV0ZXMgdGhlIHJlbW90ZSB0cmFjaworRkFJTCBDaGFuZ2luZyB0cmFuc2NlaXZlciBkaXJl
Y3Rpb24gdG8gJ3NlbmRyZWN2JyB1bm11dGVzIHRoZSByZW1vdGUgdHJhY2sgYXNzZXJ0X3RydWU6
IE5vdCBleHBlY3RpbmcgZXZlbnQsIGJ1dCBnb3QgdW5tdXRlIGV2ZW50IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitUSU1FT1VUIHRyYW5zY2VpdmVyLnN0b3AoKSBvbiBvbmUgc2lkZSAod2l0aG91
dCByZW5lZ290aWF0aW9uKSBjYXVzZXMgbXV0ZSBldmVudHMgb24gdGhlIG90aGVyIFRlc3QgdGlt
ZWQgb3V0CitOT1RSVU4gcGMuY2xvc2UoKSBvbiBvbmUgc2lkZSBjYXVzZXMgbXV0ZSBldmVudHMg
b24gdGhlIG90aGVyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2UuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggNjJlNDMzMDBmMjEzMWM3YzM2MmIyYTM5MzAzNmY4YTY2YjQxMWFmMS4uNTM1MTA5Mzkz
ZmViODg4MzM1NDBmYTAzMzIxZTlkMjFmOTc1ZTYxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
cmVzdGFydEljZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydElj
ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTMsNiArMyw3IEBAIEZBSUwgcmVzdGFydEljZSgpIGRv
ZXMgbm90IHRyaWdnZXIgbmVnb3RpYXRpb24gYWhlYWQgb2YgaW5pdGlhbCBuZWdvdGlhdGlvbiBh
c3NlCiBQQVNTIHJlc3RhcnRJY2UoKSBoYXMgbm8gZWZmZWN0IG9uIGluaXRpYWwgbmVnb3RpYXRp
b24KIFBBU1MgcmVzdGFydEljZSgpIGZpcmVzIG5lZ290aWF0aW9ubmVlZGVkIGFmdGVyIGluaXRp
YWwgbmVnb3RpYXRpb24KIFBBU1MgcmVzdGFydEljZSgpIGNhdXNlcyBmcmVzaCB1ZnJhZ3MKK1BB
U1MgcmVzdGFydEljZSgpIHJldGFpbnMgZHRscyB0cmFuc3BvcnRzCiBQQVNTIHJlc3RhcnRJY2Uo
KSB3b3JrcyBpbiBoYXZlLWxvY2FsLW9mZmVyCiBQQVNTIHJlc3RhcnRJY2UoKSB3b3JrcyBpbiBp
bml0aWFsIGhhdmUtbG9jYWwtb2ZmZXIKIFBBU1MgcmVzdGFydEljZSgpIHdvcmtzIGluIGhhdmUt
cmVtb3RlLW9mZmVyCkBAIC0xMiw0ICsxMywxNyBAQCBQQVNTIHJlc3RhcnRJY2UoKSBpcyBzYXRp
c2ZpZWQgYnkgcmVtb3RlIElDRSByZXN0YXJ0CiBQQVNTIHJlc3RhcnRJY2UoKSB0cnVtcHMge2lj
ZVJlc3RhcnQ6IGZhbHNlfQogUEFTUyByZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcm9sbGJhY2sKIEZB
SUwgcmVzdGFydEljZSgpIHN1cnZpdmVzIHJlbW90ZSBvZmZlciBjb250YWluaW5nIHBhcnRpYWwg
cmVzdGFydCBhc3NlcnRfZmFsc2U6IFJlc3RhcnRlZCAyIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIHJlc3RhcnRJY2UoKSBoYXMgbm8gZWZmZWN0IG9uIGluaXRpYWwgbmVnb3RpYXRpb24g
KHBlcmZlY3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3RhcnRJY2UoKSBmaXJlcyBuZWdvdGlhdGlv
bm5lZWRlZCBhZnRlciBpbml0aWFsIG5lZ290aWF0aW9uIChwZXJmZWN0IG5lZ290aWF0aW9uKQor
UEFTUyByZXN0YXJ0SWNlKCkgY2F1c2VzIGZyZXNoIHVmcmFncyAocGVyZmVjdCBuZWdvdGlhdGlv
bikKK1BBU1MgcmVzdGFydEljZSgpIHJldGFpbnMgZHRscyB0cmFuc3BvcnRzIChwZXJmZWN0IG5l
Z290aWF0aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgd29ya3MgaW4gaGF2ZS1sb2NhbC1vZmZlciAo
cGVyZmVjdCBuZWdvdGlhdGlvbikKK1BBU1MgcmVzdGFydEljZSgpIHdvcmtzIGluIGluaXRpYWwg
aGF2ZS1sb2NhbC1vZmZlciAocGVyZmVjdCBuZWdvdGlhdGlvbikKK1BBU1MgcmVzdGFydEljZSgp
IHdvcmtzIGluIGhhdmUtcmVtb3RlLW9mZmVyIChwZXJmZWN0IG5lZ290aWF0aW9uKQorUEFTUyBy
ZXN0YXJ0SWNlKCkgZG9lcyBub3RoaW5nIGluIGluaXRpYWwgaGF2ZS1yZW1vdGUtb2ZmZXIgKHBl
cmZlY3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByZW1vdGUgb2Zm
ZXIgKHBlcmZlY3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3RhcnRJY2UoKSBpcyBzYXRpc2ZpZWQg
YnkgcmVtb3RlIElDRSByZXN0YXJ0IChwZXJmZWN0IG5lZ290aWF0aW9uKQorUEFTUyByZXN0YXJ0
SWNlKCkgdHJ1bXBzIHtpY2VSZXN0YXJ0OiBmYWxzZX0gKHBlcmZlY3QgbmVnb3RpYXRpb24pCitQ
QVNTIHJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByb2xsYmFjayAocGVyZmVjdCBuZWdvdGlhdGlvbikK
K0ZBSUwgcmVzdGFydEljZSgpIHN1cnZpdmVzIHJlbW90ZSBvZmZlciBjb250YWluaW5nIHBhcnRp
YWwgcmVzdGFydCAocGVyZmVjdCBuZWdvdGlhdGlvbikgYXNzZXJ0X2ZhbHNlOiBSZXN0YXJ0ZWQg
MiBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0
YXJ0SWNlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBzLmh0bWwKaW5k
ZXggOGY4YzY2MWE0MWRkMGExY2I4ZjU2YmFmODBmNmQzYjc5N2Y5ZTIyOS4uMGU0ZWNmNjRjODUz
ZmNlOWQ0ZTRhNjY4NTZmMmEwNjBmMmJkYmIzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVz
dGFydEljZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2UuaHR0cHMuaHRt
bApAQCAtMTYsMTUgKzE2LDM2IEBAIGZ1bmN0aW9uIGdldExpbmVzKHNkcCwgc3RhcnRzV2l0aCkg
ewogY29uc3QgZ2V0VWZyYWdzID0gKHtzZHB9KSA9PiBnZXRMaW5lcyhzZHAsICJhPWljZS11ZnJh
ZzoiKTsKIGNvbnN0IGdldFB3ZHMgPSAoe3NkcH0pID0+IGdldExpbmVzKHNkcCwgImE9aWNlLXB3
ZDoiKTsKIAotYXN5bmMgZnVuY3Rpb24gZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMx
LCBwYzIpIHsKLSAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0
ZU9mZmVyKCkpOworY29uc3QgbmVnb3RpYXRvcnMgPSBbCisgIHsKKyAgICB0YWc6ICIiLAorICAg
IGFzeW5jIHNldE9mZmVyKHBjKSB7CisgICAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9u
KGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCkpOworICAgIH0sCisgICAgYXN5bmMgc2V0QW5zd2VyKHBj
KSB7CisgICAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjLmNyZWF0ZUFu
c3dlcigpKTsKKyAgICB9LAorICB9LAorICB7CisgICAgdGFnOiAiIChwZXJmZWN0IG5lZ290aWF0
aW9uKSIsCisgICAgYXN5bmMgc2V0T2ZmZXIocGMpIHsKKyAgICAgIGF3YWl0IHBjLnNldExvY2Fs
RGVzY3JpcHRpb24oKTsKKyAgICB9LAorICAgIGFzeW5jIHNldEFuc3dlcihwYykgeworICAgICAg
YXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICAgIH0sCisgIH0sCitdOworCithc3lu
YyBmdW5jdGlvbiBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3Rp
YXRvcikgeworICBhd2FpdCBuZWdvdGlhdG9yLnNldE9mZmVyKHBjMSk7CiAgIGF3YWl0IHBjMi5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGF3YWl0IHBjMi5z
ZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CisgIGF3YWl0IG5l
Z290aWF0b3Iuc2V0QW5zd2VyKHBjMik7CiAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlv
bihwYzIubG9jYWxEZXNjcmlwdGlvbik7IC8vIEVuZCBvbiBwYzEuIE5vIHJhY2UKIH0KIAotYXN5
bmMgZnVuY3Rpb24gZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uU2Vjb25kKHBjMSwgcGMyKSB7Ci0g
IGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsK
K2FzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPblNlY29uZChwYzEsIHBjMiwg
bmVnb3RpYXRvcikgeworICBhd2FpdCBuZWdvdGlhdG9yLnNldE9mZmVyKHBjMSk7CiAgIGF3YWl0
IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7CiAgIGF3YWl0
IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOwogICBh
d2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihwYzEucmVtb3RlRGVzY3JpcHRpb24pOyAvLyBF
bmQgb24gcGMyLiBObyByYWNlCkBAIC02NSwzMzAgKzg2LDM5MCBAQCBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CiAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKIH0s
ICJyZXN0YXJ0SWNlKCkgZG9lcyBub3QgdHJpZ2dlciBuZWdvdGlhdGlvbiBhaGVhZCBvZiBpbml0
aWFsIG5lZ290aWF0aW9uIik7CiAKLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qg
cGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJh
dWRpbyIpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVk
ID0gcik7Ci0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJF
bmRPbkZpcnN0KHBjMSwgcGMyKTsKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0
LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSBoYXMgbm8gZWZmZWN0IG9uIGluaXRpYWwgbmVnb3Rp
YXRpb24iKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0g
IGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAg
YXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwotICBwYzEucmVz
dGFydEljZSgpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVl
ZGVkID0gcik7Ci19LCAicmVzdGFydEljZSgpIGZpcmVzIG5lZ290aWF0aW9ubmVlZGVkIGFmdGVy
IGluaXRpYWwgbmVnb3RpYXRpb24iKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBj
b25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3QgcGMyID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwot
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEuYWRkVHJhbnNjZWl2
ZXIoImF1ZGlvIik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwg
cGMyKTsKLQotICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlw
dGlvbik7Ci0gIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0
aW9uKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwot
ICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBd
LCBvbGRVZnJhZzEsICJjb250cm9sIDEiKTsKLSAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZy
YWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcyLCAiY29udHJvbCAyIik7Ci0K
LSAgcGMxLnJlc3RhcnRJY2UoKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdv
dGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJz
dChwYzEsIHBjMik7Ci0gIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERl
c2NyaXB0aW9uKTsKLSAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVz
Y3JpcHRpb24pOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJh
ZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1Vm
cmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7Ci0gIGF3YWl0IGFzc2VydE5vTmVn
b3RpYXRpb25OZWVkZWQodCwgcGMxKTsKLQotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5k
T25GaXJzdChwYzEsIHBjMik7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEu
bG9jYWxEZXNjcmlwdGlvbilbMF0sIG5ld1VmcmFnMSwgIlVuY2hhbmdlZCAxIik7Ci0gIGFzc2Vy
dF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG5ld1Vm
cmFnMiwgIlVuY2hhbmdlZCAyIik7Ci19LCAicmVzdGFydEljZSgpIGNhdXNlcyBmcmVzaCB1ZnJh
Z3MiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0gIGF3
YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdh
aXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwotCi0gIGNvbnN0IFtv
bGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW29s
ZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotCi0gIGF3YWl0IHBj
MS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKLSAgcGMxLnJl
c3RhcnRJY2UoKTsKLSAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERl
c2NyaXB0aW9uKTsKLSAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNy
ZWF0ZUFuc3dlcigpKTsKLSAgLy8gU2V2ZXJhbCB0ZXN0cyBpbiB0aGlzIGZpbGUgaW5pdGlhbGl6
ZXMgdGhlIG9ubmVnb3RpYXRpb25uZWVkZWQgbGlzdGVuZXIKLSAgLy8gYmVmb3JlIHRoZSBzZXRM
b2NhbERlc2NyaXB0aW9uKCkgb3Igc2V0UmVtb3RlRGVzY3JpcHRpb24oKSB0aGF0IHdlIGV4cGVj
dAotICAvLyB0byB0cmlnZ2VyIG5lZ290aWF0aW9uIG5lZWRlZC4gVGhpcyBhbGxvd3MgQ2hyb21l
IHRvIGV4ZXJjaXNlIHRoZXNlIHRlc3RzCi0gIC8vIHdpdGhvdXQgdGltaW5nIG91dCBkdWUgdG8g
YSBidWcgdGhhdCBjYXVzZXMgb25uZWdvdGlhdGlvbm5lZWRlZCB0byBmaXJlIHRvbwotICAvLyBl
YXJseS4KLSAgLy8gVE9ETyhodHRwczovL2NyYnVnLmNvbS85ODU3OTcpOiBPbmNlIENocm9tZSBk
b2VzIG5vdCBmaXJlIE9OTiB0b28gZWFybHksCi0gIC8vIHNpbXBseSBkbyAiYXdhaXQgbmV3IFBy
b21pc2UoLi4uKSIgaW5zdGVhZCBvZgotICAvLyAiYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9t
aXNlIiBoZXJlIGFuZCBpbiBvdGhlciB0ZXN0cyBpbiB0aGlzIGZpbGUuCi0gIGNvbnN0IG5lZ290
aWF0aW9uTmVlZGVkUHJvbWlzZSA9Ci0gICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290
aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIu
bG9jYWxEZXNjcmlwdGlvbik7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEu
bG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMSwgIlVuY2hhbmdlZCAxIik7Ci0gIGFzc2Vy
dF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVm
cmFnMiwgIlVuY2hhbmdlZCAyIik7Ci0gIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsK
LSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwotICBjb25z
dCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0
IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAgYXNzZXJ0
X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2Vk
Iik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVm
cmFnIDIgY2hhbmdlZCIpOwotICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBj
MSk7Ci19LCAicmVzdGFydEljZSgpIHdvcmtzIGluIGhhdmUtbG9jYWwtb2ZmZXIiKTsKLQotcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKLSAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9z
ZSgpKTsKLQotICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0gIGF3YWl0IG5ldyBQcm9t
aXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgcGMxLnNldExv
Y2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOwotICBwYzEucmVzdGFydElj
ZSgpOwotICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRp
b24pOwotICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5z
d2VyKCkpOwotICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQotICAgICAgbmV3IFBy
b21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBwYzEuc2V0
UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBbb2xkVWZy
YWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtvbGRVZnJh
ZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAgYXdhaXQgbmVnb3RpYXRp
b25OZWVkZWRQcm9taXNlOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChw
YzEsIHBjMik7Ci0gIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2Ny
aXB0aW9uKTsKLSAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3Jp
cHRpb24pOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEs
ICJ1ZnJhZyAxIGNoYW5nZWQiKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFn
MSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7Ci0gIGF3YWl0IGFzc2VydE5vTmVnb3Rp
YXRpb25OZWVkZWQodCwgcGMxKTsKLX0sICJyZXN0YXJ0SWNlKCkgd29ya3MgaW4gaW5pdGlhbCBo
YXZlLWxvY2FsLW9mZmVyIik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3Qg
cGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJh
dWRpbyIpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVk
ID0gcik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsK
LQotICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7
Ci0gIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsK
LQotICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIo
KSk7Ci0gIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlv
bik7Ci0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlv
bihhd2FpdCBwYzEuY3JlYXRlQW5zd2VyKCkpOwotICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFBy
b21pc2UgPQotICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOwotICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihwYzIucmVtb3RlRGVzY3JpcHRp
b24pOyAvLyBFbmQgb24gcGMxLiBObyByYWNlCi0gIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVm
cmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMSwgIlVuY2hhbmdlZCAxIik7
Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilb
MF0sIG9sZFVmcmFnMiwgIlVuY2hhbmdlZCAyIik7Ci0gIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVk
UHJvbWlzZTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIp
OwotICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7
Ci0gIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsK
LSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcg
MSBjaGFuZ2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVm
cmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOwotICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVl
ZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIHdvcmtzIGluIGhhdmUtcmVtb3RlLW9mZmVy
Iik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwot
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMyLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2Fp
dCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIoKSk7Ci0gIGF3
YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIHBj
MS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBw
YzEuY3JlYXRlQW5zd2VyKCkpOwotICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihwYzIu
cmVtb3RlRGVzY3JpcHRpb24pOyAvLyBFbmQgb24gcGMxLiBObyByYWNlCi0gIGF3YWl0IGFzc2Vy
dE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKLX0sICJyZXN0YXJ0SWNlKCkgZG9lcyBub3Ro
aW5nIGluIGluaXRpYWwgaGF2ZS1yZW1vdGUtb2ZmZXIiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewotICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMx
LmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEu
YWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9u
bmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9u
Rmlyc3QocGMxLCBwYzIpOwotCi0gIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5s
b2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxv
Y2FsRGVzY3JpcHRpb24pOwotCi0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IG5ldyBQcm9t
aXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgY29uc3QgbmVnb3RpYXRp
b25OZWVkZWRQcm9taXNlID0KLSAgICAgIG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRp
b25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uU2Vjb25kKHBj
MiwgcGMxKTsKLSAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2Ny
aXB0aW9uKVswXSwgb2xkVWZyYWcxLCAibm90aGluZyB5ZXQgMSIpOwotICBhc3NlcnRfdWZyYWdz
X2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzIsICJu
b3RoaW5nIHlldCAyIik7Ci0gIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKLSAgYXdh
aXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwotICBjb25zdCBbbmV3
VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtuZXdV
ZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAgYXNzZXJ0X3VmcmFn
c19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7Ci0g
IGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzIsIG9sZFVmcmFnMiwgInVmcmFnIDIg
Y2hhbmdlZCIpOwotICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19
LCAicmVzdGFydEljZSgpIHN1cnZpdmVzIHJlbW90ZSBvZmZlciIpOwotCi1wcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBj
b25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0g
IHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBw
YzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2Vy
RW5kT25GaXJzdChwYzEsIHBjMik7Ci0KLSAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3Mo
cGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhw
YzIubG9jYWxEZXNjcmlwdGlvbik7CisvLyBSdW4gcmVtYWluaW5nIHRlc3RzIHR3aWNlOiBvbmNl
IGZvciBlYWNoIG5lZ290aWF0b3IKKworZm9yIChjb25zdCBuZWdvdGlhdG9yIG9mIG5lZ290aWF0
b3JzKSB7CisgIGNvbnN0IHt0YWd9ID0gbmVnb3RpYXRvcjsKKworICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
Y29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7
CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAgYXdhaXQgbmV3IFByb21p
c2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIHBjMS5yZXN0YXJ0SWNl
KCk7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5l
Z290aWF0b3IpOworICAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsK
KyAgfSwgYHJlc3RhcnRJY2UoKSBoYXMgbm8gZWZmZWN0IG9uIGluaXRpYWwgbmVnb3RpYXRpb24k
e3RhZ31gKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIo
ImF1ZGlvIik7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5l
ZWRlZCA9IHIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwg
cGMyLCBuZWdvdGlhdG9yKTsKKyAgICBwYzEucmVzdGFydEljZSgpOworICAgIGF3YWl0IG5ldyBQ
cm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgfSwgYHJlc3RhcnRJ
Y2UoKSBmaXJlcyBuZWdvdGlhdGlvbm5lZWRlZCBhZnRlciBpbml0aWFsIG5lZ290aWF0aW9uJHt0
YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJh
dWRpbyIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMy
LCBuZWdvdGlhdG9yKTsKKworICAgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5s
b2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIu
bG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmly
c3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVm
cmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMSwgImNvbnRyb2wgMSIpOwor
ICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilb
MF0sIG9sZFVmcmFnMiwgImNvbnRyb2wgMiIpOworCisgICAgcGMxLnJlc3RhcnRJY2UoKTsKKyAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Cisg
ICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0
b3IpOworICAgIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0
aW9uKTsKKyAgICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlw
dGlvbik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcx
LCAidWZyYWcgMSBjaGFuZ2VkIik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1Vm
cmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7CisgICAgYXdhaXQgYXNzZXJ0Tm9O
ZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworCisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dl
ckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGFzc2VydF91ZnJhZ3NfZXF1
YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG5ld1VmcmFnMSwgIlVuY2hh
bmdlZCAxIik7CisgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2NhbERl
c2NyaXB0aW9uKVswXSwgbmV3VWZyYWcyLCAiVW5jaGFuZ2VkIDIiKTsKKyAgfSwgYHJlc3RhcnRJ
Y2UoKSBjYXVzZXMgZnJlc2ggdWZyYWdzJHt0YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgIGNvbnN0IGNvbmZpZyA9IHtidW5kbGVQb2xpY3k6ICJtYXgtYnVuZGxlIn07
CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZyk7CisgICAgY29u
c3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZyk7CisgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2Uo
KSk7CisKKyAgICBwYzEub25pY2VjYW5kaWRhdGUgPSBlID0+IHBjMi5hZGRJY2VDYW5kaWRhdGUo
ZS5jYW5kaWRhdGUpOworICAgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gcGMxLmFkZEljZUNh
bmRpZGF0ZShlLmNhbmRpZGF0ZSk7CisKKyAgICAvLyBTZWUgdGhlIGV4cGxhbmF0aW9uIGJlbG93
IGFib3V0IENocm9tZSdzIG9ubmVnb3RpYXRpb25uZWVkZWQgZmlyaW5nCisgICAgLy8gdG9vIGVh
cmx5LgorICAgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTEgPQorICAgICAgICBuZXcg
UHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAgcGMxLmFkZFRy
YW5zY2VpdmVyKCJ2aWRlbyIpOworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAg
ICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UxOworICAgIGF3YWl0IGV4Y2hhbmdlT2Zm
ZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKworICAgIGNvbnN0IFt2
aWRlb1RjLCBhdWRpb1RjXSA9IHBjMS5nZXRUcmFuc2NlaXZlcnMoKTsKKyAgICBjb25zdCBbdmlk
ZW9UcCwgYXVkaW9UcF0gPQorICAgICAgICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKCkubWFwKHRjID0+
IHRjLnNlbmRlci50cmFuc3BvcnQpOworICAgIGFzc2VydF9lcXVhbHMocGMxLmdldFRyYW5zY2Vp
dmVycygpLmxlbmd0aCwgMiwgJ3RyYW5zY2VpdmVyIGNvdW50Jyk7CisKKyAgICAvLyBPbiBDaHJv
bWUsIGl0IGlzIHBvc3NpYmxlIChsaWtlbHksIGV2ZW4pIHRoYXQgdmlkZW9UYy5zZW5kZXIudHJh
bnNwb3J0LnN0YXRlCisgICAgLy8gd2lsbCBiZSAnY29ubmVjdGVkJyBieSB0aGUgdGltZSB3ZSBn
ZXQgaGVyZS4gIFdlJ2xsIHJhY2UgMiBwcm9taXNlcyBoZXJlOgorICAgIC8vIDEuIFJlc29sdmUg
YWZ0ZXIgb25zdGF0ZWNoYW5nZSBpcyBjYWxsZWQgd2l0aCBjb25uZWN0ZWQgc3RhdGUuCisgICAg
Ly8gMi4gSWYgYWxyZWFkeSBjb25uZWN0ZWQsIHJlc29sdmUgaW1tZWRpYXRlbHkuCisgICAgYXdh
aXQgUHJvbWlzZS5yYWNlKFsKKyAgICAgIG5ldyBQcm9taXNlKHIgPT4gdmlkZW9UYy5zZW5kZXIu
dHJhbnNwb3J0Lm9uc3RhdGVjaGFuZ2UgPQorICAgICAgICAoKSA9PiB2aWRlb1RjLnNlbmRlci50
cmFuc3BvcnQuc3RhdGUgPT0gImNvbm5lY3RlZCIgJiYgcigpKSwKKyAgICAgIG5ldyBQcm9taXNl
KHIgPT4gdmlkZW9UYy5zZW5kZXIudHJhbnNwb3J0LnN0YXRlID09ICJjb25uZWN0ZWQiICYmIHIo
KSkKKyAgICBdKTsKKyAgICBhc3NlcnRfZXF1YWxzKHZpZGVvVGMuc2VuZGVyLnRyYW5zcG9ydC5z
dGF0ZSwgImNvbm5lY3RlZCIpOworCisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9u
Rmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGFzc2VydF9lcXVhbHModmlkZW9UcCwg
cGMxLmdldFRyYW5zY2VpdmVycygpWzBdLnNlbmRlci50cmFuc3BvcnQsCisgICAgICAgICAgICAg
ICAgICAnb2ZmZXIvYW5zd2VyIHJldGFpbnMgZHRscyB0cmFuc3BvcnQnKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKGF1ZGlvVHAsIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVsxXS5zZW5kZXIudHJhbnNwb3J0
LAorICAgICAgICAgICAgICAgICAgJ29mZmVyL2Fuc3dlciByZXRhaW5zIGR0bHMgdHJhbnNwb3J0
Jyk7CisKKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UyID0KKyAgICAgICAgbmV3
IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIHBjMS5yZXN0
YXJ0SWNlKCk7CisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlMjsKKyAgICBhd2Fp
dCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisK
KyAgICBjb25zdCBbbmV3VmlkZW9UcCwgbmV3QXVkaW9UcF0gPQorICAgICAgICBwYzEuZ2V0VHJh
bnNjZWl2ZXJzKCkubWFwKHRjID0+IHRjLnNlbmRlci50cmFuc3BvcnQpOworICAgIGFzc2VydF9l
cXVhbHModmlkZW9UcCwgbmV3VmlkZW9UcCwgJ2ljZSByZXN0YXJ0IHJldGFpbnMgZHRscyB0cmFu
c3BvcnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvVHAsIG5ld0F1ZGlvVHAsICdpY2UgcmVz
dGFydCByZXRhaW5zIGR0bHMgdHJhbnNwb3J0Jyk7CisgIH0sIGByZXN0YXJ0SWNlKCkgcmV0YWlu
cyBkdGxzIHRyYW5zcG9ydHMke3RhZ31gKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEu
Y2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBw
YzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBw
YzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3
ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKworICAgIGNvbnN0IFtvbGRVZnJh
ZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbb2xkVWZy
YWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgICBhd2FpdCBuZWdv
dGlhdG9yLnNldE9mZmVyKHBjMSk7CisgICAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgICBhd2FpdCBw
YzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGF3YWl0
IG5lZ290aWF0b3Iuc2V0QW5zd2VyKHBjMik7CisgICAgLy8gU2V2ZXJhbCB0ZXN0cyBpbiB0aGlz
IGZpbGUgaW5pdGlhbGl6ZXMgdGhlIG9ubmVnb3RpYXRpb25uZWVkZWQgbGlzdGVuZXIKKyAgICAv
LyBiZWZvcmUgdGhlIHNldExvY2FsRGVzY3JpcHRpb24oKSBvciBzZXRSZW1vdGVEZXNjcmlwdGlv
bigpIHRoYXQgd2UgZXhwZWN0CisgICAgLy8gdG8gdHJpZ2dlciBuZWdvdGlhdGlvbiBuZWVkZWQu
IFRoaXMgYWxsb3dzIENocm9tZSB0byBleGVyY2lzZSB0aGVzZSB0ZXN0cworICAgIC8vIHdpdGhv
dXQgdGltaW5nIG91dCBkdWUgdG8gYSBidWcgdGhhdCBjYXVzZXMgb25uZWdvdGlhdGlvbm5lZWRl
ZCB0byBmaXJlIHRvbworICAgIC8vIGVhcmx5LgorICAgIC8vIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5j
b20vOTg1Nzk3KTogT25jZSBDaHJvbWUgZG9lcyBub3QgZmlyZSBPTk4gdG9vIGVhcmx5LAorICAg
IC8vIHNpbXBseSBkbyAiYXdhaXQgbmV3IFByb21pc2UoLi4uKSIgaW5zdGVhZCBvZgorICAgIC8v
ICJhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UiIGhlcmUgYW5kIGluIG90aGVyIHRlc3Rz
IGluIHRoaXMgZmlsZS4KKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQorICAg
ICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAg
YXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAg
ICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBd
LCBvbGRVZnJhZzEsICJVbmNoYW5nZWQgMSIpOworICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdl
dFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMiwgIlVuY2hhbmdlZCAy
Iik7CisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOworICAgIGF3YWl0IGV4Y2hh
bmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBjb25z
dCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29u
c3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGFz
c2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hh
bmdlZCIpOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFn
MiwgInVmcmFnIDIgY2hhbmdlZCIpOworICAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVk
ZWQodCwgcGMxKTsKKyAgfSwgYHJlc3RhcnRJY2UoKSB3b3JrcyBpbiBoYXZlLWxvY2FsLW9mZmVy
JHt0YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRyYW5zY2VpdmVy
KCJhdWRpbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25u
ZWVkZWQgPSByKTsKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldE9mZmVyKHBjMSk7CisgICAgcGMx
LnJlc3RhcnRJY2UoKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxv
Y2FsRGVzY3JpcHRpb24pOworICAgIGF3YWl0IG5lZ290aWF0b3Iuc2V0QW5zd2VyKHBjMik7Cisg
ICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KKyAgICAgICAgbmV3IFByb21pc2Uo
ciA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IHBjMS5zZXRSZW1v
dGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW29sZFVmcmFn
MV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtvbGRVZnJh
ZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhd2FpdCBuZWdvdGlh
dGlvbk5lZWRlZFByb21pc2U7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmly
c3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZy
YWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVm
cmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxz
KG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7CisgICAgYXNzZXJ0X3Vm
cmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7
CisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworICB9LCBgcmVz
dGFydEljZSgpIHdvcmtzIGluIGluaXRpYWwgaGF2ZS1sb2NhbC1vZmZlciR7dGFnfWApOworCisg
IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Cisg
ICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0
b3IpOworCisgICAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3Jp
cHRpb24pOworICAgIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2Ny
aXB0aW9uKTsKKworICAgIGF3YWl0IG5lZ290aWF0b3Iuc2V0T2ZmZXIocGMyKTsKKyAgICBhd2Fp
dCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIHBj
MS5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0
IHBjMS5jcmVhdGVBbnN3ZXIoKSk7CisgICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNl
ID0KKyAgICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIp
OworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHBjMi5yZW1vdGVEZXNjcmlwdGlv
bik7IC8vIEVuZCBvbiBwYzEuIE5vIHJhY2UKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRV
ZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzEsICJVbmNoYW5nZWQgMSIp
OworICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlv
bilbMF0sIG9sZFVmcmFnMiwgIlVuY2hhbmdlZCAyIik7CisgICAgYXdhaXQgbmVnb3RpYXRpb25O
ZWVkZWRQcm9taXNlOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBj
MSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhw
YzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3Mo
cGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdV
ZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOworICAgIGFzc2VydF91ZnJhZ3Nf
bm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOworICAg
IGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKKyAgfSwgYHJlc3RhcnRJ
Y2UoKSB3b3JrcyBpbiBoYXZlLXJlbW90ZS1vZmZlciR7dGFnfWApOworCisgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9z
ZSgpKTsKKworICAgIHBjMi5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgICBhd2FpdCBuZWdv
dGlhdG9yLnNldE9mZmVyKHBjMik7CisgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9u
KHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBwYzEucmVzdGFydEljZSgpOworICAgIGF3YWl0
IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlQW5zd2VyKCkpOworICAg
IGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHBjMi5yZW1vdGVEZXNjcmlwdGlvbik7IC8v
IEVuZCBvbiBwYzEuIE5vIHJhY2UKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVk
KHQsIHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkgZG9lcyBub3RoaW5nIGluIGluaXRpYWwgaGF2
ZS1yZW1vdGUtb2ZmZXIke3RhZ31gKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xv
c2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBwYzEu
YWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEu
b25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJF
bmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKworICAgIGNvbnN0IFtvbGRVZnJhZzFd
ID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbb2xkVWZyYWcy
XSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgICBwYzEucmVzdGFydElj
ZSgpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQg
PSByKTsKKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQorICAgICAgICBuZXcg
UHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgZXhj
aGFuZ2VPZmZlckFuc3dlckVuZE9uU2Vjb25kKHBjMiwgcGMxLCBuZWdvdGlhdG9yKTsKKyAgICBh
c3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBv
bGRVZnJhZzEsICJub3RoaW5nIHlldCAxIik7CisgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0
VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcyLCAibm90aGluZyB5ZXQg
MiIpOworICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKKyAgICBhd2FpdCBleGNo
YW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisgICAgY29u
c3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNv
bnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBh
c3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNo
YW5nZWQiKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcyLCBvbGRVZnJh
ZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVl
ZGVkKHQsIHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcmVtb3RlIG9mZmVyJHt0
YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJh
dWRpbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVk
ZWQgPSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBj
MiwgbmVnb3RpYXRvcik7CisKKyAgICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEu
bG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMy
LmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgICBwYzIucmVz
dGFydEljZSgpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25u
ZWVkZWQgPSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25TZWNvbmQocGMy
LCBwYzEsIG5lZ290aWF0b3IpOworICAgIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBj
MS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhw
YzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1Vm
cmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7CisgICAgYXNzZXJ0X3VmcmFnc19u
b3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7CisgICAg
YXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworCisgICAgYXdhaXQgZXhj
aGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGFz
c2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG5l
d1VmcmFnMSwgIlVuY2hhbmdlZCAxIik7CisgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZy
YWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgbmV3VWZyYWcyLCAiVW5jaGFuZ2VkIDIiKTsK
KyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CisgIH0sIGByZXN0
YXJ0SWNlKCkgaXMgc2F0aXNmaWVkIGJ5IHJlbW90ZSBJQ0UgcmVzdGFydCR7dGFnfWApOworCisg
IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Cisg
ICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0
b3IpOworCisgICAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3Jp
cHRpb24pOworICAgIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2Ny
aXB0aW9uKTsKKworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgbmV3IFByb21pc2Uo
ciA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IHBjMS5zZXRMb2Nh
bERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcih7aWNlUmVzdGFydDogZmFsc2V9KSk7
CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9u
KTsKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldEFuc3dlcihwYzIpOworICAgIGF3YWl0IHBjMS5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW25l
d1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtu
ZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRf
dWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQi
KTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzIsICJ1
ZnJhZyAyIGNoYW5nZWQiKTsKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQs
IHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkgdHJ1bXBzIHtpY2VSZXN0YXJ0OiBmYWxzZX0ke3Rh
Z31gKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1
ZGlvIik7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRl
ZCA9IHIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMy
LCBuZWdvdGlhdG9yKTsKKworICAgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5s
b2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIu
bG9jYWxEZXNjcmlwdGlvbik7CisKKyAgICBwYzEucmVzdGFydEljZSgpOworICAgIGF3YWl0IG5l
dyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBu
ZWdvdGlhdG9yLnNldE9mZmVyKHBjMSk7CisgICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9t
aXNlID0KKyAgICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAicm9sbGJhY2si
fSk7CisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOworICAgIGF3YWl0IGV4Y2hh
bmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBjb25z
dCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29u
c3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGFz
c2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hh
bmdlZCIpOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFn
MiwgInVmcmFnIDIgY2hhbmdlZCIpOworICAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVk
ZWQodCwgcGMxKTsKKyAgfSwgYHJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByb2xsYmFjayR7dGFnfWAp
OworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oe2J1bmRsZVBvbGljeTogIm1heC1jb21wYXQifSk7CisgICAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHtidW5kbGVQb2xpY3k6ICJtYXgtY29tcGF0In0p
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIp
OworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlz
ZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgZXhjaGFuZ2VP
ZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworCisgICAgY29uc3Qg
b2xkVWZyYWdzMSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3Qg
b2xkVWZyYWdzMiA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3Qg
b2xkUHdkczIgPSBnZXRQd2RzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAgIHBjMS5yZXN0
YXJ0SWNlKCk7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5l
ZWRlZCA9IHIpOworCisgICAgLy8gRW5naW5lZXIgYSBwYXJ0aWFsIElDRSByZXN0YXJ0IGZyb20g
cGMyCisgICAgcGMyLnJlc3RhcnRJY2UoKTsKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldE9mZmVy
KHBjMik7CisgICAgeworICAgICAgbGV0IHt0eXBlLCBzZHB9ID0gcGMyLmxvY2FsRGVzY3JpcHRp
b247CisgICAgICAvLyBSZXN0b3JlIGJvdGggb2xkIGljZS11ZnJhZyBhbmQgb2xkIGljZS1wd2Qg
dG8gdHJpZ2dlciBhIHBhcnRpYWwgcmVzdGFydAorICAgICAgc2RwID0gc2RwLnJlcGxhY2UoZ2V0
VWZyYWdzKHtzZHB9KVswXSwgb2xkVWZyYWdzMlswXSk7CisgICAgICBzZHAgPSBzZHAucmVwbGFj
ZShnZXRQd2RzKHtzZHB9KVswXSwgb2xkUHdkczJbMF0pOworICAgICAgY29uc3QgbmV3VWZyYWdz
MiA9IGdldFVmcmFncyh7c2RwfSk7CisgICAgICBjb25zdCBuZXdQd2RzMiA9IGdldFB3ZHMoe3Nk
cH0pOworICAgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMobmV3VWZyYWdzMlswXSwgb2xkVWZyYWdz
MlswXSwgImNvbnRyb2wgdWZyYWcgbWF0Y2giKTsKKyAgICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxz
KG5ld1B3ZHMyWzBdLCBvbGRQd2RzMlswXSwgImNvbnRyb2wgcHdkIG1hdGNoIik7CisgICAgICBh
c3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWdzMlsxXSwgb2xkVWZyYWdzMlsxXSwgImNv
bnRyb2wgdWZyYWcgbm9uLW1hdGNoIik7CisgICAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMo
bmV3UHdkczJbMV0sIG9sZFB3ZHMyWzFdLCAiY29udHJvbCBwd2Qgbm9uLW1hdGNoIik7CisgICAg
ICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGUsIHNkcH0pOworICAgIH0KKyAg
ICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQorICAgICAgICBuZXcgUHJvbWlzZShy
ID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgbmVnb3RpYXRvci5z
ZXRBbnN3ZXIocGMxKTsKKyAgICBjb25zdCBuZXdVZnJhZ3MxID0gZ2V0VWZyYWdzKHBjMS5sb2Nh
bERlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhuZXdVZnJhZ3MxWzBdLCBv
bGRVZnJhZ3MxWzBdLCAiVW5jaGFuZ2VkIDEiKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVh
bHMobmV3VWZyYWdzMVsxXSwgb2xkVWZyYWdzMVsxXSwgIlJlc3RhcnRlZCAyIik7CisgICAgYXdh
aXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOworICAgIGF3YWl0IG5lZ290aWF0b3Iuc2V0T2Zm
ZXIocGMxKTsKKyAgICBjb25zdCBuZXdlc3RVZnJhZ3MxID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERl
c2NyaXB0aW9uKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3ZXN0VWZyYWdzMVsw
XSwgb2xkVWZyYWdzMVswXSwgIlJlc3RhcnRlZCAxIik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3Rf
ZXF1YWxzKG5ld2VzdFVmcmFnczFbMV0sIG9sZFVmcmFnczFbMV0sICJSZXN0YXJ0ZWQgMiIpOwor
ICAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKKyAgfSwgYHJlc3Rh
cnRJY2UoKSBzdXJ2aXZlcyByZW1vdGUgb2ZmZXIgY29udGFpbmluZyBwYXJ0aWFsIHJlc3RhcnQk
e3RhZ31gKTsKIAotICBwYzEucmVzdGFydEljZSgpOwotICBwYzIucmVzdGFydEljZSgpOwotICBh
d2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPblNlY29uZChwYzIsIHBjMSk7Ci0gIGNvbnN0IFtu
ZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW25l
d1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBhc3NlcnRfdWZy
YWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsK
LSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcg
MiBjaGFuZ2VkIik7Ci0gIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsK
LQotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0gIGFz
c2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG5l
d1VmcmFnMSwgIlVuY2hhbmdlZCAxIik7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFn
cyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG5ld1VmcmFnMiwgIlVuY2hhbmdlZCAyIik7Ci0g
IGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKLX0sICJyZXN0YXJ0SWNl
KCkgaXMgc2F0aXNmaWVkIGJ5IHJlbW90ZSBJQ0UgcmVzdGFydCIpOwotCi1wcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBj
b25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0g
IHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBw
YzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2Vy
RW5kT25GaXJzdChwYzEsIHBjMik7Ci0KLSAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3Mo
cGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhw
YzIubG9jYWxEZXNjcmlwdGlvbik7Ci0KLSAgcGMxLnJlc3RhcnRJY2UoKTsKLSAgYXdhaXQgbmV3
IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBwYzEu
c2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoe2ljZVJlc3RhcnQ6IGZh
bHNlfSkpOwotICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3Jp
cHRpb24pOwotICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRl
QW5zd2VyKCkpOwotICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVz
Y3JpcHRpb24pOwotICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNj
cmlwdGlvbik7Ci0gIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2Ny
aXB0aW9uKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcx
LCAidWZyYWcgMSBjaGFuZ2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJh
ZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOwotICBhd2FpdCBhc3NlcnROb05lZ290
aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIHRydW1wcyB7aWNlUmVzdGFy
dDogZmFsc2V9Iik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcGMxID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIp
OwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7
Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLQotICBj
b25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNv
bnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLQotICBw
YzEucmVzdGFydEljZSgpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0
aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBj
MS5jcmVhdGVPZmZlcigpKTsKLSAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KLSAg
ICAgIG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdh
aXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKLSAgYXdhaXQg
bmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5k
T25GaXJzdChwYzEsIHBjMik7Ci0gIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5s
b2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxv
Y2FsRGVzY3JpcHRpb24pOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBv
bGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxz
KG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7Ci0gIGF3YWl0IGFzc2Vy
dE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKLX0sICJyZXN0YXJ0SWNlKCkgc3Vydml2ZXMg
cm9sbGJhY2siKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oe2J1bmRsZVBvbGljeTogIm1heC1jb21wYXQifSk7Ci0gIGNv
bnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7YnVuZGxlUG9saWN5OiAibWF4LWNvbXBh
dCJ9KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsK
LSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+
IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3
ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLQotICBjb25zdCBvbGRVZnJhZ3MxID0gZ2V0VWZyYWdz
KHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3Qgb2xkVWZyYWdzMiA9IGdldFVmcmFncyhw
YzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IG9sZFB3ZHMyID0gZ2V0UHdkcyhwYzIubG9j
YWxEZXNjcmlwdGlvbik7Ci0KLSAgcGMxLnJlc3RhcnRJY2UoKTsKLSAgYXdhaXQgbmV3IFByb21p
c2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotCi0gIC8vIEVuZ2luZWVyIGEg
cGFydGlhbCBJQ0UgcmVzdGFydCBmcm9tIHBjMgotICBwYzIucmVzdGFydEljZSgpOwotICBhd2Fp
dCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIoKSk7Ci0gIHsK
LSAgICBsZXQge3R5cGUsIHNkcH0gPSBwYzIubG9jYWxEZXNjcmlwdGlvbjsKLSAgICAvLyBSZXN0
b3JlIGJvdGggb2xkIGljZS11ZnJhZyBhbmQgb2xkIGljZS1wd2QgdG8gdHJpZ2dlciBhIHBhcnRp
YWwgcmVzdGFydAotICAgIHNkcCA9IHNkcC5yZXBsYWNlKGdldFVmcmFncyh7c2RwfSlbMF0sIG9s
ZFVmcmFnczJbMF0pOwotICAgIHNkcCA9IHNkcC5yZXBsYWNlKGdldFB3ZHMoe3NkcH0pWzBdLCBv
bGRQd2RzMlswXSk7Ci0gICAgY29uc3QgbmV3VWZyYWdzMiA9IGdldFVmcmFncyh7c2RwfSk7Ci0g
ICAgY29uc3QgbmV3UHdkczIgPSBnZXRQd2RzKHtzZHB9KTsKLSAgICBhc3NlcnRfdWZyYWdzX2Vx
dWFscyhuZXdVZnJhZ3MyWzBdLCBvbGRVZnJhZ3MyWzBdLCAiY29udHJvbCB1ZnJhZyBtYXRjaCIp
OwotICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKG5ld1B3ZHMyWzBdLCBvbGRQd2RzMlswXSwgImNv
bnRyb2wgcHdkIG1hdGNoIik7Ci0gICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFn
czJbMV0sIG9sZFVmcmFnczJbMV0sICJjb250cm9sIHVmcmFnIG5vbi1tYXRjaCIpOwotICAgIGFz
c2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdQd2RzMlsxXSwgb2xkUHdkczJbMV0sICJjb250cm9s
IHB3ZCBub24tbWF0Y2giKTsKLSAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5
cGUsIHNkcH0pOwotICB9Ci0gIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9Ci0gICAg
ICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0
IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVBbnN3ZXIoKSk7Ci0gIGNv
bnN0IG5ld1VmcmFnczEgPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBhc3Nl
cnRfdWZyYWdzX2VxdWFscyhuZXdVZnJhZ3MxWzBdLCBvbGRVZnJhZ3MxWzBdLCAiVW5jaGFuZ2Vk
IDEiKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnczFbMV0sIG9sZFVmcmFn
czFbMV0sICJSZXN0YXJ0ZWQgMiIpOwotICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2U7
Ci0gIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigp
KTsKLSAgY29uc3QgbmV3ZXN0VWZyYWdzMSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlv
bik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdlc3RVZnJhZ3MxWzBdLCBvbGRVZnJh
Z3MxWzBdLCAiUmVzdGFydGVkIDEiKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld2Vz
dFVmcmFnczFbMV0sIG9sZFVmcmFnczFbMV0sICJSZXN0YXJ0ZWQgMiIpOwotICBhd2FpdCBhc3Nl
cnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIHN1cnZpdmVz
IHJlbW90ZSBvZmZlciBjb250YWluaW5nIHBhcnRpYWwgcmVzdGFydCIpOworfQogCiA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tYW5zd2VyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tYW5zd2VyLWV4cGVj
dGVkLnR4dAppbmRleCBmNzkzOGE1NGYxZTNkMGE0YTFiOTVmNjE2MTVlNTA5MmNkOGQ4YWMyLi5k
NTZhYTliYTI0ZGY4ZTI2YWY1OWIxMTEwMjQxZDE5MWVkOGM1NWQwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLWFuc3dlci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1hbnN3ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcg
KzEsNyBAQAogCiBQQVNTIHNldExvY2FsRGVzY3JpcHRpb24oKSB3aXRoIHZhbGlkIGFuc3dlciBz
aG91bGQgc3VjY2VlZAogRkFJTCBzZXRMb2NhbERlc2NyaXB0aW9uKCkgd2l0aCB0eXBlIGFuc3dl
ciBhbmQgbnVsbCBzZHAgc2hvdWxkIHVzZSBsYXN0QW5zd2VyIGdlbmVyYXRlZCBmcm9tIGNyZWF0
ZUFuc3dlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJPcGVyYXRpb25FcnJvcjogRXhwZWN0IGxpbmU6IHY9IgotRkFJTCBzZXRMb2NhbERlc2Ny
aXB0aW9uKCkgd2l0aCBhbnN3ZXIgbm90IGNyZWF0ZWQgYnkgb3duIGNyZWF0ZUFuc3dlcigpIHNo
b3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IgcHJvbWlzZV9yZWplY3Rz
X2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIk9w
ZXJhdGlvbkVycm9yOiBGYWlsZWQgdG8gc2V0IGxvY2FsIGFuc3dlciBzZHA6IEZhaWxlZCB0byBh
cHBseSB0aGUgZGVzY3JpcHRpb24gZm9yIG09IHNlY3Rpb24gd2l0aCBtaWQ9JzAnOiBMb2NhbCBm
aW5nZXJwcmludCBkb2VzIG5vdCBtYXRjaCBpZGVudGl0eS4gRXhwZWN0ZWQ6IHNoYS0yNTYgQjA6
MUI6NDM6ODc6OEE6QzU6MDE6QUQ6NUM6MTU6Nzk6NUI6QTE6OTQ6NDI6NTM6MTQ6RjQ6M0Q6MkE6
QkE6Mzc6RDE6NUI6NDU6OUM6MkY6Rjk6M0U6OUQ6MTM6MEIgR290OiBzaGEtMjU2IEZCOjZFOkNF
OjdDOjE0OkZFOkMxOjUzOjZBOjk1OkVCOjBFOjlGOjcxOjc5OjQ2OkYxOjY3OjQyOjkwOjk3OkNE
OkMxOjQxOjVFOjdFOkM4OkJCOkM3OjQ0OjMwOjg2IiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlv
biBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAw
LCBleHBlY3RlZCAxMworRkFJTCBzZXRMb2NhbERlc2NyaXB0aW9uKCkgd2l0aCBhbnN3ZXIgbm90
IGNyZWF0ZWQgYnkgb3duIGNyZWF0ZUFuc3dlcigpIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlk
TW9kaWZpY2F0aW9uRXJyb3IgcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIk9wZXJhdGlvbkVycm9yOiBGYWlsZWQgdG8g
c2V0IGxvY2FsIGFuc3dlciBzZHA6IEZhaWxlZCB0byBhcHBseSB0aGUgZGVzY3JpcHRpb24gZm9y
IG09IHNlY3Rpb24gd2l0aCBtaWQ9JzAnOiBMb2NhbCBmaW5nZXJwcmludCBkb2VzIG5vdCBtYXRj
aCBpZGVudGl0eS4gRXhwZWN0ZWQ6IHNoYS0yNTYgQUM6OTI6QTg6NDM6ODU6NDY6Njc6MEM6MTU6
RkE6N0U6QTI6RTM6Q0M6MTE6OTM6RUE6N0U6NEU6Nzc6MEU6QzE6RDg6RkY6QTc6NkE6MDU6OEU6
M0M6NTA6NDA6QzIgR290OiBzaGEtMjU2IDgyOkRCOjVDOjBFOjcwOjdFOkQ5OjVEOkJBOkEwOjE4
OkExOjcxOkYxOjlDOjYyOkY0OjQ1OkI2OjJGOjNCOjY5OjM3OjJEOjg5OjNEOjNDOkVEOjc5OjA2
OkI4OjBBIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkTW9kaWZpY2F0aW9uRXJy
b3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAwLCBleHBlY3RlZCAxMwogRkFJTCBDYWxs
aW5nIHNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSBmcm9tIHN0YWJsZSBzdGF0ZSBzaG91bGQg
cmVqZWN0IHdpdGggSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIHByb21pc2VfcmVqZWN0c19kb206
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJJbnZhbGlk
U3RhdGVFcnJvcjogRmFpbGVkIHRvIHNldCBsb2NhbCBhbnN3ZXIgc2RwOiBubyBwZW5kaW5nIHJl
bW90ZSBkZXNjcmlwdGlvbi4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRNb2Rp
ZmljYXRpb25FcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDExLCBleHBlY3RlZCAx
MwogRkFJTCBDYWxsaW5nIHNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSBmcm9tIGhhdmUtbG9j
YWwtb2ZmZXIgc3RhdGUgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRNb2RpZmljYXRpb25FcnJv
ciBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0i
IHRocmV3IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IEZhaWxlZCB0byBzZXQgbG9jYWwgYW5z
d2VyIHNkcDogbm8gcGVuZGluZyByZW1vdGUgZGVzY3JpcHRpb24uIiB0aGF0IGlzIG5vdCBhIERP
TUV4Y2VwdGlvbiBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBl
cXVhbCB0byAxMSwgZXhwZWN0ZWQgMTMKIFBBU1MgU2V0dGluZyBwcmV2aW91c2x5IGdlbmVyYXRl
ZCBhbnN3ZXIgYWZ0ZXIgYSBjYWxsIHRvIGNyZWF0ZU9mZmVyIHNob3VsZCB3b3JrCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLW9mZmVyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tb2ZmZXItZXhwZWN0ZWQudHh0CmluZGV4
IDY5YjExOTFiMGM3ZGJlMmZjYjlhNjI1M2JjYzk2NDdiNDc4NTY1OWQuLjY4ZGIyNjY2YzRkNGFi
MWQ0NDBmNmY1NTA5YzMyMWQwNzE0N2Y3OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExv
Y2FsRGVzY3JpcHRpb24tb2ZmZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExv
Y2FsRGVzY3JpcHRpb24tb2ZmZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNT
IHNldExvY2FsRGVzY3JpcHRpb24gd2l0aCB2YWxpZCBvZmZlciBzaG91bGQgc3VjY2VlZAogRkFJ
TCBzZXRMb2NhbERlc2NyaXB0aW9uIHdpdGggdHlwZSBvZmZlciBhbmQgbnVsbCBzZHAgc2hvdWxk
IHVzZSBsYXN0T2ZmZXIgZ2VuZXJhdGVkIGZyb20gY3JlYXRlT2ZmZXIgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiT3BlcmF0aW9uRXJyb3I6IEV4
cGVjdCBsaW5lOiB2PSIKLUZBSUwgc2V0TG9jYWxEZXNjcmlwdGlvbigpIHdpdGggb2ZmZXIgbm90
IGNyZWF0ZWQgYnkgb3duIGNyZWF0ZU9mZmVyKCkgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRN
b2RpZmljYXRpb25FcnJvciBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiT3BlcmF0aW9uRXJyb3I6IEZhaWxlZCB0byBz
ZXQgbG9jYWwgb2ZmZXIgc2RwOiBGYWlsZWQgdG8gYXBwbHkgdGhlIGRlc2NyaXB0aW9uIGZvciBt
PSBzZWN0aW9uIHdpdGggbWlkPScwJzogTG9jYWwgZmluZ2VycHJpbnQgZG9lcyBub3QgbWF0Y2gg
aWRlbnRpdHkuIEV4cGVjdGVkOiBzaGEtMjU2IDg4OjQzOkIyOjk1OjQ5OkRFOkMyOkE3Ojc3OjVF
OkVDOjIyOjZGOkQ0OjNFOkI2OkQ0OkZEOjk2OjI0OjJCOjc3OjZGOjE4Ojg1OjRCOkY4OjhBOkJD
OjMyOjQ2OjJGIEdvdDogc2hhLTI1NiAxNDpEQzoyNzo3QTowMDo3Mzo4Mzo4NToyMTo4QjoyQTo4
MTo4RjpGOTowNDowMTpEMzozMTo1NDo2ODo3RDozNTo5Qzo2QTpBMjpGOToxRDowQjo0Qzo4RTo5
MDoyRCIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52YWxpZE1vZGlmaWNhdGlvbkVycm9y
OiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMCwgZXhwZWN0ZWQgMTMKK0ZBSUwgc2V0TG9j
YWxEZXNjcmlwdGlvbigpIHdpdGggb2ZmZXIgbm90IGNyZWF0ZWQgYnkgb3duIGNyZWF0ZU9mZmVy
KCkgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRNb2RpZmljYXRpb25FcnJvciBwcm9taXNlX3Jl
amVjdHNfZG9tOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVj
dCAiT3BlcmF0aW9uRXJyb3I6IEZhaWxlZCB0byBzZXQgbG9jYWwgb2ZmZXIgc2RwOiBGYWlsZWQg
dG8gYXBwbHkgdGhlIGRlc2NyaXB0aW9uIGZvciBtPSBzZWN0aW9uIHdpdGggbWlkPScwJzogTG9j
YWwgZmluZ2VycHJpbnQgZG9lcyBub3QgbWF0Y2ggaWRlbnRpdHkuIEV4cGVjdGVkOiBzaGEtMjU2
IDYxOkMxOkE0OkQ2OjE3OjZBOjVCOkFDOjcxOjc0OkY3OjQwOjNDOjZCOjMxOkQyOjREOjVFOjdE
OkE0OkIzOjZCOjk5OjM1OjcxOjg1OjEyOkU1OjE4OkEyOjZBOjQ3IEdvdDogc2hhLTI1NiAzRDpG
QToxMjo3NDoyQzpFODpCRTo2Mzo3RTpDMzpERTpBOTpDRDo3NzozNjo0RDpBMjpDRjo0Qjo0Rjo3
QTpFQzo1Qjo1MToxMjo4MTo2Mzo1MjowNjpENjoyMTo0QSIgdGhhdCBpcyBub3QgYSBET01FeGNl
cHRpb24gSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwg
dG8gMCwgZXhwZWN0ZWQgMTMKIEZBSUwgU2V0IGNyZWF0ZWQgb2ZmZXIgb3RoZXIgdGhhbiBsYXN0
IG9mZmVyIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IgYXNzZXJ0
X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVh
Y2hhYmxlIGNvZGUKIFBBU1MgQ3JlYXRpbmcgYW5kIHNldHRpbmcgb2ZmZXIgbXVsdGlwbGUgdGlt
ZXMgc2hvdWxkIHN1Y2NlZWQKIFBBU1MgU2V0dGluZyBwcmV2aW91c2x5IGdlbmVyYXRlZCBvZmZl
ciBhZnRlciBhIGNhbGwgdG8gY3JlYXRlQW5zd2VyIHNob3VsZCB3b3JrCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXByYW5zd2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXItZXhwZWN0ZWQudHh0CmluZGV4
IDEwMjY0ZWI2ZTQxNjc3ZjRjYTk5NDU0YmYyODYzMDljN2ZjYWM2M2EuLjY5ODZlM2UwYzE0ODYz
N2ZiYzA3ODE3YzYxZWQ2ODMzMjY0OGNlZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExv
Y2FsRGVzY3JpcHRpb24tcHJhbnN3ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNl
dExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAog
CiBGQUlMIHNldExvY2FsRGVzY3JpcHRpb24ocHJhbnN3ZXIpIGZyb20gc3RhYmxlIHN0YXRlIHNo
b3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvciBwcm9taXNlX3JlamVjdHNfZG9tOiBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiT3BlcmF0aW9u
RXJyb3I6IEZhaWxlZCB0byBzZXQgbG9jYWwgcHJhbnN3ZXIgc2RwOiBDYWxsZWQgaW4gd3Jvbmcg
c3RhdGU6IHN0YWJsZSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52YWxpZFN0YXRlRXJy
b3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAwLCBleHBlY3RlZCAxMQotRkFJTCBzZXRM
b2NhbERlc2NyaXB0aW9uKHByYW5zd2VyKSBzaG91bGQgc3VjY2VlZCBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bl0iCitQQVNTIHNldExvY2FsRGVzY3JpcHRpb24ocHJhbnN3ZXIpIHNob3VsZCBzdWNjZWVkCiBQ
QVNTIHNldExvY2FsRGVzY3JpcHRpb24ocHJhbnN3ZXIpIGNhbiBiZSBhcHBsaWVkIG11bHRpcGxl
IHRpbWVzIHdoaWxlIHN0aWxsIGluIGhhdmUtbG9jYWwtcHJhbnN3ZXIKIFBBU1Mgc2V0TG9jYWxE
ZXNjcmlwdGlvbihhbnN3ZXIpIGZyb20gaGF2ZS1sb2NhbC1wcmFuc3dlciBzdGF0ZSBzaG91bGQg
c3VjY2VlZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXBy
YW5zd2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXByYW5zd2VyLmh0
bWwKaW5kZXggZTQyOTZhZWYxMzlmMTlkMDgyMjljOTQ1MGY2MWMzMDcwNjE0N2QyNC4uMDE4NDVm
MDliMTZjZTFmZjAzNzQ3ZjAzOWRlZTVkZTg5YjE5YTVhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wcmFuc3dlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNl
dExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbApAQCAtMTAzLDcgKzEwMyw2IEBACiAgICAg
ICAgICAgYXNzZXJ0X3Nlc3Npb25fZGVzY19zaW1pbGFyKHBjLnBlbmRpbmdMb2NhbERlc2NyaXB0
aW9uLCBwcmFuc3dlcik7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5jdXJyZW50TG9jYWxE
ZXNjcmlwdGlvbiwgbnVsbCk7CiAKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnBlbmRpbmdS
ZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCk7CiAKICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KHN0YXRlcywgWydoYXZlLXJlbW90ZS1vZmZlcicsICdoYXZlLWxvY2FsLXByYW5zd2VyJ10pOwog
ICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9u
LXRyYWNrcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlw
dGlvbi10cmFja3MuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzNmNjNmZlZTMwYmRh
OTMxZjg3M2Y4MmQ1NGQ1NTk1OTMyYTBhZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1zZXRSZW1vdGVEZXNjcmlwdGlvbi10cmFja3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTYgQEAKKworUEFTUyBhZGRUcmFjaygpIHdpdGggYSB0cmFjayBhbmQgbm8gc3RyZWFtIG1h
a2VzIG9udHJhY2sgZmlyZSB3aXRoIGEgdHJhY2sgYW5kIG5vIHN0cmVhbS4KK1BBU1MgYWRkVHJh
Y2soKSB3aXRoIGEgdHJhY2sgYW5kIGEgc3RyZWFtIG1ha2VzIG9udHJhY2sgZmlyZSB3aXRoIGEg
dHJhY2sgYW5kIGEgc3RyZWFtLgorUEFTUyBvbnRyYWNrIGZpcmVzIGJlZm9yZSBzZXRSZW1vdGVE
ZXNjcmlwdGlvbiByZXNvbHZlcy4KK1BBU1MgYWRkVHJhY2soKSB3aXRoIHR3byB0cmFja3MgYW5k
IG9uZSBzdHJlYW0gbWFrZXMgb250cmFjayBmaXJlIHR3aWNlIHdpdGggdGhlIHRyYWNrcyBhbmQg
c2hhcmVkIHN0cmVhbS4KK1BBU1MgYWRkVHJhY2soKSBmb3IgYW4gZXhpc3Rpbmcgc3RyZWFtIG1h
a2VzIHN0cmVhbS5vbmFkZHRyYWNrIGZpcmUuCitQQVNTIHN0cmVhbS5vbmFkZHRyYWNrIGZpcmVz
IGJlZm9yZSBzZXRSZW1vdGVEZXNjcmlwdGlvbiByZXNvbHZlcy4KK1BBU1MgYWRkVHJhY2soKSB3
aXRoIGEgdHJhY2sgYW5kIHR3byBzdHJlYW1zIG1ha2VzIG9udHJhY2sgZmlyZSB3aXRoIGEgdHJh
Y2sgYW5kIHR3byBzdHJlYW1zLgorUEFTUyBvbnRyYWNrJ3MgcmVjZWl2ZXIgbWF0Y2hlcyBnZXRS
ZWNlaXZlcnMoKS4KK1BBU1MgcmVtb3ZlVHJhY2soKSBkb2VzIG5vdCByZW1vdmUgdGhlIHJlY2Vp
dmVyLgorUEFTUyByZW1vdmVUcmFjaygpIG1ha2VzIHN0cmVhbS5vbnJlbW92ZXRyYWNrIGZpcmUg
YW5kIHRoZSB0cmFjayB0byBiZSByZW1vdmVkIGZyb20gdGhlIHN0cmVhbS4KK1BBU1Mgc3RyZWFt
Lm9ucmVtb3ZldHJhY2sgZmlyZXMgYmVmb3JlIHNldFJlbW90ZURlc2NyaXB0aW9uIHJlc29sdmVz
LgorUEFTUyByZW1vdmVUcmFjaygpIG1ha2VzIHRyYWNrLm9ubXV0ZSBmaXJlIGFuZCB0aGUgdHJh
Y2sgdG8gYmUgbXV0ZWQuCitQQVNTIHRyYWNrLm9ubXV0ZSBmaXJlcyBiZWZvcmUgc2V0UmVtb3Rl
RGVzY3JpcHRpb24gcmVzb2x2ZXMuCitQQVNTIHJlbW92ZVRyYWNrKCkgdHdpY2UgaXMgc2FmZS4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwUGFyYW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIwNzY1NzgyNWJkODIxYWU4ZGY1ZmNhMDNiMDJmZTUzOWViN2I3MDYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRlZ3JhZGF0aW9uUHJlZmVyZW5jZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACisKK0ZBSUwgc2V0UGFyYW1ldGVycyB3aXRoIGRlZ3JhZGF0aW9uUHJl
ZmVyZW5jZSBzZXQgc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X25vdF9lcXVhbHM6IEV4cGVjdCBzZW5k
ZXIgcGFyYW0ucnRjcC5jbmFtZSB0byBiZSBzZXQgZ290IGRpc2FsbG93ZWQgdmFsdWUgdW5kZWZp
bmVkCitGQUlMIHNldFBhcmFtZXRlcnMgd2l0aCBkZWdyYWRhdGlvblByZWZlcmVuY2UgdW5zZXQg
c2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X25vdF9lcXVhbHM6IEV4cGVjdCBzZW5kZXIgcGFyYW0ucnRj
cC5jbmFtZSB0byBiZSBzZXQgZ290IGRpc2FsbG93ZWQgdmFsdWUgdW5kZWZpbmVkCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJz
LWRlZ3JhZGF0aW9uUHJlZmVyZW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyYzkyYmMxYzA4MTRmMjk0
ZTFiOTE1M2ZlYmM3Njg4NmNmMmZkYjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRl
Z3JhZGF0aW9uUHJlZmVyZW5jZS5odG1sCkBAIC0wLDAgKzEsODcgQEAKKzwhZG9jdHlwZSBodG1s
PgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENSdHBQYXJhbWV0ZXJzIGRlZ3JhZGF0
aW9uUHJlZmVyZW5jZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iZGljdGlvbmFyeS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlJUQ1J0cFBhcmFtZXRlcnMtaGVscGVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICAvLyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBm
b2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgorICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRj
LXBjL2FyY2hpdmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG1sCisKKyAgLy8gVGhlIGZvbGxvd2luZyBo
ZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENSdHBQYXJhbWV0ZXJzLWhlbHBlci5q
czoKKyAgLy8gICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMKKworICAvKgorICAgIDUuMi4g
IFJUQ1J0cFNlbmRlciBJbnRlcmZhY2UKKyAgICAgIGludGVyZmFjZSBSVENSdHBTZW5kZXIgewor
ICAgICAgICBQcm9taXNlPHZvaWQ+ICAgICAgICAgICBzZXRQYXJhbWV0ZXJzKG9wdGlvbmFsIFJU
Q1J0cFBhcmFtZXRlcnMgcGFyYW1ldGVycyk7CisgICAgICAgIFJUQ1J0cFBhcmFtZXRlcnMgICAg
ICAgIGdldFBhcmFtZXRlcnMoKTsKKyAgICAgIH07CisKKyAgICAgIGRpY3Rpb25hcnkgUlRDUnRw
UGFyYW1ldGVycyB7CisgICAgICAgIERPTVN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRyYW5zYWN0aW9uSWQ7CisgICAgICAgIHNlcXVlbmNlPFJUQ1J0cEVuY29kaW5nUGFy
YW1ldGVycz4gICAgICAgIGVuY29kaW5nczsKKyAgICAgICAgc2VxdWVuY2U8UlRDUnRwSGVhZGVy
RXh0ZW5zaW9uUGFyYW1ldGVycz4gaGVhZGVyRXh0ZW5zaW9uczsKKyAgICAgICAgUlRDUnRjcFBh
cmFtZXRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgcnRjcDsKKyAgICAgICAgc2VxdWVuY2U8
UlRDUnRwQ29kZWNQYXJhbWV0ZXJzPiAgICAgICAgICAgY29kZWNzOworICAgICAgICBSVENEZWdy
YWRhdGlvblByZWZlcmVuY2UgICAgICAgICAgICAgICAgICBkZWdyYWRhdGlvblByZWZlcmVuY2U7
CisgICAgICB9OworCisgICAgICBlbnVtIFJUQ0RlZ3JhZGF0aW9uUHJlZmVyZW5jZSB7CisgICAg
ICAgICJtYWludGFpbi1mcmFtZXJhdGUiLAorICAgICAgICAibWFpbnRhaW4tcmVzb2x1dGlvbiIs
CisgICAgICAgICJiYWxhbmNlZCIKKyAgICAgIH07CisKKyAgICAgIC0gZGVncmFkYXRpb25QcmVm
ZXJlbmNlIGlzIHNldCB0byB0aGUgbGFzdCB2YWx1ZSBwYXNzZWQgaW50byBzZXRQYXJhbWV0ZXJz
LAorICAgICAgICBvciB0aGUgZGVmYXVsdCB2YWx1ZSBvZiAiYmFsYW5jZWQiIGlmIHNldFBhcmFt
ZXRlcnMgaGFzbid0IGJlZW4gY2FsbGVkLgorICAgKi8KKworICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0IHsgc2VuZGVyIH0gPSBwYy5hZGRUcmFu
c2NlaXZlcignYXVkaW8nKTsKKworICAgIGNvbnN0IHBhcmFtID0gc2VuZGVyLmdldFBhcmFtZXRl
cnMoKTsKKyAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0pOworCisgICAgYXNz
ZXJ0X2VxdWFscyhwYXJhbS5kZWdyYWRhdGlvblByZWZlcmVuY2UsICdiYWxhbmNlZCcsCisgICAg
ICAnRXhwZWN0IGluaXRpYWwgcGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNlIHRvIGJlIGJhbGFu
Y2VkJyk7CisKKyAgICBwYXJhbS5kZWdyYWRhdGlvblByZWZlcmVuY2UgPSAnbWFpbnRhaW4tZnJh
bWVyYXRlJzsKKworICAgIHJldHVybiBwYy5zZXRQYXJhbWV0ZXJzKHBhcmFtKQorICAgIC50aGVu
KCgpID0+IHsKKyAgICAgIGNvbnN0IHBhcmFtID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKKyAg
ICAgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhwYXJhbSk7CisKKyAgICAgIGFzc2VydF9l
cXVhbHMocGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNlLCAnbWFpbnRhaW4tZnJhbWVyYXRlJyk7
CisgICAgfSk7CisgIH0sICdzZXRQYXJhbWV0ZXJzIHdpdGggZGVncmFkYXRpb25QcmVmZXJlbmNl
IHNldCBzaG91bGQgc3VjY2VlZCcpOworCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMuY2xvc2UoKSk7CisgICAgY29uc3QgeyBzZW5kZXIgfSA9IHBjLmFkZFRyYW5zY2VpdmVyKCdh
dWRpbycpOworCisgICAgY29uc3QgcGFyYW0gPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOworICAg
IHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhwYXJhbSk7CisKKyAgICBhc3NlcnRfZXF1YWxz
KHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSwgJ2JhbGFuY2VkJywKKyAgICAgICdFeHBlY3Qg
aW5pdGlhbCBwYXJhbS5kZWdyYWRhdGlvblByZWZlcmVuY2UgdG8gYmUgYmFsYW5jZWQnKTsKKwor
ICAgIHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSA9IHVuZGVmaW5lZDsKKworICAgIHJldHVy
biBwYy5zZXRQYXJhbWV0ZXJzKHBhcmFtKQorICAgIC50aGVuKCgpID0+IHsKKyAgICAgIGNvbnN0
IHBhcmFtID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKKyAgICAgIHZhbGlkYXRlU2VuZGVyUnRw
UGFyYW1ldGVycyhwYXJhbSk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMocGFyYW0uZGVncmFkYXRp
b25QcmVmZXJlbmNlLCB1bmRlZmluZWQpOworICAgIH0pOworICB9LCAnc2V0UGFyYW1ldGVycyB3
aXRoIGRlZ3JhZGF0aW9uUHJlZmVyZW5jZSB1bnNldCBzaG91bGQgc3VjY2VlZCcpOworCis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldERpcmVjdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBUcmFuc2NlaXZlci1zZXREaXJlY3Rpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5Nzlj
NWE2ZTE2MDIzMWRiZTU1NDI2NDM1MjU4NDA3ZGM4ODJlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBU
cmFuc2NlaXZlci1zZXREaXJlY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitG
QUlMIHNldERpcmVjdGlvbiBzaG91bGQgY2hhbmdlIHRyYW5zY2VpdmVyLmRpcmVjdGlvbiB0cmFu
c2NlaXZlci5zZXREaXJlY3Rpb24gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndHJhbnNjZWl2ZXIu
c2V0RGlyZWN0aW9uKCdyZWN2b25seScpJywgJ3RyYW5zY2VpdmVyLnNldERpcmVjdGlvbicgaXMg
dW5kZWZpbmVkKQorRkFJTCBzZXREaXJlY3Rpb24gd2l0aCBzYW1lIGRpcmVjdGlvbiBzaG91bGQg
aGF2ZSBubyBlZmZlY3QgdHJhbnNjZWl2ZXIuc2V0RGlyZWN0aW9uIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ3RyYW5zY2VpdmVyLnNldERpcmVjdGlvbignc2VuZG9ubHknKScsICd0cmFuc2NlaXZl
ci5zZXREaXJlY3Rpb24nIGlzIHVuZGVmaW5lZCkKK0ZBSUwgc2V0RGlyZWN0aW9uIHNob3VsZCBj
aGFuZ2UgdHJhbnNjZWl2ZXIuZGlyZWN0aW9uIGluZGVwZW5kZW50IG9mIHRyYW5zY2VpdmVyLmN1
cnJlbnREaXJlY3Rpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInJlY3Zvbmx5IiBidXQgZ290
ICJpbmFjdGl2ZSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0RGlyZWN0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBUcmFuc2NlaXZlci1zZXREaXJlY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmNiZmY1ZDk4NTg2
ODQwYWI5YzM3YTFlMWUwNWYyNjI1NjA4NDhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2
ZXItc2V0RGlyZWN0aW9uLmh0bWwKQEAgLTAsMCArMSw5NSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1J0cFRyYW5zY2VpdmVyLnByb3RvdHlwZS5z
ZXREaXJlY3Rpb248L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgLy8gVGVzdCBpcyBiYXNl
ZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBkcmFmdDoKKyAgLy8gaHR0cHM6Ly9yYXdnaXQuY29t
L3czYy93ZWJydGMtcGMvY2M4ZDgwZjQ1NWI4NmM4MDQxZDYzYmNlYjhiNDU3ZjQ1YzcyYWE4OS93
ZWJydGMuaHRtbAorCisgIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2Fs
bGVkIGZyb20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgorICAvLyBnZW5lcmF0ZUFuc3dl
cgorCisgIC8qCisgICAgNS40LiAgUlRDUnRwVHJhbnNjZWl2ZXIgSW50ZXJmYWNlCisgICAgICBp
bnRlcmZhY2UgUlRDUnRwVHJhbnNjZWl2ZXIgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
UlRDUnRwVHJhbnNjZWl2ZXJEaXJlY3Rpb24gIGRpcmVjdGlvbjsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFJUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uPyBjdXJyZW50RGlyZWN0aW9uOwor
ICAgICAgICB2b2lkIHNldERpcmVjdGlvbihSVENSdHBUcmFuc2NlaXZlckRpcmVjdGlvbiBkaXJl
Y3Rpb24pOworICAgICAgICAuLi4KKyAgICAgIH07CisgICAqLworCisgICAvKgorICAgIDUuNC4g
IHNldERpcmVjdGlvbgorICAgICAgNC4gIFNldCB0cmFuc2NlaXZlcidzIFtbRGlyZWN0aW9uXV0g
c2xvdCB0byBuZXdEaXJlY3Rpb24uCisgICAqLworICB0ZXN0KHQgPT4geworICAgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5h
ZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRp
cmVjdGlvbiwgJ3NlbmRyZWN2Jyk7CisgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5jdXJy
ZW50RGlyZWN0aW9uLCBudWxsKTsKKworICAgIHRyYW5zY2VpdmVyLnNldERpcmVjdGlvbigncmVj
dm9ubHknKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3JlY3Zv
bmx5Jyk7CisgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCBu
dWxsLAorICAgICAgJ0V4cGVjdCB0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIHRvIG5vdCBj
aGFuZ2UnKTsKKworICB9LCAnc2V0RGlyZWN0aW9uIHNob3VsZCBjaGFuZ2UgdHJhbnNjZWl2ZXIu
ZGlyZWN0aW9uJyk7CisKKyAgIC8qCisgICAgNS40LiAgc2V0RGlyZWN0aW9uCisgICAgICAzLiAg
SWYgbmV3RGlyZWN0aW9uIGlzIGVxdWFsIHRvIHRyYW5zY2VpdmVyJ3MgW1tEaXJlY3Rpb25dXSBz
bG90LCBhYm9ydAorICAgICAgICAgIHRoZXNlIHN0ZXBzLgorICAgKi8KKyAgdGVzdCh0ID0+IHsK
KyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHRyYW5z
Y2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywgeyBkaXJlY3Rpb246ICdzZW5kb25s
eScgfSk7CisgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdzZW5kb25s
eScpOworICAgIHRyYW5zY2VpdmVyLnNldERpcmVjdGlvbignc2VuZG9ubHknKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3NlbmRvbmx5Jyk7CisKKyAgfSwgJ3Nl
dERpcmVjdGlvbiB3aXRoIHNhbWUgZGlyZWN0aW9uIHNob3VsZCBoYXZlIG5vIGVmZmVjdCcpOwor
CisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgICAgY29uc3Qg
dHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7IGRpcmVjdGlvbjogJ3Jl
Y3Zvbmx5JyB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3Jl
Y3Zvbmx5Jyk7CisgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9u
LCBudWxsKTsKKworICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcigpCisgICAgLnRoZW4ob2ZmZXIg
PT4KKyAgICAgIHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpCisgICAgICAudGhlbigoKSA9
PiBnZW5lcmF0ZUFuc3dlcihvZmZlcikpKQorICAgIC50aGVuKGFuc3dlciA9PiBwYy5zZXRSZW1v
dGVEZXNjcmlwdGlvbihhbnN3ZXIpKQorICAgIC50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9l
cXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgJ3JlY3Zvbmx5Jyk7CisgICAgICB0
cmFuc2NlaXZlci5zZXREaXJlY3Rpb24oJ3NlbmRyZWN2Jyk7CisgICAgICBhc3NlcnRfZXF1YWxz
KHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3NlbmRyZWN2Jyk7CisgICAgICBhc3NlcnRfZXF1YWxz
KHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24sICdyZWN2b25seScpOworICAgIH0pOworICB9
LCAnc2V0RGlyZWN0aW9uIHNob3VsZCBjaGFuZ2UgdHJhbnNjZWl2ZXIuZGlyZWN0aW9uIGluZGVw
ZW5kZW50IG9mIHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24nKTsKKworICAvKgorICAgIFRP
RE8KKyAgICAgICAgQ2FsbHMgdG8gc2V0RGlyZWN0aW9uKCkgZG8gbm90IHRha2UgZWZmZWN0IGlt
bWVkaWF0ZWx5LiBJbnN0ZWFkLCBmdXR1cmUgY2FsbHMKKyAgICAgICAgdG8gY3JlYXRlT2ZmZXIg
YW5kIGNyZWF0ZUFuc3dlciBtYXJrIHRoZSBjb3JyZXNwb25kaW5nIG1lZGlhIGRlc2NyaXB0aW9u
IGFzCisgICAgICAgIHNlbmRyZWN2LCBzZW5kb25seSwgcmVjdm9ubHkgb3IgaW5hY3RpdmUgYXMg
ZGVmaW5lZCBpbiBbSlNFUF0gKHNlY3Rpb24gNS4yLjIuCisgICAgICAgIGFuZCBzZWN0aW9uIDUu
My4yLikuCisKKyAgICBUZXN0ZWQgaW4gUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5l
ZWRlZC5odG1sCisgICAgICA1LjQuICBzZXREaXJlY3Rpb24KKyAgICAgICAgNi4gIFVwZGF0ZSB0
aGUgbmVnb3RpYXRpb24tbmVlZGVkIGZsYWcgZm9yIGNvbm5lY3Rpb24uCisKKyAgICBDb3ZlcmFn
ZSBSZXBvcnQKKyAgICAgIFRlc3RlZCAgICAgICAgNgorICAgICAgTm90IFRlc3RlZCAgICAxCisg
ICAgICBVbnRlc3RhYmxlICAgIDAKKyAgICAgIFRvdGFsICAgICAgICAgNworICAgKi8KKworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5z
Y2VpdmVyLXN0b3AtZXhwZWN0ZWQudHh0CmluZGV4IDBlYmJmZTRmNzJlMjU3M2E4M2UzYmMwMGQ3
ZmE2NzQxZjNiNzAyZTAuLjBlYmE2OGI1YWU3ODU2NWI3NTk1YjQ3MzlhNDlhNTdkNWI0YWM4NTIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2Vp
dmVyLXN0b3AtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDExIEBACiAKIFBBU1MgQSB0cmFuc2Nl
aXZlciBhZGRlZCBhbmQgc3RvcHBlZCBiZWZvcmUgdGhlIGluaXRpYWwgb2ZmZXIgZ2VuZXJhdGlv
biBzaG91bGQgbm90IHRyaWdnZXIgYW4gb2ZmZXIgbS1zZWN0aW9uIGdlbmVyYXRpb24KK1BBU1Mg
QSB0cmFuc2NlaXZlciBhZGRlZCBhbmQgc3RvcHBlZCBzaG91bGQgbm90IGNyYXNoIHdoZW4gZ2V0
dGluZyByZWNlaXZlcidzIHRyYW5zcG9ydAogUEFTUyBEdXJpbmcgcmVuZWdvdGlhdGlvbiwgYWRk
aW5nIGFuZCBzdG9wcGluZyBhIHRyYW5zY2VpdmVyIHNob3VsZCBub3QgdHJpZ2dlciBhIHJlbmVn
b3RpYXRlZCBvZmZlciBtLXNlY3Rpb24gZ2VuZXJhdGlvbgogUEFTUyBBIHN0b3BwZWQgc2VuZG9u
bHkgdHJhbnNjZWl2ZXIgc2hvdWxkIGdlbmVyYXRlIGFuIGluYWN0aXZlIG0tc2VjdGlvbiBpbiB0
aGUgb2ZmZXIKIFBBU1MgQSBzdG9wcGVkIGluYWN0aXZlIHRyYW5zY2VpdmVyIHNob3VsZCBnZW5l
cmF0ZSBhbiBpbmFjdGl2ZSBtLXNlY3Rpb24gaW4gdGhlIG9mZmVyCiBQQVNTIElmIGEgdHJhbnNj
ZWl2ZXIgaXMgc3RvcHBlZCBsb2NhbGx5LCBzZXR0aW5nIGEgbG9jYWxseSBnZW5lcmF0ZWQgYW5z
d2VyIHNob3VsZCBzdGlsbCB3b3JrCiBQQVNTIElmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCBy
ZW1vdGVseSwgc2V0dGluZyBhIGxvY2FsbHkgZ2VuZXJhdGVkIGFuc3dlciBzaG91bGQgc3RpbGwg
d29yawogRkFJTCBJZiBhIHRyYW5zY2VpdmVyIGlzIHN0b3BwZWQsIHRyYW5zY2VpdmVycywgc2Vu
ZGVycyBhbmQgcmVjZWl2ZXJzIHNob3VsZCBkaXNhcHBlYXIgYWZ0ZXIgb2ZmZXIvYW5zd2VyIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIDAgYnV0IGdvdCAxCi1GQUlMIElmIGEgdHJhbnNjZWl2ZXIg
aXMgc3RvcHBlZCwgdHJhbnNjZWl2ZXJzIHNob3VsZCBlbmQgdXAgaW4gc3RhdGUgc3RvcHBlZCBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaW5hY3RpdmUiIGJ1dCBnb3QgInN0b3BwZWQiCitGQUlM
IElmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCwgdHJhbnNjZWl2ZXJzIHNob3VsZCBlbmQgdXAg
aW4gc3RhdGUgc3RvcHBlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic3RvcHBlZCIgYnV0IGdv
dCAiaW5hY3RpdmUiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5z
Y2VpdmVyLXN0b3AuaHRtbAppbmRleCA0ZjNhOWNlODVmYTI0NGJjNjczNDQ3ZmEzODlmNDRiZGMz
ODFiMjMwLi43NjZiMzRkN2IxMjBmMGUyMTRhYzAyOGNkMWY1YjgyYzljNzgwNjJjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBUcmFuc2NlaXZlci1zdG9wLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC5odG1sCkBA
IC0yMSw2ICsyMSwxOCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpPT4gewogICAgIGFzc2VydF90
cnVlKG9mZmVyLnNkcC5pbmNsdWRlcygibT12aWRlbyIpLCAib2ZmZXIgc2hvdWxkIGNvbnRhaW4g
YSB2aWRlbyBtLXNlY3Rpb24iKTsKIH0sICJBIHRyYW5zY2VpdmVyIGFkZGVkIGFuZCBzdG9wcGVk
IGJlZm9yZSB0aGUgaW5pdGlhbCBvZmZlciBnZW5lcmF0aW9uIHNob3VsZCBub3QgdHJpZ2dlciBh
biBvZmZlciBtLXNlY3Rpb24gZ2VuZXJhdGlvbiIpOwogCitwcm9taXNlX3Rlc3QoYXN5bmMgKHQp
PT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJh
dWRpbyIsIHsgZGlyZWN0aW9uOiAic2VuZG9ubHkiIH0pOworICAgIHBjMS5hZGRUcmFuc2NlaXZl
cigidmlkZW8iKTsKKyAgICBhc3NlcnRfZXF1YWxzKG51bGwsIHBjMS5nZXRUcmFuc2NlaXZlcnMo
KVsxXS5yZWNlaXZlci50cmFuc3BvcnQpOworCisgICAgcGMxLmdldFRyYW5zY2VpdmVycygpWzFd
LnN0b3AoKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKVsxXS5yZWNl
aXZlci50cmFuc3BvcnQsIG51bGwpOworfSwgIkEgdHJhbnNjZWl2ZXIgYWRkZWQgYW5kIHN0b3Bw
ZWQgc2hvdWxkIG5vdCBjcmFzaCB3aGVuIGdldHRpbmcgcmVjZWl2ZXIncyB0cmFuc3BvcnQiKTsK
KwogcHJvbWlzZV90ZXN0KGFzeW5jICh0KT0+IHsKICAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
QEAgLTEzNiw4ICsxNDgsOCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgcGMyVHJh
bnNjZWl2ZXIgPSBwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF07CiAgIHBjMS5nZXRUcmFuc2NlaXZl
cnMoKVswXS5zdG9wKCk7CiAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwot
ICBhc3NlcnRfZXF1YWxzKCdzdG9wcGVkJywgcGMxVHJhbnNjZWl2ZXIuZGlyZWN0aW9uKTsKLSAg
YXNzZXJ0X2VxdWFscygnc3RvcHBlZCcsIHBjMlRyYW5zY2VpdmVyLmRpcmVjdGlvbik7CisgIGFz
c2VydF9lcXVhbHMocGMxVHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAnc3RvcHBlZCcpOworICBhc3Nl
cnRfZXF1YWxzKHBjMlRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3N0b3BwZWQnKTsKIH0sICdJZiBh
IHRyYW5zY2VpdmVyIGlzIHN0b3BwZWQsIHRyYW5zY2VpdmVycyBzaG91bGQgZW5kIHVwIGluIHN0
YXRlIHN0b3BwZWQnKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbAppbmRleCBjOWRjZTQ1ZDczODg0YmNlNzRm
MTY0YmEzMDZjZTY3YmNjNzM5MjA1Li43NzMyM2I1MDNhYmQ3ZGMxMmU1ODk0YWJjZTI4ZGE1N2E5
YjllOTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2Vp
dmVyLmh0dHBzLmh0bWwKQEAgLTkyLDEyICs5MiwxMCBAQAogCiAgIGNvbnN0IHRyaWNrbGUgPSAo
dCwgcGMxLCBwYzIpID0+IHsKICAgICBwYzEub25pY2VjYW5kaWRhdGUgPSB0LnN0ZXBfZnVuYyhh
c3luYyBlID0+IHsKLSAgICAgIGlmIChlLmNhbmRpZGF0ZSkgewotICAgICAgICB0cnkgewotICAg
ICAgICAgIGF3YWl0IHBjMi5hZGRJY2VDYW5kaWRhdGUoZS5jYW5kaWRhdGUpOwotICAgICAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsICJhZGRJY2VDYW5kaWRh
dGUgdGhyZXcgZXJyb3I6ICIgKyBlLm5hbWUpOwotICAgICAgICB9CisgICAgICB0cnkgeworICAg
ICAgICBhd2FpdCBwYzIuYWRkSWNlQ2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsKKyAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsICJhZGRJY2VDYW5kaWRhdGUgdGhy
ZXcgZXJyb3I6ICIgKyBlLm5hbWUpOwogICAgICAgfQogICAgIH0pOwogICB9OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
U3RhdHMtaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDU3RhdHMtaGVscGVyLmpzCmluZGV4IDgxYWJlMjQ1NmU5NGJiODRlNGQ1
NmM5NzgxZGMzMDJhNTAyNDkwZTUuLjMzY2JmNGE5MzNiZDM3NTUzYTg1OTVlMDY5MmY5NzE3ZTE0
NWVjYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1N0YXRzLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTdGF0cy1oZWxwZXIuanMKQEAgLTIw
Nyw4ICsyMDcsOSBAQCBmdW5jdGlvbiB2YWxpZGF0ZUNvZGVjU3RhdHMoc3RhdHNSZXBvcnQsIHN0
YXRzKSB7CiAKICAgYXNzZXJ0X3N0cmluZ19maWVsZChzdGF0cywgJ21pbWVUeXBlJyk7CiAgIGFz
c2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdjbG9ja1JhdGUnKTsKLSAgYXNzZXJ0X3Vu
c2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2NoYW5uZWxzJyk7Ci0KKyAgaWYgKHN0YXRzLmtpbmQg
PT09ICdhdWRpbycpIHsKKyAgICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnY2hh
bm5lbHMnKTsKKyAgfQogICBhc3NlcnRfc3RyaW5nX2ZpZWxkKHN0YXRzLCAnc2RwRm10cExpbmUn
KTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwtZW1wdHlzdHJpbmctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZGF0YWNoYW5u
ZWwtZW1wdHlzdHJpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjNzI2OGY1ZDE3MmM2MzE1MWIyMWNlYWYzMDkwN2YxM2ZkMTE3OTYzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2RhdGFjaGFubmVsLWVtcHR5c3RyaW5nLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotCi1QQVNTIENhbiBzZW5kIGVt
cHR5IHN0cmluZ3MgYWNyb3NzIGEgV2ViUlRDIGRhdGEgY2hhbm5lbC4KLU1lc3NhZ2VzIGV4Y2hh
bmdlZAotCi1TZW50OiBbZW1wdHkgc3RyaW5nXQotU2VudDogImRvbmUiCi1SZWNlaXZlZDogW2Vt
cHR5IHN0cmluZ10KLVJlY2VpdmVkOiAiZG9uZSIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwtZW1wdHlz
dHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL2RhdGFjaGFubmVsLWVtcHR5c3RyaW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQ1NmJhYzczNjdlNmY5MDM0ZjgzYmJlZTY5OTgzMTNiNzg5YjhjMGQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwtZW1wdHlzdHJp
bmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExMCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4K
LTwhLS0KLVRoaXMgdGVzdCBjcmVhdGVzIGEgZGF0YSBjaGFubmVsIGJldHdlZW4gdHdvIGxvY2Fs
IFBlZXJDb25uZWN0aW9uIGluc3RhbmNlcwotYW5kIGVuc3VyZXMgdGhhdCBhbiBlbXB0eSBzdHJp
bmcgc2VudCBieSBvbmUgaXMgcmVjZWl2ZWQgYnkgdGhlIHNlY29uZC4KLS0tPgotCi08aHRtbD4K
LTxoZWFkPgotICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD1VVEYtOCI+Ci0gIDx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBEYXRhIENo
YW5uZWwgRW1wdHkgU3RyaW5nIFRlc3Q8L3RpdGxlPgotPC9oZWFkPgotPGJvZHk+Ci0gIDxkaXYg
aWQ9ImxvZyI+PC9kaXY+Ci0gIDxoMj5NZXNzYWdlcyBleGNoYW5nZWQ8L2gyPgotICA8ZGl2IGlk
PSJtc2ciPjwvZGl2PgotCi0gIDwhLS0gVGhlc2UgZmlsZXMgYXJlIGluIHBsYWNlIHdoZW4gZXhl
Y3V0aW5nIG9uIFczQy4gLS0+Ci0gIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gIHZh
ciB0ZXN0ID0gYXN5bmNfdGVzdCgnQ2FuIHNlbmQgZW1wdHkgc3RyaW5ncyBhY3Jvc3MgYSBXZWJS
VEMgZGF0YSBjaGFubmVsLicpOwotCi0gIHZhciBnRmlyc3RDb25uZWN0aW9uID0gbnVsbDsKLSAg
dmFyIGdTZWNvbmRDb25uZWN0aW9uID0gbnVsbDsKLSAgdmFyIHNlbmRDaGFubmVsID0gbnVsbDsK
LSAgdmFyIHJlY2VpdmVDaGFubmVsID0gbnVsbDsKLQotICB2YXIgb25SZWNlaXZlQ2hhbm5lbCA9
IGZ1bmN0aW9uIChldmVudCkgewotICAgIHJlY2VpdmVDaGFubmVsID0gZXZlbnQuY2hhbm5lbDsK
LSAgICByZWNlaXZlQ2hhbm5lbC5vbm1lc3NhZ2UgPSBvblJlY2VpdmVNZXNzYWdlOwotICB9Owot
Ci0KLSAgLy8gV2hlbiB0aGUgZGF0YSBjaGFubmVsIGlzIG9wZW4sIHNlbmQgYW4gZW1wdHkgc3Ry
aW5nIG1lc3NhZ2UKLSAgLy8gZm9sbG93ZWQgYnkgYSBtZXNzYWdlIHRoYXQgY29udGFpbnMgdGhl
IHN0cmluZyAiZG9uZSIuCi0gIHZhciBvblNlbmRDaGFubmVsT3BlbiA9IHRlc3Quc3RlcF9mdW5j
KGZ1bmN0aW9uIChldmVudCkgewotICAgIHZhciBtc2dFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdtc2cnKTsKLSAgICBzZW5kQ2hhbm5lbC5zZW5kKCcnKTsKLSAgICBtc2dFbC5pbm5lckhU
TUwgKz0gJ1NlbnQ6IFtlbXB0eSBzdHJpbmddPGJyPic7Ci0gICAgc2VuZENoYW5uZWwuc2VuZCgn
ZG9uZScpOwotICAgIG1zZ0VsLmlubmVySFRNTCArPSAnU2VudDogImRvbmUiPGJyPic7Ci0gIH0p
OwotCi0gIC8vIENoZWNrIHRoZSBtZXNzYWdlcyByZWNlaXZlZCBvbiB0aGUgb3RoZXIgc2lkZS4K
LSAgLy8gVGhlcmUgc2hvdWxkIGJlIGFuIGVtcHR5IHN0cmluZyBtZXNzYWdlIGZvbGxvd2VkIGJ5
IGEgbWVzc2FnZSB0aGF0Ci0gIC8vIGNvbnRhaW5zIHRoZSBzdHJpbmcgImRvbmUiLgotICAvLyBQ
YXNzL0ZhaWwgdGhlIHRlc3QgYWNjb3JkaW5nIHRvIHRoZSBtZXNzYWdlcyByZWNlaXZlZAotICB2
YXIgZW1wdHlNZXNzYWdlUmVjZWl2ZWQgPSBmYWxzZTsKLSAgdmFyIG9uUmVjZWl2ZU1lc3NhZ2Ug
PSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICB2YXIgbXNnRWwgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnbXNnJyk7Ci0gICAgbXNnRWwuaW5uZXJIVE1MICs9ICdSZWNl
aXZlZDogJyArCi0gICAgICAgIChldmVudC5kYXRhID8gJyInICsgZXZlbnQuZGF0YSArICciJyA6
ICdbZW1wdHkgc3RyaW5nXScpICsgJzxicj4nOwotICAgIGlmIChlbXB0eU1lc3NhZ2VSZWNlaXZl
ZCkgewotICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC5kYXRhLCAnZG9uZScsICdUaGUgImRvbmUi
IG1lc3NhZ2Ugd2FzIG5vdCByZWNlaXZlZCcpOwotICAgICAgdGVzdC5kb25lKCk7Ci0gICAgfQot
ICAgIGVsc2UgewotICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC5kYXRhLCAnJywgJ0VtcHR5IG1l
c3NhZ2Ugbm90IHJlY2VpdmVkJyk7Ci0gICAgICBlbXB0eU1lc3NhZ2VSZWNlaXZlZCA9IHRydWU7
Ci0gICAgfQotICB9KTsKLQotICBmdW5jdGlvbiBleGNoYW5nZUljZShwYykgewotICAgICByZXR1
cm4gZnVuY3Rpb24oZSkgewotICAgICAgIGlmIChlLmNhbmRpZGF0ZSkgewotICAgICAgICAgIHBj
LmFkZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7Ci0gICAgICAgfQotICAgICB9OwotICB9Ci0K
LSAgZnVuY3Rpb24gZXhjaGFuZ2VEZXNjcmlwdGlvbihwYzEsIHBjMikgewotICAgICByZXR1cm4g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgcmV0dXJuIHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIu
bG9jYWxEZXNjcmlwdGlvbik7Ci0gICAgIH07Ci0gIH0KLQotICB0ZXN0LnN0ZXAoZnVuY3Rpb24o
KSB7Ci0gICAgZ0ZpcnN0Q29ubmVjdGlvbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxsKTsK
LSAgICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IGdGaXJzdENvbm5lY3Rpb24uY2xvc2UoKSk7Ci0K
LSAgICBnU2Vjb25kQ29ubmVjdGlvbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxsKTsKLSAg
ICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IGdTZWNvbmRDb25uZWN0aW9uLmNsb3NlKCkpOwotCi0g
ICAgZ0ZpcnN0Q29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9IGV4Y2hhbmdlSWNlKGdTZWNvbmRD
b25uZWN0aW9uKTsKLSAgICBnU2Vjb25kQ29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9IGV4Y2hh
bmdlSWNlKGdGaXJzdENvbm5lY3Rpb24pOwotCi0gICAgZ1NlY29uZENvbm5lY3Rpb24ub25kYXRh
Y2hhbm5lbCA9IG9uUmVjZWl2ZUNoYW5uZWw7Ci0KLSAgICAvLyBOb3RlIHRoZSBkYXRhIGNoYW5u
ZWwgd2lsbCBwcmVzZXJ2ZSB0aGUgb3JkZXIgb2YgbWVzc2FnZXMKLSAgICAvLyBleGNoYW5nZWQg
b3ZlciBpdCBieSBkZWZhdWx0LgotICAgIHNlbmRDaGFubmVsID0gZ0ZpcnN0Q29ubmVjdGlvbi5j
cmVhdGVEYXRhQ2hhbm5lbCgnc2VuZERhdGFDaGFubmVsJyk7Ci0gICAgc2VuZENoYW5uZWwub25v
cGVuID0gb25TZW5kQ2hhbm5lbE9wZW47Ci0KLSAgICBnRmlyc3RDb25uZWN0aW9uLmNyZWF0ZU9m
ZmVyKCkKLSAgICAudGhlbihnRmlyc3RDb25uZWN0aW9uLnNldExvY2FsRGVzY3JpcHRpb24uYmlu
ZChnRmlyc3RDb25uZWN0aW9uKSkKLSAgICAudGhlbihleGNoYW5nZURlc2NyaXB0aW9uKGdTZWNv
bmRDb25uZWN0aW9uLCBnRmlyc3RDb25uZWN0aW9uKSkKLSAgICAudGhlbihmdW5jdGlvbigpIHsK
LSAgICAgIHJldHVybiBnU2Vjb25kQ29ubmVjdGlvbi5jcmVhdGVBbnN3ZXIoKTsKLSAgICB9KQot
ICAgIC50aGVuKGdTZWNvbmRDb25uZWN0aW9uLnNldExvY2FsRGVzY3JpcHRpb24uYmluZChnU2Vj
b25kQ29ubmVjdGlvbikpCi0gICAgLnRoZW4oZXhjaGFuZ2VEZXNjcmlwdGlvbihnRmlyc3RDb25u
ZWN0aW9uLCBnU2Vjb25kQ29ubmVjdGlvbikpCi0gICAgLmNhdGNoKHRlc3Quc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoJ0Vycm9yICcgKyBlLm5hbWUgKyAn
OiAnICsgZS5tZXNzYWdlKTsKLSAgICAgfSkpOwotICB9KTsKLTwvc2NyaXB0PgotCi08L2JvZHk+
Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL2dldHN0YXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9nZXRzdGF0cy5odG1sCmluZGV4IDA5NTBhMzc0
YzNjZDhhNDRjYmI4YmZmYzI5OTFmYzZkYzk1NDE3YzguLmQ2YTY5MmJiNzg2MGI5YzZiZDc2OTli
YTRlOTllYTgwMTA5MjJjMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2dldHN0YXRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0c3RhdHMuaHRtbApAQCAt
MjcsMTYgKzI3LDExIEBAIFRoaXMgdGVzdCB1c2VzIGRhdGEgb25seSwgYW5kIHRodXMgZG9lcyBu
b3QgcmVxdWlyZSBmYWtlIG1lZGlhIGRldmljZXMuCiAgIHZhciBnU2Vjb25kQ29ubmVjdGlvbiA9
IG51bGw7CiAKICAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9GaXJzdCA9IHRlc3Quc3RlcF9mdW5jKGZ1
bmN0aW9uKGV2ZW50KSB7Ci0gICAgLy8gSWYgZXZlbnQuY2FuZGlkYXRlIGlzIG51bGwgPSBubyBt
b3JlIGNhbmRpZGF0ZXMuCi0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ1NlY29u
ZENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQorICAg
IGdTZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwogICB9
KTsKIAogICB2YXIgb25JY2VDYW5kaWRhdGVUb1NlY29uZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ0ZpcnN0Q29u
bmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ0Zp
cnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKICAgfSk7CiAK
ICAgdmFyIGdldFN0YXRzUmVjb3JkQnlUeXBlID0gZnVuY3Rpb24oc3RhdHMsIHR5cGUpIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL2lkZW50aXR5LWhlbHBlci5zdWIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9pZGVudGl0eS1oZWxwZXIuc3ViLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZlNTM4MzgwNjQ4YmVhNDFjNGNhMjA1N2ZmNjY2ZDYxMWNjODM1NDMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9p
ZGVudGl0eS1oZWxwZXIuc3ViLmpzCkBAIC0wLDAgKzEsNzAgQEAKKyd1c2Ugc3RyaWN0JzsKKwor
LyoKKyAgSW4gd2ViLXBsYXRmb3JtLXRlc3QsIGEgbnVtYmVyIG9mIGRvbWFpbnMgYXJlIHJlcXVp
cmVkIHRvIGJlIHNldCB1cCBsb2NhbGx5LgorICBUaGUgbGlzdCBpcyBhdmFpbGFibGUgYXQgZG9j
cy9fd3JpdGluZy10ZXN0cy9zZXJ2ZXItZmVhdHVyZXMubWQuIFRoZQorICBhcHByb3ByaWF0ZSBo
b3N0cyBmaWxlIGVudHJpZXMgY2FuIGJlIGdlbmVyYXRlZCB3aXRoIHRoZSBXUFQgQ0xJIHZpYSB0
aGUKKyAgZm9sbG93aW5nIGNvbW1hbmQ6IGB3cHQgbWFrZS1ob3N0cy1maWxlYC4KKyAqLworCisv
KgorICAgIGRpY3Rpb25hcnkgUlRDSWRlbnRpdHlQcm92aWRlckRldGFpbHMgeworICAgICAgcmVx
dWlyZWQgRE9NU3RyaW5nIGRvbWFpbjsKKyAgICAgICAgICAgICAgIERPTVN0cmluZyBwcm90b2Nv
bCA9ICJkZWZhdWx0IjsKKyAgICB9OworICovCisKKy8vIFBhcnNlIGEgYmFzZTY0IEpTT04gZW5j
b2RlZCBzdHJpbmcgcmV0dXJuZWQgZnJvbSBnZXRJZGVudGl0eUFzc2VydGlvbigpLgorLy8gVGhp
cyBpcyBhbHNvIHRoZSBzdHJpbmcgdGhhdCBpcyBzZXQgaW4gdGhlIGE9aWRlbnRpdHkgbGluZS4K
Ky8vIFJldHVybnMgYSB7IGlkcCwgYXNzZXJ0aW9uIH0gd2hlcmUgaWRwIGlzIG9mIHR5cGUgUlRD
SWRlbnRpdHlQcm92aWRlckRldGFpbHMKKy8vIGFuZCBhc3NlcnRpb24gaXMgdGhlIGRlc2VyaWFs
aXplZCBKU09OIHRoYXQgd2FzIHJldHVybmVkIGJ5IHRoZQorLy8gSWRQIHByb3h5J3MgZ2VuZXJh
dGVBc3NlcnRpb24oKSBmdW5jdGlvbi4KK2Z1bmN0aW9uIHBhcnNlQXNzZXJ0aW9uUmVzdWx0KGFz
c2VydGlvblJlc3VsdFN0cikgeworICBjb25zdCBhc3NlcnRpb25SZXN1bHQgPSBKU09OLnBhcnNl
KGF0b2IoYXNzZXJ0aW9uUmVzdWx0U3RyKSk7CisKKyAgY29uc3QgeyBpZHAgfSA9IGFzc2VydGlv
blJlc3VsdDsKKyAgY29uc3QgYXNzZXJ0aW9uID0gSlNPTi5wYXJzZShhc3NlcnRpb25SZXN1bHQu
YXNzZXJ0aW9uKTsKKworICByZXR1cm4geyBpZHAsIGFzc2VydGlvbiB9OworfQorCisvLyBSZXR1
cm4gdHdvIGRpc3RpbmN0IElkUCBkb21haW5zIHRoYXQgYXJlIGRpZmZlcmVudCBmcm9tIGN1cnJl
bnQgZG9tYWluCitmdW5jdGlvbiBnZXRJZHBEb21haW5zKCkgeworICBjb25zdCBkb21haW5BID0g
J3t7aG9zdHNbYWx0XVtdfX0nOworICBjb25zdCBkb21haW5CID0gJ3t7ZG9tYWluc1t3d3cxXX19
JzsKKyAgY29uc3QgZG9tYWluQyA9ICd7e2RvbWFpbnNbd3d3Ml19fSc7CisKKyAgaWYod2luZG93
LmxvY2F0aW9uLmhvc3RuYW1lID09PSBkb21haW5BKSB7CisgICAgcmV0dXJuIFtkb21haW5CLCBk
b21haW5DXTsKKyAgfSBlbHNlIGlmKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PT0gZG9tYWlu
QikgeworICAgIHJldHVybiBbZG9tYWluQSwgZG9tYWluQ107CisgIH0gZWxzZSB7CisgICAgcmV0
dXJuIFtkb21haW5BLCBkb21haW5CXTsKKyAgfQorfQorCitmdW5jdGlvbiBhc3NlcnRfcnRjZXJy
b3JfcmVqZWN0aW9uKGVycm9yRGV0YWlsLCBwcm9taXNlLCBkZXNjKSB7CisgIHJldHVybiBwcm9t
aXNlLnRoZW4oCisgICAgcmVzID0+IHsKKyAgICAgIGFzc2VydF91bnJlYWNoZWQoYEV4cGVjdCBw
cm9taXNlIHRvIGJlIHJlamVjdGVkIHdpdGggUlRDRXJyb3IsIGJ1dCBpbnN0ZWFkIGdvdCAke3Jl
c31gKTsKKyAgICB9LCBlcnIgPT4geworICAgICAgYXNzZXJ0X3RydWUoZXJyIGluc3RhbmNlb2Yg
UlRDRXJyb3IsCisgICAgICAgICdFeHBlY3QgZXJyb3Igb2JqZWN0IHRvIGJlIGluc3RhbmNlIG9m
IFJUQ0Vycm9yJyk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMoZXJyLmVycm9yRGV0YWlsLCBlcnJv
ckRldGFpbCwKKyAgICAgICAgYEV4cGVjdCBSVENFcnJvciBvYmplY3QgaGF2ZSBlcnJvckRldGFp
bCBzZXQgdG8gJHtlcnJvckRldGFpbH1gKTsKKworICAgICAgcmV0dXJuIGVycjsKKyAgICB9KTsK
K30KKworLy8gY29uc3RydWN0IGEgaG9zdCBzdHJpbmcgY29uc2lzdCBvZiBkb21haW4gYW5kIG9w
dGlvbmFsbHkgcG9ydAorLy8gSWYgdGhlIGRlZmF1bHQgSFRUUC9IVFRQUyBwb3J0IGlzIHVzZWQs
IHdpbmRvdy5sb2NhdGlvbi5wb3J0IHJldHVybnMKKy8vIGVtcHR5IHN0cmluZy4KK2Z1bmN0aW9u
IGhvc3RTdHJpbmcoZG9tYWluLCBwb3J0KSB7CisgIGlmKHBvcnQgPT09ICcnKSB7CisgICAgcmV0
dXJuIGRvbWFpbjsKKyAgfSBlbHNlIHsKKyAgICByZXR1cm4gYCR7ZG9tYWlufToke3BvcnR9YDsK
KyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvbm8tbWVkaWEtY2FsbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbm8tbWVkaWEtY2FsbC5odG1sCmluZGV4IGIx
ZWJhMDhkMGI0MzNjNjBjNjMzMjE5OWNkMzUyOTQ4NDcwMjhhMGMuLjlkMjU5ODUxOGRhNGJiYmNi
N2FjNzgwMjZiMDczN2Q0MGRjYzA5ZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1lZGlhLWNhbGwuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9uby1tZWRp
YS1jYWxsLmh0bWwKQEAgLTU4LDE2ICs1OCwxMSBAQAogICB9OwogCiAgIHZhciBvbkljZUNhbmRp
ZGF0ZVRvRmlyc3QgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewotICAgIC8vIElm
IGV2ZW50LmNhbmRpZGF0ZSBpcyBudWxsID0gbm8gbW9yZSBjYW5kaWRhdGVzLgotICAgIGlmIChl
dmVudC5jYW5kaWRhdGUpIHsKLSAgICAgIGdTZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0
ZShldmVudC5jYW5kaWRhdGUpOwotICAgIH0KKyAgICBnU2Vjb25kQ29ubmVjdGlvbi5hZGRJY2VD
YW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKICAgfSk7CiAKICAgdmFyIG9uSWNlQ2FuZGlkYXRl
VG9TZWNvbmQgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewotICAgIGlmIChldmVu
dC5jYW5kaWRhdGUpIHsKLSAgICAgIGdGaXJzdENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2
ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQorICAgIGdGaXJzdENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlk
YXRlKGV2ZW50LmNhbmRpZGF0ZSk7CiAgIH0pOwogCiAgIHZhciBvbkljZUNvbm5lY3Rpb25TdGF0
ZUNoYW5nZSA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm9taXNl
cy1jYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm9taXNlcy1jYWxsLmh0bWwKaW5kZXggOGI5YTI3NTU0OTczNTMxZTg1Mjg0MDZh
NTJkMzhiN2M1NTkzMmYzYy4uZWU2NGI0NjNlZTIyYWNhMWI2OGU2ODc1ZTEyNDQyNWM5ZTQzNzQz
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvbWlzZXMtY2FsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb21pc2VzLWNhbGwuaHRtbApAQCAtMjQsMTYg
KzI0LDExIEBAIFRoaXMgdGVzdCB1c2VzIGRhdGEgb25seSwgYW5kIHRodXMgZG9lcyBub3QgcmVx
dWlyZSBmYWtlIG1lZGlhIGRldmljZXMuCiAgIHZhciBnU2Vjb25kQ29ubmVjdGlvbiA9IG51bGw7
CiAKICAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9GaXJzdCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9u
KGV2ZW50KSB7Ci0gICAgLy8gSWYgZXZlbnQuY2FuZGlkYXRlIGlzIG51bGwgPSBubyBtb3JlIGNh
bmRpZGF0ZXMuCi0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ1NlY29uZENvbm5l
Y3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQorICAgIGdTZWNv
bmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwogICB9KTsKIAog
ICB2YXIgb25JY2VDYW5kaWRhdGVUb1NlY29uZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2
ZW50KSB7Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ0ZpcnN0Q29ubmVjdGlv
bi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ0ZpcnN0Q29u
bmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKICAgfSk7CiAKICAgdmFy
IG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZl
bnQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL1JFQURNRS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9SRUFETUUudHh0CmluZGV4IDEz
MTA3MTdjY2I5YzAzNWIwMTFmZjVmZTU0MzBmYmQ3ZTlmMTU4ZjIuLjVlMTdmYmY5YzM1NGVkYWJh
ZjQ4ZjZlZTFkMDE3ZjIzZDE4ZTIxNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL1JFQURNRS50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvUkVBRE1FLnR4dApAQCAtMiwyMiArMiwyMSBAQCBUaGlzIGRpcmVjdG9yeSBjb250YWlucyBm
aWxlcyB0aGF0IHRlc3QgZm9yIGJlaGF2aW9yIHJlbGV2YW50IHRvIHdlYnJ0YywKIGJ1dCB3aGlj
aCBpcyBzcGVjaWZpZWQgaW4gcHJvdG9jb2wgc3BlY2lmaWNhdGlvbnMgZnJvbSB0aGUgSUVURiwg
bm90IGluCiBBUEkgcmVjb21tZW5kYXRpb25zIGZyb20gdGhlIFczQy4KIAotVGhlIG1haW4gc3Bl
Y2lmaWNhdGlvbnMgYXJlIGdpdmVuIGluIHRoZSBmb2xsb3dpbmcgaW50ZXJuZXQtZHJhZnRzOgot
Ci0tIGRyYWZ0LWlldGYtcnRjd2ViLW92ZXJ2aWV3Ci0tIGRyYWZ0LWlldGYtcnRjd2ViLXRyYW5z
cG9ydHMKLS0gZHJhZnQtaWV0Zi1ydGN3ZWItc2VjdXJpdHktYXJjaAotLSBkcmFmdC1pZXRmLXJ0
Y3dlYi1zZWN1cml0eQotLSBkcmFmdC1pZXRmLXJ0Y3dlYi1ydHAtdXNhZ2UKLS0gZHJhZnQtaWV0
Zi1ydGN3ZWItanNlcAotLSBkcmFmdC1pZXRmLXJ0Y3dlYi1pcC1oYW5kbGluZwotLSBkcmFmdC1p
ZXRmLXJ0Y3dlYi1mZWMKLS0gZHJhZnQtaWV0Zi1ydGN3ZWItZGF0YS1wcm90b2NvbAotLSBkcmFm
dC1pZXRmLXJ0Y3dlYi1kYXRhLWNoYW5uZWwKLS0gZHJhZnQtaWV0Zi1tbXVzaWMtc2RwLXNpbXVs
Y2FzdAotLSBkcmFmdC1pZXRmLW1tdXNpYy1yaWQKK1RoZSBtYWluIHNwZWNpZmljYXRpb25zIGFy
ZSBnaXZlbiBpbiB0aGUgZm9sbG93aW5nIFJGQ3M6CiAKIC0gUkZDIDc3NDIsICJXZWJSVEMgVmlk
ZW8gUHJvY2Vzc2luZyBhbmQgQ29kZWMgUmVxdWlyZW1lbnRzIgogLSBSRkMgNzg3NCwgIldlYlJU
QyBBdWRpbyBDb2RlYyBhbmQgUHJvY2Vzc2luZyBSZXF1aXJlbWVudHMiCistIFJGQyA4ODI1IChk
cmFmdC1pZXRmLXJ0Y3dlYi1vdmVydmlldykKKy0gUkZDIDg4MjYgKGRyYWZ0LWlldGYtcnRjd2Vi
LXNlY3VyaXR5KQorLSBSRkMgODgyNyAoZHJhZnQtaWV0Zi1ydGN3ZWItc2VjdXJpdHktYXJjaCkK
Ky0gUkZDIDg4MjggKGRyYWZ0LWlldGYtcnRjd2ViLWlwLWhhbmRsaW5nKQorLSBSRkMgODgyOSAo
ZHJhZnQtaWV0Zi1ydGN3ZWItanNlcCkKKy0gUkZDIDg4MzEgKGRyYWZ0LWlldGYtcnRjd2ViLWRh
dGEtY2hhbm5lbCkKKy0gUkZDIDg4MzIgKGRyYWZ0LWlldGYtcnRjd2ViLWRhdGEtcHJvdG9jb2wp
CistIFJGQyA4ODM0IChkcmFmdC1pZXRmLXJ0Y3dlYi1ydHAtdXNhZ2UpCistIFJGQyA4ODM1IChk
cmFmdC1pZXRmLXJ0Y3dlYi10cmFuc3BvcnRzKQorLSBSRkMgODg1MSAoZHJhZnQtaWV0Zi1tbXVz
aWMtcmlkKQorLSBSRkMgODg1MyAoZHJhZnQtaWV0Zi1tbXVzaWMtc2RwLXNpbXVsY2FzdCkKKy0g
UkZDIDg4NTQgKGRyYWZ0LWlldGYtcnRjd2ViLWZlYykKIAotQW4gb3ZlcnZpZXcgb2YgdGhlIGRl
cGVuZGVuY2llcyBpbnZvbHZlZCBpcyBpbiBkcmFmdC1qZW5uaW5ncy1ydGN3ZWItZGVwcworVGhp
cyBsaXN0IGlzIGluY29tcGxldGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9kdGxzLXNldHVwLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL2R0bHMtc2V0dXAuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA1ZDIwOTZhODA1ZDVkYzA0MDMyMGY0NzhhNGE2YjQ1NTdhNjVkNjIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9kdGxzLXNldHVwLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKwor
UEFTUyBQQyBzaG91bGQgYWNjZXB0IGluaXRpYWwgb2ZmZXIgd2l0aCBzZXR1cD1hY3RwYXNzCitG
QUlMIFBDIHNob3VsZCBhY2NlcHQgaW5pdGlhbCBvZmZlciB3aXRoIHNldHVwPWFjdGl2ZSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiYT1zZXR1cDpwYXNzaXZlIiBidXQgZ290ICJhPXNldHVwOmFj
dGl2ZSIKK0ZBSUwgUEMgc2hvdWxkIGFjY2VwdCBpbml0aWFsIG9mZmVyIHdpdGggc2V0dXA9cGFz
c2l2ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJPcGVyYXRpb25FcnJvcjogRmFpbGVkIHRvIHNldCBsb2NhbCBhbnN3ZXIgc2RwOiBGYWlsZWQg
dG8gYXBwbHkgdGhlIGRlc2NyaXB0aW9uIGZvciBtPSBzZWN0aW9uIHdpdGggbWlkPSdhMSc6IE9m
ZmVyZXIgbXVzdCB1c2UgYWN0cGFzcyB2YWx1ZSBvciBjdXJyZW50IG5lZ290aWF0ZWQgcm9sZSBm
b3Igc2V0dXAgYXR0cmlidXRlLiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1zZXR1cC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvZHRscy1zZXR1cC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlYjBhMWFlNjUyYTQz
NTVkZDkxZGFmMjQ5MTM2ZjI5M2JiNTA5ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9kdGxzLXNl
dHVwLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIGE9c2V0dXAgU0RQIHBhcmFt
ZXRlciB0ZXN0PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8vIFRlc3RzIGZvciBjb3Jy
ZWN0IGJlaGF2aW9yIG9mIERUTFMgYT1zZXR1cCBwYXJhbWV0ZXIuCisKKy8vIFNEUCBjb3BpZWQg
ZnJvbSBKU0VQIEV4YW1wbGUgNy4xCisvLyBJdCBjb250YWlucyB0d28gbWVkaWEgc3RyZWFtcyB3
aXRoIGRpZmZlcmVudCB1ZnJhZ3MsIGFuZCBidW5kbGUKKy8vIHR1cm5lZCBvbi4KK2NvbnN0IGtT
ZHAgPSBgdj0wCitvPS0gNDk2MjMwMzMzMzE3OTg3MTcyMiAxIElOIElQNCAwLjAuMC4wCitzPS0K
K3Q9MCAwCithPWljZS1vcHRpb25zOnRyaWNrbGUKK2E9Z3JvdXA6QlVORExFIGExIHYxCithPWdy
b3VwOkxTIGExIHYxCittPWF1ZGlvIDEwMTAwIFVEUC9UTFMvUlRQL1NBVlBGIDk2IDAgOCA5NyA5
OAorYz1JTiBJUDQgMjAzLjAuMTEzLjEwMAorYT1taWQ6YTEKK2E9c2VuZHJlY3YKK2E9cnRwbWFw
Ojk2IG9wdXMvNDgwMDAvMgorYT1ydHBtYXA6MCBQQ01VLzgwMDAKK2E9cnRwbWFwOjggUENNQS84
MDAwCithPXJ0cG1hcDo5NyB0ZWxlcGhvbmUtZXZlbnQvODAwMAorYT1ydHBtYXA6OTggdGVsZXBo
b25lLWV2ZW50LzQ4MDAwCithPW1heHB0aW1lOjEyMAorYT1leHRtYXA6MSB1cm46aWV0ZjpwYXJh
bXM6cnRwLWhkcmV4dDpzZGVzOm1pZAorYT1leHRtYXA6MiB1cm46aWV0ZjpwYXJhbXM6cnRwLWhk
cmV4dDpzc3JjLWF1ZGlvLWxldmVsCithPW1zaWQ6NDcwMTdmZWUtYjZjMS00MTYyLTkyOWMtYTI1
MTEwMjUyNDAwIGY4MzAwNmM1LWEwZmYtNGUwYS05ZWQ5LWQzZTY3NDdiZTdkOQorYT1pY2UtdWZy
YWc6RVRFbgorYT1pY2UtcHdkOk90U0swV3BOdHBVamtZNCs4NmpzN1pRbAorYT1maW5nZXJwcmlu
dDpzaGEtMjU2IDE5OkUyOjFDOjNCOjRCOjlGOjgxOkU2OkI4OjVDOkY0OkE1OkE4OkQ4OjczOjA0
OkJCOjA1OjJGOjcwOjlGOjA0OkE5OjBFOjA1OkU5OjI2OjMzOkU4OjcwOjg4OkEyCithPXNldHVw
OmFjdHBhc3MKK2E9ZHRscy1pZDoxCithPXJ0Y3A6MTAxMDEgSU4gSVA0IDIwMy4wLjExMy4xMDAK
K2E9cnRjcC1tdXgKK2E9cnRjcC1yc2l6ZQorbT12aWRlbyAxMDEwMiBVRFAvVExTL1JUUC9TQVZQ
RiAxMDAgMTAxCitjPUlOIElQNCAyMDMuMC4xMTMuMTAwCithPW1pZDp2MQorYT1zZW5kcmVjdgor
YT1ydHBtYXA6MTAwIFZQOC85MDAwMAorYT1ydHBtYXA6MTAxIHJ0eC85MDAwMAorYT1mbXRwOjEw
MSBhcHQ9MTAwCithPWV4dG1hcDoxIHVybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6bWlk
CithPXJ0Y3AtZmI6MTAwIGNjbSBmaXIKK2E9cnRjcC1mYjoxMDAgbmFjaworYT1ydGNwLWZiOjEw
MCBuYWNrIHBsaQorYT1tc2lkOjQ3MDE3ZmVlLWI2YzEtNDE2Mi05MjljLWEyNTExMDI1MjQwMCBm
MzBiZGI0YS01ZGI4LTQ5YjUtYmNkYy1lMGM5YTIzMTcyZTAKK2E9aWNlLXVmcmFnOkJHS2sKK2E9
aWNlLXB3ZDptcXlXc0FqdnRLd1RHbnZoUHp0UTltSWYKK2E9ZmluZ2VycHJpbnQ6c2hhLTI1NiAx
OTpFMjoxQzozQjo0Qjo5Rjo4MTpFNjpCODo1QzpGNDpBNTpBODpEODo3MzowNDpCQjowNToyRjo3
MDo5RjowNDpBOTowRTowNTpFOToyNjozMzpFODo3MDo4ODpBMgorYT1zZXR1cDphY3RwYXNzCith
PWR0bHMtaWQ6MQorYT1ydGNwOjEwMTAzIElOIElQNCAyMDMuMC4xMTMuMTAwCithPXJ0Y3AtbXV4
CithPXJ0Y3AtcnNpemUKK2A7CisKK2ZvciAobGV0IHNldHVwIG9mIFsnYWN0cGFzcycsICdhY3Rp
dmUnLCAncGFzc2l2ZSddKSB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25z
dCBzZHAgPSBrU2RwLnJlcGxhY2UoL2E9c2V0dXA6YWN0cGFzcy9nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnYT1zZXR1cDonICsgc2V0dXApOworICAgIGNvbnN0IHBjMSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkp
OworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2Rw
OiBzZHB9KTsKKyAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYzEuY3JlYXRlQW5zd2VyKCk7Cisg
ICAgY29uc3QgcmVzdWx0aW5nU2V0dXAgPSBhbnN3ZXIuc2RwLm1hdGNoKC9hPXNldHVwOlxTKy8p
OworICAgIGlmIChzZXR1cCA9PT0gJ2FjdGl2ZScpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMocmVz
dWx0aW5nU2V0dXBbMF0sICdhPXNldHVwOnBhc3NpdmUnKTsKKyAgICB9IGVsc2UgaWYgKHNldHVw
ID09PSAncGFzc2l2ZScpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0aW5nU2V0dXBbMF0s
ICdhPXNldHVwOmFjdGl2ZScpOworICAgIH0gZWxzZSBpZiAoc2V0dXAgPT09ICdhY3RwYXNzJykg
eworICAgICAgLy8gRm9yIGFjdHBhc3MsIGVpdGhlciBhY3RpdmUgb3IgcGFzc2l2ZSBhcmUgbGVn
YWwsIGFsdGhvdWdoCisgICAgICAvLyBhY3RpdmUgaXMgUkVDT01NRU5ERUQgYnkgUkZDIDU3NjMg
LyA4ODQyLgorICAgICAgYXNzZXJ0X2luX2FycmF5KHJlc3VsdGluZ1NldHVwWzBdLCBbJ2E9c2V0
dXA6YWN0aXZlJywgJ2E9c2V0dXA6cGFzc2l2ZSddKTsKKyAgICB9CisgICAgYXdhaXQgcGMxLnNl
dExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgfSwgJ1BDIHNob3VsZCBhY2NlcHQgaW5pdGlh
bCBvZmZlciB3aXRoIHNldHVwPScgKyBzZXR1cCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFj
aGFubmVsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOGZlZTIwODYwMzU2YmYxNTEwNjAzMWE2
MDc5ODhhNWQ0ODE3NzMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXItZGF0YWNoYW5u
ZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIEhhbmRvdmVyIHdpdGggZGF0
YWNoYW5uZWwgcmVpbml0aWF0ZWQgZnJvbSBuZXcgY2FsbGVlIGNvbXBsZXRlcyBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVF
cnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvaGFuZG92ZXItZGF0YWNoYW5uZWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGYyMjRmODIyYTc2YmI0ODkyNGJjMTNlNTlkNTNmOGEyNGQ5OWY2NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLmh0bWwKQEAgLTAsMCAr
MSw2MSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJU
Q1BlZXJDb25uZWN0aW9uIEhhbmRvdmVyczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5l
Y3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3By
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgb2ZmZXJQYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICBjb25zdCBhbnN3ZXJQY0ZpcnN0ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIGNvbnN0IGFuc3dlclBjU2Vjb25kID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4geworICAgIG9mZmVyUGMuY2xvc2UoKTsKKyAgICBhbnN3ZXJQ
Y0ZpcnN0LmNsb3NlKCk7CisgICAgYW5zd2VyUGNTZWNvbmQuY2xvc2UoKTsKKyAgfSk7CisgIGNv
bnN0IG9mZmVyRGF0YWNoYW5uZWwxID0gb2ZmZXJQYy5jcmVhdGVEYXRhQ2hhbm5lbCgnaW5pdGlh
bCcpOworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMob2ZmZXJQYywgYW5zd2VyUGNGaXJzdCk7CisK
KyAgLy8gTmVnb3RpYXRlIGNvbm5lY3Rpb24gd2l0aCBQQyAxCisgIGNvbnN0IG9mZmVyMSA9IGF3
YWl0IG9mZmVyUGMuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgb2ZmZXJQYy5zZXRMb2NhbERlc2Ny
aXB0aW9uKG9mZmVyMSk7CisgIGF3YWl0IGFuc3dlclBjRmlyc3Quc2V0UmVtb3RlRGVzY3JpcHRp
b24ob2ZmZXIxKTsKKyAgY29uc3QgYW5zd2VyMSA9IGF3YWl0IGFuc3dlclBjRmlyc3QuY3JlYXRl
QW5zd2VyKCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyMSk7
CisgIGF3YWl0IGFuc3dlclBjRmlyc3Quc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIxKTsKKyAg
Y29uc3QgZGF0YWNoYW5uZWxBdEFuc3dlclBjRmlyc3QgPSBhd2FpdCBuZXcgUHJvbWlzZSgKKyAg
ICByID0+IGFuc3dlclBjRmlyc3Qub25kYXRhY2hhbm5lbCA9ICh7Y2hhbm5lbH0pID0+IHIoY2hh
bm5lbCkpOworICBjb25zdCBpY2VUcmFuc3BvcnQgPSBvZmZlclBjLnNjdHAudHJhbnNwb3J0Owor
ICAvLyBDaGVjayB0aGF0IG1lc3NhZ2VzIGdldCB0aHJvdWdoLgorICBkYXRhY2hhbm5lbEF0QW5z
d2VyUGNGaXJzdC5zZW5kKCdoZWxsbycpOworICBjb25zdCBtZXNzYWdlMSA9IGF3YWl0IGF3YWl0
TWVzc2FnZShvZmZlckRhdGFjaGFubmVsMSk7CisgIGFzc2VydF9lcXVhbHMobWVzc2FnZTEsICdo
ZWxsbycpOworCisgIC8vIFJlbmVnb3RpYXRlIHdpdGggUEMgMgorICAvLyBOb3RlIC0gSUNFIGNh
bmRpZGF0ZXMgd2lsbCBhbHNvIGJlIHNlbnQgdG8gYW5zd2VyUGMxLCBidXQgdGhhdCBzaG91bGRu
J3QgbWF0dGVyLgorICBleGNoYW5nZUljZUNhbmRpZGF0ZXMob2ZmZXJQYywgYW5zd2VyUGNTZWNv
bmQpOworICBjb25zdCBvZmZlcjIgPSBhd2FpdCBvZmZlclBjLmNyZWF0ZU9mZmVyKCk7CisgIGF3
YWl0IG9mZmVyUGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcjIpOworICBhd2FpdCBhbnN3ZXJQ
Y1NlY29uZC5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcjIpOworICBjb25zdCBhbnN3ZXIyID0g
YXdhaXQgYW5zd2VyUGNTZWNvbmQuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0
UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyMik7CisgIGF3YWl0IGFuc3dlclBjU2Vjb25kLnNldExv
Y2FsRGVzY3JpcHRpb24oYW5zd2VyMik7CisKKyAgLy8gS2lsbCB0aGUgZmlyc3QgUEMuIFRoaXMg
c2hvdWxkIG5vdCBhZmZlY3QgYW55dGhpbmcsIGJ1dCBsZWF2aW5nIGl0IG1heSBjYXVzZSB1bnRv
d2FyZCBldmVudHMuCisgIGFuc3dlclBjRmlyc3QuY2xvc2UoKTsKKworICBjb25zdCBhbnN3ZXJE
YXRhQ2hhbm5lbDIgPSBhbnN3ZXJQY1NlY29uZC5jcmVhdGVEYXRhQ2hhbm5lbCgnc2Vjb25kIGJh
Y2snKTsKKworICBjb25zdCBkYXRhY2hhbm5lbEF0T2ZmZXJQY1NlY29uZCA9IGF3YWl0IG5ldyBQ
cm9taXNlKHIgPT4gb2ZmZXJQYy5vbmRhdGFjaGFubmVsID0gKHtjaGFubmVsfSkgPT4gcihjaGFu
bmVsKSk7CisKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBkYXRhY2hhbm5lbEF0T2ZmZXJQY1Nl
Y29uZC5vbm9wZW4gPSByKTsKKworICBkYXRhY2hhbm5lbEF0T2ZmZXJQY1NlY29uZC5zZW5kKCdo
ZWxsbyBhZ2FpbicpOworICBjb25zdCBtZXNzYWdlMiA9IGF3YWl0IGF3YWl0TWVzc2FnZShhbnN3
ZXJEYXRhQ2hhbm5lbDIpOworICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UyLCAnaGVsbG8gYWdhaW4n
KTsKK30sICdIYW5kb3ZlciB3aXRoIGRhdGFjaGFubmVsIHJlaW5pdGlhdGVkIGZyb20gbmV3IGNh
bGxlZSBjb21wbGV0ZXMnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvaGFuZG92ZXIuaHRtbAppbmRleCAzNzhkNjVmZmMzMjBiZjBhYzZhNmExNjY5MGRk
OTkyZDBmNWU1MzZkLi43NDhjYmVmZjhkN2JkODNiZTQ3M2MwNDk5MDhiNTNmN2ZlMmJjOTdhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLmh0bWwKQEAgLTY5
LDYgKzY5LDQgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBhd2FpdCBvZmZlclBjLnNl
dExvY2FsRGVzY3JpcHRpb24oYW5zd2VyMik7CiB9LCAnTmVnb3RpYXRpb24gb2YgaGFuZG92ZXIg
aW5pdGlhdGVkIGF0IGNhbGxlZSB3b3JrcycpOwogCi0KLQogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9ydHAtY2xvY2tyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1jbG9ja3JhdGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMwYjI0YzI2MmQ4NTkzOTQ4ZmVhNWRjZjAyMzY2ZGE2YTRkZjI3
MmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtY2xvY2tyYXRlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyB2aWRlbyBydHAgdGltZXN0YW1wcyBpbmNyZWFzZSBieSBhcHBy
b3hpbWF0ZWx5IDkwMDAwIHBlciBzZWNvbmQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNzc0MjAwNTBmNTgy
MDk0ZDhmZTI5M2FhYzE2NjViZGFlYTc5OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtY2xv
Y2tyYXRlLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPCEtLSBUaGlzIGZpbGUgY29udGFpbnMgYSB0ZXN0IHRoYXQgd2FpdHMgZm9y
IHR3byBzZWNvbmRzLiAtLT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgor
PHRpdGxlPlJUUCBjbG9ja3JhdGU8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9u
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCithc3luYyBm
dW5jdGlvbiBpbml0aWF0ZVNpbmdsZVRyYWNrQ2FsbEFuZFJldHVyblJlY2VpdmVyKHQsIGtpbmQp
IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgY29uc3Qgc3Ry
ZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe1traW5kXTp0cnVlfSk7CisgIGNvbnN0IFt0cmFj
a10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gdHJhY2suc3Rv
cCgpKTsKKyAgcGMxLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworCisgIGV4Y2hhbmdlSWNlQ2Fu
ZGlkYXRlcyhwYzEsIHBjMik7CisgIGNvbnN0IHRyYWNrRXZlbnQgPSBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5kTGlzdGVuVG9PbnRyYWNrKHQsIHBjMSwgcGMyKTsKKyAgYXdhaXQgZXhjaGFuZ2VBbnN3
ZXIocGMxLCBwYzIpOworICBhd2FpdCB3YWl0Rm9yQ29ubmVjdGlvblN0YXRlQ2hhbmdlKHBjMiwg
Wydjb25uZWN0ZWQnXSk7CisgIHJldHVybiB0cmFja0V2ZW50LnJlY2VpdmVyOworfQorCitwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIC8vIHRoZSBnZXRTeW5jaHJvbml6YXRpb25Tb3VyY2Vz
IEFQSSBleHBvc2VzIHRoZSBydHAgdGltZXN0YW1wLgorICBjb25zdCByZWNlaXZlciA9IGF3YWl0
IGluaXRpYXRlU2luZ2xlVHJhY2tDYWxsQW5kUmV0dXJuUmVjZWl2ZXIodCwgJ3ZpZGVvJyk7Cisg
IGNvbnN0IGZpcnN0ID0gYXdhaXQgbGlzdGVuRm9yU1NSQ3ModCwgcmVjZWl2ZXIpOworICBhd2Fp
dCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHQuc3RlcF90aW1lb3V0KHJlc29sdmUsIDIwMDApKTsK
KyAgY29uc3Qgc2Vjb25kID0gYXdhaXQgbGlzdGVuRm9yU1NSQ3ModCwgcmVjZWl2ZXIpOworICAv
LyBydHBUaW1lc3RhbXAgbWF5IHdyYXAgYXQgMHhmZmZmZmZmZiwgdGFrZSBjYXJlIG9mIHRoYXQu
CisgIGNvbnN0IGFjdHVhbENsb2NrUmF0ZSA9ICgoc2Vjb25kWzBdLnJ0cFRpbWVzdGFtcCAtIGZp
cnN0WzBdLnJ0cFRpbWVzdGFtcCArIDB4ZmZmZmZmZmYpICUgMHhmZmZmZmZmZikgLyAoc2Vjb25k
WzBdLnRpbWVzdGFtcCAtIGZpcnN0WzBdLnRpbWVzdGFtcCkgKiAxMDAwOworICBhc3NlcnRfYXBw
cm94X2VxdWFscyhhY3R1YWxDbG9ja1JhdGUsIDkwMDAwLCA5MDAwLCAnVmlkZW8gY2xvY2tyYXRl
IGlzIGFwcHJveGltYXRlbHkgOTAwMDAnKTsKK30sICd2aWRlbyBydHAgdGltZXN0YW1wcyBpbmNy
ZWFzZSBieSBhcHByb3hpbWF0ZWx5IDkwMDAwIHBlciBzZWNvbmQnKTsKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvcnRwLWV4dGVuc2lvbi1zdXBwb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1l
eHRlbnNpb24tc3VwcG9ydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ViMzBjNTI0NzcyYjNj
NTRjNjRhYWVmYzliOTBiZWM2M2RhYjZmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1leHRl
bnNpb24tc3VwcG9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisKK1BBU1MgUlRQIGhl
YWRlciBleHRlbnNpb24gdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c3NyYy1hdWRpby1sZXZl
bCBpcyBwcmVzZW50IGluIG9mZmVyCitQQVNTIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIHVybjppZXRm
OnBhcmFtczpydHAtaGRyZXh0OnNkZXM6bWlkIGlzIHByZXNlbnQgaW4gb2ZmZXIKK1BBU1MgUlRQ
IGhlYWRlciBleHRlbnNpb24gdXJuOjNncHA6dmlkZW8tb3JpZW50YXRpb24gaXMgcHJlc2VudCBp
biBvZmZlcgorUEFTUyBSVFAgaGVhZGVyIGV4dGVuc2lvbiB1cm46aWV0ZjpwYXJhbXM6cnRwLWhk
cmV4dDpzZGVzOnJ0cC1zdHJlYW0taWQgaXMgcHJlc2VudCBpbiBvZmZlcgorUEFTUyBSVFAgaGVh
ZGVyIGV4dGVuc2lvbiB1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOnJlcGFpcmVkLXJ0
cC1zdHJlYW0taWQgaXMgcHJlc2VudCBpbiBvZmZlcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0
ZW5zaW9uLXN1cHBvcnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1leHRlbnNpb24tc3VwcG9ydC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUzZDNmZTg3ZDkzZGM4MGZmZDg2NGEzMTQ3Yzc0YzIyZWJmNTY4YjIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQuaHRtbApAQCAtMCwwICsxLDQ0IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNv
bm5lY3Rpb24gUlRQIGV4dGVuc2lvbnM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3RoaXJkX3BhcnR5L3Nk
cC9zZHAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworYXN5bmMgZnVu
Y3Rpb24gc2V0dXAoKSB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICBwYzEuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgIHBjMS5hZGRUcmFuc2NlaXZlcigndmlk
ZW8nKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgcGMxLmNs
b3NlKCk7CisgIHJldHVybiBvZmZlci5zZHA7Cit9CisKKy8vIEV4dGVuc2lvbnMgdGhhdCBNVVNU
IGJlIHN1cHBvcnRlZAorY29uc3QgbWFuZGF0b3J5RXh0ZW5zaW9ucyA9IFsKKyAgLy8gRGlyZWN0
bHkgcmVmZXJlbmNlZCBpbiBXZWJSVEMgUlRQIHVzYWdlCisgICd1cm46aWV0ZjpwYXJhbXM6cnRw
LWhkcmV4dDpzc3JjLWF1ZGlvLWxldmVsJywgLy8gUkZDIDg4MzQgNS4yLjIKKyAgJ3VybjppZXRm
OnBhcmFtczpydHAtaGRyZXh0OnNkZXM6bWlkJywgIC8vIFJGQyA4ODM0IDUuMi40CisgICd1cm46
M2dwcDp2aWRlby1vcmllbnRhdGlvbicsICAvLyBSRkMgODgzNCA1LjIuNQorICAvLyBSZXF1aXJl
ZCBmb3Igc3VwcG9ydCBvZiBzaW11bGNhc3Qgd2l0aCBSSUQKKyAgJ3VybjppZXRmOnBhcmFtczpy
dHAtaGRyZXh0OnNkZXM6cnRwLXN0cmVhbS1pZCcsICAvLyBSRkMgODg1MiA0LjMKKyAgJ3Vybjpp
ZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6cmVwYWlyZWQtcnRwLXN0cmVhbS1pZCcsICAvLyBS
RkMgODg1MiA0LjQKK107CisKKy8vIEZvciBmdXJ0aGVyIHRlc3Rpbmc6CisvLyAtIEFkZCB0ZXN0
IGZvciByYXBpZCBzeW5jaHJvbml6YXRpb24gLSBSRkMgODgzNCA1LjIuMQorLy8gLSBBZGQgdGVz
dCBmb3IgZW5jcnlwdGVkIGhlYWRlciBleHRlbnNpb25zIChSRkMgNjkwNCkKKy8vIC0gU2VwYXJh
dGUgdGVzdHMgZm9yIGV4dGVuc2lvbnMgaW4gYXVkaW8gYW5kIHZpZGVvIHNlY3Rpb25zCisKK2Zv
ciAoY29uc3QgZXh0ZW5zaW9uIG9mIG1hbmRhdG9yeUV4dGVuc2lvbnMpIHsKKyAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHNkcCA9IGF3YWl0IHNldHVwKCk7CisgICAgY29u
c3QgZXh0ZW5zaW9ucyA9IFNEUFV0aWxzLm1hdGNoUHJlZml4KHNkcCwgJ2E9ZXh0bWFwOicpCisg
ICAgICAgICAgLm1hcChTRFBVdGlscy5wYXJzZUV4dG1hcCk7CisgICAgYXNzZXJ0X3RydWUoISFl
eHRlbnNpb25zLmZpbmQoZXh0ID0+IGV4dC51cmkgPT09IGV4dGVuc2lvbikpOworICB9LCBgUlRQ
IGhlYWRlciBleHRlbnNpb24gJHtleHRlbnNpb259IGlzIHByZXNlbnQgaW4gb2ZmZXJgKTsKK30K
KworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9y
dHAtcGF5bG9hZHR5cGVzLmh0bWwKaW5kZXggNjgwNmU3NWVkNTE0YzA0OTY4ZDAzYjZkODQxM2Rh
YTM4YjgzZDA1My4uYWE0NjRmODY1NmZlOWEwOTAzNzRlNDM0NmM0MzYwMGNmMGI0OTdhZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1wYXlsb2FkdHlw
ZXMuaHRtbApAQCAtNTEsNyArNTEsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGZv
ciAobGV0IHBheWxvYWRUeXBlID0gNjQ7IHBheWxvYWRUeXBlIDw9IDk1OyBwYXlsb2FkVHlwZSsr
KSB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICBhd2FpdCBw
cm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkQWNjZXNzRXJyb3InLAotICAgICAgcGMuc2V0
UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNkcDogY3JlYXRlT2ZmZXJTZHAoNjQp
fSkpOworICAgICAgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNkcDog
Y3JlYXRlT2ZmZXJTZHAocGF5bG9hZFR5cGUpfSkpOwogICAgIHBjLmNsb3NlKCk7CiAgIH0KIH0s
ICdzZXRSZW1vdGVEZXNjcmlwdGlvbiB3aXRoIGEgY29kZWMgaW4gdGhlIHJhbmdlIDY0LTk1IHRo
cm93cyBhbiBJbnZhbGlkQWNjZXNzRXJyb3InKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9udC1k
b250LWRvbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1kb250LWRvbnQtZG9udC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTFhZDBjOGJkZTIwMWNkNGE2ZTgwMGY5NzYwYWVmMzk2YTFjYmNlMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9udC1kb250LWRvbnQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorCitQQVNTIGRvZXMgbm90IGNyZWF0ZSBvZmZlcnMgd2l0aCBTREVTCitQ
QVNTIHJlamVjdHMgYSByZW1vdGUgb2ZmZXIgdGhhdCBvbmx5IGluY2x1ZGVzIFNERVMgYW5kIG5v
IERUTFMgZmluZ2VycHJpbnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1kb250LWRvbnQtZG9udC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvc2Rlcy1kb250LWRvbnQtZG9udC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5MzhjODRjOGJm
ZTM5NjgzYjY4OWFjNDJlMmEzZjlkNTMyNDQwNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zZGVz
LWRvbnQtZG9udC1kb250Lmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+
Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gTVVTVCBOT1Qgc3VwcG9ydCBTREVTPC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii93ZWJydGMvdGhpcmRfcGFydHkvc2RwL3NkcC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorJ3VzZSBzdHJpY3QnOworCisvLyBUZXN0IHN1cHBvcnQgZm9yCisvLyBodHRwczovL3d3dy5y
ZmMtZWRpdG9yLm9yZy9yZmMvcmZjODgyNiNzZWN0aW9uLTQuMy4xCisKK2NvbnN0IHNkcCA9IGB2
PTAKK289LSAwIDMgSU4gSVA0IDEyNy4wLjAuMQorcz0tCit0PTAgMAorbT12aWRlbyA5IFVEUC9U
TFMvUlRQL1NBVlBGIDEwMAorYz1JTiBJUDQgMC4wLjAuMAorYT1ydGNwLW11eAorYT1zZW5kb25s
eQorYT1taWQ6dmlkZW8KK2E9cnRwbWFwOjEwMCBWUDgvOTAwMDAKK2E9Zm10cDoxMDAgbWF4LWZy
PTMwO21heC1mcz0zNjAwCithPWNyeXB0bzowIEFFU19DTV8xMjhfSE1BQ19TSEExXzgwIGlubGlu
ZToybnJhMjdoVFViOWlseW4yckVrQkVRTjlXT0Z0czI2Ri9qdm9mYXN3CithPWljZS11ZnJhZzpF
VEVuCithPWljZS1wd2Q6T3RTSzBXcE50cFVqa1k0Kzg2anM3Wi9sCitgOworCisvLyBOZWdhdGl2
ZSB0ZXN0IGZvciBDaHJvbWUgbGVnYWN5IGJlaGF2aW9yLgorcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICBjb25zdCBzZGVzX2NvbnN0cmFpbnQgPSB7J21hbmRhdG9yeSc6IHsnRHRsc1NydHBL
ZXlBZ3JlZW1lbnQnOiBmYWxzZX19OworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bihudWxsLCBzZGVzX2NvbnN0cmFpbnQpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3Nl
KCkpOworCisgIHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICBjb25zdCBvZmZlciA9IGF3
YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgIGFzc2VydF9mYWxzZShvZmZlci5zZHAuaW5jbHVkZXMo
J1xuYT1jcnlwdG86JykpOworfSwgJ2RvZXMgbm90IGNyZWF0ZSBvZmZlcnMgd2l0aCBTREVTJyk7
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICB0cnkg
eworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHB9
KTsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJNdXN0IG5vdCBhY2NlcHQgU0RQIHdpdGhvdXQgZmlu
Z2VycHJpbnQiKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIC8vIFRPRE86IHdoaWNoIGVycm9yIGlz
IGNvcnJlY3Q/IFNlZQorICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2VicnRjLXBjL2lz
c3Vlcy8yNjcyCisgICAgYXNzZXJ0X3RydWUoWydPcGVyYXRpb25FcnJvcicsICdJbnZhbGlkQWNj
ZXNzRXJyb3InXS5pbmNsdWRlcyhlLm5hbWUpKTsKKyAgfQorfSwgJ3JlamVjdHMgYSByZW1vdGUg
b2ZmZXIgdGhhdCBvbmx5IGluY2x1ZGVzIFNERVMgYW5kIG5vIERUTFMgZmluZ2VycHJpbnQnKTsK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NwbGl0Lmh0
dHBzLmh0bWwKaW5kZXggNWViODMyOTUxN2ZiZWZlOTQ2ODJmZTc5MWFlODE3NjlkMDNkYTE5Ny4u
M2ZjM2JkYTJhNTJjZjcxOTBjMDFhYjRkODkyNmQ3NWQzZDRmZDg1ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
c3BsaXQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1sCkBAIC0zOCwxNiArMzgs
MjIgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGlmIChlLmNhbmRpZGF0ZSkgewog
ICAgICAgY29uc3QgdGFyZ2V0ID0gZS5jYW5kaWRhdGUuc2RwTUxpbmVJbmRleCA9PT0gMCA/IGNh
bGxlZUF1ZGlvIDogY2FsbGVlVmlkZW87CiAgICAgICB0YXJnZXQuYWRkSWNlQ2FuZGlkYXRlKHtz
ZHBNaWQ6IGUuY2FuZGlkYXRlLnNkcE1pZCwgY2FuZGlkYXRlOiBlLmNhbmRpZGF0ZS5jYW5kaWRh
dGV9KTsKKyAgICB9IGVsc2UgeworICAgICAgY2FsbGVlQXVkaW8uYWRkSWNlQ2FuZGlkYXRlKCk7
CisgICAgICBjYWxsZWVWaWRlby5hZGRJY2VDYW5kaWRhdGUoKTsKICAgICB9CiAgIH0pOwogICBj
YWxsZWVBdWRpby5hZGRFdmVudExpc3RlbmVyKCdpY2VjYW5kaWRhdGUnLCAoZSkgPT4gewogICAg
IGlmIChlLmNhbmRpZGF0ZSkgewogICAgICAgY2FsbGVyLmFkZEljZUNhbmRpZGF0ZSh7c2RwTWlk
OiBlLmNhbmRpZGF0ZS5zZHBNaWQsIGNhbmRpZGF0ZTogZS5jYW5kaWRhdGUuY2FuZGlkYXRlfSk7
CiAgICAgfQorICAgIC8vIE5vdGU6IGNhbGxlci5hZGRJY2VDYW5kaWRhdGUgaXMgb25seSBjYWxs
ZWQgZm9yIHZpZGVvIHRvIGF2b2lkIGNhbGxpbmcgaXQgdHdpY2UuCiAgIH0pOwogICBjYWxsZWVW
aWRlby5hZGRFdmVudExpc3RlbmVyKCdpY2VjYW5kaWRhdGUnLCAoZSkgPT4gewogICAgIGlmIChl
LmNhbmRpZGF0ZSkgewogICAgICAgY2FsbGVyLmFkZEljZUNhbmRpZGF0ZSh7c2RwTWlkOiBlLmNh
bmRpZGF0ZS5zZHBNaWQsIGNhbmRpZGF0ZTogZS5jYW5kaWRhdGUuY2FuZGlkYXRlfSk7CisgICAg
fSBlbHNlIHsKKyAgICAgIGNhbGxlci5hZGRJY2VDYW5kaWRhdGUoKTsKICAgICB9CiAgIH0pOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC92cDgtZm10cC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92cDgtZm10cC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzgyNWE5NzU2NzNhMGJlNjc0OWU0MjdhZDUyYmZiZjg0ZWNm
OTA4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZwOC1mbXRwLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworRkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbiBwYXJzZXMgbWF4LWZyIGFuZCBt
YXgtZnMgZm10cCBwYXJhbWV0ZXJzIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC92cDgtZm10cC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdnA4LWZtdHAuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xNmVhNjM1OTQ5ZjE0YmZlYzE4MDA1YzA4MDNhOWJjOTlkNjgwOWVjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvdnA4LWZtdHAuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50
PSJsb25nIj4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBGYWlsZWQgU3RhdGU8L3RpdGxlPgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorJ3VzZSBzdHJpY3QnOworCisvLyBUZXN0IHN1cHBvcnQgZm9yCisvLyBodHRwczovL3Rvb2xz
LmlldGYub3JnL2h0bWwvcmZjNzc0MSNzZWN0aW9uLTYuMQorCitjb25zdCBzZHAgPSBgdj0wCitv
PS0gMCAzIElOIElQNCAxMjcuMC4wLjEKK3M9LQordD0wIDAKK2E9ZmluZ2VycHJpbnQ6c2hhLTI1
NiBBNzoyNDo3MjpDQTo2RTowMjo1NTozOTpCQTo2NjpERjo2RTpDQzo0QzpEODpCMDoxQTpCRjox
QTo1Njo2NTo3RDpGNDowMzpBRDo3RTo3Nzo0MzoyQToyOTpFQzo5MworbT12aWRlbyA5IFVEUC9U
TFMvUlRQL1NBVlBGIDEwMAorYz1JTiBJUDQgMC4wLjAuMAorYT1ydGNwLW11eAorYT1zZW5kb25s
eQorYT1taWQ6dmlkZW8KK2E9cnRwbWFwOjEwMCBWUDgvOTAwMDAKK2E9Zm10cDoxMDAgbWF4LWZy
PTMwO21heC1mcz0zNjAwCithPXNldHVwOmFjdHBhc3MKK2E9aWNlLXVmcmFnOkVURW4KK2E9aWNl
LXB3ZDpPdFNLMFdwTnRwVWprWTQrODZqczdaL2wKK2A7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlv
bih7dHlwZTogJ29mZmVyJywgc2RwfSk7CisgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24o
KTsKKyAgY29uc3QgcmVjZWl2ZXIgPSBwYy5nZXRSZWNlaXZlcnMoKVswXTsKKyAgY29uc3QgcGFy
YW1ldGVycyA9IHJlY2VpdmVyLmdldFBhcmFtZXRlcnMoKTsKKyAgY29uc3Qge3NkcEZtdHBMaW5l
fSA9IHBhcmFtZXRlcnMuY29kZWNzWzBdOworICBhc3NlcnRfdHJ1ZSghIXNkcEZtdHBMaW5lKTsK
KyAgYXNzZXJ0X3RydWUoc2RwRm10cExpbmUuc3BsaXQoJzsnKS5pbmNsdWRlcygnbWF4LWZyPTMw
JykpOworICBhc3NlcnRfdHJ1ZShzZHBGbXRwTGluZS5zcGxpdCgnOycpLmluY2x1ZGVzKCdtYXgt
ZnM9MzYwMCcpKTsKK30sICdzZXRSZW1vdGVEZXNjcmlwdGlvbiBwYXJzZXMgbWF4LWZyIGFuZCBt
YXgtZnMgZm10cCBwYXJhbWV0ZXJzJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2cKaW5kZXggNGUzYzgxZTU5NzM2NmIzNDIxYjUy
NTI4M2RhNTY2MTU5NmZjNjlmNi4uNDdhNjc3YzNiYWU0N2VmZmM3MWUxMDI4NmFiNjNiNzQ4Y2M4
MDJkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5s
b2cKQEAgLTIwLDE3ICsyMCwyMyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2NhbmRpZGF0ZS1leGNo
YW5nZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvY3J5cHRvLXN1aXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9kdGxzLWZp
bmdlcnByaW50LXZhbGlkYXRpb24uaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtc2V0dXAuaHR0cHMuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29s
L2hhbmRvdmVyLWRhdGFjaGFubmVsLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXN0
YXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2UtdWZyYWdwd2QuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2pzZXAtaW5pdGlhbC1v
ZmZlci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvbWlzc2luZy1maWVsZHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL21zaWQtcGFyc2Uu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3J0cC1jbG9ja3JhdGUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1kZW11eGluZy5odG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
cnRwLWV4dGVuc2lvbi1zdXBwb3J0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC9zY3RwLWZvcm1hdC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1kb250LWRvbnQtZG9udC5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2lt
dWxjYXN0LWFuc3dlci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2ltdWxjYXN0LW9mZmVyLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvdW5rbm93bi1tZWRpYXR5cGVzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92aWRlby1jb2RlY3Mu
aHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL3ZwOC1mbXRwLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXBsZWNhbGwtbm8tc3NyY3Mu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3NpbXBsZWNhbGwtbm8tc3NyY3MuaHR0cHMuaHRtbAppbmRleCA1MTYwNDUxZjAxMmU2
NDJkZDU2OTdlMDM0YTE5YTdmODg5NTQyMWVhLi5mMmUyMDg0NjIzNGJiNDcwM2QyM2M4NzZmNDY4
OTk0ZGNkNzRiZTMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLW5vLXNzcmNzLmh0dHBzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxl
Y2FsbC1uby1zc3Jjcy5odHRwcy5odG1sCkBAIC04OCwxNiArODgsMTEgQEAKICAgfTsKIAogICB2
YXIgb25JY2VDYW5kaWRhdGVUb0ZpcnN0ID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQp
IHsKLSAgICAvLyBJZiBldmVudC5jYW5kaWRhdGUgaXMgbnVsbCA9IG5vIG1vcmUgY2FuZGlkYXRl
cy4KLSAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7Ci0gICAgICBnU2Vjb25kQ29ubmVjdGlvbi5h
ZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ1NlY29uZENvbm5l
Y3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CiAgIH0pOwogCiAgIHZhciBv
bkljZUNhbmRpZGF0ZVRvU2Vjb25kID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsK
LSAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7Ci0gICAgICBnRmlyc3RDb25uZWN0aW9uLmFkZElj
ZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwotICAgIH0KKyAgICBnRmlyc3RDb25uZWN0aW9u
LmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwogICB9KTsKIAogICB2YXIgb25SZW1v
dGVUcmFjayA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVj
YWxsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWwKaW5kZXggZmZlMDQzYjZhMjM3ZmFlMWE0
ZjcwZTJjZmFjNDk1YTJhNjEzMmMyOC4uZGJmNmI5YTUwODNhODdmZWVlYjNkOTNiZWZhMGEwNjAx
N2JlODU1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXBsZWNhbGwuaHR0cHMuaHRt
bApAQCAtNzksMTYgKzc5LDExIEBACiAgIH07CiAKICAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9GaXJz
dCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgLy8gSWYgZXZlbnQuY2Fu
ZGlkYXRlIGlzIG51bGwgPSBubyBtb3JlIGNhbmRpZGF0ZXMuCi0gICAgaWYgKGV2ZW50LmNhbmRp
ZGF0ZSkgewotICAgICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNh
bmRpZGF0ZSk7Ci0gICAgfQorICAgIGdTZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShl
dmVudC5jYW5kaWRhdGUpOwogICB9KTsKIAogICB2YXIgb25JY2VDYW5kaWRhdGVUb1NlY29uZCA9
IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0
ZSkgewotICAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlk
YXRlKTsKLSAgICB9CisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQu
Y2FuZGlkYXRlKTsKICAgfSk7CiAKICAgdmFyIG9uUmVtb3RlVHJhY2sgPSB0ZXN0LnN0ZXBfZnVu
YyhmdW5jdGlvbihldmVudCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3NpbXVsY2FzdC9iYXNpYy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNWU4ZWNlYmU5YjYzYzRk
OWMyODY5ZTQzOTQ5OGU2ODkwMDVmNTIwMi4uNzM3YjUzMmY0MzRkOTJhMDU4Njc5MzM4ZTE3YzBk
NWZmNmYyZTY4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11
bGNhc3QvYmFzaWMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAogCi1IYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotVElNRU9VVCBCYXNpYyBzaW11bGNh
c3Qgc2V0dXAgd2l0aCB0aHJlZSBzcGF0aWFsIGxheWVycyBUZXN0IHRpbWVkIG91dAorUEFTUyBC
YXNpYyBzaW11bGNhc3Qgc2V0dXAgd2l0aCB0d28gc3BhdGlhbCBsYXllcnMKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2lt
dWxjYXN0L2Jhc2ljLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbAppbmRleCA1ZDVm
M2I1MmY1ZjY2OGNhMmRkZDUyMThjNWM5ZjYwYjg4NDU1NWRmLi5iZjJiYWE4Y2FiOTlkMTU0MmY0
NjU1NGIzNTY2NGRhMjU3NjhlNWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9z
aW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbApAQCAtOSwxMiArOSwxMiBAQAogPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIHBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcmlkcyA9IFswLCAxLCAyXTsKKyAgY29u
c3QgcmlkcyA9IFswLCAxXTsKICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwogICBjb25zdCBwYzIgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7
CiAKICAgcmV0dXJuIG5lZ290aWF0ZVNpbXVsY2FzdEFuZFdhaXRGb3JWaWRlbyh0LCByaWRzLCBw
YzEsIHBjMik7Ci19LCAnQmFzaWMgc2ltdWxjYXN0IHNldHVwIHdpdGggdGhyZWUgc3BhdGlhbCBs
YXllcnMnKTsKK30sICdCYXNpYyBzaW11bGNhc3Qgc2V0dXAgd2l0aCB0d28gc3BhdGlhbCBsYXll
cnMnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRzLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3NpbXVsY2FzdC9nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNDMyOWEzMjNiY2Iw
NTJjOGMyYWJkNDAyN2ExN2I0ZGQyZWE2ODQyYy4uYjJjOWIzMWYzZjQ0YmY1NWY5ZDU5MTU2ODgz
MGQyZTVmZWI3YzJlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9zaW11bGNhc3QvZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAog
Ci1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotVElNRU9VVCBTaW11
bGNhc3QgZ2V0U3RhdHMgcmVzdWx0cyBUZXN0IHRpbWVkIG91dAorUEFTUyBTaW11bGNhc3QgZ2V0
U3RhdHMgcmVzdWx0cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11
bGNhc3QvaDI2NC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYTEwZWI3MjgwNjc3NDcxYzk2NTcz
YTlhM2Y3OTlhNzc2ZDZkNmViZC4uZTcyZDQ1MzI2MWE2ZGJmZWQ0OTczMGU1YTQ2MzQ0N2Q0MmYz
YTc1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9o
MjY0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAo
VElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgSDI2NCBzaW11bGNhc3Qgc2V0dXAg
d2l0aCB0aHJlZSBzcGF0aWFsIGxheWVycyBUZXN0IHRpbWVkIG91dAorUEFTUyBIMjY0IHNpbXVs
Y2FzdCBzZXR1cCB3aXRoIHR3byBzcGF0aWFsIGxheWVycwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2
NC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRtbAppbmRleCAyNmVkMmU5MDRhOGIzNTE3
YzlkZDM1YWYyNzYzMzBkNTM0MWQ3Mzg4Li5kMjNmMjk1MmFlYTQzZjgzZGJmZTM3MjY2YmJiZDVj
NTFhZTdiNWVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0
Lmh0dHBzLmh0bWwKQEAgLTE3LDEyICsxNywxMiBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CiAgIGFzc2VydF9pbXBsZW1lbnRzKCdnZXRDYXBhYmlsaXRpZXMnIGluIFJUQ1J0cFNlbmRlciwg
J1JUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMgbm90IHN1cHBvcnRlZCcpOwogICBhc3NlcnRf
aW1wbGVtZW50cyhSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycpLmNvZGVjcy5m
aW5kKGMgPT4gYy5taW1lVHlwZSA9PT0gJ3ZpZGVvL0gyNjQnKSwgJ0gyNjQgbm90IHN1cHBvcnRl
ZCcpOwogCi0gIGNvbnN0IHJpZHMgPSBbMCwgMSwgMl07CisgIGNvbnN0IHJpZHMgPSBbMCwgMV07
CiAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMS5jbG9zZSgpKTsKICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwogCiAgIHJldHVybiBuZWdv
dGlhdGVTaW11bGNhc3RBbmRXYWl0Rm9yVmlkZW8odCwgcmlkcywgcGMxLCBwYzIsIHttaW1lVHlw
ZTogJ3ZpZGVvL0gyNjQnfSk7Ci19LCAnSDI2NCBzaW11bGNhc3Qgc2V0dXAgd2l0aCB0aHJlZSBz
cGF0aWFsIGxheWVycycpOworfSwgJ0gyNjQgc2ltdWxjYXN0IHNldHVwIHdpdGggdHdvIHNwYXRp
YWwgbGF5ZXJzJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFj
dGl2ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMt
ZXhwZWN0ZWQudHh0CmluZGV4IDU1MTU4ODVjOTkzYTExZjRhMDAwMzZmMzI3ZjE1MmU3MzJjMWU0
ZDEuLjI1NzE5MGRiMWMyNDdmNTY5ZmE3ODc0ZGNlMGE5ZGVhYzlkMDA1OTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVs
Y2FzdC9zZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3Nl
dFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKIAot
SGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgU2ltdWxj
YXN0IHNldFBhcmFtZXRlcnMgYWN0aXZlPWZhbHNlIHN0b3BzIHNlbmRpbmcgZnJhbWVzIFRlc3Qg
dGltZWQgb3V0CitQQVNTIFNpbXVsY2FzdCBzZXRQYXJhbWV0ZXJzIGFjdGl2ZT1mYWxzZSBzdG9w
cyBzZW5kaW5nIGZyYW1lcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy5odG1sCmluZGV4IGY3
NTRjNjNmZmU5ZDQ3NGEwZWE4NGI0MDNjZDdiNWVkN2JhYWUxYTIuLjFhNzQzNzFiZmI2ZDcwMTY1
YTQzMzYwN2VlYzYyYjU5MDllNmRmNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFj
dGl2ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy5odG1s
CkBAIC0yMiw3ICsyMiw3IEBAIGFzeW5jIGZ1bmN0aW9uIHF1ZXJ5UmVjZWl2ZXJTdGF0cyhwYykg
ewogfQogCiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHJpZHMgPSBbMCwgMSwg
Ml07CisgIGNvbnN0IHJpZHMgPSBbMCwgMV07CiAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDU5MDIzNzcx
MWVlZmM4ZmM4OTY3MmVhNWNhYTAxYjIxOTA3ODYyYjUuLjA0ZDk3NDM4OTdmNmRiNmZmODlhMjdi
MjhhZGUxNTQzYmQyYWJiYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3NpbXVsY2FzdC92cDguaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAogCi1IYXJu
ZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotVElNRU9VVCBWUDggc2ltdWxj
YXN0IHNldHVwIHdpdGggdGhyZWUgc3BhdGlhbCBsYXllcnMgVGVzdCB0aW1lZCBvdXQKK1BBU1Mg
VlA4IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHR3byBzcGF0aWFsIGxheWVycwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11
bGNhc3QvdnA4Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLmh0bWwKaW5kZXggZTM1NjdlNjFj
MjFkMWI2OGU1NDlmYzhiMDQ1YjQ4ZWE5YjA3ZWNjNS4uOTQxNDVkMGM3OTRlZTMzY2E0YmFmZTAw
Y2ZmMmUwODExY2ZmZTJlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2Fz
dC92cDguaHR0cHMuaHRtbApAQCAtMTIsMTIgKzEyLDEyIEBAIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKICAgYXNzZXJ0X2ltcGxlbWVudHMoJ2dldENhcGFiaWxpdGllcycgaW4gUlRDUnRwU2Vu
ZGVyLCAnUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcyBub3Qgc3VwcG9ydGVkJyk7CiAgIGFz
c2VydF9pbXBsZW1lbnRzKFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ3ZpZGVvJykuY29k
ZWNzLmZpbmQoYyA9PiBjLm1pbWVUeXBlID09PSAndmlkZW8vVlA4JyksICdWUDggbm90IHN1cHBv
cnRlZCcpOwogCi0gIGNvbnN0IHJpZHMgPSBbMCwgMSwgMl07CisgIGNvbnN0IHJpZHMgPSBbMCwg
MV07CiAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwogCiAgIHJldHVybiBu
ZWdvdGlhdGVTaW11bGNhc3RBbmRXYWl0Rm9yVmlkZW8odCwgcmlkcywgcGMxLCBwYzIsIHttaW1l
VHlwZTogJ3ZpZGVvL1ZQOCd9KTsKLX0sICdWUDggc2ltdWxjYXN0IHNldHVwIHdpdGggdGhyZWUg
c3BhdGlhbCBsYXllcnMnKTsKK30sICdWUDggc2ltdWxjYXN0IHNldHVwIHdpdGggdHdvIHNwYXRp
YWwgbGF5ZXJzJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Rvb2xzL3BhY2thZ2UuanNvbiBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Rvb2xzL3BhY2th
Z2UuanNvbgppbmRleCBlMGMxY2ZkYTNlODE4YWVlZDUzOTg3OGQ4ZWY2N2VjMmRkOTkxNjM3Li5m
MjZjZmNjMTQyMWJmOGY5ZWNlZWI5ZjdjMTc0NmZmMjZmYjc5MzJlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90b29scy9wYWNr
YWdlLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvdG9vbHMvcGFja2FnZS5qc29uCkBAIC02LDEwICs2LDEwIEBACiAgICAgImxpbnQi
OiAiZXNsaW50IC1jIC5lc2xpbnRyYy5qcyAuLi8qLmh0bWwgLi4vKi5qcyIKICAgfSwKICAgImRl
dkRlcGVuZGVuY2llcyI6IHsKLSAgICAiZXNsaW50IjogIl40LjExLjAiLAorICAgICJlc2xpbnQi
OiAiXjcuMjQuMCIsCiAgICAgImVzbGludC1wbHVnaW4taHRtbCI6ICJeNC4wLjAiLAogICAgICJq
c2NvZGVzaGlmdCI6ICJeMC41LjEiLAotICAgICJqc2RvbSI6ICJeMTEuMTEuMCIKKyAgICAianNk
b20iOiAiXjE2LjUuMyIKICAgfSwKICAgImxpY2Vuc2UiOiAiQlNEIiwKICAgInByaXZhdGUiOiB0
cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9nCmluZGV4IDUxNGI2MWZmMWVkNjMw
ODY4YmRmMzU0ZGJjYmNiZTAxMzgzZmViY2IuLjBkYTg1N2JmMGViYzNkODU0NDkzNWYwNDg3Njdi
MGE5NDMwZmUxMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9nCkBAIC0zMSw2
ICszMSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53aW5kb3cuanMK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENE
YXRhQ2hhbm5lbC1idWZmZXJlZEFtb3VudC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFD
aGFubmVsLWljZVJlc3RhcnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWlkLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5k
LWJsb2Itb3JkZXIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQuaHRtbApAQCAtNDAsNyArNDEsNiBAQCBM
aXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0Vycm9yLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDYW5kaWRhdGUtY29uc3RydWN0b3IuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNv
bm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUtcGFpci5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVu
c2lvbi1oZWxwZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3Bv
cnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLVNMRC1TUkQtdGltaW5nLmh0dHBzLmh0bWwKQEAgLTUyLDE5
ICs1MiwyNSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYW5zY2VpdmVyLmh0
dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcy5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tY2FuZGlkYXRlLWluLXNkcC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FwdHVy
ZS12aWRlby5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0YXRlLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbnN0
cnVjdG9yLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVBbnN3ZXIuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWNyZWF0ZURhdGFDaGFubmVsLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRv
UmVjZWl2ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWRlc2NyaXB0aW9uLWF0dHJpYnV0ZXMtdGltaW5nLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1l
eHBsaWNpdC1yb2xsYmFjay1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2Vu
ZXJhdGVDZXJ0aWZpY2F0ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZlcnMu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWdldElkZW50aXR5QXNzZXJ0aW9uLnN1Yi5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tZ2V0U3RhdHMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFRyYW5zY2VpdmVycy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24taGVscGVyLXRlc3QuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5q
cwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS1kaXNjb25uZWN0ZWQuaHR0cHMuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNl
Q29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0
ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWwKQEAgLTc0
LDEwICs4MCwxMyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5nc3Rh
dGVjaGFuZ2VkLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1vcGVyYXRpb25zLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZWVySWRlbnRp
dHkuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24taGVscGVyLmpzCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbGF5LWNh
bnZhcy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUuaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXJlbW92ZVRyYWNrLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0
YXJ0SWNlLW9ubmVnb3RpYXRpb25uZWVkZWQuaHR0cHMuaHRtbApAQCAtMTAzLDggKzExMiwxMiBA
QCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXZpZGVvRGV0ZWN0b3JUZXN0Lmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbkljZUVycm9yRXZlbnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQtY29uc3Ry
dWN0b3IuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1F1aWNTdHJlYW0uaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1F1aWNUcmFuc3BvcnQtaGVscGVyLmpzCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUXVp
Y1RyYW5zcG9ydC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwQ2FwYWJpbGl0aWVzLWhlbHBlci5qcwogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRl
cnMtY29kZWNzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRlZ3JhZGF0aW9uUHJlZmVyZW5jZS5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
UGFyYW1ldGVycy1lbmNvZGluZ3MuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVhZGVyRXh0ZW5zaW9ucy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwUGFyYW1ldGVycy1oZWxwZXIuanMKQEAgLTEyNSw2ICsxMzgsNyBAQCBMaXN0IG9mIGZp
bGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1J0cFNlbmRlci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItZGlyZWN0aW9uLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBU
cmFuc2NlaXZlci1zZXRDb2RlY1ByZWZlcmVuY2VzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXREaXJl
Y3Rpb24uaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENTY3RwVHJhbnNwb3J0LWNvbnN0cnVjdG9yLmh0bWwKQEAgLTEzNCwxMCArMTQ4LDEwIEBAIExp
c3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDU3RhdHMtaGVscGVyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDVHJhY2tFdmVudC1jb25zdHJ1Y3Rvci5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDVHJh
Y2tFdmVudC1maXJlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZGljdGlvbmFyeS1oZWxwZXIu
anMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9n
ZXRzdGF0cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvaGlzdG9yaWNhbC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvaWRlbnRpdHktaGVscGVyLnN1Yi5qcwogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2lkbGhhcm5lc3MuaHR0cHMu
d2luZG93LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvbm8tbWVkaWEtY2FsbC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvbWlzZXMtY2FsbC5odG1sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDI1NDVlMWM1OGE0OThiYTVkYmVkZTJlMzEz
ZDQyZWNjMmY0MzJiYTcuLjY2ZjBlMGI5OGNiOTAxYTA0MGViZDFhNDkzZTZjMjY4Mzc3NTBjMDUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMDQzLDcg
KzIwNDMsNyBAQCB3ZWJraXQub3JnL2IvMjE4MzQ2IFsgTW9qYXZlIF0gZmFzdC90ZXh0L2NhbnZh
cy1jb2xvci1mb250cyBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMjE5NDAzIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1p
bi1zZHAuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8yMTk0NjAg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
cGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMjE5
NDYwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKIHdl
YmtpdC5vcmcvYi8yMTk1NTUgaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwg
WyBQYXNzIFRpbWVvdXQgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25z
Lmpzb24gYi9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KaW5kZXggMmE4MTIxYWJjNzFk
NTc0MzQwMGNlMmFhNzdiYzdjNDFlYTUzYWNiZC4uMDA3NDM2NTFmYmY0YTg2N2Y3YjJhNDEwNDc4
MmVhMTA2OGU1NGViMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29u
CisrKyBiL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgpAQCAtNDA2Nyw2ICs0MDY3LDkg
QEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNo
YW5uZWwtY2xvc2UuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtaWNlUmVzdGFy
dC5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwiOiBbCiAgICAg
ICAgICJzbG93IgogICAgIF0sCkBAIC00MDc2LDYgKzQwNzksOSBAQAogICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRp
bWluZy5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAorICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYXB0dXJl
LXZpZGVvLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0
ZURhdGFDaGFubmVsLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCkBAIC00MDk3LDYg
KzQxMDMsMTIgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy5odG1sIjogWwogICAg
ICAgICAic2xvdyIKICAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC5odG1sIjog
WworICAgICAgICAic2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZWxheS1jYW52YXMuaHR0cHMuaHRtbCI6
IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUuaHR0cHMu
aHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKQEAgLTQxMzksNiArNDE1MSwxNSBAQAog
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2Ut
dWZyYWdwd2QuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0ZS5odG1s
IjogWworICAgICAgICAic2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zZGVzLWRvbnQtZG9udC1kb250Lmh0bWwiOiBbCisg
ICAgICAgICJzbG93IgorICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3ZwOC1mbXRwLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAg
IF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2Fz
dC9iYXNpYy5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438460</attachid>
            <date>2021-09-17 04:40:58 -0700</date>
            <delta_ts>2021-09-20 02:57:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-229549-20210917134050.patch</filename>
            <type>text/plain</type>
            <size>279506</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNjQ3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWYyMmYwNTU0MzMyZjQ3M2FiMDEx
ZmU1OGU2MGM0ZmEzNTcwMGUyMC4uNzhmZWQ3Nzk3Y2VlYWYxMTJmNjU5MGI0ZGRlMzUxN2M3OWFj
ZTkxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA5LTE3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN5bmMgV1BUIHdlYnJ0YyB0ZXN0cyBmcm9t
IHVwc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjk1NDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyNjcwMjM2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBVbnNraXBwaW5nIHNvbWUgdGVzdHMg
dGhhdCBhcmUgbm8gbG9uZ2VyIGZsYWt5LgorICAgICAgICBNYXJraW5nIHNvbWUgbmV3IHRlc3Rz
IGFzIGZsYWt5LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiB0ZXN0cy1vcHRpb25zLmpzb246
CisKIDIwMjEtMDktMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFdQVCB3ZWJydGMgUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1vZmZl
ci5odG1sIGFuZCBSVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLWFuc3dlci5o
dG1sIGFyZSBmbGFreSBkdWUgdG8gYWx3YXlzIGNoYW5naW5nIGZhaWxpbmcgYXNzZXJ0aW9uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAwODBkOGMyOTNlYzFjMzAzMjVkYmY3NDBj
YmUyMzI0MDBmNmVjOWUzLi4xMmVkM2FhOThmODJiOGMwYjQ4MzRkZDZjMzM4MGM0Y2VhNGU5ZGEw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTcgQEAKKzIwMjEt
MDktMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlc3lu
YyBXUFQgd2VicnRjIHRlc3RzIGZyb20gdXBzdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTU0OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODI2NzAyMzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAg
ICogcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9u
LWljZVNlcnZlcnMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0RhdGFDaGFubmVsLWJ1ZmZlcmVkQW1vdW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3Nl
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5l
bC1pY2VSZXN0YXJ0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pY2VSZXN0YXJ0Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hh
bm5lbC1zZW5kLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENE
dGxzVHJhbnNwb3J0LXN0YXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtc3RhdGUuaHRtbDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUtcGFp
ci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLWhlbHBlci5qczogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0
cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
SWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rp
b25TZXR1cC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tYWRkVHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkVHJhY2suaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhcHR1cmUt
dmlkZW8uaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVj
dGlvblN0YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2VpdmUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWNyZWF0ZU9mZmVyLW9mZmVyVG9SZWNlaXZlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVs
dEljZVNlcnZlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tZ2V0SWRlbnRpdHlBc3NlcnRpb24uc3ViLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRJZGVu
dGl0eUFzc2VydGlvbi5zdWIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpz
OgorICAgICAgICAoZG9FeGNoYW5nZSk6CisgICAgICAgIChhc3luYyBsaXN0ZW5Gb3JTU1JDcyk6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1p
Y2VDb25uZWN0aW9uU3RhdGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24taWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFu
ZGF0b3J5LWdldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRw
cy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcGVlcklkZW50aXR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZWVySWRlbnRpdHkuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS1saW5lYXIuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMtbm90
LXN1cHBvcnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1yZWxheS1jYW52YXMuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbGF5LWNhbnZh
cy5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZS10cmFjay1tdXRlLmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJl
c3RhcnRJY2UuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxE
ZXNjcmlwdGlvbi1hbnN3ZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1vZmZlci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXByYW5zd2VyLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExv
Y2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXRyYWNrcy5o
dHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFt
ZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0RGlyZWN0aW9uLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBUcmFuc2NlaXZlci1zZXREaXJlY3Rpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0
b3AuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5z
Y2VpdmVyLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENTdGF0cy1oZWxwZXIuanM6CisgICAgICAgICh2YWxpZGF0ZUNvZGVjU3RhdHMpOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwtZW1wdHlzdHJpbmctZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
ZGF0YWNoYW5uZWwtZW1wdHlzdHJpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL2dldHN0YXRzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9pZGVudGl0eS1oZWxwZXIuc3ViLmpzOiBBZGRlZC4KKyAgICAgICAgKHBh
cnNlQXNzZXJ0aW9uUmVzdWx0KToKKyAgICAgICAgKGdldElkcERvbWFpbnMpOgorICAgICAgICAo
YXNzZXJ0X3J0Y2Vycm9yX3JlamVjdGlvbik6CisgICAgICAgIChzZXQgaG9zdFN0cmluZyk6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9uby1tZWRpYS1jYWxsLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm9taXNlcy1jYWxsLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9SRUFETUUudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1zZXR1cC5o
dHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvZHRscy1zZXR1cC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9oYW5kb3Zlci1kYXRhY2hhbm5lbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtY2xvY2tyYXRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC9ydHAtY2xvY2tyYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvcnRwLWV4dGVuc2lvbi1zdXBwb3J0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0
ZW5zaW9uLXN1cHBvcnQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zZGVzLWRvbnQtZG9udC1kb250LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC9zZGVzLWRvbnQtZG9udC1kb250Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZwOC1mbXRwLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92cDgtZm10
cC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL3czYy1pbXBvcnQubG9nOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
c2ltcGxlY2FsbC1uby1zc3Jjcy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9iYXNpYy5odHRwcy5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRz
Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3NpbXVsY2FzdC9oMjY0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0
cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2lt
dWxjYXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Rvb2xzL3BhY2thZ2UuanNv
bjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9nOgor
CiAyMDIxLTA5LTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDb21wdXRlIFJUQ1BlZXJDb25uZWN0aW9uLmNvbm5lY3Rpb25TdGF0ZSBhcyBwZXIgaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy8jcnRjcGVlcmNvbm5lY3Rpb25zdGF0ZS1lbnVtCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCA5NGM2Mjc4YTljNTUwNTg3YzEwNTc1MjMzYzIzYWZjODAyNzdh
MGM3Li5jNjdhYzQyNGE2NGFhYjNkODM5ZGI2MGYxOTdiZTE3Y2UyY2FmZjVlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTIxOTcsMjEgKzIxOTcsMTEgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FuZGlkYXRlLWluLXNkcC5odHRwcy4K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1
cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQogCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1yZWxheS1jYW52YXMuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAt
Y2xvY2tyYXRlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQorCiAjIFNraXAgdGltaW5nIG91dCB0ZXN0
Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1zZXRSZW1vdGVEZXNjcmlwdGlvbi10cmFja3MuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3Rl
LXRyYWNrLW11dGUuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQuaHRtbCBbIFNraXAg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlv
blN0YXRlLWNhbmRpZGF0ZS1wYWlyLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRT
dGF0cy5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmljZWNhbmRpZGF0ZWVycm9yLmh0dHBzLmh0bWwg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1RyYWNr
RXZlbnQtZmlyZS5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9kdGxzLWZpbmdlcnByaW50LXZhbGlkYXRpb24uaHRtbCBbIFNraXAg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2lj
Lmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3NpbXVsY2FzdC9nZXRTdGF0cy5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sIFsgU2tp
cCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0
UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy5odG1sIFsgU2tpcCBdCi0K
IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY2xvc2VkLXN0YXRlLmh0bWwgWyBT
a2lwIF0KIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY29ubmVjdGlvbnN0
YXRlY2hhbmdlLWV2ZW50Lmh0bWwgWyBTa2lwIF0KIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24tbW9yZS1tZWRpYS10by1uZWdvdGlhdGUuaHRtbCBbIFNraXAgXQpAQCAtMjIxOSw2
ICsyMjA5LDkgQEAgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1vdmVybG9hZGVk
LW9wZXJhdGlvbnMtcGFyYW1zLmh0bWwgWyBTa2lwIF0KIGZhc3QvbWVkaWFzdHJlYW0vUlRDUnRw
U2VuZGVyLXJlcGxhY2VUcmFjay5odG1sIFsgU2tpcCBdCiBmYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLWluc3BlY3Qtb2ZmZXItYnVuZGxlUG9saWN5LWJ1bmRsZS1vbmx5Lmh0bWwg
WyBGYWlsdXJlIF0KIAorIyBNaXNzaW5nIEFQSSBzdXBwb3J0LgoraW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FwdHVyZS12aWRlby5odHRw
cy5odG1sIFsgU2tpcCBdCisKICMgT25seSBpT1MgV0sxIGhhcyB0ZXN0UnVubmVyLnNldFBhZ2VQ
YXVzZWQuCiBmYXN0L2RvbS90aW1lci1maXJlLWFmdGVyLXBhZ2UtcGF1c2UuaHRtbCBbIFNraXAg
XQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9y
dC1leHBlY3RhdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMv
aW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4IDc0NTM3ZjhhMGVmMzQ2YWRmYjg4NmMxYTc4
ZWZkOTkwMjhiNzVjMDkuLmI0NzA0YmVkMDlmYjVkNzlkOTk2ZTQ1NDE4MjI1YzYzNzBkNDNjZjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4
cGVjdGF0aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMv
aW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCkBAIC00NjYsNSArNDY2LDYgQEAKICAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtsZXRzIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMveC1mcmFtZS1vcHRpb25zIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3ho
ciI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtL3Rlc3QvaHRtbC9pbmZyYXN0cnVjdHVy
ZSI6ICJpbXBvcnQiCisgICAgIndlYi1wbGF0Zm9ybS90ZXN0L2h0bWwvaW5mcmFzdHJ1Y3R1cmUi
OiAiaW1wb3J0IiwgCisgICAgIndlYnJ0Yy1wbGF0Zm9ybS10ZXN0cy93ZWJydGMiOiAiaW1wb3J0
IgogfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24t
aWNlU2VydmVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMtZXhwZWN0ZWQu
dHh0CmluZGV4IDM4MGM0N2NiN2FkZGYxMDY5NjdjMmMwZmUxMWM3Y2VkMTU1NjlhYTAuLmIxNjE3
MTcyOGI1MDU2MmIwZWMwNTI0MTFmMjUzZTc0MjMzMjQ1ZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRp
b24taWNlU2VydmVycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4
cGVjdGVkLnR4dApAQCAtMTQwLDE4ICsxNDAsNCBAQCBGQUlMIHNldENvbmZpZ3VyYXRpb24oY29u
ZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNzd29yZCwgYW5kCiAg
ICAgICAgICAgYWNjZXNzVG9rZW46ICcnCiAgICAgICAgIH0KICAgICAgIH1dIH0pIiBkaWQgbm90
IHRocm93Ci1GQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBz
ZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRoLCBhbmQgc3RyaW5nIGNyZWRlbnRpYWwgc2hvdWxk
IHRocm93IEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigp
ID0+Ci0gICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewotICAgICAgICB1cmxzOiAndHVybnM6
dHVybi5leGFtcGxlLm9yZycsCi0gICAgICAgIGNyZWRlbnRpYWxUeXBlOiAnb2F1dGgnLAotICAg
ICAgICB1c2VybmFtZTogJ3VzZXInLAotICAgICAgICBjcmVkZW50aWFsOiAnY3JlZCcKLSAgICAg
IH1dIH0pIiBkaWQgbm90IHRocm93Ci1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdp
dGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCwgYW5kIHN0cmluZyBjcmVkZW50
aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1
bmN0aW9uICIoKSA9PgotICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKLSAgICAgICAgdXJs
czogJ3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLAotICAgICAgICBjcmVkZW50aWFsVHlwZTogJ29h
dXRoJywKLSAgICAgICAgdXNlcm5hbWU6ICd1c2VyJywKLSAgICAgICAgY3JlZGVudGlhbDogJ2Ny
ZWQnCi0gICAgICB9XSB9KSIgZGlkIG5vdCB0aHJvdwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9u
LWljZVNlcnZlcnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCmluZGV4IDFjYmYx
ZDZjMWRhNDdiODBkOWIzZDcxNzNmNzgwNjJmMmU0OWJmMTAuLjM2ZjEyNzc2NzhhYzNlNDAyZTYw
ZTEyNTRjMzliYzBkNGQ4NGU4NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCkBAIC0zNzAsMzYgKzM3MCw0IEBA
CiAgICAgICB9XSB9KSk7CiAgIH0sICd3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUg
cGFzc3dvcmQsIGFuZCBvYmplY3QgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vz
c0Vycm9yJyk7CiAKLSAgLyoKLSAgICA0LjMuMi4gIFRvIHNldCBhIGNvbmZpZ3VyYXRpb24KLSAg
ICAgIDExLjYuIElmIHNjaGVtZSBuYW1lIGlzIHR1cm4gb3IgdHVybnMsIGFuZCBzZXJ2ZXIuY3Jl
ZGVudGlhbFR5cGUgaXMgIm9hdXRoIiwKLSAgICAgICAgICAgIGFuZCBzZXJ2ZXIuY3JlZGVudGlh
bCBpcyBub3QgYW4gUlRDT0F1dGhDcmVkZW50aWFsLCB0aGVuIHRocm93IGFuCi0gICAgICAgICAg
ICBJbnZhbGlkQWNjZXNzRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgKi8KLSAgY29u
ZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZEFjY2Vz
c0Vycm9yJywgKCkgPT4KLSAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7Ci0gICAgICAgIHVy
bHM6ICd0dXJuczp0dXJuLmV4YW1wbGUub3JnJywKLSAgICAgICAgY3JlZGVudGlhbFR5cGU6ICdv
YXV0aCcsCi0gICAgICAgIHVzZXJuYW1lOiAndXNlcicsCi0gICAgICAgIGNyZWRlbnRpYWw6ICdj
cmVkJwotICAgICAgfV0gfSkpOwotICB9LCAnd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxU
eXBlIG9hdXRoLCBhbmQgc3RyaW5nIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nl
c3NFcnJvcicpOwotCi0gIC8qCi0gICAgVGVzdGVkCi0gICAgICA0LjMuMi4gIFRvIHNldCBhIGNv
bmZpZ3VyYXRpb24KLSAgICAgICAgMTEuMS02LgotCi0gICAgVW50ZXN0YWJsZQotICAgICAgNC4z
LjIuICBUbyBzZXQgYSBjb25maWd1cmF0aW9uCi0gICAgICAgIDExLjcuICBBcHBlbmQgc2VydmVy
IHRvIHZhbGlkYXRlZFNlcnZlcnMuCi0KLSAgICBDb3ZlcmFnZSBSZXBvcnQKLSAgICAgIFRlc3Rl
ZCAgICAgICAgIDkKLSAgICAgIE5vdCBUZXN0ZWQgICAgIDAKLSAgICAgIFVudGVzdGFibGUgICAg
IDEKLSAgICAgIFRvdGFsICAgICAgICAgMTAKLSAgICovCi0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
RGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVmZmVy
ZWRBbW91bnQtZXhwZWN0ZWQudHh0CmluZGV4IDQyYjZjNjMyMGU5ZWUzNzIxNjFiYmIyMGE1NmQx
MDQwMGRiMjk0OGIuLjgwNWY4YWY0OGMwODgwNjJhOGE2NDA4ZmU3OTlmZjcyMjAxNmY3NTkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsLWJ1ZmZlcmVkQW1vdW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hh
bm5lbC1idWZmZXJlZEFtb3VudC1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsMjYgQEAKIAotSGFy
bmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLUZBSUwgYnVmZmVyZWRBbW91
bnQgc2hvdWxkIGluY3JlYXNlIHRvIGJ5dGUgbGVuZ3RoIG9mIGVuY29kZWQgdW5pY29kZSBzdHJp
bmcgc2VudCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgYnVmZmVyZWRBbW91bnQgdG8gYmUgdGhlIGJ5
dGUgbGVuZ3RoIG9mIHRoZSB1bmljb2RlIHN0cmluZyBleHBlY3RlZCAxMiBidXQgZ290IDAKLUZB
SUwgYnVmZmVyZWRBbW91bnQgc2hvdWxkIGluY3JlYXNlIHRvIGJ5dGUgbGVuZ3RoIG9mIGJ1ZmZl
ciBzZW50IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBidWZmZXJlZEFtb3VudCB0byBpbmNyZWFzZSB0
byBieXRlIGxlbmd0aCBvZiBzZW50IGJ1ZmZlciBleHBlY3RlZCA1IGJ1dCBnb3QgMAotRkFJTCBi
dWZmZXJlZEFtb3VudCBzaG91bGQgaW5jcmVhc2UgdG8gc2l6ZSBvZiBibG9iIHNlbnQgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiTm90U3VwcG9y
dGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iCi1GQUlMIGJ1ZmZlcmVk
QW1vdW50IHNob3VsZCBpbmNyZWFzZSBieSBieXRlIGxlbmd0aCBmb3IgZWFjaCBtZXNzYWdlIHNl
bnQgYXNzZXJ0X3VucmVhY2hlZDogVW5leHBlY3RlZCBwcm9taXNlIHJlamVjdGlvbjogRXJyb3I6
IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBidWZmZXJlZEFtb3VudCB0byBiZSB0aGUgdG90YWwgbGVu
Z3RoIG9mIGFsbCBtZXNzYWdlcyBxdWV1ZWQgdG8gc2VuZCBleHBlY3RlZCA1IGJ1dCBnb3QgMCBS
ZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLVRJTUVPVVQgRGF0YSBjaGFubmVsIGJ1ZmZlcmVkYW1v
dW50bG93IGV2ZW50IGZpcmVzIGFmdGVyIHNlbmQoKSBpcyBjb21wbGV0ZSBUZXN0IHRpbWVkIG91
dAotTk9UUlVOIERhdGEgY2hhbm5lbCBidWZmZXJlZGFtb3VudCBpcyBkYXRhLmxlbmd0aCBvbiBz
ZW5kKGRhdGEpCi1OT1RSVU4gRGF0YSBjaGFubmVsIGJ1ZmZlcmVkYW1vdW50IHJldHVybnMgdGhl
IHNhbWUgYW1vdW50IGlmIG5vIG1vcmUgZGF0YSBpcyBzZW50IG9uIHRoZSBjaGFubmVsCi1OT1RS
VU4gRGF0YSBjaGFubmVsIGJ1ZmZlcmVkYW1vdW50bG93IGV2ZW50IGZpcmVzIG9ubHkgb25jZSBh
ZnRlciBtdWx0aXBsZSBjb25zZWN1dGl2ZSBzZW5kKCkgY2FsbHMKLU5PVFJVTiBEYXRhIGNoYW5u
ZWwgYnVmZmVyZWRhbW91bnRsb3cgZXZlbnQgZmlyZXMgYWZ0ZXIgZWFjaCBzZW50IG1lc3NhZ2UK
K1BBU1MgZGF0YWNoYW5uZWwgYnVmZmVyZWRBbW91bnQgaW5pdGlhbCB2YWx1ZSBzaG91bGQgYmUg
MCBmb3IgYm90aCBwZWVycworUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQg
aW5jcmVhc2UgdG8gYnl0ZSBsZW5ndGggb2YgZW5jb2RlZHVuaWNvZGUgc3RyaW5nIHNlbnQKK1BB
U1MgZGF0YWNoYW5uZWwgYnVmZmVyZWRBbW91bnQgc2hvdWxkIGluY3JlYXNlIHRvIGJ5dGUgbGVu
Z3RoIG9mIGJ1ZmZlciBzZW50CitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3Vs
ZCBpbmNyZWFzZSB0byBzaXplIG9mIGJsb2Igc2VudAorUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJl
ZEFtb3VudCBzaG91bGQgaW5jcmVhc2UgYnkgYnl0ZSBsZW5ndGggZm9yIGVhY2ggbWVzc2FnZSBz
ZW50CitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBub3QgZGVjcmVhc2Ug
aW1tZWRpYXRlbHkgYWZ0ZXIgaW5pdGlhdGluZyBjbG9zdXJlCitQQVNTIGRhdGFjaGFubmVsIGJ1
ZmZlcmVkQW1vdW50IHNob3VsZCBub3QgZGVjcmVhc2UgYWZ0ZXIgY2xvc2luZyB0aGUgcGVlciBj
b25uZWN0aW9uCitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZlcmVkYW1vdW50bG93IGV2ZW50IGZpcmVz
IGFmdGVyIHNlbmQoKSBpcyBjb21wbGV0ZQorUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJlZGFtb3Vu
dCBpcyBkYXRhLmxlbmd0aCBvbiBzZW5kKGRhdGEpCitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZlcmVk
YW1vdW50IHJldHVybnMgdGhlIHNhbWUgYW1vdW50IGlmIG5vIG1vcmUgZGF0YSBpcworUEFTUyBk
YXRhY2hhbm5lbCBidWZmZXJlZGFtb3VudGxvdyBldmVudCBmaXJlcyBvbmx5IG9uY2UgYWZ0ZXIg
bXVsdGlwbGUgY29uc2VjdXRpdmUgc2VuZCgpIGNhbGxzCitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZl
cmVkYW1vdW50bG93IGV2ZW50IGZpcmVzIGFmdGVyIGVhY2ggc2VudCBtZXNzYWdlCitQQVNTIG5l
Z290aWF0ZWQgZGF0YWNoYW5uZWwgYnVmZmVyZWRBbW91bnQgaW5pdGlhbCB2YWx1ZSBzaG91bGQg
YmUgMCBmb3IgYm90aCBwZWVycworUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVk
QW1vdW50IHNob3VsZCBpbmNyZWFzZSB0byBieXRlIGxlbmd0aCBvZiBlbmNvZGVkdW5pY29kZSBz
dHJpbmcgc2VudAorUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNo
b3VsZCBpbmNyZWFzZSB0byBieXRlIGxlbmd0aCBvZiBidWZmZXIgc2VudAorUEFTUyBuZWdvdGlh
dGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSB0byBzaXplIG9m
IGJsb2Igc2VudAorUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNo
b3VsZCBpbmNyZWFzZSBieSBieXRlIGxlbmd0aCBmb3IgZWFjaCBtZXNzYWdlIHNlbnQKK1BBU1Mg
bmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQgbm90IGRlY3JlYXNl
IGltbWVkaWF0ZWx5IGFmdGVyIGluaXRpYXRpbmcgY2xvc3VyZQorUEFTUyBuZWdvdGlhdGVkIGRh
dGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBub3QgZGVjcmVhc2UgYWZ0ZXIgY2xvc2lu
ZyB0aGUgcGVlciBjb25uZWN0aW9uCitQQVNTIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgYnVmZmVy
ZWRhbW91bnRsb3cgZXZlbnQgZmlyZXMgYWZ0ZXIgc2VuZCgpIGlzIGNvbXBsZXRlCitQQVNTIG5l
Z290aWF0ZWQgZGF0YWNoYW5uZWwgYnVmZmVyZWRhbW91bnQgaXMgZGF0YS5sZW5ndGggb24gc2Vu
ZChkYXRhKQorUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkYW1vdW50IHJldHVy
bnMgdGhlIHNhbWUgYW1vdW50IGlmIG5vIG1vcmUgZGF0YSBpcworUEFTUyBuZWdvdGlhdGVkIGRh
dGFjaGFubmVsIGJ1ZmZlcmVkYW1vdW50bG93IGV2ZW50IGZpcmVzIG9ubHkgb25jZSBhZnRlciBt
dWx0aXBsZSBjb25zZWN1dGl2ZSBzZW5kKCkgY2FsbHMKK1BBU1MgbmVnb3RpYXRlZCBkYXRhY2hh
bm5lbCBidWZmZXJlZGFtb3VudGxvdyBldmVudCBmaXJlcyBhZnRlciBlYWNoIHNlbnQgbWVzc2Fn
ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1jbG9zZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1j
bG9zZS1leHBlY3RlZC50eHQKaW5kZXggM2UxNjlkNjMwYzVkMWRmMWQ4YjkxMTEzMjNkMjE4M2U1
NTEyMjk3Zi4uMzc5MGIxMGMzYjBiZjEwOTcwMDk0YWM0YjNkOGExMDcxMmNjYTY2ZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRGF0YUNoYW5uZWwtY2xvc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLWV4
cGVjdGVkLnR4dApAQCAtMyw4ICszLDEwIEBAIFBBU1MgQ2xvc2UgZGF0YWNoYW5uZWwgY2F1c2Vz
IG9uY2xvc2luZyBhbmQgb25jbG9zZSB0byBiZSBjYWxsZWQKIFBBU1MgQ2xvc2UgZGF0YWNoYW5u
ZWwgY2F1c2VzIGNsb3NpbmcgYW5kIGNsb3NlIGV2ZW50IHRvIGJlIGNhbGxlZAogUEFTUyBDbG9z
ZSBwZWVyY29ubmVjdGlvbiBjYXVzZXMgY2xvc2UgZXZlbnQgYW5kIGVycm9yIHRvIGJlIGNhbGxl
ZCBvbiBkYXRhY2hhbm5lbAogUEFTUyBDbG9zZSBwZWVyY29ubmVjdGlvbiBhZnRlciBkYXRhY2hh
bm5lbCBjbG9zZSBjYXVzZXMgbm8gZXZlbnRzCitGQUlMIENsb3NlIHBlZXJjb25uZWN0aW9uIGNh
dXNlcyBjbG9zZSBldmVudCBhbmQgZXJyb3Igb24gbWFueSBjaGFubmVscywgZGF0YWNoYW5uZWwg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMCBidXQgZ290IDEKIFBBU1MgQ2xvc2UgbmVnb3RpYXRl
ZCBkYXRhY2hhbm5lbCBjYXVzZXMgb25jbG9zaW5nIGFuZCBvbmNsb3NlIHRvIGJlIGNhbGxlZAog
UEFTUyBDbG9zZSBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGNhdXNlcyBjbG9zaW5nIGFuZCBjbG9z
ZSBldmVudCB0byBiZSBjYWxsZWQKIFBBU1MgQ2xvc2UgcGVlcmNvbm5lY3Rpb24gY2F1c2VzIGNs
b3NlIGV2ZW50IGFuZCBlcnJvciB0byBiZSBjYWxsZWQgb24gbmVnb3RpYXRlZCBkYXRhY2hhbm5l
bAogUEFTUyBDbG9zZSBwZWVyY29ubmVjdGlvbiBhZnRlciBuZWdvdGlhdGVkIGRhdGFjaGFubmVs
IGNsb3NlIGNhdXNlcyBubyBldmVudHMKK1BBU1MgQ2xvc2UgcGVlcmNvbm5lY3Rpb24gY2F1c2Vz
IGNsb3NlIGV2ZW50IGFuZCBlcnJvciBvbiBtYW55IGNoYW5uZWxzLCBuZWdvdGlhdGVkIGRhdGFj
aGFubmVsCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1jbG9z
ZS5odG1sCmluZGV4IGNkNGFjZTJhODM2YmUyYzlmMThkZWNhNDhjOGMwMWY1ZTFjZGZmMWQuLmUy
YTViYTc3MjQ1Y2U0ZDgyMDRmNDczY2ZlZDFjMTIyMzc0MTY2N2UgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFu
bmVsLWNsb3NlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UuaHRtbApAQCAtNDUsNyArNDUsNyBA
QCBmb3IgKGNvbnN0IG9wdGlvbnMgb2YgW3t9LCB7bmVnb3RpYXRlZDogdHJ1ZSwgaWQ6IDB9XSkg
ewogICAgIGFzc2VydF90cnVlKGNsb3NpbmdTZWVuLCAnQ2xvc2luZyBldmVudCB3YXMgc2Vlbicp
OwogICB9LCBgQ2xvc2UgJHttb2RlfSBjYXVzZXMgY2xvc2luZyBhbmQgY2xvc2UgZXZlbnQgdG8g
YmUgY2FsbGVkYCk7CiAKLSAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwogICAgIGNvbnN0IFtjaGFu
bmVsMSwgY2hhbm5lbDJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMs
IHBjMSk7CkBAIC0xMDAsNSArMTAwLDgxIEBAIGZvciAoY29uc3Qgb3B0aW9ucyBvZiBbe30sIHtu
ZWdvdGlhdGVkOiB0cnVlLCBpZDogMH1dKSB7CiAgICAgcGMxLmNsb3NlKCk7CiAgICAgYXdhaXQg
bmV3IFByb21pc2UocmVzb2x2ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCAxMCkpOwogICB9
LCBgQ2xvc2UgcGVlcmNvbm5lY3Rpb24gYWZ0ZXIgJHttb2RlfSBjbG9zZSBjYXVzZXMgbm8gZXZl
bnRzYCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3Nl
KCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICAgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgn
bm90LWNvdW50ZWQnLCBvcHRpb25zKTsKKyAgICBjb25zdCB0b2tlbkRhdGFDaGFubmVsID0gbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICBwYzIub25kYXRhY2hhbm5lbCA9IHJlc29sdmU7
CisgICAgfSk7CisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgICBhd2Fp
dCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgICBpZiAoIW9wdGlvbnMubmVnb3Rp
YXRlZCkgeworICAgICAgYXdhaXQgdG9rZW5EYXRhQ2hhbm5lbDsKKyAgICB9CisgICAgbGV0IGNs
b3NlRXhwZWN0ZWRDb3VudCA9IDA7CisgICAgbGV0IGVycm9yRXhwZWN0ZWRDb3VudCA9IDA7Cisg
ICAgbGV0IHJlc29sdmVDb3VudElzWmVybzsKKyAgICBsZXQgd2FpdEZvckNvdW50SXNaZXJvID0g
bmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICByZXNvbHZlQ291bnRJc1plcm8gPSByZXNv
bHZlOworICAgIH0pOworICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDEwOyBpKyspIHsKKyAgICAg
IGlmICgnaWQnIGluIG9wdGlvbnMpIHsKKyAgICAgICAgb3B0aW9ucy5pZCA9IGk7CisgICAgICB9
CisgICAgICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJycsIG9wdGlvbnMpOworICAgICAgaWYgKG9w
dGlvbnMubmVnb3RpYXRlZCkgeworICAgICAgICBjb25zdCBjaGFubmVsID0gcGMyLmNyZWF0ZURh
dGFDaGFubmVsKCcnLCBvcHRpb25zKTsKKyAgICAgICAgY2hhbm5lbC5hZGRFdmVudExpc3RlbmVy
KCdlcnJvcicsIHQuc3RlcF9mdW5jKGV2ZW50ID0+IHsKKyAgICAgICAgICBhc3NlcnRfdHJ1ZShl
dmVudCBpbnN0YW5jZW9mIFJUQ0Vycm9yRXZlbnQsICdlcnJvciBldmVudCAnICsgZXZlbnQpOwor
ICAgICAgICAgIGVycm9yRXhwZWN0ZWRDb3VudCAtPSAxOworICAgICAgICB9KSk7CisgICAgICAg
IGNoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xvc2UnLCB0LnN0ZXBfZnVuYyhldmVudCA9PiB7
CisgICAgICAgICAgY2xvc2VFeHBlY3RlZENvdW50IC09IDE7CisgICAgICAgICAgaWYgKGNsb3Nl
RXhwZWN0ZWRDb3VudCA9PSAwKSB7CisgICAgICAgICAgICByZXNvbHZlQ291bnRJc1plcm8oKTsK
KyAgICAgICAgICB9CisgICAgICAgIH0pKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGF3YWl0
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgIHBjMi5vbmRhdGFjaGFubmVsID0g
KHtjaGFubmVsfSkgPT4geworICAgICAgICAgICAgY2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCdl
cnJvcicsIHQuc3RlcF9mdW5jKGV2ZW50ID0+IHsKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUo
ZXZlbnQgaW5zdGFuY2VvZiBSVENFcnJvckV2ZW50KTsKKyAgICAgICAgICAgICAgZXJyb3JFeHBl
Y3RlZENvdW50IC09IDE7CisgICAgICAgICAgICB9KSk7CisgICAgICAgICAgICBjaGFubmVsLmFk
ZEV2ZW50TGlzdGVuZXIoJ2Nsb3NlJywgdC5zdGVwX2Z1bmMoZXZlbnQgPT4geworICAgICAgICAg
ICAgICBjbG9zZUV4cGVjdGVkQ291bnQgLT0gMTsKKyAgICAgICAgICAgICAgaWYgKGNsb3NlRXhw
ZWN0ZWRDb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZUNvdW50SXNaZXJvKCk7
CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pKTsKKyAgICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgfQorICAgICAgKytjbG9zZUV4cGVj
dGVkQ291bnQ7CisgICAgICArK2Vycm9yRXhwZWN0ZWRDb3VudDsKKyAgICB9CisgICAgYXNzZXJ0
X2VxdWFscyhjbG9zZUV4cGVjdGVkQ291bnQsIDEwKTsKKyAgICAvLyBXZSBoYXZlIHRvIHdhaXQg
dW50aWwgU0NUUCBpcyBjb25uZWN0ZWQgYmVmb3JlIHdlIGNsb3NlLCBvdGhlcndpc2UKKyAgICAv
LyB0aGVyZSB3aWxsIGJlIG5vIHNpZ25hbC4KKyAgICAvLyBUaGUgc3RhdGUgaXMgbm90IGF2YWls
YWJsZSB1bmRlciBQbGFuIEIsIGFuZCB1bnJlbGlhYmxlIG9uIG5lZ290aWF0ZWQKKyAgICAvLyBj
aGFubmVscy4KKyAgICAvLyBUT0RPKGJ1Z3Mud2VicnRjLm9yZy8xMjI1OSk6IFJlbW92ZSBkZXBl
bmRlbmN5IG9uICJuZWdvdGlhdGVkIgorICAgIGlmIChwYzEuc2N0cCAmJiAhb3B0aW9ucy5uZWdv
dGlhdGVkKSB7CisgICAgICB3YWl0Rm9yU3RhdGUocGMxLnNjdHAsICdjb25uZWN0ZWQnKTsKKyAg
ICB9IGVsc2UgeworICAgICAgLy8gVW5kZXIgcGxhbiBCLCB3ZSBkb24ndCBoYXZlIGEgZHRscyB0
cmFuc3BvcnQgdG8gd2FpdCBvbiwgc28ganVzdAorICAgICAgLy8gd2FpdCBhIGJpdC4KKyAgICAg
IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdC5zdGVwX3RpbWVvdXQocmVzb2x2ZSwgMTAw
KSk7CisgICAgfQorICAgIHBjMS5jbG9zZSgpOworICAgIGF3YWl0IHdhaXRGb3JDb3VudElzWmVy
bzsKKyAgICBhc3NlcnRfZXF1YWxzKGNsb3NlRXhwZWN0ZWRDb3VudCwgMCk7CisgICAgYXNzZXJ0
X2VxdWFscyhlcnJvckV4cGVjdGVkQ291bnQsIDApOworICB9LCBgQ2xvc2UgcGVlcmNvbm5lY3Rp
b24gY2F1c2VzIGNsb3NlIGV2ZW50IGFuZCBlcnJvciBvbiBtYW55IGNoYW5uZWxzLCAke21vZGV9
YCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDRGF0YUNoYW5uZWwtaWNlUmVzdGFydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFh
MTg3N2ZiZDY3NGNhMGQ2NWU3ZWYwZjI2ZWNlMDg4YmMwM2M1NAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Rh
dGFDaGFubmVsLWljZVJlc3RhcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNT
IERhdGEgY2hhbm5lbCByZW1haW5zIHVzYWJsZSBhZnRlciBJQ0UgcmVzdGFydAorUEFTUyBEYXRh
IGNoYW5uZWwgcmVtYWlucyB1c2FibGUgYXQgZWFjaCBzdGVwIG9mIGFuIElDRSByZXN0YXJ0CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3Rh
cnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYWVjNTBhNTg3MDkzODhiYWU3MmU5Njg0NjMwMzEwYzMyNTYx
ZTUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtaWNlUmVzdGFydC5odG1sCkBAIC0wLDAg
KzEsNzYgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5h
bWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlJUQ0RhdGFDaGFubmVsIGludGVy
YWN0aW9ucyB3aXRoIElDRSByZXN0YXJ0PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlv
bi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworYXN5bmMg
ZnVuY3Rpb24gY2hlY2tDYW5QYXNzRGF0YShjaGFubmVsMSwgY2hhbm5lbDIpIHsKKyAgY2hhbm5l
bDEuc2VuZCgnaGVsbG8nKTsKKyAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGF3YWl0TWVzc2FnZShj
aGFubmVsMik7CisgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgJ2hlbGxvJyk7Cit9CisKK2FzeW5j
IGZ1bmN0aW9uIHBpbmdQb25nRGF0YShjaGFubmVsMSwgY2hhbm5lbDIsIHNpemU9MSkgeworICBj
aGFubmVsMS5zZW5kKCdoZWxsbycpOworICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgYXdhaXRNZXNz
YWdlKGNoYW5uZWwyKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LCAnaGVsbG8nKTsKKyAgY29u
c3QgcmVzcG9uc2UgPSAneCcucmVwZWF0KHNpemUpOworICBjaGFubmVsMi5zZW5kKHJlc3BvbnNl
KTsKKyAgY29uc3QgcmVzcG9uc2VSZWNlaXZlZCA9IGF3YWl0IGF3YWl0TWVzc2FnZShjaGFubmVs
MSk7CisgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UsIHJlc3BvbnNlUmVjZWl2ZWQpOworfQorCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNs
b3NlKCkpOworCisgIGNvbnN0IFtjaGFubmVsMSwgY2hhbm5lbDJdID0gYXdhaXQgY3JlYXRlRGF0
YUNoYW5uZWxQYWlyKHQsIHt9LCBwYzEsIHBjMik7CisgIGNoYW5uZWwyLmFkZEV2ZW50TGlzdGVu
ZXIoJ2Vycm9yJywgdC51bnJlYWNoZWRfZnVuYygpKTsKKyAgY2hhbm5lbDIuYWRkRXZlbnRMaXN0
ZW5lcignZXJyb3InLCB0LnVucmVhY2hlZF9mdW5jKCkpOworCisgIGF3YWl0IGNoZWNrQ2FuUGFz
c0RhdGEoY2hhbm5lbDEsIGNoYW5uZWwyKTsKKyAgYXdhaXQgY2hlY2tDYW5QYXNzRGF0YShjaGFu
bmVsMiwgY2hhbm5lbDEpOworCisgIHBjMS5yZXN0YXJ0SWNlKCk7CisgIGF3YWl0IGV4Y2hhbmdl
T2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworCisgIGF3YWl0IGNoZWNrQ2FuUGFzc0RhdGEoY2hhbm5l
bDEsIGNoYW5uZWwyKTsKKyAgYXdhaXQgY2hlY2tDYW5QYXNzRGF0YShjaGFubmVsMiwgY2hhbm5l
bDEpOworICBjaGFubmVsMS5jbG9zZSgpOworICBjaGFubmVsMi5jbG9zZSgpOworfSwgYERhdGEg
Y2hhbm5lbCByZW1haW5zIHVzYWJsZSBhZnRlciBJQ0UgcmVzdGFydGApOworCitwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwor
CisgIGNvbnN0IFtjaGFubmVsMSwgY2hhbm5lbDJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQ
YWlyKHQsIHt9LCBwYzEsIHBjMik7CisgIGNoYW5uZWwyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9y
JywgdC51bnJlYWNoZWRfZnVuYygpKTsKKyAgY2hhbm5lbDIuYWRkRXZlbnRMaXN0ZW5lcignZXJy
b3InLCB0LnVucmVhY2hlZF9mdW5jKCkpOworCisgIGF3YWl0IHBpbmdQb25nRGF0YShjaGFubmVs
MSwgY2hhbm5lbDIpOworICBwYzEucmVzdGFydEljZSgpOworCisgIGF3YWl0IHBjMS5zZXRMb2Nh
bERlc2NyaXB0aW9uKCk7CisgIGF3YWl0IHBpbmdQb25nRGF0YShjaGFubmVsMSwgY2hhbm5lbDIp
OworICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24p
OworICBhd2FpdCBwaW5nUG9uZ0RhdGEoY2hhbm5lbDEsIGNoYW5uZWwyKTsKKyAgYXdhaXQgcGMy
LnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsKKyAgYXdhaXQg
cGluZ1BvbmdEYXRhKGNoYW5uZWwxLCBjaGFubmVsMik7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgIGF3YWl0IHBpbmdQb25nRGF0YShj
aGFubmVsMSwgY2hhbm5lbDIpOworICBjaGFubmVsMS5jbG9zZSgpOworICBjaGFubmVsMi5jbG9z
ZSgpOworfSwgYERhdGEgY2hhbm5lbCByZW1haW5zIHVzYWJsZSBhdCBlYWNoIHN0ZXAgb2YgYW4g
SUNFIHJlc3RhcnRgKTsKKworCisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2Vu
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLWV4cGVjdGVkLnR4dAppbmRleCAwYjVkNjQ2
NTBjZTY2ZmFiMjJkZjBjZTljYzI2ZmE2N2E1YmNhMDJhLi42M2EzOGM0OTY5NDZkZmFkNjBjZjQ4
MTZlM2IxOTljODYwNTBiMDJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLWV4cGVjdGVkLnR4dApAQCAtMyw4ICszLDEwIEBAIFBBU1Mg
Q2FsbGluZyBzZW5kKCkgd2hlbiBkYXRhIGNoYW5uZWwgaXMgaW4gY29ubmVjdGluZyBzdGF0ZSBz
aG91bGQgdGhyb3cgSW52YWxpCiBQQVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNl
bmQgc2ltcGxlIHN0cmluZyBhbmQgcmVjZWl2ZSBhcyBzdHJpbmcKIFBBU1MgRGF0YWNoYW5uZWwg
c2hvdWxkIGJlIGFibGUgdG8gc2VuZCB1bmljb2RlIHN0cmluZyBhbmQgcmVjZWl2ZSBhcyB1bmlj
b2RlIHN0cmluZwogUEFTUyBEYXRhY2hhbm5lbCBzaG91bGQgaWdub3JlIGJpbmFyeVR5cGUgYW5k
IGFsd2F5cyByZWNlaXZlIHN0cmluZyBtZXNzYWdlIGFzIHN0cmluZworUEFTUyBEYXRhY2hhbm5l
bCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIGFuIGVtcHR5IHN0cmluZyBhbmQgcmVjZWl2ZSBhbiBl
bXB0eSBzdHJpbmcKIFBBU1MgRGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBVaW50
OEFycmF5IG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXIKIFBBU1MgRGF0YWNoYW5u
ZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCByZWNlaXZl
IGFzIEFycmF5QnVmZmVyCitQQVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQg
YW4gZW1wdHkgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcgog
UEFTUyBEYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIEJsb2IgbWVzc2FnZSBhbmQg
cmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcgogUEFTUyBEYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0
byBzZW5kIEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQmxvYgogRkFJTCBEYXRh
Y2hhbm5lbCBiaW5hcnlUeXBlIHNob3VsZCByZWNlaXZlIG1lc3NhZ2UgYXMgQmxvYiBieSBkZWZh
dWx0IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBpbml0aWFsIGJpbmFyeVR5cGUgdmFsdWUgdG8gYmUg
YmxvYiBleHBlY3RlZCAiYmxvYiIgYnV0IGdvdCAiYXJyYXlidWZmZXIiCkBAIC0xMyw4ICsxNSwx
MCBAQCBGQUlMIERhdGFjaGFubmVsIHNlbmQoKSB1cCB0byBtYXggc2l6ZSBzaG91bGQgc3VjY2Vl
ZCwgYWJvdmUgbWF4IHNpemUgc2hvdWxkIGZhaQogUEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFubmVs
IHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgc2ltcGxlIHN0cmluZyBhbmQgcmVjZWl2ZSBhcyBzdHJp
bmcKIFBBU1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIHVu
aWNvZGUgc3RyaW5nIGFuZCByZWNlaXZlIGFzIHVuaWNvZGUgc3RyaW5nCiBQQVNTIE5lZ290aWF0
ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGlnbm9yZSBiaW5hcnlUeXBlIGFuZCBhbHdheXMgcmVjZWl2
ZSBzdHJpbmcgbWVzc2FnZSBhcyBzdHJpbmcKK1BBU1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBz
aG91bGQgYmUgYWJsZSB0byBzZW5kIGFuIGVtcHR5IHN0cmluZyBhbmQgcmVjZWl2ZSBhbiBlbXB0
eSBzdHJpbmcKIFBBU1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBz
ZW5kIFVpbnQ4QXJyYXkgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcgogUEFTUyBO
ZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgQXJyYXlCdWZmZXIg
bWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcgorUEFTUyBOZWdvdGlhdGVkIGRhdGFj
aGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgYW4gZW1wdHkgQXJyYXlCdWZmZXIgbWVzc2Fn
ZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcgogUEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFubmVs
IHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgQmxvYiBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5
QnVmZmVyCiBQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2Vu
ZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEJsb2IKIEZBSUwgTmVnb3RpYXRl
ZCBkYXRhY2hhbm5lbCBiaW5hcnlUeXBlIHNob3VsZCByZWNlaXZlIG1lc3NhZ2UgYXMgQmxvYiBi
eSBkZWZhdWx0IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBpbml0aWFsIGJpbmFyeVR5cGUgdmFsdWUg
dG8gYmUgYmxvYiBleHBlY3RlZCAiYmxvYiIgYnV0IGdvdCAiYXJyYXlidWZmZXIiCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwKaW5kZXggMTk1Mjky
MWZiZjI2ZjJjNmU5NTQ2MDAwYTFlOTg0M2I0NDA4MjRlOC4uZDc1MjQ1YzM0NzVjNTZjYzk4MzY1
ODc2YTNiZGM0YTY2NmZiNjMwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Rh
dGFDaGFubmVsLXNlbmQuaHRtbApAQCAtMzUsOCArMzUsMTAgQEAKIAogLy8gU2ltcGxlIEFTQ0lJ
IGVuY29kZWQgc3RyaW5nCiBjb25zdCBoZWxsb1N0cmluZyA9ICdoZWxsbyc7Citjb25zdCBlbXB0
eVN0cmluZyA9ICcnOwogLy8gQVNDSUkgZW5jb2RlZCBidWZmZXIgcmVwcmVzZW50YXRpb24gb2Yg
dGhlIHN0cmluZwogY29uc3QgaGVsbG9CdWZmZXIgPSBVaW50OEFycmF5Lm9mKDB4NjgsIDB4NjUs
IDB4NmMsIDB4NmMsIDB4NmYpOworY29uc3QgZW1wdHlCdWZmZXIgPSBuZXcgVWludDhBcnJheSgp
OwogY29uc3QgaGVsbG9CbG9iID0gbmV3IEJsb2IoW2hlbGxvQnVmZmVyXSk7CiAKIC8vIFVuaWNv
ZGUgc3RyaW5nIHdpdGggbXVsdGlwbGUgY29kZSB1bml0cwpAQCAtMTEyLDYgKzExNCwyMCBAQCBm
b3IgKGNvbnN0IG9wdGlvbnMgb2YgW3t9LCB7bmVnb3RpYXRlZDogdHJ1ZSwgaWQ6IDB9XSkgewog
ICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLCBoZWxsb1N0cmluZyk7CiAgICAgfSk7CiAgIH0s
IGAke21vZGV9IHNob3VsZCBpZ25vcmUgYmluYXJ5VHlwZSBhbmQgYWx3YXlzIHJlY2VpdmUgc3Ry
aW5nIG1lc3NhZ2UgYXMgc3RyaW5nYCk7CisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICByZXR1
cm4gY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMpCisgICAgLnRoZW4oKFtjaGFubmVs
MSwgY2hhbm5lbDJdKSA9PiB7CisgICAgICBjaGFubmVsMS5zZW5kKGVtcHR5U3RyaW5nKTsKKyAg
ICAgIC8vIFNlbmQgYSBub24tZW1wdHkgc3RyaW5nIGluIGNhc2UgdGhlIGltcGxlbWVudGF0aW9u
IGlnbm9yZXMgZW1wdHkgbWVzc2FnZXMKKyAgICAgIGNoYW5uZWwxLnNlbmQoaGVsbG9TdHJpbmcp
OworICAgICAgcmV0dXJuIGF3YWl0TWVzc2FnZShjaGFubmVsMikKKyAgICB9KS50aGVuKG1lc3Nh
Z2UgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgbWVzc2FnZSwgJ3N0cmluZycsCisg
ICAgICAgICdFeHBlY3QgbWVzc2FnZSB0byBiZSBhIHN0cmluZycpOworCisgICAgICBhc3NlcnRf
ZXF1YWxzKG1lc3NhZ2UsIGVtcHR5U3RyaW5nKTsKKyAgICB9KTsKKyAgfSwgYCR7bW9kZX0gc2hv
dWxkIGJlIGFibGUgdG8gc2VuZCBhbiBlbXB0eSBzdHJpbmcgYW5kIHJlY2VpdmUgYW4gZW1wdHkg
c3RyaW5nYCk7CiAKICAgLyoKICAgICA2LjIuIHNlbmQoKQpAQCAtMTcwLDYgKzE4NiwyMiBAQCBm
b3IgKGNvbnN0IG9wdGlvbnMgb2YgW3t9LCB7bmVnb3RpYXRlZDogdHJ1ZSwgaWQ6IDB9XSkgewog
ICAgIH0pOwogICB9LCBgJHttb2RlfSBzaG91bGQgYmUgYWJsZSB0byBzZW5kIEFycmF5QnVmZmVy
IG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXJgKTsKIAorICBwcm9taXNlX3Rlc3Qo
dCA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zKQorICAg
IC50aGVuKChbY2hhbm5lbDEsIGNoYW5uZWwyXSkgPT4geworICAgICAgY2hhbm5lbDIuYmluYXJ5
VHlwZSA9ICdhcnJheWJ1ZmZlcic7CisgICAgICBjaGFubmVsMS5zZW5kKGVtcHR5QnVmZmVyLmJ1
ZmZlcik7CisgICAgICAvLyBTZW5kIGEgbm9uLWVtcHR5IGJ1ZmZlciBpbiBjYXNlIHRoZSBpbXBs
ZW1lbnRhdGlvbiBpZ25vcmVzIGVtcHR5IG1lc3NhZ2VzCisgICAgICBjaGFubmVsMS5zZW5kKGhl
bGxvQnVmZmVyLmJ1ZmZlcik7CisgICAgICByZXR1cm4gYXdhaXRNZXNzYWdlKGNoYW5uZWwyKQor
ICAgIH0pLnRoZW4obWVzc2FnZUJ1ZmZlciA9PiB7CisgICAgICBhc3NlcnRfdHJ1ZShtZXNzYWdl
QnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIsCisgICAgICAgICdFeHBlY3QgbWVzc2FnZUJ1
ZmZlciB0byBiZSBhbiBBcnJheUJ1ZmZlcicpOworCisgICAgICBhc3NlcnRfZXF1YWxzX3R5cGVk
X2FycmF5KG1lc3NhZ2VCdWZmZXIsIGVtcHR5QnVmZmVyLmJ1ZmZlcik7CisgICAgfSk7CisgIH0s
IGAke21vZGV9IHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgYW4gZW1wdHkgQXJyYXlCdWZmZXIgbWVz
c2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcmApOworCiAgIC8qCiAgICAgNi4yLiBzZW5k
KCkKICAgICAgIDMuICBFeGVjdXRlIHRoZSBzdWIgc3RlcCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRo
ZSB0eXBlIG9mIHRoZSBtZXRob2RzIGFyZ3VtZW50OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1z
dGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0YXRlLWV4cGVjdGVkLnR4dAppbmRleCBm
MTg5NGJmOTcyZjhjMjY0YmVjYTU3NWU2NmY3OGY0YTI5MjczYmMyLi42ZDIxYjMzNDQ2ZGE2ODA4
ZDcyYjVhZDAxZjc2ODE4MTc5MGRjMjIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0YXRlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMiw0ICsy
LDUgQEAKIFBBU1MgRFRMUyB0cmFuc3BvcnQgZ29lcyB0byBjb25uZWN0ZWQgc3RhdGUKIEZBSUwg
Y2xvc2UoKSBjYXVzZXMgdGhlIGxvY2FsIHRyYW5zcG9ydCB0byBjbG9zZSBpbW1lZGlhdGVseSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY2xvc2VkIiBidXQgZ290ICJjb25uZWN0ZWQiCiBQQVNT
IGNsb3NlKCkgY2F1c2VzIHRoZSBvdGhlciBlbmQncyBEVExTIHRyYW5zcG9ydCB0byBjbG9zZQor
RkFJTCBzdG9wIGJ1bmRsZWQgdHJhbnNjZWl2ZXIgcmV0YWlucyBkdGxzIHRyYW5zcG9ydCBzdGF0
ZSBhc3NlcnRfZXF1YWxzOiBnZXRSZWNlaXZlcnMgZG9lcyBub3QgZXhwb3NlIGEgcmVjZWl2ZXIg
b2YgYSBzdG9wcGVkIHRyYW5zY2VpdmVyIGV4cGVjdGVkIDEgYnV0IGdvdCAyCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0R0bHNUcmFuc3BvcnQtc3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtc3RhdGUuaHRtbAppbmRleCBk
MDIzMGRlMGU2NGQwZGNmNWIxMzcxY2MyNmY1NzA5NTA1M2E4ZmQyLi5jYTQ5ZmNjOTVmMjk3ZTA3
ODg5ZWNmMzJjMjFhMzViOWUzMTFiNjhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0YXRlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS5odG1sCkBAIC04Niw0ICs4Niw1NyBAQCBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGF3YWl0IHJlc29sdmVXaGVuKHQsIGR0bHNUcmFuc3BvcnQy
LCAnY2xvc2VkJyk7CiB9LCAnY2xvc2UoKSBjYXVzZXMgdGhlIG90aGVyIGVuZFwncyBEVExTIHRy
YW5zcG9ydCB0byBjbG9zZScpOwogCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IGNvbmZpZyA9IHtidW5kbGVQb2xpY3k6ICJtYXgtYnVuZGxlIn07CisgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oY29uZmlnKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMS5vbmljZWNhbmRpZGF0
ZSA9IGUgPT4gcGMyLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7CisgIHBjMi5vbmljZWNh
bmRpZGF0ZSA9IGUgPT4gcGMxLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7CisKKyAgcGMx
LmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7
CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigp
KTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9u
KTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dl
cigpKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0
aW9uKTsKKworICBjb25zdCBbdmlkZW9UYywgYXVkaW9UY10gPSBwYzEuZ2V0VHJhbnNjZWl2ZXJz
KCk7CisgIGNvbnN0IFt2aWRlb1RwLCBhdWRpb1RwXSA9CisgICAgICBwYzEuZ2V0VHJhbnNjZWl2
ZXJzKCkubWFwKHRjID0+IHRjLnNlbmRlci50cmFuc3BvcnQpOworCisgIGNvbnN0IFt2aWRlb1Bj
MlRwLCBhdWRpb1BjMlRwXSA9CisgICAgICBwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubWFwKHRjID0+
IHRjLnNlbmRlci50cmFuc3BvcnQpOworCisgIGFzc2VydF9lcXVhbHMocGMxLmdldFRyYW5zY2Vp
dmVycygpLmxlbmd0aCwgMiwgJ3BjMSB0cmFuc2NlaXZlciBjb3VudCcpOworICBhc3NlcnRfZXF1
YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDIsICdwYzIgdHJhbnNjZWl2ZXIgY291
bnQnKTsKKyAgYXNzZXJ0X2VxdWFscyh2aWRlb1RjLnNlbmRlci50cmFuc3BvcnQsIHZpZGVvVGMu
cmVjZWl2ZXIudHJhbnNwb3J0KTsKKyAgYXNzZXJ0X2VxdWFscyh2aWRlb1RjLnNlbmRlci50cmFu
c3BvcnQsIGF1ZGlvVGMuc2VuZGVyLnRyYW5zcG9ydCk7CisKKyAgYXdhaXQgUHJvbWlzZS5hbGwo
W3Jlc29sdmVXaGVuKHQsIHZpZGVvVHAsICdjb25uZWN0ZWQnKSwKKyAgICAgICAgICAgICAgICAg
ICAgIHJlc29sdmVXaGVuKHQsIHZpZGVvUGMyVHAsICdjb25uZWN0ZWQnKV0pOworCisgIGFzc2Vy
dF9lcXVhbHMoYXVkaW9UYy5zZW5kZXIsIHBjMS5nZXRTZW5kZXJzKClbMV0pOworCisgIGxldCBz
dG9wcGVkVHJhbnNjZWl2ZXIgPSBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF07CisgIGFzc2VydF9l
cXVhbHMoc3RvcHBlZFRyYW5zY2VpdmVyLCB2aWRlb1RjKTsgLy8gc2FuaXR5CisgIGxldCBvbmVu
ZGVkID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgc3RvcHBlZFRyYW5zY2VpdmVyLnJl
Y2VpdmVyLnRyYWNrLm9uZW5kZWQgPSByZXNvbHZlOworICB9KTsKKyAgc3RvcHBlZFRyYW5zY2Vp
dmVyLnN0b3AoKTsKKyAgYXdhaXQgb25lbmRlZDsKKworICBhc3NlcnRfZXF1YWxzKAorICAgICAg
cGMxLmdldFJlY2VpdmVycygpLmxlbmd0aCwgMSwKKyAgICAgICdnZXRSZWNlaXZlcnMgZG9lcyBu
b3QgZXhwb3NlIGEgcmVjZWl2ZXIgb2YgYSBzdG9wcGVkIHRyYW5zY2VpdmVyJyk7CisgIGFzc2Vy
dF9lcXVhbHMoCisgICAgICBwYzEuZ2V0U2VuZGVycygpLmxlbmd0aCwgMSwKKyAgICAgICdnZXRT
ZW5kZXJzIGRvZXMgbm90IGV4cG9zZSBhIHNlbmRlciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2ZXIn
KTsKKyAgYXNzZXJ0X2VxdWFscyhhdWRpb1RjLnNlbmRlciwgcGMxLmdldFNlbmRlcnMoKVswXSk7
IC8vIHNhbml0eQorICBhc3NlcnRfZXF1YWxzKGF1ZGlvVGMuc2VuZGVyLnRyYW5zcG9ydCwgYXVk
aW9UcCk7IC8vIHNhbml0eQorICBhc3NlcnRfZXF1YWxzKGF1ZGlvVHAuc3RhdGUsICdjb25uZWN0
ZWQnKTsKK30sICdzdG9wIGJ1bmRsZWQgdHJhbnNjZWl2ZXIgcmV0YWlucyBkdGxzIHRyYW5zcG9y
dCBzdGF0ZScpOworCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5k
aWRhdGUtcGFpci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDb25uZWN0aW9uU3RhdGUtY2FuZGlkYXRl
LXBhaXIuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDM2OTNkMzJhOTM5YTkwZDdkZDU5OTg3MjY3
YTQyZjAzMGU1MzEzMzcuLjA3ZmM2MGY1YzU2YjhhZTBkNjM2M2MzMjQ0ZjBlODY4NGYyYjQyYTUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUtcGFpci5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDSWNlQ29ubmVjdGlvblN0YXRlLWNhbmRpZGF0ZS1wYWlyLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMSw1ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2Ug
PSBudWxsCi0KLVRJTUVPVVQgT24gSUNFIGNvbm5lY3RlZCwgZ2V0U3RhdHMoKSBjb250YWlucyBh
IGNvbm5lY3RlZCBjYW5kaWRhdGUtcGFpciBUZXN0IHRpbWVkIG91dAorUEFTUyBPbiBJQ0UgY29u
bmVjdGVkLCBnZXRTdGF0cygpIGNvbnRhaW5zIGEgY29ubmVjdGVkIGNhbmRpZGF0ZS1wYWlyCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24taGVscGVyLmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4
dGVuc2lvbi1oZWxwZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1OWVjNTli
OGRmMjg0N2U3ZTJhM2M1MTNkM2Q2ZmQwMTAyN2YxNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi1oZWxwZXIuanMKKysr
IC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0ndXNlIHN0cmljdCc7Ci0KLS8vIENvbnN0cnVj
dCBhbiBSVENJY2VUcmFuc3BvcnQgaW5zdGFuY2UuIFRoZSBpbnN0YW5jZSB3aWxsIGF1dG9tYXRp
Y2FsbHkgYmUKLS8vIGNsZWFuZWQgdXAgd2hlbiB0aGUgdGVzdCBmaW5pc2hlcy4KLWZ1bmN0aW9u
IG1ha2VJY2VUcmFuc3BvcnQodCkgewotICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNl
VHJhbnNwb3J0KCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gaWNlVHJhbnNwb3J0LnN0b3AoKSk7
Ci0gIHJldHVybiBpY2VUcmFuc3BvcnQ7Ci19Ci0KLS8vIENvbnN0cnVjdCB0d28gUlRDSWNlVHJh
bnNwb3J0IGluc3RhbmNlcywgY29uZmlndXJlIHRoZW0gdG8gZXhjaGFuZ2UKLS8vIGNhbmRpZGF0
ZXMsIHRoZW4gZ2F0aGVyKCkgdGhlbS4KLS8vIFJldHVybnMgYSAyLWxpc3Q6IFsgUlRDSWNlVHJh
bnNwb3J0LCBSVENJY2VUcmFuc3BvcnQgXQotZnVuY3Rpb24gbWFrZUFuZEdhdGhlclR3b0ljZVRy
YW5zcG9ydHModCkgewotICBjb25zdCBsb2NhbFRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQo
dCk7Ci0gIGNvbnN0IHJlbW90ZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0gIGxv
Y2FsVHJhbnNwb3J0Lm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7Ci0gICAgaWYgKGUuY2FuZGlkYXRl
KSB7Ci0gICAgICByZW1vdGVUcmFuc3BvcnQuYWRkUmVtb3RlQ2FuZGlkYXRlKGUuY2FuZGlkYXRl
KTsKLSAgICB9Ci0gIH07Ci0gIHJlbW90ZVRyYW5zcG9ydC5vbmljZWNhbmRpZGF0ZSA9IGUgPT4g
ewotICAgIGlmIChlLmNhbmRpZGF0ZSkgewotICAgICAgbG9jYWxUcmFuc3BvcnQuYWRkUmVtb3Rl
Q2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsKLSAgICB9Ci0gIH07Ci0gIGxvY2FsVHJhbnNwb3J0Lmdh
dGhlcih7fSk7Ci0gIHJlbW90ZVRyYW5zcG9ydC5nYXRoZXIoe30pOwotICByZXR1cm4gWyBsb2Nh
bFRyYW5zcG9ydCwgcmVtb3RlVHJhbnNwb3J0IF07Ci19Ci0KLS8vIENvbnN0cnVjdCB0d28gUlRD
SWNlVHJhbnNwb3J0IGluc3RhbmNlcywgY29uZmlndXJlIHRoZW0gdG8gZXhjaGFuZ2UKLS8vIGNh
bmRpZGF0ZXMgYW5kIHBhcmFtZXRlcnMsIHRoZW4gZ2F0aGVyKCkgYW5kIHN0YXJ0KCkgdGhlbS4K
LS8vIFJldHVybnMgYSAyLWxpc3Q6Ci0vLyAgICAgWyBjb250cm9sbGluZyBSVENJY2VUcmFuc3Bv
cnQsCi0vLyAgICAgICBjb250cm9sbGVkIFJUQ0ljZVRyYW5zcG9ydCBdCi1mdW5jdGlvbiBtYWtl
R2F0aGVyQW5kU3RhcnRUd29JY2VUcmFuc3BvcnRzKHQpIHsKLSAgY29uc3QgWyBsb2NhbFRyYW5z
cG9ydCwgcmVtb3RlVHJhbnNwb3J0IF0gPSBtYWtlQW5kR2F0aGVyVHdvSWNlVHJhbnNwb3J0cyh0
KTsKLSAgbG9jYWxUcmFuc3BvcnQuc3RhcnQocmVtb3RlVHJhbnNwb3J0LmdldExvY2FsUGFyYW1l
dGVycygpLCAnY29udHJvbGxpbmcnKTsKLSAgcmVtb3RlVHJhbnNwb3J0LnN0YXJ0KGxvY2FsVHJh
bnNwb3J0LmdldExvY2FsUGFyYW1ldGVycygpLCAnY29udHJvbGxlZCcpOwotICByZXR1cm4gWyBs
b2NhbFRyYW5zcG9ydCwgcmVtb3RlVHJhbnNwb3J0IF07Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3Bv
cnQtZXh0ZW5zaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IDAzODIwNzZiYmZhOGI3ZTk1ZWI5YTkxODVmZGZjZmQ5MmJl
Yjg3N2YuLjIyODgyYzA5NTAzZjU0MGU5NjM0YTVjYzZjNjJlNmEwYWI1NTI3MDcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9y
dC1leHRlbnNpb24uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNiBAQAogCitIYXJuZXNz
IEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFR5cGVFcnJvcjogQ2FuZGlkYXRlIG11c3Qgbm90IGhh
dmUgYm90aCBudWxsIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleAorCiBGQUlMIFJUQ0ljZVRyYW5z
cG9ydCBjb25zdHJ1Y3RvciBkb2VzIG5vdCB0aHJvdyBJbGxlZ2FsIGNvbnN0cnVjdG9yCiBGQUlM
IFJUQ0ljZVRyYW5zcG9ydCBpbml0aWFsIHByb3BlcnRpZXMgYXJlIHNldCBJbGxlZ2FsIGNvbnN0
cnVjdG9yCiBGQUlMIGdhdGhlcigpIHdpdGggeyBpY2VTZXJ2ZXJzOiBudWxsIH0gc2hvdWxkIHRo
cm93IFR5cGVFcnJvciBJbGxlZ2FsIGNvbnN0cnVjdG9yCkBAIC0xNCwyMCArMTYsNyBAQCBGQUlM
IGdhdGhlcigpIHJldHVybnMgYXQgbGVhc3Qgb25lIGhvc3QgY2FuZGlkYXRlIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdAogRkFJTCBnYXRoZXIoKSByZXR1cm5zIG5vIGNhbmRpZGF0ZXMg
d2l0aCB7IGdhdGhlclBvbGljeTogJ3JlbGF5J30gYW5kIG5vIHR1cm4gc2VydmVycyBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IElsbGVnYWwgY29uc3RydWN0b3IiCiBGQUlMIHN0YXJ0KCkgdGhyb3dzIGlmIGNsb3NlZCBJbGxl
Z2FsIGNvbnN0cnVjdG9yCiBGQUlMIHN0YXJ0KCkgdGhyb3dzIGlmIHVzZXJuYW1lRnJhZ21lbnQg
b3IgcGFzc3dvcmQgbm90IHNldCBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIHN0YXJ0KCkgdGhy
b3dzIGlmIHVzZXJuYW1lRnJhZ21lbnQgZG9lcyBub3QgY29uZm9ybSB0byBzeW50YXggSWxsZWdh
bCBjb25zdHJ1Y3RvcgotRkFJTCBzdGFydCgpIHRocm93cyBpZiBwYXNzd29yZCBkb2VzIG5vdCBj
b25mb3JtIHRvIHN5bnRheCBJbGxlZ2FsIGNvbnN0cnVjdG9yCiBGQUlMIHN0YXJ0KCkgZG9lcyBu
b3QgdHJhbnNpdGlvbiBzdGF0ZSB0byAnY2hlY2tpbmcnIGlmIG5vIHJlbW90ZSBjYW5kaWRhdGVz
IGFkZGVkIElsbGVnYWwgY29uc3RydWN0b3IKIEZBSUwgc3RhcnQoKSB3aXRoIGRlZmF1bHQgcm9s
ZSBzZXRzIHJvbGUgYXR0cmlidXRlIHRvICdjb250cm9sbGVkJyBJbGxlZ2FsIGNvbnN0cnVjdG9y
CiBGQUlMIHN0YXJ0KCkgc2V0cyByb2xlIGF0dHJpYnV0ZSB0byAnY29udHJvbGxpbmcnIElsbGVn
YWwgY29uc3RydWN0b3IKLUZBSUwgYWRkUmVtb3RlQ2FuZGlkYXRlKCkgdGhyb3dzIGlmIGNsb3Nl
ZCBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIGFkZFJlbW90ZUNhbmRpZGF0ZSgpIHRocm93cyBv
biBpbnZhbGlkIGNhbmRpZGF0ZSBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIHN0YXJ0KCkgdHJh
bnNpdGlvbnMgc3RhdGUgdG8gJ2NoZWNraW5nJyBpZiBvbmUgcmVtb3RlIGNhbmRpZGF0ZSBoYWQg
YmVlbiBhZGRlZCBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIGFkZFJlbW90ZUNhbmRpZGF0ZSgp
IHRyYW5zaXRpb25zIHN0YXRlIHRvICdjaGVja2luZycgaWYgc3RhcnQoKSBoYWQgYmVlbiBjYWxs
ZWQgYmVmb3JlIElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgc3RhcnQoKSB0aHJvd3MgaWYgbGF0
ZXIgY2FsbGVkIHdpdGggYSBkaWZmZXJlbnQgcm9sZSBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlM
IHN0YXJ0KCkgZmx1c2hlcyByZW1vdGUgY2FuZGlkYXRlcyBhbmQgdHJhbnNpdGlvbnMgc3RhdGUg
dG8gJ25ldycgaWYgbGF0ZXIgY2FsbGVkIHdpdGggZGlmZmVyZW50IHJlbW90ZSBwYXJhbWV0ZXJz
IElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgVHdvIFJUQ0ljZVRyYW5zcG9ydHMgY29ubmVjdCB0
byBlYWNoIG90aGVyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogSWxsZWdhbCBjb25zdHJ1Y3RvciIKLUZBSUwgVHdvIFJUQ0lj
ZVRyYW5zcG9ydHMgY29uZmlndXJlZCB3aXRoIHRoZSBjb250cm9sbGluZyByb2xlIHJlc29sdmUg
dGhlIGNvbmZsaWN0IGluIGJhbmQgYW5kIHN0aWxsIGNvbm5lY3QuIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogSWxsZWdhbCBj
b25zdHJ1Y3RvciIKLUZBSUwgVHdvIFJUQ0ljZVRyYW5zcG9ydHMgY29uZmlndXJlZCB3aXRoIHRo
ZSBjb250cm9sbGVkIHJvbGUgcmVzb2x2ZSB0aGUgY29uZmxpY3QgaW4gYmFuZCBhbmQgc3RpbGwg
Y29ubmVjdC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9yIgotRkFJTCBTZWxlY3RlZCBjYW5k
aWRhdGUgcGFpciBjaGFuZ2VzIG9uY2UgdGhlIFJUQ0ljZVRyYW5zcG9ydHMgY29ubmVjdC4gcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9yIgotRkFJTCBnZXRTZWxlY3RlZENhbmRpZGF0ZVBhaXIo
KSByZXR1cm5zIG51bGwgb25jZSB0aGUgUlRDSWNlVHJhbnNwb3J0IGlzIHN0b3BwZWQuIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogSWxsZWdhbCBjb25zdHJ1Y3RvciIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lv
bi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy5odG1sCmluZGV4IGJiNGQ1
MmFkY2U1NjczYmFiNWQ1Mjc1MzZkNjdmODlhMDNhNDhjZDIuLjljNmNlYzdlMWU0OTk0ZWU1OGY2
ODIyZDc3MDQ4ZWNhOGU4YWY1NjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLmh0bWwKQEAgLTMsMjAgKzMs
MTcgQEAKIDx0aXRsZT5SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9ucy5odHRwcy5odG1sPC90aXRs
ZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJSVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgogJ3VzZSBzdHJpY3QnOwogCiAvLyBUaGVzZSB0ZXN0cyBhcmUgYmFzZWQgb24g
dGhlIGZvbGxvd2luZyBleHRlbnNpb24gc3BlY2lmaWNhdGlvbjoKIC8vIGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby93ZWJydGMtaWNlLwogCi0vLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMg
YXJlIGNhbGxlZCBmcm9tCi0vLyBSVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLWhlbHBlci5qczoK
LS8vICAgbWFrZUljZVRyYW5zcG9ydAotLy8gICBtYWtlR2F0aGVyQW5kU3RhcnRUd29JY2VUcmFu
c3BvcnRzCi0KLWNvbnN0IElDRV9VRlJBRyA9ICd1Jy5yZXBlYXQoNCk7Ci1jb25zdCBJQ0VfUFdE
ID0gJ3AnLnJlcGVhdCgyMik7CitmdW5jdGlvbiBtYWtlSWNlVHJhbnNwb3J0KHQpIHsKKyAgY29u
c3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IGljZVRyYW5zcG9ydC5zdG9wKCkpOworICByZXR1cm4gaWNlVHJhbnNwb3J0OworfQog
CiB0ZXN0KCgpID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9y
dCgpOwpAQCAtNDIsNyArMzksNyBAQCB0ZXN0KCgpID0+IHsKIAogdGVzdCh0ID0+IHsKICAgY29u
c3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgYXNzZXJ0X3Rocm93c19q
cyhUeXBlRXJyb3IsICgpID0+CisgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9
PgogICAgIGljZVRyYW5zcG9ydC5nYXRoZXIoeyBpY2VTZXJ2ZXJzOiBudWxsIH0pKTsKIH0sICdn
YXRoZXIoKSB3aXRoIHsgaWNlU2VydmVyczogbnVsbCB9IHNob3VsZCB0aHJvdyBUeXBlRXJyb3In
KTsKIApAQCAtNzEsNyArNjgsNyBAQCB0ZXN0KHQgPT4gewogdGVzdCh0ID0+IHsKICAgY29uc3Qg
aWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKICAgaWNlVHJhbnNwb3J0LnN0b3Ao
KTsKLSAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gaWNlVHJh
bnNwb3J0LmdhdGhlcih7fSkpOworICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcics
ICgpID0+IGljZVRyYW5zcG9ydC5nYXRoZXIoe30pKTsKIH0sICdnYXRoZXIoKSB0aHJvd3MgaWYg
Y2xvc2VkJyk7CiAKIHRlc3QodCA9PiB7CkBAIC04Myw3ICs4MCw3IEBAIHRlc3QodCA9PiB7CiB0
ZXN0KHQgPT4gewogICBjb25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOwog
ICBpY2VUcmFuc3BvcnQuZ2F0aGVyKHt9KTsKLSAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRT
dGF0ZUVycm9yJywgKCkgPT4gaWNlVHJhbnNwb3J0LmdhdGhlcih7fSkpOworICBhc3NlcnRfdGhy
b3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGljZVRyYW5zcG9ydC5nYXRoZXIoe30pKTsK
IH0sICdnYXRoZXIoKSB0aHJvd3MgaWYgY2FsbGVkIHR3aWNlJyk7CiAKIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKQEAgLTEwMSw3ICs5OCw3IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgaWNlVHJhbnNwb3J0LmdhdGhlcih7fSk7CiAgIGxldCBjYW5kaWRhdGU7CiAgIGRvIHsKLSAg
ICAoKHsgY2FuZGlkYXRlIH0gPSBhd2FpdCB3YXRjaGVyLndhaXRfZm9yKCdpY2VjYW5kaWRhdGUn
KSkpOworICAgICh7IGNhbmRpZGF0ZSB9ID0gYXdhaXQgd2F0Y2hlci53YWl0X2ZvcignaWNlY2Fu
ZGlkYXRlJykpOwogICB9IHdoaWxlIChjYW5kaWRhdGUgIT09IG51bGwpOwogICBhc3NlcnRfZXF1
YWxzKGljZVRyYW5zcG9ydC5nYXRoZXJpbmdTdGF0ZSwgJ2dhdGhlcmluZycpOwogICBhd2FpdCB3
YXRjaGVyLndhaXRfZm9yKCdnYXRoZXJpbmdzdGF0ZWNoYW5nZScpOwpAQCAtMTI5LDY0ICsxMjYs
MjggQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgICcgc2VydmVycycpOwogCiBjb25z
dCBkdW1teVJlbW90ZVBhcmFtZXRlcnMgPSB7Ci0gIHVzZXJuYW1lRnJhZ21lbnQ6IElDRV9VRlJB
RywKLSAgcGFzc3dvcmQ6IElDRV9QV0QsCisgIHVzZXJuYW1lRnJhZ21lbnQ6ICdkdW1teVVzZXJu
YW1lRnJhZ21lbnQnLAorICBwYXNzd29yZDogJ2R1bW15UGFzc3dvcmQnLAogfTsKIAogdGVzdCgo
KSA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsKICAg
aWNlVHJhbnNwb3J0LnN0b3AoKTsKLSAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVy
cm9yJywKKyAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLAogICAgICgpID0+IGlj
ZVRyYW5zcG9ydC5zdGFydChkdW1teVJlbW90ZVBhcmFtZXRlcnMpKTsKICAgYXNzZXJ0X2VxdWFs
cyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlUGFyYW1ldGVycygpLCBudWxsKTsKIH0sIGBzdGFydCgp
IHRocm93cyBpZiBjbG9zZWRgKTsKIAogdGVzdCgoKSA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9y
dCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsKLSAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3Is
ICgpID0+IGljZVRyYW5zcG9ydC5zdGFydCh7fSkpOwotICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVF
cnJvciwKLSAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoeyB1c2VybmFtZUZyYWdtZW50OiBJ
Q0VfVUZSQUcgfSkpOwotICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwKLSAgICAoKSA9PiBp
Y2VUcmFuc3BvcnQuc3RhcnQoeyBwYXNzd29yZDogSUNFX1BXRCB9KSk7CisgIGFzc2VydF90aHJv
d3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoe30pKTsKKyAgYXNz
ZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksCisgICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0
KHsgdXNlcm5hbWVGcmFnbWVudDogJ2R1bW15JyB9KSk7CisgIGFzc2VydF90aHJvd3MobmV3IFR5
cGVFcnJvcigpLAorICAgICgpID0+IGljZVRyYW5zcG9ydC5zdGFydCh7IHBhc3N3b3JkOiAnZHVt
bXknIH0pKTsKICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlUGFyYW1ldGVy
cygpLCBudWxsKTsKIH0sICdzdGFydCgpIHRocm93cyBpZiB1c2VybmFtZUZyYWdtZW50IG9yIHBh
c3N3b3JkIG5vdCBzZXQnKTsKIAotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IFRFU1RfQ0FTRVMgPSBb
Ci0gICAge3VzZXJuYW1lRnJhZ21lbnQ6ICcyc2gnLCBkZXNjcmlwdGlvbjogJ2xlc3MgdGhhbiA0
IGNoYXJhY3RlcnMgbG9uZyd9LAotICAgIHsKLSAgICAgIHVzZXJuYW1lRnJhZ21lbnQ6ICd4Jy5y
ZXBlYXQoMjU3KSwKLSAgICAgIGRlc2NyaXB0aW9uOiAnZ3JlYXRlciB0aGFuIDI1NiBjaGFyYWN0
ZXJzIGxvbmcnLAotICAgIH0sCi0gICAge3VzZXJuYW1lRnJhZ21lbnQ6ICcxMjNcbicsIGRlc2Ny
aXB0aW9uOiAnaWxsZWdhbCBjaGFyYWN0ZXInfSwKLSAgXTsKLSAgZm9yIChjb25zdCB7dXNlcm5h
bWVGcmFnbWVudCwgZGVzY3JpcHRpb259IG9mIFRFU1RfQ0FTRVMpIHsKLSAgICBjb25zdCBpY2VU
cmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7Ci0gICAgYXNzZXJ0X3Rocm93c19kb20o
Ci0gICAgICAnU3ludGF4RXJyb3InLAotICAgICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KHsg
dXNlcm5hbWVGcmFnbWVudCwgcGFzc3dvcmQ6IElDRV9QV0QgfSksCi0gICAgICBgaWxsZWdhbCB1
c2VybmFtZUZyYWdtZW50ICgke2Rlc2NyaXB0aW9ufSkgc2hvdWxkIHRocm93IGEgU3ludGF4RXJy
b3JgKTsKLSAgfQotfSwgJ3N0YXJ0KCkgdGhyb3dzIGlmIHVzZXJuYW1lRnJhZ21lbnQgZG9lcyBu
b3QgY29uZm9ybSB0byBzeW50YXgnKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IFRFU1RfQ0FT
RVMgPSBbCi0gICAge3Bhc3N3b3JkOiAneCcucmVwZWF0KDIxKSwgZGVzY3JpcHRpb246ICdsZXNz
IHRoYW4gMjIgY2hhcmFjdGVycyBsb25nJ30sCi0gICAgewotICAgICAgcGFzc3dvcmQ6ICd4Jy5y
ZXBlYXQoMjU3KSwKLSAgICAgIGRlc2NyaXB0aW9uOiAnZ3JlYXRlciB0aGFuIDI1NiBjaGFyYWN0
ZXJzIGxvbmcnLAotICAgIH0sCi0gICAge3Bhc3N3b3JkOiAoJ3gnLnJlcGVhdCgyMSkgKyAnXG4n
KSwgZGVzY3JpcHRpb246ICdpbGxlZ2FsIGNoYXJhY3Rlcid9LAotICBdOwotICBmb3IgKGNvbnN0
IHtwYXNzd29yZCwgZGVzY3JpcHRpb259IG9mIFRFU1RfQ0FTRVMpIHsKLSAgICBjb25zdCBpY2VU
cmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7Ci0gICAgYXNzZXJ0X3Rocm93c19kb20o
Ci0gICAgICAnU3ludGF4RXJyb3InLAotICAgICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KHsg
dXNlcm5hbWVGcmFnbWVudDogSUNFX1VGUkFHLCBwYXNzd29yZCB9KSwKLSAgICAgIGBpbGxlZ2Fs
IHBhc3N3b3JkICgke2Rlc2NyaXB0aW9ufSkgc2hvdWxkIHRocm93IGEgU3ludGF4RXJyb3JgKTsK
LSAgfQotfSwgJ3N0YXJ0KCkgdGhyb3dzIGlmIHBhc3N3b3JkIGRvZXMgbm90IGNvbmZvcm0gdG8g
c3ludGF4Jyk7Ci0KIGNvbnN0IGFzc2VydF9pY2VfcGFyYW1ldGVyc19lcXVhbHMgPSAoYSwgYikg
PT4gewogICBhc3NlcnRfZXF1YWxzKGEudXNlcm5hbWVGcmFnbWVudCwgYi51c2VybmFtZUZyYWdt
ZW50LAogICAgICAgJ3VzZXJuYW1lRnJhZ21lbnRzIGFyZSBlcXVhbCcpOwpAQCAtMjE2LDIyICsx
NzcsMjEgQEAgdGVzdCh0ID0+IHsKIAogY29uc3QgY2FuZGlkYXRlMSA9IG5ldyBSVENJY2VDYW5k
aWRhdGUoewogICBjYW5kaWRhdGU6ICdjYW5kaWRhdGU6MSAxIHVkcCAyMTEzOTI5NDcxIDIwMy4w
LjExMy4xMDAgMTAxMDAgdHlwIGhvc3QnLAotICBzZHBNaWQ6ICcnLAogfSk7CiAKIHRlc3QoKCkg
PT4gewogICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7CiAgIGlj
ZVRyYW5zcG9ydC5zdG9wKCk7Ci0gIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJv
cicsCisgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9yJywKICAgICAoKSA9PiBpY2VU
cmFuc3BvcnQuYWRkUmVtb3RlQ2FuZGlkYXRlKGNhbmRpZGF0ZTEpKTsKICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlQ2FuZGlkYXRlcygpLCBbXSk7CiB9LCAnYWRk
UmVtb3RlQ2FuZGlkYXRlKCkgdGhyb3dzIGlmIGNsb3NlZCcpOwogCiB0ZXN0KCgpID0+IHsKICAg
Y29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOwotICBhc3NlcnRfdGhy
b3dzX2RvbSgnT3BlcmF0aW9uRXJyb3InLAorICBhc3NlcnRfdGhyb3dzKCdPcGVyYXRpb25FcnJv
cicsCiAgICAgKCkgPT4gaWNlVHJhbnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0ZSgKLSAgICAgIG5l
dyBSVENJY2VDYW5kaWRhdGUoeyBjYW5kaWRhdGU6ICdpbnZhbGlkJywgc2RwTWlkOiAnJyB9KSkp
OworICAgICAgbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IGNhbmRpZGF0ZTogJ2ludmFsaWQnIH0pKSk7
CiAgIGFzc2VydF9hcnJheV9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldFJlbW90ZUNhbmRpZGF0ZXMo
KSwgW10pOwogfSwgJ2FkZFJlbW90ZUNhbmRpZGF0ZSgpIHRocm93cyBvbiBpbnZhbGlkIGNhbmRp
ZGF0ZScpOwogCkBAIC0yNTYsMjAgKzIxNiwyMCBAQCB0ZXN0KHQgPT4gewogdGVzdCh0ID0+IHsK
ICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKICAgaWNlVHJhbnNw
b3J0LnN0YXJ0KGR1bW15UmVtb3RlUGFyYW1ldGVycyk7Ci0gIGFzc2VydF90aHJvd3NfZG9tKCdJ
bnZhbGlkU3RhdGVFcnJvcicsCisgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9yJywK
ICAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoZHVtbXlSZW1vdGVQYXJhbWV0ZXJzLCAnY29u
dHJvbGxpbmcnKSk7CiB9LCAnc3RhcnQoKSB0aHJvd3MgaWYgbGF0ZXIgY2FsbGVkIHdpdGggYSBk
aWZmZXJlbnQgcm9sZScpOwogCiB0ZXN0KHQgPT4gewogICBjb25zdCBpY2VUcmFuc3BvcnQgPSBt
YWtlSWNlVHJhbnNwb3J0KHQpOwogICBpY2VUcmFuc3BvcnQuc3RhcnQoewotICAgIHVzZXJuYW1l
RnJhZ21lbnQ6ICcxJy5yZXBlYXQoNCksCi0gICAgcGFzc3dvcmQ6ICcxJy5yZXBlYXQoMjIpLAor
ICAgIHVzZXJuYW1lRnJhZ21lbnQ6ICd1c2VyJywKKyAgICBwYXNzd29yZDogJ3Bhc3MnLAogICB9
KTsKICAgaWNlVHJhbnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0ZShjYW5kaWRhdGUxKTsKICAgY29u
c3QgY2hhbmdlZFJlbW90ZVBhcmFtZXRlcnMgPSB7Ci0gICAgdXNlcm5hbWVGcmFnbWVudDogJzIn
LnJlcGVhdCg0KSwKLSAgICBwYXNzd29yZDogJzInLnJlcGVhdCgyMiksCisgICAgdXNlcm5hbWVG
cmFnbWVudDogJ3VzZXIyJywKKyAgICBwYXNzd29yZDogJ3Bhc3MnLAogICB9OwogICBpY2VUcmFu
c3BvcnQuc3RhcnQoY2hhbmdlZFJlbW90ZVBhcmFtZXRlcnMpOwogICBhc3NlcnRfZXF1YWxzKGlj
ZVRyYW5zcG9ydC5zdGF0ZSwgJ25ldycpOwpAQCAtMjgwLDggKzI0MCwyMiBAQCB0ZXN0KHQgPT4g
ewogICAgJ2xhdGVyIGNhbGxlZCB3aXRoIGRpZmZlcmVudCByZW1vdGUgcGFyYW1ldGVycycpOwog
CiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IFsgbG9jYWxUcmFuc3BvcnQsIHJl
bW90ZVRyYW5zcG9ydCBdID0KLSAgICAgIG1ha2VHYXRoZXJBbmRTdGFydFR3b0ljZVRyYW5zcG9y
dHModCk7CisgIGNvbnN0IGxvY2FsVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKKyAg
Y29uc3QgcmVtb3RlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKKyAgbG9jYWxUcmFu
c3BvcnQub25pY2VjYW5kaWRhdGUgPSBlID0+IHsKKyAgICBpZiAoZS5jYW5kaWRhdGUpIHsKKyAg
ICAgIHJlbW90ZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5kaWRhdGUoZS5jYW5kaWRhdGUpOworICAg
IH0KKyAgfTsKKyAgcmVtb3RlVHJhbnNwb3J0Lm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7CisgICAg
aWYgKGUuY2FuZGlkYXRlKSB7CisgICAgICBsb2NhbFRyYW5zcG9ydC5hZGRSZW1vdGVDYW5kaWRh
dGUoZS5jYW5kaWRhdGUpOworICAgIH0KKyAgfTsKKyAgbG9jYWxUcmFuc3BvcnQuZ2F0aGVyKHt9
KTsKKyAgcmVtb3RlVHJhbnNwb3J0LmdhdGhlcih7fSk7CisgIGxvY2FsVHJhbnNwb3J0LnN0YXJ0
KHJlbW90ZVRyYW5zcG9ydC5nZXRMb2NhbFBhcmFtZXRlcnMoKSwgJ2NvbnRyb2xsaW5nJyk7Cisg
IHJlbW90ZVRyYW5zcG9ydC5zdGFydChsb2NhbFRyYW5zcG9ydC5nZXRMb2NhbFBhcmFtZXRlcnMo
KSwgJ2NvbnRyb2xsZWQnKTsKICAgY29uc3QgbG9jYWxXYXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hl
cih0LCBsb2NhbFRyYW5zcG9ydCwgJ3N0YXRlY2hhbmdlJyk7CiAgIGNvbnN0IHJlbW90ZVdhdGNo
ZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIHJlbW90ZVRyYW5zcG9ydCwgJ3N0YXRlY2hhbmdlJyk7
CiAgIGF3YWl0IFByb21pc2UuYWxsKFsKQEAgLTI5NCw2OSArMjY4LDQgQEAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4gewogICBdKTsKIH0sICdUd28gUlRDSWNlVHJhbnNwb3J0cyBjb25uZWN0IHRv
IGVhY2ggb3RoZXInKTsKIAotWydjb250cm9sbGluZycsICdjb250cm9sbGVkJ10uZm9yRWFjaChy
b2xlID0+IHsKLSAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNvbnN0IFsgbG9jYWxU
cmFuc3BvcnQsIHJlbW90ZVRyYW5zcG9ydCBdID0KLSAgICAgICAgbWFrZUFuZEdhdGhlclR3b0lj
ZVRyYW5zcG9ydHModCk7Ci0gICAgbG9jYWxUcmFuc3BvcnQuc3RhcnQocmVtb3RlVHJhbnNwb3J0
LmdldExvY2FsUGFyYW1ldGVycygpLCByb2xlKTsKLSAgICByZW1vdGVUcmFuc3BvcnQuc3RhcnQo
bG9jYWxUcmFuc3BvcnQuZ2V0TG9jYWxQYXJhbWV0ZXJzKCksIHJvbGUpOwotICAgIGNvbnN0IGxv
Y2FsV2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgbG9jYWxUcmFuc3BvcnQsICdzdGF0ZWNo
YW5nZScpOwotICAgIGNvbnN0IHJlbW90ZVdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIHJl
bW90ZVRyYW5zcG9ydCwgJ3N0YXRlY2hhbmdlJyk7Ci0gICAgYXdhaXQgUHJvbWlzZS5hbGwoWwot
ICAgICAgbG9jYWxXYXRjaGVyLndhaXRfZm9yKCdzdGF0ZWNoYW5nZScpLnRoZW4oKCkgPT4gewot
ICAgICAgICBhc3NlcnRfZXF1YWxzKGxvY2FsVHJhbnNwb3J0LnN0YXRlLCAnY29ubmVjdGVkJyk7
Ci0gICAgICB9KSwKLSAgICAgIHJlbW90ZVdhdGNoZXIud2FpdF9mb3IoJ3N0YXRlY2hhbmdlJyku
dGhlbigoKSA9PiB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocmVtb3RlVHJhbnNwb3J0LnN0YXRl
LCAnY29ubmVjdGVkJyk7Ci0gICAgICB9KSwKLSAgICBdKTsKLSAgfSwgYFR3byBSVENJY2VUcmFu
c3BvcnRzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgJHtyb2xlfSByb2xlIHJlc29sdmUgdGhlIGAgKwot
ICAgICAgJ2NvbmZsaWN0IGluIGJhbmQgYW5kIHN0aWxsIGNvbm5lY3QuJyk7Ci19KTsKLQotcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yU2VsZWN0ZWRD
YW5kaWRhdGVQYWlyQ2hhbmdlVGhlbkNvbm5lY3RlZCh0LCB0cmFuc3BvcnQsCi0gICAgICB0cmFu
c3BvcnROYW1lKSB7Ci0gICAgY29uc3Qgd2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgdHJh
bnNwb3J0LAotICAgICAgICBbICdzdGF0ZWNoYW5nZScsICdzZWxlY3RlZGNhbmRpZGF0ZXBhaXJj
aGFuZ2UnIF0pOwotICAgIGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ3NlbGVjdGVkY2FuZGlkYXRl
cGFpcmNoYW5nZScpOwotICAgIGNvbnN0IHNlbGVjdGVkQ2FuZGlkYXRlUGFpciA9IHRyYW5zcG9y
dC5nZXRTZWxlY3RlZENhbmRpZGF0ZVBhaXIoKTsKLSAgICBhc3NlcnRfbm90X2VxdWFscyhzZWxl
Y3RlZENhbmRpZGF0ZVBhaXIsIG51bGwsCi0gICAgICAgIGAke3RyYW5zcG9ydE5hbWV9IHNlbGVj
dGVkIGNhbmRpZGF0ZSBwYWlyIHNob3VsZCBub3QgYmUgbnVsbCBvbmNlIGAgKwotICAgICAgICAn
dGhlIHNlbGVjdGVkY2FuZGlkYXRlcGFpcmNoYW5nZSBldmVudCBmaXJlcycpOwotICAgIGFzc2Vy
dF90cnVlKAotICAgICAgICB0cmFuc3BvcnQuZ2V0TG9jYWxDYW5kaWRhdGVzKCkuc29tZSgKLSAg
ICAgICAgICAgICh7IGNhbmRpZGF0ZSB9KSA9PgotICAgICAgICAgICAgICAgIGNhbmRpZGF0ZSA9
PT0gc2VsZWN0ZWRDYW5kaWRhdGVQYWlyLmxvY2FsLmNhbmRpZGF0ZSksCi0gICAgICAgIGAke3Ry
YW5zcG9ydE5hbWV9IHNlbGVjdGVkIGNhbmRpZGF0ZSBwYWlyIGxvY2FsIHNob3VsZCBiZSBpbiB0
aGUgYCArCi0gICAgICAgICdsaXN0IG9mIGxvY2FsIGNhbmRpZGF0ZXMnKTsKLSAgICBhc3NlcnRf
dHJ1ZSgKLSAgICAgICAgdHJhbnNwb3J0LmdldFJlbW90ZUNhbmRpZGF0ZXMoKS5zb21lKAotICAg
ICAgICAgICAgKHsgY2FuZGlkYXRlIH0pID0+Ci0gICAgICAgICAgICAgICAgY2FuZGlkYXRlID09
PSBzZWxlY3RlZENhbmRpZGF0ZVBhaXIucmVtb3RlLmNhbmRpZGF0ZSksCi0gICAgICAgIGAke3Ry
YW5zcG9ydE5hbWV9IHNlbGVjdGVkIGNhbmRpZGF0ZSBwYWlyIGxvY2FsIHNob3VsZCBiZSBpbiB0
aGUgYCArCi0gICAgICAgICdsaXN0IG9mIHJlbW90ZSBjYW5kaWRhdGVzJyk7Ci0gICAgYXdhaXQg
d2F0Y2hlci53YWl0X2Zvcignc3RhdGVjaGFuZ2UnKTsKLSAgICBhc3NlcnRfZXF1YWxzKHRyYW5z
cG9ydC5zdGF0ZSwgJ2Nvbm5lY3RlZCcsCi0gICAgICAgIGAke3RyYW5zcG9ydE5hbWV9IHN0YXRl
IHNob3VsZCBiZSAnY29ubmVjdGVkJ2ApOwotICB9Ci0gIGNvbnN0IFsgbG9jYWxUcmFuc3BvcnQs
IHJlbW90ZVRyYW5zcG9ydCBdID0KLSAgICAgIG1ha2VHYXRoZXJBbmRTdGFydFR3b0ljZVRyYW5z
cG9ydHModCk7Ci0gIGF3YWl0IFByb21pc2UuYWxsKFsKLSAgICB3YWl0Rm9yU2VsZWN0ZWRDYW5k
aWRhdGVQYWlyQ2hhbmdlVGhlbkNvbm5lY3RlZCh0LCBsb2NhbFRyYW5zcG9ydCwKLSAgICAgICAg
J2xvY2FsIHRyYW5zcG9ydCcpLAotICAgIHdhaXRGb3JTZWxlY3RlZENhbmRpZGF0ZVBhaXJDaGFu
Z2VUaGVuQ29ubmVjdGVkKHQsIHJlbW90ZVRyYW5zcG9ydCwKLSAgICAgICAgJ3JlbW90ZSB0cmFu
c3BvcnQnKSwKLSAgXSk7Ci19LCAnU2VsZWN0ZWQgY2FuZGlkYXRlIHBhaXIgY2hhbmdlcyBvbmNl
IHRoZSBSVENJY2VUcmFuc3BvcnRzIGNvbm5lY3QuJyk7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKLSAgY29uc3QgWyB0cmFuc3BvcnQsIF0gPSBtYWtlR2F0aGVyQW5kU3RhcnRUd29JY2VU
cmFuc3BvcnRzKHQpOwotICBjb25zdCB3YXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCB0cmFu
c3BvcnQsICdzZWxlY3RlZGNhbmRpZGF0ZXBhaXJjaGFuZ2UnKTsKLSAgYXdhaXQgd2F0Y2hlci53
YWl0X2Zvcignc2VsZWN0ZWRjYW5kaWRhdGVwYWlyY2hhbmdlJyk7Ci0gIHRyYW5zcG9ydC5zdG9w
KCk7Ci0gIGFzc2VydF9lcXVhbHModHJhbnNwb3J0LmdldFNlbGVjdGVkQ2FuZGlkYXRlUGFpcigp
LCBudWxsKTsKLX0sICdnZXRTZWxlY3RlZENhbmRpZGF0ZVBhaXIoKSByZXR1cm5zIG51bGwgb25j
ZSB0aGUgUlRDSWNlVHJhbnNwb3J0IGlzICcgKwotICAgICdzdG9wcGVkLicpOwotCiA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0
dXAuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAuaHRt
bAppbmRleCAxMWZjNGU0ZmEwYzIyMmRmNGUxNDY5YTUyNTgyOTViZjM3MDM1MjNjLi5kMmNkZTU5
MzY0MDQ1MWY0MzE3Y2IwOWNiYTE0NDJiYjFjMDI4MjIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1hZGRJY2VDYW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
YWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1cC5odG1sCkBAIC0zNSwxNiArMzUsOCBAQCBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAKICAgbGV0IGNhbmRpZGF0ZXMxdG8yID0gW107CiAg
IGxldCBjYW5kaWRhdGVzMnRvMSA9IFtdOwotICBwYzEub25pY2VjYW5kaWRhdGUgPSBldmVudCA9
PiB7Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgY2FuZGlkYXRlczF0bzIucHVz
aChldmVudC5jYW5kaWRhdGUpOwotICAgIH0KLSAgfQotICBwYzIub25pY2VjYW5kaWRhdGUgPSBl
dmVudCA9PiB7Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgY2FuZGlkYXRlczJ0
bzEucHVzaChldmVudC5jYW5kaWRhdGUpOwotICAgIH0KLSAgfQorICBwYzEub25pY2VjYW5kaWRh
dGUgPSBlID0+IGNhbmRpZGF0ZXMxdG8yLnB1c2goZS5jYW5kaWRhdGUpOworICBwYzIub25pY2Vj
YW5kaWRhdGUgPSBlID0+IGNhbmRpZGF0ZXMydG8xLnB1c2goZS5jYW5kaWRhdGUpOwogICBjb25z
dCBwYzJHYXRoZXJlZENhbmRpZGF0ZXMgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAg
IHBjMi5hZGRFdmVudExpc3RlbmVyKCdpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZScsICgpID0+IHsK
ICAgICAgIGlmIChwYzIuaWNlR2F0aGVyaW5nU3RhdGUgPT0gJ2NvbXBsZXRlJykgewpAQCAtNzQs
MTYgKzY2LDggQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogCiAgIGxldCBjYW5kaWRhdGVz
MXRvMiA9IFtdOwogICBsZXQgY2FuZGlkYXRlczJ0bzEgPSBbXTsKLSAgcGMxLm9uaWNlY2FuZGlk
YXRlID0gZXZlbnQgPT4gewotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAgICAgIGNhbmRp
ZGF0ZXMxdG8yLnB1c2goZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9Ci0gIH0KLSAgcGMyLm9uaWNl
Y2FuZGlkYXRlID0gZXZlbnQgPT4gewotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAgICAg
IGNhbmRpZGF0ZXMydG8xLnB1c2goZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9Ci0gIH0KKyAgcGMx
Lm9uaWNlY2FuZGlkYXRlID0gZSA9PiBjYW5kaWRhdGVzMXRvMi5wdXNoKGUuY2FuZGlkYXRlKTsK
KyAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZSA9PiBjYW5kaWRhdGVzMnRvMS5wdXNoKGUuY2FuZGlk
YXRlKTsKICAgY29uc3QgcGMxR2F0aGVyZWRDYW5kaWRhdGVzID0gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsKICAgICBwYzEuYWRkRXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5nc3RhdGVjaGFu
Z2UnLCAoKSA9PiB7CiAgICAgICBpZiAocGMxLmljZUdhdGhlcmluZ1N0YXRlID09ICdjb21wbGV0
ZScpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtZXhwZWN0ZWQudHh0CmluZGV4IDIzMGNh
N2I5Yzg1Y2IyODg2Y2YxOTYxOTRkMmE2YTk2NTZmZjAyZTEuLmY0MWFlNDI1M2RmNThiY2RjYmQx
NGEyZDFlNDExZjliY2UxYjM4ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRp
ZGF0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWV4cGVj
dGVkLnR4dApAQCAtMSw5ICsxLDEzIEBACiAKIEZBSUwgQWRkIElDRSBjYW5kaWRhdGUgYmVmb3Jl
IHNldHRpbmcgcmVtb3RlIGRlc2NyaXB0aW9uIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3Rh
dGVFcnJvciBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJv
dyBlIH0iIHRocmV3IG9iamVjdCAiT3BlcmF0aW9uRXJyb3I6IEVycm9yIHByb2Nlc3NpbmcgSUNF
IGNhbmRpZGF0ZSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6
IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAwLCBleHBlY3RlZCAxMQotRkFJTCBhZGRJY2VD
YW5kaWRhdGUoeyJjYW5kaWRhdGUiOiIiLCJzZHBNaWQiOm51bGwsInNkcE1MaW5lSW5kZXgiOm51
bGx9KSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1z
ZWN0aW9ucyBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJl
dHdlZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBhZGRJY2VDYW5kaWRhdGUodW5kZWZpbmVkKSBzaG91bGQgd29yaywgYW5kIGFk
ZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9ucyBhc3NlcnRfdHJ1ZTogRXhw
ZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRp
byBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBhZGRJY2VDYW5kaWRh
dGUobnVsbCkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBib3Ro
IG0tc2VjdGlvbnMgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3Vu
ZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKLUZBSUwgYWRkSWNlQ2FuZGlkYXRlKHt9KSBzaG91bGQgd29yaywgYW5kIGFkZCBh
PWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9ucyBhc3NlcnRfdHJ1ZTogRXhwZWN0
IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBh
bmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBhZGRJY2VDYW5kaWRhdGUo
eyJjYW5kaWRhdGUiOiIiLCJzZHBNaWQiOm51bGwsInNkcE1MaW5lSW5kZXgiOm51bGx9KSB3b3Jr
cworRkFJTCBhZGRJY2VDYW5kaWRhdGUoeyJjYW5kaWRhdGUiOiIiLCJzZHBNaWQiOm51bGwsInNk
cE1MaW5lSW5kZXgiOm51bGx9KSBhZGRzIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gYm90aCBtLXNl
Y3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0
d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitQQVNTIGFkZEljZUNhbmRpZGF0ZSh1bmRlZmluZWQpIHdvcmtzCitGQUlMIGFkZEljZUNh
bmRpZGF0ZSh1bmRlZmluZWQpIGFkZHMgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2Vj
dGlvbnMgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3
ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK1BBU1MgYWRkSWNlQ2FuZGlkYXRlKG51bGwpIHdvcmtzCitGQUlMIGFkZEljZUNhbmRpZGF0
ZShudWxsKSBhZGRzIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25zIGFzc2Vy
dF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBs
aW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIGFk
ZEljZUNhbmRpZGF0ZSh7fSkgd29ya3MKK0ZBSUwgYWRkSWNlQ2FuZGlkYXRlKHt9KSBhZGRzIGE9
ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3Qg
Y2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFu
ZCBtPXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIGFkZEljZUNhbmRpZGF0ZSh7
fSkgaW4gc3RhYmxlIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8g
Ym90aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUg
Zm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVvIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCiBGQUlMIGFkZEljZUNhbmRpZGF0ZSh7dXNlcm5hbWVGcmFnbWVudDogdXNl
cm5hbWVGcmFnbWVudDEsIHNkcE1pZDogc2RwTWlkMX0pIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9
ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gdGhlIGZpcnN0IG0tc2VjdGlvbiBhc3NlcnRfdHJ1ZTogRXhw
ZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRp
byBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBhZGRJY2VDYW5kaWRh
dGUoe3VzZXJuYW1lRnJhZ21lbnQ6IHVzZXJuYW1lRnJhZ21lbnQyLCBzZHBNTGluZUluZGV4OiAx
fSkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byB0aGUgZmlyc3Qg
bS1zZWN0aW9uIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQpAQCAtMTcsOCAr
MjEsOSBAQCBQQVNTIGFkZEljZUNhbmRpZGF0ZSB3aXRoIGZpcnN0IHNkcE1pZCBhbmQgc2RwTUxp
bmVJbmRleCBhZGQgY2FuZGlkYXRlIHRvIGZpcnN0CiBQQVNTIGFkZEljZUNhbmRpZGF0ZSB3aXRo
IHNlY29uZCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXggc2hvdWxkIGFkZCBjYW5kaWRhdGUgdG8g
c2Vjb25kIG1lZGlhIHN0cmVhbQogUEFTUyBBZGQgY2FuZGlkYXRlIGZvciBmaXJzdCBtZWRpYSBz
dHJlYW0gd2l0aCBudWxsIHVzZXJuYW1lRnJhZ21lbnQgc2hvdWxkIGFkZCBjYW5kaWRhdGUgdG8g
Zmlyc3QgbWVkaWEgc3RyZWFtCiBQQVNTIEFkZGluZyBtdWx0aXBsZSBjYW5kaWRhdGVzIHNob3Vs
ZCBhZGQgY2FuZGlkYXRlcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIG1lZGlhIHN0cmVhbQotRkFJ
TCBBZGQgd2l0aCBlbXB0eSBjYW5kaWRhdGUgc3RyaW5nIChlbmQgb2YgY2FuZGlkYXRlKSBzaG91
bGQgc3VjY2VlZCBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5k
IGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorRkFJTCBBZGQgd2l0aCBlbXB0eSBjYW5kaWRhdGUgc3RyaW5nIChlbmQgb2YgY2Fu
ZGlkYXRlcykgc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGlu
ZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgQWRkIGNhbmRpZGF0ZSB3aXRoIGJvdGggc2RwTWlk
IGFuZCBzZHBNTGluZUluZGV4IG1hbnVhbGx5IHNldCB0byBudWxsIHNob3VsZCByZWplY3Qgd2l0
aCBUeXBlRXJyb3IKK1BBU1MgYWRkSWNlQ2FuZGlkYXRlIHdpdGggYSBjYW5kaWRhdGUgYW5kIG5l
aXRoZXIgc2RwTWlkIG5vciBzZHBNTGluZUluZGV4IHNob3VsZCByZWplY3Qgd2l0aCBUeXBlRXJy
b3IKIFBBU1MgQWRkIGNhbmRpZGF0ZSB3aXRoIG9ubHkgdmFsaWQgY2FuZGlkYXRlIHN0cmluZyBz
aG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yCiBQQVNTIEFkZCBjYW5kaWRhdGUgd2l0aCBpbnZh
bGlkIGNhbmRpZGF0ZSBzdHJpbmcgYW5kIGJvdGggc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4IG51
bGwgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcgogUEFTUyBBZGQgY2FuZGlkYXRlIHdpdGgg
aW52YWxpZCBzZHBNaWQgc2hvdWxkIHJlamVjdCB3aXRoIE9wZXJhdGlvbkVycm9yCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZElj
ZUNhbmRpZGF0ZS5odG1sCmluZGV4IDVmY2I2ZTg2NGE4YTIyM2Q1MDYyYjIyYjdhOGY1ZTg5ZmJm
OWQ0Y2IuLmQ4ZTI0ZDYwOGJhZWU2YzYwZTZkMmIzYWUyNDY5NzRmZTY5MzZlYzIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFk
ZEljZUNhbmRpZGF0ZS5odG1sCkBAIC0xNTgsMTggKzE1OCwyOCBAQCBhPXJ0Y3AtcnNpemUKICAg
ICBudWxsLAogICAgIC8vIE1lbWJlcnMgaW4gdGhlIGRpY3Rpb25hcnkgdGFrZSB0aGVpciBkZWZh
dWx0IHZhbHVlcwogICAgIHt9Ci0gIF0uZm9yRWFjaChpbml0ID0+IHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBdLmZv
ckVhY2goaW5pdCA9PiB7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgY29u
c3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKIAotICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMuY2xvc2UoKSk7CisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwog
Ci0gICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2MpOwotICAgIGF3
YWl0IHBjLmFkZEljZUNhbmRpZGF0ZShpbml0KTsKLSAgICBhc3NlcnRfY2FuZGlkYXRlX2xpbmVf
YmV0d2VlbihwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAsCi0gICAgICBtZWRpYUxpbmUxLCBlbmRP
ZkNhbmRpZGF0ZUxpbmUsIG1lZGlhTGluZTIpOwotICAgIGFzc2VydF9jYW5kaWRhdGVfbGluZV9h
ZnRlcihwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAsCi0gICAgICBtZWRpYUxpbmUyLCBlbmRPZkNh
bmRpZGF0ZUxpbmUpOwotICB9LCBgYWRkSWNlQ2FuZGlkYXRlKCR7SlNPTi5zdHJpbmdpZnkoaW5p
dCl9KSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1z
ZWN0aW9uc2ApKTsKKyAgICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25E
ZXNjKTsKKyAgICAgIGF3YWl0IHBjLmFkZEljZUNhbmRpZGF0ZShpbml0KTsKKyAgICB9LCBgYWRk
SWNlQ2FuZGlkYXRlKCR7SlNPTi5zdHJpbmdpZnkoaW5pdCl9KSB3b3Jrc2ApOworICAgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICAg
IGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjKTsKKyAgICAgIGF3YWl0
IHBjLmFkZEljZUNhbmRpZGF0ZShpbml0KTsKKyAgICAgIGFzc2VydF9jYW5kaWRhdGVfbGluZV9i
ZXR3ZWVuKHBjLnJlbW90ZURlc2NyaXB0aW9uLnNkcCwKKyAgICAgICAgbWVkaWFMaW5lMSwgZW5k
T2ZDYW5kaWRhdGVMaW5lLCBtZWRpYUxpbmUyKTsKKyAgICAgIGFzc2VydF9jYW5kaWRhdGVfbGlu
ZV9hZnRlcihwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAsCisgICAgICAgIG1lZGlhTGluZTIsIGVu
ZE9mQ2FuZGlkYXRlTGluZSk7CisgICAgfSwgYGFkZEljZUNhbmRpZGF0ZSgke0pTT04uc3RyaW5n
aWZ5KGluaXQpfSkgYWRkcyBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9uc2Ap
OworICB9KTsKIAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKQEAgLTQxOCw3ICs0MjgsNyBAQCBhPXJ0Y3AtcnNpemUK
ICAgICAgIGFzc2VydF9jYW5kaWRhdGVfbGluZV9iZXR3ZWVuKHBjLnJlbW90ZURlc2NyaXB0aW9u
LnNkcCwKICAgICAgICAgbWVkaWFMaW5lMSwgZW5kT2ZDYW5kaWRhdGVMaW5lLCBtZWRpYUxpbmUy
KTsKICAgICB9KTsKLSAgfSwgJ0FkZCB3aXRoIGVtcHR5IGNhbmRpZGF0ZSBzdHJpbmcgKGVuZCBv
ZiBjYW5kaWRhdGUpIHNob3VsZCBzdWNjZWVkJyk7CisgIH0sICdBZGQgd2l0aCBlbXB0eSBjYW5k
aWRhdGUgc3RyaW5nIChlbmQgb2YgY2FuZGlkYXRlcykgc2hvdWxkIHN1Y2NlZWQnKTsKIAogICAv
KgogICAgIDQuNC4yLiAgYWRkSWNlQ2FuZGlkYXRlCkBAIC00NDAsNiArNDUwLDE1IEBAIGE9cnRj
cC1yc2l6ZQogICAgICAgICB9KSkpOwogICB9LCAnQWRkIGNhbmRpZGF0ZSB3aXRoIGJvdGggc2Rw
TWlkIGFuZCBzZHBNTGluZUluZGV4IG1hbnVhbGx5IHNldCB0byBudWxsIHNob3VsZCByZWplY3Qg
d2l0aCBUeXBlRXJyb3InKTsKIAorICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29u
c3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjLmNsb3NlKCkpOworCisgICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lv
bkRlc2MpOworICAgIHByb21pc2VfcmVqZWN0c19qcyh0LCBUeXBlRXJyb3IsCisgICAgICBwYy5h
ZGRJY2VDYW5kaWRhdGUoe2NhbmRpZGF0ZTogY2FuZGlkYXRlU3RyMX0pKTsKKyAgfSwgJ2FkZElj
ZUNhbmRpZGF0ZSB3aXRoIGEgY2FuZGlkYXRlIGFuZCBuZWl0aGVyIHNkcE1pZCBub3Igc2RwTUxp
bmVJbmRleCBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yJyk7CisKICAgcHJvbWlzZV90ZXN0
KHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAKQEAgLTYw
OSw1ICs2MjgsNCBAQCBhPXJ0Y3AtcnNpemUKICAgICAgICAgICB1c2VybmFtZUZyYWdtZW50OiB1
c2VybmFtZUZyYWdtZW50MQogICAgICAgICB9KSkpOwogICB9LCAnQWRkIGNhbmRpZGF0ZSB3aXRo
IHNkcE1pZCBiZWxvbmdpbmcgdG8gZGlmZmVyZW50IHVzZXJuYW1lRnJhZ21lbnQgc2hvdWxkIHJl
amVjdCB3aXRoIE9wZXJhdGlvbkVycm9yJyk7Ci0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tYWRkVHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkVHJh
Y2suaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDIyMjdkNjNkMDcyYTBlMDM0ODZjMDQ3ODJiNTk5
NzllOGQzN2NjZmUuLjRkNTUyOTYwNTA0MzJkODE2MGVlZWI4NTNhMGQyNTA4YzYyYjJmNTYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy1leHBlY3RlZC50eHQKQEAgLTgsNCArOCw1IEBAIFBB
U1MgYWRkVHJhY2sgd2l0aCBleGlzdGluZyBzZW5kZXIgd2l0aCBudWxsIHRyYWNrLCBzYW1lIGtp
bmQsIGFuZCByZWN2b25seSBkaXJlCiBQQVNTIGFkZFRyYWNrIHdpdGggZXhpc3Rpbmcgc2VuZGVy
IHRoYXQgaGFzIG5vdCBiZWVuIHVzZWQgdG8gc2VuZCBzaG91bGQgcmV1c2UgdGhlIHNlbmRlcgog
UEFTUyBhZGRUcmFjayB3aXRoIGV4aXN0aW5nIHNlbmRlciB0aGF0IGhhcyBiZWVuIHVzZWQgdG8g
c2VuZCBzaG91bGQgY3JlYXRlIG5ldyBzZW5kZXIKIFBBU1MgYWRkVHJhY2sgd2l0aCBleGlzdGlu
ZyBzZW5kZXIgd2l0aCBudWxsIHRyYWNrLCBkaWZmZXJlbnQga2luZCwgYW5kIHJlY3Zvbmx5IGRp
cmVjdGlvbiBzaG91bGQgY3JlYXRlIG5ldyBzZW5kZXIKK0ZBSUwgQWRkaW5nIG1vcmUgdHJhY2tz
IGRvZXMgbm90IGdlbmVyYXRlIG1vcmUgY2FuZGlkYXRlcyBpZiBidW5kbGVkIGFzc2VydF91bnJl
YWNoZWQ6IE5vIGNhbGxlciBjYW5kaWRhdGVzIHNob3VsZCBiZSBnZW5lcmF0ZWQuIFJlYWNoZWQg
dW5yZWFjaGFibGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkVHJhY2suaHR0cHMuaHRtbAppbmRleCA3NTg1OTYxZjMx
Y2U5NDJkYjk0YTZlNTliZTc2Y2Y4YjhiM2RlMGRmLi41MjUzMjNjYWQwN2Q3ZGQ5MzhkYTc0NGEw
MmRmOTMzOTdiMmU1ZWVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLmh0bWwKQEAgLTI4Niw1ICsyODYs
NTUgQEAKICAgICAgIDUuMS4gYWRkVHJhY2sKICAgICAgICAgMTAuIFVwZGF0ZSB0aGUgbmVnb3Rp
YXRpb24tbmVlZGVkIGZsYWcgZm9yIGNvbm5lY3Rpb24uCiAKLSAgICovCisgICovCisKKyAgcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGNhbGxlciA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOworICAg
IGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0
Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJl
YW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBjb25z
dCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOworICAgIGNvbnN0IHRyYW5zY2VpdmVyID0g
Y2FsbGVyLmFkZFRyYW5zY2VpdmVyKHRyYWNrKTsKKyAgICAvLyBOb3RlIHRoYXQgdGhpcyB0ZXN0
IGRvZXNuJ3QgcHJvY2VzcyBjYW5pZGlkYXRlcy4KKyAgICB7CisgICAgICBjb25zdCBvZmZlciA9
IGF3YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOworICAgICAgYXdhaXQgY2FsbGVyLnNldExvY2Fs
RGVzY3JpcHRpb24ob2ZmZXIpOworICAgICAgYXdhaXQgY2FsbGVlLnNldFJlbW90ZURlc2NyaXB0
aW9uKG9mZmVyKTsKKyAgICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGNhbGxlZS5jcmVhdGVBbnN3
ZXIoKTsKKyAgICAgIGF3YWl0IGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7Cisg
ICAgICBhd2FpdCBjYWxsZXIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgICB9Cisg
ICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAnc2VuZG9ubHkn
KTsKKyAgICBhd2FpdCB3YWl0Rm9ySWNlR2F0aGVyaW5nU3RhdGUoY2FsbGVyLCBbJ2NvbXBsZXRl
J10pOworICAgIGF3YWl0IHdhaXRGb3JJY2VHYXRoZXJpbmdTdGF0ZShjYWxsZWUsIFsnY29tcGxl
dGUnXSk7CisKKyAgICBjb25zdCBzZWNvbmRfc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0o
e2F1ZGlvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzZWNvbmRfc3RyZWFtLmdl
dFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgLy8gVGhlcmUg
bWF5IGJlIGNhbGxlZSBjYW5kaWRhdGVzIGluIGZsaWdodC4gSXQgc2VlbXMgdGhhdCB3YWl0aW5n
CisgICAgLy8gZm9yIGEgY3JlYXRlT2ZmZXIoKSBpcyBlbm91Z2ggdGltZSB0byBsZXQgdGhlbSBj
b21wbGV0ZSBwcm9jZXNzaW5nLgorICAgIC8vIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20vd2VicnRj
LzEzMDk1KTogRml4IGJ1ZyBhbmQgcmVtb3ZlLgorICAgIGF3YWl0IGNhbGxlci5jcmVhdGVPZmZl
cigpOworCisgICAgY29uc3QgW3NlY29uZF90cmFja10gPSBzZWNvbmRfc3RyZWFtLmdldFRyYWNr
cygpOworICAgIGNhbGxlci5vbmljZWNhbmRpZGF0ZSA9IHQudW5yZWFjaGVkX2Z1bmMoCisgICAg
ICAnTm8gY2FsbGVyIGNhbmRpZGF0ZXMgc2hvdWxkIGJlIGdlbmVyYXRlZC4nKTsKKyAgICBjYWxs
ZWUub25pY2VjYW5kaWRhdGUgPSB0LnVucmVhY2hlZF9mdW5jKAorICAgICAgJ05vIGNhbGxlZSBj
YW5kaWRhdGVzIHNob3VsZCBiZSBnZW5lcmF0ZWQuJyk7CisgICAgY2FsbGVyLmFkZFRyYWNrKHNl
Y29uZF90cmFjayk7CisgICAgeworICAgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBjYWxsZXIuY3Jl
YXRlT2ZmZXIoKTsKKyAgICAgIGF3YWl0IGNhbGxlci5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVy
KTsKKyAgICAgIGF3YWl0IGNhbGxlZS5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgICAg
ICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBjYWxsZWUuY3JlYXRlQW5zd2VyKCk7CisgICAgICBhd2Fp
dCBjYWxsZWUuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICAgICAgYXdhaXQgY2FsbGVy
LnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CisgICAgfQorICAgIC8vIENoZWNrIHRoYXQg
d2UncmUgYnVuZGxlZC4KKyAgICBjb25zdCBbZmlyc3RfdHJhbnNjZWl2ZXIsIHNlY29uZF90cmFu
c2NlaXZlcl0gPSBjYWxsZXIuZ2V0VHJhbnNjZWl2ZXJzKCk7CisgICAgYXNzZXJ0X2VxdWFscyhm
aXJzdF90cmFuc2NlaXZlci50cmFuc3BvcnQsIHNlY29uZF90cmFuc2NlaXZlci50cmFuc3BvcnQp
OworCisgIH0sICdBZGRpbmcgbW9yZSB0cmFja3MgZG9lcyBub3QgZ2VuZXJhdGUgbW9yZSBjYW5k
aWRhdGVzIGlmIGJ1bmRsZWQnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
Y2FwdHVyZS12aWRlby5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FwdHVyZS12aWRlby5odHRw
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI2YzAyMjJkYzIxZDc3OWE2YWI5ODJkOTYzY2YzZmQ1YWNmYzE5
YzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYXB0dXJlLXZpZGVvLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSw3MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgor
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisvLyBUaGlzIHRlc3QgY2hlY2tzIHRoYXQg
PHZpZGVvPiBjYXB0dXJlIHdvcmtzIHZpYSBQZWVyQ29ubmVjdGlvbi4KKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCBzb3VyY2VWaWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3ZpZGVvJyk7CisgIHNvdXJjZVZpZGVvLnNyYyA9ICIvbWVkaWEvdGVzdC12LTEyOGstMzIw
eDI0MC0yNGZwcy04a2ZyLndlYm0iOworICBzb3VyY2VWaWRlby5sb29wID0gdHJ1ZTsKKworICBj
b25zdCBvbkNhblBsYXkgPSBuZXcgUHJvbWlzZShyID0+IHNvdXJjZVZpZGVvLm9uY2FucGxheSA9
IHIpOworICBhd2FpdCBvbkNhblBsYXk7CisKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBw
YzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIu
Y2xvc2UoKSk7CisKKyAgLy8gQXR0YWNoIHZpZGVvIHRvIHBjMS4KKyAgY29uc3Qgc3RyZWFtID0g
c291cmNlVmlkZW8uY2FwdHVyZVN0cmVhbSgpOworICBjb25zdCB0cmFja3MgPSBzdHJlYW0uZ2V0
VHJhY2tzKCk7CisgIHBjMS5hZGRUcmFjayh0cmFja3NbMF0pOworCisgIGNvbnN0IGRlc3RWaWRl
byA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgIGRlc3RWaWRlby5hdXRvcGxh
eSA9IHRydWU7CisKKyAgLy8gU2V0dXAgcGMxLT5wYzIuCisgIGNvbnN0IGhhdmVUcmFja0V2ZW50
MSA9IG5ldyBQcm9taXNlKHIgPT4gcGMyLm9udHJhY2sgPSByKTsKKyAgZXhjaGFuZ2VJY2VDYW5k
aWRhdGVzKHBjMSwgcGMyKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAg
YXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAg
YXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURl
c2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAvLyBEaXNwbGF5IHBjMiByZWNl
aXZlZCB0cmFjayBpbiB2aWRlbyBlbGVtZW50LgorICBjb25zdCBvbkxvYWRlZE1ldGFkYXRhID0g
bmV3IFByb21pc2UociA9PiBkZXN0VmlkZW8ub25sb2FkZWRtZXRhZGF0YSA9IHIpOworICBkZXN0
VmlkZW8uc3JjT2JqZWN0ID0gbmV3IE1lZGlhU3RyZWFtKFsoYXdhaXQgaGF2ZVRyYWNrRXZlbnQx
KS50cmFja10pOworCisgIC8vIFN0YXJ0IHBsYXliYWNrIGFuZCB3YWl0IGZvciB2aWRlbyBvbiB0
aGUgb3RoZXIgc2lkZS4KKyAgc291cmNlVmlkZW8ucGxheSgpOworICBhd2FpdCBvbkxvYWRlZE1l
dGFkYXRhOworCisgIC8vIFdhaXQgdW50aWwgdGhlIHZpZGVvIGhhcyBub24temVybyByZXNvbHV0
aW9uIGFuZCBzb21lIG5vbi1ibGFjayBwaXhlbHMuCisgIGF3YWl0IG5ldyBQcm9taXNlKHAgPT4g
eworICAgIGZ1bmN0aW9uIGNoZWNrQ29sb3IoKSAgeworICAgICAgICBpZiAoZGVzdFZpZGVvLnZp
ZGVvV2lkdGggPiAwICYmIGdldFZpZGVvU2lnbmFsKGRlc3RWaWRlbykgPiAwLjApCisgICAgICAg
ICAgcCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgdC5zdGVwX3RpbWVvdXQoY2hlY2tDb2xv
ciwgMCk7CisgICAgfQorICAgIGNoZWNrQ29sb3IoKTsKKyAgfSk7CisKKyAgLy8gVXNlcyBIZWxw
ZXIuanMgR2V0VmlkZW9TaWduYWwgdG8gcXVlcnkgfGRlc3RWaWRlb3wgcGl4ZWwgdmFsdWUgYXQg
YSBjZXJ0YWluIHBvc2l0aW9uLgorICBjb25zdCBwaXhlbFZhbHVlID0gZ2V0VmlkZW9TaWduYWwo
ZGVzdFZpZGVvKTsKKworICAvLyBBbnl0aGluZyBub24tYmxhY2sgbWVhbnMgdGhhdCBjYXB0dXJl
IHdvcmtzLgorICBhc3NlcnRfbm90X2VxdWFscyhwaXhlbFZhbHVlLCAwKTsKKyAgfSwgIkNhcHR1
cmluZyBhIHZpZGVvIGVsZW1lbnQgYW5kIHNlbmRpbmcgaXQgdmlhIFBlZXJDb25uZWN0aW9uIik7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNv
bm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUt
ZXhwZWN0ZWQudHh0CmluZGV4IGRiZDIzMGY4MzQ2NzcxYjkyOTY2M2FkNWY3YTI1MDg4NzhjYWZh
ZWEuLjNiZjY1Y2EyZjdlNDYxNzE3Y2Y3ZjZkOGNjYWFmOGQ3NDRkMTQ0NzMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tY29ubmVjdGlvblN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDQgQEAKIAogUEFTUyBJ
bml0aWFsIGNvbm5lY3Rpb25TdGF0ZSBzaG91bGQgYmUgbmV3Ci1QQVNTIENsb3NpbmcgdGhlIGNv
bm5lY3Rpb24gc2hvdWxkIHNldCBjb25uZWN0aW9uU3RhdGUgdG8gY2xvc2VkCi1QQVNTIGNvbm5l
Y3Rpb24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgY29ubmVj
dGVkIGNvbm5lY3Rpb24gc3RhdGUKLUZBSUwgY29ubmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNoYW5u
ZWwgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSB0cmFuc3BvcnRzIGluIGNvbm5lY3RlZCBzdGF0ZSB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc2N0cFRyYW5zcG9ydC50cmFu
c3BvcnQnKQorRkFJTCBjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQgZXZl
bnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlIENhbid0IGZpbmQgdmFyaWFi
bGU6IGRvU2lnbmFsaW5nSGFuZHNoYWtlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5l
Y3Rpb25TdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0YXRlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDhlOTQxMTI3MTgxNTU3MjBmMzE2MjI5NjZiMjc3NjBiNjUzYzM5OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS5odG1sCkBAIC0wLDAgKzEsMjA5
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVl
ckNvbm5lY3Rpb24ucHJvdG90eXBlLmNvbm5lY3Rpb25TdGF0ZTwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRD
UGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3Ry
aWN0JzsKKworICAvLyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZWRpdG9yIGRyYWZ0
OgorICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXBjL2FyY2hpdmVzLzIwMTcwNjA1
L3dlYnJ0Yy5odG0KKworICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNh
bGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKKyAgLy8gZXhjaGFuZ2VJY2VD
YW5kaWRhdGVzCisgIC8vIGRvU2lnbmFsaW5nSGFuZHNoYWtlCisKKyAgLyoKKyAgICA0LjMuMi4g
IEludGVyZmFjZSBEZWZpbml0aW9uCisgICAgICBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24g
OiBFdmVudFRhcmdldCB7CisgICAgICAgIC4uLgorICAgICAgICByZWFkb25seSAgYXR0cmlidXRl
IFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUgY29ubmVjdGlvblN0YXRlOworICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciAgICAgICAgICAgb25jb25uZWN0aW9uc3RhdGVjaGFu
Z2U7CisgICAgICB9OworCisgICAgNC40LjMuICBSVENQZWVyQ29ubmVjdGlvblN0YXRlIEVudW0K
KyAgICAgIGVudW0gUlRDUGVlckNvbm5lY3Rpb25TdGF0ZSB7CisgICAgICAgICJuZXciLAorICAg
ICAgICAiY29ubmVjdGluZyIsCisgICAgICAgICJjb25uZWN0ZWQiLAorICAgICAgICAiZGlzY29u
bmVjdGVkIiwKKyAgICAgICAgImZhaWxlZCIsCisgICAgICAgICJjbG9zZWQiCisgICAgICB9Owor
CisgICAgNS41LiAgUlRDRHRsc1RyYW5zcG9ydCBJbnRlcmZhY2UKKyAgICAgIGludGVyZmFjZSBS
VENEdGxzVHJhbnNwb3J0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ0ljZVRyYW5z
cG9ydCAgICAgICB0cmFuc3BvcnQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENEdGxz
VHJhbnNwb3J0U3RhdGUgc3RhdGU7CisgICAgICAgIC4uLgorICAgICAgfTsKKworICAgICAgZW51
bSBSVENEdGxzVHJhbnNwb3J0U3RhdGUgeworICAgICAgICAibmV3IiwKKyAgICAgICAgImNvbm5l
Y3RpbmciLAorICAgICAgICAiY29ubmVjdGVkIiwKKyAgICAgICAgImNsb3NlZCIsCisgICAgICAg
ICJmYWlsZWQiCisgICAgICB9OworCisgICAgNS42LiAgUlRDSWNlVHJhbnNwb3J0IEludGVyZmFj
ZQorICAgICAgaW50ZXJmYWNlIFJUQ0ljZVRyYW5zcG9ydCB7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBSVENJY2VUcmFuc3BvcnRTdGF0ZSBzdGF0ZTsKKyAgICAgICAgLi4uCisgICAgICB9
OworCisgICAgICBlbnVtIFJUQ0ljZVRyYW5zcG9ydFN0YXRlIHsKKyAgICAgICAgIm5ldyIsCisg
ICAgICAgICJjaGVja2luZyIsCisgICAgICAgICJjb25uZWN0ZWQiLAorICAgICAgICAiY29tcGxl
dGVkIiwKKyAgICAgICAgImZhaWxlZCIsCisgICAgICAgICJkaXNjb25uZWN0ZWQiLAorICAgICAg
ICAiY2xvc2VkIgorICAgICAgfTsKKyAgICovCisKKyAgLyoKKyAgICA0LjQuMy4gIFJUQ1BlZXJD
b25uZWN0aW9uU3RhdGUgRW51bQorICAgICAgbmV3CisgICAgICAgIEFueSBvZiB0aGUgUlRDSWNl
VHJhbnNwb3J0cyBvciBSVENEdGxzVHJhbnNwb3J0cyBhcmUgaW4gdGhlIG5ldworICAgICAgICBz
dGF0ZSBhbmQgbm9uZSBvZiB0aGUgdHJhbnNwb3J0cyBhcmUgaW4gdGhlIGNvbm5lY3RpbmcsIGNo
ZWNraW5nLAorICAgICAgICBmYWlsZWQgb3IgZGlzY29ubmVjdGVkIHN0YXRlLCBvciBhbGwgdHJh
bnNwb3J0cyBhcmUgaW4gdGhlIGNsb3NlZCBzdGF0ZS4KKyAgICovCisgIHRlc3QodCA9PiB7Cisg
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHBjLmNvbm5lY3Rpb25TdGF0ZSwgJ25ldycpOworICB9LCAnSW5pdGlhbCBjb25uZWN0aW9uU3Rh
dGUgc2hvdWxkIGJlIG5ldycpOworCisgIC8qCisgICAgNC40LjMuICBSVENQZWVyQ29ubmVjdGlv
blN0YXRlIEVudW0KKyAgICAgIGNvbm5lY3RlZAorICAgICAgICBBbGwgUlRDSWNlVHJhbnNwb3J0
cyBhbmQgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRoZSBjb25uZWN0ZWQsCisgICAgICAgIGNv
bXBsZXRlZCBvciBjbG9zZWQgc3RhdGUgYW5kIGF0IGxlYXN0IG9mIHRoZW0gaXMgaW4gdGhlIGNv
bm5lY3RlZAorICAgICAgICBvciBjb21wbGV0ZWQgc3RhdGUuCisKKyAgICA1LjUuICBSVENEdGxz
VHJhbnNwb3J0U3RhdGUKKyAgICAgIGNvbm5lY3RlZAorICAgICAgICBEVExTIGhhcyBjb21wbGV0
ZWQgbmVnb3RpYXRpb24gb2YgYSBzZWN1cmUgY29ubmVjdGlvbi4KKworICAgIDUuNi4gIFJUQ0lj
ZVRyYW5zcG9ydFN0YXRlCisgICAgICBjb25uZWN0ZWQKKyAgICAgICAgVGhlIFJUQ0ljZVRyYW5z
cG9ydCBoYXMgZm91bmQgYSB1c2FibGUgY29ubmVjdGlvbiwgYnV0IGlzIHN0aWxsCisgICAgICAg
IGNoZWNraW5nIG90aGVyIGNhbmRpZGF0ZSBwYWlycyB0byBzZWUgaWYgdGhlcmUgaXMgYSBiZXR0
ZXIgY29ubmVjdGlvbi4KKyAgICAgICAgSXQgbWF5IGFsc28gc3RpbGwgYmUgZ2F0aGVyaW5nIGFu
ZC9vciB3YWl0aW5nIGZvciBhZGRpdGlvbmFsIHJlbW90ZQorICAgICAgICBjYW5kaWRhdGVzLiBJ
ZiBjb25zZW50IGNoZWNrcyBbUkZDNzY3NV0gZmFpbCBvbiB0aGUgY29ubmVjdGlvbiBpbiB1c2Us
CisgICAgICAgIGFuZCB0aGVyZSBhcmUgbm8gb3RoZXIgc3VjY2Vzc2Z1bCBjYW5kaWRhdGUgcGFp
cnMgYXZhaWxhYmxlLCB0aGVuIHRoZQorICAgICAgICBzdGF0ZSB0cmFuc2l0aW9ucyB0byAiY2hl
Y2tpbmciIChpZiB0aGVyZSBhcmUgY2FuZGlkYXRlIHBhaXJzIHJlbWFpbmluZworICAgICAgICB0
byBiZSBjaGVja2VkKSBvciAiZGlzY29ubmVjdGVkIiAoaWYgdGhlcmUgYXJlIG5vIGNhbmRpZGF0
ZSBwYWlycyB0bworICAgICAgICBjaGVjaywgYnV0IHRoZSBwZWVyIGlzIHN0aWxsIGdhdGhlcmlu
ZyBhbmQvb3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbAorICAgICAgICByZW1vdGUgY2FuZGlkYXRl
cykuCisKKyAgICAgIGNvbXBsZXRlZAorICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBm
aW5pc2hlZCBnYXRoZXJpbmcsIHJlY2VpdmVkIGFuIGluZGljYXRpb24gdGhhdAorICAgICAgICB0
aGVyZSBhcmUgbm8gbW9yZSByZW1vdGUgY2FuZGlkYXRlcywgZmluaXNoZWQgY2hlY2tpbmcgYWxs
IGNhbmRpZGF0ZQorICAgICAgICBwYWlycyBhbmQgZm91bmQgYSBjb25uZWN0aW9uLiBJZiBjb25z
ZW50IGNoZWNrcyBbUkZDNzY3NV0gc3Vic2VxdWVudGx5CisgICAgICAgIGZhaWwgb24gYWxsIHN1
Y2Nlc3NmdWwgY2FuZGlkYXRlIHBhaXJzLCB0aGUgc3RhdGUgdHJhbnNpdGlvbnMgdG8gImZhaWxl
ZCIuCisgICAqLworICBhc3luY190ZXN0KHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwor
ICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBvbkNvbm5lY3Rpb25TdGF0ZUNo
YW5nZSA9IHQuc3RlcF9mdW5jKCgpID0+IHsKKyAgICAgIGNvbnN0IHsgY29ubmVjdGlvblN0YXRl
IH0gPSBwYzE7CisgICAgICBpZihjb25uZWN0aW9uU3RhdGUgPT09ICdjb25uZWN0ZWQnKSB7Cisg
ICAgICAgIGNvbnN0IHNjdHBUcmFuc3BvcnQgPSBwYzEuc2N0cDsKKworICAgICAgICBjb25zdCBk
dGxzVHJhbnNwb3J0ID0gc2N0cFRyYW5zcG9ydC50cmFuc3BvcnQ7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoZHRsc1RyYW5zcG9ydC5zdGF0ZSwgJ2Nvbm5lY3RlZCcsCisgICAgICAgICAgJ0V4cGVj
dCBEVExTIHRyYW5zcG9ydCB0byBiZSBpbiBjb25uZWN0ZWQgc3RhdGUnKTsKKworICAgICAgICBj
b25zdCBpY2VUcmFuc3BvcnQgPSBkdGxzVHJhbnNwb3J0LnRyYW5zcG9ydAorICAgICAgICBhc3Nl
cnRfdHJ1ZShpY2VUcmFuc3BvcnQuc3RhdGUgPT09ICAnY29ubmVjdGVkJyB8fAorICAgICAgICAg
IGljZVRyYW5zcG9ydC5zdGF0ZSA9PT0gJ2NvbXBsZXRlZCcsCisgICAgICAgICAgJ0V4cGVjdCBJ
Q0UgdHJhbnNwb3J0IHRvIGJlIGluIGNvbm5lY3RlZCBvciBjb21wbGV0ZWQgc3RhdGUnKTsKKwor
ICAgICAgICB0LmRvbmUoKTsKKyAgICAgIH0KKyAgICB9KTsKKworICAgIHBjMS5jcmVhdGVEYXRh
Q2hhbm5lbCgndGVzdCcpOworCisgICAgYXNzZXJ0X2VxdWFscyhwYzEub25jb25uZWN0aW9uc3Rh
dGVjaGFuZ2UsIG51bGwsCisgICAgICAnRXhwZWN0IGNvbm5lY3Rpb24gdG8gaGF2ZSBjb25uZWN0
aW9uc3RhdGVjaGFuZ2UgZXZlbnQnKTsKKworICAgIHBjMS5hZGRFdmVudExpc3RlbmVyKCdjb25u
ZWN0aW9uc3RhdGVjaGFuZ2UnLCBvbkNvbm5lY3Rpb25TdGF0ZUNoYW5nZSk7CisKKyAgICBleGNo
YW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICAgIGRvU2lnbmFsaW5nSGFuZHNoYWtlKHBj
MSwgcGMyKTsKKyAgfSwgJ2Nvbm5lY3Rpb24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBl
dmVudHVhbGx5IGhhdmUgY29ubmVjdGVkIGNvbm5lY3Rpb24gc3RhdGUnKTsKKworICAvKgorICAg
IFRPRE8KKyAgICA0LjQuMy4gIFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUgRW51bQorICAgICAgY29u
bmVjdGluZworICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9ydHMgb3IgUlRDRHRsc1Ry
YW5zcG9ydHMgYXJlIGluIHRoZQorICAgICAgICBjb25uZWN0aW5nIG9yIGNoZWNraW5nIHN0YXRl
IGFuZCBub25lIG9mIHRoZW0gaXMgaW4gdGhlIGZhaWxlZCBzdGF0ZS4KKworICAgICAgZGlzY29u
bmVjdGVkCisgICAgICAgIEFueSBvZiB0aGUgUlRDSWNlVHJhbnNwb3J0cyBvciBSVENEdGxzVHJh
bnNwb3J0cyBhcmUgaW4gdGhlIGRpc2Nvbm5lY3RlZAorICAgICAgICBzdGF0ZSBhbmQgbm9uZSBv
ZiB0aGVtIGFyZSBpbiB0aGUgZmFpbGVkIG9yIGNvbm5lY3Rpbmcgb3IgY2hlY2tpbmcgc3RhdGUu
CisKKyAgICAgIGZhaWxlZAorICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9ydHMgb3Ig
UlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIGEgZmFpbGVkIHN0YXRlLgorCisgICAgICBjbG9zZWQK
KyAgICAgICAgVGhlIFJUQ1BlZXJDb25uZWN0aW9uIG9iamVjdCdzIFtbaXNDbG9zZWRdXSBzbG90
IGlzIHRydWUuCisKKyAgICAgNS41LiBSVENEdGxzVHJhbnNwb3J0U3RhdGUKKyAgICAgIG5ldwor
ICAgICAgICBEVExTIGhhcyBub3Qgc3RhcnRlZCBuZWdvdGlhdGluZyB5ZXQuCisKKyAgICAgIGNv
bm5lY3RpbmcKKyAgICAgICAgRFRMUyBpcyBpbiB0aGUgcHJvY2VzcyBvZiBuZWdvdGlhdGluZyBh
IHNlY3VyZSBjb25uZWN0aW9uLgorCisgICAgICBjbG9zZWQKKyAgICAgICAgVGhlIHRyYW5zcG9y
dCBoYXMgYmVlbiBjbG9zZWQuCisKKyAgICAgIGZhaWxlZAorICAgICAgICBUaGUgdHJhbnNwb3J0
IGhhcyBmYWlsZWQgYXMgdGhlIHJlc3VsdCBvZiBhbiBlcnJvciAoc3VjaCBhcyBhIGZhaWx1cmUK
KyAgICAgICAgdG8gdmFsaWRhdGUgdGhlIHJlbW90ZSBmaW5nZXJwcmludCkuCisKKyAgICA1LjYu
ICBSVENJY2VUcmFuc3BvcnRTdGF0ZQorICAgICAgbmV3CisgICAgICAgIFRoZSBSVENJY2VUcmFu
c3BvcnQgaXMgZ2F0aGVyaW5nIGNhbmRpZGF0ZXMgYW5kL29yIHdhaXRpbmcgZm9yCisgICAgICAg
IHJlbW90ZSBjYW5kaWRhdGVzIHRvIGJlIHN1cHBsaWVkLCBhbmQgaGFzIG5vdCB5ZXQgc3RhcnRl
ZCBjaGVja2luZy4KKworICAgICAgY2hlY2tpbmcKKyAgICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9y
dCBoYXMgcmVjZWl2ZWQgYXQgbGVhc3Qgb25lIHJlbW90ZSBjYW5kaWRhdGUgYW5kCisgICAgICAg
IGlzIGNoZWNraW5nIGNhbmRpZGF0ZSBwYWlycyBhbmQgaGFzIGVpdGhlciBub3QgeWV0IGZvdW5k
IGEgY29ubmVjdGlvbgorICAgICAgICBvciBjb25zZW50IGNoZWNrcyBbUkZDNzY3NV0gaGF2ZSBm
YWlsZWQgb24gYWxsIHByZXZpb3VzbHkgc3VjY2Vzc2Z1bAorICAgICAgICBjYW5kaWRhdGUgcGFp
cnMuIEluIGFkZGl0aW9uIHRvIGNoZWNraW5nLCBpdCBtYXkgYWxzbyBzdGlsbCBiZSBnYXRoZXJp
bmcuCisKKyAgICAgIGZhaWxlZAorICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBmaW5p
c2hlZCBnYXRoZXJpbmcsIHJlY2VpdmVkIGFuIGluZGljYXRpb24gdGhhdAorICAgICAgICB0aGVy
ZSBhcmUgbm8gbW9yZSByZW1vdGUgY2FuZGlkYXRlcywgZmluaXNoZWQgY2hlY2tpbmcgYWxsIGNh
bmRpZGF0ZSBwYWlycywKKyAgICAgICAgYW5kIGFsbCBwYWlycyBoYXZlIGVpdGhlciBmYWlsZWQg
Y29ubmVjdGl2aXR5IGNoZWNrcyBvciBoYXZlIGxvc3QgY29uc2VudC4KKworICAgICAgZGlzY29u
bmVjdGVkCisgICAgICAgIFRoZSBJQ0UgQWdlbnQgaGFzIGRldGVybWluZWQgdGhhdCBjb25uZWN0
aXZpdHkgaXMgY3VycmVudGx5IGxvc3QgZm9yIHRoaXMKKyAgICAgICAgUlRDSWNlVHJhbnNwb3J0
IC4gVGhpcyBpcyBtb3JlIGFnZ3Jlc3NpdmUgdGhhbiBmYWlsZWQsIGFuZCBtYXkgdHJpZ2dlcgor
ICAgICAgICBpbnRlcm1pdHRlbnRseSAoYW5kIHJlc29sdmUgaXRzZWxmIHdpdGhvdXQgYWN0aW9u
KSBvbiBhIGZsYWt5IG5ldHdvcmsuCisgICAgICAgIFRoZSB3YXkgdGhpcyBzdGF0ZSBpcyBkZXRl
cm1pbmVkIGlzIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudC4KKworICAgICAgICBFeGFtcGxlcyBp
bmNsdWRlOgorICAgICAgICAgIExvc2luZyB0aGUgbmV0d29yayBpbnRlcmZhY2UgZm9yIHRoZSBj
b25uZWN0aW9uIGluIHVzZS4KKyAgICAgICAgICBSZXBlYXRlZGx5IGZhaWxpbmcgdG8gcmVjZWl2
ZSBhIHJlc3BvbnNlIHRvIFNUVU4gcmVxdWVzdHMuCisKKyAgICAgICAgQWx0ZXJuYXRpdmVseSwg
dGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgZmluaXNoZWQgY2hlY2tpbmcgYWxsIGV4aXN0aW5nCisg
ICAgICAgIGNhbmRpZGF0ZXMgcGFpcnMgYW5kIGZhaWxlZCB0byBmaW5kIGEgY29ubmVjdGlvbiAo
b3IgY29uc2VudCBjaGVja3MKKyAgICAgICAgW1JGQzc2NzVdIG9uY2Ugc3VjY2Vzc2Z1bCwgaGF2
ZSBub3cgZmFpbGVkKSwgYnV0IGl0IGlzIHN0aWxsIGdhdGhlcmluZworICAgICAgICBhbmQvb3Ig
d2FpdGluZyBmb3IgYWRkaXRpb25hbCByZW1vdGUgY2FuZGlkYXRlcy4KKworICAgICAgY2xvc2Vk
CisgICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIHNodXQgZG93biBhbmQgaXMgbm8gbG9u
Z2VyIHJlc3BvbmRpbmcgdG8gU1RVTiByZXF1ZXN0cy4KKyAgICovCis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLW9mZmVyVG9SZWNlaXZlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLW9mZmVyVG9SZWNlaXZlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45YzYxN2IxZGY2Y2E4NGNiMzNiNWUzY2E2NTRmZGE2ODcyZmJiNmQ2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2VpdmUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKworUEFTUyBjcmVhdGVPZmZlcigpIHdpdGggb2Zm
ZXJUb1JlY2VpdmVBdWRpbyBzZXQgdG8gZmFsc2Ugc2hvdWxkIG5vdCBjcmVhdGUgYSB0cmFuc2Nl
aXZlcgorRkFJTCBjcmVhdGVPZmZlcigpIHdpdGggb2ZmZXJUb1JlY2VpdmVBdWRpbyBzaG91bGQg
Y3JlYXRlIGEgInJlY3Zvbmx5IiB0cmFuc2NlaXZlciBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgcGMg
dG8gaGF2ZSBvbmUgdHJhbnNjZWl2ZXIgZXhwZWN0ZWQgMSBidXQgZ290IDAKK0ZBSUwgb2ZmZXJU
b1JlY2VpdmVBdWRpbyBvcHRpb24gc2hvdWxkIGJlIGlnbm9yZWQgaWYgYSBub24tc3RvcHBlZCAi
cmVjdm9ubHkiIHRyYW5zY2VpdmVyIGV4aXN0cyBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgcGMgdG8g
aGF2ZSBvbmUgdHJhbnNjZWl2ZXIgZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1Mgb2ZmZXJUb1Jl
Y2VpdmVBdWRpbyBvcHRpb24gc2hvdWxkIGJlIGlnbm9yZWQgaWYgYSBub24tc3RvcHBlZCAic2Vu
ZHJlY3YiIHRyYW5zY2VpdmVyIGV4aXN0cworRkFJTCBvZmZlclRvUmVjZWl2ZUF1ZGlvIHNldCB0
byBmYWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNyZWF0ZSBhICJzZW5kb25seSIgdHJhbnNjZWl2
ZXIgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgInNlbmRvbmx5IiBk
aXJlY3Rpb24gZXhwZWN0ZWQgInNlbmRvbmx5IiBidXQgZ290ICJzZW5kcmVjdiIKK0ZBSUwgb2Zm
ZXJUb1JlY2VpdmVBdWRpbyBzZXQgdG8gZmFsc2Ugd2l0aCBhICJyZWN2b25seSIgdHJhbnNjZWl2
ZXIgc2hvdWxkIGNoYW5nZSB0aGUgZGlyZWN0aW9uIHRvICJpbmFjdGl2ZSIgYXNzZXJ0X2VxdWFs
czogRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgImluYWN0aXZlIiBkaXJlY3Rpb24gZXhwZWN0
ZWQgImluYWN0aXZlIiBidXQgZ290ICJyZWN2b25seSIKK0ZBSUwgc3Vic2VxdWVudCBvZmZlclRv
UmVjZWl2ZUF1ZGlvIHNldCB0byBmYWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNoYW5nZSB0aGUg
ZGlyZWN0aW9uIHRvICJzZW5kb25seSIgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHRyYW5zY2VpdmVy
IHRvIGhhdmUgInNlbmRvbmx5IiBkaXJlY3Rpb24gZXhwZWN0ZWQgInNlbmRvbmx5IiBidXQgZ290
ICJzZW5kcmVjdiIKK1BBU1MgY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlVmlkZW8g
c2V0IHRvIGZhbHNlIHNob3VsZCBub3QgY3JlYXRlIGEgdHJhbnNjZWl2ZXIKK0ZBSUwgY3JlYXRl
T2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlVmlkZW8gc2hvdWxkIGNyZWF0ZSBhICJyZWN2b25s
eSIgdHJhbnNjZWl2ZXIgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5z
Y2VpdmVyIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitGQUlMIG9mZmVyVG9SZWNlaXZlVmlkZW8gb3B0
aW9uIHNob3VsZCBiZSBpZ25vcmVkIGlmIGEgbm9uLXN0b3BwZWQgInJlY3Zvbmx5IiB0cmFuc2Nl
aXZlciBleGlzdHMgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2Vp
dmVyIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIG9mZmVyVG9SZWNlaXZlVmlkZW8gb3B0aW9u
IHNob3VsZCBiZSBpZ25vcmVkIGlmIGEgbm9uLXN0b3BwZWQgInNlbmRyZWN2IiB0cmFuc2NlaXZl
ciBleGlzdHMKK0ZBSUwgb2ZmZXJUb1JlY2VpdmVWaWRlbyBzZXQgdG8gZmFsc2Ugd2l0aCBhIHRy
YWNrIHNob3VsZCBjcmVhdGUgYSAic2VuZG9ubHkiIHRyYW5zY2VpdmVyIGFzc2VydF9lcXVhbHM6
IEV4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJzZW5kb25seSIgZGlyZWN0aW9uIGV4cGVjdGVk
ICJzZW5kb25seSIgYnV0IGdvdCAic2VuZHJlY3YiCitGQUlMIG9mZmVyVG9SZWNlaXZlVmlkZW8g
c2V0IHRvIGZhbHNlIHdpdGggYSAicmVjdm9ubHkiIHRyYW5zY2VpdmVyIHNob3VsZCBjaGFuZ2Ug
dGhlIGRpcmVjdGlvbiB0byAiaW5hY3RpdmUiIGFzc2VydF9lcXVhbHM6IEV4cGVjdCB0cmFuc2Nl
aXZlciB0byBoYXZlICJpbmFjdGl2ZSIgZGlyZWN0aW9uIGV4cGVjdGVkICJpbmFjdGl2ZSIgYnV0
IGdvdCAicmVjdm9ubHkiCitGQUlMIHN1YnNlcXVlbnQgb2ZmZXJUb1JlY2VpdmVWaWRlbyBzZXQg
dG8gZmFsc2Ugd2l0aCBhIHRyYWNrIHNob3VsZCBjaGFuZ2UgdGhlIGRpcmVjdGlvbiB0byAic2Vu
ZG9ubHkiIGFzc2VydF9lcXVhbHM6IEV4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJzZW5kb25s
eSIgZGlyZWN0aW9uIGV4cGVjdGVkICJzZW5kb25seSIgYnV0IGdvdCAic2VuZHJlY3YiCitGQUlM
IG9mZmVyVG9SZWNlaXZlQXVkaW8gYW5kIFZpZGVvIHNob3VsZCBjcmVhdGUgdHdvICJyZWN2b25s
eSIgdHJhbnNjZWl2ZXJzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBwYyB0byBoYXZlIHR3byB0cmFu
c2NlaXZlcnMgZXhwZWN0ZWQgMiBidXQgZ290IDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
Y3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2VpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVy
LW9mZmVyVG9SZWNlaXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQxODI3YTFjOGQ2MGFiZTY3Y2FkNzJh
OWVmMzI4MDAwM2M3OTJjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9m
ZmVyLW9mZmVyVG9SZWNlaXZlLmh0bWwKQEAgLTAsMCArMSwxODUgQEAKKzwhZG9jdHlwZSBodG1s
PgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5UZXN0IGxlZ2FjeSBvZmZlclRvUmVjZWl2
ZUF1ZGlvL1ZpZGVvIG9wdGlvbnM8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL3czYy5naXRodWIuaW8vd2VicnRjLXBjLyNsZWdhY3ktY29uZmlndXJhdGlvbi1leHRlbnNp
b25zIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIC8vIFJ1biBzb21lIHRlc3RzIGZvciBib3RoIGF1
ZGlvIGFuZCB2aWRlbyBraW5kcworICBbJ2F1ZGlvJywgJ3ZpZGVvJ10uZm9yRWFjaCgoa2luZCkg
PT4geworICAgIGNvbnN0IGNhcHNLaW5kID0ga2luZFswXS50b1VwcGVyQ2FzZSgpICsga2luZC5z
bGljZSgxKTsKKworICAgIGNvbnN0IG9mZmVyVG9SZWNlaXZlVHJ1ZSA9IHt9OworICAgIG9mZmVy
VG9SZWNlaXZlVHJ1ZVtgb2ZmZXJUb1JlY2VpdmUke2NhcHNLaW5kfWBdID0gdHJ1ZTsKKworICAg
IGNvbnN0IG9mZmVyVG9SZWNlaXZlRmFsc2UgPSB7fTsKKyAgICBvZmZlclRvUmVjZWl2ZUZhbHNl
W2BvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9YF0gPSBmYWxzZTsKKworICAgIC8vIFN0YXJ0IHRl
c3RpbmcKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsK
KyAgICAgIGNvbnN0IGR1bW15ID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2ZvbycpOyAvLyBKdXN0
IHRvIGhhdmUgc29tZXRoaW5nIHRvIG9mZmVyCisKKyAgICAgIHJldHVybiBwYy5jcmVhdGVPZmZl
cihvZmZlclRvUmVjZWl2ZUZhbHNlKQorICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMCwKKyAgICAgICAgICAnRXhw
ZWN0IHBjIHRvIGhhdmUgbm8gdHJhbnNjZWl2ZXJzJyk7CisgICAgICB9KTsKKyAgICB9LCBgY3Jl
YXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH0gc2V0IHRvIGZhbHNlIHNo
b3VsZCBub3QgY3JlYXRlIGEgdHJhbnNjZWl2ZXJgKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICAgIHJldHVybiBwYy5jcmVhdGVP
ZmZlcihvZmZlclRvUmVjZWl2ZVRydWUpCisgICAgICAudGhlbigoKSA9PiB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxLAorICAgICAgICAgICdF
eHBlY3QgcGMgdG8gaGF2ZSBvbmUgdHJhbnNjZWl2ZXInKTsKKworICAgICAgICBjb25zdCB0cmFu
c2NlaXZlciA9IHBjLmdldFRyYW5zY2VpdmVycygpWzBdOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3JlY3Zvbmx5JywKKyAgICAgICAgICAnRXhwZWN0IHRy
YW5zY2VpdmVyIHRvIGhhdmUgInJlY3Zvbmx5IiBkaXJlY3Rpb24nKTsKKyAgICAgIH0pOworICAg
IH0sIGBjcmVhdGVPZmZlcigpIHdpdGggb2ZmZXJUb1JlY2VpdmUke2NhcHNLaW5kfSBzaG91bGQg
Y3JlYXRlIGEgInJlY3Zvbmx5IiB0cmFuc2NlaXZlcmApOworCisgICAgcHJvbWlzZV90ZXN0KHQg
PT4geworICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgICAgcmV0dXJuIHBjLmNyZWF0
ZU9mZmVyKG9mZmVyVG9SZWNlaXZlVHJ1ZSkKKyAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEsCisgICAgICAgICAg
J0V4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlcicpOworCisgICAgICAgIGNvbnN0IHRy
YW5zY2VpdmVyID0gcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF07CisgICAgICAgIGFzc2VydF9lcXVh
bHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAncmVjdm9ubHknLAorICAgICAgICAgICdFeHBlY3Qg
dHJhbnNjZWl2ZXIgdG8gaGF2ZSAicmVjdm9ubHkiIGRpcmVjdGlvbicpOworICAgICAgfSkKKyAg
ICAgIC50aGVuKCgpID0+IHBjLmNyZWF0ZU9mZmVyKG9mZmVyVG9SZWNlaXZlVHJ1ZSkpCisgICAg
ICAudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJz
KCkubGVuZ3RoLCAxLAorICAgICAgICAgICdFeHBlY3QgcGMgdG8gc3RpbGwgaGF2ZSBvbmx5IG9u
ZSB0cmFuc2NlaXZlcicpOworICAgICAgfSkKKyAgICAgIDsKKyAgICB9LCBgb2ZmZXJUb1JlY2Vp
dmUke2NhcHNLaW5kfSBvcHRpb24gc2hvdWxkIGJlIGlnbm9yZWQgaWYgYSBub24tc3RvcHBlZCAi
cmVjdm9ubHkiIHRyYW5zY2VpdmVyIGV4aXN0c2ApOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4g
eworICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgICAgcmV0dXJuIGdldFRyYWNrRnJv
bVVzZXJNZWRpYShraW5kKQorICAgICAgLnRoZW4oKFt0cmFjaywgc3RyZWFtXSkgPT4geworICAg
ICAgICBwYy5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKKyAgICAgICAgcmV0dXJuIHBjLmNyZWF0
ZU9mZmVyKCk7CisgICAgICB9KQorICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSwKKyAgICAgICAgICAnRXhwZWN0
IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyJyk7CisKKyAgICAgICAgY29uc3QgdHJhbnNjZWl2
ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0cmFu
c2NlaXZlci5kaXJlY3Rpb24sICdzZW5kcmVjdicsCisgICAgICAgICAgJ0V4cGVjdCB0cmFuc2Nl
aXZlciB0byBoYXZlICJzZW5kcmVjdiIgZGlyZWN0aW9uJyk7CisgICAgICB9KQorICAgICAgLnRo
ZW4oKCkgPT4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2VpdmVUcnVlKSkKKyAgICAgIC50aGVu
KCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5n
dGgsIDEsCisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBzdGlsbCBoYXZlIG9ubHkgb25lIHRyYW5z
Y2VpdmVyJyk7CisgICAgICB9KQorICAgICAgOworICAgIH0sIGBvZmZlclRvUmVjZWl2ZSR7Y2Fw
c0tpbmR9IG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBhIG5vbi1zdG9wcGVkICJzZW5kcmVj
diIgdHJhbnNjZWl2ZXIgZXhpc3RzYCk7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgICByZXR1cm4gZ2V0VHJhY2tGcm9tVXNlck1l
ZGlhKGtpbmQpCisgICAgICAudGhlbigoW3RyYWNrLCBzdHJlYW1dKSA9PiB7CisgICAgICAgIHBj
LmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworICAgICAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIo
b2ZmZXJUb1JlY2VpdmVGYWxzZSk7CisgICAgICB9KQorICAgICAgLnRoZW4oKCkgPT4geworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSwKKyAgICAg
ICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyJyk7CisKKyAgICAgICAgY29u
c3QgdHJhbnNjZWl2ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdzZW5kb25seScsCisgICAgICAgICAgJ0V4
cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJzZW5kb25seSIgZGlyZWN0aW9uJyk7CisgICAgICB9
KQorICAgICAgOworICAgIH0sIGBvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9IHNldCB0byBmYWxz
ZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNyZWF0ZSBhICJzZW5kb25seSIgdHJhbnNjZWl2ZXJgKTsK
KworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisK
KyAgICAgIHBjLmFkZFRyYW5zY2VpdmVyKGtpbmQsIHtkaXJlY3Rpb246ICdyZWN2b25seSd9KTsK
KworICAgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKG9mZmVyVG9SZWNlaXZlRmFsc2UpCisgICAg
ICAudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJz
KCkubGVuZ3RoLCAxLAorICAgICAgICAgICdFeHBlY3QgcGMgdG8gaGF2ZSBvbmUgdHJhbnNjZWl2
ZXInKTsKKworICAgICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmdldFRyYW5zY2VpdmVycygp
WzBdOworICAgICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ2luYWN0
aXZlJywKKyAgICAgICAgICAnRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgImluYWN0aXZlIiBk
aXJlY3Rpb24nKTsKKyAgICAgIH0pCisgICAgICA7CisgICAgfSwgYG9mZmVyVG9SZWNlaXZlJHtj
YXBzS2luZH0gc2V0IHRvIGZhbHNlIHdpdGggYSAicmVjdm9ubHkiIHRyYW5zY2VpdmVyIHNob3Vs
ZCBjaGFuZ2UgdGhlIGRpcmVjdGlvbiB0byAiaW5hY3RpdmUiYCk7CisKKyAgICBwcm9taXNlX3Rl
c3QodCA9PiB7CisgICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAg
ICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICAgIGNvbnN0IHBjMiA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5j
bG9zZSgpKTsKKworICAgICAgcmV0dXJuIGdldFRyYWNrRnJvbVVzZXJNZWRpYShraW5kKQorICAg
ICAgLnRoZW4oKFt0cmFjaywgc3RyZWFtXSkgPT4geworICAgICAgICBwYy5hZGRUcmFjayh0cmFj
aywgc3RyZWFtKTsKKyAgICAgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKCk7CisgICAgICB9KQor
ICAgICAgLnRoZW4oKG9mZmVyKSA9PiBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKSkKKyAg
ICAgIC50aGVuKCgpID0+IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYy5sb2NhbERlc2NyaXB0
aW9uKSkKKyAgICAgIC50aGVuKCgpID0+IHBjMi5jcmVhdGVBbnN3ZXIoKSkKKyAgICAgIC50aGVu
KChhbnN3ZXIpID0+IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikpCisgICAgICAudGhl
bigoKSA9PiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbikpCisg
ICAgICAudGhlbigoKSA9PiBwYy5jcmVhdGVPZmZlcihvZmZlclRvUmVjZWl2ZUZhbHNlKSkKKyAg
ICAgIC50aGVuKChvZmZlcikgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5z
Y2VpdmVycygpLmxlbmd0aCwgMSwKKyAgICAgICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRy
YW5zY2VpdmVyJyk7CisKKyAgICAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5nZXRUcmFuc2Nl
aXZlcnMoKVswXTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24s
ICdzZW5kb25seScsCisgICAgICAgICAgJ0V4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJzZW5k
b25seSIgZGlyZWN0aW9uJyk7CisgICAgICB9KQorICAgICAgOworICAgIH0sIGBzdWJzZXF1ZW50
IG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH0gc2V0IHRvIGZhbHNlIHdpdGggYSB0cmFjayBzaG91
bGQgY2hhbmdlIHRoZSBkaXJlY3Rpb24gdG8gInNlbmRvbmx5ImApOworICB9KTsKKworICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICByZXR1cm4gcGMu
Y3JlYXRlT2ZmZXIoeyBvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlLCBvZmZlclRvUmVjZWl2ZVZp
ZGVvOiB0cnVlIH0pCisgICAgLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhwYy5n
ZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDIsCisgICAgICAgICdFeHBlY3QgcGMgdG8gaGF2ZSB0
d28gdHJhbnNjZWl2ZXJzJyk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2
ZXJzKClbMF0uZGlyZWN0aW9uLCAncmVjdm9ubHknLAorICAgICAgICAnRXhwZWN0IGZpcnN0IHRy
YW5zY2VpdmVyIHRvIGhhdmUgInJlY3Zvbmx5IiBkaXJlY3Rpb24nKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKClbMV0uZGlyZWN0aW9uLCAncmVjdm9ubHknLAorICAg
ICAgICAnRXhwZWN0IHNlY29uZCB0cmFuc2NlaXZlciB0byBoYXZlICJyZWN2b25seSIgZGlyZWN0
aW9uJyk7CisgICAgfSk7CisgIH0sICdvZmZlclRvUmVjZWl2ZUF1ZGlvIGFuZCBWaWRlbyBzaG91
bGQgY3JlYXRlIHR3byAicmVjdm9ubHkiIHRyYW5zY2VpdmVycycpOworCis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iODZlZTJjZTZiZjY4M2ZmZGQ0MjkzYjdmMjhlNzhiOGIxMzUyODQxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZlcnMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitGQUlMIFJUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJz
KCkgc2hvdWxkIHJldHVybiBhcnJheSBvZiBSVENJY2VTZXJ2ZXIgUlRDUGVlckNvbm5lY3Rpb24u
Z2V0RGVmYXVsdEljZVNlcnZlcnMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnUlRDUGVlckNvbm5l
Y3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnMoKScsICdSVENQZWVyQ29ubmVjdGlvbi5nZXREZWZh
dWx0SWNlU2VydmVycycgaXMgdW5kZWZpbmVkKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1n
ZXREZWZhdWx0SWNlU2VydmVycy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZl
cnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ZmRiZGI4ZGVjNDZkZTU0OWMwNzc5NDllZDk0NmE3YTMxMGU5
Yjc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZlcnMu
aHRtbApAQCAtMCwwICsxLDk4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRm
LTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnM8L3RpdGxl
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxv
d2luZyBlZGl0b3IgZHJhZnQ6CisgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMv
YXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKKworICAvKgorICAgICAgW0NvbnN0cnVjdG9y
KG9wdGlvbmFsIFJUQ0NvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbildCisgICAgICBpbnRlcmZh
Y2UgUlRDUGVlckNvbm5lY3Rpb24gOiBFdmVudFRhcmdldCB7CisgICAgICAgIHN0YXRpYyBzZXF1
ZW5jZTxSVENJY2VTZXJ2ZXI+ICAgICAgZ2V0RGVmYXVsdEljZVNlcnZlcnMoKTsKKyAgICAgICAg
Li4uCisgICAgICB9OworCisgICAgICBkaWN0aW9uYXJ5IFJUQ0ljZVNlcnZlciB7CisgICAgICAg
IHJlcXVpcmVkIChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3RyaW5nPikgdXJsczsKKyAgICAg
ICAgICAgICAgICAgRE9NU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VybmFtZTsK
KyAgICAgICAgICAgICAgICAgKERPTVN0cmluZyBvciBSVENPQXV0aENyZWRlbnRpYWwpICBjcmVk
ZW50aWFsOworICAgICAgICAgICAgICAgICBSVENJY2VDcmVkZW50aWFsVHlwZSAgICAgICAgICAg
ICAgIGNyZWRlbnRpYWxUeXBlID0gInBhc3N3b3JkIjsKKyAgICAgIH07CisKKyAgICAgIGRpY3Rp
b25hcnkgUlRDT0F1dGhDcmVkZW50aWFsIHsKKyAgICAgICAgcmVxdWlyZWQgRE9NU3RyaW5nIG1h
Y0tleTsKKyAgICAgICAgcmVxdWlyZWQgRE9NU3RyaW5nIGFjY2Vzc1Rva2VuOworICAgICAgfTsK
KworICAgICAgZW51bSBSVENJY2VDcmVkZW50aWFsVHlwZSB7CisgICAgICAgICJwYXNzd29yZCIs
CisgICAgICAgICJvYXV0aCIKKyAgICAgIH07CisgICAqLworCisgIHRlc3QoKCkgPT4geworICAg
IGNvbnN0IGljZVNlcnZlcnMgPSBSVENQZWVyQ29ubmVjdGlvbi5nZXREZWZhdWx0SWNlU2VydmVy
cygpOworCisgICAgYXNzZXJ0X3RydWUoQXJyYXkuaXNBcnJheShpY2VTZXJ2ZXJzKSwKKyAgICAg
ICdFeHBlY3QgaWNlU2VydmVycyB0byBiZSBhbiBhcnJheScpOworCisgICAgLy8gZGljdGlvbmFy
eSBJREwgY2Fubm90IGJlIHRlc3RlZCBhdXRvbWF0aWNhbGx5IHVzaW5nIGlkbGhhcm5lc3MKKyAg
ICBmb3IoY29uc3Qgc2VydmVyIG9mIGljZVNlcnZlcnMpIHsKKyAgICAgIGNvbnN0IHsgdXJscywg
dXNlcm5hbWUsIGNyZWRlbnRpYWwsIGNyZWRlbnRpYWxUeXBlIH0gPSBzZXJ2ZXI7CisKKyAgICAg
IGlmKEFycmF5LmlzQXJyYXkodXJscykpIHsKKyAgICAgICAgZm9yKGNvbnN0IHVybCBvZiB1cmxz
KSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgdXJsLCAnc3RyaW5nJywKKyAgICAg
ICAgICAgICdFeHBlY3QgZWxlbWVudHMgaW4gdXJscyBhcnJheSB0byBiZSBzdHJpbmcnKTsKKyAg
ICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgdXJs
cywgJ3N0cmluZycsCisgICAgICAgICAgJ0V4cGVjdCB1cmxzIHRvIGJlIGVpdGhlciBzdHJpbmcg
b3IgYXJyYXknKTsKKyAgICAgIH0KKworICAgICAgaWYodXNlcm5hbWUgIT09IHVuZGVmaW5lZCkg
eworICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB1c2VybmFtZSwgJ3N0cmluZycsCisgICAg
ICAgICAgJ0V4cGVjdCB1c2VybmFtZSB0byBiZSBlaXRoZXIgdW5kZWZpbmVkIG9yIHN0cmluZycp
OworICAgICAgfQorCisgICAgICBhc3NlcnRfdHJ1ZShjcmVkZW50aWFsVHlwZSA9PT0gJ3Bhc3N3
b3JkJyB8fCBjcmVkZW50aWFsVHlwZSA9PT0gJ29hdXRoJywKKyAgICAgICAgJ0V4cGVjdCBjcmVk
ZW50aWFsVHlwZSB0byBiZSBlaXRoZXIgcGFzc3dvcmQgb3Igb2F1dGgnKQorCisgICAgICBpZihj
cmVkZW50aWFsKSB7CisgICAgICAgIGlmKHR5cGVvZihjcmVkZW50aWFsKSA9PT0gJ29iamVjdCcp
IHsKKyAgICAgICAgICBjb25zdCB7IG1hY0tleSwgYWNjZXNzVG9rZW4gfSA9IGNyZWRlbnRpYWw7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgbWFjS2V5LCAnc3RyaW5nJywKKyAgICAg
ICAgICAgICdFeHBlY3QgbWFjS2V5IHRvIGJlIHN0cmluZycpOworCisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyh0eXBlb2YgYWNjZXNzVG9rZW4sICdzdHJpbmcnLAorICAgICAgICAgICAgJ0V4cGVj
dCBhY2Nlc3NUb2tlbiB0byBiZSBzdHJpbmcnKTsKKworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGNyZWRlbnRpYWwsICdzdHJpbmcnLAorICAgICAgICAg
ICAgJ0V4cGVjdCBjcmVkZW50aWFsIHRvIGJlIGVpdGhlciB1bmRlZmluZWQsIHN0cmluZywgb3Ig
UlRDT2F1dGhDcmVkZW50aWFsIGRpY3Rpb25hcnknKTsKKyAgICAgICAgfQorICAgICAgfQorICAg
IH0KKworICAgIC8vIEV4cGVjdCBkZWZhdWx0IGljZSBzZXJ2ZXJzIHRvIGJlIGFjY2VwdGVkIGFz
IHZhbGlkIGNvbmZpZ3VyYXRpb24KKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bih7IGljZVNlcnZlcnMgfSk7CisKKyAgICAvLyBPbmx5IG1ha2Ugc3VyZSB0aGVyZSBhcmUgc2Ft
ZSBudW1iZXIgb2YgaWNlIHNlcnZlcnMgY29uZmlndXJlZAorICAgIC8vIGFuZCBub3QgZG8gYW55
IGRlZXAgZXF1YWxpdHkgY2hlY2tpbmcKKyAgICBhc3NlcnRfZXF1YWxzKHBjLmdldENvbmZpZ3Vy
YXRpb24oKS5pY2VTZXJ2ZXJzLmxlbmd0aCwgaWNlU2VydmVycy5sZW5ndGgpOworCisgIH0sICdS
VENQZWVyQ29ubmVjdGlvbi5nZXREZWZhdWx0SWNlU2VydmVycygpIHNob3VsZCByZXR1cm4gYXJy
YXkgb2YgUlRDSWNlU2VydmVyJyk7CisKKyAgLyoKKyAgICBDb3ZlcmFnZSBSZXBvcnQKKyAgICAg
IFNpbmNlIHRoZXJlIGlzIG5vIHN0ZXBzIGludm9sdmVkIGFuZCB3ZSBhcmUgb25seSBjaGVja2lu
ZyBiYXNpYyBjYWxsLAorICAgICAgVGhpcyBpcyBjb3VudGVkIGFzIDEgdHJpdmlhbCB0ZXN0IGNv
dmVyYWdlLgorCisgICAgICBUZXN0ZWQgICAgMQorICAgICAgVG90YWwgICAgIDEKKyAgICovCis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldElkZW50aXR5QXNzZXJ0aW9uLnN1
Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExZDk0OGFhZGZhMTYyNjc3NDlkZjdlZDUyNGQ2ODA0NDYz
ZDkzNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRJZGVudGl0eUFzc2VydGlv
bi5zdWItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKKworRkFJTCBnZXRJZGVudGl0eUFz
c2VydGlvbigpIHNob3VsZCBsb2FkIElkUCBwcm94eSBhbmQgcmV0dXJuIGFzc2VydGlvbiBnZW5l
cmF0ZWQgdW5kZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9uIChuZWFyICcuLi5wYy5zZXRJZGVudGl0
eVByb3ZpZGVyLi4uJykKK0ZBSUwgZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgc3VjY2Vl
ZCBpZiBtb2NrLWlkcC5qcyByZXR1cm4gZGlmZmVyZW50IGRvbWFpbiBhbmQgcHJvdG9jb2wgaW4g
YXNzZXJ0aW9uIHVuZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbiAobmVhciAnLi4ucGMuc2V0SWRl
bnRpdHlQcm92aWRlci4uLicpCitGQUlMIGdldElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJl
amVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtZXhlY3V0aW9uLWZhaWx1cmUnKSBpZiBtb2NrLWlkcC5q
cyB0aHJvd3MgZXJyb3IgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGluaXRpYWwgcGMuaWRwRXJyb3JJ
bmZvIHRvIGJlIG51bGwgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQp
IHVuZGVmaW5lZAorRkFJTCBnZXRJZGVudGl0eUFzc2VydGlvbigpIHNob3VsZCByZWplY3Qgd2l0
aCBSVENFcnJvcignaWRwLWJhZC1zY3JpcHQtZmFpbHVyZScpIGlmIElkUCBwcm94eSBzY3JpcHQg
ZG8gbm90IHJlZ2lzdGVyIGl0cyBjYWxsYmFjayB1bmRlZmluZWQgaXMgbm90IGEgZnVuY3Rpb24g
KG5lYXIgJy4uLnBjLnNldElkZW50aXR5UHJvdmlkZXIuLi4nKQorRkFJTCBnZXRJZGVudGl0eUFz
c2VydGlvbigpIHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRpb25FcnJvciBpZiBtb2NrLWlkcC5q
cyByZXR1cm4gaW52YWxpZCByZXN1bHQgdW5kZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9uIChuZWFy
ICcuLi5wYy5zZXRJZGVudGl0eVByb3ZpZGVyLi4uJykKK0ZBSUwgZ2V0SWRlbnRpdHlBc3NlcnRp
b24oKSBzaG91bGQgcmVqZWN0IHdpdGggUlRDRXJyb3IoJ2lkcC1sb2FkLWZhaWx1cmUnKSBpZiBJ
ZFAgY2Fubm90IGJlIGxvYWRlZCBwYy5zZXRJZGVudGl0eVByb3ZpZGVyIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ3BjLnNldElkZW50aXR5UHJvdmlkZXIoJ25vbmV4aXN0ZW50LmxvY2FsaG9zdCcs
IHsKKyAgICAgIHByb3RvY29sOiBgbm9uLWV4aXN0ZW50YCwKKyAgICAgIHVzZXJuYW1lSGludDog
YGFsaWNlQGV4YW1wbGUub3JnYCwKKyAgICB9KScsICdwYy5zZXRJZGVudGl0eVByb3ZpZGVyJyBp
cyB1bmRlZmluZWQpCitGQUlMIGdldElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3
aXRoIFJUQ0Vycm9yKCdpZHAtbmVlZC1sb2dpbicpIHdoZW4gbW9jay1pZHAuanMgcmVxdWlyZXMg
bG9naW4gYXNzZXJ0X2VxdWFsczogRXhwZWN0IGluaXRpYWwgcGMuaWRwTG9naW5VcmwgdG8gYmUg
bnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVk
CitGQUlMIHNldElkZW50aXR5UHJvdmlkZXIoKSB3aXRoIG5vIHBlZXJJZGVudGl0eSBwcm92aWRl
ZCBzaG91bGQgdXNlIHBlZXJJZGVudGl0eSB2YWx1ZSBmcm9tIGdldENvbmZpZ3VyYXRpb24oKSBw
Yy5zZXRJZGVudGl0eVByb3ZpZGVyIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjLnNldElkZW50
aXR5UHJvdmlkZXIoaWRwSG9zdCwgeworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcycKKyAg
ICB9KScsICdwYy5zZXRJZGVudGl0eVByb3ZpZGVyJyBpcyB1bmRlZmluZWQpCitGQUlMIENhbGxp
bmcgc2V0SWRlbnRpdHlQcm92aWRlcigpIG11bHRpcGxlIHRpbWVzIHNob3VsZCByZXNldCBpZGVu
dGl0eSBhc3NlcnRpb25zIHBjLnNldElkZW50aXR5UHJvdmlkZXIgaXMgbm90IGEgZnVuY3Rpb24u
IChJbiAncGMuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDog
J21vY2staWRwLmpzP21hcms9Zmlyc3QnCisgICAgfSknLCAncGMuc2V0SWRlbnRpdHlQcm92aWRl
cicgaXMgdW5kZWZpbmVkKQorRkFJTCBjcmVhdGVPZmZlcigpIHNob3VsZCByZXR1cm4gU0RQIGNv
bnRhaW5pbmcgaWRlbnRpdHkgYXNzZXJ0aW9uIHN0cmluZyBpZiBpZGVudGl0eSBwcm92aWRlciBp
cyBzZXQgcGMuc2V0SWRlbnRpdHlQcm92aWRlciBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwYy5z
ZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KSwgeworICAgICAg
cHJvdG9jb2w6ICdtb2NrLWlkcC5qcycsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lk
cERvbWFpbn1gCisgICAgfSknLCAncGMuc2V0SWRlbnRpdHlQcm92aWRlcicgaXMgdW5kZWZpbmVk
KQorRkFJTCBjcmVhdGVPZmZlcigpIHNob3VsZCByZWplY3Qgd2l0aCBOb3RSZWFkYWJsZUVycm9y
IGlmIGlkZW50aXRpdHkgYXNzZXJ0aW9uIHJlcXVlc3QgZmFpbHMgdW5kZWZpbmVkIGlzIG5vdCBh
IGZ1bmN0aW9uIChuZWFyICcuLi5wYy5zZXRJZGVudGl0eVByb3ZpZGVyLi4uJykKK0ZBSUwgY3Jl
YXRlQW5zd2VyKCkgc2hvdWxkIHJlamVjdCB3aXRoIE5vdFJlYWRhYmxlRXJyb3IgaWYgaWRlbnRp
dGl0eSBhc3NlcnRpb24gcmVxdWVzdCBmYWlscyB1bmRlZmluZWQgaXMgbm90IGEgZnVuY3Rpb24g
KG5lYXIgJy4uLnBjLnNldElkZW50aXR5UHJvdmlkZXIuLi4nKQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldElk
ZW50aXR5QXNzZXJ0aW9uLnN1Yi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiZDg2MGQ5MDFkZWQ3OGM5NjM1
ZGE2NTQxM2FjNjNlN2RiZjQ0NjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRJ
ZGVudGl0eUFzc2VydGlvbi5zdWIuaHRtbApAQCAtMCwwICsxLDQwMCBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uLnByb3Rv
dHlwZS5nZXRJZGVudGl0eUFzc2VydGlvbjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iaWRlbnRpdHktaGVscGVy
LnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgLy8gVGVz
dCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBkcmFmdDoKKyAgLy8gaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93ZWJydGMuaHRtbAorCisg
IC8vIFRoZSB0ZXN0cyBoZXJlIGludGVyYWN0cyB3aXRoIHRoZSBtb2NrIGlkZW50aXR5IHByb3Zp
ZGVyIGxvY2F0ZWQgYXQKKyAgLy8gICAvLndlbGwta25vd24vaWRwLXByb3h5L21vY2staWRwLmpz
CisKKyAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBp
ZGVudGl0eS1oZWxwZXIuc3ViLmpzCisgIC8vICAgcGFyc2VBc3NlcnRpb25SZXN1bHQKKyAgLy8g
ICBnZXRJZHBEb21haW5zCisgIC8vICAgYXNzZXJ0X3J0Y2Vycm9yX3JlamVjdGlvbgorICAvLyAg
IGhvc3RTdHJpbmcKKworICAvKgorICAgIDkuNi4gIFJUQ1BlZXJDb25uZWN0aW9uIEludGVyZmFj
ZSBFeHRlbnNpb25zCisgICAgICBwYXJ0aWFsIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbiB7
CisgICAgICAgIHZvaWQgICAgICAgICAgICAgICBzZXRJZGVudGl0eVByb3ZpZGVyKERPTVN0cmlu
ZyBwcm92aWRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3B0aW9uYWwgUlRDSWRlbnRpdHlQcm92aWRlck9wdGlvbnMgb3B0aW9ucyk7CisgICAgICAg
IFByb21pc2U8RE9NU3RyaW5nPiBnZXRJZGVudGl0eUFzc2VydGlvbigpOworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgUHJvbWlzZTxSVENJZGVudGl0eUFzc2VydGlvbj4gcGVlcklkZW50aXR5
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyAgICAgICAgICAgICAgICAg
ICAgaWRwTG9naW5Vcmw7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmc/ICAg
ICAgICAgICAgICAgICAgICBpZHBFcnJvckluZm87CisgICAgICB9OworCisgICAgICBkaWN0aW9u
YXJ5IFJUQ0lkZW50aXR5UHJvdmlkZXJPcHRpb25zIHsKKyAgICAgICAgRE9NU3RyaW5nIHByb3Rv
Y29sID0gImRlZmF1bHQiOworICAgICAgICBET01TdHJpbmcgdXNlcm5hbWVIaW50OworICAgICAg
ICBET01TdHJpbmcgcGVlcklkZW50aXR5OworICAgICAgfTsKKyAgICovCisgIHByb21pc2VfdGVz
dCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNv
bnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsKKworICAgIGNvbnN0IFtpZHBEb21haW5d
ID0gZ2V0SWRwRG9tYWlucygpOworICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5nKGlkcERv
bWFpbiwgcG9ydCk7CisKKyAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAg
ICAgIHByb3RvY29sOiAnbW9jay1pZHAuanM/Zm9vPWJhcicsCisgICAgICB1c2VybmFtZUhpbnQ6
IGBhbGljZUAke2lkcERvbWFpbn1gLAorICAgICAgcGVlcklkZW50aXR5OiAnYm9iQGV4YW1wbGUu
b3JnJworICAgIH0pOworCisgICAgcmV0dXJuIHBjLmdldElkZW50aXR5QXNzZXJ0aW9uKCkKKyAg
ICAudGhlbihhc3NlcnRpb25SZXN1bHRTdHIgPT4geworICAgICAgY29uc3QgeyBpZHAsIGFzc2Vy
dGlvbiB9ID0gcGFyc2VBc3NlcnRpb25SZXN1bHQoYXNzZXJ0aW9uUmVzdWx0U3RyKTsKKworICAg
ICAgYXNzZXJ0X2VxdWFscyhpZHAuZG9tYWluLCBpZHBIb3N0LAorICAgICAgICAnRXhwZWN0IG1v
Y2staWRwLmpzIHRvIGNvbnN0cnVjdCBkb21haW4gZnJvbSBpdHMgbG9jYXRpb24uaG9zdCcpOwor
CisgICAgICBhc3NlcnRfZXF1YWxzKGlkcC5wcm90b2NvbCwgJ21vY2staWRwLmpzJywKKyAgICAg
ICAgJ0V4cGVjdCBtb2NrLWlkcC5qcyB0byByZXR1cm4gcHJvdG9jb2wgb2YgaXRzZWxmIHdpdGgg
bm8gcXVlcnkgc3RyaW5nJyk7CisKKyAgICAgIGNvbnN0IHsKKyAgICAgICAgd2F0ZXJtYXJrLAor
ICAgICAgICBhcmdzLAorICAgICAgICBlbnYsCisgICAgICAgIHF1ZXJ5LAorICAgICAgfSA9IGFz
c2VydGlvbjsKKworICAgICAgYXNzZXJ0X2VxdWFscyh3YXRlcm1hcmssICdtb2NrLWlkcC5qcy53
YXRlcm1hcmsnLAorICAgICAgICAnRXhwZWN0IGFzc2VydGlvbiByZXN1bHQgdG8gY29udGFpbiB3
YXRlcm1hcmsgbGVmdCBieSBtb2NrLWlkcC5qcycpOworCisgICAgICBhc3NlcnRfZXF1YWxzKGFy
Z3Mub3JpZ2luLCB3aW5kb3cub3JpZ2luLAorICAgICAgICAnRXhwZWN0IGFyZ3Mub3JpZ2luIGFy
Z3VtZW50IHRvIGJlIHRoZSBvcmlnaW4gb2YgdGhpcyB3aW5kb3cnKTsKKworICAgICAgYXNzZXJ0
X2VxdWFscyhlbnYubG9jYXRpb24sCisgICAgICAgIGBodHRwczovLyR7aWRwSG9zdH0vLndlbGwt
a25vd24vaWRwLXByb3h5L2lkcC10ZXN0LmpzP2Zvbz1iYXJgLAorICAgICAgICAnRXhwZWN0IElk
UCBwcm94eSB0byBiZSBsb2FkZWQgd2l0aCBmdWxsIHdlbGwta25vd24gVVJMIGNvbnN0cnVjdGVk
IGZyb20gcHJvdmlkZXIgYW5kIHByb3RvY29sJyk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMoZW52
Lm9yaWdpbiwgYGh0dHBzOi8vJHtpZHBIb3N0fWAsCisgICAgICAgICdFeHBlY3QgSWRQIHRvIGhh
dmUgaXRzIG93biBvcmlnaW4nKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhhcmdzLm9wdGlvbnMu
cHJvdG9jb2wsICdpZHAtdGVzdC5qcz9mb289YmFyJywKKyAgICAgICAgJ0V4cGVjdCBvcHRpb25z
LnByb3RvY29sIHRvIGJlIHRoZSBzYW1lIHZhbHVlIGFzIGJlaW5nIHBhc3NlZCBmcm9tIGhlcmUn
KTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhhcmdzLm9wdGlvbnMudXNlcm5hbWVIaW50LCBgYWxp
Y2VAJHtpZHBEb21haW59YCwKKyAgICAgICAgJ0V4cGVjdCBvcHRpb25zLnVzZXJuYW1lSGludCB0
byBiZSB0aGUgc2FtZSB2YWx1ZSBhcyBiZWluZyBwYXNzZWQgZnJvbSBoZXJlJyk7CisKKyAgICAg
IGFzc2VydF9lcXVhbHMoYXJncy5vcHRpb25zLnBlZXJJZGVudGl0eSwgJ2JvYkBleGFtcGxlLm9y
ZycsCisgICAgICAgICdFeHBlY3Qgb3B0aW9ucy5wZWVySWRlbnRpdHkgdG8gYmUgdGhlIHNhbWUg
dmFsdWUgYXMgYmVpbmcgcGFzc2VkIGZyb20gaGVyZScpOworCisgICAgICBhc3NlcnRfZXF1YWxz
KHF1ZXJ5LmZvbywgJ2JhcicsCisgICAgICAgICdFeHBlY3QgcXVlcnkgc3RyaW5nIHRvIGJlIHBh
cnNlZCBieSBtb2NrLWlkcC5qcyBhbmQgcmV0dXJuZWQgYmFjaycpOworICAgIH0pOworICB9LCAn
Z2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgbG9hZCBJZFAgcHJveHkgYW5kIHJldHVybiBh
c3NlcnRpb24gZ2VuZXJhdGVkJyk7CisKKyAgLy8gV2hlbiBnZW5lcmF0aW5nIGFzc2VydGlvbiwg
dGhlIFJUQ1BlZXJDb25uZWN0aW9uIGRvZXNuJ3QgY2FyZSBpZiB0aGUgcmV0dXJuZWQgYXNzZXJ0
aW9uCisgIC8vIHJlcHJlc2VudHMgaWRlbnRpdHkgb2YgZGlmZmVyZW50IGRvbWFpbgorICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7CisKKyAgICBjb25zdCBbaWRw
RG9tYWluMSwgaWRwRG9tYWluMl0gPSBnZXRJZHBEb21haW5zKCk7CisgICAgYXNzZXJ0X25vdF9l
cXVhbHMoaWRwRG9tYWluMSwgaWRwRG9tYWluMiwKKyAgICAgICdTYW5pdHkgY2hlY2sgdHdvIGlk
cERvbWFpbnMgYXJlIGRpZmZlcmVudCcpOworCisgICAgLy8gQXNrIG1vY2staWRwLmpzIHRvIHJl
dHVybiBhIGN1c3RvbSBkb21haW4gaWRwRG9tYWluMiBhbmQgY3VzdG9tIHByb3RvY29sIGZvbwor
ICAgIHBjLnNldElkZW50aXR5UHJvdmlkZXIoaG9zdFN0cmluZyhpZHBEb21haW4xLCBwb3J0KSwg
eworICAgICAgcHJvdG9jb2w6IGBtb2NrLWlkcC5qcz9nZW5lcmF0b3JBY3Rpb249cmV0dXJuLWN1
c3RvbS1pZHAmZG9tYWluPSR7aWRwRG9tYWluMn0mcHJvdG9jb2w9Zm9vYCwKKyAgICAgIHVzZXJu
YW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWluMn1gLAorICAgIH0pOworCisgICAgcmV0dXJuIHBj
LmdldElkZW50aXR5QXNzZXJ0aW9uKCkKKyAgICAudGhlbihhc3NlcnRpb25SZXN1bHRTdHIgPT4g
eworICAgICAgY29uc3QgeyBpZHAsIGFzc2VydGlvbiB9ID0gcGFyc2VBc3NlcnRpb25SZXN1bHQo
YXNzZXJ0aW9uUmVzdWx0U3RyKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoaWRwLmRvbWFpbiwgaWRw
RG9tYWluMik7CisgICAgICBhc3NlcnRfZXF1YWxzKGlkcC5wcm90b2NvbCwgJ2ZvbycpOworICAg
ICAgYXNzZXJ0X2VxdWFscyhhc3NlcnRpb24ub3B0aW9ucy51c2VybmFtZUhpbnQsIGBhbGljZUAk
e2lkcERvbWFpbjJ9YCk7CisgICAgfSk7CisgIH0sICdnZXRJZGVudGl0eUFzc2VydGlvbigpIHNo
b3VsZCBzdWNjZWVkIGlmIG1vY2staWRwLmpzIHJldHVybiBkaWZmZXJlbnQgZG9tYWluIGFuZCBw
cm90b2NvbCBpbiBhc3NlcnRpb24nKTsKKworICAvKgorICAgIDkuMy4gIFJlcXVlc3RpbmcgSWRl
bnRpdHkgQXNzZXJ0aW9ucworICAgICAgNC4gIElmIHRoZSBJZFAgcHJveHkgcHJvZHVjZXMgYW4g
ZXJyb3Igb3IgcmV0dXJucyBhIHByb21pc2UgdGhhdCBkb2VzIG5vdCByZXNvbHZlIHRvCisgICAg
ICAgICAgYSB2YWxpZCBSVENJZGVudGl0eVZhbGlkYXRpb25SZXN1bHQgKHNlZSA5LjUgSWRQIEVy
cm9yIEhhbmRsaW5nKSwgdGhlbiBpZGVudGl0eQorICAgICAgICAgIHZhbGlkYXRpb24gZmFpbHMu
CisKKyAgICA5LjUuICBJZFAgRXJyb3IgSGFuZGxpbmcKKyAgICAgIC0gSWYgYW4gaWRlbnRpdHkg
cHJvdmlkZXIgdGhyb3dzIGFuIGV4Y2VwdGlvbiBvciByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGlz
IHVsdGltYXRlbHkKKyAgICAgICAgcmVqZWN0ZWQsIHRoZW4gdGhlIHByb2NlZHVyZSB0aGF0IGRl
cGVuZHMgb24gdGhlIElkUCBNVVNUIGFsc28gZmFpbC4gVGhlc2UgdHlwZXMgb2YKKyAgICAgICAg
ZXJyb3JzIHdpbGwgY2F1c2UgYW4gSWRQIGZhaWx1cmUgd2l0aCBhbiBSVENFcnJvciB3aXRoIGVy
cm9yRGV0YWlsIHNldCB0bworICAgICAgICAiaWRwLWV4ZWN1dGlvbi1mYWlsdXJlIi4KKworICAg
IDkuNi4gIFJUQ1BlZXJDb25uZWN0aW9uIEludGVyZmFjZSBFeHRlbnNpb25zCisgICAgICBpZHBF
cnJvckluZm8KKyAgICAgICAgQW4gYXR0cmlidXRlIHRoYXQgdGhlIElkUCBjYW4gdXNlIHRvIHBh
c3MgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBiYWNrIHRvIHRoZQorICAgICAgICBhcHBsaWNhdGlv
bnMgYWJvdXQgdGhlIGVycm9yLiBUaGUgZm9ybWF0IG9mIHRoaXMgc3RyaW5nIGlzIGRlZmluZWQg
YnkgdGhlIElkUCBhbmQKKyAgICAgICAgbWF5IGJlIEpTT04uCisgICAqLworICBwcm9taXNlX3Rl
c3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAg
IGFzc2VydF9lcXVhbHMocGMuaWRwRXJyb3JJbmZvLCBudWxsLAorICAgICAgJ0V4cGVjdCBpbml0
aWFsIHBjLmlkcEVycm9ySW5mbyB0byBiZSBudWxsJyk7CisKKyAgICBjb25zdCBwb3J0ID0gd2lu
ZG93LmxvY2F0aW9uLnBvcnQ7CisgICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5z
KCk7CisKKyAgICAvLyBBc2sgbW9jay1pZHAuanMgdG8gdGhyb3cgYW4gZXJyb3Igd2l0aCBlcnIu
ZXJyb3JJbmZvIHNldCB0byBiYXIKKyAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJp
bmcoaWRwRG9tYWluLCBwb3J0KSwgeworICAgICAgcHJvdG9jb2w6IGBtb2NrLWlkcC5qcz9nZW5l
cmF0b3JBY3Rpb249dGhyb3ctZXJyb3ImZXJyb3JJbmZvPWJhcmAsCisgICAgICB1c2VybmFtZUhp
bnQ6IGBhbGljZUAke2lkcERvbWFpbn1gLAorICAgIH0pOworCisgICAgcmV0dXJuIGFzc2VydF9y
dGNlcnJvcl9yZWplY3Rpb24oJ2lkcC1leGVjdXRpb24tZmFpbHVyZScsCisgICAgICBwYy5nZXRJ
ZGVudGl0eUFzc2VydGlvbigpKQorICAgIC50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVh
bHMocGMuaWRwRXJyb3JJbmZvLCAnYmFyJywKKyAgICAgICAgJ0V4cGVjdCBwYy5pZHBFcnJvcklu
Zm8gdG8gYmUgc2V0IHRvIHRoZSBlcnIuaWRwRXJyb3JJbmZvIHRocm93biBieSBtb2NrLWlkcC5q
cycpOworICAgIH0pOworICB9LCBgZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgcmVqZWN0
IHdpdGggUlRDRXJyb3IoJ2lkcC1leGVjdXRpb24tZmFpbHVyZScpIGlmIG1vY2staWRwLmpzIHRo
cm93cyBlcnJvcmApOworCisgIC8qCisgICAgOS41LiAgSWRQIEVycm9yIEhhbmRsaW5nCisgICAg
ICAtIElmIHRoZSBzY3JpcHQgbG9hZGVkIGZyb20gdGhlIGlkZW50aXR5IHByb3ZpZGVyIGlzIG5v
dCB2YWxpZCBKYXZhU2NyaXB0IG9yIGRvZXMKKyAgICAgICAgbm90IGltcGxlbWVudCB0aGUgY29y
cmVjdCBpbnRlcmZhY2VzLCBpdCBjYXVzZXMgYW4gSWRQIGZhaWx1cmUgd2l0aCBhbiBSVENFcnJv
cgorICAgICAgICB3aXRoIGVycm9yRGV0YWlsIHNldCB0byAiaWRwLWJhZC1zY3JpcHQtZmFpbHVy
ZSIuCisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9y
dDsKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKKworICAgIC8vIEFz
ayBtb2NrLWlkcC5qcyB0byBub3QgcmVnaXN0ZXIgaXRzIGNhbGxiYWNrIHRvIHRoZQorICAgIC8v
IFJUQ0lkZW50aXR5UHJvdmlkZXJSZWdpc3RyYXIKKyAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVy
KGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KSwgeworICAgICAgcHJvdG9jb2w6IGBtb2NrLWlk
cC5qcz9hY3Rpb249ZG8tbm90LXJlZ2lzdGVyYCwKKyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNl
QCR7aWRwRG9tYWlufWAsCisgICAgfSk7CisKKyAgICByZXR1cm4gYXNzZXJ0X3J0Y2Vycm9yX3Jl
amVjdGlvbignaWRwLWJhZC1zY3JpcHQtZmFpbHVyZScsCisgICAgICBwYy5nZXRJZGVudGl0eUFz
c2VydGlvbigpKTsKKworICB9LCBgZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgcmVqZWN0
IHdpdGggUlRDRXJyb3IoJ2lkcC1iYWQtc2NyaXB0LWZhaWx1cmUnKSBpZiBJZFAgcHJveHkgc2Ny
aXB0IGRvIG5vdCByZWdpc3RlciBpdHMgY2FsbGJhY2tgKTsKKworICAvKgorICAgIDkuMy4gIFJl
cXVlc3RpbmcgSWRlbnRpdHkgQXNzZXJ0aW9ucworICAgICAgNC4gIElmIHRoZSBJZFAgcHJveHkg
cHJvZHVjZXMgYW4gZXJyb3Igb3IgcmV0dXJucyBhIHByb21pc2UgdGhhdCBkb2VzIG5vdCByZXNv
bHZlCisgICAgICAgICAgdG8gYSB2YWxpZCBSVENJZGVudGl0eUFzc2VydGlvblJlc3VsdCAoc2Vl
IDkuNSBJZFAgRXJyb3IgSGFuZGxpbmcpLCB0aGVuIGFzc2VydGlvbgorICAgICAgICAgIGdlbmVy
YXRpb24gZmFpbHMuCisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9j
YXRpb24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKKwor
ICAgIC8vIEFzayBtb2NrLWlkcC5qcyB0byByZXR1cm4gYW4gaW52YWxpZCByZXN1bHQgdGhhdCBp
cyBub3QgcHJvcGVyCisgICAgLy8gUlRDSWRlbnRpdHlBc3NlcnRpb25SZXN1bHQKKyAgICBwYy5z
ZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KSwgeworICAgICAg
cHJvdG9jb2w6IGBtb2NrLWlkcC5qcz9nZW5lcmF0b3JBY3Rpb249cmV0dXJuLWludmFsaWQtcmVz
dWx0YCwKKyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAsCisgICAgfSk7
CisKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdPcGVyYXRpb25FcnJvcicsCisgICAg
ICBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpKTsKKyAgfSwgYGdldElkZW50aXR5QXNzZXJ0aW9u
KCkgc2hvdWxkIHJlamVjdCB3aXRoIE9wZXJhdGlvbkVycm9yIGlmIG1vY2staWRwLmpzIHJldHVy
biBpbnZhbGlkIHJlc3VsdGApOworCisgIC8qCisgICAgOS41LiAgSWRQIEVycm9yIEhhbmRsaW5n
CisgICAgICAtIEEgUlRDUGVlckNvbm5lY3Rpb24gbWlnaHQgYmUgY29uZmlndXJlZCB3aXRoIGFu
IGlkZW50aXR5IHByb3ZpZGVyLCBidXQgbG9hZGluZyBvZgorICAgICAgICB0aGUgSWRQIFVSSSBm
YWlscy4gQW55IHByb2NlZHVyZSB0aGF0IGF0dGVtcHRzIHRvIGludm9rZSBzdWNoIGFuIGlkZW50
aXR5IHByb3ZpZGVyCisgICAgICAgIGFuZCBjYW5ub3QgbG9hZCB0aGUgVVJJIGZhaWxzIHdpdGgg
YW4gUlRDRXJyb3Igd2l0aCBlcnJvckRldGFpbCBzZXQgdG8KKyAgICAgICAgImlkcC1sb2FkLWZh
aWx1cmUiIGFuZCB0aGUgaHR0cFJlcXVlc3RTdGF0dXNDb2RlIGF0dHJpYnV0ZSBvZiB0aGUgZXJy
b3Igc2V0IHRvIHRoZQorICAgICAgICBIVFRQIHN0YXR1cyBjb2RlIG9mIHRoZSByZXNwb25zZS4K
KyAgICovCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworCisgICAgcGMuc2V0SWRlbnRpdHlQcm92aWRlcignbm9uZXhpc3RlbnQu
e3tkb21haW5zW119fScsIHsKKyAgICAgIHByb3RvY29sOiBgbm9uLWV4aXN0ZW50YCwKKyAgICAg
IHVzZXJuYW1lSGludDogYGFsaWNlQGV4YW1wbGUub3JnYCwKKyAgICB9KTsKKworICAgIHJldHVy
biBhc3NlcnRfcnRjZXJyb3JfcmVqZWN0aW9uKCdpZHAtbG9hZC1mYWlsdXJlJywKKyAgICAgIHBj
LmdldElkZW50aXR5QXNzZXJ0aW9uKCkpOworICB9LCBgZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBz
aG91bGQgcmVqZWN0IHdpdGggUlRDRXJyb3IoJ2lkcC1sb2FkLWZhaWx1cmUnKSBpZiBJZFAgY2Fu
bm90IGJlIGxvYWRlZGApOworCisgIC8qCisgICAgOS4zLjEuICBVc2VyIExvZ2luIFByb2NlZHVy
ZQorICAgICAgUmVqZWN0aW5nIHRoZSBwcm9taXNlIHJldHVybmVkIGJ5IGdlbmVyYXRlQXNzZXJ0
aW9uIHdpbGwgY2F1c2UgdGhlIGVycm9yIHRvCisgICAgICBwcm9wYWdhdGUgdG8gdGhlIGFwcGxp
Y2F0aW9uLiBMb2dpbiBlcnJvcnMgYXJlIGluZGljYXRlZCBieSByZWplY3RpbmcgdGhlCisgICAg
ICBwcm9taXNlIHdpdGggYW4gUlRDRXJyb3Igd2l0aCBlcnJvckRldGFpbCBzZXQgdG8gImlkcC1u
ZWVkLWxvZ2luIi4KKworICAgICAgVGhlIFVSTCB0byBsb2dpbiBhdCB3aWxsIGJlIHBhc3NlZCB0
byB0aGUgYXBwbGljYXRpb24gaW4gdGhlIGlkcExvZ2luVXJsCisgICAgICBhdHRyaWJ1dGUgb2Yg
dGhlIFJUQ1BlZXJDb25uZWN0aW9uLgorCisgICAgOS41LiAgSWRQIEVycm9yIEhhbmRsaW5nCisg
ICAgICAtIElmIHRoZSBpZGVudGl0eSBwcm92aWRlciByZXF1aXJlcyB0aGUgdXNlciB0byBsb2dp
biwgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwKKyAgICAgICAgUlRDRXJyb3Igd2l0aCBlcnJvckRl
dGFpbCBzZXQgdG8gImlkcC1uZWVkLWxvZ2luIiBhbmQgdGhlIGlkcExvZ2luVXJsIGF0dHJpYnV0
ZQorICAgICAgICBvZiB0aGUgZXJyb3Igc2V0IHRvIHRoZSBVUkwgdGhhdCBjYW4gYmUgdXNlZCB0
byBsb2dpbi4KKyAgICovCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgYXNzZXJ0X2VxdWFscyhwYy5pZHBMb2dpblVy
bCwgbnVsbCwKKyAgICAgICdFeHBlY3QgaW5pdGlhbCBwYy5pZHBMb2dpblVybCB0byBiZSBudWxs
Jyk7CisKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7CisgICAgY29uc3Qg
W2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7CisgICAgY29uc3QgaWRwSG9zdCA9IGhvc3RT
dHJpbmcoaWRwRG9tYWluLCBwb3J0KTsKKworICAgIHBjLnNldElkZW50aXR5UHJvdmlkZXIoaWRw
SG9zdCwgeworICAgICAgcHJvdG9jb2w6IGBtb2NrLWlkcC5qcz9nZW5lcmF0b3JBY3Rpb249cmVx
dWlyZS1sb2dpbmAsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gLAor
ICAgIH0pOworCisgICAgcmV0dXJuIGFzc2VydF9ydGNlcnJvcl9yZWplY3Rpb24oJ2lkcC1uZWVk
LWxvZ2luJywKKyAgICAgIHBjLmdldElkZW50aXR5QXNzZXJ0aW9uKCkpCisgICAgLnRoZW4oZXJy
ID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoZXJyLmlkcExvZ2luVXJsLCBgaHR0cHM6Ly8ke2lk
cEhvc3R9L2xvZ2luYCwKKyAgICAgICAgJ0V4cGVjdCBlcnIuaWRwTG9naW5VcmwgdG8gYmUgc2V0
IHRvIHVybCBzZXQgYnkgbW9jay1pZHAuanMnKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhwYy5p
ZHBMb2dpblVybCwgYGh0dHBzOi8vJHtpZHBIb3N0fS9sb2dpbmAsCisgICAgICAgICdFeHBlY3Qg
cGMuaWRwTG9naW5VcmwgdG8gYmUgc2V0IHRvIHVybCBzZXQgYnkgbW9jay1pZHAuanMnKTsKKwor
ICAgICAgYXNzZXJ0X2VxdWFscyhwYy5pZHBFcnJvckluZm8sICdsb2dpbiByZXF1aXJlZCcsCisg
ICAgICAgICdFeHBlY3QgcGMuaWRwRXJyb3JJbmZvIHRvIGJlIHNldCB0byBpbmZvIHNldCBieSBt
b2NrLWlkcC5qcycpOworICAgIH0pOworICB9LCBgZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91
bGQgcmVqZWN0IHdpdGggUlRDRXJyb3IoJ2lkcC1uZWVkLWxvZ2luJykgd2hlbiBtb2NrLWlkcC5q
cyByZXF1aXJlcyBsb2dpbmApOworCisgIC8qCisgICAgUlRDSWRlbnRpdHlQcm92aWRlck9wdGlv
bnMgTWVtYmVycworICAgICAgcGVlcklkZW50aXR5CisgICAgICAgIFRoZSBpZGVudGl0eSBvZiB0
aGUgcGVlci4gRm9yIGlkZW50aXR5IHByb3ZpZGVycyB0aGF0IGJpbmQgdGhlaXIgYXNzZXJ0aW9u
cyB0byBhCisgICAgICAgIHBhcnRpY3VsYXIgcGFpciBvZiBjb21tdW5pY2F0aW9uIHBlZXJzLCB0
aGlzIGFsbG93cyB0aGVtIHRvIGdlbmVyYXRlIGFuIGFzc2VydGlvbgorICAgICAgICB0aGF0IGlu
Y2x1ZGVzIGJvdGggbG9jYWwgYW5kIHJlbW90ZSBpZGVudGl0aWVzLiBJZiB0aGlzIHZhbHVlIGlz
IG9taXR0ZWQsIGJ1dCBhCisgICAgICAgIHZhbHVlIGlzIHByb3ZpZGVkIGZvciB0aGUgcGVlcklk
ZW50aXR5IG1lbWJlciBvZiBSVENDb25maWd1cmF0aW9uLCB0aGUgdmFsdWUgZnJvbQorICAgICAg
ICBSVENDb25maWd1cmF0aW9uIGlzIHVzZWQuCisgICovCisgIHByb21pc2VfdGVzdCh0ID0+IHsK
KyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7CisgICAgICBwZWVySWRlbnRp
dHk6ICdib2JAZXhhbXBsZS5uZXQnCisgICAgfSk7CisKKyAgICBjb25zdCBwb3J0ID0gd2luZG93
LmxvY2F0aW9uLnBvcnQ7CisgICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7
CisgICAgY29uc3QgaWRwSG9zdCA9IGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KTsKKworICAg
IHBjLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdCwgeworICAgICAgcHJvdG9jb2w6ICdtb2Nr
LWlkcC5qcycKKyAgICB9KTsKKworICAgIHJldHVybiBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigp
CisgICAgLnRoZW4oYXNzZXJ0aW9uUmVzdWx0U3RyID0+IHsKKyAgICAgIGNvbnN0IHsgYXNzZXJ0
aW9uIH0gPSBwYXJzZUFzc2VydGlvblJlc3VsdChhc3NlcnRpb25SZXN1bHRTdHIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhhc3NlcnRpb24uYXJncy5vcHRpb25zLnBlZXJJZGVudGl0eSwgJ2JvYkBl
eGFtcGxlLm5ldCcpOworICAgIH0pOworICB9LCAnc2V0SWRlbnRpdHlQcm92aWRlcigpIHdpdGgg
bm8gcGVlcklkZW50aXR5IHByb3ZpZGVkIHNob3VsZCB1c2UgcGVlcklkZW50aXR5IHZhbHVlIGZy
b20gZ2V0Q29uZmlndXJhdGlvbigpJyk7CisKKyAgLyoKKyAgICA5LjYuICBzZXRJZGVudGl0eVBy
b3ZpZGVyCisgICAgICAzLiAgSWYgYW55IGlkZW50aXR5IHByb3ZpZGVyIHZhbHVlIGhhcyBjaGFu
Z2VkLCBkaXNjYXJkIGFueSBzdG9yZWQgaWRlbnRpdHkgYXNzZXJ0aW9uLgorICAgKi8KKyAgcHJv
bWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBE
b21haW5dID0gZ2V0SWRwRG9tYWlucygpOworICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5n
KGlkcERvbWFpbiwgcG9ydCk7CisKKyAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3Qs
IHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanM/bWFyaz1maXJzdCcKKyAgICB9KTsKKwor
ICAgIHJldHVybiBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpCisgICAgLnRoZW4oYXNzZXJ0aW9u
UmVzdWx0U3RyID0+IHsKKyAgICAgIGNvbnN0IHsgYXNzZXJ0aW9uIH0gPSBwYXJzZUFzc2VydGlv
blJlc3VsdChhc3NlcnRpb25SZXN1bHRTdHIpOworICAgICAgYXNzZXJ0X2VxdWFscyhhc3NlcnRp
b24ucXVlcnkubWFyaywgJ2ZpcnN0Jyk7CisKKyAgICAgIHBjLnNldElkZW50aXR5UHJvdmlkZXIo
aWRwSG9zdCwgeworICAgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzP21hcms9c2Vjb25kJwor
ICAgICAgfSk7CisKKyAgICAgIHJldHVybiBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpOworICAg
IH0pCisgICAgLnRoZW4oYXNzZXJ0aW9uUmVzdWx0U3RyID0+IHsKKyAgICAgIGNvbnN0IHsgYXNz
ZXJ0aW9uIH0gPSBwYXJzZUFzc2VydGlvblJlc3VsdChhc3NlcnRpb25SZXN1bHRTdHIpOworICAg
ICAgYXNzZXJ0X2VxdWFscyhhc3NlcnRpb24ucXVlcnkubWFyaywgJ3NlY29uZCcsCisgICAgICAg
ICdFeHBlY3QgZ2VuZXJhdGVkIGFzc2VydGlvbiBpcyBmcm9tIHNlY29uZCBJZFAgY29uZmlnJyk7
CisgICAgfSk7CisgIH0sIGBDYWxsaW5nIHNldElkZW50aXR5UHJvdmlkZXIoKSBtdWx0aXBsZSB0
aW1lcyBzaG91bGQgcmVzZXQgaWRlbnRpdHkgYXNzZXJ0aW9uc2ApOworCisgIHByb21pc2VfdGVz
dCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNv
bnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9
IGdldElkcERvbWFpbnMoKTsKKworICAgIHBjLnNldElkZW50aXR5UHJvdmlkZXIoaG9zdFN0cmlu
ZyhpZHBEb21haW4sIHBvcnQpLCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzJywKKyAg
ICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAKKyAgICB9KTsKKworICAgIHJl
dHVybiBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpCisgICAgLnRoZW4oYXNzZXJ0aW9uUmVzdWx0
U3RyID0+CisgICAgICBwYy5jcmVhdGVPZmZlcigpCisgICAgICAudGhlbihvZmZlciA9PiB7Cisg
ICAgICAgIGFzc2VydF90cnVlKG9mZmVyLnNkcC5pbmNsdWRlcyhgXHJcbmE9aWRlbnRpdHk6JHth
c3NlcnRpb25SZXN1bHRTdHJ9YCwKKyAgICAgICAgICAnRXhwZWN0IFNEUCB0byBoYXZlIGE9aWRl
bnRpdHkgbGluZSBjb250YWluaW5nIGFzc2VydGlvbiBzdHJpbmcnKSk7CisgICAgICB9KSk7Cisg
IH0sICdjcmVhdGVPZmZlcigpIHNob3VsZCByZXR1cm4gU0RQIGNvbnRhaW5pbmcgaWRlbnRpdHkg
YXNzZXJ0aW9uIHN0cmluZyBpZiBpZGVudGl0eSBwcm92aWRlciBpcyBzZXQnKTsKKworICAvKgor
ICAgIDQuNC4yLiAgU3RlcHMgdG8gY3JlYXRlIGFuIG9mZmVyCisgICAgICAxLiAgSWYgdGhlIG5l
ZWQgZm9yIGFuIGlkZW50aXR5IGFzc2VydGlvbiB3YXMgaWRlbnRpZmllZCB3aGVuIGNyZWF0ZU9m
ZmVyIHdhcworICAgICAgICAgIGludm9rZWQsIHdhaXQgZm9yIHRoZSBpZGVudGl0eSBhc3NlcnRp
b24gcmVxdWVzdCBwcm9jZXNzIHRvIGNvbXBsZXRlLgorICAgICAgMi4gIElmIHRoZSBpZGVudGl0
eSBwcm92aWRlciB3YXMgdW5hYmxlIHRvIHByb2R1Y2UgYW4gaWRlbnRpdHkgYXNzZXJ0aW9uLCBy
ZWplY3QgcAorICAgICAgICAgIHdpdGggYSBuZXdseSBjcmVhdGVkIE5vdFJlYWRhYmxlRXJyb3Ig
YW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcG9ydCA9IHdp
bmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBEb21haW5dID0gZ2V0SWRwRG9tYWlu
cygpOworCisgICAgcGMuc2V0SWRlbnRpdHlQcm92aWRlcihob3N0U3RyaW5nKGlkcERvbWFpbiwg
cG9ydCksIHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanM/Z2VuZXJhdG9yQWN0aW9uPXRo
cm93LWVycm9yJywKKyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAKKyAg
ICB9KTsKKworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgJ05vdFJlYWRhYmxlRXJyb3In
LAorICAgICAgcGMuY3JlYXRlT2ZmZXIoKSk7CisgIH0sICdjcmVhdGVPZmZlcigpIHNob3VsZCBy
ZWplY3Qgd2l0aCBOb3RSZWFkYWJsZUVycm9yIGlmIGlkZW50aXRpdHkgYXNzZXJ0aW9uIHJlcXVl
c3QgZmFpbHMnKTsKKworICAvKgorICAgIDQuNC4yLiAgU3RlcHMgdG8gY3JlYXRlIGFuIGFuc3dl
cgorICAgICAgMS4gIElmIHRoZSBuZWVkIGZvciBhbiBpZGVudGl0eSBhc3NlcnRpb24gd2FzIGlk
ZW50aWZpZWQgd2hlbiBjcmVhdGVBbnN3ZXIgd2FzCisgICAgICAgICAgaW52b2tlZCwgd2FpdCBm
b3IgdGhlIGlkZW50aXR5IGFzc2VydGlvbiByZXF1ZXN0IHByb2Nlc3MgdG8gY29tcGxldGUuCisK
KyAgICAgIDIuICBJZiB0aGUgaWRlbnRpdHkgcHJvdmlkZXIgd2FzIHVuYWJsZSB0byBwcm9kdWNl
IGFuIGlkZW50aXR5IGFzc2VydGlvbiwgcmVqZWN0IHAKKyAgICAgICAgICB3aXRoIGEgbmV3bHkg
Y3JlYXRlZCBOb3RSZWFkYWJsZUVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICovCisg
IHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsKKyAgICBjb25zdCBb
aWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKKworICAgIHBjLnNldElkZW50aXR5UHJvdmlk
ZXIoaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpLCB7CisgICAgICBwcm90b2NvbDogJ21vY2st
aWRwLmpzP2dlbmVyYXRvckFjdGlvbj10aHJvdy1lcnJvcicsCisgICAgICB1c2VybmFtZUhpbnQ6
IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICByZXR1cm4gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCkKKyAgICAuY3JlYXRlT2ZmZXIoKQorICAgIC50aGVuKG9mZmVyID0+IHBjLnNl
dFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSkKKyAgICAudGhlbigoKSA9PgorICAgICAgcHJvbWlz
ZV9yZWplY3RzKHQsICdOb3RSZWFkYWJsZUVycm9yJywKKyAgICAgICAgcGMuY3JlYXRlQW5zd2Vy
KCkpKTsKKworICB9LCAnY3JlYXRlQW5zd2VyKCkgc2hvdWxkIHJlamVjdCB3aXRoIE5vdFJlYWRh
YmxlRXJyb3IgaWYgaWRlbnRpdGl0eSBhc3NlcnRpb24gcmVxdWVzdCBmYWlscycpOworCis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sCmluZGV4IDQ5Zjg4MTMxYzNlMWY3NWI4YjdjYjky
Njc5MmY5YWM3MWY0MWU4ZWUuLmYyNmE5M2VhMjg5OTllMjQxZTczNzRmZjlkMDdmMzk0MTI4MTZh
YTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMuaHRtbApAQCAtMjY0LDggKzI2NCwxMSBAQAogICAgICJv
dXRib3VuZC1ydHAiLAogICAgICJyZW1vdGUtaW5ib3VuZC1ydHAiLAogICAgICJyZW1vdGUtb3V0
Ym91bmQtcnRwIiwKKyAgICAibWVkaWEtc291cmNlIiwKICAgICAicGVlci1jb25uZWN0aW9uIiwK
ICAgICAiZGF0YS1jaGFubmVsIiwKKyAgICAic2VuZGVyIiwKKyAgICAicmVjZWl2ZXIiLAogICAg
ICJ0cmFuc3BvcnQiLAogICAgICJjYW5kaWRhdGUtcGFpciIsCiAgICAgImxvY2FsLWNhbmRpZGF0
ZSIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxw
ZXIuanMKaW5kZXggNWFlZjBhOGUyMWU0MmZhZmU1ODcxOWMwZmIyNDZhOTE5ZDFiMTVkMS4uYWM0
MzUyNzliZDI0ZmU1ZTU0MzgzY2FlMjEyMWY3YjBhMzI0ZGYyMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24taGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcwpAQCAtMTc2LDExICsx
NzYsOSBAQCBmdW5jdGlvbiBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpIHsKICAgICBs
b2NhbFBjLmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWNhbmRpZGF0ZScsIGV2ZW50ID0+IHsKICAgICAg
IGNvbnN0IHsgY2FuZGlkYXRlIH0gPSBldmVudDsKIAotICAgICAgLy8gY2FuZGlkYXRlIG1heSBi
ZSBudWxsIHRvIGluZGljYXRlIGVuZCBvZiBjYW5kaWRhdGUgZ2F0aGVyaW5nLgotICAgICAgLy8g
VGhlcmUgaXMgb25nb2luZyBkaXNjdXNzaW9uIG9uIHczYy93ZWJydGMtcGMjMTIxMwotICAgICAg
Ly8gdGhhdCB0aGVyZSBzaG91bGQgYmUgYW4gZW1wdHkgY2FuZGlkYXRlIHN0cmluZyBldmVudAot
ICAgICAgLy8gZm9yIGVuZCBvZiBjYW5kaWRhdGUgZm9yIGVhY2ggbT0gc2VjdGlvbi4KLSAgICAg
IGlmKGNhbmRpZGF0ZSAmJiByZW1vdGVQYy5zaWduYWxpbmdTdGF0ZSAhPT0gJ2Nsb3NlZCcpIHsK
KyAgICAgIC8vIEd1YXJkIGFnYWluc3QgYWxyZWFkeSBjbG9zZWQgcGVlcmNvbm5lY3Rpb24gdG8K
KyAgICAgIC8vIGF2b2lkIHVucmVsYXRlZCBleGNlcHRpb25zLgorICAgICAgaWYgKHJlbW90ZVBj
LnNpZ25hbGluZ1N0YXRlICE9PSAnY2xvc2VkJykgewogICAgICAgICByZW1vdGVQYy5hZGRJY2VD
YW5kaWRhdGUoY2FuZGlkYXRlKTsKICAgICAgIH0KICAgICB9KTsKQEAgLTI0Miw4ICsyNDAsNyBA
QCBhc3luYyBmdW5jdGlvbiB3YWl0Rm9ySWNlR2F0aGVyaW5nU3RhdGUocGMsIHdhbnRlZFN0YXRl
cykgewogYXN5bmMgZnVuY3Rpb24gbGlzdGVuRm9yU1NSQ3ModCwgcmVjZWl2ZXIpIHsKICAgd2hp
bGUgKHRydWUpIHsKICAgICBjb25zdCBzc3JjcyA9IHJlY2VpdmVyLmdldFN5bmNocm9uaXphdGlv
blNvdXJjZXMoKTsKLSAgICBhc3NlcnRfdHJ1ZShBcnJheS5pc0FycmF5KHNzcmNzKSk7Ci0gICAg
aWYgKHNzcmNzLmxlbmd0aCA+IDApIHsKKyAgICBpZiAoQXJyYXkuaXNBcnJheShzc3JjcykgJiYg
c3NyY3MubGVuZ3RoID4gMCkgewogICAgICAgcmV0dXJuIHNzcmNzOwogICAgIH0KICAgICBhd2Fp
dCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDApKTsKQEAgLTQxMCw2ICs0MDcs
MTUgQEAgY29uc3QgdHJhY2tGYWN0b3JpZXMgPSB7CiAgICAgICBjdHguZmlsbFN0eWxlID0gYHJn
Yigke2NvdW50JTI1NX0sICR7Y291bnQqY291bnQlMjU1fSwgJHtjb3VudCUyNTV9KWA7CiAgICAg
ICBjb3VudCArPSAxOwogICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOwor
ICAgICAgLy8gQWRkIHNvbWUgYm91bmNpbmcgYm94ZXMgaW4gY29udHJhc3QgY29sb3IgdG8gYWRk
IGEgbGl0dGxlIG1vcmUgbm9pc2UuCisgICAgICBjb25zdCBjb250cmFzdCA9IGNvdW50ICsgMTI4
OworICAgICAgY3R4LmZpbGxTdHlsZSA9IGByZ2IoJHtjb250cmFzdCUyNTV9LCAke2NvbnRyYXN0
KmNvbnRyYXN0JTI1NX0sICR7Y29udHJhc3QlMjU1fSlgOworICAgICAgY29uc3QgeHBvcyA9IGNv
dW50ICUgKHdpZHRoIC0gMjApOworICAgICAgY29uc3QgeXBvcyA9IGNvdW50ICUgKGhlaWdodCAt
IDIwKTsKKyAgICAgIGN0eC5maWxsUmVjdCh4cG9zLCB5cG9zLCB4cG9zICsgMjAsIHlwb3MgKyAy
MCk7CisgICAgICBjb25zdCB4cG9zMiA9IChjb3VudCArIHdpZHRoIC8gMikgJSAod2lkdGggLSAy
MCk7CisgICAgICBjb25zdCB5cG9zMiA9IChjb3VudCArIGhlaWdodCAvIDIpICUgKGhlaWdodCAt
IDIwKTsKKyAgICAgIGN0eC5maWxsUmVjdCh4cG9zMiwgeXBvczIsIHhwb3MyICsgMjAsIHlwb3My
ICsgMjApOwogICAgICAgLy8gSWYgc2lnbmFsIGlzIHNldCAoMC0yNTUpLCBhZGQgYSBjb25zdGFu
dC1jb2xvciBib3ggb2YgdGhhdCBsdW1pbmFuY2UgdG8KICAgICAgIC8vIHRoZSB2aWRlbyBmcmFt
ZSBhdCBjb29yZGluYXRlcyAyMCB0byA2MCBpbiBib3RoIFggYW5kIFkgZGlyZWN0aW9uLgogICAg
ICAgLy8gKGJpZyBlbm91Z2ggdG8gYXZvaWQgY29sb3IgYmxlZWQgZnJvbSBzdXJyb3VuZGluZyB2
aWRlbyBpbiBzb21lIGNvZGVjcywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rp
b25TdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUtZXhw
ZWN0ZWQudHh0CmluZGV4IGIwNTIwMTFhNjRlZDFmMDIzNDAxODMzOThiZGE1NWZiODI2ZTc4NDIu
LjcxZWY3ODYxNWY0NmRiMTEzODU4NGU3NWM4MmNlMDI4YWIzYzNmYWUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24taWNlQ29ubmVjdGlvblN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAogUEFT
UyBJbml0aWFsIGljZUNvbm5lY3Rpb25TdGF0ZSBzaG91bGQgYmUgbmV3Ci1GQUlMIGNvbm5lY3Rp
b24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgY29ubmVjdGVk
IGNvbm5lY3Rpb24gc3RhdGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcg
J3BjMS5zY3RwLnRyYW5zcG9ydCcpCitGQUlMIGNvbm5lY3Rpb24gd2l0aCBvbmUgZGF0YSBjaGFu
bmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgY29ubmVjdGVkIGNvbm5lY3Rpb24gc3RhdGUgQ2Fu
J3QgZmluZCB2YXJpYWJsZTogZG9TaWduYWxpbmdIYW5kc2hha2UKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0
aW9uU3RhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDcxMDMzYTNjOWVmZjZlNWI4NDg1MzExMjdjMWI3
MGVlOTBiYjIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0
YXRlLmh0bWwKQEAgLTAsMCArMSwxODcgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuaWNlQ29ubmVjdGlv
blN0YXRlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIC8vIFRlc3QgaXMgYmFzZWQgb24g
dGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6CisgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93
ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKKworICAvLyBUaGUgZm9sbG93
aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhl
bHBlci5qczoKKyAgLy8gZXhjaGFuZ2VJY2VDYW5kaWRhdGVzCisgIC8vIGRvU2lnbmFsaW5nSGFu
ZHNoYWtlCisKKyAgLyoKKyAgICA0LjMuMi4gIEludGVyZmFjZSBEZWZpbml0aW9uCisgICAgICBp
bnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24gOiBFdmVudFRhcmdldCB7CisgICAgICAgIC4uLgor
ICAgICAgICByZWFkb25seSAgYXR0cmlidXRlIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSAgaWNlQ29u
bmVjdGlvblN0YXRlOworICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciAg
ICAgICAgICAgb25pY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2U7CisgICAgICB9OworCisgICAgNC40
LjQgUlRDSWNlQ29ubmVjdGlvblN0YXRlIEVudW0KKyAgICAgIGVudW0gUlRDSWNlQ29ubmVjdGlv
blN0YXRlIHsKKyAgICAgICAgIm5ldyIsCisgICAgICAgICJjaGVja2luZyIsCisgICAgICAgICJj
b25uZWN0ZWQiLAorICAgICAgICAiY29tcGxldGVkIiwKKyAgICAgICAgImZhaWxlZCIsCisgICAg
ICAgICJkaXNjb25uZWN0ZWQiLAorICAgICAgICAiY2xvc2VkIgorICAgICAgfTsKKworICAgIDUu
Ni4gIFJUQ0ljZVRyYW5zcG9ydCBJbnRlcmZhY2UKKyAgICAgIGludGVyZmFjZSBSVENJY2VUcmFu
c3BvcnQgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDSWNlVHJhbnNwb3J0U3RhdGUg
c3RhdGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAgICBv
bnN0YXRlY2hhbmdlOworCisgICAgICAgIC4uLgorICAgICAgfTsKKworICAgICAgZW51bSBSVENJ
Y2VUcmFuc3BvcnRTdGF0ZSB7CisgICAgICAgICJuZXciLAorICAgICAgICAiY2hlY2tpbmciLAor
ICAgICAgICAiY29ubmVjdGVkIiwKKyAgICAgICAgImNvbXBsZXRlZCIsCisgICAgICAgICJmYWls
ZWQiLAorICAgICAgICAiZGlzY29ubmVjdGVkIiwKKyAgICAgICAgImNsb3NlZCIKKyAgICAgIH07
CisgICAqLworCisgIC8qCisgICAgNC40LjQgUlRDSWNlQ29ubmVjdGlvblN0YXRlIEVudW0KKyAg
ICAgIG5ldworICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9ydHMgYXJlIGluIHRoZSBu
ZXcgc3RhdGUgYW5kIG5vbmUgb2YgdGhlbQorICAgICAgICBhcmUgaW4gdGhlIGNoZWNraW5nLCBm
YWlsZWQgb3IgZGlzY29ubmVjdGVkIHN0YXRlLCBvciBhbGwKKyAgICAgICAgUlRDSWNlVHJhbnNw
b3J0IHMgYXJlIGluIHRoZSBjbG9zZWQgc3RhdGUuCisgICAqLworICB0ZXN0KHQgPT4geworICAg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgYXNzZXJ0X2VxdWFscyhw
Yy5pY2VDb25uZWN0aW9uU3RhdGUsICduZXcnKTsKKyAgfSwgJ0luaXRpYWwgaWNlQ29ubmVjdGlv
blN0YXRlIHNob3VsZCBiZSBuZXcnKTsKKworICAvKgorICAgIDQuNC40IFJUQ0ljZUNvbm5lY3Rp
b25TdGF0ZSBFbnVtCisgICAgICBjaGVja2luZworICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRy
YW5zcG9ydCBzIGFyZSBpbiB0aGUgY2hlY2tpbmcgc3RhdGUgYW5kIG5vbmUgb2YKKyAgICAgICAg
dGhlbSBhcmUgaW4gdGhlIGZhaWxlZCBvciBkaXNjb25uZWN0ZWQgc3RhdGUuCisKKyAgICAgIGNv
bm5lY3RlZAorICAgICAgICBBbGwgUlRDSWNlVHJhbnNwb3J0IHMgYXJlIGluIHRoZSBjb25uZWN0
ZWQsIGNvbXBsZXRlZCBvciBjbG9zZWQgc3RhdGUKKyAgICAgICAgYW5kIGF0IGxlYXN0IG9uZSBv
ZiB0aGVtIGlzIGluIHRoZSBjb25uZWN0ZWQgc3RhdGUuCisKKyAgICAgIGNvbXBsZXRlZAorICAg
ICAgICBBbGwgUlRDSWNlVHJhbnNwb3J0IHMgYXJlIGluIHRoZSBjb21wbGV0ZWQgb3IgY2xvc2Vk
IHN0YXRlIGFuZCBhdCBsZWFzdAorICAgICAgICBvbmUgb2YgdGhlbSBpcyBpbiB0aGUgY29tcGxl
dGVkIHN0YXRlLgorCisgICAgICBjaGVja2luZworICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0
IGhhcyByZWNlaXZlZCBhdCBsZWFzdCBvbmUgcmVtb3RlIGNhbmRpZGF0ZSBhbmQKKyAgICAgICAg
aXMgY2hlY2tpbmcgY2FuZGlkYXRlIHBhaXJzIGFuZCBoYXMgZWl0aGVyIG5vdCB5ZXQgZm91bmQg
YSBjb25uZWN0aW9uCisgICAgICAgIG9yIGNvbnNlbnQgY2hlY2tzIFtSRkM3Njc1XSBoYXZlIGZh
aWxlZCBvbiBhbGwgcHJldmlvdXNseSBzdWNjZXNzZnVsCisgICAgICAgIGNhbmRpZGF0ZSBwYWly
cy4gSW4gYWRkaXRpb24gdG8gY2hlY2tpbmcsIGl0IG1heSBhbHNvIHN0aWxsIGJlIGdhdGhlcmlu
Zy4KKworICAgIDUuNi4gIGVudW0gUlRDSWNlVHJhbnNwb3J0U3RhdGUKKyAgICAgIGNvbm5lY3Rl
ZAorICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBmb3VuZCBhIHVzYWJsZSBjb25uZWN0
aW9uLCBidXQgaXMgc3RpbGwKKyAgICAgICAgY2hlY2tpbmcgb3RoZXIgY2FuZGlkYXRlIHBhaXJz
IHRvIHNlZSBpZiB0aGVyZSBpcyBhIGJldHRlciBjb25uZWN0aW9uLgorICAgICAgICBJdCBtYXkg
YWxzbyBzdGlsbCBiZSBnYXRoZXJpbmcgYW5kL29yIHdhaXRpbmcgZm9yIGFkZGl0aW9uYWwgcmVt
b3RlCisgICAgICAgIGNhbmRpZGF0ZXMuIElmIGNvbnNlbnQgY2hlY2tzIFtSRkM3Njc1XSBmYWls
IG9uIHRoZSBjb25uZWN0aW9uIGluIHVzZSwKKyAgICAgICAgYW5kIHRoZXJlIGFyZSBubyBvdGhl
ciBzdWNjZXNzZnVsIGNhbmRpZGF0ZSBwYWlycyBhdmFpbGFibGUsIHRoZW4gdGhlCisgICAgICAg
IHN0YXRlIHRyYW5zaXRpb25zIHRvICJjaGVja2luZyIgKGlmIHRoZXJlIGFyZSBjYW5kaWRhdGUg
cGFpcnMgcmVtYWluaW5nCisgICAgICAgIHRvIGJlIGNoZWNrZWQpIG9yICJkaXNjb25uZWN0ZWQi
IChpZiB0aGVyZSBhcmUgbm8gY2FuZGlkYXRlIHBhaXJzIHRvCisgICAgICAgIGNoZWNrLCBidXQg
dGhlIHBlZXIgaXMgc3RpbGwgZ2F0aGVyaW5nIGFuZC9vciB3YWl0aW5nIGZvciBhZGRpdGlvbmFs
CisgICAgICAgIHJlbW90ZSBjYW5kaWRhdGVzKS4KKworICAgICAgY29tcGxldGVkCisgICAgICAg
IFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZpbmlzaGVkIGdhdGhlcmluZywgcmVjZWl2ZWQgYW4g
aW5kaWNhdGlvbiB0aGF0CisgICAgICAgIHRoZXJlIGFyZSBubyBtb3JlIHJlbW90ZSBjYW5kaWRh
dGVzLCBmaW5pc2hlZCBjaGVja2luZyBhbGwgY2FuZGlkYXRlCisgICAgICAgIHBhaXJzIGFuZCBm
b3VuZCBhIGNvbm5lY3Rpb24uIElmIGNvbnNlbnQgY2hlY2tzIFtSRkM3Njc1XSBzdWJzZXF1ZW50
bHkKKyAgICAgICAgZmFpbCBvbiBhbGwgc3VjY2Vzc2Z1bCBjYW5kaWRhdGUgcGFpcnMsIHRoZSBz
dGF0ZSB0cmFuc2l0aW9ucyB0byAiZmFpbGVkIi4KKyAgICovCisgIGFzeW5jX3Rlc3QodCA9PiB7
CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAg
IGNvbnN0IG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlID0gdC5zdGVwX2Z1bmMoKCkgPT4gewor
ICAgICAgY29uc3QgeyBpY2VDb25uZWN0aW9uU3RhdGUgfSA9IHBjMTsKKworICAgICAgaWYoaWNl
Q29ubmVjdGlvblN0YXRlID09PSAnY2hlY2tpbmcnKSB7CisgICAgICAgIGNvbnN0IGljZVRyYW5z
cG9ydCA9IHBjMS5zY3RwLnRyYW5zcG9ydC50cmFuc3BvcnQ7CisKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhpY2VUcmFuc3BvcnQuc3RhdGUsICdjaGVja2luZycsCisgICAgICAgICAgJ0V4cGVjdCBJ
Q0UgdHJhbnNwb3J0IHRvIGJlIGluIGNoZWNraW5nIHN0YXRlIHdoZW4gaWNlQ29ubmVjdGlvblN0
YXRlIGlzIGNoZWNraW5nJyk7CisKKyAgICAgIH0gZWxzZSBpZihpY2VDb25uZWN0aW9uU3RhdGUg
PT09ICdjb25uZWN0ZWQnKSB7CisgICAgICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IHBjMS5zY3Rw
LnRyYW5zcG9ydC50cmFuc3BvcnQ7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3Bv
cnQuc3RhdGUsICdjb25uZWN0ZWQnLAorICAgICAgICAgICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0
byBiZSBpbiBjb25uZWN0ZWQgc3RhdGUgd2hlbiBpY2VDb25uZWN0aW9uU3RhdGUgaXMgY29ubmVj
dGVkJyk7CisKKyAgICAgIH0gZWxzZSBpZihpY2VDb25uZWN0aW9uU3RhdGUgPT09ICdjb21wbGV0
ZWQnKSB7CisgICAgICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IHBjMS5zY3RwLnRyYW5zcG9ydC50
cmFuc3BvcnQ7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuc3RhdGUsICdj
b21wbGV0ZWQnLAorICAgICAgICAgICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBpbiBjb25u
ZWN0ZWQgc3RhdGUgd2hlbiBpY2VDb25uZWN0aW9uU3RhdGUgaXMgY29tcGxldGVkJyk7CisgICAg
ICB9CisgICAgfSk7CisKKyAgICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKKworICAg
IGFzc2VydF9lcXVhbHMocGMxLm9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlLCBudWxsLAorICAg
ICAgJ0V4cGVjdCBjb25uZWN0aW9uIHRvIGhhdmUgaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlIGV2
ZW50Jyk7CisKKyAgICBwYzEuYWRkRXZlbnRMaXN0ZW5lcignaWNlY29ubmVjdGlvbnN0YXRlY2hh
bmdlJywgb25JY2VDb25uZWN0aW9uU3RhdGVDaGFuZ2UpOworCisgICAgZXhjaGFuZ2VJY2VDYW5k
aWRhdGVzKHBjMSwgcGMyKTsKKyAgICBkb1NpZ25hbGluZ0hhbmRzaGFrZShwYzEsIHBjMik7Cisg
IH0sICdjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQgZXZlbnR1YWxseSBo
YXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlJyk7CisKKyAgLyoKKyAgICBUT0RPCisgICAg
NC40LjQgUlRDSWNlQ29ubmVjdGlvblN0YXRlIEVudW0KKyAgICAgIGZhaWxlZAorICAgICAgICBB
bnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9ydCBzIGFyZSBpbiB0aGUgZmFpbGVkIHN0YXRlLgorCisg
ICAgICBkaXNjb25uZWN0ZWQKKyAgICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3BvcnQgcyBh
cmUgaW4gdGhlIGRpc2Nvbm5lY3RlZCBzdGF0ZSBhbmQgbm9uZSBvZgorICAgICAgICB0aGVtIGFy
ZSBpbiB0aGUgZmFpbGVkIHN0YXRlLgorCisgICAgICBjbG9zZWQKKyAgICAgICAgVGhlIFJUQ1Bl
ZXJDb25uZWN0aW9uIG9iamVjdCdzIFtbIGlzQ2xvc2VkXV0gc2xvdCBpcyB0cnVlLgorCisgICAg
NS42LiAgZW51bSBSVENJY2VUcmFuc3BvcnRTdGF0ZQorICAgICAgbmV3CisgICAgICAgIFRoZSBS
VENJY2VUcmFuc3BvcnQgaXMgZ2F0aGVyaW5nIGNhbmRpZGF0ZXMgYW5kL29yIHdhaXRpbmcgZm9y
CisgICAgICAgIHJlbW90ZSBjYW5kaWRhdGVzIHRvIGJlIHN1cHBsaWVkLCBhbmQgaGFzIG5vdCB5
ZXQgc3RhcnRlZCBjaGVja2luZy4KKworICAgICAgZmFpbGVkCisgICAgICAgIFRoZSBSVENJY2VU
cmFuc3BvcnQgaGFzIGZpbmlzaGVkIGdhdGhlcmluZywgcmVjZWl2ZWQgYW4gaW5kaWNhdGlvbiB0
aGF0CisgICAgICAgIHRoZXJlIGFyZSBubyBtb3JlIHJlbW90ZSBjYW5kaWRhdGVzLCBmaW5pc2hl
ZCBjaGVja2luZyBhbGwgY2FuZGlkYXRlIHBhaXJzLAorICAgICAgICBhbmQgYWxsIHBhaXJzIGhh
dmUgZWl0aGVyIGZhaWxlZCBjb25uZWN0aXZpdHkgY2hlY2tzIG9yIGhhdmUgbG9zdCBjb25zZW50
LgorCisgICAgICBkaXNjb25uZWN0ZWQKKyAgICAgICAgVGhlIElDRSBBZ2VudCBoYXMgZGV0ZXJt
aW5lZCB0aGF0IGNvbm5lY3Rpdml0eSBpcyBjdXJyZW50bHkgbG9zdCBmb3IgdGhpcworICAgICAg
ICBSVENJY2VUcmFuc3BvcnQgLiBUaGlzIGlzIG1vcmUgYWdncmVzc2l2ZSB0aGFuIGZhaWxlZCwg
YW5kIG1heSB0cmlnZ2VyCisgICAgICAgIGludGVybWl0dGVudGx5IChhbmQgcmVzb2x2ZSBpdHNl
bGYgd2l0aG91dCBhY3Rpb24pIG9uIGEgZmxha3kgbmV0d29yay4KKyAgICAgICAgVGhlIHdheSB0
aGlzIHN0YXRlIGlzIGRldGVybWluZWQgaXMgaW1wbGVtZW50YXRpb24gZGVwZW5kZW50LgorCisg
ICAgICAgIEV4YW1wbGVzIGluY2x1ZGU6CisgICAgICAgICAgTG9zaW5nIHRoZSBuZXR3b3JrIGlu
dGVyZmFjZSBmb3IgdGhlIGNvbm5lY3Rpb24gaW4gdXNlLgorICAgICAgICAgIFJlcGVhdGVkbHkg
ZmFpbGluZyB0byByZWNlaXZlIGEgcmVzcG9uc2UgdG8gU1RVTiByZXF1ZXN0cy4KKworICAgICAg
ICBBbHRlcm5hdGl2ZWx5LCB0aGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBmaW5pc2hlZCBjaGVja2lu
ZyBhbGwgZXhpc3RpbmcKKyAgICAgICAgY2FuZGlkYXRlcyBwYWlycyBhbmQgZmFpbGVkIHRvIGZp
bmQgYSBjb25uZWN0aW9uIChvciBjb25zZW50IGNoZWNrcworICAgICAgICBbUkZDNzY3NV0gb25j
ZSBzdWNjZXNzZnVsLCBoYXZlIG5vdyBmYWlsZWQpLCBidXQgaXQgaXMgc3RpbGwgZ2F0aGVyaW5n
CisgICAgICAgIGFuZC9vciB3YWl0aW5nIGZvciBhZGRpdGlvbmFsIHJlbW90ZSBjYW5kaWRhdGVz
LgorCisgICAgICBjbG9zZWQKKyAgICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgc2h1dCBk
b3duIGFuZCBpcyBubyBsb25nZXIgcmVzcG9uZGluZyB0byBTVFVOIHJlcXVlc3RzLgorICAgKi8K
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggNzlhZTI2NTAzMDAwNTg4YmVlMDdlZWY5NDdhMDFhNmViZGEzOWMy
Yi4uYWU5OTFiMDJlMjEzNWMzYmJlNDI1YWE3MDM3NWM0ODQxNDE3NDFmMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0yLDEz
ICsyLDEzIEBACiBQQVNTIEluaXRpYWwgaWNlQ29ubmVjdGlvblN0YXRlIHNob3VsZCBiZSBuZXcK
IFBBU1MgQ2xvc2luZyB0aGUgY29ubmVjdGlvbiBzaG91bGQgc2V0IGljZUNvbm5lY3Rpb25TdGF0
ZSB0byBjbG9zZWQKIFBBU1MgY29ubmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hvdWxk
IGV2ZW50dWFsbHkgaGF2ZSBjb25uZWN0ZWQgb3IgY29tcGxldGVkIGNvbm5lY3Rpb24gc3RhdGUK
LUZBSUwgY29ubmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkg
aGF2ZSBjb25uZWN0ZWQgY29ubmVjdGlvbiBzdGF0ZSBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgSUNF
IHRyYW5zcG9ydCB0byBiZSBpbiBjaGVja2luZyBzdGF0ZSB3aGVuIGljZUNvbm5lY3Rpb25TdGF0
ZSBpcyBjaGVja2luZyBleHBlY3RlZCAiY2hlY2tpbmciIGJ1dCBnb3QgIm5ldyIKK1BBU1MgY29u
bmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSBjb25u
ZWN0ZWQgY29ubmVjdGlvbiBzdGF0ZQogUEFTUyBjb25uZWN0aW9uIHdpdGggYXVkaW8gdHJhY2sg
c2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSBjb25uZWN0ZWQgY29ubmVjdGlvbiBzdGF0ZQogUEFTUyBj
b25uZWN0aW9uIHdpdGggYXVkaW8gYW5kIHZpZGVvIHRyYWNrcyBzaG91bGQgZXZlbnR1YWxseSBo
YXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlCiBQQVNTIElDRSBjYW4gY29ubmVjdCBpbiBh
IHJlY3Zvbmx5IHVzZWNhc2UKLUZBSUwgaWNlQ29ubmVjdGlvblN0YXRlIGNoYW5nZXMgYXQgdGhl
IHJpZ2h0IHRpbWUsIHdpdGggYnVuZGxlIHBvbGljeSBiYWxhbmNlZCBhc3NlcnRfZXF1YWxzOiBQ
Qy5pY2VDb25uZWN0aW9uU3RhdGU6IGV4cGVjdGVkICJjb25uZWN0ZWQiIGJ1dCBnb3QgImNoZWNr
aW5nIgorUEFTUyBpY2VDb25uZWN0aW9uU3RhdGUgY2hhbmdlcyBhdCB0aGUgcmlnaHQgdGltZSwg
d2l0aCBidW5kbGUgcG9saWN5IGJhbGFuY2VkCiBQQVNTIGljZUNvbm5lY3Rpb25TdGF0ZSBjaGFu
Z2VzIGF0IHRoZSByaWdodCB0aW1lLCB3aXRoIGJ1bmRsZSBwb2xpY3kgbWF4LWJ1bmRsZQotRkFJ
TCBpY2VDb25uZWN0aW9uU3RhdGUgY2hhbmdlcyBhdCB0aGUgcmlnaHQgdGltZSwgd2l0aCBidW5k
bGUgcG9saWN5IG1heC1jb21wYXQgYXNzZXJ0X2VxdWFsczogUEMuaWNlQ29ubmVjdGlvblN0YXRl
OiBleHBlY3RlZCAiY29ubmVjdGVkIiBidXQgZ290ICJjaGVja2luZyIKK1BBU1MgaWNlQ29ubmVj
dGlvblN0YXRlIGNoYW5nZXMgYXQgdGhlIHJpZ2h0IHRpbWUsIHdpdGggYnVuZGxlIHBvbGljeSBt
YXgtY29tcGF0CiBQQVNTIFJlc3BvbmRlciBJQ0UgY29ubmVjdGlvbiBzdGF0ZSBiZWhhdmVzIGFz
IGV4cGVjdGVkCiBQQVNTIENsb3NpbmcgYSBQZWVyQ29ubmVjdGlvbiBzaG91bGQgbm90IGZpcmUg
aWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlIGV2ZW50CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWljZUNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlv
blN0YXRlLmh0dHBzLmh0bWwKaW5kZXggMzIwYjAzZGZjODBmOGU3ZTRhMjBkOWUyNDNiOWNjODdj
ODg4ODFjNy4uNTA4M2JlNmNkZmQxNmY1YzJjNjdhODBhN2RiYzljMjQwMWYxYTBhOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKQEAgLTMyMCwxNSArMzIwLDEx
IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEu
Y2xvc2UoKSk7CiAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLSAgcGMxLm9uaWNlY2FuZGlkYXRlID0gYXN5
bmMgZSA9PiB7Ci0gICAgaWYgKGUuY2FuZGlkYXRlKSB7Ci0gICAgICBhd2FpdCBwYzIuYWRkSWNl
Q2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsKLSAgICB9Ci0gIH07CisgIHBjMS5vbmljZWNhbmRpZGF0
ZSA9IGUgPT4gcGMyLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7CiAgIHBjMS5jYW5kaWRh
dGVCdWZmZXIgPSBbXTsKICAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7CiAgICAgLy8gRG9u
J3QgYWRkIGNhbmRpZGF0ZSBpZiBjYW5kaWRhdGUgYnVmZmVyIGlzIGFscmVhZHkgdXNlZAotICAg
IGlmIChlLmNhbmRpZGF0ZSAmJiBwYzEuY2FuZGlkYXRlQnVmZmVyKSB7CisgICAgaWYgKHBjMS5j
YW5kaWRhdGVCdWZmZXIpIHsKICAgICAgIHBjMS5jYW5kaWRhdGVCdWZmZXIucHVzaChlLmNhbmRp
ZGF0ZSkKICAgICB9CiAgIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdT
dGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS1leHBlY3Rl
ZC50eHQKaW5kZXggYTlhMGFmYjdmZjExYTRhY2ZkNDFkNTk3ZjQ1NDVmMWYxZGVkZDI3Mi4uMTJh
NGRhOWZiMDJmNDlkNTNkZmQ1NTlmNTUzMWNhMTYzMWEzMTQ1OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24taWNlR2F0aGVyaW5nU3RhdGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWlj
ZUdhdGhlcmluZ1N0YXRlLWV4cGVjdGVkLnR4dApAQCAtNSw2ICs1LDYgQEAgUEFTUyBzZXRMb2Nh
bERlc2NyaXB0aW9uKHJlb2ZmZXIpIHdpdGggbm8gbmV3IHRyYW5zcG9ydHMgc2hvdWxkIG5vdCBj
YXVzZSBpY2VHYXQKIFBBU1Mgc2V0TG9jYWxEZXNjcmlwdGlvbigpIHdpdGggbm8gdHJhbnNwb3J0
cyBzaG91bGQgbm90IGNhdXNlIGljZUdhdGhlcmluZ1N0YXRlIHRvIGNoYW5nZQogUEFTUyBzZXRM
b2NhbERlc2NyaXB0aW9uKHJlb2ZmZXIpIHdpdGggYSBuZXcgdHJhbnNwb3J0IHNob3VsZCBjYXVz
ZSBpY2VHYXRoZXJpbmdTdGF0ZSB0byBnbyB0byAiY2hlY2tpbmciIGFuZCB0aGVuICJjb21wbGV0
ZSIKIFBBU1Mgc1JEIGRvZXMgbm90IGNhdXNlIElDRSBnYXRoZXJpbmcgc3RhdGUgY2hhbmdlcwot
RkFJTCByZW5lZ290aWF0aW9uIHRoYXQgY2xvc2VzIGFsbCB0cmFuc3BvcnRzIHNob3VsZCByZXN1
bHQgaW4gSUNFIGdhdGhlcmluZyBzdGF0ZSAibmV3IiBhc3NlcnRfZXF1YWxzOiBQQzEgdHJhbnNj
ZWl2ZXJzIHNob3VsZCBiZSBpbnZpc2libGUgYWZ0ZXIgbmVnb3RpYXRpb24gZXhwZWN0ZWQgMCBi
dXQgZ290IDEKK0ZBSUwgcmVuZWdvdGlhdGlvbiB0aGF0IGNsb3NlcyBhbGwgdHJhbnNwb3J0cyBz
aG91bGQgcmVzdWx0IGluIElDRSBnYXRoZXJpbmcgc3RhdGUgIm5ldyIgYXNzZXJ0X2VxdWFsczog
UEMyIHRyYW5zY2VpdmVycyBzaG91bGQgYmUgaW52aXNpYmxlIGFmdGVyIG5lZ290aWF0aW9uIGV4
cGVjdGVkIDAgYnV0IGdvdCAxCiBQQVNTIGNvbm5lY3Rpb24gd2l0aCBvbmUgZGF0YSBjaGFubmVs
IHNob3VsZCBldmVudHVhbGx5IGhhdmUgY29ubmVjdGVkIGNvbm5lY3Rpb24gc3RhdGUKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKaW5kZXggOTMzYTIxY2M3NWVmY2IxNDkwM2E1ODZkOTkx
NjI3OGZkMGM5ZjgyNi4uNmFmYWYwZmJmYmQxZGMyMTIwMjdhMTE3YzZlYTM2ZGRiZjlkOGQxMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sCkBAIC0xMSw3ICsxMSw3IEBACiAgIC8vIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0
bWwKIAogICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9t
IFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKLSAgLy8gZXhjaGFuZ2VPZmZlckFuc3dlcgor
ICAvLyBleGNoYW5nZUFuc3dlcgogICAvLyBleGNoYW5nZUljZUNhbmRpZGF0ZXMKICAgLy8gZ2Vu
ZXJhdGVBdWRpb1JlY2VpdmVPbmx5T2ZmZXIKIApAQCAtNTIsNiArNTIsOCBAQAogICAgKi8KICAg
dGVzdCh0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKICAgICBhc3NlcnRfZXF1YWxzKHBj
LmljZUdhdGhlcmluZ1N0YXRlLCAnbmV3Jyk7CiAgIH0sICdJbml0aWFsIGljZUdhdGhlcmluZ1N0
YXRlIHNob3VsZCBiZSBuZXcnKTsKIApAQCAtMTY2LDcgKzE2OCwxMiBAQAogICB9LCAncmVuZWdv
dGlhdGlvbiB0aGF0IGNsb3NlcyBhbGwgdHJhbnNwb3J0cyBzaG91bGQgcmVzdWx0IGluIElDRSBn
YXRoZXJpbmcgc3RhdGUgIm5ldyInKTsKIAogICAvKgotICAgIDQuNC4yLiAgUlRDSWNlR2F0aGVy
aW5nU3RhdGUgRW51bQorICAgIDQuMy4yLiAgUlRDSWNlR2F0aGVyaW5nU3RhdGUgRW51bQorICAg
ICAgbmV3CisgICAgICAgIEFueSBvZiB0aGUgUlRDSWNlVHJhbnNwb3J0cyBhcmUgaW4gdGhlICJu
ZXciIGdhdGhlcmluZyBzdGF0ZSBhbmQgbm9uZQorICAgICAgICBvZiB0aGUgdHJhbnNwb3J0cyBh
cmUgaW4gdGhlICJnYXRoZXJpbmciIHN0YXRlLCBvciB0aGVyZSBhcmUgbm8KKyAgICAgICAgdHJh
bnNwb3J0cy4KKwogICAgICAgZ2F0aGVyaW5nCiAgICAgICAgIEFueSBvZiB0aGUgUlRDSWNlVHJh
bnNwb3J0IHMgYXJlIGluIHRoZSBnYXRoZXJpbmcgc3RhdGUuCiAKQEAgLTE4Myw3ICsxOTAsNyBA
QAogICAgICAgICBpbmRpY2F0aW9uIGZvciB0aGlzIHRyYW5zcG9ydCBoYXMgYmVlbiBzZW50LiBJ
dCB3aWxsIG5vdCBnYXRoZXIgY2FuZGlkYXRlcwogICAgICAgICBhZ2FpbiB1bnRpbCBhbiBJQ0Ug
cmVzdGFydCBjYXVzZXMgaXQgdG8gcmVzdGFydC4KICAgICovCi0gIGFzeW5jX3Rlc3QodCA9PiB7
CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAg
ICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKQEAgLTE5Nyw3ICsyMDQsNyBA
QAogICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBwYzIuc2N0cC50cmFuc3BvcnQuaWNlVHJh
bnNwb3J0OwogCiAgICAgICAgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LmdhdGhlcmluZ1N0
YXRlLCAnZ2F0aGVyaW5nJywKLSAgICAgICAgICAnRXhwZWN0IElDRSB0cmFuc3BvcnQgdG8gYmUg
aW4gY2hlY2tpbmcgZ2F0aGVyaW5nU3RhdGUgd2hlbiBpY2VHYXRoZXJpbmdTdGF0ZSBpcyBjaGVj
a2luZycpOworICAgICAgICAgICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBpbiBnYXRoZXJp
bmcgZ2F0aGVyaW5nU3RhdGUgd2hlbiBpY2VHYXRoZXJpbmdTdGF0ZSBpcyBnYXRoZXJpbmcnKTsK
IAogICAgICAgfSBlbHNlIGlmKGljZUdhdGhlcmluZ1N0YXRlID09PSAnY29tcGxldGUnKSB7CiAg
ICAgICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IHBjMi5zY3RwLnRyYW5zcG9ydC5pY2VUcmFuc3Bv
cnQ7CkBAIC0yMTEsMTcgKzIxOCwyMCBAQAogCiAgICAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCd0
ZXN0Jyk7CiAKLSAgICBhc3NlcnRfZXF1YWxzKHBjMi5vbmljZWdhdGhlcmluZ3N0YXRlY2hhbmdl
LCBudWxsLAotICAgICAgJ0V4cGVjdCBjb25uZWN0aW9uIHRvIGhhdmUgaWNlZ2F0aGVyaW5nc3Rh
dGVjaGFuZ2UgZXZlbnQnKTsKLQogICAgIC8vIFNwZWMgYnVnIHczYy93ZWJydGMtcGMjMTM4Mgog
ICAgIC8vIEJlY2F1c2Ugc2N0cCBpcyBvbmx5IGRlZmluZWQgd2hlbiBhbnN3ZXIgaXMgc2V0LCB3
ZSBsaXN0ZW4KICAgICAvLyB0byBwYzIgc28gdGhhdCB3ZSBjYW4gYmUgY29uZmlkZW50IHRoYXQg
c2N0cCBpcyBkZWZpbmVkCiAgICAgLy8gd2hlbiBpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSBldmVu
dCBpcyBmaXJlZC4KICAgICBwYzIuYWRkRXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5nc3RhdGVj
aGFuZ2UnLCBvbkljZUdhdGhlcmluZ1N0YXRlQ2hhbmdlKTsKIAorCiAgICAgZXhjaGFuZ2VJY2VD
YW5kaWRhdGVzKHBjMSwgcGMyKTsKLSAgICBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsK
KworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgICAgYXNzZXJ0X2VxdWFs
cyhwYzEuc2N0cC50cmFuc3BvcnQuaWNlVHJhbnNwb3J0LmdhdGhlcmluZ1N0YXRlLCAnbmV3Jyk7
CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9u
KTsKKworICAgIGF3YWl0IGV4Y2hhbmdlQW5zd2VyKHBjMSwgcGMyKTsKICAgfSwgJ2Nvbm5lY3Rp
b24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgY29ubmVjdGVk
IGNvbm5lY3Rpb24gc3RhdGUnKTsKIAogICAvKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFu
ZGF0b3J5LWdldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9y
eS1nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYWNmNDJlY2MwYjNiNmFlOWZlOTc3
MjhhY2MzOGYyYWViNTViMGI5Mi4uMzU4ODczYjVmM2IyZDQxMmYzMmU3YzNjNmY4N2ZjOTg5OGMw
NzY4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC05LDIyICs5LDI5IEBAIFBBU1MgUlRDUmVjZWl2ZWRSdHBTdHJlYW1TdGF0
cydzIHBhY2tldHNSZWNlaXZlZAogUEFTUyBSVENSZWNlaXZlZFJ0cFN0cmVhbVN0YXRzJ3MgcGFj
a2V0c0xvc3QKIFBBU1MgUlRDUmVjZWl2ZWRSdHBTdHJlYW1TdGF0cydzIGppdHRlcgogRkFJTCBS
VENSZWNlaXZlZFJ0cFN0cmVhbVN0YXRzJ3MgcGFja2V0c0Rpc2NhcmRlZCBhc3NlcnRfdHJ1ZTog
SXMgcGFja2V0c0Rpc2NhcmRlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1QQVNT
IFJUQ0luYm91bmRSdHBTdHJlYW1TdGF0cydzIHRyYWNrSWQKK0ZBSUwgUlRDUmVjZWl2ZWRSdHBT
dHJlYW1TdGF0cydzIGZyYW1lc0Ryb3BwZWQgYXNzZXJ0X3RydWU6IElzIGZyYW1lc0Ryb3BwZWQg
cHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENJbmJvdW5kUnRwU3RyZWFt
U3RhdHMncyByZWNlaXZlcklkIGFzc2VydF90cnVlOiBJcyByZWNlaXZlcklkIHByZXNlbnQgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgcmVt
b3RlSWQgYXNzZXJ0X3RydWU6IElzIHJlbW90ZUlkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKIFBBU1MgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgZnJhbWVzRGVjb2RlZAorUEFT
UyBSVENJbmJvdW5kUnRwU3RyZWFtU3RhdHMncyBuYWNrQ291bnQKK1BBU1MgUlRDSW5ib3VuZFJ0
cFN0cmVhbVN0YXRzJ3MgZnJhbWVzUmVjZWl2ZWQKK1BBU1MgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0
YXRzJ3MgYnl0ZXNSZWNlaXZlZAorUEFTUyBSVENJbmJvdW5kUnRwU3RyZWFtU3RhdHMncyB0b3Rh
bEF1ZGlvRW5lcmd5CitQQVNTIFJUQ0luYm91bmRSdHBTdHJlYW1TdGF0cydzIHRvdGFsU2FtcGxl
c0R1cmF0aW9uCiBGQUlMIFJUQ1JlbW90ZUluYm91bmRSdHBTdHJlYW1TdGF0cydzIGxvY2FsSWQg
YXNzZXJ0X3RydWU6IElzIGxvY2FsSWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQog
RkFJTCBSVENSZW1vdGVJbmJvdW5kUnRwU3RyZWFtU3RhdHMncyByb3VuZFRyaXBUaW1lIGFzc2Vy
dF90cnVlOiBJcyByb3VuZFRyaXBUaW1lIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
IEZBSUwgUlRDU2VudFJ0cFN0cmVhbVN0YXRzJ3MgcGFja2V0c1NlbnQgYXNzZXJ0X3RydWU6IElz
IHBhY2tldHNTZW50IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDU2Vu
dFJ0cFN0cmVhbVN0YXRzJ3MgYnl0ZXNTZW50IGFzc2VydF90cnVlOiBJcyBieXRlc1NlbnQgcHJl
c2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSVENPdXRib3VuZFJ0cFN0cmVhbVN0
YXRzJ3MgdHJhY2tJZCBhc3NlcnRfdHJ1ZTogSXMgdHJhY2tJZCBwcmVzZW50IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCiBGQUlMIFJUQ091dGJvdW5kUnRwU3RyZWFtU3RhdHMncyBzZW5kZXJJZCBh
c3NlcnRfdHJ1ZTogSXMgc2VuZGVySWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQog
RkFJTCBSVENPdXRib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgcmVtb3RlSWQgYXNzZXJ0X3RydWU6IElz
IHJlbW90ZUlkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDT3V0Ym91
bmRSdHBTdHJlYW1TdGF0cydzIGZyYW1lc0VuY29kZWQgYXNzZXJ0X3RydWU6IElzIGZyYW1lc0Vu
Y29kZWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBSVENPdXRib3VuZFJ0
cFN0cmVhbVN0YXRzJ3MgbmFja0NvdW50IGFzc2VydF90cnVlOiBJcyBuYWNrQ291bnQgcHJlc2Vu
dCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBSVENPdXRib3VuZFJ0cFN0cmVhbVN0YXRz
J3MgZnJhbWVzU2VudCBhc3NlcnRfdHJ1ZTogSXMgZnJhbWVzU2VudCBwcmVzZW50IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1JlbW90ZU91dGJvdW5kUnRwU3RyZWFtU3RhdHMncyBs
b2NhbElkIGFzc2VydF90cnVlOiBJcyBsb2NhbElkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKIEZBSUwgUlRDUmVtb3RlT3V0Ym91bmRSdHBTdHJlYW1TdGF0cydzIHJlbW90ZVRpbWVz
dGFtcCBhc3NlcnRfdHJ1ZTogSXMgcmVtb3RlVGltZXN0YW1wIHByZXNlbnQgZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKIEZBSUwgUlRDUGVlckNvbm5lY3Rpb25TdGF0cydzIGRhdGFDaGFubmVsc09w
ZW5lZCBhc3NlcnRfdHJ1ZTogSXMgZGF0YUNoYW5uZWxzT3BlbmVkIHByZXNlbnQgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDUGVlckNvbm5lY3Rpb25TdGF0cydzIGRhdGFDaGFubmVs
c0Nsb3NlZCBhc3NlcnRfdHJ1ZTogSXMgZGF0YUNoYW5uZWxzQ2xvc2VkIHByZXNlbnQgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgUlRDRGF0YUNoYW5uZWxTdGF0cydzIGxhYmVsCiBQQVNT
IFJUQ0RhdGFDaGFubmVsU3RhdHMncyBwcm90b2NvbAogRkFJTCBSVENEYXRhQ2hhbm5lbFN0YXRz
J3MgZGF0YUNoYW5uZWxJZGVudGlmaWVyIGFzc2VydF90cnVlOiBJcyBkYXRhQ2hhbm5lbElkZW50
aWZpZXIgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBSVENEYXRhQ2hhbm5l
bFN0YXRzJ3Mgc3RhdGUKQEAgLTMyLDI4ICszOSwyMSBAQCBQQVNTIFJUQ0RhdGFDaGFubmVsU3Rh
dHMncyBtZXNzYWdlc1NlbnQKIFBBU1MgUlRDRGF0YUNoYW5uZWxTdGF0cydzIGJ5dGVzU2VudAog
UEFTUyBSVENEYXRhQ2hhbm5lbFN0YXRzJ3MgbWVzc2FnZXNSZWNlaXZlZAogUEFTUyBSVENEYXRh
Q2hhbm5lbFN0YXRzJ3MgYnl0ZXNSZWNlaXZlZAotRkFJTCBSVENNZWRpYVN0cmVhbVN0YXRzJ3Mg
c3RyZWFtSWRlbnRpZmVyIGFzc2VydF90cnVlOiBJcyBzdHJlYW1JZGVudGlmZXIgcHJlc2VudCBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSVENNZWRpYVN0cmVhbVN0YXRzJ3MgdHJhY2tJ
ZHMgYXNzZXJ0X3RydWU6IElzIHRyYWNrSWRzIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK1BBU1MgUlRDTWVkaWFTb3VyY2VTdGF0cydzIHRyYWNrSWRlbnRpZmllcgorUEFTUyBSVENN
ZWRpYVNvdXJjZVN0YXRzJ3Mga2luZAorRkFJTCBSVENBdWRpb1NvdXJjZVN0YXRzJ3MgdG90YWxB
dWRpb0VuZXJneSBhc3NlcnRfdHJ1ZTogSXMgdG90YWxBdWRpb0VuZXJneSBwcmVzZW50IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFJUQ0F1ZGlvU291cmNlU3RhdHMncyB0b3RhbFNhbXBs
ZXNEdXJhdGlvbiBhc3NlcnRfdHJ1ZTogSXMgdG90YWxTYW1wbGVzRHVyYXRpb24gcHJlc2VudCBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBSVENWaWRlb1NvdXJjZVN0YXRzJ3Mgd2lkdGgg
YXNzZXJ0X3RydWU6IElzIHdpZHRoIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgUlRDVmlkZW9Tb3VyY2VTdGF0cydzIGhlaWdodCBhc3NlcnRfdHJ1ZTogSXMgaGVpZ2h0IHBy
ZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUlRDVmlkZW9Tb3VyY2VTdGF0cydz
IGZyYW1lc1BlclNlY29uZCBhc3NlcnRfdHJ1ZTogSXMgZnJhbWVzUGVyU2Vjb25kIHByZXNlbnQg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDTWVkaWFIYW5kbGVyU3RhdHMncyB0cmFj
a0lkZW50aWZpZXIgYXNzZXJ0X3RydWU6IElzIHRyYWNrSWRlbnRpZmllciBwcmVzZW50IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJUQ01lZGlhSGFuZGxlclN0YXRzJ3MgcmVtb3RlU291
cmNlIGFzc2VydF90cnVlOiBJcyByZW1vdGVTb3VyY2UgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQotRkFJTCBSVENNZWRpYUhhbmRsZXJTdGF0cydzIGVuZGVkIGFzc2VydF90cnVlOiBJ
cyBlbmRlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJUQ0F1ZGlvSGFu
ZGxlclN0YXRzJ3MgYXVkaW9MZXZlbCBhc3NlcnRfdHJ1ZTogSXMgYXVkaW9MZXZlbCBwcmVzZW50
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJUQ1ZpZGVvSGFuZGxlclN0YXRzJ3MgZnJh
bWVXaWR0aCBhc3NlcnRfdHJ1ZTogSXMgZnJhbWVXaWR0aCBwcmVzZW50IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCi1GQUlMIFJUQ1ZpZGVvSGFuZGxlclN0YXRzJ3MgZnJhbWVIZWlnaHQgYXNzZXJ0
X3RydWU6IElzIGZyYW1lSGVpZ2h0IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUlRDVmlkZW9IYW5kbGVyU3RhdHMncyBmcmFtZXNQZXJTZWNvbmQgYXNzZXJ0X3RydWU6IElz
IGZyYW1lc1BlclNlY29uZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJU
Q1ZpZGVvU2VuZGVyU3RhdHMncyBmcmFtZXNTZW50IGFzc2VydF90cnVlOiBJcyBmcmFtZXNTZW50
IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUlRDVmlkZW9SZWNlaXZlclN0
YXRzJ3MgZnJhbWVzUmVjZWl2ZWQgYXNzZXJ0X3RydWU6IElzIGZyYW1lc1JlY2VpdmVkIHByZXNl
bnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUlRDVmlkZW9SZWNlaXZlclN0YXRzJ3Mg
ZnJhbWVzRGVjb2RlZCBhc3NlcnRfdHJ1ZTogSXMgZnJhbWVzRGVjb2RlZCBwcmVzZW50IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJUQ1ZpZGVvUmVjZWl2ZXJTdGF0cydzIGZyYW1lc0Ry
b3BwZWQgYXNzZXJ0X3RydWU6IElzIGZyYW1lc0Ryb3BwZWQgcHJlc2VudCBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotRkFJTCBSVENWaWRlb1JlY2VpdmVyU3RhdHMncyBwYXJ0aWFsRnJhbWVzTG9z
dCBhc3NlcnRfdHJ1ZTogSXMgcGFydGlhbEZyYW1lc0xvc3QgcHJlc2VudCBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQogUEFTUyBSVENDb2RlY1N0YXRzJ3MgcGF5bG9hZFR5cGUKLUZBSUwgUlRDQ29k
ZWNTdGF0cydzIGNvZGVjVHlwZSBhc3NlcnRfdHJ1ZTogSXMgY29kZWNUeXBlIHByZXNlbnQgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgUlRDQ29kZWNTdGF0cydzIG1pbWVUeXBlCiBQQVNT
IFJUQ0NvZGVjU3RhdHMncyBjbG9ja1JhdGUKIFBBU1MgUlRDQ29kZWNTdGF0cydzIGNoYW5uZWxz
CiBQQVNTIFJUQ0NvZGVjU3RhdHMncyBzZHBGbXRwTGluZQogRkFJTCBSVENUcmFuc3BvcnRTdGF0
cydzIGJ5dGVzU2VudCBhc3NlcnRfdHJ1ZTogSXMgYnl0ZXNTZW50IHByZXNlbnQgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDVHJhbnNwb3J0U3RhdHMncyBieXRlc1JlY2VpdmVkIGFz
c2VydF90cnVlOiBJcyBieXRlc1JlY2VpdmVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgUlRDVHJhbnNwb3J0U3RhdHMncyBydGNwVHJhbnNwb3J0U3RhdHNJZCBhc3NlcnRf
dHJ1ZTogSXMgcnRjcFRyYW5zcG9ydFN0YXRzSWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQogRkFJTCBSVENUcmFuc3BvcnRTdGF0cydzIHNlbGVjdGVkQ2FuZGlkYXRlUGFpcklkIGFz
c2VydF90cnVlOiBJcyBzZWxlY3RlZENhbmRpZGF0ZVBhaXJJZCBwcmVzZW50IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCiBGQUlMIFJUQ1RyYW5zcG9ydFN0YXRzJ3MgbG9jYWxDZXJ0aWZpY2F0ZUlk
IGFzc2VydF90cnVlOiBJcyBsb2NhbENlcnRpZmljYXRlSWQgcHJlc2VudCBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQogRkFJTCBSVENUcmFuc3BvcnRTdGF0cydzIHJlbW90ZUNlcnRpZmljYXRlSWQg
YXNzZXJ0X3RydWU6IElzIHJlbW90ZUNlcnRpZmljYXRlSWQgcHJlc2VudCBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQpAQCAtNjEsNyArNjEsNiBAQCBQQVNTIFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0
cydzIHRyYW5zcG9ydElkCiBQQVNTIFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0cydzIGxvY2FsQ2Fu
ZGlkYXRlSWQKIFBBU1MgUlRDSWNlQ2FuZGlkYXRlUGFpclN0YXRzJ3MgcmVtb3RlQ2FuZGlkYXRl
SWQKIFBBU1MgUlRDSWNlQ2FuZGlkYXRlUGFpclN0YXRzJ3Mgc3RhdGUKLVBBU1MgUlRDSWNlQ2Fu
ZGlkYXRlUGFpclN0YXRzJ3MgcHJpb3JpdHkKIFBBU1MgUlRDSWNlQ2FuZGlkYXRlUGFpclN0YXRz
J3Mgbm9taW5hdGVkCiBQQVNTIFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0cydzIGJ5dGVzU2VudAog
UEFTUyBSVENJY2VDYW5kaWRhdGVQYWlyU3RhdHMncyBieXRlc1JlY2VpdmVkCkBAIC03NSw1ICs3
NCw0IEBAIEZBSUwgUlRDSWNlQ2FuZGlkYXRlU3RhdHMncyB1cmwgYXNzZXJ0X3RydWU6IElzIHVy
bCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhCiBQQVNTIFJUQ0NlcnRpZmljYXRlU3RhdHMn
cyBmaW5nZXJwcmludAogUEFTUyBSVENDZXJ0aWZpY2F0ZVN0YXRzJ3MgZmluZ2VycHJpbnRBbGdv
cml0aG0KIFBBU1MgUlRDQ2VydGlmaWNhdGVTdGF0cydzIGJhc2U2NENlcnRpZmljYXRlCi1GQUlM
IFJUQ0NlcnRpZmljYXRlU3RhdHMncyBpc3N1ZXJDZXJ0aWZpY2F0ZUlkIGFzc2VydF90cnVlOiBJ
cyBpc3N1ZXJDZXJ0aWZpY2F0ZUlkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMuaHRtbAppbmRleCA3ZGExNGNkNWUw
ZjNmNWM3ZTgwN2I2MWNiMGU3ZWNjNzIxNmZmMDA3Li5mODBmYTVmZTFmNDY1Y2Y5NDYzNDdmMzBk
MDZlZjhhOTA1MmFmNDVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3Rh
dHMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMu
aHRtbApAQCAtOTUsNyArOTUsMTEgQEAgY29uc3QgbWFuZGF0b3J5ID0gewogICBdLAogICBSVEND
b2RlY1N0YXRzOiBbCiAgICAgInBheWxvYWRUeXBlIiwKLSAgICAiY29kZWNUeXBlIiwKKyAgICAv
KiBjb2RlY1R5cGUgaXMgcGFydCBvZiBNVEkgYnV0IGlzIG5vdCBzeXN0ZW1hdGljYWxseSBzZXQK
KyAgICAgICBwZXIgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYnJ0Yy1zdGF0cy8jZG9tLXJ0Y2Nv
ZGVjc3RhdHMtY29kZWN0eXBlCisgICAgICAgSWYgdGhlIGRpY3Rpb25hcnkgbWVtYmVyIGlzIG5v
dCBwcmVzZW50LCBpdCBtZWFucyB0aGF0CisgICAgICB0aGlzIG1lZGlhIGZvcm1hdCBjYW4gYmUg
Ym90aCBlbmNvZGVkIGFuZCBkZWNvZGVkLiAqLworICAgIC8vICJjb2RlY1R5cGUiLAogICAgICJt
aW1lVHlwZSIsCiAgICAgImNsb2NrUmF0ZSIsCiAgICAgImNoYW5uZWxzIiwKQEAgLTEzMCw3ICsx
MzQsMTEgQEAgY29uc3QgbWFuZGF0b3J5ID0gewogICAgICJmaW5nZXJwcmludCIsCiAgICAgImZp
bmdlcnByaW50QWxnb3JpdGhtIiwKICAgICAiYmFzZTY0Q2VydGlmaWNhdGUiLAotICAgICJpc3N1
ZXJDZXJ0aWZpY2F0ZUlkIiwKKyAgICAvKiBpc3N1ZXJDZXJ0aWZpY2F0ZUlkIGlzIHBhcnQgb2Yg
TVRJIGJ1dCBpcyBub3Qgc3lzdGVtYXRpY2FsbHkgc2V0CisgICAgICAgcGVyIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi93ZWJydGMtc3RhdHMvI2RvbS1ydGNjZXJ0aWZpY2F0ZXN0YXRzLWlzc3VlcmNl
cnRpZmljYXRlaWQKKyAgICAgICBJZiB0aGUgY3VycmVudCBjZXJ0aWZpY2F0ZSBpcyBhdCB0aGUg
ZW5kIG9mIHRoZSBjaGFpbgorICAgICAgIChpLmUuIGEgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUp
LCB0aGlzIHdpbGwgbm90IGJlIHNldC4gKi8KKyAgICAvLyAiaXNzdWVyQ2VydGlmaWNhdGVJZCIs
CiAgIF0sCiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZWVySWRlbnRpdHktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcGVlcklkZW50aXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MjVjMDk1MWUxY2Q1MTBhZjhiMDhmMWZkNTk4YzlhY2UzZGY0MGI4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tcGVlcklkZW50aXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIw
IEBACisKK0ZBSUwgc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBvbiBvZmZlciB3aXRoIGE9aWRlbnRp
dHkgc2hvdWxkIGVzdGFibGlzaCBwZWVySWRlbnRpdHkgcGMxLnNldElkZW50aXR5UHJvdmlkZXIg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMxLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdCwg
eworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcycsCisgICAgICB1c2VybmFtZUhpbnQ6IGBh
bGljZUAke2lkcERvbWFpbn1gCisgICAgfSknLCAncGMxLnNldElkZW50aXR5UHJvdmlkZXInIGlz
IHVuZGVmaW5lZCkKK0ZBSUwgc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBvbiBvZmZlciB3aXRoIGE9
aWRlbnRpdHkgdGhhdCByZXNvbHZlIHRvIHZhbHVlIGRpZmZlcmVudCBmcm9tIHRhcmdldCBwZWVy
IGlkZW50aXR5IHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IgcGMx
LnNldElkZW50aXR5UHJvdmlkZXIgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMxLnNldElkZW50
aXR5UHJvdmlkZXIoaWRwSG9zdCwgeworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcycsCisg
ICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSknLCAncGMxLnNl
dElkZW50aXR5UHJvdmlkZXInIGlzIHVuZGVmaW5lZCkKK0ZBSUwgc2V0UmVtb3RlRGVzY3JpcHRp
b24oKSB3aXRoIHBlZXJJZGVudGl0eSBzZXQgYW5kIHdpdGggSWRQIHByb3h5IHRoYXQgcmV0dXJu
IHZhbGlkYXRpb25Bc3NlcnRpb24gd2l0aCBtaXNtYXRjaCBjb250ZW50cyBzaG91bGQgcmVqZWN0
IHdpdGggT3BlcmF0aW9uRXJyb3IgdW5kZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9uIChuZWFyICcu
Li5wYzEuc2V0SWRlbnRpdHlQcm92aWRlci4uLicpCitGQUlMIHNldFJlbW90ZURlc2NyaXB0aW9u
KCkgYW5kIHBlZXJJZGVudGl0eSBzaG91bGQgcmVqZWN0IHdpdGggT3BlcmF0aW9uRXJyb3IgaWYg
SWRQIHJldHVybiB2YWxpZGF0ZWQgaWRlbnRpdHkgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSBpdHMg
b3duIGRvbWFpbiBwYzEuc2V0SWRlbnRpdHlQcm92aWRlciBpcyBub3QgYSBmdW5jdGlvbi4gKElu
ICdwYzEuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0MSwgeworICAgICAgcHJvdG9jb2w6ICdt
b2NrLWlkcC5qcycsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbjJ9YAor
ICAgIH0pJywgJ3BjMS5zZXRJZGVudGl0eVByb3ZpZGVyJyBpcyB1bmRlZmluZWQpCitGQUlMIFdo
ZW4gSWRQIHRocm93cyBlcnJvciBhbmQgcGMgaGFzIHRhcmdldCBwZWVyIGlkZW50aXR5LCBzZXRS
ZW1vdGVEZXNjcmlwdGlvbigpIGFuZCBwZWVySWRlbnRpdHkgcmVqZWN0ZWQgd2l0aCBSVENFcnJv
cignaWRwLWV4ZWN1dGlvbi1lcnJvcicpIHVuZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbiAobmVh
ciAnLi4ucGMxLnNldElkZW50aXR5UHJvdmlkZXIuLi4nKQorRkFJTCBJZFAgZmFpbHVyZSB3aXRo
IG5vIHRhcmdldCBwZWVyIGlkZW50aXR5IHNob3VsZCBoYXZlIGZvbGxvd2luZyBzZXRSZW1vdGVE
ZXNjcmlwdGlvbigpIHN1Y2NlZWQgYW5kIHJlcGxhY2UgcGMucGVlcklkZW50aXR5IHdpdGggYSBu
ZXcgcHJvbWlzZSBwYzEuc2V0SWRlbnRpdHlQcm92aWRlciBpcyBub3QgYSBmdW5jdGlvbi4gKElu
ICdwYzEuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDogJ21v
Y2staWRwLmpzP3ZhbGlkYXRvckFjdGlvbj10aHJvdy1lcnJvcicsCisgICAgICB1c2VybmFtZUhp
bnQ6IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSknLCAncGMxLnNldElkZW50aXR5UHJvdmlk
ZXInIGlzIHVuZGVmaW5lZCkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVlcklkZW50aXR5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1wZWVySWRlbnRpdHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGFkMjEy
YTViYTRlMGM2YmY1NTg5ZjRjZGEzYTRjN2E1MDhjZGMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tcGVlcklkZW50aXR5Lmh0bWwKQEAgLTAsMCArMSwzMzYgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5wcm90
b3R5cGUucGVlcklkZW50aXR5PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJpZGVudGl0eS1oZWxwZXIuc3ViLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICAvLyBUZXN0IGlzIGJh
c2VkIG9uIHRoZSBmb2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgorICAvLyAgIGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKKworICAvLyBU
aGUgdGVzdHMgaGVyZSBpbnRlcmFjdHMgd2l0aCB0aGUgbW9jayBpZGVudGl0eSBwcm92aWRlciBs
b2NhdGVkIGF0CisgIC8vICAgLy53ZWxsLWtub3duL2lkcC1wcm94eS9tb2NrLWlkcC5qcworCisg
IC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20gaWRlbnRp
dHktaGVscGVyLnN1Yi5qcworICAvLyAgIHBhcnNlQXNzZXJ0aW9uUmVzdWx0CisgIC8vICAgZ2V0
SWRwRG9tYWlucworICAvLyAgIGFzc2VydF9ydGNlcnJvcl9yZWplY3Rpb24KKyAgLy8gICBob3N0
U3RyaW5nCisKKyAgLyoKKyAgICA5LjYuICBSVENQZWVyQ29ubmVjdGlvbiBJbnRlcmZhY2UgRXh0
ZW5zaW9ucworICAgICAgcGFydGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24geworICAg
ICAgICB2b2lkICAgICAgICAgICAgICAgc2V0SWRlbnRpdHlQcm92aWRlcihET01TdHJpbmcgcHJv
dmlkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
dGlvbmFsIFJUQ0lkZW50aXR5UHJvdmlkZXJPcHRpb25zIG9wdGlvbnMpOworICAgICAgICBQcm9t
aXNlPERPTVN0cmluZz4gZ2V0SWRlbnRpdHlBc3NlcnRpb24oKTsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFByb21pc2U8UlRDSWRlbnRpdHlBc3NlcnRpb24+IHBlZXJJZGVudGl0eTsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gICAgICAgICAgICAgICAgICAgIGlk
cExvZ2luVXJsOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyAgICAgICAg
ICAgICAgICAgICAgaWRwRXJyb3JJbmZvOworICAgICAgfTsKKworICAgICAgZGljdGlvbmFyeSBS
VENJZGVudGl0eVByb3ZpZGVyT3B0aW9ucyB7CisgICAgICAgIERPTVN0cmluZyBwcm90b2NvbCA9
ICJkZWZhdWx0IjsKKyAgICAgICAgRE9NU3RyaW5nIHVzZXJuYW1lSGludDsKKyAgICAgICAgRE9N
U3RyaW5nIHBlZXJJZGVudGl0eTsKKyAgICAgIH07CisKKyAgICAgIFtDb25zdHJ1Y3RvcihET01T
dHJpbmcgaWRwLCBET01TdHJpbmcgbmFtZSldCisgICAgICBpbnRlcmZhY2UgUlRDSWRlbnRpdHlB
c3NlcnRpb24geworICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkcDsKKyAgICAgICAgYXR0
cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgICAgfTsKKyAgICovCisKKyAgLyoKKyAgICA0LjMu
Mi4gc2V0UmVtb3RlRGVzY3JpcHRpb24KKyAgICAgIElmIGFuIGE9aWRlbnRpdHkgYXR0cmlidXRl
IGlzIHByZXNlbnQgaW4gdGhlIHNlc3Npb24gZGVzY3JpcHRpb24sIHRoZSBicm93c2VyCisgICAg
ICB2YWxpZGF0ZXMgdGhlIGlkZW50aXR5IGFzc2VydGlvbi4uCisKKyAgICAgIElmIHRoZSAicGVl
cklkZW50aXR5IiBjb25maWd1cmF0aW9uIGlzIGFwcGxpZWQgdG8gdGhlIFJUQ1BlZXJDb25uZWN0
aW9uLCB0aGlzCisgICAgICBlc3RhYmxpc2hlcyBhIHRhcmdldCBwZWVyIGlkZW50aXR5IG9mIHRo
ZSBwcm92aWRlZCB2YWx1ZS4gQWx0ZXJuYXRpdmVseSwgaWYgdGhlCisgICAgICBSVENQZWVyQ29u
bmVjdGlvbiBoYXMgcHJldmlvdXNseSBhdXRoZW50aWNhdGVkIHRoZSBpZGVudGl0eSBvZiB0aGUg
cGVlciAodGhhdAorICAgICAgaXMsIHRoZXJlIGlzIGEgY3VycmVudCB2YWx1ZSBmb3IgcGVlcklk
ZW50aXR5ICksIHRoZW4gdGhpcyBhbHNvIGVzdGFibGlzaGVzIGEKKyAgICAgIHRhcmdldCBwZWVy
IGlkZW50aXR5LgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNs
b3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBwb3J0ID0gd2lu
ZG93LmxvY2F0aW9uLnBvcnQ7CisgICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5z
KCk7CisgICAgY29uc3QgaWRwSG9zdCA9IGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KTsKKwor
ICAgIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHByb3RvY29sOiAn
bW9jay1pZHAuanMnLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAor
ICAgIH0pOworCisgICAgcmV0dXJuIHBjMS5jcmVhdGVPZmZlcigpCisgICAgLnRoZW4ob2ZmZXIg
PT4gcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSkKKyAgICAudGhlbigoKSA9PiBwYzIu
cGVlcklkZW50aXR5KQorICAgIC50aGVuKGlkZW50aXR5QXNzZXJ0aW9uID0+IHsKKyAgICAgIGNv
bnN0IHsgaWRwLCBuYW1lIH0gPSBpZGVudGl0eUFzc2VydGlvbjsKKyAgICAgIGFzc2VydF9lcXVh
bHMoaWRwLCBpZHBEb21haW4sIGBFeHBlY3QgSWRQIGRvbWFpbiB0byBiZSAke2lkcERvbWFpbn1g
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoaWRlbnRpdHlBc3NlcnRpb24sIGBhbGljZUAke2lkcERv
bWFpbn1gLAorICAgICAgICBgRXhwZWN0IHZhbGlkYXRlZCBpZGVudGl0eSBmcm9tIG1vY2staWRw
LmpzIHRvIGJlIHNhbWUgYXMgc3BlY2lmaWVkIGluIHVzZXJuYW1lSGludGApOworICAgIH0pOwor
ICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBvbiBvZmZlciB3aXRoIGE9aWRlbnRpdHkgc2hv
dWxkIGVzdGFibGlzaCBwZWVySWRlbnRpdHknKTsKKworICAvKgorICAgIDQuMy4yLiBzZXRSZW1v
dGVEZXNjcmlwdGlvbgorICAgICAgVGhlIHRhcmdldCBwZWVyIGlkZW50aXR5IGNhbm5vdCBiZSBj
aGFuZ2VkIG9uY2Ugc2V0LiBPbmNlIHNldCwgaWYgYSBkaWZmZXJlbnQKKyAgICAgIHZhbHVlIGlz
IHByb3ZpZGVkLCB0aGUgdXNlciBhZ2VudCBNVVNUIHJlamVjdCB0aGUgcmV0dXJuZWQgcHJvbWlz
ZSB3aXRoIGEgbmV3bHkKKyAgICAgIGNyZWF0ZWQgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIGFu
ZCBhYm9ydCB0aGlzIG9wZXJhdGlvbi4gVGhlIFJUQ1BlZXJDb25uZWN0aW9uCisgICAgICBNVVNU
IGJlIGNsb3NlZCBpZiB0aGUgdmFsaWRhdGVkIHBlZXIgaWRlbnRpdHkgZG9lcyBub3QgbWF0Y2gg
dGhlIHRhcmdldCBwZWVyCisgICAgICBpZGVudGl0eS4KKyAgICovCisgIHByb21pc2VfdGVzdCh0
ID0+IHsKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7CisgICAgY29uc3Qg
W2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7CisgICAgY29uc3QgaWRwSG9zdCA9IGhvc3RT
dHJpbmcoaWRwRG9tYWluLCBwb3J0KTsKKworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNv
bnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7CisgICAgICBwZWVySWRlbnRpdHk6IGBi
b2JAJHtpZHBEb21haW59YAorICAgIH0pOworCisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIu
Y2xvc2UoKSk7CisKKyAgICBwYzEuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAg
ICBwcm90b2NvbDogJ21vY2staWRwLmpzJywKKyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7
aWRwRG9tYWlufWAKKyAgICB9KTsKKworICAgIHJldHVybiBwYzEuY3JlYXRlT2ZmZXIoKQorICAg
IC50aGVuKG9mZmVyID0+CisgICAgICBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRNb2RpZmlj
YXRpb25FcnJvcicsCisgICAgICAgIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikpKQor
ICAgIC50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF90cnVlKHBjMi5zaWduYWxpbmdTdGF0ZSwg
J2Nsb3NlZCcsCisgICAgICAgICdFeHBlY3QgcGVlciBjb25uZWN0aW9uIHRvIGJlIGNsb3NlZCBh
ZnRlciBtaXNtYXRjaCBwZWVyIGlkZW50aXR5Jyk7CisgICAgfSk7CisgIH0sICdzZXRSZW1vdGVE
ZXNjcmlwdGlvbigpIG9uIG9mZmVyIHdpdGggYT1pZGVudGl0eSB0aGF0IHJlc29sdmUgdG8gdmFs
dWUgZGlmZmVyZW50IGZyb20gdGFyZ2V0IHBlZXIgaWRlbnRpdHkgc2hvdWxkIHJlamVjdCB3aXRo
IEludmFsaWRNb2RpZmljYXRpb25FcnJvcicpOworCisgIC8qCisgICAgOS40LiAgVmVyaWZ5aW5n
IElkZW50aXR5IEFzc2VydGlvbnMKKyAgICAgIDguICBUaGUgUlRDUGVlckNvbm5lY3Rpb24gZGVj
b2RlcyB0aGUgY29udGVudHMgYW5kIHZhbGlkYXRlcyB0aGF0IGl0IGNvbnRhaW5zIGEKKyAgICAg
ICAgICBmaW5nZXJwcmludCB2YWx1ZSBmb3IgZXZlcnkgYT1maW5nZXJwcmludCBhdHRyaWJ1dGUg
aW4gdGhlIHNlc3Npb24gZGVzY3JpcHRpb24uCisgICAgICAgICAgVGhpcyBlbnN1cmVzIHRoYXQg
dGhlIGNlcnRpZmljYXRlIHVzZWQgYnkgdGhlIHJlbW90ZSBwZWVyIGZvciBjb21tdW5pY2F0aW9u
cworICAgICAgICAgIGlzIGNvdmVyZWQgYnkgdGhlIGlkZW50aXR5IGFzc2VydGlvbi4KKworICAg
ICAgSWYgaWRlbnRpdHkgdmFsaWRhdGlvbiBmYWlscywgdGhlIHBlZXJJZGVudGl0eSBwcm9taXNl
IGlzIHJlamVjdGVkIHdpdGggYSBuZXdseQorICAgICAgY3JlYXRlZCBPcGVyYXRpb25FcnJvci4K
KworICAgICAgSWYgaWRlbnRpdHkgdmFsaWRhdGlvbiBmYWlscyBhbmQgdGhlcmUgaXMgYSB0YXJn
ZXQgcGVlciBpZGVudGl0eSBmb3IgdGhlCisgICAgICBSVENQZWVyQ29ubmVjdGlvbiwgdGhlIHBy
b21pc2UgcmV0dXJuZWQgYnkgc2V0UmVtb3RlRGVzY3JpcHRpb24gTVVTVCBiZSByZWplY3RlZAor
ICAgICAgd2l0aCB0aGUgc2FtZSBET01FeGNlcHRpb24uCisgICAqLworICBwcm9taXNlX3Rlc3Qo
dCA9PiB7CisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0
IFtpZHBEb21haW5dID0gZ2V0SWRwRG9tYWlucygpOworICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0
U3RyaW5nKGlkcERvbWFpbiwgcG9ydCk7CisKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBj
b25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeworICAgICAgcGVlcklkZW50aXR5OiBg
YWxpY2VAJHtpZHBEb21haW59YAorICAgIH0pOworCisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7CisKKyAgICAvLyBBc2sgbW9ja2lkcC5qcyB0byByZXR1cm4gY3VzdG9tIGNv
bnRlbnRzIGluIHZhbGlkYXRpb24gcmVzdWx0CisgICAgcGMxLnNldElkZW50aXR5UHJvdmlkZXIo
aWRwSG9zdCwgeworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcz92YWxpZGF0b3JBY3Rpb249
cmV0dXJuLWN1c3RvbS1jb250ZW50cyZjb250ZW50cz1ib2d1cycsCisgICAgICB1c2VybmFtZUhp
bnQ6IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICBjb25zdCBwZWVySWRlbnRp
dHlQcm9taXNlID0gcGMyLnBlZXJJZGVudGl0eTsKKworICAgIHJldHVybiBwYzEuY3JlYXRlT2Zm
ZXIoKQorICAgIC50aGVuKG9mZmVyID0+IFByb21pc2UuYWxsKFsKKyAgICAgIHByb21pc2VfcmVq
ZWN0cyh0LCAnT3BlcmF0aW9uRXJyb3InLAorICAgICAgICBwYzIuc2V0UmVtb3RlRGVzY3JpcHRp
b24ob2ZmZXIpKSwKKyAgICAgIHByb21pc2VfcmVqZWN0cyh0LCAnT3BlcmF0aW9uRXJyb3InLAor
ICAgICAgICBwZWVySWRlbnRpdHlQcm9taXNlKQorICAgIF0pKTsKKyAgfSwgJ3NldFJlbW90ZURl
c2NyaXB0aW9uKCkgd2l0aCBwZWVySWRlbnRpdHkgc2V0IGFuZCB3aXRoIElkUCBwcm94eSB0aGF0
IHJldHVybiB2YWxpZGF0aW9uQXNzZXJ0aW9uIHdpdGggbWlzbWF0Y2ggY29udGVudHMgc2hvdWxk
IHJlamVjdCB3aXRoIE9wZXJhdGlvbkVycm9yJyk7CisKKyAgLyoKKyAgICA5LjQuICBWZXJpZnlp
bmcgSWRlbnRpdHkgQXNzZXJ0aW9ucworICAgICAgOS4gIFRoZSBSVENQZWVyQ29ubmVjdGlvbiB2
YWxpZGF0ZXMgdGhhdCB0aGUgZG9tYWluIHBvcnRpb24gb2YgdGhlIGlkZW50aXR5IG1hdGNoZXMK
KyAgICAgICAgICB0aGUgZG9tYWluIG9mIHRoZSBJZFAgYXMgZGVzY3JpYmVkIGluIFtSVENXRUIt
U0VDVVJJVFktQVJDSF0uIElmIHRoaXMgY2hlY2sKKyAgICAgICAgICBmYWlscyB0aGVuIHRoZSBp
ZGVudGl0eSB2YWxpZGF0aW9uIGZhaWxzLgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KHQgPT4gewor
ICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9t
YWluMSwgaWRwRG9tYWluMl0gPSBnZXRJZHBEb21haW5zKCk7CisgICAgYXNzZXJ0X25vdF9lcXVh
bHMoaWRwRG9tYWluMSwgaWRwRG9tYWluMiwKKyAgICAgICdTYW5pdHkgY2hlY2sgdHdvIGlkcERv
bWFpbnMgYXJlIGRpZmZlcmVudCcpOworCisgICAgY29uc3QgaWRwSG9zdDEgPSBob3N0U3RyaW5n
KGlkcERvbWFpbjEsIHBvcnQpOworCisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsKKyAgICAgIHBlZXJJZGVudGl0eTogYGFsaWNl
QCR7aWRwRG9tYWluMn1gCisgICAgfSk7CisKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5j
bG9zZSgpKTsKKworICAgIC8vIG1vY2staWRwLmpzIHdpbGwgcmV0dXJuIGFzc2VydGlvbiBvZiBk
b21haW4yIGlkZW50aXR5CisgICAgLy8gd2l0aCBkb21haW4xIGluIHRoZSBpZHAuZG9tYWluIGZp
ZWxkCisgICAgcGMxLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdDEsIHsKKyAgICAgIHByb3Rv
Y29sOiAnbW9jay1pZHAuanMnLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21h
aW4yfWAKKyAgICB9KTsKKworICAgIHJldHVybiBwYzEuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKQor
ICAgIC50aGVuKGFzc2VydGlvblJlc3VsdFN0ciA9PiB7CisgICAgICBjb25zdCB7IGlkcCwgYXNz
ZXJ0aW9uIH0gPSBwYXJzZUFzc2VydGlvblJlc3VsdChhc3NlcnRpb25SZXN1bHRTdHIpOworCisg
ICAgICBhc3NlcnRfZXF1YWxzKGlkcC5kb21haW4sIGlkcERvbWFpbjEsCisgICAgICAgICdTYW5p
dHkgY2hlY2sgZG9tYWluIG9mIGFzc2VydGlvbiBpcyBkb21haW4xJyk7CisKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoYXNzZXJ0aW9uLm9wdGlvbnMudXNlcm5hbWVIaW50LCBgYWxpY2VAJHtpZHBEb21h
aW4yfWAsCisgICAgICAgICdTYW5pdHkgY2hlY2sgZG9tYWluMSBpcyBnb2luZyB0byB2YWxpZGF0
ZSBhIGRvbWFpbjIgaWRlbnRpdHknKTsKKworICAgICAgcmV0dXJuIHBjMS5jcmVhdGVPZmZlcigp
OworICAgIH0pCisgICAgLnRoZW4ob2ZmZXIgPT4gUHJvbWlzZS5hbGwoWworICAgICAgcHJvbWlz
ZV9yZWplY3RzKHQsICdPcGVyYXRpb25FcnJvcicsCisgICAgICAgIHBjMi5zZXRSZW1vdGVEZXNj
cmlwdGlvbihvZmZlcikpLAorICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdPcGVyYXRpb25FcnJv
cicsCisgICAgICAgIHBjMi5wZWVySWRlbnRpdHkpCisgICAgXSkpOworICB9LCAnc2V0UmVtb3Rl
RGVzY3JpcHRpb24oKSBhbmQgcGVlcklkZW50aXR5IHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRp
b25FcnJvciBpZiBJZFAgcmV0dXJuIHZhbGlkYXRlZCBpZGVudGl0eSB0aGF0IGlzIGRpZmZlcmVu
dCBmcm9tIGl0cyBvd24gZG9tYWluJyk7CisKKyAgLyoKKyAgICA5LjQgVmVyaWZ5aW5nIElkZW50
aXR5IEFzc2VydGlvbnMKKyAgICAgIElmIGlkZW50aXR5IHZhbGlkYXRpb24gZmFpbHMgYW5kIHRo
ZXJlIGlzIGEgdGFyZ2V0IHBlZXIgaWRlbnRpdHkgZm9yIHRoZQorICAgICAgUlRDUGVlckNvbm5l
Y3Rpb24sIHRoZSBwcm9taXNlIHJldHVybmVkIGJ5IHNldFJlbW90ZURlc2NyaXB0aW9uIE1VU1Qg
YmUgcmVqZWN0ZWQKKyAgICAgIHdpdGggdGhlIHNhbWUgRE9NRXhjZXB0aW9uLgorCisgICAgOS41
IElkUCBFcnJvciBIYW5kbGluZworICAgICAgLSBJZiBhbiBpZGVudGl0eSBwcm92aWRlciB0aHJv
d3MgYW4gZXhjZXB0aW9uIG9yIHJldHVybnMgYSBwcm9taXNlIHRoYXQgaXMgdWx0aW1hdGVseQor
ICAgICAgICByZWplY3RlZCwgdGhlbiB0aGUgcHJvY2VkdXJlIHRoYXQgZGVwZW5kcyBvbiB0aGUg
SWRQIE1VU1QgYWxzbyBmYWlsLiBUaGVzZSB0eXBlcyBvZgorICAgICAgICBlcnJvcnMgd2lsbCBj
YXVzZSBhbiBJZFAgZmFpbHVyZSB3aXRoIGFuIFJUQ0Vycm9yIHdpdGggZXJyb3JEZXRhaWwgc2V0
IHRvCisgICAgICAgICJpZHAtZXhlY3V0aW9uLWZhaWx1cmUiLgorCisgICAgICBBbnkgZXJyb3Ig
Z2VuZXJhdGVkIGJ5IHRoZSBJZFAgTUFZIHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBp
biB0aGUKKyAgICAgIGlkcEVycm9ySW5mbyBhdHRyaWJ1dGUuIFRoZSBpbmZvcm1hdGlvbiBpbiB0
aGlzIHN0cmluZyBpcyBkZWZpbmVkIGJ5IHRoZQorICAgICAgSWRQIGluIHVzZS4KKyAgICovCisg
IHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBv
cnQ7CisgICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7CisgICAgY29uc3Qg
aWRwSG9zdCA9IGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KTsKKworICAgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNs
b3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7CisgICAgICBw
ZWVySWRlbnRpdHk6IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIC8vIEFzayBtb2NrLWlkcC5qcyB0byB0
aHJvdyBlcnJvciBkdXJpbmcgdmFsaWRhdGlvbiwKKyAgICAvLyBpLmUuIGR1cmluZyBwYzIuc2V0
UmVtb3RlRGVzY3JpcHRpb24oKQorICAgIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3Qs
IHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanM/dmFsaWRhdG9yQWN0aW9uPXRocm93LWVy
cm9yJmVycm9ySW5mbz1iYXInLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21h
aW59YAorICAgIH0pOworCisgICAgcmV0dXJuIHBjMS5jcmVhdGVPZmZlcigpCisgICAgLnRoZW4o
b2ZmZXIgPT4gUHJvbWlzZS5hbGwoWworICAgICAgYXNzZXJ0X3J0Y2Vycm9yX3JlamVjdGlvbign
aWRwLWV4ZWN1dGlvbi1mYWlsdXJlJywKKyAgICAgICAgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9u
KG9mZmVyKSksCisgICAgICBhc3NlcnRfcnRjZXJyb3JfcmVqZWN0aW9uKCdpZHAtZXhlY3V0aW9u
LWZhaWx1cmUnLAorICAgICAgICBwYzIucGVlcklkZW50aXR5KQorICAgIF0pKQorICAgIC50aGVu
KCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMocGMyLmlkcEVycm9ySW5mbywgJ2JhcicsCisg
ICAgICAgICdFeHBlY3QgcGMyLmlkcEVycm9ySW5mbyB0byBiZSBzZXQgdG8gdGhlIGVyci5pZHBF
cnJvckluZm8gdGhyb3duIGJ5IG1vY2staWRwLmpzJyk7CisgICAgfSk7CisgIH0sIGBXaGVuIElk
UCB0aHJvd3MgZXJyb3IgYW5kIHBjIGhhcyB0YXJnZXQgcGVlciBpZGVudGl0eSwgc2V0UmVtb3Rl
RGVzY3JpcHRpb24oKSBhbmQgcGVlcklkZW50aXR5IHJlamVjdGVkIHdpdGggUlRDRXJyb3IoJ2lk
cC1leGVjdXRpb24tZXJyb3InKWApOworCisgIC8qCisgICAgNC4zLjIuIHNldFJlbW90ZURlc2Ny
aXB0aW9uCisgICAgICBJZiB0aGVyZSBpcyBubyB0YXJnZXQgcGVlciBpZGVudGl0eSwgdGhlbiBz
ZXRSZW1vdGVEZXNjcmlwdGlvbiBkb2VzIG5vdCBhd2FpdCB0aGUKKyAgICAgIGNvbXBsZXRpb24g
b2YgaWRlbnRpdHkgdmFsaWRhdGlvbi4KKworICAgIDkuNS4gIElkUCBFcnJvciBIYW5kbGluZwor
ICAgICAgLSBJZiBhbiBpZGVudGl0eSBwcm92aWRlciB0aHJvd3MgYW4gZXhjZXB0aW9uIG9yIHJl
dHVybnMgYSBwcm9taXNlIHRoYXQgaXMKKyAgICAgICAgdWx0aW1hdGVseSByZWplY3RlZCwgdGhl
biB0aGUgcHJvY2VkdXJlIHRoYXQgZGVwZW5kcyBvbiB0aGUgSWRQIE1VU1QgYWxzbyBmYWlsLgor
ICAgICAgICBUaGVzZSB0eXBlcyBvZiBlcnJvcnMgd2lsbCBjYXVzZSBhbiBJZFAgZmFpbHVyZSB3
aXRoIGFuIFJUQ0Vycm9yIHdpdGggZXJyb3JEZXRhaWwKKyAgICAgICAgc2V0IHRvICJpZHAtZXhl
Y3V0aW9uLWZhaWx1cmUiLgorCisgICAgOS40LiAgVmVyaWZ5aW5nIElkZW50aXR5IEFzc2VydGlv
bnMKKyAgICAgIElmIGlkZW50aXR5IHZhbGlkYXRpb24gZmFpbHMgYW5kIHRoZXJlIGlzIG5vIGEg
dGFyZ2V0IHBlZXIgaWRlbnRpdHksIHRoZSB2YWx1ZSBvZgorICAgICAgdGhlIHBlZXJJZGVudGl0
eSBNVVNUIGJlIHNldCB0byBhIG5ldywgdW5yZXNvbHZlZCBwcm9taXNlIGluc3RhbmNlLiBUaGlz
IHBlcm1pdHMKKyAgICAgIHRoZSB1c2Ugb2YgcmVuZWdvdGlhdGlvbiAob3IgYSBzdWJzZXF1ZW50
IGFuc3dlciwgaWYgdGhlIHNlc3Npb24gZGVzY3JpcHRpb24gd2FzCisgICAgICBhIHByb3Zpc2lv
bmFsIGFuc3dlcikgdG8gcmVzb2x2ZSBvciByZWplY3QgdGhlIGlkZW50aXR5LgorICAgKi8KKyAg
cHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7Cisg
ICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7CisgICAgY29uc3QgaWRwSG9z
dCA9IGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KTsKKworICAgIC8vIEFzayBtb2NrLWlkcC5q
cyB0byB0aHJvdyBlcnJvciBkdXJpbmcgdmFsaWRhdGlvbiwKKyAgICAvLyBpLmUuIGR1cmluZyBw
YzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oKQorICAgIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlk
cEhvc3QsIHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanM/dmFsaWRhdG9yQWN0aW9uPXRo
cm93LWVycm9yJywKKyAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAKKyAg
ICB9KTsKKworICAgIGNvbnN0IHBlZXJJZGVudGl0eVByb21pc2UxID0gcGMyLnBlZXJJZGVudGl0
eTsKKworICAgIHJldHVybiBwYzEuY3JlYXRlT2ZmZXIoKQorICAgIC50aGVuKG9mZmVyID0+Cisg
ICAgICAvLyBzZXRSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgc3VjY2VlZCBiZWNhdXNlIHRoZXJl
IGlzIG5vIHRhcmdldCBwZWVyIGlkZW50aXR5IHNldAorICAgICAgcGMyLnNldFJlbW90ZURlc2Ny
aXB0aW9uKG9mZmVyKSkKKyAgICAudGhlbigoKSA9PgorICAgICAgYXNzZXJ0X3J0Y2Vycm9yX3Jl
amVjdGlvbignaWRwLWV4ZWN1dGlvbi1mYWlsdXJlJywKKyAgICAgICAgcGVlcklkZW50aXR5UHJv
bWlzZTEsCisgICAgICAgIGBFeHBlY3QgZmlyc3QgcGVlcklkZW50aXR5IHByb21pc2UgdG8gYmUg
cmVqZWN0ZWQgd2l0aCBSVENFcnJvcignaWRwLWV4ZWN1dGlvbi1mYWlsdXJlJylgKSkKKyAgICAu
dGhlbigoKSA9PiB7CisgICAgICBjb25zdCBwZWVySWRlbnRpdHlQcm9taXNlMiA9IHBjMi5wZWVy
SWRlbnRpdHk7CisgICAgICBhc3NlcnRfbm90X2VxdWFscyhwZWVySWRlbnRpdHlQcm9taXNlMiwg
cGVlcklkZW50aXR5UHJvbWlzZTEsCisgICAgICAgICdFeHBlY3QgcGMyLnBlZXJJZGVudGl0eSB0
byBiZSByZXBsYWNlZCB3aXRoIGEgZnJlc2ggdW5yZXNvbHZlZCBwcm9taXNlJyk7CisKKyAgICAg
IC8vIHJlZ2VuZXJhdGUgYW4gaWRlbnRpdHkgYXNzZXJ0aW9uIHdpdGggbm8gdGVzdCBvcHRpb24g
dG8gdGhyb3cgZXJyb3IKKyAgICAgIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsK
KyAgICAgICAgcHJvdG9jb2w6ICdpZHAtdGVzdC5qcycsCisgICAgICAgIHVzZXJuYW1lSGludDog
YGFsaWNlQCR7aWRwRG9tYWlufWAKKyAgICAgIH0pOworCisgICAgICByZXR1cm4gcGMxLmNyZWF0
ZU9mZmVyKCkKKyAgICAgIC50aGVuKG9mZmVyID0+IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihv
ZmZlcikpCisgICAgICAudGhlbihwZWVySWRlbnRpdHlQcm9taXNlMikKKyAgICAgIC50aGVuKGlk
ZW50aXR5QXNzZXJ0aW9uID0+IHsKKyAgICAgICAgY29uc3QgeyBpZHAsIG5hbWUgfSA9IGlkZW50
aXR5QXNzZXJ0aW9uOworCisgICAgICAgIGFzc2VydF9lcXVhbHMoaWRwLCBpZHBEb21haW4sCisg
ICAgICAgICAgYEV4cGVjdCBJZFAgZG9tYWluIHRvIGJlICR7aWRwRG9tYWlufWApOworCisgICAg
ICAgIGFzc2VydF9lcXVhbHMobmFtZSwgYGFsaWNlQCR7aWRwRG9tYWlufWAsCisgICAgICAgICAg
YEV4cGVjdCB2YWxpZGF0ZWQgaWRlbnRpdHkgdG8gYmUgYWxpY2VAJHtpZHBEb21haW59YCk7CisK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYzIucGVlcmlkZW50aXR5LCBwZWVySWRlbnRpdHlQcm9t
aXNlMiwKKyAgICAgICAgICAnRXhwZWN0IHBjMi5wZWVySWRlbnRpdHkgdG8gc3RheSBmaXhlZCBh
ZnRlciBpZGVudGl0eSBpcyB2YWxpZGF0ZWQnKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAn
SWRQIGZhaWx1cmUgd2l0aCBubyB0YXJnZXQgcGVlciBpZGVudGl0eSBzaG91bGQgaGF2ZSBmb2xs
b3dpbmcgc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBzdWNjZWVkIGFuZCByZXBsYWNlIHBjLnBlZXJJ
ZGVudGl0eSB3aXRoIGEgbmV3IHByb21pc2UnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS1saW5lYXIuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xh
cmUtbGluZWFyLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3MzVkYzg2NWExNmUzNTI4ZDZkMzkw
MmYxNTZjNWEzYWQ4MGJlMjYwLi5jOTU0NzI5MDcxY2RjOTIyYjIyODJlNjMzMWVhY2U1MThjMTJk
M2MxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1n
bGFyZS1saW5lYXIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3Qt
bmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSw0IEBACiAKIFBBU1MgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFy
Ci1QQVNTIFBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIGxpbmVhciB3aXRoIHJvbGVz
IHJldmVyc2VkCitGQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIGxpbmVhciB3
aXRoIHJvbGVzIHJldmVyc2VkIEVycm9yIHByb2Nlc3NpbmcgSUNFIGNhbmRpZGF0ZQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1n
bGFyZS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMmQyY2I4YzdmZGIzNzRmMmExZWYwOTFhYmMy
N2FlN2U5NDc4ZjcyNC4uNTQyZmQ2YzJkZjljZWQ2ZjI2ODEwOTdlYmY3ODA4NGZmZjlkZmNiMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUu
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24t
c3RyZXNzLWdsYXJlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotUEFTUyBQ
ZXJmZWN0IG5lZ290aWF0aW9uIHN0cmVzcyBnbGFyZQorRkFJTCBQZXJmZWN0IG5lZ290aWF0aW9u
IHN0cmVzcyBnbGFyZSBhc3NlcnRfdW5yZWFjaGVkOiBFcnJvciBpbiBpZnJhbWU6IE9wZXJhdGlv
bkVycm9yOiBFcnJvciBwcm9jZXNzaW5nIElDRSBjYW5kaWRhdGUgUmVhY2hlZCB1bnJlYWNoYWJs
ZSBjb2RlCiBQQVNTIFBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIHdpdGggcm9sZXMg
cmV2ZXJzZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCBhMWU3ZGJhZjlmMzYyNDI0NmI2YzBlNzFmYzY0ZjdiZDk3Mzli
MDQzLi42MmRlMDk3NzM0Zjk3NTg3NWE1M2E1ZmE2Zjc1YTZlNDNhMGJhOWJjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MSw2ICsxLDYgQEAKIAogUEFTUyBQZXJmZWN0IG5lZ290aWF0aW9uIHNldHVwIGNvbm5lY3RzCiBQ
QVNTIFBlcmZlY3QgbmVnb3RpYXRpb24gc2V0dXAgY29ubmVjdHMgd2l0aCByb2xlcyByZXZlcnNl
ZAotRkFJTCBQZXJmZWN0IG5lZ290aWF0aW9uIGdsYXJlIFJlbW90ZSBkZXNjcmlwdGlvbiB0eXBl
IDAgaXMgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUgMQotRkFJTCBQ
ZXJmZWN0IG5lZ290aWF0aW9uIGdsYXJlIHdpdGggcm9sZXMgcmV2ZXJzZWQgYXNzZXJ0X3VucmVh
Y2hlZDogRXJyb3IgaW4gaWZyYW1lOiBJbnZhbGlkU3RhdGVFcnJvcjogUmVtb3RlIGRlc2NyaXB0
aW9uIHR5cGUgMCBpcyBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSAx
IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBQZXJmZWN0IG5lZ290aWF0aW9uIGdsYXJl
CitQQVNTIFBlcmZlY3QgbmVnb3RpYXRpb24gZ2xhcmUgd2l0aCByb2xlcyByZXZlcnNlZAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGY0NjIwMDdkNjQyYjIwNTkwOTFiODFiMzA4ODYwMTE0NGNmZDAwOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBsYW4tYi1pcy1ub3Qtc3VwcG9ydGVkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBQbGFuIEIgaXMgbm90IHN1cHBvcnRlZAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGU2YjFi
MDAzYTQxNmU3NzMyYTA2MGY5ZjVhODNmZjQ0NjA4ODZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT48L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIC8vIFBsYW4gQiBpcyBhIGxlZ2FjeSBmZWF0dXJlIHRo
YXQgc2hvdWxkIG5vdCBiZSBzdXBwb3J0ZWQgb24gYSBtb2Rlcm4KKyAgLy8gYnJvd3Nlci4gVG8g
cGFzcyB0aGlzIHRlc3QgeW91IG11c3QgZWl0aGVyIGlnbm9yZSBzZHBTZW1hbnRpY3MgYWx0b2dl
dGhlcgorICAvLyAoYW5kIGNvbnN0cnVjdCB3aXRoIFVuaWZpZWQgUGxhbiBkZXNwaXRlIHVzIGFz
a2luZyBmb3IgUGxhbiBCKSBvciB0aHJvdyBhbgorICAvLyBleGNlcHRpb24uCisgIGxldCBwYyA9
IG51bGw7CisgIHRyeSB7CisgICAgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe3NkcFNlbWFu
dGljczoicGxhbi1iIn0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Cisg
IH0gY2F0Y2ggKGUpIHsKKyAgICAvLyBUZXN0IHBhc3NlZCEKKyAgICByZXR1cm47CisgIH0KKyAg
Ly8gSWYgd2UgZGlkIG5vdCB0aHJvdywgd2UgbXVzdCBub3QgaGF2ZSBnb3R0ZW4gd2hhdCB3ZSBh
c2tlZCBmb3IuIElmCisgIC8vIHNkcFNlbWFudGljcyBpcyBub3QgcmVjb2duaXplZCBieSB0aGUg
YnJvd3NlciBpdCB3aWxsIGJlIHVuZGVmaW5lZCBoZXJlLgorICBhc3NlcnRfbm90X2VxdWFscyhw
Yy5nZXRDb25maWd1cmF0aW9uKCkuc2RwU2VtYW50aWNzLCAicGxhbi1iIik7Cit9LCAnUGxhbiBC
IGlzIG5vdCBzdXBwb3J0ZWQnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1yZWxheS1jYW52YXMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVsYXktY2Fu
dmFzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzdhNGFmOWExNGE5N2JmZGZhZWQ4
ODNhY2U4NzA1YzIxZTJlN2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVsYXkt
Y2FudmFzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBUd28gUGVl
ckNvbm5lY3Rpb25zIHJlbGF5aW5nIGEgY2FudmFzIHNvdXJjZSBhc3NlcnRfYXBwcm94X2VxdWFs
czogZXhwZWN0ZWQgMTgzLjYgKy8tIDIgYnV0IGdvdCAxODguODUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tcmVsYXktY2FudmFzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZWxheS1jYW52
YXMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTljZDA2ODIyMGQ2ZjBlYzJhOGE3N2UyMTVhNDA3
MDJmOTFlZTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVsYXktY2FudmFzLmh0
dHBzLmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+UmVs
YXkgY2FudmFzIHZpYSBQZWVyQ29ubmVjdGlvbnM8L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rp
b24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworLy8g
VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGNhbnZhcyBjYXB0dXJlIHdvcmtzIHJlbGF5ZWQgYmV0d2Vl
biBzZXZlcmFsIHBlZXIgY29ubmVjdGlvbnMuCisKK2Z1bmN0aW9uIEdyZWVuRnJhbWVXZWJHTCh3
aWR0aCwgaGVpZ2h0KSB7CisgIGNvbnN0IGNhbnZhcyA9CisgICAgICBPYmplY3QuYXNzaWduKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLCB7d2lkdGgsIGhlaWdodH0pOworICBjb25z
dCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnd2ViZ2wnKTsKKyAgaWYgKGN0eCA9PT0gbnVsbCkg
cmV0dXJuOworICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24gZHJhdyAoKSB7CisgICAg
Y3R4LmNsZWFyQ29sb3IoMC4wLCAxLjAsIDAuMCwgMS4wKTsKKyAgICBjdHguY2xlYXIoY3R4LkNP
TE9SX0JVRkZFUl9CSVQpOworICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShkcmF3KTsKKyAgfSk7
CisgIHJldHVybiBjYW52YXMuY2FwdHVyZVN0cmVhbSgpOworfQorCisKKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworCisgIC8vIEJ1aWxkIGEgY2hhaW4KKyAgLy8gY2FudmFzIC10cmFjay0+
IHBjMSAtbmV0d29yay0+IHBjUmVsYXlJbiAtdHJhY2stPgorICAvLyAgICAgICBwY1JlbGF5T3V0
IC1uZXR3b3JrLT4gcGMyIC10cmFjay0+IHZpZGVvCisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29u
c3QgcGNSZWxheUluID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGNSZWxheUluLmNsb3NlKCkpOworCisgIGNvbnN0IHBjUmVsYXlPdXQgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwY1JlbGF5T3V0LmNsb3Nl
KCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgLy8gQXR0YWNoIGNhbnZhcyB0byBwYzEuCisg
IGNvbnN0IHN0cmVhbSA9IEdyZWVuRnJhbWVXZWJHTCg2NDAsIDQ4MCk7CisgIGNvbnN0IFt0cmFj
a10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgIHBjMS5hZGRUcmFjayh0cmFjayk7CisKKyAgY29u
c3QgdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgIHYuYXV0b3BsYXkgPSB0
cnVlOworCisgIC8vIFNldHVwIHBjMS0+cGNSZWxheUluIHZpZGVvIHN0cmVhbS4KKyAgY29uc3Qg
aGF2ZVRyYWNrRXZlbnQxID0gbmV3IFByb21pc2UociA9PiBwY1JlbGF5SW4ub250cmFjayA9IHIp
OworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwY1JlbGF5SW4pOworICBhd2FpdCBwYzEu
c2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhd2FpdCBwY1JlbGF5SW4uc2V0UmVtb3RlRGVzY3Jp
cHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBhd2FpdCBwY1JlbGF5SW4uc2V0TG9jYWxE
ZXNjcmlwdGlvbigpOworICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGNSZWxheUlu
LmxvY2FsRGVzY3JpcHRpb24pOworCisgIC8vIFBsdWcgb3V0cHV0IG9mIHBjUmVsYXlJbiB0byBw
Y1JlbGF5T3V0LgorICBwY1JlbGF5T3V0LmFkZFRyYWNrKChhd2FpdCBoYXZlVHJhY2tFdmVudDEp
LnRyYWNrKTsKKworICAvLyBTZXR1cCBwY1JlbGF5T3V0LT5wYzIgdmlkZW8gc3RyZWFtLgorICBj
b25zdCBoYXZlVHJhY2tFdmVudDIgPSBuZXcgUHJvbWlzZShyID0+IHBjMi5vbnRyYWNrID0gcik7
CisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwY1JlbGF5T3V0LCBwYzIpOworICBhd2FpdCBwY1Jl
bGF5T3V0LnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHBjUmVsYXlPdXQubG9jYWxEZXNjcmlwdGlvbik7CisgIGF3YWl0IHBjMi5zZXRMb2Nh
bERlc2NyaXB0aW9uKCk7CisgIGF3YWl0IHBjUmVsYXlPdXQuc2V0UmVtb3RlRGVzY3JpcHRpb24o
cGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgIC8vIERpc3BsYXkgcGMyIHJlY2VpdmVkIHRyYWNr
IGluIHZpZGVvIGVsZW1lbnQuCisgIHYuc3JjT2JqZWN0ID0gbmV3IE1lZGlhU3RyZWFtKFsoYXdh
aXQgaGF2ZVRyYWNrRXZlbnQyKS50cmFja10pOworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHYu
b25sb2FkZWRtZXRhZGF0YSA9IHIpOworCisgIC8vIFdhaXQgc29tZSB0aW1lIHRvIGVuc3VyZSB0
aGF0IGZyYW1lcyBnb3QgdGhyb3VnaC4KKyAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0
LnN0ZXBfdGltZW91dChyZXNvbHZlLCAxMDAwKSk7CisKKyAgLy8gVXNlcyBIZWxwZXIuanMgR2V0
VmlkZW9TaWduYWwgdG8gcXVlcnkgfHZ8IHBpeGVsIHZhbHVlIGF0IGEgY2VydGFpbiBwb3NpdGlv
bi4KKyAgY29uc3QgcGl4ZWxWYWx1ZSA9IGdldFZpZGVvU2lnbmFsKHYpOworCisgIC8vIEV4cGVj
dGVkIHZhbHVlIGNvbXB1dGVkIGJhc2VkIG9uIEdldFZpZGVvU2lnbmFsIGNvZGUsIHdoaWNoIHRh
a2VzIGdyZWVuIHBpeGVsIGRhdGEKKyAgLy8gd2l0aCBjb2VmZmljaWVudCAwLjcyLgorICBhc3Nl
cnRfYXBwcm94X2VxdWFscyhwaXhlbFZhbHVlLCAwLjcyKjI1NSwgMik7CisgIH0sICJUd28gUGVl
ckNvbm5lY3Rpb25zIHJlbGF5aW5nIGEgY2FudmFzIHNvdXJjZSIpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdGUtdHJhY2stbXV0ZS5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1yZW1vdGUtdHJhY2stbXV0ZS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
YzMxOTkwZDcwMDlmMDgyM2M3ZTdiYmUyOWViNDcwNjkxMzY1ZDg0MS4uMWQ0Yjc2ZDJkYzcxY2Mz
NjQ1OGI2NzhlZDcyMGNjMDYzZGVjNjEzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3Rl
LXRyYWNrLW11dGUuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZS10
cmFjay1tdXRlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDkgQEAKIAogSGFybmVzcyBF
cnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCiAKLUZBSUwgb250cmFjazogdHJhY2sgZ29l
cyBmcm9tIG11dGVkIHRvIHVubXV0ZWQgYXNzZXJ0X3RydWU6IHRyYWNrIGlzIG11dGVkIGluIG9u
dHJhY2sgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLVRJTUVPVVQgQ2hhbmdpbmcgdHJhbnNjZWl2
ZXIgZGlyZWN0aW9uIHRvICdpbmFjdGl2ZScgbXV0ZXMgdGhlIHJlbW90ZSB0cmFjayBUZXN0IHRp
bWVkIG91dAotTk9UUlVOIENoYW5naW5nIHRyYW5zY2VpdmVyIGRpcmVjdGlvbiB0byAnc2VuZHJl
Y3YnIHVubXV0ZXMgdGhlIHJlbW90ZSB0cmFjawotTk9UUlVOIHBjLmNsb3NlKCkgbXV0ZXMgcmVt
b3RlIHRyYWNrcworUEFTUyBvbnRyYWNrOiB0cmFjayBnb2VzIGZyb20gbXV0ZWQgdG8gdW5tdXRl
ZAorUEFTUyBDaGFuZ2luZyB0cmFuc2NlaXZlciBkaXJlY3Rpb24gdG8gJ2luYWN0aXZlJyBtdXRl
cyB0aGUgcmVtb3RlIHRyYWNrCitGQUlMIENoYW5naW5nIHRyYW5zY2VpdmVyIGRpcmVjdGlvbiB0
byAnc2VuZHJlY3YnIHVubXV0ZXMgdGhlIHJlbW90ZSB0cmFjayBhc3NlcnRfdHJ1ZTogTm90IGV4
cGVjdGluZyBldmVudCwgYnV0IGdvdCB1bm11dGUgZXZlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK1RJTUVPVVQgdHJhbnNjZWl2ZXIuc3RvcCgpIG9uIG9uZSBzaWRlICh3aXRob3V0IHJlbmVn
b3RpYXRpb24pIGNhdXNlcyBtdXRlIGV2ZW50cyBvbiB0aGUgb3RoZXIgVGVzdCB0aW1lZCBvdXQK
K05PVFJVTiBwYy5jbG9zZSgpIG9uIG9uZSBzaWRlIGNhdXNlcyBtdXRlIGV2ZW50cyBvbiB0aGUg
b3RoZXIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA2
MmU0MzMwMGYyMTMxYzdjMzYyYjJhMzkzMDM2ZjhhNjZiNDExYWYxLi41MzUxMDkzOTNmZWI4ODgz
MzU0MGZhMDMzMjFlOWQyMWY5NzVlNjFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0
SWNlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDcgQEAgRkFJTCByZXN0YXJ0SWNlKCkgZG9lcyBub3Qg
dHJpZ2dlciBuZWdvdGlhdGlvbiBhaGVhZCBvZiBpbml0aWFsIG5lZ290aWF0aW9uIGFzc2UKIFBB
U1MgcmVzdGFydEljZSgpIGhhcyBubyBlZmZlY3Qgb24gaW5pdGlhbCBuZWdvdGlhdGlvbgogUEFT
UyByZXN0YXJ0SWNlKCkgZmlyZXMgbmVnb3RpYXRpb25uZWVkZWQgYWZ0ZXIgaW5pdGlhbCBuZWdv
dGlhdGlvbgogUEFTUyByZXN0YXJ0SWNlKCkgY2F1c2VzIGZyZXNoIHVmcmFncworUEFTUyByZXN0
YXJ0SWNlKCkgcmV0YWlucyBkdGxzIHRyYW5zcG9ydHMKIFBBU1MgcmVzdGFydEljZSgpIHdvcmtz
IGluIGhhdmUtbG9jYWwtb2ZmZXIKIFBBU1MgcmVzdGFydEljZSgpIHdvcmtzIGluIGluaXRpYWwg
aGF2ZS1sb2NhbC1vZmZlcgogUEFTUyByZXN0YXJ0SWNlKCkgd29ya3MgaW4gaGF2ZS1yZW1vdGUt
b2ZmZXIKQEAgLTEyLDQgKzEzLDE3IEBAIFBBU1MgcmVzdGFydEljZSgpIGlzIHNhdGlzZmllZCBi
eSByZW1vdGUgSUNFIHJlc3RhcnQKIFBBU1MgcmVzdGFydEljZSgpIHRydW1wcyB7aWNlUmVzdGFy
dDogZmFsc2V9CiBQQVNTIHJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByb2xsYmFjawogRkFJTCByZXN0
YXJ0SWNlKCkgc3Vydml2ZXMgcmVtb3RlIG9mZmVyIGNvbnRhaW5pbmcgcGFydGlhbCByZXN0YXJ0
IGFzc2VydF9mYWxzZTogUmVzdGFydGVkIDIgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1Mg
cmVzdGFydEljZSgpIGhhcyBubyBlZmZlY3Qgb24gaW5pdGlhbCBuZWdvdGlhdGlvbiAocGVyZmVj
dCBuZWdvdGlhdGlvbikKK1BBU1MgcmVzdGFydEljZSgpIGZpcmVzIG5lZ290aWF0aW9ubmVlZGVk
IGFmdGVyIGluaXRpYWwgbmVnb3RpYXRpb24gKHBlcmZlY3QgbmVnb3RpYXRpb24pCitQQVNTIHJl
c3RhcnRJY2UoKSBjYXVzZXMgZnJlc2ggdWZyYWdzIChwZXJmZWN0IG5lZ290aWF0aW9uKQorUEFT
UyByZXN0YXJ0SWNlKCkgcmV0YWlucyBkdGxzIHRyYW5zcG9ydHMgKHBlcmZlY3QgbmVnb3RpYXRp
b24pCitQQVNTIHJlc3RhcnRJY2UoKSB3b3JrcyBpbiBoYXZlLWxvY2FsLW9mZmVyIChwZXJmZWN0
IG5lZ290aWF0aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgd29ya3MgaW4gaW5pdGlhbCBoYXZlLWxv
Y2FsLW9mZmVyIChwZXJmZWN0IG5lZ290aWF0aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgd29ya3Mg
aW4gaGF2ZS1yZW1vdGUtb2ZmZXIgKHBlcmZlY3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3RhcnRJ
Y2UoKSBkb2VzIG5vdGhpbmcgaW4gaW5pdGlhbCBoYXZlLXJlbW90ZS1vZmZlciAocGVyZmVjdCBu
ZWdvdGlhdGlvbikKK1BBU1MgcmVzdGFydEljZSgpIHN1cnZpdmVzIHJlbW90ZSBvZmZlciAocGVy
ZmVjdCBuZWdvdGlhdGlvbikKK1BBU1MgcmVzdGFydEljZSgpIGlzIHNhdGlzZmllZCBieSByZW1v
dGUgSUNFIHJlc3RhcnQgKHBlcmZlY3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3RhcnRJY2UoKSB0
cnVtcHMge2ljZVJlc3RhcnQ6IGZhbHNlfSAocGVyZmVjdCBuZWdvdGlhdGlvbikKK1BBU1MgcmVz
dGFydEljZSgpIHN1cnZpdmVzIHJvbGxiYWNrIChwZXJmZWN0IG5lZ290aWF0aW9uKQorRkFJTCBy
ZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcmVtb3RlIG9mZmVyIGNvbnRhaW5pbmcgcGFydGlhbCByZXN0
YXJ0IChwZXJmZWN0IG5lZ290aWF0aW9uKSBhc3NlcnRfZmFsc2U6IFJlc3RhcnRlZCAyIGV4cGVj
dGVkIGZhbHNlIGdvdCB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2Uu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2UuaHR0cHMuaHRtbAppbmRleCA4Zjhj
NjYxYTQxZGQwYTFjYjhmNTZiYWY4MGY2ZDNiNzk3ZjllMjI5Li4wZTRlY2Y2NGM4NTNmY2U5ZDRl
NGE2Njg1NmYyYTA2MGYyYmRiYjM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNl
Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy5odG1sCkBAIC0x
NiwxNSArMTYsMzYgQEAgZnVuY3Rpb24gZ2V0TGluZXMoc2RwLCBzdGFydHNXaXRoKSB7CiBjb25z
dCBnZXRVZnJhZ3MgPSAoe3NkcH0pID0+IGdldExpbmVzKHNkcCwgImE9aWNlLXVmcmFnOiIpOwog
Y29uc3QgZ2V0UHdkcyA9ICh7c2RwfSkgPT4gZ2V0TGluZXMoc2RwLCAiYT1pY2UtcHdkOiIpOwog
Ci1hc3luYyBmdW5jdGlvbiBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMikg
ewotICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIo
KSk7Citjb25zdCBuZWdvdGlhdG9ycyA9IFsKKyAgeworICAgIHRhZzogIiIsCisgICAgYXN5bmMg
c2V0T2ZmZXIocGMpIHsKKyAgICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQg
cGMuY3JlYXRlT2ZmZXIoKSk7CisgICAgfSwKKyAgICBhc3luYyBzZXRBbnN3ZXIocGMpIHsKKyAg
ICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMuY3JlYXRlQW5zd2VyKCkp
OworICAgIH0sCisgIH0sCisgIHsKKyAgICB0YWc6ICIgKHBlcmZlY3QgbmVnb3RpYXRpb24pIiwK
KyAgICBhc3luYyBzZXRPZmZlcihwYykgeworICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlw
dGlvbigpOworICAgIH0sCisgICAgYXN5bmMgc2V0QW5zd2VyKHBjKSB7CisgICAgICBhd2FpdCBw
Yy5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgICAgfSwKKyAgfSwKK107CisKK2FzeW5jIGZ1bmN0
aW9uIGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKSB7
CisgIGF3YWl0IG5lZ290aWF0b3Iuc2V0T2ZmZXIocGMxKTsKICAgYXdhaXQgcGMyLnNldFJlbW90
ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgYXdhaXQgcGMyLnNldExvY2Fs
RGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsKKyAgYXdhaXQgbmVnb3RpYXRv
ci5zZXRBbnN3ZXIocGMyKTsKICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5s
b2NhbERlc2NyaXB0aW9uKTsgLy8gRW5kIG9uIHBjMS4gTm8gcmFjZQogfQogCi1hc3luYyBmdW5j
dGlvbiBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25TZWNvbmQocGMxLCBwYzIpIHsKLSAgYXdhaXQg
cGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworYXN5bmMg
ZnVuY3Rpb24gZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uU2Vjb25kKHBjMSwgcGMyLCBuZWdvdGlh
dG9yKSB7CisgIGF3YWl0IG5lZ290aWF0b3Iuc2V0T2ZmZXIocGMxKTsKICAgYXdhaXQgcGMyLnNl
dFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKICAgYXdhaXQgcGMxLnNl
dFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CiAgIGF3YWl0IHBj
Mi5zZXRMb2NhbERlc2NyaXB0aW9uKHBjMS5yZW1vdGVEZXNjcmlwdGlvbik7IC8vIEVuZCBvbiBw
YzIuIE5vIHJhY2UKQEAgLTY1LDMzMCArODYsMzkwIEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOwogfSwgInJlc3Rh
cnRJY2UoKSBkb2VzIG5vdCB0cmlnZ2VyIG5lZ290aWF0aW9uIGFoZWFkIG9mIGluaXRpYWwgbmVn
b3RpYXRpb24iKTsKIAotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7
Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsK
LSAgcGMxLnJlc3RhcnRJY2UoKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmly
c3QocGMxLCBwYzIpOwotICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7
Ci19LCAicmVzdGFydEljZSgpIGhhcyBubyBlZmZlY3Qgb24gaW5pdGlhbCBuZWdvdGlhdGlvbiIp
OwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKLSAgYXdhaXQg
bmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBl
eGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0gIHBjMS5yZXN0YXJ0SWNl
KCk7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSBy
KTsKLX0sICJyZXN0YXJ0SWNlKCkgZmlyZXMgbmVnb3RpYXRpb25uZWVkZWQgYWZ0ZXIgaW5pdGlh
bCBuZWdvdGlhdGlvbiIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVk
aW8iKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwot
Ci0gIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsK
LSAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwot
ICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0gIGFzc2Vy
dF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVm
cmFnMSwgImNvbnRyb2wgMSIpOwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMy
LmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzIsICJjb250cm9sIDIiKTsKLQotICBwYzEu
cmVzdGFydEljZSgpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9u
bmVlZGVkID0gcik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwg
cGMyKTsKLSAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRp
b24pOwotICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlv
bik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVm
cmFnIDEgY2hhbmdlZCIpOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBv
bGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlv
bk5lZWRlZCh0LCBwYzEpOwotCi0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0
KHBjMSwgcGMyKTsKLSAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERl
c2NyaXB0aW9uKVswXSwgbmV3VWZyYWcxLCAiVW5jaGFuZ2VkIDEiKTsKLSAgYXNzZXJ0X3VmcmFn
c19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgbmV3VWZyYWcyLCAi
VW5jaGFuZ2VkIDIiKTsKLX0sICJyZXN0YXJ0SWNlKCkgY2F1c2VzIGZyZXNoIHVmcmFncyIpOwot
Ci1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKLSAgYXdhaXQgbmV3
IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBleGNo
YW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0KLSAgY29uc3QgW29sZFVmcmFn
MV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBbb2xkVWZyYWcy
XSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0KLSAgYXdhaXQgcGMxLnNldExv
Y2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOwotICBwYzEucmVzdGFydElj
ZSgpOwotICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRp
b24pOwotICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5z
d2VyKCkpOwotICAvLyBTZXZlcmFsIHRlc3RzIGluIHRoaXMgZmlsZSBpbml0aWFsaXplcyB0aGUg
b25uZWdvdGlhdGlvbm5lZWRlZCBsaXN0ZW5lcgotICAvLyBiZWZvcmUgdGhlIHNldExvY2FsRGVz
Y3JpcHRpb24oKSBvciBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIHRoYXQgd2UgZXhwZWN0Ci0gIC8v
IHRvIHRyaWdnZXIgbmVnb3RpYXRpb24gbmVlZGVkLiBUaGlzIGFsbG93cyBDaHJvbWUgdG8gZXhl
cmNpc2UgdGhlc2UgdGVzdHMKLSAgLy8gd2l0aG91dCB0aW1pbmcgb3V0IGR1ZSB0byBhIGJ1ZyB0
aGF0IGNhdXNlcyBvbm5lZ290aWF0aW9ubmVlZGVkIHRvIGZpcmUgdG9vCi0gIC8vIGVhcmx5Lgot
ICAvLyBUT0RPKGh0dHBzOi8vY3JidWcuY29tLzk4NTc5Nyk6IE9uY2UgQ2hyb21lIGRvZXMgbm90
IGZpcmUgT05OIHRvbyBlYXJseSwKLSAgLy8gc2ltcGx5IGRvICJhd2FpdCBuZXcgUHJvbWlzZSgu
Li4pIiBpbnN0ZWFkIG9mCi0gIC8vICJhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UiIGhl
cmUgYW5kIGluIG90aGVyIHRlc3RzIGluIHRoaXMgZmlsZS4KLSAgY29uc3QgbmVnb3RpYXRpb25O
ZWVkZWRQcm9taXNlID0KLSAgICAgIG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25u
ZWVkZWQgPSByKTsKLSAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERl
c2NyaXB0aW9uKTsKLSAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERl
c2NyaXB0aW9uKVswXSwgb2xkVWZyYWcxLCAiVW5jaGFuZ2VkIDEiKTsKLSAgYXNzZXJ0X3VmcmFn
c19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcyLCAi
VW5jaGFuZ2VkIDIiKTsKLSAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOwotICBhd2Fp
dCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0gIGNvbnN0IFtuZXdV
ZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW25ld1Vm
cmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBhc3NlcnRfdWZyYWdz
X25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKLSAg
YXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBj
aGFuZ2VkIik7Ci0gIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKLX0s
ICJyZXN0YXJ0SWNlKCkgd29ya3MgaW4gaGF2ZS1sb2NhbC1vZmZlciIpOwotCi1wcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwot
ICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwot
Ci0gIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9
PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNj
cmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7Ci0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0g
IGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0g
IGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7
Ci0gIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9Ci0gICAgICBuZXcgUHJvbWlzZShy
ID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IHBjMS5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtvbGRVZnJhZzFdID0g
Z2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW29sZFVmcmFnMl0gPSBn
ZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRl
ZFByb21pc2U7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMy
KTsKLSAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24p
OwotICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7
Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFn
IDEgY2hhbmdlZCIpOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRV
ZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5l
ZWRlZCh0LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSB3b3JrcyBpbiBpbml0aWFsIGhhdmUtbG9j
YWwtb2ZmZXIiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7
Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsK
LSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwotCi0gIGNv
bnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29u
c3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotCi0gIGF3
YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVPZmZlcigpKTsKLSAg
YXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAg
cGMxLnJlc3RhcnRJY2UoKTsKLSAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0
IHBjMS5jcmVhdGVBbnN3ZXIoKSk7Ci0gIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9
Ci0gICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0g
IGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHBjMi5yZW1vdGVEZXNjcmlwdGlvbik7IC8v
IEVuZCBvbiBwYzEuIE5vIHJhY2UKLSAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBj
MS5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcxLCAiVW5jaGFuZ2VkIDEiKTsKLSAgYXNz
ZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xk
VWZyYWcyLCAiVW5jaGFuZ2VkIDIiKTsKLSAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNl
OwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0gIGNv
bnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29u
c3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBhc3Nl
cnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5n
ZWQiKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAi
dWZyYWcgMiBjaGFuZ2VkIik7Ci0gIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwg
cGMxKTsKLX0sICJyZXN0YXJ0SWNlKCkgd29ya3MgaW4gaGF2ZS1yZW1vdGUtb2ZmZXIiKTsKLQot
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKLSAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5j
bG9zZSgpKTsKLQotICBwYzIuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0gIGF3YWl0IHBjMi5z
ZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVPZmZlcigpKTsKLSAgYXdhaXQgcGMx
LnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAgcGMxLnJlc3Rh
cnRJY2UoKTsKLSAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVh
dGVBbnN3ZXIoKSk7Ci0gIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHBjMi5yZW1vdGVE
ZXNjcmlwdGlvbik7IC8vIEVuZCBvbiBwYzEuIE5vIHJhY2UKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdv
dGlhdGlvbk5lZWRlZCh0LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSBkb2VzIG5vdGhpbmcgaW4g
aW5pdGlhbCBoYXZlLXJlbW90ZS1vZmZlciIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
Ci0gIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFu
c2NlaXZlcigiYXVkaW8iKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlh
dGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChw
YzEsIHBjMik7Ci0KLSAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVz
Y3JpcHRpb24pOwotICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNj
cmlwdGlvbik7Ci0KLSAgcGMxLnJlc3RhcnRJY2UoKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9
PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBjb25zdCBuZWdvdGlhdGlvbk5lZWRl
ZFByb21pc2UgPQotICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRl
ZCA9IHIpOwotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25TZWNvbmQocGMyLCBwYzEp
OwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24p
WzBdLCBvbGRVZnJhZzEsICJub3RoaW5nIHlldCAxIik7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxz
KGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMiwgIm5vdGhpbmcg
eWV0IDIiKTsKLSAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOwotICBhd2FpdCBleGNo
YW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0gIGNvbnN0IFtuZXdVZnJhZzFd
ID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW25ld1VmcmFnMl0g
PSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBhc3NlcnRfdWZyYWdzX25vdF9l
cXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKLSAgYXNzZXJ0
X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMiwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2Vk
Iik7Ci0gIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKLX0sICJyZXN0
YXJ0SWNlKCkgc3Vydml2ZXMgcmVtb3RlIG9mZmVyIik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5j
bG9zZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFk
ZFRyYW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5l
Z290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZp
cnN0KHBjMSwgcGMyKTsKLQotICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9j
YWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2Nh
bERlc2NyaXB0aW9uKTsKKy8vIFJ1biByZW1haW5pbmcgdGVzdHMgdHdpY2U6IG9uY2UgZm9yIGVh
Y2ggbmVnb3RpYXRvcgorCitmb3IgKGNvbnN0IG5lZ290aWF0b3Igb2YgbmVnb3RpYXRvcnMpIHsK
KyAgY29uc3Qge3RhZ30gPSBuZWdvdGlhdG9yOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBw
YzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
MS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAg
IHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+
IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAgcGMxLnJlc3RhcnRJY2UoKTsKKyAg
ICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRv
cik7CisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworICB9LCBg
cmVzdGFydEljZSgpIGhhcyBubyBlZmZlY3Qgb24gaW5pdGlhbCBuZWdvdGlhdGlvbiR7dGFnfWAp
OworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8i
KTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0g
cik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5l
Z290aWF0b3IpOworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgbmV3IFByb21pc2Uo
ciA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICB9LCBgcmVzdGFydEljZSgpIGZp
cmVzIG5lZ290aWF0aW9ubmVlZGVkIGFmdGVyIGluaXRpYWwgbmVnb3RpYXRpb24ke3RhZ31gKTsK
KworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7
CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290
aWF0b3IpOworCisgICAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVz
Y3JpcHRpb24pOworICAgIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERl
c2NyaXB0aW9uKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEs
IHBjMiwgbmVnb3RpYXRvcik7CisgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBj
MS5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcxLCAiY29udHJvbCAxIik7CisgICAgYXNz
ZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xk
VWZyYWcyLCAiY29udHJvbCAyIik7CisKKyAgICBwYzEucmVzdGFydEljZSgpOworICAgIGF3YWl0
IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2Fp
dCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7Cisg
ICAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwor
ICAgIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsK
KyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJh
ZyAxIGNoYW5nZWQiKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBv
bGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0
aW9uTmVlZGVkKHQsIHBjMSk7CisKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25G
aXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0
VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgbmV3VWZyYWcxLCAiVW5jaGFuZ2VkIDEi
KTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRp
b24pWzBdLCBuZXdVZnJhZzIsICJVbmNoYW5nZWQgMiIpOworICB9LCBgcmVzdGFydEljZSgpIGNh
dXNlcyBmcmVzaCB1ZnJhZ3Mke3RhZ31gKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgICAgY29uc3QgY29uZmlnID0ge2J1bmRsZVBvbGljeTogIm1heC1idW5kbGUifTsKKyAgICBj
b25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKTsKKyAgICBjb25zdCBwYzIg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKwor
ICAgIHBjMS5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gcGMyLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRp
ZGF0ZSk7CisgICAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZSA9PiBwYzEuYWRkSWNlQ2FuZGlkYXRl
KGUuY2FuZGlkYXRlKTsKKworICAgIC8vIFNlZSB0aGUgZXhwbGFuYXRpb24gYmVsb3cgYWJvdXQg
Q2hyb21lJ3Mgb25uZWdvdGlhdGlvbm5lZWRlZCBmaXJpbmcKKyAgICAvLyB0b28gZWFybHkuCisg
ICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlMSA9CisgICAgICAgIG5ldyBQcm9taXNl
KHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBwYzEuYWRkVHJhbnNjZWl2
ZXIoInZpZGVvIik7CisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0
IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTE7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dl
ckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworCisgICAgY29uc3QgW3ZpZGVvVGMs
IGF1ZGlvVGNdID0gcGMxLmdldFRyYW5zY2VpdmVycygpOworICAgIGNvbnN0IFt2aWRlb1RwLCBh
dWRpb1RwXSA9CisgICAgICAgIHBjMS5nZXRUcmFuc2NlaXZlcnMoKS5tYXAodGMgPT4gdGMuc2Vu
ZGVyLnRyYW5zcG9ydCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCku
bGVuZ3RoLCAyLCAndHJhbnNjZWl2ZXIgY291bnQnKTsKKworICAgIC8vIE9uIENocm9tZSwgaXQg
aXMgcG9zc2libGUgKGxpa2VseSwgZXZlbikgdGhhdCB2aWRlb1RjLnNlbmRlci50cmFuc3BvcnQu
c3RhdGUKKyAgICAvLyB3aWxsIGJlICdjb25uZWN0ZWQnIGJ5IHRoZSB0aW1lIHdlIGdldCBoZXJl
LiAgV2UnbGwgcmFjZSAyIHByb21pc2VzIGhlcmU6CisgICAgLy8gMS4gUmVzb2x2ZSBhZnRlciBv
bnN0YXRlY2hhbmdlIGlzIGNhbGxlZCB3aXRoIGNvbm5lY3RlZCBzdGF0ZS4KKyAgICAvLyAyLiBJ
ZiBhbHJlYWR5IGNvbm5lY3RlZCwgcmVzb2x2ZSBpbW1lZGlhdGVseS4KKyAgICBhd2FpdCBQcm9t
aXNlLnJhY2UoWworICAgICAgbmV3IFByb21pc2UociA9PiB2aWRlb1RjLnNlbmRlci50cmFuc3Bv
cnQub25zdGF0ZWNoYW5nZSA9CisgICAgICAgICgpID0+IHZpZGVvVGMuc2VuZGVyLnRyYW5zcG9y
dC5zdGF0ZSA9PSAiY29ubmVjdGVkIiAmJiByKCkpLAorICAgICAgbmV3IFByb21pc2UociA9PiB2
aWRlb1RjLnNlbmRlci50cmFuc3BvcnQuc3RhdGUgPT0gImNvbm5lY3RlZCIgJiYgcigpKQorICAg
IF0pOworICAgIGFzc2VydF9lcXVhbHModmlkZW9UYy5zZW5kZXIudHJhbnNwb3J0LnN0YXRlLCAi
Y29ubmVjdGVkIik7CisKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChw
YzEsIHBjMiwgbmVnb3RpYXRvcik7CisgICAgYXNzZXJ0X2VxdWFscyh2aWRlb1RwLCBwYzEuZ2V0
VHJhbnNjZWl2ZXJzKClbMF0uc2VuZGVyLnRyYW5zcG9ydCwKKyAgICAgICAgICAgICAgICAgICdv
ZmZlci9hbnN3ZXIgcmV0YWlucyBkdGxzIHRyYW5zcG9ydCcpOworICAgIGFzc2VydF9lcXVhbHMo
YXVkaW9UcCwgcGMxLmdldFRyYW5zY2VpdmVycygpWzFdLnNlbmRlci50cmFuc3BvcnQsCisgICAg
ICAgICAgICAgICAgICAnb2ZmZXIvYW5zd2VyIHJldGFpbnMgZHRscyB0cmFuc3BvcnQnKTsKKwor
ICAgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTIgPQorICAgICAgICBuZXcgUHJvbWlz
ZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAgcGMxLnJlc3RhcnRJY2Uo
KTsKKyAgICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UyOworICAgIGF3YWl0IGV4Y2hh
bmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKworICAgIGNv
bnN0IFtuZXdWaWRlb1RwLCBuZXdBdWRpb1RwXSA9CisgICAgICAgIHBjMS5nZXRUcmFuc2NlaXZl
cnMoKS5tYXAodGMgPT4gdGMuc2VuZGVyLnRyYW5zcG9ydCk7CisgICAgYXNzZXJ0X2VxdWFscyh2
aWRlb1RwLCBuZXdWaWRlb1RwLCAnaWNlIHJlc3RhcnQgcmV0YWlucyBkdGxzIHRyYW5zcG9ydCcp
OworICAgIGFzc2VydF9lcXVhbHMoYXVkaW9UcCwgbmV3QXVkaW9UcCwgJ2ljZSByZXN0YXJ0IHJl
dGFpbnMgZHRscyB0cmFuc3BvcnQnKTsKKyAgfSwgYHJlc3RhcnRJY2UoKSByZXRhaW5zIGR0bHMg
dHJhbnNwb3J0cyR7dGFnfWApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBj
b25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRU
cmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5l
Z290aWF0aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9u
Rmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworCisgICAgY29uc3QgW29sZFVmcmFnMV0gPSBn
ZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtvbGRVZnJhZzJdID0g
Z2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAgIGF3YWl0IG5lZ290aWF0b3Iu
c2V0T2ZmZXIocGMxKTsKKyAgICBwYzEucmVzdGFydEljZSgpOworICAgIGF3YWl0IHBjMi5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXdhaXQgbmVnb3Rp
YXRvci5zZXRBbnN3ZXIocGMyKTsKKyAgICAvLyBTZXZlcmFsIHRlc3RzIGluIHRoaXMgZmlsZSBp
bml0aWFsaXplcyB0aGUgb25uZWdvdGlhdGlvbm5lZWRlZCBsaXN0ZW5lcgorICAgIC8vIGJlZm9y
ZSB0aGUgc2V0TG9jYWxEZXNjcmlwdGlvbigpIG9yIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgdGhh
dCB3ZSBleHBlY3QKKyAgICAvLyB0byB0cmlnZ2VyIG5lZ290aWF0aW9uIG5lZWRlZC4gVGhpcyBh
bGxvd3MgQ2hyb21lIHRvIGV4ZXJjaXNlIHRoZXNlIHRlc3RzCisgICAgLy8gd2l0aG91dCB0aW1p
bmcgb3V0IGR1ZSB0byBhIGJ1ZyB0aGF0IGNhdXNlcyBvbm5lZ290aWF0aW9ubmVlZGVkIHRvIGZp
cmUgdG9vCisgICAgLy8gZWFybHkuCisgICAgLy8gVE9ETyhodHRwczovL2NyYnVnLmNvbS85ODU3
OTcpOiBPbmNlIENocm9tZSBkb2VzIG5vdCBmaXJlIE9OTiB0b28gZWFybHksCisgICAgLy8gc2lt
cGx5IGRvICJhd2FpdCBuZXcgUHJvbWlzZSguLi4pIiBpbnN0ZWFkIG9mCisgICAgLy8gImF3YWl0
IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSIgaGVyZSBhbmQgaW4gb3RoZXIgdGVzdHMgaW4gdGhp
cyBmaWxlLgorICAgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9CisgICAgICAgIG5l
dyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBw
YzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGFzc2Vy
dF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVm
cmFnMSwgIlVuY2hhbmdlZCAxIik7CisgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdz
KHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcyLCAiVW5jaGFuZ2VkIDIiKTsKKyAg
ICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2U7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZl
ckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGNvbnN0IFtuZXdV
ZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbbmV3
VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X3Vm
cmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7
CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZy
YWcgMiBjaGFuZ2VkIik7CisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBw
YzEpOworICB9LCBgcmVzdGFydEljZSgpIHdvcmtzIGluIGhhdmUtbG9jYWwtb2ZmZXIke3RhZ31g
KTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlv
Iik7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOworICAgIGF3YWl0IG5lZ290aWF0b3Iuc2V0T2ZmZXIocGMxKTsKKyAgICBwYzEucmVzdGFy
dEljZSgpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNj
cmlwdGlvbik7CisgICAgYXdhaXQgbmVnb3RpYXRvci5zZXRBbnN3ZXIocGMyKTsKKyAgICBjb25z
dCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQorICAgICAgICBuZXcgUHJvbWlzZShyID0+IHBj
MS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbb2xkVWZyYWcxXSA9IGdl
dFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW29sZFVmcmFnMl0gPSBn
ZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGF3YWl0IG5lZ290aWF0aW9uTmVl
ZGVkUHJvbWlzZTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEs
IHBjMiwgbmVnb3RpYXRvcik7CisgICAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMx
LmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBj
Mi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZy
YWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKKyAgICBhc3NlcnRfdWZyYWdzX25v
dF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKKyAgICBh
d2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CisgIH0sIGByZXN0YXJ0SWNl
KCkgd29ya3MgaW4gaW5pdGlhbCBoYXZlLWxvY2FsLW9mZmVyJHt0YWd9YCk7CisKKyAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0
IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2Fp
dCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisK
KyAgICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7
CisgICAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24p
OworCisgICAgYXdhaXQgbmVnb3RpYXRvci5zZXRPZmZlcihwYzIpOworICAgIGF3YWl0IHBjMS5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgcGMxLnJlc3Rh
cnRJY2UoKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNy
ZWF0ZUFuc3dlcigpKTsKKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQorICAg
ICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAg
YXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ocGMyLnJlbW90ZURlc2NyaXB0aW9uKTsgLy8g
RW5kIG9uIHBjMS4gTm8gcmFjZQorICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhw
YzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMSwgIlVuY2hhbmdlZCAxIik7CisgICAg
YXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwg
b2xkVWZyYWcyLCAiVW5jaGFuZ2VkIDIiKTsKKyAgICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFBy
b21pc2U7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIs
IG5lZ290aWF0b3IpOworICAgIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2Nh
bERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9j
YWxEZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwg
b2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1
YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7CisgICAgYXdhaXQg
YXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworICB9LCBgcmVzdGFydEljZSgpIHdv
cmtzIGluIGhhdmUtcmVtb3RlLW9mZmVyJHt0YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNv
bnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwor
CisgICAgcGMyLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0IG5lZ290aWF0b3Iu
c2V0T2ZmZXIocGMyKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxv
Y2FsRGVzY3JpcHRpb24pOworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgcGMyLnNl
dFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVBbnN3ZXIoKSk7CisgICAgYXdhaXQg
cGMxLnNldExvY2FsRGVzY3JpcHRpb24ocGMyLnJlbW90ZURlc2NyaXB0aW9uKTsgLy8gRW5kIG9u
IHBjMS4gTm8gcmFjZQorICAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMx
KTsKKyAgfSwgYHJlc3RhcnRJY2UoKSBkb2VzIG5vdGhpbmcgaW4gaW5pdGlhbCBoYXZlLXJlbW90
ZS1vZmZlciR7dGFnfWApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFu
c2NlaXZlcigiYXVkaW8iKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290
aWF0aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmly
c3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworCisgICAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRV
ZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0
VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAgIHBjMS5yZXN0YXJ0SWNlKCk7Cisg
ICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwor
ICAgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9CisgICAgICAgIG5ldyBQcm9taXNl
KHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5zd2VyRW5kT25TZWNvbmQocGMyLCBwYzEsIG5lZ290aWF0b3IpOworICAgIGFzc2VydF91
ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFn
MSwgIm5vdGhpbmcgeWV0IDEiKTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3Mo
cGMyLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzIsICJub3RoaW5nIHlldCAyIik7Cisg
ICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOworICAgIGF3YWl0IGV4Y2hhbmdlT2Zm
ZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBjb25zdCBbbmV3
VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW25l
d1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGFzc2VydF91
ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIp
OworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzIsIG9sZFVmcmFnMiwgInVm
cmFnIDIgY2hhbmdlZCIpOworICAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwg
cGMxKTsKKyAgfSwgYHJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByZW1vdGUgb2ZmZXIke3RhZ31gKTsK
KworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7
CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIp
OworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdv
dGlhdG9yKTsKKworICAgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERl
c2NyaXB0aW9uKTsKKyAgICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxE
ZXNjcmlwdGlvbik7CisKKyAgICBwYzEucmVzdGFydEljZSgpOworICAgIHBjMi5yZXN0YXJ0SWNl
KCk7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPblNlY29uZChwYzIsIHBjMSwg
bmVnb3RpYXRvcik7CisgICAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2Fs
RGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2Nh
bERlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBv
bGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVh
bHMobmV3VWZyYWcxLCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKKyAgICBhd2FpdCBh
c3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CisKKyAgICBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisgICAgYXNzZXJ0X3Vm
cmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgbmV3VWZyYWcx
LCAiVW5jaGFuZ2VkIDEiKTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMy
LmxvY2FsRGVzY3JpcHRpb24pWzBdLCBuZXdVZnJhZzIsICJVbmNoYW5nZWQgMiIpOworICAgIGF3
YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKKyAgfSwgYHJlc3RhcnRJY2Uo
KSBpcyBzYXRpc2ZpZWQgYnkgcmVtb3RlIElDRSByZXN0YXJ0JHt0YWd9YCk7CisKKyAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0
IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2Fp
dCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisK
KyAgICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7
CisgICAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24p
OworCisgICAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBj
MS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3Jp
cHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtpY2VSZXN0YXJ0OiBmYWxzZX0pKTsKKyAgICBh
d2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAg
IGF3YWl0IG5lZ290aWF0b3Iuc2V0QW5zd2VyKHBjMik7CisgICAgYXdhaXQgcGMxLnNldFJlbW90
ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbbmV3VWZyYWcx
XSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW25ld1VmcmFn
Ml0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGFzc2VydF91ZnJhZ3Nf
bm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOworICAg
IGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIg
Y2hhbmdlZCIpOworICAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsK
KyAgfSwgYHJlc3RhcnRJY2UoKSB0cnVtcHMge2ljZVJlc3RhcnQ6IGZhbHNlfSR7dGFnfWApOwor
CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsK
KyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7
CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290
aWF0b3IpOworCisgICAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVz
Y3JpcHRpb24pOworICAgIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERl
c2NyaXB0aW9uKTsKKworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgbmV3IFByb21p
c2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IG5lZ290aWF0
b3Iuc2V0T2ZmZXIocGMxKTsKKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQor
ICAgICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Cisg
ICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKKyAg
ICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2U7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZl
ckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGNvbnN0IFtuZXdV
ZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbbmV3
VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X3Vm
cmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7
CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZy
YWcgMiBjaGFuZ2VkIik7CisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBw
YzEpOworICB9LCBgcmVzdGFydEljZSgpIHN1cnZpdmVzIHJvbGxiYWNrJHt0YWd9YCk7CisKKyAg
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbih7YnVuZGxlUG9saWN5OiAibWF4LWNvbXBhdCJ9KTsKKyAgICBjb25zdCBwYzIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oe2J1bmRsZVBvbGljeTogIm1heC1jb21wYXQifSk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAg
cGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4g
cGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5z
d2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisKKyAgICBjb25zdCBvbGRVZnJh
Z3MxID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBvbGRVZnJh
Z3MyID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBvbGRQd2Rz
MiA9IGdldFB3ZHMocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgcGMxLnJlc3RhcnRJY2Uo
KTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0g
cik7CisKKyAgICAvLyBFbmdpbmVlciBhIHBhcnRpYWwgSUNFIHJlc3RhcnQgZnJvbSBwYzIKKyAg
ICBwYzIucmVzdGFydEljZSgpOworICAgIGF3YWl0IG5lZ290aWF0b3Iuc2V0T2ZmZXIocGMyKTsK
KyAgICB7CisgICAgICBsZXQge3R5cGUsIHNkcH0gPSBwYzIubG9jYWxEZXNjcmlwdGlvbjsKKyAg
ICAgIC8vIFJlc3RvcmUgYm90aCBvbGQgaWNlLXVmcmFnIGFuZCBvbGQgaWNlLXB3ZCB0byB0cmln
Z2VyIGEgcGFydGlhbCByZXN0YXJ0CisgICAgICBzZHAgPSBzZHAucmVwbGFjZShnZXRVZnJhZ3Mo
e3NkcH0pWzBdLCBvbGRVZnJhZ3MyWzBdKTsKKyAgICAgIHNkcCA9IHNkcC5yZXBsYWNlKGdldFB3
ZHMoe3NkcH0pWzBdLCBvbGRQd2RzMlswXSk7CisgICAgICBjb25zdCBuZXdVZnJhZ3MyID0gZ2V0
VWZyYWdzKHtzZHB9KTsKKyAgICAgIGNvbnN0IG5ld1B3ZHMyID0gZ2V0UHdkcyh7c2RwfSk7Cisg
ICAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhuZXdVZnJhZ3MyWzBdLCBvbGRVZnJhZ3MyWzBdLCAi
Y29udHJvbCB1ZnJhZyBtYXRjaCIpOworICAgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMobmV3UHdk
czJbMF0sIG9sZFB3ZHMyWzBdLCAiY29udHJvbCBwd2QgbWF0Y2giKTsKKyAgICAgIGFzc2VydF91
ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZ3MyWzFdLCBvbGRVZnJhZ3MyWzFdLCAiY29udHJvbCB1
ZnJhZyBub24tbWF0Y2giKTsKKyAgICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdQd2Rz
MlsxXSwgb2xkUHdkczJbMV0sICJjb250cm9sIHB3ZCBub24tbWF0Y2giKTsKKyAgICAgIGF3YWl0
IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZSwgc2RwfSk7CisgICAgfQorICAgIGNvbnN0
IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9CisgICAgICAgIG5ldyBQcm9taXNlKHIgPT4gcGMx
Lm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldEFuc3dl
cihwYzEpOworICAgIGNvbnN0IG5ld1VmcmFnczEgPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3Jp
cHRpb24pOworICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKG5ld1VmcmFnczFbMF0sIG9sZFVmcmFn
czFbMF0sICJVbmNoYW5nZWQgMSIpOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdV
ZnJhZ3MxWzFdLCBvbGRVZnJhZ3MxWzFdLCAiUmVzdGFydGVkIDIiKTsKKyAgICBhd2FpdCBuZWdv
dGlhdGlvbk5lZWRlZFByb21pc2U7CisgICAgYXdhaXQgbmVnb3RpYXRvci5zZXRPZmZlcihwYzEp
OworICAgIGNvbnN0IG5ld2VzdFVmcmFnczEgPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRp
b24pOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdlc3RVZnJhZ3MxWzBdLCBvbGRV
ZnJhZ3MxWzBdLCAiUmVzdGFydGVkIDEiKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMo
bmV3ZXN0VWZyYWdzMVsxXSwgb2xkVWZyYWdzMVsxXSwgIlJlc3RhcnRlZCAyIik7CisgICAgYXdh
aXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworICB9LCBgcmVzdGFydEljZSgp
IHN1cnZpdmVzIHJlbW90ZSBvZmZlciBjb250YWluaW5nIHBhcnRpYWwgcmVzdGFydCR7dGFnfWAp
OwogCi0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIHBjMi5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IG5l
dyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhj
aGFuZ2VPZmZlckFuc3dlckVuZE9uU2Vjb25kKHBjMiwgcGMxKTsKLSAgY29uc3QgW25ld1VmcmFn
MV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBbbmV3VWZyYWcy
XSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90
X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOwotICBhc3Nl
cnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5n
ZWQiKTsKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOwotCi0gIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLSAgYXNzZXJ0X3Vm
cmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgbmV3VWZyYWcx
LCAiVW5jaGFuZ2VkIDEiKTsKLSAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5s
b2NhbERlc2NyaXB0aW9uKVswXSwgbmV3VWZyYWcyLCAiVW5jaGFuZ2VkIDIiKTsKLSAgYXdhaXQg
YXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSBpcyBz
YXRpc2ZpZWQgYnkgcmVtb3RlIElDRSByZXN0YXJ0Iik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5j
bG9zZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFk
ZFRyYW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5l
Z290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZp
cnN0KHBjMSwgcGMyKTsKLQotICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9j
YWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2Nh
bERlc2NyaXB0aW9uKTsKLQotICBwYzEucmVzdGFydEljZSgpOwotICBhd2FpdCBuZXcgUHJvbWlz
ZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IHBjMS5zZXRMb2Nh
bERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcih7aWNlUmVzdGFydDogZmFsc2V9KSk7
Ci0gIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7
Ci0gIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIo
KSk7Ci0gIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlv
bik7Ci0gIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9u
KTsKLSAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24p
OwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJh
ZyAxIGNoYW5nZWQiKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xk
VWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7Ci0gIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25O
ZWVkZWQodCwgcGMxKTsKLX0sICJyZXN0YXJ0SWNlKCkgdHJ1bXBzIHtpY2VSZXN0YXJ0OiBmYWxz
ZX0iKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0gIGF3
YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdh
aXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwotCi0gIGNvbnN0IFtv
bGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW29s
ZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotCi0gIHBjMS5yZXN0
YXJ0SWNlKCk7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVk
ZWQgPSByKTsKLSAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0
ZU9mZmVyKCkpOwotICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQotICAgICAgbmV3
IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBwYzEu
c2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogInJvbGxiYWNrIn0pOwotICBhd2FpdCBuZWdvdGlh
dGlvbk5lZWRlZFByb21pc2U7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0
KHBjMSwgcGMyKTsKLSAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVz
Y3JpcHRpb24pOwotICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNj
cmlwdGlvbik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFn
MSwgInVmcmFnIDEgY2hhbmdlZCIpOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZy
YWcxLCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKLSAgYXdhaXQgYXNzZXJ0Tm9OZWdv
dGlhdGlvbk5lZWRlZCh0LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByb2xsYmFj
ayIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbih7YnVuZGxlUG9saWN5OiAibWF4LWNvbXBhdCJ9KTsKLSAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHtidW5kbGVQb2xpY3k6ICJtYXgtY29tcGF0In0pOwot
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOwotICBwYzEu
YWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9u
bmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9u
Rmlyc3QocGMxLCBwYzIpOwotCi0gIGNvbnN0IG9sZFVmcmFnczEgPSBnZXRVZnJhZ3MocGMxLmxv
Y2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBvbGRVZnJhZ3MyID0gZ2V0VWZyYWdzKHBjMi5sb2Nh
bERlc2NyaXB0aW9uKTsKLSAgY29uc3Qgb2xkUHdkczIgPSBnZXRQd2RzKHBjMi5sb2NhbERlc2Ny
aXB0aW9uKTsKLQotICBwYzEucmVzdGFydEljZSgpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+
IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0KLSAgLy8gRW5naW5lZXIgYSBwYXJ0aWFs
IElDRSByZXN0YXJ0IGZyb20gcGMyCi0gIHBjMi5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IHBjMi5z
ZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVPZmZlcigpKTsKLSAgewotICAgIGxl
dCB7dHlwZSwgc2RwfSA9IHBjMi5sb2NhbERlc2NyaXB0aW9uOwotICAgIC8vIFJlc3RvcmUgYm90
aCBvbGQgaWNlLXVmcmFnIGFuZCBvbGQgaWNlLXB3ZCB0byB0cmlnZ2VyIGEgcGFydGlhbCByZXN0
YXJ0Ci0gICAgc2RwID0gc2RwLnJlcGxhY2UoZ2V0VWZyYWdzKHtzZHB9KVswXSwgb2xkVWZyYWdz
MlswXSk7Ci0gICAgc2RwID0gc2RwLnJlcGxhY2UoZ2V0UHdkcyh7c2RwfSlbMF0sIG9sZFB3ZHMy
WzBdKTsKLSAgICBjb25zdCBuZXdVZnJhZ3MyID0gZ2V0VWZyYWdzKHtzZHB9KTsKLSAgICBjb25z
dCBuZXdQd2RzMiA9IGdldFB3ZHMoe3NkcH0pOwotICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKG5l
d1VmcmFnczJbMF0sIG9sZFVmcmFnczJbMF0sICJjb250cm9sIHVmcmFnIG1hdGNoIik7Ci0gICAg
YXNzZXJ0X3VmcmFnc19lcXVhbHMobmV3UHdkczJbMF0sIG9sZFB3ZHMyWzBdLCAiY29udHJvbCBw
d2QgbWF0Y2giKTsKLSAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWdzMlsxXSwg
b2xkVWZyYWdzMlsxXSwgImNvbnRyb2wgdWZyYWcgbm9uLW1hdGNoIik7Ci0gICAgYXNzZXJ0X3Vm
cmFnc19ub3RfZXF1YWxzKG5ld1B3ZHMyWzFdLCBvbGRQd2RzMlsxXSwgImNvbnRyb2wgcHdkIG5v
bi1tYXRjaCIpOwotICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZSwgc2Rw
fSk7Ci0gIH0KLSAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KLSAgICAgIG5ldyBQ
cm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgcGMxLnNl
dExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigpKTsKLSAgY29uc3QgbmV3
VWZyYWdzMSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGFzc2VydF91ZnJh
Z3NfZXF1YWxzKG5ld1VmcmFnczFbMF0sIG9sZFVmcmFnczFbMF0sICJVbmNoYW5nZWQgMSIpOwot
ICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWdzMVsxXSwgb2xkVWZyYWdzMVsxXSwg
IlJlc3RhcnRlZCAyIik7Ci0gIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKLSAgYXdh
aXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOwotICBj
b25zdCBuZXdlc3RVZnJhZ3MxID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAg
YXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld2VzdFVmcmFnczFbMF0sIG9sZFVmcmFnczFbMF0s
ICJSZXN0YXJ0ZWQgMSIpOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3ZXN0VWZyYWdz
MVsxXSwgb2xkVWZyYWdzMVsxXSwgIlJlc3RhcnRlZCAyIik7Ci0gIGF3YWl0IGFzc2VydE5vTmVn
b3RpYXRpb25OZWVkZWQodCwgcGMxKTsKLX0sICJyZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcmVtb3Rl
IG9mZmVyIGNvbnRhaW5pbmcgcGFydGlhbCByZXN0YXJ0Iik7Cit9CiAKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wcmFuc3dlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXByYW5zd2VyLWV4cGVjdGVk
LnR4dAppbmRleCAxMDI2NGViNmU0MTY3N2Y0Y2E5OTQ1NGJmMjg2MzA5YzdmY2FjNjNhLi42OTg2
ZTNlMGMxNDg2MzdmYmMwNzgxN2M2MWVkNjgzMzI2NDhjZWRmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXByYW5zd2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXByYW5zd2VyLWV4cGVjdGVkLnR4dApAQCAtMSw2
ICsxLDYgQEAKIAogRkFJTCBzZXRMb2NhbERlc2NyaXB0aW9uKHByYW5zd2VyKSBmcm9tIHN0YWJs
ZSBzdGF0ZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0YXRlRXJyb3IgcHJvbWlzZV9yZWpl
Y3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3Qg
Ik9wZXJhdGlvbkVycm9yOiBGYWlsZWQgdG8gc2V0IGxvY2FsIHByYW5zd2VyIHNkcDogQ2FsbGVk
IGluIHdyb25nIHN0YXRlOiBzdGFibGUiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFs
aWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMCwgZXhwZWN0ZWQgMTEK
LUZBSUwgc2V0TG9jYWxEZXNjcmlwdGlvbihwcmFuc3dlcikgc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBSVENTZXNzaW9u
RGVzY3JpcHRpb25dIgorUEFTUyBzZXRMb2NhbERlc2NyaXB0aW9uKHByYW5zd2VyKSBzaG91bGQg
c3VjY2VlZAogUEFTUyBzZXRMb2NhbERlc2NyaXB0aW9uKHByYW5zd2VyKSBjYW4gYmUgYXBwbGll
ZCBtdWx0aXBsZSB0aW1lcyB3aGlsZSBzdGlsbCBpbiBoYXZlLWxvY2FsLXByYW5zd2VyCiBQQVNT
IHNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSBmcm9tIGhhdmUtbG9jYWwtcHJhbnN3ZXIgc3Rh
dGUgc2hvdWxkIHN1Y2NlZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNj
cmlwdGlvbi1wcmFuc3dlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1w
cmFuc3dlci5odG1sCmluZGV4IGU0Mjk2YWVmMTM5ZjE5ZDA4MjI5Yzk0NTBmNjFjMzA3MDYxNDdk
MjQuLjAxODQ1ZjA5YjE2Y2UxZmYwMzc0N2YwMzlkZWU1ZGU4OWIxOWE1YWUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXByYW5zd2VyLmh0bWwKQEAgLTEwMyw3ICsxMDMs
NiBAQAogICAgICAgICAgIGFzc2VydF9zZXNzaW9uX2Rlc2Nfc2ltaWxhcihwYy5wZW5kaW5nTG9j
YWxEZXNjcmlwdGlvbiwgcHJhbnN3ZXIpOwogICAgICAgICAgIGFzc2VydF9lcXVhbHMocGMuY3Vy
cmVudExvY2FsRGVzY3JpcHRpb24sIG51bGwpOwogCi0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhw
Yy5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24sIG51bGwpOwogCiAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhzdGF0ZXMsIFsnaGF2ZS1yZW1vdGUtb2ZmZXInLCAnaGF2ZS1sb2NhbC1wcmFu
c3dlciddKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVE
ZXNjcmlwdGlvbi10cmFja3MuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVt
b3RlRGVzY3JpcHRpb24tdHJhY2tzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzZj
YzZmZWUzMGJkYTkzMWY4NzNmODJkNTRkNTU5NTkzMmEwYWU3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tdHJhY2tzLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE2IEBACisKK1BBU1MgYWRkVHJhY2soKSB3aXRoIGEgdHJhY2sgYW5kIG5v
IHN0cmVhbSBtYWtlcyBvbnRyYWNrIGZpcmUgd2l0aCBhIHRyYWNrIGFuZCBubyBzdHJlYW0uCitQ
QVNTIGFkZFRyYWNrKCkgd2l0aCBhIHRyYWNrIGFuZCBhIHN0cmVhbSBtYWtlcyBvbnRyYWNrIGZp
cmUgd2l0aCBhIHRyYWNrIGFuZCBhIHN0cmVhbS4KK1BBU1Mgb250cmFjayBmaXJlcyBiZWZvcmUg
c2V0UmVtb3RlRGVzY3JpcHRpb24gcmVzb2x2ZXMuCitQQVNTIGFkZFRyYWNrKCkgd2l0aCB0d28g
dHJhY2tzIGFuZCBvbmUgc3RyZWFtIG1ha2VzIG9udHJhY2sgZmlyZSB0d2ljZSB3aXRoIHRoZSB0
cmFja3MgYW5kIHNoYXJlZCBzdHJlYW0uCitQQVNTIGFkZFRyYWNrKCkgZm9yIGFuIGV4aXN0aW5n
IHN0cmVhbSBtYWtlcyBzdHJlYW0ub25hZGR0cmFjayBmaXJlLgorUEFTUyBzdHJlYW0ub25hZGR0
cmFjayBmaXJlcyBiZWZvcmUgc2V0UmVtb3RlRGVzY3JpcHRpb24gcmVzb2x2ZXMuCitQQVNTIGFk
ZFRyYWNrKCkgd2l0aCBhIHRyYWNrIGFuZCB0d28gc3RyZWFtcyBtYWtlcyBvbnRyYWNrIGZpcmUg
d2l0aCBhIHRyYWNrIGFuZCB0d28gc3RyZWFtcy4KK1BBU1Mgb250cmFjaydzIHJlY2VpdmVyIG1h
dGNoZXMgZ2V0UmVjZWl2ZXJzKCkuCitQQVNTIHJlbW92ZVRyYWNrKCkgZG9lcyBub3QgcmVtb3Zl
IHRoZSByZWNlaXZlci4KK1BBU1MgcmVtb3ZlVHJhY2soKSBtYWtlcyBzdHJlYW0ub25yZW1vdmV0
cmFjayBmaXJlIGFuZCB0aGUgdHJhY2sgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBzdHJlYW0uCitQ
QVNTIHN0cmVhbS5vbnJlbW92ZXRyYWNrIGZpcmVzIGJlZm9yZSBzZXRSZW1vdGVEZXNjcmlwdGlv
biByZXNvbHZlcy4KK1BBU1MgcmVtb3ZlVHJhY2soKSBtYWtlcyB0cmFjay5vbm11dGUgZmlyZSBh
bmQgdGhlIHRyYWNrIHRvIGJlIG11dGVkLgorUEFTUyB0cmFjay5vbm11dGUgZmlyZXMgYmVmb3Jl
IHNldFJlbW90ZURlc2NyaXB0aW9uIHJlc29sdmVzLgorUEFTUyByZW1vdmVUcmFjaygpIHR3aWNl
IGlzIHNhZmUuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMDc2NTc4MjViZDgyMWFlOGRmNWZjYTAzYjAyZmU1MzllYjdiNzA2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitGQUlMIHNldFBhcmFtZXRlcnMgd2l0aCBkZWdy
YWRhdGlvblByZWZlcmVuY2Ugc2V0IHNob3VsZCBzdWNjZWVkIGFzc2VydF9ub3RfZXF1YWxzOiBF
eHBlY3Qgc2VuZGVyIHBhcmFtLnJ0Y3AuY25hbWUgdG8gYmUgc2V0IGdvdCBkaXNhbGxvd2VkIHZh
bHVlIHVuZGVmaW5lZAorRkFJTCBzZXRQYXJhbWV0ZXJzIHdpdGggZGVncmFkYXRpb25QcmVmZXJl
bmNlIHVuc2V0IHNob3VsZCBzdWNjZWVkIGFzc2VydF9ub3RfZXF1YWxzOiBFeHBlY3Qgc2VuZGVy
IHBhcmFtLnJ0Y3AuY25hbWUgdG8gYmUgc2V0IGdvdCBkaXNhbGxvd2VkIHZhbHVlIHVuZGVmaW5l
ZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRlZ3JhZGF0aW9uUHJlZmVyZW5jZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
UGFyYW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMmM5MmJj
MWMwODE0ZjI5NGUxYjkxNTNmZWJjNzY4ODZjZjJmZGI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFy
YW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UuaHRtbApAQCAtMCwwICsxLDg3IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUnRwUGFyYW1ldGVy
cyBkZWdyYWRhdGlvblByZWZlcmVuY2U8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImRpY3Rpb25hcnktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENSdHBQYXJhbWV0ZXJzLWhlbHBlci5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgLy8gVGVzdCBpcyBiYXNl
ZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBkcmFmdDoKKyAgLy8gaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93ZWJydGMuaHRtbAorCisgIC8vIFRoZSBm
b2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20gUlRDUnRwUGFyYW1ldGVy
cy1oZWxwZXIuanM6CisgIC8vICAgdmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzCisKKyAgLyoK
KyAgICA1LjIuICBSVENSdHBTZW5kZXIgSW50ZXJmYWNlCisgICAgICBpbnRlcmZhY2UgUlRDUnRw
U2VuZGVyIHsKKyAgICAgICAgUHJvbWlzZTx2b2lkPiAgICAgICAgICAgc2V0UGFyYW1ldGVycyhv
cHRpb25hbCBSVENSdHBQYXJhbWV0ZXJzIHBhcmFtZXRlcnMpOworICAgICAgICBSVENSdHBQYXJh
bWV0ZXJzICAgICAgICBnZXRQYXJhbWV0ZXJzKCk7CisgICAgICB9OworCisgICAgICBkaWN0aW9u
YXJ5IFJUQ1J0cFBhcmFtZXRlcnMgeworICAgICAgICBET01TdHJpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbklkOworICAgICAgICBzZXF1ZW5jZTxSVENSdHBF
bmNvZGluZ1BhcmFtZXRlcnM+ICAgICAgICBlbmNvZGluZ3M7CisgICAgICAgIHNlcXVlbmNlPFJU
Q1J0cEhlYWRlckV4dGVuc2lvblBhcmFtZXRlcnM+IGhlYWRlckV4dGVuc2lvbnM7CisgICAgICAg
IFJUQ1J0Y3BQYXJhbWV0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgIHJ0Y3A7CisgICAgICAg
IHNlcXVlbmNlPFJUQ1J0cENvZGVjUGFyYW1ldGVycz4gICAgICAgICAgIGNvZGVjczsKKyAgICAg
ICAgUlRDRGVncmFkYXRpb25QcmVmZXJlbmNlICAgICAgICAgICAgICAgICAgZGVncmFkYXRpb25Q
cmVmZXJlbmNlOworICAgICAgfTsKKworICAgICAgZW51bSBSVENEZWdyYWRhdGlvblByZWZlcmVu
Y2UgeworICAgICAgICAibWFpbnRhaW4tZnJhbWVyYXRlIiwKKyAgICAgICAgIm1haW50YWluLXJl
c29sdXRpb24iLAorICAgICAgICAiYmFsYW5jZWQiCisgICAgICB9OworCisgICAgICAtIGRlZ3Jh
ZGF0aW9uUHJlZmVyZW5jZSBpcyBzZXQgdG8gdGhlIGxhc3QgdmFsdWUgcGFzc2VkIGludG8gc2V0
UGFyYW1ldGVycywKKyAgICAgICAgb3IgdGhlIGRlZmF1bHQgdmFsdWUgb2YgImJhbGFuY2VkIiBp
ZiBzZXRQYXJhbWV0ZXJzIGhhc24ndCBiZWVuIGNhbGxlZC4KKyAgICovCisKKyAgcHJvbWlzZV90
ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCB7IHNlbmRlciB9ID0g
cGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisKKyAgICBjb25zdCBwYXJhbSA9IHNlbmRlci5n
ZXRQYXJhbWV0ZXJzKCk7CisgICAgdmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKTsK
KworICAgIGFzc2VydF9lcXVhbHMocGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNlLCAnYmFsYW5j
ZWQnLAorICAgICAgJ0V4cGVjdCBpbml0aWFsIHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSB0
byBiZSBiYWxhbmNlZCcpOworCisgICAgcGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNlID0gJ21h
aW50YWluLWZyYW1lcmF0ZSc7CisKKyAgICByZXR1cm4gcGMuc2V0UGFyYW1ldGVycyhwYXJhbSkK
KyAgICAudGhlbigoKSA9PiB7CisgICAgICBjb25zdCBwYXJhbSA9IHNlbmRlci5nZXRQYXJhbWV0
ZXJzKCk7CisgICAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0pOworCisgICAg
ICBhc3NlcnRfZXF1YWxzKHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSwgJ21haW50YWluLWZy
YW1lcmF0ZScpOworICAgIH0pOworICB9LCAnc2V0UGFyYW1ldGVycyB3aXRoIGRlZ3JhZGF0aW9u
UHJlZmVyZW5jZSBzZXQgc2hvdWxkIHN1Y2NlZWQnKTsKKworICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0IHsgc2VuZGVyIH0gPSBwYy5hZGRUcmFu
c2NlaXZlcignYXVkaW8nKTsKKworICAgIGNvbnN0IHBhcmFtID0gc2VuZGVyLmdldFBhcmFtZXRl
cnMoKTsKKyAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0pOworCisgICAgYXNz
ZXJ0X2VxdWFscyhwYXJhbS5kZWdyYWRhdGlvblByZWZlcmVuY2UsICdiYWxhbmNlZCcsCisgICAg
ICAnRXhwZWN0IGluaXRpYWwgcGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNlIHRvIGJlIGJhbGFu
Y2VkJyk7CisKKyAgICBwYXJhbS5kZWdyYWRhdGlvblByZWZlcmVuY2UgPSB1bmRlZmluZWQ7CisK
KyAgICByZXR1cm4gcGMuc2V0UGFyYW1ldGVycyhwYXJhbSkKKyAgICAudGhlbigoKSA9PiB7Cisg
ICAgICBjb25zdCBwYXJhbSA9IHNlbmRlci5nZXRQYXJhbWV0ZXJzKCk7CisgICAgICB2YWxpZGF0
ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0pOworCisgICAgICBhc3NlcnRfZXF1YWxzKHBhcmFt
LmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSwgdW5kZWZpbmVkKTsKKyAgICB9KTsKKyAgfSwgJ3NldFBh
cmFtZXRlcnMgd2l0aCBkZWdyYWRhdGlvblByZWZlcmVuY2UgdW5zZXQgc2hvdWxkIHN1Y2NlZWQn
KTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXREaXJlY3Rpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0RGlyZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mOTc5YzVhNmUxNjAyMzFkYmU1NTQyNjQzNTI1ODQwN2RjODgyZWNlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0RGlyZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKKworRkFJTCBzZXREaXJlY3Rpb24gc2hvdWxkIGNoYW5nZSB0cmFuc2NlaXZlci5kaXJl
Y3Rpb24gdHJhbnNjZWl2ZXIuc2V0RGlyZWN0aW9uIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3Ry
YW5zY2VpdmVyLnNldERpcmVjdGlvbigncmVjdm9ubHknKScsICd0cmFuc2NlaXZlci5zZXREaXJl
Y3Rpb24nIGlzIHVuZGVmaW5lZCkKK0ZBSUwgc2V0RGlyZWN0aW9uIHdpdGggc2FtZSBkaXJlY3Rp
b24gc2hvdWxkIGhhdmUgbm8gZWZmZWN0IHRyYW5zY2VpdmVyLnNldERpcmVjdGlvbiBpcyBub3Qg
YSBmdW5jdGlvbi4gKEluICd0cmFuc2NlaXZlci5zZXREaXJlY3Rpb24oJ3NlbmRvbmx5JyknLCAn
dHJhbnNjZWl2ZXIuc2V0RGlyZWN0aW9uJyBpcyB1bmRlZmluZWQpCitGQUlMIHNldERpcmVjdGlv
biBzaG91bGQgY2hhbmdlIHRyYW5zY2VpdmVyLmRpcmVjdGlvbiBpbmRlcGVuZGVudCBvZiB0cmFu
c2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJyZWN2b25s
eSIgYnV0IGdvdCAiaW5hY3RpdmUiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldERpcmVj
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0RGlyZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJj
YmZmNWQ5ODU4Njg0MGFiOWMzN2ExZTFlMDVmMjYyNTYwODQ4ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0
cFRyYW5zY2VpdmVyLXNldERpcmVjdGlvbi5odG1sCkBAIC0wLDAgKzEsOTUgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENSdHBUcmFuc2NlaXZlci5w
cm90b3R5cGUuc2V0RGlyZWN0aW9uPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIC8vIFRl
c3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6CisgIC8vIGh0dHBzOi8v
cmF3Z2l0LmNvbS93M2Mvd2VicnRjLXBjL2NjOGQ4MGY0NTViODZjODA0MWQ2M2JjZWI4YjQ1N2Y0
NWM3MmFhODkvd2VicnRjLmh0bWwKKworICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlv
bnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKKyAgLy8gZ2Vu
ZXJhdGVBbnN3ZXIKKworICAvKgorICAgIDUuNC4gIFJUQ1J0cFRyYW5zY2VpdmVyIEludGVyZmFj
ZQorICAgICAgaW50ZXJmYWNlIFJUQ1J0cFRyYW5zY2VpdmVyIHsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFJUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uICBkaXJlY3Rpb247CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENSdHBUcmFuc2NlaXZlckRpcmVjdGlvbj8gY3VycmVudERp
cmVjdGlvbjsKKyAgICAgICAgdm9pZCBzZXREaXJlY3Rpb24oUlRDUnRwVHJhbnNjZWl2ZXJEaXJl
Y3Rpb24gZGlyZWN0aW9uKTsKKyAgICAgICAgLi4uCisgICAgICB9OworICAgKi8KKworICAgLyoK
KyAgICA1LjQuICBzZXREaXJlY3Rpb24KKyAgICAgIDQuICBTZXQgdHJhbnNjZWl2ZXIncyBbW0Rp
cmVjdGlvbl1dIHNsb3QgdG8gbmV3RGlyZWN0aW9uLgorICAgKi8KKyAgdGVzdCh0ID0+IHsKKyAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHRyYW5zY2Vp
dmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgICAgYXNzZXJ0X2VxdWFscyh0cmFu
c2NlaXZlci5kaXJlY3Rpb24sICdzZW5kcmVjdicpOworICAgIGFzc2VydF9lcXVhbHModHJhbnNj
ZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgbnVsbCk7CisKKyAgICB0cmFuc2NlaXZlci5zZXREaXJl
Y3Rpb24oJ3JlY3Zvbmx5Jyk7CisgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rp
b24sICdyZWN2b25seScpOworICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERp
cmVjdGlvbiwgbnVsbCwKKyAgICAgICdFeHBlY3QgdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlv
biB0byBub3QgY2hhbmdlJyk7CisKKyAgfSwgJ3NldERpcmVjdGlvbiBzaG91bGQgY2hhbmdlIHRy
YW5zY2VpdmVyLmRpcmVjdGlvbicpOworCisgICAvKgorICAgIDUuNC4gIHNldERpcmVjdGlvbgor
ICAgICAgMy4gIElmIG5ld0RpcmVjdGlvbiBpcyBlcXVhbCB0byB0cmFuc2NlaXZlcidzIFtbRGly
ZWN0aW9uXV0gc2xvdCwgYWJvcnQKKyAgICAgICAgICB0aGVzZSBzdGVwcy4KKyAgICovCisgIHRl
c3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBj
b25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycsIHsgZGlyZWN0aW9u
OiAnc2VuZG9ubHknIH0pOworICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9u
LCAnc2VuZG9ubHknKTsKKyAgICB0cmFuc2NlaXZlci5zZXREaXJlY3Rpb24oJ3NlbmRvbmx5Jyk7
CisgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdzZW5kb25seScpOwor
CisgIH0sICdzZXREaXJlY3Rpb24gd2l0aCBzYW1lIGRpcmVjdGlvbiBzaG91bGQgaGF2ZSBubyBl
ZmZlY3QnKTsKKworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwor
ICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywgeyBkaXJl
Y3Rpb246ICdyZWN2b25seScgfSk7CisgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJl
Y3Rpb24sICdyZWN2b25seScpOworICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVu
dERpcmVjdGlvbiwgbnVsbCk7CisKKyAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIoKQorICAgIC50
aGVuKG9mZmVyID0+CisgICAgICBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKQorICAgICAg
LnRoZW4oKCkgPT4gZ2VuZXJhdGVBbnN3ZXIob2ZmZXIpKSkKKyAgICAudGhlbihhbnN3ZXIgPT4g
cGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKSkKKyAgICAudGhlbigoKSA9PiB7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24sICdyZWN2b25seScp
OworICAgICAgdHJhbnNjZWl2ZXIuc2V0RGlyZWN0aW9uKCdzZW5kcmVjdicpOworICAgICAgYXNz
ZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdzZW5kcmVjdicpOworICAgICAgYXNz
ZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAncmVjdm9ubHknKTsKKyAg
ICB9KTsKKyAgfSwgJ3NldERpcmVjdGlvbiBzaG91bGQgY2hhbmdlIHRyYW5zY2VpdmVyLmRpcmVj
dGlvbiBpbmRlcGVuZGVudCBvZiB0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uJyk7CisKKyAg
LyoKKyAgICBUT0RPCisgICAgICAgIENhbGxzIHRvIHNldERpcmVjdGlvbigpIGRvIG5vdCB0YWtl
IGVmZmVjdCBpbW1lZGlhdGVseS4gSW5zdGVhZCwgZnV0dXJlIGNhbGxzCisgICAgICAgIHRvIGNy
ZWF0ZU9mZmVyIGFuZCBjcmVhdGVBbnN3ZXIgbWFyayB0aGUgY29ycmVzcG9uZGluZyBtZWRpYSBk
ZXNjcmlwdGlvbiBhcworICAgICAgICBzZW5kcmVjdiwgc2VuZG9ubHksIHJlY3Zvbmx5IG9yIGlu
YWN0aXZlIGFzIGRlZmluZWQgaW4gW0pTRVBdIChzZWN0aW9uIDUuMi4yLgorICAgICAgICBhbmQg
c2VjdGlvbiA1LjMuMi4pLgorCisgICAgVGVzdGVkIGluIFJUQ1BlZXJDb25uZWN0aW9uLW9ubmVn
b3RpYXRpb25uZWVkZWQuaHRtbAorICAgICAgNS40LiAgc2V0RGlyZWN0aW9uCisgICAgICAgIDYu
ICBVcGRhdGUgdGhlIG5lZ290aWF0aW9uLW5lZWRlZCBmbGFnIGZvciBjb25uZWN0aW9uLgorCisg
ICAgQ292ZXJhZ2UgUmVwb3J0CisgICAgICBUZXN0ZWQgICAgICAgIDYKKyAgICAgIE5vdCBUZXN0
ZWQgICAgMQorICAgICAgVW50ZXN0YWJsZSAgICAwCisgICAgICBUb3RhbCAgICAgICAgIDcKKyAg
ICovCisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBUcmFuc2NlaXZlci1zdG9wLWV4cGVjdGVkLnR4dAppbmRleCAwZWJiZmU0ZjcyZTI1NzNh
ODNlM2JjMDBkN2ZhNjc0MWYzYjcwMmUwLi4wZWJhNjhiNWFlNzg1NjViNzU5NWI0NzM5YTQ5YTU3
ZDViNGFjODUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBUcmFuc2NlaXZlci1zdG9wLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSwxMSBAQAogCiBQQVNT
IEEgdHJhbnNjZWl2ZXIgYWRkZWQgYW5kIHN0b3BwZWQgYmVmb3JlIHRoZSBpbml0aWFsIG9mZmVy
IGdlbmVyYXRpb24gc2hvdWxkIG5vdCB0cmlnZ2VyIGFuIG9mZmVyIG0tc2VjdGlvbiBnZW5lcmF0
aW9uCitQQVNTIEEgdHJhbnNjZWl2ZXIgYWRkZWQgYW5kIHN0b3BwZWQgc2hvdWxkIG5vdCBjcmFz
aCB3aGVuIGdldHRpbmcgcmVjZWl2ZXIncyB0cmFuc3BvcnQKIFBBU1MgRHVyaW5nIHJlbmVnb3Rp
YXRpb24sIGFkZGluZyBhbmQgc3RvcHBpbmcgYSB0cmFuc2NlaXZlciBzaG91bGQgbm90IHRyaWdn
ZXIgYSByZW5lZ290aWF0ZWQgb2ZmZXIgbS1zZWN0aW9uIGdlbmVyYXRpb24KIFBBU1MgQSBzdG9w
cGVkIHNlbmRvbmx5IHRyYW5zY2VpdmVyIHNob3VsZCBnZW5lcmF0ZSBhbiBpbmFjdGl2ZSBtLXNl
Y3Rpb24gaW4gdGhlIG9mZmVyCiBQQVNTIEEgc3RvcHBlZCBpbmFjdGl2ZSB0cmFuc2NlaXZlciBz
aG91bGQgZ2VuZXJhdGUgYW4gaW5hY3RpdmUgbS1zZWN0aW9uIGluIHRoZSBvZmZlcgogUEFTUyBJ
ZiBhIHRyYW5zY2VpdmVyIGlzIHN0b3BwZWQgbG9jYWxseSwgc2V0dGluZyBhIGxvY2FsbHkgZ2Vu
ZXJhdGVkIGFuc3dlciBzaG91bGQgc3RpbGwgd29yawogUEFTUyBJZiBhIHRyYW5zY2VpdmVyIGlz
IHN0b3BwZWQgcmVtb3RlbHksIHNldHRpbmcgYSBsb2NhbGx5IGdlbmVyYXRlZCBhbnN3ZXIgc2hv
dWxkIHN0aWxsIHdvcmsKIEZBSUwgSWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVkLCB0cmFuc2Nl
aXZlcnMsIHNlbmRlcnMgYW5kIHJlY2VpdmVycyBzaG91bGQgZGlzYXBwZWFyIGFmdGVyIG9mZmVy
L2Fuc3dlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAwIGJ1dCBnb3QgMQotRkFJTCBJZiBhIHRy
YW5zY2VpdmVyIGlzIHN0b3BwZWQsIHRyYW5zY2VpdmVycyBzaG91bGQgZW5kIHVwIGluIHN0YXRl
IHN0b3BwZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImluYWN0aXZlIiBidXQgZ290ICJzdG9w
cGVkIgorRkFJTCBJZiBhIHRyYW5zY2VpdmVyIGlzIHN0b3BwZWQsIHRyYW5zY2VpdmVycyBzaG91
bGQgZW5kIHVwIGluIHN0YXRlIHN0b3BwZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInN0b3Bw
ZWQiIGJ1dCBnb3QgImluYWN0aXZlIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBUcmFuc2NlaXZlci1zdG9wLmh0bWwKaW5kZXggNGYzYTljZTg1ZmEyNDRiYzY3MzQ0N2Zh
Mzg5ZjQ0YmRjMzgxYjIzMC4uNzY2YjM0ZDdiMTIwZjBlMjE0YWMwMjhjZDFmNWI4MmM5Yzc4MDYy
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0
b3AuaHRtbApAQCAtMjEsNiArMjEsMTggQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KT0+IHsKICAg
ICBhc3NlcnRfdHJ1ZShvZmZlci5zZHAuaW5jbHVkZXMoIm09dmlkZW8iKSwgIm9mZmVyIHNob3Vs
ZCBjb250YWluIGEgdmlkZW8gbS1zZWN0aW9uIik7CiB9LCAiQSB0cmFuc2NlaXZlciBhZGRlZCBh
bmQgc3RvcHBlZCBiZWZvcmUgdGhlIGluaXRpYWwgb2ZmZXIgZ2VuZXJhdGlvbiBzaG91bGQgbm90
IHRyaWdnZXIgYW4gb2ZmZXIgbS1zZWN0aW9uIGdlbmVyYXRpb24iKTsKIAorcHJvbWlzZV90ZXN0
KGFzeW5jICh0KT0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFu
c2NlaXZlcigiYXVkaW8iLCB7IGRpcmVjdGlvbjogInNlbmRvbmx5IiB9KTsKKyAgICBwYzEuYWRk
VHJhbnNjZWl2ZXIoInZpZGVvIik7CisgICAgYXNzZXJ0X2VxdWFscyhudWxsLCBwYzEuZ2V0VHJh
bnNjZWl2ZXJzKClbMV0ucmVjZWl2ZXIudHJhbnNwb3J0KTsKKworICAgIHBjMS5nZXRUcmFuc2Nl
aXZlcnMoKVsxXS5zdG9wKCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJz
KClbMV0ucmVjZWl2ZXIudHJhbnNwb3J0LCBudWxsKTsKK30sICJBIHRyYW5zY2VpdmVyIGFkZGVk
IGFuZCBzdG9wcGVkIHNob3VsZCBub3QgY3Jhc2ggd2hlbiBnZXR0aW5nIHJlY2VpdmVyJ3MgdHJh
bnNwb3J0Iik7CisKIHByb21pc2VfdGVzdChhc3luYyAodCk9PiB7CiAgICAgY29uc3QgcGMxID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CkBAIC0xMzYsOCArMTQ4LDggQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7
CiAgIHBjMlRyYW5zY2VpdmVyID0gcGMyLmdldFRyYW5zY2VpdmVycygpWzBdOwogICBwYzEuZ2V0
VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOwogICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBj
MSwgcGMyKTsKLSAgYXNzZXJ0X2VxdWFscygnc3RvcHBlZCcsIHBjMVRyYW5zY2VpdmVyLmRpcmVj
dGlvbik7Ci0gIGFzc2VydF9lcXVhbHMoJ3N0b3BwZWQnLCBwYzJUcmFuc2NlaXZlci5kaXJlY3Rp
b24pOworICBhc3NlcnRfZXF1YWxzKHBjMVRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3N0b3BwZWQn
KTsKKyAgYXNzZXJ0X2VxdWFscyhwYzJUcmFuc2NlaXZlci5kaXJlY3Rpb24sICdzdG9wcGVkJyk7
CiB9LCAnSWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVkLCB0cmFuc2NlaXZlcnMgc2hvdWxkIGVu
ZCB1cCBpbiBzdGF0ZSBzdG9wcGVkJyk7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNj
ZWl2ZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwKaW5kZXggYzlkY2U0NWQ3
Mzg4NGJjZTc0ZjE2NGJhMzA2Y2U2N2JjYzczOTIwNS4uNzczMjNiNTAzYWJkN2RjMTJlNTg5NGFi
Y2UyOGRhNTdhOWI5ZTkxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBUcmFuc2NlaXZlci5odHRwcy5odG1sCkBAIC05MiwxMiArOTIsMTAgQEAKIAogICBjb25zdCB0
cmlja2xlID0gKHQsIHBjMSwgcGMyKSA9PiB7CiAgICAgcGMxLm9uaWNlY2FuZGlkYXRlID0gdC5z
dGVwX2Z1bmMoYXN5bmMgZSA9PiB7Ci0gICAgICBpZiAoZS5jYW5kaWRhdGUpIHsKLSAgICAgICAg
dHJ5IHsKLSAgICAgICAgICBhd2FpdCBwYzIuYWRkSWNlQ2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsK
LSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIGFzc2VydF90cnVlKGZhbHNlLCAiYWRk
SWNlQ2FuZGlkYXRlIHRocmV3IGVycm9yOiAiICsgZS5uYW1lKTsKLSAgICAgICAgfQorICAgICAg
dHJ5IHsKKyAgICAgICAgYXdhaXQgcGMyLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7Cisg
ICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGFzc2VydF90cnVlKGZhbHNlLCAiYWRkSWNlQ2Fu
ZGlkYXRlIHRocmV3IGVycm9yOiAiICsgZS5uYW1lKTsKICAgICAgIH0KICAgICB9KTsKICAgfTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1N0YXRzLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1N0YXRzLWhlbHBlci5qcwppbmRleCA4MWFiZTI0NTZl
OTRiYjg0ZTRkNTZjOTc4MWRjMzAyYTUwMjQ5MGU1Li4zM2NiZjRhOTMzYmQzNzU1M2E4NTk1ZTA2
OTJmOTcxN2UxNDVlY2M5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTdGF0cy1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU3RhdHMtaGVscGVy
LmpzCkBAIC0yMDcsOCArMjA3LDkgQEAgZnVuY3Rpb24gdmFsaWRhdGVDb2RlY1N0YXRzKHN0YXRz
UmVwb3J0LCBzdGF0cykgewogCiAgIGFzc2VydF9zdHJpbmdfZmllbGQoc3RhdHMsICdtaW1lVHlw
ZScpOwogICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnY2xvY2tSYXRlJyk7Ci0g
IGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdjaGFubmVscycpOwotCisgIGlmIChz
dGF0cy5raW5kID09PSAnYXVkaW8nKSB7CisgICAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChz
dGF0cywgJ2NoYW5uZWxzJyk7CisgIH0KICAgYXNzZXJ0X3N0cmluZ19maWVsZChzdGF0cywgJ3Nk
cEZtdHBMaW5lJyk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2RhdGFjaGFubmVsLWVtcHR5c3RyaW5nLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L2RhdGFjaGFubmVsLWVtcHR5c3RyaW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYzcyNjhmNWQxNzJjNjMxNTFiMjFjZWFmMzA5MDdmMTNmZDExNzk2My4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0
cmluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLQotUEFTUyBD
YW4gc2VuZCBlbXB0eSBzdHJpbmdzIGFjcm9zcyBhIFdlYlJUQyBkYXRhIGNoYW5uZWwuCi1NZXNz
YWdlcyBleGNoYW5nZWQKLQotU2VudDogW2VtcHR5IHN0cmluZ10KLVNlbnQ6ICJkb25lIgotUmVj
ZWl2ZWQ6IFtlbXB0eSBzdHJpbmddCi1SZWNlaXZlZDogImRvbmUiCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2RhdGFjaGFu
bmVsLWVtcHR5c3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0NTZiYWM3MzY3ZTZmOTAzNGY4M2JiZWU2OTk4MzEzYjc4OWI4
YzBkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2RhdGFjaGFubmVs
LWVtcHR5c3RyaW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotPCFkb2N0
eXBlIGh0bWw+Ci08IS0tCi1UaGlzIHRlc3QgY3JlYXRlcyBhIGRhdGEgY2hhbm5lbCBiZXR3ZWVu
IHR3byBsb2NhbCBQZWVyQ29ubmVjdGlvbiBpbnN0YW5jZXMKLWFuZCBlbnN1cmVzIHRoYXQgYW4g
ZW1wdHkgc3RyaW5nIHNlbnQgYnkgb25lIGlzIHJlY2VpdmVkIGJ5IHRoZSBzZWNvbmQuCi0tLT4K
LQotPGh0bWw+Ci08aGVhZD4KLSAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgotICA8dGl0bGU+UlRDUGVlckNvbm5lY3Rp
b24gRGF0YSBDaGFubmVsIEVtcHR5IFN0cmluZyBUZXN0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5
PgotICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgotICA8aDI+TWVzc2FnZXMgZXhjaGFuZ2VkPC9oMj4K
LSAgPGRpdiBpZD0ibXNnIj48L2Rpdj4KLQotICA8IS0tIFRoZXNlIGZpbGVzIGFyZSBpbiBwbGFj
ZSB3aGVuIGV4ZWN1dGluZyBvbiBXM0MuIC0tPgotICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgotICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoJ0NhbiBzZW5kIGVtcHR5IHN0cmluZ3MgYWNy
b3NzIGEgV2ViUlRDIGRhdGEgY2hhbm5lbC4nKTsKLQotICB2YXIgZ0ZpcnN0Q29ubmVjdGlvbiA9
IG51bGw7Ci0gIHZhciBnU2Vjb25kQ29ubmVjdGlvbiA9IG51bGw7Ci0gIHZhciBzZW5kQ2hhbm5l
bCA9IG51bGw7Ci0gIHZhciByZWNlaXZlQ2hhbm5lbCA9IG51bGw7Ci0KLSAgdmFyIG9uUmVjZWl2
ZUNoYW5uZWwgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICByZWNlaXZlQ2hhbm5lbCA9IGV2ZW50
LmNoYW5uZWw7Ci0gICAgcmVjZWl2ZUNoYW5uZWwub25tZXNzYWdlID0gb25SZWNlaXZlTWVzc2Fn
ZTsKLSAgfTsKLQotCi0gIC8vIFdoZW4gdGhlIGRhdGEgY2hhbm5lbCBpcyBvcGVuLCBzZW5kIGFu
IGVtcHR5IHN0cmluZyBtZXNzYWdlCi0gIC8vIGZvbGxvd2VkIGJ5IGEgbWVzc2FnZSB0aGF0IGNv
bnRhaW5zIHRoZSBzdHJpbmcgImRvbmUiLgotICB2YXIgb25TZW5kQ2hhbm5lbE9wZW4gPSB0ZXN0
LnN0ZXBfZnVuYyhmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICB2YXIgbXNnRWwgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnbXNnJyk7Ci0gICAgc2VuZENoYW5uZWwuc2VuZCgnJyk7Ci0gICAgbXNn
RWwuaW5uZXJIVE1MICs9ICdTZW50OiBbZW1wdHkgc3RyaW5nXTxicj4nOwotICAgIHNlbmRDaGFu
bmVsLnNlbmQoJ2RvbmUnKTsKLSAgICBtc2dFbC5pbm5lckhUTUwgKz0gJ1NlbnQ6ICJkb25lIjxi
cj4nOwotICB9KTsKLQotICAvLyBDaGVjayB0aGUgbWVzc2FnZXMgcmVjZWl2ZWQgb24gdGhlIG90
aGVyIHNpZGUuCi0gIC8vIFRoZXJlIHNob3VsZCBiZSBhbiBlbXB0eSBzdHJpbmcgbWVzc2FnZSBm
b2xsb3dlZCBieSBhIG1lc3NhZ2UgdGhhdAotICAvLyBjb250YWlucyB0aGUgc3RyaW5nICJkb25l
Ii4KLSAgLy8gUGFzcy9GYWlsIHRoZSB0ZXN0IGFjY29yZGluZyB0byB0aGUgbWVzc2FnZXMgcmVj
ZWl2ZWQKLSAgdmFyIGVtcHR5TWVzc2FnZVJlY2VpdmVkID0gZmFsc2U7Ci0gIHZhciBvblJlY2Vp
dmVNZXNzYWdlID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgdmFyIG1z
Z0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21zZycpOwotICAgIG1zZ0VsLmlubmVySFRN
TCArPSAnUmVjZWl2ZWQ6ICcgKwotICAgICAgICAoZXZlbnQuZGF0YSA/ICciJyArIGV2ZW50LmRh
dGEgKyAnIicgOiAnW2VtcHR5IHN0cmluZ10nKSArICc8YnI+JzsKLSAgICBpZiAoZW1wdHlNZXNz
YWdlUmVjZWl2ZWQpIHsKLSAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuZGF0YSwgJ2RvbmUnLCAn
VGhlICJkb25lIiBtZXNzYWdlIHdhcyBub3QgcmVjZWl2ZWQnKTsKLSAgICAgIHRlc3QuZG9uZSgp
OwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuZGF0YSwgJycs
ICdFbXB0eSBtZXNzYWdlIG5vdCByZWNlaXZlZCcpOwotICAgICAgZW1wdHlNZXNzYWdlUmVjZWl2
ZWQgPSB0cnVlOwotICAgIH0KLSAgfSk7Ci0KLSAgZnVuY3Rpb24gZXhjaGFuZ2VJY2UocGMpIHsK
LSAgICAgcmV0dXJuIGZ1bmN0aW9uKGUpIHsKLSAgICAgICBpZiAoZS5jYW5kaWRhdGUpIHsKLSAg
ICAgICAgICBwYy5hZGRJY2VDYW5kaWRhdGUoZS5jYW5kaWRhdGUpOwotICAgICAgIH0KLSAgICAg
fTsKLSAgfQotCi0gIGZ1bmN0aW9uIGV4Y2hhbmdlRGVzY3JpcHRpb24ocGMxLCBwYzIpIHsKLSAg
ICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgIHJldHVybiBwYzEuc2V0UmVtb3RlRGVzY3Jp
cHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICAgICB9OwotICB9Ci0KLSAgdGVzdC5zdGVw
KGZ1bmN0aW9uKCkgewotICAgIGdGaXJzdENvbm5lY3Rpb24gPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24obnVsbCk7Ci0gICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBnRmlyc3RDb25uZWN0aW9uLmNs
b3NlKCkpOwotCi0gICAgZ1NlY29uZENvbm5lY3Rpb24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
bnVsbCk7Ci0gICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBnU2Vjb25kQ29ubmVjdGlvbi5jbG9z
ZSgpKTsKLQotICAgIGdGaXJzdENvbm5lY3Rpb24ub25pY2VjYW5kaWRhdGUgPSBleGNoYW5nZUlj
ZShnU2Vjb25kQ29ubmVjdGlvbik7Ci0gICAgZ1NlY29uZENvbm5lY3Rpb24ub25pY2VjYW5kaWRh
dGUgPSBleGNoYW5nZUljZShnRmlyc3RDb25uZWN0aW9uKTsKLQotICAgIGdTZWNvbmRDb25uZWN0
aW9uLm9uZGF0YWNoYW5uZWwgPSBvblJlY2VpdmVDaGFubmVsOwotCi0gICAgLy8gTm90ZSB0aGUg
ZGF0YSBjaGFubmVsIHdpbGwgcHJlc2VydmUgdGhlIG9yZGVyIG9mIG1lc3NhZ2VzCi0gICAgLy8g
ZXhjaGFuZ2VkIG92ZXIgaXQgYnkgZGVmYXVsdC4KLSAgICBzZW5kQ2hhbm5lbCA9IGdGaXJzdENv
bm5lY3Rpb24uY3JlYXRlRGF0YUNoYW5uZWwoJ3NlbmREYXRhQ2hhbm5lbCcpOwotICAgIHNlbmRD
aGFubmVsLm9ub3BlbiA9IG9uU2VuZENoYW5uZWxPcGVuOwotCi0gICAgZ0ZpcnN0Q29ubmVjdGlv
bi5jcmVhdGVPZmZlcigpCi0gICAgLnRoZW4oZ0ZpcnN0Q29ubmVjdGlvbi5zZXRMb2NhbERlc2Ny
aXB0aW9uLmJpbmQoZ0ZpcnN0Q29ubmVjdGlvbikpCi0gICAgLnRoZW4oZXhjaGFuZ2VEZXNjcmlw
dGlvbihnU2Vjb25kQ29ubmVjdGlvbiwgZ0ZpcnN0Q29ubmVjdGlvbikpCi0gICAgLnRoZW4oZnVu
Y3Rpb24oKSB7Ci0gICAgICByZXR1cm4gZ1NlY29uZENvbm5lY3Rpb24uY3JlYXRlQW5zd2VyKCk7
Ci0gICAgfSkKLSAgICAudGhlbihnU2Vjb25kQ29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9u
LmJpbmQoZ1NlY29uZENvbm5lY3Rpb24pKQotICAgIC50aGVuKGV4Y2hhbmdlRGVzY3JpcHRpb24o
Z0ZpcnN0Q29ubmVjdGlvbiwgZ1NlY29uZENvbm5lY3Rpb24pKQotICAgIC5jYXRjaCh0ZXN0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKCdFcnJvciAnICsg
ZS5uYW1lICsgJzogJyArIGUubWVzc2FnZSk7Ci0gICAgIH0pKTsKLSAgfSk7Ci08L3NjcmlwdD4K
LQotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9nZXRzdGF0cy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0c3RhdHMuaHRtbAppbmRl
eCAwOTUwYTM3NGMzY2Q4YTQ0Y2JiOGJmZmMyOTkxZmM2ZGM5NTQxN2M4Li5kNmE2OTJiYjc4NjBi
OWM2YmQ3Njk5YmE0ZTk5ZWE4MDEwOTIyYzA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9nZXRzdGF0cy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2dldHN0YXRz
Lmh0bWwKQEAgLTI3LDE2ICsyNywxMSBAQCBUaGlzIHRlc3QgdXNlcyBkYXRhIG9ubHksIGFuZCB0
aHVzIGRvZXMgbm90IHJlcXVpcmUgZmFrZSBtZWRpYSBkZXZpY2VzLgogICB2YXIgZ1NlY29uZENv
bm5lY3Rpb24gPSBudWxsOwogCiAgIHZhciBvbkljZUNhbmRpZGF0ZVRvRmlyc3QgPSB0ZXN0LnN0
ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewotICAgIC8vIElmIGV2ZW50LmNhbmRpZGF0ZSBpcyBu
dWxsID0gbm8gbW9yZSBjYW5kaWRhdGVzLgotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAg
ICAgIGdTZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwot
ICAgIH0KKyAgICBnU2Vjb25kQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlk
YXRlKTsKICAgfSk7CiAKICAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQgPSB0ZXN0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihldmVudCkgewotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAgICAg
IGdGaXJzdENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAg
fQorICAgIGdGaXJzdENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7
CiAgIH0pOwogCiAgIHZhciBnZXRTdGF0c1JlY29yZEJ5VHlwZSA9IGZ1bmN0aW9uKHN0YXRzLCB0
eXBlKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9pZGVudGl0eS1oZWxwZXIuc3ViLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaWRlbnRpdHktaGVscGVyLnN1Yi5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42ZTUzODM4MDY0OGJlYTQxYzRjYTIwNTdmZjY2NmQ2MTFjYzgzNTQzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvaWRlbnRpdHktaGVscGVyLnN1Yi5qcwpAQCAtMCwwICsxLDcwIEBACisndXNlIHN0
cmljdCc7CisKKy8qCisgIEluIHdlYi1wbGF0Zm9ybS10ZXN0LCBhIG51bWJlciBvZiBkb21haW5z
IGFyZSByZXF1aXJlZCB0byBiZSBzZXQgdXAgbG9jYWxseS4KKyAgVGhlIGxpc3QgaXMgYXZhaWxh
YmxlIGF0IGRvY3MvX3dyaXRpbmctdGVzdHMvc2VydmVyLWZlYXR1cmVzLm1kLiBUaGUKKyAgYXBw
cm9wcmlhdGUgaG9zdHMgZmlsZSBlbnRyaWVzIGNhbiBiZSBnZW5lcmF0ZWQgd2l0aCB0aGUgV1BU
IENMSSB2aWEgdGhlCisgIGZvbGxvd2luZyBjb21tYW5kOiBgd3B0IG1ha2UtaG9zdHMtZmlsZWAu
CisgKi8KKworLyoKKyAgICBkaWN0aW9uYXJ5IFJUQ0lkZW50aXR5UHJvdmlkZXJEZXRhaWxzIHsK
KyAgICAgIHJlcXVpcmVkIERPTVN0cmluZyBkb21haW47CisgICAgICAgICAgICAgICBET01TdHJp
bmcgcHJvdG9jb2wgPSAiZGVmYXVsdCI7CisgICAgfTsKKyAqLworCisvLyBQYXJzZSBhIGJhc2U2
NCBKU09OIGVuY29kZWQgc3RyaW5nIHJldHVybmVkIGZyb20gZ2V0SWRlbnRpdHlBc3NlcnRpb24o
KS4KKy8vIFRoaXMgaXMgYWxzbyB0aGUgc3RyaW5nIHRoYXQgaXMgc2V0IGluIHRoZSBhPWlkZW50
aXR5IGxpbmUuCisvLyBSZXR1cm5zIGEgeyBpZHAsIGFzc2VydGlvbiB9IHdoZXJlIGlkcCBpcyBv
ZiB0eXBlIFJUQ0lkZW50aXR5UHJvdmlkZXJEZXRhaWxzCisvLyBhbmQgYXNzZXJ0aW9uIGlzIHRo
ZSBkZXNlcmlhbGl6ZWQgSlNPTiB0aGF0IHdhcyByZXR1cm5lZCBieSB0aGUKKy8vIElkUCBwcm94
eSdzIGdlbmVyYXRlQXNzZXJ0aW9uKCkgZnVuY3Rpb24uCitmdW5jdGlvbiBwYXJzZUFzc2VydGlv
blJlc3VsdChhc3NlcnRpb25SZXN1bHRTdHIpIHsKKyAgY29uc3QgYXNzZXJ0aW9uUmVzdWx0ID0g
SlNPTi5wYXJzZShhdG9iKGFzc2VydGlvblJlc3VsdFN0cikpOworCisgIGNvbnN0IHsgaWRwIH0g
PSBhc3NlcnRpb25SZXN1bHQ7CisgIGNvbnN0IGFzc2VydGlvbiA9IEpTT04ucGFyc2UoYXNzZXJ0
aW9uUmVzdWx0LmFzc2VydGlvbik7CisKKyAgcmV0dXJuIHsgaWRwLCBhc3NlcnRpb24gfTsKK30K
KworLy8gUmV0dXJuIHR3byBkaXN0aW5jdCBJZFAgZG9tYWlucyB0aGF0IGFyZSBkaWZmZXJlbnQg
ZnJvbSBjdXJyZW50IGRvbWFpbgorZnVuY3Rpb24gZ2V0SWRwRG9tYWlucygpIHsKKyAgY29uc3Qg
ZG9tYWluQSA9ICd7e2hvc3RzW2FsdF1bXX19JzsKKyAgY29uc3QgZG9tYWluQiA9ICd7e2RvbWFp
bnNbd3d3MV19fSc7CisgIGNvbnN0IGRvbWFpbkMgPSAne3tkb21haW5zW3d3dzJdfX0nOworCisg
IGlmKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PT0gZG9tYWluQSkgeworICAgIHJldHVybiBb
ZG9tYWluQiwgZG9tYWluQ107CisgIH0gZWxzZSBpZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUg
PT09IGRvbWFpbkIpIHsKKyAgICByZXR1cm4gW2RvbWFpbkEsIGRvbWFpbkNdOworICB9IGVsc2Ug
eworICAgIHJldHVybiBbZG9tYWluQSwgZG9tYWluQl07CisgIH0KK30KKworZnVuY3Rpb24gYXNz
ZXJ0X3J0Y2Vycm9yX3JlamVjdGlvbihlcnJvckRldGFpbCwgcHJvbWlzZSwgZGVzYykgeworICBy
ZXR1cm4gcHJvbWlzZS50aGVuKAorICAgIHJlcyA9PiB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVk
KGBFeHBlY3QgcHJvbWlzZSB0byBiZSByZWplY3RlZCB3aXRoIFJUQ0Vycm9yLCBidXQgaW5zdGVh
ZCBnb3QgJHtyZXN9YCk7CisgICAgfSwgZXJyID0+IHsKKyAgICAgIGFzc2VydF90cnVlKGVyciBp
bnN0YW5jZW9mIFJUQ0Vycm9yLAorICAgICAgICAnRXhwZWN0IGVycm9yIG9iamVjdCB0byBiZSBp
bnN0YW5jZSBvZiBSVENFcnJvcicpOworCisgICAgICBhc3NlcnRfZXF1YWxzKGVyci5lcnJvckRl
dGFpbCwgZXJyb3JEZXRhaWwsCisgICAgICAgIGBFeHBlY3QgUlRDRXJyb3Igb2JqZWN0IGhhdmUg
ZXJyb3JEZXRhaWwgc2V0IHRvICR7ZXJyb3JEZXRhaWx9YCk7CisKKyAgICAgIHJldHVybiBlcnI7
CisgICAgfSk7Cit9CisKKy8vIGNvbnN0cnVjdCBhIGhvc3Qgc3RyaW5nIGNvbnNpc3Qgb2YgZG9t
YWluIGFuZCBvcHRpb25hbGx5IHBvcnQKKy8vIElmIHRoZSBkZWZhdWx0IEhUVFAvSFRUUFMgcG9y
dCBpcyB1c2VkLCB3aW5kb3cubG9jYXRpb24ucG9ydCByZXR1cm5zCisvLyBlbXB0eSBzdHJpbmcu
CitmdW5jdGlvbiBob3N0U3RyaW5nKGRvbWFpbiwgcG9ydCkgeworICBpZihwb3J0ID09PSAnJykg
eworICAgIHJldHVybiBkb21haW47CisgIH0gZWxzZSB7CisgICAgcmV0dXJuIGAke2RvbWFpbn06
JHtwb3J0fWA7CisgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1lZGlhLWNhbGwuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1lZGlhLWNhbGwuaHRt
bAppbmRleCBiMWViYTA4ZDBiNDMzYzYwYzYzMzIxOTljZDM1Mjk0ODQ3MDI4YTBjLi45ZDI1OTg1
MThkYTRiYmJjYjdhYzc4MDI2YjA3MzdkNDBkY2MwOWVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9uby1tZWRpYS1jYWxsLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvbm8tbWVkaWEtY2FsbC5odG1sCkBAIC01OCwxNiArNTgsMTEgQEAKICAgfTsKIAogICB2YXIg
b25JY2VDYW5kaWRhdGVUb0ZpcnN0ID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsK
LSAgICAvLyBJZiBldmVudC5jYW5kaWRhdGUgaXMgbnVsbCA9IG5vIG1vcmUgY2FuZGlkYXRlcy4K
LSAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7Ci0gICAgICBnU2Vjb25kQ29ubmVjdGlvbi5hZGRJ
Y2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ1NlY29uZENvbm5lY3Rp
b24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CiAgIH0pOwogCiAgIHZhciBvbklj
ZUNhbmRpZGF0ZVRvU2Vjb25kID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7Ci0gICAgICBnRmlyc3RDb25uZWN0aW9uLmFkZEljZUNh
bmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwotICAgIH0KKyAgICBnRmlyc3RDb25uZWN0aW9uLmFk
ZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwogICB9KTsKIAogICB2YXIgb25JY2VDb25u
ZWN0aW9uU3RhdGVDaGFuZ2UgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvbWlzZXMtY2FsbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvbWlzZXMtY2FsbC5odG1sCmluZGV4IDhiOWEyNzU1NDk3MzUz
MWU4NTI4NDA2YTUyZDM4YjdjNTU5MzJmM2MuLmVlNjRiNDYzZWUyMmFjYTFiNjhlNjg3NWUxMjQ0
MjVjOWU0Mzc0M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb21pc2VzLWNhbGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm9taXNlcy1jYWxsLmh0bWwK
QEAgLTI0LDE2ICsyNCwxMSBAQCBUaGlzIHRlc3QgdXNlcyBkYXRhIG9ubHksIGFuZCB0aHVzIGRv
ZXMgbm90IHJlcXVpcmUgZmFrZSBtZWRpYSBkZXZpY2VzLgogICB2YXIgZ1NlY29uZENvbm5lY3Rp
b24gPSBudWxsOwogCiAgIHZhciBvbkljZUNhbmRpZGF0ZVRvRmlyc3QgPSB0ZXN0LnN0ZXBfZnVu
YyhmdW5jdGlvbihldmVudCkgewotICAgIC8vIElmIGV2ZW50LmNhbmRpZGF0ZSBpcyBudWxsID0g
bm8gbW9yZSBjYW5kaWRhdGVzLgotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAgICAgIGdT
ZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwotICAgIH0K
KyAgICBnU2Vjb25kQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsK
ICAgfSk7CiAKICAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQgPSB0ZXN0LnN0ZXBfZnVuYyhm
dW5jdGlvbihldmVudCkgewotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAgICAgIGdGaXJz
dENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQorICAg
IGdGaXJzdENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CiAgIH0p
OwogCiAgIHZhciBvbkljZUNvbm5lY3Rpb25TdGF0ZUNoYW5nZSA9IHRlc3Quc3RlcF9mdW5jKGZ1
bmN0aW9uKGV2ZW50KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9SRUFETUUudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvUkVBRE1FLnR4
dAppbmRleCAxMzEwNzE3Y2NiOWMwMzViMDExZmY1ZmU1NDMwZmJkN2U5ZjE1OGYyLi41ZTE3ZmJm
OWMzNTRlZGFiYWY0OGY2ZWUxZDAxN2YyM2QxOGUyMTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9SRUFETUUu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb3RvY29sL1JFQURNRS50eHQKQEAgLTIsMjIgKzIsMjEgQEAgVGhpcyBkaXJlY3Rvcnkg
Y29udGFpbnMgZmlsZXMgdGhhdCB0ZXN0IGZvciBiZWhhdmlvciByZWxldmFudCB0byB3ZWJydGMs
CiBidXQgd2hpY2ggaXMgc3BlY2lmaWVkIGluIHByb3RvY29sIHNwZWNpZmljYXRpb25zIGZyb20g
dGhlIElFVEYsIG5vdCBpbgogQVBJIHJlY29tbWVuZGF0aW9ucyBmcm9tIHRoZSBXM0MuCiAKLVRo
ZSBtYWluIHNwZWNpZmljYXRpb25zIGFyZSBnaXZlbiBpbiB0aGUgZm9sbG93aW5nIGludGVybmV0
LWRyYWZ0czoKLQotLSBkcmFmdC1pZXRmLXJ0Y3dlYi1vdmVydmlldwotLSBkcmFmdC1pZXRmLXJ0
Y3dlYi10cmFuc3BvcnRzCi0tIGRyYWZ0LWlldGYtcnRjd2ViLXNlY3VyaXR5LWFyY2gKLS0gZHJh
ZnQtaWV0Zi1ydGN3ZWItc2VjdXJpdHkKLS0gZHJhZnQtaWV0Zi1ydGN3ZWItcnRwLXVzYWdlCi0t
IGRyYWZ0LWlldGYtcnRjd2ViLWpzZXAKLS0gZHJhZnQtaWV0Zi1ydGN3ZWItaXAtaGFuZGxpbmcK
LS0gZHJhZnQtaWV0Zi1ydGN3ZWItZmVjCi0tIGRyYWZ0LWlldGYtcnRjd2ViLWRhdGEtcHJvdG9j
b2wKLS0gZHJhZnQtaWV0Zi1ydGN3ZWItZGF0YS1jaGFubmVsCi0tIGRyYWZ0LWlldGYtbW11c2lj
LXNkcC1zaW11bGNhc3QKLS0gZHJhZnQtaWV0Zi1tbXVzaWMtcmlkCitUaGUgbWFpbiBzcGVjaWZp
Y2F0aW9ucyBhcmUgZ2l2ZW4gaW4gdGhlIGZvbGxvd2luZyBSRkNzOgogCiAtIFJGQyA3NzQyLCAi
V2ViUlRDIFZpZGVvIFByb2Nlc3NpbmcgYW5kIENvZGVjIFJlcXVpcmVtZW50cyIKIC0gUkZDIDc4
NzQsICJXZWJSVEMgQXVkaW8gQ29kZWMgYW5kIFByb2Nlc3NpbmcgUmVxdWlyZW1lbnRzIgorLSBS
RkMgODgyNSAoZHJhZnQtaWV0Zi1ydGN3ZWItb3ZlcnZpZXcpCistIFJGQyA4ODI2IChkcmFmdC1p
ZXRmLXJ0Y3dlYi1zZWN1cml0eSkKKy0gUkZDIDg4MjcgKGRyYWZ0LWlldGYtcnRjd2ViLXNlY3Vy
aXR5LWFyY2gpCistIFJGQyA4ODI4IChkcmFmdC1pZXRmLXJ0Y3dlYi1pcC1oYW5kbGluZykKKy0g
UkZDIDg4MjkgKGRyYWZ0LWlldGYtcnRjd2ViLWpzZXApCistIFJGQyA4ODMxIChkcmFmdC1pZXRm
LXJ0Y3dlYi1kYXRhLWNoYW5uZWwpCistIFJGQyA4ODMyIChkcmFmdC1pZXRmLXJ0Y3dlYi1kYXRh
LXByb3RvY29sKQorLSBSRkMgODgzNCAoZHJhZnQtaWV0Zi1ydGN3ZWItcnRwLXVzYWdlKQorLSBS
RkMgODgzNSAoZHJhZnQtaWV0Zi1ydGN3ZWItdHJhbnNwb3J0cykKKy0gUkZDIDg4NTEgKGRyYWZ0
LWlldGYtbW11c2ljLXJpZCkKKy0gUkZDIDg4NTMgKGRyYWZ0LWlldGYtbW11c2ljLXNkcC1zaW11
bGNhc3QpCistIFJGQyA4ODU0IChkcmFmdC1pZXRmLXJ0Y3dlYi1mZWMpCiAKLUFuIG92ZXJ2aWV3
IG9mIHRoZSBkZXBlbmRlbmNpZXMgaW52b2x2ZWQgaXMgaW4gZHJhZnQtamVubmluZ3MtcnRjd2Vi
LWRlcHMKK1RoaXMgbGlzdCBpcyBpbmNvbXBsZXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1maW5n
ZXJwcmludC12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtZmluZ2VycHJpbnQtdmFs
aWRhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggY2ViYjdhYWNjZDJmYjBhODMxYjllMzE4Y2UxMjMy
ZDI1NWJjN2U4Ny4uNThhMTMzZWQzOTFiOGE0MTg1ZTU4NDE2YzI5ODM3MmNiNWZmYzc0ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvZHRscy1maW5nZXJwcmludC12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9kdGxzLWZpbmdlcnByaW50LXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEs
MyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotVElNRU9V
VCBDb25uZWN0aW9uIGZhaWxzIGlmIG9uZSBzaWRlIHByb3ZpZGVzIGEgd3JvbmcgRFRMUyBmaW5n
ZXJwcmludCBUZXN0IHRpbWVkIG91dAorUEFTUyBDb25uZWN0aW9uIGZhaWxzIGlmIG9uZSBzaWRl
IHByb3ZpZGVzIGEgd3JvbmcgRFRMUyBmaW5nZXJwcmludAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9kdGxz
LXNldHVwLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtc2V0dXAuaHR0cHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA1ZDIwOTZhODA1ZDVkYzA0MDMyMGY0NzhhNGE2YjQ1NTdhNjVkNjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9kdGxzLXNldHVwLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDUgQEAKKworUEFTUyBQQyBzaG91bGQgYWNjZXB0IGluaXRpYWwgb2ZmZXIgd2l0aCBz
ZXR1cD1hY3RwYXNzCitGQUlMIFBDIHNob3VsZCBhY2NlcHQgaW5pdGlhbCBvZmZlciB3aXRoIHNl
dHVwPWFjdGl2ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYT1zZXR1cDpwYXNzaXZlIiBidXQg
Z290ICJhPXNldHVwOmFjdGl2ZSIKK0ZBSUwgUEMgc2hvdWxkIGFjY2VwdCBpbml0aWFsIG9mZmVy
IHdpdGggc2V0dXA9cGFzc2l2ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJPcGVyYXRpb25FcnJvcjogRmFpbGVkIHRvIHNldCBsb2NhbCBhbnN3
ZXIgc2RwOiBGYWlsZWQgdG8gYXBwbHkgdGhlIGRlc2NyaXB0aW9uIGZvciBtPSBzZWN0aW9uIHdp
dGggbWlkPSdhMSc6IE9mZmVyZXIgbXVzdCB1c2UgYWN0cGFzcyB2YWx1ZSBvciBjdXJyZW50IG5l
Z290aWF0ZWQgcm9sZSBmb3Igc2V0dXAgYXR0cmlidXRlLiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRs
cy1zZXR1cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1zZXR1cC5odHRwcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZlYjBhMWFlNjUyYTQzNTVkZDkxZGFmMjQ5MTM2ZjI5M2JiNTA5ZTEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9kdGxzLXNldHVwLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIGE9
c2V0dXAgU0RQIHBhcmFtZXRlciB0ZXN0PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8v
IFRlc3RzIGZvciBjb3JyZWN0IGJlaGF2aW9yIG9mIERUTFMgYT1zZXR1cCBwYXJhbWV0ZXIuCisK
Ky8vIFNEUCBjb3BpZWQgZnJvbSBKU0VQIEV4YW1wbGUgNy4xCisvLyBJdCBjb250YWlucyB0d28g
bWVkaWEgc3RyZWFtcyB3aXRoIGRpZmZlcmVudCB1ZnJhZ3MsIGFuZCBidW5kbGUKKy8vIHR1cm5l
ZCBvbi4KK2NvbnN0IGtTZHAgPSBgdj0wCitvPS0gNDk2MjMwMzMzMzE3OTg3MTcyMiAxIElOIElQ
NCAwLjAuMC4wCitzPS0KK3Q9MCAwCithPWljZS1vcHRpb25zOnRyaWNrbGUKK2E9Z3JvdXA6QlVO
RExFIGExIHYxCithPWdyb3VwOkxTIGExIHYxCittPWF1ZGlvIDEwMTAwIFVEUC9UTFMvUlRQL1NB
VlBGIDk2IDAgOCA5NyA5OAorYz1JTiBJUDQgMjAzLjAuMTEzLjEwMAorYT1taWQ6YTEKK2E9c2Vu
ZHJlY3YKK2E9cnRwbWFwOjk2IG9wdXMvNDgwMDAvMgorYT1ydHBtYXA6MCBQQ01VLzgwMDAKK2E9
cnRwbWFwOjggUENNQS84MDAwCithPXJ0cG1hcDo5NyB0ZWxlcGhvbmUtZXZlbnQvODAwMAorYT1y
dHBtYXA6OTggdGVsZXBob25lLWV2ZW50LzQ4MDAwCithPW1heHB0aW1lOjEyMAorYT1leHRtYXA6
MSB1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZAorYT1leHRtYXA6MiB1cm46aWV0
ZjpwYXJhbXM6cnRwLWhkcmV4dDpzc3JjLWF1ZGlvLWxldmVsCithPW1zaWQ6NDcwMTdmZWUtYjZj
MS00MTYyLTkyOWMtYTI1MTEwMjUyNDAwIGY4MzAwNmM1LWEwZmYtNGUwYS05ZWQ5LWQzZTY3NDdi
ZTdkOQorYT1pY2UtdWZyYWc6RVRFbgorYT1pY2UtcHdkOk90U0swV3BOdHBVamtZNCs4NmpzN1pR
bAorYT1maW5nZXJwcmludDpzaGEtMjU2IDE5OkUyOjFDOjNCOjRCOjlGOjgxOkU2OkI4OjVDOkY0
OkE1OkE4OkQ4OjczOjA0OkJCOjA1OjJGOjcwOjlGOjA0OkE5OjBFOjA1OkU5OjI2OjMzOkU4Ojcw
Ojg4OkEyCithPXNldHVwOmFjdHBhc3MKK2E9ZHRscy1pZDoxCithPXJ0Y3A6MTAxMDEgSU4gSVA0
IDIwMy4wLjExMy4xMDAKK2E9cnRjcC1tdXgKK2E9cnRjcC1yc2l6ZQorbT12aWRlbyAxMDEwMiBV
RFAvVExTL1JUUC9TQVZQRiAxMDAgMTAxCitjPUlOIElQNCAyMDMuMC4xMTMuMTAwCithPW1pZDp2
MQorYT1zZW5kcmVjdgorYT1ydHBtYXA6MTAwIFZQOC85MDAwMAorYT1ydHBtYXA6MTAxIHJ0eC85
MDAwMAorYT1mbXRwOjEwMSBhcHQ9MTAwCithPWV4dG1hcDoxIHVybjppZXRmOnBhcmFtczpydHAt
aGRyZXh0OnNkZXM6bWlkCithPXJ0Y3AtZmI6MTAwIGNjbSBmaXIKK2E9cnRjcC1mYjoxMDAgbmFj
aworYT1ydGNwLWZiOjEwMCBuYWNrIHBsaQorYT1tc2lkOjQ3MDE3ZmVlLWI2YzEtNDE2Mi05Mjlj
LWEyNTExMDI1MjQwMCBmMzBiZGI0YS01ZGI4LTQ5YjUtYmNkYy1lMGM5YTIzMTcyZTAKK2E9aWNl
LXVmcmFnOkJHS2sKK2E9aWNlLXB3ZDptcXlXc0FqdnRLd1RHbnZoUHp0UTltSWYKK2E9ZmluZ2Vy
cHJpbnQ6c2hhLTI1NiAxOTpFMjoxQzozQjo0Qjo5Rjo4MTpFNjpCODo1QzpGNDpBNTpBODpEODo3
MzowNDpCQjowNToyRjo3MDo5RjowNDpBOTowRTowNTpFOToyNjozMzpFODo3MDo4ODpBMgorYT1z
ZXR1cDphY3RwYXNzCithPWR0bHMtaWQ6MQorYT1ydGNwOjEwMTAzIElOIElQNCAyMDMuMC4xMTMu
MTAwCithPXJ0Y3AtbXV4CithPXJ0Y3AtcnNpemUKK2A7CisKK2ZvciAobGV0IHNldHVwIG9mIFsn
YWN0cGFzcycsICdhY3RpdmUnLCAncGFzc2l2ZSddKSB7CisgIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgICBjb25zdCBzZHAgPSBrU2RwLnJlcGxhY2UoL2E9c2V0dXA6YWN0cGFzcy9nLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYT1zZXR1cDonICsgc2V0dXApOworICAgIGNv
bnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlw
ZTogJ29mZmVyJywgc2RwOiBzZHB9KTsKKyAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYzEuY3Jl
YXRlQW5zd2VyKCk7CisgICAgY29uc3QgcmVzdWx0aW5nU2V0dXAgPSBhbnN3ZXIuc2RwLm1hdGNo
KC9hPXNldHVwOlxTKy8pOworICAgIGlmIChzZXR1cCA9PT0gJ2FjdGl2ZScpIHsKKyAgICAgIGFz
c2VydF9lcXVhbHMocmVzdWx0aW5nU2V0dXBbMF0sICdhPXNldHVwOnBhc3NpdmUnKTsKKyAgICB9
IGVsc2UgaWYgKHNldHVwID09PSAncGFzc2l2ZScpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMocmVz
dWx0aW5nU2V0dXBbMF0sICdhPXNldHVwOmFjdGl2ZScpOworICAgIH0gZWxzZSBpZiAoc2V0dXAg
PT09ICdhY3RwYXNzJykgeworICAgICAgLy8gRm9yIGFjdHBhc3MsIGVpdGhlciBhY3RpdmUgb3Ig
cGFzc2l2ZSBhcmUgbGVnYWwsIGFsdGhvdWdoCisgICAgICAvLyBhY3RpdmUgaXMgUkVDT01NRU5E
RUQgYnkgUkZDIDU3NjMgLyA4ODQyLgorICAgICAgYXNzZXJ0X2luX2FycmF5KHJlc3VsdGluZ1Nl
dHVwWzBdLCBbJ2E9c2V0dXA6YWN0aXZlJywgJ2E9c2V0dXA6cGFzc2l2ZSddKTsKKyAgICB9Cisg
ICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgfSwgJ1BDIHNob3Vs
ZCBhY2NlcHQgaW5pdGlhbCBvZmZlciB3aXRoIHNldHVwPScgKyBzZXR1cCk7Cit9Cis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29s
L2hhbmRvdmVyLWRhdGFjaGFubmVsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOGZlZTIwODYw
MzU2YmYxNTEwNjAzMWE2MDc5ODhhNWQ0ODE3NzMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFu
ZG92ZXItZGF0YWNoYW5uZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIEhh
bmRvdmVyIHdpdGggZGF0YWNoYW5uZWwgcmVpbml0aWF0ZWQgZnJvbSBuZXcgY2FsbGVlIGNvbXBs
ZXRlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXItZGF0YWNoYW5uZWwuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVy
LWRhdGFjaGFubmVsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGYyMjRmODIyYTc2YmI0ODkyNGJjMTNlNTlk
NTNmOGEyNGQ5OWY2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVs
Lmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0
Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIEhhbmRvdmVyczwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNl
IHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgb2ZmZXJQYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBhbnN3ZXJQY0ZpcnN0ID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IGFuc3dlclBjU2Vjb25kID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4geworICAgIG9mZmVyUGMuY2xvc2Uo
KTsKKyAgICBhbnN3ZXJQY0ZpcnN0LmNsb3NlKCk7CisgICAgYW5zd2VyUGNTZWNvbmQuY2xvc2Uo
KTsKKyAgfSk7CisgIGNvbnN0IG9mZmVyRGF0YWNoYW5uZWwxID0gb2ZmZXJQYy5jcmVhdGVEYXRh
Q2hhbm5lbCgnaW5pdGlhbCcpOworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMob2ZmZXJQYywgYW5z
d2VyUGNGaXJzdCk7CisKKyAgLy8gTmVnb3RpYXRlIGNvbm5lY3Rpb24gd2l0aCBQQyAxCisgIGNv
bnN0IG9mZmVyMSA9IGF3YWl0IG9mZmVyUGMuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgb2ZmZXJQ
Yy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyMSk7CisgIGF3YWl0IGFuc3dlclBjRmlyc3Quc2V0
UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIxKTsKKyAgY29uc3QgYW5zd2VyMSA9IGF3YWl0IGFuc3dl
clBjRmlyc3QuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oYW5zd2VyMSk7CisgIGF3YWl0IGFuc3dlclBjRmlyc3Quc2V0TG9jYWxEZXNjcmlwdGlv
bihhbnN3ZXIxKTsKKyAgY29uc3QgZGF0YWNoYW5uZWxBdEFuc3dlclBjRmlyc3QgPSBhd2FpdCBu
ZXcgUHJvbWlzZSgKKyAgICByID0+IGFuc3dlclBjRmlyc3Qub25kYXRhY2hhbm5lbCA9ICh7Y2hh
bm5lbH0pID0+IHIoY2hhbm5lbCkpOworICBjb25zdCBpY2VUcmFuc3BvcnQgPSBvZmZlclBjLnNj
dHAudHJhbnNwb3J0OworICAvLyBDaGVjayB0aGF0IG1lc3NhZ2VzIGdldCB0aHJvdWdoLgorICBk
YXRhY2hhbm5lbEF0QW5zd2VyUGNGaXJzdC5zZW5kKCdoZWxsbycpOworICBjb25zdCBtZXNzYWdl
MSA9IGF3YWl0IGF3YWl0TWVzc2FnZShvZmZlckRhdGFjaGFubmVsMSk7CisgIGFzc2VydF9lcXVh
bHMobWVzc2FnZTEsICdoZWxsbycpOworCisgIC8vIFJlbmVnb3RpYXRlIHdpdGggUEMgMgorICAv
LyBOb3RlIC0gSUNFIGNhbmRpZGF0ZXMgd2lsbCBhbHNvIGJlIHNlbnQgdG8gYW5zd2VyUGMxLCBi
dXQgdGhhdCBzaG91bGRuJ3QgbWF0dGVyLgorICBleGNoYW5nZUljZUNhbmRpZGF0ZXMob2ZmZXJQ
YywgYW5zd2VyUGNTZWNvbmQpOworICBjb25zdCBvZmZlcjIgPSBhd2FpdCBvZmZlclBjLmNyZWF0
ZU9mZmVyKCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcjIpOwor
ICBhd2FpdCBhbnN3ZXJQY1NlY29uZC5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcjIpOworICBj
b25zdCBhbnN3ZXIyID0gYXdhaXQgYW5zd2VyUGNTZWNvbmQuY3JlYXRlQW5zd2VyKCk7CisgIGF3
YWl0IG9mZmVyUGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyMik7CisgIGF3YWl0IGFuc3dl
clBjU2Vjb25kLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyMik7CisKKyAgLy8gS2lsbCB0aGUg
Zmlyc3QgUEMuIFRoaXMgc2hvdWxkIG5vdCBhZmZlY3QgYW55dGhpbmcsIGJ1dCBsZWF2aW5nIGl0
IG1heSBjYXVzZSB1bnRvd2FyZCBldmVudHMuCisgIGFuc3dlclBjRmlyc3QuY2xvc2UoKTsKKwor
ICBjb25zdCBhbnN3ZXJEYXRhQ2hhbm5lbDIgPSBhbnN3ZXJQY1NlY29uZC5jcmVhdGVEYXRhQ2hh
bm5lbCgnc2Vjb25kIGJhY2snKTsKKworICBjb25zdCBkYXRhY2hhbm5lbEF0T2ZmZXJQY1NlY29u
ZCA9IGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gb2ZmZXJQYy5vbmRhdGFjaGFubmVsID0gKHtjaGFu
bmVsfSkgPT4gcihjaGFubmVsKSk7CisKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBkYXRhY2hh
bm5lbEF0T2ZmZXJQY1NlY29uZC5vbm9wZW4gPSByKTsKKworICBkYXRhY2hhbm5lbEF0T2ZmZXJQ
Y1NlY29uZC5zZW5kKCdoZWxsbyBhZ2FpbicpOworICBjb25zdCBtZXNzYWdlMiA9IGF3YWl0IGF3
YWl0TWVzc2FnZShhbnN3ZXJEYXRhQ2hhbm5lbDIpOworICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2Uy
LCAnaGVsbG8gYWdhaW4nKTsKK30sICdIYW5kb3ZlciB3aXRoIGRhdGFjaGFubmVsIHJlaW5pdGlh
dGVkIGZyb20gbmV3IGNhbGxlZSBjb21wbGV0ZXMnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9oYW5kb3Zlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIuaHRtbAppbmRleCAzNzhkNjVmZmMzMjBi
ZjBhYzZhNmExNjY5MGRkOTkyZDBmNWU1MzZkLi43NDhjYmVmZjhkN2JkODNiZTQ3M2MwNDk5MDhi
NTNmN2ZlMmJjOTdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRv
dmVyLmh0bWwKQEAgLTY5LDYgKzY5LDQgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBh
d2FpdCBvZmZlclBjLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyMik7CiB9LCAnTmVnb3RpYXRp
b24gb2YgaGFuZG92ZXIgaW5pdGlhdGVkIGF0IGNhbGxlZSB3b3JrcycpOwogCi0KLQogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtY2xvY2tyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1j
bG9ja3JhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYjI0YzI2MmQ4NTkzOTQ4ZmVhNWRj
ZjAyMzY2ZGE2YTRkZjI3MmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtY2xvY2tyYXRlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyB2aWRlbyBydHAgdGltZXN0YW1wcyBp
bmNyZWFzZSBieSBhcHByb3hpbWF0ZWx5IDkwMDAwIHBlciBzZWNvbmQKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvcnRwLWNsb2NrcmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0ZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQxNzc0MjAwNTBmNTgyMDk0ZDhmZTI5M2FhYzE2NjViZGFlYTc5OGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9ydHAtY2xvY2tyYXRlLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPCEtLSBUaGlzIGZpbGUgY29udGFpbnMgYSB0ZXN0
IHRoYXQgd2FpdHMgZm9yIHR3byBzZWNvbmRzLiAtLT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciPgorPHRpdGxlPlJUUCBjbG9ja3JhdGU8L3RpdGxlPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JU
Q1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJp
Y3QnOworCithc3luYyBmdW5jdGlvbiBpbml0aWF0ZVNpbmdsZVRyYWNrQ2FsbEFuZFJldHVyblJl
Y2VpdmVyKHQsIGtpbmQpIHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7
CisKKyAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe1traW5kXTp0cnVlfSk7
CisgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gdHJhY2suc3RvcCgpKTsKKyAgcGMxLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworCisg
IGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGNvbnN0IHRyYWNrRXZlbnQgPSBh
d2FpdCBleGNoYW5nZU9mZmVyQW5kTGlzdGVuVG9PbnRyYWNrKHQsIHBjMSwgcGMyKTsKKyAgYXdh
aXQgZXhjaGFuZ2VBbnN3ZXIocGMxLCBwYzIpOworICBhd2FpdCB3YWl0Rm9yQ29ubmVjdGlvblN0
YXRlQ2hhbmdlKHBjMiwgWydjb25uZWN0ZWQnXSk7CisgIHJldHVybiB0cmFja0V2ZW50LnJlY2Vp
dmVyOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIC8vIHRoZSBnZXRTeW5jaHJv
bml6YXRpb25Tb3VyY2VzIEFQSSBleHBvc2VzIHRoZSBydHAgdGltZXN0YW1wLgorICBjb25zdCBy
ZWNlaXZlciA9IGF3YWl0IGluaXRpYXRlU2luZ2xlVHJhY2tDYWxsQW5kUmV0dXJuUmVjZWl2ZXIo
dCwgJ3ZpZGVvJyk7CisgIGNvbnN0IGZpcnN0ID0gYXdhaXQgbGlzdGVuRm9yU1NSQ3ModCwgcmVj
ZWl2ZXIpOworICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHQuc3RlcF90aW1lb3V0KHJl
c29sdmUsIDIwMDApKTsKKyAgY29uc3Qgc2Vjb25kID0gYXdhaXQgbGlzdGVuRm9yU1NSQ3ModCwg
cmVjZWl2ZXIpOworICAvLyBydHBUaW1lc3RhbXAgbWF5IHdyYXAgYXQgMHhmZmZmZmZmZiwgdGFr
ZSBjYXJlIG9mIHRoYXQuCisgIGNvbnN0IGFjdHVhbENsb2NrUmF0ZSA9ICgoc2Vjb25kWzBdLnJ0
cFRpbWVzdGFtcCAtIGZpcnN0WzBdLnJ0cFRpbWVzdGFtcCArIDB4ZmZmZmZmZmYpICUgMHhmZmZm
ZmZmZikgLyAoc2Vjb25kWzBdLnRpbWVzdGFtcCAtIGZpcnN0WzBdLnRpbWVzdGFtcCkgKiAxMDAw
OworICBhc3NlcnRfYXBwcm94X2VxdWFscyhhY3R1YWxDbG9ja1JhdGUsIDkwMDAwLCA5MDAwLCAn
VmlkZW8gY2xvY2tyYXRlIGlzIGFwcHJveGltYXRlbHkgOTAwMDAnKTsKK30sICd2aWRlbyBydHAg
dGltZXN0YW1wcyBpbmNyZWFzZSBieSBhcHByb3hpbWF0ZWx5IDkwMDAwIHBlciBzZWNvbmQnKTsK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWV4dGVuc2lvbi1zdXBwb3J0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3J0cC1leHRlbnNpb24tc3VwcG9ydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2ViMzBjNTI0NzcyYjNjNTRjNjRhYWVmYzliOTBiZWM2M2RhYjZmMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL3J0cC1leHRlbnNpb24tc3VwcG9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CisKK1BBU1MgUlRQIGhlYWRlciBleHRlbnNpb24gdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6
c3NyYy1hdWRpby1sZXZlbCBpcyBwcmVzZW50IGluIG9mZmVyCitQQVNTIFJUUCBoZWFkZXIgZXh0
ZW5zaW9uIHVybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6bWlkIGlzIHByZXNlbnQgaW4g
b2ZmZXIKK1BBU1MgUlRQIGhlYWRlciBleHRlbnNpb24gdXJuOjNncHA6dmlkZW8tb3JpZW50YXRp
b24gaXMgcHJlc2VudCBpbiBvZmZlcgorUEFTUyBSVFAgaGVhZGVyIGV4dGVuc2lvbiB1cm46aWV0
ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOnJ0cC1zdHJlYW0taWQgaXMgcHJlc2VudCBpbiBvZmZl
cgorUEFTUyBSVFAgaGVhZGVyIGV4dGVuc2lvbiB1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpz
ZGVzOnJlcGFpcmVkLXJ0cC1zdHJlYW0taWQgaXMgcHJlc2VudCBpbiBvZmZlcgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1leHRlbnNpb24tc3Vw
cG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzZDNmZTg3ZDkzZGM4MGZmZDg2NGEzMTQ3Yzc0YzIyZWJm
NTY4YjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQuaHRtbApA
QCAtMCwwICsxLDQ0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8
dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gUlRQIGV4dGVuc2lvbnM8L3RpdGxlPgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3RoaXJkX3BhcnR5L3NkcC9zZHAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0
JzsKKworYXN5bmMgZnVuY3Rpb24gc2V0dXAoKSB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICBwYzEuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgIHBjMS5hZGRU
cmFuc2NlaXZlcigndmlkZW8nKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2Zm
ZXIoKTsKKyAgcGMxLmNsb3NlKCk7CisgIHJldHVybiBvZmZlci5zZHA7Cit9CisKKy8vIEV4dGVu
c2lvbnMgdGhhdCBNVVNUIGJlIHN1cHBvcnRlZAorY29uc3QgbWFuZGF0b3J5RXh0ZW5zaW9ucyA9
IFsKKyAgLy8gRGlyZWN0bHkgcmVmZXJlbmNlZCBpbiBXZWJSVEMgUlRQIHVzYWdlCisgICd1cm46
aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzc3JjLWF1ZGlvLWxldmVsJywgLy8gUkZDIDg4MzQgNS4y
LjIKKyAgJ3VybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6bWlkJywgIC8vIFJGQyA4ODM0
IDUuMi40CisgICd1cm46M2dwcDp2aWRlby1vcmllbnRhdGlvbicsICAvLyBSRkMgODgzNCA1LjIu
NQorICAvLyBSZXF1aXJlZCBmb3Igc3VwcG9ydCBvZiBzaW11bGNhc3Qgd2l0aCBSSUQKKyAgJ3Vy
bjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6cnRwLXN0cmVhbS1pZCcsICAvLyBSRkMgODg1
MiA0LjMKKyAgJ3VybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6cmVwYWlyZWQtcnRwLXN0
cmVhbS1pZCcsICAvLyBSRkMgODg1MiA0LjQKK107CisKKy8vIEZvciBmdXJ0aGVyIHRlc3Rpbmc6
CisvLyAtIEFkZCB0ZXN0IGZvciByYXBpZCBzeW5jaHJvbml6YXRpb24gLSBSRkMgODgzNCA1LjIu
MQorLy8gLSBBZGQgdGVzdCBmb3IgZW5jcnlwdGVkIGhlYWRlciBleHRlbnNpb25zIChSRkMgNjkw
NCkKKy8vIC0gU2VwYXJhdGUgdGVzdHMgZm9yIGV4dGVuc2lvbnMgaW4gYXVkaW8gYW5kIHZpZGVv
IHNlY3Rpb25zCisKK2ZvciAoY29uc3QgZXh0ZW5zaW9uIG9mIG1hbmRhdG9yeUV4dGVuc2lvbnMp
IHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHNkcCA9IGF3YWl0IHNl
dHVwKCk7CisgICAgY29uc3QgZXh0ZW5zaW9ucyA9IFNEUFV0aWxzLm1hdGNoUHJlZml4KHNkcCwg
J2E9ZXh0bWFwOicpCisgICAgICAgICAgLm1hcChTRFBVdGlscy5wYXJzZUV4dG1hcCk7CisgICAg
YXNzZXJ0X3RydWUoISFleHRlbnNpb25zLmZpbmQoZXh0ID0+IGV4dC51cmkgPT09IGV4dGVuc2lv
bikpOworICB9LCBgUlRQIGhlYWRlciBleHRlbnNpb24gJHtleHRlbnNpb259IGlzIHByZXNlbnQg
aW4gb2ZmZXJgKTsKK30KKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5
cGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLmh0bWwKaW5kZXggNjgwNmU3NWVkNTE0YzA0
OTY4ZDAzYjZkODQxM2RhYTM4YjgzZDA1My4uYWE0NjRmODY1NmZlOWEwOTAzNzRlNDM0NmM0MzYw
MGNmMGI0OTdhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29s
L3J0cC1wYXlsb2FkdHlwZXMuaHRtbApAQCAtNTEsNyArNTEsNyBAQCBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CiAgIGZvciAobGV0IHBheWxvYWRUeXBlID0gNjQ7IHBheWxvYWRUeXBlIDw9IDk1
OyBwYXlsb2FkVHlwZSsrKSB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkQWNjZXNzRXJyb3In
LAotICAgICAgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNkcDogY3Jl
YXRlT2ZmZXJTZHAoNjQpfSkpOworICAgICAgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6
ICdvZmZlcicsIHNkcDogY3JlYXRlT2ZmZXJTZHAocGF5bG9hZFR5cGUpfSkpOwogICAgIHBjLmNs
b3NlKCk7CiAgIH0KIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbiB3aXRoIGEgY29kZWMgaW4gdGhl
IHJhbmdlIDY0LTk1IHRocm93cyBhbiBJbnZhbGlkQWNjZXNzRXJyb3InKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL3NkZXMtZG9udC1kb250LWRvbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1kb250LWRvbnQt
ZG9udC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTFhZDBjOGJkZTIwMWNkNGE2ZTgwMGY5NzYw
YWVmMzk2YTFjYmNlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9udC1kb250LWRvbnQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIGRvZXMgbm90IGNyZWF0ZSBvZmZl
cnMgd2l0aCBTREVTCitQQVNTIHJlamVjdHMgYSByZW1vdGUgb2ZmZXIgdGhhdCBvbmx5IGluY2x1
ZGVzIFNERVMgYW5kIG5vIERUTFMgZmluZ2VycHJpbnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1k
b250LWRvbnQtZG9udC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1kb250LWRvbnQtZG9udC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU5MzhjODRjOGJmZTM5NjgzYjY4OWFjNDJlMmEzZjlkNTMyNDQwNzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9zZGVzLWRvbnQtZG9udC1kb250Lmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIg
Y29udGVudD0ibG9uZyI+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gTVVTVCBOT1Qgc3VwcG9y
dCBTREVTPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii93ZWJydGMvdGhpcmRfcGFydHkvc2RwL3NkcC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvLyBUZXN0IHN1cHBvcnQgZm9yCisv
LyBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjODgyNiNzZWN0aW9uLTQuMy4xCisK
K2NvbnN0IHNkcCA9IGB2PTAKK289LSAwIDMgSU4gSVA0IDEyNy4wLjAuMQorcz0tCit0PTAgMAor
bT12aWRlbyA5IFVEUC9UTFMvUlRQL1NBVlBGIDEwMAorYz1JTiBJUDQgMC4wLjAuMAorYT1ydGNw
LW11eAorYT1zZW5kb25seQorYT1taWQ6dmlkZW8KK2E9cnRwbWFwOjEwMCBWUDgvOTAwMDAKK2E9
Zm10cDoxMDAgbWF4LWZyPTMwO21heC1mcz0zNjAwCithPWNyeXB0bzowIEFFU19DTV8xMjhfSE1B
Q19TSEExXzgwIGlubGluZToybnJhMjdoVFViOWlseW4yckVrQkVRTjlXT0Z0czI2Ri9qdm9mYXN3
CithPWljZS11ZnJhZzpFVEVuCithPWljZS1wd2Q6T3RTSzBXcE50cFVqa1k0Kzg2anM3Wi9sCitg
OworCisvLyBOZWdhdGl2ZSB0ZXN0IGZvciBDaHJvbWUgbGVnYWN5IGJlaGF2aW9yLgorcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzZGVzX2NvbnN0cmFpbnQgPSB7J21hbmRhdG9y
eSc6IHsnRHRsc1NydHBLZXlBZ3JlZW1lbnQnOiBmYWxzZX19OworICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbihudWxsLCBzZGVzX2NvbnN0cmFpbnQpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOworCisgIHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICBj
b25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgIGFzc2VydF9mYWxzZShvZmZl
ci5zZHAuaW5jbHVkZXMoJ1xuYT1jcnlwdG86JykpOworfSwgJ2RvZXMgbm90IGNyZWF0ZSBvZmZl
cnMgd2l0aCBTREVTJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9z
ZSgpKTsKKworICB0cnkgeworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBl
OiAnb2ZmZXInLCBzZHB9KTsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJNdXN0IG5vdCBhY2NlcHQg
U0RQIHdpdGhvdXQgZmluZ2VycHJpbnQiKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIC8vIFRPRE86
IHdoaWNoIGVycm9yIGlzIGNvcnJlY3Q/IFNlZQorICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS93
M2Mvd2VicnRjLXBjL2lzc3Vlcy8yNjcyCisgICAgYXNzZXJ0X3RydWUoWydPcGVyYXRpb25FcnJv
cicsICdJbnZhbGlkQWNjZXNzRXJyb3InXS5pbmNsdWRlcyhlLm5hbWUpKTsKKyAgfQorfSwgJ3Jl
amVjdHMgYSByZW1vdGUgb2ZmZXIgdGhhdCBvbmx5IGluY2x1ZGVzIFNERVMgYW5kIG5vIERUTFMg
ZmluZ2VycHJpbnQnKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL3NwbGl0Lmh0dHBzLmh0bWwKaW5kZXggNWViODMyOTUxN2ZiZWZlOTQ2ODJmZTc5MWFl
ODE3NjlkMDNkYTE5Ny4uM2ZjM2JkYTJhNTJjZjcxOTBjMDFhYjRkODkyNmQ3NWQzZDRmZDg1ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1s
CkBAIC0zOCwxNiArMzgsMjIgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGlmIChl
LmNhbmRpZGF0ZSkgewogICAgICAgY29uc3QgdGFyZ2V0ID0gZS5jYW5kaWRhdGUuc2RwTUxpbmVJ
bmRleCA9PT0gMCA/IGNhbGxlZUF1ZGlvIDogY2FsbGVlVmlkZW87CiAgICAgICB0YXJnZXQuYWRk
SWNlQ2FuZGlkYXRlKHtzZHBNaWQ6IGUuY2FuZGlkYXRlLnNkcE1pZCwgY2FuZGlkYXRlOiBlLmNh
bmRpZGF0ZS5jYW5kaWRhdGV9KTsKKyAgICB9IGVsc2UgeworICAgICAgY2FsbGVlQXVkaW8uYWRk
SWNlQ2FuZGlkYXRlKCk7CisgICAgICBjYWxsZWVWaWRlby5hZGRJY2VDYW5kaWRhdGUoKTsKICAg
ICB9CiAgIH0pOwogICBjYWxsZWVBdWRpby5hZGRFdmVudExpc3RlbmVyKCdpY2VjYW5kaWRhdGUn
LCAoZSkgPT4gewogICAgIGlmIChlLmNhbmRpZGF0ZSkgewogICAgICAgY2FsbGVyLmFkZEljZUNh
bmRpZGF0ZSh7c2RwTWlkOiBlLmNhbmRpZGF0ZS5zZHBNaWQsIGNhbmRpZGF0ZTogZS5jYW5kaWRh
dGUuY2FuZGlkYXRlfSk7CiAgICAgfQorICAgIC8vIE5vdGU6IGNhbGxlci5hZGRJY2VDYW5kaWRh
dGUgaXMgb25seSBjYWxsZWQgZm9yIHZpZGVvIHRvIGF2b2lkIGNhbGxpbmcgaXQgdHdpY2UuCiAg
IH0pOwogICBjYWxsZWVWaWRlby5hZGRFdmVudExpc3RlbmVyKCdpY2VjYW5kaWRhdGUnLCAoZSkg
PT4gewogICAgIGlmIChlLmNhbmRpZGF0ZSkgewogICAgICAgY2FsbGVyLmFkZEljZUNhbmRpZGF0
ZSh7c2RwTWlkOiBlLmNhbmRpZGF0ZS5zZHBNaWQsIGNhbmRpZGF0ZTogZS5jYW5kaWRhdGUuY2Fu
ZGlkYXRlfSk7CisgICAgfSBlbHNlIHsKKyAgICAgIGNhbGxlci5hZGRJY2VDYW5kaWRhdGUoKTsK
ICAgICB9CiAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92cDgtZm10cC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC92cDgtZm10cC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzgyNWE5NzU2NzNhMGJlNjc0OWU0
MjdhZDUyYmZiZjg0ZWNmOTA4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZwOC1mbXRwLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbiBwYXJz
ZXMgbWF4LWZyIGFuZCBtYXgtZnMgZm10cCBwYXJhbWV0ZXJzIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92cDgtZm10cC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdnA4
LWZtdHAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmVhNjM1OTQ5ZjE0YmZlYzE4MDA1YzA4MDNhOWJjOTlk
NjgwOWVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdnA4LWZtdHAuaHRtbApAQCAtMCwwICsxLDQ0
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0
aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBGYWlsZWQg
U3RhdGU8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvLyBUZXN0IHN1cHBvcnQgZm9yCisv
LyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzc0MSNzZWN0aW9uLTYuMQorCitjb25z
dCBzZHAgPSBgdj0wCitvPS0gMCAzIElOIElQNCAxMjcuMC4wLjEKK3M9LQordD0wIDAKK2E9Zmlu
Z2VycHJpbnQ6c2hhLTI1NiBBNzoyNDo3MjpDQTo2RTowMjo1NTozOTpCQTo2NjpERjo2RTpDQzo0
QzpEODpCMDoxQTpCRjoxQTo1Njo2NTo3RDpGNDowMzpBRDo3RTo3Nzo0MzoyQToyOTpFQzo5Mwor
bT12aWRlbyA5IFVEUC9UTFMvUlRQL1NBVlBGIDEwMAorYz1JTiBJUDQgMC4wLjAuMAorYT1ydGNw
LW11eAorYT1zZW5kb25seQorYT1taWQ6dmlkZW8KK2E9cnRwbWFwOjEwMCBWUDgvOTAwMDAKK2E9
Zm10cDoxMDAgbWF4LWZyPTMwO21heC1mcz0zNjAwCithPXNldHVwOmFjdHBhc3MKK2E9aWNlLXVm
cmFnOkVURW4KK2E9aWNlLXB3ZDpPdFNLMFdwTnRwVWprWTQrODZqczdaL2wKK2A7CisKK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICBhd2FpdCBwYy5zZXRS
ZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2RwfSk7CisgIGF3YWl0IHBjLnNldExv
Y2FsRGVzY3JpcHRpb24oKTsKKyAgY29uc3QgcmVjZWl2ZXIgPSBwYy5nZXRSZWNlaXZlcnMoKVsw
XTsKKyAgY29uc3QgcGFyYW1ldGVycyA9IHJlY2VpdmVyLmdldFBhcmFtZXRlcnMoKTsKKyAgY29u
c3Qge3NkcEZtdHBMaW5lfSA9IHBhcmFtZXRlcnMuY29kZWNzWzBdOworICBhc3NlcnRfdHJ1ZSgh
IXNkcEZtdHBMaW5lKTsKKyAgYXNzZXJ0X3RydWUoc2RwRm10cExpbmUuc3BsaXQoJzsnKS5pbmNs
dWRlcygnbWF4LWZyPTMwJykpOworICBhc3NlcnRfdHJ1ZShzZHBGbXRwTGluZS5zcGxpdCgnOycp
LmluY2x1ZGVzKCdtYXgtZnM9MzYwMCcpKTsKK30sICdzZXRSZW1vdGVEZXNjcmlwdGlvbiBwYXJz
ZXMgbWF4LWZyIGFuZCBtYXgtZnMgZm10cCBwYXJhbWV0ZXJzJyk7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2cKaW5kZXggNGUzYzgx
ZTU5NzM2NmIzNDIxYjUyNTI4M2RhNTY2MTU5NmZjNjlmNi4uNDdhNjc3YzNiYWU0N2VmZmM3MWUx
MDI4NmFiNjNiNzQ4Y2M4MDJkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvdzNjLWltcG9ydC5sb2cKQEAgLTIwLDE3ICsyMCwyMyBAQCBMaXN0IG9mIGZpbGVzOgogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29s
L2NhbmRpZGF0ZS1leGNoYW5nZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY3J5cHRvLXN1aXRlLmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9kdGxzLWZpbmdlcnByaW50LXZhbGlkYXRpb24uaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtc2V0dXAu
aHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvaWNlLXN0YXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2UtdWZyYWdwd2QuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29s
L2pzZXAtaW5pdGlhbC1vZmZlci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvbWlzc2luZy1maWVsZHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL21zaWQtcGFyc2UuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1jbG9ja3JhdGUuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1kZW11
eGluZy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvcnRwLWV4dGVuc2lvbi1zdXBwb3J0Lmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9h
ZHR5cGVzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9zY3RwLWZvcm1hdC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1kb250LWRvbnQtZG9u
dC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvc2ltdWxjYXN0LWFuc3dlci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2ltdWxjYXN0LW9mZmVyLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9zcGxpdC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdW5rbm93bi1tZWRpYXR5cGVzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC92aWRlby1jb2RlY3MuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZwOC1mbXRwLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXBs
ZWNhbGwtbm8tc3NyY3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXBsZWNhbGwtbm8tc3NyY3MuaHR0cHMuaHRtbAppbmRl
eCA1MTYwNDUxZjAxMmU2NDJkZDU2OTdlMDM0YTE5YTdmODg5NTQyMWVhLi5mMmUyMDg0NjIzNGJi
NDcwM2QyM2M4NzZmNDY4OTk0ZGNkNzRiZTMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLW5vLXNzcmNzLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvc2ltcGxlY2FsbC1uby1zc3Jjcy5odHRwcy5odG1sCkBAIC04OCwxNiArODgsMTEg
QEAKICAgfTsKIAogICB2YXIgb25JY2VDYW5kaWRhdGVUb0ZpcnN0ID0gdGVzdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAvLyBJZiBldmVudC5jYW5kaWRhdGUgaXMgbnVsbCA9IG5v
IG1vcmUgY2FuZGlkYXRlcy4KLSAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7Ci0gICAgICBnU2Vj
b25kQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9Cisg
ICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CiAg
IH0pOwogCiAgIHZhciBvbkljZUNhbmRpZGF0ZVRvU2Vjb25kID0gdGVzdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZXZlbnQpIHsKLSAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7Ci0gICAgICBnRmlyc3RD
b25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwotICAgIH0KKyAgICBn
Rmlyc3RDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwogICB9KTsK
IAogICB2YXIgb25SZW1vdGVUcmFjayA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWwKaW5kZXggZmZl
MDQzYjZhMjM3ZmFlMWE0ZjcwZTJjZmFjNDk1YTJhNjEzMmMyOC4uZGJmNmI5YTUwODNhODdmZWVl
YjNkOTNiZWZhMGEwNjAxN2JlODU1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXBs
ZWNhbGwuaHR0cHMuaHRtbApAQCAtNzksMTYgKzc5LDExIEBACiAgIH07CiAKICAgdmFyIG9uSWNl
Q2FuZGlkYXRlVG9GaXJzdCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAg
Ly8gSWYgZXZlbnQuY2FuZGlkYXRlIGlzIG51bGwgPSBubyBtb3JlIGNhbmRpZGF0ZXMuCi0gICAg
aWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkSWNlQ2Fu
ZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQorICAgIGdTZWNvbmRDb25uZWN0aW9uLmFk
ZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwogICB9KTsKIAogICB2YXIgb25JY2VDYW5k
aWRhdGVUb1NlY29uZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgaWYg
KGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRh
dGUoZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJY2VD
YW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKICAgfSk7CiAKICAgdmFyIG9uUmVtb3RlVHJhY2sg
PSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2lj
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9iYXNpYy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
NWU4ZWNlYmU5YjYzYzRkOWMyODY5ZTQzOTQ5OGU2ODkwMDVmNTIwMi4uNzM3YjUzMmY0MzRkOTJh
MDU4Njc5MzM4ZTE3YzBkNWZmNmYyZTY4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEs
MyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotVElNRU9V
VCBCYXNpYyBzaW11bGNhc3Qgc2V0dXAgd2l0aCB0aHJlZSBzcGF0aWFsIGxheWVycyBUZXN0IHRp
bWVkIG91dAorUEFTUyBCYXNpYyBzaW11bGNhc3Qgc2V0dXAgd2l0aCB0d28gc3BhdGlhbCBsYXll
cnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMu
aHRtbAppbmRleCA1ZDVmM2I1MmY1ZjY2OGNhMmRkZDUyMThjNWM5ZjYwYjg4NDU1NWRmLi5iZjJi
YWE4Y2FiOTlkMTU0MmY0NjU1NGIzNTY2NGRhMjU3NjhlNWU3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFz
aWMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbApAQCAtOSwxMiArOSwxMiBA
QAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcmlkcyA9IFsw
LCAxLCAyXTsKKyAgY29uc3QgcmlkcyA9IFswLCAxXTsKICAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwogICBj
b25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7CiAKICAgcmV0dXJuIG5lZ290aWF0ZVNpbXVsY2FzdEFuZFdhaXRGb3JW
aWRlbyh0LCByaWRzLCBwYzEsIHBjMik7Ci19LCAnQmFzaWMgc2ltdWxjYXN0IHNldHVwIHdpdGgg
dGhyZWUgc3BhdGlhbCBsYXllcnMnKTsKK30sICdCYXNpYyBzaW11bGNhc3Qgc2V0dXAgd2l0aCB0
d28gc3BhdGlhbCBsYXllcnMnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRz
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggNDMyOWEzMjNiY2IwNTJjOGMyYWJkNDAyN2ExN2I0ZGQyZWE2ODQyYy4uYjJjOWIzMWYzZjQ0
YmY1NWY5ZDU5MTU2ODgzMGQyZTVmZWI3YzJlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRzLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0xLDUgKzEsMyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwK
LQotVElNRU9VVCBTaW11bGNhc3QgZ2V0U3RhdHMgcmVzdWx0cyBUZXN0IHRpbWVkIG91dAorUEFT
UyBTaW11bGNhc3QgZ2V0U3RhdHMgcmVzdWx0cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYTEwZWI3
MjgwNjc3NDcxYzk2NTczYTlhM2Y3OTlhNzc2ZDZkNmViZC4uZTcyZDQ1MzI2MWE2ZGJmZWQ0OTcz
MGU1YTQ2MzQ0N2Q0MmYzYTc1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKIAot
SGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgSDI2NCBz
aW11bGNhc3Qgc2V0dXAgd2l0aCB0aHJlZSBzcGF0aWFsIGxheWVycyBUZXN0IHRpbWVkIG91dAor
UEFTUyBIMjY0IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHR3byBzcGF0aWFsIGxheWVycwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRtbAppbmRleCAy
NmVkMmU5MDRhOGIzNTE3YzlkZDM1YWYyNzYzMzBkNTM0MWQ3Mzg4Li5kMjNmMjk1MmFlYTQzZjgz
ZGJmZTM3MjY2YmJiZDVjNTFhZTdiNWVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3NpbXVsY2FzdC9oMjY0Lmh0dHBzLmh0bWwKQEAgLTE3LDEyICsxNywxMiBAQCBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CiAgIGFzc2VydF9pbXBsZW1lbnRzKCdnZXRDYXBhYmlsaXRpZXMnIGlu
IFJUQ1J0cFNlbmRlciwgJ1JUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMgbm90IHN1cHBvcnRl
ZCcpOwogICBhc3NlcnRfaW1wbGVtZW50cyhSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2
aWRlbycpLmNvZGVjcy5maW5kKGMgPT4gYy5taW1lVHlwZSA9PT0gJ3ZpZGVvL0gyNjQnKSwgJ0gy
NjQgbm90IHN1cHBvcnRlZCcpOwogCi0gIGNvbnN0IHJpZHMgPSBbMCwgMSwgMl07CisgIGNvbnN0
IHJpZHMgPSBbMCwgMV07CiAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwog
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgY29uc3QgcGMyID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwog
CiAgIHJldHVybiBuZWdvdGlhdGVTaW11bGNhc3RBbmRXYWl0Rm9yVmlkZW8odCwgcmlkcywgcGMx
LCBwYzIsIHttaW1lVHlwZTogJ3ZpZGVvL0gyNjQnfSk7Ci19LCAnSDI2NCBzaW11bGNhc3Qgc2V0
dXAgd2l0aCB0aHJlZSBzcGF0aWFsIGxheWVycycpOworfSwgJ0gyNjQgc2ltdWxjYXN0IHNldHVw
IHdpdGggdHdvIHNwYXRpYWwgbGF5ZXJzJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9z
ZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVy
cy1hY3RpdmUuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDU1MTU4ODVjOTkzYTExZjRhMDAwMzZm
MzI3ZjE1MmU3MzJjMWU0ZDEuLjI1NzE5MGRiMWMyNDdmNTY5ZmE3ODc0ZGNlMGE5ZGVhYzlkMDA1
OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvc2ltdWxjYXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MSw1ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0K
LVRJTUVPVVQgU2ltdWxjYXN0IHNldFBhcmFtZXRlcnMgYWN0aXZlPWZhbHNlIHN0b3BzIHNlbmRp
bmcgZnJhbWVzIFRlc3QgdGltZWQgb3V0CitQQVNTIFNpbXVsY2FzdCBzZXRQYXJhbWV0ZXJzIGFj
dGl2ZT1mYWxzZSBzdG9wcyBzZW5kaW5nIGZyYW1lcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFy
YW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRw
cy5odG1sCmluZGV4IGY3NTRjNjNmZmU5ZDQ3NGEwZWE4NGI0MDNjZDdiNWVkN2JhYWUxYTIuLjFh
NzQzNzFiZmI2ZDcwMTY1YTQzMzYwN2VlYzYyYjU5MDllNmRmNWYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9z
ZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFj
dGl2ZS5odHRwcy5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGFzeW5jIGZ1bmN0aW9uIHF1ZXJ5UmVj
ZWl2ZXJTdGF0cyhwYykgewogfQogCiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0
IHJpZHMgPSBbMCwgMSwgMl07CisgIGNvbnN0IHJpZHMgPSBbMCwgMV07CiAgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9z
ZSgpKTsKICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11
bGNhc3QvdnA4Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IDU5MDIzNzcxMWVlZmM4ZmM4OTY3MmVhNWNhYTAxYjIxOTA3ODYyYjUuLjA0ZDk3NDM4
OTdmNmRiNmZmODlhMjdiMjhhZGUxNTQzYmQyYWJiYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDUg
KzEsMyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotVElN
RU9VVCBWUDggc2ltdWxjYXN0IHNldHVwIHdpdGggdGhyZWUgc3BhdGlhbCBsYXllcnMgVGVzdCB0
aW1lZCBvdXQKK1BBU1MgVlA4IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHR3byBzcGF0aWFsIGxheWVy
cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLmh0bWwK
aW5kZXggZTM1NjdlNjFjMjFkMWI2OGU1NDlmYzhiMDQ1YjQ4ZWE5YjA3ZWNjNS4uOTQxNDVkMGM3
OTRlZTMzY2E0YmFmZTAwY2ZmMmUwODExY2ZmZTJlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMuaHRtbApAQCAtMTIsMTIgKzEyLDEyIEBAIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKICAgYXNzZXJ0X2ltcGxlbWVudHMoJ2dldENhcGFiaWxpdGll
cycgaW4gUlRDUnRwU2VuZGVyLCAnUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcyBub3Qgc3Vw
cG9ydGVkJyk7CiAgIGFzc2VydF9pbXBsZW1lbnRzKFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRp
ZXMoJ3ZpZGVvJykuY29kZWNzLmZpbmQoYyA9PiBjLm1pbWVUeXBlID09PSAndmlkZW8vVlA4Jyks
ICdWUDggbm90IHN1cHBvcnRlZCcpOwogCi0gIGNvbnN0IHJpZHMgPSBbMCwgMSwgMl07CisgIGNv
bnN0IHJpZHMgPSBbMCwgMV07CiAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgY29uc3QgcGMyID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkp
OwogCiAgIHJldHVybiBuZWdvdGlhdGVTaW11bGNhc3RBbmRXYWl0Rm9yVmlkZW8odCwgcmlkcywg
cGMxLCBwYzIsIHttaW1lVHlwZTogJ3ZpZGVvL1ZQOCd9KTsKLX0sICdWUDggc2ltdWxjYXN0IHNl
dHVwIHdpdGggdGhyZWUgc3BhdGlhbCBsYXllcnMnKTsKK30sICdWUDggc2ltdWxjYXN0IHNldHVw
IHdpdGggdHdvIHNwYXRpYWwgbGF5ZXJzJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Rvb2xzL3BhY2th
Z2UuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Rvb2xzL3BhY2thZ2UuanNvbgppbmRleCBlMGMxY2ZkYTNlODE4YWVlZDUzOTg3OGQ4ZWY2
N2VjMmRkOTkxNjM3Li5mMjZjZmNjMTQyMWJmOGY5ZWNlZWI5ZjdjMTc0NmZmMjZmYjc5MzJlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy90b29scy9wYWNrYWdlLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdG9vbHMvcGFja2FnZS5qc29uCkBAIC02LDEwICs2LDEw
IEBACiAgICAgImxpbnQiOiAiZXNsaW50IC1jIC5lc2xpbnRyYy5qcyAuLi8qLmh0bWwgLi4vKi5q
cyIKICAgfSwKICAgImRldkRlcGVuZGVuY2llcyI6IHsKLSAgICAiZXNsaW50IjogIl40LjExLjAi
LAorICAgICJlc2xpbnQiOiAiXjcuMjQuMCIsCiAgICAgImVzbGludC1wbHVnaW4taHRtbCI6ICJe
NC4wLjAiLAogICAgICJqc2NvZGVzaGlmdCI6ICJeMC41LjEiLAotICAgICJqc2RvbSI6ICJeMTEu
MTEuMCIKKyAgICAianNkb20iOiAiXjE2LjUuMyIKICAgfSwKICAgImxpY2Vuc2UiOiAiQlNEIiwK
ICAgInByaXZhdGUiOiB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9nCmluZGV4
IDUxNGI2MWZmMWVkNjMwODY4YmRmMzU0ZGJjYmNiZTAxMzgzZmViY2IuLjBkYTg1N2JmMGViYzNk
ODU0NDkzNWYwNDg3NjdiMGE5NDMwZmUxMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBv
cnQubG9nCkBAIC0zMSw2ICszMSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5
VHlwZS53aW5kb3cuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1idWZmZXJlZEFtb3VudC5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwt
Y2xvc2UuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWlkLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENE
YXRhQ2hhbm5lbC1zZW5kLWJsb2Itb3JkZXIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQuaHRtbApAQCAt
NDAsNyArNDEsNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Vycm9yLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDYW5kaWRhdGUtY29uc3Ry
dWN0b3IuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUtcGFpci5odHRwcy5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNl
VHJhbnNwb3J0LWV4dGVuc2lvbi1oZWxwZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENJY2VUcmFuc3BvcnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLVNMRC1TUkQtdGltaW5nLmh0dHBz
Lmh0bWwKQEAgLTUyLDE5ICs1MiwyNSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFk
ZFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5Ucmlja2xlSWNlQ2FuZGlk
YXRlcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FuZGlkYXRlLWluLXNkcC5odHRwcy5odG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tY2FwdHVyZS12aWRlby5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlv
blN0YXRlLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWNvbnN0cnVjdG9yLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVBbnN3ZXIuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVh
dGVPZmZlci1vZmZlclRvUmVjZWl2ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWRlc2NyaXB0aW9uLWF0dHJpYnV0ZXMtdGltaW5nLmh0dHBzLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1leHBsaWNpdC1yb2xsYmFjay1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVm
YXVsdEljZVNlcnZlcnMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldElkZW50aXR5QXNzZXJ0aW9uLnN1
Yi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdl
dFRyYW5zY2VpdmVycy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLXRlc3QuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWhlbHBlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS1kaXNjb25u
ZWN0ZWQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1p
Y2VHYXRoZXJpbmdTdGF0ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0
dHBzLmh0bWwKQEAgLTc0LDEwICs4MCwxMyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNr
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vcGVyYXRpb25zLmh0dHBzLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1wZWVySWRlbnRpdHkuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24t
aGVscGVyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUt
bGluZWFyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVz
cy1nbGFyZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRw
cy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBwb3J0ZWQuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXJlbGF5LWNhbnZhcy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNr
LW11dGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW92ZVRyYWNrLmh0dHBzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1yZXN0YXJ0SWNlLW9ubmVnb3RpYXRpb25uZWVkZWQuaHR0cHMuaHRtbApAQCAt
MTAzLDggKzExMiwxMiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXZpZGVvRGV0ZWN0
b3JUZXN0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
SWNlRXZlbnQtY29uc3RydWN0b3IuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1F1aWNTdHJlYW0uaHR0cHMuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1F1aWNUcmFuc3Bv
cnQtaGVscGVyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUXVpY1RyYW5zcG9ydC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwQ2FwYWJpbGl0aWVzLWhlbHBl
ci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1J0cFBhcmFtZXRlcnMtY29kZWNzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRlZ3JhZGF0aW9uUHJl
ZmVyZW5jZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1lbmNvZGluZ3MuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVh
ZGVyRXh0ZW5zaW9ucy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1oZWxwZXIuanMKQEAgLTEyNSw2ICsxMzgs
NyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItZGly
ZWN0aW9uLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXRDb2RlY1ByZWZlcmVuY2VzLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFu
c2NlaXZlci1zZXREaXJlY3Rpb24uaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5z
Y2VpdmVyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LWNvbnN0cnVjdG9yLmh0bWwKQEAgLTEzNCwx
MCArMTQ4LDEwIEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU3RhdHMtaGVscGVyLmpzCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDVHJhY2tFdmVudC1jb25z
dHJ1Y3Rvci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDVHJhY2tFdmVudC1maXJlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZGlj
dGlvbmFyeS1oZWxwZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9nZXRzdGF0cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaGlzdG9yaWNhbC5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaWRlbnRpdHktaGVscGVyLnN1Yi5q
cwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2lk
bGhhcm5lc3MuaHR0cHMud2luZG93LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvbm8tbWVkaWEtY2FsbC5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvbWlzZXMtY2FsbC5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjAz
YmQ3YWYxODY1OWViMWFkMmNlM2I5Yzg5YzY4NWQzMDE5OWU2Yy4uNmViZDVjYjJlNGQyYzRkMTM0
ZDUwZDM1OTcyNzM1YmI3NDVlMmUxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTEyMywxMSArMTEyMyw2IEBAIHdlYmtpdC5vcmcvYi8y
MTM4MDQgZmFzdC9zY3JvbGxpbmcvbWFjL3Njcm9sbC1zbmFwcGluZy1pbi1wcm9ncmVzcy5odG1s
IFsgUGFzcyBGCiB3ZWJraXQub3JnL2IvMjI5MjA2IFsgRGVidWcgXSBodHRwL3dwdC93ZWJydGMv
c2ZyYW1lLXRyYW5zZm9ybS1lcnJvci5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9y
Zy9iLzIxNDQ3OCBbIERlYnVnIF0gaHR0cC93cHQvd2VicnRjL2dlbmVyYXRlQ2VydGlmaWNhdGUu
aHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzIxNDQ3OCBbIERlYnVnIF0gaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ2VydGlmaWNhdGUtcG9zdE1lc3NhZ2UuaHRt
bCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzIxNDQ3OCBbIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ2VydGlmaWNhdGUuaHRtbCBbIFNraXAgXQotd2Vi
a2l0Lm9yZy9iLzIxNDQ3OCBbIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS5odG1sIFsgU2tp
cCBdCi13ZWJraXQub3JnL2IvMjE0NDc4IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LWNvbnN0cnVjdG9yLmh0bWwgWyBTa2lw
IF0KLXdlYmtpdC5vcmcvYi8yMTQ0NzggWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL2lkbGhhcm5lc3MuaHR0cHMud2luZG93Lmh0bWwgWyBTa2lwIF0KIHdl
YmtpdC5vcmcvYi8yMTQ0NzggWyBEZWJ1ZyBdIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qt
c2Nyb2xsLWlmcmFtZS1sYXRjaGVkLXNlbGVjdC5odG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcv
Yi8yMTQ1NzkgWyBSZWxlYXNlIF0gc3ZnL2FuaW1hdGlvbnMvc21pbC1sZWFrLWVsZW1lbnQtaW5z
dGFuY2VzLnN2ZyBbIFBhc3MgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGVkZDNlODM1ZmYxZjY3M2Q0ZmIxNDFmODBmZDhlNTMxMzcxOTg5
MGEuLjIxNDYzYTRjNzU3NDVhYzkzOTM2YzkwNDQzYWI0NDE1NzE3MjM5YTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMDQ1LDcgKzIwNDUsNyBAQCB3
ZWJraXQub3JnL2IvMjE4MzQ2IFsgTW9qYXZlIF0gZmFzdC90ZXh0L2NhbnZhcy1jb2xvci1mb250
cyBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMjE5NDAzIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0cHMu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8yMTk0NjAgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdv
dGlhdGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMjE5NDYwIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3Qt
bmVnb3RpYXRpb24uaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8y
MTk1NTUgaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwgWyBQYXNzIFRpbWVv
dXQgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24gYi9MYXlv
dXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KaW5kZXggMmE4MTIxYWJjNzFkNTc0MzQwMGNlMmFh
NzdiYzdjNDFlYTUzYWNiZC4uMDA3NDM2NTFmYmY0YTg2N2Y3YjJhNDEwNDc4MmVhMTA2OGU1NGVi
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCisrKyBiL0xheW91
dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgpAQCAtNDA2Nyw2ICs0MDY3LDkgQEAKICAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2Uu
aHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtaWNlUmVzdGFydC5odG1sIjogWwor
ICAgICAgICAic2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwiOiBbCiAgICAgICAgICJzbG93Igog
ICAgIF0sCkBAIC00MDc2LDYgKzQwNzksOSBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRpbWluZy5odHRwcy5o
dG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYXB0dXJlLXZpZGVvLmh0dHBz
Lmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVs
Lmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCkBAIC00MDk3LDYgKzQxMDMsMTIgQEAK
ICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIK
ICAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMtbm90LXN1cHBvcnRlZC5odG1sIjogWworICAgICAgICAi
c2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1yZWxheS1jYW52YXMuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAg
InNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUuaHR0cHMuaHRtbCI6IFsKICAg
ICAgICAgInNsb3ciCiAgICAgXSwKQEAgLTQxMzksNiArNDE1MSwxNSBAQAogICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2UtdWZyYWdwd2QuaHRt
bCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0ZS5odG1sIjogWworICAgICAg
ICAic2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm90b2NvbC9zZGVzLWRvbnQtZG9udC1kb250Lmh0bWwiOiBbCisgICAgICAgICJzbG93
IgorICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL3ZwOC1mbXRwLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9iYXNpYy5odHRw
cy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438650</attachid>
            <date>2021-09-20 02:58:05 -0700</date>
            <delta_ts>2021-09-20 05:04:38 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-229549-20210920115758.patch</filename>
            <type>text/plain</type>
            <size>274002</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzQyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjI5NmRkNmIyMmVlMDI3OWU2MmZk
Yjk4Zjg2NmE3ZDA1YWJhZDAwYi4uNjI2MzU1YzY3MzhjNzNiODgyMzBiNTI4ZjIzMzg3YWY2ZjY4
ZjY5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA5LTIwICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN5bmMgV1BUIHdlYnJ0YyB0ZXN0cyBmcm9t
IHVwc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjk1NDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyNjcwMjM2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBVbnNraXBwaW5nIHNvbWUgdGVzdHMg
dGhhdCBhcmUgbm8gbG9uZ2VyIGZsYWt5LgorICAgICAgICBNYXJraW5nIHNvbWUgbmV3IHRlc3Rz
IGFzIGZsYWt5LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiB0ZXN0cy1vcHRpb25zLmpzb246
CisKIDIwMjEtMDktMTkgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQgZ2FyZGVuaW5nIGFmdGVyIHIyODI3MzguCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwppbmRleCAyMzhiMThjZWRkZTZhM2I2NzdkYWRhZDVhZGE2MDQ0YWI2OWVmM2QxLi45
OGI4MGNlYWMzMTEyZmMxMWFhOTZmMDYwMGE0OGM0ZWM2ZjQwMTQyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTUgQEAKKzIwMjEtMDktMjAgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlc3luYyBXUFQgd2VicnRjIHRlc3Rz
IGZyb20gdXBzdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyOTU0OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODI2NzAyMzY+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogcmVzb3VyY2VzL2ltcG9y
dC1leHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJ1ZmZl
cmVkQW1vdW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbC1zZW5kLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtc3RhdGUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlvblN0
YXRlLWNhbmRpZGF0ZS1wYWlyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24taGVscGVyLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNw
b3J0LWV4dGVuc2lvbi5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VD
YW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
YWRkSWNlQ2FuZGlkYXRlLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tY2FwdHVyZS12aWRlby5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRv
UmVjZWl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2VpdmUuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVs
dEljZVNlcnZlcnMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWdldElkZW50aXR5QXNzZXJ0aW9uLnN1Yi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1oZWxwZXIuanM6CisgICAgICAgIChkb0V4Y2hhbmdlKToKKyAgICAgICAgKGFzeW5j
IGxpc3RlbkZvclNTUkNzKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0
aW9uU3RhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhl
cmluZ1N0YXRlLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0
b3J5LWdldFN0YXRzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZWVySWRlbnRpdHktZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBl
ZXJJZGVudGl0eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxp
bmVhci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXBsYW4tYi1pcy1ub3Qtc3VwcG9ydGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wbGFuLWItaXMt
bm90LXN1cHBvcnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbGF5LWNhbnZhcy5odHRwcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcmVsYXktY2FudmFzLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUuaHR0
cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0
dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLWFuc3dlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERl
c2NyaXB0aW9uLW9mZmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wcmFuc3dlci5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVz
Y3JpcHRpb24tdHJhY2tzLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRlZ3JhZGF0aW9uUHJlZmVy
ZW5jZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1z
ZXREaXJlY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldERpcmVjdGlvbi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0
b3AtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UnRwVHJhbnNjZWl2ZXItc3RvcC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1N0YXRzLWhlbHBlci5qczoKKyAgICAgICAgKHZhbGlkYXRlQ29k
ZWNTdGF0cyk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5l
bC1lbXB0eXN0cmluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0c3RhdHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2lkZW50aXR5LWhlbHBlci5zdWIuanM6IEFk
ZGVkLgorICAgICAgICAocGFyc2VBc3NlcnRpb25SZXN1bHQpOgorICAgICAgICAoZ2V0SWRwRG9t
YWlucyk6CisgICAgICAgIChhc3NlcnRfcnRjZXJyb3JfcmVqZWN0aW9uKToKKyAgICAgICAgKHNl
dCBob3N0U3RyaW5nKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1l
ZGlhLWNhbGwuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb21p
c2VzLWNhbGwuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL1JFQURNRS50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9kdGxzLXNldHVwLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9kdGxzLXNldHVwLmh0dHBzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92
ZXItZGF0YWNoYW5uZWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1j
bG9ja3JhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3J0cC1jbG9ja3JhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3J0cC1leHRlbnNpb24tc3VwcG9ydC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1wYXlsb2FkdHlwZXMuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9udC1k
b250LWRvbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9udC1kb250LWRvbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdnA4LWZtdHAt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3ZwOC1mbXRwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLW5vLXNzcmNzLmh0dHBzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0
L2Jhc2ljLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9z
aW11bGNhc3QvZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJh
bWV0ZXJzLWFjdGl2ZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxj
YXN0L3ZwOC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
dG9vbHMvcGFja2FnZS5qc29uOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
dzNjLWltcG9ydC5sb2c6CisKIDIwMjEtMDktMTkgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gb3ZlcmZsb3ctd3JhcDogYW55d2hlcmUvYnJlYWst
d29yZCBydWxlcyBvdmVyIHdvcmQtYnJlYWs6IGtlZXAtYWxsCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBkMThkYjdiZmYyNDZjYzhlM2M3NDNiNzFmZmYxNDYxMDFmMGU2ODJiLi5mNWRjYWNkMWUyYTE3
M2VlZGZhYmMwMTY0YmRjZmYxYzdlYTllNDdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIxOTcs
MjEgKzIxOTcsMTEgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tY2FuZGlkYXRlLWluLXNkcC5odHRwcy4KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRp
b24tc3RyZXNzLWdsYXJlLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdv
dGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQog
CitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1yZWxheS1jYW52YXMuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCitpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtY2xvY2tyYXRlLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQorCiAjIFNraXAgdGltaW5nIG91dCB0ZXN0Ci1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlw
dGlvbi10cmFja3MuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUuaHR0cHMu
aHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
RGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlvblN0YXRlLWNhbmRpZGF0ZS1w
YWlyLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRwcy5odG1sIFsg
U2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1vbmljZWNhbmRpZGF0ZWVycm9yLmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1RyYWNrRXZlbnQtZmlyZS5odG1sIFsg
U2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9k
dGxzLWZpbmdlcnByaW50LXZhbGlkYXRpb24uaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0bWwgWyBTa2lw
IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9nZXRT
dGF0cy5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUu
aHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvc2ltdWxjYXN0L3ZwOC5odHRwcy5odG1sIFsgU2tpcCBdCi0KIGZhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tY2xvc2VkLXN0YXRlLmh0bWwgWyBTa2lwIF0KIGZhc3QvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlLWV2ZW50Lmh0
bWwgWyBTa2lwIF0KIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbW9yZS1tZWRp
YS10by1uZWdvdGlhdGUuaHRtbCBbIFNraXAgXQpAQCAtMjIxOSw2ICsyMjA5LDkgQEAgZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1vdmVybG9hZGVkLW9wZXJhdGlvbnMtcGFyYW1z
Lmh0bWwgWyBTa2lwIF0KIGZhc3QvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFj
ay5odG1sIFsgU2tpcCBdCiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWluc3Bl
Y3Qtb2ZmZXItYnVuZGxlUG9saWN5LWJ1bmRsZS1vbmx5Lmh0bWwgWyBGYWlsdXJlIF0KIAorIyBN
aXNzaW5nIEFQSSBzdXBwb3J0LgoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tY2FwdHVyZS12aWRlby5odHRwcy5odG1sIFsgU2tpcCBdCisK
ICMgT25seSBpT1MgV0sxIGhhcyB0ZXN0UnVubmVyLnNldFBhZ2VQYXVzZWQuCiBmYXN0L2RvbS90
aW1lci1maXJlLWFmdGVyLXBhZ2UtcGF1c2UuaHRtbCBbIFNraXAgXQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNv
biBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9u
cy5qc29uCmluZGV4IDc0NTM3ZjhhMGVmMzQ2YWRmYjg4NmMxYTc4ZWZkOTkwMjhiNzVjMDkuLmI0
NzA0YmVkMDlmYjVkNzlkOTk2ZTQ1NDE4MjI1YzYzNzBkNDNjZjQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9u
cy5qc29uCkBAIC00NjYsNSArNDY2LDYgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dvcmts
ZXRzIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMveC1mcmFtZS1vcHRpb25z
IjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3hociI6ICJpbXBvcnQiLCAKLSAg
ICAid2ViLXBsYXRmb3JtL3Rlc3QvaHRtbC9pbmZyYXN0cnVjdHVyZSI6ICJpbXBvcnQiCisgICAg
IndlYi1wbGF0Zm9ybS90ZXN0L2h0bWwvaW5mcmFzdHJ1Y3R1cmUiOiAiaW1wb3J0IiwgCisgICAg
IndlYnJ0Yy1wbGF0Zm9ybS10ZXN0cy93ZWJydGMiOiAiaW1wb3J0IgogfQpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMtZXhwZWN0ZWQudHh0CmluZGV4IDM4MGM0N2Ni
N2FkZGYxMDY5NjdjMmMwZmUxMWM3Y2VkMTU1NjlhYTAuLmIxNjE3MTcyOGI1MDU2MmIwZWMwNTI0
MTFmMjUzZTc0MjMzMjQ1ZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dApAQCAtMTQw
LDE4ICsxNDAsNCBAQCBGQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggdHVybnMg
c2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNzd29yZCwgYW5kCiAgICAgICAgICAgYWNjZXNzVG9r
ZW46ICcnCiAgICAgICAgIH0KICAgICAgIH1dIH0pIiBkaWQgbm90IHRocm93Ci1GQUlMIG5ldyBS
VENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxU
eXBlIG9hdXRoLCBhbmQgc3RyaW5nIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nl
c3NFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+Ci0gICAgICBtYWtlUGMo
eyBpY2VTZXJ2ZXJzOiBbewotICAgICAgICB1cmxzOiAndHVybnM6dHVybi5leGFtcGxlLm9yZycs
Ci0gICAgICAgIGNyZWRlbnRpYWxUeXBlOiAnb2F1dGgnLAotICAgICAgICB1c2VybmFtZTogJ3Vz
ZXInLAotICAgICAgICBjcmVkZW50aWFsOiAnY3JlZCcKLSAgICAgIH1dIH0pIiBkaWQgbm90IHRo
cm93Ci1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBj
cmVkZW50aWFsVHlwZSBvYXV0aCwgYW5kIHN0cmluZyBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJ
bnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgotICAg
ICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKLSAgICAgICAgdXJsczogJ3R1cm5zOnR1cm4uZXhh
bXBsZS5vcmcnLAotICAgICAgICBjcmVkZW50aWFsVHlwZTogJ29hdXRoJywKLSAgICAgICAgdXNl
cm5hbWU6ICd1c2VyJywKLSAgICAgICAgY3JlZGVudGlhbDogJ2NyZWQnCi0gICAgICB9XSB9KSIg
ZGlkIG5vdCB0aHJvdwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Nv
bmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCmluZGV4IDFjYmYxZDZjMWRhNDdiODBkOWIzZDcx
NzNmNzgwNjJmMmU0OWJmMTAuLjM2ZjEyNzc2NzhhYzNlNDAyZTYwZTEyNTRjMzliYzBkNGQ4NGU4
NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRp
b24taWNlU2VydmVycy5odG1sCkBAIC0zNzAsMzYgKzM3MCw0IEBACiAgICAgICB9XSB9KSk7CiAg
IH0sICd3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFzc3dvcmQsIGFuZCBvYmpl
Y3QgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yJyk7CiAKLSAgLyoK
LSAgICA0LjMuMi4gIFRvIHNldCBhIGNvbmZpZ3VyYXRpb24KLSAgICAgIDExLjYuIElmIHNjaGVt
ZSBuYW1lIGlzIHR1cm4gb3IgdHVybnMsIGFuZCBzZXJ2ZXIuY3JlZGVudGlhbFR5cGUgaXMgIm9h
dXRoIiwKLSAgICAgICAgICAgIGFuZCBzZXJ2ZXIuY3JlZGVudGlhbCBpcyBub3QgYW4gUlRDT0F1
dGhDcmVkZW50aWFsLCB0aGVuIHRocm93IGFuCi0gICAgICAgICAgICBJbnZhbGlkQWNjZXNzRXJy
b3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgKi8KLSAgY29uZmlnX3Rlc3QobWFrZVBjID0+
IHsKLSAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZEFjY2Vzc0Vycm9yJywgKCkgPT4KLSAg
ICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7Ci0gICAgICAgIHVybHM6ICd0dXJuczp0dXJuLmV4
YW1wbGUub3JnJywKLSAgICAgICAgY3JlZGVudGlhbFR5cGU6ICdvYXV0aCcsCi0gICAgICAgIHVz
ZXJuYW1lOiAndXNlcicsCi0gICAgICAgIGNyZWRlbnRpYWw6ICdjcmVkJwotICAgICAgfV0gfSkp
OwotICB9LCAnd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRoLCBhbmQgc3Ry
aW5nIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvcicpOwotCi0gIC8q
Ci0gICAgVGVzdGVkCi0gICAgICA0LjMuMi4gIFRvIHNldCBhIGNvbmZpZ3VyYXRpb24KLSAgICAg
ICAgMTEuMS02LgotCi0gICAgVW50ZXN0YWJsZQotICAgICAgNC4zLjIuICBUbyBzZXQgYSBjb25m
aWd1cmF0aW9uCi0gICAgICAgIDExLjcuICBBcHBlbmQgc2VydmVyIHRvIHZhbGlkYXRlZFNlcnZl
cnMuCi0KLSAgICBDb3ZlcmFnZSBSZXBvcnQKLSAgICAgIFRlc3RlZCAgICAgICAgIDkKLSAgICAg
IE5vdCBUZXN0ZWQgICAgIDAKLSAgICAgIFVudGVzdGFibGUgICAgIDEKLSAgICAgIFRvdGFsICAg
ICAgICAgMTAKLSAgICovCi0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVmZmVy
ZWRBbW91bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQtZXhwZWN0ZWQu
dHh0CmluZGV4IDQyYjZjNjMyMGU5ZWUzNzIxNjFiYmIyMGE1NmQxMDQwMGRiMjk0OGIuLjgwNWY4
YWY0OGMwODgwNjJhOGE2NDA4ZmU3OTlmZjcyMjAxNmY3NTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVs
LWJ1ZmZlcmVkQW1vdW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1idWZmZXJlZEFtb3Vu
dC1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsMjYgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9V
VCksIG1lc3NhZ2UgPSBudWxsCi0KLUZBSUwgYnVmZmVyZWRBbW91bnQgc2hvdWxkIGluY3JlYXNl
IHRvIGJ5dGUgbGVuZ3RoIG9mIGVuY29kZWQgdW5pY29kZSBzdHJpbmcgc2VudCBhc3NlcnRfZXF1
YWxzOiBFeHBlY3QgYnVmZmVyZWRBbW91bnQgdG8gYmUgdGhlIGJ5dGUgbGVuZ3RoIG9mIHRoZSB1
bmljb2RlIHN0cmluZyBleHBlY3RlZCAxMiBidXQgZ290IDAKLUZBSUwgYnVmZmVyZWRBbW91bnQg
c2hvdWxkIGluY3JlYXNlIHRvIGJ5dGUgbGVuZ3RoIG9mIGJ1ZmZlciBzZW50IGFzc2VydF9lcXVh
bHM6IEV4cGVjdCBidWZmZXJlZEFtb3VudCB0byBpbmNyZWFzZSB0byBieXRlIGxlbmd0aCBvZiBz
ZW50IGJ1ZmZlciBleHBlY3RlZCA1IGJ1dCBnb3QgMAotRkFJTCBidWZmZXJlZEFtb3VudCBzaG91
bGQgaW5jcmVhc2UgdG8gc2l6ZSBvZiBibG9iIHNlbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVy
YXRpb24gaXMgbm90IHN1cHBvcnRlZC4iCi1GQUlMIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNy
ZWFzZSBieSBieXRlIGxlbmd0aCBmb3IgZWFjaCBtZXNzYWdlIHNlbnQgYXNzZXJ0X3VucmVhY2hl
ZDogVW5leHBlY3RlZCBwcm9taXNlIHJlamVjdGlvbjogRXJyb3I6IGFzc2VydF9lcXVhbHM6IEV4
cGVjdCBidWZmZXJlZEFtb3VudCB0byBiZSB0aGUgdG90YWwgbGVuZ3RoIG9mIGFsbCBtZXNzYWdl
cyBxdWV1ZWQgdG8gc2VuZCBleHBlY3RlZCA1IGJ1dCBnb3QgMCBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKLVRJTUVPVVQgRGF0YSBjaGFubmVsIGJ1ZmZlcmVkYW1vdW50bG93IGV2ZW50IGZpcmVz
IGFmdGVyIHNlbmQoKSBpcyBjb21wbGV0ZSBUZXN0IHRpbWVkIG91dAotTk9UUlVOIERhdGEgY2hh
bm5lbCBidWZmZXJlZGFtb3VudCBpcyBkYXRhLmxlbmd0aCBvbiBzZW5kKGRhdGEpCi1OT1RSVU4g
RGF0YSBjaGFubmVsIGJ1ZmZlcmVkYW1vdW50IHJldHVybnMgdGhlIHNhbWUgYW1vdW50IGlmIG5v
IG1vcmUgZGF0YSBpcyBzZW50IG9uIHRoZSBjaGFubmVsCi1OT1RSVU4gRGF0YSBjaGFubmVsIGJ1
ZmZlcmVkYW1vdW50bG93IGV2ZW50IGZpcmVzIG9ubHkgb25jZSBhZnRlciBtdWx0aXBsZSBjb25z
ZWN1dGl2ZSBzZW5kKCkgY2FsbHMKLU5PVFJVTiBEYXRhIGNoYW5uZWwgYnVmZmVyZWRhbW91bnRs
b3cgZXZlbnQgZmlyZXMgYWZ0ZXIgZWFjaCBzZW50IG1lc3NhZ2UKK1BBU1MgZGF0YWNoYW5uZWwg
YnVmZmVyZWRBbW91bnQgaW5pdGlhbCB2YWx1ZSBzaG91bGQgYmUgMCBmb3IgYm90aCBwZWVycwor
UEFTUyBkYXRhY2hhbm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQgaW5jcmVhc2UgdG8gYnl0ZSBs
ZW5ndGggb2YgZW5jb2RlZHVuaWNvZGUgc3RyaW5nIHNlbnQKK1BBU1MgZGF0YWNoYW5uZWwgYnVm
ZmVyZWRBbW91bnQgc2hvdWxkIGluY3JlYXNlIHRvIGJ5dGUgbGVuZ3RoIG9mIGJ1ZmZlciBzZW50
CitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSB0byBzaXpl
IG9mIGJsb2Igc2VudAorUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQgaW5j
cmVhc2UgYnkgYnl0ZSBsZW5ndGggZm9yIGVhY2ggbWVzc2FnZSBzZW50CitQQVNTIGRhdGFjaGFu
bmVsIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBub3QgZGVjcmVhc2UgaW1tZWRpYXRlbHkgYWZ0ZXIg
aW5pdGlhdGluZyBjbG9zdXJlCitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3Vs
ZCBub3QgZGVjcmVhc2UgYWZ0ZXIgY2xvc2luZyB0aGUgcGVlciBjb25uZWN0aW9uCitQQVNTIGRh
dGFjaGFubmVsIGJ1ZmZlcmVkYW1vdW50bG93IGV2ZW50IGZpcmVzIGFmdGVyIHNlbmQoKSBpcyBj
b21wbGV0ZQorUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJlZGFtb3VudCBpcyBkYXRhLmxlbmd0aCBv
biBzZW5kKGRhdGEpCitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZlcmVkYW1vdW50IHJldHVybnMgdGhl
IHNhbWUgYW1vdW50IGlmIG5vIG1vcmUgZGF0YSBpcworUEFTUyBkYXRhY2hhbm5lbCBidWZmZXJl
ZGFtb3VudGxvdyBldmVudCBmaXJlcyBvbmx5IG9uY2UgYWZ0ZXIgbXVsdGlwbGUgY29uc2VjdXRp
dmUgc2VuZCgpIGNhbGxzCitQQVNTIGRhdGFjaGFubmVsIGJ1ZmZlcmVkYW1vdW50bG93IGV2ZW50
IGZpcmVzIGFmdGVyIGVhY2ggc2VudCBtZXNzYWdlCitQQVNTIG5lZ290aWF0ZWQgZGF0YWNoYW5u
ZWwgYnVmZmVyZWRBbW91bnQgaW5pdGlhbCB2YWx1ZSBzaG91bGQgYmUgMCBmb3IgYm90aCBwZWVy
cworUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNy
ZWFzZSB0byBieXRlIGxlbmd0aCBvZiBlbmNvZGVkdW5pY29kZSBzdHJpbmcgc2VudAorUEFTUyBu
ZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSB0byBi
eXRlIGxlbmd0aCBvZiBidWZmZXIgc2VudAorUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1
ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSB0byBzaXplIG9mIGJsb2Igc2VudAorUEFTUyBu
ZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSBieSBi
eXRlIGxlbmd0aCBmb3IgZWFjaCBtZXNzYWdlIHNlbnQKK1BBU1MgbmVnb3RpYXRlZCBkYXRhY2hh
bm5lbCBidWZmZXJlZEFtb3VudCBzaG91bGQgbm90IGRlY3JlYXNlIGltbWVkaWF0ZWx5IGFmdGVy
IGluaXRpYXRpbmcgY2xvc3VyZQorUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVk
QW1vdW50IHNob3VsZCBub3QgZGVjcmVhc2UgYWZ0ZXIgY2xvc2luZyB0aGUgcGVlciBjb25uZWN0
aW9uCitQQVNTIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgYnVmZmVyZWRhbW91bnRsb3cgZXZlbnQg
ZmlyZXMgYWZ0ZXIgc2VuZCgpIGlzIGNvbXBsZXRlCitQQVNTIG5lZ290aWF0ZWQgZGF0YWNoYW5u
ZWwgYnVmZmVyZWRhbW91bnQgaXMgZGF0YS5sZW5ndGggb24gc2VuZChkYXRhKQorUEFTUyBuZWdv
dGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVkYW1vdW50IHJldHVybnMgdGhlIHNhbWUgYW1vdW50
IGlmIG5vIG1vcmUgZGF0YSBpcworUEFTUyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGJ1ZmZlcmVk
YW1vdW50bG93IGV2ZW50IGZpcmVzIG9ubHkgb25jZSBhZnRlciBtdWx0aXBsZSBjb25zZWN1dGl2
ZSBzZW5kKCkgY2FsbHMKK1BBU1MgbmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBidWZmZXJlZGFtb3Vu
dGxvdyBldmVudCBmaXJlcyBhZnRlciBlYWNoIHNlbnQgbWVzc2FnZQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbC1pY2VSZXN0YXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWljZVJlc3RhcnQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxYTE4NzdmYmQ2NzRjYTBkNjVlN2VmMGYyNmVjZTA4OGJj
MDNjNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pY2VSZXN0YXJ0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBEYXRhIGNoYW5uZWwgcmVtYWlucyB1c2FibGUgYWZ0
ZXIgSUNFIHJlc3RhcnQKK1BBU1MgRGF0YSBjaGFubmVsIHJlbWFpbnMgdXNhYmxlIGF0IGVhY2gg
c3RlcCBvZiBhbiBJQ0UgcmVzdGFydAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pY2VSZXN0YXJ0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEYXRhQ2hhbm5lbC1pY2VSZXN0YXJ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFlYzUwYTU4NzA5
Mzg4YmFlNzJlOTY4NDYzMDMxMGMzMjU2MWU1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVs
LWljZVJlc3RhcnQuaHRtbApAQCAtMCwwICsxLDc2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRh
IGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0
aXRsZT5SVENEYXRhQ2hhbm5lbCBpbnRlcmFjdGlvbnMgd2l0aCBJQ0UgcmVzdGFydDwvdGl0bGU+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisndXNlIHN0cmljdCc7CisKK2FzeW5jIGZ1bmN0aW9uIGNoZWNrQ2FuUGFzc0RhdGEoY2hhbm5l
bDEsIGNoYW5uZWwyKSB7CisgIGNoYW5uZWwxLnNlbmQoJ2hlbGxvJyk7CisgIGNvbnN0IG1lc3Nh
Z2UgPSBhd2FpdCBhd2FpdE1lc3NhZ2UoY2hhbm5lbDIpOworICBhc3NlcnRfZXF1YWxzKG1lc3Nh
Z2UsICdoZWxsbycpOworfQorCithc3luYyBmdW5jdGlvbiBwaW5nUG9uZ0RhdGEoY2hhbm5lbDEs
IGNoYW5uZWwyLCBzaXplPTEpIHsKKyAgY2hhbm5lbDEuc2VuZCgnaGVsbG8nKTsKKyAgY29uc3Qg
cmVxdWVzdCA9IGF3YWl0IGF3YWl0TWVzc2FnZShjaGFubmVsMik7CisgIGFzc2VydF9lcXVhbHMo
cmVxdWVzdCwgJ2hlbGxvJyk7CisgIGNvbnN0IHJlc3BvbnNlID0gJ3gnLnJlcGVhdChzaXplKTsK
KyAgY2hhbm5lbDIuc2VuZChyZXNwb25zZSk7CisgIGNvbnN0IHJlc3BvbnNlUmVjZWl2ZWQgPSBh
d2FpdCBhd2FpdE1lc3NhZ2UoY2hhbm5lbDEpOworICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLCBy
ZXNwb25zZVJlY2VpdmVkKTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzEuY2xvc2UoKSk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBjb25zdCBbY2hhbm5lbDEsIGNo
YW5uZWwyXSA9IGF3YWl0IGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCB7fSwgcGMxLCBwYzIpOwor
ICBjaGFubmVsMi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHQudW5yZWFjaGVkX2Z1bmMoKSk7
CisgIGNoYW5uZWwyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgdC51bnJlYWNoZWRfZnVuYygp
KTsKKworICBhd2FpdCBjaGVja0NhblBhc3NEYXRhKGNoYW5uZWwxLCBjaGFubmVsMik7CisgIGF3
YWl0IGNoZWNrQ2FuUGFzc0RhdGEoY2hhbm5lbDIsIGNoYW5uZWwxKTsKKworICBwYzEucmVzdGFy
dEljZSgpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKworICBhd2Fp
dCBjaGVja0NhblBhc3NEYXRhKGNoYW5uZWwxLCBjaGFubmVsMik7CisgIGF3YWl0IGNoZWNrQ2Fu
UGFzc0RhdGEoY2hhbm5lbDIsIGNoYW5uZWwxKTsKKyAgY2hhbm5lbDEuY2xvc2UoKTsKKyAgY2hh
bm5lbDIuY2xvc2UoKTsKK30sIGBEYXRhIGNoYW5uZWwgcmVtYWlucyB1c2FibGUgYWZ0ZXIgSUNF
IHJlc3RhcnRgKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBjb25zdCBbY2hhbm5lbDEsIGNoYW5uZWwyXSA9
IGF3YWl0IGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCB7fSwgcGMxLCBwYzIpOworICBjaGFubmVs
Mi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHQudW5yZWFjaGVkX2Z1bmMoKSk7CisgIGNoYW5u
ZWwyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgdC51bnJlYWNoZWRfZnVuYygpKTsKKworICBh
d2FpdCBwaW5nUG9uZ0RhdGEoY2hhbm5lbDEsIGNoYW5uZWwyKTsKKyAgcGMxLnJlc3RhcnRJY2Uo
KTsKKworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhd2FpdCBwaW5nUG9u
Z0RhdGEoY2hhbm5lbDEsIGNoYW5uZWwyKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0
aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXdhaXQgcGluZ1BvbmdEYXRhKGNoYW5uZWwx
LCBjaGFubmVsMik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5j
cmVhdGVBbnN3ZXIoKSk7CisgIGF3YWl0IHBpbmdQb25nRGF0YShjaGFubmVsMSwgY2hhbm5lbDIp
OworICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24p
OworICBhd2FpdCBwaW5nUG9uZ0RhdGEoY2hhbm5lbDEsIGNoYW5uZWwyKTsKKyAgY2hhbm5lbDEu
Y2xvc2UoKTsKKyAgY2hhbm5lbDIuY2xvc2UoKTsKK30sIGBEYXRhIGNoYW5uZWwgcmVtYWlucyB1
c2FibGUgYXQgZWFjaCBzdGVwIG9mIGFuIElDRSByZXN0YXJ0YCk7CisKKworCis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC1l
eHBlY3RlZC50eHQKaW5kZXggMGI1ZDY0NjUwY2U2NmZhYjIyZGYwY2U5Y2MyNmZhNjdhNWJjYTAy
YS4uNjNhMzhjNDk2OTQ2ZGZhZDYwY2Y0ODE2ZTNiMTk5Yzg2MDUwYjAyZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0
YUNoYW5uZWwtc2VuZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC1leHBlY3RlZC50
eHQKQEAgLTMsOCArMywxMCBAQCBQQVNTIENhbGxpbmcgc2VuZCgpIHdoZW4gZGF0YSBjaGFubmVs
IGlzIGluIGNvbm5lY3Rpbmcgc3RhdGUgc2hvdWxkIHRocm93IEludmFsaQogUEFTUyBEYXRhY2hh
bm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIHNpbXBsZSBzdHJpbmcgYW5kIHJlY2VpdmUgYXMg
c3RyaW5nCiBQQVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgdW5pY29kZSBz
dHJpbmcgYW5kIHJlY2VpdmUgYXMgdW5pY29kZSBzdHJpbmcKIFBBU1MgRGF0YWNoYW5uZWwgc2hv
dWxkIGlnbm9yZSBiaW5hcnlUeXBlIGFuZCBhbHdheXMgcmVjZWl2ZSBzdHJpbmcgbWVzc2FnZSBh
cyBzdHJpbmcKK1BBU1MgRGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBhbiBlbXB0
eSBzdHJpbmcgYW5kIHJlY2VpdmUgYW4gZW1wdHkgc3RyaW5nCiBQQVNTIERhdGFjaGFubmVsIHNo
b3VsZCBiZSBhYmxlIHRvIHNlbmQgVWludDhBcnJheSBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFy
cmF5QnVmZmVyCiBQQVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgQXJyYXlC
dWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcgorUEFTUyBEYXRhY2hhbm5l
bCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIGFuIGVtcHR5IEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5k
IHJlY2VpdmUgYXMgQXJyYXlCdWZmZXIKIFBBU1MgRGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUg
dG8gc2VuZCBCbG9iIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXIKIFBBU1MgRGF0
YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCBy
ZWNlaXZlIGFzIEJsb2IKIEZBSUwgRGF0YWNoYW5uZWwgYmluYXJ5VHlwZSBzaG91bGQgcmVjZWl2
ZSBtZXNzYWdlIGFzIEJsb2IgYnkgZGVmYXVsdCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgaW5pdGlh
bCBiaW5hcnlUeXBlIHZhbHVlIHRvIGJlIGJsb2IgZXhwZWN0ZWQgImJsb2IiIGJ1dCBnb3QgImFy
cmF5YnVmZmVyIgpAQCAtMTMsOCArMTUsMTAgQEAgRkFJTCBEYXRhY2hhbm5lbCBzZW5kKCkgdXAg
dG8gbWF4IHNpemUgc2hvdWxkIHN1Y2NlZWQsIGFib3ZlIG1heCBzaXplIHNob3VsZCBmYWkKIFBB
U1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIHNpbXBsZSBz
dHJpbmcgYW5kIHJlY2VpdmUgYXMgc3RyaW5nCiBQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwg
c2hvdWxkIGJlIGFibGUgdG8gc2VuZCB1bmljb2RlIHN0cmluZyBhbmQgcmVjZWl2ZSBhcyB1bmlj
b2RlIHN0cmluZwogUEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3VsZCBpZ25vcmUgYmlu
YXJ5VHlwZSBhbmQgYWx3YXlzIHJlY2VpdmUgc3RyaW5nIG1lc3NhZ2UgYXMgc3RyaW5nCitQQVNT
IE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBhbiBlbXB0eSBz
dHJpbmcgYW5kIHJlY2VpdmUgYW4gZW1wdHkgc3RyaW5nCiBQQVNTIE5lZ290aWF0ZWQgZGF0YWNo
YW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBVaW50OEFycmF5IG1lc3NhZ2UgYW5kIHJlY2Vp
dmUgYXMgQXJyYXlCdWZmZXIKIFBBU1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUg
YWJsZSB0byBzZW5kIEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZm
ZXIKK1BBU1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIGFu
IGVtcHR5IEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXIKIFBB
U1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIEJsb2IgbWVz
c2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcgogUEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFu
bmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2
ZSBhcyBCbG9iCiBGQUlMIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgYmluYXJ5VHlwZSBzaG91bGQg
cmVjZWl2ZSBtZXNzYWdlIGFzIEJsb2IgYnkgZGVmYXVsdCBhc3NlcnRfZXF1YWxzOiBFeHBlY3Qg
aW5pdGlhbCBiaW5hcnlUeXBlIHZhbHVlIHRvIGJlIGJsb2IgZXhwZWN0ZWQgImJsb2IiIGJ1dCBn
b3QgImFycmF5YnVmZmVyIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5u
ZWwtc2VuZC5odG1sCmluZGV4IDE5NTI5MjFmYmYyNmYyYzZlOTU0NjAwMGExZTk4NDNiNDQwODI0
ZTguLmQ3NTI0NWMzNDc1YzU2Y2M5ODM2NTg3NmEzYmRjNGE2NjZmYjYzMDggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Rh
dGFDaGFubmVsLXNlbmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwKQEAgLTM1LDggKzM1
LDEwIEBACiAKIC8vIFNpbXBsZSBBU0NJSSBlbmNvZGVkIHN0cmluZwogY29uc3QgaGVsbG9TdHJp
bmcgPSAnaGVsbG8nOworY29uc3QgZW1wdHlTdHJpbmcgPSAnJzsKIC8vIEFTQ0lJIGVuY29kZWQg
YnVmZmVyIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzdHJpbmcKIGNvbnN0IGhlbGxvQnVmZmVyID0g
VWludDhBcnJheS5vZigweDY4LCAweDY1LCAweDZjLCAweDZjLCAweDZmKTsKK2NvbnN0IGVtcHR5
QnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoKTsKIGNvbnN0IGhlbGxvQmxvYiA9IG5ldyBCbG9iKFto
ZWxsb0J1ZmZlcl0pOwogCiAvLyBVbmljb2RlIHN0cmluZyB3aXRoIG11bHRpcGxlIGNvZGUgdW5p
dHMKQEAgLTExMiw2ICsxMTQsMjAgQEAgZm9yIChjb25zdCBvcHRpb25zIG9mIFt7fSwge25lZ290
aWF0ZWQ6IHRydWUsIGlkOiAwfV0pIHsKICAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgaGVs
bG9TdHJpbmcpOwogICAgIH0pOwogICB9LCBgJHttb2RlfSBzaG91bGQgaWdub3JlIGJpbmFyeVR5
cGUgYW5kIGFsd2F5cyByZWNlaXZlIHN0cmluZyBtZXNzYWdlIGFzIHN0cmluZ2ApOworICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgcmV0dXJuIGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRp
b25zKQorICAgIC50aGVuKChbY2hhbm5lbDEsIGNoYW5uZWwyXSkgPT4geworICAgICAgY2hhbm5l
bDEuc2VuZChlbXB0eVN0cmluZyk7CisgICAgICAvLyBTZW5kIGEgbm9uLWVtcHR5IHN0cmluZyBp
biBjYXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBpZ25vcmVzIGVtcHR5IG1lc3NhZ2VzCisgICAgICBj
aGFubmVsMS5zZW5kKGhlbGxvU3RyaW5nKTsKKyAgICAgIHJldHVybiBhd2FpdE1lc3NhZ2UoY2hh
bm5lbDIpCisgICAgfSkudGhlbihtZXNzYWdlID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHModHlw
ZW9mIG1lc3NhZ2UsICdzdHJpbmcnLAorICAgICAgICAnRXhwZWN0IG1lc3NhZ2UgdG8gYmUgYSBz
dHJpbmcnKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLCBlbXB0eVN0cmluZyk7Cisg
ICAgfSk7CisgIH0sIGAke21vZGV9IHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgYW4gZW1wdHkgc3Ry
aW5nIGFuZCByZWNlaXZlIGFuIGVtcHR5IHN0cmluZ2ApOwogCiAgIC8qCiAgICAgNi4yLiBzZW5k
KCkKQEAgLTE3MCw2ICsxODYsMjIgQEAgZm9yIChjb25zdCBvcHRpb25zIG9mIFt7fSwge25lZ290
aWF0ZWQ6IHRydWUsIGlkOiAwfV0pIHsKICAgICB9KTsKICAgfSwgYCR7bW9kZX0gc2hvdWxkIGJl
IGFibGUgdG8gc2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5QnVm
ZmVyYCk7CiAKKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIHJldHVybiBjcmVhdGVEYXRhQ2hh
bm5lbFBhaXIodCwgb3B0aW9ucykKKyAgICAudGhlbigoW2NoYW5uZWwxLCBjaGFubmVsMl0pID0+
IHsKKyAgICAgIGNoYW5uZWwyLmJpbmFyeVR5cGUgPSAnYXJyYXlidWZmZXInOworICAgICAgY2hh
bm5lbDEuc2VuZChlbXB0eUJ1ZmZlci5idWZmZXIpOworICAgICAgLy8gU2VuZCBhIG5vbi1lbXB0
eSBidWZmZXIgaW4gY2FzZSB0aGUgaW1wbGVtZW50YXRpb24gaWdub3JlcyBlbXB0eSBtZXNzYWdl
cworICAgICAgY2hhbm5lbDEuc2VuZChoZWxsb0J1ZmZlci5idWZmZXIpOworICAgICAgcmV0dXJu
IGF3YWl0TWVzc2FnZShjaGFubmVsMikKKyAgICB9KS50aGVuKG1lc3NhZ2VCdWZmZXIgPT4gewor
ICAgICAgYXNzZXJ0X3RydWUobWVzc2FnZUJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyLAor
ICAgICAgICAnRXhwZWN0IG1lc3NhZ2VCdWZmZXIgdG8gYmUgYW4gQXJyYXlCdWZmZXInKTsKKwor
ICAgICAgYXNzZXJ0X2VxdWFsc190eXBlZF9hcnJheShtZXNzYWdlQnVmZmVyLCBlbXB0eUJ1ZmZl
ci5idWZmZXIpOworICAgIH0pOworICB9LCBgJHttb2RlfSBzaG91bGQgYmUgYWJsZSB0byBzZW5k
IGFuIGVtcHR5IEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXJg
KTsKKwogICAvKgogICAgIDYuMi4gc2VuZCgpCiAgICAgICAzLiAgRXhlY3V0ZSB0aGUgc3ViIHN0
ZXAgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgdHlwZSBvZiB0aGUgbWV0aG9kcyBhcmd1bWVudDoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1z
dGF0ZS1leHBlY3RlZC50eHQKaW5kZXggZjE4OTRiZjk3MmY4YzI2NGJlY2E1NzVlNjZmNzhmNGEy
OTI3M2JjMi4uNmQyMWIzMzQ0NmRhNjgwOGQ3MmI1YWQwMWY3NjgxODE3OTBkYzIyMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1zdGF0
ZS1leHBlY3RlZC50eHQKQEAgLTIsNCArMiw1IEBACiBQQVNTIERUTFMgdHJhbnNwb3J0IGdvZXMg
dG8gY29ubmVjdGVkIHN0YXRlCiBGQUlMIGNsb3NlKCkgY2F1c2VzIHRoZSBsb2NhbCB0cmFuc3Bv
cnQgdG8gY2xvc2UgaW1tZWRpYXRlbHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNsb3NlZCIg
YnV0IGdvdCAiY29ubmVjdGVkIgogUEFTUyBjbG9zZSgpIGNhdXNlcyB0aGUgb3RoZXIgZW5kJ3Mg
RFRMUyB0cmFuc3BvcnQgdG8gY2xvc2UKK0ZBSUwgc3RvcCBidW5kbGVkIHRyYW5zY2VpdmVyIHJl
dGFpbnMgZHRscyB0cmFuc3BvcnQgc3RhdGUgYXNzZXJ0X2VxdWFsczogZ2V0UmVjZWl2ZXJzIGRv
ZXMgbm90IGV4cG9zZSBhIHJlY2VpdmVyIG9mIGEgc3RvcHBlZCB0cmFuc2NlaXZlciBleHBlY3Rl
ZCAxIGJ1dCBnb3QgMgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0YXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJh
bnNwb3J0LXN0YXRlLmh0bWwKaW5kZXggZDAyMzBkZTBlNjRkMGRjZjViMTM3MWNjMjZmNTcwOTUw
NTNhOGZkMi4uY2E0OWZjYzk1ZjI5N2UwNzg4OWVjZjMyYzIxYTM1YjllMzExYjY4YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtc3RhdGUuaHRtbApA
QCAtODYsNCArODYsNTcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBhd2FpdCByZXNv
bHZlV2hlbih0LCBkdGxzVHJhbnNwb3J0MiwgJ2Nsb3NlZCcpOwogfSwgJ2Nsb3NlKCkgY2F1c2Vz
IHRoZSBvdGhlciBlbmRcJ3MgRFRMUyB0cmFuc3BvcnQgdG8gY2xvc2UnKTsKIAorcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBjb25maWcgPSB7YnVuZGxlUG9saWN5OiAibWF4LWJ1
bmRsZSJ9OworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKTsKKyAg
Y29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZyk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgp
KTsKKworICBwYzEub25pY2VjYW5kaWRhdGUgPSBlID0+IHBjMi5hZGRJY2VDYW5kaWRhdGUoZS5j
YW5kaWRhdGUpOworICBwYzIub25pY2VjYW5kaWRhdGUgPSBlID0+IHBjMS5hZGRJY2VDYW5kaWRh
dGUoZS5jYW5kaWRhdGUpOworCisgIHBjMS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAgcGMx
LmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlv
bihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlw
dGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0
aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNj
cmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgY29uc3QgW3ZpZGVvVGMsIGF1ZGlv
VGNdID0gcGMxLmdldFRyYW5zY2VpdmVycygpOworICBjb25zdCBbdmlkZW9UcCwgYXVkaW9UcF0g
PQorICAgICAgcGMxLmdldFRyYW5zY2VpdmVycygpLm1hcCh0YyA9PiB0Yy5zZW5kZXIudHJhbnNw
b3J0KTsKKworICBjb25zdCBbdmlkZW9QYzJUcCwgYXVkaW9QYzJUcF0gPQorICAgICAgcGMyLmdl
dFRyYW5zY2VpdmVycygpLm1hcCh0YyA9PiB0Yy5zZW5kZXIudHJhbnNwb3J0KTsKKworICBhc3Nl
cnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDIsICdwYzEgdHJhbnNjZWl2
ZXIgY291bnQnKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3Ro
LCAyLCAncGMyIHRyYW5zY2VpdmVyIGNvdW50Jyk7CisgIGFzc2VydF9lcXVhbHModmlkZW9UYy5z
ZW5kZXIudHJhbnNwb3J0LCB2aWRlb1RjLnJlY2VpdmVyLnRyYW5zcG9ydCk7CisgIGFzc2VydF9l
cXVhbHModmlkZW9UYy5zZW5kZXIudHJhbnNwb3J0LCBhdWRpb1RjLnNlbmRlci50cmFuc3BvcnQp
OworCisgIGF3YWl0IFByb21pc2UuYWxsKFtyZXNvbHZlV2hlbih0LCB2aWRlb1RwLCAnY29ubmVj
dGVkJyksCisgICAgICAgICAgICAgICAgICAgICByZXNvbHZlV2hlbih0LCB2aWRlb1BjMlRwLCAn
Y29ubmVjdGVkJyldKTsKKworICBhc3NlcnRfZXF1YWxzKGF1ZGlvVGMuc2VuZGVyLCBwYzEuZ2V0
U2VuZGVycygpWzFdKTsKKworICBsZXQgc3RvcHBlZFRyYW5zY2VpdmVyID0gcGMxLmdldFRyYW5z
Y2VpdmVycygpWzBdOworICBhc3NlcnRfZXF1YWxzKHN0b3BwZWRUcmFuc2NlaXZlciwgdmlkZW9U
Yyk7IC8vIHNhbml0eQorICBsZXQgb25lbmRlZCA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewor
ICAgIHN0b3BwZWRUcmFuc2NlaXZlci5yZWNlaXZlci50cmFjay5vbmVuZGVkID0gcmVzb2x2ZTsK
KyAgfSk7CisgIHN0b3BwZWRUcmFuc2NlaXZlci5zdG9wKCk7CisgIGF3YWl0IG9uZW5kZWQ7CisK
KyAgYXNzZXJ0X2VxdWFscygKKyAgICAgIHBjMS5nZXRSZWNlaXZlcnMoKS5sZW5ndGgsIDEsCisg
ICAgICAnZ2V0UmVjZWl2ZXJzIGRvZXMgbm90IGV4cG9zZSBhIHJlY2VpdmVyIG9mIGEgc3RvcHBl
ZCB0cmFuc2NlaXZlcicpOworICBhc3NlcnRfZXF1YWxzKAorICAgICAgcGMxLmdldFNlbmRlcnMo
KS5sZW5ndGgsIDEsCisgICAgICAnZ2V0U2VuZGVycyBkb2VzIG5vdCBleHBvc2UgYSBzZW5kZXIg
b2YgYSBzdG9wcGVkIHRyYW5zY2VpdmVyJyk7CisgIGFzc2VydF9lcXVhbHMoYXVkaW9UYy5zZW5k
ZXIsIHBjMS5nZXRTZW5kZXJzKClbMF0pOyAvLyBzYW5pdHkKKyAgYXNzZXJ0X2VxdWFscyhhdWRp
b1RjLnNlbmRlci50cmFuc3BvcnQsIGF1ZGlvVHApOyAvLyBzYW5pdHkKKyAgYXNzZXJ0X2VxdWFs
cyhhdWRpb1RwLnN0YXRlLCAnY29ubmVjdGVkJyk7Cit9LCAnc3RvcCBidW5kbGVkIHRyYW5zY2Vp
dmVyIHJldGFpbnMgZHRscyB0cmFuc3BvcnQgc3RhdGUnKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENJY2VDb25uZWN0aW9uU3RhdGUtY2FuZGlkYXRlLXBhaXIuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNl
Q29ubmVjdGlvblN0YXRlLWNhbmRpZGF0ZS1wYWlyLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAz
NjkzZDMyYTkzOWE5MGQ3ZGQ1OTk4NzI2N2E0MmYwMzBlNTMxMzM3Li4wN2ZjNjBmNWM1NmI4YWUw
ZDYzNjNjMzI0NGYwZTg2ODRmMmI0MmE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDb25uZWN0aW9uU3RhdGUtY2Fu
ZGlkYXRlLXBhaXIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5k
aWRhdGUtcGFpci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACiAKLUhhcm5lc3Mg
RXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIE9uIElDRSBjb25uZWN0
ZWQsIGdldFN0YXRzKCkgY29udGFpbnMgYSBjb25uZWN0ZWQgY2FuZGlkYXRlLXBhaXIgVGVzdCB0
aW1lZCBvdXQKK1BBU1MgT24gSUNFIGNvbm5lY3RlZCwgZ2V0U3RhdHMoKSBjb250YWlucyBhIGNv
bm5lY3RlZCBjYW5kaWRhdGUtcGFpcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9u
LWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24taGVscGVyLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2NTllYzU5YjhkZjI4NDdlN2UyYTNjNTEzZDNkNmZkMDEwMjdmMTZk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9y
dC1leHRlbnNpb24taGVscGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotJ3Vz
ZSBzdHJpY3QnOwotCi0vLyBDb25zdHJ1Y3QgYW4gUlRDSWNlVHJhbnNwb3J0IGluc3RhbmNlLiBU
aGUgaW5zdGFuY2Ugd2lsbCBhdXRvbWF0aWNhbGx5IGJlCi0vLyBjbGVhbmVkIHVwIHdoZW4gdGhl
IHRlc3QgZmluaXNoZXMuCi1mdW5jdGlvbiBtYWtlSWNlVHJhbnNwb3J0KHQpIHsKLSAgY29uc3Qg
aWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOwotICB0LmFkZF9jbGVhbnVwKCgp
ID0+IGljZVRyYW5zcG9ydC5zdG9wKCkpOwotICByZXR1cm4gaWNlVHJhbnNwb3J0OwotfQotCi0v
LyBDb25zdHJ1Y3QgdHdvIFJUQ0ljZVRyYW5zcG9ydCBpbnN0YW5jZXMsIGNvbmZpZ3VyZSB0aGVt
IHRvIGV4Y2hhbmdlCi0vLyBjYW5kaWRhdGVzLCB0aGVuIGdhdGhlcigpIHRoZW0uCi0vLyBSZXR1
cm5zIGEgMi1saXN0OiBbIFJUQ0ljZVRyYW5zcG9ydCwgUlRDSWNlVHJhbnNwb3J0IF0KLWZ1bmN0
aW9uIG1ha2VBbmRHYXRoZXJUd29JY2VUcmFuc3BvcnRzKHQpIHsKLSAgY29uc3QgbG9jYWxUcmFu
c3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOwotICBjb25zdCByZW1vdGVUcmFuc3BvcnQgPSBt
YWtlSWNlVHJhbnNwb3J0KHQpOwotICBsb2NhbFRyYW5zcG9ydC5vbmljZWNhbmRpZGF0ZSA9IGUg
PT4gewotICAgIGlmIChlLmNhbmRpZGF0ZSkgewotICAgICAgcmVtb3RlVHJhbnNwb3J0LmFkZFJl
bW90ZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7Ci0gICAgfQotICB9OwotICByZW1vdGVUcmFuc3Bv
cnQub25pY2VjYW5kaWRhdGUgPSBlID0+IHsKLSAgICBpZiAoZS5jYW5kaWRhdGUpIHsKLSAgICAg
IGxvY2FsVHJhbnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7Ci0gICAgfQot
ICB9OwotICBsb2NhbFRyYW5zcG9ydC5nYXRoZXIoe30pOwotICByZW1vdGVUcmFuc3BvcnQuZ2F0
aGVyKHt9KTsKLSAgcmV0dXJuIFsgbG9jYWxUcmFuc3BvcnQsIHJlbW90ZVRyYW5zcG9ydCBdOwot
fQotCi0vLyBDb25zdHJ1Y3QgdHdvIFJUQ0ljZVRyYW5zcG9ydCBpbnN0YW5jZXMsIGNvbmZpZ3Vy
ZSB0aGVtIHRvIGV4Y2hhbmdlCi0vLyBjYW5kaWRhdGVzIGFuZCBwYXJhbWV0ZXJzLCB0aGVuIGdh
dGhlcigpIGFuZCBzdGFydCgpIHRoZW0uCi0vLyBSZXR1cm5zIGEgMi1saXN0OgotLy8gICAgIFsg
Y29udHJvbGxpbmcgUlRDSWNlVHJhbnNwb3J0LAotLy8gICAgICAgY29udHJvbGxlZCBSVENJY2VU
cmFuc3BvcnQgXQotZnVuY3Rpb24gbWFrZUdhdGhlckFuZFN0YXJ0VHdvSWNlVHJhbnNwb3J0cyh0
KSB7Ci0gIGNvbnN0IFsgbG9jYWxUcmFuc3BvcnQsIHJlbW90ZVRyYW5zcG9ydCBdID0gbWFrZUFu
ZEdhdGhlclR3b0ljZVRyYW5zcG9ydHModCk7Ci0gIGxvY2FsVHJhbnNwb3J0LnN0YXJ0KHJlbW90
ZVRyYW5zcG9ydC5nZXRMb2NhbFBhcmFtZXRlcnMoKSwgJ2NvbnRyb2xsaW5nJyk7Ci0gIHJlbW90
ZVRyYW5zcG9ydC5zdGFydChsb2NhbFRyYW5zcG9ydC5nZXRMb2NhbFBhcmFtZXRlcnMoKSwgJ2Nv
bnRyb2xsZWQnKTsKLSAgcmV0dXJuIFsgbG9jYWxUcmFuc3BvcnQsIHJlbW90ZVRyYW5zcG9ydCBd
OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJ
Y2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwMzgyMDc2YmJm
YThiN2U5NWViOWE5MTg1ZmRmY2ZkOTJiZWI4NzdmLi4yMjg4MmMwOTUwM2Y1NDBlOTYzNGE1Y2M2
YzYyZTZhMGFiNTUyNzA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDYgQEAKIAorSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBUeXBlRXJy
b3I6IENhbmRpZGF0ZSBtdXN0IG5vdCBoYXZlIGJvdGggbnVsbCBzZHBNaWQgYW5kIHNkcE1MaW5l
SW5kZXgKKwogRkFJTCBSVENJY2VUcmFuc3BvcnQgY29uc3RydWN0b3IgZG9lcyBub3QgdGhyb3cg
SWxsZWdhbCBjb25zdHJ1Y3RvcgogRkFJTCBSVENJY2VUcmFuc3BvcnQgaW5pdGlhbCBwcm9wZXJ0
aWVzIGFyZSBzZXQgSWxsZWdhbCBjb25zdHJ1Y3RvcgogRkFJTCBnYXRoZXIoKSB3aXRoIHsgaWNl
U2VydmVyczogbnVsbCB9IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgSWxsZWdhbCBjb25zdHJ1Y3Rv
cgpAQCAtMTQsMjAgKzE2LDcgQEAgRkFJTCBnYXRoZXIoKSByZXR1cm5zIGF0IGxlYXN0IG9uZSBo
b3N0IGNhbmRpZGF0ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3QKIEZBSUwgZ2F0aGVy
KCkgcmV0dXJucyBubyBjYW5kaWRhdGVzIHdpdGggeyBnYXRoZXJQb2xpY3k6ICdyZWxheSd9IGFu
ZCBubyB0dXJuIHNlcnZlcnMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9yIgogRkFJTCBzdGFy
dCgpIHRocm93cyBpZiBjbG9zZWQgSWxsZWdhbCBjb25zdHJ1Y3RvcgogRkFJTCBzdGFydCgpIHRo
cm93cyBpZiB1c2VybmFtZUZyYWdtZW50IG9yIHBhc3N3b3JkIG5vdCBzZXQgSWxsZWdhbCBjb25z
dHJ1Y3RvcgotRkFJTCBzdGFydCgpIHRocm93cyBpZiB1c2VybmFtZUZyYWdtZW50IGRvZXMgbm90
IGNvbmZvcm0gdG8gc3ludGF4IElsbGVnYWwgY29uc3RydWN0b3IKLUZBSUwgc3RhcnQoKSB0aHJv
d3MgaWYgcGFzc3dvcmQgZG9lcyBub3QgY29uZm9ybSB0byBzeW50YXggSWxsZWdhbCBjb25zdHJ1
Y3RvcgogRkFJTCBzdGFydCgpIGRvZXMgbm90IHRyYW5zaXRpb24gc3RhdGUgdG8gJ2NoZWNraW5n
JyBpZiBubyByZW1vdGUgY2FuZGlkYXRlcyBhZGRlZCBJbGxlZ2FsIGNvbnN0cnVjdG9yCiBGQUlM
IHN0YXJ0KCkgd2l0aCBkZWZhdWx0IHJvbGUgc2V0cyByb2xlIGF0dHJpYnV0ZSB0byAnY29udHJv
bGxlZCcgSWxsZWdhbCBjb25zdHJ1Y3RvcgogRkFJTCBzdGFydCgpIHNldHMgcm9sZSBhdHRyaWJ1
dGUgdG8gJ2NvbnRyb2xsaW5nJyBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIGFkZFJlbW90ZUNh
bmRpZGF0ZSgpIHRocm93cyBpZiBjbG9zZWQgSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBhZGRS
ZW1vdGVDYW5kaWRhdGUoKSB0aHJvd3Mgb24gaW52YWxpZCBjYW5kaWRhdGUgSWxsZWdhbCBjb25z
dHJ1Y3RvcgotRkFJTCBzdGFydCgpIHRyYW5zaXRpb25zIHN0YXRlIHRvICdjaGVja2luZycgaWYg
b25lIHJlbW90ZSBjYW5kaWRhdGUgaGFkIGJlZW4gYWRkZWQgSWxsZWdhbCBjb25zdHJ1Y3Rvcgot
RkFJTCBhZGRSZW1vdGVDYW5kaWRhdGUoKSB0cmFuc2l0aW9ucyBzdGF0ZSB0byAnY2hlY2tpbmcn
IGlmIHN0YXJ0KCkgaGFkIGJlZW4gY2FsbGVkIGJlZm9yZSBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1G
QUlMIHN0YXJ0KCkgdGhyb3dzIGlmIGxhdGVyIGNhbGxlZCB3aXRoIGEgZGlmZmVyZW50IHJvbGUg
SWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBzdGFydCgpIGZsdXNoZXMgcmVtb3RlIGNhbmRpZGF0
ZXMgYW5kIHRyYW5zaXRpb25zIHN0YXRlIHRvICduZXcnIGlmIGxhdGVyIGNhbGxlZCB3aXRoIGRp
ZmZlcmVudCByZW1vdGUgcGFyYW1ldGVycyBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIFR3byBS
VENJY2VUcmFuc3BvcnRzIGNvbm5lY3QgdG8gZWFjaCBvdGhlciBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IElsbGVnYWwgY29u
c3RydWN0b3IiCi1GQUlMIFR3byBSVENJY2VUcmFuc3BvcnRzIGNvbmZpZ3VyZWQgd2l0aCB0aGUg
Y29udHJvbGxpbmcgcm9sZSByZXNvbHZlIHRoZSBjb25mbGljdCBpbiBiYW5kIGFuZCBzdGlsbCBj
b25uZWN0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6IElsbGVnYWwgY29uc3RydWN0b3IiCi1GQUlMIFR3byBSVENJY2VUcmFu
c3BvcnRzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgY29udHJvbGxlZCByb2xlIHJlc29sdmUgdGhlIGNv
bmZsaWN0IGluIGJhbmQgYW5kIHN0aWxsIGNvbm5lY3QuIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogSWxsZWdhbCBjb25zdHJ1
Y3RvciIKLUZBSUwgU2VsZWN0ZWQgY2FuZGlkYXRlIHBhaXIgY2hhbmdlcyBvbmNlIHRoZSBSVENJ
Y2VUcmFuc3BvcnRzIGNvbm5lY3QuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogSWxsZWdhbCBjb25zdHJ1Y3RvciIKLUZBSUwg
Z2V0U2VsZWN0ZWRDYW5kaWRhdGVQYWlyKCkgcmV0dXJucyBudWxsIG9uY2UgdGhlIFJUQ0ljZVRy
YW5zcG9ydCBpcyBzdG9wcGVkLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IElsbGVnYWwgY29uc3RydWN0b3IiCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNp
b24uaHR0cHMuaHRtbAppbmRleCBiYjRkNTJhZGNlNTY3M2JhYjVkNTI3NTM2ZDY3Zjg5YTAzYTQ4
Y2QyLi45YzZjZWM3ZTFlNDk5NGVlNThmNjgyMmQ3NzA0OGVjYThlOGFmNTY5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJ
Y2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lv
bi5odHRwcy5odG1sCkBAIC0zLDIwICszLDE3IEBACiA8dGl0bGU+UlRDSWNlVHJhbnNwb3J0LWV4
dGVuc2lvbnMuaHR0cHMuaHRtbDwvdGl0bGU+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUlRDSWNlVHJhbnNwb3J0LWV4dGVu
c2lvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICd1c2Ugc3RyaWN0JzsKIAogLy8g
VGhlc2UgdGVzdHMgYXJlIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZXh0ZW5zaW9uIHNwZWNpZmlj
YXRpb246CiAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLWljZS8KIAotLy8gVGhlIGZv
bGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbQotLy8gUlRDSWNlVHJhbnNw
b3J0LWV4dGVuc2lvbi1oZWxwZXIuanM6Ci0vLyAgIG1ha2VJY2VUcmFuc3BvcnQKLS8vICAgbWFr
ZUdhdGhlckFuZFN0YXJ0VHdvSWNlVHJhbnNwb3J0cwotCi1jb25zdCBJQ0VfVUZSQUcgPSAndScu
cmVwZWF0KDQpOwotY29uc3QgSUNFX1BXRCA9ICdwJy5yZXBlYXQoMjIpOworZnVuY3Rpb24gbWFr
ZUljZVRyYW5zcG9ydCh0KSB7CisgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFu
c3BvcnQoKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBpY2VUcmFuc3BvcnQuc3RvcCgpKTsKKyAg
cmV0dXJuIGljZVRyYW5zcG9ydDsKK30KIAogdGVzdCgoKSA9PiB7CiAgIGNvbnN0IGljZVRyYW5z
cG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsKQEAgLTQyLDcgKzM5LDcgQEAgdGVzdCgoKSA9
PiB7CiAKIHRlc3QodCA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3Bv
cnQodCk7Ci0gIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PgorICBhc3NlcnRfdGhy
b3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4KICAgICBpY2VUcmFuc3BvcnQuZ2F0aGVyKHsgaWNl
U2VydmVyczogbnVsbCB9KSk7CiB9LCAnZ2F0aGVyKCkgd2l0aCB7IGljZVNlcnZlcnM6IG51bGwg
fSBzaG91bGQgdGhyb3cgVHlwZUVycm9yJyk7CiAKQEAgLTcxLDcgKzY4LDcgQEAgdGVzdCh0ID0+
IHsKIHRlc3QodCA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQo
dCk7CiAgIGljZVRyYW5zcG9ydC5zdG9wKCk7Ci0gIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlk
U3RhdGVFcnJvcicsICgpID0+IGljZVRyYW5zcG9ydC5nYXRoZXIoe30pKTsKKyAgYXNzZXJ0X3Ro
cm93cygnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBpY2VUcmFuc3BvcnQuZ2F0aGVyKHt9KSk7
CiB9LCAnZ2F0aGVyKCkgdGhyb3dzIGlmIGNsb3NlZCcpOwogCiB0ZXN0KHQgPT4gewpAQCAtODMs
NyArODAsNyBAQCB0ZXN0KHQgPT4gewogdGVzdCh0ID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0
ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKICAgaWNlVHJhbnNwb3J0LmdhdGhlcih7fSk7Ci0gIGFz
c2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGljZVRyYW5zcG9ydC5n
YXRoZXIoe30pKTsKKyAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBp
Y2VUcmFuc3BvcnQuZ2F0aGVyKHt9KSk7CiB9LCAnZ2F0aGVyKCkgdGhyb3dzIGlmIGNhbGxlZCB0
d2ljZScpOwogCiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CkBAIC0xMDEsNyArOTgsNyBAQCBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGljZVRyYW5zcG9ydC5nYXRoZXIoe30pOwogICBs
ZXQgY2FuZGlkYXRlOwogICBkbyB7Ci0gICAgKCh7IGNhbmRpZGF0ZSB9ID0gYXdhaXQgd2F0Y2hl
ci53YWl0X2ZvcignaWNlY2FuZGlkYXRlJykpKTsKKyAgICAoeyBjYW5kaWRhdGUgfSA9IGF3YWl0
IHdhdGNoZXIud2FpdF9mb3IoJ2ljZWNhbmRpZGF0ZScpKTsKICAgfSB3aGlsZSAoY2FuZGlkYXRl
ICE9PSBudWxsKTsKICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2F0aGVyaW5nU3RhdGUs
ICdnYXRoZXJpbmcnKTsKICAgYXdhaXQgd2F0Y2hlci53YWl0X2ZvcignZ2F0aGVyaW5nc3RhdGVj
aGFuZ2UnKTsKQEAgLTEyOSw2NCArMTI2LDI4IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgICAnIHNlcnZlcnMnKTsKIAogY29uc3QgZHVtbXlSZW1vdGVQYXJhbWV0ZXJzID0gewotICB1
c2VybmFtZUZyYWdtZW50OiBJQ0VfVUZSQUcsCi0gIHBhc3N3b3JkOiBJQ0VfUFdELAorICB1c2Vy
bmFtZUZyYWdtZW50OiAnZHVtbXlVc2VybmFtZUZyYWdtZW50JywKKyAgcGFzc3dvcmQ6ICdkdW1t
eVBhc3N3b3JkJywKIH07CiAKIHRlc3QoKCkgPT4gewogICBjb25zdCBpY2VUcmFuc3BvcnQgPSBu
ZXcgUlRDSWNlVHJhbnNwb3J0KCk7CiAgIGljZVRyYW5zcG9ydC5zdG9wKCk7Ci0gIGFzc2VydF90
aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsCisgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRT
dGF0ZUVycm9yJywKICAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoZHVtbXlSZW1vdGVQYXJh
bWV0ZXJzKSk7CiAgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldFJlbW90ZVBhcmFtZXRl
cnMoKSwgbnVsbCk7CiB9LCBgc3RhcnQoKSB0aHJvd3MgaWYgY2xvc2VkYCk7CiAKIHRlc3QoKCkg
PT4gewogICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7Ci0gIGFz
c2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoe30pKTsK
LSAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsCi0gICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0
YXJ0KHsgdXNlcm5hbWVGcmFnbWVudDogSUNFX1VGUkFHIH0pKTsKLSAgYXNzZXJ0X3Rocm93c19q
cyhUeXBlRXJyb3IsCi0gICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KHsgcGFzc3dvcmQ6IElD
RV9QV0QgfSkpOworICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4gaWNlVHJh
bnNwb3J0LnN0YXJ0KHt9KSk7CisgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLAorICAg
ICgpID0+IGljZVRyYW5zcG9ydC5zdGFydCh7IHVzZXJuYW1lRnJhZ21lbnQ6ICdkdW1teScgfSkp
OworICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwKKyAgICAoKSA9PiBpY2VUcmFuc3Bv
cnQuc3RhcnQoeyBwYXNzd29yZDogJ2R1bW15JyB9KSk7CiAgIGFzc2VydF9lcXVhbHMoaWNlVHJh
bnNwb3J0LmdldFJlbW90ZVBhcmFtZXRlcnMoKSwgbnVsbCk7CiB9LCAnc3RhcnQoKSB0aHJvd3Mg
aWYgdXNlcm5hbWVGcmFnbWVudCBvciBwYXNzd29yZCBub3Qgc2V0Jyk7CiAKLXRlc3QoKCkgPT4g
ewotICBjb25zdCBURVNUX0NBU0VTID0gWwotICAgIHt1c2VybmFtZUZyYWdtZW50OiAnMnNoJywg
ZGVzY3JpcHRpb246ICdsZXNzIHRoYW4gNCBjaGFyYWN0ZXJzIGxvbmcnfSwKLSAgICB7Ci0gICAg
ICB1c2VybmFtZUZyYWdtZW50OiAneCcucmVwZWF0KDI1NyksCi0gICAgICBkZXNjcmlwdGlvbjog
J2dyZWF0ZXIgdGhhbiAyNTYgY2hhcmFjdGVycyBsb25nJywKLSAgICB9LAotICAgIHt1c2VybmFt
ZUZyYWdtZW50OiAnMTIzXG4nLCBkZXNjcmlwdGlvbjogJ2lsbGVnYWwgY2hhcmFjdGVyJ30sCi0g
IF07Ci0gIGZvciAoY29uc3Qge3VzZXJuYW1lRnJhZ21lbnQsIGRlc2NyaXB0aW9ufSBvZiBURVNU
X0NBU0VTKSB7Ci0gICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgp
OwotICAgIGFzc2VydF90aHJvd3NfZG9tKAotICAgICAgJ1N5bnRheEVycm9yJywKLSAgICAgICgp
ID0+IGljZVRyYW5zcG9ydC5zdGFydCh7IHVzZXJuYW1lRnJhZ21lbnQsIHBhc3N3b3JkOiBJQ0Vf
UFdEIH0pLAotICAgICAgYGlsbGVnYWwgdXNlcm5hbWVGcmFnbWVudCAoJHtkZXNjcmlwdGlvbn0p
IHNob3VsZCB0aHJvdyBhIFN5bnRheEVycm9yYCk7Ci0gIH0KLX0sICdzdGFydCgpIHRocm93cyBp
ZiB1c2VybmFtZUZyYWdtZW50IGRvZXMgbm90IGNvbmZvcm0gdG8gc3ludGF4Jyk7Ci0KLXRlc3Qo
KCkgPT4gewotICBjb25zdCBURVNUX0NBU0VTID0gWwotICAgIHtwYXNzd29yZDogJ3gnLnJlcGVh
dCgyMSksIGRlc2NyaXB0aW9uOiAnbGVzcyB0aGFuIDIyIGNoYXJhY3RlcnMgbG9uZyd9LAotICAg
IHsKLSAgICAgIHBhc3N3b3JkOiAneCcucmVwZWF0KDI1NyksCi0gICAgICBkZXNjcmlwdGlvbjog
J2dyZWF0ZXIgdGhhbiAyNTYgY2hhcmFjdGVycyBsb25nJywKLSAgICB9LAotICAgIHtwYXNzd29y
ZDogKCd4Jy5yZXBlYXQoMjEpICsgJ1xuJyksIGRlc2NyaXB0aW9uOiAnaWxsZWdhbCBjaGFyYWN0
ZXInfSwKLSAgXTsKLSAgZm9yIChjb25zdCB7cGFzc3dvcmQsIGRlc2NyaXB0aW9ufSBvZiBURVNU
X0NBU0VTKSB7Ci0gICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgp
OwotICAgIGFzc2VydF90aHJvd3NfZG9tKAotICAgICAgJ1N5bnRheEVycm9yJywKLSAgICAgICgp
ID0+IGljZVRyYW5zcG9ydC5zdGFydCh7IHVzZXJuYW1lRnJhZ21lbnQ6IElDRV9VRlJBRywgcGFz
c3dvcmQgfSksCi0gICAgICBgaWxsZWdhbCBwYXNzd29yZCAoJHtkZXNjcmlwdGlvbn0pIHNob3Vs
ZCB0aHJvdyBhIFN5bnRheEVycm9yYCk7Ci0gIH0KLX0sICdzdGFydCgpIHRocm93cyBpZiBwYXNz
d29yZCBkb2VzIG5vdCBjb25mb3JtIHRvIHN5bnRheCcpOwotCiBjb25zdCBhc3NlcnRfaWNlX3Bh
cmFtZXRlcnNfZXF1YWxzID0gKGEsIGIpID0+IHsKICAgYXNzZXJ0X2VxdWFscyhhLnVzZXJuYW1l
RnJhZ21lbnQsIGIudXNlcm5hbWVGcmFnbWVudCwKICAgICAgICd1c2VybmFtZUZyYWdtZW50cyBh
cmUgZXF1YWwnKTsKQEAgLTIxNiwyMiArMTc3LDIxIEBAIHRlc3QodCA9PiB7CiAKIGNvbnN0IGNh
bmRpZGF0ZTEgPSBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsKICAgY2FuZGlkYXRlOiAnY2FuZGlkYXRl
OjEgMSB1ZHAgMjExMzkyOTQ3MSAyMDMuMC4xMTMuMTAwIDEwMTAwIHR5cCBob3N0JywKLSAgc2Rw
TWlkOiAnJywKIH0pOwogCiB0ZXN0KCgpID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3
IFJUQ0ljZVRyYW5zcG9ydCgpOwogICBpY2VUcmFuc3BvcnQuc3RvcCgpOwotICBhc3NlcnRfdGhy
b3dzX2RvbSgnSW52YWxpZFN0YXRlRXJyb3InLAorICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3Rh
dGVFcnJvcicsCiAgICAgKCkgPT4gaWNlVHJhbnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0ZShjYW5k
aWRhdGUxKSk7CiAgIGFzc2VydF9hcnJheV9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldFJlbW90ZUNh
bmRpZGF0ZXMoKSwgW10pOwogfSwgJ2FkZFJlbW90ZUNhbmRpZGF0ZSgpIHRocm93cyBpZiBjbG9z
ZWQnKTsKIAogdGVzdCgoKSA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VU
cmFuc3BvcnQoKTsKLSAgYXNzZXJ0X3Rocm93c19kb20oJ09wZXJhdGlvbkVycm9yJywKKyAgYXNz
ZXJ0X3Rocm93cygnT3BlcmF0aW9uRXJyb3InLAogICAgICgpID0+IGljZVRyYW5zcG9ydC5hZGRS
ZW1vdGVDYW5kaWRhdGUoCi0gICAgICBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsgY2FuZGlkYXRlOiAn
aW52YWxpZCcsIHNkcE1pZDogJycgfSkpKTsKKyAgICAgIG5ldyBSVENJY2VDYW5kaWRhdGUoeyBj
YW5kaWRhdGU6ICdpbnZhbGlkJyB9KSkpOwogICBhc3NlcnRfYXJyYXlfZXF1YWxzKGljZVRyYW5z
cG9ydC5nZXRSZW1vdGVDYW5kaWRhdGVzKCksIFtdKTsKIH0sICdhZGRSZW1vdGVDYW5kaWRhdGUo
KSB0aHJvd3Mgb24gaW52YWxpZCBjYW5kaWRhdGUnKTsKIApAQCAtMjU2LDIwICsyMTYsMjAgQEAg
dGVzdCh0ID0+IHsKIHRlc3QodCA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VU
cmFuc3BvcnQodCk7CiAgIGljZVRyYW5zcG9ydC5zdGFydChkdW1teVJlbW90ZVBhcmFtZXRlcnMp
OwotICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZFN0YXRlRXJyb3InLAorICBhc3NlcnRfdGhy
b3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsCiAgICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KGR1
bW15UmVtb3RlUGFyYW1ldGVycywgJ2NvbnRyb2xsaW5nJykpOwogfSwgJ3N0YXJ0KCkgdGhyb3dz
IGlmIGxhdGVyIGNhbGxlZCB3aXRoIGEgZGlmZmVyZW50IHJvbGUnKTsKIAogdGVzdCh0ID0+IHsK
ICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKICAgaWNlVHJhbnNw
b3J0LnN0YXJ0KHsKLSAgICB1c2VybmFtZUZyYWdtZW50OiAnMScucmVwZWF0KDQpLAotICAgIHBh
c3N3b3JkOiAnMScucmVwZWF0KDIyKSwKKyAgICB1c2VybmFtZUZyYWdtZW50OiAndXNlcicsCisg
ICAgcGFzc3dvcmQ6ICdwYXNzJywKICAgfSk7CiAgIGljZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5k
aWRhdGUoY2FuZGlkYXRlMSk7CiAgIGNvbnN0IGNoYW5nZWRSZW1vdGVQYXJhbWV0ZXJzID0gewot
ICAgIHVzZXJuYW1lRnJhZ21lbnQ6ICcyJy5yZXBlYXQoNCksCi0gICAgcGFzc3dvcmQ6ICcyJy5y
ZXBlYXQoMjIpLAorICAgIHVzZXJuYW1lRnJhZ21lbnQ6ICd1c2VyMicsCisgICAgcGFzc3dvcmQ6
ICdwYXNzJywKICAgfTsKICAgaWNlVHJhbnNwb3J0LnN0YXJ0KGNoYW5nZWRSZW1vdGVQYXJhbWV0
ZXJzKTsKICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuc3RhdGUsICduZXcnKTsKQEAgLTI4
MCw4ICsyNDAsMjIgQEAgdGVzdCh0ID0+IHsKICAgICdsYXRlciBjYWxsZWQgd2l0aCBkaWZmZXJl
bnQgcmVtb3RlIHBhcmFtZXRlcnMnKTsKIAogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBj
b25zdCBbIGxvY2FsVHJhbnNwb3J0LCByZW1vdGVUcmFuc3BvcnQgXSA9Ci0gICAgICBtYWtlR2F0
aGVyQW5kU3RhcnRUd29JY2VUcmFuc3BvcnRzKHQpOworICBjb25zdCBsb2NhbFRyYW5zcG9ydCA9
IG1ha2VJY2VUcmFuc3BvcnQodCk7CisgIGNvbnN0IHJlbW90ZVRyYW5zcG9ydCA9IG1ha2VJY2VU
cmFuc3BvcnQodCk7CisgIGxvY2FsVHJhbnNwb3J0Lm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7Cisg
ICAgaWYgKGUuY2FuZGlkYXRlKSB7CisgICAgICByZW1vdGVUcmFuc3BvcnQuYWRkUmVtb3RlQ2Fu
ZGlkYXRlKGUuY2FuZGlkYXRlKTsKKyAgICB9CisgIH07CisgIHJlbW90ZVRyYW5zcG9ydC5vbmlj
ZWNhbmRpZGF0ZSA9IGUgPT4geworICAgIGlmIChlLmNhbmRpZGF0ZSkgeworICAgICAgbG9jYWxU
cmFuc3BvcnQuYWRkUmVtb3RlQ2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsKKyAgICB9CisgIH07Cisg
IGxvY2FsVHJhbnNwb3J0LmdhdGhlcih7fSk7CisgIHJlbW90ZVRyYW5zcG9ydC5nYXRoZXIoe30p
OworICBsb2NhbFRyYW5zcG9ydC5zdGFydChyZW1vdGVUcmFuc3BvcnQuZ2V0TG9jYWxQYXJhbWV0
ZXJzKCksICdjb250cm9sbGluZycpOworICByZW1vdGVUcmFuc3BvcnQuc3RhcnQobG9jYWxUcmFu
c3BvcnQuZ2V0TG9jYWxQYXJhbWV0ZXJzKCksICdjb250cm9sbGVkJyk7CiAgIGNvbnN0IGxvY2Fs
V2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgbG9jYWxUcmFuc3BvcnQsICdzdGF0ZWNoYW5n
ZScpOwogICBjb25zdCByZW1vdGVXYXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCByZW1vdGVU
cmFuc3BvcnQsICdzdGF0ZWNoYW5nZScpOwogICBhd2FpdCBQcm9taXNlLmFsbChbCkBAIC0yOTQs
NjkgKzI2OCw0IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgXSk7CiB9LCAnVHdvIFJU
Q0ljZVRyYW5zcG9ydHMgY29ubmVjdCB0byBlYWNoIG90aGVyJyk7CiAKLVsnY29udHJvbGxpbmcn
LCAnY29udHJvbGxlZCddLmZvckVhY2gocm9sZSA9PiB7Ci0gIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKLSAgICBjb25zdCBbIGxvY2FsVHJhbnNwb3J0LCByZW1vdGVUcmFuc3BvcnQgXSA9Ci0g
ICAgICAgIG1ha2VBbmRHYXRoZXJUd29JY2VUcmFuc3BvcnRzKHQpOwotICAgIGxvY2FsVHJhbnNw
b3J0LnN0YXJ0KHJlbW90ZVRyYW5zcG9ydC5nZXRMb2NhbFBhcmFtZXRlcnMoKSwgcm9sZSk7Ci0g
ICAgcmVtb3RlVHJhbnNwb3J0LnN0YXJ0KGxvY2FsVHJhbnNwb3J0LmdldExvY2FsUGFyYW1ldGVy
cygpLCByb2xlKTsKLSAgICBjb25zdCBsb2NhbFdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQs
IGxvY2FsVHJhbnNwb3J0LCAnc3RhdGVjaGFuZ2UnKTsKLSAgICBjb25zdCByZW1vdGVXYXRjaGVy
ID0gbmV3IEV2ZW50V2F0Y2hlcih0LCByZW1vdGVUcmFuc3BvcnQsICdzdGF0ZWNoYW5nZScpOwot
ICAgIGF3YWl0IFByb21pc2UuYWxsKFsKLSAgICAgIGxvY2FsV2F0Y2hlci53YWl0X2Zvcignc3Rh
dGVjaGFuZ2UnKS50aGVuKCgpID0+IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhsb2NhbFRyYW5z
cG9ydC5zdGF0ZSwgJ2Nvbm5lY3RlZCcpOwotICAgICAgfSksCi0gICAgICByZW1vdGVXYXRjaGVy
LndhaXRfZm9yKCdzdGF0ZWNoYW5nZScpLnRoZW4oKCkgPT4gewotICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlbW90ZVRyYW5zcG9ydC5zdGF0ZSwgJ2Nvbm5lY3RlZCcpOwotICAgICAgfSksCi0gICAg
XSk7Ci0gIH0sIGBUd28gUlRDSWNlVHJhbnNwb3J0cyBjb25maWd1cmVkIHdpdGggdGhlICR7cm9s
ZX0gcm9sZSByZXNvbHZlIHRoZSBgICsKLSAgICAgICdjb25mbGljdCBpbiBiYW5kIGFuZCBzdGls
bCBjb25uZWN0LicpOwotfSk7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgYXN5bmMg
ZnVuY3Rpb24gd2FpdEZvclNlbGVjdGVkQ2FuZGlkYXRlUGFpckNoYW5nZVRoZW5Db25uZWN0ZWQo
dCwgdHJhbnNwb3J0LAotICAgICAgdHJhbnNwb3J0TmFtZSkgewotICAgIGNvbnN0IHdhdGNoZXIg
PSBuZXcgRXZlbnRXYXRjaGVyKHQsIHRyYW5zcG9ydCwKLSAgICAgICAgWyAnc3RhdGVjaGFuZ2Un
LCAnc2VsZWN0ZWRjYW5kaWRhdGVwYWlyY2hhbmdlJyBdKTsKLSAgICBhd2FpdCB3YXRjaGVyLndh
aXRfZm9yKCdzZWxlY3RlZGNhbmRpZGF0ZXBhaXJjaGFuZ2UnKTsKLSAgICBjb25zdCBzZWxlY3Rl
ZENhbmRpZGF0ZVBhaXIgPSB0cmFuc3BvcnQuZ2V0U2VsZWN0ZWRDYW5kaWRhdGVQYWlyKCk7Ci0g
ICAgYXNzZXJ0X25vdF9lcXVhbHMoc2VsZWN0ZWRDYW5kaWRhdGVQYWlyLCBudWxsLAotICAgICAg
ICBgJHt0cmFuc3BvcnROYW1lfSBzZWxlY3RlZCBjYW5kaWRhdGUgcGFpciBzaG91bGQgbm90IGJl
IG51bGwgb25jZSBgICsKLSAgICAgICAgJ3RoZSBzZWxlY3RlZGNhbmRpZGF0ZXBhaXJjaGFuZ2Ug
ZXZlbnQgZmlyZXMnKTsKLSAgICBhc3NlcnRfdHJ1ZSgKLSAgICAgICAgdHJhbnNwb3J0LmdldExv
Y2FsQ2FuZGlkYXRlcygpLnNvbWUoCi0gICAgICAgICAgICAoeyBjYW5kaWRhdGUgfSkgPT4KLSAg
ICAgICAgICAgICAgICBjYW5kaWRhdGUgPT09IHNlbGVjdGVkQ2FuZGlkYXRlUGFpci5sb2NhbC5j
YW5kaWRhdGUpLAotICAgICAgICBgJHt0cmFuc3BvcnROYW1lfSBzZWxlY3RlZCBjYW5kaWRhdGUg
cGFpciBsb2NhbCBzaG91bGQgYmUgaW4gdGhlIGAgKwotICAgICAgICAnbGlzdCBvZiBsb2NhbCBj
YW5kaWRhdGVzJyk7Ci0gICAgYXNzZXJ0X3RydWUoCi0gICAgICAgIHRyYW5zcG9ydC5nZXRSZW1v
dGVDYW5kaWRhdGVzKCkuc29tZSgKLSAgICAgICAgICAgICh7IGNhbmRpZGF0ZSB9KSA9PgotICAg
ICAgICAgICAgICAgIGNhbmRpZGF0ZSA9PT0gc2VsZWN0ZWRDYW5kaWRhdGVQYWlyLnJlbW90ZS5j
YW5kaWRhdGUpLAotICAgICAgICBgJHt0cmFuc3BvcnROYW1lfSBzZWxlY3RlZCBjYW5kaWRhdGUg
cGFpciBsb2NhbCBzaG91bGQgYmUgaW4gdGhlIGAgKwotICAgICAgICAnbGlzdCBvZiByZW1vdGUg
Y2FuZGlkYXRlcycpOwotICAgIGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ3N0YXRlY2hhbmdlJyk7
Ci0gICAgYXNzZXJ0X2VxdWFscyh0cmFuc3BvcnQuc3RhdGUsICdjb25uZWN0ZWQnLAotICAgICAg
ICBgJHt0cmFuc3BvcnROYW1lfSBzdGF0ZSBzaG91bGQgYmUgJ2Nvbm5lY3RlZCdgKTsKLSAgfQot
ICBjb25zdCBbIGxvY2FsVHJhbnNwb3J0LCByZW1vdGVUcmFuc3BvcnQgXSA9Ci0gICAgICBtYWtl
R2F0aGVyQW5kU3RhcnRUd29JY2VUcmFuc3BvcnRzKHQpOwotICBhd2FpdCBQcm9taXNlLmFsbChb
Ci0gICAgd2FpdEZvclNlbGVjdGVkQ2FuZGlkYXRlUGFpckNoYW5nZVRoZW5Db25uZWN0ZWQodCwg
bG9jYWxUcmFuc3BvcnQsCi0gICAgICAgICdsb2NhbCB0cmFuc3BvcnQnKSwKLSAgICB3YWl0Rm9y
U2VsZWN0ZWRDYW5kaWRhdGVQYWlyQ2hhbmdlVGhlbkNvbm5lY3RlZCh0LCByZW1vdGVUcmFuc3Bv
cnQsCi0gICAgICAgICdyZW1vdGUgdHJhbnNwb3J0JyksCi0gIF0pOwotfSwgJ1NlbGVjdGVkIGNh
bmRpZGF0ZSBwYWlyIGNoYW5nZXMgb25jZSB0aGUgUlRDSWNlVHJhbnNwb3J0cyBjb25uZWN0Licp
OwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IFsgdHJhbnNwb3J0LCBdID0g
bWFrZUdhdGhlckFuZFN0YXJ0VHdvSWNlVHJhbnNwb3J0cyh0KTsKLSAgY29uc3Qgd2F0Y2hlciA9
IG5ldyBFdmVudFdhdGNoZXIodCwgdHJhbnNwb3J0LCAnc2VsZWN0ZWRjYW5kaWRhdGVwYWlyY2hh
bmdlJyk7Ci0gIGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ3NlbGVjdGVkY2FuZGlkYXRlcGFpcmNo
YW5nZScpOwotICB0cmFuc3BvcnQuc3RvcCgpOwotICBhc3NlcnRfZXF1YWxzKHRyYW5zcG9ydC5n
ZXRTZWxlY3RlZENhbmRpZGF0ZVBhaXIoKSwgbnVsbCk7Ci19LCAnZ2V0U2VsZWN0ZWRDYW5kaWRh
dGVQYWlyKCkgcmV0dXJucyBudWxsIG9uY2UgdGhlIFJUQ0ljZVRyYW5zcG9ydCBpcyAnICsKLSAg
ICAnc3RvcHBlZC4nKTsKLQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJ
Y2VDYW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5k
aWRhdGUtY29ubmVjdGlvblNldHVwLmh0bWwKaW5kZXggMTFmYzRlNGZhMGMyMjJkZjRlMTQ2OWE1
MjU4Mjk1YmYzNzAzNTIzYy4uZDJjZGU1OTM2NDA0NTFmNDMxN2NiMDljYmExNDQyYmIxYzAyODIy
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1
cC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAu
aHRtbApAQCAtMzUsMTYgKzM1LDggQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogCiAgIGxl
dCBjYW5kaWRhdGVzMXRvMiA9IFtdOwogICBsZXQgY2FuZGlkYXRlczJ0bzEgPSBbXTsKLSAgcGMx
Lm9uaWNlY2FuZGlkYXRlID0gZXZlbnQgPT4gewotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsK
LSAgICAgIGNhbmRpZGF0ZXMxdG8yLnB1c2goZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9Ci0gIH0K
LSAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZXZlbnQgPT4gewotICAgIGlmIChldmVudC5jYW5kaWRh
dGUpIHsKLSAgICAgIGNhbmRpZGF0ZXMydG8xLnB1c2goZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9
Ci0gIH0KKyAgcGMxLm9uaWNlY2FuZGlkYXRlID0gZSA9PiBjYW5kaWRhdGVzMXRvMi5wdXNoKGUu
Y2FuZGlkYXRlKTsKKyAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZSA9PiBjYW5kaWRhdGVzMnRvMS5w
dXNoKGUuY2FuZGlkYXRlKTsKICAgY29uc3QgcGMyR2F0aGVyZWRDYW5kaWRhdGVzID0gbmV3IFBy
b21pc2UoKHJlc29sdmUpID0+IHsKICAgICBwYzIuYWRkRXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVy
aW5nc3RhdGVjaGFuZ2UnLCAoKSA9PiB7CiAgICAgICBpZiAocGMyLmljZUdhdGhlcmluZ1N0YXRl
ID09ICdjb21wbGV0ZScpIHsKQEAgLTc0LDE2ICs2Niw4IEBAIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKIAogICBsZXQgY2FuZGlkYXRlczF0bzIgPSBbXTsKICAgbGV0IGNhbmRpZGF0ZXMydG8x
ID0gW107Ci0gIHBjMS5vbmljZWNhbmRpZGF0ZSA9IGV2ZW50ID0+IHsKLSAgICBpZiAoZXZlbnQu
Y2FuZGlkYXRlKSB7Ci0gICAgICBjYW5kaWRhdGVzMXRvMi5wdXNoKGV2ZW50LmNhbmRpZGF0ZSk7
Ci0gICAgfQotICB9Ci0gIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGV2ZW50ID0+IHsKLSAgICBpZiAo
ZXZlbnQuY2FuZGlkYXRlKSB7Ci0gICAgICBjYW5kaWRhdGVzMnRvMS5wdXNoKGV2ZW50LmNhbmRp
ZGF0ZSk7Ci0gICAgfQotICB9CisgIHBjMS5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gY2FuZGlkYXRl
czF0bzIucHVzaChlLmNhbmRpZGF0ZSk7CisgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gY2Fu
ZGlkYXRlczJ0bzEucHVzaChlLmNhbmRpZGF0ZSk7CiAgIGNvbnN0IHBjMUdhdGhlcmVkQ2FuZGlk
YXRlcyA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgcGMxLmFkZEV2ZW50TGlzdGVu
ZXIoJ2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdlJywgKCkgPT4gewogICAgICAgaWYgKHBjMS5pY2VH
YXRoZXJpbmdTdGF0ZSA9PSAnY29tcGxldGUnKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1h
ZGRJY2VDYW5kaWRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRl
LWV4cGVjdGVkLnR4dAppbmRleCAyMzBjYTdiOWM4NWNiMjg4NmNmMTk2MTk0ZDJhNmE5NjU2ZmYw
MmUxLi5mNDFhZTQyNTNkZjU4YmNkY2JkMTRhMmQxZTQxMWY5YmNlMWIzODg4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWFkZEljZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQKQEAgLTEsOSArMSwxMyBAQAogCiBGQUlM
IEFkZCBJQ0UgY2FuZGlkYXRlIGJlZm9yZSBzZXR0aW5nIHJlbW90ZSBkZXNjcmlwdGlvbiBzaG91
bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0YXRlRXJyb3IgcHJvbWlzZV9yZWplY3RzX2RvbTogZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIk9wZXJhdGlvbkVy
cm9yOiBFcnJvciBwcm9jZXNzaW5nIElDRSBjYW5kaWRhdGUiIHRoYXQgaXMgbm90IGEgRE9NRXhj
ZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMCwg
ZXhwZWN0ZWQgMTEKLUZBSUwgYWRkSWNlQ2FuZGlkYXRlKHsiY2FuZGlkYXRlIjoiIiwic2RwTWlk
IjpudWxsLCJzZHBNTGluZUluZGV4IjpudWxsfSkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQt
b2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnMgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5k
aWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09
dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgYWRkSWNlQ2FuZGlkYXRlKHVuZGVm
aW5lZCkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBib3RoIG0t
c2VjdGlvbnMgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBi
ZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKLUZBSUwgYWRkSWNlQ2FuZGlkYXRlKG51bGwpIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9
ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3Qg
Y2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFu
ZCBtPXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIGFkZEljZUNhbmRpZGF0ZSh7
fSkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2Vj
dGlvbnMgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3
ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK1BBU1MgYWRkSWNlQ2FuZGlkYXRlKHsiY2FuZGlkYXRlIjoiIiwic2RwTWlkIjpudWxsLCJz
ZHBNTGluZUluZGV4IjpudWxsfSkgd29ya3MKK0ZBSUwgYWRkSWNlQ2FuZGlkYXRlKHsiY2FuZGlk
YXRlIjoiIiwic2RwTWlkIjpudWxsLCJzZHBNTGluZUluZGV4IjpudWxsfSkgYWRkcyBhPWVuZC1v
Zi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9ucyBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRp
ZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12
aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBhZGRJY2VDYW5kaWRhdGUodW5kZWZp
bmVkKSB3b3JrcworRkFJTCBhZGRJY2VDYW5kaWRhdGUodW5kZWZpbmVkKSBhZGRzIGE9ZW5kLW9m
LWNhbmRpZGF0ZXMgdG8gYm90aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlk
YXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZp
ZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIGFkZEljZUNhbmRpZGF0ZShudWxsKSB3
b3JrcworRkFJTCBhZGRJY2VDYW5kaWRhdGUobnVsbCkgYWRkcyBhPWVuZC1vZi1jYW5kaWRhdGVz
IHRvIGJvdGggbS1zZWN0aW9ucyBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRv
IGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBhZGRJY2VDYW5kaWRhdGUoe30pIHdvcmtzCitGQUlMIGFk
ZEljZUNhbmRpZGF0ZSh7fSkgYWRkcyBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0
aW9ucyBhc3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdl
ZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQogRkFJTCBhZGRJY2VDYW5kaWRhdGUoe30pIGluIHN0YWJsZSBzaG91bGQgd29yaywgYW5kIGFk
ZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9ucyBhc3NlcnRfdHJ1ZTogRXhw
ZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRp
byBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBhZGRJY2VDYW5kaWRh
dGUoe3VzZXJuYW1lRnJhZ21lbnQ6IHVzZXJuYW1lRnJhZ21lbnQxLCBzZHBNaWQ6IHNkcE1pZDF9
KSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIHRoZSBmaXJzdCBt
LXNlY3Rpb24gYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBi
ZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKIEZBSUwgYWRkSWNlQ2FuZGlkYXRlKHt1c2VybmFtZUZyYWdtZW50OiB1c2VybmFtZUZy
YWdtZW50Miwgc2RwTUxpbmVJbmRleDogMX0pIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9m
LWNhbmRpZGF0ZXMgdG8gdGhlIGZpcnN0IG0tc2VjdGlvbiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKQEAgLTE3LDggKzIxLDkgQEAgUEFTUyBhZGRJY2VDYW5kaWRhdGUgd2l0
aCBmaXJzdCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXggYWRkIGNhbmRpZGF0ZSB0byBmaXJzdAog
UEFTUyBhZGRJY2VDYW5kaWRhdGUgd2l0aCBzZWNvbmQgc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4
IHNob3VsZCBhZGQgY2FuZGlkYXRlIHRvIHNlY29uZCBtZWRpYSBzdHJlYW0KIFBBU1MgQWRkIGNh
bmRpZGF0ZSBmb3IgZmlyc3QgbWVkaWEgc3RyZWFtIHdpdGggbnVsbCB1c2VybmFtZUZyYWdtZW50
IHNob3VsZCBhZGQgY2FuZGlkYXRlIHRvIGZpcnN0IG1lZGlhIHN0cmVhbQogUEFTUyBBZGRpbmcg
bXVsdGlwbGUgY2FuZGlkYXRlcyBzaG91bGQgYWRkIGNhbmRpZGF0ZXMgdG8gdGhlaXIgY29ycmVz
cG9uZGluZyBtZWRpYSBzdHJlYW0KLUZBSUwgQWRkIHdpdGggZW1wdHkgY2FuZGlkYXRlIHN0cmlu
ZyAoZW5kIG9mIGNhbmRpZGF0ZSkgc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X3RydWU6IEV4cGVjdCBj
YW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5k
IG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgQWRkIHdpdGggZW1wdHkgY2Fu
ZGlkYXRlIHN0cmluZyAoZW5kIG9mIGNhbmRpZGF0ZXMpIHNob3VsZCBzdWNjZWVkIGFzc2VydF90
cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5l
cyBtPWF1ZGlvIGFuZCBtPXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIEFkZCBj
YW5kaWRhdGUgd2l0aCBib3RoIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCBtYW51YWxseSBzZXQg
dG8gbnVsbCBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yCitQQVNTIGFkZEljZUNhbmRpZGF0
ZSB3aXRoIGEgY2FuZGlkYXRlIGFuZCBuZWl0aGVyIHNkcE1pZCBub3Igc2RwTUxpbmVJbmRleCBz
aG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yCiBQQVNTIEFkZCBjYW5kaWRhdGUgd2l0aCBvbmx5
IHZhbGlkIGNhbmRpZGF0ZSBzdHJpbmcgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcgogUEFT
UyBBZGQgY2FuZGlkYXRlIHdpdGggaW52YWxpZCBjYW5kaWRhdGUgc3RyaW5nIGFuZCBib3RoIHNk
cE1pZCBhbmQgc2RwTUxpbmVJbmRleCBudWxsIHNob3VsZCByZWplY3Qgd2l0aCBUeXBlRXJyb3IK
IFBBU1MgQWRkIGNhbmRpZGF0ZSB3aXRoIGludmFsaWQgc2RwTWlkIHNob3VsZCByZWplY3Qgd2l0
aCBPcGVyYXRpb25FcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbAppbmRleCA1ZmNiNmU4NjRh
OGEyMjNkNTA2MmIyMmI3YThmNWU4OWZiZjlkNGNiLi5kOGUyNGQ2MDhiYWVlNmM2MGU2ZDJiM2Fl
MjQ2OTc0ZmU2OTM2ZWMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbApAQCAtMTU4LDE4ICsx
NTgsMjggQEAgYT1ydGNwLXJzaXplCiAgICAgbnVsbCwKICAgICAvLyBNZW1iZXJzIGluIHRoZSBk
aWN0aW9uYXJ5IHRha2UgdGhlaXIgZGVmYXVsdCB2YWx1ZXMKICAgICB7fQotICBdLmZvckVhY2go
aW5pdCA9PiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgXS5mb3JFYWNoKGluaXQgPT4geworICAgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CiAKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKIAotICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0
aW9uKHNlc3Npb25EZXNjKTsKLSAgICBhd2FpdCBwYy5hZGRJY2VDYW5kaWRhdGUoaW5pdCk7Ci0g
ICAgYXNzZXJ0X2NhbmRpZGF0ZV9saW5lX2JldHdlZW4ocGMucmVtb3RlRGVzY3JpcHRpb24uc2Rw
LAotICAgICAgbWVkaWFMaW5lMSwgZW5kT2ZDYW5kaWRhdGVMaW5lLCBtZWRpYUxpbmUyKTsKLSAg
ICBhc3NlcnRfY2FuZGlkYXRlX2xpbmVfYWZ0ZXIocGMucmVtb3RlRGVzY3JpcHRpb24uc2RwLAot
ICAgICAgbWVkaWFMaW5lMiwgZW5kT2ZDYW5kaWRhdGVMaW5lKTsKLSAgfSwgYGFkZEljZUNhbmRp
ZGF0ZSgke0pTT04uc3RyaW5naWZ5KGluaXQpfSkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQt
b2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnNgKSk7CisgICAgICBhd2FpdCBwYy5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYyk7CisgICAgICBhd2FpdCBwYy5hZGRJY2VDYW5k
aWRhdGUoaW5pdCk7CisgICAgfSwgYGFkZEljZUNhbmRpZGF0ZSgke0pTT04uc3RyaW5naWZ5KGlu
aXQpfSkgd29ya3NgKTsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjLmNsb3NlKCkpOworCisgICAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihz
ZXNzaW9uRGVzYyk7CisgICAgICBhd2FpdCBwYy5hZGRJY2VDYW5kaWRhdGUoaW5pdCk7CisgICAg
ICBhc3NlcnRfY2FuZGlkYXRlX2xpbmVfYmV0d2VlbihwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAs
CisgICAgICAgIG1lZGlhTGluZTEsIGVuZE9mQ2FuZGlkYXRlTGluZSwgbWVkaWFMaW5lMik7Cisg
ICAgICBhc3NlcnRfY2FuZGlkYXRlX2xpbmVfYWZ0ZXIocGMucmVtb3RlRGVzY3JpcHRpb24uc2Rw
LAorICAgICAgICBtZWRpYUxpbmUyLCBlbmRPZkNhbmRpZGF0ZUxpbmUpOworICAgIH0sIGBhZGRJ
Y2VDYW5kaWRhdGUoJHtKU09OLnN0cmluZ2lmeShpbml0KX0pIGFkZHMgYT1lbmQtb2YtY2FuZGlk
YXRlcyB0byBib3RoIG0tc2VjdGlvbnNgKTsKKyAgfSk7CiAKICAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CkBAIC00MTgs
NyArNDI4LDcgQEAgYT1ydGNwLXJzaXplCiAgICAgICBhc3NlcnRfY2FuZGlkYXRlX2xpbmVfYmV0
d2VlbihwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAsCiAgICAgICAgIG1lZGlhTGluZTEsIGVuZE9m
Q2FuZGlkYXRlTGluZSwgbWVkaWFMaW5lMik7CiAgICAgfSk7Ci0gIH0sICdBZGQgd2l0aCBlbXB0
eSBjYW5kaWRhdGUgc3RyaW5nIChlbmQgb2YgY2FuZGlkYXRlKSBzaG91bGQgc3VjY2VlZCcpOwor
ICB9LCAnQWRkIHdpdGggZW1wdHkgY2FuZGlkYXRlIHN0cmluZyAoZW5kIG9mIGNhbmRpZGF0ZXMp
IHNob3VsZCBzdWNjZWVkJyk7CiAKICAgLyoKICAgICA0LjQuMi4gIGFkZEljZUNhbmRpZGF0ZQpA
QCAtNDQwLDYgKzQ1MCwxNSBAQCBhPXJ0Y3AtcnNpemUKICAgICAgICAgfSkpKTsKICAgfSwgJ0Fk
ZCBjYW5kaWRhdGUgd2l0aCBib3RoIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCBtYW51YWxseSBz
ZXQgdG8gbnVsbCBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yJyk7CiAKKyAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGF3YWl0IHBjLnNl
dFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjKTsKKyAgICBwcm9taXNlX3JlamVjdHNfanMo
dCwgVHlwZUVycm9yLAorICAgICAgcGMuYWRkSWNlQ2FuZGlkYXRlKHtjYW5kaWRhdGU6IGNhbmRp
ZGF0ZVN0cjF9KSk7CisgIH0sICdhZGRJY2VDYW5kaWRhdGUgd2l0aCBhIGNhbmRpZGF0ZSBhbmQg
bmVpdGhlciBzZHBNaWQgbm9yIHNkcE1MaW5lSW5kZXggc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVF
cnJvcicpOworCiAgIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOwogCkBAIC02MDksNSArNjI4LDQgQEAgYT1ydGNwLXJzaXplCiAgICAg
ICAgICAgdXNlcm5hbWVGcmFnbWVudDogdXNlcm5hbWVGcmFnbWVudDEKICAgICAgICAgfSkpKTsK
ICAgfSwgJ0FkZCBjYW5kaWRhdGUgd2l0aCBzZHBNaWQgYmVsb25naW5nIHRvIGRpZmZlcmVudCB1
c2VybmFtZUZyYWdtZW50IHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRpb25FcnJvcicpOwotCiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAyMjI3
ZDYzZDA3MmEwZTAzNDg2YzA0NzgyYjU5OTc5ZThkMzdjY2ZlLi40ZDU1Mjk2MDUwNDMyZDgxNjBl
ZWViODUzYTBkMjUwOGM2MmIyZjU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5o
dHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkVHJhY2suaHR0cHMtZXhwZWN0
ZWQudHh0CkBAIC04LDQgKzgsNSBAQCBQQVNTIGFkZFRyYWNrIHdpdGggZXhpc3Rpbmcgc2VuZGVy
IHdpdGggbnVsbCB0cmFjaywgc2FtZSBraW5kLCBhbmQgcmVjdm9ubHkgZGlyZQogUEFTUyBhZGRU
cmFjayB3aXRoIGV4aXN0aW5nIHNlbmRlciB0aGF0IGhhcyBub3QgYmVlbiB1c2VkIHRvIHNlbmQg
c2hvdWxkIHJldXNlIHRoZSBzZW5kZXIKIFBBU1MgYWRkVHJhY2sgd2l0aCBleGlzdGluZyBzZW5k
ZXIgdGhhdCBoYXMgYmVlbiB1c2VkIHRvIHNlbmQgc2hvdWxkIGNyZWF0ZSBuZXcgc2VuZGVyCiBQ
QVNTIGFkZFRyYWNrIHdpdGggZXhpc3Rpbmcgc2VuZGVyIHdpdGggbnVsbCB0cmFjaywgZGlmZmVy
ZW50IGtpbmQsIGFuZCByZWN2b25seSBkaXJlY3Rpb24gc2hvdWxkIGNyZWF0ZSBuZXcgc2VuZGVy
CitGQUlMIEFkZGluZyBtb3JlIHRyYWNrcyBkb2VzIG5vdCBnZW5lcmF0ZSBtb3JlIGNhbmRpZGF0
ZXMgaWYgYnVuZGxlZCBhc3NlcnRfdW5yZWFjaGVkOiBObyBjYWxsZXIgY2FuZGlkYXRlcyBzaG91
bGQgYmUgZ2VuZXJhdGVkLiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tYWRkVHJhY2suaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0
dHBzLmh0bWwKaW5kZXggNzU4NTk2MWYzMWNlOTQyZGI5NGE2ZTU5YmU3NmNmOGI4YjNkZTBkZi4u
NTI1MzIzY2FkMDdkN2RkOTM4ZGE3NDRhMDJkZjkzMzk3YjJlNWVlZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tYWRkVHJhY2suaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5o
dHRwcy5odG1sCkBAIC0yODYsNSArMjg2LDU1IEBACiAgICAgICA1LjEuIGFkZFRyYWNrCiAgICAg
ICAgIDEwLiBVcGRhdGUgdGhlIG5lZ290aWF0aW9uLW5lZWRlZCBmbGFnIGZvciBjb25uZWN0aW9u
LgogCi0gICAqLworICAqLworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25z
dCBjYWxsZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IGNhbGxlci5jbG9zZSgpKTsKKyAgICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlZS5jbG9zZSgpKTsKKworICAg
IGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOworICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4g
dHJhY2suc3RvcCgpKSk7CisgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsK
KyAgICBjb25zdCB0cmFuc2NlaXZlciA9IGNhbGxlci5hZGRUcmFuc2NlaXZlcih0cmFjayk7Cisg
ICAgLy8gTm90ZSB0aGF0IHRoaXMgdGVzdCBkb2Vzbid0IHByb2Nlc3MgY2FuaWRpZGF0ZXMuCisg
ICAgeworICAgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIoKTsKKyAg
ICAgIGF3YWl0IGNhbGxlci5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICAgIGF3YWl0
IGNhbGxlZS5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgICAgICBjb25zdCBhbnN3ZXIg
PSBhd2FpdCBjYWxsZWUuY3JlYXRlQW5zd2VyKCk7CisgICAgICBhd2FpdCBjYWxsZWUuc2V0TG9j
YWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICAgICAgYXdhaXQgY2FsbGVyLnNldFJlbW90ZURlc2Ny
aXB0aW9uKGFuc3dlcik7CisgICAgfQorICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3Vy
cmVudERpcmVjdGlvbiwgJ3NlbmRvbmx5Jyk7CisgICAgYXdhaXQgd2FpdEZvckljZUdhdGhlcmlu
Z1N0YXRlKGNhbGxlciwgWydjb21wbGV0ZSddKTsKKyAgICBhd2FpdCB3YWl0Rm9ySWNlR2F0aGVy
aW5nU3RhdGUoY2FsbGVlLCBbJ2NvbXBsZXRlJ10pOworCisgICAgY29uc3Qgc2Vjb25kX3N0cmVh
bSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gc2Vjb25kX3N0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNr
LnN0b3AoKSkpOworICAgIC8vIFRoZXJlIG1heSBiZSBjYWxsZWUgY2FuZGlkYXRlcyBpbiBmbGln
aHQuIEl0IHNlZW1zIHRoYXQgd2FpdGluZworICAgIC8vIGZvciBhIGNyZWF0ZU9mZmVyKCkgaXMg
ZW5vdWdoIHRpbWUgdG8gbGV0IHRoZW0gY29tcGxldGUgcHJvY2Vzc2luZy4KKyAgICAvLyBUT0RP
KGh0dHBzOi8vY3JidWcuY29tL3dlYnJ0Yy8xMzA5NSk6IEZpeCBidWcgYW5kIHJlbW92ZS4KKyAg
ICBhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIoKTsKKworICAgIGNvbnN0IFtzZWNvbmRfdHJhY2td
ID0gc2Vjb25kX3N0cmVhbS5nZXRUcmFja3MoKTsKKyAgICBjYWxsZXIub25pY2VjYW5kaWRhdGUg
PSB0LnVucmVhY2hlZF9mdW5jKAorICAgICAgJ05vIGNhbGxlciBjYW5kaWRhdGVzIHNob3VsZCBi
ZSBnZW5lcmF0ZWQuJyk7CisgICAgY2FsbGVlLm9uaWNlY2FuZGlkYXRlID0gdC51bnJlYWNoZWRf
ZnVuYygKKyAgICAgICdObyBjYWxsZWUgY2FuZGlkYXRlcyBzaG91bGQgYmUgZ2VuZXJhdGVkLicp
OworICAgIGNhbGxlci5hZGRUcmFjayhzZWNvbmRfdHJhY2spOworICAgIHsKKyAgICAgIGNvbnN0
IG9mZmVyID0gYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CisgICAgICBhd2FpdCBjYWxsZXIu
c2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgICAgICBhd2FpdCBjYWxsZWUuc2V0UmVtb3Rl
RGVzY3JpcHRpb24ob2ZmZXIpOworICAgICAgY29uc3QgYW5zd2VyID0gYXdhaXQgY2FsbGVlLmNy
ZWF0ZUFuc3dlcigpOworICAgICAgYXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oYW5z
d2VyKTsKKyAgICAgIGF3YWl0IGNhbGxlci5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwor
ICAgIH0KKyAgICAvLyBDaGVjayB0aGF0IHdlJ3JlIGJ1bmRsZWQuCisgICAgY29uc3QgW2ZpcnN0
X3RyYW5zY2VpdmVyLCBzZWNvbmRfdHJhbnNjZWl2ZXJdID0gY2FsbGVyLmdldFRyYW5zY2VpdmVy
cygpOworICAgIGFzc2VydF9lcXVhbHMoZmlyc3RfdHJhbnNjZWl2ZXIudHJhbnNwb3J0LCBzZWNv
bmRfdHJhbnNjZWl2ZXIudHJhbnNwb3J0KTsKKworICB9LCAnQWRkaW5nIG1vcmUgdHJhY2tzIGRv
ZXMgbm90IGdlbmVyYXRlIG1vcmUgY2FuZGlkYXRlcyBpZiBidW5kbGVkJyk7CiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhcHR1cmUtdmlkZW8uaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWNhcHR1cmUtdmlkZW8uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmMwMjIyZGMyMWQ3
NzlhNmFiOTgyZDk2M2NmM2ZkNWFjZmMxOWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tY2FwdHVyZS12aWRlby5odHRwcy5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0
aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKwor
Ly8gVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IDx2aWRlbz4gY2FwdHVyZSB3b3JrcyB2aWEgUGVlckNv
bm5lY3Rpb24uCisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc291cmNlVmlk
ZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICBzb3VyY2VWaWRlby5zcmMg
PSAiL21lZGlhL3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmci53ZWJtIjsKKyAgc291cmNl
VmlkZW8ubG9vcCA9IHRydWU7CisKKyAgY29uc3Qgb25DYW5QbGF5ID0gbmV3IFByb21pc2UociA9
PiBzb3VyY2VWaWRlby5vbmNhbnBsYXkgPSByKTsKKyAgYXdhaXQgb25DYW5QbGF5OworCisgIGNv
bnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIC8vIEF0dGFjaCB2aWRlbyB0
byBwYzEuCisgIGNvbnN0IHN0cmVhbSA9IHNvdXJjZVZpZGVvLmNhcHR1cmVTdHJlYW0oKTsKKyAg
Y29uc3QgdHJhY2tzID0gc3RyZWFtLmdldFRyYWNrcygpOworICBwYzEuYWRkVHJhY2sodHJhY2tz
WzBdKTsKKworICBjb25zdCBkZXN0VmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRl
bycpOworICBkZXN0VmlkZW8uYXV0b3BsYXkgPSB0cnVlOworCisgIC8vIFNldHVwIHBjMS0+cGMy
LgorICBjb25zdCBoYXZlVHJhY2tFdmVudDEgPSBuZXcgUHJvbWlzZShyID0+IHBjMi5vbnRyYWNr
ID0gcik7CisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGF3YWl0IHBjMS5z
ZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihw
YzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKCk7
CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7
CisKKyAgLy8gRGlzcGxheSBwYzIgcmVjZWl2ZWQgdHJhY2sgaW4gdmlkZW8gZWxlbWVudC4KKyAg
Y29uc3Qgb25Mb2FkZWRNZXRhZGF0YSA9IG5ldyBQcm9taXNlKHIgPT4gZGVzdFZpZGVvLm9ubG9h
ZGVkbWV0YWRhdGEgPSByKTsKKyAgZGVzdFZpZGVvLnNyY09iamVjdCA9IG5ldyBNZWRpYVN0cmVh
bShbKGF3YWl0IGhhdmVUcmFja0V2ZW50MSkudHJhY2tdKTsKKworICAvLyBTdGFydCBwbGF5YmFj
ayBhbmQgd2FpdCBmb3IgdmlkZW8gb24gdGhlIG90aGVyIHNpZGUuCisgIHNvdXJjZVZpZGVvLnBs
YXkoKTsKKyAgYXdhaXQgb25Mb2FkZWRNZXRhZGF0YTsKKworICAvLyBXYWl0IHVudGlsIHRoZSB2
aWRlbyBoYXMgbm9uLXplcm8gcmVzb2x1dGlvbiBhbmQgc29tZSBub24tYmxhY2sgcGl4ZWxzLgor
ICBhd2FpdCBuZXcgUHJvbWlzZShwID0+IHsKKyAgICBmdW5jdGlvbiBjaGVja0NvbG9yKCkgIHsK
KyAgICAgICAgaWYgKGRlc3RWaWRlby52aWRlb1dpZHRoID4gMCAmJiBnZXRWaWRlb1NpZ25hbChk
ZXN0VmlkZW8pID4gMC4wKQorICAgICAgICAgIHAoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
IHQuc3RlcF90aW1lb3V0KGNoZWNrQ29sb3IsIDApOworICAgIH0KKyAgICBjaGVja0NvbG9yKCk7
CisgIH0pOworCisgIC8vIFVzZXMgSGVscGVyLmpzIEdldFZpZGVvU2lnbmFsIHRvIHF1ZXJ5IHxk
ZXN0VmlkZW98IHBpeGVsIHZhbHVlIGF0IGEgY2VydGFpbiBwb3NpdGlvbi4KKyAgY29uc3QgcGl4
ZWxWYWx1ZSA9IGdldFZpZGVvU2lnbmFsKGRlc3RWaWRlbyk7CisKKyAgLy8gQW55dGhpbmcgbm9u
LWJsYWNrIG1lYW5zIHRoYXQgY2FwdHVyZSB3b3Jrcy4KKyAgYXNzZXJ0X25vdF9lcXVhbHMocGl4
ZWxWYWx1ZSwgMCk7CisgIH0sICJDYXB0dXJpbmcgYSB2aWRlbyBlbGVtZW50IGFuZCBzZW5kaW5n
IGl0IHZpYSBQZWVyQ29ubmVjdGlvbiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tY29ubmVjdGlvblN0YXRlLWV4cGVjdGVkLnR4dAppbmRleCBkYmQyMzBmODM0Njc3
MWI5Mjk2NjNhZDVmN2EyNTA4ODc4Y2FmYWVhLi4zYmY2NWNhMmY3ZTQ2MTcxN2NmN2Y2ZDhjY2Fh
ZjhkNzQ0ZDE0NDczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50eHQK
QEAgLTEsNiArMSw0IEBACiAKIFBBU1MgSW5pdGlhbCBjb25uZWN0aW9uU3RhdGUgc2hvdWxkIGJl
IG5ldwotUEFTUyBDbG9zaW5nIHRoZSBjb25uZWN0aW9uIHNob3VsZCBzZXQgY29ubmVjdGlvblN0
YXRlIHRvIGNsb3NlZAotUEFTUyBjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91
bGQgZXZlbnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlCi1GQUlMIGNvbm5l
Y3Rpb24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgdHJhbnNw
b3J0cyBpbiBjb25uZWN0ZWQgc3RhdGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ3NjdHBUcmFuc3BvcnQudHJhbnNwb3J0JykKK0ZBSUwgY29ubmVjdGlvbiB3aXRoIG9u
ZSBkYXRhIGNoYW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSBjb25uZWN0ZWQgY29ubmVjdGlv
biBzdGF0ZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBkb1NpZ25hbGluZ0hhbmRzaGFrZQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNv
bm5lY3Rpb25TdGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZTk0MTEyNzE4MTU1NzIwZjMxNjIyOTY2
YjI3NzYwYjY1M2MzOTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9u
U3RhdGUuaHRtbApAQCAtMCwwICsxLDIwOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5jb25uZWN0aW9u
U3RhdGU8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0
aGUgZm9sbG93aW5nIGVkaXRvciBkcmFmdDoKKyAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dl
YnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93ZWJydGMuaHRtCisKKyAgLy8gVGhlIGZvbGxvd2lu
ZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxw
ZXIuanM6CisgIC8vIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcworICAvLyBkb1NpZ25hbGluZ0hhbmRz
aGFrZQorCisgIC8qCisgICAgNC4zLjIuICBJbnRlcmZhY2UgRGVmaW5pdGlvbgorICAgICAgaW50
ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uIDogRXZlbnRUYXJnZXQgeworICAgICAgICAuLi4KKyAg
ICAgICAgcmVhZG9ubHkgIGF0dHJpYnV0ZSBSVENQZWVyQ29ubmVjdGlvblN0YXRlIGNvbm5lY3Rp
b25TdGF0ZTsKKyAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAg
ICAgIG9uY29ubmVjdGlvbnN0YXRlY2hhbmdlOworICAgICAgfTsKKworICAgIDQuNC4zLiAgUlRD
UGVlckNvbm5lY3Rpb25TdGF0ZSBFbnVtCisgICAgICBlbnVtIFJUQ1BlZXJDb25uZWN0aW9uU3Rh
dGUgeworICAgICAgICAibmV3IiwKKyAgICAgICAgImNvbm5lY3RpbmciLAorICAgICAgICAiY29u
bmVjdGVkIiwKKyAgICAgICAgImRpc2Nvbm5lY3RlZCIsCisgICAgICAgICJmYWlsZWQiLAorICAg
ICAgICAiY2xvc2VkIgorICAgICAgfTsKKworICAgIDUuNS4gIFJUQ0R0bHNUcmFuc3BvcnQgSW50
ZXJmYWNlCisgICAgICBpbnRlcmZhY2UgUlRDRHRsc1RyYW5zcG9ydCB7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBSVENJY2VUcmFuc3BvcnQgICAgICAgdHJhbnNwb3J0OworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgUlRDRHRsc1RyYW5zcG9ydFN0YXRlIHN0YXRlOworICAgICAgICAu
Li4KKyAgICAgIH07CisKKyAgICAgIGVudW0gUlRDRHRsc1RyYW5zcG9ydFN0YXRlIHsKKyAgICAg
ICAgIm5ldyIsCisgICAgICAgICJjb25uZWN0aW5nIiwKKyAgICAgICAgImNvbm5lY3RlZCIsCisg
ICAgICAgICJjbG9zZWQiLAorICAgICAgICAiZmFpbGVkIgorICAgICAgfTsKKworICAgIDUuNi4g
IFJUQ0ljZVRyYW5zcG9ydCBJbnRlcmZhY2UKKyAgICAgIGludGVyZmFjZSBSVENJY2VUcmFuc3Bv
cnQgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDSWNlVHJhbnNwb3J0U3RhdGUgc3Rh
dGU7CisgICAgICAgIC4uLgorICAgICAgfTsKKworICAgICAgZW51bSBSVENJY2VUcmFuc3BvcnRT
dGF0ZSB7CisgICAgICAgICJuZXciLAorICAgICAgICAiY2hlY2tpbmciLAorICAgICAgICAiY29u
bmVjdGVkIiwKKyAgICAgICAgImNvbXBsZXRlZCIsCisgICAgICAgICJmYWlsZWQiLAorICAgICAg
ICAiZGlzY29ubmVjdGVkIiwKKyAgICAgICAgImNsb3NlZCIKKyAgICAgIH07CisgICAqLworCisg
IC8qCisgICAgNC40LjMuICBSVENQZWVyQ29ubmVjdGlvblN0YXRlIEVudW0KKyAgICAgIG5ldwor
ICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9ydHMgb3IgUlRDRHRsc1RyYW5zcG9ydHMg
YXJlIGluIHRoZSBuZXcKKyAgICAgICAgc3RhdGUgYW5kIG5vbmUgb2YgdGhlIHRyYW5zcG9ydHMg
YXJlIGluIHRoZSBjb25uZWN0aW5nLCBjaGVja2luZywKKyAgICAgICAgZmFpbGVkIG9yIGRpc2Nv
bm5lY3RlZCBzdGF0ZSwgb3IgYWxsIHRyYW5zcG9ydHMgYXJlIGluIHRoZSBjbG9zZWQgc3RhdGUu
CisgICAqLworICB0ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYy5jb25uZWN0aW9uU3RhdGUsICduZXcnKTsKKyAg
fSwgJ0luaXRpYWwgY29ubmVjdGlvblN0YXRlIHNob3VsZCBiZSBuZXcnKTsKKworICAvKgorICAg
IDQuNC4zLiAgUlRDUGVlckNvbm5lY3Rpb25TdGF0ZSBFbnVtCisgICAgICBjb25uZWN0ZWQKKyAg
ICAgICAgQWxsIFJUQ0ljZVRyYW5zcG9ydHMgYW5kIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiB0
aGUgY29ubmVjdGVkLAorICAgICAgICBjb21wbGV0ZWQgb3IgY2xvc2VkIHN0YXRlIGFuZCBhdCBs
ZWFzdCBvZiB0aGVtIGlzIGluIHRoZSBjb25uZWN0ZWQKKyAgICAgICAgb3IgY29tcGxldGVkIHN0
YXRlLgorCisgICAgNS41LiAgUlRDRHRsc1RyYW5zcG9ydFN0YXRlCisgICAgICBjb25uZWN0ZWQK
KyAgICAgICAgRFRMUyBoYXMgY29tcGxldGVkIG5lZ290aWF0aW9uIG9mIGEgc2VjdXJlIGNvbm5l
Y3Rpb24uCisKKyAgICA1LjYuICBSVENJY2VUcmFuc3BvcnRTdGF0ZQorICAgICAgY29ubmVjdGVk
CisgICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZvdW5kIGEgdXNhYmxlIGNvbm5lY3Rp
b24sIGJ1dCBpcyBzdGlsbAorICAgICAgICBjaGVja2luZyBvdGhlciBjYW5kaWRhdGUgcGFpcnMg
dG8gc2VlIGlmIHRoZXJlIGlzIGEgYmV0dGVyIGNvbm5lY3Rpb24uCisgICAgICAgIEl0IG1heSBh
bHNvIHN0aWxsIGJlIGdhdGhlcmluZyBhbmQvb3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbCByZW1v
dGUKKyAgICAgICAgY2FuZGlkYXRlcy4gSWYgY29uc2VudCBjaGVja3MgW1JGQzc2NzVdIGZhaWwg
b24gdGhlIGNvbm5lY3Rpb24gaW4gdXNlLAorICAgICAgICBhbmQgdGhlcmUgYXJlIG5vIG90aGVy
IHN1Y2Nlc3NmdWwgY2FuZGlkYXRlIHBhaXJzIGF2YWlsYWJsZSwgdGhlbiB0aGUKKyAgICAgICAg
c3RhdGUgdHJhbnNpdGlvbnMgdG8gImNoZWNraW5nIiAoaWYgdGhlcmUgYXJlIGNhbmRpZGF0ZSBw
YWlycyByZW1haW5pbmcKKyAgICAgICAgdG8gYmUgY2hlY2tlZCkgb3IgImRpc2Nvbm5lY3RlZCIg
KGlmIHRoZXJlIGFyZSBubyBjYW5kaWRhdGUgcGFpcnMgdG8KKyAgICAgICAgY2hlY2ssIGJ1dCB0
aGUgcGVlciBpcyBzdGlsbCBnYXRoZXJpbmcgYW5kL29yIHdhaXRpbmcgZm9yIGFkZGl0aW9uYWwK
KyAgICAgICAgcmVtb3RlIGNhbmRpZGF0ZXMpLgorCisgICAgICBjb21wbGV0ZWQKKyAgICAgICAg
VGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgZmluaXNoZWQgZ2F0aGVyaW5nLCByZWNlaXZlZCBhbiBp
bmRpY2F0aW9uIHRoYXQKKyAgICAgICAgdGhlcmUgYXJlIG5vIG1vcmUgcmVtb3RlIGNhbmRpZGF0
ZXMsIGZpbmlzaGVkIGNoZWNraW5nIGFsbCBjYW5kaWRhdGUKKyAgICAgICAgcGFpcnMgYW5kIGZv
dW5kIGEgY29ubmVjdGlvbi4gSWYgY29uc2VudCBjaGVja3MgW1JGQzc2NzVdIHN1YnNlcXVlbnRs
eQorICAgICAgICBmYWlsIG9uIGFsbCBzdWNjZXNzZnVsIGNhbmRpZGF0ZSBwYWlycywgdGhlIHN0
YXRlIHRyYW5zaXRpb25zIHRvICJmYWlsZWQiLgorICAgKi8KKyAgYXN5bmNfdGVzdCh0ID0+IHsK
KyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAg
Y29uc3Qgb25Db25uZWN0aW9uU3RhdGVDaGFuZ2UgPSB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAg
ICBjb25zdCB7IGNvbm5lY3Rpb25TdGF0ZSB9ID0gcGMxOworICAgICAgaWYoY29ubmVjdGlvblN0
YXRlID09PSAnY29ubmVjdGVkJykgeworICAgICAgICBjb25zdCBzY3RwVHJhbnNwb3J0ID0gcGMx
LnNjdHA7CisKKyAgICAgICAgY29uc3QgZHRsc1RyYW5zcG9ydCA9IHNjdHBUcmFuc3BvcnQudHJh
bnNwb3J0OworICAgICAgICBhc3NlcnRfZXF1YWxzKGR0bHNUcmFuc3BvcnQuc3RhdGUsICdjb25u
ZWN0ZWQnLAorICAgICAgICAgICdFeHBlY3QgRFRMUyB0cmFuc3BvcnQgdG8gYmUgaW4gY29ubmVj
dGVkIHN0YXRlJyk7CisKKyAgICAgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gZHRsc1RyYW5zcG9y
dC50cmFuc3BvcnQKKyAgICAgICAgYXNzZXJ0X3RydWUoaWNlVHJhbnNwb3J0LnN0YXRlID09PSAg
J2Nvbm5lY3RlZCcgfHwKKyAgICAgICAgICBpY2VUcmFuc3BvcnQuc3RhdGUgPT09ICdjb21wbGV0
ZWQnLAorICAgICAgICAgICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBpbiBjb25uZWN0ZWQg
b3IgY29tcGxldGVkIHN0YXRlJyk7CisKKyAgICAgICAgdC5kb25lKCk7CisgICAgICB9CisgICAg
fSk7CisKKyAgICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKKworICAgIGFzc2VydF9l
cXVhbHMocGMxLm9uY29ubmVjdGlvbnN0YXRlY2hhbmdlLCBudWxsLAorICAgICAgJ0V4cGVjdCBj
b25uZWN0aW9uIHRvIGhhdmUgY29ubmVjdGlvbnN0YXRlY2hhbmdlIGV2ZW50Jyk7CisKKyAgICBw
YzEuYWRkRXZlbnRMaXN0ZW5lcignY29ubmVjdGlvbnN0YXRlY2hhbmdlJywgb25Db25uZWN0aW9u
U3RhdGVDaGFuZ2UpOworCisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAg
ICBkb1NpZ25hbGluZ0hhbmRzaGFrZShwYzEsIHBjMik7CisgIH0sICdjb25uZWN0aW9uIHdpdGgg
b25lIGRhdGEgY2hhbm5lbCBzaG91bGQgZXZlbnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0
aW9uIHN0YXRlJyk7CisKKyAgLyoKKyAgICBUT0RPCisgICAgNC40LjMuICBSVENQZWVyQ29ubmVj
dGlvblN0YXRlIEVudW0KKyAgICAgIGNvbm5lY3RpbmcKKyAgICAgICAgQW55IG9mIHRoZSBSVENJ
Y2VUcmFuc3BvcnRzIG9yIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiB0aGUKKyAgICAgICAgY29u
bmVjdGluZyBvciBjaGVja2luZyBzdGF0ZSBhbmQgbm9uZSBvZiB0aGVtIGlzIGluIHRoZSBmYWls
ZWQgc3RhdGUuCisKKyAgICAgIGRpc2Nvbm5lY3RlZAorICAgICAgICBBbnkgb2YgdGhlIFJUQ0lj
ZVRyYW5zcG9ydHMgb3IgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRoZSBkaXNjb25uZWN0ZWQK
KyAgICAgICAgc3RhdGUgYW5kIG5vbmUgb2YgdGhlbSBhcmUgaW4gdGhlIGZhaWxlZCBvciBjb25u
ZWN0aW5nIG9yIGNoZWNraW5nIHN0YXRlLgorCisgICAgICBmYWlsZWQKKyAgICAgICAgQW55IG9m
IHRoZSBSVENJY2VUcmFuc3BvcnRzIG9yIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiBhIGZhaWxl
ZCBzdGF0ZS4KKworICAgICAgY2xvc2VkCisgICAgICAgIFRoZSBSVENQZWVyQ29ubmVjdGlvbiBv
YmplY3QncyBbW2lzQ2xvc2VkXV0gc2xvdCBpcyB0cnVlLgorCisgICAgIDUuNS4gUlRDRHRsc1Ry
YW5zcG9ydFN0YXRlCisgICAgICBuZXcKKyAgICAgICAgRFRMUyBoYXMgbm90IHN0YXJ0ZWQgbmVn
b3RpYXRpbmcgeWV0LgorCisgICAgICBjb25uZWN0aW5nCisgICAgICAgIERUTFMgaXMgaW4gdGhl
IHByb2Nlc3Mgb2YgbmVnb3RpYXRpbmcgYSBzZWN1cmUgY29ubmVjdGlvbi4KKworICAgICAgY2xv
c2VkCisgICAgICAgIFRoZSB0cmFuc3BvcnQgaGFzIGJlZW4gY2xvc2VkLgorCisgICAgICBmYWls
ZWQKKyAgICAgICAgVGhlIHRyYW5zcG9ydCBoYXMgZmFpbGVkIGFzIHRoZSByZXN1bHQgb2YgYW4g
ZXJyb3IgKHN1Y2ggYXMgYSBmYWlsdXJlCisgICAgICAgIHRvIHZhbGlkYXRlIHRoZSByZW1vdGUg
ZmluZ2VycHJpbnQpLgorCisgICAgNS42LiAgUlRDSWNlVHJhbnNwb3J0U3RhdGUKKyAgICAgIG5l
dworICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGlzIGdhdGhlcmluZyBjYW5kaWRhdGVzIGFu
ZC9vciB3YWl0aW5nIGZvcgorICAgICAgICByZW1vdGUgY2FuZGlkYXRlcyB0byBiZSBzdXBwbGll
ZCwgYW5kIGhhcyBub3QgeWV0IHN0YXJ0ZWQgY2hlY2tpbmcuCisKKyAgICAgIGNoZWNraW5nCisg
ICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIHJlY2VpdmVkIGF0IGxlYXN0IG9uZSByZW1v
dGUgY2FuZGlkYXRlIGFuZAorICAgICAgICBpcyBjaGVja2luZyBjYW5kaWRhdGUgcGFpcnMgYW5k
IGhhcyBlaXRoZXIgbm90IHlldCBmb3VuZCBhIGNvbm5lY3Rpb24KKyAgICAgICAgb3IgY29uc2Vu
dCBjaGVja3MgW1JGQzc2NzVdIGhhdmUgZmFpbGVkIG9uIGFsbCBwcmV2aW91c2x5IHN1Y2Nlc3Nm
dWwKKyAgICAgICAgY2FuZGlkYXRlIHBhaXJzLiBJbiBhZGRpdGlvbiB0byBjaGVja2luZywgaXQg
bWF5IGFsc28gc3RpbGwgYmUgZ2F0aGVyaW5nLgorCisgICAgICBmYWlsZWQKKyAgICAgICAgVGhl
IFJUQ0ljZVRyYW5zcG9ydCBoYXMgZmluaXNoZWQgZ2F0aGVyaW5nLCByZWNlaXZlZCBhbiBpbmRp
Y2F0aW9uIHRoYXQKKyAgICAgICAgdGhlcmUgYXJlIG5vIG1vcmUgcmVtb3RlIGNhbmRpZGF0ZXMs
IGZpbmlzaGVkIGNoZWNraW5nIGFsbCBjYW5kaWRhdGUgcGFpcnMsCisgICAgICAgIGFuZCBhbGwg
cGFpcnMgaGF2ZSBlaXRoZXIgZmFpbGVkIGNvbm5lY3Rpdml0eSBjaGVja3Mgb3IgaGF2ZSBsb3N0
IGNvbnNlbnQuCisKKyAgICAgIGRpc2Nvbm5lY3RlZAorICAgICAgICBUaGUgSUNFIEFnZW50IGhh
cyBkZXRlcm1pbmVkIHRoYXQgY29ubmVjdGl2aXR5IGlzIGN1cnJlbnRseSBsb3N0IGZvciB0aGlz
CisgICAgICAgIFJUQ0ljZVRyYW5zcG9ydCAuIFRoaXMgaXMgbW9yZSBhZ2dyZXNzaXZlIHRoYW4g
ZmFpbGVkLCBhbmQgbWF5IHRyaWdnZXIKKyAgICAgICAgaW50ZXJtaXR0ZW50bHkgKGFuZCByZXNv
bHZlIGl0c2VsZiB3aXRob3V0IGFjdGlvbikgb24gYSBmbGFreSBuZXR3b3JrLgorICAgICAgICBU
aGUgd2F5IHRoaXMgc3RhdGUgaXMgZGV0ZXJtaW5lZCBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRl
bnQuCisKKyAgICAgICAgRXhhbXBsZXMgaW5jbHVkZToKKyAgICAgICAgICBMb3NpbmcgdGhlIG5l
dHdvcmsgaW50ZXJmYWNlIGZvciB0aGUgY29ubmVjdGlvbiBpbiB1c2UuCisgICAgICAgICAgUmVw
ZWF0ZWRseSBmYWlsaW5nIHRvIHJlY2VpdmUgYSByZXNwb25zZSB0byBTVFVOIHJlcXVlc3RzLgor
CisgICAgICAgIEFsdGVybmF0aXZlbHksIHRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZpbmlzaGVk
IGNoZWNraW5nIGFsbCBleGlzdGluZworICAgICAgICBjYW5kaWRhdGVzIHBhaXJzIGFuZCBmYWls
ZWQgdG8gZmluZCBhIGNvbm5lY3Rpb24gKG9yIGNvbnNlbnQgY2hlY2tzCisgICAgICAgIFtSRkM3
Njc1XSBvbmNlIHN1Y2Nlc3NmdWwsIGhhdmUgbm93IGZhaWxlZCksIGJ1dCBpdCBpcyBzdGlsbCBn
YXRoZXJpbmcKKyAgICAgICAgYW5kL29yIHdhaXRpbmcgZm9yIGFkZGl0aW9uYWwgcmVtb3RlIGNh
bmRpZGF0ZXMuCisKKyAgICAgIGNsb3NlZAorICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhh
cyBzaHV0IGRvd24gYW5kIGlzIG5vIGxvbmdlciByZXNwb25kaW5nIHRvIFNUVU4gcmVxdWVzdHMu
CisgICAqLworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1v
ZmZlclRvUmVjZWl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZl
clRvUmVjZWl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM2MTdiMWRmNmNhODRjYjMzYjVl
M2NhNjU0ZmRhNjg3MmZiYjZkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0
ZU9mZmVyLW9mZmVyVG9SZWNlaXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACisKK1BB
U1MgY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlQXVkaW8gc2V0IHRvIGZhbHNlIHNo
b3VsZCBub3QgY3JlYXRlIGEgdHJhbnNjZWl2ZXIKK0ZBSUwgY3JlYXRlT2ZmZXIoKSB3aXRoIG9m
ZmVyVG9SZWNlaXZlQXVkaW8gc2hvdWxkIGNyZWF0ZSBhICJyZWN2b25seSIgdHJhbnNjZWl2ZXIg
YXNzZXJ0X2VxdWFsczogRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyIGV4cGVjdGVk
IDEgYnV0IGdvdCAwCitGQUlMIG9mZmVyVG9SZWNlaXZlQXVkaW8gb3B0aW9uIHNob3VsZCBiZSBp
Z25vcmVkIGlmIGEgbm9uLXN0b3BwZWQgInJlY3Zvbmx5IiB0cmFuc2NlaXZlciBleGlzdHMgYXNz
ZXJ0X2VxdWFsczogRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyIGV4cGVjdGVkIDEg
YnV0IGdvdCAwCitQQVNTIG9mZmVyVG9SZWNlaXZlQXVkaW8gb3B0aW9uIHNob3VsZCBiZSBpZ25v
cmVkIGlmIGEgbm9uLXN0b3BwZWQgInNlbmRyZWN2IiB0cmFuc2NlaXZlciBleGlzdHMKK0ZBSUwg
b2ZmZXJUb1JlY2VpdmVBdWRpbyBzZXQgdG8gZmFsc2Ugd2l0aCBhIHRyYWNrIHNob3VsZCBjcmVh
dGUgYSAic2VuZG9ubHkiIHRyYW5zY2VpdmVyIGFzc2VydF9lcXVhbHM6IEV4cGVjdCB0cmFuc2Nl
aXZlciB0byBoYXZlICJzZW5kb25seSIgZGlyZWN0aW9uIGV4cGVjdGVkICJzZW5kb25seSIgYnV0
IGdvdCAic2VuZHJlY3YiCitGQUlMIG9mZmVyVG9SZWNlaXZlQXVkaW8gc2V0IHRvIGZhbHNlIHdp
dGggYSAicmVjdm9ubHkiIHRyYW5zY2VpdmVyIHNob3VsZCBjaGFuZ2UgdGhlIGRpcmVjdGlvbiB0
byAiaW5hY3RpdmUiIGFzc2VydF9lcXVhbHM6IEV4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJp
bmFjdGl2ZSIgZGlyZWN0aW9uIGV4cGVjdGVkICJpbmFjdGl2ZSIgYnV0IGdvdCAicmVjdm9ubHki
CitGQUlMIHN1YnNlcXVlbnQgb2ZmZXJUb1JlY2VpdmVBdWRpbyBzZXQgdG8gZmFsc2Ugd2l0aCBh
IHRyYWNrIHNob3VsZCBjaGFuZ2UgdGhlIGRpcmVjdGlvbiB0byAic2VuZG9ubHkiIGFzc2VydF9l
cXVhbHM6IEV4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJzZW5kb25seSIgZGlyZWN0aW9uIGV4
cGVjdGVkICJzZW5kb25seSIgYnV0IGdvdCAic2VuZHJlY3YiCitQQVNTIGNyZWF0ZU9mZmVyKCkg
d2l0aCBvZmZlclRvUmVjZWl2ZVZpZGVvIHNldCB0byBmYWxzZSBzaG91bGQgbm90IGNyZWF0ZSBh
IHRyYW5zY2VpdmVyCitGQUlMIGNyZWF0ZU9mZmVyKCkgd2l0aCBvZmZlclRvUmVjZWl2ZVZpZGVv
IHNob3VsZCBjcmVhdGUgYSAicmVjdm9ubHkiIHRyYW5zY2VpdmVyIGFzc2VydF9lcXVhbHM6IEV4
cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlciBleHBlY3RlZCAxIGJ1dCBnb3QgMAorRkFJ
TCBvZmZlclRvUmVjZWl2ZVZpZGVvIG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBhIG5vbi1z
dG9wcGVkICJyZWN2b25seSIgdHJhbnNjZWl2ZXIgZXhpc3RzIGFzc2VydF9lcXVhbHM6IEV4cGVj
dCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlciBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBv
ZmZlclRvUmVjZWl2ZVZpZGVvIG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBhIG5vbi1zdG9w
cGVkICJzZW5kcmVjdiIgdHJhbnNjZWl2ZXIgZXhpc3RzCitGQUlMIG9mZmVyVG9SZWNlaXZlVmlk
ZW8gc2V0IHRvIGZhbHNlIHdpdGggYSB0cmFjayBzaG91bGQgY3JlYXRlIGEgInNlbmRvbmx5IiB0
cmFuc2NlaXZlciBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAic2Vu
ZG9ubHkiIGRpcmVjdGlvbiBleHBlY3RlZCAic2VuZG9ubHkiIGJ1dCBnb3QgInNlbmRyZWN2Igor
RkFJTCBvZmZlclRvUmVjZWl2ZVZpZGVvIHNldCB0byBmYWxzZSB3aXRoIGEgInJlY3Zvbmx5IiB0
cmFuc2NlaXZlciBzaG91bGQgY2hhbmdlIHRoZSBkaXJlY3Rpb24gdG8gImluYWN0aXZlIiBhc3Nl
cnRfZXF1YWxzOiBFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAiaW5hY3RpdmUiIGRpcmVjdGlv
biBleHBlY3RlZCAiaW5hY3RpdmUiIGJ1dCBnb3QgInJlY3Zvbmx5IgorRkFJTCBzdWJzZXF1ZW50
IG9mZmVyVG9SZWNlaXZlVmlkZW8gc2V0IHRvIGZhbHNlIHdpdGggYSB0cmFjayBzaG91bGQgY2hh
bmdlIHRoZSBkaXJlY3Rpb24gdG8gInNlbmRvbmx5IiBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgdHJh
bnNjZWl2ZXIgdG8gaGF2ZSAic2VuZG9ubHkiIGRpcmVjdGlvbiBleHBlY3RlZCAic2VuZG9ubHki
IGJ1dCBnb3QgInNlbmRyZWN2IgorRkFJTCBvZmZlclRvUmVjZWl2ZUF1ZGlvIGFuZCBWaWRlbyBz
aG91bGQgY3JlYXRlIHR3byAicmVjdm9ubHkiIHRyYW5zY2VpdmVycyBhc3NlcnRfZXF1YWxzOiBF
eHBlY3QgcGMgdG8gaGF2ZSB0d28gdHJhbnNjZWl2ZXJzIGV4cGVjdGVkIDIgYnV0IGdvdCAwCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLW9mZmVyVG9SZWNlaXZlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRkMTgyN2ExYzhkNjBhYmU2N2NhZDcyYTllZjMyODAwMDNjNzkyYzAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS5odG1sCkBAIC0wLDAg
KzEsMTg1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+
VGVzdCBsZWdhY3kgb2ZmZXJUb1JlY2VpdmVBdWRpby9WaWRlbyBvcHRpb25zPC90aXRsZT4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy8jbGVn
YWN5LWNvbmZpZ3VyYXRpb24tZXh0ZW5zaW9ucyI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24t
aGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICAvLyBS
dW4gc29tZSB0ZXN0cyBmb3IgYm90aCBhdWRpbyBhbmQgdmlkZW8ga2luZHMKKyAgWydhdWRpbycs
ICd2aWRlbyddLmZvckVhY2goKGtpbmQpID0+IHsKKyAgICBjb25zdCBjYXBzS2luZCA9IGtpbmRb
MF0udG9VcHBlckNhc2UoKSArIGtpbmQuc2xpY2UoMSk7CisKKyAgICBjb25zdCBvZmZlclRvUmVj
ZWl2ZVRydWUgPSB7fTsKKyAgICBvZmZlclRvUmVjZWl2ZVRydWVbYG9mZmVyVG9SZWNlaXZlJHtj
YXBzS2luZH1gXSA9IHRydWU7CisKKyAgICBjb25zdCBvZmZlclRvUmVjZWl2ZUZhbHNlID0ge307
CisgICAgb2ZmZXJUb1JlY2VpdmVGYWxzZVtgb2ZmZXJUb1JlY2VpdmUke2NhcHNLaW5kfWBdID0g
ZmFsc2U7CisKKyAgICAvLyBTdGFydCB0ZXN0aW5nCisgICAgcHJvbWlzZV90ZXN0KHQgPT4gewor
ICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgICAgICBjb25zdCBkdW1teSA9IHBjLmNyZWF0ZURh
dGFDaGFubmVsKCdmb28nKTsgLy8gSnVzdCB0byBoYXZlIHNvbWV0aGluZyB0byBvZmZlcgorCisg
ICAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2VpdmVGYWxzZSkKKyAgICAgIC50
aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5s
ZW5ndGgsIDAsCisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBoYXZlIG5vIHRyYW5zY2VpdmVycycp
OworICAgICAgfSk7CisgICAgfSwgYGNyZWF0ZU9mZmVyKCkgd2l0aCBvZmZlclRvUmVjZWl2ZSR7
Y2Fwc0tpbmR9IHNldCB0byBmYWxzZSBzaG91bGQgbm90IGNyZWF0ZSBhIHRyYW5zY2VpdmVyYCk7
CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworCisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwor
CisgICAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2VpdmVUcnVlKQorICAgICAg
LnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygp
Lmxlbmd0aCwgMSwKKyAgICAgICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVy
Jyk7CisKKyAgICAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVsw
XTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdyZWN2b25s
eScsCisgICAgICAgICAgJ0V4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJyZWN2b25seSIgZGly
ZWN0aW9uJyk7CisgICAgICB9KTsKKyAgICB9LCBgY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9S
ZWNlaXZlJHtjYXBzS2luZH0gc2hvdWxkIGNyZWF0ZSBhICJyZWN2b25seSIgdHJhbnNjZWl2ZXJg
KTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
CisKKyAgICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcihvZmZlclRvUmVjZWl2ZVRydWUpCisgICAg
ICAudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJz
KCkubGVuZ3RoLCAxLAorICAgICAgICAgICdFeHBlY3QgcGMgdG8gaGF2ZSBvbmUgdHJhbnNjZWl2
ZXInKTsKKworICAgICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmdldFRyYW5zY2VpdmVycygp
WzBdOworICAgICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3JlY3Zv
bmx5JywKKyAgICAgICAgICAnRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgInJlY3Zvbmx5IiBk
aXJlY3Rpb24nKTsKKyAgICAgIH0pCisgICAgICAudGhlbigoKSA9PiBwYy5jcmVhdGVPZmZlcihv
ZmZlclRvUmVjZWl2ZVRydWUpKQorICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSwKKyAgICAgICAgICAnRXhwZWN0
IHBjIHRvIHN0aWxsIGhhdmUgb25seSBvbmUgdHJhbnNjZWl2ZXInKTsKKyAgICAgIH0pCisgICAg
ICA7CisgICAgfSwgYG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH0gb3B0aW9uIHNob3VsZCBiZSBp
Z25vcmVkIGlmIGEgbm9uLXN0b3BwZWQgInJlY3Zvbmx5IiB0cmFuc2NlaXZlciBleGlzdHNgKTsK
KworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisK
KyAgICAgIHJldHVybiBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoa2luZCkKKyAgICAgIC50aGVuKChb
dHJhY2ssIHN0cmVhbV0pID0+IHsKKyAgICAgICAgcGMuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7
CisgICAgICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcigpOworICAgICAgfSkKKyAgICAgIC50aGVu
KCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5n
dGgsIDEsCisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlcicpOwor
CisgICAgICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF07Cisg
ICAgICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZHJlY3YnLAor
ICAgICAgICAgICdFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAic2VuZHJlY3YiIGRpcmVjdGlv
bicpOworICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IHBjLmNyZWF0ZU9mZmVyKG9mZmVyVG9S
ZWNlaXZlVHJ1ZSkpCisgICAgICAudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
cGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxLAorICAgICAgICAgICdFeHBlY3QgcGMgdG8g
c3RpbGwgaGF2ZSBvbmx5IG9uZSB0cmFuc2NlaXZlcicpOworICAgICAgfSkKKyAgICAgIDsKKyAg
ICB9LCBgb2ZmZXJUb1JlY2VpdmUke2NhcHNLaW5kfSBvcHRpb24gc2hvdWxkIGJlIGlnbm9yZWQg
aWYgYSBub24tc3RvcHBlZCAic2VuZHJlY3YiIHRyYW5zY2VpdmVyIGV4aXN0c2ApOworCisgICAg
cHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKworICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgICAg
cmV0dXJuIGdldFRyYWNrRnJvbVVzZXJNZWRpYShraW5kKQorICAgICAgLnRoZW4oKFt0cmFjaywg
c3RyZWFtXSkgPT4geworICAgICAgICBwYy5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKKyAgICAg
ICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKG9mZmVyVG9SZWNlaXZlRmFsc2UpOworICAgICAgfSkK
KyAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2Nl
aXZlcnMoKS5sZW5ndGgsIDEsCisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFu
c2NlaXZlcicpOworCisgICAgICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuZ2V0VHJhbnNjZWl2
ZXJzKClbMF07CisgICAgICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAn
c2VuZG9ubHknLAorICAgICAgICAgICdFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAic2VuZG9u
bHkiIGRpcmVjdGlvbicpOworICAgICAgfSkKKyAgICAgIDsKKyAgICB9LCBgb2ZmZXJUb1JlY2Vp
dmUke2NhcHNLaW5kfSBzZXQgdG8gZmFsc2Ugd2l0aCBhIHRyYWNrIHNob3VsZCBjcmVhdGUgYSAi
c2VuZG9ubHkiIHRyYW5zY2VpdmVyYCk7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgICBwYy5hZGRUcmFuc2NlaXZlcihraW5kLCB7
ZGlyZWN0aW9uOiAncmVjdm9ubHknfSk7CisKKyAgICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcihv
ZmZlclRvUmVjZWl2ZUZhbHNlKQorICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSwKKyAgICAgICAgICAnRXhwZWN0
IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyJyk7CisKKyAgICAgICAgY29uc3QgdHJhbnNjZWl2
ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0cmFu
c2NlaXZlci5kaXJlY3Rpb24sICdpbmFjdGl2ZScsCisgICAgICAgICAgJ0V4cGVjdCB0cmFuc2Nl
aXZlciB0byBoYXZlICJpbmFjdGl2ZSIgZGlyZWN0aW9uJyk7CisgICAgICB9KQorICAgICAgOwor
ICAgIH0sIGBvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9IHNldCB0byBmYWxzZSB3aXRoIGEgInJl
Y3Zvbmx5IiB0cmFuc2NlaXZlciBzaG91bGQgY2hhbmdlIHRoZSBkaXJlY3Rpb24gdG8gImluYWN0
aXZlImApOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2Uo
KSk7CisgICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICAgIHJldHVybiBnZXRUcmFj
a0Zyb21Vc2VyTWVkaWEoa2luZCkKKyAgICAgIC50aGVuKChbdHJhY2ssIHN0cmVhbV0pID0+IHsK
KyAgICAgICAgcGMuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7CisgICAgICAgIHJldHVybiBwYy5j
cmVhdGVPZmZlcigpOworICAgICAgfSkKKyAgICAgIC50aGVuKChvZmZlcikgPT4gcGMuc2V0TG9j
YWxEZXNjcmlwdGlvbihvZmZlcikpCisgICAgICAudGhlbigoKSA9PiBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ocGMubG9jYWxEZXNjcmlwdGlvbikpCisgICAgICAudGhlbigoKSA9PiBwYzIuY3Jl
YXRlQW5zd2VyKCkpCisgICAgICAudGhlbigoYW5zd2VyKSA9PiBwYzIuc2V0TG9jYWxEZXNjcmlw
dGlvbihhbnN3ZXIpKQorICAgICAgLnRoZW4oKCkgPT4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24o
cGMyLmxvY2FsRGVzY3JpcHRpb24pKQorICAgICAgLnRoZW4oKCkgPT4gcGMuY3JlYXRlT2ZmZXIo
b2ZmZXJUb1JlY2VpdmVGYWxzZSkpCisgICAgICAudGhlbigob2ZmZXIpID0+IHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEsCisgICAgICAgICAg
J0V4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlcicpOworCisgICAgICAgIGNvbnN0IHRy
YW5zY2VpdmVyID0gcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF07CisgICAgICAgIGFzc2VydF9lcXVh
bHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZG9ubHknLAorICAgICAgICAgICdFeHBlY3Qg
dHJhbnNjZWl2ZXIgdG8gaGF2ZSAic2VuZG9ubHkiIGRpcmVjdGlvbicpOworICAgICAgfSkKKyAg
ICAgIDsKKyAgICB9LCBgc3Vic2VxdWVudCBvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9IHNldCB0
byBmYWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNoYW5nZSB0aGUgZGlyZWN0aW9uIHRvICJzZW5k
b25seSJgKTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNs
b3NlKCkpOworCisgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKHsgb2ZmZXJUb1JlY2VpdmVBdWRp
bzogdHJ1ZSwgb2ZmZXJUb1JlY2VpdmVWaWRlbzogdHJ1ZSB9KQorICAgIC50aGVuKCgpID0+IHsK
KyAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAyLAorICAg
ICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgdHdvIHRyYW5zY2VpdmVycycpOworCisgICAgICBhc3Nl
cnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpWzBdLmRpcmVjdGlvbiwgJ3JlY3Zvbmx5JywK
KyAgICAgICAgJ0V4cGVjdCBmaXJzdCB0cmFuc2NlaXZlciB0byBoYXZlICJyZWN2b25seSIgZGly
ZWN0aW9uJyk7CisgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpWzFdLmRp
cmVjdGlvbiwgJ3JlY3Zvbmx5JywKKyAgICAgICAgJ0V4cGVjdCBzZWNvbmQgdHJhbnNjZWl2ZXIg
dG8gaGF2ZSAicmVjdm9ubHkiIGRpcmVjdGlvbicpOworICAgIH0pOworICB9LCAnb2ZmZXJUb1Jl
Y2VpdmVBdWRpbyBhbmQgVmlkZW8gc2hvdWxkIGNyZWF0ZSB0d28gInJlY3Zvbmx5IiB0cmFuc2Nl
aXZlcnMnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0
SWNlU2VydmVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVy
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjg2ZWUyY2U2YmY2ODNmZmRkNDI5M2I3ZjI4ZTc4
YjhiMTM1Mjg0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VT
ZXJ2ZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBSVENQZWVyQ29ubmVj
dGlvbi5nZXREZWZhdWx0SWNlU2VydmVycygpIHNob3VsZCByZXR1cm4gYXJyYXkgb2YgUlRDSWNl
U2VydmVyIFJUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ1JUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzKCknLCAn
UlRDUGVlckNvbm5lY3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnMnIGlzIHVuZGVmaW5lZCkKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZlcnMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZkYmRiOGRlYzQ2
ZGU1NDljMDc3OTQ5ZWQ5NDZhN2EzMTBlOWI3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLmh0bWwKQEAgLTAsMCArMSw5OCBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uLmdl
dERlZmF1bHRJY2VTZXJ2ZXJzPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICAvLyBU
ZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgorICAvLyBodHRwczov
L3czYy5naXRodWIuaW8vd2VicnRjLXBjL2FyY2hpdmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG1sCisK
KyAgLyoKKyAgICAgIFtDb25zdHJ1Y3RvcihvcHRpb25hbCBSVENDb25maWd1cmF0aW9uIGNvbmZp
Z3VyYXRpb24pXQorICAgICAgaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uIDogRXZlbnRUYXJn
ZXQgeworICAgICAgICBzdGF0aWMgc2VxdWVuY2U8UlRDSWNlU2VydmVyPiAgICAgIGdldERlZmF1
bHRJY2VTZXJ2ZXJzKCk7CisgICAgICAgIC4uLgorICAgICAgfTsKKworICAgICAgZGljdGlvbmFy
eSBSVENJY2VTZXJ2ZXIgeworICAgICAgICByZXF1aXJlZCAoRE9NU3RyaW5nIG9yIHNlcXVlbmNl
PERPTVN0cmluZz4pIHVybHM7CisgICAgICAgICAgICAgICAgIERPTVN0cmluZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgdXNlcm5hbWU7CisgICAgICAgICAgICAgICAgIChET01TdHJpbmcgb3Ig
UlRDT0F1dGhDcmVkZW50aWFsKSAgY3JlZGVudGlhbDsKKyAgICAgICAgICAgICAgICAgUlRDSWNl
Q3JlZGVudGlhbFR5cGUgICAgICAgICAgICAgICBjcmVkZW50aWFsVHlwZSA9ICJwYXNzd29yZCI7
CisgICAgICB9OworCisgICAgICBkaWN0aW9uYXJ5IFJUQ09BdXRoQ3JlZGVudGlhbCB7CisgICAg
ICAgIHJlcXVpcmVkIERPTVN0cmluZyBtYWNLZXk7CisgICAgICAgIHJlcXVpcmVkIERPTVN0cmlu
ZyBhY2Nlc3NUb2tlbjsKKyAgICAgIH07CisKKyAgICAgIGVudW0gUlRDSWNlQ3JlZGVudGlhbFR5
cGUgeworICAgICAgICAicGFzc3dvcmQiLAorICAgICAgICAib2F1dGgiCisgICAgICB9OworICAg
Ki8KKworICB0ZXN0KCgpID0+IHsKKyAgICBjb25zdCBpY2VTZXJ2ZXJzID0gUlRDUGVlckNvbm5l
Y3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnMoKTsKKworICAgIGFzc2VydF90cnVlKEFycmF5Lmlz
QXJyYXkoaWNlU2VydmVycyksCisgICAgICAnRXhwZWN0IGljZVNlcnZlcnMgdG8gYmUgYW4gYXJy
YXknKTsKKworICAgIC8vIGRpY3Rpb25hcnkgSURMIGNhbm5vdCBiZSB0ZXN0ZWQgYXV0b21hdGlj
YWxseSB1c2luZyBpZGxoYXJuZXNzCisgICAgZm9yKGNvbnN0IHNlcnZlciBvZiBpY2VTZXJ2ZXJz
KSB7CisgICAgICBjb25zdCB7IHVybHMsIHVzZXJuYW1lLCBjcmVkZW50aWFsLCBjcmVkZW50aWFs
VHlwZSB9ID0gc2VydmVyOworCisgICAgICBpZihBcnJheS5pc0FycmF5KHVybHMpKSB7CisgICAg
ICAgIGZvcihjb25zdCB1cmwgb2YgdXJscykgeworICAgICAgICAgIGFzc2VydF9lcXVhbHModHlw
ZW9mIHVybCwgJ3N0cmluZycsCisgICAgICAgICAgICAnRXhwZWN0IGVsZW1lbnRzIGluIHVybHMg
YXJyYXkgdG8gYmUgc3RyaW5nJyk7CisgICAgICAgIH0KKyAgICAgIH0gZWxzZSB7CisgICAgICAg
IGFzc2VydF9lcXVhbHModHlwZW9mIHVybHMsICdzdHJpbmcnLAorICAgICAgICAgICdFeHBlY3Qg
dXJscyB0byBiZSBlaXRoZXIgc3RyaW5nIG9yIGFycmF5Jyk7CisgICAgICB9CisKKyAgICAgIGlm
KHVzZXJuYW1lICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Yg
dXNlcm5hbWUsICdzdHJpbmcnLAorICAgICAgICAgICdFeHBlY3QgdXNlcm5hbWUgdG8gYmUgZWl0
aGVyIHVuZGVmaW5lZCBvciBzdHJpbmcnKTsKKyAgICAgIH0KKworICAgICAgYXNzZXJ0X3RydWUo
Y3JlZGVudGlhbFR5cGUgPT09ICdwYXNzd29yZCcgfHwgY3JlZGVudGlhbFR5cGUgPT09ICdvYXV0
aCcsCisgICAgICAgICdFeHBlY3QgY3JlZGVudGlhbFR5cGUgdG8gYmUgZWl0aGVyIHBhc3N3b3Jk
IG9yIG9hdXRoJykKKworICAgICAgaWYoY3JlZGVudGlhbCkgeworICAgICAgICBpZih0eXBlb2Yo
Y3JlZGVudGlhbCkgPT09ICdvYmplY3QnKSB7CisgICAgICAgICAgY29uc3QgeyBtYWNLZXksIGFj
Y2Vzc1Rva2VuIH0gPSBjcmVkZW50aWFsOworICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9m
IG1hY0tleSwgJ3N0cmluZycsCisgICAgICAgICAgICAnRXhwZWN0IG1hY0tleSB0byBiZSBzdHJp
bmcnKTsKKworICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGFjY2Vzc1Rva2VuLCAnc3Ry
aW5nJywKKyAgICAgICAgICAgICdFeHBlY3QgYWNjZXNzVG9rZW4gdG8gYmUgc3RyaW5nJyk7CisK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBjcmVkZW50
aWFsLCAnc3RyaW5nJywKKyAgICAgICAgICAgICdFeHBlY3QgY3JlZGVudGlhbCB0byBiZSBlaXRo
ZXIgdW5kZWZpbmVkLCBzdHJpbmcsIG9yIFJUQ09hdXRoQ3JlZGVudGlhbCBkaWN0aW9uYXJ5Jyk7
CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisKKyAgICAvLyBFeHBlY3QgZGVmYXVsdCBpY2Ug
c2VydmVycyB0byBiZSBhY2NlcHRlZCBhcyB2YWxpZCBjb25maWd1cmF0aW9uCisgICAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzIH0pOworCisgICAgLy8gT25s
eSBtYWtlIHN1cmUgdGhlcmUgYXJlIHNhbWUgbnVtYmVyIG9mIGljZSBzZXJ2ZXJzIGNvbmZpZ3Vy
ZWQKKyAgICAvLyBhbmQgbm90IGRvIGFueSBkZWVwIGVxdWFsaXR5IGNoZWNraW5nCisgICAgYXNz
ZXJ0X2VxdWFscyhwYy5nZXRDb25maWd1cmF0aW9uKCkuaWNlU2VydmVycy5sZW5ndGgsIGljZVNl
cnZlcnMubGVuZ3RoKTsKKworICB9LCAnUlRDUGVlckNvbm5lY3Rpb24uZ2V0RGVmYXVsdEljZVNl
cnZlcnMoKSBzaG91bGQgcmV0dXJuIGFycmF5IG9mIFJUQ0ljZVNlcnZlcicpOworCisgIC8qCisg
ICAgQ292ZXJhZ2UgUmVwb3J0CisgICAgICBTaW5jZSB0aGVyZSBpcyBubyBzdGVwcyBpbnZvbHZl
ZCBhbmQgd2UgYXJlIG9ubHkgY2hlY2tpbmcgYmFzaWMgY2FsbCwKKyAgICAgIFRoaXMgaXMgY291
bnRlZCBhcyAxIHRyaXZpYWwgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgVGVzdGVkICAgIDEKKyAg
ICAgIFRvdGFsICAgICAxCisgICAqLworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0
SWRlbnRpdHlBc3NlcnRpb24uc3ViLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWQ5NDhhYWRm
YTE2MjY3NzQ5ZGY3ZWQ1MjRkNjgwNDQ2M2Q5MzRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tZ2V0SWRlbnRpdHlBc3NlcnRpb24uc3ViLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0
IEBACisKK0ZBSUwgZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgbG9hZCBJZFAgcHJveHkg
YW5kIHJldHVybiBhc3NlcnRpb24gZ2VuZXJhdGVkIHVuZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlv
biAobmVhciAnLi4ucGMuc2V0SWRlbnRpdHlQcm92aWRlci4uLicpCitGQUlMIGdldElkZW50aXR5
QXNzZXJ0aW9uKCkgc2hvdWxkIHN1Y2NlZWQgaWYgbW9jay1pZHAuanMgcmV0dXJuIGRpZmZlcmVu
dCBkb21haW4gYW5kIHByb3RvY29sIGluIGFzc2VydGlvbiB1bmRlZmluZWQgaXMgbm90IGEgZnVu
Y3Rpb24gKG5lYXIgJy4uLnBjLnNldElkZW50aXR5UHJvdmlkZXIuLi4nKQorRkFJTCBnZXRJZGVu
dGl0eUFzc2VydGlvbigpIHNob3VsZCByZWplY3Qgd2l0aCBSVENFcnJvcignaWRwLWV4ZWN1dGlv
bi1mYWlsdXJlJykgaWYgbW9jay1pZHAuanMgdGhyb3dzIGVycm9yIGFzc2VydF9lcXVhbHM6IEV4
cGVjdCBpbml0aWFsIHBjLmlkcEVycm9ySW5mbyB0byBiZSBudWxsIGV4cGVjdGVkIChvYmplY3Qp
IG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK0ZBSUwgZ2V0SWRlbnRpdHlBc3Nl
cnRpb24oKSBzaG91bGQgcmVqZWN0IHdpdGggUlRDRXJyb3IoJ2lkcC1iYWQtc2NyaXB0LWZhaWx1
cmUnKSBpZiBJZFAgcHJveHkgc2NyaXB0IGRvIG5vdCByZWdpc3RlciBpdHMgY2FsbGJhY2sgdW5k
ZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9uIChuZWFyICcuLi5wYy5zZXRJZGVudGl0eVByb3ZpZGVy
Li4uJykKK0ZBSUwgZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgcmVqZWN0IHdpdGggT3Bl
cmF0aW9uRXJyb3IgaWYgbW9jay1pZHAuanMgcmV0dXJuIGludmFsaWQgcmVzdWx0IHVuZGVmaW5l
ZCBpcyBub3QgYSBmdW5jdGlvbiAobmVhciAnLi4ucGMuc2V0SWRlbnRpdHlQcm92aWRlci4uLicp
CitGQUlMIGdldElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9y
KCdpZHAtbG9hZC1mYWlsdXJlJykgaWYgSWRQIGNhbm5vdCBiZSBsb2FkZWQgcGMuc2V0SWRlbnRp
dHlQcm92aWRlciBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwYy5zZXRJZGVudGl0eVByb3ZpZGVy
KCdub25leGlzdGVudC5sb2NhbGhvc3QnLCB7CisgICAgICBwcm90b2NvbDogYG5vbi1leGlzdGVu
dGAsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUBleGFtcGxlLm9yZ2AsCisgICAgfSknLCAn
cGMuc2V0SWRlbnRpdHlQcm92aWRlcicgaXMgdW5kZWZpbmVkKQorRkFJTCBnZXRJZGVudGl0eUFz
c2VydGlvbigpIHNob3VsZCByZWplY3Qgd2l0aCBSVENFcnJvcignaWRwLW5lZWQtbG9naW4nKSB3
aGVuIG1vY2staWRwLmpzIHJlcXVpcmVzIGxvZ2luIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBpbml0
aWFsIHBjLmlkcExvZ2luVXJsIHRvIGJlIG51bGwgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQg
Z290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBzZXRJZGVudGl0eVByb3ZpZGVyKCkgd2l0
aCBubyBwZWVySWRlbnRpdHkgcHJvdmlkZWQgc2hvdWxkIHVzZSBwZWVySWRlbnRpdHkgdmFsdWUg
ZnJvbSBnZXRDb25maWd1cmF0aW9uKCkgcGMuc2V0SWRlbnRpdHlQcm92aWRlciBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICdwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHBy
b3RvY29sOiAnbW9jay1pZHAuanMnCisgICAgfSknLCAncGMuc2V0SWRlbnRpdHlQcm92aWRlcicg
aXMgdW5kZWZpbmVkKQorRkFJTCBDYWxsaW5nIHNldElkZW50aXR5UHJvdmlkZXIoKSBtdWx0aXBs
ZSB0aW1lcyBzaG91bGQgcmVzZXQgaWRlbnRpdHkgYXNzZXJ0aW9ucyBwYy5zZXRJZGVudGl0eVBy
b3ZpZGVyIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjLnNldElkZW50aXR5UHJvdmlkZXIoaWRw
SG9zdCwgeworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcz9tYXJrPWZpcnN0JworICAgIH0p
JywgJ3BjLnNldElkZW50aXR5UHJvdmlkZXInIGlzIHVuZGVmaW5lZCkKK0ZBSUwgY3JlYXRlT2Zm
ZXIoKSBzaG91bGQgcmV0dXJuIFNEUCBjb250YWluaW5nIGlkZW50aXR5IGFzc2VydGlvbiBzdHJp
bmcgaWYgaWRlbnRpdHkgcHJvdmlkZXIgaXMgc2V0IHBjLnNldElkZW50aXR5UHJvdmlkZXIgaXMg
bm90IGEgZnVuY3Rpb24uIChJbiAncGMuc2V0SWRlbnRpdHlQcm92aWRlcihob3N0U3RyaW5nKGlk
cERvbWFpbiwgcG9ydCksIHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanMnLAorICAgICAg
dXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAorICAgIH0pJywgJ3BjLnNldElkZW50
aXR5UHJvdmlkZXInIGlzIHVuZGVmaW5lZCkKK0ZBSUwgY3JlYXRlT2ZmZXIoKSBzaG91bGQgcmVq
ZWN0IHdpdGggTm90UmVhZGFibGVFcnJvciBpZiBpZGVudGl0aXR5IGFzc2VydGlvbiByZXF1ZXN0
IGZhaWxzIHVuZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbiAobmVhciAnLi4ucGMuc2V0SWRlbnRp
dHlQcm92aWRlci4uLicpCitGQUlMIGNyZWF0ZUFuc3dlcigpIHNob3VsZCByZWplY3Qgd2l0aCBO
b3RSZWFkYWJsZUVycm9yIGlmIGlkZW50aXRpdHkgYXNzZXJ0aW9uIHJlcXVlc3QgZmFpbHMgdW5k
ZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9uIChuZWFyICcuLi5wYy5zZXRJZGVudGl0eVByb3ZpZGVy
Li4uJykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0SWRlbnRpdHlBc3NlcnRpb24uc3Vi
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yYmQ4NjBkOTAxZGVkNzhjOTYzNWRhNjU0MTNhYzYzZTdkYmY0NDYwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0SWRlbnRpdHlBc3NlcnRpb24uc3ViLmh0bWwKQEAgLTAs
MCArMSw0MDAgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRs
ZT5SVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuZ2V0SWRlbnRpdHlBc3NlcnRpb248L3RpdGxl
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9ImlkZW50aXR5LWhlbHBlci5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAg
J3VzZSBzdHJpY3QnOworCisgIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBlZGl0
b3IgZHJhZnQ6CisgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMv
MjAxNzA2MDUvd2VicnRjLmh0bWwKKworICAvLyBUaGUgdGVzdHMgaGVyZSBpbnRlcmFjdHMgd2l0
aCB0aGUgbW9jayBpZGVudGl0eSBwcm92aWRlciBsb2NhdGVkIGF0CisgIC8vICAgLy53ZWxsLWtu
b3duL2lkcC1wcm94eS9tb2NrLWlkcC5qcworCisgIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1
bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20gaWRlbnRpdHktaGVscGVyLnN1Yi5qcworICAvLyAgIHBh
cnNlQXNzZXJ0aW9uUmVzdWx0CisgIC8vICAgZ2V0SWRwRG9tYWlucworICAvLyAgIGFzc2VydF9y
dGNlcnJvcl9yZWplY3Rpb24KKyAgLy8gICBob3N0U3RyaW5nCisKKyAgLyoKKyAgICA5LjYuICBS
VENQZWVyQ29ubmVjdGlvbiBJbnRlcmZhY2UgRXh0ZW5zaW9ucworICAgICAgcGFydGlhbCBpbnRl
cmZhY2UgUlRDUGVlckNvbm5lY3Rpb24geworICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0
SWRlbnRpdHlQcm92aWRlcihET01TdHJpbmcgcHJvdmlkZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFJUQ0lkZW50aXR5UHJvdmlkZXJP
cHRpb25zIG9wdGlvbnMpOworICAgICAgICBQcm9taXNlPERPTVN0cmluZz4gZ2V0SWRlbnRpdHlB
c3NlcnRpb24oKTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFByb21pc2U8UlRDSWRlbnRp
dHlBc3NlcnRpb24+IHBlZXJJZGVudGl0eTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZz8gICAgICAgICAgICAgICAgICAgIGlkcExvZ2luVXJsOworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyAgICAgICAgICAgICAgICAgICAgaWRwRXJyb3JJbmZvOwor
ICAgICAgfTsKKworICAgICAgZGljdGlvbmFyeSBSVENJZGVudGl0eVByb3ZpZGVyT3B0aW9ucyB7
CisgICAgICAgIERPTVN0cmluZyBwcm90b2NvbCA9ICJkZWZhdWx0IjsKKyAgICAgICAgRE9NU3Ry
aW5nIHVzZXJuYW1lSGludDsKKyAgICAgICAgRE9NU3RyaW5nIHBlZXJJZGVudGl0eTsKKyAgICAg
IH07CisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7
CisKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKKyAgICBjb25zdCBp
ZHBIb3N0ID0gaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpOworCisgICAgcGMuc2V0SWRlbnRp
dHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzP2Zvbz1i
YXInLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YCwKKyAgICAgIHBl
ZXJJZGVudGl0eTogJ2JvYkBleGFtcGxlLm9yZycKKyAgICB9KTsKKworICAgIHJldHVybiBwYy5n
ZXRJZGVudGl0eUFzc2VydGlvbigpCisgICAgLnRoZW4oYXNzZXJ0aW9uUmVzdWx0U3RyID0+IHsK
KyAgICAgIGNvbnN0IHsgaWRwLCBhc3NlcnRpb24gfSA9IHBhcnNlQXNzZXJ0aW9uUmVzdWx0KGFz
c2VydGlvblJlc3VsdFN0cik7CisKKyAgICAgIGFzc2VydF9lcXVhbHMoaWRwLmRvbWFpbiwgaWRw
SG9zdCwKKyAgICAgICAgJ0V4cGVjdCBtb2NrLWlkcC5qcyB0byBjb25zdHJ1Y3QgZG9tYWluIGZy
b20gaXRzIGxvY2F0aW9uLmhvc3QnKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhpZHAucHJvdG9j
b2wsICdtb2NrLWlkcC5qcycsCisgICAgICAgICdFeHBlY3QgbW9jay1pZHAuanMgdG8gcmV0dXJu
IHByb3RvY29sIG9mIGl0c2VsZiB3aXRoIG5vIHF1ZXJ5IHN0cmluZycpOworCisgICAgICBjb25z
dCB7CisgICAgICAgIHdhdGVybWFyaywKKyAgICAgICAgYXJncywKKyAgICAgICAgZW52LAorICAg
ICAgICBxdWVyeSwKKyAgICAgIH0gPSBhc3NlcnRpb247CisKKyAgICAgIGFzc2VydF9lcXVhbHMo
d2F0ZXJtYXJrLCAnbW9jay1pZHAuanMud2F0ZXJtYXJrJywKKyAgICAgICAgJ0V4cGVjdCBhc3Nl
cnRpb24gcmVzdWx0IHRvIGNvbnRhaW4gd2F0ZXJtYXJrIGxlZnQgYnkgbW9jay1pZHAuanMnKTsK
KworICAgICAgYXNzZXJ0X2VxdWFscyhhcmdzLm9yaWdpbiwgd2luZG93Lm9yaWdpbiwKKyAgICAg
ICAgJ0V4cGVjdCBhcmdzLm9yaWdpbiBhcmd1bWVudCB0byBiZSB0aGUgb3JpZ2luIG9mIHRoaXMg
d2luZG93Jyk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMoZW52LmxvY2F0aW9uLAorICAgICAgICBg
aHR0cHM6Ly8ke2lkcEhvc3R9Ly53ZWxsLWtub3duL2lkcC1wcm94eS9pZHAtdGVzdC5qcz9mb289
YmFyYCwKKyAgICAgICAgJ0V4cGVjdCBJZFAgcHJveHkgdG8gYmUgbG9hZGVkIHdpdGggZnVsbCB3
ZWxsLWtub3duIFVSTCBjb25zdHJ1Y3RlZCBmcm9tIHByb3ZpZGVyIGFuZCBwcm90b2NvbCcpOwor
CisgICAgICBhc3NlcnRfZXF1YWxzKGVudi5vcmlnaW4sIGBodHRwczovLyR7aWRwSG9zdH1gLAor
ICAgICAgICAnRXhwZWN0IElkUCB0byBoYXZlIGl0cyBvd24gb3JpZ2luJyk7CisKKyAgICAgIGFz
c2VydF9lcXVhbHMoYXJncy5vcHRpb25zLnByb3RvY29sLCAnaWRwLXRlc3QuanM/Zm9vPWJhcics
CisgICAgICAgICdFeHBlY3Qgb3B0aW9ucy5wcm90b2NvbCB0byBiZSB0aGUgc2FtZSB2YWx1ZSBh
cyBiZWluZyBwYXNzZWQgZnJvbSBoZXJlJyk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMoYXJncy5v
cHRpb25zLnVzZXJuYW1lSGludCwgYGFsaWNlQCR7aWRwRG9tYWlufWAsCisgICAgICAgICdFeHBl
Y3Qgb3B0aW9ucy51c2VybmFtZUhpbnQgdG8gYmUgdGhlIHNhbWUgdmFsdWUgYXMgYmVpbmcgcGFz
c2VkIGZyb20gaGVyZScpOworCisgICAgICBhc3NlcnRfZXF1YWxzKGFyZ3Mub3B0aW9ucy5wZWVy
SWRlbnRpdHksICdib2JAZXhhbXBsZS5vcmcnLAorICAgICAgICAnRXhwZWN0IG9wdGlvbnMucGVl
cklkZW50aXR5IHRvIGJlIHRoZSBzYW1lIHZhbHVlIGFzIGJlaW5nIHBhc3NlZCBmcm9tIGhlcmUn
KTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhxdWVyeS5mb28sICdiYXInLAorICAgICAgICAnRXhw
ZWN0IHF1ZXJ5IHN0cmluZyB0byBiZSBwYXJzZWQgYnkgbW9jay1pZHAuanMgYW5kIHJldHVybmVk
IGJhY2snKTsKKyAgICB9KTsKKyAgfSwgJ2dldElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIGxv
YWQgSWRQIHByb3h5IGFuZCByZXR1cm4gYXNzZXJ0aW9uIGdlbmVyYXRlZCcpOworCisgIC8vIFdo
ZW4gZ2VuZXJhdGluZyBhc3NlcnRpb24sIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBkb2Vzbid0IGNh
cmUgaWYgdGhlIHJldHVybmVkIGFzc2VydGlvbgorICAvLyByZXByZXNlbnRzIGlkZW50aXR5IG9m
IGRpZmZlcmVudCBkb21haW4KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlv
bi5wb3J0OworCisgICAgY29uc3QgW2lkcERvbWFpbjEsIGlkcERvbWFpbjJdID0gZ2V0SWRwRG9t
YWlucygpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKGlkcERvbWFpbjEsIGlkcERvbWFpbjIsCisg
ICAgICAnU2FuaXR5IGNoZWNrIHR3byBpZHBEb21haW5zIGFyZSBkaWZmZXJlbnQnKTsKKworICAg
IC8vIEFzayBtb2NrLWlkcC5qcyB0byByZXR1cm4gYSBjdXN0b20gZG9tYWluIGlkcERvbWFpbjIg
YW5kIGN1c3RvbSBwcm90b2NvbCBmb28KKyAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RT
dHJpbmcoaWRwRG9tYWluMSwgcG9ydCksIHsKKyAgICAgIHByb3RvY29sOiBgbW9jay1pZHAuanM/
Z2VuZXJhdG9yQWN0aW9uPXJldHVybi1jdXN0b20taWRwJmRvbWFpbj0ke2lkcERvbWFpbjJ9JnBy
b3RvY29sPWZvb2AsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbjJ9YCwK
KyAgICB9KTsKKworICAgIHJldHVybiBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpCisgICAgLnRo
ZW4oYXNzZXJ0aW9uUmVzdWx0U3RyID0+IHsKKyAgICAgIGNvbnN0IHsgaWRwLCBhc3NlcnRpb24g
fSA9IHBhcnNlQXNzZXJ0aW9uUmVzdWx0KGFzc2VydGlvblJlc3VsdFN0cik7CisgICAgICBhc3Nl
cnRfZXF1YWxzKGlkcC5kb21haW4sIGlkcERvbWFpbjIpOworICAgICAgYXNzZXJ0X2VxdWFscyhp
ZHAucHJvdG9jb2wsICdmb28nKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoYXNzZXJ0aW9uLm9wdGlv
bnMudXNlcm5hbWVIaW50LCBgYWxpY2VAJHtpZHBEb21haW4yfWApOworICAgIH0pOworICB9LCAn
Z2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgc3VjY2VlZCBpZiBtb2NrLWlkcC5qcyByZXR1
cm4gZGlmZmVyZW50IGRvbWFpbiBhbmQgcHJvdG9jb2wgaW4gYXNzZXJ0aW9uJyk7CisKKyAgLyoK
KyAgICA5LjMuICBSZXF1ZXN0aW5nIElkZW50aXR5IEFzc2VydGlvbnMKKyAgICAgIDQuICBJZiB0
aGUgSWRQIHByb3h5IHByb2R1Y2VzIGFuIGVycm9yIG9yIHJldHVybnMgYSBwcm9taXNlIHRoYXQg
ZG9lcyBub3QgcmVzb2x2ZSB0bworICAgICAgICAgIGEgdmFsaWQgUlRDSWRlbnRpdHlWYWxpZGF0
aW9uUmVzdWx0IChzZWUgOS41IElkUCBFcnJvciBIYW5kbGluZyksIHRoZW4gaWRlbnRpdHkKKyAg
ICAgICAgICB2YWxpZGF0aW9uIGZhaWxzLgorCisgICAgOS41LiAgSWRQIEVycm9yIEhhbmRsaW5n
CisgICAgICAtIElmIGFuIGlkZW50aXR5IHByb3ZpZGVyIHRocm93cyBhbiBleGNlcHRpb24gb3Ig
cmV0dXJucyBhIHByb21pc2UgdGhhdCBpcyB1bHRpbWF0ZWx5CisgICAgICAgIHJlamVjdGVkLCB0
aGVuIHRoZSBwcm9jZWR1cmUgdGhhdCBkZXBlbmRzIG9uIHRoZSBJZFAgTVVTVCBhbHNvIGZhaWwu
IFRoZXNlIHR5cGVzIG9mCisgICAgICAgIGVycm9ycyB3aWxsIGNhdXNlIGFuIElkUCBmYWlsdXJl
IHdpdGggYW4gUlRDRXJyb3Igd2l0aCBlcnJvckRldGFpbCBzZXQgdG8KKyAgICAgICAgImlkcC1l
eGVjdXRpb24tZmFpbHVyZSIuCisKKyAgICA5LjYuICBSVENQZWVyQ29ubmVjdGlvbiBJbnRlcmZh
Y2UgRXh0ZW5zaW9ucworICAgICAgaWRwRXJyb3JJbmZvCisgICAgICAgIEFuIGF0dHJpYnV0ZSB0
aGF0IHRoZSBJZFAgY2FuIHVzZSB0byBwYXNzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYmFjayB0
byB0aGUKKyAgICAgICAgYXBwbGljYXRpb25zIGFib3V0IHRoZSBlcnJvci4gVGhlIGZvcm1hdCBv
ZiB0aGlzIHN0cmluZyBpcyBkZWZpbmVkIGJ5IHRoZSBJZFAgYW5kCisgICAgICAgIG1heSBiZSBK
U09OLgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICBhc3NlcnRfZXF1YWxzKHBjLmlkcEVycm9ySW5mbywg
bnVsbCwKKyAgICAgICdFeHBlY3QgaW5pdGlhbCBwYy5pZHBFcnJvckluZm8gdG8gYmUgbnVsbCcp
OworCisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtp
ZHBEb21haW5dID0gZ2V0SWRwRG9tYWlucygpOworCisgICAgLy8gQXNrIG1vY2staWRwLmpzIHRv
IHRocm93IGFuIGVycm9yIHdpdGggZXJyLmVycm9ySW5mbyBzZXQgdG8gYmFyCisgICAgcGMuc2V0
SWRlbnRpdHlQcm92aWRlcihob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCksIHsKKyAgICAgIHBy
b3RvY29sOiBgbW9jay1pZHAuanM/Z2VuZXJhdG9yQWN0aW9uPXRocm93LWVycm9yJmVycm9ySW5m
bz1iYXJgLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YCwKKyAgICB9
KTsKKworICAgIHJldHVybiBhc3NlcnRfcnRjZXJyb3JfcmVqZWN0aW9uKCdpZHAtZXhlY3V0aW9u
LWZhaWx1cmUnLAorICAgICAgcGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSkKKyAgICAudGhlbigo
KSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHBjLmlkcEVycm9ySW5mbywgJ2JhcicsCisgICAg
ICAgICdFeHBlY3QgcGMuaWRwRXJyb3JJbmZvIHRvIGJlIHNldCB0byB0aGUgZXJyLmlkcEVycm9y
SW5mbyB0aHJvd24gYnkgbW9jay1pZHAuanMnKTsKKyAgICB9KTsKKyAgfSwgYGdldElkZW50aXR5
QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtZXhlY3V0aW9uLWZh
aWx1cmUnKSBpZiBtb2NrLWlkcC5qcyB0aHJvd3MgZXJyb3JgKTsKKworICAvKgorICAgIDkuNS4g
IElkUCBFcnJvciBIYW5kbGluZworICAgICAgLSBJZiB0aGUgc2NyaXB0IGxvYWRlZCBmcm9tIHRo
ZSBpZGVudGl0eSBwcm92aWRlciBpcyBub3QgdmFsaWQgSmF2YVNjcmlwdCBvciBkb2VzCisgICAg
ICAgIG5vdCBpbXBsZW1lbnQgdGhlIGNvcnJlY3QgaW50ZXJmYWNlcywgaXQgY2F1c2VzIGFuIElk
UCBmYWlsdXJlIHdpdGggYW4gUlRDRXJyb3IKKyAgICAgICAgd2l0aCBlcnJvckRldGFpbCBzZXQg
dG8gImlkcC1iYWQtc2NyaXB0LWZhaWx1cmUiLgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KHQgPT4g
eworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICBjb25zdCBw
b3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7CisgICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJ
ZHBEb21haW5zKCk7CisKKyAgICAvLyBBc2sgbW9jay1pZHAuanMgdG8gbm90IHJlZ2lzdGVyIGl0
cyBjYWxsYmFjayB0byB0aGUKKyAgICAvLyBSVENJZGVudGl0eVByb3ZpZGVyUmVnaXN0cmFyCisg
ICAgcGMuc2V0SWRlbnRpdHlQcm92aWRlcihob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCksIHsK
KyAgICAgIHByb3RvY29sOiBgbW9jay1pZHAuanM/YWN0aW9uPWRvLW5vdC1yZWdpc3RlcmAsCisg
ICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gLAorICAgIH0pOworCisgICAg
cmV0dXJuIGFzc2VydF9ydGNlcnJvcl9yZWplY3Rpb24oJ2lkcC1iYWQtc2NyaXB0LWZhaWx1cmUn
LAorICAgICAgcGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSk7CisKKyAgfSwgYGdldElkZW50aXR5
QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtYmFkLXNjcmlwdC1m
YWlsdXJlJykgaWYgSWRQIHByb3h5IHNjcmlwdCBkbyBub3QgcmVnaXN0ZXIgaXRzIGNhbGxiYWNr
YCk7CisKKyAgLyoKKyAgICA5LjMuICBSZXF1ZXN0aW5nIElkZW50aXR5IEFzc2VydGlvbnMKKyAg
ICAgIDQuICBJZiB0aGUgSWRQIHByb3h5IHByb2R1Y2VzIGFuIGVycm9yIG9yIHJldHVybnMgYSBw
cm9taXNlIHRoYXQgZG9lcyBub3QgcmVzb2x2ZQorICAgICAgICAgIHRvIGEgdmFsaWQgUlRDSWRl
bnRpdHlBc3NlcnRpb25SZXN1bHQgKHNlZSA5LjUgSWRQIEVycm9yIEhhbmRsaW5nKSwgdGhlbiBh
c3NlcnRpb24KKyAgICAgICAgICBnZW5lcmF0aW9uIGZhaWxzLgorICAgKi8KKyAgcHJvbWlzZV90
ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAg
ICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7CisgICAgY29uc3QgW2lkcERvbWFp
bl0gPSBnZXRJZHBEb21haW5zKCk7CisKKyAgICAvLyBBc2sgbW9jay1pZHAuanMgdG8gcmV0dXJu
IGFuIGludmFsaWQgcmVzdWx0IHRoYXQgaXMgbm90IHByb3BlcgorICAgIC8vIFJUQ0lkZW50aXR5
QXNzZXJ0aW9uUmVzdWx0CisgICAgcGMuc2V0SWRlbnRpdHlQcm92aWRlcihob3N0U3RyaW5nKGlk
cERvbWFpbiwgcG9ydCksIHsKKyAgICAgIHByb3RvY29sOiBgbW9jay1pZHAuanM/Z2VuZXJhdG9y
QWN0aW9uPXJldHVybi1pbnZhbGlkLXJlc3VsdGAsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGlj
ZUAke2lkcERvbWFpbn1gLAorICAgIH0pOworCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0
LCAnT3BlcmF0aW9uRXJyb3InLAorICAgICAgcGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSk7Cisg
IH0sIGBnZXRJZGVudGl0eUFzc2VydGlvbigpIHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRpb25F
cnJvciBpZiBtb2NrLWlkcC5qcyByZXR1cm4gaW52YWxpZCByZXN1bHRgKTsKKworICAvKgorICAg
IDkuNS4gIElkUCBFcnJvciBIYW5kbGluZworICAgICAgLSBBIFJUQ1BlZXJDb25uZWN0aW9uIG1p
Z2h0IGJlIGNvbmZpZ3VyZWQgd2l0aCBhbiBpZGVudGl0eSBwcm92aWRlciwgYnV0IGxvYWRpbmcg
b2YKKyAgICAgICAgdGhlIElkUCBVUkkgZmFpbHMuIEFueSBwcm9jZWR1cmUgdGhhdCBhdHRlbXB0
cyB0byBpbnZva2Ugc3VjaCBhbiBpZGVudGl0eSBwcm92aWRlcgorICAgICAgICBhbmQgY2Fubm90
IGxvYWQgdGhlIFVSSSBmYWlscyB3aXRoIGFuIFJUQ0Vycm9yIHdpdGggZXJyb3JEZXRhaWwgc2V0
IHRvCisgICAgICAgICJpZHAtbG9hZC1mYWlsdXJlIiBhbmQgdGhlIGh0dHBSZXF1ZXN0U3RhdHVz
Q29kZSBhdHRyaWJ1dGUgb2YgdGhlIGVycm9yIHNldCB0byB0aGUKKyAgICAgICAgSFRUUCBzdGF0
dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UuCisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7Cisg
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgIHBjLnNldElkZW50
aXR5UHJvdmlkZXIoJ25vbmV4aXN0ZW50Lnt7ZG9tYWluc1tdfX0nLCB7CisgICAgICBwcm90b2Nv
bDogYG5vbi1leGlzdGVudGAsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUBleGFtcGxlLm9y
Z2AsCisgICAgfSk7CisKKyAgICByZXR1cm4gYXNzZXJ0X3J0Y2Vycm9yX3JlamVjdGlvbignaWRw
LWxvYWQtZmFpbHVyZScsCisgICAgICBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpKTsKKyAgfSwg
YGdldElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAt
bG9hZC1mYWlsdXJlJykgaWYgSWRQIGNhbm5vdCBiZSBsb2FkZWRgKTsKKworICAvKgorICAgIDku
My4xLiAgVXNlciBMb2dpbiBQcm9jZWR1cmUKKyAgICAgIFJlamVjdGluZyB0aGUgcHJvbWlzZSBy
ZXR1cm5lZCBieSBnZW5lcmF0ZUFzc2VydGlvbiB3aWxsIGNhdXNlIHRoZSBlcnJvciB0bworICAg
ICAgcHJvcGFnYXRlIHRvIHRoZSBhcHBsaWNhdGlvbi4gTG9naW4gZXJyb3JzIGFyZSBpbmRpY2F0
ZWQgYnkgcmVqZWN0aW5nIHRoZQorICAgICAgcHJvbWlzZSB3aXRoIGFuIFJUQ0Vycm9yIHdpdGgg
ZXJyb3JEZXRhaWwgc2V0IHRvICJpZHAtbmVlZC1sb2dpbiIuCisKKyAgICAgIFRoZSBVUkwgdG8g
bG9naW4gYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGFwcGxpY2F0aW9uIGluIHRoZSBpZHBMb2dp
blVybAorICAgICAgYXR0cmlidXRlIG9mIHRoZSBSVENQZWVyQ29ubmVjdGlvbi4KKworICAgIDku
NS4gIElkUCBFcnJvciBIYW5kbGluZworICAgICAgLSBJZiB0aGUgaWRlbnRpdHkgcHJvdmlkZXIg
cmVxdWlyZXMgdGhlIHVzZXIgdG8gbG9naW4sIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsCisgICAg
ICAgIFJUQ0Vycm9yIHdpdGggZXJyb3JEZXRhaWwgc2V0IHRvICJpZHAtbmVlZC1sb2dpbiIgYW5k
IHRoZSBpZHBMb2dpblVybCBhdHRyaWJ1dGUKKyAgICAgICAgb2YgdGhlIGVycm9yIHNldCB0byB0
aGUgVVJMIHRoYXQgY2FuIGJlIHVzZWQgdG8gbG9naW4uCisgICAqLworICBwcm9taXNlX3Rlc3Qo
dCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgIGFz
c2VydF9lcXVhbHMocGMuaWRwTG9naW5VcmwsIG51bGwsCisgICAgICAnRXhwZWN0IGluaXRpYWwg
cGMuaWRwTG9naW5VcmwgdG8gYmUgbnVsbCcpOworCisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5s
b2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBEb21haW5dID0gZ2V0SWRwRG9tYWlucygpOwor
ICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCk7CisKKyAgICBw
Yy5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHByb3RvY29sOiBgbW9jay1p
ZHAuanM/Z2VuZXJhdG9yQWN0aW9uPXJlcXVpcmUtbG9naW5gLAorICAgICAgdXNlcm5hbWVIaW50
OiBgYWxpY2VAJHtpZHBEb21haW59YCwKKyAgICB9KTsKKworICAgIHJldHVybiBhc3NlcnRfcnRj
ZXJyb3JfcmVqZWN0aW9uKCdpZHAtbmVlZC1sb2dpbicsCisgICAgICBwYy5nZXRJZGVudGl0eUFz
c2VydGlvbigpKQorICAgIC50aGVuKGVyciA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKGVyci5p
ZHBMb2dpblVybCwgYGh0dHBzOi8vJHtpZHBIb3N0fS9sb2dpbmAsCisgICAgICAgICdFeHBlY3Qg
ZXJyLmlkcExvZ2luVXJsIHRvIGJlIHNldCB0byB1cmwgc2V0IGJ5IG1vY2staWRwLmpzJyk7CisK
KyAgICAgIGFzc2VydF9lcXVhbHMocGMuaWRwTG9naW5VcmwsIGBodHRwczovLyR7aWRwSG9zdH0v
bG9naW5gLAorICAgICAgICAnRXhwZWN0IHBjLmlkcExvZ2luVXJsIHRvIGJlIHNldCB0byB1cmwg
c2V0IGJ5IG1vY2staWRwLmpzJyk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMocGMuaWRwRXJyb3JJ
bmZvLCAnbG9naW4gcmVxdWlyZWQnLAorICAgICAgICAnRXhwZWN0IHBjLmlkcEVycm9ySW5mbyB0
byBiZSBzZXQgdG8gaW5mbyBzZXQgYnkgbW9jay1pZHAuanMnKTsKKyAgICB9KTsKKyAgfSwgYGdl
dElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtbmVl
ZC1sb2dpbicpIHdoZW4gbW9jay1pZHAuanMgcmVxdWlyZXMgbG9naW5gKTsKKworICAvKgorICAg
IFJUQ0lkZW50aXR5UHJvdmlkZXJPcHRpb25zIE1lbWJlcnMKKyAgICAgIHBlZXJJZGVudGl0eQor
ICAgICAgICBUaGUgaWRlbnRpdHkgb2YgdGhlIHBlZXIuIEZvciBpZGVudGl0eSBwcm92aWRlcnMg
dGhhdCBiaW5kIHRoZWlyIGFzc2VydGlvbnMgdG8gYQorICAgICAgICBwYXJ0aWN1bGFyIHBhaXIg
b2YgY29tbXVuaWNhdGlvbiBwZWVycywgdGhpcyBhbGxvd3MgdGhlbSB0byBnZW5lcmF0ZSBhbiBh
c3NlcnRpb24KKyAgICAgICAgdGhhdCBpbmNsdWRlcyBib3RoIGxvY2FsIGFuZCByZW1vdGUgaWRl
bnRpdGllcy4gSWYgdGhpcyB2YWx1ZSBpcyBvbWl0dGVkLCBidXQgYQorICAgICAgICB2YWx1ZSBp
cyBwcm92aWRlZCBmb3IgdGhlIHBlZXJJZGVudGl0eSBtZW1iZXIgb2YgUlRDQ29uZmlndXJhdGlv
biwgdGhlIHZhbHVlIGZyb20KKyAgICAgICAgUlRDQ29uZmlndXJhdGlvbiBpcyB1c2VkLgorICAq
LworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oeworICAgICAgcGVlcklkZW50aXR5OiAnYm9iQGV4YW1wbGUubmV0JworICAgIH0pOwor
CisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBE
b21haW5dID0gZ2V0SWRwRG9tYWlucygpOworICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5n
KGlkcERvbWFpbiwgcG9ydCk7CisKKyAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3Qs
IHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanMnCisgICAgfSk7CisKKyAgICByZXR1cm4g
cGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKQorICAgIC50aGVuKGFzc2VydGlvblJlc3VsdFN0ciA9
PiB7CisgICAgICBjb25zdCB7IGFzc2VydGlvbiB9ID0gcGFyc2VBc3NlcnRpb25SZXN1bHQoYXNz
ZXJ0aW9uUmVzdWx0U3RyKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoYXNzZXJ0aW9uLmFyZ3Mub3B0
aW9ucy5wZWVySWRlbnRpdHksICdib2JAZXhhbXBsZS5uZXQnKTsKKyAgICB9KTsKKyAgfSwgJ3Nl
dElkZW50aXR5UHJvdmlkZXIoKSB3aXRoIG5vIHBlZXJJZGVudGl0eSBwcm92aWRlZCBzaG91bGQg
dXNlIHBlZXJJZGVudGl0eSB2YWx1ZSBmcm9tIGdldENvbmZpZ3VyYXRpb24oKScpOworCisgIC8q
CisgICAgOS42LiAgc2V0SWRlbnRpdHlQcm92aWRlcgorICAgICAgMy4gIElmIGFueSBpZGVudGl0
eSBwcm92aWRlciB2YWx1ZSBoYXMgY2hhbmdlZCwgZGlzY2FyZCBhbnkgc3RvcmVkIGlkZW50aXR5
IGFzc2VydGlvbi4KKyAgICovCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRp
b24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKKyAgICBj
b25zdCBpZHBIb3N0ID0gaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpOworCisgICAgcGMuc2V0
SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpz
P21hcms9Zmlyc3QnCisgICAgfSk7CisKKyAgICByZXR1cm4gcGMuZ2V0SWRlbnRpdHlBc3NlcnRp
b24oKQorICAgIC50aGVuKGFzc2VydGlvblJlc3VsdFN0ciA9PiB7CisgICAgICBjb25zdCB7IGFz
c2VydGlvbiB9ID0gcGFyc2VBc3NlcnRpb25SZXN1bHQoYXNzZXJ0aW9uUmVzdWx0U3RyKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoYXNzZXJ0aW9uLnF1ZXJ5Lm1hcmssICdmaXJzdCcpOworCisgICAg
ICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgICAgcHJvdG9jb2w6ICdt
b2NrLWlkcC5qcz9tYXJrPXNlY29uZCcKKyAgICAgIH0pOworCisgICAgICByZXR1cm4gcGMuZ2V0
SWRlbnRpdHlBc3NlcnRpb24oKTsKKyAgICB9KQorICAgIC50aGVuKGFzc2VydGlvblJlc3VsdFN0
ciA9PiB7CisgICAgICBjb25zdCB7IGFzc2VydGlvbiB9ID0gcGFyc2VBc3NlcnRpb25SZXN1bHQo
YXNzZXJ0aW9uUmVzdWx0U3RyKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoYXNzZXJ0aW9uLnF1ZXJ5
Lm1hcmssICdzZWNvbmQnLAorICAgICAgICAnRXhwZWN0IGdlbmVyYXRlZCBhc3NlcnRpb24gaXMg
ZnJvbSBzZWNvbmQgSWRQIGNvbmZpZycpOworICAgIH0pOworICB9LCBgQ2FsbGluZyBzZXRJZGVu
dGl0eVByb3ZpZGVyKCkgbXVsdGlwbGUgdGltZXMgc2hvdWxkIHJlc2V0IGlkZW50aXR5IGFzc2Vy
dGlvbnNgKTsKKworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7
CisgICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7CisKKyAgICBwYy5zZXRJ
ZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KSwgeworICAgICAgcHJv
dG9jb2w6ICdtb2NrLWlkcC5qcycsCisgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERv
bWFpbn1gCisgICAgfSk7CisKKyAgICByZXR1cm4gcGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKQor
ICAgIC50aGVuKGFzc2VydGlvblJlc3VsdFN0ciA9PgorICAgICAgcGMuY3JlYXRlT2ZmZXIoKQor
ICAgICAgLnRoZW4ob2ZmZXIgPT4geworICAgICAgICBhc3NlcnRfdHJ1ZShvZmZlci5zZHAuaW5j
bHVkZXMoYFxyXG5hPWlkZW50aXR5OiR7YXNzZXJ0aW9uUmVzdWx0U3RyfWAsCisgICAgICAgICAg
J0V4cGVjdCBTRFAgdG8gaGF2ZSBhPWlkZW50aXR5IGxpbmUgY29udGFpbmluZyBhc3NlcnRpb24g
c3RyaW5nJykpOworICAgICAgfSkpOworICB9LCAnY3JlYXRlT2ZmZXIoKSBzaG91bGQgcmV0dXJu
IFNEUCBjb250YWluaW5nIGlkZW50aXR5IGFzc2VydGlvbiBzdHJpbmcgaWYgaWRlbnRpdHkgcHJv
dmlkZXIgaXMgc2V0Jyk7CisKKyAgLyoKKyAgICA0LjQuMi4gIFN0ZXBzIHRvIGNyZWF0ZSBhbiBv
ZmZlcgorICAgICAgMS4gIElmIHRoZSBuZWVkIGZvciBhbiBpZGVudGl0eSBhc3NlcnRpb24gd2Fz
IGlkZW50aWZpZWQgd2hlbiBjcmVhdGVPZmZlciB3YXMKKyAgICAgICAgICBpbnZva2VkLCB3YWl0
IGZvciB0aGUgaWRlbnRpdHkgYXNzZXJ0aW9uIHJlcXVlc3QgcHJvY2VzcyB0byBjb21wbGV0ZS4K
KyAgICAgIDIuICBJZiB0aGUgaWRlbnRpdHkgcHJvdmlkZXIgd2FzIHVuYWJsZSB0byBwcm9kdWNl
IGFuIGlkZW50aXR5IGFzc2VydGlvbiwgcmVqZWN0IHAKKyAgICAgICAgICB3aXRoIGEgbmV3bHkg
Y3JlYXRlZCBOb3RSZWFkYWJsZUVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICovCisg
IHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsKKyAgICBjb25zdCBb
aWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKKworICAgIHBjLnNldElkZW50aXR5UHJvdmlk
ZXIoaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpLCB7CisgICAgICBwcm90b2NvbDogJ21vY2st
aWRwLmpzP2dlbmVyYXRvckFjdGlvbj10aHJvdy1lcnJvcicsCisgICAgICB1c2VybmFtZUhpbnQ6
IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICByZXR1cm4gcHJvbWlzZV9yZWpl
Y3RzKHQsICdOb3RSZWFkYWJsZUVycm9yJywKKyAgICAgIHBjLmNyZWF0ZU9mZmVyKCkpOworICB9
LCAnY3JlYXRlT2ZmZXIoKSBzaG91bGQgcmVqZWN0IHdpdGggTm90UmVhZGFibGVFcnJvciBpZiBp
ZGVudGl0aXR5IGFzc2VydGlvbiByZXF1ZXN0IGZhaWxzJyk7CisKKyAgLyoKKyAgICA0LjQuMi4g
IFN0ZXBzIHRvIGNyZWF0ZSBhbiBhbnN3ZXIKKyAgICAgIDEuICBJZiB0aGUgbmVlZCBmb3IgYW4g
aWRlbnRpdHkgYXNzZXJ0aW9uIHdhcyBpZGVudGlmaWVkIHdoZW4gY3JlYXRlQW5zd2VyIHdhcwor
ICAgICAgICAgIGludm9rZWQsIHdhaXQgZm9yIHRoZSBpZGVudGl0eSBhc3NlcnRpb24gcmVxdWVz
dCBwcm9jZXNzIHRvIGNvbXBsZXRlLgorCisgICAgICAyLiAgSWYgdGhlIGlkZW50aXR5IHByb3Zp
ZGVyIHdhcyB1bmFibGUgdG8gcHJvZHVjZSBhbiBpZGVudGl0eSBhc3NlcnRpb24sIHJlamVjdCBw
CisgICAgICAgICAgd2l0aCBhIG5ld2x5IGNyZWF0ZWQgTm90UmVhZGFibGVFcnJvciBhbmQgYWJv
cnQgdGhlc2Ugc3RlcHMuCisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwb3J0ID0gd2luZG93Lmxv
Y2F0aW9uLnBvcnQ7CisgICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7CisK
KyAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KSwg
eworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcz9nZW5lcmF0b3JBY3Rpb249dGhyb3ctZXJy
b3InLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAorICAgIH0pOwor
CisgICAgcmV0dXJuIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpCisgICAgLmNyZWF0ZU9mZmVyKCkK
KyAgICAudGhlbihvZmZlciA9PiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikpCisgICAg
LnRoZW4oKCkgPT4KKyAgICAgIHByb21pc2VfcmVqZWN0cyh0LCAnTm90UmVhZGFibGVFcnJvcics
CisgICAgICAgIHBjLmNyZWF0ZUFuc3dlcigpKSk7CisKKyAgfSwgJ2NyZWF0ZUFuc3dlcigpIHNo
b3VsZCByZWplY3Qgd2l0aCBOb3RSZWFkYWJsZUVycm9yIGlmIGlkZW50aXRpdHkgYXNzZXJ0aW9u
IHJlcXVlc3QgZmFpbHMnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1n
ZXRTdGF0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMuaHRtbAppbmRl
eCA0OWY4ODEzMWMzZTFmNzViOGI3Y2I5MjY3OTJmOWFjNzFmNDFlOGVlLi5mMjZhOTNlYTI4OTk5
ZTI0MWU3Mzc0ZmY5ZDA3ZjM5NDEyODE2YWExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRT
dGF0cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBzLmh0bWwKQEAg
LTI2NCw4ICsyNjQsMTEgQEAKICAgICAib3V0Ym91bmQtcnRwIiwKICAgICAicmVtb3RlLWluYm91
bmQtcnRwIiwKICAgICAicmVtb3RlLW91dGJvdW5kLXJ0cCIsCisgICAgIm1lZGlhLXNvdXJjZSIs
CiAgICAgInBlZXItY29ubmVjdGlvbiIsCiAgICAgImRhdGEtY2hhbm5lbCIsCisgICAgInNlbmRl
ciIsCisgICAgInJlY2VpdmVyIiwKICAgICAidHJhbnNwb3J0IiwKICAgICAiY2FuZGlkYXRlLXBh
aXIiLAogICAgICJsb2NhbC1jYW5kaWRhdGUiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVs
cGVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzCmluZGV4IDVhZWYwYThlMjFlNDJmYWZlNTg3
MTljMGZiMjQ2YTkxOWQxYjE1ZDEuLmFjNDM1Mjc5YmQyNGZlNWU1NDM4M2NhZTIxMjFmN2IwYTMy
NGRmMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1oZWxwZXIuanMKQEAgLTE3NiwxMSArMTc2LDkgQEAgZnVuY3Rpb24gZXhjaGFuZ2VJY2VDYW5k
aWRhdGVzKHBjMSwgcGMyKSB7CiAgICAgbG9jYWxQYy5hZGRFdmVudExpc3RlbmVyKCdpY2VjYW5k
aWRhdGUnLCBldmVudCA9PiB7CiAgICAgICBjb25zdCB7IGNhbmRpZGF0ZSB9ID0gZXZlbnQ7CiAK
LSAgICAgIC8vIGNhbmRpZGF0ZSBtYXkgYmUgbnVsbCB0byBpbmRpY2F0ZSBlbmQgb2YgY2FuZGlk
YXRlIGdhdGhlcmluZy4KLSAgICAgIC8vIFRoZXJlIGlzIG9uZ29pbmcgZGlzY3Vzc2lvbiBvbiB3
M2Mvd2VicnRjLXBjIzEyMTMKLSAgICAgIC8vIHRoYXQgdGhlcmUgc2hvdWxkIGJlIGFuIGVtcHR5
IGNhbmRpZGF0ZSBzdHJpbmcgZXZlbnQKLSAgICAgIC8vIGZvciBlbmQgb2YgY2FuZGlkYXRlIGZv
ciBlYWNoIG09IHNlY3Rpb24uCi0gICAgICBpZihjYW5kaWRhdGUgJiYgcmVtb3RlUGMuc2lnbmFs
aW5nU3RhdGUgIT09ICdjbG9zZWQnKSB7CisgICAgICAvLyBHdWFyZCBhZ2FpbnN0IGFscmVhZHkg
Y2xvc2VkIHBlZXJjb25uZWN0aW9uIHRvCisgICAgICAvLyBhdm9pZCB1bnJlbGF0ZWQgZXhjZXB0
aW9ucy4KKyAgICAgIGlmIChyZW1vdGVQYy5zaWduYWxpbmdTdGF0ZSAhPT0gJ2Nsb3NlZCcpIHsK
ICAgICAgICAgcmVtb3RlUGMuYWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7CiAgICAgICB9CiAg
ICAgfSk7CkBAIC0yNDIsOCArMjQwLDcgQEAgYXN5bmMgZnVuY3Rpb24gd2FpdEZvckljZUdhdGhl
cmluZ1N0YXRlKHBjLCB3YW50ZWRTdGF0ZXMpIHsKIGFzeW5jIGZ1bmN0aW9uIGxpc3RlbkZvclNT
UkNzKHQsIHJlY2VpdmVyKSB7CiAgIHdoaWxlICh0cnVlKSB7CiAgICAgY29uc3Qgc3NyY3MgPSBy
ZWNlaXZlci5nZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCk7Ci0gICAgYXNzZXJ0X3RydWUoQXJy
YXkuaXNBcnJheShzc3JjcykpOwotICAgIGlmIChzc3Jjcy5sZW5ndGggPiAwKSB7CisgICAgaWYg
KEFycmF5LmlzQXJyYXkoc3NyY3MpICYmIHNzcmNzLmxlbmd0aCA+IDApIHsKICAgICAgIHJldHVy
biBzc3JjczsKICAgICB9CiAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91
dChyLCAwKSk7CkBAIC00MTAsNiArNDA3LDE1IEBAIGNvbnN0IHRyYWNrRmFjdG9yaWVzID0gewog
ICAgICAgY3R4LmZpbGxTdHlsZSA9IGByZ2IoJHtjb3VudCUyNTV9LCAke2NvdW50KmNvdW50JTI1
NX0sICR7Y291bnQlMjU1fSlgOwogICAgICAgY291bnQgKz0gMTsKICAgICAgIGN0eC5maWxsUmVj
dCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgIC8vIEFkZCBzb21lIGJvdW5jaW5nIGJveGVz
IGluIGNvbnRyYXN0IGNvbG9yIHRvIGFkZCBhIGxpdHRsZSBtb3JlIG5vaXNlLgorICAgICAgY29u
c3QgY29udHJhc3QgPSBjb3VudCArIDEyODsKKyAgICAgIGN0eC5maWxsU3R5bGUgPSBgcmdiKCR7
Y29udHJhc3QlMjU1fSwgJHtjb250cmFzdCpjb250cmFzdCUyNTV9LCAke2NvbnRyYXN0JTI1NX0p
YDsKKyAgICAgIGNvbnN0IHhwb3MgPSBjb3VudCAlICh3aWR0aCAtIDIwKTsKKyAgICAgIGNvbnN0
IHlwb3MgPSBjb3VudCAlIChoZWlnaHQgLSAyMCk7CisgICAgICBjdHguZmlsbFJlY3QoeHBvcywg
eXBvcywgeHBvcyArIDIwLCB5cG9zICsgMjApOworICAgICAgY29uc3QgeHBvczIgPSAoY291bnQg
KyB3aWR0aCAvIDIpICUgKHdpZHRoIC0gMjApOworICAgICAgY29uc3QgeXBvczIgPSAoY291bnQg
KyBoZWlnaHQgLyAyKSAlIChoZWlnaHQgLSAyMCk7CisgICAgICBjdHguZmlsbFJlY3QoeHBvczIs
IHlwb3MyLCB4cG9zMiArIDIwLCB5cG9zMiArIDIwKTsKICAgICAgIC8vIElmIHNpZ25hbCBpcyBz
ZXQgKDAtMjU1KSwgYWRkIGEgY29uc3RhbnQtY29sb3IgYm94IG9mIHRoYXQgbHVtaW5hbmNlIHRv
CiAgICAgICAvLyB0aGUgdmlkZW8gZnJhbWUgYXQgY29vcmRpbmF0ZXMgMjAgdG8gNjAgaW4gYm90
aCBYIGFuZCBZIGRpcmVjdGlvbi4KICAgICAgIC8vIChiaWcgZW5vdWdoIHRvIGF2b2lkIGNvbG9y
IGJsZWVkIGZyb20gc3Vycm91bmRpbmcgdmlkZW8gaW4gc29tZSBjb2RlY3MsCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24taWNlQ29ubmVjdGlvblN0YXRlLWV4cGVjdGVkLnR4dAppbmRleCBiMDUyMDExYTY0ZWQxZjAy
MzQwMTgzMzk4YmRhNTVmYjgyNmU3ODQyLi43MWVmNzg2MTVmNDZkYjExMzg1ODRlNzVjODJjZTAy
OGFiM2MzZmFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSw0IEBACiAKIFBBU1MgSW5pdGlhbCBpY2VDb25uZWN0aW9uU3RhdGUgc2hv
dWxkIGJlIG5ldwotRkFJTCBjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQg
ZXZlbnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlIHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdwYzEuc2N0cC50cmFuc3BvcnQnKQorRkFJTCBjb25u
ZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQgZXZlbnR1YWxseSBoYXZlIGNvbm5l
Y3RlZCBjb25uZWN0aW9uIHN0YXRlIENhbid0IGZpbmQgdmFyaWFibGU6IGRvU2lnbmFsaW5nSGFu
ZHNoYWtlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA3MTAz
M2EzYzllZmY2ZTViODQ4NTMxMTI3YzFiNzBlZTkwYmIyMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odG1sCkBAIC0wLDAgKzEsMTg3IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rp
b24ucHJvdG90eXBlLmljZUNvbm5lY3Rpb25TdGF0ZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNv
bm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsK
KworICAvLyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgorICAv
LyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXBjL2FyY2hpdmVzLzIwMTcwNjA1L3dlYnJ0
Yy5odG1sCisKKyAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQg
ZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6CisgIC8vIGV4Y2hhbmdlSWNlQ2FuZGlk
YXRlcworICAvLyBkb1NpZ25hbGluZ0hhbmRzaGFrZQorCisgIC8qCisgICAgNC4zLjIuICBJbnRl
cmZhY2UgRGVmaW5pdGlvbgorICAgICAgaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uIDogRXZl
bnRUYXJnZXQgeworICAgICAgICAuLi4KKyAgICAgICAgcmVhZG9ubHkgIGF0dHJpYnV0ZSBSVENJ
Y2VDb25uZWN0aW9uU3RhdGUgIGljZUNvbm5lY3Rpb25TdGF0ZTsKKyAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAgICAgIG9uaWNlY29ubmVjdGlvbnN0YXRlY2hh
bmdlOworICAgICAgfTsKKworICAgIDQuNC40IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSBFbnVtCisg
ICAgICBlbnVtIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSB7CisgICAgICAgICJuZXciLAorICAgICAg
ICAiY2hlY2tpbmciLAorICAgICAgICAiY29ubmVjdGVkIiwKKyAgICAgICAgImNvbXBsZXRlZCIs
CisgICAgICAgICJmYWlsZWQiLAorICAgICAgICAiZGlzY29ubmVjdGVkIiwKKyAgICAgICAgImNs
b3NlZCIKKyAgICAgIH07CisKKyAgICA1LjYuICBSVENJY2VUcmFuc3BvcnQgSW50ZXJmYWNlCisg
ICAgICBpbnRlcmZhY2UgUlRDSWNlVHJhbnNwb3J0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFJUQ0ljZVRyYW5zcG9ydFN0YXRlIHN0YXRlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyICAgICAgICAgb25zdGF0ZWNoYW5nZTsKKworICAgICAgICAuLi4KKyAg
ICAgIH07CisKKyAgICAgIGVudW0gUlRDSWNlVHJhbnNwb3J0U3RhdGUgeworICAgICAgICAibmV3
IiwKKyAgICAgICAgImNoZWNraW5nIiwKKyAgICAgICAgImNvbm5lY3RlZCIsCisgICAgICAgICJj
b21wbGV0ZWQiLAorICAgICAgICAiZmFpbGVkIiwKKyAgICAgICAgImRpc2Nvbm5lY3RlZCIsCisg
ICAgICAgICJjbG9zZWQiCisgICAgICB9OworICAgKi8KKworICAvKgorICAgIDQuNC40IFJUQ0lj
ZUNvbm5lY3Rpb25TdGF0ZSBFbnVtCisgICAgICBuZXcKKyAgICAgICAgQW55IG9mIHRoZSBSVENJ
Y2VUcmFuc3BvcnRzIGFyZSBpbiB0aGUgbmV3IHN0YXRlIGFuZCBub25lIG9mIHRoZW0KKyAgICAg
ICAgYXJlIGluIHRoZSBjaGVja2luZywgZmFpbGVkIG9yIGRpc2Nvbm5lY3RlZCBzdGF0ZSwgb3Ig
YWxsCisgICAgICAgIFJUQ0ljZVRyYW5zcG9ydCBzIGFyZSBpbiB0aGUgY2xvc2VkIHN0YXRlLgor
ICAgKi8KKyAgdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIGFzc2VydF9lcXVhbHMocGMuaWNlQ29ubmVjdGlvblN0YXRlLCAnbmV3Jyk7Cisg
IH0sICdJbml0aWFsIGljZUNvbm5lY3Rpb25TdGF0ZSBzaG91bGQgYmUgbmV3Jyk7CisKKyAgLyoK
KyAgICA0LjQuNCBSVENJY2VDb25uZWN0aW9uU3RhdGUgRW51bQorICAgICAgY2hlY2tpbmcKKyAg
ICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3BvcnQgcyBhcmUgaW4gdGhlIGNoZWNraW5nIHN0
YXRlIGFuZCBub25lIG9mCisgICAgICAgIHRoZW0gYXJlIGluIHRoZSBmYWlsZWQgb3IgZGlzY29u
bmVjdGVkIHN0YXRlLgorCisgICAgICBjb25uZWN0ZWQKKyAgICAgICAgQWxsIFJUQ0ljZVRyYW5z
cG9ydCBzIGFyZSBpbiB0aGUgY29ubmVjdGVkLCBjb21wbGV0ZWQgb3IgY2xvc2VkIHN0YXRlCisg
ICAgICAgIGFuZCBhdCBsZWFzdCBvbmUgb2YgdGhlbSBpcyBpbiB0aGUgY29ubmVjdGVkIHN0YXRl
LgorCisgICAgICBjb21wbGV0ZWQKKyAgICAgICAgQWxsIFJUQ0ljZVRyYW5zcG9ydCBzIGFyZSBp
biB0aGUgY29tcGxldGVkIG9yIGNsb3NlZCBzdGF0ZSBhbmQgYXQgbGVhc3QKKyAgICAgICAgb25l
IG9mIHRoZW0gaXMgaW4gdGhlIGNvbXBsZXRlZCBzdGF0ZS4KKworICAgICAgY2hlY2tpbmcKKyAg
ICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgcmVjZWl2ZWQgYXQgbGVhc3Qgb25lIHJlbW90
ZSBjYW5kaWRhdGUgYW5kCisgICAgICAgIGlzIGNoZWNraW5nIGNhbmRpZGF0ZSBwYWlycyBhbmQg
aGFzIGVpdGhlciBub3QgeWV0IGZvdW5kIGEgY29ubmVjdGlvbgorICAgICAgICBvciBjb25zZW50
IGNoZWNrcyBbUkZDNzY3NV0gaGF2ZSBmYWlsZWQgb24gYWxsIHByZXZpb3VzbHkgc3VjY2Vzc2Z1
bAorICAgICAgICBjYW5kaWRhdGUgcGFpcnMuIEluIGFkZGl0aW9uIHRvIGNoZWNraW5nLCBpdCBt
YXkgYWxzbyBzdGlsbCBiZSBnYXRoZXJpbmcuCisKKyAgICA1LjYuICBlbnVtIFJUQ0ljZVRyYW5z
cG9ydFN0YXRlCisgICAgICBjb25uZWN0ZWQKKyAgICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9ydCBo
YXMgZm91bmQgYSB1c2FibGUgY29ubmVjdGlvbiwgYnV0IGlzIHN0aWxsCisgICAgICAgIGNoZWNr
aW5nIG90aGVyIGNhbmRpZGF0ZSBwYWlycyB0byBzZWUgaWYgdGhlcmUgaXMgYSBiZXR0ZXIgY29u
bmVjdGlvbi4KKyAgICAgICAgSXQgbWF5IGFsc28gc3RpbGwgYmUgZ2F0aGVyaW5nIGFuZC9vciB3
YWl0aW5nIGZvciBhZGRpdGlvbmFsIHJlbW90ZQorICAgICAgICBjYW5kaWRhdGVzLiBJZiBjb25z
ZW50IGNoZWNrcyBbUkZDNzY3NV0gZmFpbCBvbiB0aGUgY29ubmVjdGlvbiBpbiB1c2UsCisgICAg
ICAgIGFuZCB0aGVyZSBhcmUgbm8gb3RoZXIgc3VjY2Vzc2Z1bCBjYW5kaWRhdGUgcGFpcnMgYXZh
aWxhYmxlLCB0aGVuIHRoZQorICAgICAgICBzdGF0ZSB0cmFuc2l0aW9ucyB0byAiY2hlY2tpbmci
IChpZiB0aGVyZSBhcmUgY2FuZGlkYXRlIHBhaXJzIHJlbWFpbmluZworICAgICAgICB0byBiZSBj
aGVja2VkKSBvciAiZGlzY29ubmVjdGVkIiAoaWYgdGhlcmUgYXJlIG5vIGNhbmRpZGF0ZSBwYWly
cyB0bworICAgICAgICBjaGVjaywgYnV0IHRoZSBwZWVyIGlzIHN0aWxsIGdhdGhlcmluZyBhbmQv
b3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbAorICAgICAgICByZW1vdGUgY2FuZGlkYXRlcykuCisK
KyAgICAgIGNvbXBsZXRlZAorICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBmaW5pc2hl
ZCBnYXRoZXJpbmcsIHJlY2VpdmVkIGFuIGluZGljYXRpb24gdGhhdAorICAgICAgICB0aGVyZSBh
cmUgbm8gbW9yZSByZW1vdGUgY2FuZGlkYXRlcywgZmluaXNoZWQgY2hlY2tpbmcgYWxsIGNhbmRp
ZGF0ZQorICAgICAgICBwYWlycyBhbmQgZm91bmQgYSBjb25uZWN0aW9uLiBJZiBjb25zZW50IGNo
ZWNrcyBbUkZDNzY3NV0gc3Vic2VxdWVudGx5CisgICAgICAgIGZhaWwgb24gYWxsIHN1Y2Nlc3Nm
dWwgY2FuZGlkYXRlIHBhaXJzLCB0aGUgc3RhdGUgdHJhbnNpdGlvbnMgdG8gImZhaWxlZCIuCisg
ICAqLworICBhc3luY190ZXN0KHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNv
bnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBvbkljZUNvbm5lY3Rpb25TdGF0ZUNoYW5n
ZSA9IHQuc3RlcF9mdW5jKCgpID0+IHsKKyAgICAgIGNvbnN0IHsgaWNlQ29ubmVjdGlvblN0YXRl
IH0gPSBwYzE7CisKKyAgICAgIGlmKGljZUNvbm5lY3Rpb25TdGF0ZSA9PT0gJ2NoZWNraW5nJykg
eworICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBwYzEuc2N0cC50cmFuc3BvcnQudHJhbnNw
b3J0OworCisgICAgICAgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LnN0YXRlLCAnY2hlY2tp
bmcnLAorICAgICAgICAgICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBpbiBjaGVja2luZyBz
dGF0ZSB3aGVuIGljZUNvbm5lY3Rpb25TdGF0ZSBpcyBjaGVja2luZycpOworCisgICAgICB9IGVs
c2UgaWYoaWNlQ29ubmVjdGlvblN0YXRlID09PSAnY29ubmVjdGVkJykgeworICAgICAgICBjb25z
dCBpY2VUcmFuc3BvcnQgPSBwYzEuc2N0cC50cmFuc3BvcnQudHJhbnNwb3J0OworCisgICAgICAg
IGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LnN0YXRlLCAnY29ubmVjdGVkJywKKyAgICAgICAg
ICAnRXhwZWN0IElDRSB0cmFuc3BvcnQgdG8gYmUgaW4gY29ubmVjdGVkIHN0YXRlIHdoZW4gaWNl
Q29ubmVjdGlvblN0YXRlIGlzIGNvbm5lY3RlZCcpOworCisgICAgICB9IGVsc2UgaWYoaWNlQ29u
bmVjdGlvblN0YXRlID09PSAnY29tcGxldGVkJykgeworICAgICAgICBjb25zdCBpY2VUcmFuc3Bv
cnQgPSBwYzEuc2N0cC50cmFuc3BvcnQudHJhbnNwb3J0OworCisgICAgICAgIGFzc2VydF9lcXVh
bHMoaWNlVHJhbnNwb3J0LnN0YXRlLCAnY29tcGxldGVkJywKKyAgICAgICAgICAnRXhwZWN0IElD
RSB0cmFuc3BvcnQgdG8gYmUgaW4gY29ubmVjdGVkIHN0YXRlIHdoZW4gaWNlQ29ubmVjdGlvblN0
YXRlIGlzIGNvbXBsZXRlZCcpOworICAgICAgfQorICAgIH0pOworCisgICAgcGMxLmNyZWF0ZURh
dGFDaGFubmVsKCd0ZXN0Jyk7CisKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5vbmljZWNvbm5lY3Rp
b25zdGF0ZWNoYW5nZSwgbnVsbCwKKyAgICAgICdFeHBlY3QgY29ubmVjdGlvbiB0byBoYXZlIGlj
ZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSBldmVudCcpOworCisgICAgcGMxLmFkZEV2ZW50TGlzdGVu
ZXIoJ2ljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZScsIG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdl
KTsKKworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgICAgZG9TaWduYWxp
bmdIYW5kc2hha2UocGMxLCBwYzIpOworICB9LCAnY29ubmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNo
YW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSBjb25uZWN0ZWQgY29ubmVjdGlvbiBzdGF0ZScp
OworCisgIC8qCisgICAgVE9ETworICAgIDQuNC40IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSBFbnVt
CisgICAgICBmYWlsZWQKKyAgICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3BvcnQgcyBhcmUg
aW4gdGhlIGZhaWxlZCBzdGF0ZS4KKworICAgICAgZGlzY29ubmVjdGVkCisgICAgICAgIEFueSBv
ZiB0aGUgUlRDSWNlVHJhbnNwb3J0IHMgYXJlIGluIHRoZSBkaXNjb25uZWN0ZWQgc3RhdGUgYW5k
IG5vbmUgb2YKKyAgICAgICAgdGhlbSBhcmUgaW4gdGhlIGZhaWxlZCBzdGF0ZS4KKworICAgICAg
Y2xvc2VkCisgICAgICAgIFRoZSBSVENQZWVyQ29ubmVjdGlvbiBvYmplY3QncyBbWyBpc0Nsb3Nl
ZF1dIHNsb3QgaXMgdHJ1ZS4KKworICAgIDUuNi4gIGVudW0gUlRDSWNlVHJhbnNwb3J0U3RhdGUK
KyAgICAgIG5ldworICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGlzIGdhdGhlcmluZyBjYW5k
aWRhdGVzIGFuZC9vciB3YWl0aW5nIGZvcgorICAgICAgICByZW1vdGUgY2FuZGlkYXRlcyB0byBi
ZSBzdXBwbGllZCwgYW5kIGhhcyBub3QgeWV0IHN0YXJ0ZWQgY2hlY2tpbmcuCisKKyAgICAgIGZh
aWxlZAorICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBmaW5pc2hlZCBnYXRoZXJpbmcs
IHJlY2VpdmVkIGFuIGluZGljYXRpb24gdGhhdAorICAgICAgICB0aGVyZSBhcmUgbm8gbW9yZSBy
ZW1vdGUgY2FuZGlkYXRlcywgZmluaXNoZWQgY2hlY2tpbmcgYWxsIGNhbmRpZGF0ZSBwYWlycywK
KyAgICAgICAgYW5kIGFsbCBwYWlycyBoYXZlIGVpdGhlciBmYWlsZWQgY29ubmVjdGl2aXR5IGNo
ZWNrcyBvciBoYXZlIGxvc3QgY29uc2VudC4KKworICAgICAgZGlzY29ubmVjdGVkCisgICAgICAg
IFRoZSBJQ0UgQWdlbnQgaGFzIGRldGVybWluZWQgdGhhdCBjb25uZWN0aXZpdHkgaXMgY3VycmVu
dGx5IGxvc3QgZm9yIHRoaXMKKyAgICAgICAgUlRDSWNlVHJhbnNwb3J0IC4gVGhpcyBpcyBtb3Jl
IGFnZ3Jlc3NpdmUgdGhhbiBmYWlsZWQsIGFuZCBtYXkgdHJpZ2dlcgorICAgICAgICBpbnRlcm1p
dHRlbnRseSAoYW5kIHJlc29sdmUgaXRzZWxmIHdpdGhvdXQgYWN0aW9uKSBvbiBhIGZsYWt5IG5l
dHdvcmsuCisgICAgICAgIFRoZSB3YXkgdGhpcyBzdGF0ZSBpcyBkZXRlcm1pbmVkIGlzIGltcGxl
bWVudGF0aW9uIGRlcGVuZGVudC4KKworICAgICAgICBFeGFtcGxlcyBpbmNsdWRlOgorICAgICAg
ICAgIExvc2luZyB0aGUgbmV0d29yayBpbnRlcmZhY2UgZm9yIHRoZSBjb25uZWN0aW9uIGluIHVz
ZS4KKyAgICAgICAgICBSZXBlYXRlZGx5IGZhaWxpbmcgdG8gcmVjZWl2ZSBhIHJlc3BvbnNlIHRv
IFNUVU4gcmVxdWVzdHMuCisKKyAgICAgICAgQWx0ZXJuYXRpdmVseSwgdGhlIFJUQ0ljZVRyYW5z
cG9ydCBoYXMgZmluaXNoZWQgY2hlY2tpbmcgYWxsIGV4aXN0aW5nCisgICAgICAgIGNhbmRpZGF0
ZXMgcGFpcnMgYW5kIGZhaWxlZCB0byBmaW5kIGEgY29ubmVjdGlvbiAob3IgY29uc2VudCBjaGVj
a3MKKyAgICAgICAgW1JGQzc2NzVdIG9uY2Ugc3VjY2Vzc2Z1bCwgaGF2ZSBub3cgZmFpbGVkKSwg
YnV0IGl0IGlzIHN0aWxsIGdhdGhlcmluZworICAgICAgICBhbmQvb3Igd2FpdGluZyBmb3IgYWRk
aXRpb25hbCByZW1vdGUgY2FuZGlkYXRlcy4KKworICAgICAgY2xvc2VkCisgICAgICAgIFRoZSBS
VENJY2VUcmFuc3BvcnQgaGFzIHNodXQgZG93biBhbmQgaXMgbm8gbG9uZ2VyIHJlc3BvbmRpbmcg
dG8gU1RVTiByZXF1ZXN0cy4KKyAgICovCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1p
Y2VDb25uZWN0aW9uU3RhdGUuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDc5YWUyNjUwMzAwMDU4
OGJlZTA3ZWVmOTQ3YTAxYTZlYmRhMzljMmIuLmFlOTkxYjAyZTIxMzVjM2JiZTQyNWFhNzAzNzVj
NDg0MTQxNzQxZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5o
dHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMiwxMyArMiwxMyBAQAogUEFTUyBJbml0aWFsIGljZUNvbm5l
Y3Rpb25TdGF0ZSBzaG91bGQgYmUgbmV3CiBQQVNTIENsb3NpbmcgdGhlIGNvbm5lY3Rpb24gc2hv
dWxkIHNldCBpY2VDb25uZWN0aW9uU3RhdGUgdG8gY2xvc2VkCiBQQVNTIGNvbm5lY3Rpb24gd2l0
aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgY29ubmVjdGVkIG9yIGNv
bXBsZXRlZCBjb25uZWN0aW9uIHN0YXRlCi1GQUlMIGNvbm5lY3Rpb24gd2l0aCBvbmUgZGF0YSBj
aGFubmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgY29ubmVjdGVkIGNvbm5lY3Rpb24gc3RhdGUg
YXNzZXJ0X2VxdWFsczogRXhwZWN0IElDRSB0cmFuc3BvcnQgdG8gYmUgaW4gY2hlY2tpbmcgc3Rh
dGUgd2hlbiBpY2VDb25uZWN0aW9uU3RhdGUgaXMgY2hlY2tpbmcgZXhwZWN0ZWQgImNoZWNraW5n
IiBidXQgZ290ICJuZXciCitQQVNTIGNvbm5lY3Rpb24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNo
b3VsZCBldmVudHVhbGx5IGhhdmUgY29ubmVjdGVkIGNvbm5lY3Rpb24gc3RhdGUKIFBBU1MgY29u
bmVjdGlvbiB3aXRoIGF1ZGlvIHRyYWNrIHNob3VsZCBldmVudHVhbGx5IGhhdmUgY29ubmVjdGVk
IGNvbm5lY3Rpb24gc3RhdGUKIFBBU1MgY29ubmVjdGlvbiB3aXRoIGF1ZGlvIGFuZCB2aWRlbyB0
cmFja3Mgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSBjb25uZWN0ZWQgY29ubmVjdGlvbiBzdGF0ZQog
UEFTUyBJQ0UgY2FuIGNvbm5lY3QgaW4gYSByZWN2b25seSB1c2VjYXNlCi1GQUlMIGljZUNvbm5l
Y3Rpb25TdGF0ZSBjaGFuZ2VzIGF0IHRoZSByaWdodCB0aW1lLCB3aXRoIGJ1bmRsZSBwb2xpY3kg
YmFsYW5jZWQgYXNzZXJ0X2VxdWFsczogUEMuaWNlQ29ubmVjdGlvblN0YXRlOiBleHBlY3RlZCAi
Y29ubmVjdGVkIiBidXQgZ290ICJjaGVja2luZyIKK1BBU1MgaWNlQ29ubmVjdGlvblN0YXRlIGNo
YW5nZXMgYXQgdGhlIHJpZ2h0IHRpbWUsIHdpdGggYnVuZGxlIHBvbGljeSBiYWxhbmNlZAogUEFT
UyBpY2VDb25uZWN0aW9uU3RhdGUgY2hhbmdlcyBhdCB0aGUgcmlnaHQgdGltZSwgd2l0aCBidW5k
bGUgcG9saWN5IG1heC1idW5kbGUKLUZBSUwgaWNlQ29ubmVjdGlvblN0YXRlIGNoYW5nZXMgYXQg
dGhlIHJpZ2h0IHRpbWUsIHdpdGggYnVuZGxlIHBvbGljeSBtYXgtY29tcGF0IGFzc2VydF9lcXVh
bHM6IFBDLmljZUNvbm5lY3Rpb25TdGF0ZTogZXhwZWN0ZWQgImNvbm5lY3RlZCIgYnV0IGdvdCAi
Y2hlY2tpbmciCitQQVNTIGljZUNvbm5lY3Rpb25TdGF0ZSBjaGFuZ2VzIGF0IHRoZSByaWdodCB0
aW1lLCB3aXRoIGJ1bmRsZSBwb2xpY3kgbWF4LWNvbXBhdAogUEFTUyBSZXNwb25kZXIgSUNFIGNv
bm5lY3Rpb24gc3RhdGUgYmVoYXZlcyBhcyBleHBlY3RlZAogUEFTUyBDbG9zaW5nIGEgUGVlckNv
bm5lY3Rpb24gc2hvdWxkIG5vdCBmaXJlIGljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSBldmVudAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sCmluZGV4IDMyMGIwM2Rm
YzgwZjhlN2U0YTIwZDllMjQzYjljYzg3Yzg4ODgxYzcuLjUwODNiZTZjZGZkMTZmNWMyYzY3YTgw
YTdkYmM5YzI0MDFmMWEwYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25T
dGF0ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odHRw
cy5odG1sCkBAIC0zMjAsMTUgKzMyMCwxMSBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwogICBjb25zdCBwYzIgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0g
IHBjMS5vbmljZWNhbmRpZGF0ZSA9IGFzeW5jIGUgPT4gewotICAgIGlmIChlLmNhbmRpZGF0ZSkg
ewotICAgICAgYXdhaXQgcGMyLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7Ci0gICAgfQot
ICB9OworICBwYzEub25pY2VjYW5kaWRhdGUgPSBlID0+IHBjMi5hZGRJY2VDYW5kaWRhdGUoZS5j
YW5kaWRhdGUpOwogICBwYzEuY2FuZGlkYXRlQnVmZmVyID0gW107CiAgIHBjMi5vbmljZWNhbmRp
ZGF0ZSA9IGUgPT4gewogICAgIC8vIERvbid0IGFkZCBjYW5kaWRhdGUgaWYgY2FuZGlkYXRlIGJ1
ZmZlciBpcyBhbHJlYWR5IHVzZWQKLSAgICBpZiAoZS5jYW5kaWRhdGUgJiYgcGMxLmNhbmRpZGF0
ZUJ1ZmZlcikgeworICAgIGlmIChwYzEuY2FuZGlkYXRlQnVmZmVyKSB7CiAgICAgICBwYzEuY2Fu
ZGlkYXRlQnVmZmVyLnB1c2goZS5jYW5kaWRhdGUpCiAgICAgfQogICB9OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
aWNlR2F0aGVyaW5nU3RhdGUtZXhwZWN0ZWQudHh0CmluZGV4IGE5YTBhZmI3ZmYxMWE0YWNmZDQx
ZDU5N2Y0NTQ1ZjFmMWRlZGQyNzIuLjEyYTRkYTlmYjAyZjQ5ZDUzZGZkNTU5ZjU1MzFjYTE2MzFh
MzE0NTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS1leHBlY3RlZC50eHQKQEAg
LTUsNiArNSw2IEBAIFBBU1Mgc2V0TG9jYWxEZXNjcmlwdGlvbihyZW9mZmVyKSB3aXRoIG5vIG5l
dyB0cmFuc3BvcnRzIHNob3VsZCBub3QgY2F1c2UgaWNlR2F0CiBQQVNTIHNldExvY2FsRGVzY3Jp
cHRpb24oKSB3aXRoIG5vIHRyYW5zcG9ydHMgc2hvdWxkIG5vdCBjYXVzZSBpY2VHYXRoZXJpbmdT
dGF0ZSB0byBjaGFuZ2UKIFBBU1Mgc2V0TG9jYWxEZXNjcmlwdGlvbihyZW9mZmVyKSB3aXRoIGEg
bmV3IHRyYW5zcG9ydCBzaG91bGQgY2F1c2UgaWNlR2F0aGVyaW5nU3RhdGUgdG8gZ28gdG8gImNo
ZWNraW5nIiBhbmQgdGhlbiAiY29tcGxldGUiCiBQQVNTIHNSRCBkb2VzIG5vdCBjYXVzZSBJQ0Ug
Z2F0aGVyaW5nIHN0YXRlIGNoYW5nZXMKLUZBSUwgcmVuZWdvdGlhdGlvbiB0aGF0IGNsb3NlcyBh
bGwgdHJhbnNwb3J0cyBzaG91bGQgcmVzdWx0IGluIElDRSBnYXRoZXJpbmcgc3RhdGUgIm5ldyIg
YXNzZXJ0X2VxdWFsczogUEMxIHRyYW5zY2VpdmVycyBzaG91bGQgYmUgaW52aXNpYmxlIGFmdGVy
IG5lZ290aWF0aW9uIGV4cGVjdGVkIDAgYnV0IGdvdCAxCitGQUlMIHJlbmVnb3RpYXRpb24gdGhh
dCBjbG9zZXMgYWxsIHRyYW5zcG9ydHMgc2hvdWxkIHJlc3VsdCBpbiBJQ0UgZ2F0aGVyaW5nIHN0
YXRlICJuZXciIGFzc2VydF9lcXVhbHM6IFBDMiB0cmFuc2NlaXZlcnMgc2hvdWxkIGJlIGludmlz
aWJsZSBhZnRlciBuZWdvdGlhdGlvbiBleHBlY3RlZCAwIGJ1dCBnb3QgMQogUEFTUyBjb25uZWN0
aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQgZXZlbnR1YWxseSBoYXZlIGNvbm5lY3Rl
ZCBjb25uZWN0aW9uIHN0YXRlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmlu
Z1N0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sCmluZGV4IDkz
M2EyMWNjNzVlZmNiMTQ5MDNhNTg2ZDk5MTYyNzhmZDBjOWY4MjYuLjZhZmFmMGZiZmJkMWRjMjEy
MDI3YTExN2M2ZWEzNmRkYmY5ZDhkMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhl
cmluZ1N0YXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbApA
QCAtMTEsNyArMTEsNyBAQAogICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXBjL2Fy
Y2hpdmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG1sCiAKICAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIg
ZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6Ci0g
IC8vIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIKKyAgLy8gZXhjaGFuZ2VBbnN3ZXIKICAgLy8gZXhjaGFu
Z2VJY2VDYW5kaWRhdGVzCiAgIC8vIGdlbmVyYXRlQXVkaW9SZWNlaXZlT25seU9mZmVyCiAKQEAg
LTUyLDYgKzUyLDggQEAKICAgICovCiAgIHRlc3QodCA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkp
OworCiAgICAgYXNzZXJ0X2VxdWFscyhwYy5pY2VHYXRoZXJpbmdTdGF0ZSwgJ25ldycpOwogICB9
LCAnSW5pdGlhbCBpY2VHYXRoZXJpbmdTdGF0ZSBzaG91bGQgYmUgbmV3Jyk7CiAKQEAgLTE2Niw3
ICsxNjgsMTIgQEAKICAgfSwgJ3JlbmVnb3RpYXRpb24gdGhhdCBjbG9zZXMgYWxsIHRyYW5zcG9y
dHMgc2hvdWxkIHJlc3VsdCBpbiBJQ0UgZ2F0aGVyaW5nIHN0YXRlICJuZXciJyk7CiAKICAgLyoK
LSAgICA0LjQuMi4gIFJUQ0ljZUdhdGhlcmluZ1N0YXRlIEVudW0KKyAgICA0LjMuMi4gIFJUQ0lj
ZUdhdGhlcmluZ1N0YXRlIEVudW0KKyAgICAgIG5ldworICAgICAgICBBbnkgb2YgdGhlIFJUQ0lj
ZVRyYW5zcG9ydHMgYXJlIGluIHRoZSAibmV3IiBnYXRoZXJpbmcgc3RhdGUgYW5kIG5vbmUKKyAg
ICAgICAgb2YgdGhlIHRyYW5zcG9ydHMgYXJlIGluIHRoZSAiZ2F0aGVyaW5nIiBzdGF0ZSwgb3Ig
dGhlcmUgYXJlIG5vCisgICAgICAgIHRyYW5zcG9ydHMuCisKICAgICAgIGdhdGhlcmluZwogICAg
ICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9ydCBzIGFyZSBpbiB0aGUgZ2F0aGVyaW5nIHN0
YXRlLgogCkBAIC0xODMsNyArMTkwLDcgQEAKICAgICAgICAgaW5kaWNhdGlvbiBmb3IgdGhpcyB0
cmFuc3BvcnQgaGFzIGJlZW4gc2VudC4gSXQgd2lsbCBub3QgZ2F0aGVyIGNhbmRpZGF0ZXMKICAg
ICAgICAgYWdhaW4gdW50aWwgYW4gSUNFIHJlc3RhcnQgY2F1c2VzIGl0IHRvIHJlc3RhcnQuCiAg
ICAqLwotICBhc3luY190ZXN0KHQgPT4geworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAg
ICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CkBAIC0xOTcsNyArMjA0LDcgQEAKICAgICAgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0g
cGMyLnNjdHAudHJhbnNwb3J0LmljZVRyYW5zcG9ydDsKIAogICAgICAgICBhc3NlcnRfZXF1YWxz
KGljZVRyYW5zcG9ydC5nYXRoZXJpbmdTdGF0ZSwgJ2dhdGhlcmluZycsCi0gICAgICAgICAgJ0V4
cGVjdCBJQ0UgdHJhbnNwb3J0IHRvIGJlIGluIGNoZWNraW5nIGdhdGhlcmluZ1N0YXRlIHdoZW4g
aWNlR2F0aGVyaW5nU3RhdGUgaXMgY2hlY2tpbmcnKTsKKyAgICAgICAgICAnRXhwZWN0IElDRSB0
cmFuc3BvcnQgdG8gYmUgaW4gZ2F0aGVyaW5nIGdhdGhlcmluZ1N0YXRlIHdoZW4gaWNlR2F0aGVy
aW5nU3RhdGUgaXMgZ2F0aGVyaW5nJyk7CiAKICAgICAgIH0gZWxzZSBpZihpY2VHYXRoZXJpbmdT
dGF0ZSA9PT0gJ2NvbXBsZXRlJykgewogICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBwYzIu
c2N0cC50cmFuc3BvcnQuaWNlVHJhbnNwb3J0OwpAQCAtMjExLDE3ICsyMTgsMjAgQEAKIAogICAg
IHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcpOwogCi0gICAgYXNzZXJ0X2VxdWFscyhwYzIu
b25pY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSwgbnVsbCwKLSAgICAgICdFeHBlY3QgY29ubmVjdGlv
biB0byBoYXZlIGljZWdhdGhlcmluZ3N0YXRlY2hhbmdlIGV2ZW50Jyk7Ci0KICAgICAvLyBTcGVj
IGJ1ZyB3M2Mvd2VicnRjLXBjIzEzODIKICAgICAvLyBCZWNhdXNlIHNjdHAgaXMgb25seSBkZWZp
bmVkIHdoZW4gYW5zd2VyIGlzIHNldCwgd2UgbGlzdGVuCiAgICAgLy8gdG8gcGMyIHNvIHRoYXQg
d2UgY2FuIGJlIGNvbmZpZGVudCB0aGF0IHNjdHAgaXMgZGVmaW5lZAogICAgIC8vIHdoZW4gaWNl
Z2F0aGVyaW5nc3RhdGVjaGFuZ2UgZXZlbnQgaXMgZmlyZWQuCiAgICAgcGMyLmFkZEV2ZW50TGlz
dGVuZXIoJ2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdlJywgb25JY2VHYXRoZXJpbmdTdGF0ZUNoYW5n
ZSk7CiAKKwogICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7Ci0gICAgZXhjaGFu
Z2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlw
dGlvbigpOworICAgIGFzc2VydF9lcXVhbHMocGMxLnNjdHAudHJhbnNwb3J0LmljZVRyYW5zcG9y
dC5nYXRoZXJpbmdTdGF0ZSwgJ25ldycpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlw
dGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgICBhd2FpdCBleGNoYW5nZUFuc3dlcihw
YzEsIHBjMik7CiAgIH0sICdjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQg
ZXZlbnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlJyk7CiAKICAgLyoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGFjZjQyZWNjMGIzYjZhZTlmZTk3NzI4YWNjMzhmMmFlYjU1YjBiOTIuLjM1ODg3M2I1ZjNi
MmQ0MTJmMzJlN2MzYzZmODdmYzk4OThjMDc2ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1h
bmRhdG9yeS1nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFu
ZGF0b3J5LWdldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtOSwyMiArOSwyOSBAQCBQQVNT
IFJUQ1JlY2VpdmVkUnRwU3RyZWFtU3RhdHMncyBwYWNrZXRzUmVjZWl2ZWQKIFBBU1MgUlRDUmVj
ZWl2ZWRSdHBTdHJlYW1TdGF0cydzIHBhY2tldHNMb3N0CiBQQVNTIFJUQ1JlY2VpdmVkUnRwU3Ry
ZWFtU3RhdHMncyBqaXR0ZXIKIEZBSUwgUlRDUmVjZWl2ZWRSdHBTdHJlYW1TdGF0cydzIHBhY2tl
dHNEaXNjYXJkZWQgYXNzZXJ0X3RydWU6IElzIHBhY2tldHNEaXNjYXJkZWQgcHJlc2VudCBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQotUEFTUyBSVENJbmJvdW5kUnRwU3RyZWFtU3RhdHMncyB0cmFj
a0lkCitGQUlMIFJUQ1JlY2VpdmVkUnRwU3RyZWFtU3RhdHMncyBmcmFtZXNEcm9wcGVkIGFzc2Vy
dF90cnVlOiBJcyBmcmFtZXNEcm9wcGVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
IEZBSUwgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgcmVjZWl2ZXJJZCBhc3NlcnRfdHJ1ZTog
SXMgcmVjZWl2ZXJJZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ0lu
Ym91bmRSdHBTdHJlYW1TdGF0cydzIHJlbW90ZUlkIGFzc2VydF90cnVlOiBJcyByZW1vdGVJZCBw
cmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIFJUQ0luYm91bmRSdHBTdHJlYW1T
dGF0cydzIGZyYW1lc0RlY29kZWQKK1BBU1MgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgbmFj
a0NvdW50CitQQVNTIFJUQ0luYm91bmRSdHBTdHJlYW1TdGF0cydzIGZyYW1lc1JlY2VpdmVkCitQ
QVNTIFJUQ0luYm91bmRSdHBTdHJlYW1TdGF0cydzIGJ5dGVzUmVjZWl2ZWQKK1BBU1MgUlRDSW5i
b3VuZFJ0cFN0cmVhbVN0YXRzJ3MgdG90YWxBdWRpb0VuZXJneQorUEFTUyBSVENJbmJvdW5kUnRw
U3RyZWFtU3RhdHMncyB0b3RhbFNhbXBsZXNEdXJhdGlvbgogRkFJTCBSVENSZW1vdGVJbmJvdW5k
UnRwU3RyZWFtU3RhdHMncyBsb2NhbElkIGFzc2VydF90cnVlOiBJcyBsb2NhbElkIHByZXNlbnQg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDUmVtb3RlSW5ib3VuZFJ0cFN0cmVhbVN0
YXRzJ3Mgcm91bmRUcmlwVGltZSBhc3NlcnRfdHJ1ZTogSXMgcm91bmRUcmlwVGltZSBwcmVzZW50
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1NlbnRSdHBTdHJlYW1TdGF0cydzIHBh
Y2tldHNTZW50IGFzc2VydF90cnVlOiBJcyBwYWNrZXRzU2VudCBwcmVzZW50IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCiBGQUlMIFJUQ1NlbnRSdHBTdHJlYW1TdGF0cydzIGJ5dGVzU2VudCBhc3Nl
cnRfdHJ1ZTogSXMgYnl0ZXNTZW50IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0cydzIHRyYWNrSWQgYXNzZXJ0X3RydWU6IElzIHRy
YWNrSWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENPdXRib3VuZFJ0
cFN0cmVhbVN0YXRzJ3Mgc2VuZGVySWQgYXNzZXJ0X3RydWU6IElzIHNlbmRlcklkIHByZXNlbnQg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0cydz
IHJlbW90ZUlkIGFzc2VydF90cnVlOiBJcyByZW1vdGVJZCBwcmVzZW50IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCiBGQUlMIFJUQ091dGJvdW5kUnRwU3RyZWFtU3RhdHMncyBmcmFtZXNFbmNvZGVk
IGFzc2VydF90cnVlOiBJcyBmcmFtZXNFbmNvZGVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK0ZBSUwgUlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0cydzIG5hY2tDb3VudCBhc3NlcnRf
dHJ1ZTogSXMgbmFja0NvdW50IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwg
UlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0cydzIGZyYW1lc1NlbnQgYXNzZXJ0X3RydWU6IElzIGZy
YW1lc1NlbnQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENSZW1vdGVP
dXRib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgbG9jYWxJZCBhc3NlcnRfdHJ1ZTogSXMgbG9jYWxJZCBw
cmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1JlbW90ZU91dGJvdW5kUnRw
U3RyZWFtU3RhdHMncyByZW1vdGVUaW1lc3RhbXAgYXNzZXJ0X3RydWU6IElzIHJlbW90ZVRpbWVz
dGFtcCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1BlZXJDb25uZWN0
aW9uU3RhdHMncyBkYXRhQ2hhbm5lbHNPcGVuZWQgYXNzZXJ0X3RydWU6IElzIGRhdGFDaGFubmVs
c09wZW5lZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1BlZXJDb25u
ZWN0aW9uU3RhdHMncyBkYXRhQ2hhbm5lbHNDbG9zZWQgYXNzZXJ0X3RydWU6IElzIGRhdGFDaGFu
bmVsc0Nsb3NlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFJUQ0RhdGFD
aGFubmVsU3RhdHMncyBsYWJlbAogUEFTUyBSVENEYXRhQ2hhbm5lbFN0YXRzJ3MgcHJvdG9jb2wK
IEZBSUwgUlRDRGF0YUNoYW5uZWxTdGF0cydzIGRhdGFDaGFubmVsSWRlbnRpZmllciBhc3NlcnRf
dHJ1ZTogSXMgZGF0YUNoYW5uZWxJZGVudGlmaWVyIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKIFBBU1MgUlRDRGF0YUNoYW5uZWxTdGF0cydzIHN0YXRlCkBAIC0zMiwyOCArMzksMjEg
QEAgUEFTUyBSVENEYXRhQ2hhbm5lbFN0YXRzJ3MgbWVzc2FnZXNTZW50CiBQQVNTIFJUQ0RhdGFD
aGFubmVsU3RhdHMncyBieXRlc1NlbnQKIFBBU1MgUlRDRGF0YUNoYW5uZWxTdGF0cydzIG1lc3Nh
Z2VzUmVjZWl2ZWQKIFBBU1MgUlRDRGF0YUNoYW5uZWxTdGF0cydzIGJ5dGVzUmVjZWl2ZWQKLUZB
SUwgUlRDTWVkaWFTdHJlYW1TdGF0cydzIHN0cmVhbUlkZW50aWZlciBhc3NlcnRfdHJ1ZTogSXMg
c3RyZWFtSWRlbnRpZmVyIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUlRD
TWVkaWFTdHJlYW1TdGF0cydzIHRyYWNrSWRzIGFzc2VydF90cnVlOiBJcyB0cmFja0lkcyBwcmVz
ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFJUQ01lZGlhU291cmNlU3RhdHMncyB0
cmFja0lkZW50aWZpZXIKK1BBU1MgUlRDTWVkaWFTb3VyY2VTdGF0cydzIGtpbmQKK0ZBSUwgUlRD
QXVkaW9Tb3VyY2VTdGF0cydzIHRvdGFsQXVkaW9FbmVyZ3kgYXNzZXJ0X3RydWU6IElzIHRvdGFs
QXVkaW9FbmVyZ3kgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBSVENBdWRp
b1NvdXJjZVN0YXRzJ3MgdG90YWxTYW1wbGVzRHVyYXRpb24gYXNzZXJ0X3RydWU6IElzIHRvdGFs
U2FtcGxlc0R1cmF0aW9uIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUlRD
VmlkZW9Tb3VyY2VTdGF0cydzIHdpZHRoIGFzc2VydF90cnVlOiBJcyB3aWR0aCBwcmVzZW50IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFJUQ1ZpZGVvU291cmNlU3RhdHMncyBoZWlnaHQg
YXNzZXJ0X3RydWU6IElzIGhlaWdodCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitG
QUlMIFJUQ1ZpZGVvU291cmNlU3RhdHMncyBmcmFtZXNQZXJTZWNvbmQgYXNzZXJ0X3RydWU6IElz
IGZyYW1lc1BlclNlY29uZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJU
Q01lZGlhSGFuZGxlclN0YXRzJ3MgdHJhY2tJZGVudGlmaWVyIGFzc2VydF90cnVlOiBJcyB0cmFj
a0lkZW50aWZpZXIgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSVENNZWRp
YUhhbmRsZXJTdGF0cydzIHJlbW90ZVNvdXJjZSBhc3NlcnRfdHJ1ZTogSXMgcmVtb3RlU291cmNl
IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUlRDTWVkaWFIYW5kbGVyU3Rh
dHMncyBlbmRlZCBhc3NlcnRfdHJ1ZTogSXMgZW5kZWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQotRkFJTCBSVENBdWRpb0hhbmRsZXJTdGF0cydzIGF1ZGlvTGV2ZWwgYXNzZXJ0X3Ry
dWU6IElzIGF1ZGlvTGV2ZWwgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBS
VENWaWRlb0hhbmRsZXJTdGF0cydzIGZyYW1lV2lkdGggYXNzZXJ0X3RydWU6IElzIGZyYW1lV2lk
dGggcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSVENWaWRlb0hhbmRsZXJT
dGF0cydzIGZyYW1lSGVpZ2h0IGFzc2VydF90cnVlOiBJcyBmcmFtZUhlaWdodCBwcmVzZW50IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJUQ1ZpZGVvSGFuZGxlclN0YXRzJ3MgZnJhbWVz
UGVyU2Vjb25kIGFzc2VydF90cnVlOiBJcyBmcmFtZXNQZXJTZWNvbmQgcHJlc2VudCBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSVENWaWRlb1NlbmRlclN0YXRzJ3MgZnJhbWVzU2VudCBh
c3NlcnRfdHJ1ZTogSXMgZnJhbWVzU2VudCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFJUQ1ZpZGVvUmVjZWl2ZXJTdGF0cydzIGZyYW1lc1JlY2VpdmVkIGFzc2VydF90cnVl
OiBJcyBmcmFtZXNSZWNlaXZlZCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFJUQ1ZpZGVvUmVjZWl2ZXJTdGF0cydzIGZyYW1lc0RlY29kZWQgYXNzZXJ0X3RydWU6IElzIGZy
YW1lc0RlY29kZWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSVENWaWRl
b1JlY2VpdmVyU3RhdHMncyBmcmFtZXNEcm9wcGVkIGFzc2VydF90cnVlOiBJcyBmcmFtZXNEcm9w
cGVkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUlRDVmlkZW9SZWNlaXZl
clN0YXRzJ3MgcGFydGlhbEZyYW1lc0xvc3QgYXNzZXJ0X3RydWU6IElzIHBhcnRpYWxGcmFtZXNM
b3N0IHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgUlRDQ29kZWNTdGF0cydz
IHBheWxvYWRUeXBlCi1GQUlMIFJUQ0NvZGVjU3RhdHMncyBjb2RlY1R5cGUgYXNzZXJ0X3RydWU6
IElzIGNvZGVjVHlwZSBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFJUQ0Nv
ZGVjU3RhdHMncyBtaW1lVHlwZQogUEFTUyBSVENDb2RlY1N0YXRzJ3MgY2xvY2tSYXRlCiBQQVNT
IFJUQ0NvZGVjU3RhdHMncyBjaGFubmVscwogUEFTUyBSVENDb2RlY1N0YXRzJ3Mgc2RwRm10cExp
bmUKIEZBSUwgUlRDVHJhbnNwb3J0U3RhdHMncyBieXRlc1NlbnQgYXNzZXJ0X3RydWU6IElzIGJ5
dGVzU2VudCBwcmVzZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFJUQ1RyYW5zcG9y
dFN0YXRzJ3MgYnl0ZXNSZWNlaXZlZCBhc3NlcnRfdHJ1ZTogSXMgYnl0ZXNSZWNlaXZlZCBwcmVz
ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJUQ1RyYW5zcG9ydFN0YXRzJ3MgcnRj
cFRyYW5zcG9ydFN0YXRzSWQgYXNzZXJ0X3RydWU6IElzIHJ0Y3BUcmFuc3BvcnRTdGF0c0lkIHBy
ZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDVHJhbnNwb3J0U3RhdHMncyBz
ZWxlY3RlZENhbmRpZGF0ZVBhaXJJZCBhc3NlcnRfdHJ1ZTogSXMgc2VsZWN0ZWRDYW5kaWRhdGVQ
YWlySWQgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBSVENUcmFuc3BvcnRT
dGF0cydzIGxvY2FsQ2VydGlmaWNhdGVJZCBhc3NlcnRfdHJ1ZTogSXMgbG9jYWxDZXJ0aWZpY2F0
ZUlkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgUlRDVHJhbnNwb3J0U3Rh
dHMncyByZW1vdGVDZXJ0aWZpY2F0ZUlkIGFzc2VydF90cnVlOiBJcyByZW1vdGVDZXJ0aWZpY2F0
ZUlkIHByZXNlbnQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKQEAgLTYxLDcgKzYxLDYgQEAgUEFT
UyBSVENJY2VDYW5kaWRhdGVQYWlyU3RhdHMncyB0cmFuc3BvcnRJZAogUEFTUyBSVENJY2VDYW5k
aWRhdGVQYWlyU3RhdHMncyBsb2NhbENhbmRpZGF0ZUlkCiBQQVNTIFJUQ0ljZUNhbmRpZGF0ZVBh
aXJTdGF0cydzIHJlbW90ZUNhbmRpZGF0ZUlkCiBQQVNTIFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0
cydzIHN0YXRlCi1QQVNTIFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0cydzIHByaW9yaXR5CiBQQVNT
IFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0cydzIG5vbWluYXRlZAogUEFTUyBSVENJY2VDYW5kaWRh
dGVQYWlyU3RhdHMncyBieXRlc1NlbnQKIFBBU1MgUlRDSWNlQ2FuZGlkYXRlUGFpclN0YXRzJ3Mg
Ynl0ZXNSZWNlaXZlZApAQCAtNzUsNSArNzQsNCBAQCBGQUlMIFJUQ0ljZUNhbmRpZGF0ZVN0YXRz
J3MgdXJsIGFzc2VydF90cnVlOiBJcyB1cmwgcHJlc2VudCBleHBlY3RlZCB0cnVlIGdvdCBmYQog
UEFTUyBSVENDZXJ0aWZpY2F0ZVN0YXRzJ3MgZmluZ2VycHJpbnQKIFBBU1MgUlRDQ2VydGlmaWNh
dGVTdGF0cydzIGZpbmdlcnByaW50QWxnb3JpdGhtCiBQQVNTIFJUQ0NlcnRpZmljYXRlU3RhdHMn
cyBiYXNlNjRDZXJ0aWZpY2F0ZQotRkFJTCBSVENDZXJ0aWZpY2F0ZVN0YXRzJ3MgaXNzdWVyQ2Vy
dGlmaWNhdGVJZCBhc3NlcnRfdHJ1ZTogSXMgaXNzdWVyQ2VydGlmaWNhdGVJZCBwcmVzZW50IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9y
eS1nZXRTdGF0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0
dHBzLmh0bWwKaW5kZXggN2RhMTRjZDVlMGYzZjVjN2U4MDdiNjFjYjBlN2VjYzcyMTZmZjAwNy4u
ZjgwZmE1ZmUxZjQ2NWNmOTQ2MzQ3ZjMwZDA2ZWY4YTkwNTJhZjQ1YyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
bWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWwKQEAgLTk1LDcgKzk1LDExIEBAIGNvbnN0IG1h
bmRhdG9yeSA9IHsKICAgXSwKICAgUlRDQ29kZWNTdGF0czogWwogICAgICJwYXlsb2FkVHlwZSIs
Ci0gICAgImNvZGVjVHlwZSIsCisgICAgLyogY29kZWNUeXBlIGlzIHBhcnQgb2YgTVRJIGJ1dCBp
cyBub3Qgc3lzdGVtYXRpY2FsbHkgc2V0CisgICAgICAgcGVyIGh0dHBzOi8vd3d3LnczLm9yZy9U
Ui93ZWJydGMtc3RhdHMvI2RvbS1ydGNjb2RlY3N0YXRzLWNvZGVjdHlwZQorICAgICAgIElmIHRo
ZSBkaWN0aW9uYXJ5IG1lbWJlciBpcyBub3QgcHJlc2VudCwgaXQgbWVhbnMgdGhhdAorICAgICAg
dGhpcyBtZWRpYSBmb3JtYXQgY2FuIGJlIGJvdGggZW5jb2RlZCBhbmQgZGVjb2RlZC4gKi8KKyAg
ICAvLyAiY29kZWNUeXBlIiwKICAgICAibWltZVR5cGUiLAogICAgICJjbG9ja1JhdGUiLAogICAg
ICJjaGFubmVscyIsCkBAIC0xMzAsNyArMTM0LDExIEBAIGNvbnN0IG1hbmRhdG9yeSA9IHsKICAg
ICAiZmluZ2VycHJpbnQiLAogICAgICJmaW5nZXJwcmludEFsZ29yaXRobSIsCiAgICAgImJhc2U2
NENlcnRpZmljYXRlIiwKLSAgICAiaXNzdWVyQ2VydGlmaWNhdGVJZCIsCisgICAgLyogaXNzdWVy
Q2VydGlmaWNhdGVJZCBpcyBwYXJ0IG9mIE1USSBidXQgaXMgbm90IHN5c3RlbWF0aWNhbGx5IHNl
dAorICAgICAgIHBlciBodHRwczovL3d3dy53My5vcmcvVFIvd2VicnRjLXN0YXRzLyNkb20tcnRj
Y2VydGlmaWNhdGVzdGF0cy1pc3N1ZXJjZXJ0aWZpY2F0ZWlkCisgICAgICAgSWYgdGhlIGN1cnJl
bnQgY2VydGlmaWNhdGUgaXMgYXQgdGhlIGVuZCBvZiB0aGUgY2hhaW4KKyAgICAgICAoaS5lLiBh
IHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlKSwgdGhpcyB3aWxsIG5vdCBiZSBzZXQuICovCisgICAg
Ly8gImlzc3VlckNlcnRpZmljYXRlSWQiLAogICBdLAogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcGVlcklkZW50aXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlZXJJZGVudGl0
eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI1YzA5NTFlMWNkNTEwYWY4YjA4ZjFmZDU5OGM5
YWNlM2RmNDBiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlZXJJZGVudGl0eS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitGQUlMIHNldFJlbW90ZURlc2NyaXB0aW9u
KCkgb24gb2ZmZXIgd2l0aCBhPWlkZW50aXR5IHNob3VsZCBlc3RhYmxpc2ggcGVlcklkZW50aXR5
IHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjMS5zZXRJ
ZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanMn
LAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAorICAgIH0pJywgJ3Bj
MS5zZXRJZGVudGl0eVByb3ZpZGVyJyBpcyB1bmRlZmluZWQpCitGQUlMIHNldFJlbW90ZURlc2Ny
aXB0aW9uKCkgb24gb2ZmZXIgd2l0aCBhPWlkZW50aXR5IHRoYXQgcmVzb2x2ZSB0byB2YWx1ZSBk
aWZmZXJlbnQgZnJvbSB0YXJnZXQgcGVlciBpZGVudGl0eSBzaG91bGQgcmVqZWN0IHdpdGggSW52
YWxpZE1vZGlmaWNhdGlvbkVycm9yIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ3BjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHBy
b3RvY29sOiAnbW9jay1pZHAuanMnLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBE
b21haW59YAorICAgIH0pJywgJ3BjMS5zZXRJZGVudGl0eVByb3ZpZGVyJyBpcyB1bmRlZmluZWQp
CitGQUlMIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgd2l0aCBwZWVySWRlbnRpdHkgc2V0IGFuZCB3
aXRoIElkUCBwcm94eSB0aGF0IHJldHVybiB2YWxpZGF0aW9uQXNzZXJ0aW9uIHdpdGggbWlzbWF0
Y2ggY29udGVudHMgc2hvdWxkIHJlamVjdCB3aXRoIE9wZXJhdGlvbkVycm9yIHVuZGVmaW5lZCBp
cyBub3QgYSBmdW5jdGlvbiAobmVhciAnLi4ucGMxLnNldElkZW50aXR5UHJvdmlkZXIuLi4nKQor
RkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIGFuZCBwZWVySWRlbnRpdHkgc2hvdWxkIHJlamVj
dCB3aXRoIE9wZXJhdGlvbkVycm9yIGlmIElkUCByZXR1cm4gdmFsaWRhdGVkIGlkZW50aXR5IHRo
YXQgaXMgZGlmZmVyZW50IGZyb20gaXRzIG93biBkb21haW4gcGMxLnNldElkZW50aXR5UHJvdmlk
ZXIgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMxLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9z
dDEsIHsKKyAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanMnLAorICAgICAgdXNlcm5hbWVIaW50
OiBgYWxpY2VAJHtpZHBEb21haW4yfWAKKyAgICB9KScsICdwYzEuc2V0SWRlbnRpdHlQcm92aWRl
cicgaXMgdW5kZWZpbmVkKQorRkFJTCBXaGVuIElkUCB0aHJvd3MgZXJyb3IgYW5kIHBjIGhhcyB0
YXJnZXQgcGVlciBpZGVudGl0eSwgc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBhbmQgcGVlcklkZW50
aXR5IHJlamVjdGVkIHdpdGggUlRDRXJyb3IoJ2lkcC1leGVjdXRpb24tZXJyb3InKSB1bmRlZmlu
ZWQgaXMgbm90IGEgZnVuY3Rpb24gKG5lYXIgJy4uLnBjMS5zZXRJZGVudGl0eVByb3ZpZGVyLi4u
JykKK0ZBSUwgSWRQIGZhaWx1cmUgd2l0aCBubyB0YXJnZXQgcGVlciBpZGVudGl0eSBzaG91bGQg
aGF2ZSBmb2xsb3dpbmcgc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBzdWNjZWVkIGFuZCByZXBsYWNl
IHBjLnBlZXJJZGVudGl0eSB3aXRoIGEgbmV3IHByb21pc2UgcGMxLnNldElkZW50aXR5UHJvdmlk
ZXIgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMxLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9z
dCwgeworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcz92YWxpZGF0b3JBY3Rpb249dGhyb3ct
ZXJyb3InLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAorICAgIH0p
JywgJ3BjMS5zZXRJZGVudGl0eVByb3ZpZGVyJyBpcyB1bmRlZmluZWQpCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXBlZXJJZGVudGl0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVlcklkZW50aXR5
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjRhZDIxMmE1YmE0ZTBjNmJmNTU4OWY0Y2RhM2E0YzdhNTA4Y2Rj
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlZXJJZGVudGl0eS5odG1sCkBAIC0w
LDAgKzEsMzM2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0
bGU+UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBlLnBlZXJJZGVudGl0eTwvdGl0bGU+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iaWRlbnRpdHktaGVscGVyLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAndXNlIHN0
cmljdCc7CisKKyAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBkcmFm
dDoKKyAgLy8gICBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXBjL2FyY2hpdmVzLzIwMTcw
NjA1L3dlYnJ0Yy5odG1sCisKKyAgLy8gVGhlIHRlc3RzIGhlcmUgaW50ZXJhY3RzIHdpdGggdGhl
IG1vY2sgaWRlbnRpdHkgcHJvdmlkZXIgbG9jYXRlZCBhdAorICAvLyAgIC8ud2VsbC1rbm93bi9p
ZHAtcHJveHkvbW9jay1pZHAuanMKKworICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlv
bnMgYXJlIGNhbGxlZCBmcm9tIGlkZW50aXR5LWhlbHBlci5zdWIuanMKKyAgLy8gICBwYXJzZUFz
c2VydGlvblJlc3VsdAorICAvLyAgIGdldElkcERvbWFpbnMKKyAgLy8gICBhc3NlcnRfcnRjZXJy
b3JfcmVqZWN0aW9uCisgIC8vICAgaG9zdFN0cmluZworCisgIC8qCisgICAgOS42LiAgUlRDUGVl
ckNvbm5lY3Rpb24gSW50ZXJmYWNlIEV4dGVuc2lvbnMKKyAgICAgIHBhcnRpYWwgaW50ZXJmYWNl
IFJUQ1BlZXJDb25uZWN0aW9uIHsKKyAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldElkZW50
aXR5UHJvdmlkZXIoRE9NU3RyaW5nIHByb3ZpZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBSVENJZGVudGl0eVByb3ZpZGVyT3B0aW9u
cyBvcHRpb25zKTsKKyAgICAgICAgUHJvbWlzZTxET01TdHJpbmc+IGdldElkZW50aXR5QXNzZXJ0
aW9uKCk7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPFJUQ0lkZW50aXR5QXNz
ZXJ0aW9uPiBwZWVySWRlbnRpdHk7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmc/ICAgICAgICAgICAgICAgICAgICBpZHBMb2dpblVybDsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZz8gICAgICAgICAgICAgICAgICAgIGlkcEVycm9ySW5mbzsKKyAgICAg
IH07CisKKyAgICAgIGRpY3Rpb25hcnkgUlRDSWRlbnRpdHlQcm92aWRlck9wdGlvbnMgeworICAg
ICAgICBET01TdHJpbmcgcHJvdG9jb2wgPSAiZGVmYXVsdCI7CisgICAgICAgIERPTVN0cmluZyB1
c2VybmFtZUhpbnQ7CisgICAgICAgIERPTVN0cmluZyBwZWVySWRlbnRpdHk7CisgICAgICB9Owor
CisgICAgICBbQ29uc3RydWN0b3IoRE9NU3RyaW5nIGlkcCwgRE9NU3RyaW5nIG5hbWUpXQorICAg
ICAgaW50ZXJmYWNlIFJUQ0lkZW50aXR5QXNzZXJ0aW9uIHsKKyAgICAgICAgYXR0cmlidXRlIERP
TVN0cmluZyBpZHA7CisgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgIH07
CisgICAqLworCisgIC8qCisgICAgNC4zLjIuIHNldFJlbW90ZURlc2NyaXB0aW9uCisgICAgICBJ
ZiBhbiBhPWlkZW50aXR5IGF0dHJpYnV0ZSBpcyBwcmVzZW50IGluIHRoZSBzZXNzaW9uIGRlc2Ny
aXB0aW9uLCB0aGUgYnJvd3NlcgorICAgICAgdmFsaWRhdGVzIHRoZSBpZGVudGl0eSBhc3NlcnRp
b24uLgorCisgICAgICBJZiB0aGUgInBlZXJJZGVudGl0eSIgY29uZmlndXJhdGlvbiBpcyBhcHBs
aWVkIHRvIHRoZSBSVENQZWVyQ29ubmVjdGlvbiwgdGhpcworICAgICAgZXN0YWJsaXNoZXMgYSB0
YXJnZXQgcGVlciBpZGVudGl0eSBvZiB0aGUgcHJvdmlkZWQgdmFsdWUuIEFsdGVybmF0aXZlbHks
IGlmIHRoZQorICAgICAgUlRDUGVlckNvbm5lY3Rpb24gaGFzIHByZXZpb3VzbHkgYXV0aGVudGlj
YXRlZCB0aGUgaWRlbnRpdHkgb2YgdGhlIHBlZXIgKHRoYXQKKyAgICAgIGlzLCB0aGVyZSBpcyBh
IGN1cnJlbnQgdmFsdWUgZm9yIHBlZXJJZGVudGl0eSApLCB0aGVuIHRoaXMgYWxzbyBlc3RhYmxp
c2hlcyBhCisgICAgICB0YXJnZXQgcGVlciBpZGVudGl0eS4KKyAgICovCisgIHByb21pc2VfdGVz
dCh0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkp
OworCisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtp
ZHBEb21haW5dID0gZ2V0SWRwRG9tYWlucygpOworICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3Ry
aW5nKGlkcERvbWFpbiwgcG9ydCk7CisKKyAgICBwYzEuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBI
b3N0LCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzJywKKyAgICAgIHVzZXJuYW1lSGlu
dDogYGFsaWNlQCR7aWRwRG9tYWlufWAKKyAgICB9KTsKKworICAgIHJldHVybiBwYzEuY3JlYXRl
T2ZmZXIoKQorICAgIC50aGVuKG9mZmVyID0+IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZl
cikpCisgICAgLnRoZW4oKCkgPT4gcGMyLnBlZXJJZGVudGl0eSkKKyAgICAudGhlbihpZGVudGl0
eUFzc2VydGlvbiA9PiB7CisgICAgICBjb25zdCB7IGlkcCwgbmFtZSB9ID0gaWRlbnRpdHlBc3Nl
cnRpb247CisgICAgICBhc3NlcnRfZXF1YWxzKGlkcCwgaWRwRG9tYWluLCBgRXhwZWN0IElkUCBk
b21haW4gdG8gYmUgJHtpZHBEb21haW59YCk7CisgICAgICBhc3NlcnRfZXF1YWxzKGlkZW50aXR5
QXNzZXJ0aW9uLCBgYWxpY2VAJHtpZHBEb21haW59YCwKKyAgICAgICAgYEV4cGVjdCB2YWxpZGF0
ZWQgaWRlbnRpdHkgZnJvbSBtb2NrLWlkcC5qcyB0byBiZSBzYW1lIGFzIHNwZWNpZmllZCBpbiB1
c2VybmFtZUhpbnRgKTsKKyAgICB9KTsKKyAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uKCkgb24g
b2ZmZXIgd2l0aCBhPWlkZW50aXR5IHNob3VsZCBlc3RhYmxpc2ggcGVlcklkZW50aXR5Jyk7CisK
KyAgLyoKKyAgICA0LjMuMi4gc2V0UmVtb3RlRGVzY3JpcHRpb24KKyAgICAgIFRoZSB0YXJnZXQg
cGVlciBpZGVudGl0eSBjYW5ub3QgYmUgY2hhbmdlZCBvbmNlIHNldC4gT25jZSBzZXQsIGlmIGEg
ZGlmZmVyZW50CisgICAgICB2YWx1ZSBpcyBwcm92aWRlZCwgdGhlIHVzZXIgYWdlbnQgTVVTVCBy
ZWplY3QgdGhlIHJldHVybmVkIHByb21pc2Ugd2l0aCBhIG5ld2x5CisgICAgICBjcmVhdGVkIElu
dmFsaWRNb2RpZmljYXRpb25FcnJvciBhbmQgYWJvcnQgdGhpcyBvcGVyYXRpb24uIFRoZSBSVENQ
ZWVyQ29ubmVjdGlvbgorICAgICAgTVVTVCBiZSBjbG9zZWQgaWYgdGhlIHZhbGlkYXRlZCBwZWVy
IGlkZW50aXR5IGRvZXMgbm90IG1hdGNoIHRoZSB0YXJnZXQgcGVlcgorICAgICAgaWRlbnRpdHku
CisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcG9ydCA9IHdpbmRvdy5s
b2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBEb21haW5dID0gZ2V0SWRwRG9tYWlucygpOwor
ICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCk7CisKKyAgICBj
b25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
eworICAgICAgcGVlcklkZW50aXR5OiBgYm9iQCR7aWRwRG9tYWlufWAKKyAgICB9KTsKKworICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLnNldElkZW50aXR5
UHJvdmlkZXIoaWRwSG9zdCwgeworICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcycsCisgICAg
ICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICByZXR1
cm4gcGMxLmNyZWF0ZU9mZmVyKCkKKyAgICAudGhlbihvZmZlciA9PgorICAgICAgcHJvbWlzZV9y
ZWplY3RzKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAorICAgICAgICBwYzIuc2V0UmVt
b3RlRGVzY3JpcHRpb24ob2ZmZXIpKSkKKyAgICAudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRf
dHJ1ZShwYzIuc2lnbmFsaW5nU3RhdGUsICdjbG9zZWQnLAorICAgICAgICAnRXhwZWN0IHBlZXIg
Y29ubmVjdGlvbiB0byBiZSBjbG9zZWQgYWZ0ZXIgbWlzbWF0Y2ggcGVlciBpZGVudGl0eScpOwor
ICAgIH0pOworICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBvbiBvZmZlciB3aXRoIGE9aWRl
bnRpdHkgdGhhdCByZXNvbHZlIHRvIHZhbHVlIGRpZmZlcmVudCBmcm9tIHRhcmdldCBwZWVyIGlk
ZW50aXR5IHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InKTsKKwor
ICAvKgorICAgIDkuNC4gIFZlcmlmeWluZyBJZGVudGl0eSBBc3NlcnRpb25zCisgICAgICA4LiAg
VGhlIFJUQ1BlZXJDb25uZWN0aW9uIGRlY29kZXMgdGhlIGNvbnRlbnRzIGFuZCB2YWxpZGF0ZXMg
dGhhdCBpdCBjb250YWlucyBhCisgICAgICAgICAgZmluZ2VycHJpbnQgdmFsdWUgZm9yIGV2ZXJ5
IGE9ZmluZ2VycHJpbnQgYXR0cmlidXRlIGluIHRoZSBzZXNzaW9uIGRlc2NyaXB0aW9uLgorICAg
ICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBjZXJ0aWZpY2F0ZSB1c2VkIGJ5IHRoZSByZW1v
dGUgcGVlciBmb3IgY29tbXVuaWNhdGlvbnMKKyAgICAgICAgICBpcyBjb3ZlcmVkIGJ5IHRoZSBp
ZGVudGl0eSBhc3NlcnRpb24uCisKKyAgICAgIElmIGlkZW50aXR5IHZhbGlkYXRpb24gZmFpbHMs
IHRoZSBwZWVySWRlbnRpdHkgcHJvbWlzZSBpcyByZWplY3RlZCB3aXRoIGEgbmV3bHkKKyAgICAg
IGNyZWF0ZWQgT3BlcmF0aW9uRXJyb3IuCisKKyAgICAgIElmIGlkZW50aXR5IHZhbGlkYXRpb24g
ZmFpbHMgYW5kIHRoZXJlIGlzIGEgdGFyZ2V0IHBlZXIgaWRlbnRpdHkgZm9yIHRoZQorICAgICAg
UlRDUGVlckNvbm5lY3Rpb24sIHRoZSBwcm9taXNlIHJldHVybmVkIGJ5IHNldFJlbW90ZURlc2Ny
aXB0aW9uIE1VU1QgYmUgcmVqZWN0ZWQKKyAgICAgIHdpdGggdGhlIHNhbWUgRE9NRXhjZXB0aW9u
LgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cu
bG9jYXRpb24ucG9ydDsKKyAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsK
KyAgICBjb25zdCBpZHBIb3N0ID0gaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpOworCisgICAg
Y29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KHsKKyAgICAgIHBlZXJJZGVudGl0eTogYGFsaWNlQCR7aWRwRG9tYWlufWAKKyAgICB9KTsKKwor
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgLy8gQXNrIG1vY2tp
ZHAuanMgdG8gcmV0dXJuIGN1c3RvbSBjb250ZW50cyBpbiB2YWxpZGF0aW9uIHJlc3VsdAorICAg
IHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKKyAgICAgIHByb3RvY29sOiAnbW9j
ay1pZHAuanM/dmFsaWRhdG9yQWN0aW9uPXJldHVybi1jdXN0b20tY29udGVudHMmY29udGVudHM9
Ym9ndXMnLAorICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAorICAgIH0p
OworCisgICAgY29uc3QgcGVlcklkZW50aXR5UHJvbWlzZSA9IHBjMi5wZWVySWRlbnRpdHk7CisK
KyAgICByZXR1cm4gcGMxLmNyZWF0ZU9mZmVyKCkKKyAgICAudGhlbihvZmZlciA9PiBQcm9taXNl
LmFsbChbCisgICAgICBwcm9taXNlX3JlamVjdHModCwgJ09wZXJhdGlvbkVycm9yJywKKyAgICAg
ICAgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSksCisgICAgICBwcm9taXNlX3JlamVj
dHModCwgJ09wZXJhdGlvbkVycm9yJywKKyAgICAgICAgcGVlcklkZW50aXR5UHJvbWlzZSkKKyAg
ICBdKSk7CisgIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbigpIHdpdGggcGVlcklkZW50aXR5IHNl
dCBhbmQgd2l0aCBJZFAgcHJveHkgdGhhdCByZXR1cm4gdmFsaWRhdGlvbkFzc2VydGlvbiB3aXRo
IG1pc21hdGNoIGNvbnRlbnRzIHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRpb25FcnJvcicpOwor
CisgIC8qCisgICAgOS40LiAgVmVyaWZ5aW5nIElkZW50aXR5IEFzc2VydGlvbnMKKyAgICAgIDku
ICBUaGUgUlRDUGVlckNvbm5lY3Rpb24gdmFsaWRhdGVzIHRoYXQgdGhlIGRvbWFpbiBwb3J0aW9u
IG9mIHRoZSBpZGVudGl0eSBtYXRjaGVzCisgICAgICAgICAgdGhlIGRvbWFpbiBvZiB0aGUgSWRQ
IGFzIGRlc2NyaWJlZCBpbiBbUlRDV0VCLVNFQ1VSSVRZLUFSQ0hdLiBJZiB0aGlzIGNoZWNrCisg
ICAgICAgICAgZmFpbHMgdGhlbiB0aGUgaWRlbnRpdHkgdmFsaWRhdGlvbiBmYWlscy4KKyAgICov
CisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9u
LnBvcnQ7CisgICAgY29uc3QgW2lkcERvbWFpbjEsIGlkcERvbWFpbjJdID0gZ2V0SWRwRG9tYWlu
cygpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKGlkcERvbWFpbjEsIGlkcERvbWFpbjIsCisgICAg
ICAnU2FuaXR5IGNoZWNrIHR3byBpZHBEb21haW5zIGFyZSBkaWZmZXJlbnQnKTsKKworICAgIGNv
bnN0IGlkcEhvc3QxID0gaG9zdFN0cmluZyhpZHBEb21haW4xLCBwb3J0KTsKKworICAgIGNvbnN0
IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7Cisg
ICAgICBwZWVySWRlbnRpdHk6IGBhbGljZUAke2lkcERvbWFpbjJ9YAorICAgIH0pOworCisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICAvLyBtb2NrLWlkcC5qcyB3
aWxsIHJldHVybiBhc3NlcnRpb24gb2YgZG9tYWluMiBpZGVudGl0eQorICAgIC8vIHdpdGggZG9t
YWluMSBpbiB0aGUgaWRwLmRvbWFpbiBmaWVsZAorICAgIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVy
KGlkcEhvc3QxLCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzJywKKyAgICAgIHVzZXJu
YW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWluMn1gCisgICAgfSk7CisKKyAgICByZXR1cm4gcGMx
LmdldElkZW50aXR5QXNzZXJ0aW9uKCkKKyAgICAudGhlbihhc3NlcnRpb25SZXN1bHRTdHIgPT4g
eworICAgICAgY29uc3QgeyBpZHAsIGFzc2VydGlvbiB9ID0gcGFyc2VBc3NlcnRpb25SZXN1bHQo
YXNzZXJ0aW9uUmVzdWx0U3RyKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhpZHAuZG9tYWluLCBp
ZHBEb21haW4xLAorICAgICAgICAnU2FuaXR5IGNoZWNrIGRvbWFpbiBvZiBhc3NlcnRpb24gaXMg
ZG9tYWluMScpOworCisgICAgICBhc3NlcnRfZXF1YWxzKGFzc2VydGlvbi5vcHRpb25zLnVzZXJu
YW1lSGludCwgYGFsaWNlQCR7aWRwRG9tYWluMn1gLAorICAgICAgICAnU2FuaXR5IGNoZWNrIGRv
bWFpbjEgaXMgZ29pbmcgdG8gdmFsaWRhdGUgYSBkb21haW4yIGlkZW50aXR5Jyk7CisKKyAgICAg
IHJldHVybiBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgICB9KQorICAgIC50aGVuKG9mZmVyID0+IFBy
b21pc2UuYWxsKFsKKyAgICAgIHByb21pc2VfcmVqZWN0cyh0LCAnT3BlcmF0aW9uRXJyb3InLAor
ICAgICAgICBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpKSwKKyAgICAgIHByb21pc2Vf
cmVqZWN0cyh0LCAnT3BlcmF0aW9uRXJyb3InLAorICAgICAgICBwYzIucGVlcklkZW50aXR5KQor
ICAgIF0pKTsKKyAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uKCkgYW5kIHBlZXJJZGVudGl0eSBz
aG91bGQgcmVqZWN0IHdpdGggT3BlcmF0aW9uRXJyb3IgaWYgSWRQIHJldHVybiB2YWxpZGF0ZWQg
aWRlbnRpdHkgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSBpdHMgb3duIGRvbWFpbicpOworCisgIC8q
CisgICAgOS40IFZlcmlmeWluZyBJZGVudGl0eSBBc3NlcnRpb25zCisgICAgICBJZiBpZGVudGl0
eSB2YWxpZGF0aW9uIGZhaWxzIGFuZCB0aGVyZSBpcyBhIHRhcmdldCBwZWVyIGlkZW50aXR5IGZv
ciB0aGUKKyAgICAgIFJUQ1BlZXJDb25uZWN0aW9uLCB0aGUgcHJvbWlzZSByZXR1cm5lZCBieSBz
ZXRSZW1vdGVEZXNjcmlwdGlvbiBNVVNUIGJlIHJlamVjdGVkCisgICAgICB3aXRoIHRoZSBzYW1l
IERPTUV4Y2VwdGlvbi4KKworICAgIDkuNSBJZFAgRXJyb3IgSGFuZGxpbmcKKyAgICAgIC0gSWYg
YW4gaWRlbnRpdHkgcHJvdmlkZXIgdGhyb3dzIGFuIGV4Y2VwdGlvbiBvciByZXR1cm5zIGEgcHJv
bWlzZSB0aGF0IGlzIHVsdGltYXRlbHkKKyAgICAgICAgcmVqZWN0ZWQsIHRoZW4gdGhlIHByb2Nl
ZHVyZSB0aGF0IGRlcGVuZHMgb24gdGhlIElkUCBNVVNUIGFsc28gZmFpbC4gVGhlc2UgdHlwZXMg
b2YKKyAgICAgICAgZXJyb3JzIHdpbGwgY2F1c2UgYW4gSWRQIGZhaWx1cmUgd2l0aCBhbiBSVENF
cnJvciB3aXRoIGVycm9yRGV0YWlsIHNldCB0bworICAgICAgICAiaWRwLWV4ZWN1dGlvbi1mYWls
dXJlIi4KKworICAgICAgQW55IGVycm9yIGdlbmVyYXRlZCBieSB0aGUgSWRQIE1BWSBwcm92aWRl
IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaW4gdGhlCisgICAgICBpZHBFcnJvckluZm8gYXR0cmli
dXRlLiBUaGUgaW5mb3JtYXRpb24gaW4gdGhpcyBzdHJpbmcgaXMgZGVmaW5lZCBieSB0aGUKKyAg
ICAgIElkUCBpbiB1c2UuCisgICAqLworICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3Qg
cG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBEb21haW5dID0gZ2V0
SWRwRG9tYWlucygpOworICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5nKGlkcERvbWFpbiwg
cG9ydCk7CisKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oeworICAgICAgcGVlcklkZW50aXR5OiBgYWxpY2VAJHtpZHBEb21haW59
YAorICAgIH0pOworCisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAg
ICAvLyBBc2sgbW9jay1pZHAuanMgdG8gdGhyb3cgZXJyb3IgZHVyaW5nIHZhbGlkYXRpb24sCisg
ICAgLy8gaS5lLiBkdXJpbmcgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKCkKKyAgICBwYzEuc2V0
SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDogJ21vY2staWRwLmpz
P3ZhbGlkYXRvckFjdGlvbj10aHJvdy1lcnJvciZlcnJvckluZm89YmFyJywKKyAgICAgIHVzZXJu
YW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAKKyAgICB9KTsKKworICAgIHJldHVybiBwYzEu
Y3JlYXRlT2ZmZXIoKQorICAgIC50aGVuKG9mZmVyID0+IFByb21pc2UuYWxsKFsKKyAgICAgIGFz
c2VydF9ydGNlcnJvcl9yZWplY3Rpb24oJ2lkcC1leGVjdXRpb24tZmFpbHVyZScsCisgICAgICAg
IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikpLAorICAgICAgYXNzZXJ0X3J0Y2Vycm9y
X3JlamVjdGlvbignaWRwLWV4ZWN1dGlvbi1mYWlsdXJlJywKKyAgICAgICAgcGMyLnBlZXJJZGVu
dGl0eSkKKyAgICBdKSkKKyAgICAudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHBj
Mi5pZHBFcnJvckluZm8sICdiYXInLAorICAgICAgICAnRXhwZWN0IHBjMi5pZHBFcnJvckluZm8g
dG8gYmUgc2V0IHRvIHRoZSBlcnIuaWRwRXJyb3JJbmZvIHRocm93biBieSBtb2NrLWlkcC5qcycp
OworICAgIH0pOworICB9LCBgV2hlbiBJZFAgdGhyb3dzIGVycm9yIGFuZCBwYyBoYXMgdGFyZ2V0
IHBlZXIgaWRlbnRpdHksIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgYW5kIHBlZXJJZGVudGl0eSBy
ZWplY3RlZCB3aXRoIFJUQ0Vycm9yKCdpZHAtZXhlY3V0aW9uLWVycm9yJylgKTsKKworICAvKgor
ICAgIDQuMy4yLiBzZXRSZW1vdGVEZXNjcmlwdGlvbgorICAgICAgSWYgdGhlcmUgaXMgbm8gdGFy
Z2V0IHBlZXIgaWRlbnRpdHksIHRoZW4gc2V0UmVtb3RlRGVzY3JpcHRpb24gZG9lcyBub3QgYXdh
aXQgdGhlCisgICAgICBjb21wbGV0aW9uIG9mIGlkZW50aXR5IHZhbGlkYXRpb24uCisKKyAgICA5
LjUuICBJZFAgRXJyb3IgSGFuZGxpbmcKKyAgICAgIC0gSWYgYW4gaWRlbnRpdHkgcHJvdmlkZXIg
dGhyb3dzIGFuIGV4Y2VwdGlvbiBvciByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGlzCisgICAgICAg
IHVsdGltYXRlbHkgcmVqZWN0ZWQsIHRoZW4gdGhlIHByb2NlZHVyZSB0aGF0IGRlcGVuZHMgb24g
dGhlIElkUCBNVVNUIGFsc28gZmFpbC4KKyAgICAgICAgVGhlc2UgdHlwZXMgb2YgZXJyb3JzIHdp
bGwgY2F1c2UgYW4gSWRQIGZhaWx1cmUgd2l0aCBhbiBSVENFcnJvciB3aXRoIGVycm9yRGV0YWls
CisgICAgICAgIHNldCB0byAiaWRwLWV4ZWN1dGlvbi1mYWlsdXJlIi4KKworICAgIDkuNC4gIFZl
cmlmeWluZyBJZGVudGl0eSBBc3NlcnRpb25zCisgICAgICBJZiBpZGVudGl0eSB2YWxpZGF0aW9u
IGZhaWxzIGFuZCB0aGVyZSBpcyBubyBhIHRhcmdldCBwZWVyIGlkZW50aXR5LCB0aGUgdmFsdWUg
b2YKKyAgICAgIHRoZSBwZWVySWRlbnRpdHkgTVVTVCBiZSBzZXQgdG8gYSBuZXcsIHVucmVzb2x2
ZWQgcHJvbWlzZSBpbnN0YW5jZS4gVGhpcyBwZXJtaXRzCisgICAgICB0aGUgdXNlIG9mIHJlbmVn
b3RpYXRpb24gKG9yIGEgc3Vic2VxdWVudCBhbnN3ZXIsIGlmIHRoZSBzZXNzaW9uIGRlc2NyaXB0
aW9uIHdhcworICAgICAgYSBwcm92aXNpb25hbCBhbnN3ZXIpIHRvIHJlc29sdmUgb3IgcmVqZWN0
IHRoZSBpZGVudGl0eS4KKyAgICovCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
MS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKwor
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgY29uc3QgcG9ydCA9
IHdpbmRvdy5sb2NhdGlvbi5wb3J0OworICAgIGNvbnN0IFtpZHBEb21haW5dID0gZ2V0SWRwRG9t
YWlucygpOworICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCk7
CisKKyAgICAvLyBBc2sgbW9jay1pZHAuanMgdG8gdGhyb3cgZXJyb3IgZHVyaW5nIHZhbGlkYXRp
b24sCisgICAgLy8gaS5lLiBkdXJpbmcgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKCkKKyAgICBw
YzEuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAgICBwcm90b2NvbDogJ21vY2st
aWRwLmpzP3ZhbGlkYXRvckFjdGlvbj10aHJvdy1lcnJvcicsCisgICAgICB1c2VybmFtZUhpbnQ6
IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgfSk7CisKKyAgICBjb25zdCBwZWVySWRlbnRpdHlQ
cm9taXNlMSA9IHBjMi5wZWVySWRlbnRpdHk7CisKKyAgICByZXR1cm4gcGMxLmNyZWF0ZU9mZmVy
KCkKKyAgICAudGhlbihvZmZlciA9PgorICAgICAgLy8gc2V0UmVtb3RlRGVzY3JpcHRpb24gc2hv
dWxkIHN1Y2NlZWQgYmVjYXVzZSB0aGVyZSBpcyBubyB0YXJnZXQgcGVlciBpZGVudGl0eSBzZXQK
KyAgICAgIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikpCisgICAgLnRoZW4oKCkgPT4K
KyAgICAgIGFzc2VydF9ydGNlcnJvcl9yZWplY3Rpb24oJ2lkcC1leGVjdXRpb24tZmFpbHVyZScs
CisgICAgICAgIHBlZXJJZGVudGl0eVByb21pc2UxLAorICAgICAgICBgRXhwZWN0IGZpcnN0IHBl
ZXJJZGVudGl0eSBwcm9taXNlIHRvIGJlIHJlamVjdGVkIHdpdGggUlRDRXJyb3IoJ2lkcC1leGVj
dXRpb24tZmFpbHVyZScpYCkpCisgICAgLnRoZW4oKCkgPT4geworICAgICAgY29uc3QgcGVlcklk
ZW50aXR5UHJvbWlzZTIgPSBwYzIucGVlcklkZW50aXR5OworICAgICAgYXNzZXJ0X25vdF9lcXVh
bHMocGVlcklkZW50aXR5UHJvbWlzZTIsIHBlZXJJZGVudGl0eVByb21pc2UxLAorICAgICAgICAn
RXhwZWN0IHBjMi5wZWVySWRlbnRpdHkgdG8gYmUgcmVwbGFjZWQgd2l0aCBhIGZyZXNoIHVucmVz
b2x2ZWQgcHJvbWlzZScpOworCisgICAgICAvLyByZWdlbmVyYXRlIGFuIGlkZW50aXR5IGFzc2Vy
dGlvbiB3aXRoIG5vIHRlc3Qgb3B0aW9uIHRvIHRocm93IGVycm9yCisgICAgICBwYzEuc2V0SWRl
bnRpdHlQcm92aWRlcihpZHBIb3N0LCB7CisgICAgICAgIHByb3RvY29sOiAnaWRwLXRlc3QuanMn
LAorICAgICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gCisgICAgICB9KTsK
KworICAgICAgcmV0dXJuIHBjMS5jcmVhdGVPZmZlcigpCisgICAgICAudGhlbihvZmZlciA9PiBw
YzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpKQorICAgICAgLnRoZW4ocGVlcklkZW50aXR5
UHJvbWlzZTIpCisgICAgICAudGhlbihpZGVudGl0eUFzc2VydGlvbiA9PiB7CisgICAgICAgIGNv
bnN0IHsgaWRwLCBuYW1lIH0gPSBpZGVudGl0eUFzc2VydGlvbjsKKworICAgICAgICBhc3NlcnRf
ZXF1YWxzKGlkcCwgaWRwRG9tYWluLAorICAgICAgICAgIGBFeHBlY3QgSWRQIGRvbWFpbiB0byBi
ZSAke2lkcERvbWFpbn1gKTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKG5hbWUsIGBhbGljZUAk
e2lkcERvbWFpbn1gLAorICAgICAgICAgIGBFeHBlY3QgdmFsaWRhdGVkIGlkZW50aXR5IHRvIGJl
IGFsaWNlQCR7aWRwRG9tYWlufWApOworCisgICAgICAgIGFzc2VydF9lcXVhbHMocGMyLnBlZXJp
ZGVudGl0eSwgcGVlcklkZW50aXR5UHJvbWlzZTIsCisgICAgICAgICAgJ0V4cGVjdCBwYzIucGVl
cklkZW50aXR5IHRvIHN0YXkgZml4ZWQgYWZ0ZXIgaWRlbnRpdHkgaXMgdmFsaWRhdGVkJyk7Cisg
ICAgICB9KTsKKyAgICB9KTsKKyAgfSwgJ0lkUCBmYWlsdXJlIHdpdGggbm8gdGFyZ2V0IHBlZXIg
aWRlbnRpdHkgc2hvdWxkIGhhdmUgZm9sbG93aW5nIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgc3Vj
Y2VlZCBhbmQgcmVwbGFjZSBwYy5wZWVySWRlbnRpdHkgd2l0aCBhIG5ldyBwcm9taXNlJyk7CisK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1z
dHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZl
Y3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggNzM1ZGM4NjVhMTZlMzUyOGQ2ZDM5MDJmMTU2YzVhM2FkODBiZTI2MC4uYzk1NDcyOTA3MWNk
YzkyMmIyMjgyZTYzMzFlYWNlNTE4YzEyZDNjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVy
ZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS1saW5lYXIu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCiBQQVNTIFBlcmZlY3QgbmVnb3Rp
YXRpb24gc3RyZXNzIGdsYXJlIGxpbmVhcgotUEFTUyBQZXJmZWN0IG5lZ290aWF0aW9uIHN0cmVz
cyBnbGFyZSBsaW5lYXIgd2l0aCByb2xlcyByZXZlcnNlZAorRkFJTCBQZXJmZWN0IG5lZ290aWF0
aW9uIHN0cmVzcyBnbGFyZSBsaW5lYXIgd2l0aCByb2xlcyByZXZlcnNlZCBFcnJvciBwcm9jZXNz
aW5nIElDRSBjYW5kaWRhdGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdv
dGlhdGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVy
ZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDJk
MmNiOGM3ZmRiMzc0ZjJhMWVmMDkxYWJjMjdhZTdlOTQ3OGY3MjQuLjU0MmZkNmMyZGY5Y2VkNmYy
NjgxMDk3ZWJmNzgwODRmZmY5ZGZjYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3Qt
bmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSw0IEBACiAKLVBBU1MgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUK
K0ZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgYXNzZXJ0X3VucmVhY2hlZDog
RXJyb3IgaW4gaWZyYW1lOiBPcGVyYXRpb25FcnJvcjogRXJyb3IgcHJvY2Vzc2luZyBJQ0UgY2Fu
ZGlkYXRlIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQogUEFTUyBQZXJmZWN0IG5lZ290aWF0aW9u
IHN0cmVzcyBnbGFyZSB3aXRoIHJvbGVzIHJldmVyc2VkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
cGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYTFlN2RiYWY5ZjM2
MjQyNDZiNmMwZTcxZmM2NGY3YmQ5NzM5YjA0My4uNjJkZTA5NzczNGY5NzU4NzVhNTNhNWZhNmY3
NWE2ZTQzYTBiYTliYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlv
bi5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlv
bi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKIFBBU1MgUGVyZmVjdCBuZWdv
dGlhdGlvbiBzZXR1cCBjb25uZWN0cwogUEFTUyBQZXJmZWN0IG5lZ290aWF0aW9uIHNldHVwIGNv
bm5lY3RzIHdpdGggcm9sZXMgcmV2ZXJzZWQKLUZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBnbGFy
ZSBSZW1vdGUgZGVzY3JpcHRpb24gdHlwZSAwIGlzIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQg
c2lnbmFsaW5nIHN0YXRlIDEKLUZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBnbGFyZSB3aXRoIHJv
bGVzIHJldmVyc2VkIGFzc2VydF91bnJlYWNoZWQ6IEVycm9yIGluIGlmcmFtZTogSW52YWxpZFN0
YXRlRXJyb3I6IFJlbW90ZSBkZXNjcmlwdGlvbiB0eXBlIDAgaXMgaW5jb21wYXRpYmxlIHdpdGgg
Y3VycmVudCBzaWduYWxpbmcgc3RhdGUgMSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1Mg
UGVyZmVjdCBuZWdvdGlhdGlvbiBnbGFyZQorUEFTUyBQZXJmZWN0IG5lZ290aWF0aW9uIGdsYXJl
IHdpdGggcm9sZXMgcmV2ZXJzZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlz
LW5vdC1zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1z
dXBwb3J0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmNDYyMDA3ZDY0MmIyMDU5MDkxYjgx
YjMwODg2MDExNDRjZmQwMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wbGFuLWIt
aXMtbm90LXN1cHBvcnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgUGxh
biBCIGlzIG5vdCBzdXBwb3J0ZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlz
LW5vdC1zdXBwb3J0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBsYW4tYi1pcy1ub3Qtc3VwcG9ydGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmRlNmIxYjAwM2E0MTZlNzczMmEwNjBmOWY1YTgzZmY0NDYwODg2
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBsYW4tYi1pcy1ub3Qtc3VwcG9ydGVk
Lmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0
Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+PC90aXRs
ZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlw
dD4KKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAvLyBQbGFu
IEIgaXMgYSBsZWdhY3kgZmVhdHVyZSB0aGF0IHNob3VsZCBub3QgYmUgc3VwcG9ydGVkIG9uIGEg
bW9kZXJuCisgIC8vIGJyb3dzZXIuIFRvIHBhc3MgdGhpcyB0ZXN0IHlvdSBtdXN0IGVpdGhlciBp
Z25vcmUgc2RwU2VtYW50aWNzIGFsdG9nZXRoZXIKKyAgLy8gKGFuZCBjb25zdHJ1Y3Qgd2l0aCBV
bmlmaWVkIFBsYW4gZGVzcGl0ZSB1cyBhc2tpbmcgZm9yIFBsYW4gQikgb3IgdGhyb3cgYW4KKyAg
Ly8gZXhjZXB0aW9uLgorICBsZXQgcGMgPSBudWxsOworICB0cnkgeworICAgIHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKHtzZHBTZW1hbnRpY3M6InBsYW4tYiJ9KTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjLmNsb3NlKCkpOworICB9IGNhdGNoIChlKSB7CisgICAgLy8gVGVzdCBwYXNz
ZWQhCisgICAgcmV0dXJuOworICB9CisgIC8vIElmIHdlIGRpZCBub3QgdGhyb3csIHdlIG11c3Qg
bm90IGhhdmUgZ290dGVuIHdoYXQgd2UgYXNrZWQgZm9yLiBJZgorICAvLyBzZHBTZW1hbnRpY3Mg
aXMgbm90IHJlY29nbml6ZWQgYnkgdGhlIGJyb3dzZXIgaXQgd2lsbCBiZSB1bmRlZmluZWQgaGVy
ZS4KKyAgYXNzZXJ0X25vdF9lcXVhbHMocGMuZ2V0Q29uZmlndXJhdGlvbigpLnNkcFNlbWFudGlj
cywgInBsYW4tYiIpOworfSwgJ1BsYW4gQiBpcyBub3Qgc3VwcG9ydGVkJyk7CisKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVsYXktY2FudmFzLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXJlbGF5LWNhbnZhcy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGM3YTRhZjlhMTRhOTdiZmRmYWVkODgzYWNlODcwNWMyMWUyZTdkNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXJlbGF5LWNhbnZhcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK0ZBSUwgVHdvIFBlZXJDb25uZWN0aW9ucyByZWxheWluZyBhIGNhbnZhcyBz
b3VyY2UgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIDE4My42ICsvLSAyIGJ1dCBnb3Qg
MTg4Ljg1CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbGF5LWNhbnZhcy5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tcmVsYXktY2FudmFzLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU5Y2Qw
NjgyMjBkNmYwZWMyYThhNzdlMjE1YTQwNzAyZjkxZWU3NQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXJlbGF5LWNhbnZhcy5odHRwcy5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhZG9j
dHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciPgorPHRpdGxlPlJlbGF5IGNhbnZhcyB2aWEgUGVlckNvbm5lY3Rpb25zPC90
aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorICAndXNlIHN0cmljdCc7CisKKy8vIFRoaXMgdGVzdCBjaGVja3MgdGhhdCBjYW52YXMgY2Fw
dHVyZSB3b3JrcyByZWxheWVkIGJldHdlZW4gc2V2ZXJhbCBwZWVyIGNvbm5lY3Rpb25zLgorCitm
dW5jdGlvbiBHcmVlbkZyYW1lV2ViR0wod2lkdGgsIGhlaWdodCkgeworICBjb25zdCBjYW52YXMg
PQorICAgICAgT2JqZWN0LmFzc2lnbihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSwg
e3dpZHRoLCBoZWlnaHR9KTsKKyAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJ3dlYmds
Jyk7CisgIGlmIChjdHggPT09IG51bGwpIHJldHVybjsKKyAgcmVxdWVzdEFuaW1hdGlvbkZyYW1l
KGZ1bmN0aW9uIGRyYXcgKCkgeworICAgIGN0eC5jbGVhckNvbG9yKDAuMCwgMS4wLCAwLjAsIDEu
MCk7CisgICAgY3R4LmNsZWFyKGN0eC5DT0xPUl9CVUZGRVJfQklUKTsKKyAgICByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoZHJhdyk7CisgIH0pOworICByZXR1cm4gY2FudmFzLmNhcHR1cmVTdHJlYW0o
KTsKK30KKworCisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKworICAvLyBCdWlsZCBhIGNo
YWluCisgIC8vIGNhbnZhcyAtdHJhY2stPiBwYzEgLW5ldHdvcmstPiBwY1JlbGF5SW4gLXRyYWNr
LT4KKyAgLy8gICAgICAgcGNSZWxheU91dCAtbmV0d29yay0+IHBjMiAtdHJhY2stPiB2aWRlbwor
ICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzEuY2xvc2UoKSk7CisgIGNvbnN0IHBjUmVsYXlJbiA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjUmVsYXlJbi5jbG9zZSgpKTsKKworICBj
b25zdCBwY1JlbGF5T3V0ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGNSZWxheU91dC5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIC8v
IEF0dGFjaCBjYW52YXMgdG8gcGMxLgorICBjb25zdCBzdHJlYW0gPSBHcmVlbkZyYW1lV2ViR0wo
NjQwLCA0ODApOworICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOworICBwYzEu
YWRkVHJhY2sodHJhY2spOworCisgIGNvbnN0IHYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2
aWRlbycpOworICB2LmF1dG9wbGF5ID0gdHJ1ZTsKKworICAvLyBTZXR1cCBwYzEtPnBjUmVsYXlJ
biB2aWRlbyBzdHJlYW0uCisgIGNvbnN0IGhhdmVUcmFja0V2ZW50MSA9IG5ldyBQcm9taXNlKHIg
PT4gcGNSZWxheUluLm9udHJhY2sgPSByKTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwg
cGNSZWxheUluKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgYXdhaXQg
cGNSZWxheUluLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAg
YXdhaXQgcGNSZWxheUluLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgYXdhaXQgcGMxLnNldFJl
bW90ZURlc2NyaXB0aW9uKHBjUmVsYXlJbi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAvLyBQbHVn
IG91dHB1dCBvZiBwY1JlbGF5SW4gdG8gcGNSZWxheU91dC4KKyAgcGNSZWxheU91dC5hZGRUcmFj
aygoYXdhaXQgaGF2ZVRyYWNrRXZlbnQxKS50cmFjayk7CisKKyAgLy8gU2V0dXAgcGNSZWxheU91
dC0+cGMyIHZpZGVvIHN0cmVhbS4KKyAgY29uc3QgaGF2ZVRyYWNrRXZlbnQyID0gbmV3IFByb21p
c2UociA9PiBwYzIub250cmFjayA9IHIpOworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGNSZWxh
eU91dCwgcGMyKTsKKyAgYXdhaXQgcGNSZWxheU91dC5zZXRMb2NhbERlc2NyaXB0aW9uKCk7Cisg
IGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwY1JlbGF5T3V0LmxvY2FsRGVzY3JpcHRp
b24pOworICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhd2FpdCBwY1JlbGF5
T3V0LnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAvLyBE
aXNwbGF5IHBjMiByZWNlaXZlZCB0cmFjayBpbiB2aWRlbyBlbGVtZW50LgorICB2LnNyY09iamVj
dCA9IG5ldyBNZWRpYVN0cmVhbShbKGF3YWl0IGhhdmVUcmFja0V2ZW50MikudHJhY2tdKTsKKyAg
YXdhaXQgbmV3IFByb21pc2UociA9PiB2Lm9ubG9hZGVkbWV0YWRhdGEgPSByKTsKKworICAvLyBX
YWl0IHNvbWUgdGltZSB0byBlbnN1cmUgdGhhdCBmcmFtZXMgZ290IHRocm91Z2guCisgIGF3YWl0
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdC5zdGVwX3RpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOwor
CisgIC8vIFVzZXMgSGVscGVyLmpzIEdldFZpZGVvU2lnbmFsIHRvIHF1ZXJ5IHx2fCBwaXhlbCB2
YWx1ZSBhdCBhIGNlcnRhaW4gcG9zaXRpb24uCisgIGNvbnN0IHBpeGVsVmFsdWUgPSBnZXRWaWRl
b1NpZ25hbCh2KTsKKworICAvLyBFeHBlY3RlZCB2YWx1ZSBjb21wdXRlZCBiYXNlZCBvbiBHZXRW
aWRlb1NpZ25hbCBjb2RlLCB3aGljaCB0YWtlcyBncmVlbiBwaXhlbCBkYXRhCisgIC8vIHdpdGgg
Y29lZmZpY2llbnQgMC43Mi4KKyAgYXNzZXJ0X2FwcHJveF9lcXVhbHMocGl4ZWxWYWx1ZSwgMC43
MioyNTUsIDIpOworICB9LCAiVHdvIFBlZXJDb25uZWN0aW9ucyByZWxheWluZyBhIGNhbnZhcyBz
b3VyY2UiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNr
LW11dGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGMzMTk5MGQ3MDA5ZjA4MjNjN2U3YmJlMjllYjQ3MDY5
MTM2NWQ4NDEuLjFkNGI3NmQyZGM3MWNjMzY0NThiNjc4ZWQ3MjBjYzA2M2RlYzYxM2MgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZS10cmFjay1tdXRlLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1yZW1vdGUtdHJhY2stbXV0ZS5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTEsOCArMSw5IEBACiAKIEhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAog
Ci1GQUlMIG9udHJhY2s6IHRyYWNrIGdvZXMgZnJvbSBtdXRlZCB0byB1bm11dGVkIGFzc2VydF90
cnVlOiB0cmFjayBpcyBtdXRlZCBpbiBvbnRyYWNrIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1U
SU1FT1VUIENoYW5naW5nIHRyYW5zY2VpdmVyIGRpcmVjdGlvbiB0byAnaW5hY3RpdmUnIG11dGVz
IHRoZSByZW1vdGUgdHJhY2sgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBDaGFuZ2luZyB0cmFuc2Nl
aXZlciBkaXJlY3Rpb24gdG8gJ3NlbmRyZWN2JyB1bm11dGVzIHRoZSByZW1vdGUgdHJhY2sKLU5P
VFJVTiBwYy5jbG9zZSgpIG11dGVzIHJlbW90ZSB0cmFja3MKK1BBU1Mgb250cmFjazogdHJhY2sg
Z29lcyBmcm9tIG11dGVkIHRvIHVubXV0ZWQKK1BBU1MgQ2hhbmdpbmcgdHJhbnNjZWl2ZXIgZGly
ZWN0aW9uIHRvICdpbmFjdGl2ZScgbXV0ZXMgdGhlIHJlbW90ZSB0cmFjaworRkFJTCBDaGFuZ2lu
ZyB0cmFuc2NlaXZlciBkaXJlY3Rpb24gdG8gJ3NlbmRyZWN2JyB1bm11dGVzIHRoZSByZW1vdGUg
dHJhY2sgYXNzZXJ0X3RydWU6IE5vdCBleHBlY3RpbmcgZXZlbnQsIGJ1dCBnb3QgdW5tdXRlIGV2
ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitUSU1FT1VUIHRyYW5zY2VpdmVyLnN0b3AoKSBv
biBvbmUgc2lkZSAod2l0aG91dCByZW5lZ290aWF0aW9uKSBjYXVzZXMgbXV0ZSBldmVudHMgb24g
dGhlIG90aGVyIFRlc3QgdGltZWQgb3V0CitOT1RSVU4gcGMuY2xvc2UoKSBvbiBvbmUgc2lkZSBj
YXVzZXMgbXV0ZSBldmVudHMgb24gdGhlIG90aGVyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXJlc3RhcnRJY2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggNjJlNDMzMDBmMjEzMWM3YzM2MmIyYTM5MzAzNmY4YTY2
YjQxMWFmMS4uNTM1MTA5MzkzZmViODg4MzM1NDBmYTAzMzIxZTlkMjFmOTc1ZTYxYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTMsNiArMyw3IEBAIEZB
SUwgcmVzdGFydEljZSgpIGRvZXMgbm90IHRyaWdnZXIgbmVnb3RpYXRpb24gYWhlYWQgb2YgaW5p
dGlhbCBuZWdvdGlhdGlvbiBhc3NlCiBQQVNTIHJlc3RhcnRJY2UoKSBoYXMgbm8gZWZmZWN0IG9u
IGluaXRpYWwgbmVnb3RpYXRpb24KIFBBU1MgcmVzdGFydEljZSgpIGZpcmVzIG5lZ290aWF0aW9u
bmVlZGVkIGFmdGVyIGluaXRpYWwgbmVnb3RpYXRpb24KIFBBU1MgcmVzdGFydEljZSgpIGNhdXNl
cyBmcmVzaCB1ZnJhZ3MKK1BBU1MgcmVzdGFydEljZSgpIHJldGFpbnMgZHRscyB0cmFuc3BvcnRz
CiBQQVNTIHJlc3RhcnRJY2UoKSB3b3JrcyBpbiBoYXZlLWxvY2FsLW9mZmVyCiBQQVNTIHJlc3Rh
cnRJY2UoKSB3b3JrcyBpbiBpbml0aWFsIGhhdmUtbG9jYWwtb2ZmZXIKIFBBU1MgcmVzdGFydElj
ZSgpIHdvcmtzIGluIGhhdmUtcmVtb3RlLW9mZmVyCkBAIC0xMiw0ICsxMywxNyBAQCBQQVNTIHJl
c3RhcnRJY2UoKSBpcyBzYXRpc2ZpZWQgYnkgcmVtb3RlIElDRSByZXN0YXJ0CiBQQVNTIHJlc3Rh
cnRJY2UoKSB0cnVtcHMge2ljZVJlc3RhcnQ6IGZhbHNlfQogUEFTUyByZXN0YXJ0SWNlKCkgc3Vy
dml2ZXMgcm9sbGJhY2sKIEZBSUwgcmVzdGFydEljZSgpIHN1cnZpdmVzIHJlbW90ZSBvZmZlciBj
b250YWluaW5nIHBhcnRpYWwgcmVzdGFydCBhc3NlcnRfZmFsc2U6IFJlc3RhcnRlZCAyIGV4cGVj
dGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIHJlc3RhcnRJY2UoKSBoYXMgbm8gZWZmZWN0IG9uIGlu
aXRpYWwgbmVnb3RpYXRpb24gKHBlcmZlY3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3RhcnRJY2Uo
KSBmaXJlcyBuZWdvdGlhdGlvbm5lZWRlZCBhZnRlciBpbml0aWFsIG5lZ290aWF0aW9uIChwZXJm
ZWN0IG5lZ290aWF0aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgY2F1c2VzIGZyZXNoIHVmcmFncyAo
cGVyZmVjdCBuZWdvdGlhdGlvbikKK1BBU1MgcmVzdGFydEljZSgpIHJldGFpbnMgZHRscyB0cmFu
c3BvcnRzIChwZXJmZWN0IG5lZ290aWF0aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgd29ya3MgaW4g
aGF2ZS1sb2NhbC1vZmZlciAocGVyZmVjdCBuZWdvdGlhdGlvbikKK1BBU1MgcmVzdGFydEljZSgp
IHdvcmtzIGluIGluaXRpYWwgaGF2ZS1sb2NhbC1vZmZlciAocGVyZmVjdCBuZWdvdGlhdGlvbikK
K1BBU1MgcmVzdGFydEljZSgpIHdvcmtzIGluIGhhdmUtcmVtb3RlLW9mZmVyIChwZXJmZWN0IG5l
Z290aWF0aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgZG9lcyBub3RoaW5nIGluIGluaXRpYWwgaGF2
ZS1yZW1vdGUtb2ZmZXIgKHBlcmZlY3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3RhcnRJY2UoKSBz
dXJ2aXZlcyByZW1vdGUgb2ZmZXIgKHBlcmZlY3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3RhcnRJ
Y2UoKSBpcyBzYXRpc2ZpZWQgYnkgcmVtb3RlIElDRSByZXN0YXJ0IChwZXJmZWN0IG5lZ290aWF0
aW9uKQorUEFTUyByZXN0YXJ0SWNlKCkgdHJ1bXBzIHtpY2VSZXN0YXJ0OiBmYWxzZX0gKHBlcmZl
Y3QgbmVnb3RpYXRpb24pCitQQVNTIHJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByb2xsYmFjayAocGVy
ZmVjdCBuZWdvdGlhdGlvbikKK0ZBSUwgcmVzdGFydEljZSgpIHN1cnZpdmVzIHJlbW90ZSBvZmZl
ciBjb250YWluaW5nIHBhcnRpYWwgcmVzdGFydCAocGVyZmVjdCBuZWdvdGlhdGlvbikgYXNzZXJ0
X2ZhbHNlOiBSZXN0YXJ0ZWQgMiBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0
SWNlLmh0dHBzLmh0bWwKaW5kZXggOGY4YzY2MWE0MWRkMGExY2I4ZjU2YmFmODBmNmQzYjc5N2Y5
ZTIyOS4uMGU0ZWNmNjRjODUzZmNlOWQ0ZTRhNjY4NTZmMmEwNjBmMmJkYmIzNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJl
c3RhcnRJY2UuaHR0cHMuaHRtbApAQCAtMTYsMTUgKzE2LDM2IEBAIGZ1bmN0aW9uIGdldExpbmVz
KHNkcCwgc3RhcnRzV2l0aCkgewogY29uc3QgZ2V0VWZyYWdzID0gKHtzZHB9KSA9PiBnZXRMaW5l
cyhzZHAsICJhPWljZS11ZnJhZzoiKTsKIGNvbnN0IGdldFB3ZHMgPSAoe3NkcH0pID0+IGdldExp
bmVzKHNkcCwgImE9aWNlLXB3ZDoiKTsKIAotYXN5bmMgZnVuY3Rpb24gZXhjaGFuZ2VPZmZlckFu
c3dlckVuZE9uRmlyc3QocGMxLCBwYzIpIHsKLSAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRp
b24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworY29uc3QgbmVnb3RpYXRvcnMgPSBbCisgIHsK
KyAgICB0YWc6ICIiLAorICAgIGFzeW5jIHNldE9mZmVyKHBjKSB7CisgICAgICBhd2FpdCBwYy5z
ZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCkpOworICAgIH0sCisgICAg
YXN5bmMgc2V0QW5zd2VyKHBjKSB7CisgICAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9u
KGF3YWl0IHBjLmNyZWF0ZUFuc3dlcigpKTsKKyAgICB9LAorICB9LAorICB7CisgICAgdGFnOiAi
IChwZXJmZWN0IG5lZ290aWF0aW9uKSIsCisgICAgYXN5bmMgc2V0T2ZmZXIocGMpIHsKKyAgICAg
IGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgICB9LAorICAgIGFzeW5jIHNldEFu
c3dlcihwYykgeworICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICAgIH0s
CisgIH0sCitdOworCithc3luYyBmdW5jdGlvbiBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJz
dChwYzEsIHBjMiwgbmVnb3RpYXRvcikgeworICBhd2FpdCBuZWdvdGlhdG9yLnNldE9mZmVyKHBj
MSk7CiAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlv
bik7Ci0gIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3
ZXIoKSk7CisgIGF3YWl0IG5lZ290aWF0b3Iuc2V0QW5zd2VyKHBjMik7CiAgIGF3YWl0IHBjMS5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7IC8vIEVuZCBvbiBwYzEu
IE5vIHJhY2UKIH0KIAotYXN5bmMgZnVuY3Rpb24gZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uU2Vj
b25kKHBjMSwgcGMyKSB7Ci0gIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBj
MS5jcmVhdGVPZmZlcigpKTsKK2FzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRP
blNlY29uZChwYzEsIHBjMiwgbmVnb3RpYXRvcikgeworICBhd2FpdCBuZWdvdGlhdG9yLnNldE9m
ZmVyKHBjMSk7CiAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNj
cmlwdGlvbik7CiAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3Jl
YXRlQW5zd2VyKCkpOwogICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihwYzEucmVtb3Rl
RGVzY3JpcHRpb24pOyAvLyBFbmQgb24gcGMyLiBObyByYWNlCkBAIC02NSwzMzAgKzg2LDM5MCBA
QCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25O
ZWVkZWQodCwgcGMxKTsKIH0sICJyZXN0YXJ0SWNlKCkgZG9lcyBub3QgdHJpZ2dlciBuZWdvdGlh
dGlvbiBhaGVhZCBvZiBpbml0aWFsIG5lZ290aWF0aW9uIik7CiAKLXByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0
IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
MS5jbG9zZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMx
LmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5v
bm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IGV4
Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLSAgYXdhaXQgYXNzZXJ0Tm9O
ZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOwotfSwgInJlc3RhcnRJY2UoKSBoYXMgbm8gZWZmZWN0
IG9uIGluaXRpYWwgbmVnb3RpYXRpb24iKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewot
ICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3QgcGMyID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkp
OwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEuYWRkVHJhbnNj
ZWl2ZXIoImF1ZGlvIik7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRp
b25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMx
LCBwYzIpOwotICBwYzEucmVzdGFydEljZSgpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBj
MS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci19LCAicmVzdGFydEljZSgpIGZpcmVzIG5lZ290
aWF0aW9ubmVlZGVkIGFmdGVyIGluaXRpYWwgbmVnb3RpYXRpb24iKTsKLQotcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAg
Y29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLQot
ICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3
ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLQotICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFn
cyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdz
KHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9u
Rmlyc3QocGMxLCBwYzIpOwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxv
Y2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzEsICJjb250cm9sIDEiKTsKLSAgYXNzZXJ0X3Vm
cmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcy
LCAiY29udHJvbCAyIik7Ci0KLSAgcGMxLnJlc3RhcnRJY2UoKTsKLSAgYXdhaXQgbmV3IFByb21p
c2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0gIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0
VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRV
ZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMo
bmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKLSAgYXNzZXJ0X3VmcmFn
c19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7Ci0g
IGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKLQotICBhd2FpdCBleGNo
YW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1
YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG5ld1VmcmFnMSwgIlVuY2hh
bmdlZCAxIik7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNj
cmlwdGlvbilbMF0sIG5ld1VmcmFnMiwgIlVuY2hhbmdlZCAyIik7Ci19LCAicmVzdGFydEljZSgp
IGNhdXNlcyBmcmVzaCB1ZnJhZ3MiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBj
b25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3QgcGMyID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwot
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEuYWRkVHJhbnNjZWl2
ZXIoImF1ZGlvIik7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25u
ZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBw
YzIpOwotCi0gIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0
aW9uKTsKLSAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRp
b24pOwotCi0gIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVP
ZmZlcigpKTsKLSAgcGMxLnJlc3RhcnRJY2UoKTsKLSAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3Jp
cHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsKLSAgLy8gU2V2ZXJhbCB0ZXN0cyBpbiB0
aGlzIGZpbGUgaW5pdGlhbGl6ZXMgdGhlIG9ubmVnb3RpYXRpb25uZWVkZWQgbGlzdGVuZXIKLSAg
Ly8gYmVmb3JlIHRoZSBzZXRMb2NhbERlc2NyaXB0aW9uKCkgb3Igc2V0UmVtb3RlRGVzY3JpcHRp
b24oKSB0aGF0IHdlIGV4cGVjdAotICAvLyB0byB0cmlnZ2VyIG5lZ290aWF0aW9uIG5lZWRlZC4g
VGhpcyBhbGxvd3MgQ2hyb21lIHRvIGV4ZXJjaXNlIHRoZXNlIHRlc3RzCi0gIC8vIHdpdGhvdXQg
dGltaW5nIG91dCBkdWUgdG8gYSBidWcgdGhhdCBjYXVzZXMgb25uZWdvdGlhdGlvbm5lZWRlZCB0
byBmaXJlIHRvbwotICAvLyBlYXJseS4KLSAgLy8gVE9ETyhodHRwczovL2NyYnVnLmNvbS85ODU3
OTcpOiBPbmNlIENocm9tZSBkb2VzIG5vdCBmaXJlIE9OTiB0b28gZWFybHksCi0gIC8vIHNpbXBs
eSBkbyAiYXdhaXQgbmV3IFByb21pc2UoLi4uKSIgaW5zdGVhZCBvZgotICAvLyAiYXdhaXQgbmVn
b3RpYXRpb25OZWVkZWRQcm9taXNlIiBoZXJlIGFuZCBpbiBvdGhlciB0ZXN0cyBpbiB0aGlzIGZp
bGUuCi0gIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9Ci0gICAgICBuZXcgUHJvbWlz
ZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IHBjMS5zZXRSZW1v
dGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1
YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMSwgIlVuY2hh
bmdlZCAxIik7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNj
cmlwdGlvbilbMF0sIG9sZFVmcmFnMiwgIlVuY2hhbmdlZCAyIik7Ci0gIGF3YWl0IG5lZ290aWF0
aW9uTmVlZGVkUHJvbWlzZTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3Qo
cGMxLCBwYzIpOwotICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNj
cmlwdGlvbik7Ci0gIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2Ny
aXB0aW9uKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcx
LCAidWZyYWcgMSBjaGFuZ2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJh
ZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOwotICBhd2FpdCBhc3NlcnROb05lZ290
aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIHdvcmtzIGluIGhhdmUtbG9j
YWwtb2ZmZXIiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7
Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsK
LSAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkp
OwotICBwYzEucmVzdGFydEljZSgpOwotICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24o
cGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihh
d2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOwotICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21p
c2UgPQotICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIp
OwotICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24p
OwotICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7
Ci0gIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsK
LSAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOwotICBhd2FpdCBleGNoYW5nZU9mZmVy
QW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0gIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZy
YWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJh
Z3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3
VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKLSAgYXNzZXJ0X3VmcmFnc19u
b3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7Ci0gIGF3
YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKLX0sICJyZXN0YXJ0SWNlKCkg
d29ya3MgaW4gaW5pdGlhbCBoYXZlLWxvY2FsLW9mZmVyIik7Ci0KLXByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0
IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
MS5jbG9zZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMx
LmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5v
bm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRP
bkZpcnN0KHBjMSwgcGMyKTsKLQotICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEu
bG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5s
b2NhbERlc2NyaXB0aW9uKTsKLQotICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2Fp
dCBwYzIuY3JlYXRlT2ZmZXIoKSk7Ci0gIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihw
YzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IHBjMi5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlQW5zd2VyKCkpOwotICBjb25zdCBu
ZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQotICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25u
ZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihw
YzIucmVtb3RlRGVzY3JpcHRpb24pOyAvLyBFbmQgb24gcGMxLiBObyByYWNlCi0gIGFzc2VydF91
ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFn
MSwgIlVuY2hhbmdlZCAxIik7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIu
bG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMiwgIlVuY2hhbmdlZCAyIik7Ci0gIGF3YWl0
IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVu
ZE9uRmlyc3QocGMxLCBwYzIpOwotICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEu
bG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5s
b2NhbERlc2NyaXB0aW9uKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwg
b2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFs
cyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOwotICBhd2FpdCBhc3Nl
cnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIHdvcmtzIGlu
IGhhdmUtcmVtb3RlLW9mZmVyIik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29u
c3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMyLmFkZFRyYW5zY2VpdmVy
KCJhdWRpbyIpOwotICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3Jl
YXRlT2ZmZXIoKSk7Ci0gIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxE
ZXNjcmlwdGlvbik7Ci0gIHBjMS5yZXN0YXJ0SWNlKCk7Ci0gIGF3YWl0IHBjMi5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlQW5zd2VyKCkpOwotICBhd2FpdCBwYzEuc2V0TG9j
YWxEZXNjcmlwdGlvbihwYzIucmVtb3RlRGVzY3JpcHRpb24pOyAvLyBFbmQgb24gcGMxLiBObyBy
YWNlCi0gIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKLX0sICJyZXN0
YXJ0SWNlKCkgZG9lcyBub3RoaW5nIGluIGluaXRpYWwgaGF2ZS1yZW1vdGUtb2ZmZXIiKTsKLQot
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKLSAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5j
bG9zZSgpKTsKLQotICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Ci0gIGF3YWl0IG5ldyBQ
cm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFu
Z2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOwotCi0gIGNvbnN0IFtvbGRVZnJhZzFd
ID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW29sZFVmcmFnMl0g
PSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotCi0gIHBjMS5yZXN0YXJ0SWNlKCk7
Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsK
LSAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KLSAgICAgIG5ldyBQcm9taXNlKHIg
PT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFu
c3dlckVuZE9uU2Vjb25kKHBjMiwgcGMxKTsKLSAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZy
YWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcxLCAibm90aGluZyB5ZXQgMSIp
OwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24p
WzBdLCBvbGRVZnJhZzIsICJub3RoaW5nIHlldCAyIik7Ci0gIGF3YWl0IG5lZ290aWF0aW9uTmVl
ZGVkUHJvbWlzZTsKLSAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBw
YzIpOwotICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlv
bik7Ci0gIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9u
KTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZy
YWcgMSBjaGFuZ2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzIsIG9s
ZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOwotICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9u
TmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgpIHN1cnZpdmVzIHJlbW90ZSBvZmZlciIp
OwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKLSAgYXdhaXQg
bmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBl
eGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0KLSAgY29uc3QgW29sZFVm
cmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBbb2xkVWZy
YWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisvLyBSdW4gcmVtYWluaW5n
IHRlc3RzIHR3aWNlOiBvbmNlIGZvciBlYWNoIG5lZ290aWF0b3IKKworZm9yIChjb25zdCBuZWdv
dGlhdG9yIG9mIG5lZ290aWF0b3JzKSB7CisgIGNvbnN0IHt0YWd9ID0gbmVnb3RpYXRvcjsKKwor
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
ICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Cisg
ICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwor
ICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9u
Rmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRp
b25OZWVkZWQodCwgcGMxKTsKKyAgfSwgYHJlc3RhcnRJY2UoKSBoYXMgbm8gZWZmZWN0IG9uIGlu
aXRpYWwgbmVnb3RpYXRpb24ke3RhZ31gKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEu
Y2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBw
YzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBw
YzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3
ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBwYzEucmVzdGFydEljZSgp
OworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSBy
KTsKKyAgfSwgYHJlc3RhcnRJY2UoKSBmaXJlcyBuZWdvdGlhdGlvbm5lZWRlZCBhZnRlciBpbml0
aWFsIG5lZ290aWF0aW9uJHt0YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNs
b3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMx
LmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJF
bmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKworICAgIGNvbnN0IFtvbGRVZnJhZzFd
ID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbb2xkVWZyYWcy
XSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXdhaXQgZXhjaGFuZ2VP
ZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGFzc2VydF91
ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFn
MSwgImNvbnRyb2wgMSIpOworICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIu
bG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMiwgImNvbnRyb2wgMiIpOworCisgICAgcGMx
LnJlc3RhcnRJY2UoKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0
aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3Qo
cGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdz
KHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFn
cyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5l
d1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7CisgICAgYXNzZXJ0X3VmcmFn
c19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7Cisg
ICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworCisgICAgYXdhaXQg
ZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAg
IGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0s
IG5ld1VmcmFnMSwgIlVuY2hhbmdlZCAxIik7CisgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0
VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgbmV3VWZyYWcyLCAiVW5jaGFuZ2VkIDIi
KTsKKyAgfSwgYHJlc3RhcnRJY2UoKSBjYXVzZXMgZnJlc2ggdWZyYWdzJHt0YWd9YCk7CisKKyAg
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGNvbmZpZyA9IHtidW5kbGVQb2xp
Y3k6ICJtYXgtYnVuZGxlIn07CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KGNvbmZpZyk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZyk7
CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBwYzEub25pY2VjYW5kaWRhdGUgPSBlID0+IHBj
Mi5hZGRJY2VDYW5kaWRhdGUoZS5jYW5kaWRhdGUpOworICAgIHBjMi5vbmljZWNhbmRpZGF0ZSA9
IGUgPT4gcGMxLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7CisKKyAgICAvLyBTZWUgdGhl
IGV4cGxhbmF0aW9uIGJlbG93IGFib3V0IENocm9tZSdzIG9ubmVnb3RpYXRpb25uZWVkZWQgZmly
aW5nCisgICAgLy8gdG9vIGVhcmx5LgorICAgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlz
ZTEgPQorICAgICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0g
cik7CisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICAgIHBjMS5hZGRUcmFuc2Nl
aXZlcigiYXVkaW8iKTsKKyAgICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UxOworICAg
IGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9y
KTsKKworICAgIGNvbnN0IFt2aWRlb1RjLCBhdWRpb1RjXSA9IHBjMS5nZXRUcmFuc2NlaXZlcnMo
KTsKKyAgICBjb25zdCBbdmlkZW9UcCwgYXVkaW9UcF0gPQorICAgICAgICBwYzEuZ2V0VHJhbnNj
ZWl2ZXJzKCkubWFwKHRjID0+IHRjLnNlbmRlci50cmFuc3BvcnQpOworICAgIGFzc2VydF9lcXVh
bHMocGMxLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMiwgJ3RyYW5zY2VpdmVyIGNvdW50Jyk7
CisKKyAgICAvLyBPbiBDaHJvbWUsIGl0IGlzIHBvc3NpYmxlIChsaWtlbHksIGV2ZW4pIHRoYXQg
dmlkZW9UYy5zZW5kZXIudHJhbnNwb3J0LnN0YXRlCisgICAgLy8gd2lsbCBiZSAnY29ubmVjdGVk
JyBieSB0aGUgdGltZSB3ZSBnZXQgaGVyZS4gIFdlJ2xsIHJhY2UgMiBwcm9taXNlcyBoZXJlOgor
ICAgIC8vIDEuIFJlc29sdmUgYWZ0ZXIgb25zdGF0ZWNoYW5nZSBpcyBjYWxsZWQgd2l0aCBjb25u
ZWN0ZWQgc3RhdGUuCisgICAgLy8gMi4gSWYgYWxyZWFkeSBjb25uZWN0ZWQsIHJlc29sdmUgaW1t
ZWRpYXRlbHkuCisgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFsKKyAgICAgIG5ldyBQcm9taXNlKHIg
PT4gdmlkZW9UYy5zZW5kZXIudHJhbnNwb3J0Lm9uc3RhdGVjaGFuZ2UgPQorICAgICAgICAoKSA9
PiB2aWRlb1RjLnNlbmRlci50cmFuc3BvcnQuc3RhdGUgPT0gImNvbm5lY3RlZCIgJiYgcigpKSwK
KyAgICAgIG5ldyBQcm9taXNlKHIgPT4gdmlkZW9UYy5zZW5kZXIudHJhbnNwb3J0LnN0YXRlID09
ICJjb25uZWN0ZWQiICYmIHIoKSkKKyAgICBdKTsKKyAgICBhc3NlcnRfZXF1YWxzKHZpZGVvVGMu
c2VuZGVyLnRyYW5zcG9ydC5zdGF0ZSwgImNvbm5lY3RlZCIpOworCisgICAgYXdhaXQgZXhjaGFu
Z2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGFzc2Vy
dF9lcXVhbHModmlkZW9UcCwgcGMxLmdldFRyYW5zY2VpdmVycygpWzBdLnNlbmRlci50cmFuc3Bv
cnQsCisgICAgICAgICAgICAgICAgICAnb2ZmZXIvYW5zd2VyIHJldGFpbnMgZHRscyB0cmFuc3Bv
cnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvVHAsIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVsx
XS5zZW5kZXIudHJhbnNwb3J0LAorICAgICAgICAgICAgICAgICAgJ29mZmVyL2Fuc3dlciByZXRh
aW5zIGR0bHMgdHJhbnNwb3J0Jyk7CisKKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21p
c2UyID0KKyAgICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQ
cm9taXNlMjsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBj
MiwgbmVnb3RpYXRvcik7CisKKyAgICBjb25zdCBbbmV3VmlkZW9UcCwgbmV3QXVkaW9UcF0gPQor
ICAgICAgICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKCkubWFwKHRjID0+IHRjLnNlbmRlci50cmFuc3Bv
cnQpOworICAgIGFzc2VydF9lcXVhbHModmlkZW9UcCwgbmV3VmlkZW9UcCwgJ2ljZSByZXN0YXJ0
IHJldGFpbnMgZHRscyB0cmFuc3BvcnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvVHAsIG5l
d0F1ZGlvVHAsICdpY2UgcmVzdGFydCByZXRhaW5zIGR0bHMgdHJhbnNwb3J0Jyk7CisgIH0sIGBy
ZXN0YXJ0SWNlKCkgcmV0YWlucyBkdGxzIHRyYW5zcG9ydHMke3RhZ31gKTsKKworICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIu
Y2xvc2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAgYXdhaXQg
bmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0
IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKwor
ICAgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsK
KyAgICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7
CisKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldE9mZmVyKHBjMSk7CisgICAgcGMxLnJlc3RhcnRJ
Y2UoKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3Jp
cHRpb24pOworICAgIGF3YWl0IG5lZ290aWF0b3Iuc2V0QW5zd2VyKHBjMik7CisgICAgLy8gU2V2
ZXJhbCB0ZXN0cyBpbiB0aGlzIGZpbGUgaW5pdGlhbGl6ZXMgdGhlIG9ubmVnb3RpYXRpb25uZWVk
ZWQgbGlzdGVuZXIKKyAgICAvLyBiZWZvcmUgdGhlIHNldExvY2FsRGVzY3JpcHRpb24oKSBvciBz
ZXRSZW1vdGVEZXNjcmlwdGlvbigpIHRoYXQgd2UgZXhwZWN0CisgICAgLy8gdG8gdHJpZ2dlciBu
ZWdvdGlhdGlvbiBuZWVkZWQuIFRoaXMgYWxsb3dzIENocm9tZSB0byBleGVyY2lzZSB0aGVzZSB0
ZXN0cworICAgIC8vIHdpdGhvdXQgdGltaW5nIG91dCBkdWUgdG8gYSBidWcgdGhhdCBjYXVzZXMg
b25uZWdvdGlhdGlvbm5lZWRlZCB0byBmaXJlIHRvbworICAgIC8vIGVhcmx5LgorICAgIC8vIFRP
RE8oaHR0cHM6Ly9jcmJ1Zy5jb20vOTg1Nzk3KTogT25jZSBDaHJvbWUgZG9lcyBub3QgZmlyZSBP
Tk4gdG9vIGVhcmx5LAorICAgIC8vIHNpbXBseSBkbyAiYXdhaXQgbmV3IFByb21pc2UoLi4uKSIg
aW5zdGVhZCBvZgorICAgIC8vICJhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UiIGhlcmUg
YW5kIGluIG90aGVyIHRlc3RzIGluIHRoaXMgZmlsZS4KKyAgICBjb25zdCBuZWdvdGlhdGlvbk5l
ZWRlZFByb21pc2UgPQorICAgICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9u
bmVlZGVkID0gcik7CisgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2Nh
bERlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxv
Y2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzEsICJVbmNoYW5nZWQgMSIpOworICAgIGFzc2Vy
dF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVm
cmFnMiwgIlVuY2hhbmdlZCAyIik7CisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNl
OworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdv
dGlhdG9yKTsKKyAgICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNj
cmlwdGlvbik7CisgICAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVz
Y3JpcHRpb24pOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVm
cmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhu
ZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOworICAgIGF3YWl0IGFzc2Vy
dE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKKyAgfSwgYHJlc3RhcnRJY2UoKSB3b3JrcyBp
biBoYXZlLWxvY2FsLW9mZmVyJHt0YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMx
LmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAg
cGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4g
cGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldE9m
ZmVyKHBjMSk7CisgICAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3Rl
RGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGF3YWl0IG5lZ290aWF0b3Iu
c2V0QW5zd2VyKHBjMik7CisgICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KKyAg
ICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAg
IGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7Cisg
ICAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwor
ICAgIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsK
KyAgICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2U7CisgICAgYXdhaXQgZXhjaGFuZ2VP
ZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0b3IpOworICAgIGNvbnN0IFtu
ZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBb
bmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0
X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2Vk
Iik7CisgICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAi
dWZyYWcgMiBjaGFuZ2VkIik7CisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0
LCBwYzEpOworICB9LCBgcmVzdGFydEljZSgpIHdvcmtzIGluIGluaXRpYWwgaGF2ZS1sb2NhbC1v
ZmZlciR7dGFnfWApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2Nl
aXZlcigiYXVkaW8iKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0
aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3Qo
cGMxLCBwYzIsIG5lZ290aWF0b3IpOworCisgICAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJh
Z3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZy
YWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAgIGF3YWl0IG5lZ290aWF0b3Iuc2V0T2Zm
ZXIocGMyKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVz
Y3JpcHRpb24pOworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90
ZURlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVBbnN3ZXIoKSk7CisgICAgY29uc3QgbmVnb3Rp
YXRpb25OZWVkZWRQcm9taXNlID0KKyAgICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdv
dGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHBj
Mi5yZW1vdGVEZXNjcmlwdGlvbik7IC8vIEVuZCBvbiBwYzEuIE5vIHJhY2UKKyAgICBhc3NlcnRf
dWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJh
ZzEsICJVbmNoYW5nZWQgMSIpOworICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhw
YzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMiwgIlVuY2hhbmdlZCAyIik7CisgICAg
YXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJB
bnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKyAgICBjb25zdCBbbmV3VWZy
YWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW25ld1Vm
cmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGFzc2VydF91ZnJh
Z3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOwor
ICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFn
IDIgY2hhbmdlZCIpOworICAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMx
KTsKKyAgfSwgYHJlc3RhcnRJY2UoKSB3b3JrcyBpbiBoYXZlLXJlbW90ZS1vZmZlciR7dGFnfWAp
OworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMi5hZGRUcmFuc2NlaXZlcigiYXVkaW8i
KTsKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldE9mZmVyKHBjMik7CisgICAgYXdhaXQgcGMxLnNl
dFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBwYzEucmVzdGFy
dEljZSgpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3Jl
YXRlQW5zd2VyKCkpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHBjMi5yZW1v
dGVEZXNjcmlwdGlvbik7IC8vIEVuZCBvbiBwYzEuIE5vIHJhY2UKKyAgICBhd2FpdCBhc3NlcnRO
b05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkgZG9lcyBub3Ro
aW5nIGluIGluaXRpYWwgaGF2ZS1yZW1vdGUtb2ZmZXIke3RhZ31gKTsKKworICBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xv
c2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAgYXdhaXQgbmV3
IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IGV4
Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKworICAg
IGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAg
ICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisK
KyAgICBwYzEucmVzdGFydEljZSgpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9u
bmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21p
c2UgPQorICAgICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0g
cik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uU2Vjb25kKHBjMiwgcGMxLCBu
ZWdvdGlhdG9yKTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2Fs
RGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzEsICJub3RoaW5nIHlldCAxIik7CisgICAgYXNzZXJ0
X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZy
YWcyLCAibm90aGluZyB5ZXQgMiIpOworICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlz
ZTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMiwgbmVn
b3RpYXRvcik7CisgICAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVz
Y3JpcHRpb24pOworICAgIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERl
c2NyaXB0aW9uKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRV
ZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMo
bmV3VWZyYWcyLCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKKyAgICBhd2FpdCBhc3Nl
cnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkgc3Vydml2
ZXMgcmVtb3RlIG9mZmVyJHt0YWd9YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNs
b3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMx
LmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMx
Lm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2Vy
RW5kT25GaXJzdChwYzEsIHBjMiwgbmVnb3RpYXRvcik7CisKKyAgICBjb25zdCBbb2xkVWZyYWcx
XSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgY29uc3QgW29sZFVmcmFn
Ml0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgcGMxLnJlc3RhcnRJ
Y2UoKTsKKyAgICBwYzIucmVzdGFydEljZSgpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4g
cGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5z
d2VyRW5kT25TZWNvbmQocGMyLCBwYzEsIG5lZ290aWF0b3IpOworICAgIGNvbnN0IFtuZXdVZnJh
ZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbbmV3VWZy
YWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X3VmcmFn
c19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7Cisg
ICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcg
MiBjaGFuZ2VkIik7CisgICAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEp
OworCisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5l
Z290aWF0b3IpOworICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxE
ZXNjcmlwdGlvbilbMF0sIG5ld1VmcmFnMSwgIlVuY2hhbmdlZCAxIik7CisgICAgYXNzZXJ0X3Vm
cmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgbmV3VWZyYWcy
LCAiVW5jaGFuZ2VkIDIiKTsKKyAgICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQs
IHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkgaXMgc2F0aXNmaWVkIGJ5IHJlbW90ZSBJQ0UgcmVz
dGFydCR7dGFnfWApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2Nl
aXZlcigiYXVkaW8iKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0
aW9ubmVlZGVkID0gcik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3Qo
cGMxLCBwYzIsIG5lZ290aWF0b3IpOworCisgICAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJh
Z3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZy
YWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAg
YXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAg
IGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcih7aWNl
UmVzdGFydDogZmFsc2V9KSk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBj
MS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldEFuc3dlcihwYzIp
OworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlv
bik7CisgICAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRp
b24pOworICAgIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0
aW9uKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEs
ICJ1ZnJhZyAxIGNoYW5nZWQiKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZy
YWcxLCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKKyAgICBhd2FpdCBhc3NlcnROb05l
Z290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CisgIH0sIGByZXN0YXJ0SWNlKCkgdHJ1bXBzIHtpY2VS
ZXN0YXJ0OiBmYWxzZX0ke3RhZ31gKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xv
c2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBwYzEu
YWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEu
b25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJF
bmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdvdGlhdG9yKTsKKworICAgIGNvbnN0IFtvbGRVZnJhZzFd
ID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBbb2xkVWZyYWcy
XSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgICBwYzEucmVzdGFydElj
ZSgpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQg
PSByKTsKKyAgICBhd2FpdCBuZWdvdGlhdG9yLnNldE9mZmVyKHBjMSk7CisgICAgY29uc3QgbmVn
b3RpYXRpb25OZWVkZWRQcm9taXNlID0KKyAgICAgICAgbmV3IFByb21pc2UociA9PiBwYzEub25u
ZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9u
KHt0eXBlOiAicm9sbGJhY2sifSk7CisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNl
OworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyLCBuZWdv
dGlhdG9yKTsKKyAgICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNj
cmlwdGlvbik7CisgICAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVz
Y3JpcHRpb24pOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVm
cmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhu
ZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOworICAgIGF3YWl0IGFzc2Vy
dE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKKyAgfSwgYHJlc3RhcnRJY2UoKSBzdXJ2aXZl
cyByb2xsYmFjayR7dGFnfWApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBj
b25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe2J1bmRsZVBvbGljeTogIm1heC1jb21w
YXQifSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHtidW5kbGVQb2xp
Y3k6ICJtYXgtY29tcGF0In0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkp
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgcGMxLmFkZFRy
YW5zY2VpdmVyKCJhdWRpbyIpOworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Cisg
ICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIsIG5lZ290aWF0
b3IpOworCisgICAgY29uc3Qgb2xkVWZyYWdzMSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlw
dGlvbik7CisgICAgY29uc3Qgb2xkVWZyYWdzMiA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlw
dGlvbik7CisgICAgY29uc3Qgb2xkUHdkczIgPSBnZXRQd2RzKHBjMi5sb2NhbERlc2NyaXB0aW9u
KTsKKworICAgIHBjMS5yZXN0YXJ0SWNlKCk7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBw
YzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworCisgICAgLy8gRW5naW5lZXIgYSBwYXJ0aWFs
IElDRSByZXN0YXJ0IGZyb20gcGMyCisgICAgcGMyLnJlc3RhcnRJY2UoKTsKKyAgICBhd2FpdCBu
ZWdvdGlhdG9yLnNldE9mZmVyKHBjMik7CisgICAgeworICAgICAgbGV0IHt0eXBlLCBzZHB9ID0g
cGMyLmxvY2FsRGVzY3JpcHRpb247CisgICAgICAvLyBSZXN0b3JlIGJvdGggb2xkIGljZS11ZnJh
ZyBhbmQgb2xkIGljZS1wd2QgdG8gdHJpZ2dlciBhIHBhcnRpYWwgcmVzdGFydAorICAgICAgc2Rw
ID0gc2RwLnJlcGxhY2UoZ2V0VWZyYWdzKHtzZHB9KVswXSwgb2xkVWZyYWdzMlswXSk7CisgICAg
ICBzZHAgPSBzZHAucmVwbGFjZShnZXRQd2RzKHtzZHB9KVswXSwgb2xkUHdkczJbMF0pOworICAg
ICAgY29uc3QgbmV3VWZyYWdzMiA9IGdldFVmcmFncyh7c2RwfSk7CisgICAgICBjb25zdCBuZXdQ
d2RzMiA9IGdldFB3ZHMoe3NkcH0pOworICAgICAgYXNzZXJ0X3VmcmFnc19lcXVhbHMobmV3VWZy
YWdzMlswXSwgb2xkVWZyYWdzMlswXSwgImNvbnRyb2wgdWZyYWcgbWF0Y2giKTsKKyAgICAgIGFz
c2VydF91ZnJhZ3NfZXF1YWxzKG5ld1B3ZHMyWzBdLCBvbGRQd2RzMlswXSwgImNvbnRyb2wgcHdk
IG1hdGNoIik7CisgICAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWdzMlsxXSwg
b2xkVWZyYWdzMlsxXSwgImNvbnRyb2wgdWZyYWcgbm9uLW1hdGNoIik7CisgICAgICBhc3NlcnRf
dWZyYWdzX25vdF9lcXVhbHMobmV3UHdkczJbMV0sIG9sZFB3ZHMyWzFdLCAiY29udHJvbCBwd2Qg
bm9uLW1hdGNoIik7CisgICAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGUs
IHNkcH0pOworICAgIH0KKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQorICAg
ICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgICAg
YXdhaXQgbmVnb3RpYXRvci5zZXRBbnN3ZXIocGMxKTsKKyAgICBjb25zdCBuZXdVZnJhZ3MxID0g
Z2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFs
cyhuZXdVZnJhZ3MxWzBdLCBvbGRVZnJhZ3MxWzBdLCAiVW5jaGFuZ2VkIDEiKTsKKyAgICBhc3Nl
cnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWdzMVsxXSwgb2xkVWZyYWdzMVsxXSwgIlJlc3Rh
cnRlZCAyIik7CisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOworICAgIGF3YWl0
IG5lZ290aWF0b3Iuc2V0T2ZmZXIocGMxKTsKKyAgICBjb25zdCBuZXdlc3RVZnJhZ3MxID0gZ2V0
VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhc3NlcnRfdWZyYWdzX25vdF9lcXVh
bHMobmV3ZXN0VWZyYWdzMVswXSwgb2xkVWZyYWdzMVswXSwgIlJlc3RhcnRlZCAxIik7CisgICAg
YXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld2VzdFVmcmFnczFbMV0sIG9sZFVmcmFnczFbMV0s
ICJSZXN0YXJ0ZWQgMiIpOworICAgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwg
cGMxKTsKKyAgfSwgYHJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByZW1vdGUgb2ZmZXIgY29udGFpbmlu
ZyBwYXJ0aWFsIHJlc3RhcnQke3RhZ31gKTsKIAotICBwYzEucmVzdGFydEljZSgpOwotICBwYzIu
cmVzdGFydEljZSgpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9u
bmVlZGVkID0gcik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPblNlY29uZChwYzIs
IHBjMSk7Ci0gIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0
aW9uKTsKLSAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRp
b24pOwotICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1
ZnJhZyAxIGNoYW5nZWQiKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwg
b2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7Ci0gIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRp
b25OZWVkZWQodCwgcGMxKTsKLQotICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJz
dChwYzEsIHBjMik7Ci0gIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxE
ZXNjcmlwdGlvbilbMF0sIG5ld1VmcmFnMSwgIlVuY2hhbmdlZCAxIik7Ci0gIGFzc2VydF91ZnJh
Z3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG5ld1VmcmFnMiwg
IlVuY2hhbmdlZCAyIik7Ci0gIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMx
KTsKLX0sICJyZXN0YXJ0SWNlKCkgaXMgc2F0aXNmaWVkIGJ5IHJlbW90ZSBJQ0UgcmVzdGFydCIp
OwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwotICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKLSAgYXdhaXQg
bmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwotICBhd2FpdCBl
eGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0KLSAgY29uc3QgW29sZFVm
cmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBbb2xkVWZy
YWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0KLSAgcGMxLnJlc3RhcnRJ
Y2UoKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOwotICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2Zm
ZXIoe2ljZVJlc3RhcnQ6IGZhbHNlfSkpOwotICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRp
b24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOwotICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlv
bihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOwotICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3Jp
cHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVm
cmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZy
YWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5l
d1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7Ci0gIGFzc2VydF91ZnJhZ3Nf
bm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOwotICBh
d2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVzdGFydEljZSgp
IHRydW1wcyB7aWNlUmVzdGFydDogZmFsc2V9Iik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKLSAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9z
ZSgpKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgcGMxLmFkZFRy
YW5zY2VpdmVyKCJhdWRpbyIpOwotICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290
aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0
KHBjMSwgcGMyKTsKLQotICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxE
ZXNjcmlwdGlvbik7Ci0gIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERl
c2NyaXB0aW9uKTsKLQotICBwYzEucmVzdGFydEljZSgpOwotICBhd2FpdCBuZXcgUHJvbWlzZShy
ID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0IHBjMS5zZXRMb2NhbERl
c2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKLSAgY29uc3QgbmVnb3RpYXRpb25O
ZWVkZWRQcm9taXNlID0KLSAgICAgIG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25u
ZWVkZWQgPSByKTsKLSAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xs
YmFjayJ9KTsKLSAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOwotICBhd2FpdCBleGNo
YW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Ci0gIGNvbnN0IFtuZXdVZnJhZzFd
ID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3QgW25ld1VmcmFnMl0g
PSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOwotICBhc3NlcnRfdWZyYWdzX25vdF9l
cXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKLSAgYXNzZXJ0
X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2Vk
Iik7Ci0gIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKLX0sICJyZXN0
YXJ0SWNlKCkgc3Vydml2ZXMgcm9sbGJhY2siKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
ewotICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe2J1bmRsZVBvbGljeTogIm1h
eC1jb21wYXQifSk7Ci0gIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7YnVuZGxl
UG9saWN5OiAibWF4LWNvbXBhdCJ9KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gIHBjMS5hZGRUcmFu
c2NlaXZlcigiYXVkaW8iKTsKLSAgcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOwotICBhd2Fp
dCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Ci0gIGF3YWl0
IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKLQotICBjb25zdCBvbGRV
ZnJhZ3MxID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3Qgb2xkVWZy
YWdzMiA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IG9sZFB3ZHMy
ID0gZ2V0UHdkcyhwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0KLSAgcGMxLnJlc3RhcnRJY2UoKTsK
LSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwot
Ci0gIC8vIEVuZ2luZWVyIGEgcGFydGlhbCBJQ0UgcmVzdGFydCBmcm9tIHBjMgotICBwYzIucmVz
dGFydEljZSgpOwotICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3Jl
YXRlT2ZmZXIoKSk7Ci0gIHsKLSAgICBsZXQge3R5cGUsIHNkcH0gPSBwYzIubG9jYWxEZXNjcmlw
dGlvbjsKLSAgICAvLyBSZXN0b3JlIGJvdGggb2xkIGljZS11ZnJhZyBhbmQgb2xkIGljZS1wd2Qg
dG8gdHJpZ2dlciBhIHBhcnRpYWwgcmVzdGFydAotICAgIHNkcCA9IHNkcC5yZXBsYWNlKGdldFVm
cmFncyh7c2RwfSlbMF0sIG9sZFVmcmFnczJbMF0pOwotICAgIHNkcCA9IHNkcC5yZXBsYWNlKGdl
dFB3ZHMoe3NkcH0pWzBdLCBvbGRQd2RzMlswXSk7Ci0gICAgY29uc3QgbmV3VWZyYWdzMiA9IGdl
dFVmcmFncyh7c2RwfSk7Ci0gICAgY29uc3QgbmV3UHdkczIgPSBnZXRQd2RzKHtzZHB9KTsKLSAg
ICBhc3NlcnRfdWZyYWdzX2VxdWFscyhuZXdVZnJhZ3MyWzBdLCBvbGRVZnJhZ3MyWzBdLCAiY29u
dHJvbCB1ZnJhZyBtYXRjaCIpOwotICAgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKG5ld1B3ZHMyWzBd
LCBvbGRQd2RzMlswXSwgImNvbnRyb2wgcHdkIG1hdGNoIik7Ci0gICAgYXNzZXJ0X3VmcmFnc19u
b3RfZXF1YWxzKG5ld1VmcmFnczJbMV0sIG9sZFVmcmFnczJbMV0sICJjb250cm9sIHVmcmFnIG5v
bi1tYXRjaCIpOwotICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdQd2RzMlsxXSwgb2xk
UHdkczJbMV0sICJjb250cm9sIHB3ZCBub24tbWF0Y2giKTsKLSAgICBhd2FpdCBwYzEuc2V0UmVt
b3RlRGVzY3JpcHRpb24oe3R5cGUsIHNkcH0pOwotICB9Ci0gIGNvbnN0IG5lZ290aWF0aW9uTmVl
ZGVkUHJvbWlzZSA9Ci0gICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVl
ZGVkID0gcik7Ci0gIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVh
dGVBbnN3ZXIoKSk7Ci0gIGNvbnN0IG5ld1VmcmFnczEgPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVz
Y3JpcHRpb24pOwotICBhc3NlcnRfdWZyYWdzX2VxdWFscyhuZXdVZnJhZ3MxWzBdLCBvbGRVZnJh
Z3MxWzBdLCAiVW5jaGFuZ2VkIDEiKTsKLSAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1Vm
cmFnczFbMV0sIG9sZFVmcmFnczFbMV0sICJSZXN0YXJ0ZWQgMiIpOwotICBhd2FpdCBuZWdvdGlh
dGlvbk5lZWRlZFByb21pc2U7Ci0gIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0
IHBjMS5jcmVhdGVPZmZlcigpKTsKLSAgY29uc3QgbmV3ZXN0VWZyYWdzMSA9IGdldFVmcmFncyhw
YzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdlc3RV
ZnJhZ3MxWzBdLCBvbGRVZnJhZ3MxWzBdLCAiUmVzdGFydGVkIDEiKTsKLSAgYXNzZXJ0X3VmcmFn
c19ub3RfZXF1YWxzKG5ld2VzdFVmcmFnczFbMV0sIG9sZFVmcmFnczFbMV0sICJSZXN0YXJ0ZWQg
MiIpOwotICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Ci19LCAicmVz
dGFydEljZSgpIHN1cnZpdmVzIHJlbW90ZSBvZmZlciBjb250YWluaW5nIHBhcnRpYWwgcmVzdGFy
dCIpOworfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVz
Y3JpcHRpb24tcHJhbnN3ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNj
cmlwdGlvbi1wcmFuc3dlci1leHBlY3RlZC50eHQKaW5kZXggMTAyNjRlYjZlNDE2NzdmNGNhOTk0
NTRiZjI4NjMwOWM3ZmNhYzYzYS4uNjk4NmUzZTBjMTQ4NjM3ZmJjMDc4MTdjNjFlZDY4MzMyNjQ4
Y2VkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wcmFuc3dl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wcmFu
c3dlci1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKIEZBSUwgc2V0TG9jYWxEZXNjcmlw
dGlvbihwcmFuc3dlcikgZnJvbSBzdGFibGUgc3RhdGUgc2hvdWxkIHJlamVjdCB3aXRoIEludmFs
aWRTdGF0ZUVycm9yIHByb21pc2VfcmVqZWN0c19kb206IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJPcGVyYXRpb25FcnJvcjogRmFpbGVkIHRvIHNldCBs
b2NhbCBwcmFuc3dlciBzZHA6IENhbGxlZCBpbiB3cm9uZyBzdGF0ZTogc3RhYmxlIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlz
IGVxdWFsIHRvIDAsIGV4cGVjdGVkIDExCi1GQUlMIHNldExvY2FsRGVzY3JpcHRpb24ocHJhbnN3
ZXIpIHNob3VsZCBzdWNjZWVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBv
YmplY3QgIltvYmplY3QgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uXSIKK1BBU1Mgc2V0TG9jYWxEZXNj
cmlwdGlvbihwcmFuc3dlcikgc2hvdWxkIHN1Y2NlZWQKIFBBU1Mgc2V0TG9jYWxEZXNjcmlwdGlv
bihwcmFuc3dlcikgY2FuIGJlIGFwcGxpZWQgbXVsdGlwbGUgdGltZXMgd2hpbGUgc3RpbGwgaW4g
aGF2ZS1sb2NhbC1wcmFuc3dlcgogUEFTUyBzZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikgZnJv
bSBoYXZlLWxvY2FsLXByYW5zd2VyIHN0YXRlIHNob3VsZCBzdWNjZWVkCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbAppbmRleCBlNDI5NmFlZjEzOWYx
OWQwODIyOWM5NDUwZjYxYzMwNzA2MTQ3ZDI0Li4wMTg0NWYwOWIxNmNlMWZmMDM3NDdmMDM5ZGVl
NWRlODliMTlhNWFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9u
LXByYW5zd2VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wcmFu
c3dlci5odG1sCkBAIC0xMDMsNyArMTAzLDYgQEAKICAgICAgICAgICBhc3NlcnRfc2Vzc2lvbl9k
ZXNjX3NpbWlsYXIocGMucGVuZGluZ0xvY2FsRGVzY3JpcHRpb24sIHByYW5zd2VyKTsKICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHBjLmN1cnJlbnRMb2NhbERlc2NyaXB0aW9uLCBudWxsKTsKIAot
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocGMucGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uLCBudWxs
KTsKIAogICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc3RhdGVzLCBbJ2hhdmUtcmVtb3Rl
LW9mZmVyJywgJ2hhdmUtbG9jYWwtcHJhbnN3ZXInXSk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tdHJhY2tzLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXRyYWNrcy5odHRwcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTM2Y2M2ZmVlMzBiZGE5MzFmODczZjgyZDU0ZDU1OTU5MzJh
MGFlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9u
LXRyYWNrcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorCitQQVNTIGFkZFRy
YWNrKCkgd2l0aCBhIHRyYWNrIGFuZCBubyBzdHJlYW0gbWFrZXMgb250cmFjayBmaXJlIHdpdGgg
YSB0cmFjayBhbmQgbm8gc3RyZWFtLgorUEFTUyBhZGRUcmFjaygpIHdpdGggYSB0cmFjayBhbmQg
YSBzdHJlYW0gbWFrZXMgb250cmFjayBmaXJlIHdpdGggYSB0cmFjayBhbmQgYSBzdHJlYW0uCitQ
QVNTIG9udHJhY2sgZmlyZXMgYmVmb3JlIHNldFJlbW90ZURlc2NyaXB0aW9uIHJlc29sdmVzLgor
UEFTUyBhZGRUcmFjaygpIHdpdGggdHdvIHRyYWNrcyBhbmQgb25lIHN0cmVhbSBtYWtlcyBvbnRy
YWNrIGZpcmUgdHdpY2Ugd2l0aCB0aGUgdHJhY2tzIGFuZCBzaGFyZWQgc3RyZWFtLgorUEFTUyBh
ZGRUcmFjaygpIGZvciBhbiBleGlzdGluZyBzdHJlYW0gbWFrZXMgc3RyZWFtLm9uYWRkdHJhY2sg
ZmlyZS4KK1BBU1Mgc3RyZWFtLm9uYWRkdHJhY2sgZmlyZXMgYmVmb3JlIHNldFJlbW90ZURlc2Ny
aXB0aW9uIHJlc29sdmVzLgorUEFTUyBhZGRUcmFjaygpIHdpdGggYSB0cmFjayBhbmQgdHdvIHN0
cmVhbXMgbWFrZXMgb250cmFjayBmaXJlIHdpdGggYSB0cmFjayBhbmQgdHdvIHN0cmVhbXMuCitQ
QVNTIG9udHJhY2sncyByZWNlaXZlciBtYXRjaGVzIGdldFJlY2VpdmVycygpLgorUEFTUyByZW1v
dmVUcmFjaygpIGRvZXMgbm90IHJlbW92ZSB0aGUgcmVjZWl2ZXIuCitQQVNTIHJlbW92ZVRyYWNr
KCkgbWFrZXMgc3RyZWFtLm9ucmVtb3ZldHJhY2sgZmlyZSBhbmQgdGhlIHRyYWNrIHRvIGJlIHJl
bW92ZWQgZnJvbSB0aGUgc3RyZWFtLgorUEFTUyBzdHJlYW0ub25yZW1vdmV0cmFjayBmaXJlcyBi
ZWZvcmUgc2V0UmVtb3RlRGVzY3JpcHRpb24gcmVzb2x2ZXMuCitQQVNTIHJlbW92ZVRyYWNrKCkg
bWFrZXMgdHJhY2sub25tdXRlIGZpcmUgYW5kIHRoZSB0cmFjayB0byBiZSBtdXRlZC4KK1BBU1Mg
dHJhY2sub25tdXRlIGZpcmVzIGJlZm9yZSBzZXRSZW1vdGVEZXNjcmlwdGlvbiByZXNvbHZlcy4K
K1BBU1MgcmVtb3ZlVHJhY2soKSB0d2ljZSBpcyBzYWZlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0
ZXJzLWRlZ3JhZGF0aW9uUHJlZmVyZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRlZ3Jh
ZGF0aW9uUHJlZmVyZW5jZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA3NjU3ODI1YmQ4MjFh
ZThkZjVmY2EwM2IwMmZlNTM5ZWI3YjcwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMt
ZGVncmFkYXRpb25QcmVmZXJlbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworRkFJ
TCBzZXRQYXJhbWV0ZXJzIHdpdGggZGVncmFkYXRpb25QcmVmZXJlbmNlIHNldCBzaG91bGQgc3Vj
Y2VlZCBhc3NlcnRfbm90X2VxdWFsczogRXhwZWN0IHNlbmRlciBwYXJhbS5ydGNwLmNuYW1lIHRv
IGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSB1bmRlZmluZWQKK0ZBSUwgc2V0UGFyYW1ldGVy
cyB3aXRoIGRlZ3JhZGF0aW9uUHJlZmVyZW5jZSB1bnNldCBzaG91bGQgc3VjY2VlZCBhc3NlcnRf
bm90X2VxdWFsczogRXhwZWN0IHNlbmRlciBwYXJhbS5ydGNwLmNuYW1lIHRvIGJlIHNldCBnb3Qg
ZGlzYWxsb3dlZCB2YWx1ZSB1bmRlZmluZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdy
YWRhdGlvblByZWZlcmVuY2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTJjOTJiYzFjMDgxNGYyOTRlMWI5MTUzZmViYzc2ODg2Y2YyZmRi
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLmh0
bWwKQEAgLTAsMCArMSw4NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPlJUQ1J0cFBhcmFtZXRlcnMgZGVncmFkYXRpb25QcmVmZXJlbmNlPC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJkaWN0aW9uYXJ5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRD
UnRwUGFyYW1ldGVycy1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJp
Y3QnOworCisgIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6
CisgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUv
d2VicnRjLmh0bWwKKworICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNh
bGxlZCBmcm9tIFJUQ1J0cFBhcmFtZXRlcnMtaGVscGVyLmpzOgorICAvLyAgIHZhbGlkYXRlU2Vu
ZGVyUnRwUGFyYW1ldGVycworCisgIC8qCisgICAgNS4yLiAgUlRDUnRwU2VuZGVyIEludGVyZmFj
ZQorICAgICAgaW50ZXJmYWNlIFJUQ1J0cFNlbmRlciB7CisgICAgICAgIFByb21pc2U8dm9pZD4g
ICAgICAgICAgIHNldFBhcmFtZXRlcnMob3B0aW9uYWwgUlRDUnRwUGFyYW1ldGVycyBwYXJhbWV0
ZXJzKTsKKyAgICAgICAgUlRDUnRwUGFyYW1ldGVycyAgICAgICAgZ2V0UGFyYW1ldGVycygpOwor
ICAgICAgfTsKKworICAgICAgZGljdGlvbmFyeSBSVENSdHBQYXJhbWV0ZXJzIHsKKyAgICAgICAg
RE9NU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JZDsK
KyAgICAgICAgc2VxdWVuY2U8UlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJzPiAgICAgICAgZW5jb2Rp
bmdzOworICAgICAgICBzZXF1ZW5jZTxSVENSdHBIZWFkZXJFeHRlbnNpb25QYXJhbWV0ZXJzPiBo
ZWFkZXJFeHRlbnNpb25zOworICAgICAgICBSVENSdGNwUGFyYW1ldGVycyAgICAgICAgICAgICAg
ICAgICAgICAgICBydGNwOworICAgICAgICBzZXF1ZW5jZTxSVENSdHBDb2RlY1BhcmFtZXRlcnM+
ICAgICAgICAgICBjb2RlY3M7CisgICAgICAgIFJUQ0RlZ3JhZGF0aW9uUHJlZmVyZW5jZSAgICAg
ICAgICAgICAgICAgIGRlZ3JhZGF0aW9uUHJlZmVyZW5jZTsKKyAgICAgIH07CisKKyAgICAgIGVu
dW0gUlRDRGVncmFkYXRpb25QcmVmZXJlbmNlIHsKKyAgICAgICAgIm1haW50YWluLWZyYW1lcmF0
ZSIsCisgICAgICAgICJtYWludGFpbi1yZXNvbHV0aW9uIiwKKyAgICAgICAgImJhbGFuY2VkIgor
ICAgICAgfTsKKworICAgICAgLSBkZWdyYWRhdGlvblByZWZlcmVuY2UgaXMgc2V0IHRvIHRoZSBs
YXN0IHZhbHVlIHBhc3NlZCBpbnRvIHNldFBhcmFtZXRlcnMsCisgICAgICAgIG9yIHRoZSBkZWZh
dWx0IHZhbHVlIG9mICJiYWxhbmNlZCIgaWYgc2V0UGFyYW1ldGVycyBoYXNuJ3QgYmVlbiBjYWxs
ZWQuCisgICAqLworCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
CisgICAgY29uc3QgeyBzZW5kZXIgfSA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworCisg
ICAgY29uc3QgcGFyYW0gPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOworICAgIHZhbGlkYXRlU2Vu
ZGVyUnRwUGFyYW1ldGVycyhwYXJhbSk7CisKKyAgICBhc3NlcnRfZXF1YWxzKHBhcmFtLmRlZ3Jh
ZGF0aW9uUHJlZmVyZW5jZSwgJ2JhbGFuY2VkJywKKyAgICAgICdFeHBlY3QgaW5pdGlhbCBwYXJh
bS5kZWdyYWRhdGlvblByZWZlcmVuY2UgdG8gYmUgYmFsYW5jZWQnKTsKKworICAgIHBhcmFtLmRl
Z3JhZGF0aW9uUHJlZmVyZW5jZSA9ICdtYWludGFpbi1mcmFtZXJhdGUnOworCisgICAgcmV0dXJu
IHBjLnNldFBhcmFtZXRlcnMocGFyYW0pCisgICAgLnRoZW4oKCkgPT4geworICAgICAgY29uc3Qg
cGFyYW0gPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOworICAgICAgdmFsaWRhdGVTZW5kZXJSdHBQ
YXJhbWV0ZXJzKHBhcmFtKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhwYXJhbS5kZWdyYWRhdGlv
blByZWZlcmVuY2UsICdtYWludGFpbi1mcmFtZXJhdGUnKTsKKyAgICB9KTsKKyAgfSwgJ3NldFBh
cmFtZXRlcnMgd2l0aCBkZWdyYWRhdGlvblByZWZlcmVuY2Ugc2V0IHNob3VsZCBzdWNjZWVkJyk7
CisKKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBjb25z
dCB7IHNlbmRlciB9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisKKyAgICBjb25zdCBw
YXJhbSA9IHNlbmRlci5nZXRQYXJhbWV0ZXJzKCk7CisgICAgdmFsaWRhdGVTZW5kZXJSdHBQYXJh
bWV0ZXJzKHBhcmFtKTsKKworICAgIGFzc2VydF9lcXVhbHMocGFyYW0uZGVncmFkYXRpb25QcmVm
ZXJlbmNlLCAnYmFsYW5jZWQnLAorICAgICAgJ0V4cGVjdCBpbml0aWFsIHBhcmFtLmRlZ3JhZGF0
aW9uUHJlZmVyZW5jZSB0byBiZSBiYWxhbmNlZCcpOworCisgICAgcGFyYW0uZGVncmFkYXRpb25Q
cmVmZXJlbmNlID0gdW5kZWZpbmVkOworCisgICAgcmV0dXJuIHBjLnNldFBhcmFtZXRlcnMocGFy
YW0pCisgICAgLnRoZW4oKCkgPT4geworICAgICAgY29uc3QgcGFyYW0gPSBzZW5kZXIuZ2V0UGFy
YW1ldGVycygpOworICAgICAgdmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKTsKKwor
ICAgICAgYXNzZXJ0X2VxdWFscyhwYXJhbS5kZWdyYWRhdGlvblByZWZlcmVuY2UsIHVuZGVmaW5l
ZCk7CisgICAgfSk7CisgIH0sICdzZXRQYXJhbWV0ZXJzIHdpdGggZGVncmFkYXRpb25QcmVmZXJl
bmNlIHVuc2V0IHNob3VsZCBzdWNjZWVkJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJh
bnNjZWl2ZXItc2V0RGlyZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldERpcmVj
dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk3OWM1YTZlMTYwMjMxZGJlNTU0MjY0MzUy
NTg0MDdkYzg4MmVjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldERpcmVjdGlv
bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK0ZBSUwgc2V0RGlyZWN0aW9uIHNob3Vs
ZCBjaGFuZ2UgdHJhbnNjZWl2ZXIuZGlyZWN0aW9uIHRyYW5zY2VpdmVyLnNldERpcmVjdGlvbiBp
cyBub3QgYSBmdW5jdGlvbi4gKEluICd0cmFuc2NlaXZlci5zZXREaXJlY3Rpb24oJ3JlY3Zvbmx5
JyknLCAndHJhbnNjZWl2ZXIuc2V0RGlyZWN0aW9uJyBpcyB1bmRlZmluZWQpCitGQUlMIHNldERp
cmVjdGlvbiB3aXRoIHNhbWUgZGlyZWN0aW9uIHNob3VsZCBoYXZlIG5vIGVmZmVjdCB0cmFuc2Nl
aXZlci5zZXREaXJlY3Rpb24gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndHJhbnNjZWl2ZXIuc2V0
RGlyZWN0aW9uKCdzZW5kb25seScpJywgJ3RyYW5zY2VpdmVyLnNldERpcmVjdGlvbicgaXMgdW5k
ZWZpbmVkKQorRkFJTCBzZXREaXJlY3Rpb24gc2hvdWxkIGNoYW5nZSB0cmFuc2NlaXZlci5kaXJl
Y3Rpb24gaW5kZXBlbmRlbnQgb2YgdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAicmVjdm9ubHkiIGJ1dCBnb3QgImluYWN0aXZlIgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBUcmFuc2NlaXZlci1zZXREaXJlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldERpcmVj
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyY2JmZjVkOTg1ODY4NDBhYjljMzdhMWUxZTA1ZjI2MjU2
MDg0OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXREaXJlY3Rpb24uaHRtbApA
QCAtMCwwICsxLDk1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8
dGl0bGU+UlRDUnRwVHJhbnNjZWl2ZXIucHJvdG90eXBlLnNldERpcmVjdGlvbjwvdGl0bGU+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cisg
ICd1c2Ugc3RyaWN0JzsKKworICAvLyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZWRp
dG9yIGRyYWZ0OgorICAvLyBodHRwczovL3Jhd2dpdC5jb20vdzNjL3dlYnJ0Yy1wYy9jYzhkODBm
NDU1Yjg2YzgwNDFkNjNiY2ViOGI0NTdmNDVjNzJhYTg5L3dlYnJ0Yy5odG1sCisKKyAgLy8gVGhl
IGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQZWVyQ29ubmVj
dGlvbi1oZWxwZXIuanM6CisgIC8vIGdlbmVyYXRlQW5zd2VyCisKKyAgLyoKKyAgICA1LjQuICBS
VENSdHBUcmFuc2NlaXZlciBJbnRlcmZhY2UKKyAgICAgIGludGVyZmFjZSBSVENSdHBUcmFuc2Nl
aXZlciB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENSdHBUcmFuc2NlaXZlckRpcmVj
dGlvbiAgZGlyZWN0aW9uOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDUnRwVHJhbnNj
ZWl2ZXJEaXJlY3Rpb24/IGN1cnJlbnREaXJlY3Rpb247CisgICAgICAgIHZvaWQgc2V0RGlyZWN0
aW9uKFJUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uIGRpcmVjdGlvbik7CisgICAgICAgIC4uLgor
ICAgICAgfTsKKyAgICovCisKKyAgIC8qCisgICAgNS40LiAgc2V0RGlyZWN0aW9uCisgICAgICA0
LiAgU2V0IHRyYW5zY2VpdmVyJ3MgW1tEaXJlY3Rpb25dXSBzbG90IHRvIG5ld0RpcmVjdGlvbi4K
KyAgICovCisgIHRlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycp
OworICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZHJlY3YnKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24sIG51bGwpOwor
CisgICAgdHJhbnNjZWl2ZXIuc2V0RGlyZWN0aW9uKCdyZWN2b25seScpOworICAgIGFzc2VydF9l
cXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAncmVjdm9ubHknKTsKKyAgICBhc3NlcnRfZXF1
YWxzKHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24sIG51bGwsCisgICAgICAnRXhwZWN0IHRy
YW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24gdG8gbm90IGNoYW5nZScpOworCisgIH0sICdzZXRE
aXJlY3Rpb24gc2hvdWxkIGNoYW5nZSB0cmFuc2NlaXZlci5kaXJlY3Rpb24nKTsKKworICAgLyoK
KyAgICA1LjQuICBzZXREaXJlY3Rpb24KKyAgICAgIDMuICBJZiBuZXdEaXJlY3Rpb24gaXMgZXF1
YWwgdG8gdHJhbnNjZWl2ZXIncyBbW0RpcmVjdGlvbl1dIHNsb3QsIGFib3J0CisgICAgICAgICAg
dGhlc2Ugc3RlcHMuCisgICAqLworICB0ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2Nl
aXZlcignYXVkaW8nLCB7IGRpcmVjdGlvbjogJ3NlbmRvbmx5JyB9KTsKKyAgICBhc3NlcnRfZXF1
YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3NlbmRvbmx5Jyk7CisgICAgdHJhbnNjZWl2ZXIu
c2V0RGlyZWN0aW9uKCdzZW5kb25seScpOworICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIu
ZGlyZWN0aW9uLCAnc2VuZG9ubHknKTsKKworICB9LCAnc2V0RGlyZWN0aW9uIHdpdGggc2FtZSBk
aXJlY3Rpb24gc2hvdWxkIGhhdmUgbm8gZWZmZWN0Jyk7CisKKyAgcHJvbWlzZV90ZXN0KHQgPT4g
eworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRy
YW5zY2VpdmVyKCdhdWRpbycsIHsgZGlyZWN0aW9uOiAncmVjdm9ubHknIH0pOworICAgIGFzc2Vy
dF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAncmVjdm9ubHknKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24sIG51bGwpOworCisgICAgcmV0dXJu
IHBjLmNyZWF0ZU9mZmVyKCkKKyAgICAudGhlbihvZmZlciA9PgorICAgICAgcGMuc2V0TG9jYWxE
ZXNjcmlwdGlvbihvZmZlcikKKyAgICAgIC50aGVuKCgpID0+IGdlbmVyYXRlQW5zd2VyKG9mZmVy
KSkpCisgICAgLnRoZW4oYW5zd2VyID0+IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcikp
CisgICAgLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5jdXJy
ZW50RGlyZWN0aW9uLCAncmVjdm9ubHknKTsKKyAgICAgIHRyYW5zY2VpdmVyLnNldERpcmVjdGlv
bignc2VuZHJlY3YnKTsKKyAgICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9u
LCAnc2VuZHJlY3YnKTsKKyAgICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERp
cmVjdGlvbiwgJ3JlY3Zvbmx5Jyk7CisgICAgfSk7CisgIH0sICdzZXREaXJlY3Rpb24gc2hvdWxk
IGNoYW5nZSB0cmFuc2NlaXZlci5kaXJlY3Rpb24gaW5kZXBlbmRlbnQgb2YgdHJhbnNjZWl2ZXIu
Y3VycmVudERpcmVjdGlvbicpOworCisgIC8qCisgICAgVE9ETworICAgICAgICBDYWxscyB0byBz
ZXREaXJlY3Rpb24oKSBkbyBub3QgdGFrZSBlZmZlY3QgaW1tZWRpYXRlbHkuIEluc3RlYWQsIGZ1
dHVyZSBjYWxscworICAgICAgICB0byBjcmVhdGVPZmZlciBhbmQgY3JlYXRlQW5zd2VyIG1hcmsg
dGhlIGNvcnJlc3BvbmRpbmcgbWVkaWEgZGVzY3JpcHRpb24gYXMKKyAgICAgICAgc2VuZHJlY3Ys
IHNlbmRvbmx5LCByZWN2b25seSBvciBpbmFjdGl2ZSBhcyBkZWZpbmVkIGluIFtKU0VQXSAoc2Vj
dGlvbiA1LjIuMi4KKyAgICAgICAgYW5kIHNlY3Rpb24gNS4zLjIuKS4KKworICAgIFRlc3RlZCBp
biBSVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwKKyAgICAgIDUuNC4g
IHNldERpcmVjdGlvbgorICAgICAgICA2LiAgVXBkYXRlIHRoZSBuZWdvdGlhdGlvbi1uZWVkZWQg
ZmxhZyBmb3IgY29ubmVjdGlvbi4KKworICAgIENvdmVyYWdlIFJlcG9ydAorICAgICAgVGVzdGVk
ICAgICAgICA2CisgICAgICBOb3QgVGVzdGVkICAgIDEKKyAgICAgIFVudGVzdGFibGUgICAgMAor
ICAgICAgVG90YWwgICAgICAgICA3CisgICAqLworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRy
YW5zY2VpdmVyLXN0b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC1leHBlY3RlZC50
eHQKaW5kZXggMGViYmZlNGY3MmUyNTczYTgzZTNiYzAwZDdmYTY3NDFmM2I3MDJlMC4uMGViYTY4
YjVhZTc4NTY1Yjc1OTViNDczOWE0OWE1N2Q1YjRhYzg1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2
ZXItc3RvcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC1leHBlY3RlZC50eHQK
QEAgLTEsMTAgKzEsMTEgQEAKIAogUEFTUyBBIHRyYW5zY2VpdmVyIGFkZGVkIGFuZCBzdG9wcGVk
IGJlZm9yZSB0aGUgaW5pdGlhbCBvZmZlciBnZW5lcmF0aW9uIHNob3VsZCBub3QgdHJpZ2dlciBh
biBvZmZlciBtLXNlY3Rpb24gZ2VuZXJhdGlvbgorUEFTUyBBIHRyYW5zY2VpdmVyIGFkZGVkIGFu
ZCBzdG9wcGVkIHNob3VsZCBub3QgY3Jhc2ggd2hlbiBnZXR0aW5nIHJlY2VpdmVyJ3MgdHJhbnNw
b3J0CiBQQVNTIER1cmluZyByZW5lZ290aWF0aW9uLCBhZGRpbmcgYW5kIHN0b3BwaW5nIGEgdHJh
bnNjZWl2ZXIgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgcmVuZWdvdGlhdGVkIG9mZmVyIG0tc2VjdGlv
biBnZW5lcmF0aW9uCiBQQVNTIEEgc3RvcHBlZCBzZW5kb25seSB0cmFuc2NlaXZlciBzaG91bGQg
Z2VuZXJhdGUgYW4gaW5hY3RpdmUgbS1zZWN0aW9uIGluIHRoZSBvZmZlcgogUEFTUyBBIHN0b3Bw
ZWQgaW5hY3RpdmUgdHJhbnNjZWl2ZXIgc2hvdWxkIGdlbmVyYXRlIGFuIGluYWN0aXZlIG0tc2Vj
dGlvbiBpbiB0aGUgb2ZmZXIKIFBBU1MgSWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVkIGxvY2Fs
bHksIHNldHRpbmcgYSBsb2NhbGx5IGdlbmVyYXRlZCBhbnN3ZXIgc2hvdWxkIHN0aWxsIHdvcmsK
IFBBU1MgSWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVkIHJlbW90ZWx5LCBzZXR0aW5nIGEgbG9j
YWxseSBnZW5lcmF0ZWQgYW5zd2VyIHNob3VsZCBzdGlsbCB3b3JrCiBGQUlMIElmIGEgdHJhbnNj
ZWl2ZXIgaXMgc3RvcHBlZCwgdHJhbnNjZWl2ZXJzLCBzZW5kZXJzIGFuZCByZWNlaXZlcnMgc2hv
dWxkIGRpc2FwcGVhciBhZnRlciBvZmZlci9hbnN3ZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
MCBidXQgZ290IDEKLUZBSUwgSWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVkLCB0cmFuc2NlaXZl
cnMgc2hvdWxkIGVuZCB1cCBpbiBzdGF0ZSBzdG9wcGVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJpbmFjdGl2ZSIgYnV0IGdvdCAic3RvcHBlZCIKK0ZBSUwgSWYgYSB0cmFuc2NlaXZlciBpcyBz
dG9wcGVkLCB0cmFuc2NlaXZlcnMgc2hvdWxkIGVuZCB1cCBpbiBzdGF0ZSBzdG9wcGVkIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJzdG9wcGVkIiBidXQgZ290ICJpbmFjdGl2ZSIKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwVHJhbnNjZWl2ZXItc3RvcC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC5odG1sCmluZGV4
IDRmM2E5Y2U4NWZhMjQ0YmM2NzM0NDdmYTM4OWY0NGJkYzM4MWIyMzAuLjc2NmIzNGQ3YjEyMGYw
ZTIxNGFjMDI4Y2QxZjViODJjOWM3ODA2MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3Au
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLmh0bWwKQEAgLTIxLDYgKzIxLDE4IEBAIHByb21p
c2VfdGVzdChhc3luYyAodCk9PiB7CiAgICAgYXNzZXJ0X3RydWUob2ZmZXIuc2RwLmluY2x1ZGVz
KCJtPXZpZGVvIiksICJvZmZlciBzaG91bGQgY29udGFpbiBhIHZpZGVvIG0tc2VjdGlvbiIpOwog
fSwgIkEgdHJhbnNjZWl2ZXIgYWRkZWQgYW5kIHN0b3BwZWQgYmVmb3JlIHRoZSBpbml0aWFsIG9m
ZmVyIGdlbmVyYXRpb24gc2hvdWxkIG5vdCB0cmlnZ2VyIGFuIG9mZmVyIG0tc2VjdGlvbiBnZW5l
cmF0aW9uIik7CiAKK3Byb21pc2VfdGVzdChhc3luYyAodCk9PiB7CisgICAgY29uc3QgcGMxID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xv
c2UoKSk7CisKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIiwgeyBkaXJlY3Rpb246ICJz
ZW5kb25seSIgfSk7CisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICAgIGFzc2Vy
dF9lcXVhbHMobnVsbCwgcGMxLmdldFRyYW5zY2VpdmVycygpWzFdLnJlY2VpdmVyLnRyYW5zcG9y
dCk7CisKKyAgICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMV0uc3RvcCgpOworICAgIGFzc2VydF9l
cXVhbHMocGMxLmdldFRyYW5zY2VpdmVycygpWzFdLnJlY2VpdmVyLnRyYW5zcG9ydCwgbnVsbCk7
Cit9LCAiQSB0cmFuc2NlaXZlciBhZGRlZCBhbmQgc3RvcHBlZCBzaG91bGQgbm90IGNyYXNoIHdo
ZW4gZ2V0dGluZyByZWNlaXZlcidzIHRyYW5zcG9ydCIpOworCiBwcm9taXNlX3Rlc3QoYXN5bmMg
KHQpPT4gewogICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIGNv
bnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwpAQCAtMTM2LDggKzE0OCw4IEBAIHBy
b21pc2VfdGVzdChhc3luYyAodCkgPT4gewogICBwYzJUcmFuc2NlaXZlciA9IHBjMi5nZXRUcmFu
c2NlaXZlcnMoKVswXTsKICAgcGMxLmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3AoKTsKICAgYXdh
aXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7Ci0gIGFzc2VydF9lcXVhbHMoJ3N0b3Bw
ZWQnLCBwYzFUcmFuc2NlaXZlci5kaXJlY3Rpb24pOwotICBhc3NlcnRfZXF1YWxzKCdzdG9wcGVk
JywgcGMyVHJhbnNjZWl2ZXIuZGlyZWN0aW9uKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzFUcmFuc2Nl
aXZlci5kaXJlY3Rpb24sICdzdG9wcGVkJyk7CisgIGFzc2VydF9lcXVhbHMocGMyVHJhbnNjZWl2
ZXIuZGlyZWN0aW9uLCAnc3RvcHBlZCcpOwogfSwgJ0lmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBl
ZCwgdHJhbnNjZWl2ZXJzIHNob3VsZCBlbmQgdXAgaW4gc3RhdGUgc3RvcHBlZCcpOwogCiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5o
dHRwcy5odG1sCmluZGV4IGM5ZGNlNDVkNzM4ODRiY2U3NGYxNjRiYTMwNmNlNjdiY2M3MzkyMDUu
Ljc3MzIzYjUwM2FiZDdkYzEyZTU4OTRhYmNlMjhkYTU3YTliOWU5MTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRy
YW5zY2VpdmVyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbApAQCAtOTIs
MTIgKzkyLDEwIEBACiAKICAgY29uc3QgdHJpY2tsZSA9ICh0LCBwYzEsIHBjMikgPT4gewogICAg
IHBjMS5vbmljZWNhbmRpZGF0ZSA9IHQuc3RlcF9mdW5jKGFzeW5jIGUgPT4gewotICAgICAgaWYg
KGUuY2FuZGlkYXRlKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgYXdhaXQgcGMyLmFkZElj
ZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
ICBhc3NlcnRfdHJ1ZShmYWxzZSwgImFkZEljZUNhbmRpZGF0ZSB0aHJldyBlcnJvcjogIiArIGUu
bmFtZSk7Ci0gICAgICAgIH0KKyAgICAgIHRyeSB7CisgICAgICAgIGF3YWl0IHBjMi5hZGRJY2VD
YW5kaWRhdGUoZS5jYW5kaWRhdGUpOworICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBhc3Nl
cnRfdHJ1ZShmYWxzZSwgImFkZEljZUNhbmRpZGF0ZSB0aHJldyBlcnJvcjogIiArIGUubmFtZSk7
CiAgICAgICB9CiAgICAgfSk7CiAgIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTdGF0cy1oZWxwZXIuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTdGF0cy1o
ZWxwZXIuanMKaW5kZXggODFhYmUyNDU2ZTk0YmI4NGU0ZDU2Yzk3ODFkYzMwMmE1MDI0OTBlNS4u
MzNjYmY0YTkzM2JkMzc1NTNhODU5NWUwNjkyZjk3MTdlMTQ1ZWNjOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU3RhdHMt
aGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1N0YXRzLWhlbHBlci5qcwpAQCAtMjA3LDggKzIwNyw5IEBAIGZ1bmN0aW9u
IHZhbGlkYXRlQ29kZWNTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKIAogICBhc3NlcnRfc3Ry
aW5nX2ZpZWxkKHN0YXRzLCAnbWltZVR5cGUnKTsKICAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVs
ZChzdGF0cywgJ2Nsb2NrUmF0ZScpOwotICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRz
LCAnY2hhbm5lbHMnKTsKLQorICBpZiAoc3RhdHMua2luZCA9PT0gJ2F1ZGlvJykgeworICAgIGFz
c2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdjaGFubmVscycpOworICB9CiAgIGFzc2Vy
dF9zdHJpbmdfZmllbGQoc3RhdHMsICdzZHBGbXRwTGluZScpOwogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hh
bm5lbC1lbXB0eXN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MjY4ZjVkMTcyYzYzMTUxYjIx
Y2VhZjMwOTA3ZjEzZmQxMTc5NjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvZGF0YWNoYW5uZWwtZW1wdHlzdHJpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsOSArMCwwIEBACi0KLVBBU1MgQ2FuIHNlbmQgZW1wdHkgc3RyaW5ncyBhY3Jvc3MgYSBX
ZWJSVEMgZGF0YSBjaGFubmVsLgotTWVzc2FnZXMgZXhjaGFuZ2VkCi0KLVNlbnQ6IFtlbXB0eSBz
dHJpbmddCi1TZW50OiAiZG9uZSIKLVJlY2VpdmVkOiBbZW1wdHkgc3RyaW5nXQotUmVjZWl2ZWQ6
ICJkb25lIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwtZW1w
dHlzdHJpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDU2YmFjNzM2N2U2
ZjkwMzRmODNiYmVlNjk5ODMxM2I3ODliOGMwZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTEwICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPCEtLQotVGhpcyB0ZXN0IGNyZWF0
ZXMgYSBkYXRhIGNoYW5uZWwgYmV0d2VlbiB0d28gbG9jYWwgUGVlckNvbm5lY3Rpb24gaW5zdGFu
Y2VzCi1hbmQgZW5zdXJlcyB0aGF0IGFuIGVtcHR5IHN0cmluZyBzZW50IGJ5IG9uZSBpcyByZWNl
aXZlZCBieSB0aGUgc2Vjb25kLgotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci0gIDxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4K
LSAgPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIERhdGEgQ2hhbm5lbCBFbXB0eSBTdHJpbmcgVGVz
dDwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KLSAgPGgy
Pk1lc3NhZ2VzIGV4Y2hhbmdlZDwvaDI+Ci0gIDxkaXYgaWQ9Im1zZyI+PC9kaXY+Ci0KLSAgPCEt
LSBUaGVzZSBmaWxlcyBhcmUgaW4gcGxhY2Ugd2hlbiBleGVjdXRpbmcgb24gVzNDLiAtLT4KLSAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCdD
YW4gc2VuZCBlbXB0eSBzdHJpbmdzIGFjcm9zcyBhIFdlYlJUQyBkYXRhIGNoYW5uZWwuJyk7Ci0K
LSAgdmFyIGdGaXJzdENvbm5lY3Rpb24gPSBudWxsOwotICB2YXIgZ1NlY29uZENvbm5lY3Rpb24g
PSBudWxsOwotICB2YXIgc2VuZENoYW5uZWwgPSBudWxsOwotICB2YXIgcmVjZWl2ZUNoYW5uZWwg
PSBudWxsOwotCi0gIHZhciBvblJlY2VpdmVDaGFubmVsID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0g
ICAgcmVjZWl2ZUNoYW5uZWwgPSBldmVudC5jaGFubmVsOwotICAgIHJlY2VpdmVDaGFubmVsLm9u
bWVzc2FnZSA9IG9uUmVjZWl2ZU1lc3NhZ2U7Ci0gIH07Ci0KLQotICAvLyBXaGVuIHRoZSBkYXRh
IGNoYW5uZWwgaXMgb3Blbiwgc2VuZCBhbiBlbXB0eSBzdHJpbmcgbWVzc2FnZQotICAvLyBmb2xs
b3dlZCBieSBhIG1lc3NhZ2UgdGhhdCBjb250YWlucyB0aGUgc3RyaW5nICJkb25lIi4KLSAgdmFy
IG9uU2VuZENoYW5uZWxPcGVuID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGV2ZW50KSB7Ci0g
ICAgdmFyIG1zZ0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21zZycpOwotICAgIHNlbmRD
aGFubmVsLnNlbmQoJycpOwotICAgIG1zZ0VsLmlubmVySFRNTCArPSAnU2VudDogW2VtcHR5IHN0
cmluZ108YnI+JzsKLSAgICBzZW5kQ2hhbm5lbC5zZW5kKCdkb25lJyk7Ci0gICAgbXNnRWwuaW5u
ZXJIVE1MICs9ICdTZW50OiAiZG9uZSI8YnI+JzsKLSAgfSk7Ci0KLSAgLy8gQ2hlY2sgdGhlIG1l
c3NhZ2VzIHJlY2VpdmVkIG9uIHRoZSBvdGhlciBzaWRlLgotICAvLyBUaGVyZSBzaG91bGQgYmUg
YW4gZW1wdHkgc3RyaW5nIG1lc3NhZ2UgZm9sbG93ZWQgYnkgYSBtZXNzYWdlIHRoYXQKLSAgLy8g
Y29udGFpbnMgdGhlIHN0cmluZyAiZG9uZSIuCi0gIC8vIFBhc3MvRmFpbCB0aGUgdGVzdCBhY2Nv
cmRpbmcgdG8gdGhlIG1lc3NhZ2VzIHJlY2VpdmVkCi0gIHZhciBlbXB0eU1lc3NhZ2VSZWNlaXZl
ZCA9IGZhbHNlOwotICB2YXIgb25SZWNlaXZlTWVzc2FnZSA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0
aW9uIChldmVudCkgewotICAgIHZhciBtc2dFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdt
c2cnKTsKLSAgICBtc2dFbC5pbm5lckhUTUwgKz0gJ1JlY2VpdmVkOiAnICsKLSAgICAgICAgKGV2
ZW50LmRhdGEgPyAnIicgKyBldmVudC5kYXRhICsgJyInIDogJ1tlbXB0eSBzdHJpbmddJykgKyAn
PGJyPic7Ci0gICAgaWYgKGVtcHR5TWVzc2FnZVJlY2VpdmVkKSB7Ci0gICAgICBhc3NlcnRfZXF1
YWxzKGV2ZW50LmRhdGEsICdkb25lJywgJ1RoZSAiZG9uZSIgbWVzc2FnZSB3YXMgbm90IHJlY2Vp
dmVkJyk7Ci0gICAgICB0ZXN0LmRvbmUoKTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICBhc3Nl
cnRfZXF1YWxzKGV2ZW50LmRhdGEsICcnLCAnRW1wdHkgbWVzc2FnZSBub3QgcmVjZWl2ZWQnKTsK
LSAgICAgIGVtcHR5TWVzc2FnZVJlY2VpdmVkID0gdHJ1ZTsKLSAgICB9Ci0gIH0pOwotCi0gIGZ1
bmN0aW9uIGV4Y2hhbmdlSWNlKHBjKSB7Ci0gICAgIHJldHVybiBmdW5jdGlvbihlKSB7Ci0gICAg
ICAgaWYgKGUuY2FuZGlkYXRlKSB7Ci0gICAgICAgICAgcGMuYWRkSWNlQ2FuZGlkYXRlKGUuY2Fu
ZGlkYXRlKTsKLSAgICAgICB9Ci0gICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBleGNoYW5nZURl
c2NyaXB0aW9uKHBjMSwgcGMyKSB7Ci0gICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICBy
ZXR1cm4gcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLSAg
ICAgfTsKLSAgfQotCi0gIHRlc3Quc3RlcChmdW5jdGlvbigpIHsKLSAgICBnRmlyc3RDb25uZWN0
aW9uID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOwotICAgIHRlc3QuYWRkX2NsZWFudXAo
KCkgPT4gZ0ZpcnN0Q29ubmVjdGlvbi5jbG9zZSgpKTsKLQotICAgIGdTZWNvbmRDb25uZWN0aW9u
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOwotICAgIHRlc3QuYWRkX2NsZWFudXAoKCkg
PT4gZ1NlY29uZENvbm5lY3Rpb24uY2xvc2UoKSk7Ci0KLSAgICBnRmlyc3RDb25uZWN0aW9uLm9u
aWNlY2FuZGlkYXRlID0gZXhjaGFuZ2VJY2UoZ1NlY29uZENvbm5lY3Rpb24pOwotICAgIGdTZWNv
bmRDb25uZWN0aW9uLm9uaWNlY2FuZGlkYXRlID0gZXhjaGFuZ2VJY2UoZ0ZpcnN0Q29ubmVjdGlv
bik7Ci0KLSAgICBnU2Vjb25kQ29ubmVjdGlvbi5vbmRhdGFjaGFubmVsID0gb25SZWNlaXZlQ2hh
bm5lbDsKLQotICAgIC8vIE5vdGUgdGhlIGRhdGEgY2hhbm5lbCB3aWxsIHByZXNlcnZlIHRoZSBv
cmRlciBvZiBtZXNzYWdlcwotICAgIC8vIGV4Y2hhbmdlZCBvdmVyIGl0IGJ5IGRlZmF1bHQuCi0g
ICAgc2VuZENoYW5uZWwgPSBnRmlyc3RDb25uZWN0aW9uLmNyZWF0ZURhdGFDaGFubmVsKCdzZW5k
RGF0YUNoYW5uZWwnKTsKLSAgICBzZW5kQ2hhbm5lbC5vbm9wZW4gPSBvblNlbmRDaGFubmVsT3Bl
bjsKLQotICAgIGdGaXJzdENvbm5lY3Rpb24uY3JlYXRlT2ZmZXIoKQotICAgIC50aGVuKGdGaXJz
dENvbm5lY3Rpb24uc2V0TG9jYWxEZXNjcmlwdGlvbi5iaW5kKGdGaXJzdENvbm5lY3Rpb24pKQot
ICAgIC50aGVuKGV4Y2hhbmdlRGVzY3JpcHRpb24oZ1NlY29uZENvbm5lY3Rpb24sIGdGaXJzdENv
bm5lY3Rpb24pKQotICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIGdTZWNvbmRD
b25uZWN0aW9uLmNyZWF0ZUFuc3dlcigpOwotICAgIH0pCi0gICAgLnRoZW4oZ1NlY29uZENvbm5l
Y3Rpb24uc2V0TG9jYWxEZXNjcmlwdGlvbi5iaW5kKGdTZWNvbmRDb25uZWN0aW9uKSkKLSAgICAu
dGhlbihleGNoYW5nZURlc2NyaXB0aW9uKGdGaXJzdENvbm5lY3Rpb24sIGdTZWNvbmRDb25uZWN0
aW9uKSkKLSAgICAuY2F0Y2godGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewotICAgICAgYXNz
ZXJ0X3VucmVhY2hlZCgnRXJyb3IgJyArIGUubmFtZSArICc6ICcgKyBlLm1lc3NhZ2UpOwotICAg
ICB9KSk7Ci0gIH0pOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0
c3RhdHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL2dldHN0YXRzLmh0bWwKaW5kZXggMDk1MGEzNzRjM2NkOGE0NGNiYjhiZmZjMjk5MWZj
NmRjOTU0MTdjOC4uZDZhNjkyYmI3ODYwYjljNmJkNzY5OWJhNGU5OWVhODAxMDkyMmMwOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvZ2V0c3RhdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9nZXRzdGF0cy5odG1sCkBAIC0yNywxNiArMjcsMTEgQEAgVGhpcyB0
ZXN0IHVzZXMgZGF0YSBvbmx5LCBhbmQgdGh1cyBkb2VzIG5vdCByZXF1aXJlIGZha2UgbWVkaWEg
ZGV2aWNlcy4KICAgdmFyIGdTZWNvbmRDb25uZWN0aW9uID0gbnVsbDsKIAogICB2YXIgb25JY2VD
YW5kaWRhdGVUb0ZpcnN0ID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAv
LyBJZiBldmVudC5jYW5kaWRhdGUgaXMgbnVsbCA9IG5vIG1vcmUgY2FuZGlkYXRlcy4KLSAgICBp
ZiAoZXZlbnQuY2FuZGlkYXRlKSB7Ci0gICAgICBnU2Vjb25kQ29ubmVjdGlvbi5hZGRJY2VDYW5k
aWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ1NlY29uZENvbm5lY3Rpb24uYWRk
SWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CiAgIH0pOwogCiAgIHZhciBvbkljZUNhbmRp
ZGF0ZVRvU2Vjb25kID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBpZiAo
ZXZlbnQuY2FuZGlkYXRlKSB7Ci0gICAgICBnRmlyc3RDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0
ZShldmVudC5jYW5kaWRhdGUpOwotICAgIH0KKyAgICBnRmlyc3RDb25uZWN0aW9uLmFkZEljZUNh
bmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwogICB9KTsKIAogICB2YXIgZ2V0U3RhdHNSZWNvcmRC
eVR5cGUgPSBmdW5jdGlvbihzdGF0cywgdHlwZSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaWRlbnRpdHktaGVscGVyLnN1
Yi5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L2lkZW50aXR5LWhlbHBlci5zdWIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU1MzgzODA2NDhiZWE0MWM0Y2Ey
MDU3ZmY2NjZkNjExY2M4MzU0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2lkZW50aXR5LWhlbHBlci5zdWIuanMK
QEAgLTAsMCArMSw3MCBAQAorJ3VzZSBzdHJpY3QnOworCisvKgorICBJbiB3ZWItcGxhdGZvcm0t
dGVzdCwgYSBudW1iZXIgb2YgZG9tYWlucyBhcmUgcmVxdWlyZWQgdG8gYmUgc2V0IHVwIGxvY2Fs
bHkuCisgIFRoZSBsaXN0IGlzIGF2YWlsYWJsZSBhdCBkb2NzL193cml0aW5nLXRlc3RzL3NlcnZl
ci1mZWF0dXJlcy5tZC4gVGhlCisgIGFwcHJvcHJpYXRlIGhvc3RzIGZpbGUgZW50cmllcyBjYW4g
YmUgZ2VuZXJhdGVkIHdpdGggdGhlIFdQVCBDTEkgdmlhIHRoZQorICBmb2xsb3dpbmcgY29tbWFu
ZDogYHdwdCBtYWtlLWhvc3RzLWZpbGVgLgorICovCisKKy8qCisgICAgZGljdGlvbmFyeSBSVENJ
ZGVudGl0eVByb3ZpZGVyRGV0YWlscyB7CisgICAgICByZXF1aXJlZCBET01TdHJpbmcgZG9tYWlu
OworICAgICAgICAgICAgICAgRE9NU3RyaW5nIHByb3RvY29sID0gImRlZmF1bHQiOworICAgIH07
CisgKi8KKworLy8gUGFyc2UgYSBiYXNlNjQgSlNPTiBlbmNvZGVkIHN0cmluZyByZXR1cm5lZCBm
cm9tIGdldElkZW50aXR5QXNzZXJ0aW9uKCkuCisvLyBUaGlzIGlzIGFsc28gdGhlIHN0cmluZyB0
aGF0IGlzIHNldCBpbiB0aGUgYT1pZGVudGl0eSBsaW5lLgorLy8gUmV0dXJucyBhIHsgaWRwLCBh
c3NlcnRpb24gfSB3aGVyZSBpZHAgaXMgb2YgdHlwZSBSVENJZGVudGl0eVByb3ZpZGVyRGV0YWls
cworLy8gYW5kIGFzc2VydGlvbiBpcyB0aGUgZGVzZXJpYWxpemVkIEpTT04gdGhhdCB3YXMgcmV0
dXJuZWQgYnkgdGhlCisvLyBJZFAgcHJveHkncyBnZW5lcmF0ZUFzc2VydGlvbigpIGZ1bmN0aW9u
LgorZnVuY3Rpb24gcGFyc2VBc3NlcnRpb25SZXN1bHQoYXNzZXJ0aW9uUmVzdWx0U3RyKSB7Cisg
IGNvbnN0IGFzc2VydGlvblJlc3VsdCA9IEpTT04ucGFyc2UoYXRvYihhc3NlcnRpb25SZXN1bHRT
dHIpKTsKKworICBjb25zdCB7IGlkcCB9ID0gYXNzZXJ0aW9uUmVzdWx0OworICBjb25zdCBhc3Nl
cnRpb24gPSBKU09OLnBhcnNlKGFzc2VydGlvblJlc3VsdC5hc3NlcnRpb24pOworCisgIHJldHVy
biB7IGlkcCwgYXNzZXJ0aW9uIH07Cit9CisKKy8vIFJldHVybiB0d28gZGlzdGluY3QgSWRQIGRv
bWFpbnMgdGhhdCBhcmUgZGlmZmVyZW50IGZyb20gY3VycmVudCBkb21haW4KK2Z1bmN0aW9uIGdl
dElkcERvbWFpbnMoKSB7CisgIGNvbnN0IGRvbWFpbkEgPSAne3tob3N0c1thbHRdW119fSc7Cisg
IGNvbnN0IGRvbWFpbkIgPSAne3tkb21haW5zW3d3dzFdfX0nOworICBjb25zdCBkb21haW5DID0g
J3t7ZG9tYWluc1t3d3cyXX19JzsKKworICBpZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgPT09
IGRvbWFpbkEpIHsKKyAgICByZXR1cm4gW2RvbWFpbkIsIGRvbWFpbkNdOworICB9IGVsc2UgaWYo
d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lID09PSBkb21haW5CKSB7CisgICAgcmV0dXJuIFtkb21h
aW5BLCBkb21haW5DXTsKKyAgfSBlbHNlIHsKKyAgICByZXR1cm4gW2RvbWFpbkEsIGRvbWFpbkJd
OworICB9Cit9CisKK2Z1bmN0aW9uIGFzc2VydF9ydGNlcnJvcl9yZWplY3Rpb24oZXJyb3JEZXRh
aWwsIHByb21pc2UsIGRlc2MpIHsKKyAgcmV0dXJuIHByb21pc2UudGhlbigKKyAgICByZXMgPT4g
eworICAgICAgYXNzZXJ0X3VucmVhY2hlZChgRXhwZWN0IHByb21pc2UgdG8gYmUgcmVqZWN0ZWQg
d2l0aCBSVENFcnJvciwgYnV0IGluc3RlYWQgZ290ICR7cmVzfWApOworICAgIH0sIGVyciA9PiB7
CisgICAgICBhc3NlcnRfdHJ1ZShlcnIgaW5zdGFuY2VvZiBSVENFcnJvciwKKyAgICAgICAgJ0V4
cGVjdCBlcnJvciBvYmplY3QgdG8gYmUgaW5zdGFuY2Ugb2YgUlRDRXJyb3InKTsKKworICAgICAg
YXNzZXJ0X2VxdWFscyhlcnIuZXJyb3JEZXRhaWwsIGVycm9yRGV0YWlsLAorICAgICAgICBgRXhw
ZWN0IFJUQ0Vycm9yIG9iamVjdCBoYXZlIGVycm9yRGV0YWlsIHNldCB0byAke2Vycm9yRGV0YWls
fWApOworCisgICAgICByZXR1cm4gZXJyOworICAgIH0pOworfQorCisvLyBjb25zdHJ1Y3QgYSBo
b3N0IHN0cmluZyBjb25zaXN0IG9mIGRvbWFpbiBhbmQgb3B0aW9uYWxseSBwb3J0CisvLyBJZiB0
aGUgZGVmYXVsdCBIVFRQL0hUVFBTIHBvcnQgaXMgdXNlZCwgd2luZG93LmxvY2F0aW9uLnBvcnQg
cmV0dXJucworLy8gZW1wdHkgc3RyaW5nLgorZnVuY3Rpb24gaG9zdFN0cmluZyhkb21haW4sIHBv
cnQpIHsKKyAgaWYocG9ydCA9PT0gJycpIHsKKyAgICByZXR1cm4gZG9tYWluOworICB9IGVsc2Ug
eworICAgIHJldHVybiBgJHtkb21haW59OiR7cG9ydH1gOworICB9Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9uby1tZWRp
YS1jYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9uby1tZWRpYS1jYWxsLmh0bWwKaW5kZXggYjFlYmEwOGQwYjQzM2M2MGM2MzMyMTk5
Y2QzNTI5NDg0NzAyOGEwYy4uOWQyNTk4NTE4ZGE0YmJiY2I3YWM3ODAyNmIwNzM3ZDQwZGNjMDll
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvbm8tbWVkaWEtY2FsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1lZGlhLWNhbGwuaHRtbApAQCAtNTgsMTYg
KzU4LDExIEBACiAgIH07CiAKICAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9GaXJzdCA9IHRlc3Quc3Rl
cF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgLy8gSWYgZXZlbnQuY2FuZGlkYXRlIGlzIG51
bGwgPSBubyBtb3JlIGNhbmRpZGF0ZXMuCi0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAg
ICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0g
ICAgfQorICAgIGdTZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRh
dGUpOwogICB9KTsKIAogICB2YXIgb25JY2VDYW5kaWRhdGVUb1NlY29uZCA9IHRlc3Quc3RlcF9m
dW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewotICAgICAg
Z0ZpcnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9
CisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsK
ICAgfSk7CiAKICAgdmFyIG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlID0gdGVzdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZXZlbnQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb21pc2VzLWNhbGwuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb21pc2VzLWNhbGwu
aHRtbAppbmRleCA4YjlhMjc1NTQ5NzM1MzFlODUyODQwNmE1MmQzOGI3YzU1OTMyZjNjLi5lZTY0
YjQ2M2VlMjJhY2ExYjY4ZTY4NzVlMTI0NDI1YzllNDM3NDNmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm9taXNlcy1jYWxs
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvbWlzZXMtY2FsbC5odG1sCkBAIC0yNCwxNiArMjQsMTEgQEAgVGhpcyB0ZXN0IHVz
ZXMgZGF0YSBvbmx5LCBhbmQgdGh1cyBkb2VzIG5vdCByZXF1aXJlIGZha2UgbWVkaWEgZGV2aWNl
cy4KICAgdmFyIGdTZWNvbmRDb25uZWN0aW9uID0gbnVsbDsKIAogICB2YXIgb25JY2VDYW5kaWRh
dGVUb0ZpcnN0ID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAvLyBJZiBl
dmVudC5jYW5kaWRhdGUgaXMgbnVsbCA9IG5vIG1vcmUgY2FuZGlkYXRlcy4KLSAgICBpZiAoZXZl
bnQuY2FuZGlkYXRlKSB7Ci0gICAgICBnU2Vjb25kQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUo
ZXZlbnQuY2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkSWNlQ2Fu
ZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CiAgIH0pOwogCiAgIHZhciBvbkljZUNhbmRpZGF0ZVRv
U2Vjb25kID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBpZiAoZXZlbnQu
Y2FuZGlkYXRlKSB7Ci0gICAgICBnRmlyc3RDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVu
dC5jYW5kaWRhdGUpOwotICAgIH0KKyAgICBnRmlyc3RDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0
ZShldmVudC5jYW5kaWRhdGUpOwogICB9KTsKIAogICB2YXIgb25JY2VDb25uZWN0aW9uU3RhdGVD
aGFuZ2UgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
UkVBRE1FLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL1JFQURNRS50eHQKaW5kZXggMTMxMDcxN2NjYjljMDM1YjAxMWZmNWZl
NTQzMGZiZDdlOWYxNThmMi4uNWUxN2ZiZjljMzU0ZWRhYmFmNDhmNmVlMWQwMTdmMjNkMThlMjE3
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvUkVBRE1FLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9SRUFETUUudHh0CkBAIC0yLDIy
ICsyLDIxIEBAIFRoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIGZpbGVzIHRoYXQgdGVzdCBmb3IgYmVo
YXZpb3IgcmVsZXZhbnQgdG8gd2VicnRjLAogYnV0IHdoaWNoIGlzIHNwZWNpZmllZCBpbiBwcm90
b2NvbCBzcGVjaWZpY2F0aW9ucyBmcm9tIHRoZSBJRVRGLCBub3QgaW4KIEFQSSByZWNvbW1lbmRh
dGlvbnMgZnJvbSB0aGUgVzNDLgogCi1UaGUgbWFpbiBzcGVjaWZpY2F0aW9ucyBhcmUgZ2l2ZW4g
aW4gdGhlIGZvbGxvd2luZyBpbnRlcm5ldC1kcmFmdHM6Ci0KLS0gZHJhZnQtaWV0Zi1ydGN3ZWIt
b3ZlcnZpZXcKLS0gZHJhZnQtaWV0Zi1ydGN3ZWItdHJhbnNwb3J0cwotLSBkcmFmdC1pZXRmLXJ0
Y3dlYi1zZWN1cml0eS1hcmNoCi0tIGRyYWZ0LWlldGYtcnRjd2ViLXNlY3VyaXR5Ci0tIGRyYWZ0
LWlldGYtcnRjd2ViLXJ0cC11c2FnZQotLSBkcmFmdC1pZXRmLXJ0Y3dlYi1qc2VwCi0tIGRyYWZ0
LWlldGYtcnRjd2ViLWlwLWhhbmRsaW5nCi0tIGRyYWZ0LWlldGYtcnRjd2ViLWZlYwotLSBkcmFm
dC1pZXRmLXJ0Y3dlYi1kYXRhLXByb3RvY29sCi0tIGRyYWZ0LWlldGYtcnRjd2ViLWRhdGEtY2hh
bm5lbAotLSBkcmFmdC1pZXRmLW1tdXNpYy1zZHAtc2ltdWxjYXN0Ci0tIGRyYWZ0LWlldGYtbW11
c2ljLXJpZAorVGhlIG1haW4gc3BlY2lmaWNhdGlvbnMgYXJlIGdpdmVuIGluIHRoZSBmb2xsb3dp
bmcgUkZDczoKIAogLSBSRkMgNzc0MiwgIldlYlJUQyBWaWRlbyBQcm9jZXNzaW5nIGFuZCBDb2Rl
YyBSZXF1aXJlbWVudHMiCiAtIFJGQyA3ODc0LCAiV2ViUlRDIEF1ZGlvIENvZGVjIGFuZCBQcm9j
ZXNzaW5nIFJlcXVpcmVtZW50cyIKKy0gUkZDIDg4MjUgKGRyYWZ0LWlldGYtcnRjd2ViLW92ZXJ2
aWV3KQorLSBSRkMgODgyNiAoZHJhZnQtaWV0Zi1ydGN3ZWItc2VjdXJpdHkpCistIFJGQyA4ODI3
IChkcmFmdC1pZXRmLXJ0Y3dlYi1zZWN1cml0eS1hcmNoKQorLSBSRkMgODgyOCAoZHJhZnQtaWV0
Zi1ydGN3ZWItaXAtaGFuZGxpbmcpCistIFJGQyA4ODI5IChkcmFmdC1pZXRmLXJ0Y3dlYi1qc2Vw
KQorLSBSRkMgODgzMSAoZHJhZnQtaWV0Zi1ydGN3ZWItZGF0YS1jaGFubmVsKQorLSBSRkMgODgz
MiAoZHJhZnQtaWV0Zi1ydGN3ZWItZGF0YS1wcm90b2NvbCkKKy0gUkZDIDg4MzQgKGRyYWZ0LWll
dGYtcnRjd2ViLXJ0cC11c2FnZSkKKy0gUkZDIDg4MzUgKGRyYWZ0LWlldGYtcnRjd2ViLXRyYW5z
cG9ydHMpCistIFJGQyA4ODUxIChkcmFmdC1pZXRmLW1tdXNpYy1yaWQpCistIFJGQyA4ODUzIChk
cmFmdC1pZXRmLW1tdXNpYy1zZHAtc2ltdWxjYXN0KQorLSBSRkMgODg1NCAoZHJhZnQtaWV0Zi1y
dGN3ZWItZmVjKQogCi1BbiBvdmVydmlldyBvZiB0aGUgZGVwZW5kZW5jaWVzIGludm9sdmVkIGlz
IGluIGRyYWZ0LWplbm5pbmdzLXJ0Y3dlYi1kZXBzCitUaGlzIGxpc3QgaXMgaW5jb21wbGV0ZS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL2R0bHMtZmluZ2VycHJpbnQtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9kdGxzLWZpbmdlcnByaW50LXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IGNlYmI3
YWFjY2QyZmIwYTgzMWI5ZTMxOGNlMTIzMmQyNTViYzdlODcuLjU4YTEzM2VkMzkxYjhhNDE4NWU1
ODQxNmMyOTgzNzJjYjVmZmM3NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtZmluZ2VycHJpbnQtdmFs
aWRhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1maW5nZXJwcmludC12YWxpZGF0aW9u
LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCks
IG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgQ29ubmVjdGlvbiBmYWlscyBpZiBvbmUgc2lkZSBw
cm92aWRlcyBhIHdyb25nIERUTFMgZmluZ2VycHJpbnQgVGVzdCB0aW1lZCBvdXQKK1BBU1MgQ29u
bmVjdGlvbiBmYWlscyBpZiBvbmUgc2lkZSBwcm92aWRlcyBhIHdyb25nIERUTFMgZmluZ2VycHJp
bnQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1zZXR1cC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9k
dGxzLXNldHVwLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWQyMDk2YTgwNWQ1ZGMw
NDAzMjBmNDc4YTRhNmI0NTU3YTY1ZDYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1zZXR1
cC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgUEMgc2hvdWxkIGFj
Y2VwdCBpbml0aWFsIG9mZmVyIHdpdGggc2V0dXA9YWN0cGFzcworRkFJTCBQQyBzaG91bGQgYWNj
ZXB0IGluaXRpYWwgb2ZmZXIgd2l0aCBzZXR1cD1hY3RpdmUgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgImE9c2V0dXA6cGFzc2l2ZSIgYnV0IGdvdCAiYT1zZXR1cDphY3RpdmUiCitGQUlMIFBDIHNo
b3VsZCBhY2NlcHQgaW5pdGlhbCBvZmZlciB3aXRoIHNldHVwPXBhc3NpdmUgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiT3BlcmF0aW9uRXJyb3I6
IEZhaWxlZCB0byBzZXQgbG9jYWwgYW5zd2VyIHNkcDogRmFpbGVkIHRvIGFwcGx5IHRoZSBkZXNj
cmlwdGlvbiBmb3IgbT0gc2VjdGlvbiB3aXRoIG1pZD0nYTEnOiBPZmZlcmVyIG11c3QgdXNlIGFj
dHBhc3MgdmFsdWUgb3IgY3VycmVudCBuZWdvdGlhdGVkIHJvbGUgZm9yIHNldHVwIGF0dHJpYnV0
ZS4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtc2V0dXAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtc2V0
dXAuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWIwYTFhZTY1MmE0MzU1ZGQ5MWRhZjI0OTEzNmYy
OTNiYjUwOWUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1zZXR1cC5odHRwcy5odG1sCkBA
IC0wLDAgKzEsODUgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0
aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBhPXNldHVwIFNEUCBwYXJhbWV0ZXIgdGVzdDwvdGl0bGU+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorJ3VzZSBzdHJpY3QnOworCisvLyBUZXN0cyBmb3IgY29ycmVjdCBiZWhhdmlvciBvZiBE
VExTIGE9c2V0dXAgcGFyYW1ldGVyLgorCisvLyBTRFAgY29waWVkIGZyb20gSlNFUCBFeGFtcGxl
IDcuMQorLy8gSXQgY29udGFpbnMgdHdvIG1lZGlhIHN0cmVhbXMgd2l0aCBkaWZmZXJlbnQgdWZy
YWdzLCBhbmQgYnVuZGxlCisvLyB0dXJuZWQgb24uCitjb25zdCBrU2RwID0gYHY9MAorbz0tIDQ5
NjIzMDMzMzMxNzk4NzE3MjIgMSBJTiBJUDQgMC4wLjAuMAorcz0tCit0PTAgMAorYT1pY2Utb3B0
aW9uczp0cmlja2xlCithPWdyb3VwOkJVTkRMRSBhMSB2MQorYT1ncm91cDpMUyBhMSB2MQorbT1h
dWRpbyAxMDEwMCBVRFAvVExTL1JUUC9TQVZQRiA5NiAwIDggOTcgOTgKK2M9SU4gSVA0IDIwMy4w
LjExMy4xMDAKK2E9bWlkOmExCithPXNlbmRyZWN2CithPXJ0cG1hcDo5NiBvcHVzLzQ4MDAwLzIK
K2E9cnRwbWFwOjAgUENNVS84MDAwCithPXJ0cG1hcDo4IFBDTUEvODAwMAorYT1ydHBtYXA6OTcg
dGVsZXBob25lLWV2ZW50LzgwMDAKK2E9cnRwbWFwOjk4IHRlbGVwaG9uZS1ldmVudC80ODAwMAor
YT1tYXhwdGltZToxMjAKK2E9ZXh0bWFwOjEgdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2Rl
czptaWQKK2E9ZXh0bWFwOjIgdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c3NyYy1hdWRpby1s
ZXZlbAorYT1tc2lkOjQ3MDE3ZmVlLWI2YzEtNDE2Mi05MjljLWEyNTExMDI1MjQwMCBmODMwMDZj
NS1hMGZmLTRlMGEtOWVkOS1kM2U2NzQ3YmU3ZDkKK2E9aWNlLXVmcmFnOkVURW4KK2E9aWNlLXB3
ZDpPdFNLMFdwTnRwVWprWTQrODZqczdaUWwKK2E9ZmluZ2VycHJpbnQ6c2hhLTI1NiAxOTpFMjox
QzozQjo0Qjo5Rjo4MTpFNjpCODo1QzpGNDpBNTpBODpEODo3MzowNDpCQjowNToyRjo3MDo5Rjow
NDpBOTowRTowNTpFOToyNjozMzpFODo3MDo4ODpBMgorYT1zZXR1cDphY3RwYXNzCithPWR0bHMt
aWQ6MQorYT1ydGNwOjEwMTAxIElOIElQNCAyMDMuMC4xMTMuMTAwCithPXJ0Y3AtbXV4CithPXJ0
Y3AtcnNpemUKK209dmlkZW8gMTAxMDIgVURQL1RMUy9SVFAvU0FWUEYgMTAwIDEwMQorYz1JTiBJ
UDQgMjAzLjAuMTEzLjEwMAorYT1taWQ6djEKK2E9c2VuZHJlY3YKK2E9cnRwbWFwOjEwMCBWUDgv
OTAwMDAKK2E9cnRwbWFwOjEwMSBydHgvOTAwMDAKK2E9Zm10cDoxMDEgYXB0PTEwMAorYT1leHRt
YXA6MSB1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZAorYT1ydGNwLWZiOjEwMCBj
Y20gZmlyCithPXJ0Y3AtZmI6MTAwIG5hY2sKK2E9cnRjcC1mYjoxMDAgbmFjayBwbGkKK2E9bXNp
ZDo0NzAxN2ZlZS1iNmMxLTQxNjItOTI5Yy1hMjUxMTAyNTI0MDAgZjMwYmRiNGEtNWRiOC00OWI1
LWJjZGMtZTBjOWEyMzE3MmUwCithPWljZS11ZnJhZzpCR0trCithPWljZS1wd2Q6bXF5V3NBanZ0
S3dUR252aFB6dFE5bUlmCithPWZpbmdlcnByaW50OnNoYS0yNTYgMTk6RTI6MUM6M0I6NEI6OUY6
ODE6RTY6Qjg6NUM6RjQ6QTU6QTg6RDg6NzM6MDQ6QkI6MDU6MkY6NzA6OUY6MDQ6QTk6MEU6MDU6
RTk6MjY6MzM6RTg6NzA6ODg6QTIKK2E9c2V0dXA6YWN0cGFzcworYT1kdGxzLWlkOjEKK2E9cnRj
cDoxMDEwMyBJTiBJUDQgMjAzLjAuMTEzLjEwMAorYT1ydGNwLW11eAorYT1ydGNwLXJzaXplCitg
OworCitmb3IgKGxldCBzZXR1cCBvZiBbJ2FjdHBhc3MnLCAnYWN0aXZlJywgJ3Bhc3NpdmUnXSkg
eworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3Qgc2RwID0ga1NkcC5yZXBs
YWNlKC9hPXNldHVwOmFjdHBhc3MvZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2E9
c2V0dXA6JyArIHNldHVwKTsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBhd2FpdCBwYzEu
c2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNkcDogc2RwfSk7CisgICAgY29u
c3QgYW5zd2VyID0gYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigpOworICAgIGNvbnN0IHJlc3VsdGlu
Z1NldHVwID0gYW5zd2VyLnNkcC5tYXRjaCgvYT1zZXR1cDpcUysvKTsKKyAgICBpZiAoc2V0dXAg
PT09ICdhY3RpdmUnKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdGluZ1NldHVwWzBdLCAn
YT1zZXR1cDpwYXNzaXZlJyk7CisgICAgfSBlbHNlIGlmIChzZXR1cCA9PT0gJ3Bhc3NpdmUnKSB7
CisgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdGluZ1NldHVwWzBdLCAnYT1zZXR1cDphY3RpdmUn
KTsKKyAgICB9IGVsc2UgaWYgKHNldHVwID09PSAnYWN0cGFzcycpIHsKKyAgICAgIC8vIEZvciBh
Y3RwYXNzLCBlaXRoZXIgYWN0aXZlIG9yIHBhc3NpdmUgYXJlIGxlZ2FsLCBhbHRob3VnaAorICAg
ICAgLy8gYWN0aXZlIGlzIFJFQ09NTUVOREVEIGJ5IFJGQyA1NzYzIC8gODg0Mi4KKyAgICAgIGFz
c2VydF9pbl9hcnJheShyZXN1bHRpbmdTZXR1cFswXSwgWydhPXNldHVwOmFjdGl2ZScsICdhPXNl
dHVwOnBhc3NpdmUnXSk7CisgICAgfQorICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9u
KGFuc3dlcik7CisgIH0sICdQQyBzaG91bGQgYWNjZXB0IGluaXRpYWwgb2ZmZXIgd2l0aCBzZXR1
cD0nICsgc2V0dXApOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci1kYXRh
Y2hhbm5lbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci1kYXRhY2hhbm5lbC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjhmZWUyMDg2MDM1NmJmMTUxMDYwMzFhNjA3OTg4YTVkNDgxNzczMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFjaGFubmVsLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworRkFJTCBIYW5kb3ZlciB3aXRoIGRhdGFjaGFubmVsIHJlaW5pdGlh
dGVkIGZyb20gbmV3IGNhbGxlZSBjb21wbGV0ZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3Qg
aXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWRhdGFj
aGFubmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci1kYXRhY2hhbm5lbC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhm
MjI0ZjgyMmE3NmJiNDg5MjRiYzEzZTU5ZDUzZjhhMjRkOTlmNjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9oYW5kb3Zlci1kYXRhY2hhbm5lbC5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBI
YW5kb3ZlcnM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgIGNvbnN0IG9mZmVyUGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29u
c3QgYW5zd2VyUGNGaXJzdCA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBhbnN3
ZXJQY1NlY29uZCA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHsKKyAgICBvZmZlclBjLmNsb3NlKCk7CisgICAgYW5zd2VyUGNGaXJzdC5jbG9zZSgpOwor
ICAgIGFuc3dlclBjU2Vjb25kLmNsb3NlKCk7CisgIH0pOworICBjb25zdCBvZmZlckRhdGFjaGFu
bmVsMSA9IG9mZmVyUGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2luaXRpYWwnKTsKKyAgZXhjaGFuZ2VJ
Y2VDYW5kaWRhdGVzKG9mZmVyUGMsIGFuc3dlclBjRmlyc3QpOworCisgIC8vIE5lZ290aWF0ZSBj
b25uZWN0aW9uIHdpdGggUEMgMQorICBjb25zdCBvZmZlcjEgPSBhd2FpdCBvZmZlclBjLmNyZWF0
ZU9mZmVyKCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcjEpOwor
ICBhd2FpdCBhbnN3ZXJQY0ZpcnN0LnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyMSk7CisgIGNv
bnN0IGFuc3dlcjEgPSBhd2FpdCBhbnN3ZXJQY0ZpcnN0LmNyZWF0ZUFuc3dlcigpOworICBhd2Fp
dCBvZmZlclBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcjEpOworICBhd2FpdCBhbnN3ZXJQ
Y0ZpcnN0LnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyMSk7CisgIGNvbnN0IGRhdGFjaGFubmVs
QXRBbnN3ZXJQY0ZpcnN0ID0gYXdhaXQgbmV3IFByb21pc2UoCisgICAgciA9PiBhbnN3ZXJQY0Zp
cnN0Lm9uZGF0YWNoYW5uZWwgPSAoe2NoYW5uZWx9KSA9PiByKGNoYW5uZWwpKTsKKyAgY29uc3Qg
aWNlVHJhbnNwb3J0ID0gb2ZmZXJQYy5zY3RwLnRyYW5zcG9ydDsKKyAgLy8gQ2hlY2sgdGhhdCBt
ZXNzYWdlcyBnZXQgdGhyb3VnaC4KKyAgZGF0YWNoYW5uZWxBdEFuc3dlclBjRmlyc3Quc2VuZCgn
aGVsbG8nKTsKKyAgY29uc3QgbWVzc2FnZTEgPSBhd2FpdCBhd2FpdE1lc3NhZ2Uob2ZmZXJEYXRh
Y2hhbm5lbDEpOworICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UxLCAnaGVsbG8nKTsKKworICAvLyBS
ZW5lZ290aWF0ZSB3aXRoIFBDIDIKKyAgLy8gTm90ZSAtIElDRSBjYW5kaWRhdGVzIHdpbGwgYWxz
byBiZSBzZW50IHRvIGFuc3dlclBjMSwgYnV0IHRoYXQgc2hvdWxkbid0IG1hdHRlci4KKyAgZXhj
aGFuZ2VJY2VDYW5kaWRhdGVzKG9mZmVyUGMsIGFuc3dlclBjU2Vjb25kKTsKKyAgY29uc3Qgb2Zm
ZXIyID0gYXdhaXQgb2ZmZXJQYy5jcmVhdGVPZmZlcigpOworICBhd2FpdCBvZmZlclBjLnNldExv
Y2FsRGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAgYXdhaXQgYW5zd2VyUGNTZWNvbmQuc2V0UmVtb3Rl
RGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAgY29uc3QgYW5zd2VyMiA9IGF3YWl0IGFuc3dlclBjU2Vj
b25kLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBvZmZlclBjLnNldFJlbW90ZURlc2NyaXB0aW9u
KGFuc3dlcjIpOworICBhd2FpdCBhbnN3ZXJQY1NlY29uZC5zZXRMb2NhbERlc2NyaXB0aW9uKGFu
c3dlcjIpOworCisgIC8vIEtpbGwgdGhlIGZpcnN0IFBDLiBUaGlzIHNob3VsZCBub3QgYWZmZWN0
IGFueXRoaW5nLCBidXQgbGVhdmluZyBpdCBtYXkgY2F1c2UgdW50b3dhcmQgZXZlbnRzLgorICBh
bnN3ZXJQY0ZpcnN0LmNsb3NlKCk7CisKKyAgY29uc3QgYW5zd2VyRGF0YUNoYW5uZWwyID0gYW5z
d2VyUGNTZWNvbmQuY3JlYXRlRGF0YUNoYW5uZWwoJ3NlY29uZCBiYWNrJyk7CisKKyAgY29uc3Qg
ZGF0YWNoYW5uZWxBdE9mZmVyUGNTZWNvbmQgPSBhd2FpdCBuZXcgUHJvbWlzZShyID0+IG9mZmVy
UGMub25kYXRhY2hhbm5lbCA9ICh7Y2hhbm5lbH0pID0+IHIoY2hhbm5lbCkpOworCisgIGF3YWl0
IG5ldyBQcm9taXNlKHIgPT4gZGF0YWNoYW5uZWxBdE9mZmVyUGNTZWNvbmQub25vcGVuID0gcik7
CisKKyAgZGF0YWNoYW5uZWxBdE9mZmVyUGNTZWNvbmQuc2VuZCgnaGVsbG8gYWdhaW4nKTsKKyAg
Y29uc3QgbWVzc2FnZTIgPSBhd2FpdCBhd2FpdE1lc3NhZ2UoYW5zd2VyRGF0YUNoYW5uZWwyKTsK
KyAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlMiwgJ2hlbGxvIGFnYWluJyk7Cit9LCAnSGFuZG92ZXIg
d2l0aCBkYXRhY2hhbm5lbCByZWluaXRpYXRlZCBmcm9tIG5ldyBjYWxsZWUgY29tcGxldGVzJyk7
CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVy
Lmh0bWwKaW5kZXggMzc4ZDY1ZmZjMzIwYmYwYWM2YTZhMTY2OTBkZDk5MmQwZjVlNTM2ZC4uNzQ4
Y2JlZmY4ZDdiZDgzYmU0NzNjMDQ5OTA4YjUzZjdmZTJiYzk3YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFu
ZG92ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5odG1sCkBAIC02OSw2ICs2OSw0IEBAIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKICAgYXdhaXQgb2ZmZXJQYy5zZXRMb2NhbERlc2NyaXB0aW9u
KGFuc3dlcjIpOwogfSwgJ05lZ290aWF0aW9uIG9mIGhhbmRvdmVyIGluaXRpYXRlZCBhdCBjYWxs
ZWUgd29ya3MnKTsKIAotCi0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtY2xvY2tyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMGIyNGMyNjJkODU5Mzk0OGZlYTVkY2YwMjM2NmRhNmE0ZGYyNzJhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvcnRwLWNsb2NrcmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgdmlkZW8gcnRwIHRpbWVzdGFtcHMgaW5jcmVhc2UgYnkgYXBwcm94aW1hdGVseSA5MDAwMCBw
ZXIgc2Vjb25kCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1jbG9ja3JhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1j
bG9ja3JhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTc3NDIwMDUwZjU4MjA5NGQ4ZmUyOTNhYWMxNjY1
YmRhZWE3OThlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0ZS5odG1sCkBAIC0w
LDAgKzEsNDAgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzwhLS0g
VGhpcyBmaWxlIGNvbnRhaW5zIGEgdGVzdCB0aGF0IHdhaXRzIGZvciB0d28gc2Vjb25kcy4gLS0+
Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5SVFAgY2xvY2ty
YXRlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworYXN5bmMgZnVuY3Rpb24gaW5pdGlhdGVT
aW5nbGVUcmFja0NhbGxBbmRSZXR1cm5SZWNlaXZlcih0LCBraW5kKSB7CisgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9z
ZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5v
aXNlU3RyZWFtKHtba2luZF06dHJ1ZX0pOworICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRy
YWNrcygpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHRyYWNrLnN0b3AoKSk7CisgIHBjMS5hZGRU
cmFjayh0cmFjaywgc3RyZWFtKTsKKworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIp
OworICBjb25zdCB0cmFja0V2ZW50ID0gYXdhaXQgZXhjaGFuZ2VPZmZlckFuZExpc3RlblRvT250
cmFjayh0LCBwYzEsIHBjMik7CisgIGF3YWl0IGV4Y2hhbmdlQW5zd2VyKHBjMSwgcGMyKTsKKyAg
YXdhaXQgd2FpdEZvckNvbm5lY3Rpb25TdGF0ZUNoYW5nZShwYzIsIFsnY29ubmVjdGVkJ10pOwor
ICByZXR1cm4gdHJhY2tFdmVudC5yZWNlaXZlcjsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICAvLyB0aGUgZ2V0U3luY2hyb25pemF0aW9uU291cmNlcyBBUEkgZXhwb3NlcyB0aGUg
cnRwIHRpbWVzdGFtcC4KKyAgY29uc3QgcmVjZWl2ZXIgPSBhd2FpdCBpbml0aWF0ZVNpbmdsZVRy
YWNrQ2FsbEFuZFJldHVyblJlY2VpdmVyKHQsICd2aWRlbycpOworICBjb25zdCBmaXJzdCA9IGF3
YWl0IGxpc3RlbkZvclNTUkNzKHQsIHJlY2VpdmVyKTsKKyAgYXdhaXQgbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCAyMDAwKSk7CisgIGNvbnN0IHNlY29uZCA9
IGF3YWl0IGxpc3RlbkZvclNTUkNzKHQsIHJlY2VpdmVyKTsKKyAgLy8gcnRwVGltZXN0YW1wIG1h
eSB3cmFwIGF0IDB4ZmZmZmZmZmYsIHRha2UgY2FyZSBvZiB0aGF0LgorICBjb25zdCBhY3R1YWxD
bG9ja1JhdGUgPSAoKHNlY29uZFswXS5ydHBUaW1lc3RhbXAgLSBmaXJzdFswXS5ydHBUaW1lc3Rh
bXAgKyAweGZmZmZmZmZmKSAlIDB4ZmZmZmZmZmYpIC8gKHNlY29uZFswXS50aW1lc3RhbXAgLSBm
aXJzdFswXS50aW1lc3RhbXApICogMTAwMDsKKyAgYXNzZXJ0X2FwcHJveF9lcXVhbHMoYWN0dWFs
Q2xvY2tSYXRlLCA5MDAwMCwgOTAwMCwgJ1ZpZGVvIGNsb2NrcmF0ZSBpcyBhcHByb3hpbWF0ZWx5
IDkwMDAwJyk7Cit9LCAndmlkZW8gcnRwIHRpbWVzdGFtcHMgaW5jcmVhc2UgYnkgYXBwcm94aW1h
dGVseSA5MDAwMCBwZXIgc2Vjb25kJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1l
eHRlbnNpb24tc3VwcG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlYjMwYzUyNDc3MmIzYzU0YzY0YWFlZmM5YjkwYmVj
NjNkYWI2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIHVy
bjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNzcmMtYXVkaW8tbGV2ZWwgaXMgcHJlc2VudCBpbiBv
ZmZlcgorUEFTUyBSVFAgaGVhZGVyIGV4dGVuc2lvbiB1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4
dDpzZGVzOm1pZCBpcyBwcmVzZW50IGluIG9mZmVyCitQQVNTIFJUUCBoZWFkZXIgZXh0ZW5zaW9u
IHVybjozZ3BwOnZpZGVvLW9yaWVudGF0aW9uIGlzIHByZXNlbnQgaW4gb2ZmZXIKK1BBU1MgUlRQ
IGhlYWRlciBleHRlbnNpb24gdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczpydHAtc3Ry
ZWFtLWlkIGlzIHByZXNlbnQgaW4gb2ZmZXIKK1BBU1MgUlRQIGhlYWRlciBleHRlbnNpb24gdXJu
OmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczpyZXBhaXJlZC1ydHAtc3RyZWFtLWlkIGlzIHBy
ZXNlbnQgaW4gb2ZmZXIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWV4dGVuc2lvbi1zdXBwb3J0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2QzZmU4N2Q5
M2RjODBmZmQ4NjRhMzE0N2M3NGMyMmViZjU2OGIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRw
LWV4dGVuc2lvbi1zdXBwb3J0Lmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIFJUUCBleHRl
bnNpb25zPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi90aGlyZF9wYXJ0eS9zZHAvc2RwLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK2FzeW5jIGZ1bmN0aW9uIHNldHVwKCkgewor
ICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgcGMxLmFkZFRyYW5zY2Vp
dmVyKCdhdWRpbycpOworICBwYzEuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CisgIGNvbnN0IG9m
ZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIHBjMS5jbG9zZSgpOworICByZXR1cm4g
b2ZmZXIuc2RwOworfQorCisvLyBFeHRlbnNpb25zIHRoYXQgTVVTVCBiZSBzdXBwb3J0ZWQKK2Nv
bnN0IG1hbmRhdG9yeUV4dGVuc2lvbnMgPSBbCisgIC8vIERpcmVjdGx5IHJlZmVyZW5jZWQgaW4g
V2ViUlRDIFJUUCB1c2FnZQorICAndXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c3NyYy1hdWRp
by1sZXZlbCcsIC8vIFJGQyA4ODM0IDUuMi4yCisgICd1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4
dDpzZGVzOm1pZCcsICAvLyBSRkMgODgzNCA1LjIuNAorICAndXJuOjNncHA6dmlkZW8tb3JpZW50
YXRpb24nLCAgLy8gUkZDIDg4MzQgNS4yLjUKKyAgLy8gUmVxdWlyZWQgZm9yIHN1cHBvcnQgb2Yg
c2ltdWxjYXN0IHdpdGggUklECisgICd1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOnJ0
cC1zdHJlYW0taWQnLCAgLy8gUkZDIDg4NTIgNC4zCisgICd1cm46aWV0ZjpwYXJhbXM6cnRwLWhk
cmV4dDpzZGVzOnJlcGFpcmVkLXJ0cC1zdHJlYW0taWQnLCAgLy8gUkZDIDg4NTIgNC40CitdOwor
CisvLyBGb3IgZnVydGhlciB0ZXN0aW5nOgorLy8gLSBBZGQgdGVzdCBmb3IgcmFwaWQgc3luY2hy
b25pemF0aW9uIC0gUkZDIDg4MzQgNS4yLjEKKy8vIC0gQWRkIHRlc3QgZm9yIGVuY3J5cHRlZCBo
ZWFkZXIgZXh0ZW5zaW9ucyAoUkZDIDY5MDQpCisvLyAtIFNlcGFyYXRlIHRlc3RzIGZvciBleHRl
bnNpb25zIGluIGF1ZGlvIGFuZCB2aWRlbyBzZWN0aW9ucworCitmb3IgKGNvbnN0IGV4dGVuc2lv
biBvZiBtYW5kYXRvcnlFeHRlbnNpb25zKSB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgICBjb25zdCBzZHAgPSBhd2FpdCBzZXR1cCgpOworICAgIGNvbnN0IGV4dGVuc2lvbnMgPSBT
RFBVdGlscy5tYXRjaFByZWZpeChzZHAsICdhPWV4dG1hcDonKQorICAgICAgICAgIC5tYXAoU0RQ
VXRpbHMucGFyc2VFeHRtYXApOworICAgIGFzc2VydF90cnVlKCEhZXh0ZW5zaW9ucy5maW5kKGV4
dCA9PiBleHQudXJpID09PSBleHRlbnNpb24pKTsKKyAgfSwgYFJUUCBoZWFkZXIgZXh0ZW5zaW9u
ICR7ZXh0ZW5zaW9ufSBpcyBwcmVzZW50IGluIG9mZmVyYCk7Cit9CisKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5o
dG1sCmluZGV4IDY4MDZlNzVlZDUxNGMwNDk2OGQwM2I2ZDg0MTNkYWEzOGI4M2QwNTMuLmFhNDY0
Zjg2NTZmZTlhMDkwMzc0ZTQzNDZjNDM2MDBjZjBiNDk3YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1w
YXlsb2FkdHlwZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLmh0bWwKQEAgLTUxLDcg
KzUxLDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBmb3IgKGxldCBwYXlsb2FkVHlw
ZSA9IDY0OyBwYXlsb2FkVHlwZSA8PSA5NTsgcGF5bG9hZFR5cGUrKykgewogICAgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2Rv
bSh0LCAnSW52YWxpZEFjY2Vzc0Vycm9yJywKLSAgICAgIHBjLnNldFJlbW90ZURlc2NyaXB0aW9u
KHt0eXBlOiAnb2ZmZXInLCBzZHA6IGNyZWF0ZU9mZmVyU2RwKDY0KX0pKTsKKyAgICAgIHBjLnNl
dFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHA6IGNyZWF0ZU9mZmVyU2RwKHBh
eWxvYWRUeXBlKX0pKTsKICAgICBwYy5jbG9zZSgpOwogICB9CiB9LCAnc2V0UmVtb3RlRGVzY3Jp
cHRpb24gd2l0aCBhIGNvZGVjIGluIHRoZSByYW5nZSA2NC05NSB0aHJvd3MgYW4gSW52YWxpZEFj
Y2Vzc0Vycm9yJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zZGVzLWRvbnQtZG9udC1kb250LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3NkZXMtZG9udC1kb250LWRvbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUx
YWQwYzhiZGUyMDFjZDRhNmU4MDBmOTc2MGFlZjM5NmExY2JjZTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9zZGVzLWRvbnQtZG9udC1kb250LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKwor
UEFTUyBkb2VzIG5vdCBjcmVhdGUgb2ZmZXJzIHdpdGggU0RFUworUEFTUyByZWplY3RzIGEgcmVt
b3RlIG9mZmVyIHRoYXQgb25seSBpbmNsdWRlcyBTREVTIGFuZCBubyBEVExTIGZpbmdlcnByaW50
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9udC1kb250LWRvbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NkZXMtZG9u
dC1kb250LWRvbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTM4Yzg0YzhiZmUzOTY4M2I2ODlhYzQyZTJh
M2Y5ZDUzMjQ0MDczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1kb250LWRvbnQtZG9udC5o
dG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlJUQ1BlZXJD
b25uZWN0aW9uIE1VU1QgTk9UIHN1cHBvcnQgU0RFUzwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVl
ckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvd2VicnRjL3Ro
aXJkX3BhcnR5L3NkcC9zZHAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsK
KworLy8gVGVzdCBzdXBwb3J0IGZvcgorLy8gaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZj
L3JmYzg4MjYjc2VjdGlvbi00LjMuMQorCitjb25zdCBzZHAgPSBgdj0wCitvPS0gMCAzIElOIElQ
NCAxMjcuMC4wLjEKK3M9LQordD0wIDAKK209dmlkZW8gOSBVRFAvVExTL1JUUC9TQVZQRiAxMDAK
K2M9SU4gSVA0IDAuMC4wLjAKK2E9cnRjcC1tdXgKK2E9c2VuZG9ubHkKK2E9bWlkOnZpZGVvCith
PXJ0cG1hcDoxMDAgVlA4LzkwMDAwCithPWZtdHA6MTAwIG1heC1mcj0zMDttYXgtZnM9MzYwMAor
YT1jcnlwdG86MCBBRVNfQ01fMTI4X0hNQUNfU0hBMV84MCBpbmxpbmU6Mm5yYTI3aFRVYjlpbHlu
MnJFa0JFUU45V09GdHMyNkYvanZvZmFzdworYT1pY2UtdWZyYWc6RVRFbgorYT1pY2UtcHdkOk90
U0swV3BOdHBVamtZNCs4NmpzN1ovbAorYDsKKworLy8gTmVnYXRpdmUgdGVzdCBmb3IgQ2hyb21l
IGxlZ2FjeSBiZWhhdmlvci4KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc2Rl
c19jb25zdHJhaW50ID0geydtYW5kYXRvcnknOiB7J0R0bHNTcnRwS2V5QWdyZWVtZW50JzogZmFs
c2V9fTsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCwgc2Rlc19jb25z
dHJhaW50KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICBwYy5hZGRU
cmFuc2NlaXZlcignYXVkaW8nKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZl
cigpOworICBhc3NlcnRfZmFsc2Uob2ZmZXIuc2RwLmluY2x1ZGVzKCdcbmE9Y3J5cHRvOicpKTsK
K30sICdkb2VzIG5vdCBjcmVhdGUgb2ZmZXJzIHdpdGggU0RFUycpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgdHJ5IHsKKyAgICBhd2FpdCBwYy5z
ZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2RwfSk7CisgICAgYXNzZXJ0X3Vu
cmVhY2hlZCgiTXVzdCBub3QgYWNjZXB0IFNEUCB3aXRob3V0IGZpbmdlcnByaW50Iik7CisgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAvLyBUT0RPOiB3aGljaCBlcnJvciBpcyBjb3JyZWN0PyBTZWUKKyAg
ICAvLyBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYnJ0Yy1wYy9pc3N1ZXMvMjY3MgorICAgIGFz
c2VydF90cnVlKFsnT3BlcmF0aW9uRXJyb3InLCAnSW52YWxpZEFjY2Vzc0Vycm9yJ10uaW5jbHVk
ZXMoZS5uYW1lKSk7CisgIH0KK30sICdyZWplY3RzIGEgcmVtb3RlIG9mZmVyIHRoYXQgb25seSBp
bmNsdWRlcyBTREVTIGFuZCBubyBEVExTIGZpbmdlcnByaW50Jyk7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3NwbGl0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1sCmluZGV4IDVl
YjgzMjk1MTdmYmVmZTk0NjgyZmU3OTFhZTgxNzY5ZDAzZGExOTcuLjNmYzNiZGEyYTUyY2Y3MTkw
YzAxYWI0ZDg5MjZkNzVkM2Q0ZmQ4NWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NwbGl0Lmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbApAQCAtMzgsMTYgKzM4LDIyIEBAIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKICAgICBpZiAoZS5jYW5kaWRhdGUpIHsKICAgICAgIGNvbnN0IHRhcmdl
dCA9IGUuY2FuZGlkYXRlLnNkcE1MaW5lSW5kZXggPT09IDAgPyBjYWxsZWVBdWRpbyA6IGNhbGxl
ZVZpZGVvOwogICAgICAgdGFyZ2V0LmFkZEljZUNhbmRpZGF0ZSh7c2RwTWlkOiBlLmNhbmRpZGF0
ZS5zZHBNaWQsIGNhbmRpZGF0ZTogZS5jYW5kaWRhdGUuY2FuZGlkYXRlfSk7CisgICAgfSBlbHNl
IHsKKyAgICAgIGNhbGxlZUF1ZGlvLmFkZEljZUNhbmRpZGF0ZSgpOworICAgICAgY2FsbGVlVmlk
ZW8uYWRkSWNlQ2FuZGlkYXRlKCk7CiAgICAgfQogICB9KTsKICAgY2FsbGVlQXVkaW8uYWRkRXZl
bnRMaXN0ZW5lcignaWNlY2FuZGlkYXRlJywgKGUpID0+IHsKICAgICBpZiAoZS5jYW5kaWRhdGUp
IHsKICAgICAgIGNhbGxlci5hZGRJY2VDYW5kaWRhdGUoe3NkcE1pZDogZS5jYW5kaWRhdGUuc2Rw
TWlkLCBjYW5kaWRhdGU6IGUuY2FuZGlkYXRlLmNhbmRpZGF0ZX0pOwogICAgIH0KKyAgICAvLyBO
b3RlOiBjYWxsZXIuYWRkSWNlQ2FuZGlkYXRlIGlzIG9ubHkgY2FsbGVkIGZvciB2aWRlbyB0byBh
dm9pZCBjYWxsaW5nIGl0IHR3aWNlLgogICB9KTsKICAgY2FsbGVlVmlkZW8uYWRkRXZlbnRMaXN0
ZW5lcignaWNlY2FuZGlkYXRlJywgKGUpID0+IHsKICAgICBpZiAoZS5jYW5kaWRhdGUpIHsKICAg
ICAgIGNhbGxlci5hZGRJY2VDYW5kaWRhdGUoe3NkcE1pZDogZS5jYW5kaWRhdGUuc2RwTWlkLCBj
YW5kaWRhdGU6IGUuY2FuZGlkYXRlLmNhbmRpZGF0ZX0pOworICAgIH0gZWxzZSB7CisgICAgICBj
YWxsZXIuYWRkSWNlQ2FuZGlkYXRlKCk7CiAgICAgfQogICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
dnA4LWZtdHAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdnA4LWZtdHAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM4MjVhOTc1NjczYTBiZTY3NDllNDI3YWQ1MmJmYmY4NGVjZjkwODUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC92cDgtZm10cC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwg
c2V0UmVtb3RlRGVzY3JpcHRpb24gcGFyc2VzIG1heC1mciBhbmQgbWF4LWZzIGZtdHAgcGFyYW1l
dGVycyBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvdnA4LWZtdHAuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL3ZwOC1mbXRwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTZlYTYzNTk0
OWYxNGJmZWMxODAwNWMwODAzYTliYzk5ZDY4MDllYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3Zw
OC1mbXRwLmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+
UlRDUGVlckNvbm5lY3Rpb24gRmFpbGVkIFN0YXRlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9SVENQZWVy
Q29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsK
KworLy8gVGVzdCBzdXBwb3J0IGZvcgorLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3Jm
Yzc3NDEjc2VjdGlvbi02LjEKKworY29uc3Qgc2RwID0gYHY9MAorbz0tIDAgMyBJTiBJUDQgMTI3
LjAuMC4xCitzPS0KK3Q9MCAwCithPWZpbmdlcnByaW50OnNoYS0yNTYgQTc6MjQ6NzI6Q0E6NkU6
MDI6NTU6Mzk6QkE6NjY6REY6NkU6Q0M6NEM6RDg6QjA6MUE6QkY6MUE6NTY6NjU6N0Q6RjQ6MDM6
QUQ6N0U6Nzc6NDM6MkE6Mjk6RUM6OTMKK209dmlkZW8gOSBVRFAvVExTL1JUUC9TQVZQRiAxMDAK
K2M9SU4gSVA0IDAuMC4wLjAKK2E9cnRjcC1tdXgKK2E9c2VuZG9ubHkKK2E9bWlkOnZpZGVvCith
PXJ0cG1hcDoxMDAgVlA4LzkwMDAwCithPWZtdHA6MTAwIG1heC1mcj0zMDttYXgtZnM9MzYwMAor
YT1zZXR1cDphY3RwYXNzCithPWljZS11ZnJhZzpFVEVuCithPWljZS1wd2Q6T3RTSzBXcE50cFVq
a1k0Kzg2anM3Wi9sCitgOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CisKKyAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcics
IHNkcH0pOworICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIGNvbnN0IHJlY2Vp
dmVyID0gcGMuZ2V0UmVjZWl2ZXJzKClbMF07CisgIGNvbnN0IHBhcmFtZXRlcnMgPSByZWNlaXZl
ci5nZXRQYXJhbWV0ZXJzKCk7CisgIGNvbnN0IHtzZHBGbXRwTGluZX0gPSBwYXJhbWV0ZXJzLmNv
ZGVjc1swXTsKKyAgYXNzZXJ0X3RydWUoISFzZHBGbXRwTGluZSk7CisgIGFzc2VydF90cnVlKHNk
cEZtdHBMaW5lLnNwbGl0KCc7JykuaW5jbHVkZXMoJ21heC1mcj0zMCcpKTsKKyAgYXNzZXJ0X3Ry
dWUoc2RwRm10cExpbmUuc3BsaXQoJzsnKS5pbmNsdWRlcygnbWF4LWZzPTM2MDAnKSk7Cit9LCAn
c2V0UmVtb3RlRGVzY3JpcHRpb24gcGFyc2VzIG1heC1mciBhbmQgbWF4LWZzIGZtdHAgcGFyYW1l
dGVycycpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3cz
Yy1pbXBvcnQubG9nCmluZGV4IDRlM2M4MWU1OTczNjZiMzQyMWI1MjUyODNkYTU2NjE1OTZmYzY5
ZjYuLjQ3YTY3N2MzYmFlNDdlZmZjNzFlMTAyODZhYjYzYjc0OGNjODAyZDAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3czYy1pbXBvcnQubG9nCkBAIC0yMCwxNyArMjAs
MjMgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL2NyeXB0by1zdWl0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1maW5nZXJwcmludC12YWxpZGF0
aW9uLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm90b2NvbC9kdGxzLXNldHVwLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci1kYXRhY2hh
bm5lbC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2ljZS1zdGF0ZS5odHRwcy5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvaWNlLXVmcmFncHdkLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9qc2VwLWluaXRpYWwtb2ZmZXIuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL21pc3NpbmctZmllbGRzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9tc2lkLXBhcnNlLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtY2xv
Y2tyYXRlLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9ydHAtZGVtdXhpbmcuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1leHRlbnNpb24tc3Vw
cG9ydC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2N0cC1mb3JtYXQuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL3NkZXMtZG9udC1kb250LWRvbnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NpbXVsY2FzdC1hbnN3ZXIuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL3NpbXVsY2FzdC1vZmZlci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3Vu
a25vd24tbWVkaWF0eXBlcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdmlkZW8tY29kZWNzLmh0dHBzLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92
cDgtZm10cC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLW5vLXNzcmNzLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxs
LW5vLXNzcmNzLmh0dHBzLmh0bWwKaW5kZXggNTE2MDQ1MWYwMTJlNjQyZGQ1Njk3ZTAzNGExOWE3
Zjg4OTU0MjFlYS4uZjJlMjA4NDYyMzRiYjQ3MDNkMjNjODc2ZjQ2ODk5NGRjZDc0YmUzMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvc2ltcGxlY2FsbC1uby1zc3Jjcy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXBsZWNhbGwtbm8tc3NyY3MuaHR0
cHMuaHRtbApAQCAtODgsMTYgKzg4LDExIEBACiAgIH07CiAKICAgdmFyIG9uSWNlQ2FuZGlkYXRl
VG9GaXJzdCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgLy8gSWYgZXZl
bnQuY2FuZGlkYXRlIGlzIG51bGwgPSBubyBtb3JlIGNhbmRpZGF0ZXMuCi0gICAgaWYgKGV2ZW50
LmNhbmRpZGF0ZSkgewotICAgICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2
ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQorICAgIGdTZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRp
ZGF0ZShldmVudC5jYW5kaWRhdGUpOwogICB9KTsKIAogICB2YXIgb25JY2VDYW5kaWRhdGVUb1Nl
Y29uZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgaWYgKGV2ZW50LmNh
bmRpZGF0ZSkgewotICAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQu
Y2FuZGlkYXRlKTsKLSAgICB9CisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUo
ZXZlbnQuY2FuZGlkYXRlKTsKICAgfSk7CiAKICAgdmFyIG9uUmVtb3RlVHJhY2sgPSB0ZXN0LnN0
ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxl
Y2FsbC5odHRwcy5odG1sCmluZGV4IGZmZTA0M2I2YTIzN2ZhZTFhNGY3MGUyY2ZhYzQ5NWEyYTYx
MzJjMjguLmRiZjZiOWE1MDgzYTg3ZmVlZWIzZDkzYmVmYTBhMDYwMTdiZTg1NTMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Np
bXBsZWNhbGwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWwKQEAgLTc5LDE2ICs3OSwx
MSBAQAogICB9OwogCiAgIHZhciBvbkljZUNhbmRpZGF0ZVRvRmlyc3QgPSB0ZXN0LnN0ZXBfZnVu
YyhmdW5jdGlvbihldmVudCkgewotICAgIC8vIElmIGV2ZW50LmNhbmRpZGF0ZSBpcyBudWxsID0g
bm8gbW9yZSBjYW5kaWRhdGVzLgotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAgICAgIGdT
ZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwotICAgIH0K
KyAgICBnU2Vjb25kQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsK
ICAgfSk7CiAKICAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQgPSB0ZXN0LnN0ZXBfZnVuYyhm
dW5jdGlvbihldmVudCkgewotICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKLSAgICAgIGdGaXJz
dENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7Ci0gICAgfQorICAg
IGdGaXJzdENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CiAgIH0p
OwogCiAgIHZhciBvblJlbW90ZVRyYWNrID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQp
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3NpbXVsY2FzdC9iYXNpYy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDVlOGVjZWJlOWI2M2M0ZDljMjg2OWU0Mzk0OThlNjg5
MDA1ZjUyMDIuLjczN2I1MzJmNDM0ZDkyYTA1ODY3OTMzOGUxN2MwZDVmZjZmMmU2OGUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3NpbXVsY2FzdC9iYXNpYy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCks
IG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgQmFzaWMgc2ltdWxjYXN0IHNldHVwIHdpdGggdGhy
ZWUgc3BhdGlhbCBsYXllcnMgVGVzdCB0aW1lZCBvdXQKK1BBU1MgQmFzaWMgc2ltdWxjYXN0IHNl
dHVwIHdpdGggdHdvIHNwYXRpYWwgbGF5ZXJzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9iYXNpYy5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0bWwKaW5kZXggNWQ1ZjNiNTJmNWY2NjhjYTJkZGQ1
MjE4YzVjOWY2MGI4ODQ1NTVkZi4uYmYyYmFhOGNhYjk5ZDE1NDJmNDY1NTRiMzU2NjRkYTI1NzY4
ZTVlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0
dHBzLmh0bWwKQEAgLTksMTIgKzksMTIgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7Ci0gIGNvbnN0IHJpZHMgPSBbMCwgMSwgMl07CisgIGNvbnN0IHJpZHMgPSBbMCwgMV07
CiAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMS5jbG9zZSgpKTsKICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwogCiAgIHJldHVybiBuZWdv
dGlhdGVTaW11bGNhc3RBbmRXYWl0Rm9yVmlkZW8odCwgcmlkcywgcGMxLCBwYzIpOwotfSwgJ0Jh
c2ljIHNpbXVsY2FzdCBzZXR1cCB3aXRoIHRocmVlIHNwYXRpYWwgbGF5ZXJzJyk7Cit9LCAnQmFz
aWMgc2ltdWxjYXN0IHNldHVwIHdpdGggdHdvIHNwYXRpYWwgbGF5ZXJzJyk7CiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3NpbXVsY2FzdC9nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvZ2V0U3Rh
dHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDQzMjlhMzIzYmNiMDUyYzhjMmFiZDQwMjdhMTdi
NGRkMmVhNjg0MmMuLmIyYzliMzFmM2Y0NGJmNTVmOWQ1OTE1Njg4MzBkMmU1ZmViN2MyZTMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3NpbXVsY2FzdC9nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0
YXRzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAo
VElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgU2ltdWxjYXN0IGdldFN0YXRzIHJl
c3VsdHMgVGVzdCB0aW1lZCBvdXQKK1BBU1MgU2ltdWxjYXN0IGdldFN0YXRzIHJlc3VsdHMKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMt
ZXhwZWN0ZWQudHh0CmluZGV4IGExMGViNzI4MDY3NzQ3MWM5NjU3M2E5YTNmNzk5YTc3NmQ2ZDZl
YmQuLmU3MmQ0NTMyNjFhNmRiZmVkNDk3MzBlNWE0NjM0NDdkNDJmM2E3NTcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVs
Y2FzdC9oMjY0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTEsNSArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdl
ID0gbnVsbAotCi1USU1FT1VUIEgyNjQgc2ltdWxjYXN0IHNldHVwIHdpdGggdGhyZWUgc3BhdGlh
bCBsYXllcnMgVGVzdCB0aW1lZCBvdXQKK1BBU1MgSDI2NCBzaW11bGNhc3Qgc2V0dXAgd2l0aCB0
d28gc3BhdGlhbCBsYXllcnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2Fz
dC9oMjY0Lmh0dHBzLmh0bWwKaW5kZXggMjZlZDJlOTA0YThiMzUxN2M5ZGQzNWFmMjc2MzMwZDUz
NDFkNzM4OC4uZDIzZjI5NTJhZWE0M2Y4M2RiZmUzNzI2NmJiYmQ1YzUxYWU3YjVlZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
c2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sCkBAIC0x
NywxMiArMTcsMTIgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBhc3NlcnRfaW1wbGVt
ZW50cygnZ2V0Q2FwYWJpbGl0aWVzJyBpbiBSVENSdHBTZW5kZXIsICdSVENSdHBTZW5kZXIuZ2V0
Q2FwYWJpbGl0aWVzIG5vdCBzdXBwb3J0ZWQnKTsKICAgYXNzZXJ0X2ltcGxlbWVudHMoUlRDUnRw
U2VuZGVyLmdldENhcGFiaWxpdGllcygndmlkZW8nKS5jb2RlY3MuZmluZChjID0+IGMubWltZVR5
cGUgPT09ICd2aWRlby9IMjY0JyksICdIMjY0IG5vdCBzdXBwb3J0ZWQnKTsKIAotICBjb25zdCBy
aWRzID0gWzAsIDEsIDJdOworICBjb25zdCByaWRzID0gWzAsIDFdOwogICBjb25zdCBwYzEgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7CiAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKIAogICByZXR1cm4gbmVnb3RpYXRlU2ltdWxjYXN0QW5k
V2FpdEZvclZpZGVvKHQsIHJpZHMsIHBjMSwgcGMyLCB7bWltZVR5cGU6ICd2aWRlby9IMjY0J30p
OwotfSwgJ0gyNjQgc2ltdWxjYXN0IHNldHVwIHdpdGggdGhyZWUgc3BhdGlhbCBsYXllcnMnKTsK
K30sICdIMjY0IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHR3byBzcGF0aWFsIGxheWVycycpOwogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvc2ltdWxjYXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRl
eCA1NTE1ODg1Yzk5M2ExMWY0YTAwMDM2ZjMyN2YxNTJlNzMyYzFlNGQxLi4yNTcxOTBkYjFjMjQ3
ZjU2OWZhNzg3NGRjZTBhOWRlYWM5ZDAwNTk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVy
cy1hY3RpdmUuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFjdGl2
ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJ
TUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIFNpbXVsY2FzdCBzZXRQYXJhbWV0ZXJz
IGFjdGl2ZT1mYWxzZSBzdG9wcyBzZW5kaW5nIGZyYW1lcyBUZXN0IHRpbWVkIG91dAorUEFTUyBT
aW11bGNhc3Qgc2V0UGFyYW1ldGVycyBhY3RpdmU9ZmFsc2Ugc3RvcHMgc2VuZGluZyBmcmFtZXMK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvc2ltdWxjYXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qv
c2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbAppbmRleCBmNzU0YzYzZmZlOWQ0NzRhMGVh
ODRiNDAzY2Q3YjVlZDdiYWFlMWEyLi4xYTc0MzcxYmZiNmQ3MDE2NWE0MzM2MDdlZWM2MmI1OTA5
ZTZkZjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9z
aW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbApAQCAtMjIsNyArMjIsNyBA
QCBhc3luYyBmdW5jdGlvbiBxdWVyeVJlY2VpdmVyU3RhdHMocGMpIHsKIH0KIAogcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCByaWRzID0gWzAsIDEsIDJdOworICBjb25zdCByaWRz
ID0gWzAsIDFdOwogICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNh
c3QvdnA4Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA1OTAyMzc3MTFlZWZjOGZjODk2NzJlYTVj
YWEwMWIyMTkwNzg2MmI1Li4wNGQ5NzQzODk3ZjZkYjZmZjg5YTI3YjI4YWRlMTU0M2JkMmFiYmM0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9V
VCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgVlA4IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHRo
cmVlIHNwYXRpYWwgbGF5ZXJzIFRlc3QgdGltZWQgb3V0CitQQVNTIFZQOCBzaW11bGNhc3Qgc2V0
dXAgd2l0aCB0d28gc3BhdGlhbCBsYXllcnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
c2ltdWxjYXN0L3ZwOC5odHRwcy5odG1sCmluZGV4IGUzNTY3ZTYxYzIxZDFiNjhlNTQ5ZmM4YjA0
NWI0OGVhOWIwN2VjYzUuLjk0MTQ1ZDBjNzk0ZWUzM2NhNGJhZmUwMGNmZjJlMDgxMWNmZmUyZTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLmh0bWwK
QEAgLTEyLDEyICsxMiwxMiBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGFzc2VydF9p
bXBsZW1lbnRzKCdnZXRDYXBhYmlsaXRpZXMnIGluIFJUQ1J0cFNlbmRlciwgJ1JUQ1J0cFNlbmRl
ci5nZXRDYXBhYmlsaXRpZXMgbm90IHN1cHBvcnRlZCcpOwogICBhc3NlcnRfaW1wbGVtZW50cyhS
VENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycpLmNvZGVjcy5maW5kKGMgPT4gYy5t
aW1lVHlwZSA9PT0gJ3ZpZGVvL1ZQOCcpLCAnVlA4IG5vdCBzdXBwb3J0ZWQnKTsKIAotICBjb25z
dCByaWRzID0gWzAsIDEsIDJdOworICBjb25zdCByaWRzID0gWzAsIDFdOwogICBjb25zdCBwYzEg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xv
c2UoKSk7CiAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKIAogICByZXR1cm4gbmVnb3RpYXRlU2ltdWxjYXN0
QW5kV2FpdEZvclZpZGVvKHQsIHJpZHMsIHBjMSwgcGMyLCB7bWltZVR5cGU6ICd2aWRlby9WUDgn
fSk7Ci19LCAnVlA4IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHRocmVlIHNwYXRpYWwgbGF5ZXJzJyk7
Cit9LCAnVlA4IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHR3byBzcGF0aWFsIGxheWVycycpOwogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy90b29scy9wYWNrYWdlLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90b29scy9wYWNrYWdlLmpzb24KaW5kZXggZTBj
MWNmZGEzZTgxOGFlZWQ1Mzk4NzhkOGVmNjdlYzJkZDk5MTYzNy4uZjI2Y2ZjYzE0MjFiZjhmOWVj
ZWViOWY3YzE3NDZmZjI2ZmI3OTMyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdG9vbHMvcGFja2FnZS5qc29uCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Rvb2xzL3Bh
Y2thZ2UuanNvbgpAQCAtNiwxMCArNiwxMCBAQAogICAgICJsaW50IjogImVzbGludCAtYyAuZXNs
aW50cmMuanMgLi4vKi5odG1sIC4uLyouanMiCiAgIH0sCiAgICJkZXZEZXBlbmRlbmNpZXMiOiB7
Ci0gICAgImVzbGludCI6ICJeNC4xMS4wIiwKKyAgICAiZXNsaW50IjogIl43LjI0LjAiLAogICAg
ICJlc2xpbnQtcGx1Z2luLWh0bWwiOiAiXjQuMC4wIiwKICAgICAianNjb2Rlc2hpZnQiOiAiXjAu
NS4xIiwKLSAgICAianNkb20iOiAiXjExLjExLjAiCisgICAgImpzZG9tIjogIl4xNi41LjMiCiAg
IH0sCiAgICJsaWNlbnNlIjogIkJTRCIsCiAgICJwcml2YXRlIjogdHJ1ZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy93M2MtaW1wb3J0LmxvZwppbmRleCA1MTRiNjFmZjFlZDYzMDg2OGJkZjM1NGRiY2JjYmUw
MTM4M2ZlYmNiLi4wZGE4NTdiZjBlYmMzZDg1NDQ5MzVmMDQ4NzY3YjBhOTQzMGZlMTBiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZwpAQCAtMzEsNiArMzEsNyBAQCBMaXN0IG9m
IGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFyeVR5cGUud2luZG93LmpzCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVmZmVy
ZWRBbW91bnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pY2VSZXN0YXJ0
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEYXRhQ2hhbm5lbC1pZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC1ibG9iLW9yZGVyLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENE
YXRhQ2hhbm5lbC1zZW5kLmh0bWwKQEAgLTQwLDcgKzQxLDYgQEAgTGlzdCBvZiBmaWxlczoKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENFcnJv
ci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDSWNlQ2FuZGlkYXRlLWNvbnN0cnVjdG9yLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDb25uZWN0aW9uU3RhdGUtY2Fu
ZGlkYXRlLXBhaXIuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24taGVscGVyLmpzCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNl
VHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0Lmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1TTEQtU1JELXRpbWluZy5odHRwcy5odG1sCkBAIC01MiwxOSArNTIsMjUgQEAgTGlzdCBv
ZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFuc2NlaXZlci5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0
ZS1pbi1zZHAuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhcHR1cmUtdmlkZW8uaHR0cHMuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVj
dGlvblN0YXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25zdHJ1Y3Rvci5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tY3JlYXRlQW5zd2VyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRhQ2hhbm5l
bC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2VpdmUuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1kZXNjcmlwdGlvbi1hdHRy
aWJ1dGVzLXRpbWluZy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZXhwbGljaXQtcm9sbGJhY2st
aWNlR2F0aGVyaW5nU3RhdGUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNhdGUu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1nZXRJZGVudGl0eUFzc2VydGlvbi5zdWIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0
dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRUcmFuc2NlaXZlcnMuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWhlbHBlci10ZXN0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1p
Y2VDb25uZWN0aW9uU3RhdGUtZGlzY29ubmVjdGVkLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1p
Y2VDb25uZWN0aW9uU3RhdGUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRwcy5odG1sCkBAIC03NCwxMCArODAsMTMgQEAgTGlz
dCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tb250cmFjay5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb3BlcmF0
aW9ucy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVlcklkZW50aXR5Lmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLWhlbHBlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3Qt
bmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
cGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBsYW4tYi1pcy1u
b3Qtc3VwcG9ydGVkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZWxheS1jYW52YXMuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXJlbW90ZS10cmFjay1tdXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1y
ZW1vdmVUcmFjay5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS1vbm5lZ290aWF0
aW9ubmVlZGVkLmh0dHBzLmh0bWwKQEAgLTEwMyw4ICsxMTIsMTIgQEAgTGlzdCBvZiBmaWxlczoK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi12aWRlb0RldGVjdG9yVGVzdC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJv
ckV2ZW50Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENRdWljU3Ry
ZWFtLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENRdWljVHJhbnNwb3J0LWhlbHBlci5qcworL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1F1aWNUcmFuc3BvcnQuaHR0cHMu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1J0cENhcGFiaWxpdGllcy1oZWxwZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWNvZGVjcy5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
UGFyYW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZW5jb2Rp
bmdzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhlYWRlckV4dGVuc2lvbnMuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMt
aGVscGVyLmpzCkBAIC0xMjUsNiArMTM4LDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXIuaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1J0cFRyYW5zY2VpdmVyLWRpcmVjdGlvbi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29k
ZWNQcmVmZXJlbmNlcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0RGlyZWN0aW9uLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFu
c2NlaXZlci1zdG9wLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1j
b25zdHJ1Y3Rvci5odG1sCkBAIC0xMzQsMTAgKzE0OCwxMCBAQCBMaXN0IG9mIGZpbGVzOgogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1N0YXRz
LWhlbHBlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1RyYWNrRXZlbnQtY29uc3RydWN0b3IuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1RyYWNrRXZlbnQtZmlyZS5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZGF0
YWNoYW5uZWwtZW1wdHlzdHJpbmcuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL2RpY3Rpb25hcnktaGVscGVyLmpzCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0c3RhdHMuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2hpc3Rvcmlj
YWwuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL2lkZW50aXR5LWhlbHBlci5zdWIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qcwogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1lZGlhLWNh
bGwuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb21pc2VzLWNhbGwuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDk1ZmE4YTJiZjc0OTZkN2ZiMzZhMzM2MzQ5NjU5YzQwMGEx
NzZmMmYuLjc3NDdkYjc0MzEzMjgxNTRjZmU1MDU3OWI5YzFhNDE3YTA2NzRjNmIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTExMjMsMTEg
KzExMjMsNiBAQCB3ZWJraXQub3JnL2IvMjEzODA0IGZhc3Qvc2Nyb2xsaW5nL21hYy9zY3JvbGwt
c25hcHBpbmctaW4tcHJvZ3Jlc3MuaHRtbCBbIFBhc3MgRgogd2Via2l0Lm9yZy9iLzIyOTIwNiBb
IERlYnVnIF0gaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0tZXJyb3IuaHRtbCBbIFBh
c3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMTQ0NzggWyBEZWJ1ZyBdIGh0dHAvd3B0L3dl
YnJ0Yy9nZW5lcmF0ZUNlcnRpZmljYXRlLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8yMTQ0
NzggWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Nl
cnRpZmljYXRlLXBvc3RNZXNzYWdlLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8yMTQ0Nzgg
WyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NlcnRp
ZmljYXRlLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8yMTQ0NzggWyBEZWJ1ZyBdIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVy
YXRlQ2VydGlmaWNhdGUuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzIxNDQ3OCBbIERlYnVn
IF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9y
dC1jb25zdHJ1Y3Rvci5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMjE0NDc4IFsgRGVidWcg
XSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9pZGxoYXJuZXNzLmh0dHBz
LndpbmRvdy5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjE0NDc4IFsgRGVidWcgXSB0aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1zZWxlY3QuaHRt
bCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMjE0NTc5IFsgUmVsZWFzZSBdIHN2Zy9hbmltYXRp
b25zL3NtaWwtbGVhay1lbGVtZW50LWluc3RhbmNlcy5zdmcgWyBQYXNzIEZhaWx1cmUgXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyMzhiYTIzYWYxNWY3
OWVjYjllOTdmMjZlODRlMWQ2YjI3ZThlMjRiLi5iZjBjZjVmNWI5N2QzNmYwMTVlZDBhMDcxYmNh
MThmN2VhZGY5NTg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMjA1MSw3ICsyMDUxLDcgQEAgd2Via2l0Lm9yZy9iLzIxODM0NiBbIE1vamF2ZSBdIGZh
c3QvdGV4dC9jYW52YXMtY29sb3ItZm9udHMgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzIxOTQw
MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1jYW5kaWRhdGUtaW4tc2RwLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQu
b3JnL2IvMjE5NDYwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMuaHRtbCBbIFNraXAgXQord2Vi
a2l0Lm9yZy9iLzIxOTQ2MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMjE5NTU1IGluc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0
Q2hhbmdlZC5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
dGVzdHMtb3B0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCmluZGV4
IDJhODEyMWFiYzcxZDU3NDM0MDBjZTJhYTc3YmM3YzQxZWE1M2FjYmQuLjAwNzQzNjUxZmJmNGE4
NjdmN2IyYTQxMDQ3ODJlYTEwNjhlNTRlYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Rlc3Rz
LW9wdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KQEAgLTQw
NjcsNiArNDA2Nyw5IEBACiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0s
CisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFu
bmVsLWljZVJlc3RhcnQuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKICAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC5o
dG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLApAQCAtNDA3Niw2ICs0MDc5LDkgQEAKICAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tU0xELVNSRC10aW1pbmcuaHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwK
KyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tY2FwdHVyZS12aWRlby5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBd
LAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1jcmVhdGVEYXRhQ2hhbm5lbC5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBd
LApAQCAtNDA5Nyw2ICs0MTAzLDEyIEBACiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMu
aHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGxhbi1iLWlzLW5vdC1zdXBw
b3J0ZWQuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVsYXktY2FudmFz
Lmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZS10cmFj
ay1tdXRlLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCkBAIC00MTM5LDYg
KzQxNTEsMTUgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvaWNlLXVmcmFncHdkLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCisg
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1j
bG9ja3JhdGUuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1kb250LWRvbnQtZG9u
dC5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92cDgtZm10cC5odG1sIjogWworICAgICAg
ICAic2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAg
XSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>