<?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>191517</bug_id>
          
          <creation_ts>2018-11-11 17:12:37 -0800</creation_ts>
          <short_desc>[WebAuthN] A new request should always cancel any pending request</short_desc>
          <delta_ts>2019-06-17 11:05:47 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>alex.gaynor</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>james</cc>
    
    <cc>kieun.shin</cc>
    
    <cc>maxwellswadling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1477428</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-11-11 17:12:37 -0800</bug_when>
    <thetext>A pending request should be cancelled whenever its initiator page is closed or refreshed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490197</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-12-20 17:05:36 -0800</bug_when>
    <thetext>*** Bug 192846 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490198</commentid>
    <comment_count>2</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-12-20 17:05:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/46888222&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533727</commentid>
    <comment_count>3</comment_count>
      <attachid>369216</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-06 18:58:09 -0700</bug_when>
    <thetext>Created attachment 369216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533931</commentid>
    <comment_count>4</comment_count>
      <attachid>369216</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-05-07 09:01:02 -0700</bug_when>
    <thetext>Comment on attachment 369216
Patch

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

Looks good! I made some suggestions for the text of the comments and changelog notes.

&gt; Source/WebCore/ChangeLog:3
&gt; +        [WebAuthN] A new request should always suppress the pending request if any

Suppressing the request makes it sound like the original request is still happening, but is silenced or delayed.

I think it would be better (based on the code) to describe this as &quot;A new request should always cancel any pending request&quot;.

&gt; Source/WebCore/ChangeLog:11
&gt; +        hanedled/timeout]. Therefore, the policy is then made to always suppress the pending

... the policy will be to always cancel any pending requests whenever a new request is made. This will enforce the policy of handling only one request at a time.&quot;

&gt; Source/WebKit/ChangeLog:12
&gt; +        to call. Therefore, the above issue doesn&apos;t exist anymore.

&apos;Previously we blocked new WebAuthN requests whenever a pending request was in progress to prevent background tabs from DoS foreground tabs. However, in r244938, the WebAuthN API was changed to restrict request handling to the focused document. Therefore, we no longer have a risk of DoS.&quot;

&gt; Source/WebKit/ChangeLog:15
&gt; +        WebAuhtN API in the period between [the previous initating page is closed, the pending

WebAuthN

&gt; Source/WebKit/ChangeLog:18
&gt; +        Also, it makes sense to have the current focused document to preempt the pending request.

&quot;Also, it makes sense to have the current focused document preempt the pending request.

&gt; Source/WebKit/ChangeLog:26
&gt; +        this issue at this moment. It will be addressed in Bug 191523.

Note that the current implementation doesn&apos;t explicitly cancel pending requests in the Authenticators, which means that we could receive responses from the Authenticator that were meant for a previous (now cancelled) request. A follow-up patch (see Bug 191523) will implement an Authenticator feature to support immediate cancellation.

In the meantime, to protect the atomicity of the request/response pair, i.e., preventing an old response being used for a new request, there are two safeguards:

&gt; Source/WebCore/Modules/webauthn/AuthenticatorCoordinatorClient.h:63
&gt; +    // Only one request is allowed at one time. A new reqeuest will suppress the pending request if any.

A new request will cancel any pending request

&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:132
&gt; +        m_pendingCompletionHandler(ExceptionData { NotAllowedError, &quot;This request is cancelled by a new request.&quot;_s });

&quot;This request has been cancelled by a new request&quot;?

&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:151
&gt; +        m_pendingCompletionHandler(ExceptionData { NotAllowedError, &quot;This request is cancelled by a new request.&quot;_s });

Ditto

&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.h:83
&gt; +    // Request: We only allow one request per time. A new request will cancel the pending one if any.

... A new request will cancel any pending ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1534119</commentid>
    <comment_count>5</comment_count>
      <attachid>369216</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-07 14:28:00 -0700</bug_when>
    <thetext>Comment on attachment 369216
Patch

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

Thanks Brent for r+ this patch.

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        [WebAuthN] A new request should always suppress the pending request if any
&gt; 
&gt; Suppressing the request makes it sound like the original request is still happening, but is silenced or delayed.
&gt; 
&gt; I think it would be better (based on the code) to describe this as &quot;A new request should always cancel any pending request&quot;.

Fixed.

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        hanedled/timeout]. Therefore, the policy is then made to always suppress the pending
&gt; 
&gt; ... the policy will be to always cancel any pending requests whenever a new request is made. This will enforce the policy of handling only one request at a time.&quot;

Fixed.

&gt;&gt; Source/WebKit/ChangeLog:12
&gt;&gt; +        to call. Therefore, the above issue doesn&apos;t exist anymore.
&gt; 
&gt; &apos;Previously we blocked new WebAuthN requests whenever a pending request was in progress to prevent background tabs from DoS foreground tabs. However, in r244938, the WebAuthN API was changed to restrict request handling to the focused document. Therefore, we no longer have a risk of DoS.&quot;

Fixed.

&gt;&gt; Source/WebKit/ChangeLog:15
&gt;&gt; +        WebAuhtN API in the period between [the previous initating page is closed, the pending
&gt; 
&gt; WebAuthN

Fixed.

&gt;&gt; Source/WebKit/ChangeLog:18
&gt;&gt; +        Also, it makes sense to have the current focused document to preempt the pending request.
&gt; 
&gt; &quot;Also, it makes sense to have the current focused document preempt the pending request.

Fixed.

&gt;&gt; Source/WebKit/ChangeLog:26
&gt;&gt; +        this issue at this moment. It will be addressed in Bug 191523.
&gt; 
&gt; Note that the current implementation doesn&apos;t explicitly cancel pending requests in the Authenticators, which means that we could receive responses from the Authenticator that were meant for a previous (now cancelled) request. A follow-up patch (see Bug 191523) will implement an Authenticator feature to support immediate cancellation.
&gt; 
&gt; In the meantime, to protect the atomicity of the request/response pair, i.e., preventing an old response being used for a new request, there are two safeguards:

Fixed.

&gt;&gt; Source/WebCore/Modules/webauthn/AuthenticatorCoordinatorClient.h:63
&gt;&gt; +    // Only one request is allowed at one time. A new reqeuest will suppress the pending request if any.
&gt; 
&gt; A new request will cancel any pending request

Fixed.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:132
&gt;&gt; +        m_pendingCompletionHandler(ExceptionData { NotAllowedError, &quot;This request is cancelled by a new request.&quot;_s });
&gt; 
&gt; &quot;This request has been cancelled by a new request&quot;?

Fixed.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:151
&gt;&gt; +        m_pendingCompletionHandler(ExceptionData { NotAllowedError, &quot;This request is cancelled by a new request.&quot;_s });
&gt; 
&gt; Ditto

Fixed.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.h:83
&gt;&gt; +    // Request: We only allow one request per time. A new request will cancel the pending one if any.
&gt; 
&gt; ... A new request will cancel any pending ones.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1534153</commentid>
    <comment_count>6</comment_count>
      <attachid>369332</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-07 16:04:18 -0700</bug_when>
    <thetext>Created attachment 369332
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1534160</commentid>
    <comment_count>7</comment_count>
      <attachid>369332</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-07 16:43:25 -0700</bug_when>
    <thetext>Comment on attachment 369332
Patch for landing

Clearing flags on attachment: 369332

Committed r245043: &lt;https://trac.webkit.org/changeset/245043&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1534261</commentid>
    <comment_count>8</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-08 01:06:05 -0700</bug_when>
    <thetext>A build fix is committed:
Committed r245052: &lt;https://trac.webkit.org/changeset/245052&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545312</commentid>
    <comment_count>9</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-06-17 11:05:47 -0700</bug_when>
    <thetext>*** Bug 192446 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369216</attachid>
            <date>2019-05-06 18:58:09 -0700</date>
            <delta_ts>2019-05-07 09:01:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191517-20190506185808.patch</filename>
            <type>text/plain</type>
            <size>38257</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0OTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWJjZjdjNDA2NWFlYWMx
MWQ0NDMyZTAwMjc0MDc5MzNhYTNhZjUxYS4uYTllYjQzYTIzZDY2OWU5NjdhZmNiMmQ4M2I5NWMx
ZGMxMDc4NjI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTA1LTA2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBBIG5l
dyByZXF1ZXN0IHNob3VsZCBhbHdheXMgc3VwcHJlc3MgdGhlIHBlbmRpbmcgcmVxdWVzdCBpZiBh
bnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTUx
NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDY4ODgyMjI+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmxvY2tpbmcgbmV3IHJlcXVlc3RzIGZyb20g
dGhlIHNhbWUgcGFnZSB3aGVuIHRoZXJlIGlzIGEgcGVuZGluZyByZXF1ZXN0IGNvdWxkIERvUyB0
aGUKKyAgICAgICAgV2ViQXV0aE4gQVBJIGluIHRoZSBwZXJpb2QgYmV0d2VlbiBbdGhlIHBhZ2Ug
aXMgcmVmcmVzaGVkLCB0aGUgcGVuZGluZyByZXF1ZXN0IGlzCisgICAgICAgIGhhbmVkbGVkL3Rp
bWVvdXRdLiBUaGVyZWZvcmUsIHRoZSBwb2xpY3kgaXMgdGhlbiBtYWRlIHRvIGFsd2F5cyBzdXBw
cmVzcyB0aGUgcGVuZGluZworICAgICAgICByZXF1ZXN0IHdoZW5ldmVyIHRoZXJlIGlzIGEgbmV3
IG9uZSB0byBrZWVwIHRoZSBwb2xpY3kgb2YgaGFuZGxpbmcgb25lIHJlcXVlc3QgYXQgYSB0aW1l
LgorCisgICAgICAgIENvdmVyZWQgYnkgbmV3IHRlc3RzIGluIGV4aXN0aW5nIGZpbGVzLgorCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50Ojpy
ZXF1ZXN0UmVwbHkpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckNvb3JkaW5hdG9y
Q2xpZW50OjpzZXRSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6
QXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50OjphZGRRdWVyeUNvbXBsZXRpb25IYW5kbGVy
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvckNs
aWVudC5oOgorCiAyMDE5LTA1LTAyICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dlYkF1dGhOXSBBIGZvY3VzZWQgZG9jdW1lbnQgc2hvdWxkIGJlIHJlcXVp
cmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGRjZTFiNGYwMDI5NDZmMzNlNjlkNzlmYzA5YWY1MGJlMjA3YzY0MDMu
LjExNDU4NTdiMzhkMjZlYzU3Y2Q3NDdiOTVkNGZhZTkzNjkxNTIzNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTggQEAKKzIwMTktMDUtMDYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViQXV0aE5dIEEgbmV3IHJlcXVlc3Qgc2hvdWxkIGFsd2F5cyBzdXBw
cmVzcyB0aGUgcGVuZGluZyByZXF1ZXN0IGlmIGFueQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNTE3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
Njg4ODIyMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCYWNrIHRoZW4sIGJsb2NraW5nIG5ldyByZXF1ZXN0cyBmcm9tIHJhbmRvbSB3ZWIgcGFnZXMg
aW4gVUkgUHJvY2VzcyB3aGVuIHRoZXJlCisgICAgICAgIGlzIGEgcGVuZGluZyByZXF1ZXN0IGlz
IGdvb2QgdG8gcHJldmVudCBiYWNrZ3JvdW5kIHRhYnMgZnJvbSBEb1MgdGhlIGZvcmVncm91bmQK
KyAgICAgICAgdGFiLiBIb3dldmVyLCBpbiByMjQ0OTM4LCBXZWJBdXRoTiBBUEkgaXMgcmVzdGly
Y3RlZCB0byBvbmx5IGFsbG93IGZvY3VzZWQgZG9jdW1lbnQKKyAgICAgICAgdG8gY2FsbC4gVGhl
cmVmb3JlLCB0aGUgYWJvdmUgaXNzdWUgZG9lc24ndCBleGlzdCBhbnltb3JlLgorCisgICAgICAg
IEFwYXJ0IGZyb20gdGhlIHZhbmlzaGVkIGJlbmVmaXQsIHRoaXMgYmVoYXZvaXIgYWN0dWFsbHkg
YmxvY2tzIG5ldyBwYWdlcyB0byB1c2UKKyAgICAgICAgV2ViQXVodE4gQVBJIGluIHRoZSBwZXJp
b2QgYmV0d2VlbiBbdGhlIHByZXZpb3VzIGluaXRhdGluZyBwYWdlIGlzIGNsb3NlZCwgdGhlIHBl
bmRpbmcKKyAgICAgICAgcmVxdWVzdCBpcyBoYW5lZGxlZC90aW1lb3V0XS4KKworICAgICAgICBB
bHNvLCBpdCBtYWtlcyBzZW5zZSB0byBoYXZlIHRoZSBjdXJyZW50IGZvY3VzZWQgZG9jdW1lbnQg
dG8gcHJlZW1wdCB0aGUgcGVuZGluZyByZXF1ZXN0LgorICAgICAgICBUaGVyZWZvcmUsIHRoZSBw
b2xpY3kgaXMgdGhlbiBtYWRlIHRvIGFsd2F5cyBzdXBwcmVzcyB0aGUgcGVuZGluZyByZXF1ZXN0
IHdoZW5ldmVyCisgICAgICAgIHRoZXJlIGlzIGEgbmV3IG9uZSB0byBrZWVwIHRoZSBwb2xpY3kg
b2YgaGFuZGxpbmcgb25lIHJlcXVlc3QgYXQgYSB0aW1lLgorCisgICAgICAgIFRoZSBjdXJyZW50
IGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgY2FuY2VsIHRoZSBwZW5kaW5nIHJlcXVlc3QgaW4gYW55
IGF1dGhlbnRpY2F0b3JzIGV4cGxpY2l0bHkuCisgICAgICAgIFRoZXJlZm9yZSwgdGhlIG5ldyBy
ZXF1ZXN0IGNvdWxkIHBvdGVudGlhbCBub3QgcmVhY2ggdGhlIGF1dGhlbnRpY2F0b3IgaWYgaXQg
aXMgYnVzeSBoYW5kbGluZworICAgICAgICB0aGUgcHJldmlvdXMgb25lLiBTaW5jZSB0aGUgYXV0
aGVudGljYXRvciBjb3VsZCBiZSBidXN5IGhhbmxkbGluZyByZXFldXN0cyBmcm9tIG90aGVyIGFw
cGxpY2F0aW9ucworICAgICAgICBhdCBhbnl0aW1lLCB0aGlzIGNhc2UgaXMgbm8gbXVjaCBkaWZm
ZXJlbmNlIHRoYW4gaXQuIEhlbmNlLCB0aGVyZSBpcyBubyBpbmNlbnRpdmVzIHRvIGFkZHJlc3MK
KyAgICAgICAgdGhpcyBpc3N1ZSBhdCB0aGlzIG1vbWVudC4gSXQgd2lsbCBiZSBhZGRyZXNzZWQg
aW4gQnVnIDE5MTUyMy4KKworICAgICAgICBGb3IgYXRvbWljaXR5IG9mIHRoZSByZXF1ZXN0L3Jl
c3BvbnNlIHBhaXIsIGkuZSwgcHJldmVudGluZyB1c2luZyB0aGUgb2xkIHJlc3BvbnNlIGZvciB0
aGUgbmV3IHJlcXVlc3QsCisgICAgICAgIHRoZXJlIGFyZSB0d28gc2FmZSBndWFyZHM6CisgICAg
ICAgIDEpIEluIHdlYiBwcm9jZXNzLCBlYWNoIHJlcXVlc3QgdG8gVUkgcHJvY2VzcyBpcyBwYWly
ZWQgd2l0aCBhbiBpbmNyZW1lbnRhbCBJRCwgYW5kIHRoZXJlZm9yZSBhbiBvbGQKKyAgICAgICAg
cmVzcG9uc2UgZnJvbSBVSSBwcm9jZXNzIHdvdWxkIGhhdmUgYSBkaWZmZXJlbnQgSUQgdGhhbiB0
aGUgY3VycmVudCByZXF1ZXN0LCB3aGljaCB3aWxsIHRoZW4gYmUgaWdub3JlZC4KKyAgICAgICAg
MikgSW4gVUkgcHJvY2VzcywgYWxsIHJlc3BvbnNlcyBmcm9tIGF1dGhlbnRpY2F0b3JzIHdpbGwg
YmUgcGlwZWQgdG8gdGhlIG1haW4gcnVuIGxvb3AgZm9yIHByb2Nlc3NpbmcuCisgICAgICAgIFRo
ZXJlZm9yZSwgd2hlbiB0aGUgbmV3IHJlcXVlc3QgY29tZXMgaW4sIHRoZSBvbGQgcmVzcG9uc2Ug
aXMgZWl0aGVyIHByb2Nlc3NlZCBvciB3YWl0aW5nIGluIHRoZSBwaXBlLgorICAgICAgICBUbyBw
cmV2ZW50IHRoZSBsYXR0ZXIgYmVpbmcgcHJvY2Vzc2VkLCB0aGUgbmV3IHJlcXVlc3Qgd2lsbCBp
bW1lZGlhdGVseSBkZXN0cm95IGFueSBhdXRoZW50aWNhdG9ycyBib3VuZAorICAgICAgICB0byB0
aGUgb2xkIHJlc3BvbnNlIGluIHRoZSBjdXJyZW50IHJ1biBsb29wLiBIZW5jZSwgaW4gdGhlIG5l
eHQgcnVuIGxvb3Agd2hlbiBkZWFsaW5nIHRoZSBvbGQgcmVzcG9uc2UsCisgICAgICAgIHRoZSBs
YW1iZGEgd2lsbCBoYXZlIG5vIHdoZXJlIHRvIGhhbmQgdGhlIHJlc3BvbnNlIG92ZXIuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yTWFuYWdlcjo6bWFrZUNyZWRlbnRp
YWwpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yTWFuYWdlcjo6Z2V0QXNzZXJ0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6OmNsZWFyU3RhdGVBc3lu
Yyk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpjbGVhclN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6OnRpbWVPdXRUaW1lckZpcmVk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1h
bmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6bWFrZUNyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6Z2V0QXNzZXJ0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OnJlcXVlc3RSZXBs
eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpt
YWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvcjo6Z2V0QXNzZXJ0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5tZXNzYWdlcy5pbjoKKwogMjAxOS0wNS0w
MyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmVzcG9uc2l2
ZSBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzZXMgc2hvdWxkIGdldCBraWxsZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yQ2xpZW50LmNwcAppbmRleCAzYzY1OGEzMmZjYmJkMGQxN2E3MTFkZmFmMmJi
NmExOTI2YTEzMmE5Li5lMWRmOTEyODdkZTUyN2JmMDdhNDQ4MmYzOTE2OGU3MTQ0MGJkNjM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JD
b29yZGluYXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQuY3BwCkBAIC0zMiw4ICszMiwxMCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xp
ZW50OjpyZXF1ZXN0UmVwbHkoY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGEm
IGRhdGEsIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikKK3ZvaWQgQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50OjpyZXF1ZXN0UmVwbHkodWludDY0X3QgbWVzc2Fn
ZUlkLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSYgZGF0YSwgY29uc3Qg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uKQogeworICAgIGlmIChtZXNzYWdlSWQg
IT0gbV9hY2N1bXVsYXRlZFJlcXVlc3RNZXNzYWdlSWQgLSAxKQorICAgICAgICByZXR1cm47CiAg
ICAgbV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIoZGF0YSwgZXhjZXB0aW9uKTsKIH0KIApAQCAt
NDMsMjAgKzQ1LDE4IEBAIHZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50Ojppc1Vz
ZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFiCiAgICAgaGFuZGxlcihyZXN1
bHQpOwogfQogCi1ib29sIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudDo6c2V0UmVxdWVz
dENvbXBsZXRpb25IYW5kbGVyKFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCit1
aW50NjRfdCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQ6OnNldFJlcXVlc3RDb21wbGV0
aW9uSGFuZGxlcihSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQogewotICAgIGlm
IChtX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICBoYW5kbGVyKHsgfSwgeyBO
b3RBbGxvd2VkRXJyb3IsICJBIHJlcXVlc3QgaXMgcGVuZGluZy4iX3MgfSk7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9CisgICAgaWYgKG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKQor
ICAgICAgICBtX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcih7IH0sIHsgTm90QWxsb3dlZEVycm9y
LCAiVGhpcyByZXF1ZXN0IGlzIHN1cHByZXNzZWQgYnkgYSBuZXcgcmVxdWVzdC4iX3MgfSk7CiAK
ICAgICBtX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcik7Ci0gICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIG1fYWNjdW11bGF0ZWRSZXF1ZXN0TWVzc2FnZUlkKys7
CiB9CiAKIHVpbnQ2NF90IEF1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudDo6YWRkUXVlcnlD
b21wbGV0aW9uSGFuZGxlcihRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKIHsKLSAg
ICB1aW50NjRfdCBtZXNzYWdlSWQgPSBtX2FjY3VtdWxhdGVkTWVzc2FnZUlkKys7CisgICAgdWlu
dDY0X3QgbWVzc2FnZUlkID0gbV9hY2N1bXVsYXRlZFF1ZXJ5TWVzc2FnZUlkKys7CiAgICAgYXV0
byBhZGRSZXN1bHQgPSBtX3BlbmRpbmdRdWVyeUNvbXBsZXRpb25IYW5kbGVycy5hZGQobWVzc2Fn
ZUlkLCBXVEZNb3ZlKGhhbmRsZXIpKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRk
UmVzdWx0LmlzTmV3RW50cnkpOwogICAgIHJldHVybiBtZXNzYWdlSWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvckNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JDbGllbnQuaAppbmRleCAxNjJhYWVhOGI0YzQwNmIzOGM2M2U3MzdhOTY3YWRhY2M3
ODdmOWI5Li41YmM0NDJmMjk5NjAwNjY1YTZkYjE0ZWU4OGMwNjhhZDFjMGM2MDBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGlu
YXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yQ2xpZW50LmgKQEAgLTU2LDE4ICs1NiwxOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWls
YWJsZShRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYpID0gMDsKIAogICAgIC8vIFJlY2VpdmVycy4K
LSAgICB2b2lkIHJlcXVlc3RSZXBseShjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFs
RGF0YSYsIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKTsKKyAgICB2b2lkIHJlcXVlc3RS
ZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRp
YWxEYXRhJiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpOwogICAgIHZvaWQgaXNVc2Vy
VmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlUmVwbHkodWludDY0X3QgbWVz
c2FnZUlkLCBib29sKTsKIAogcHJvdGVjdGVkOgotICAgIC8vIE9ubHkgb25lIHJlcXVlc3QgaXMg
YWxsb3dlZCBhdCBvbmUgdGltZS4gSXQgcmV0dXJucyBmYWxzZSB3aGVuZXZlciB0aGVyZSBpcyBh
biBleGlzdGluZyBwZW5kaW5nIHJlcXVlc3QuCi0gICAgLy8gQW5kIGludm9rZXMgdGhlIHByb3Zp
ZGVkIGhhbmRsZXIgd2l0aCBOb3RBbGxvd2VkRXJyb3IuCi0gICAgYm9vbCBzZXRSZXF1ZXN0Q29t
cGxldGlvbkhhbmRsZXIoUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIC8vIE9ubHkg
b25lIHJlcXVlc3QgaXMgYWxsb3dlZCBhdCBvbmUgdGltZS4gQSBuZXcgcmVxZXVlc3Qgd2lsbCBz
dXBwcmVzcyB0aGUgcGVuZGluZyByZXF1ZXN0IGlmIGFueS4KKyAgICAvLyBBIG1lc3NhZ2UgaWQg
dGhhdCBpcyB0aWVkIHRvIHRoZSByZXF1ZXN0IHdpbCBiZSBnZW5lcmF0ZWQgZWFjaCB0aW1lIHRv
IHByZXZlbnQgbWlzbWF0Y2hpbmcgcmVzcG9uc2VzLgorICAgIHVpbnQ2NF90IHNldFJlcXVlc3RD
b21wbGV0aW9uSGFuZGxlcihSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdWludDY0
X3QgYWRkUXVlcnlDb21wbGV0aW9uSGFuZGxlcihRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYpOwog
CiBwcml2YXRlOgorICAgIHVpbnQ2NF90IG1fYWNjdW11bGF0ZWRSZXF1ZXN0TWVzc2FnZUlkIHsg
MSB9OwogICAgIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciBtX3BlbmRpbmdDb21wbGV0aW9uSGFu
ZGxlcjsKLSAgICB1aW50NjRfdCBtX2FjY3VtdWxhdGVkTWVzc2FnZUlkIHsgMSB9OworICAgIHVp
bnQ2NF90IG1fYWNjdW11bGF0ZWRRdWVyeU1lc3NhZ2VJZCB7IDEgfTsKICAgICBIYXNoTWFwPHVp
bnQ2NF90LCBRdWVyeUNvbXBsZXRpb25IYW5kbGVyPiBtX3BlbmRpbmdRdWVyeUNvbXBsZXRpb25I
YW5kbGVyczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAppbmRleCA4
NGUyOGE4OTgzYzJjN2FiOGVlZWNhODcxMDNkNmVlZTU1NDVlMzVmLi5hYWU5Y2NiYWNmZTk2MWU2
OThlMDI5NmU2YWZlMzkzNGY2ZWQzZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFn
ZXIuY3BwCkBAIC0xMjksOCArMTI5LDkgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6bWFr
ZUNyZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWIKICAgICB1
c2luZyBuYW1lc3BhY2UgQXV0aGVudGljYXRvck1hbmFnZXJJbnRlcm5hbDsKIAogICAgIGlmICht
X3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICBjYWxsYmFjayhFeGNlcHRpb25E
YXRhIHsgTm90QWxsb3dlZEVycm9yLCAiQSByZXF1ZXN0IGlzIHBlbmRpbmcuIl9zIH0pOwotICAg
ICAgICByZXR1cm47CisgICAgICAgIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlv
bkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJUaGlzIHJlcXVlc3QgaXMgY2FuY2VsbGVkIGJ5IGEg
bmV3IHJlcXVlc3QuIl9zIH0pOworICAgICAgICBjbGVhclN0YXRlKCk7CisgICAgICAgIG1fcmVx
dWVzdFRpbWVPdXRUaW1lci5zdG9wKCk7CiAgICAgfQogCiAgICAgLy8gMS4gU2F2ZSByZXF1ZXN0
IGZvciBhc3luYyBvcGVyYXRpb25zLgpAQCAtMTQ3LDggKzE0OCw5IEBAIHZvaWQgQXV0aGVudGlj
YXRvck1hbmFnZXI6OmdldEFzc2VydGlvbihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNv
bnN0IFB1YmxpCiAgICAgdXNpbmcgbmFtZXNwYWNlIEF1dGhlbnRpY2F0b3JNYW5hZ2VySW50ZXJu
YWw7CiAKICAgICBpZiAobV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIpIHsKLSAgICAgICAgY2Fs
bGJhY2soRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIkEgcmVxdWVzdCBpcyBwZW5k
aW5nLiJfcyB9KTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBtX3BlbmRpbmdDb21wbGV0aW9u
SGFuZGxlcihFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dlZEVycm9yLCAiVGhpcyByZXF1ZXN0IGlz
IGNhbmNlbGxlZCBieSBhIG5ldyByZXF1ZXN0LiJfcyB9KTsKKyAgICAgICAgY2xlYXJTdGF0ZSgp
OworICAgICAgICBtX3JlcXVlc3RUaW1lT3V0VGltZXIuc3RvcCgpOwogICAgIH0KIAogICAgIC8v
IDEuIFNhdmUgcmVxdWVzdCBmb3IgYXN5bmMgb3BlcmF0aW9ucy4KQEAgLTE2NiwxMyArMTY4LDE4
IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmNsZWFyU3RhdGVBc3luYygpCiAgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gewog
ICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB3ZWFr
VGhpcy0+bV9wZW5kaW5nUmVxdWVzdERhdGEgPSB7IH07Ci0gICAgICAgIEFTU0VSVCghd2Vha1Ro
aXMtPm1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKTsKLSAgICAgICAgd2Vha1RoaXMtPm1fc2Vy
dmljZXMuY2xlYXIoKTsKLSAgICAgICAgd2Vha1RoaXMtPm1fYXV0aGVudGljYXRvcnMuY2xlYXIo
KTsKKyAgICAgICAgd2Vha1RoaXMtPmNsZWFyU3RhdGUoKTsKICAgICB9KTsKIH0KIAordm9pZCBB
dXRoZW50aWNhdG9yTWFuYWdlcjo6Y2xlYXJTdGF0ZSgpCit7CisgICAgbV9wZW5kaW5nUmVxdWVz
dERhdGEgPSB7IH07CisgICAgQVNTRVJUKCFtX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcik7Cisg
ICAgbV9zZXJ2aWNlcy5jbGVhcigpOworICAgIG1fYXV0aGVudGljYXRvcnMuY2xlYXIoKTsKK30K
Kwogdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6YXV0aGVudGljYXRvckFkZGVkKFJlZjxBdXRo
ZW50aWNhdG9yPiYmIGF1dGhlbnRpY2F0b3IpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKQEAgLTIzMSw3ICsyMzgsNyBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjp0aW1l
T3V0VGltZXJGaXJlZCgpCiB7CiAgICAgQVNTRVJUKG1fcmVxdWVzdFRpbWVPdXRUaW1lci5pc0Fj
dGl2ZSgpKTsKICAgICBtX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcigoRXhjZXB0aW9uRGF0YSB7
IE5vdEFsbG93ZWRFcnJvciwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIl9zIH0pKTsKLSAgICBjbGVh
clN0YXRlQXN5bmMoKTsKKyAgICBjbGVhclN0YXRlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKaW5kZXggN2ZjNGExZWJkOTAxYTZj
YzQ0ZjNmNDA2OGViNmIzN2NmZTQ4NTQxYS4uM2RlNDJkZWU4OGQxOWNmYzVjOTFiMTRjZmM5ZmIy
MWY4MDZjZWE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCkBAIC02Miw2ICs2
Miw3IEBAIHByb3RlY3RlZDoKICAgICBDYWxsYmFjayYgcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVy
KCkgeyByZXR1cm4gbV9wZW5kaW5nQ29tcGxldGlvbkhhbmRsZXI7IH0KICAgICBSdW5Mb29wOjpU
aW1lcjxBdXRoZW50aWNhdG9yTWFuYWdlcj4mIHJlcXVlc3RUaW1lT3V0VGltZXIoKSB7IHJldHVy
biBtX3JlcXVlc3RUaW1lT3V0VGltZXI7IH0KICAgICB2b2lkIGNsZWFyU3RhdGVBc3luYygpOyAv
LyBUbyB2b2lkIGN5Y2xpYyBkZXBlbmRlbmNlLgorICAgIHZvaWQgY2xlYXJTdGF0ZSgpOwogCiBw
cml2YXRlOgogICAgIC8vIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpPYnNlcnZlcgpA
QCAtNzksNyArODAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdFRpbWVPdXRUaW1lcihjb25z
dCBPcHRpb25hbDx1bnNpZ25lZD4mIHRpbWVPdXRJbk1zKTsKICAgICB2b2lkIHRpbWVPdXRUaW1l
ckZpcmVkKCk7CiAKLSAgICAvLyBSZXF1ZXN0OiBXZSBvbmx5IGFsbG93IG9uZSByZXF1ZXN0IHBl
ciB0aW1lLgorICAgIC8vIFJlcXVlc3Q6IFdlIG9ubHkgYWxsb3cgb25lIHJlcXVlc3QgcGVyIHRp
bWUuIEEgbmV3IHJlcXVlc3Qgd2lsbCBjYW5jZWwgdGhlIHBlbmRpbmcgb25lIGlmIGFueS4KICAg
ICBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhIG1fcGVuZGluZ1JlcXVlc3REYXRhOwogICAg
IENhbGxiYWNrIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyOwogICAgIFJ1bkxvb3A6OlRpbWVy
PEF1dGhlbnRpY2F0b3JNYW5hZ2VyPiBtX3JlcXVlc3RUaW1lT3V0VGltZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggZDZi
OGQ3NGUwMDdiODEyZWRlZjA5ZTAzYmVkYTJmZDVhNGVkMTVkNy4uYjVhNWM4MjM0ZDhmNDU1ODRh
ZDZhYThlZmQxNmJkZjU1ODNkZjQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcApAQCAtNTMsMzMgKzUzLDMzIEBAIFdlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvclByb3h5Ojp+V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJv
eHkoKQogICAgIG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpKTsKIH0KIAotdm9pZCBXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6bWFrZUNyZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zJiBvcHRpb25zKQordm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6bWFr
ZUNyZWRlbnRpYWwodWludDY0X3QgbWVzc2FnZUlkLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGhh
c2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9w
dGlvbnMpCiB7Ci0gICAgYXV0byBjYWxsYmFjayA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0gKFZhcmlhbnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGEsIFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGE+JiYgcmVzdWx0KSB7CisgICAgYXV0byBjYWxsYmFjayA9IFttZXNzYWdl
SWQsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoVmFyaWFudDxXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsRGF0YSwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIHsK
ICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBXVEY6OnN3aXRjaE9uKHJlc3VsdCwg
WyZdKGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhJiBkYXRhKSB7Ci0gICAg
ICAgICAgICB3ZWFrVGhpcy0+cmVxdWVzdFJlcGx5KGRhdGEsIHsgfSk7CisgICAgICAgICAgICB3
ZWFrVGhpcy0+cmVxdWVzdFJlcGx5KG1lc3NhZ2VJZCwgZGF0YSwgeyB9KTsKICAgICAgICAgfSwg
WyZdKGNvbnN0ICBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJiBleGNlcHRpb24pIHsKLSAgICAgICAg
ICAgIHdlYWtUaGlzLT5yZXF1ZXN0UmVwbHkoeyB9LCBleGNlcHRpb24pOworICAgICAgICAgICAg
d2Vha1RoaXMtPnJlcXVlc3RSZXBseShtZXNzYWdlSWQsIHsgfSwgZXhjZXB0aW9uKTsKICAgICAg
ICAgfSk7CiAgICAgfTsKICAgICBtX3dlYlBhZ2VQcm94eS53ZWJzaXRlRGF0YVN0b3JlKCkuYXV0
aGVudGljYXRvck1hbmFnZXIoKS5tYWtlQ3JlZGVudGlhbChoYXNoLCBvcHRpb25zLCBXVEZNb3Zl
KGNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6
OmdldEFzc2VydGlvbihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6
OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucykKK3ZvaWQgV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OmdldEFzc2VydGlvbih1aW50NjRfdCBtZXNzYWdl
SWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zKQogewotICAgIGF1dG8gY2FsbGJhY2sg
PSBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIChWYXJpYW50PFdlYkNvcmU6OlB1Ymxp
Y0tleUNyZWRlbnRpYWxEYXRhLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmIHJlc3VsdCkgewor
ICAgIGF1dG8gY2FsbGJhY2sgPSBbbWVzc2FnZUlkLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0gKFZhcmlhbnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGEsIFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGE+JiYgcmVzdWx0KSB7CiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgV1RGOjpzd2l0Y2hPbihyZXN1bHQsIFsmXShjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlD
cmVkZW50aWFsRGF0YSYgZGF0YSkgewotICAgICAgICAgICAgd2Vha1RoaXMtPnJlcXVlc3RSZXBs
eShkYXRhLCB7IH0pOworICAgICAgICAgICAgd2Vha1RoaXMtPnJlcXVlc3RSZXBseShtZXNzYWdl
SWQsIGRhdGEsIHsgfSk7CiAgICAgICAgIH0sIFsmXShjb25zdCAgV2ViQ29yZTo6RXhjZXB0aW9u
RGF0YSYgZXhjZXB0aW9uKSB7Ci0gICAgICAgICAgICB3ZWFrVGhpcy0+cmVxdWVzdFJlcGx5KHsg
fSwgZXhjZXB0aW9uKTsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5yZXF1ZXN0UmVwbHkobWVzc2Fn
ZUlkLCB7IH0sIGV4Y2VwdGlvbik7CiAgICAgICAgIH0pOwogICAgIH07CiAgICAgbV93ZWJQYWdl
UHJveHkud2Vic2l0ZURhdGFTdG9yZSgpLmF1dGhlbnRpY2F0b3JNYW5hZ2VyKCkuZ2V0QXNzZXJ0
aW9uKGhhc2gsIG9wdGlvbnMsIFdURk1vdmUoY2FsbGJhY2spKTsKQEAgLTkwLDkgKzkwLDkgQEAg
dm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aXNVc2VyVmVyaWZ5aW5nUGxh
dGZvcm1BdXRoZW50aWNhdG9yQXZhaWwKICAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2Vz
OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OklzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0
aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KG1lc3NhZ2VJZCwgTG9jYWxTZXJ2aWNlOjppc0F2YWls
YWJsZSgpKSk7CiB9CiAKLXZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OnJl
cXVlc3RSZXBseShjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSYgZGF0YSwg
Y29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uKQordm9pZCBXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6cmVxdWVzdFJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwg
Y29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGEmIGRhdGEsIGNvbnN0IFdlYkNv
cmU6OkV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikKIHsKLSAgICBtX3dlYlBhZ2VQcm94eS5zZW5k
KE1lc3NhZ2VzOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OlJlcXVlc3RSZXBseShkYXRh
LCBleGNlcHRpb24pKTsKKyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3I6OlJlcXVlc3RSZXBseShtZXNzYWdlSWQsIGRhdGEsIGV4Y2Vw
dGlvbikpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IGJhMWFlZjVmNThiNTllMzgy
NjkwYTkzZjI4NjE3NmZlOTA0YjQyZDkuLjg1Y2U2OTA2MTExNDQyYmM2NzljYzdhNzc1Yjg2ODJk
ZDE1NzI4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHkuaApAQCAtNTQsMTIgKzU0LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAog
ICAgIC8vIFJlY2VpdmVycy4KLSAgICB2b2lkIG1ha2VDcmVkZW50aWFsKGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYgaGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucyYpOwotICAgIHZvaWQgZ2V0QXNzZXJ0aW9uKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
aGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJik7
CisgICAgdm9pZCBtYWtlQ3JlZGVudGlhbCh1aW50NjRfdCBtZXNzYWdlSWQsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgaGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucyYpOworICAgIHZvaWQgZ2V0QXNzZXJ0aW9uKHVpbnQ2NF90IG1lc3NhZ2VJZCwg
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnMmKTsKICAgICB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3Jt
QXV0aGVudGljYXRvckF2YWlsYWJsZSh1aW50NjRfdCBtZXNzYWdlSWQpOwogCiAgICAgLy8gU2Vu
ZGVycy4KLSAgICB2b2lkIHJlcXVlc3RSZXBseShjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVk
ZW50aWFsRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKTsKKyAgICB2b2lkIHJl
cXVlc3RSZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNy
ZWRlbnRpYWxEYXRhJiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpOwogCiAgICAgV2Vi
UGFnZVByb3h5JiBtX3dlYlBhZ2VQcm94eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDg3
YzY2Nzc2ZTYxYTA1YjFiYWQ1MjkyZGQxMTUyMTNhYWZhM2FiZTEuLjExN2NkODgwOGYwZGU1NzU2
MmMxZDgxYTExODJiNTdkNTY1MDAyYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNiw4ICsy
Niw4IEBACiAKIG1lc3NhZ2VzIC0+IFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5IHsK
IAotICAgIE1ha2VDcmVkZW50aWFsKFZlY3Rvcjx1aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29y
ZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zKTsKLSAgICBHZXRB
c3NlcnRpb24oVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9ucyk7CisgICAgTWFrZUNyZWRlbnRpYWwodWlu
dDY0X3QgbWVzc2FnZUlkLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyk7CisgICAgR2V0QXNzZXJ0
aW9uKHVpbnQ2NF90IG1lc3NhZ2VJZCwgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJD
b3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9ucyk7CiAgICAgSXNV
c2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKHVpbnQ2NF90IG1lc3Nh
Z2VJZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
ci5jcHAKaW5kZXggOTBiYTRjNTdjNjQxNGE4NzhhZjI3YmRiNTgzYTA3ZTVhNDI0YThmMi4uODU2
NTkxNjZjYzIxZWQ5NjI2NDA3NGI3ZTg2NDJiMmE4NjIxOGNhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKQEAgLTUwLDE4ICs1MCwxNCBAQCBX
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6On5XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3Io
KQogCiB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6bWFrZUNyZWRlbnRpYWwoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zJiBvcHRpb25zLCBXZWJDb3JlOjpSZXF1ZXN0Q29tcGxldGlvbkhh
bmRsZXImJiBoYW5kbGVyKQogewotICAgIGlmICghc2V0UmVxdWVzdENvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUoaGFuZGxlcikpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3dlYlBhZ2Uuc2Vu
ZChNZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6Ok1ha2VDcmVkZW50
aWFsKGhhc2gsIG9wdGlvbnMpKTsKKyAgICBhdXRvIG1lc3NhZ2VJZCA9IHNldFJlcXVlc3RDb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBtX3dlYlBhZ2Uuc2VuZChNZXNz
YWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6Ok1ha2VDcmVkZW50aWFsKG1l
c3NhZ2VJZCwgaGFzaCwgb3B0aW9ucykpOwogfQogCiB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3Qg
V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBXZWJD
b3JlOjpSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQogewotICAgIGlmICghc2V0
UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaGFuZGxlcikpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBtX3dlYlBhZ2Uuc2VuZChNZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yUHJveHk6OkdldEFzc2VydGlvbihoYXNoLCBvcHRpb25zKSk7CisgICAgYXV0byBtZXNz
YWdlSWQgPSBzZXRSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGVyKSk7Cisg
ICAgbV93ZWJQYWdlLnNlbmQoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5OjpHZXRBc3NlcnRpb24obWVzc2FnZUlkLCBoYXNoLCBvcHRpb25zKSk7CiB9CiAKIHZvaWQg
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhl
bnRpY2F0b3JBdmFpbGFibGUoV2ViQ29yZTo6UXVlcnlDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
ci5tZXNzYWdlcy5pbgppbmRleCA1M2VjMTkzNTE5OWZmYmQ5M2U2YzViOWYzOTY2MjUyMjc1ZmFm
ZWUxLi4xODcwMGNhM2MxOTAzODRiZWFhMTIxMGNiMDNiZThlZDM4OWFhODEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IubWVzc2FnZXMu
aW4KQEAgLTI2LDcgKzI2LDcgQEAKIAogbWVzc2FnZXMgLT4gV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yIHsKIAotICAgIFJlcXVlc3RSZXBseShzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3Jl
ZGVudGlhbERhdGEgZGF0YSwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9u
KTsKKyAgICBSZXF1ZXN0UmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBzdHJ1Y3QgV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbERhdGEgZGF0YSwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRh
dGEgZXhjZXB0aW9uKTsKICAgICBJc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JB
dmFpbGFibGVSZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGJvb2wgcmVzdWx0KTsKIH0KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGRiNTAzMzdiZjFmYzFlYjJlNjNiYTZkYTAwNGQ4NjY5MjVjNzY0M2QuLjgyOTIxMDY2MWY1
MDY2NzE3NDg0ZDIwYjI1YzY5ZmM0NTkxNDUzYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
OS0wNS0wNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtX
ZWJBdXRoTl0gQSBuZXcgcmVxdWVzdCBzaG91bGQgYWx3YXlzIHN1cHByZXNzIHRoZSBwZW5kaW5n
IHJlcXVlc3QgaWYgYW55CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTE1MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2ODg4MjIyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Y3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jl
YXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1
cmUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBo
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0
dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL25ldy1wYWdl
Lmh0bWw6IEFkZGVkLgorCiAyMDE5LTA1LTAzICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhOXSBBIGZvY3VzZWQgZG9jdW1lbnQgc2hvdWxkIGJl
IHJlcXVpcmVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1m
YWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBlMjYwNGFlMGQ5YWNlZjJiMjM0ZmE1MjU4
NDlhMjkwMmJiNWJiZWYwLi5kZTgyNjUyMmQ5MGIwMzA1M2VjN2RlNjIwOGMzMDk2OGI1ODhmNTA0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVy
ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTIsNCArMiw4IEBACiBQQVNTIFB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdGltZW91dCAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlh
bCdzIFtbY3JlYXRlXV0gd2l0aCBhIG1pc21hdGNoZWQgUlAgSUQgCiBQQVNTIFB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggYW4gZW1wdHkgcHViS2V5Q3JlZFBhcmFtcyAKK1BB
U1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB0d28gY29uc2VjdXRpdmUg
cmVxdWVzdHMgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdHdv
IGNvbnNlY3V0aXZlIHJlcXVlc3RzICgyKSAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtb
Y3JlYXRlXV0gd2l0aCBuZXcgcmVxdWVzdHMgaW4gYSBuZXcgcGFnZSAKK1BBU1MgUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBuZXcgcmVxdWVzdHMgaW4gYSBuZXcgcGFnZSAo
MikgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBz
Lmh0bWwKaW5kZXggNGUxMzFjYmU0ZTJjYmI0ZDcxOTUxMzA5MzUyZmNkMjVkNTU4MDc1MC4uZGRm
NjgzODE5NTcyNjQxMGFhZmIwYjc2ZjgyZWFkNWUwMGNjYmUyYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWls
dXJlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBzLmh0bWwKQEAgLTcwLDQgKzcwLDkz
IEBACiAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90U3VwcG9ydGVkRXJyb3Ii
LAogICAgICAgICAgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk5v
IGRlc2lyZWQgcHJvcGVydGllcyBvZiB0aGUgdG8gYmUgY3JlYXRlZCBjcmVkZW50aWFsIGFyZSBw
cm92aWRlZC4iKTsKICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0
aCBhbiBlbXB0eSBwdWJLZXlDcmVkUGFyYW1zIik7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5
OiB7CisgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4
YW1wbGUuY29tIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdXNlcjogewor
ICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAg
ICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAg
ICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAg
ICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1d
LAorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIGNvbnN0IHJlc3VsdCA9IHBy
b21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlKG9wdGlvbnMpLCAiVGhpcyByZXF1ZXN0IGlzIHN1cHByZXNzZWQgYnkgYSBuZXcgcmVx
dWVzdC4iKTsKKyAgICAgICAgcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5h
dmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJUaGlzIHJlcXVlc3QgaXMgc3Vw
cHJlc3NlZCBieSBhIG5ldyByZXF1ZXN0LiIpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
IH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHR3byBjb25zZWN1dGl2
ZSByZXF1ZXN0cyIpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAg
Y29uc3QgY3JlYXRpb25PcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAg
ICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29t
IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAg
ICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICBp
ZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBkaXNw
bGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY2hh
bGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgcHVi
S2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAg
ICAgICAgfQorICAgICAgICB9OworICAgICAgICBjb25zdCByZXN1bHQgPSBwcm9taXNlUmVqZWN0
cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShjcmVh
dGlvbk9wdGlvbnMpLCAiVGhpcyByZXF1ZXN0IGlzIHN1cHByZXNzZWQgYnkgYSBuZXcgcmVxdWVz
dC4iKTsKKworICAgICAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1
YmxpY0tleTogeworICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXko
IjEyMzQ1NiIpCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHByb21pc2VSZWpl
Y3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KHJlcXVl
c3RPcHRpb25zKSwgIlRoaXMgcmVxdWVzdCBpcyBzdXBwcmVzc2VkIGJ5IGEgbmV3IHJlcXVlc3Qu
Iik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwn
cyBbW2NyZWF0ZV1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3RzICgyKSIpOworCisgICAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAg
ICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAg
ICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVz
ZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYi
KSwKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEy
MzQ1NiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJs
aWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAg
ICBjb25zdCByZXN1bHQgPSBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIlRoaXMgcmVxdWVzdCBpcyBjYW5j
ZWxsZWQgYnkgYSBuZXcgcmVxdWVzdC4iKTsKKyAgICAgICAgd2luZG93Lm9wZW4oIi4vcmVzb3Vy
Y2VzL25ldy1wYWdlLmh0bWw/aXNDcmVhdGlvbj10cnVlIik7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbmV3IHJl
cXVlc3RzIGluIGEgbmV3IHBhZ2UiKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAg
ICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5j
b20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAg
ICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAg
IGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIGRp
c3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBj
aGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBw
dWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAg
ICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgY29uc3QgcmVzdWx0ID0gcHJvbWlzZVJl
amVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUo
b3B0aW9ucyksICJUaGlzIHJlcXVlc3QgaXMgY2FuY2VsbGVkIGJ5IGEgbmV3IHJlcXVlc3QuIik7
CisgICAgICAgIHdpbmRvdy5vcGVuKCIuL3Jlc291cmNlcy9uZXctcGFnZS5odG1sP2lzQ3JlYXRp
b249ZmFsc2UiKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9LCAiUHVibGljS2V5Q3Jl
ZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBuZXcgcmVxdWVzdHMgaW4gYSBuZXcgcGFnZSAoMiki
KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Y3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAyN2ZjNGEzMjU4ZjQy
ZWJhMTllNTFiMzU2MTZlN2JkZWM0NzhiYzE2Li41OWIyZGY3NDdjN2I5OWNhNDBkN2M3ZmYwMzQw
YjNiZjE4OTkxMWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNSw0ICs1LDUgQEAg
UEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHJlcXVpcmVSZXNpZGVu
dEtleSB7IGZhbHNlIH0gaW4gYSBtb2MKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3Jl
YXRlXV0gd2l0aCB1c2VyVmVyaWZpY2F0aW9uIHsgJ3ByZWZlcnJlZCcgfSBpbiBhIG1vY2sgbG9j
YWwgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1d
IHdpdGggdXNlclZlcmlmaWNhdGlvbiB7ICdkaXNjb3VyYWdlZCcgfSBpbiBhIG1vY2sgbG9jYWwg
YXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdp
dGggbWl4ZWQgb3B0aW9ucyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gCitQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVl
c3RzLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNz
LWhpZC5odHRwcy5odG1sCmluZGV4IGVjYjk1NGU3ZWMxZjU0ZTNjNmQ4MGJhYjc1ZjYyYWQzM2Vk
NDAxZWUuLjc1MWVlZTliMGU1YWI3NDJlMDUxNWRmN2ExOTc3ZGM1ZmUxMDYwMTYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1j
cmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLmh0
bWwKQEAgLTE3MCw0ICsxNzAsMjcgQEAKICAgICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRp
YWwpOwogICAgICAgICB9KTsKICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRl
XV0gd2l0aCBtaXhlZCBvcHRpb25zIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwor
CisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAg
ICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAg
ICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2Vl
ZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5k
bGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIs
CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVS
TC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBb
eyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICAgICAgdGltZW91
dDogMTAwCisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgcHJvbWlzZVJlamVj
dHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0
aW9ucyksICJUaGlzIHJlcXVlc3QgaXMgc3VwcHJlc3NlZCBieSBhIG5ldyByZXF1ZXN0LiIpOwor
ICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVu
KGNyZWRlbnRpYWwgPT4geworICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7Cisg
ICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRo
IHR3byBjb25zZWN1dGl2ZSByZXF1ZXN0cy4iKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWls
dXJlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
ZDBmYTYxZjg0MjMyZjIxMzAwMGNiYmMzYjAxMzM2ZWVmYjE4NjYzNS4uNDMyYWM2NDZlYmIxNDlj
NDFmYTAxYzBjMGYwMDYxN2MxNjE3NDM3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtZ2V0LWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC01LDQgKzUsOCBAQCBQ
QVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYSBtaXNtYXRjaGVkIEFQUCBJ
RCAoaW52YWxpZCBVUkxzKQogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRo
IGEgbWlzbWF0Y2hlZCBBUFAgSUQgKGRpZmZlcmVudCBwcm90b2NvbHMpIAogUEFTUyBQdWJsaWNL
ZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGEgbWlzbWF0Y2hlZCBBUFAgSUQgKGRpZmZlcmVu
dCBzaXRlcyAxKSAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhIG1p
c21hdGNoZWQgQVBQIElEIChkaWZmZXJlbnQgc2l0ZXMgMikgCitQQVNTIFB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2dldF1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3RzIAorUEFTUyBQdWJs
aWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHR3byBjb25zZWN1dGl2ZSByZXF1ZXN0cyAo
MikgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggbmV3IHJlcXVlc3Rz
IGluIGEgbmV3IHBhZ2UgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGgg
bmV3IHJlcXVlc3RzIGluIGEgbmV3IHBhZ2UgKDIpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1sCmluZGV4IDg1NDdmZDhlMDQwZmJlMjJkMDFlYmU2
ZjgyZjU4YjI3OTg2ZWRiODkuLjQyMTRlYjIwNzQ1YzEwMTY2YzNlNDg0ZTRhYzg4OWM4MjJmODA1
OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1s
CkBAIC03OSw0ICs3OSw2NyBAQAogICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlNl
Y3VyaXR5RXJyb3IiLAogICAgICAgICAgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRp
b25zKSwgIlRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCBhdXRob3JpemVkIGZvciB0
aGUgcHJvdmlkZWQgQXBwIElELiIpOwogICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tn
ZXRdXSB3aXRoIGEgbWlzbWF0Y2hlZCBBUFAgSUQgKGRpZmZlcmVudCBzaXRlcyAyKSIpOworCisg
ICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAg
ICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWlu
dDhBcnJheSgiMTIzNDU2IikKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBj
b25zdCByZXN1bHQgPSBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIlRoaXMgcmVxdWVzdCBpcyBzdXBwcmVzc2Vk
IGJ5IGEgbmV3IHJlcXVlc3QuIik7CisgICAgICAgIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxv
d2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVGhpcyByZXF1
ZXN0IGlzIHN1cHByZXNzZWQgYnkgYSBuZXcgcmVxdWVzdC4iKTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB0d28gY29u
c2VjdXRpdmUgcmVxdWVzdHMiKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cisg
ICAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7
CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IikK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgY29uc3QgcmVzdWx0ID0gcHJvbWlz
ZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQo
cmVxdWVzdE9wdGlvbnMpLCAiVGhpcyByZXF1ZXN0IGlzIHN1cHByZXNzZWQgYnkgYSBuZXcgcmVx
dWVzdC4iKTsKKworICAgICAgICBjb25zdCBjcmVhdGlvbk9wdGlvbnMgPSB7CisgICAgICAgICAg
ICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisg
ICAgICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAg
ICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwK
KyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIs
IGFsZzogLTcgfV0sCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHByb21pc2VS
ZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRl
KGNyZWF0aW9uT3B0aW9ucyksICJUaGlzIHJlcXVlc3QgaXMgc3VwcHJlc3NlZCBieSBhIG5ldyBy
ZXF1ZXN0LiIpOworCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSwgIlB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3RzICgyKSIpOwor
CisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAg
ICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRv
VWludDhBcnJheSgiMTIzNDU2IikKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAg
ICBjb25zdCByZXN1bHQgPSBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIlRoaXMgcmVxdWVzdCBpcyBjYW5jZWxs
ZWQgYnkgYSBuZXcgcmVxdWVzdC4iKTsKKyAgICAgICAgd2luZG93Lm9wZW4oIi4vcmVzb3VyY2Vz
L25ldy1wYWdlLmh0bWw/aXNDcmVhdGlvbj1mYWxzZSIpOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG5ldyByZXF1ZXN0
cyBpbiBhIG5ldyBwYWdlIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNv
bnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAg
ICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKQorICAgICAgICAgICAgfQor
ICAgICAgICB9OworCisgICAgICAgIGNvbnN0IHJlc3VsdCA9IHByb21pc2VSZWplY3RzKHQsICJO
b3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVGhp
cyByZXF1ZXN0IGlzIGNhbmNlbGxlZCBieSBhIG5ldyByZXF1ZXN0LiIpOworICAgICAgICB3aW5k
b3cub3BlbigiLi9yZXNvdXJjZXMvbmV3LXBhZ2UuaHRtbD9pc0NyZWF0aW9uPXRydWUiKTsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0
XV0gd2l0aCBuZXcgcmVxdWVzdHMgaW4gYSBuZXcgcGFnZSAoMikiKTsKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWdldC1zdWNjZXNzLWhpZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCA5MDU4ZTg0Mjc3YzlkYzVmZDkyNzQ3NDM3YTYzZDJlYzdjMmRj
ZGE0Li40M2MzMDZjYjAxNTY5OWQyZjIyMDdkOWJlYzZmMTAxNGFkZjFmZTk3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0
LXN1Y2Nlc3MtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtNCw0ICs0LDUgQEAgUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tn
ZXRdXSB3aXRoIG1hdGNoZWQgYWxsb3cgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGhpZAogUEFTUyBQ
dWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHVzZXJWZXJpZmljYXRpb24geyBwcmVm
ZXJyZWQgfSBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHVzZXJWZXJpZmljYXRpb24geyBkaXNjb3VyYWdlZCB9IGlu
IGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2dldF1dIHdpdGggbWl4ZWQgb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAor
UEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHR3byBjb25zZWN1dGl2ZSBy
ZXF1ZXN0cy4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1o
aWQuaHR0cHMuaHRtbAppbmRleCAyOTkxMGU5NjUyMDNiMWVmMGFjNWE2MGYzNmU0ZjViMmZjNzEz
MWY5Li5iYzk4OTRlMzk1MmFlODVhMDY4ZjZkZmE1YzgzMjg0ODY2ZGNjYzIzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0
LXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWhpZC5odHRwcy5odG1sCkBAIC05
OCw0ICs5OCwxOCBAQAogICAgICAgICAgICAgcmV0dXJuIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwp
OwogICAgICAgICB9KTsKICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0
aCBtaXhlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKKworICAgIHBy
b21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAg
IHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNl
KCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwMAorICAgICAgICAgICAg
fQorICAgICAgICB9OworCisgICAgICAgIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJy
b3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVGhpcyByZXF1ZXN0IGlz
IHN1cHByZXNzZWQgYnkgYSBuZXcgcmVxdWVzdC4iKTsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5nZXQob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAg
ICAgIHJldHVybiBjaGVja1Jlc3VsdChjcmVkZW50aWFsKTsKKyAgICAgICAgfSk7CisgICAgfSwg
IlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVl
c3RzLiIpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9yZXNvdXJjZXMvbmV3LXBhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3Jlc291cmNlcy9uZXctcGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwOTAzZDNiNjBhMTk0Njdk
OWJmM2FmM2FhMzQzMjc1ZjQwZjMzNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvbmV3LXBhZ2UuaHRtbApAQCAtMCwwICsxLDMwIEBA
Cis8c2NyaXB0IHNyYz0iLi91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgY29uc3Qg
dXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7CisgICAgY29uc3QgaXNDcmVhdGlv
biA9IHVybC5zZWFyY2hQYXJhbXMuZ2V0KCJjcmVhdGlvbiIpOworCisgICAgY29uc3QgbWFrZU9w
dGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgcnA6IHsKKyAgICAg
ICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgdXNlcjogeworICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAg
ICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAg
ICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICBw
dWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0KKyAgICAg
ICAgfQorICAgIH07CisgICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7CisgICAgICAgIHB1Ymxp
Y0tleTogeworICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2
IiksCisgICAgICAgIH0KKyAgICB9OworCisgICAgaWYgKGlzQ3JlYXRpb24gPT0gInRydWUiKQor
ICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG1ha2VPcHRpb25zKTsKKyAgICBl
bHNlCisgICAgICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQocmVxdWVzdE9wdGlvbnMpOwor
PC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="385344"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369332</attachid>
            <date>2019-05-07 16:04:18 -0700</date>
            <delta_ts>2019-05-07 16:43:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191517-20190507160417.patch</filename>
            <type>text/plain</type>
            <size>38269</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0OTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWJjZjdjNDA2NWFlYWMx
MWQ0NDMyZTAwMjc0MDc5MzNhYTNhZjUxYS4uOThhOThmNGQ4ZGMwYjBhYzI0MjEzMTA3MGZlMzRh
OGRjMDZjMDg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTA1LTA2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBBIG5l
dyByZXF1ZXN0IHNob3VsZCBhbHdheXMgc3VwcHJlc3MgdGhlIHBlbmRpbmcgcmVxdWVzdCBpZiBh
bnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTUx
NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDY4ODgyMjI+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBCbG9ja2luZyBuZXcgcmVxdWVzdHMgZnJvbSB0
aGUgc2FtZSBwYWdlIHdoZW4gdGhlcmUgaXMgYSBwZW5kaW5nIHJlcXVlc3QgY291bGQgRG9TIHRo
ZQorICAgICAgICBXZWJBdXRoTiBBUEkgaW4gdGhlIHBlcmlvZCBiZXR3ZWVuIFt0aGUgcGFnZSBp
cyByZWZyZXNoZWQsIHRoZSBwZW5kaW5nIHJlcXVlc3QgaXMKKyAgICAgICAgaGFuZWRsZWQvdGlt
ZW91dF0uIFRoZXJlZm9yZSwgdGhlIHBvbGljeSB3aWxsIGJlIHRvIGFsd2F5cyBjYW5jZWwgYW55
IHBlbmRpbmcgcmVxdWVzdHMKKyAgICAgICAgd2hlbmV2ZXIgYSBuZXcgcmVxdWVzdCBpcyBtYWRl
LiBUaGlzIHdpbGwgZW5mb3JjZSB0aGUgcG9saWN5IG9mIGhhbmRsaW5nIG9ubHkgb25lCisgICAg
ICAgIHJlcXVlc3QgYXQgYSB0aW1lLgorCisgICAgICAgIENvdmVyZWQgYnkgbmV3IHRlc3RzIGlu
IGV4aXN0aW5nIGZpbGVzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yQ2xpZW50OjpyZXF1ZXN0UmVwbHkpOgorICAgICAgICAoV2ViQ29yZTo6QXV0
aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50OjpzZXRSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50OjphZGRR
dWVyeUNvbXBsZXRpb25IYW5kbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhl
bnRpY2F0b3JDb29yZGluYXRvckNsaWVudC5oOgorCiAyMDE5LTA1LTAyICBKaWV3ZW4gVGFuICA8
amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhOXSBBIGZvY3VzZWQgZG9j
dW1lbnQgc2hvdWxkIGJlIHJlcXVpcmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRjZTFiNGYwMDI5NDZmMzNlNjlk
NzlmYzA5YWY1MGJlMjA3YzY0MDMuLmViOGZkZDczMTU4Y2NhMDc2NTk2MTY1YzZhYWQ2MjQ1Mjhh
NDE5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTktMDUtMDYgIEppZXdlbiBUYW4g
IDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aE5dIEEgbmV3IHJlcXVl
c3Qgc2hvdWxkIGFsd2F5cyBzdXBwcmVzcyB0aGUgcGVuZGluZyByZXF1ZXN0IGlmIGFueQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNTE3CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80Njg4ODIyMj4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVu
dCBGdWxnaGFtLgorCisgICAgICAgIFByZXZpb3VzbHkgd2UgYmxvY2tlZCBuZXcgV2ViQXV0aE4g
cmVxdWVzdHMgd2hlbmV2ZXIgYSBwZW5kaW5nIHJlcXVlc3Qgd2FzIGluIHByb2dyZXNzCisgICAg
ICAgIHRvIHByZXZlbnQgYmFja2dyb3VuZCB0YWJzIGZyb20gRG9TIGZvcmVncm91bmQgdGFicy4g
SG93ZXZlciwgaW4gcjI0NDkzOCwgdGhlIFdlYkF1dGhOCisgICAgICAgIEFQSSB3YXMgY2hhbmdl
ZCB0byByZXN0cmljdCByZXF1ZXN0IGhhbmRsaW5nIHRvIHRoZSBmb2N1c2VkIGRvY3VtZW50LiBU
aGVyZWZvcmUsIHdlIG5vCisgICAgICAgIGxvbmdlciBoYXZlIGEgcmlzayBvZiBEb1MuCisKKyAg
ICAgICAgQXBhcnQgZnJvbSB0aGUgdmFuaXNoZWQgYmVuZWZpdCwgdGhpcyBiZWhhdm9pciBhY3R1
YWxseSBibG9ja3MgbmV3IHBhZ2VzIHRvIHVzZQorICAgICAgICBXZWJBdXRoTiBBUEkgaW4gdGhl
IHBlcmlvZCBiZXR3ZWVuIFt0aGUgcHJldmlvdXMgaW5pdGF0aW5nIHBhZ2UgaXMgY2xvc2VkLCB0
aGUgcGVuZGluZworICAgICAgICByZXF1ZXN0IGlzIGhhbmVkbGVkL3RpbWVvdXRdLgorCisgICAg
ICAgIEFsc28sIGl0IG1ha2VzIHNlbnNlIHRvIGhhdmUgdGhlIGN1cnJlbnQgZm9jdXNlZCBkb2N1
bWVudCBwcmVlbXB0IHRoZSBwZW5kaW5nIHJlcXVlc3QuCisgICAgICAgIFRoZXJlZm9yZSwgdGhl
IHBvbGljeSB3aWxsIGJlIHRvIGFsd2F5cyBjYW5jZWwgYW55IHBlbmRpbmcgcmVxdWVzdHMgd2hl
bmV2ZXIgYSBuZXcKKyAgICAgICAgcmVxdWVzdCBpcyBtYWRlLiBUaGlzIHdpbGwgZW5mb3JjZSB0
aGUgcG9saWN5IG9mIGhhbmRsaW5nIG9ubHkgb25lIHJlcXVlc3QgYXQgYSB0aW1lLgorCisgICAg
ICAgIE5vdGUgdGhhdCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGV4cGxpY2l0
bHkgY2FuY2VsIHBlbmRpbmcgcmVxdWVzdHMgaW4gdGhlCisgICAgICAgIEF1dGhlbnRpY2F0b3Jz
LCB3aGljaCBtZWFucyB0aGF0IHdlIGNvdWxkIHJlY2VpdmUgcmVzcG9uc2VzIGZyb20gdGhlIEF1
dGhlbnRpY2F0b3IgdGhhdAorICAgICAgICB3ZXJlIG1lYW50IGZvciBhIHByZXZpb3VzIChub3cg
Y2FuY2VsbGVkKSByZXF1ZXN0LiBBIGZvbGxvdy11cCBwYXRjaCAoc2VlIEJ1ZyAxOTE1MjMpCisg
ICAgICAgIHdpbGwgaW1wbGVtZW50IGFuIEF1dGhlbnRpY2F0b3IgZmVhdHVyZSB0byBzdXBwb3J0
IGltbWVkaWF0ZSBjYW5jZWxsYXRpb24uCisKKyAgICAgICAgSW4gdGhlIG1lYW50aW1lLCB0byBw
cm90ZWN0IHRoZSBhdG9taWNpdHkgb2YgdGhlIHJlcXVlc3QvcmVzcG9uc2UgcGFpciwgaS5lLiwg
cHJldmVudGluZyBhbiBvbGQKKyAgICAgICAgcmVzcG9uc2UgYmVpbmcgdXNlZCBmb3IgYSBuZXcg
cmVxdWVzdCwgdGhlcmUgYXJlIHR3byBzYWZlZ3VhcmRzOgorICAgICAgICAxKSBJbiB3ZWIgcHJv
Y2VzcywgZWFjaCByZXF1ZXN0IHRvIFVJIHByb2Nlc3MgaXMgcGFpcmVkIHdpdGggYW4gaW5jcmVt
ZW50YWwgSUQsIGFuZCB0aGVyZWZvcmUgYW4gb2xkCisgICAgICAgIHJlc3BvbnNlIGZyb20gVUkg
cHJvY2VzcyB3b3VsZCBoYXZlIGEgZGlmZmVyZW50IElEIHRoYW4gdGhlIGN1cnJlbnQgcmVxdWVz
dCwgd2hpY2ggd2lsbCB0aGVuIGJlIGlnbm9yZWQuCisgICAgICAgIDIpIEluIFVJIHByb2Nlc3Ms
IGFsbCByZXNwb25zZXMgZnJvbSBhdXRoZW50aWNhdG9ycyB3aWxsIGJlIHBpcGVkIHRvIHRoZSBt
YWluIHJ1biBsb29wIGZvciBwcm9jZXNzaW5nLgorICAgICAgICBUaGVyZWZvcmUsIHdoZW4gdGhl
IG5ldyByZXF1ZXN0IGNvbWVzIGluLCB0aGUgb2xkIHJlc3BvbnNlIGlzIGVpdGhlciBwcm9jZXNz
ZWQgb3Igd2FpdGluZyBpbiB0aGUgcGlwZS4KKyAgICAgICAgVG8gcHJldmVudCB0aGUgbGF0dGVy
IGJlaW5nIHByb2Nlc3NlZCwgdGhlIG5ldyByZXF1ZXN0IHdpbGwgaW1tZWRpYXRlbHkgZGVzdHJv
eSBhbnkgYXV0aGVudGljYXRvcnMgYm91bmQKKyAgICAgICAgdG8gdGhlIG9sZCByZXNwb25zZSBp
biB0aGUgY3VycmVudCBydW4gbG9vcC4gSGVuY2UsIGluIHRoZSBuZXh0IHJ1biBsb29wIHdoZW4g
ZGVhbGluZyB0aGUgb2xkIHJlc3BvbnNlLAorICAgICAgICB0aGUgbGFtYmRhIHdpbGwgaGF2ZSBu
byB3aGVyZSB0byBoYW5kIHRoZSByZXNwb25zZSBvdmVyLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKFdl
YktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6OmdldEFzc2VydGlvbik6CisgICAgICAgIChXZWJL
aXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpjbGVhclN0YXRlQXN5bmMpOgorICAgICAgICAoV2Vi
S2l0OjpBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y2xlYXJTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjp0aW1lT3V0VGltZXJGaXJlZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
UHJveHk6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yUHJveHk6OmdldEFzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpyZXF1ZXN0UmVwbHkpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6bWFrZUNyZWRlbnRpYWwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmdldEFzc2VydGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3IubWVzc2FnZXMuaW46CisKIDIwMTktMDUtMDMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJlc3BvbnNpdmUgU2VydmljZSBXb3JrZXIg
cHJvY2Vzc2VzIHNob3VsZCBnZXQga2lsbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVu
dC5jcHAKaW5kZXggM2M2NThhMzJmY2JiZDBkMTdhNzExZGZhZjJiYjZhMTkyNmExMzJhOS4uNjEx
MDRmNzBmNDM4MjllMTk1MDUyZTlkNGExNjBmOWJjMWQ4MDJjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yQ2xpZW50LmNwcApAQCAtMzIsOCArMzIsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi12b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudDo6cmVxdWVzdFJlcGx5
KGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhJiBkYXRhLCBjb25zdCBXZWJD
b3JlOjpFeGNlcHRpb25EYXRhJiBleGNlcHRpb24pCit2b2lkIEF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvckNsaWVudDo6cmVxdWVzdFJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgV2ViQ29y
ZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGEmIGRhdGEsIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGEmIGV4Y2VwdGlvbikKIHsKKyAgICBpZiAobWVzc2FnZUlkICE9IG1fYWNjdW11bGF0ZWRS
ZXF1ZXN0TWVzc2FnZUlkIC0gMSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fcGVuZGluZ0NvbXBs
ZXRpb25IYW5kbGVyKGRhdGEsIGV4Y2VwdGlvbik7CiB9CiAKQEAgLTQzLDIwICs0NSwxOCBAQCB2
b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudDo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZv
cm1BdXRoZW50aWNhdG9yQXZhaWxhYgogICAgIGhhbmRsZXIocmVzdWx0KTsKIH0KIAotYm9vbCBB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQ6OnNldFJlcXVlc3RDb21wbGV0aW9uSGFuZGxl
cihSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQordWludDY0X3QgQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yQ2xpZW50OjpzZXRSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIoUmVxdWVz
dENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKIHsKLSAgICBpZiAobV9wZW5kaW5nQ29tcGxl
dGlvbkhhbmRsZXIpIHsKLSAgICAgICAgaGFuZGxlcih7IH0sIHsgTm90QWxsb3dlZEVycm9yLCAi
QSByZXF1ZXN0IGlzIHBlbmRpbmcuIl9zIH0pOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQorICAgIGlmIChtX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgbV9wZW5kaW5n
Q29tcGxldGlvbkhhbmRsZXIoeyB9LCB7IE5vdEFsbG93ZWRFcnJvciwgIlRoaXMgcmVxdWVzdCBo
YXMgYmVlbiB2b2lkZWQgYnkgYSBuZXcgcmVxdWVzdC4iX3MgfSk7CiAKICAgICBtX3BlbmRpbmdD
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcik7Ci0gICAgcmV0dXJuIHRydWU7Cisg
ICAgcmV0dXJuIG1fYWNjdW11bGF0ZWRSZXF1ZXN0TWVzc2FnZUlkKys7CiB9CiAKIHVpbnQ2NF90
IEF1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudDo6YWRkUXVlcnlDb21wbGV0aW9uSGFuZGxl
cihRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKIHsKLSAgICB1aW50NjRfdCBtZXNz
YWdlSWQgPSBtX2FjY3VtdWxhdGVkTWVzc2FnZUlkKys7CisgICAgdWludDY0X3QgbWVzc2FnZUlk
ID0gbV9hY2N1bXVsYXRlZFF1ZXJ5TWVzc2FnZUlkKys7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBt
X3BlbmRpbmdRdWVyeUNvbXBsZXRpb25IYW5kbGVycy5hZGQobWVzc2FnZUlkLCBXVEZNb3ZlKGhh
bmRsZXIpKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50
cnkpOwogICAgIHJldHVybiBtZXNzYWdlSWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQu
aAppbmRleCAxNjJhYWVhOGI0YzQwNmIzOGM2M2U3MzdhOTY3YWRhY2M3ODdmOWI5Li4wMzMwY2Rh
MzgyNzdlNjFmZjE2M2QzNTA2OTE2N2RlMGYyNWZmZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yQ2xpZW50LmgKQEAgLTU2LDE4ICs1NiwxOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShRdWVyeUNvbXBs
ZXRpb25IYW5kbGVyJiYpID0gMDsKIAogICAgIC8vIFJlY2VpdmVycy4KLSAgICB2b2lkIHJlcXVl
c3RSZXBseShjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSYsIGNvbnN0IFdl
YkNvcmU6OkV4Y2VwdGlvbkRhdGEmKTsKKyAgICB2b2lkIHJlcXVlc3RSZXBseSh1aW50NjRfdCBt
ZXNzYWdlSWQsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhJiwgY29uc3Qg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpOwogICAgIHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZv
cm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlUmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBib29sKTsK
IAogcHJvdGVjdGVkOgotICAgIC8vIE9ubHkgb25lIHJlcXVlc3QgaXMgYWxsb3dlZCBhdCBvbmUg
dGltZS4gSXQgcmV0dXJucyBmYWxzZSB3aGVuZXZlciB0aGVyZSBpcyBhbiBleGlzdGluZyBwZW5k
aW5nIHJlcXVlc3QuCi0gICAgLy8gQW5kIGludm9rZXMgdGhlIHByb3ZpZGVkIGhhbmRsZXIgd2l0
aCBOb3RBbGxvd2VkRXJyb3IuCi0gICAgYm9vbCBzZXRSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIo
UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIC8vIE9ubHkgb25lIHJlcXVlc3QgaXMg
YWxsb3dlZCBhdCBvbmUgdGltZS4gQSBuZXcgcmVxdWVzdCB3aWxsIGNhbmNlbCBhbnkgcGVuZGlu
ZyByZXF1ZXN0LgorICAgIC8vIEEgbWVzc2FnZSBpZCB0aGF0IGlzIHRpZWQgdG8gdGhlIHJlcXVl
c3Qgd2lsIGJlIGdlbmVyYXRlZCBlYWNoIHRpbWUgdG8gcHJldmVudCBtaXNtYXRjaGluZyByZXNw
b25zZXMuCisgICAgdWludDY0X3Qgc2V0UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyKFJlcXVlc3RD
b21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB1aW50NjRfdCBhZGRRdWVyeUNvbXBsZXRpb25IYW5k
bGVyKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJik7CiAKIHByaXZhdGU6CisgICAgdWludDY0X3Qg
bV9hY2N1bXVsYXRlZFJlcXVlc3RNZXNzYWdlSWQgeyAxIH07CiAgICAgUmVxdWVzdENvbXBsZXRp
b25IYW5kbGVyIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyOwotICAgIHVpbnQ2NF90IG1fYWNj
dW11bGF0ZWRNZXNzYWdlSWQgeyAxIH07CisgICAgdWludDY0X3QgbV9hY2N1bXVsYXRlZFF1ZXJ5
TWVzc2FnZUlkIHsgMSB9OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFF1ZXJ5Q29tcGxldGlvbkhh
bmRsZXI+IG1fcGVuZGluZ1F1ZXJ5Q29tcGxldGlvbkhhbmRsZXJzOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
ck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4IDg0ZTI4YTg5ODNjMmM3YWI4ZWVlY2E4NzEw
M2Q2ZWVlNTU0NWUzNWYuLmNhN2FlNWUwNWE5NWU1OTM2Zjg3M2Q1ZTAyMmVhNWZiOWZkZTI5M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAgLTEyOSw4ICsxMjksOSBA
QCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjptYWtlQ3JlZGVudGlhbChjb25zdCBWZWN0b3I8
dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YgogICAgIHVzaW5nIG5hbWVzcGFjZSBBdXRoZW50aWNh
dG9yTWFuYWdlckludGVybmFsOwogCiAgICAgaWYgKG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVy
KSB7Ci0gICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJB
IHJlcXVlc3QgaXMgcGVuZGluZy4iX3MgfSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgbV9w
ZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwg
IlRoaXMgcmVxdWVzdCBoYXMgYmVlbiBjYW5jZWxsZWQgYnkgYSBuZXcgcmVxdWVzdC4iX3MgfSk7
CisgICAgICAgIGNsZWFyU3RhdGUoKTsKKyAgICAgICAgbV9yZXF1ZXN0VGltZU91dFRpbWVyLnN0
b3AoKTsKICAgICB9CiAKICAgICAvLyAxLiBTYXZlIHJlcXVlc3QgZm9yIGFzeW5jIG9wZXJhdGlv
bnMuCkBAIC0xNDcsOCArMTQ4LDkgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Z2V0QXNz
ZXJ0aW9uKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGkKICAgICB1c2lu
ZyBuYW1lc3BhY2UgQXV0aGVudGljYXRvck1hbmFnZXJJbnRlcm5hbDsKIAogICAgIGlmIChtX3Bl
bmRpbmdDb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICBjYWxsYmFjayhFeGNlcHRpb25EYXRh
IHsgTm90QWxsb3dlZEVycm9yLCAiQSByZXF1ZXN0IGlzIHBlbmRpbmcuIl9zIH0pOwotICAgICAg
ICByZXR1cm47CisgICAgICAgIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbkRh
dGEgeyBOb3RBbGxvd2VkRXJyb3IsICJUaGlzIHJlcXVlc3QgaGFzIGJlZW4gY2FuY2VsbGVkIGJ5
IGEgbmV3IHJlcXVlc3QuIl9zIH0pOworICAgICAgICBjbGVhclN0YXRlKCk7CisgICAgICAgIG1f
cmVxdWVzdFRpbWVPdXRUaW1lci5zdG9wKCk7CiAgICAgfQogCiAgICAgLy8gMS4gU2F2ZSByZXF1
ZXN0IGZvciBhc3luYyBvcGVyYXRpb25zLgpAQCAtMTY2LDEzICsxNjgsMTggQEAgdm9pZCBBdXRo
ZW50aWNhdG9yTWFuYWdlcjo6Y2xlYXJTdGF0ZUFzeW5jKCkKICAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CiAgICAgICAgIGlmICgh
d2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHdlYWtUaGlzLT5tX3BlbmRp
bmdSZXF1ZXN0RGF0YSA9IHsgfTsKLSAgICAgICAgQVNTRVJUKCF3ZWFrVGhpcy0+bV9wZW5kaW5n
Q29tcGxldGlvbkhhbmRsZXIpOwotICAgICAgICB3ZWFrVGhpcy0+bV9zZXJ2aWNlcy5jbGVhcigp
OwotICAgICAgICB3ZWFrVGhpcy0+bV9hdXRoZW50aWNhdG9ycy5jbGVhcigpOworICAgICAgICB3
ZWFrVGhpcy0+Y2xlYXJTdGF0ZSgpOwogICAgIH0pOwogfQogCit2b2lkIEF1dGhlbnRpY2F0b3JN
YW5hZ2VyOjpjbGVhclN0YXRlKCkKK3sKKyAgICBtX3BlbmRpbmdSZXF1ZXN0RGF0YSA9IHsgfTsK
KyAgICBBU1NFUlQoIW1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBtX3NlcnZpY2Vz
LmNsZWFyKCk7CisgICAgbV9hdXRoZW50aWNhdG9ycy5jbGVhcigpOworfQorCiB2b2lkIEF1dGhl
bnRpY2F0b3JNYW5hZ2VyOjphdXRoZW50aWNhdG9yQWRkZWQoUmVmPEF1dGhlbnRpY2F0b3I+JiYg
YXV0aGVudGljYXRvcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMjMx
LDcgKzIzOCw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OnRpbWVPdXRUaW1lckZpcmVk
KCkKIHsKICAgICBBU1NFUlQobV9yZXF1ZXN0VGltZU91dFRpbWVyLmlzQWN0aXZlKCkpOwogICAg
IG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKChFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dlZEVy
cm9yLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iX3MgfSkpOwotICAgIGNsZWFyU3RhdGVBc3luYygp
OworICAgIGNsZWFyU3RhdGUoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dG9yTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRvck1hbmFnZXIuaAppbmRleCA3ZmM0YTFlYmQ5MDFhNmNjNDRmM2Y0MDY4ZWI2
YjM3Y2ZlNDg1NDFhLi5kYzQ1OWI0NGM4OTEwNWM4MzgzMzI2OGY1Y2IzMzY0NjgwNDA3MGM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdG9yTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHJvdGVj
dGVkOgogICAgIENhbGxiYWNrJiBwZW5kaW5nQ29tcGxldGlvbkhhbmRsZXIoKSB7IHJldHVybiBt
X3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcjsgfQogICAgIFJ1bkxvb3A6OlRpbWVyPEF1dGhlbnRp
Y2F0b3JNYW5hZ2VyPiYgcmVxdWVzdFRpbWVPdXRUaW1lcigpIHsgcmV0dXJuIG1fcmVxdWVzdFRp
bWVPdXRUaW1lcjsgfQogICAgIHZvaWQgY2xlYXJTdGF0ZUFzeW5jKCk7IC8vIFRvIHZvaWQgY3lj
bGljIGRlcGVuZGVuY2UuCisgICAgdm9pZCBjbGVhclN0YXRlKCk7CiAKIHByaXZhdGU6CiAgICAg
Ly8gQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6Ok9ic2VydmVyCkBAIC03OSw3ICs4MCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0VGltZU91dFRpbWVyKGNvbnN0IE9wdGlvbmFsPHVu
c2lnbmVkPiYgdGltZU91dEluTXMpOwogICAgIHZvaWQgdGltZU91dFRpbWVyRmlyZWQoKTsKIAot
ICAgIC8vIFJlcXVlc3Q6IFdlIG9ubHkgYWxsb3cgb25lIHJlcXVlc3QgcGVyIHRpbWUuCisgICAg
Ly8gUmVxdWVzdDogV2Ugb25seSBhbGxvdyBvbmUgcmVxdWVzdCBwZXIgdGltZS4gQSBuZXcgcmVx
dWVzdCB3aWxsIGNhbmNlbCBhbnkgcGVuZGluZyBvbmVzLgogICAgIFdlYkF1dGhlbnRpY2F0aW9u
UmVxdWVzdERhdGEgbV9wZW5kaW5nUmVxdWVzdERhdGE7CiAgICAgQ2FsbGJhY2sgbV9wZW5kaW5n
Q29tcGxldGlvbkhhbmRsZXI7CiAgICAgUnVuTG9vcDo6VGltZXI8QXV0aGVudGljYXRvck1hbmFn
ZXI+IG1fcmVxdWVzdFRpbWVPdXRUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAppbmRleCBkNmI4ZDc0ZTAwN2I4MTJlZGVmMDll
MDNiZWRhMmZkNWE0ZWQxNWQ3Li5iNWE1YzgyMzRkOGY0NTU4NGFkNmFhOGVmZDE2YmRmNTU4M2Rm
NDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
UHJveHkuY3BwCkBAIC01MywzMyArNTMsMzMgQEAgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
UHJveHk6On5XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eSgpCiAgICAgbV93ZWJQYWdl
UHJveHkucHJvY2VzcygpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdl
UHJveHkucGFnZUlEKCkpOwogfQogCi12b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5OjptYWtlQ3JlZGVudGlhbChjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdl
YkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMpCit2b2lk
IFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjptYWtlQ3JlZGVudGlhbCh1aW50NjRf
dCBtZXNzYWdlSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBhdXRv
IGNhbGxiYWNrID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoVmFyaWFudDxXZWJD
b3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJiBy
ZXN1bHQpIHsKKyAgICBhdXRvIGNhbGxiYWNrID0gW21lc3NhZ2VJZCwgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyldIChWYXJpYW50PFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRh
LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmIHJlc3VsdCkgewogICAgICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0
dXJuOwogCiAgICAgICAgIFdURjo6c3dpdGNoT24ocmVzdWx0LCBbJl0oY29uc3QgV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbERhdGEmIGRhdGEpIHsKLSAgICAgICAgICAgIHdlYWtUaGlzLT5y
ZXF1ZXN0UmVwbHkoZGF0YSwgeyB9KTsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5yZXF1ZXN0UmVw
bHkobWVzc2FnZUlkLCBkYXRhLCB7IH0pOwogICAgICAgICB9LCBbJl0oY29uc3QgIFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikgewotICAgICAgICAgICAgd2Vha1RoaXMtPnJlcXVl
c3RSZXBseSh7IH0sIGV4Y2VwdGlvbik7CisgICAgICAgICAgICB3ZWFrVGhpcy0+cmVxdWVzdFJl
cGx5KG1lc3NhZ2VJZCwgeyB9LCBleGNlcHRpb24pOwogICAgICAgICB9KTsKICAgICB9OwogICAg
IG1fd2ViUGFnZVByb3h5LndlYnNpdGVEYXRhU3RvcmUoKS5hdXRoZW50aWNhdG9yTWFuYWdlcigp
Lm1ha2VDcmVkZW50aWFsKGhhc2gsIG9wdGlvbnMsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAot
dm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6Z2V0QXNzZXJ0aW9uKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zJiBvcHRpb25zKQordm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JQcm94eTo6Z2V0QXNzZXJ0aW9uKHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBjYWxsYmFjayA9IFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKV0gKFZhcmlhbnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGEs
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYgcmVzdWx0KSB7CisgICAgYXV0byBjYWxsYmFjayA9
IFttZXNzYWdlSWQsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoVmFyaWFudDxXZWJD
b3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJiBy
ZXN1bHQpIHsKICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBXVEY6OnN3aXRjaE9u
KHJlc3VsdCwgWyZdKGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhJiBkYXRh
KSB7Ci0gICAgICAgICAgICB3ZWFrVGhpcy0+cmVxdWVzdFJlcGx5KGRhdGEsIHsgfSk7CisgICAg
ICAgICAgICB3ZWFrVGhpcy0+cmVxdWVzdFJlcGx5KG1lc3NhZ2VJZCwgZGF0YSwgeyB9KTsKICAg
ICAgICAgfSwgWyZdKGNvbnN0ICBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJiBleGNlcHRpb24pIHsK
LSAgICAgICAgICAgIHdlYWtUaGlzLT5yZXF1ZXN0UmVwbHkoeyB9LCBleGNlcHRpb24pOworICAg
ICAgICAgICAgd2Vha1RoaXMtPnJlcXVlc3RSZXBseShtZXNzYWdlSWQsIHsgfSwgZXhjZXB0aW9u
KTsKICAgICAgICAgfSk7CiAgICAgfTsKICAgICBtX3dlYlBhZ2VQcm94eS53ZWJzaXRlRGF0YVN0
b3JlKCkuYXV0aGVudGljYXRvck1hbmFnZXIoKS5nZXRBc3NlcnRpb24oaGFzaCwgb3B0aW9ucywg
V1RGTW92ZShjYWxsYmFjaykpOwpAQCAtOTAsOSArOTAsOSBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5Ojppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JB
dmFpbAogICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvcjo6SXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxl
UmVwbHkobWVzc2FnZUlkLCBMb2NhbFNlcnZpY2U6OmlzQXZhaWxhYmxlKCkpKTsKIH0KIAotdm9p
ZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6cmVxdWVzdFJlcGx5KGNvbnN0IFdl
YkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhJiBkYXRhLCBjb25zdCBXZWJDb3JlOjpFeGNl
cHRpb25EYXRhJiBleGNlcHRpb24pCit2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5OjpyZXF1ZXN0UmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBjb25zdCBXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsRGF0YSYgZGF0YSwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYg
ZXhjZXB0aW9uKQogewotICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OldlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvcjo6UmVxdWVzdFJlcGx5KGRhdGEsIGV4Y2VwdGlvbikpOworICAg
IG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
cjo6UmVxdWVzdFJlcGx5KG1lc3NhZ2VJZCwgZGF0YSwgZXhjZXB0aW9uKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5LmgKaW5kZXggYmExYWVmNWY1OGI1OWUzODI2OTBhOTNmMjg2MTc2ZmU5MDRi
NDJkOS4uODVjZTY5MDYxMTE0NDJiYzY3OWNjN2E3NzViODY4MmRkMTU3MjhjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01NCwx
MiArNTQsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgLy8gUmVjZWl2ZXJzLgot
ICAgIHZvaWQgbWFrZUNyZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25z
dCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJik7Ci0gICAgdm9p
ZCBnZXRBc3NlcnRpb24oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3Jl
OjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmKTsKKyAgICB2b2lkIG1ha2VDcmVk
ZW50aWFsKHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBj
b25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJik7CisgICAg
dm9pZCBnZXRBc3NlcnRpb24odWludDY0X3QgbWVzc2FnZUlkLCBjb25zdCBWZWN0b3I8dWludDhf
dD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cyYpOwogICAgIHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxh
YmxlKHVpbnQ2NF90IG1lc3NhZ2VJZCk7CiAKICAgICAvLyBTZW5kZXJzLgotICAgIHZvaWQgcmVx
dWVzdFJlcGx5KGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhJiwgY29uc3Qg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpOworICAgIHZvaWQgcmVxdWVzdFJlcGx5KHVpbnQ2NF90
IG1lc3NhZ2VJZCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGEmLCBjb25z
dCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik7CiAKICAgICBXZWJQYWdlUHJveHkmIG1fd2ViUGFn
ZVByb3h5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggODdjNjY3NzZlNjFhMDViMWJhZDUy
OTJkZDExNTIxM2FhZmEzYWJlMS4uMTE3Y2Q4ODA4ZjBkZTU3NTYyYzFkODFhMTE4MmI1N2Q1NjUw
MDJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTI2LDggKzI2LDggQEAKIAogbWVzc2FnZXMg
LT4gV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkgewogCi0gICAgTWFrZUNyZWRlbnRp
YWwoVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMpOwotICAgIEdldEFzc2VydGlvbihWZWN0b3I8dWlu
dDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucyBvcHRpb25zKTsKKyAgICBNYWtlQ3JlZGVudGlhbCh1aW50NjRfdCBtZXNzYWdlSWQsIFZl
Y3Rvcjx1aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucyBvcHRpb25zKTsKKyAgICBHZXRBc3NlcnRpb24odWludDY0X3QgbWVzc2Fn
ZUlkLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucyBvcHRpb25zKTsKICAgICBJc1VzZXJWZXJpZnlpbmdQbGF0Zm9y
bUF1dGhlbnRpY2F0b3JBdmFpbGFibGUodWludDY0X3QgbWVzc2FnZUlkKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAppbmRleCA5MGJhNGM1
N2M2NDE0YTg3OGFmMjdiZGI1ODNhMDdlNWE0MjRhOGYyLi44NTY1OTE2NmNjMjFlZDk2MjY0MDc0
YjdlODY0MmIyYTg2MjE4Y2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yLmNwcApAQCAtNTAsMTggKzUwLDE0IEBAIFdlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvcjo6fldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcigpCiAKIHZvaWQgV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yOjptYWtlQ3JlZGVudGlhbChjb25zdCBWZWN0b3I8dWludDhfdD4m
IGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
IG9wdGlvbnMsIFdlYkNvcmU6OlJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7
Ci0gICAgaWYgKCFzZXRSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGVyKSkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIG1fd2ViUGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6TWFrZUNyZWRlbnRpYWwoaGFzaCwgb3B0aW9ucykp
OworICAgIGF1dG8gbWVzc2FnZUlkID0gc2V0UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUoaGFuZGxlcikpOworICAgIG1fd2ViUGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eTo6TWFrZUNyZWRlbnRpYWwobWVzc2FnZUlkLCBoYXNoLCBvcHRp
b25zKSk7CiB9CiAKIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRp
b24oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMsIFdlYkNvcmU6OlJlcXVlc3RDb21wbGV0
aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAgaWYgKCFzZXRSZXF1ZXN0Q29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShoYW5kbGVyKSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fd2ViUGFn
ZS5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6R2V0QXNz
ZXJ0aW9uKGhhc2gsIG9wdGlvbnMpKTsKKyAgICBhdXRvIG1lc3NhZ2VJZCA9IHNldFJlcXVlc3RD
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBtX3dlYlBhZ2Uuc2VuZChN
ZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OkdldEFzc2VydGlvbiht
ZXNzYWdlSWQsIGhhc2gsIG9wdGlvbnMpKTsKIH0KIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3I6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShX
ZWJDb3JlOjpRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4
IDUzZWMxOTM1MTk5ZmZiZDkzZTZjNWI5ZjM5NjYyNTIyNzVmYWZlZTEuLjE4NzAwY2EzYzE5MDM4
NGJlYWExMjEwY2IwM2JlOGVkMzg5YWE4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBA
QAogCiBtZXNzYWdlcyAtPiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IgewogCi0gICAgUmVx
dWVzdFJlcGx5KHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSBkYXRhLCBz
dHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pOworICAgIFJlcXVlc3RSZXBs
eSh1aW50NjRfdCBtZXNzYWdlSWQsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFs
RGF0YSBkYXRhLCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pOwogICAg
IElzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KHVpbnQ2
NF90IG1lc3NhZ2VJZCwgYm9vbCByZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGI1MDMzN2JmMWZjMWVi
MmU2M2JhNmRhMDA0ZDg2NjkyNWM3NjQzZC4uOThjMGQ4OTA1ODhkMTRiZGQ0MzdiMzBkMzM1OTYx
ODU3NjU4MmFjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTA1LTA2ICBKaWV3ZW4gVGFu
ICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBBIG5ldyByZXF1
ZXN0IHNob3VsZCBhbHdheXMgc3VwcHJlc3MgdGhlIHBlbmRpbmcgcmVxdWVzdCBpZiBhbnkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTUxNworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDY4ODgyMjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJl
bnQgRnVsZ2hhbS4KKworICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBz
Lmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRw
cy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1nZXQtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNz
LWhpZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWhpZC5odHRwcy5odG1sOgorICAgICAgICAq
IGh0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy9uZXctcGFnZS5odG1sOiBBZGRlZC4KKwogMjAx
OS0wNS0wMyAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtX
ZWJBdXRoTl0gQSBmb2N1c2VkIGRvY3VtZW50IHNob3VsZCBiZSByZXF1aXJlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNy
ZWF0ZS1mYWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy1leHBlY3Rl
ZC50eHQKaW5kZXggZTI2MDRhZTBkOWFjZWYyYjIzNGZhNTI1ODQ5YTI5MDJiYjViYmVmMC4uZGU4
MjY1MjJkOTBiMDMwNTNlYzdkZTYyMDhjMzA5NjhiNTg4ZjUwNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWls
dXJlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0yLDQgKzIsOCBAQAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3
aXRoIHRpbWVvdXQgCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGgg
YSBtaXNtYXRjaGVkIFJQIElEIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVd
XSB3aXRoIGFuIGVtcHR5IHB1YktleUNyZWRQYXJhbXMgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2NyZWF0ZV1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3RzIAorUEFTUyBQdWJs
aWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHR3byBjb25zZWN1dGl2ZSByZXF1ZXN0
cyAoMikgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbmV3IHJl
cXVlc3RzIGluIGEgbmV3IHBhZ2UgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0
ZV1dIHdpdGggbmV3IHJlcXVlc3RzIGluIGEgbmV3IHBhZ2UgKDIpIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRl
LWZhaWx1cmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy5odG1sCmluZGV4IDRlMTMxY2Jl
NGUyY2JiNGQ3MTk1MTMwOTM1MmZjZDI1ZDU1ODA3NTAuLjQ2NDJhNWJhMGZiZTdhOGIzYzhhZGZm
NTM5Njk5NTViMGM1ZDY2Y2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVh
dGUtZmFpbHVyZS5odHRwcy5odG1sCkBAIC03MCw0ICs3MCw5MyBAQAogICAgICAgICByZXR1cm4g
cHJvbWlzZVJlamVjdHModCwgIk5vdFN1cHBvcnRlZEVycm9yIiwKICAgICAgICAgICAgIG5hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJObyBkZXNpcmVkIHByb3BlcnRpZXMg
b2YgdGhlIHRvIGJlIGNyZWF0ZWQgY3JlZGVudGlhbCBhcmUgcHJvdmlkZWQuIik7CiAgICAgfSwg
IlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggYW4gZW1wdHkgcHViS2V5Q3Jl
ZFBhcmFtcyIpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgY29u
c3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAg
IHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAg
bmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IGFzY2lpVG9V
aW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJK
b2huIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNj
aWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJh
bXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfTsKKworICAgICAgICBjb25zdCByZXN1bHQgPSBwcm9taXNlUmVqZWN0cyh0LCAiTm90
QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIlRo
aXMgcmVxdWVzdCBoYXMgYmVlbiB2b2lkZWQgYnkgYSBuZXcgcmVxdWVzdC4iKTsKKyAgICAgICAg
cHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUob3B0aW9ucyksICJUaGlzIHJlcXVlc3QgaGFzIGJlZW4gdm9pZGVkIGJ5IGEgbmV3
IHJlcXVlc3QuIik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSwgIlB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3RzIik7CisK
KyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgICBjb25zdCBjcmVhdGlvbk9w
dGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDog
eworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6
ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhB
cnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIs
CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9V
aW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBb
eyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICB9CisgICAgICAg
IH07CisgICAgICAgIGNvbnN0IHJlc3VsdCA9IHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2Vk
RXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGNyZWF0aW9uT3B0aW9ucyksICJU
aGlzIHJlcXVlc3QgaGFzIGJlZW4gdm9pZGVkIGJ5IGEgbmV3IHJlcXVlc3QuIik7CisKKyAgICAg
ICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAg
ICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKQorICAg
ICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxs
b3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChyZXF1ZXN0T3B0aW9ucyksICJU
aGlzIHJlcXVlc3QgaGFzIGJlZW4gdm9pZGVkIGJ5IGEgbmV3IHJlcXVlc3QuIik7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1d
IHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3RzICgyKSIpOworCisgICAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1
YmxpY0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5h
bWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVz
ZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAg
ICAgICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAg
ICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAg
ICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxn
OiAtNyB9XSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBjb25zdCByZXN1
bHQgPSBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIlRoaXMgcmVxdWVzdCBoYXMgYmVlbiBjYW5jZWxsZWQg
YnkgYSBuZXcgcmVxdWVzdC4iKTsKKyAgICAgICAgd2luZG93Lm9wZW4oIi4vcmVzb3VyY2VzL25l
dy1wYWdlLmh0bWw/aXNDcmVhdGlvbj10cnVlIik7CisgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbmV3IHJlcXVlc3Rz
IGluIGEgbmV3IHBhZ2UiKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAg
ICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAg
ICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisg
ICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAg
ICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBh
c2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlO
YW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjaGFsbGVu
Z2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBwdWJLZXlD
cmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAg
ICB9CisgICAgICAgIH07CisKKyAgICAgICAgY29uc3QgcmVzdWx0ID0gcHJvbWlzZVJlamVjdHMo
dCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9u
cyksICJUaGlzIHJlcXVlc3QgaGFzIGJlZW4gY2FuY2VsbGVkIGJ5IGEgbmV3IHJlcXVlc3QuIik7
CisgICAgICAgIHdpbmRvdy5vcGVuKCIuL3Jlc291cmNlcy9uZXctcGFnZS5odG1sP2lzQ3JlYXRp
b249ZmFsc2UiKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9LCAiUHVibGljS2V5Q3Jl
ZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBuZXcgcmVxdWVzdHMgaW4gYSBuZXcgcGFnZSAoMiki
KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Y3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAyN2ZjNGEzMjU4ZjQy
ZWJhMTllNTFiMzU2MTZlN2JkZWM0NzhiYzE2Li41OWIyZGY3NDdjN2I5OWNhNDBkN2M3ZmYwMzQw
YjNiZjE4OTkxMWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNSw0ICs1LDUgQEAg
UEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHJlcXVpcmVSZXNpZGVu
dEtleSB7IGZhbHNlIH0gaW4gYSBtb2MKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3Jl
YXRlXV0gd2l0aCB1c2VyVmVyaWZpY2F0aW9uIHsgJ3ByZWZlcnJlZCcgfSBpbiBhIG1vY2sgbG9j
YWwgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1d
IHdpdGggdXNlclZlcmlmaWNhdGlvbiB7ICdkaXNjb3VyYWdlZCcgfSBpbiBhIG1vY2sgbG9jYWwg
YXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdp
dGggbWl4ZWQgb3B0aW9ucyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gCitQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVl
c3RzLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNz
LWhpZC5odHRwcy5odG1sCmluZGV4IGVjYjk1NGU3ZWMxZjU0ZTNjNmQ4MGJhYjc1ZjYyYWQzM2Vk
NDAxZWUuLjc1MWVlZTliMGU1YWI3NDJlMDUxNWRmN2ExOTc3ZGM1ZmUxMDYwMTYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1j
cmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLmh0
bWwKQEAgLTE3MCw0ICsxNzAsMjcgQEAKICAgICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRp
YWwpOwogICAgICAgICB9KTsKICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRl
XV0gd2l0aCBtaXhlZCBvcHRpb25zIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwor
CisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAg
ICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAg
ICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2Vl
ZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5k
bGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIs
CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVS
TC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBb
eyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICAgICAgdGltZW91
dDogMTAwCisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgcHJvbWlzZVJlamVj
dHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0
aW9ucyksICJUaGlzIHJlcXVlc3QgaXMgc3VwcHJlc3NlZCBieSBhIG5ldyByZXF1ZXN0LiIpOwor
ICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVu
KGNyZWRlbnRpYWwgPT4geworICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7Cisg
ICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRo
IHR3byBjb25zZWN1dGl2ZSByZXF1ZXN0cy4iKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWls
dXJlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
ZDBmYTYxZjg0MjMyZjIxMzAwMGNiYmMzYjAxMzM2ZWVmYjE4NjYzNS4uNDMyYWM2NDZlYmIxNDlj
NDFmYTAxYzBjMGYwMDYxN2MxNjE3NDM3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtZ2V0LWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC01LDQgKzUsOCBAQCBQ
QVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYSBtaXNtYXRjaGVkIEFQUCBJ
RCAoaW52YWxpZCBVUkxzKQogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRo
IGEgbWlzbWF0Y2hlZCBBUFAgSUQgKGRpZmZlcmVudCBwcm90b2NvbHMpIAogUEFTUyBQdWJsaWNL
ZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGEgbWlzbWF0Y2hlZCBBUFAgSUQgKGRpZmZlcmVu
dCBzaXRlcyAxKSAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhIG1p
c21hdGNoZWQgQVBQIElEIChkaWZmZXJlbnQgc2l0ZXMgMikgCitQQVNTIFB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2dldF1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3RzIAorUEFTUyBQdWJs
aWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHR3byBjb25zZWN1dGl2ZSByZXF1ZXN0cyAo
MikgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggbmV3IHJlcXVlc3Rz
IGluIGEgbmV3IHBhZ2UgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGgg
bmV3IHJlcXVlc3RzIGluIGEgbmV3IHBhZ2UgKDIpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1sCmluZGV4IDg1NDdmZDhlMDQwZmJlMjJkMDFlYmU2
ZjgyZjU4YjI3OTg2ZWRiODkuLmUyZjk1ZDY3ZDhkOGY3NGQ1OTY5ZjM1OGRhY2RmZTFhMzM1YjRk
MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1s
CkBAIC03OSw0ICs3OSw2NyBAQAogICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlNl
Y3VyaXR5RXJyb3IiLAogICAgICAgICAgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRp
b25zKSwgIlRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCBhdXRob3JpemVkIGZvciB0
aGUgcHJvdmlkZWQgQXBwIElELiIpOwogICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tn
ZXRdXSB3aXRoIGEgbWlzbWF0Y2hlZCBBUFAgSUQgKGRpZmZlcmVudCBzaXRlcyAyKSIpOworCisg
ICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAg
ICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWlu
dDhBcnJheSgiMTIzNDU2IikKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBj
b25zdCByZXN1bHQgPSBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIlRoaXMgcmVxdWVzdCBoYXMgYmVlbiB2b2lk
ZWQgYnkgYSBuZXcgcmVxdWVzdC4iKTsKKyAgICAgICAgcHJvbWlzZVJlamVjdHModCwgIk5vdEFs
bG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJUaGlzIHJl
cXVlc3QgaGFzIGJlZW4gdm9pZGVkIGJ5IGEgbmV3IHJlcXVlc3QuIik7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdHdv
IGNvbnNlY3V0aXZlIHJlcXVlc3RzIik7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
eworICAgICAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tl
eTogeworICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1
NiIpCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIGNvbnN0IHJlc3VsdCA9IHBy
b21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Z2V0KHJlcXVlc3RPcHRpb25zKSwgIlRoaXMgcmVxdWVzdCBoYXMgYmVlbiB2b2lkZWQgYnkgYSBu
ZXcgcmVxdWVzdC4iKTsKKworICAgICAgICBjb25zdCBjcmVhdGlvbk9wdGlvbnMgPSB7CisgICAg
ICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAg
ICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2Vl
ZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2Iiks
CisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0
NTYiKSwKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGlj
LWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHBy
b21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlKGNyZWF0aW9uT3B0aW9ucyksICJUaGlzIHJlcXVlc3QgaGFzIGJlZW4gdm9pZGVkIGJ5
IGEgbmV3IHJlcXVlc3QuIik7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9LCAiUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB0d28gY29uc2VjdXRpdmUgcmVxdWVzdHMg
KDIpIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6
IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKQorICAgICAgICAgICAgfQorICAgICAgICB9Owor
CisgICAgICAgIGNvbnN0IHJlc3VsdCA9IHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJy
b3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVGhpcyByZXF1ZXN0IGhh
cyBiZWVuIGNhbmNlbGxlZCBieSBhIG5ldyByZXF1ZXN0LiIpOworICAgICAgICB3aW5kb3cub3Bl
bigiLi9yZXNvdXJjZXMvbmV3LXBhZ2UuaHRtbD9pc0NyZWF0aW9uPWZhbHNlIik7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdp
dGggbmV3IHJlcXVlc3RzIGluIGEgbmV3IHBhZ2UiKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogewor
ICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpCisg
ICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgY29uc3QgcmVzdWx0ID0gcHJvbWlz
ZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQo
b3B0aW9ucyksICJUaGlzIHJlcXVlc3QgaGFzIGJlZW4gY2FuY2VsbGVkIGJ5IGEgbmV3IHJlcXVl
c3QuIik7CisgICAgICAgIHdpbmRvdy5vcGVuKCIuL3Jlc291cmNlcy9uZXctcGFnZS5odG1sP2lz
Q3JlYXRpb249dHJ1ZSIpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0sICJQdWJsaWNL
ZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG5ldyByZXF1ZXN0cyBpbiBhIG5ldyBwYWdlICgy
KSIpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1n
ZXQtc3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDkwNThlODQyNzdjOWRjNWZk
OTI3NDc0MzdhNjNkMmVjN2MyZGNkYTQuLjQzYzMwNmNiMDE1Njk5ZDJmMjIwN2Q5YmVjNmYxMDE0
YWRmMWZlOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQt
c3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC00LDQgKzQsNSBAQCBQQVNTIFB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggbWF0Y2hlZCBhbGxvdyBjcmVkZW50aWFscyBp
biBhIG1vY2sgaGlkCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdXNl
clZlcmlmaWNhdGlvbiB7IHByZWZlcnJlZCB9IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4g
CiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdXNlclZlcmlmaWNhdGlv
biB7IGRpc2NvdXJhZ2VkIH0gaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKIFBBU1MgUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBtaXhlZCBvcHRpb25zIGluIGEgbW9jayBo
aWQgYXV0aGVudGljYXRvci4gCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdp
dGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3RzLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWhpZC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWdldC1zdWNjZXNzLWhpZC5odHRwcy5odG1sCmluZGV4IDI5OTEwZTk2NTIwM2IxZWYw
YWM1YTYwZjM2ZTRmNWIyZmM3MTMxZjkuLmJjOTg5NGUzOTUyYWU4NWEwNjhmNmRmYTVjODMyODQ4
NjZkY2NjMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3Mt
aGlkLmh0dHBzLmh0bWwKQEAgLTk4LDQgKzk4LDE4IEBACiAgICAgICAgICAgICByZXR1cm4gY2hl
Y2tSZXN1bHQoY3JlZGVudGlhbCk7CiAgICAgICAgIH0pOwogICAgIH0sICJQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG1peGVkIG9wdGlvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50
aWNhdG9yLiIpOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRp
b25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxl
bmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAgICAgdGltZW91
dDogMTAwCisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgcHJvbWlzZVJlamVj
dHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9u
cyksICJUaGlzIHJlcXVlc3QgaXMgc3VwcHJlc3NlZCBieSBhIG5ldyByZXF1ZXN0LiIpOworICAg
ICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKS50aGVuKGNyZWRl
bnRpYWwgPT4geworICAgICAgICAgICAgcmV0dXJuIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwpOwor
ICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB0
d28gY29uc2VjdXRpdmUgcmVxdWVzdHMuIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy9uZXctcGFnZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL25ldy1wYWdlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzBjMDMzNjE2NDkzMGQxZGUzMzBjZTg2ODMyZTM5NDJjODFjODM2YwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy9uZXctcGFnZS5o
dG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxzY3JpcHQgc3JjPSIuL3V0aWwuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKyAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsK
KyAgICBjb25zdCBpc0NyZWF0aW9uID0gdXJsLnNlYXJjaFBhcmFtcy5nZXQoImNyZWF0aW9uIik7
CisKKyAgICBjb25zdCBtYWtlT3B0aW9ucyA9IHsKKyAgICAgICAgcHVibGljS2V5OiB7CisgICAg
ICAgICAgICBycDogeworICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgbmFtZTogIkpv
aG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEy
MzQ1NiIpLAorICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0
NTYiKSwKKyAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5
IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgIHRpbWVvdXQ6IDEKKyAgICAgICAgfQorICAgIH07
CisgICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAg
ICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAg
ICAgICB0aW1lb3V0OiAxCisgICAgICAgIH0KKyAgICB9OworCisgICAgaWYgKGlzQ3JlYXRpb24g
PT0gInRydWUiKQorICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG1ha2VPcHRp
b25zKTsKKyAgICBlbHNlCisgICAgICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQocmVxdWVz
dE9wdGlvbnMpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>