<?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>236739</bug_id>
          
          <creation_ts>2022-02-16 15:12:03 -0800</creation_ts>
          <short_desc>Hook up PushManager to notification permission state</short_desc>
          <delta_ts>2022-02-18 21:28:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Nham">nham</reporter>
          <assigned_to name="Ben Nham">nham</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>nham</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842552</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-16 15:12:03 -0800</bug_when>
    <thetext>Hook up PushManager to notification permission state</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842562</commentid>
    <comment_count>1</comment_count>
      <attachid>452257</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-16 15:24:28 -0800</bug_when>
    <thetext>Created attachment 452257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842602</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-16 16:52:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/89056721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842684</commentid>
    <comment_count>3</comment_count>
      <attachid>452302</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-16 20:40:56 -0800</bug_when>
    <thetext>Created attachment 452302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842720</commentid>
    <comment_count>4</comment_count>
      <attachid>452302</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2022-02-16 22:52:16 -0800</bug_when>
    <thetext>Comment on attachment 452302
Patch

This seems fine. Ping me when the bots are green and I&apos;ll give it the nit-pick look, but it&apos;ll be r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842767</commentid>
    <comment_count>5</comment_count>
      <attachid>452334</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-17 00:56:19 -0800</bug_when>
    <thetext>Created attachment 452334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842768</commentid>
    <comment_count>6</comment_count>
      <attachid>452335</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-17 00:58:30 -0800</bug_when>
    <thetext>Created attachment 452335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842769</commentid>
    <comment_count>7</comment_count>
      <attachid>452336</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-17 01:00:06 -0800</bug_when>
    <thetext>Created attachment 452336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842901</commentid>
    <comment_count>8</comment_count>
      <attachid>452366</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-17 07:57:51 -0800</bug_when>
    <thetext>Created attachment 452366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843292</commentid>
    <comment_count>9</comment_count>
      <attachid>452486</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-17 23:02:31 -0800</bug_when>
    <thetext>Created attachment 452486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843445</commentid>
    <comment_count>10</comment_count>
      <attachid>452486</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-18 09:08:25 -0800</bug_when>
    <thetext>Comment on attachment 452486
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=452486&amp;action=review

&gt; Source/WebCore/Modules/push-api/PushManager.cpp:134
&gt; +                promise.reject(Exception { NotAllowedError, &quot;User denied push permission&quot;_s });

We may want to provide a clearer explanation here of WHY this is failing.

&gt; Source/WebCore/Modules/push-api/PushManager.cpp:139
&gt; +            // Ref { *this } triggers a compiler bug on wincairo where it tries to ref the lambda instead of PushManager.

MSVC has trouble with nested lambdas. I think the trick to get this building in MSVC is to capture `protectedThis = WTFMove(protectedThis)` below instead of `protectedThis = Ref { *this }`.

&gt; Source/WebCore/Modules/push-api/PushManager.cpp:170
&gt; +        if (permission == NotificationPermission::Default)

This screams for a switch statement IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843620</commentid>
    <comment_count>11</comment_count>
      <attachid>452486</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2022-02-18 13:33:20 -0800</bug_when>
    <thetext>Comment on attachment 452486
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=452486&amp;action=review

R+ with review feedback addressed

&gt;&gt; Source/WebCore/Modules/push-api/PushManager.cpp:139
&gt;&gt; +            // Ref { *this } triggers a compiler bug on wincairo where it tries to ref the lambda instead of PushManager.
&gt; 
&gt; MSVC has trouble with nested lambdas. I think the trick to get this building in MSVC is to capture `protectedThis = WTFMove(protectedThis)` below instead of `protectedThis = Ref { *this }`.

I think the bot bubbles are all green, which is good.

&gt;&gt; Source/WebCore/Modules/push-api/PushManager.cpp:170
&gt;&gt; +        if (permission == NotificationPermission::Default)
&gt; 
&gt; This screams for a switch statement IMO.

Agreed: Switch plz</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843621</commentid>
    <comment_count>12</comment_count>
      <attachid>452486</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-18 13:34:02 -0800</bug_when>
    <thetext>Comment on attachment 452486
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=452486&amp;action=review

&gt;&gt;&gt; Source/WebCore/Modules/push-api/PushManager.cpp:139
&gt;&gt;&gt; +            // Ref { *this } triggers a compiler bug on wincairo where it tries to ref the lambda instead of PushManager.
&gt;&gt; 
&gt;&gt; MSVC has trouble with nested lambdas. I think the trick to get this building in MSVC is to capture `protectedThis = WTFMove(protectedThis)` below instead of `protectedThis = Ref { *this }`.
&gt; 
&gt; I think the bot bubbles are all green, which is good.

Well, they are all green because of an ugly #if !PLATFORM(WIN_CAIRO)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843675</commentid>
    <comment_count>13</comment_count>
      <attachid>452590</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-18 15:48:44 -0800</bug_when>
    <thetext>Created attachment 452590
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843759</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-18 19:25:13 -0800</bug_when>
    <thetext>Found 1 new test failure: http/wpt/push-api/onpush-disabled.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843764</commentid>
    <comment_count>15</comment_count>
      <attachid>452617</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-18 19:44:36 -0800</bug_when>
    <thetext>Created attachment 452617
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843783</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-18 21:27:58 -0800</bug_when>
    <thetext>Committed r290198 (247526@main): &lt;https://commits.webkit.org/247526@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452617.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452257</attachid>
            <date>2022-02-16 15:24:28 -0800</date>
            <delta_ts>2022-02-16 20:40:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236739-20220216152426.patch</filename>
            <type>text/plain</type>
            <size>24634</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjZjZjkzZGY4ZjA3YTkz
OTBjN2IyMWRlYjZiNjVjOWIzMjBkNzM2My4uNzE1ZWIxNTdjNmM4MGU5YmM1ZGJiYzA1YjMwNmEx
MWZjOTk5M2M3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIyLTAyLTE2ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8g
cGVybWlzc2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpbXBsZW1lbnRzIFB1c2hNYW5hZ2VyLnBlcm1pc3Npb25TdGF0ZS4gSXQg
YWxzbyBtYWtlcyBQdXNoTWFuYWdlci5zdWJzY3JpYmUgcmVxdWVzdAorICAgICAgICBwZXJtaXNz
aW9uIGZyb20gdGhlIHVzZXIgdG8gc2hvdyBub3RpZmljYXRpb25zIGlmIHRoZSBwZXJtaXNzaW9u
IGlzIHRoZSBkZWZhdWx0IHN0YXRlIGFuZAorICAgICAgICB0aGUgY2FsbGVyIGlzIGEgZG9jdW1l
bnQuIElmIHRoZSBjYWxsZXIgaXMgYSBzZXJ2aWNlIHdvcmtlciwgaXQgaXMgbm90IGFsbG93ZWQg
dG8gYXNrIHRoZQorICAgICAgICB1c2VyIGZvciBwZXJtaXNzaW9uIHRvIHN1YnNjcmliZS4gVGhp
cyBpcyBhbGxvd2VkIGZvciBieSB0aGUgc3BlYy4KKworICAgICAgICBUaGVyZSBhbHNvIG5lZWRz
IHRvIGJlIHNvbWUgY29kZSBhZGRlZCB3aGljaCByZW1vdmVzIGEgcHVzaCBzdWJzY3JpcHRpb24g
aWYgdGhlIHVzZXIgZGVsZXRlcworICAgICAgICB0aGUgc3Vic2NyaXB0aW9uIGVudGlyZWx5IGlu
IHRoZSBVSSwgZm9yIGluc3RhbmNlIHdoZW4gdGhlIFVJUHJvY2VzcyBjYWxscworICAgICAgICBX
S05vdGlmaWNhdGlvbk1hbmFnZXJQcm92aWRlckRpZFJlbW92ZU5vdGlmaWNhdGlvblBvbGljaWVz
LiBUaGF0IHdpbGwgYmUgaGFuZGxlZCBpbiBhCisgICAgICAgIHNlcGFyYXRlIHBhdGNoLgorCisg
ICAgICAgIENvdmVyZWQgYnkgbmV3IGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMv
cHVzaC1hcGkvUHVzaE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHVzaE1hbmFnZXI6
OnN1YnNjcmliZSk6CisgICAgICAgIChXZWJDb3JlOjpQdXNoTWFuYWdlcjo6Z2V0U3Vic2NyaXB0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlB1c2hNYW5hZ2VyOjpwZXJtaXNzaW9uU3RhdGUpOgor
CiAyMDIyLTAyLTE1ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAK
ICAgICAgICAgSW1wbGVtZW50IGFkZGl0aW9uYWwgUmV2ZWFsIG1ldGhvZHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDY4YmZkYjQ4NzNhYTA1YmZiMWQ2MjM1MWRlZjM2NDRmZDcwOTNlMDcuLjIzNGI5NmJmZDFkMzMx
Yzc2Mjg1ZDA1MDFhZWNhZmNmN2VmOTgyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjItMDItMTYgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSG9vayB1cCBQ
dXNoTWFuYWdlciB0byBwZXJtaXNzaW9uIHN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgY29tbWVudCBleHBsYWluaW5nIHdoeSB3ZSBz
dGlsbCBoYXZlIGEgcGVybWlzc2lvbiBzdGF0ZSBzdHViIGluIHdlYnB1c2hkLgorCisgICAgICAg
ICogd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbToKKyAgICAgICAgKFdlYlB1c2hEOjpEYWVtb246
OmdldFB1c2hQZXJtaXNzaW9uU3RhdGUpOgorCiAyMDIyLTAyLTE1ICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGFkZGl0aW9uYWwg
UmV2ZWVhbCBtZXRob2RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNo
LWFwaS9QdXNoTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1
c2hNYW5hZ2VyLmNwcAppbmRleCA0YzcxNTYyY2QwNDY0N2IxMDc3ODQ0OTUxYWUyZTdlOGE3YzVh
YzE1Li4yNzljZjE0ZGQ5M2QzMTJkNjgwODk1N2JhN2Y4ZDE2NDBlMjY4YTc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTUHVzaFBlcm1pc3Np
b25TdGF0ZS5oIgogI2luY2x1ZGUgIkpTUHVzaFN1YnNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIlB1c2hDcnlwdG8uaCIKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5oIgpAQCAtNjUsMTEgKzY2LDExIEBAIHZvaWQgUHVzaE1hbmFnZXI6OmRlcmVmKCkgY29u
c3QKICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uZGVyZWYoKTsKIH0KIAotdm9pZCBQ
dXNoTWFuYWdlcjo6c3Vic2NyaWJlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJbml0PiYm
IG9wdGlvbnMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8UHVzaFN1YnNjcmlwdGlv
bj4+JiYgcHJvbWlzZSkKK3ZvaWQgUHVzaE1hbmFnZXI6OnN1YnNjcmliZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPFB1c2hTdWJzY3JpcHRpb25PcHRpb25z
SW5pdD4mJiBvcHRpb25zLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFB1c2hTdWJz
Y3JpcHRpb24+PiYmIHByb21pc2UpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5pc1NlY3VyZUNvbnRleHQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoY29udGV4
dC5pc1NlY3VyZUNvbnRleHQoKSk7CiAgICAgCi0gICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5l
dmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgY29udGV4dC5ldmVudExv
b3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9LCBjb250ZXh0ID0gUmVmIHsgY29udGV4dCB9LCBvcHRpb25zID0g
V1RGTW92ZShvcHRpb25zKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7
CiAgICAgICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy0+dXNlclZpc2libGVPbmx5KSB7CiAg
ICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJT
dWJzY3JpYmluZyBmb3IgcHVzaCByZXF1aXJlcyB1c2VyVmlzaWJsZU9ubHkgdG8gYmUgdHJ1ZSJf
cyB9KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTExMSwyMiArMTEyLDU4IEBAIHZvaWQgUHVz
aE1hbmFnZXI6OnN1YnNjcmliZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBzdGQ6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAg
ICBhdXRvIGNsaWVudCA9IGNvbnRleHQtPm5vdGlmaWNhdGlvbkNsaWVudCgpOworICAgICAgICBh
dXRvIHBlcm1pc3Npb24gPSBjbGllbnQgPyBjbGllbnQtPmNoZWNrUGVybWlzc2lvbihjb250ZXh0
LnB0cigpKSA6IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlbmllZDsKKworICAgICAgICBpZiAo
cGVybWlzc2lvbiA9PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpEZW5pZWQpIHsKKyAgICAgICAg
ICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlVzZXIgZGVu
aWVkIHB1c2ggcGVybWlzc2lvbiJfcyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChwZXJtaXNzaW9uID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRl
ZmF1bHQgJiYgIWNvbnRleHQtPmlzRG9jdW1lbnQoKSkgeworICAgICAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiVXNlciBkZW5pZWQgcHVzaCBwZXJt
aXNzaW9uIl9zIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHBlcm1pc3Npb24gPT0gTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVmYXVsdCkgeworICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY2xpZW50KTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisKKyAgICAgICAgICAgIGNsaWVudC0+cmVxdWVz
dFBlcm1pc3Npb24oY29udGV4dCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
LCBrZXlEYXRhID0ga2V5RGF0YVJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcGVybWlzc2lvbikgbXV0YWJsZSB7CisgICAgICAgICAg
ICAgICAgaWYgKHBlcm1pc3Npb24gIT0gTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6R3JhbnRlZCkg
eworICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxv
d2VkRXJyb3IsICJVc2VyIGRlbmllZCBwdXNoIHBlcm1pc3Npb24iX3MgfSk7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBt
X3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uc3Vic2NyaWJlVG9QdXNoU2VydmljZShXVEZNb3Zl
KGtleURhdGEpLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQocGVybWlzc2lv
biA9PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpHcmFudGVkKTsKICAgICAgICAgbV9zZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uLnN1YnNjcmliZVRvUHVzaFNlcnZpY2Uoa2V5RGF0YVJlc3VsdC5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSwgV1RGTW92ZShwcm9taXNlKSk7CiAgICAgfSk7CiB9CiAKLXZv
aWQgUHVzaE1hbmFnZXI6OmdldFN1YnNjcmlwdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMTnVsbGFibGU8SURM
SW50ZXJmYWNlPFB1c2hTdWJzY3JpcHRpb24+Pj4mJiBwcm9taXNlKQordm9pZCBQdXNoTWFuYWdl
cjo6Z2V0U3Vic2NyaXB0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8UHVzaFN1YnNjcmlwdGlvbj4+
PiYmIHByb21pc2UpCiB7Ci0gICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5ldmVudExvb3AoKS5x
dWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBS
ZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAg
ICBjb250ZXh0LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXSgpIG11dGFibGUgewogICAgICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24u
Z2V0UHVzaFN1YnNjcmlwdGlvbihXVEZNb3ZlKHByb21pc2UpKTsKICAgICB9KTsKIH0KIAotdm9p
ZCBQdXNoTWFuYWdlcjo6cGVybWlzc2lvblN0YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbk9wdGlv
bnNJbml0PiYmIG9wdGlvbnMsIERPTVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQdXNo
UGVybWlzc2lvblN0YXRlPj4mJiBwcm9taXNlKQordm9pZCBQdXNoTWFuYWdlcjo6cGVybWlzc2lv
blN0YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8UHVz
aFN1YnNjcmlwdGlvbk9wdGlvbnNJbml0PiYmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVy
YXRpb248UHVzaFBlcm1pc3Npb25TdGF0ZT4+JiYgcHJvbWlzZSkKIHsKLSAgICBVTlVTRURfUEFS
QU0ob3B0aW9ucyk7Ci0gICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5ldmVudExvb3AoKS5xdWV1
ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYg
eyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKLSAgICAg
ICAgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmdldFB1c2hQZXJtaXNzaW9uU3RhdGUoV1RG
TW92ZShwcm9taXNlKSk7CisgICAgY29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1Nv
dXJjZTo6TmV0d29ya2luZywgW2NvbnRleHQgPSBSZWYgeyBjb250ZXh0IH0sIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIGNsaWVudCA9IGNvbnRl
eHQtPm5vdGlmaWNhdGlvbkNsaWVudCgpOworICAgICAgICBhdXRvIHBlcm1pc3Npb24gPSBjbGll
bnQgPyBjbGllbnQtPmNoZWNrUGVybWlzc2lvbihjb250ZXh0LnB0cigpKSA6IE5vdGlmaWNhdGlv
blBlcm1pc3Npb246OkRlbmllZDsKKworICAgICAgICBpZiAocGVybWlzc2lvbiA9PSBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uOjpEZWZhdWx0KQorICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFB1
c2hQZXJtaXNzaW9uU3RhdGU6OlByb21wdCk7CisgICAgICAgIGVsc2UgaWYgKHBlcm1pc3Npb24g
PT0gTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6R3JhbnRlZCkKKyAgICAgICAgICAgIHByb21pc2Uu
cmVzb2x2ZShQdXNoUGVybWlzc2lvblN0YXRlOjpHcmFudGVkKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFB1c2hQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CiAg
ICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERh
ZW1vbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQppbmRleCBh
ZGQ2ZTNkOGFkZmVhODk5ODg4ZjRiYWY2MWFjYzA1MzEzNjNkY2M1Li5hYTM0NThjZTI1Njk3Njg1
OTNhY2ZmNTdlMDliM2MyMjJjODc0YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL1dlYlB1c2hEYWVtb24ubW0KKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQdXNo
RGFlbW9uLm1tCkBAIC02MTgsMTIgKzYxOCwxMCBAQCB2b2lkIERhZW1vbjo6Z2V0UHVzaFN1YnNj
cmlwdGlvbihDbGllbnRDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBVUkwmIHNjb3BlVQog
CiB2b2lkIERhZW1vbjo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZShDbGllbnRDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IEV4cGVjdGVkPHVpbnQ4X3QsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+Jik+JiYgcmVwbHlT
ZW5kZXIpCiB7Ci0gICAgLy8gRklYTUUKLSNpZiBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxf
VE9LRU5fU1VQUE9SVCkKLSAgICByZXBseVNlbmRlcihzdGF0aWNfY2FzdDx1aW50OF90PihXZWJD
b3JlOjpQdXNoUGVybWlzc2lvblN0YXRlOjpHcmFudGVkKSk7Ci0jZWxzZQorICAgIC8vIEZJWE1F
OiBUaGlzIGRvZXNuJ3QgYWN0dWFsbHkgZ2V0IGNhbGxlZCByaWdodCBub3csIHNpbmNlIHRoZSBw
ZXJtaXNzaW9uIGlzIGN1cnJlbnRseSBjaGVja2VkCisgICAgLy8gaW4gV2ViUHJvY2Vzcy4gSG93
ZXZlciwgd2UndmUgbGVmdCB0aGlzIHN0dWIgaW4gZm9yIG5vdyBiZWNhdXNlIHRoZXJlIGlzIGEg
Y2hhbmNlIHRoYXQgd2UKKyAgICAvLyB3aWxsIG1vdmUgdGhlIHBlcm1pc3Npb24gY2hlY2sgaW50
byB3ZWJwdXNoZCB3aGVuIHN1cHBvcnRpbmcgb3RoZXIgcGxhdGZvcm1zLgogICAgIHJlcGx5U2Vu
ZGVyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFdlYkNvcmU6OlB1c2hQZXJtaXNzaW9uU3RhdGU6OkRl
bmllZCkpOwotI2VuZGlmCiB9CiAKIENsaWVudENvbm5lY3Rpb24qIERhZW1vbjo6dG9DbGllbnRD
b25uZWN0aW9uKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxYzdiYzFjODhiMTc1ZmM0ZjhlZjA2
NmY4NWM1ODhlNGU5ZjM4YWQ5Li43MGFlMWQxMWNmZmM5YjU2N2Y3MjEwYTc4Y2M5ZTE2NTg2ZjAw
ODFlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjItMDItMTYgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisK
KyAgICAgICAgSG9vayB1cCBQdXNoTWFuYWdlciB0byBwZXJtaXNzaW9uIHN0YXRlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWRlIHRoZSBXZWJQdXNo
RCBBUEkgdGVzdHMgd29yayBub3cgdGhhdCBzdWJzY3JpYmUgY2hlY2tzIGZvciBwZXJtaXNzaW9u
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFl
bW9uLm1tOgorCiAyMDIyLTAyLTE1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KIAogICAgICAgICBnaXQtd2Via2l0IHNldHVwIHNob3VsZCB2ZXJpZnkgdGhlIGNyZWRlbnRp
YWxzIGJlZm9yZSBzYXZpbmcgdGhlbQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tCmluZGV4IGI3YjM0YjZjYWE1NDdiZTMy
YTM3NjI4Y2NmMWFjZGVlYzZmNWQ2NTkuLjdiOTEwMjhkY2FhZjgxMmM4ODllY2I2OTI3ZjNiNTg5
Yzk3NWRiMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV2ViUHVzaERhZW1vbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dlYlB1c2hEYWVtb24ubW0KQEAgLTQyNiw2ICs0MjYsMTAgQEAgcHJvdGVjdGVkOgog
CiAgICAgICAgIG1fbm90aWZpY2F0aW9uTWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbTm90aWZp
Y2F0aW9uU2NyaXB0TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW1ttX2Nv
bmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxl
cjptX25vdGlmaWNhdGlvbk1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJub3RlIl07CisKKyAg
ICAgICAgbV93ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOm1fY29uZmlndXJhdGlv
bi5nZXQoKV0pOworICAgICAgICBtX3VpRGVsZWdhdGUgPSBhZG9wdE5TKFtbTm90aWZpY2F0aW9u
UGVybWlzc2lvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgICAgIFttX3dlYlZpZXcgc2V0
VUlEZWxlZ2F0ZTptX3VpRGVsZWdhdGUuZ2V0KCldOwogICAgIH0KIAogICAgIHZvaWQgbG9hZFJl
cXVlc3QoY29uc3QgY2hhciogaHRtbFNvdXJjZSwgY29uc3QgY2hhciogc2VydmljZVdvcmtlclNj
cmlwdFNvdXJjZSkKQEAgLTQ0MCw3ICs0NDQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICB7
ICIvc3cuanMiLCB7IHsgeyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQi
IH0gfSwgc2VydmljZVdvcmtlclNjcmlwdFNvdXJjZSB9IH0KICAgICAgICAgfSwgVGVzdFdlYktp
dEFQSTo6SFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHApKTsKIAotICAgICAgICBtX3dlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246bV9jb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAg
ICAgIFttX3dlYlZpZXcgbG9hZFJlcXVlc3Q6bV9zZXJ2ZXItPnJlcXVlc3QoKV07CiAgICAgfQog
CkBAIC00NTYsNiArNDU5LDcgQEAgcHJvdGVjdGVkOgogICAgIFJldGFpblB0cjxOb3RpZmljYXRp
b25TY3JpcHRNZXNzYWdlSGFuZGxlcj4gbV9ub3RpZmljYXRpb25NZXNzYWdlSGFuZGxlcjsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcj4gbV9zZXJ2ZXI7CiAg
ICAgUmV0YWluUHRyPFdLV2ViVmlldz4gbV93ZWJWaWV3OworICAgIFJldGFpblB0cjxpZDxXS1VJ
RGVsZWdhdGVQcml2YXRlPj4gbV91aURlbGVnYXRlOwogfTsKIAogY2xhc3MgV2ViUHVzaERJbmpl
Y3RlZFB1c2hUZXN0IDogcHVibGljIFdlYlB1c2hEVGVzdCB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmYzMGNlZWMwODVm
ZjVhNTI1NzRlODE2ZDMwZmFkMmI3NDIyZDAzMy4uMmFjOWY1NjA1MjQzMzZjMDQ4NjZmYzdiMGRh
NzdmZTU3YTIwNTdmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIyLTAyLTE2ICBCZW4gTmhh
bSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8gcGVy
bWlzc2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgdGVzdHMgdGhhdCBtYWtlIHN1cmUgdGhhdCBQdXNoTWFuYWdlci5wZXJtaXNz
aW9uU3RhdGUoKSBhbmQgUHVzaE1hbmFnZXIuc3Vic2NyaWJlKCkKKyAgICAgICAgcmVzcGVjdCB0
aGUgbm90aWZpY2F0aW9uIHBlcm1pc3Npb24gbGV2ZWwgZm9yIHRoZSBjdXJyZW50IG9yaWdpbi4K
KworICAgICAgICBJIG1hZGUgdGhlc2UgcmVndWxhciB0ZXN0cyByYXRoZXIgdGhhbiBXUFQgdGVz
dHMgYmVjYXVzZSB0aGUgV1BUIHRlc3QgaGFybmVzcyBjYWxscworICAgICAgICBncmFudFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb24gYXQgdGhlIHRvcCBvZiBpdHMgc2V0dXAgc2NyaXB0IChpbiB0
ZXN0aGFybmVzc3JlcG9ydC5qcyksIGFuZAorICAgICAgICBJIGRpZG4ndCB3YW50IHRvIGNoYW5n
ZSB0aGF0IGZvciB0aGlzIHBhdGNoLgorCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9y
ZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoUHVz
aEFQSVRlc3QpOgorICAgICAgICAod2FpdEZvclN0YXRlKToKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanM6IEFkZGVkLgorICAgICAgICAo
YXN5bmMgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3RhdGUpOgorICAgICAgICAoYXN5bmMg
dGVzdERvY3VtZW50UGVybWlzc2lvblN0YXRlKToKKyAgICAgICAgKGFzeW5jIHRlc3RTZXJ2aWNl
V29ya2VyU3Vic2NyaWJlKToKKyAgICAgICAgKGFzeW5jIHRlc3REb2N1bWVudFN1YnNjcmliZSk6
CisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLXdvcmtl
ci5qczogQWRkZWQuCisgICAgICAgIChhc3luYyBldmVudCk6CisgICAgICAgICogaHR0cC90ZXN0
cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVy
bWlzc2lvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJz
Y3JpYmUtZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lv
bnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1sOiBBZGRlZC4KKwogMjAyMi0wMi0xNSAgTWF0
dGVvIEZsb3JlcyAgPG1hdHRlb19mbG9yZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFzbGlu
aW5nIGZvbnRzL21vbm9zcGFjZS5odG1sIGZvciBNb250ZXJleS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvcHVzaC1hcGktdGVz
dC1wcmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI5NGMyZTBkZDNiZjRjZjJiODJjMjdkZDAxNTc1MmIwYTAy
MWI0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkv
cmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzCkBAIC0wLDAgKzEsMzkgQEAKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBmaW5pc2hQdXNoQVBJVGVzdCgp
Cit7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKK30KKworZnVuY3Rpb24gd2FpdEZvclN0YXRlKHdvcmtlciwgc3RhdGUpCit7Cisg
ICAgaWYgKCF3b3JrZXIgfHwgd29ya2VyLnN0YXRlID09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0
dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignd2FpdF9mb3Jfc3RhdGUgbXVzdCBiZSBwYXNz
ZWQgYSBTZXJ2aWNlV29ya2VyJykpOworCisgICAgaWYgKHdvcmtlci5zdGF0ZSA9PT0gc3RhdGUp
CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc3RhdGUpOworCisgICAgcmV0dXJuIG5l
dyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgIHdvcmtlci5hZGRFdmVudExpc3Rl
bmVyKCdzdGF0ZWNoYW5nZScsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmICh3b3JrZXIuc3Rh
dGUgPT09IHN0YXRlKQorICAgICAgICAgICAgcmVzb2x2ZShzdGF0ZSk7CisgICAgICAgIH0pOwor
ICAgIH0pOworfQorCitmdW5jdGlvbiBsb2cobXNnKQoreworICAgIGxldCBjb25zb2xlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICBpZiAoIWNvbnNvbGUpIHsKKyAg
ICAgICAgY29uc29sZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBj
b25zb2xlLmlkID0gImNvbnNvbGUiOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGNvbnNvbGUpOworICAgIH0KKyAgICBsZXQgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNwYW4iKTsKKyAgICBzcGFuLmlubmVySFRNTCA9IG1zZyArICI8YnI+IjsKKyAgICBjb25zb2xl
LmFwcGVuZENoaWxkKHNwYW4pOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMyMTViNTZmYzczYjY1ZjBjYjNmNGUwMzg2MmMyMWQ2ZDc5YWRmMTcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUt
dGVzdHMuanMKQEAgLTAsMCArMSw3MSBAQAorY29uc3QgVkFMSURfU0VSVkVSX0tFWSA9ICJCQTFI
eHp5aTFSVU0xYjV3anhzbjduR3hBc3p3MnU2MW0xNjRpM01yQUl4SEY2WUs1aDRTRFlpYy1kUnVV
X1JDUENmQTVhcTlvalN3azVZMkVtQ2xCUHMiOworCithc3luYyBmdW5jdGlvbiB0ZXN0U2Vydmlj
ZVdvcmtlclBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkKQoreworICAgIGxl
dCBwcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5vbm1lc3NhZ2UgPSByZXNvbHZlKTsKKyAgICByZWdpc3RyYXRpb24uYWN0aXZlLnBvc3RNZXNz
YWdlKFsncGVybWlzc2lvblN0YXRlJ10pOworICAgIGxldCBldmVudCA9IGF3YWl0IHByb21pc2U7
CisgICAgbGV0IHJlc3VsdCA9IGV2ZW50LmRhdGE7CisKKyAgICBpZiAocmVzdWx0ID09IGV4cGVj
dGVkKQorICAgICAgICBsb2coYFBBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3
YXMgJHtleHBlY3RlZH1gKTsKKyAgICBlbHNlCisgICAgICAgIGxvZyhgRkFJTDogc2VydmljZSB3
b3JrZXIgcGVybWlzc2lvblN0YXRlIHNob3VsZCBiZSAke2V4cGVjdGVkfSwgYnV0IHdhcyAke3Jl
c3VsdH1gKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdERvY3VtZW50UGVybWlzc2lvblN0YXRl
KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWQpCit7CisgICAgbGV0IHN0YXRlID0gYXdhaXQgcmVnaXN0
cmF0aW9uLnB1c2hNYW5hZ2VyLnBlcm1pc3Npb25TdGF0ZSgpOworCisgICAgaWYgKHN0YXRlID09
IGV4cGVjdGVkKQorICAgICAgICBsb2coYFBBU1M6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSB3
YXMgJHtleHBlY3RlZH1gKTsKKyAgICBlbHNlCisgICAgICAgIGxvZyhgRkFJTDogZG9jdW1lbnQg
cGVybWlzc2lvblN0YXRlIHNob3VsZCBiZSAke2V4cGVjdGVkfSwgYnV0IHdhcyAke3N0YXRlfWAp
OworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3Ry
YXRpb24sIGRvbUV4Y2VwdGlvbk5hbWUpCit7CisgICAgbGV0IGV4cGVjdGVkID0gZG9tRXhjZXB0
aW9uTmFtZSA/IGBlcnJvcjogJHtkb21FeGNlcHRpb25OYW1lfWAgOiAic3VjY2Vzc2Z1bCI7CisK
KyAgICBsZXQgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geyBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5vbm1lc3NhZ2UgPSByZXNvbHZlOyB9KTsKKyAgICByZWdpc3RyYXRpb24uYWN0
aXZlLnBvc3RNZXNzYWdlKFsnc3Vic2NyaWJlJywgVkFMSURfU0VSVkVSX0tFWV0pOworICAgIGxl
dCBldmVudCA9IGF3YWl0IHByb21pc2U7CisgICAgbGV0IHJlc3VsdCA9IGV2ZW50LmRhdGE7CisK
KyAgICBpZiAocmVzdWx0ID09IGV4cGVjdGVkKQorICAgICAgICBsb2coYFBBU1M6IHNlcnZpY2Ug
d29ya2VyIHN1YnNjcmliZSB3YXMgJHtleHBlY3RlZH1gKTsKKyAgICBlbHNlCisgICAgICAgIGxv
ZyhgRkFJTDogc2VydmljZSB3b3JrZXIgc3Vic2NyaWJlIHNob3VsZCBiZSAke2V4cGVjdGVkfSwg
YnV0IHdhcyAke3Jlc3VsdH1gKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdERvY3VtZW50U3Vi
c2NyaWJlKHJlZ2lzdHJhdGlvbiwgZG9tRXhjZXB0aW9uTmFtZSkKK3sKKyAgICBsZXQgZXhwZWN0
ZWQgPSBkb21FeGNlcHRpb25OYW1lID8gYGVycm9yOiAke2RvbUV4Y2VwdGlvbk5hbWV9YCA6ICJz
dWNjZXNzZnVsIjsKKyAgICBsZXQgcmVzdWx0ID0gbnVsbDsKKworICAgIGxldCBzdWJzY3JpcHRp
b24gPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIC8vIFdpdGggZGVmYXVsdCBwZXJtaXNzaW9u
cywgUHVzaE1hbmFnZXIgc2hvdWxkIHJlcXVlc3QgcGVybWlzc2lvbiBmcm9tIFRlc3RDb250cm9s
bGVyLgorICAgICAgICAvLyBUZXN0Q29udHJvbGxlciBhbHdheXMgY2FsbHMgV0tOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdEFsbG93IHNvIHRoaXMgc2hvdWxkIHN1Y2NlZWQuCisgICAgICAg
IHN1YnNjcmlwdGlvbiA9IGF3YWl0IHJlZ2lzdHJhdGlvbi5wdXNoTWFuYWdlci5zdWJzY3JpYmUo
eworICAgICAgICAgICAgdXNlclZpc2libGVPbmx5OiB0cnVlLAorICAgICAgICAgICAgYXBwbGlj
YXRpb25TZXJ2ZXJLZXk6IFZBTElEX1NFUlZFUl9LRVkKKyAgICAgICAgfSk7CisgICAgICAgIHJl
c3VsdCA9ICdzdWNjZXNzZnVsJzsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIC8vIExheW91
dCB0ZXN0cyBhcmVuJ3QgY29ubmVjdGVkIHRvIHdlYnB1c2hkLCBzbyBzdWJzY3JpYmUgaXMgc3Vj
Y2Vzc2Z1bCBpZiBpdCBnZXRzIHRvIHRoZQorICAgICAgICAvLyBwb2ludCB3aGVyZSB3ZSBhdHRl
bXB0IHRvIGNvbW11bmljYXRlIHdpdGggd2VicHVzaGQgKGFuIEFib3J0RXJyb3IpLgorICAgICAg
ICBpZiAoZS5uYW1lID09ICdBYm9ydEVycm9yJykKKyAgICAgICAgICAgIHJlc3VsdCA9ICdzdWNj
ZXNzZnVsJzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gJ2Vycm9yOiAnICsg
KGUgPyBlLm5hbWUgOiBudWxsKTsKKyAgICB9CisKKyAgICBpZiAoc3Vic2NyaXB0aW9uKQorICAg
ICAgICBhd2FpdCBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKKworICAgIGlmIChyZXN1bHQg
PT0gZXhwZWN0ZWQpCisgICAgICAgIGxvZyhgUEFTUzogZG9jdW1lbnQgc3Vic2NyaWJlIHdhcyAk
e2V4cGVjdGVkfWApOworICAgIGVsc2UKKyAgICAgICAgbG9nKGBGQUlMOiBkb2N1bWVudCBzdWJz
Y3JpYmUgc2hvdWxkIGJlICR7ZXhwZWN0ZWR9LCBidXQgd2FzICR7cmVzdWx0fWApOworfQpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtd29ya2VyLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmIwZDBmN2Y3NWQxYzdlZWFhMWE0NWQwYTdjNDI2NmQ2Njg4MmQ0M2YKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3Jp
YmUtd29ya2VyLmpzCkBAIC0wLDAgKzEsNDMgQEAKK2NvbnN0IFZBTElEX1NFUlZFUl9LRVkgPSAi
QkExSHh6eWkxUlVNMWI1d2p4c243bkd4QXN6dzJ1NjFtMTY0aTNNckFJeEhGNllLNWg0U0RZaWMt
ZFJ1VV9SQ1BDZkE1YXE5b2pTd2s1WTJFbUNsQlBzIjsKKworc2VsZi5hZGRFdmVudExpc3RlbmVy
KCdtZXNzYWdlJywgYXN5bmMgKGV2ZW50KSA9PiB7CisgICAgbGV0IFtvcCwgLi4uYXJnc10gPSBl
dmVudC5kYXRhOworCisgICAgaWYgKG9wID09ICdwZXJtaXNzaW9uU3RhdGUnKSB7CisgICAgICAg
IHRyeSB7CisgICAgICAgICAgICBsZXQgc3RhdGUgPSBhd2FpdCBzZWxmLnJlZ2lzdHJhdGlvbi5w
dXNoTWFuYWdlci5wZXJtaXNzaW9uU3RhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5w
b3N0TWVzc2FnZShzdGF0ZSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGV2
ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiZXJyb3I6ICIgKyBlKTsKKyAgICAgICAgfQorICAgIH0g
ZWxzZSBpZiAob3AgPT0gJ3N1YnNjcmliZScpIHsKKyAgICAgICAgbGV0IHN1YnNjcmlwdGlvbiA9
IG51bGw7CisgICAgICAgIGxldCByZXN1bHQgPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICBzdWJzY3JpcHRpb24gPSBhd2FpdCBzZWxmLnJlZ2lzdHJhdGlvbi5wdXNoTWFuYWdl
ci5zdWJzY3JpYmUoeworICAgICAgICAgICAgICAgIHVzZXJWaXNpYmxlT25seTogdHJ1ZSwKKyAg
ICAgICAgICAgICAgICBhcHBsaWNhdGlvblNlcnZlcktleTogYXJnc1swXQorICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICBpZiAoc3Vic2NyaXB0aW9uKQorICAgICAgICAgICAgICAgIHJlc3Vs
dCA9ICJzdWNjZXNzZnVsIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSAiZXJyb3I6IG51bGwgc3Vic2NyaXB0aW9uIjsKKyAgICAgICAgfSBjYXRjaCAoZSkgewor
ICAgICAgICAgICAgaWYgKCFlKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJlcnJvcjogbnVs
bCBleGNlcHRpb24iOworICAgICAgICAgICAgZWxzZSBpZiAoZS5uYW1lID09ICdBYm9ydEVycm9y
JykKKyAgICAgICAgICAgICAgICAvLyBMYXlvdXQgdGVzdHMgY3VycmVudGx5IGFyZW4ndCBjb25u
ZWN0ZWQgdG8gd2VicHVzaGQuIFNvIGlmIHdlIGZhaWwgd2l0aCBhbiBBYm9ydEVycm9yCisgICAg
ICAgICAgICAgICAgLy8gd2hlbiB0cnlpbmcgdG8gY29ubmVjdCB0byB3ZWJwdXNoZCwgd2UgY291
bnQgdGhhdCBhcyBhIHN1Y2Nlc3NmdWwgc3Vic2NyaXB0aW9uIGZvcgorICAgICAgICAgICAgICAg
IC8vIHRlc3RpbmcgcHVycG9zZXMuCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gInN1Y2Nlc3Nm
dWwiOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJlcnJvcjog
IiArIGUubmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdWJzY3JpcHRpb24pCisgICAg
ICAgICAgICBhd2FpdCBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKKworICAgICAgICBldmVu
dC5zb3VyY2UucG9zdE1lc3NhZ2UocmVzdWx0KTsKKyAgICB9Cit9KTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lv
bnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3Jp
YmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZiMTY0MDJl
YmIwMzhhZTRlMTgzZjEzNTRjZmQzMGE1YWY1MWNlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUzogc2VydmljZSB3b3JrZXIgcGVybWlz
c2lvblN0YXRlIHdhcyBwcm9tcHQKK1BBU1M6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMg
cHJvbXB0CitQQVNTOiBzZXJ2aWNlIHdvcmtlciBzdWJzY3JpYmUgd2FzIGVycm9yOiBOb3RBbGxv
d2VkRXJyb3IKK1BBU1M6IGRvY3VtZW50IHN1YnNjcmliZSB3YXMgc3VjY2Vzc2Z1bAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0
LXBlcm1pc3Npb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNj
cmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjg0MmM3YzcxODI5NjIx
ZTVlNmNkZThiOWU5NmY5Y2VhMmEyNDJlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMuaHRtbApA
QCAtMCwwICsxLDI0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
dXNoLWFwaS10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N1
YnNjcmliZS10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citu
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1YnNjcmliZS13b3Jr
ZXIuanMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4geworICAgIHRyeSB7Cisg
ICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgImFjdGl2
YXRlZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25TdGF0ZShy
ZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50UGVybWlz
c2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0U2Vy
dmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxvd2VkRXJyb3InKTsKKyAg
ICAgICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlKHJlZ2lzdHJhdGlvbik7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICBsb2coYEZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICR7ZX1g
KTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpOworICAgICAgICBmaW5pc2hQdXNoQVBJVGVzdCgpOworICAgIH0KK30pOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1
c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk0MTEyMzUyNTFiYjkyMTIyMzY5ODY4M2UzMDQ5NmNlZjIzMmI5
YWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BB
U1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMgZGVuaWVkCitQQVNTOiBkb2N1
bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIGRlbmllZAorUEFTUzogc2VydmljZSB3b3JrZXIgc3Vi
c2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNTOiBkb2N1bWVudCBzdWJzY3Jp
YmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIzYzQxMWQ5MmE5Nzc1YTZlNGMwMzdjYjU4YWI5NTA2NTI1N2Y5N2IK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNj
cmliZS1kZW55LXBlcm1pc3Npb25zLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIuZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24od2luZG93Lm9yaWdpbik7CisK
K25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvc3Vic2NyaWJlLXdv
cmtlci5qcyIsIHsgfSkudGhlbihhc3luYyAocmVnaXN0cmF0aW9uKSA9PiB7CisgICAgdHJ5IHsK
KyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAiYWN0
aXZhdGVkIik7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyUGVybWlzc2lvblN0YXRl
KHJlZ2lzdHJhdGlvbiwgJ2RlbmllZCcpOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRQZXJt
aXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAnZGVuaWVkJyk7CisgICAgICAgIGF3YWl0IHRlc3RT
ZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93ZWRFcnJvcicpOwor
ICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90QWxs
b3dlZEVycm9yJyk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBsb2coYEZBSUw6IHVuZXhw
ZWN0ZWQgZXhjZXB0aW9uICR7ZX1gKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgICBhd2FpdCBy
ZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICBmaW5pc2hQdXNoQVBJVGVzdCgpOwor
ICAgIH0KK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1n
cmFudC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E0YzgyODJlMDRhNzc1
YWFkZjI0NmJiZjUwMjEyNjhjN2I1YThiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0
ZSB3YXMgZ3JhbnRlZAorUEFTUzogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyBncmFudGVk
CitQQVNTOiBzZXJ2aWNlIHdvcmtlciBzdWJzY3JpYmUgd2FzIHN1Y2Nlc3NmdWwKK1BBU1M6IGRv
Y3VtZW50IHN1YnNjcmliZSB3YXMgc3VjY2Vzc2Z1bAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lv
bnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MTM3MDFmZTE5MzA4YjMxZDFiY2JkMzg0NzRlMTMxNTMwMTc0
NWY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9z
dWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMuaHRtbApAQCAtMCwwICsxLDI3IEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24od2luZG93Lm9yaWdp
bik7CisKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvc3Vic2Ny
aWJlLXdvcmtlci5qcyIsIHsgfSkudGhlbihhc3luYyAocmVnaXN0cmF0aW9uKSA9PiB7CisgICAg
dHJ5IHsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
LCAiYWN0aXZhdGVkIik7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyUGVybWlzc2lv
blN0YXRlKHJlZ2lzdHJhdGlvbiwgJ2dyYW50ZWQnKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3Vt
ZW50UGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ2dyYW50ZWQnKTsKKyAgICAgICAgYXdh
aXQgdGVzdFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uKTsKKyAgICAgICAgYXdh
aXQgdGVzdERvY3VtZW50U3Vic2NyaWJlKHJlZ2lzdHJhdGlvbik7CisgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICBsb2coYEZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICR7ZX1gKTsKKyAgICB9
IGZpbmFsbHkgeworICAgICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAg
ICAgICBmaW5pc2hQdXNoQVBJVGVzdCgpOworICAgIH0KK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452302</attachid>
            <date>2022-02-16 20:40:56 -0800</date>
            <delta_ts>2022-02-17 00:56:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236739-20220216204056.patch</filename>
            <type>text/plain</type>
            <size>26632</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjZjZjkzZGY4ZjA3YTkz
OTBjN2IyMWRlYjZiNjVjOWIzMjBkNzM2My4uNzE1ZWIxNTdjNmM4MGU5YmM1ZGJiYzA1YjMwNmEx
MWZjOTk5M2M3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIyLTAyLTE2ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8g
cGVybWlzc2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpbXBsZW1lbnRzIFB1c2hNYW5hZ2VyLnBlcm1pc3Npb25TdGF0ZS4gSXQg
YWxzbyBtYWtlcyBQdXNoTWFuYWdlci5zdWJzY3JpYmUgcmVxdWVzdAorICAgICAgICBwZXJtaXNz
aW9uIGZyb20gdGhlIHVzZXIgdG8gc2hvdyBub3RpZmljYXRpb25zIGlmIHRoZSBwZXJtaXNzaW9u
IGlzIHRoZSBkZWZhdWx0IHN0YXRlIGFuZAorICAgICAgICB0aGUgY2FsbGVyIGlzIGEgZG9jdW1l
bnQuIElmIHRoZSBjYWxsZXIgaXMgYSBzZXJ2aWNlIHdvcmtlciwgaXQgaXMgbm90IGFsbG93ZWQg
dG8gYXNrIHRoZQorICAgICAgICB1c2VyIGZvciBwZXJtaXNzaW9uIHRvIHN1YnNjcmliZS4gVGhp
cyBpcyBhbGxvd2VkIGZvciBieSB0aGUgc3BlYy4KKworICAgICAgICBUaGVyZSBhbHNvIG5lZWRz
IHRvIGJlIHNvbWUgY29kZSBhZGRlZCB3aGljaCByZW1vdmVzIGEgcHVzaCBzdWJzY3JpcHRpb24g
aWYgdGhlIHVzZXIgZGVsZXRlcworICAgICAgICB0aGUgc3Vic2NyaXB0aW9uIGVudGlyZWx5IGlu
IHRoZSBVSSwgZm9yIGluc3RhbmNlIHdoZW4gdGhlIFVJUHJvY2VzcyBjYWxscworICAgICAgICBX
S05vdGlmaWNhdGlvbk1hbmFnZXJQcm92aWRlckRpZFJlbW92ZU5vdGlmaWNhdGlvblBvbGljaWVz
LiBUaGF0IHdpbGwgYmUgaGFuZGxlZCBpbiBhCisgICAgICAgIHNlcGFyYXRlIHBhdGNoLgorCisg
ICAgICAgIENvdmVyZWQgYnkgbmV3IGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMv
cHVzaC1hcGkvUHVzaE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHVzaE1hbmFnZXI6
OnN1YnNjcmliZSk6CisgICAgICAgIChXZWJDb3JlOjpQdXNoTWFuYWdlcjo6Z2V0U3Vic2NyaXB0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlB1c2hNYW5hZ2VyOjpwZXJtaXNzaW9uU3RhdGUpOgor
CiAyMDIyLTAyLTE1ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAK
ICAgICAgICAgSW1wbGVtZW50IGFkZGl0aW9uYWwgUmV2ZWFsIG1ldGhvZHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDY4YmZkYjQ4NzNhYTA1YmZiMWQ2MjM1MWRlZjM2NDRmZDcwOTNlMDcuLjIzNGI5NmJmZDFkMzMx
Yzc2Mjg1ZDA1MDFhZWNhZmNmN2VmOTgyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjItMDItMTYgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSG9vayB1cCBQ
dXNoTWFuYWdlciB0byBwZXJtaXNzaW9uIHN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgY29tbWVudCBleHBsYWluaW5nIHdoeSB3ZSBz
dGlsbCBoYXZlIGEgcGVybWlzc2lvbiBzdGF0ZSBzdHViIGluIHdlYnB1c2hkLgorCisgICAgICAg
ICogd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbToKKyAgICAgICAgKFdlYlB1c2hEOjpEYWVtb246
OmdldFB1c2hQZXJtaXNzaW9uU3RhdGUpOgorCiAyMDIyLTAyLTE1ICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGFkZGl0aW9uYWwg
UmV2ZWVhbCBtZXRob2RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNo
LWFwaS9QdXNoTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1
c2hNYW5hZ2VyLmNwcAppbmRleCA0YzcxNTYyY2QwNDY0N2IxMDc3ODQ0OTUxYWUyZTdlOGE3YzVh
YzE1Li44MmEwNjgxM2FkZjM3NWQ3MDdjYTU4ZDRiMDhlYTZjZWU0ZGY2NDgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTUHVzaFBlcm1pc3Np
b25TdGF0ZS5oIgogI2luY2x1ZGUgIkpTUHVzaFN1YnNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIlB1c2hDcnlwdG8uaCIKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5oIgpAQCAtNjUsMTEgKzY2LDExIEBAIHZvaWQgUHVzaE1hbmFnZXI6OmRlcmVmKCkgY29u
c3QKICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uZGVyZWYoKTsKIH0KIAotdm9pZCBQ
dXNoTWFuYWdlcjo6c3Vic2NyaWJlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJbml0PiYm
IG9wdGlvbnMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8UHVzaFN1YnNjcmlwdGlv
bj4+JiYgcHJvbWlzZSkKK3ZvaWQgUHVzaE1hbmFnZXI6OnN1YnNjcmliZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPFB1c2hTdWJzY3JpcHRpb25PcHRpb25z
SW5pdD4mJiBvcHRpb25zLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFB1c2hTdWJz
Y3JpcHRpb24+PiYmIHByb21pc2UpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5pc1NlY3VyZUNvbnRleHQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoY29udGV4
dC5pc1NlY3VyZUNvbnRleHQoKSk7CiAgICAgCi0gICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5l
dmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgY29udGV4dC5ldmVudExv
b3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9LCBjb250ZXh0ID0gUmVmIHsgY29udGV4dCB9LCBvcHRpb25zID0g
V1RGTW92ZShvcHRpb25zKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7
CiAgICAgICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy0+dXNlclZpc2libGVPbmx5KSB7CiAg
ICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJT
dWJzY3JpYmluZyBmb3IgcHVzaCByZXF1aXJlcyB1c2VyVmlzaWJsZU9ubHkgdG8gYmUgdHJ1ZSJf
cyB9KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTExMSwyMiArMTEyLDYxIEBAIHZvaWQgUHVz
aE1hbmFnZXI6OnN1YnNjcmliZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBzdGQ6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAg
ICBhdXRvIGNsaWVudCA9IGNvbnRleHQtPm5vdGlmaWNhdGlvbkNsaWVudCgpOworICAgICAgICBh
dXRvIHBlcm1pc3Npb24gPSBjbGllbnQgPyBjbGllbnQtPmNoZWNrUGVybWlzc2lvbihjb250ZXh0
LnB0cigpKSA6IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlbmllZDsKKworICAgICAgICBpZiAo
cGVybWlzc2lvbiA9PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpEZW5pZWQpIHsKKyAgICAgICAg
ICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlVzZXIgZGVu
aWVkIHB1c2ggcGVybWlzc2lvbiJfcyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChwZXJtaXNzaW9uID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRl
ZmF1bHQgJiYgIWNvbnRleHQtPmlzRG9jdW1lbnQoKSkgeworICAgICAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiVXNlciBkZW5pZWQgcHVzaCBwZXJt
aXNzaW9uIl9zIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHBlcm1pc3Npb24gPT0gTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVmYXVsdCkgeworICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY2xpZW50KTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisKKyNpZiAhUExBVEZPUk0oV0lOX0NBSVJPKQor
ICAgICAgICAgICAgLy8gUmVmIHsgKnRoaXMgfSB0cmlnZ2VycyBhIGNvbXBpbGVyIGJ1ZyBvbiB3
aW5jYWlybyB3aGVyZSBpdCB0cmllcyB0byByZWYgdGhlIGxhbWJkYSBpbnN0ZWFkIG9mIFB1c2hN
YW5hZ2VyLgorICAgICAgICAgICAgY2xpZW50LT5yZXF1ZXN0UGVybWlzc2lvbihjb250ZXh0LCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGtleURhdGEgPSBrZXlEYXRhUmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0
byBwZXJtaXNzaW9uKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAocGVybWlzc2lvbiAh
PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpHcmFudGVkKSB7CisgICAgICAgICAgICAgICAgICAg
IHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlVzZXIgZGVuaWVk
IHB1c2ggcGVybWlzc2lvbiJfcyB9KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG1fc2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5zdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFdURk1vdmUoa2V5RGF0YSksIFdURk1vdmUocHJv
bWlzZSkpOworICAgICAgICAgICAgfSk7CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHBlcm1pc3Npb24gPT0gTm90aWZpY2F0
aW9uUGVybWlzc2lvbjo6R3JhbnRlZCk7CiAgICAgICAgIG1fc2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5zdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKGtleURhdGFSZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCksIFdURk1vdmUocHJvbWlzZSkpOwogICAgIH0pOwogfQogCi12b2lkIFB1c2hNYW5hZ2Vy
OjpnZXRTdWJzY3JpcHRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgRE9NUHJvbWlzZURlZmVycmVkPElETE51bGxhYmxlPElETEludGVyZmFjZTxQdXNo
U3Vic2NyaXB0aW9uPj4+JiYgcHJvbWlzZSkKK3ZvaWQgUHVzaE1hbmFnZXI6OmdldFN1YnNjcmlw
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBET01Qcm9taXNlRGVmZXJyZWQ8
SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPFB1c2hTdWJzY3JpcHRpb24+Pj4mJiBwcm9taXNlKQog
ewotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tT
b3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgY29udGV4dC5ldmVu
dExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRh
YmxlIHsKICAgICAgICAgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmdldFB1c2hTdWJzY3Jp
cHRpb24oV1RGTW92ZShwcm9taXNlKSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgUHVzaE1hbmFnZXI6
OnBlcm1pc3Npb25TdGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBzdGQ6Om9wdGlvbmFsPFB1c2hTdWJzY3JpcHRpb25PcHRpb25zSW5pdD4mJiBvcHRp
b25zLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UHVzaFBlcm1pc3Npb25TdGF0
ZT4+JiYgcHJvbWlzZSkKK3ZvaWQgUHVzaE1hbmFnZXI6OnBlcm1pc3Npb25TdGF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPFB1c2hTdWJzY3JpcHRpb25P
cHRpb25zSW5pdD4mJiwgRE9NUHJvbWlzZURlZmVycmVkPElETEVudW1lcmF0aW9uPFB1c2hQZXJt
aXNzaW9uU3RhdGU+PiYmIHByb21pc2UpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwot
ICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3Vy
Y2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7Ci0gICAgICAgIG1fc2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbi5nZXRQdXNoUGVybWlzc2lvblN0YXRlKFdURk1vdmUocHJvbWlzZSkp
OworICAgIGNvbnRleHQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtp
bmcsIFtjb250ZXh0ID0gUmVmIHsgY29udGV4dCB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBjbGllbnQgPSBjb250ZXh0LT5ub3RpZmljYXRp
b25DbGllbnQoKTsKKyAgICAgICAgYXV0byBwZXJtaXNzaW9uID0gY2xpZW50ID8gY2xpZW50LT5j
aGVja1Blcm1pc3Npb24oY29udGV4dC5wdHIoKSkgOiBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpE
ZW5pZWQ7CisKKyAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0gTm90aWZpY2F0aW9uUGVybWlzc2lv
bjo6RGVmYXVsdCkKKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShQdXNoUGVybWlzc2lvblN0
YXRlOjpQcm9tcHQpOworICAgICAgICBlbHNlIGlmIChwZXJtaXNzaW9uID09IE5vdGlmaWNhdGlv
blBlcm1pc3Npb246OkdyYW50ZWQpCisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoUHVzaFBl
cm1pc3Npb25TdGF0ZTo6R3JhbnRlZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByb21p
c2UucmVzb2x2ZShQdXNoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOwogICAgIH0pOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KaW5kZXggYWRkNmUzZDhhZGZlYTg5
OTg4OGY0YmFmNjFhY2MwNTMxMzYzZGNjNS4uYWEzNDU4Y2UyNTY5NzY4NTkzYWNmZjU3ZTA5YjNj
MjIyYzg3NGEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFl
bW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQpAQCAt
NjE4LDEyICs2MTgsMTAgQEAgdm9pZCBEYWVtb246OmdldFB1c2hTdWJzY3JpcHRpb24oQ2xpZW50
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3QgVVJMJiBzY29wZVUKIAogdm9pZCBEYWVtb246
OmdldFB1c2hQZXJtaXNzaW9uU3RhdGUoQ2xpZW50Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29u
c3QgVVJMJiBzY29wZVVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBFeHBlY3RlZDx1
aW50OF90LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYpPiYmIHJlcGx5U2VuZGVyKQogewotICAg
IC8vIEZJWE1FCi0jaWYgSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQp
Ci0gICAgcmVwbHlTZW5kZXIoc3RhdGljX2Nhc3Q8dWludDhfdD4oV2ViQ29yZTo6UHVzaFBlcm1p
c3Npb25TdGF0ZTo6R3JhbnRlZCkpOwotI2Vsc2UKKyAgICAvLyBGSVhNRTogVGhpcyBkb2Vzbid0
IGFjdHVhbGx5IGdldCBjYWxsZWQgcmlnaHQgbm93LCBzaW5jZSB0aGUgcGVybWlzc2lvbiBpcyBj
dXJyZW50bHkgY2hlY2tlZAorICAgIC8vIGluIFdlYlByb2Nlc3MuIEhvd2V2ZXIsIHdlJ3ZlIGxl
ZnQgdGhpcyBzdHViIGluIGZvciBub3cgYmVjYXVzZSB0aGVyZSBpcyBhIGNoYW5jZSB0aGF0IHdl
CisgICAgLy8gd2lsbCBtb3ZlIHRoZSBwZXJtaXNzaW9uIGNoZWNrIGludG8gd2VicHVzaGQgd2hl
biBzdXBwb3J0aW5nIG90aGVyIHBsYXRmb3Jtcy4KICAgICByZXBseVNlbmRlcihzdGF0aWNfY2Fz
dDx1aW50OF90PihXZWJDb3JlOjpQdXNoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpKTsKLSNlbmRp
ZgogfQogCiBDbGllbnRDb25uZWN0aW9uKiBEYWVtb246OnRvQ2xpZW50Q29ubmVjdGlvbih4cGNf
Y29ubmVjdGlvbl90IGNvbm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMWM3YmMxYzg4YjE3NWZjNGY4ZWYwNjZmODVjNTg4ZTRlOWYz
OGFkOS4uNzBhZTFkMTFjZmZjOWI1NjdmNzIxMGE3OGNjOWUxNjU4NmYwMDgxZSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIyLTAyLTE2ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEhvb2sg
dXAgUHVzaE1hbmFnZXIgdG8gcGVybWlzc2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFkZSB0aGUgV2ViUHVzaEQgQVBJIHRlc3RzIHdv
cmsgbm93IHRoYXQgc3Vic2NyaWJlIGNoZWNrcyBmb3IgcGVybWlzc2lvbi4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbToKKwogMjAy
Mi0wMi0xNSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAg
Z2l0LXdlYmtpdCBzZXR1cCBzaG91bGQgdmVyaWZ5IHRoZSBjcmVkZW50aWFscyBiZWZvcmUgc2F2
aW5nIHRoZW0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV2ViUHVzaERhZW1vbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV2ViUHVzaERhZW1vbi5tbQppbmRleCBiN2IzNGI2Y2FhNTQ3YmUzMmEzNzYyOGNjZjFhY2Rl
ZWM2ZjVkNjU5Li43YjkxMDI4ZGNhYWY4MTJjODg5ZWNiNjkyN2YzYjU4OWM5NzVkYjMwIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVt
b24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNo
RGFlbW9uLm1tCkBAIC00MjYsNiArNDI2LDEwIEBAIHByb3RlY3RlZDoKIAogICAgICAgICBtX25v
dGlmaWNhdGlvbk1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW05vdGlmaWNhdGlvblNjcmlwdE1l
c3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgICAgIFtbbV9jb25maWd1cmF0aW9uIHVz
ZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bV9ub3RpZmljYXRp
b25NZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAibm90ZSJdOworCisgICAgICAgIG1fd2ViVmll
dyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjptX2NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAg
ICAgICAgbV91aURlbGVnYXRlID0gYWRvcHROUyhbW05vdGlmaWNhdGlvblBlcm1pc3Npb25EZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOworICAgICAgICBbbV93ZWJWaWV3IHNldFVJRGVsZWdhdGU6bV91
aURlbGVnYXRlLmdldCgpXTsKICAgICB9CiAKICAgICB2b2lkIGxvYWRSZXF1ZXN0KGNvbnN0IGNo
YXIqIGh0bWxTb3VyY2UsIGNvbnN0IGNoYXIqIHNlcnZpY2VXb3JrZXJTY3JpcHRTb3VyY2UpCkBA
IC00NDAsNyArNDQ0LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgeyAiL3N3LmpzIiwgeyB7
IHsgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9IH0sIHNlcnZpY2VX
b3JrZXJTY3JpcHRTb3VyY2UgfSB9CiAgICAgICAgIH0sIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2
ZXI6OlByb3RvY29sOjpIdHRwKSk7CiAKLSAgICAgICAgbV93ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOm1fY29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgICAgICBbbV93ZWJWaWV3
IGxvYWRSZXF1ZXN0Om1fc2VydmVyLT5yZXF1ZXN0KCldOwogICAgIH0KIApAQCAtNDU2LDYgKzQ1
OSw3IEBAIHByb3RlY3RlZDoKICAgICBSZXRhaW5QdHI8Tm90aWZpY2F0aW9uU2NyaXB0TWVzc2Fn
ZUhhbmRsZXI+IG1fbm90aWZpY2F0aW9uTWVzc2FnZUhhbmRsZXI7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI+IG1fc2VydmVyOwogICAgIFJldGFpblB0cjxX
S1dlYlZpZXc+IG1fd2ViVmlldzsKKyAgICBSZXRhaW5QdHI8aWQ8V0tVSURlbGVnYXRlUHJpdmF0
ZT4+IG1fdWlEZWxlZ2F0ZTsKIH07CiAKIGNsYXNzIFdlYlB1c2hESW5qZWN0ZWRQdXNoVGVzdCA6
IHB1YmxpYyBXZWJQdXNoRFRlc3QgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJmMzBjZWVjMDg1ZmY1YTUyNTc0ZTgxNmQz
MGZhZDJiNzQyMmQwMzMuLjIyOWM3M2JhZTAyN2NmZmRjNzIzZjUzZTFkNmZhMDczOTQzMjcxOWMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMi0wMi0xNiAgQmVuIE5oYW0gIDxuaGFtQGFwcGxl
LmNvbT4KKworICAgICAgICBIb29rIHVwIFB1c2hNYW5hZ2VyIHRvIHBlcm1pc3Npb24gc3RhdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjczOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRl
c3RzIHRoYXQgbWFrZSBzdXJlIHRoYXQgUHVzaE1hbmFnZXIucGVybWlzc2lvblN0YXRlKCkgYW5k
IFB1c2hNYW5hZ2VyLnN1YnNjcmliZSgpCisgICAgICAgIHJlc3BlY3QgdGhlIG5vdGlmaWNhdGlv
biBwZXJtaXNzaW9uIGxldmVsIGZvciB0aGUgY3VycmVudCBvcmlnaW4uCisKKyAgICAgICAgSSBt
YWRlIHRoZXNlIHJlZ3VsYXIgdGVzdHMgcmF0aGVyIHRoYW4gV1BUIHRlc3RzIGJlY2F1c2UgdGhl
IFdQVCB0ZXN0IGhhcm5lc3MgY2FsbHMKKyAgICAgICAgZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJt
aXNzaW9uIGF0IHRoZSB0b3Agb2YgaXRzIHNldHVwIHNjcmlwdCAoaW4gdGVzdGhhcm5lc3NyZXBv
cnQuanMpLCBhbmQKKyAgICAgICAgSSBkaWRuJ3Qgd2FudCB0byBjaGFuZ2UgdGhhdCBmb3IgdGhp
cyBwYXRjaC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3B1c2gt
YXBpLXRlc3QtcHJlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZpbmlzaFB1c2hBUElUZXN0KToKKyAg
ICAgICAgKHdhaXRGb3JTdGF0ZSk6CisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNv
dXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzeW5jIHRlc3RTZXJ2
aWNlV29ya2VyUGVybWlzc2lvblN0YXRlKToKKyAgICAgICAgKGFzeW5jIHRlc3REb2N1bWVudFBl
cm1pc3Npb25TdGF0ZSk6CisgICAgICAgIChhc3luYyB0ZXN0U2VydmljZVdvcmtlclN1YnNjcmli
ZSk6CisgICAgICAgIChhc3luYyB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUpOgorICAgICAgICAqIGh0
dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanM6IEFkZGVkLgor
ICAgICAgICAoYXN5bmMgZXZlbnQpOgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vi
c2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVy
bWlzc2lvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gt
YXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQt
cGVybWlzc2lvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MjItMDItMTUgIE1hdHRlbyBGbG9yZXMgIDxtYXR0ZW9fZmxvcmVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWJhc2xpbmluZyBmb250cy9tb25vc3BhY2UuaHRtbCBmb3IgTW9udGVyZXkuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9wdXNoLWFw
aS10ZXN0LXByZS5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2Vz
L3B1c2gtYXBpLXRlc3QtcHJlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiOTRjMmUwZGQzYmY0Y2YyYjgyYzI3
ZGQwMTU3NTJiMGEwMjFiNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3Jlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcwpAQCAtMCwwICsxLDM5
IEBACitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gZmluaXNo
UHVzaEFQSVRlc3QoKQoreworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3JTdGF0ZSh3b3JrZXIs
IHN0YXRlKQoreworICAgIGlmICghd29ya2VyIHx8IHdvcmtlci5zdGF0ZSA9PSB1bmRlZmluZWQp
CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ3dhaXRfZm9yX3N0YXRl
IG11c3QgYmUgcGFzc2VkIGEgU2VydmljZVdvcmtlcicpKTsKKworICAgIGlmICh3b3JrZXIuc3Rh
dGUgPT09IHN0YXRlKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN0YXRlKTsKKwor
ICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICB3b3JrZXIu
YWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICBp
ZiAod29ya2VyLnN0YXRlID09PSBzdGF0ZSkKKyAgICAgICAgICAgIHJlc29sdmUoc3RhdGUpOwor
ICAgICAgICB9KTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gbG9nKG1zZykKK3sKKyAgICBsZXQg
Y29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7CisgICAgaWYgKCFj
b25zb2xlKSB7CisgICAgICAgIGNvbnNvbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICAgICAgY29uc29sZS5pZCA9ICJjb25zb2xlIjsKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChjb25zb2xlKTsKKyAgICB9CisgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAiPGJyPiI7
CisgICAgY29uc29sZS5hcHBlbmRDaGlsZChzcGFuKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMjE1YjU2ZmM3M2I2NWYwY2IzZjRlMDM4NjJjMjFkNmQ3OWFkZjE3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJj
ZXMvc3Vic2NyaWJlLXRlc3RzLmpzCkBAIC0wLDAgKzEsNzEgQEAKK2NvbnN0IFZBTElEX1NFUlZF
Ul9LRVkgPSAiQkExSHh6eWkxUlVNMWI1d2p4c243bkd4QXN6dzJ1NjFtMTY0aTNNckFJeEhGNllL
NWg0U0RZaWMtZFJ1VV9SQ1BDZkE1YXE5b2pTd2s1WTJFbUNsQlBzIjsKKworYXN5bmMgZnVuY3Rp
b24gdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCBleHBlY3Rl
ZCkKK3sKKyAgICBsZXQgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gcmVzb2x2ZSk7CisgICAgcmVnaXN0cmF0aW9uLmFj
dGl2ZS5wb3N0TWVzc2FnZShbJ3Blcm1pc3Npb25TdGF0ZSddKTsKKyAgICBsZXQgZXZlbnQgPSBh
d2FpdCBwcm9taXNlOworICAgIGxldCByZXN1bHQgPSBldmVudC5kYXRhOworCisgICAgaWYgKHJl
c3VsdCA9PSBleHBlY3RlZCkKKyAgICAgICAgbG9nKGBQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJt
aXNzaW9uU3RhdGUgd2FzICR7ZXhwZWN0ZWR9YCk7CisgICAgZWxzZQorICAgICAgICBsb2coYEZB
SUw6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSBzaG91bGQgYmUgJHtleHBlY3RlZH0s
IGJ1dCB3YXMgJHtyZXN1bHR9YCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3REb2N1bWVudFBl
cm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkKQoreworICAgIGxldCBzdGF0ZSA9
IGF3YWl0IHJlZ2lzdHJhdGlvbi5wdXNoTWFuYWdlci5wZXJtaXNzaW9uU3RhdGUoKTsKKworICAg
IGlmIChzdGF0ZSA9PSBleHBlY3RlZCkKKyAgICAgICAgbG9nKGBQQVNTOiBkb2N1bWVudCBwZXJt
aXNzaW9uU3RhdGUgd2FzICR7ZXhwZWN0ZWR9YCk7CisgICAgZWxzZQorICAgICAgICBsb2coYEZB
SUw6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSBzaG91bGQgYmUgJHtleHBlY3RlZH0sIGJ1dCB3
YXMgJHtzdGF0ZX1gKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdFNlcnZpY2VXb3JrZXJTdWJz
Y3JpYmUocmVnaXN0cmF0aW9uLCBkb21FeGNlcHRpb25OYW1lKQoreworICAgIGxldCBleHBlY3Rl
ZCA9IGRvbUV4Y2VwdGlvbk5hbWUgPyBgZXJyb3I6ICR7ZG9tRXhjZXB0aW9uTmFtZX1gIDogInN1
Y2Nlc3NmdWwiOworCisgICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gcmVzb2x2ZTsgfSk7CisgICAgcmVn
aXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZShbJ3N1YnNjcmliZScsIFZBTElEX1NFUlZFUl9L
RVldKTsKKyAgICBsZXQgZXZlbnQgPSBhd2FpdCBwcm9taXNlOworICAgIGxldCByZXN1bHQgPSBl
dmVudC5kYXRhOworCisgICAgaWYgKHJlc3VsdCA9PSBleHBlY3RlZCkKKyAgICAgICAgbG9nKGBQ
QVNTOiBzZXJ2aWNlIHdvcmtlciBzdWJzY3JpYmUgd2FzICR7ZXhwZWN0ZWR9YCk7CisgICAgZWxz
ZQorICAgICAgICBsb2coYEZBSUw6IHNlcnZpY2Ugd29ya2VyIHN1YnNjcmliZSBzaG91bGQgYmUg
JHtleHBlY3RlZH0sIGJ1dCB3YXMgJHtyZXN1bHR9YCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRl
c3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24sIGRvbUV4Y2VwdGlvbk5hbWUpCit7Cisg
ICAgbGV0IGV4cGVjdGVkID0gZG9tRXhjZXB0aW9uTmFtZSA/IGBlcnJvcjogJHtkb21FeGNlcHRp
b25OYW1lfWAgOiAic3VjY2Vzc2Z1bCI7CisgICAgbGV0IHJlc3VsdCA9IG51bGw7CisKKyAgICBs
ZXQgc3Vic2NyaXB0aW9uID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICAvLyBXaXRoIGRlZmF1
bHQgcGVybWlzc2lvbnMsIFB1c2hNYW5hZ2VyIHNob3VsZCByZXF1ZXN0IHBlcm1pc3Npb24gZnJv
bSBUZXN0Q29udHJvbGxlci4KKyAgICAgICAgLy8gVGVzdENvbnRyb2xsZXIgYWx3YXlzIGNhbGxz
IFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyBzbyB0aGlzIHNob3VsZCBzdWNj
ZWVkLgorICAgICAgICBzdWJzY3JpcHRpb24gPSBhd2FpdCByZWdpc3RyYXRpb24ucHVzaE1hbmFn
ZXIuc3Vic2NyaWJlKHsKKyAgICAgICAgICAgIHVzZXJWaXNpYmxlT25seTogdHJ1ZSwKKyAgICAg
ICAgICAgIGFwcGxpY2F0aW9uU2VydmVyS2V5OiBWQUxJRF9TRVJWRVJfS0VZCisgICAgICAgIH0p
OworICAgICAgICByZXN1bHQgPSAnc3VjY2Vzc2Z1bCc7CisgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICAvLyBMYXlvdXQgdGVzdHMgYXJlbid0IGNvbm5lY3RlZCB0byB3ZWJwdXNoZCwgc28gc3Vi
c2NyaWJlIGlzIHN1Y2Nlc3NmdWwgaWYgaXQgZ2V0cyB0byB0aGUKKyAgICAgICAgLy8gcG9pbnQg
d2hlcmUgd2UgYXR0ZW1wdCB0byBjb21tdW5pY2F0ZSB3aXRoIHdlYnB1c2hkIChhbiBBYm9ydEVy
cm9yKS4KKyAgICAgICAgaWYgKGUubmFtZSA9PSAnQWJvcnRFcnJvcicpCisgICAgICAgICAgICBy
ZXN1bHQgPSAnc3VjY2Vzc2Z1bCc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9
ICdlcnJvcjogJyArIChlID8gZS5uYW1lIDogbnVsbCk7CisgICAgfQorCisgICAgaWYgKHN1YnNj
cmlwdGlvbikKKyAgICAgICAgYXdhaXQgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7CisKKyAg
ICBpZiAocmVzdWx0ID09IGV4cGVjdGVkKQorICAgICAgICBsb2coYFBBU1M6IGRvY3VtZW50IHN1
YnNjcmliZSB3YXMgJHtleHBlY3RlZH1gKTsKKyAgICBlbHNlCisgICAgICAgIGxvZyhgRkFJTDog
ZG9jdW1lbnQgc3Vic2NyaWJlIHNob3VsZCBiZSAke2V4cGVjdGVkfSwgYnV0IHdhcyAke3Jlc3Vs
dH1gKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtd29ya2VyLmpzIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLXdvcmtl
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMGQwZjdmNzVkMWM3ZWVhYTFhNDVkMGE3YzQyNjZkNjY4ODJkNDNm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNv
dXJjZXMvc3Vic2NyaWJlLXdvcmtlci5qcwpAQCAtMCwwICsxLDQzIEBACitjb25zdCBWQUxJRF9T
RVJWRVJfS0VZID0gIkJBMUh4enlpMVJVTTFiNXdqeHNuN25HeEFzencydTYxbTE2NGkzTXJBSXhI
RjZZSzVoNFNEWWljLWRSdVVfUkNQQ2ZBNWFxOW9qU3drNVkyRW1DbEJQcyI7CisKK3NlbGYuYWRk
RXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGFzeW5jIChldmVudCkgPT4geworICAgIGxldCBbb3As
IC4uLmFyZ3NdID0gZXZlbnQuZGF0YTsKKworICAgIGlmIChvcCA9PSAncGVybWlzc2lvblN0YXRl
JykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbGV0IHN0YXRlID0gYXdhaXQgc2VsZi5y
ZWdpc3RyYXRpb24ucHVzaE1hbmFnZXIucGVybWlzc2lvblN0YXRlKCk7CisgICAgICAgICAgICBl
dmVudC5zb3VyY2UucG9zdE1lc3NhZ2Uoc3RhdGUpOworICAgICAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoImVycm9yOiAiICsgZSk7CisgICAg
ICAgIH0KKyAgICB9IGVsc2UgaWYgKG9wID09ICdzdWJzY3JpYmUnKSB7CisgICAgICAgIGxldCBz
dWJzY3JpcHRpb24gPSBudWxsOworICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDsKKworICAgICAg
ICB0cnkgeworICAgICAgICAgICAgc3Vic2NyaXB0aW9uID0gYXdhaXQgc2VsZi5yZWdpc3RyYXRp
b24ucHVzaE1hbmFnZXIuc3Vic2NyaWJlKHsKKyAgICAgICAgICAgICAgICB1c2VyVmlzaWJsZU9u
bHk6IHRydWUsCisgICAgICAgICAgICAgICAgYXBwbGljYXRpb25TZXJ2ZXJLZXk6IGFyZ3NbMF0K
KyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbikKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSAic3VjY2Vzc2Z1bCI7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gImVycm9yOiBudWxsIHN1YnNjcmlwdGlvbiI7CisgICAgICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGlmICghZSkKKyAgICAgICAgICAgICAgICByZXN1bHQg
PSAiZXJyb3I6IG51bGwgZXhjZXB0aW9uIjsKKyAgICAgICAgICAgIGVsc2UgaWYgKGUubmFtZSA9
PSAnQWJvcnRFcnJvcicpCisgICAgICAgICAgICAgICAgLy8gTGF5b3V0IHRlc3RzIGN1cnJlbnRs
eSBhcmVuJ3QgY29ubmVjdGVkIHRvIHdlYnB1c2hkLiBTbyBpZiB3ZSBmYWlsIHdpdGggYW4gQWJv
cnRFcnJvcgorICAgICAgICAgICAgICAgIC8vIHdoZW4gdHJ5aW5nIHRvIGNvbm5lY3QgdG8gd2Vi
cHVzaGQsIHdlIGNvdW50IHRoYXQgYXMgYSBzdWNjZXNzZnVsIHN1YnNjcmlwdGlvbiBmb3IKKyAg
ICAgICAgICAgICAgICAvLyB0ZXN0aW5nIHB1cnBvc2VzLgorICAgICAgICAgICAgICAgIHJlc3Vs
dCA9ICJzdWNjZXNzZnVsIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSAiZXJyb3I6ICIgKyBlLm5hbWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3Vic2Ny
aXB0aW9uKQorICAgICAgICAgICAgYXdhaXQgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7CisK
KyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKHJlc3VsdCk7CisgICAgfQorfSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZh
dWx0LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVz
aC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNmYjE2NDAyZWJiMDM4YWU0ZTE4M2YxMzU0Y2ZkMzBhNWFmNTFjZTQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0
LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1M6IHNlcnZpY2Ug
d29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJvbXB0CitQQVNTOiBkb2N1bWVudCBwZXJtaXNz
aW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzogc2VydmljZSB3b3JrZXIgc3Vic2NyaWJlIHdhcyBl
cnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNTOiBkb2N1bWVudCBzdWJzY3JpYmUgd2FzIHN1Y2Nl
c3NmdWwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJz
Y3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
dXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4
NDJjN2M3MTgyOTYyMWU1ZTZjZGU4YjllOTZmOWNlYTJhMjQyZTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1p
c3Npb25zLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9z
dWJzY3JpYmUtd29ya2VyLmpzIiwgeyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRpb24pID0+IHsK
KyAgICB0cnkgeworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmluc3Rh
bGxpbmcsICJhY3RpdmF0ZWQiKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJQZXJt
aXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRlc3RE
b2N1bWVudFBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAg
YXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90QWxsb3dl
ZEVycm9yJyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRp
b24pOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgbG9nKGBGQUlMOiB1bmV4cGVjdGVkIGV4
Y2VwdGlvbiAke2V9YCk7CisgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgZmluaXNoUHVzaEFQSVRlc3QoKTsKKyAgICB9Cit9
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1p
c3Npb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDExMjM1MjUxYmI5MjEyMjM2OTg2ODNl
MzA0OTZjZWYyMzJiOWFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzIGRlbmll
ZAorUEFTUzogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyBkZW5pZWQKK1BBU1M6IHNlcnZp
Y2Ugd29ya2VyIHN1YnNjcmliZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorUEFTUzogZG9j
dW1lbnQgc3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lv
bnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnkt
cGVybWlzc2lvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2M0MTFkOTJhOTc3NWE2ZTRjMDM3Y2I1OGFi
OTUwNjUyNTdmOTdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
dXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy5odG1sCkBAIC0wLDAgKzEsMjcgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICB0ZXN0UnVubmVyLmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKHdpbmRv
dy5vcmlnaW4pOworCituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2Vz
L3N1YnNjcmliZS13b3JrZXIuanMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4g
eworICAgIHRyeSB7CisgICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5z
dGFsbGluZywgImFjdGl2YXRlZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBl
cm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdkZW5pZWQnKTsKKyAgICAgICAgYXdhaXQgdGVz
dERvY3VtZW50UGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ2RlbmllZCcpOworICAgICAg
ICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxv
d2VkRXJyb3InKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlKHJlZ2lzdHJh
dGlvbiwgJ05vdEFsbG93ZWRFcnJvcicpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgbG9n
KGBGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAke2V9YCk7CisgICAgfSBmaW5hbGx5IHsKKyAg
ICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgZmluaXNoUHVz
aEFQSVRlc3QoKTsKKyAgICB9Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQt
cGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdh
NGM4MjgyZTA0YTc3NWFhZGYyNDZiYmY1MDIxMjY4YzdiNWE4YjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNz
aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTOiBzZXJ2aWNlIHdvcmtlciBw
ZXJtaXNzaW9uU3RhdGUgd2FzIGdyYW50ZWQKK1BBU1M6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0
ZSB3YXMgZ3JhbnRlZAorUEFTUzogc2VydmljZSB3b3JrZXIgc3Vic2NyaWJlIHdhcyBzdWNjZXNz
ZnVsCitQQVNTOiBkb2N1bWVudCBzdWJzY3JpYmUgd2FzIHN1Y2Nlc3NmdWwKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlz
c2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdy
YW50LXBlcm1pc3Npb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEzNzAxZmUxOTMwOGIzMWQxYmNiZDM4
NDc0ZTEzMTUzMDE3NDVmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLmh0bWwKQEAgLTAsMCArMSwy
NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHVzaC1hcGktdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdWJzY3JpYmUtdGVz
dHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9u
KHdpbmRvdy5vcmlnaW4pOworCituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVz
b3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlv
bikgPT4geworICAgIHRyeSB7CisgICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRp
b24uaW5zdGFsbGluZywgImFjdGl2YXRlZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdv
cmtlclBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdncmFudGVkJyk7CisgICAgICAgIGF3
YWl0IHRlc3REb2N1bWVudFBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdncmFudGVkJyk7
CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbik7
CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24pOworICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgbG9nKGBGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAk
e2V9YCk7CisgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVn
aXN0ZXIoKTsKKyAgICAgICAgZmluaXNoUHVzaEFQSVRlc3QoKTsKKyAgICB9Cit9KTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA3YTgzYjQxZjY0YWU0MDlhMGI5NmFjZjNlYTYxNzc1NzBiY2U5MGI2Li42
OWZmMDQ2MDg3ZWYxMGFhMjBmMTAwOTU0ZWYyMjI3NmZkMjc2YmUwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTg2OCwzICsxODY4LDggQEAgYWNjZXNz
aWJpbGl0eS9kaWFsb2ctcHJvcGVydGllcy5odG1sIFsgU2tpcCBdCiAjIFRoZXNlIHRlc3RzIHJl
cXVpcmUgcGxhdGZvcm0gc3VwcG9ydC4KIG1lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLmh0bWwK
IG1lZGlhL21lZGlhLWFsbG93ZWQtY29udGFpbmVycy5odG1sCisKKyMgUHVzaCBzdWJzY3JpcHRp
b24gdGVzdHMgZmFpbCB3aXRob3V0IHBsYXRmb3JtLXNwZWNpZmljIFB1c2hDcnlwdG8gaW1wbGVt
ZW50YXRpb25zLgoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNz
aW9ucy5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55
LXBlcm1pc3Npb25zLmh0bWwgWyBGYWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2Ny
aWJlLWdyYW50LXBlcm1pc3Npb25zLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzcxZGQ1MDIyMTVhYjgyNzNhYTEyZTg0ZTRh
OWFjYTMwYmIxMmMxNy4uMGIzYmY5MDMzNGJjZmQ5NzE4MjBjOTM2ZmEyZGM3NTA1MDk1OTk3ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ5OTUsMyAr
NDk5NSw4IEBAIGZhc3QvdGV4dC9sb2NhbGUtc2hhcGluZy0zLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2Vu
dFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tlZC5odG1sIFsgRmFp
bHVyZSBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdl
bnRTaGFkb3dET00vZGVmYXVsdC1zcmMtb2JqZWN0LWRhdGEtdXJsLWJsb2NrZWQyLmh0bWwgWyBG
YWlsdXJlIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJB
Z2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tlZDMuaHRtbCBb
IEZhaWx1cmUgXQorCisjIFB1c2ggc3Vic2NyaXB0aW9uIHRlc3RzIGZhaWwgd2l0aG91dCBwbGF0
Zm9ybS1zcGVjaWZpYyBQdXNoQ3J5cHRvIGltcGxlbWVudGF0aW9ucy4KK2h0dHAvdGVzdHMvcHVz
aC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQoraHR0
cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy5odG1sIFsgRmFpbHVy
ZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1s
IFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452334</attachid>
            <date>2022-02-17 00:56:19 -0800</date>
            <delta_ts>2022-02-17 00:58:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236739-20220217005619.patch</filename>
            <type>text/plain</type>
            <size>33280</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjZjZjkzZGY4ZjA3YTkz
OTBjN2IyMWRlYjZiNjVjOWIzMjBkNzM2My4uYzdlYmNjMDM0M2JhM2U5MDQxYzZmMmVhMDQ4MGQ0
ODZjYTQ4NjExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAyLTE2ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8g
cGVybWlzc2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpbXBsZW1lbnRzIFB1c2hNYW5hZ2VyLnBlcm1pc3Npb25TdGF0ZS4gSXQg
cmV0dXJucyB0aGUgc2FtZSB2YWx1ZSBhcworICAgICAgICBOb3RpZmljYXRpb24ucGVybWlzc2lv
biB0aHJvdWdoIHRoZSBzYW1lIG1lY2hhbmlzbS4KKworICAgICAgICBUaGlzIGFsc28gbWFrZXMg
UHVzaE1hbmFnZXIuc3Vic2NyaWJlIHJlcXVlc3QgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyIHRv
IHNob3cgbm90aWZpY2F0aW9ucworICAgICAgICBpZiB0aGUgcGVybWlzc2lvbiBpcyBpbiB0aGUg
ZGVmYXVsdCBzdGF0ZSBhbmQgdGhlc2UgcmVxdWlyZW1lbnRzIGFyZSBtZXQ6CisKKyAgICAgICAg
MS4gVGhlIGNhbGxlciBpcyBhIGRvY3VtZW50IHdpdGggdGhlIHNhbWUgb3JpZ2luIGFzIGEgdG9w
IGxldmVsIGRvY3VtZW50LiBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAgICAgY3Jvc3Mtb3JpZ2lu
IGlmcmFtZXMgY2Fubm90IHJlcXVlc3QgcHVzaCBwZXJtaXNzaW9ucy4gVGhpcyBtYXRjaGVzIENo
cm9tZSdzIGJlaGF2aW9yLgorICAgICAgICAyLiBUaGUgY2FsbGVyIGNhbm5vdCBiZSBhIHNlcnZp
Y2Ugd29ya2VyLiBUaGlzIGxpbWl0YXRpb24gaXMgYWxsb3dlZCBmb3IgYnkgdGhlIHNwZWMuCisK
KyAgICAgICAgVGhlcmUgYWxzbyBuZWVkcyB0byBiZSBzb21lIGNvZGUgYWRkZWQgd2hpY2ggcmVt
b3ZlcyBhIHB1c2ggc3Vic2NyaXB0aW9uIGlmIHRoZSB1c2VyIGRlbGV0ZXMKKyAgICAgICAgdGhl
IHN1YnNjcmlwdGlvbiBlbnRpcmVseSBpbiB0aGUgVUksIGZvciBpbnN0YW5jZSB3aGVuIHRoZSBV
SVByb2Nlc3MgY2FsbHMKKyAgICAgICAgV0tOb3RpZmljYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRS
ZW1vdmVOb3RpZmljYXRpb25Qb2xpY2llcy4gVGhhdCB3aWxsIGJlIGhhbmRsZWQgaW4gYQorICAg
ICAgICBzZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBsYXlvdXQgdGVz
dHMuCisKKyAgICAgICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlB1c2hNYW5hZ2VyOjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViQ29yZTo6
UHVzaE1hbmFnZXI6OmdldFN1YnNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQdXNoTWFu
YWdlcjo6cGVybWlzc2lvblN0YXRlKToKKwogMjAyMi0wMi0xNSAgTWVnYW4gR2FyZG5lciAgPG1l
Z2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBhZGRpdGlvbmFsIFJl
dmVhbCBtZXRob2RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2OGJmZGI0ODczYWEwNWJmYjFkNjIzNTFkZWYzNjQ0
ZmQ3MDkzZTA3Li4yMzRiOTZiZmQxZDMzMWM3NjI4NWQwNTAxYWVjYWZjZjdlZjk4MjcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAyLTE2ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUu
Y29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8gcGVybWlzc2lvbiBzdGF0ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzM5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGNv
bW1lbnQgZXhwbGFpbmluZyB3aHkgd2Ugc3RpbGwgaGF2ZSBhIHBlcm1pc3Npb24gc3RhdGUgc3R1
YiBpbiB3ZWJwdXNoZC4KKworICAgICAgICAqIHdlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW06Cisg
ICAgICAgIChXZWJQdXNoRDo6RGFlbW9uOjpnZXRQdXNoUGVybWlzc2lvblN0YXRlKToKKwogMjAy
Mi0wMi0xNSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEltcGxlbWVudCBhZGRpdGlvbmFsIFJldmVlYWwgbWV0aG9kcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaE1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoTWFuYWdlci5jcHAKaW5kZXggNGM3MTU2MmNkMDQ2
NDdiMTA3Nzg0NDk1MWFlMmU3ZThhN2M1YWMxNS4uMjgzMjYxYzU5NzM0MGRmZDQwNjBhOTk0NjUx
ZmRmZTA2ZGViMzY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFw
aS9QdXNoTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9Q
dXNoTWFuYWdlci5jcHAKQEAgLTI4LDEwICsyOCwxMiBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnRM
b29wLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNQdXNoUGVybWlzc2lv
blN0YXRlLmgiCiAjaW5jbHVkZSAiSlNQdXNoU3Vic2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiTm90
aWZpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiUHVzaENyeXB0by5oIgogI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLmgiCkBAIC02NSwxMSArNjcsMTEgQEAgdm9pZCBQdXNoTWFuYWdlcjo6ZGVyZWYoKSBjb25z
dAogICAgIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5kZXJlZigpOwogfQogCi12b2lkIFB1
c2hNYW5hZ2VyOjpzdWJzY3JpYmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgc3RkOjpvcHRpb25hbDxQdXNoU3Vic2NyaXB0aW9uT3B0aW9uc0luaXQ+JiYg
b3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxQdXNoU3Vic2NyaXB0aW9u
Pj4mJiBwcm9taXNlKQordm9pZCBQdXNoTWFuYWdlcjo6c3Vic2NyaWJlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJ
bml0PiYmIG9wdGlvbnMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8UHVzaFN1YnNj
cmlwdGlvbj4+JiYgcHJvbWlzZSkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChzY3JpcHRFeGVjdXRp
b25Db250ZXh0LmlzU2VjdXJlQ29udGV4dCgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjb250ZXh0
LmlzU2VjdXJlQ29udGV4dCgpKTsKICAgICAKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LmV2
ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICBjb250ZXh0LmV2ZW50TG9v
cCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IFJlZiB7ICp0aGlzIH0sIGNvbnRleHQgPSBSZWYgeyBjb250ZXh0IH0sIG9wdGlvbnMgPSBX
VEZNb3ZlKG9wdGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLT51c2VyVmlzaWJsZU9ubHkpIHsKICAg
ICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlN1
YnNjcmliaW5nIGZvciBwdXNoIHJlcXVpcmVzIHVzZXJWaXNpYmxlT25seSB0byBiZSB0cnVlIl9z
IH0pOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTExLDIyICsxMTMsNjYgQEAgdm9pZCBQdXNo
TWFuYWdlcjo6c3Vic2NyaWJlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIHN0ZDoKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAg
IGF1dG8gY2xpZW50ID0gY29udGV4dC0+bm90aWZpY2F0aW9uQ2xpZW50KCk7CisgICAgICAgIGF1
dG8gcGVybWlzc2lvbiA9IGNsaWVudCA/IGNsaWVudC0+Y2hlY2tQZXJtaXNzaW9uKGNvbnRleHQu
cHRyKCkpIDogTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVuaWVkOworCisgICAgICAgIGlmIChw
ZXJtaXNzaW9uID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlbmllZCkgeworICAgICAgICAg
ICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiVXNlciBkZW5p
ZWQgcHVzaCBwZXJtaXNzaW9uIl9zIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0gTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVm
YXVsdCAmJiAhY29udGV4dC0+aXNEb2N1bWVudCgpKSB7CisgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJVc2VyIGRlbmllZCBwdXNoIHBlcm1p
c3Npb24iX3MgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBp
ZiAocGVybWlzc2lvbiA9PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpEZWZhdWx0KSB7CisgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVChjbGllbnQpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoY29udGV4dC0+aXNEb2N1bWVudCgpKTsKKworICAgICAgICAgICAgaWYgKCFkb3duY2FzdDxE
b2N1bWVudD4oY29udGV4dC5nZXQoKSkuaXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCgpKSB7Cisg
ICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9y
LCAiVXNlciBkZW5pZWQgcHVzaCBwZXJtaXNzaW9uIl9zIH0pOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKworI2lmICFQTEFURk9STShXSU5fQ0FJUk8pCisgICAgICAg
ICAgICAvLyBSZWYgeyAqdGhpcyB9IHRyaWdnZXJzIGEgY29tcGlsZXIgYnVnIG9uIHdpbmNhaXJv
IHdoZXJlIGl0IHRyaWVzIHRvIHJlZiB0aGUgbGFtYmRhIGluc3RlYWQgb2YgUHVzaE1hbmFnZXIu
CisgICAgICAgICAgICBjbGllbnQtPnJlcXVlc3RQZXJtaXNzaW9uKGNvbnRleHQsIFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwga2V5RGF0YSA9IGtleURhdGFSZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHBlcm1p
c3Npb24pIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uICE9IE5vdGlm
aWNhdGlvblBlcm1pc3Npb246OkdyYW50ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiVXNlciBkZW5pZWQgcHVzaCBw
ZXJtaXNzaW9uIl9zIH0pOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnN1
YnNjcmliZVRvUHVzaFNlcnZpY2UoV1RGTW92ZShrZXlEYXRhKSwgV1RGTW92ZShwcm9taXNlKSk7
CisgICAgICAgICAgICB9KTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQocGVybWlzc2lvbiA9PSBOb3RpZmljYXRpb25QZXJt
aXNzaW9uOjpHcmFudGVkKTsKICAgICAgICAgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnN1
YnNjcmliZVRvUHVzaFNlcnZpY2Uoa2V5RGF0YVJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwg
V1RGTW92ZShwcm9taXNlKSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgUHVzaE1hbmFnZXI6OmdldFN1
YnNjcmlwdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPFB1c2hTdWJzY3Jp
cHRpb24+Pj4mJiBwcm9taXNlKQordm9pZCBQdXNoTWFuYWdlcjo6Z2V0U3Vic2NyaXB0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIERPTVByb21pc2VEZWZlcnJlZDxJRExOdWxs
YWJsZTxJRExJbnRlcmZhY2U8UHVzaFN1YnNjcmlwdGlvbj4+PiYmIHByb21pc2UpCiB7Ci0gICAg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6
TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICBjb250ZXh0LmV2ZW50TG9vcCgp
LnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11dGFibGUgewog
ICAgICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uZ2V0UHVzaFN1YnNjcmlwdGlvbihX
VEZNb3ZlKHByb21pc2UpKTsKICAgICB9KTsKIH0KIAotdm9pZCBQdXNoTWFuYWdlcjo6cGVybWlz
c2lvblN0YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJbml0PiYmIG9wdGlvbnMsIERP
TVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQdXNoUGVybWlzc2lvblN0YXRlPj4mJiBw
cm9taXNlKQordm9pZCBQdXNoTWFuYWdlcjo6cGVybWlzc2lvblN0YXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJ
bml0PiYmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UHVzaFBlcm1pc3Npb25T
dGF0ZT4+JiYgcHJvbWlzZSkKIHsKLSAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7Ci0gICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0
d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgbV9zZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uLmdldFB1c2hQZXJtaXNzaW9uU3RhdGUoV1RGTW92ZShwcm9taXNlKSk7CisgICAg
Y29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW2Nv
bnRleHQgPSBSZWYgeyBjb250ZXh0IH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11
dGFibGUgeworICAgICAgICBhdXRvIGNsaWVudCA9IGNvbnRleHQtPm5vdGlmaWNhdGlvbkNsaWVu
dCgpOworICAgICAgICBhdXRvIHBlcm1pc3Npb24gPSBjbGllbnQgPyBjbGllbnQtPmNoZWNrUGVy
bWlzc2lvbihjb250ZXh0LnB0cigpKSA6IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlbmllZDsK
KworICAgICAgICBpZiAocGVybWlzc2lvbiA9PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpEZWZh
dWx0KQorICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFB1c2hQZXJtaXNzaW9uU3RhdGU6OlBy
b21wdCk7CisgICAgICAgIGVsc2UgaWYgKHBlcm1pc3Npb24gPT0gTm90aWZpY2F0aW9uUGVybWlz
c2lvbjo6R3JhbnRlZCkKKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShQdXNoUGVybWlzc2lv
blN0YXRlOjpHcmFudGVkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJvbWlzZS5yZXNv
bHZlKFB1c2hQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbSBiL1NvdXJjZS9XZWJL
aXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQppbmRleCBhZGQ2ZTNkOGFkZmVhODk5ODg4ZjRi
YWY2MWFjYzA1MzEzNjNkY2M1Li5hYTM0NThjZTI1Njk3Njg1OTNhY2ZmNTdlMDliM2MyMjJjODc0
YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tCkBAIC02MTgsMTIg
KzYxOCwxMCBAQCB2b2lkIERhZW1vbjo6Z2V0UHVzaFN1YnNjcmlwdGlvbihDbGllbnRDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBjb25zdCBVUkwmIHNjb3BlVQogCiB2b2lkIERhZW1vbjo6Z2V0UHVz
aFBlcm1pc3Npb25TdGF0ZShDbGllbnRDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBVUkwm
IHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEV4cGVjdGVkPHVpbnQ4X3Qs
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpCiB7Ci0gICAgLy8gRklY
TUUKLSNpZiBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCkKLSAgICBy
ZXBseVNlbmRlcihzdGF0aWNfY2FzdDx1aW50OF90PihXZWJDb3JlOjpQdXNoUGVybWlzc2lvblN0
YXRlOjpHcmFudGVkKSk7Ci0jZWxzZQorICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgYWN0dWFs
bHkgZ2V0IGNhbGxlZCByaWdodCBub3csIHNpbmNlIHRoZSBwZXJtaXNzaW9uIGlzIGN1cnJlbnRs
eSBjaGVja2VkCisgICAgLy8gaW4gV2ViUHJvY2Vzcy4gSG93ZXZlciwgd2UndmUgbGVmdCB0aGlz
IHN0dWIgaW4gZm9yIG5vdyBiZWNhdXNlIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgd2UKKyAgICAv
LyB3aWxsIG1vdmUgdGhlIHBlcm1pc3Npb24gY2hlY2sgaW50byB3ZWJwdXNoZCB3aGVuIHN1cHBv
cnRpbmcgb3RoZXIgcGxhdGZvcm1zLgogICAgIHJlcGx5U2VuZGVyKHN0YXRpY19jYXN0PHVpbnQ4
X3Q+KFdlYkNvcmU6OlB1c2hQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCkpOwotI2VuZGlmCiB9CiAK
IENsaWVudENvbm5lY3Rpb24qIERhZW1vbjo6dG9DbGllbnRDb25uZWN0aW9uKHhwY19jb25uZWN0
aW9uX3QgY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAxYzdiYzFjODhiMTc1ZmM0ZjhlZjA2NmY4NWM1ODhlNGU5ZjM4YWQ5Li43
MGFlMWQxMWNmZmM5YjU2N2Y3MjEwYTc4Y2M5ZTE2NTg2ZjAwODFlIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjIt
MDItMTYgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSG9vayB1cCBQdXNo
TWFuYWdlciB0byBwZXJtaXNzaW9uIHN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYWRlIHRoZSBXZWJQdXNoRCBBUEkgdGVzdHMgd29yayBub3cg
dGhhdCBzdWJzY3JpYmUgY2hlY2tzIGZvciBwZXJtaXNzaW9uLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tOgorCiAyMDIyLTAyLTE1
ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBnaXQtd2Vi
a2l0IHNldHVwIHNob3VsZCB2ZXJpZnkgdGhlIGNyZWRlbnRpYWxzIGJlZm9yZSBzYXZpbmcgdGhl
bQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQ
dXNoRGFlbW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQ
dXNoRGFlbW9uLm1tCmluZGV4IGI3YjM0YjZjYWE1NDdiZTMyYTM3NjI4Y2NmMWFjZGVlYzZmNWQ2
NTkuLjdiOTEwMjhkY2FhZjgxMmM4ODllY2I2OTI3ZjNiNTg5Yzk3NWRiMzAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24u
bW0KQEAgLTQyNiw2ICs0MjYsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIG1fbm90aWZpY2F0
aW9uTWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbTm90aWZpY2F0aW9uU2NyaXB0TWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW1ttX2NvbmZpZ3VyYXRpb24gdXNlckNvbnRl
bnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptX25vdGlmaWNhdGlvbk1lc3Nh
Z2VIYW5kbGVyLmdldCgpIG5hbWU6QCJub3RlIl07CisKKyAgICAgICAgbV93ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOm1fY29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgICAgICBt
X3VpRGVsZWdhdGUgPSBhZG9wdE5TKFtbTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CisgICAgICAgIFttX3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTptX3VpRGVsZWdh
dGUuZ2V0KCldOwogICAgIH0KIAogICAgIHZvaWQgbG9hZFJlcXVlc3QoY29uc3QgY2hhciogaHRt
bFNvdXJjZSwgY29uc3QgY2hhciogc2VydmljZVdvcmtlclNjcmlwdFNvdXJjZSkKQEAgLTQ0MCw3
ICs0NDQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICB7ICIvc3cuanMiLCB7IHsgeyAiQ29u
dGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH0gfSwgc2VydmljZVdvcmtlclNj
cmlwdFNvdXJjZSB9IH0KICAgICAgICAgfSwgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6UHJv
dG9jb2w6Okh0dHApKTsKIAotICAgICAgICBtX3dlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246bV9jb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgICAgIFttX3dlYlZpZXcgbG9hZFJl
cXVlc3Q6bV9zZXJ2ZXItPnJlcXVlc3QoKV07CiAgICAgfQogCkBAIC00NTYsNiArNDU5LDcgQEAg
cHJvdGVjdGVkOgogICAgIFJldGFpblB0cjxOb3RpZmljYXRpb25TY3JpcHRNZXNzYWdlSGFuZGxl
cj4gbV9ub3RpZmljYXRpb25NZXNzYWdlSGFuZGxlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGVz
dFdlYktpdEFQSTo6SFRUUFNlcnZlcj4gbV9zZXJ2ZXI7CiAgICAgUmV0YWluUHRyPFdLV2ViVmll
dz4gbV93ZWJWaWV3OworICAgIFJldGFpblB0cjxpZDxXS1VJRGVsZWdhdGVQcml2YXRlPj4gbV91
aURlbGVnYXRlOwogfTsKIAogY2xhc3MgV2ViUHVzaERJbmplY3RlZFB1c2hUZXN0IDogcHVibGlj
IFdlYlB1c2hEVGVzdCB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmYzMGNlZWMwODVmZjVhNTI1NzRlODE2ZDMwZmFkMmI3
NDIyZDAzMy4uZjZjZDJmNTUyNTIzMDI3NWY5MjA4OWRjMDVhYjljZjYzMzM3OGZhNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQzIEBACisyMDIyLTAyLTE2ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgor
CisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8gcGVybWlzc2lvbiBzdGF0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdGhh
dCBtYWtlIHN1cmUgdGhhdCBQdXNoTWFuYWdlci5wZXJtaXNzaW9uU3RhdGUoKSBhbmQgUHVzaE1h
bmFnZXIuc3Vic2NyaWJlKCkKKyAgICAgICAgcmVzcGVjdCB0aGUgbm90aWZpY2F0aW9uIHBlcm1p
c3Npb24gbGV2ZWwgZm9yIHRoZSBjdXJyZW50IG9yaWdpbi4KKworICAgICAgICBJIG1hZGUgdGhl
c2UgcmVndWxhciB0ZXN0cyByYXRoZXIgdGhhbiBXUFQgdGVzdHMgYmVjYXVzZSB0aGUgV1BUIHRl
c3QgaGFybmVzcyBjYWxscworICAgICAgICBncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24g
YXQgdGhlIHRvcCBvZiBpdHMgc2V0dXAgc2NyaXB0IChpbiB0ZXN0aGFybmVzc3JlcG9ydC5qcyks
IGFuZAorICAgICAgICBJIGRpZG4ndCB3YW50IHRvIGNoYW5nZSB0aGF0IGZvciB0aGlzIHBhdGNo
LgorCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvcHVzaC1hcGktdGVz
dC1wcmUuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoUHVzaEFQSVRlc3QpOgorICAgICAgICAo
d2FpdEZvclN0YXRlKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9z
dWJzY3JpYmUtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1lLXNhbWUtb3JpZ2luLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNj
cmliZS10ZXN0cy5qczogQWRkZWQuCisgICAgICAgIChhc3luYyB0ZXN0U2VydmljZVdvcmtlclBl
cm1pc3Npb25TdGF0ZSk6CisgICAgICAgIChhc3luYyB0ZXN0RG9jdW1lbnRQZXJtaXNzaW9uU3Rh
dGUpOgorICAgICAgICAoYXN5bmMgdGVzdFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUpOgorICAgICAg
ICAoYXN5bmMgdGVzdERvY3VtZW50U3Vic2NyaWJlKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1
c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFz
eW5jIGV2ZW50KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZh
dWx0LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3Jp
Z2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9z
dWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVy
bWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJh
bWUtc2FtZS1vcmlnaW4uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1w
ZXJtaXNzaW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1p
c3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4tZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMi0xNSAgTWF0dGVvIEZs
b3JlcyAgPG1hdHRlb19mbG9yZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFzbGluaW5nIGZv
bnRzL21vbm9zcGFjZS5odG1sIGZvciBNb250ZXJleS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmI4ZTVkNzQ3M2VhNWI3ZTM3N2M0YjY2YzgxNzhmZGU0MWJlOTk4MQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3Vy
Y2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzCkBAIC0wLDAgKzEsNDkgQEAKK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBmaW5pc2hQdXNoQVBJVGVzdCgpCit7Cisg
ICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5wYXJlbnQgIT09
IHdpbmRvdykgeworICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKCdmaW5pc2hQdXNo
QVBJVGVzdCcsICcqJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5j
dGlvbiB3YWl0Rm9yU3RhdGUod29ya2VyLCBzdGF0ZSkKK3sKKyAgICBpZiAoIXdvcmtlciB8fCB3
b3JrZXIuc3RhdGUgPT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qo
bmV3IEVycm9yKCd3YWl0X2Zvcl9zdGF0ZSBtdXN0IGJlIHBhc3NlZCBhIFNlcnZpY2VXb3JrZXIn
KSk7CisKKyAgICBpZiAod29ya2VyLnN0YXRlID09PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJuIFBy
b21pc2UucmVzb2x2ZShzdGF0ZSk7CisKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o
cmVzb2x2ZSkgeworICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKHdvcmtlci5zdGF0ZSA9PT0gc3RhdGUpCisgICAg
ICAgICAgICByZXNvbHZlKHN0YXRlKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2Z1bmN0
aW9uIGxvZyhtc2cpCit7CisgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYm
IHdpbmRvdy5wYXJlbnQgIT09IHdpbmRvdykgeworICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RN
ZXNzYWdlKG1zZywgJyonKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGxldCBjb25z
b2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICBpZiAoIWNvbnNv
bGUpIHsKKyAgICAgICAgY29uc29sZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgICAgICBjb25zb2xlLmlkID0gImNvbnNvbGUiOworICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGNvbnNvbGUpOworICAgIH0KKyAgICBsZXQgc3BhbiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBzcGFuLmlubmVySFRNTCA9IG1zZyArICI8YnI+IjsKKyAg
ICBjb25zb2xlLmFwcGVuZENoaWxkKHNwYW4pOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1jcm9zcy1vcmln
aW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNj
cmliZS1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjkwZjU2OTQxMWVkNDJh
YTMyMDc0MTMxZTA0OWU4NGFjZGI2NWY5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJhbWUtY3Jvc3Mtb3Jp
Z2luLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPHNjcmlwdCBzcmM9InB1c2gtYXBpLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdWJzY3JpYmUtdGVzdHMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJzdWJzY3JpYmUt
d29ya2VyLmpzIiwgeyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRpb24pID0+IHsKKyAgICB0cnkg
eworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICJh
Y3RpdmF0ZWQiKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3Rh
dGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFBl
cm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVz
dFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90QWxsb3dlZEVycm9yJyk7
CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RB
bGxvd2VkRXJyb3InKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGxvZyhgRkFJTDogdW5l
eHBlY3RlZCBleGNlcHRpb24gJHtlfWApOworICAgIH0gZmluYWxseSB7CisgICAgICAgIGF3YWl0
IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7
CisgICAgfQorfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJhbWUtc2FtZS1vcmlnaW4uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJh
bWUtc2FtZS1vcmlnaW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDNlMWY2YjIxNjkzNWQ2MjA2NDhjMjY3
NTU2YjEzMjEzZTkxNjI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sCkBA
IC0wLDAgKzEsMTggQEAKKzxzY3JpcHQgc3JjPSJwdXNoLWFwaS10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3Vic2NyaWJlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcigic3Vic2NyaWJlLXdvcmtlci5qcyIs
IHsgfSkudGhlbihhc3luYyAocmVnaXN0cmF0aW9uKSA9PiB7CisgICAgdHJ5IHsKKyAgICAgICAg
YXdhaXQgd2FpdEZvclN0YXRlKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAiYWN0aXZhdGVkIik7
CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyUGVybWlzc2lvblN0YXRlKHJlZ2lzdHJh
dGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRQZXJtaXNzaW9uU3Rh
dGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29y
a2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93ZWRFcnJvcicpOworICAgICAgICBh
d2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9uKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGxvZyhgRkFJTDogdW5leHBlY3RlZCBleGNlcHRpb24gJHtlfWApOworICAg
IH0gZmluYWxseSB7CisgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Cisg
ICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7CisgICAgfQorfSk7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmli
ZS10ZXN0cy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1
YnNjcmliZS10ZXN0cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjE1YjU2ZmM3M2I2NWYwY2IzZjRlMDM4NjJj
MjFkNmQ3OWFkZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
dXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzCkBAIC0wLDAgKzEsNzEgQEAKK2Nv
bnN0IFZBTElEX1NFUlZFUl9LRVkgPSAiQkExSHh6eWkxUlVNMWI1d2p4c243bkd4QXN6dzJ1NjFt
MTY0aTNNckFJeEhGNllLNWg0U0RZaWMtZFJ1VV9SQ1BDZkE1YXE5b2pTd2s1WTJFbUNsQlBzIjsK
KworYXN5bmMgZnVuY3Rpb24gdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3RhdGUocmVnaXN0
cmF0aW9uLCBleHBlY3RlZCkKK3sKKyAgICBsZXQgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29s
dmUgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gcmVzb2x2ZSk7CisgICAg
cmVnaXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZShbJ3Blcm1pc3Npb25TdGF0ZSddKTsKKyAg
ICBsZXQgZXZlbnQgPSBhd2FpdCBwcm9taXNlOworICAgIGxldCByZXN1bHQgPSBldmVudC5kYXRh
OworCisgICAgaWYgKHJlc3VsdCA9PSBleHBlY3RlZCkKKyAgICAgICAgbG9nKGBQQVNTOiBzZXJ2
aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzICR7ZXhwZWN0ZWR9YCk7CisgICAgZWxzZQor
ICAgICAgICBsb2coYEZBSUw6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSBzaG91bGQg
YmUgJHtleHBlY3RlZH0sIGJ1dCB3YXMgJHtyZXN1bHR9YCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9u
IHRlc3REb2N1bWVudFBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkKQorewor
ICAgIGxldCBzdGF0ZSA9IGF3YWl0IHJlZ2lzdHJhdGlvbi5wdXNoTWFuYWdlci5wZXJtaXNzaW9u
U3RhdGUoKTsKKworICAgIGlmIChzdGF0ZSA9PSBleHBlY3RlZCkKKyAgICAgICAgbG9nKGBQQVNT
OiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzICR7ZXhwZWN0ZWR9YCk7CisgICAgZWxzZQor
ICAgICAgICBsb2coYEZBSUw6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSBzaG91bGQgYmUgJHtl
eHBlY3RlZH0sIGJ1dCB3YXMgJHtzdGF0ZX1gKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdFNl
cnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCBkb21FeGNlcHRpb25OYW1lKQorewor
ICAgIGxldCBleHBlY3RlZCA9IGRvbUV4Y2VwdGlvbk5hbWUgPyBgZXJyb3I6ICR7ZG9tRXhjZXB0
aW9uTmFtZX1gIDogInN1Y2Nlc3NmdWwiOworCisgICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHsgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gcmVzb2x2
ZTsgfSk7CisgICAgcmVnaXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZShbJ3N1YnNjcmliZScs
IFZBTElEX1NFUlZFUl9LRVldKTsKKyAgICBsZXQgZXZlbnQgPSBhd2FpdCBwcm9taXNlOworICAg
IGxldCByZXN1bHQgPSBldmVudC5kYXRhOworCisgICAgaWYgKHJlc3VsdCA9PSBleHBlY3RlZCkK
KyAgICAgICAgbG9nKGBQQVNTOiBzZXJ2aWNlIHdvcmtlciBzdWJzY3JpYmUgd2FzICR7ZXhwZWN0
ZWR9YCk7CisgICAgZWxzZQorICAgICAgICBsb2coYEZBSUw6IHNlcnZpY2Ugd29ya2VyIHN1YnNj
cmliZSBzaG91bGQgYmUgJHtleHBlY3RlZH0sIGJ1dCB3YXMgJHtyZXN1bHR9YCk7Cit9CisKK2Fz
eW5jIGZ1bmN0aW9uIHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24sIGRvbUV4Y2Vw
dGlvbk5hbWUpCit7CisgICAgbGV0IGV4cGVjdGVkID0gZG9tRXhjZXB0aW9uTmFtZSA/IGBlcnJv
cjogJHtkb21FeGNlcHRpb25OYW1lfWAgOiAic3VjY2Vzc2Z1bCI7CisgICAgbGV0IHJlc3VsdCA9
IG51bGw7CisKKyAgICBsZXQgc3Vic2NyaXB0aW9uID0gbnVsbDsKKyAgICB0cnkgeworICAgICAg
ICAvLyBXaXRoIGRlZmF1bHQgcGVybWlzc2lvbnMsIFB1c2hNYW5hZ2VyIHNob3VsZCByZXF1ZXN0
IHBlcm1pc3Npb24gZnJvbSBUZXN0Q29udHJvbGxlci4KKyAgICAgICAgLy8gVGVzdENvbnRyb2xs
ZXIgYWx3YXlzIGNhbGxzIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyBzbyB0
aGlzIHNob3VsZCBzdWNjZWVkLgorICAgICAgICBzdWJzY3JpcHRpb24gPSBhd2FpdCByZWdpc3Ry
YXRpb24ucHVzaE1hbmFnZXIuc3Vic2NyaWJlKHsKKyAgICAgICAgICAgIHVzZXJWaXNpYmxlT25s
eTogdHJ1ZSwKKyAgICAgICAgICAgIGFwcGxpY2F0aW9uU2VydmVyS2V5OiBWQUxJRF9TRVJWRVJf
S0VZCisgICAgICAgIH0pOworICAgICAgICByZXN1bHQgPSAnc3VjY2Vzc2Z1bCc7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICAvLyBMYXlvdXQgdGVzdHMgYXJlbid0IGNvbm5lY3RlZCB0byB3
ZWJwdXNoZCwgc28gc3Vic2NyaWJlIGlzIHN1Y2Nlc3NmdWwgaWYgaXQgZ2V0cyB0byB0aGUKKyAg
ICAgICAgLy8gcG9pbnQgd2hlcmUgd2UgYXR0ZW1wdCB0byBjb21tdW5pY2F0ZSB3aXRoIHdlYnB1
c2hkIChhbiBBYm9ydEVycm9yKS4KKyAgICAgICAgaWYgKGUubmFtZSA9PSAnQWJvcnRFcnJvcicp
CisgICAgICAgICAgICByZXN1bHQgPSAnc3VjY2Vzc2Z1bCc7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHJlc3VsdCA9ICdlcnJvcjogJyArIChlID8gZS5uYW1lIDogbnVsbCk7CisgICAgfQor
CisgICAgaWYgKHN1YnNjcmlwdGlvbikKKyAgICAgICAgYXdhaXQgc3Vic2NyaXB0aW9uLnVuc3Vi
c2NyaWJlKCk7CisKKyAgICBpZiAocmVzdWx0ID09IGV4cGVjdGVkKQorICAgICAgICBsb2coYFBB
U1M6IGRvY3VtZW50IHN1YnNjcmliZSB3YXMgJHtleHBlY3RlZH1gKTsKKyAgICBlbHNlCisgICAg
ICAgIGxvZyhgRkFJTDogZG9jdW1lbnQgc3Vic2NyaWJlIHNob3VsZCBiZSAke2V4cGVjdGVkfSwg
YnV0IHdhcyAke3Jlc3VsdH1gKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3Jp
YmUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMv
c3Vic2NyaWJlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGQwZjdmNzVkMWM3ZWVhYTFhNDVkMGE3
YzQyNjZkNjY4ODJkNDNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLXdvcmtlci5qcwpAQCAtMCwwICsxLDQzIEBA
Citjb25zdCBWQUxJRF9TRVJWRVJfS0VZID0gIkJBMUh4enlpMVJVTTFiNXdqeHNuN25HeEFzency
dTYxbTE2NGkzTXJBSXhIRjZZSzVoNFNEWWljLWRSdVVfUkNQQ2ZBNWFxOW9qU3drNVkyRW1DbEJQ
cyI7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGFzeW5jIChldmVudCkgPT4g
eworICAgIGxldCBbb3AsIC4uLmFyZ3NdID0gZXZlbnQuZGF0YTsKKworICAgIGlmIChvcCA9PSAn
cGVybWlzc2lvblN0YXRlJykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbGV0IHN0YXRl
ID0gYXdhaXQgc2VsZi5yZWdpc3RyYXRpb24ucHVzaE1hbmFnZXIucGVybWlzc2lvblN0YXRlKCk7
CisgICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2Uoc3RhdGUpOworICAgICAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoImVycm9y
OiAiICsgZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG9wID09ICdzdWJzY3JpYmUnKSB7
CisgICAgICAgIGxldCBzdWJzY3JpcHRpb24gPSBudWxsOworICAgICAgICBsZXQgcmVzdWx0ID0g
bnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Vic2NyaXB0aW9uID0gYXdhaXQg
c2VsZi5yZWdpc3RyYXRpb24ucHVzaE1hbmFnZXIuc3Vic2NyaWJlKHsKKyAgICAgICAgICAgICAg
ICB1c2VyVmlzaWJsZU9ubHk6IHRydWUsCisgICAgICAgICAgICAgICAgYXBwbGljYXRpb25TZXJ2
ZXJLZXk6IGFyZ3NbMF0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaWYgKHN1YnNjcmlw
dGlvbikKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAic3VjY2Vzc2Z1bCI7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gImVycm9yOiBudWxsIHN1YnNjcmlwdGlv
biI7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGlmICghZSkKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSAiZXJyb3I6IG51bGwgZXhjZXB0aW9uIjsKKyAgICAgICAgICAgIGVs
c2UgaWYgKGUubmFtZSA9PSAnQWJvcnRFcnJvcicpCisgICAgICAgICAgICAgICAgLy8gTGF5b3V0
IHRlc3RzIGN1cnJlbnRseSBhcmVuJ3QgY29ubmVjdGVkIHRvIHdlYnB1c2hkLiBTbyBpZiB3ZSBm
YWlsIHdpdGggYW4gQWJvcnRFcnJvcgorICAgICAgICAgICAgICAgIC8vIHdoZW4gdHJ5aW5nIHRv
IGNvbm5lY3QgdG8gd2VicHVzaGQsIHdlIGNvdW50IHRoYXQgYXMgYSBzdWNjZXNzZnVsIHN1YnNj
cmlwdGlvbiBmb3IKKyAgICAgICAgICAgICAgICAvLyB0ZXN0aW5nIHB1cnBvc2VzLgorICAgICAg
ICAgICAgICAgIHJlc3VsdCA9ICJzdWNjZXNzZnVsIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSAiZXJyb3I6ICIgKyBlLm5hbWU7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoc3Vic2NyaXB0aW9uKQorICAgICAgICAgICAgYXdhaXQgc3Vic2NyaXB0aW9uLnVu
c3Vic2NyaWJlKCk7CisKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKHJlc3VsdCk7
CisgICAgfQorfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBp
L3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNmYjE2NDAyZWJiMDM4YWU0ZTE4M2YxMzU0Y2ZkMzBhNWFmNTFj
ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K1BBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJvbXB0CitQQVNTOiBk
b2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzogc2VydmljZSB3b3JrZXIg
c3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNTOiBkb2N1bWVudCBzdWJz
Y3JpYmUgd2FzIHN1Y2Nlc3NmdWwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3Jp
Z2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2Ny
aWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzc4ZWJiYWY0Zjk4M2MzNmViMDZjZmMwYmUyMWNjYmI4ZmEyMjA0NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJl
LWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw2IEBACisKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMg
cHJvbXB0CitQQVNTOiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzog
c2VydmljZSB3b3JrZXIgc3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNT
OiBkb2N1bWVudCBzdWJzY3JpYmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1w
ZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1v
cmlnaW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hM2Q1ZWJiNGJhMDQ5NjZlMDRiZmRiYTRhYTA4Y2NkM2Y2
ZDVhYThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwK
QEAgLTAsMCArMSwxNyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
Pgord2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgaWYgKGV2ZW50LmRh
dGEgPT0gJ2ZpbmlzaFB1c2hBUElUZXN0JykKKyAgICAgICAgZmluaXNoUHVzaEFQSVRlc3QoKTsK
KyAgICBlbHNlCisgICAgICAgIGxvZyhldmVudC5kYXRhKTsKK307Cis8L3NjcmlwdD4KKzxpZnJh
bWUgc3JjPSJodHRwczovLzEyNy4wLjAuMTo4NDQzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3Jp
YmUtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUt
ZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9u
cy1pZnJhbWUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ZTMwMTlhZjY5
NjMwNDM4NWZhMGViYjI2YmU5N2NkMzM2ZjQ4YzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlm
cmFtZS1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1M6IHNl
cnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJvbXB0CitQQVNTOiBkb2N1bWVudCBw
ZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzogc2VydmljZSB3b3JrZXIgc3Vic2NyaWJl
IHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNTOiBkb2N1bWVudCBzdWJzY3JpYmUgd2Fz
IHN1Y2Nlc3NmdWwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlz
c2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ3OTdlMjljMjQ0NWU1
NmZjNmI1MDE2MzI0YjM2ZDhiNWRmMTBkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1l
LXNhbWUtb3JpZ2luLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0Pgord2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgaWYgKGV2ZW50LmRhdGEgPT0gJ2ZpbmlzaFB1c2hBUElUZXN0JykKKyAgICAgICAgZmlu
aXNoUHVzaEFQSVRlc3QoKTsKKyAgICBlbHNlCisgICAgICAgIGxvZyhldmVudC5kYXRhKTsKK307
Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1zYW1l
LW9yaWdpbi5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNz
aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVm
YXVsdC1wZXJtaXNzaW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NDJjN2M3MTgyOTYyMWU1ZTZjZGU4
YjllOTZmOWNlYTJhMjQyZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwKQEAgLTAsMCAr
MSwyNCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHVzaC1hcGkt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdWJzY3JpYmUt
dGVzdHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9zdWJzY3JpYmUtd29ya2VyLmpzIiwg
eyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRpb24pID0+IHsKKyAgICB0cnkgeworICAgICAgICBh
d2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICJhY3RpdmF0ZWQiKTsK
KyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0
aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFBlcm1pc3Npb25TdGF0
ZShyZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3Jr
ZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90QWxsb3dlZEVycm9yJyk7CisgICAgICAgIGF3
YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24pOworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgbG9nKGBGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAke2V9YCk7CisgICAg
fSBmaW5hbGx5IHsKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAg
ICAgICAgZmluaXNoUHVzaEFQSVRlc3QoKTsKKyAgICB9Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9z
dWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NDExMjM1MjUxYmI5MjEyMjM2OTg2ODNlMzA0OTZjZWYyMzJiOWFlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUt
ZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTOiBzZXJ2
aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzIGRlbmllZAorUEFTUzogZG9jdW1lbnQgcGVy
bWlzc2lvblN0YXRlIHdhcyBkZW5pZWQKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHN1YnNjcmliZSB3
YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorUEFTUzogZG9jdW1lbnQgc3Vic2NyaWJlIHdhcyBl
cnJvcjogTm90QWxsb3dlZEVycm9yCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iM2M0MTFkOTJhOTc3NWE2ZTRjMDM3Y2I1OGFiOTUwNjUyNTdmOTdiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVu
eS1wZXJtaXNzaW9ucy5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKHdpbmRvdy5vcmlnaW4pOworCituYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanMi
LCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4geworICAgIHRyeSB7CisgICAgICAg
IGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgImFjdGl2YXRlZCIp
OworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25TdGF0ZShyZWdpc3Ry
YXRpb24sICdkZW5pZWQnKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50UGVybWlzc2lvblN0
YXRlKHJlZ2lzdHJhdGlvbiwgJ2RlbmllZCcpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdv
cmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICAgICAg
YXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93ZWRFcnJv
cicpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgbG9nKGBGQUlMOiB1bmV4cGVjdGVkIGV4
Y2VwdGlvbiAke2V9YCk7CisgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgZmluaXNoUHVzaEFQSVRlc3QoKTsKKyAgICB9Cit9
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVy
bWlzc2lvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhNGM4MjgyZTA0YTc3NWFhZGYyNDZi
YmY1MDIxMjY4YzdiNWE4YjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzIGdy
YW50ZWQKK1BBU1M6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMgZ3JhbnRlZAorUEFTUzog
c2VydmljZSB3b3JrZXIgc3Vic2NyaWJlIHdhcyBzdWNjZXNzZnVsCitQQVNTOiBkb2N1bWVudCBz
dWJzY3JpYmUgd2FzIHN1Y2Nlc3NmdWwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjEzNzAxZmUxOTMwOGIzMWQxYmNiZDM4NDc0ZTEzMTUzMDE3NDVmNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJl
LWdyYW50LXBlcm1pc3Npb25zLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RS
dW5uZXIuZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKHdpbmRvdy5vcmlnaW4pOworCitu
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1YnNjcmliZS13b3Jr
ZXIuanMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4geworICAgIHRyeSB7Cisg
ICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgImFjdGl2
YXRlZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25TdGF0ZShy
ZWdpc3RyYXRpb24sICdncmFudGVkJyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFBlcm1p
c3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdncmFudGVkJyk7CisgICAgICAgIGF3YWl0IHRlc3RT
ZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbik7CisgICAgICAgIGF3YWl0IHRlc3RE
b2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24pOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
ICAgbG9nKGBGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAke2V9YCk7CisgICAgfSBmaW5hbGx5
IHsKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgZmlu
aXNoUHVzaEFQSVRlc3QoKTsKKyAgICB9Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3YTgzYjQx
ZjY0YWU0MDlhMGI5NmFjZjNlYTYxNzc1NzBiY2U5MGI2Li42OWZmMDQ2MDg3ZWYxMGFhMjBmMTAw
OTU0ZWYyMjI3NmZkMjc2YmUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTg2OCwzICsxODY4LDggQEAgYWNjZXNzaWJpbGl0eS9kaWFsb2ctcHJvcGVy
dGllcy5odG1sIFsgU2tpcCBdCiAjIFRoZXNlIHRlc3RzIHJlcXVpcmUgcGxhdGZvcm0gc3VwcG9y
dC4KIG1lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLmh0bWwKIG1lZGlhL21lZGlhLWFsbG93ZWQt
Y29udGFpbmVycy5odG1sCisKKyMgUHVzaCBzdWJzY3JpcHRpb24gdGVzdHMgZmFpbCB3aXRob3V0
IHBsYXRmb3JtLXNwZWNpZmljIFB1c2hDcnlwdG8gaW1wbGVtZW50YXRpb25zLgoraHR0cC90ZXN0
cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy5odG1sIFsgRmFpbHVyZSBd
CitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLmh0bWwgWyBG
YWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25z
Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggYzcxZGQ1MDIyMTVhYjgyNzNhYTEyZTg0ZTRhOWFjYTMwYmIxMmMxNy4uMGIzYmY5
MDMzNGJjZmQ5NzE4MjBjOTM2ZmEyZGM3NTA1MDk1OTk3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ5OTUsMyArNDk5NSw4IEBAIGZhc3QvdGV4dC9s
b2NhbGUtc2hhcGluZy0zLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNy
Yy1vYmplY3QtZGF0YS11cmwtYmxvY2tlZC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vZGVmYXVsdC1z
cmMtb2JqZWN0LWRhdGEtdXJsLWJsb2NrZWQyLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0
LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tlZDMuaHRtbCBbIEZhaWx1cmUgXQorCisjIFB1c2gg
c3Vic2NyaXB0aW9uIHRlc3RzIGZhaWwgd2l0aG91dCBwbGF0Zm9ybS1zcGVjaWZpYyBQdXNoQ3J5
cHRvIGltcGxlbWVudGF0aW9ucy4KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1
bHQtcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJz
Y3JpYmUtZGVueS1wZXJtaXNzaW9ucy5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gt
YXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452335</attachid>
            <date>2022-02-17 00:58:30 -0800</date>
            <delta_ts>2022-02-17 01:00:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236739-20220217005829.patch</filename>
            <type>text/plain</type>
            <size>21959</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODM1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmYzMGNlZWMwODVmZjVhNTI1NzRl
ODE2ZDMwZmFkMmI3NDIyZDAzMy4uZjZjZDJmNTUyNTIzMDI3NWY5MjA4OWRjMDVhYjljZjYzMzM3
OGZhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIyLTAyLTE2ICBCZW4gTmhhbSAgPG5oYW1A
YXBwbGUuY29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8gcGVybWlzc2lvbiBz
dGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2
NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgdGVzdHMgdGhhdCBtYWtlIHN1cmUgdGhhdCBQdXNoTWFuYWdlci5wZXJtaXNzaW9uU3RhdGUo
KSBhbmQgUHVzaE1hbmFnZXIuc3Vic2NyaWJlKCkKKyAgICAgICAgcmVzcGVjdCB0aGUgbm90aWZp
Y2F0aW9uIHBlcm1pc3Npb24gbGV2ZWwgZm9yIHRoZSBjdXJyZW50IG9yaWdpbi4KKworICAgICAg
ICBJIG1hZGUgdGhlc2UgcmVndWxhciB0ZXN0cyByYXRoZXIgdGhhbiBXUFQgdGVzdHMgYmVjYXVz
ZSB0aGUgV1BUIHRlc3QgaGFybmVzcyBjYWxscworICAgICAgICBncmFudFdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb24gYXQgdGhlIHRvcCBvZiBpdHMgc2V0dXAgc2NyaXB0IChpbiB0ZXN0aGFybmVz
c3JlcG9ydC5qcyksIGFuZAorICAgICAgICBJIGRpZG4ndCB3YW50IHRvIGNoYW5nZSB0aGF0IGZv
ciB0aGlzIHBhdGNoLgorCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMv
cHVzaC1hcGktdGVzdC1wcmUuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoUHVzaEFQSVRlc3Qp
OgorICAgICAgICAod2FpdEZvclN0YXRlKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBp
L3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1lLXNh
bWUtb3JpZ2luLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvcmVz
b3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qczogQWRkZWQuCisgICAgICAgIChhc3luYyB0ZXN0U2Vy
dmljZVdvcmtlclBlcm1pc3Npb25TdGF0ZSk6CisgICAgICAgIChhc3luYyB0ZXN0RG9jdW1lbnRQ
ZXJtaXNzaW9uU3RhdGUpOgorICAgICAgICAoYXN5bmMgdGVzdFNlcnZpY2VXb3JrZXJTdWJzY3Jp
YmUpOgorICAgICAgICAoYXN5bmMgdGVzdERvY3VtZW50U3Vic2NyaWJlKToKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtd29ya2VyLmpzOiBBZGRlZC4K
KyAgICAgICAgKGFzeW5jIGV2ZW50KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJh
bWUtY3Jvc3Mtb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3Jp
Z2luLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJl
LWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJt
aXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25z
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJz
Y3JpYmUtZGVueS1wZXJtaXNzaW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Np
b25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1k
ZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4tZXhwZWN0ZWQucG5nOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMi0x
NSAgTWF0dGVvIEZsb3JlcyAgPG1hdHRlb19mbG9yZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
YmFzbGluaW5nIGZvbnRzL21vbm9zcGFjZS5odG1sIGZvciBNb250ZXJleS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3B1c2gtYXBpLXRlc3Qt
cHJlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvcHVzaC1h
cGktdGVzdC1wcmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI4ZTVkNzQ3M2VhNWI3ZTM3N2M0YjY2YzgxNzhm
ZGU0MWJlOTk4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVz
aC1hcGkvcmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzCkBAIC0wLDAgKzEsNDkgQEAKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBmaW5pc2hQdXNoQVBJ
VGVzdCgpCit7CisgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRv
dy5wYXJlbnQgIT09IHdpbmRvdykgeworICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdl
KCdmaW5pc2hQdXNoQVBJVGVzdCcsICcqJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworfQorCitmdW5jdGlvbiB3YWl0Rm9yU3RhdGUod29ya2VyLCBzdGF0ZSkKK3sKKyAgICBpZiAo
IXdvcmtlciB8fCB3b3JrZXIuc3RhdGUgPT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm4gUHJv
bWlzZS5yZWplY3QobmV3IEVycm9yKCd3YWl0X2Zvcl9zdGF0ZSBtdXN0IGJlIHBhc3NlZCBhIFNl
cnZpY2VXb3JrZXInKSk7CisKKyAgICBpZiAod29ya2VyLnN0YXRlID09PSBzdGF0ZSkKKyAgICAg
ICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzdGF0ZSk7CisKKyAgICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0
YXRlY2hhbmdlJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKHdvcmtlci5zdGF0ZSA9PT0g
c3RhdGUpCisgICAgICAgICAgICByZXNvbHZlKHN0YXRlKTsKKyAgICAgICAgfSk7CisgICAgfSk7
Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpCit7CisgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1
bmRlZmluZWQnICYmIHdpbmRvdy5wYXJlbnQgIT09IHdpbmRvdykgeworICAgICAgICB3aW5kb3cu
cGFyZW50LnBvc3RNZXNzYWdlKG1zZywgJyonKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGxldCBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAg
ICBpZiAoIWNvbnNvbGUpIHsKKyAgICAgICAgY29uc29sZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOworICAgICAgICBjb25zb2xlLmlkID0gImNvbnNvbGUiOworICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnNvbGUpOworICAgIH0KKyAgICBsZXQgc3BhbiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBzcGFuLmlubmVySFRNTCA9IG1zZyAr
ICI8YnI+IjsKKyAgICBjb25zb2xlLmFwcGVuZENoaWxkKHNwYW4pOworfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFt
ZS1jcm9zcy1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVz
b3VyY2VzL3N1YnNjcmliZS1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjkw
ZjU2OTQxMWVkNDJhYTMyMDc0MTMxZTA0OWU4NGFjZGI2NWY5MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJh
bWUtY3Jvc3Mtb3JpZ2luLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPHNjcmlwdCBzcmM9InB1c2gt
YXBpLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdWJzY3JpYmUtdGVzdHMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVy
KCJzdWJzY3JpYmUtd29ya2VyLmpzIiwgeyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRpb24pID0+
IHsKKyAgICB0cnkgeworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsICJhY3RpdmF0ZWQiKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJQ
ZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRl
c3REb2N1bWVudFBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAg
ICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90QWxs
b3dlZEVycm9yJyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3Ry
YXRpb24sICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGxv
ZyhgRkFJTDogdW5leHBlY3RlZCBleGNlcHRpb24gJHtlfWApOworICAgIH0gZmluYWxseSB7Cisg
ICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIGZpbmlzaFB1
c2hBUElUZXN0KCk7CisgICAgfQorfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJhbWUtc2FtZS1v
cmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1
YnNjcmliZS1pZnJhbWUtc2FtZS1vcmlnaW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDNlMWY2YjIxNjkz
NWQ2MjA2NDhjMjY3NTU2YjEzMjEzZTkxNjI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1zYW1lLW9y
aWdpbi5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxzY3JpcHQgc3JjPSJwdXNoLWFwaS10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vic2NyaWJlLXRlc3RzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcigic3Vic2NyaWJl
LXdvcmtlci5qcyIsIHsgfSkudGhlbihhc3luYyAocmVnaXN0cmF0aW9uKSA9PiB7CisgICAgdHJ5
IHsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAi
YWN0aXZhdGVkIik7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyUGVybWlzc2lvblN0
YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRQ
ZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRl
c3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93ZWRFcnJvcicp
OworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9uKTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIGxvZyhgRkFJTDogdW5leHBlY3RlZCBleGNlcHRpb24g
JHtlfWApOworICAgIH0gZmluYWxseSB7CisgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJl
Z2lzdGVyKCk7CisgICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7CisgICAgfQorfSk7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3Vy
Y2VzL3N1YnNjcmliZS10ZXN0cy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkv
cmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjE1YjU2ZmM3M2I2NWYw
Y2IzZjRlMDM4NjJjMjFkNmQ3OWFkZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzCkBAIC0wLDAg
KzEsNzEgQEAKK2NvbnN0IFZBTElEX1NFUlZFUl9LRVkgPSAiQkExSHh6eWkxUlVNMWI1d2p4c243
bkd4QXN6dzJ1NjFtMTY0aTNNckFJeEhGNllLNWg0U0RZaWMtZFJ1VV9SQ1BDZkE1YXE5b2pTd2s1
WTJFbUNsQlBzIjsKKworYXN5bmMgZnVuY3Rpb24gdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9u
U3RhdGUocmVnaXN0cmF0aW9uLCBleHBlY3RlZCkKK3sKKyAgICBsZXQgcHJvbWlzZSA9IG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gcmVz
b2x2ZSk7CisgICAgcmVnaXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZShbJ3Blcm1pc3Npb25T
dGF0ZSddKTsKKyAgICBsZXQgZXZlbnQgPSBhd2FpdCBwcm9taXNlOworICAgIGxldCByZXN1bHQg
PSBldmVudC5kYXRhOworCisgICAgaWYgKHJlc3VsdCA9PSBleHBlY3RlZCkKKyAgICAgICAgbG9n
KGBQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzICR7ZXhwZWN0ZWR9YCk7
CisgICAgZWxzZQorICAgICAgICBsb2coYEZBSUw6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25T
dGF0ZSBzaG91bGQgYmUgJHtleHBlY3RlZH0sIGJ1dCB3YXMgJHtyZXN1bHR9YCk7Cit9CisKK2Fz
eW5jIGZ1bmN0aW9uIHRlc3REb2N1bWVudFBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sIGV4
cGVjdGVkKQoreworICAgIGxldCBzdGF0ZSA9IGF3YWl0IHJlZ2lzdHJhdGlvbi5wdXNoTWFuYWdl
ci5wZXJtaXNzaW9uU3RhdGUoKTsKKworICAgIGlmIChzdGF0ZSA9PSBleHBlY3RlZCkKKyAgICAg
ICAgbG9nKGBQQVNTOiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzICR7ZXhwZWN0ZWR9YCk7
CisgICAgZWxzZQorICAgICAgICBsb2coYEZBSUw6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSBz
aG91bGQgYmUgJHtleHBlY3RlZH0sIGJ1dCB3YXMgJHtzdGF0ZX1gKTsKK30KKworYXN5bmMgZnVu
Y3Rpb24gdGVzdFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCBkb21FeGNlcHRp
b25OYW1lKQoreworICAgIGxldCBleHBlY3RlZCA9IGRvbUV4Y2VwdGlvbk5hbWUgPyBgZXJyb3I6
ICR7ZG9tRXhjZXB0aW9uTmFtZX1gIDogInN1Y2Nlc3NmdWwiOworCisgICAgbGV0IHByb21pc2Ug
PSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNz
YWdlID0gcmVzb2x2ZTsgfSk7CisgICAgcmVnaXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZShb
J3N1YnNjcmliZScsIFZBTElEX1NFUlZFUl9LRVldKTsKKyAgICBsZXQgZXZlbnQgPSBhd2FpdCBw
cm9taXNlOworICAgIGxldCByZXN1bHQgPSBldmVudC5kYXRhOworCisgICAgaWYgKHJlc3VsdCA9
PSBleHBlY3RlZCkKKyAgICAgICAgbG9nKGBQQVNTOiBzZXJ2aWNlIHdvcmtlciBzdWJzY3JpYmUg
d2FzICR7ZXhwZWN0ZWR9YCk7CisgICAgZWxzZQorICAgICAgICBsb2coYEZBSUw6IHNlcnZpY2Ug
d29ya2VyIHN1YnNjcmliZSBzaG91bGQgYmUgJHtleHBlY3RlZH0sIGJ1dCB3YXMgJHtyZXN1bHR9
YCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRp
b24sIGRvbUV4Y2VwdGlvbk5hbWUpCit7CisgICAgbGV0IGV4cGVjdGVkID0gZG9tRXhjZXB0aW9u
TmFtZSA/IGBlcnJvcjogJHtkb21FeGNlcHRpb25OYW1lfWAgOiAic3VjY2Vzc2Z1bCI7CisgICAg
bGV0IHJlc3VsdCA9IG51bGw7CisKKyAgICBsZXQgc3Vic2NyaXB0aW9uID0gbnVsbDsKKyAgICB0
cnkgeworICAgICAgICAvLyBXaXRoIGRlZmF1bHQgcGVybWlzc2lvbnMsIFB1c2hNYW5hZ2VyIHNo
b3VsZCByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSBUZXN0Q29udHJvbGxlci4KKyAgICAgICAgLy8g
VGVzdENvbnRyb2xsZXIgYWx3YXlzIGNhbGxzIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RBbGxvdyBzbyB0aGlzIHNob3VsZCBzdWNjZWVkLgorICAgICAgICBzdWJzY3JpcHRpb24gPSBh
d2FpdCByZWdpc3RyYXRpb24ucHVzaE1hbmFnZXIuc3Vic2NyaWJlKHsKKyAgICAgICAgICAgIHVz
ZXJWaXNpYmxlT25seTogdHJ1ZSwKKyAgICAgICAgICAgIGFwcGxpY2F0aW9uU2VydmVyS2V5OiBW
QUxJRF9TRVJWRVJfS0VZCisgICAgICAgIH0pOworICAgICAgICByZXN1bHQgPSAnc3VjY2Vzc2Z1
bCc7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAvLyBMYXlvdXQgdGVzdHMgYXJlbid0IGNv
bm5lY3RlZCB0byB3ZWJwdXNoZCwgc28gc3Vic2NyaWJlIGlzIHN1Y2Nlc3NmdWwgaWYgaXQgZ2V0
cyB0byB0aGUKKyAgICAgICAgLy8gcG9pbnQgd2hlcmUgd2UgYXR0ZW1wdCB0byBjb21tdW5pY2F0
ZSB3aXRoIHdlYnB1c2hkIChhbiBBYm9ydEVycm9yKS4KKyAgICAgICAgaWYgKGUubmFtZSA9PSAn
QWJvcnRFcnJvcicpCisgICAgICAgICAgICByZXN1bHQgPSAnc3VjY2Vzc2Z1bCc7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9ICdlcnJvcjogJyArIChlID8gZS5uYW1lIDogbnVs
bCk7CisgICAgfQorCisgICAgaWYgKHN1YnNjcmlwdGlvbikKKyAgICAgICAgYXdhaXQgc3Vic2Ny
aXB0aW9uLnVuc3Vic2NyaWJlKCk7CisKKyAgICBpZiAocmVzdWx0ID09IGV4cGVjdGVkKQorICAg
ICAgICBsb2coYFBBU1M6IGRvY3VtZW50IHN1YnNjcmliZSB3YXMgJHtleHBlY3RlZH1gKTsKKyAg
ICBlbHNlCisgICAgICAgIGxvZyhgRkFJTDogZG9jdW1lbnQgc3Vic2NyaWJlIHNob3VsZCBiZSAk
e2V4cGVjdGVkfSwgYnV0IHdhcyAke3Jlc3VsdH1gKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291
cmNlcy9zdWJzY3JpYmUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFw
aS9yZXNvdXJjZXMvc3Vic2NyaWJlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGQwZjdmNzVkMWM3
ZWVhYTFhNDVkMGE3YzQyNjZkNjY4ODJkNDNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLXdvcmtlci5qcwpAQCAt
MCwwICsxLDQzIEBACitjb25zdCBWQUxJRF9TRVJWRVJfS0VZID0gIkJBMUh4enlpMVJVTTFiNXdq
eHNuN25HeEFzencydTYxbTE2NGkzTXJBSXhIRjZZSzVoNFNEWWljLWRSdVVfUkNQQ2ZBNWFxOW9q
U3drNVkyRW1DbEJQcyI7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGFzeW5j
IChldmVudCkgPT4geworICAgIGxldCBbb3AsIC4uLmFyZ3NdID0gZXZlbnQuZGF0YTsKKworICAg
IGlmIChvcCA9PSAncGVybWlzc2lvblN0YXRlJykgeworICAgICAgICB0cnkgeworICAgICAgICAg
ICAgbGV0IHN0YXRlID0gYXdhaXQgc2VsZi5yZWdpc3RyYXRpb24ucHVzaE1hbmFnZXIucGVybWlz
c2lvblN0YXRlKCk7CisgICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2Uoc3RhdGUp
OworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1l
c3NhZ2UoImVycm9yOiAiICsgZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG9wID09ICdz
dWJzY3JpYmUnKSB7CisgICAgICAgIGxldCBzdWJzY3JpcHRpb24gPSBudWxsOworICAgICAgICBs
ZXQgcmVzdWx0ID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Vic2NyaXB0
aW9uID0gYXdhaXQgc2VsZi5yZWdpc3RyYXRpb24ucHVzaE1hbmFnZXIuc3Vic2NyaWJlKHsKKyAg
ICAgICAgICAgICAgICB1c2VyVmlzaWJsZU9ubHk6IHRydWUsCisgICAgICAgICAgICAgICAgYXBw
bGljYXRpb25TZXJ2ZXJLZXk6IGFyZ3NbMF0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
aWYgKHN1YnNjcmlwdGlvbikKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAic3VjY2Vzc2Z1bCI7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gImVycm9yOiBudWxs
IHN1YnNjcmlwdGlvbiI7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGlmICgh
ZSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAiZXJyb3I6IG51bGwgZXhjZXB0aW9uIjsKKyAg
ICAgICAgICAgIGVsc2UgaWYgKGUubmFtZSA9PSAnQWJvcnRFcnJvcicpCisgICAgICAgICAgICAg
ICAgLy8gTGF5b3V0IHRlc3RzIGN1cnJlbnRseSBhcmVuJ3QgY29ubmVjdGVkIHRvIHdlYnB1c2hk
LiBTbyBpZiB3ZSBmYWlsIHdpdGggYW4gQWJvcnRFcnJvcgorICAgICAgICAgICAgICAgIC8vIHdo
ZW4gdHJ5aW5nIHRvIGNvbm5lY3QgdG8gd2VicHVzaGQsIHdlIGNvdW50IHRoYXQgYXMgYSBzdWNj
ZXNzZnVsIHN1YnNjcmlwdGlvbiBmb3IKKyAgICAgICAgICAgICAgICAvLyB0ZXN0aW5nIHB1cnBv
c2VzLgorICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJzdWNjZXNzZnVsIjsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAiZXJyb3I6ICIgKyBlLm5hbWU7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoc3Vic2NyaXB0aW9uKQorICAgICAgICAgICAgYXdhaXQgc3Vi
c2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7CisKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNz
YWdlKHJlc3VsdCk7CisgICAgfQorfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlz
c2lvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmYjE2NDAyZWJiMDM4YWU0ZTE4M2YxMzU0
Y2ZkMzBhNWFmNTFjZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDUgQEAKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJv
bXB0CitQQVNTOiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzogc2Vy
dmljZSB3b3JrZXIgc3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNTOiBk
b2N1bWVudCBzdWJzY3JpYmUgd2FzIHN1Y2Nlc3NmdWwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJh
bWUtY3Jvc3Mtb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVz
aC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc4ZWJiYWY0Zjk4M2MzNmViMDZjZmMwYmUyMWNjYmI4
ZmEyMjA0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1h
cGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Np
b25TdGF0ZSB3YXMgcHJvbXB0CitQQVNTOiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIHBy
b21wdAorUEFTUzogc2VydmljZSB3b3JrZXIgc3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dl
ZEVycm9yCitQQVNTOiBkb2N1bWVudCBzdWJzY3JpYmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJy
b3IKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3Jp
YmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlm
cmFtZS1jcm9zcy1vcmlnaW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hM2Q1ZWJiNGJhMDQ5NjZlMDRiZmRi
YTRhYTA4Y2NkM2Y2ZDVhYThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mt
b3JpZ2luLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0Pgord2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAg
aWYgKGV2ZW50LmRhdGEgPT0gJ2ZpbmlzaFB1c2hBUElUZXN0JykKKyAgICAgICAgZmluaXNoUHVz
aEFQSVRlc3QoKTsKKyAgICBlbHNlCisgICAgICAgIGxvZyhldmVudC5kYXRhKTsKK307Cis8L3Nj
cmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwczovLzEyNy4wLjAuMTo4NDQzL3B1c2gtYXBpL3Jlc291
cmNlcy9zdWJzY3JpYmUtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sIj4KKzwvaWZyYW1lPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVs
dC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU1ZTMwMTlhZjY5NjMwNDM4NWZhMGViYjI2YmU5N2NkMzM2ZjQ4YzUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBl
cm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBA
CisKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJvbXB0CitQQVNT
OiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzogc2VydmljZSB3b3Jr
ZXIgc3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNTOiBkb2N1bWVudCBz
dWJzY3JpYmUgd2FzIHN1Y2Nlc3NmdWwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1v
cmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRl
ZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ3
OTdlMjljMjQ0NWU1NmZjNmI1MDE2MzI0YjM2ZDhiNWRmMTBkMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlz
c2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgord2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgaWYgKGV2ZW50LmRhdGEgPT0gJ2ZpbmlzaFB1c2hBUElUZXN0JykK
KyAgICAgICAgZmluaXNoUHVzaEFQSVRlc3QoKTsKKyAgICBlbHNlCisgICAgICAgIGxvZyhldmVu
dC5kYXRhKTsKK307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvc3Vic2NyaWJl
LWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVm
YXVsdC1wZXJtaXNzaW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9z
dWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NDJjN2M3MTgy
OTYyMWU1ZTZjZGU4YjllOTZmOWNlYTJhMjQyZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0
bWwKQEAgLTAsMCArMSwyNCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zdWJzY3JpYmUtdGVzdHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9zdWJzY3JpYmUt
d29ya2VyLmpzIiwgeyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRpb24pID0+IHsKKyAgICB0cnkg
eworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICJh
Y3RpdmF0ZWQiKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3Rh
dGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFBl
cm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVz
dFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90QWxsb3dlZEVycm9yJyk7
CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24pOworICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgbG9nKGBGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAk
e2V9YCk7CisgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVn
aXN0ZXIoKTsKKyAgICAgICAgZmluaXNoUHVzaEFQSVRlc3QoKTsKKyAgICB9Cit9KTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDExMjM1MjUxYmI5MjEyMjM2OTg2ODNlMzA0OTZjZWYy
MzJiOWFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CitQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzIGRlbmllZAorUEFTUzog
ZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyBkZW5pZWQKK1BBU1M6IHNlcnZpY2Ugd29ya2Vy
IHN1YnNjcmliZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorUEFTUzogZG9jdW1lbnQgc3Vi
c2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lv
bnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iM2M0MTFkOTJhOTc3NWE2ZTRjMDM3Y2I1OGFiOTUwNjUyNTdm
OTdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9z
dWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICB0ZXN0UnVubmVyLmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKHdpbmRvdy5vcmlnaW4p
OworCituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1YnNjcmli
ZS13b3JrZXIuanMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4geworICAgIHRy
eSB7CisgICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywg
ImFjdGl2YXRlZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25T
dGF0ZShyZWdpc3RyYXRpb24sICdkZW5pZWQnKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50
UGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ2RlbmllZCcpOworICAgICAgICBhd2FpdCB0
ZXN0U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxvd2VkRXJyb3In
KTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05v
dEFsbG93ZWRFcnJvcicpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgbG9nKGBGQUlMOiB1
bmV4cGVjdGVkIGV4Y2VwdGlvbiAke2V9YCk7CisgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgYXdh
aXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgZmluaXNoUHVzaEFQSVRlc3Qo
KTsKKyAgICB9Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lv
bnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3Jp
YmUtZ3JhbnQtcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhNGM4MjgyZTA0
YTc3NWFhZGYyNDZiYmY1MDIxMjY4YzdiNWE4YjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9u
U3RhdGUgd2FzIGdyYW50ZWQKK1BBU1M6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMgZ3Jh
bnRlZAorUEFTUzogc2VydmljZSB3b3JrZXIgc3Vic2NyaWJlIHdhcyBzdWNjZXNzZnVsCitQQVNT
OiBkb2N1bWVudCBzdWJzY3JpYmUgd2FzIHN1Y2Nlc3NmdWwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1p
c3Npb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEzNzAxZmUxOTMwOGIzMWQxYmNiZDM4NDc0ZTEzMTUz
MDE3NDVmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1h
cGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIuZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKHdpbmRvdy5v
cmlnaW4pOworCituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1
YnNjcmliZS13b3JrZXIuanMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4gewor
ICAgIHRyeSB7CisgICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFs
bGluZywgImFjdGl2YXRlZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1p
c3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdncmFudGVkJyk7CisgICAgICAgIGF3YWl0IHRlc3RE
b2N1bWVudFBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdncmFudGVkJyk7CisgICAgICAg
IGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbik7CisgICAgICAg
IGF3YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24pOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgbG9nKGBGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAke2V9YCk7Cisg
ICAgfSBmaW5hbGx5IHsKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsK
KyAgICAgICAgZmluaXNoUHVzaEFQSVRlc3QoKTsKKyAgICB9Cit9KTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA3YTgzYjQxZjY0YWU0MDlhMGI5NmFjZjNlYTYxNzc1NzBiY2U5MGI2Li5jMGM4NmU2MDNm
OGExYzYwYTk1NTlmZDJmMjA5ZDZiNDU2OTVjZDJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTg2OCwzICsxODY4LDEwIEBAIGFjY2Vzc2liaWxpdHkv
ZGlhbG9nLXByb3BlcnRpZXMuaHRtbCBbIFNraXAgXQogIyBUaGVzZSB0ZXN0cyByZXF1aXJlIHBs
YXRmb3JtIHN1cHBvcnQuCiBtZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy5odG1sCiBtZWRpYS9t
ZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbAorCisjIFB1c2ggc3Vic2NyaXB0aW9uIHRlc3Rz
IGZhaWwgd2l0aG91dCBwbGF0Zm9ybS1zcGVjaWZpYyBQdXNoQ3J5cHRvIGltcGxlbWVudGF0aW9u
cy4KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZy
YW1lLWNyb3NzLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sIFsgRmFp
bHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25z
Lmh0bWwgWyBGYWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVy
bWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUt
Z3JhbnQtcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjNzFkZDUwMjIxNWFiODI3M2FhMTJlODRlNGE5YWNh
MzBiYjEyYzE3Li44MDdkNzY1NGZkMDQxYTdmNDcyYjQ0OGQ4ZGFiZDk5ZjNlMTk2YWFlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDk5NSwzICs0OTk1
LDEwIEBAIGZhc3QvdGV4dC9sb2NhbGUtc2hhcGluZy0zLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNo
YWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tlZC5odG1sIFsgRmFpbHVy
ZSBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRT
aGFkb3dET00vZGVmYXVsdC1zcmMtb2JqZWN0LWRhdGEtdXJsLWJsb2NrZWQyLmh0bWwgWyBGYWls
dXJlIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2Vu
dFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tlZDMuaHRtbCBbIEZh
aWx1cmUgXQorCisjIFB1c2ggc3Vic2NyaXB0aW9uIHRlc3RzIGZhaWwgd2l0aG91dCBwbGF0Zm9y
bS1zcGVjaWZpYyBQdXNoQ3J5cHRvIGltcGxlbWVudGF0aW9ucy4KK2h0dHAvdGVzdHMvcHVzaC1h
cGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1s
IFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1p
c3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1
c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwgWyBGYWlsdXJlIF0KK2h0
dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1
cmUgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMuaHRt
bCBbIEZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452336</attachid>
            <date>2022-02-17 01:00:06 -0800</date>
            <delta_ts>2022-02-17 07:57:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236739-20220217010006.patch</filename>
            <type>text/plain</type>
            <size>33632</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjZjZjkzZGY4ZjA3YTkz
OTBjN2IyMWRlYjZiNjVjOWIzMjBkNzM2My4uYzdlYmNjMDM0M2JhM2U5MDQxYzZmMmVhMDQ4MGQ0
ODZjYTQ4NjExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAyLTE2ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8g
cGVybWlzc2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpbXBsZW1lbnRzIFB1c2hNYW5hZ2VyLnBlcm1pc3Npb25TdGF0ZS4gSXQg
cmV0dXJucyB0aGUgc2FtZSB2YWx1ZSBhcworICAgICAgICBOb3RpZmljYXRpb24ucGVybWlzc2lv
biB0aHJvdWdoIHRoZSBzYW1lIG1lY2hhbmlzbS4KKworICAgICAgICBUaGlzIGFsc28gbWFrZXMg
UHVzaE1hbmFnZXIuc3Vic2NyaWJlIHJlcXVlc3QgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyIHRv
IHNob3cgbm90aWZpY2F0aW9ucworICAgICAgICBpZiB0aGUgcGVybWlzc2lvbiBpcyBpbiB0aGUg
ZGVmYXVsdCBzdGF0ZSBhbmQgdGhlc2UgcmVxdWlyZW1lbnRzIGFyZSBtZXQ6CisKKyAgICAgICAg
MS4gVGhlIGNhbGxlciBpcyBhIGRvY3VtZW50IHdpdGggdGhlIHNhbWUgb3JpZ2luIGFzIGEgdG9w
IGxldmVsIGRvY3VtZW50LiBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAgICAgY3Jvc3Mtb3JpZ2lu
IGlmcmFtZXMgY2Fubm90IHJlcXVlc3QgcHVzaCBwZXJtaXNzaW9ucy4gVGhpcyBtYXRjaGVzIENo
cm9tZSdzIGJlaGF2aW9yLgorICAgICAgICAyLiBUaGUgY2FsbGVyIGNhbm5vdCBiZSBhIHNlcnZp
Y2Ugd29ya2VyLiBUaGlzIGxpbWl0YXRpb24gaXMgYWxsb3dlZCBmb3IgYnkgdGhlIHNwZWMuCisK
KyAgICAgICAgVGhlcmUgYWxzbyBuZWVkcyB0byBiZSBzb21lIGNvZGUgYWRkZWQgd2hpY2ggcmVt
b3ZlcyBhIHB1c2ggc3Vic2NyaXB0aW9uIGlmIHRoZSB1c2VyIGRlbGV0ZXMKKyAgICAgICAgdGhl
IHN1YnNjcmlwdGlvbiBlbnRpcmVseSBpbiB0aGUgVUksIGZvciBpbnN0YW5jZSB3aGVuIHRoZSBV
SVByb2Nlc3MgY2FsbHMKKyAgICAgICAgV0tOb3RpZmljYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRS
ZW1vdmVOb3RpZmljYXRpb25Qb2xpY2llcy4gVGhhdCB3aWxsIGJlIGhhbmRsZWQgaW4gYQorICAg
ICAgICBzZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBsYXlvdXQgdGVz
dHMuCisKKyAgICAgICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlB1c2hNYW5hZ2VyOjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViQ29yZTo6
UHVzaE1hbmFnZXI6OmdldFN1YnNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQdXNoTWFu
YWdlcjo6cGVybWlzc2lvblN0YXRlKToKKwogMjAyMi0wMi0xNSAgTWVnYW4gR2FyZG5lciAgPG1l
Z2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBhZGRpdGlvbmFsIFJl
dmVhbCBtZXRob2RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2OGJmZGI0ODczYWEwNWJmYjFkNjIzNTFkZWYzNjQ0
ZmQ3MDkzZTA3Li4yMzRiOTZiZmQxZDMzMWM3NjI4NWQwNTAxYWVjYWZjZjdlZjk4MjcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAyLTE2ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUu
Y29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8gcGVybWlzc2lvbiBzdGF0ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzM5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGNv
bW1lbnQgZXhwbGFpbmluZyB3aHkgd2Ugc3RpbGwgaGF2ZSBhIHBlcm1pc3Npb24gc3RhdGUgc3R1
YiBpbiB3ZWJwdXNoZC4KKworICAgICAgICAqIHdlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW06Cisg
ICAgICAgIChXZWJQdXNoRDo6RGFlbW9uOjpnZXRQdXNoUGVybWlzc2lvblN0YXRlKToKKwogMjAy
Mi0wMi0xNSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEltcGxlbWVudCBhZGRpdGlvbmFsIFJldmVlYWwgbWV0aG9kcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaE1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoTWFuYWdlci5jcHAKaW5kZXggNGM3MTU2MmNkMDQ2
NDdiMTA3Nzg0NDk1MWFlMmU3ZThhN2M1YWMxNS4uMjgzMjYxYzU5NzM0MGRmZDQwNjBhOTk0NjUx
ZmRmZTA2ZGViMzY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFw
aS9QdXNoTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9Q
dXNoTWFuYWdlci5jcHAKQEAgLTI4LDEwICsyOCwxMiBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnRM
b29wLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNQdXNoUGVybWlzc2lv
blN0YXRlLmgiCiAjaW5jbHVkZSAiSlNQdXNoU3Vic2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiTm90
aWZpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiUHVzaENyeXB0by5oIgogI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLmgiCkBAIC02NSwxMSArNjcsMTEgQEAgdm9pZCBQdXNoTWFuYWdlcjo6ZGVyZWYoKSBjb25z
dAogICAgIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5kZXJlZigpOwogfQogCi12b2lkIFB1
c2hNYW5hZ2VyOjpzdWJzY3JpYmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgc3RkOjpvcHRpb25hbDxQdXNoU3Vic2NyaXB0aW9uT3B0aW9uc0luaXQ+JiYg
b3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxQdXNoU3Vic2NyaXB0aW9u
Pj4mJiBwcm9taXNlKQordm9pZCBQdXNoTWFuYWdlcjo6c3Vic2NyaWJlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJ
bml0PiYmIG9wdGlvbnMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8UHVzaFN1YnNj
cmlwdGlvbj4+JiYgcHJvbWlzZSkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChzY3JpcHRFeGVjdXRp
b25Db250ZXh0LmlzU2VjdXJlQ29udGV4dCgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjb250ZXh0
LmlzU2VjdXJlQ29udGV4dCgpKTsKICAgICAKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LmV2
ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICBjb250ZXh0LmV2ZW50TG9v
cCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IFJlZiB7ICp0aGlzIH0sIGNvbnRleHQgPSBSZWYgeyBjb250ZXh0IH0sIG9wdGlvbnMgPSBX
VEZNb3ZlKG9wdGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLT51c2VyVmlzaWJsZU9ubHkpIHsKICAg
ICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlN1
YnNjcmliaW5nIGZvciBwdXNoIHJlcXVpcmVzIHVzZXJWaXNpYmxlT25seSB0byBiZSB0cnVlIl9z
IH0pOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTExLDIyICsxMTMsNjYgQEAgdm9pZCBQdXNo
TWFuYWdlcjo6c3Vic2NyaWJlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIHN0ZDoKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAg
IGF1dG8gY2xpZW50ID0gY29udGV4dC0+bm90aWZpY2F0aW9uQ2xpZW50KCk7CisgICAgICAgIGF1
dG8gcGVybWlzc2lvbiA9IGNsaWVudCA/IGNsaWVudC0+Y2hlY2tQZXJtaXNzaW9uKGNvbnRleHQu
cHRyKCkpIDogTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVuaWVkOworCisgICAgICAgIGlmIChw
ZXJtaXNzaW9uID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlbmllZCkgeworICAgICAgICAg
ICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiVXNlciBkZW5p
ZWQgcHVzaCBwZXJtaXNzaW9uIl9zIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0gTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVm
YXVsdCAmJiAhY29udGV4dC0+aXNEb2N1bWVudCgpKSB7CisgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJVc2VyIGRlbmllZCBwdXNoIHBlcm1p
c3Npb24iX3MgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBp
ZiAocGVybWlzc2lvbiA9PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpEZWZhdWx0KSB7CisgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVChjbGllbnQpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoY29udGV4dC0+aXNEb2N1bWVudCgpKTsKKworICAgICAgICAgICAgaWYgKCFkb3duY2FzdDxE
b2N1bWVudD4oY29udGV4dC5nZXQoKSkuaXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCgpKSB7Cisg
ICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9y
LCAiVXNlciBkZW5pZWQgcHVzaCBwZXJtaXNzaW9uIl9zIH0pOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKworI2lmICFQTEFURk9STShXSU5fQ0FJUk8pCisgICAgICAg
ICAgICAvLyBSZWYgeyAqdGhpcyB9IHRyaWdnZXJzIGEgY29tcGlsZXIgYnVnIG9uIHdpbmNhaXJv
IHdoZXJlIGl0IHRyaWVzIHRvIHJlZiB0aGUgbGFtYmRhIGluc3RlYWQgb2YgUHVzaE1hbmFnZXIu
CisgICAgICAgICAgICBjbGllbnQtPnJlcXVlc3RQZXJtaXNzaW9uKGNvbnRleHQsIFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwga2V5RGF0YSA9IGtleURhdGFSZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHBlcm1p
c3Npb24pIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uICE9IE5vdGlm
aWNhdGlvblBlcm1pc3Npb246OkdyYW50ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiVXNlciBkZW5pZWQgcHVzaCBw
ZXJtaXNzaW9uIl9zIH0pOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnN1
YnNjcmliZVRvUHVzaFNlcnZpY2UoV1RGTW92ZShrZXlEYXRhKSwgV1RGTW92ZShwcm9taXNlKSk7
CisgICAgICAgICAgICB9KTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQocGVybWlzc2lvbiA9PSBOb3RpZmljYXRpb25QZXJt
aXNzaW9uOjpHcmFudGVkKTsKICAgICAgICAgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnN1
YnNjcmliZVRvUHVzaFNlcnZpY2Uoa2V5RGF0YVJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwg
V1RGTW92ZShwcm9taXNlKSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgUHVzaE1hbmFnZXI6OmdldFN1
YnNjcmlwdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPFB1c2hTdWJzY3Jp
cHRpb24+Pj4mJiBwcm9taXNlKQordm9pZCBQdXNoTWFuYWdlcjo6Z2V0U3Vic2NyaXB0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIERPTVByb21pc2VEZWZlcnJlZDxJRExOdWxs
YWJsZTxJRExJbnRlcmZhY2U8UHVzaFN1YnNjcmlwdGlvbj4+PiYmIHByb21pc2UpCiB7Ci0gICAg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6
TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICBjb250ZXh0LmV2ZW50TG9vcCgp
LnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11dGFibGUgewog
ICAgICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uZ2V0UHVzaFN1YnNjcmlwdGlvbihX
VEZNb3ZlKHByb21pc2UpKTsKICAgICB9KTsKIH0KIAotdm9pZCBQdXNoTWFuYWdlcjo6cGVybWlz
c2lvblN0YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJbml0PiYmIG9wdGlvbnMsIERP
TVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQdXNoUGVybWlzc2lvblN0YXRlPj4mJiBw
cm9taXNlKQordm9pZCBQdXNoTWFuYWdlcjo6cGVybWlzc2lvblN0YXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJ
bml0PiYmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UHVzaFBlcm1pc3Npb25T
dGF0ZT4+JiYgcHJvbWlzZSkKIHsKLSAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7Ci0gICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0
d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgbV9zZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uLmdldFB1c2hQZXJtaXNzaW9uU3RhdGUoV1RGTW92ZShwcm9taXNlKSk7CisgICAg
Y29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW2Nv
bnRleHQgPSBSZWYgeyBjb250ZXh0IH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11
dGFibGUgeworICAgICAgICBhdXRvIGNsaWVudCA9IGNvbnRleHQtPm5vdGlmaWNhdGlvbkNsaWVu
dCgpOworICAgICAgICBhdXRvIHBlcm1pc3Npb24gPSBjbGllbnQgPyBjbGllbnQtPmNoZWNrUGVy
bWlzc2lvbihjb250ZXh0LnB0cigpKSA6IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlbmllZDsK
KworICAgICAgICBpZiAocGVybWlzc2lvbiA9PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpEZWZh
dWx0KQorICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFB1c2hQZXJtaXNzaW9uU3RhdGU6OlBy
b21wdCk7CisgICAgICAgIGVsc2UgaWYgKHBlcm1pc3Npb24gPT0gTm90aWZpY2F0aW9uUGVybWlz
c2lvbjo6R3JhbnRlZCkKKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShQdXNoUGVybWlzc2lv
blN0YXRlOjpHcmFudGVkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJvbWlzZS5yZXNv
bHZlKFB1c2hQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbSBiL1NvdXJjZS9XZWJL
aXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQppbmRleCBhZGQ2ZTNkOGFkZmVhODk5ODg4ZjRi
YWY2MWFjYzA1MzEzNjNkY2M1Li5hYTM0NThjZTI1Njk3Njg1OTNhY2ZmNTdlMDliM2MyMjJjODc0
YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tCkBAIC02MTgsMTIg
KzYxOCwxMCBAQCB2b2lkIERhZW1vbjo6Z2V0UHVzaFN1YnNjcmlwdGlvbihDbGllbnRDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBjb25zdCBVUkwmIHNjb3BlVQogCiB2b2lkIERhZW1vbjo6Z2V0UHVz
aFBlcm1pc3Npb25TdGF0ZShDbGllbnRDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBVUkwm
IHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEV4cGVjdGVkPHVpbnQ4X3Qs
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpCiB7Ci0gICAgLy8gRklY
TUUKLSNpZiBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCkKLSAgICBy
ZXBseVNlbmRlcihzdGF0aWNfY2FzdDx1aW50OF90PihXZWJDb3JlOjpQdXNoUGVybWlzc2lvblN0
YXRlOjpHcmFudGVkKSk7Ci0jZWxzZQorICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgYWN0dWFs
bHkgZ2V0IGNhbGxlZCByaWdodCBub3csIHNpbmNlIHRoZSBwZXJtaXNzaW9uIGlzIGN1cnJlbnRs
eSBjaGVja2VkCisgICAgLy8gaW4gV2ViUHJvY2Vzcy4gSG93ZXZlciwgd2UndmUgbGVmdCB0aGlz
IHN0dWIgaW4gZm9yIG5vdyBiZWNhdXNlIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgd2UKKyAgICAv
LyB3aWxsIG1vdmUgdGhlIHBlcm1pc3Npb24gY2hlY2sgaW50byB3ZWJwdXNoZCB3aGVuIHN1cHBv
cnRpbmcgb3RoZXIgcGxhdGZvcm1zLgogICAgIHJlcGx5U2VuZGVyKHN0YXRpY19jYXN0PHVpbnQ4
X3Q+KFdlYkNvcmU6OlB1c2hQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCkpOwotI2VuZGlmCiB9CiAK
IENsaWVudENvbm5lY3Rpb24qIERhZW1vbjo6dG9DbGllbnRDb25uZWN0aW9uKHhwY19jb25uZWN0
aW9uX3QgY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAxYzdiYzFjODhiMTc1ZmM0ZjhlZjA2NmY4NWM1ODhlNGU5ZjM4YWQ5Li43
MGFlMWQxMWNmZmM5YjU2N2Y3MjEwYTc4Y2M5ZTE2NTg2ZjAwODFlIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjIt
MDItMTYgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSG9vayB1cCBQdXNo
TWFuYWdlciB0byBwZXJtaXNzaW9uIHN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYWRlIHRoZSBXZWJQdXNoRCBBUEkgdGVzdHMgd29yayBub3cg
dGhhdCBzdWJzY3JpYmUgY2hlY2tzIGZvciBwZXJtaXNzaW9uLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tOgorCiAyMDIyLTAyLTE1
ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBnaXQtd2Vi
a2l0IHNldHVwIHNob3VsZCB2ZXJpZnkgdGhlIGNyZWRlbnRpYWxzIGJlZm9yZSBzYXZpbmcgdGhl
bQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQ
dXNoRGFlbW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQ
dXNoRGFlbW9uLm1tCmluZGV4IGI3YjM0YjZjYWE1NDdiZTMyYTM3NjI4Y2NmMWFjZGVlYzZmNWQ2
NTkuLjdiOTEwMjhkY2FhZjgxMmM4ODllY2I2OTI3ZjNiNTg5Yzk3NWRiMzAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24u
bW0KQEAgLTQyNiw2ICs0MjYsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIG1fbm90aWZpY2F0
aW9uTWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbTm90aWZpY2F0aW9uU2NyaXB0TWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW1ttX2NvbmZpZ3VyYXRpb24gdXNlckNvbnRl
bnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptX25vdGlmaWNhdGlvbk1lc3Nh
Z2VIYW5kbGVyLmdldCgpIG5hbWU6QCJub3RlIl07CisKKyAgICAgICAgbV93ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOm1fY29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgICAgICBt
X3VpRGVsZWdhdGUgPSBhZG9wdE5TKFtbTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CisgICAgICAgIFttX3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTptX3VpRGVsZWdh
dGUuZ2V0KCldOwogICAgIH0KIAogICAgIHZvaWQgbG9hZFJlcXVlc3QoY29uc3QgY2hhciogaHRt
bFNvdXJjZSwgY29uc3QgY2hhciogc2VydmljZVdvcmtlclNjcmlwdFNvdXJjZSkKQEAgLTQ0MCw3
ICs0NDQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICB7ICIvc3cuanMiLCB7IHsgeyAiQ29u
dGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH0gfSwgc2VydmljZVdvcmtlclNj
cmlwdFNvdXJjZSB9IH0KICAgICAgICAgfSwgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6UHJv
dG9jb2w6Okh0dHApKTsKIAotICAgICAgICBtX3dlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246bV9jb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgICAgIFttX3dlYlZpZXcgbG9hZFJl
cXVlc3Q6bV9zZXJ2ZXItPnJlcXVlc3QoKV07CiAgICAgfQogCkBAIC00NTYsNiArNDU5LDcgQEAg
cHJvdGVjdGVkOgogICAgIFJldGFpblB0cjxOb3RpZmljYXRpb25TY3JpcHRNZXNzYWdlSGFuZGxl
cj4gbV9ub3RpZmljYXRpb25NZXNzYWdlSGFuZGxlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGVz
dFdlYktpdEFQSTo6SFRUUFNlcnZlcj4gbV9zZXJ2ZXI7CiAgICAgUmV0YWluUHRyPFdLV2ViVmll
dz4gbV93ZWJWaWV3OworICAgIFJldGFpblB0cjxpZDxXS1VJRGVsZWdhdGVQcml2YXRlPj4gbV91
aURlbGVnYXRlOwogfTsKIAogY2xhc3MgV2ViUHVzaERJbmplY3RlZFB1c2hUZXN0IDogcHVibGlj
IFdlYlB1c2hEVGVzdCB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmYzMGNlZWMwODVmZjVhNTI1NzRlODE2ZDMwZmFkMmI3
NDIyZDAzMy4uZjZjZDJmNTUyNTIzMDI3NWY5MjA4OWRjMDVhYjljZjYzMzM3OGZhNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQzIEBACisyMDIyLTAyLTE2ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgor
CisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8gcGVybWlzc2lvbiBzdGF0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdGhh
dCBtYWtlIHN1cmUgdGhhdCBQdXNoTWFuYWdlci5wZXJtaXNzaW9uU3RhdGUoKSBhbmQgUHVzaE1h
bmFnZXIuc3Vic2NyaWJlKCkKKyAgICAgICAgcmVzcGVjdCB0aGUgbm90aWZpY2F0aW9uIHBlcm1p
c3Npb24gbGV2ZWwgZm9yIHRoZSBjdXJyZW50IG9yaWdpbi4KKworICAgICAgICBJIG1hZGUgdGhl
c2UgcmVndWxhciB0ZXN0cyByYXRoZXIgdGhhbiBXUFQgdGVzdHMgYmVjYXVzZSB0aGUgV1BUIHRl
c3QgaGFybmVzcyBjYWxscworICAgICAgICBncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24g
YXQgdGhlIHRvcCBvZiBpdHMgc2V0dXAgc2NyaXB0IChpbiB0ZXN0aGFybmVzc3JlcG9ydC5qcyks
IGFuZAorICAgICAgICBJIGRpZG4ndCB3YW50IHRvIGNoYW5nZSB0aGF0IGZvciB0aGlzIHBhdGNo
LgorCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvcHVzaC1hcGktdGVz
dC1wcmUuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoUHVzaEFQSVRlc3QpOgorICAgICAgICAo
d2FpdEZvclN0YXRlKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9z
dWJzY3JpYmUtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1lLXNhbWUtb3JpZ2luLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNj
cmliZS10ZXN0cy5qczogQWRkZWQuCisgICAgICAgIChhc3luYyB0ZXN0U2VydmljZVdvcmtlclBl
cm1pc3Npb25TdGF0ZSk6CisgICAgICAgIChhc3luYyB0ZXN0RG9jdW1lbnRQZXJtaXNzaW9uU3Rh
dGUpOgorICAgICAgICAoYXN5bmMgdGVzdFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUpOgorICAgICAg
ICAoYXN5bmMgdGVzdERvY3VtZW50U3Vic2NyaWJlKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1
c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFz
eW5jIGV2ZW50KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZh
dWx0LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3Jp
Z2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9z
dWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVy
bWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJh
bWUtc2FtZS1vcmlnaW4uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1w
ZXJtaXNzaW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1p
c3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4tZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMi0xNSAgTWF0dGVvIEZs
b3JlcyAgPG1hdHRlb19mbG9yZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFzbGluaW5nIGZv
bnRzL21vbm9zcGFjZS5odG1sIGZvciBNb250ZXJleS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmI4ZTVkNzQ3M2VhNWI3ZTM3N2M0YjY2YzgxNzhmZGU0MWJlOTk4MQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3Vy
Y2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzCkBAIC0wLDAgKzEsNDkgQEAKK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBmaW5pc2hQdXNoQVBJVGVzdCgpCit7Cisg
ICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5wYXJlbnQgIT09
IHdpbmRvdykgeworICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKCdmaW5pc2hQdXNo
QVBJVGVzdCcsICcqJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5j
dGlvbiB3YWl0Rm9yU3RhdGUod29ya2VyLCBzdGF0ZSkKK3sKKyAgICBpZiAoIXdvcmtlciB8fCB3
b3JrZXIuc3RhdGUgPT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qo
bmV3IEVycm9yKCd3YWl0X2Zvcl9zdGF0ZSBtdXN0IGJlIHBhc3NlZCBhIFNlcnZpY2VXb3JrZXIn
KSk7CisKKyAgICBpZiAod29ya2VyLnN0YXRlID09PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJuIFBy
b21pc2UucmVzb2x2ZShzdGF0ZSk7CisKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o
cmVzb2x2ZSkgeworICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKHdvcmtlci5zdGF0ZSA9PT0gc3RhdGUpCisgICAg
ICAgICAgICByZXNvbHZlKHN0YXRlKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2Z1bmN0
aW9uIGxvZyhtc2cpCit7CisgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYm
IHdpbmRvdy5wYXJlbnQgIT09IHdpbmRvdykgeworICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RN
ZXNzYWdlKG1zZywgJyonKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGxldCBjb25z
b2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICBpZiAoIWNvbnNv
bGUpIHsKKyAgICAgICAgY29uc29sZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgICAgICBjb25zb2xlLmlkID0gImNvbnNvbGUiOworICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGNvbnNvbGUpOworICAgIH0KKyAgICBsZXQgc3BhbiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBzcGFuLmlubmVySFRNTCA9IG1zZyArICI8YnI+IjsKKyAg
ICBjb25zb2xlLmFwcGVuZENoaWxkKHNwYW4pOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1jcm9zcy1vcmln
aW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNj
cmliZS1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjkwZjU2OTQxMWVkNDJh
YTMyMDc0MTMxZTA0OWU4NGFjZGI2NWY5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJhbWUtY3Jvc3Mtb3Jp
Z2luLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPHNjcmlwdCBzcmM9InB1c2gtYXBpLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdWJzY3JpYmUtdGVzdHMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJzdWJzY3JpYmUt
d29ya2VyLmpzIiwgeyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRpb24pID0+IHsKKyAgICB0cnkg
eworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICJh
Y3RpdmF0ZWQiKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3Rh
dGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFBl
cm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVz
dFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90QWxsb3dlZEVycm9yJyk7
CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RB
bGxvd2VkRXJyb3InKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGxvZyhgRkFJTDogdW5l
eHBlY3RlZCBleGNlcHRpb24gJHtlfWApOworICAgIH0gZmluYWxseSB7CisgICAgICAgIGF3YWl0
IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7
CisgICAgfQorfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJhbWUtc2FtZS1vcmlnaW4uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJh
bWUtc2FtZS1vcmlnaW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDNlMWY2YjIxNjkzNWQ2MjA2NDhjMjY3
NTU2YjEzMjEzZTkxNjI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sCkBA
IC0wLDAgKzEsMTggQEAKKzxzY3JpcHQgc3JjPSJwdXNoLWFwaS10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3Vic2NyaWJlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcigic3Vic2NyaWJlLXdvcmtlci5qcyIs
IHsgfSkudGhlbihhc3luYyAocmVnaXN0cmF0aW9uKSA9PiB7CisgICAgdHJ5IHsKKyAgICAgICAg
YXdhaXQgd2FpdEZvclN0YXRlKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAiYWN0aXZhdGVkIik7
CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyUGVybWlzc2lvblN0YXRlKHJlZ2lzdHJh
dGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRQZXJtaXNzaW9uU3Rh
dGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29y
a2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93ZWRFcnJvcicpOworICAgICAgICBh
d2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9uKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGxvZyhgRkFJTDogdW5leHBlY3RlZCBleGNlcHRpb24gJHtlfWApOworICAg
IH0gZmluYWxseSB7CisgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Cisg
ICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7CisgICAgfQorfSk7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmli
ZS10ZXN0cy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1
YnNjcmliZS10ZXN0cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjE1YjU2ZmM3M2I2NWYwY2IzZjRlMDM4NjJj
MjFkNmQ3OWFkZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
dXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzCkBAIC0wLDAgKzEsNzEgQEAKK2Nv
bnN0IFZBTElEX1NFUlZFUl9LRVkgPSAiQkExSHh6eWkxUlVNMWI1d2p4c243bkd4QXN6dzJ1NjFt
MTY0aTNNckFJeEhGNllLNWg0U0RZaWMtZFJ1VV9SQ1BDZkE1YXE5b2pTd2s1WTJFbUNsQlBzIjsK
KworYXN5bmMgZnVuY3Rpb24gdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3RhdGUocmVnaXN0
cmF0aW9uLCBleHBlY3RlZCkKK3sKKyAgICBsZXQgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29s
dmUgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gcmVzb2x2ZSk7CisgICAg
cmVnaXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZShbJ3Blcm1pc3Npb25TdGF0ZSddKTsKKyAg
ICBsZXQgZXZlbnQgPSBhd2FpdCBwcm9taXNlOworICAgIGxldCByZXN1bHQgPSBldmVudC5kYXRh
OworCisgICAgaWYgKHJlc3VsdCA9PSBleHBlY3RlZCkKKyAgICAgICAgbG9nKGBQQVNTOiBzZXJ2
aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzICR7ZXhwZWN0ZWR9YCk7CisgICAgZWxzZQor
ICAgICAgICBsb2coYEZBSUw6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSBzaG91bGQg
YmUgJHtleHBlY3RlZH0sIGJ1dCB3YXMgJHtyZXN1bHR9YCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9u
IHRlc3REb2N1bWVudFBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkKQorewor
ICAgIGxldCBzdGF0ZSA9IGF3YWl0IHJlZ2lzdHJhdGlvbi5wdXNoTWFuYWdlci5wZXJtaXNzaW9u
U3RhdGUoKTsKKworICAgIGlmIChzdGF0ZSA9PSBleHBlY3RlZCkKKyAgICAgICAgbG9nKGBQQVNT
OiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzICR7ZXhwZWN0ZWR9YCk7CisgICAgZWxzZQor
ICAgICAgICBsb2coYEZBSUw6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSBzaG91bGQgYmUgJHtl
eHBlY3RlZH0sIGJ1dCB3YXMgJHtzdGF0ZX1gKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdFNl
cnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCBkb21FeGNlcHRpb25OYW1lKQorewor
ICAgIGxldCBleHBlY3RlZCA9IGRvbUV4Y2VwdGlvbk5hbWUgPyBgZXJyb3I6ICR7ZG9tRXhjZXB0
aW9uTmFtZX1gIDogInN1Y2Nlc3NmdWwiOworCisgICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHsgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gcmVzb2x2
ZTsgfSk7CisgICAgcmVnaXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZShbJ3N1YnNjcmliZScs
IFZBTElEX1NFUlZFUl9LRVldKTsKKyAgICBsZXQgZXZlbnQgPSBhd2FpdCBwcm9taXNlOworICAg
IGxldCByZXN1bHQgPSBldmVudC5kYXRhOworCisgICAgaWYgKHJlc3VsdCA9PSBleHBlY3RlZCkK
KyAgICAgICAgbG9nKGBQQVNTOiBzZXJ2aWNlIHdvcmtlciBzdWJzY3JpYmUgd2FzICR7ZXhwZWN0
ZWR9YCk7CisgICAgZWxzZQorICAgICAgICBsb2coYEZBSUw6IHNlcnZpY2Ugd29ya2VyIHN1YnNj
cmliZSBzaG91bGQgYmUgJHtleHBlY3RlZH0sIGJ1dCB3YXMgJHtyZXN1bHR9YCk7Cit9CisKK2Fz
eW5jIGZ1bmN0aW9uIHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24sIGRvbUV4Y2Vw
dGlvbk5hbWUpCit7CisgICAgbGV0IGV4cGVjdGVkID0gZG9tRXhjZXB0aW9uTmFtZSA/IGBlcnJv
cjogJHtkb21FeGNlcHRpb25OYW1lfWAgOiAic3VjY2Vzc2Z1bCI7CisgICAgbGV0IHJlc3VsdCA9
IG51bGw7CisKKyAgICBsZXQgc3Vic2NyaXB0aW9uID0gbnVsbDsKKyAgICB0cnkgeworICAgICAg
ICAvLyBXaXRoIGRlZmF1bHQgcGVybWlzc2lvbnMsIFB1c2hNYW5hZ2VyIHNob3VsZCByZXF1ZXN0
IHBlcm1pc3Npb24gZnJvbSBUZXN0Q29udHJvbGxlci4KKyAgICAgICAgLy8gVGVzdENvbnRyb2xs
ZXIgYWx3YXlzIGNhbGxzIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyBzbyB0
aGlzIHNob3VsZCBzdWNjZWVkLgorICAgICAgICBzdWJzY3JpcHRpb24gPSBhd2FpdCByZWdpc3Ry
YXRpb24ucHVzaE1hbmFnZXIuc3Vic2NyaWJlKHsKKyAgICAgICAgICAgIHVzZXJWaXNpYmxlT25s
eTogdHJ1ZSwKKyAgICAgICAgICAgIGFwcGxpY2F0aW9uU2VydmVyS2V5OiBWQUxJRF9TRVJWRVJf
S0VZCisgICAgICAgIH0pOworICAgICAgICByZXN1bHQgPSAnc3VjY2Vzc2Z1bCc7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICAvLyBMYXlvdXQgdGVzdHMgYXJlbid0IGNvbm5lY3RlZCB0byB3
ZWJwdXNoZCwgc28gc3Vic2NyaWJlIGlzIHN1Y2Nlc3NmdWwgaWYgaXQgZ2V0cyB0byB0aGUKKyAg
ICAgICAgLy8gcG9pbnQgd2hlcmUgd2UgYXR0ZW1wdCB0byBjb21tdW5pY2F0ZSB3aXRoIHdlYnB1
c2hkIChhbiBBYm9ydEVycm9yKS4KKyAgICAgICAgaWYgKGUubmFtZSA9PSAnQWJvcnRFcnJvcicp
CisgICAgICAgICAgICByZXN1bHQgPSAnc3VjY2Vzc2Z1bCc7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHJlc3VsdCA9ICdlcnJvcjogJyArIChlID8gZS5uYW1lIDogbnVsbCk7CisgICAgfQor
CisgICAgaWYgKHN1YnNjcmlwdGlvbikKKyAgICAgICAgYXdhaXQgc3Vic2NyaXB0aW9uLnVuc3Vi
c2NyaWJlKCk7CisKKyAgICBpZiAocmVzdWx0ID09IGV4cGVjdGVkKQorICAgICAgICBsb2coYFBB
U1M6IGRvY3VtZW50IHN1YnNjcmliZSB3YXMgJHtleHBlY3RlZH1gKTsKKyAgICBlbHNlCisgICAg
ICAgIGxvZyhgRkFJTDogZG9jdW1lbnQgc3Vic2NyaWJlIHNob3VsZCBiZSAke2V4cGVjdGVkfSwg
YnV0IHdhcyAke3Jlc3VsdH1gKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3Jp
YmUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMv
c3Vic2NyaWJlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGQwZjdmNzVkMWM3ZWVhYTFhNDVkMGE3
YzQyNjZkNjY4ODJkNDNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLXdvcmtlci5qcwpAQCAtMCwwICsxLDQzIEBA
Citjb25zdCBWQUxJRF9TRVJWRVJfS0VZID0gIkJBMUh4enlpMVJVTTFiNXdqeHNuN25HeEFzency
dTYxbTE2NGkzTXJBSXhIRjZZSzVoNFNEWWljLWRSdVVfUkNQQ2ZBNWFxOW9qU3drNVkyRW1DbEJQ
cyI7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGFzeW5jIChldmVudCkgPT4g
eworICAgIGxldCBbb3AsIC4uLmFyZ3NdID0gZXZlbnQuZGF0YTsKKworICAgIGlmIChvcCA9PSAn
cGVybWlzc2lvblN0YXRlJykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbGV0IHN0YXRl
ID0gYXdhaXQgc2VsZi5yZWdpc3RyYXRpb24ucHVzaE1hbmFnZXIucGVybWlzc2lvblN0YXRlKCk7
CisgICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2Uoc3RhdGUpOworICAgICAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoImVycm9y
OiAiICsgZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG9wID09ICdzdWJzY3JpYmUnKSB7
CisgICAgICAgIGxldCBzdWJzY3JpcHRpb24gPSBudWxsOworICAgICAgICBsZXQgcmVzdWx0ID0g
bnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Vic2NyaXB0aW9uID0gYXdhaXQg
c2VsZi5yZWdpc3RyYXRpb24ucHVzaE1hbmFnZXIuc3Vic2NyaWJlKHsKKyAgICAgICAgICAgICAg
ICB1c2VyVmlzaWJsZU9ubHk6IHRydWUsCisgICAgICAgICAgICAgICAgYXBwbGljYXRpb25TZXJ2
ZXJLZXk6IGFyZ3NbMF0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaWYgKHN1YnNjcmlw
dGlvbikKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAic3VjY2Vzc2Z1bCI7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gImVycm9yOiBudWxsIHN1YnNjcmlwdGlv
biI7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGlmICghZSkKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSAiZXJyb3I6IG51bGwgZXhjZXB0aW9uIjsKKyAgICAgICAgICAgIGVs
c2UgaWYgKGUubmFtZSA9PSAnQWJvcnRFcnJvcicpCisgICAgICAgICAgICAgICAgLy8gTGF5b3V0
IHRlc3RzIGN1cnJlbnRseSBhcmVuJ3QgY29ubmVjdGVkIHRvIHdlYnB1c2hkLiBTbyBpZiB3ZSBm
YWlsIHdpdGggYW4gQWJvcnRFcnJvcgorICAgICAgICAgICAgICAgIC8vIHdoZW4gdHJ5aW5nIHRv
IGNvbm5lY3QgdG8gd2VicHVzaGQsIHdlIGNvdW50IHRoYXQgYXMgYSBzdWNjZXNzZnVsIHN1YnNj
cmlwdGlvbiBmb3IKKyAgICAgICAgICAgICAgICAvLyB0ZXN0aW5nIHB1cnBvc2VzLgorICAgICAg
ICAgICAgICAgIHJlc3VsdCA9ICJzdWNjZXNzZnVsIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSAiZXJyb3I6ICIgKyBlLm5hbWU7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoc3Vic2NyaXB0aW9uKQorICAgICAgICAgICAgYXdhaXQgc3Vic2NyaXB0aW9uLnVu
c3Vic2NyaWJlKCk7CisKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKHJlc3VsdCk7
CisgICAgfQorfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBp
L3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNmYjE2NDAyZWJiMDM4YWU0ZTE4M2YxMzU0Y2ZkMzBhNWFmNTFj
ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K1BBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJvbXB0CitQQVNTOiBk
b2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzogc2VydmljZSB3b3JrZXIg
c3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNTOiBkb2N1bWVudCBzdWJz
Y3JpYmUgd2FzIHN1Y2Nlc3NmdWwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3Jp
Z2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2Ny
aWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzc4ZWJiYWY0Zjk4M2MzNmViMDZjZmMwYmUyMWNjYmI4ZmEyMjA0NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJl
LWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw2IEBACisKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMg
cHJvbXB0CitQQVNTOiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzog
c2VydmljZSB3b3JrZXIgc3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNT
OiBkb2N1bWVudCBzdWJzY3JpYmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1w
ZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1v
cmlnaW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hM2Q1ZWJiNGJhMDQ5NjZlMDRiZmRiYTRhYTA4Y2NkM2Y2
ZDVhYThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwK
QEAgLTAsMCArMSwxNyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
Pgord2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgaWYgKGV2ZW50LmRh
dGEgPT0gJ2ZpbmlzaFB1c2hBUElUZXN0JykKKyAgICAgICAgZmluaXNoUHVzaEFQSVRlc3QoKTsK
KyAgICBlbHNlCisgICAgICAgIGxvZyhldmVudC5kYXRhKTsKK307Cis8L3NjcmlwdD4KKzxpZnJh
bWUgc3JjPSJodHRwczovLzEyNy4wLjAuMTo4NDQzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3Jp
YmUtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUt
ZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9u
cy1pZnJhbWUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ZTMwMTlhZjY5
NjMwNDM4NWZhMGViYjI2YmU5N2NkMzM2ZjQ4YzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlm
cmFtZS1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1M6IHNl
cnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJvbXB0CitQQVNTOiBkb2N1bWVudCBw
ZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzogc2VydmljZSB3b3JrZXIgc3Vic2NyaWJl
IHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNTOiBkb2N1bWVudCBzdWJzY3JpYmUgd2Fz
IHN1Y2Nlc3NmdWwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlz
c2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ3OTdlMjljMjQ0NWU1
NmZjNmI1MDE2MzI0YjM2ZDhiNWRmMTBkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1l
LXNhbWUtb3JpZ2luLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0Pgord2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgaWYgKGV2ZW50LmRhdGEgPT0gJ2ZpbmlzaFB1c2hBUElUZXN0JykKKyAgICAgICAgZmlu
aXNoUHVzaEFQSVRlc3QoKTsKKyAgICBlbHNlCisgICAgICAgIGxvZyhldmVudC5kYXRhKTsKK307
Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1zYW1l
LW9yaWdpbi5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNz
aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVm
YXVsdC1wZXJtaXNzaW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NDJjN2M3MTgyOTYyMWU1ZTZjZGU4
YjllOTZmOWNlYTJhMjQyZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwKQEAgLTAsMCAr
MSwyNCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHVzaC1hcGkt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdWJzY3JpYmUt
dGVzdHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9zdWJzY3JpYmUtd29ya2VyLmpzIiwg
eyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRpb24pID0+IHsKKyAgICB0cnkgeworICAgICAgICBh
d2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICJhY3RpdmF0ZWQiKTsK
KyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0
aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFBlcm1pc3Npb25TdGF0
ZShyZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3Jr
ZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90QWxsb3dlZEVycm9yJyk7CisgICAgICAgIGF3
YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24pOworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgbG9nKGBGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAke2V9YCk7CisgICAg
fSBmaW5hbGx5IHsKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAg
ICAgICAgZmluaXNoUHVzaEFQSVRlc3QoKTsKKyAgICB9Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9z
dWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NDExMjM1MjUxYmI5MjEyMjM2OTg2ODNlMzA0OTZjZWYyMzJiOWFlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUt
ZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTOiBzZXJ2
aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzIGRlbmllZAorUEFTUzogZG9jdW1lbnQgcGVy
bWlzc2lvblN0YXRlIHdhcyBkZW5pZWQKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHN1YnNjcmliZSB3
YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorUEFTUzogZG9jdW1lbnQgc3Vic2NyaWJlIHdhcyBl
cnJvcjogTm90QWxsb3dlZEVycm9yCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iM2M0MTFkOTJhOTc3NWE2ZTRjMDM3Y2I1OGFiOTUwNjUyNTdmOTdiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVu
eS1wZXJtaXNzaW9ucy5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKHdpbmRvdy5vcmlnaW4pOworCituYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanMi
LCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4geworICAgIHRyeSB7CisgICAgICAg
IGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgImFjdGl2YXRlZCIp
OworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25TdGF0ZShyZWdpc3Ry
YXRpb24sICdkZW5pZWQnKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50UGVybWlzc2lvblN0
YXRlKHJlZ2lzdHJhdGlvbiwgJ2RlbmllZCcpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdv
cmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICAgICAg
YXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93ZWRFcnJv
cicpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgbG9nKGBGQUlMOiB1bmV4cGVjdGVkIGV4
Y2VwdGlvbiAke2V9YCk7CisgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgZmluaXNoUHVzaEFQSVRlc3QoKTsKKyAgICB9Cit9
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVy
bWlzc2lvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhNGM4MjgyZTA0YTc3NWFhZGYyNDZi
YmY1MDIxMjY4YzdiNWE4YjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzIGdy
YW50ZWQKK1BBU1M6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMgZ3JhbnRlZAorUEFTUzog
c2VydmljZSB3b3JrZXIgc3Vic2NyaWJlIHdhcyBzdWNjZXNzZnVsCitQQVNTOiBkb2N1bWVudCBz
dWJzY3JpYmUgd2FzIHN1Y2Nlc3NmdWwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjEzNzAxZmUxOTMwOGIzMWQxYmNiZDM4NDc0ZTEzMTUzMDE3NDVmNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJl
LWdyYW50LXBlcm1pc3Npb25zLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RS
dW5uZXIuZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKHdpbmRvdy5vcmlnaW4pOworCitu
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1YnNjcmliZS13b3Jr
ZXIuanMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4geworICAgIHRyeSB7Cisg
ICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgImFjdGl2
YXRlZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25TdGF0ZShy
ZWdpc3RyYXRpb24sICdncmFudGVkJyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFBlcm1p
c3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdncmFudGVkJyk7CisgICAgICAgIGF3YWl0IHRlc3RT
ZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbik7CisgICAgICAgIGF3YWl0IHRlc3RE
b2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24pOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
ICAgbG9nKGBGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAke2V9YCk7CisgICAgfSBmaW5hbGx5
IHsKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgZmlu
aXNoUHVzaEFQSVRlc3QoKTsKKyAgICB9Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3YTgzYjQx
ZjY0YWU0MDlhMGI5NmFjZjNlYTYxNzc1NzBiY2U5MGI2Li5jMGM4NmU2MDNmOGExYzYwYTk1NTlm
ZDJmMjA5ZDZiNDU2OTVjZDJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTg2OCwzICsxODY4LDEwIEBAIGFjY2Vzc2liaWxpdHkvZGlhbG9nLXByb3Bl
cnRpZXMuaHRtbCBbIFNraXAgXQogIyBUaGVzZSB0ZXN0cyByZXF1aXJlIHBsYXRmb3JtIHN1cHBv
cnQuCiBtZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy5odG1sCiBtZWRpYS9tZWRpYS1hbGxvd2Vk
LWNvbnRhaW5lcnMuaHRtbAorCisjIFB1c2ggc3Vic2NyaXB0aW9uIHRlc3RzIGZhaWwgd2l0aG91
dCBwbGF0Zm9ybS1zcGVjaWZpYyBQdXNoQ3J5cHRvIGltcGxlbWVudGF0aW9ucy4KK2h0dHAvdGVz
dHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9y
aWdpbi5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZh
dWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCitodHRw
L3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwgWyBGYWls
dXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRt
bCBbIEZhaWx1cmUgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlz
c2lvbnMuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBjNzFkZDUwMjIxNWFiODI3M2FhMTJlODRlNGE5YWNhMzBiYjEyYzE3Li44
MDdkNzY1NGZkMDQxYTdmNDcyYjQ0OGQ4ZGFiZDk5ZjNlMTk2YWFlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDk5NSwzICs0OTk1LDEwIEBAIGZhc3Qv
dGV4dC9sb2NhbGUtc2hhcGluZy0zLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZh
dWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tlZC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vZGVm
YXVsdC1zcmMtb2JqZWN0LWRhdGEtdXJsLWJsb2NrZWQyLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9k
ZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tlZDMuaHRtbCBbIEZhaWx1cmUgXQorCisj
IFB1c2ggc3Vic2NyaXB0aW9uIHRlc3RzIGZhaWwgd2l0aG91dCBwbGF0Zm9ybS1zcGVjaWZpYyBQ
dXNoQ3J5cHRvIGltcGxlbWVudGF0aW9ucy4KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJl
LWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBd
CitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFt
ZS1zYW1lLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNj
cmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwgWyBGYWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVz
aC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQoraHR0cC90
ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUg
XQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452366</attachid>
            <date>2022-02-17 07:57:51 -0800</date>
            <delta_ts>2022-02-17 23:02:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236739-20220217075750.patch</filename>
            <type>text/plain</type>
            <size>34229</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE4ZWRkMzA4NzY2Y2Rj
YTQ0ZTk5ZTgzMzNkNDY1NGUyYTg1MTYwNC4uZTI3MTZkM2ViNGI5NGIwN2QxYjMyNzNmMmU0NTQ3
Y2RjMjg3MGM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAyLTE2ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8g
cGVybWlzc2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpbXBsZW1lbnRzIFB1c2hNYW5hZ2VyLnBlcm1pc3Npb25TdGF0ZS4gSXQg
cmV0dXJucyB0aGUgc2FtZSB2YWx1ZSBhcworICAgICAgICBOb3RpZmljYXRpb24ucGVybWlzc2lv
biB0aHJvdWdoIHRoZSBzYW1lIG1lY2hhbmlzbS4KKworICAgICAgICBUaGlzIGFsc28gbWFrZXMg
UHVzaE1hbmFnZXIuc3Vic2NyaWJlIHJlcXVlc3QgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyIHRv
IHNob3cgbm90aWZpY2F0aW9ucworICAgICAgICBpZiB0aGUgcGVybWlzc2lvbiBpcyBpbiB0aGUg
ZGVmYXVsdCBzdGF0ZSBhbmQgdGhlc2UgcmVxdWlyZW1lbnRzIGFyZSBtZXQ6CisKKyAgICAgICAg
MS4gVGhlIGNhbGxlciBpcyBhIGRvY3VtZW50IHdpdGggdGhlIHNhbWUgb3JpZ2luIGFzIGEgdG9w
IGxldmVsIGRvY3VtZW50LiBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAgICAgY3Jvc3Mtb3JpZ2lu
IGlmcmFtZXMgY2Fubm90IHJlcXVlc3QgcHVzaCBwZXJtaXNzaW9ucy4gVGhpcyBtYXRjaGVzIENo
cm9tZSdzIGJlaGF2aW9yLgorICAgICAgICAyLiBUaGUgY2FsbGVyIGNhbm5vdCBiZSBhIHNlcnZp
Y2Ugd29ya2VyLiBUaGlzIGxpbWl0YXRpb24gaXMgYWxsb3dlZCBmb3IgYnkgdGhlIHNwZWMuCisK
KyAgICAgICAgVGhlcmUgYWxzbyBuZWVkcyB0byBiZSBzb21lIGNvZGUgYWRkZWQgd2hpY2ggcmVt
b3ZlcyBhIHB1c2ggc3Vic2NyaXB0aW9uIGlmIHRoZSB1c2VyIGRlbGV0ZXMKKyAgICAgICAgdGhl
IHN1YnNjcmlwdGlvbiBlbnRpcmVseSBpbiB0aGUgVUksIGZvciBpbnN0YW5jZSB3aGVuIHRoZSBV
SVByb2Nlc3MgY2FsbHMKKyAgICAgICAgV0tOb3RpZmljYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRS
ZW1vdmVOb3RpZmljYXRpb25Qb2xpY2llcy4gVGhhdCB3aWxsIGJlIGhhbmRsZWQgaW4gYQorICAg
ICAgICBzZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBsYXlvdXQgdGVz
dHMuCisKKyAgICAgICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlB1c2hNYW5hZ2VyOjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViQ29yZTo6
UHVzaE1hbmFnZXI6OmdldFN1YnNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQdXNoTWFu
YWdlcjo6cGVybWlzc2lvblN0YXRlKToKKwogMjAyMi0wMi0xNyAgQWxlamFuZHJvIEcuIENhc3Ry
byAgPGFsZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBCdWlsZCBmYWlsdXJlIHdoZW4g
YnVpbGRpbmcgd2l0aCBBTkdMRSBlbmFibGVkIHNpbmNlIHIyODk5MTIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNmYw
ZWYzOGNkMjc0N2U1NzU3ODJkZjI3MDc3M2VjZmM3Yzc3MzJiZC4uZmQwM2QyZTRhMGE4OTRmYWM2
ZTlkMmQ2OGU1NTgzZTRjZGEwZDEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0w
Mi0xNiAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBIb29rIHVwIFB1c2hN
YW5hZ2VyIHRvIHBlcm1pc3Npb24gc3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNjczOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHdlIHN0aWxs
IGhhdmUgYSBwZXJtaXNzaW9uIHN0YXRlIHN0dWIgaW4gd2VicHVzaGQuCisKKyAgICAgICAgKiB3
ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tOgorICAgICAgICAoV2ViUHVzaEQ6OkRhZW1vbjo6Z2V0
UHVzaFBlcm1pc3Npb25TdGF0ZSk6CisKIDIwMjItMDItMTcgIEtpbW1vIEtpbm51bmVuICA8a2tp
bm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCB3aGlsZSBkZXN0cm95aW5nIFJlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1h
cGkvUHVzaE1hbmFnZXIuY3BwCmluZGV4IDRjNzE1NjJjZDA0NjQ3YjEwNzc4NDQ5NTFhZTJlN2U4
YTdjNWFjMTUuLjI4MzI2MWM1OTczNDBkZmQ0MDYwYTk5NDY1MWZkZmUwNmRlYjM2N2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaE1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaE1hbmFnZXIuY3BwCkBAIC0y
OCwxMCArMjgsMTIgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTUHVzaFBlcm1pc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUg
IkpTUHVzaFN1YnNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNsaWVudC5oIgog
I2luY2x1ZGUgIlB1c2hDcnlwdG8uaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIgpAQCAtNjUsMTEgKzY3
LDExIEBAIHZvaWQgUHVzaE1hbmFnZXI6OmRlcmVmKCkgY29uc3QKICAgICBtX3NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24uZGVyZWYoKTsKIH0KIAotdm9pZCBQdXNoTWFuYWdlcjo6c3Vic2NyaWJl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHN0ZDo6b3B0
aW9uYWw8UHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJbml0PiYmIG9wdGlvbnMsIERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8UHVzaFN1YnNjcmlwdGlvbj4+JiYgcHJvbWlzZSkKK3ZvaWQg
UHVzaE1hbmFnZXI6OnN1YnNjcmliZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBz
dGQ6Om9wdGlvbmFsPFB1c2hTdWJzY3JpcHRpb25PcHRpb25zSW5pdD4mJiBvcHRpb25zLCBET01Q
cm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFB1c2hTdWJzY3JpcHRpb24+PiYmIHByb21pc2Up
CiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5pc1NlY3VyZUNv
bnRleHQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoY29udGV4dC5pc1NlY3VyZUNvbnRleHQoKSk7
CiAgICAgCi0gICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2so
VGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9LCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKCkgbXV0YWJsZSB7CisgICAgY29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1Nv
dXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBj
b250ZXh0ID0gUmVmIHsgY29udGV4dCB9LCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghb3B0aW9u
cyB8fCAhb3B0aW9ucy0+dXNlclZpc2libGVPbmx5KSB7CiAgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJTdWJzY3JpYmluZyBmb3IgcHVzaCBy
ZXF1aXJlcyB1c2VyVmlzaWJsZU9ubHkgdG8gYmUgdHJ1ZSJfcyB9KTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTExMSwyMiArMTEzLDY2IEBAIHZvaWQgUHVzaE1hbmFnZXI6OnN1YnNjcmliZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGQ6CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICBhdXRvIGNsaWVudCA9IGNvbnRl
eHQtPm5vdGlmaWNhdGlvbkNsaWVudCgpOworICAgICAgICBhdXRvIHBlcm1pc3Npb24gPSBjbGll
bnQgPyBjbGllbnQtPmNoZWNrUGVybWlzc2lvbihjb250ZXh0LnB0cigpKSA6IE5vdGlmaWNhdGlv
blBlcm1pc3Npb246OkRlbmllZDsKKworICAgICAgICBpZiAocGVybWlzc2lvbiA9PSBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uOjpEZW5pZWQpIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlVzZXIgZGVuaWVkIHB1c2ggcGVybWlzc2lvbiJf
cyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwZXJt
aXNzaW9uID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlZmF1bHQgJiYgIWNvbnRleHQtPmlz
RG9jdW1lbnQoKSkgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90
QWxsb3dlZEVycm9yLCAiVXNlciBkZW5pZWQgcHVzaCBwZXJtaXNzaW9uIl9zIH0pOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0gTm90
aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVmYXVsdCkgeworICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoY2xpZW50KTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNvbnRleHQtPmlzRG9jdW1l
bnQoKSk7CisKKyAgICAgICAgICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQuZ2V0
KCkpLmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSkgeworICAgICAgICAgICAgICAgIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlVzZXIgZGVuaWVkIHB1c2gg
cGVybWlzc2lvbiJfcyB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisKKyNpZiAhUExBVEZPUk0oV0lOX0NBSVJPKQorICAgICAgICAgICAgLy8gUmVmIHsgKnRoaXMg
fSB0cmlnZ2VycyBhIGNvbXBpbGVyIGJ1ZyBvbiB3aW5jYWlybyB3aGVyZSBpdCB0cmllcyB0byBy
ZWYgdGhlIGxhbWJkYSBpbnN0ZWFkIG9mIFB1c2hNYW5hZ2VyLgorICAgICAgICAgICAgY2xpZW50
LT5yZXF1ZXN0UGVybWlzc2lvbihjb250ZXh0LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7
ICp0aGlzIH0sIGtleURhdGEgPSBrZXlEYXRhUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byBwZXJtaXNzaW9uKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgICAgICBpZiAocGVybWlzc2lvbiAhPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpH
cmFudGVkKSB7CisgICAgICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdEFsbG93ZWRFcnJvciwgIlVzZXIgZGVuaWVkIHB1c2ggcGVybWlzc2lvbiJfcyB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5zdWJzY3JpYmVUb1B1c2hTZXJ2aWNl
KFdURk1vdmUoa2V5RGF0YSksIFdURk1vdmUocHJvbWlzZSkpOworICAgICAgICAgICAgfSk7Cisj
ZW5kaWYKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKHBlcm1pc3Npb24gPT0gTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6R3JhbnRlZCk7CiAg
ICAgICAgIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5zdWJzY3JpYmVUb1B1c2hTZXJ2aWNl
KGtleURhdGFSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCksIFdURk1vdmUocHJvbWlzZSkpOwog
ICAgIH0pOwogfQogCi12b2lkIFB1c2hNYW5hZ2VyOjpnZXRTdWJzY3JpcHRpb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgRE9NUHJvbWlzZURlZmVycmVk
PElETE51bGxhYmxlPElETEludGVyZmFjZTxQdXNoU3Vic2NyaXB0aW9uPj4+JiYgcHJvbWlzZSkK
K3ZvaWQgUHVzaE1hbmFnZXI6OmdldFN1YnNjcmlwdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPFB1
c2hTdWJzY3JpcHRpb24+Pj4mJiBwcm9taXNlKQogewotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSld
KCkgbXV0YWJsZSB7CisgICAgY29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJj
ZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKICAgICAgICAgbV9zZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uLmdldFB1c2hTdWJzY3JpcHRpb24oV1RGTW92ZShwcm9taXNlKSk7CiAg
ICAgfSk7CiB9CiAKLXZvaWQgUHVzaE1hbmFnZXI6OnBlcm1pc3Npb25TdGF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGQ6Om9wdGlvbmFsPFB1c2hT
dWJzY3JpcHRpb25PcHRpb25zSW5pdD4mJiBvcHRpb25zLCBET01Qcm9taXNlRGVmZXJyZWQ8SURM
RW51bWVyYXRpb248UHVzaFBlcm1pc3Npb25TdGF0ZT4+JiYgcHJvbWlzZSkKK3ZvaWQgUHVzaE1h
bmFnZXI6OnBlcm1pc3Npb25TdGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBz
dGQ6Om9wdGlvbmFsPFB1c2hTdWJzY3JpcHRpb25PcHRpb25zSW5pdD4mJiwgRE9NUHJvbWlzZURl
ZmVycmVkPElETEVudW1lcmF0aW9uPFB1c2hQZXJtaXNzaW9uU3RhdGU+PiYmIHByb21pc2UpCiB7
Ci0gICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkg
bXV0YWJsZSB7Ci0gICAgICAgIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5nZXRQdXNoUGVy
bWlzc2lvblN0YXRlKFdURk1vdmUocHJvbWlzZSkpOworICAgIGNvbnRleHQuZXZlbnRMb29wKCku
cXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFtjb250ZXh0ID0gUmVmIHsgY29udGV4
dCB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0
byBjbGllbnQgPSBjb250ZXh0LT5ub3RpZmljYXRpb25DbGllbnQoKTsKKyAgICAgICAgYXV0byBw
ZXJtaXNzaW9uID0gY2xpZW50ID8gY2xpZW50LT5jaGVja1Blcm1pc3Npb24oY29udGV4dC5wdHIo
KSkgOiBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpEZW5pZWQ7CisKKyAgICAgICAgaWYgKHBlcm1p
c3Npb24gPT0gTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVmYXVsdCkKKyAgICAgICAgICAgIHBy
b21pc2UucmVzb2x2ZShQdXNoUGVybWlzc2lvblN0YXRlOjpQcm9tcHQpOworICAgICAgICBlbHNl
IGlmIChwZXJtaXNzaW9uID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkdyYW50ZWQpCisgICAg
ICAgICAgICBwcm9taXNlLnJlc29sdmUoUHVzaFBlcm1pc3Npb25TdGF0ZTo6R3JhbnRlZCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShQdXNoUGVybWlzc2lvblN0
YXRlOjpEZW5pZWQpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dl
YnB1c2hkL1dlYlB1c2hEYWVtb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hE
YWVtb24ubW0KaW5kZXggYWRkNmUzZDhhZGZlYTg5OTg4OGY0YmFmNjFhY2MwNTMxMzYzZGNjNS4u
YWEzNDU4Y2UyNTY5NzY4NTkzYWNmZjU3ZTA5YjNjMjIyYzg3NGEwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQpAQCAtNjE4LDEyICs2MTgsMTAgQEAgdm9pZCBEYWVt
b246OmdldFB1c2hTdWJzY3JpcHRpb24oQ2xpZW50Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29u
c3QgVVJMJiBzY29wZVUKIAogdm9pZCBEYWVtb246OmdldFB1c2hQZXJtaXNzaW9uU3RhdGUoQ2xp
ZW50Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3QgVVJMJiBzY29wZVVSTCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBFeHBlY3RlZDx1aW50OF90LCBXZWJDb3JlOjpFeGNlcHRpb25E
YXRhPiYpPiYmIHJlcGx5U2VuZGVyKQogewotICAgIC8vIEZJWE1FCi0jaWYgSEFWRShBUFBMRV9Q
VVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCi0gICAgcmVwbHlTZW5kZXIoc3RhdGljX2Nh
c3Q8dWludDhfdD4oV2ViQ29yZTo6UHVzaFBlcm1pc3Npb25TdGF0ZTo6R3JhbnRlZCkpOwotI2Vs
c2UKKyAgICAvLyBGSVhNRTogVGhpcyBkb2Vzbid0IGFjdHVhbGx5IGdldCBjYWxsZWQgcmlnaHQg
bm93LCBzaW5jZSB0aGUgcGVybWlzc2lvbiBpcyBjdXJyZW50bHkgY2hlY2tlZAorICAgIC8vIGlu
IFdlYlByb2Nlc3MuIEhvd2V2ZXIsIHdlJ3ZlIGxlZnQgdGhpcyBzdHViIGluIGZvciBub3cgYmVj
YXVzZSB0aGVyZSBpcyBhIGNoYW5jZSB0aGF0IHdlCisgICAgLy8gd2lsbCBtb3ZlIHRoZSBwZXJt
aXNzaW9uIGNoZWNrIGludG8gd2VicHVzaGQgd2hlbiBzdXBwb3J0aW5nIG90aGVyIHBsYXRmb3Jt
cy4KICAgICByZXBseVNlbmRlcihzdGF0aWNfY2FzdDx1aW50OF90PihXZWJDb3JlOjpQdXNoUGVy
bWlzc2lvblN0YXRlOjpEZW5pZWQpKTsKLSNlbmRpZgogfQogCiBDbGllbnRDb25uZWN0aW9uKiBE
YWVtb246OnRvQ2xpZW50Q29ubmVjdGlvbih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24pCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTY2YjA0
ZmMxYWE0OGNjZDdhZjRiNjIwMTQyZDRmODcxMTNjOTU5Mi4uM2YwOTA2NjYzNWE5MGIyMjEwNThm
ODYxNTFhMDEzMGQ5YTZmMDZhOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAyLTE2ICBCZW4gTmhhbSAgPG5o
YW1AYXBwbGUuY29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8gcGVybWlzc2lv
biBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFkZSB0aGUgV2ViUHVzaEQgQVBJIHRlc3RzIHdvcmsgbm93IHRoYXQgc3Vic2NyaWJlIGNoZWNr
cyBmb3IgcGVybWlzc2lvbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2ViUHVzaERhZW1vbi5tbToKKwogMjAyMi0wMi0xNyAgQW5nZWxvcyBPaWtvbm9tb3Bv
dWxvcyAgPGFuZ2Vsb3NAaWdhbGlhLmNvbT4KIAogICAgICAgICBbSlNDXSBJbmNyZWFzZSB0aW1l
b3V0IHRvIGFjY291bnQgZm9yIE1JUFMgc2xvd25lc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbQppbmRleCBiN2IzNGI2
Y2FhNTQ3YmUzMmEzNzYyOGNjZjFhY2RlZWM2ZjVkNjU5Li43YjkxMDI4ZGNhYWY4MTJjODg5ZWNi
NjkyN2YzYjU4OWM5NzVkYjMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tCkBAIC00MjYsNiArNDI2LDEwIEBAIHBy
b3RlY3RlZDoKIAogICAgICAgICBtX25vdGlmaWNhdGlvbk1lc3NhZ2VIYW5kbGVyID0gYWRvcHRO
UyhbW05vdGlmaWNhdGlvblNjcmlwdE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAg
ICAgIFtbbV9jb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVz
c2FnZUhhbmRsZXI6bV9ub3RpZmljYXRpb25NZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAibm90
ZSJdOworCisgICAgICAgIG1fd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjptX2Nv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICAgICAgbV91aURlbGVnYXRlID0gYWRvcHROUyhbW05v
dGlmaWNhdGlvblBlcm1pc3Npb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgICAgICBbbV93
ZWJWaWV3IHNldFVJRGVsZWdhdGU6bV91aURlbGVnYXRlLmdldCgpXTsKICAgICB9CiAKICAgICB2
b2lkIGxvYWRSZXF1ZXN0KGNvbnN0IGNoYXIqIGh0bWxTb3VyY2UsIGNvbnN0IGNoYXIqIHNlcnZp
Y2VXb3JrZXJTY3JpcHRTb3VyY2UpCkBAIC00NDAsNyArNDQ0LDYgQEAgcHJvdGVjdGVkOgogICAg
ICAgICAgICAgeyAiL3N3LmpzIiwgeyB7IHsgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9q
YXZhc2NyaXB0IiB9IH0sIHNlcnZpY2VXb3JrZXJTY3JpcHRTb3VyY2UgfSB9CiAgICAgICAgIH0s
IFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwKSk7CiAKLSAgICAgICAg
bV93ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOm1fY29uZmlndXJhdGlvbi5nZXQo
KV0pOwogICAgICAgICBbbV93ZWJWaWV3IGxvYWRSZXF1ZXN0Om1fc2VydmVyLT5yZXF1ZXN0KCld
OwogICAgIH0KIApAQCAtNDU2LDYgKzQ1OSw3IEBAIHByb3RlY3RlZDoKICAgICBSZXRhaW5QdHI8
Tm90aWZpY2F0aW9uU2NyaXB0TWVzc2FnZUhhbmRsZXI+IG1fbm90aWZpY2F0aW9uTWVzc2FnZUhh
bmRsZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI+IG1f
c2VydmVyOwogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IG1fd2ViVmlldzsKKyAgICBSZXRhaW5Q
dHI8aWQ8V0tVSURlbGVnYXRlUHJpdmF0ZT4+IG1fdWlEZWxlZ2F0ZTsKIH07CiAKIGNsYXNzIFdl
YlB1c2hESW5qZWN0ZWRQdXNoVGVzdCA6IHB1YmxpYyBXZWJQdXNoRFRlc3QgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYx
MzczY2U4NGRiMWZmN2I2ZDdiZDhmYTU3NTFiNzNjN2YyYjBiOGYuLjM5M2M0NTk4YTJkMTQzYzk0
MWUwOWZiMWZlNTUxYzQ3ZDJjMWVhZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAyMi0wMi0x
NiAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBIb29rIHVwIFB1c2hNYW5h
Z2VyIHRvIHBlcm1pc3Npb24gc3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNjczOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRoYXQgbWFrZSBzdXJlIHRoYXQgUHVzaE1hbmFn
ZXIucGVybWlzc2lvblN0YXRlKCkgYW5kIFB1c2hNYW5hZ2VyLnN1YnNjcmliZSgpCisgICAgICAg
IHJlc3BlY3QgdGhlIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIGxldmVsIGZvciB0aGUgY3VycmVu
dCBvcmlnaW4uCisKKyAgICAgICAgSSBtYWRlIHRoZXNlIHJlZ3VsYXIgdGVzdHMgcmF0aGVyIHRo
YW4gV1BUIHRlc3RzIGJlY2F1c2UgdGhlIFdQVCB0ZXN0IGhhcm5lc3MgY2FsbHMKKyAgICAgICAg
Z3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uIGF0IHRoZSB0b3Agb2YgaXRzIHNldHVwIHNj
cmlwdCAoaW4gdGVzdGhhcm5lc3NyZXBvcnQuanMpLCBhbmQKKyAgICAgICAgSSBkaWRuJ3Qgd2Fu
dCB0byBjaGFuZ2UgdGhhdCBmb3IgdGhpcyBwYXRjaC4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
cHVzaC1hcGkvcmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzOiBBZGRlZC4KKyAgICAgICAg
KGZpbmlzaFB1c2hBUElUZXN0KToKKyAgICAgICAgKHdhaXRGb3JTdGF0ZSk6CisgICAgICAgICog
aHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1jcm9zcy1vcmln
aW4uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMv
c3Vic2NyaWJlLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanM6IEFkZGVkLgorICAg
ICAgICAoYXN5bmMgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3RhdGUpOgorICAgICAgICAo
YXN5bmMgdGVzdERvY3VtZW50UGVybWlzc2lvblN0YXRlKToKKyAgICAgICAgKGFzeW5jIHRlc3RT
ZXJ2aWNlV29ya2VyU3Vic2NyaWJlKToKKyAgICAgICAgKGFzeW5jIHRlc3REb2N1bWVudFN1YnNj
cmliZSk6CisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJl
LXdvcmtlci5qczogQWRkZWQuCisgICAgICAgIChhc3luYyBldmVudCk6CisgICAgICAgICogaHR0
cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1
bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lv
bnMtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdp
bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vi
c2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlz
c2lvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3Jp
YmUtZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNj
cmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvaHR0cC90ZXN0cy9w
dXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2lu
LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnM6CisKIDIwMjItMDItMTcgIE1hdHQgV29vZHJvdyAgPG1hdHR3b29kcm93QGFwcGxlLmNv
bT4KIAogICAgICAgICBDb3B5IHRyYWNrIHNpemVzIGZyb20gcGFyZW50IGdyaWQgaW50byBzdWJn
cmlkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNl
cy9wdXNoLWFwaS10ZXN0LXByZS5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkv
cmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiOGU1ZDc0NzNlYTVi
N2UzNzdjNGI2NmM4MTc4ZmRlNDFiZTk5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcwpAQCAt
MCwwICsxLDQ5IEBACitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rp
b24gZmluaXNoUHVzaEFQSVRlc3QoKQoreworICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5k
ZWZpbmVkJyAmJiB3aW5kb3cucGFyZW50ICE9PSB3aW5kb3cpIHsKKyAgICAgICAgd2luZG93LnBh
cmVudC5wb3N0TWVzc2FnZSgnZmluaXNoUHVzaEFQSVRlc3QnLCAnKicpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gd2FpdEZvclN0YXRlKHdvcmtlciwgc3Rh
dGUpCit7CisgICAgaWYgKCF3b3JrZXIgfHwgd29ya2VyLnN0YXRlID09IHVuZGVmaW5lZCkKKyAg
ICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignd2FpdF9mb3Jfc3RhdGUgbXVz
dCBiZSBwYXNzZWQgYSBTZXJ2aWNlV29ya2VyJykpOworCisgICAgaWYgKHdvcmtlci5zdGF0ZSA9
PT0gc3RhdGUpCisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc3RhdGUpOworCisgICAg
cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgIHdvcmtlci5hZGRF
dmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmICh3
b3JrZXIuc3RhdGUgPT09IHN0YXRlKQorICAgICAgICAgICAgcmVzb2x2ZShzdGF0ZSk7CisgICAg
ICAgIH0pOworICAgIH0pOworfQorCitmdW5jdGlvbiBsb2cobXNnKQoreworICAgIGlmICh0eXBl
b2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cucGFyZW50ICE9PSB3aW5kb3cpIHsK
KyAgICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShtc2csICcqJyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBsZXQgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIik7CisgICAgaWYgKCFjb25zb2xlKSB7CisgICAgICAgIGNvbnNvbGUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgY29uc29sZS5pZCA9ICJjb25zb2xl
IjsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb25zb2xlKTsKKyAgICB9Cisg
ICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgc3Bhbi5p
bm5lckhUTUwgPSBtc2cgKyAiPGJyPiI7CisgICAgY29uc29sZS5hcHBlbmRDaGlsZChzcGFuKTsK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2Vz
L3N1YnNjcmliZS1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY5MGY1Njk0MTFlZDQyYWEzMjA3NDEzMWUwNDllODRhY2RiNjVmOTIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNl
cy9zdWJzY3JpYmUtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxz
Y3JpcHQgc3JjPSJwdXNoLWFwaS10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c3Vic2NyaWJlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CituYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5yZWdpc3Rlcigic3Vic2NyaWJlLXdvcmtlci5qcyIsIHsgfSkudGhlbihhc3luYyAo
cmVnaXN0cmF0aW9uKSA9PiB7CisgICAgdHJ5IHsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRl
KHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAiYWN0aXZhdGVkIik7CisgICAgICAgIGF3YWl0IHRl
c3RTZXJ2aWNlV29ya2VyUGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOwor
ICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAn
cHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lz
dHJhdGlvbiwgJ05vdEFsbG93ZWRFcnJvcicpOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRT
dWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90QWxsb3dlZEVycm9yJyk7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBsb2coYEZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICR7ZX1gKTsKKyAg
ICB9IGZpbmFsbHkgeworICAgICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwor
ICAgICAgICBmaW5pc2hQdXNoQVBJVGVzdCgpOworICAgIH0KK30pOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3Jp
YmUtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gt
YXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjAzZTFmNmIyMTY5MzVkNjIwNjQ4YzI2NzU1NmIxMzIxM2U5MTYyNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmli
ZS1pZnJhbWUtc2FtZS1vcmlnaW4uaHRtbApAQCAtMCwwICsxLDE4IEBACis8c2NyaXB0IHNyYz0i
cHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1YnNjcmliZS10
ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVn
aXN0ZXIoInN1YnNjcmliZS13b3JrZXIuanMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlv
bikgPT4geworICAgIHRyeSB7CisgICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRp
b24uaW5zdGFsbGluZywgImFjdGl2YXRlZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdv
cmtlclBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdh
aXQgdGVzdERvY3VtZW50UGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOwor
ICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdO
b3RBbGxvd2VkRXJyb3InKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlKHJl
Z2lzdHJhdGlvbik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBsb2coYEZBSUw6IHVuZXhw
ZWN0ZWQgZXhjZXB0aW9uICR7ZX1gKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgICBhd2FpdCBy
ZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICBmaW5pc2hQdXNoQVBJVGVzdCgpOwor
ICAgIH0KK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzIxNWI1NmZjNzNiNjVmMGNiM2Y0ZTAzODYyYzIxZDZkNzlhZGYxNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS10
ZXN0cy5qcwpAQCAtMCwwICsxLDcxIEBACitjb25zdCBWQUxJRF9TRVJWRVJfS0VZID0gIkJBMUh4
enlpMVJVTTFiNXdqeHNuN25HeEFzencydTYxbTE2NGkzTXJBSXhIRjZZSzVoNFNEWWljLWRSdVVf
UkNQQ2ZBNWFxOW9qU3drNVkyRW1DbEJQcyI7CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RTZXJ2aWNl
V29ya2VyUGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWQpCit7CisgICAgbGV0
IHByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
Lm9ubWVzc2FnZSA9IHJlc29sdmUpOworICAgIHJlZ2lzdHJhdGlvbi5hY3RpdmUucG9zdE1lc3Nh
Z2UoWydwZXJtaXNzaW9uU3RhdGUnXSk7CisgICAgbGV0IGV2ZW50ID0gYXdhaXQgcHJvbWlzZTsK
KyAgICBsZXQgcmVzdWx0ID0gZXZlbnQuZGF0YTsKKworICAgIGlmIChyZXN1bHQgPT0gZXhwZWN0
ZWQpCisgICAgICAgIGxvZyhgUEFTUzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0YXRlIHdh
cyAke2V4cGVjdGVkfWApOworICAgIGVsc2UKKyAgICAgICAgbG9nKGBGQUlMOiBzZXJ2aWNlIHdv
cmtlciBwZXJtaXNzaW9uU3RhdGUgc2hvdWxkIGJlICR7ZXhwZWN0ZWR9LCBidXQgd2FzICR7cmVz
dWx0fWApOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRQZXJtaXNzaW9uU3RhdGUo
cmVnaXN0cmF0aW9uLCBleHBlY3RlZCkKK3sKKyAgICBsZXQgc3RhdGUgPSBhd2FpdCByZWdpc3Ry
YXRpb24ucHVzaE1hbmFnZXIucGVybWlzc2lvblN0YXRlKCk7CisKKyAgICBpZiAoc3RhdGUgPT0g
ZXhwZWN0ZWQpCisgICAgICAgIGxvZyhgUEFTUzogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdh
cyAke2V4cGVjdGVkfWApOworICAgIGVsc2UKKyAgICAgICAgbG9nKGBGQUlMOiBkb2N1bWVudCBw
ZXJtaXNzaW9uU3RhdGUgc2hvdWxkIGJlICR7ZXhwZWN0ZWR9LCBidXQgd2FzICR7c3RhdGV9YCk7
Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJh
dGlvbiwgZG9tRXhjZXB0aW9uTmFtZSkKK3sKKyAgICBsZXQgZXhwZWN0ZWQgPSBkb21FeGNlcHRp
b25OYW1lID8gYGVycm9yOiAke2RvbUV4Y2VwdGlvbk5hbWV9YCA6ICJzdWNjZXNzZnVsIjsKKwor
ICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7IG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLm9ubWVzc2FnZSA9IHJlc29sdmU7IH0pOworICAgIHJlZ2lzdHJhdGlvbi5hY3Rp
dmUucG9zdE1lc3NhZ2UoWydzdWJzY3JpYmUnLCBWQUxJRF9TRVJWRVJfS0VZXSk7CisgICAgbGV0
IGV2ZW50ID0gYXdhaXQgcHJvbWlzZTsKKyAgICBsZXQgcmVzdWx0ID0gZXZlbnQuZGF0YTsKKwor
ICAgIGlmIChyZXN1bHQgPT0gZXhwZWN0ZWQpCisgICAgICAgIGxvZyhgUEFTUzogc2VydmljZSB3
b3JrZXIgc3Vic2NyaWJlIHdhcyAke2V4cGVjdGVkfWApOworICAgIGVsc2UKKyAgICAgICAgbG9n
KGBGQUlMOiBzZXJ2aWNlIHdvcmtlciBzdWJzY3JpYmUgc2hvdWxkIGJlICR7ZXhwZWN0ZWR9LCBi
dXQgd2FzICR7cmVzdWx0fWApOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRTdWJz
Y3JpYmUocmVnaXN0cmF0aW9uLCBkb21FeGNlcHRpb25OYW1lKQoreworICAgIGxldCBleHBlY3Rl
ZCA9IGRvbUV4Y2VwdGlvbk5hbWUgPyBgZXJyb3I6ICR7ZG9tRXhjZXB0aW9uTmFtZX1gIDogInN1
Y2Nlc3NmdWwiOworICAgIGxldCByZXN1bHQgPSBudWxsOworCisgICAgbGV0IHN1YnNjcmlwdGlv
biA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgLy8gV2l0aCBkZWZhdWx0IHBlcm1pc3Npb25z
LCBQdXNoTWFuYWdlciBzaG91bGQgcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gVGVzdENvbnRyb2xs
ZXIuCisgICAgICAgIC8vIFRlc3RDb250cm9sbGVyIGFsd2F5cyBjYWxscyBXS05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0QWxsb3cgc28gdGhpcyBzaG91bGQgc3VjY2VlZC4KKyAgICAgICAg
c3Vic2NyaXB0aW9uID0gYXdhaXQgcmVnaXN0cmF0aW9uLnB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7
CisgICAgICAgICAgICB1c2VyVmlzaWJsZU9ubHk6IHRydWUsCisgICAgICAgICAgICBhcHBsaWNh
dGlvblNlcnZlcktleTogVkFMSURfU0VSVkVSX0tFWQorICAgICAgICB9KTsKKyAgICAgICAgcmVz
dWx0ID0gJ3N1Y2Nlc3NmdWwnOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgLy8gTGF5b3V0
IHRlc3RzIGFyZW4ndCBjb25uZWN0ZWQgdG8gd2VicHVzaGQsIHNvIHN1YnNjcmliZSBpcyBzdWNj
ZXNzZnVsIGlmIGl0IGdldHMgdG8gdGhlCisgICAgICAgIC8vIHBvaW50IHdoZXJlIHdlIGF0dGVt
cHQgdG8gY29tbXVuaWNhdGUgd2l0aCB3ZWJwdXNoZCAoYW4gQWJvcnRFcnJvcikuCisgICAgICAg
IGlmIChlLm5hbWUgPT0gJ0Fib3J0RXJyb3InKQorICAgICAgICAgICAgcmVzdWx0ID0gJ3N1Y2Nl
c3NmdWwnOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSAnZXJyb3I6ICcgKyAo
ZSA/IGUubmFtZSA6IG51bGwpOworICAgIH0KKworICAgIGlmIChzdWJzY3JpcHRpb24pCisgICAg
ICAgIGF3YWl0IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOworCisgICAgaWYgKHJlc3VsdCA9
PSBleHBlY3RlZCkKKyAgICAgICAgbG9nKGBQQVNTOiBkb2N1bWVudCBzdWJzY3JpYmUgd2FzICR7
ZXhwZWN0ZWR9YCk7CisgICAgZWxzZQorICAgICAgICBsb2coYEZBSUw6IGRvY3VtZW50IHN1YnNj
cmliZSBzaG91bGQgYmUgJHtleHBlY3RlZH0sIGJ1dCB3YXMgJHtyZXN1bHR9YCk7Cit9ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjBkMGY3Zjc1ZDFjN2VlYWExYTQ1ZDBhN2M0MjY2ZDY2ODgyZDQzZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmli
ZS13b3JrZXIuanMKQEAgLTAsMCArMSw0MyBAQAorY29uc3QgVkFMSURfU0VSVkVSX0tFWSA9ICJC
QTFIeHp5aTFSVU0xYjV3anhzbjduR3hBc3p3MnU2MW0xNjRpM01yQUl4SEY2WUs1aDRTRFlpYy1k
UnVVX1JDUENmQTVhcTlvalN3azVZMkVtQ2xCUHMiOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIo
J21lc3NhZ2UnLCBhc3luYyAoZXZlbnQpID0+IHsKKyAgICBsZXQgW29wLCAuLi5hcmdzXSA9IGV2
ZW50LmRhdGE7CisKKyAgICBpZiAob3AgPT0gJ3Blcm1pc3Npb25TdGF0ZScpIHsKKyAgICAgICAg
dHJ5IHsKKyAgICAgICAgICAgIGxldCBzdGF0ZSA9IGF3YWl0IHNlbGYucmVnaXN0cmF0aW9uLnB1
c2hNYW5hZ2VyLnBlcm1pc3Npb25TdGF0ZSgpOworICAgICAgICAgICAgZXZlbnQuc291cmNlLnBv
c3RNZXNzYWdlKHN0YXRlKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgZXZl
bnQuc291cmNlLnBvc3RNZXNzYWdlKCJlcnJvcjogIiArIGUpOworICAgICAgICB9CisgICAgfSBl
bHNlIGlmIChvcCA9PSAnc3Vic2NyaWJlJykgeworICAgICAgICBsZXQgc3Vic2NyaXB0aW9uID0g
bnVsbDsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgIHN1YnNjcmlwdGlvbiA9IGF3YWl0IHNlbGYucmVnaXN0cmF0aW9uLnB1c2hNYW5hZ2Vy
LnN1YnNjcmliZSh7CisgICAgICAgICAgICAgICAgdXNlclZpc2libGVPbmx5OiB0cnVlLAorICAg
ICAgICAgICAgICAgIGFwcGxpY2F0aW9uU2VydmVyS2V5OiBhcmdzWzBdCisgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb24pCisgICAgICAgICAgICAgICAgcmVzdWx0
ID0gInN1Y2Nlc3NmdWwiOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlc3Vs
dCA9ICJlcnJvcjogbnVsbCBzdWJzY3JpcHRpb24iOworICAgICAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgICAgICBpZiAoIWUpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gImVycm9yOiBudWxs
IGV4Y2VwdGlvbiI7CisgICAgICAgICAgICBlbHNlIGlmIChlLm5hbWUgPT0gJ0Fib3J0RXJyb3In
KQorICAgICAgICAgICAgICAgIC8vIExheW91dCB0ZXN0cyBjdXJyZW50bHkgYXJlbid0IGNvbm5l
Y3RlZCB0byB3ZWJwdXNoZC4gU28gaWYgd2UgZmFpbCB3aXRoIGFuIEFib3J0RXJyb3IKKyAgICAg
ICAgICAgICAgICAvLyB3aGVuIHRyeWluZyB0byBjb25uZWN0IHRvIHdlYnB1c2hkLCB3ZSBjb3Vu
dCB0aGF0IGFzIGEgc3VjY2Vzc2Z1bCBzdWJzY3JpcHRpb24gZm9yCisgICAgICAgICAgICAgICAg
Ly8gdGVzdGluZyBwdXJwb3Nlcy4KKyAgICAgICAgICAgICAgICByZXN1bHQgPSAic3VjY2Vzc2Z1
bCI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gImVycm9yOiAi
ICsgZS5uYW1lOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN1YnNjcmlwdGlvbikKKyAgICAg
ICAgICAgIGF3YWl0IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOworCisgICAgICAgIGV2ZW50
LnNvdXJjZS5wb3N0TWVzc2FnZShyZXN1bHQpOworICAgIH0KK30pOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9u
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmli
ZS1kZWZhdWx0LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmIxNjQwMmVi
YjAzOGFlNGUxODNmMTM1NGNmZDMwYTVhZjUxY2U0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNz
aW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyBw
cm9tcHQKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHN1YnNjcmliZSB3YXMgZXJyb3I6IE5vdEFsbG93
ZWRFcnJvcgorUEFTUzogZG9jdW1lbnQgc3Vic2NyaWJlIHdhcyBzdWNjZXNzZnVsCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQt
cGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFt
ZS1jcm9zcy1vcmlnaW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3OGViYmFmNGY5ODNjMzZl
YjA2Y2ZjMGJlMjFjY2JiOGZhMjIwNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1j
cm9zcy1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTOiBzZXJ2aWNl
IHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzogZG9jdW1lbnQgcGVybWlz
c2lvblN0YXRlIHdhcyBwcm9tcHQKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHN1YnNjcmliZSB3YXMg
ZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorUEFTUzogZG9jdW1lbnQgc3Vic2NyaWJlIHdhcyBlcnJv
cjogTm90QWxsb3dlZEVycm9yCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdp
bi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVs
dC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTNkNWVi
YjRiYTA0OTY2ZTA0YmZkYmE0YWEwOGNjZDNmNmQ1YWE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lv
bnMtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlv
bihldmVudCkgeworICAgIGlmIChldmVudC5kYXRhID09ICdmaW5pc2hQdXNoQVBJVGVzdCcpCisg
ICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7CisgICAgZWxzZQorICAgICAgICBsb2coZXZlbnQu
ZGF0YSk7Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0
My9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1jcm9zcy1vcmlnaW4uaHRtbCI+
Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNh
bWUtb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkv
c3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NWUzMDE5YWY2OTYzMDQzODVmYTBlYmIyNmJlOTdjZDMzNmY0OGM1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJz
Y3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUg
d2FzIHByb21wdAorUEFTUzogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyBwcm9tcHQKK1BB
U1M6IHNlcnZpY2Ugd29ya2VyIHN1YnNjcmliZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgor
UEFTUzogZG9jdW1lbnQgc3Vic2NyaWJlIHdhcyBzdWNjZXNzZnVsCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lv
bnMtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gt
YXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU0Nzk3ZTI5YzI0NDVlNTZmYzZiNTAxNjMyNGIzNmQ4YjVkZjEwZDEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmli
ZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sCkBAIC0wLDAgKzEs
MTcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3B1c2gtYXBpLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3dpbmRvdy5v
bm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeworICAgIGlmIChldmVudC5kYXRhID09ICdmaW5p
c2hQdXNoQVBJVGVzdCcpCisgICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7CisgICAgZWxzZQor
ICAgICAgICBsb2coZXZlbnQuZGF0YSk7Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0icmVz
b3VyY2VzL3N1YnNjcmliZS1pZnJhbWUtc2FtZS1vcmlnaW4uaHRtbCI+Cis8L2lmcmFtZT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1h
cGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mODQyYzdjNzE4Mjk2MjFlNWU2Y2RlOGI5ZTk2ZjljZWEyYTI0MmU3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVs
dC1wZXJtaXNzaW9ucy5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNv
dXJjZXMvc3Vic2NyaWJlLXdvcmtlci5qcyIsIHsgfSkudGhlbihhc3luYyAocmVnaXN0cmF0aW9u
KSA9PiB7CisgICAgdHJ5IHsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nLCAiYWN0aXZhdGVkIik7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29y
a2VyUGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2Fp
dCB0ZXN0RG9jdW1lbnRQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7Cisg
ICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05v
dEFsbG93ZWRFcnJvcicpOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVn
aXN0cmF0aW9uKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGxvZyhgRkFJTDogdW5leHBl
Y3RlZCBleGNlcHRpb24gJHtlfWApOworICAgIH0gZmluYWxseSB7CisgICAgICAgIGF3YWl0IHJl
Z2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7Cisg
ICAgfQorfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVu
eS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQxMTIzNTI1MWJiOTIxMjIz
Njk4NjgzZTMwNDk2Y2VmMjMyYjlhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorUEFTUzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0YXRlIHdh
cyBkZW5pZWQKK1BBU1M6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMgZGVuaWVkCitQQVNT
OiBzZXJ2aWNlIHdvcmtlciBzdWJzY3JpYmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IKK1BB
U1M6IGRvY3VtZW50IHN1YnNjcmliZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBl
cm1pc3Npb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmli
ZS1kZW55LXBlcm1pc3Npb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjNjNDExZDkyYTk3NzVhNmU0YzAz
N2NiNThhYjk1MDY1MjU3Zjk3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbApAQCAtMCwwICsx
LDI3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wdXNoLWFwaS10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N1YnNjcmliZS10
ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lv
bih3aW5kb3cub3JpZ2luKTsKKworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJl
c291cmNlcy9zdWJzY3JpYmUtd29ya2VyLmpzIiwgeyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRp
b24pID0+IHsKKyAgICB0cnkgeworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0
aW9uLmluc3RhbGxpbmcsICJhY3RpdmF0ZWQiKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VX
b3JrZXJQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAnZGVuaWVkJyk7CisgICAgICAgIGF3
YWl0IHRlc3REb2N1bWVudFBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdkZW5pZWQnKTsK
KyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAn
Tm90QWxsb3dlZEVycm9yJyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShy
ZWdpc3RyYXRpb24sICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgIGxvZyhgRkFJTDogdW5leHBlY3RlZCBleGNlcHRpb24gJHtlfWApOworICAgIH0gZmluYWxs
eSB7CisgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIGZp
bmlzaFB1c2hBUElUZXN0KCk7CisgICAgfQorfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJl
LWdyYW50LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43YTRjODI4MmUwNGE3NzVhYWRmMjQ2YmJmNTAyMTI2OGM3YjVhOGIxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQt
cGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUzogc2VydmljZSB3
b3JrZXIgcGVybWlzc2lvblN0YXRlIHdhcyBncmFudGVkCitQQVNTOiBkb2N1bWVudCBwZXJtaXNz
aW9uU3RhdGUgd2FzIGdyYW50ZWQKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHN1YnNjcmliZSB3YXMg
c3VjY2Vzc2Z1bAorUEFTUzogZG9jdW1lbnQgc3Vic2NyaWJlIHdhcyBzdWNjZXNzZnVsCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50
LXBlcm1pc3Npb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNj
cmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMzcwMWZlMTkzMDhiMzFk
MWJjYmQzODQ3NGUxMzE1MzAxNzQ1ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1sCkBAIC0w
LDAgKzEsMjcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3B1c2gt
YXBpLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3Vic2Ny
aWJlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVy
bWlzc2lvbih3aW5kb3cub3JpZ2luKTsKKworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0
ZXIoInJlc291cmNlcy9zdWJzY3JpYmUtd29ya2VyLmpzIiwgeyB9KS50aGVuKGFzeW5jIChyZWdp
c3RyYXRpb24pID0+IHsKKyAgICB0cnkgeworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVn
aXN0cmF0aW9uLmluc3RhbGxpbmcsICJhY3RpdmF0ZWQiKTsKKyAgICAgICAgYXdhaXQgdGVzdFNl
cnZpY2VXb3JrZXJQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAnZ3JhbnRlZCcpOworICAg
ICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAnZ3Jh
bnRlZCcpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3Ry
YXRpb24pOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9u
KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGxvZyhgRkFJTDogdW5leHBlY3RlZCBleGNl
cHRpb24gJHtlfWApOworICAgIH0gZmluYWxseSB7CisgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyKCk7CisgICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7CisgICAgfQorfSk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggODJmOWRmYzcxZDI5NGYwY2I0NGU4ODIzZmY3NjhkMzZhM2Zl
Zjk0Zi4uNGJiM2U4NTE3ZDVlODAxMzg2NmY4N2U1N2RkZGZhOTQ2NzlmZGY3OCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4NzUsNCArMTg3NSwxMSBA
QCB3ZWJraXQub3JnL2IvMjE0MjkwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10ZXh0L3RleHQtZW5jb2RpbmcvcwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvZmlsdGVyLWVmZmVjdHMvc3ZnLWVtcHR5LWNvbnRhaW5lci13aXRoLWZpbHRlci1jb250
ZW50LWFkZGVkLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9tYW51YWwvZHJhd2luZy1pbWFnZXMtdG8t
dGhlLWNhbnZhcy9pbWFnZS1vcmllbnRhdGlvbi9kcmF3SW1hZ2Utd2l0aC1zcmMtcmVjdC50ZW50
YXRpdmUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogWyBSZWxlYXNlIF0gaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9lbWJl
ZGRlZC1jb250ZW50L3ZpZGVvLWNvbnRyb2xzLXZlcnRpY2FsLXdyaXRpbmctbW9kZS5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9w
cmVzZXJ2ZS11YS1oZWFkZXItb24tcmVkaXJlY3QuaHRtIFsgRmFpbHVyZSBdClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvcHJl
c2VydmUtdWEtaGVhZGVyLW9uLXJlZGlyZWN0Lmh0bSBbIEZhaWx1cmUgXQorCisjIFB1c2ggc3Vi
c2NyaXB0aW9uIHRlc3RzIGZhaWwgd2l0aG91dCBwbGF0Zm9ybS1zcGVjaWZpYyBQdXNoQ3J5cHRv
IGltcGxlbWVudGF0aW9ucy4KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQt
cGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rl
c3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9y
aWdpbi5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZh
dWx0LXBlcm1pc3Npb25zLmh0bWwgWyBGYWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vi
c2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQoraHR0cC90ZXN0cy9wdXNo
LWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjNzFkZDUwMjIxNWFiODI3
M2FhMTJlODRlNGE5YWNhMzBiYjEyYzE3Li44MDdkNzY1NGZkMDQxYTdmNDcyYjQ0OGQ4ZGFiZDk5
ZjNlMTk2YWFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNDk5NSwzICs0OTk1LDEwIEBAIGZhc3QvdGV4dC9sb2NhbGUtc2hhcGluZy0zLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tl
ZC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS91c2VyQWdlbnRTaGFkb3dET00vZGVmYXVsdC1zcmMtb2JqZWN0LWRhdGEtdXJsLWJsb2Nr
ZWQyLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxv
Y2tlZDMuaHRtbCBbIEZhaWx1cmUgXQorCisjIFB1c2ggc3Vic2NyaXB0aW9uIHRlc3RzIGZhaWwg
d2l0aG91dCBwbGF0Zm9ybS1zcGVjaWZpYyBQdXNoQ3J5cHRvIGltcGxlbWVudGF0aW9ucy4KK2h0
dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNy
b3NzLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmli
ZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBd
CitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwg
WyBGYWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lv
bnMuaHRtbCBbIEZhaWx1cmUgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQt
cGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452486</attachid>
            <date>2022-02-17 23:02:31 -0800</date>
            <delta_ts>2022-02-18 15:48:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236739-20220217230230.patch</filename>
            <type>text/plain</type>
            <size>35426</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA4NTA5OTJmNDY1YWU1
Nzk4MTFiMDI0MzJlOGFlZDRkN2FjYWFkMC4uOGJiNGZkMWFjYzJhMjRhYTU0MGI0MTllZDdiMTEy
MDRjNzA4MzVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAyLTE2ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8g
cGVybWlzc2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpbXBsZW1lbnRzIFB1c2hNYW5hZ2VyLnBlcm1pc3Npb25TdGF0ZS4gSXQg
cmV0dXJucyB0aGUgc2FtZSB2YWx1ZSBhcworICAgICAgICBOb3RpZmljYXRpb24ucGVybWlzc2lv
biB0aHJvdWdoIHRoZSBzYW1lIG1lY2hhbmlzbS4KKworICAgICAgICBUaGlzIGFsc28gbWFrZXMg
UHVzaE1hbmFnZXIuc3Vic2NyaWJlIHJlcXVlc3QgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyIHRv
IHNob3cgbm90aWZpY2F0aW9ucworICAgICAgICBpZiB0aGUgcGVybWlzc2lvbiBpcyBpbiB0aGUg
ZGVmYXVsdCBzdGF0ZSBhbmQgdGhlc2UgcmVxdWlyZW1lbnRzIGFyZSBtZXQ6CisKKyAgICAgICAg
MS4gVGhlIGNhbGxlciBpcyBhIGRvY3VtZW50IHdpdGggdGhlIHNhbWUgb3JpZ2luIGFzIGEgdG9w
IGxldmVsIGRvY3VtZW50LiBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAgICAgY3Jvc3Mtb3JpZ2lu
IGlmcmFtZXMgY2Fubm90IHJlcXVlc3QgcHVzaCBwZXJtaXNzaW9ucy4gVGhpcyBtYXRjaGVzIENo
cm9tZSdzIGJlaGF2aW9yLgorICAgICAgICAyLiBUaGUgY2FsbGVyIGNhbm5vdCBiZSBhIHNlcnZp
Y2Ugd29ya2VyLiBUaGlzIGxpbWl0YXRpb24gaXMgYWxsb3dlZCBmb3IgYnkgdGhlIHNwZWMuCisK
KyAgICAgICAgVGhlcmUgYWxzbyBuZWVkcyB0byBiZSBzb21lIGNvZGUgYWRkZWQgd2hpY2ggcmVt
b3ZlcyBhIHB1c2ggc3Vic2NyaXB0aW9uIGlmIHRoZSB1c2VyIGRlbGV0ZXMKKyAgICAgICAgdGhl
IHN1YnNjcmlwdGlvbiBlbnRpcmVseSBpbiB0aGUgVUksIGZvciBpbnN0YW5jZSB3aGVuIHRoZSBV
SVByb2Nlc3MgY2FsbHMKKyAgICAgICAgV0tOb3RpZmljYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRS
ZW1vdmVOb3RpZmljYXRpb25Qb2xpY2llcy4gVGhhdCB3aWxsIGJlIGhhbmRsZWQgaW4gYQorICAg
ICAgICBzZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBsYXlvdXQgdGVz
dHMuCisKKyAgICAgICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlB1c2hNYW5hZ2VyOjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViQ29yZTo6
UHVzaE1hbmFnZXI6OmdldFN1YnNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQdXNoTWFu
YWdlcjo6cGVybWlzc2lvblN0YXRlKToKKwogMjAyMi0wMi0xNyAgUGF0cmljayBBbmdsZSAgPHBh
bmdsZUBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW0ZsZXhib3hdIEFkZCBp
bmRpY2F0b3JzIGZvciBsYXlvdXQgY29udGV4dCBpbiBlbGVtZW50IHRvb2x0aXBzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDkyNTIwNGRkNDFlMmI0NjBlYjQwMGI0NTU4ZWU4ODk4MDFjNDBmYTcuLjUzNzRmZGE2MmVh
N2E0ODcyYWE5NzcyN2ZhZWZmODY0MzZlZWZhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMjItMDItMTYgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSG9vayB1
cCBQdXNoTWFuYWdlciB0byBwZXJtaXNzaW9uIHN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgY29tbWVudCBleHBsYWluaW5nIHdoeSB3
ZSBzdGlsbCBoYXZlIGEgcGVybWlzc2lvbiBzdGF0ZSBzdHViIGluIHdlYnB1c2hkLgorCisgICAg
ICAgICogd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbToKKyAgICAgICAgKFdlYlB1c2hEOjpEYWVt
b246OmdldFB1c2hQZXJtaXNzaW9uU3RhdGUpOgorCiAyMDIyLTAyLTE3ICBEaWVnbyBQaW5vIEdh
cmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRGViaWFuIFN0YWJsZSBi
dWlsZCBpcyBicm9rZW4gYWZ0ZXIgcjI5MDAyNgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wdXNoLWFwaS9QdXNoTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcAppbmRleCA0YzcxNTYyY2QwNDY0N2IxMDc3ODQ0OTUx
YWUyZTdlOGE3YzVhYzE1Li4yODMyNjFjNTk3MzQwZGZkNDA2MGE5OTQ2NTFmZGZlMDZkZWIzNjdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNw
cApAQCAtMjgsMTAgKzI4LDEyIEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNp
bmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKICNpbmNs
dWRlICJFeGNlcHRpb24uaCIKICNpbmNsdWRlICJKU1B1c2hQZXJtaXNzaW9uU3RhdGUuaCIKICNp
bmNsdWRlICJKU1B1c2hTdWJzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25DbGll
bnQuaCIKICNpbmNsdWRlICJQdXNoQ3J5cHRvLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKQEAgLTY1
LDExICs2NywxMSBAQCB2b2lkIFB1c2hNYW5hZ2VyOjpkZXJlZigpIGNvbnN0CiAgICAgbV9zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uLmRlcmVmKCk7CiB9CiAKLXZvaWQgUHVzaE1hbmFnZXI6OnN1
YnNjcmliZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBz
dGQ6Om9wdGlvbmFsPFB1c2hTdWJzY3JpcHRpb25PcHRpb25zSW5pdD4mJiBvcHRpb25zLCBET01Q
cm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFB1c2hTdWJzY3JpcHRpb24+PiYmIHByb21pc2Up
Cit2b2lkIFB1c2hNYW5hZ2VyOjpzdWJzY3JpYmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgc3RkOjpvcHRpb25hbDxQdXNoU3Vic2NyaXB0aW9uT3B0aW9uc0luaXQ+JiYgb3B0aW9u
cywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxQdXNoU3Vic2NyaXB0aW9uPj4mJiBw
cm9taXNlKQogewotICAgIFJFTEVBU0VfQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaXNT
ZWN1cmVDb250ZXh0KCkpOworICAgIFJFTEVBU0VfQVNTRVJUKGNvbnRleHQuaXNTZWN1cmVDb250
ZXh0KCkpOwogICAgIAotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuZXZlbnRMb29wKCkucXVl
dWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVm
IHsgKnRoaXMgfSwgb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyksIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXSgpIG11dGFibGUgeworICAgIGNvbnRleHQuZXZlbnRMb29wKCkucXVldWVUYXNr
KFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfSwgY29udGV4dCA9IFJlZiB7IGNvbnRleHQgfSwgb3B0aW9ucyA9IFdURk1vdmUob3B0aW9u
cyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11dGFibGUgewogICAgICAgICBpZiAo
IW9wdGlvbnMgfHwgIW9wdGlvbnMtPnVzZXJWaXNpYmxlT25seSkgewogICAgICAgICAgICAgcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiU3Vic2NyaWJpbmcgZm9y
IHB1c2ggcmVxdWlyZXMgdXNlclZpc2libGVPbmx5IHRvIGJlIHRydWUiX3MgfSk7CiAgICAgICAg
ICAgICByZXR1cm47CkBAIC0xMTEsMjIgKzExMyw2NiBAQCB2b2lkIFB1c2hNYW5hZ2VyOjpzdWJz
Y3JpYmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3Rk
OgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgYXV0byBjbGllbnQg
PSBjb250ZXh0LT5ub3RpZmljYXRpb25DbGllbnQoKTsKKyAgICAgICAgYXV0byBwZXJtaXNzaW9u
ID0gY2xpZW50ID8gY2xpZW50LT5jaGVja1Blcm1pc3Npb24oY29udGV4dC5wdHIoKSkgOiBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uOjpEZW5pZWQ7CisKKyAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0g
Tm90aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVuaWVkKSB7CisgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJVc2VyIGRlbmllZCBwdXNoIHBlcm1p
c3Npb24iX3MgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBp
ZiAocGVybWlzc2lvbiA9PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpEZWZhdWx0ICYmICFjb250
ZXh0LT5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IE5vdEFsbG93ZWRFcnJvciwgIlVzZXIgZGVuaWVkIHB1c2ggcGVybWlzc2lvbiJfcyB9KTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwZXJtaXNzaW9u
ID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlZmF1bHQpIHsKKyAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKGNsaWVudCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChjb250ZXh0LT5p
c0RvY3VtZW50KCkpOworCisgICAgICAgICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50Pihjb250
ZXh0LmdldCgpKS5pc1NhbWVPcmlnaW5Bc1RvcERvY3VtZW50KCkpIHsKKyAgICAgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJVc2VyIGRlbmll
ZCBwdXNoIHBlcm1pc3Npb24iX3MgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorCisjaWYgIVBMQVRGT1JNKFdJTl9DQUlSTykKKyAgICAgICAgICAgIC8vIFJlZiB7
ICp0aGlzIH0gdHJpZ2dlcnMgYSBjb21waWxlciBidWcgb24gd2luY2Fpcm8gd2hlcmUgaXQgdHJp
ZXMgdG8gcmVmIHRoZSBsYW1iZGEgaW5zdGVhZCBvZiBQdXNoTWFuYWdlci4KKyAgICAgICAgICAg
IGNsaWVudC0+cmVxdWVzdFBlcm1pc3Npb24oY29udGV4dCwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9LCBrZXlEYXRhID0ga2V5RGF0YVJlc3VsdC5yZWxlYXNlUmV0dXJuVmFs
dWUoKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcGVybWlzc2lvbikgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgaWYgKHBlcm1pc3Npb24gIT0gTm90aWZpY2F0aW9uUGVybWlz
c2lvbjo6R3JhbnRlZCkgeworICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNl
cHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJVc2VyIGRlbmllZCBwdXNoIHBlcm1pc3Npb24iX3Mg
fSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uc3Vic2NyaWJlVG9QdXNo
U2VydmljZShXVEZNb3ZlKGtleURhdGEpLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICAgICAgICAg
IH0pOworI2VuZGlmCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBS
RUxFQVNFX0FTU0VSVChwZXJtaXNzaW9uID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkdyYW50
ZWQpOwogICAgICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uc3Vic2NyaWJlVG9QdXNo
U2VydmljZShrZXlEYXRhUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKHByb21p
c2UpKTsKICAgICB9KTsKIH0KIAotdm9pZCBQdXNoTWFuYWdlcjo6Z2V0U3Vic2NyaXB0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIERPTVByb21pc2VE
ZWZlcnJlZDxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8UHVzaFN1YnNjcmlwdGlvbj4+PiYmIHBy
b21pc2UpCit2b2lkIFB1c2hNYW5hZ2VyOjpnZXRTdWJzY3JpcHRpb24oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgRE9NUHJvbWlzZURlZmVycmVkPElETE51bGxhYmxlPElETEludGVy
ZmFjZTxQdXNoU3Vic2NyaXB0aW9uPj4+JiYgcHJvbWlzZSkKIHsKLSAgICBzY3JpcHRFeGVjdXRp
b25Db250ZXh0LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXSgpIG11dGFibGUgeworICAgIGNvbnRleHQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRh
c2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CiAgICAgICAgIG1fc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbi5nZXRQdXNoU3Vic2NyaXB0aW9uKFdURk1vdmUocHJvbWlz
ZSkpOwogICAgIH0pOwogfQogCi12b2lkIFB1c2hNYW5hZ2VyOjpwZXJtaXNzaW9uU3RhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3RkOjpvcHRpb25h
bDxQdXNoU3Vic2NyaXB0aW9uT3B0aW9uc0luaXQ+JiYgb3B0aW9ucywgRE9NUHJvbWlzZURlZmVy
cmVkPElETEVudW1lcmF0aW9uPFB1c2hQZXJtaXNzaW9uU3RhdGU+PiYmIHByb21pc2UpCit2b2lk
IFB1c2hNYW5hZ2VyOjpwZXJtaXNzaW9uU3RhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgc3RkOjpvcHRpb25hbDxQdXNoU3Vic2NyaXB0aW9uT3B0aW9uc0luaXQ+JiYsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQdXNoUGVybWlzc2lvblN0YXRlPj4mJiBwcm9t
aXNlKQogewotICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKLSAgICBzY3JpcHRFeGVjdXRpb25D
b250ZXh0LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXSgpIG11dGFibGUgewotICAgICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uZ2V0
UHVzaFBlcm1pc3Npb25TdGF0ZShXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBjb250ZXh0LmV2ZW50
TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbY29udGV4dCA9IFJlZiB7
IGNvbnRleHQgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAg
ICAgIGF1dG8gY2xpZW50ID0gY29udGV4dC0+bm90aWZpY2F0aW9uQ2xpZW50KCk7CisgICAgICAg
IGF1dG8gcGVybWlzc2lvbiA9IGNsaWVudCA/IGNsaWVudC0+Y2hlY2tQZXJtaXNzaW9uKGNvbnRl
eHQucHRyKCkpIDogTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVuaWVkOworCisgICAgICAgIGlm
IChwZXJtaXNzaW9uID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlZmF1bHQpCisgICAgICAg
ICAgICBwcm9taXNlLnJlc29sdmUoUHVzaFBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0KTsKKyAgICAg
ICAgZWxzZSBpZiAocGVybWlzc2lvbiA9PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpHcmFudGVk
KQorICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFB1c2hQZXJtaXNzaW9uU3RhdGU6OkdyYW50
ZWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoUHVzaFBlcm1p
c3Npb25TdGF0ZTo6RGVuaWVkKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9X
ZWJQdXNoRGFlbW9uLm1tCmluZGV4IGFkZDZlM2Q4YWRmZWE4OTk4ODhmNGJhZjYxYWNjMDUzMTM2
M2RjYzUuLmFhMzQ1OGNlMjU2OTc2ODU5M2FjZmY1N2UwOWIzYzIyMmM4NzRhMDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KQEAgLTYxOCwxMiArNjE4LDEwIEBAIHZv
aWQgRGFlbW9uOjpnZXRQdXNoU3Vic2NyaXB0aW9uKENsaWVudENvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIGNvbnN0IFVSTCYgc2NvcGVVCiAKIHZvaWQgRGFlbW9uOjpnZXRQdXNoUGVybWlzc2lvblN0
YXRlKENsaWVudENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVUkwsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgRXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhj
ZXB0aW9uRGF0YT4mKT4mJiByZXBseVNlbmRlcikKIHsKLSAgICAvLyBGSVhNRQotI2lmIEhBVkUo
QVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQotICAgIHJlcGx5U2VuZGVyKHN0
YXRpY19jYXN0PHVpbnQ4X3Q+KFdlYkNvcmU6OlB1c2hQZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQp
KTsKLSNlbHNlCisgICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCBhY3R1YWxseSBnZXQgY2FsbGVk
IHJpZ2h0IG5vdywgc2luY2UgdGhlIHBlcm1pc3Npb24gaXMgY3VycmVudGx5IGNoZWNrZWQKKyAg
ICAvLyBpbiBXZWJQcm9jZXNzLiBIb3dldmVyLCB3ZSd2ZSBsZWZ0IHRoaXMgc3R1YiBpbiBmb3Ig
bm93IGJlY2F1c2UgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCB3ZQorICAgIC8vIHdpbGwgbW92ZSB0
aGUgcGVybWlzc2lvbiBjaGVjayBpbnRvIHdlYnB1c2hkIHdoZW4gc3VwcG9ydGluZyBvdGhlciBw
bGF0Zm9ybXMuCiAgICAgcmVwbHlTZW5kZXIoc3RhdGljX2Nhc3Q8dWludDhfdD4oV2ViQ29yZTo6
UHVzaFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKSk7Ci0jZW5kaWYKIH0KIAogQ2xpZW50Q29ubmVj
dGlvbiogRGFlbW9uOjp0b0NsaWVudENvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0
aW9uKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDk4MGQ3ZWFkYTc4ZWMyODFlOTk1YTM4ZmQ4MDJiNzdkOTQzZDExZDEuLjU0YmUwMWY0MGViOWQy
OTUwMWJlNjIwNTNmNWNkYWVmODAzM2VjNjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0wMi0xNiAgQmVuIE5o
YW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBIb29rIHVwIFB1c2hNYW5hZ2VyIHRvIHBl
cm1pc3Npb24gc3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNjczOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1hZGUgdGhlIFdlYlB1c2hEIEFQSSB0ZXN0cyB3b3JrIG5vdyB0aGF0IHN1YnNjcmli
ZSBjaGVja3MgZm9yIHBlcm1pc3Npb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW06CisKIDIwMjItMDItMTcgIEFkaXR5YSBLZWVy
dGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgICctd2Via2l0LXVzZXItc2VsZWN0
OiBhbGwnIGlzIG5vdCByZXNwZWN0ZWQgaW4gZWRpdGFibGUgdmlld3MKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbQppbmRl
eCBiN2IzNGI2Y2FhNTQ3YmUzMmEzNzYyOGNjZjFhY2RlZWM2ZjVkNjU5Li43YjkxMDI4ZGNhYWY4
MTJjODg5ZWNiNjkyN2YzYjU4OWM5NzVkYjMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tCkBAIC00MjYsNiArNDI2
LDEwIEBAIHByb3RlY3RlZDoKIAogICAgICAgICBtX25vdGlmaWNhdGlvbk1lc3NhZ2VIYW5kbGVy
ID0gYWRvcHROUyhbW05vdGlmaWNhdGlvblNjcmlwdE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0
XSk7CiAgICAgICAgIFtbbV9jb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRk
U2NyaXB0TWVzc2FnZUhhbmRsZXI6bV9ub3RpZmljYXRpb25NZXNzYWdlSGFuZGxlci5nZXQoKSBu
YW1lOkAibm90ZSJdOworCisgICAgICAgIG1fd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjptX2NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICAgICAgbV91aURlbGVnYXRlID0gYWRv
cHROUyhbW05vdGlmaWNhdGlvblBlcm1pc3Npb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAg
ICAgICBbbV93ZWJWaWV3IHNldFVJRGVsZWdhdGU6bV91aURlbGVnYXRlLmdldCgpXTsKICAgICB9
CiAKICAgICB2b2lkIGxvYWRSZXF1ZXN0KGNvbnN0IGNoYXIqIGh0bWxTb3VyY2UsIGNvbnN0IGNo
YXIqIHNlcnZpY2VXb3JrZXJTY3JpcHRTb3VyY2UpCkBAIC00NDAsNyArNDQ0LDYgQEAgcHJvdGVj
dGVkOgogICAgICAgICAgICAgeyAiL3N3LmpzIiwgeyB7IHsgIkNvbnRlbnQtVHlwZSIsICJhcHBs
aWNhdGlvbi9qYXZhc2NyaXB0IiB9IH0sIHNlcnZpY2VXb3JrZXJTY3JpcHRTb3VyY2UgfSB9CiAg
ICAgICAgIH0sIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwKSk7CiAK
LSAgICAgICAgbV93ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOm1fY29uZmlndXJh
dGlvbi5nZXQoKV0pOwogICAgICAgICBbbV93ZWJWaWV3IGxvYWRSZXF1ZXN0Om1fc2VydmVyLT5y
ZXF1ZXN0KCldOwogICAgIH0KIApAQCAtNDU2LDYgKzQ1OSw3IEBAIHByb3RlY3RlZDoKICAgICBS
ZXRhaW5QdHI8Tm90aWZpY2F0aW9uU2NyaXB0TWVzc2FnZUhhbmRsZXI+IG1fbm90aWZpY2F0aW9u
TWVzc2FnZUhhbmRsZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRlc3RXZWJLaXRBUEk6OkhUVFBT
ZXJ2ZXI+IG1fc2VydmVyOwogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IG1fd2ViVmlldzsKKyAg
ICBSZXRhaW5QdHI8aWQ8V0tVSURlbGVnYXRlUHJpdmF0ZT4+IG1fdWlEZWxlZ2F0ZTsKIH07CiAK
IGNsYXNzIFdlYlB1c2hESW5qZWN0ZWRQdXNoVGVzdCA6IHB1YmxpYyBXZWJQdXNoRFRlc3Qgewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGY2NjlmYjg2YjUyOTY1ZGMyZThkNWI0N2UxMWJhZGNhOGIxOWNmNTkuLmM0MDU4NDA5
NDk5MmM5NmVhODhiZDZhMGZmYmVjYjVkYjE5MjhiNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAor
MjAyMi0wMi0xNiAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBIb29rIHVw
IFB1c2hNYW5hZ2VyIHRvIHBlcm1pc3Npb24gc3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjczOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRoYXQgbWFrZSBzdXJlIHRoYXQg
UHVzaE1hbmFnZXIucGVybWlzc2lvblN0YXRlKCkgYW5kIFB1c2hNYW5hZ2VyLnN1YnNjcmliZSgp
CisgICAgICAgIHJlc3BlY3QgdGhlIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIGxldmVsIGZvciB0
aGUgY3VycmVudCBvcmlnaW4uCisKKyAgICAgICAgSSBtYWRlIHRoZXNlIHJlZ3VsYXIgdGVzdHMg
cmF0aGVyIHRoYW4gV1BUIHRlc3RzIGJlY2F1c2UgdGhlIFdQVCB0ZXN0IGhhcm5lc3MgY2FsbHMK
KyAgICAgICAgZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uIGF0IHRoZSB0b3Agb2YgaXRz
IHNldHVwIHNjcmlwdCAoaW4gdGVzdGhhcm5lc3NyZXBvcnQuanMpLCBhbmQKKyAgICAgICAgSSBk
aWRuJ3Qgd2FudCB0byBjaGFuZ2UgdGhhdCBmb3IgdGhpcyBwYXRjaC4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzOiBBZGRlZC4K
KyAgICAgICAgKGZpbmlzaFB1c2hBUElUZXN0KToKKyAgICAgICAgKHdhaXRGb3JTdGF0ZSk6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1j
cm9zcy1vcmlnaW4uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9y
ZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanM6IEFk
ZGVkLgorICAgICAgICAoYXN5bmMgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3RhdGUpOgor
ICAgICAgICAoYXN5bmMgdGVzdERvY3VtZW50UGVybWlzc2lvblN0YXRlKToKKyAgICAgICAgKGFz
eW5jIHRlc3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKToKKyAgICAgICAgKGFzeW5jIHRlc3REb2N1
bWVudFN1YnNjcmliZSk6CisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMv
c3Vic2NyaWJlLXdvcmtlci5qczogQWRkZWQuCisgICAgICAgIChhc3luYyBldmVudCk6CisgICAg
ICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2Ny
aWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQt
cGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1z
YW1lLW9yaWdpbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVz
aC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1
bHQtcGVybWlzc2lvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVy
bWlzc2lvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gt
YXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sx
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMjItMDItMTcgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0lGQ10gJ3ZlcnRpY2FsLWFsaWduOiBib3R0b20nIG1ha2VzIGlubGluZSBsZXZl
bCBib3hlcyBzdGljayBvdXQgb2YgdGhlaXIgcGFyZW50IGJsb2NrIGJveApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1w
cmUuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9wdXNoLWFw
aS10ZXN0LXByZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjhlNWQ3NDczZWE1YjdlMzc3YzRiNjZjODE3OGZk
ZTQxYmU5OTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNo
LWFwaS9yZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanMKQEAgLTAsMCArMSw0OSBAQAoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFB1c2hBUElU
ZXN0KCkKK3sKKyAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93
LnBhcmVudCAhPT0gd2luZG93KSB7CisgICAgICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2Uo
J2ZpbmlzaFB1c2hBUElUZXN0JywgJyonKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3JTdGF0ZSh3b3JrZXIsIHN0YXRlKQoreworICAgIGlmICgh
d29ya2VyIHx8IHdvcmtlci5zdGF0ZSA9PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiBQcm9t
aXNlLnJlamVjdChuZXcgRXJyb3IoJ3dhaXRfZm9yX3N0YXRlIG11c3QgYmUgcGFzc2VkIGEgU2Vy
dmljZVdvcmtlcicpKTsKKworICAgIGlmICh3b3JrZXIuc3RhdGUgPT09IHN0YXRlKQorICAgICAg
ICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN0YXRlKTsKKworICAgIHJldHVybiBuZXcgUHJvbWlz
ZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3Rh
dGVjaGFuZ2UnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZiAod29ya2VyLnN0YXRlID09PSBz
dGF0ZSkKKyAgICAgICAgICAgIHJlc29sdmUoc3RhdGUpOworICAgICAgICB9KTsKKyAgICB9KTsK
K30KKworZnVuY3Rpb24gbG9nKG1zZykKK3sKKyAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3Vu
ZGVmaW5lZCcgJiYgd2luZG93LnBhcmVudCAhPT0gd2luZG93KSB7CisgICAgICAgIHdpbmRvdy5w
YXJlbnQucG9zdE1lc3NhZ2UobXNnLCAnKicpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbGV0IGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAg
IGlmICghY29uc29sZSkgeworICAgICAgICBjb25zb2xlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgICAgICAgIGNvbnNvbGUuaWQgPSAiY29uc29sZSI7CisgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29uc29sZSk7CisgICAgfQorICAgIGxldCBzcGFuID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIHNwYW4uaW5uZXJIVE1MID0gbXNnICsg
Ijxicj4iOworICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoc3Bhbik7Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1l
LWNyb3NzLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNv
dXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1jcm9zcy1vcmlnaW4uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTBm
NTY5NDExZWQ0MmFhMzIwNzQxMzFlMDQ5ZTg0YWNkYjY1ZjkyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFt
ZS1jcm9zcy1vcmlnaW4uaHRtbApAQCAtMCwwICsxLDE4IEBACis8c2NyaXB0IHNyYz0icHVzaC1h
cGktdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1YnNjcmliZS10ZXN0cy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIo
InN1YnNjcmliZS13b3JrZXIuanMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4g
eworICAgIHRyeSB7CisgICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5z
dGFsbGluZywgImFjdGl2YXRlZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBl
cm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVz
dERvY3VtZW50UGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAg
ICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxv
d2VkRXJyb3InKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlKHJlZ2lzdHJh
dGlvbiwgJ05vdEFsbG93ZWRFcnJvcicpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgbG9n
KGBGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAke2V9YCk7CisgICAgfSBmaW5hbGx5IHsKKyAg
ICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgZmluaXNoUHVz
aEFQSVRlc3QoKTsKKyAgICB9Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2NyaWJlLWlmcmFtZS1zYW1lLW9y
aWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vi
c2NyaWJlLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwM2UxZjZiMjE2OTM1
ZDYyMDY0OGMyNjc1NTZiMTMyMTNlOTE2MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1lLXNhbWUtb3Jp
Z2luLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPHNjcmlwdCBzcmM9InB1c2gtYXBpLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdWJzY3JpYmUtdGVzdHMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJzdWJzY3JpYmUt
d29ya2VyLmpzIiwgeyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRpb24pID0+IHsKKyAgICB0cnkg
eworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICJh
Y3RpdmF0ZWQiKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3Rh
dGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFBl
cm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVz
dFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90QWxsb3dlZEVycm9yJyk7
CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24pOworICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgbG9nKGBGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAk
e2V9YCk7CisgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVn
aXN0ZXIoKTsKKyAgICAgICAgZmluaXNoUHVzaEFQSVRlc3QoKTsKKyAgICB9Cit9KTsKKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJj
ZXMvc3Vic2NyaWJlLXRlc3RzLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9y
ZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMTViNTZmYzczYjY1ZjBj
YjNmNGUwMzg2MmMyMWQ2ZDc5YWRmMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMKQEAgLTAsMCAr
MSw3MSBAQAorY29uc3QgVkFMSURfU0VSVkVSX0tFWSA9ICJCQTFIeHp5aTFSVU0xYjV3anhzbjdu
R3hBc3p3MnU2MW0xNjRpM01yQUl4SEY2WUs1aDRTRFlpYy1kUnVVX1JDUENmQTVhcTlvalN3azVZ
MkVtQ2xCUHMiOworCithc3luYyBmdW5jdGlvbiB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25T
dGF0ZShyZWdpc3RyYXRpb24sIGV4cGVjdGVkKQoreworICAgIGxldCBwcm9taXNlID0gbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSByZXNv
bHZlKTsKKyAgICByZWdpc3RyYXRpb24uYWN0aXZlLnBvc3RNZXNzYWdlKFsncGVybWlzc2lvblN0
YXRlJ10pOworICAgIGxldCBldmVudCA9IGF3YWl0IHByb21pc2U7CisgICAgbGV0IHJlc3VsdCA9
IGV2ZW50LmRhdGE7CisKKyAgICBpZiAocmVzdWx0ID09IGV4cGVjdGVkKQorICAgICAgICBsb2co
YFBBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMgJHtleHBlY3RlZH1gKTsK
KyAgICBlbHNlCisgICAgICAgIGxvZyhgRkFJTDogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0
YXRlIHNob3VsZCBiZSAke2V4cGVjdGVkfSwgYnV0IHdhcyAke3Jlc3VsdH1gKTsKK30KKworYXN5
bmMgZnVuY3Rpb24gdGVzdERvY3VtZW50UGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgZXhw
ZWN0ZWQpCit7CisgICAgbGV0IHN0YXRlID0gYXdhaXQgcmVnaXN0cmF0aW9uLnB1c2hNYW5hZ2Vy
LnBlcm1pc3Npb25TdGF0ZSgpOworCisgICAgaWYgKHN0YXRlID09IGV4cGVjdGVkKQorICAgICAg
ICBsb2coYFBBU1M6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMgJHtleHBlY3RlZH1gKTsK
KyAgICBlbHNlCisgICAgICAgIGxvZyhgRkFJTDogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHNo
b3VsZCBiZSAke2V4cGVjdGVkfSwgYnV0IHdhcyAke3N0YXRlfWApOworfQorCithc3luYyBmdW5j
dGlvbiB0ZXN0U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sIGRvbUV4Y2VwdGlv
bk5hbWUpCit7CisgICAgbGV0IGV4cGVjdGVkID0gZG9tRXhjZXB0aW9uTmFtZSA/IGBlcnJvcjog
JHtkb21FeGNlcHRpb25OYW1lfWAgOiAic3VjY2Vzc2Z1bCI7CisKKyAgICBsZXQgcHJvbWlzZSA9
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geyBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3Nh
Z2UgPSByZXNvbHZlOyB9KTsKKyAgICByZWdpc3RyYXRpb24uYWN0aXZlLnBvc3RNZXNzYWdlKFsn
c3Vic2NyaWJlJywgVkFMSURfU0VSVkVSX0tFWV0pOworICAgIGxldCBldmVudCA9IGF3YWl0IHBy
b21pc2U7CisgICAgbGV0IHJlc3VsdCA9IGV2ZW50LmRhdGE7CisKKyAgICBpZiAocmVzdWx0ID09
IGV4cGVjdGVkKQorICAgICAgICBsb2coYFBBU1M6IHNlcnZpY2Ugd29ya2VyIHN1YnNjcmliZSB3
YXMgJHtleHBlY3RlZH1gKTsKKyAgICBlbHNlCisgICAgICAgIGxvZyhgRkFJTDogc2VydmljZSB3
b3JrZXIgc3Vic2NyaWJlIHNob3VsZCBiZSAke2V4cGVjdGVkfSwgYnV0IHdhcyAke3Jlc3VsdH1g
KTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdERvY3VtZW50U3Vic2NyaWJlKHJlZ2lzdHJhdGlv
biwgZG9tRXhjZXB0aW9uTmFtZSkKK3sKKyAgICBsZXQgZXhwZWN0ZWQgPSBkb21FeGNlcHRpb25O
YW1lID8gYGVycm9yOiAke2RvbUV4Y2VwdGlvbk5hbWV9YCA6ICJzdWNjZXNzZnVsIjsKKyAgICBs
ZXQgcmVzdWx0ID0gbnVsbDsKKworICAgIGxldCBzdWJzY3JpcHRpb24gPSBudWxsOworICAgIHRy
eSB7CisgICAgICAgIC8vIFdpdGggZGVmYXVsdCBwZXJtaXNzaW9ucywgUHVzaE1hbmFnZXIgc2hv
dWxkIHJlcXVlc3QgcGVybWlzc2lvbiBmcm9tIFRlc3RDb250cm9sbGVyLgorICAgICAgICAvLyBU
ZXN0Q29udHJvbGxlciBhbHdheXMgY2FsbHMgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dEFsbG93IHNvIHRoaXMgc2hvdWxkIHN1Y2NlZWQuCisgICAgICAgIHN1YnNjcmlwdGlvbiA9IGF3
YWl0IHJlZ2lzdHJhdGlvbi5wdXNoTWFuYWdlci5zdWJzY3JpYmUoeworICAgICAgICAgICAgdXNl
clZpc2libGVPbmx5OiB0cnVlLAorICAgICAgICAgICAgYXBwbGljYXRpb25TZXJ2ZXJLZXk6IFZB
TElEX1NFUlZFUl9LRVkKKyAgICAgICAgfSk7CisgICAgICAgIHJlc3VsdCA9ICdzdWNjZXNzZnVs
JzsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIC8vIExheW91dCB0ZXN0cyBhcmVuJ3QgY29u
bmVjdGVkIHRvIHdlYnB1c2hkLCBzbyBzdWJzY3JpYmUgaXMgc3VjY2Vzc2Z1bCBpZiBpdCBnZXRz
IHRvIHRoZQorICAgICAgICAvLyBwb2ludCB3aGVyZSB3ZSBhdHRlbXB0IHRvIGNvbW11bmljYXRl
IHdpdGggd2VicHVzaGQgKGFuIEFib3J0RXJyb3IpLgorICAgICAgICBpZiAoZS5uYW1lID09ICdB
Ym9ydEVycm9yJykKKyAgICAgICAgICAgIHJlc3VsdCA9ICdzdWNjZXNzZnVsJzsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gJ2Vycm9yOiAnICsgKGUgPyBlLm5hbWUgOiBudWxs
KTsKKyAgICB9CisKKyAgICBpZiAoc3Vic2NyaXB0aW9uKQorICAgICAgICBhd2FpdCBzdWJzY3Jp
cHRpb24udW5zdWJzY3JpYmUoKTsKKworICAgIGlmIChyZXN1bHQgPT0gZXhwZWN0ZWQpCisgICAg
ICAgIGxvZyhgUEFTUzogZG9jdW1lbnQgc3Vic2NyaWJlIHdhcyAke2V4cGVjdGVkfWApOworICAg
IGVsc2UKKyAgICAgICAgbG9nKGBGQUlMOiBkb2N1bWVudCBzdWJzY3JpYmUgc2hvdWxkIGJlICR7
ZXhwZWN0ZWR9LCBidXQgd2FzICR7cmVzdWx0fWApOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3Vy
Y2VzL3N1YnNjcmliZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBp
L3Jlc291cmNlcy9zdWJzY3JpYmUtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZDBmN2Y3NWQxYzdl
ZWFhMWE0NWQwYTdjNDI2NmQ2Njg4MmQ0M2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtd29ya2VyLmpzCkBAIC0w
LDAgKzEsNDMgQEAKK2NvbnN0IFZBTElEX1NFUlZFUl9LRVkgPSAiQkExSHh6eWkxUlVNMWI1d2p4
c243bkd4QXN6dzJ1NjFtMTY0aTNNckFJeEhGNllLNWg0U0RZaWMtZFJ1VV9SQ1BDZkE1YXE5b2pT
d2s1WTJFbUNsQlBzIjsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgYXN5bmMg
KGV2ZW50KSA9PiB7CisgICAgbGV0IFtvcCwgLi4uYXJnc10gPSBldmVudC5kYXRhOworCisgICAg
aWYgKG9wID09ICdwZXJtaXNzaW9uU3RhdGUnKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAg
ICBsZXQgc3RhdGUgPSBhd2FpdCBzZWxmLnJlZ2lzdHJhdGlvbi5wdXNoTWFuYWdlci5wZXJtaXNz
aW9uU3RhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShzdGF0ZSk7
CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVz
c2FnZSgiZXJyb3I6ICIgKyBlKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAob3AgPT0gJ3N1
YnNjcmliZScpIHsKKyAgICAgICAgbGV0IHN1YnNjcmlwdGlvbiA9IG51bGw7CisgICAgICAgIGxl
dCByZXN1bHQgPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdWJzY3JpcHRp
b24gPSBhd2FpdCBzZWxmLnJlZ2lzdHJhdGlvbi5wdXNoTWFuYWdlci5zdWJzY3JpYmUoeworICAg
ICAgICAgICAgICAgIHVzZXJWaXNpYmxlT25seTogdHJ1ZSwKKyAgICAgICAgICAgICAgICBhcHBs
aWNhdGlvblNlcnZlcktleTogYXJnc1swXQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBp
ZiAoc3Vic2NyaXB0aW9uKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJzdWNjZXNzZnVsIjsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAiZXJyb3I6IG51bGwg
c3Vic2NyaXB0aW9uIjsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgaWYgKCFl
KQorICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJlcnJvcjogbnVsbCBleGNlcHRpb24iOworICAg
ICAgICAgICAgZWxzZSBpZiAoZS5uYW1lID09ICdBYm9ydEVycm9yJykKKyAgICAgICAgICAgICAg
ICAvLyBMYXlvdXQgdGVzdHMgY3VycmVudGx5IGFyZW4ndCBjb25uZWN0ZWQgdG8gd2VicHVzaGQu
IFNvIGlmIHdlIGZhaWwgd2l0aCBhbiBBYm9ydEVycm9yCisgICAgICAgICAgICAgICAgLy8gd2hl
biB0cnlpbmcgdG8gY29ubmVjdCB0byB3ZWJwdXNoZCwgd2UgY291bnQgdGhhdCBhcyBhIHN1Y2Nl
c3NmdWwgc3Vic2NyaXB0aW9uIGZvcgorICAgICAgICAgICAgICAgIC8vIHRlc3RpbmcgcHVycG9z
ZXMuCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gInN1Y2Nlc3NmdWwiOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJlcnJvcjogIiArIGUubmFtZTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmIChzdWJzY3JpcHRpb24pCisgICAgICAgICAgICBhd2FpdCBzdWJz
Y3JpcHRpb24udW5zdWJzY3JpYmUoKTsKKworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3Nh
Z2UocmVzdWx0KTsKKyAgICB9Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNz
aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZiMTY0MDJlYmIwMzhhZTRlMTgzZjEzNTRj
ZmQzMGE1YWY1MWNlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorUEFTUzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0YXRlIHdhcyBwcm9t
cHQKK1BBU1M6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJvbXB0CitQQVNTOiBzZXJ2
aWNlIHdvcmtlciBzdWJzY3JpYmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IKK1BBU1M6IGRv
Y3VtZW50IHN1YnNjcmliZSB3YXMgc3VjY2Vzc2Z1bAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFt
ZS1jcm9zcy1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNo
LWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzhlYmJhZjRmOTgzYzM2ZWIwNmNmYzBiZTIxY2NiYjhm
YTIyMDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lv
blN0YXRlIHdhcyBwcm9tcHQKK1BBU1M6IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJv
bXB0CitQQVNTOiBzZXJ2aWNlIHdvcmtlciBzdWJzY3JpYmUgd2FzIGVycm9yOiBOb3RBbGxvd2Vk
RXJyb3IKK1BBU1M6IGRvY3VtZW50IHN1YnNjcmliZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJv
cgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmli
ZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZy
YW1lLWNyb3NzLW9yaWdpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzZDVlYmI0YmEwNDk2NmUwNGJmZGJh
NGFhMDhjY2QzZjZkNWFhOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1v
cmlnaW4uaHRtbApAQCAtMCwwICsxLDE3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+Cit3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBp
ZiAoZXZlbnQuZGF0YSA9PSAnZmluaXNoUHVzaEFQSVRlc3QnKQorICAgICAgICBmaW5pc2hQdXNo
QVBJVGVzdCgpOworICAgIGVsc2UKKyAgICAgICAgbG9nKGV2ZW50LmRhdGEpOworfTsKKzwvc2Ny
aXB0PgorPGlmcmFtZSBzcmM9Imh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHVzaC1hcGkvcmVzb3Vy
Y2VzL3N1YnNjcmliZS1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwiPgorPC9pZnJhbWU+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBp
L3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0
LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTVlMzAxOWFmNjk2MzA0Mzg1ZmEwZWJiMjZiZTk3Y2QzMzZmNDhjNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVy
bWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
KworUEFTUzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0YXRlIHdhcyBwcm9tcHQKK1BBU1M6
IGRvY3VtZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJvbXB0CitQQVNTOiBzZXJ2aWNlIHdvcmtl
ciBzdWJzY3JpYmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IKK1BBU1M6IGRvY3VtZW50IHN1
YnNjcmliZSB3YXMgc3VjY2Vzc2Z1bAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9y
aWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVm
YXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDc5
N2UyOWMyNDQ1ZTU2ZmM2YjUwMTYzMjRiMzZkOGI1ZGYxMGQxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNz
aW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4uaHRtbApAQCAtMCwwICsxLDE3IEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQuZGF0YSA9PSAnZmluaXNoUHVzaEFQSVRlc3QnKQor
ICAgICAgICBmaW5pc2hQdXNoQVBJVGVzdCgpOworICAgIGVsc2UKKyAgICAgICAgbG9nKGV2ZW50
LmRhdGEpOworfTsKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9zdWJzY3JpYmUt
aWZyYW1lLXNhbWUtb3JpZ2luLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZh
dWx0LXBlcm1pc3Npb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjg0MmM3YzcxODI5
NjIxZTVlNmNkZThiOWU5NmY5Y2VhMmEyNDJlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMuaHRt
bApAQCAtMCwwICsxLDI0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wdXNoLWFwaS10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3N1YnNjcmliZS10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1YnNjcmliZS13
b3JrZXIuanMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4geworICAgIHRyeSB7
CisgICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgImFj
dGl2YXRlZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25TdGF0
ZShyZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50UGVy
bWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0
U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxvd2VkRXJyb3InKTsK
KyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlKHJlZ2lzdHJhdGlvbik7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICBsb2coYEZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICR7
ZX1gKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdp
c3RlcigpOworICAgICAgICBmaW5pc2hQdXNoQVBJVGVzdCgpOworICAgIH0KK30pOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0MTEyMzUyNTFiYjkyMTIyMzY5ODY4M2UzMDQ5NmNlZjIz
MmI5YWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBp
L3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K1BBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMgZGVuaWVkCitQQVNTOiBk
b2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIGRlbmllZAorUEFTUzogc2VydmljZSB3b3JrZXIg
c3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNTOiBkb2N1bWVudCBzdWJz
Y3JpYmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9u
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIzYzQxMWQ5MmE5Nzc1YTZlNGMwMzdjYjU4YWI5NTA2NTI1N2Y5
N2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
IHRlc3RSdW5uZXIuZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24od2luZG93Lm9yaWdpbik7
CisKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvc3Vic2NyaWJl
LXdvcmtlci5qcyIsIHsgfSkudGhlbihhc3luYyAocmVnaXN0cmF0aW9uKSA9PiB7CisgICAgdHJ5
IHsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAi
YWN0aXZhdGVkIik7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyUGVybWlzc2lvblN0
YXRlKHJlZ2lzdHJhdGlvbiwgJ2RlbmllZCcpOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRQ
ZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAnZGVuaWVkJyk7CisgICAgICAgIGF3YWl0IHRl
c3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93ZWRFcnJvcicp
OworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90
QWxsb3dlZEVycm9yJyk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBsb2coYEZBSUw6IHVu
ZXhwZWN0ZWQgZXhjZXB0aW9uICR7ZX1gKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgICBhd2Fp
dCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICBmaW5pc2hQdXNoQVBJVGVzdCgp
OworICAgIH0KK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9u
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmli
ZS1ncmFudC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E0YzgyODJlMDRh
Nzc1YWFkZjI0NmJiZjUwMjEyNjhjN2I1YThiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25T
dGF0ZSB3YXMgZ3JhbnRlZAorUEFTUzogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyBncmFu
dGVkCitQQVNTOiBzZXJ2aWNlIHdvcmtlciBzdWJzY3JpYmUgd2FzIHN1Y2Nlc3NmdWwKK1BBU1M6
IGRvY3VtZW50IHN1YnNjcmliZSB3YXMgc3VjY2Vzc2Z1bAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlz
c2lvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTM3MDFmZTE5MzA4YjMxZDFiY2JkMzg0NzRlMTMxNTMw
MTc0NWY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMuaHRtbApAQCAtMCwwICsxLDI3IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgdGVzdFJ1bm5lci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24od2luZG93Lm9y
aWdpbik7CisKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvc3Vi
c2NyaWJlLXdvcmtlci5qcyIsIHsgfSkudGhlbihhc3luYyAocmVnaXN0cmF0aW9uKSA9PiB7Cisg
ICAgdHJ5IHsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nLCAiYWN0aXZhdGVkIik7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyUGVybWlz
c2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ2dyYW50ZWQnKTsKKyAgICAgICAgYXdhaXQgdGVzdERv
Y3VtZW50UGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ2dyYW50ZWQnKTsKKyAgICAgICAg
YXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uKTsKKyAgICAgICAg
YXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlKHJlZ2lzdHJhdGlvbik7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBsb2coYEZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICR7ZX1gKTsKKyAg
ICB9IGZpbmFsbHkgeworICAgICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwor
ICAgICAgICBmaW5pc2hQdXNoQVBJVGVzdCgpOworICAgIH0KK30pOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDgyZjlkZmM3MWQyOTRmMGNiNDRlODgyM2ZmNzY4ZDM2YTNmZWY5NGYuLjRiYjNlODUxN2Q1
ZTgwMTM4NjZmODdlNTdkZGRmYTk0Njc5ZmRmNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODc1LDQgKzE4NzUsMTEgQEAgd2Via2l0Lm9yZy9iLzIx
NDI5MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdGV4dC90ZXh0LWVu
Y29kaW5nL3MKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2ZpbHRlci1lZmZl
Y3RzL3N2Zy1lbXB0eS1jb250YWluZXItd2l0aC1maWx0ZXItY29udGVudC1hZGRlZC5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL2VsZW1lbnQvbWFudWFsL2RyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMvaW1hZ2Ut
b3JpZW50YXRpb24vZHJhd0ltYWdlLXdpdGgtc3JjLXJlY3QudGVudGF0aXZlLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIFsgUmVsZWFzZSBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvZW1iZWRkZWQtY29udGVudC92aWRl
by1jb250cm9scy12ZXJ0aWNhbC13cml0aW5nLW1vZGUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvcHJlc2VydmUtdWEtaGVhZGVy
LW9uLXJlZGlyZWN0Lmh0bSBbIEZhaWx1cmUgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
K2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL3ByZXNlcnZlLXVhLWhlYWRlci1v
bi1yZWRpcmVjdC5odG0gWyBGYWlsdXJlIF0KKworIyBQdXNoIHN1YnNjcmlwdGlvbiB0ZXN0cyBm
YWlsIHdpdGhvdXQgcGxhdGZvcm0tc3BlY2lmaWMgUHVzaENyeXB0byBpbXBsZW1lbnRhdGlvbnMu
CitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFt
ZS1jcm9zcy1vcmlnaW4uaHRtbCBbIEZhaWx1cmUgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJz
Y3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4uaHRtbCBbIEZhaWx1
cmUgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy5o
dG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1p
c3Npb25zLmh0bWwgWyBGYWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdy
YW50LXBlcm1pc3Npb25zLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkZTQ2NTEwMDYwODlhYWIxNzlhZjRkY2U4
ODJkNTY2MDc5NTJhYzljLi43NzliMWNmZjM1YTJlNjQ4NjQ2NjY0MGFmN2RhYTVlZjY3ZDQyNDQw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xNzcyLDQgKzE3NzIsMTEgQEAgZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtYWx0ZXJu
YXRlLWlmcmFtZS1ib2R5LWRpci1hdHRyLWRvZXMtbm90LXVwZGF0ZS1zY3IKIFsgQmlnU3VyKyBh
cm02NCBdIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LW5ld2xpbmUtaW4tcXVvdGVkLWNvbnRl
bnQtY3Jhc2guaHRtbCBbIFNraXAgXQogWyBCaWdTdXIrIGFybTY0IF0gZWRpdGluZy9leGVjQ29t
bWFuZC9wYXN0ZS1hcy1xdW90YXRpb24tZGlzY29ubmVjdGVkLXBhcmFncmFwaC1hbmNlc3Rvci1j
cmFzaC5odG1sIFsgU2tpcCBdCiAKLXdlYmtpdC5vcmcvYi8yMzY1MzAgZmFzdC90ZXh0L290c3Zn
LWNhbnZhcy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQord2Via2l0Lm9yZy9iLzIzNjUzMCBmYXN0L3RleHQvb3RzdmctY2FudmFzLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KKworIyBQdXNoIHN1YnNjcmlwdGlvbiB0ZXN0cyBkb24ndCB3b3Jr
IHdpdGhvdXQgc2VydmljZSB3b3JrZXIgc3VwcG9ydC4KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vi
c2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sIFsgU2tp
cCBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlm
cmFtZS1zYW1lLW9yaWdpbi5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNj
cmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcHVzaC1h
cGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9w
dXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMuaHRtbCBbIFNraXAgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjNzFkZDUwMjIxNWFiODI3
M2FhMTJlODRlNGE5YWNhMzBiYjEyYzE3Li44MDdkNzY1NGZkMDQxYTdmNDcyYjQ0OGQ4ZGFiZDk5
ZjNlMTk2YWFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNDk5NSwzICs0OTk1LDEwIEBAIGZhc3QvdGV4dC9sb2NhbGUtc2hhcGluZy0zLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tl
ZC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS91c2VyQWdlbnRTaGFkb3dET00vZGVmYXVsdC1zcmMtb2JqZWN0LWRhdGEtdXJsLWJsb2Nr
ZWQyLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxv
Y2tlZDMuaHRtbCBbIEZhaWx1cmUgXQorCisjIFB1c2ggc3Vic2NyaXB0aW9uIHRlc3RzIGZhaWwg
d2l0aG91dCBwbGF0Zm9ybS1zcGVjaWZpYyBQdXNoQ3J5cHRvIGltcGxlbWVudGF0aW9ucy4KK2h0
dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNy
b3NzLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmli
ZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBd
CitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwg
WyBGYWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lv
bnMuaHRtbCBbIEZhaWx1cmUgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQt
cGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452590</attachid>
            <date>2022-02-18 15:48:44 -0800</date>
            <delta_ts>2022-02-18 19:44:33 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236739-20220218154843.patch</filename>
            <type>text/plain</type>
            <size>35368</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA4NTA5OTJmNDY1YWU1
Nzk4MTFiMDI0MzJlOGFlZDRkN2FjYWFkMC4uYWYzMTVkYzU1YzBiN2M5YWVjMzZjMDJlNDY2YTI1
ZTM2YzRlYzM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAyLTE2ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8g
cGVybWlzc2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgorCisg
ICAgICAgIFRoaXMgaW1wbGVtZW50cyBQdXNoTWFuYWdlci5wZXJtaXNzaW9uU3RhdGUuIEl0IHJl
dHVybnMgdGhlIHNhbWUgdmFsdWUgYXMKKyAgICAgICAgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24g
dGhyb3VnaCB0aGUgc2FtZSBtZWNoYW5pc20uCisKKyAgICAgICAgVGhpcyBhbHNvIG1ha2VzIFB1
c2hNYW5hZ2VyLnN1YnNjcmliZSByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciB0byBz
aG93IG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaWYgdGhlIHBlcm1pc3Npb24gaXMgaW4gdGhlIGRl
ZmF1bHQgc3RhdGUgYW5kIHRoZXNlIHJlcXVpcmVtZW50cyBhcmUgbWV0OgorCisgICAgICAgIDEu
IFRoZSBjYWxsZXIgaXMgYSBkb2N1bWVudCB3aXRoIHRoZSBzYW1lIG9yaWdpbiBhcyBhIHRvcCBs
ZXZlbCBkb2N1bWVudC4gVGhpcyBtZWFucyB0aGF0CisgICAgICAgICAgIGNyb3NzLW9yaWdpbiBp
ZnJhbWVzIGNhbm5vdCByZXF1ZXN0IHB1c2ggcGVybWlzc2lvbnMuIFRoaXMgbWF0Y2hlcyBDaHJv
bWUncyBiZWhhdmlvci4KKyAgICAgICAgMi4gVGhlIGNhbGxlciBjYW5ub3QgYmUgYSBzZXJ2aWNl
IHdvcmtlci4gVGhpcyBsaW1pdGF0aW9uIGlzIGFsbG93ZWQgZm9yIGJ5IHRoZSBzcGVjLgorCisg
ICAgICAgIFRoZXJlIGFsc28gbmVlZHMgdG8gYmUgc29tZSBjb2RlIGFkZGVkIHdoaWNoIHJlbW92
ZXMgYSBwdXNoIHN1YnNjcmlwdGlvbiBpZiB0aGUgdXNlciBkZWxldGVzCisgICAgICAgIHRoZSBz
dWJzY3JpcHRpb24gZW50aXJlbHkgaW4gdGhlIFVJLCBmb3IgaW5zdGFuY2Ugd2hlbiB0aGUgVUlQ
cm9jZXNzIGNhbGxzCisgICAgICAgIFdLTm90aWZpY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkUmVt
b3ZlTm90aWZpY2F0aW9uUG9saWNpZXMuIFRoYXQgd2lsbCBiZSBoYW5kbGVkIGluIGEKKyAgICAg
ICAgc2VwYXJhdGUgcGF0Y2guCisKKyAgICAgICAgQ292ZXJlZCBieSBuZXcgbGF5b3V0IHRlc3Rz
LgorCisgICAgICAgICogTW9kdWxlcy9wdXNoLWFwaS9QdXNoTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQdXNoTWFuYWdlcjo6c3Vic2NyaWJlKToKKyAgICAgICAgKFdlYkNvcmU6OlB1
c2hNYW5hZ2VyOjpnZXRTdWJzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UHVzaE1hbmFn
ZXI6OnBlcm1pc3Npb25TdGF0ZSk6CisKIDIwMjItMDItMTcgIFBhdHJpY2sgQW5nbGUgIDxwYW5n
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtGbGV4Ym94XSBBZGQgaW5k
aWNhdG9ycyBmb3IgbGF5b3V0IGNvbnRleHQgaW4gZWxlbWVudCB0b29sdGlwcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA5MjUyMDRkZDQxZTJiNDYwZWI0MDBiNDU1OGVlODg5ODAxYzQwZmE3Li41NTI1OTE3NDQ3M2Nh
MGE5MTZhMGMyNzMwYzQ5ODNlMWJmYjE1YjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIyLTAyLTE2ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEhvb2sgdXAg
UHVzaE1hbmFnZXIgdG8gcGVybWlzc2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJh
ZHkgRWlkc29uLgorCisgICAgICAgIFVwZGF0ZSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHdlIHN0
aWxsIGhhdmUgYSBwZXJtaXNzaW9uIHN0YXRlIHN0dWIgaW4gd2VicHVzaGQuCisKKyAgICAgICAg
KiB3ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tOgorICAgICAgICAoV2ViUHVzaEQ6OkRhZW1vbjo6
Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZSk6CisKIDIwMjItMDItMTcgIERpZWdvIFBpbm8gR2FyY2lh
ICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBEZWJpYW4gU3RhYmxlIGJ1aWxk
IGlzIGJyb2tlbiBhZnRlciByMjkwMDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVz
aC1hcGkvUHVzaE1hbmFnZXIuY3BwCmluZGV4IDRjNzE1NjJjZDA0NjQ3YjEwNzc4NDQ5NTFhZTJl
N2U4YTdjNWFjMTUuLjgyZTQzNmUxNjY2MzJhOGU3M2Q1ODA4NDhkNjY5OTFkYWJmYmQwZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaE1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaE1hbmFnZXIuY3BwCkBA
IC0yOCwxMCArMjgsMTIgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTUHVzaFBlcm1pc3Npb25TdGF0ZS5oIgogI2luY2x1
ZGUgIkpTUHVzaFN1YnNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNsaWVudC5o
IgogI2luY2x1ZGUgIlB1c2hDcnlwdG8uaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIgpAQCAtNjUsMTEg
KzY3LDExIEBAIHZvaWQgUHVzaE1hbmFnZXI6OmRlcmVmKCkgY29uc3QKICAgICBtX3NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24uZGVyZWYoKTsKIH0KIAotdm9pZCBQdXNoTWFuYWdlcjo6c3Vic2Ny
aWJlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHN0ZDo6
b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJbml0PiYmIG9wdGlvbnMsIERPTVByb21p
c2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8UHVzaFN1YnNjcmlwdGlvbj4+JiYgcHJvbWlzZSkKK3Zv
aWQgUHVzaE1hbmFnZXI6OnN1YnNjcmliZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBzdGQ6Om9wdGlvbmFsPFB1c2hTdWJzY3JpcHRpb25PcHRpb25zSW5pdD4mJiBvcHRpb25zLCBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFB1c2hTdWJzY3JpcHRpb24+PiYmIHByb21p
c2UpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5pc1NlY3Vy
ZUNvbnRleHQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoY29udGV4dC5pc1NlY3VyZUNvbnRleHQo
KSk7CiAgICAgCi0gICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRh
c2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAq
dGhpcyB9LCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKCkgbXV0YWJsZSB7CisgICAgY29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFz
a1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
LCBjb250ZXh0ID0gUmVmIHsgY29udGV4dCB9LCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghb3B0
aW9ucyB8fCAhb3B0aW9ucy0+dXNlclZpc2libGVPbmx5KSB7CiAgICAgICAgICAgICBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJTdWJzY3JpYmluZyBmb3IgcHVz
aCByZXF1aXJlcyB1c2VyVmlzaWJsZU9ubHkgdG8gYmUgdHJ1ZSJfcyB9KTsKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTExMSwyMiArMTEzLDY4IEBAIHZvaWQgUHVzaE1hbmFnZXI6OnN1YnNjcmli
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGQ6CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICBhdXRvIGNsaWVudCA9IGNv
bnRleHQtPm5vdGlmaWNhdGlvbkNsaWVudCgpOworICAgICAgICBhdXRvIHBlcm1pc3Npb24gPSBj
bGllbnQgPyBjbGllbnQtPmNoZWNrUGVybWlzc2lvbihjb250ZXh0LnB0cigpKSA6IE5vdGlmaWNh
dGlvblBlcm1pc3Npb246OkRlbmllZDsKKworICAgICAgICBpZiAocGVybWlzc2lvbiA9PSBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uOjpEZW5pZWQpIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlVzZXIgZGVuaWVkIHB1c2ggcGVybWlzc2lv
biJfcyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChw
ZXJtaXNzaW9uID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlZmF1bHQgJiYgIWNvbnRleHQt
PmlzRG9jdW1lbnQoKSkgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
Tm90QWxsb3dlZEVycm9yLCAiVXNlciBkZW5pZWQgcHVzaCBwZXJtaXNzaW9uIl9zIH0pOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0g
Tm90aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVmYXVsdCkgeworICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQoY2xpZW50KTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNvbnRleHQtPmlzRG9j
dW1lbnQoKSk7CisKKyAgICAgICAgICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQu
Z2V0KCkpLmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSkgeworICAgICAgICAgICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIkNhbm5vdCByZXF1ZXN0
IHBlcm1pc3Npb24gZnJvbSBjcm9zcy1vcmlnaW4gaWZyYW1lIl9zIH0pOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2xpZW50LT5yZXF1ZXN0
UGVybWlzc2lvbihjb250ZXh0LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVj
dGVkVGhpcyksIGtleURhdGEgPSBrZXlEYXRhUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byBwZXJtaXNzaW9uKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgICAgICBpZiAocGVybWlzc2lvbiAhPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpH
cmFudGVkKSB7CisgICAgICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdEFsbG93ZWRFcnJvciwgIlVzZXIgZGVuaWVkIHB1c2ggcGVybWlzc2lvbiJfcyB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5zdWJzY3JpYmVUb1B1c2hTZXJ2aWNl
KFdURk1vdmUoa2V5RGF0YSksIFdURk1vdmUocHJvbWlzZSkpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBSRUxFQVNFX0FTU0VSVChw
ZXJtaXNzaW9uID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkdyYW50ZWQpOwogICAgICAgICBt
X3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uc3Vic2NyaWJlVG9QdXNoU2VydmljZShrZXlEYXRh
UmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKHByb21pc2UpKTsKICAgICB9KTsK
IH0KIAotdm9pZCBQdXNoTWFuYWdlcjo6Z2V0U3Vic2NyaXB0aW9uKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIERPTVByb21pc2VEZWZlcnJlZDxJRExOdWxs
YWJsZTxJRExJbnRlcmZhY2U8UHVzaFN1YnNjcmlwdGlvbj4+PiYmIHByb21pc2UpCit2b2lkIFB1
c2hNYW5hZ2VyOjpnZXRTdWJzY3JpcHRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgRE9NUHJvbWlzZURlZmVycmVkPElETE51bGxhYmxlPElETEludGVyZmFjZTxQdXNoU3Vic2Ny
aXB0aW9uPj4+JiYgcHJvbWlzZSkKIHsKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LmV2ZW50
TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11dGFi
bGUgeworICAgIGNvbnRleHQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdv
cmtpbmcsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CiAgICAgICAgIG1fc2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbi5nZXRQdXNoU3Vic2NyaXB0aW9uKFdURk1vdmUocHJvbWlzZSkpOwogICAgIH0pOwog
fQogCi12b2lkIFB1c2hNYW5hZ2VyOjpwZXJtaXNzaW9uU3RhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3RkOjpvcHRpb25hbDxQdXNoU3Vic2NyaXB0
aW9uT3B0aW9uc0luaXQ+JiYgb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETEVudW1lcmF0
aW9uPFB1c2hQZXJtaXNzaW9uU3RhdGU+PiYmIHByb21pc2UpCit2b2lkIFB1c2hNYW5hZ2VyOjpw
ZXJtaXNzaW9uU3RhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjpvcHRp
b25hbDxQdXNoU3Vic2NyaXB0aW9uT3B0aW9uc0luaXQ+JiYsIERPTVByb21pc2VEZWZlcnJlZDxJ
RExFbnVtZXJhdGlvbjxQdXNoUGVybWlzc2lvblN0YXRlPj4mJiBwcm9taXNlKQogewotICAgIFVO
VVNFRF9QQVJBTShvcHRpb25zKTsKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LmV2ZW50TG9v
cCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11dGFibGUg
ewotICAgICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uZ2V0UHVzaFBlcm1pc3Npb25T
dGF0ZShXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBjb250ZXh0LmV2ZW50TG9vcCgpLnF1ZXVlVGFz
ayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbY29udGV4dCA9IFJlZiB7IGNvbnRleHQgfSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gY2xpZW50
ID0gY29udGV4dC0+bm90aWZpY2F0aW9uQ2xpZW50KCk7CisgICAgICAgIGF1dG8gcGVybWlzc2lv
biA9IGNsaWVudCA/IGNsaWVudC0+Y2hlY2tQZXJtaXNzaW9uKGNvbnRleHQucHRyKCkpIDogTm90
aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVuaWVkOworCisgICAgICAgIHN3aXRjaCAocGVybWlzc2lv
bikgeworICAgICAgICBjYXNlIE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlZmF1bHQ6CisgICAg
ICAgICAgICBwcm9taXNlLnJlc29sdmUoUHVzaFBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0KTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vdGlmaWNhdGlvblBlcm1pc3Npb246Okdy
YW50ZWQ6CisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoUHVzaFBlcm1pc3Npb25TdGF0ZTo6
R3JhbnRlZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHByb21pc2UucmVzb2x2ZShQdXNoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNo
ZC9XZWJQdXNoRGFlbW9uLm1tCmluZGV4IGFkZDZlM2Q4YWRmZWE4OTk4ODhmNGJhZjYxYWNjMDUz
MTM2M2RjYzUuLmFhMzQ1OGNlMjU2OTc2ODU5M2FjZmY1N2UwOWIzYzIyMmM4NzRhMDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KQEAgLTYxOCwxMiArNjE4LDEwIEBA
IHZvaWQgRGFlbW9uOjpnZXRQdXNoU3Vic2NyaXB0aW9uKENsaWVudENvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVCiAKIHZvaWQgRGFlbW9uOjpnZXRQdXNoUGVybWlzc2lv
blN0YXRlKENsaWVudENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVUkws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgRXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4mKT4mJiByZXBseVNlbmRlcikKIHsKLSAgICAvLyBGSVhNRQotI2lmIEhB
VkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQotICAgIHJlcGx5U2VuZGVy
KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFdlYkNvcmU6OlB1c2hQZXJtaXNzaW9uU3RhdGU6OkdyYW50
ZWQpKTsKLSNlbHNlCisgICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCBhY3R1YWxseSBnZXQgY2Fs
bGVkIHJpZ2h0IG5vdywgc2luY2UgdGhlIHBlcm1pc3Npb24gaXMgY3VycmVudGx5IGNoZWNrZWQK
KyAgICAvLyBpbiBXZWJQcm9jZXNzLiBIb3dldmVyLCB3ZSd2ZSBsZWZ0IHRoaXMgc3R1YiBpbiBm
b3Igbm93IGJlY2F1c2UgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCB3ZQorICAgIC8vIHdpbGwgbW92
ZSB0aGUgcGVybWlzc2lvbiBjaGVjayBpbnRvIHdlYnB1c2hkIHdoZW4gc3VwcG9ydGluZyBvdGhl
ciBwbGF0Zm9ybXMuCiAgICAgcmVwbHlTZW5kZXIoc3RhdGljX2Nhc3Q8dWludDhfdD4oV2ViQ29y
ZTo6UHVzaFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKSk7Ci0jZW5kaWYKIH0KIAogQ2xpZW50Q29u
bmVjdGlvbiogRGFlbW9uOjp0b0NsaWVudENvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rpb25fdCBjb25u
ZWN0aW9uKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDk4MGQ3ZWFkYTc4ZWMyODFlOTk1YTM4ZmQ4MDJiNzdkOTQzZDExZDEuLmM1ZmVlNTgyNDY4
OGMyOTA1YzI5Y2YyYjJkM2RmYzk0MmY2MzMyNjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0wMi0xNiAgQmVu
IE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBIb29rIHVwIFB1c2hNYW5hZ2VyIHRv
IHBlcm1pc3Npb24gc3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNjczOQorCisgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKwor
ICAgICAgICBNYWRlIHRoZSBXZWJQdXNoRCBBUEkgdGVzdHMgd29yayBub3cgdGhhdCBzdWJzY3Jp
YmUgY2hlY2tzIGZvciBwZXJtaXNzaW9uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tOgorCiAyMDIyLTAyLTE3ICBBZGl0eWEgS2Vl
cnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICAnLXdlYmtpdC11c2VyLXNlbGVj
dDogYWxsJyBpcyBub3QgcmVzcGVjdGVkIGluIGVkaXRhYmxlIHZpZXdzCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0KaW5k
ZXggYjdiMzRiNmNhYTU0N2JlMzJhMzc2MjhjY2YxYWNkZWVjNmY1ZDY1OS4uN2I5MTAyOGRjYWFm
ODEyYzg4OWVjYjY5MjdmM2I1ODljOTc1ZGIzMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbQpAQCAtNDI2LDYgKzQy
NiwxMCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgbV9ub3RpZmljYXRpb25NZXNzYWdlSGFuZGxl
ciA9IGFkb3B0TlMoW1tOb3RpZmljYXRpb25TY3JpcHRNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5p
dF0pOwogICAgICAgICBbW21fY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFk
ZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1fbm90aWZpY2F0aW9uTWVzc2FnZUhhbmRsZXIuZ2V0KCkg
bmFtZTpAIm5vdGUiXTsKKworICAgICAgICBtX3dlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246bV9jb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgICAgIG1fdWlEZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAg
ICAgICAgW21fd2ViVmlldyBzZXRVSURlbGVnYXRlOm1fdWlEZWxlZ2F0ZS5nZXQoKV07CiAgICAg
fQogCiAgICAgdm9pZCBsb2FkUmVxdWVzdChjb25zdCBjaGFyKiBodG1sU291cmNlLCBjb25zdCBj
aGFyKiBzZXJ2aWNlV29ya2VyU2NyaXB0U291cmNlKQpAQCAtNDQwLDcgKzQ0NCw2IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgICAgIHsgIi9zdy5qcyIsIHsgeyB7ICJDb250ZW50LVR5cGUiLCAiYXBw
bGljYXRpb24vamF2YXNjcmlwdCIgfSB9LCBzZXJ2aWNlV29ya2VyU2NyaXB0U291cmNlIH0gfQog
ICAgICAgICB9LCBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cCkpOwog
Ci0gICAgICAgIG1fd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjptX2NvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKICAgICAgICAgW21fd2ViVmlldyBsb2FkUmVxdWVzdDptX3NlcnZlci0+
cmVxdWVzdCgpXTsKICAgICB9CiAKQEAgLTQ1Niw2ICs0NTksNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
UmV0YWluUHRyPE5vdGlmaWNhdGlvblNjcmlwdE1lc3NhZ2VIYW5kbGVyPiBtX25vdGlmaWNhdGlv
bk1lc3NhZ2VIYW5kbGVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXN0V2ViS2l0QVBJOjpIVFRQ
U2VydmVyPiBtX3NlcnZlcjsKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiBtX3dlYlZpZXc7Cisg
ICAgUmV0YWluUHRyPGlkPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PiBtX3VpRGVsZWdhdGU7CiB9Owog
CiBjbGFzcyBXZWJQdXNoREluamVjdGVkUHVzaFRlc3QgOiBwdWJsaWMgV2ViUHVzaERUZXN0IHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNjY5ZmI4NmI1Mjk2NWRjMmU4ZDViNDdlMTFiYWRjYThiMTljZjU5Li4yZjU1NTQ1
NTMwYzgxZjIxY2UwMmY2N2RlNzc2NWI0NGYyZjc4MDVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAK
KzIwMjItMDItMTYgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSG9vayB1
cCBQdXNoTWFuYWdlciB0byBwZXJtaXNzaW9uIHN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBC
cmFkeSBFaWRzb24uCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdGhhdCBtYWtlIHN1cmUgdGhhdCBQ
dXNoTWFuYWdlci5wZXJtaXNzaW9uU3RhdGUoKSBhbmQgUHVzaE1hbmFnZXIuc3Vic2NyaWJlKCkK
KyAgICAgICAgcmVzcGVjdCB0aGUgbm90aWZpY2F0aW9uIHBlcm1pc3Npb24gbGV2ZWwgZm9yIHRo
ZSBjdXJyZW50IG9yaWdpbi4KKworICAgICAgICBJIG1hZGUgdGhlc2UgcmVndWxhciB0ZXN0cyBy
YXRoZXIgdGhhbiBXUFQgdGVzdHMgYmVjYXVzZSB0aGUgV1BUIHRlc3QgaGFybmVzcyBjYWxscwor
ICAgICAgICBncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24gYXQgdGhlIHRvcCBvZiBpdHMg
c2V0dXAgc2NyaXB0IChpbiB0ZXN0aGFybmVzc3JlcG9ydC5qcyksIGFuZAorICAgICAgICBJIGRp
ZG4ndCB3YW50IHRvIGNoYW5nZSB0aGF0IGZvciB0aGlzIHBhdGNoLgorCisgICAgICAgICogaHR0
cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvcHVzaC1hcGktdGVzdC1wcmUuanM6IEFkZGVkLgor
ICAgICAgICAoZmluaXNoUHVzaEFQSVRlc3QpOgorICAgICAgICAod2FpdEZvclN0YXRlKToKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1lLWNy
b3NzLW9yaWdpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3Jl
c291cmNlcy9zdWJzY3JpYmUtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qczogQWRk
ZWQuCisgICAgICAgIChhc3luYyB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25TdGF0ZSk6Cisg
ICAgICAgIChhc3luYyB0ZXN0RG9jdW1lbnRQZXJtaXNzaW9uU3RhdGUpOgorICAgICAgICAoYXN5
bmMgdGVzdFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUpOgorICAgICAgICAoYXN5bmMgdGVzdERvY3Vt
ZW50U3Vic2NyaWJlKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9z
dWJzY3JpYmUtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzeW5jIGV2ZW50KToKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3Jp
YmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1w
ZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNh
bWUtb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNo
LWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4uaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVs
dC1wZXJtaXNzaW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBp
L3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJt
aXNzaW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1h
cGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAyMi0wMi0xNyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ11bSUZDXSAndmVydGljYWwtYWxpZ246IGJvdHRvbScgbWFrZXMgaW5saW5lIGxldmVs
IGJveGVzIHN0aWNrIG91dCBvZiB0aGVpciBwYXJlbnQgYmxvY2sgYm94CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9wdXNoLWFwaS10ZXN0LXBy
ZS5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3B1c2gtYXBp
LXRlc3QtcHJlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiOGU1ZDc0NzNlYTViN2UzNzdjNGI2NmM4MTc4ZmRl
NDFiZTk5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gt
YXBpL3Jlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcwpAQCAtMCwwICsxLDQ5IEBACitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gZmluaXNoUHVzaEFQSVRl
c3QoKQoreworICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cu
cGFyZW50ICE9PSB3aW5kb3cpIHsKKyAgICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgn
ZmluaXNoUHVzaEFQSVRlc3QnLCAnKicpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
K30KKworZnVuY3Rpb24gd2FpdEZvclN0YXRlKHdvcmtlciwgc3RhdGUpCit7CisgICAgaWYgKCF3
b3JrZXIgfHwgd29ya2VyLnN0YXRlID09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIFByb21p
c2UucmVqZWN0KG5ldyBFcnJvcignd2FpdF9mb3Jfc3RhdGUgbXVzdCBiZSBwYXNzZWQgYSBTZXJ2
aWNlV29ya2VyJykpOworCisgICAgaWYgKHdvcmtlci5zdGF0ZSA9PT0gc3RhdGUpCisgICAgICAg
IHJldHVybiBQcm9taXNlLnJlc29sdmUoc3RhdGUpOworCisgICAgcmV0dXJuIG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0
ZWNoYW5nZScsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmICh3b3JrZXIuc3RhdGUgPT09IHN0
YXRlKQorICAgICAgICAgICAgcmVzb2x2ZShzdGF0ZSk7CisgICAgICAgIH0pOworICAgIH0pOwor
fQorCitmdW5jdGlvbiBsb2cobXNnKQoreworICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5k
ZWZpbmVkJyAmJiB3aW5kb3cucGFyZW50ICE9PSB3aW5kb3cpIHsKKyAgICAgICAgd2luZG93LnBh
cmVudC5wb3N0TWVzc2FnZShtc2csICcqJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBsZXQgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7CisgICAg
aWYgKCFjb25zb2xlKSB7CisgICAgICAgIGNvbnNvbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKKyAgICAgICAgY29uc29sZS5pZCA9ICJjb25zb2xlIjsKKyAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChjb25zb2xlKTsKKyAgICB9CisgICAgbGV0IHNwYW4gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAi
PGJyPiI7CisgICAgY29uc29sZS5hcHBlbmRDaGlsZChzcGFuKTsKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJhbWUt
Y3Jvc3Mtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291
cmNlcy9zdWJzY3JpYmUtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5MGY1
Njk0MTFlZDQyYWEzMjA3NDEzMWUwNDllODRhY2RiNjVmOTIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1l
LWNyb3NzLW9yaWdpbi5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxzY3JpcHQgc3JjPSJwdXNoLWFw
aS10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vic2NyaWJlLXRlc3RzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcigi
c3Vic2NyaWJlLXdvcmtlci5qcyIsIHsgfSkudGhlbihhc3luYyAocmVnaXN0cmF0aW9uKSA9PiB7
CisgICAgdHJ5IHsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nLCAiYWN0aXZhdGVkIik7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyUGVy
bWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0
RG9jdW1lbnRQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAg
IGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93
ZWRFcnJvcicpOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0
aW9uLCAnTm90QWxsb3dlZEVycm9yJyk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBsb2co
YEZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICR7ZX1gKTsKKyAgICB9IGZpbmFsbHkgeworICAg
ICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICBmaW5pc2hQdXNo
QVBJVGVzdCgpOworICAgIH0KK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1lLXNhbWUtb3Jp
Z2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJz
Y3JpYmUtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjAzZTFmNmIyMTY5MzVk
NjIwNjQ4YzI2NzU1NmIxMzIxM2U5MTYyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJhbWUtc2FtZS1vcmln
aW4uaHRtbApAQCAtMCwwICsxLDE4IEBACis8c2NyaXB0IHNyYz0icHVzaC1hcGktdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1YnNjcmliZS10ZXN0cy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInN1YnNjcmliZS13
b3JrZXIuanMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4geworICAgIHRyeSB7
CisgICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgImFj
dGl2YXRlZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25TdGF0
ZShyZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50UGVy
bWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0
U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxvd2VkRXJyb3InKTsK
KyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlKHJlZ2lzdHJhdGlvbik7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICBsb2coYEZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICR7
ZX1gKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdp
c3RlcigpOworICAgICAgICBmaW5pc2hQdXNoQVBJVGVzdCgpOworICAgIH0KK30pOworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNl
cy9zdWJzY3JpYmUtdGVzdHMuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jl
c291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIxNWI1NmZjNzNiNjVmMGNi
M2Y0ZTAzODYyYzIxZDZkNzlhZGYxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcwpAQCAtMCwwICsx
LDcxIEBACitjb25zdCBWQUxJRF9TRVJWRVJfS0VZID0gIkJBMUh4enlpMVJVTTFiNXdqeHNuN25H
eEFzencydTYxbTE2NGkzTXJBSXhIRjZZSzVoNFNEWWljLWRSdVVfUkNQQ2ZBNWFxOW9qU3drNVky
RW1DbEJQcyI7CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RTZXJ2aWNlV29ya2VyUGVybWlzc2lvblN0
YXRlKHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWQpCit7CisgICAgbGV0IHByb21pc2UgPSBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IHJlc29s
dmUpOworICAgIHJlZ2lzdHJhdGlvbi5hY3RpdmUucG9zdE1lc3NhZ2UoWydwZXJtaXNzaW9uU3Rh
dGUnXSk7CisgICAgbGV0IGV2ZW50ID0gYXdhaXQgcHJvbWlzZTsKKyAgICBsZXQgcmVzdWx0ID0g
ZXZlbnQuZGF0YTsKKworICAgIGlmIChyZXN1bHQgPT0gZXhwZWN0ZWQpCisgICAgICAgIGxvZyhg
UEFTUzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0YXRlIHdhcyAke2V4cGVjdGVkfWApOwor
ICAgIGVsc2UKKyAgICAgICAgbG9nKGBGQUlMOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3Rh
dGUgc2hvdWxkIGJlICR7ZXhwZWN0ZWR9LCBidXQgd2FzICR7cmVzdWx0fWApOworfQorCithc3lu
YyBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCBleHBl
Y3RlZCkKK3sKKyAgICBsZXQgc3RhdGUgPSBhd2FpdCByZWdpc3RyYXRpb24ucHVzaE1hbmFnZXIu
cGVybWlzc2lvblN0YXRlKCk7CisKKyAgICBpZiAoc3RhdGUgPT0gZXhwZWN0ZWQpCisgICAgICAg
IGxvZyhgUEFTUzogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyAke2V4cGVjdGVkfWApOwor
ICAgIGVsc2UKKyAgICAgICAgbG9nKGBGQUlMOiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgc2hv
dWxkIGJlICR7ZXhwZWN0ZWR9LCBidXQgd2FzICR7c3RhdGV9YCk7Cit9CisKK2FzeW5jIGZ1bmN0
aW9uIHRlc3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgZG9tRXhjZXB0aW9u
TmFtZSkKK3sKKyAgICBsZXQgZXhwZWN0ZWQgPSBkb21FeGNlcHRpb25OYW1lID8gYGVycm9yOiAk
e2RvbUV4Y2VwdGlvbk5hbWV9YCA6ICJzdWNjZXNzZnVsIjsKKworICAgIGxldCBwcm9taXNlID0g
bmV3IFByb21pc2UocmVzb2x2ZSA9PiB7IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2Fn
ZSA9IHJlc29sdmU7IH0pOworICAgIHJlZ2lzdHJhdGlvbi5hY3RpdmUucG9zdE1lc3NhZ2UoWydz
dWJzY3JpYmUnLCBWQUxJRF9TRVJWRVJfS0VZXSk7CisgICAgbGV0IGV2ZW50ID0gYXdhaXQgcHJv
bWlzZTsKKyAgICBsZXQgcmVzdWx0ID0gZXZlbnQuZGF0YTsKKworICAgIGlmIChyZXN1bHQgPT0g
ZXhwZWN0ZWQpCisgICAgICAgIGxvZyhgUEFTUzogc2VydmljZSB3b3JrZXIgc3Vic2NyaWJlIHdh
cyAke2V4cGVjdGVkfWApOworICAgIGVsc2UKKyAgICAgICAgbG9nKGBGQUlMOiBzZXJ2aWNlIHdv
cmtlciBzdWJzY3JpYmUgc2hvdWxkIGJlICR7ZXhwZWN0ZWR9LCBidXQgd2FzICR7cmVzdWx0fWAp
OworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9u
LCBkb21FeGNlcHRpb25OYW1lKQoreworICAgIGxldCBleHBlY3RlZCA9IGRvbUV4Y2VwdGlvbk5h
bWUgPyBgZXJyb3I6ICR7ZG9tRXhjZXB0aW9uTmFtZX1gIDogInN1Y2Nlc3NmdWwiOworICAgIGxl
dCByZXN1bHQgPSBudWxsOworCisgICAgbGV0IHN1YnNjcmlwdGlvbiA9IG51bGw7CisgICAgdHJ5
IHsKKyAgICAgICAgLy8gV2l0aCBkZWZhdWx0IHBlcm1pc3Npb25zLCBQdXNoTWFuYWdlciBzaG91
bGQgcmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gVGVzdENvbnRyb2xsZXIuCisgICAgICAgIC8vIFRl
c3RDb250cm9sbGVyIGFsd2F5cyBjYWxscyBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
QWxsb3cgc28gdGhpcyBzaG91bGQgc3VjY2VlZC4KKyAgICAgICAgc3Vic2NyaXB0aW9uID0gYXdh
aXQgcmVnaXN0cmF0aW9uLnB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7CisgICAgICAgICAgICB1c2Vy
VmlzaWJsZU9ubHk6IHRydWUsCisgICAgICAgICAgICBhcHBsaWNhdGlvblNlcnZlcktleTogVkFM
SURfU0VSVkVSX0tFWQorICAgICAgICB9KTsKKyAgICAgICAgcmVzdWx0ID0gJ3N1Y2Nlc3NmdWwn
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgLy8gTGF5b3V0IHRlc3RzIGFyZW4ndCBjb25u
ZWN0ZWQgdG8gd2VicHVzaGQsIHNvIHN1YnNjcmliZSBpcyBzdWNjZXNzZnVsIGlmIGl0IGdldHMg
dG8gdGhlCisgICAgICAgIC8vIHBvaW50IHdoZXJlIHdlIGF0dGVtcHQgdG8gY29tbXVuaWNhdGUg
d2l0aCB3ZWJwdXNoZCAoYW4gQWJvcnRFcnJvcikuCisgICAgICAgIGlmIChlLm5hbWUgPT0gJ0Fi
b3J0RXJyb3InKQorICAgICAgICAgICAgcmVzdWx0ID0gJ3N1Y2Nlc3NmdWwnOworICAgICAgICBl
bHNlCisgICAgICAgICAgICByZXN1bHQgPSAnZXJyb3I6ICcgKyAoZSA/IGUubmFtZSA6IG51bGwp
OworICAgIH0KKworICAgIGlmIChzdWJzY3JpcHRpb24pCisgICAgICAgIGF3YWl0IHN1YnNjcmlw
dGlvbi51bnN1YnNjcmliZSgpOworCisgICAgaWYgKHJlc3VsdCA9PSBleHBlY3RlZCkKKyAgICAg
ICAgbG9nKGBQQVNTOiBkb2N1bWVudCBzdWJzY3JpYmUgd2FzICR7ZXhwZWN0ZWR9YCk7CisgICAg
ZWxzZQorICAgICAgICBsb2coYEZBSUw6IGRvY3VtZW50IHN1YnNjcmliZSBzaG91bGQgYmUgJHtl
eHBlY3RlZH0sIGJ1dCB3YXMgJHtyZXN1bHR9YCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJj
ZXMvc3Vic2NyaWJlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkv
cmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBkMGY3Zjc1ZDFjN2Vl
YWExYTQ1ZDBhN2M0MjY2ZDY2ODgyZDQzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanMKQEAgLTAs
MCArMSw0MyBAQAorY29uc3QgVkFMSURfU0VSVkVSX0tFWSA9ICJCQTFIeHp5aTFSVU0xYjV3anhz
bjduR3hBc3p3MnU2MW0xNjRpM01yQUl4SEY2WUs1aDRTRFlpYy1kUnVVX1JDUENmQTVhcTlvalN3
azVZMkVtQ2xCUHMiOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBhc3luYyAo
ZXZlbnQpID0+IHsKKyAgICBsZXQgW29wLCAuLi5hcmdzXSA9IGV2ZW50LmRhdGE7CisKKyAgICBp
ZiAob3AgPT0gJ3Blcm1pc3Npb25TdGF0ZScpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAg
IGxldCBzdGF0ZSA9IGF3YWl0IHNlbGYucmVnaXN0cmF0aW9uLnB1c2hNYW5hZ2VyLnBlcm1pc3Np
b25TdGF0ZSgpOworICAgICAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKHN0YXRlKTsK
KyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNz
YWdlKCJlcnJvcjogIiArIGUpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChvcCA9PSAnc3Vi
c2NyaWJlJykgeworICAgICAgICBsZXQgc3Vic2NyaXB0aW9uID0gbnVsbDsKKyAgICAgICAgbGV0
IHJlc3VsdCA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN1YnNjcmlwdGlv
biA9IGF3YWl0IHNlbGYucmVnaXN0cmF0aW9uLnB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7CisgICAg
ICAgICAgICAgICAgdXNlclZpc2libGVPbmx5OiB0cnVlLAorICAgICAgICAgICAgICAgIGFwcGxp
Y2F0aW9uU2VydmVyS2V5OiBhcmdzWzBdCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGlm
IChzdWJzY3JpcHRpb24pCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gInN1Y2Nlc3NmdWwiOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJlcnJvcjogbnVsbCBz
dWJzY3JpcHRpb24iOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICBpZiAoIWUp
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gImVycm9yOiBudWxsIGV4Y2VwdGlvbiI7CisgICAg
ICAgICAgICBlbHNlIGlmIChlLm5hbWUgPT0gJ0Fib3J0RXJyb3InKQorICAgICAgICAgICAgICAg
IC8vIExheW91dCB0ZXN0cyBjdXJyZW50bHkgYXJlbid0IGNvbm5lY3RlZCB0byB3ZWJwdXNoZC4g
U28gaWYgd2UgZmFpbCB3aXRoIGFuIEFib3J0RXJyb3IKKyAgICAgICAgICAgICAgICAvLyB3aGVu
IHRyeWluZyB0byBjb25uZWN0IHRvIHdlYnB1c2hkLCB3ZSBjb3VudCB0aGF0IGFzIGEgc3VjY2Vz
c2Z1bCBzdWJzY3JpcHRpb24gZm9yCisgICAgICAgICAgICAgICAgLy8gdGVzdGluZyBwdXJwb3Nl
cy4KKyAgICAgICAgICAgICAgICByZXN1bHQgPSAic3VjY2Vzc2Z1bCI7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gImVycm9yOiAiICsgZS5uYW1lOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKHN1YnNjcmlwdGlvbikKKyAgICAgICAgICAgIGF3YWl0IHN1YnNj
cmlwdGlvbi51bnN1YnNjcmliZSgpOworCisgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2Fn
ZShyZXN1bHQpOworICAgIH0KK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Np
b25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmIxNjQwMmViYjAzOGFlNGUxODNmMTM1NGNm
ZDMwYTVhZjUxY2U0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
dXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21w
dAorUEFTUzogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyBwcm9tcHQKK1BBU1M6IHNlcnZp
Y2Ugd29ya2VyIHN1YnNjcmliZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorUEFTUzogZG9j
dW1lbnQgc3Vic2NyaWJlIHdhcyBzdWNjZXNzZnVsCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1l
LWNyb3NzLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gt
YXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4tZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3OGViYmFmNGY5ODNjMzZlYjA2Y2ZjMGJlMjFjY2JiOGZh
MjIwNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBp
L3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9u
U3RhdGUgd2FzIHByb21wdAorUEFTUzogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyBwcm9t
cHQKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHN1YnNjcmliZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRF
cnJvcgorUEFTUzogZG9jdW1lbnQgc3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9y
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJl
LWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJh
bWUtY3Jvc3Mtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTNkNWViYjRiYTA0OTY2ZTA0YmZkYmE0
YWEwOGNjZDNmNmQ1YWE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9y
aWdpbi5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeworICAgIGlm
IChldmVudC5kYXRhID09ICdmaW5pc2hQdXNoQVBJVGVzdCcpCisgICAgICAgIGZpbmlzaFB1c2hB
UElUZXN0KCk7CisgICAgZWxzZQorICAgICAgICBsb2coZXZlbnQuZGF0YSk7Cit9OworPC9zY3Jp
cHQ+Cis8aWZyYW1lIHNyYz0iaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wdXNoLWFwaS9yZXNvdXJj
ZXMvc3Vic2NyaWJlLWlmcmFtZS1jcm9zcy1vcmlnaW4uaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkv
c3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQt
cGVybWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
NWUzMDE5YWY2OTYzMDQzODVmYTBlYmIyNmJlOTdjZDMzNmY0OGM1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJt
aXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAor
CitQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzog
ZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyBwcm9tcHQKK1BBU1M6IHNlcnZpY2Ugd29ya2Vy
IHN1YnNjcmliZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorUEFTUzogZG9jdW1lbnQgc3Vi
c2NyaWJlIHdhcyBzdWNjZXNzZnVsCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNhbWUtb3Jp
Z2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZh
dWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0Nzk3
ZTI5YzI0NDVlNTZmYzZiNTAxNjMyNGIzNmQ4YjVkZjEwZDEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Np
b25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlv
bihldmVudCkgeworICAgIGlmIChldmVudC5kYXRhID09ICdmaW5pc2hQdXNoQVBJVGVzdCcpCisg
ICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7CisgICAgZWxzZQorICAgICAgICBsb2coZXZlbnQu
ZGF0YSk7Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL3N1YnNjcmliZS1p
ZnJhbWUtc2FtZS1vcmlnaW4uaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1
bHQtcGVybWlzc2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vi
c2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODQyYzdjNzE4Mjk2
MjFlNWU2Y2RlOGI5ZTk2ZjljZWEyYTI0MmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy5odG1s
CkBAIC0wLDAgKzEsMjQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3B1c2gtYXBpLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c3Vic2NyaWJlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
K25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvc3Vic2NyaWJlLXdv
cmtlci5qcyIsIHsgfSkudGhlbihhc3luYyAocmVnaXN0cmF0aW9uKSA9PiB7CisgICAgdHJ5IHsK
KyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAiYWN0
aXZhdGVkIik7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyUGVybWlzc2lvblN0YXRl
KHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRQZXJt
aXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRlc3RT
ZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93ZWRFcnJvcicpOwor
ICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9uKTsKKyAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgIGxvZyhgRkFJTDogdW5leHBlY3RlZCBleGNlcHRpb24gJHtl
fWApOworICAgIH0gZmluYWxseSB7CisgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lz
dGVyKCk7CisgICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7CisgICAgfQorfSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQxMTIzNTI1MWJiOTIxMjIzNjk4NjgzZTMwNDk2Y2VmMjMy
YjlhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkv
c3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
UEFTUzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0YXRlIHdhcyBkZW5pZWQKK1BBU1M6IGRv
Y3VtZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMgZGVuaWVkCitQQVNTOiBzZXJ2aWNlIHdvcmtlciBz
dWJzY3JpYmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IKK1BBU1M6IGRvY3VtZW50IHN1YnNj
cmliZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25z
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjNjNDExZDkyYTk3NzVhNmU0YzAzN2NiNThhYjk1MDY1MjU3Zjk3
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vi
c2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbApAQCAtMCwwICsxLDI3IEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
dGVzdFJ1bm5lci5kZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbih3aW5kb3cub3JpZ2luKTsK
KworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9zdWJzY3JpYmUt
d29ya2VyLmpzIiwgeyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRpb24pID0+IHsKKyAgICB0cnkg
eworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICJh
Y3RpdmF0ZWQiKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3Rh
dGUocmVnaXN0cmF0aW9uLCAnZGVuaWVkJyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFBl
cm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdkZW5pZWQnKTsKKyAgICAgICAgYXdhaXQgdGVz
dFNlcnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90QWxsb3dlZEVycm9yJyk7
CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RB
bGxvd2VkRXJyb3InKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGxvZyhgRkFJTDogdW5l
eHBlY3RlZCBleGNlcHRpb24gJHtlfWApOworICAgIH0gZmluYWxseSB7CisgICAgICAgIGF3YWl0
IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7
CisgICAgfQorfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25z
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJl
LWdyYW50LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTRjODI4MmUwNGE3
NzVhYWRmMjQ2YmJmNTAyMTI2OGM3YjVhOGIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0
YXRlIHdhcyBncmFudGVkCitQQVNTOiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIGdyYW50
ZWQKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHN1YnNjcmliZSB3YXMgc3VjY2Vzc2Z1bAorUEFTUzog
ZG9jdW1lbnQgc3Vic2NyaWJlIHdhcyBzdWNjZXNzZnVsCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNz
aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMzcwMWZlMTkzMDhiMzFkMWJjYmQzODQ3NGUxMzE1MzAx
NzQ1ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBp
L3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbih3aW5kb3cub3Jp
Z2luKTsKKworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9zdWJz
Y3JpYmUtd29ya2VyLmpzIiwgeyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRpb24pID0+IHsKKyAg
ICB0cnkgeworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmluc3RhbGxp
bmcsICJhY3RpdmF0ZWQiKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNz
aW9uU3RhdGUocmVnaXN0cmF0aW9uLCAnZ3JhbnRlZCcpOworICAgICAgICBhd2FpdCB0ZXN0RG9j
dW1lbnRQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAnZ3JhbnRlZCcpOworICAgICAgICBh
d2FpdCB0ZXN0U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24pOworICAgICAgICBh
d2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9uKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGxvZyhgRkFJTDogdW5leHBlY3RlZCBleGNlcHRpb24gJHtlfWApOworICAg
IH0gZmluYWxseSB7CisgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Cisg
ICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7CisgICAgfQorfSk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggODJmOWRmYzcxZDI5NGYwY2I0NGU4ODIzZmY3NjhkMzZhM2ZlZjk0Zi4uNGJiM2U4NTE3ZDVl
ODAxMzg2NmY4N2U1N2RkZGZhOTQ2NzlmZGY3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4NzUsNCArMTg3NSwxMSBAQCB3ZWJraXQub3JnL2IvMjE0
MjkwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0L3RleHQtZW5j
b2RpbmcvcwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZmlsdGVyLWVmZmVj
dHMvc3ZnLWVtcHR5LWNvbnRhaW5lci13aXRoLWZpbHRlci1jb250ZW50LWFkZGVkLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvZWxlbWVudC9tYW51YWwvZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcy9pbWFnZS1v
cmllbnRhdGlvbi9kcmF3SW1hZ2Utd2l0aC1zcmMtcmVjdC50ZW50YXRpdmUuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogWyBSZWxlYXNlIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9lbWJlZGRlZC1jb250ZW50L3ZpZGVv
LWNvbnRyb2xzLXZlcnRpY2FsLXdyaXRpbmctbW9kZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9wcmVzZXJ2ZS11YS1oZWFkZXIt
b24tcmVkaXJlY3QuaHRtIFsgRmFpbHVyZSBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvcHJlc2VydmUtdWEtaGVhZGVyLW9u
LXJlZGlyZWN0Lmh0bSBbIEZhaWx1cmUgXQorCisjIFB1c2ggc3Vic2NyaXB0aW9uIHRlc3RzIGZh
aWwgd2l0aG91dCBwbGF0Zm9ybS1zcGVjaWZpYyBQdXNoQ3J5cHRvIGltcGxlbWVudGF0aW9ucy4K
K2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1l
LWNyb3NzLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNj
cmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sIFsgRmFpbHVy
ZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0
bWwgWyBGYWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlz
c2lvbnMuaHRtbCBbIEZhaWx1cmUgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3Jh
bnQtcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRlNDY1MTAwNjA4OWFhYjE3OWFmNGRjZTg4
MmQ1NjYwNzk1MmFjOWMuLjc3OWIxY2ZmMzVhMmU2NDg2NDY2NjQwYWY3ZGFhNWVmNjdkNDI0NDAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTE3NzIsNCArMTc3MiwxMSBAQCBmYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1hbHRlcm5h
dGUtaWZyYW1lLWJvZHktZGlyLWF0dHItZG9lcy1ub3QtdXBkYXRlLXNjcgogWyBCaWdTdXIrIGFy
bTY0IF0gZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbmV3bGluZS1pbi1xdW90ZWQtY29udGVu
dC1jcmFzaC5odG1sIFsgU2tpcCBdCiBbIEJpZ1N1cisgYXJtNjQgXSBlZGl0aW5nL2V4ZWNDb21t
YW5kL3Bhc3RlLWFzLXF1b3RhdGlvbi1kaXNjb25uZWN0ZWQtcGFyYWdyYXBoLWFuY2VzdG9yLWNy
YXNoLmh0bWwgWyBTa2lwIF0KIAotd2Via2l0Lm9yZy9iLzIzNjUzMCBmYXN0L3RleHQvb3Rzdmct
Y2FudmFzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCit3ZWJraXQub3JnL2IvMjM2NTMwIGZhc3QvdGV4dC9vdHN2Zy1jYW52YXMuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQorCisjIFB1c2ggc3Vic2NyaXB0aW9uIHRlc3RzIGRvbid0IHdvcmsg
d2l0aG91dCBzZXJ2aWNlIHdvcmtlciBzdXBwb3J0LgoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJz
Y3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwgWyBTa2lw
IF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZy
YW1lLXNhbWUtb3JpZ2luLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2Ny
aWJlLWRlZmF1bHQtcGVybWlzc2lvbnMuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9wdXNoLWFw
aS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3B1
c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1sIFsgU2tpcCBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGM3MWRkNTAyMjE1YWI4Mjcz
YWExMmU4NGU0YTlhY2EzMGJiMTJjMTcuLjgwN2Q3NjU0ZmQwNDFhN2Y0NzJiNDQ4ZDhkYWJkOTlm
M2UxOTZhYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBA
IC00OTk1LDMgKzQ5OTUsMTAgQEAgZmFzdC90ZXh0L2xvY2FsZS1zaGFwaW5nLTMuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvdXNlckFnZW50U2hhZG93RE9NL2RlZmF1bHQtc3JjLW9iamVjdC1kYXRhLXVybC1ibG9ja2Vk
Lmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tl
ZDIuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvdXNlckFnZW50U2hhZG93RE9NL2RlZmF1bHQtc3JjLW9iamVjdC1kYXRhLXVybC1ibG9j
a2VkMy5odG1sIFsgRmFpbHVyZSBdCisKKyMgUHVzaCBzdWJzY3JpcHRpb24gdGVzdHMgZmFpbCB3
aXRob3V0IHBsYXRmb3JtLXNwZWNpZmljIFB1c2hDcnlwdG8gaW1wbGVtZW50YXRpb25zLgoraHR0
cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jv
c3Mtb3JpZ2luLmh0bWwgWyBGYWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJl
LWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWwgWyBGYWlsdXJlIF0K
K2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMuaHRtbCBb
IEZhaWx1cmUgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9u
cy5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1w
ZXJtaXNzaW9ucy5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452617</attachid>
            <date>2022-02-18 19:44:36 -0800</date>
            <delta_ts>2022-02-18 21:27:59 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236739-20220218194435.patch</filename>
            <type>text/plain</type>
            <size>35308</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhiNzVjNDU5MDNlN2I4
MzZjMjVmNmNmZWRlMDg1YTc5ZDFkMWNlMC4uY2JhN2EzZjEzY2IwNjY3NDU2YTc2ZjgwODAwNTVm
MmNlZDE3Zjk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAyLTE2ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8g
cGVybWlzc2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgorCisg
ICAgICAgIFRoaXMgaW1wbGVtZW50cyBQdXNoTWFuYWdlci5wZXJtaXNzaW9uU3RhdGUuIEl0IHJl
dHVybnMgdGhlIHNhbWUgdmFsdWUgYXMKKyAgICAgICAgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24g
dGhyb3VnaCB0aGUgc2FtZSBtZWNoYW5pc20uCisKKyAgICAgICAgVGhpcyBhbHNvIG1ha2VzIFB1
c2hNYW5hZ2VyLnN1YnNjcmliZSByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSB0aGUgdXNlciB0byBz
aG93IG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaWYgdGhlIHBlcm1pc3Npb24gaXMgaW4gdGhlIGRl
ZmF1bHQgc3RhdGUgYW5kIHRoZXNlIHJlcXVpcmVtZW50cyBhcmUgbWV0OgorCisgICAgICAgIDEu
IFRoZSBjYWxsZXIgaXMgYSBkb2N1bWVudCB3aXRoIHRoZSBzYW1lIG9yaWdpbiBhcyBhIHRvcCBs
ZXZlbCBkb2N1bWVudC4gVGhpcyBtZWFucyB0aGF0CisgICAgICAgICAgIGNyb3NzLW9yaWdpbiBp
ZnJhbWVzIGNhbm5vdCByZXF1ZXN0IHB1c2ggcGVybWlzc2lvbnMuIFRoaXMgbWF0Y2hlcyBDaHJv
bWUncyBiZWhhdmlvci4KKyAgICAgICAgMi4gVGhlIGNhbGxlciBjYW5ub3QgYmUgYSBzZXJ2aWNl
IHdvcmtlci4gVGhpcyBsaW1pdGF0aW9uIGlzIGFsbG93ZWQgZm9yIGJ5IHRoZSBzcGVjLgorCisg
ICAgICAgIFRoZXJlIGFsc28gbmVlZHMgdG8gYmUgc29tZSBjb2RlIGFkZGVkIHdoaWNoIHJlbW92
ZXMgYSBwdXNoIHN1YnNjcmlwdGlvbiBpZiB0aGUgdXNlciBkZWxldGVzCisgICAgICAgIHRoZSBz
dWJzY3JpcHRpb24gZW50aXJlbHkgaW4gdGhlIFVJLCBmb3IgaW5zdGFuY2Ugd2hlbiB0aGUgVUlQ
cm9jZXNzIGNhbGxzCisgICAgICAgIFdLTm90aWZpY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkUmVt
b3ZlTm90aWZpY2F0aW9uUG9saWNpZXMuIFRoYXQgd2lsbCBiZSBoYW5kbGVkIGluIGEKKyAgICAg
ICAgc2VwYXJhdGUgcGF0Y2guCisKKyAgICAgICAgQ292ZXJlZCBieSBuZXcgbGF5b3V0IHRlc3Rz
LgorCisgICAgICAgICogTW9kdWxlcy9wdXNoLWFwaS9QdXNoTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQdXNoTWFuYWdlcjo6c3Vic2NyaWJlKToKKyAgICAgICAgKFdlYkNvcmU6OlB1
c2hNYW5hZ2VyOjpnZXRTdWJzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UHVzaE1hbmFn
ZXI6OnBlcm1pc3Npb25TdGF0ZSk6CisKIDIwMjItMDItMTggIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjkw
MTg4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBmOGI4ZGJlZjVmNzA1NzU3ZTE1MjNkN2E1ODdmMGIyNDlkOWZhNzZi
Li5mNmU3MDA3ZTI1NzdjZTkzMjU0YzZjMDQwMWZiZTI1MTMxYjkwMWJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIyLTAyLTE2ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisg
ICAgICAgIEhvb2sgdXAgUHVzaE1hbmFnZXIgdG8gcGVybWlzc2lvbiBzdGF0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgorCisgICAgICAgIFVwZGF0ZSBjb21tZW50IGV4cGxh
aW5pbmcgd2h5IHdlIHN0aWxsIGhhdmUgYSBwZXJtaXNzaW9uIHN0YXRlIHN0dWIgaW4gd2VicHVz
aGQuCisKKyAgICAgICAgKiB3ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tOgorICAgICAgICAoV2Vi
UHVzaEQ6OkRhZW1vbjo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZSk6CisKIDIwMjItMDItMTggIFBl
ciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgY29udGVu
dCBmaWx0ZXJpbmcgdG8gTmV0d29ya2luZyBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcHVzaC1hcGkvUHVzaE1hbmFnZXIuY3BwCmluZGV4IDRjNzE1NjJjZDA0NjQ3YjEwNzc4
NDQ5NTFhZTJlN2U4YTdjNWFjMTUuLjgyZTQzNmUxNjY2MzJhOGU3M2Q1ODA4NDhkNjY5OTFkYWJm
YmQwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaE1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaE1hbmFn
ZXIuY3BwCkBAIC0yOCwxMCArMjgsMTIgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
IAorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTUHVzaFBlcm1pc3Npb25TdGF0ZS5o
IgogI2luY2x1ZGUgIkpTUHVzaFN1YnNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlv
bkNsaWVudC5oIgogI2luY2x1ZGUgIlB1c2hDcnlwdG8uaCIKICNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIgpA
QCAtNjUsMTEgKzY3LDExIEBAIHZvaWQgUHVzaE1hbmFnZXI6OmRlcmVmKCkgY29uc3QKICAgICBt
X3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uZGVyZWYoKTsKIH0KIAotdm9pZCBQdXNoTWFuYWdl
cjo6c3Vic2NyaWJlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJbml0PiYmIG9wdGlvbnMs
IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8UHVzaFN1YnNjcmlwdGlvbj4+JiYgcHJv
bWlzZSkKK3ZvaWQgUHVzaE1hbmFnZXI6OnN1YnNjcmliZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPFB1c2hTdWJzY3JpcHRpb25PcHRpb25zSW5pdD4mJiBv
cHRpb25zLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFB1c2hTdWJzY3JpcHRpb24+
PiYmIHByb21pc2UpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5pc1NlY3VyZUNvbnRleHQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoY29udGV4dC5pc1NlY3Vy
ZUNvbnRleHQoKSk7CiAgICAgCi0gICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5ldmVudExvb3Ao
KS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9LCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgY29udGV4dC5ldmVudExvb3AoKS5xdWV1
ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYg
eyAqdGhpcyB9LCBjb250ZXh0ID0gUmVmIHsgY29udGV4dCB9LCBvcHRpb25zID0gV1RGTW92ZShv
cHRpb25zKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CiAgICAgICAg
IGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy0+dXNlclZpc2libGVPbmx5KSB7CiAgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJTdWJzY3JpYmlu
ZyBmb3IgcHVzaCByZXF1aXJlcyB1c2VyVmlzaWJsZU9ubHkgdG8gYmUgdHJ1ZSJfcyB9KTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTExMSwyMiArMTEzLDY4IEBAIHZvaWQgUHVzaE1hbmFnZXI6
OnN1YnNjcmliZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBzdGQ6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICBhdXRvIGNs
aWVudCA9IGNvbnRleHQtPm5vdGlmaWNhdGlvbkNsaWVudCgpOworICAgICAgICBhdXRvIHBlcm1p
c3Npb24gPSBjbGllbnQgPyBjbGllbnQtPmNoZWNrUGVybWlzc2lvbihjb250ZXh0LnB0cigpKSA6
IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlbmllZDsKKworICAgICAgICBpZiAocGVybWlzc2lv
biA9PSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpEZW5pZWQpIHsKKyAgICAgICAgICAgIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlVzZXIgZGVuaWVkIHB1c2gg
cGVybWlzc2lvbiJfcyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChwZXJtaXNzaW9uID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlZmF1bHQgJiYg
IWNvbnRleHQtPmlzRG9jdW1lbnQoKSkgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiVXNlciBkZW5pZWQgcHVzaCBwZXJtaXNzaW9uIl9z
IH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBlcm1p
c3Npb24gPT0gTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVmYXVsdCkgeworICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoY2xpZW50KTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNvbnRl
eHQtPmlzRG9jdW1lbnQoKSk7CisKKyAgICAgICAgICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+
KGNvbnRleHQuZ2V0KCkpLmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSkgeworICAgICAgICAg
ICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIkNhbm5v
dCByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSBjcm9zcy1vcmlnaW4gaWZyYW1lIl9zIH0pOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2xpZW50
LT5yZXF1ZXN0UGVybWlzc2lvbihjb250ZXh0LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyksIGtleURhdGEgPSBrZXlEYXRhUmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byBwZXJtaXNzaW9uKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgICAgICBpZiAocGVybWlzc2lvbiAhPSBOb3RpZmljYXRpb25QZXJt
aXNzaW9uOjpHcmFudGVkKSB7CisgICAgICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlVzZXIgZGVuaWVkIHB1c2ggcGVybWlzc2lvbiJf
cyB9KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5zdWJzY3JpYmVUb1B1
c2hTZXJ2aWNlKFdURk1vdmUoa2V5RGF0YSksIFdURk1vdmUocHJvbWlzZSkpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBSRUxFQVNF
X0FTU0VSVChwZXJtaXNzaW9uID09IE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkdyYW50ZWQpOwog
ICAgICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uc3Vic2NyaWJlVG9QdXNoU2Vydmlj
ZShrZXlEYXRhUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKHByb21pc2UpKTsK
ICAgICB9KTsKIH0KIAotdm9pZCBQdXNoTWFuYWdlcjo6Z2V0U3Vic2NyaXB0aW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIERPTVByb21pc2VEZWZlcnJl
ZDxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8UHVzaFN1YnNjcmlwdGlvbj4+PiYmIHByb21pc2Up
Cit2b2lkIFB1c2hNYW5hZ2VyOjpnZXRTdWJzY3JpcHRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgRE9NUHJvbWlzZURlZmVycmVkPElETE51bGxhYmxlPElETEludGVyZmFjZTxQ
dXNoU3Vic2NyaXB0aW9uPj4+JiYgcHJvbWlzZSkKIHsKLSAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XSgpIG11dGFibGUgeworICAgIGNvbnRleHQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3Vy
Y2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CiAgICAgICAgIG1fc2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbi5nZXRQdXNoU3Vic2NyaXB0aW9uKFdURk1vdmUocHJvbWlzZSkpOwog
ICAgIH0pOwogfQogCi12b2lkIFB1c2hNYW5hZ2VyOjpwZXJtaXNzaW9uU3RhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3RkOjpvcHRpb25hbDxQdXNo
U3Vic2NyaXB0aW9uT3B0aW9uc0luaXQ+JiYgb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElE
TEVudW1lcmF0aW9uPFB1c2hQZXJtaXNzaW9uU3RhdGU+PiYmIHByb21pc2UpCit2b2lkIFB1c2hN
YW5hZ2VyOjpwZXJtaXNzaW9uU3RhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
c3RkOjpvcHRpb25hbDxQdXNoU3Vic2NyaXB0aW9uT3B0aW9uc0luaXQ+JiYsIERPTVByb21pc2VE
ZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQdXNoUGVybWlzc2lvblN0YXRlPj4mJiBwcm9taXNlKQog
ewotICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSgp
IG11dGFibGUgewotICAgICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uZ2V0UHVzaFBl
cm1pc3Npb25TdGF0ZShXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBjb250ZXh0LmV2ZW50TG9vcCgp
LnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbY29udGV4dCA9IFJlZiB7IGNvbnRl
eHQgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgICAgIGF1
dG8gY2xpZW50ID0gY29udGV4dC0+bm90aWZpY2F0aW9uQ2xpZW50KCk7CisgICAgICAgIGF1dG8g
cGVybWlzc2lvbiA9IGNsaWVudCA/IGNsaWVudC0+Y2hlY2tQZXJtaXNzaW9uKGNvbnRleHQucHRy
KCkpIDogTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6RGVuaWVkOworCisgICAgICAgIHN3aXRjaCAo
cGVybWlzc2lvbikgeworICAgICAgICBjYXNlIE5vdGlmaWNhdGlvblBlcm1pc3Npb246OkRlZmF1
bHQ6CisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoUHVzaFBlcm1pc3Npb25TdGF0ZTo6UHJv
bXB0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vdGlmaWNhdGlvblBlcm1p
c3Npb246OkdyYW50ZWQ6CisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoUHVzaFBlcm1pc3Np
b25TdGF0ZTo6R3JhbnRlZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShQdXNoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tIGIvU291cmNlL1dlYktp
dC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tCmluZGV4IDFkYTA2ODAxMDQ3OGZkN2UzNGI4NTlk
MzJiYWU1YzFhZjk2MDUxMDQuLjFjZjhlMjQ3M2I0NTNjY2YxMDE3YWNjNDdlNDMyNjYyMTFkNjA0
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KQEAgLTYyMiwxMiAr
NjIyLDEwIEBAIHZvaWQgRGFlbW9uOjpnZXRQdXNoU3Vic2NyaXB0aW9uKENsaWVudENvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVCiAKIHZvaWQgRGFlbW9uOjpnZXRQdXNo
UGVybWlzc2lvblN0YXRlKENsaWVudENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYg
c2NvcGVVUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgRXhwZWN0ZWQ8dWludDhfdCwg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mKT4mJiByZXBseVNlbmRlcikKIHsKLSAgICAvLyBGSVhN
RQotI2lmIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQotICAgIHJl
cGx5U2VuZGVyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFdlYkNvcmU6OlB1c2hQZXJtaXNzaW9uU3Rh
dGU6OkdyYW50ZWQpKTsKLSNlbHNlCisgICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCBhY3R1YWxs
eSBnZXQgY2FsbGVkIHJpZ2h0IG5vdywgc2luY2UgdGhlIHBlcm1pc3Npb24gaXMgY3VycmVudGx5
IGNoZWNrZWQKKyAgICAvLyBpbiBXZWJQcm9jZXNzLiBIb3dldmVyLCB3ZSd2ZSBsZWZ0IHRoaXMg
c3R1YiBpbiBmb3Igbm93IGJlY2F1c2UgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCB3ZQorICAgIC8v
IHdpbGwgbW92ZSB0aGUgcGVybWlzc2lvbiBjaGVjayBpbnRvIHdlYnB1c2hkIHdoZW4gc3VwcG9y
dGluZyBvdGhlciBwbGF0Zm9ybXMuCiAgICAgcmVwbHlTZW5kZXIoc3RhdGljX2Nhc3Q8dWludDhf
dD4oV2ViQ29yZTo6UHVzaFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKSk7Ci0jZW5kaWYKIH0KIAog
Q2xpZW50Q29ubmVjdGlvbiogRGFlbW9uOjp0b0NsaWVudENvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rp
b25fdCBjb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDA4YmVmMDUzYmU3Mjc3NTkzMmY1OWRjYTU4NDQ1OWViZWI4Nzk5OTkuLmQ2
Njc2Y2VlNDJiMWVjODQxMGRhNmFiMTc2NjY5NWYzZjYwNzFiZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0w
Mi0xNiAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBIb29rIHVwIFB1c2hN
YW5hZ2VyIHRvIHBlcm1pc3Npb24gc3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNjczOQorCisgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVp
ZHNvbi4KKworICAgICAgICBNYWRlIHRoZSBXZWJQdXNoRCBBUEkgdGVzdHMgd29yayBub3cgdGhh
dCBzdWJzY3JpYmUgY2hlY2tzIGZvciBwZXJtaXNzaW9uLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tOgorCiAyMDIyLTAyLTE4ICBB
bmdlbG9zIE9pa29ub21vcG91bG9zICA8YW5nZWxvc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtK
U0NdIEZpeCB0ZXN0IHNoYXJkaW5nIHdoZW4gdXNpbmcgLS1tYWtlLXJ1bm5lciBhbmQgLS1yZW1v
dGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vi
UHVzaERhZW1vbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vi
UHVzaERhZW1vbi5tbQppbmRleCBlY2Y5MWNkYmM1MzNjZjk1NTRiYmY2MWViNTNlNzE5NTM5ZDU3
MzJmLi45YmU1YTIwYTBjMGI4NDU3NDQ3NmMxMTkwMTk0ZDI5MjljNmE3NjcyIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9u
Lm1tCkBAIC00MjYsNiArNDI2LDEwIEBAIHByb3RlY3RlZDoKIAogICAgICAgICBtX25vdGlmaWNh
dGlvbk1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW05vdGlmaWNhdGlvblNjcmlwdE1lc3NhZ2VI
YW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgICAgIFtbbV9jb25maWd1cmF0aW9uIHVzZXJDb250
ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bV9ub3RpZmljYXRpb25NZXNz
YWdlSGFuZGxlci5nZXQoKSBuYW1lOkAibm90ZSJdOworCisgICAgICAgIG1fd2ViVmlldyA9IGFk
b3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCkgY29uZmlndXJhdGlvbjptX2NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICAgICAg
bV91aURlbGVnYXRlID0gYWRvcHROUyhbW05vdGlmaWNhdGlvblBlcm1pc3Npb25EZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOworICAgICAgICBbbV93ZWJWaWV3IHNldFVJRGVsZWdhdGU6bV91aURlbGVn
YXRlLmdldCgpXTsKICAgICB9CiAKICAgICB2b2lkIGxvYWRSZXF1ZXN0KGNvbnN0IGNoYXIqIGh0
bWxTb3VyY2UsIGNvbnN0IGNoYXIqIHNlcnZpY2VXb3JrZXJTY3JpcHRTb3VyY2UpCkBAIC00NDAs
NyArNDQ0LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgeyAiL3N3LmpzIiwgeyB7IHsgIkNv
bnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9IH0sIHNlcnZpY2VXb3JrZXJT
Y3JpcHRTb3VyY2UgfSB9CiAgICAgICAgIH0sIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OlBy
b3RvY29sOjpIdHRwKSk7CiAKLSAgICAgICAgbV93ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOm1fY29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgICAgICBbbV93ZWJWaWV3IGxvYWRS
ZXF1ZXN0Om1fc2VydmVyLT5yZXF1ZXN0KCldOwogICAgIH0KIApAQCAtNDU2LDYgKzQ1OSw3IEBA
IHByb3RlY3RlZDoKICAgICBSZXRhaW5QdHI8Tm90aWZpY2F0aW9uU2NyaXB0TWVzc2FnZUhhbmRs
ZXI+IG1fbm90aWZpY2F0aW9uTWVzc2FnZUhhbmRsZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRl
c3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI+IG1fc2VydmVyOwogICAgIFJldGFpblB0cjxXS1dlYlZp
ZXc+IG1fd2ViVmlldzsKKyAgICBSZXRhaW5QdHI8aWQ8V0tVSURlbGVnYXRlUHJpdmF0ZT4+IG1f
dWlEZWxlZ2F0ZTsKIH07CiAKIGNsYXNzIFdlYlB1c2hESW5qZWN0ZWRQdXNoVGVzdCA6IHB1Ymxp
YyBXZWJQdXNoRFRlc3QgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUxNmIxYzIzMzFhNzE1MWM4YWYxYzE2YWRjZWFmY2Qw
NmQ0MDBlNzIuLmY4OGZiOTBhMDEzNWM4ODg4NzliNGRjZjVhMWQzZjc2YjljYmFmODggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0MyBAQAorMjAyMi0wMi0xNiAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4K
KworICAgICAgICBIb29rIHVwIFB1c2hNYW5hZ2VyIHRvIHBlcm1pc3Npb24gc3RhdGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjczOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0aGF0
IG1ha2Ugc3VyZSB0aGF0IFB1c2hNYW5hZ2VyLnBlcm1pc3Npb25TdGF0ZSgpIGFuZCBQdXNoTWFu
YWdlci5zdWJzY3JpYmUoKQorICAgICAgICByZXNwZWN0IHRoZSBub3RpZmljYXRpb24gcGVybWlz
c2lvbiBsZXZlbCBmb3IgdGhlIGN1cnJlbnQgb3JpZ2luLgorCisgICAgICAgIEkgbWFkZSB0aGVz
ZSByZWd1bGFyIHRlc3RzIHJhdGhlciB0aGFuIFdQVCB0ZXN0cyBiZWNhdXNlIHRoZSBXUFQgdGVz
dCBoYXJuZXNzIGNhbGxzCisgICAgICAgIGdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbiBh
dCB0aGUgdG9wIG9mIGl0cyBzZXR1cCBzY3JpcHQgKGluIHRlc3RoYXJuZXNzcmVwb3J0LmpzKSwg
YW5kCisgICAgICAgIEkgZGlkbid0IHdhbnQgdG8gY2hhbmdlIHRoYXQgZm9yIHRoaXMgcGF0Y2gu
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9wdXNoLWFwaS10ZXN0
LXByZS5qczogQWRkZWQuCisgICAgICAgIChmaW5pc2hQdXNoQVBJVGVzdCk6CisgICAgICAgICh3
YWl0Rm9yU3RhdGUpOgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1
YnNjcmliZS1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJhbWUtc2FtZS1vcmlnaW4uaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMvc3Vic2Ny
aWJlLXRlc3RzLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzeW5jIHRlc3RTZXJ2aWNlV29ya2VyUGVy
bWlzc2lvblN0YXRlKToKKyAgICAgICAgKGFzeW5jIHRlc3REb2N1bWVudFBlcm1pc3Npb25TdGF0
ZSk6CisgICAgICAgIChhc3luYyB0ZXN0U2VydmljZVdvcmtlclN1YnNjcmliZSk6CisgICAgICAg
IChhc3luYyB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUpOgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVz
aC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanM6IEFkZGVkLgorICAgICAgICAoYXN5
bmMgZXZlbnQpOgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1
bHQtcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1vcmln
aW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4uaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJt
aXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFt
ZS1zYW1lLW9yaWdpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBp
L3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBl
cm1pc3Npb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vi
c2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIyLTAyLTE4ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRk
YWRAYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHAvd3B0L3B1c2gtYXBpL29ucHVzaC1kaXNhYmxl
ZC5odG1sIGZhaWxzIChpbmNyZW1lbnRhbCBidWlsZCBpc3N1ZT8pCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5q
cyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3B1c2gtYXBpLXRl
c3QtcHJlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiOGU1ZDc0NzNlYTViN2UzNzdjNGI2NmM4MTc4ZmRlNDFi
ZTk5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBp
L3Jlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcwpAQCAtMCwwICsxLDQ5IEBACitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gZmluaXNoUHVzaEFQSVRlc3Qo
KQoreworICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cucGFy
ZW50ICE9PSB3aW5kb3cpIHsKKyAgICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgnZmlu
aXNoUHVzaEFQSVRlc3QnLCAnKicpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30K
KworZnVuY3Rpb24gd2FpdEZvclN0YXRlKHdvcmtlciwgc3RhdGUpCit7CisgICAgaWYgKCF3b3Jr
ZXIgfHwgd29ya2VyLnN0YXRlID09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIFByb21pc2Uu
cmVqZWN0KG5ldyBFcnJvcignd2FpdF9mb3Jfc3RhdGUgbXVzdCBiZSBwYXNzZWQgYSBTZXJ2aWNl
V29ya2VyJykpOworCisgICAgaWYgKHdvcmtlci5zdGF0ZSA9PT0gc3RhdGUpCisgICAgICAgIHJl
dHVybiBQcm9taXNlLnJlc29sdmUoc3RhdGUpOworCisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNo
YW5nZScsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmICh3b3JrZXIuc3RhdGUgPT09IHN0YXRl
KQorICAgICAgICAgICAgcmVzb2x2ZShzdGF0ZSk7CisgICAgICAgIH0pOworICAgIH0pOworfQor
CitmdW5jdGlvbiBsb2cobXNnKQoreworICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZp
bmVkJyAmJiB3aW5kb3cucGFyZW50ICE9PSB3aW5kb3cpIHsKKyAgICAgICAgd2luZG93LnBhcmVu
dC5wb3N0TWVzc2FnZShtc2csICcqJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBs
ZXQgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7CisgICAgaWYg
KCFjb25zb2xlKSB7CisgICAgICAgIGNvbnNvbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICAgICAgY29uc29sZS5pZCA9ICJjb25zb2xlIjsKKyAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChjb25zb2xlKTsKKyAgICB9CisgICAgbGV0IHNwYW4gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAiPGJy
PiI7CisgICAgY29uc29sZS5hcHBlbmRDaGlsZChzcGFuKTsKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJhbWUtY3Jv
c3Mtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNl
cy9zdWJzY3JpYmUtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5MGY1Njk0
MTFlZDQyYWEzMjA3NDEzMWUwNDllODRhY2RiNjVmOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1lLWNy
b3NzLW9yaWdpbi5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxzY3JpcHQgc3JjPSJwdXNoLWFwaS10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vic2NyaWJlLXRlc3RzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcigic3Vi
c2NyaWJlLXdvcmtlci5qcyIsIHsgfSkudGhlbihhc3luYyAocmVnaXN0cmF0aW9uKSA9PiB7Cisg
ICAgdHJ5IHsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nLCAiYWN0aXZhdGVkIik7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyUGVybWlz
c2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0RG9j
dW1lbnRQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3
YWl0IHRlc3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93ZWRF
cnJvcicpOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9u
LCAnTm90QWxsb3dlZEVycm9yJyk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBsb2coYEZB
SUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICR7ZX1gKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAg
ICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICBmaW5pc2hQdXNoQVBJ
VGVzdCgpOworICAgIH0KK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtaWZyYW1lLXNhbWUtb3JpZ2lu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9zdWJzY3Jp
YmUtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjAzZTFmNmIyMTY5MzVkNjIw
NjQ4YzI2NzU1NmIxMzIxM2U5MTYyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS1pZnJhbWUtc2FtZS1vcmlnaW4u
aHRtbApAQCAtMCwwICsxLDE4IEBACis8c2NyaXB0IHNyYz0icHVzaC1hcGktdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1YnNjcmliZS10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInN1YnNjcmliZS13b3Jr
ZXIuanMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4geworICAgIHRyeSB7Cisg
ICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgImFjdGl2
YXRlZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25TdGF0ZShy
ZWdpc3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50UGVybWlz
c2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0U2Vy
dmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxvd2VkRXJyb3InKTsKKyAg
ICAgICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlKHJlZ2lzdHJhdGlvbik7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICBsb2coYEZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICR7ZX1g
KTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpOworICAgICAgICBmaW5pc2hQdXNoQVBJVGVzdCgpOworICAgIH0KK30pOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291cmNlcy9z
dWJzY3JpYmUtdGVzdHMuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291
cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIxNWI1NmZjNzNiNjVmMGNiM2Y0
ZTAzODYyYzIxZDZkNzlhZGYxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcwpAQCAtMCwwICsxLDcx
IEBACitjb25zdCBWQUxJRF9TRVJWRVJfS0VZID0gIkJBMUh4enlpMVJVTTFiNXdqeHNuN25HeEFz
encydTYxbTE2NGkzTXJBSXhIRjZZSzVoNFNEWWljLWRSdVVfUkNQQ2ZBNWFxOW9qU3drNVkyRW1D
bEJQcyI7CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RTZXJ2aWNlV29ya2VyUGVybWlzc2lvblN0YXRl
KHJlZ2lzdHJhdGlvbiwgZXhwZWN0ZWQpCit7CisgICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IHJlc29sdmUp
OworICAgIHJlZ2lzdHJhdGlvbi5hY3RpdmUucG9zdE1lc3NhZ2UoWydwZXJtaXNzaW9uU3RhdGUn
XSk7CisgICAgbGV0IGV2ZW50ID0gYXdhaXQgcHJvbWlzZTsKKyAgICBsZXQgcmVzdWx0ID0gZXZl
bnQuZGF0YTsKKworICAgIGlmIChyZXN1bHQgPT0gZXhwZWN0ZWQpCisgICAgICAgIGxvZyhgUEFT
Uzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0YXRlIHdhcyAke2V4cGVjdGVkfWApOworICAg
IGVsc2UKKyAgICAgICAgbG9nKGBGQUlMOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUg
c2hvdWxkIGJlICR7ZXhwZWN0ZWR9LCBidXQgd2FzICR7cmVzdWx0fWApOworfQorCithc3luYyBm
dW5jdGlvbiB0ZXN0RG9jdW1lbnRQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCBleHBlY3Rl
ZCkKK3sKKyAgICBsZXQgc3RhdGUgPSBhd2FpdCByZWdpc3RyYXRpb24ucHVzaE1hbmFnZXIucGVy
bWlzc2lvblN0YXRlKCk7CisKKyAgICBpZiAoc3RhdGUgPT0gZXhwZWN0ZWQpCisgICAgICAgIGxv
ZyhgUEFTUzogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyAke2V4cGVjdGVkfWApOworICAg
IGVsc2UKKyAgICAgICAgbG9nKGBGQUlMOiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgc2hvdWxk
IGJlICR7ZXhwZWN0ZWR9LCBidXQgd2FzICR7c3RhdGV9YCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9u
IHRlc3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgZG9tRXhjZXB0aW9uTmFt
ZSkKK3sKKyAgICBsZXQgZXhwZWN0ZWQgPSBkb21FeGNlcHRpb25OYW1lID8gYGVycm9yOiAke2Rv
bUV4Y2VwdGlvbk5hbWV9YCA6ICJzdWNjZXNzZnVsIjsKKworICAgIGxldCBwcm9taXNlID0gbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB7IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9
IHJlc29sdmU7IH0pOworICAgIHJlZ2lzdHJhdGlvbi5hY3RpdmUucG9zdE1lc3NhZ2UoWydzdWJz
Y3JpYmUnLCBWQUxJRF9TRVJWRVJfS0VZXSk7CisgICAgbGV0IGV2ZW50ID0gYXdhaXQgcHJvbWlz
ZTsKKyAgICBsZXQgcmVzdWx0ID0gZXZlbnQuZGF0YTsKKworICAgIGlmIChyZXN1bHQgPT0gZXhw
ZWN0ZWQpCisgICAgICAgIGxvZyhgUEFTUzogc2VydmljZSB3b3JrZXIgc3Vic2NyaWJlIHdhcyAk
e2V4cGVjdGVkfWApOworICAgIGVsc2UKKyAgICAgICAgbG9nKGBGQUlMOiBzZXJ2aWNlIHdvcmtl
ciBzdWJzY3JpYmUgc2hvdWxkIGJlICR7ZXhwZWN0ZWR9LCBidXQgd2FzICR7cmVzdWx0fWApOwor
fQorCithc3luYyBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCBk
b21FeGNlcHRpb25OYW1lKQoreworICAgIGxldCBleHBlY3RlZCA9IGRvbUV4Y2VwdGlvbk5hbWUg
PyBgZXJyb3I6ICR7ZG9tRXhjZXB0aW9uTmFtZX1gIDogInN1Y2Nlc3NmdWwiOworICAgIGxldCBy
ZXN1bHQgPSBudWxsOworCisgICAgbGV0IHN1YnNjcmlwdGlvbiA9IG51bGw7CisgICAgdHJ5IHsK
KyAgICAgICAgLy8gV2l0aCBkZWZhdWx0IHBlcm1pc3Npb25zLCBQdXNoTWFuYWdlciBzaG91bGQg
cmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gVGVzdENvbnRyb2xsZXIuCisgICAgICAgIC8vIFRlc3RD
b250cm9sbGVyIGFsd2F5cyBjYWxscyBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0QWxs
b3cgc28gdGhpcyBzaG91bGQgc3VjY2VlZC4KKyAgICAgICAgc3Vic2NyaXB0aW9uID0gYXdhaXQg
cmVnaXN0cmF0aW9uLnB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7CisgICAgICAgICAgICB1c2VyVmlz
aWJsZU9ubHk6IHRydWUsCisgICAgICAgICAgICBhcHBsaWNhdGlvblNlcnZlcktleTogVkFMSURf
U0VSVkVSX0tFWQorICAgICAgICB9KTsKKyAgICAgICAgcmVzdWx0ID0gJ3N1Y2Nlc3NmdWwnOwor
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgLy8gTGF5b3V0IHRlc3RzIGFyZW4ndCBjb25uZWN0
ZWQgdG8gd2VicHVzaGQsIHNvIHN1YnNjcmliZSBpcyBzdWNjZXNzZnVsIGlmIGl0IGdldHMgdG8g
dGhlCisgICAgICAgIC8vIHBvaW50IHdoZXJlIHdlIGF0dGVtcHQgdG8gY29tbXVuaWNhdGUgd2l0
aCB3ZWJwdXNoZCAoYW4gQWJvcnRFcnJvcikuCisgICAgICAgIGlmIChlLm5hbWUgPT0gJ0Fib3J0
RXJyb3InKQorICAgICAgICAgICAgcmVzdWx0ID0gJ3N1Y2Nlc3NmdWwnOworICAgICAgICBlbHNl
CisgICAgICAgICAgICByZXN1bHQgPSAnZXJyb3I6ICcgKyAoZSA/IGUubmFtZSA6IG51bGwpOwor
ICAgIH0KKworICAgIGlmIChzdWJzY3JpcHRpb24pCisgICAgICAgIGF3YWl0IHN1YnNjcmlwdGlv
bi51bnN1YnNjcmliZSgpOworCisgICAgaWYgKHJlc3VsdCA9PSBleHBlY3RlZCkKKyAgICAgICAg
bG9nKGBQQVNTOiBkb2N1bWVudCBzdWJzY3JpYmUgd2FzICR7ZXhwZWN0ZWR9YCk7CisgICAgZWxz
ZQorICAgICAgICBsb2coYEZBSUw6IGRvY3VtZW50IHN1YnNjcmliZSBzaG91bGQgYmUgJHtleHBl
Y3RlZH0sIGJ1dCB3YXMgJHtyZXN1bHR9YCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJjZXMv
c3Vic2NyaWJlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvcmVz
b3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBkMGY3Zjc1ZDFjN2VlYWEx
YTQ1ZDBhN2M0MjY2ZDY2ODgyZDQzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanMKQEAgLTAsMCAr
MSw0MyBAQAorY29uc3QgVkFMSURfU0VSVkVSX0tFWSA9ICJCQTFIeHp5aTFSVU0xYjV3anhzbjdu
R3hBc3p3MnU2MW0xNjRpM01yQUl4SEY2WUs1aDRTRFlpYy1kUnVVX1JDUENmQTVhcTlvalN3azVZ
MkVtQ2xCUHMiOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBhc3luYyAoZXZl
bnQpID0+IHsKKyAgICBsZXQgW29wLCAuLi5hcmdzXSA9IGV2ZW50LmRhdGE7CisKKyAgICBpZiAo
b3AgPT0gJ3Blcm1pc3Npb25TdGF0ZScpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxl
dCBzdGF0ZSA9IGF3YWl0IHNlbGYucmVnaXN0cmF0aW9uLnB1c2hNYW5hZ2VyLnBlcm1pc3Npb25T
dGF0ZSgpOworICAgICAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKHN0YXRlKTsKKyAg
ICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdl
KCJlcnJvcjogIiArIGUpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChvcCA9PSAnc3Vic2Ny
aWJlJykgeworICAgICAgICBsZXQgc3Vic2NyaXB0aW9uID0gbnVsbDsKKyAgICAgICAgbGV0IHJl
c3VsdCA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9
IGF3YWl0IHNlbGYucmVnaXN0cmF0aW9uLnB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7CisgICAgICAg
ICAgICAgICAgdXNlclZpc2libGVPbmx5OiB0cnVlLAorICAgICAgICAgICAgICAgIGFwcGxpY2F0
aW9uU2VydmVyS2V5OiBhcmdzWzBdCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGlmIChz
dWJzY3JpcHRpb24pCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gInN1Y2Nlc3NmdWwiOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJlcnJvcjogbnVsbCBzdWJz
Y3JpcHRpb24iOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICBpZiAoIWUpCisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gImVycm9yOiBudWxsIGV4Y2VwdGlvbiI7CisgICAgICAg
ICAgICBlbHNlIGlmIChlLm5hbWUgPT0gJ0Fib3J0RXJyb3InKQorICAgICAgICAgICAgICAgIC8v
IExheW91dCB0ZXN0cyBjdXJyZW50bHkgYXJlbid0IGNvbm5lY3RlZCB0byB3ZWJwdXNoZC4gU28g
aWYgd2UgZmFpbCB3aXRoIGFuIEFib3J0RXJyb3IKKyAgICAgICAgICAgICAgICAvLyB3aGVuIHRy
eWluZyB0byBjb25uZWN0IHRvIHdlYnB1c2hkLCB3ZSBjb3VudCB0aGF0IGFzIGEgc3VjY2Vzc2Z1
bCBzdWJzY3JpcHRpb24gZm9yCisgICAgICAgICAgICAgICAgLy8gdGVzdGluZyBwdXJwb3Nlcy4K
KyAgICAgICAgICAgICAgICByZXN1bHQgPSAic3VjY2Vzc2Z1bCI7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gImVycm9yOiAiICsgZS5uYW1lOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKHN1YnNjcmlwdGlvbikKKyAgICAgICAgICAgIGF3YWl0IHN1YnNjcmlw
dGlvbi51bnN1YnNjcmliZSgpOworCisgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShy
ZXN1bHQpOworICAgIH0KK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
dXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25z
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmIxNjQwMmViYjAzOGFlNGUxODNmMTM1NGNmZDMw
YTVhZjUxY2U0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNo
LWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAor
UEFTUzogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyBwcm9tcHQKK1BBU1M6IHNlcnZpY2Ug
d29ya2VyIHN1YnNjcmliZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorUEFTUzogZG9jdW1l
bnQgc3Vic2NyaWJlIHdhcyBzdWNjZXNzZnVsCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNy
b3NzLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBp
L3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc3OGViYmFmNGY5ODNjMzZlYjA2Y2ZjMGJlMjFjY2JiOGZhMjIw
NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3Rh
dGUgd2FzIHByb21wdAorUEFTUzogZG9jdW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyBwcm9tcHQK
K1BBU1M6IHNlcnZpY2Ugd29ya2VyIHN1YnNjcmliZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJv
cgorUEFTUzogZG9jdW1lbnQgc3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRl
ZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUt
Y3Jvc3Mtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTNkNWViYjRiYTA0OTY2ZTA0YmZkYmE0YWEw
OGNjZDNmNmQ1YWE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9yaWdp
bi5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeworICAgIGlmIChl
dmVudC5kYXRhID09ICdmaW5pc2hQdXNoQVBJVGVzdCcpCisgICAgICAgIGZpbmlzaFB1c2hBUElU
ZXN0KCk7CisgICAgZWxzZQorICAgICAgICBsb2coZXZlbnQuZGF0YSk7Cit9OworPC9zY3JpcHQ+
Cis8aWZyYW1lIHNyYz0iaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wdXNoLWFwaS9yZXNvdXJjZXMv
c3Vic2NyaWJlLWlmcmFtZS1jcm9zcy1vcmlnaW4uaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vi
c2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVy
bWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWUz
MDE5YWY2OTYzMDQzODVmYTBlYmIyNmJlOTdjZDMzNmY0OGM1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNz
aW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQ
QVNTOiBzZXJ2aWNlIHdvcmtlciBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzogZG9j
dW1lbnQgcGVybWlzc2lvblN0YXRlIHdhcyBwcm9tcHQKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHN1
YnNjcmliZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorUEFTUzogZG9jdW1lbnQgc3Vic2Ny
aWJlIHdhcyBzdWNjZXNzZnVsCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2lu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0
LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0Nzk3ZTI5
YzI0NDVlNTZmYzZiNTAxNjMyNGIzNmQ4YjVkZjEwZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25z
LWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
dmVudCkgeworICAgIGlmIChldmVudC5kYXRhID09ICdmaW5pc2hQdXNoQVBJVGVzdCcpCisgICAg
ICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7CisgICAgZWxzZQorICAgICAgICBsb2coZXZlbnQuZGF0
YSk7Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL3N1YnNjcmliZS1pZnJh
bWUtc2FtZS1vcmlnaW4uaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQt
cGVybWlzc2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2Ny
aWJlLWRlZmF1bHQtcGVybWlzc2lvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODQyYzdjNzE4Mjk2MjFl
NWU2Y2RlOGI5ZTk2ZjljZWEyYTI0MmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy5odG1sCkBA
IC0wLDAgKzEsMjQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3B1
c2gtYXBpLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3Vi
c2NyaWJlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK25h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvc3Vic2NyaWJlLXdvcmtl
ci5qcyIsIHsgfSkudGhlbihhc3luYyAocmVnaXN0cmF0aW9uKSA9PiB7CisgICAgdHJ5IHsKKyAg
ICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAiYWN0aXZh
dGVkIik7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2aWNlV29ya2VyUGVybWlzc2lvblN0YXRlKHJl
Z2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRQZXJtaXNz
aW9uU3RhdGUocmVnaXN0cmF0aW9uLCAncHJvbXB0Jyk7CisgICAgICAgIGF3YWl0IHRlc3RTZXJ2
aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93ZWRFcnJvcicpOworICAg
ICAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9uKTsKKyAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgIGxvZyhgRkFJTDogdW5leHBlY3RlZCBleGNlcHRpb24gJHtlfWAp
OworICAgIH0gZmluYWxseSB7CisgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVy
KCk7CisgICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7CisgICAgfQorfSk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVz
aC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTQxMTIzNTI1MWJiOTIxMjIzNjk4NjgzZTMwNDk2Y2VmMjMyYjlh
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vi
c2NyaWJlLWRlbnktcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFT
Uzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0YXRlIHdhcyBkZW5pZWQKK1BBU1M6IGRvY3Vt
ZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMgZGVuaWVkCitQQVNTOiBzZXJ2aWNlIHdvcmtlciBzdWJz
Y3JpYmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IKK1BBU1M6IGRvY3VtZW50IHN1YnNjcmli
ZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjNjNDExZDkyYTk3NzVhNmU0YzAzN2NiNThhYjk1MDY1MjU3Zjk3Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2Ny
aWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbApAQCAtMCwwICsxLDI3IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVz
dFJ1bm5lci5kZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbih3aW5kb3cub3JpZ2luKTsKKwor
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9zdWJzY3JpYmUtd29y
a2VyLmpzIiwgeyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRpb24pID0+IHsKKyAgICB0cnkgewor
ICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICJhY3Rp
dmF0ZWQiKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9uU3RhdGUo
cmVnaXN0cmF0aW9uLCAnZGVuaWVkJyk7CisgICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFBlcm1p
c3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdkZW5pZWQnKTsKKyAgICAgICAgYXdhaXQgdGVzdFNl
cnZpY2VXb3JrZXJTdWJzY3JpYmUocmVnaXN0cmF0aW9uLCAnTm90QWxsb3dlZEVycm9yJyk7Cisg
ICAgICAgIGF3YWl0IHRlc3REb2N1bWVudFN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxv
d2VkRXJyb3InKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGxvZyhgRkFJTDogdW5leHBl
Y3RlZCBleGNlcHRpb24gJHtlfWApOworICAgIH0gZmluYWxseSB7CisgICAgICAgIGF3YWl0IHJl
Z2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7Cisg
ICAgfQorfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdy
YW50LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTRjODI4MmUwNGE3NzVh
YWRmMjQ2YmJmNTAyMTI2OGM3YjVhOGIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0YXRl
IHdhcyBncmFudGVkCitQQVNTOiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIGdyYW50ZWQK
K1BBU1M6IHNlcnZpY2Ugd29ya2VyIHN1YnNjcmliZSB3YXMgc3VjY2Vzc2Z1bAorUEFTUzogZG9j
dW1lbnQgc3Vic2NyaWJlIHdhcyBzdWNjZXNzZnVsCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9u
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjYxMzcwMWZlMTkzMDhiMzFkMWJjYmQzODQ3NGUxMzE1MzAxNzQ1
ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1
YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3B1c2gtYXBpLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbih3aW5kb3cub3JpZ2lu
KTsKKworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9zdWJzY3Jp
YmUtd29ya2VyLmpzIiwgeyB9KS50aGVuKGFzeW5jIChyZWdpc3RyYXRpb24pID0+IHsKKyAgICB0
cnkgeworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcs
ICJhY3RpdmF0ZWQiKTsKKyAgICAgICAgYXdhaXQgdGVzdFNlcnZpY2VXb3JrZXJQZXJtaXNzaW9u
U3RhdGUocmVnaXN0cmF0aW9uLCAnZ3JhbnRlZCcpOworICAgICAgICBhd2FpdCB0ZXN0RG9jdW1l
bnRQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLCAnZ3JhbnRlZCcpOworICAgICAgICBhd2Fp
dCB0ZXN0U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24pOworICAgICAgICBhd2Fp
dCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmUocmVnaXN0cmF0aW9uKTsKKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgIGxvZyhgRkFJTDogdW5leHBlY3RlZCBleGNlcHRpb24gJHtlfWApOworICAgIH0g
ZmluYWxseSB7CisgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAg
ICAgIGZpbmlzaFB1c2hBUElUZXN0KCk7CisgICAgfQorfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
ODJmOWRmYzcxZDI5NGYwY2I0NGU4ODIzZmY3NjhkMzZhM2ZlZjk0Zi4uNGJiM2U4NTE3ZDVlODAx
Mzg2NmY4N2U1N2RkZGZhOTQ2NzlmZGY3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTE4NzUsNCArMTg3NSwxMSBAQCB3ZWJraXQub3JnL2IvMjE0Mjkw
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0L3RleHQtZW5jb2Rp
bmcvcwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZmlsdGVyLWVmZmVjdHMv
c3ZnLWVtcHR5LWNvbnRhaW5lci13aXRoLWZpbHRlci1jb250ZW50LWFkZGVkLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvZWxlbWVudC9tYW51YWwvZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcy9pbWFnZS1vcmll
bnRhdGlvbi9kcmF3SW1hZ2Utd2l0aC1zcmMtcmVjdC50ZW50YXRpdmUuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogWyBSZWxlYXNlIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9lbWJlZGRlZC1jb250ZW50L3ZpZGVvLWNv
bnRyb2xzLXZlcnRpY2FsLXdyaXRpbmctbW9kZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9wcmVzZXJ2ZS11YS1oZWFkZXItb24t
cmVkaXJlY3QuaHRtIFsgRmFpbHVyZSBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoraW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvcHJlc2VydmUtdWEtaGVhZGVyLW9uLXJl
ZGlyZWN0Lmh0bSBbIEZhaWx1cmUgXQorCisjIFB1c2ggc3Vic2NyaXB0aW9uIHRlc3RzIGZhaWwg
d2l0aG91dCBwbGF0Zm9ybS1zcGVjaWZpYyBQdXNoQ3J5cHRvIGltcGxlbWVudGF0aW9ucy4KK2h0
dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNy
b3NzLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmli
ZS1kZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBd
CitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwg
WyBGYWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lv
bnMuaHRtbCBbIEZhaWx1cmUgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZ3JhbnQt
cGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRlNDY1MTAwNjA4OWFhYjE3OWFmNGRjZTg4MmQ1
NjYwNzk1MmFjOWMuLjc3OWIxY2ZmMzVhMmU2NDg2NDY2NjQwYWY3ZGFhNWVmNjdkNDI0NDAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3
NzIsNCArMTc3MiwxMSBAQCBmYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1hbHRlcm5hdGUt
aWZyYW1lLWJvZHktZGlyLWF0dHItZG9lcy1ub3QtdXBkYXRlLXNjcgogWyBCaWdTdXIrIGFybTY0
IF0gZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbmV3bGluZS1pbi1xdW90ZWQtY29udGVudC1j
cmFzaC5odG1sIFsgU2tpcCBdCiBbIEJpZ1N1cisgYXJtNjQgXSBlZGl0aW5nL2V4ZWNDb21tYW5k
L3Bhc3RlLWFzLXF1b3RhdGlvbi1kaXNjb25uZWN0ZWQtcGFyYWdyYXBoLWFuY2VzdG9yLWNyYXNo
Lmh0bWwgWyBTa2lwIF0KIAotd2Via2l0Lm9yZy9iLzIzNjUzMCBmYXN0L3RleHQvb3RzdmctY2Fu
dmFzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cit3ZWJraXQub3JnL2IvMjM2NTMwIGZhc3QvdGV4dC9vdHN2Zy1jYW52YXMuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQorCisjIFB1c2ggc3Vic2NyaXB0aW9uIHRlc3RzIGRvbid0IHdvcmsgd2l0
aG91dCBzZXJ2aWNlIHdvcmtlciBzdXBwb3J0LgoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3Jp
YmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mtb3JpZ2luLmh0bWwgWyBTa2lwIF0K
K2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1l
LXNhbWUtb3JpZ2luLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJl
LWRlZmF1bHQtcGVybWlzc2lvbnMuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9z
dWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3B1c2gt
YXBpL3N1YnNjcmliZS1ncmFudC1wZXJtaXNzaW9ucy5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGM3MWRkNTAyMjE1YWI4MjczYWEx
MmU4NGU0YTlhY2EzMGJiMTJjMTcuLjgwN2Q3NjU0ZmQwNDFhN2Y0NzJiNDQ4ZDhkYWJkOTlmM2Ux
OTZhYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC00
OTk1LDMgKzQ5OTUsMTAgQEAgZmFzdC90ZXh0L2xvY2FsZS1zaGFwaW5nLTMuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
dXNlckFnZW50U2hhZG93RE9NL2RlZmF1bHQtc3JjLW9iamVjdC1kYXRhLXVybC1ibG9ja2VkLmh0
bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tlZDIu
aHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvdXNlckFnZW50U2hhZG93RE9NL2RlZmF1bHQtc3JjLW9iamVjdC1kYXRhLXVybC1ibG9ja2Vk
My5odG1sIFsgRmFpbHVyZSBdCisKKyMgUHVzaCBzdWJzY3JpcHRpb24gdGVzdHMgZmFpbCB3aXRo
b3V0IHBsYXRmb3JtLXNwZWNpZmljIFB1c2hDcnlwdG8gaW1wbGVtZW50YXRpb25zLgoraHR0cC90
ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtY3Jvc3Mt
b3JpZ2luLmh0bWwgWyBGYWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRl
ZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLXNhbWUtb3JpZ2luLmh0bWwgWyBGYWlsdXJlIF0KK2h0
dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMuaHRtbCBbIEZh
aWx1cmUgXQoraHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy5o
dG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1ncmFudC1wZXJt
aXNzaW9ucy5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>