<?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>171209</bug_id>
          
          <creation_ts>2017-04-23 18:48:29 -0700</creation_ts>
          <short_desc>Add the support for scheduling a A/B testing with a patch</short_desc>
          <delta_ts>2017-04-30 11:11:53 -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>Perf Dashboard</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1300390</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-04-23 18:48:29 -0700</bug_when>
    <thetext>Perf dashboard should have UI to schedule an A/B testing job with a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300469</commentid>
    <comment_count>1</comment_count>
      <attachid>307967</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-04-24 05:11:20 -0700</bug_when>
    <thetext>Created attachment 307967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301058</commentid>
    <comment_count>2</comment_count>
      <attachid>307967</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-25 09:22:24 -0700</bug_when>
    <thetext>Comment on attachment 307967
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303115</commentid>
    <comment_count>3</comment_count>
      <attachid>307967</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-30 11:11:51 -0700</bug_when>
    <thetext>Comment on attachment 307967
Patch

Clearing flags on attachment: 307967

Committed r215987: &lt;http://trac.webkit.org/changeset/215987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303116</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-30 11:11:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307967</attachid>
            <date>2017-04-24 05:11:20 -0700</date>
            <delta_ts>2017-04-30 11:11:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171209-20170424211217.patch</filename>
            <type>text/plain</type>
            <size>126846</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjYyCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA3YWU0NGY2ZTBjYTdlNGM5ZGJjZjY2NzhhZjA0MzFkZTY2ZjRhMmViLi5jN2EyOGMxMTZm
YzU0ZGZjZjI5ZGVlZjY1OWNmNWMwZDE5Mjc3MzI4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMTIgQEAKKzIwMTctMDQtMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHRoZSBzdXBwb3J0IGZvciBzY2hlZHVsaW5nIGEg
QS9CIHRlc3Rpbmcgd2l0aCBhIHBhdGNoLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkZWQgdGhlIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGEgY3VzdG9t
IHRlc3QgZ3JvdXAgd2l0aCBhIHBhdGNoIGFwcGxpZWQuCisKKyAgICAgICAgRmlyc3QsIGVhY2gg
cmVwb3NpdG9yeSBpbiBhIHJlcG9zaXRvcnkgZ3JvdXAgaGFzIGEgYm9vbGVhbiBpbmRpY2F0aW5n
IHdoZXRoZXIgYSBnaXZlbiByZXBvc2l0b3J5IGNhbiBoYXZlCisgICAgICAgIGEgcGF0Y2ggYXBw
bGllZCBvciBub3QuIFdoZW4gYW55IGNvbmZpZ3VyYXRpb24gaW4gYSB0ZXN0IGdyb3VwIGNvbnRh
aW5zIGEgcGF0Y2gsIHdlIGNyZWF0ZSBidWlsZCByZXF1ZXN0cworICAgICAgICB3aXRob3V0IGEg
dGVzdCBzcGVjaWZpZWQgaW4gb3JkZXIgdG8gImJ1aWxkIiB0aG9zZSBwYXRjaGVzLiBUaGVzZSBi
dWlsZCByZXF1ZXN0cyBoYXZlIG5lZ2F0aXZlIG9yZGVyIG51bWJlcnMKKyAgICAgICAgdG8gZGlm
ZmVyZW50aWF0ZSB0aGVtIGZyb20gcmVndWxhciBidWlsZCByZXF1ZXN0cy4gV2UgY2FuJ3Qgc2lt
cGx5IGJ1aWxkIG9uZXMgd2l0aCBwYXRjaGVzIHNpbmNlIHRoZXJlIGNvdWxkCisgICAgICAgIGJl
IGRpZmZlcmVuY2VzIGluIFNESywgYnVpbGQgb3B0aW9ucywgZXRjLi4uIHdoZW4gcGF0Y2hlcyBh
cmUgYXBwbGllZC4KKworICAgICAgICBUaGUgSlNPTiBmb3JtYXQgZm9yIGNvbW1pdCBzZXRzIHJl
dHVybmVkIGJ5IC9hcGkvYnVpbGQtcmVxdWVzdHMgaGF2ZSBiZWVuIGNoYW5nZWQgZnJvbSB1c2lu
ZyBhbiBhcnJheSBvZgorICAgICAgICBjb21taXQgSURzIHRvIGFuIGFycmF5IG9mIGRpY3Rpb25h
cmllcyBpbmRpY2F0ZSBjb21taXQgYW5kIGFjY2VwdHNQYXRjaCBib29sZWFuLiAvYXBpL3VwZGF0
ZS10cmlnZ2VyYWJsZSBub3cKKyAgICAgICAgdXNlcyBhIGRpY3Rpb25hcnkgd2l0aCB0d28ga2V5
czogcmVwb3NpdG9yeSBhbmQgYWNjZXB0c1BhdGNoIHRvIHNwZWNpZnkgYSBzZXQgb2YgcmVwb3Np
dG9yaWVzIGFzc29jaWF0ZWQgd2l0aAorICAgICAgICBhIHJlcG9zaXRvcnkgZ3JvdXAsIGFuZCAv
cHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAgdXNlcyBhIGRpY3Rpb25hcnkgd2l0aCB0
d28ga2V5czogcmV2aXNpb24gYW5kIHBhdGNoCisgICAgICAgIGluc3RlYWQgb2YgYSByZXZpc2lv
biBzdHJpbmcgdG8gc3BlY2lmeSBjb21taXQgc2V0cy4KKworICAgICAgICBGdXJ0aGVybW9yZSwg
dGhlIHN5bmNpbmcgc2NyaXB0J3MgY29uZmlndXJhdGlvbiBoYXZlIGJlZW4gdXBkYXRlZCB0byB1
c2UgYSBkaWN0aW9uYXJ5IG9mIHJlcG9zaXRvcnkgbmFtZXMgdG8KKyAgICAgICAgYW4gb3B0aW9u
cyBkaWN0aW9uYXJ5IGluc3RlYWQgb2YgYW4gYXJyYXkgb2YgcmVwb3NpdG9yaWVzIG5hbWVzLiBG
b3Igbm93LCB0aGUgb25seSBzdXBwb3J0ZWQgb3B0aW9uIGlzCisgICAgICAgIGFjY2VwdHNQYXRj
aCBidXQgd2lsbCBiZSBleHRlbmRlZCB3aGVuIHdlIGFkZCB0aGUgc3VwcG9ydCBmb3Igcm9sbGlu
ZyBiYWNrIHN5c3RlbSBjb21wb25lbnRzLgorICAgICAgICBlLmcuIHsiV2ViS2l0Ijoge2FjY2Vw
dHNQYXRjaDogdHJ1ZX0sICJtYWNPUyI6IHt9fSBpbnN0ZWFkIG9mIFsiV2ViS2l0IiwgIm1hY09T
Il0KKworICAgICAgICBPbiB0aGUgVUkgc2lkZSwgSW5zdGFudEZpbGVVcGxvYWRlciBoYXMgYmVl
biBjaGFuZ2VkIHRvIGFjY2VwdCBvbmx5IG9uZSBmaWxlIGJ5IGRlZmF1bHQsIGFuZCBhZGRlZCBh
IG5ldyBtZXRob2QKKyAgICAgICAgYWxsb3dNdWx0aXBsZUZpbGVzKCkgdG8gYWxsb3cgbXVsdGlw
bGUgZmlsZXMgdG8gYmUgc2VsZWN0ZWQgZm9yIGN1c3RvbSByb290cy4gQWxzbyByZXBsYWNlZCB0
aGUgaW5wdXQgZWxlbWVudAorICAgICAgICB3aXRoIHR5cGU9ZmlsZSBieSBhIGJ1dHRvbiB3aXRo
IGEgY3VzdG9tIGxhYmVsIHRvIHNob3cgbGFiZWxzIHN1Y2ggYXMgIkFwcGx5IGEgcGF0Y2giIG9y
ICJBZGQgYSBuZXcgcm9vdCIKKyAgICAgICAgaW5zdGVhZCBvZiB0aGUgZ2VuZXJpYyBsYWJlbCBs
aWtlICJjaG9vc2UgYSBmaWxlIi4KKworCisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFk
ZGVkIHRyaWdyZXBvX2FjY2VwdHNfcGF0Y2ggdG8gdHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzIHRv
IGluZGljYXRlIHdoZXRoZXIgYSBnaXZlbgorICAgICAgICByZXBvc2l0b3J5IGNhbiBoYXZlIGEg
cGF0Y2ggYXBwbGllZCBvciBub3QuIE1hZGUgcmVxdWVzdF90ZXN0IG9wdGlvbmFsIGluIGJ1aWxk
X3JlcXVlc3RzIGZvciB3aGVuIGEgYnVpbGQKKyAgICAgICAgcmVxdWVzdCBpcyBjcmVhdGVkIHRv
IGJ1aWxkIHBhdGNoZXMuIFN1Y2ggYSBidWlsZCByZXF1ZXN0IGhhdmUgYSBuZWdhdGl2ZSByZXF1
ZXN0X29yZGVyLiBVcGRhdGVkIHRoZSByZWxhdGVkCisgICAgICAgIGNvbnN0cmFpbnRzIGFjY29y
ZGluZ2x5LgorCisgICAgICAgICogcHVibGljL2FkbWluL3RyaWdnZXJhYmxlcy5waHA6IEFkZGVk
IHRoZSBzdXBwb3J0IGZvciB1cGRhdGluZyB3aGV0aGVyIGEgZ2l2ZW4gcmVwb3NpdG9yeSBjYW4g
aGF2ZSBhIHBhdGNoCisgICAgICAgIGFwcGxpZWQgaW4gZWFjaCByZXBvc2l0b3J5IGdyb3VwLiBP
bmx5IHNob3cgdGhlIHJlcG9zaXRvcmllcyBpbiB0aGUgcmVwb3NpdG9yeSBncm91cCBmb3IgdGhp
cyBwdXJwb3NlIHNpbmNlCisgICAgICAgIHRoZXJlIGlzIG5vIHdheSB0byBhY2NlcHQgYSBwYXRj
aCBvbiBhIHJlcG9zaXRvcnkgd2l0aG91dCBpdCBiZWluZyBhIHBhcnQgb2YgdGhlIGdyb3VwLgor
ICAgICAgICAoZ2VuZXJhdGVfcmVwb3NpdG9yeV9mb3JtKTogTm93IHRha2VzIHRoZSBtYXJrdXAg
Zm9yIGNoZWNrYm94ZXMgaW5zdGVhZCBvZiBnZW5lcmF0aW5nIG9uZSBpdHNlbGYuCisgICAgICAg
IChnZW5lcmF0ZV9yZXBvc2l0b3J5X2NoZWNrYm94ZXMpOiBOb3cgdGFrZXMgYW4gYXJyYXkgb2Yg
cmVwb3NpdG9yaWVzIHRvIGdlbmVyYXRlIGNoZWNrYm94ZXMuIFRoZSBjaGVja2JveCBpcworICAg
ICAgICBzaG93biB3aGVuIHRoZSByZXBvc2l0b3J5IElEIGV4aXN0cyBhcyBhIGtleSBpbiB0aGlz
IGFycmF5LCBhbmQgaXMgY2hlY2tlZCB3aGVuIGl0cyB2YWx1ZSBpcyB0cnVlLiBUaGUgbmV3Cisg
ICAgICAgIGNhcGFiaWxpdHkgdG8gc2tpcCByZXBvc2l0b3JpZXMgbm90IGluIHRoZSBhcnJheSBp
cyB1c2VkIHRvIGhpZGUgcmVwb3NpdG9yaWVzIG5vdCBhc3NvY2lhdGVkIHdpdGggdGhlIGdyb3Vw
CisgICAgICAgIGluIHRoZSBsaXN0IG9mIGNoZWNrYm94ZXMgdG8gaW5kaWNhdGUgYSByZXBvc2l0
b3J5IGFjY2VwdHMgYSBwYXRjaC4KKworICAgICAgICAqIHB1YmxpYy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLnBocDoKKyAgICAgICAgKG1haW4pOiBOb3cgdXBkYXRlcyB0aGUgZGVzY3JpcHRpb24g
YW5kIGFjY2VwdHNSb290cyBzdGF0ZXMgb2YgZWFjaCByZXBvc2l0b3J5IGdyb3VwLCBhbmQgc2V0
cyBhY2NlcHRzUGF0Y2gKKyAgICAgICAgYm9vbGVhbiBmb3IgZWFjaCByZXBvc2l0b3J5IGluIHRo
ZSBncm91cCBpZiBzZXQgaW4gdGhlIHVwZGF0ZS4KKyAgICAgICAgKHZhbGlkYXRlX3JlcG9zaXRv
cnlfZ3JvdXBzKTogVXNlIGEgcmVmZXJlbmNlIHRvICRyZXBvc2l0b3J5X2dyb3VwcyBpbiBvcmRl
ciB0byBzZXQgcmVwb3NpdG9yeV9pZF9saXN0LCB3aGljaAorICAgICAgICBjb250YWlucyBhbiBh
cnJheSBvZiByZXBvc2l0b3J5IElEcyB0byBmaW5kIHRoZSBleGlzdGluZyByZXBvc2l0b3J5IGdy
b3VwIHRoYXQgbWF0Y2hlcyB0aGUgc2V0IHZpYQorICAgICAgICBSZXBvc2l0b3J5R3JvdXBGaW5k
ZXIncyBmaW5kX2J5X3JlcG9zaXRvcmllcy4gQWxzbyBhZGRlZCBhIHZhcmlvdXMgdmFsaWRhdGlv
bnMgZm9yIGFjY2VwdHNSb290cywgYSBkaWN0aW9uYXJ5CisgICAgICAgIHNwZWNpZnlpbmcgcmVw
b3NpdG9yeSBhbmQgYWNjZXB0c1BhdGNoLgorCisgICAgICAgICogcHVibGljL2luY2x1ZGUvYnVp
bGQtcmVxdWVzdHMtZmV0Y2hlci5waHA6CisgICAgICAgIChCdWlsZFJlcXVlc3RzRmV0Y2hlcjo6
ZmV0Y2hfY29tbWl0c19mb3Jfc2V0X2lmX25lZWRlZCk6IEluc3RlYWQgb2YgcmV0dXJuaW5nIGFu
IGFycmF5IG9mIGNvbW1pdCBJRHMgYXMKKyAgICAgICAgImNvbW1pdHMiLCBpdCBub3cgcmV0dXJu
cyBhbiBhcnJheSBvZiBkaWN0aW9uYXJpZXMgd2l0aCAiY29tbWl0IiBhbmQgInBhdGNoIiBrZXlz
IHNwZWNpZnlpbmcgdGhlIGNvbW1pdCBJRAorICAgICAgICBhbmQgdGhlIHBhdGNoIGZpbGUncyBJ
RCByZXNwZWN0aXZlbHkgYXMgInJldmlzaW9uSXRlbXMiLiAKKyAgICAgICAgKEJ1aWxkUmVxdWVz
dHNGZXRjaGVyOjphZGRfdXBsb2FkZWRfZmlsZSk6IEFkZGVkLiBFeHRyYWN0ZWQgZnJvbSBmZXRj
aF9jb21taXRzX2Zvcl9zZXRfaWZfbmVlZGVkLiBVc2VkIHRvCisgICAgICAgIGFkZCBlaXRoZXIg
YSBwYXRjaCBmaWxlIG9yIGEgY3VzdG9tIHJvb3QgZmlsZSBpbiB0aGUgbGlzdCBvZiB1cGxvYWRl
ZCBmaWxlcyBpbiB0aGUgcmVzdWx0LgorCisgICAgICAgICogcHVibGljL2luY2x1ZGUvbWFuaWZl
c3QtZ2VuZXJhdG9yLnBocDoKKyAgICAgICAgKGZldGNoX3RyaWdnZXJhYmxlcyk6IEVhY2ggZWxl
bWVudCBpbiByZXBvc2l0b3J5IGdyb3VwJ3MgInJlcG9zaXRvcmllcyIgZmllbGQgaXMgbm93IGFu
IGFycmF5IG9mIGRpY3Rpb25hcmllcworICAgICAgICB3aXRoICJyZXBvc2l0b3J5IiBhbmQgImFj
Y2VwdHNQYXRjaCIgYXMga2V5cy4KKworICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL3JlcG9zaXRv
cnktZ3JvdXAtZmluZGVyLnBocDoKKyAgICAgICAgKFJlcG9zaXRvcnlHcm91cEZpbmRlcjo6X19j
b25zdHJ1Y3QpOiBBZGRlZCBhIG1hcCBmb3IgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgYSBn
aXZlbiByZXBvc2l0b3J5IGdyb3VwCisgICAgICAgIGFsbG93cyBhIHBhdGNoIG9uIGEgcmVwb3Np
dG9yeS4gVXNlZCBpbiAvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAuCisgICAgICAg
IChSZXBvc2l0b3J5R3JvdXBGaW5kZXI6OmFjY2VwdHNfcGF0Y2gpOiBBZGRlZC4KKyAgICAgICAg
KFJlcG9zaXRvcnlHcm91cEZpbmRlcjo6cG9wdWxhdGVfbWFwKTogQnVpbGQgdXAgdGhlIG1hcCBm
b3IgYWNjZXB0c1BhdGNoIGJvb2xlYW4gcGVyIHJlcG9zaXRvcnkgcGVyIGdyb3VwLgorCisgICAg
ICAgICogcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBocDoKKyAgICAg
ICAgKG1haW4pOiBGaXhlZCBhIGJ1ZyB0aGF0IHdlIHdlcmUgbm90IGV4cGxpY2l0bHkgY2hlY2tp
bmcgZm9yIGEgZHVwbGljYXRlIHRlc3QgZ3JvdXAgbmFtZSAod2l0aCBhIHRlc3QpLiBDcmVhdGUK
KyAgICAgICAgYnVpbGQgcmVxdWVzdHMgdG8gImJ1aWxkIiBwYXRjaGVzIGlmIHRoZXJlIGlzIGFu
eSBwYXRjaCBmaWxlIHNwZWNpZmllZC4KKyAgICAgICAgKGNvbW1pdF9zZXRzX2Zyb21fcmV2aXNp
b25fc2V0cyk6IFVwZGF0ZWQgdG8gdGFrZSBhIGRpY3Rpb25hcnkgd2l0aCAicmV2aXNpb24iIGFu
ZCAicGF0Y2giIGFzIGtleXMgdG8gc3BlY2lmeQorICAgICAgICBhIHJldmlzaW9uIGFuZCBhIHBh
dGNoIGlmIGFueSBpbnN0ZWFkIG9mIGp1c3QgYSByZXZpc2lvbiBzdHJpbmcgZm9yIGVhY2ggcmVw
b3NpdG9yeS4gQWxzbyB2YWxpZGF0ZSB0aGF0IGVhY2gKKyAgICAgICAgcmVwb3NpdG9yeSBpcyBh
bGxvd2VkIHRvIGhhdmUgYSBwYXRjaCBvbmNlIHRoZSByZXBvc2l0b3J5IGdyb3VwIGhhcyBiZWVu
IGZvdW5kIGZvciB0aGUgc2V0IG9mIHJlcG9zaXRvcmllcy4KKyAgICAgICAgKGVuc3VyZV9jb21t
aXRfc2V0cyk6CisKKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tYW5hbHlz
aXMtdGFzay1jb25maWd1cmF0b3IuanM6CisgICAgICAgIChDdXN0b21BbmFseXNpc1Rhc2tDb25m
aWd1cmF0b3IpOiBBZGRlZCBfcGF0Y2hVcGxvYWRlcnMgYXMgYW4gaW5zdGFuY2UgdmFyaWFibGUs
IHdoaWNoIGlzIGEgZGljdGlvbmFyeSBvZgorICAgICAgICBjb25maWd1cmF0aW9uIG5hbWVzIHRv
IGEgbWFwIG9mIEluc3RhbnRGaWxlVXBsb2FkZXIncyB1c2VkIHRvIHVwbG9hZCBhIHBhdGNoLiBB
bHNvIHJlbmFtZWQgX2ZpbGVVcGxvYWRlcnMgdG8KKyAgICAgICAgX2N1c3RvbVJvb3RVcGxvYWRl
cnMgZm9yIGNsYXJpdHkuCisgICAgICAgIChDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3Iu
cHJvdG90eXBlLnNldENvbW1pdFNldHMpOgorICAgICAgICAoQ3VzdG9tQW5hbHlzaXNUYXNrQ29u
ZmlndXJhdG9yLnByb3RvdHlwZS5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlLmNyZWF0ZVJvb3RVcGxv
YWRlcik6IEFkZGVkLgorICAgICAgICAoQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLnBy
b3RvdHlwZS5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKToKKyAgICAgICAgKEN1c3RvbUFuYWx5c2lz
VGFza0NvbmZpZ3VyYXRvci5wcm90b3R5cGUuX2Vuc3VyZVBhdGNoVXBsb2FkZXIpOiBBZGRlZC4g
Q3JlYXRlcyBhbiBpbnN0YW50IGZpbGUgdXBsb2FkZXIgZm9yCisgICAgICAgIHBhdGNoZXMuIFdl
IG9ubHkgYWxsb3cgYSBzaW5nbGUgcGF0Y2ggcGVyIHJlcG9zaXRvcnkuCisgICAgICAgIChDdXN0
b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3IucHJvdG90eXBlLl9jb21wdXRlQ29tbWl0U2V0KTog
SW5jbHVkZSBhIHBhdGNoIGluIHRoZSBjb21taXQgc2V0IGFzIG5lZWRlZC4KKyAgICAgICAgKEN1
c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5wcm90b3R5cGUuX2J1aWxkUmV2aXNpb25UYWJs
ZSk6IFNob3cgdGhlIHBhdGNoIGZpbGUgdXBsb2FkZXIgZm9yIHJlcG9zaXRvcmllcworICAgICAg
ICB3aGljaCBjYW4gaGF2ZSBwYXRjaGVzIGluIHRoZSBjdXJyZW50IHJlcG9zaXRvcnkgZ3JvdXAu
CisgICAgICAgIChDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3IuY3NzVGVtcGxhdGUpOiBT
aG93IGJvcmRlcnMgYmV0d2VlbiBldmVyeSByb3dzIGluc3RlYWQgb2YganVzdCBiZXR3ZWVuIHRi
b2R5J3MKKyAgICAgICAgbm93IHRoYXQgZWFjaCByb3cgY2FuIGhhdmUgYSBwYXRjaCBmaWxlIHVw
bG9hZGVyLgorCisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvaW5zdGFudC1maWxlLXVw
bG9hZGVyLmpzOgorICAgICAgICAoSW5zdGFudEZpbGVVcGxvYWRlcik6IEFkZGVkIF9maWxlSW5w
dXQgYW5kIF9hbGxvd011bHRpcGxlRmlsZXMgYXMgaW5zdGFuY2UgdmFyaWFibGVzLiBXZSBub3cg
c2hvdyBhIGJ1dHRvbgorICAgICAgICBpbiB0aGUgVUkgaW5zdGVhZCBvZiBhbiBpbnB1dCB3aXRo
IHR5cGU9ZmlsZS4gX2ZpbGVJbnB1dCBpcyBhIGhpZGRlbiBpbnB1dCB3aXRoIHR5cGU9ZmlsZSB1
c2VkIGluc2lkZSBhIGNsaWNrCisgICAgICAgIGV2ZW50IG9mIHRoZSBidXR0b24gdG8gbGV0IHRo
ZSB1c2VyIHBpY2sgYSBmaWxlLgorICAgICAgICAoSW5zdGFudEZpbGVVcGxvYWRlci5wcm90b3R5
cGUuYWxsb3dNdWx0aXBsZUZpbGVzKTogQWRkZWQuIEFsbG93cyB0aGlzIGluc3RhbmNlIHRvIGFj
Y2VwdCBtdWx0aXBsZSBmaWxlcy4KKyAgICAgICAgKEluc3RhbnRGaWxlVXBsb2FkZXIucHJvdG90
eXBlLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUpOiBTeW50aGV0aWNhbGx5IGNsaWNrIG9uIHRoZSBo
aWRkZW4gaW5wdXQgZWxlbWVudCB3aGVuCisgICAgICAgIHRoZSBuZXdseSBhZGRlZCBidXR0b24g
ZWxlbWVudCBpcyBjbGlja2VkIHRvIG9wZW4gdGhlIGJyb3dzZXIncyBmaWxlIHBpY2tlci4KKyAg
ICAgICAgKEluc3RhbnRGaWxlVXBsb2FkZXIucHJvdG90eXBlLnJlbmRlcik6IEhpZGUgdGhlIGJ1
dHRvbiB0byBhZGQgYSBmaWxlIGlmIHRoaXMgaW5zdGFuY2UgY2FuIG9ubHkgc2VsZWN0IG9uZSBm
aWxlCisgICAgICAgIGFuZCB0aGVyZSBpcyBhbHJlYWR5IHNvbWUgZmlsZSBiZWluZyB1cGxvYWRl
ZCBpbiB0aGlzIGluc3RhbmNlLgorICAgICAgICAoSW5zdGFudEZpbGVVcGxvYWRlci5odG1sVGVt
cGxhdGUpOiBSZXBsYWNlZCB0aGUgaW5wdXQgZWxlbWVudCB3aXRoIHR5cGU9ZmlsZSB3aXRoIGEg
YnV0dG9uLiBJdHMgbGFiZWwgY29tZXMKKyAgICAgICAgZnJvbSB0aGUgZGVmYXVsdCBzbG90IGNv
bnRlbnQuCisKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanM6Cisg
ICAgICAgIChCdWlsZFJlcXVlc3QpOiBNYWRlIHRoZSB0ZXN0IG9wdGlvbmFsLgorICAgICAgICAo
QnVpbGRSZXF1ZXN0LnByb3RvdHlwZS5pc0J1aWxkKTogUmV0dXJucyB0cnVlIGlmIHRoaXMgaXMg
YSBidWlsZCByZXF1ZXN0IGZvciBidWlsZGluZyBhIHBhdGNoLgorICAgICAgICAoQnVpbGRSZXF1
ZXN0LnByb3RvdHlwZS5pc1Rlc3QpOiBSZXR1cm5zIHRydWUgaWYgdGhpcyBpcyBhIGJ1aWxkIHJl
cXVlc3QgZm9yIHJ1bm5pbmcgdGVzdHMuCisgICAgICAgIChCdWlsZFJlcXVlc3QuY29uc3RydWN0
QnVpbGRSZXF1ZXN0c0Zyb21EYXRhKTogQ3JlYXRlIGVhY2ggY29tbWl0IGxvZyBoZXJlIGluc3Rl
YWQgb2YgcmVseWluZyBvbiBDb21taXRTZXQncworICAgICAgICBjb25zdHJ1Y3RvciB0byBjb25z
dHJ1Y3QgaXRzIGNvbW1pdCBsb2dzLiBBbHNvIHVwZGF0ZWQgcGVyIHRoZSByZXBsYWNlbWVudCBv
ZiBhbiBhcnJheSBvZiBjb21taXQgSURzIGJ5CisgICAgICAgIGFuIGFycmF5IG9mIGRpY3Rpb25h
cmllcyB3aXRoIGNvbW1pdCBhbmQgcGF0Y2ggcHJvcGVydGllcy4KKworICAgICAgICAqIHB1Ymxp
Yy92My9tb2RlbHMvY29tbWl0LXNldC5qczoKKyAgICAgICAgKENvbW1pdFNldCk6IE1hZGUgX3Jl
cG9zaXRvcnlUb0NvbW1pdE1hcCBhIHJlYWwgTWFwIG9iamVjdC4gQWxzbyBhZGRlZCBfcmVwb3Np
dG9yeVRvUGF0Y2hNYXAuIEFsc28gZ290IHJpZCBvZgorICAgICAgICB0aGUgY29kZSB0byBpbnN0
YW50aWF0ZSBjb21taXQgbG9ncyBzaW5jZSB0aGF0J3Mgbm93IGRvbmUgaW4gQnVpbGRSZXF1ZXN0
LmNvbnN0cnVjdEJ1aWxkUmVxdWVzdHNGcm9tRGF0YS4KKyAgICAgICAgKENvbW1pdFNldC5wcm90
b3R5cGUuY29tbWl0Rm9yUmVwb3NpdG9yeSk6CisgICAgICAgIChDb21taXRTZXQucHJvdG90eXBl
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSk6CisgICAgICAgIChDb21taXRTZXQucHJvdG90eXBlLnBh
dGNoRm9yUmVwb3NpdG9yeSk6IEFkZGVkLgorICAgICAgICAoQ29tbWl0U2V0LnByb3RvdHlwZS5s
YXRlc3RDb21taXRUaW1lKTogTW9kZXJuaXplZCB0aGUgY29kZS4KKyAgICAgICAgKENvbW1pdFNl
dC5wcm90b3R5cGUuZXF1YWxzKTogTW9kZXJuaXplZCB0aGUgY29kZS4gQWxzbyBhZGRlZCB0aGUg
Y2hlY2sgZm9yIHBhdGNoZXMuCisgICAgICAgIChNZWFzdXJlbWVudENvbW1pdFNldCk6IFVwZGF0
ZWQgcGVyIHRoZSBjaGFuZ2UgdG8gbWFrZSBfcmVwb3NpdG9yeVRvQ29tbWl0TWFwIGEgcmVhbCBN
YXAuCisgICAgICAgIChDdXN0b21Db21taXRTZXQucHJvdG90eXBlLnNldFJldmlzaW9uRm9yUmVw
b3NpdG9yeSk6CisgICAgICAgIChDdXN0b21Db21taXRTZXQucHJvdG90eXBlLmVxdWFscyk6IEFk
ZGVkIHRoZSBjaGVjayBmb3IgcGF0Y2hlcy4KKyAgICAgICAgKEN1c3RvbUNvbW1pdFNldC5wcm90
b3R5cGUucmV2aXNpb25Gb3JSZXBvc2l0b3J5KToKKyAgICAgICAgKEN1c3RvbUNvbW1pdFNldC5w
cm90b3R5cGUucGF0Y2hGb3JSZXBvc2l0b3J5KTogQWRkZWQuCisKKyAgICAgICAgKiBwdWJsaWMv
djMvbW9kZWxzL21hbmlmZXN0LmpzOgorICAgICAgICAoTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZl
c3QpOiBVcGRhdGVkIHBlciB0aGUgcmVwbGFjZW1lbnQgb2YgYW4gYXJyYXkgb2YgY29tbWl0IElE
cyBieSBhbiBhcnJheSBvZiBkaWN0aW9uYXJpZXMKKyAgICAgICAgd2l0aCBjb21taXQgYW5kIHBh
dGNoIHByb3BlcnRpZXMuCisKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3JlcG9zaXRvcnku
anM6CisgICAgICAgIChSZXBvc2l0b3J5LnByb3RvdHlwZS5vd25lcklkKTogUmVuYW1lZCBmcm9t
IG93bmVyIGZvciBjbGFyaXR5LgorCisgICAgICAgICogcHVibGljL3YzL21vZGVscy90ZXN0LWdy
b3VwLmpzOgorICAgICAgICAoVGVzdEdyb3VwKTogTW9kZXJuaXplZCB0aGUgY29kZSBieSB1c2lu
ZyBMYXppbHlFdmFsdWF0ZWRGdW5jdGlvbi4gUmVtb3ZlZCBfcmVxdWVzdHNBcmVJbk9yZGVyIHNp
bmNlIGl0J3Mgbm90CisgICAgICAgIG5lY2Vzc2FyeSBhbnltb3JlIHdpdGggTGF6aWx5RXZhbHVh
dGVkRnVuY3Rpb24uCisgICAgICAgIChUZXN0R3JvdXAucHJvdG90eXBlLmFkZEJ1aWxkUmVxdWVz
dCk6CisgICAgICAgIChUZXN0R3JvdXAucHJvdG90eXBlLnRlc3QpOiBVc2UgdGhlIGxhc3QgYnVp
bGQgcmVxdWVzdCdzIHRlc3Qgc2luY2UgdGhlIGZpcnN0IGZldyByZXF1ZXN0cyBjb3VsZCBiZSBy
ZXF1ZXN0cyB0bworICAgICAgICBidWlsZCBwYXRjaGVzLgorICAgICAgICAoVGVzdEdyb3VwLnBy
b3RvdHlwZS5wbGF0Zm9ybSk6IERpdHRvLgorICAgICAgICAoVGVzdEdyb3VwLnByb3RvdHlwZS5f
bGFzdFJlcXVlc3QpOiBBZGRlZC4KKyAgICAgICAgKFRlc3RHcm91cC5wcm90b3R5cGUuX29yZGVy
ZWRCdWlsZFJlcXVlc3RzKTogQWRkZWQuCisgICAgICAgIChUZXN0R3JvdXAucHJvdG90eXBlLnJl
cGV0aXRpb25Db3VudCk6IE9ubHkgY291bnQgdGhlIGJ1aWxkIHJlcXVlc3RzIGZvciB0ZXN0aW5n
IChza2lwcGluZyBhbnkgcmVxdWVzdHMgdG8KKyAgICAgICAgYnVpbGQgcGF0Y2hlcykuCisgICAg
ICAgIChUZXN0R3JvdXAucHJvdG90eXBlLnJlcXVlc3RlZENvbW1pdFNldHMpOiBTaW1wbHkgY2Fs
bCBfY29tcHV0ZVJlcXVlc3RlZENvbW1pdFNldHNMYXppbHkuCisgICAgICAgIChUZXN0R3JvdXAu
cHJvdG90eXBlLl9jb21wdXRlUmVxdWVzdGVkQ29tbWl0U2V0cyk6IEV4dHJhY3RlZCBmcm9tIHJl
cXVlc3RlZENvbW1pdFNldHMuCisgICAgICAgIChUZXN0R3JvdXAucHJvdG90eXBlLnJlcXVlc3Rz
Rm9yQ29tbWl0U2V0KToKKyAgICAgICAgKFRlc3RHcm91cC5wcm90b3R5cGUubGFiZWxGb3JDb21t
aXRTZXQpOiBSZXdyaXR0ZW4uIEp1c3QgY29tcHV0ZSB0aGUgbGFiZWwgaGVyZSBpbnN0ZWFkIG9m
IHJlbHlpbmcgb24KKyAgICAgICAgX2NvbW1pdFNldFRvTGFiZWwgc2luY2UgcmVxdWVzdGVkU2V0
cyBpcyBhbHdheXMgb2YgdGhlIGxlbmd0aCB0d28gYXQgdGhlIG1vbWVudC4KKyAgICAgICAgKFRl
c3RHcm91cC5fcmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMpOiBTcGVjaWZ5IGJvdGggdGhlIHJl
dmlzaW9uIGFuZCB0aGUgcGF0Y2ggaW4gdGhlIHJldmlzaW9uIHNldC4gICAgICAgIAorCisgICAg
ICAgICogcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qczoKKyAgICAgICAgKFRyaWdnZXJh
YmxlUmVwb3NpdG9yeUdyb3VwKTogQWRkZWQgX3BhdGNoQWNjZXB0aW5nU2V0IGFzIGFuIGluc3Rh
bmNlIHZhcmlhYmxlLiBVc2UKKyAgICAgICAgc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TCB0byBzb3J0IHJlcG9zaXRvcmllcyBpbnN0ZWFkIG9mIHNpbXBsZSBzb3J0QnlOYW1lLgorICAg
ICAgICAoVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAucHJvdG90eXBlLmFjY2VwdHMpOiBBZGRl
ZCBjaGVja3MgZm9yIHRoZSBjdXN0b20gcm9vdHMgYW5kIHBhdGNoZXMuCisgICAgICAgIChUcmln
Z2VyYWJsZVJlcG9zaXRvcnlHcm91cC5wcm90b3R5cGUuYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9y
eSk6IEFkZGVkLgorCisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10
ZXN0cy5qczogVXBkYXRlZCB0aGUgdGVzdCBjYXNlcyBwZXIgdGhlIHJlcGxhY2VtZW50IG9mIGFu
IGFycmF5IG9mIGNvbW1pdAorICAgICAgICBJRHMgYnkgYW4gYXJyYXkgb2YgZGljdGlvbmFyaWVz
IHdpdGggY29tbWl0IGFuZCBwYXRjaCBwcm9wZXJ0aWVzLgorCisgICAgICAgICogc2VydmVyLXRl
c3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qczogVXBkYXRlZCB0aGUgdGVzdCBjYXNlIHBlciB0aGUg
bmFtZSBvZiBSZXBvc2l0b3J5J3Mgb3duZXIgdG8gb3duZXJJZC4KKworICAgICAgICAqIHNlcnZl
ci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLmpzOiBVcGRhdGVkIHRoZSB0ZXN0IGNhc2Ug
cGVyIHRoZSBuYW1lIG9mIFJlcG9zaXRvcnkncyBvd25lciB0byBvd25lcklkLAorICAgICAgICBh
bmQgYWRkZWQgYSB0ZXN0IGNhc2UgZm9yIHVwZGF0aW5nIHdoZXRoZXIgYSBnaXZlbiByZXBvc2l0
b3J5IGdyb3VwIGFsbG93cyBjdXN0b20gcm9vdHMgYXMgd2VsbCBhcyBwYXRjaGVzCisgICAgICAg
IG9uIHJlcG9zaXRvcmllcyB2aWEgL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUuIAorICAgICAgICAo
LnVwZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3JvdXApOiBVcGRhdGVkIHRoZSBzYW1wbGUgc3luY2lu
ZyBzY3JpcHQgY29uZmlndXJhdGlvbiBwZXIgdGhlIGZvcm1hdCBjaGFuZ2UuCisgICAgICAgICgu
cmVmZXRjaE1hbmlmZXN0KTogQWRkZWQuCisKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmls
ZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6IFVwZGF0ZWQgcGVyIHRoZSBzeW5j
aW5nIHNjcmlwdCBjb25maWd1cmF0aW9uIGZvcm1hdAorICAgICAgICBjaGFuZ2UuIEFsc28gYWRk
ZWQgYSB0ZXN0IGZvciBjcmVhdGluZyBhIHRlc3QgZ3JvdXAgd2l0aCBhIGR1cGxpY2F0ZSBuYW1l
LCB3aGljaCBpcyBleHBlY3RlZCB0byBmYWlsIHdpdGggCisgICAgICAgIER1cGxpY2F0ZVRlc3RH
cm91cE5hbWUsIGFuZCBjcmVhdGluZyBhIHRlc3QgZ3JvdXAgd2l0aCBhIHBhdGNoIGJvdGggd2hl
biBpdCdzIGFsbG93ZWQgYW5kIHdoZW4gaXQncyBub3QgYWxsb3dlZAorICAgICAgICBpbiB0aGUg
bWF0Y2hpbmcgcmVwb3NpdG9yeSBncm91cC4KKyAgICAgICAgKC5hZGRUcmlnZ2VyYWJsZUFuZENy
ZWF0ZVRhc2spOiBVcGRhdGVkIHBlciB0aGUgZm9ybWF0IGNoYW5nZS4KKworICAgICAgICAqIHNl
cnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOgorICAgICAgICAoTW9ja0RhdGEuYWRk
RW1wdHlUcmlnZ2VyYWJsZSk6IEFkZGVkIGEgbWV0cmljIGFuZCBpdHMgY29uZmlndXJhdGlvbiB0
byBtYWtlIGl0IGFwcGVhciBpbiB0aGUgbWFuaWZlc3QgZmlsZS4KKyAgICAgICAgVGhlIG5ldyB0
ZXN0IGNhc2UgaW4gYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS5qcyByZXF1aXJlcyB0aGlzLgorICAg
ICAgICAoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIpOiBVcGRh
dGVkIHBlciB0aGUgc3luY2luZyBzY3JpcHQgY29uZmlndXJhdGlvbiBmb3JtYXQgY2hhbmdlLgor
ICAgICAgICAoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKTogRGl0
dG8uCisKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUt
dGVzdHMuanM6IFJlbW92ZWQgdGhlIHVzZWxlc3MgYXNzZXJ0aW9ucyBhYm91dCB0ZXN0IGNvbmZp
Z3VyYXRpb25zLAorICAgICAgICBhbmQgYWRkZWQgYXNzZXJ0aW9ucyBhYm91dCBjdXN0b20gcm9v
dHMgYW5kIHBhdGNoZXMgaW4gdGhlIHRlc3QgY2FzZSBmb3IgdXBkYXRlVHJpZ2dlcmFibGVzLgor
CisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzOgorICAgICAgICAoQnVpbGRi
b3RTeW5jZXIuX3BhcnNlUmVwb3NpdG9yeUdyb3VwKTogTWFkZSBlYWNoIGFzc2VydGlvbiBleHBs
aWNpdGx5IHJlZmVyIHRvIHRoZSBzcGVjaWZpYyByZXBvc2l0b3J5IGdyb3VwCisgICAgICAgIHRv
IG1ha2UgaXQgbW9yZSB1c2VyIGZyaWVuZGx5LiBOb3cgZWFjaCByZXBvc2l0b3J5IGdyb3VwIHVz
ZXMgYSBkaWN0aW9uYXJ5IG9mIHJlcG9zaXRvcnkgbmFtZXMgdG8gaXRzIG9wdGlvbnMKKyAgICAg
ICAgaW4gdGhlIHN5bmNpbmcgc2NyaXB0IGNvbmZpZ3VyYXRpb25zLiBXaGVuIHBhcnNlZCwgd2Ug
aW5zZXJ0IGl0IGFzIGFuIGFycmF5IG9mIGRpY3Rpb25hcmllcyB3aXRoIHJlcG9zaXRvcnkgSUQK
KyAgICAgICAgYW5kIGFjY2VwdHNQYXRjaCBib29sZWFuIHNwZWNpZmllZCBzZXBhcmF0ZWx5IHNp
bmNlIHRoaXMgaXMgdGhlIGZvcm1hdCAvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZSBleHBlY3RzLgor
CisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6CisgICAgICAgIChC
dWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS51cGRhdGVUcmlnZ2VyYWJsZSk6CisKKyAgICAg
ICAgKiB1bml0LXRlc3RzL2J1aWxkLXJlcXVlc3QtdGVzdHMuanM6CisgICAgICAgIChzYW1wbGVC
dWlsZFJlcXVlc3REYXRhKTogVXBkYXRlZCBwZXIgdGhlIGNvbW1pdCBzZXRzIGZvcm1hdCBjaGFu
Z2UgaW4gL2FwaS9idWlsZC1yZXF1ZXN0cy4KKworICAgICAgICAqIHVuaXQtdGVzdHMvYnVpbGRi
b3Qtc3luY2VyLXRlc3RzLmpzOiBVcGRhdGVkIHRoZSBleGlzdGluZyB0ZXN0cyBwZXIgdmFyaW91
cyBmb3JtYXQgY2hhbmdlcyBhbmQgYWRkZWQgYSBjb3VwbGUKKyAgICAgICAgb2YgbmV3IHRlc3Qg
Y2FzZXMgZm9yIHRoZSBzeW5jaW5nIHNjcmlwdCdzIGNvbmZpZ3VyYXRpb24gdmFsaWRhdGlvbi4K
KyAgICAgICAgKHNhbXBsZWlPU0NvbmZpZyk6CisgICAgICAgIChzbWFsbENvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KToKKworICAgICAgICAqIHVuaXQt
dGVzdHMvcmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzOgorICAgICAgICAoTW9ja01vZGVscy5p
bmplY3QpOiBVcGRhdGVkIHBlciB0aGUgcmVwb3NpdG9yeSBncm91cCBmb3JtYXQgY2hhbmdlLgor
CisgICAgICAgICogdW5pdC10ZXN0cy90ZXN0LWdyb3Vwcy10ZXN0cy5qczoKKyAgICAgICAgKHNh
bXBsZVRlc3RHcm91cCk6IFVwZGF0ZWQgcGVyIHRoZSBjb21taXQgc2V0cyBmb3JtYXQgY2hhbmdl
IGluIC9hcGkvYnVpbGQtcmVxdWVzdHMuIAorCiAyMDE3LTA0LTIxICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmFtZSBjb21taXRfc2V0X3JlbGF0aW9uc2hp
cHMgdG8gY29tbWl0X3NldF9pdGVtcwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL2luaXQtZGF0YWJhc2Uuc3FsIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0
YWJhc2Uuc3FsCmluZGV4IDQyNzM0NGI0YTY5NTEwM2Y3ODc3YWFjMzk0NjVhZjlmMmI3ODI4MTAu
LmMxNDM2OTIwOWIwZDRlN2E2MDBhYmVlYjQ3YmUwY2I4YzZmZDUyMzcgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbAorKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKQEAgLTI0OSw2ICsyNDksNyBAQCBDUkVB
VEUgVEFCTEUgdHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMgKAogQ1JFQVRFIFRBQkxFIHRy
aWdnZXJhYmxlX3JlcG9zaXRvcmllcyAoCiAgICAgdHJpZ3JlcG9fcmVwb3NpdG9yeSBpbnRlZ2Vy
IFJFRkVSRU5DRVMgcmVwb3NpdG9yaWVzIE5PVCBOVUxMLAogICAgIHRyaWdyZXBvX2dyb3VwIGlu
dGVnZXIgUkVGRVJFTkNFUyB0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcyBOT1QgTlVMTCwK
KyAgICB0cmlncmVwb19hY2NlcHRzX3BhdGNoIGJvb2xlYW4gTk9UIE5VTEwgREVGQVVMVCBGQUxT
RSwKICAgICBDT05TVFJBSU5UIHJlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWVfZm9yX3JlcG9zaXRv
cnlfZ3JvdXAgVU5JUVVFKHRyaWdyZXBvX3JlcG9zaXRvcnksIHRyaWdyZXBvX2dyb3VwKSk7CiAK
IENSRUFURSBUQUJMRSB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyAoCkBAIC0yOTcsNyArMjk4
LDcgQEAgQ1JFQVRFIFRBQkxFIGJ1aWxkX3JlcXVlc3RzICgKICAgICByZXF1ZXN0X3RyaWdnZXJh
YmxlIGludGVnZXIgUkVGRVJFTkNFUyBidWlsZF90cmlnZ2VyYWJsZXMgTk9UIE5VTEwsCiAgICAg
cmVxdWVzdF9yZXBvc2l0b3J5X2dyb3VwIGludGVnZXIgUkVGRVJFTkNFUyB0cmlnZ2VyYWJsZV9y
ZXBvc2l0b3J5X2dyb3VwcywKICAgICByZXF1ZXN0X3BsYXRmb3JtIGludGVnZXIgUkVGRVJFTkNF
UyBwbGF0Zm9ybXMgTk9UIE5VTEwsCi0gICAgcmVxdWVzdF90ZXN0IGludGVnZXIgUkVGRVJFTkNF
UyB0ZXN0cyBOT1QgTlVMTCwKKyAgICByZXF1ZXN0X3Rlc3QgaW50ZWdlciBSRUZFUkVOQ0VTIHRl
c3RzLAogICAgIHJlcXVlc3RfZ3JvdXAgaW50ZWdlciBSRUZFUkVOQ0VTIGFuYWx5c2lzX3Rlc3Rf
Z3JvdXBzIE5PVCBOVUxMLAogICAgIHJlcXVlc3Rfb3JkZXIgaW50ZWdlciBOT1QgTlVMTCwKICAg
ICByZXF1ZXN0X2NvbW1pdF9zZXQgaW50ZWdlciBSRUZFUkVOQ0VTIGNvbW1pdF9zZXRzIE5PVCBO
VUxMLApAQCAtMzA1LDYgKzMwNiw4IEBAIENSRUFURSBUQUJMRSBidWlsZF9yZXF1ZXN0cyAoCiAg
ICAgcmVxdWVzdF91cmwgdmFyY2hhcigxMDI0KSwKICAgICByZXF1ZXN0X2J1aWxkIGludGVnZXIg
UkVGRVJFTkNFUyBidWlsZHMsCiAgICAgcmVxdWVzdF9jcmVhdGVkX2F0IHRpbWVzdGFtcCBOT1Qg
TlVMTCBERUZBVUxUIChDVVJSRU5UX1RJTUVTVEFNUCBBVCBUSU1FIFpPTkUgJ1VUQycpLAotICAg
IENPTlNUUkFJTlQgYnVpbGRfcmVxdWVzdF9vcmRlcl9tdXN0X2JlX3VuaXF1ZV9pbl9ncm91cCBV
TklRVUUocmVxdWVzdF9ncm91cCwgcmVxdWVzdF9vcmRlcikpOworICAgIENPTlNUUkFJTlQgYnVp
bGRfcmVxdWVzdF9vcmRlcl9tdXN0X2JlX3VuaXF1ZV9pbl9ncm91cCBVTklRVUUocmVxdWVzdF9n
cm91cCwgcmVxdWVzdF9vcmRlciksCisgICAgQ09OU1RSQUlOVCBidWlsZF9yZXF1ZXN0X29yZGVy
X211c3RfYmVfcG9zaXRpdmVfZm9yX3Rlc3RpbmcKKyAgICAgICAgQ0hFQ0sgKChyZXF1ZXN0X3Rl
c3QgSVMgTk9UIE5VTEwgQU5EIHJlcXVlc3Rfb3JkZXIgPj0gMCkgT1IgKHJlcXVlc3RfdGVzdCBJ
UyBOVUxMIEFORCByZXF1ZXN0X29yZGVyIDwgMCkpKTsKIENSRUFURSBJTkRFWCBidWlsZF9yZXF1
ZXN0X3RyaWdnZXJhYmxlIE9OIGJ1aWxkX3JlcXVlc3RzKHJlcXVlc3RfdHJpZ2dlcmFibGUpOwog
Q1JFQVRFIElOREVYIGJ1aWxkX3JlcXVlc3RfYnVpbGQgT04gYnVpbGRfcmVxdWVzdHMocmVxdWVz
dF9idWlsZCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2Fk
bWluL3RyaWdnZXJhYmxlcy5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2Fk
bWluL3RyaWdnZXJhYmxlcy5waHAKaW5kZXggYThhMjZiMTBhNWVhYzk0Mjg1YWMyMDA1YzAxYjUz
Y2EyMWM3ZGQ3OC4uMjM0YmYzZDU4NzY4Y2M1ZjgzYzNlNzc3MTU1MmY1NjRmYTcwODlhOSAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hZG1pbi90cmlnZ2VyYWJs
ZXMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYWRtaW4vdHJpZ2dl
cmFibGVzLnBocApAQCAtMjcsMzMgKzI3LDYgQEAgaWYgKCRkYikgewogICAgICAgICBpZiAodXBk
YXRlX2ZpZWxkKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsICdyZXBvc2l0b3J5Z3Jv
dXAnLCAnYWNjZXB0c19yb290cycsCiAgICAgICAgICAgICBEYXRhYmFzZTo6dG9fZGF0YWJhc2Vf
Ym9vbGVhbihhcnJheV9nZXQoJF9QT1NULCAnYWNjZXB0cycpKSkpCiAgICAgICAgICAgICByZWdl
bmVyYXRlX21hbmlmZXN0KCk7Ci0gICAgfSBlbHNlIGlmICgkYWN0aW9uID09ICd1cGRhdGUtcmVw
b3NpdG9yeScpIHsKLSAgICAgICAgJGFzc29jaWF0aW9uID0gYXJyYXlfZ2V0KCRfUE9TVCwgJ2Fz
c29jaWF0aW9uJyk7Ci0gICAgICAgICR0cmlnZ2VyYWJsZV9pZCA9IGFycmF5X2dldCgkX1BPU1Qs
ICd0cmlnZ2VyYWJsZScpOwotICAgICAgICAkcmVwb3NpdG9yeV9pZCA9IGFycmF5X2dldCgkX1BP
U1QsICdyZXBvc2l0b3J5Jyk7Ci0KLSAgICAgICAgJHNob3VsZF9kZWxldGUgPSBGQUxTRTsKLSAg
ICAgICAgJGFjY2VwdGVkID0gJGFzc29jaWF0aW9uID09ICdhY2NlcHRlZCc7Ci0gICAgICAgICRy
ZXF1aXJlZCA9ICRhc3NvY2lhdGlvbiA9PSAncmVxdWlyZWQnOwotICAgICAgICBpZiAoJGFjY2Vw
dGVkIHx8ICRyZXF1aXJlZCkgewotICAgICAgICAgICAgJGRiLT5iZWdpbl90cmFuc2FjdGlvbigp
OwotICAgICAgICAgICAgJHNlbGVjdCA9IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9y
eV9pZCwgJ3RyaWdnZXJhYmxlJyA9PiAkdHJpZ2dlcmFibGVfaWQpOwotICAgICAgICAgICAgJHVw
ZGF0ZSA9IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwgJ3RyaWdnZXJhYmxl
JyA9PiAkdHJpZ2dlcmFibGVfaWQsICdyZXF1aXJlZCcgPT4gRGF0YWJhc2U6OnRvX2RhdGFiYXNl
X2Jvb2xlYW4oJHJlcXVpcmVkKSk7Ci0gICAgICAgICAgICBpZiAoISRkYi0+dXBkYXRlX3Jvdygn
dHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywgJ3RyaWdyZXBvJywgJHNlbGVjdCwgJHVwZGF0ZSwg
J3JlcG9zaXRvcnknKSkgewotICAgICAgICAgICAgICAgIG5vdGljZSgiRmFpbGVkIHRvIHVwZGF0
ZSB0aGUgYXNzb2NpYXRpb24gb2YgcmVwb3NpdG9yeSAkcmVwb3NpdG9yeV9pZCB3aXRoIHRyaWdn
ZXJhYmxlICR0cmlnZ2VyYWJsZV9pZC4iKTsKLSAgICAgICAgICAgICAgICAkZGItPnJvbGxiYWNr
X3RyYW5zYWN0aW9uKCk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAkZGIt
PmNvbW1pdF90cmFuc2FjdGlvbigpOwotICAgICAgICB9IGVsc2UgaWYgKCRhc3NvY2lhdGlvbiA9
PSAnbm90LWFjY2VwdGVkJykgewotICAgICAgICAgICAgJGRiLT5iZWdpbl90cmFuc2FjdGlvbigp
OwotICAgICAgICAgICAgJHJlc3VsdCA9ICRkYi0+cXVlcnlfYW5kX2dldF9hZmZlY3RlZF9yb3dz
KCJERUxFVEUgRlJPTSB0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMgV0hFUkUgdHJpZ3JlcG9fdHJp
Z2dlcmFibGUgPSAkMSBBTkQgdHJpZ3JlcG9fcmVwb3NpdG9yeSA9ICQyIiwKLSAgICAgICAgICAg
ICAgICBhcnJheSgkdHJpZ2dlcmFibGVfaWQsICRyZXBvc2l0b3J5X2lkKSk7Ci0gICAgICAgICAg
ICBpZiAoJHJlc3VsdCA+IDEpIHsKLSAgICAgICAgICAgICAgICBub3RpY2UoIkZhaWxlZCB0byB1
cGRhdGUgdGhlIGFzc29jaWF0aW9uIG9mIHJlcG9zaXRvcnkgJHJlcG9zaXRvcnlfaWQgd2l0aCB0
cmlnZ2VyYWJsZSAkdHJpZ2dlcmFibGVfaWQuIik7Ci0gICAgICAgICAgICAgICAgJGRiLT5yb2xs
YmFja190cmFuc2FjdGlvbigpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAg
JGRiLT5jb21taXRfdHJhbnNhY3Rpb24oKTsKLSAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoJGFj
dGlvbiA9PSAndXBkYXRlLXJlcG9zaXRvcmllcycpIHsKICAgICAgICAgJGdyb3VwX2lkID0gaW50
dmFsKCRfUE9TVFsnZ3JvdXAnXSk7CiAKQEAgLTY2LDYgKzM5LDI2IEBAIGlmICgkZGIpIHsKICAg
ICAgICAgICAgIHJlZ2VuZXJhdGVfbWFuaWZlc3QoKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICAkZGItPnJvbGxiYWNrX3RyYW5zYWN0aW9uKCk7CisgICAgfSAgZWxzZSBpZiAoJGFjdGlv
biA9PSAndXBkYXRlLWFjY2VwdC1wYXRjaCcpIHsKKyAgICAgICAgJGdyb3VwX2lkID0gaW50dmFs
KCRfUE9TVFsnZ3JvdXAnXSk7CisgICAgICAgICRyZXBvc2l0b3JpZXNfdGhhdF9hY2NlcHRzX3Bh
dGNoID0gYXJyYXlfZ2V0KCRfUE9TVCwgJ3JlcG9zaXRvcmllcycsIGFycmF5KCkpOworCisgICAg
ICAgICRkYi0+YmVnaW5fdHJhbnNhY3Rpb24oKTsKKyAgICAgICAgaWYgKCEkZGItPnF1ZXJ5X2Fu
ZF9nZXRfYWZmZWN0ZWRfcm93cygiVVBEQVRFIHRyaWdnZXJhYmxlX3JlcG9zaXRvcmllcyBTRVQg
dHJpZ3JlcG9fYWNjZXB0c19wYXRjaCA9IEZBTFNFIFdIRVJFIHRyaWdyZXBvX2dyb3VwID0gJDEi
LCBhcnJheSgkZ3JvdXBfaWQpKSkgeworICAgICAgICAgICAgbm90aWNlKCdGYWlsZWQgdG8gdXBk
YXRlIHRoZSBhY2NlcHQtcGF0Y2ggc3RhdHVzLicpOworICAgICAgICAgICAgJGRiLT5yb2xsYmFj
a190cmFuc2FjdGlvbigpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm9yZWFjaCAo
JHJlcG9zaXRvcmllc190aGF0X2FjY2VwdHNfcGF0Y2ggYXMgJHJlcG9zaXRvcnlfaWQpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoISRkYi0+cXVlcnlfYW5kX2dldF9hZmZlY3RlZF9yb3dzKCJVUERB
VEUgdHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzIFNFVCB0cmlncmVwb19hY2NlcHRzX3BhdGNoID0g
VFJVRQorICAgICAgICAgICAgICAgICAgICBXSEVSRSB0cmlncmVwb19ncm91cCA9ICQxIEFORCB0
cmlncmVwb19yZXBvc2l0b3J5ID0gJDIiLCBhcnJheSgkZ3JvdXBfaWQsICRyZXBvc2l0b3J5X2lk
KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbm90aWNlKCdGYWlsZWQgdG8gdXBkYXRlIHRoZSBh
Y2NlcHQtcGF0Y2ggc3RhdHVzLicpOworICAgICAgICAgICAgICAgICAgICAkZGItPnJvbGxiYWNr
X3RyYW5zYWN0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICAgICAgJGRiLT5jb21taXRfdHJhbnNhY3Rpb24oKTsKKyAgICAgICAgICAgIG5vdGljZSgnVXBk
YXRlZCB0aGUgYWNjZXB0LXBhdGNoIHN0YXR1cy4nKTsKKyAgICAgICAgICAgIHJlZ2VuZXJhdGVf
bWFuaWZlc3QoKTsKKyAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoJGFjdGlvbiA9PSAnYWRkLXJl
cG9zaXRvcnktZ3JvdXAnKSB7CiAgICAgICAgICR0cmlnZ2VyYWJsZV9pZCA9IGludHZhbCgkX1BP
U1RbJ3RyaWdnZXJhYmxlJ10pOwogICAgICAgICAkbmFtZSA9ICRfUE9TVFsnbmFtZSddOwpAQCAt
OTAsNyArODMsNyBAQCBpZiAoJGRiKSB7CiAgICAgICAgICdkaXNhYmxlZCcgPT4gYXJyYXkoJ2Vk
aXRpbmdfbW9kZScgPT4gJ2Jvb2xlYW4nLCAncG9zdF9pbnNlcnRpb24nID0+IFRSVUUpLAogICAg
ICAgICAncmVwb3NpdG9yaWVzJyA9PiBhcnJheSgKICAgICAgICAgICAgICdsYWJlbCcgPT4gJ1Jl
cG9zaXRvcnkgR3JvdXBzJywKLSAgICAgICAgICAgICdzdWJjb2x1bW5zJz0+IGFycmF5KCdJRCcs
ICdOYW1lJywgJ0Rlc2NyaXB0aW9uJywgJ0FjY2VwdHMgUm9vdHMnLCAnUmVwb3NpdG9yaWVzJyks
CisgICAgICAgICAgICAnc3ViY29sdW1ucyc9PiBhcnJheSgnSUQnLCAnTmFtZScsICdEZXNjcmlw
dGlvbicsICdBY2NlcHRzIFJvb3RzJywgJ1JlcG9zaXRvcmllcycsICdBY2NlcHQgcGF0Y2hlcycp
LAogICAgICAgICAgICAgJ2N1c3RvbScgPT4gZnVuY3Rpb24gKCR0cmlnZ2VyYWJsZV9yb3cpIHVz
ZSAoJiRkYiwgJiRyZXBvc2l0b3J5X3Jvd3MpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gZ2Vu
ZXJhdGVfcmVwb3NpdG9yeV9saXN0KCRkYiwgJHRyaWdnZXJhYmxlX3Jvd1sndHJpZ2dlcmFibGVf
aWQnXSwgJHJlcG9zaXRvcnlfcm93cyk7CiAgICAgICAgICAgICB9KSwKQEAgLTE0OSw3ICsxNDIs
MjEgQEAgRU5EOwogICAgICAgICAgICAgPC9mb3JtPgogRU5EOwogCi0gICAgICAgIGFycmF5X3B1
c2goJGdyb3VwX2Zvcm1zLCBhcnJheSgkZ3JvdXBfaWQsICRncm91cF9uYW1lX2Zvcm0sICRncm91
cF9kZXNjcmlwdGlvbl9mb3JtLCAkZ3JvdXBfYWNjZXB0c19yb290cywgZ2VuZXJhdGVfcmVwb3Np
dG9yeV9mb3JtKCRkYiwgJHJlcG9zaXRvcnlfcm93cywgJGdyb3VwX2lkKSkpOworICAgICAgICAk
Z3JvdXBfcmVwb3NpdG9yeV9yb3dzID0gJGRiLT5zZWxlY3Rfcm93cygndHJpZ2dlcmFibGVfcmVw
b3NpdG9yaWVzJywgJ3RyaWdyZXBvJywgYXJyYXkoJ2dyb3VwJyA9PiAkZ3JvdXBfaWQpKTsKKyAg
ICAgICAgJHJlcG9zaXRvcmllc19pbl9ncm91cCA9IGFycmF5KCk7CisgICAgICAgICRyZXBvc2l0
b3JpZXNfdGhhdF9hY2NlcHRzX3BhdGNoID0gYXJyYXkoKTsKKyAgICAgICAgZm9yZWFjaCAoJHJl
cG9zaXRvcnlfcm93cyBhcyAkcm93KQorICAgICAgICAgICAgJHJlcG9zaXRvcmllc19pbl9ncm91
cFskcm93WydyZXBvc2l0b3J5X2lkJ11dID0gRkFMU0U7CisgICAgICAgIGZvcmVhY2ggKCRncm91
cF9yZXBvc2l0b3J5X3Jvd3MgYXMgJHJvdykgeworICAgICAgICAgICAgJHJlcG9zaXRvcnlfaWQg
PSAkcm93Wyd0cmlncmVwb19yZXBvc2l0b3J5J107CisgICAgICAgICAgICAkcmVwb3NpdG9yaWVz
X2luX2dyb3VwWyRyZXBvc2l0b3J5X2lkXSA9IFRSVUU7CisgICAgICAgICAgICAkcmVwb3NpdG9y
aWVzX3RoYXRfYWNjZXB0c19wYXRjaFskcmVwb3NpdG9yeV9pZF0gPSBEYXRhYmFzZTo6aXNfdHJ1
ZSgkcm93Wyd0cmlncmVwb19hY2NlcHRzX3BhdGNoJ10pOworICAgICAgICB9CisKKyAgICAgICAg
YXJyYXlfcHVzaCgkZ3JvdXBfZm9ybXMsIGFycmF5KCRncm91cF9pZCwgJGdyb3VwX25hbWVfZm9y
bSwgJGdyb3VwX2Rlc2NyaXB0aW9uX2Zvcm0sICRncm91cF9hY2NlcHRzX3Jvb3RzLAorICAgICAg
ICAgICAgZ2VuZXJhdGVfcmVwb3NpdG9yeV9mb3JtKCd1cGRhdGUtcmVwb3NpdG9yaWVzJywgJGdy
b3VwX2lkLCBnZW5lcmF0ZV9yZXBvc2l0b3J5X2NoZWNrYm94ZXMoJGRiLCAkcmVwb3NpdG9yeV9y
b3dzLCAkcmVwb3NpdG9yaWVzX2luX2dyb3VwKSksCisgICAgICAgICAgICBnZW5lcmF0ZV9yZXBv
c2l0b3J5X2Zvcm0oJ3VwZGF0ZS1hY2NlcHQtcGF0Y2gnLCAkZ3JvdXBfaWQsIGdlbmVyYXRlX3Jl
cG9zaXRvcnlfY2hlY2tib3hlcygkZGIsICRyZXBvc2l0b3J5X3Jvd3MsICRyZXBvc2l0b3JpZXNf
dGhhdF9hY2NlcHRzX3BhdGNoKSksCisgICAgICAgICkpOwogICAgIH0KIAogICAgICRuZXdfZ3Jv
dXBfY2hlY2tib3hlcyA9IGdlbmVyYXRlX3JlcG9zaXRvcnlfY2hlY2tib3hlcygkZGIsICRyZXBv
c2l0b3J5X3Jvd3MpOwpAQCAtMTY3LDMyICsxNzQsMjYgQEAgRU5EOwogICAgIHJldHVybiAkZ3Jv
dXBfZm9ybXM7CiB9CiAKLWZ1bmN0aW9uIGdlbmVyYXRlX3JlcG9zaXRvcnlfZm9ybSgkZGIsICRy
ZXBvc2l0b3J5X3Jvd3MsICRncm91cF9pZCkKK2Z1bmN0aW9uIGdlbmVyYXRlX3JlcG9zaXRvcnlf
Zm9ybSgkYWN0aW9uLCAkZ3JvdXBfaWQsICRjaGVja2JveGVzKQogewotICAgICRjaGVja2JveGVz
ID0gZ2VuZXJhdGVfcmVwb3NpdG9yeV9jaGVja2JveGVzKCRkYiwgJHJlcG9zaXRvcnlfcm93cywg
JGdyb3VwX2lkKTsKICAgICByZXR1cm4gPDw8IEVORAogICAgICAgICA8Zm9ybSBtZXRob2Q9IlBP
U1QiPgotICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJ1
cGRhdGUtcmVwb3NpdG9yaWVzIj4KKyAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i
YWN0aW9uIiB2YWx1ZT0iJGFjdGlvbiI+CiAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5h
bWU9Imdyb3VwIiB2YWx1ZT0iJGdyb3VwX2lkIj4KICAgICAgICAgJGNoZWNrYm94ZXMKICAgICAg
ICAgPGJyPjxidXR0b24gdHlwZT0ic3VibWl0Ij5TYXZlPC9idXR0b24+PC9mb3JtPgogRU5EOwog
fQogCi1mdW5jdGlvbiBnZW5lcmF0ZV9yZXBvc2l0b3J5X2NoZWNrYm94ZXMoJGRiLCAkcmVwb3Np
dG9yeV9yb3dzLCAkZ3JvdXBfaWQgPSBOVUxMKQorZnVuY3Rpb24gZ2VuZXJhdGVfcmVwb3NpdG9y
eV9jaGVja2JveGVzKCRkYiwgJHJlcG9zaXRvcnlfcm93cywgJHNlbGVjdGVkX3JlcG9zaXRvcmll
cyA9IGFycmF5KCkpCiB7Ci0gICAgJHJlcG9zaXRvcmllc19pbl9ncm91cCA9IGFycmF5KCk7Ci0g
ICAgaWYgKCRncm91cF9pZCkgewotICAgICAgICAkZ3JvdXBfcmVwb3NpdG9yeV9yb3dzID0gJGRi
LT5zZWxlY3Rfcm93cygndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywgJ3RyaWdyZXBvJywgYXJy
YXkoJ2dyb3VwJyA9PiAkZ3JvdXBfaWQpKTsKLSAgICAgICAgZm9yZWFjaCAoJGdyb3VwX3JlcG9z
aXRvcnlfcm93cyBhcyAkcm93KQotICAgICAgICAgICAgJHJlcG9zaXRvcmllc19pbl9ncm91cFsk
cm93Wyd0cmlncmVwb19yZXBvc2l0b3J5J11dID0gVFJVRTsKLSAgICB9Ci0KICAgICAkZm9ybSA9
ICcnOwogICAgIGZvcmVhY2ggKCRyZXBvc2l0b3J5X3Jvd3MgYXMgJHJvdykgewogICAgICAgICAk
aWQgPSAkcm93WydyZXBvc2l0b3J5X2lkJ107CisgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0
cygkaWQsICRzZWxlY3RlZF9yZXBvc2l0b3JpZXMpKQorICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICRuYW1lID0gJHJvd1sncmVwb3NpdG9yeV9uYW1lJ107Ci0gICAgICAgICRjaGVja2Vk
ID0gYXJyYXlfa2V5X2V4aXN0cygkaWQsICRyZXBvc2l0b3JpZXNfaW5fZ3JvdXApID8gJ2NoZWNr
ZWQnIDogJyc7CisgICAgICAgICRjaGVja2VkID0gJHNlbGVjdGVkX3JlcG9zaXRvcmllc1skaWRd
ID8gJ2NoZWNrZWQnIDogJyc7CiAgICAgICAgICRmb3JtIC49ICI8bGFiZWw+PGlucHV0IHR5cGU9
XCJjaGVja2JveFwiIG5hbWU9XCJyZXBvc2l0b3JpZXNbXVwiIHZhbHVlPVwiJGlkXCIgJGNoZWNr
ZWQ+JG5hbWU8L2xhYmVsPiI7CiAgICAgfQogICAgIHJldHVybiAkZm9ybTsKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS5w
aHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS91cGRhdGUtdHJpZ2dlcmFi
bGUucGhwCmluZGV4IGU4MjM5NjZkZTRiYTA0ZjEzNTI4M2VhNGJkN2I5YThjNTU4Yjk5YzEuLmY1
YjIyYjViYWZjMjQ5MzI1YzQ5ZDVhNzAzOGM0MTUxYmYwMWQ1OGQgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS5waHAKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxl
LnBocApAQCAtMjYsNyArMjYsNyBAQCBmdW5jdGlvbiBtYWluKCRwb3N0X2RhdGEpCiAKICAgICAk
ZmluZGVyID0gbmV3IFJlcG9zaXRvcnlHcm91cEZpbmRlcigkZGIsICR0cmlnZ2VyYWJsZV9pZCk7
CiAgICAgZm9yZWFjaCAoJHJlcG9zaXRvcnlfZ3JvdXBzIGFzICYkZ3JvdXApCi0gICAgICAgICRn
cm91cFsnZXhpc3RpbmdHcm91cCddID0gJGZpbmRlci0+ZmluZF9ieV9yZXBvc2l0b3JpZXMoJGdy
b3VwWydyZXBvc2l0b3JpZXMnXSk7CisgICAgICAgICRncm91cFsnZXhpc3RpbmdHcm91cCddID0g
JGZpbmRlci0+ZmluZF9ieV9yZXBvc2l0b3JpZXMoJGdyb3VwWydyZXBvc2l0b3J5X2lkX2xpc3Qn
XSk7CiAKICAgICAkZGItPmJlZ2luX3RyYW5zYWN0aW9uKCk7CiAgICAgaWYgKCRkYi0+cXVlcnlf
YW5kX2dldF9hZmZlY3RlZF9yb3dzKCdERUxFVEUgRlJPTSB0cmlnZ2VyYWJsZV9jb25maWd1cmF0
aW9ucyBXSEVSRSB0cmlnY29uZmlnX3RyaWdnZXJhYmxlID0gJDEnLCBhcnJheSgkdHJpZ2dlcmFi
bGVfaWQpKSA9PT0gZmFsc2UpIHsKQEAgLTQ0LDE2ICs0NCwxOSBAQCBmdW5jdGlvbiBtYWluKCRw
b3N0X2RhdGEpCiAKICAgICBmb3JlYWNoICgkcmVwb3NpdG9yeV9ncm91cHMgYXMgJiRncm91cCkg
ewogICAgICAgICAkZ3JvdXBfaWQgPSAkZ3JvdXBbJ2V4aXN0aW5nR3JvdXAnXTsKKyAgICAgICAg
JGdyb3VwX2luZm8gPSBhcnJheSgKKyAgICAgICAgICAgICd0cmlnZ2VyYWJsZScgPT4gJHRyaWdn
ZXJhYmxlX2lkLAorICAgICAgICAgICAgJ25hbWUnID0+ICRncm91cFsnbmFtZSddLAorICAgICAg
ICAgICAgJ2Rlc2NyaXB0aW9uJyA9PiBhcnJheV9nZXQoJGdyb3VwLCAnZGVzY3JpcHRpb24nKSwK
KyAgICAgICAgICAgICdhY2NlcHRzX3Jvb3RzJyA9PiBEYXRhYmFzZTo6dG9fZGF0YWJhc2VfYm9v
bGVhbihhcnJheV9nZXQoJGdyb3VwLCAnYWNjZXB0c1Jvb3RzJywgRkFMU0UpKSk7CiAgICAgICAg
IGlmICgkZ3JvdXBfaWQpIHsKLSAgICAgICAgICAgICRncm91cF9pbmZvID0gYXJyYXkoJ25hbWUn
ID0+ICRncm91cFsnbmFtZSddLCAnZGVzY3JpcHRpb24nID0+IGFycmF5X2dldCgkZ3JvdXAsICdk
ZXNjcmlwdGlvbicpKTsKICAgICAgICAgICAgIGlmICghJGRiLT51cGRhdGVfcm93KCd0cmlnZ2Vy
YWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsICdyZXBvc2l0b3J5Z3JvdXAnLCBhcnJheSgnaWQnID0+
ICRncm91cF9pZCksICRncm91cF9pbmZvKSkgewogICAgICAgICAgICAgICAgICRkYi0+cm9sbGJh
Y2tfdHJhbnNhY3Rpb24oKTsKICAgICAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ZhaWxl
ZFRvSW5zZXJ0UmVwb3NpdG9yeUdyb3VwJywgYXJyYXkoJ3JlcG9zaXRvcnlHcm91cCcgPT4gJGdy
b3VwKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAkZ3Jv
dXBfaWQgPSAkZGItPnVwZGF0ZV9vcl9pbnNlcnRfcm93KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5
X2dyb3VwcycsICdyZXBvc2l0b3J5Z3JvdXAnLAotICAgICAgICAgICAgICAgIGFycmF5KCd0cmln
Z2VyYWJsZScgPT4gJHRyaWdnZXJhYmxlX2lkLCAnbmFtZScgPT4gJGdyb3VwWyduYW1lJ10pLAot
ICAgICAgICAgICAgICAgIGFycmF5KCd0cmlnZ2VyYWJsZScgPT4gJHRyaWdnZXJhYmxlX2lkLCAn
bmFtZScgPT4gJGdyb3VwWyduYW1lJ10sICdkZXNjcmlwdGlvbicgPT4gYXJyYXlfZ2V0KCRncm91
cCwgJ2Rlc2NyaXB0aW9uJykpKTsKKyAgICAgICAgICAgICAgICBhcnJheSgndHJpZ2dlcmFibGUn
ID0+ICR0cmlnZ2VyYWJsZV9pZCwgJ25hbWUnID0+ICRncm91cFsnbmFtZSddKSwgJGdyb3VwX2lu
Zm8pOwogICAgICAgICAgICAgaWYgKCEkZ3JvdXBfaWQpIHsKICAgICAgICAgICAgICAgICAkZGIt
PnJvbGxiYWNrX3RyYW5zYWN0aW9uKCk7CiAgICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9y
KCdGYWlsZWRUb0luc2VydFJlcG9zaXRvcnlHcm91cCcsIGFycmF5KCdyZXBvc2l0b3J5R3JvdXAn
ID0+ICRncm91cCkpOwpAQCAtNjMsOCArNjYsMTEgQEAgZnVuY3Rpb24gbWFpbigkcG9zdF9kYXRh
KQogICAgICAgICAgICAgJGRiLT5yb2xsYmFja190cmFuc2FjdGlvbigpOwogICAgICAgICAgICAg
ZXhpdF93aXRoX2Vycm9yKCdGYWlsZWRUb0Rpc2Fzc29jaWF0ZVJlcG9zaXRvcmllcycsIGFycmF5
KCdyZXBvc2l0b3J5R3JvdXAnID0+ICRncm91cCkpOwogICAgICAgICB9Ci0gICAgICAgIGZvcmVh
Y2ggKCRncm91cFsncmVwb3NpdG9yaWVzJ10gYXMgJHJlcG9zaXRvcnlfaWQpIHsKLSAgICAgICAg
ICAgIGlmICghJGRiLT5pbnNlcnRfcm93KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAndHJp
Z3JlcG8nLCBhcnJheSgnZ3JvdXAnID0+ICRncm91cF9pZCwgJ3JlcG9zaXRvcnknID0+ICRyZXBv
c2l0b3J5X2lkKSwgbnVsbCkpIHsKKyAgICAgICAgZm9yZWFjaCAoJGdyb3VwWydyZXBvc2l0b3Jp
ZXMnXSBhcyAkcmVwb3NpdG9yeV9kYXRhKSB7CisgICAgICAgICAgICAkcm93ID0gYXJyYXkoJ2dy
b3VwJyA9PiAkZ3JvdXBfaWQsCisgICAgICAgICAgICAgICAgJ3JlcG9zaXRvcnknID0+ICRyZXBv
c2l0b3J5X2RhdGFbJ3JlcG9zaXRvcnknXSwKKyAgICAgICAgICAgICAgICAnYWNjZXB0c19wYXRj
aCcgPT4gRGF0YWJhc2U6OnRvX2RhdGFiYXNlX2Jvb2xlYW4oYXJyYXlfZ2V0KCRyZXBvc2l0b3J5
X2RhdGEsICdhY2NlcHRzUGF0Y2gnLCBGQUxTRSkpKTsKKyAgICAgICAgICAgIGlmICghJGRiLT5p
bnNlcnRfcm93KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAndHJpZ3JlcG8nLCAkcm93LCBu
dWxsKSkgewogICAgICAgICAgICAgICAgICRkYi0+cm9sbGJhY2tfdHJhbnNhY3Rpb24oKTsKICAg
ICAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ZhaWxlZFRvQXNzb2NpYXRlUmVwb3NpdG9y
eScsIGFycmF5KCdyZXBvc2l0b3J5R3JvdXAnID0+ICRncm91cCwgJ3JlcG9zaXRvcnknID0+ICRy
ZXBvc2l0b3J5X2lkKSk7CiAgICAgICAgICAgICB9CkBAIC04Niw3ICs5Miw3IEBAIGZ1bmN0aW9u
IHZhbGlkYXRlX2NvbmZpZ3VyYXRpb25zKCRkYiwgJGNvbmZpZ3VyYXRpb25zKQogICAgIH0KIH0K
IAotZnVuY3Rpb24gdmFsaWRhdGVfcmVwb3NpdG9yeV9ncm91cHMoJGRiLCAkcmVwb3NpdG9yeV9n
cm91cHMpCitmdW5jdGlvbiB2YWxpZGF0ZV9yZXBvc2l0b3J5X2dyb3VwcygkZGIsICYkcmVwb3Np
dG9yeV9ncm91cHMpCiB7CiAgICAgaWYgKCFpc19hcnJheSgkcmVwb3NpdG9yeV9ncm91cHMpKQog
ICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXBzJywgYXJyYXko
J3JlcG9zaXRvcnlHcm91cHMnID0+ICRyZXBvc2l0b3J5X2dyb3VwcykpOwpAQCAtOTksMTMgKzEw
NSwzMSBAQCBmdW5jdGlvbiB2YWxpZGF0ZV9yZXBvc2l0b3J5X2dyb3VwcygkZGIsICRyZXBvc2l0
b3J5X2dyb3VwcykKICAgICBmb3JlYWNoICgkcmVwb3NpdG9yeV9ncm91cHMgYXMgJiRncm91cCkg
ewogICAgICAgICBpZiAoIWlzX2FycmF5KCRncm91cCkgfHwgIWFycmF5X2tleV9leGlzdHMoJ25h
bWUnLCAkZ3JvdXApIHx8ICFhcnJheV9rZXlfZXhpc3RzKCdyZXBvc2l0b3JpZXMnLCAkZ3JvdXAp
IHx8ICFpc19hcnJheSgkZ3JvdXBbJ3JlcG9zaXRvcmllcyddKSkKICAgICAgICAgICAgIGV4aXRf
d2l0aF9lcnJvcignSW52YWxpZFJlcG9zaXRvcnlHcm91cCcsIGFycmF5KCdyZXBvc2l0b3J5R3Jv
dXAnID0+ICRncm91cCkpOworCisgICAgICAgICRhY2NlcHRzX3Jvb3RzID0gYXJyYXlfZ2V0KCRn
cm91cCwgJ2FjY2VwdHNSb290cycsIEZBTFNFKTsKKyAgICAgICAgaWYgKCRhY2NlcHRzX3Jvb3Rz
ICE9PSBUUlVFICYmICRhY2NlcHRzX3Jvb3RzICE9PSBGQUxTRSkKKyAgICAgICAgICAgIGV4aXRf
d2l0aF9lcnJvcignSW52YWxpZEFjY2VwdHNSb290cycsIGFycmF5KCdyZXBvc2l0b3J5R3JvdXAn
ID0+ICRncm91cCwgJ2FjY2VwdHNSb290cycgPT4gYWNjZXB0c19yb290cykpOworCiAgICAgICAg
ICRyZXBvc2l0b3J5X2xpc3QgPSAkZ3JvdXBbJ3JlcG9zaXRvcmllcyddOwogICAgICAgICAkZ3Jv
dXBfcmVwb3NpdG9yeV9saXN0ID0gYXJyYXkoKTsKLSAgICAgICAgZm9yZWFjaCAoJHJlcG9zaXRv
cnlfbGlzdCBhcyAkcmVwb3NpdG9yeV9pZCkgewotICAgICAgICAgICAgaWYgKCFhcnJheV9rZXlf
ZXhpc3RzKCRyZXBvc2l0b3J5X2lkLCAkdG9wX2xldmVsX3JlcG9zaXRvcnlfaWRzKSB8fCBhcnJh
eV9rZXlfZXhpc3RzKCRyZXBvc2l0b3J5X2lkLCAkZ3JvdXBfcmVwb3NpdG9yeV9saXN0KSkKLSAg
ICAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRSZXBvc2l0b3J5JywgYXJyYXko
J3JlcG9zaXRvcnlHcm91cCcgPT4gJGdyb3VwLCAncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlf
aWQpKTsKLSAgICAgICAgICAgICRncm91cF9yZXBvc2l0b3J5X2xpc3RbJHJlcG9zaXRvcnlfaWRd
ID0gdHJ1ZTsKKyAgICAgICAgZm9yZWFjaCAoJHJlcG9zaXRvcnlfbGlzdCBhcyAkcmVwb3NpdG9y
eV9kYXRhKSB7CisgICAgICAgICAgICBpZiAoISRyZXBvc2l0b3J5X2RhdGEgfHwgIWlzX2FycmF5
KCRyZXBvc2l0b3J5X2RhdGEpKQorICAgICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52
YWxpZFJlcG9zaXRvcnlEYXRhJywgYXJyYXkoJ3JlcG9zaXRvcnlHcm91cCcgPT4gJGdyb3VwLCAn
ZGF0YScgPT4gJHJlcG9zaXRvcnlfZGF0YSkpOworCisgICAgICAgICAgICAkaWQgPSBhcnJheV9n
ZXQoJHJlcG9zaXRvcnlfZGF0YSwgJ3JlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGlmICghJGlk
IHx8ICFpc19udW1lcmljKCRpZCkgfHwgIWFycmF5X2tleV9leGlzdHMoJGlkLCAkdG9wX2xldmVs
X3JlcG9zaXRvcnlfaWRzKSkKKyAgICAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFs
aWRSZXBvc2l0b3J5JywgYXJyYXkoJ3JlcG9zaXRvcnlHcm91cCcgPT4gJGdyb3VwLCAncmVwb3Np
dG9yeScgPT4gJGlkKSk7CisKKyAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRpZCwg
JGdyb3VwX3JlcG9zaXRvcnlfbGlzdCkpCisgICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9y
KCdEdXBsaWNhdGVSZXBvc2l0b3J5JywgYXJyYXkoJ3JlcG9zaXRvcnlHcm91cCcgPT4gJGdyb3Vw
LCAncmVwb3NpdG9yeScgPT4gJGlkKSk7CisKKyAgICAgICAgICAgICRhY2NlcHRzX3BhdGNoID0g
YXJyYXlfZ2V0KCRyZXBvc2l0b3J5X2RhdGEsICdhY2NlcHRzUGF0Y2gnLCBGQUxTRSk7CisgICAg
ICAgICAgICBpZiAoJGFjY2VwdHNfcGF0Y2ggIT09IFRSVUUgJiYgJGFjY2VwdHNfcGF0Y2ggIT09
IEZBTFNFKQorICAgICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZFJlcG9zaXRv
cnlEYXRhJywgYXJyYXkoJ3JlcG9zaXRvcnlHcm91cCcgPT4gJGdyb3VwLCAncmVwb3NpdG9yeScg
PT4gJGlkKSk7CisKKyAgICAgICAgICAgICRncm91cF9yZXBvc2l0b3J5X2xpc3RbJGlkXSA9IHRy
dWU7CiAgICAgICAgIH0KKyAgICAgICAgJGdyb3VwWydyZXBvc2l0b3J5X2lkX2xpc3QnXSA9IGFy
cmF5X2tleXMoJGdyb3VwX3JlcG9zaXRvcnlfbGlzdCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMt
ZmV0Y2hlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVp
bGQtcmVxdWVzdHMtZmV0Y2hlci5waHAKaW5kZXggZTAzOTZhYTVmZTZlZmYzZmNlN2I3ZGQzZDQ1
YzdhNzE1YmE5YmQ2Mi4uOTcxY2JmZDg1NzVhNDQyZGNjMmQ0NDUwYjE2MjY0ZTg3MTc0NjZiYyAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxk
LXJlcXVlc3RzLWZldGNoZXIucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBocApAQCAtOTQsMzIgKzk0LDMxIEBA
IGNsYXNzIEJ1aWxkUmVxdWVzdHNGZXRjaGVyIHsKICAgICAgICAgaWYgKGFycmF5X2tleV9leGlz
dHMoJGNvbW1pdF9zZXRfaWQsICR0aGlzLT5jb21taXRfc2V0c19ieV9pZCkpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgJGNvbW1pdF9yb3dzID0gJHRoaXMtPmRiLT5xdWVyeV9hbmRf
ZmV0Y2hfYWxsKCdTRUxFQ1QgKgorICAgICAgICAkY29tbWl0X3NldF9pdGVtcyA9ICR0aGlzLT5k
Yi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICoKICAgICAgICAgICAgIEZST00gY29tbWl0
X3NldF9pdGVtcyBMRUZUIE9VVEVSIEpPSU4gIGNvbW1pdHMgT04gY29tbWl0c2V0X2NvbW1pdCA9
IGNvbW1pdF9pZAogICAgICAgICAgICAgICAgIExFRlQgT1VURVIgSk9JTiByZXBvc2l0b3JpZXMg
T04gcmVwb3NpdG9yeV9pZCA9IGNvbW1pdF9yZXBvc2l0b3J5CiAgICAgICAgICAgICAgICAgV0hF
UkUgY29tbWl0c2V0X3NldCA9ICQxJywgYXJyYXkoJGNvbW1pdF9zZXRfaWQpKTsKIAotICAgICAg
ICAkY29tbWl0X2lkcyA9IGFycmF5KCk7CiAgICAgICAgICRjdXN0b21fcm9vdHMgPSBhcnJheSgp
OwotCi0gICAgICAgIGZvcmVhY2ggKCRjb21taXRfcm93cyBhcyAkcm93KSB7CisgICAgICAgICRy
ZXZpc2lvbl9pdGVtcyA9IGFycmF5KCk7CisgICAgICAgIGZvcmVhY2ggKCRjb21taXRfc2V0X2l0
ZW1zIGFzICRyb3cpIHsKICAgICAgICAgICAgICRyZXBvc2l0b3J5X2lkID0gJHJlc29sdmVfaWRz
ID8gJHJvd1sncmVwb3NpdG9yeV9uYW1lJ10gOiAkcm93WydyZXBvc2l0b3J5X2lkJ107CiAgICAg
ICAgICAgICAkcmV2aXNpb24gPSAkcm93Wydjb21taXRfcmV2aXNpb24nXTsKICAgICAgICAgICAg
ICRjb21taXRfdGltZSA9ICRyb3dbJ2NvbW1pdF90aW1lJ107CiAKICAgICAgICAgICAgICRyb290
X2ZpbGVfaWQgPSAkcm93Wydjb21taXRzZXRfcm9vdF9maWxlJ107Ci0gICAgICAgICAgICBpZiAo
JHJvb3RfZmlsZV9pZCkgewotICAgICAgICAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygk
cm9vdF9maWxlX2lkLCAkdGhpcy0+dXBsb2FkZWRfZmlsZXNfYnlfaWQpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICR1cGxvYWRlZF9maWxlX3JvdyA9ICR0aGlzLT5kYi0+c2VsZWN0X2ZpcnN0X3Jv
dygndXBsb2FkZWRfZmlsZXMnLCAnZmlsZScsIGFycmF5KCdpZCcgPT4gJHJvb3RfZmlsZV9pZCkp
OwotICAgICAgICAgICAgICAgICAgICBhcnJheV9wdXNoKCR0aGlzLT51cGxvYWRlZF9maWxlcywg
Zm9ybWF0X3VwbG9hZGVkX2ZpbGUoJHVwbG9hZGVkX2ZpbGVfcm93KSk7Ci0gICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgJGNvbW1pdF9pZCA9ICRyb3dbJ2NvbW1pdHNldF9jb21taXQnXTsK
KyAgICAgICAgICAgIGlmICgkcm9vdF9maWxlX2lkICYmICEkY29tbWl0X2lkKSB7CisgICAgICAg
ICAgICAgICAgJHRoaXMtPmFkZF91cGxvYWRlZF9maWxlKCRyb290X2ZpbGVfaWQpOwogICAgICAg
ICAgICAgICAgIGFycmF5X3B1c2goJGN1c3RvbV9yb290cywgJHJvb3RfZmlsZV9pZCk7CiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGFycmF5
X3B1c2goJGNvbW1pdF9pZHMsICRyb3dbJ2NvbW1pdF9pZCddKTsKKyAgICAgICAgICAgICRwYXRj
aF9maWxlX2lkID0gJHJvd1snY29tbWl0c2V0X3BhdGNoX2ZpbGUnXTsKKyAgICAgICAgICAgIGlm
ICgkcGF0Y2hfZmlsZV9pZCkKKyAgICAgICAgICAgICAgICAkdGhpcy0+YWRkX3VwbG9hZGVkX2Zp
bGUoJHBhdGNoX2ZpbGVfaWQpOworICAgICAgICAgICAgYXJyYXlfcHVzaCgkcmV2aXNpb25faXRl
bXMsIGFycmF5KCdjb21taXQnID0+ICRyb3dbJ2NvbW1pdF9pZCddLCAncGF0Y2gnID0+ICRwYXRj
aF9maWxlX2lkKSk7CiAKLSAgICAgICAgICAgICRjb21taXRfaWQgPSAkcm93Wydjb21taXRfaWQn
XTsKICAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRjb21taXRfaWQsICR0aGlzLT5j
b21taXRzX2J5X2lkKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMTM0LDcgKzEz
MywxNSBAQCBjbGFzcyBCdWlsZFJlcXVlc3RzRmV0Y2hlciB7CiAKICAgICAgICAgJHRoaXMtPmNv
bW1pdF9zZXRzX2J5X2lkWyRjb21taXRfc2V0X2lkXSA9IFRSVUU7CiAKLSAgICAgICAgYXJyYXlf
cHVzaCgkdGhpcy0+Y29tbWl0X3NldHMsIGFycmF5KCdpZCcgPT4gJGNvbW1pdF9zZXRfaWQsICdj
b21taXRzJyA9PiAkY29tbWl0X2lkcywgJ2N1c3RvbVJvb3RzJyA9PiAkY3VzdG9tX3Jvb3RzKSk7
CisgICAgICAgIGFycmF5X3B1c2goJHRoaXMtPmNvbW1pdF9zZXRzLCBhcnJheSgnaWQnID0+ICRj
b21taXRfc2V0X2lkLCAncmV2aXNpb25JdGVtcycgPT4gJHJldmlzaW9uX2l0ZW1zLCAnY3VzdG9t
Um9vdHMnID0+ICRjdXN0b21fcm9vdHMpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9u
IGFkZF91cGxvYWRlZF9maWxlKCRyb290X2ZpbGVfaWQpCisgICAgeworICAgICAgICBpZiAoIWFy
cmF5X2tleV9leGlzdHMoJHJvb3RfZmlsZV9pZCwgJHRoaXMtPnVwbG9hZGVkX2ZpbGVzX2J5X2lk
KSkgeworICAgICAgICAgICAgJHVwbG9hZGVkX2ZpbGVfcm93ID0gJHRoaXMtPmRiLT5zZWxlY3Rf
Zmlyc3Rfcm93KCd1cGxvYWRlZF9maWxlcycsICdmaWxlJywgYXJyYXkoJ2lkJyA9PiAkcm9vdF9m
aWxlX2lkKSk7CisgICAgICAgICAgICBhcnJheV9wdXNoKCR0aGlzLT51cGxvYWRlZF9maWxlcywg
Zm9ybWF0X3VwbG9hZGVkX2ZpbGUoJHVwbG9hZGVkX2ZpbGVfcm93KSk7CisgICAgICAgIH0KICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5j
bHVkZS9tYW5pZmVzdC1nZW5lcmF0b3IucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKaW5kZXggMGRhYTI1NDY5NmJlZTMx
YzY2Y2YyOGViMThhMzAzNDkxNDNjZDNmMS4uODBhNjIyZTQ1YTdkMzE3NjBkMTNkYjZlY2ZjZTFl
N2Y0ZGY5ZjUxMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9p
bmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKQEAgLTIxMyw3ICsyMTMs
OSBAQCBjbGFzcyBNYW5pZmVzdEdlbmVyYXRvciB7CiAgICAgICAgICAgICBmb3JlYWNoICgkZ3Jv
dXBfcmVwb3NpdG9yaWVzIGFzICYkcmVwb3NpdG9yeV9yb3cpIHsKICAgICAgICAgICAgICAgICAk
Z3JvdXBfaWQgPSAkcmVwb3NpdG9yeV9yb3dbJ3RyaWdyZXBvX2dyb3VwJ107CiAgICAgICAgICAg
ICAgICAgYXJyYXlfZW5zdXJlX2l0ZW1faGFzX2FycmF5KCRyZXBvc2l0b3J5X3NldF9ieV9ncm91
cCwgJGdyb3VwX2lkKTsKLSAgICAgICAgICAgICAgICBhcnJheV9wdXNoKCRyZXBvc2l0b3J5X3Nl
dF9ieV9ncm91cFskZ3JvdXBfaWRdLCAkcmVwb3NpdG9yeV9yb3dbJ3RyaWdyZXBvX3JlcG9zaXRv
cnknXSk7CisgICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkcmVwb3NpdG9yeV9zZXRfYnlfZ3Jv
dXBbJGdyb3VwX2lkXSwgYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICdyZXBvc2l0b3J5JyA9
PiAkcmVwb3NpdG9yeV9yb3dbJ3RyaWdyZXBvX3JlcG9zaXRvcnknXSwKKyAgICAgICAgICAgICAg
ICAgICAgJ2FjY2VwdHNQYXRjaCcgPT4gRGF0YWJhc2U6OmlzX3RydWUoJHJlcG9zaXRvcnlfcm93
Wyd0cmlncmVwb19hY2NlcHRzX3BhdGNoJ10pKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBmb3JlYWNoICgkcmVwb3NpdG9yeV9ncm91cHMgYXMgJiRncm91cF9yb3cpIHsKICAgICAgICAg
ICAgICAgICAkdHJpZ2dlcmFibGVfaWQgPSAkZ3JvdXBfcm93WydyZXBvc2l0b3J5Z3JvdXBfdHJp
Z2dlcmFibGUnXTsKQEAgLTIyOSw3ICsyMzEsOCBAQCBjbGFzcyBNYW5pZmVzdEdlbmVyYXRvciB7
CiAgICAgICAgICAgICAgICAgICAgICdhY2NlcHRzQ3VzdG9tUm9vdHMnID0+IERhdGFiYXNlOjpp
c190cnVlKCRncm91cF9yb3dbJ3JlcG9zaXRvcnlncm91cF9hY2NlcHRzX3Jvb3RzJ10pLAogICAg
ICAgICAgICAgICAgICAgICAncmVwb3NpdG9yaWVzJyA9PiAkcmVwb3NpdG9yeV9saXN0KSk7CiAg
ICAgICAgICAgICAgICAgLy8gVjIgVUkgY29tcGF0aWJpbGl0eS4KLSAgICAgICAgICAgICAgICBm
b3JlYWNoICgkcmVwb3NpdG9yeV9saXN0IGFzICRyZXBvc2l0b3J5X2lkKSB7CisgICAgICAgICAg
ICAgICAgZm9yZWFjaCAoJHJlcG9zaXRvcnlfbGlzdCBhcyAkcmVwb3NpdG9yeV9kYXRhKSB7Cisg
ICAgICAgICAgICAgICAgICAgICRyZXBvc2l0b3J5X2lkID0gJHJlcG9zaXRvcnlfZGF0YVsncmVw
b3NpdG9yeSddOwogICAgICAgICAgICAgICAgICAgICAkc2V0ID0gJiR0cmlnZ2VyYWJsZV9pZF90
b19yZXBvc2l0b3J5X3NldFskdHJpZ2dlcmFibGVfaWRdOwogICAgICAgICAgICAgICAgICAgICBp
ZiAoYXJyYXlfa2V5X2V4aXN0cygkcmVwb3NpdG9yeV9pZCwgJHNldCkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvaW5jbHVkZS9yZXBvc2l0b3J5LWdyb3VwLWZpbmRlci5waHAgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3NpdG9yeS1ncm91cC1maW5kZXIucGhw
CmluZGV4IDcyNjQxNTNkNDRjMWY0NDZjZDU0MWMzZDVjODg1ZjFmMzY2NTg5ZGEuLjE1ZGRjNzhk
NmQwZjYyZTY3MmUwZmM0MDkzYjAwODA5MGJhZjU5ZDIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBvc2l0b3J5LWdyb3VwLWZpbmRlci5waHAK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9zaXRvcnkt
Z3JvdXAtZmluZGVyLnBocApAQCAtNyw2ICs3LDcgQEAgY2xhc3MgUmVwb3NpdG9yeUdyb3VwRmlu
ZGVyCiAgICAgICAgICR0aGlzLT5kYiA9ICRkYjsKICAgICAgICAgJHRoaXMtPnRyaWdnZXJhYmxl
X2lkID0gJHRyaWdnZXJhYmxlX2lkOwogICAgICAgICAkdGhpcy0+cmVwb3NpdG9yaWVzX2J5X2dy
b3VwID0gTlVMTDsKKyAgICAgICAgJHRoaXMtPmFjY2VwdHNfcGF0Y2hfYnlfZ3JvdXAgPSBOVUxM
OwogICAgIH0KIAogICAgIGZ1bmN0aW9uIGZpbmRfYnlfcmVwb3NpdG9yaWVzKCRyZXBvc2l0b3Jp
ZXMpCkBAIC0yMSw2ICsyMiwxMyBAQCBjbGFzcyBSZXBvc2l0b3J5R3JvdXBGaW5kZXIKICAgICAg
ICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCisgICAgZnVuY3Rpb24gYWNjZXB0c19wYXRjaCgkZ3Jv
dXBfaWQsICRyZXBvc2l0b3J5X2lkKQorICAgIHsKKyAgICAgICAgaWYgKCR0aGlzLT5hY2NlcHRz
X3BhdGNoX2J5X2dyb3VwID09PSBOVUxMKQorICAgICAgICAgICAgJHRoaXMtPnBvcHVsYXRlX21h
cCgpOworICAgICAgICByZXR1cm4gYXJyYXlfZ2V0KCR0aGlzLT5hY2NlcHRzX3BhdGNoX2J5X2dy
b3VwWyRncm91cF9pZF0sICRyZXBvc2l0b3J5X2lkLCBGQUxTRSk7CisgICAgfQorCiAgICAgcHJp
dmF0ZSBmdW5jdGlvbiBwb3B1bGF0ZV9tYXAoKQogICAgIHsKICAgICAgICAgJHJlcG9zaXRvcnlf
cm93cyA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSB0cmln
Z2VyYWJsZV9yZXBvc2l0b3JpZXMgV0hFUkUgdHJpZ3JlcG9fZ3JvdXAgSU4KQEAgLTMwLDEzICsz
OCwxOCBAQCBjbGFzcyBSZXBvc2l0b3J5R3JvdXBGaW5kZXIKICAgICAgICAgICAgIGV4aXRfd2l0
aF9lcnJvcignRmFpbGVkVG9GZXRjaFJlcG9zaXRvcnlHcm91cHMnLCBhcnJheSgndHJpZ2dlcmFi
bGUnID0+ICR0aGlzLT50cmlnZ2VyYWJsZV9pZCkpOwogCiAgICAgICAgICRyZXBvc2l0b3JpZXNf
YnlfZ3JvdXAgPSBhcnJheSgpOworICAgICAgICAkYWNjZXB0c19wYXRjaF9ieV9ncm91cCA9IGFy
cmF5KCk7CiAgICAgICAgIGZvcmVhY2ggKCRyZXBvc2l0b3J5X3Jvd3MgYXMgJiRyb3cpIHsKICAg
ICAgICAgICAgICRncm91cF9pZCA9ICRyb3dbJ3RyaWdyZXBvX2dyb3VwJ107CisgICAgICAgICAg
ICAkcmVwb3NpdG9yeV9pZCA9ICRyb3dbJ3RyaWdyZXBvX3JlcG9zaXRvcnknXTsKICAgICAgICAg
ICAgIGFycmF5X2Vuc3VyZV9pdGVtX2hhc19hcnJheSgkcmVwb3NpdG9yaWVzX2J5X2dyb3VwLCAk
Z3JvdXBfaWQpOwotICAgICAgICAgICAgYXJyYXlfcHVzaCgkcmVwb3NpdG9yaWVzX2J5X2dyb3Vw
WyRncm91cF9pZF0sICRyb3dbJ3RyaWdyZXBvX3JlcG9zaXRvcnknXSk7CisgICAgICAgICAgICBh
cnJheV9wdXNoKCRyZXBvc2l0b3JpZXNfYnlfZ3JvdXBbJGdyb3VwX2lkXSwgJHJlcG9zaXRvcnlf
aWQpOworICAgICAgICAgICAgYXJyYXlfZW5zdXJlX2l0ZW1faGFzX2FycmF5KCRhY2NlcHRzX3Bh
dGNoX2J5X2dyb3VwLCAkZ3JvdXBfaWQpOworICAgICAgICAgICAgJGFjY2VwdHNfcGF0Y2hfYnlf
Z3JvdXBbJGdyb3VwX2lkXVskcmVwb3NpdG9yeV9pZF0gPSBEYXRhYmFzZTo6aXNfdHJ1ZSgkcm93
Wyd0cmlncmVwb19hY2NlcHRzX3BhdGNoJ10pOwogICAgICAgICB9CiAKICAgICAgICAgJHRoaXMt
PnJlcG9zaXRvcmllc19ieV9ncm91cCA9ICYkcmVwb3NpdG9yaWVzX2J5X2dyb3VwOworICAgICAg
ICAkdGhpcy0+YWNjZXB0c19wYXRjaF9ieV9ncm91cCA9ICYkYWNjZXB0c19wYXRjaF9ieV9ncm91
cDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cC5waHAKaW5k
ZXggZTBlNTg0MzAxMDhmZmI5ZGI0NDE4MTE4OWRjZjZjMGNjODM3ZGVkZS4uZjkyZDI4ODE2YzZm
Njg2NDcxMzRkMzkyZGZhMmU0YzdiMmVmZjVlNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cC5waHAKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cC5waHAKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gbWFpbigpCiAgICAgJHBs
YXRmb3JtX2lkID0gYXJyYXlfZ2V0KCRkYXRhLCAncGxhdGZvcm0nKTsKICAgICAkdGVzdF9pZCA9
IGFycmF5X2dldCgkZGF0YSwgJ3Rlc3QnKTsKICAgICAkcmV2aXNpb25fc2V0X2xpc3QgPSBhcnJh
eV9nZXQoJGRhdGEsICdyZXZpc2lvblNldHMnKTsKLSAgICAkY29tbWl0X3NldHNfaW5mbyA9IGFy
cmF5X2dldCgkZGF0YSwgJ2NvbW1pdFNldHMnKTsKKyAgICAkY29tbWl0X3NldHNfaW5mbyA9IGFy
cmF5X2dldCgkZGF0YSwgJ2NvbW1pdFNldHMnKTsgLy8gVjIgVUkgY29tcGF0aWJpbGl0eQogCiAg
ICAgaWYgKCEkdGFza19pZCA9PSAhJHRhc2tfbmFtZSkKICAgICAgICAgZXhpdF93aXRoX2Vycm9y
KCdJbnZhbGlkVGFzaycpOwpAQCAtNDYsNiArNDYsMTIgQEAgZnVuY3Rpb24gbWFpbigpCiAgICAg
ICAgICR0YXNrID0gJGRiLT5zZWxlY3RfZmlyc3Rfcm93KCdhbmFseXNpc190YXNrcycsICd0YXNr
JywgYXJyYXkoJ2lkJyA9PiAkdGFza19pZCkpOwogICAgICAgICBpZiAoISR0YXNrKQogICAgICAg
ICAgICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlkVGFzaycsIGFycmF5KCd0YXNrJyA9PiAkdGFz
a19pZCkpOworCisgICAgICAgICRkdXBsaWNhdGVfdGVzdF9ncm91cCA9ICRkYi0+c2VsZWN0X2Zp
cnN0X3JvdygnYW5hbHlzaXNfdGVzdF9ncm91cHMnLCAndGVzdGdyb3VwJywgYXJyYXkoJ3Rhc2sn
ID0+ICR0YXNrX2lkLCAnbmFtZScgPT4gJG5hbWUpKTsKKyAgICAgICAgaWYgKCRkdXBsaWNhdGVf
dGVzdF9ncm91cCkKKyAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignRHVwbGljYXRlVGVzdEdy
b3VwTmFtZScsIGFycmF5KCd0YXNrJyA9PiAkdGFza19pZCwgJ3Rlc3RHcm91cCcgPT4gJGR1cGxp
Y2F0ZV90ZXN0X2dyb3VwWyd0ZXN0Z3JvdXBfaWQnXSkpOworCisgICAgICAgIC8vIEZJWE1FOiBB
ZGQgYSBjaGVjayBmb3IgZHVwbGljYXRlIHRlc3QgZ3JvdXAgbmFtZS4KICAgICAgICAgJHRyaWdn
ZXJhYmxlID0gZmluZF90cmlnZ2VyYWJsZV9mb3JfdGFzaygkZGIsICR0YXNrX2lkKTsKICAgICAg
ICAgaWYgKCR0cmlnZ2VyYWJsZSkgewogICAgICAgICAgICAgJHRyaWdnZXJhYmxlX2lkID0gJHRy
aWdnZXJhYmxlWydpZCddOwpAQCAtODEsMTAgKzg3LDEyIEBAIGZ1bmN0aW9uIG1haW4oKQogICAg
ICAgICAkdGFza19pZCA9ICRkYi0+aW5zZXJ0X3JvdygnYW5hbHlzaXNfdGFza3MnLCAndGFzaycs
IGFycmF5KCduYW1lJyA9PiAkdGFza19uYW1lLCAnYXV0aG9yJyA9PiAkYXV0aG9yKSk7CiAKICAg
ICAkY29uZmlndXJhdGlvbl9saXN0ID0gYXJyYXkoKTsKKyAgICAkbmVlZHNfdG9fYnVpbGQgPSBG
QUxTRTsKICAgICBmb3JlYWNoICgkY29tbWl0X3NldHMgYXMgJGNvbW1pdF9saXN0KSB7CiAgICAg
ICAgICRjb21taXRfc2V0X2lkID0gJGRiLT5pbnNlcnRfcm93KCdjb21taXRfc2V0cycsICdjb21t
aXRzZXQnLCBhcnJheSgpKTsKICAgICAgICAgZm9yZWFjaCAoJGNvbW1pdF9saXN0WydzZXQnXSBh
cyAkY29tbWl0X3JvdykgewogICAgICAgICAgICAgJGNvbW1pdF9yb3dbJ3NldCddID0gJGNvbW1p
dF9zZXRfaWQ7CisgICAgICAgICAgICAkbmVlZHNfdG9fYnVpbGQgPSAkbmVlZHNfdG9fYnVpbGQg
fHwgJGNvbW1pdF9yb3dbJ3BhdGNoX2ZpbGUnXTsKICAgICAgICAgICAgICRkYi0+aW5zZXJ0X3Jv
dygnY29tbWl0X3NldF9pdGVtcycsICdjb21taXRzZXQnLCAkY29tbWl0X3JvdywgJ2NvbW1pdCcp
OwogICAgICAgICB9CiAgICAgICAgIGFycmF5X3B1c2goJGNvbmZpZ3VyYXRpb25fbGlzdCwgYXJy
YXkoJ2NvbW1pdF9zZXQnID0+ICRjb21taXRfc2V0X2lkLCAncmVwb3NpdG9yeV9ncm91cCcgPT4g
JGNvbW1pdF9saXN0WydyZXBvc2l0b3J5X2dyb3VwJ10pKTsKQEAgLTkzLDYgKzEwMSwyMiBAQCBm
dW5jdGlvbiBtYWluKCkKICAgICAkZ3JvdXBfaWQgPSAkZGItPmluc2VydF9yb3coJ2FuYWx5c2lz
X3Rlc3RfZ3JvdXBzJywgJ3Rlc3Rncm91cCcsCiAgICAgICAgIGFycmF5KCd0YXNrJyA9PiAkdGFz
a19pZCwgJ25hbWUnID0+ICRuYW1lLCAnYXV0aG9yJyA9PiAkYXV0aG9yKSk7CiAKKyAgICBpZiAo
JG5lZWRzX3RvX2J1aWxkKSB7CisgICAgICAgICRvcmRlciA9IC1jb3VudCgkY29uZmlndXJhdGlv
bl9saXN0KTsKKyAgICAgICAgZm9yZWFjaCAoJGNvbmZpZ3VyYXRpb25fbGlzdCBhcyAkY29uZmln
KSB7CisgICAgICAgICAgICBhc3NlcnQoJG9yZGVyIDwgMCk7CisgICAgICAgICAgICAkZGItPmlu
c2VydF9yb3coJ2J1aWxkX3JlcXVlc3RzJywgJ3JlcXVlc3QnLCBhcnJheSgKKyAgICAgICAgICAg
ICAgICAndHJpZ2dlcmFibGUnID0+ICR0cmlnZ2VyYWJsZV9pZCwKKyAgICAgICAgICAgICAgICAn
cmVwb3NpdG9yeV9ncm91cCcgPT4gJGNvbmZpZ1sncmVwb3NpdG9yeV9ncm91cCddLAorICAgICAg
ICAgICAgICAgICdwbGF0Zm9ybScgPT4gJHBsYXRmb3JtX2lkLAorICAgICAgICAgICAgICAgICd0
ZXN0JyA9PiBOVUxMLAorICAgICAgICAgICAgICAgICdncm91cCcgPT4gJGdyb3VwX2lkLAorICAg
ICAgICAgICAgICAgICdvcmRlcicgPT4gJG9yZGVyLAorICAgICAgICAgICAgICAgICdjb21taXRf
c2V0JyA9PiAkY29uZmlnWydjb21taXRfc2V0J10pKTsKKyAgICAgICAgICAgICRvcmRlcisrOwor
ICAgICAgICB9ICAgICAgICAKKyAgICB9CisKICAgICAkb3JkZXIgPSAwOwogICAgIGZvciAoJGkg
PSAwOyAkaSA8ICRyZXBldGl0aW9uX2NvdW50OyAkaSsrKSB7CiAgICAgICAgIGZvcmVhY2ggKCRj
b25maWd1cmF0aW9uX2xpc3QgYXMgJGNvbmZpZykgewpAQCAtMTAzLDcgKzEyNyw3IEBAIGZ1bmN0
aW9uIG1haW4oKQogICAgICAgICAgICAgICAgICd0ZXN0JyA9PiAkdGVzdF9pZCwKICAgICAgICAg
ICAgICAgICAnZ3JvdXAnID0+ICRncm91cF9pZCwKICAgICAgICAgICAgICAgICAnb3JkZXInID0+
ICRvcmRlciwKLSAgICAgICAgICAgICAgICAnY29tbWl0X3NldCcgPT4gJGNvbmZpZ1snY29tbWl0
X3NldCddLCkpOworICAgICAgICAgICAgICAgICdjb21taXRfc2V0JyA9PiAkY29uZmlnWydjb21t
aXRfc2V0J10pKTsKICAgICAgICAgICAgICRvcmRlcisrOwogICAgICAgICB9CiAgICAgfQpAQCAt
MTI2LDIzICsxNTAsMzkgQEAgZnVuY3Rpb24gY29tbWl0X3NldHNfZnJvbV9yZXZpc2lvbl9zZXRz
KCRkYiwgJHRyaWdnZXJhYmxlX2lkLCAkcmV2aXNpb25fc2V0X2xpc3QKIAogICAgICAgICAkY29t
bWl0X3NldCA9IGFycmF5KCk7CiAgICAgICAgICRyZXBvc2l0b3J5X2xpc3QgPSBhcnJheSgpOwot
ICAgICAgICBmb3JlYWNoICgkcmV2aXNpb25fc2V0IGFzICRyZXBvc2l0b3J5X2lkID0+ICRyZXZp
c2lvbikgeworICAgICAgICAkcmVwb3NpdG9yeV93aXRoX3BhdGNoID0gYXJyYXkoKTsKKyAgICAg
ICAgZm9yZWFjaCAoJHJldmlzaW9uX3NldCBhcyAkcmVwb3NpdG9yeV9pZCA9PiAkZGF0YSkgewog
ICAgICAgICAgICAgaWYgKCRyZXBvc2l0b3J5X2lkID09ICdjdXN0b21Sb290cycpIHsKLSAgICAg
ICAgICAgICAgICAkZmlsZV9pZF9saXN0ID0gJHJldmlzaW9uOworICAgICAgICAgICAgICAgICRm
aWxlX2lkX2xpc3QgPSAkZGF0YTsKICAgICAgICAgICAgICAgICBmb3JlYWNoICgkZmlsZV9pZF9s
aXN0IGFzICRmaWxlX2lkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghJGRiLT5zZWxlY3Rf
Zmlyc3Rfcm93KCd1cGxvYWRlZF9maWxlcycsICdmaWxlJywgYXJyYXkoJ2lkJyA9PiAkZmlsZV9p
ZCkpKQorICAgICAgICAgICAgICAgICAgICBpZiAoIWlzX251bWVyaWMoJGZpbGVfaWQpIHx8ICEk
ZGItPnNlbGVjdF9maXJzdF9yb3coJ3VwbG9hZGVkX2ZpbGVzJywgJ2ZpbGUnLCBhcnJheSgnaWQn
ID0+ICRmaWxlX2lkKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3Io
J0ludmFsaWRVcGxvYWRlZEZpbGUnLCBhcnJheSgnZmlsZScgPT4gJGZpbGVfaWQpKTsKLSAgICAg
ICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkY29tbWl0X3NldCwgYXJyYXkoJ3Jvb3RfZmlsZScg
PT4gJGZpbGVfaWQpKTsKKyAgICAgICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkY29tbWl0X3Nl
dCwgYXJyYXkoJ3Jvb3RfZmlsZScgPT4gJGZpbGVfaWQsICdwYXRjaF9maWxlJyA9PiBOVUxMKSk7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgaWYgKCFpc19udW1lcmljKCRyZXBvc2l0b3J5X2lkKSkKICAgICAg
ICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRSZXBvc2l0b3J5JywgYXJyYXkoJ3Jl
cG9zaXRvcnknID0+ICRyZXBvc2l0b3J5X2lkKSk7CisKKyAgICAgICAgICAgIGlmICghaXNfYXJy
YXkoJGRhdGEpKQorICAgICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZFJlcG9z
aXRvcnlEYXRhJywgYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5X2lkLCAnZGF0YScg
PT4gJGRhdGEpKTsKKworICAgICAgICAgICAgJHJldmlzaW9uID0gYXJyYXlfZ2V0KCRkYXRhLCAn
cmV2aXNpb24nKTsKKyAgICAgICAgICAgIGlmICghJHJldmlzaW9uKQorICAgICAgICAgICAgICAg
IGV4aXRfd2l0aF9lcnJvcignSW52YWxpZFJldmlzaW9uJywgYXJyYXkoJ3JlcG9zaXRvcnknID0+
ICRyZXBvc2l0b3J5X2lkLCAnZGF0YScgPT4gJGRhdGEpKTsKICAgICAgICAgICAgICRjb21taXQg
PSAkZGItPnNlbGVjdF9maXJzdF9yb3coJ2NvbW1pdHMnLCAnY29tbWl0JywKICAgICAgICAgICAg
ICAgICBhcnJheSgncmVwb3NpdG9yeScgPT4gaW50dmFsKCRyZXBvc2l0b3J5X2lkKSwgJ3Jldmlz
aW9uJyA9PiAkcmV2aXNpb24pKTsKICAgICAgICAgICAgIGlmICghJGNvbW1pdCkKICAgICAgICAg
ICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ1JldmlzaW9uTm90Rm91bmQnLCBhcnJheSgncmVwb3Np
dG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uKSk7Ci0gICAg
ICAgICAgICBhcnJheV9wdXNoKCRjb21taXRfc2V0LCBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0
Wydjb21taXRfaWQnXSkpOworCisgICAgICAgICAgICAkcGF0Y2hfZmlsZV9pZCA9IGFycmF5X2dl
dCgkZGF0YSwgJ3BhdGNoJyk7CisgICAgICAgICAgICBpZiAoJHBhdGNoX2ZpbGVfaWQpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoIWlzX251bWVyaWMoJHBhdGNoX2ZpbGVfaWQpIHx8ICEkZGItPnNl
bGVjdF9maXJzdF9yb3coJ3VwbG9hZGVkX2ZpbGVzJywgJ2ZpbGUnLCBhcnJheSgnaWQnID0+ICRw
YXRjaF9maWxlX2lkKSkpCisgICAgICAgICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52
YWxpZFBhdGNoRmlsZScsIGFycmF5KCdwYXRjaCcgPT4gJHBhdGNoX2ZpbGVfaWQpKTsKKyAgICAg
ICAgICAgICAgICBhcnJheV9wdXNoKCRyZXBvc2l0b3J5X3dpdGhfcGF0Y2gsICRyZXBvc2l0b3J5
X2lkKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXJyYXlfcHVzaCgkY29tbWl0X3Nl
dCwgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdFsnY29tbWl0X2lkJ10sICdwYXRjaF9maWxlJyA9
PiAkcGF0Y2hfZmlsZV9pZCkpOwogICAgICAgICAgICAgYXJyYXlfcHVzaCgkcmVwb3NpdG9yeV9s
aXN0LCAkcmVwb3NpdG9yeV9pZCk7CiAgICAgICAgIH0KIApAQCAtMTUwLDYgKzE5MCwxMSBAQCBm
dW5jdGlvbiBjb21taXRfc2V0c19mcm9tX3JldmlzaW9uX3NldHMoJGRiLCAkdHJpZ2dlcmFibGVf
aWQsICRyZXZpc2lvbl9zZXRfbGlzdAogICAgICAgICBpZiAoISRyZXBvc2l0b3J5X2dyb3VwX2lk
KQogICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdOb01hdGNoaW5nUmVwb3NpdG9yeUdyb3Vw
JywgYXJyYXkoJ3JlcG9zaXRvcmlzJyA9PiAkcmVwb3NpdG9yeV9saXN0KSk7CiAKKyAgICAgICAg
Zm9yZWFjaCAoJHJlcG9zaXRvcnlfd2l0aF9wYXRjaCBhcyAkcmVwb3NpdG9yeV9pZCkgeworICAg
ICAgICAgICAgaWYgKCEkZmluZGVyLT5hY2NlcHRzX3BhdGNoKCRyZXBvc2l0b3J5X2dyb3VwX2lk
LCAkcmVwb3NpdG9yeV9pZCkpCisgICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdQYXRj
aE5vdEFjY2VwdGVkJywgYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5X2lkLCAncmVw
b3NpdG9yeUdyb3VwJyA9PiAkcmVwb3NpdG9yeV9ncm91cF9pZCkpOworICAgICAgICB9CisKICAg
ICAgICAgYXJyYXlfcHVzaCgkY29tbWl0X3NldF9saXN0LCBhcnJheSgncmVwb3NpdG9yeV9ncm91
cCcgPT4gJHJlcG9zaXRvcnlfZ3JvdXBfaWQsICdzZXQnID0+ICRjb21taXRfc2V0KSk7CiAgICAg
fQogCkBAIC0xNzQsNyArMjE5LDcgQEAgZnVuY3Rpb24gZW5zdXJlX2NvbW1pdF9zZXRzKCRkYiwg
JHRyaWdnZXJhYmxlX2lkLCAkY29tbWl0X3NldHNfaW5mbykgewogICAgICAgICAgICAgaWYgKCEk
Y29tbWl0KQogICAgICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignUmV2aXNpb25Ob3RGb3Vu
ZCcsIGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9uYW1lLCAncmV2aXNpb24nID0+
ICRyZXZpc2lvbikpOwogICAgICAgICAgICAgYXJyYXlfc2V0X2RlZmF1bHQoJGNvbW1pdF9zZXRz
LCAkaSwgYXJyYXkoJ3NldCcgPT4gYXJyYXkoKSkpOwotICAgICAgICAgICAgYXJyYXlfcHVzaCgk
Y29tbWl0X3NldHNbJGldWydzZXQnXSwgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdFsnY29tbWl0
X2lkJ10pKTsKKyAgICAgICAgICAgIGFycmF5X3B1c2goJGNvbW1pdF9zZXRzWyRpXVsnc2V0J10s
IGFycmF5KCdjb21taXQnID0+ICRjb21taXRbJ2NvbW1pdF9pZCddLCAncGF0Y2hfZmlsZScgPT4g
TlVMTCkpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9tLWFuYWx5c2lzLXRhc2stY29uZmln
dXJhdG9yLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRz
L2N1c3RvbS1hbmFseXNpcy10YXNrLWNvbmZpZ3VyYXRvci5qcwppbmRleCBkMzI4NzY5ZDkyZTg3
YmU2NTcxNWExOTY5OTBmNmY5YjdmZmJiNjkyLi5jYWI2OGFkN2IwNGY2NTMzM2ZlYzM5MjQzNjRj
MDIzNDg4NWIyNmNmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL2NvbXBvbmVudHMvY3VzdG9tLWFuYWx5c2lzLXRhc2stY29uZmlndXJhdG9yLmpzCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tYW5h
bHlzaXMtdGFzay1jb25maWd1cmF0b3IuanMKQEAgLTExLDYgKzExLDcgQEAgY2xhc3MgQ3VzdG9t
QW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAg
IHRoaXMuX3Nob3dDb21wYXJpc29uID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2NvbW1pdFNldE1h
cCA9IHt9OwogICAgICAgICB0aGlzLl9zcGVjaWZpZWRSZXZpc2lvbnMgPSB7J0Jhc2VsaW5lJzog
bmV3IE1hcCwgJ0NvbXBhcmlzb24nOiBuZXcgTWFwfTsKKyAgICAgICAgdGhpcy5fcGF0Y2hVcGxv
YWRlcnMgPSB7J0Jhc2VsaW5lJzogbmV3IE1hcCwgJ0NvbXBhcmlzb24nOiBuZXcgTWFwfTsKICAg
ICAgICAgdGhpcy5fZmV0Y2hlZFJldmlzaW9ucyA9IHsnQmFzZWxpbmUnOiBuZXcgTWFwLCAnQ29t
cGFyaXNvbic6IG5ldyBNYXB9OwogICAgICAgICB0aGlzLl9yZXBvc2l0b3J5R3JvdXBCeUNvbmZp
Z3VyYXRpb24gPSB7J0Jhc2VsaW5lJzogbnVsbCwgJ0NvbXBhcmlzb24nOiBudWxsfTsKICAgICAg
ICAgdGhpcy5fdXBkYXRlVHJpZ2dlcmFibGVMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVu
Y3Rpb24odGhpcy5fdXBkYXRlVHJpZ2dlcmFibGUuYmluZCh0aGlzKSk7CkBAIC0xOSw3ICsyMCw3
IEBAIGNsYXNzIEN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvciBleHRlbmRzIENvbXBvbmVu
dEJhc2UgewogICAgICAgICB0aGlzLl9yZW5kZXJUcmlnZ2VyYWJsZVBsYXRmb3Jtc0xhemlseSA9
IG5ldyBMYXppbHlFdmFsdWF0ZWRGdW5jdGlvbih0aGlzLl9yZW5kZXJUcmlnZ2VyYWJsZVBsYXRm
b3Jtcy5iaW5kKHRoaXMpKTsKICAgICAgICAgdGhpcy5fcmVuZGVyUmVwb3NpdG9yeVBhbmVzTGF6
aWx5ID0gbmV3IExhemlseUV2YWx1YXRlZEZ1bmN0aW9uKHRoaXMuX3JlbmRlclJlcG9zaXRvcnlQ
YW5lcy5iaW5kKHRoaXMpKTsKIAotICAgICAgICB0aGlzLl9maWxlVXBsb2FkZXJzID0ge307Cisg
ICAgICAgIHRoaXMuX2N1c3RvbVJvb3RVcGxvYWRlcnMgPSB7fTsKICAgICB9CiAKICAgICB0ZXN0
cygpIHsgcmV0dXJuIHRoaXMuX3NlbGVjdGVkVGVzdHM7IH0KQEAgLTY0LDE0ICs2NSwxNCBAQCBj
bGFzcyBDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3IgZXh0ZW5kcyBDb21wb25lbnRCYXNl
IHsKICAgICAgICAgY29uc3QgYmFzZWxpbmVSZXBvc2l0b3J5R3JvdXAgPSB0cmlnZ2VyYWJsZS5y
ZXBvc2l0b3J5R3JvdXBzKCkuZmluZCgocmVwb3NpdG9yeUdyb3VwKSA9PiByZXBvc2l0b3J5R3Jv
dXAuYWNjZXB0cyhiYXNlbGluZUNvbW1pdFNldCkpOwogICAgICAgICBpZiAoYmFzZWxpbmVSZXBv
c2l0b3J5R3JvdXApIHsKICAgICAgICAgICAgIHRoaXMuX3JlcG9zaXRvcnlHcm91cEJ5Q29uZmln
dXJhdGlvblsnQmFzZWxpbmUnXSA9IGJhc2VsaW5lUmVwb3NpdG9yeUdyb3VwOwotICAgICAgICAg
ICAgdGhpcy5fc2V0VXBsb2FkZWRGaWxlc0lmRW1wdHkodGhpcy5fZmlsZVVwbG9hZGVyc1snQmFz
ZWxpbmUnXSwgYmFzZWxpbmVDb21taXRTZXQpOworICAgICAgICAgICAgdGhpcy5fc2V0VXBsb2Fk
ZWRGaWxlc0lmRW1wdHkodGhpcy5fY3VzdG9tUm9vdFVwbG9hZGVyc1snQmFzZWxpbmUnXSwgYmFz
ZWxpbmVDb21taXRTZXQpOwogICAgICAgICAgICAgdGhpcy5fc3BlY2lmaWVkUmV2aXNpb25zWydC
YXNlbGluZSddID0gdGhpcy5fcmV2aXNpb25NYXBGcm9tQ29tbWl0U2V0KGJhc2VsaW5lQ29tbWl0
U2V0KTsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IGNvbXBhcmlzb25SZXBvc2l0b3J5R3Jv
dXAgPSB0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCkuZmluZCgocmVwb3NpdG9yeUdyb3Vw
KSA9PiByZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhiYXNlbGluZUNvbW1pdFNldCkpOwogICAgICAg
ICBpZiAoY29tcGFyaXNvblJlcG9zaXRvcnlHcm91cCkgewogICAgICAgICAgICAgdGhpcy5fcmVw
b3NpdG9yeUdyb3VwQnlDb25maWd1cmF0aW9uWydDb21wYXJpc29uJ10gPSBjb21wYXJpc29uUmVw
b3NpdG9yeUdyb3VwOwotICAgICAgICAgICAgdGhpcy5fc2V0VXBsb2FkZWRGaWxlc0lmRW1wdHko
dGhpcy5fZmlsZVVwbG9hZGVyc1snQ29tcGFyaXNvbiddLCBjb21wYXJpc29uQ29tbWl0U2V0KTsK
KyAgICAgICAgICAgIHRoaXMuX3NldFVwbG9hZGVkRmlsZXNJZkVtcHR5KHRoaXMuX2N1c3RvbVJv
b3RVcGxvYWRlcnNbJ0NvbXBhcmlzb24nXSwgY29tcGFyaXNvbkNvbW1pdFNldCk7CiAgICAgICAg
ICAgICB0aGlzLl9zcGVjaWZpZWRSZXZpc2lvbnNbJ0NvbXBhcmlzb24nXSA9IHRoaXMuX3Jldmlz
aW9uTWFwRnJvbUNvbW1pdFNldChjb21wYXJpc29uQ29tbWl0U2V0KTsKICAgICAgICAgfQogCkBA
IC05OSwxOCArMTAwLDQxIEBAIGNsYXNzIEN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvciBl
eHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgIHsKICAgICAgICAgdGhpcy5jb250ZW50KCdzcGVj
aWZ5LWNvbXBhcmlzb24tYnV0dG9uJykub25jbGljayA9IHRoaXMuY3JlYXRlRXZlbnRIYW5kbGVy
KCgpID0+IHRoaXMuX2NvbmZpZ3VyZUNvbXBhcmlzb24oKSk7CiAKLSAgICAgICAgY29uc3QgYmFz
ZWxpbmVSb290c1VwbG9hZGVyID0gbmV3IEluc3RhbnRGaWxlVXBsb2FkZXI7CisgICAgICAgIGNv
bnN0IGNyZWF0ZVJvb3RVcGxvYWRlciA9ICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHVwbG9h
ZGVyID0gbmV3IEluc3RhbnRGaWxlVXBsb2FkZXI7CisgICAgICAgICAgICB1cGxvYWRlci5hbGxv
d011bHRpcGxlRmlsZXMoKTsKKyAgICAgICAgICAgIHVwbG9hZGVyLmVsZW1lbnQoKS50ZXh0Q29u
dGVudCA9ICdBZGQgYSBuZXcgcm9vdCc7CisgICAgICAgICAgICB1cGxvYWRlci5saXN0ZW5Ub0Fj
dGlvbigncmVtb3ZlZEZpbGUnLCAoKSA9PiB0aGlzLl91cGRhdGVDb21taXRTZXRNYXAoKSk7Cisg
ICAgICAgICAgICByZXR1cm4gdXBsb2FkZXI7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBi
YXNlbGluZVJvb3RzVXBsb2FkZXIgPSBjcmVhdGVSb290VXBsb2FkZXIoKTsKICAgICAgICAgYmFz
ZWxpbmVSb290c1VwbG9hZGVyLmxpc3RlblRvQWN0aW9uKCd1cGxvYWRlZEZpbGUnLCAodXBsb2Fk
ZWRGaWxlKSA9PiB7CiAgICAgICAgICAgICBjb21wYXJpc29uUm9vdHNVcGxvYWRlci5hZGRVcGxv
YWRlZEZpbGUodXBsb2FkZWRGaWxlKTsKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUNvbW1pdFNl
dE1hcCgpOwogICAgICAgICB9KTsKLSAgICAgICAgYmFzZWxpbmVSb290c1VwbG9hZGVyLmxpc3Rl
blRvQWN0aW9uKCdyZW1vdmVkRmlsZScsICgpID0+IHRoaXMuX3VwZGF0ZUNvbW1pdFNldE1hcCgp
KTsKLSAgICAgICAgdGhpcy5fZmlsZVVwbG9hZGVyc1snQmFzZWxpbmUnXSA9IGJhc2VsaW5lUm9v
dHNVcGxvYWRlcjsKIAotICAgICAgICBjb25zdCBjb21wYXJpc29uUm9vdHNVcGxvYWRlciA9IG5l
dyBJbnN0YW50RmlsZVVwbG9hZGVyOworICAgICAgICB0aGlzLl9jdXN0b21Sb290VXBsb2FkZXJz
WydCYXNlbGluZSddID0gYmFzZWxpbmVSb290c1VwbG9hZGVyOworCisgICAgICAgIGNvbnN0IGNv
bXBhcmlzb25Sb290c1VwbG9hZGVyID0gY3JlYXRlUm9vdFVwbG9hZGVyKCk7CiAgICAgICAgIGNv
bXBhcmlzb25Sb290c1VwbG9hZGVyLmxpc3RlblRvQWN0aW9uKCd1cGxvYWRlZEZpbGUnLCAoKSA9
PiB0aGlzLl91cGRhdGVDb21taXRTZXRNYXAoKSk7Ci0gICAgICAgIGNvbXBhcmlzb25Sb290c1Vw
bG9hZGVyLmxpc3RlblRvQWN0aW9uKCdyZW1vdmVkRmlsZScsICgpID0+IHRoaXMuX3VwZGF0ZUNv
bW1pdFNldE1hcCgpKTsKLSAgICAgICAgdGhpcy5fZmlsZVVwbG9hZGVyc1snQ29tcGFyaXNvbidd
ID0gY29tcGFyaXNvblJvb3RzVXBsb2FkZXI7CisgICAgICAgIHRoaXMuX2N1c3RvbVJvb3RVcGxv
YWRlcnNbJ0NvbXBhcmlzb24nXSA9IGNvbXBhcmlzb25Sb290c1VwbG9hZGVyOworICAgIH0KKwor
ICAgIF9lbnN1cmVQYXRjaFVwbG9hZGVyKGNvbmZpZ3VyYXRpb25OYW1lLCByZXBvc2l0b3J5KQor
ICAgIHsKKyAgICAgICAgY29uc3QgdXBsb2FkZXJNYXAgPSB0aGlzLl9wYXRjaFVwbG9hZGVyc1tj
b25maWd1cmF0aW9uTmFtZV07CisgICAgICAgIGxldCB1cGxvYWRlciA9IHVwbG9hZGVyTWFwLmdl
dChyZXBvc2l0b3J5KTsKKyAgICAgICAgaWYgKHVwbG9hZGVyKQorICAgICAgICAgICAgcmV0dXJu
IHVwbG9hZGVyOworCisgICAgICAgIHVwbG9hZGVyID0gbmV3IEluc3RhbnRGaWxlVXBsb2FkZXI7
CisgICAgICAgIHVwbG9hZGVyLmVsZW1lbnQoKS50ZXh0Q29udGVudCA9ICdBcHBseSBhIHBhdGNo
JzsKKyAgICAgICAgdXBsb2FkZXIubGlzdGVuVG9BY3Rpb24oJ3VwbG9hZGVkRmlsZScsICgpID0+
IHRoaXMuX3VwZGF0ZUNvbW1pdFNldE1hcCgpKTsKKyAgICAgICAgdXBsb2FkZXIubGlzdGVuVG9B
Y3Rpb24oJ3JlbW92ZWRGaWxlJywgKCkgPT4gdGhpcy5fdXBkYXRlQ29tbWl0U2V0TWFwKCkpOwor
ICAgICAgICB1cGxvYWRlck1hcC5zZXQocmVwb3NpdG9yeSwgdXBsb2FkZXIpOworCisgICAgICAg
IHJldHVybiB1cGxvYWRlcjsKICAgICB9CiAKICAgICBfY29uZmlndXJlQ29tcGFyaXNvbigpCkBA
IC0yNjgsNyArMjkyLDcgQEAgY2xhc3MgQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yIGV4
dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIGlmICghcmVwb3NpdG9yeUdyb3VwKQogICAg
ICAgICAgICAgcmV0dXJuIG51bGw7CiAKLSAgICAgICAgY29uc3QgZmlsZVVwbG9hZGVyID0gdGhp
cy5fZmlsZVVwbG9hZGVyc1tjb25maWd1cmF0aW9uTmFtZV07CisgICAgICAgIGNvbnN0IGZpbGVV
cGxvYWRlciA9IHRoaXMuX2N1c3RvbVJvb3RVcGxvYWRlcnNbY29uZmlndXJhdGlvbk5hbWVdOwog
ICAgICAgICBpZiAoIWZpbGVVcGxvYWRlciB8fCBmaWxlVXBsb2FkZXIuaGFzRmlsZVRvVXBsb2Fk
KCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKIApAQCAtMjc5LDcgKzMwMywxOCBAQCBjbGFz
cyBDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3IgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsK
ICAgICAgICAgICAgICAgICByZXZpc2lvbiA9IHRoaXMuX2ZldGNoZWRSZXZpc2lvbnNbY29uZmln
dXJhdGlvbk5hbWVdLmdldChyZXBvc2l0b3J5KTsKICAgICAgICAgICAgIGlmICghcmV2aXNpb24p
CiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICBjb21taXRTZXQuc2V0
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnksIHJldmlzaW9uKTsKKyAgICAgICAgICAg
IGxldCBwYXRjaCA9IG51bGw7CisgICAgICAgICAgICBpZiAocmVwb3NpdG9yeUdyb3VwLmFjY2Vw
dHNQYXRjaEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkpIHsKKyAgICAgICAgICAgICAgICBjb25z
dCB1cGxvYWRlck1hcCA9IHRoaXMuX3BhdGNoVXBsb2FkZXJzW2NvbmZpZ3VyYXRpb25OYW1lXTsK
KyAgICAgICAgICAgICAgICBjb25zdCB1cGxvYWRlciA9IHVwbG9hZGVyTWFwLmdldChyZXBvc2l0
b3J5KTsKKyAgICAgICAgICAgICAgICBpZiAodXBsb2FkZXIpIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZmlsZXMgPSB1cGxvYWRlci51cGxvYWRlZEZpbGVzKCk7CisgICAgICAgICAgICAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZpbGVzLmxlbmd0aCA8PSAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGZpbGVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoID0g
ZmlsZXNbMF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAg
Y29tbWl0U2V0LnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5LCByZXZpc2lvbiwg
cGF0Y2gpOwogICAgICAgICB9CiAKICAgICAgICAgZm9yIChsZXQgdXBsb2FkZWRGaWxlIG9mIGZp
bGVVcGxvYWRlci51cGxvYWRlZEZpbGVzKCkpCkBAIC0zNTEsNyArMzg2LDcgQEAgY2xhc3MgQ3Vz
dG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAg
ICAgIGNvbnN0IGN1c3RvbVJvb3RzVEJvZHkgPSBlbGVtZW50KCd0Ym9keScsIFsKICAgICAgICAg
ICAgIGVsZW1lbnQoJ3RyJywgWwogICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3RoJywgJ1Jvb3Rz
JyksCi0gICAgICAgICAgICAgICAgZWxlbWVudCgndGQnLCB0aGlzLl9maWxlVXBsb2FkZXJzW2Nv
bmZpZ3VyYXRpb25OYW1lXSksCisgICAgICAgICAgICAgICAgZWxlbWVudCgndGQnLCB0aGlzLl9j
dXN0b21Sb290VXBsb2FkZXJzW2NvbmZpZ3VyYXRpb25OYW1lXSksCiAgICAgICAgICAgICBdKSwK
ICAgICAgICAgXSk7CiAKQEAgLTM3MSw5ICs0MDYsMTUgQEAgY2xhc3MgQ3VzdG9tQW5hbHlzaXNU
YXNrQ29uZmlndXJhdG9yIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgICAgICAhYWx3
YXlzQWNjZXB0c0N1c3RvbVJvb3RzICYmIGN1cnJlbnRHcm91cCAmJiBjdXJyZW50R3JvdXAuYWNj
ZXB0c0N1c3RvbVJvb3RzKCkgPyBjdXN0b21Sb290c1RCb2R5IDogW10sCiAgICAgICAgICAgICBl
bGVtZW50KCd0Ym9keScsCiAgICAgICAgICAgICAgICAgb3B0aW9uYWxSZXBvc2l0b3J5TGlzdC5t
YXAoKHJlcG9zaXRvcnkpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHVwbG9hZGVyID0g
Y3VycmVudEdyb3VwLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgID8gdGhpcy5fZW5zdXJlUGF0Y2hVcGxvYWRlcihjb25maWd1cmF0
aW9uTmFtZSwgcmVwb3NpdG9yeSkgOiBudWxsOworCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBlbGVtZW50KCd0cicsWwogICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgndGgnLCBy
ZXBvc2l0b3J5Lm5hbWUoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50KCd0ZCcs
IHRoaXMuX2J1aWxkUmV2aXNpb25JbnB1dChjb25maWd1cmF0aW9uTmFtZSwgcmVwb3NpdG9yeSwg
cGxhdGZvcm0pKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgndGQnLCBbCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYnVpbGRSZXZpc2lvbklucHV0KGNvbmZpZ3Vy
YXRpb25OYW1lLCByZXBvc2l0b3J5LCBwbGF0Zm9ybSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdXBsb2FkZXIgfHwgW10sCisgICAgICAgICAgICAgICAgICAgICAgICBdKQogICAgICAg
ICAgICAgICAgICAgICBdKTsKICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgKV07CkBA
IC01NDQsMTQgKzU4NSwxMCBAQCBjbGFzcyBDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3Ig
ZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAucmV2aXNpb24tdGFibGUgdGJvZHkgdHI6Zmly
c3QtY2hpbGQgdGQsCi0gICAgICAgICAgICAucmV2aXNpb24tdGFibGUgdGJvZHkgdHI6Zmlyc3Qt
Y2hpbGQgdGggeworICAgICAgICAgICAgLnJldmlzaW9uLXRhYmxlIHRib2R5IHRkLAorICAgICAg
ICAgICAgLnJldmlzaW9uLXRhYmxlIHRib2R5IHRoIHsKICAgICAgICAgICAgICAgICBib3JkZXIt
dG9wOiBzb2xpZCAxcHggI2RkZDsKICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVt
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAucmV2aXNpb24tdGFibGUgdGJvZHkgdHI6
bGFzdC1jaGlsZCB0ZCwKLSAgICAgICAgICAgIC5yZXZpc2lvbi10YWJsZSB0Ym9keSB0cjpsYXN0
LWNoaWxkIHRoIHsKICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtOwogICAg
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL2NvbXBvbmVudHMvaW5zdGFudC1maWxlLXVwbG9hZGVyLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2luc3RhbnQtZmlsZS11cGxvYWRlci5qcwpp
bmRleCA2NDY4OGRjZDgyODdhNGY0MGMwNDcyYTg0MTkxYWQxNTdhNDNkNWZkLi5kYWVmNGE1OTdj
NWIxYmViYWE0OGFmZDMzYTJhMTA0MjAzZjNiYzc1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvaW5zdGFudC1maWxlLXVwbG9hZGVyLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9pbnN0
YW50LWZpbGUtdXBsb2FkZXIuanMKQEAgLTIsNiArMiw4IEBAIGNsYXNzIEluc3RhbnRGaWxlVXBs
b2FkZXIgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICBjb25zdHJ1Y3RvcigpCiAgICAgewog
ICAgICAgICBzdXBlcignaW5zdGFudC1maWxlLXVwbG9hZGVyJyk7CisgICAgICAgIHRoaXMuX2Zp
bGVJbnB1dCA9IG51bGw7CisgICAgICAgIHRoaXMuX2FsbG93TXVsdGlwbGVGaWxlcyA9IGZhbHNl
OwogICAgICAgICB0aGlzLl91cGxvYWRlZEZpbGVzID0gW107CiAgICAgICAgIHRoaXMuX3ByZXVw
bG9hZEZpbGVzID0gW107CiAgICAgICAgIHRoaXMuX3VwbG9hZFByb2dyZXNzID0gbmV3IFdlYWtN
YXA7CkBAIC0xNCw2ICsxNiwxMiBAQCBjbGFzcyBJbnN0YW50RmlsZVVwbG9hZGVyIGV4dGVuZHMg
Q29tcG9uZW50QmFzZSB7CiAgICAgaGFzRmlsZVRvVXBsb2FkKCkgeyByZXR1cm4gISF0aGlzLl9w
cmV1cGxvYWRGaWxlcy5sZW5ndGg7IH0KICAgICB1cGxvYWRlZEZpbGVzKCkgeyByZXR1cm4gdGhp
cy5fdXBsb2FkZWRGaWxlczsgfQogCisgICAgYWxsb3dNdWx0aXBsZUZpbGVzKCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX2FsbG93TXVsdGlwbGVGaWxlcyA9IHRydWU7CisgICAgICAgIHRoaXMuZW5x
dWV1ZVRvUmVuZGVyKCk7CisgICAgfQorCiAgICAgYWRkVXBsb2FkZWRGaWxlKHVwbG9hZGVkRmls
ZSkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHVwbG9hZGVkRmlsZSBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7CkBAIC0yNSw4ICszMywxMyBAQCBjbGFzcyBJbnN0YW50RmlsZVVwbG9h
ZGVyIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAKICAgICBkaWRDb25zdHJ1Y3RTaGFkb3dUcmVl
KCkKICAgICB7Ci0gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5jb250ZW50KCdmaWxlLWlucHV0
Jyk7Ci0gICAgICAgIGlucHV0Lm9uY2hhbmdlID0gKCkgPT4gdGhpcy5fZGlkRmlsZUlucHV0Q2hh
bmdlKGlucHV0KTsKKyAgICAgICAgdGhpcy5jb250ZW50KCdmaWxlLWFkZGVyJykub25jbGljayA9
ICgpID0+IHsKKyAgICAgICAgICAgIGlucHV0RWxlbWVudC5jbGljaygpOworICAgICAgICB9Cisg
ICAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0
Jyk7CisgICAgICAgIGlucHV0RWxlbWVudC50eXBlID0gJ2ZpbGUnOworICAgICAgICBpbnB1dEVs
ZW1lbnQub25jaGFuZ2UgPSAoKSA9PiB0aGlzLl9kaWRGaWxlSW5wdXRDaGFuZ2UoaW5wdXRFbGVt
ZW50KTsKKyAgICAgICAgdGhpcy5fZmlsZUlucHV0ID0gaW5wdXRFbGVtZW50OwogICAgIH0KIAog
ICAgIHJlbmRlcigpCkBAIC0zNCw2ICs0Nyw4IEBAIGNsYXNzIEluc3RhbnRGaWxlVXBsb2FkZXIg
ZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgdGhpcy5fcmVuZGVyVXBsb2FkZWRGaWxl
c0xhemlseS5ldmFsdWF0ZSguLi50aGlzLl91cGxvYWRlZEZpbGVzKTsKICAgICAgICAgY29uc3Qg
dXBsb2FkU3RhdHVzRWxlbWVudHMgPSB0aGlzLl9yZW5kZXJQcmV1cGxvYWRGaWxlc0xhemlseS5l
dmFsdWF0ZSguLi50aGlzLl9wcmV1cGxvYWRGaWxlcyk7CiAgICAgICAgIHRoaXMuX3VwZGF0ZVVw
bG9hZFN0YXR1cyh1cGxvYWRTdGF0dXNFbGVtZW50cyk7CisgICAgICAgIGNvbnN0IGZpbGVDb3Vu
dCA9IHRoaXMuX3VwbG9hZGVkRmlsZXMubGVuZ3RoICsgdGhpcy5fcHJldXBsb2FkRmlsZXMubGVu
Z3RoOworICAgICAgICB0aGlzLmNvbnRlbnQoJ2ZpbGUtYWRkZXInKS5zdHlsZS5kaXNwbGF5ID0g
dGhpcy5fYWxsb3dNdWx0aXBsZUZpbGVzIHx8ICFmaWxlQ291bnQgPyBudWxsIDogJ25vbmUnOwog
ICAgIH0KIAogICAgIF9yZW5kZXJVcGxvYWRlZEZpbGVzKC4uLnVwbG9hZGVkRmlsZXMpCkBAIC0x
NjcsNyArMTgyLDcgQEAgY2xhc3MgSW5zdGFudEZpbGVVcGxvYWRlciBleHRlbmRzIENvbXBvbmVu
dEJhc2UgewogICAgIHsKICAgICAgICAgcmV0dXJuIGA8dWwgaWQ9InVwbG9hZGVkLWZpbGVzIj48
L3VsPgogICAgICAgICAgICAgPHVsIGlkPSJwcmV1cGxvYWQtZmlsZXMiPjwvdWw+Ci0gICAgICAg
ICAgICA8aW5wdXQgaWQ9ImZpbGUtaW5wdXQiIHR5cGU9ImZpbGUiIG11bHRpcGxlPSJmYWxzZSI+
YDsKKyAgICAgICAgICAgIDxidXR0b24gaWQ9ImZpbGUtYWRkZXIiPjxzbG90PkFkZCBhIG5ldyBm
aWxlPC9zbG90PjwvYnV0dG9uPmA7CiAgICAgfQogCiAgICAgc3RhdGljIGNzc1RlbXBsYXRlKCkK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1
aWxkLXJlcXVlc3QuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy9idWlsZC1yZXF1ZXN0LmpzCmluZGV4IDMxYjhjNjU1YWY2NmY4ZTNiODJiYjk1Y2NmMzc4YzIy
MTQ5OWJhNmYuLjNjN2M5Y2FiN2ZjN2JlMTk2OTY2Zjk4YTMzOTM2YzNmNmJmZGM4YzYgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJl
cXVlc3QuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMv
YnVpbGQtcmVxdWVzdC5qcwpAQCAtMTYsNyArMTYsNyBAQCBjbGFzcyBCdWlsZFJlcXVlc3QgZXh0
ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgICAgICB0aGlzLl9yZXBvc2l0b3J5R3JvdXAgPSBv
YmplY3QucmVwb3NpdG9yeUdyb3VwOwogICAgICAgICBjb25zb2xlLmFzc2VydChvYmplY3QucGxh
dGZvcm0gaW5zdGFuY2VvZiBQbGF0Zm9ybSk7CiAgICAgICAgIHRoaXMuX3BsYXRmb3JtID0gb2Jq
ZWN0LnBsYXRmb3JtOwotICAgICAgICBjb25zb2xlLmFzc2VydChvYmplY3QudGVzdCBpbnN0YW5j
ZW9mIFRlc3QpOworICAgICAgICBjb25zb2xlLmFzc2VydCghb2JqZWN0LnRlc3QgfHwgb2JqZWN0
LnRlc3QgaW5zdGFuY2VvZiBUZXN0KTsKICAgICAgICAgdGhpcy5fdGVzdCA9IG9iamVjdC50ZXN0
OwogICAgICAgICB0aGlzLl9vcmRlciA9IG9iamVjdC5vcmRlcjsKICAgICAgICAgY29uc29sZS5h
c3NlcnQob2JqZWN0LmNvbW1pdFNldCBpbnN0YW5jZW9mIENvbW1pdFNldCk7CkBAIC00NSw2ICs0
NSw4IEBAIGNsYXNzIEJ1aWxkUmVxdWVzdCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAg
cmVwb3NpdG9yeUdyb3VwKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeUdyb3VwOyB9CiAgICAg
cGxhdGZvcm0oKSB7IHJldHVybiB0aGlzLl9wbGF0Zm9ybTsgfQogICAgIHRlc3QoKSB7IHJldHVy
biB0aGlzLl90ZXN0OyB9CisgICAgaXNCdWlsZCgpIHsgcmV0dXJuIHRoaXMuX29yZGVyIDwgMDsg
fQorICAgIGlzVGVzdCgpIHsgcmV0dXJuIHRoaXMuX29yZGVyID49IDA7IH0KICAgICBvcmRlcigp
IHsgcmV0dXJuICt0aGlzLl9vcmRlcjsgfQogICAgIGNvbW1pdFNldCgpIHsgcmV0dXJuIHRoaXMu
X2NvbW1pdFNldDsgfQogCkBAIC0xMjEsMTggKzEyMywyMSBAQCBjbGFzcyBCdWlsZFJlcXVlc3Qg
ZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogCiAgICAgc3RhdGljIGNvbnN0cnVjdEJ1aWxkUmVx
dWVzdHNGcm9tRGF0YShkYXRhKQogICAgIHsKLSAgICAgICAgY29uc3QgY29tbWl0SWRNYXAgPSB7
fTsKLSAgICAgICAgZm9yIChsZXQgY29tbWl0IG9mIGRhdGFbJ2NvbW1pdHMnXSkgewotICAgICAg
ICAgICAgY29tbWl0SWRNYXBbY29tbWl0LmlkXSA9IGNvbW1pdDsKLSAgICAgICAgICAgIGNvbW1p
dC5yZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5maW5kQnlJZChjb21taXQucmVwb3NpdG9yeSk7Cisg
ICAgICAgIGZvciAobGV0IHJhd0RhdGEgb2YgZGF0YVsnY29tbWl0cyddKSB7CisgICAgICAgICAg
ICByYXdEYXRhLnJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKHJhd0RhdGEucmVwb3Np
dG9yeSk7CisgICAgICAgICAgICBDb21taXRMb2cuZW5zdXJlU2luZ2xldG9uKHJhd0RhdGEuaWQs
IHJhd0RhdGEpOwogICAgICAgICB9CiAKICAgICAgICAgZm9yIChsZXQgdXBsb2FkZWRGaWxlIG9m
IGRhdGFbJ3VwbG9hZGVkRmlsZXMnXSkKICAgICAgICAgICAgIFVwbG9hZGVkRmlsZS5lbnN1cmVT
aW5nbGV0b24odXBsb2FkZWRGaWxlLmlkLCB1cGxvYWRlZEZpbGUpOwogCi0gICAgICAgIGNvbnN0
IGNvbW1pdFNldHMgPSBkYXRhWydjb21taXRTZXRzJ10ubWFwKChyb3cpID0+IHsKLSAgICAgICAg
ICAgIHJvdy5jb21taXRzID0gcm93LmNvbW1pdHMubWFwKChjb21taXRJZCkgPT4gY29tbWl0SWRN
YXBbY29tbWl0SWRdKTsKLSAgICAgICAgICAgIHJldHVybiBDb21taXRTZXQuZW5zdXJlU2luZ2xl
dG9uKHJvdy5pZCwgcm93KTsKKyAgICAgICAgY29uc3QgY29tbWl0U2V0cyA9IGRhdGFbJ2NvbW1p
dFNldHMnXS5tYXAoKHJhd0RhdGEpID0+IHsKKyAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBv
ZiByYXdEYXRhLnJldmlzaW9uSXRlbXMpIHsKKyAgICAgICAgICAgICAgICBpdGVtLmNvbW1pdCA9
IENvbW1pdExvZy5maW5kQnlJZChpdGVtLmNvbW1pdCk7CisgICAgICAgICAgICAgICAgaXRlbS5w
YXRjaCA9IGl0ZW0ucGF0Y2ggPyBVcGxvYWRlZEZpbGUuZmluZEJ5SWQoaXRlbS5wYXRjaCkgOiBu
dWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmF3RGF0YS5jdXN0b21Sb290cyA9IHJh
d0RhdGEuY3VzdG9tUm9vdHMubWFwKChmaWxlSWQpID0+IFVwbG9hZGVkRmlsZS5maW5kQnlJZChm
aWxlSWQpKTsKKyAgICAgICAgICAgIHJldHVybiBDb21taXRTZXQuZW5zdXJlU2luZ2xldG9uKHJh
d0RhdGEuaWQsIHJhd0RhdGEpOwogICAgICAgICB9KTsKIAogICAgICAgICByZXR1cm4gZGF0YVsn
YnVpbGRSZXF1ZXN0cyddLm1hcChmdW5jdGlvbiAocmF3RGF0YSkgewpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LXNldC5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanMKaW5k
ZXggYWY3OWZmZjA0ZTdjMTAyN2QwYzE4YzJiYzlhYTBjOTAyNjhkN2UzOC4uMmNkNTgzMmIzYmZh
ZGFkNzkwMjcxOTdmYTI4NGQ3ZDI3NjU4ZmQ1ZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LXNldC5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtc2V0LmpzCkBAIC02LDQyICs2
LDQ1IEBAIGNsYXNzIENvbW1pdFNldCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgewog
ICAgICAgICBzdXBlcihpZCk7CiAgICAgICAgIHRoaXMuX3JlcG9zaXRvcmllcyA9IFtdOwotICAg
ICAgICB0aGlzLl9yZXBvc2l0b3J5VG9Db21taXRNYXAgPSB7fTsKKyAgICAgICAgdGhpcy5fcmVw
b3NpdG9yeVRvQ29tbWl0TWFwID0gbmV3IE1hcDsKKyAgICAgICAgdGhpcy5fcmVwb3NpdG9yeVRv
UGF0Y2hNYXAgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9sYXRlc3RDb21taXRUaW1lID0gbnVs
bDsKICAgICAgICAgdGhpcy5fY3VzdG9tUm9vdHMgPSBbXTsKIAogICAgICAgICBpZiAoIW9iamVj
dCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBmb3IgKGxldCByb3cgb2Ygb2JqZWN0
LmNvbW1pdHMpIHsKLSAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlJZCA9IHJvdy5yZXBvc2l0
b3J5LmlkKCk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fcmVwb3NpdG9yeVRv
Q29tbWl0TWFwW3JlcG9zaXRvcnlJZF0pOwotICAgICAgICAgICAgdGhpcy5fcmVwb3NpdG9yeVRv
Q29tbWl0TWFwW3JlcG9zaXRvcnlJZF0gPSBDb21taXRMb2cuZW5zdXJlU2luZ2xldG9uKHJvdy5p
ZCwgcm93KTsKLSAgICAgICAgICAgIHRoaXMuX3JlcG9zaXRvcmllcy5wdXNoKHJvdy5yZXBvc2l0
b3J5KTsKLSAgICAgICAgfQotICAgICAgICBmb3IgKGxldCBmaWxlSWQgb2Ygb2JqZWN0LmN1c3Rv
bVJvb3RzKSB7Ci0gICAgICAgICAgICBjb25zdCB1cGxvYWRlZEZpbGUgPSBVcGxvYWRlZEZpbGUu
ZmluZEJ5SWQoZmlsZUlkKTsKLSAgICAgICAgICAgIHRoaXMuX2N1c3RvbVJvb3RzLnB1c2godXBs
b2FkZWRGaWxlKTsKKyAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIG9iamVjdC5yZXZpc2lvbkl0
ZW1zKSB7CisgICAgICAgICAgICBjb25zdCBjb21taXQgPSBpdGVtLmNvbW1pdDsKKyAgICAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdCBpbnN0YW5jZW9mIENvbW1pdExvZyk7CisgICAgICAg
ICAgICBjb25zb2xlLmFzc2VydCghaXRlbS5wYXRjaCB8fCBpdGVtLnBhdGNoIGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBjb21taXQucmVw
b3NpdG9yeSgpOworICAgICAgICAgICAgdGhpcy5fcmVwb3NpdG9yeVRvQ29tbWl0TWFwLnNldChy
ZXBvc2l0b3J5LCBjb21taXQpOworICAgICAgICAgICAgdGhpcy5fcmVwb3NpdG9yeVRvUGF0Y2hN
YXAuc2V0KHJlcG9zaXRvcnksIGl0ZW0ucGF0Y2gpOworICAgICAgICAgICAgdGhpcy5fcmVwb3Np
dG9yaWVzLnB1c2goY29tbWl0LnJlcG9zaXRvcnkoKSk7CiAgICAgICAgIH0KKyAgICAgICAgdGhp
cy5fY3VzdG9tUm9vdHMgPSBvYmplY3QuY3VzdG9tUm9vdHM7CiAgICAgfQogCiAgICAgcmVwb3Np
dG9yaWVzKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yaWVzOyB9CiAgICAgY3VzdG9tUm9vdHMo
KSB7IHJldHVybiB0aGlzLl9jdXN0b21Sb290czsgfQotICAgIGNvbW1pdEZvclJlcG9zaXRvcnko
cmVwb3NpdG9yeSkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeVRvQ29tbWl0TWFwW3JlcG9zaXRv
cnkuaWQoKV07IH0KKyAgICBjb21taXRGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpIHsgcmV0dXJu
IHRoaXMuX3JlcG9zaXRvcnlUb0NvbW1pdE1hcC5nZXQocmVwb3NpdG9yeSk7IH0KIAogICAgIHJl
dmlzaW9uRm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KQogICAgIHsKLSAgICAgICAgdmFyIGNvbW1p
dCA9IHRoaXMuX3JlcG9zaXRvcnlUb0NvbW1pdE1hcFtyZXBvc2l0b3J5LmlkKCldOworICAgICAg
ICB2YXIgY29tbWl0ID0gdGhpcy5fcmVwb3NpdG9yeVRvQ29tbWl0TWFwLmdldChyZXBvc2l0b3J5
KTsKICAgICAgICAgcmV0dXJuIGNvbW1pdCA/IGNvbW1pdC5yZXZpc2lvbigpIDogbnVsbDsKICAg
ICB9CiAKKyAgICBwYXRjaEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkgeyByZXR1cm4gdGhpcy5f
cmVwb3NpdG9yeVRvUGF0Y2hNYXAuZ2V0KHJlcG9zaXRvcnkpOyB9CisKICAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgcmV0dXJuIGEgRGF0ZSBvYmplY3QuCiAgICAgbGF0ZXN0Q29tbWl0VGltZSgp
CiAgICAgewogICAgICAgICBpZiAodGhpcy5fbGF0ZXN0Q29tbWl0VGltZSA9PSBudWxsKSB7CiAg
ICAgICAgICAgICB2YXIgbWF4VGltZSA9IDA7Ci0gICAgICAgICAgICBmb3IgKHZhciByZXBvc2l0
b3J5SWQgaW4gdGhpcy5fcmVwb3NpdG9yeVRvQ29tbWl0TWFwKQotICAgICAgICAgICAgICAgIG1h
eFRpbWUgPSBNYXRoLm1heChtYXhUaW1lLCArdGhpcy5fcmVwb3NpdG9yeVRvQ29tbWl0TWFwW3Jl
cG9zaXRvcnlJZF0udGltZSgpKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgW3JlcG9zaXRvcnks
IGNvbW1pdF0gb2YgdGhpcy5fcmVwb3NpdG9yeVRvQ29tbWl0TWFwKQorICAgICAgICAgICAgICAg
IG1heFRpbWUgPSBNYXRoLm1heChtYXhUaW1lLCArY29tbWl0LnRpbWUoKSk7CiAgICAgICAgICAg
ICB0aGlzLl9sYXRlc3RDb21taXRUaW1lID0gbWF4VGltZTsKICAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gdGhpcy5fbGF0ZXN0Q29tbWl0VGltZTsKQEAgLTUxLDggKzU0LDEwIEBAIGNsYXNzIENv
bW1pdFNldCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgewogICAgICAgICBpZiAodGhp
cy5fcmVwb3NpdG9yaWVzLmxlbmd0aCAhPSBvdGhlci5fcmVwb3NpdG9yaWVzLmxlbmd0aCkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZm9yICh2YXIgcmVwb3NpdG9yeUlkIGlu
IHRoaXMuX3JlcG9zaXRvcnlUb0NvbW1pdE1hcCkgewotICAgICAgICAgICAgaWYgKHRoaXMuX3Jl
cG9zaXRvcnlUb0NvbW1pdE1hcFtyZXBvc2l0b3J5SWRdICE9IG90aGVyLl9yZXBvc2l0b3J5VG9D
b21taXRNYXBbcmVwb3NpdG9yeUlkXSkKKyAgICAgICAgZm9yIChjb25zdCBbcmVwb3NpdG9yeSwg
Y29tbWl0XSBvZiB0aGlzLl9yZXBvc2l0b3J5VG9Db21taXRNYXApIHsKKyAgICAgICAgICAgIGlm
IChjb21taXQgIT0gb3RoZXIuX3JlcG9zaXRvcnlUb0NvbW1pdE1hcC5nZXQocmVwb3NpdG9yeSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKHRoaXMuX3Jl
cG9zaXRvcnlUb1BhdGNoTWFwLmdldChyZXBvc2l0b3J5KSAhPSBvdGhlci5fcmVwb3NpdG9yeVRv
Q29tbWl0TWFwLmdldChyZXBvc2l0b3J5KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIENvbW1pdFNldC5hcmVDdXN0b21Sb290c0VxdWFs
KHRoaXMuX2N1c3RvbVJvb3RzLCBvdGhlci5fY3VzdG9tUm9vdHMpOwpAQCAtMTAwLDcgKzEwNSw5
IEBAIGNsYXNzIE1lYXN1cmVtZW50Q29tbWl0U2V0IGV4dGVuZHMgQ29tbWl0U2V0IHsKICAgICAg
ICAgICAgIGlmICghcmVwb3NpdG9yeSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICAgICAgdGhpcy5fcmVwb3NpdG9yeVRvQ29tbWl0TWFwW3JlcG9zaXRvcnlJZF0gPSBDb21t
aXRMb2cuZW5zdXJlU2luZ2xldG9uKGNvbW1pdElkLCB7cmVwb3NpdG9yeTogcmVwb3NpdG9yeSwg
cmV2aXNpb246IHJldmlzaW9uLCB0aW1lOiB0aW1lfSk7CisgICAgICAgICAgICAvLyBGSVhNRTog
QWRkIGEgZmxhZyB0byByZW1lbWJlciB0aGUgZmFjdCB0aGlzIGNvbW1pdCBsb2cgaXMgaW5jb21w
bGV0ZS4KKyAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IENvbW1pdExvZy5lbnN1cmVTaW5nbGV0
b24oY29tbWl0SWQsIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCByZXZpc2lvbjogcmV2aXNpb24s
IHRpbWU6IHRpbWV9KTsKKyAgICAgICAgICAgIHRoaXMuX3JlcG9zaXRvcnlUb0NvbW1pdE1hcC5z
ZXQocmVwb3NpdG9yeSwgY29tbWl0KTsKICAgICAgICAgICAgIHRoaXMuX3JlcG9zaXRvcmllcy5w
dXNoKHJlcG9zaXRvcnkpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTI3LDEwICsxMzQsMTEgQEAg
Y2xhc3MgQ3VzdG9tQ29tbWl0U2V0IHsKICAgICAgICAgdGhpcy5fY3VzdG9tUm9vdHMgPSBbXTsK
ICAgICB9CiAKLSAgICBzZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSwgcmV2aXNp
b24pCisgICAgc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnksIHJldmlzaW9uLCBw
YXRjaCA9IG51bGwpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChyZXBvc2l0b3J5IGlu
c3RhbmNlb2YgUmVwb3NpdG9yeSk7Ci0gICAgICAgIHRoaXMuX3JldmlzaW9uTGlzdEJ5UmVwb3Np
dG9yeS5zZXQocmVwb3NpdG9yeSwgcmV2aXNpb24pOworICAgICAgICBjb25zb2xlLmFzc2VydCgh
cGF0Y2ggfHwgcGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICB0aGlzLl9y
ZXZpc2lvbkxpc3RCeVJlcG9zaXRvcnkuc2V0KHJlcG9zaXRvcnksIHtyZXZpc2lvbiwgcGF0Y2h9
KTsKICAgICB9CiAKICAgICBlcXVhbHMob3RoZXIpCkBAIC0xNDEsMTQgKzE0OSwzMCBAQCBjbGFz
cyBDdXN0b21Db21taXRTZXQgewogICAgICAgICBmb3IgKGxldCByZXBvc2l0b3J5IG9mIHRoaXMu
X3JldmlzaW9uTGlzdEJ5UmVwb3NpdG9yeS5rZXlzKCkpIHsKICAgICAgICAgICAgIGNvbnN0IHRo
aXNSZXZpc2lvbiA9IHRoaXMuX3JldmlzaW9uTGlzdEJ5UmVwb3NpdG9yeS5nZXQocmVwb3NpdG9y
eSk7CiAgICAgICAgICAgICBjb25zdCBvdGhlclJldmlzaW9uID0gb3RoZXIuX3JldmlzaW9uTGlz
dEJ5UmVwb3NpdG9yeS5nZXQocmVwb3NpdG9yeSk7Ci0gICAgICAgICAgICBpZiAodGhpc1Jldmlz
aW9uICE9IG90aGVyUmV2aXNpb24pCisgICAgICAgICAgICBpZiAoIXRoaXNSZXZpc2lvbiAhPSAh
b3RoZXJSZXZpc2lvbikKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBpZiAodGhpc1JldmlzaW9uICYmICh0aGlzUmV2aXNpb24ucmV2aXNpb24gIT0gb3RoZXJSZXZp
c2lvbi5yZXZpc2lvbgorICAgICAgICAgICAgICAgIHx8IHRoaXNSZXZpc2lvbi5wYXRjaCAhPSBv
dGhlclJldmlzaW9uLnBhdGNoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIENvbW1pdFNldC5hcmVDdXN0b21Sb290c0VxdWFsKHRoaXMu
X2N1c3RvbVJvb3RzLCBvdGhlci5fY3VzdG9tUm9vdHMpOwogICAgIH0KIAogICAgIHJlcG9zaXRv
cmllcygpIHsgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fcmV2aXNpb25MaXN0QnlSZXBvc2l0b3J5
LmtleXMoKSk7IH0KLSAgICByZXZpc2lvbkZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkgeyByZXR1
cm4gdGhpcy5fcmV2aXNpb25MaXN0QnlSZXBvc2l0b3J5LmdldChyZXBvc2l0b3J5KTsgfQorICAg
IHJldmlzaW9uRm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KQorICAgIHsKKyAgICAgICAgY29uc3Qg
ZW50cnkgPSB0aGlzLl9yZXZpc2lvbkxpc3RCeVJlcG9zaXRvcnkuZ2V0KHJlcG9zaXRvcnkpOwor
ICAgICAgICBpZiAoIWVudHJ5KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHJl
dHVybiBlbnRyeS5yZXZpc2lvbjsKKyAgICB9CisgICAgcGF0Y2hGb3JSZXBvc2l0b3J5KHJlcG9z
aXRvcnkpCisgICAgeworICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuX3JldmlzaW9uTGlzdEJ5
UmVwb3NpdG9yeS5nZXQocmVwb3NpdG9yeSk7CisgICAgICAgIGlmICghZW50cnkpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgcmV0dXJuIGVudHJ5LnBhdGNoOworICAgIH0KICAg
ICBjdXN0b21Sb290cygpIHsgcmV0dXJuIHRoaXMuX2N1c3RvbVJvb3RzOyB9CiAKICAgICBhZGRD
dXN0b21Sb290KHVwbG9hZGVkRmlsZSkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21hbmlmZXN0LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanMKaW5kZXggOTczZjcyMTllNTNlOWQ3OTE1
Zjc3MmU4ZjdjOTE0YmJmYTUwNjVkNi4uMTY1MWRlMDRmNzMzMzRlNmUwZjc1MWNlOWEyY2E4Zjcy
MjgwOWNiYiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9t
b2RlbHMvbWFuaWZlc3QuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvbWFuaWZlc3QuanMKQEAgLTQ4LDcgKzQ4LDkgQEAgY2xhc3MgTWFuaWZlc3Qgewog
ICAgICAgICAgICAgICAgIHJldHVybiBSZXBvc2l0b3J5LmZpbmRCeUlkKHJlcG9zaXRvcnlJZCk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHJhdy5yZXBvc2l0b3J5R3JvdXBzID0gcmF3
LnJlcG9zaXRvcnlHcm91cHMubWFwKChncm91cCkgPT4gewotICAgICAgICAgICAgICAgIGdyb3Vw
LnJlcG9zaXRvcmllcyA9IGdyb3VwLnJlcG9zaXRvcmllcy5tYXAoKHJlcG9zaXRvcnlJZCkgPT4g
UmVwb3NpdG9yeS5maW5kQnlJZChyZXBvc2l0b3J5SWQpKTsKKyAgICAgICAgICAgICAgICBncm91
cC5yZXBvc2l0b3JpZXMgPSBncm91cC5yZXBvc2l0b3JpZXMubWFwKChlbnRyeSkgPT4geworICAg
ICAgICAgICAgICAgICAgICByZXR1cm4ge3JlcG9zaXRvcnk6IFJlcG9zaXRvcnkuZmluZEJ5SWQo
ZW50cnkucmVwb3NpdG9yeSksIGFjY2VwdHNQYXRjaDogZW50cnkuYWNjZXB0c1BhdGNofTsKKyAg
ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gVHJpZ2dlcmFibGVSZXBv
c2l0b3J5R3JvdXAuZW5zdXJlU2luZ2xldG9uKGdyb3VwLmlkLCBncm91cCk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgICAgIHJhdy5jb25maWd1cmF0aW9ucyA9IHJhdy5jb25maWd1cmF0aW9u
cy5tYXAoKGNvbmZpZ3VyYXRpb24pID0+IHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3JlcG9zaXRvcnkuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzCmluZGV4IGNhZTlhNGVmNjI5
NWJkM2VlZWM1NDFjYmNhYzNkYWFkMDMwMDBkMTkuLjA4OWY2MmUyNDE3ZWViMWU1MDQ0OGQ2YmMw
NTc3NmRiODY2NTdhZGQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL3JlcG9zaXRvcnkuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcwpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBS
ZXBvc2l0b3J5IGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIHJldHVybiAodGhpcy5f
YmxhbWVVcmwgfHwgJycpLnJlcGxhY2UoL1wkMS9nLCBmcm9tKS5yZXBsYWNlKC9cJDIvZywgdG8p
OwogICAgIH0KIAotICAgIG93bmVyKCkKKyAgICBvd25lcklkKCkKICAgICB7CiAgICAgICAgIHJl
dHVybiB0aGlzLl9vd25lcklkOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzCmluZGV4IDMyYmUwYTYzNTIy
N2RmMDIwYzQ1YzNhY2Y5ODY4YTkwNGZjMWE0NjUuLmM2MjI2MTlhYjQyZmJhNzdlYmQ4MzdhNWE3
YWI2M2NmOWEyYTZiY2QgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcwpAQCAtMTAsOCArMTAsMTEgQEAgY2xhc3Mg
VGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIHRoaXMuX2NyZWF0ZWRB
dCA9IG5ldyBEYXRlKG9iamVjdC5jcmVhdGVkQXQpOwogICAgICAgICB0aGlzLl9pc0hpZGRlbiA9
IG9iamVjdC5oaWRkZW47CiAgICAgICAgIHRoaXMuX2J1aWxkUmVxdWVzdHMgPSBbXTsKLSAgICAg
ICAgdGhpcy5fcmVxdWVzdHNBcmVJbk9yZGVyID0gZmFsc2U7CisgICAgICAgIHRoaXMuX29yZGVy
QnVpbGRSZXF1ZXN0c0xhemlseSA9IG5ldyBMYXppbHlFdmFsdWF0ZWRGdW5jdGlvbigoLi4uYnVp
bGRSZXF1ZXN0cykgPT4geworICAgICAgICAgICAgcmV0dXJuIGJ1aWxkUmVxdWVzdHMuc29ydCgo
YSwgYikgPT4gYS5vcmRlcigpIC0gYi5vcmRlcigpKTsKKyAgICAgICAgfSk7CiAgICAgICAgIHRo
aXMuX3JlcG9zaXRvcmllcyA9IG51bGw7CisgICAgICAgIHRoaXMuX2NvbXB1dGVSZXF1ZXN0ZWRD
b21taXRTZXRzTGF6aWx5ID0gbmV3IExhemlseUV2YWx1YXRlZEZ1bmN0aW9uKHRoaXMuX2NvbXB1
dGVSZXF1ZXN0ZWRDb21taXRTZXRzLmJpbmQodGhpcykpOwogICAgICAgICB0aGlzLl9yZXF1ZXN0
ZWRDb21taXRTZXRzID0gbnVsbDsKICAgICAgICAgdGhpcy5fY29tbWl0U2V0VG9MYWJlbCA9IG5l
dyBNYXA7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFvYmplY3QucGxhdGZvcm0gfHwgb2JqZWN0
LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOwpAQCAtMzUsMzMgKzM4LDQxIEBAIGNsYXNz
IFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgIGFkZEJ1aWxkUmVxdWVzdChy
ZXF1ZXN0KQogICAgIHsKICAgICAgICAgdGhpcy5fYnVpbGRSZXF1ZXN0cy5wdXNoKHJlcXVlc3Qp
OwotICAgICAgICB0aGlzLl9yZXF1ZXN0c0FyZUluT3JkZXIgPSBmYWxzZTsKICAgICAgICAgdGhp
cy5fcmVxdWVzdGVkQ29tbWl0U2V0cyA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NvbW1pdFNldFRv
TGFiZWwuY2xlYXIoKTsKICAgICB9CiAKICAgICB0ZXN0KCkKICAgICB7Ci0gICAgICAgIGlmICgh
dGhpcy5fYnVpbGRSZXF1ZXN0cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAg
ICAgICAgcmV0dXJuIHRoaXMuX2J1aWxkUmVxdWVzdHNbMF0udGVzdCgpOworICAgICAgICBjb25z
dCByZXF1ZXN0ID0gdGhpcy5fbGFzdFJlcXVlc3QoKTsKKyAgICAgICAgcmV0dXJuIHJlcXVlc3Qg
PyByZXF1ZXN0LnRlc3QoKSA6IG51bGw7CiAgICAgfQogCiAgICAgcGxhdGZvcm0oKQogICAgIHsK
LSAgICAgICAgaWYgKCF0aGlzLl9idWlsZFJlcXVlc3RzLmxlbmd0aCkKLSAgICAgICAgICAgIHJl
dHVybiBudWxsOwotICAgICAgICByZXR1cm4gdGhpcy5fYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9y
bSgpOworICAgICAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5fbGFzdFJlcXVlc3QoKTsKKyAgICAg
ICAgcmV0dXJuIHJlcXVlc3QgPyByZXF1ZXN0LnBsYXRmb3JtKCkgOiBudWxsOworICAgIH0KKwor
ICAgIF9sYXN0UmVxdWVzdCgpCisgICAgeworICAgICAgICBjb25zdCByZXF1ZXN0cyA9IHRoaXMu
X29yZGVyZWRCdWlsZFJlcXVlc3RzKCk7CisgICAgICAgIHJldHVybiByZXF1ZXN0cy5sZW5ndGgg
PyByZXF1ZXN0c1tyZXF1ZXN0cy5sZW5ndGggLSAxXSA6IG51bGw7CisgICAgfQorCisgICAgX29y
ZGVyZWRCdWlsZFJlcXVlc3RzKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9vcmRlckJ1
aWxkUmVxdWVzdHNMYXppbHkuZXZhbHVhdGUoLi4udGhpcy5fYnVpbGRSZXF1ZXN0cyk7CiAgICAg
fQogCiAgICAgcmVwZXRpdGlvbkNvdW50KCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fYnVp
bGRSZXF1ZXN0cy5sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgdmFyIGNv
bW1pdFNldCA9IHRoaXMuX2J1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7Ci0gICAgICAgIHZh
ciBjb3VudCA9IDA7Ci0gICAgICAgIGZvciAodmFyIHJlcXVlc3Qgb2YgdGhpcy5fYnVpbGRSZXF1
ZXN0cykgewotICAgICAgICAgICAgaWYgKHJlcXVlc3QuY29tbWl0U2V0KCkgPT0gY29tbWl0U2V0
KQorICAgICAgICBjb25zdCBjb21taXRTZXQgPSB0aGlzLl9idWlsZFJlcXVlc3RzWzBdLmNvbW1p
dFNldCgpOworICAgICAgICBsZXQgY291bnQgPSAwOworICAgICAgICBmb3IgKGNvbnN0IHJlcXVl
c3Qgb2YgdGhpcy5fYnVpbGRSZXF1ZXN0cykgeworICAgICAgICAgICAgaWYgKHJlcXVlc3QuaXNU
ZXN0KCkgJiYgcmVxdWVzdC5jb21taXRTZXQoKSA9PSBjb21taXRTZXQpCiAgICAgICAgICAgICAg
ICAgY291bnQrKzsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gY291bnQ7CkBAIC02OSw0MyAr
ODAsMzMgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBy
ZXF1ZXN0ZWRDb21taXRTZXRzKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fcmVxdWVzdGVk
Q29tbWl0U2V0cykgewotICAgICAgICAgICAgdGhpcy5fb3JkZXJCdWlsZFJlcXVlc3RzKCk7Ci0g
ICAgICAgICAgICB0aGlzLl9yZXF1ZXN0ZWRDb21taXRTZXRzID0gW107Ci0gICAgICAgICAgICBm
b3IgKHZhciByZXF1ZXN0IG9mIHRoaXMuX2J1aWxkUmVxdWVzdHMpIHsKLSAgICAgICAgICAgICAg
ICB2YXIgc2V0ID0gcmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgICAgICBpZiAoIXRo
aXMuX3JlcXVlc3RlZENvbW1pdFNldHMuaW5jbHVkZXMoc2V0KSkKLSAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fcmVxdWVzdGVkQ29tbWl0U2V0cy5wdXNoKHNldCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB0aGlzLl9yZXF1ZXN0ZWRDb21taXRTZXRzLnNvcnQoZnVuY3Rpb24gKGEsIGIp
IHsgcmV0dXJuIGEubGF0ZXN0Q29tbWl0VGltZSgpIC0gYi5sYXRlc3RDb21taXRUaW1lKCk7IH0p
OwotICAgICAgICAgICAgdmFyIHNldEluZGV4ID0gMDsKLSAgICAgICAgICAgIGZvciAodmFyIHNl
dCBvZiB0aGlzLl9yZXF1ZXN0ZWRDb21taXRTZXRzKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5f
Y29tbWl0U2V0VG9MYWJlbC5zZXQoc2V0LCBTdHJpbmcuZnJvbUNoYXJDb2RlKCdBJy5jaGFyQ29k
ZUF0KDApICsgc2V0SW5kZXgpKTsKLSAgICAgICAgICAgICAgICBzZXRJbmRleCsrOwotICAgICAg
ICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy5fY29tcHV0ZVJlcXVlc3RlZENvbW1pdFNldHNM
YXppbHkuZXZhbHVhdGUoLi4udGhpcy5fb3JkZXJlZEJ1aWxkUmVxdWVzdHMoKSk7CisgICAgfQog
CisgICAgX2NvbXB1dGVSZXF1ZXN0ZWRDb21taXRTZXRzKC4uLm9yZGVyZWRCdWlsZFJlcXVlc3Rz
KQorICAgIHsKKyAgICAgICAgY29uc3QgcmVxdWVzdGVkQ29tbWl0U2V0cyA9IFtdOworICAgICAg
ICBjb25zdCBjb21taXRTZXRMYWJlbE1hcCA9IG5ldyBNYXA7CisgICAgICAgIGZvciAoY29uc3Qg
cmVxdWVzdCBvZiBvcmRlcmVkQnVpbGRSZXF1ZXN0cykgeworICAgICAgICAgICAgY29uc3Qgc2V0
ID0gcmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgICAgIGlmICghdGhpcy5fcmVxdWVzdGVk
Q29tbWl0U2V0cy5pbmNsdWRlcyhzZXQpKQorICAgICAgICAgICAgICAgIHRoaXMuX3JlcXVlc3Rl
ZENvbW1pdFNldHMucHVzaChzZXQpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlzLl9y
ZXF1ZXN0ZWRDb21taXRTZXRzOworICAgICAgICByZXR1cm4gcmVxdWVzdGVkQ29tbWl0U2V0czsK
ICAgICB9CiAKICAgICByZXF1ZXN0c0ZvckNvbW1pdFNldChjb21taXRTZXQpCiAgICAgewotICAg
ICAgICB0aGlzLl9vcmRlckJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2J1
aWxkUmVxdWVzdHMuZmlsdGVyKGZ1bmN0aW9uIChyZXF1ZXN0KSB7IHJldHVybiByZXF1ZXN0LmNv
bW1pdFNldCgpID09IGNvbW1pdFNldDsgfSk7CisgICAgICAgIHRoaXMuX29yZGVyZWRCdWlsZFJl
cXVlc3RzKCkuZmlsdGVyKChyZXF1ZXN0KSA9PiByZXF1ZXN0LmNvbW1pdFNldCgpID09IGNvbW1p
dFNldCk7CiAgICAgfQogCiAgICAgbGFiZWxGb3JDb21taXRTZXQoY29tbWl0U2V0KQogICAgIHsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcmVxdWVzdGVkQ29tbWl0U2V0cyk7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9jb21taXRTZXRUb0xhYmVsLmdldChjb21taXRTZXQpOwotICAgIH0K
LQotICAgIF9vcmRlckJ1aWxkUmVxdWVzdHMoKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3Jl
cXVlc3RzQXJlSW5PcmRlcikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fYnVp
bGRSZXF1ZXN0cyA9IHRoaXMuX2J1aWxkUmVxdWVzdHMuc29ydChmdW5jdGlvbiAoYSwgYikgeyBy
ZXR1cm4gYS5vcmRlcigpIC0gYi5vcmRlcigpOyB9KTsKLSAgICAgICAgdGhpcy5fcmVxdWVzdHNB
cmVJbk9yZGVyID0gdHJ1ZTsKKyAgICAgICAgY29uc3QgcmVxdWVzdGVkU2V0cyA9IHRoaXMucmVx
dWVzdGVkQ29tbWl0U2V0cygpOworICAgICAgICBjb25zdCBzZXRJbmRleCA9IHJlcXVlc3RlZFNl
dHMuaW5kZXhPZihjb21taXRTZXQpOworICAgICAgICBpZiAoc2V0SW5kZXggPCAwKQorICAgICAg
ICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKCdB
Jy5jaGFyQ29kZUF0KDApICsgc2V0SW5kZXgpOwogICAgIH0KIAogICAgIGhhc0ZpbmlzaGVkKCkK
QEAgLTIyOSw4ICsyMzAsMTMgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVj
dCB7CiAgICAgICAgIHJldHVybiBjb21taXRTZXRzLm1hcCgoY29tbWl0U2V0KSA9PiB7CiAgICAg
ICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXRTZXQgaW5zdGFuY2VvZiBDdXN0b21Db21taXRT
ZXQgfHwgY29tbWl0U2V0IGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGNvbnN0
IHJldmlzaW9uU2V0ID0ge307Ci0gICAgICAgICAgICBmb3IgKGxldCByZXBvc2l0b3J5IG9mIGNv
bW1pdFNldC5yZXBvc2l0b3JpZXMoKSkKLSAgICAgICAgICAgICAgICByZXZpc2lvblNldFtyZXBv
c2l0b3J5LmlkKCldID0gY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5
KTsKKyAgICAgICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnkgb2YgY29tbWl0U2V0LnJlcG9zaXRv
cmllcygpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgcGF0Y2hGaWxlID0gY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KTsKKyAgICAgICAgICAgICAgICByZXZpc2lvblNl
dFtyZXBvc2l0b3J5LmlkKCldID0geworICAgICAgICAgICAgICAgICAgICByZXZpc2lvbjogY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSwKKyAgICAgICAgICAgICAg
ICAgICAgcGF0Y2g6IHBhdGNoRmlsZSA/IHBhdGNoRmlsZS5pZCgpIDogbnVsbCwKKyAgICAgICAg
ICAgICAgICB9OworICAgICAgICAgICAgfQogICAgICAgICAgICAgY29uc3QgY3VzdG9tUm9vdHMg
PSBjb21taXRTZXQuY3VzdG9tUm9vdHMoKTsKICAgICAgICAgICAgIGlmIChjdXN0b21Sb290cyAm
JiBjdXN0b21Sb290cy5sZW5ndGgpCiAgICAgICAgICAgICAgICAgcmV2aXNpb25TZXRbJ2N1c3Rv
bVJvb3RzJ10gPSBjdXN0b21Sb290cy5tYXAoKHVwbG9hZGVkRmlsZSkgPT4gdXBsb2FkZWRGaWxl
LmlkKCkpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9t
b2RlbHMvdHJpZ2dlcmFibGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy90cmlnZ2VyYWJsZS5qcwppbmRleCBjNmY4MWUyODJjMTZkMDljMmU0MjEwNzViMWY0
NTY4MmVhMDM1NGMzLi4zZWE4ZTIxNDVmY2EwZDFiNmZiZjQwYTY0NDdlZDBiNjcyNTRlMjE3IDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmln
Z2VyYWJsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy90cmlnZ2VyYWJsZS5qcwpAQCAtNTksMjEgKzU5LDMzIEBAIGNsYXNzIFRyaWdnZXJhYmxlUmVw
b3NpdG9yeUdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIHN1cGVyKGlkLCBv
YmplY3QpOwogICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IG9iamVjdC5kZXNjcmlwdGlvbjsK
ICAgICAgICAgdGhpcy5fYWNjZXB0c0N1c3RvbVJvb3RzID0gISFvYmplY3QuYWNjZXB0c0N1c3Rv
bVJvb3RzOwotICAgICAgICB0aGlzLl9yZXBvc2l0b3JpZXMgPSBSZXBvc2l0b3J5LnNvcnRCeU5h
bWUob2JqZWN0LnJlcG9zaXRvcmllcyk7CisgICAgICAgIHRoaXMuX3JlcG9zaXRvcmllcyA9IFJl
cG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChvYmplY3QucmVwb3NpdG9y
aWVzLm1hcCgoaXRlbSkgPT4gaXRlbS5yZXBvc2l0b3J5KSk7CisgICAgICAgIHRoaXMuX3BhdGNo
QWNjZXB0aW5nU2V0ID0gbmV3IFNldChvYmplY3QucmVwb3NpdG9yaWVzLmZpbHRlcigoaXRlbSkg
PT4gaXRlbS5hY2NlcHRzUGF0Y2gpLm1hcCgoaXRlbSkgPT4gaXRlbS5yZXBvc2l0b3J5KSk7CiAg
ICAgfQogCiAgICAgYWNjZXB0cyhjb21taXRTZXQpCiAgICAgewotICAgICAgICBjb25zdCBjb21t
aXRTZXRSZXBvc2l0b3JpZXMgPSBSZXBvc2l0b3J5LnNvcnRCeU5hbWUoY29tbWl0U2V0LnJlcG9z
aXRvcmllcygpKTsKKyAgICAgICAgLy8gRklYTUU6IEFkZCBhIGNoZWNrIGZvciBwYXRjaC4KKyAg
ICAgICAgY29uc3QgY29tbWl0U2V0UmVwb3NpdG9yaWVzID0gUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKGNvbW1pdFNldC5yZXBvc2l0b3JpZXMoKSk7CiAgICAgICAg
IGlmICh0aGlzLl9yZXBvc2l0b3JpZXMubGVuZ3RoICE9IGNvbW1pdFNldFJlcG9zaXRvcmllcy5s
ZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgdGhpcy5fcmVwb3NpdG9yaWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAo
dGhpcy5fcmVwb3NpdG9yaWVzW2ldICE9IGNvbW1pdFNldFJlcG9zaXRvcmllc1tpXSkKKyAgICAg
ICAgICAgIGNvbnN0IGN1cnJlbnRSZXBvc2l0b3J5ID0gdGhpcy5fcmVwb3NpdG9yaWVzW2ldOwor
ICAgICAgICAgICAgaWYgKGN1cnJlbnRSZXBvc2l0b3J5ICE9IGNvbW1pdFNldFJlcG9zaXRvcmll
c1tpXSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoY29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShjdXJyZW50UmVwb3NpdG9yeSkgJiYgIXRoaXMuX3Bh
dGNoQWNjZXB0aW5nU2V0LmhhcyhjdXJyZW50UmVwb3NpdG9yeSkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9CisgICAgICAgIGlmIChjb21taXRTZXQuY3VzdG9tUm9v
dHMoKS5sZW5ndGggJiYgIXRoaXMuX2FjY2VwdHNDdXN0b21Sb290cykKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgYWNjZXB0c1Bh
dGNoRm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X3BhdGNoQWNjZXB0aW5nU2V0LmhhcyhyZXBvc2l0b3J5KTsKKyAgICB9CisKICAgICBkZXNjcmlw
dGlvbigpIHsgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uIHx8IHRoaXMubmFtZSgpOyB9CiAgICAg
YWNjZXB0c0N1c3RvbVJvb3RzKCkgeyByZXR1cm4gdGhpcy5fYWNjZXB0c0N1c3RvbVJvb3RzOyB9
CiAgICAgcmVwb3NpdG9yaWVzKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yaWVzOyB9CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1y
ZXF1ZXN0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCmluZGV4IDkyYTE3MTcwODVkMjU5NTI1ZDk4Mjgz
ZWNmZmZlODU4NzZmYTc4YzkuLmEwY2JjZTNhNmUxZWVjMzlkOWUzYTVjZmFlYjQ5ZDIyY2I3ODVh
YWEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCkBAIC0zNSw5ICszNSw5IEBA
IGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgMik7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uY29t
bWl0cywgWyc4NzgzMicsICc5MzExNiddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFt7Y29tbWl0OiAnODc4MzIn
LCBwYXRjaDogbnVsbH0sIHtjb21taXQ6ICc5MzExNicsIHBhdGNoOiBudWxsfV0pOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5pZCwgNDAyKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLmNvbW1p
dHMsIFsnODc4MzInLCAnOTYzMzYnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0ZW1zLCBbe2NvbW1pdDogJzg3ODMyJywg
cGF0Y2g6IG51bGx9LCB7Y29tbWl0OiAnOTYzMzYnLCBwYXRjaDogbnVsbH1dKTsKIAogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDMpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5pZCwgODc4MzIpOwpAQCAt
ODksOSArODksMTEgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAo
KSB7CiAKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVu
Z3RoLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0uaWQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5jb21taXRzLCBbJzg3ODMyJywgJzkzMTE2J10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKKyAg
ICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgcGF0Y2g6IG51bGx9LCB7Y29tbWl0OiAn
OTMxMTYnLCBwYXRjaDogbnVsbH1dKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMV0uaWQsIDQwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5jb21taXRzLCBbJzg3ODMyJywgJzk2MzM2J10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMV0ucmV2
aXNpb25JdGVtcywKKyAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgcGF0Y2g6IG51
bGx9LCB7Y29tbWl0OiAnOTYzMzYnLCBwYXRjaDogbnVsbH1dKTsKIAogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5pZCwgODc4MzIpOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMu
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10
ZXN0cy5qcwppbmRleCBmZmU0N2JjYzgxZjhmMDc2NzRlMTM4MjQ2ZGZiYzRkNjU1MzU5YTA5Li5m
MDY4N2UzOTJhN2UzM2FjYzQ3OTBiMWExZjU2MWI3OWFmZGQwMDExIDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10
ZXN0cy5qcwpAQCAtMzQxLDcgKzM0MSw3IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVu
Y3Rpb24gKCkgewogCiAgICAgICAgICAgICBjb25zdCBvc1dlYmtpdDEgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKDEwMSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NXZWJraXQxLm5hbWUoKSwg
J1dlYktpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zV2Via2l0MS5vd25lcigpLCA5
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc1dlYmtpdDEub3duZXJJZCgpLCA5KTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc1dlYmtpdDEudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0
dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycpOwogCiAgICAgICAgICAgICBjb25zdCBtYWNvcyA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUuanMKaW5k
ZXggYWY5YTk2NDZjZDc0ZWMzZGE3YzU4ZGY0NmYyNTYyNWE5MGFiNmNkMy4uMmI0NmYzZDljODM0
MzIzOGFjNTY1MjdjMjhlMzNhY2Y5YTBhMzVmZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJs
ZS5qcwpAQCAtNjcsOCArNjcsOCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUv
JywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGIp
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKICAgICAgICAg
ICAgICAgICBhZGRTbGF2ZUZvclJlcG9ydChlbXB0eVVwZGF0ZSksCi0gICAgICAgICAgICAgICAg
ZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsCi0gICAgICAgICAgICAgICAg
ICAgIHsndHJpZ2dlcmFibGUnOiAxMDAwIC8qIGJ1aWxkLXdlYmtpdCAqLywgJ3Rlc3QnOiBNb2Nr
RGF0YS5zb21lVGVzdElkKCksICdwbGF0Zm9ybSc6IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9
KQorICAgICAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMn
LCB7J3RyaWdnZXJhYmxlJzogMTAwMCAvLyBidWlsZC13ZWJraXQKKyAgICAgICAgICAgICAgICAg
ICAgLCAndGVzdCc6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgJ3BsYXRmb3JtJzogTW9ja0RhdGEu
c29tZVBsYXRmb3JtSWQoKX0pCiAgICAgICAgICAgICBdKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZW1wdHlVcGRhdGUpOwpAQCAtMTIyLDcgKzEyMiw5
IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1v
Y2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgJ3Jl
cG9zaXRvcnlHcm91cHMnOiBbCi0gICAgICAgICAgICAgICAge25hbWU6ICdzeXN0ZW0tb25seScs
IHJlcG9zaXRvcmllczogW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldfSwKKyAgICAgICAg
ICAgICAgICB7bmFtZTogJ3N5c3RlbS1vbmx5JywgcmVwb3NpdG9yaWVzOiBbCisgICAgICAgICAg
ICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBhY2Nl
cHRzUGF0Y2g6IGZhbHNlfSwKKyAgICAgICAgICAgICAgICBdfSwKICAgICAgICAgICAgIF0KICAg
ICAgICAgfTsKICAgICB9CkBAIC0xNzUsNyArMTc3LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKLSAg
ICBpdCgnc2hvdWxkIHJlamVjdCB3aGVuIGEgcmVwb3NpdG9yeSBncm91cCBjb250YWlucyBhbiBp
bnZhbGlkIHJlcG9zaXRvcnkgaWQnLCAoKSA9PiB7CisgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2hl
biBhIHJlcG9zaXRvcnkgZ3JvdXAgY29udGFpbnMgYSByZXBvc2l0b3J5IGRhdGEgdGhhdCBpcyBu
b3QgYW4gYXJyYXknLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IHVwZGF0ZSA9IHVwZGF0ZVdpdGhP
U1hSZXBvc2l0b3J5R3JvdXAoKTsKICAgICAgICAgdXBkYXRlLnJlcG9zaXRvcnlHcm91cHNbMF0u
cmVwb3NpdG9yaWVzWzBdID0gOTk5OwogICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkRW1wdHlU
cmlnZ2VyYWJsZShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewpAQCAtMTgzLDYg
KzE4NSwxOCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRh
dGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4geworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5RGF0YScpOworICAg
ICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgcmVqZWN0IHdoZW4gYSByZXBvc2l0
b3J5IGdyb3VwIGNvbnRhaW5zIGFuIGludmFsaWQgcmVwb3NpdG9yeSBpZCcsICgpID0+IHsKKyAg
ICAgICAgY29uc3QgdXBkYXRlID0gdXBkYXRlV2l0aE9TWFJlcG9zaXRvcnlHcm91cCgpOworICAg
ICAgICB1cGRhdGUucmVwb3NpdG9yeUdyb3Vwc1swXS5yZXBvc2l0b3JpZXNbMF0gPSB7cmVwb3Np
dG9yeTogOTk5fTsKKyAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZEVtcHR5VHJpZ2dlcmFibGUo
VGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBh
ZGRTbGF2ZUZvclJlcG9ydCh1cGRhdGUpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0
ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGUpOworICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRS
ZXBvc2l0b3J5Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTk2LDcgKzIxMCw3IEBAIGRl
c2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdEdXBsaWNhdGVSZXBvc2l0b3J5Jyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0yOTcsOCArMzExLDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICB7dGVzdDogTW9j
a0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKX0K
ICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKLSAgICAg
ICAgICAgICAgICB7bmFtZTogJ3N5c3RlbS1vbmx5JywgcmVwb3NpdG9yaWVzOiBbTW9ja0RhdGEu
bWFjb3NSZXBvc2l0b3J5SWQoKV19LAotICAgICAgICAgICAgICAgIHtuYW1lOiAnc3lzdGVtLWFu
ZC13ZWJraXQnLCByZXBvc2l0b3JpZXM6IFtNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSwg
TW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV19LAorICAgICAgICAgICAgICAgIHtuYW1lOiAn
c3lzdGVtLW9ubHknLCByZXBvc2l0b3JpZXM6IFt7cmVwb3NpdG9yeTogTW9ja0RhdGEubWFjb3NS
ZXBvc2l0b3J5SWQoKX1dfSwKKyAgICAgICAgICAgICAgICB7bmFtZTogJ3N5c3RlbS1hbmQtd2Vi
a2l0JywgcmVwb3NpdG9yaWVzOgorICAgICAgICAgICAgICAgICAgICBbe3JlcG9zaXRvcnk6IE1v
Y2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpfSwge3JlcG9zaXRvcnk6IE1vY2tEYXRhLm1hY29z
UmVwb3NpdG9yeUlkKCl9XX0sCiAgICAgICAgICAgICBdCiAgICAgICAgIH07CiAgICAgfQpAQCAt
MzE1LDEyICszMzAsNjkgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIG1hcDsKICAgICB9CiAKKyAgICBmdW5jdGlvbiBy
ZWZldGNoTWFuaWZlc3QoKQorICAgIHsKKyAgICAgICAgTW9ja0RhdGEucmVzZXRWM01vZGVscygp
OworICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21h
bmlmZXN0JykudGhlbigoY29udGVudCkgPT4gTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QoY29u
dGVudCkpOworICAgIH0KKworICAgIGl0KCdzaG91bGQgdXBkYXRlIHRoZSBhY2NlcHRhYmxlIG9m
IGN1c3RvbSByb290cyBhbmQgcGF0Y2hlcycsICgpID0+IHsKKyAgICAgICAgY29uc3QgZGIgPSBU
ZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IGluaXRpYWxVcGRhdGUgPSB1cGRh
dGVXaXRoTWFjV2ViS2l0UmVwb3NpdG9yeUdyb3VwcygpOworICAgICAgICBjb25zdCBzZWNvbmRV
cGRhdGUgPSB1cGRhdGVXaXRoTWFjV2ViS2l0UmVwb3NpdG9yeUdyb3VwcygpOworICAgICAgICBz
ZWNvbmRVcGRhdGUucmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzUm9vdHMgPSB0cnVlOworICAg
ICAgICBzZWNvbmRVcGRhdGUucmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXNbMF0uYWNj
ZXB0c1BhdGNoID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZEVtcHR5VHJpZ2dl
cmFibGUoZGIpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVw
b3J0KGluaXRpYWxVcGRhdGUpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgaW5pdGlhbFVwZGF0ZSk7CisgICAgICAgIH0pLnRoZW4oKCkg
PT4gcmVmZXRjaE1hbmlmZXN0KCkpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVw
b3NpdG9yeUdyb3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoVHJp
Z2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuYWxsKCkpOworICAgICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5hbWUoJ1dlYktpdCcpOworICAgICAgICAgICAg
Y29uc3QgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnbWFjT1MnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0t
YW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLnJlcG9z
aXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRz
UGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5uYW1lKCksICdzeXN0ZW0tb25seScpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uZGVzY3JpcHRpb24oKSwgJ3N5
c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sx
XS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsK
KyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0
YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgc2Vjb25kVXBkYXRlKTsKKyAgICAgICAg
fSkudGhlbigoKSA9PiByZWZldGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7CisgICAgICAgICAg
ICBjb25zdCByZXBvc2l0b3J5R3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29y
dEJ5TmFtZShUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5hbGwoKSk7CisgICAgICAgICAgICBj
b25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnV2ViS2l0Jyk7Cisg
ICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdt
YWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUo
KSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290
cygpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHkn
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmRlc2NyaXB0
aW9uKCksICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbbWFjb3Nd
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQ
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyks
IGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgaW5pdGlhbFVwZGF0ZSk7
CisgICAgICAgIH0pOworICAgIH0pOworCiAgICAgaXQoJ3Nob3VsZCByZXBsYWNlIGEgcmVwb3Np
dG9yeSB3aGVuIHRoZSByZXBvc2l0b3J5IGdyb3VwIG5hbWUgbWF0Y2hlcycsICgpID0+IHsKICAg
ICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgIGNvbnN0IGlu
aXRpYWxVcGRhdGUgPSB1cGRhdGVXaXRoTWFjV2ViS2l0UmVwb3NpdG9yeUdyb3VwcygpOwogICAg
ICAgICBjb25zdCBzZWNvbmRVcGRhdGUgPSB1cGRhdGVXaXRoTWFjV2ViS2l0UmVwb3NpdG9yeUdy
b3VwcygpOwogICAgICAgICBsZXQgaW5pdGlhbEdyb3VwczsKLSAgICAgICAgc2Vjb25kVXBkYXRl
LnJlcG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzWzBdID0gTW9ja0RhdGEuZ2l0V2Via2l0
UmVwb3NpdG9yeUlkKCk7CisgICAgICAgIHNlY29uZFVwZGF0ZS5yZXBvc2l0b3J5R3JvdXBzWzFd
LnJlcG9zaXRvcmllc1swXSA9IHtyZXBvc2l0b3J5OiBNb2NrRGF0YS5naXRXZWJraXRSZXBvc2l0
b3J5SWQoKX0KICAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZEVtcHR5VHJpZ2dlcmFibGUoZGIp
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KGluaXRp
YWxVcGRhdGUpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3Qt
Z3JvdXAtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3By
aXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCmluZGV4IDY2NzE3NWQzNTA5
OTg0OTNjNzlhN2ZiNTRiMzY4ZTVjY2E2ODU1MTguLmM4MmE4M2E3ZTZiMmExNDY3YjgwY2Y1ZWI0
ZjU1ODBjYTU1OTk2NTcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVh
dGUtdGVzdC1ncm91cC10ZXN0cy5qcwpAQCAtMTAzLDggKzEwMywxMyBAQCBmdW5jdGlvbiBhZGRU
cmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2sobmFtZSkKICAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0
YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3JtSWQoKX0sCiAg
ICAgICAgIF0sCiAgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogWwotICAgICAgICAgICAge25h
bWU6ICd3ZWJraXQtb25seScsIHJlcG9zaXRvcmllczogW01vY2tEYXRhLndlYmtpdFJlcG9zaXRv
cnlJZCgpXX0sCi0gICAgICAgICAgICB7bmFtZTogJ3N5c3RlbS1hbmQtd2Via2l0JywgcmVwb3Np
dG9yaWVzOiBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVw
b3NpdG9yeUlkKCldfSwKKyAgICAgICAgICAgIHtuYW1lOiAnd2Via2l0LW9ubHknLCByZXBvc2l0
b3JpZXM6IFsKKyAgICAgICAgICAgICAgICB7cmVwb3NpdG9yeTogTW9ja0RhdGEud2Via2l0UmVw
b3NpdG9yeUlkKCksIGFjY2VwdHNQYXRjaDogdHJ1ZX0KKyAgICAgICAgICAgIF19LAorICAgICAg
ICAgICAge25hbWU6ICdzeXN0ZW0tYW5kLXdlYmtpdCcsIHJlcG9zaXRvcmllczogWworICAgICAg
ICAgICAgICAgIHtyZXBvc2l0b3J5OiBNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBhY2Nl
cHRzUGF0Y2g6IGZhbHNlfSwKKyAgICAgICAgICAgICAgICB7cmVwb3NpdG9yeTogTW9ja0RhdGEu
d2Via2l0UmVwb3NpdG9yeUlkKCksIGFjY2VwdHNQYXRjaDogdHJ1ZX0KKyAgICAgICAgICAgIF19
LAogICAgICAgICBdCiAgICAgfTsKICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVz
dFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKQEAgLTIxNSw3ICsyMjAsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgIGl0KCdzaG91bGQgcmV0dXJuICJJbnZhbGlkUmV2aXNpb25TZXRzIiB3aGVuIGEgcmV2aXNp
b24gc2V0IGlzIGVtcHR5JywgKCkgPT4gewogICAgICAgICByZXR1cm4gYWRkVHJpZ2dlcmFibGVB
bmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKS50aGVuKCh0YXNrSWQpID0+IHsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxsKCkuZmluZCgocmVwb3NpdG9yeSkgPT4gcmVw
b3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpOwotICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFz
azogdGFza0lkLCByZXZpc2lvblNldHM6IFt7W3dlYmtpdC5pZCgpXTogJzE5MTYyMid9LCB7fV19
KS50aGVuKChjb250ZW50KSA9PiB7CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNr
SWQsIHJldmlzaW9uU2V0czogW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0s
IHt9XX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2Us
ICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0
cycpOwpAQCAtMjI2LDcgKzIzMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgaXQoJ3Nob3VsZCByZXR1cm4gIkludmFs
aWRSZXZpc2lvblNldHMiIHdoZW4gdGhlIG51bWJlciBvZiByZXZpc2lvbiBzZXRzIGlzIGxlc3Mg
dGhhbiB0d28nLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0
ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKHRhc2tJZCkgPT4gewogICAgICAgICAgICAgY29uc3Qg
d2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maW5kKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5
Lm5hbWUoKSA9PSAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNr
SWQsIHJldmlzaW9uU2V0czogW3tbd2Via2l0LmlkKCldOiAnMTkxNjIyJ31dfSkudGhlbigoY29u
dGVudCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lv
blNldHM6IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319XX0pLnRoZW4oKGNv
bnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIg
YmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0cycpOwpAQCAtMjU3LDcg
KzI2Miw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgaXQoJ3Nob3VsZCByZXR1cm4gIlJldmlzaW9uTm90Rm91bmQiIHdo
ZW4gcmV2aXNpb24gc2V0cyBjb250YWlucyBhbiBpbnZhbGlkIHJldmlzaW9uJywgKCkgPT4gewog
ICAgICAgICByZXR1cm4gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKS50
aGVuKCh0YXNrSWQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnku
YWxsKCkuZmluZCgocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcp
OwotICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10
ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHM6IFt7
W3dlYmtpdC5pZCgpXTogJzE5MTYyMid9LCB7W3dlYmtpdC5pZCgpXTogJzEnfV19KS50aGVuKChj
b250ZW50KSA9PiB7CisgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQu
aWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjog
JzEnfX1dOworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNl
dHN9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsK
QEAgLTI2OCw3ICsyNzQsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgIGl0KCdzaG91bGQgcmV0dXJuICJJbnZhbGlkVXBs
b2FkZWRGaWxlIiB3aGVuIHJldmlzaW9uIHNldHMgY29udGFpbnMgYW4gaW52YWxpZCBmaWxlIElE
JywgKCkgPT4gewogICAgICAgICByZXR1cm4gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdz
b21lIHRhc2snKS50aGVuKCh0YXNrSWQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuYWxsKCkuZmluZCgocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkg
PT0gJ1dlYktpdCcpOwotICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0
LmlkKCldOiAnMTkxNjIyJywgJ2N1c3RvbVJvb3RzJzogWycxJ119LCB7W3dlYmtpdC5pZCgpXTog
JzEnfV07CisgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06
IHtyZXZpc2lvbjogJzE5MTYyMid9LCAnY3VzdG9tUm9vdHMnOiBbJzEnXX0sIHtbd2Via2l0Lmlk
KCldOiB7cmV2aXNpb246ICcxJ319XTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRh
c2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9
LCAoZXJyb3IpID0+IHsKQEAgLTI3OSw3ICsyODUsOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoJ3Nob3VsZCBy
ZXR1cm4gIkludmFsaWRSZXBvc2l0b3J5IiB3aGVuIGEgcmV2aXNpb24gc2V0IHVzZXMgYSByZXBv
c2l0b3J5IG5hbWUgaW5zdGVhZCBvZiBhIHJlcG9zaXRvcnkgaWQnLCAoKSA9PiB7CiAgICAgICAg
IHJldHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKHRh
c2tJZCkgPT4gewotICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lv
blNldHM6IFt7J1dlYktpdCc6ICcxOTE2MjInfSwge31dfSkudGhlbigoY29udGVudCkgPT4gewor
ICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3snV2ViS2l0Jzoge3JldmlzaW9uOiAn
MTkxNjIyJ319LCB7fV07CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJl
dmlzaW9uU2V0c30pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9y
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFJlcG9z
aXRvcnknKTsKQEAgLTI5Nyw2ICszMDQsMjAgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
KyAgICBpdCgnc2hvdWxkIHJldHVybiAiRHVwbGljYXRlVGVzdEdyb3VwTmFtZSIgd2hlbiB0aGVy
ZSBpcyBhbHJlYWR5IGEgdGVzdCBncm91cCBvZiB0aGUgc2FtZSBuYW1lJywgKCkgPT4geworICAg
ICAgICByZXR1cm4gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKS50aGVu
KCh0YXNrSWQpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldHMgPSB7J1dlYktpdCc6
IFsnMTkxNjIyJywgJzE5MTYyMyddfTsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRh
c2tJZCwgY29tbWl0U2V0c30pLnRoZW4oKGNvbnRlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBh
c3NlcnQoY29udGVudFsndGVzdEdyb3VwSWQnXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0
JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzfSk7CisgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hl
ZCcpOworICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnRHVwbGljYXRlVGVzdEdyb3VwTmFtZScpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0pOworICAgIH0pOworCiAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSB0ZXN0IGdy
b3VwIGZyb20gY29tbWl0U2V0cyB3aXRoIHRoZSByZXBldGl0aW9uIGNvdW50IG9mIG9uZSB3aGVu
IHJlcGV0aXRpb25Db3VudCBpcyBvbWl0dGVkJywgKCkgPT4gewogICAgICAgICByZXR1cm4gYWRk
VHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKS50aGVuKCh0YXNrSWQpID0+IHsK
ICAgICAgICAgICAgIGxldCBpbnNlcnRlZEdyb3VwSWQ7CkBAIC0zMzUsNyArMzU2LDggQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgbGV0IHdlYmtpdDsKICAgICAgICAgcmV0dXJuIGFkZFRyaWdnZXJhYmxlQW5kQ3Jl
YXRlVGFzaygnc29tZSB0YXNrJykudGhlbigodGFza0lkKSA9PiB7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJ
ZCgpKTsKLSAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtuYW1lOiAndGVzdCcsIHRhc2s6IHRh
c2tJZCwgcmV2aXNpb25TZXRzOiBbe1t3ZWJraXQuaWQoKV06ICcxOTE2MjInfSwge1t3ZWJraXQu
aWQoKV06ICcxOTE2MjMnfV19OworICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tb
d2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2
aXNpb246ICcxOTE2MjMnfX1dOworICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge25hbWU6ICd0
ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9OwogICAgICAgICAgICAgbGV0IGluc2Vy
dGVkR3JvdXBJZDsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCdjcmVhdGUtdGVzdC1ncm91cCcsIHBhcmFtcykudGhlbigoY29udGVudCkgPT4gewogICAgICAg
ICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CkBAIC00
MTAsOCArNDMyLDkgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRl
VGFzaygnc29tZSB0YXNrJykudGhlbigodGFza0lkKSA9PiB7CiAgICAgICAgICAgICB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAg
ICAgICAgICAgIG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5tYWNvc1JlcG9z
aXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtuYW1lOiAndGVzdCcsIHRh
c2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAyLAotICAgICAgICAgICAgICAgIHJldmlzaW9u
U2V0czogW3tbbWFjb3MuaWQoKV06ICcxNUEyODQnLCBbd2Via2l0LmlkKCldOiAnMTkxNjIyJ30s
IHtbd2Via2l0LmlkKCldOiAnMTkxNjIzJ31dfTsKKyAgICAgICAgICAgIGNvbnN0IHJldmlzaW9u
U2V0cyA9IFt7W21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgW3dlYmtpdC5pZCgp
XToge3JldmlzaW9uOiAnMTkxNjIyJ319LAorICAgICAgICAgICAgICAgIHtbd2Via2l0LmlkKCld
OiB7cmV2aXNpb246ICcxOTE2MjMnfX1dOworICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge25h
bWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIHJldmlzaW9uU2V0
c307CiAgICAgICAgICAgICBsZXQgaW5zZXJ0ZWRHcm91cElkOwogICAgICAgICAgICAgcmV0dXJu
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywgcGFyYW1zKS50
aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29u
dGVudFsndGVzdEdyb3VwSWQnXTsKQEAgLTQ1OCw4ICs0ODEsOCBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdG
aWxlOiBzdHJlYW19LCB7dXNlRm9ybURhdGE6IHRydWV9KTsKICAgICAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0gcmVzcG9uc2Vb
J3VwbG9hZGVkRmlsZSddOwotICAgICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7
W3dlYmtpdC5pZCgpXTogJzE5MTYyMicsIFttYWNvcy5pZCgpXTogJzE1QTI4NCd9LAotICAgICAg
ICAgICAgICAgICAgICB7W3dlYmtpdC5pZCgpXTogJzE5MTYyMicsIFttYWNvcy5pZCgpXTogJzE1
QTI4NCcsICdjdXN0b21Sb290cyc6IFt1cGxvYWRlZEZpbGVbJ2lkJ11dfV07CisgICAgICAgICAg
ICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcx
OTE2MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfX0sCisgICAgICAgICAg
ICAgICAgICAgIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfSwgW21hY29zLmlk
KCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgJ2N1c3RvbVJvb3RzJzogW3VwbG9hZGVkRmlsZVsn
aWQnXV19XTsKICAgICAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0
aXRpb25Db3VudDogMiwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAg
ICAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoQnlUYXNrKHRhc2tJZCk7
CkBAIC00OTEsMTIgKzUxNCwxMDYgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBp
dCgnc2hvdWxkIGNyZWF0ZSBhIHRlc3QgZ3JvdXAgd2l0aCBhIHBhdGNoJywgKCkgPT4geworICAg
ICAgICBsZXQgdGFza0lkOworICAgICAgICBsZXQgd2Via2l0OworICAgICAgICBsZXQgbWFjb3M7
CisgICAgICAgIGxldCBpbnNlcnRlZEdyb3VwSWQ7CisgICAgICAgIGxldCB1cGxvYWRlZEZpbGU7
CisgICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycp
LnRoZW4oKGlkKSA9PiB0YXNrSWQgPSBpZCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICB3ZWJr
aXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5u
YW1lKCkgPT0gJ1dlYktpdCcpWzBdOworICAgICAgICAgICAgbWFjb3MgPSBSZXBvc2l0b3J5LmFs
bCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ21hY09TJylb
MF07CisgICAgICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgn
c29tZS5kYXQnLCAnc29tZSBjb250ZW50Jyk7CisgICAgICAgIH0pLnRoZW4oKHN0cmVhbSkgPT4g
eworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1m
aWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3JtRGF0YTogdHJ1ZX0pOworICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4geworICAgICAgICAgICAgY29uc3QgcmF3RmlsZSA9IHJlc3Bv
bnNlWyd1cGxvYWRlZEZpbGUnXTsKKyAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IFVwbG9hZGVk
RmlsZS5lbnN1cmVTaW5nbGV0b24ocmF3RmlsZS5pZCwgcmF3RmlsZSk7CisgICAgICAgICAgICBj
b25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMics
IHBhdGNoOiB1cGxvYWRlZEZpbGUuaWQoKX0sIFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVB
Mjg0J319LAorICAgICAgICAgICAgICAgIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2
MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfX1dOworICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25h
bWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDIsIHJldmlzaW9uU2V0
c30pOworICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7CisgICAgICAgICAgICBpbnNlcnRl
ZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOworICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEJ5VGFzayh0YXNrSWQpOworICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBz
KSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkp
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5m
aW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDYpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1sxXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzJdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzVdLmlzQnVpbGQoKSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sz
XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0u
aXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlz
VGVzdCgpLCB0cnVlKTsKKworICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNv
bW1pdFNldCgpOworICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNl
dCgpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBz
ZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwg
c2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCks
IHNldDApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgp
LCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBt
YWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCks
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNv
c10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRv
cnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKKyAgICAgICAgfSk7
CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHJldHVybiAiUGF0Y2hOb3RBY2NlcHRlZCIgd2hl
biBhIHBhdGNoIGlzIHNwZWNpZmllZCBmb3IgYSByZXBvc2l0b3J5IHRoYXQgZG9lcyBub3QgYWNj
ZXB0IGEgcGF0Y2gnLCAoKSA9PiB7CisgICAgICAgIGxldCB0YXNrSWQ7CisgICAgICAgIGxldCB3
ZWJraXQ7CisgICAgICAgIGxldCBtYWNvczsKKyAgICAgICAgbGV0IGluc2VydGVkR3JvdXBJZDsK
KyAgICAgICAgbGV0IHVwbG9hZGVkRmlsZTsKKyAgICAgICAgcmV0dXJuIGFkZFRyaWdnZXJhYmxl
QW5kQ3JlYXRlVGFzaygnc29tZSB0YXNrJykudGhlbigoaWQpID0+IHRhc2tJZCA9IGlkKS50aGVu
KCgpID0+IHsKKyAgICAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChy
ZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0JylbMF07CisgICAgICAg
ICAgICBtYWNvcyA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBv
c2l0b3J5Lm5hbWUoKSA9PSAnbWFjT1MnKVswXTsKKyAgICAgICAgICAgIHJldHVybiBUZW1wb3Jh
cnlGaWxlLm1ha2VUZW1wb3JhcnlGaWxlKCdzb21lLmRhdCcsICdzb21lIGNvbnRlbnQnKTsKKyAg
ICAgICAgfSkudGhlbigoc3RyZWFtKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZv
cm1EYXRhOiB0cnVlfSk7CisgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CisgICAgICAg
ICAgICBjb25zdCByYXdGaWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOworICAgICAgICAg
ICAgdXBsb2FkZWRGaWxlID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbihyYXdGaWxlLmlk
LCByYXdGaWxlKTsKKyAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5p
ZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVB
Mjg0JywgcGF0Y2g6IHVwbG9hZGVkRmlsZS5pZCgpfX0sCisgICAgICAgICAgICAgICAge1t3ZWJr
aXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjog
JzE1QTI4NCd9fV07CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0
aXRpb25Db3VudDogMiwgcmV2aXNpb25TZXRzfSk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4gewor
ICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKKyAg
ICAgICAgfSwgKGVycm9yKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdQ
YXRjaE5vdEFjY2VwdGVkJyk7CisgICAgICAgIH0pOworICAgIH0pOworCiAgICAgaXQoJ3Nob3Vs
ZCBjcmVhdGUgYSB0ZXN0IGdyb3VwIHdpdGggYW4gYW5hbHlzaXMgdGFzaycsICgpID0+IHsKICAg
ICAgICAgbGV0IGluc2VydGVkR3JvdXBJZDsKICAgICAgICAgbGV0IHdlYmtpdDsKICAgICAgICAg
cmV0dXJuIGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFzaygnc29tZSB0YXNrJykudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3Np
dG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOwotICAgICAgICAgICAg
Y29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiAnMTkxNjIyJ30sIHtbd2Via2l0
LmlkKCldOiAnMTkxNjIzJ31dOworICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tb
d2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2
aXNpb246ICcxOTE2MjMnfX1dOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywKICAgICAgICAgICAgICAgICB7bmFtZTogJ3Rl
c3QnLCB0YXNrTmFtZTogJ290aGVyIHRhc2snLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRm
b3JtSWQoKSwgdGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCByZXZpc2lvblNldHN9KTsKICAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CkBAIC01MzIsMTIgKzY0OSwxMiBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBsZXQgdGVzdCA9IE1vY2tEYXRhLnNvbWVUZXN0SWQoKTsKICAgICAgICAgcmV0dXJuIGFk
ZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFzaygnc29tZSB0YXNrJykudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4g
cmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOwotICAgICAgICAgICAgY29uc3QgcmV2
aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiAnMTkxNjIyJ30sIHtbd2Via2l0LmlkKCldOiAn
MTkxNjIzJ31dOworICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0Lmlk
KCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcx
OTE2MjMnfX1dOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywKICAgICAgICAgICAgICAgICB7bmFtZTogJ3Rlc3QxJywgdGFz
a05hbWU6ICdvdGhlciB0YXNrJywgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCks
IHRlc3QsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAg
ICAgICAgICAgIGZpcnN0UmVzdWx0ID0gcmVzdWx0OwotICAgICAgICAgICAgY29uc3QgcmV2aXNp
b25TZXRzID0gW3tbd2Via2l0LmlkKCldOiAnMTkxNjIyJ30sIHtbd2Via2l0LmlkKCldOiAnMTky
NzM2J31dOworICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCld
OiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTI3
MzYnfX1dOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywKICAgICAgICAgICAgICAgICB7bmFtZTogJ3Rlc3QyJywgdGFzazog
cmVzdWx0Wyd0YXNrSWQnXSwgcGxhdGZvcm06IE1vY2tEYXRhLm90aGVyUGxhdGZvcm1JZCgpLCB0
ZXN0LCByZXZpc2lvblNldHMsIHJlcGV0aXRpb25Db3VudDogMn0pOwogICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKQEAgLTU4MSw1ICs2OTgsNCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7Ci0KIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCmluZGV4IGU0
YjllNTlhM2RkMGVlNzBiMTA5ZmZmZmMyMDhhZWY1YjgzZWVhNzEuLjBkMDQwNjRhODliN2RhNTA1
NzI4OTY3ODRiMzQ3NzQxNDA1OTE1YTAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKQEAgLTcz
LDYgKzczLDggQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRv
cmllcycsIHtpZDogdGhpcy5naXRXZWJraXRSZXBvc2l0b3J5SWQoKSwgbmFtZTogJ0dpdC1XZWJL
aXQnfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3BsYXRmb3JtcycsIHtpZDogTW9ja0RhdGEu
c29tZVBsYXRmb3JtSWQoKSwgbmFtZTogJ3NvbWUgcGxhdGZvcm0nfSksCiAgICAgICAgICAgICBk
Yi5pbnNlcnQoJ3Rlc3RzJywge2lkOiBNb2NrRGF0YS5zb21lVGVzdElkKCksIG5hbWU6ICdzb21l
IHRlc3QnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3Rlc3RfbWV0cmljcycsIHtpZDogNTMw
MCwgdGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBuYW1lOiAnc29tZSBtZXRyaWMnfSksCisg
ICAgICAgICAgICBkYi5pbnNlcnQoJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDU0MDAsIG1l
dHJpYzogNTMwMCwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHR5cGU6ICdj
dXJyZW50J30pLAogICAgICAgICBdKTsKICAgICB9LAogICAgIGFkZE1vY2tUZXN0R3JvdXBXaXRo
R2l0V2ViS2l0KGRiKQpAQCAtMTIxLDcgKzEyMyw3IEBAIE1vY2tEYXRhID0gewogICAgICAgICAg
ICAgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50JzogJ2J1aWxkLXJlcXVlc3QtaWQnLAogICAgICAgICAg
ICAgJ3JlcG9zaXRvcnlHcm91cHMnOiB7CiAgICAgICAgICAgICAgICAgJ3dlYmtpdC1zdm4nOiB7
Ci0gICAgICAgICAgICAgICAgICAgICdyZXBvc2l0b3JpZXMnOiBbJ1dlYktpdCcsICdtYWNPUydd
LAorICAgICAgICAgICAgICAgICAgICAncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fSwgJ21h
Y09TJzoge319LAogICAgICAgICAgICAgICAgICAgICAncHJvcGVydGllcyc6IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICdvcyc6ICc8bWFjT1M+JywKICAgICAgICAgICAgICAgICAgICAgICAg
ICd3ayc6ICc8V2ViS2l0PicsCkBAIC0xNDUsNyArMTQ3LDcgQEAgTW9ja0RhdGEgPSB7CiAgICAg
ICAgICAgICAnYnVpbGRSZXF1ZXN0QXJndW1lbnQnOiAnYnVpbGQtcmVxdWVzdC1pZCcsCiAgICAg
ICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IHsKICAgICAgICAgICAgICAgICAnd2Via2l0LXN2
bic6IHsKLSAgICAgICAgICAgICAgICAgICAgJ3JlcG9zaXRvcmllcyc6IFsnV2ViS2l0JywgJ21h
Y09TJ10sCisgICAgICAgICAgICAgICAgICAgICdyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHt9
LCAnbWFjT1MnOiB7fX0sCiAgICAgICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzJzogewogICAg
ICAgICAgICAgICAgICAgICAgICAgJ29zJzogJzxtYWNPUz4nLAogICAgICAgICAgICAgICAgICAg
ICAgICAgJ3drJzogJzxXZWJLaXQ+JywKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdn
ZXJhYmxlLXRlc3RzLmpzCmluZGV4IDVkNzZmOGJjNzAzOGYyYzY0YzdlZGYxMGNmZGQ4YjYwMTkw
MGJiYzQuLmE4M2Q2NTJkZDRiMTBjNDFkYzRiMzMwZTBkZDhhN2JiZTIzYjIxYjQgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3Qt
dHJpZ2dlcmFibGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwpAQCAtOTM1LDEwICs5
MzUsNiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKICAgICAg
ICAgICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwotCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCAn
dGVzdCcpOwotICAgICAgICAgICAgfSkudGhlbigoY29uZmlndXJhdGlvbnMpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnMubGVuZ3RoLCAwKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKIAog
ICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuYWxsKClbMF07
CkBAIC05NTUsOCArOTUxLDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5j
dGlvbiAoKSB7CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2Nr
VGVzdFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpOwogICAgICAgICAgICAgICAgIGNvbmZp
Zy5yZXBvc2l0b3J5R3JvdXBzID0gewotICAgICAgICAgICAgICAgICAgICAnc3lzdGVtLW9ubHkn
OiB7cmVwb3NpdG9yaWVzOiBbJ21hY09TJ10sIHByb3BlcnRpZXM6IHsnb3MnOiAnPG1hY09TPid9
fSwKLSAgICAgICAgICAgICAgICAgICAgJ3N5c3RlbS1hbmQtd2Via2l0Jzoge3JlcG9zaXRvcmll
czogWydXZWJLaXQnLCAnbWFjT1MnXSwgcHJvcGVydGllczogeydvcyc6ICc8bWFjT1M+JywgJ3dr
JzogJzxXZWJLaXQ+J319CisgICAgICAgICAgICAgICAgICAgICdzeXN0ZW0tYW5kLXJvb3RzJzog
e2Rlc2NyaXB0aW9uOiAnQ3VzdG9tIFJvb3RzJywgcmVwb3NpdG9yaWVzOiB7J21hY09TJzoge319
LCBwcm9wZXJ0aWVzOiB7J29zJzogJzxtYWNPUz4nfSwgYWNjZXB0c1Jvb3RzOiB0cnVlfSwKKyAg
ICAgICAgICAgICAgICAgICAgJ3N5c3RlbS1hbmQtd2Via2l0Jzoge3JlcG9zaXRvcmllczogeydX
ZWJLaXQnOiB7YWNjZXB0c1BhdGNoOiB0cnVlfSwgJ21hY09TJzoge319LCBwcm9wZXJ0aWVzOiB7
J29zJzogJzxtYWNPUz4nLCAnd2snOiAnPFdlYktpdD4nfX0KICAgICAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKQEAgLTk2NCwx
MiArOTYwLDYgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgY29uc3QgYnVpbGRib3RUcmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJv
dFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQ
SSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHJldHVybiBidWlsZGJvdFRy
aWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICByZXR1cm4g
ZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsICd0ZXN0Jyk7Ci0gICAg
ICAgICAgICB9KS50aGVuKChjb25maWd1cmF0aW9ucykgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb25maWd1cmF0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb25maWd1cmF0aW9uc1swXS50ZXN0LCBNb2NrRGF0YS5zb21lVGVzdElkKCkp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1swXS5wbGF0Zm9y
bSwgTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSk7Ci0KICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgICAgIGxl
dCB0ZXN0ID0gVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpOwpAQCAtOTc5LDEw
ICs5NjksMTMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7
CiAKICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlH
cm91cC5zb3J0QnlOYW1lKHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwg
W3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFd
Lm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChncm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uZGVzY3JpcHRpb24oKSwgJ0N1c3RvbSBS
b290cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXBzWzBdLnJlcG9z
aXRvcmllcygpLCBbbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
WzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQs
IG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRz
Q3VzdG9tUm9vdHMoKSwgZmFsc2UpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0g
TW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIoKTsKICAgICAgICAg
ICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IFsgXTsKQEAgLTk5NSwxMCArOTg4LDEw
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNv
cnRCeU5hbWUoVHJpZ2dlcmFibGUuYWxsKClbMF0ucmVwb3NpdG9yeUdyb3VwcygpKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygp
LCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNb
MV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFtt
YWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFtZSgpLCAn
c3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdy
b3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKICAgICAgICAgICAgIH0p
CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKaW5kZXggYmY5ZWUwZjQzMjUyNTZiNDg5OTU0
YzQ4ZTAyZDhiN2U2NjVkNDA1ZC4uMzEwNjJkZTU5OGVjMDdlODkyZTg0ODYwZDkwZTgwY2I1ZTRh
YmQyMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxk
Ym90LXN5bmNlci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVp
bGRib3Qtc3luY2VyLmpzCkBAIC0yOTEsMTggKzI5MSwyOCBAQCBjbGFzcyBCdWlsZGJvdFN5bmNl
ciB7CiAKICAgICBzdGF0aWMgX3BhcnNlUmVwb3NpdG9yeUdyb3VwKG5hbWUsIGdyb3VwKQogICAg
IHsKLSAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZ3JvdXAucmVwb3NpdG9yaWVzKSwgJ0Vh
Y2ggcmVwb3NpdG9yeSBncm91cCBtdXN0IHNwZWNpZnkgYSBsaXN0IG9mIHJlcG9zaXRvcmllcycp
OwotICAgICAgICBhc3NlcnQoZ3JvdXAucmVwb3NpdG9yaWVzLmxlbmd0aCwgJ0VhY2ggcmVwb3Np
dG9yeSBncm91cCBtdXN0IHNwZWNpZnkgYSBsaXN0IG9mIHJlcG9zaXRvcmllcycpOwotICAgICAg
ICBhc3NlcnQoISgnZGVzY3JpcHRpb24nIGluIGdyb3VwKSB8fCB0eXBlb2YoZ3JvdXBbJ2Rlc2Ny
aXB0aW9uJ10pID09ICdzdHJpbmcnLCAnVGhlIGRlc2NyaXB0aW9uIG9mIGEgcmVwb3NpdG9yeSBn
cm91cCBtdXN0IGJlIGEgc3RyaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YoZ3Jv
dXAucHJvcGVydGllcyksICdvYmplY3QnLCAnRWFjaCByZXBvc2l0b3J5IGdyb3VwIG11c3Qgc3Bl
Y2lmeSBhIGRpY3Rpb25hcnkgb2YgcHJvcGVydGllcycpOworICAgICAgICBhc3NlcnQuZXF1YWwo
dHlwZW9mKGdyb3VwLnJlcG9zaXRvcmllcyksICdvYmplY3QnLAorICAgICAgICAgICAgYFJlcG9z
aXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGRvZXMgbm90IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IG9mIHJl
cG9zaXRvcmllc2ApOworICAgICAgICBhc3NlcnQoISgnZGVzY3JpcHRpb24nIGluIGdyb3VwKSB8
fCB0eXBlb2YoZ3JvdXBbJ2Rlc2NyaXB0aW9uJ10pID09ICdzdHJpbmcnLAorICAgICAgICAgICAg
YFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGhhdmUgYW4gaW52YWxpZCBkZXNjcmlwdGlvbmAp
OworICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKGdyb3VwLnByb3BlcnRpZXMpLCAnb2JqZWN0
JywgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyBhbiBpbnZhbGlkIGRpY3Rp
b25hcnkgb2YgcHJvcGVydGllc2ApOworICAgICAgICBhc3NlcnQoW3VuZGVmaW5lZCwgdHJ1ZSwg
ZmFsc2VdLmluY2x1ZGVzKGdyb3VwLmFjY2VwdHNSb290cyksCisgICAgICAgICAgICBgUmVwb3Np
dG9yeSBncm91cCAiJHtuYW1lfSIgY29udGFpbnMgaW52YWxpZCBhY2NlcHRzUm9vdHMgdmFsdWU6
ICR7Z3JvdXAuYWNjZXB0c1Jvb3RzfWApOwogCiAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlCeU5h
bWUgPSB7fTsKLSAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzID0gZ3JvdXAucmVwb3NpdG9yaWVz
Lm1hcCgocmVwb3NpdG9yeU5hbWUpID0+IHsKKyAgICAgICAgY29uc3QgcGFyc2VkUmVwb3NpdG9y
eUxpc3QgPSBbXTsKKyAgICAgICAgZm9yIChjb25zdCByZXBvc2l0b3J5TmFtZSBpbiBncm91cC5y
ZXBvc2l0b3JpZXMpIHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBncm91cC5yZXBvc2l0
b3JpZXNbcmVwb3NpdG9yeU5hbWVdOwogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IFJl
cG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKHJlcG9zaXRvcnlOYW1lKTsKICAgICAgICAgICAg
IGFzc2VydChyZXBvc2l0b3J5LCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBpcyBub3QgYSB2YWxpZCBy
ZXBvc2l0b3J5IG5hbWVgKTsKICAgICAgICAgICAgIHJlcG9zaXRvcnlCeU5hbWVbcmVwb3NpdG9y
eU5hbWVdID0gcmVwb3NpdG9yeTsKLSAgICAgICAgICAgIHJldHVybiByZXBvc2l0b3J5OwotICAg
ICAgICB9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2Yob3B0aW9ucyksICdvYmpl
Y3QnLCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBkb2VzIG5vdCBzcGVjaWZ5IGEgdmFsaWQgb3B0aW9u
YCk7CisgICAgICAgICAgICBhc3NlcnQoW3VuZGVmaW5lZCwgdHJ1ZSwgZmFsc2VdLmluY2x1ZGVz
KG9wdGlvbnMuYWNjZXB0c1BhdGNoKSwKKyAgICAgICAgICAgICAgICBgIiR7cmVwb3NpdG9yeU5h
bWV9IiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNQYXRjaCB2YWx1ZTogJHtvcHRpb25zLmFjY2Vw
dHNQYXRjaH1gKTsKKyAgICAgICAgICAgIHJlcG9zaXRvcnlCeU5hbWVbcmVwb3NpdG9yeU5hbWVd
ID0gcmVwb3NpdG9yeTsKKyAgICAgICAgICAgIHBhcnNlZFJlcG9zaXRvcnlMaXN0LnB1c2goe3Jl
cG9zaXRvcnk6IHJlcG9zaXRvcnkuaWQoKSwgYWNjZXB0c1BhdGNoOiBvcHRpb25zLmFjY2VwdHNQ
YXRjaH0pOworICAgICAgICB9CisKICAgICAgICAgY29uc3QgcHJvcGVydGllc1RlbXBsYXRlID0g
e307CiAgICAgICAgIGNvbnN0IHVzZWRSZXBvc2l0b3JpZXMgPSBbXTsKICAgICAgICAgZm9yIChj
b25zdCBwcm9wZXJ0eU5hbWUgaW4gZ3JvdXAucHJvcGVydGllcykgewpAQCAtMzE2LDEzICszMjYs
MTYgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgfQogICAgICAgICAgICAg
cHJvcGVydGllc1RlbXBsYXRlW3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTsKICAgICAgICAgfQotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgdXNlZFJlcG9zaXRvcmllcy5s
ZW5ndGgsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBkb2VzIG5vdCB1c2Ugc29tZSBvZiB0
aGUgbGlzdGVkIHJlcG9zaXRvcmllc2ApOworICAgICAgICBhc3NlcnQocGFyc2VkUmVwb3NpdG9y
eUxpc3QubGVuZ3RoLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgZG9lcyBub3Qgc3BlY2lm
eSBhbnkgcmVwb3NpdG9yeWApOworICAgICAgICBhc3NlcnQuZXF1YWwocGFyc2VkUmVwb3NpdG9y
eUxpc3QubGVuZ3RoLCB1c2VkUmVwb3NpdG9yaWVzLmxlbmd0aCwKKyAgICAgICAgICAgIGBSZXBv
c2l0b3J5IGdyb3VwICIke25hbWV9IiBkb2VzIG5vdCB1c2Ugc29tZSBvZiB0aGUgcmVwb3NpdG9y
aWVzIGxpc3RlZGApOwogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgbmFtZTogZ3JvdXAu
bmFtZSwKICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBncm91cC5kZXNjcmlwdGlvbiwKKyAgICAg
ICAgICAgIGFjY2VwdHNSb290czogZ3JvdXAuYWNjZXB0c1Jvb3RzLAogICAgICAgICAgICAgcHJv
cGVydGllc1RlbXBsYXRlLAogICAgICAgICAgICAgYXJndW1lbnRzOiBncm91cC5hcmd1bWVudHMs
Ci0gICAgICAgICAgICByZXBvc2l0b3JpZXM6IHJlcG9zaXRvcmllcy5tYXAoKHJlcG9zaXRvcnkp
ID0+IHJlcG9zaXRvcnkuaWQoKSksCisgICAgICAgICAgICByZXBvc2l0b3J5TGlzdDogcGFyc2Vk
UmVwb3NpdG9yeUxpc3QsCiAgICAgICAgIH07CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKaW5k
ZXggNDI5YTQxZTgwNzVhM2NkYzVmMWIzZWE5MTQ3NGFiYWI4NDFkMWU4Ny4uMjQxNWY3MDJjYzBh
ZTAxY2ZjNWJmYzg1MWM1NmY1ZTcxZDY4MWFlMCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwpAQCAtNDUs
NyArNDUsMTMgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgICAgICAndHJp
Z2dlcmFibGUnOiB0aGlzLl9uYW1lLAogICAgICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogQXJy
YXkuZnJvbShtYXAudmFsdWVzKCkpLAogICAgICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiBP
YmplY3Qua2V5cyhyZXBvc2l0b3J5R3JvdXBzKS5tYXAoKGdyb3VwTmFtZSkgPT4gewotICAgICAg
ICAgICAgICAgIHJldHVybiB7bmFtZTogZ3JvdXBOYW1lLCByZXBvc2l0b3JpZXM6IHJlcG9zaXRv
cnlHcm91cHNbZ3JvdXBOYW1lXS5yZXBvc2l0b3JpZXN9OworICAgICAgICAgICAgICAgIGNvbnN0
IGdyb3VwID0gcmVwb3NpdG9yeUdyb3Vwc1tncm91cE5hbWVdOworICAgICAgICAgICAgICAgIHJl
dHVybiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6IGdyb3VwTmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb246IGdyb3VwLmRlc2NyaXB0aW9uLAorICAgICAgICAgICAgICAg
ICAgICBhY2NlcHRzUm9vdHM6IGdyb3VwLmFjY2VwdHNSb290cywKKyAgICAgICAgICAgICAgICAg
ICAgcmVwb3NpdG9yaWVzOiBncm91cC5yZXBvc2l0b3J5TGlzdCwKKyAgICAgICAgICAgICAgICB9
OwogICAgICAgICAgICAgfSl9KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkLXJlcXVlc3QtdGVzdHMuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZC1yZXF1ZXN0LXRlc3RzLmpzCmluZGV4IGIw
ZjQwOWQ4ZjQwM2EzZjEyZTI5MjNjNzc2Zjk5NGFlMDZhM2I1MmIuLjU2Y2Q4MDdiNjVmOGE1ZWU5
MDUxMzQyMzc2MGY0OWQ4Mjc5MTAwN2EgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy91bml0LXRlc3RzL2J1aWxkLXJlcXVlc3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGQtcmVxdWVzdC10ZXN0cy5qcwpAQCAtMjMsMTEg
KzIzLDExIEBAIGZ1bmN0aW9uIHNhbXBsZUJ1aWxkUmVxdWVzdERhdGEoKQogICAgICAgICB9XSwK
ICAgICAgICAgImNvbW1pdFNldHMiOiBbewogICAgICAgICAgICAgImlkIjogIjQyNTUiLAotICAg
ICAgICAgICAgImNvbW1pdHMiOiBbIjg3ODMyIiwgIjkzMTE2Il0sCisgICAgICAgICAgICAicmV2
aXNpb25JdGVtcyI6IFt7ImNvbW1pdCI6ICI4NzgzMiJ9LCB7ImNvbW1pdCI6ICI5MzExNiJ9XSwK
ICAgICAgICAgICAgICJjdXN0b21Sb290cyI6IFtdLAogICAgICAgICB9LCB7CiAgICAgICAgICAg
ICAiaWQiOiAiNDI1NiIsCi0gICAgICAgICAgICAiY29tbWl0cyI6IFsiODc4MzIiLCAiOTYzMzYi
XSwKKyAgICAgICAgICAgICJyZXZpc2lvbkl0ZW1zIjogW3siY29tbWl0IjogIjg3ODMyIn0sIHsi
Y29tbWl0IjogIjk2MzM2In1dLAogICAgICAgICAgICAgImN1c3RvbVJvb3RzIjogW10sCiAgICAg
ICAgIH1dLAogICAgICAgICAiY29tbWl0cyI6IFt7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKaW5k
ZXggYzQ3ZmJkYWVmNjI4MzMxN2Y2YTRhZDJlN2ZmOGI2YmU3NjJmNjI1Yy4uN2UzYjBjNzMyZTA2
Njc1NjE3NmM3M2NmZmVjYzU2ZGRmNTk2OGM3ZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwpA
QCAtMTYsNyArMTYsNyBAQCBmdW5jdGlvbiBzYW1wbGVpT1NDb25maWcoKQogICAgICAgICAnYnVp
bGRSZXF1ZXN0QXJndW1lbnQnOiAnYnVpbGRfcmVxdWVzdF9pZCcsCiAgICAgICAgICdyZXBvc2l0
b3J5R3JvdXBzJzogewogICAgICAgICAgICAgJ2lvcy1zdm4td2Via2l0JzogewotICAgICAgICAg
ICAgICAgICdyZXBvc2l0b3JpZXMnOiBbJ1dlYktpdCcsICdpT1MnXSwKKyAgICAgICAgICAgICAg
ICAncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fSwgJ2lPUyc6IHt9fSwKICAgICAgICAgICAg
ICAgICAncHJvcGVydGllcyc6IHsKICAgICAgICAgICAgICAgICAgICAgJ2Rlc2lyZWRfaW1hZ2Un
OiAnPGlPUz4nLAogICAgICAgICAgICAgICAgICAgICAnb3BlbnNvdXJjZSc6ICc8V2ViS2l0Pics
CkBAIC0xMTEsNyArMTExLDcgQEAgZnVuY3Rpb24gc21hbGxDb25maWd1cmF0aW9uKCkKICAgICAg
ICAgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50JzogJ2lkJywKICAgICAgICAgJ3JlcG9zaXRvcnlHcm91
cHMnOiB7CiAgICAgICAgICAgICAnaW9zLXN2bi13ZWJraXQnOiB7Ci0gICAgICAgICAgICAgICAg
J3JlcG9zaXRvcmllcyc6IFsnaU9TJywgJ1dlYktpdCddLAorICAgICAgICAgICAgICAgICdyZXBv
c2l0b3JpZXMnOiB7J2lPUyc6IHt9LCAnV2ViS2l0Jzoge319LAogICAgICAgICAgICAgICAgICdw
cm9wZXJ0aWVzJzogewogICAgICAgICAgICAgICAgICAgICAnb3MnOiAnPGlPUz4nLAogICAgICAg
ICAgICAgICAgICAgICAnd2snOiAnPFdlYktpdD4nCkBAIC0xOTIsMTEgKzE5MiwxMSBAQCBmdW5j
dGlvbiBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QocGxhdGZvcm0sIHRlc3QpCiAgICAgYXNzZXJ0
KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOwogICAgIGFzc2VydCh0ZXN0IGluc3RhbmNl
b2YgVGVzdCk7CiAKLSAgICBsZXQgY29tbWl0U2V0ID0gQ29tbWl0U2V0LmVuc3VyZVNpbmdsZXRv
bignNDE5NycsIHtjdXN0b21Sb290czogW10sIGNvbW1pdHM6IFsKLSAgICAgICAgeydpZCc6ICcx
MTExMjcnLCAndGltZSc6IDE0NTY5NTU4MDczMzQsICdyZXBvc2l0b3J5JzogTW9ja01vZGVscy53
ZWJraXQsICdyZXZpc2lvbic6ICcxOTc0NjMnfSwKLSAgICAgICAgeydpZCc6ICcxMTEyMzcnLCAn
dGltZSc6IDE0NTY5MzE4NzQwMDAsICdyZXBvc2l0b3J5JzogTW9ja01vZGVscy5zaGFyZWRSZXBv
c2l0b3J5LCAncmV2aXNpb24nOiAnODAyMjknfSwKLSAgICAgICAgeydpZCc6ICc4ODkzMCcsICd0
aW1lJzogMCwgJ3JlcG9zaXRvcnknOiBNb2NrTW9kZWxzLmlvcywgJ3JldmlzaW9uJzogJzEzQTQ1
Mid9LAotICAgIF19KTsKKyAgICBjb25zdCB3ZWJraXQxOTc0NjMgPSBDb21taXRMb2cuZW5zdXJl
U2luZ2xldG9uKCcxMTExMjcnLCB7J2lkJzogJzExMTEyNycsICd0aW1lJzogMTQ1Njk1NTgwNzMz
NCwgJ3JlcG9zaXRvcnknOiBNb2NrTW9kZWxzLndlYmtpdCwgJ3JldmlzaW9uJzogJzE5NzQ2Myd9
KTsKKyAgICBjb25zdCBzaGFyZWQxMTEyMzcgPSBDb21taXRMb2cuZW5zdXJlU2luZ2xldG9uKCcx
MTEyMzcnLCB7J2lkJzogJzExMTIzNycsICd0aW1lJzogMTQ1NjkzMTg3NDAwMCwgJ3JlcG9zaXRv
cnknOiBNb2NrTW9kZWxzLnNoYXJlZFJlcG9zaXRvcnksICdyZXZpc2lvbic6ICc4MDIyOSd9KTsK
KyAgICBjb25zdCBpb3MxM0E0NTIgPSBDb21taXRMb2cuZW5zdXJlU2luZ2xldG9uKCc4ODkzMCcs
IHsnaWQnOiAnODg5MzAnLCAndGltZSc6IDAsICdyZXBvc2l0b3J5JzogTW9ja01vZGVscy5pb3Ms
ICdyZXZpc2lvbic6ICcxM0E0NTInfSk7CisKKyAgICBjb25zdCBjb21taXRTZXQgPSBDb21taXRT
ZXQuZW5zdXJlU2luZ2xldG9uKCc0MTk3Jywge2N1c3RvbVJvb3RzOiBbXSwgcmV2aXNpb25JdGVt
czogW3tjb21taXQ6IHdlYmtpdDE5NzQ2M30sIHtjb21taXQ6IHNoYXJlZDExMTIzN30sIHtjb21t
aXQ6IGlvczEzQTQ1Mn1dfSk7CiAKICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmVuc3VyZVNpbmds
ZXRvbignMTY3MzMtJyArIHBsYXRmb3JtLmlkKCksIHsndHJpZ2dlcmFibGUnOiBNb2NrTW9kZWxz
LnRyaWdnZXJhYmxlLAogICAgICAgICByZXBvc2l0b3J5R3JvdXA6IE1vY2tNb2RlbHMuc3ZuUmVw
b3NpdG9yeUdyb3VwLApAQCAtNTM2LDMxICs1MzYsMzkgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3lu
Y2VyJywgKCkgPT4gewogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGl0
KCdzaG91bGQgdGhyb3cgd2hlbiBhIHJlcG9zaXRvcnkgZ3JvdXAgZG9lcyBub3Qgc3BlY2lmeSBh
IGxpc3Qgb2YgcmVwb3NpdG9yeScsICgpID0+IHsKKyAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3
aGVuIGEgcmVwb3NpdG9yeSBncm91cCBkb2VzIG5vdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBvZiBy
ZXBvc2l0b3JpZXMnLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKLSAg
ICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHt9
fTsKKyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91
cCc6IHsncHJvcGVydGllcyc6IHt9fX07CiAgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29u
ZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgY29uZmlnLnJlcG9z
aXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IDF9fTsKKyAgICAg
ICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVw
b3NpdG9yaWVzJzogMX0sICdwcm9wZXJ0aWVzJzoge319OwogICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIGEgcmVw
b3NpdG9yeSBncm91cCBzcGVjaWZpZXMgYW4gZW1wdHkgbGlzdCBvZiByZXBvc2l0b3J5JywgKCkg
PT4geworICAgICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIHNw
ZWNpZmllcyBhbiBlbXB0eSBkaWN0aW9uYXJ5JywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25m
aWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7
J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IFtdfX07CisgICAgICAgICAgICAgICAgY29u
ZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IHt9
LCAncHJvcGVydGllcyc6IHt9fX07CiAgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKIAotICAgICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gYSByZXBvc2l0b3J5IGdyb3Vw
IHNwZWNpZmllcyBhIHZhbGlkIHJlcG9zaXRvcnknLCAoKSA9PiB7CisgICAgICAgIGl0KCdzaG91
bGQgdGhyb3cgd2hlbiBhIHJlcG9zaXRvcnkgZ3JvdXAgc3BlY2lmaWVzIGFuIGludmFsaWQgcmVw
b3NpdG9yeSBuYW1lJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0g
ICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7
J3JlcG9zaXRvcmllcyc6IFsnSW52YWxpZFJlcG9zaXRvcnlOYW1lJ119fTsKKyAgICAgICAgICAg
ICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9y
aWVzJzogeydJbnZhbGlkUmVwb3NpdG9yeU5hbWUnOiB7fX19fTsKKyAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBh
IHJlcG9zaXRvcnkgZ3JvdXAgc3BlY2lmaWVzIGEgcmVwb3NpdG9yeSB3aXRoIGEgbm9uLWRpY3Rp
b25hcnkgdmFsdWUnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsK
KyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKKyAg
ICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsn
cmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiAxfX19OwogICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CkBAIC01NjgsMTIgKzU3NiwxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RT
eW5jZXInLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiB0aGUgZGVzY3Jp
cHRpb24gb2YgYSByZXBvc2l0b3J5IGdyb3VwIGlzIG5vdCBhIHN0cmluZycsICgpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNv
bmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwotICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBv
c2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiBbJ1dlYktpdCdd
LCAnZGVzY3JpcHRpb24nOiAxfX07CisgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlH
cm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IFt7J1dlYktpdCc6IHt9fV0s
ICdkZXNjcmlwdGlvbic6IDF9fTsKICAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcg
PSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9y
eUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogWydXZWJLaXQnXSwgJ2Rl
c2NyaXB0aW9uJzogWzEsIDJdfX07CisgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlH
cm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IFt7J1dlYktpdCc6IHt9fV0s
ICdkZXNjcmlwdGlvbic6IFsxLCAyXX19OwogICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CkBAIC01ODEsMTIgKzU4OSwxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXIn
LCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBhIHJlcG9zaXRvcnkgZ3Jv
dXAgZG9lcyBub3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgb2YgcHJvcGVydGllcycsICgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0
IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwotICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiBbJ1dlYktp
dCddLCBwcm9wZXJ0aWVzOiAxfX07CisgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlH
cm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge319LCBw
cm9wZXJ0aWVzOiAxfX07CiAgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
YXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21h
bGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91
cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IFsnV2ViS2l0J10sIHByb3BlcnRp
ZXM6ICdoZWxsbyd9fTsKKyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9
IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fX0sIHByb3BlcnRp
ZXM6ICdoZWxsbyd9fTsKICAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpA
QCAtNTk0LDcgKzYwMiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIGEgcmVwb3NpdG9yeSBncm91cCByZWZlcnMgdG8g
YSBub24tZXhpc3RlbnQgcmVwb3NpdG9yeSBpbiB0aGUgcHJvcGVydGllcyBkaWN0aW9uYXJ5Jywg
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAg
Y29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6
IFsnV2ViS2l0J10sIHByb3BlcnRpZXM6IHsnd2snOiAnPEludmFsaWRSZXBvc2l0b3J5Pid9fX07
CisgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAn
OiB7J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge319LCBwcm9wZXJ0aWVzOiB7J3drJzogJzxJ
bnZhbGlkUmVwb3NpdG9yeT4nfX19OwogICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CkBAIC02MDIsMTUgKzYxMCwyOCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBhIHJlcG9zaXRvcnkgZ3JvdXAg
cmVmZXJzIHRvIGEgcmVwb3NpdG9yeSBpbiB0aGUgcHJvcGVydGllcyBkaWN0aW9uYXJ5IHdoaWNo
IGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpc3Qgb2YgcmVwb3NpdG9yaWVzJywgKCkgPT4gewogICAg
ICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29u
ZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgY29uZmlnLnJlcG9z
aXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IFsnV2ViS2l0J10s
IHByb3BlcnRpZXM6IHsnb3MnOiAnPGlPUz4nfX19OworICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7J1dlYktp
dCc6IHt9fSwgcHJvcGVydGllczogeydvcyc6ICc8aU9TPid9fX07CiAgICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKIAotICAgICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4g
YSByZXBvc2l0b3J5IGdyb3VwIGRvZXMgbm90IHVzZSBhIGxpdGVkIHJlcG9zaXRvcnknLCAoKSA9
PiB7CisgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBhIHJlcG9zaXRvcnkgZ3JvdXAgZG9l
cyBub3QgdXNlIGEgbGlzdGVkIHJlcG9zaXRvcnknLCAoKSA9PiB7CisgICAgICAgICAgICBhc3Nl
cnQudGhyb3dzKCgpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENv
bmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9
IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fX0sIHByb3BlcnRp
ZXM6IHt9fX07CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIHNwZWNpZmllcyBu
b24tYm9vbGVhbiB2YWx1ZSB0byBhY2NlcHRzUm9vdHMnLCAoKSA9PiB7CisgICAgICAgICAgICBh
c3NlcnQudGhyb3dzKCgpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFs
bENvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3Vw
cyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fX0sICdwcm9w
ZXJ0aWVzJzogeyd3ZWJraXQnOiAnPFdlYktpdD4nfSwgYWNjZXB0c1Jvb3RzOiAxfX07CisgICAg
ICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29u
ZmlnKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0g
ICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7
J3JlcG9zaXRvcmllcyc6IFsnV2ViS2l0J10sIHByb3BlcnRpZXM6IHt9fX07CisgICAgICAgICAg
ICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRv
cmllcyc6IHsnV2ViS2l0Jzoge319LCAncHJvcGVydGllcyc6IHsnd2Via2l0JzogJzxXZWJLaXQ+
J30sIGFjY2VwdHNSb290czogW119fTsKICAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMv
cmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Vu
aXQtdGVzdHMvcmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzCmluZGV4IDEwNTNmNzg0MzdhOWQ0
Nzg4ZTFmOGQ1MjZiMmZiMzM4ZjIyNTc5Y2EuLjBmNmNhMTJmZmI5MDk0N2RkYzE0YmU0MTZhNzc1
MmIwM2JhMjU2NmIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRl
c3RzL3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay12My1tb2RlbHMuanMKQEAgLTQ1LDE1ICs0
NSwxNSBAQCB2YXIgTW9ja01vZGVscyA9IHsKIAogICAgICAgICAgICAgTW9ja01vZGVscy5vc1Jl
cG9zaXRvcnlHcm91cCA9IG5ldyBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cCgzMSwgewogICAg
ICAgICAgICAgICAgIG5hbWU6ICdpb3MnLAotICAgICAgICAgICAgICAgIHJlcG9zaXRvcmllczog
W01vY2tNb2RlbHMuaW9zXQorICAgICAgICAgICAgICAgIHJlcG9zaXRvcmllczogW3tyZXBvc2l0
b3J5OiBNb2NrTW9kZWxzLmlvc31dCiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIE1vY2tN
b2RlbHMuc3ZuUmVwb3NpdG9yeUdyb3VwID0gbmV3IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3Vw
KDMyLCB7CiAgICAgICAgICAgICAgICAgbmFtZTogJ2lvcy1zdm4td2Via2l0JywKLSAgICAgICAg
ICAgICAgICByZXBvc2l0b3JpZXM6IFtNb2NrTW9kZWxzLmlvcywgTW9ja01vZGVscy53ZWJraXQs
IE1vY2tNb2RlbHMuc2hhcmVkUmVwb3NpdG9yeV0KKyAgICAgICAgICAgICAgICByZXBvc2l0b3Jp
ZXM6IFt7cmVwb3NpdG9yeTogTW9ja01vZGVscy5pb3N9LCB7cmVwb3NpdG9yeTogTW9ja01vZGVs
cy53ZWJraXR9LCB7cmVwb3NpdG9yeTogTW9ja01vZGVscy5zaGFyZWRSZXBvc2l0b3J5fV0KICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgTW9ja01vZGVscy5naXRSZXBvc2l0b3J5R3JvdXAg
PSBuZXcgVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAoMzMsIHsKICAgICAgICAgICAgICAgICBu
YW1lOiAnaW9zLWdpdC13ZWJraXQnLAotICAgICAgICAgICAgICAgIHJlcG9zaXRvcmllczogW01v
Y2tNb2RlbHMuaW9zLCBNb2NrTW9kZWxzLndlYmtpdEdpdCwgTW9ja01vZGVscy5zaGFyZWRSZXBv
c2l0b3J5XQorICAgICAgICAgICAgICAgIHJlcG9zaXRvcmllczogW3tyZXBvc2l0b3J5OiBNb2Nr
TW9kZWxzLmlvc30sIHtyZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdEdpdH0sIHtyZXBvc2l0
b3J5OiBNb2NrTW9kZWxzLnNoYXJlZFJlcG9zaXRvcnl9XQogICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgICBNb2NrTW9kZWxzLnRyaWdnZXJhYmxlID0gbmV3IFRyaWdnZXJhYmxlKDMsIHtuYW1l
OiAnYnVpbGQtd2Via2l0JywKICAgICAgICAgICAgICAgICByZXBvc2l0b3J5R3JvdXBzOiBbTW9j
a01vZGVscy5vc1JlcG9zaXRvcnlHcm91cCwgTW9ja01vZGVscy5zdm5SZXBvc2l0b3J5R3JvdXAs
IE1vY2tNb2RlbHMuZ2l0UmVwb3NpdG9yeUdyb3VwXSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Rlc3QtZ3JvdXBzLXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanMKaW5kZXggNGI2
ZmQwNjZkYzc3NTc2MzkzMDY1MTRlOTM0OGY2MWM4MTY0N2ExZS4uODk0MWI2NGI1MGQ4NWI0OTcw
MjY3Mzk4MmFkZmMwZGVkM2JhZWE2YyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanMKQEAgLTY5LDExICs2OSwx
MSBAQCBmdW5jdGlvbiBzYW1wbGVUZXN0R3JvdXAoKSB7CiAgICAgICAgIH1dLAogICAgICAgICAi
Y29tbWl0U2V0cyI6IFt7CiAgICAgICAgICAgICAiaWQiOiAiNDI1NSIsCi0gICAgICAgICAgICAi
Y29tbWl0cyI6IFsiODc4MzIiLCAiOTMxMTYiXSwKKyAgICAgICAgICAgICJyZXZpc2lvbkl0ZW1z
IjogW3siY29tbWl0IjogIjg3ODMyIn0sIHsiY29tbWl0IjogIjkzMTE2In1dLAogICAgICAgICAg
ICAgImN1c3RvbVJvb3RzIjogW10sCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgICJpZCI6ICI0
MjU2IiwKLSAgICAgICAgICAgICJjb21taXRzIjogWyI4NzgzMiIsICI5NjMzNiJdLAorICAgICAg
ICAgICAgInJldmlzaW9uSXRlbXMiOiBbeyJjb21taXQiOiAiODc4MzIifSwgeyJjb21taXQiOiAi
OTYzMzYifV0sCiAgICAgICAgICAgICAiY3VzdG9tUm9vdHMiOiBbXSwKICAgICAgICAgfV0sCiAg
ICAgICAgICJjb21taXRzIjogW3sK
</data>

          </attachment>
      

    </bug>

</bugzilla>