<?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>148326</bug_id>
          
          <creation_ts>2015-08-21 13:27:47 -0700</creation_ts>
          <short_desc>Improve how UI events are dispatched by WebKitTestRunner</short_desc>
          <delta_ts>2015-09-02 08:59:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>148155</dependson>
    
    <dependson>148470</dependson>
          <blocked>148709</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>dbates</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1119892</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-08-21 13:27:47 -0700</bug_when>
    <thetext>WebKitTestRunner uses a strange mix of synchronous and asynchronous events to simulate keyboard and mouse. WebKit2 has entire separate code paths to support that.

All this makes writing tests difficult, as WebKitTestRunner is difficult to predict, and this obviously reduces test coverage, as we test a custom code path.

Here is what the upcoming patch does:

- When testRunner is used to send a sync event (like a keyDown), the connection goes into a state where all the events become synchronous in both directions. So it&apos;s in a way like the current KeyEventSyncForTesting, but it guarantees that all other events that UI process sends at the same time get delivered in correct order.

This is not ideal, because even though page level code in WK2 is now the same, we make it work in a different way. In an ideal world, we would make all the tests that use keyboard and mouse events asynchronous - but I don&apos;t think that it&apos;s doable in practice.

A good thing is that all these tests just worked in the new mode, which means that it&apos;s quite close to real life code path, after all.

- When testRunner is used to send a scroll event, it&apos;s now fully asynchronous. Scrolling is always asynchronous in WK2, and so were most tests, but we used to have a strange mix of sync and async behaviors. It should all be more straightforward now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119915</commentid>
    <comment_count>1</comment_count>
      <attachid>259655</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-08-21 14:10:03 -0700</bug_when>
    <thetext>Created attachment 259655
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119932</commentid>
    <comment_count>2</comment_count>
      <attachid>259655</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-21 14:43:14 -0700</bug_when>
    <thetext>Comment on attachment 259655
proposed patch

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

&gt; Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h:91
&gt; +    void allowFullySynchronousModeForTesting() { m_fullySynchronousModeIsAllowedForTesting = true; }

This should be a getter/setter pair.

&gt; Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.h:58
&gt; +WK_EXPORT void WKContextConfigurationAllowFullySynchronousModeForTesting(WKContextConfigurationRef configuration);

Please add a getter/setter for this to match all the other WKContextConfiguration functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119979</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-08-21 16:12:52 -0700</bug_when>
    <thetext>Committed &lt;https://trac.webkit.org/r188793&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120128</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-08-22 12:33:09 -0700</bug_when>
    <thetext>Follow-up scrolling test tweak in r188827. It was flaky on some machines, randomly not scrolling where it should have, so I nudged some distances. Let&apos;s see if it helps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122819</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-09-02 08:58:55 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Committed &lt;https://trac.webkit.org/r188793&gt;.

Following this change, the tests fast/events/wheelevent-{basic, mousewheel-interaction}.html began to timeout in iOS Simulator WebKit Test Runner. See bug #148709.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259655</attachid>
            <date>2015-08-21 14:10:03 -0700</date>
            <delta_ts>2015-08-21 14:43:14 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>SyncForTesting.txt</filename>
            <type>text/plain</type>
            <size>181920</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODc3MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDk0IEBACisyMDE1LTA4LTIxICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgaG93IFVJIGV2
ZW50cyBhcmUgZGlzcGF0Y2hlZCBieSBXZWJLaXRUZXN0UnVubmVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgzMjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCAiZnVsbHkgc3luY2hyb25vdXMg
bW9kZSBmb3IgdGVzdGluZyIsIGluIHdoaWNoIGFsbCBtZXNzYWdlcyBhcmUgZGlzcGF0Y2hlZAor
ICAgICAgICBzeW5jaHJvbm91c2x5LgorCisgICAgICAgIFdoZW4gYW4gYXN5bmMgbWVzc2FnZSBp
cyBzZW50IGluIHRoaXMgbW9kZSwgaXQgaXMgd3JhcHBlZCBpbnRvIGEgc3luYyBvbmUgYXV0b21h
dGljYWxseS4KKworICAgICAgICBBIGNsaWVudCBtdXN0IG9wdCBpbiwgZWl0aGVyIGJ5IHVzaW5n
IFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKCksCisgICAgICAg
IG9yIGJ5IGNhbGxpbmcgV0tDb250ZXh0Q29uZmlndXJhdGlvbkFsbG93RnVsbHlTeW5jaHJvbm91
c01vZGVGb3JUZXN0aW5nKCkuCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0
IGluY3JlYXNlIHBvdGVudGlhbCBmb3IgSVBDIG1pc3VzZS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBZYXksIGZld2VyIG1lc3NhZ2VzIQorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRT
aG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaDoKKyAgICAgICAgV2Ugbm8gbG9uZ2VyIG5lZWQgV0tQ
YWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3VzbHkgYW5kIGFzc29jaWF0ZWQgY3VzdG9t
IG1lc3NhZ2VzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OnVwZGF0ZVdoZWVsRXZlbnRUZXN0VHJpZ2dlcnNJZk5lZWRlZCk6IERl
bGV0ZWQuCisgICAgICAgIFJlbW92ZWQgY29kZSB0aGF0IHdhcyBvbmx5IG5lZWRlZCB0byBzdXBw
b3J0IHBzZXVkby1zeW5jcm9ub3VzIHNjcm9sbGluZyBpbiB0ZXN0cy4KKworICAgICAgICAqIFBs
YXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2Vu
ZE1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRjaFN5bmNNZXNzYWdl
KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKToKKyAgICAgICAg
KiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjph
bGxvd0Z1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZyk6CisgICAgICAgIChJUEM6OkNvbm5l
Y3Rpb246OnNlbmRTeW5jKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIu
Y3BwOgorICAgICAgICAoSVBDOjpNZXNzYWdlRGVjb2Rlcjo6c2hvdWxkRGlzcGF0Y2hNZXNzYWdl
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICAoSVBDOjpNZXNzYWdlRGVjb2Rlcjo6
c2hvdWxkVXNlRnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nKToKKyAgICAgICAgKElQQzo6
TWVzc2FnZURlY29kZXI6OnNldEltcG9ydGFuY2VBc3NlcnRpb24pOgorICAgICAgICAoSVBDOjpN
ZXNzYWdlRGVjb2Rlcjo6dW53cmFwRm9yVGVzdGluZyk6CisgICAgICAgICogUGxhdGZvcm0vSVBD
L01lc3NhZ2VEZWNvZGVyLmg6CisgICAgICAgIChJUEM6Ok1lc3NhZ2VEZWNvZGVyOjpVVUlEKToK
KyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuY3BwOgorICAgICAgICAoSVBD
OjpNZXNzYWdlRW5jb2Rlcjo6c2V0U2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHkpOgorICAgICAgICAoSVBDOjpNZXNzYWdlRW5jb2Rlcjo6c2V0RnVsbHlTeW5jaHJv
bm91c01vZGVGb3JUZXN0aW5nKToKKyAgICAgICAgKElQQzo6TWVzc2FnZUVuY29kZXI6OndyYXBG
b3JUZXN0aW5nKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuaDoKKyAg
ICAgICAgKElQQzo6TWVzc2FnZUVuY29kZXI6OlVVSUQpOgorICAgICAgICAqIFBsYXRmb3JtL0lQ
Qy9NZXNzYWdlRmxhZ3MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bjo6Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZi5jcHA6CisgICAgICAgIChXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0TWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeSk6CisgICAgICAgIChXS0NvbnRleHRDb25maWd1cmF0aW9uQWxsb3dGdWxs
eVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlRXZlbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlbmRXaGVlbEV2ZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVuZGVyVHJl
ZVNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFNob3VsZFNlbmRFdmVu
dHNTeW5jaHJvbm91c2x5KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0RpZEZp
bmlzaExhdW5jaGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2UpOgor
ICAgICAgICAoV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcpOgor
ICAgICAgICAoV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZSk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6Om1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVXaGVlbEV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6d2hlZWxFdmVudCk6CisgICAgICAgIChX
ZWJLaXQ6OmhhbmRsZUtleUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6a2V5RXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp2YWxpZGF0ZUNvbW1hbmQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjp0b3VjaEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6c2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cG9zdE1lc3NhZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb3N0U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1vdXNlRXZlbnRTeW5jRm9yVGVzdGluZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OndoZWVsRXZlbnRTeW5jRm9yVGVzdGlu
Zyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmtleUV2ZW50U3luY0ZvclRl
c3RpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0b3VjaEV2ZW50U3lu
Y0ZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb3N0U3lu
Y2hyb25vdXNNZXNzYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oOgorCiAyMDE1LTA4LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVncmVzc2lvbihyMTg4Njk4KTogaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNh
Y2hlL2Rpc2stY2FjaGUtcmV2YWxpZGF0aW9uLW5ldy1leHBpcmUtaGVhZGVyLmh0bWwgaXMgdmVy
eSBmbGFreQpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNw
cAkocmV2aXNpb24gMTg4NzUyKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDksNiArMzQ5LDE0IEBAIGJvb2wgQ29ubmVj
dGlvbjo6c2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWUKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWRUb1Vz
ZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZyAmJiAhZW5jb2Rlci0+aXNTeW5jTWVzc2Fn
ZSgpICYmICEoZW5jb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09ICJJUEMiKSkgeworICAg
ICAgICB1aW50NjRfdCBzeW5jUmVxdWVzdElEOworICAgICAgICBhdXRvIHdyYXBwZWRNZXNzYWdl
ID0gY3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKCJJUEMiLCAiV3JhcHBlZEFzeW5jTWVzc2FnZUZv
clRlc3RpbmciLCBlbmNvZGVyLT5kZXN0aW5hdGlvbklEKCksIHN5bmNSZXF1ZXN0SUQpOworICAg
ICAgICB3cmFwcGVkTWVzc2FnZS0+c2V0RnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nKCk7
CisgICAgICAgIHdyYXBwZWRNZXNzYWdlLT53cmFwRm9yVGVzdGluZyhXVEY6Om1vdmUoZW5jb2Rl
cikpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4oc2VuZFN5bmNNZXNzYWdlKHN5
bmNSZXF1ZXN0SUQsIFdURjo6bW92ZSh3cmFwcGVkTWVzc2FnZSksIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHM6Om1heCgpKSk7CisgICAgfQorCiAgICAgaWYgKG1lc3NhZ2VTZW5kRmxhZ3MgJiBE
aXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkKICAgICAgICAgJiYgKCFt
X29ubHlTZW5kTWVzc2FnZXNBc0Rpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlXaGVuUHJv
Y2Vzc2luZ1N1Y2hBTWVzc2FnZQogICAgICAgICAgICAgfHwgbV9pbkRpc3BhdGNoTWVzc2FnZU1h
cmtlZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCkpCkBAIC04MzIsOCArODQw
LDIwIEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShNZXMKICAgICBhdXRv
IHJlcGx5RW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZUVuY29kZXI+KCJJUEMiLCAi
U3luY01lc3NhZ2VSZXBseSIsIHN5bmNSZXF1ZXN0SUQpOwogI2VuZGlmCiAKLSAgICAvLyBIYW5k
IG9mZiBib3RoIHRoZSBkZWNvZGVyIGFuZCBlbmNvZGVyIHRvIHRoZSBjbGllbnQuCi0gICAgbV9j
bGllbnQtPmRpZFJlY2VpdmVTeW5jTWVzc2FnZSgqdGhpcywgZGVjb2RlciwgcmVwbHlFbmNvZGVy
KTsKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gIklQQyIgJiYgZGVj
b2Rlci5tZXNzYWdlTmFtZSgpID09ICJXcmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZyIpIHsK
KyAgICAgICAgaWYgKCFtX2Z1bGx5U3luY2hyb25vdXNNb2RlSXNBbGxvd2VkRm9yVGVzdGluZykg
eworICAgICAgICAgICAgZGVjb2Rlci5tYXJrSW52YWxpZCgpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gdW53
cmFwcGVkRGVjb2RlciA9IE1lc3NhZ2VEZWNvZGVyOjp1bndyYXBGb3JUZXN0aW5nKGRlY29kZXIp
OworICAgICAgICBSRUxFQVNFX0FTU0VSVCh1bndyYXBwZWREZWNvZGVyKTsKKyAgICAgICAgcHJv
Y2Vzc0luY29taW5nTWVzc2FnZShXVEY6Om1vdmUodW53cmFwcGVkRGVjb2RlcikpOworCisgICAg
ICAgIFN5bmNNZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmRpc3BhdGNoTWVzc2FnZXMobnVsbHB0
cik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gSGFuZCBvZmYgYm90aCB0aGUgZGVjb2RlciBh
bmQgZW5jb2RlciB0byB0aGUgY2xpZW50LgorICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKCp0aGlzLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgIH0KIAogICAgIC8v
IEZJWE1FOiBJZiB0aGUgbWVzc2FnZSB3YXMgaW52YWxpZCwgd2Ugc2hvdWxkIHNlbmQgYmFjayBh
IFN5bmNNZXNzYWdlRXJyb3IuCiAgICAgQVNTRVJUKCFkZWNvZGVyLmlzSW52YWxpZCgpKTsKQEAg
LTg4Nyw2ICs5MDcsMTQgQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2Uoc3RkOjp1
bgogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChtZXNzYWdl
LT5zaG91bGRVc2VGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcoKSkgeworICAgICAgICBp
ZiAoIW1fZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93ZWRGb3JUZXN0aW5nKSB7CisgICAgICAg
ICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKCp0aGlzLCBtZXNzYWdlLT5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWRU
b1VzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZysrOworICAgIH0KKwogICAgIG1faW5E
aXNwYXRjaE1lc3NhZ2VDb3VudCsrOwogCiAgICAgaWYgKG1lc3NhZ2UtPnNob3VsZERpc3BhdGNo
TWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkpCkBAIC05MDgsNiArOTM2LDkgQEAgdm9p
ZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2Uoc3RkOjp1bgogICAgIGlmIChtZXNzYWdlLT5z
aG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpKQogICAgICAgICBt
X2luRGlzcGF0Y2hNZXNzYWdlTWFya2VkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNv
dW50LS07CiAKKyAgICBpZiAobWVzc2FnZS0+c2hvdWxkVXNlRnVsbHlTeW5jaHJvbm91c01vZGVG
b3JUZXN0aW5nKCkpCisgICAgICAgIG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWRUb1VzZUZ1bGx5
U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZy0tOworCiAgICAgaWYgKG1fZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlICYmIG1fY2xpZW50KQogICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKCp0aGlzLCBtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1lc3NhZ2Ut
Pm1lc3NhZ2VOYW1lKCkpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25u
ZWN0aW9uLmgJKHJldmlzaW9uIDE4ODc1MikKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDcgQEAgZW51bSBTeW5j
TWVzc2FnZVNlbmRGbGFncyB7CiAgICAgLy8gU29tZSBwbGF0Zm9ybSBhY2Nlc3NpYmlsaXR5IGNs
aWVudHMgY2FuJ3Qgc3VzcGVuZCBncmFjZWZ1bGx5IGFuZCBuZWVkIHRvIHNwaW4gdGhlIHJ1biBs
b29wIHNvIFdlYlByb2Nlc3MgZG9lc24ndCBoYW5nLgogICAgIC8vIEZJWE1FICgxMjYwMjEpOiBS
ZW1vdmUgd2hlbiBubyBwbGF0Zm9ybXMgbmVlZCB0byBzdXBwb3J0IHRoaXMuCiAgICAgU3BpblJ1
bkxvb3BXaGlsZVdhaXRpbmdGb3JSZXBseSA9IDEgPDwgMSwKKyAgICBVc2VGdWxseVN5bmNocm9u
b3VzTW9kZUZvclRlc3RpbmcgPSAxIDw8IDIsCiB9OwogCiBlbnVtIFdhaXRGb3JNZXNzYWdlRmxh
Z3MgewpAQCAtMjA1LDYgKzIwNiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVuaW5zdGFsbEluY29t
aW5nU3luY01lc3NhZ2VDYWxsYmFjayh1aW50NjRfdCk7CiAgICAgYm9vbCBoYXNJbmNvbWluZ1N5
bmNNZXNzYWdlKCk7CiAKKyAgICB2b2lkIGFsbG93RnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0
aW5nKCkgeyBtX2Z1bGx5U3luY2hyb25vdXNNb2RlSXNBbGxvd2VkRm9yVGVzdGluZyA9IHRydWU7
IH0KKwogcHJpdmF0ZToKICAgICBDb25uZWN0aW9uKElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIs
IENsaWVudCYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKElkZW50aWZpZXIpOwpAQCAt
MjU2LDYgKzI1OSw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9pblNlbmRTeW5jQ291bnQ7
CiAgICAgdW5zaWduZWQgbV9pbkRpc3BhdGNoTWVzc2FnZUNvdW50OwogICAgIHVuc2lnbmVkIG1f
aW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291
bnQ7CisgICAgdW5zaWduZWQgbV9pbkRpc3BhdGNoTWVzc2FnZU1hcmtlZFRvVXNlRnVsbHlTeW5j
aHJvbm91c01vZGVGb3JUZXN0aW5nIHsgMCB9OworICAgIGJvb2wgbV9mdWxseVN5bmNocm9ub3Vz
TW9kZUlzQWxsb3dlZEZvclRlc3RpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2U7CiAKICAgICAvLyBJbmNvbWluZyBtZXNzYWdlcy4KQEAgLTM2OCw3ICsz
NzMsMTIgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBDb25uZWN0aW9uOjpzZQogCiAgICAg
dWludDY0X3Qgc3luY1JlcXVlc3RJRCA9IDA7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VF
bmNvZGVyPiBlbmNvZGVyID0gY3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKFQ6OnJlY2VpdmVyTmFt
ZSgpLCBUOjpuYW1lKCksIGRlc3RpbmF0aW9uSUQsIHN5bmNSZXF1ZXN0SUQpOwotICAgIAorCisg
ICAgaWYgKHN5bmNTZW5kRmxhZ3MgJiBTeW5jTWVzc2FnZVNlbmRGbGFnczo6VXNlRnVsbHlTeW5j
aHJvbm91c01vZGVGb3JUZXN0aW5nKSB7CisgICAgICAgIGVuY29kZXItPnNldEZ1bGx5U3luY2hy
b25vdXNNb2RlRm9yVGVzdGluZygpOworICAgICAgICBtX2Z1bGx5U3luY2hyb25vdXNNb2RlSXNB
bGxvd2VkRm9yVGVzdGluZyA9IHRydWU7CisgICAgfQorCiAgICAgLy8gRW5jb2RlIHRoZSByZXN0
IG9mIHRoZSBpbnB1dCBhcmd1bWVudHMuCiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2UuYXJn
dW1lbnRzKCkpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZURl
Y29kZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNz
YWdlRGVjb2Rlci5jcHAJKHJldmlzaW9uIDE4ODc1MikKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDYgKzc0LDEx
IEBAIGJvb2wgTWVzc2FnZURlY29kZXI6OnNob3VsZERpc3BhdGNoTWVzc2EKICAgICByZXR1cm4g
bV9tZXNzYWdlRmxhZ3MgJiBEaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTsK
IH0KIAorYm9vbCBNZXNzYWdlRGVjb2Rlcjo6c2hvdWxkVXNlRnVsbHlTeW5jaHJvbm91c01vZGVG
b3JUZXN0aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tZXNzYWdlRmxhZ3MgJiBVc2VGdWxs
eVN5bmNocm9ub3VzTW9kZUZvclRlc3Rpbmc7Cit9CisKICNpZiBQTEFURk9STShNQUMpCiB2b2lk
IE1lc3NhZ2VEZWNvZGVyOjpzZXRJbXBvcnRhbmNlQXNzZXJ0aW9uKHN0ZDo6dW5pcXVlX3B0cjxJ
bXBvcnRhbmNlQXNzZXJ0aW9uPiBhc3NlcnRpb24pCiB7CkBAIC04MSw0ICs4NiwyMSBAQCB2b2lk
IE1lc3NhZ2VEZWNvZGVyOjpzZXRJbXBvcnRhbmNlQXNzZXJ0CiB9CiAjZW5kaWYKIAorc3RkOjp1
bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBNZXNzYWdlRGVjb2Rlcjo6dW53cmFwRm9yVGVzdGlu
ZyhNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBBU1NFUlQoZGVjb2Rlci5pc1N5bmNN
ZXNzYWdlKCkpOworCisgICAgVmVjdG9yPEF0dGFjaG1lbnQ+IGF0dGFjaG1lbnRzOworICAgIEF0
dGFjaG1lbnQgYXR0YWNobWVudDsKKyAgICB3aGlsZSAoZGVjb2Rlci5yZW1vdmVBdHRhY2htZW50
KGF0dGFjaG1lbnQpKQorICAgICAgICBhdHRhY2htZW50cy5hcHBlbmQoV1RGOjptb3ZlKGF0dGFj
aG1lbnQpKTsKKyAgICBhdHRhY2htZW50cy5yZXZlcnNlKCk7CisKKyAgICBEYXRhUmVmZXJlbmNl
IHdyYXBwZWRNZXNzYWdlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUod3JhcHBlZE1lc3NhZ2Up
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PE1lc3NhZ2VEZWNvZGVyPih3cmFwcGVkTWVzc2FnZSwgV1RGOjptb3ZlKGF0dGFjaG1lbnRzKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIElQQwpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL01lc3NhZ2VEZWNvZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL01lc3NhZ2VEZWNvZGVyLmgJKHJldmlzaW9uIDE4ODc1MikKKysrIFNvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2
ICs1NCw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTeW5jTWVzc2FnZSgpIGNvbnN0OwogICAg
IGJvb2wgc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSBjb25z
dDsKKyAgICBib29sIHNob3VsZFVzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZygpIGNv
bnN0OwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0SW1wb3J0YW5jZUFzc2VydGlv
bihzdGQ6OnVuaXF1ZV9wdHI8SW1wb3J0YW5jZUFzc2VydGlvbj4pOwpAQCAtNjksNiArNzAsOCBA
QCBwdWJsaWM6CiAgICAgY29uc3QgdXVpZF90JiBVVUlEKCkgY29uc3QgeyByZXR1cm4gbV9VVUlE
OyB9CiAjZW5kaWYKIAorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+
IHVud3JhcEZvclRlc3RpbmcoTWVzc2FnZURlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICB1aW50
OF90IG1fbWVzc2FnZUZsYWdzOwogICAgIFN0cmluZ1JlZmVyZW5jZSBtX21lc3NhZ2VSZWNlaXZl
ck5hbWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5j
b2Rlci5jcHAJKHJldmlzaW9uIDE4ODc1MikKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9NZXNzYWdlRW5jb2Rlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJNZXNzYWdlRW5jb2Rlci5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIK
KyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUZsYWdzLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVJlY29yZGVyLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgi
CkBAIC0xMDAsNCArMTAxLDI0IEBAIHZvaWQgTWVzc2FnZUVuY29kZXI6OnNldFNob3VsZERpc3Bh
dGNoTWUKICAgICAgICAgKmJ1ZmZlcigpICY9IH5EaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseTsKIH0KIAordm9pZCBNZXNzYWdlRW5jb2Rlcjo6c2V0RnVsbHlTeW5jaHJvbm91
c01vZGVGb3JUZXN0aW5nKCkKK3sKKyAgICAqYnVmZmVyKCkgfD0gVXNlRnVsbHlTeW5jaHJvbm91
c01vZGVGb3JUZXN0aW5nOworfQorCit2b2lkIE1lc3NhZ2VFbmNvZGVyOjp3cmFwRm9yVGVzdGlu
ZyhzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IG9yaWdpbmFsKQoreworICAgIEFTU0VS
VChpc1N5bmNNZXNzYWdlKCkpOworICAgIEFTU0VSVCghb3JpZ2luYWwtPmlzU3luY01lc3NhZ2Uo
KSk7CisKKyAgICBvcmlnaW5hbC0+c2V0U2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkodHJ1ZSk7CisKKyAgICBlbmNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShE
YXRhUmVmZXJlbmNlKG9yaWdpbmFsLT5idWZmZXIoKSwgb3JpZ2luYWwtPmJ1ZmZlclNpemUoKSkp
OworCisgICAgVmVjdG9yPEF0dGFjaG1lbnQ+IGF0dGFjaG1lbnRzID0gb3JpZ2luYWwtPnJlbGVh
c2VBdHRhY2htZW50cygpOworICAgIHJlc2VydmUoYXR0YWNobWVudHMuc2l6ZSgpKTsKKyAgICBm
b3IgKEF0dGFjaG1lbnQmIGF0dGFjaG1lbnQgOiBhdHRhY2htZW50cykKKyAgICAgICAgYWRkQXR0
YWNobWVudChXVEY6Om1vdmUoYXR0YWNobWVudCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBJUEMK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rlci5oCShy
ZXZpc2lvbiAxODg3NTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZUVu
Y29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsMTAgKzU2LDE0IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KGJvb2wp
OwogICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
KSBjb25zdDsKIAorICAgIHZvaWQgc2V0RnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nKCk7
CisKICNpZiBIQVZFKERUUkFDRSkKICAgICBjb25zdCB1dWlkX3QmIFVVSUQoKSBjb25zdCB7IHJl
dHVybiBtX1VVSUQ7IH0KICNlbmRpZgogCisgICAgdm9pZCB3cmFwRm9yVGVzdGluZyhzdGQ6OnVu
aXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+KTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGVuY29kZUhl
YWRlcigpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZUZsYWdz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VGbGFn
cy5oCShyZXZpc2lvbiAxODg3NTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVz
c2FnZUZsYWdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIElQ
QyB7CiBlbnVtIE1lc3NhZ2VGbGFncyB7CiAgICAgU3luY01lc3NhZ2UgPSAxIDw8IDAsCiAgICAg
RGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgPSAxIDw8IDEsCisgICAgVXNl
RnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nID0gMSA8PCAyLAogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSVBDCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAkocmV2aXNpb24gMTg4NzUyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyNyw3ICs0MjcsNiBAQCBXZWJQYWdlUHJveHk6
OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwCiAgICAgLCBtX3Nlc3Npb25SZXN0b3JhdGlvblJl
bmRlclRyZWVTaXplKDApCiAgICAgLCBtX3dhbnRzU2Vzc2lvblJlc3RvcmF0aW9uUmVuZGVyVHJl
ZVNpemVUaHJlc2hvbGRFdmVudChmYWxzZSkKICAgICAsIG1faGl0UmVuZGVyVHJlZVNpemVUaHJl
c2hvbGQoZmFsc2UpCi0gICAgLCBtX3Nob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KGZhbHNl
KQogICAgICwgbV9zdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKQogICAgICwgbV9hdXRv
U2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KGZhbHNlKQogICAgICwgbV9tZWRpYVZvbHVt
ZSgxKQpAQCAtMTY4NiwxMiArMTY4NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVNb3Vz
ZUV2ZW50KGNvbnMKICAgICBpZiAoZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpNb3VzZURvd24p
CiAgICAgICAgIG1fY3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPE5hdGl2ZVdlYk1vdXNlRXZlbnQ+KGV2ZW50KTsKIAotICAgIGlmIChtX3Nob3VsZFNl
bmRFdmVudHNTeW5jaHJvbm91c2x5KSB7Ci0gICAgICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwot
ICAgICAgICBtX3Byb2Nlc3MtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpNb3VzZUV2ZW50
U3luY0ZvclRlc3RpbmcoZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFnZTo6TW91c2VFdmVudFN5bmNG
b3JUZXN0aW5nOjpSZXBseShoYW5kbGVkKSwgbV9wYWdlSUQpOwotICAgICAgICBkaWRSZWNlaXZl
RXZlbnQoZXZlbnQudHlwZSgpLCBoYW5kbGVkKTsKLSAgICB9IGVsc2UKLSAgICAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpNb3VzZUV2ZW50KGV2ZW50KSwgbV9wYWdlSUQp
OworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TW91c2VFdmVudChldmVu
dCksIG1fcGFnZUlEKTsKIH0KIAogI2lmIE1FUkdFX1dIRUVMX0VWRU5UUwpAQCAtMTc5OCwxMyAr
MTc5Miw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZW5kV2hlZWxFdmVudChjb25zdCAKIHsKICAg
ICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RhcnQoKTsKIAotICAgIGlmICht
X3Nob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KSB7Ci0gICAgICAgIGJvb2wgaGFuZGxlZCA9
IGZhbHNlOwotICAgICAgICBtX3Byb2Nlc3MtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpX
aGVlbEV2ZW50U3luY0ZvclRlc3RpbmcoZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFnZTo6V2hlZWxF
dmVudFN5bmNGb3JUZXN0aW5nOjpSZXBseShoYW5kbGVkKSwgbV9wYWdlSUQpOwotICAgICAgICBk
aWRSZWNlaXZlRXZlbnQoZXZlbnQudHlwZSgpLCBoYW5kbGVkKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQogICAgIG1fcHJvY2Vzcy0+c2VuZCgKICAgICAgICAgTWVzc2FnZXM6OkV2ZW50RGlz
cGF0Y2hlcjo6V2hlZWxFdmVudCgKICAgICAgICAgICAgIG1fcGFnZUlELApAQCAtMTgyNiwxMSAr
MTgxMyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVLZXlib2FyZEV2ZW50KGMKICAgICBt
X2tleUV2ZW50UXVldWUuYXBwZW5kKGV2ZW50KTsKIAogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2
ZW5lc3NUaW1lcigpLT5zdGFydCgpOwotICAgIGlmIChtX3Nob3VsZFNlbmRFdmVudHNTeW5jaHJv
bm91c2x5KSB7Ci0gICAgICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwotICAgICAgICBtX3Byb2Nl
c3MtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpLZXlFdmVudFN5bmNGb3JUZXN0aW5nKGV2
ZW50KSwgTWVzc2FnZXM6OldlYlBhZ2U6OktleUV2ZW50U3luY0ZvclRlc3Rpbmc6OlJlcGx5KGhh
bmRsZWQpLCBtX3BhZ2VJRCk7Ci0gICAgICAgIGRpZFJlY2VpdmVFdmVudChldmVudC50eXBlKCks
IGhhbmRsZWQpOwotICAgIH0gZWxzZSBpZiAobV9rZXlFdmVudFF1ZXVlLnNpemUoKSA9PSAxKSAv
LyBPdGhlcndpc2UsIHNlbnQgZnJvbSBEaWRSZWNlaXZlRXZlbnQgbWVzc2FnZSBoYW5kbGVyLgor
ICAgIGlmIChtX2tleUV2ZW50UXVldWUuc2l6ZSgpID09IDEpIC8vIE90aGVyd2lzZSwgc2VudCBm
cm9tIERpZFJlY2VpdmVFdmVudCBtZXNzYWdlIGhhbmRsZXIuCiAgICAgICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6S2V5RXZlbnQoZXZlbnQpLCBtX3BhZ2VJRCk7CiB9CiAK
QEAgLTE5NzMsMTIgKzE5NTYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVu
dChjb25zCiAgICAgaWYgKCFtX2lzUGFnZVN1c3BlbmRlZCkgewogICAgICAgICBtX3RvdWNoRXZl
bnRRdWV1ZS5hcHBlbmQoZXZlbnQpOwogICAgICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNz
VGltZXIoKS0+c3RhcnQoKTsKLSAgICAgICAgaWYgKG1fc2hvdWxkU2VuZEV2ZW50c1N5bmNocm9u
b3VzbHkpIHsKLSAgICAgICAgICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwotICAgICAgICAgICAg
bV9wcm9jZXNzLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hFdmVudFN5bmNGb3JU
ZXN0aW5nKGV2ZW50KSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRvdWNoRXZlbnRTeW5jRm9yVGVzdGlu
Zzo6UmVwbHkoaGFuZGxlZCksIG1fcGFnZUlEKTsKLSAgICAgICAgICAgIGRpZFJlY2VpdmVFdmVu
dChldmVudC50eXBlKCksIGhhbmRsZWQpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hFdmVudChldmVudCksIG1fcGFn
ZUlEKTsKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpUb3VjaEV2
ZW50KGV2ZW50KSwgbV9wYWdlSUQpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChtX3RvdWNo
RXZlbnRRdWV1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGJvb2wgaXNFdmVudEhhbmRsZWQg
PSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJl
dmlzaW9uIDE4ODc1MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAkod29ya2luZyBjb3B5KQpAQCAtOTExLDggKzkxMSw2IEBAIHB1YmxpYzoKIAogICAgIHVpbnQ2
NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJUcmVlU2l6ZTsgfQog
Ci0gICAgdm9pZCBzZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseShib29sIHN5bmMpIHsg
bV9zaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseSA9IHN5bmM7IH07Ci0KICAgICB2b2lkIHBy
aW50TWFpbkZyYW1lKCk7CiAgICAgCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7CkBA
IC0xNzIzLDggKzE3MjEsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YW50c1Nlc3Npb25SZXN0
b3JhdGlvblJlbmRlclRyZWVTaXplVGhyZXNob2xkRXZlbnQ7CiAgICAgYm9vbCBtX2hpdFJlbmRl
clRyZWVTaXplVGhyZXNob2xkOwogCi0gICAgYm9vbCBtX3Nob3VsZFNlbmRFdmVudHNTeW5jaHJv
bm91c2x5OwotCiAgICAgYm9vbCBtX3N1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXM7CiAgICAgYm9v
bCBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7CiAgICAgV2ViQ29yZTo6SW50
U2l6ZSBtX21pbmltdW1MYXlvdXRTaXplOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCShyZXZpc2lvbiAxODg3NTIpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03ODIsNiAr
NzgyLDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0RpZEZpbmlzaExhdQogICAgICAg
ICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTdGFydE1lbW9yeVNhbXBsZXIo
c2FtcGxlTG9nU2FuZGJveEhhbmRsZSwgc2FtcGxlTG9nRmlsZVBhdGgsIG1fbWVtb3J5U2FtcGxl
ckludGVydmFsKSwgMCk7CiAgICAgfQogCisgICAgaWYgKG1fY29uZmlndXJhdGlvbi0+ZnVsbHlT
eW5jaHJvbm91c01vZGVJc0FsbG93ZWRGb3JUZXN0aW5nKCkpCisgICAgICAgIHByb2Nlc3MtPmNv
bm5lY3Rpb24oKS0+YWxsb3dGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcoKTsKKwogICAg
IG1fY29ubmVjdGlvbkNsaWVudC5kaWRDcmVhdGVDb25uZWN0aW9uKHRoaXMsIHByb2Nlc3MtPndl
YkNvbm5lY3Rpb24oKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
QVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAJKHJldmlz
aW9uIDE4ODc1MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsNyBAQCBSZWY8
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBQcm9jZXNzUG9vCiAgICAgY29weS0+bV9tZWRpYUtl
eXNTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+bV9tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5Owog
ICAgIGNvcHktPm1fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgPSB0aGlzLT5tX3dlYlNRTERhdGFi
YXNlRGlyZWN0b3J5OwogICAgIGNvcHktPm1fY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXMgPSB0
aGlzLT5tX2NhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzOworICAgIGNvcHktPm1fZnVsbHlTeW5j
aHJvbm91c01vZGVJc0FsbG93ZWRGb3JUZXN0aW5nID0gdGhpcy0+bV9mdWxseVN5bmNocm9ub3Vz
TW9kZUlzQWxsb3dlZEZvclRlc3Rpbmc7CiAgICAgCiAgICAgcmV0dXJuIGNvcHk7CiB9CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDE4ODc1MikKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTg3LDYgKzg3LDkgQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmlu
Zz4mIGNhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzKCkgeyByZXR1cm4gbV9jYWNoZVBhcnRpdGlv
bmVkVVJMU2NoZW1lczsgfQogICAgIHZvaWQgc2V0Q2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXMo
VmVjdG9yPFdURjo6U3RyaW5nPiYmIGNhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzKSB7IG1fY2Fj
aGVQYXJ0aXRpb25lZFVSTFNjaGVtZXMgPSBXVEY6Om1vdmUoY2FjaGVQYXJ0aXRpb25lZFVSTFNj
aGVtZXMpOyB9CiAKKyAgICBib29sIGZ1bGx5U3luY2hyb25vdXNNb2RlSXNBbGxvd2VkRm9yVGVz
dGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93ZWRGb3JU
ZXN0aW5nOyB9CisgICAgdm9pZCBhbGxvd0Z1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZygp
IHsgbV9mdWxseVN5bmNocm9ub3VzTW9kZUlzQWxsb3dlZEZvclRlc3RpbmcgPSB0cnVlOyB9CisK
IHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZEhhdmVMZWdhY3lEYXRhU3RvcmUgeyBmYWxzZSB9
OwogCkBAIC0xMDQsNiArMTA3LDcgQEAgcHJpdmF0ZToKICAgICBXVEY6OlN0cmluZyBtX3dlYlNR
TERhdGFiYXNlRGlyZWN0b3J5OwogICAgIFdURjo6U3RyaW5nIG1fbWVkaWFLZXlzU3RvcmFnZURp
cmVjdG9yeTsKICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fY2FjaGVQYXJ0aXRpb25lZFVSTFNj
aGVtZXM7CisgICAgYm9vbCBtX2Z1bGx5U3luY2hyb25vdXNNb2RlSXNBbGxvd2VkRm9yVGVzdGlu
ZyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJh
dGlvblJlZi5jcHAJKHJldmlzaW9uIDE4ODc1MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTExLDMgKzExMSw4IEBAIHZvaWQgV0tDb250ZXh0Q29uZmlndXJhdGlvblNldE1lZGlhS2V5c1MK
IHsKICAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rv
cnkodG9JbXBsKG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkpLT5zdHJpbmcoKSk7CiB9CisKK3Zv
aWQgV0tDb250ZXh0Q29uZmlndXJhdGlvbkFsbG93RnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0
aW5nKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICB0b0lt
cGwoY29uZmlndXJhdGlvbiktPmFsbG93RnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nKCk7
Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgJKHJldmlzaW9uIDE4ODc1MikKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgJKHdv
cmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDggQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q29u
ZmlndXJhdGlvblNldAogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQ29udGV4dENvbmZpZ3VyYXRp
b25Db3B5TWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVm
IGNvbmZpZ3VyYXRpb24pOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q29uZmlndXJhdGlvblNl
dE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25m
aWd1cmF0aW9uLCBXS1N0cmluZ1JlZiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KTsKIAorV0tf
RVhQT1JUIHZvaWQgV0tDb250ZXh0Q29uZmlndXJhdGlvbkFsbG93RnVsbHlTeW5jaHJvbm91c01v
ZGVGb3JUZXN0aW5nKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7CisK
ICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkocmV2aXNpb24gMTg4NzUyKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyODMsMTEg
KzIyODMsNiBAQCB2b2lkIFdLUGFnZUVuZFByaW50aW5nKFdLUGFnZVJlZiBwYWdlKQogfQogI2Vu
ZGlmCiAKLXZvaWQgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3VzbHkoV0tQYWdl
UmVmIHBhZ2UsIGJvb2wgc3luYykKLXsKLSAgICB0b0ltcGwocGFnZSktPnNldFNob3VsZFNlbmRF
dmVudHNTeW5jaHJvbm91c2x5KHN5bmMpOwotfQotCiBib29sIFdLUGFnZUdldEFsbG93c1JlbW90
ZUluc3BlY3Rpb24oV0tQYWdlUmVmIHBhZ2UpCiB7CiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNU
T1IpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2
YXRlLmgJKHJldmlzaW9uIDE4ODc1MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDggKzgyLDYgQEAgV0tfRVhQ
T1JUIHZvaWQgV0tQYWdlQmVnaW5QcmludGluZyhXS1BhZwogV0tfRVhQT1JUIHZvaWQgV0tQYWdl
RHJhd1BhZ2VzVG9QREYoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLUHJpbnRJ
bmZvIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBXS1BhZ2VEcmF3
VG9QREZGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBX
S1BhZ2VFbmRQcmludGluZyhXS1BhZ2VSZWYgcGFnZSk7CiAKLVdLX0VYUE9SVCB2b2lkIFdLUGFn
ZVNldFNob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KFdLUGFnZVJlZiBwYWdlLCBib29sIHN5
bmMpOwotCiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VHZXRBbGxvd3NSZW1vdGVJbnNwZWN0aW9uKFdL
UGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldEFsbG93c1JlbW90ZUluc3Bl
Y3Rpb24oV0tQYWdlUmVmIHBhZ2UsIGJvb2wgYWxsb3cpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2UuY3BwCShyZXZpc2lvbiAxODg3NTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTYwNSwxMSArNjA1LDEzIEBAIHZvaWQgV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2UoV0tC
dW5kbGVQYWcKICAgICB0b0ltcGwocGFnZVJlZiktPnBvc3RNZXNzYWdlKHRvV1RGU3RyaW5nKG1l
c3NhZ2VOYW1lUmVmKSwgdG9JbXBsKG1lc3NhZ2VCb2R5UmVmKSk7CiB9CiAKLXZvaWQgV0tCdW5k
bGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tT
dHJpbmdSZWYgbWVzc2FnZU5hbWVSZWYsIFdLVHlwZVJlZiBtZXNzYWdlQm9keVJlZiwgV0tUeXBl
UmVmKiByZXR1cm5EYXRhUmVmKQordm9pZCBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNz
YWdlRm9yVGVzdGluZyhXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYgbWVzc2Fn
ZU5hbWVSZWYsIFdLVHlwZVJlZiBtZXNzYWdlQm9keVJlZiwgV0tUeXBlUmVmKiByZXR1cm5EYXRh
UmVmKQogeworICAgIFdlYlBhZ2UqIHBhZ2UgPSB0b0ltcGwocGFnZVJlZik7CisgICAgcGFnZS0+
bGF5b3V0SWZOZWVkZWQoKTsKKwogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gcmV0dXJuRGF0YTsK
LSAgICB0b0ltcGwocGFnZVJlZiktPnBvc3RTeW5jaHJvbm91c01lc3NhZ2UodG9XVEZTdHJpbmco
bWVzc2FnZU5hbWVSZWYpLCB0b0ltcGwobWVzc2FnZUJvZHlSZWYpLCByZXR1cm5EYXRhKTsKKyAg
ICBwYWdlLT5wb3N0U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyh0b1dURlN0cmluZyhtZXNz
YWdlTmFtZVJlZiksIHRvSW1wbChtZXNzYWdlQm9keVJlZiksIHJldHVybkRhdGEpOwogICAgIGlm
IChyZXR1cm5EYXRhUmVmKQogICAgICAgICAqcmV0dXJuRGF0YVJlZiA9IHRvQVBJKHJldHVybkRh
dGEucmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9Ci0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuaAkocmV2aXNpb24gMTg4NzUyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDcg
KzExNSw5IEBAIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVRlc3ROb3RpZmljYXQKIFdLX0VY
UE9SVCB2b2lkIFdLQnVuZGxlUGFnZVJlZ2lzdGVyU2Nyb2xsT3BlcmF0aW9uQ29tcGxldGlvbkNh
bGxiYWNrKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVQYWdlVGVzdE5vdGlmaWNhdGlvbkNhbGxi
YWNrLCB2b2lkKiBjb250ZXh0KTsKIAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlUG9zdE1l
c3NhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5
cGVSZWYgbWVzc2FnZUJvZHkpOwotV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlUG9zdFN5bmNo
cm9ub3VzTWVzc2FnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZU5h
bWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSwgV0tUeXBlUmVmKiByZXR1cm5EYXRhKTsKKworLy8g
U3dpdGNoZXMgYSBjb25uZWN0aW9uIGludG8gYSBmdWxseSBzeW5jaHJvbm91cyBtb2RlLCBzbyBh
bGwgbWVzc2FnZXMgYmVjb21lIHN5bmNocm9ub3VzIHVudGlsIHdlIGdldCBhIHJlc3BvbnNlLgor
V0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3Rp
bmcoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVS
ZWYgbWVzc2FnZUJvZHksIFdLVHlwZVJlZiogcmV0dXJuRGF0YSk7CiAKICNpZmRlZiBfX2NwbHVz
cGx1cwogfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHJldmlzaW9uIDE4ODc1MikKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04OCwxOSArODgsNiBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6aW5pdGlhbGl6ZUNvbm5l
Y3RpCiAgICAgY29ubmVjdGlvbi0+YWRkV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpFdmVudERpc3BhdGNoZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgJm1fcXVldWUuZ2V0KCks
IHRoaXMpOwogfQogCi0jaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJF
Ul9CQU5ESU5HKQotc3RhdGljIHZvaWQgdXBkYXRlV2hlZWxFdmVudFRlc3RUcmlnZ2Vyc0lmTmVl
ZGVkKHVpbnQ2NF90IHBhZ2VJRCkKLXsKLSAgICBXZWJQYWdlKiB3ZWJQYWdlID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwotICAgIFBhZ2UqIHBhZ2UgPSB3ZWJQYWdl
ID8gd2ViUGFnZS0+Y29yZVBhZ2UoKSA6IG51bGxwdHI7Ci0KLSAgICBpZiAoIXBhZ2UgfHwgIXBh
Z2UtPmV4cGVjdHNXaGVlbEV2ZW50VHJpZ2dlcnMoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
cGFnZS0+dGVzdFRyaWdnZXIoKS0+ZGVmZXJUZXN0c0ZvclJlYXNvbihyZWludGVycHJldF9jYXN0
PFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihwYWdlKSwg
V2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkKTsKLX0KLSNl
bmRpZgotCiB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCh1aW50NjRfdCBwYWdlSUQs
IGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIGJvb2wgY2FuUnViYmVyQmFuZEF0TGVm
dCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRUb3AsIGJv
b2wgY2FuUnViYmVyQmFuZEF0Qm90dG9tKQogewogICAgIFBsYXRmb3JtV2hlZWxFdmVudCBwbGF0
Zm9ybVdoZWVsRXZlbnQgPSBwbGF0Zm9ybSh3aGVlbEV2ZW50KTsKQEAgLTE0NiwxMSArMTMzLDYg
QEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQodWludDY0XwogCiAgICAgICAgIFNj
cm9sbGluZ1RyZWU6OkV2ZW50UmVzdWx0IHJlc3VsdCA9IHNjcm9sbGluZ1RyZWUtPnRyeVRvSGFu
ZGxlV2hlZWxFdmVudChwbGF0Zm9ybVdoZWVsRXZlbnQpOwogCi0jaWYgRU5BQkxFKENTU19TQ1JP
TExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQotICAgICAgICBpZiAocmVzdWx0ID09
IFNjcm9sbGluZ1RyZWU6OkRpZEhhbmRsZUV2ZW50KQotICAgICAgICAgICAgdXBkYXRlV2hlZWxF
dmVudFRlc3RUcmlnZ2Vyc0lmTmVlZGVkKHBhZ2VJRCk7Ci0jZW5kaWYKLQogICAgICAgICBpZiAo
cmVzdWx0ID09IFNjcm9sbGluZ1RyZWU6OkRpZEhhbmRsZUV2ZW50IHx8IHJlc3VsdCA9PSBTY3Jv
bGxpbmdUcmVlOjpEaWROb3RIYW5kbGVFdmVudCkgewogICAgICAgICAgICAgc2VuZERpZFJlY2Vp
dmVFdmVudChwYWdlSUQsIHdoZWVsRXZlbnQsIHJlc3VsdCA9PSBTY3JvbGxpbmdUcmVlOjpEaWRI
YW5kbGVFdmVudCk7CiAgICAgICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAxODg3NTIpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIwNDksMzQgKzIwNDksNiBAQCB2b2lkIFdlYlBhZ2U6Om1vdXNlRXZlbnQoY29uc3Qg
V2ViTW91c2VFCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRSZWNlaXZlRXZl
bnQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1vdXNlRXZlbnQudHlwZSgpKSwgaGFuZGxlZCkpOwog
fQogCi12b2lkIFdlYlBhZ2U6Om1vdXNlRXZlbnRTeW5jRm9yVGVzdGluZyhjb25zdCBXZWJNb3Vz
ZUV2ZW50JiBtb3VzZUV2ZW50LCBib29sJiBoYW5kbGVkKQotewotI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi0gICAgaWYgKG1faXNTdGFydGluZ0RyYWcpCi0gICAgICAgIG1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCktPndhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpXZWJQ
YWdlOjpEaWRTdGFydERyYWc+KG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCksIHN0ZDo6Y2hy
b25vOjpzZWNvbmRzKDYwKSk7Ci0jZW5kaWYKLQotICAgIGhhbmRsZWQgPSBmYWxzZTsKLSNpZiAh
UExBVEZPUk0oSU9TKQotICAgIGlmICghaGFuZGxlZCAmJiBtX2hlYWRlckJhbm5lcikKLSAgICAg
ICAgaGFuZGxlZCA9IG1faGVhZGVyQmFubmVyLT5tb3VzZUV2ZW50KG1vdXNlRXZlbnQpOwotICAg
IGlmICghaGFuZGxlZCAmJiBtX2Zvb3RlckJhbm5lcikKLSAgICAgICAgaGFuZGxlZCA9IG1fZm9v
dGVyQmFubmVyLT5tb3VzZUV2ZW50KG1vdXNlRXZlbnQpOwotI2VuZGlmIC8vICFQTEFURk9STShJ
T1MpCi0KLSAgICBpZiAoIWhhbmRsZWQpIHsKLSAgICAgICAgQ3VycmVudEV2ZW50IGN1cnJlbnRF
dmVudChtb3VzZUV2ZW50KTsKLQotICAgICAgICAvLyBXZSBuZWVkIHRvIGRvIGEgZnVsbCwgbm9y
bWFsIGhpdCB0ZXN0IGR1cmluZyB0aGlzIG1vdXNlIGV2ZW50IGlmIHRoZSBwYWdlIGlzIGFjdGl2
ZSBvciBpZiBhIG1vdXNlCi0gICAgICAgIC8vIGJ1dHRvbiBpcyBjdXJyZW50bHkgcHJlc3NlZC4g
SXQgaXMgcG9zc2libGUgdGhhdCBuZWl0aGVyIG9mIHRob3NlIHRoaW5ncyB3aWxsIGJlIHRydWUg
c2luY2Ugb24gCi0gICAgICAgIC8vIExpb24gd2hlbiBsZWdhY3kgc2Nyb2xsYmFycyBhcmUgZW5h
YmxlZCwgV2ViS2l0IHJlY2VpdmVzIG1vdXNlIGV2ZW50cyBhbGwgdGhlIHRpbWUuIElmIGl0IGlz
IG9uZSAKLSAgICAgICAgLy8gb2YgdGhvc2UgY2FzZXMgd2hlcmUgdGhlIHBhZ2UgaXMgbm90IGFj
dGl2ZSBhbmQgdGhlIG1vdXNlIGlzIG5vdCBwcmVzc2VkLCB0aGVuIHdlIGNhbiBmaXJlIGEgbW9y
ZQotICAgICAgICAvLyBlZmZpY2llbnQgc2Nyb2xsYmFycy1vbmx5IHZlcnNpb24gb2YgdGhlIGV2
ZW50LgotICAgICAgICBib29sIG9ubHlVcGRhdGVTY3JvbGxiYXJzID0gIShtX3BhZ2UtPmZvY3Vz
Q29udHJvbGxlcigpLmlzQWN0aXZlKCkgfHwgKG1vdXNlRXZlbnQuYnV0dG9uKCkgIT0gV2ViTW91
c2VFdmVudDo6Tm9CdXR0b24pKTsKLSAgICAgICAgaGFuZGxlZCA9IGhhbmRsZU1vdXNlRXZlbnQo
bW91c2VFdmVudCwgdGhpcywgb25seVVwZGF0ZVNjcm9sbGJhcnMpOwotICAgIH0KLX0KLQogc3Rh
dGljIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50
LCBQYWdlKiBwYWdlKQogewogICAgIEZyYW1lJiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwpA
QCAtMjEwMSwxNiArMjA3Myw2IEBAIHZvaWQgV2ViUGFnZTo6d2hlZWxFdmVudChjb25zdCBXZWJX
aGVlbEUKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVFdmVudChz
dGF0aWNfY2FzdDx1aW50MzJfdD4od2hlZWxFdmVudC50eXBlKCkpLCBoYW5kbGVkKSk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6d2hlZWxFdmVudFN5bmNGb3JUZXN0aW5nKGNvbnN0IFdlYldoZWVsRXZl
bnQmIHdoZWVsRXZlbnQsIGJvb2wmIGhhbmRsZWQpCi17Ci0gICAgQ3VycmVudEV2ZW50IGN1cnJl
bnRFdmVudCh3aGVlbEV2ZW50KTsKLQotICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Ny
b2xsaW5nQ29vcmRpbmF0b3IgPSBtX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCi0gICAg
ICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5jb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpOwotCi0g
ICAgaGFuZGxlZCA9IGhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCwgbV9wYWdlLmdldCgpKTsK
LX0KLQogc3RhdGljIGJvb2wgaGFuZGxlS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYg
a2V5Ym9hcmRFdmVudCwgUGFnZSogcGFnZSkKIHsKICAgICBpZiAoIXBhZ2UtPm1haW5GcmFtZSgp
LnZpZXcoKSkKQEAgLTIxMzgsMTggKzIxMDAsNiBAQCB2b2lkIFdlYlBhZ2U6OmtleUV2ZW50KGNv
bnN0IFdlYktleWJvYXJkCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRSZWNl
aXZlRXZlbnQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGtleWJvYXJkRXZlbnQudHlwZSgpKSwgaGFu
ZGxlZCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmtleUV2ZW50U3luY0ZvclRlc3RpbmcoY29uc3Qg
V2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCwgYm9vbCYgaGFuZGxlZCkKLXsKLSAgICBD
dXJyZW50RXZlbnQgY3VycmVudEV2ZW50KGtleWJvYXJkRXZlbnQpOwotCi0gICAgRnJhbWUmIGZy
YW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAg
ICBmcmFtZS5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7Ci0KLSAgICBoYW5kbGVk
ID0gaGFuZGxlS2V5RXZlbnQoa2V5Ym9hcmRFdmVudCwgbV9wYWdlLmdldCgpKTsKLSAgICBpZiAo
IWhhbmRsZWQpCi0gICAgICAgIGhhbmRsZWQgPSBwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5
RXZlbnQoa2V5Ym9hcmRFdmVudCk7Ci19Ci0KIHZvaWQgV2ViUGFnZTo6dmFsaWRhdGVDb21tYW5k
KGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAg
Ym9vbCBpc0VuYWJsZWQgPSBmYWxzZTsKQEAgLTIyMTksMTIgKzIxNjksNiBAQCB2b2lkIFdlYlBh
Z2U6OnRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFCiAgICAgfQogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZUV2ZW50KHN0YXRpY19jYXN0PHVpbnQzMl90Pih0b3Vj
aEV2ZW50LnR5cGUoKSksIGhhbmRsZWQpKTsKIH0KLQotdm9pZCBXZWJQYWdlOjp0b3VjaEV2ZW50
U3luY0ZvclRlc3RpbmcoY29uc3QgV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgYm9vbCYgaGFu
ZGxlZCkKLXsKLSAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50KHRvdWNoRXZlbnQpOwotICAg
IGhhbmRsZWQgPSBoYW5kbGVUb3VjaEV2ZW50KHRvdWNoRXZlbnQsIG1fcGFnZS5nZXQoKSk7Ci19
CiAjZW5kaWYKIAogYm9vbCBXZWJQYWdlOjpzY3JvbGwoUGFnZSogcGFnZSwgU2Nyb2xsRGlyZWN0
aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC01MDE3LDEy
ICs0OTYxLDEyIEBAIHZvaWQgV2ViUGFnZTo6cG9zdE1lc3NhZ2UoY29uc3QgU3RyaW5nJiAKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkhhbmRsZU1lc3NhZ2UobWVzc2FnZU5hbWUs
IFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRs
ZXMobWVzc2FnZUJvZHkpKSkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnBvc3RTeW5jaHJvbm91c01l
c3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQVBJOjpPYmplY3QqIG1lc3NhZ2VCb2R5
LCBSZWZQdHI8QVBJOjpPYmplY3Q+JiByZXR1cm5EYXRhKQordm9pZCBXZWJQYWdlOjpwb3N0U3lu
Y2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBBUEk6
Ok9iamVjdCogbWVzc2FnZUJvZHksIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHJldHVybkRhdGEpCiB7
CiAgICAgVXNlckRhdGEgcmV0dXJuVXNlckRhdGE7CiAKICAgICBhdXRvJiB3ZWJQcm9jZXNzID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7Ci0gICAgaWYgKCFzZW5kU3luYyhNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpIYW5kbGVTeW5jaHJvbm91c01lc3NhZ2UobWVzc2FnZU5hbWUsIFVzZXJEYXRh
KHdlYlByb2Nlc3MudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyhtZXNzYWdlQm9keSkpKSwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlU3luY2hyb25vdXNNZXNzYWdlOjpSZXBseShyZXR1
cm5Vc2VyRGF0YSkpKQorICAgIGlmICghc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
SGFuZGxlU3luY2hyb25vdXNNZXNzYWdlKG1lc3NhZ2VOYW1lLCBVc2VyRGF0YSh3ZWJQcm9jZXNz
LnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXMobWVzc2FnZUJvZHkpKSksIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkhhbmRsZVN5bmNocm9ub3VzTWVzc2FnZTo6UmVwbHkocmV0dXJuVXNlckRhdGEp
LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjptYXgoKSwgSVBDOjpTeW5jTWVzc2FnZVNlbmRG
bGFnczo6VXNlRnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nKSkKICAgICAgICAgcmV0dXJu
RGF0YSA9IG51bGxwdHI7CiAgICAgZWxzZQogICAgICAgICByZXR1cm5EYXRhID0gd2ViUHJvY2Vz
cy50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHJldHVyblVzZXJEYXRhLm9iamVjdCgpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNp
b24gMTg4NzUyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtOTAwLDcgKzkwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFBhZ2VBY3Rpdml0eVN0YXRlKFdlYkNvcmU6OlBhZ2VBY3Rpdml0eVN0YXRlOjpGbGFncyk7CiAK
ICAgICB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSTo6T2Jq
ZWN0KiBtZXNzYWdlQm9keSk7Ci0gICAgdm9pZCBwb3N0U3luY2hyb25vdXNNZXNzYWdlKGNvbnN0
IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSTo6T2JqZWN0KiBtZXNzYWdlQm9keSwgUmVmUHRyPEFQ
STo6T2JqZWN0PiYgcmV0dXJuRGF0YSk7CisgICAgdm9pZCBwb3N0U3luY2hyb25vdXNNZXNzYWdl
Rm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBBUEk6Ok9iamVjdCogbWVzc2Fn
ZUJvZHksIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHJldHVybkRhdGEpOwogCiAjaWYgUExBVEZPUk0o
R1RLKQogICAgIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsKQEAgLTk4OSwxNSArOTg5
LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVVc2VyQWN0aXZpdHkoKTsKIAogICAgIHZv
aWQgbW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50Jik7Ci0gICAgdm9pZCBtb3VzZUV2ZW50
U3luY0ZvclRlc3RpbmcoY29uc3QgV2ViTW91c2VFdmVudCYsIGJvb2wmKTsKLSAgICB2b2lkIHdo
ZWVsRXZlbnRTeW5jRm9yVGVzdGluZyhjb25zdCBXZWJXaGVlbEV2ZW50JiwgYm9vbCYpOwogICAg
IHZvaWQga2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYpOwotICAgIHZvaWQga2V5RXZl
bnRTeW5jRm9yVGVzdGluZyhjb25zdCBXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCYpOwogI2lmIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgdG91Y2hFdmVudFN5bmMoY29uc3QgV2Vi
VG91Y2hFdmVudCYsIGJvb2wmIGhhbmRsZWQpOwogI2VsaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
ICAgICB2b2lkIHRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYpOwotICAgIHZvaWQgdG91
Y2hFdmVudFN5bmNGb3JUZXN0aW5nKGNvbnN0IFdlYlRvdWNoRXZlbnQmLCBib29sJiBoYW5kbGVk
KTsKICNlbmRpZgogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZvaWQgY29udGV4dE1l
bnVIaWRkZW4oKSB7IG1faXNTaG93aW5nQ29udGV4dE1lbnUgPSBmYWxzZTsgfQpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4JKHJldmlzaW9uIDE4ODc1MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMCArMzgsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBWaWV3V2lsbEVuZExp
dmVSZXNpemUoKQogCiAgICAgS2V5RXZlbnQoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50IGV2ZW50
KQotICAgIEtleUV2ZW50U3luY0ZvclRlc3RpbmcoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50IGV2
ZW50KSAtPiAoYm9vbCBoYW5kbGVkKQogICAgIE1vdXNlRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2
ZW50IGV2ZW50KQotICAgIE1vdXNlRXZlbnRTeW5jRm9yVGVzdGluZyhXZWJLaXQ6OldlYk1vdXNl
RXZlbnQgZXZlbnQpIC0+IChib29sIGhhbmRsZWQpCi0gICAgV2hlZWxFdmVudFN5bmNGb3JUZXN0
aW5nKFdlYktpdDo6V2ViV2hlZWxFdmVudCBldmVudCkgLT4gKGJvb2wgaGFuZGxlZCkKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgU2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNp
emUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpCiAgICAgU2V0TWF4aW11bVVub2JzY3VyZWRTaXpl
KFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKQpAQCAtMTA3LDcgKzEwNCw2IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAjaWYgIUVOQUJMRShJT1NfVE9VQ0hf
RVZFTlRTKSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIFRvdWNoRXZlbnQoV2ViS2l0OjpX
ZWJUb3VjaEV2ZW50IGV2ZW50KQotICAgIFRvdWNoRXZlbnRTeW5jRm9yVGVzdGluZyhXZWJLaXQ6
OldlYlRvdWNoRXZlbnQgZXZlbnQpIC0+IChib29sIGhhbmRsZWQpCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NzcwKQorKysgVG9vbHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTUtMDgtMjEgIEFsZXhleSBQcm9z
a3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92ZSBob3cgVUkgZXZlbnRz
IGFyZSBkaXNwYXRjaGVkIGJ5IFdlYktpdFRlc3RSdW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODMyNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaDoKKyAg
ICAgICAgUmVtb3ZlZCBhc3luY1Njcm9sbGluZyBmcm9tIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcywgaXQncyBub3cgYWx3YXlzCisgICAgICAgIGFzeW5jaHJvbm91cyAo
YW5kIHJlYWxseSwgaXQgaGFzIGFsd2F5cyBiZWVuIGZvciB0aGUgbW9zdCBwYXJ0KS4KKworICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlRG93
bik6IFVwZGF0ZWQgZm9yIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UgcmVuYW1p
bmcuCisgICAgICAgIChXVFI6OkV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlVXApOiBEaXR0
by4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VNb3ZlVG8pOiBE
aXR0by4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VGb3JjZURv
d24pOiBEaXR0by4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VG
b3JjZVVwKTogRGl0dG8uCisgICAgICAgIChXVFI6OkV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1v
dXNlRm9yY2VDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgIChXVFI6OkV2ZW50U2VuZGluZ0NvbnRy
b2xsZXI6OmxlYXBGb3J3YXJkKTogRGl0dG8uCisgICAgICAgIChXVFI6OkV2ZW50U2VuZGluZ0Nv
bnRyb2xsZXI6OnNjaGVkdWxlQXN5bmNocm9ub3VzQ2xpY2spOiBEaXR0by4KKyAgICAgICAgKFdU
Ujo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6a2V5RG93bik6IERpdHRvLgorICAgICAgICAoV1RS
OjpFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzY2hlZHVsZUFzeW5jaHJvbm91c0tleURvd24pOiBE
aXR0by4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VTY3JvbGxC
eSk6IEZvcmNlIGEgc2Nyb2xsaW5nIHRyZWUgY29tbWl0LiBJdCB1c2VkCisgICAgICAgIHRvIGJl
IGRvbmUgaW4gY3VzdG9tIFdlYktpdDIgY29kZSBmb3IgdGVzdCB3aGVlbCBldmVudCBoYW5kbGlu
Zy4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKTogR290IHJpZCBvZiBzeW5jIHZlcnNpb24uCisgICAg
ICAgIChXVFI6OkV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5
KTogQWRkZWQgYSBGSVhNRS4gVGhpcyBvbmUgaXMgd2VpcmQuCisgICAgICAgIChXVFI6OkV2ZW50
U2VuZGluZ0NvbnRyb2xsZXI6OmNvbnRleHRDbGljayk6IFVwZGF0ZWQgZm9yIFdLQnVuZGxlUGFn
ZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UgcmVuYW1pbmcuCisgICAgICAgIChXVFI6OkV2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXI6OmFkZFRvdWNoUG9pbnQpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6RXZl
bnRTZW5kaW5nQ29udHJvbGxlcjo6dXBkYXRlVG91Y2hQb2ludCk6IERpdHRvLgorICAgICAgICAo
V1RSOjpFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzZXRUb3VjaE1vZGlmaWVyKTogRGl0dG8uCisg
ICAgICAgIChXVFI6OkV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OnNldFRvdWNoUG9pbnRSYWRpdXMp
OiBEaXR0by4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6dG91Y2hTdGFy
dCk6IERpdHRvLgorICAgICAgICAoV1RSOjpFdmVudFNlbmRpbmdDb250cm9sbGVyOjp0b3VjaE1v
dmUpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6dG91Y2hF
bmQpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6dG91Y2hD
YW5jZWwpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6Y2xl
YXJUb3VjaFBvaW50cyk6IERpdHRvLgorICAgICAgICAoV1RSOjpFdmVudFNlbmRpbmdDb250cm9s
bGVyOjpyZWxlYXNlVG91Y2hQb2ludCk6IERpdHRvLgorICAgICAgICAoV1RSOjpFdmVudFNlbmRp
bmdDb250cm9sbGVyOjpjYW5jZWxUb3VjaFBvaW50KTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnBvc3RTZXRXaW5kb3dJc0tleSk6CisgICAgICAgIChXVFI6
OkluamVjdGVkQnVuZGxlOjpwb3N0U2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayk6CisgICAg
ICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjppc0dlb2xvY2F0aW9uUHJvdmlkZXJBY3RpdmUpOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6c2hvdWxkUHJvY2Vzc1dvcmtRdWV1ZSk6Cisg
ICAgICAgIFVwZGF0ZWQgZm9yIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UgcmVu
YW1pbmcuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZWN1cmVFdmVudElucHV0SXNF
bmFibGVkKTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOiBBbGxv
dyBoYW5kbGluZyB0aGUgbmV3IHRlc3Qgc3R5bGUgbWVzc2FnZXMuCisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUp
OiBSZW1vdmVkIGNhbGxzCisgICAgICAgIHRvIFdLUGFnZVNldFNob3VsZFNlbmRFdmVudHNTeW5j
aHJvbm91c2x5LCB3aGljaCB3ZSBubyBsb25nZXIgbmVlZC4KKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUpOiBNb3ZlZAorICAgICAgICAiTW91c2VTY3JvbGxCeSIgdG8gYXN5bmMgc2Vj
dGlvbiwgYW5kIGdvdCByaWQgb2YgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3Vz
bHkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1t
OgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3VzZU1vdmVUbyk6IEdvdCByaWQg
b2YgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3VzbHkuCisgICAgICAgIChXVFI6
OkV2ZW50U2VuZGVyUHJveHk6OmtleURvd24pOiBEaXR0by4KKyAgICAgICAgKFdUUjo6RXZlbnRT
ZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeSk6IERpdHRvLgorICAgICAgICAoV1RSOjpFdmVudFNl
bmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMpOiBEaXR0
by4KKwogMjAxNS0wOC0yMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4K
IAogICAgICAgICBTa2lwIG5vLWxsaW50IHRlc3RzIHRoYXQgZmFpbCBkdWUgdG8gcnVubmluZyBv
dXQgb2YgZXhlY3V0YWJsZSBtZW1vcnkgYWZ0ZXIgcjE4ODk2OQpJbmRleDogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE4ODc1MikKKysrIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NTgsNiArMzU4LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYwog
CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS0NvbnRleHRDb25maWd1cmF0aW9u
Q3JlYXRlKCkpOwogICAgIFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRJbmplY3RlZEJ1bmRsZVBh
dGgoY29uZmlndXJhdGlvbi5nZXQoKSwgaW5qZWN0ZWRCdW5kbGVQYXRoKCkpOworICAgIFdLQ29u
dGV4dENvbmZpZ3VyYXRpb25BbGxvd0Z1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZyhjb25m
aWd1cmF0aW9uLmdldCgpKTsKIAogICAgIGlmIChjb25zdCBjaGFyKiBkdW1wUmVuZGVyVHJlZVRl
bXAgPSBsaWJyYXJ5UGF0aEZvclRlc3RpbmcoKSkgewogICAgICAgICBTdHJpbmcgdGVtcG9yYXJ5
Rm9sZGVyID0gU3RyaW5nOjpmcm9tVVRGOChkdW1wUmVuZGVyVHJlZVRlbXApOwpAQCAtOTg3LDEz
ICs5ODgsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlS2V5RG93bk1lCiAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGxvY2F0aW9uS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiTG9jYXRpb24iKSk7CiAgICAgdW5zaWduZWQgbG9jYXRpb24g
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJ
bnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnks
IGxvY2F0aW9uS2V5LmdldCgpKSkpKTsKIAotICAgIGlmIChzeW5jaHJvbm91cykKLSAgICAgICAg
V0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3VzbHkobWFpbldlYlZpZXcoKS0+cGFn
ZSgpLCB0cnVlKTsKLQogICAgIG1fZXZlbnRTZW5kZXJQcm94eS0+a2V5RG93bihrZXksIG1vZGlm
aWVycywgbG9jYXRpb24pOwotCi0gICAgaWYgKHN5bmNocm9ub3VzKQotICAgICAgICBXS1BhZ2VT
ZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseShtYWluV2ViVmlldygpLT5wYWdlKCksIGZh
bHNlKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9k
eSkKQEAgLTEwMTMsNyArMTAwOCw2IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVN
ZXNzYWdlRnIKICAgICAgICAgICAgIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzID0gc3RhdGlj
X2Nhc3Q8V0tFdmVudE1vZGlmaWVycz4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJ
bnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnks
IG1vZGlmaWVyc0tleS5nZXQoKSkpKSk7CiAKICAgICAgICAgICAgIC8vIEZvcndhcmQgdG8gV2Vi
UHJvY2VzcwotICAgICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3Vz
bHkobWFpbldlYlZpZXcoKS0+cGFnZSgpLCBmYWxzZSk7CiAgICAgICAgICAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIk1vdXNlRG93biIpKQogICAg
ICAgICAgICAgICAgIG1fZXZlbnRTZW5kZXJQcm94eS0+bW91c2VEb3duKGJ1dHRvbiwgbW9kaWZp
ZXJzKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTEwMjgsNiArMTAyMiwxOCBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpkaWRSZWNlaXZlTWVzc2FnZUZyCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAorICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNz
YWdlTmFtZSwgIk1vdXNlU2Nyb2xsQnkiKSkgeworICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IHhLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJY
IikpOworICAgICAgICAgICAgZG91YmxlIHggPSBXS0RvdWJsZUdldFZhbHVlKHN0YXRpY19jYXN0
PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlv
bmFyeSwgeEtleS5nZXQoKSkpKTsKKworICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHlLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJZIikpOwor
ICAgICAgICAgICAgZG91YmxlIHkgPSBXS0RvdWJsZUdldFZhbHVlKHN0YXRpY19jYXN0PFdLRG91
YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwg
eUtleS5nZXQoKSkpKTsKKworICAgICAgICAgICAgLy8gRm9yd2FyZCB0byBXZWJQcm9jZXNzCisg
ICAgICAgICAgICBtX2V2ZW50U2VuZGVyUHJveHktPm1vdXNlU2Nyb2xsQnkoeCwgeSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIk1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcyIpKSB7CiAgICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
eEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlgiKSk7CiAgICAg
ICAgICAgICBkb3VibGUgeCA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVS
ZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB4S2V5
LmdldCgpKSkpOwpAQCAtMTA0MSw3ICsxMDQ3LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlk
UmVjZWl2ZU1lc3NhZ2VGcgogICAgICAgICAgICAgaW50IG1vbWVudHVtID0gc3RhdGljX2Nhc3Q8
aW50PihXS1VJbnQ2NEdldFZhbHVlKHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25h
cnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgbW9tZW50dW1LZXkuZ2V0KCkp
KSkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBGb3J3YXJkIHRvIFdlYlByb2Nlc3MK
LSAgICAgICAgICAgIFdLUGFnZVNldFNob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1haW5X
ZWJWaWV3KCktPnBhZ2UoKSwgZmFsc2UpOwogICAgICAgICAgICAgbV9ldmVudFNlbmRlclByb3h5
LT5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoeCwgeSwgcGhhc2UsIG1v
bWVudHVtKTsKIAogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTA3OSwxMiArMTA4NCwxMCBAQCBX
S1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RDb250cm9sbGVyOjpkCiAgICAgICAgICAgICBXS0V2
ZW50TW9kaWZpZXJzIG1vZGlmaWVycyA9IHN0YXRpY19jYXN0PFdLRXZlbnRNb2RpZmllcnM+KFdL
VUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0
ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBtb2RpZmllcnNLZXkuZ2V0KCkpKSkpOwog
CiAgICAgICAgICAgICAvLyBGb3J3YXJkIHRvIFdlYlByb2Nlc3MKLSAgICAgICAgICAgIFdLUGFn
ZVNldFNob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1haW5XZWJWaWV3KCktPnBhZ2UoKSwg
dHJ1ZSk7CiAgICAgICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJN
ZXNzYWdlTmFtZSwgIk1vdXNlRG93biIpKQogICAgICAgICAgICAgICAgIG1fZXZlbnRTZW5kZXJQ
cm94eS0+bW91c2VEb3duKGJ1dHRvbiwgbW9kaWZpZXJzKTsKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICBtX2V2ZW50U2VuZGVyUHJveHktPm1vdXNlVXAoYnV0dG9uLCBtb2RpZmll
cnMpOwotICAgICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3VzbHko
bWFpbldlYlZpZXcoKS0+cGFnZSgpLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAg
ICAgICAgfQogCkBAIC0xMDk2LDI0ICsxMDk5LDE4IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4g
VGVzdENvbnRyb2xsZXI6OmQKICAgICAgICAgICAgIGRvdWJsZSB5ID0gV0tEb3VibGVHZXRWYWx1
ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNz
YWdlQm9keURpY3Rpb25hcnksIHlLZXkuZ2V0KCkpKSk7CiAKICAgICAgICAgICAgIC8vIEZvcndh
cmQgdG8gV2ViUHJvY2VzcwotICAgICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5
bmNocm9ub3VzbHkobWFpbldlYlZpZXcoKS0+cGFnZSgpLCB0cnVlKTsKICAgICAgICAgICAgIG1f
ZXZlbnRTZW5kZXJQcm94eS0+bW91c2VNb3ZlVG8oeCwgeSk7Ci0gICAgICAgICAgICBXS1BhZ2VT
ZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseShtYWluV2ViVmlldygpLT5wYWdlKCksIGZh
bHNlKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAKICNpZiBQTEFURk9STShN
QUMpCiAgICAgICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHN1Yk1lc3NhZ2VO
YW1lLCAiTW91c2VGb3JjZURvd24iKSkgewotICAgICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2Vu
ZEV2ZW50c1N5bmNocm9ub3VzbHkobWFpbldlYlZpZXcoKS0+cGFnZSgpLCB0cnVlKTsKICAgICAg
ICAgICAgIG1fZXZlbnRTZW5kZXJQcm94eS0+bW91c2VGb3JjZURvd24oKTsKLSAgICAgICAgICAg
IFdLUGFnZVNldFNob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1haW5XZWJWaWV3KCktPnBh
Z2UoKSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIk1vdXNl
Rm9yY2VVcCIpKSB7Ci0gICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hy
b25vdXNseShtYWluV2ViVmlldygpLT5wYWdlKCksIHRydWUpOwogICAgICAgICAgICAgbV9ldmVu
dFNlbmRlclByb3h5LT5tb3VzZUZvcmNlVXAoKTsKLSAgICAgICAgICAgIFdLUGFnZVNldFNob3Vs
ZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1haW5XZWJWaWV3KCktPnBhZ2UoKSwgZmFsc2UpOwog
ICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KIApAQCAtMTEyMSw0NiArMTExOCwxMSBA
QCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RDb250cm9sbGVyOjpkCiAgICAgICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gZm9yY2VLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJGb3JjZSIpKTsKICAgICAgICAgICAgIGRvdWJsZSBmb3JjZSA9IFdL
RG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0
ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBmb3JjZUtleS5nZXQoKSkpKTsKIAotICAg
ICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3VzbHkobWFpbldlYlZp
ZXcoKS0+cGFnZSgpLCB0cnVlKTsKICAgICAgICAgICAgIG1fZXZlbnRTZW5kZXJQcm94eS0+bW91
c2VGb3JjZUNoYW5nZWQoZm9yY2UpOwotICAgICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2
ZW50c1N5bmNocm9ub3VzbHkobWFpbldlYlZpZXcoKS0+cGFnZSgpLCBmYWxzZSk7CiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICAgfQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAotICAg
ICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIk1v
dXNlU2Nyb2xsQnkiKSkgewotICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHhL
ZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJYIikpOwotICAgICAg
ICAgICAgZG91YmxlIHggPSBXS0RvdWJsZUdldFZhbHVlKHN0YXRpY19jYXN0PFdLRG91YmxlUmVm
PihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgeEtleS5n
ZXQoKSkpKTsKLQotICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHlLZXkgPSBh
ZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJZIikpOwotICAgICAgICAgICAg
ZG91YmxlIHkgPSBXS0RvdWJsZUdldFZhbHVlKHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0Rp
Y3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgeUtleS5nZXQoKSkp
KTsKLQotICAgICAgICAgICAgLy8gRm9yd2FyZCB0byBXZWJQcm9jZXNzCi0gICAgICAgICAgICBX
S1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseShtYWluV2ViVmlldygpLT5wYWdl
KCksIHRydWUpOwotICAgICAgICAgICAgbV9ldmVudFNlbmRlclByb3h5LT5tb3VzZVNjcm9sbEJ5
KHgsIHkpOwotICAgICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3Vz
bHkobWFpbldlYlZpZXcoKS0+cGFnZSgpLCBmYWxzZSk7Ci0gICAgICAgICAgICByZXR1cm4gMDsK
LSAgICAgICAgfQotCi0gICAgICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHN1
Yk1lc3NhZ2VOYW1lLCAiTW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzIikp
IHsKLSAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5ID0gYWRvcHRXSyhX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWCIpKTsKLSAgICAgICAgICAgIGRvdWJsZSB4
ID0gV0tEb3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5
R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHhLZXkuZ2V0KCkpKSk7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB5S2V5ID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWSIpKTsKLSAgICAgICAgICAgIGRv
dWJsZSB5ID0gV0tEb3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0
aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHlLZXkuZ2V0KCkpKSk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBwaGFz
ZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlBoYXNlIikpOwot
ICAgICAgICAgICAgaW50IHBoYXNlID0gc3RhdGljX2Nhc3Q8aW50PihXS1VJbnQ2NEdldFZhbHVl
KHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3Nh
Z2VCb2R5RGljdGlvbmFyeSwgcGhhc2VLZXkuZ2V0KCkpKSkpOwotICAgICAgICAgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IG1vbWVudHVtS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiTW9tZW50dW0iKSk7Ci0gICAgICAgICAgICBpbnQgbW9tZW50dW0gPSBz
dGF0aWNfY2FzdDxpbnQ+KFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+
KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBtb21lbnR1
bUtleS5nZXQoKSkpKSk7Ci0KLSAgICAgICAgICAgIC8vIEZvcndhcmQgdG8gV2ViUHJvY2Vzcwot
ICAgICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3VzbHkobWFpbldl
YlZpZXcoKS0+cGFnZSgpLCB0cnVlKTsKLSAgICAgICAgICAgIG1fZXZlbnRTZW5kZXJQcm94eS0+
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKHgsIHksIHBoYXNlLCBtb21l
bnR1bSk7Ci0gICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNs
eShtYWluV2ViVmlldygpLT5wYWdlKCksIGZhbHNlKTsKLSAgICAgICAgICAgIHJldHVybiAwOwot
ICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhzdWJNZXNzYWdlTmFtZSwgIkNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5IikpIHsKICAgICAg
ICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiWCIpKTsKICAgICAgICAgICAgIGRvdWJsZSB4ID0gV0tEb3Vi
bGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZv
cktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHhLZXkuZ2V0KCkpKSk7CkBAIC0xMTcyLDkgKzEx
MzQsNyBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RDb250cm9sbGVyOjpkCiAgICAgICAg
ICAgICBib29sIHBhZ2VkID0gc3RhdGljX2Nhc3Q8Ym9vbD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0
aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9k
eURpY3Rpb25hcnksIHBhZ2VkS2V5LmdldCgpKSkpKTsKIAogICAgICAgICAgICAgLy8gRm9yd2Fy
ZCB0byBXZWJQcm9jZXNzCi0gICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3lu
Y2hyb25vdXNseShtYWluV2ViVmlldygpLT5wYWdlKCksIHRydWUpOwogICAgICAgICAgICAgbV9l
dmVudFNlbmRlclByb3h5LT5jb250aW51b3VzTW91c2VTY3JvbGxCeSh4LCB5LCBwYWdlZCk7Ci0g
ICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseShtYWluV2Vi
VmlldygpLT5wYWdlKCksIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9
CiAKQEAgLTEyMzUsMzAgKzExOTUsMjIgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0Q29u
dHJvbGxlcjo6ZAogICAgICAgICB9CiAKICAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcoc3ViTWVzc2FnZU5hbWUsICJUb3VjaFN0YXJ0IikpIHsKLSAgICAgICAgICAgIFdL
UGFnZVNldFNob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1haW5XZWJWaWV3KCktPnBhZ2Uo
KSwgdHJ1ZSk7CiAgICAgICAgICAgICBtX2V2ZW50U2VuZGVyUHJveHktPnRvdWNoU3RhcnQoKTsK
LSAgICAgICAgICAgIFdLUGFnZVNldFNob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1haW5X
ZWJWaWV3KCktPnBhZ2UoKSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdl
TmFtZSwgIlRvdWNoTW92ZSIpKSB7Ci0gICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZl
bnRzU3luY2hyb25vdXNseShtYWluV2ViVmlldygpLT5wYWdlKCksIHRydWUpOwogICAgICAgICAg
ICAgbV9ldmVudFNlbmRlclByb3h5LT50b3VjaE1vdmUoKTsKLSAgICAgICAgICAgIFdLUGFnZVNl
dFNob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1haW5XZWJWaWV3KCktPnBhZ2UoKSwgZmFs
c2UpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIlRvdWNoRW5kIikpIHsK
LSAgICAgICAgICAgIFdLUGFnZVNldFNob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1haW5X
ZWJWaWV3KCktPnBhZ2UoKSwgdHJ1ZSk7CiAgICAgICAgICAgICBtX2V2ZW50U2VuZGVyUHJveHkt
PnRvdWNoRW5kKCk7Ci0gICAgICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hy
b25vdXNseShtYWluV2ViVmlldygpLT5wYWdlKCksIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVy
biAwOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcoc3ViTWVzc2FnZU5hbWUsICJUb3VjaENhbmNlbCIpKSB7Ci0gICAgICAgICAgICBXS1BhZ2VT
ZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseShtYWluV2ViVmlldygpLT5wYWdlKCksIHRy
dWUpOwogICAgICAgICAgICAgbV9ldmVudFNlbmRlclByb3h5LT50b3VjaENhbmNlbCgpOwotICAg
ICAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3VzbHkobWFpbldlYlZp
ZXcoKS0+cGFnZSgpLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQog
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE4ODc1MikK
KysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29u
dHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNyw3ICsyMTcsNyBAQCB2b2lkIEV2ZW50
U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlRG93bihpCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOwogICAgIFdLUmV0YWluUHRyPFdLTXV0YWJsZURpY3Rp
b25hcnlSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkoQWRvcHRXSywgY3JlYXRlTW91c2VNZXNz
YWdlQm9keShNb3VzZURvd24sIGJ1dHRvbiwgbW9kaWZpZXJzKSk7CiAKLSAgICBXS0J1bmRsZVBh
Z2VQb3N0U3luY2hyb25vdXNNZXNzYWdlKHBhZ2UsIEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0
KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOworICAgIFdLQnVuZGxlUGFnZVBv
c3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKHBhZ2UsIEV2ZW50U2VuZGVyTWVzc2FnZU5h
bWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOwogfQogCiB2b2lkIEV2
ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlVXAoaW50IGJ1dHRvbiwgSlNWYWx1ZVJlZiBtb2Rp
ZmllckFycmF5KQpAQCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxl
cjo6bW91c2VVcChpbnQKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gRXZlbnRTZW5kZXJN
ZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRXZlbnRT
ZW5kZXIiKSk7CiAgICAgV0tSZXRhaW5QdHI8V0tNdXRhYmxlRGljdGlvbmFyeVJlZj4gRXZlbnRT
ZW5kZXJNZXNzYWdlQm9keShBZG9wdFdLLCBjcmVhdGVNb3VzZU1lc3NhZ2VCb2R5KE1vdXNlVXAs
IGJ1dHRvbiwgbW9kaWZpZXJzKSk7CiAKLSAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNN
ZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRT
ZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgMCk7
CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0
ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VO
YW1lLmdldCgpLCBFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCAwKTsKIH0KIAogdm9pZCBF
dmVudFNlbmRpbmdDb250cm9sbGVyOjptb3VzZU1vdmVUbyhpbnQgeCwgaW50IHkpCkBAIC0yNTIs
NyArMjUyLDcgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjptb3VzZU1vdmVUbwogCiAg
ICAgbV9wb3NpdGlvbiA9IFdLUG9pbnRNYWtlKHgsIHkpOwogICAgIAotICAgIFdLQnVuZGxlUGFn
ZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2Uo
KS0+cGFnZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1lc3Nh
Z2VCb2R5LmdldCgpLCAwKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdl
Rm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIEV2
ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCks
IDApOwogfQogCiB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlRm9yY2VEb3duKCkK
QEAgLTI2NCw3ICsyNjQsNyBAQCB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlRm9y
Y2VECiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHN1Yk1lc3NhZ2VOYW1lKEFkb3B0V0ss
IFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJNb3VzZUZvcmNlRG93biIpKTsKICAgICBX
S0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHN1Yk1lc3Nh
Z2VLZXkuZ2V0KCksIHN1Yk1lc3NhZ2VOYW1lLmdldCgpKTsKIAotICAgIFdLQnVuZGxlUGFnZVBv
c3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+
cGFnZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1lc3NhZ2VC
b2R5LmdldCgpLCAwKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlRm9y
VGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIEV2ZW50
U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDAp
OwogfQogCiB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlRm9yY2VVcCgpCkBAIC0y
NzYsNyArMjc2LDcgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjptb3VzZUZvcmNlVQog
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW91c2VGb3JjZVVwIikpOwogICAgIFdLRGljdGlv
bmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgc3ViTWVzc2FnZUtleS5n
ZXQoKSwgc3ViTWVzc2FnZU5hbWUuZ2V0KCkpOwogCi0gICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNo
cm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCks
IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0
KCksIDApOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5n
KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJN
ZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgMCk7CiB9CiAK
IHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VGb3JjZUNoYW5nZWQoZG91YmxlIGZv
cmNlKQpAQCAtMjkyLDcgKzI5Miw3IEBAIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91
c2VGb3JjZUMKICAgICBXS1JldGFpblB0cjxXS0RvdWJsZVJlZj4gZm9yY2VSZWYoQWRvcHRXSywg
V0tEb3VibGVDcmVhdGUoZm9yY2UpKTsKICAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2Vu
ZGVyTWVzc2FnZUJvZHkuZ2V0KCksIGZvcmNlS2V5LmdldCgpLCBmb3JjZVJlZi5nZXQoKSk7CiAK
LSAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpz
aW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwg
RXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgMCk7CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5
bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBh
Z2UoKS0+cGFnZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1l
c3NhZ2VCb2R5LmdldCgpLCAwKTsKIH0KIAogdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjps
ZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKQpAQCAtMzA4LDcgKzMwOCw3IEBAIHZvaWQgRXZl
bnRTZW5kaW5nQ29udHJvbGxlcjo6bGVhcEZvcndhcmQKICAgICBXS1JldGFpblB0cjxXS1VJbnQ2
NFJlZj4gdGltZVJlZihBZG9wdFdLLCBXS1VJbnQ2NENyZWF0ZShtaWxsaXNlY29uZHMpKTsKICAg
ICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHRpbWVL
ZXkuZ2V0KCksIHRpbWVSZWYuZ2V0KCkpOwogCi0gICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9u
b3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIEV2
ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCks
IDApOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNz
YWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgMCk7CiB9CiAKIHZv
aWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6c2NoZWR1bGVBc3luY2hyb25vdXNDbGljaygpCkBA
IC0zNTksNyArMzU5LDcgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjprZXlEb3duKEpT
UwogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBFdmVudFNlbmRlck1lc3NhZ2VOYW1lKEFk
b3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJFdmVudFNlbmRlciIpKTsKICAg
ICBXS1JldGFpblB0cjxXS011dGFibGVEaWN0aW9uYXJ5UmVmPiBrZXlEb3duTWVzc2FnZUJvZHkg
PSBjcmVhdGVLZXlEb3duTWVzc2FnZUJvZHkoa2V5LCBtb2RpZmllcnMsIGxvY2F0aW9uKTsKIAot
ICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNp
bmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBr
ZXlEb3duTWVzc2FnZUJvZHkuZ2V0KCksIDApOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJv
bm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCkt
PnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwga2V5RG93bk1lc3NhZ2VCb2R5
LmdldCgpLCAwKTsKIH0KIAogdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzY2hlZHVsZUFz
eW5jaHJvbm91c0tleURvd24oSlNTdHJpbmdSZWYga2V5KQpAQCAtMzg3LDEwICszODcsMTEgQEAg
dm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjptb3VzZVNjcm9sbAogICAgIFdLUmV0YWluUHRy
PFdLRG91YmxlUmVmPiB5UmVmKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKHkpKTsKICAgICBXS0Rp
Y3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHlLZXkuZ2V0KCks
IHlSZWYuZ2V0KCkpOwogCi0gICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJ
bmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIEV2ZW50U2VuZGVyTWVz
c2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOworICAgIFdL
QnVuZGxlUGFnZUZvcmNlUmVwYWludChJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgp
LT5wYWdlKCkpOyAvLyBUcmlnZ2VycyBhIHNjcm9sbGluZyB0cmVlIGNvbW1pdC4KKyAgICBXS0J1
bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5w
YWdlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJv
ZHkuZ2V0KCkpOwogfQogCi12b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIEpTU3RyaW5nUmVmIHBo
YXNlU3RyLCBKU1N0cmluZ1JlZiBtb21lbnR1bVN0ciwgYm9vbCBhc3luY1Njcm9sbGluZykKK3Zv
aWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKGludCB4LCBpbnQgeSwgSlNTdHJpbmdSZWYgcGhhc2VTdHIsIEpTU3RyaW5nUmVm
IG1vbWVudHVtU3RyKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBFdmVudFNlbmRl
ck1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJFdmVu
dFNlbmRlciIpKTsKICAgICBXS1JldGFpblB0cjxXS011dGFibGVEaWN0aW9uYXJ5UmVmPiBFdmVu
dFNlbmRlck1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKSk7
CkBAIC00MzksMTAgKzQ0MCw4IEBAIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VT
Y3JvbGwKICAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJlZj4gbW9tZW50dW1SZWYoQWRvcHRXSywg
V0tVSW50NjRDcmVhdGUobW9tZW50dW0pKTsKICAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50
U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIG1vbWVudHVtS2V5LmdldCgpLCBtb21lbnR1bVJlZi5n
ZXQoKSk7CiAKLSAgICBpZiAoYXN5bmNTY3JvbGxpbmcpCi0gICAgICAgIFdLQnVuZGxlUGFnZVBv
c3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZl
bnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSk7
Ci0gICAgZWxzZQotICAgICAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlKElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNz
YWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgMCk7CisgICAgV0tC
dW5kbGVQYWdlRm9yY2VSZXBhaW50KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCkt
PnBhZ2UoKSk7IC8vIFRyaWdnZXJzIGEgc2Nyb2xsaW5nIHRyZWUgY29tbWl0LgorICAgIFdLQnVu
ZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBh
Z2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9k
eS5nZXQoKSk7CiB9CiAKIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6Y29udGludW91c01v
dXNlU2Nyb2xsQnkoaW50IHgsIGludCB5LCBib29sIHBhZ2VkKQpAQCAtNDY2LDcgKzQ2NSw5IEBA
IHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6Y29udGludW91c00KICAgICBXS1JldGFpblB0
cjxXS1VJbnQ2NFJlZj4gcGFnZWRSZWYoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUocGFnZWQpKTsK
ICAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHBh
Z2VkS2V5LmdldCgpLCBwYWdlZFJlZi5nZXQoKSk7CiAKLSAgICBXS0J1bmRsZVBhZ2VQb3N0U3lu
Y2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2Uo
KSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5n
ZXQoKSwgMCk7CisgICAgLy8gRklYTUU6IFRoaXMgbWVzc2FnZSBzaG91bGQgYmUgYXN5bmNocm9u
b3VzLCBhcyBzY3JvbGxpbmcgaXMgaW50cmluc2ljYWxseSBhc3luY2hyb25vdXMuCisgICAgLy8g
U2VlIGFsc286IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MjU2
Pi4KKyAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhJbmpl
Y3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIEV2ZW50U2VuZGVyTWVzc2Fn
ZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOwogfQogCiBKU1Zh
bHVlUmVmIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OmNvbnRleHRDbGljaygpCkBAIC02MTIsNyAr
NjEzLDcgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjphZGRUb3VjaFBvaQogICAgIFdL
UmV0YWluUHRyPFdLVUludDY0UmVmPiB5UmVmKEFkb3B0V0ssIFdLVUludDY0Q3JlYXRlKHkpKTsK
ICAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHlL
ZXkuZ2V0KCksIHlSZWYuZ2V0KCkpOwogCi0gICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3Vz
TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIEV2ZW50
U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDAp
OworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdl
TmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgMCk7CiB9CiAKIHZvaWQg
RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6dXBkYXRlVG91Y2hQb2ludChpbnQgaW5kZXgsIGludCB4
LCBpbnQgeSkKQEAgLTYzNiw3ICs2MzcsNyBAQCB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6
OnVwZGF0ZVRvdWNoCiAgICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IHlSZWYoQWRvcHRXSywg
V0tVSW50NjRDcmVhdGUoeSkpOwogICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJN
ZXNzYWdlQm9keS5nZXQoKSwgeUtleS5nZXQoKSwgeVJlZi5nZXQoKSk7CiAKLSAgICBXS0J1bmRs
ZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5w
YWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJN
ZXNzYWdlQm9keS5nZXQoKSwgMCk7CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVz
c2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgp
LCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1lc3NhZ2VCb2R5Lmdl
dCgpLCAwKTsKIH0KIAogdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzZXRUb3VjaE1vZGlm
aWVyKGNvbnN0IEpTU3RyaW5nUmVmICZtb2RpZmllciwgYm9vbCBlbmFibGUpCkBAIC02NjYsNyAr
NjY3LDcgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzZXRUb3VjaE1vZAogICAgIFdL
UmV0YWluUHRyPFdLVUludDY0UmVmPiBlbmFibGVSZWYoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUo
ZW5hYmxlKSk7CiAgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5
LmdldCgpLCBlbmFibGVLZXkuZ2V0KCksIGVuYWJsZVJlZi5nZXQoKSk7CiAKLSAgICBXS0J1bmRs
ZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5w
YWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJN
ZXNzYWdlQm9keS5nZXQoKSwgMCk7CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVz
c2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgp
LCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1lc3NhZ2VCb2R5Lmdl
dCgpLCAwKTsKIH0KIAogCkBAIC02ODcsNyArNjg4LDcgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250
cm9sbGVyOjpzZXRUb3VjaFBvaQogICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVmPiB5UmVmKEFk
b3B0V0ssIFdLVUludDY0Q3JlYXRlKHJhZGl1c1kpKTsKICAgICBXS0RpY3Rpb25hcnlTZXRJdGVt
KEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHlLZXkuZ2V0KCksIHlSZWYuZ2V0KCkpOwog
Ci0gICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6
c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCks
IEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOworICAgIFdLQnVuZGxlUGFnZVBvc3RT
eW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5w
YWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJN
ZXNzYWdlQm9keS5nZXQoKSwgMCk7CiB9CiAKIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6
dG91Y2hTdGFydCgpCkBAIC02OTksNyArNzAwLDcgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250cm9s
bGVyOjp0b3VjaFN0YXJ0KAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdl
TmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVG91Y2hTdGFydCIp
KTsKICAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCks
IHN1Yk1lc3NhZ2VLZXkuZ2V0KCksIHN1Yk1lc3NhZ2VOYW1lLmdldCgpKTsKIAotICAgIFdLQnVu
ZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigp
LnBhZ2UoKS0+cGFnZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRl
ck1lc3NhZ2VCb2R5LmdldCgpLCAwKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNN
ZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdl
KCksIEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHku
Z2V0KCksIDApOwogfQogCiB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OnRvdWNoTW92ZSgp
CkBAIC03MTEsNyArNzEyLDcgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjp0b3VjaE1v
dmUoKQogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdlTmFtZShBZG9wdFdL
LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVG91Y2hNb3ZlIikpOwogICAgIFdLRGlj
dGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgc3ViTWVzc2FnZUtl
eS5nZXQoKSwgc3ViTWVzc2FnZU5hbWUuZ2V0KCkpOwogCi0gICAgV0tCdW5kbGVQYWdlUG9zdFN5
bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdl
KCksIEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHku
Z2V0KCksIDApOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0
aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5k
ZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgMCk7CiB9
CiAKIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6dG91Y2hFbmQoKQpAQCAtNzIzLDcgKzcy
NCw3IEBAIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6dG91Y2hFbmQoKQogICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiVG91Y2hFbmQiKSk7CiAgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShF
dmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBzdWJNZXNzYWdlS2V5LmdldCgpLCBzdWJNZXNz
YWdlTmFtZS5nZXQoKSk7CiAKLSAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdl
KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJN
ZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgMCk7CisgICAg
V0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5k
bGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdl
dCgpLCBFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCAwKTsKIH0KIAogdm9pZCBFdmVudFNl
bmRpbmdDb250cm9sbGVyOjp0b3VjaENhbmNlbCgpCkBAIC03MzUsNyArNzM2LDcgQEAgdm9pZCBF
dmVudFNlbmRpbmdDb250cm9sbGVyOjp0b3VjaENhbmNlbAogICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBzdWJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVG91Y2hDYW5jZWwiKSk7CiAgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRl
ck1lc3NhZ2VCb2R5LmdldCgpLCBzdWJNZXNzYWdlS2V5LmdldCgpLCBzdWJNZXNzYWdlTmFtZS5n
ZXQoKSk7CiAKLSAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFt
ZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgMCk7CisgICAgV0tCdW5kbGVQ
YWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVu
dFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCAwKTsKIH0KIAogdm9pZCBFdmVudFNlbmRpbmdDb250
cm9sbGVyOjpjbGVhclRvdWNoUG9pbnRzKCkKQEAgLTc0Nyw3ICs3NDgsNyBAQCB2b2lkIEV2ZW50
U2VuZGluZ0NvbnRyb2xsZXI6OmNsZWFyVG91Y2hQCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHN1Yk1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJDbGVhclRvdWNoUG9pbnRzIikpOwogICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5k
ZXJNZXNzYWdlQm9keS5nZXQoKSwgc3ViTWVzc2FnZUtleS5nZXQoKSwgc3ViTWVzc2FnZU5hbWUu
Z2V0KCkpOwogCi0gICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3Rl
ZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5h
bWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOworICAgIFdLQnVuZGxl
UGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5n
bGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZl
bnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgMCk7CiB9CiAKIHZvaWQgRXZlbnRTZW5kaW5nQ29u
dHJvbGxlcjo6cmVsZWFzZVRvdWNoUG9pbnQoaW50IGluZGV4KQpAQCAtNzYzLDcgKzc2NCw3IEBA
IHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6cmVsZWFzZVRvdWMKICAgICBXS1JldGFpblB0
cjxXS1VJbnQ2NFJlZj4gaW5kZXhSZWYoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUoaW5kZXgpKTsK
ICAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIGlu
ZGV4S2V5LmdldCgpLCBpbmRleFJlZi5nZXQoKSk7CiAKLSAgICBXS0J1bmRsZVBhZ2VQb3N0U3lu
Y2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2Uo
KSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5n
ZXQoKSwgMCk7CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3Rp
bmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBFdmVudFNlbmRl
ck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCAwKTsKIH0K
IAogdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpjYW5jZWxUb3VjaFBvaW50KGludCBpbmRl
eCkKQEAgLTc3OSw3ICs3ODAsNyBAQCB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OmNhbmNl
bFRvdWNoCiAgICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IGluZGV4UmVmKEFkb3B0V0ssIFdL
VUludDY0Q3JlYXRlKGluZGV4KSk7CiAgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRl
ck1lc3NhZ2VCb2R5LmdldCgpLCBpbmRleEtleS5nZXQoKSwgaW5kZXhSZWYuZ2V0KCkpOwogCi0g
ICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2lu
Z2xldG9uKCkucGFnZSgpLT5wYWdlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2
ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIDApOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5j
aHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdl
KCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNz
YWdlQm9keS5nZXQoKSwgMCk7CiB9CiAjZW5kaWYKIApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250
cm9sbGVyLmgJKHJldmlzaW9uIDE4ODc1MikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01
MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdXNlRm9yY2VVcCgpOwogICAgIHZvaWQg
bW91c2VGb3JjZUNoYW5nZWQoZG91YmxlIGZvcmNlKTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnko
aW50IHgsIGludCB5KTsKLSAgICB2b2lkIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcyhpbnQgeCwgaW50IHksIEpTU3RyaW5nUmVmIHBoYXNlLCBKU1N0cmluZ1JlZiBtb21l
bnR1bSwgYm9vbCBhc3luY1Njcm9sbGluZyk7CisgICAgdm9pZCBtb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBKU1N0cmluZ1JlZiBwaGFzZSwgSlNT
dHJpbmdSZWYgbW9tZW50dW0pOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkoaW50
IHgsIGludCB5LCBib29sIHBhZ2VkKTsKICAgICBKU1ZhbHVlUmVmIGNvbnRleHRDbGljaygpOwog
ICAgIHZvaWQgbGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcyk7CkluZGV4OiBUb29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcAkocmV2aXNpb24gMTg4NzUyKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4MSw3ICszODEs
NyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpwb3N0U2V0V2luZG93SXNLZXkoCiB7CiAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJTZXRXaW5kb3dJc0tleSIpKTsKICAgICBXS1JldGFpblB0cjxXS0Jv
b2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShpc0tleSkpOwot
ICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UocGFnZSgpLT5wYWdlKCksIG1l
c3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgMCk7CisgICAgV0tCdW5kbGVQYWdl
UG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcocGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VO
YW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgMCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5k
bGU6OnBvc3RTaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklEKQpAQCAtNDY4LDcgKzQ2OCw3IEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGU6OmlzR2VvbG9jYXRp
b25Qcm92aWQKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRv
cHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIklzR2VvbG9jYXRpb25DbGllbnRB
Y3RpdmUiKSk7CiAgICAgV0tUeXBlUmVmIHJlc3VsdFRvUGFzcyA9IDA7Ci0gICAgV0tCdW5kbGVQ
YWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShwYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0
KCksIDAsICZyZXN1bHRUb1Bhc3MpOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01l
c3NhZ2VGb3JUZXN0aW5nKHBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgMCwgJnJl
c3VsdFRvUGFzcyk7CiAgICAgV0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBpc0FjdGl2ZShBZG9w
dFdLLCBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KHJlc3VsdFRvUGFzcykpOwogCiAgICAgcmV0
dXJuIFdLQm9vbGVhbkdldFZhbHVlKGlzQWN0aXZlLmdldCgpKTsKQEAgLTUyNCw3ICs1MjQsNyBA
QCBib29sIEluamVjdGVkQnVuZGxlOjpzaG91bGRQcm9jZXNzV29ya1F1CiAKICAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIklzV29ya1F1ZXVlRW1wdHkiKSk7CiAgICAgV0tUeXBlUmVmIHJlc3VsdFRv
UGFzcyA9IDA7Ci0gICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShwYWdlKCkt
PnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIDAsICZyZXN1bHRUb1Bhc3MpOworICAgIFdLQnVu
ZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKHBhZ2UoKS0+cGFnZSgpLCBt
ZXNzYWdlTmFtZS5nZXQoKSwgMCwgJnJlc3VsdFRvUGFzcyk7CiAgICAgV0tSZXRhaW5QdHI8V0tC
b29sZWFuUmVmPiBpc0VtcHR5KEFkb3B0V0ssIHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4ocmVz
dWx0VG9QYXNzKSk7CiAKICAgICByZXR1cm4gIVdLQm9vbGVhbkdldFZhbHVlKGlzRW1wdHkuZ2V0
KCkpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCShyZXZpc2lvbiAxODg3NTIpCisrKyBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
MzEsNyArODMxLDcgQEAgYm9vbCBUZXN0UnVubmVyOjpzZWN1cmVFdmVudElucHV0SXNFbmFibAog
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2VjdXJlRXZlbnRJbnB1dElzRW5hYmxlZCIpKTsKICAg
ICBXS1R5cGVSZWYgcmV0dXJuRGF0YSA9IDA7CiAKLSAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hy
b25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwg
bWVzc2FnZU5hbWUuZ2V0KCksIDAsICZyZXR1cm5EYXRhKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0
U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCku
cGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCAwLCAmcmV0dXJuRGF0YSk7CiAgICAg
cmV0dXJuIFdLQm9vbGVhbkdldFZhbHVlKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4ocmV0dXJu
RGF0YSkpOwogfQogCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29u
dHJvbGxlci5pZGwJKHJldmlzaW9uIDE4ODc1MikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgaW50ZXJmYWNlIEV2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIgewogICAgIHZvaWQgbW91c2VGb3JjZVVwKCk7CiAgICAgdm9pZCBtb3VzZUZvcmNlQ2hhbmdl
ZChkb3VibGUgZm9yY2UpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeShsb25nIHgsIGxvbmcgeSk7
Ci0gICAgdm9pZCBtb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMobG9uZyB4
LCBsb25nIHksIERPTVN0cmluZyBwaGFzZSwgRE9NU3RyaW5nIG1vbWVudHVtLCBvcHRpb25hbCBi
b29sZWFuIGFzeW5jU2Nyb2xsaW5nKTsKKyAgICB2b2lkIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcyhsb25nIHgsIGxvbmcgeSwgRE9NU3RyaW5nIHBoYXNlLCBET01TdHJp
bmcgbW9tZW50dW0pOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkobG9uZyB4LCBs
b25nIHksIG9wdGlvbmFsIGJvb2xlYW4gcGFnZWQpOwogICAgIG9iamVjdCBjb250ZXh0Q2xpY2so
KTsKICAgICB2b2lkIHNjaGVkdWxlQXN5bmNocm9ub3VzQ2xpY2soKTsKSW5kZXg6IFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQkocmV2aXNpb24gMTg4
NzUyKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQko
d29ya2luZyBjb3B5KQpAQCAtNDE3LDkgKzQxNyw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6
bW91c2VNb3ZlVG8oZG91YmwKICAgICBOU1ZpZXcgKnRhcmdldFZpZXcgPSBbbV90ZXN0Q29udHJv
bGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkgaGl0VGVzdDpbZXZlbnQgbG9jYXRp
b25JbldpbmRvd11dOwogICAgIGlmICh0YXJnZXRWaWV3KSB7CiAgICAgICAgIFtOU0FwcCBfc2V0
Q3VycmVudEV2ZW50OmV2ZW50XTsKLSAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5
bmNocm9ub3VzbHkobV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGFnZSgpLCB0cnVl
KTsKICAgICAgICAgW3RhcmdldFZpZXcgbW91c2VNb3ZlZDpldmVudF07Ci0gICAgICAgIFdLUGFn
ZVNldFNob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1fdGVzdENvbnRyb2xsZXItPm1haW5X
ZWJWaWV3KCktPnBhZ2UoKSwgZmFsc2UpOwogICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVu
dDpuaWxdOwogICAgIH0gZWxzZSB7CiAgICAgICAgIE5TUG9pbnQgd2luZG93TG9jYXRpb24gPSBb
ZXZlbnQgbG9jYXRpb25JbldpbmRvd107CkBAIC02MTIsOCArNjEwLDYgQEAgdm9pZCBFdmVudFNl
bmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5nUgogICAgIGlmIChrZXlMb2NhdGlvbiA9PSAweDAz
IC8qRE9NX0tFWV9MT0NBVElPTl9OVU1QQUQqLykKICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBO
U051bWVyaWNQYWRLZXlNYXNrOwogCi0gICAgLy8gRklYTUU6IFtbW21haW5GcmFtZSBmcmFtZVZp
ZXddIGRvY3VtZW50Vmlld10gbGF5b3V0XTsKLQogICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZl
bnQga2V5RXZlbnRXaXRoVHlwZTpOU0tleURvd24KICAgICAgICAgICAgICAgICAgICAgICAgIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCiAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmll
ckZsYWdzOm1vZGlmaWVyRmxhZ3MKQEAgLTY1OCw5ICs2NTQsNyBAQCB2b2lkIEV2ZW50U2VuZGVy
UHJveHk6Om1vdXNlU2Nyb2xsQnkoaW50CiAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBl
dmVudFdpdGhDR0V2ZW50OmNnU2Nyb2xsRXZlbnQuZ2V0KCldOwogICAgIGlmIChOU1ZpZXcgKnRh
cmdldFZpZXcgPSBbbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3
KCkgaGl0VGVzdDpbZXZlbnQgbG9jYXRpb25JbldpbmRvd11dKSB7CiAgICAgICAgIFtOU0FwcCBf
c2V0Q3VycmVudEV2ZW50OmV2ZW50XTsKLSAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50
c1N5bmNocm9ub3VzbHkobV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGFnZSgpLCB0
cnVlKTsKICAgICAgICAgW3RhcmdldFZpZXcgc2Nyb2xsV2hlZWw6ZXZlbnRdOwotICAgICAgICBX
S1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseShtX3Rlc3RDb250cm9sbGVyLT5t
YWluV2ViVmlldygpLT5wYWdlKCksIGZhbHNlKTsKICAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50
RXZlbnQ6bmlsXTsKICAgICB9IGVsc2UgewogICAgICAgICBOU1BvaW50IGxvY2F0aW9uID0gW2V2
ZW50IGxvY2F0aW9uSW5XaW5kb3ddOwpAQCAtNjkzLDkgKzY4Nyw3IEBAIHZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGgKICAgICAvLyBPdXIgZXZlbnQgc2hvdWxkIGhhdmUg
dGhlIGNvcnJlY3Qgc2V0dGluZ3M6CiAgICAgaWYgKE5TVmlldyAqdGFyZ2V0VmlldyA9IFttX3Rl
c3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSBoaXRUZXN0OltldmVu
dCBsb2NhdGlvbkluV2luZG93XV0pIHsKICAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6
ZXZlbnRdOwotICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3luY2hyb25vdXNseSht
X3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wYWdlKCksIHRydWUpOwogICAgICAgICBb
dGFyZ2V0VmlldyBzY3JvbGxXaGVlbDpldmVudF07Ci0gICAgICAgIFdLUGFnZVNldFNob3VsZFNl
bmRFdmVudHNTeW5jaHJvbm91c2x5KG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBh
Z2UoKSwgZmFsc2UpOwogICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpuaWxdOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIE5TUG9pbnQgd2luZG93TG9jYXRpb24gPSBbZXZlbnQgbG9jYXRp
b25JbldpbmRvd107CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODg3NzApCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw5NCBAQAorMjAxNS0wOC0yMSAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGhvdyBV
SSBldmVudHMgYXJlIGRpc3BhdGNoZWQgYnkgV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MzI2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9jbGVhci1k
cmFnLXN0YXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9jbGVhci1kcmFn
LXN0YXRlLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICBUaGlzIHRlc3QgdXNlZCB0byBhY2NpZGVudGFsbHkgcGFzcyBpbiBXZWJLaXQy
LCBidXQgaXQgZGlkbid0IGFjdHVhbGx5IGNoZWNrCisgICAgICAgIGZvciB0aGUgcHJvYmxlbS4g
VGhpcyBwYXRjaCBpbXByb3ZlcyBXSzIgYmVoYXZpb3IsIHdoaWNoIG1ha2VzIHRoZSB0ZXN0IGZh
aWwuCisgICAgICAgIENoYW5nZWQgdGhlIHRlc3QgdG8gbm90IHBhc3MgYWNjaWRlbnRhbGx5LCBh
bmQgYWRkZWQgaXQgdG8gV0syIHRlc3QgZXhwZWN0YXRpb25zLgorICAgICAgICAKKyAgICAgICAg
KiBmYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVkLXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4t
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQtcGFn
ZS13aXRoLW92ZXJmbG93LWhpZGRlbi5odG1sOgorICAgICAgICBVcGRhdGVkIHRoZSB0ZXN0IHRv
IGJlIGZ1bGx5IGFzeW5jLgorCisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWxldmVudC1iYXNp
Yy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWxldmVudC1iYXNpYy5o
dG1sOgorICAgICAgICBVcGRhdGVkIHRoZSB0ZXN0IHRvIGJlIGZ1bGx5IGFzeW5jLCBnb3Qgcmlk
IG9mIHRhYiBjaGFyYWN0ZXJzLgorCisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWxldmVudC1t
b3VzZXdoZWVsLWludGVyYWN0aW9uLmh0bWw6IAorICAgICAgICAqIGZhc3QvZm9ybXMvc2VhcmNo
L3NlYXJjaC1zY3JvbGwtaGlkZGVuLWRlY29yYXRpb24tY29udGFpbmVyLWNyYXNoLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxpbmctaW4tb2JqZWN0Lmh0bWw6
CisgICAgICAgIFVwZGF0ZWQgdGhlc2UgdGVzdHMgdG8gYmUgZnVsbHkgYXN5bmMuIFNpbmNlIHRo
ZXkgY2hlY2sgZm9yIHNvbWV0aGluZyB0aGF0IGhhcHBlbnMKKyAgICAgICAgYXN5bmNocm9ub3Vz
bHksIGFuZCBkb2Vzbid0IGhhdmUgYW4gZW5kIGV2ZW50LCB0aGV5IGhhdmUgdG8gdXNlIHNldFRp
bWVvdXQuCisKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWVfaW5faWZy
YW1lLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1s
YXRjaGVkLWRpdi5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9s
bC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9s
YXRjaGluZy9zY3JvbGwtZGl2LW5vLWxhdGNoaW5nLmh0bWw6CisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi13aXRoLW5lc3RlZC1ub25zY3JvbGxhYmxlLWlmcmFt
ZS5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUt
ZnJhZ21lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwt
aWZyYW1lLWxhdGNoZWQtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0
Y2hpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS5odG1sOgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtd2Via2l0MS1sYXRjaGluZy1idWcu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtbGF0Y2hlZC1u
ZXN0ZWQtZGl2Lmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xs
LW5lc3RlZC1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9z
Y3JvbGwtc2VsZWN0LWJvdHRvbS10ZXN0Lmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS5odG1sOgorICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRt
bDoKKyAgICAgICAgUmVtb3ZlZCBleHRyYSB0ZXN0UnVubmVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygpIGNhbGxzLgorICAgICAgICBXZSBubyBsb25nZXIgbmVlZCBt
dWx0aXBsZSBldmVudHMgZm9yIHNjcm9sbCBzbmFwIGFuaW1hdGlvbiB0byBzdGFydCwgYW5kIGR1
ZSB0bworICAgICAgICB0aGUgd2F5IHdlIGNvYWxlc2NlIGV2ZW50cywgaGF2aW5nIG11bHRpcGxl
IGV2ZW50cyByZXN1bHRlZCBpbiBnZXR0aW5nIHRvbyBoaWdoIHZlbG9jaXR5LgorICAgICAgICBS
ZW1vdmVkIGFzeW5jIHNjcm9sbGluZyBhcmd1bWVudCBmb3JtIHRoZSBmdW5jdGlvbiBjYWxscywg
YmVjYXVzZSBpdCdzIG5vdyBhbHdheXMgYXN5bmMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgIE1vdmVkIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYt
d2l0aC1uZXN0ZWQtbm9uc2Nyb2xsYWJsZS1pZnJhbWUuaHRtbAorICAgICAgICB0byBXSzEgZXhw
ZWN0YXRpb25zLCBiZWNhdXNlIHRoZSB0ZXN0IG5lZWRuJ3QgYmUgc2tpcHBlZCBvbiBXSzIuCisK
KyAgICAgICAgKiBzY3JvbGxiYXJzL3Njcm9sbC1ydGwtb3ItYnQtbGF5ZXIuaHRtbDogTWFkZSB0
aGUgdGVzdCBmdWxseSBhc3luYywgYW5kIHJlZmFjdG9yZWQKKyAgICAgICAgaXQgZm9yIGNsYXJp
dHkuCisKKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1kaXYt
bGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLmh0bWw6CisgICAgICAgICogdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWw6CisgICAgICAgICogdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLXdp
dGgtaGFuZGxlci5odG1sOgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qt
c2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sOgorICAgICAgICAqIHRpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS13aXRoLWhhbmRs
ZXIuaHRtbDoKKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1p
ZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0
bWw6CisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtaWZyYW1l
LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6CisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtc2VsZWN0Lmh0bWw6CisgICAgICAgICogdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtbWFpbmZyYW1lLXpvb20uaHRtbDoKKyAg
ICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hl
ZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWw6CisgICAgICAgICogdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6CisgICAg
ICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQt
c2VsZWN0Lmh0bWw6CisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvaWZyYW1lX2lu
X2lmcmFtZS5odG1sOgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93
LXNjcm9sbC1yZWR1Y2VkLWNvbnRlbnQuaHRtbDoKKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtemVyby1kZWx0YS13aGVlbC1ldmVudHMuaHRtbDoKKyAg
ICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9yb290LW92ZXJmbG93LXdpdGgtbW91c2V3
aGVlbC5odG1sOgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFw
L3Njcm9sbC1zbmFwLWlmcmFtZS5odG1sOgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS0yZC1vdmVyZmxvdy5odG1sOgor
ICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFw
LW1hbmRhdG9yeS1ib3JkZXJzLmh0bWw6CisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFs
Lmh0bWw6CisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1zbG93LWhvcml6b250YWwuaHRtbDoKKyAgICAg
ICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5k
YXRvcnktbWFpbmZyYW1lLXNsb3ctdmVydGljYWwuaHRtbDoKKyAgICAgICAgKiB0aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1l
LXZlcnRpY2FsLmh0bWw6CisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW92ZXJmbG93LXN0YXRlbGVzcy5odG1sOgorICAg
ICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1h
bmRhdG9yeS1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1wYWRkaW5nLmh0bWw6CisgICAgICAg
ICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0
b3J5LXJvdGF0ZWQuaHRtbDoKKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy93aGVl
bC1ldmVudHMtd2l0aC1uby1kZWx0YS5odG1sOgorICAgICAgICBTYW1lIHRlc3RSdW5uZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzIGNoYW5nZXMgYXMgaW4gZmFzdC9z
Y3JvbGxpbmcvbGF0Y2hpbmcuCisKKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9m
YXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3Qt
bGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLmh0bWw6CisgICAgICAgIFJlbW92ZWQgZGVidWcg
b3V0cHV0IGFib3V0IGhvdyBtYW55IGV2ZW50cyBhcmUgcmVjZWl2ZWQuIFRoZSBudW1iZXIgbWF5
IHZhcnkgZHVlCisgICAgICAgIHRvIGNvYWxlc2NpbmcuCisKIDIwMTUtMDgtMjEgIE5hbiBXYW5n
ICA8bl93YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogRml4IGFjY2Vzc2liaWxpdHkvbWFj
L3NlYXJjaC13aXRoLWZyYW1lcy5odG1sIHRlc3QKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2NsZWFyLWRyYWctc3RhdGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2NsZWFyLWRyYWctc3RhdGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
ODg3NTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9jbGVhci1kcmFnLXN0YXRlLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiwzICsyLDEwIEBAIFRoaXMgdGVzdCBlbnN1cmVz
IHdlIGNsZWFyIHRoZSBkcmFnIHN0YXQKIAogRHJhZyBtZSBkb3duIHR3aWNlIQogUEFTUworCitz
cGFuOnNwYW46ZHJhZ2VudGVyCitzcGFuOmRpdjpkcmFnZW50ZXIKK2RpdjpkaXY6ZHJhZ2VudGVy
CitzcGFuOnNwYW46ZHJhZ2xlYXZlCitzcGFuOmRpdjpkcmFnbGVhdmUKKwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvY2xlYXItZHJhZy1zdGF0ZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2NsZWFyLWRyYWctc3RhdGUuaHRtbAkocmV2aXNpb24gMTg4
NzUyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvY2xlYXItZHJhZy1zdGF0ZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
ICAgICBkcmFnU3BhbigpOwogICAgIHZhciBmaXJzdExvZyA9IHNldExvZygnJyk7CiAgICAgZHJh
Z1NwYW4oKTsKLSAgICB2YXIgc2Vjb25kTG9nID0gc2V0TG9nKCdQQVNTJyk7CisgICAgdmFyIHNl
Y29uZExvZyA9IHNldExvZygnUEFTU1xuXG4nICsgZmlyc3RMb2cpOwogICAgIGlmIChmaXJzdExv
ZyAhPSBzZWNvbmRMb2cpCiAgICAgICAgIHNldExvZygnRkFJTDpcbkZpcnN0IGRyYWc6XG4nICsg
Zmlyc3RMb2cgKyAnXG5TZWNvbmQgZHJhZzpcbicgKyBzZWNvbmRMb2cpOwogfQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ct
aGlkZGVuLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zY3JvbGwtaW4tc2NhbGVkLXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxODg3NTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGwtaW4t
c2NhbGVkLXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQgKzEsNyBAQAogVGhpcyB0ZXN0cyB0aGF0IGEgdXN1YWxseSBvdmVyZmxvdzog
aGlkZGVuIHZpZXdwb3J0IHNob3VsZCBiZSBzY3JvbGxhYmxlIHdoZW4gc2NhbGVkLiBPdGhlcndp
c2UsIHlvdSBjYW4ndCBnZXQgdG8gY29udGVudCB5b3Ugd291bGQgaGF2ZSBiZWVuIGFibGUgdG8g
Z2V0IHRvIGhhZCB5b3Ugbm90IGJlZW4gem9vbWVkIGl0LgogUEFTUyB3aW5kb3cuZG9jdW1lbnQu
Ym9keS5zY3JvbGxUb3AgaXMgMAogUEFTUyB3aW5kb3cuZG9jdW1lbnQuYm9keS5zY3JvbGxUb3Ag
aXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
IApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdp
dGgtb3ZlcmZsb3ctaGlkZGVuLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0bWwJKHJl
dmlzaW9uIDE4ODc1MikKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2Fs
ZWQtcGFnZS13aXRoLW92ZXJmbG93LWhpZGRlbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDcg
KzIsNyBAQAogICAgIDxzdHlsZT4KICAgICAgICAgaHRtbCwgYm9keSB7IG1hcmdpbjowOyBvdmVy
ZmxvdzogaGlkZGVuOyB9CiAgICAgPC9zdHlsZT4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogCiA8ZGl2PlRoaXMgdGVz
dHMgdGhhdCBhIHVzdWFsbHkgb3ZlcmZsb3c6IGhpZGRlbiB2aWV3cG9ydCBzaG91bGQgYmUgc2Ny
b2xsYWJsZSB3aGVuIHNjYWxlZC4gT3RoZXJ3aXNlLCB5b3UgY2FuJ3QgZ2V0IHRvIGNvbnRlbnQK
QEAgLTE5LDYgKzE5LDggQEAKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAg
ICAKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKICAgICAgICAgLy8gRm9yY2UgYSBs
YXlvdXQuCiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKIApAQCAtMjcsMTEgKzI5
LDE0IEBACiAKICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5kb2N1bWVudC5ib2R5LnNjcm9sbFRv
cCIsICIwIik7CiAKKyAgICAgICAgZG9jdW1lbnQuYm9keS5vbnNjcm9sbCA9IGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcCIs
ICIxMDAiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKICAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oMTAwLCAxMDApOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eSgwLCAtNSk7CiAgICAgICAgIH0KLQotICAgICAgICBzaG91bGRCZSgid2luZG93LmRvY3VtZW50
LmJvZHkuc2Nyb2xsVG9wIiwgIjEwMCIpOwogICAgIH0pKCk7CiA8L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsZXZlbnQtYmFzaWMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsZXZlbnQtYmFzaWMtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxODg3NTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVl
bGV2ZW50LWJhc2ljLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTgsMTQgKzE4LDE2
IEBAIFBBU1MgV2hlZWxFdmVudC5ET01fREVMVEFfUEFHRSBpcyAweDAyCiBQQVNTIHdpbmRvdy5v
bndoZWVsIGlzIG51bGwKIFBBU1MgZG9jdW1lbnQub253aGVlbCBpcyBudWxsCiBQQVNTIHRlc3RE
aXYub253aGVlbCBpcyBudWxsCitXaGVlbCBldmVudCBmaXJlZAogUEFTUyB0ZXN0RXZlbnQuX19w
cm90b19fIGlzIFdoZWVsRXZlbnQucHJvdG90eXBlCiBQQVNTIHRlc3RFdmVudC5fX3Byb3RvX18u
X19wcm90b19fIGlzIE1vdXNlRXZlbnQucHJvdG90eXBlCitQQVNTIHRlc3RFdmVudC5kZWx0YVgg
PiAwIGlzIHRydWUKK1BBU1MgdGVzdEV2ZW50LmRlbHRhWSA+IDAgaXMgdHJ1ZQogUEFTUyB0ZXN0
RXZlbnQuZGVsdGFaIGlzIDAKIFBBU1MgdGVzdEV2ZW50LmRlbHRhTW9kZSBpcyBXaGVlbEV2ZW50
LkRPTV9ERUxUQV9QSVhFTAotUEFTUyBkZWx0YVggPiAwIGlzIHRydWUKLVBBU1MgZGVsdGFYIGlz
IGV4cGVjdGVkRGVsdGFYCi1QQVNTIGRlbHRhWSA+IDAgaXMgdHJ1ZQotUEFTUyBkZWx0YVkgaXMg
ZXhwZWN0ZWREZWx0YVkKK1Njcm9sbCBldmVudCBmaXJlZAorUEFTUyBldmVudERlbHRhWCBpcyBz
Y3JvbGxEZWx0YVgKK1BBU1MgZXZlbnREZWx0YVkgaXMgc2Nyb2xsRGVsdGFZCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3doZWVsZXZlbnQtYmFzaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aGVlbGV2ZW50LWJhc2ljLmh0bWwJKHJldmlzaW9uIDE4ODc1MikK
KysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsZXZlbnQtYmFzaWMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNCwxMCArNCwxMiBAQAogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8v
d3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50cy1XaGVlbEV2ZW50Ij4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KLXZhciBkZWx0YVggPSAwOwotdmFyIGRlbHRhWSA9IDA7Ci12YXIgZXhwZWN0ZWREZWx0
YVg7Ci12YXIgZXhwZWN0ZWREZWx0YVk7Cit2YXIgZXZlbnREZWx0YVggPSAwOwordmFyIGV2ZW50
RGVsdGFZID0gMDsKK3ZhciBzY3JvbGxEZWx0YVg7Cit2YXIgc2Nyb2xsRGVsdGFZOworCitqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKIAogdmFyIHRlc3REaXY7CiBmdW5jdGlvbiBydW5UZXN0KCkgewpA
QCAtMjUsMTIgKzI3LDYgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICBpZiAod2luZG93LmV2
ZW50U2VuZGVyKSB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRlc3REaXYub2Zm
c2V0TGVmdCArIDUsIHRlc3REaXYub2Zmc2V0VG9wICsgNSk7CiAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnkoLTEsIC0yKTsKLQlleHBlY3RlZERlbHRhWCA9IHRlc3REaXYuc2Nyb2xs
TGVmdDsKLQlleHBlY3RlZERlbHRhWSA9IHRlc3REaXYuc2Nyb2xsVG9wOwotCXNob3VsZEJlVHJ1
ZSgiZGVsdGFYID4gMCIpOwotCXNob3VsZEJlKCJkZWx0YVgiLCAiZXhwZWN0ZWREZWx0YVgiKTsK
LQlzaG91bGRCZVRydWUoImRlbHRhWSA+IDAiKTsKLQlzaG91bGRCZSgiZGVsdGFZIiwgImV4cGVj
dGVkRGVsdGFZIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZGVidWcoIkZBSUw6IFRoaXMgdGVz
dCByZXF1aXJlcyB3aW5kb3cuZXZlbnRTZW5kZXIuIik7CiAgICAgfQpAQCAtMzgsMjIgKzM0LDM0
IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAKIHZhciB0ZXN0RXZlbnQ7CiBmdW5jdGlvbiB3aGVl
bEhhbmRsZXIoZSkgeworICAgIGRlYnVnKCJXaGVlbCBldmVudCBmaXJlZCIpOwogICAgIHRlc3RF
dmVudCA9IGU7CiAgICAgc2hvdWxkQmUoInRlc3RFdmVudC5fX3Byb3RvX18iLCAiV2hlZWxFdmVu
dC5wcm90b3R5cGUiKTsKICAgICBzaG91bGRCZSgidGVzdEV2ZW50Ll9fcHJvdG9fXy5fX3Byb3Rv
X18iLCAiTW91c2VFdmVudC5wcm90b3R5cGUiKTsKLSAgICBpZiAoZS5kZWx0YVgpCi0gICAgICAg
IGRlbHRhWCA9IGUuZGVsdGFYOwotICAgIGlmIChlLmRlbHRhWSkKLSAgICAgICAgZGVsdGFZID0g
ZS5kZWx0YVk7CisgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0RXZlbnQuZGVsdGFYID4gMCIpOworICAg
IHNob3VsZEJlVHJ1ZSgidGVzdEV2ZW50LmRlbHRhWSA+IDAiKTsKICAgICBzaG91bGRCZSgidGVz
dEV2ZW50LmRlbHRhWiIsICIwIik7CiAgICAgc2hvdWxkQmUoInRlc3RFdmVudC5kZWx0YU1vZGUi
LCAiV2hlZWxFdmVudC5ET01fREVMVEFfUElYRUwiKQorICAgIGV2ZW50RGVsdGFYID0gZS5kZWx0
YVg7CisgICAgZXZlbnREZWx0YVkgPSBlLmRlbHRhWTsKK30KKworZnVuY3Rpb24gc2Nyb2xsSGFu
ZGxlcigpCit7CisgICAgZGVidWcoIlNjcm9sbCBldmVudCBmaXJlZCIpOworICAgIHNjcm9sbERl
bHRhWCA9IHRlc3REaXYuc2Nyb2xsTGVmdDsKKyAgICBzY3JvbGxEZWx0YVkgPSB0ZXN0RGl2LnNj
cm9sbFRvcDsKKyAgICBzaG91bGRCZSgiZXZlbnREZWx0YVgiLCAic2Nyb2xsRGVsdGFYIik7Cisg
ICAgc2hvdWxkQmUoImV2ZW50RGVsdGFZIiwgInNjcm9sbERlbHRhWSIpOworCisgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiAKIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8c3BhbiBpZD0icGFy
ZW50Ij4KLSAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJib3JkZXI6c29saWQgMXB4IGdyZWVu
OyB3aWR0aDoxMDBweDsgaGVpZ2h0OjcwcHg7IG92ZXJmbG93OnNjcm9sbDsgd2hpdGUtc3BhY2U6
bm93cmFwOyI+CisgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYm9yZGVyOnNvbGlkIDFweCBn
cmVlbjsgd2lkdGg6MTAwcHg7IGhlaWdodDo3MHB4OyBvdmVyZmxvdzpzY3JvbGw7IHdoaXRlLXNw
YWNlOm5vd3JhcDsiIG9uc2Nyb2xsPSJzY3JvbGxIYW5kbGVyKCkiPgogICAgICAgICBUT1AgVE9Q
IFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QPGJyLz4KICAg
ICAgICAgU2Nyb2xsIG1vdXNlIHdoZWVsIG92ZXIgaGVyZTxici8+CiAgICAgICAgIFNjcm9sbCBt
b3VzZSB3aGVlbCBvdmVyIGhlcmU8YnIvPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2hlZWxldmVudC1tb3VzZXdoZWVsLWludGVyYWN0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWxldmVudC1tb3VzZXdoZWVsLWludGVyYWN0aW9uLmh0
bWwJKHJldmlzaW9uIDE4ODc1MikKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsZXZl
bnQtbW91c2V3aGVlbC1pbnRlcmFjdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsx
MSw2IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
ewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkaXYub2Zmc2V0TGVmdCArIDUsIGRp
di5vZmZzZXRUb3AgKyA1KTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeSgxMCwg
MjApOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9IGVsc2UgewogICAgICAgICBkZWJ1
ZygiRkFJTDogVGhpcyB0ZXN0IHJlcXVpcmVzIHdpbmRvdy5ldmVudFNlbmRlci4iKTsKICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CkBAIC0yMyw2ICsyMiw4IEBAIGZ1bmN0aW9uIHdoZWVsSGFuZGxl
cihlKSB7CiAgICAgdGVzdEV2ZW50ID0gZTsKICAgICB0ZXN0UGFzc2VkKCJTdGFuZGFyZCB3aGVl
bCBldmVudCB3YXMgZmlyZWQuIik7CiAgICAgc2hvdWxkQmUoInRlc3RFdmVudC5fX3Byb3RvX18i
LCAiV2hlZWxFdmVudC5wcm90b3R5cGUiKTsKKworICAgIHNldFRpbWVvdXQoZmluaXNoSlNUZXN0
LCAxMDApOwogfQogCiBmdW5jdGlvbiBtb3VzZVdoZWVsSGFuZGxlcihlKSB7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC9zZWFyY2gtc2Nyb2xsLWhpZGRlbi1kZWNvcmF0aW9u
LWNvbnRhaW5lci1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2VhcmNoL3NlYXJjaC1zY3JvbGwtaGlkZGVuLWRlY29yYXRpb24tY29udGFpbmVyLWNyYXNo
Lmh0bWwJKHJldmlzaW9uIDE4ODc1MikKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNo
L3NlYXJjaC1zY3JvbGwtaGlkZGVuLWRlY29yYXRpb24tY29udGFpbmVyLWNyYXNoLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTExLDggKzExLDEwIEBAIGlucHV0Ojotd2Via2l0LXRleHRmaWVsZC1k
ZWNvcmF0aW9uLWNvbnQKIDwvc3R5bGU+CiA8aW5wdXQgdHlwZT0ic2VhcmNoIj4KIDxzY3JpcHQ+
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
K30KIAogaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgIHZhciBpbnB1dCA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7CkBAIC0yMCw2ICsyMiwxMSBAQCBpZiAod2luZG93LmV2
ZW50U2VuZGVyKSB7CiAgICAgdmFyIHkgPSBpbnB1dC5vZmZzZXRUb3AgKyBpbnB1dC5vZmZzZXRI
ZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwogICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnkoMCwgMTApOwotICAgIGRvY3VtZW50LndyaXRlKCdQQVNTJyk7
CisgICAgCisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnUEFTUycpKTsKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgfSwgMTAwKTsKIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvZmxhdHRlbmluZy9zY3JvbGxpbmctaW4tb2JqZWN0Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxpbmctaW4tb2JqZWN0Lmh0
bWwJKHJldmlzaW9uIDE4ODc1MikKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5p
bmcvc2Nyb2xsaW5nLWluLW9iamVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw5
IEBACiAgICAgICAgICAgICAgICAgICAgIHZhciBzdGFydFkgPSBlbGVtZW50Lm9mZnNldFRvcCAr
IGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oc3RhcnRYLCBzdGFydFkpOwogICAgICAgICAgICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5KDAsIC00KTsKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvbGF0Y2hpbmcvaWZyYW1lX2luX2lmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZV9pbl9pZnJhbWUuaHRtbAkocmV2aXNp
b24gMTg4NzUyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvaWZyYW1l
X2luX2lmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw5ICs3Nyw2IEBAIGZ1bmN0aW9u
IHNjcm9sbFRlc3QoKQogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVn
aW4nKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51
ZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
Jyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwogICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9s
bGluZ0NvbXBsZXRlcyhjaGVja0ZvclNjcm9sbCk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1sYXRj
aGVkLWRpdi5odG1sCShyZXZpc2lvbiAxODg3NTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTY3LDE2ICs2NywxMyBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKICAgICB2YXIgc3RhcnRQ
b3NYID0gTWF0aC5yb3VuZChkaXZUYXJnZXQub2Zmc2V0TGVmdCkgKyAyMDsKICAgICB2YXIgc3Rh
cnRQb3NZID0gTWF0aC5yb3VuZChkaXZUYXJnZXQub2Zmc2V0VG9wKSArIDEwMDsgLy8gT25lIHdo
ZWVsIHR1cm4gYmVmb3JlIGVuZC4KICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBv
c1gsIHN0YXJ0UG9zWSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2No
YW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVl
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250
aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdj
aGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2JlZ2luJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQn
KTsKICAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOwogfQogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZy
YW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hp
bmcvc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sCShyZXZpc2lvbiAxODg3NTIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQt
bWFpbmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcwLDE2ICs3MCwxMyBAQCBmdW5jdGlv
biBzY3JvbGxUZXN0KCkgewogICAgIHZhciBzdGFydFBvc1kgPSBNYXRoLnJvdW5kKGRpdlRhcmdl
dC5vZmZzZXRUb3ApIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xs
IGF3YXkgZnJvbSB0aGUgSUZyYW1lCiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQ
b3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZy
YW1lCiAgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0
YXJ0UG9zWSArICIpIik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2No
YW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVl
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250
aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdj
aGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2JlZ2luJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQn
KTsKICAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOwogfQogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LW5vLWxhdGNoaW5nLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Ny
b2xsLWRpdi1uby1sYXRjaGluZy5odG1sCShyZXZpc2lvbiAxODg3NTIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LW5vLWxhdGNoaW5nLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTY1LDE5ICs2NSwxOSBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkgewog
ICAgIC8vZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0
UG9zWSArICIpIik7CiAKICAgICAvL2RlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQ
b3NpdGlvbkJlZm9yZSArICIsIGRpdiBiZWZvcmU6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkJlZm9y
ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDEsICdub25lJywgJ25vbmUnLCB0
cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMSwgJ25vbmUnLCAnbm9uZScs
IHRydWUpOwotCi0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKC0xLCAwLCAnbm9uZScsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnbm9uZScsICdu
b25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKC0xLCAwLCAnbm9uZScsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnbm9uZScs
ICdub25lJywgdHJ1ZSk7Ci0KLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ25vbmUnLCB0cnVlKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdub25lJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgMSwgJ25vbmUnLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
bm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAxLCAnbm9uZScsICdub25lJyk7CisKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdub25lJywgJ25vbmUnKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
LTEsIDAsICdub25lJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdub25lJywgJ25vbmUnKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdu
b25lJywgJ25vbmUnKTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
bm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnbm9uZScpOwogCiAgICAgc2V0VGltZW91dChjaGVja0Zv
clNjcm9sbCwgMTAwKTsKIH0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNo
aW5nL3Njcm9sbC1kaXYtd2l0aC1uZXN0ZWQtbm9uc2Nyb2xsYWJsZS1pZnJhbWUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2
LXdpdGgtbmVzdGVkLW5vbnNjcm9sbGFibGUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDE4ODc1MikK
KysrIExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtd2l0aC1u
ZXN0ZWQtbm9uc2Nyb2xsYWJsZS1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNjcsMTYg
KzY3LDEzIEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQogICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVm
b3JlID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKIAogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywg
dHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdp
bicsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1
ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnYmVnaW4nKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25l
JywgJ2VuZCcpOwogICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBsZXRlcyhj
aGVja0ZvclNjcm9sbCk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xh
dGNoaW5nL3Njcm9sbC1pZnJhbWUtZnJhZ21lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWZyYWdtZW50Lmh0bWwJ
KHJldmlzaW9uIDE4ODc1MikKKysrIExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5n
L3Njcm9sbC1pZnJhbWUtZnJhZ21lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTYgKzQy
LDEzIEBACiAgICAgICAgICAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1lVGFyZ2V0Lm9mZnNldFRv
cCArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25lIHdoZWVsIHR1cm4gYmVm
b3JlIGVuZC4KICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwg
c3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQog
ICAgICAgICAgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiAr
IHN0YXJ0UG9zWSArICIpIik7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7
Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKLSAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywg
dHJ1ZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7Ci0gICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Nv
bnRpbnVlJywgdHJ1ZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7
Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwg
J25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7Cisg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQn
LCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7CisgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdub25lJywgJ2JlZ2luJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Cisg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KGNoZWNr
Rm9yU2Nyb2xsLCAxMDApOwogICAgICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1l
LWxhdGNoZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDE4ODc1MikKKysrIExheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNDYsMTYgKzQ2LDEzIEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7
CiAgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFtZVRhcmdldC5vZmZzZXRUb3AgKyBpZnJhbWVUYXJn
ZXQuY2xpZW50SGVpZ2h0IC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCiAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1
cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCiAgICAgZGVidWcoIk1vdXNlIG1vdmVk
IHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7Ci0gICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVn
YW4nLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
JywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2Vu
ZGVkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKICAgICBzZXRUaW1lb3V0KGNoZWNrRm9y
U2Nyb2xsLCAxMDApOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRj
aGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVk
LW1haW5mcmFtZS5odG1sCShyZXZpc2lvbiAxODg3NTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDE2ICs0MSwxMyBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkgewog
ICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJnZXQub2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdo
dGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3YXkgZnJvbSB0aGUgSUZyYW1lCiAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1
cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCiAgICAgZGVidWcoIk1vdXNlIG1vdmVk
IHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7Ci0gICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVn
YW4nLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
JywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2Vu
ZGVkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKICAgICBzZXRUaW1lb3V0KGNoZWNrRm9y
U2Nyb2xsLCAxMDApOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRj
aGluZy9zY3JvbGwtaWZyYW1lLXdlYmtpdDEtbGF0Y2hpbmctYnVnLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS13ZWJr
aXQxLWxhdGNoaW5nLWJ1Zy5odG1sCShyZXZpc2lvbiAxODg3NTIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLXdlYmtpdDEtbGF0Y2hpbmctYnVn
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQyLDE2ICs0MiwxMyBAQAogICAgICAgICAgICAgdmFy
IHN0YXJ0UG9zWSA9IGlmcmFtZVRhcmdldC5vZmZzZXRUb3AgKyBpZnJhbWVUYXJnZXQuY2xpZW50
SGVpZ2h0IC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCiAgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3Vy
ZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpZnJhbWUKICAgICAgICAgICAgIGRlYnVnKCJNb3Vz
ZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOwotICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOwotICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdl
ZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVl
KTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOwotICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdiZWdpbicsIHRydWUpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScs
IHRydWUpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScsIHRydWUpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcs
ICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAw
LCAnZW5kZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOworICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2Vu
ZCcpOwogICAgICAgICAgICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKICAgICAg
ICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwt
bGF0Y2hlZC1uZXN0ZWQtZGl2Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWxhdGNoZWQtbmVzdGVkLWRpdi5odG1sCShyZXZpc2lv
biAxODg3NTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwt
bGF0Y2hlZC1uZXN0ZWQtZGl2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTkzLDE2ICs5MywxMyBA
QCBmdW5jdGlvbiBjaGVja0ZvckZpcnN0U2Nyb2xsKCkgewogCiAgICAgd3JhcHBlclNjcm9sbFBv
c2l0aW9uQmVmb3JlID0gd3JhcHBlclRhcmdldC5zY3JvbGxUb3A7CiAKLSAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbics
ICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
Y2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0
cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwg
J25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2No
YW5nZWQnLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQn
LCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRp
bnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwogICAgIC8vIFRoZSB0aW1lb3V0IHVzZWQgdG8g
YmUgb25seSAxMDAsIGJ1dCB3aGVuIHdlIGFkZGVkIHN1cHBvcnQgZm9yIHJ1YmJlci1iYW5kaW5n
IGluIG92ZXJmbG93CiAgICAgLy8gYXJlYXMsIHdlIGZvdW5kIHdlIGhhZCB0byBpbmNyZWFzZSB0
aGUgdGltZW91dCB0byBhbGxvdyB0aGUgcnViYmVyLWJhbmQgdG8gZmluaXNoLgogICAgIHNldFRp
bWVvdXQoY2hlY2tGb3JTZWNvbmRTY3JvbGwsIDEwMDApOwpAQCAtMTI1LDE2ICsxMjIsMTMgQEAg
ZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKICAgICB2YXIgc3RhcnRQb3NYID0gZGl2VGFyZ2V0Lm9m
ZnNldExlZnQgKyBkaXZUYXJnZXQuY2xpZW50V2lkdGggKyA1MDsKICAgICB2YXIgc3RhcnRQb3NZ
ID0gTWF0aC5yb3VuZChkaXZUYXJnZXQub2Zmc2V0VG9wKSAtIDQyOyAvLyBPbmUgd2hlZWwgdHVy
biBiZWZvcmUgZW5kLgogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3Rh
cnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQotICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVl
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUn
LCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTUsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAnbm9uZScsICdj
b250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtNSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUs
ICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAnbm9uZScsICdjb250aW51ZScsIHRy
dWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IDAsICdlbmRlZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAnbm9uZScsICdiZWdpbicpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICdu
b25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwogICAgIC8vIFRoZSB0aW1l
b3V0IHVzZWQgdG8gYmUgb25seSAxMDAsIGJ1dCB3aGVuIHdlIGFkZGVkIHN1cHBvcnQgZm9yIHJ1
YmJlci1iYW5kaW5nIGluIG92ZXJmbG93CiAgICAgLy8gYXJlYXMsIHdlIGZvdW5kIHdlIGhhZCB0
byBpbmNyZWFzZSB0aGUgdGltZW91dCB0byBhbGxvdyB0aGUgcnViYmVyLWJhbmQgdG8gZmluaXNo
LgogICAgIHNldFRpbWVvdXQoY2hlY2tGb3JGaXJzdFNjcm9sbCwgMTAwMCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtbmVzdGVkLWlmcmFtZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9s
bC1uZXN0ZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDE4ODc1MikKKysrIExheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1uZXN0ZWQtaWZyYW1lLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTU1LDkgKzU1LDYgQEAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2Vu
ZGVkJywgJ25vbmUnLCB0cnVlKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CiAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0
cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScsIHRydWUpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKICAgICBzZXRUaW1l
b3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOwogfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1ib3R0b20tdGVzdC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtYm90
dG9tLXRlc3QuaHRtbAkocmV2aXNpb24gMTg4NzUyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1ib3R0b20tdGVzdC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC04MCw5ICs4MCw2IEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CiAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRl
ZCcsICdub25lJywgdHJ1ZSk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOwogICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1
ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29u
dGludWUnLCB0cnVlKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CiAgICAgc2V0VGltZW91
dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKIH0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0
LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHJldmlzaW9uIDE4ODc1MikKKysrIExheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNzYsOSArNzYsNiBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0
KCkgewogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4n
LCB0cnVlKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUp
OwogICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7CiB9CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcv
c2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC5odG1sCShyZXZpc2lvbiAxODg3NTIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQt
c2VsZWN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTc4LDkgKzc4LDYgQEAgZnVuY3Rpb24gc2Ny
b2xsVGVzdCgpIHsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2JlZ2luJywgdHJ1ZSk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1
ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwogICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQn
LCB0cnVlKTsKICAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOwogfQpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNp
b24gMTg4NzUyKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNiArMTEyLDkgQEAgc2Nyb2xsYmFycy9zY3JvbGxp
bmctYnktcGFnZS1pZ25vcmluZy1oaQogc2Nyb2xsYmFycy9zY3JvbGxpbmctYnktcGFnZS1pZ25v
cmluZy10cmFuc3BhcmVudC1maXhlZC1lbGVtZW50cy1vbi1rZXlib2FyZC1zcGFjZWJhci5odG1s
CiBzY3JvbGxiYXJzL3Njcm9sbGluZy1ieS1wYWdlLW9uLWtleWJvYXJkLXNwYWNlYmFyLmh0bWwK
IAorIyBUaGlzIHRlc3QgdGltZXMgb3V0Lgord2Via2l0Lm9yZy9iLzE0NzY4MyBmYXN0L3Njcm9s
bGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LXdpdGgtbmVzdGVkLW5vbnNjcm9sbGFibGUtaWZyYW1l
Lmh0bWwgWyBTa2lwIF0KKwogY29tcG9zaXRpbmcvcnRsL3J0bC1maXhlZC1vdmVyZmxvdy1zY3Jv
bGxlZC5odG1sIFsgRmFpbHVyZSBdCiAKIGNvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1u
ZXN0ZWQtaWZyYW1lcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE4ODc1MikKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBj
b3B5KQpAQCAtMTU5LDYgKzE1OSw3IEBAIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1hY3Jvc3Mt
cmVhZG9ubHkKIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1hY3Jvc3MtcmVhZG9ubHktaW5wdXQt
My5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3QtYWNyb3NzLXJlYWRvbmx5LWlucHV0LTQu
aHRtbAogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0LWFjcm9zcy1yZWFkb25seS1pbnB1dC01Lmh0
bWwKK2Zhc3QvZXZlbnRzL2NsZWFyLWRyYWctc3RhdGUuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1h
bmQtZHJvcC1zdWJmcmFtZS1kYXRhVHJhbnNmZXIuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1zZWxl
Y3RzLWltYWdlLmh0bWwKIGZhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtd2l0aC1zaGFkb3ctaW4t
ZHJhZy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cwkocmV2aXNpb24gMTg4NzUyKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTEyNzcsOSArMTI3Nyw2IEBAIGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWMKICMgPHJkYXI6Ly9wcm9ibGVtLzIxODU3MTAy
PgogWyBFbENhcGl0YW4rIF0gZmFzdC9jYW52YXMvY2FudmFzLXRvby1sYXJnZS10by1kcmF3Lmh0
bWwgWyBDcmFzaCBdCiAKLSMgV0sxLW9ubHkgdGltZW91dC4KLXdlYmtpdC5vcmcvYi8xNDc2ODMg
ZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi13aXRoLW5lc3RlZC1ub25zY3JvbGxh
YmxlLWlmcmFtZS5odG1sIFsgU2tpcCBdCi0KIHdlYmtpdC5vcmcvYi8xNDc3NjMgWyBNYXZlcmlj
a3MgWW9zZW1pdGUgXSBhY2Nlc3NpYmlsaXR5L21hYy9sb2FkZWQtbm90aWZpY2F0aW9uLmh0bWwg
WyBTa2lwIF0KIAogIyBMYW5ndWFnZS1zcGVjaWZpYyBmb250IGZhbGxiYWNrIGlzIGRpc2FibGVk
IG9uIGNlcnRhaW4gdmVyc2lvbnMgb2YgT1MgWApJbmRleDogTGF5b3V0VGVzdHMvc2Nyb2xsYmFy
cy9zY3JvbGwtcnRsLW9yLWJ0LWxheWVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c2Nyb2xsYmFycy9zY3JvbGwtcnRsLW9yLWJ0LWxheWVyLmh0bWwJKHJldmlzaW9uIDE4ODc1MikK
KysrIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsLXJ0bC1vci1idC1sYXllci5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw0OSArMzEsNjkgQEAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbWVzc2Fn
ZSArICI8YnI+IjsKIH0KIAotZnVuY3Rpb24gY2VudGVyTW91c2VPbihlbGVtZW50SWQpCitmdW5j
dGlvbiBjZW50ZXJNb3VzZU9uKGVsZW1lbnQpCiB7Ci0gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyLAogICAgICAgICBl
bGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMik7CiB9CiAKLWZ1bmN0
aW9uIHRlc3QoKQorZnVuY3Rpb24gdGVzdFJUTCgpCiB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotICAgIGlmICghd2luZG93
LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cuZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeSkgewotICAg
ICAgICBsb2coIlRoaXMgdGVzdCByZXF1aXJlcyBEdW1wUmVuZGVyVHJlZSB3aXRoIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnkuIik7Ci0gICAgICAgIHJldHVybjsKKyAgICB2YXIgcnRsID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJ0bCIpOworICAgIGNlbnRlck1vdXNlT24ocnRsKTsKKyAg
ICB2YXIgb2Zmc2V0QmVmb3JlID0gcnRsLnNjcm9sbExlZnQ7CisKKyAgICBydGwub25zY3JvbGwg
PSBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIG9mZnNldEFmdGVyID0gcnRsLnNjcm9sbExlZnQ7
CisgICAgICAgIGlmIChvZmZzZXRCZWZvcmUgPiBvZmZzZXRBZnRlcikKKyAgICAgICAgICAgIGxv
ZygicnRsOiBQQVNTIik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbG9nKCJydGw6IEZB
SUwiKTsKKyAgICAgICAgICAgIGxvZygic2Nyb2xsTGVmdCBiZWZvcmU6ICIgKyBvZmZzZXRCZWZv
cmUpOworICAgICAgICAgICAgbG9nKCJzY3JvbGxMZWZ0IGFmdGVyOiAiICsgb2Zmc2V0QWZ0ZXIp
OworICAgICAgICB9CisgICAgICAgIHRlc3RCVCgpOwogICAgIH0KIAotICAgIGNlbnRlck1vdXNl
T24oInJ0bCIpOwotICAgIHZhciBvZmZzZXRCZWZvcmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicnRsIikuc2Nyb2xsTGVmdDsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5KDEsIDAp
OwotICAgIHZhciBvZmZzZXRBZnRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJydGwiKS5z
Y3JvbGxMZWZ0OwotICAgIGlmIChvZmZzZXRCZWZvcmUgPiBvZmZzZXRBZnRlcikKLSAgICAgICAg
bG9nKCJydGw6IFBBU1MiKTsKLSAgICBlbHNlIHsKLSAgICAgICAgbG9nKCJydGw6IEZBSUwiKTsK
LSAgICAgICAgbG9nKCJzY3JvbGxMZWZ0IGJlZm9yZTogIiArIG9mZnNldEJlZm9yZSk7Ci0gICAg
ICAgIGxvZygic2Nyb2xsTGVmdCBhZnRlcjogIiArIG9mZnNldEFmdGVyKTsKK30KKworZnVuY3Rp
b24gdGVzdEJUKCkKK3sKKyAgICB2YXIgYnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnQi
KTsKKyAgICBjZW50ZXJNb3VzZU9uKGJ0KTsKKyAgICBvZmZzZXRCZWZvcmUgPSBidC5zY3JvbGxU
b3A7CisgICAgYnQub25zY3JvbGwgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgb2Zmc2V0QWZ0ZXIg
PSBidC5zY3JvbGxUb3A7CisgICAgICAgIGlmIChvZmZzZXRCZWZvcmUgPiBvZmZzZXRBZnRlcikK
KyAgICAgICAgICAgIGxvZygiYnQ6IFBBU1MiKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICBsb2coImJ0OiBGQUlMIik7CisgICAgICAgICAgICBsb2coInNjcm9sbFRvcCBiZWZvcmU6ICIg
KyBvZmZzZXRCZWZvcmUpOworICAgICAgICAgICAgbG9nKCJzY3JvbGxUb3AgYWZ0ZXI6ICIgKyBv
ZmZzZXRBZnRlcik7CisgICAgICAgIH0KKworICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJydGwiKSk7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ0IikpOworICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAKLSAgICBjZW50ZXJNb3VzZU9uKCJidCIp
OwotICAgIG9mZnNldEJlZm9yZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJidCIpLnNjcm9s
bFRvcDsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5KDAsIDEpOwotICAgIG9mZnNldEFm
dGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ0Iikuc2Nyb2xsVG9wOwotICAgIGlmIChv
ZmZzZXRCZWZvcmUgPiBvZmZzZXRBZnRlcikKLSAgICAgICAgbG9nKCJidDogUEFTUyIpOwotICAg
IGVsc2UgewotICAgICAgICBsb2coImJ0OiBGQUlMIik7Ci0gICAgICAgIGxvZygic2Nyb2xsVG9w
IGJlZm9yZTogIiArIG9mZnNldEJlZm9yZSk7Ci0gICAgICAgIGxvZygic2Nyb2xsVG9wIGFmdGVy
OiAiICsgb2Zmc2V0QWZ0ZXIpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGlmICghd2luZG93
LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cuZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeSkgeworICAg
ICAgICBsb2coIlRoaXMgdGVzdCByZXF1aXJlcyBEdW1wUmVuZGVyVHJlZSB3aXRoIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnkuIik7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJydGwiKSk7Ci0g
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnQi
KSk7CisgICAgdGVzdFJUTCgpOwogfQogCiB0ZXN0KCk7CkluZGV4OiBMYXlvdXRUZXN0cy90aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5k
bGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LXdpdGgtaGFuZGxlci5odG1sCShyZXZpc2lv
biAxODg3NTIpCisrKyBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNj
cm9sbC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTg0LDkgKzg0LDYgQEAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCiAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25l
Jyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsK
LSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7CiAgICAgZXZl
bnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKIH0K
SW5kZXg6IExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWRp
di1sYXRjaGVkLWRpdi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi5odG1sCShyZXZpc2lvbiAx
ODg3NTIpCisrKyBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9s
bC1kaXYtbGF0Y2hlZC1kaXYuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNzgsOSArNzgsNiBAQCBm
dW5jdGlvbiBzY3JvbGxUZXN0KCkKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2JlZ2luJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
Y29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKICAgICBldmVudFNlbmRlci5jYWxsQWZ0
ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwogfQpJbmRleDogTGF5b3V0VGVz
dHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZy
YW1lLXdpdGgtaGFuZGxlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RpbGVkLWRy
YXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhh
bmRsZXIuaHRtbAkocmV2aXNpb24gMTg4NzUyKQorKysgTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2lu
Zy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxl
ci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05MCwxMCArOTAsNyBAQCBmdW5jdGlvbiBzY3JvbGxU
ZXN0KCkKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsK
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2JlZ2luJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwotICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtNCwgJ25vbmUnLCAnY29udGludWUnKTsKICAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwg
J25vbmUnLCAnZW5kJyk7CiAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxl
dGVzKGNoZWNrRm9yU2Nyb2xsKTsKICAgICAvLyBXZSBzaG91bGQgZmluaXNoIHZpYSB0aGUgc2Ny
b2xsIGV2ZW50OyB0aGlzIHdpbGwgZmlyZSBpbiB0aGUgY2FzZSBvZiBmYWlsdXJlIHdoZW4gdGhl
IHBhZ2UgZG9lc24ndCBzY3JvbGwuCkluZGV4OiBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1kaXYt
bGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkocmV2aXNpb24gMTg4NzUyKQorKysgTGF5b3V0VGVzdHMv
dGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1l
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgzLDEwICs4Myw3IEBAIGZ1bmN0aW9uIHNjcm9sbFRl
c3QoKQogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwog
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdjb250aW51ZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC00LCAnbm9uZScsICdjb250aW51ZScpOwogICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAn
bm9uZScsICdlbmQnKTsKICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0
ZXMoY2hlY2tGb3JTY3JvbGwpOwogICAgIC8vIFdlIHNob3VsZCBmaW5pc2ggdmlhIHRoZSBzY3Jv
bGwgZXZlbnQ7IHRoaXMgd2lsbCBmaXJlIGluIHRoZSBjYXNlIG9mIGZhaWx1cmUgd2hlbiB0aGUg
cGFnZSBkb2Vzbid0IHNjcm9sbC4KSW5kZXg6IExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS13aXRoLWhhbmRsZXIuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0
LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwJKHJldmlzaW9u
IDE4ODc1MikKKysrIExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Ny
b2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS13aXRoLWhhbmRsZXIuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNjIsOSArNjIsNiBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywg
J25vbmUnKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51
ZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
Jyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKICAg
ICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwp
OwogfQpJbmRleDogTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3Jv
bGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
dGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1l
Lmh0bWwJKHJldmlzaW9uIDE4ODc1MikKKysrIExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC01Miw5ICs1Miw2IEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQogICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQn
LCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsKICAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRp
bnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGlu
dWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwog
ICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBsZXRlcyhjaGVja0ZvclNjcm9s
bCk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNj
cm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtaWZy
YW1lLWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sCShyZXZpc2lvbiAxODg3NTIp
CisrKyBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1pZnJh
bWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTY1LDEwICs2NSw3IEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQogICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAn
bm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsK
LSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC00LCAnbm9uZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKICAgICBldmVu
dFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwogCklu
ZGV4OiBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1pZnJh
bWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUu
aHRtbAkocmV2aXNpb24gMTg4NzUyKQorKysgTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3Jv
bGxpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTU4LDEwICs1OCw3IEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQogICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2No
YW5nZWQnLCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
YmVnaW4nKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250
aW51ZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRp
bnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC00LCAnbm9uZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsK
ICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3Jv
bGwpOwogCkluZGV4OiBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNj
cm9sbC1pZnJhbWUtbGF0Y2hlZC1zZWxlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1zZWxl
Y3QuaHRtbAkocmV2aXNpb24gMTg4NzUyKQorKysgTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtc2VsZWN0Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTU3LDkgKzU3LDYgQEAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCiAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRl
ZCcsICdub25lJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOwogICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29u
dGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250
aW51ZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKICAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7
CiAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Ny
b2xsKTsKIApJbmRleDogTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1z
Y3JvbGwtbWFpbmZyYW1lLXpvb20uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1tYWluZnJhbWUtem9vbS5odG1sCShyZXZp
c2lvbiAxODg3NTIpCisrKyBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0
LXNjcm9sbC1tYWluZnJhbWUtem9vbS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00NSw5ICs0NSw5
IEBACiAgICAgICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWCA9IE1hdGgucm91bmQoc2VsZWN0VGFy
Z2V0Lm9mZnNldExlZnQpICsgMjA7CiAgICAgICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IE1h
dGgucm91bmQoc2VsZWN0VGFyZ2V0Lm9mZnNldFRvcCkgLSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0
aGFuIG9uZSB3aGVlbCBzY3JvbGwgYXdheSBmcm9tIHRoZSB0YXJnZXQgZGl2CiAgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBN
YWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgdGFyZ2V0IGRpdgotICAgICAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbics
ICdub25lJyk7CiAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0MDsgKytpKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICAg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xMCwgJ2NoYW5nZWQnLCAnbm9uZScpOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKICAgICAgICAgICAgICAgICAgCklu
ZGV4OiBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxl
Y3QtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNo
ZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sCShyZXZpc2lvbiAxODg3NTIpCisrKyBMYXlv
dXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hl
ZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTg5LDEwICs4
OSw3IEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwog
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAwLCAnZW5kZWQnLCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwotICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25v
bmUnLCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC00LCAnbm9u
ZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKICAgICBldmVudFNlbmRlci5j
YWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwogCkluZGV4OiBMYXlv
dXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hl
ZC1tYWluZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAkocmV2
aXNpb24gMTg4NzUyKQorKysgTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFz
dC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTgzLDEwICs4Myw3IEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQogICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAn
bm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsK
LSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC00LCAnbm9uZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKICAgICBldmVu
dFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwogCklu
ZGV4OiBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxl
Y3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3Qt
bGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg4NzUy
KQorKysgTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtc2Vs
ZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEzLDE3ICsxMywxNiBAQCBURVNUIENPTVBMRVRFCiBkaXYgZGlzcGxheSBoZWlnaHQg
PSAxMTEKIE1vdXNlIG1vdmVkIHRvICgzMCwgMjM4KQogUEFTUyBQYWdlIGRpZCBub3QgcmVjZWl2
ZSB3aGVlbCBldmVudHMuCi1Eb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yIDggb2YgdGhl
IHdoZWVsIGV2ZW50cy4KIChHcmFwaGljc0xheWVyCiAgIChhbmNob3IgMC4wMCAwLjAwKQotICAo
Ym91bmRzIDIwMDguMDAgMjMxMS4wMCkKKyAgKGJvdW5kcyAyMDA4LjAwIDIyOTYuMDApCiAgICh2
aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDApCiAgIChjb3ZlcmFnZSByZWN0
IDAuMDAsIDAuMDAgNzg1LjAwIHggNTg1LjAwKQogICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0
IDEpCiAgIChjb250ZW50c1NjYWxlIDEuMDApCiAgIChjaGlsZHJlbiAxCiAgICAgKEdyYXBoaWNz
TGF5ZXIKLSAgICAgIChib3VuZHMgMjAwOC4wMCAyMzExLjAwKQorICAgICAgKGJvdW5kcyAyMDA4
LjAwIDIyOTYuMDApCiAgICAgICAoY29udGVudHNPcGFxdWUgMSkKICAgICAgICh2aXNpYmxlIHJl
Y3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDApCiAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAw
LCAwLjAwIDE1NzAuMDAgeCAxNzU1LjAwKQpJbmRleDogTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2lu
Zy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxl
ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXIuaHRtbAkocmV2
aXNpb24gMTg4NzUyKQorKysgTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFz
dC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxlci5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC01Nyw4ICs1Nyw2IEBAIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKICAgICBl
bHNlCiAgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50
cy4iKTsKIAotICAgIGRlYnVnKCJEb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yICIgKyB3
aGVlbENvdW50ICsgIiBvZiB0aGUgd2hlZWwgZXZlbnRzLiIpOwotCiAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlu
bmVyVGV4dCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsCiAgICAgICAgICAg
ICBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxz
LkxBWUVSX1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOwpAQCAtODgsOSArODYsNiBAQCBmdW5j
dGlvbiBzY3JvbGxUZXN0KCkKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2JlZ2luJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwotICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29u
dGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250
aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJT
Y3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwogfQpJbmRleDogTGF5b3V0VGVzdHMv
dGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
ZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWwJKHJldmlzaW9uIDE4ODc1MikK
KysrIExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLXNlbGVj
dC1sYXRjaGVkLXNlbGVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04MCw5ICs4MCw2IEBAIGZ1
bmN0aW9uIHNjcm9sbFRlc3QoKQogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwogICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnYmVnaW4nKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Nv
bnRpbnVlJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwogICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRl
clNjcm9sbGluZ0NvbXBsZXRlcyhjaGVja0ZvclNjcm9sbCk7CiB9CkluZGV4OiBMYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9pZnJhbWVfaW5faWZyYW1lLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvaWZyYW1lX2luX2lmcmFt
ZS5odG1sCShyZXZpc2lvbiAxODg3NTIpCisrKyBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9pZnJhbWVfaW5faWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTc3LDkgKzc3
LDYgQEAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7CiAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdiZWdpbicpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwotICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25v
bmUnLCAnY29udGludWUnKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7CiAgICAgZXZlbnRTZW5kZXIu
Y2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKIH0KSW5kZXg6IExh
eW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1yZWR1Y2Vk
LWNvbnRlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtcmVkdWNlZC1jb250ZW50Lmh0bWwJKHJldmlzaW9uIDE4
ODc1MikKKysrIExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93LXNj
cm9sbC1yZWR1Y2VkLWNvbnRlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTUsOSArNTUsNiBA
QCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2JlZ2luJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKIAogICAgIHNldFRpbWVvdXQoZGVj
cmVhc2VDb250ZW50U2l6ZSwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC16ZXJvLWRlbHRhLXdoZWVsLWV2ZW50cy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93
LXNjcm9sbC16ZXJvLWRlbHRhLXdoZWVsLWV2ZW50cy5odG1sCShyZXZpc2lvbiAxODg3NTIpCisr
KyBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtemVy
by1kZWx0YS13aGVlbC1ldmVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsNiBA
QCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2JlZ2luJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKICAgICBldmVudFNlbmRlci5jYWxs
QWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JaZXJvKTsKIH0KSW5kZXg6IExheW91dFRl
c3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Jvb3Qtb3ZlcmZsb3ctd2l0aC1tb3VzZXdoZWVs
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
cm9vdC1vdmVyZmxvdy13aXRoLW1vdXNld2hlZWwuaHRtbAkocmV2aXNpb24gMTg4NzUyKQorKysg
TGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvcm9vdC1vdmVyZmxvdy13aXRoLW1v
dXNld2hlZWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTAgKzI3LDcgQEAgZnVuY3Rpb24g
c2Nyb2xsVGVzdCgpCiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CiAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdu
b25lJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUn
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEwLCAnbm9uZScsICdjb250aW51ZScp
OwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAwLCAnbm9uZScsICdlbmQnKTsKICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxp
bmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwogfQpJbmRleDogTGF5b3V0VGVzdHMvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvd2hlZWwtZXZlbnRzLXdpdGgtbm8tZGVsdGEuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy93aGVlbC1ldmVudHMt
d2l0aC1uby1kZWx0YS5odG1sCShyZXZpc2lvbiAxODg3NTIpCisrKyBMYXlvdXRUZXN0cy90aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy93aGVlbC1ldmVudHMtd2l0aC1uby1kZWx0YS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOSwxNSArMTksMTEgQEAgZnVuY3Rpb24gbW91c2VXaGVlbEZpcmVkKGUp
IHsKIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQogewogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KDIwLCAyMCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIDAsICdiZWdhbicsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25l
Jyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAwLCAnY2hhbmdlZCcsICdub25lJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdu
b25lJywgJ2JlZ2luJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnY29u
dGludWUnKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL3Rp
bGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWlmcmFtZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9s
bC1zbmFwL3Njcm9sbC1zbmFwLWlmcmFtZS5odG1sCShyZXZpc2lvbiAxODg3NTIpCisrKyBMYXlv
dXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1p
ZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtODMsMTAgKzgzLDEwIEBACiAgICAgICAgICAg
ICB2YXIgc3RhcnRQb3NYID0gd2luZG93UG9zaXRpb24ueCArIDAuNSAqIGlmcmFtZVRhcmdldC5j
bGllbnRXaWR0aDsKICAgICAgICAgICAgIHZhciBzdGFydFBvc1kgPSB3aW5kb3dQb3NpdGlvbi55
ICsgMC41ICogaWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdodDsKICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFy
ZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ2JlZ2FuJywgJ25vbmUn
LCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25lJywgZmFsc2UpOwotICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKGR4LCBkeSwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5k
ZWQnLCAnbm9uZScsIGZhbHNlKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdiZWdhbicsICdub25lJyk7Cisg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdl
ZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBsZXRlcyhmdW5jdGlvbigpIHsgcmV0
dXJuIGNoZWNrRm9yU2Nyb2xsU25hcCh0YXJnZXRMYWJlbCk7IH0pOwogICAgICAgICB9CiAKQEAg
LTEzMiwxNyArMTMyLDE0IEBACiAgICAgICAgICAgICB2YXIgc3RhcnRQb3NYID0gd2luZG93UG9z
aXRpb24ueCArIDAuNSAqIGlmcmFtZVRhcmdldC5jbGllbnRXaWR0aDsKICAgICAgICAgICAgIHZh
ciBzdGFydFBvc1kgPSB3aW5kb3dQb3NpdGlvbi55ICsgMC41ICogaWZyYW1lVGFyZ2V0LmNsaWVu
dEhlaWdodDsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwg
c3RhcnRQb3NZKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdiZWdhbicsICdub25lJywgZmFsc2UpOwotICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKGR4LCBkeSwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdj
aGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25l
JywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgZmFsc2UpOwotICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KGR4LCBkeSwgJ25vbmUnLCAnYmVnaW4nLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScs
ICdjb250aW51ZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2NvbnRpbnVlJywg
ZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ25vbmUnLCAnY29udGludWUnLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoZHgsIGR5LCAnbm9uZScsICdjb250aW51ZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9u
ZScsICdlbmQnLCBmYWxzZSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnYmVnYW4nLCAnbm9uZScpOworICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKGR4LCBkeSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ2NoYW5nZWQn
LCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IDAsICdlbmRlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdiZWdpbicpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKGR4LCBkeSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScs
ICdlbmQnKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBs
ZXRlcyhmdW5jdGlvbigpIHsgcmV0dXJuIGNoZWNrRm9yU2Nyb2xsR2xpZGUodGFyZ2V0TGFiZWwp
OyB9KTsKICAgICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktMmQtb3ZlcmZsb3cuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwt
c25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktMmQtb3ZlcmZsb3cuaHRtbAkocmV2aXNpb24gMTg4
NzUyKQorKysgTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtbWFuZGF0b3J5LTJkLW92ZXJmbG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTU4LDE5ICs1OCwxNiBAQAogICAgICAgICAgICAgICAgIHk6IGRpdlRhcmdldC5zY3JvbGxUb3AK
ICAgICAgICAgICAgIH07CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAs
IDEwMCk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoLTEsIDAsICJiZWdhbiIsICJub25lIiwgZmFsc2UpOwotICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0x
LCAwLCAiY2hhbmdlZCIsICJub25lIiwgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAiY2hhbmdlZCIs
ICJub25lIiwgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAiY2hhbmdlZCIsICJub25lIiwgZmFsc2Up
OwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAiY2hhbmdlZCIsICJub25lIiwgZmFsc2UpOwotICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAiY2hhbmdlZCIsICJub25lIiwgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJlbmRlZCIsICJub25l
IiwgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAibm9uZSIsICJiZWdpbiIsIGZhbHNlKTsKLSAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgIm5vbmUiLCAiY29udGludWUiLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICJub25l
IiwgImNvbnRpbnVlIiwgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAibm9uZSIsICJjb250aW51ZSIs
IGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgIm5vbmUiLCAiY29udGludWUiLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgMCwgIm5vbmUiLCAiZW5kIiwgZmFsc2UpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAiYmVnYW4iLCAi
bm9uZSIpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAs
ICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgImNoYW5nZWQiLCAibm9uZSIpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICJjaGFuZ2Vk
IiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAiZW5kZWQiLCAibm9uZSIpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAibm9uZSIsICJiZWdpbiIpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAibm9uZSIsICJjb250aW51ZSIpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICJub25lIiwgImVuZCIpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2Fs
bEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2luZ2xlQXhpc0dsaWRlKTsKICAgICAg
ICAgfQogCkBAIC04OSwxMCArODYsMTAgQEAKICAgICAgICAgICAgIH07CiAKICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKLSAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygxLCAxLCAiYmVnYW4i
LCAibm9uZSIsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygxLCAxLCAiY2hhbmdlZCIsICJub25lIiwgZmFsc2Up
OwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDEsIDEsICJjaGFuZ2VkIiwgIm5vbmUiLCBmYWxzZSk7Ci0gICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwg
ImVuZGVkIiwgIm5vbmUiLCBmYWxzZSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMSwgMSwgImJlZ2FuIiwgIm5vbmUiKTsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygxLCAxLCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMSwgMSwgImNoYW5nZWQi
LCAibm9uZSIpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJlbmRlZCIsICJub25lIik7CiAgICAgICAgICAgICBl
dmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGxTbmFw
KTsKICAgICAgICAgfQogCkBAIC0xMTMsMTcgKzExMCwxNCBAQAogICAgICAgICAgICAgfTsKIAog
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOwotICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0x
LCAtMSwgImJlZ2FuIiwgIm5vbmUiLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIC0xLCAiY2hhbmdlZCIs
ICJub25lIiwgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAtMSwgImNoYW5nZWQiLCAibm9uZSIsIGZhbHNl
KTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygtMSwgLTEsICJjaGFuZ2VkIiwgIm5vbmUiLCBmYWxzZSk7Ci0gICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
MCwgImVuZGVkIiwgIm5vbmUiLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIC0xLCAibm9uZSIsICJiZWdp
biIsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgLTEsICJub25lIiwgImNvbnRpbnVlIiwgZmFsc2UpOwot
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKC0xLCAtMSwgIm5vbmUiLCAiY29udGludWUiLCBmYWxzZSk7Ci0gICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIC0x
LCAibm9uZSIsICJjb250aW51ZSIsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgLTEsICJub25lIiwgImNv
bnRpbnVlIiwgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJub25lIiwgImVuZCIsIGZhbHNlKTsKKyAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygtMSwgLTEsICJiZWdhbiIsICJub25lIik7CisgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIC0xLCAiY2hhbmdlZCIs
ICJub25lIik7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoLTEsIC0xLCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEs
IC0xLCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgImVuZGVkIiwgIm5vbmUiKTsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygtMSwgLTEsICJub25lIiwgImJlZ2luIik7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIC0xLCAibm9uZSIs
ICJjb250aW51ZSIpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJub25lIiwgImVuZCIpOwogICAgICAgICAgICAg
ZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsR2xp
ZGUpOwogICAgICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1ib3JkZXJzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtbWFuZGF0b3J5LWJvcmRlcnMuaHRtbAkocmV2aXNpb24gMTg4NzUyKQorKysg
TGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNu
YXAtbWFuZGF0b3J5LWJvcmRlcnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDEwICsxMTYs
MTAgQEAKICAgICAgICAgICAgIHZhciBzdGFydFBvc1ggPSB3aW5kb3dQb3NpdGlvbi54ICsgMC41
ICogZGl2VGFyZ2V0LmNsaWVudFdpZHRoOwogICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IHdp
bmRvd1Bvc2l0aW9uLnkgKyAwLjUgKiBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0OwogICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtl
IHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCi0gICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnYmVn
YW4nLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdjaGFuZ2VkJywgJ25vbmUnLCBm
YWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25lJywgZmFsc2UpOwotICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIDAsICdlbmRlZCcsICdub25lJywgZmFsc2UpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ2JlZ2FuJywg
J25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwg
ZHksICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwog
ICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGZ1bmN0
aW9uKCkgeyByZXR1cm4gY2hlY2tGb3JTY3JvbGxTbmFwKHRhcmdldExhYmVsKTsgfSk7CiAgICAg
ICAgIH0KIApAQCAtMTYzLDE3ICsxNjMsMTQgQEAKICAgICAgICAgICAgIHZhciBzdGFydFBvc1gg
PSB3aW5kb3dQb3NpdGlvbi54ICsgZGl2VGFyZ2V0LmNsaWVudFdpZHRoIC0gMTA7CiAgICAgICAg
ICAgICB2YXIgc3RhcnRQb3NZID0gd2luZG93UG9zaXRpb24ueSArIDUwOwogICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOwotICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4
LCBkeSwgJ2JlZ2FuJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcs
ICdub25lJywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNl
KTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcyhkeCwgZHksICdjaGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
MCwgJ2VuZGVkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdiZWdp
bicsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2NvbnRpbnVlJywgZmFsc2UpOwot
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKGR4LCBkeSwgJ25vbmUnLCAnY29udGludWUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5
LCAnbm9uZScsICdjb250aW51ZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2Nv
bnRpbnVlJywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIGZhbHNlKTsKKyAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcyhkeCwgZHksICdiZWdhbicsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcs
ICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgs
IGR5LCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2JlZ2luJyk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScs
ICdjb250aW51ZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwogICAgICAgICAgICAg
ZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGZ1bmN0aW9uKCkgeyByZXR1
cm4gY2hlY2tGb3JTY3JvbGxHbGlkZSh0YXJnZXRMYWJlbCk7IH0pOwogICAgICAgICB9CiAKSW5k
ZXg6IExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9s
bC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1z
bmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC5odG1sCShyZXZpc2lvbiAxODg3NTIp
CisrKyBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3Jv
bGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNTEsMTAgKzUxLDEwIEBACiAgICAgICAgICAgICB2YXIgc3RhcnRQb3NYID0gZGl2VGFy
Z2V0Lm9mZnNldExlZnQgKyAyMDsKICAgICAgICAgICAgIHZhciBzdGFydFBvc1kgPSBkaXZUYXJn
ZXQub2Zmc2V0VG9wICsgMjA7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhz
dGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRo
ZSBpRnJhbWUKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ2JlZ2FuJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
LTEsIDAsICdjaGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdjaGFuZ2Vk
JywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCBmYWxzZSk7
CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoLTEsIDAsICdiZWdhbicsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdjaGFuZ2Vk
JywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IDAsICdlbmRlZCcsICdub25lJyk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJT
Y3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGxTbmFwKTsKICAgICAgICAgfQogCkBAIC03
NiwxNyArNzYsMTQgQEAKICAgICAgICAgICAgIHZhciBzdGFydFBvc1ggPSBkaXZUYXJnZXQub2Zm
c2V0TGVmdCArIDIwOwogICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IGRpdlRhcmdldC5vZmZz
ZXRUb3AgKyAyMDsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9z
WCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFt
ZQotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKC0xLCAwLCAnYmVnYW4nLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwg
J2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ2NoYW5nZWQnLCAnbm9u
ZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ25vbmUn
LCAnYmVnaW4nLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdub25lJywgJ2NvbnRpbnVlJywgZmFs
c2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKC0xLCAwLCAnbm9uZScsICdjb250aW51ZScsIGZhbHNlKTsKLSAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygt
MSwgMCwgJ25vbmUnLCAnY29udGludWUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdub25lJywg
J2NvbnRpbnVlJywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIGZhbHNlKTsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygtMSwgMCwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ2NoYW5nZWQn
LCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEs
IDAsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKC0xLCAwLCAnbm9uZScsICdiZWdpbicpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnbm9uZScsICdj
b250aW51ZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwogICAgICAgICAgICAgZXZl
bnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsR2xpZGUp
OwogICAgICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtc2xvdy1ob3Jpem9u
dGFsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1zbG93LWhvcml6
b250YWwuaHRtbAkocmV2aXNpb24gMTg4NzUyKQorKysgTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2lu
Zy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1z
bG93LWhvcml6b250YWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTEsMTAgKzUxLDEwIEBACiAg
ICAgICAgICAgICB2YXIgc3RhcnRQb3NYID0gZGl2VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKICAg
ICAgICAgICAgIHZhciBzdGFydFBvc1kgPSBkaXZUYXJnZXQub2Zmc2V0VG9wICsgMjA7CiAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8v
IE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKLSAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwg
J2JlZ2FuJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdjaGFuZ2VkJywgJ25vbmUn
LCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdjaGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCBmYWxzZSk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdiZWdhbics
ICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwg
MCwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7CiAg
ICAgICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tG
b3JTY3JvbGxTbmFwKTsKICAgICAgICAgfQogCkBAIC03NiwxNyArNzYsMTQgQEAKICAgICAgICAg
ICAgIHZhciBzdGFydFBvc1ggPSBkaXZUYXJnZXQub2Zmc2V0TGVmdCArIDIwOwogICAgICAgICAg
ICAgdmFyIHN0YXJ0UG9zWSA9IGRpdlRhcmdldC5vZmZzZXRUb3AgKyAyMDsKICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBz
dXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQotICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnYmVnYW4n
LCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNl
KTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygtMSwgMCwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwg
MCwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9u
ZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ25vbmUnLCAnYmVnaW4nLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoLTEsIDAsICdub25lJywgJ2NvbnRpbnVlJywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnbm9u
ZScsICdjb250aW51ZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ25vbmUnLCAnY29udGludWUn
LCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdub25lJywgJ2NvbnRpbnVlJywgZmFsc2UpOwotICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIDAsICdub25lJywgJ2VuZCcsIGZhbHNlKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ2JlZ2FuJywg
J25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAw
LCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdjaGFuZ2VkJywgJ25vbmUnKTsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnbm9uZScsICdi
ZWdpbicpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKC00LCAwLCAnbm9uZScsICdjb250aW51ZScpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAs
ICdub25lJywgJ2VuZCcpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xs
aW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsR2xpZGUpOwogICAgICAgICB9CiAKSW5kZXg6IExh
eW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFw
LW1hbmRhdG9yeS1tYWluZnJhbWUtc2xvdy12ZXJ0aWNhbC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFw
LW1hbmRhdG9yeS1tYWluZnJhbWUtc2xvdy12ZXJ0aWNhbC5odG1sCShyZXZpc2lvbiAxODg3NTIp
CisrKyBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3Jv
bGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXNsb3ctdmVydGljYWwuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNTEsMTAgKzUxLDEwIEBACiAgICAgICAgICAgICB2YXIgc3RhcnRQb3NYID0gZGl2
VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKICAgICAgICAgICAgIHZhciBzdGFydFBvc1kgPSBkaXZU
YXJnZXQub2Zmc2V0VG9wICsgMjA7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRl
IHRoZSBpRnJhbWUKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFu
Z2VkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCBmYWxz
ZSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFu
Z2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIDAsICdlbmRlZCcsICdub25lJyk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0
ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGxTbmFwKTsKICAgICAgICAgfQogCkBA
IC03NiwxNyArNzYsMTQgQEAKICAgICAgICAgICAgIHZhciBzdGFydFBvc1ggPSBkaXZUYXJnZXQu
b2Zmc2V0TGVmdCArIDIwOwogICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IGRpdlRhcmdldC5v
ZmZzZXRUb3AgKyAyMDsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0
UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlG
cmFtZQotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAn
bm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsK
LSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25v
bmUnLCAnYmVnaW4nLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywg
ZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIGZhbHNlKTsKLSAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIGZhbHNl
KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5n
ZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScp
OworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOworICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC00LCAnbm9uZScs
ICdjb250aW51ZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwogICAgICAgICAgICAg
ZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsR2xp
ZGUpOwogICAgICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9z
Y3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLmh0bWwJ
KHJldmlzaW9uIDE4ODc1MikKKysrIExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNTEsMTAgKzUxLDEwIEBACiAgICAgICAgICAgICB2YXIgc3Rh
cnRQb3NYID0gZGl2VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKICAgICAgICAgICAgIHZhciBzdGFy
dFBvc1kgPSBkaXZUYXJnZXQub2Zmc2V0VG9wICsgMjA7CiAgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUg
anVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCBm
YWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywg
J25vbmUnLCBmYWxzZSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7CisgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9u
ZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7CiAgICAgICAgICAgICBldmVudFNl
bmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGxTbmFwKTsKICAg
ICAgICAgfQogCkBAIC03NiwxNyArNzYsMTQgQEAKICAgICAgICAgICAgIHZhciBzdGFydFBvc1gg
PSBkaXZUYXJnZXQub2Zmc2V0TGVmdCArIDIwOwogICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWSA9
IGRpdlRhcmdldC5vZmZzZXRUb3AgKyAyMDsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91
dHNpZGUgdGhlIGlGcmFtZQotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIGZhbHNlKTsK
LSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9u
ZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2NvbnRpbnVlJywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIGZh
bHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCBmYWxzZSk7Ci0gICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywg
J2VuZCcsIGZhbHNlKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25l
Jyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5k
ZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOworICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC00LCAnbm9uZScsICdjb250aW51ZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwog
ICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNr
Rm9yU2Nyb2xsR2xpZGUpOwogICAgICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL3RpbGVkLWRy
YXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1vdmVyZmxv
dy1zdGF0ZWxlc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktb3ZlcmZsb3ctc3Rh
dGVsZXNzLmh0bWwJKHJldmlzaW9uIDE4ODc1MikKKysrIExheW91dFRlc3RzL3RpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1vdmVyZmxvdy1z
dGF0ZWxlc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDksOSArNDksOSBAQAogICAgICAgICAg
ICAgdmFyIHN0YXJ0UG9zWSA9IHdpbmRvd1Bvc2l0aW9uLnkgKyAwLjUgKiBkaXZUYXJnZXQuY2xp
ZW50SGVpZ2h0OwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NY
LCBzdGFydFBvc1kpOwogICAgICAgICAgICAgLy8gRWFjaCB1bml0IG9mIHN0YXRlbGVzcyBzY3Jv
bGwgaXMgc2NhbGVkIGJ5IDEwIHBpeGVscy4KLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICJub25lIiwgIm5vbmUi
LCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEwLCAibm9uZSIsICJub25lIiwgZmFsc2UpOwotICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xMCwgIm5vbmUiLCAibm9uZSIsIGZhbHNlKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICJub25lIiwg
Im5vbmUiKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICJub25lIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMTAs
ICJub25lIiwgIm5vbmUiKTsKICAgICAgICAgICAgIC8vIFdhaXQgZm9yIHRoZSBzbmFwcGluZyB0
byBmaW5pc2guCiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAg
ICAgICAgIGlmIChkaXZUYXJnZXQuc2Nyb2xsVG9wICE9IDQwMCkKSW5kZXg6IExheW91dFRlc3Rz
L3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9y
eS1vdmVyZmxvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1vdmVyZmxvdy5odG1s
CShyZXZpc2lvbiAxODg3NTIpCisrKyBMYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktb3ZlcmZsb3cuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA2LDEwICsxMDYsMTAgQEAKICAgICAgICAgICAgIHZhciBzdGFydFBvc1gg
PSB3aW5kb3dQb3NpdGlvbi54ICsgMC41ICogZGl2VGFyZ2V0LmNsaWVudFdpZHRoOwogICAgICAg
ICAgICAgdmFyIHN0YXJ0UG9zWSA9IHdpbmRvd1Bvc2l0aW9uLnkgKyAwLjUgKiBkaXZUYXJnZXQu
Y2xpZW50SGVpZ2h0OwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQ
b3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZy
YW1lCi0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoZHgsIGR5LCAnYmVnYW4nLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwg
ZHksICdjaGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcs
ICdub25lJywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgZmFsc2UpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKGR4LCBkeSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdjaGFuZ2Vk
JywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAwLCAnZW5kZWQnLCAnbm9uZScpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVy
U2Nyb2xsaW5nQ29tcGxldGVzKGZ1bmN0aW9uKCkgeyByZXR1cm4gY2hlY2tGb3JTY3JvbGxTbmFw
KHRhcmdldExhYmVsKTsgfSk7CiAgICAgICAgIH0KIApAQCAtMTUzLDE3ICsxNTMsMTQgQEAKICAg
ICAgICAgICAgIHZhciBzdGFydFBvc1ggPSB3aW5kb3dQb3NpdGlvbi54ICsgMC41ICogZGl2VGFy
Z2V0LmNsaWVudFdpZHRoOwogICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IHdpbmRvd1Bvc2l0
aW9uLnkgKyAwLjUgKiBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0OwogICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOwotICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwg
J2JlZ2FuJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25l
JywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcyhkeCwgZHksICdjaGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2Vu
ZGVkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdiZWdpbicsIGZh
bHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2NvbnRpbnVlJywgZmFsc2UpOwotICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KGR4LCBkeSwgJ25vbmUnLCAnY29udGludWUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9u
ZScsICdjb250aW51ZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2NvbnRpbnVl
JywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIGZhbHNlKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhk
eCwgZHksICdiZWdhbicsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25l
Jyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAn
Y2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cyhkeCwgZHksICdub25lJywgJ2JlZ2luJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdjb250
aW51ZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwogICAgICAgICAgICAgZXZlbnRT
ZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGZ1bmN0aW9uKCkgeyByZXR1cm4gY2hl
Y2tGb3JTY3JvbGxHbGlkZSh0YXJnZXRMYWJlbCk7IH0pOwogICAgICAgICB9CiAKSW5kZXg6IExh
eW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFw
LW1hbmRhdG9yeS1wYWRkaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LXBhZGRp
bmcuaHRtbAkocmV2aXNpb24gMTg4NzUyKQorKysgTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LXBhZGRpbmcuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTE0LDEwICsxMTQsMTAgQEAKICAgICAgICAgICAgIHZhciBzdGFy
dFBvc1ggPSB3aW5kb3dQb3NpdGlvbi54ICsgMC41ICogZGl2VGFyZ2V0LmNsaWVudFdpZHRoOwog
ICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IHdpbmRvd1Bvc2l0aW9uLnkgKyAwLjUgKiBkaXZU
YXJnZXQuY2xpZW50SGVpZ2h0OwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
c3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0
aGUgaUZyYW1lCi0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnYmVnYW4nLCAnbm9uZScsIGZhbHNlKTsKLSAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cyhkeCwgZHksICdjaGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hh
bmdlZCcsICdub25lJywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgZmFs
c2UpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKGR4LCBkeSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdj
aGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2Fs
bEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGZ1bmN0aW9uKCkgeyByZXR1cm4gY2hlY2tGb3JTY3Jv
bGxTbmFwKHRhcmdldExhYmVsKTsgfSk7CiAgICAgICAgIH0KIApAQCAtMTYzLDE3ICsxNjMsMTQg
QEAKICAgICAgICAgICAgIHZhciBzdGFydFBvc1ggPSB3aW5kb3dQb3NpdGlvbi54ICsgZGl2VGFy
Z2V0LmNsaWVudFdpZHRoIC0gMTA7CiAgICAgICAgICAgICB2YXIgc3RhcnRQb3NZID0gd2luZG93
UG9zaXRpb24ueSArIDUwOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Rh
cnRQb3NYLCBzdGFydFBvc1kpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ2JlZ2FuJywgJ25vbmUnLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25lJywgZmFsc2UpOwotICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4
LCBkeSwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdjaGFuZ2Vk
JywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCBmYWxzZSk7
Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdiZWdpbicsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHks
ICdub25lJywgJ2NvbnRpbnVlJywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ25vbmUnLCAnY29u
dGludWUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdjb250aW51ZScsIGZhbHNl
KTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2NvbnRpbnVlJywgZmFsc2UpOwotICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IDAsICdub25lJywgJ2VuZCcsIGZhbHNlKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdiZWdhbicsICdub25l
Jyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAn
Y2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25lJyk7Cisg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2Jl
Z2luJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdjb250aW51ZScpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAs
ICdub25lJywgJ2VuZCcpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xs
aW5nQ29tcGxldGVzKGZ1bmN0aW9uKCkgeyByZXR1cm4gY2hlY2tGb3JTY3JvbGxHbGlkZSh0YXJn
ZXRMYWJlbCk7IH0pOwogICAgICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL3RpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1yb3RhdGVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LXJvdGF0ZWQuaHRtbAkocmV2aXNpb24gMTg4
NzUyKQorKysgTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtbWFuZGF0b3J5LXJvdGF0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTA4
LDEwICsxMDgsMTAgQEAKICAgICAgICAgICAgIHZhciBzdGFydFBvc1ggPSB3aW5kb3dQb3NpdGlv
bi54ICsgMC41ICogZGl2VGFyZ2V0LmNsaWVudFdpZHRoOwogICAgICAgICAgICAgdmFyIHN0YXJ0
UG9zWSA9IHdpbmRvd1Bvc2l0aW9uLnkgKyAwLjUgKiBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0Owog
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kp
OyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCi0gICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgs
IGR5LCAnYmVnYW4nLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdjaGFuZ2VkJywg
J25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25lJywgZmFsc2Up
OwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgZmFsc2UpOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwg
J2JlZ2FuJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcyhkeCwgZHksICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAn
bm9uZScpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxl
dGVzKGZ1bmN0aW9uKCkgeyByZXR1cm4gY2hlY2tGb3JTY3JvbGxTbmFwKHRhcmdldExhYmVsKTsg
fSk7CiAgICAgICAgIH0KIApAQCAtMTU1LDE3ICsxNTUsMTQgQEAKICAgICAgICAgICAgIHZhciBz
dGFydFBvc1ggPSB3aW5kb3dQb3NpdGlvbi54ICsgMC41ICogZGl2VGFyZ2V0LmNsaWVudFdpZHRo
OwogICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IHdpbmRvd1Bvc2l0aW9uLnkgKyAwLjUgKiBk
aXZUYXJnZXQuY2xpZW50SGVpZ2h0OwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ2JlZ2FuJywgJ25vbmUn
LCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25lJywgZmFsc2UpOwotICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKGR4LCBkeSwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdj
aGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCBm
YWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdiZWdpbicsIGZhbHNlKTsKLSAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhk
eCwgZHksICdub25lJywgJ2NvbnRpbnVlJywgZmFsc2UpOwotICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ25vbmUn
LCAnY29udGludWUnLCBmYWxzZSk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdjb250aW51ZScs
IGZhbHNlKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2NvbnRpbnVlJywgZmFsc2UpOwotICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIDAsICdub25lJywgJ2VuZCcsIGZhbHNlKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdiZWdhbics
ICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgs
IGR5LCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25l
Jyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdub25l
JywgJ2JlZ2luJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdjb250aW51ZScpOworICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIDAsICdub25lJywgJ2VuZCcpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVy
U2Nyb2xsaW5nQ29tcGxldGVzKGZ1bmN0aW9uKCkgeyByZXR1cm4gY2hlY2tGb3JTY3JvbGxHbGlk
ZSh0YXJnZXRMYWJlbCk7IH0pOwogICAgICAgICB9CiAK
</data>
<flag name="review"
          id="284848"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>