<?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>143491</bug_id>
          
          <creation_ts>2015-04-07 11:39:36 -0700</creation_ts>
          <short_desc>[WebAuthN] Implement FIDO AppID extension</short_desc>
          <delta_ts>2019-03-19 23:36:13 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=181949</see_also>
          <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>ryan</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>dwaite</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>john+webkit</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>me</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1083369</commentid>
    <comment_count>0</comment_count>
    <who name="">ryan</who>
    <bug_when>2015-04-07 11:39:36 -0700</bug_when>
    <thetext>The FIDO Universal Second Factor (U2F) protocol is an open specification that was recently finalized.  The FINAL spec can be downloaded here: https://fidoalliance.org/specs/fido-u2f-v1.0-ps-20141009.zip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194849</commentid>
    <comment_count>1</comment_count>
      <attachid>279408</attachid>
    <who name="Alice Bevan-McGregor">alice</who>
    <bug_when>2016-05-19 11:49:02 -0700</bug_when>
    <thetext>Created attachment 279408
U2F request flow diagram.

U2F is beginning to see more wide-spread deployment, with Github being one notable example site that utilizes it.  Currently, Chrome integrates support, but lower-level integration in WebKit would broadly increase the potential user base.

There exists a cross-platform (Windows, Linux, Mac OS X) C reference implementation, https://developers.yubico.com/libu2f-host/, supported by a manufacturer (Yubico) of U2F-compliant tokens. They also provide a test server for interactive experimentation (https://demo.yubico.com/u2f), reference server integration implementation, and cURL-able test endpoints.

This client (device host) reference implementation depends on: pkg-config, JSON-C, and HIDAPI for USB communication.

I very strongly desire U2F support both for my own site use, as well as for token-secured access to Github.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278108</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-02-16 21:23:32 -0800</bug_when>
    <thetext>What is the difference from the Web Authentication[1,2]?

[1]: https://github.com/w3c/webauthn
[2]: https://w3c.github.io/webauthn/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391781</commentid>
    <comment_count>3</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-01-22 13:28:13 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #2)
&gt; What is the difference from the Web Authentication[1,2]?
&gt; 
&gt; [1]: https://github.com/w3c/webauthn
&gt; [2]: https://w3c.github.io/webauthn/

WebAuthN is effectively FIDO 2.0. See Bug 181943 for status update regarding to WebAuthN.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427748</commentid>
    <comment_count>4</comment_count>
    <who name="">john+webkit</who>
    <bug_when>2018-05-26 12:28:37 -0700</bug_when>
    <thetext>Does the work on WebAuthN contain FIDO 1.0 support as well? If not, this ticket is probably still valid on it&apos;s own.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472872</commentid>
    <comment_count>5</comment_count>
    <who name="David Waite">dwaite</who>
    <bug_when>2018-10-29 00:20:48 -0700</bug_when>
    <thetext>FWIW, Edge has no intention to support U2F and only support WebAuthn.

The U2F JavaScript API unfortunately doesn&apos;t fully document how to get access to the objects needed to use the MessagePort and u2f interface API.

U2F supports CTAP1 devices, while WebAuthn supports CTAP1 and CTAP2 devices.

There is an extension for WebAuthn to work with existing U2F registrations (such as those created via another browser, or the Safari App Extension) with the new API, so that users can still authenticate when a site upgrades from using the U2F to WebAuthn javascript interfaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472953</commentid>
    <comment_count>6</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-29 11:06:14 -0700</bug_when>
    <thetext>(In reply to john+webkit from comment #4)
&gt; Does the work on WebAuthN contain FIDO 1.0 support as well? If not, this
&gt; ticket is probably still valid on it&apos;s own.

WebAuthN will support CTAP1/U2F devices.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472954</commentid>
    <comment_count>7</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-29 11:08:50 -0700</bug_when>
    <thetext>(In reply to David Waite from comment #5)
&gt; FWIW, Edge has no intention to support U2F and only support WebAuthn.
&gt; 
&gt; The U2F JavaScript API unfortunately doesn&apos;t fully document how to get
&gt; access to the objects needed to use the MessagePort and u2f interface API.
&gt; 
&gt; U2F supports CTAP1 devices, while WebAuthn supports CTAP1 and CTAP2 devices.
&gt; 
&gt; There is an extension for WebAuthn to work with existing U2F registrations
&gt; (such as those created via another browser, or the Safari App Extension)
&gt; with the new API, so that users can still authenticate when a site upgrades
&gt; from using the U2F to WebAuthn javascript interfaces.

Same as WebKit. I will leave this bug alone and re-scope it as [WebAuthN] Implement FIDO U2F extension.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508797</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-21 17:53:42 -0800</bug_when>
    <thetext>&lt;rdar://problem/48298273&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518586</commentid>
    <comment_count>9</comment_count>
      <attachid>365249</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-19 15:48:01 -0700</bug_when>
    <thetext>Created attachment 365249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518622</commentid>
    <comment_count>10</comment_count>
      <attachid>365256</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-19 16:29:50 -0700</bug_when>
    <thetext>Created attachment 365256
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518634</commentid>
    <comment_count>11</comment_count>
      <attachid>365256</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-19 16:45:16 -0700</bug_when>
    <thetext>Comment on attachment 365256
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        do in practice to avoid some unncessary steps of

unnecessary

&gt; Source/WebCore/Modules/webauthn/fido/U2fCommandConstructor.h:65
&gt; +WEBCORE_EXPORT Optional&lt;Vector&lt;uint8_t&gt;&gt; convertToU2fSignCommand(const Vector&lt;uint8_t&gt;&amp; clientDataHash, const WebCore::PublicKeyCredentialRequestOptions&amp;, const Vector&lt;uint8_t&gt;&amp; keyHandle, bool isAppId = false);

I should explain the change in the ChangeLog: the checkOnly flag is never used and therefore is deleted.

&gt; LayoutTests/http/wpt/webauthn/public-key-credential-create-success-hid.https.html:19
&gt; +        assert_not_exists(credential.getClientExtensionResults());

assert_not_exists(credential.getClientExtensionResults(), &quot;appid&quot;);

&gt; LayoutTests/http/wpt/webauthn/public-key-credential-create-success-local.https.html:33
&gt; +        assert_not_exists(credential.getClientExtensionResults());

Ditto.

&gt; LayoutTests/http/wpt/webauthn/public-key-credential-create-success-u2f.https.html:15
&gt; +        assert_not_exists(credential.getClientExtensionResults());

Ditto.

&gt; LayoutTests/http/wpt/webauthn/public-key-credential-get-success-local.https.html:36
&gt; +                    assert_not_exists(credential.getClientExtensionResults());

Ditto.

&gt; LayoutTests/http/wpt/webauthn/public-key-credential-get-success-u2f.https.html:18
&gt; +            assert_not_exists(credential.getClientExtensionResults());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518645</commentid>
    <comment_count>12</comment_count>
      <attachid>365256</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-19 16:57:52 -0700</bug_when>
    <thetext>Comment on attachment 365256
Patch

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

&gt; Source/WebCore/ChangeLog:15
&gt; +

Need to add the new IDL file to MakeLists.txt to make GTK+ happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518664</commentid>
    <comment_count>13</comment_count>
      <attachid>365256</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-03-19 17:37:23 -0700</bug_when>
    <thetext>Comment on attachment 365256
Patch

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

Nice work getting this together. r=me with the changes suggested, and assuming tests pass when you are done.

&gt;&gt; Source/WebCore/Modules/webauthn/fido/U2fCommandConstructor.h:65
&gt;&gt; +WEBCORE_EXPORT Optional&lt;Vector&lt;uint8_t&gt;&gt; convertToU2fSignCommand(const Vector&lt;uint8_t&gt;&amp; clientDataHash, const WebCore::PublicKeyCredentialRequestOptions&amp;, const Vector&lt;uint8_t&gt;&amp; keyHandle, bool isAppId = false);
&gt; 
&gt; I should explain the change in the ChangeLog: the checkOnly flag is never used and therefore is deleted.

Yes -- I got confused when I looked at the implementation, until I saw this note! :-)

&gt; Source/WebKit/UIProcess/WebAuthentication/fido/U2fHidAuthenticator.cpp:214
&gt; +            response-&gt;appid = true;

Could this be:

response-&gt;appid = m_isAppId;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518675</commentid>
    <comment_count>14</comment_count>
      <attachid>365256</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-19 18:01:49 -0700</bug_when>
    <thetext>Comment on attachment 365256
Patch

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

Thanks Brent for r+ this patch.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/fido/U2fHidAuthenticator.cpp:214
&gt;&gt; +            response-&gt;appid = true;
&gt; 
&gt; Could this be:
&gt; 
&gt; response-&gt;appid = m_isAppId;

Sure. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518755</commentid>
    <comment_count>15</comment_count>
      <attachid>365306</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-19 21:53:30 -0700</bug_when>
    <thetext>Created attachment 365306
Patch for Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518780</commentid>
    <comment_count>16</comment_count>
      <attachid>365306</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-19 22:44:16 -0700</bug_when>
    <thetext>Comment on attachment 365306
Patch for Landing

cq+ since GTK+ bots are happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518786</commentid>
    <comment_count>17</comment_count>
      <attachid>365306</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-19 23:12:03 -0700</bug_when>
    <thetext>Comment on attachment 365306
Patch for Landing

Clearing flags on attachment: 365306

Committed r243193: &lt;https://trac.webkit.org/changeset/243193&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>279408</attachid>
            <date>2016-05-19 11:49:02 -0700</date>
            <delta_ts>2019-03-19 15:48:11 -0700</delta_ts>
            <desc>U2F request flow diagram.</desc>
            <filename>u2f-flow.png</filename>
            <type>image/png</type>
            <size>13009</size>
            <attacher name="Alice Bevan-McGregor">alice</attacher>
            
              <data encoding="base64">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
IK8gE5BX8qEQAgCAqqEQAgCAqqEQAgCAqqEQAgCAqqEQAgCAqqEQAgCAqqEQAgCAqqEQAgCAqqEQ
AgCAqqEQAgCAqqEQAgCAqqEQAgCAqqEQAgCAqqEQAgCAqqEQAgCAqqEQAgCAqqEQAgCAqqEQAgCA
qqEQAoDSaDSabIeQQco+u6xAIQQAAFVDIQQAAFVDIQTY05LHwYRLnj59evbs2bKyMr1e73A47t27
xy0fHx+vqanR6/UVFRWDg4PCfUdHR0+dOlVUVJSXl8cvcTgc+fn5ZWVlbW1tKysr/PbPnj27dOlS
UVFRRUXF5cuXX758KWzn5MmT+/btKyoq+su//Mtvvvnm97///V/8xV/s27evtLT017/+tbAdsXiS
SR9RLM7PPvussrJSr9fb7fa+vj6Jzuzr67Pb7Xq9vrKy8s6dO3IOLdbJKZd//PHHb7/9Nt/m999/
f/jw4R9++IFfUlNT8/DhQ4Ig+EjsdvvAwIDEz0jm2cHWsSAbugsyQTqvktcKl9TW1nZ3d0cikY2N
jZmZmebmZpZlQ6GQ0WgcGRmJxWIzMzMkSfr9fn7fo0ePUhS1trbGL6mqqqIoimGYpaWl1tbW1tZW
vn2r1To0NMQwzMLCwrlz5zo7O/m9jh07FggEGIZ5/vz53/zN35SUlFRVVQmX8O1IxJNM4ohicU5O
TlqtVpqmGYahadpisYh1KUEQCVtOTU1teuiUnSy2PBwOGwyGWCzGbXP79u2CgoKenh5u9rvvvisv
L2dZ1uv1ms1miqJisRhFUWazeWxsLOXPSP7ZJZ+snM2AZVn0VBqQWJAJ2ymExcXFi4uLCRs0NjZ6
PB5+dnp62ul08vsGg8GE1ubm5vjZ5eVlk8mUMpJIJEKSJL/X7OyscC+JdiTikZZwRLH26+vr+SrC
sqzP55MohAlbNjQ0bHrolJ0ssby2tvbzzz/npo8dO+bxeKqqqrjZ27dvv/vuuyzL1tXV+Xw+fhev
1+tyufgghT8j+WeXANcr+dBTaUBiQSZspxB2dnaaTKaLFy8ODw8vLS1xC00mU8LAj1ar5fddX1+X
2X4kEnnvvfdIkjQYDMntyI9TIp4EWztiSUlJNBoVNiJRCBO2LCkp2fTQKTtZYnlXV1dLSwvLspOT
k263m2VZt9sdCARYln3rrbe4e9CSkpJIJJIykoSfkfyzE+sf2BSeEQLksOvXr1MURZLk2NjY8ePH
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
+XBHCAAAqoZCCAAAqoZCCAAAqoZCCAAAqoZCCAAAqoZCCAAAqoZCCAAAqoZCCAAAqoZCCAAAqoZC
CAAAqoZCCAAAqoZCCP/f1v65s3Av/HtoAMhFKIQAAKBqKIQAAKBqKIRqND4+fvLkyfz8/CNHjgwO
DvLLR0dHHQ5Hfn5+WVlZW1vbysoKv+rZs2eXLl0qKiqqqKi4fPnyy5cv5RylpqZGr9dXVFQIj6LR
aCQONDAwUFFRodfr7XZ7X19fwnCrWJsAAFvHgmzK6K6JiYny8vKJiQmGYebn59vb27nlBEFUVVVR
FMUwzNLSUmtra2trK7+X1WodGhpiGGZhYeHcuXOdnZ38Xvw2wulQKGQ0GkdGRmKx2MzMDEmSfr9/
0wNNTExYrVaaphmGoWnaarXKbDOnKSOvYK9BXsmHnkqDMhKrrq7O4/EkLycIYm5ujp9dXl42mUwp
W4hEIiRJ8nsJW+CnGxsbhUeZnp52Op2bHqi+vn5iYoJfNTY2JrPNnKaMvIK9BnklH77COA3K+Mbn
ffv2LS4uHjhwIGF58tnxS1ZXVz/88EO/37+0tLS+vk4QhFarffXqVcJewunS0tIXL14IW0u5S8KO
Bw8eDIfD+/fv55avrq6WlJTIaTOnKSOvYK9BXsmHZ4Q7o7+/P1f+eMBgMKS7S3t7ezwen5ycjEaj
LMsyDBOPx6V3YRiGYRjhZ67tV6xMtAkAgEK4XY8ePdJoNBcuXMh2IHKdOHGCoqi0dgkGg11dXXa7
Xa/XEwQhZ3en0zk7O5tubMePHw+FQvzsgwcPtt8mAMAmMj/6qhzJ3dXR0ZFznUnTtNls9vv9yS/L
JGzJL3G5XFeuXIlEItFo9P79+4cOHeJXESLPCAOBgNPpDAaD3G1cIBBoamra9EATExMkSXJ7BYNB
kiRltpnTciVzILcgr+RDT6VBmFh9fX25+6nC6/VWV1frdDruXVBuoUR9WlhYOHPmjNFoNBgM1dXV
w8PDmxZClmVpmna73YWFhQUFBW63OxAIbHoglmV7e3utVqtOp7PZbLdu3dLpdHLazGk5lDmQQ5BX
8uFpahq4h8+PHj1yOp0pN0Bn7qyvvvrq/Pnz3377bbYDySy81ACZgLySD88I03PhwgWxKgg7oq2t
7Ztvvvnxxx8fPnx48eLF8+fPZzsiAFA4fGRIQ668Fwo5B7+GsONwRyifNtsB5JiOjo7+/n6xtUg7
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
OQAAAABJRU5ErkJggg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365249</attachid>
            <date>2019-03-19 15:48:01 -0700</date>
            <delta_ts>2019-03-19 16:29:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143491-20190319154800.patch</filename>
            <type>text/plain</type>
            <size>77245</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDcwYTJlN2NjOTdjMzgy
MzE3N2RmMGI3YTFiMTBiZTM5MjAwMmIxMC4uNmUyMTA1NThhNjgwZmU1ZWQ3OTY4YWU4ZDg0ZTIw
NDQyZGQzNjU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE5LTAzLTE5ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBs
ZW1lbnQgRklETyBBcHBJRCBleHRlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MzQ5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgyOTgy
NzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIEZJRE8gQXBwSUQgZXh0ZW5zaW9uOiBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXV0aG4vI3NjdG4tYXBwaWQtZXh0ZW5zaW9uLgorICAgICAgICBUbyBi
ZSBub3RpY2VkLCB0aGlzIGltcGxlbWVudGF0aW9uIGZvbGxvd3Mgd2hhdCBzcGVjIHN1Z2dlc3Rl
ZCBpbiB0aGUgJ05vdGUnIHNlc3Npb24gYW5kIHdoYXQgQ2hyb21lL0ZpcmVmb3gKKyAgICAgICAg
ZG8gaW4gcHJhY3RpY2UgdG8gYXZvaWQgc29tZSB1bm5jZXNzYXJ5IHN0ZXBzIG9mCisgICAgICAg
IGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtaWQtMjAxODAyMjcvZmlk
by1hcHBpZC1hbmQtZmFjZXRzLXYyLjAtaWQtMjAxODAyMjcuaHRtbCNkZXRlcm1pbmluZy1pZi1h
LWNhbGxlci1zLWZhY2V0aWQtaXMtYXV0aG9yaXplZC1mb3ItYW4tYXBwaWQuCisKKyAgICAgICAg
Q292ZXJlZCBieSBuZXcgdGVzdHMgaW4gZXhpc3RpbmcgZmlsZXMuCisKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMu
aDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlD
cmVkZW50aWFsLmlkbC4KKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9u
c0NsaWVudElucHV0czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0czo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5pZGw6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRp
Y2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JJbnRlcm5hbDo6cHJvY2Vzc0FwcElkRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Y3JlYXRlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3Vy
Y2UgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjp0cnlDcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbDo6UHVibGljS2V5Q3JlZGVu
dGlhbCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpnZXRDbGllbnRF
eHRlbnNpb25SZXN1bHRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRl
bnRpYWw6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlD
cmVkZW50aWFsLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnMuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlB1Ymxp
Y0tleUNyZWRlbnRpYWxEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6ZGVjb2RlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNl
Q29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNw
b25zZSk6CisgICAgICAgIChmaWRvOjpyZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmQ29tbWFuZENvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKGZpZG86OmNvbnZlcnRUb1UyZlNpZ25Db21tYW5kKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vVTJmQ29tbWFuZENvbnN0cnVjdG9yLmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcDoKKyAgICAgICAgKGZp
ZG86OnJlYWRVMmZSZWdpc3RlclJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86OnJlYWRVMmZTaWdu
UmVzcG9uc2UpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMy0xNyAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046ICF2bS5pc0luaXRpYWxpemlu
Z09iamVjdCgpIHZvaWQqIEpTQzo6dHJ5QWxsb2NhdGVDZWxsSGVscGVyPEpTQzo6U3RydWN0dXJl
PiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1MGE3ODQyNWYzZmUxZGZiNzk0
ZTRmY2IzZTBlOGFmNDZjYzA3NDUuLmMxNTM0ZDgyM2Q4YjExZWEyODBhY2FhNzg0NTk2MTkyNjg0
MDBiNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMDMtMTkgIEppZXdlbiBUYW4g
IDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aE5dIEltcGxlbWVudCBG
SURPIEFwcElEIGV4dGVuc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQzNDkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODI5ODI3Mz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBVMmZIaWRB
dXRoZW50aWNhdG9yOjpjb250aW51ZVNpZ25Db21tYW5kQWZ0ZXJSZXNwb25zZVJlY2VpdmVkLCBp
dCB3aWxsIHJldHJ5IHRoZSBjdXJyZW50IGNvbW1hbmQKKyAgICAgICAgd2l0aCB0aGUgQXBwSUQg
aWYgaXQgZXhpc3RzIHdoZW4gU1dfV1JPTkdfREFUQSBpcyByZWNlaXZlZCBmcm9tIGRldmljZXMu
IE5vdGVkLCBpdCB3aWxsIG5vdCBzZXQKKyAgICAgICAgdGhlIEF1dGhlbnRpY2F0aW9uRXh0ZW5z
aW9uc0NsaWVudE91dHB1dHM6OmFwcGlkIHRvIGZhbHNlIGluIGFueSBjaXJjdW1zdGFuY2VzLiBJ
biBvdGhlciB3b3JkcywgdGhlCisgICAgICAgIGZpZWxkIHdpbGwgYmUgZW1wdHkgaWYgQXBwSUQg
aXMgc3VwcGxpZWQgaW4gQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzIGFuZCBu
b3QgdXNlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9M
b2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRv
cjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyQXR0ZXN0ZWQpOgorICAgICAgICAoV2ViS2l0
OjpMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJVc2VyQ29uc2Vu
dGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9VMmZIaWRB
dXRoZW50aWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VTJmSGlkQXV0aGVudGljYXRvcjo6
aXNzdWVTaWduQ29tbWFuZCk6CisgICAgICAgIChXZWJLaXQ6OlUyZkhpZEF1dGhlbnRpY2F0b3I6
OmNvbnRpbnVlU2lnbkNvbW1hbmRBZnRlclJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkhpZEF1dGhlbnRpY2F0b3IuaDoKKwog
MjAxOS0wMy0xNiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgQVNT
RVJUKGdlc3R1cmVSZWNvZ25pemVyID09IF9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplcikgaW4g
X2RvdWJsZVRhcERpZEZhaWw6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCA1ZjUyYjQxNmJjNzZmNGI3ZjhjYjMxOGJhNWRmZjVmNTZlNTIw
M2U1Li5jNmI1YmMxZmIwMzdiN2MwYmUwNmQzYzJkOTQwYmI5NTEzNjk0YTJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTMwNCw2ICsz
MDQsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaWRsCiAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuaWRsCiskKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckFzc2VydGlv
blJlc3BvbnNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yQXR0ZXN0YXRpb25SZXNwb25zZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXV0
aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAwODNlYTI5NDVlMzczNTAyMTA5ZDMzZGNj
ZmQwZWNjMjIxNDRiMWM5Li4wYjk2YjE3NDI4NTVhMmY1NGVmNjNjOGUwNTU2OWE3Yjc4YjNhNDE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dApAQCAtMTU0LDYgKzE1NCw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQXVkaW9UcmFja0xpc3QuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tMaXN0LmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFja01lZGlhU291cmNlLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1RyYWNr
TWVkaWFTb3VyY2UuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1dGhlbnRpY2F0aW9uRXh0ZW5z
aW9uc0NsaWVudElucHV0cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXV0aGVudGljYXRvckFzc2VydGlv
blJlc3BvbnNlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCBkNTQ2ZDYyMzJiMzg3ODJmYTI1ZTRlYzQxNTA4NmE1MmQ1MjZkYzY5
Li5kMjMyZTlmNDg5MzY1YjgzYjY3N2JmMGQ2Y2RiZjRkN2RmMDMxNmQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM1MSw2ICszNTEsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVu
dElucHV0cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0
aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9u
c0NsaWVudElucHV0cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTJkODQ3MzgwZmE3
OTUzNGE1YmU5MDk4ZjE5YWQxMjljMjM4NTM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1
dHMuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVu
dElucHV0cyB7CisgICAgU3RyaW5nIGFwcGlkOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBPcHRpb25hbDxBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHM+
IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBB
dXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHM6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgYXBwaWQ7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+CitPcHRpb25hbDxBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHM+
IEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0czo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzIHJlc3Vs
dDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gYXBwaWQ7CisgICAgZGVjb2RlciA+PiBhcHBpZDsK
KyAgICBpZiAoIWFwcGlkKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJlc3Vs
dC5hcHBpZCA9IFdURk1vdmUoKmFwcGlkKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0
ZW5zaW9uc0NsaWVudElucHV0cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U5
ZTk3YjhkZDI3NDc2OTRlYTdkZmVjMDlkZTY4MWY0YTI0ZTNiMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRpb25FeHRlbnNpb25z
Q2xpZW50SW5wdXRzLmlkbApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENv
bmRpdGlvbmFsPVdFQl9BVVRITiwKK10gZGljdGlvbmFyeSBBdXRoZW50aWNhdGlvbkV4dGVuc2lv
bnNDbGllbnRJbnB1dHMgeworICAgIFVTVlN0cmluZyBhcHBpZDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGlu
YXRvci5jcHAKaW5kZXggNzgzMDc5OTE2NjdkMDgzYjZhNWYwNmI1MjBhMmRlOTFiOTRiYmNjMC4u
ZDI2M2MxYjgxMzc0YzQxNjZlNTA1MzFmZjUyMTI3ODI2NGQzOTliNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yLmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5o
IgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oIgorI2luY2x1
ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCisjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHBhbC9jcnlwdG8vQ3J5cHRvRGln
ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KQEAgLTc4LDYgKzgwLDI3IEBAIHN0
YXRpYyBWZWN0b3I8dWludDhfdD4gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChjb25zdCBBcnJh
eUJ1ZmZlciYgY2xpZW50RGF0YUpzCiAgICAgcmV0dXJuIGNyeXB0by0+Y29tcHV0ZUhhc2goKTsK
IH0KIAorLy8gVGhlIGZvbGxvd2luZyByb3VnaGx5IGltcGxlbWVudHMgU3RlcCAxLTMgb2YgdGhl
IHNwZWMgdG8gYXZvaWQgdGhlIGNvbXBsZXhpdHkgb2YgbWFraW5nIHVubmVjZXNzYXJ5IG5ldHdv
cmsgcmVxdWVzdHM6CisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4w
LWlkLTIwMTgwMjI3L2ZpZG8tYXBwaWQtYW5kLWZhY2V0cy12Mi4wLWlkLTIwMTgwMjI3Lmh0bWwj
ZGV0ZXJtaW5pbmctaWYtYS1jYWxsZXItcy1mYWNldGlkLWlzLWF1dGhvcml6ZWQtZm9yLWFuLWFw
cGlkCisvLyBJdCBmb2xsb3dzIHdoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGRvLCBzZWU6CisvLyBo
dHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ0OTU5I2M4Cisv
LyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD04
MTgzMDMKK3N0YXRpYyBTdHJpbmcgcHJvY2Vzc0FwcElkRXh0ZW5zaW9uKGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiBmYWNldElkLCBjb25zdCBTdHJpbmcmIGFwcElkKQoreworICAgIC8vIFN0ZXAgMS4g
U2tpcHBlZCBzaW5jZSBmYWNldElkIHNob3VsZCBhbHdheXMgYmUgc2VjdXJlIG9yaWdpbnMuCisg
ICAgQVNTRVJUKFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJlKGZh
Y2V0SWQucHJvdG9jb2woKSkpOworCisgICAgLy8gU3RlcCAyLiBGb2xsb3cgQ2hyb21lIGFuZCBG
aXJlZm94IHRvIHVzZSB0aGUgb3JpZ2luIGRpcmVjdGx5IHdpdGhvdXQgYWRkaW5nIGEgdHJhaWxp
bmcgc2xhc2guCisgICAgaWYgKGFwcElkLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhY2V0
SWQudG9TdHJpbmcoKTsKKworICAgIC8vIFN0ZXAgMy4gUmVsYXggdGhlIGNvbXBhcmlzb24gdG8g
c2FtZSBzaXRlLgorICAgIFVSTCBhcHBJZFVSTChVUkwoKSwgYXBwSWQpOworICAgIGlmICghYXBw
SWRVUkwuaXNWYWxpZCgpIHx8IGZhY2V0SWQucHJvdG9jb2woKSAhPSBhcHBJZFVSTC5wcm90b2Nv
bCgpIHx8IFJlZ2lzdHJhYmxlRG9tYWluKGFwcElkVVJMKSAhPSBSZWdpc3RyYWJsZURvbWFpbjo6
dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QoZmFjZXRJZC5ob3N0KCkpKQorICAgICAgICByZXR1cm4g
U3RyaW5nKCk7CisgICAgcmV0dXJuIGFwcElkOworfQorCiB9IC8vIG5hbWVzcGFjZSBBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5hbAogCiBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvcihzdGQ6OnVuaXF1ZV9wdHI8QXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yQ2xpZW50PiYmIGNsaWVudCkKQEAgLTk1LDcgKzExOCw3IEBAIHZvaWQgQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yOjpjcmVhdGUoY29uc3QgU2VjdXJpdHlPcmlnaW4mIGNhbGxlck9yaWdp
biwgY29uc3QKICAgICB1c2luZyBuYW1lc3BhY2UgQXV0aGVudGljYXRvckNvb3JkaW5hdG9ySW50
ZXJuYWw7CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVudHMgaHR0cHM6Ly93d3cudzMu
b3JnL1RSL3dlYmF1dGhuLyNjcmVhdGVDcmVkZW50aWFsIGFzIG9mIDUgRGVjZW1iZXIgMjAxNy4K
LSAgICAvLyBGSVhNRTogRXh0ZW5zaW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIFNraXAgU3Rl
cCAxMS0xMi4KKyAgICAvLyBFeHRlbnNpb25zIGFyZSBub3Qgc3VwcG9ydGVkLiBTa2lwIFN0ZXAg
MTEtMTIuCiAgICAgLy8gU3RlcCAxLCAzLCAxNiBhcmUgaGFuZGxlZCBieSB0aGUgY2FsbGVyLgog
ICAgIC8vIFN0ZXAgMi4KICAgICBpZiAoIXNhbWVPcmlnaW5XaXRoQW5jZXN0b3JzKSB7CkBAIC0x
NTgsNyArMTgxLDYgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJv
bUV4dGVybmFsU291cmNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJgogICAgIHVzaW5nIG5hbWVzcGFj
ZSBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5hbDsKIAogICAgIC8vIFRoZSBmb2xsb3dp
bmcgaW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI2NyZWF0ZUNyZWRl
bnRpYWwgYXMgb2YgNSBEZWNlbWJlciAyMDE3LgotICAgIC8vIEZJWE1FOiBFeHRlbnNpb25zIGFy
ZSBub3Qgc3VwcG9ydGVkIHlldC4gU2tpcCBTdGVwIDgtOS4KICAgICAvLyBTdGVwIDEsIDMsIDEz
IGFyZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCiAgICAgLy8gU3RlcCAyLgogICAgIGlmICghc2Ft
ZU9yaWdpbldpdGhBbmNlc3RvcnMpIHsKQEAgLTE3Nyw2ICsxOTksMTggQEAgdm9pZCBBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJgogICAgIGlmIChvcHRpb25zLnJwSWQuaXNFbXB0eSgpKQogICAgICAgICBvcHRp
b25zLnJwSWQgPSBjYWxsZXJPcmlnaW4uaG9zdCgpOwogCisgICAgLy8gU3RlcCA4LTkuCisgICAg
Ly8gT25seSBGSURPIEFwcElEIEV4dGVuc2lvbiBpcyBzdXBwb3J0ZWQuCisgICAgaWYgKG9wdGlv
bnMuZXh0ZW5zaW9ucyAmJiAhb3B0aW9ucy5leHRlbnNpb25zLT5hcHBpZC5pc051bGwoKSkgewor
ICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVudHMgaHR0cHM6Ly93d3cudzMub3JnL1RS
L3dlYmF1dGhuLyNzY3RuLWFwcGlkLWV4dGVuc2lvbiBhcyBvZiA0IE1hcmNoIDIwMTkuCisgICAg
ICAgIGF1dG8gYXBwaWQgPSBwcm9jZXNzQXBwSWRFeHRlbnNpb24oY2FsbGVyT3JpZ2luLCBvcHRp
b25zLmV4dGVuc2lvbnMtPmFwcGlkKTsKKyAgICAgICAgaWYgKCFhcHBpZCkgeworICAgICAgICAg
ICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIlRoZSBvcmlnaW4g
b2YgdGhlIGRvY3VtZW50IGlzIG5vdCBhdXRob3JpemVkIGZvciB0aGUgcHJvdmlkZWQgQXBwIElE
LiJfcyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvcHRpb25z
LmV4dGVuc2lvbnMtPmFwcGlkID0gYXBwaWQ7CisgICAgfQorCiAgICAgLy8gU3RlcCAxMC0xMi4K
ICAgICBhdXRvIGNsaWVudERhdGFKc29uID0gcHJvZHVjZUNsaWVudERhdGFKc29uKENsaWVudERh
dGFUeXBlOjpHZXQsIG9wdGlvbnMuY2hhbGxlbmdlLCBjYWxsZXJPcmlnaW4pOwogICAgIGF1dG8g
Y2xpZW50RGF0YUpzb25IYXNoID0gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChjbGllbnREYXRh
SnNvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsLmNwcAppbmRleCBjNmI2ODQ0ZjNkNjk1MDMxZDIxN2VlMTI1MDY5ZDQy
Mzk5NmU2OGEyLi40NzUwODY5OGRkZDI4M2IyMTI0MTY4ZmM2ZjgxNTM5OGFjZTE1NDU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3Jl
ZGVudGlhbC5jcHAKQEAgLTQwLDExICs0MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVmPFB1YmxpY0tleUNyZWRlbnRpYWw+IFB1YmxpY0tleUNyZWRlbnRpYWw6OmNyZWF0ZShSZWY8
QXJyYXlCdWZmZXI+JiYgaWQsIFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiYgcmVzcG9uc2Up
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHVibGljS2V5Q3JlZGVudGlhbChXVEZNb3Zl
KGlkKSwgV1RGTW92ZShyZXNwb25zZSkpKTsKLX0KLQogUmVmUHRyPFB1YmxpY0tleUNyZWRlbnRp
YWw+IFB1YmxpY0tleUNyZWRlbnRpYWw6OnRyeUNyZWF0ZShjb25zdCBQdWJsaWNLZXlDcmVkZW50
aWFsRGF0YSYgZGF0YSkKIHsKICAgICBpZiAoIWRhdGEucmF3SWQgfHwgIWRhdGEuY2xpZW50RGF0
YUpTT04pCkBAIC01NCwyNSArNDksMjYgQEAgUmVmUHRyPFB1YmxpY0tleUNyZWRlbnRpYWw+IFB1
YmxpY0tleUNyZWRlbnRpYWw6OnRyeUNyZWF0ZShjb25zdCBQdWJsaWNLZXlDcmVkZW4KICAgICAg
ICAgaWYgKCFkYXRhLmF0dGVzdGF0aW9uT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHVibGljS2V5Q3JlZGVudGlhbChk
YXRhLnJhd0lkLnJlbGVhc2VOb25OdWxsKCksIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3Bv
bnNlOjpjcmVhdGUoZGF0YS5jbGllbnREYXRhSlNPTi5yZWxlYXNlTm9uTnVsbCgpLCBkYXRhLmF0
dGVzdGF0aW9uT2JqZWN0LnJlbGVhc2VOb25OdWxsKCkpKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFB1YmxpY0tleUNyZWRlbnRpYWwoZGF0YS5yYXdJZC5yZWxlYXNlTm9uTnVsbCgp
LCBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKGRhdGEuY2xpZW50RGF0
YUpTT04ucmVsZWFzZU5vbk51bGwoKSwgZGF0YS5hdHRlc3RhdGlvbk9iamVjdC5yZWxlYXNlTm9u
TnVsbCgpKSwgeyBkYXRhLmFwcGlkIH0pKTsKICAgICB9CiAKICAgICBpZiAoIWRhdGEuYXV0aGVu
dGljYXRvckRhdGEgfHwgIWRhdGEuc2lnbmF0dXJlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFB1YmxpY0tleUNyZWRlbnRpYWwoZGF0YS5yYXdJ
ZC5yZWxlYXNlTm9uTnVsbCgpLCBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OmNyZWF0
ZShkYXRhLmNsaWVudERhdGFKU09OLnJlbGVhc2VOb25OdWxsKCksIGRhdGEuYXV0aGVudGljYXRv
ckRhdGEucmVsZWFzZU5vbk51bGwoKSwgZGF0YS5zaWduYXR1cmUucmVsZWFzZU5vbk51bGwoKSwg
V1RGTW92ZShkYXRhLnVzZXJIYW5kbGUpKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFB1
YmxpY0tleUNyZWRlbnRpYWwoZGF0YS5yYXdJZC5yZWxlYXNlTm9uTnVsbCgpLCBBdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2U6OmNyZWF0ZShkYXRhLmNsaWVudERhdGFKU09OLnJlbGVhc2VO
b25OdWxsKCksIGRhdGEuYXV0aGVudGljYXRvckRhdGEucmVsZWFzZU5vbk51bGwoKSwgZGF0YS5z
aWduYXR1cmUucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShkYXRhLnVzZXJIYW5kbGUpKSwgeyBk
YXRhLmFwcGlkIH0pKTsKIH0KIAotUHVibGljS2V5Q3JlZGVudGlhbDo6UHVibGljS2V5Q3JlZGVu
dGlhbChSZWY8QXJyYXlCdWZmZXI+JiYgaWQsIFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiYg
cmVzcG9uc2UpCitQdWJsaWNLZXlDcmVkZW50aWFsOjpQdWJsaWNLZXlDcmVkZW50aWFsKFJlZjxB
cnJheUJ1ZmZlcj4mJiBpZCwgUmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJiByZXNwb25zZSwg
QXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cyYmIGV4dGVuc2lvbnMpCiAgICAg
OiBCYXNpY0NyZWRlbnRpYWwoV1RGOjpiYXNlNjRVUkxFbmNvZGUoaWQtPmRhdGEoKSwgaWQtPmJ5
dGVMZW5ndGgoKSksIFR5cGU6OlB1YmxpY0tleSwgRGlzY292ZXJ5OjpSZW1vdGUpCiAgICAgLCBt
X3Jhd0lkKFdURk1vdmUoaWQpKQogICAgICwgbV9yZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSkK
KyAgICAsIG1fZXh0ZW5zaW9ucyhXVEZNb3ZlKGV4dGVuc2lvbnMpKQogewogfQogCi1FeGNlcHRp
b25Pcjxib29sPiBQdWJsaWNLZXlDcmVkZW50aWFsOjpnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRz
KCkgY29uc3QKK1B1YmxpY0tleUNyZWRlbnRpYWw6OkF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0Ns
aWVudE91dHB1dHMgUHVibGljS2V5Q3JlZGVudGlhbDo6Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0
cygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07
CisgICAgcmV0dXJuIG1fZXh0ZW5zaW9uczsKIH0KIAogdm9pZCBQdWJsaWNLZXlDcmVkZW50aWFs
Ojppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJiBwcm9taXNlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50
aWFsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWwuaAppbmRleCAzMGZjZTQyMDJiZWJhZjBhOTgyZWNhOGZmM2U5ZWMzYjg5YmQ3MjlhLi4xMmRm
MGMyZDY5YzUyY2IxOTk1ZGU0OTdkMTViYjQ4Y2U0YmRmODkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaApAQCAtNDIs
MjMgKzQyLDI2IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YTsKIAogY2xhc3MgUHVi
bGljS2V5Q3JlZGVudGlhbCBmaW5hbCA6IHB1YmxpYyBCYXNpY0NyZWRlbnRpYWwgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8UHVibGljS2V5Q3JlZGVudGlhbD4gY3JlYXRlKFJlZjxBcnJheUJ1
ZmZlcj4mJiBpZCwgUmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJik7CisgICAgc3RydWN0IEF1
dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHMgeworICAgICAgICBPcHRpb25hbDxi
b29sPiBhcHBpZDsKKyAgICB9OworCiAgICAgc3RhdGljIFJlZlB0cjxQdWJsaWNLZXlDcmVkZW50
aWFsPiB0cnlDcmVhdGUoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbERhdGEmKTsKIAogICAgIEFy
cmF5QnVmZmVyKiByYXdJZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmF3SWQucHRyKCk7IH0KICAgICBB
dXRoZW50aWNhdG9yUmVzcG9uc2UqIHJlc3BvbnNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25z
ZS5wdHIoKTsgfQotICAgIC8vIE5vdCBzdXBwb3J0IHlldC4gQWx3YXlzIHRocm93cy4KLSAgICBF
eGNlcHRpb25Pcjxib29sPiBnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgY29uc3Q7CisgICAg
QXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cyBnZXRDbGllbnRFeHRlbnNpb25S
ZXN1bHRzKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9y
bUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoRG9jdW1lbnQmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURM
Qm9vbGVhbj4mJik7CiAKIHByaXZhdGU6Ci0gICAgUHVibGljS2V5Q3JlZGVudGlhbChSZWY8QXJy
YXlCdWZmZXI+JiYgaWQsIFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiYpOworICAgIFB1Ymxp
Y0tleUNyZWRlbnRpYWwoUmVmPEFycmF5QnVmZmVyPiYmIGlkLCBSZWY8QXV0aGVudGljYXRvclJl
c3BvbnNlPiYmLCBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzJiYpOwogCiAg
ICAgVHlwZSBjcmVkZW50aWFsVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFR5cGU6OlB1Ymxp
Y0tleTsgfQogCiAgICAgUmVmPEFycmF5QnVmZmVyPiBtX3Jhd0lkOwogICAgIFJlZjxBdXRoZW50
aWNhdG9yUmVzcG9uc2U+IG1fcmVzcG9uc2U7CisgICAgQXV0aGVudGljYXRpb25FeHRlbnNpb25z
Q2xpZW50T3V0cHV0cyBtX2V4dGVuc2lvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWwuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlD
cmVkZW50aWFsLmlkbAppbmRleCBkNTFmMDZkNDBkZDllNGVjM2M2YTI4OTc2NzI2MjBmZTJiODVm
OTcxLi4zMDcyYzFjZTQ3NzA3ZjRiNGNlOGU4ZTU1OTIyZDY2OTBiNDc3ZDZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bC5pZGwKQEAgLTIzLDggKzIzLDYgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi10eXBlZGVmIGJvb2xlYW4gQXV0aGVudGljYXRpb25FeHRlbnNpb25zOwotCiBb
CiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVVEhOLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViQXV0
aGVudGljYXRpb24sCkBAIC0zMyw3ICszMSwxNCBAQCB0eXBlZGVmIGJvb2xlYW4gQXV0aGVudGlj
YXRpb25FeHRlbnNpb25zOwogXSBpbnRlcmZhY2UgUHVibGljS2V5Q3JlZGVudGlhbCA6IEJhc2lj
Q3JlZGVudGlhbCB7CiAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJheUJ1
ZmZlciByYXdJZDsKICAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEF1dGhlbnRp
Y2F0b3JSZXNwb25zZSByZXNwb25zZTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIEF1dGhlbnRp
Y2F0aW9uRXh0ZW5zaW9ucyBnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCk7CisgICAgQXV0aGVu
dGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cyBnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRz
KCk7CiAKICAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyBQcm9taXNlPGJvb2xlYW4+IGlz
VXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpOwogfTsKKworWwor
ICAgIENvbmRpdGlvbmFsPVdFQl9BVVRITiwKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10g
ZGljdGlvbmFyeSBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzIHsKKyAgICBi
b29sZWFuIGFwcGlkOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgK
aW5kZXggNmY5MjcxYTZkZjM5MTQ1N2JiNzVhZTViN2IwZWQzZWUwNmI4OGIzNi4uNDkxNjQ1ODkx
OTIzMDA1ZjJlMGI2ZmEzZmJjYmU5OTM5NWYzNzk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVU
SE4pCiAKKyNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCIK
ICNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFs
RGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmgiCkBAIC04
Myw2ICs4NCw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsK
ICAgICBPcHRpb25hbDx1bnNpZ25lZD4gdGltZW91dDsKICAgICBWZWN0b3I8UHVibGljS2V5Q3Jl
ZGVudGlhbERlc2NyaXB0b3I+IGV4Y2x1ZGVDcmVkZW50aWFsczsKICAgICBPcHRpb25hbDxBdXRo
ZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE+IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb247CisgICAg
T3B0aW9uYWw8QXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzPiBleHRlbnNpb25z
OyAvLyBBIHBsYWNlIGhvbGRlciwgYnV0IG5ldmVyIHVzZWQuCiAKICAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9w
dGlvbnM+IGRlY29kZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zLmlkbAppbmRleCAzNmUxODBiZWRmYzgyMDFmM2JjNGI1MzVjYWMwZjc0M2M4ZTdjNWY1
Li4wMzNlMGRjODc5NTliNzNmMWI1ZmQ5YmE2YmNjODBiZDFlZWVhZGI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwKQEAgLTM5LDggKzM5LDcgQEAgdHlwZWRl
ZiBsb25nIENPU0VBbGdvcml0aG1JZGVudGlmaWVyOwogICAgIEF1dGhlbnRpY2F0b3JTZWxlY3Rp
b25Dcml0ZXJpYSBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOwogICAgIC8vIEFsd2F5cyAiZGlyZWN0
IiBmb3IgdXMuCiAgICAgLy8gQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZSBhdHRlc3Rh
dGlvbiA9ICJub25lIjsKLSAgICAvLyBOb3Qgc3VwcG9ydCB5ZXQuCi0gICAgLy8gQXV0aGVudGlj
YXRpb25FeHRlbnNpb25zIGV4dGVuc2lvbnM7CisgICAgQXV0aGVudGljYXRpb25FeHRlbnNpb25z
Q2xpZW50SW5wdXRzIGV4dGVuc2lvbnM7CiB9OwogCiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEYXRhLmgKaW5kZXgg
MjEyNmNhYzkyYzQ2MTA0MzYwMzgxOWJhNTJjNzBmY2JkMjdiOTQ5ZC4uN2U2M2JhMzdlNDIyYTcx
YzlhZWYwNjkzZDFjY2Q4ODI5Y2Q0MTU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERhdGEuaApAQCAtNDksNiAr
NDksOSBAQCBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbERhdGEgewogICAgIG11dGFibGUgUmVm
UHRyPEFycmF5QnVmZmVyPiBzaWduYXR1cmU7CiAgICAgbXV0YWJsZSBSZWZQdHI8QXJyYXlCdWZm
ZXI+IHVzZXJIYW5kbGU7CiAKKyAgICAvLyBFeHRlbnNpb25zCisgICAgT3B0aW9uYWw8Ym9vbD4g
YXBwaWQ7CisKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFB1
YmxpY0tleUNyZWRlbnRpYWxEYXRhPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKQEAgLTgxLDYgKzg0
LDkgQEAgdm9pZCBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oc2lnbmF0dXJl
LT5ieXRlTGVuZ3RoKCkpOwogICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNpZ25hdHVyZS0+ZGF0YSgpKSwgc2lnbmF0dXJl
LT5ieXRlTGVuZ3RoKCksIDEpOwogCisgICAgLy8gRW5jb2RlIEFwcElEIGJlZm9yZSB1c2VyIGhh
bmRsZSB0byBhdm9pZCB0aGUgdXNlckhhbmRsZSBmbGFnLgorICAgIGVuY29kZXIgPDwgYXBwaWQ7
CisKICAgICBpZiAoIXVzZXJIYW5kbGUpIHsKICAgICAgICAgZW5jb2RlciA8PCBmYWxzZTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTQ4LDYgKzE1NCwxMiBAQCBPcHRpb25hbDxQdWJsaWNLZXlDcmVk
ZW50aWFsRGF0YT4gUHVibGljS2V5Q3JlZGVudGlhbERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZAogICAgIGlmICghZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2Fz
dDx1aW50OF90Kj4ocmVzdWx0LnNpZ25hdHVyZS0+ZGF0YSgpKSwgc2lnbmF0dXJlTGVuZ3RoLnZh
bHVlKCksIDEpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisgICAgT3B0aW9uYWw8
T3B0aW9uYWw8Ym9vbD4+IGFwcGlkOworICAgIGRlY29kZXIgPj4gYXBwaWQ7CisgICAgaWYgKCFh
cHBpZCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXN1bHQuYXBwaWQgPSBX
VEZNb3ZlKCphcHBpZCk7CisKICAgICBPcHRpb25hbDxib29sPiBoYXNVc2VySGFuZGxlOwogICAg
IGRlY29kZXIgPj4gaGFzVXNlckhhbmRsZTsKICAgICBpZiAoIWhhc1VzZXJIYW5kbGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaAppbmRleCA2YjljYWI3N2Q4NmE2OGY3NmZi
OGJhODhlOTVjMGQ4MzIxYjI0OWNkLi4yMmRhMzI1MWFkMDFmZjVjYzc4NWExZGE3YzhkZjBmZmQz
Zjc3OTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgKQEAgLTI3LDYg
KzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbmNsdWRlICJBdXRoZW50aWNh
dGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCIKICNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIK
ICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIgpAQCAtNDAsNiArNDEsNyBAQCBzdHJ1Y3QgUHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIHsKICAgICBtdXRhYmxlIFN0cmluZyBycElk
OwogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4gYWxsb3dDcmVkZW50
aWFsczsKICAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbiB7
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CisgICAgbXV0YWJsZSBP
cHRpb25hbDxBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHM+IGV4dGVuc2lvbnM7
CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4gZGVjb2RlKERlY29kZXImKTsKQEAgLTQ5LDcgKzUx
LDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyB7CiB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgdGltZW91
dCA8PCBycElkIDw8IGFsbG93Q3JlZGVudGlhbHMgPDwgdXNlclZlcmlmaWNhdGlvbjsKKyAgICBl
bmNvZGVyIDw8IHRpbWVvdXQgPDwgcnBJZCA8PCBhbGxvd0NyZWRlbnRpYWxzIDw8IHVzZXJWZXJp
ZmljYXRpb24gPDwgZXh0ZW5zaW9uczsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAg
LTc0LDYgKzc2LDEyIEBAIE9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cz4gUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOjpkCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAgICAgcmVzdWx0LnVzZXJWZXJpZmljYXRpb24gPSBXVEZNb3ZlKCp1c2Vy
VmVyaWZpY2F0aW9uKTsKIAorICAgIE9wdGlvbmFsPE9wdGlvbmFsPEF1dGhlbnRpY2F0aW9uRXh0
ZW5zaW9uc0NsaWVudElucHV0cz4+IGV4dGVuc2lvbnM7CisgICAgZGVjb2RlciA+PiBleHRlbnNp
b25zOworICAgIGlmICghZXh0ZW5zaW9ucykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICByZXN1bHQuZXh0ZW5zaW9ucyA9IFdURk1vdmUoKmV4dGVuc2lvbnMpOworCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRs
CmluZGV4IGQ2NTFkYjI4YWU2NmQwZmM2OTgyMTBkNjg3MTZkNmUxMTE0MGM4MzkuLjNlMzkyYmU4
NjU3ZjllNWNhMTY2MDE4MmQ4YzNjZWVkYTBhMWZlNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucy5pZGwKQEAgLTMxLDYgKzMxLDUgQEAKICAgICBVU1ZTdHJpbmcgcnBJ
ZDsKICAgICBzZXF1ZW5jZTxQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4gYWxsb3dDcmVk
ZW50aWFscyA9IFtdOwogICAgIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB1c2VyVmVyaWZp
Y2F0aW9uID0gInByZWZlcnJlZCI7Ci0gICAgLy8gTm90IHN1cHBvcnQgeWV0LgotICAgIC8vIEF1
dGhlbnRpY2F0aW9uRXh0ZW5zaW9ucyBleHRlbnNpb25zOworICAgIEF1dGhlbnRpY2F0aW9uRXh0
ZW5zaW9uc0NsaWVudElucHV0cyBleHRlbnNpb25zOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252
ZXJ0ZXIuY3BwCmluZGV4IGQwMzY3MTc4NjdkZDFmOGU5OTU2Njc2MjNhYjVmZjc0NTRmNDVhMmYu
LjEyNDQyYjEyNWM3OTAyOWQ4Y2Y0YTVhYzQxNmRiMTE0ZmIyNTY2MjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJl
c3BvbnNlQ29udmVydGVyLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIE9wdGlvbmFsPFB1YmxpY0tl
eUNyZWRlbnRpYWxEYXRhPiByZWFkQ1RBUE1ha2VDcmVkZW50aWFsUmVzcG9uc2UoY29uc3QgVmVj
dG9yPHVpCiAgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbQ0JPUigiYXR0U3RtdCIpXSA9IFdURk1v
dmUoYXR0U3RtdCk7CiAgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGNib3I6OkNCT1JXcml0
ZXI6OndyaXRlKENCT1IoV1RGTW92ZShhdHRlc3RhdGlvbk9iamVjdE1hcCkpKTsKIAotICAgIHJl
dHVybiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7IEFycmF5QnVmZmVyOjpjcmVhdGUoY3JlZGVu
dGlhbElkLmRhdGEoKSwgY3JlZGVudGlhbElkLnNpemUoKSksIHRydWUsIG51bGxwdHIsIEFycmF5
QnVmZmVyOjpjcmVhdGUoYXR0ZXN0YXRpb25PYmplY3QudmFsdWUoKS5kYXRhKCksIGF0dGVzdGF0
aW9uT2JqZWN0LnZhbHVlKCkuc2l6ZSgpKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9Owor
ICAgIHJldHVybiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7IEFycmF5QnVmZmVyOjpjcmVhdGUo
Y3JlZGVudGlhbElkLmRhdGEoKSwgY3JlZGVudGlhbElkLnNpemUoKSksIHRydWUsIG51bGxwdHIs
IEFycmF5QnVmZmVyOjpjcmVhdGUoYXR0ZXN0YXRpb25PYmplY3QudmFsdWUoKS5kYXRhKCksIGF0
dGVzdGF0aW9uT2JqZWN0LnZhbHVlKCkuc2l6ZSgpKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgV1RGOjpudWxsb3B0IH07CiB9CiAKIE9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxEYXRh
PiByZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaW5C
dWZmZXIpCkBAIC0xNzAsNyArMTcwLDcgQEAgT3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbERh
dGE+IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQKICAgICAg
ICAgdXNlckhhbmRsZSA9IEFycmF5QnVmZmVyOjpjcmVhdGUoaWQuZGF0YSgpLCBpZC5zaXplKCkp
OwogICAgIH0KIAotICAgIHJldHVybiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7IFdURk1vdmUo
Y3JlZGVudGlhbElkKSwgZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIEFycmF5QnVmZmVyOjpjcmVh
dGUoYXV0aERhdGEuZGF0YSgpLCBhdXRoRGF0YS5zaXplKCkpLCBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KHNpZ25hdHVyZS5kYXRhKCksIHNpZ25hdHVyZS5zaXplKCkpLCBXVEZNb3ZlKHVzZXJIYW5kbGUp
IH07CisgICAgcmV0dXJuIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgV1RGTW92ZShjcmVkZW50
aWFsSWQpLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdXRo
RGF0YS5kYXRhKCksIGF1dGhEYXRhLnNpemUoKSksIEFycmF5QnVmZmVyOjpjcmVhdGUoc2lnbmF0
dXJlLmRhdGEoKSwgc2lnbmF0dXJlLnNpemUoKSksIFdURk1vdmUodXNlckhhbmRsZSksIFdURjo6
bnVsbG9wdCB9OwogfQogCiBPcHRpb25hbDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiBy
ZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGluQnVmZmVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZkNvbW1h
bmRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
VTJmQ29tbWFuZENvbnN0cnVjdG9yLmNwcAppbmRleCBkOWU3NzcxMmVmMWRiMjI3MDJkNGFmNDA5
N2Y1MGZjY2RhYjUyZWZjLi42MTY1Yjg4MTRjM2RkNDA1YTE2MDNiYjJkY2JjYzI2YmM2YTc4NmYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmQ29t
bWFuZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vVTJmQ29tbWFuZENvbnN0cnVjdG9yLmNwcApAQCAtMTE0LDEyICsxMTQsMTUgQEAgT3B0
aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBjb252ZXJ0VG9VMmZDaGVja09ubHlTaWduQ29tbWFuZChj
b25zdCBWZWN0b3I8dWludDhfdD4KICAgICByZXR1cm4gY29uc3RydWN0VTJmU2lnbkNvbW1hbmQo
cHJvZHVjZVJwSWRIYXNoKHJlcXVlc3QucnAuaWQpLCBjbGllbnREYXRhSGFzaCwga2V5SGFuZGxl
LmlkVmVjdG9yLCB0cnVlIC8qIGNoZWNrT25seSAqLyk7CiB9CiAKLU9wdGlvbmFsPFZlY3Rvcjx1
aW50OF90Pj4gY29udmVydFRvVTJmU2lnbkNvbW1hbmQoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBj
bGllbnREYXRhSGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBy
ZXF1ZXN0LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleUhhbmRsZSwgYm9vbCBjaGVja09ubHkp
CitPcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGNvbnZlcnRUb1UyZlNpZ25Db21tYW5kKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgY2xpZW50RGF0YUhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyYgcmVxdWVzdCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXlIYW5k
bGUsIGJvb2wgaXNBcHBJZCkKIHsKICAgICBpZiAoIWlzQ29udmVydGlibGVUb1UyZlNpZ25Db21t
YW5kKHJlcXVlc3QpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJu
IGNvbnN0cnVjdFUyZlNpZ25Db21tYW5kKHByb2R1Y2VScElkSGFzaChyZXF1ZXN0LnJwSWQpLCBj
bGllbnREYXRhSGFzaCwga2V5SGFuZGxlLCBjaGVja09ubHkpOworICAgIGlmICghaXNBcHBJZCkK
KyAgICAgICAgcmV0dXJuIGNvbnN0cnVjdFUyZlNpZ25Db21tYW5kKHByb2R1Y2VScElkSGFzaChy
ZXF1ZXN0LnJwSWQpLCBjbGllbnREYXRhSGFzaCwga2V5SGFuZGxlLCBmYWxzZSk7CisgICAgQVNT
RVJUKHJlcXVlc3QuZXh0ZW5zaW9ucyAmJiAhcmVxdWVzdC5leHRlbnNpb25zLT5hcHBpZC5pc051
bGwoKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFUyZlNpZ25Db21tYW5kKHByb2R1Y2VScElkSGFz
aChyZXF1ZXN0LmV4dGVuc2lvbnMtPmFwcGlkKSwgY2xpZW50RGF0YUhhc2gsIGtleUhhbmRsZSwg
ZmFsc2UpOwogfQogCiBWZWN0b3I8dWludDhfdD4gY29uc3RydWN0Qm9ndXNVMmZSZWdpc3RyYXRp
b25Db21tYW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9VMmZDb21tYW5kQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vZmlkby9VMmZDb21tYW5kQ29uc3RydWN0b3IuaAppbmRleCAwN2UxNmU1Y2Y1NzVhMmU4
NDBjOTRiMDUyZTk5YWE1NDU3Yjg2ZWZkLi5lZWJlMjkyZmYyYWM0N2ZmY2EzNzk0MjBkNWRlYWFm
ZTc0NmM5ZDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vVTJmQ29tbWFuZENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL1UyZkNvbW1hbmRDb25zdHJ1Y3Rvci5oCkBAIC02Miw3ICs2Miw3IEBAIFdF
QkNPUkVfRVhQT1JUIE9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gY29udmVydFRvVTJmUmVnaXN0
ZXJDb21tYW5kKGNvbnN0IFZlY3RvCiBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxWZWN0b3I8dWlu
dDhfdD4+IGNvbnZlcnRUb1UyZkNoZWNrT25seVNpZ25Db21tYW5kKGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgY2xpZW50RGF0YUhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMmLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3Jp
cHRvciYpOwogCiAvLyBFeHRyYWN0cyBBUERVIGVuY29kZWQgVTJGIHNpZ24gY29tbWFuZCBmcm9t
IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy4KLVdFQkNPUkVfRVhQT1JUIE9wdGlv
bmFsPFZlY3Rvcjx1aW50OF90Pj4gY29udmVydFRvVTJmU2lnbkNvbW1hbmQoY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBjbGllbnREYXRhSGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXlIYW5kbGUsIGJv
b2wgY2hlY2tPbmx5ID0gZmFsc2UpOworV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8VmVjdG9yPHVp
bnQ4X3Q+PiBjb252ZXJ0VG9VMmZTaWduQ29tbWFuZChjb25zdCBWZWN0b3I8dWludDhfdD4mIGNs
aWVudERhdGFIYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleUhhbmRsZSwgYm9vbCBpc0FwcElkID0g
ZmFsc2UpOwogCiBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gY29uc3RydWN0Qm9ndXNV
MmZSZWdpc3RyYXRpb25Db21tYW5kKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCmluZGV4
IGNiNDY3ODE2OGI0YjgyZDFlNGFlN2UwYTc3Y2QxYTI1NGE4NzM2MjQuLjMyYTE4NTNiYWM0NzA2
MDU5NDUwNGI2NmE5Nzk4YWQzOTU2M2U2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcApA
QCAtMTcwLDcgKzE3MCw3IEBAIE9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFk
VTJmUmVnaXN0ZXJSZXNwb25zZShjb25zdCBTdHJpbmcmIHJwSWQsIGNvCiAKICAgICBhdXRvIGF0
dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRh
KSwgImZpZG8tdTJmIiwgV1RGTW92ZShmaWRvQXR0ZXN0YXRpb25TdGF0ZW1lbnQpKTsKIAotICAg
IHJldHVybiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7IEFycmF5QnVmZmVyOjpjcmVhdGUoY3Jl
ZGVudGlhbElkLmRhdGEoKSwgY3JlZGVudGlhbElkLnNpemUoKSksIHRydWUsIG51bGxwdHIsIEFy
cmF5QnVmZmVyOjpjcmVhdGUoYXR0ZXN0YXRpb25PYmplY3QuZGF0YSgpLCBhdHRlc3RhdGlvbk9i
amVjdC5zaXplKCkpLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07CisgICAgcmV0dXJuIFB1
YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFsSWQu
ZGF0YSgpLCBjcmVkZW50aWFsSWQuc2l6ZSgpKSwgdHJ1ZSwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6
OmNyZWF0ZShhdHRlc3RhdGlvbk9iamVjdC5kYXRhKCksIGF0dGVzdGF0aW9uT2JqZWN0LnNpemUo
KSksIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIFdURjo6bnVsbG9wdCB9OwogfQogCiBPcHRp
b25hbDxQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZFUyZlNpZ25SZXNwb25zZShjb25zdCBT
dHJpbmcmIHJwSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5SGFuZGxlLCBjb25zdCBWZWN0
b3I8dWludDhfdD4mIHUyZkRhdGEpCkBAIC0xODYsNyArMTg2LDcgQEAgT3B0aW9uYWw8UHVibGlj
S2V5Q3JlZGVudGlhbERhdGE+IHJlYWRVMmZTaWduUmVzcG9uc2UoY29uc3QgU3RyaW5nJiBycElk
LCBjb25zdAogICAgIGNvdW50ZXIgKz0gdTJmRGF0YVtjb3VudGVySW5kZXggKyAzXTsKICAgICBh
dXRvIGF1dGhEYXRhID0gYnVpbGRBdXRoRGF0YShycElkLCBmbGFncywgY291bnRlciwgeyB9KTsK
IAotICAgIHJldHVybiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7IEFycmF5QnVmZmVyOjpjcmVh
dGUoa2V5SGFuZGxlLmRhdGEoKSwga2V5SGFuZGxlLnNpemUoKSksIGZhbHNlLCBudWxscHRyLCBu
dWxscHRyLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF1dGhEYXRhLmRhdGEoKSwgYXV0aERhdGEuc2l6
ZSgpKSwgQXJyYXlCdWZmZXI6OmNyZWF0ZSh1MmZEYXRhLmRhdGEoKSArIHNpZ25hdHVyZUluZGV4
LCB1MmZEYXRhLnNpemUoKSAtIHNpZ25hdHVyZUluZGV4KSwgbnVsbHB0ciB9OworICAgIHJldHVy
biBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7IEFycmF5QnVmZmVyOjpjcmVhdGUoa2V5SGFuZGxl
LmRhdGEoKSwga2V5SGFuZGxlLnNpemUoKSksIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBBcnJh
eUJ1ZmZlcjo6Y3JlYXRlKGF1dGhEYXRhLmRhdGEoKSwgYXV0aERhdGEuc2l6ZSgpKSwgQXJyYXlC
dWZmZXI6OmNyZWF0ZSh1MmZEYXRhLmRhdGEoKSArIHNpZ25hdHVyZUluZGV4LCB1MmZEYXRhLnNp
emUoKSAtIHNpZ25hdHVyZUluZGV4KSwgbnVsbHB0ciwgV1RGOjpudWxsb3B0IH07CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIGZpZG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNWUyOTVhYzQxNDcwZjk5NzM0YTM0
ZTk1NTM5YWIyNGQ3ZGE4NzhmYi4uMmRkZWM0NTVmZDQ3OGI2MTJhNzliOTI4N2E4NjEzNGIzZDUx
ZTdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTI1NzEsNiArMjU3MSw3IEBAIEpTQXVkaW9MaXN0ZW5l
ci5jcHAKIEpTQXVkaW9Ob2RlLmNwcAogSlNBdWRpb1BhcmFtLmNwcAogSlNBdWRpb1Byb2Nlc3Np
bmdFdmVudC5jcHAKK0pTQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmNwcAog
SlNBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwCiBKU0F1dGhlbnRpY2F0b3JBdHRl
c3RhdGlvblJlc3BvbnNlLmNwcAogSlNBdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWNj
NmU3ODhiMmEzODE0MTQ5Yjk4M2EwNjk0ZDU1Nzk3ZThiNTBhNi4uZjljMjdkODgwYWJhZmM0MTM2
MTMwMmI3NjVhYjkxN2ZjZTQ2NjFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTg2Niw2ICsxODY2LDcgQEAKIAkJNTdEMDAx
OEQxREQ1NDEzMjAwRUQxOUQ5IC8qIEpTQ3J5cHRvS2V5VXNhZ2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RDAwMThDMURENTQxMzIwMEVEMTlEOSAv
KiBKU0NyeXB0b0tleVVzYWdlLmggKi87IH07CiAJCTU3RDg0NjJFMUZFQUY2OTkwMENBMzY4MiAv
KiBQdWJsaWNLZXlDcmVkZW50aWFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1N0Q4NDYyQjFGRUFGNjhGMDBDQTM2ODIgLyogUHVibGljS2V5Q3JlZGVu
dGlhbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTU3RDg0NjM1MUZFQUZDRDMwMENBMzY4MiAvKiBKU1B1YmxpY0tleUNyZWRlbnRpYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RDg0NjMwMUZFQUZD
MkYwMENBMzY4MiAvKiBKU1B1YmxpY0tleUNyZWRlbnRpYWwuaCAqLzsgfTsKKwkJNTdEQTQ3QjAy
MjQwMzRFNDAwMkE0NjEyIC8qIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQTQ3QTUy
MjQwMUUwRjAwMkE0NjEyIC8qIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU3RENF
RDc0MjE0MzA1RjAwMDE2Qjg0NyAvKiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VENzIyMTQzMDVGMDAw
MTZCODQ3IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTdEQ0VEOTAyMTQ4N0ZGNzAwMTZCODQ3IC8q
IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3RENFRDhDMjE0ODdFREIwMDE2Qjg0NyAvKiBBdXRoZW50aWNhdG9y
VHJhbnNwb3J0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNTdEQ0VEOTgyMTQ4ODIxNjAwMTZCODQ3IC8qIEpTQXV0aGVudGljYXRvclRyYW5zcG9y
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VE
OTIyMTQ4ODBDNjAwMTZCODQ3IC8qIEpTQXV0aGVudGljYXRvclRyYW5zcG9ydC5oICovOyB9OwpA
QCAtODg2NCw2ICs4ODY1LDEwIEBACiAJCTU3RDg0NjJEMUZFQUY2OEYwMENBMzY4MiAvKiBQdWJs
aWNLZXlDcmVkZW50aWFsLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQdWJsaWNLZXlDcmVkZW50aWFsLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdEODQ2MzAxRkVBRkMyRjAwQ0EzNjgyIC8qIEpTUHVi
bGljS2V5Q3JlZGVudGlhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1B1
YmxpY0tleUNyZWRlbnRpYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdEODQ2
MzExRkVBRkMyRjAwQ0EzNjgyIC8qIEpTUHVibGljS2V5Q3JlZGVudGlhbC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0RBNDdBNTIyNDAxRTBGMDAyQTQ2MTIgLyog
QXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1
dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1N0RBNDdBNzIyNDAxRTBGMDAyQTQ2MTIgLyogQXV0aGVudGljYXRpb25FeHRl
bnNpb25zQ2xpZW50SW5wdXRzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGll
bnRJbnB1dHMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0RBNDdBQzIyNDAz
MkRDMDAyQTQ2MTIgLyogSlNBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0RBNDdBRDIyNDAzMkREMDAy
QTQ2MTIgLyogSlNBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdEQ0VENzIyMTQzMDVGMDAwMTZCODQ3IC8qIFB1Ymxp
Y0tleUNyZWRlbnRpYWxEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1YmxpY0tleUNyZWRlbnRpYWxE
YXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFRDhDMjE0ODdFREIwMDE2
Qjg0NyAvKiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRp
Y2F0b3JUcmFuc3BvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdEQ0VEOEUy
MTQ4N0VEQjAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1dGhl
bnRpY2F0b3JUcmFuc3BvcnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk4
NzMsNiArMTk4NzgsOCBAQAogCQkJCTU3MTUyQjUzMjFDQjJDRTMwMDBDMzdDQSAvKiBhcGR1ICov
LAogCQkJCTU3MzAzQkIzMjAwNkM2RUQwMDM1NTk2NSAvKiBjYm9yICovLAogCQkJCTU3OEE0QkZB
MjE2NkFFMDAwMEQwOEYzNCAvKiBmaWRvICovLAorCQkJCTU3REE0N0E1MjI0MDFFMEYwMDJBNDYx
MiAvKiBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCAqLywKKwkJCQk1N0RB
NDdBNzIyNDAxRTBGMDAyQTQ2MTIgLyogQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5w
dXRzLmlkbCAqLywKIAkJCQk1NzMwM0MyNzIwMDlCMkZDMDAzNTU5NjUgLyogQXV0aGVudGljYXRv
ckFzc2VydGlvblJlc3BvbnNlLmggKi8sCiAJCQkJNTczMDNDMjkyMDA5QjJGQzAwMzU1OTY1IC8q
IEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5pZGwgKi8sCiAJCQkJNTczMDNDMUIyMDA5
QTk4NjAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmggKi8sCkBA
IC0xOTkwOSw2ICsxOTkxNiw4IEBACiAJCTU3RDg0NjJGMUZFQUZCMDUwMENBMzY4MiAvKiBXZWJB
dXRoTiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTdE
QTQ3QUMyMjQwMzJEQzAwMkE0NjEyIC8qIEpTQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50
SW5wdXRzLmNwcCAqLywKKwkJCQk1N0RBNDdBRDIyNDAzMkREMDAyQTQ2MTIgLyogSlNBdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCAqLywKIAkJCQk1NzMwM0MyRTIwMDlCN0RB
MDAzNTU5NjUgLyogSlNBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwICovLAogCQkJ
CTU3MzAzQzJEMjAwOUI3RDkwMDM1NTk2NSAvKiBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZS5oICovLAogCQkJCTU3MzAzQzIwMjAwOUFFRjUwMDM1NTk2NSAvKiBKU0F1dGhlbnRpY2F0
b3JBdHRlc3RhdGlvblJlc3BvbnNlLmNwcCAqLywKQEAgLTI4NjA3LDYgKzI4NjE2LDcgQEAKIAkJ
CQk3RUU2ODQ2MTEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzNEY3MTNBMEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZUJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjQ3NDg0MTBBQTE2MUQw
MEI3OTQ5MyAvKiBBdXRoZW50aWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdE
QTQ3QjAyMjQwMzRFNDAwMkE0NjEyIC8qIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElu
cHV0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2NEMwQ0U5MjM0RTAwN0VGM0NEIC8qIEF1
dGhlbnRpY2F0aW9uTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0MyQzIwMDlCNEE4MDAz
NTU5NjUgLyogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NzMwM0MxRjIwMDlBQjQyMDAzNTU5NjUgLyogQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLApAQCAtMzA4NjMsNiArMzA4NzMsOCBAQAogCQkJCTQ5
RTkxMUM3MEVGODZENDcwMDlEMENBRiAvKiBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDQkM4REFEMUFBQTMwMjIwMEUxQzgwMyAvKiBNZWRpYUFjY2Vzc2li
aWxpdHlTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxQkNDNjExMTI0REZDQjAwQkU3
MEREIC8qIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RDQzlC
Q0YyMjM4N0U5QTAwRkZCNTFDIC8qIE1lZGlhQ2FwYWJpbGl0aWVzRGVjb2RpbmdJbmZvLmggaW4g
SGVhZGVycyAqLywKKwkJCQlDRENDOUJEMTIyMzg3RUFBMDBGRkI1MUMgLyogTWVkaWFDYXBhYmls
aXRpZXNFbmNvZGluZ0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTNBMTdEMTZFMUMw
MDQyMEFBMSAvKiBNZWRpYUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTcyNTNB
QjEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sRWxlbWVudHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCURFQkNDREQ0MTY2NDZFQUYwMEE0NTJFMSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50VHlw
ZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMzIxNjYsNyArMzIxNzgsNiBAQAogCQkJCUM2NTA0NkE5
MTY3QkZCNTUwMENDMkE0RCAvKiBUZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZyYWdtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkyNkU5NDRERDFBQzRCNEVBMDA3Qjg1QjUgLyogVGVybS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU1MEI2QTYwOTlERjAyNzAwOTBENzgxIC8qIFRleHQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUNEQ0M5QkQxMjIzODdFQUEwMEZGQjUxQyAvKiBNZWRpYUNhcGFiaWxpdGll
c0VuY29kaW5nSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTcwOTlFNjQ5MjAwNTZF
NTgxIC8qIFRleHRBZmZpbml0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3QjJEQjUxNTg2QUJB
RDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY1NERDRTYxODgxMDUxRDAwM0VFREJCIC8qIFRleHRBdXRvU2l6aW5nLmggaW4gSGVhZGVy
cyAqLywKQEAgLTMyMjYwLDcgKzMyMjcxLDYgQEAKIAkJCQk0OUU5MTFDNDBFRjg2RDQ3MDA5RDBD
QUYgLyogVHJhbnNmb3JtYXRpb25NYXRyaXguaCBpbiBIZWFkZXJzICovLAogCQkJCUZCNDg0RjRE
MTcxRjgyMUUwMDA0MDc1NSAvKiBUcmFuc2Zvcm1GdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ5RTkxMUNFMEVGODZENDcwMDlEMENBRiAvKiBUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBI
ZWFkZXJzICovLAotCQkJCUNEQ0M5QkNGMjIzODdFOUEwMEZGQjUxQyAvKiBNZWRpYUNhcGFiaWxp
dGllc0RlY29kaW5nSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFOTExRDAwRUY4NkQ0NzAw
OUQwQ0FGIC8qIFRyYW5zZm9ybU9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVEQjFC
QzZBMTA3MTVBNjQwMEVGQUE0OSAvKiBUcmFuc2Zvcm1Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ5NDVCRkQ0MTNDRjgwOTAwMENDM0IzOCAvKiBUcmFuc2Zvcm1TdGF0ZS5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KaW5kZXggNGUz
ZDExNDIxNGUxNmRiMDBhZDlkMDc2MDQzZmJmMmI2MWFiOWE5OC4uNjlmZmVkYmFjYzc5NGU5MjY4
Y2E4NjM1N2M5YjI4NDdhZGI3ZTJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVu
dGljYXRvci5tbQpAQCAtMzI2LDcgKzMyNiw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpj
b250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJBdHRlc3RlZChTZWNLZXlSZWYgcHJpdmF0ZUtlCiAg
ICAgfQogICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0
KFdURk1vdmUoYXV0aERhdGEpLCAiQXBwbGUiLCBXVEZNb3ZlKGF0dGVzdGF0aW9uU3RhdGVtZW50
TWFwKSk7CiAKLSAgICByZWNlaXZlUmVzcG9uZChQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7IEFy
cmF5QnVmZmVyOjpjcmVhdGUoY3JlZGVudGlhbElkLmRhdGEoKSwgY3JlZGVudGlhbElkLnNpemUo
KSksIHRydWUsIG51bGxwdHIsIEFycmF5QnVmZmVyOjpjcmVhdGUoYXR0ZXN0YXRpb25PYmplY3Qu
ZGF0YSgpLCBhdHRlc3RhdGlvbk9iamVjdC5zaXplKCkpLCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyIH0pOworICAgIHJlY2VpdmVSZXNwb25kKFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgQXJy
YXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFsSWQuZGF0YSgpLCBjcmVkZW50aWFsSWQuc2l6ZSgp
KSwgdHJ1ZSwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9iamVjdC5k
YXRhKCksIGF0dGVzdGF0aW9uT2JqZWN0LnNpemUoKSksIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIFdURjo6bnVsbG9wdCB9KTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIH0K
IApAQCAtNDYzLDcgKzQ2Myw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdl
dEFzc2VydGlvbkFmdGVyVXNlckNvbnNlbnRlZChMb2NhbENvbm5lY3Rpb246CiAgICAgfQogCiAg
ICAgLy8gU3RlcCAxMy4KLSAgICByZWNlaXZlUmVzcG9uZChQdWJsaWNLZXlDcmVkZW50aWFsRGF0
YSB7IEFycmF5QnVmZmVyOjpjcmVhdGUoY3JlZGVudGlhbElkLmRhdGEoKSwgY3JlZGVudGlhbElk
LnNpemUoKSksIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF1
dGhEYXRhLmRhdGEoKSwgYXV0aERhdGEuc2l6ZSgpKSwgQXJyYXlCdWZmZXI6OmNyZWF0ZShzaWdu
YXR1cmUuZGF0YSgpLCBzaWduYXR1cmUuc2l6ZSgpKSwgQXJyYXlCdWZmZXI6OmNyZWF0ZSh1c2Vy
aGFuZGxlLmRhdGEoKSwgdXNlcmhhbmRsZS5zaXplKCkpIH0pOworICAgIHJlY2VpdmVSZXNwb25k
KFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFs
SWQuZGF0YSgpLCBjcmVkZW50aWFsSWQuc2l6ZSgpKSwgZmFsc2UsIG51bGxwdHIsIG51bGxwdHIs
IEFycmF5QnVmZmVyOjpjcmVhdGUoYXV0aERhdGEuZGF0YSgpLCBhdXRoRGF0YS5zaXplKCkpLCBB
cnJheUJ1ZmZlcjo6Y3JlYXRlKHNpZ25hdHVyZS5kYXRhKCksIHNpZ25hdHVyZS5zaXplKCkpLCBB
cnJheUJ1ZmZlcjo6Y3JlYXRlKHVzZXJoYW5kbGUuZGF0YSgpLCB1c2VyaGFuZGxlLnNpemUoKSks
IFdURjo6bnVsbG9wdCB9KTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlk
by9VMmZIaWRBdXRoZW50aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL2ZpZG8vVTJmSGlkQXV0aGVudGljYXRvci5jcHAKaW5kZXggODQ0N2Y0MmY2
M2IzOGFlYWQ1M2VlOWI1N2M0NWZiM2IyOGViZmIxMi4uZWIzZDE3ZDgyZTNmNDgzMzc0YzI5MTA2
NjE3YmE1MzI3MzQxMDNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vZmlkby9VMmZIaWRBdXRoZW50aWNhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkhpZEF1dGhlbnRpY2F0
b3IuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBVMmZIaWRBdXRoZW50aWNhdG9yOjppc3N1
ZVNpZ25Db21tYW5kKHNpemVfdCBpbmRleCkKICAgICAgICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0
aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIk5vIGNyZWRlbnRpYWxzIGZyb20gdGhlIGFsbG93
Q3JlZGVudGlhbHMgbGlzdCBpcyBmb3VuZCBpbiB0aGUgYXV0aGVudGljYXRvci4iX3MgfSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgYXV0byB1MmZDbWQgPSBjb252ZXJ0VG9VMmZTaWdu
Q29tbWFuZChyZXF1ZXN0RGF0YSgpLmhhc2gsIHJlcXVlc3REYXRhKCkucmVxdWVzdE9wdGlvbnMs
IHJlcXVlc3REYXRhKCkucmVxdWVzdE9wdGlvbnMuYWxsb3dDcmVkZW50aWFsc1tpbmRleF0uaWRW
ZWN0b3IpOworICAgIGF1dG8gdTJmQ21kID0gY29udmVydFRvVTJmU2lnbkNvbW1hbmQocmVxdWVz
dERhdGEoKS5oYXNoLCByZXF1ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25zLCByZXF1ZXN0RGF0YSgp
LnJlcXVlc3RPcHRpb25zLmFsbG93Q3JlZGVudGlhbHNbaW5kZXhdLmlkVmVjdG9yLCBtX2lzQXBw
SWQpOwogICAgIEFTU0VSVCh1MmZDbWQpOwogICAgIGlzc3VlTmV3Q29tbWFuZChXVEZNb3ZlKCp1
MmZDbWQpLCBDb21tYW5kVHlwZTo6U2lnbkNvbW1hbmQpOwogfQpAQCAtMjAwLDExICsyMDAsMTkg
QEAgdm9pZCBVMmZIaWRBdXRoZW50aWNhdG9yOjpjb250aW51ZVNpZ25Db21tYW5kQWZ0ZXJSZXNw
b25zZVJlY2VpdmVkKEFwZHVSZXNwb25zZSYKIHsKICAgICBzd2l0Y2ggKGFwZHVSZXNwb25zZS5z
dGF0dXMoKSkgewogICAgIGNhc2UgQXBkdVJlc3BvbnNlOjpTdGF0dXM6OlNXX05PX0VSUk9SOiB7
Ci0gICAgICAgIGF1dG8gcmVzcG9uc2UgPSByZWFkVTJmU2lnblJlc3BvbnNlKHJlcXVlc3REYXRh
KCkucmVxdWVzdE9wdGlvbnMucnBJZCwgcmVxdWVzdERhdGEoKS5yZXF1ZXN0T3B0aW9ucy5hbGxv
d0NyZWRlbnRpYWxzW21fbmV4dExpc3RJbmRleCAtIDFdLmlkVmVjdG9yLCBhcGR1UmVzcG9uc2Uu
ZGF0YSgpKTsKKyAgICAgICAgT3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlc3Bv
bnNlOworICAgICAgICBpZiAobV9pc0FwcElkKSB7CisgICAgICAgICAgICBBU1NFUlQocmVxdWVz
dERhdGEoKS5yZXF1ZXN0T3B0aW9ucy5leHRlbnNpb25zICYmICFyZXF1ZXN0RGF0YSgpLnJlcXVl
c3RPcHRpb25zLmV4dGVuc2lvbnMtPmFwcGlkLmlzTnVsbCgpKTsKKyAgICAgICAgICAgIHJlc3Bv
bnNlID0gcmVhZFUyZlNpZ25SZXNwb25zZShyZXF1ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25zLmV4
dGVuc2lvbnMtPmFwcGlkLCByZXF1ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25zLmFsbG93Q3JlZGVu
dGlhbHNbbV9uZXh0TGlzdEluZGV4IC0gMV0uaWRWZWN0b3IsIGFwZHVSZXNwb25zZS5kYXRhKCkp
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJlc3BvbnNlID0gcmVhZFUyZlNpZ25SZXNw
b25zZShyZXF1ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25zLnJwSWQsIHJlcXVlc3REYXRhKCkucmVx
dWVzdE9wdGlvbnMuYWxsb3dDcmVkZW50aWFsc1ttX25leHRMaXN0SW5kZXggLSAxXS5pZFZlY3Rv
ciwgYXBkdVJlc3BvbnNlLmRhdGEoKSk7CiAgICAgICAgIGlmICghcmVzcG9uc2UpIHsKICAgICAg
ICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBVbmtub3duRXJyb3IsICJDb3Vs
ZG4ndCBwYXJzZSB0aGUgVTJGIHNpZ24gcmVzcG9uc2UuIl9zIH0pOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CisgICAgICAgIGlmIChtX2lzQXBwSWQpCisgICAgICAgICAgICByZXNw
b25zZS0+YXBwaWQgPSB0cnVlOworCiAgICAgICAgIHJlY2VpdmVSZXNwb25kKFdURk1vdmUoKnJl
c3BvbnNlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMTIsNiArMjIwLDE3IEBAIHZv
aWQgVTJmSGlkQXV0aGVudGljYXRvcjo6Y29udGludWVTaWduQ29tbWFuZEFmdGVyUmVzcG9uc2VS
ZWNlaXZlZChBcGR1UmVzcG9uc2UmCiAgICAgICAgIC8vIFBvbGxpbmcgaXMgcmVxdWlyZWQgZHVy
aW5nIHRlc3Qgb2YgdXNlciBwcmVzZW5jZS4KICAgICAgICAgbV9yZXRyeVRpbWVyLnN0YXJ0T25l
U2hvdChTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHJldHJ5VGltZU91dFZhbHVlTXMpKTsKICAg
ICAgICAgcmV0dXJuOworICAgIGNhc2UgQXBkdVJlc3BvbnNlOjpTdGF0dXM6OlNXX1dST05HX0RB
VEE6CisgICAgICAgIGlmIChyZXF1ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25zLmV4dGVuc2lvbnMg
JiYgIXJlcXVlc3REYXRhKCkucmVxdWVzdE9wdGlvbnMuZXh0ZW5zaW9ucy0+YXBwaWQuaXNOdWxs
KCkpIHsKKyAgICAgICAgICAgIGlmICghbV9pc0FwcElkKSB7CisgICAgICAgICAgICAgICAgbV9p
c0FwcElkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpc3N1ZVNpZ25Db21tYW5kKG1fbmV4dExp
c3RJbmRleCAtIDEpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIG1faXNBcHBJZCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlzc3VlU2ln
bkNvbW1hbmQobV9uZXh0TGlzdEluZGV4KyspOworICAgICAgICByZXR1cm47CiAgICAgZGVmYXVs
dDoKICAgICAgICAgaXNzdWVTaWduQ29tbWFuZChtX25leHRMaXN0SW5kZXgrKyk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlk
by9VMmZIaWRBdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9maWRvL1UyZkhpZEF1dGhlbnRpY2F0b3IuaAppbmRleCBjZmYyOTQ3N2VkNjk5
NTFlOTBjYzc4M2FiY2FiNTQ0YmQwMTVjMzQ0Li5hYWFiNjY2ZWQzZjljNWEyNmM1Y2NjMzc1MTE4
NWZlYzM3ODIzODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9maWRvL1UyZkhpZEF1dGhlbnRpY2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkhpZEF1dGhlbnRpY2F0b3IuaApA
QCAtNzQsNiArNzQsNyBAQCBwcml2YXRlOgogICAgIFZlY3Rvcjx1aW50OF90PiBtX2xhc3RDb21t
YW5kOwogICAgIENvbW1hbmRUeXBlIG1fbGFzdENvbW1hbmRUeXBlOwogICAgIHNpemVfdCBtX25l
eHRMaXN0SW5kZXggeyAwIH07CisgICAgYm9vbCBtX2lzQXBwSWQgeyBmYWxzZSB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggNmI4Mjk5MjcyYjY0ZjJhNTEzZjdiMjI4ZGRhZDc2YmRiZjRjMjkw
Mi4uNGUyYWNjN2JiZWZjZTNkOGI0M2Q1NzFkNGQ0NDNlZjUzOGI4YTAwYyAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDE5LTAzLTE5ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAg
W1dlYkF1dGhOXSBJbXBsZW1lbnQgRklETyBBcHBJRCBleHRlbnNpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzQ5MQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDgyOTgyNzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGEgdGVzdCB0aGF0IGNvdmVycyB0aGUgbmV3IGZsYWcgb2YgY29udmVy
dFRvVTJmU2lnbkNvbW1hbmQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ3RhcFJlcXVlc3RUZXN0LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVTJmQ29tbWFuZENvbnN0cnVjdG9y
VGVzdC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxOS0wMy0xNiAg
QWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2V3cy1idWls
ZF0gRG9uJ3QgcnVuIGNsZWFuIGJ1aWxkcyBvbiBFV1MgYnVpbGRlcnMKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAKaW5kZXgg
OGNiNDQyN2E2ZDI3YWYwY2MwYWEwOGUyMzRlNjgwYzlmNmJjMDA1Yy4uZjVlNGYxNDNjNjllYTg1
MjliNThmNzA5OGZlZmVhYjdhYjI2M2I4NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAg
VEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RQ
YXJhbSkKICAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFy
YW1ldGVycz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCA3
IH0sIHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgMjU3IH0gfTsKICAgICBQ
dWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9u
Q3JpdGVyaWEgc2VsZWN0aW9uIHsgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6
QXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9OwogCi0gICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBXVEY6Om51bGxvcHQs
IHsgfSwgc2VsZWN0aW9uIH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBXVEY6Om51bGxvcHQsIHsgfSwgc2Vs
ZWN0aW9uLCBXVEY6Om51bGxvcHQgfTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBo
YXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtD
bGllbnREYXRhSGFzaCkpOwogICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3Jl
ZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RD
b25maWd1cmVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9GaWRvVGVzdERhdGEuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRv
VGVzdERhdGEuaAppbmRleCBiNjgyZmI3YzI4N2MzMGQzMGZkYzBiNTQwYmE2OTUyMjRlMzJhNDAy
Li45Mjc5MjAxMGIzNDE0YjVjODAwMGQwOWJiZmJlM2I4ZGFjYzhjMGI2IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmgKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oCkBAIC0xMTMsNiAr
MTEzLDMyIEBAIGNvbnN0ZXhwciB1aW50OF90IGtVMmZTaWduQ29tbWFuZEFwZHVbXSA9IHsKICAg
ICAweDAwLCAweDAwLAogfTsKIAorY29uc3RleHByIHVpbnQ4X3Qga1UyZkFwcElEU2lnbkNvbW1h
bmRBcGR1W10gPSB7CisgICAgLy8gQ0xBLCBJTlMsIFAxLCBQMiBBUERVIGluc3RydWN0aW9uIHBh
cmFtZXRlcnMKKyAgICAweDAwLCAweDAyLCAweDAzLCAweDAwLAorICAgIC8vIERhdGEgTGVuZ3Ro
ICgzIGJ5dGVzIGluIGJpZyBlbmRpYW4gb3JkZXIpCisgICAgMHgwMCwgMHgwMCwgMHg4MSwKKyAg
ICAvLyBDaGFsbGVuZ2UgcGFyYW1ldGVyIC0tIHNlZSBrQ2xpZW50RGF0YUhhc2gKKyAgICAweDY4
LCAweDcxLCAweDM0LCAweDk2LCAweDgyLCAweDIyLCAweGVjLCAweDE3LCAweDIwLCAweDJlLCAw
eDQyLAorICAgIDB4NTAsIDB4NWYsIDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEsIDB4ZTIsIDB4MmYs
IDB4MTYsIDB4YmIsIDB4MDUsCisgICAgMHhiOCwgMHg4YywgMHgyNSwgMHhkYiwgMHg5ZSwgMHg2
MCwgMHgyNiwgMHg0NSwgMHhmMSwgMHg0MSwKKyAgICAvLyBBcHBsaWNhdGlvbiBwYXJhbWV0ZXIK
KyAgICAweGM5LCAweDM0LCAweDAyLCAweDg3LCAweDA4LCAweDNkLCAweDY0LCAweGRlLCAweGVk
LCAweDE3LCAweDFiLCAweGJiLAorICAgIDB4ZDcsIDB4NjAsIDB4MTAsIDB4YWUsIDB4YzUsIDB4
NjUsIDB4M2UsIDB4NzgsIDB4ZmMsIDB4ZDAsIDB4MzEsIDB4ODgsCisgICAgMHhkMCwgMHhiZiwg
MHg3MCwgMHgxNiwgMHg5YSwgMHg0NiwgMHg5MSwgMHhkYSwKKyAgICAvLyBLZXkgaGFuZGxlIGxl
bmd0aAorICAgIDB4NDAsCisgICAgLy8gS2V5IGhhbmRsZQorICAgIDB4M0UsIDB4QkQsIDB4ODks
IDB4QkYsIDB4NzcsIDB4RUMsIDB4NTAsIDB4OTcsIDB4NTUsIDB4RUUsIDB4OUMsIDB4MjYsCisg
ICAgMHgzNSwgMHhFRiwgMHhBQSwgMHhBQywgMHg3QiwgMHgyQiwgMHg5QywgMHg1QywgMHhFRiwg
MHgxNywgMHgzNiwgMHhDMywKKyAgICAweDcxLCAweDdELCAweEE0LCAweDg1LCAweDM0LCAweEM4
LCAweEM2LCAweEI2LCAweDU0LCAweEQ3LCAweEZGLCAweDk0LAorICAgIDB4NUYsIDB4NTAsIDB4
QjUsIDB4Q0MsIDB4NEUsIDB4NzgsIDB4MDUsIDB4NUIsIDB4REQsIDB4MzksIDB4NkIsIDB4NjQs
CisgICAgMHhGNywgMHg4RCwgMHhBMiwgMHhDNSwgMHhGOSwgMHg2MiwgMHgwMCwgMHhDQywgMHhE
NCwgMHgxNSwgMHhDRCwgMHgwOCwKKyAgICAweEZFLCAweDQyLCAweDAwLCAweDM4LAorICAgIC8v
IE1heCByZXNwb25zZSBsZW5ndGgKKyAgICAweDAwLCAweDAwLAorfTsKKwogY29uc3RleHByIHVp
bnQ4X3Qga1UyZkNoZWNrT25seVNpZ25Db21tYW5kQXBkdVtdID0gewogICAgIC8vIENMQSwgSU5T
LCBQMSwgUDIgQVBEVSBpbnN0cnVjdGlvbiBwYXJhbWV0ZXJzCiAgICAgMHgwMCwgMHgwMiwgMHgw
NywgMHgwMCwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9V
MmZDb21tYW5kQ29uc3RydWN0b3JUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9VMmZDb21tYW5kQ29uc3RydWN0b3JUZXN0LmNwcAppbmRleCA3ZDc0NWY5YmJjNjRh
ZTFlMTY2ZTIyM2I2MzJiNzNiMTg5Njk5M2VjLi42NDYwNDQ2MjJmYmMxOTI1MTgxYzcyMTJjNDBh
YTRlYTJmODBlOWQ0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvVTJmQ29tbWFuZENvbnN0cnVjdG9yVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1UyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QuY3BwCkBAIC0xNzYsNiAr
MTc2LDI3IEBAIFRFU1QoVTJmQ29tbWFuZENvbnN0cnVjdG9yVGVzdCwgVGVzdENvbnZlcnRDdGFw
R2V0QXNzZXJ0aW9uVG9VMmZTaWduUmVxdWVzdCkKICAgICBFWFBFQ1RfRVEoKnUyZlNpZ25Db21t
YW5kLCBjb252ZXJ0Qnl0ZXNUb1ZlY3RvcihUZXN0RGF0YTo6a1UyZlNpZ25Db21tYW5kQXBkdSwg
c2l6ZW9mKFRlc3REYXRhOjprVTJmU2lnbkNvbW1hbmRBcGR1KSkpOwogfQogCitURVNUKFUyZkNv
bW1hbmRDb25zdHJ1Y3RvclRlc3QsIFRlc3RDb252ZXJ0Q3RhcEdldEFzc2VydGlvbldpdGhBcHBJ
RFRvVTJmU2lnblJlcXVlc3QpCit7CisgICAgYXV0byBnZXRBc3NlcnRpb25SZXEgPSBjb25zdHJ1
Y3RHZXRBc3NlcnRpb25SZXF1ZXN0KCk7CisgICAgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0
b3IgY3JlZGVudGlhbERlc2NyaXB0b3I7CisgICAgY3JlZGVudGlhbERlc2NyaXB0b3IudHlwZSA9
IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXk7CisgICAgY3JlZGVudGlhbERlc2Ny
aXB0b3IuaWRWZWN0b3IgPSBjb252ZXJ0Qnl0ZXNUb1ZlY3RvcihUZXN0RGF0YTo6a1UyZlNpZ25L
ZXlIYW5kbGUsIHNpemVvZihUZXN0RGF0YTo6a1UyZlNpZ25LZXlIYW5kbGUpKTsKKyAgICBWZWN0
b3I8UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+IGFsbG93ZWRMaXN0OworICAgIGFsbG93
ZWRMaXN0LmFwcGVuZChXVEZNb3ZlKGNyZWRlbnRpYWxEZXNjcmlwdG9yKSk7CisgICAgZ2V0QXNz
ZXJ0aW9uUmVxLmFsbG93Q3JlZGVudGlhbHMgPSBXVEZNb3ZlKGFsbG93ZWRMaXN0KTsKKyAgICBF
WFBFQ1RfVFJVRShpc0NvbnZlcnRpYmxlVG9VMmZTaWduQ29tbWFuZChnZXRBc3NlcnRpb25SZXEp
KTsKKworICAgIC8vIEFwcElECisgICAgV2ViQ29yZTo6QXV0aGVudGljYXRpb25FeHRlbnNpb25z
Q2xpZW50SW5wdXRzIGV4dGVuc2lvbnM7CisgICAgZXh0ZW5zaW9ucy5hcHBpZCA9ICJodHRwczov
L3d3dy5leGFtcGxlLmNvbS9hcHBpZCI7CisgICAgZ2V0QXNzZXJ0aW9uUmVxLmV4dGVuc2lvbnMg
PSBXVEZNb3ZlKGV4dGVuc2lvbnMpOworCisgICAgY29uc3QgYXV0byB1MmZTaWduQ29tbWFuZCA9
IGNvbnZlcnRUb1UyZlNpZ25Db21tYW5kKGNvbnZlcnRCeXRlc1RvVmVjdG9yKFRlc3REYXRhOjpr
Q2xpZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSksIGdldEFz
c2VydGlvblJlcSwgY29udmVydEJ5dGVzVG9WZWN0b3IoVGVzdERhdGE6OmtVMmZTaWduS2V5SGFu
ZGxlLCBzaXplb2YoVGVzdERhdGE6OmtVMmZTaWduS2V5SGFuZGxlKSksIHRydWUpOworICAgIEFT
U0VSVF9UUlVFKHUyZlNpZ25Db21tYW5kKTsKKyAgICBFWFBFQ1RfRVEoKnUyZlNpZ25Db21tYW5k
LCBjb252ZXJ0Qnl0ZXNUb1ZlY3RvcihUZXN0RGF0YTo6a1UyZkFwcElEU2lnbkNvbW1hbmRBcGR1
LCBzaXplb2YoVGVzdERhdGE6OmtVMmZBcHBJRFNpZ25Db21tYW5kQXBkdSkpKTsKK30KKwogVEVT
VChVMmZDb21tYW5kQ29uc3RydWN0b3JUZXN0LCBUZXN0VTJmU2lnbkFsbG93TGlzdFJlcXVpcmVt
ZW50KQogewogICAgIGF1dG8gZ2V0QXNzZXJ0aW9uUmVxID0gY29uc3RydWN0R2V0QXNzZXJ0aW9u
UmVxdWVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDlmNDQwNTUwNWI1OGYwMmNkODcxYzk2N2Q3N2U1NDRiYjU4MjAw
MzMuLmZiZDgzYzI4YTI4ODdlYTJmNDNlNTExZDc4NjViNzg1NjFlOTJkMTQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxOS0wMy0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtXZWJBdXRoTl0gSW1wbGVtZW50IEZJRE8gQXBwSUQgZXh0ZW5zaW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM0OTEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4Mjk4MjczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5o
dHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1jcmVhdGUtc3VjY2Vzcy11MmYuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtdTJmLmh0dHBzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtZ2V0LWZhaWx1cmUtdTJmLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZh
aWx1cmUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWxvY2FsLmh0dHBz
Lmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWdldC1zdWNjZXNzLXUyZi5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLXUyZi5odHRwcy5odG1s
OgorCiAyMDE5LTAzLTE2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBhIG5ldyBNZWRpYUNhcGFiaWxpdGllc0V4dGVuc2lvbnNFbmFibGVkIHNldHRpbmcK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0
cHMuaHRtbAppbmRleCBjOTcxODM1MjdhNzRlNGQyN2U0YTIyNDI4N2M2MmVhMDU0ZWUyMDgyLi5i
YjJmMTAyNzhmNmVmNTVhYzhhZWJmNjJhMWM0MDcwYTlmZjE5MGY2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1
Y2Nlc3MtaGlkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRwcy5odG1sCkBAIC0x
Niw3ICsxNiw3IEBACiAgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC50eXBlLCAncHVi
bGljLWtleScpOwogICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ldyBVaW50OEFycmF5KGNy
ZWRlbnRpYWwucmF3SWQpLCBCYXNlNjRVUkwucGFyc2UodGVzdEhpZENyZWRlbnRpYWxJZEJhc2U2
NCkpOwogICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9BU0NJSVN0cmluZyhjcmVkZW50aWFs
LnJlc3BvbnNlLmNsaWVudERhdGFKU09OKSwgJ3sidHlwZSI6IndlYmF1dGhuLmNyZWF0ZSIsImNo
YWxsZW5nZSI6Ik1USXpORFUyIiwib3JpZ2luIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyJ9Jyk7
Ci0gICAgICAgIGFzc2VydF90aHJvd3MoIk5vdFN1cHBvcnRlZEVycm9yIiwgKCkgPT4geyBjcmVk
ZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSB9KTsKKyAgICAgICAgYXNzZXJ0X25v
dF9leGlzdHMoY3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkpOwogCiAgICAg
ICAgIC8vIENoZWNrIGF0dGVzdGF0aW9uCiAgICAgICAgIGNvbnN0IGF0dGVzdGF0aW9uT2JqZWN0
ID0gQ0JPUi5kZWNvZGUoY3JlZGVudGlhbC5yZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5o
dHRwcy5odG1sCmluZGV4IDZmODc3YzQ0ZjZlYzM2OGZjMmRlZjYwMTNhZDVmZGNhYzE0MDQ3YTMu
LjQxNGQ4OGIwMjNmOTEzMWYzNjY5MWI5YTBkODhiMjlkMDlmYzdhN2YgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUt
c3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1s
CkBAIC0zMCw3ICszMCw3IEBACiAgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC50eXBl
LCAncHVibGljLWtleScpOwogICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ldyBVaW50OEFy
cmF5KGNyZWRlbnRpYWwucmF3SWQpLCBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJh
c2U2NCkpOwogICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9BU0NJSVN0cmluZyhjcmVkZW50
aWFsLnJlc3BvbnNlLmNsaWVudERhdGFKU09OKSwgJ3sidHlwZSI6IndlYmF1dGhuLmNyZWF0ZSIs
ImNoYWxsZW5nZSI6Ik1USXpORFUyIiwib3JpZ2luIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyJ9
Jyk7Ci0gICAgICAgIGFzc2VydF90aHJvd3MoIk5vdFN1cHBvcnRlZEVycm9yIiwgKCkgPT4geyBj
cmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSB9KTsKKyAgICAgICAgYXNzZXJ0
X25vdF9leGlzdHMoY3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkpOwogCiAg
ICAgICAgIC8vIENoZWNrIGF0dGVzdGF0aW9uCiAgICAgICAgIGNvbnN0IGF0dGVzdGF0aW9uT2Jq
ZWN0ID0gQ0JPUi5kZWNvZGUoY3JlZGVudGlhbC5yZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtdTJmLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtdTJmLmh0
dHBzLmh0bWwKaW5kZXggOWZhZWY4NTA2MzlmNThlYTA4NzZhMjkwNTU3ODI5ZDAxMTIxMDZjYy4u
NzY2MWE4ZjhkN2RkNmFhYTMwNGNkM2RlYmFhNWE2ZTliMGY3ZTZmMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1z
dWNjZXNzLXUyZi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy11MmYuaHR0cHMuaHRtbApAQCAt
MTIsNyArMTIsNyBAQAogICAgICAgICBhc3NlcnRfZXF1YWxzKGNyZWRlbnRpYWwudHlwZSwgJ3B1
YmxpYy1rZXknKTsKICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhuZXcgVWludDhBcnJheShj
cmVkZW50aWFsLnJhd0lkKSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RVMmZDcmVkZW50aWFsSWRCYXNl
NjQpKTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvQVNDSUlTdHJpbmcoY3JlZGVudGlh
bC5yZXNwb25zZS5jbGllbnREYXRhSlNPTiksICd7InR5cGUiOiJ3ZWJhdXRobi5jcmVhdGUiLCJj
aGFsbGVuZ2UiOiJNVEl6TkRVMiIsIm9yaWdpbiI6Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMifScp
OwotICAgICAgICBhc3NlcnRfdGhyb3dzKCJOb3RTdXBwb3J0ZWRFcnJvciIsICgpID0+IHsgY3Jl
ZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgfSk7CisgICAgICAgIGFzc2VydF9u
b3RfZXhpc3RzKGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpKTsKIAogICAg
ICAgICAvLyBDaGVjayBhdHRlc3RhdGlvbgogICAgICAgICBjb25zdCBhdHRlc3RhdGlvbk9iamVj
dCA9IENCT1IuZGVjb2RlKGNyZWRlbnRpYWwucmVzcG9uc2UuYXR0ZXN0YXRpb25PYmplY3QpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWdldC1mYWlsdXJlLXUyZi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtdTJmLmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCA1YTA2MTQ1YmQ1NWZhYzVkNDY5YjdlMzhhZTkwNWE5MDE4
ZmJlZTRkLi5iNTdiNzg0ZWQ0MGNmNGQ1NDI5ZGU1OTY0YmVjNjNmZWVlMjI0ODg2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Z2V0LWZhaWx1cmUtdTJmLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtdTJmLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMiw0ICsyLDYgQEAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdz
IFtbZ2V0XV0gd2l0aCBtYWxmb3JtZWQgc2lnbiByZXNwb25zZSBpbiBhIG1vY2sgaGlkIGF1dGhl
bnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG5vIG1h
dGNoZWQgYWxsb3cgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKIFBB
U1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGFsbG93IGNy
ZWRlbnRpYWxzIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gMiAKK1BBU1MgUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGFsbG93IGNyZWRlbnRpYWxzIGlu
IGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gKEFwcElEKSAKK1BBU1MgUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGFsbG93IGNyZWRlbnRpYWxzIGluIGEgbW9j
ayBoaWQgYXV0aGVudGljYXRvci4gMiAoQXBwSUQpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtdTJm
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtZ2V0LWZhaWx1cmUtdTJmLmh0dHBzLmh0bWwKaW5kZXggYjQzNWI1ZjVjN2YwMWU2
NmQyMTgzMTVjZTAwOWEwY2E2ZDFiZjJmYy4uNjQ5MTM3ODI4NGViNjdhMTllN2Q2MDVlNjg3MDAw
ZGE2NDFlYmRlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLXUyZi5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVy
ZS11MmYuaHR0cHMuaHRtbApAQCAtNDIsNCArNDIsMzMgQEAKICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTog
InJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAibWFsaWNpb3VzLXBheWxvYWQiLCBp
c1UyZjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RVMmZBcGR1V3JvbmdEYXRhT25seVJlc3Bv
bnNlQmFzZTY0LCB0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNwb25zZUJhc2U2NF0gfSB9KTsK
ICAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiTm8gY3JlZGVudGlhbHMgZnJvbSB0aGUg
YWxsb3dDcmVkZW50aWFscyBsaXN0IGlzIGZvdW5kIGluIHRoZSBhdXRoZW50aWNhdG9yLiIpOwog
ICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG5vIG1hdGNoZWQgYWxs
b3cgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAyIik7CisKKyAgICAv
LyBXaXRoIEFwcElEIGV4dGVuc2lvbgorICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cisg
ICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAg
ICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAg
ICAgICAgICAgICBhbGxvd0NyZWRlbnRpYWxzOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBC
YXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCkgfV0sCisgICAgICAgICAgICAg
ICAgZXh0ZW5zaW9uczogeyBhcHBpZDogIiIgfQorICAgICAgICAgICAgfQorICAgICAgICB9Owor
CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJl
cXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAibWFsaWNpb3VzLXBheWxvYWQiLCBpc1Uy
ZjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RVMmZBcGR1V3JvbmdEYXRhT25seVJlc3BvbnNl
QmFzZTY0LCB0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNwb25zZUJhc2U2NF0gfSB9KTsKKyAg
ICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiTm8gY3JlZGVudGlhbHMgZnJvbSB0aGUgYWxs
b3dDcmVkZW50aWFscyBsaXN0IGlzIGZvdW5kIGluIHRoZSBhdXRoZW50aWNhdG9yLiIpOworICAg
IH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG5vIG1hdGNoZWQgYWxsb3cg
Y3JlZGVudGlhbHMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAoQXBwSUQpIik7CisKKyAg
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0gewor
ICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2Np
aVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFs
czogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50
aWFsSWRCYXNlNjQpIH0sIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNl
KHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpIH1dLAorICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM6
IHsgYXBwaWQ6ICIiIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRp
Y2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3RhZ2U6ICJyZXF1ZXN0Iiwgc3ViU3Rh
Z2U6ICJtc2ciLCBlcnJvcjogIm1hbGljaW91cy1wYXlsb2FkIiwgaXNVMmY6IHRydWUsIHBheWxv
YWRCYXNlNjQ6IFt0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNwb25zZUJhc2U2NCwgdGVzdFUy
ZkFwZHVXcm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNlNjQsIHRlc3RVMmZBcGR1V3JvbmdEYXRhT25s
eVJlc3BvbnNlQmFzZTY0LCB0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNwb25zZUJhc2U2NF0g
fSB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3Ii
LCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiTm8gY3JlZGVudGlhbHMgZnJv
bSB0aGUgYWxsb3dDcmVkZW50aWFscyBsaXN0IGlzIGZvdW5kIGluIHRoZSBhdXRoZW50aWNhdG9y
LiIpOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG5vIG1hdGNo
ZWQgYWxsb3cgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAyIChBcHBJ
RCkiKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQt
ZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMWY3MTQ4MWVlNjNiOTVhOWM3ZTNmOTA4
ZGU4OWI4MjNkMTQyY2Y0Zi4uZDBmYTYxZjg0MjMyZjIxMzAwMGNiYmMzYjAxMzM2ZWVmYjE4NjYz
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLWdldC1mYWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsOCBAQAogCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2dldF1dIHdpdGggdGltZW91dCAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtb
Z2V0XV0gd2l0aCBhIG1pc21hdGNoZWQgUlAgSUQgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwn
cyBbW2dldF1dIHdpdGggYSBtaXNtYXRjaGVkIEFQUCBJRCAoaW52YWxpZCBVUkxzKSAKK1BBU1Mg
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhIG1pc21hdGNoZWQgQVBQIElEIChk
aWZmZXJlbnQgcHJvdG9jb2xzKSAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0g
d2l0aCBhIG1pc21hdGNoZWQgQVBQIElEIChkaWZmZXJlbnQgc2l0ZXMgMSkgCitQQVNTIFB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYSBtaXNtYXRjaGVkIEFQUCBJRCAoZGlmZmVy
ZW50IHNpdGVzIDIpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5o
dHRwcy5odG1sCmluZGV4IGIwNWVjY2IyOGVlZmQzZTk1NzdhOTA4ZTdlYzM2ZDQ2N2EzNmEyNzMu
LmEyNDU2OTBhMjJkYWU0YzJjOTQ5NTAyMDUxYWFmNjg5MTM4ZTdkY2EgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFp
bHVyZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1sCkBAIC0zMSw0ICszMSw1MiBA
QAogICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlNlY3VyaXR5RXJyb3IiLAogICAg
ICAgICAgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIlRoZSBvcmlnaW4g
b2YgdGhlIGRvY3VtZW50IGlzIG5vdCBhIHJlZ2lzdHJhYmxlIGRvbWFpbiBzdWZmaXggb2YgdGhl
IHByb3ZpZGVkIFJQIElELiIpOwogICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRd
XSB3aXRoIGEgbWlzbWF0Y2hlZCBSUCBJRCIpOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4gewor
ICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAg
ICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAg
ICAgICAgICAgICAgZXh0ZW5zaW9uczogeyBhcHBpZDogImFiYyIgfQorICAgICAgICAgICAgfQor
ICAgICAgICB9OworCisgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiU2VjdXJpdHlF
cnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAi
VGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IGF1dGhvcml6ZWQgZm9yIHRoZSBwcm92
aWRlZCBBcHAgSUQuIik7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdp
dGggYSBtaXNtYXRjaGVkIEFQUCBJRCAoaW52YWxpZCBVUkxzKSIpOworCisgICAgcHJvbWlzZV90
ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGlj
S2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIz
NDU2IiksCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeyBhcHBpZDogImZ0cDovL2xvY2Fs
aG9zdCIgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHJldHVybiBwcm9t
aXNlUmVqZWN0cyh0LCAiU2VjdXJpdHlFcnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90
IGF1dGhvcml6ZWQgZm9yIHRoZSBwcm92aWRlZCBBcHAgSUQuIik7CisgICAgfSwgIlB1YmxpY0tl
eUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYSBtaXNtYXRjaGVkIEFQUCBJRCAoZGlmZmVyZW50
IHByb3RvY29scykiKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29uc3Qg
b3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIGNo
YWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIGV4
dGVuc2lvbnM6IHsgYXBwaWQ6ICJodHRwczovLzEyNy4wLjAuMSIgfQorICAgICAgICAgICAgfQor
ICAgICAgICB9OworCisgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiU2VjdXJpdHlF
cnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAi
VGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IGF1dGhvcml6ZWQgZm9yIHRoZSBwcm92
aWRlZCBBcHAgSUQuIik7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdp
dGggYSBtaXNtYXRjaGVkIEFQUCBJRCAoZGlmZmVyZW50IHNpdGVzIDEpIik7CisKKyAgICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBw
dWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5
KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBleHRlbnNpb25zOiB7IGFwcGlkOiAiaHR0cHM6
Ly9oYWhhLmxvY2FsaG9zdCIgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAg
IHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiU2VjdXJpdHlFcnJvciIsCisgICAgICAgICAgICBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9j
dW1lbnQgaXMgbm90IGF1dGhvcml6ZWQgZm9yIHRoZSBwcm92aWRlZCBBcHAgSUQuIik7CisgICAg
fSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYSBtaXNtYXRjaGVkIEFQUCBJ
RCAoZGlmZmVyZW50IHNpdGVzIDIpIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1o
aWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbAppbmRleCA5YTRkNGNhMGM3NGY5
ZDg2OTgxNWExODA1YzkwNzQyYjg0MTFlZDVmLi45ZmI2OGM1MTI0MzAyNTg5MDgxYzM2Mzc4Yzc3
ODVmNGJiOTExZmE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNj
ZXNzLWhpZC5odHRwcy5odG1sCkBAIC0xNiw2ICsxNiw3IEBACiAgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMobmV3IFVpbnQ4QXJyYXkoY3JlZGVudGlhbC5yYXdJZCksIEJhc2U2NFVSTC5wYXJz
ZSh0ZXN0SGlkQ3JlZGVudGlhbElkQmFzZTY0KSk7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoYnl0
ZXNUb0FTQ0lJU3RyaW5nKGNyZWRlbnRpYWwucmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLCAneyJ0
eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiTVRJek5EVTIiLCJvcmlnaW4iOiJodHRw
czovL2xvY2FsaG9zdDo5NDQzIn0nKTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhjcmVkZW50aWFs
LnJlc3BvbnNlLnVzZXJIYW5kbGUsIG51bGwpOworICAgICAgICBhc3NlcnRfbm90X2V4aXN0cyhj
cmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSk7CiAKICAgICAgICAgLy8gQ2hl
Y2sgYXV0aERhdGEKICAgICAgICAgY29uc3QgYXV0aERhdGEgPSBkZWNvZGVBdXRoRGF0YShuZXcg
VWludDhBcnJheShjcmVkZW50aWFsLnJlc3BvbnNlLmF1dGhlbnRpY2F0b3JEYXRhKSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1s
CmluZGV4IDdmMmRhYWY1NTNiMTY0ZWIwYmEwMmRmNDY0OWEzNGZmMjkxMmY2ODEuLjZlOTJjZWYy
Mzk3OGVkZGEyYTUzOTU3ZTBkZTgxMDFkMjNlYjY0MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2Nh
bC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sCkBAIC0xOSw2ICsxOSw3
IEBACiAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobmV3IFVpbnQ4QXJyYXkoY3JlZGVudGlh
bC5yYXdJZCksIEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSk7CiAgICAg
ICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0FTQ0lJU3RyaW5nKGNyZWRlbnRpYWwucmVzcG9uc2Uu
Y2xpZW50RGF0YUpTT04pLCAneyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiTVRJ
ek5EVTIiLCJvcmlnaW4iOiJodHRwczovL2xvY2FsaG9zdDo5NDQzIn0nKTsKICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhieXRlc1RvSGV4U3RyaW5nKGNyZWRlbnRpYWwucmVzcG9uc2UudXNlckhhbmRs
ZSksICIwMDAxMDIwMzA0MDUwNjA3MDgwOSIpOworICAgICAgICBhc3NlcnRfbm90X2V4aXN0cyhj
cmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSk7CiAKICAgICAgICAgLy8gQ2hl
Y2sgYXV0aERhdGEKICAgICAgICAgY29uc3QgYXV0aERhdGEgPSBkZWNvZGVBdXRoRGF0YShuZXcg
VWludDhBcnJheShjcmVkZW50aWFsLnJlc3BvbnNlLmF1dGhlbnRpY2F0b3JEYXRhKSk7CkBAIC0z
Miw3ICszMyw3IEBACiAgICAgICAgICAgICAgICAgLy8gY3JlZGVudGlhbC5yZXNwb25zZS5zaWdu
YXR1cmUgaXMgaW4gQVNOLjEgYW5kIFdlYkNyeXB0byBleHBlY3Qgc2lnbmF0dXJlcyBwcm92aWRl
cyBpbiByfHMuCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudmVyaWZ5KHtu
YW1lOiAiRUNEU0EiLCBoYXNoOiAiU0hBLTI1NiJ9LCBwdWJsaWNLZXksIGV4dHJhY3RSYXdTaWdu
YXR1cmUoY3JlZGVudGlhbC5yZXNwb25zZS5zaWduYXR1cmUpLCBjb25jYXRlbmF0ZUJ1ZmZlcnMo
Y3JlZGVudGlhbC5yZXNwb25zZS5hdXRoZW50aWNhdG9yRGF0YSwgaGFzaCkpLnRoZW4oIHZlcmlm
aWVkID0+IHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodmVyaWZpZWQpOwotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJOb3RTdXBwb3J0ZWRFcnJvciIsICgpID0+
IHsgY3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgfSk7CisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9ub3RfZXhpc3RzKGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9u
UmVzdWx0cygpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy11MmYuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNz
LXUyZi5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNGM0YTM5ZWFhMjhkNWE0NGNjNGFjMDY2OTc5
MjQzOTY0YTliNDIzYy4uYWI4ZjA3MWViNTQ3NDEyODMzNjE3ZmQxMTlmMzVhNmRlNjZjMGIxNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWdldC1zdWNjZXNzLXUyZi5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLXUy
Zi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTIsNCArMiwxMCBAQAogUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG1pbmltdW0gb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhl
bnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG1vcmUg
YWxsb3cgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKIFBBU1MgUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB0ZXN0IG9mIHVzZXIgcHJlc2VuY2UgaW4g
YSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtb
Z2V0XV0gd2l0aCBlbXB0eSBleHRlbnNpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4g
CitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggc2FtZSBzaXRlIEFwcElE
IGJ1dCBub3QgdXNlZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAorUEFTUyBQdWJsaWNL
ZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGVtcHR5IEFwcElEIGluIGEgbW9jayBoaWQgYXV0
aGVudGljYXRvci4gCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYW4g
QXBwSUQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKK1BBU1MgUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbZ2V0XV0gd2l0aCBtdWx0aXBsZSBjcmVkZW50aWFscyBhbmQgQXBwSUQgaXMgbm90
IHVzZWQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKK1BBU1MgUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbZ2V0XV0gd2l0aCBtdWx0aXBsZSBjcmVkZW50aWFscyBhbmQgQXBwSUQgaXMgdXNl
ZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtdTJm
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtdTJmLmh0dHBzLmh0bWwKaW5kZXggNDc0M2IxNTQ2NzMxNGRl
ZDY3NDQ5ZDZiZWNlMzBlYjE5ZjQ2MDY3Mi4uN2JhN2JlNTkwMDYyOTZmN2U2N2ZjMDA2Yzg2NDFk
M2UwMTc0M2M3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLXUyZi5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vz
cy11MmYuaHR0cHMuaHRtbApAQCAtNCw3ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gY2hlY2tSZXN1bHQo
Y3JlZGVudGlhbCkKKyAgICBjb25zdCBkZWZhdWx0QXBwSURIYXNoID0gImMyNjcxYjZlYjkyMzMx
OTdkNWYyYjEyODhhNTViYTRmMDg2MGY5NmY3MTk5YmJhMzJmZTZkYTdjM2YwZjMxZTUiOworCisg
ICAgZnVuY3Rpb24gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCwgaXNBcHBJRCA9IGZhbHNlLCBhcHBJ
REhhc2ggPSBkZWZhdWx0QXBwSURIYXNoKQogICAgIHsKICAgICAgICAgLy8gQ2hlY2sgcmVzcG9u
ZAogICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEJhc2U2NFVSTC5wYXJzZShjcmVkZW50aWFs
LmlkKSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RVMmZDcmVkZW50aWFsSWRCYXNlNjQpKTsKQEAgLTEy
LDEwICsxNCwxNyBAQAogICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ldyBVaW50OEFycmF5
KGNyZWRlbnRpYWwucmF3SWQpLCBCYXNlNjRVUkwucGFyc2UodGVzdFUyZkNyZWRlbnRpYWxJZEJh
c2U2NCkpOwogICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9BU0NJSVN0cmluZyhjcmVkZW50
aWFsLnJlc3BvbnNlLmNsaWVudERhdGFKU09OKSwgJ3sidHlwZSI6IndlYmF1dGhuLmdldCIsImNo
YWxsZW5nZSI6Ik1USXpORFUyIiwib3JpZ2luIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyJ9Jyk7
CiAgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC5yZXNwb25zZS51c2VySGFuZGxlLCBu
dWxsKTsKKyAgICAgICAgaWYgKCFpc0FwcElEKQorICAgICAgICAgICAgYXNzZXJ0X25vdF9leGlz
dHMoY3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJl
c3VsdHMoKS5hcHBpZCk7CiAKICAgICAgICAgLy8gQ2hlY2sgYXV0aERhdGEKICAgICAgICAgY29u
c3QgYXV0aERhdGEgPSBkZWNvZGVBdXRoRGF0YShuZXcgVWludDhBcnJheShjcmVkZW50aWFsLnJl
c3BvbnNlLmF1dGhlbnRpY2F0b3JEYXRhKSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNU
b0hleFN0cmluZyhhdXRoRGF0YS5ycElkSGFzaCksICI0OTk2MGRlNTg4MGU4YzY4NzQzNDE3MGY2
NDc2NjA1YjhmZTRhZWI5YTI4NjMyYzc5OTVjZjNiYTgzMWQ5NzYzIik7CisgICAgICAgIGlmICgh
aXNBcHBJRCkKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0hleFN0cmluZyhhdXRo
RGF0YS5ycElkSGFzaCksICI0OTk2MGRlNTg4MGU4YzY4NzQzNDE3MGY2NDc2NjA1YjhmZTRhZWI5
YTI4NjMyYzc5OTVjZjNiYTgzMWQ5NzYzIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoYnl0ZXNUb0hleFN0cmluZyhhdXRoRGF0YS5ycElkSGFzaCksIGFwcElESGFz
aCk7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoYXV0aERhdGEuZmxhZ3MsIDEpOwogICAgICAgICBh
c3NlcnRfZXF1YWxzKGF1dGhEYXRhLmNvdW50ZXIsIDU5KTsKICAgICB9CkBAIC02Nyw0ICs3Niwx
MDkgQEAKICAgICAgICAgICAgIHJldHVybiBjaGVja1Jlc3VsdChjcmVkZW50aWFsKTsKICAgICAg
ICAgfSk7CiAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdGVzdCBv
ZiB1c2VyIHByZXNlbmNlIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKKworICAgIC8v
IFdpdGggQXBwSUQgZXh0ZW5zaW9uCisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBj
b25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAg
ICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAg
ICAgYWxsb3dDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJM
LnBhcnNlKHRlc3RVMmZDcmVkZW50aWFsSWRCYXNlNjQpIH1dLAorICAgICAgICAgICAgICAgIHRp
bWVvdXQ6IDEwMCwKKyAgICAgICAgICAgICAgICBleHRlbnNpb25zOiB7IH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgfTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBo
aWQ6IHsgc3RhZ2U6ICJyZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjogInN1Y2Nlc3Mi
LCBpc1UyZjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RVMmZTaWduUmVzcG9uc2VdIH0gfSk7
CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4o
Y3JlZGVudGlhbCA9PiB7CisgICAgICAgICAgICByZXR1cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlh
bCk7CisgICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3
aXRoIGVtcHR5IGV4dGVuc2lvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiIpOworCisg
ICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAg
ICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwu
cGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogW3sg
dHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVMmZDcmVkZW50aWFs
SWRCYXNlNjQpIH1dLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwMCwKKyAgICAgICAgICAg
ICAgICBleHRlbnNpb25zOiB7IGFwcGlkOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6NjY2L2FwcGlkIiB9
CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25m
aWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0YWdlOiAibXNnIiwgZXJy
b3I6ICJzdWNjZXNzIiwgaXNVMmY6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0VTJmU2lnblJl
c3BvbnNlXSB9IH0pOworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChv
cHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAgICAgcmV0dXJuIGNoZWNrUmVz
dWx0KGNyZWRlbnRpYWwpOworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlh
bCdzIFtbZ2V0XV0gd2l0aCBzYW1lIHNpdGUgQXBwSUQgYnV0IG5vdCB1c2VkIGluIGEgbW9jayBo
aWQgYXV0aGVudGljYXRvci4iKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAg
Y29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAg
ICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAg
ICAgIGFsbG93Q3JlZGVudGlhbHM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVS
TC5wYXJzZSh0ZXN0VTJmQ3JlZGVudGlhbElkQmFzZTY0KSB9XSwKKyAgICAgICAgICAgICAgICB0
aW1lb3V0OiAxMDAsCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeyBhcHBpZDogIiIgfQor
ICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmln
dXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9y
OiAic3VjY2VzcyIsIGlzVTJmOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdFUyZkFwZHVXcm9u
Z0RhdGFPbmx5UmVzcG9uc2VCYXNlNjQsIHRlc3RVMmZTaWduUmVzcG9uc2VdIH0gfSk7CisgICAg
ICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVu
dGlhbCA9PiB7CisgICAgICAgICAgICByZXR1cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCwgdHJ1
ZSk7CisgICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3
aXRoIGVtcHR5IEFwcElEIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKKworICAgIC8v
IEZJWE1FOiBTdWIgZG9tYWlucyBuZWVkIHRvIGJlIHRlc3RlZCBhcyB3ZWxsLiBIb3dldmVyLCBs
b2NhbGhvc3QgaGFzIG5vIHN1YiBkb21haW5zLgorICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAg
ICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAg
ICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAg
ICAgICAgICAgIGFsbG93Q3JlZGVudGlhbHM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJh
c2U2NFVSTC5wYXJzZSh0ZXN0VTJmQ3JlZGVudGlhbElkQmFzZTY0KSB9XSwKKyAgICAgICAgICAg
ICAgICB0aW1lb3V0OiAxMDAsCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeyBhcHBpZDog
Imh0dHBzOi8vbG9jYWxob3N0OjY2Ni9hcHBpZCIgfQorICAgICAgICAgICAgfQorICAgICAgICB9
OworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTog
InJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAic3VjY2VzcyIsIGlzVTJmOiB0cnVl
LCBwYXlsb2FkQmFzZTY0OiBbdGVzdFUyZkFwZHVXcm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNlNjQs
IHRlc3RVMmZTaWduUmVzcG9uc2VdIH0gfSk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgICAgICBy
ZXR1cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCwgdHJ1ZSwgIjdlYWJjNWNjMzI1MWJkYzU5MTE1
ZWY4N2I1ZjdlZTc0Y2IwMzc0N2UzOWJhODM0MTc0ODU2NWNjMTI5YzA3MTkiKTsKKyAgICAgICAg
fSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYW4gQXBwSUQg
aW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiIpOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4g
eworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7Cisg
ICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisg
ICAgICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBp
ZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpIH0sIHsgdHlwZTogInB1
YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVMmZDcmVkZW50aWFsSWRCYXNlNjQp
IH1dLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwMCwKKyAgICAgICAgICAgICAgICBleHRl
bnNpb25zOiB7IGFwcGlkOiAiIiB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJB
dXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIs
IHN1YlN0YWdlOiAibXNnIiwgZXJyb3I6ICJzdWNjZXNzIiwgaXNVMmY6IHRydWUsIHBheWxvYWRC
YXNlNjQ6IFt0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNwb25zZUJhc2U2NCwgdGVzdFUyZkFw
ZHVXcm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNlNjQsIHRlc3RVMmZTaWduUmVzcG9uc2VdIH0gfSk7
CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4o
Y3JlZGVudGlhbCA9PiB7CisgICAgICAgICAgICByZXR1cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlh
bCk7CisgICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3
aXRoIG11bHRpcGxlIGNyZWRlbnRpYWxzIGFuZCBBcHBJRCBpcyBub3QgdXNlZCBpbiBhIG1vY2sg
aGlkIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAg
IGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAg
ICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAgICAg
ICAgICBhbGxvd0NyZWRlbnRpYWxzOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRV
UkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCkgfSwgeyB0eXBlOiAicHVibGljLWtleSIs
IGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFUyZkNyZWRlbnRpYWxJZEJhc2U2NCkgfV0sCisgICAg
ICAgICAgICAgICAgdGltZW91dDogMTAwLAorICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM6IHsg
YXBwaWQ6ICIiIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0
aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3RhZ2U6ICJyZXF1ZXN0Iiwgc3ViU3RhZ2U6
ICJtc2ciLCBlcnJvcjogInN1Y2Nlc3MiLCBpc1UyZjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rl
c3RVMmZBcGR1V3JvbmdEYXRhT25seVJlc3BvbnNlQmFzZTY0LCB0ZXN0VTJmQXBkdVdyb25nRGF0
YU9ubHlSZXNwb25zZUJhc2U2NCwgdGVzdFUyZkFwZHVXcm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNl
NjQsIHRlc3RVMmZTaWduUmVzcG9uc2VdIH0gfSk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgICAg
ICByZXR1cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCwgdHJ1ZSk7CisgICAgICAgIH0pOworICAg
IH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG11bHRpcGxlIGNyZWRlbnRp
YWxzIGFuZCBBcHBJRCBpcyB1c2VkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKKwog
PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365256</attachid>
            <date>2019-03-19 16:29:50 -0700</date>
            <delta_ts>2019-03-19 17:37:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143491-20190319162949.patch</filename>
            <type>text/plain</type>
            <size>75590</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQ2NDA4ZmE1M2M1ODg1
ZjBkYThkZTc3OTNiZDRhNDQ3N2Q4ZmE2Ny4uYzY3NGY1Y2Y2ZjllNDU0MjI0YmUwMGI0N2ZhNzc0
MDA5ZTcyNjU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE5LTAzLTE5ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBs
ZW1lbnQgRklETyBBcHBJRCBleHRlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MzQ5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgyOTgy
NzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIEZJRE8gQXBwSUQgZXh0ZW5zaW9uOiBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXV0aG4vI3NjdG4tYXBwaWQtZXh0ZW5zaW9uLgorICAgICAgICBUbyBi
ZSBub3RpY2VkLCB0aGlzIGltcGxlbWVudGF0aW9uIGZvbGxvd3Mgd2hhdCBzcGVjIHN1Z2dlc3Rl
ZCBpbiB0aGUgJ05vdGUnIHNlc3Npb24gYW5kIHdoYXQgQ2hyb21lL0ZpcmVmb3gKKyAgICAgICAg
ZG8gaW4gcHJhY3RpY2UgdG8gYXZvaWQgc29tZSB1bm5jZXNzYXJ5IHN0ZXBzIG9mCisgICAgICAg
IGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtaWQtMjAxODAyMjcvZmlk
by1hcHBpZC1hbmQtZmFjZXRzLXYyLjAtaWQtMjAxODAyMjcuaHRtbCNkZXRlcm1pbmluZy1pZi1h
LWNhbGxlci1zLWZhY2V0aWQtaXMtYXV0aG9yaXplZC1mb3ItYW4tYXBwaWQuCisKKyAgICAgICAg
Q292ZXJlZCBieSBuZXcgdGVzdHMgaW4gZXhpc3RpbmcgZmlsZXMuCisKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMu
aDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlD
cmVkZW50aWFsLmlkbC4KKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9u
c0NsaWVudElucHV0czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0czo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5pZGw6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRp
Y2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JJbnRlcm5hbDo6cHJvY2Vzc0FwcElkRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Y3JlYXRlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3Vy
Y2UgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjp0cnlDcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbDo6UHVibGljS2V5Q3JlZGVu
dGlhbCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpnZXRDbGllbnRF
eHRlbnNpb25SZXN1bHRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRl
bnRpYWw6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlD
cmVkZW50aWFsLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnMuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlB1Ymxp
Y0tleUNyZWRlbnRpYWxEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6ZGVjb2RlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNl
Q29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNw
b25zZSk6CisgICAgICAgIChmaWRvOjpyZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmQ29tbWFuZENvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKGZpZG86OmNvbnZlcnRUb1UyZlNpZ25Db21tYW5kKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vVTJmQ29tbWFuZENvbnN0cnVjdG9yLmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcDoKKyAgICAgICAgKGZp
ZG86OnJlYWRVMmZSZWdpc3RlclJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86OnJlYWRVMmZTaWdu
UmVzcG9uc2UpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMy0xOSAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXBhcmVudGluZyBkdXJpbmcgYSBtdXRhdGlvbiBl
dmVudCBpbnNpZGUgYXBwZW5kQ2hpbGQgY291bGQgcmVzdWx0IGluIGEgY2lyY3VsYXIgRE9NIHRy
ZWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZTZhOWVmNTI3OTRmOTNkNzQxNzQ2ZDA1MTRmZmM4YjUyOTVlY2M3Ny4u
MDZhZTQ4YTQ0MWU0YjJkNGRiNjcyNWE3N2I3NTY3ZWUyODk2N2ZkZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxOS0wMy0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtXZWJBdXRoTl0gSW1wbGVtZW50IEZJRE8gQXBwSUQgZXh0ZW5zaW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM0OTEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4Mjk4MjczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIFUyZkhpZEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVl
U2lnbkNvbW1hbmRBZnRlclJlc3BvbnNlUmVjZWl2ZWQsIGl0IHdpbGwgcmV0cnkgdGhlIGN1cnJl
bnQgY29tbWFuZAorICAgICAgICB3aXRoIHRoZSBBcHBJRCBpZiBpdCBleGlzdHMgd2hlbiBTV19X
Uk9OR19EQVRBIGlzIHJlY2VpdmVkIGZyb20gZGV2aWNlcy4gTm90ZWQsIGl0IHdpbGwgbm90IHNl
dAorICAgICAgICB0aGUgQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0czo6YXBw
aWQgdG8gZmFsc2UgaW4gYW55IGNpcmN1bXN0YW5jZXMuIEluIG90aGVyIHdvcmRzLCB0aGUKKyAg
ICAgICAgZmllbGQgd2lsbCBiZSBlbXB0eSBpZiBBcHBJRCBpcyBzdXBwbGllZCBpbiBBdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMgYW5kIG5vdCB1c2VkLgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbToK
KyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50
aWFsQWZ0ZXJBdHRlc3RlZCk6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6
Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJDb25zZW50ZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkhpZEF1dGhlbnRpY2F0b3IuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVMmZIaWRBdXRoZW50aWNhdG9yOjppc3N1ZVNpZ25Db21tYW5kKToKKyAg
ICAgICAgKFdlYktpdDo6VTJmSGlkQXV0aGVudGljYXRvcjo6Y29udGludWVTaWduQ29tbWFuZEFm
dGVyUmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL2ZpZG8vVTJmSGlkQXV0aGVudGljYXRvci5oOgorCiAyMDE5LTAzLTE5ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0
ZXIgcjI0MzE3My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CmluZGV4IDVmNTJiNDE2YmM3NmY0YjdmOGNiMzE4YmE1ZGZmNWY1NmU1MjAzZTUuLmM2
YjViYzFmYjAzN2I3YzBiZTA2ZDNjMmQ5NDBiYjk1MTM2OTRhMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMzA0LDYgKzMwNCw3IEBA
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmlkbAogJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9u
c2UuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRl
c3RhdGlvblJlc3BvbnNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yUmVzcG9uc2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDA4M2VhMjk0NWUzNzM1MDIxMDlkMzNkY2NmZDBlY2My
MjE0NGIxYzkuLjBiOTZiMTc0Mjg1NWEyZjU0ZWY2M2M4ZTA1NTY5YTdiNzhiM2E0MTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0x
NTQsNiArMTU0LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNBdWRpb1RyYWNrTGlzdC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFja0xpc3QuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1RyYWNrTWVkaWFTb3VyY2UuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tNZWRpYVNv
dXJjZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1
dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xp
ZW50SW5wdXRzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9u
c2UuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdXRo
ZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IDg5YzM5Njg4MDYwZDdmN2EzN2Q1NjJmOGFmZTc4OTIyZWQ4YmQzYTguLjc4Y2Fj
Mzk1ODdmYWQ4MjY3YzYwNWU1ZDU1NzE4ODAzM2I5MDQzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtMzUxLDYgKzM1MSw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRz
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50
SW5wdXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9u
RXh0ZW5zaW9uc0NsaWVudElucHV0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlMmQ4NDczODBmYTc5NTM0YTVi
ZTkwOThmMTlhZDEyOWMyMzg1MzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5oCkBA
IC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJfQVVUSE4pCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRz
IHsKKyAgICBTdHJpbmcgYXBwaWQ7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIE9wdGlvbmFsPEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cz4gZGVjb2Rl
KERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEF1dGhlbnRp
Y2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0czo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2RlciA8PCBhcHBpZDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4KK09wdGlvbmFsPEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cz4gQXV0aGVu
dGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMgcmVzdWx0OworCisg
ICAgT3B0aW9uYWw8U3RyaW5nPiBhcHBpZDsKKyAgICBkZWNvZGVyID4+IGFwcGlkOworICAgIGlm
ICghYXBwaWQpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmVzdWx0LmFwcGlk
ID0gV1RGTW92ZSgqYXBwaWQpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRpb25FeHRlbnNpb25z
Q2xpZW50SW5wdXRzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTllOTdiOGRk
Mjc0NzY5NGVhN2RmZWMwOWRlNjgxZjRhMjRlM2IwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJ
bnB1dHMuaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9u
YWw9V0VCX0FVVEhOLAorXSBkaWN0aW9uYXJ5IEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVu
dElucHV0cyB7CisgICAgVVNWU3RyaW5nIGFwcGlkOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNw
cAppbmRleCA3ODMwNzk5MTY2N2QwODNiNmE1ZjA2YjUyMGEyZGU5MWI5NGJiY2MwLi5kMjYzYzFi
ODEzNzRjNDE2NmU1MDUzMWZmNTIxMjc4MjY0ZDM5OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3Iu
Y3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucy5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhLmgiCiAjaW5j
bHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgiCisjaW5jbHVkZSAiUmVn
aXN0cmFibGVEb21haW4uaCIKKyNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8cGFsL2NyeXB0by9DcnlwdG9EaWdlc3QuaD4K
ICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgpAQCAtNzgsNiArODAsMjcgQEAgc3RhdGljIFZl
Y3Rvcjx1aW50OF90PiBwcm9kdWNlQ2xpZW50RGF0YUpzb25IYXNoKGNvbnN0IEFycmF5QnVmZmVy
JiBjbGllbnREYXRhSnMKICAgICByZXR1cm4gY3J5cHRvLT5jb21wdXRlSGFzaCgpOwogfQogCisv
LyBUaGUgZm9sbG93aW5nIHJvdWdobHkgaW1wbGVtZW50cyBTdGVwIDEtMyBvZiB0aGUgc3BlYyB0
byBhdm9pZCB0aGUgY29tcGxleGl0eSBvZiBtYWtpbmcgdW5uZWNlc3NhcnkgbmV0d29yayByZXF1
ZXN0czoKKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtaWQtMjAx
ODAyMjcvZmlkby1hcHBpZC1hbmQtZmFjZXRzLXYyLjAtaWQtMjAxODAyMjcuaHRtbCNkZXRlcm1p
bmluZy1pZi1hLWNhbGxlci1zLWZhY2V0aWQtaXMtYXV0aG9yaXplZC1mb3ItYW4tYXBwaWQKKy8v
IEl0IGZvbGxvd3Mgd2hhdCBDaHJvbWUgYW5kIEZpcmVmb3ggZG8sIHNlZToKKy8vIGh0dHBzOi8v
YnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDQ5NTkjYzgKKy8vIGh0dHBz
Oi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTgxODMwMwor
c3RhdGljIFN0cmluZyBwcm9jZXNzQXBwSWRFeHRlbnNpb24oY29uc3QgU2VjdXJpdHlPcmlnaW4m
IGZhY2V0SWQsIGNvbnN0IFN0cmluZyYgYXBwSWQpCit7CisgICAgLy8gU3RlcCAxLiBTa2lwcGVk
IHNpbmNlIGZhY2V0SWQgc2hvdWxkIGFsd2F5cyBiZSBzZWN1cmUgb3JpZ2lucy4KKyAgICBBU1NF
UlQoU2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNTZWN1cmUoZmFjZXRJZC5w
cm90b2NvbCgpKSk7CisKKyAgICAvLyBTdGVwIDIuIEZvbGxvdyBDaHJvbWUgYW5kIEZpcmVmb3gg
dG8gdXNlIHRoZSBvcmlnaW4gZGlyZWN0bHkgd2l0aG91dCBhZGRpbmcgYSB0cmFpbGluZyBzbGFz
aC4KKyAgICBpZiAoYXBwSWQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFjZXRJZC50b1N0
cmluZygpOworCisgICAgLy8gU3RlcCAzLiBSZWxheCB0aGUgY29tcGFyaXNvbiB0byBzYW1lIHNp
dGUuCisgICAgVVJMIGFwcElkVVJMKFVSTCgpLCBhcHBJZCk7CisgICAgaWYgKCFhcHBJZFVSTC5p
c1ZhbGlkKCkgfHwgZmFjZXRJZC5wcm90b2NvbCgpICE9IGFwcElkVVJMLnByb3RvY29sKCkgfHwg
UmVnaXN0cmFibGVEb21haW4oYXBwSWRVUkwpICE9IFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNr
ZWRDcmVhdGVGcm9tSG9zdChmYWNldElkLmhvc3QoKSkpCisgICAgICAgIHJldHVybiBTdHJpbmco
KTsKKyAgICByZXR1cm4gYXBwSWQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEF1dGhlbnRpY2F0b3JD
b29yZGluYXRvckludGVybmFsCiAKIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6QXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yKHN0ZDo6dW5pcXVlX3B0cjxBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JD
bGllbnQ+JiYgY2xpZW50KQpAQCAtOTUsNyArMTE4LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3I6OmNyZWF0ZShjb25zdCBTZWN1cml0eU9yaWdpbiYgY2FsbGVyT3JpZ2luLCBjb25z
dAogICAgIHVzaW5nIG5hbWVzcGFjZSBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5hbDsK
IAogICAgIC8vIFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcvVFIv
d2ViYXV0aG4vI2NyZWF0ZUNyZWRlbnRpYWwgYXMgb2YgNSBEZWNlbWJlciAyMDE3LgotICAgIC8v
IEZJWE1FOiBFeHRlbnNpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4gU2tpcCBTdGVwIDExLTEy
LgorICAgIC8vIEV4dGVuc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQuIFNraXAgU3RlcCAxMS0xMi4K
ICAgICAvLyBTdGVwIDEsIDMsIDE2IGFyZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCiAgICAgLy8g
U3RlcCAyLgogICAgIGlmICghc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMpIHsKQEAgLTE1OCw3ICsx
ODEsNiBAQCB2b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6ZGlzY292ZXJGcm9tRXh0ZXJu
YWxTb3VyY2UoY29uc3QgU2VjdXJpdHlPcmlnaW4mCiAgICAgdXNpbmcgbmFtZXNwYWNlIEF1dGhl
bnRpY2F0b3JDb29yZGluYXRvckludGVybmFsOwogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBpbXBs
ZW1lbnRzIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jY3JlYXRlQ3JlZGVudGlhbCBh
cyBvZiA1IERlY2VtYmVyIDIwMTcuCi0gICAgLy8gRklYTUU6IEV4dGVuc2lvbnMgYXJlIG5vdCBz
dXBwb3J0ZWQgeWV0LiBTa2lwIFN0ZXAgOC05LgogICAgIC8vIFN0ZXAgMSwgMywgMTMgYXJlIGhh
bmRsZWQgYnkgdGhlIGNhbGxlci4KICAgICAvLyBTdGVwIDIuCiAgICAgaWYgKCFzYW1lT3JpZ2lu
V2l0aEFuY2VzdG9ycykgewpAQCAtMTc3LDYgKzE5OSwxOCBAQCB2b2lkIEF1dGhlbnRpY2F0b3JD
b29yZGluYXRvcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgU2VjdXJpdHlPcmln
aW4mCiAgICAgaWYgKG9wdGlvbnMucnBJZC5pc0VtcHR5KCkpCiAgICAgICAgIG9wdGlvbnMucnBJ
ZCA9IGNhbGxlck9yaWdpbi5ob3N0KCk7CiAKKyAgICAvLyBTdGVwIDgtOS4KKyAgICAvLyBPbmx5
IEZJRE8gQXBwSUQgRXh0ZW5zaW9uIGlzIHN1cHBvcnRlZC4KKyAgICBpZiAob3B0aW9ucy5leHRl
bnNpb25zICYmICFvcHRpb25zLmV4dGVuc2lvbnMtPmFwcGlkLmlzTnVsbCgpKSB7CisgICAgICAg
IC8vIFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0
aG4vI3NjdG4tYXBwaWQtZXh0ZW5zaW9uIGFzIG9mIDQgTWFyY2ggMjAxOS4KKyAgICAgICAgYXV0
byBhcHBpZCA9IHByb2Nlc3NBcHBJZEV4dGVuc2lvbihjYWxsZXJPcmlnaW4sIG9wdGlvbnMuZXh0
ZW5zaW9ucy0+YXBwaWQpOworICAgICAgICBpZiAoIWFwcGlkKSB7CisgICAgICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUg
ZG9jdW1lbnQgaXMgbm90IGF1dGhvcml6ZWQgZm9yIHRoZSBwcm92aWRlZCBBcHAgSUQuIl9zIH0p
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG9wdGlvbnMuZXh0ZW5z
aW9ucy0+YXBwaWQgPSBhcHBpZDsKKyAgICB9CisKICAgICAvLyBTdGVwIDEwLTEyLgogICAgIGF1
dG8gY2xpZW50RGF0YUpzb24gPSBwcm9kdWNlQ2xpZW50RGF0YUpzb24oQ2xpZW50RGF0YVR5cGU6
OkdldCwgb3B0aW9ucy5jaGFsbGVuZ2UsIGNhbGxlck9yaWdpbik7CiAgICAgYXV0byBjbGllbnRE
YXRhSnNvbkhhc2ggPSBwcm9kdWNlQ2xpZW50RGF0YUpzb25IYXNoKGNsaWVudERhdGFKc29uKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3Jl
ZGVudGlhbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWwuY3BwCmluZGV4IGM2YjY4NDRmM2Q2OTUwMzFkMjE3ZWUxMjUwNjlkNDIzOTk2ZTY4
YTIuLjQ3NTA4Njk4ZGRkMjgzYjIxMjQxNjhmYzZmODE1Mzk4YWNlMTU0NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFs
LmNwcApAQCAtNDAsMTEgKzQwLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8UHVi
bGljS2V5Q3JlZGVudGlhbD4gUHVibGljS2V5Q3JlZGVudGlhbDo6Y3JlYXRlKFJlZjxBcnJheUJ1
ZmZlcj4mJiBpZCwgUmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJiByZXNwb25zZSkKLXsKLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQdWJsaWNLZXlDcmVkZW50aWFsKFdURk1vdmUoaWQpLCBX
VEZNb3ZlKHJlc3BvbnNlKSkpOwotfQotCiBSZWZQdHI8UHVibGljS2V5Q3JlZGVudGlhbD4gUHVi
bGljS2V5Q3JlZGVudGlhbDo6dHJ5Q3JlYXRlKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxEYXRh
JiBkYXRhKQogewogICAgIGlmICghZGF0YS5yYXdJZCB8fCAhZGF0YS5jbGllbnREYXRhSlNPTikK
QEAgLTU0LDI1ICs0OSwyNiBAQCBSZWZQdHI8UHVibGljS2V5Q3JlZGVudGlhbD4gUHVibGljS2V5
Q3JlZGVudGlhbDo6dHJ5Q3JlYXRlKGNvbnN0IFB1YmxpY0tleUNyZWRlbgogICAgICAgICBpZiAo
IWRhdGEuYXR0ZXN0YXRpb25PYmplY3QpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQdWJsaWNLZXlDcmVkZW50aWFsKGRhdGEucmF3
SWQucmVsZWFzZU5vbk51bGwoKSwgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6OmNy
ZWF0ZShkYXRhLmNsaWVudERhdGFKU09OLnJlbGVhc2VOb25OdWxsKCksIGRhdGEuYXR0ZXN0YXRp
b25PYmplY3QucmVsZWFzZU5vbk51bGwoKSkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUHVibGljS2V5Q3JlZGVudGlhbChkYXRhLnJhd0lkLnJlbGVhc2VOb25OdWxsKCksIEF1dGhl
bnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpjcmVhdGUoZGF0YS5jbGllbnREYXRhSlNPTi5y
ZWxlYXNlTm9uTnVsbCgpLCBkYXRhLmF0dGVzdGF0aW9uT2JqZWN0LnJlbGVhc2VOb25OdWxsKCkp
LCB7IGRhdGEuYXBwaWQgfSkpOwogICAgIH0KIAogICAgIGlmICghZGF0YS5hdXRoZW50aWNhdG9y
RGF0YSB8fCAhZGF0YS5zaWduYXR1cmUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUHVibGljS2V5Q3JlZGVudGlhbChkYXRhLnJhd0lkLnJlbGVh
c2VOb25OdWxsKCksIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6Y3JlYXRlKGRhdGEu
Y2xpZW50RGF0YUpTT04ucmVsZWFzZU5vbk51bGwoKSwgZGF0YS5hdXRoZW50aWNhdG9yRGF0YS5y
ZWxlYXNlTm9uTnVsbCgpLCBkYXRhLnNpZ25hdHVyZS5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3Zl
KGRhdGEudXNlckhhbmRsZSkpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHVibGljS2V5
Q3JlZGVudGlhbChkYXRhLnJhd0lkLnJlbGVhc2VOb25OdWxsKCksIEF1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZTo6Y3JlYXRlKGRhdGEuY2xpZW50RGF0YUpTT04ucmVsZWFzZU5vbk51bGwo
KSwgZGF0YS5hdXRoZW50aWNhdG9yRGF0YS5yZWxlYXNlTm9uTnVsbCgpLCBkYXRhLnNpZ25hdHVy
ZS5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKGRhdGEudXNlckhhbmRsZSkpLCB7IGRhdGEuYXBw
aWQgfSkpOwogfQogCi1QdWJsaWNLZXlDcmVkZW50aWFsOjpQdWJsaWNLZXlDcmVkZW50aWFsKFJl
ZjxBcnJheUJ1ZmZlcj4mJiBpZCwgUmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJiByZXNwb25z
ZSkKK1B1YmxpY0tleUNyZWRlbnRpYWw6OlB1YmxpY0tleUNyZWRlbnRpYWwoUmVmPEFycmF5QnVm
ZmVyPiYmIGlkLCBSZWY8QXV0aGVudGljYXRvclJlc3BvbnNlPiYmIHJlc3BvbnNlLCBBdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzJiYgZXh0ZW5zaW9ucykKICAgICA6IEJhc2lj
Q3JlZGVudGlhbChXVEY6OmJhc2U2NFVSTEVuY29kZShpZC0+ZGF0YSgpLCBpZC0+Ynl0ZUxlbmd0
aCgpKSwgVHlwZTo6UHVibGljS2V5LCBEaXNjb3Zlcnk6OlJlbW90ZSkKICAgICAsIG1fcmF3SWQo
V1RGTW92ZShpZCkpCiAgICAgLCBtX3Jlc3BvbnNlKFdURk1vdmUocmVzcG9uc2UpKQorICAgICwg
bV9leHRlbnNpb25zKFdURk1vdmUoZXh0ZW5zaW9ucykpCiB7CiB9CiAKLUV4Y2VwdGlvbk9yPGJv
b2w+IFB1YmxpY0tleUNyZWRlbnRpYWw6OmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSBjb25z
dAorUHVibGljS2V5Q3JlZGVudGlhbDo6QXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0
cHV0cyBQdWJsaWNLZXlDcmVkZW50aWFsOjpnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKKyAgICBy
ZXR1cm4gbV9leHRlbnNpb25zOwogfQogCiB2b2lkIFB1YmxpY0tleUNyZWRlbnRpYWw6OmlzVXNl
clZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShEb2N1bWVudCYgZG9jdW1l
bnQsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmIHByb21pc2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5oCmlu
ZGV4IDMwZmNlNDIwMmJlYmFmMGE5ODJlY2E4ZmYzZTllYzNiODliZDcyOWEuLjEyZGYwYzJkNjlj
NTJjYjE5OTVkZTQ5N2QxNWJiNDhjZTRiZGY4OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5oCkBAIC00MiwyMyArNDIs
MjYgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhOwogCiBjbGFzcyBQdWJsaWNLZXlD
cmVkZW50aWFsIGZpbmFsIDogcHVibGljIEJhc2ljQ3JlZGVudGlhbCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxQdWJsaWNLZXlDcmVkZW50aWFsPiBjcmVhdGUoUmVmPEFycmF5QnVmZmVyPiYm
IGlkLCBSZWY8QXV0aGVudGljYXRvclJlc3BvbnNlPiYmKTsKKyAgICBzdHJ1Y3QgQXV0aGVudGlj
YXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cyB7CisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGFw
cGlkOworICAgIH07CisKICAgICBzdGF0aWMgUmVmUHRyPFB1YmxpY0tleUNyZWRlbnRpYWw+IHRy
eUNyZWF0ZShjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSYpOwogCiAgICAgQXJyYXlCdWZm
ZXIqIHJhd0lkKCkgY29uc3QgeyByZXR1cm4gbV9yYXdJZC5wdHIoKTsgfQogICAgIEF1dGhlbnRp
Y2F0b3JSZXNwb25zZSogcmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlLnB0cigp
OyB9Ci0gICAgLy8gTm90IHN1cHBvcnQgeWV0LiBBbHdheXMgdGhyb3dzLgotICAgIEV4Y2VwdGlv
bk9yPGJvb2w+IGdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSBjb25zdDsKKyAgICBBdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzIGdldENsaWVudEV4dGVuc2lvblJlc3VsdHMo
KSBjb25zdDsKIAogICAgIHN0YXRpYyB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVu
dGljYXRvckF2YWlsYWJsZShEb2N1bWVudCYsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFu
PiYmKTsKIAogcHJpdmF0ZToKLSAgICBQdWJsaWNLZXlDcmVkZW50aWFsKFJlZjxBcnJheUJ1ZmZl
cj4mJiBpZCwgUmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJik7CisgICAgUHVibGljS2V5Q3Jl
ZGVudGlhbChSZWY8QXJyYXlCdWZmZXI+JiYgaWQsIFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+
JiYsIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHMmJik7CiAKICAgICBUeXBl
IGNyZWRlbnRpYWxUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gVHlwZTo6UHVibGljS2V5OyB9
CiAKICAgICBSZWY8QXJyYXlCdWZmZXI+IG1fcmF3SWQ7CiAgICAgUmVmPEF1dGhlbnRpY2F0b3JS
ZXNwb25zZT4gbV9yZXNwb25zZTsKKyAgICBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRP
dXRwdXRzIG1fZXh0ZW5zaW9uczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWwuaWRsCmluZGV4IGQ1MWYwNmQ0MGRkOWU0ZWMzYzZhMjg5NzY3MjYyMGZlMmI4NWY5NzEuLjMw
NzJjMWNlNDc3MDdmNGI0Y2U4ZThlNTU5MjJkNjY5MGI0NzdkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmlkbApA
QCAtMjMsOCArMjMsNiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLXR5cGVkZWYgYm9vbGVhbiBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnM7Ci0KIFsKICAgICBD
b25kaXRpb25hbD1XRUJfQVVUSE4sCiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJBdXRoZW50aWNh
dGlvbiwKQEAgLTMzLDcgKzMxLDE0IEBAIHR5cGVkZWYgYm9vbGVhbiBBdXRoZW50aWNhdGlvbkV4
dGVuc2lvbnM7CiBdIGludGVyZmFjZSBQdWJsaWNLZXlDcmVkZW50aWFsIDogQmFzaWNDcmVkZW50
aWFsIHsKICAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5QnVmZmVyIHJh
d0lkOwogICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgQXV0aGVudGljYXRvclJl
c3BvbnNlIHJlc3BvbnNlOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gQXV0aGVudGljYXRpb25F
eHRlbnNpb25zIGdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKTsKKyAgICBBdXRoZW50aWNhdGlv
bkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzIGdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKTsKIAog
ICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIFByb21pc2U8Ym9vbGVhbj4gaXNVc2VyVmVy
aWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCk7CiB9OworCitbCisgICAgQ29u
ZGl0aW9uYWw9V0VCX0FVVEhOLAorICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9u
YXJ5IEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHMgeworICAgIGJvb2xlYW4g
YXBwaWQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaAppbmRleCA2
ZjkyNzFhNmRmMzkxNDU3YmI3NWFlNWI3YjBlZDNlZTA2Yjg4YjM2Li40OTE2NDU4OTE5MjMwMDVm
MmUwYjZmYTNmYmNiZTk5Mzk1ZjM3OTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAor
I2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5oIgogI2luY2x1
ZGUgIkJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlw
dG9yLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCIKQEAgLTgzLDYgKzg0
LDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgewogICAgIE9w
dGlvbmFsPHVuc2lnbmVkPiB0aW1lb3V0OwogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFs
RGVzY3JpcHRvcj4gZXhjbHVkZUNyZWRlbnRpYWxzOwogICAgIE9wdGlvbmFsPEF1dGhlbnRpY2F0
b3JTZWxlY3Rpb25Dcml0ZXJpYT4gYXV0aGVudGljYXRvclNlbGVjdGlvbjsKKyAgICBPcHRpb25h
bDxBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHM+IGV4dGVuc2lvbnM7IC8vIEEg
cGxhY2UgaG9sZGVyLCBidXQgbmV2ZXIgdXNlZC4KIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgT3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4g
ZGVjb2RlKERlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMu
aWRsCmluZGV4IDM2ZTE4MGJlZGZjODIwMWYzYmM0YjUzNWNhYzBmNzQzYzhlN2M1ZjUuLjAzM2Uw
ZGM4Nzk1OWI3M2YxYjVmZDliYTZiY2M4MGJkMWVlZWFkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbApAQCAtMzksOCArMzksNyBAQCB0eXBlZGVmIGxvbmcg
Q09TRUFsZ29yaXRobUlkZW50aWZpZXI7CiAgICAgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRl
cmlhIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb247CiAgICAgLy8gQWx3YXlzICJkaXJlY3QiIGZvciB1
cy4KICAgICAvLyBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlIGF0dGVzdGF0aW9uID0g
Im5vbmUiOwotICAgIC8vIE5vdCBzdXBwb3J0IHlldC4KLSAgICAvLyBBdXRoZW50aWNhdGlvbkV4
dGVuc2lvbnMgZXh0ZW5zaW9uczsKKyAgICBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJ
bnB1dHMgZXh0ZW5zaW9uczsKIH07CiAKIFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERhdGEuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERhdGEuaAppbmRleCAyMTI2Y2Fj
OTJjNDYxMDQzNjAzODE5YmE1MmM3MGZjYmQyN2I5NDlkLi43ZTYzYmEzN2U0MjJhNzFjOWFlZjA2
OTNkMWNjZDg4MjljZDQxNTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oCkBAIC00OSw2ICs0OSw5IEBA
IHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7CiAgICAgbXV0YWJsZSBSZWZQdHI8QXJy
YXlCdWZmZXI+IHNpZ25hdHVyZTsKICAgICBtdXRhYmxlIFJlZlB0cjxBcnJheUJ1ZmZlcj4gdXNl
ckhhbmRsZTsKIAorICAgIC8vIEV4dGVuc2lvbnMKKyAgICBPcHRpb25hbDxib29sPiBhcHBpZDsK
KwogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25z
dDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UHVibGljS2V5
Q3JlZGVudGlhbERhdGE+IGRlY29kZShEZWNvZGVyJik7CiB9OwpAQCAtODEsNiArODQsOSBAQCB2
b2lkIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihzaWduYXR1cmUtPmJ5dGVM
ZW5ndGgoKSk7CiAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB1aW50OF90Kj4oc2lnbmF0dXJlLT5kYXRhKCkpLCBzaWduYXR1cmUtPmJ5dGVM
ZW5ndGgoKSwgMSk7CiAKKyAgICAvLyBFbmNvZGUgQXBwSUQgYmVmb3JlIHVzZXIgaGFuZGxlIHRv
IGF2b2lkIHRoZSB1c2VySGFuZGxlIGZsYWcuCisgICAgZW5jb2RlciA8PCBhcHBpZDsKKwogICAg
IGlmICghdXNlckhhbmRsZSkgewogICAgICAgICBlbmNvZGVyIDw8IGZhbHNlOwogICAgICAgICBy
ZXR1cm47CkBAIC0xNDgsNiArMTU0LDEyIEBAIE9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxE
YXRhPiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4
X3QqPihyZXN1bHQuc2lnbmF0dXJlLT5kYXRhKCkpLCBzaWduYXR1cmVMZW5ndGgudmFsdWUoKSwg
MSkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKKyAgICBPcHRpb25hbDxPcHRpb25h
bDxib29sPj4gYXBwaWQ7CisgICAgZGVjb2RlciA+PiBhcHBpZDsKKyAgICBpZiAoIWFwcGlkKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJlc3VsdC5hcHBpZCA9IFdURk1vdmUo
KmFwcGlkKTsKKwogICAgIE9wdGlvbmFsPGJvb2w+IGhhc1VzZXJIYW5kbGU7CiAgICAgZGVjb2Rl
ciA+PiBoYXNVc2VySGFuZGxlOwogICAgIGlmICghaGFzVXNlckhhbmRsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oCmluZGV4IDZiOWNhYjc3ZDg2YTY4Zjc2ZmI4YmE4OGU5
NWMwZDgzMjFiMjQ5Y2QuLjIyZGEzMjUxYWQwMWZmNWNjNzg1YTFkYTdjOGRmMGZmZDNmNzc5M2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaApAQCAtMjcsNiArMjcsNyBA
QAogCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uRXh0
ZW5zaW9uc0NsaWVudElucHV0cy5oIgogI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgogI2luY2x1
ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50LmgiCkBAIC00MCw2ICs0MSw3IEBAIHN0cnVjdCBQdWJsaWNLZXlD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewogICAgIG11dGFibGUgU3RyaW5nIHJwSWQ7CiAgICAg
VmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBhbGxvd0NyZWRlbnRpYWxzOwog
ICAgIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB1c2VyVmVyaWZpY2F0aW9uIHsgVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQgfTsKKyAgICBtdXRhYmxlIE9wdGlvbmFs
PEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cz4gZXh0ZW5zaW9uczsKIAogICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtNDksNyArNTEsNyBAQCBz
dHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIHsKIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+CiB2b2lkIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aW1lb3V0IDw8IHJw
SWQgPDwgYWxsb3dDcmVkZW50aWFscyA8PCB1c2VyVmVyaWZpY2F0aW9uOworICAgIGVuY29kZXIg
PDwgdGltZW91dCA8PCBycElkIDw8IGFsbG93Q3JlZGVudGlhbHMgPDwgdXNlclZlcmlmaWNhdGlv
biA8PCBleHRlbnNpb25zOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtNzQsNiAr
NzYsMTIgQEAgT3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiBQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6OmQKICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKICAgICByZXN1bHQudXNlclZlcmlmaWNhdGlvbiA9IFdURk1vdmUoKnVzZXJWZXJpZmlj
YXRpb24pOwogCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8QXV0aGVudGljYXRpb25FeHRlbnNpb25z
Q2xpZW50SW5wdXRzPj4gZXh0ZW5zaW9uczsKKyAgICBkZWNvZGVyID4+IGV4dGVuc2lvbnM7Cisg
ICAgaWYgKCFleHRlbnNpb25zKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJl
c3VsdC5leHRlbnNpb25zID0gV1RGTW92ZSgqZXh0ZW5zaW9ucyk7CisKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwKaW5kZXgg
ZDY1MWRiMjhhZTY2ZDBmYzY5ODIxMGQ2ODcxNmQ2ZTExMTQwYzgzOS4uM2UzOTJiZTg2NTdmOWU1
Y2ExNjYwMTgyZDhjM2NlZWRhMGExZmU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zLmlkbApAQCAtMzEsNiArMzEsNSBAQAogICAgIFVTVlN0cmluZyBycElkOwogICAg
IHNlcXVlbmNlPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBhbGxvd0NyZWRlbnRpYWxz
ID0gW107CiAgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24g
PSAicHJlZmVycmVkIjsKLSAgICAvLyBOb3Qgc3VwcG9ydCB5ZXQuCi0gICAgLy8gQXV0aGVudGlj
YXRpb25FeHRlbnNpb25zIGV4dGVuc2lvbnM7CisgICAgQXV0aGVudGljYXRpb25FeHRlbnNpb25z
Q2xpZW50SW5wdXRzIGV4dGVuc2lvbnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5j
cHAKaW5kZXggZDAzNjcxNzg2N2RkMWY4ZTk5NTY2NzYyM2FiNWZmNzQ1NGY0NWEyZi4uMTI0NDJi
MTI1Yzc5MDI5ZDhjZjRhNWFjNDE2ZGIxMTRmYjI1NjYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VD
b252ZXJ0ZXIuY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgT3B0aW9uYWw8UHVibGljS2V5Q3JlZGVu
dGlhbERhdGE+IHJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb25zdCBWZWN0b3I8dWkK
ICAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9SKCJhdHRTdG10IildID0gV1RGTW92ZShhdHRT
dG10KTsKICAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gY2Jvcjo6Q0JPUldyaXRlcjo6d3Jp
dGUoQ0JPUihXVEZNb3ZlKGF0dGVzdGF0aW9uT2JqZWN0TWFwKSkpOwogCi0gICAgcmV0dXJuIFB1
YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFsSWQu
ZGF0YSgpLCBjcmVkZW50aWFsSWQuc2l6ZSgpKSwgdHJ1ZSwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6
OmNyZWF0ZShhdHRlc3RhdGlvbk9iamVjdC52YWx1ZSgpLmRhdGEoKSwgYXR0ZXN0YXRpb25PYmpl
Y3QudmFsdWUoKS5zaXplKCkpLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07CisgICAgcmV0
dXJuIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50
aWFsSWQuZGF0YSgpLCBjcmVkZW50aWFsSWQuc2l6ZSgpKSwgdHJ1ZSwgbnVsbHB0ciwgQXJyYXlC
dWZmZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9iamVjdC52YWx1ZSgpLmRhdGEoKSwgYXR0ZXN0YXRp
b25PYmplY3QudmFsdWUoKS5zaXplKCkpLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBXVEY6
Om51bGxvcHQgfTsKIH0KIAogT3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRD
VEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpbkJ1ZmZlcikK
QEAgLTE3MCw3ICsxNzAsNyBAQCBPcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVh
ZENUQVBHZXRBc3NlcnRpb25SZXNwb25zZShjb25zdCBWZWN0b3I8dWludAogICAgICAgICB1c2Vy
SGFuZGxlID0gQXJyYXlCdWZmZXI6OmNyZWF0ZShpZC5kYXRhKCksIGlkLnNpemUoKSk7CiAgICAg
fQogCi0gICAgcmV0dXJuIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgV1RGTW92ZShjcmVkZW50
aWFsSWQpLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdXRo
RGF0YS5kYXRhKCksIGF1dGhEYXRhLnNpemUoKSksIEFycmF5QnVmZmVyOjpjcmVhdGUoc2lnbmF0
dXJlLmRhdGEoKSwgc2lnbmF0dXJlLnNpemUoKSksIFdURk1vdmUodXNlckhhbmRsZSkgfTsKKyAg
ICByZXR1cm4gUHVibGljS2V5Q3JlZGVudGlhbERhdGEgeyBXVEZNb3ZlKGNyZWRlbnRpYWxJZCks
IGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF1dGhEYXRhLmRh
dGEoKSwgYXV0aERhdGEuc2l6ZSgpKSwgQXJyYXlCdWZmZXI6OmNyZWF0ZShzaWduYXR1cmUuZGF0
YSgpLCBzaWduYXR1cmUuc2l6ZSgpKSwgV1RGTW92ZSh1c2VySGFuZGxlKSwgV1RGOjpudWxsb3B0
IH07CiB9CiAKIE9wdGlvbmFsPEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U+IHJlYWRDVEFQ
R2V0SW5mb1Jlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaW5CdWZmZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmQ29tbWFuZENvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZDb21t
YW5kQ29uc3RydWN0b3IuY3BwCmluZGV4IGQ5ZTc3NzEyZWYxZGIyMjcwMmQ0YWY0MDk3ZjUwZmNj
ZGFiNTJlZmMuLjYxNjViODgxNGMzZGQ0MDVhMTYwM2JiMmRjYmNjMjZiYzZhNzg2ZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZDb21tYW5kQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9V
MmZDb21tYW5kQ29uc3RydWN0b3IuY3BwCkBAIC0xMTQsMTIgKzExNCwxNSBAQCBPcHRpb25hbDxW
ZWN0b3I8dWludDhfdD4+IGNvbnZlcnRUb1UyZkNoZWNrT25seVNpZ25Db21tYW5kKGNvbnN0IFZl
Y3Rvcjx1aW50OF90PgogICAgIHJldHVybiBjb25zdHJ1Y3RVMmZTaWduQ29tbWFuZChwcm9kdWNl
UnBJZEhhc2gocmVxdWVzdC5ycC5pZCksIGNsaWVudERhdGFIYXNoLCBrZXlIYW5kbGUuaWRWZWN0
b3IsIHRydWUgLyogY2hlY2tPbmx5ICovKTsKIH0KIAotT3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+
PiBjb252ZXJ0VG9VMmZTaWduQ29tbWFuZChjb25zdCBWZWN0b3I8dWludDhfdD4mIGNsaWVudERh
dGFIYXNoLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmIHJlcXVlc3Qs
IGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5SGFuZGxlLCBib29sIGNoZWNrT25seSkKK09wdGlv
bmFsPFZlY3Rvcjx1aW50OF90Pj4gY29udmVydFRvVTJmU2lnbkNvbW1hbmQoY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBjbGllbnREYXRhSGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zJiByZXF1ZXN0LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleUhhbmRsZSwgYm9v
bCBpc0FwcElkKQogewogICAgIGlmICghaXNDb252ZXJ0aWJsZVRvVTJmU2lnbkNvbW1hbmQocmVx
dWVzdCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gY29uc3Ry
dWN0VTJmU2lnbkNvbW1hbmQocHJvZHVjZVJwSWRIYXNoKHJlcXVlc3QucnBJZCksIGNsaWVudERh
dGFIYXNoLCBrZXlIYW5kbGUsIGNoZWNrT25seSk7CisgICAgaWYgKCFpc0FwcElkKQorICAgICAg
ICByZXR1cm4gY29uc3RydWN0VTJmU2lnbkNvbW1hbmQocHJvZHVjZVJwSWRIYXNoKHJlcXVlc3Qu
cnBJZCksIGNsaWVudERhdGFIYXNoLCBrZXlIYW5kbGUsIGZhbHNlKTsKKyAgICBBU1NFUlQocmVx
dWVzdC5leHRlbnNpb25zICYmICFyZXF1ZXN0LmV4dGVuc2lvbnMtPmFwcGlkLmlzTnVsbCgpKTsK
KyAgICByZXR1cm4gY29uc3RydWN0VTJmU2lnbkNvbW1hbmQocHJvZHVjZVJwSWRIYXNoKHJlcXVl
c3QuZXh0ZW5zaW9ucy0+YXBwaWQpLCBjbGllbnREYXRhSGFzaCwga2V5SGFuZGxlLCBmYWxzZSk7
CiB9CiAKIFZlY3Rvcjx1aW50OF90PiBjb25zdHJ1Y3RCb2d1c1UyZlJlZ2lzdHJhdGlvbkNvbW1h
bmQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Uy
ZkNvbW1hbmRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9m
aWRvL1UyZkNvbW1hbmRDb25zdHJ1Y3Rvci5oCmluZGV4IDA3ZTE2ZTVjZjU3NWEyZTg0MGM5NGIw
NTJlOTlhYTU0NTdiODZlZmQuLmVlYmUyOTJmZjJhYzQ3ZmZjYTM3OTQyMGQ1ZGVhYWZlNzQ2Yzlk
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZD
b21tYW5kQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vVTJmQ29tbWFuZENvbnN0cnVjdG9yLmgKQEAgLTYyLDcgKzYyLDcgQEAgV0VCQ09SRV9F
WFBPUlQgT3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBjb252ZXJ0VG9VMmZSZWdpc3RlckNvbW1h
bmQoY29uc3QgVmVjdG8KIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4g
Y29udmVydFRvVTJmQ2hlY2tPbmx5U2lnbkNvbW1hbmQoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBj
bGllbnREYXRhSGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yJik7
CiAKIC8vIEV4dHJhY3RzIEFQRFUgZW5jb2RlZCBVMkYgc2lnbiBjb21tYW5kIGZyb20gUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLgotV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8VmVj
dG9yPHVpbnQ4X3Q+PiBjb252ZXJ0VG9VMmZTaWduQ29tbWFuZChjb25zdCBWZWN0b3I8dWludDhf
dD4mIGNsaWVudERhdGFIYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleUhhbmRsZSwgYm9vbCBjaGVj
a09ubHkgPSBmYWxzZSk7CitXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxWZWN0b3I8dWludDhfdD4+
IGNvbnZlcnRUb1UyZlNpZ25Db21tYW5kKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgY2xpZW50RGF0
YUhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYs
IGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5SGFuZGxlLCBib29sIGlzQXBwSWQgPSBmYWxzZSk7
CiAKIFdFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBjb25zdHJ1Y3RCb2d1c1UyZlJlZ2lz
dHJhdGlvbkNvbW1hbmQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAKaW5kZXggY2I0Njc4
MTY4YjRiODJkMWU0YWU3ZTBhNzdjZDFhMjU0YTg3MzYyNC4uMzJhMTg1M2JhYzQ3MDYwNTk0NTA0
YjY2YTk3OThhZDM5NTYzZTY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCkBAIC0xNzAs
NyArMTcwLDcgQEAgT3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRVMmZSZWdp
c3RlclJlc3BvbnNlKGNvbnN0IFN0cmluZyYgcnBJZCwgY28KIAogICAgIGF1dG8gYXR0ZXN0YXRp
b25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiZmlk
by11MmYiLCBXVEZNb3ZlKGZpZG9BdHRlc3RhdGlvblN0YXRlbWVudCkpOwogCi0gICAgcmV0dXJu
IFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFs
SWQuZGF0YSgpLCBjcmVkZW50aWFsSWQuc2l6ZSgpKSwgdHJ1ZSwgbnVsbHB0ciwgQXJyYXlCdWZm
ZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9iamVjdC5kYXRhKCksIGF0dGVzdGF0aW9uT2JqZWN0LnNp
emUoKSksIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKKyAgICByZXR1cm4gUHVibGljS2V5
Q3JlZGVudGlhbERhdGEgeyBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNyZWRlbnRpYWxJZC5kYXRhKCks
IGNyZWRlbnRpYWxJZC5zaXplKCkpLCB0cnVlLCBudWxscHRyLCBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KGF0dGVzdGF0aW9uT2JqZWN0LmRhdGEoKSwgYXR0ZXN0YXRpb25PYmplY3Quc2l6ZSgpKSwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgV1RGOjpudWxsb3B0IH07CiB9CiAKIE9wdGlvbmFsPFB1
YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFkVTJmU2lnblJlc3BvbnNlKGNvbnN0IFN0cmluZyYg
cnBJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXlIYW5kbGUsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgdTJmRGF0YSkKQEAgLTE4Niw3ICsxODYsNyBAQCBPcHRpb25hbDxQdWJsaWNLZXlDcmVk
ZW50aWFsRGF0YT4gcmVhZFUyZlNpZ25SZXNwb25zZShjb25zdCBTdHJpbmcmIHJwSWQsIGNvbnN0
CiAgICAgY291bnRlciArPSB1MmZEYXRhW2NvdW50ZXJJbmRleCArIDNdOwogICAgIGF1dG8gYXV0
aERhdGEgPSBidWlsZEF1dGhEYXRhKHJwSWQsIGZsYWdzLCBjb3VudGVyLCB7IH0pOwogCi0gICAg
cmV0dXJuIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShrZXlI
YW5kbGUuZGF0YSgpLCBrZXlIYW5kbGUuc2l6ZSgpKSwgZmFsc2UsIG51bGxwdHIsIG51bGxwdHIs
IEFycmF5QnVmZmVyOjpjcmVhdGUoYXV0aERhdGEuZGF0YSgpLCBhdXRoRGF0YS5zaXplKCkpLCBB
cnJheUJ1ZmZlcjo6Y3JlYXRlKHUyZkRhdGEuZGF0YSgpICsgc2lnbmF0dXJlSW5kZXgsIHUyZkRh
dGEuc2l6ZSgpIC0gc2lnbmF0dXJlSW5kZXgpLCBudWxscHRyIH07CisgICAgcmV0dXJuIFB1Ymxp
Y0tleUNyZWRlbnRpYWxEYXRhIHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShrZXlIYW5kbGUuZGF0YSgp
LCBrZXlIYW5kbGUuc2l6ZSgpKSwgZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIEFycmF5QnVmZmVy
OjpjcmVhdGUoYXV0aERhdGEuZGF0YSgpLCBhdXRoRGF0YS5zaXplKCkpLCBBcnJheUJ1ZmZlcjo6
Y3JlYXRlKHUyZkRhdGEuZGF0YSgpICsgc2lnbmF0dXJlSW5kZXgsIHUyZkRhdGEuc2l6ZSgpIC0g
c2lnbmF0dXJlSW5kZXgpLCBudWxscHRyLCBXVEY6Om51bGxvcHQgfTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgZmlkbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA3MWNmZjFiMTFiMjcwYTU1MzlhYzI0NGY1ZTVk
MzFlYzI2ZDViMDgyLi43ZDRmZmJjMTg2MGM2MjM5ZDU2NTg4M2VjOGJmOTZiMjNhMzQxOGRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtMjU2OSw2ICsyNTY5LDcgQEAgSlNBdWRpb0xpc3RlbmVyLmNwcAog
SlNBdWRpb05vZGUuY3BwCiBKU0F1ZGlvUGFyYW0uY3BwCiBKU0F1ZGlvUHJvY2Vzc2luZ0V2ZW50
LmNwcAorSlNBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuY3BwCiBKU0F1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHAKIEpTQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2UuY3BwCiBKU0F1dGhlbnRpY2F0b3JSZXNwb25zZS5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZTUyOWRjNDI0
OTYxNDJjOTE5NTEzNGE3YjY1N2QzY2I4MTA4OTY0Li5mYjhjNGVlZGE2MzI5NWZiNjkwMzcxZTFl
MTI2Njg3N2MzMGM4Mjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODY2LDYgKzE4NjYsNyBAQAogCQk1N0QwMDE4RDFERDU0
MTMyMDBFRDE5RDkgLyogSlNDcnlwdG9LZXlVc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEMDAxOEMxREQ1NDEzMjAwRUQxOUQ5IC8qIEpTQ3J5
cHRvS2V5VXNhZ2UuaCAqLzsgfTsKIAkJNTdEODQ2MkUxRkVBRjY5OTAwQ0EzNjgyIC8qIFB1Ymxp
Y0tleUNyZWRlbnRpYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3RDg0NjJCMUZFQUY2OEYwMENBMzY4MiAvKiBQdWJsaWNLZXlDcmVkZW50aWFsLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTdEODQ2
MzUxRkVBRkNEMzAwQ0EzNjgyIC8qIEpTUHVibGljS2V5Q3JlZGVudGlhbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEODQ2MzAxRkVBRkMyRjAwQ0Ez
NjgyIC8qIEpTUHVibGljS2V5Q3JlZGVudGlhbC5oICovOyB9OworCQk1N0RBNDdCMDIyNDAzNEU0
MDAyQTQ2MTIgLyogQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0RBNDdBNTIyNDAxRTBG
MDAyQTQ2MTIgLyogQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTdEQ0VENzQyMTQz
MDVGMDAwMTZCODQ3IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0RDRUQ3MjIxNDMwNUYwMDAxNkI4NDcg
LyogUHVibGljS2V5Q3JlZGVudGlhbERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk1N0RDRUQ5MDIxNDg3RkY3MDAxNkI4NDcgLyogQXV0aGVu
dGljYXRvclRyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTdEQ0VEOEMyMTQ4N0VEQjAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3JUcmFuc3Bv
cnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
N0RDRUQ5ODIxNDg4MjE2MDAxNkI4NDcgLyogSlNBdXRoZW50aWNhdG9yVHJhbnNwb3J0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0RDRUQ5MjIxNDg4
MEM2MDAxNkI4NDcgLyogSlNBdXRoZW50aWNhdG9yVHJhbnNwb3J0LmggKi87IH07CkBAIC04ODcx
LDYgKzg4NzIsMTAgQEAKIAkJNTdEODQ2MkQxRkVBRjY4RjAwQ0EzNjgyIC8qIFB1YmxpY0tleUNy
ZWRlbnRpYWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFB1YmxpY0tleUNyZWRlbnRpYWwuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1N0Q4NDYzMDFGRUFGQzJGMDBDQTM2ODIgLyogSlNQdWJsaWNLZXlD
cmVkZW50aWFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUHVibGljS2V5
Q3JlZGVudGlhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0Q4NDYzMTFGRUFG
QzJGMDBDQTM2ODIgLyogSlNQdWJsaWNLZXlDcmVkZW50aWFsLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUHVibGljS2V5Q3JlZGVudGlhbC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3REE0N0E1MjI0MDFFMEYwMDJBNDYxMiAvKiBBdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGlj
YXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTU3REE0N0E3MjI0MDFFMEYwMDJBNDYxMiAvKiBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnND
bGllbnRJbnB1dHMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0
cy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3REE0N0FDMjI0MDMyREMwMDJB
NDYxMiAvKiBKU0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3REE0N0FEMjI0MDMyREQwMDJBNDYxMiAv
KiBKU0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1N0RDRUQ3MjIxNDMwNUYwMDAxNkI4NDcgLyogUHVibGljS2V5Q3Jl
ZGVudGlhbERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHVibGljS2V5Q3JlZGVudGlhbERhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdEQ0VEOEMyMTQ4N0VEQjAwMTZCODQ3IC8q
IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRvclRy
YW5zcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0RDRUQ4RTIxNDg3RURC
MDAxNkI4NDcgLyogQXV0aGVudGljYXRvclRyYW5zcG9ydC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXV0aGVudGljYXRv
clRyYW5zcG9ydC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTg4MSw2ICsx
OTg4Niw4IEBACiAJCQkJNTcxNTJCNTMyMUNCMkNFMzAwMEMzN0NBIC8qIGFwZHUgKi8sCiAJCQkJ
NTczMDNCQjMyMDA2QzZFRDAwMzU1OTY1IC8qIGNib3IgKi8sCiAJCQkJNTc4QTRCRkEyMTY2QUUw
MDAwRDA4RjM0IC8qIGZpZG8gKi8sCisJCQkJNTdEQTQ3QTUyMjQwMUUwRjAwMkE0NjEyIC8qIEF1
dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5oICovLAorCQkJCTU3REE0N0E3MjI0
MDFFMEYwMDJBNDYxMiAvKiBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaWRs
ICovLAogCQkJCTU3MzAzQzI3MjAwOUIyRkMwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXNzZXJ0
aW9uUmVzcG9uc2UuaCAqLywKIAkJCQk1NzMwM0MyOTIwMDlCMkZDMDAzNTU5NjUgLyogQXV0aGVu
dGljYXRvckFzc2VydGlvblJlc3BvbnNlLmlkbCAqLywKIAkJCQk1NzMwM0MxQjIwMDlBOTg2MDAz
NTU5NjUgLyogQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaCAqLywKQEAgLTE5OTE3
LDYgKzE5OTI0LDggQEAKIAkJNTdEODQ2MkYxRkVBRkIwNTAwQ0EzNjgyIC8qIFdlYkF1dGhOICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1N0RBNDdBQzIy
NDAzMkRDMDAyQTQ2MTIgLyogSlNBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMu
Y3BwICovLAorCQkJCTU3REE0N0FEMjI0MDMyREQwMDJBNDYxMiAvKiBKU0F1dGhlbnRpY2F0aW9u
RXh0ZW5zaW9uc0NsaWVudElucHV0cy5oICovLAogCQkJCTU3MzAzQzJFMjAwOUI3REEwMDM1NTk2
NSAvKiBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHAgKi8sCiAJCQkJNTczMDND
MkQyMDA5QjdEOTAwMzU1OTY1IC8qIEpTQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmgg
Ki8sCiAJCQkJNTczMDNDMjAyMDA5QUVGNTAwMzU1OTY1IC8qIEpTQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UuY3BwICovLApAQCAtMjg2MTQsNiArMjg2MjMsNyBAQAogCQkJCTdFRTY4
NDYxMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM0RjcxM0EwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNDc0ODQxMEFBMTYxRDAwQjc5NDkz
IC8qIEF1dGhlbnRpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1N0RBNDdCMDIy
NDAzNEU0MDAyQTQ2MTIgLyogQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY0QzBDRTkyMzRFMDA3RUYzQ0QgLyogQXV0aGVudGlj
YXRpb25NYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQzJDMjAwOUI0QTgwMDM1NTk2NSAv
KiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3
MzAzQzFGMjAwOUFCNDIwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25z
ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3Iu
bW0KaW5kZXggNGUzZDExNDIxNGUxNmRiMDBhZDlkMDc2MDQzZmJmMmI2MWFiOWE5OC4uNjlmZmVk
YmFjYzc5NGU5MjY4Y2E4NjM1N2M5YjI4NDdhZGI3ZTJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9y
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L0xvY2FsQXV0aGVudGljYXRvci5tbQpAQCAtMzI2LDcgKzMyNiw3IEBAIHZvaWQgTG9jYWxBdXRo
ZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJBdHRlc3RlZChTZWNLZXlSZWYg
cHJpdmF0ZUtlCiAgICAgfQogICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVz
dGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiQXBwbGUiLCBXVEZNb3ZlKGF0dGVzdGF0
aW9uU3RhdGVtZW50TWFwKSk7CiAKLSAgICByZWNlaXZlUmVzcG9uZChQdWJsaWNLZXlDcmVkZW50
aWFsRGF0YSB7IEFycmF5QnVmZmVyOjpjcmVhdGUoY3JlZGVudGlhbElkLmRhdGEoKSwgY3JlZGVu
dGlhbElkLnNpemUoKSksIHRydWUsIG51bGxwdHIsIEFycmF5QnVmZmVyOjpjcmVhdGUoYXR0ZXN0
YXRpb25PYmplY3QuZGF0YSgpLCBhdHRlc3RhdGlvbk9iamVjdC5zaXplKCkpLCBudWxscHRyLCBu
dWxscHRyLCBudWxscHRyIH0pOworICAgIHJlY2VpdmVSZXNwb25kKFB1YmxpY0tleUNyZWRlbnRp
YWxEYXRhIHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFsSWQuZGF0YSgpLCBjcmVkZW50
aWFsSWQuc2l6ZSgpKSwgdHJ1ZSwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdHRlc3Rh
dGlvbk9iamVjdC5kYXRhKCksIGF0dGVzdGF0aW9uT2JqZWN0LnNpemUoKSksIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIFdURjo6bnVsbG9wdCB9KTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKIH0KIApAQCAtNDYzLDcgKzQ2Myw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9y
Ojpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyVXNlckNvbnNlbnRlZChMb2NhbENvbm5lY3Rpb246
CiAgICAgfQogCiAgICAgLy8gU3RlcCAxMy4KLSAgICByZWNlaXZlUmVzcG9uZChQdWJsaWNLZXlD
cmVkZW50aWFsRGF0YSB7IEFycmF5QnVmZmVyOjpjcmVhdGUoY3JlZGVudGlhbElkLmRhdGEoKSwg
Y3JlZGVudGlhbElkLnNpemUoKSksIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBBcnJheUJ1ZmZl
cjo6Y3JlYXRlKGF1dGhEYXRhLmRhdGEoKSwgYXV0aERhdGEuc2l6ZSgpKSwgQXJyYXlCdWZmZXI6
OmNyZWF0ZShzaWduYXR1cmUuZGF0YSgpLCBzaWduYXR1cmUuc2l6ZSgpKSwgQXJyYXlCdWZmZXI6
OmNyZWF0ZSh1c2VyaGFuZGxlLmRhdGEoKSwgdXNlcmhhbmRsZS5zaXplKCkpIH0pOworICAgIHJl
Y2VpdmVSZXNwb25kKFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgQXJyYXlCdWZmZXI6OmNyZWF0
ZShjcmVkZW50aWFsSWQuZGF0YSgpLCBjcmVkZW50aWFsSWQuc2l6ZSgpKSwgZmFsc2UsIG51bGxw
dHIsIG51bGxwdHIsIEFycmF5QnVmZmVyOjpjcmVhdGUoYXV0aERhdGEuZGF0YSgpLCBhdXRoRGF0
YS5zaXplKCkpLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHNpZ25hdHVyZS5kYXRhKCksIHNpZ25hdHVy
ZS5zaXplKCkpLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHVzZXJoYW5kbGUuZGF0YSgpLCB1c2VyaGFu
ZGxlLnNpemUoKSksIFdURjo6bnVsbG9wdCB9KTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vZmlkby9VMmZIaWRBdXRoZW50aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJmSGlkQXV0aGVudGljYXRvci5jcHAKaW5k
ZXggODQ0N2Y0MmY2M2IzOGFlYWQ1M2VlOWI1N2M0NWZiM2IyOGViZmIxMi4uZWIzZDE3ZDgyZTNm
NDgzMzc0YzI5MTA2NjE3YmE1MzI3MzQxMDNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9VMmZIaWRBdXRoZW50aWNhdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkhp
ZEF1dGhlbnRpY2F0b3IuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBVMmZIaWRBdXRoZW50
aWNhdG9yOjppc3N1ZVNpZ25Db21tYW5kKHNpemVfdCBpbmRleCkKICAgICAgICAgcmVjZWl2ZVJl
c3BvbmQoRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIk5vIGNyZWRlbnRpYWxzIGZy
b20gdGhlIGFsbG93Q3JlZGVudGlhbHMgbGlzdCBpcyBmb3VuZCBpbiB0aGUgYXV0aGVudGljYXRv
ci4iX3MgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgYXV0byB1MmZDbWQgPSBjb252
ZXJ0VG9VMmZTaWduQ29tbWFuZChyZXF1ZXN0RGF0YSgpLmhhc2gsIHJlcXVlc3REYXRhKCkucmVx
dWVzdE9wdGlvbnMsIHJlcXVlc3REYXRhKCkucmVxdWVzdE9wdGlvbnMuYWxsb3dDcmVkZW50aWFs
c1tpbmRleF0uaWRWZWN0b3IpOworICAgIGF1dG8gdTJmQ21kID0gY29udmVydFRvVTJmU2lnbkNv
bW1hbmQocmVxdWVzdERhdGEoKS5oYXNoLCByZXF1ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25zLCBy
ZXF1ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25zLmFsbG93Q3JlZGVudGlhbHNbaW5kZXhdLmlkVmVj
dG9yLCBtX2lzQXBwSWQpOwogICAgIEFTU0VSVCh1MmZDbWQpOwogICAgIGlzc3VlTmV3Q29tbWFu
ZChXVEZNb3ZlKCp1MmZDbWQpLCBDb21tYW5kVHlwZTo6U2lnbkNvbW1hbmQpOwogfQpAQCAtMjAw
LDExICsyMDAsMTkgQEAgdm9pZCBVMmZIaWRBdXRoZW50aWNhdG9yOjpjb250aW51ZVNpZ25Db21t
YW5kQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKEFwZHVSZXNwb25zZSYKIHsKICAgICBzd2l0Y2ggKGFw
ZHVSZXNwb25zZS5zdGF0dXMoKSkgewogICAgIGNhc2UgQXBkdVJlc3BvbnNlOjpTdGF0dXM6OlNX
X05PX0VSUk9SOiB7Ci0gICAgICAgIGF1dG8gcmVzcG9uc2UgPSByZWFkVTJmU2lnblJlc3BvbnNl
KHJlcXVlc3REYXRhKCkucmVxdWVzdE9wdGlvbnMucnBJZCwgcmVxdWVzdERhdGEoKS5yZXF1ZXN0
T3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzW21fbmV4dExpc3RJbmRleCAtIDFdLmlkVmVjdG9yLCBh
cGR1UmVzcG9uc2UuZGF0YSgpKTsKKyAgICAgICAgT3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlh
bERhdGE+IHJlc3BvbnNlOworICAgICAgICBpZiAobV9pc0FwcElkKSB7CisgICAgICAgICAgICBB
U1NFUlQocmVxdWVzdERhdGEoKS5yZXF1ZXN0T3B0aW9ucy5leHRlbnNpb25zICYmICFyZXF1ZXN0
RGF0YSgpLnJlcXVlc3RPcHRpb25zLmV4dGVuc2lvbnMtPmFwcGlkLmlzTnVsbCgpKTsKKyAgICAg
ICAgICAgIHJlc3BvbnNlID0gcmVhZFUyZlNpZ25SZXNwb25zZShyZXF1ZXN0RGF0YSgpLnJlcXVl
c3RPcHRpb25zLmV4dGVuc2lvbnMtPmFwcGlkLCByZXF1ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25z
LmFsbG93Q3JlZGVudGlhbHNbbV9uZXh0TGlzdEluZGV4IC0gMV0uaWRWZWN0b3IsIGFwZHVSZXNw
b25zZS5kYXRhKCkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJlc3BvbnNlID0gcmVh
ZFUyZlNpZ25SZXNwb25zZShyZXF1ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25zLnJwSWQsIHJlcXVl
c3REYXRhKCkucmVxdWVzdE9wdGlvbnMuYWxsb3dDcmVkZW50aWFsc1ttX25leHRMaXN0SW5kZXgg
LSAxXS5pZFZlY3RvciwgYXBkdVJlc3BvbnNlLmRhdGEoKSk7CiAgICAgICAgIGlmICghcmVzcG9u
c2UpIHsKICAgICAgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBVbmtub3du
RXJyb3IsICJDb3VsZG4ndCBwYXJzZSB0aGUgVTJGIHNpZ24gcmVzcG9uc2UuIl9zIH0pOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgICAgIGlmIChtX2lzQXBwSWQpCisgICAg
ICAgICAgICByZXNwb25zZS0+YXBwaWQgPSB0cnVlOworCiAgICAgICAgIHJlY2VpdmVSZXNwb25k
KFdURk1vdmUoKnJlc3BvbnNlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMTIsNiAr
MjIwLDE3IEBAIHZvaWQgVTJmSGlkQXV0aGVudGljYXRvcjo6Y29udGludWVTaWduQ29tbWFuZEFm
dGVyUmVzcG9uc2VSZWNlaXZlZChBcGR1UmVzcG9uc2UmCiAgICAgICAgIC8vIFBvbGxpbmcgaXMg
cmVxdWlyZWQgZHVyaW5nIHRlc3Qgb2YgdXNlciBwcmVzZW5jZS4KICAgICAgICAgbV9yZXRyeVRp
bWVyLnN0YXJ0T25lU2hvdChTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHJldHJ5VGltZU91dFZh
bHVlTXMpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQXBkdVJlc3BvbnNlOjpTdGF0dXM6
OlNXX1dST05HX0RBVEE6CisgICAgICAgIGlmIChyZXF1ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25z
LmV4dGVuc2lvbnMgJiYgIXJlcXVlc3REYXRhKCkucmVxdWVzdE9wdGlvbnMuZXh0ZW5zaW9ucy0+
YXBwaWQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIGlmICghbV9pc0FwcElkKSB7CisgICAgICAg
ICAgICAgICAgbV9pc0FwcElkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpc3N1ZVNpZ25Db21t
YW5kKG1fbmV4dExpc3RJbmRleCAtIDEpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIG1faXNBcHBJZCA9IGZhbHNlOworICAgICAgICB9CisgICAg
ICAgIGlzc3VlU2lnbkNvbW1hbmQobV9uZXh0TGlzdEluZGV4KyspOworICAgICAgICByZXR1cm47
CiAgICAgZGVmYXVsdDoKICAgICAgICAgaXNzdWVTaWduQ29tbWFuZChtX25leHRMaXN0SW5kZXgr
Kyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vZmlkby9VMmZIaWRBdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkhpZEF1dGhlbnRpY2F0b3IuaAppbmRleCBj
ZmYyOTQ3N2VkNjk5NTFlOTBjYzc4M2FiY2FiNTQ0YmQwMTVjMzQ0Li5hYWFiNjY2ZWQzZjljNWEy
NmM1Y2NjMzc1MTE4NWZlYzM3ODIzODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkhpZEF1dGhlbnRpY2F0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkhpZEF1dGhl
bnRpY2F0b3IuaApAQCAtNzQsNiArNzQsNyBAQCBwcml2YXRlOgogICAgIFZlY3Rvcjx1aW50OF90
PiBtX2xhc3RDb21tYW5kOwogICAgIENvbW1hbmRUeXBlIG1fbGFzdENvbW1hbmRUeXBlOwogICAg
IHNpemVfdCBtX25leHRMaXN0SW5kZXggeyAwIH07CisgICAgYm9vbCBtX2lzQXBwSWQgeyBmYWxz
ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2QzMDk3Njc4NzVjNWVhZGNhZTdhMjVkOTky
YmIzYTY2ZDE5YjJlOS4uNGNlMWIxNzMyNzg1MTFjZGE4ZDgzNTU0NjQ3MDM5NzJmN2IyNzU0YiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDE5LTAzLTE5ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBsZW1lbnQgRklETyBBcHBJRCBleHRlbnNpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzQ5MQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDgyOTgyNzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCB0aGF0IGNvdmVycyB0aGUgbmV3IGZs
YWcgb2YgY29udmVydFRvVTJmU2lnbkNvbW1hbmQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVz
dERhdGEuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVTJmQ29tbWFu
ZENvbnN0cnVjdG9yVGVzdC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwog
MjAxOS0wMy0xOSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW2V3cy1idWlsZF0gSW1wcm92ZSBzdW1tYXJ5IGZvciBQcmludENvbmZpZ3VyYXRpb24gc3Rl
cApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1
ZXN0VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVl
c3RUZXN0LmNwcAppbmRleCA4Y2I0NDI3YTZkMjdhZjBjYzBhYTA4ZTIzNGU2ODBjOWY2YmMwMDVj
Li5mNWU0ZjE0M2M2OWVhODUyOWI1OGY3MDk4ZmVmZWFiN2FiMjYzYjg0IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcApA
QCAtNTksNyArNTksNyBAQCBURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdE1ha2VD
cmVkZW50aWFsUmVxdWVzdFBhcmFtKQogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tleUNyZWRlbnRpYWxU
eXBlOjpQdWJsaWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5
LCAyNTcgfSB9OwogICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhl
bnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0sIHRydWUs
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CiAKLSAgICBQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwgdXNlciwgeyB9LCBwYXJh
bXMsIFdURjo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24gfTsKKyAgICBQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwgdXNlciwgeyB9LCBwYXJhbXMsIFdURjo6
bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24sIFdURjo6bnVsbG9wdCB9OwogICAgIFZlY3Rvcjx1aW50
OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNp
emVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CiAgICAgYXV0byBzZXJpYWxpemVkRGF0
YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6
a1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oCmluZGV4IGI2ODJmYjdjMjg3YzMwZDMwZmRjMGI1
NDBiYTY5NTIyNGUzMmE0MDIuLjkyNzkyMDEwYjM0MTRiNWM4MDAwZDA5YmJmYmUzYjhkYWNjOGMw
YjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVz
dERhdGEuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3RE
YXRhLmgKQEAgLTExMyw2ICsxMTMsMzIgQEAgY29uc3RleHByIHVpbnQ4X3Qga1UyZlNpZ25Db21t
YW5kQXBkdVtdID0gewogICAgIDB4MDAsIDB4MDAsCiB9OwogCitjb25zdGV4cHIgdWludDhfdCBr
VTJmQXBwSURTaWduQ29tbWFuZEFwZHVbXSA9IHsKKyAgICAvLyBDTEEsIElOUywgUDEsIFAyIEFQ
RFUgaW5zdHJ1Y3Rpb24gcGFyYW1ldGVycworICAgIDB4MDAsIDB4MDIsIDB4MDMsIDB4MDAsCisg
ICAgLy8gRGF0YSBMZW5ndGggKDMgYnl0ZXMgaW4gYmlnIGVuZGlhbiBvcmRlcikKKyAgICAweDAw
LCAweDAwLCAweDgxLAorICAgIC8vIENoYWxsZW5nZSBwYXJhbWV0ZXIgLS0gc2VlIGtDbGllbnRE
YXRhSGFzaAorICAgIDB4NjgsIDB4NzEsIDB4MzQsIDB4OTYsIDB4ODIsIDB4MjIsIDB4ZWMsIDB4
MTcsIDB4MjAsIDB4MmUsIDB4NDIsCisgICAgMHg1MCwgMHg1ZiwgMHg4ZSwgMHhkMiwgMHhiMSwg
MHg2YSwgMHhlMiwgMHgyZiwgMHgxNiwgMHhiYiwgMHgwNSwKKyAgICAweGI4LCAweDhjLCAweDI1
LCAweGRiLCAweDllLCAweDYwLCAweDI2LCAweDQ1LCAweGYxLCAweDQxLAorICAgIC8vIEFwcGxp
Y2F0aW9uIHBhcmFtZXRlcgorICAgIDB4YzksIDB4MzQsIDB4MDIsIDB4ODcsIDB4MDgsIDB4M2Qs
IDB4NjQsIDB4ZGUsIDB4ZWQsIDB4MTcsIDB4MWIsIDB4YmIsCisgICAgMHhkNywgMHg2MCwgMHgx
MCwgMHhhZSwgMHhjNSwgMHg2NSwgMHgzZSwgMHg3OCwgMHhmYywgMHhkMCwgMHgzMSwgMHg4OCwK
KyAgICAweGQwLCAweGJmLCAweDcwLCAweDE2LCAweDlhLCAweDQ2LCAweDkxLCAweGRhLAorICAg
IC8vIEtleSBoYW5kbGUgbGVuZ3RoCisgICAgMHg0MCwKKyAgICAvLyBLZXkgaGFuZGxlCisgICAg
MHgzRSwgMHhCRCwgMHg4OSwgMHhCRiwgMHg3NywgMHhFQywgMHg1MCwgMHg5NywgMHg1NSwgMHhF
RSwgMHg5QywgMHgyNiwKKyAgICAweDM1LCAweEVGLCAweEFBLCAweEFDLCAweDdCLCAweDJCLCAw
eDlDLCAweDVDLCAweEVGLCAweDE3LCAweDM2LCAweEMzLAorICAgIDB4NzEsIDB4N0QsIDB4QTQs
IDB4ODUsIDB4MzQsIDB4QzgsIDB4QzYsIDB4QjYsIDB4NTQsIDB4RDcsIDB4RkYsIDB4OTQsCisg
ICAgMHg1RiwgMHg1MCwgMHhCNSwgMHhDQywgMHg0RSwgMHg3OCwgMHgwNSwgMHg1QiwgMHhERCwg
MHgzOSwgMHg2QiwgMHg2NCwKKyAgICAweEY3LCAweDhELCAweEEyLCAweEM1LCAweEY5LCAweDYy
LCAweDAwLCAweENDLCAweEQ0LCAweDE1LCAweENELCAweDA4LAorICAgIDB4RkUsIDB4NDIsIDB4
MDAsIDB4MzgsCisgICAgLy8gTWF4IHJlc3BvbnNlIGxlbmd0aAorICAgIDB4MDAsIDB4MDAsCit9
OworCiBjb25zdGV4cHIgdWludDhfdCBrVTJmQ2hlY2tPbmx5U2lnbkNvbW1hbmRBcGR1W10gPSB7
CiAgICAgLy8gQ0xBLCBJTlMsIFAxLCBQMiBBUERVIGluc3RydWN0aW9uIHBhcmFtZXRlcnMKICAg
ICAweDAwLCAweDAyLCAweDA3LCAweDAwLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1UyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1UyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QuY3BwCmlu
ZGV4IDdkNzQ1ZjliYmM2NGFlMWUxNjZlMjIzYjYzMmI3M2IxODk2OTkzZWMuLjY0NjA0NDYyMmZi
YzE5MjUxODFjNzIxMmM0MGFhNGVhMmY4MGU5ZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9VMmZDb21tYW5kQ29uc3RydWN0b3JUZXN0LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVTJmQ29tbWFuZENvbnN0cnVjdG9yVGVz
dC5jcHAKQEAgLTE3Niw2ICsxNzYsMjcgQEAgVEVTVChVMmZDb21tYW5kQ29uc3RydWN0b3JUZXN0
LCBUZXN0Q29udmVydEN0YXBHZXRBc3NlcnRpb25Ub1UyZlNpZ25SZXF1ZXN0KQogICAgIEVYUEVD
VF9FUSgqdTJmU2lnbkNvbW1hbmQsIGNvbnZlcnRCeXRlc1RvVmVjdG9yKFRlc3REYXRhOjprVTJm
U2lnbkNvbW1hbmRBcGR1LCBzaXplb2YoVGVzdERhdGE6OmtVMmZTaWduQ29tbWFuZEFwZHUpKSk7
CiB9CiAKK1RFU1QoVTJmQ29tbWFuZENvbnN0cnVjdG9yVGVzdCwgVGVzdENvbnZlcnRDdGFwR2V0
QXNzZXJ0aW9uV2l0aEFwcElEVG9VMmZTaWduUmVxdWVzdCkKK3sKKyAgICBhdXRvIGdldEFzc2Vy
dGlvblJlcSA9IGNvbnN0cnVjdEdldEFzc2VydGlvblJlcXVlc3QoKTsKKyAgICBQdWJsaWNLZXlD
cmVkZW50aWFsRGVzY3JpcHRvciBjcmVkZW50aWFsRGVzY3JpcHRvcjsKKyAgICBjcmVkZW50aWFs
RGVzY3JpcHRvci50eXBlID0gUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleTsKKyAg
ICBjcmVkZW50aWFsRGVzY3JpcHRvci5pZFZlY3RvciA9IGNvbnZlcnRCeXRlc1RvVmVjdG9yKFRl
c3REYXRhOjprVTJmU2lnbktleUhhbmRsZSwgc2l6ZW9mKFRlc3REYXRhOjprVTJmU2lnbktleUhh
bmRsZSkpOworICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4gYWxsb3dl
ZExpc3Q7CisgICAgYWxsb3dlZExpc3QuYXBwZW5kKFdURk1vdmUoY3JlZGVudGlhbERlc2NyaXB0
b3IpKTsKKyAgICBnZXRBc3NlcnRpb25SZXEuYWxsb3dDcmVkZW50aWFscyA9IFdURk1vdmUoYWxs
b3dlZExpc3QpOworICAgIEVYUEVDVF9UUlVFKGlzQ29udmVydGlibGVUb1UyZlNpZ25Db21tYW5k
KGdldEFzc2VydGlvblJlcSkpOworCisgICAgLy8gQXBwSUQKKyAgICBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMgZXh0ZW5zaW9uczsKKyAgICBleHRlbnNpb25z
LmFwcGlkID0gImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tL2FwcGlkIjsKKyAgICBnZXRBc3NlcnRp
b25SZXEuZXh0ZW5zaW9ucyA9IFdURk1vdmUoZXh0ZW5zaW9ucyk7CisKKyAgICBjb25zdCBhdXRv
IHUyZlNpZ25Db21tYW5kID0gY29udmVydFRvVTJmU2lnbkNvbW1hbmQoY29udmVydEJ5dGVzVG9W
ZWN0b3IoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50
RGF0YUhhc2gpKSwgZ2V0QXNzZXJ0aW9uUmVxLCBjb252ZXJ0Qnl0ZXNUb1ZlY3RvcihUZXN0RGF0
YTo6a1UyZlNpZ25LZXlIYW5kbGUsIHNpemVvZihUZXN0RGF0YTo6a1UyZlNpZ25LZXlIYW5kbGUp
KSwgdHJ1ZSk7CisgICAgQVNTRVJUX1RSVUUodTJmU2lnbkNvbW1hbmQpOworICAgIEVYUEVDVF9F
USgqdTJmU2lnbkNvbW1hbmQsIGNvbnZlcnRCeXRlc1RvVmVjdG9yKFRlc3REYXRhOjprVTJmQXBw
SURTaWduQ29tbWFuZEFwZHUsIHNpemVvZihUZXN0RGF0YTo6a1UyZkFwcElEU2lnbkNvbW1hbmRB
cGR1KSkpOworfQorCiBURVNUKFUyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QsIFRlc3RVMmZTaWdu
QWxsb3dMaXN0UmVxdWlyZW1lbnQpCiB7CiAgICAgYXV0byBnZXRBc3NlcnRpb25SZXEgPSBjb25z
dHJ1Y3RHZXRBc3NlcnRpb25SZXF1ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjgzNWU0ZjFiNTE0ZGJkZWQ4Zjgx
M2E1MTk1ZDc1ZjE1YTRiM2RiOS4uNGE3NThkYzUwY2UwZDZlMTUwMGZkNWM2MjcwNWRhMmU1MTA2
NGI3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTAzLTE5ICBKaWV3ZW4gVGFuICA8amll
d2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBsZW1lbnQgRklETyBB
cHBJRCBleHRlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MzQ5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgyOTgyNzM+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWw6
CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0
ZS1zdWNjZXNzLWxvY2FsLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLXUyZi5odHRwcy5odG1sOgorICAg
ICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVy
ZS11MmYuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS11MmYuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUuaHR0
cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbDoK
KyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1
Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtdTJmLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nl
c3MtdTJmLmh0dHBzLmh0bWw6CisKIDIwMTktMDMtMTkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmVwYXJlbnRpbmcgZHVyaW5nIGEgbXV0YXRpb24gZXZlbnQg
aW5zaWRlIGFwcGVuZENoaWxkIGNvdWxkIHJlc3VsdCBpbiBhIGNpcmN1bGFyIERPTSB0cmVlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBz
Lmh0bWwKaW5kZXggYzk3MTgzNTI3YTc0ZTRkMjdlNGEyMjQyODdjNjJlYTA1NGVlMjA4Mi4uYmIy
ZjEwMjc4ZjZlZjU1YWM4YWViZjYyYTFjNDA3MGE5ZmYxOTBmNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNj
ZXNzLWhpZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbApAQCAtMTYs
NyArMTYsNyBAQAogICAgICAgICBhc3NlcnRfZXF1YWxzKGNyZWRlbnRpYWwudHlwZSwgJ3B1Ymxp
Yy1rZXknKTsKICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhuZXcgVWludDhBcnJheShjcmVk
ZW50aWFsLnJhd0lkKSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RIaWRDcmVkZW50aWFsSWRCYXNlNjQp
KTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvQVNDSUlTdHJpbmcoY3JlZGVudGlhbC5y
ZXNwb25zZS5jbGllbnREYXRhSlNPTiksICd7InR5cGUiOiJ3ZWJhdXRobi5jcmVhdGUiLCJjaGFs
bGVuZ2UiOiJNVEl6TkRVMiIsIm9yaWdpbiI6Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMifScpOwot
ICAgICAgICBhc3NlcnRfdGhyb3dzKCJOb3RTdXBwb3J0ZWRFcnJvciIsICgpID0+IHsgY3JlZGVu
dGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgfSk7CisgICAgICAgIGFzc2VydF9ub3Rf
ZXhpc3RzKGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpKTsKIAogICAgICAg
ICAvLyBDaGVjayBhdHRlc3RhdGlvbgogICAgICAgICBjb25zdCBhdHRlc3RhdGlvbk9iamVjdCA9
IENCT1IuZGVjb2RlKGNyZWRlbnRpYWwucmVzcG9uc2UuYXR0ZXN0YXRpb25PYmplY3QpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWNyZWF0ZS1zdWNjZXNzLWxvY2FsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbG9jYWwuaHR0
cHMuaHRtbAppbmRleCA2Zjg3N2M0NGY2ZWMzNjhmYzJkZWY2MDEzYWQ1ZmRjYWMxNDA0N2EzLi40
MTRkODhiMDIzZjkxMzFmMzY2OTFiOWEwZDg4YjI5ZDA5ZmM3YTdmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1
Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbApA
QCAtMzAsNyArMzAsNyBAQAogICAgICAgICBhc3NlcnRfZXF1YWxzKGNyZWRlbnRpYWwudHlwZSwg
J3B1YmxpYy1rZXknKTsKICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhuZXcgVWludDhBcnJh
eShjcmVkZW50aWFsLnJhd0lkKSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNl
NjQpKTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvQVNDSUlTdHJpbmcoY3JlZGVudGlh
bC5yZXNwb25zZS5jbGllbnREYXRhSlNPTiksICd7InR5cGUiOiJ3ZWJhdXRobi5jcmVhdGUiLCJj
aGFsbGVuZ2UiOiJNVEl6TkRVMiIsIm9yaWdpbiI6Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMifScp
OwotICAgICAgICBhc3NlcnRfdGhyb3dzKCJOb3RTdXBwb3J0ZWRFcnJvciIsICgpID0+IHsgY3Jl
ZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgfSk7CisgICAgICAgIGFzc2VydF9u
b3RfZXhpc3RzKGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpKTsKIAogICAg
ICAgICAvLyBDaGVjayBhdHRlc3RhdGlvbgogICAgICAgICBjb25zdCBhdHRlc3RhdGlvbk9iamVj
dCA9IENCT1IuZGVjb2RlKGNyZWRlbnRpYWwucmVzcG9uc2UuYXR0ZXN0YXRpb25PYmplY3QpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWNyZWF0ZS1zdWNjZXNzLXUyZi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLXUyZi5odHRw
cy5odG1sCmluZGV4IDlmYWVmODUwNjM5ZjU4ZWEwODc2YTI5MDU1NzgyOWQwMTEyMTA2Y2MuLjc2
NjFhOGY4ZDdkZDZhYWEzMDRjZDNkZWJhYTVhNmU5YjBmN2U2ZjEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3Vj
Y2Vzcy11MmYuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtdTJmLmh0dHBzLmh0bWwKQEAgLTEy
LDcgKzEyLDcgQEAKICAgICAgICAgYXNzZXJ0X2VxdWFscyhjcmVkZW50aWFsLnR5cGUsICdwdWJs
aWMta2V5Jyk7CiAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobmV3IFVpbnQ4QXJyYXkoY3Jl
ZGVudGlhbC5yYXdJZCksIEJhc2U2NFVSTC5wYXJzZSh0ZXN0VTJmQ3JlZGVudGlhbElkQmFzZTY0
KSk7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0FTQ0lJU3RyaW5nKGNyZWRlbnRpYWwu
cmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLCAneyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hh
bGxlbmdlIjoiTVRJek5EVTIiLCJvcmlnaW4iOiJodHRwczovL2xvY2FsaG9zdDo5NDQzIn0nKTsK
LSAgICAgICAgYXNzZXJ0X3Rocm93cygiTm90U3VwcG9ydGVkRXJyb3IiLCAoKSA9PiB7IGNyZWRl
bnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIH0pOworICAgICAgICBhc3NlcnRfbm90
X2V4aXN0cyhjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSk7CiAKICAgICAg
ICAgLy8gQ2hlY2sgYXR0ZXN0YXRpb24KICAgICAgICAgY29uc3QgYXR0ZXN0YXRpb25PYmplY3Qg
PSBDQk9SLmRlY29kZShjcmVkZW50aWFsLnJlc3BvbnNlLmF0dGVzdGF0aW9uT2JqZWN0KTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1nZXQtZmFpbHVyZS11MmYuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLXUyZi5odHRw
cy1leHBlY3RlZC50eHQKaW5kZXggNWEwNjE0NWJkNTVmYWM1ZDQ2OWI3ZTM4YWU5MDVhOTAxOGZi
ZWU0ZC4uYjU3Yjc4NGVkNDBjZjRkNTQyOWRlNTk2NGJlYzYzZmVlZTIyNDg4NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdl
dC1mYWlsdXJlLXUyZi5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLXUyZi5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTIsNCArMiw2IEBACiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2dldF1dIHdpdGggbWFsZm9ybWVkIHNpZ24gcmVzcG9uc2UgaW4gYSBtb2NrIGhpZCBhdXRoZW50
aWNhdG9yLiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRj
aGVkIGFsbG93IGNyZWRlbnRpYWxzIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNT
IFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggbm8gbWF0Y2hlZCBhbGxvdyBjcmVk
ZW50aWFscyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIDIgCitQQVNTIFB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2dldF1dIHdpdGggbm8gbWF0Y2hlZCBhbGxvdyBjcmVkZW50aWFscyBpbiBh
IG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIChBcHBJRCkgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2dldF1dIHdpdGggbm8gbWF0Y2hlZCBhbGxvdyBjcmVkZW50aWFscyBpbiBhIG1vY2sg
aGlkIGF1dGhlbnRpY2F0b3IuIDIgKEFwcElEKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLXUyZi5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWdldC1mYWlsdXJlLXUyZi5odHRwcy5odG1sCmluZGV4IGI0MzViNWY1YzdmMDFlNjZk
MjE4MzE1Y2UwMDlhMGNhNmQxYmYyZmMuLjY0OTEzNzgyODRlYjY3YTE5ZTdkNjA1ZTY4NzAwMGRh
NjQxZWJkZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS11MmYuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUt
dTJmLmh0dHBzLmh0bWwKQEAgLTQyLDQgKzQyLDMzIEBACiAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3RhZ2U6ICJy
ZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjogIm1hbGljaW91cy1wYXlsb2FkIiwgaXNV
MmY6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNwb25z
ZUJhc2U2NCwgdGVzdFUyZkFwZHVXcm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNlNjRdIH0gfSk7CiAg
ICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk5vIGNyZWRlbnRpYWxzIGZyb20gdGhlIGFs
bG93Q3JlZGVudGlhbHMgbGlzdCBpcyBmb3VuZCBpbiB0aGUgYXV0aGVudGljYXRvci4iKTsKICAg
ICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGFsbG93
IGNyZWRlbnRpYWxzIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gMiIpOworCisgICAgLy8g
V2l0aCBBcHBJRCBleHRlbnNpb24KKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAg
ICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAg
ICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAg
ICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFz
ZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpIH1dLAorICAgICAgICAgICAgICAg
IGV4dGVuc2lvbnM6IHsgYXBwaWQ6ICIiIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKwor
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3RhZ2U6ICJyZXF1
ZXN0Iiwgc3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjogIm1hbGljaW91cy1wYXlsb2FkIiwgaXNVMmY6
IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNwb25zZUJh
c2U2NCwgdGVzdFUyZkFwZHVXcm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNlNjRdIH0gfSk7CisgICAg
ICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk5vIGNyZWRlbnRpYWxzIGZyb20gdGhlIGFsbG93
Q3JlZGVudGlhbHMgbGlzdCBpcyBmb3VuZCBpbiB0aGUgYXV0aGVudGljYXRvci4iKTsKKyAgICB9
LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGFsbG93IGNy
ZWRlbnRpYWxzIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gKEFwcElEKSIpOworCisgICAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAg
ICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlU
b1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIGFsbG93Q3JlZGVudGlhbHM6
IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlh
bElkQmFzZTY0KSB9LCB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0
ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSB9XSwKKyAgICAgICAgICAgICAgICBleHRlbnNpb25zOiB7
IGFwcGlkOiAiIiB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNh
dGlvbk1vY2tDb25maWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0YWdl
OiAibXNnIiwgZXJyb3I6ICJtYWxpY2lvdXMtcGF5bG9hZCIsIGlzVTJmOiB0cnVlLCBwYXlsb2Fk
QmFzZTY0OiBbdGVzdFUyZkFwZHVXcm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNlNjQsIHRlc3RVMmZB
cGR1V3JvbmdEYXRhT25seVJlc3BvbnNlQmFzZTY0LCB0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlS
ZXNwb25zZUJhc2U2NCwgdGVzdFUyZkFwZHVXcm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNlNjRdIH0g
fSk7CisgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk5vIGNyZWRlbnRpYWxzIGZyb20g
dGhlIGFsbG93Q3JlZGVudGlhbHMgbGlzdCBpcyBmb3VuZCBpbiB0aGUgYXV0aGVudGljYXRvci4i
KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVk
IGFsbG93IGNyZWRlbnRpYWxzIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gMiAoQXBwSUQp
Iik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZh
aWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDFmNzE0ODFlZTYzYjk1YTljN2UzZjkwOGRl
ODliODIzZDE0MmNmNGYuLmQwZmE2MWY4NDIzMmYyMTMwMDBjYmJjM2IwMTMzNmVlZmIxODY2MzUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDggQEAKIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFs
J3MgW1tnZXRdXSB3aXRoIHRpbWVvdXQgCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dl
dF1dIHdpdGggYSBtaXNtYXRjaGVkIFJQIElEIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tnZXRdXSB3aXRoIGEgbWlzbWF0Y2hlZCBBUFAgSUQgKGludmFsaWQgVVJMcykgCitQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYSBtaXNtYXRjaGVkIEFQUCBJRCAoZGlm
ZmVyZW50IHByb3RvY29scykgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdp
dGggYSBtaXNtYXRjaGVkIEFQUCBJRCAoZGlmZmVyZW50IHNpdGVzIDEpIAorUEFTUyBQdWJsaWNL
ZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGEgbWlzbWF0Y2hlZCBBUFAgSUQgKGRpZmZlcmVu
dCBzaXRlcyAyKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUuaHR0
cHMuaHRtbAppbmRleCBiMDVlY2NiMjhlZWZkM2U5NTc3YTkwOGU3ZWMzNmQ0NjdhMzZhMjczLi5h
MjQ1NjkwYTIyZGFlNGMyYzk0OTUwMjA1MWFhZjY4OTEzOGU3ZGNhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1
cmUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUuaHR0cHMuaHRtbApAQCAtMzEsNCArMzEsNTIgQEAK
ICAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJTZWN1cml0eUVycm9yIiwKICAgICAg
ICAgICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJUaGUgb3JpZ2luIG9m
IHRoZSBkb2N1bWVudCBpcyBub3QgYSByZWdpc3RyYWJsZSBkb21haW4gc3VmZml4IG9mIHRoZSBw
cm92aWRlZCBSUCBJRC4iKTsKICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0g
d2l0aCBhIG1pc21hdGNoZWQgUlAgSUQiKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAg
ICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAg
ICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAg
ICAgICAgICAgIGV4dGVuc2lvbnM6IHsgYXBwaWQ6ICJhYmMiIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfTsKKworICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlNlY3VyaXR5RXJy
b3IiLAorICAgICAgICAgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIlRo
ZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCBhdXRob3JpemVkIGZvciB0aGUgcHJvdmlk
ZWQgQXBwIElELiIpOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRo
IGEgbWlzbWF0Y2hlZCBBUFAgSUQgKGludmFsaWQgVVJMcykiKTsKKworICAgIHByb21pc2VfdGVz
dCh0ID0+IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tl
eTogeworICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1
NiIpLAorICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM6IHsgYXBwaWQ6ICJmdHA6Ly9sb2NhbGhv
c3QiIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICByZXR1cm4gcHJvbWlz
ZVJlamVjdHModCwgIlNlY3VyaXR5RXJyb3IiLAorICAgICAgICAgICAgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmdldChvcHRpb25zKSwgIlRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCBh
dXRob3JpemVkIGZvciB0aGUgcHJvdmlkZWQgQXBwIElELiIpOworICAgIH0sICJQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGEgbWlzbWF0Y2hlZCBBUFAgSUQgKGRpZmZlcmVudCBw
cm90b2NvbHMpIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9w
dGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBjaGFs
bGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBleHRl
bnNpb25zOiB7IGFwcGlkOiAiaHR0cHM6Ly8xMjcuMC4wLjEiIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfTsKKworICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlNlY3VyaXR5RXJy
b3IiLAorICAgICAgICAgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIlRo
ZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCBhdXRob3JpemVkIGZvciB0aGUgcHJvdmlk
ZWQgQXBwIElELiIpOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRo
IGEgbWlzbWF0Y2hlZCBBUFAgSUQgKGRpZmZlcmVudCBzaXRlcyAxKSIpOworCisgICAgcHJvbWlz
ZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVi
bGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgi
MTIzNDU2IiksCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeyBhcHBpZDogImh0dHBzOi8v
aGFoYS5sb2NhbGhvc3QiIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBy
ZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlNlY3VyaXR5RXJyb3IiLAorICAgICAgICAgICAgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIlRoZSBvcmlnaW4gb2YgdGhlIGRvY3Vt
ZW50IGlzIG5vdCBhdXRob3JpemVkIGZvciB0aGUgcHJvdmlkZWQgQXBwIElELiIpOworICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGEgbWlzbWF0Y2hlZCBBUFAgSUQg
KGRpZmZlcmVudCBzaXRlcyAyKSIpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlk
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWwKaW5kZXggOWE0ZDRjYTBjNzRmOWQ4
Njk4MTVhMTgwNWM5MDc0MmI4NDExZWQ1Zi4uOWZiNjhjNTEyNDMwMjU4OTA4MWMzNjM3OGM3Nzg1
ZjRiYjkxMWZhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWhpZC5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vz
cy1oaWQuaHR0cHMuaHRtbApAQCAtMTYsNiArMTYsNyBAQAogICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKG5ldyBVaW50OEFycmF5KGNyZWRlbnRpYWwucmF3SWQpLCBCYXNlNjRVUkwucGFyc2Uo
dGVzdEhpZENyZWRlbnRpYWxJZEJhc2U2NCkpOwogICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVz
VG9BU0NJSVN0cmluZyhjcmVkZW50aWFsLnJlc3BvbnNlLmNsaWVudERhdGFKU09OKSwgJ3sidHlw
ZSI6IndlYmF1dGhuLmdldCIsImNoYWxsZW5nZSI6Ik1USXpORFUyIiwib3JpZ2luIjoiaHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0MyJ9Jyk7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC5y
ZXNwb25zZS51c2VySGFuZGxlLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0X25vdF9leGlzdHMoY3Jl
ZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkpOwogCiAgICAgICAgIC8vIENoZWNr
IGF1dGhEYXRhCiAgICAgICAgIGNvbnN0IGF1dGhEYXRhID0gZGVjb2RlQXV0aERhdGEobmV3IFVp
bnQ4QXJyYXkoY3JlZGVudGlhbC5yZXNwb25zZS5hdXRoZW50aWNhdG9yRGF0YSkpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWdldC1zdWNjZXNzLWxvY2FsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbApp
bmRleCA3ZjJkYWFmNTUzYjE2NGViMGJhMDJkZjQ2NDlhMzRmZjI5MTJmNjgxLi42ZTkyY2VmMjM5
NzhlZGRhMmE1Mzk1N2UwZGU4MTAxZDIzZWI2NDFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbApAQCAtMTksNiArMTksNyBA
QAogICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ldyBVaW50OEFycmF5KGNyZWRlbnRpYWwu
cmF3SWQpLCBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCkpOwogICAgICAg
ICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9BU0NJSVN0cmluZyhjcmVkZW50aWFsLnJlc3BvbnNlLmNs
aWVudERhdGFKU09OKSwgJ3sidHlwZSI6IndlYmF1dGhuLmdldCIsImNoYWxsZW5nZSI6Ik1USXpO
RFUyIiwib3JpZ2luIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyJ9Jyk7CiAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoYnl0ZXNUb0hleFN0cmluZyhjcmVkZW50aWFsLnJlc3BvbnNlLnVzZXJIYW5kbGUp
LCAiMDAwMTAyMDMwNDA1MDYwNzA4MDkiKTsKKyAgICAgICAgYXNzZXJ0X25vdF9leGlzdHMoY3Jl
ZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkpOwogCiAgICAgICAgIC8vIENoZWNr
IGF1dGhEYXRhCiAgICAgICAgIGNvbnN0IGF1dGhEYXRhID0gZGVjb2RlQXV0aERhdGEobmV3IFVp
bnQ4QXJyYXkoY3JlZGVudGlhbC5yZXNwb25zZS5hdXRoZW50aWNhdG9yRGF0YSkpOwpAQCAtMzIs
NyArMzMsNyBAQAogICAgICAgICAgICAgICAgIC8vIGNyZWRlbnRpYWwucmVzcG9uc2Uuc2lnbmF0
dXJlIGlzIGluIEFTTi4xIGFuZCBXZWJDcnlwdG8gZXhwZWN0IHNpZ25hdHVyZXMgcHJvdmlkZXMg
aW4gcnxzLgogICAgICAgICAgICAgICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeSh7bmFt
ZTogIkVDRFNBIiwgaGFzaDogIlNIQS0yNTYifSwgcHVibGljS2V5LCBleHRyYWN0UmF3U2lnbmF0
dXJlKGNyZWRlbnRpYWwucmVzcG9uc2Uuc2lnbmF0dXJlKSwgY29uY2F0ZW5hdGVCdWZmZXJzKGNy
ZWRlbnRpYWwucmVzcG9uc2UuYXV0aGVudGljYXRvckRhdGEsIGhhc2gpKS50aGVuKCB2ZXJpZmll
ZCA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHZlcmlmaWVkKTsKLSAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiTm90U3VwcG9ydGVkRXJyb3IiLCAoKSA9PiB7
IGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIH0pOworICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfbm90X2V4aXN0cyhjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJl
c3VsdHMoKSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtdTJmLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy11
MmYuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDRjNGEzOWVhYTI4ZDVhNDRjYzRhYzA2Njk3OTI0
Mzk2NGE5YjQyM2MuLmFiOGYwNzFlYjU0NzQxMjgzMzYxN2ZkMTE5ZjM1YTZkZTY2YzBiMTQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1nZXQtc3VjY2Vzcy11MmYuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy11MmYu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0yLDQgKzIsMTAgQEAKIFBBU1MgUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbZ2V0XV0gd2l0aCBtaW5pbXVtIG9wdGlvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50
aWNhdG9yLiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBtb3JlIGFs
bG93IGNyZWRlbnRpYWxzIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdGVzdCBvZiB1c2VyIHByZXNlbmNlIGluIGEg
bW9jayBoaWQgYXV0aGVudGljYXRvci4gCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dl
dF1dIHdpdGggZW1wdHkgZXh0ZW5zaW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAor
UEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHNhbWUgc2l0ZSBBcHBJRCBi
dXQgbm90IHVzZWQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKK1BBU1MgUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBlbXB0eSBBcHBJRCBpbiBhIG1vY2sgaGlkIGF1dGhl
bnRpY2F0b3IuIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGFuIEFw
cElEIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCitQQVNTIFB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2dldF1dIHdpdGggbXVsdGlwbGUgY3JlZGVudGlhbHMgYW5kIEFwcElEIGlzIG5vdCB1
c2VkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCitQQVNTIFB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2dldF1dIHdpdGggbXVsdGlwbGUgY3JlZGVudGlhbHMgYW5kIEFwcElEIGlzIHVzZWQg
aW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLXUyZi5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWdldC1zdWNjZXNzLXUyZi5odHRwcy5odG1sCmluZGV4IDQ3NDNiMTU0NjczMTRkZWQ2
NzQ0OWQ2YmVjZTMwZWIxOWY0NjA2NzIuLjdiYTdiZTU5MDA2Mjk2ZjdlNjdmYzAwNmM4NjQxZDNl
MDE3NDNjNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy11MmYuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3Mt
dTJmLmh0dHBzLmh0bWwKQEAgLTQsNyArNCw5IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KGNy
ZWRlbnRpYWwpCisgICAgY29uc3QgZGVmYXVsdEFwcElESGFzaCA9ICJjMjY3MWI2ZWI5MjMzMTk3
ZDVmMmIxMjg4YTU1YmE0ZjA4NjBmOTZmNzE5OWJiYTMyZmU2ZGE3YzNmMGYzMWU1IjsKKworICAg
IGZ1bmN0aW9uIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwsIGlzQXBwSUQgPSBmYWxzZSwgYXBwSURI
YXNoID0gZGVmYXVsdEFwcElESGFzaCkKICAgICB7CiAgICAgICAgIC8vIENoZWNrIHJlc3BvbmQK
ICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhCYXNlNjRVUkwucGFyc2UoY3JlZGVudGlhbC5p
ZCksIEJhc2U2NFVSTC5wYXJzZSh0ZXN0VTJmQ3JlZGVudGlhbElkQmFzZTY0KSk7CkBAIC0xMiwx
MCArMTQsMTcgQEAKICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhuZXcgVWludDhBcnJheShj
cmVkZW50aWFsLnJhd0lkKSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RVMmZDcmVkZW50aWFsSWRCYXNl
NjQpKTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvQVNDSUlTdHJpbmcoY3JlZGVudGlh
bC5yZXNwb25zZS5jbGllbnREYXRhSlNPTiksICd7InR5cGUiOiJ3ZWJhdXRobi5nZXQiLCJjaGFs
bGVuZ2UiOiJNVEl6TkRVMiIsIm9yaWdpbiI6Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMifScpOwog
ICAgICAgICBhc3NlcnRfZXF1YWxzKGNyZWRlbnRpYWwucmVzcG9uc2UudXNlckhhbmRsZSwgbnVs
bCk7CisgICAgICAgIGlmICghaXNBcHBJRCkKKyAgICAgICAgICAgIGFzc2VydF9ub3RfZXhpc3Rz
KGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1
bHRzKCkuYXBwaWQpOwogCiAgICAgICAgIC8vIENoZWNrIGF1dGhEYXRhCiAgICAgICAgIGNvbnN0
IGF1dGhEYXRhID0gZGVjb2RlQXV0aERhdGEobmV3IFVpbnQ4QXJyYXkoY3JlZGVudGlhbC5yZXNw
b25zZS5hdXRoZW50aWNhdG9yRGF0YSkpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9I
ZXhTdHJpbmcoYXV0aERhdGEucnBJZEhhc2gpLCAiNDk5NjBkZTU4ODBlOGM2ODc0MzQxNzBmNjQ3
NjYwNWI4ZmU0YWViOWEyODYzMmM3OTk1Y2YzYmE4MzFkOTc2MyIpOworICAgICAgICBpZiAoIWlz
QXBwSUQpCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9IZXhTdHJpbmcoYXV0aERh
dGEucnBJZEhhc2gpLCAiNDk5NjBkZTU4ODBlOGM2ODc0MzQxNzBmNjQ3NjYwNWI4ZmU0YWViOWEy
ODYzMmM3OTk1Y2YzYmE4MzFkOTc2MyIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGJ5dGVzVG9IZXhTdHJpbmcoYXV0aERhdGEucnBJZEhhc2gpLCBhcHBJREhhc2gp
OwogICAgICAgICBhc3NlcnRfZXF1YWxzKGF1dGhEYXRhLmZsYWdzLCAxKTsKICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhhdXRoRGF0YS5jb3VudGVyLCA1OSk7CiAgICAgfQpAQCAtNjcsNCArNzYsMTA5
IEBACiAgICAgICAgICAgICByZXR1cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7CiAgICAgICAg
IH0pOwogICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHRlc3Qgb2Yg
dXNlciBwcmVzZW5jZSBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICAvLyBX
aXRoIEFwcElEIGV4dGVuc2lvbgorICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29u
c3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAg
IGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAg
IGFsbG93Q3JlZGVudGlhbHM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5w
YXJzZSh0ZXN0VTJmQ3JlZGVudGlhbElkQmFzZTY0KSB9XSwKKyAgICAgICAgICAgICAgICB0aW1l
b3V0OiAxMDAsCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeyB9CisgICAgICAgICAgICB9
CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgaGlk
OiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0YWdlOiAibXNnIiwgZXJyb3I6ICJzdWNjZXNzIiwg
aXNVMmY6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0VTJmU2lnblJlc3BvbnNlXSB9IH0pOwor
ICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKS50aGVuKGNy
ZWRlbnRpYWwgPT4geworICAgICAgICAgICAgcmV0dXJuIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwp
OworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0
aCBlbXB0eSBleHRlbnNpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKKworICAg
IHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAg
ICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBh
cnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgIGFsbG93Q3JlZGVudGlhbHM6IFt7IHR5
cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VTJmQ3JlZGVudGlhbElk
QmFzZTY0KSB9XSwKKyAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMDAsCisgICAgICAgICAgICAg
ICAgZXh0ZW5zaW9uczogeyBhcHBpZDogImh0dHBzOi8vbG9jYWxob3N0OjY2Ni9hcHBpZCIgfQor
ICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmln
dXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9y
OiAic3VjY2VzcyIsIGlzVTJmOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdFUyZlNpZ25SZXNw
b25zZV0gfSB9KTsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0
aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgICAgIHJldHVybiBjaGVja1Jlc3Vs
dChjcmVkZW50aWFsKTsKKyAgICAgICAgfSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwn
cyBbW2dldF1dIHdpdGggc2FtZSBzaXRlIEFwcElEIGJ1dCBub3QgdXNlZCBpbiBhIG1vY2sgaGlk
IGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNv
bnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAg
ICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAgICAgICAg
ICBhbGxvd0NyZWRlbnRpYWxzOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwu
cGFyc2UodGVzdFUyZkNyZWRlbnRpYWxJZEJhc2U2NCkgfV0sCisgICAgICAgICAgICAgICAgdGlt
ZW91dDogMTAwLAorICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM6IHsgYXBwaWQ6ICIiIH0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3Vy
YXRpb24oeyBoaWQ6IHsgc3RhZ2U6ICJyZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjog
InN1Y2Nlc3MiLCBpc1UyZjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RVMmZBcGR1V3JvbmdE
YXRhT25seVJlc3BvbnNlQmFzZTY0LCB0ZXN0VTJmU2lnblJlc3BvbnNlXSB9IH0pOworICAgICAg
ICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKS50aGVuKGNyZWRlbnRp
YWwgPT4geworICAgICAgICAgICAgcmV0dXJuIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwsIHRydWUp
OworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0
aCBlbXB0eSBBcHBJRCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICAvLyBG
SVhNRTogU3ViIGRvbWFpbnMgbmVlZCB0byBiZSB0ZXN0ZWQgYXMgd2VsbC4gSG93ZXZlciwgbG9j
YWxob3N0IGhhcyBubyBzdWIgZG9tYWlucy4KKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAg
ICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAg
ICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAg
ICAgICAgICBhbGxvd0NyZWRlbnRpYWxzOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNl
NjRVUkwucGFyc2UodGVzdFUyZkNyZWRlbnRpYWxJZEJhc2U2NCkgfV0sCisgICAgICAgICAgICAg
ICAgdGltZW91dDogMTAwLAorICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM6IHsgYXBwaWQ6ICJo
dHRwczovL2xvY2FsaG9zdDo2NjYvYXBwaWQiIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsK
KworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3RhZ2U6ICJy
ZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjogInN1Y2Nlc3MiLCBpc1UyZjogdHJ1ZSwg
cGF5bG9hZEJhc2U2NDogW3Rlc3RVMmZBcGR1V3JvbmdEYXRhT25seVJlc3BvbnNlQmFzZTY0LCB0
ZXN0VTJmU2lnblJlc3BvbnNlXSB9IH0pOworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmdldChvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAgICAgcmV0
dXJuIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwsIHRydWUsICI3ZWFiYzVjYzMyNTFiZGM1OTExNWVm
ODdiNWY3ZWU3NGNiMDM3NDdlMzliYTgzNDE3NDg1NjVjYzEyOWMwNzE5Iik7CisgICAgICAgIH0p
OworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGFuIEFwcElEIGlu
IGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsK
KyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAg
ICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAg
ICAgICAgICAgICAgIGFsbG93Q3JlZGVudGlhbHM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6
IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSB9LCB7IHR5cGU6ICJwdWJs
aWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VTJmQ3JlZGVudGlhbElkQmFzZTY0KSB9
XSwKKyAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMDAsCisgICAgICAgICAgICAgICAgZXh0ZW5z
aW9uczogeyBhcHBpZDogIiIgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0
aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBz
dWJTdGFnZTogIm1zZyIsIGVycm9yOiAic3VjY2VzcyIsIGlzVTJmOiB0cnVlLCBwYXlsb2FkQmFz
ZTY0OiBbdGVzdFUyZkFwZHVXcm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNlNjQsIHRlc3RVMmZBcGR1
V3JvbmdEYXRhT25seVJlc3BvbnNlQmFzZTY0LCB0ZXN0VTJmU2lnblJlc3BvbnNlXSB9IH0pOwor
ICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKS50aGVuKGNy
ZWRlbnRpYWwgPT4geworICAgICAgICAgICAgcmV0dXJuIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwp
OworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0
aCBtdWx0aXBsZSBjcmVkZW50aWFscyBhbmQgQXBwSUQgaXMgbm90IHVzZWQgaW4gYSBtb2NrIGhp
ZCBhdXRoZW50aWNhdG9yLiIpOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBj
b25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAg
ICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAg
ICAgYWxsb3dDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJM
LnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpIH0sIHsgdHlwZTogInB1YmxpYy1rZXkiLCBp
ZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVMmZDcmVkZW50aWFsSWRCYXNlNjQpIH1dLAorICAgICAg
ICAgICAgICAgIHRpbWVvdXQ6IDEwMCwKKyAgICAgICAgICAgICAgICBleHRlbnNpb25zOiB7IGFw
cGlkOiAiIiB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlv
bk1vY2tDb25maWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0YWdlOiAi
bXNnIiwgZXJyb3I6ICJzdWNjZXNzIiwgaXNVMmY6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0
VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNwb25zZUJhc2U2NCwgdGVzdFUyZkFwZHVXcm9uZ0RhdGFP
bmx5UmVzcG9uc2VCYXNlNjQsIHRlc3RVMmZBcGR1V3JvbmdEYXRhT25seVJlc3BvbnNlQmFzZTY0
LCB0ZXN0VTJmU2lnblJlc3BvbnNlXSB9IH0pOworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNy
ZWRlbnRpYWxzLmdldChvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAgICAg
cmV0dXJuIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwsIHRydWUpOworICAgICAgICB9KTsKKyAgICB9
LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBtdWx0aXBsZSBjcmVkZW50aWFs
cyBhbmQgQXBwSUQgaXMgdXNlZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIik7CisKIDwv
c2NyaXB0Pgo=
</data>
<flag name="review"
          id="381717"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="381731"
          type_id="3"
          status="-"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365306</attachid>
            <date>2019-03-19 21:53:30 -0700</date>
            <delta_ts>2019-03-19 23:12:03 -0700</delta_ts>
            <desc>Patch for Landing</desc>
            <filename>bug-143491-20190319215329.patch</filename>
            <type>text/plain</type>
            <size>76387</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQ2NDA4ZmE1M2M1ODg1
ZjBkYThkZTc3OTNiZDRhNDQ3N2Q4ZmE2Ny4uNTA0MTlmZDkxMjM3MjZjNDMyM2ZiMGFlNTIwNDhh
Y2Y3MmI0Mjk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE5LTAzLTE5ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBs
ZW1lbnQgRklETyBBcHBJRCBleHRlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MzQ5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgyOTgy
NzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBUaGlz
IHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgRklETyBBcHBJRCBleHRlbnNpb246IGh0dHBzOi8vd3d3
LnczLm9yZy9UUi93ZWJhdXRobi8jc2N0bi1hcHBpZC1leHRlbnNpb24uCisgICAgICAgIFRvIGJl
IG5vdGljZWQsIHRoaXMgaW1wbGVtZW50YXRpb24gZm9sbG93cyB3aGF0IHNwZWMgc3VnZ2VzdGVk
IGluIHRoZSAnTm90ZScgc2Vzc2lvbiBhbmQgd2hhdCBDaHJvbWUvRmlyZWZveAorICAgICAgICBk
byBpbiBwcmFjdGljZSB0byBhdm9pZCBzb21lIHVubmVjZXNzYXJ5IHN0ZXBzIG9mCisgICAgICAg
IGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtaWQtMjAxODAyMjcvZmlk
by1hcHBpZC1hbmQtZmFjZXRzLXYyLjAtaWQtMjAxODAyMjcuaHRtbCNkZXRlcm1pbmluZy1pZi1h
LWNhbGxlci1zLWZhY2V0aWQtaXMtYXV0aG9yaXplZC1mb3ItYW4tYXBwaWQuCisKKyAgICAgICAg
SW4gZmlkbzo6Y29udmVydFRvVTJmU2lnbkNvbW1hbmQsIHRoZSBjaGVja09ubHkgZmxhZyBpcyBk
ZWxldGVkIGFzIGl0IGlzIG5ldmVyIHVzZWQuCisKKyAgICAgICAgQ292ZXJlZCBieSBuZXcgdGVz
dHMgaW4gZXhpc3RpbmcgZmlsZXMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGll
bnRJbnB1dHMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsLmlkbC4KKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9u
RXh0ZW5zaW9uc0NsaWVudElucHV0czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0czo6ZGVjb2RlKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5p
ZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhu
L0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5hbDo6cHJvY2Vzc0FwcElkRXh0ZW5zaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Y3JlYXRlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6ZGlzY292ZXJGcm9tRXh0
ZXJuYWxTb3VyY2UgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjp0
cnlDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbDo6UHVibGlj
S2V5Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpn
ZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlB1Ymxp
Y0tleUNyZWRlbnRpYWw6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERhdGEuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6
ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0Rldmlj
ZVJlc3BvbnNlQ29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQTWFrZUNyZWRl
bnRpYWxSZXNwb25zZSk6CisgICAgICAgIChmaWRvOjpyZWFkQ1RBUEdldEFzc2VydGlvblJlc3Bv
bnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmQ29tbWFuZENvbnN0cnVj
dG9yLmNwcDoKKyAgICAgICAgKGZpZG86OmNvbnZlcnRUb1UyZlNpZ25Db21tYW5kKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmQ29tbWFuZENvbnN0cnVjdG9yLmg6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcDoKKyAg
ICAgICAgKGZpZG86OnJlYWRVMmZSZWdpc3RlclJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86OnJl
YWRVMmZTaWduUmVzcG9uc2UpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMy0xOSAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXBhcmVudGluZyBkdXJpbmcgYSBt
dXRhdGlvbiBldmVudCBpbnNpZGUgYXBwZW5kQ2hpbGQgY291bGQgcmVzdWx0IGluIGEgY2lyY3Vs
YXIgRE9NIHRyZWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTZhOWVmNTI3OTRmOTNkNzQxNzQ2ZDA1MTRmZmM4YjUy
OTVlY2M3Ny4uMGExMDAyMGMxZjE3NzQ2NmZlZGVjZTBmY2QzOGQwMDliNTYwNGYxYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNCBAQAorMjAxOS0wMy0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5A
YXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRoTl0gSW1wbGVtZW50IEZJRE8gQXBwSUQgZXh0
ZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDM0OTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4Mjk4MjczPgorCisgICAgICAgIFJldmll
d2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgSW4gVTJmSGlkQXV0aGVudGljYXRvcjo6
Y29udGludWVTaWduQ29tbWFuZEFmdGVyUmVzcG9uc2VSZWNlaXZlZCwgaXQgd2lsbCByZXRyeSB0
aGUgY3VycmVudCBjb21tYW5kCisgICAgICAgIHdpdGggdGhlIEFwcElEIGlmIGl0IGV4aXN0cyB3
aGVuIFNXX1dST05HX0RBVEEgaXMgcmVjZWl2ZWQgZnJvbSBkZXZpY2VzLiBOb3RlZCwgaXQgd2ls
bCBub3Qgc2V0CisgICAgICAgIHRoZSBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRw
dXRzOjphcHBpZCB0byBmYWxzZSBpbiBhbnkgY2lyY3Vtc3RhbmNlcy4gSW4gb3RoZXIgd29yZHMs
IHRoZQorICAgICAgICBmaWVsZCB3aWxsIGJlIGVtcHR5IGlmIEFwcElEIGlzIHN1cHBsaWVkIGlu
IEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cyBhbmQgbm90IHVzZWQuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNh
dG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFr
ZUNyZWRlbnRpYWxBZnRlckF0dGVzdGVkKToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50
aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyVXNlckNvbnNlbnRlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJmSGlkQXV0aGVudGljYXRvci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlUyZkhpZEF1dGhlbnRpY2F0b3I6Omlzc3VlU2lnbkNvbW1h
bmQpOgorICAgICAgICAoV2ViS2l0OjpVMmZIaWRBdXRoZW50aWNhdG9yOjpjb250aW51ZVNpZ25D
b21tYW5kQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vZmlkby9VMmZIaWRBdXRoZW50aWNhdG9yLmg6CisKIDIwMTktMDMtMTkgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxk
IGZpeCBhZnRlciByMjQzMTczLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1NjA4MzRhOWQ1YWY3
ZWZmN2Y4NTdmYjM5OWE2ZjNjODZlMWJlZDE3Li40YTE1YzE4MmNlMWZkNzU1NTIxMTEzMzE1MjIy
YTQwOTg3ODYwZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDM4LDYgKzQzOCw3IEBAIHNl
dChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQ
cm9jZXNzb3JOb2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuaWRs
CiAKKyAgICBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElu
cHV0cy5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJl
c3BvbnNlLmlkbAogICAgIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmlk
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5k
ZXggNWY1MmI0MTZiYzc2ZjRiN2Y4Y2IzMThiYTVkZmY1ZjU2ZTUyMDNlNS4uYzZiNWJjMWZiMDM3
YjdjMGJlMDZkM2MyZDk0MGJiOTUxMzY5NGEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0zMDQsNiArMzA0LDcgQEAgJChQUk9KRUNU
X0RJUikvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dl
YmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dl
YmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVz
cG9uc2UuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JS
ZXNwb25zZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKaW5kZXggMDgzZWEyOTQ1ZTM3MzUwMjEwOWQzM2RjY2ZkMGVjYzIyMTQ0YjFjOS4u
MGI5NmIxNzQyODU1YTJmNTRlZjYzYzhlMDU1NjlhN2I3OGIzYTQxOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE1NCw2ICsxNTQs
OCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlv
VHJhY2tMaXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNBdWRpb1RyYWNrTGlzdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tNZWRpYVNvdXJjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFja01lZGlhU291cmNlLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXV0aGVudGljYXRp
b25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1dGhlbnRpY2F0b3JB
dHRlc3RhdGlvblJlc3BvbnNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
ODljMzk2ODgwNjBkN2Y3YTM3ZDU2MmY4YWZlNzg5MjJlZDhiZDNhOC4uNzhjYWMzOTU4N2ZhZDgy
NjdjNjA1ZTVkNTU3MTg4MDMzYjkwNDM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC0zNTEsNiArMzUxLDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJlc3Bv
bnNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JB
dHRlc3RhdGlvblJlc3BvbnNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhu
L0F1dGhlbnRpY2F0b3JSZXNwb25zZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRpb25FeHRlbnNpb25z
Q2xpZW50SW5wdXRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUyZDg0NzM4MGZhNzk1MzRhNWJlOTA5OGYxOWFk
MTI5YzIzODUzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmgKQEAgLTAsMCArMSw2
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikK
KworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3N0cnVjdCBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMgeworICAgIFN0
cmluZyBhcHBpZDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9u
YWw8QXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzPiBkZWNvZGUoRGVjb2RlciYp
OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXV0aGVudGljYXRpb25FeHRl
bnNpb25zQ2xpZW50SW5wdXRzOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IGFwcGlkOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9u
YWw8QXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzPiBBdXRoZW50aWNhdGlvbkV4
dGVuc2lvbnNDbGllbnRJbnB1dHM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIEF1
dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cyByZXN1bHQ7CisKKyAgICBPcHRpb25h
bDxTdHJpbmc+IGFwcGlkOworICAgIGRlY29kZXIgPj4gYXBwaWQ7CisgICAgaWYgKCFhcHBpZCkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXN1bHQuYXBwaWQgPSBXVEZNb3Zl
KCphcHBpZCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1
dHMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4
dGVuc2lvbnNDbGllbnRJbnB1dHMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlOWU5N2I4ZGQyNzQ3Njk0ZWE3
ZGZlYzA5ZGU2ODFmNGEyNGUzYjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5pZGwK
QEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJfQVVU
SE4sCitdIGRpY3Rpb25hcnkgQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzIHsK
KyAgICBVU1ZTdHJpbmcgYXBwaWQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IDc4
MzA3OTkxNjY3ZDA4M2I2YTVmMDZiNTIwYTJkZTkxYjk0YmJjYzAuLmQyNjNjMWI4MTM3NGM0MTY2
ZTUwNTMxZmY1MjEyNzgyNjRkMzk5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKQEAgLTM3
LDYgKzM3LDggQEAKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
LmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbERhdGEuaCIKICNpbmNsdWRlICJQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaCIKKyNpbmNsdWRlICJSZWdpc3RyYWJsZURv
bWFpbi5oIgorI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlIDxwYWwvY3J5cHRvL0NyeXB0b0RpZ2VzdC5oPgogI2luY2x1ZGUg
PHd0Zi9KU09OVmFsdWVzLmg+CkBAIC03OCw2ICs4MCwyNyBAQCBzdGF0aWMgVmVjdG9yPHVpbnQ4
X3Q+IHByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2goY29uc3QgQXJyYXlCdWZmZXImIGNsaWVudERh
dGFKcwogICAgIHJldHVybiBjcnlwdG8tPmNvbXB1dGVIYXNoKCk7CiB9CiAKKy8vIFRoZSBmb2xs
b3dpbmcgcm91Z2hseSBpbXBsZW1lbnRzIFN0ZXAgMS0zIG9mIHRoZSBzcGVjIHRvIGF2b2lkIHRo
ZSBjb21wbGV4aXR5IG9mIG1ha2luZyB1bm5lY2Vzc2FyeSBuZXR3b3JrIHJlcXVlc3RzOgorLy8g
aHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1pZC0yMDE4MDIyNy9maWRv
LWFwcGlkLWFuZC1mYWNldHMtdjIuMC1pZC0yMDE4MDIyNy5odG1sI2RldGVybWluaW5nLWlmLWEt
Y2FsbGVyLXMtZmFjZXRpZC1pcy1hdXRob3JpemVkLWZvci1hbi1hcHBpZAorLy8gSXQgZm9sbG93
cyB3aGF0IENocm9tZSBhbmQgRmlyZWZveCBkbywgc2VlOgorLy8gaHR0cHM6Ly9idWd6aWxsYS5t
b3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NDk1OSNjOAorLy8gaHR0cHM6Ly9idWdzLmNo
cm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9ODE4MzAzCitzdGF0aWMgU3Ry
aW5nIHByb2Nlc3NBcHBJZEV4dGVuc2lvbihjb25zdCBTZWN1cml0eU9yaWdpbiYgZmFjZXRJZCwg
Y29uc3QgU3RyaW5nJiBhcHBJZCkKK3sKKyAgICAvLyBTdGVwIDEuIFNraXBwZWQgc2luY2UgZmFj
ZXRJZCBzaG91bGQgYWx3YXlzIGJlIHNlY3VyZSBvcmlnaW5zLgorICAgIEFTU0VSVChTY2hlbWVS
ZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZShmYWNldElkLnByb3RvY29sKCkp
KTsKKworICAgIC8vIFN0ZXAgMi4gRm9sbG93IENocm9tZSBhbmQgRmlyZWZveCB0byB1c2UgdGhl
IG9yaWdpbiBkaXJlY3RseSB3aXRob3V0IGFkZGluZyBhIHRyYWlsaW5nIHNsYXNoLgorICAgIGlm
IChhcHBJZC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWNldElkLnRvU3RyaW5nKCk7CisK
KyAgICAvLyBTdGVwIDMuIFJlbGF4IHRoZSBjb21wYXJpc29uIHRvIHNhbWUgc2l0ZS4KKyAgICBV
UkwgYXBwSWRVUkwoVVJMKCksIGFwcElkKTsKKyAgICBpZiAoIWFwcElkVVJMLmlzVmFsaWQoKSB8
fCBmYWNldElkLnByb3RvY29sKCkgIT0gYXBwSWRVUkwucHJvdG9jb2woKSB8fCBSZWdpc3RyYWJs
ZURvbWFpbihhcHBJZFVSTCkgIT0gUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZy
b21Ib3N0KGZhY2V0SWQuaG9zdCgpKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJl
dHVybiBhcHBJZDsKK30KKwogfSAvLyBuYW1lc3BhY2UgQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
SW50ZXJuYWwKIAogQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3Ioc3RkOjp1bmlxdWVfcHRyPEF1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudD4mJiBj
bGllbnQpCkBAIC05NSw3ICsxMTgsNyBAQCB2b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6
Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjYWxsZXJPcmlnaW4sIGNvbnN0CiAgICAgdXNp
bmcgbmFtZXNwYWNlIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvckludGVybmFsOwogCiAgICAgLy8g
VGhlIGZvbGxvd2luZyBpbXBsZW1lbnRzIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8j
Y3JlYXRlQ3JlZGVudGlhbCBhcyBvZiA1IERlY2VtYmVyIDIwMTcuCi0gICAgLy8gRklYTUU6IEV4
dGVuc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiBTa2lwIFN0ZXAgMTEtMTIuCisgICAgLy8g
RXh0ZW5zaW9ucyBhcmUgbm90IHN1cHBvcnRlZC4gU2tpcCBTdGVwIDExLTEyLgogICAgIC8vIFN0
ZXAgMSwgMywgMTYgYXJlIGhhbmRsZWQgYnkgdGhlIGNhbGxlci4KICAgICAvLyBTdGVwIDIuCiAg
ICAgaWYgKCFzYW1lT3JpZ2luV2l0aEFuY2VzdG9ycykgewpAQCAtMTU4LDcgKzE4MSw2IEBAIHZv
aWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShj
b25zdCBTZWN1cml0eU9yaWdpbiYKICAgICB1c2luZyBuYW1lc3BhY2UgQXV0aGVudGljYXRvckNv
b3JkaW5hdG9ySW50ZXJuYWw7CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVudHMgaHR0
cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNjcmVhdGVDcmVkZW50aWFsIGFzIG9mIDUgRGVj
ZW1iZXIgMjAxNy4KLSAgICAvLyBGSVhNRTogRXh0ZW5zaW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5
ZXQuIFNraXAgU3RlcCA4LTkuCiAgICAgLy8gU3RlcCAxLCAzLCAxMyBhcmUgaGFuZGxlZCBieSB0
aGUgY2FsbGVyLgogICAgIC8vIFN0ZXAgMi4KICAgICBpZiAoIXNhbWVPcmlnaW5XaXRoQW5jZXN0
b3JzKSB7CkBAIC0xNzcsNiArMTk5LDE4IEBAIHZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
OjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBTZWN1cml0eU9yaWdpbiYKICAgICBp
ZiAob3B0aW9ucy5ycElkLmlzRW1wdHkoKSkKICAgICAgICAgb3B0aW9ucy5ycElkID0gY2FsbGVy
T3JpZ2luLmhvc3QoKTsKIAorICAgIC8vIFN0ZXAgOC05LgorICAgIC8vIE9ubHkgRklETyBBcHBJ
RCBFeHRlbnNpb24gaXMgc3VwcG9ydGVkLgorICAgIGlmIChvcHRpb25zLmV4dGVuc2lvbnMgJiYg
IW9wdGlvbnMuZXh0ZW5zaW9ucy0+YXBwaWQuaXNOdWxsKCkpIHsKKyAgICAgICAgLy8gVGhlIGZv
bGxvd2luZyBpbXBsZW1lbnRzIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jc2N0bi1h
cHBpZC1leHRlbnNpb24gYXMgb2YgNCBNYXJjaCAyMDE5LgorICAgICAgICBhdXRvIGFwcGlkID0g
cHJvY2Vzc0FwcElkRXh0ZW5zaW9uKGNhbGxlck9yaWdpbiwgb3B0aW9ucy5leHRlbnNpb25zLT5h
cHBpZCk7CisgICAgICAgIGlmICghYXBwaWQpIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsICJUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVudCBp
cyBub3QgYXV0aG9yaXplZCBmb3IgdGhlIHByb3ZpZGVkIEFwcCBJRC4iX3MgfSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb3B0aW9ucy5leHRlbnNpb25zLT5hcHBp
ZCA9IGFwcGlkOworICAgIH0KKwogICAgIC8vIFN0ZXAgMTAtMTIuCiAgICAgYXV0byBjbGllbnRE
YXRhSnNvbiA9IHByb2R1Y2VDbGllbnREYXRhSnNvbihDbGllbnREYXRhVHlwZTo6R2V0LCBvcHRp
b25zLmNoYWxsZW5nZSwgY2FsbGVyT3JpZ2luKTsKICAgICBhdXRvIGNsaWVudERhdGFKc29uSGFz
aCA9IHByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2goY2xpZW50RGF0YUpzb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5j
cHAKaW5kZXggYzZiNjg0NGYzZDY5NTAzMWQyMTdlZTEyNTA2OWQ0MjM5OTZlNjhhMi4uNDc1MDg2
OThkZGQyODNiMjEyNDE2OGZjNmY4MTUzOThhY2UxNTQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwCkBAIC00
MCwxMSArNDAsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxQdWJsaWNLZXlDcmVk
ZW50aWFsPiBQdWJsaWNLZXlDcmVkZW50aWFsOjpjcmVhdGUoUmVmPEFycmF5QnVmZmVyPiYmIGlk
LCBSZWY8QXV0aGVudGljYXRvclJlc3BvbnNlPiYmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFB1YmxpY0tleUNyZWRlbnRpYWwoV1RGTW92ZShpZCksIFdURk1vdmUocmVz
cG9uc2UpKSk7Ci19Ci0KIFJlZlB0cjxQdWJsaWNLZXlDcmVkZW50aWFsPiBQdWJsaWNLZXlDcmVk
ZW50aWFsOjp0cnlDcmVhdGUoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbERhdGEmIGRhdGEpCiB7
CiAgICAgaWYgKCFkYXRhLnJhd0lkIHx8ICFkYXRhLmNsaWVudERhdGFKU09OKQpAQCAtNTQsMjUg
KzQ5LDI2IEBAIFJlZlB0cjxQdWJsaWNLZXlDcmVkZW50aWFsPiBQdWJsaWNLZXlDcmVkZW50aWFs
Ojp0cnlDcmVhdGUoY29uc3QgUHVibGljS2V5Q3JlZGVuCiAgICAgICAgIGlmICghZGF0YS5hdHRl
c3RhdGlvbk9iamVjdCkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFB1YmxpY0tleUNyZWRlbnRpYWwoZGF0YS5yYXdJZC5yZWxlYXNl
Tm9uTnVsbCgpLCBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKGRhdGEu
Y2xpZW50RGF0YUpTT04ucmVsZWFzZU5vbk51bGwoKSwgZGF0YS5hdHRlc3RhdGlvbk9iamVjdC5y
ZWxlYXNlTm9uTnVsbCgpKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQdWJsaWNL
ZXlDcmVkZW50aWFsKGRhdGEucmF3SWQucmVsZWFzZU5vbk51bGwoKSwgQXV0aGVudGljYXRvckF0
dGVzdGF0aW9uUmVzcG9uc2U6OmNyZWF0ZShkYXRhLmNsaWVudERhdGFKU09OLnJlbGVhc2VOb25O
dWxsKCksIGRhdGEuYXR0ZXN0YXRpb25PYmplY3QucmVsZWFzZU5vbk51bGwoKSksIHsgZGF0YS5h
cHBpZCB9KSk7CiAgICAgfQogCiAgICAgaWYgKCFkYXRhLmF1dGhlbnRpY2F0b3JEYXRhIHx8ICFk
YXRhLnNpZ25hdHVyZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBQdWJsaWNLZXlDcmVkZW50aWFsKGRhdGEucmF3SWQucmVsZWFzZU5vbk51bGwo
KSwgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjpjcmVhdGUoZGF0YS5jbGllbnREYXRh
SlNPTi5yZWxlYXNlTm9uTnVsbCgpLCBkYXRhLmF1dGhlbnRpY2F0b3JEYXRhLnJlbGVhc2VOb25O
dWxsKCksIGRhdGEuc2lnbmF0dXJlLnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUoZGF0YS51c2Vy
SGFuZGxlKSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQdWJsaWNLZXlDcmVkZW50aWFs
KGRhdGEucmF3SWQucmVsZWFzZU5vbk51bGwoKSwgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3Bv
bnNlOjpjcmVhdGUoZGF0YS5jbGllbnREYXRhSlNPTi5yZWxlYXNlTm9uTnVsbCgpLCBkYXRhLmF1
dGhlbnRpY2F0b3JEYXRhLnJlbGVhc2VOb25OdWxsKCksIGRhdGEuc2lnbmF0dXJlLnJlbGVhc2VO
b25OdWxsKCksIFdURk1vdmUoZGF0YS51c2VySGFuZGxlKSksIHsgZGF0YS5hcHBpZCB9KSk7CiB9
CiAKLVB1YmxpY0tleUNyZWRlbnRpYWw6OlB1YmxpY0tleUNyZWRlbnRpYWwoUmVmPEFycmF5QnVm
ZmVyPiYmIGlkLCBSZWY8QXV0aGVudGljYXRvclJlc3BvbnNlPiYmIHJlc3BvbnNlKQorUHVibGlj
S2V5Q3JlZGVudGlhbDo6UHVibGljS2V5Q3JlZGVudGlhbChSZWY8QXJyYXlCdWZmZXI+JiYgaWQs
IFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiYgcmVzcG9uc2UsIEF1dGhlbnRpY2F0aW9uRXh0
ZW5zaW9uc0NsaWVudE91dHB1dHMmJiBleHRlbnNpb25zKQogICAgIDogQmFzaWNDcmVkZW50aWFs
KFdURjo6YmFzZTY0VVJMRW5jb2RlKGlkLT5kYXRhKCksIGlkLT5ieXRlTGVuZ3RoKCkpLCBUeXBl
OjpQdWJsaWNLZXksIERpc2NvdmVyeTo6UmVtb3RlKQogICAgICwgbV9yYXdJZChXVEZNb3ZlKGlk
KSkKICAgICAsIG1fcmVzcG9uc2UoV1RGTW92ZShyZXNwb25zZSkpCisgICAgLCBtX2V4dGVuc2lv
bnMoV1RGTW92ZShleHRlbnNpb25zKSkKIHsKIH0KIAotRXhjZXB0aW9uT3I8Ym9vbD4gUHVibGlj
S2V5Q3JlZGVudGlhbDo6Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIGNvbnN0CitQdWJsaWNL
ZXlDcmVkZW50aWFsOjpBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzIFB1Ymxp
Y0tleUNyZWRlbnRpYWw6OmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSBjb25zdAogewotICAg
IHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworICAgIHJldHVybiBtX2V4
dGVuc2lvbnM7CiB9CiAKIHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbDo6aXNVc2VyVmVyaWZ5aW5n
UGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERvY3VtZW50JiBkb2N1bWVudCwgRE9NUHJv
bWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJvbWlzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmgKaW5kZXggMzBmY2U0
MjAyYmViYWYwYTk4MmVjYThmZjNlOWVjM2I4OWJkNzI5YS4uMTJkZjBjMmQ2OWM1MmNiMTk5NWRl
NDk3ZDE1YmI0OGNlNGJkZjg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmgKQEAgLTQyLDIzICs0MiwyNiBAQCBzdHJ1
Y3QgUHVibGljS2V5Q3JlZGVudGlhbERhdGE7CiAKIGNsYXNzIFB1YmxpY0tleUNyZWRlbnRpYWwg
ZmluYWwgOiBwdWJsaWMgQmFzaWNDcmVkZW50aWFsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFB1YmxpY0tleUNyZWRlbnRpYWw+IGNyZWF0ZShSZWY8QXJyYXlCdWZmZXI+JiYgaWQsIFJlZjxB
dXRoZW50aWNhdG9yUmVzcG9uc2U+JiYpOworICAgIHN0cnVjdCBBdXRoZW50aWNhdGlvbkV4dGVu
c2lvbnNDbGllbnRPdXRwdXRzIHsKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gYXBwaWQ7CisgICAg
fTsKKwogICAgIHN0YXRpYyBSZWZQdHI8UHVibGljS2V5Q3JlZGVudGlhbD4gdHJ5Q3JlYXRlKGNv
bnN0IFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhJik7CiAKICAgICBBcnJheUJ1ZmZlciogcmF3SWQo
KSBjb25zdCB7IHJldHVybiBtX3Jhd0lkLnB0cigpOyB9CiAgICAgQXV0aGVudGljYXRvclJlc3Bv
bnNlKiByZXNwb25zZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2UucHRyKCk7IH0KLSAgICAv
LyBOb3Qgc3VwcG9ydCB5ZXQuIEFsd2F5cyB0aHJvd3MuCi0gICAgRXhjZXB0aW9uT3I8Ym9vbD4g
Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIGNvbnN0OworICAgIEF1dGhlbnRpY2F0aW9uRXh0
ZW5zaW9uc0NsaWVudE91dHB1dHMgZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIGNvbnN0Owog
CiAgICAgc3RhdGljIHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZh
aWxhYmxlKERvY3VtZW50JiwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYpOwogCiBw
cml2YXRlOgotICAgIFB1YmxpY0tleUNyZWRlbnRpYWwoUmVmPEFycmF5QnVmZmVyPiYmIGlkLCBS
ZWY8QXV0aGVudGljYXRvclJlc3BvbnNlPiYmKTsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsKFJl
ZjxBcnJheUJ1ZmZlcj4mJiBpZCwgUmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJiwgQXV0aGVu
dGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cyYmKTsKIAogICAgIFR5cGUgY3JlZGVudGlh
bFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBUeXBlOjpQdWJsaWNLZXk7IH0KIAogICAgIFJl
ZjxBcnJheUJ1ZmZlcj4gbV9yYXdJZDsKICAgICBSZWY8QXV0aGVudGljYXRvclJlc3BvbnNlPiBt
X3Jlc3BvbnNlOworICAgIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHMgbV9l
eHRlbnNpb25zOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5pZGwKaW5k
ZXggZDUxZjA2ZDQwZGQ5ZTRlYzNjNmEyODk3NjcyNjIwZmUyYjg1Zjk3MS4uMzA3MmMxY2U0Nzcw
N2Y0YjRjZThlOGU1NTkyMmQ2NjkwYjQ3N2Q2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaWRsCkBAIC0yMyw4ICsy
Myw2IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotdHlwZWRl
ZiBib29sZWFuIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uczsKLQogWwogICAgIENvbmRpdGlvbmFs
PVdFQl9BVVRITiwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkF1dGhlbnRpY2F0aW9uLApAQCAt
MzMsNyArMzEsMTQgQEAgdHlwZWRlZiBib29sZWFuIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uczsK
IF0gaW50ZXJmYWNlIFB1YmxpY0tleUNyZWRlbnRpYWwgOiBCYXNpY0NyZWRlbnRpYWwgewogICAg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgQXJyYXlCdWZmZXIgcmF3SWQ7CiAgICAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdXRoZW50aWNhdG9yUmVzcG9uc2UgcmVz
cG9uc2U7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnMg
Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpOworICAgIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9u
c0NsaWVudE91dHB1dHMgZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpOwogCiAgICAgW0NhbGxX
aXRoPURvY3VtZW50XSBzdGF0aWMgUHJvbWlzZTxib29sZWFuPiBpc1VzZXJWZXJpZnlpbmdQbGF0
Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKTsKIH07CisKK1sKKyAgICBDb25kaXRpb25hbD1X
RUJfQVVUSE4sCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgQXV0aGVu
dGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cyB7CisgICAgYm9vbGVhbiBhcHBpZDsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCmluZGV4IDZmOTI3MWE2ZGYz
OTE0NTdiYjc1YWU1YjdiMGVkM2VlMDZiODhiMzYuLjQ5MTY0NTg5MTkyMzAwNWYyZTBiNmZhM2Zi
Y2JlOTkzOTVmMzc5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5o
CkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSAi
QXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmgiCiAjaW5jbHVkZSAiQnVmZmVy
U291cmNlLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaCIKICNp
bmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5oIgpAQCAtODMsNiArODQsNyBAQCBzdHJ1
Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAgICAgT3B0aW9uYWw8dW5z
aWduZWQ+IHRpbWVvdXQ7CiAgICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9y
PiBleGNsdWRlQ3JlZGVudGlhbHM7CiAgICAgT3B0aW9uYWw8QXV0aGVudGljYXRvclNlbGVjdGlv
bkNyaXRlcmlhPiBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOworICAgIE9wdGlvbmFsPEF1dGhlbnRp
Y2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cz4gZXh0ZW5zaW9uczsgLy8gQSBwbGFjZSBob2xk
ZXIsIGJ1dCBuZXZlciB1c2VkLgogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBPcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPiBkZWNvZGUoRGVj
b2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwKaW5kZXgg
MzZlMTgwYmVkZmM4MjAxZjNiYzRiNTM1Y2FjMGY3NDNjOGU3YzVmNS4uMDMzZTBkYzg3OTU5Yjcz
ZjFiNWZkOWJhNmJjYzgwYmQxZWVlYWRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnMuaWRsCkBAIC0zOSw4ICszOSw3IEBAIHR5cGVkZWYgbG9uZyBDT1NFQWxnb3Jp
dGhtSWRlbnRpZmllcjsKICAgICBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgYXV0aGVu
dGljYXRvclNlbGVjdGlvbjsKICAgICAvLyBBbHdheXMgImRpcmVjdCIgZm9yIHVzLgogICAgIC8v
IEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UgYXR0ZXN0YXRpb24gPSAibm9uZSI7Ci0g
ICAgLy8gTm90IHN1cHBvcnQgeWV0LgotICAgIC8vIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9ucyBl
eHRlbnNpb25zOworICAgIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cyBleHRl
bnNpb25zOwogfTsKIAogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oCmluZGV4IDIxMjZjYWM5MmM0NjEwNDM2
MDM4MTliYTUyYzcwZmNiZDI3Yjk0OWQuLjdlNjNiYTM3ZTQyMmE3MWM5YWVmMDY5M2QxY2NkODgy
OWNkNDE1OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVi
bGljS2V5Q3JlZGVudGlhbERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEYXRhLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgc3RydWN0IFB1
YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsKICAgICBtdXRhYmxlIFJlZlB0cjxBcnJheUJ1ZmZlcj4g
c2lnbmF0dXJlOwogICAgIG11dGFibGUgUmVmUHRyPEFycmF5QnVmZmVyPiB1c2VySGFuZGxlOwog
CisgICAgLy8gRXh0ZW5zaW9ucworICAgIE9wdGlvbmFsPGJvb2w+IGFwcGlkOworCiAgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFs
RGF0YT4gZGVjb2RlKERlY29kZXImKTsKIH07CkBAIC04MSw2ICs4NCw5IEBAIHZvaWQgUHVibGlj
S2V5Q3JlZGVudGlhbERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVu
Y29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHNpZ25hdHVyZS0+Ynl0ZUxlbmd0aCgpKTsK
ICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0
IHVpbnQ4X3QqPihzaWduYXR1cmUtPmRhdGEoKSksIHNpZ25hdHVyZS0+Ynl0ZUxlbmd0aCgpLCAx
KTsKIAorICAgIC8vIEVuY29kZSBBcHBJRCBiZWZvcmUgdXNlciBoYW5kbGUgdG8gYXZvaWQgdGhl
IHVzZXJIYW5kbGUgZmxhZy4KKyAgICBlbmNvZGVyIDw8IGFwcGlkOworCiAgICAgaWYgKCF1c2Vy
SGFuZGxlKSB7CiAgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7CiAgICAgICAgIHJldHVybjsKQEAg
LTE0OCw2ICsxNTQsMTIgQEAgT3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IFB1Ymxp
Y0tleUNyZWRlbnRpYWxEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2QKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KHJlc3Vs
dC5zaWduYXR1cmUtPmRhdGEoKSksIHNpZ25hdHVyZUxlbmd0aC52YWx1ZSgpLCAxKSkKICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAorICAgIE9wdGlvbmFsPE9wdGlvbmFsPGJvb2w+PiBh
cHBpZDsKKyAgICBkZWNvZGVyID4+IGFwcGlkOworICAgIGlmICghYXBwaWQpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmVzdWx0LmFwcGlkID0gV1RGTW92ZSgqYXBwaWQpOwor
CiAgICAgT3B0aW9uYWw8Ym9vbD4gaGFzVXNlckhhbmRsZTsKICAgICBkZWNvZGVyID4+IGhhc1Vz
ZXJIYW5kbGU7CiAgICAgaWYgKCFoYXNVc2VySGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zLmgKaW5kZXggNmI5Y2FiNzdkODZhNjhmNzZmYjhiYTg4ZTk1YzBkODMyMWIy
NDljZC4uMjJkYTMyNTFhZDAxZmY1Y2M3ODVhMWRhN2M4ZGYwZmZkM2Y3NzkzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBF
TkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSAiQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xp
ZW50SW5wdXRzLmgiCiAjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVkZSAiUHVibGlj
S2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQuaCIKQEAgLTQwLDYgKzQxLDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyB7CiAgICAgbXV0YWJsZSBTdHJpbmcgcnBJZDsKICAgICBWZWN0b3I8UHVi
bGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+IGFsbG93Q3JlZGVudGlhbHM7CiAgICAgVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24geyBVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9OworICAgIG11dGFibGUgT3B0aW9uYWw8QXV0aGVudGlj
YXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzPiBleHRlbnNpb25zOwogCiAgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnM+IGRlY29kZShEZWNvZGVyJik7CkBAIC00OSw3ICs1MSw3IEBAIHN0cnVjdCBQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4K
IHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IHRpbWVvdXQgPDwgcnBJZCA8PCBhbGxv
d0NyZWRlbnRpYWxzIDw8IHVzZXJWZXJpZmljYXRpb247CisgICAgZW5jb2RlciA8PCB0aW1lb3V0
IDw8IHJwSWQgPDwgYWxsb3dDcmVkZW50aWFscyA8PCB1c2VyVmVyaWZpY2F0aW9uIDw8IGV4dGVu
c2lvbnM7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC03NCw2ICs3NiwxMiBAQCBP
cHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IFB1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9uczo6ZAogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAg
IHJlc3VsdC51c2VyVmVyaWZpY2F0aW9uID0gV1RGTW92ZSgqdXNlclZlcmlmaWNhdGlvbik7CiAK
KyAgICBPcHRpb25hbDxPcHRpb25hbDxBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1
dHM+PiBleHRlbnNpb25zOworICAgIGRlY29kZXIgPj4gZXh0ZW5zaW9uczsKKyAgICBpZiAoIWV4
dGVuc2lvbnMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmVzdWx0LmV4dGVu
c2lvbnMgPSBXVEZNb3ZlKCpleHRlbnNpb25zKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbAppbmRleCBkNjUxZGIyOGFl
NjZkMGZjNjk4MjEwZDY4NzE2ZDZlMTExNDBjODM5Li4zZTM5MmJlODY1N2Y5ZTVjYTE2NjAxODJk
OGMzY2VlZGEwYTFmZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aWRsCkBAIC0zMSw2ICszMSw1IEBACiAgICAgVVNWU3RyaW5nIHJwSWQ7CiAgICAgc2VxdWVuY2U8
UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+IGFsbG93Q3JlZGVudGlhbHMgPSBbXTsKICAg
ICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJy
ZWQiOwotICAgIC8vIE5vdCBzdXBwb3J0IHlldC4KLSAgICAvLyBBdXRoZW50aWNhdGlvbkV4dGVu
c2lvbnMgZXh0ZW5zaW9uczsKKyAgICBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1
dHMgZXh0ZW5zaW9uczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCBk
MDM2NzE3ODY3ZGQxZjhlOTk1NjY3NjIzYWI1ZmY3NDU0ZjQ1YTJmLi4xMjQ0MmIxMjVjNzkwMjlk
OGNmNGE1YWM0MTZkYjExNGZiMjU2NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5j
cHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBPcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4g
cmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aQogICAgIGF0dGVz
dGF0aW9uT2JqZWN0TWFwW0NCT1IoImF0dFN0bXQiKV0gPSBXVEZNb3ZlKGF0dFN0bXQpOwogICAg
IGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBjYm9yOjpDQk9SV3JpdGVyOjp3cml0ZShDQk9SKFdU
Rk1vdmUoYXR0ZXN0YXRpb25PYmplY3RNYXApKSk7CiAKLSAgICByZXR1cm4gUHVibGljS2V5Q3Jl
ZGVudGlhbERhdGEgeyBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNyZWRlbnRpYWxJZC5kYXRhKCksIGNy
ZWRlbnRpYWxJZC5zaXplKCkpLCB0cnVlLCBudWxscHRyLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF0
dGVzdGF0aW9uT2JqZWN0LnZhbHVlKCkuZGF0YSgpLCBhdHRlc3RhdGlvbk9iamVjdC52YWx1ZSgp
LnNpemUoKSksIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKKyAgICByZXR1cm4gUHVibGlj
S2V5Q3JlZGVudGlhbERhdGEgeyBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNyZWRlbnRpYWxJZC5kYXRh
KCksIGNyZWRlbnRpYWxJZC5zaXplKCkpLCB0cnVlLCBudWxscHRyLCBBcnJheUJ1ZmZlcjo6Y3Jl
YXRlKGF0dGVzdGF0aW9uT2JqZWN0LnZhbHVlKCkuZGF0YSgpLCBhdHRlc3RhdGlvbk9iamVjdC52
YWx1ZSgpLnNpemUoKSksIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIFdURjo6bnVsbG9wdCB9
OwogfQogCiBPcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENUQVBHZXRBc3Nl
cnRpb25SZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGluQnVmZmVyKQpAQCAtMTcwLDcg
KzE3MCw3IEBAIE9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFkQ1RBUEdldEFz
c2VydGlvblJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50CiAgICAgICAgIHVzZXJIYW5kbGUgPSBB
cnJheUJ1ZmZlcjo6Y3JlYXRlKGlkLmRhdGEoKSwgaWQuc2l6ZSgpKTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gUHVibGljS2V5Q3JlZGVudGlhbERhdGEgeyBXVEZNb3ZlKGNyZWRlbnRpYWxJZCksIGZh
bHNlLCBudWxscHRyLCBudWxscHRyLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF1dGhEYXRhLmRhdGEo
KSwgYXV0aERhdGEuc2l6ZSgpKSwgQXJyYXlCdWZmZXI6OmNyZWF0ZShzaWduYXR1cmUuZGF0YSgp
LCBzaWduYXR1cmUuc2l6ZSgpKSwgV1RGTW92ZSh1c2VySGFuZGxlKSB9OworICAgIHJldHVybiBQ
dWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7IFdURk1vdmUoY3JlZGVudGlhbElkKSwgZmFsc2UsIG51
bGxwdHIsIG51bGxwdHIsIEFycmF5QnVmZmVyOjpjcmVhdGUoYXV0aERhdGEuZGF0YSgpLCBhdXRo
RGF0YS5zaXplKCkpLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHNpZ25hdHVyZS5kYXRhKCksIHNpZ25h
dHVyZS5zaXplKCkpLCBXVEZNb3ZlKHVzZXJIYW5kbGUpLCBXVEY6Om51bGxvcHQgfTsKIH0KIAog
T3B0aW9uYWw8QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZT4gcmVhZENUQVBHZXRJbmZvUmVz
cG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpbkJ1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZDb21tYW5kQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZkNvbW1hbmRDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggZDllNzc3MTJlZjFkYjIyNzAyZDRhZjQwOTdmNTBmY2NkYWI1MmVmYy4u
NjE2NWI4ODE0YzNkZDQwNWExNjAzYmIyZGNiY2MyNmJjNmE3ODZmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZkNvbW1hbmRDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZkNvbW1hbmRD
b25zdHJ1Y3Rvci5jcHAKQEAgLTExNCwxMiArMTE0LDE1IEBAIE9wdGlvbmFsPFZlY3Rvcjx1aW50
OF90Pj4gY29udmVydFRvVTJmQ2hlY2tPbmx5U2lnbkNvbW1hbmQoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+CiAgICAgcmV0dXJuIGNvbnN0cnVjdFUyZlNpZ25Db21tYW5kKHByb2R1Y2VScElkSGFzaChy
ZXF1ZXN0LnJwLmlkKSwgY2xpZW50RGF0YUhhc2gsIGtleUhhbmRsZS5pZFZlY3RvciwgdHJ1ZSAv
KiBjaGVja09ubHkgKi8pOwogfQogCi1PcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGNvbnZlcnRU
b1UyZlNpZ25Db21tYW5kKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgY2xpZW50RGF0YUhhc2gsIGNv
bnN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgcmVxdWVzdCwgY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBrZXlIYW5kbGUsIGJvb2wgY2hlY2tPbmx5KQorT3B0aW9uYWw8VmVjdG9y
PHVpbnQ4X3Q+PiBjb252ZXJ0VG9VMmZTaWduQ29tbWFuZChjb25zdCBWZWN0b3I8dWludDhfdD4m
IGNsaWVudERhdGFIYXNoLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMm
IHJlcXVlc3QsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5SGFuZGxlLCBib29sIGlzQXBwSWQp
CiB7CiAgICAgaWYgKCFpc0NvbnZlcnRpYmxlVG9VMmZTaWduQ29tbWFuZChyZXF1ZXN0KSkKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJldHVybiBjb25zdHJ1Y3RVMmZTaWdu
Q29tbWFuZChwcm9kdWNlUnBJZEhhc2gocmVxdWVzdC5ycElkKSwgY2xpZW50RGF0YUhhc2gsIGtl
eUhhbmRsZSwgY2hlY2tPbmx5KTsKKyAgICBpZiAoIWlzQXBwSWQpCisgICAgICAgIHJldHVybiBj
b25zdHJ1Y3RVMmZTaWduQ29tbWFuZChwcm9kdWNlUnBJZEhhc2gocmVxdWVzdC5ycElkKSwgY2xp
ZW50RGF0YUhhc2gsIGtleUhhbmRsZSwgZmFsc2UpOworICAgIEFTU0VSVChyZXF1ZXN0LmV4dGVu
c2lvbnMgJiYgIXJlcXVlc3QuZXh0ZW5zaW9ucy0+YXBwaWQuaXNOdWxsKCkpOworICAgIHJldHVy
biBjb25zdHJ1Y3RVMmZTaWduQ29tbWFuZChwcm9kdWNlUnBJZEhhc2gocmVxdWVzdC5leHRlbnNp
b25zLT5hcHBpZCksIGNsaWVudERhdGFIYXNoLCBrZXlIYW5kbGUsIGZhbHNlKTsKIH0KIAogVmVj
dG9yPHVpbnQ4X3Q+IGNvbnN0cnVjdEJvZ3VzVTJmUmVnaXN0cmF0aW9uQ29tbWFuZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmQ29tbWFuZENv
bnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmQ29t
bWFuZENvbnN0cnVjdG9yLmgKaW5kZXggMDdlMTZlNWNmNTc1YTJlODQwYzk0YjA1MmU5OWFhNTQ1
N2I4NmVmZC4uZWViZTI5MmZmMmFjNDdmZmNhMzc5NDIwZDVkZWFhZmU3NDZjOWQ0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZkNvbW1hbmRDb25z
dHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZD
b21tYW5kQ29uc3RydWN0b3IuaApAQCAtNjIsNyArNjIsNyBAQCBXRUJDT1JFX0VYUE9SVCBPcHRp
b25hbDxWZWN0b3I8dWludDhfdD4+IGNvbnZlcnRUb1UyZlJlZ2lzdGVyQ29tbWFuZChjb25zdCBW
ZWN0bwogV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBjb252ZXJ0VG9V
MmZDaGVja09ubHlTaWduQ29tbWFuZChjb25zdCBWZWN0b3I8dWludDhfdD4mIGNsaWVudERhdGFI
YXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwg
Y29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3ImKTsKIAogLy8gRXh0
cmFjdHMgQVBEVSBlbmNvZGVkIFUyRiBzaWduIGNvbW1hbmQgZnJvbSBQdWJsaWNLZXlDcmVkZW50
aWFsUmVxdWVzdE9wdGlvbnMuCi1XRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxWZWN0b3I8dWludDhf
dD4+IGNvbnZlcnRUb1UyZlNpZ25Db21tYW5kKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgY2xpZW50
RGF0YUhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cyYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5SGFuZGxlLCBib29sIGNoZWNrT25seSA9IGZh
bHNlKTsKK1dFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gY29udmVydFRv
VTJmU2lnbkNvbW1hbmQoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjbGllbnREYXRhSGFzaCwgY29u
c3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBrZXlIYW5kbGUsIGJvb2wgaXNBcHBJZCA9IGZhbHNlKTsKIAogV0VCQ09S
RV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0cnVjdEJvZ3VzVTJmUmVnaXN0cmF0aW9uQ29t
bWFuZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCBjYjQ2NzgxNjhiNGI4MmQx
ZTRhZTdlMGE3N2NkMWEyNTRhODczNjI0Li4zMmExODUzYmFjNDcwNjA1OTQ1MDRiNjZhOTc5OGFk
Mzk1NjNlNjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTE3MCw3ICsxNzAsNyBA
QCBPcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZFUyZlJlZ2lzdGVyUmVzcG9u
c2UoY29uc3QgU3RyaW5nJiBycElkLCBjbwogCiAgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9
IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICJmaWRvLXUyZiIsIFdU
Rk1vdmUoZmlkb0F0dGVzdGF0aW9uU3RhdGVtZW50KSk7CiAKLSAgICByZXR1cm4gUHVibGljS2V5
Q3JlZGVudGlhbERhdGEgeyBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNyZWRlbnRpYWxJZC5kYXRhKCks
IGNyZWRlbnRpYWxJZC5zaXplKCkpLCB0cnVlLCBudWxscHRyLCBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KGF0dGVzdGF0aW9uT2JqZWN0LmRhdGEoKSwgYXR0ZXN0YXRpb25PYmplY3Quc2l6ZSgpKSwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OworICAgIHJldHVybiBQdWJsaWNLZXlDcmVkZW50aWFs
RGF0YSB7IEFycmF5QnVmZmVyOjpjcmVhdGUoY3JlZGVudGlhbElkLmRhdGEoKSwgY3JlZGVudGlh
bElkLnNpemUoKSksIHRydWUsIG51bGxwdHIsIEFycmF5QnVmZmVyOjpjcmVhdGUoYXR0ZXN0YXRp
b25PYmplY3QuZGF0YSgpLCBhdHRlc3RhdGlvbk9iamVjdC5zaXplKCkpLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBXVEY6Om51bGxvcHQgfTsKIH0KIAogT3B0aW9uYWw8UHVibGljS2V5Q3Jl
ZGVudGlhbERhdGE+IHJlYWRVMmZTaWduUmVzcG9uc2UoY29uc3QgU3RyaW5nJiBycElkLCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIGtleUhhbmRsZSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB1MmZE
YXRhKQpAQCAtMTg2LDcgKzE4Niw3IEBAIE9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxEYXRh
PiByZWFkVTJmU2lnblJlc3BvbnNlKGNvbnN0IFN0cmluZyYgcnBJZCwgY29uc3QKICAgICBjb3Vu
dGVyICs9IHUyZkRhdGFbY291bnRlckluZGV4ICsgM107CiAgICAgYXV0byBhdXRoRGF0YSA9IGJ1
aWxkQXV0aERhdGEocnBJZCwgZmxhZ3MsIGNvdW50ZXIsIHsgfSk7CiAKLSAgICByZXR1cm4gUHVi
bGljS2V5Q3JlZGVudGlhbERhdGEgeyBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGtleUhhbmRsZS5kYXRh
KCksIGtleUhhbmRsZS5zaXplKCkpLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgQXJyYXlCdWZm
ZXI6OmNyZWF0ZShhdXRoRGF0YS5kYXRhKCksIGF1dGhEYXRhLnNpemUoKSksIEFycmF5QnVmZmVy
OjpjcmVhdGUodTJmRGF0YS5kYXRhKCkgKyBzaWduYXR1cmVJbmRleCwgdTJmRGF0YS5zaXplKCkg
LSBzaWduYXR1cmVJbmRleCksIG51bGxwdHIgfTsKKyAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVu
dGlhbERhdGEgeyBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGtleUhhbmRsZS5kYXRhKCksIGtleUhhbmRs
ZS5zaXplKCkpLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShh
dXRoRGF0YS5kYXRhKCksIGF1dGhEYXRhLnNpemUoKSksIEFycmF5QnVmZmVyOjpjcmVhdGUodTJm
RGF0YS5kYXRhKCkgKyBzaWduYXR1cmVJbmRleCwgdTJmRGF0YS5zaXplKCkgLSBzaWduYXR1cmVJ
bmRleCksIG51bGxwdHIsIFdURjo6bnVsbG9wdCB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBmaWRv
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IDcxY2ZmMWIxMWIyNzBhNTUzOWFjMjQ0ZjVlNWQzMWVjMjZkNWIw
ODIuLjdkNGZmYmMxODYwYzYyMzlkNTY1ODgzZWM4YmY5NmIyM2EzNDE4ZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC0yNTY5LDYgKzI1NjksNyBAQCBKU0F1ZGlvTGlzdGVuZXIuY3BwCiBKU0F1ZGlvTm9k
ZS5jcHAKIEpTQXVkaW9QYXJhbS5jcHAKIEpTQXVkaW9Qcm9jZXNzaW5nRXZlbnQuY3BwCitKU0F1
dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5jcHAKIEpTQXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlLmNwcAogSlNBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5j
cHAKIEpTQXV0aGVudGljYXRvclJlc3BvbnNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlNTI5ZGM0MjQ5NjE0MmM5MTk1
MTM0YTdiNjU3ZDNjYjgxMDg5NjQuLmZiOGM0ZWVkYTYzMjk1ZmI2OTAzNzFlMWUxMjY2ODc3YzMw
YzgyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE4NjYsNiArMTg2Niw3IEBACiAJCTU3RDAwMThEMURENTQxMzIwMEVEMTlE
OSAvKiBKU0NyeXB0b0tleVVzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1N0QwMDE4QzFERDU0MTMyMDBFRDE5RDkgLyogSlNDcnlwdG9LZXlVc2Fn
ZS5oICovOyB9OwogCQk1N0Q4NDYyRTFGRUFGNjk5MDBDQTM2ODIgLyogUHVibGljS2V5Q3JlZGVu
dGlhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdE
ODQ2MkIxRkVBRjY4RjAwQ0EzNjgyIC8qIFB1YmxpY0tleUNyZWRlbnRpYWwuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1N0Q4NDYzNTFGRUFGQ0Qz
MDBDQTM2ODIgLyogSlNQdWJsaWNLZXlDcmVkZW50aWFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0Q4NDYzMDFGRUFGQzJGMDBDQTM2ODIgLyogSlNQ
dWJsaWNLZXlDcmVkZW50aWFsLmggKi87IH07CisJCTU3REE0N0IwMjI0MDM0RTQwMDJBNDYxMiAv
KiBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3REE0N0E1MjI0MDFFMEYwMDJBNDYxMiAv
KiBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1N0RDRUQ3NDIxNDMwNUYwMDAxNkI4
NDcgLyogUHVibGljS2V5Q3JlZGVudGlhbERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFRDcyMjE0MzA1RjAwMDE2Qjg0NyAvKiBQdWJsaWNL
ZXlDcmVkZW50aWFsRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTU3RENFRDkwMjE0ODdGRjcwMDE2Qjg0NyAvKiBBdXRoZW50aWNhdG9yVHJh
bnNwb3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
N0RDRUQ4QzIxNDg3RURCMDAxNkI4NDcgLyogQXV0aGVudGljYXRvclRyYW5zcG9ydC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU3RENFRDk4MjE0
ODgyMTYwMDE2Qjg0NyAvKiBKU0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFRDkyMjE0ODgwQzYwMDE2Qjg0
NyAvKiBKU0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaCAqLzsgfTsKQEAgLTg4NzEsNiArODg3Miwx
MCBAQAogCQk1N0Q4NDYyRDFGRUFGNjhGMDBDQTM2ODIgLyogUHVibGljS2V5Q3JlZGVudGlhbC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUHVibGljS2V5Q3JlZGVudGlhbC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3RDg0NjMwMUZFQUZDMkYwMENBMzY4MiAvKiBKU1B1YmxpY0tleUNyZWRlbnRpYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQdWJsaWNLZXlDcmVkZW50aWFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RDg0NjMxMUZFQUZDMkYwMENBMzY4
MiAvKiBKU1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNQdWJsaWNLZXlDcmVkZW50aWFsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTdEQTQ3QTUyMjQwMUUwRjAwMkE0NjEyIC8qIEF1dGhlbnRpY2F0aW9uRXh0
ZW5zaW9uc0NsaWVudElucHV0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkV4dGVu
c2lvbnNDbGllbnRJbnB1dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdEQTQ3
QTcyMjQwMUUwRjAwMkE0NjEyIC8qIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0
cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdEQTQ3QUMyMjQwMzJEQzAwMkE0NjEyIC8qIEpT
QXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdEQTQ3QUQyMjQwMzJERDAwMkE0NjEyIC8qIEpTQXV0aGVu
dGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXV0aGVu
dGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3RENFRDcyMjE0MzA1RjAwMDE2Qjg0NyAvKiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0
YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1N0RDRUQ4QzIxNDg3RURCMDAxNkI4NDcgLyogQXV0aGVudGlj
YXRvclRyYW5zcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdG9yVHJhbnNwb3J0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFRDhFMjE0ODdFREIwMDE2Qjg0NyAv
KiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdXRoZW50aWNhdG9yVHJhbnNwb3J0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5ODgxLDYgKzE5ODg2LDggQEAK
IAkJCQk1NzE1MkI1MzIxQ0IyQ0UzMDAwQzM3Q0EgLyogYXBkdSAqLywKIAkJCQk1NzMwM0JCMzIw
MDZDNkVEMDAzNTU5NjUgLyogY2JvciAqLywKIAkJCQk1NzhBNEJGQTIxNjZBRTAwMDBEMDhGMzQg
LyogZmlkbyAqLywKKwkJCQk1N0RBNDdBNTIyNDAxRTBGMDAyQTQ2MTIgLyogQXV0aGVudGljYXRp
b25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmggKi8sCisJCQkJNTdEQTQ3QTcyMjQwMUUwRjAwMkE0
NjEyIC8qIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5pZGwgKi8sCiAJCQkJ
NTczMDNDMjcyMDA5QjJGQzAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25z
ZS5oICovLAogCQkJCTU3MzAzQzI5MjAwOUIyRkMwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXNz
ZXJ0aW9uUmVzcG9uc2UuaWRsICovLAogCQkJCTU3MzAzQzFCMjAwOUE5ODYwMDM1NTk2NSAvKiBB
dXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5oICovLApAQCAtMTk5MTcsNiArMTk5MjQs
OCBAQAogCQk1N0Q4NDYyRjFGRUFGQjA1MDBDQTM2ODIgLyogV2ViQXV0aE4gKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU3REE0N0FDMjI0MDMyREMwMDJB
NDYxMiAvKiBKU0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5jcHAgKi8sCisJ
CQkJNTdEQTQ3QUQyMjQwMzJERDAwMkE0NjEyIC8qIEpTQXV0aGVudGljYXRpb25FeHRlbnNpb25z
Q2xpZW50SW5wdXRzLmggKi8sCiAJCQkJNTczMDNDMkUyMDA5QjdEQTAwMzU1OTY1IC8qIEpTQXV0
aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmNwcCAqLywKIAkJCQk1NzMwM0MyRDIwMDlCN0Q5
MDAzNTU5NjUgLyogSlNBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaCAqLywKIAkJCQk1
NzMwM0MyMDIwMDlBRUY1MDAzNTU5NjUgLyogSlNBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNw
b25zZS5jcHAgKi8sCkBAIC0yODYxNCw2ICsyODYyMyw3IEBACiAJCQkJN0VFNjg0NjExMkQyNkUz
ODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzRGNzEzQTBENUE2RjEwMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI0NzQ4NDEwQUExNjFEMDBCNzk0OTMgLyogQXV0aGVu
dGljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3REE0N0IwMjI0MDM0RTQwMDJB
NDYxMiAvKiBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxNEM3NjRDMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNDMkMyMDA5QjRBODAwMzU1OTY1IC8qIEF1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNDMUYyMDA5
QUI0MjAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQppbmRleCA0
ZTNkMTE0MjE0ZTE2ZGIwMGFkOWQwNzYwNDNmYmYyYjYxYWI5YTk4Li42OWZmZWRiYWNjNzk0ZTky
NjhjYTg2MzU3YzliMjg0N2FkYjdlMmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRo
ZW50aWNhdG9yLm1tCkBAIC0zMjYsNyArMzI2LDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6
OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlckF0dGVzdGVkKFNlY0tleVJlZiBwcml2YXRlS2UK
ICAgICB9CiAgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmpl
Y3QoV1RGTW92ZShhdXRoRGF0YSksICJBcHBsZSIsIFdURk1vdmUoYXR0ZXN0YXRpb25TdGF0ZW1l
bnRNYXApKTsKIAotICAgIHJlY2VpdmVSZXNwb25kKFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsg
QXJyYXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFsSWQuZGF0YSgpLCBjcmVkZW50aWFsSWQuc2l6
ZSgpKSwgdHJ1ZSwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9iamVj
dC5kYXRhKCksIGF0dGVzdGF0aW9uT2JqZWN0LnNpemUoKSksIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIgfSk7CisgICAgcmVjZWl2ZVJlc3BvbmQoUHVibGljS2V5Q3JlZGVudGlhbERhdGEgeyBB
cnJheUJ1ZmZlcjo6Y3JlYXRlKGNyZWRlbnRpYWxJZC5kYXRhKCksIGNyZWRlbnRpYWxJZC5zaXpl
KCkpLCB0cnVlLCBudWxscHRyLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF0dGVzdGF0aW9uT2JqZWN0
LmRhdGEoKSwgYXR0ZXN0YXRpb25PYmplY3Quc2l6ZSgpKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0ciwgV1RGOjpudWxsb3B0IH0pOwogI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQog
fQogCkBAIC00NjMsNyArNDYzLDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVl
R2V0QXNzZXJ0aW9uQWZ0ZXJVc2VyQ29uc2VudGVkKExvY2FsQ29ubmVjdGlvbjoKICAgICB9CiAK
ICAgICAvLyBTdGVwIDEzLgotICAgIHJlY2VpdmVSZXNwb25kKFB1YmxpY0tleUNyZWRlbnRpYWxE
YXRhIHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFsSWQuZGF0YSgpLCBjcmVkZW50aWFs
SWQuc2l6ZSgpKSwgZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIEFycmF5QnVmZmVyOjpjcmVhdGUo
YXV0aERhdGEuZGF0YSgpLCBhdXRoRGF0YS5zaXplKCkpLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHNp
Z25hdHVyZS5kYXRhKCksIHNpZ25hdHVyZS5zaXplKCkpLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHVz
ZXJoYW5kbGUuZGF0YSgpLCB1c2VyaGFuZGxlLnNpemUoKSkgfSk7CisgICAgcmVjZWl2ZVJlc3Bv
bmQoUHVibGljS2V5Q3JlZGVudGlhbERhdGEgeyBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNyZWRlbnRp
YWxJZC5kYXRhKCksIGNyZWRlbnRpYWxJZC5zaXplKCkpLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0
ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdXRoRGF0YS5kYXRhKCksIGF1dGhEYXRhLnNpemUoKSks
IEFycmF5QnVmZmVyOjpjcmVhdGUoc2lnbmF0dXJlLmRhdGEoKSwgc2lnbmF0dXJlLnNpemUoKSks
IEFycmF5QnVmZmVyOjpjcmVhdGUodXNlcmhhbmRsZS5kYXRhKCksIHVzZXJoYW5kbGUuc2l6ZSgp
KSwgV1RGOjpudWxsb3B0IH0pOwogI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9m
aWRvL1UyZkhpZEF1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vZmlkby9VMmZIaWRBdXRoZW50aWNhdG9yLmNwcAppbmRleCA4NDQ3ZjQy
ZjYzYjM4YWVhZDUzZWU5YjU3YzQ1ZmIzYjI4ZWJmYjEyLi4xY2RlODI5MWVjMzQ5YWEwNjVkYTIy
NGM5OTE1NGNjMzE2Y2MzMWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkhpZEF1dGhlbnRpY2F0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJmSGlkQXV0aGVudGlj
YXRvci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFUyZkhpZEF1dGhlbnRpY2F0b3I6Omlz
c3VlU2lnbkNvbW1hbmQoc2l6ZV90IGluZGV4KQogICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNl
cHRpb25EYXRhIHsgTm90QWxsb3dlZEVycm9yLCAiTm8gY3JlZGVudGlhbHMgZnJvbSB0aGUgYWxs
b3dDcmVkZW50aWFscyBsaXN0IGlzIGZvdW5kIGluIHRoZSBhdXRoZW50aWNhdG9yLiJfcyB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBhdXRvIHUyZkNtZCA9IGNvbnZlcnRUb1UyZlNp
Z25Db21tYW5kKHJlcXVlc3REYXRhKCkuaGFzaCwgcmVxdWVzdERhdGEoKS5yZXF1ZXN0T3B0aW9u
cywgcmVxdWVzdERhdGEoKS5yZXF1ZXN0T3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzW2luZGV4XS5p
ZFZlY3Rvcik7CisgICAgYXV0byB1MmZDbWQgPSBjb252ZXJ0VG9VMmZTaWduQ29tbWFuZChyZXF1
ZXN0RGF0YSgpLmhhc2gsIHJlcXVlc3REYXRhKCkucmVxdWVzdE9wdGlvbnMsIHJlcXVlc3REYXRh
KCkucmVxdWVzdE9wdGlvbnMuYWxsb3dDcmVkZW50aWFsc1tpbmRleF0uaWRWZWN0b3IsIG1faXNB
cHBJZCk7CiAgICAgQVNTRVJUKHUyZkNtZCk7CiAgICAgaXNzdWVOZXdDb21tYW5kKFdURk1vdmUo
KnUyZkNtZCksIENvbW1hbmRUeXBlOjpTaWduQ29tbWFuZCk7CiB9CkBAIC0yMDAsMTEgKzIwMCwx
OSBAQCB2b2lkIFUyZkhpZEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlU2lnbkNvbW1hbmRBZnRlclJl
c3BvbnNlUmVjZWl2ZWQoQXBkdVJlc3BvbnNlJgogewogICAgIHN3aXRjaCAoYXBkdVJlc3BvbnNl
LnN0YXR1cygpKSB7CiAgICAgY2FzZSBBcGR1UmVzcG9uc2U6OlN0YXR1czo6U1dfTk9fRVJST1I6
IHsKLSAgICAgICAgYXV0byByZXNwb25zZSA9IHJlYWRVMmZTaWduUmVzcG9uc2UocmVxdWVzdERh
dGEoKS5yZXF1ZXN0T3B0aW9ucy5ycElkLCByZXF1ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25zLmFs
bG93Q3JlZGVudGlhbHNbbV9uZXh0TGlzdEluZGV4IC0gMV0uaWRWZWN0b3IsIGFwZHVSZXNwb25z
ZS5kYXRhKCkpOworICAgICAgICBPcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVz
cG9uc2U7CisgICAgICAgIGlmIChtX2lzQXBwSWQpIHsKKyAgICAgICAgICAgIEFTU0VSVChyZXF1
ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25zLmV4dGVuc2lvbnMgJiYgIXJlcXVlc3REYXRhKCkucmVx
dWVzdE9wdGlvbnMuZXh0ZW5zaW9ucy0+YXBwaWQuaXNOdWxsKCkpOworICAgICAgICAgICAgcmVz
cG9uc2UgPSByZWFkVTJmU2lnblJlc3BvbnNlKHJlcXVlc3REYXRhKCkucmVxdWVzdE9wdGlvbnMu
ZXh0ZW5zaW9ucy0+YXBwaWQsIHJlcXVlc3REYXRhKCkucmVxdWVzdE9wdGlvbnMuYWxsb3dDcmVk
ZW50aWFsc1ttX25leHRMaXN0SW5kZXggLSAxXS5pZFZlY3RvciwgYXBkdVJlc3BvbnNlLmRhdGEo
KSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVzcG9uc2UgPSByZWFkVTJmU2lnblJl
c3BvbnNlKHJlcXVlc3REYXRhKCkucmVxdWVzdE9wdGlvbnMucnBJZCwgcmVxdWVzdERhdGEoKS5y
ZXF1ZXN0T3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzW21fbmV4dExpc3RJbmRleCAtIDFdLmlkVmVj
dG9yLCBhcGR1UmVzcG9uc2UuZGF0YSgpKTsKICAgICAgICAgaWYgKCFyZXNwb25zZSkgewogICAg
ICAgICAgICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IFVua25vd25FcnJvciwgIkNv
dWxkbid0IHBhcnNlIHRoZSBVMkYgc2lnbiByZXNwb25zZS4iX3MgfSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgaWYgKG1faXNBcHBJZCkKKyAgICAgICAgICAgIHJl
c3BvbnNlLT5hcHBpZCA9IG1faXNBcHBJZDsKKwogICAgICAgICByZWNlaXZlUmVzcG9uZChXVEZN
b3ZlKCpyZXNwb25zZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjEyLDYgKzIyMCwx
NyBAQCB2b2lkIFUyZkhpZEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlU2lnbkNvbW1hbmRBZnRlclJl
c3BvbnNlUmVjZWl2ZWQoQXBkdVJlc3BvbnNlJgogICAgICAgICAvLyBQb2xsaW5nIGlzIHJlcXVp
cmVkIGR1cmluZyB0ZXN0IG9mIHVzZXIgcHJlc2VuY2UuCiAgICAgICAgIG1fcmV0cnlUaW1lci5z
dGFydE9uZVNob3QoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhyZXRyeVRpbWVPdXRWYWx1ZU1z
KSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEFwZHVSZXNwb25zZTo6U3RhdHVzOjpTV19X
Uk9OR19EQVRBOgorICAgICAgICBpZiAocmVxdWVzdERhdGEoKS5yZXF1ZXN0T3B0aW9ucy5leHRl
bnNpb25zICYmICFyZXF1ZXN0RGF0YSgpLnJlcXVlc3RPcHRpb25zLmV4dGVuc2lvbnMtPmFwcGlk
LmlzTnVsbCgpKSB7CisgICAgICAgICAgICBpZiAoIW1faXNBcHBJZCkgeworICAgICAgICAgICAg
ICAgIG1faXNBcHBJZCA9IHRydWU7CisgICAgICAgICAgICAgICAgaXNzdWVTaWduQ29tbWFuZCht
X25leHRMaXN0SW5kZXggLSAxKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBtX2lzQXBwSWQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBp
c3N1ZVNpZ25Db21tYW5kKG1fbmV4dExpc3RJbmRleCsrKTsKKyAgICAgICAgcmV0dXJuOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIGlzc3VlU2lnbkNvbW1hbmQobV9uZXh0TGlzdEluZGV4KyspOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL2ZpZG8vVTJmSGlkQXV0aGVudGljYXRvci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vZmlkby9VMmZIaWRBdXRoZW50aWNhdG9yLmgKaW5kZXggY2ZmMjk0
NzdlZDY5OTUxZTkwY2M3ODNhYmNhYjU0NGJkMDE1YzM0NC4uYWFhYjY2NmVkM2Y5YzVhMjZjNWNj
YzM3NTExODVmZWMzNzgyMzg5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vZmlkby9VMmZIaWRBdXRoZW50aWNhdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9VMmZIaWRBdXRoZW50aWNh
dG9yLmgKQEAgLTc0LDYgKzc0LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8dWludDhfdD4gbV9s
YXN0Q29tbWFuZDsKICAgICBDb21tYW5kVHlwZSBtX2xhc3RDb21tYW5kVHlwZTsKICAgICBzaXpl
X3QgbV9uZXh0TGlzdEluZGV4IHsgMCB9OworICAgIGJvb2wgbV9pc0FwcElkIHsgZmFsc2UgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDdkMzA5NzY3ODc1YzVlYWRjYWU3YTI1ZDk5MmJiM2E2
NmQxOWIyZTkuLjc3MWUzZDRhODliZjAwMDE0OTQxNWE0ZDhhNmVlY2E4OTcwYTY0ZTYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAxOS0wMy0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJBdXRoTl0gSW1wbGVtZW50IEZJRE8gQXBwSUQgZXh0ZW5zaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM0OTEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQ4Mjk4MjczPgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1
bGdoYW0uCisKKyAgICAgICAgQWRkIGEgdGVzdCB0aGF0IGNvdmVycyB0aGUgbmV3IGZsYWcgb2Yg
Y29udmVydFRvVTJmU2lnbkNvbW1hbmQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEu
aDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVTJmQ29tbWFuZENvbnN0
cnVjdG9yVGVzdC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxOS0w
My0xOSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2V3
cy1idWlsZF0gSW1wcm92ZSBzdW1tYXJ5IGZvciBQcmludENvbmZpZ3VyYXRpb24gc3RlcApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVz
dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0
LmNwcAppbmRleCA4Y2I0NDI3YTZkMjdhZjBjYzBhYTA4ZTIzNGU2ODBjOWY2YmMwMDVjLi5mNWU0
ZjE0M2M2OWVhODUyOWI1OGY3MDk4ZmVmZWFiN2FiMjYzYjg0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcApAQCAtNTks
NyArNTksNyBAQCBURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdE1ha2VDcmVkZW50
aWFsUmVxdWVzdFBhcmFtKQogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQ
dWJsaWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCAyNTcg
fSB9OwogICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0
b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0sIHRydWUsIFVzZXJW
ZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CiAKLSAgICBQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwgdXNlciwgeyB9LCBwYXJhbXMsIFdU
Rjo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24gfTsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwgdXNlciwgeyB9LCBwYXJhbXMsIFdURjo6bnVsbG9w
dCwgeyB9LCBzZWxlY3Rpb24sIFdURjo6bnVsbG9wdCB9OwogICAgIFZlY3Rvcjx1aW50OF90PiBo
YXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihU
ZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CiAgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVu
Y29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZEJ1dE5vdENvbmZpZ3VyZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0ZpZG9UZXN0RGF0YS5oCmluZGV4IGI2ODJmYjdjMjg3YzMwZDMwZmRjMGI1NDBiYTY5
NTIyNGUzMmE0MDIuLjkyNzkyMDEwYjM0MTRiNWM4MDAwZDA5YmJmYmUzYjhkYWNjOGMwYjYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEu
aAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmgK
QEAgLTExMyw2ICsxMTMsMzIgQEAgY29uc3RleHByIHVpbnQ4X3Qga1UyZlNpZ25Db21tYW5kQXBk
dVtdID0gewogICAgIDB4MDAsIDB4MDAsCiB9OwogCitjb25zdGV4cHIgdWludDhfdCBrVTJmQXBw
SURTaWduQ29tbWFuZEFwZHVbXSA9IHsKKyAgICAvLyBDTEEsIElOUywgUDEsIFAyIEFQRFUgaW5z
dHJ1Y3Rpb24gcGFyYW1ldGVycworICAgIDB4MDAsIDB4MDIsIDB4MDMsIDB4MDAsCisgICAgLy8g
RGF0YSBMZW5ndGggKDMgYnl0ZXMgaW4gYmlnIGVuZGlhbiBvcmRlcikKKyAgICAweDAwLCAweDAw
LCAweDgxLAorICAgIC8vIENoYWxsZW5nZSBwYXJhbWV0ZXIgLS0gc2VlIGtDbGllbnREYXRhSGFz
aAorICAgIDB4NjgsIDB4NzEsIDB4MzQsIDB4OTYsIDB4ODIsIDB4MjIsIDB4ZWMsIDB4MTcsIDB4
MjAsIDB4MmUsIDB4NDIsCisgICAgMHg1MCwgMHg1ZiwgMHg4ZSwgMHhkMiwgMHhiMSwgMHg2YSwg
MHhlMiwgMHgyZiwgMHgxNiwgMHhiYiwgMHgwNSwKKyAgICAweGI4LCAweDhjLCAweDI1LCAweGRi
LCAweDllLCAweDYwLCAweDI2LCAweDQ1LCAweGYxLCAweDQxLAorICAgIC8vIEFwcGxpY2F0aW9u
IHBhcmFtZXRlcgorICAgIDB4YzksIDB4MzQsIDB4MDIsIDB4ODcsIDB4MDgsIDB4M2QsIDB4NjQs
IDB4ZGUsIDB4ZWQsIDB4MTcsIDB4MWIsIDB4YmIsCisgICAgMHhkNywgMHg2MCwgMHgxMCwgMHhh
ZSwgMHhjNSwgMHg2NSwgMHgzZSwgMHg3OCwgMHhmYywgMHhkMCwgMHgzMSwgMHg4OCwKKyAgICAw
eGQwLCAweGJmLCAweDcwLCAweDE2LCAweDlhLCAweDQ2LCAweDkxLCAweGRhLAorICAgIC8vIEtl
eSBoYW5kbGUgbGVuZ3RoCisgICAgMHg0MCwKKyAgICAvLyBLZXkgaGFuZGxlCisgICAgMHgzRSwg
MHhCRCwgMHg4OSwgMHhCRiwgMHg3NywgMHhFQywgMHg1MCwgMHg5NywgMHg1NSwgMHhFRSwgMHg5
QywgMHgyNiwKKyAgICAweDM1LCAweEVGLCAweEFBLCAweEFDLCAweDdCLCAweDJCLCAweDlDLCAw
eDVDLCAweEVGLCAweDE3LCAweDM2LCAweEMzLAorICAgIDB4NzEsIDB4N0QsIDB4QTQsIDB4ODUs
IDB4MzQsIDB4QzgsIDB4QzYsIDB4QjYsIDB4NTQsIDB4RDcsIDB4RkYsIDB4OTQsCisgICAgMHg1
RiwgMHg1MCwgMHhCNSwgMHhDQywgMHg0RSwgMHg3OCwgMHgwNSwgMHg1QiwgMHhERCwgMHgzOSwg
MHg2QiwgMHg2NCwKKyAgICAweEY3LCAweDhELCAweEEyLCAweEM1LCAweEY5LCAweDYyLCAweDAw
LCAweENDLCAweEQ0LCAweDE1LCAweENELCAweDA4LAorICAgIDB4RkUsIDB4NDIsIDB4MDAsIDB4
MzgsCisgICAgLy8gTWF4IHJlc3BvbnNlIGxlbmd0aAorICAgIDB4MDAsIDB4MDAsCit9OworCiBj
b25zdGV4cHIgdWludDhfdCBrVTJmQ2hlY2tPbmx5U2lnbkNvbW1hbmRBcGR1W10gPSB7CiAgICAg
Ly8gQ0xBLCBJTlMsIFAxLCBQMiBBUERVIGluc3RydWN0aW9uIHBhcmFtZXRlcnMKICAgICAweDAw
LCAweDAyLCAweDA3LCAweDAwLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1UyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1UyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QuY3BwCmluZGV4IDdk
NzQ1ZjliYmM2NGFlMWUxNjZlMjIzYjYzMmI3M2IxODk2OTkzZWMuLjY0NjA0NDYyMmZiYzE5MjUx
ODFjNzIxMmM0MGFhNGVhMmY4MGU5ZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9VMmZDb21tYW5kQ29uc3RydWN0b3JUZXN0LmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVTJmQ29tbWFuZENvbnN0cnVjdG9yVGVzdC5jcHAK
QEAgLTE3Niw2ICsxNzYsMjcgQEAgVEVTVChVMmZDb21tYW5kQ29uc3RydWN0b3JUZXN0LCBUZXN0
Q29udmVydEN0YXBHZXRBc3NlcnRpb25Ub1UyZlNpZ25SZXF1ZXN0KQogICAgIEVYUEVDVF9FUSgq
dTJmU2lnbkNvbW1hbmQsIGNvbnZlcnRCeXRlc1RvVmVjdG9yKFRlc3REYXRhOjprVTJmU2lnbkNv
bW1hbmRBcGR1LCBzaXplb2YoVGVzdERhdGE6OmtVMmZTaWduQ29tbWFuZEFwZHUpKSk7CiB9CiAK
K1RFU1QoVTJmQ29tbWFuZENvbnN0cnVjdG9yVGVzdCwgVGVzdENvbnZlcnRDdGFwR2V0QXNzZXJ0
aW9uV2l0aEFwcElEVG9VMmZTaWduUmVxdWVzdCkKK3sKKyAgICBhdXRvIGdldEFzc2VydGlvblJl
cSA9IGNvbnN0cnVjdEdldEFzc2VydGlvblJlcXVlc3QoKTsKKyAgICBQdWJsaWNLZXlDcmVkZW50
aWFsRGVzY3JpcHRvciBjcmVkZW50aWFsRGVzY3JpcHRvcjsKKyAgICBjcmVkZW50aWFsRGVzY3Jp
cHRvci50eXBlID0gUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleTsKKyAgICBjcmVk
ZW50aWFsRGVzY3JpcHRvci5pZFZlY3RvciA9IGNvbnZlcnRCeXRlc1RvVmVjdG9yKFRlc3REYXRh
OjprVTJmU2lnbktleUhhbmRsZSwgc2l6ZW9mKFRlc3REYXRhOjprVTJmU2lnbktleUhhbmRsZSkp
OworICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4gYWxsb3dlZExpc3Q7
CisgICAgYWxsb3dlZExpc3QuYXBwZW5kKFdURk1vdmUoY3JlZGVudGlhbERlc2NyaXB0b3IpKTsK
KyAgICBnZXRBc3NlcnRpb25SZXEuYWxsb3dDcmVkZW50aWFscyA9IFdURk1vdmUoYWxsb3dlZExp
c3QpOworICAgIEVYUEVDVF9UUlVFKGlzQ29udmVydGlibGVUb1UyZlNpZ25Db21tYW5kKGdldEFz
c2VydGlvblJlcSkpOworCisgICAgLy8gQXBwSUQKKyAgICBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkV4dGVuc2lvbnNDbGllbnRJbnB1dHMgZXh0ZW5zaW9uczsKKyAgICBleHRlbnNpb25zLmFwcGlk
ID0gImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tL2FwcGlkIjsKKyAgICBnZXRBc3NlcnRpb25SZXEu
ZXh0ZW5zaW9ucyA9IFdURk1vdmUoZXh0ZW5zaW9ucyk7CisKKyAgICBjb25zdCBhdXRvIHUyZlNp
Z25Db21tYW5kID0gY29udmVydFRvVTJmU2lnbkNvbW1hbmQoY29udmVydEJ5dGVzVG9WZWN0b3Io
VGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50RGF0YUhh
c2gpKSwgZ2V0QXNzZXJ0aW9uUmVxLCBjb252ZXJ0Qnl0ZXNUb1ZlY3RvcihUZXN0RGF0YTo6a1Uy
ZlNpZ25LZXlIYW5kbGUsIHNpemVvZihUZXN0RGF0YTo6a1UyZlNpZ25LZXlIYW5kbGUpKSwgdHJ1
ZSk7CisgICAgQVNTRVJUX1RSVUUodTJmU2lnbkNvbW1hbmQpOworICAgIEVYUEVDVF9FUSgqdTJm
U2lnbkNvbW1hbmQsIGNvbnZlcnRCeXRlc1RvVmVjdG9yKFRlc3REYXRhOjprVTJmQXBwSURTaWdu
Q29tbWFuZEFwZHUsIHNpemVvZihUZXN0RGF0YTo6a1UyZkFwcElEU2lnbkNvbW1hbmRBcGR1KSkp
OworfQorCiBURVNUKFUyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QsIFRlc3RVMmZTaWduQWxsb3dM
aXN0UmVxdWlyZW1lbnQpCiB7CiAgICAgYXV0byBnZXRBc3NlcnRpb25SZXEgPSBjb25zdHJ1Y3RH
ZXRBc3NlcnRpb25SZXF1ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjgzNWU0ZjFiNTE0ZGJkZWQ4ZjgxM2E1MTk1
ZDc1ZjE1YTRiM2RiOS4uN2FmNjdhNWIwYTUzMjk5NTM3N2FlNmVhZDViNmY1Y2ZjY2I4YzlmOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTAzLTE5ICBKaWV3ZW4gVGFuICA8amlld2VuX3Rh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBsZW1lbnQgRklETyBBcHBJRCBl
eHRlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0MzQ5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgyOTgyNzM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nl
c3MtbG9jYWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtdTJmLmh0dHBzLmh0bWw6CisgICAgICAgICog
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLXUyZi5o
dHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLXUyZi5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWdldC1mYWlsdXJlLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWhpZC5odHRwcy5odG1sOgorICAgICAg
ICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1s
b2NhbC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1nZXQtc3VjY2Vzcy11MmYuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy11MmYu
aHR0cHMuaHRtbDoKKwogMjAxOS0wMy0xOSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXBhcmVudGluZyBkdXJpbmcgYSBtdXRhdGlvbiBldmVudCBpbnNpZGUg
YXBwZW5kQ2hpbGQgY291bGQgcmVzdWx0IGluIGEgY2lyY3VsYXIgRE9NIHRyZWUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1j
cmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbApp
bmRleCBjOTcxODM1MjdhNzRlNGQyN2U0YTIyNDI4N2M2MmVhMDU0ZWUyMDgyLi5lY2I5NTRlN2Vj
MWY1NGUzYzZkODBiYWI3NWY2MmFkMzNlZDQwMWVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlk
Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRwcy5odG1sCkBAIC0xNiw3ICsxNiw3
IEBACiAgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC50eXBlLCAncHVibGljLWtleScp
OwogICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ldyBVaW50OEFycmF5KGNyZWRlbnRpYWwu
cmF3SWQpLCBCYXNlNjRVUkwucGFyc2UodGVzdEhpZENyZWRlbnRpYWxJZEJhc2U2NCkpOwogICAg
ICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9BU0NJSVN0cmluZyhjcmVkZW50aWFsLnJlc3BvbnNl
LmNsaWVudERhdGFKU09OKSwgJ3sidHlwZSI6IndlYmF1dGhuLmNyZWF0ZSIsImNoYWxsZW5nZSI6
Ik1USXpORFUyIiwib3JpZ2luIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyJ9Jyk7Ci0gICAgICAg
IGFzc2VydF90aHJvd3MoIk5vdFN1cHBvcnRlZEVycm9yIiwgKCkgPT4geyBjcmVkZW50aWFsLmdl
dENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSB9KTsKKyAgICAgICAgYXNzZXJ0X25vdF9leGlzdHMo
Y3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCksICJhcHBpZCIpOwogCiAgICAg
ICAgIC8vIENoZWNrIGF0dGVzdGF0aW9uCiAgICAgICAgIGNvbnN0IGF0dGVzdGF0aW9uT2JqZWN0
ID0gQ0JPUi5kZWNvZGUoY3JlZGVudGlhbC5yZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5o
dHRwcy5odG1sCmluZGV4IDZmODc3YzQ0ZjZlYzM2OGZjMmRlZjYwMTNhZDVmZGNhYzE0MDQ3YTMu
LjY5NDY1YjUzMzQ5YTk1MWVmY2RmMGU4MzQ4MWVmYzZhOTlhNTUzYTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUt
c3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1s
CkBAIC0zMCw3ICszMCw3IEBACiAgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC50eXBl
LCAncHVibGljLWtleScpOwogICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ldyBVaW50OEFy
cmF5KGNyZWRlbnRpYWwucmF3SWQpLCBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJh
c2U2NCkpOwogICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9BU0NJSVN0cmluZyhjcmVkZW50
aWFsLnJlc3BvbnNlLmNsaWVudERhdGFKU09OKSwgJ3sidHlwZSI6IndlYmF1dGhuLmNyZWF0ZSIs
ImNoYWxsZW5nZSI6Ik1USXpORFUyIiwib3JpZ2luIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyJ9
Jyk7Ci0gICAgICAgIGFzc2VydF90aHJvd3MoIk5vdFN1cHBvcnRlZEVycm9yIiwgKCkgPT4geyBj
cmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSB9KTsKKyAgICAgICAgYXNzZXJ0
X25vdF9leGlzdHMoY3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCksICJhcHBp
ZCIpOwogCiAgICAgICAgIC8vIENoZWNrIGF0dGVzdGF0aW9uCiAgICAgICAgIGNvbnN0IGF0dGVz
dGF0aW9uT2JqZWN0ID0gQ0JPUi5kZWNvZGUoY3JlZGVudGlhbC5yZXNwb25zZS5hdHRlc3RhdGlv
bk9iamVjdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtdTJmLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nl
c3MtdTJmLmh0dHBzLmh0bWwKaW5kZXggOWZhZWY4NTA2MzlmNThlYTA4NzZhMjkwNTU3ODI5ZDAx
MTIxMDZjYy4uZjUwZTVjYmJiMzIwZTMxOWIwOTc1YWJiYTZiZGE4MmUwZDY1MjA2NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyZWF0ZS1zdWNjZXNzLXUyZi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy11MmYuaHR0cHMu
aHRtbApAQCAtMTIsNyArMTIsNyBAQAogICAgICAgICBhc3NlcnRfZXF1YWxzKGNyZWRlbnRpYWwu
dHlwZSwgJ3B1YmxpYy1rZXknKTsKICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhuZXcgVWlu
dDhBcnJheShjcmVkZW50aWFsLnJhd0lkKSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RVMmZDcmVkZW50
aWFsSWRCYXNlNjQpKTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvQVNDSUlTdHJpbmco
Y3JlZGVudGlhbC5yZXNwb25zZS5jbGllbnREYXRhSlNPTiksICd7InR5cGUiOiJ3ZWJhdXRobi5j
cmVhdGUiLCJjaGFsbGVuZ2UiOiJNVEl6TkRVMiIsIm9yaWdpbiI6Imh0dHBzOi8vbG9jYWxob3N0
Ojk0NDMifScpOwotICAgICAgICBhc3NlcnRfdGhyb3dzKCJOb3RTdXBwb3J0ZWRFcnJvciIsICgp
ID0+IHsgY3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgfSk7CisgICAgICAg
IGFzc2VydF9ub3RfZXhpc3RzKGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygp
LCAiYXBwaWQiKTsKIAogICAgICAgICAvLyBDaGVjayBhdHRlc3RhdGlvbgogICAgICAgICBjb25z
dCBhdHRlc3RhdGlvbk9iamVjdCA9IENCT1IuZGVjb2RlKGNyZWRlbnRpYWwucmVzcG9uc2UuYXR0
ZXN0YXRpb25PYmplY3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLXUyZi5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Z2V0LWZhaWx1cmUtdTJmLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA1YTA2MTQ1YmQ1NWZhYzVk
NDY5YjdlMzhhZTkwNWE5MDE4ZmJlZTRkLi5iNTdiNzg0ZWQ0MGNmNGQ1NDI5ZGU1OTY0YmVjNjNm
ZWVlMjI0ODg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtdTJmLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0
LWZhaWx1cmUtdTJmLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw0ICsyLDYgQEAKIFBBU1MgUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBtYWxmb3JtZWQgc2lnbiByZXNwb25zZSBp
biBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tnZXRdXSB3aXRoIG5vIG1hdGNoZWQgYWxsb3cgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGhpZCBh
dXRoZW50aWNhdG9yLiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBu
byBtYXRjaGVkIGFsbG93IGNyZWRlbnRpYWxzIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4g
MiAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGFs
bG93IGNyZWRlbnRpYWxzIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gKEFwcElEKSAKK1BB
U1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGFsbG93IGNy
ZWRlbnRpYWxzIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gMiAoQXBwSUQpIAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtZ2V0LWZhaWx1cmUtdTJmLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtdTJmLmh0dHBzLmh0bWwKaW5k
ZXggYjQzNWI1ZjVjN2YwMWU2NmQyMTgzMTVjZTAwOWEwY2E2ZDFiZjJmYy4uNjQ5MTM3ODI4NGVi
NjdhMTllN2Q2MDVlNjg3MDAwZGE2NDFlYmRlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLXUyZi5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1nZXQtZmFpbHVyZS11MmYuaHR0cHMuaHRtbApAQCAtNDIsNCArNDIsMzMgQEAKICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlv
bih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAibWFs
aWNpb3VzLXBheWxvYWQiLCBpc1UyZjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RVMmZBcGR1
V3JvbmdEYXRhT25seVJlc3BvbnNlQmFzZTY0LCB0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNw
b25zZUJhc2U2NF0gfSB9KTsKICAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RB
bGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiTm8gY3Jl
ZGVudGlhbHMgZnJvbSB0aGUgYWxsb3dDcmVkZW50aWFscyBsaXN0IGlzIGZvdW5kIGluIHRoZSBh
dXRoZW50aWNhdG9yLiIpOwogICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3
aXRoIG5vIG1hdGNoZWQgYWxsb3cgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNh
dG9yLiAyIik7CisKKyAgICAvLyBXaXRoIEFwcElEIGV4dGVuc2lvbgorICAgIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBw
dWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5
KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBhbGxvd0NyZWRlbnRpYWxzOiBbeyB0eXBlOiAi
cHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCkg
fV0sCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeyBhcHBpZDogIiIgfQorICAgICAgICAg
ICAgfQorICAgICAgICB9OworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7
IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAibWFsaWNp
b3VzLXBheWxvYWQiLCBpc1UyZjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RVMmZBcGR1V3Jv
bmdEYXRhT25seVJlc3BvbnNlQmFzZTY0LCB0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNwb25z
ZUJhc2U2NF0gfSB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxv
d2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiTm8gY3JlZGVu
dGlhbHMgZnJvbSB0aGUgYWxsb3dDcmVkZW50aWFscyBsaXN0IGlzIGZvdW5kIGluIHRoZSBhdXRo
ZW50aWNhdG9yLiIpOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRo
IG5vIG1hdGNoZWQgYWxsb3cgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9y
LiAoQXBwSUQpIik7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgICBj
b25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAg
ICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAg
ICAgYWxsb3dDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJM
LnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpIH0sIHsgdHlwZTogInB1YmxpYy1rZXkiLCBp
ZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpIH1dLAorICAgICAgICAg
ICAgICAgIGV4dGVuc2lvbnM6IHsgYXBwaWQ6ICIiIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
fTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3RhZ2U6
ICJyZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjogIm1hbGljaW91cy1wYXlsb2FkIiwg
aXNVMmY6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNw
b25zZUJhc2U2NCwgdGVzdFUyZkFwZHVXcm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNlNjQsIHRlc3RV
MmZBcGR1V3JvbmdEYXRhT25seVJlc3BvbnNlQmFzZTY0LCB0ZXN0VTJmQXBkdVdyb25nRGF0YU9u
bHlSZXNwb25zZUJhc2U2NF0gfSB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQs
ICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAi
Tm8gY3JlZGVudGlhbHMgZnJvbSB0aGUgYWxsb3dDcmVkZW50aWFscyBsaXN0IGlzIGZvdW5kIGlu
IHRoZSBhdXRoZW50aWNhdG9yLiIpOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tn
ZXRdXSB3aXRoIG5vIG1hdGNoZWQgYWxsb3cgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGhpZCBhdXRo
ZW50aWNhdG9yLiAyIChBcHBJRCkiKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMWY3MTQ4
MWVlNjNiOTVhOWM3ZTNmOTA4ZGU4OWI4MjNkMTQyY2Y0Zi4uZDBmYTYxZjg0MjMyZjIxMzAwMGNi
YmMzYjAxMzM2ZWVmYjE4NjYzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtZ2V0LWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsOCBAQAogCiBQQVNT
IFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdGltZW91dCAKIFBBU1MgUHVibGlj
S2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhIG1pc21hdGNoZWQgUlAgSUQgCitQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYSBtaXNtYXRjaGVkIEFQUCBJRCAoaW52
YWxpZCBVUkxzKSAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhIG1p
c21hdGNoZWQgQVBQIElEIChkaWZmZXJlbnQgcHJvdG9jb2xzKSAKK1BBU1MgUHVibGljS2V5Q3Jl
ZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhIG1pc21hdGNoZWQgQVBQIElEIChkaWZmZXJlbnQgc2l0
ZXMgMSkgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYSBtaXNtYXRj
aGVkIEFQUCBJRCAoZGlmZmVyZW50IHNpdGVzIDIpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1sCmluZGV4IGIwNWVjY2IyOGVlZmQzZTk1NzdhOTA4
ZTdlYzM2ZDQ2N2EzNmEyNzMuLmEyNDU2OTBhMjJkYWU0YzJjOTQ5NTAyMDUxYWFmNjg5MTM4ZTdk
Y2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS5odHRwcy5odG1s
CkBAIC0zMSw0ICszMSw1MiBAQAogICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlNl
Y3VyaXR5RXJyb3IiLAogICAgICAgICAgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRp
b25zKSwgIlRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCBhIHJlZ2lzdHJhYmxlIGRv
bWFpbiBzdWZmaXggb2YgdGhlIHByb3ZpZGVkIFJQIElELiIpOwogICAgIH0sICJQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGEgbWlzbWF0Y2hlZCBSUCBJRCIpOworCisgICAgcHJv
bWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAg
cHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJh
eSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeyBhcHBpZDogImFiYyIg
fQorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHJldHVybiBwcm9taXNlUmVq
ZWN0cyh0LCAiU2VjdXJpdHlFcnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuZ2V0KG9wdGlvbnMpLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IGF1dGhv
cml6ZWQgZm9yIHRoZSBwcm92aWRlZCBBcHAgSUQuIik7CisgICAgfSwgIlB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2dldF1dIHdpdGggYSBtaXNtYXRjaGVkIEFQUCBJRCAoaW52YWxpZCBVUkxzKSIp
OworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0gewor
ICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2Np
aVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeyBh
cHBpZDogImZ0cDovL2xvY2FsaG9zdCIgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworCisg
ICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiU2VjdXJpdHlFcnJvciIsCisgICAgICAg
ICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVGhlIG9yaWdpbiBvZiB0
aGUgZG9jdW1lbnQgaXMgbm90IGF1dGhvcml6ZWQgZm9yIHRoZSBwcm92aWRlZCBBcHAgSUQuIik7
CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYSBtaXNtYXRjaGVk
IEFQUCBJRCAoZGlmZmVyZW50IHByb3RvY29scykiKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogewor
ICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAor
ICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM6IHsgYXBwaWQ6ICJodHRwczovLzEyNy4wLjAuMSIg
fQorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHJldHVybiBwcm9taXNlUmVq
ZWN0cyh0LCAiU2VjdXJpdHlFcnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuZ2V0KG9wdGlvbnMpLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IGF1dGhv
cml6ZWQgZm9yIHRoZSBwcm92aWRlZCBBcHAgSUQuIik7CisgICAgfSwgIlB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2dldF1dIHdpdGggYSBtaXNtYXRjaGVkIEFQUCBJRCAoZGlmZmVyZW50IHNpdGVz
IDEpIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6
IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBleHRlbnNpb25z
OiB7IGFwcGlkOiAiaHR0cHM6Ly9oYWhhLmxvY2FsaG9zdCIgfQorICAgICAgICAgICAgfQorICAg
ICAgICB9OworCisgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiU2VjdXJpdHlFcnJv
ciIsCisgICAgICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVGhl
IG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IGF1dGhvcml6ZWQgZm9yIHRoZSBwcm92aWRl
ZCBBcHAgSUQuIik7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGgg
YSBtaXNtYXRjaGVkIEFQUCBJRCAoZGlmZmVyZW50IHNpdGVzIDIpIik7CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbApp
bmRleCA5YTRkNGNhMGM3NGY5ZDg2OTgxNWExODA1YzkwNzQyYjg0MTFlZDVmLi4yOTkxMGU5NjUy
MDNiMWVmMGFjNWE2MGYzNmU0ZjViMmZjNzEzMWY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLWdldC1zdWNjZXNzLWhpZC5odHRwcy5odG1sCkBAIC0xNiw2ICsxNiw3IEBACiAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobmV3IFVpbnQ4QXJyYXkoY3JlZGVudGlhbC5yYXdJ
ZCksIEJhc2U2NFVSTC5wYXJzZSh0ZXN0SGlkQ3JlZGVudGlhbElkQmFzZTY0KSk7CiAgICAgICAg
IGFzc2VydF9lcXVhbHMoYnl0ZXNUb0FTQ0lJU3RyaW5nKGNyZWRlbnRpYWwucmVzcG9uc2UuY2xp
ZW50RGF0YUpTT04pLCAneyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiTVRJek5E
VTIiLCJvcmlnaW4iOiJodHRwczovL2xvY2FsaG9zdDo5NDQzIn0nKTsKICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjcmVkZW50aWFsLnJlc3BvbnNlLnVzZXJIYW5kbGUsIG51bGwpOworICAgICAgICBh
c3NlcnRfbm90X2V4aXN0cyhjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSwg
ImFwcGlkIik7CiAKICAgICAgICAgLy8gQ2hlY2sgYXV0aERhdGEKICAgICAgICAgY29uc3QgYXV0
aERhdGEgPSBkZWNvZGVBdXRoRGF0YShuZXcgVWludDhBcnJheShjcmVkZW50aWFsLnJlc3BvbnNl
LmF1dGhlbnRpY2F0b3JEYXRhKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1n
ZXQtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sCmluZGV4IDdmMmRhYWY1NTNiMTY0ZWIwYmEwMmRm
NDY0OWEzNGZmMjkxMmY2ODEuLjczYWVjY2Y1YWM4OGRlZTM2YWRjY2E1ODEwNTU1MzIzYWNiOGIx
YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2Nh
bC5odHRwcy5odG1sCkBAIC0xOSw2ICsxOSw3IEBACiAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobmV3IFVpbnQ4QXJyYXkoY3JlZGVudGlhbC5yYXdJZCksIEJhc2U2NFVSTC5wYXJzZSh0ZXN0
Q3JlZGVudGlhbElkQmFzZTY0KSk7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0FTQ0lJ
U3RyaW5nKGNyZWRlbnRpYWwucmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLCAneyJ0eXBlIjoid2Vi
YXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiTVRJek5EVTIiLCJvcmlnaW4iOiJodHRwczovL2xvY2Fs
aG9zdDo5NDQzIn0nKTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvSGV4U3RyaW5nKGNy
ZWRlbnRpYWwucmVzcG9uc2UudXNlckhhbmRsZSksICIwMDAxMDIwMzA0MDUwNjA3MDgwOSIpOwor
ICAgICAgICBhc3NlcnRfbm90X2V4aXN0cyhjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJl
c3VsdHMoKSwgImFwcGlkIik7CiAKICAgICAgICAgLy8gQ2hlY2sgYXV0aERhdGEKICAgICAgICAg
Y29uc3QgYXV0aERhdGEgPSBkZWNvZGVBdXRoRGF0YShuZXcgVWludDhBcnJheShjcmVkZW50aWFs
LnJlc3BvbnNlLmF1dGhlbnRpY2F0b3JEYXRhKSk7CkBAIC0zMiw3ICszMyw3IEBACiAgICAgICAg
ICAgICAgICAgLy8gY3JlZGVudGlhbC5yZXNwb25zZS5zaWduYXR1cmUgaXMgaW4gQVNOLjEgYW5k
IFdlYkNyeXB0byBleHBlY3Qgc2lnbmF0dXJlcyBwcm92aWRlcyBpbiByfHMuCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudmVyaWZ5KHtuYW1lOiAiRUNEU0EiLCBoYXNoOiAi
U0hBLTI1NiJ9LCBwdWJsaWNLZXksIGV4dHJhY3RSYXdTaWduYXR1cmUoY3JlZGVudGlhbC5yZXNw
b25zZS5zaWduYXR1cmUpLCBjb25jYXRlbmF0ZUJ1ZmZlcnMoY3JlZGVudGlhbC5yZXNwb25zZS5h
dXRoZW50aWNhdG9yRGF0YSwgaGFzaCkpLnRoZW4oIHZlcmlmaWVkID0+IHsKICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X3RydWUodmVyaWZpZWQpOwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKCJOb3RTdXBwb3J0ZWRFcnJvciIsICgpID0+IHsgY3JlZGVudGlhbC5nZXRDbGll
bnRFeHRlbnNpb25SZXN1bHRzKCkgfSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9ub3Rf
ZXhpc3RzKGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpLCAiYXBwaWQiKTsK
ICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1nZXQtc3VjY2Vzcy11MmYuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLXUyZi5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggNGM0YTM5ZWFhMjhkNWE0NGNjNGFjMDY2OTc5MjQzOTY0YTliNDIz
Yy4uYWI4ZjA3MWViNTQ3NDEyODMzNjE3ZmQxMTlmMzVhNmRlNjZjMGIxNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1z
dWNjZXNzLXUyZi5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLXUyZi5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTIsNCArMiwxMCBAQAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tn
ZXRdXSB3aXRoIG1pbmltdW0gb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAog
UEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG1vcmUgYWxsb3cgY3JlZGVu
dGlhbHMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKIFBBU1MgUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbZ2V0XV0gd2l0aCB0ZXN0IG9mIHVzZXIgcHJlc2VuY2UgaW4gYSBtb2NrIGhpZCBh
dXRoZW50aWNhdG9yLiAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBl
bXB0eSBleHRlbnNpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCitQQVNTIFB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggc2FtZSBzaXRlIEFwcElEIGJ1dCBub3QgdXNl
ZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFs
J3MgW1tnZXRdXSB3aXRoIGVtcHR5IEFwcElEIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4g
CitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYW4gQXBwSUQgaW4gYSBt
b2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0
XV0gd2l0aCBtdWx0aXBsZSBjcmVkZW50aWFscyBhbmQgQXBwSUQgaXMgbm90IHVzZWQgaW4gYSBt
b2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0
XV0gd2l0aCBtdWx0aXBsZSBjcmVkZW50aWFscyBhbmQgQXBwSUQgaXMgdXNlZCBpbiBhIG1vY2sg
aGlkIGF1dGhlbnRpY2F0b3IuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtdTJmLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0
LXN1Y2Nlc3MtdTJmLmh0dHBzLmh0bWwKaW5kZXggNDc0M2IxNTQ2NzMxNGRlZDY3NDQ5ZDZiZWNl
MzBlYjE5ZjQ2MDY3Mi4uYTBhMGYwYjdmOGIwYTg4ZDAwMzk2MTBkOWY2YzRmMDY1OTZiM2Y4OSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWdldC1zdWNjZXNzLXUyZi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy11MmYuaHR0cHMu
aHRtbApAQCAtNCw3ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCkK
KyAgICBjb25zdCBkZWZhdWx0QXBwSURIYXNoID0gImMyNjcxYjZlYjkyMzMxOTdkNWYyYjEyODhh
NTViYTRmMDg2MGY5NmY3MTk5YmJhMzJmZTZkYTdjM2YwZjMxZTUiOworCisgICAgZnVuY3Rpb24g
Y2hlY2tSZXN1bHQoY3JlZGVudGlhbCwgaXNBcHBJRCA9IGZhbHNlLCBhcHBJREhhc2ggPSBkZWZh
dWx0QXBwSURIYXNoKQogICAgIHsKICAgICAgICAgLy8gQ2hlY2sgcmVzcG9uZAogICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKEJhc2U2NFVSTC5wYXJzZShjcmVkZW50aWFsLmlkKSwgQmFzZTY0
VVJMLnBhcnNlKHRlc3RVMmZDcmVkZW50aWFsSWRCYXNlNjQpKTsKQEAgLTEyLDEwICsxNCwxNyBA
QAogICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ldyBVaW50OEFycmF5KGNyZWRlbnRpYWwu
cmF3SWQpLCBCYXNlNjRVUkwucGFyc2UodGVzdFUyZkNyZWRlbnRpYWxJZEJhc2U2NCkpOwogICAg
ICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9BU0NJSVN0cmluZyhjcmVkZW50aWFsLnJlc3BvbnNl
LmNsaWVudERhdGFKU09OKSwgJ3sidHlwZSI6IndlYmF1dGhuLmdldCIsImNoYWxsZW5nZSI6Ik1U
SXpORFUyIiwib3JpZ2luIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyJ9Jyk7CiAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3JlZGVudGlhbC5yZXNwb25zZS51c2VySGFuZGxlLCBudWxsKTsKKyAgICAg
ICAgaWYgKCFpc0FwcElEKQorICAgICAgICAgICAgYXNzZXJ0X25vdF9leGlzdHMoY3JlZGVudGlh
bC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCksICJhcHBpZCIpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3Vs
dHMoKS5hcHBpZCk7CiAKICAgICAgICAgLy8gQ2hlY2sgYXV0aERhdGEKICAgICAgICAgY29uc3Qg
YXV0aERhdGEgPSBkZWNvZGVBdXRoRGF0YShuZXcgVWludDhBcnJheShjcmVkZW50aWFsLnJlc3Bv
bnNlLmF1dGhlbnRpY2F0b3JEYXRhKSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0hl
eFN0cmluZyhhdXRoRGF0YS5ycElkSGFzaCksICI0OTk2MGRlNTg4MGU4YzY4NzQzNDE3MGY2NDc2
NjA1YjhmZTRhZWI5YTI4NjMyYzc5OTVjZjNiYTgzMWQ5NzYzIik7CisgICAgICAgIGlmICghaXNB
cHBJRCkKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0hleFN0cmluZyhhdXRoRGF0
YS5ycElkSGFzaCksICI0OTk2MGRlNTg4MGU4YzY4NzQzNDE3MGY2NDc2NjA1YjhmZTRhZWI5YTI4
NjMyYzc5OTVjZjNiYTgzMWQ5NzYzIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoYnl0ZXNUb0hleFN0cmluZyhhdXRoRGF0YS5ycElkSGFzaCksIGFwcElESGFzaCk7
CiAgICAgICAgIGFzc2VydF9lcXVhbHMoYXV0aERhdGEuZmxhZ3MsIDEpOwogICAgICAgICBhc3Nl
cnRfZXF1YWxzKGF1dGhEYXRhLmNvdW50ZXIsIDU5KTsKICAgICB9CkBAIC02Nyw0ICs3NiwxMDkg
QEAKICAgICAgICAgICAgIHJldHVybiBjaGVja1Jlc3VsdChjcmVkZW50aWFsKTsKICAgICAgICAg
fSk7CiAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdGVzdCBvZiB1
c2VyIHByZXNlbmNlIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKKworICAgIC8vIFdp
dGggQXBwSUQgZXh0ZW5zaW9uCisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25z
dCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAg
Y2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAgICAg
YWxsb3dDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBh
cnNlKHRlc3RVMmZDcmVkZW50aWFsSWRCYXNlNjQpIH1dLAorICAgICAgICAgICAgICAgIHRpbWVv
dXQ6IDEwMCwKKyAgICAgICAgICAgICAgICBleHRlbnNpb25zOiB7IH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgfTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBoaWQ6
IHsgc3RhZ2U6ICJyZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjogInN1Y2Nlc3MiLCBp
c1UyZjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RVMmZTaWduUmVzcG9uc2VdIH0gfSk7Cisg
ICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3Jl
ZGVudGlhbCA9PiB7CisgICAgICAgICAgICByZXR1cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7
CisgICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRo
IGVtcHR5IGV4dGVuc2lvbnMgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiIpOworCisgICAg
cHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAg
ICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFy
c2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogW3sgdHlw
ZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVMmZDcmVkZW50aWFsSWRC
YXNlNjQpIH1dLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwMCwKKyAgICAgICAgICAgICAg
ICBleHRlbnNpb25zOiB7IGFwcGlkOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6NjY2L2FwcGlkIiB9Cisg
ICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1
cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0YWdlOiAibXNnIiwgZXJyb3I6
ICJzdWNjZXNzIiwgaXNVMmY6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0VTJmU2lnblJlc3Bv
bnNlXSB9IH0pOworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRp
b25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAgICAgcmV0dXJuIGNoZWNrUmVzdWx0
KGNyZWRlbnRpYWwpOworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdz
IFtbZ2V0XV0gd2l0aCBzYW1lIHNpdGUgQXBwSUQgYnV0IG5vdCB1c2VkIGluIGEgbW9jayBoaWQg
YXV0aGVudGljYXRvci4iKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29u
c3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAg
IGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAg
IGFsbG93Q3JlZGVudGlhbHM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5w
YXJzZSh0ZXN0VTJmQ3JlZGVudGlhbElkQmFzZTY0KSB9XSwKKyAgICAgICAgICAgICAgICB0aW1l
b3V0OiAxMDAsCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeyBhcHBpZDogIiIgfQorICAg
ICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJh
dGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAi
c3VjY2VzcyIsIGlzVTJmOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdFUyZkFwZHVXcm9uZ0Rh
dGFPbmx5UmVzcG9uc2VCYXNlNjQsIHRlc3RVMmZTaWduUmVzcG9uc2VdIH0gfSk7CisgICAgICAg
IHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlh
bCA9PiB7CisgICAgICAgICAgICByZXR1cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCwgdHJ1ZSk7
CisgICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRo
IGVtcHR5IEFwcElEIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKKworICAgIC8vIEZJ
WE1FOiBTdWIgZG9tYWlucyBuZWVkIHRvIGJlIHRlc3RlZCBhcyB3ZWxsLiBIb3dldmVyLCBsb2Nh
bGhvc3QgaGFzIG5vIHN1YiBkb21haW5zLgorICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAg
ICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAg
ICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAg
ICAgICAgIGFsbG93Q3JlZGVudGlhbHM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2
NFVSTC5wYXJzZSh0ZXN0VTJmQ3JlZGVudGlhbElkQmFzZTY0KSB9XSwKKyAgICAgICAgICAgICAg
ICB0aW1lb3V0OiAxMDAsCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeyBhcHBpZDogImh0
dHBzOi8vbG9jYWxob3N0OjY2Ni9hcHBpZCIgfQorICAgICAgICAgICAgfQorICAgICAgICB9Owor
CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJl
cXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAic3VjY2VzcyIsIGlzVTJmOiB0cnVlLCBw
YXlsb2FkQmFzZTY0OiBbdGVzdFUyZkFwZHVXcm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNlNjQsIHRl
c3RVMmZTaWduUmVzcG9uc2VdIH0gfSk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgICAgICByZXR1
cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCwgdHJ1ZSwgIjdlYWJjNWNjMzI1MWJkYzU5MTE1ZWY4
N2I1ZjdlZTc0Y2IwMzc0N2UzOWJhODM0MTc0ODU2NWNjMTI5YzA3MTkiKTsKKyAgICAgICAgfSk7
CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYW4gQXBwSUQgaW4g
YSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiIpOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4gewor
ICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAg
ICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAg
ICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBpZDog
QmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpIH0sIHsgdHlwZTogInB1Ymxp
Yy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVMmZDcmVkZW50aWFsSWRCYXNlNjQpIH1d
LAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwMCwKKyAgICAgICAgICAgICAgICBleHRlbnNp
b25zOiB7IGFwcGlkOiAiIiB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRo
ZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1
YlN0YWdlOiAibXNnIiwgZXJyb3I6ICJzdWNjZXNzIiwgaXNVMmY6IHRydWUsIHBheWxvYWRCYXNl
NjQ6IFt0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNwb25zZUJhc2U2NCwgdGVzdFUyZkFwZHVX
cm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNlNjQsIHRlc3RVMmZTaWduUmVzcG9uc2VdIH0gfSk7Cisg
ICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3Jl
ZGVudGlhbCA9PiB7CisgICAgICAgICAgICByZXR1cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7
CisgICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRo
IG11bHRpcGxlIGNyZWRlbnRpYWxzIGFuZCBBcHBJRCBpcyBub3QgdXNlZCBpbiBhIG1vY2sgaGlk
IGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNv
bnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAg
ICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAgICAgICAg
ICBhbGxvd0NyZWRlbnRpYWxzOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwu
cGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCkgfSwgeyB0eXBlOiAicHVibGljLWtleSIsIGlk
OiBCYXNlNjRVUkwucGFyc2UodGVzdFUyZkNyZWRlbnRpYWxJZEJhc2U2NCkgfV0sCisgICAgICAg
ICAgICAgICAgdGltZW91dDogMTAwLAorICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM6IHsgYXBw
aWQ6ICIiIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9u
TW9ja0NvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3RhZ2U6ICJyZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJt
c2ciLCBlcnJvcjogInN1Y2Nlc3MiLCBpc1UyZjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RV
MmZBcGR1V3JvbmdEYXRhT25seVJlc3BvbnNlQmFzZTY0LCB0ZXN0VTJmQXBkdVdyb25nRGF0YU9u
bHlSZXNwb25zZUJhc2U2NCwgdGVzdFUyZkFwZHVXcm9uZ0RhdGFPbmx5UmVzcG9uc2VCYXNlNjQs
IHRlc3RVMmZTaWduUmVzcG9uc2VdIH0gfSk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgICAgICBy
ZXR1cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCwgdHJ1ZSk7CisgICAgICAgIH0pOworICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG11bHRpcGxlIGNyZWRlbnRpYWxz
IGFuZCBBcHBJRCBpcyB1c2VkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKKwogPC9z
Y3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>