<?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>191516</bug_id>
          
          <creation_ts>2018-11-11 17:04:07 -0800</creation_ts>
          <short_desc>[WebAuthn] Support CTAP Client Pin</short_desc>
          <delta_ts>2020-02-16 22:56:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>alex.gaynor</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>james</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>kostas</cc>
    
    <cc>loginllama</cc>
    
    <cc>t0rr3sp3dr0</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1477427</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-11-11 17:04:07 -0800</bug_when>
    <thetext>We should consider support CTAP client pin command:https://fidoalliance.org/specs/fido-v2.0-ps-20170927/fido-client-to-authenticator-protocol-v2.0-ps-20170927.html#authenticatorClientPIN</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583119</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-23 15:54:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/56558558&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598382</commentid>
    <comment_count>2</comment_count>
    <who name="login Llama">loginllama</who>
    <bug_when>2019-12-13 09:50:23 -0800</bug_when>
    <thetext>Yes for keys with PIN set you cant create new credentials without the user inputting the PIN in CTAP2.   The workaround that Firefox and Chrome use when UV is set to discouraged is to make the credential using U2F on keys that support both CTAP1 and CTAP2.  For a CTAP2 only key or if you are making a resident credential there is no way to do it without PIN support.

I will note that currently CTAP2.1 will allow the creation of non resident credentials via CTAP2, but there are millions of authenticators in the market currently that will only support CTAP2.0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603061</commentid>
    <comment_count>3</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-06 08:48:06 -0800</bug_when>
    <thetext>*** Bug 205222 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603136</commentid>
    <comment_count>4</comment_count>
    <who name="login Llama">loginllama</who>
    <bug_when>2020-01-06 10:49:11 -0800</bug_when>
    <thetext>My first choice is supporting client pin. 
Second choice is using the U2F make credential workaround that Google used in Chrome.

On the other hand bug 204111 is the highest priority as it is breaking all CTAP 2 authenticators without builtin UV.  That is about 98%.  Until that gets fixed we cant really test this.

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603376</commentid>
    <comment_count>5</comment_count>
      <attachid>386914</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-06 16:51:21 -0800</bug_when>
    <thetext>Created attachment 386914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603626</commentid>
    <comment_count>6</comment_count>
      <attachid>386984</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-07 10:12:25 -0800</bug_when>
    <thetext>Created attachment 386984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603684</commentid>
    <comment_count>7</comment_count>
      <attachid>387005</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-07 11:25:57 -0800</bug_when>
    <thetext>Created attachment 387005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603773</commentid>
    <comment_count>8</comment_count>
      <attachid>387028</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-07 14:05:32 -0800</bug_when>
    <thetext>Created attachment 387028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605340</commentid>
    <comment_count>9</comment_count>
      <attachid>387028</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-01-10 15:23:07 -0800</bug_when>
    <thetext>Comment on attachment 387028
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605353</commentid>
    <comment_count>10</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-10 15:38:42 -0800</bug_when>
    <thetext>Thanks Brent for r+ this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605407</commentid>
    <comment_count>11</comment_count>
      <attachid>387399</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-10 17:02:30 -0800</bug_when>
    <thetext>Created attachment 387399
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605459</commentid>
    <comment_count>12</comment_count>
      <attachid>387399</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-10 18:47:49 -0800</bug_when>
    <thetext>Comment on attachment 387399
Patch for landing

Rejecting attachment 387399 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 387399, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=387399&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=191516&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Updating working directory
Processing patch 387399 from bug 191516.
Fetching: https://bugs.webkit.org/attachment.cgi?id=387399
Authentication required
Authentication required
Authentication required
Updating OpenSource
From https://git.webkit.org/git/WebKit
   8cd2c8b4c7e..e4cf8500860  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 254386 = 8cd2c8b4c7e20fe5b4f3240a3e719722a80784d9
r254387 = e4cf8500860fe817dd55f3a86a67f2a8ab032ead
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: https://webkit-queues.webkit.org/results/13302981</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605940</commentid>
    <comment_count>13</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-13 10:54:09 -0800</bug_when>
    <thetext>Committed r254439: &lt;https://trac.webkit.org/changeset/254439&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606156</commentid>
    <comment_count>14</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-01-13 17:26:26 -0800</bug_when>
    <thetext>Reopening for build fix.

Commit queue cancelled my patch because of the following

In file included from /Volumes/Data/EWS/WebKit/WebKitBuild/Release/DerivedSources/WebKit2/unified-sources/UnifiedSource55.cpp:1:
In file included from /Volumes/Data/EWS/WebKit/Source/WebKit/UIProcess/WebAuthentication/fido/FidoService.cpp:31:
/Volumes/Data/EWS/WebKit/Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.h:66:70: error: unknown type name &apos;CryptoKeyEC&apos;; did you mean &apos;WebCore::CryptoKeyEC&apos;?
    void continueGetPinTokenAfterRequestPin(const String&amp; pin, const CryptoKeyEC&amp;);
                                                                     ^~~~~~~~~~~
                                                                     WebCore::CryptoKeyEC
/Volumes/Data/EWS/WebKit/Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.h:40:7: note: &apos;WebCore::CryptoKeyEC&apos; declared here
class CryptoKeyEC;
      ^
1 error generated.

From https://webkit-queues.webkit.org/results/13303609 which came from https://bugs.webkit.org/show_bug.cgi?id=205964</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606157</commentid>
    <comment_count>15</comment_count>
      <attachid>387598</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-01-13 17:30:37 -0800</bug_when>
    <thetext>Created attachment 387598
Build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606172</commentid>
    <comment_count>16</comment_count>
      <attachid>387598</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-01-13 17:51:27 -0800</bug_when>
    <thetext>Comment on attachment 387598
Build fix

Affected builds seem happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606256</commentid>
    <comment_count>17</comment_count>
      <attachid>387598</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-13 22:42:02 -0800</bug_when>
    <thetext>Comment on attachment 387598
Build fix

Clearing flags on attachment: 387598

Committed r254495: &lt;https://trac.webkit.org/changeset/254495&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606481</commentid>
    <comment_count>18</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-14 11:06:39 -0800</bug_when>
    <thetext>(In reply to Don Olmstead from comment #16)
&gt; Comment on attachment 387598 [details]
&gt; Build fix
&gt; 
&gt; Affected builds seem happy

Thanks for fixing the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606526</commentid>
    <comment_count>19</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-01-14 12:23:52 -0800</bug_when>
    <thetext>(In reply to Jiewen Tan from comment #18)
&gt; (In reply to Don Olmstead from comment #16)
&gt; &gt; Comment on attachment 387598 [details]
&gt; &gt; Build fix
&gt; &gt; 
&gt; &gt; Affected builds seem happy
&gt; 
&gt; Thanks for fixing the issue.

👍</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619587</commentid>
    <comment_count>20</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-02-16 22:56:52 -0800</bug_when>
    <thetext>*** Bug 207821 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386914</attachid>
            <date>2020-01-06 16:51:21 -0800</date>
            <delta_ts>2020-01-07 10:12:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191516-20200106165120.patch</filename>
            <type>text/plain</type>
            <size>79888</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY4YWIxMDU1YWZlOTBl
NTY5OTU5NGU0YmVjYmI1ZDcyNzdjNzZmNC4uYjc5OGZmMmIwYTNmZGJjMjE0YjNhNjI3ODJkZTU5
MjdmYzZjODE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTAxLTA2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBTdXBw
b3J0IENUQVAgQ2xpZW50IFBpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkxNTE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjU1ODU1OD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5
IEFQSSB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1
ZXN0Q29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OmVuY29kZU1ha2VDcmVkZW5pdGFsUmVx
dWVzdEFzQ0JPUik6CisgICAgICAgIChmaWRvOjplbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXND
Qk9SKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcDoKKyAgICAgICAg
KGZpZG86OnBpbjo6UmV0cmllc1Jlc3BvbnNlOjpwYXJzZSk6CisgICAgICAgIChmaWRvOjpwaW46
OlRva2VuUmVzcG9uc2U6OnBhcnNlKToKKyAgICAgICAgKGZpZG86OnBpbjo6VG9rZW5SZXF1ZXN0
Ojp0cnlDcmVhdGUpOgorICAgICAgICAoZmlkbzo6cGluOjplbmNvZGVBc0NCT1IpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmg6CisgICAgICAgICogY3J5cHRvL21hYy9Dcnlw
dG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyYW5zZm9ybUFF
U19DQkMpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZv
cm1FbmNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBs
YXRmb3JtRGVjcnlwdCk6CisgICAgICAgICogdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25D
b25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpNb2NrV2ViQXV0aGVudGljYXRpb25D
b25maWd1cmF0aW9uOjpIaWRDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6SGlkQ29uZmlndXJh
dGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNv
bmZpZ3VyYXRpb24uaWRsOgorCiAyMDIwLTAxLTA2ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBJc3N1ZSBtYWNoIGxvb2t1cCBleHRlbnNpb24g
dG8gbGF1bmNoIHNlcnZpY2VzIGRhZW1vbiBmb3IgTWFpbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5OWMzNzI3MDFm
YzMzMzA0MzQ0MTlhNmRhNWIzNjZiMTg3YTdmN2U3Li4wYmJlMzg5YWQ4M2RkYWQwNWU0MDYzNjY3
ZmNlMjAxMTdjMmNkMTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTAxLTA2ICBK
aWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBT
dXBwb3J0IENUQVAgQ2xpZW50IFBpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkxNTE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjU1ODU1OD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGltcGxlbWVudHMgYXV0aGVudGljYXRvckNsaWVudFBJTiBmcm9tIHRoZSBzcGVjOgorICAg
ICAgICBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTkwMTMw
L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE5MDEzMC5o
dG1sI2F1dGhlbnRpY2F0b3JDbGllbnRQSU4KKyAgICAgICAgU3BlY2lmaWNhbGx5LCBpdCBpbXBs
ZW1lbnRzIHNlY3Rpb24gNS41LjEsIDUuNS4zLCA1LjUuNCwgNS41LjcsIGFuZCA1LjUuOC4KKwor
ICAgICAgICBIZXJlIGlzIHRoZSBmbG93IGhvdyBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb24g
d29ya3Mgd2l0aCBhIFBJTiBpbiBvdXIgaW1wbGVtZW50YXRpb246CisgICAgICAgIDEuIERldGVy
bWluZSBpZiB0aGUgY29ubmVjdGVkIGF1dGhlbnRpY2F0b3IgaGFzIGEgUElOOworICAgICAgICAy
LiBJZiB5ZXMsIHNlbmQgdGhlIG1ha2VDcmVkZW50aWFsL2dldEFzc2VydGlvbiByZXF1ZXN0IHRv
IHRoZSBhdXRoZW50aWNhdG9yIHdpdGggYW4gZW1wdHkgcGluQXV0aAorICAgICAgICBzdWNoIHRo
YXQgdGhlIGF1dGhlbnRpY2F0b3Igd2lsbCB3aW5rIGZvciB1c2VyIGdlc3R1cmVzLiBUaGlzIHN0
ZXAgaW50ZW5kcyB0byBjb25maXJtIHRoZSBhdXRoZW50aWNhdG9yCisgICAgICAgIGlzIHRoZSBv
bmUgdGhlIHVzZXIgd2FudHMgdG8gdXNlLiBPdGhlcndpc2UsIHdlIGRvbid0IGtub3cgd2hpY2gg
YXV0aGVudGljYXRvciB0byBzZW5kIHRoZSBQSU4KKyAgICAgICAgaWYgbXVsdGlwbGUgYXJlIGNv
bm5lY3RlZDsKKyAgICAgICAgMy4gT25jZSB0aGUgdXNlciBjb25maXJtcyB0aGUgYXV0aGV0bmlj
YXRvciwgaXQgd2lsbCByZXR1cm4gZWl0aGVyIENUQVAyX0VSUl9QSU5fSU5WQUxJRCBvcgorICAg
ICAgICBDVEFQMl9FUlJfUElOX0FVVEhfSU5WQUxJRC4gU29tZSBhdXRoZW50aWNhdG9ycyByZXR1
cm4gQ1RBUDJfRVJSX1BJTl9BVVRIX0lOVkFMSUQgZXZlbiB0aG91Z2gKKyAgICAgICAgaXQgaXMg
bm90IHN1Z2dlc3RlZCBieSB0aGUgc3BlYzsKKyAgICAgICAgNC4gR2V0IHJldHJpZXMgZnJvbSB0
aGUgYXV0aGVudGljYXRvcjsKKyAgICAgICAgNS4gR2V0IGtleSBhZ3JlZW1lbnQgZnJvbSB0aGUg
YXV0aGVudGljYXRvcjsKKyAgICAgICAgNi4gQXNrIHRoZSBVSSBjbGllbnQgZm9yIHRoZSBQSU4g
YW5kIGF0IHRoZSBtZWFudGltZSBpbmZvcm0gaXQgdGhlIHJldHJpZXM7CisgICAgICAgIDcuIEdl
dCBwaW4gdG9rZW4gZnJvbSB0aGUgYXV0aGVudGljYXRvcjsKKyAgICAgICAgOC4gUmVzZW5kIHRo
ZSBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb24gcmVxdWVzdCB3aXRoIHRoZSBkZXNpcmVkIHBp
bkF1dGguCisKKyAgICAgICAgQmVzaWRlcyBpbXBsZW1lbnRhdGluZyB0aGUgYWJvdmUgZmxvdywg
dGhpcyBwYXRjaCBhbHNvIGZpeGVzIHNvbWUgYnVncyB3aXRoaW4gdGhlIFBJTiBjb21tYW5kcyBl
bmNvZGVyOgorICAgICAgICAxLiBwaW5BdXRoL3BpblByb3RvY29sIGFyZSB3cm9uZ2x5IGVuY29k
ZWQgZm9yIG1ha2VDcmVkZW50aWFsL2dldEFzc2VydGlvbjsKKyAgICAgICAgMi4gQUVTIENCQyBz
aG91bGQgYmUgY2FsbGVkIHdpdGhvdXQgYW55IHBhZGRpbmcuIFRoZXJlZm9yZSwgQ3J5cHRvQWxn
b3JpdGhtQUVTX0NCQyBhZGRzIGEgbm8gcGFkZGluZyBtb2RlOworICAgICAgICAzLiBUaGUgc2hh
cmVkU2VjcmV0IGlzIHRoZSBTSEEyNTYgZGlnZXN0IG9mIHRoZSBFQ0RIIGtleSBhZ3JlZW1lbnQg
aW5zdGVhZCBvZiB0aGUgcmF3IGtleSBhZ3JlZW1lbnQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6V2Vi
QXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6cmVxdWVzdFBpbiBjb25zdCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yTWFuYWdlcjo6cmVxdWVzdFBpbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWxDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Q29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OnJlcXVl
c3RQaW4gY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2Nr
L01vY2tIaWRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TW9ja0hpZENvbm5lY3Rp
b246OmZlZWRSZXBvcnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Zmlkby9DdGFwQXV0aGVudGljYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50
aWNhdG9yOjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNh
dG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKToKKyAgICAg
ICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmdldEFzc2VydGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9u
c2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpnZXRSZXRy
aWVzKToKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0S2V5
QWdyZWVtZW50QWZ0ZXJHZXRSZXRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRp
Y2F0b3I6OmNvbnRpbnVlUmVxdWVzdFBpbkFmdGVyR2V0S2V5QWdyZWVtZW50KToKKyAgICAgICAg
KFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0UGluVG9rZW5BZnRlclJlcXVl
c3RQaW4pOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVSZXF1
ZXN0QWZ0ZXJHZXRQaW5Ub2tlbik6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9y
Ojpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJSZXNwb25zZVJlY2VpdmVkIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0
aGVudGljYXRvci5oOgorCiAyMDIwLTAxLTA2ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBJc3N1ZSBtYWNoIGxvb2t1cCBleHRlbnNpb24gdG8g
bGF1bmNoIHNlcnZpY2VzIGRhZW1vbiBmb3IgTWFpbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIu
Y3BwCmluZGV4IGI5NmRhYmI1OTg2OWM0MjViZGJiYTQ3ZTkzZjVkMzAwOThhYTlkODkuLjE1NWU1
ZDFlZTJlM2Y4NWQ3NDQ5MjBlNGFhMzhiOWU4ZDlhNzI2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENv
bnZlcnRlci5jcHAKQEAgLTEyNiw4ICsxMjYsOCBAQCBWZWN0b3I8dWludDhfdD4gZW5jb2RlTWFr
ZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgYwog
CiAgICAgaWYgKHBpbikgewogICAgICAgICBBU1NFUlQocGluLT5wcm90b2NvbCA+PSAwKTsKLSAg
ICAgICAgY2Jvck1hcFtDQk9SVmFsdWUoOCldID0gQ0JPUlZhbHVlKHBpbi0+cHJvdG9jb2wpOwot
ICAgICAgICBjYm9yTWFwW0NCT1JWYWx1ZSg5KV0gPSBDQk9SVmFsdWUoV1RGTW92ZShwaW4tPmF1
dGgpKTsKKyAgICAgICAgY2Jvck1hcFtDQk9SVmFsdWUoOCldID0gQ0JPUlZhbHVlKFdURk1vdmUo
cGluLT5hdXRoKSk7CisgICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDkpXSA9IENCT1JWYWx1ZShw
aW4tPnByb3RvY29sKTsKICAgICB9CiAKICAgICBhdXRvIHNlcmlhbGl6ZWRQYXJhbSA9IENCT1JX
cml0ZXI6OndyaXRlKENCT1JWYWx1ZShXVEZNb3ZlKGNib3JNYXApKSk7CkBAIC0xNzIsOCArMTcy
LDggQEAgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb24KIAogICAgIGlmIChwaW4pIHsKICAgICAgICAg
QVNTRVJUKHBpbi0+cHJvdG9jb2wgPj0gMCk7Ci0gICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDgp
XSA9IENCT1JWYWx1ZShwaW4tPnByb3RvY29sKTsKLSAgICAgICAgY2Jvck1hcFtDQk9SVmFsdWUo
OSldID0gQ0JPUlZhbHVlKFdURk1vdmUocGluLT5hdXRoKSk7CisgICAgICAgIGNib3JNYXBbQ0JP
UlZhbHVlKDYpXSA9IENCT1JWYWx1ZShXVEZNb3ZlKHBpbi0+YXV0aCkpOworICAgICAgICBjYm9y
TWFwW0NCT1JWYWx1ZSg3KV0gPSBDQk9SVmFsdWUocGluLT5wcm90b2NvbCk7CiAgICAgfQogCiAg
ICAgYXV0byBzZXJpYWxpemVkUGFyYW0gPSBDQk9SV3JpdGVyOjp3cml0ZShDQk9SVmFsdWUoV1RG
TW92ZShjYm9yTWFwKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1Bpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
UGluLmNwcAppbmRleCA3ZjBjNjU5ZDg0ZDFiZDI3ZDJhNTZiODRiZWU5MThlZjU4MzI2YTM4Li5l
MTlhMWQzYzNiMDVkMDk5OTcwY2E4OGNlNzIzYmQ5NjkyYjUyY2EwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIE9w
dGlvbmFsPFJldHJpZXNSZXNwb25zZT4gUmV0cmllc1Jlc3BvbnNlOjpwYXJzZShjb25zdCBWZWN0
b3I8dWludDhfdD4mIGluQnVmZmVyCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAg
ICBSZXRyaWVzUmVzcG9uc2UgcmV0OwotICAgIHJldC5yZXRyaWVzID0gc3RhdGljX2Nhc3Q8aW50
NjRfdD4oaXQtPnNlY29uZC5nZXRVbnNpZ25lZCgpKTsKKyAgICByZXQucmV0cmllcyA9IHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihpdC0+c2Vjb25kLmdldFVuc2lnbmVkKCkpOwogICAgIHJldHVybiBy
ZXQ7CiB9CiAKQEAgLTIyNyw3ICsyMjcsNyBAQCBPcHRpb25hbDxUb2tlblJlc3BvbnNlPiBUb2tl
blJlc3BvbnNlOjpwYXJzZShjb25zdCBXZWJDb3JlOjpDcnlwdG9LZXlBRVMmIHNoYXJlZAogICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIGNvbnN0IGF1dG8mIGVuY3J5cHRlZFRva2Vu
ID0gaXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7CiAKLSAgICBhdXRvIHRva2VuUmVzdWx0ID0g
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1EZWNyeXB0KHsgfSwgc2hhcmVkS2V5LCBl
bmNyeXB0ZWRUb2tlbik7CisgICAgYXV0byB0b2tlblJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUFF
U19DQkM6OnBsYXRmb3JtRGVjcnlwdCh7IH0sIHNoYXJlZEtleSwgZW5jcnlwdGVkVG9rZW4sIENy
eXB0b0FsZ29yaXRobUFFU19DQkM6OlBhZGRpbmc6Ok5vKTsKICAgICBpZiAodG9rZW5SZXN1bHQu
aGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgYXV0byB0
b2tlbiA9IHRva2VuUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwpAQCAtMjY3LDExICsyNjcs
MTYgQEAgT3B0aW9uYWw8VG9rZW5SZXF1ZXN0PiBUb2tlblJlcXVlc3Q6OnRyeUNyZWF0ZShjb25z
dCBDU3RyaW5nJiBwaW4sIGNvbnN0IENyeXB0b0sKICAgICBBU1NFUlQoIWtleVBhaXJSZXN1bHQu
aGFzRXhjZXB0aW9uKCkpOwogICAgIGF1dG8ga2V5UGFpciA9IGtleVBhaXJSZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCk7CiAKLSAgICAvLyAyLiBVc2UgRUNESCB0byBjb21wdXRlIHRoZSBzaGFy
ZWQgQUVTLUNCQyBrZXkuCisgICAgLy8gMi4gVXNlIEVDREggYW5kIFNIQS0yNTYgdG8gY29tcHV0
ZSB0aGUgc2hhcmVkIEFFUy1DQkMga2V5LgogICAgIGF1dG8gc2hhcmVkS2V5UmVzdWx0ID0gQ3J5
cHRvQWxnb3JpdGhtRUNESDo6cGxhdGZvcm1EZXJpdmVCaXRzKGRvd25jYXN0PENyeXB0b0tleUVD
Pigqa2V5UGFpci5wcml2YXRlS2V5KSwgcGVlcktleSk7CiAgICAgaWYgKCFzaGFyZWRLZXlSZXN1
bHQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgYXV0byBzaGFyZWRLZXkgPSBD
cnlwdG9LZXlBRVM6OmltcG9ydFJhdyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JD
LCBXVEZNb3ZlKCpzaGFyZWRLZXlSZXN1bHQpLCB0cnVlLCBDcnlwdG9LZXlVc2FnZUVuY3J5cHQg
fCBDcnlwdG9LZXlVc2FnZURlY3J5cHQpOworCisgICAgYXV0byBjcnlwdG8gPSBQQUw6OkNyeXB0
b0RpZ2VzdDo6Y3JlYXRlKFBBTDo6Q3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yNTYpOwor
ICAgIGNyeXB0by0+YWRkQnl0ZXMoc2hhcmVkS2V5UmVzdWx0LT5kYXRhKCksIHNoYXJlZEtleVJl
c3VsdC0+c2l6ZSgpKTsKKyAgICBhdXRvIHNoYXJlZEtleUhhc2ggPSBjcnlwdG8tPmNvbXB1dGVI
YXNoKCk7CisKKyAgICBhdXRvIHNoYXJlZEtleSA9IENyeXB0b0tleUFFUzo6aW1wb3J0UmF3KENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMsIFdURk1vdmUoc2hhcmVkS2V5SGFzaCks
IHRydWUsIENyeXB0b0tleVVzYWdlRW5jcnlwdCB8IENyeXB0b0tleVVzYWdlRGVjcnlwdCk7CiAg
ICAgQVNTRVJUKHNoYXJlZEtleSk7CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGVuY29kZXMgdGhl
IHB1YmxpYyBrZXkgb2YgdGhlIGFib3ZlIGtleSBwYWlyIGludG8gQ09TRSBmb3JtYXQuCkBAIC0y
ODAsNyArMjg1LDcgQEAgT3B0aW9uYWw8VG9rZW5SZXF1ZXN0PiBUb2tlblJlcXVlc3Q6OnRyeUNy
ZWF0ZShjb25zdCBDU3RyaW5nJiBwaW4sIGNvbnN0IENyeXB0b0sKICAgICBhdXRvIGNvc2VLZXkg
PSBlbmNvZGVDT1NFUHVibGljS2V5KHJhd1B1YmxpY0tleVJlc3VsdC5yZXR1cm5WYWx1ZSgpKTsK
IAogICAgIC8vIFRoZSBmb2xsb3dpbmcgY2FsY3VsYXRlcyBhIFNIQS0yNTYgZGlnZXN0IG9mIHRo
ZSBQSU4sIGFuZCBzaHJpbmsgdG8gdGhlIGxlZnQgMTYgYnl0ZXMuCi0gICAgYXV0byBjcnlwdG8g
PSBQQUw6OkNyeXB0b0RpZ2VzdDo6Y3JlYXRlKFBBTDo6Q3J5cHRvRGlnZXN0OjpBbGdvcml0aG06
OlNIQV8yNTYpOworICAgIGNyeXB0byA9IFBBTDo6Q3J5cHRvRGlnZXN0OjpjcmVhdGUoUEFMOjpD
cnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzI1Nik7CiAgICAgY3J5cHRvLT5hZGRCeXRlcyhw
aW4uZGF0YSgpLCBwaW4ubGVuZ3RoKCkpOwogICAgIGF1dG8gcGluSGFzaCA9IGNyeXB0by0+Y29t
cHV0ZUhhc2goKTsKICAgICBwaW5IYXNoLnNocmluaygxNik7CkBAIC0zMDIsNyArMzA3LDcgQEAg
Y29uc3QgQ3J5cHRvS2V5QUVTJiBUb2tlblJlcXVlc3Q6OnNoYXJlZEtleSgpIGNvbnN0CiAKIFZl
Y3Rvcjx1aW50OF90PiBlbmNvZGVBc0NCT1IoY29uc3QgVG9rZW5SZXF1ZXN0JiByZXF1ZXN0KQog
ewotICAgIGF1dG8gcmVzdWx0ID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1FbmNy
eXB0KHsgfSwgcmVxdWVzdC5zaGFyZWRLZXkoKSwgcmVxdWVzdC5tX3Bpbkhhc2gpOworICAgIGF1
dG8gcmVzdWx0ID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1FbmNyeXB0KHsgfSwg
cmVxdWVzdC5zaGFyZWRLZXkoKSwgcmVxdWVzdC5tX3Bpbkhhc2gsIENyeXB0b0FsZ29yaXRobUFF
U19DQkM6OlBhZGRpbmc6Ok5vKTsKICAgICBBU1NFUlQoIXJlc3VsdC5oYXNFeGNlcHRpb24oKSk7
CiAKICAgICByZXR1cm4gZW5jb2RlUGluQ29tbWFuZChTdWJjb21tYW5kOjprR2V0UGluVG9rZW4s
IFtjb3NlS2V5ID0gV1RGTW92ZShyZXF1ZXN0Lm1fY29zZUtleSksIGVuY3J5cHRlZFBpbiA9IHJl
c3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKV0gKENCT1JWYWx1ZTo6TWFwVmFsdWUqIG1hcCkgbXV0
YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
UGluLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmgKaW5kZXgg
MzU3NDNhMDAzMDdkY2ZiZDllNDg4ZDk1ZDBiZTBiMjc0ODBlNTk2Yi4uZjViMWVjYTJmNTRhYjI3
MmY1ZjRkMWY1N2NkYzU4NDcxMjUwYjM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL1Bpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vZmlkby9QaW4uaApAQCAtNzksNyArNzksNyBAQCBlbnVtIGNsYXNzIFJlc3BvbnNlS2V5
IDogdWludDhfdCB7CiAKIC8vIGtQcm90b2NvbFZlcnNpb24gaXMgdGhlIHZlcnNpb24gb2YgdGhl
IFBJTiBwcm90b2NvbCB0aGF0IHRoaXMgY29kZQogLy8gaW1wbGVtZW50cy4KLWNvbnN0ZXhwciBp
bnQga1Byb3RvY29sVmVyc2lvbiA9IDE7Citjb25zdGV4cHIgaW50NjRfdCBrUHJvdG9jb2xWZXJz
aW9uID0gMTsKIAogLy8gZW5jb2RlQ09TRVB1YmxpY0tleSB0YWtlcyBhIHJhdyBFQ0RIMjU2IHB1
YmxpYyBrZXkgYW5kIHJldHVybnMgaXQgYXMgYSBDT1NFIHN0cnVjdHVyZS4KIFdFQkNPUkVfRVhQ
T1JUIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUgZW5jb2RlQ09TRVB1YmxpY0tleShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGtleSk7CkBAIC0xMTAsNyArMTEwLDcgQEAgc3RydWN0IFJldHJpZXNS
ZXNwb25zZSB7CiAKICAgICAvLyByZXRyaWVzIGlzIHRoZSBudW1iZXIgb2YgUElOIGF0dGVtcHRz
IHJlbWFpbmluZyBiZWZvcmUgdGhlIGF1dGhlbnRpY2F0b3IKICAgICAvLyBsb2Nrcy4KLSAgICBp
bnQgcmV0cmllczsKKyAgICB1aW50NjRfdCByZXRyaWVzOwogCiBwcml2YXRlOgogICAgIFJldHJp
ZXNSZXNwb25zZSgpOwpAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIHNoYXJl
ZEtleSByZXR1cm5zIHRoZSBzaGFyZWQgRUNESCBrZXkgdGhhdCB3YXMgdXNlZCB0byBlbmNyeXB0
IHRoZSBQSU4uCiAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gZGVjcnlwdCB0aGUgcmVzcG9uc2Uu
Ci0gICAgY29uc3QgV2ViQ29yZTo6Q3J5cHRvS2V5QUVTJiBzaGFyZWRLZXkoKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBjb25zdCBXZWJDb3JlOjpDcnlwdG9LZXlBRVMmIHNoYXJlZEtleSgp
IGNvbnN0OwogCiAgICAgZnJpZW5kIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVBc0NCT1IoY29uc3Qg
VG9rZW5SZXF1ZXN0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaAppbmRleCBmZDk4OTEyYjcwZGMwYjUx
ZDFiOTg3OTA2NjRkNzJiNDZlMzQyOGZlLi4yNzMyOTg1Yjc3ZmVkZmMzOTY3NGQ0NzQ5ZDg5NTUw
YTBhMTcxYzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCkBAIC0zNiwxMyArMzYsMTggQEAgY2xhc3Mg
Q3J5cHRvS2V5QUVTOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDIGZpbmFsIDogcHVi
bGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6CisgICAgZW51bSBjbGFzcyBQYWRkaW5nIDog
dWludDhfdCB7CisgICAgICAgIFllcywKKyAgICAgICAgTm8KKyAgICB9OworCiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUNCQyI7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OkFFU19DQkM7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0
aG0+IGNyZWF0ZSgpOwogCiAgICAgLy8gT3BlcmF0aW9ucyBjYW4gYmUgcGVyZm9ybWVkIGRpcmVj
dGx5LgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhf
dD4+IHBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJhbXMm
LCBjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBwbGF0Zm9ybURl
Y3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFyYW1zJiwgY29uc3QgQ3J5cHRv
S2V5QUVTJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gcGxhdGZvcm1FbmNyeXB0KGNvbnN0IENy
eXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYsIGNvbnN0IENyeXB0b0tleUFFUyYsIGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYsIFBhZGRpbmcgcGFkZGluZyA9IFBhZGRpbmc6Olllcyk7CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gcGxhdGZv
cm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYsIGNvbnN0IENy
eXB0b0tleUFFUyYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIFBhZGRpbmcgcGFkZGluZyA9IFBh
ZGRpbmc6Olllcyk7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQygpID0g
ZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0NCQ01hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0Fs
Z29yaXRobUFFU19DQkNNYWMuY3BwCmluZGV4IDUxN2NmYzg5Yjk3MzcxNDljNDgwN2I4NWFkMWYy
MGRmYTBhYWMxZGIuLmM1N2YxMDc5OWQxMTBhYjBiNGZjMWU5MmIxNzE0NDYzY2ZiOWQzNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NC
Q01hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1B
RVNfQ0JDTWFjLmNwcApAQCAtMzQsMTAgKzM0LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gdHJhbnNmb3JtQUVTX0NCQyhD
Q09wZXJhdGlvbiBvcGVyYXRpb24sIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaXYsIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEpCitzdGF0aWMg
RXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiB0cmFuc2Zvcm1BRVNfQ0JDKENDT3BlcmF0aW9u
IG9wZXJhdGlvbiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSwgQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQzo6UGFkZGluZyBwYWRkaW5nKQogeworICAgIENDT3B0aW9ucyBvcHRpb25zID0gcGFkZGlu
ZyA9PSBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpQYWRkaW5nOjpZZXMgPyBrQ0NPcHRpb25QS0NT
N1BhZGRpbmcgOiAwOwogICAgIENDQ3J5cHRvclJlZiBjcnlwdG9yOwotICAgIENDQ3J5cHRvclN0
YXR1cyBzdGF0dXMgPSBDQ0NyeXB0b3JDcmVhdGUob3BlcmF0aW9uLCBrQ0NBbGdvcml0aG1BRVMs
IGtDQ09wdGlvblBLQ1M3UGFkZGluZywga2V5LmRhdGEoKSwga2V5LnNpemUoKSwgaXYuZGF0YSgp
LCAmY3J5cHRvcik7CisgICAgQ0NDcnlwdG9yU3RhdHVzIHN0YXR1cyA9IENDQ3J5cHRvckNyZWF0
ZShvcGVyYXRpb24sIGtDQ0FsZ29yaXRobUFFUywgb3B0aW9ucywga2V5LmRhdGEoKSwga2V5LnNp
emUoKSwgaXYuZGF0YSgpLCAmY3J5cHRvcik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CiAKQEAgLTQ5LDEwICs1MCwxMiBAQCBz
dGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiB0cmFuc2Zvcm1BRVNfQ0JDKENDT3Bl
cmF0aW9uIG9wZXJhdGlvbiwgY29ucwogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0
aW9uRXJyb3IgfTsKIAogICAgIHVpbnQ4X3QqIHAgPSByZXN1bHQuZGF0YSgpICsgYnl0ZXNXcml0
dGVuOwotICAgIHN0YXR1cyA9IENDQ3J5cHRvckZpbmFsKGNyeXB0b3IsIHAsIHJlc3VsdC5lbmQo
KSAtIHAsICZieXRlc1dyaXR0ZW4pOwotICAgIHAgKz0gYnl0ZXNXcml0dGVuOwotICAgIGlmIChz
dGF0dXMpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OworICAg
IGlmIChwYWRkaW5nID09IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OlBhZGRpbmc6Olllcykgewor
ICAgICAgICBzdGF0dXMgPSBDQ0NyeXB0b3JGaW5hbChjcnlwdG9yLCBwLCByZXN1bHQuZW5kKCkg
LSBwLCAmYnl0ZXNXcml0dGVuKTsKKyAgICAgICAgcCArPSBieXRlc1dyaXR0ZW47CisgICAgICAg
IGlmIChzdGF0dXMpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJy
b3IgfTsKKyAgICB9CiAKICAgICBBU1NFUlQocCA8PSByZXN1bHQuZW5kKCkpOwogICAgIHJlc3Vs
dC5zaHJpbmsocCAtIHJlc3VsdC5iZWdpbigpKTsKQEAgLTYyLDE2ICs2NSwxOCBAQCBzdGF0aWMg
RXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiB0cmFuc2Zvcm1BRVNfQ0JDKENDT3BlcmF0aW9u
IG9wZXJhdGlvbiwgY29ucwogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKLUV4Y2Vw
dGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1F
bmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYgcGFyYW1ldGVycywg
Y29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcGxhaW5UZXh0
KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpw
bGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFyYW1zJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBw
bGFpblRleHQsIFBhZGRpbmcgcGFkZGluZykKIHsKICAgICBBU1NFUlQocGFyYW1ldGVycy5pdlZl
Y3RvcigpLnNpemUoKSA9PSBrQ0NCbG9ja1NpemVBRVMxMjggfHwgcGFyYW1ldGVycy5pdlZlY3Rv
cigpLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIHRyYW5zZm9ybUFFU19DQkMoa0NDRW5jcnlwdCwg
cGFyYW1ldGVycy5pdlZlY3RvcigpLCBrZXkua2V5KCksIHBsYWluVGV4dCk7CisgICAgQVNTRVJU
KHBhZGRpbmcgPT0gUGFkZGluZzo6WWVzIHx8ICEocGxhaW5UZXh0LnNpemUoKSAlIGtDQ0Jsb2Nr
U2l6ZUFFUzEyOCkpOworICAgIHJldHVybiB0cmFuc2Zvcm1BRVNfQ0JDKGtDQ0VuY3J5cHQsIHBh
cmFtZXRlcnMuaXZWZWN0b3IoKSwga2V5LmtleSgpLCBwbGFpblRleHQsIHBhZGRpbmcpOwogfQog
Ci1FeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBs
YXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJhbXMmIHBhcmFt
ZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGNp
cGhlclRleHQpCitFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRobUFF
U19DQkM6OnBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJh
bXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGNpcGhlclRleHQsIFBhZGRpbmcgcGFkZGluZykKIHsKICAgICBBU1NFUlQocGFyYW1l
dGVycy5pdlZlY3RvcigpLnNpemUoKSA9PSBrQ0NCbG9ja1NpemVBRVMxMjggfHwgcGFyYW1ldGVy
cy5pdlZlY3RvcigpLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIHRyYW5zZm9ybUFFU19DQkMoa0ND
RGVjcnlwdCwgcGFyYW1ldGVycy5pdlZlY3RvcigpLCBrZXkua2V5KCksIGNpcGhlclRleHQpOwor
ICAgIEFTU0VSVChwYWRkaW5nID09IFBhZGRpbmc6OlllcyB8fCAhKGNpcGhlclRleHQuc2l6ZSgp
ICUga0NDQmxvY2tTaXplQUVTMTI4KSk7CisgICAgcmV0dXJuIHRyYW5zZm9ybUFFU19DQkMoa0ND
RGVjcnlwdCwgcGFyYW1ldGVycy5pdlZlY3RvcigpLCBrZXkua2V5KCksIGNpcGhlclRleHQsIHBh
ZGRpbmcpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5o
CmluZGV4IDMyOGJiOWQ0ZWFhZmM3NWQ4M2M3MWE3YzcyNzRkMTY1MDM2N2QyMGIuLjYyOTU1OGY3
ZmJkZjAxMmYxZTY0MTNmNzllNTQ3NzVhM2NlZDI1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5o
CkBAIC04NCw2ICs4NCw3IEBAIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0
aW9uIHsKICAgICAgICAgYm9vbCBjb250aW51ZUFmdGVyRXJyb3JEYXRhIHsgZmFsc2UgfTsKICAg
ICAgICAgYm9vbCBjYW5Eb3duZ3JhZGUgeyBmYWxzZSB9OwogICAgICAgICBib29sIGV4cGVjdENh
bmNlbCB7IGZhbHNlIH07CisgICAgICAgIGJvb2wgc3VwcG9ydENsaWVudFBpbiB7IGZhbHNlIH07
CiAKICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OwogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
SGlkQ29uZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImKTsKQEAgLTE2MSw3ICsxNjIsNyBAQCBP
cHRpb25hbDxNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpMb2NhbENvbmZpZ3Vy
YXRpb24+IE1vY2tXZWJBdXRoZW50aQogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgTW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6SGlkQ29uZmlndXJhdGlvbjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBwYXlsb2FkQmFzZTY0
IDw8IHN0YWdlIDw8IHN1YlN0YWdlIDw8IGVycm9yIDw8IGlzVTJmIDw8IGtlZXBBbGl2ZSA8PCBm
YXN0RGF0YUFycml2YWwgPDwgY29udGludWVBZnRlckVycm9yRGF0YSA8PCBjYW5Eb3duZ3JhZGUg
PDwgZXhwZWN0Q2FuY2VsOworICAgIGVuY29kZXIgPDwgcGF5bG9hZEJhc2U2NCA8PCBzdGFnZSA8
PCBzdWJTdGFnZSA8PCBlcnJvciA8PCBpc1UyZiA8PCBrZWVwQWxpdmUgPDwgZmFzdERhdGFBcnJp
dmFsIDw8IGNvbnRpbnVlQWZ0ZXJFcnJvckRhdGEgPDwgY2FuRG93bmdyYWRlIDw8IGV4cGVjdENh
bmNlbCA8PCBzdXBwb3J0Q2xpZW50UGluOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpA
QCAtMTg4LDYgKzE4OSw4IEBAIE9wdGlvbmFsPE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3Vy
YXRpb246OkhpZENvbmZpZ3VyYXRpb24+IE1vY2tXZWJBdXRoZW50aWNhCiAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZXhwZWN0Q2Fu
Y2VsKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5zdXBwb3J0Q2xpZW50UGluKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRsIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbAppbmRl
eCA3ODUzODUxNDc2ZmNjZDYyMjg0YzM2YmYyNzk0MmE4YjE3YzVkZTEwLi5hZDEzOTM0OWFkMmZj
MTVjYWQ4M2Y2YjJkMTZiMDgzODYwM2RlZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5pZGwK
QEAgLTkyLDYgKzkyLDcgQEAKICAgICBib29sZWFuIGNvbnRpbnVlQWZ0ZXJFcnJvckRhdGEgPSBm
YWxzZTsKICAgICBib29sZWFuIGNhbkRvd25ncmFkZSA9IGZhbHNlOwogICAgIGJvb2xlYW4gZXhw
ZWN0Q2FuY2VsID0gZmFsc2U7CisgICAgYm9vbGVhbiBzdXBwb3J0Q2xpZW50UGluID0gZmFsc2U7
CiB9OwogCiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vi
QXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAppbmRleCA1NTViNTYxOWZkODI1Y2Rj
NWJiYzA0NTBiNzg5ODM3NjYyZWQyOTQ0Li43ZWM2MjQzNTk1ZTg0Y2UzNDE1NDQ3NzRlZTU3Y2Zk
MGY2NDkxY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vi
QXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDkgQEAK
IAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwogbmFtZXNwYWNlIFdlYktp
dCB7CiBlbnVtIGNsYXNzIFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzIDogYm9vbDsKIGVudW0gY2xh
c3MgV2ViQXV0aGVudGljYXRpb25SZXN1bHQgOiBib29sOwpAQCAtNDEsNiArNDQsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUGFuZWwoV2ViS2l0OjpXZWJBdXRoZW50aWNh
dGlvblN0YXR1cykgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NQYW5lbChXZWJL
aXQ6OldlYkF1dGhlbnRpY2F0aW9uUmVzdWx0KSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFBpbih1aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXVEY6OlN0
cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdCB7IGNvbXBsZXRpb25IYW5kbGVyKGVt
cHR5U3RyaW5nKCkpOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3Iu
aAppbmRleCAwZDI0NzEzYmY3M2JjMDllMTczMGEyOTIxNjQ5Y2NjODhlYjE3OWIzLi4wNDY2NmMz
NzA1YjU5MDNkMDkxYzQyNjU0MWY2MmVjOTk5ZjM2M2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oCkBA
IC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRSZWNl
aXZlZChSZXNwb25kJiYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRvd25ncmFkZShBdXRo
ZW50aWNhdG9yKiBpZCwgUmVmPEF1dGhlbnRpY2F0b3I+JiYgZG93bmdyYWRlZEF1dGhlbnRpY2F0
b3IpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVk
KFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0UGluKHVpbnQ2NF90IHJldHJpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV1RG
OjpTdHJpbmcmKT4mJikgPSAwOwogICAgIH07CiAKICAgICB2aXJ0dWFsIH5BdXRoZW50aWNhdG9y
KCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4IDZm
YWVkZTU0NzY0NGFiN2Q4Zjk2ZTg5MGQ4MzhhMWJiMTNiYzA4OWMuLjc0NmNhMDYxNWY1NDEwMTQ3
YmRiYTVhNGVjNTAyZDE4OGU2MjliNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdl
ci5jcHAKQEAgLTI3Myw2ICsyNzMsMTIgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6YXV0
aGVudGljYXRvclN0YXR1c1VwZGF0ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXMgc3QKICAgICAg
ICAgcGFuZWwtPmNsaWVudCgpLnVwZGF0ZVBhbmVsKHN0YXR1cyk7CiB9CiAKK3ZvaWQgQXV0aGVu
dGljYXRvck1hbmFnZXI6OnJlcXVlc3RQaW4odWludDY0X3QgcmV0cmllcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBXVEY6OlN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGlmIChhdXRvKiBwYW5lbCA9IG1fcGVuZGluZ1JlcXVlc3REYXRhLnBhbmVsLmdldCgpKQor
ICAgICAgICBwYW5lbC0+Y2xpZW50KCkucmVxdWVzdFBpbihyZXRyaWVzLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisKIFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2Vy
dmljZT4gQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZVNlcnZpY2UoQXV0aGVudGljYXRvclRy
YW5zcG9ydCB0cmFuc3BvcnQsIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpPYnNlcnZl
ciYgb2JzZXJ2ZXIpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRT
ZXJ2aWNlOjpjcmVhdGUodHJhbnNwb3J0LCBvYnNlcnZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
ck1hbmFnZXIuaAppbmRleCBkYzZjNDQ0MzkxMDAxMDAyM2JiMTU1Mjk4MDllOWVlYTY3MGVmYjBl
Li4yYTUwODMzZmRiOWRiNjNkYzk4YzM5M2QwOWQxYzkzMDIwZGYyZmEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmgKQEAgLTgxLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJlc3BvbmRSZWNlaXZlZChSZXNwb25kJiYpIGZpbmFsOwogICAgIHZvaWQgZG93bmdyYWRlKEF1
dGhlbnRpY2F0b3IqIGlkLCBSZWY8QXV0aGVudGljYXRvcj4mJiBkb3duZ3JhZGVkQXV0aGVudGlj
YXRvcikgZmluYWw7CiAgICAgdm9pZCBhdXRoZW50aWNhdG9yU3RhdHVzVXBkYXRlZChXZWJBdXRo
ZW50aWNhdGlvblN0YXR1cykgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0UGluKHVpbnQ2NF90IHJl
dHJpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV1RGOjpTdHJpbmcmKT4mJikgZmlu
YWw7CiAKICAgICAvLyBPdmVycmlkZW4gYnkgTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLgogICAg
IHZpcnR1YWwgVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlPiBjcmVhdGVT
ZXJ2aWNlKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQsIEF1dGhlbnRpY2F0b3JUcmFu
c3BvcnRTZXJ2aWNlOjpPYnNlcnZlciYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5l
bENsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCmluZGV4IDNiMGM4OTE2ZGMwOTIxMDc1
ODRkZDcwYmEwMTAyNDkwNTc0NzRjYzYuLjE0OTk0NjZhMWNlY2E4ZTlmZDkwZjljZjYxNDI1NjU5
MDJhODhmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlv
blBhbmVsQ2xpZW50LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICAvLyBBUEk6Oldl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQKICAgICB2b2lkIHVwZGF0ZVBhbmVsKFdlYkF1dGhl
bnRpY2F0aW9uU3RhdHVzKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGRpc21pc3NQYW5lbChXZWJB
dXRoZW50aWNhdGlvblJlc3VsdCkgY29uc3QgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0UGluKHVp
bnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdURjo6U3RyaW5nJik+JiYpIGNv
bnN0IGZpbmFsOwogCiAgICAgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqbV9wYW5lbDsKICAg
ICBXZWFrT2JqQ1B0cjxpZCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiA+IG1f
ZGVsZWdhdGU7CkBAIC01Niw2ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RydWN0IHsKICAgICAg
ICAgYm9vbCBwYW5lbFVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwgOiAxOwogICAgICAgICBi
b29sIHBhbmVsRGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0IDogMTsKKyAg
ICAgICAgYm9vbCBwYW5lbFJlcXVlc3RQaW5XaXRoUmVtYWluaW5nUmV0cmllc0NvbXBsZXRpb25I
YW5kbGVyIDogMTsKICAgICB9IG1fZGVsZWdhdGVNZXRob2RzOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVu
dGljYXRpb25QYW5lbENsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW0KaW5kZXggMzVl
ZjY1YmVlZjYxYmJlNWVhNTEzOWU4MzMwY2E3Mzk4NWZlNDEyYy4uN2YxNTdiZDk4NDY5Y2Q2Njkx
ZmUxMDBmM2UzNWE0MTk3MzhmNWU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9X
ZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lm1tCkBAIC0yOCw4ICsyOCwxMCBAQAogCiAjaWYg
RU5BQkxFKFdFQl9BVVRITikKIAorI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tl
ci5oIgogI2ltcG9ydCAiV2ViQXV0aGVudGljYXRpb25GbGFncy5oIgogI2ltcG9ydCAiX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5oIgorI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0
IDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQwLDYgKzQyLDcgQEAg
V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVu
dChfV0tXZWJBdXRoZW50aWNhdGlvblAKIHsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5wYW5lbFVw
ZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihwYW5lbDp1cGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsOildOwogICAgIG1f
ZGVsZWdhdGVNZXRob2RzLnBhbmVsRGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVz
dWx0ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocGFuZWw6ZGlzbWlz
c1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0OildOworICAgIG1fZGVsZWdhdGVNZXRo
b2RzLnBhbmVsUmVxdWVzdFBpbldpdGhSZW1haW5pbmdSZXRyaWVzQ29tcGxldGlvbkhhbmRsZXIg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihwYW5lbDpyZXF1ZXN0UElO
V2l0aFJlbWFpbmluZ1JldHJpZXM6Y29tcGxldGlvbkhhbmRsZXI6KV07CiB9CiAKIFJldGFpblB0
cjxpZCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiA+IFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxDbGllbnQ6OmRlbGVnYXRlKCkKQEAgLTEwNyw2ICsxMTAsMzcgQEAgdm9pZCBXZWJB
dXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OjpkaXNtaXNzUGFuZWwoV2ViQXV0aGVudGljYXRpb25S
ZXN1bHQgcmVzdWx0KQogICAgIH0pOwogfQogCit2b2lkIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxD
bGllbnQ6OnJlcXVlc3RQaW4odWludDY0X3QgcmV0cmllcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBXVEY6OlN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAoreworICAg
IC8vIENhbGwgZGVsZWdhdGVzIGluIHRoZSBuZXh0IHJ1biBsb29wIHRvIHByZXZlbnQgY2xpZW50
cycgcmVlbnRyYW5jZSB0aGF0IHdvdWxkIHBvdGVudGlhbGx5IG1vZGlmeSB0aGUgc3RhdGUKKyAg
ICAvLyBvZiB0aGUgY3VycmVudCBydW4gbG9vcCBpbiB1bmV4cGVjdGVkIHdheXMuCisgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhp
cywgcmV0cmllcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGVtcHR5U3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKCFtX2RlbGVnYXRlTWV0aG9kcy5wYW5lbFJlcXVlc3RQaW5X
aXRoUmVtYWluaW5nUmV0cmllc0NvbXBsZXRpb25IYW5kbGVyKSB7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihlbXB0eVN0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGF1dG8gZGVsZWdhdGUgPSBtX2RlbGVnYXRlLmdldCgpOworICAgICAg
ICBpZiAoIWRlbGVnYXRlKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihlbXB0eVN0
cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8g
Y2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5n
ZXQoKSwgQHNlbGVjdG9yKHBhbmVsOnJlcXVlc3RQSU5XaXRoUmVtYWluaW5nUmV0cmllczpjb21w
bGV0aW9uSGFuZGxlcjopKTsKKyAgICAgICAgW2RlbGVnYXRlIHBhbmVsOm1fcGFuZWwgcmVxdWVz
dFBJTldpdGhSZW1haW5pbmdSZXRyaWVzOnJldHJpZXMgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJs
b2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBj
aGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0oTlNTdHJpbmcgKnBpbikgbXV0YWJsZSB7CisgICAg
ICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBs
ZXRpb25IYW5kbGVyKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihwaW4pOworICAg
ICAgICB9KS5nZXQoKV07CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrSGlkQ29ubmVj
dGlvbi5jcHAKaW5kZXggOWU1ZDhmYTcwNjY4MGRmNmUxNGY5NjNmMjNiZTllODg1ZTc0NGY1NS4u
Zjk5YzcwNGJkOTcwYjRiMzcwN2Y3OTlmODk0YzE1NzU3Y2RjNzAyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrSGlkQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
TW9jay9Nb2NrSGlkQ29ubmVjdGlvbi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0NCT1JSZWFkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpZG9Db25zdGFudHMuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1Bpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXV0aGVudGljYXRpb25D
b25zdGFudHMuaD4KICNpbmNsdWRlIDx3dGYvQmxvY2tQdHIuaD4KICNpbmNsdWRlIDx3dGYvQ3J5
cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaD4KQEAgLTIyMywxMCArMjI0LDE4IEBAIHZvaWQg
TW9ja0hpZENvbm5lY3Rpb246OmZlZWRSZXBvcnRzKCkKIAogICAgIE9wdGlvbmFsPEZpZG9IaWRN
ZXNzYWdlPiBtZXNzYWdlOwogICAgIGlmIChtX3N0YWdlID09IE1vY2s6OkhpZFN0YWdlOjpJbmZv
ICYmIG1fc3ViU3RhZ2UgPT0gTW9jazo6SGlkU3ViU3RhZ2U6Ok1zZykgeworICAgICAgICAvLyBG
SVhNRSgyMDU4MzkpOgogICAgICAgICBWZWN0b3I8dWludDhfdD4gaW5mb0RhdGE7CiAgICAgICAg
IGlmIChtX2NvbmZpZ3VyYXRpb24uaGlkLT5jYW5Eb3duZ3JhZGUpCiAgICAgICAgICAgICBpbmZv
RGF0YSA9IGVuY29kZUFzQ0JPUihBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKHsgUHJvdG9j
b2xWZXJzaW9uOjprQ3RhcCwgUHJvdG9jb2xWZXJzaW9uOjprVTJmIH0sIFZlY3Rvcjx1aW50OF90
PihhYWd1aWRMZW5ndGgsIDB1KSkpOwotICAgICAgICBlbHNlCisgICAgICAgIGVsc2UgaWYgKG1f
Y29uZmlndXJhdGlvbi5oaWQtPnN1cHBvcnRDbGllbnRQaW4pIHsKKyAgICAgICAgICAgIEF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UgaW5mb1Jlc3BvbnNlKHsgUHJvdG9jb2xWZXJzaW9uOjpr
Q3RhcCB9LCBWZWN0b3I8dWludDhfdD4oYWFndWlkTGVuZ3RoLCAwdSkpOworICAgICAgICAgICAg
aW5mb1Jlc3BvbnNlLnNldFBpblByb3RvY29scyh7IHBpbjo6a1Byb3RvY29sVmVyc2lvbiB9KTsK
KyAgICAgICAgICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIG9wdGlvbnM7CisgICAg
ICAgICAgICBvcHRpb25zLnNldENsaWVudFBpbkF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kUGluU2V0
KTsKKyAgICAgICAgICAgIGluZm9SZXNwb25zZS5zZXRPcHRpb25zKFdURk1vdmUob3B0aW9ucykp
OworICAgICAgICAgICAgaW5mb0RhdGEgPSBlbmNvZGVBc0NCT1IoaW5mb1Jlc3BvbnNlKTsKKyAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICBpbmZvRGF0YSA9IGVuY29kZUFzQ0JPUihBdXRoZW50
aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKHsgUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCB9LCBWZWN0b3I8
dWludDhfdD4oYWFndWlkTGVuZ3RoLCAwdSkpKTsKICAgICAgICAgaW5mb0RhdGEuaW5zZXJ0KDAs
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtTdWNjZXNzKSk7
IC8vIFByZXBlbmQgc3RhdHVzIGNvZGUuCiAgICAgICAgIGlmIChzdGFnZXNNYXRjaCgpICYmIG1f
Y29uZmlndXJhdGlvbi5oaWQtPmVycm9yID09IE1vY2s6OkhpZEVycm9yOjpXcm9uZ0NoYW5uZWxJ
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKaW5kZXggOWU0MWViNzFh
ZGM1ODQ0ZWZlZGU0MGM2N2RmZTIzM2ZkODZhYzVhMS4uNWU0MDc2NGFjZTQwNDg1MTY2ZWViOTU5
YTc4YzVjYjllZTk4ZjgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5j
cHAKQEAgLTMxLDkgKzMxLDEzIEBACiAjaW5jbHVkZSAiQ3RhcERyaXZlci5oIgogI2luY2x1ZGUg
IkN0YXBIaWREcml2ZXIuaCIKICNpbmNsdWRlICJVMmZBdXRoZW50aWNhdG9yLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9DcnlwdG9LZXlBRVMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NyeXB0b0tleUVD
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DcnlwdG9LZXlITUFDLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EZXZpY2VSZXNw
b25zZUNvbnZlcnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uRGF0YS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUGluLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VMmZDb21tYW5kQ29uc3Ry
dWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgpAQCAtNTMsNyArNTcsMTEgQEAgdm9pZCBDdGFwQXV0
aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwoKQogICAgIEFTU0VSVCghbV9pc0Rvd25ncmFkZWQp
OwogICAgIGlmIChwcm9jZXNzR29vZ2xlTGVnYWN5QXBwSWRTdXBwb3J0RXh0ZW5zaW9uKCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICBhdXRvIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJl
cXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpLCBtX2luZm8ub3B0aW9u
cygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+
IGNib3JDbWQ7CisgICAgaWYgKG1faW5mby5vcHRpb25zKCkuY2xpZW50UGluQXZhaWxhYmlsaXR5
KCkgPT0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0
eTo6a1N1cHBvcnRlZEFuZFBpblNldCkKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZU1ha2VDcmVk
ZW5pdGFsUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIFdURjo6Z2V0PFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucyksIG1faW5m
by5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpLCBQaW5QYXJhbWV0ZXJz
IHsgcGluOjprUHJvdG9jb2xWZXJzaW9uLCBtX3BpbkF1dGggfSk7CisgICAgZWxzZQorICAgICAg
ICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRh
KCkuaGFzaCwgV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4ocmVx
dWVzdERhdGEoKS5vcHRpb25zKSwgbV9pbmZvLm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZh
aWxhYmlsaXR5KCkpOwogICAgIGRyaXZlcigpLnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgewog
ICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlz
KQpAQCAtNjIsMTMgKzcwLDE2IEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50
aWFsKCkKICAgICB9KTsKIH0KIAotdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtl
Q3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWludDhfdD4mJiBkYXRhKSBj
b25zdAordm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVy
UmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWludDhfdD4mJiBkYXRhKQogewogICAgIGF1dG8gcmVz
cG9uc2UgPSByZWFkQ1RBUE1ha2VDcmVkZW50aWFsUmVzcG9uc2UoZGF0YSwgV1RGOjpnZXQ8UHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKS5h
dHRlc3RhdGlvbik7CiAgICAgaWYgKCFyZXNwb25zZSkgewogICAgICAgICBhdXRvIGVycm9yID0g
Z2V0UmVzcG9uc2VDb2RlKGRhdGEpOwogICAgICAgICBpZiAoZXJyb3IgPT0gQ3RhcERldmljZVJl
c3BvbnNlQ29kZTo6a0N0YXAyRXJyQ3JlZGVudGlhbEV4Y2x1ZGVkKQogICAgICAgICAgICAgcmVj
ZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiQXQgbGVhc3Qg
b25lIGNyZWRlbnRpYWwgbWF0Y2hlcyBhbiBlbnRyeSBvZiB0aGUgZXhjbHVkZUNyZWRlbnRpYWxz
IGxpc3QgaW4gdGhlIGF1dGhlbnRpY2F0b3IuIl9zIH0pOworICAgICAgICAvLyBGSVhNRSgyMDU4
MzcpCisgICAgICAgIGVsc2UgaWYgKGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMkVyclBpbkludmFsaWQgfHwgZXJyb3IgPT0gQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyUGluQXV0aEludmFsaWQpCisgICAgICAgICAgICBnZXRSZXRyaWVzKCk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBVbmtub3du
RXJyb3IsIG1ha2VTdHJpbmcoIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVycm9yIGNvZGU6ICIs
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGVycm9yKSkgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTc5
LDcgKzkwLDExIEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRp
YWxBZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4CiB2b2lkIEN0YXBBdXRoZW50aWNh
dG9yOjpnZXRBc3NlcnRpb24oKQogewogICAgIEFTU0VSVCghbV9pc0Rvd25ncmFkZWQpOwotICAg
IGF1dG8gY2JvckNtZCA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IocmVxdWVzdERh
dGEoKS5oYXNoLCBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+KHJl
cXVlc3REYXRhKCkub3B0aW9ucyksIG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eSgpKTsKKyAgICBWZWN0b3I8dWludDhfdD4gY2JvckNtZDsKKyAgICBpZiAobV9p
bmZvLm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSA9PSBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kUGluU2V0
KQorICAgICAgICBjYm9yQ21kID0gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihyZXF1
ZXN0RGF0YSgpLmhhc2gsIFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKSwgbV9pbmZvLm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5KCksIFBpblBhcmFtZXRlcnMgeyBwaW46OmtQcm90b2NvbFZlcnNpb24s
IG1fcGluQXV0aCB9KTsKKyAgICBlbHNlCisgICAgICAgIGNib3JDbWQgPSBlbmNvZGVHZXRBc3Nl
cnRpb25SZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgV1RGOjpnZXQ8UHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpLCBtX2luZm8u
b3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSk7CiAgICAgZHJpdmVyKCku
dHJhbnNhY3QoV1RGTW92ZShjYm9yQ21kKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
XShWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCkBAIC05Myw2ICsxMDgsMTEgQEAgdm9pZCBD
dGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclJlc3BvbnNlUmVjZWl2
ZWQoVmVjdG9yPHVpbnQ4X3QKICAgICBhdXRvIHJlc3BvbnNlID0gcmVhZENUQVBHZXRBc3NlcnRp
b25SZXNwb25zZShkYXRhKTsKICAgICBpZiAoIXJlc3BvbnNlKSB7CiAgICAgICAgIGF1dG8gZXJy
b3IgPSBnZXRSZXNwb25zZUNvZGUoZGF0YSk7CisgICAgICAgIC8vIEZJWE1FKDIwNTgzNykKKyAg
ICAgICAgaWYgKGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbklu
dmFsaWQgfHwgZXJyb3IgPT0gQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluQXV0
aEludmFsaWQpIHsKKyAgICAgICAgICAgIGdldFJldHJpZXMoKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQogICAgICAgICBpZiAoZXJyb3IgIT0gQ3RhcERldmljZVJlc3BvbnNlQ29k
ZTo6a0N0YXAyRXJySW52YWxpZENCT1IgJiYgdHJ5RG93bmdyYWRlKCkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIGlmIChlcnJvciA9PSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3Rh
cDJFcnJOb0NyZWRlbnRpYWxzICYmIG9ic2VydmVyKCkpCkBAIC0xMDMsNiArMTIzLDkzIEBAIHZv
aWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJl
Y2VpdmVkKFZlY3Rvcjx1aW50OF90CiAgICAgcmVjZWl2ZVJlc3BvbmQocmVzcG9uc2UucmVsZWFz
ZU5vbk51bGwoKSk7CiB9CiAKK3ZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmdldFJldHJpZXMoKQor
eworICAgIGF1dG8gY2JvckNtZCA9IGVuY29kZUFzQ0JPUihwaW46OlJldHJpZXNSZXF1ZXN0IHsg
fSk7CisgICAgZHJpdmVyKCkudHJhbnNhY3QoV1RGTW92ZShjYm9yQ21kKSwgW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpXShWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CisgICAgICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5jb250aW51ZUdldEtleUFncmVlbWVudEFm
dGVyR2V0UmV0cmllcyhXVEZNb3ZlKGRhdGEpKTsKKyAgICB9KTsKK30KKwordm9pZCBDdGFwQXV0
aGVudGljYXRvcjo6Y29udGludWVHZXRLZXlBZ3JlZW1lbnRBZnRlckdldFJldHJpZXMoVmVjdG9y
PHVpbnQ4X3Q+JiYgZGF0YSkKK3sKKyAgICBhdXRvIHJldHJpZXMgPSBwaW46OlJldHJpZXNSZXNw
b25zZTo6cGFyc2UoZGF0YSk7CisgICAgaWYgKCFyZXRyaWVzKSB7CisgICAgICAgIGF1dG8gZXJy
b3IgPSBnZXRSZXNwb25zZUNvZGUoZGF0YSk7CisgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2Vw
dGlvbkRhdGEgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIlVua25vd24gaW50ZXJuYWwgZXJy
b3IuIEVycm9yIGNvZGU6ICIsIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGVycm9yKSkgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNib3JDbWQgPSBlbmNvZGVBc0NCT1IocGlu
OjpLZXlBZ3JlZW1lbnRSZXF1ZXN0IHsgfSk7CisgICAgZHJpdmVyKCkudHJhbnNhY3QoV1RGTW92
ZShjYm9yQ21kKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCByZXRyaWVzID0gcmV0
cmllcy0+cmV0cmllc10gKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEpIHsKKyAgICAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgd2Vha1RoaXMtPmNvbnRpbnVlUmVxdWVzdFBpbkFmdGVyR2V0S2V5
QWdyZWVtZW50KFdURk1vdmUoZGF0YSksIHJldHJpZXMpOworICAgIH0pOworfQorCit2b2lkIEN0
YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZVJlcXVlc3RQaW5BZnRlckdldEtleUFncmVlbWVudChW
ZWN0b3I8dWludDhfdD4mJiBkYXRhLCB1aW50NjRfdCByZXRyaWVzKQoreworICAgIGF1dG8ga2V5
QWdyZWVtZW50ID0gcGluOjpLZXlBZ3JlZW1lbnRSZXNwb25zZTo6cGFyc2UoZGF0YSk7CisgICAg
aWYgKCFrZXlBZ3JlZW1lbnQpIHsKKyAgICAgICAgYXV0byBlcnJvciA9IGdldFJlc3BvbnNlQ29k
ZShkYXRhKTsKKyAgICAgICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IFVua25vd25F
cnJvciwgbWFrZVN0cmluZygiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29kZTogIiwg
c3RhdGljX2Nhc3Q8dWludDhfdD4oZXJyb3IpKSB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChhdXRvKiBvYnNlcnZlciA9IHRoaXMtPm9ic2VydmVyKCkpIHsKKyAgICAgICAg
b2JzZXJ2ZXItPnJlcXVlc3RQaW4ocmV0cmllcywgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpLCBrZXlBZ3JlZW1lbnQgPSBXVEZNb3ZlKCprZXlBZ3JlZW1lbnQpXSAoY29uc3QgU3RyaW5n
JiBwaW4pIHsKKyAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IHdlYWtUaGlzLT5jb250aW51ZUdldFBpblRva2VuQWZ0ZXJSZXF1ZXN0UGluKHBpbiwga2V5QWdy
ZWVtZW50LnBlZXJLZXkpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKK3ZvaWQgQ3RhcEF1dGhl
bnRpY2F0b3I6OmNvbnRpbnVlR2V0UGluVG9rZW5BZnRlclJlcXVlc3RQaW4oY29uc3QgU3RyaW5n
JiBwaW4sIGNvbnN0IENyeXB0b0tleUVDJiBwZWVyS2V5KQoreworICAgIGF1dG8gcGluVXRmOCA9
IHBpbjo6dmFsaWRhdGVBbmRDb252ZXJ0VG9VVEY4KHBpbik7CisgICAgaWYgKCFwaW5VdGY4KSB7
CisgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBVbmtub3duRXJyb3IsIG1h
a2VTdHJpbmcoIlBpbiBpcyBub3QgdmFsaWQ6ICIsIHBpbikgfSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgYXV0byB0b2tlblJlcXVlc3QgPSBwaW46OlRva2VuUmVxdWVzdDo6dHJ5Q3Jl
YXRlKCpwaW5VdGY4LCBwZWVyS2V5KTsKKyAgICBpZiAoIXRva2VuUmVxdWVzdCkgeworICAgICAg
ICByZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93bkVycm9yLCAiQ2Fubm90IGNy
ZWF0ZSBhIFRva2VuUmVxdWVzdC4iX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBhdXRvIGNib3JDbWQgPSBlbmNvZGVBc0NCT1IoKnRva2VuUmVxdWVzdCk7CisgICAgZHJpdmVy
KCkudHJhbnNhY3QoV1RGTW92ZShjYm9yQ21kKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpLCB0b2tlblJlcXVlc3QgPSBXVEZNb3ZlKCp0b2tlblJlcXVlc3QpXSAoVmVjdG9yPHVpbnQ4
X3Q+JiYgZGF0YSkgeworICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAg
ICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB3ZWFrVGhpcy0+
Y29udGludWVSZXF1ZXN0QWZ0ZXJHZXRQaW5Ub2tlbihXVEZNb3ZlKGRhdGEpLCB0b2tlblJlcXVl
c3QpOworICAgIH0pOworfQorCit2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZVJlcXVl
c3RBZnRlckdldFBpblRva2VuKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEsIGNvbnN0IGZpZG86OnBp
bjo6VG9rZW5SZXF1ZXN0JiB0b2tlblJlcXVlc3QpCit7CisgICAgYXV0byB0b2tlbiA9IHBpbjo6
VG9rZW5SZXNwb25zZTo6cGFyc2UodG9rZW5SZXF1ZXN0LnNoYXJlZEtleSgpLCBkYXRhKTsKKyAg
ICBpZiAoIXRva2VuKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBnZXRSZXNwb25zZUNvZGUoZGF0
YSk7CisgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBVbmtub3duRXJyb3Is
IG1ha2VTdHJpbmcoIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVycm9yIGNvZGU6ICIsIHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KGVycm9yKSkgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX3BpbkF1dGggPSB0b2tlbi0+cGluQXV0aChyZXF1ZXN0RGF0YSgpLmhhc2gpOworICAgIFdU
Rjo6c3dpdGNoT24ocmVxdWVzdERhdGEoKS5vcHRpb25zLCBbJl0oY29uc3QgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucykgeworICAgICAgICBtYWtlQ3JlZGVudGlh
bCgpOworICAgIH0sIFsmXShjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMm
IG9wdGlvbnMpIHsKKyAgICAgICAgZ2V0QXNzZXJ0aW9uKCk7CisgICAgfSk7Cit9CisKIGJvb2wg
Q3RhcEF1dGhlbnRpY2F0b3I6OnRyeURvd25ncmFkZSgpCiB7CiAgICAgaWYgKG1faW5mby52ZXJz
aW9ucygpLmZpbmQoUHJvdG9jb2xWZXJzaW9uOjprVTJmKSA9PSBtX2luZm8udmVyc2lvbnMoKS5l
bmQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuaAppbmRleCBlZTU0M2Q4NWY5
NGQwOGZhMGM2YjdhMDQ5Y2RmZWRmOGVmNDJmYzVjLi41ODI0OGNhMTI0NDg1YjBhZGM2Njc4M2Nh
MGM2Y2E3YTY5ZWEzZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5oCkBA
IC0zMCw2ICszMCwxNiBAQAogI2luY2x1ZGUgIkZpZG9BdXRoZW50aWNhdG9yLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg+CiAKK25hbWVzcGFjZSBm
aWRvIHsKK25hbWVzcGFjZSBwaW4geworY2xhc3MgVG9rZW5SZXF1ZXN0OworfQorfQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDcnlwdG9LZXlFQzsKK30KKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIEN0YXBEcml2ZXI7CkBAIC00NSwxNSArNTUsMjIgQEAgcHJpdmF0ZToKICAg
ICBleHBsaWNpdCBDdGFwQXV0aGVudGljYXRvcihzdGQ6OnVuaXF1ZV9wdHI8Q3RhcERyaXZlcj4m
JiwgZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYmKTsKIAogICAgIHZvaWQgbWFr
ZUNyZWRlbnRpYWwoKSBmaW5hbDsKLSAgICB2b2lkIGNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRl
clJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYpIGNvbnN0OworICAgIHZvaWQgY29u
dGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWludDhfdD4m
Jik7CiAgICAgdm9pZCBnZXRBc3NlcnRpb24oKSBmaW5hbDsKICAgICB2b2lkIGNvbnRpbnVlR2V0
QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW50OF90PiYmKTsKIAorICAg
IHZvaWQgZ2V0UmV0cmllcygpOworICAgIHZvaWQgY29udGludWVHZXRLZXlBZ3JlZW1lbnRBZnRl
ckdldFJldHJpZXMoVmVjdG9yPHVpbnQ4X3Q+JiYpOworICAgIHZvaWQgY29udGludWVSZXF1ZXN0
UGluQWZ0ZXJHZXRLZXlBZ3JlZW1lbnQoVmVjdG9yPHVpbnQ4X3Q+JiYsIHVpbnQ2NF90IHJldHJp
ZXMpOworICAgIHZvaWQgY29udGludWVHZXRQaW5Ub2tlbkFmdGVyUmVxdWVzdFBpbihjb25zdCBT
dHJpbmcmIHBpbiwgY29uc3QgQ3J5cHRvS2V5RUMmKTsKKyAgICB2b2lkIGNvbnRpbnVlUmVxdWVz
dEFmdGVyR2V0UGluVG9rZW4oVmVjdG9yPHVpbnQ4X3Q+JiYsIGNvbnN0IGZpZG86OnBpbjo6VG9r
ZW5SZXF1ZXN0Jik7CisKICAgICBib29sIHRyeURvd25ncmFkZSgpOwogICAgIGJvb2wgcHJvY2Vz
c0dvb2dsZUxlZ2FjeUFwcElkU3VwcG9ydEV4dGVuc2lvbigpOwogCiAgICAgZmlkbzo6QXV0aGVu
dGljYXRvckdldEluZm9SZXNwb25zZSBtX2luZm87CiAgICAgYm9vbCBtX2lzRG93bmdyYWRlZCB7
IGZhbHNlIH07CisgICAgVmVjdG9yPHVpbnQ4X3Q+IG1fcGluQXV0aDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGJmZjliZGI4NmI3N2M2NDljMmZlODY0MmIzODZiZGExM2M2OWE0YWUuLmI4NTc1
YTlhM2MyNDQzODE3YjJlNzczYTVjNDAwNDhiMGEzY2Y3MzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMC0wMS0w
NiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRo
bl0gU3VwcG9ydCBDVEFQIENsaWVudCBQaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MTUxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY1NTg1
NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFBpblRlc3QuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKC1bVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZSBwYW5lbDpyZXF1ZXN0UElOV2l0aFJlbWFp
bmluZ1JldHJpZXM6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4uaHRtbDogQWRkZWQuCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFr
ZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbDogQWRkZWQu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGlj
YXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRo
ZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sOiBBZGRlZC4KKwogMjAy
MC0wMS0wNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gSXNzdWUgbWFjaCBsb29rdXAgZXh0ZW5zaW9uIHRvIGxhdW5jaCBzZXJ2aWNlcyBkYWVt
b24gZm9yIE1haWwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjhkMDA2MGU1YThhMGExNzZh
MjFjNzlmM2QxMjY4N2RkMWI1ZGE2Ny4uMTc2ZmZhZDIxZWM4MjljNmU3ZDM1MjE2ZTg5MmU1Mjgz
YmM0NzIyOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNyw2ICszMjcsMTAgQEAKIAkJ
NTVBODE3RkYyMTgxMDIxQTAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUE4MTdGRTIxODEwMURG
MDAwNEEzOUEgLyogMTAweDEwMC1yZWQudGdhICovOyB9OwogCQk1NUE4MTgwMDIxODEwMjIxMDAw
NEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBODE3RkQyMTgxMDFERjAwMDRBMzlBIC8qIDQwMHg0
MDAtZ3JlZW4ucG5nICovOyB9OwogCQk1NUY5RDJFNTIyMDUwMzE4MDBBOUFCMzggLyogQWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NUY5RDJFNDIyMDUwMzE4MDBBOUFCMzggLyogQWRkaXRpb25hbFN1
cHBvcnRlZEltYWdlVHlwZXMubW0gKi87IH07CisJCTU3MEQyNkY0MjNDM0NBNkEwMEQ1Q0Y2NyAv
KiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3Jl
ZW1lbnQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzBEMjZGMzIzQzNDQTU1MDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwg
Ki87IH07CisJCTU3MEQyNkY2MjNDM0QzMzAwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24t
bWFrZS1jcmVkZW50aWFsLWhpZC1waW4uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEMjZGNTIzQzNEMzI3MDBENUNGNjcgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwgKi87IH07CisJCTU3
MEQyNkZBMjNDM0YyNTEwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MEQyNkY5MjNDM0YyNDUwMEQ1Q0Y2
NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10
b2tlbi1lcnJvci5odG1sICovOyB9OworCQk1NzBEMjZGQzIzQzNGODcwMDBENUNGNjcgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MEQyNkZCMjNDM0Y4NjUw
MEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLmh0bWwg
Ki87IH07CiAJCTU3MTRFQ0I5MUNBOEI1QjAwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmln
aW5hbFVSTC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3MTRFQ0I4MUNBOEI1ODgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmln
aW5hbFVSTC5odG1sICovOyB9OwogCQk1NzE0RUNCQjFDQThCRkU0MDAwNTFBQzggLyogRG93bmxv
YWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0JBMUNBOEJGRDEwMDA1MUFDOCAvKiBE
b3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwgKi87IH07CiAJCTU3MTRFQ0JEMUNB
OEMyMkEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQzFD
QThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi87IH07
CkBAIC0zNDMsNiArMzQ3LDcgQEAKIAkJNTczMjU1QTcyMjEzOUJDNzAwMzk2QUU4IC8qIGxvYWQt
d2ViLWFyY2hpdmUtMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3MzI1NUEzMjIxMzlCOTAwMDM5NkFFOCAvKiBsb2FkLXdlYi1hcmNo
aXZlLTIuaHRtbCAqLzsgfTsKIAkJNTc0RjU1RDIyMDRENDdGMDAwMjk0OEM2IC8qIFNlY3VyaXR5
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3NEY1NUQwMjA0RDQ3MUMwMDI5NDhDNiAvKiBTZWN1cml0eS5mcmFtZXdvcmsgKi87IH07
CiAJCTU3NTg1OTdGMjNBMjUyN0EwMEM3NDU3MiAvKiBDdGFwUGluVGVzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU4NTk3RTIzQTI1MjdBMDBD
NzQ1NzIgLyogQ3RhcFBpblRlc3QuY3BwICovOyB9OworCQk1NzU4NTk4NDIzQzNDM0E0MDBDNzQ1
NzIgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRy
aWVzLWVycm9yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTc1ODU5ODMyM0MzQzM2MjAwQzc0NTcyIC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sICovOyB9Owog
CQk1NzU5OUUyMTFGMDcxOTE5MDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFj
a3dhcmRDb21wYXRpYmlsaXR5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTc1OTlFMjAxRjA3MTkxNzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVy
ZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSAqLzsgfTsKIAkJNTc1OTlFMjcxRjA3MUFB
MDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0
eS5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3NTk5RTI0MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xv
bmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyAqLzsgfTsKIAkJNTc1OTlFMjgxRjA3MUFB
MDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0
eS5zcWxpdGUzLXNobSBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzU5OUUyNjFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJl
ZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htICovOyB9OwpAQCAtMTQ3OSwx
MSArMTQ4NCwxNiBAQAogCQkJCUNENTc3Nzk5MjExQ0UwRTQwMDFCMzcxRSAvKiB3ZWItYXVkaW8t
b25seS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NjYzREYzMjM1N0U0ODkwMEU4
NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc3NDU0RDAyMzU5QjM3ODAwOEUxRUQ3IC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3MEQyNkZDMjNDM0Y4NzAwMEQ1Q0Y2NyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJNTc2NjNERUMyMzRGMUY5MzAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3OTgz
MzkyMjM2OEZBMzcwMDhFNTU0NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1u
ZmMtbXVsdGlwbGUtdGFncy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NjYzREVB
MjM0RUE2NkQwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1Nzc0NTREMjIzNTlCQjAxMDA4RTFFRDcg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTdDNjI0NTAyMzQ2QzIxRTAwMzgzRkU3IC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCisJCQkJNTcwRDI2RjQyM0MzQ0E2QTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1t
YWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVudC1lcnJvci5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAorCQkJCTU3MEQyNkZBMjNDM0YyNTEwMEQ1Q0Y2NyAvKiB3ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3NTg1OTg0MjNDM0MzQTQwMEM3NDU3MiAv
KiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMt
ZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1NzBEMjZGNjIzQzNEMzMwMDBE
NUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc5ODMzN0UyMzYwMTlBNDAwOEU1NTQ3IC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJMUMyQjgxODYxQzg5MjU5RDAwQTU1MjlGIC8qIHdlYmZvbnQuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQk1MTcxNEVCNDFDRjhDNzhDMDA0NzIzQzQgLyogV2ViUHJv
Y2Vzc0tpbGxJREJDbGVhbnVwLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE4OTIs
NiArMTkwMiwxMCBAQAogCQk1NUE4MTdGRDIxODEwMURGMDAwNEEzOUEgLyogNDAweDQwMC1ncmVl
bi5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBp
bWFnZS5wbmc7IHBhdGggPSAiNDAweDQwMC1ncmVlbi5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NUE4MTdGRTIxODEwMURGMDAwNEEzOUEgLyogMTAweDEwMC1yZWQudGdhICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0
aCA9ICIxMDB4MTAwLXJlZC50Z2EiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUY5
RDJFNDIyMDUwMzE4MDBBOUFCMzggLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzBEMjZGMzIzQzNDQTU1MDBENUNGNjcgLyog
d2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVt
ZW50LWVycm9yLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1NzBEMjZGNTIzQzNEMzI3MDBENUNGNjcgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhl
bnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1NzBEMjZGOTIzQzNGMjQ1MDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBp
bi10b2tlbi1lcnJvci5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcwRDI2
RkIyM0MzRjg2NTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhp
ZC1waW4uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1o
aWQtcGluLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNCODFDQThC
NTg4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTRFQ0JBMUNBOEJGRDEwMDA1MUFDOCAvKiBEb3du
bG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVl
c3RPcmlnaW5hbFVSTDIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2Fk
UmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTkxMCw2ICsxOTI0LDcgQEAKIAkJNTc0RjU1RDAyMDRENDcxQzAwMjk0OEM2IC8qIFNlY3VyaXR5
LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gU2VjdXJpdHkuZnJhbWV3b3JrOyBwYXRoID0g
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9TZWN1cml0eS5mcmFtZXdvcms7IHNvdXJjZVRyZWUg
PSBTREtST09UOyB9OwogCQk1NzU4NTk3RDIzQTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ3RhcFBpblRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTc1ODU5N0UyM0EyNTI3QTAwQzc0NTcyIC8qIEN0YXBQaW5UZXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEN0YXBQaW5UZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTc1ODU5ODMyM0MzQzM2MjAwQzc0NTcyIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc1OTlFMjAxRjA3MTkxNzAwQTNG
QjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluZGV4ZWREQlN0cnVjdHVy
ZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTc1OTlFMjMxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9u
ZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBJbmRleGVkREJTdHJ1
Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5odG1sOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NzU5OUUyNDFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gSW5kZXhlZERC
U3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0zNDgzLDExICszNDk4LDE2IEBACiAJCQkJQ0Q1Nzc3OTgyMTFD
REU4RjAwMUIzNzFFIC8qIHdlYi1hdWRpby1vbmx5Lmh0bWwgKi8sCiAJCQkJNTc2NjNERjIyMzU3
RTQ1RDAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5j
ZWwuaHRtbCAqLywKIAkJCQk1Nzc0NTRDRjIzNTlCMzM4MDA4RTFFRDcgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzLmh0bWwgKi8sCisJCQkJNTcw
RDI2RkIyM0MzRjg2NTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9u
LWhpZC1waW4uaHRtbCAqLywKIAkJCQk1NzY2M0RFQjIzNEYxRjgwMDBFODVFMDkgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwgKi8sCiAJCQkJNTc5ODMzN0IyMzVF
QjY1QzAwOEU1NTQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1tdWx0
aXBsZS10YWdzLmh0bWwgKi8sCiAJCQkJNTc2NjNERTkyMzRFQTYwQjAwRTg1RTA5IC8qIHdlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy5odG1sICovLAogCQkJCTU3NzQ1NEQxMjM1
OUJBRDUwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi11MmYtbm8t
Y3JlZGVudGlhbHMuaHRtbCAqLywKIAkJCQk1N0M2MjQ0RjIzNDZDMUVDMDAzODNGRTcgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbCAqLywKKwkJCQk1NzBEMjZGMzIzQzND
QTU1MDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGlu
LWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwgKi8sCisJCQkJNTcwRDI2RjkyM0MzRjI0NTAw
RDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQt
cGluLXRva2VuLWVycm9yLmh0bWwgKi8sCisJCQkJNTc1ODU5ODMyM0MzQzM2MjAwQzc0NTcyIC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1l
cnJvci5odG1sICovLAorCQkJCTU3MEQyNkY1MjNDM0QzMjcwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4uaHRtbCAqLywKIAkJCQk1Nzk4MzM3RDIz
NjAxOTZEMDA4RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQu
aHRtbCAqLywKIAkJCQk1MTcxNEVCMjFDRjhDNzYxMDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJ
REJDbGVhbnVwLTEuaHRtbCAqLywKIAkJCQk1MTcxNEVCMzFDRjhDNzYxMDA0NzIzQzQgLyogV2Vi
UHJvY2Vzc0tpbGxJREJDbGVhbnVwLTIuaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUGluVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFBpblRlc3QuY3BwCmluZGV4IGE2M2FhNjY5OTU5YjU1YmNk
MTQ3ZDczMjVkM2VmZmE4NTVlNGU4NTcuLjhjZGY3ODczZGQ5YWE3ZTI2YmMzODUxZmUzMmQzYzZm
MzdiZTQ4ZjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
dGFwUGluVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0
YXBQaW5UZXN0LmNwcApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGluLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdXRoZW50aWNhdGlvbkNvbnN0YW50cy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV2ViQXV0aGVudGljYXRpb25VdGlscy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0
L0Jhc2U2NC5oPgorI2luY2x1ZGUgPHBhbC9jcnlwdG8vQ3J5cHRvRGlnZXN0Lmg+CiAKIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtOTgsNyAr
OTgsNyBAQCBURVNUKEN0YXBQaW5UZXN0LCBUZXN0UmV0cmllc1Jlc3BvbnNlKQogICAgIC8vIFN1
Y2Nlc3MgY2FzZXMKICAgICByZXN1bHQgPSBSZXRyaWVzUmVzcG9uc2U6OnBhcnNlKGNvbnZlcnRC
eXRlc1RvVmVjdG9yKFRlc3REYXRhOjprQ3RhcENsaWVudFBpblJldHJpZXNSZXNwb25zZSwgc2l6
ZW9mKFRlc3REYXRhOjprQ3RhcENsaWVudFBpblJldHJpZXNSZXNwb25zZSkpKTsKICAgICBFWFBF
Q1RfVFJVRShyZXN1bHQpOwotICAgIEVYUEVDVF9FUShyZXN1bHQtPnJldHJpZXMsIDgpOworICAg
IEVYUEVDVF9FUShyZXN1bHQtPnJldHJpZXMsIDh1KTsKIH0KIAogVEVTVChDdGFwUGluVGVzdCwg
VGVzdEtleUFncmVlbWVudFJlcXVlc3QpCkBAIC0xMjUsNiArMTI1LDkgQEAgVEVTVChDdGFwUGlu
VGVzdCwgVGVzdEtleUFncmVlbWVudFJlc3BvbnNlKQogICAgIHJlc3VsdCA9IEtleUFncmVlbWVu
dFJlc3BvbnNlOjpwYXJzZShjb252ZXJ0Qnl0ZXNUb1ZlY3RvcihUZXN0RGF0YTo6a0N0YXBDbGll
bnRQaW5Ub2tlblJlc3BvbnNlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwQ2xpZW50UGluVG9rZW5S
ZXNwb25zZSkpKTsgLy8gd3JvbmcgcmVzcG9uc2UKICAgICBFWFBFQ1RfRkFMU0UocmVzdWx0KTsK
IAorICAgIHJlc3VsdCA9IEtleUFncmVlbWVudFJlc3BvbnNlOjpwYXJzZShjb252ZXJ0Qnl0ZXNU
b1ZlY3RvcihUZXN0RGF0YTo6a0N0YXBDbGllbnRQaW5JbnZhbGlkS2V5QWdyZWVtZW50UmVzcG9u
c2UsIHNpemVvZihUZXN0RGF0YTo6a0N0YXBDbGllbnRQaW5JbnZhbGlkS2V5QWdyZWVtZW50UmVz
cG9uc2UpKSk7IC8vIFRoZSBwb2ludCBpcyBub3Qgb24gdGhlIGN1cnZlLgorICAgIEVYUEVDVF9G
QUxTRShyZXN1bHQpOworCiAgICAgLy8gVGVzdCBDT1NFCiAgICAgYXV0byBjb3NlS2V5ID0gZW5j
b2RlQ09TRVB1YmxpY0tleShWZWN0b3I8dWludDhfdD4oNjUpKTsKICAgICBjb3NlS2V5W0NCT1JW
YWx1ZShDT1NFOjprdHkpXSA9IENCT1JWYWx1ZSgwKTsgLy8gd3Jvbmcga3R5CkBAIC0xNzYsNyAr
MTc5LDcgQEAgVEVTVChDdGFwUGluVGVzdCwgVGVzdFRva2VuUmVxdWVzdCkKICAgICBhdXRvIHRv
a2VuID0gVG9rZW5SZXF1ZXN0Ojp0cnlDcmVhdGUocGluLCBkb3duY2FzdDxDcnlwdG9LZXlFQz4o
KmtleVBhaXIucHVibGljS2V5KSk7CiAgICAgRVhQRUNUX1RSVUUodG9rZW4pOwogICAgIGF1dG8g
cmVzdWx0ID0gZW5jb2RlQXNDQk9SKCp0b2tlbik7Ci0gICAgRVhQRUNUX0VRKHJlc3VsdC5zaXpl
KCksIDEyMHUpOworICAgIEVYUEVDVF9FUShyZXN1bHQuc2l6ZSgpLCAxMDN1KTsKICAgICBFWFBF
Q1RfRVEocmVzdWx0WzBdLCBzdGF0aWNfY2FzdDx1aW50OF90PihDdGFwUmVxdWVzdENvbW1hbmQ6
OmtBdXRoZW50aWNhdG9yQ2xpZW50UGluKSk7CiAKICAgICAvLyBEZWNvZGUgdGhlIENCT1IgYmlu
YXJ5IHRvIGNoZWNrIGlmIGVhY2ggZmllbGQgaXMgZW5jb2RlZCBjb3JyZWN0bHkuCkBAIC0yMjQs
MTIgKzIyNywxNyBAQCBURVNUKEN0YXBQaW5UZXN0LCBUZXN0VG9rZW5SZXF1ZXN0KQogICAgIC8v
IENoZWNrIHRoZSBlbmNyeXB0ZWQgUGluLgogICAgIGF1dG8gc2hhcmVkS2V5UmVzdWx0ID0gQ3J5
cHRvQWxnb3JpdGhtRUNESDo6cGxhdGZvcm1EZXJpdmVCaXRzKGRvd25jYXN0PENyeXB0b0tleUVD
Pigqa2V5UGFpci5wcml2YXRlS2V5KSwgKmNvc2VQdWJsaWNLZXkpOwogICAgIEVYUEVDVF9UUlVF
KHNoYXJlZEtleVJlc3VsdCk7Ci0gICAgYXV0byBhZXNLZXkgPSBDcnlwdG9LZXlBRVM6OmltcG9y
dFJhdyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDLCBXVEZNb3ZlKCpzaGFyZWRL
ZXlSZXN1bHQpLCB0cnVlLCBDcnlwdG9LZXlVc2FnZURlY3J5cHQpOworCisgICAgYXV0byBjcnlw
dG8gPSBQQUw6OkNyeXB0b0RpZ2VzdDo6Y3JlYXRlKFBBTDo6Q3J5cHRvRGlnZXN0OjpBbGdvcml0
aG06OlNIQV8yNTYpOworICAgIGNyeXB0by0+YWRkQnl0ZXMoc2hhcmVkS2V5UmVzdWx0LT5kYXRh
KCksIHNoYXJlZEtleVJlc3VsdC0+c2l6ZSgpKTsKKyAgICBhdXRvIHNoYXJlZEtleUhhc2ggPSBj
cnlwdG8tPmNvbXB1dGVIYXNoKCk7CisKKyAgICBhdXRvIGFlc0tleSA9IENyeXB0b0tleUFFUzo6
aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMsIFdURk1vdmUoc2hh
cmVkS2V5SGFzaCksIHRydWUsIENyeXB0b0tleVVzYWdlRGVjcnlwdCk7CiAgICAgRVhQRUNUX1RS
VUUoYWVzS2V5KTsKIAogICAgIGNvbnN0IGF1dG8mIGl0NiA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JP
UlZhbHVlKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFJlcXVlc3RLZXk6OmtQaW5IYXNoRW5jKSkpOwog
ICAgIEVYUEVDVF9ORShpdDYsIHJlc3BvbnNlTWFwLmVuZCgpKTsKLSAgICBhdXRvIHBpbkhhc2hS
ZXN1bHQgPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQoeyB9LCAqYWVz
S2V5LCBpdDYtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCkpOworICAgIGF1dG8gcGluSGFzaFJlc3Vs
dCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdCh7IH0sICphZXNLZXks
IGl0Ni0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKSwgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6UGFk
ZGluZzo6Tm8pOwogICAgIEVYUEVDVF9GQUxTRShwaW5IYXNoUmVzdWx0Lmhhc0V4Y2VwdGlvbigp
KTsKICAgICBhdXRvIHBpbkhhc2ggPSBwaW5IYXNoUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgp
OwogICAgIGNvbnN0IHVpbnQ4X3QgZXhwZWN0ZWRQaW5IYXNoW10gPSB7IDB4MDMsIDB4YWMsIDB4
NjcsIDB4NDIsIDB4MTYsIDB4ZjMsIDB4ZTEsIDB4NWMsIDB4NzYsIDB4MWUsIDB4ZTEsIDB4YTUs
IDB4ZTIsIDB4NTUsIDB4ZjAsIDB4NjcgfTsKQEAgLTI0MCwxMCArMjQ4LDEwIEBAIFRFU1QoQ3Rh
cFBpblRlc3QsIFRlc3RUb2tlblJlcXVlc3QpCiBURVNUKEN0YXBQaW5UZXN0LCBUZXN0VG9rZW5S
ZXNwb25zZSkKIHsKICAgICBjb25zdCB1aW50OF90IHNoYXJlZEtleURhdGFbXSA9IHsKLSAgICAg
ICAgMHgwMywgMHhhYywgMHg2NywgMHg0MiwgMHgxNiwgMHhmMywgMHhlMSwgMHg1YywKLSAgICAg
ICAgMHg3NiwgMHgxZSwgMHhlMSwgMHhhNSwgMHhlMiwgMHg1NSwgMHhmMCwgMHg2NywKLSAgICAg
ICAgMHg5NSwgMHgzNiwgMHgyMywgMHhjOCwgMHhiMywgMHg4OCwgMHhiNCwgMHg0NSwKLSAgICAg
ICAgMHg5ZSwgMHgxMywgMHhmOSwgMHg3OCwgMHhkNywgMHhjOCwgMHg0NiwgMHhmNCwgfTsKKyAg
ICAgICAgMHgyOSwgMHg5RSwgMHg2NSwgMHhCOCwgMHhFNywgMHg3MSwgMHhCOCwgMHgxRCwKKyAg
ICAgICAgMHhCMSwgMHhDNCwgMHg4RCwgMHhCRSwgMHhDRSwgMHg1MCwgMHgyQSwgMHg4NCwKKyAg
ICAgICAgMHgwNSwgMHg0NCwgMHg3RiwgMHg0NiwgMHgyRCwgMHhFNiwgMHg4MSwgMHhGQSwKKyAg
ICAgICAgMHhFRiwgMHgwQSwgMHg2QywgMHg2NywgMHhBNywgMHgyQiwgMHhCNSwgMHgwRiwgfTsK
ICAgICBhdXRvIHNoYXJlZEtleSA9IENyeXB0b0tleUFFUzo6aW1wb3J0UmF3KENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OkFFU19DQkMsIGNvbnZlcnRCeXRlc1RvVmVjdG9yKHNoYXJlZEtleURh
dGEsIHNpemVvZihzaGFyZWRLZXlEYXRhKSksIHRydWUsIENyeXB0b0tleVVzYWdlRW5jcnlwdCB8
IENyeXB0b0tleVVzYWdlRGVjcnlwdCk7CiAgICAgQVNTRVJUX1RSVUUoc2hhcmVkS2V5KTsKIApA
QCAtMjc0LDEwICsyODIsMTAgQEAgVEVTVChDdGFwUGluVGVzdCwgVGVzdFBpbkF1dGgpCiB7CiAg
ICAgLy8gMS4gR2VuZXJhdGUgdGhlIHRva2VuLgogICAgIGNvbnN0IHVpbnQ4X3Qgc2hhcmVkS2V5
RGF0YVtdID0gewotICAgICAgICAweDAzLCAweGFjLCAweDY3LCAweDQyLCAweDE2LCAweGYzLCAw
eGUxLCAweDVjLAotICAgICAgICAweDc2LCAweDFlLCAweGUxLCAweGE1LCAweGUyLCAweDU1LCAw
eGYwLCAweDY3LAotICAgICAgICAweDk1LCAweDM2LCAweDIzLCAweGM4LCAweGIzLCAweDg4LCAw
eGI0LCAweDQ1LAotICAgICAgICAweDllLCAweDEzLCAweGY5LCAweDc4LCAweGQ3LCAweGM4LCAw
eDQ2LCAweGY0LCB9OworICAgICAgICAweDI5LCAweDlFLCAweDY1LCAweEI4LCAweEU3LCAweDcx
LCAweEI4LCAweDFELAorICAgICAgICAweEIxLCAweEM0LCAweDhELCAweEJFLCAweENFLCAweDUw
LCAweDJBLCAweDg0LAorICAgICAgICAweDA1LCAweDQ0LCAweDdGLCAweDQ2LCAweDJELCAweEU2
LCAweDgxLCAweEZBLAorICAgICAgICAweEVGLCAweDBBLCAweDZDLCAweDY3LCAweEE3LCAweDJC
LCAweEI1LCAweDBGLCB9OwogICAgIGF1dG8gc2hhcmVkS2V5ID0gQ3J5cHRvS2V5QUVTOjppbXBv
cnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQywgY29udmVydEJ5dGVzVG9W
ZWN0b3Ioc2hhcmVkS2V5RGF0YSwgc2l6ZW9mKHNoYXJlZEtleURhdGEpKSwgdHJ1ZSwgQ3J5cHRv
S2V5VXNhZ2VFbmNyeXB0IHwgQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0KTsKICAgICBBU1NFUlRfVFJV
RShzaGFyZWRLZXkpOwogICAgIGF1dG8gcmVzdWx0ID0gVG9rZW5SZXNwb25zZTo6cGFyc2UoKnNo
YXJlZEtleSwgY29udmVydEJ5dGVzVG9WZWN0b3IoVGVzdERhdGE6OmtDdGFwQ2xpZW50UGluVG9r
ZW5SZXNwb25zZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcENsaWVudFBpblRva2VuUmVzcG9uc2Up
KSk7CkBAIC0yODUsNyArMjkzLDcgQEAgVEVTVChDdGFwUGluVGVzdCwgVGVzdFBpbkF1dGgpCiAK
ICAgICAvLyAyLiBHZW5lcmF0ZSB0aGUgcGluQXV0aC4KICAgICBhdXRvIHBpbkF1dGggPSByZXN1
bHQtPnBpbkF1dGgoY29udmVydEJ5dGVzVG9WZWN0b3Ioc2hhcmVkS2V5RGF0YSwgc2l6ZW9mKHNo
YXJlZEtleURhdGEpKSk7IC8vIHNoYXJlZEtleURhdGEgcHJldGVuZHMgdG8gYmUgY2xpZW50RGF0
YUhhc2gKLSAgICBjb25zdCB1aW50OF90IGV4cGVjdGVkUGluQXV0aFtdID0geyAweGIzLCAweGMy
LCAweDY1LCAweDFjLCAweGZkLCAweGM4LCAweDQyLCAweGI0LCAweDYwLCAweDE2LCAweGVkLCAw
eDIwLCAweDY0LCAweDUzLCAweGFmLCAweDg0IH07CisgICAgY29uc3QgdWludDhfdCBleHBlY3Rl
ZFBpbkF1dGhbXSA9IHsgMHgwYiwgMHhlYywgMHg5ZCwgMHhiYSwgMHg2OSwgMHhiMCwgMHgwZiwg
MHg0NSwgMHgwYiwgMHhlYywgMHg2NiwgMHhiNCwgMHg3NSwgMHg3ZiwgMHg5MywgMHg4NSB9Owog
ICAgIEVYUEVDVF9FUShwaW5BdXRoLnNpemUoKSwgMTZ1KTsKICAgICBFWFBFQ1RfRVEobWVtY21w
KHBpbkF1dGguZGF0YSgpLCBleHBlY3RlZFBpbkF1dGgsIHBpbkF1dGguc2l6ZSgpKSwgMCk7CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3RE
YXRhLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmgK
aW5kZXggM2MyMzAyYjBhODhiNzIxOWQ5ZWM2YWRjZDEzYWQ3ZDdiN2ZlZGM2MS4uZjI1ODE2NWI3
MzFiOTllZDc5NWUwNDYxZThhNTZiYmQ1ZTVlOWQyNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaApAQCAtNjEyLDE1ICs2MTIsMTUgQEAg
Y29uc3RleHByIHVpbnQ4X3Qga0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RXaXRoUGluW10gPSB7
CiAgICAgMHg2MiwgMHg3NSwgMHg3NiwKICAgICAvLyBUcnVlKDIxKQogICAgIDB4ZjUsCi0gICAg
Ly8ga2V5KDgpIC0gcGluUHJvdG9jb2wKKyAgICAvLyBrZXkoOCkgLSBwaW5BdXRoCiAgICAgMHgw
OCwKLSAgICAvLyB2YWx1ZSAtIDEKLSAgICAweDAxLAotICAgIC8vIGtleSg5KSAtIHBpbkF1dGgK
LSAgICAweDA5LAogICAgIC8vIGJ5dGVzKDE2KQogICAgIDB4NTAsIDB4MDAsIDB4MDEsIDB4MDIs
IDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4MDgsIDB4MDksIDB4MGEsCi0gICAgMHgw
YiwgMHgwYywgMHgwZCwgMHgwZSwgMHgwZgorICAgIDB4MGIsIDB4MGMsIDB4MGQsIDB4MGUsIDB4
MGYsCisgICAgLy8ga2V5KDkpIC0gcGluUHJvdG9jb2wKKyAgICAweDA5LAorICAgIC8vIHZhbHVl
IC0gMQorICAgIDB4MDEsCiB9OwogCiBjb25zdGV4cHIgdWludDhfdCBrVGVzdENvbXBsZXhDdGFw
R2V0QXNzZXJ0aW9uUmVxdWVzdFtdID0gewpAQCAtNzQ1LDE1ICs3NDUsMTUgQEAgY29uc3RleHBy
IHVpbnQ4X3Qga1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RXaXRoUGluW10gPSB7
CiAgICAgMHg2MiwgMHg3NSwgMHg3NiwKICAgICAvLyB2YWx1ZSAtIFRydWUoMjEpCiAgICAgMHhm
NSwKLSAgICAvLyBrZXkoOCkgLSBwaW5Qcm90b2NvbAotICAgIDB4MDgsCi0gICAgLy8gdmFsdWUg
LSAxCi0gICAgMHgwMSwKLSAgICAvLyBrZXkoOSkgLSBwaW5BdXRoCi0gICAgMHgwOSwKKyAgICAv
LyBrZXkoNikgLSBwaW5BdXRoCisgICAgMHgwNiwKICAgICAvLyBieXRlcygxNikKICAgICAweDUw
LCAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDA4LCAw
eDA5LCAweDBhLAotICAgIDB4MGIsIDB4MGMsIDB4MGQsIDB4MGUsIDB4MGYKKyAgICAweDBiLCAw
eDBjLCAweDBkLCAweDBlLCAweDBmLAorICAgIC8vIGtleSg3KSAtIHBpblByb3RvY29sCisgICAg
MHgwNywKKyAgICAvLyB2YWx1ZSAtIDEKKyAgICAweDAxLAogfTsKIAogLy8gQ1RBUCByZXNwb25z
ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KQEAgLTExMDMsMTIgKzExMDMsMTEgQEAgY29uc3RleHByIHVpbnQ4X3Qga0N0YXBD
bGllbnRQaW5Ub2tlblJlc3BvbnNlW10gPSB7CiAgICAgMHhhMSwKICAgICAvLyBrZXkoMikgLSBw
aW5Ub2tlbgogICAgIDB4MDIsCi0gICAgLy8gYnl0ZXMoMzIpCi0gICAgMHg1OCwgMHgyMCwKKyAg
ICAvLyBieXRlcygxNikKKyAgICAweDUwLAogICAgIC8vIGVuY3J5cHRlZCB0b2tlbgotICAgIDB4
NDgsIDB4YjksIDB4NWQsIDB4M2QsIDB4OWUsIDB4ZWUsIDB4ZTUsIDB4MDAsIDB4YWIsIDB4NTEs
IDB4MTMsIDB4MmIsCi0gICAgMHgzNSwgMHg3NywgMHg2NiwgMHg1YywgMHg0MSwgMHg3YSwgMHg1
NiwgMHgzZSwgMHhiMywgMHhlMiwgMHgzYywgMHhiNywKLSAgICAweDZhLCAweDM3LCAweGIzLCAw
eGRlLCAweDU3LCAweDJiLCAweGNhLCAweGFhLAorICAgIDB4MTMsIDB4QTQsIDB4RUUsIDB4Qjcs
IDB4MEUsIDB4QzksIDB4MUEsIDB4RUEsIDB4MDAsIDB4MUUsIDB4OTMsIDB4MTYsCisgICAgMHhG
NiwgMHgxRSwgMHg0MSwgMHhGNywKIH07CiAKIGNvbnN0ZXhwciB1aW50OF90IGtDdGFwQ2xpZW50
UGluS2V5QWdyZWVtZW50UmVzcG9uc2VbXSA9IHsKQEAgLTExNDQsNiArMTE0MywzOSBAQCBjb25z
dGV4cHIgdWludDhfdCBrQ3RhcENsaWVudFBpbktleUFncmVlbWVudFJlc3BvbnNlW10gPSB7CiAg
ICAgMHg3MCwgMHg0NSwgMHhGNCwgMHg2MSwgMHgyRiwgMHhCMiwgMHgwQywgMHg5MSwKIH07CiAK
K2NvbnN0ZXhwciB1aW50OF90IGtDdGFwQ2xpZW50UGluSW52YWxpZEtleUFncmVlbWVudFJlc3Bv
bnNlW10gPSB7CisgICAgLy8gU3VjY2VzcworICAgIDB4MDAsCisgICAgLy8gbWFwKDEpCisgICAg
MHhBMSwKKyAgICAvLyBrZXkoMSkgLSBrZXlBZ3JlZW1lbnQKKyAgICAweDAxLAorICAgIC8vIE1h
cCg1KQorICAgIDB4QTUsCisgICAgLy8ga3R5OiBFQyBrZXkgdHlwZQorICAgIDB4MDEsIDB4MDIs
CisgICAgLy8gYWxnOiBFQ0RIMjU2IHNpZ25hdHVyZSBhbGdvcml0aG0KKyAgICAweDAzLCAweDM4
LCAweDE4LAorICAgIC8vIGNydjogUC0yNTYgY3VydmUKKyAgICAweDIwLCAweDAxLAorICAgIC8v
IHgtY29vcmRpbmF0ZQorICAgIDB4MjEsCisgICAgLy8gQnl0ZXMoMzIpCisgICAgMHg1OCwgMHgy
MCwKKyAgICAvLyBCeXRlIGFycmF5IGNvbnRlbnQKKyAgICAweEU4LCAweDc2LCAweDI1LCAweDg5
LCAweDZFLCAweEU0LCAweEU0LCAweDY2LCAweEMwLCAweDMyLCAweDc2LCAweDZFLAorICAgIDB4
ODAsIDB4ODcsIDB4OTYsIDB4MkYsIDB4MzYsIDB4REYsIDB4OUQsIDB4RkYsIDB4OEIsIDB4NTYs
IDB4N0YsIDB4MzcsCisgICAgMHg2MywgMHgwMSwgMHg1QiwgMHgxOSwgMHg5MCwgMHhBNiwgMHgw
RSwgMHgxNCwKKyAgICAvLyB5LWNvb3JkaW5hdGUKKyAgICAweDIyLAorICAgIC8vIEJ5dGVzKDMy
KQorICAgIDB4NTgsIDB4MjAsCisgICAgLy8gQnl0ZSBhcnJheSBjb250ZW50CisgICAgMHgyNywg
MHhERSwgMHg2MSwgMHgyRCwgMHg2NiwgMHg0MSwgMHg4QiwgMHhEQSwgMHgxOSwgMHg1MCwgMHg1
OCwgMHgxRSwKKyAgICAweEJDLCAweDVDLCAweDhDLCAweDFELCAweEFELCAweDcxLCAweDBDLCAw
eEIxLCAweDRDLCAweDIyLCAweEY4LCAweEM5LAorICAgIDB4NzAsIDB4NDUsIDB4RjQsIDB4NjEs
IDB4MkYsIDB4QjIsIDB4MEMsIDB4OTEsCit9OworCiBjb25zdGV4cHIgdWludDhfdCBrQ3RhcENs
aWVudFBpblJldHJpZXNSZXNwb25zZVtdID0gewogICAgIC8vIFN1Y2Nlc3MKICAgICAweDAwLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IDY2Zjc0ZDM4MmRjNGQwZGNi
ZWM1YTZmYTQwNmQ0YzQ0NzllZjljOGMuLjJlZmJkOTA5MmFlZjU3NGM5MzI3OGRjOGQxZGFjYmM5
YTFmZDUzYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTQ1LDYg
KzQ1LDcgQEAgc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5lbFN1Y2NlZGVkID0gZmFs
c2U7CiBzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTXVsdGlwbGVORkNU
YWdzUHJlc2VudCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5lbFVw
ZGF0ZU5vQ3JlZGVudGlhbHNGb3VuZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2ViQXV0aGVudGlj
YXRpb25QYW5lbENhbmNlbEltbWVkaWF0ZWx5ID0gZmFsc2U7CitzdGF0aWMgU3RyaW5nIHdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxQaW47CiAKIEBpbnRlcmZhY2UgVGVzdFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdh
dGU+CiBAZW5kCkBAIC04Myw2ICs4NCwxMyBAQCAtICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsICopcGFuZWwgZGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaQogICAg
IH0KIH0KIAorLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVs
IHJlcXVlc3RQSU5XaXRoUmVtYWluaW5nUmV0cmllczooTlNVSW50ZWdlcilyZXRyaWVzIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFuZGxlcgorewor
ICAgIEFTU0VSVF9ORShwYW5lbCwgbmlsKTsKKyAgICBFWFBFQ1RfRVEocmV0cmllcywgOHVsKTsK
KyAgICBjb21wbGV0aW9uSGFuZGxlcih3ZWJBdXRoZW50aWNhdGlvblBhbmVsUGluKTsKK30KKwog
QGVuZAogCiBAaW50ZXJmYWNlIFRlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsRmFrZURlbGVnYXRl
IDogTlNPYmplY3QgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4KQEAgLTc0MCw2
ICs3NDgsMTMxIEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDdGFwTm9D
cmVkZW50aWFsc0ZvdW5kQ2FuY2VsTm9DcmFzaCkKICAgICBVdGlsOjpydW4oJndlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRlbnRpYWxzRm91bmQpOwogfQogCitURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIFBpbkdldFJldHJpZXNFcnJvcikKK3sKKyAgICByZXNldCgpOworICAg
IFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0
LXJldHJpZXMtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiVW5rbm93
biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29kZTogMiJdOworfQorCitURVNUKFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwsIFBpbkdldEtleUFncmVlbWVudEVycm9yKQoreworICAgIHJlc2V0KCk7Cisg
ICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1n
ZXQta2V5LWFncmVlbWVudC1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXSk7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6
QCJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiAyIl07Cit9CisKK1RFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVxdWVzdFBpbkVycm9yTm9EZWxlZ2F0ZSkKK3sKKyAg
ICByZXNldCgpOworICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOworCisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMg
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0p
OworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
dGVzdFVSTC5nZXQoKV1dOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiUGluIGlzIG5v
dCB2YWxpZDogIl07Cit9CisKK1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVxdWVz
dFBpbkVycm9yTnVsbERlbGVnYXRlKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5T
VVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndl
Yi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBh
dXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmln
dXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRl
cm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3Qg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
KyAgICBbZGVsZWdhdGUgc2V0SXNOdWxsOnRydWVdOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZv
ck1lc3NhZ2U6QCJQaW4gaXMgbm90IHZhbGlkOiAiXTsKK30KKworVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBQaW5SZXF1ZXN0UGluRXJyb3IpCit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRh
aW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
KworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVz
dF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0lu
V2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNa
ZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisg
ICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFBpbiA9ICIxMjMiOworICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAg
IFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiUGluIGlzIG5vdCB2YWxpZDogMTIzIl07Cit9CisK
K1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0UGluVG9rZW5FcnJvcikKK3sKKyAg
ICByZXNldCgpOworICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2Vi
VmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIHdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxQaW4gPSAiMTIzNCI7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZv
ck1lc3NhZ2U6QCJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiAyIl07Cit9CisK
K1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW4pCit7CisgICAg
cmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1oaWQtcGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJl
KCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsK
KyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVs
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVs
ZWdhdGUuZ2V0KCldOworCisgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFBpbiA9ICIxMjM0IjsK
KyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRl
c3RVUkwuZ2V0KCldXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1Y2NlZWRlZCEi
XTsKK30KKworVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25QaW4pCit7
CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24taGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllF
UyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25Q
YW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRl
OmRlbGVnYXRlLmdldCgpXTsKKworICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxQaW4gPSAiMTIz
NCI7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDp0ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJTdWNjZWVk
ZWQhIl07Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi5odG1s
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMxZWIzYmZlMWUyY2Jj
YjUyMTRhMzZlZDY4NGIwNTI0OTY4MmIxNAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24taGlkLXBpbi5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
aW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0Q3RhcFBpbkF1dGhJbnZhbGlkRXJyb3JC
YXNlNjQgPSAiTXc9PSI7CisgICAgY29uc3QgdGVzdFBpbkdldFJldHJpZXNSZXNwb25zZUJhc2U2
NCA9ICJBS0VEQ0E9PSI7CisgICAgY29uc3QgdGVzdFBpbkdldEtleUFncmVlbWVudFJlc3BvbnNl
QmFzZTY0ID0gIkFLRUJwUUVDQXpnWUlBRWhXQ0RvZGlXSmJ1VGtiY0F5ZG02QWg1WXZOdCtkL290
V2Z6ZGpBVnNaa0tZT0ZDSllJQ2ZlWVMxbVFZdmFHVkJZSHJ4Y2pCMnRjUXl4VENMNHlYQkY5R0V2
c2d5UiI7CisgICAgY29uc3QgdGVzdFBpbkdldFBpblRva2VuUmVzcG9uc2VCYXNlNjQgPSAiQUtF
Q1VCT2s3cmNPeVJycUFCNlRGdlllUWZjPSI7CisgICAgY29uc3QgdGVzdEFzc2VydGlvbk1lc3Nh
Z2VCYXNlNjQgPQorICAgICAgICAiQUtNQm9tSnBaRmhBS0FpdHp1aitUc2x6ZWxmMy92WndJR3RE
UU5nb0tlRmQ1b0VpZVl6aHl6QTY1c2FmMHRLMiIgKworICAgICAgICAidy9tb29hN3RRdEdnRGR3
WklqT2hqY3VaMHBRMWFqb0U0R1IwZVhCbGFuQjFZbXhwWXkxclpYa0NXQ1ZHekgrNSIgKworICAg
ICAgICAiWjUxVnN0dVFrdUhJMmVYaDBDdDFnUEMwZ1N4M0NXTGg1STlhMkFFQUFBQlFBMWhITUVV
Q0lRQ1NGVHV1QldnQiIgKworICAgICAgICAiNC9GMFZCN0RsVVZNMDlJSFBteGUxTXpIVXdSb0NS
WmJDQUlnR0tvdjZ4b0F4Mk1FZjYvNnFOczhPdXR6aFAyQyIgKworICAgICAgICAiUW9KMUw3RmU2
NEc5dUJjPSI7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgaW50ZXJuYWxz
LnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3VwcG9ydENs
aWVudFBpbjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RDdGFwUGluQXV0aEludmFsaWRFcnJv
ckJhc2U2NCwgdGVzdFBpbkdldFJldHJpZXNSZXNwb25zZUJhc2U2NCwgdGVzdFBpbkdldEtleUFn
cmVlbWVudFJlc3BvbnNlQmFzZTY0LCB0ZXN0UGluR2V0UGluVG9rZW5SZXNwb25zZUJhc2U2NCwg
dGVzdEFzc2VydGlvbk1lc3NhZ2VCYXNlNjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRo
VXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5mb2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25z
dCBvcHRpb25zID0geworICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIGNoYWxsZW5n
ZTogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAgdGltZW91dDogMTAwCisgICAgICAg
IH0KKyAgICB9OworCisgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKS50aGVu
KGNyZWRlbnRpYWwgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZygiU3VjY2VlZGVkISIpOwor
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVz
c2FnZSgiU3VjY2VlZGVkISIpOworICAgIH0sIGVycm9yID0+IHsKKyAgICAgICAgLy8gY29uc29s
ZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGVycm9yLm1lc3NhZ2UpOworICAgIH0pOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVl
bWVudC1lcnJvci5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93
ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1l
bnQtZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44M2FjYTk4Nzk0YjhhZTk0YWFlMTBmN2FmYWY3MjZh
ZWFjOTJkOWMxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0
LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+CisgICAgY29uc3QgdGVzdEN0YXBQaW5JbnZhbGlk
RXJyb3JCYXNlNjQgPSAiTVE9PSI7CisgICAgY29uc3QgdGVzdFBpbkdldFJldHJpZXNSZXNwb25z
ZUJhc2U2NCA9ICJBS0VEQ0E9PSI7CisgICAgY29uc3QgdGVzdEN0YXBJbnZhbGlkUGFyYW1ldGVy
RXJyb3JCYXNlNjQgPSAiQWc9PSI7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBoaWQ6
IHsgc3VwcG9ydENsaWVudFBpbjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RDdGFwUGluSW52
YWxpZEVycm9yQmFzZTY0LCB0ZXN0UGluR2V0UmV0cmllc1Jlc3BvbnNlQmFzZTY0LCB0ZXN0Q3Rh
cEludmFsaWRQYXJhbWV0ZXJFcnJvckJhc2U2NF0gfSB9KTsKKyAgICAgICAgaW50ZXJuYWxzLndp
dGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOworICAgIH0KKworICAgIGNv
bnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgcnA6IHsK
KyAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwK
KyAgICAgICAgICAgICAgICBpZDogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAgICAg
IGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBj
aGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgIHB1YktleUNyZWRQYXJh
bXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQorICAgICAgICB9CisgICAgfTsK
KworICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50
aWFsID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coIlN1Y2NlZWRlZCEiKTsKKyAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN1
Y2NlZWRlZCEiKTsKKyAgICB9LCBlcnJvciA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKGVy
cm9yLm1lc3NhZ2UpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
SGFuZGxlci5wb3N0TWVzc2FnZShlcnJvci5tZXNzYWdlKTsKKyAgICB9KTsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5o
dG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGlj
YXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ5OTE1YjNmOGZmZGViYTI4OTk2MjM3NmI2NDNjZjk5NmZhMGE4ZmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWVycm9y
Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dCI+Cis8
c2NyaXB0PgorICAgIGNvbnN0IHRlc3RDdGFwUGluSW52YWxpZEVycm9yQmFzZTY0ID0gIk1RPT0i
OworICAgIGNvbnN0IHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQgPSAiQUtFRENBPT0i
OworICAgIGNvbnN0IHRlc3RQaW5HZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCA9ICJBS0VC
cFFFQ0F6Z1lJQUVoV0NEb2RpV0pidVRrYmNBeWRtNkFoNVl2TnQrZC9vdFdmemRqQVZzWmtLWU9G
Q0pZSUNmZVlTMW1RWXZhR1ZCWUhyeGNqQjJ0Y1F5eFRDTDR5WEJGOUdFdnNneVIiOworICAgIGNv
bnN0IHRlc3RDdGFwSW52YWxpZFBhcmFtZXRlckVycm9yQmFzZTY0ID0gIkFnPT0iOworICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46IHRydWUsIHBh
eWxvYWRCYXNlNjQ6IFt0ZXN0Q3RhcFBpbkludmFsaWRFcnJvckJhc2U2NCwgdGVzdFBpbkdldFJl
dHJpZXNSZXNwb25zZUJhc2U2NCwgdGVzdFBpbkdldEtleUFncmVlbWVudFJlc3BvbnNlQmFzZTY0
LCB0ZXN0Q3RhcEludmFsaWRQYXJhbWV0ZXJFcnJvckJhc2U2NF0gfSB9KTsKKyAgICAgICAgaW50
ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOworICAgIH0K
KworICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAg
ICAgcnA6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBw
bGVzZWVkIiwKKyAgICAgICAgICAgICAgICBpZDogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAg
ICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgIHB1Yktl
eUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQorICAgICAgICB9
CisgICAgfTsKKworICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhl
bihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coIlN1Y2NlZWRlZCEiKTsK
KyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoIlN1Y2NlZWRlZCEiKTsKKyAgICB9LCBlcnJvciA9PiB7CisgICAgICAgIC8vIGNvbnNv
bGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShlcnJvci5tZXNzYWdlKTsKKyAgICB9KTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMt
ZXJyb3IuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2JkMTE1N2M0MWNmOGMzZDM3ZDllODMyNDcwMzM1YjM2ZTcxYjAxZQot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
d2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVy
cm9yLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dCI+
Cis8c2NyaXB0PgorICAgIGNvbnN0IHRlc3RDdGFwUGluSW52YWxpZEVycm9yQmFzZTY0ID0gIk1R
PT0iOworICAgIGNvbnN0IHRlc3RDdGFwSW52YWxpZFBhcmFtZXRlckVycm9yQmFzZTY0ID0gIkFn
PT0iOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQ
aW46IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0Q3RhcFBpbkludmFsaWRFcnJvckJhc2U2NCwg
dGVzdEN0YXBJbnZhbGlkUGFyYW1ldGVyRXJyb3JCYXNlNjRdIH0gfSk7CisgICAgICAgIGludGVy
bmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5mb2N1cygpOyB9KTsKKyAgICB9CisK
KyAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAg
IHJwOiB7CisgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxl
c2VlZCIsCisgICAgICAgICAgICAgICAgaWQ6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAg
ICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgY2hhbGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICBwdWJLZXlD
cmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0KKyAgICAgICAgfQor
ICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4o
Y3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKCJTdWNjZWVkZWQhIik7Cisg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4geworICAgICAgICAvLyBjb25zb2xl
LmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVzc2FnZSk7CisgICAgfSk7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
d2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkLXBpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWEwZmY1MTZlOWI2MjY4MDFhNDhm
Njc1YmQwNjkxNmY4ZGFiNDAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlk
LXBpbi5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQi
PgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0Q3RhcFBpbkF1dGhJbnZhbGlkRXJyb3JCYXNlNjQg
PSAiTXc9PSI7CisgICAgY29uc3QgdGVzdFBpbkdldFJldHJpZXNSZXNwb25zZUJhc2U2NCA9ICJB
S0VEQ0E9PSI7CisgICAgY29uc3QgdGVzdFBpbkdldEtleUFncmVlbWVudFJlc3BvbnNlQmFzZTY0
ID0gIkFLRUJwUUVDQXpnWUlBRWhXQ0RvZGlXSmJ1VGtiY0F5ZG02QWg1WXZOdCtkL290V2Z6ZGpB
VnNaa0tZT0ZDSllJQ2ZlWVMxbVFZdmFHVkJZSHJ4Y2pCMnRjUXl4VENMNHlYQkY5R0V2c2d5UiI7
CisgICAgY29uc3QgdGVzdFBpbkdldFBpblRva2VuUmVzcG9uc2VCYXNlNjQgPSAiQUtFQ1VCT2s3
cmNPeVJycUFCNlRGdlllUWZjPSI7CisgICAgY29uc3QgdGVzdENyZWF0aW9uTWVzc2FnZUJhc2U2
NCA9CisgICAgICAgICJBS01CWm5CaFkydGxaQUpZeEViTWY3bG5uVld5MjVDUzRjalo1ZUhRSzNX
QThMU0JMSGNKWXVIa2oxcllRUUFBIiArCisgICAgICAgICJBRTc0b0JIempBcE5GWUFHRnhFZm50
eDlBRUFvQ0szTzZQNU95WE42Vi9mKzluQWdhME5BMkNncDRWM21nU0o1IiArCisgICAgICAgICJq
T0hMTURybXhwL1MwcmJEK2FpaHJ1MUMwYUFOM0JraU02R055NW5TbERWcU9nVGdwUUVDQXlZZ0FT
RllJRUZiIiArCisgICAgICAgICJoZTNSa051ZDZzZ3lyYUJHamxoMXB6VGxDWmVoUWxML2IxOEha
NldHSWxnZ0pnZlVkL2VuOXA1QUlxTVFiVW5pIiArCisgICAgICAgICJuRWVYZEZMa3ZXMC96VjVC
cEVqak54QURvMk5oYkdjbVkzTnBaMWhITUVVQ0lRREtnK1pCbUVCdGYwbFdxNFJlIiArCisgICAg
ICAgICJkSDQvaS9MT1lxT1I0dVIyTkFqMnpRbXc5UUlnYlRYYjRodkZiajRUMjdidi9yR3JjK3kr
MHB1b1lPQmtCazlQIiArCisgICAgICAgICJtQ2V3V2xOamVEVmpnVmtDd2pDQ0FyNHdnZ0dtb0FN
Q0FRSUNCSFNHL2NJd0RRWUpLb1pJaHZjTkFRRUxCUUF3IiArCisgICAgICAgICJMakVzTUNvR0Ex
VUVBeE1qV1hWaWFXTnZJRlV5UmlCU2IyOTBJRU5CSUZObGNtbGhiQ0EwTlRjeU1EQTJNekV3IiAr
CisgICAgICAgICJJQmNOTVRRd09EQXhNREF3TURBd1doZ1BNakExTURBNU1EUXdNREF3TURCYU1H
OHhDekFKQmdOVkJBWVRBbE5GIiArCisgICAgICAgICJNUkl3RUFZRFZRUUtEQWxaZFdKcFkyOGdR
VUl4SWpBZ0JnTlZCQXNNR1VGMWRHaGxiblJwWTJGMGIzSWdRWFIwIiArCisgICAgICAgICJaWE4w
WVhScGIyNHhLREFtQmdOVkJBTU1IMWwxWW1samJ5QlZNa1lnUlVVZ1UyVnlhV0ZzSURFNU5UVXdN
RE00IiArCisgICAgICAgICJOREl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNW
WGZPdDl5UjlNWFh2L1p6RTh4cE9oNDY2IiArCisgICAgICAgICI0WUVKVm1GUSt6aUxMbDlsSjc5
WFFKcWxnYVVOQ3NVdkdFUmNDaE5VaWhOVHlLVGxtbkJPVWp2QVRldnRvMnd3IiArCisgICAgICAg
ICJhakFpQmdrckJnRUVBWUxFQ2dJRUZURXVNeTQyTGpFdU5DNHhMalF4TkRneUxqRXVNVEFUQmdz
ckJnRUVBWUxsIiArCisgICAgICAgICJIQUlCQVFRRUF3SUZJREFoQmdzckJnRUVBWUxsSEFFQkJB
UVNCQkQ0b0JIempBcE5GWUFHRnhFZm50eDlNQXdHIiArCisgICAgICAgICJBMVVkRXdFQi93UUNN
QUF3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQURGY1NJRG1tbEorT0dhSnZXbjlDcWh2IiArCisg
ICAgICAgICJTZXVlVG9WRlFWVnZxdEFMT2dDS0hkd0IrV3gyOW1nMkdwSGlNc2dRcDV4akIweWJi
bnBHNngyMTJGeEVTSitHIiArCisgICAgICAgICJpblpEMGlwY2hpN0FQd1BsaEl2amdIMTZ6Vlg0
NGE0ZTRoT3NjNnRMSU9QNzFTYU1zSHVIZ0NjZEgwdmc1ZDJzIiArCisgICAgICAgICJjMDA2V0pl
OVRYTzZmelYrb2dqSm5ZcE5LUUxtQ1hvQVhFM0pCTndLR0JJT0N2ZlFEUHlXbWlpRzViR3hZZlB0
IiArCisgICAgICAgICJ5OFozcG5qWCsxTURuTTJoaHI0MHVsTXhsU05EblgvWlNuRHlNR0liazhU
T1FtalRGMDJVTzhhdVA4azN3dDVEIiArCisgICAgICAgICIxclJPSVJVOStGQ1NYNVdRWWk2OFJ1
RHJHTVpCOFA1K2J5b0pxYktRZHhuMkxtRTFvWkF5b2hQQW1MY29QTzQ9IjsKKyAgICBpZiAod2lu
ZG93LmludGVybmFscykgeworICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0
aW9uQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdXBwb3J0Q2xpZW50UGluOiB0cnVlLCBwYXlsb2Fk
QmFzZTY0OiBbdGVzdEN0YXBQaW5BdXRoSW52YWxpZEVycm9yQmFzZTY0LCB0ZXN0UGluR2V0UmV0
cmllc1Jlc3BvbnNlQmFzZTY0LCB0ZXN0UGluR2V0S2V5QWdyZWVtZW50UmVzcG9uc2VCYXNlNjQs
IHRlc3RQaW5HZXRQaW5Ub2tlblJlc3BvbnNlQmFzZTY0LCB0ZXN0Q3JlYXRpb25NZXNzYWdlQmFz
ZTY0XSB9IH0pOworICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsgaW5w
dXQuZm9jdXMoKTsgfSk7CisgICAgfQorCisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAg
cHVibGljS2V5OiB7CisgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgIG5hbWU6ICJs
b2NhbGhvc3QiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAg
ICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIGlkOiBuZXcg
VWludDhBcnJheSgxNiksCisgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQi
LAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXko
MTYpLAorICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXki
LCBhbGc6IC03IH1dCisgICAgICAgIH0KKyAgICB9OworCisgICAgbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAvLyBjb25z
b2xlLmxvZygiU3VjY2VlZGVkISIpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiU3VjY2VlZGVkISIpOworICAgIH0sIGVycm9y
ID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGVycm9y
Lm1lc3NhZ2UpOworICAgIH0pOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386984</attachid>
            <date>2020-01-07 10:12:25 -0800</date>
            <delta_ts>2020-01-07 11:25:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191516-20200107101224.patch</filename>
            <type>text/plain</type>
            <size>85554</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY4YWIxMDU1YWZlOTBl
NTY5OTU5NGU0YmVjYmI1ZDcyNzdjNzZmNC4uZDQ2YjQyYTE0YjkyNjI1ZWQxZTkyYTNiNjVjNjBm
YTBiMTZiMGI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAxLTA2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBTdXBw
b3J0IENUQVAgQ2xpZW50IFBpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkxNTE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjU1ODU1OD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5
IEFQSSB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1
ZXN0Q29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OmVuY29kZU1ha2VDcmVkZW5pdGFsUmVx
dWVzdEFzQ0JPUik6CisgICAgICAgIChmaWRvOjplbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXND
Qk9SKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcDoKKyAgICAgICAg
KGZpZG86OnBpbjo6UmV0cmllc1Jlc3BvbnNlOjpwYXJzZSk6CisgICAgICAgIChmaWRvOjpwaW46
OlRva2VuUmVzcG9uc2U6OnBhcnNlKToKKyAgICAgICAgKGZpZG86OnBpbjo6VG9rZW5SZXF1ZXN0
Ojp0cnlDcmVhdGUpOgorICAgICAgICAoZmlkbzo6cGluOjplbmNvZGVBc0NCT1IpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmg6CisgICAgICAgICogY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0
b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpD
cnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQpOgorICAgICAgICAqIGNyeXB0
by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
cmFuc2Zvcm1BRVNfQ0JDKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19D
QkM6OnBsYXRmb3JtRW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQpOgorICAgICAgICAqIHRlc3RpbmcvTW9ja1dlYkF1dGhl
bnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1dlYkF1dGhl
bnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6SGlkQ29uZmlndXJhdGlvbjo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246Okhp
ZENvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICogdGVzdGluZy9Nb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uLmlkbDoKKwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gSXNzdWUgbWFjaCBsb29rdXAg
ZXh0ZW5zaW9uIHRvIGxhdW5jaCBzZXJ2aWNlcyBkYWVtb24gZm9yIE1haWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
OTljMzcyNzAxZmMzMzMwNDM0NDE5YTZkYTViMzY2YjE4N2E3ZjdlNy4uMGJiZTM4OWFkODNkZGFk
MDVlNDA2MzY2N2ZjZTIwMTE3YzJjZDE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAy
MC0wMS0wNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtX
ZWJBdXRobl0gU3VwcG9ydCBDVEFQIENsaWVudCBQaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTUxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTY1NTg1NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0b3JDbGllbnRQSU4gZnJvbSB0aGUg
c3BlYzoKKyAgICAgICAgaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1w
cy0yMDE5MDEzMC9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMt
MjAxOTAxMzAuaHRtbCNhdXRoZW50aWNhdG9yQ2xpZW50UElOCisgICAgICAgIFNwZWNpZmljYWxs
eSwgaXQgaW1wbGVtZW50cyBzZWN0aW9uIDUuNS4xLCA1LjUuMywgNS41LjQsIDUuNS43LCBhbmQg
NS41LjguCisKKyAgICAgICAgSGVyZSBpcyB0aGUgZmxvdyBob3cgbWFrZUNyZWRlbnRpYWwvZ2V0
QXNzZXJ0aW9uIHdvcmtzIHdpdGggYSBQSU4gaW4gb3VyIGltcGxlbWVudGF0aW9uOgorICAgICAg
ICAxLiBEZXRlcm1pbmUgaWYgdGhlIGNvbm5lY3RlZCBhdXRoZW50aWNhdG9yIGhhcyBhIFBJTjsK
KyAgICAgICAgMi4gSWYgeWVzLCBzZW5kIHRoZSBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb24g
cmVxdWVzdCB0byB0aGUgYXV0aGVudGljYXRvciB3aXRoIGFuIGVtcHR5IHBpbkF1dGgKKyAgICAg
ICAgc3VjaCB0aGF0IHRoZSBhdXRoZW50aWNhdG9yIHdpbGwgd2luayBmb3IgdXNlciBnZXN0dXJl
cy4gVGhpcyBzdGVwIGludGVuZHMgdG8gY29uZmlybSB0aGUgYXV0aGVudGljYXRvcgorICAgICAg
ICBpcyB0aGUgb25lIHRoZSB1c2VyIHdhbnRzIHRvIHVzZS4gT3RoZXJ3aXNlLCB3ZSBkb24ndCBr
bm93IHdoaWNoIGF1dGhlbnRpY2F0b3IgdG8gc2VuZCB0aGUgUElOCisgICAgICAgIGlmIG11bHRp
cGxlIGFyZSBjb25uZWN0ZWQ7CisgICAgICAgIDMuIE9uY2UgdGhlIHVzZXIgY29uZmlybXMgdGhl
IGF1dGhldG5pY2F0b3IsIGl0IHdpbGwgcmV0dXJuIGVpdGhlciBDVEFQMl9FUlJfUElOX0lOVkFM
SUQgb3IKKyAgICAgICAgQ1RBUDJfRVJSX1BJTl9BVVRIX0lOVkFMSUQuIFNvbWUgYXV0aGVudGlj
YXRvcnMgcmV0dXJuIENUQVAyX0VSUl9QSU5fQVVUSF9JTlZBTElEIGV2ZW4gdGhvdWdoCisgICAg
ICAgIGl0IGlzIG5vdCBzdWdnZXN0ZWQgYnkgdGhlIHNwZWM7CisgICAgICAgIDQuIEdldCByZXRy
aWVzIGZyb20gdGhlIGF1dGhlbnRpY2F0b3I7CisgICAgICAgIDUuIEdldCBrZXkgYWdyZWVtZW50
IGZyb20gdGhlIGF1dGhlbnRpY2F0b3I7CisgICAgICAgIDYuIEFzayB0aGUgVUkgY2xpZW50IGZv
ciB0aGUgUElOIGFuZCBhdCB0aGUgbWVhbnRpbWUgaW5mb3JtIGl0IHRoZSByZXRyaWVzOworICAg
ICAgICA3LiBHZXQgcGluIHRva2VuIGZyb20gdGhlIGF1dGhlbnRpY2F0b3I7CisgICAgICAgIDgu
IFJlc2VuZCB0aGUgbWFrZUNyZWRlbnRpYWwvZ2V0QXNzZXJ0aW9uIHJlcXVlc3Qgd2l0aCB0aGUg
ZGVzaXJlZCBwaW5BdXRoLgorCisgICAgICAgIEJlc2lkZXMgaW1wbGVtZW50YXRpbmcgdGhlIGFi
b3ZlIGZsb3csIHRoaXMgcGF0Y2ggYWxzbyBmaXhlcyBzb21lIGJ1Z3Mgd2l0aGluIHRoZSBQSU4g
Y29tbWFuZHMgZW5jb2RlcjoKKyAgICAgICAgMS4gcGluQXV0aC9waW5Qcm90b2NvbCBhcmUgd3Jv
bmdseSBlbmNvZGVkIGZvciBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb247CisgICAgICAgIDIu
IEFFUyBDQkMgc2hvdWxkIGJlIGNhbGxlZCB3aXRob3V0IGFueSBwYWRkaW5nLiBUaGVyZWZvcmUs
IENyeXB0b0FsZ29yaXRobUFFU19DQkMgYWRkcyBhIG5vIHBhZGRpbmcgbW9kZTsKKyAgICAgICAg
My4gVGhlIHNoYXJlZFNlY3JldCBpcyB0aGUgU0hBMjU2IGRpZ2VzdCBvZiB0aGUgRUNESCBrZXkg
YWdyZWVtZW50IGluc3RlYWQgb2YgdGhlIHJhdyBrZXkgYWdyZWVtZW50LgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6CisgICAgICAg
IChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OnJlcXVlc3RQaW4gY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6OnJlcXVlc3RQaW4p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJB
dXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW06CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OldlYkF1dGhlbnRpY2F0aW9u
UGFuZWxDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xp
ZW50OjpyZXF1ZXN0UGluIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vTW9jay9Nb2NrSGlkQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vY2tI
aWRDb25uZWN0aW9uOjpmZWVkUmVwb3J0cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpD
dGFwQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0OjpDdGFw
QXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZl
ZCk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpnZXRBc3NlcnRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25B
ZnRlclJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRv
cjo6Z2V0UmV0cmllcyk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250
aW51ZUdldEtleUFncmVlbWVudEFmdGVyR2V0UmV0cmllcyk6CisgICAgICAgIChXZWJLaXQ6OkN0
YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZVJlcXVlc3RQaW5BZnRlckdldEtleUFncmVlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldFBpblRva2Vu
QWZ0ZXJSZXF1ZXN0UGluKToKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmNv
bnRpbnVlUmVxdWVzdEFmdGVyR2V0UGluVG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0
aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZlZCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2Zp
ZG8vQ3RhcEF1dGhlbnRpY2F0b3IuaDoKKwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFuICA8
cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gSXNzdWUgbWFjaCBsb29rdXAgZXh0
ZW5zaW9uIHRvIGxhdW5jaCBzZXJ2aWNlcyBkYWVtb24gZm9yIE1haWwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0
Q29udmVydGVyLmNwcAppbmRleCBiOTZkYWJiNTk4NjljNDI1YmRiYmE0N2U5M2Y1ZDMwMDk4YWE5
ZDg5Li4xNTVlNWQxZWUyZTNmODVkNzQ0OTIwZTRhYTM4YjllOGQ5YTcyNjQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZl
cnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0Rldmlj
ZVJlcXVlc3RDb252ZXJ0ZXIuY3BwCkBAIC0xMjYsOCArMTI2LDggQEAgVmVjdG9yPHVpbnQ4X3Q+
IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4m
IGhhc2gsIGMKIAogICAgIGlmIChwaW4pIHsKICAgICAgICAgQVNTRVJUKHBpbi0+cHJvdG9jb2wg
Pj0gMCk7Ci0gICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDgpXSA9IENCT1JWYWx1ZShwaW4tPnBy
b3RvY29sKTsKLSAgICAgICAgY2Jvck1hcFtDQk9SVmFsdWUoOSldID0gQ0JPUlZhbHVlKFdURk1v
dmUocGluLT5hdXRoKSk7CisgICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDgpXSA9IENCT1JWYWx1
ZShXVEZNb3ZlKHBpbi0+YXV0aCkpOworICAgICAgICBjYm9yTWFwW0NCT1JWYWx1ZSg5KV0gPSBD
Qk9SVmFsdWUocGluLT5wcm90b2NvbCk7CiAgICAgfQogCiAgICAgYXV0byBzZXJpYWxpemVkUGFy
YW0gPSBDQk9SV3JpdGVyOjp3cml0ZShDQk9SVmFsdWUoV1RGTW92ZShjYm9yTWFwKSkpOwpAQCAt
MTcyLDggKzE3Miw4IEBAIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0
QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uCiAKICAgICBpZiAocGluKSB7
CiAgICAgICAgIEFTU0VSVChwaW4tPnByb3RvY29sID49IDApOwotICAgICAgICBjYm9yTWFwW0NC
T1JWYWx1ZSg4KV0gPSBDQk9SVmFsdWUocGluLT5wcm90b2NvbCk7Ci0gICAgICAgIGNib3JNYXBb
Q0JPUlZhbHVlKDkpXSA9IENCT1JWYWx1ZShXVEZNb3ZlKHBpbi0+YXV0aCkpOworICAgICAgICBj
Ym9yTWFwW0NCT1JWYWx1ZSg2KV0gPSBDQk9SVmFsdWUoV1RGTW92ZShwaW4tPmF1dGgpKTsKKyAg
ICAgICAgY2Jvck1hcFtDQk9SVmFsdWUoNyldID0gQ0JPUlZhbHVlKHBpbi0+cHJvdG9jb2wpOwog
ICAgIH0KIAogICAgIGF1dG8gc2VyaWFsaXplZFBhcmFtID0gQ0JPUldyaXRlcjo6d3JpdGUoQ0JP
UlZhbHVlKFdURk1vdmUoY2Jvck1hcCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1Bpbi5jcHAKaW5kZXggN2YwYzY1OWQ4NGQxYmQyN2QyYTU2Yjg0YmVlOTE4ZWY1
ODMyNmEzOC4uZTE5YTFkM2MzYjA1ZDA5OTk3MGNhODhjZTcyM2JkOTY5MmI1MmNhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKQEAgLTEyNiw3ICsx
MjYsNyBAQCBPcHRpb25hbDxSZXRyaWVzUmVzcG9uc2U+IFJldHJpZXNSZXNwb25zZTo6cGFyc2Uo
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpbkJ1ZmZlcgogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCiAgICAgUmV0cmllc1Jlc3BvbnNlIHJldDsKLSAgICByZXQucmV0cmllcyA9IHN0YXRp
Y19jYXN0PGludDY0X3Q+KGl0LT5zZWNvbmQuZ2V0VW5zaWduZWQoKSk7CisgICAgcmV0LnJldHJp
ZXMgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaXQtPnNlY29uZC5nZXRVbnNpZ25lZCgpKTsKICAg
ICByZXR1cm4gcmV0OwogfQogCkBAIC0yMjcsNyArMjI3LDcgQEAgT3B0aW9uYWw8VG9rZW5SZXNw
b25zZT4gVG9rZW5SZXNwb25zZTo6cGFyc2UoY29uc3QgV2ViQ29yZTo6Q3J5cHRvS2V5QUVTJiBz
aGFyZWQKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBjb25zdCBhdXRvJiBlbmNy
eXB0ZWRUb2tlbiA9IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOwogCi0gICAgYXV0byB0b2tl
blJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdCh7IH0sIHNo
YXJlZEtleSwgZW5jcnlwdGVkVG9rZW4pOworICAgIGF1dG8gdG9rZW5SZXN1bHQgPSBDcnlwdG9B
bGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQoeyB9LCBzaGFyZWRLZXksIGVuY3J5cHRl
ZFRva2VuLCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpQYWRkaW5nOjpObyk7CiAgICAgaWYgKHRv
a2VuUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owog
ICAgIGF1dG8gdG9rZW4gPSB0b2tlblJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKQEAgLTI2
NywxMSArMjY3LDE2IEBAIE9wdGlvbmFsPFRva2VuUmVxdWVzdD4gVG9rZW5SZXF1ZXN0Ojp0cnlD
cmVhdGUoY29uc3QgQ1N0cmluZyYgcGluLCBjb25zdCBDcnlwdG9LCiAgICAgQVNTRVJUKCFrZXlQ
YWlyUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKTsKICAgICBhdXRvIGtleVBhaXIgPSBrZXlQYWlyUmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCi0gICAgLy8gMi4gVXNlIEVDREggdG8gY29tcHV0
ZSB0aGUgc2hhcmVkIEFFUy1DQkMga2V5LgorICAgIC8vIDIuIFVzZSBFQ0RIIGFuZCBTSEEtMjU2
IHRvIGNvbXB1dGUgdGhlIHNoYXJlZCBBRVMtQ0JDIGtleS4KICAgICBhdXRvIHNoYXJlZEtleVJl
c3VsdCA9IENyeXB0b0FsZ29yaXRobUVDREg6OnBsYXRmb3JtRGVyaXZlQml0cyhkb3duY2FzdDxD
cnlwdG9LZXlFQz4oKmtleVBhaXIucHJpdmF0ZUtleSksIHBlZXJLZXkpOwogICAgIGlmICghc2hh
cmVkS2V5UmVzdWx0KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGF1dG8gc2hh
cmVkS2V5ID0gQ3J5cHRvS2V5QUVTOjppbXBvcnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6QUVTX0NCQywgV1RGTW92ZSgqc2hhcmVkS2V5UmVzdWx0KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNh
Z2VFbmNyeXB0IHwgQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0KTsKKworICAgIGF1dG8gY3J5cHRvID0g
UEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZShQQUw6OkNyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpT
SEFfMjU2KTsKKyAgICBjcnlwdG8tPmFkZEJ5dGVzKHNoYXJlZEtleVJlc3VsdC0+ZGF0YSgpLCBz
aGFyZWRLZXlSZXN1bHQtPnNpemUoKSk7CisgICAgYXV0byBzaGFyZWRLZXlIYXNoID0gY3J5cHRv
LT5jb21wdXRlSGFzaCgpOworCisgICAgYXV0byBzaGFyZWRLZXkgPSBDcnlwdG9LZXlBRVM6Omlt
cG9ydFJhdyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDLCBXVEZNb3ZlKHNoYXJl
ZEtleUhhc2gpLCB0cnVlLCBDcnlwdG9LZXlVc2FnZUVuY3J5cHQgfCBDcnlwdG9LZXlVc2FnZURl
Y3J5cHQpOwogICAgIEFTU0VSVChzaGFyZWRLZXkpOwogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBl
bmNvZGVzIHRoZSBwdWJsaWMga2V5IG9mIHRoZSBhYm92ZSBrZXkgcGFpciBpbnRvIENPU0UgZm9y
bWF0LgpAQCAtMjgwLDcgKzI4NSw3IEBAIE9wdGlvbmFsPFRva2VuUmVxdWVzdD4gVG9rZW5SZXF1
ZXN0Ojp0cnlDcmVhdGUoY29uc3QgQ1N0cmluZyYgcGluLCBjb25zdCBDcnlwdG9LCiAgICAgYXV0
byBjb3NlS2V5ID0gZW5jb2RlQ09TRVB1YmxpY0tleShyYXdQdWJsaWNLZXlSZXN1bHQucmV0dXJu
VmFsdWUoKSk7CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGNhbGN1bGF0ZXMgYSBTSEEtMjU2IGRp
Z2VzdCBvZiB0aGUgUElOLCBhbmQgc2hyaW5rIHRvIHRoZSBsZWZ0IDE2IGJ5dGVzLgotICAgIGF1
dG8gY3J5cHRvID0gUEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZShQQUw6OkNyeXB0b0RpZ2VzdDo6
QWxnb3JpdGhtOjpTSEFfMjU2KTsKKyAgICBjcnlwdG8gPSBQQUw6OkNyeXB0b0RpZ2VzdDo6Y3Jl
YXRlKFBBTDo6Q3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yNTYpOwogICAgIGNyeXB0by0+
YWRkQnl0ZXMocGluLmRhdGEoKSwgcGluLmxlbmd0aCgpKTsKICAgICBhdXRvIHBpbkhhc2ggPSBj
cnlwdG8tPmNvbXB1dGVIYXNoKCk7CiAgICAgcGluSGFzaC5zaHJpbmsoMTYpOwpAQCAtMzAyLDcg
KzMwNyw3IEBAIGNvbnN0IENyeXB0b0tleUFFUyYgVG9rZW5SZXF1ZXN0OjpzaGFyZWRLZXkoKSBj
b25zdAogCiBWZWN0b3I8dWludDhfdD4gZW5jb2RlQXNDQk9SKGNvbnN0IFRva2VuUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICBhdXRvIHJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBs
YXRmb3JtRW5jcnlwdCh7IH0sIHJlcXVlc3Quc2hhcmVkS2V5KCksIHJlcXVlc3QubV9waW5IYXNo
KTsKKyAgICBhdXRvIHJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRW5j
cnlwdCh7IH0sIHJlcXVlc3Quc2hhcmVkS2V5KCksIHJlcXVlc3QubV9waW5IYXNoLCBDcnlwdG9B
bGdvcml0aG1BRVNfQ0JDOjpQYWRkaW5nOjpObyk7CiAgICAgQVNTRVJUKCFyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpOwogCiAgICAgcmV0dXJuIGVuY29kZVBpbkNvbW1hbmQoU3ViY29tbWFuZDo6a0dl
dFBpblRva2VuLCBbY29zZUtleSA9IFdURk1vdmUocmVxdWVzdC5tX2Nvc2VLZXkpLCBlbmNyeXB0
ZWRQaW4gPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCldIChDQk9SVmFsdWU6Ok1hcFZhbHVl
KiBtYXApIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1Bpbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bp
bi5oCmluZGV4IDM1NzQzYTAwMzA3ZGNmYmQ5ZTQ4OGQ5NWQwYmUwYjI3NDgwZTU5NmIuLmY1YjFl
Y2EyZjU0YWIyNzJmNWY0ZDFmNTdjZGM1ODQ3MTI1MGIzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmgKQEAgLTc5LDcgKzc5LDcgQEAgZW51bSBjbGFzcyBS
ZXNwb25zZUtleSA6IHVpbnQ4X3QgewogCiAvLyBrUHJvdG9jb2xWZXJzaW9uIGlzIHRoZSB2ZXJz
aW9uIG9mIHRoZSBQSU4gcHJvdG9jb2wgdGhhdCB0aGlzIGNvZGUKIC8vIGltcGxlbWVudHMuCi1j
b25zdGV4cHIgaW50IGtQcm90b2NvbFZlcnNpb24gPSAxOworY29uc3RleHByIGludDY0X3Qga1By
b3RvY29sVmVyc2lvbiA9IDE7CiAKIC8vIGVuY29kZUNPU0VQdWJsaWNLZXkgdGFrZXMgYSByYXcg
RUNESDI1NiBwdWJsaWMga2V5IGFuZCByZXR1cm5zIGl0IGFzIGEgQ09TRSBzdHJ1Y3R1cmUuCiBX
RUJDT1JFX0VYUE9SVCBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGVuY29kZUNPU0VQdWJsaWNL
ZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpOwpAQCAtMTEwLDcgKzExMCw3IEBAIHN0cnVj
dCBSZXRyaWVzUmVzcG9uc2UgewogCiAgICAgLy8gcmV0cmllcyBpcyB0aGUgbnVtYmVyIG9mIFBJ
TiBhdHRlbXB0cyByZW1haW5pbmcgYmVmb3JlIHRoZSBhdXRoZW50aWNhdG9yCiAgICAgLy8gbG9j
a3MuCi0gICAgaW50IHJldHJpZXM7CisgICAgdWludDY0X3QgcmV0cmllczsKIAogcHJpdmF0ZToK
ICAgICBSZXRyaWVzUmVzcG9uc2UoKTsKQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAKICAg
ICAvLyBzaGFyZWRLZXkgcmV0dXJucyB0aGUgc2hhcmVkIEVDREgga2V5IHRoYXQgd2FzIHVzZWQg
dG8gZW5jcnlwdCB0aGUgUElOLgogICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGRlY3J5cHQgdGhl
IHJlc3BvbnNlLgotICAgIGNvbnN0IFdlYkNvcmU6OkNyeXB0b0tleUFFUyYgc2hhcmVkS2V5KCkg
Y29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgV2ViQ29yZTo6Q3J5cHRvS2V5QUVTJiBz
aGFyZWRLZXkoKSBjb25zdDsKIAogICAgIGZyaWVuZCBWZWN0b3I8dWludDhfdD4gZW5jb2RlQXND
Qk9SKGNvbnN0IFRva2VuUmVxdWVzdCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKaW5kZXggZmQ5ODkx
MmI3MGRjMGI1MWQxYjk4NzkwNjY0ZDcyYjQ2ZTM0MjhmZS4uMjczMjk4NWI3N2ZlZGZjMzk2NzRk
NDc0OWQ4OTU1MGEwYTE3MWMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaApAQCAtMzYsMTMgKzM2LDE4
IEBAIGNsYXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQyBm
aW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgorICAgIGVudW0gY2xhc3Mg
UGFkZGluZyA6IHVpbnQ4X3QgeworICAgICAgICBZZXMsCisgICAgICAgIE5vCisgICAgfTsKKwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkFFUy1DQkMiOwogICAg
IHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIg
PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOwogICAgIHN0YXRpYyBSZWY8Q3J5
cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIAogICAgIC8vIE9wZXJhdGlvbnMgY2FuIGJlIHBlcmZv
cm1lZCBkaXJlY3RseS4KLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVj
dG9yPHVpbnQ4X3Q+PiBwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2Jj
Q2ZiUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5QUVTJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4g
cGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYsIGNv
bnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IHBsYXRmb3JtRW5jcnlw
dChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlB
RVMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBQYWRkaW5nIHBhZGRpbmcgPSBQYWRkaW5nOjpZ
ZXMpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhf
dD4+IHBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJhbXMm
LCBjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBQYWRkaW5nIHBh
ZGRpbmcgPSBQYWRkaW5nOjpZZXMpOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRobUFF
U19DQkMoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAppbmRleCA5OGE2YjIx
OWJlMjAyZjMzNTM3OWE1NTE4Nzg2ZmNjMjRjY2EyMjUzLi5hNTFiNjZkOGRkZTgxMTM0YjU4MzBj
MmE2YTA5OWQ4MWFiMGNlZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dDcnlwdC5jcHAKQEAgLTE2Niw3
ICsxNjYsNyBAQCBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBnY3J5cHREZWNyeXB0
KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBjb25zdAogICAgIHJldHVybiBvdXRwdXQ7CiB9
CiAKLUV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6
cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYgcGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
cGxhaW5UZXh0KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFy
YW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiBwbGFpblRleHQsIFBhZGRpbmcpCiB7CiAgICAgYXV0byBvdXRwdXQgPSBnY3J5cHRF
bmNyeXB0KGtleS5rZXkoKSwgcGFyYW1ldGVycy5pdlZlY3RvcigpLCBWZWN0b3I8dWludDhfdD4o
cGxhaW5UZXh0KSk7CiAgICAgaWYgKCFvdXRwdXQpCkBAIC0xNzQsNyArMTc0LDcgQEAgRXhjZXB0
aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybUVu
Y3J5cHQoY29uc3QgQ3J5cHQKICAgICByZXR1cm4gV1RGTW92ZSgqb3V0cHV0KTsKIH0KIAotRXhj
ZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9y
bURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFyYW1zJiBwYXJhbWV0ZXJz
LCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjaXBoZXJU
ZXh0KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JD
OjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFyYW1zJiBw
YXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBjaXBoZXJUZXh0LCBQYWRkaW5nKQogewogICAgIGF1dG8gb3V0cHV0ID0gZ2NyeXB0RGVjcnlw
dChrZXkua2V5KCksIHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwgY2lwaGVyVGV4dCk7CiAgICAgaWYg
KCFvdXRwdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0Fs
Z29yaXRobUFFU19DQkNNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9B
bGdvcml0aG1BRVNfQ0JDTWFjLmNwcAppbmRleCA1MTdjZmM4OWI5NzM3MTQ5YzQ4MDdiODVhZDFm
MjBkZmEwYWFjMWRiLi5jNTdmMTA3OTlkMTEwYWIwYjRmYzFlOTJiMTcxNDQ2M2NmYjlkMzQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19D
QkNNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQ01hYy5jcHAKQEAgLTM0LDEwICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IHRyYW5zZm9ybUFFU19DQkMo
Q0NPcGVyYXRpb24gb3BlcmF0aW9uLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKQorc3RhdGlj
IEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gdHJhbnNmb3JtQUVTX0NCQyhDQ09wZXJhdGlv
biBvcGVyYXRpb24sIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaXYsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEsIENyeXB0b0FsZ29yaXRobUFF
U19DQkM6OlBhZGRpbmcgcGFkZGluZykKIHsKKyAgICBDQ09wdGlvbnMgb3B0aW9ucyA9IHBhZGRp
bmcgPT0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6UGFkZGluZzo6WWVzID8ga0NDT3B0aW9uUEtD
UzdQYWRkaW5nIDogMDsKICAgICBDQ0NyeXB0b3JSZWYgY3J5cHRvcjsKLSAgICBDQ0NyeXB0b3JT
dGF0dXMgc3RhdHVzID0gQ0NDcnlwdG9yQ3JlYXRlKG9wZXJhdGlvbiwga0NDQWxnb3JpdGhtQUVT
LCBrQ0NPcHRpb25QS0NTN1BhZGRpbmcsIGtleS5kYXRhKCksIGtleS5zaXplKCksIGl2LmRhdGEo
KSwgJmNyeXB0b3IpOworICAgIENDQ3J5cHRvclN0YXR1cyBzdGF0dXMgPSBDQ0NyeXB0b3JDcmVh
dGUob3BlcmF0aW9uLCBrQ0NBbGdvcml0aG1BRVMsIG9wdGlvbnMsIGtleS5kYXRhKCksIGtleS5z
aXplKCksIGl2LmRhdGEoKSwgJmNyeXB0b3IpOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCkBAIC00OSwxMCArNTAsMTIgQEAg
c3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gdHJhbnNmb3JtQUVTX0NCQyhDQ09w
ZXJhdGlvbiBvcGVyYXRpb24sIGNvbnMKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJh
dGlvbkVycm9yIH07CiAKICAgICB1aW50OF90KiBwID0gcmVzdWx0LmRhdGEoKSArIGJ5dGVzV3Jp
dHRlbjsKLSAgICBzdGF0dXMgPSBDQ0NyeXB0b3JGaW5hbChjcnlwdG9yLCBwLCByZXN1bHQuZW5k
KCkgLSBwLCAmYnl0ZXNXcml0dGVuKTsKLSAgICBwICs9IGJ5dGVzV3JpdHRlbjsKLSAgICBpZiAo
c3RhdHVzKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKKyAg
ICBpZiAocGFkZGluZyA9PSBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpQYWRkaW5nOjpZZXMpIHsK
KyAgICAgICAgc3RhdHVzID0gQ0NDcnlwdG9yRmluYWwoY3J5cHRvciwgcCwgcmVzdWx0LmVuZCgp
IC0gcCwgJmJ5dGVzV3JpdHRlbik7CisgICAgICAgIHAgKz0gYnl0ZXNXcml0dGVuOworICAgICAg
ICBpZiAoc3RhdHVzKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVy
cm9yIH07CisgICAgfQogCiAgICAgQVNTRVJUKHAgPD0gcmVzdWx0LmVuZCgpKTsKICAgICByZXN1
bHQuc2hyaW5rKHAgLSByZXN1bHQuYmVnaW4oKSk7CkBAIC02MiwxNiArNjUsMTggQEAgc3RhdGlj
IEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gdHJhbnNmb3JtQUVTX0NCQyhDQ09wZXJhdGlv
biBvcGVyYXRpb24sIGNvbnMKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCi1FeGNl
cHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3Jt
RW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJhbXMmIHBhcmFtZXRlcnMs
IGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHBsYWluVGV4
dCkKK0V4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6
cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYgcGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
cGxhaW5UZXh0LCBQYWRkaW5nIHBhZGRpbmcpCiB7CiAgICAgQVNTRVJUKHBhcmFtZXRlcnMuaXZW
ZWN0b3IoKS5zaXplKCkgPT0ga0NDQmxvY2tTaXplQUVTMTI4IHx8IHBhcmFtZXRlcnMuaXZWZWN0
b3IoKS5pc0VtcHR5KCkpOwotICAgIHJldHVybiB0cmFuc2Zvcm1BRVNfQ0JDKGtDQ0VuY3J5cHQs
IHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwga2V5LmtleSgpLCBwbGFpblRleHQpOworICAgIEFTU0VS
VChwYWRkaW5nID09IFBhZGRpbmc6OlllcyB8fCAhKHBsYWluVGV4dC5zaXplKCkgJSBrQ0NCbG9j
a1NpemVBRVMxMjgpKTsKKyAgICByZXR1cm4gdHJhbnNmb3JtQUVTX0NCQyhrQ0NFbmNyeXB0LCBw
YXJhbWV0ZXJzLml2VmVjdG9yKCksIGtleS5rZXkoKSwgcGxhaW5UZXh0LCBwYWRkaW5nKTsKIH0K
IAotRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpw
bGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFyYW1zJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBj
aXBoZXJUZXh0KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFy
YW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiBjaXBoZXJUZXh0LCBQYWRkaW5nIHBhZGRpbmcpCiB7CiAgICAgQVNTRVJUKHBhcmFt
ZXRlcnMuaXZWZWN0b3IoKS5zaXplKCkgPT0ga0NDQmxvY2tTaXplQUVTMTI4IHx8IHBhcmFtZXRl
cnMuaXZWZWN0b3IoKS5pc0VtcHR5KCkpOwotICAgIHJldHVybiB0cmFuc2Zvcm1BRVNfQ0JDKGtD
Q0RlY3J5cHQsIHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwga2V5LmtleSgpLCBjaXBoZXJUZXh0KTsK
KyAgICBBU1NFUlQocGFkZGluZyA9PSBQYWRkaW5nOjpZZXMgfHwgIShjaXBoZXJUZXh0LnNpemUo
KSAlIGtDQ0Jsb2NrU2l6ZUFFUzEyOCkpOworICAgIHJldHVybiB0cmFuc2Zvcm1BRVNfQ0JDKGtD
Q0RlY3J5cHQsIHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwga2V5LmtleSgpLCBjaXBoZXJUZXh0LCBw
YWRkaW5nKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24u
aAppbmRleCAzMjhiYjlkNGVhYWZjNzVkODNjNzFhN2M3Mjc0ZDE2NTAzNjdkMjBiLi42Mjk1NThm
N2ZiZGYwMTJmMWU2NDEzZjc5ZTU0Nzc1YTNjZWQyNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24u
aApAQCAtODQsNiArODQsNyBAQCBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbiB7CiAgICAgICAgIGJvb2wgY29udGludWVBZnRlckVycm9yRGF0YSB7IGZhbHNlIH07CiAg
ICAgICAgIGJvb2wgY2FuRG93bmdyYWRlIHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCBleHBlY3RD
YW5jZWwgeyBmYWxzZSB9OworICAgICAgICBib29sIHN1cHBvcnRDbGllbnRQaW4geyBmYWxzZSB9
OwogCiAgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFs
PEhpZENvbmZpZ3VyYXRpb24+IGRlY29kZShEZWNvZGVyJik7CkBAIC0xNjEsNyArMTYyLDcgQEAg
T3B0aW9uYWw8TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6TG9jYWxDb25maWd1
cmF0aW9uPiBNb2NrV2ViQXV0aGVudGkKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIE1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246OkhpZENvbmZpZ3VyYXRpb246OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgcGF5bG9hZEJhc2U2
NCA8PCBzdGFnZSA8PCBzdWJTdGFnZSA8PCBlcnJvciA8PCBpc1UyZiA8PCBrZWVwQWxpdmUgPDwg
ZmFzdERhdGFBcnJpdmFsIDw8IGNvbnRpbnVlQWZ0ZXJFcnJvckRhdGEgPDwgY2FuRG93bmdyYWRl
IDw8IGV4cGVjdENhbmNlbDsKKyAgICBlbmNvZGVyIDw8IHBheWxvYWRCYXNlNjQgPDwgc3RhZ2Ug
PDwgc3ViU3RhZ2UgPDwgZXJyb3IgPDwgaXNVMmYgPDwga2VlcEFsaXZlIDw8IGZhc3REYXRhQXJy
aXZhbCA8PCBjb250aW51ZUFmdGVyRXJyb3JEYXRhIDw8IGNhbkRvd25ncmFkZSA8PCBleHBlY3RD
YW5jZWwgPDwgc3VwcG9ydENsaWVudFBpbjsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
QEAgLTE4OCw2ICsxODksOCBAQCBPcHRpb25hbDxNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1
cmF0aW9uOjpIaWRDb25maWd1cmF0aW9uPiBNb2NrV2ViQXV0aGVudGljYQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmV4cGVjdENh
bmNlbCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQuc3VwcG9ydENsaWVudFBpbikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5pZGwKaW5k
ZXggNzg1Mzg1MTQ3NmZjY2Q2MjI4NGMzNmJmMjc5NDJhOGIxN2M1ZGUxMC4uYWQxMzkzNDlhZDJm
YzE1Y2FkODNmNmIyZDE2YjA4Mzg2MDNkZWUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRs
CkBAIC05Miw2ICs5Miw3IEBACiAgICAgYm9vbGVhbiBjb250aW51ZUFmdGVyRXJyb3JEYXRhID0g
ZmFsc2U7CiAgICAgYm9vbGVhbiBjYW5Eb3duZ3JhZGUgPSBmYWxzZTsKICAgICBib29sZWFuIGV4
cGVjdENhbmNlbCA9IGZhbHNlOworICAgIGJvb2xlYW4gc3VwcG9ydENsaWVudFBpbiA9IGZhbHNl
OwogfTsKIAogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKaW5kZXggNTU1YjU2MTlmZDgyNWNk
YzViYmMwNDUwYjc4OTgzNzY2MmVkMjk0NC4uN2VjNjI0MzU5NWU4NGNlMzQxNTQ0Nzc0ZWU1N2Nm
ZDBmNjQ5MWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCkBAIC0yNyw2ICsyNyw5IEBA
CiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblN0YXR1cyA6IGJvb2w7CiBlbnVtIGNs
YXNzIFdlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IDogYm9vbDsKQEAgLTQxLDYgKzQ0LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBhbmVsKFdlYktpdDo6V2ViQXV0aGVudGlj
YXRpb25TdGF0dXMpIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzUGFuZWwoV2Vi
S2l0OjpXZWJBdXRoZW50aWNhdGlvblJlc3VsdCkgY29uc3QgeyB9CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RQaW4odWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV1RGOjpT
dHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QgeyBjb21wbGV0aW9uSGFuZGxlcihl
bXB0eVN0cmluZygpKTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
LmgKaW5kZXggMGQyNDcxM2JmNzNiYzA5ZTE3MzBhMjkyMTY0OWNjYzg4ZWIxNzliMy4uMDQ2NjZj
MzcwNWI1OTAzZDA5MWM0MjY1NDFmNjJlYzk5OWYzNjNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaApA
QCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXNwb25kUmVj
ZWl2ZWQoUmVzcG9uZCYmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkb3duZ3JhZGUoQXV0
aGVudGljYXRvciogaWQsIFJlZjxBdXRoZW50aWNhdG9yPiYmIGRvd25ncmFkZWRBdXRoZW50aWNh
dG9yKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdG9yU3RhdHVzVXBkYXRl
ZChXZWJBdXRoZW50aWNhdGlvblN0YXR1cykgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFBpbih1aW50NjRfdCByZXRyaWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdU
Rjo6U3RyaW5nJik+JiYpID0gMDsKICAgICB9OwogCiAgICAgdmlydHVhbCB+QXV0aGVudGljYXRv
cigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAppbmRleCA2
ZmFlZGU1NDc2NDRhYjdkOGY5NmU4OTBkODM4YTFiYjEzYmMwODljLi43NDZjYTA2MTVmNTQxMDE0
N2JkYmE1YTRlYzUwMmQxODhlNjI5YjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFn
ZXIuY3BwCkBAIC0yNzMsNiArMjczLDEyIEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmF1
dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzIHN0CiAgICAg
ICAgIHBhbmVsLT5jbGllbnQoKS51cGRhdGVQYW5lbChzdGF0dXMpOwogfQogCit2b2lkIEF1dGhl
bnRpY2F0b3JNYW5hZ2VyOjpyZXF1ZXN0UGluKHVpbnQ2NF90IHJldHJpZXMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV1RGOjpTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBpZiAoYXV0byogcGFuZWwgPSBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYW5lbC5nZXQoKSkK
KyAgICAgICAgcGFuZWwtPmNsaWVudCgpLnJlcXVlc3RQaW4ocmV0cmllcywgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworfQorCiBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNl
cnZpY2U+IEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpjcmVhdGVTZXJ2aWNlKEF1dGhlbnRpY2F0b3JU
cmFuc3BvcnQgdHJhbnNwb3J0LCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2
ZXImIG9ic2VydmVyKSBjb25zdAogewogICAgIHJldHVybiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0
U2VydmljZTo6Y3JlYXRlKHRyYW5zcG9ydCwgb2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmgKaW5kZXggZGM2YzQ0NDM5MTAwMTAwMjNiYjE1NTI5ODA5ZTllZWE2NzBlZmIw
ZS4uMmE1MDgzM2ZkYjlkYjYzZGM5OGMzOTNkMDlkMWM5MzAyMGRmMmZhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdG9yTWFuYWdlci5oCkBAIC04MSw2ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZXNwb25kUmVjZWl2ZWQoUmVzcG9uZCYmKSBmaW5hbDsKICAgICB2b2lkIGRvd25ncmFkZShB
dXRoZW50aWNhdG9yKiBpZCwgUmVmPEF1dGhlbnRpY2F0b3I+JiYgZG93bmdyYWRlZEF1dGhlbnRp
Y2F0b3IpIGZpbmFsOwogICAgIHZvaWQgYXV0aGVudGljYXRvclN0YXR1c1VwZGF0ZWQoV2ViQXV0
aGVudGljYXRpb25TdGF0dXMpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFBpbih1aW50NjRfdCBy
ZXRyaWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdURjo6U3RyaW5nJik+JiYpIGZp
bmFsOwogCiAgICAgLy8gT3ZlcnJpZGVuIGJ5IE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci4KICAg
ICB2aXJ0dWFsIFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZT4gY3JlYXRl
U2VydmljZShXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0LCBBdXRoZW50aWNhdG9yVHJh
bnNwb3J0U2VydmljZTo6T2JzZXJ2ZXImKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAppbmRleCAzYjBjODkxNmRjMDkyMTA3
NTg0ZGQ3MGJhMDEwMjQ5MDU3NDc0Y2M2Li4xNDk5NDY2YTFjZWNhOGU5ZmQ5MGY5Y2Y2MTQyNTY1
OTAyYTg4ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRp
b25QYW5lbENsaWVudC5oCkBAIC00OSw2ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgLy8gQVBJOjpX
ZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50CiAgICAgdm9pZCB1cGRhdGVQYW5lbChXZWJBdXRo
ZW50aWNhdGlvblN0YXR1cykgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkaXNtaXNzUGFuZWwoV2Vi
QXV0aGVudGljYXRpb25SZXN1bHQpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFBpbih1
aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXVEY6OlN0cmluZyYpPiYmKSBj
b25zdCBmaW5hbDsKIAogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKm1fcGFuZWw7CiAg
ICAgV2Vha09iakNQdHI8aWQgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4gPiBt
X2RlbGVnYXRlOwpAQCAtNTYsNiArNTcsNyBAQCBwcml2YXRlOgogICAgIHN0cnVjdCB7CiAgICAg
ICAgIGJvb2wgcGFuZWxVcGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsIDogMTsKICAgICAgICAg
Ym9vbCBwYW5lbERpc21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0aFJlc3VsdCA6IDE7Cisg
ICAgICAgIGJvb2wgcGFuZWxSZXF1ZXN0UGluV2l0aFJlbWFpbmluZ1JldHJpZXNDb21wbGV0aW9u
SGFuZGxlciA6IDE7CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWxDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lm1tCmluZGV4IDM1
ZWY2NWJlZWY2MWJiZTVlYTUxMzllODMzMGNhNzM5ODVmZTQxMmMuLjdmMTU3YmQ5ODQ2OWNkNjY5
MWZlMTAwZjNlMzVhNDE5NzM4ZjVlOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2Ev
V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5tbQpAQCAtMjgsOCArMjgsMTAgQEAKIAogI2lm
IEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNr
ZXIuaCIKICNpbXBvcnQgIldlYkF1dGhlbnRpY2F0aW9uRmxhZ3MuaCIKICNpbXBvcnQgIl9XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwuaCIKKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9y
dCA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00MCw2ICs0Miw3IEBA
IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGll
bnQoX1dLV2ViQXV0aGVudGljYXRpb25QCiB7CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMucGFuZWxV
cGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IocGFuZWw6dXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5lbDopXTsKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy5wYW5lbERpc21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0aFJl
c3VsdCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHBhbmVsOmRpc21p
c3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0aFJlc3VsdDopXTsKKyAgICBtX2RlbGVnYXRlTWV0
aG9kcy5wYW5lbFJlcXVlc3RQaW5XaXRoUmVtYWluaW5nUmV0cmllc0NvbXBsZXRpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocGFuZWw6cmVxdWVzdFBJ
TldpdGhSZW1haW5pbmdSZXRyaWVzOmNvbXBsZXRpb25IYW5kbGVyOildOwogfQogCiBSZXRhaW5Q
dHI8aWQgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4gPiBXZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50OjpkZWxlZ2F0ZSgpCkBAIC0xMDcsNiArMTEwLDM3IEBAIHZvaWQgV2Vi
QXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6ZGlzbWlzc1BhbmVsKFdlYkF1dGhlbnRpY2F0aW9u
UmVzdWx0IHJlc3VsdCkKICAgICB9KTsKIH0KIAordm9pZCBXZWJBdXRoZW50aWNhdGlvblBhbmVs
Q2xpZW50OjpyZXF1ZXN0UGluKHVpbnQ2NF90IHJldHJpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgV1RGOjpTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKK3sKKyAg
ICAvLyBDYWxsIGRlbGVnYXRlcyBpbiB0aGUgbmV4dCBydW4gbG9vcCB0byBwcmV2ZW50IGNsaWVu
dHMnIHJlZW50cmFuY2UgdGhhdCB3b3VsZCBwb3RlbnRpYWxseSBtb2RpZnkgdGhlIHN0YXRlCisg
ICAgLy8gb2YgdGhlIGN1cnJlbnQgcnVuIGxvb3AgaW4gdW5leHBlY3RlZCB3YXlzLgorICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRo
aXMsIHJldHJpZXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildICgpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihlbXB0eVN0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmICghbV9kZWxlZ2F0ZU1ldGhvZHMucGFuZWxSZXF1ZXN0UGlu
V2l0aFJlbWFpbmluZ1JldHJpZXNDb21wbGV0aW9uSGFuZGxlcikgeworICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBhdXRvIGRlbGVnYXRlID0gbV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICAg
ICAgaWYgKCFkZWxlZ2F0ZSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZW1wdHlT
dHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhdXRv
IGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUu
Z2V0KCksIEBzZWxlY3RvcihwYW5lbDpyZXF1ZXN0UElOV2l0aFJlbWFpbmluZ1JldHJpZXM6Y29t
cGxldGlvbkhhbmRsZXI6KSk7CisgICAgICAgIFtkZWxlZ2F0ZSBwYW5lbDptX3BhbmVsIHJlcXVl
c3RQSU5XaXRoUmVtYWluaW5nUmV0cmllczpyZXRyaWVzIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VC
bG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
Y2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildKE5TU3RyaW5nICpwaW4pIG11dGFibGUgeworICAg
ICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21w
bGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocGluKTsKKyAg
ICAgICAgfSkuZ2V0KCldOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tIaWRDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5l
Y3Rpb24uY3BwCmluZGV4IDllNWQ4ZmE3MDY2ODBkZjZlMTRmOTYzZjIzYmU5ZTg4NWU3NDRmNTUu
LmY5OWM3MDRiZDk3MGI0YjM3MDdmNzk5Zjg5NGMxNTc1N2NkYzcwMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9DQk9SUmVhZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWRvQ29uc3RhbnRzLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9QaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1dGhlbnRpY2F0aW9u
Q29uc3RhbnRzLmg+CiAjaW5jbHVkZSA8d3RmL0Jsb2NrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL0Ny
eXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmg+CkBAIC0yMjMsMTAgKzIyNCwxOCBAQCB2b2lk
IE1vY2tIaWRDb25uZWN0aW9uOjpmZWVkUmVwb3J0cygpCiAKICAgICBPcHRpb25hbDxGaWRvSGlk
TWVzc2FnZT4gbWVzc2FnZTsKICAgICBpZiAobV9zdGFnZSA9PSBNb2NrOjpIaWRTdGFnZTo6SW5m
byAmJiBtX3N1YlN0YWdlID09IE1vY2s6OkhpZFN1YlN0YWdlOjpNc2cpIHsKKyAgICAgICAgLy8g
RklYTUUoMjA1ODM5KToKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGluZm9EYXRhOwogICAgICAg
ICBpZiAobV9jb25maWd1cmF0aW9uLmhpZC0+Y2FuRG93bmdyYWRlKQogICAgICAgICAgICAgaW5m
b0RhdGEgPSBlbmNvZGVBc0NCT1IoQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSh7IFByb3Rv
Y29sVmVyc2lvbjo6a0N0YXAsIFByb3RvY29sVmVyc2lvbjo6a1UyZiB9LCBWZWN0b3I8dWludDhf
dD4oYWFndWlkTGVuZ3RoLCAwdSkpKTsKLSAgICAgICAgZWxzZQorICAgICAgICBlbHNlIGlmICht
X2NvbmZpZ3VyYXRpb24uaGlkLT5zdXBwb3J0Q2xpZW50UGluKSB7CisgICAgICAgICAgICBBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIGluZm9SZXNwb25zZSh7IFByb3RvY29sVmVyc2lvbjo6
a0N0YXAgfSwgVmVjdG9yPHVpbnQ4X3Q+KGFhZ3VpZExlbmd0aCwgMHUpKTsKKyAgICAgICAgICAg
IGluZm9SZXNwb25zZS5zZXRQaW5Qcm90b2NvbHMoeyBwaW46OmtQcm90b2NvbFZlcnNpb24gfSk7
CisgICAgICAgICAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBvcHRpb25zOworICAg
ICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNl
dCk7CisgICAgICAgICAgICBpbmZvUmVzcG9uc2Uuc2V0T3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMp
KTsKKyAgICAgICAgICAgIGluZm9EYXRhID0gZW5jb2RlQXNDQk9SKGluZm9SZXNwb25zZSk7Cisg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgaW5mb0RhdGEgPSBlbmNvZGVBc0NCT1IoQXV0aGVu
dGljYXRvckdldEluZm9SZXNwb25zZSh7IFByb3RvY29sVmVyc2lvbjo6a0N0YXAgfSwgVmVjdG9y
PHVpbnQ4X3Q+KGFhZ3VpZExlbmd0aCwgMHUpKSk7CiAgICAgICAgIGluZm9EYXRhLmluc2VydCgw
LCBzdGF0aWNfY2FzdDx1aW50OF90PihDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprU3VjY2Vzcykp
OyAvLyBQcmVwZW5kIHN0YXR1cyBjb2RlLgogICAgICAgICBpZiAoc3RhZ2VzTWF0Y2goKSAmJiBt
X2NvbmZpZ3VyYXRpb24uaGlkLT5lcnJvciA9PSBNb2NrOjpIaWRFcnJvcjo6V3JvbmdDaGFubmVs
SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCmluZGV4IDllNDFlYjcx
YWRjNTg0NGVmZWRlNDBjNjdkZmUyMzNmZDg2YWM1YTEuLjVlNDA3NjRhY2U0MDQ4NTE2NmVlYjk1
OWE3OGM1Y2I5ZWU5OGY4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3Iu
Y3BwCkBAIC0zMSw5ICszMSwxMyBAQAogI2luY2x1ZGUgIkN0YXBEcml2ZXIuaCIKICNpbmNsdWRl
ICJDdGFwSGlkRHJpdmVyLmgiCiAjaW5jbHVkZSAiVTJmQXV0aGVudGljYXRvci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvQ3J5cHRvS2V5QUVTLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DcnlwdG9LZXlF
Qy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ3J5cHRvS2V5SE1BQy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlUmVz
cG9uc2VDb252ZXJ0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkRhdGEuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Bpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVTJmQ29tbWFuZENvbnN0
cnVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KQEAgLTUzLDcgKzU3LDExIEBAIHZvaWQgQ3RhcEF1
dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKCkKICAgICBBU1NFUlQoIW1faXNEb3duZ3JhZGVk
KTsKICAgICBpZiAocHJvY2Vzc0dvb2dsZUxlZ2FjeUFwcElkU3VwcG9ydEV4dGVuc2lvbigpKQog
ICAgICAgICByZXR1cm47Ci0gICAgYXV0byBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxS
ZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKSwgbV9pbmZvLm9wdGlv
bnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkpOworICAgIFZlY3Rvcjx1aW50OF90
PiBjYm9yQ21kOworICAgIGlmIChtX2luZm8ub3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0
eSgpID09IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQpCisgICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3Jl
ZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBXVEY6OmdldDxQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpLCBtX2lu
Zm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSwgUGluUGFyYW1ldGVy
cyB7IHBpbjo6a1Byb3RvY29sVmVyc2lvbiwgbV9waW5BdXRoIH0pOworICAgIGVsc2UKKyAgICAg
ICAgY2JvckNtZCA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0
YSgpLmhhc2gsIFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KHJl
cXVlc3REYXRhKCkub3B0aW9ucyksIG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eSgpKTsKICAgICBkcml2ZXIoKS50cmFuc2FjdChXVEZNb3ZlKGNib3JDbWQpLCBb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEpIHsK
ICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKQEAgLTYyLDEzICs3MCwxNiBAQCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVu
dGlhbCgpCiAgICAgfSk7CiB9CiAKLXZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFr
ZUNyZWRlbnRpYWxBZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkg
Y29uc3QKK3ZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRl
clJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkKIHsKICAgICBhdXRvIHJl
c3BvbnNlID0gcmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGRhdGEsIFdURjo6Z2V0PFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucyku
YXR0ZXN0YXRpb24pOwogICAgIGlmICghcmVzcG9uc2UpIHsKICAgICAgICAgYXV0byBlcnJvciA9
IGdldFJlc3BvbnNlQ29kZShkYXRhKTsKICAgICAgICAgaWYgKGVycm9yID09IEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyckNyZWRlbnRpYWxFeGNsdWRlZCkKICAgICAgICAgICAgIHJl
Y2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkF0IGxlYXN0
IG9uZSBjcmVkZW50aWFsIG1hdGNoZXMgYW4gZW50cnkgb2YgdGhlIGV4Y2x1ZGVDcmVkZW50aWFs
cyBsaXN0IGluIHRoZSBhdXRoZW50aWNhdG9yLiJfcyB9KTsKKyAgICAgICAgLy8gRklYTUUoMjA1
ODM3KQorICAgICAgICBlbHNlIGlmIChlcnJvciA9PSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDJFcnJQaW5JbnZhbGlkIHx8IGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMkVyclBpbkF1dGhJbnZhbGlkKQorICAgICAgICAgICAgZ2V0UmV0cmllcygpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93
bkVycm9yLCBtYWtlU3RyaW5nKCJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiAi
LCBzdGF0aWNfY2FzdDx1aW50OF90PihlcnJvcikpIH0pOwogICAgICAgICByZXR1cm47CkBAIC03
OSw3ICs5MCwxMSBAQCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50
aWFsQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW50OAogdm9pZCBDdGFwQXV0aGVudGlj
YXRvcjo6Z2V0QXNzZXJ0aW9uKCkKIHsKICAgICBBU1NFUlQoIW1faXNEb3duZ3JhZGVkKTsKLSAg
ICBhdXRvIGNib3JDbWQgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKHJlcXVlc3RE
YXRhKCkuaGFzaCwgV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPihy
ZXF1ZXN0RGF0YSgpLm9wdGlvbnMpLCBtX2luZm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25B
dmFpbGFiaWxpdHkoKSk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNib3JDbWQ7CisgICAgaWYgKG1f
aW5mby5vcHRpb25zKCkuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkgPT0gQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNl
dCkKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IocmVx
dWVzdERhdGEoKS5oYXNoLCBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucyksIG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNh
dGlvbkF2YWlsYWJpbGl0eSgpLCBQaW5QYXJhbWV0ZXJzIHsgcGluOjprUHJvdG9jb2xWZXJzaW9u
LCBtX3BpbkF1dGggfSk7CisgICAgZWxzZQorICAgICAgICBjYm9yQ21kID0gZW5jb2RlR2V0QXNz
ZXJ0aW9uUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIFdURjo6Z2V0PFB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKSwgbV9pbmZv
Lm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkpOwogICAgIGRyaXZlcigp
LnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQpAQCAtOTMsNiArMTA4LDExIEBAIHZvaWQg
Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2Vp
dmVkKFZlY3Rvcjx1aW50OF90CiAgICAgYXV0byByZXNwb25zZSA9IHJlYWRDVEFQR2V0QXNzZXJ0
aW9uUmVzcG9uc2UoZGF0YSk7CiAgICAgaWYgKCFyZXNwb25zZSkgewogICAgICAgICBhdXRvIGVy
cm9yID0gZ2V0UmVzcG9uc2VDb2RlKGRhdGEpOworICAgICAgICAvLyBGSVhNRSgyMDU4MzcpCisg
ICAgICAgIGlmIChlcnJvciA9PSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5J
bnZhbGlkIHx8IGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkF1
dGhJbnZhbGlkKSB7CisgICAgICAgICAgICBnZXRSZXRyaWVzKCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KICAgICAgICAgaWYgKGVycm9yICE9IEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyckludmFsaWRDQk9SICYmIHRyeURvd25ncmFkZSgpKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICBpZiAoZXJyb3IgPT0gQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyTm9DcmVkZW50aWFscyAmJiBvYnNlcnZlcigpKQpAQCAtMTAzLDYgKzEyMyw5MyBAQCB2
b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9uc2VS
ZWNlaXZlZChWZWN0b3I8dWludDhfdAogICAgIHJlY2VpdmVSZXNwb25kKHJlc3BvbnNlLnJlbGVh
c2VOb25OdWxsKCkpOwogfQogCit2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpnZXRSZXRyaWVzKCkK
K3sKKyAgICBhdXRvIGNib3JDbWQgPSBlbmNvZGVBc0NCT1IocGluOjpSZXRyaWVzUmVxdWVzdCB7
IH0pOworICAgIGRyaXZlcigpLnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgeworICAgICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB3ZWFrVGhpcy0+Y29udGludWVHZXRLZXlBZ3JlZW1lbnRB
ZnRlckdldFJldHJpZXMoV1RGTW92ZShkYXRhKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgQ3RhcEF1
dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0S2V5QWdyZWVtZW50QWZ0ZXJHZXRSZXRyaWVzKFZlY3Rv
cjx1aW50OF90PiYmIGRhdGEpCit7CisgICAgYXV0byByZXRyaWVzID0gcGluOjpSZXRyaWVzUmVz
cG9uc2U6OnBhcnNlKGRhdGEpOworICAgIGlmICghcmV0cmllcykgeworICAgICAgICBhdXRvIGVy
cm9yID0gZ2V0UmVzcG9uc2VDb2RlKGRhdGEpOworICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNl
cHRpb25EYXRhIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJVbmtub3duIGludGVybmFsIGVy
cm9yLiBFcnJvciBjb2RlOiAiLCBzdGF0aWNfY2FzdDx1aW50OF90PihlcnJvcikpIH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjYm9yQ21kID0gZW5jb2RlQXNDQk9SKHBp
bjo6S2V5QWdyZWVtZW50UmVxdWVzdCB7IH0pOworICAgIGRyaXZlcigpLnRyYW5zYWN0KFdURk1v
dmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmV0cmllcyA9IHJl
dHJpZXMtPnJldHJpZXNdIChWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CisgICAgICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5jb250aW51ZVJlcXVlc3RQaW5BZnRlckdldEtl
eUFncmVlbWVudChXVEZNb3ZlKGRhdGEpLCByZXRyaWVzKTsKKyAgICB9KTsKK30KKwordm9pZCBD
dGFwQXV0aGVudGljYXRvcjo6Y29udGludWVSZXF1ZXN0UGluQWZ0ZXJHZXRLZXlBZ3JlZW1lbnQo
VmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgdWludDY0X3QgcmV0cmllcykKK3sKKyAgICBhdXRvIGtl
eUFncmVlbWVudCA9IHBpbjo6S2V5QWdyZWVtZW50UmVzcG9uc2U6OnBhcnNlKGRhdGEpOworICAg
IGlmICgha2V5QWdyZWVtZW50KSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBnZXRSZXNwb25zZUNv
ZGUoZGF0YSk7CisgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBVbmtub3du
RXJyb3IsIG1ha2VTdHJpbmcoIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVycm9yIGNvZGU6ICIs
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGVycm9yKSkgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0aGlzLT5vYnNlcnZlcigpKSB7CisgICAgICAg
IG9ic2VydmVyLT5yZXF1ZXN0UGluKHJldHJpZXMsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwga2V5QWdyZWVtZW50ID0gV1RGTW92ZSgqa2V5QWdyZWVtZW50KV0gKGNvbnN0IFN0cmlu
ZyYgcGluKSB7CisgICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB3ZWFrVGhpcy0+Y29udGludWVHZXRQaW5Ub2tlbkFmdGVyUmVxdWVzdFBpbihwaW4sIGtleUFn
cmVlbWVudC5wZWVyS2V5KTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCit2b2lkIEN0YXBBdXRo
ZW50aWNhdG9yOjpjb250aW51ZUdldFBpblRva2VuQWZ0ZXJSZXF1ZXN0UGluKGNvbnN0IFN0cmlu
ZyYgcGluLCBjb25zdCBDcnlwdG9LZXlFQyYgcGVlcktleSkKK3sKKyAgICBhdXRvIHBpblV0Zjgg
PSBwaW46OnZhbGlkYXRlQW5kQ29udmVydFRvVVRGOChwaW4pOworICAgIGlmICghcGluVXRmOCkg
eworICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93bkVycm9yLCBt
YWtlU3RyaW5nKCJQaW4gaXMgbm90IHZhbGlkOiAiLCBwaW4pIH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGF1dG8gdG9rZW5SZXF1ZXN0ID0gcGluOjpUb2tlblJlcXVlc3Q6OnRyeUNy
ZWF0ZSgqcGluVXRmOCwgcGVlcktleSk7CisgICAgaWYgKCF0b2tlblJlcXVlc3QpIHsKKyAgICAg
ICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IFVua25vd25FcnJvciwgIkNhbm5vdCBj
cmVhdGUgYSBUb2tlblJlcXVlc3QuIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgYXV0byBjYm9yQ21kID0gZW5jb2RlQXNDQk9SKCp0b2tlblJlcXVlc3QpOworICAgIGRyaXZl
cigpLnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgdG9rZW5SZXF1ZXN0ID0gV1RGTW92ZSgqdG9rZW5SZXF1ZXN0KV0gKFZlY3Rvcjx1aW50
OF90PiYmIGRhdGEpIHsKKyAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgd2Vha1RoaXMt
PmNvbnRpbnVlUmVxdWVzdEFmdGVyR2V0UGluVG9rZW4oV1RGTW92ZShkYXRhKSwgdG9rZW5SZXF1
ZXN0KTsKKyAgICB9KTsKK30KKwordm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVSZXF1
ZXN0QWZ0ZXJHZXRQaW5Ub2tlbihWZWN0b3I8dWludDhfdD4mJiBkYXRhLCBjb25zdCBmaWRvOjpw
aW46OlRva2VuUmVxdWVzdCYgdG9rZW5SZXF1ZXN0KQoreworICAgIGF1dG8gdG9rZW4gPSBwaW46
OlRva2VuUmVzcG9uc2U6OnBhcnNlKHRva2VuUmVxdWVzdC5zaGFyZWRLZXkoKSwgZGF0YSk7Cisg
ICAgaWYgKCF0b2tlbikgeworICAgICAgICBhdXRvIGVycm9yID0gZ2V0UmVzcG9uc2VDb2RlKGRh
dGEpOworICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93bkVycm9y
LCBtYWtlU3RyaW5nKCJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiAiLCBzdGF0
aWNfY2FzdDx1aW50OF90PihlcnJvcikpIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9waW5BdXRoID0gdG9rZW4tPnBpbkF1dGgocmVxdWVzdERhdGEoKS5oYXNoKTsKKyAgICBX
VEY6OnN3aXRjaE9uKHJlcXVlc3REYXRhKCkub3B0aW9ucywgWyZdKGNvbnN0IFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMpIHsKKyAgICAgICAgbWFrZUNyZWRlbnRp
YWwoKTsKKyAgICB9LCBbJl0oY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
JiBvcHRpb25zKSB7CisgICAgICAgIGdldEFzc2VydGlvbigpOworICAgIH0pOworfQorCiBib29s
IEN0YXBBdXRoZW50aWNhdG9yOjp0cnlEb3duZ3JhZGUoKQogewogICAgIGlmIChtX2luZm8udmVy
c2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a1UyZikgPT0gbV9pbmZvLnZlcnNpb25zKCku
ZW5kKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmgKaW5kZXggZWU1NDNkODVm
OTRkMDhmYTBjNmI3YTA0OWNkZmVkZjhlZjQyZmM1Yy4uNTgyNDhjYTEyNDQ4NWIwYWRjNjY3ODNj
YTBjNmNhN2E2OWVhM2ZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuaApA
QCAtMzAsNiArMzAsMTYgQEAKICNpbmNsdWRlICJGaWRvQXV0aGVudGljYXRvci5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oPgogCituYW1lc3BhY2Ug
ZmlkbyB7CituYW1lc3BhY2UgcGluIHsKK2NsYXNzIFRva2VuUmVxdWVzdDsKK30KK30KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ3J5cHRvS2V5RUM7Cit9CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBDdGFwRHJpdmVyOwpAQCAtNDUsMTUgKzU1LDIyIEBAIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgQ3RhcEF1dGhlbnRpY2F0b3Ioc3RkOjp1bmlxdWVfcHRyPEN0YXBEcml2ZXI+
JiYsIGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmJik7CiAKICAgICB2b2lkIG1h
a2VDcmVkZW50aWFsKCkgZmluYWw7Ci0gICAgdm9pZCBjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0
ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW50OF90PiYmKSBjb25zdDsKKyAgICB2b2lkIGNv
bnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+
JiYpOwogICAgIHZvaWQgZ2V0QXNzZXJ0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBjb250aW51ZUdl
dEFzc2VydGlvbkFmdGVyUmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWludDhfdD4mJik7CiAKKyAg
ICB2b2lkIGdldFJldHJpZXMoKTsKKyAgICB2b2lkIGNvbnRpbnVlR2V0S2V5QWdyZWVtZW50QWZ0
ZXJHZXRSZXRyaWVzKFZlY3Rvcjx1aW50OF90PiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlUmVxdWVz
dFBpbkFmdGVyR2V0S2V5QWdyZWVtZW50KFZlY3Rvcjx1aW50OF90PiYmLCB1aW50NjRfdCByZXRy
aWVzKTsKKyAgICB2b2lkIGNvbnRpbnVlR2V0UGluVG9rZW5BZnRlclJlcXVlc3RQaW4oY29uc3Qg
U3RyaW5nJiBwaW4sIGNvbnN0IENyeXB0b0tleUVDJik7CisgICAgdm9pZCBjb250aW51ZVJlcXVl
c3RBZnRlckdldFBpblRva2VuKFZlY3Rvcjx1aW50OF90PiYmLCBjb25zdCBmaWRvOjpwaW46OlRv
a2VuUmVxdWVzdCYpOworCiAgICAgYm9vbCB0cnlEb3duZ3JhZGUoKTsKICAgICBib29sIHByb2Nl
c3NHb29nbGVMZWdhY3lBcHBJZFN1cHBvcnRFeHRlbnNpb24oKTsKIAogICAgIGZpZG86OkF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UgbV9pbmZvOwogICAgIGJvb2wgbV9pc0Rvd25ncmFkZWQg
eyBmYWxzZSB9OworICAgIFZlY3Rvcjx1aW50OF90PiBtX3BpbkF1dGg7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBiZmY5YmRiODZiNzdjNjQ5YzJmZTg2NDJiMzg2YmRhMTNjNjlhNGFlLi43YzI3
YjhlMDJmYzg4Njc5MWQ2NGU1MTNjZjI5ZjNlYzIyNzg2YTg3IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDEt
MDYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0
aG5dIFN1cHBvcnQgQ1RBUCBDbGllbnQgUGluCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1MTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NTU4
NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBQaW5UZXN0LmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICgtW1Rl
c3RXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgcGFuZWw6cmVxdWVzdFBJTldpdGhSZW1h
aW5pbmdSZXRyaWVzOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbDog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRt
bDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4taW52YWxpZC1rZXktYWdyZWVl
bWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sOiBBZGRl
ZC4KKwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gSXNzdWUgbWFjaCBsb29rdXAgZXh0ZW5zaW9uIHRvIGxhdW5jaCBzZXJ2
aWNlcyBkYWVtb24gZm9yIE1haWwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjhkMDA2MGU1
YThhMGExNzZhMjFjNzlmM2QxMjY4N2RkMWI1ZGE2Ny4uYzdiNWY0YmFiNGQwNDc4ZDdjNDI0ZGJh
YmM2ZTJiOGI3Mzk0ZjI3NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNyw2ICszMjcs
MTEgQEAKIAkJNTVBODE3RkYyMTgxMDIxQTAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUE4MTdG
RTIxODEwMURGMDAwNEEzOUEgLyogMTAweDEwMC1yZWQudGdhICovOyB9OwogCQk1NUE4MTgwMDIx
ODEwMjIxMDAwNEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBODE3RkQyMTgxMDFERjAwMDRBMzlB
IC8qIDQwMHg0MDAtZ3JlZW4ucG5nICovOyB9OwogCQk1NUY5RDJFNTIyMDUwMzE4MDBBOUFCMzgg
LyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUY5RDJFNDIyMDUwMzE4MDBBOUFCMzggLyogQWRk
aXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gKi87IH07CisJCTU3MEQyNkY0MjNDM0NBNkEw
MEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0
LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEMjZGMzIzQzNDQTU1MDBENUNGNjcgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVy
cm9yLmh0bWwgKi87IH07CisJCTU3MEQyNkY2MjNDM0QzMzAwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEMjZGNTIzQzNEMzI3MDBENUNG
NjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwgKi87
IH07CisJCTU3MEQyNkZBMjNDM0YyNTEwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFr
ZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MEQyNkY5MjNDM0Yy
NDUwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4t
Z2V0LXBpbi10b2tlbi1lcnJvci5odG1sICovOyB9OworCQk1NzBEMjZGQzIzQzNGODcwMDBENUNG
NjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MEQyNkZC
MjNDM0Y4NjUwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQt
cGluLmh0bWwgKi87IH07CisJCTU3MEQyNkZFMjNDNEZGMzYwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4taW52YWxpZC1rZXktYWdyZWVlbWVudC5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3MEQyNkZEMjNDNEZGMjUwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4taW52YWxpZC1rZXktYWdyZWVlbWVudC5odG1sICovOyB9OwogCQk1NzE0
RUNCOTFDQThCNUIwMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0
RUNCODFDQThCNTg4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbCAq
LzsgfTsKIAkJNTcxNEVDQkIxQ0E4QkZFNDAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdp
bmFsVVJMRnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0
T3JpZ2luYWxVUkxGcmFtZS5odG1sICovOyB9OwogCQk1NzE0RUNCRDFDQThDMjJBMDAwNTFBQzgg
LyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4
IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICovOyB9OwpAQCAtMzQzLDYgKzM0
OCw3IEBACiAJCTU3MzI1NUE3MjIxMzlCQzcwMDM5NkFFOCAvKiBsb2FkLXdlYi1hcmNoaXZlLTIu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzMyNTVBMzIyMTM5QjkwMDAzOTZBRTggLyogbG9hZC13ZWItYXJjaGl2ZS0yLmh0bWwgKi87
IH07CiAJCTU3NEY1NUQyMjA0RDQ3RjAwMDI5NDhDNiAvKiBTZWN1cml0eS5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzRGNTVEMDIw
NEQ0NzFDMDAyOTQ4QzYgLyogU2VjdXJpdHkuZnJhbWV3b3JrICovOyB9OwogCQk1NzU4NTk3RjIz
QTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1ODU5N0UyM0EyNTI3QTAwQzc0NTcyIC8qIEN0YXBQ
aW5UZXN0LmNwcCAqLzsgfTsKKwkJNTc1ODU5ODQyM0MzQzNBNDAwQzc0NTcyIC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
NTg1OTgzMjNDM0MzNjIwMEM3NDU3MiAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRtbCAqLzsgfTsKIAkJNTc1OTlFMjExRjA3
MTkxOTAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJp
bGl0eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
NTk5RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHkubW0gKi87IH07CiAJCTU3NTk5RTI3MUYwNzFBQTAwMEEzRkI4QyAvKiBJ
bmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUy
NDFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21w
YXRpYmlsaXR5LnNxbGl0ZTMgKi87IH07CiAJCTU3NTk5RTI4MUYwNzFBQTAwMEEzRkI4QyAvKiBJ
bmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0g
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1
OTlFMjYxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJk
Q29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSAqLzsgfTsKQEAgLTE0NzksMTEgKzE0ODUsMTcgQEAK
IAkJCQlDRDU3Nzc5OTIxMUNFMEU0MDAxQjM3MUUgLyogd2ViLWF1ZGlvLW9ubHkuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2M0RGMzIzNTdFNDg5MDBFODVFMDkgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTU3NzQ1NEQwMjM1OUIzNzgwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVudGlhbHMuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKKwkJCQk1NzBEMjZGQzIzQzNGODcwMDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24taGlkLXBpbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3
NjYzREVDMjM0RjFGOTMwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1oaWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1Nzk4MzM5MjIzNjhGQTM3MDA4
RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRh
Z3MuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2M0RFQTIzNEVBNjZEMDBFODVF
MDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTc3NDU0RDIyMzU5QkIwMTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3MEQy
NkY0MjNDM0NBNkEwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFs
LWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKKwkJCQk1NzBEMjZGQTIzQzNGMjUxMDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKKwkJCQk1NzU4NTk4NDIzQzNDM0E0MDBDNzQ1NzIgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTcwRDI2RkUyM0M0RkYzNjAwRDVDRjY3IC8qIHdlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1pbnZhbGlkLWtleS1hZ3JlZWVt
ZW50Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTcwRDI2RjYyM0MzRDMzMDAwRDVD
RjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3OTgzMzdFMjM2MDE5QTQwMDhFNTU0NyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTFDMkI4MTg2MUM4OTI1OUQwMEE1NTI5RiAvKiB3ZWJmb250Lmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJNTE3MTRFQjQxQ0Y4Qzc4QzAwNDcyM0M0IC8qIFdlYlByb2Nl
c3NLaWxsSURCQ2xlYW51cC0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xODkyLDYg
KzE5MDQsMTEgQEAKIAkJNTVBODE3RkQyMTgxMDFERjAwMDRBMzlBIC8qIDQwMHg0MDAtZ3JlZW4u
cG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1h
Z2UucG5nOyBwYXRoID0gIjQwMHg0MDAtZ3JlZW4ucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTVBODE3RkUyMTgxMDFERjAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGgg
PSAiMTAweDEwMC1yZWQudGdhIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVGOUQy
RTQyMjA1MDMxODAwQTlBQjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcwRDI2RjMyM0MzQ0E1NTAwRDVDRjY3IC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVu
dC1lcnJvci5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVudC1lcnJvci5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTcwRDI2RjUyM0MzRDMyNzAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTcwRDI2RjkyM0MzRjI0NTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWVycm9yLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4t
dG9rZW4tZXJyb3IuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MEQyNkZC
MjNDM0Y4NjUwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQt
cGluLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlk
LXBpbi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcwRDI2RkQyM0M0RkYy
NTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1p
bnZhbGlkLWtleS1hZ3JlZWVtZW50Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWludmFsaWQta2V5LWFncmVlZW1lbnQuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTRFQ0I4MUNBOEI1ODgwMDA1MUFDOCAvKiBE
b3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTcxNEVDQkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdp
bmFsVVJMRnJhbWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2FkUmVx
dWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxV
UkwyLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTEwLDYgKzE5MjcsNyBA
QAogCQk1NzRGNTVEMDIwNEQ0NzFDMDAyOTQ4QzYgLyogU2VjdXJpdHkuZnJhbWV3b3JrICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFt
ZXdvcms7IG5hbWUgPSBTZWN1cml0eS5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL1NlY3VyaXR5LmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CiAJ
CTU3NTg1OTdEMjNBMjUyN0EwMEM3NDU3MiAvKiBDdGFwUGluVGVzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDdGFwUGluVGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU4NTk3RTIz
QTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Rh
cFBpblRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzU4NTk4MzIzQzND
MzYyMDBDNzQ1NzIgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGlu
LWdldC1yZXRyaWVzLWVycm9yLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzU5OUUyMDFGMDcxOTE3MDBBM0ZCOEMgLyogSW5kZXhlZERC
U3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRD
b21wYXRpYmlsaXR5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU5OUUyMzFG
MDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRp
YmlsaXR5V3JpdGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3
YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3NTk5RTI0MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVC
YWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTM0ODMsMTEgKzM1MDEsMTcgQEAKIAkJCQlDRDU3Nzc5ODIxMUNERThGMDAxQjM3MUUgLyog
d2ViLWF1ZGlvLW9ubHkuaHRtbCAqLywKIAkJCQk1NzY2M0RGMjIzNTdFNDVEMDBFODVFMDkgLyog
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1sICovLAogCQkJ
CTU3NzQ1NENGMjM1OUIzMzgwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2Vy
dGlvbi1oaWQtbm8tY3JlZGVudGlhbHMuaHRtbCAqLywKKwkJCQk1NzBEMjZGQjIzQzNGODY1MDBE
NUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi5odG1sICov
LAogCQkJCTU3NjYzREVCMjM0RjFGODAwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi1oaWQuaHRtbCAqLywKIAkJCQk1Nzk4MzM3QjIzNUVCNjVDMDA4RTU1NDcgLyog
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCAq
LywKIAkJCQk1NzY2M0RFOTIzNEVBNjBCMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24tbmZjLmh0bWwgKi8sCiAJCQkJNTc3NDU0RDEyMzU5QkFENTAwOEUxRUQ3IC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1s
ICovLAogCQkJCTU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24t
Z2V0LWFzc2VydGlvbi5odG1sICovLAorCQkJCTU3MEQyNkYzMjNDM0NBNTUwMEQ1Q0Y2NyAvKiB3
ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1l
bnQtZXJyb3IuaHRtbCAqLywKKwkJCQk1NzBEMjZGOTIzQzNGMjQ1MDBENUNGNjcgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3Iu
aHRtbCAqLywKKwkJCQk1NzU4NTk4MzIzQzNDMzYyMDBDNzQ1NzIgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwgKi8sCisJ
CQkJNTcwRDI2RkQyM0M0RkYyNTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkLXBpbi1pbnZhbGlkLWtleS1hZ3JlZWVtZW50Lmh0bWwgKi8sCisJCQkJNTcw
RDI2RjUyM0MzRDMyNzAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtaGlkLXBpbi5odG1sICovLAogCQkJCTU3OTgzMzdEMjM2MDE5NkQwMDhFNTU0NyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC5odG1sICovLAogCQkJCTUxNzE0RUIy
MUNGOEM3NjEwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMS5odG1sICovLAog
CQkJCTUxNzE0RUIzMUNGOEM3NjEwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAt
Mi5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0N0YXBQaW5UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFw
UGluVGVzdC5jcHAKaW5kZXggYTYzYWE2Njk5NTliNTViY2QxNDdkNzMyNWQzZWZmYTg1NWU0ZTg1
Ny4uZGZlNGM4NDQ1M2ZkODhkYTQ2MGFmMzhkZTczZGU1Mzc2NGUxODNhYiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBQaW5UZXN0LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFBpblRlc3QuY3BwCkBAIC00MSw3
ICs0MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dl
YkF1dGhlbnRpY2F0aW9uQ29uc3RhbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdXRoZW50
aWNhdGlvblV0aWxzLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CisjaW5jbHVkZSA8
cGFsL2NyeXB0by9DcnlwdG9EaWdlc3QuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05OCw3ICs5OCw3IEBAIFRFU1QoQ3RhcFBpblRl
c3QsIFRlc3RSZXRyaWVzUmVzcG9uc2UpCiAgICAgLy8gU3VjY2VzcyBjYXNlcwogICAgIHJlc3Vs
dCA9IFJldHJpZXNSZXNwb25zZTo6cGFyc2UoY29udmVydEJ5dGVzVG9WZWN0b3IoVGVzdERhdGE6
OmtDdGFwQ2xpZW50UGluUmV0cmllc1Jlc3BvbnNlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwQ2xp
ZW50UGluUmV0cmllc1Jlc3BvbnNlKSkpOwogICAgIEVYUEVDVF9UUlVFKHJlc3VsdCk7Ci0gICAg
RVhQRUNUX0VRKHJlc3VsdC0+cmV0cmllcywgOCk7CisgICAgRVhQRUNUX0VRKHJlc3VsdC0+cmV0
cmllcywgOHUpOwogfQogCiBURVNUKEN0YXBQaW5UZXN0LCBUZXN0S2V5QWdyZWVtZW50UmVxdWVz
dCkKQEAgLTEyNSw2ICsxMjUsMTEgQEAgVEVTVChDdGFwUGluVGVzdCwgVGVzdEtleUFncmVlbWVu
dFJlc3BvbnNlKQogICAgIHJlc3VsdCA9IEtleUFncmVlbWVudFJlc3BvbnNlOjpwYXJzZShjb252
ZXJ0Qnl0ZXNUb1ZlY3RvcihUZXN0RGF0YTo6a0N0YXBDbGllbnRQaW5Ub2tlblJlc3BvbnNlLCBz
aXplb2YoVGVzdERhdGE6OmtDdGFwQ2xpZW50UGluVG9rZW5SZXNwb25zZSkpKTsgLy8gd3Jvbmcg
cmVzcG9uc2UKICAgICBFWFBFQ1RfRkFMU0UocmVzdWx0KTsKIAorI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQTEFURk9S
TShJT1MpCisgICAgcmVzdWx0ID0gS2V5QWdyZWVtZW50UmVzcG9uc2U6OnBhcnNlKGNvbnZlcnRC
eXRlc1RvVmVjdG9yKFRlc3REYXRhOjprQ3RhcENsaWVudFBpbkludmFsaWRLZXlBZ3JlZW1lbnRS
ZXNwb25zZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcENsaWVudFBpbkludmFsaWRLZXlBZ3JlZW1l
bnRSZXNwb25zZSkpKTsgLy8gVGhlIHBvaW50IGlzIG5vdCBvbiB0aGUgY3VydmUuCisgICAgRVhQ
RUNUX0ZBTFNFKHJlc3VsdCk7CisjZW5kaWYKKwogICAgIC8vIFRlc3QgQ09TRQogICAgIGF1dG8g
Y29zZUtleSA9IGVuY29kZUNPU0VQdWJsaWNLZXkoVmVjdG9yPHVpbnQ4X3Q+KDY1KSk7CiAgICAg
Y29zZUtleVtDQk9SVmFsdWUoQ09TRTo6a3R5KV0gPSBDQk9SVmFsdWUoMCk7IC8vIHdyb25nIGt0
eQpAQCAtMTc2LDcgKzE4MSw3IEBAIFRFU1QoQ3RhcFBpblRlc3QsIFRlc3RUb2tlblJlcXVlc3Qp
CiAgICAgYXV0byB0b2tlbiA9IFRva2VuUmVxdWVzdDo6dHJ5Q3JlYXRlKHBpbiwgZG93bmNhc3Q8
Q3J5cHRvS2V5RUM+KCprZXlQYWlyLnB1YmxpY0tleSkpOwogICAgIEVYUEVDVF9UUlVFKHRva2Vu
KTsKICAgICBhdXRvIHJlc3VsdCA9IGVuY29kZUFzQ0JPUigqdG9rZW4pOwotICAgIEVYUEVDVF9F
UShyZXN1bHQuc2l6ZSgpLCAxMjB1KTsKKyAgICBFWFBFQ1RfRVEocmVzdWx0LnNpemUoKSwgMTAz
dSk7CiAgICAgRVhQRUNUX0VRKHJlc3VsdFswXSwgc3RhdGljX2Nhc3Q8dWludDhfdD4oQ3RhcFJl
cXVlc3RDb21tYW5kOjprQXV0aGVudGljYXRvckNsaWVudFBpbikpOwogCiAgICAgLy8gRGVjb2Rl
IHRoZSBDQk9SIGJpbmFyeSB0byBjaGVjayBpZiBlYWNoIGZpZWxkIGlzIGVuY29kZWQgY29ycmVj
dGx5LgpAQCAtMjI0LDEyICsyMjksMTcgQEAgVEVTVChDdGFwUGluVGVzdCwgVGVzdFRva2VuUmVx
dWVzdCkKICAgICAvLyBDaGVjayB0aGUgZW5jcnlwdGVkIFBpbi4KICAgICBhdXRvIHNoYXJlZEtl
eVJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUVDREg6OnBsYXRmb3JtRGVyaXZlQml0cyhkb3duY2Fz
dDxDcnlwdG9LZXlFQz4oKmtleVBhaXIucHJpdmF0ZUtleSksICpjb3NlUHVibGljS2V5KTsKICAg
ICBFWFBFQ1RfVFJVRShzaGFyZWRLZXlSZXN1bHQpOwotICAgIGF1dG8gYWVzS2V5ID0gQ3J5cHRv
S2V5QUVTOjppbXBvcnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQywgV1RG
TW92ZSgqc2hhcmVkS2V5UmVzdWx0KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0KTsKKwor
ICAgIGF1dG8gY3J5cHRvID0gUEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZShQQUw6OkNyeXB0b0Rp
Z2VzdDo6QWxnb3JpdGhtOjpTSEFfMjU2KTsKKyAgICBjcnlwdG8tPmFkZEJ5dGVzKHNoYXJlZEtl
eVJlc3VsdC0+ZGF0YSgpLCBzaGFyZWRLZXlSZXN1bHQtPnNpemUoKSk7CisgICAgYXV0byBzaGFy
ZWRLZXlIYXNoID0gY3J5cHRvLT5jb21wdXRlSGFzaCgpOworCisgICAgYXV0byBhZXNLZXkgPSBD
cnlwdG9LZXlBRVM6OmltcG9ydFJhdyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JD
LCBXVEZNb3ZlKHNoYXJlZEtleUhhc2gpLCB0cnVlLCBDcnlwdG9LZXlVc2FnZURlY3J5cHQpOwog
ICAgIEVYUEVDVF9UUlVFKGFlc0tleSk7CiAKICAgICBjb25zdCBhdXRvJiBpdDYgPSByZXNwb25z
ZU1hcC5maW5kKENCT1JWYWx1ZShzdGF0aWNfY2FzdDx1aW50OF90PihSZXF1ZXN0S2V5OjprUGlu
SGFzaEVuYykpKTsKICAgICBFWFBFQ1RfTkUoaXQ2LCByZXNwb25zZU1hcC5lbmQoKSk7Ci0gICAg
YXV0byBwaW5IYXNoUmVzdWx0ID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1EZWNy
eXB0KHsgfSwgKmFlc0tleSwgaXQ2LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpKTsKKyAgICBhdXRv
IHBpbkhhc2hSZXN1bHQgPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQo
eyB9LCAqYWVzS2V5LCBpdDYtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCksIENyeXB0b0FsZ29yaXRo
bUFFU19DQkM6OlBhZGRpbmc6Ok5vKTsKICAgICBFWFBFQ1RfRkFMU0UocGluSGFzaFJlc3VsdC5o
YXNFeGNlcHRpb24oKSk7CiAgICAgYXV0byBwaW5IYXNoID0gcGluSGFzaFJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKTsKICAgICBjb25zdCB1aW50OF90IGV4cGVjdGVkUGluSGFzaFtdID0geyAw
eDAzLCAweGFjLCAweDY3LCAweDQyLCAweDE2LCAweGYzLCAweGUxLCAweDVjLCAweDc2LCAweDFl
LCAweGUxLCAweGE1LCAweGUyLCAweDU1LCAweGYwLCAweDY3IH07CkBAIC0yNDAsMTAgKzI1MCwx
MCBAQCBURVNUKEN0YXBQaW5UZXN0LCBUZXN0VG9rZW5SZXF1ZXN0KQogVEVTVChDdGFwUGluVGVz
dCwgVGVzdFRva2VuUmVzcG9uc2UpCiB7CiAgICAgY29uc3QgdWludDhfdCBzaGFyZWRLZXlEYXRh
W10gPSB7Ci0gICAgICAgIDB4MDMsIDB4YWMsIDB4NjcsIDB4NDIsIDB4MTYsIDB4ZjMsIDB4ZTEs
IDB4NWMsCi0gICAgICAgIDB4NzYsIDB4MWUsIDB4ZTEsIDB4YTUsIDB4ZTIsIDB4NTUsIDB4ZjAs
IDB4NjcsCi0gICAgICAgIDB4OTUsIDB4MzYsIDB4MjMsIDB4YzgsIDB4YjMsIDB4ODgsIDB4YjQs
IDB4NDUsCi0gICAgICAgIDB4OWUsIDB4MTMsIDB4ZjksIDB4NzgsIDB4ZDcsIDB4YzgsIDB4NDYs
IDB4ZjQsIH07CisgICAgICAgIDB4MjksIDB4OUUsIDB4NjUsIDB4QjgsIDB4RTcsIDB4NzEsIDB4
QjgsIDB4MUQsCisgICAgICAgIDB4QjEsIDB4QzQsIDB4OEQsIDB4QkUsIDB4Q0UsIDB4NTAsIDB4
MkEsIDB4ODQsCisgICAgICAgIDB4MDUsIDB4NDQsIDB4N0YsIDB4NDYsIDB4MkQsIDB4RTYsIDB4
ODEsIDB4RkEsCisgICAgICAgIDB4RUYsIDB4MEEsIDB4NkMsIDB4NjcsIDB4QTcsIDB4MkIsIDB4
QjUsIDB4MEYsIH07CiAgICAgYXV0byBzaGFyZWRLZXkgPSBDcnlwdG9LZXlBRVM6OmltcG9ydFJh
dyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDLCBjb252ZXJ0Qnl0ZXNUb1ZlY3Rv
cihzaGFyZWRLZXlEYXRhLCBzaXplb2Yoc2hhcmVkS2V5RGF0YSkpLCB0cnVlLCBDcnlwdG9LZXlV
c2FnZUVuY3J5cHQgfCBDcnlwdG9LZXlVc2FnZURlY3J5cHQpOwogICAgIEFTU0VSVF9UUlVFKHNo
YXJlZEtleSk7CiAKQEAgLTI3NCwxMCArMjg0LDEwIEBAIFRFU1QoQ3RhcFBpblRlc3QsIFRlc3RQ
aW5BdXRoKQogewogICAgIC8vIDEuIEdlbmVyYXRlIHRoZSB0b2tlbi4KICAgICBjb25zdCB1aW50
OF90IHNoYXJlZEtleURhdGFbXSA9IHsKLSAgICAgICAgMHgwMywgMHhhYywgMHg2NywgMHg0Miwg
MHgxNiwgMHhmMywgMHhlMSwgMHg1YywKLSAgICAgICAgMHg3NiwgMHgxZSwgMHhlMSwgMHhhNSwg
MHhlMiwgMHg1NSwgMHhmMCwgMHg2NywKLSAgICAgICAgMHg5NSwgMHgzNiwgMHgyMywgMHhjOCwg
MHhiMywgMHg4OCwgMHhiNCwgMHg0NSwKLSAgICAgICAgMHg5ZSwgMHgxMywgMHhmOSwgMHg3OCwg
MHhkNywgMHhjOCwgMHg0NiwgMHhmNCwgfTsKKyAgICAgICAgMHgyOSwgMHg5RSwgMHg2NSwgMHhC
OCwgMHhFNywgMHg3MSwgMHhCOCwgMHgxRCwKKyAgICAgICAgMHhCMSwgMHhDNCwgMHg4RCwgMHhC
RSwgMHhDRSwgMHg1MCwgMHgyQSwgMHg4NCwKKyAgICAgICAgMHgwNSwgMHg0NCwgMHg3RiwgMHg0
NiwgMHgyRCwgMHhFNiwgMHg4MSwgMHhGQSwKKyAgICAgICAgMHhFRiwgMHgwQSwgMHg2QywgMHg2
NywgMHhBNywgMHgyQiwgMHhCNSwgMHgwRiwgfTsKICAgICBhdXRvIHNoYXJlZEtleSA9IENyeXB0
b0tleUFFUzo6aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMsIGNv
bnZlcnRCeXRlc1RvVmVjdG9yKHNoYXJlZEtleURhdGEsIHNpemVvZihzaGFyZWRLZXlEYXRhKSks
IHRydWUsIENyeXB0b0tleVVzYWdlRW5jcnlwdCB8IENyeXB0b0tleVVzYWdlRGVjcnlwdCk7CiAg
ICAgQVNTRVJUX1RSVUUoc2hhcmVkS2V5KTsKICAgICBhdXRvIHJlc3VsdCA9IFRva2VuUmVzcG9u
c2U6OnBhcnNlKCpzaGFyZWRLZXksIGNvbnZlcnRCeXRlc1RvVmVjdG9yKFRlc3REYXRhOjprQ3Rh
cENsaWVudFBpblRva2VuUmVzcG9uc2UsIHNpemVvZihUZXN0RGF0YTo6a0N0YXBDbGllbnRQaW5U
b2tlblJlc3BvbnNlKSkpOwpAQCAtMjg1LDcgKzI5NSw3IEBAIFRFU1QoQ3RhcFBpblRlc3QsIFRl
c3RQaW5BdXRoKQogCiAgICAgLy8gMi4gR2VuZXJhdGUgdGhlIHBpbkF1dGguCiAgICAgYXV0byBw
aW5BdXRoID0gcmVzdWx0LT5waW5BdXRoKGNvbnZlcnRCeXRlc1RvVmVjdG9yKHNoYXJlZEtleURh
dGEsIHNpemVvZihzaGFyZWRLZXlEYXRhKSkpOyAvLyBzaGFyZWRLZXlEYXRhIHByZXRlbmRzIHRv
IGJlIGNsaWVudERhdGFIYXNoCi0gICAgY29uc3QgdWludDhfdCBleHBlY3RlZFBpbkF1dGhbXSA9
IHsgMHhiMywgMHhjMiwgMHg2NSwgMHgxYywgMHhmZCwgMHhjOCwgMHg0MiwgMHhiNCwgMHg2MCwg
MHgxNiwgMHhlZCwgMHgyMCwgMHg2NCwgMHg1MywgMHhhZiwgMHg4NCB9OworICAgIGNvbnN0IHVp
bnQ4X3QgZXhwZWN0ZWRQaW5BdXRoW10gPSB7IDB4MGIsIDB4ZWMsIDB4OWQsIDB4YmEsIDB4Njks
IDB4YjAsIDB4MGYsIDB4NDUsIDB4MGIsIDB4ZWMsIDB4NjYsIDB4YjQsIDB4NzUsIDB4N2YsIDB4
OTMsIDB4ODUgfTsKICAgICBFWFBFQ1RfRVEocGluQXV0aC5zaXplKCksIDE2dSk7CiAgICAgRVhQ
RUNUX0VRKG1lbWNtcChwaW5BdXRoLmRhdGEoKSwgZXhwZWN0ZWRQaW5BdXRoLCBwaW5BdXRoLnNp
emUoKSksIDApOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0ZpZG9UZXN0RGF0YS5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zp
ZG9UZXN0RGF0YS5oCmluZGV4IDNjMjMwMmIwYTg4YjcyMTlkOWVjNmFkY2QxM2FkN2Q3YjdmZWRj
NjEuLmYyNTgxNjViNzMxYjk5ZWQ3OTVlMDQ2MWU4YTU2YmJkNWU1ZTlkMjUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmgKQEAgLTYxMiwx
NSArNjEyLDE1IEBAIGNvbnN0ZXhwciB1aW50OF90IGtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0
V2l0aFBpbltdID0gewogICAgIDB4NjIsIDB4NzUsIDB4NzYsCiAgICAgLy8gVHJ1ZSgyMSkKICAg
ICAweGY1LAotICAgIC8vIGtleSg4KSAtIHBpblByb3RvY29sCisgICAgLy8ga2V5KDgpIC0gcGlu
QXV0aAogICAgIDB4MDgsCi0gICAgLy8gdmFsdWUgLSAxCi0gICAgMHgwMSwKLSAgICAvLyBrZXko
OSkgLSBwaW5BdXRoCi0gICAgMHgwOSwKICAgICAvLyBieXRlcygxNikKICAgICAweDUwLCAweDAw
LCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDA4LCAweDA5LCAw
eDBhLAotICAgIDB4MGIsIDB4MGMsIDB4MGQsIDB4MGUsIDB4MGYKKyAgICAweDBiLCAweDBjLCAw
eDBkLCAweDBlLCAweDBmLAorICAgIC8vIGtleSg5KSAtIHBpblByb3RvY29sCisgICAgMHgwOSwK
KyAgICAvLyB2YWx1ZSAtIDEKKyAgICAweDAxLAogfTsKIAogY29uc3RleHByIHVpbnQ4X3Qga1Rl
c3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RbXSA9IHsKQEAgLTc0NSwxNSArNzQ1LDE1
IEBAIGNvbnN0ZXhwciB1aW50OF90IGtUZXN0Q29tcGxleEN0YXBHZXRBc3NlcnRpb25SZXF1ZXN0
V2l0aFBpbltdID0gewogICAgIDB4NjIsIDB4NzUsIDB4NzYsCiAgICAgLy8gdmFsdWUgLSBUcnVl
KDIxKQogICAgIDB4ZjUsCi0gICAgLy8ga2V5KDgpIC0gcGluUHJvdG9jb2wKLSAgICAweDA4LAot
ICAgIC8vIHZhbHVlIC0gMQotICAgIDB4MDEsCi0gICAgLy8ga2V5KDkpIC0gcGluQXV0aAotICAg
IDB4MDksCisgICAgLy8ga2V5KDYpIC0gcGluQXV0aAorICAgIDB4MDYsCiAgICAgLy8gYnl0ZXMo
MTYpCiAgICAgMHg1MCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwgMHgwNiwg
MHgwNywgMHgwOCwgMHgwOSwgMHgwYSwKLSAgICAweDBiLCAweDBjLCAweDBkLCAweDBlLCAweDBm
CisgICAgMHgwYiwgMHgwYywgMHgwZCwgMHgwZSwgMHgwZiwKKyAgICAvLyBrZXkoNykgLSBwaW5Q
cm90b2NvbAorICAgIDB4MDcsCisgICAgLy8gdmFsdWUgLSAxCisgICAgMHgwMSwKIH07CiAKIC8v
IENUQVAgcmVzcG9uc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTAzLDEyICsxMTAzLDExIEBAIGNvbnN0ZXhwciB1
aW50OF90IGtDdGFwQ2xpZW50UGluVG9rZW5SZXNwb25zZVtdID0gewogICAgIDB4YTEsCiAgICAg
Ly8ga2V5KDIpIC0gcGluVG9rZW4KICAgICAweDAyLAotICAgIC8vIGJ5dGVzKDMyKQotICAgIDB4
NTgsIDB4MjAsCisgICAgLy8gYnl0ZXMoMTYpCisgICAgMHg1MCwKICAgICAvLyBlbmNyeXB0ZWQg
dG9rZW4KLSAgICAweDQ4LCAweGI5LCAweDVkLCAweDNkLCAweDllLCAweGVlLCAweGU1LCAweDAw
LCAweGFiLCAweDUxLCAweDEzLCAweDJiLAotICAgIDB4MzUsIDB4NzcsIDB4NjYsIDB4NWMsIDB4
NDEsIDB4N2EsIDB4NTYsIDB4M2UsIDB4YjMsIDB4ZTIsIDB4M2MsIDB4YjcsCi0gICAgMHg2YSwg
MHgzNywgMHhiMywgMHhkZSwgMHg1NywgMHgyYiwgMHhjYSwgMHhhYSwKKyAgICAweDEzLCAweEE0
LCAweEVFLCAweEI3LCAweDBFLCAweEM5LCAweDFBLCAweEVBLCAweDAwLCAweDFFLCAweDkzLCAw
eDE2LAorICAgIDB4RjYsIDB4MUUsIDB4NDEsIDB4RjcsCiB9OwogCiBjb25zdGV4cHIgdWludDhf
dCBrQ3RhcENsaWVudFBpbktleUFncmVlbWVudFJlc3BvbnNlW10gPSB7CkBAIC0xMTQ0LDYgKzEx
NDMsMzkgQEAgY29uc3RleHByIHVpbnQ4X3Qga0N0YXBDbGllbnRQaW5LZXlBZ3JlZW1lbnRSZXNw
b25zZVtdID0gewogICAgIDB4NzAsIDB4NDUsIDB4RjQsIDB4NjEsIDB4MkYsIDB4QjIsIDB4MEMs
IDB4OTEsCiB9OwogCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcENsaWVudFBpbkludmFsaWRLZXlB
Z3JlZW1lbnRSZXNwb25zZVtdID0geworICAgIC8vIFN1Y2Nlc3MKKyAgICAweDAwLAorICAgIC8v
IG1hcCgxKQorICAgIDB4QTEsCisgICAgLy8ga2V5KDEpIC0ga2V5QWdyZWVtZW50CisgICAgMHgw
MSwKKyAgICAvLyBNYXAoNSkKKyAgICAweEE1LAorICAgIC8vIGt0eTogRUMga2V5IHR5cGUKKyAg
ICAweDAxLCAweDAyLAorICAgIC8vIGFsZzogRUNESDI1NiBzaWduYXR1cmUgYWxnb3JpdGhtCisg
ICAgMHgwMywgMHgzOCwgMHgxOCwKKyAgICAvLyBjcnY6IFAtMjU2IGN1cnZlCisgICAgMHgyMCwg
MHgwMSwKKyAgICAvLyB4LWNvb3JkaW5hdGUKKyAgICAweDIxLAorICAgIC8vIEJ5dGVzKDMyKQor
ICAgIDB4NTgsIDB4MjAsCisgICAgLy8gQnl0ZSBhcnJheSBjb250ZW50CisgICAgMHhFOCwgMHg3
NiwgMHgyNSwgMHg4OSwgMHg2RSwgMHhFNCwgMHhFNCwgMHg2NiwgMHhDMCwgMHgzMiwgMHg3Niwg
MHg2RSwKKyAgICAweDgwLCAweDg3LCAweDk2LCAweDJGLCAweDM2LCAweERGLCAweDlELCAweEZG
LCAweDhCLCAweDU2LCAweDdGLCAweDM3LAorICAgIDB4NjMsIDB4MDEsIDB4NUIsIDB4MTksIDB4
OTAsIDB4QTYsIDB4MEUsIDB4MTQsCisgICAgLy8geS1jb29yZGluYXRlCisgICAgMHgyMiwKKyAg
ICAvLyBCeXRlcygzMikKKyAgICAweDU4LCAweDIwLAorICAgIC8vIEJ5dGUgYXJyYXkgY29udGVu
dAorICAgIDB4MjcsIDB4REUsIDB4NjEsIDB4MkQsIDB4NjYsIDB4NDEsIDB4OEIsIDB4REEsIDB4
MTksIDB4NTAsIDB4NTgsIDB4MUUsCisgICAgMHhCQywgMHg1QywgMHg4QywgMHgxRCwgMHhBRCwg
MHg3MSwgMHgwQywgMHhCMSwgMHg0QywgMHgyMiwgMHhGOCwgMHhDOSwKKyAgICAweDcwLCAweDQ1
LCAweEY0LCAweDYxLCAweDJGLCAweEIyLCAweDBDLCAweDkxLAorfTsKKwogY29uc3RleHByIHVp
bnQ4X3Qga0N0YXBDbGllbnRQaW5SZXRyaWVzUmVzcG9uc2VbXSA9IHsKICAgICAvLyBTdWNjZXNz
CiAgICAgMHgwMCwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCA2NmY3
NGQzODJkYzRkMGRjYmVjNWE2ZmE0MDZkNGM0NDc5ZWY5YzhjLi5iZmM5Y2MzMzAzZmYxNDg2ZTlm
MzU5ZmY2ZDNlZTE3MWU1MTk5ZTJiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tCkBAIC00NSw2ICs0NSw3IEBAIHN0YXRpYyBib29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxT
dWNjZWRlZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0
ZU11bHRpcGxlTkZDVGFnc1ByZXNlbnQgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRlbnRpYWxzRm91bmQgPSBmYWxzZTsKIHN0YXRpYyBib29s
IHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDYW5jZWxJbW1lZGlhdGVseSA9IGZhbHNlOworc3RhdGlj
IFN0cmluZyB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUGluOwogCiBAaW50ZXJmYWNlIFRlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgOiBOU09iamVjdCA8X1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbERlbGVnYXRlPgogQGVuZApAQCAtODMsNiArODQsMTMgQEAgLSAodm9pZClwYW5lbDoo
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIGRpc21pc3NXZWJBdXRoZW50aWNhdGlv
blBhbmVsV2kKICAgICB9CiB9CiAKKy0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwgKilwYW5lbCByZXF1ZXN0UElOV2l0aFJlbWFpbmluZ1JldHJpZXM6KE5TVUludGVnZXIp
cmV0cmllcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKikpY29tcGxldGlv
bkhhbmRsZXIKK3sKKyAgICBBU1NFUlRfTkUocGFuZWwsIG5pbCk7CisgICAgRVhQRUNUX0VRKHJl
dHJpZXMsIDh1bCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIod2ViQXV0aGVudGljYXRpb25QYW5l
bFBpbik7Cit9CisKIEBlbmQKIAogQGludGVyZmFjZSBUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bEZha2VEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdh
dGU+CkBAIC03NDAsNiArNzQ4LDE0OSBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBh
bmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZENhbmNlbE5vQ3Jhc2gpCiAgICAgVXRpbDo6cnVu
KCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTm9DcmVkZW50aWFsc0ZvdW5kKTsKIH0KIAor
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRSZXRyaWVzRXJyb3IpCit7CisgICAg
cmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25F
eHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVz
c2FnZTpAIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVycm9yIGNvZGU6IDIiXTsKK30KKworVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRLZXlBZ3JlZW1lbnRFcnJvcikKK3sKKyAg
ICByZXNldCgpOworICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgYXV0byAq
Y29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRp
b25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxz
IiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3ZWJWaWV3IHdh
aXRGb3JNZXNzYWdlOkAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29kZTogMiJdOwor
fQorCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvck5vRGVs
ZWdhdGUpCit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBl
cmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2Fn
ZTpAIlBpbiBpcyBub3QgdmFsaWQ6ICJdOworfQorCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIFBpblJlcXVlc3RQaW5FcnJvck51bGxEZWxlZ2F0ZSkKK3sKKyAgICByZXNldCgpOworICAg
IFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4iIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdOworCisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQ
bHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CisgICAgW2RlbGVnYXRlIHNldElzTnVsbDp0cnVlXTsKKyAgICBbd2ViVmll
dyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3
ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiUGluIGlzIG5vdCB2YWxpZDogIl07Cit9CisKK1RFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVxdWVzdFBpbkVycm9yKQoreworICAgIHJlc2V0
KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlk
LXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
KworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisgICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRl
LmdldCgpXTsKKworICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxQaW4gPSAiMTIzIjsKKyAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwu
Z2V0KCldXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlBpbiBpcyBub3QgdmFsaWQ6
IDEyMyJdOworfQorCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldFBpblRva2Vu
RXJyb3IpCit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisg
ICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRo
SW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICB3
ZWJBdXRoZW50aWNhdGlvblBhbmVsUGluID0gIjEyMzQiOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3
ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29k
ZTogMiJdOworfQorCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFs
UGluKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1t
YWtlLWNyZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVu
dGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRV
SURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxQ
aW4gPSAiMTIzNCI7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6
QCJTdWNjZWVkZWQhIl07Cit9CisKK1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNz
ZXJ0aW9uUGluKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcg
c2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICB3ZWJBdXRoZW50aWNhdGlvblBh
bmVsUGluID0gIjEyMzQiOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNz
YWdlOkAiU3VjY2VlZGVkISJdOworfQorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01BWF9BTExPV0VEIDwgMTAxNTAwKQorVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBQaW5JbnZhbGlkS2V5QWdyZWVtZW50RXJyb3IpCit7CisgICAgcmVzZXQoKTsKKyAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWludmFs
aWQta2V5LWFncmVlbWVudCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRl
c3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxQaW4gPSAi
MTIzNCI7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJDYW5u
b3QgY3JlYXRlIGEgVG9rZW5SZXF1ZXN0LiJdOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmUzMWViM2JmZTFlMmNiY2I1MjE0YTM2ZWQ2ODRiMDUyNDk2ODJiMTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4uaHRtbApAQCAtMCwwICsxLDMy
IEBACis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+CisgICAgY29uc3Qg
dGVzdEN0YXBQaW5BdXRoSW52YWxpZEVycm9yQmFzZTY0ID0gIk13PT0iOworICAgIGNvbnN0IHRl
c3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQgPSAiQUtFRENBPT0iOworICAgIGNvbnN0IHRl
c3RQaW5HZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCA9ICJBS0VCcFFFQ0F6Z1lJQUVoV0NE
b2RpV0pidVRrYmNBeWRtNkFoNVl2TnQrZC9vdFdmemRqQVZzWmtLWU9GQ0pZSUNmZVlTMW1RWXZh
R1ZCWUhyeGNqQjJ0Y1F5eFRDTDR5WEJGOUdFdnNneVIiOworICAgIGNvbnN0IHRlc3RQaW5HZXRQ
aW5Ub2tlblJlc3BvbnNlQmFzZTY0ID0gIkFLRUNVQk9rN3JjT3lScnFBQjZURnZZZVFmYz0iOwor
ICAgIGNvbnN0IHRlc3RBc3NlcnRpb25NZXNzYWdlQmFzZTY0ID0KKyAgICAgICAgIkFLTUJvbUpw
WkZoQUtBaXR6dWorVHNsemVsZjMvdlp3SUd0RFFOZ29LZUZkNW9FaWVZemh5ekE2NXNhZjB0SzIi
ICsKKyAgICAgICAgIncvbW9vYTd0UXRHZ0Rkd1pJak9oamN1WjBwUTFham9FNEdSMGVYQmxhbkIx
WW14cFl5MXJaWGtDV0NWR3pIKzUiICsKKyAgICAgICAgIlo1MVZzdHVRa3VISTJlWGgwQ3QxZ1BD
MGdTeDNDV0xoNUk5YTJBRUFBQUJRQTFoSE1FVUNJUUNTRlR1dUJXZ0IiICsKKyAgICAgICAgIjQv
RjBWQjdEbFVWTTA5SUhQbXhlMU16SFV3Um9DUlpiQ0FJZ0dLb3Y2eG9BeDJNRWY2LzZxTnM4T3V0
emhQMkMiICsKKyAgICAgICAgIlFvSjFMN0ZlNjRHOXVCYz0iOworICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25m
aWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46IHRydWUsIHBheWxvYWRCYXNlNjQ6
IFt0ZXN0Q3RhcFBpbkF1dGhJbnZhbGlkRXJyb3JCYXNlNjQsIHRlc3RQaW5HZXRSZXRyaWVzUmVz
cG9uc2VCYXNlNjQsIHRlc3RQaW5HZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCwgdGVzdFBp
bkdldFBpblRva2VuUmVzcG9uc2VCYXNlNjQsIHRlc3RBc3NlcnRpb25NZXNzYWdlQmFzZTY0XSB9
IH0pOworICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsgaW5wdXQuZm9j
dXMoKTsgfSk7CisgICAgfQorCisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgcHVibGlj
S2V5OiB7CisgICAgICAgICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAg
ICAgICAgIHRpbWVvdXQ6IDEwMAorICAgICAgICB9CisgICAgfTsKKworICAgIG5hdmlnYXRvci5j
cmVkZW50aWFscy5nZXQob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgLy8g
Y29uc29sZS5sb2coIlN1Y2NlZWRlZCEiKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN1Y2NlZWRlZCEiKTsKKyAgICB9LCBl
cnJvciA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShl
cnJvci5tZXNzYWdlKTsKKyAgICB9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODNh
Y2E5ODc5NGI4YWU5NGFhZTEwZjdhZmFmNzI2YWVhYzkyZDljMQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwKQEAg
LTAsMCArMSwzMyBAQAorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dCI+Cis8c2NyaXB0Pgor
ICAgIGNvbnN0IHRlc3RDdGFwUGluSW52YWxpZEVycm9yQmFzZTY0ID0gIk1RPT0iOworICAgIGNv
bnN0IHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQgPSAiQUtFRENBPT0iOworICAgIGNv
bnN0IHRlc3RDdGFwSW52YWxpZFBhcmFtZXRlckVycm9yQmFzZTY0ID0gIkFnPT0iOworICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46IHRydWUsIHBh
eWxvYWRCYXNlNjQ6IFt0ZXN0Q3RhcFBpbkludmFsaWRFcnJvckJhc2U2NCwgdGVzdFBpbkdldFJl
dHJpZXNSZXNwb25zZUJhc2U2NCwgdGVzdEN0YXBJbnZhbGlkUGFyYW1ldGVyRXJyb3JCYXNlNjRd
IH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5m
b2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICBwdWJs
aWNLZXk6IHsKKyAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgbmFtZTogImxvY2Fs
aG9zdCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAg
ICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgaWQ6IG5ldyBVaW50
OEFycmF5KDE2KSwKKyAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgY2hhbGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiks
CisgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFs
ZzogLTcgfV0KKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUu
bG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4g
eworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVz
c2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1o
aWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGlu
LWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTkxNWIzZjhmZmRlYmEyODk5
NjIzNzZiNjQzY2Y5OTZmYTBhOGZiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFs
LWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzxpbnB1
dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0Q3RhcFBp
bkludmFsaWRFcnJvckJhc2U2NCA9ICJNUT09IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0UmV0cmll
c1Jlc3BvbnNlQmFzZTY0ID0gIkFLRURDQT09IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0S2V5QWdy
ZWVtZW50UmVzcG9uc2VCYXNlNjQgPSAiQUtFQnBRRUNBemdZSUFFaFdDRG9kaVdKYnVUa2JjQXlk
bTZBaDVZdk50K2Qvb3RXZnpkakFWc1prS1lPRkNKWUlDZmVZUzFtUVl2YUdWQllIcnhjakIydGNR
eXhUQ0w0eVhCRjlHRXZzZ3lSIjsKKyAgICBjb25zdCB0ZXN0Q3RhcEludmFsaWRQYXJhbWV0ZXJF
cnJvckJhc2U2NCA9ICJBZz09IjsKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
ICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IGhpZDog
eyBzdXBwb3J0Q2xpZW50UGluOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEN0YXBQaW5JbnZh
bGlkRXJyb3JCYXNlNjQsIHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQsIHRlc3RQaW5H
ZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCwgdGVzdEN0YXBJbnZhbGlkUGFyYW1ldGVyRXJy
b3JCYXNlNjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4g
eyBpbnB1dC5mb2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAg
ICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgbmFt
ZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdXNlcjogeworICAg
ICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgaWQ6
IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxl
c2VlZCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2hhbGxlbmdlOiBuZXcgVWludDhB
cnJheSgxNiksCisgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGlj
LWtleSIsIGFsZzogLTcgfV0KKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8v
IGNvbnNvbGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwg
ZXJyb3IgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
ZXJyb3IubWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3Jl
ZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwt
aGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZDExNTdjNDFjZjhj
M2QzN2Q5ZTgzMjQ3MDMzNWIzNmU3MWIwMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxp
bnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0Q3Rh
cFBpbkludmFsaWRFcnJvckJhc2U2NCA9ICJNUT09IjsKKyAgICBjb25zdCB0ZXN0Q3RhcEludmFs
aWRQYXJhbWV0ZXJFcnJvckJhc2U2NCA9ICJBZz09IjsKKyAgICBpZiAod2luZG93LmludGVybmFs
cykgeworICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbih7IGhpZDogeyBzdXBwb3J0Q2xpZW50UGluOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVz
dEN0YXBQaW5JbnZhbGlkRXJyb3JCYXNlNjQsIHRlc3RDdGFwSW52YWxpZFBhcmFtZXRlckVycm9y
QmFzZTY0XSB9IH0pOworICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsg
aW5wdXQuZm9jdXMoKTsgfSk7CisgICAgfQorCisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAg
ICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgIG5hbWU6
ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHVzZXI6IHsKKyAgICAg
ICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIGlkOiBu
ZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNl
ZWQiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJy
YXkoMTYpLAorICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1r
ZXkiLCBhbGc6IC03IH1dCisgICAgICAgIH0KKyAgICB9OworCisgICAgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAvLyBj
b25zb2xlLmxvZygiU3VjY2VlZGVkISIpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiU3VjY2VlZGVkISIpOworICAgIH0sIGVy
cm9yID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGVy
cm9yLm1lc3NhZ2UpOworICAgIH0pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLXBpbi1pbnZhbGlkLWtleS1hZ3JlZWVtZW50Lmh0bWwgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtaGlkLXBpbi1pbnZhbGlkLWtleS1hZ3JlZWVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY4NTE4
ZmYwYzc4YWU4YmFkYWI1MTQ5MDg1NzgyZWFjYjkyYjUzNQotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWludmFsaWQta2V5LWFncmVlZW1lbnQuaHRtbApAQCAtMCww
ICsxLDMzIEBACis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+CisgICAg
Y29uc3QgdGVzdEN0YXBQaW5JbnZhbGlkRXJyb3JCYXNlNjQgPSAiTVE9PSI7CisgICAgY29uc3Qg
dGVzdFBpbkdldFJldHJpZXNSZXNwb25zZUJhc2U2NCA9ICJBS0VEQ0E9PSI7CisgICAgY29uc3Qg
dGVzdFBpbkludmFsaWRHZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCA9ICJBS0VCcFFFQ0F6
Z1lJQUVoV0NEb2RpV0pidVRrWnNBeWRtNkFoNVl2TnQrZC80dFdmemRqQVZzWmtLWU9GQ0pZSUNm
ZVlTMW1RWXZhR1ZCWUhyeGNqQjJ0Y1F5eFRDTDR5WEJGOUdFdnNneVIiOworICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46IHRydWUsIHBheWxvYWRC
YXNlNjQ6IFt0ZXN0Q3RhcFBpbkludmFsaWRFcnJvckJhc2U2NCwgdGVzdFBpbkdldFJldHJpZXNS
ZXNwb25zZUJhc2U2NCwgdGVzdFBpbkludmFsaWRHZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2
NF0gfSB9KTsKKyAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0
LmZvY3VzKCk7IH0pOworICAgIH0KKworICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1
YmxpY0tleTogeworICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAibG9j
YWxob3N0IiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAg
ICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICBpZDogbmV3IFVp
bnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2
KSwKKyAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5Iiwg
YWxnOiAtNyB9XQorICAgICAgICB9CisgICAgfTsKKworICAgIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgLy8gY29uc29s
ZS5sb2coIlN1Y2NlZWRlZCEiKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN1Y2NlZWRlZCEiKTsKKyAgICB9LCBlcnJvciA9
PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShlcnJvci5t
ZXNzYWdlKTsKKyAgICB9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFs
LWhpZC1waW4uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzE1YTBmZjUxNmU5YjYyNjgwMWE0OGY2NzViZDA2OTE2ZjhkYWI0MAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPGlucHV0
IHR5cGU9InRleHQiIGlkPSJpbnB1dCI+Cis8c2NyaXB0PgorICAgIGNvbnN0IHRlc3RDdGFwUGlu
QXV0aEludmFsaWRFcnJvckJhc2U2NCA9ICJNdz09IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0UmV0
cmllc1Jlc3BvbnNlQmFzZTY0ID0gIkFLRURDQT09IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0S2V5
QWdyZWVtZW50UmVzcG9uc2VCYXNlNjQgPSAiQUtFQnBRRUNBemdZSUFFaFdDRG9kaVdKYnVUa2Jj
QXlkbTZBaDVZdk50K2Qvb3RXZnpkakFWc1prS1lPRkNKWUlDZmVZUzFtUVl2YUdWQllIcnhjakIy
dGNReXhUQ0w0eVhCRjlHRXZzZ3lSIjsKKyAgICBjb25zdCB0ZXN0UGluR2V0UGluVG9rZW5SZXNw
b25zZUJhc2U2NCA9ICJBS0VDVUJPazdyY095UnJxQUI2VEZ2WWVRZmM9IjsKKyAgICBjb25zdCB0
ZXN0Q3JlYXRpb25NZXNzYWdlQmFzZTY0ID0KKyAgICAgICAgIkFLTUJabkJoWTJ0bFpBSll4RWJN
Zjdsbm5WV3kyNUNTNGNqWjVlSFFLM1dBOExTQkxIY0pZdUhrajFyWVFRQUEiICsKKyAgICAgICAg
IkFFNzRvQkh6akFwTkZZQUdGeEVmbnR4OUFFQW9DSzNPNlA1T3lYTjZWL2YrOW5BZ2EwTkEyQ2dw
NFYzbWdTSjUiICsKKyAgICAgICAgImpPSExNRHJteHAvUzByYkQrYWlocnUxQzBhQU4zQmtpTTZH
Tnk1blNsRFZxT2dUZ3BRRUNBeVlnQVNGWUlFRmIiICsKKyAgICAgICAgImhlM1JrTnVkNnNneXJh
QkdqbGgxcHpUbENaZWhRbEwvYjE4SFo2V0dJbGdnSmdmVWQvZW45cDVBSXFNUWJVbmkiICsKKyAg
ICAgICAgIm5FZVhkRkxrdlcwL3pWNUJwRWpqTnhBRG8yTmhiR2NtWTNOcFoxaEhNRVVDSVFES2cr
WkJtRUJ0ZjBsV3E0UmUiICsKKyAgICAgICAgImRINC9pL0xPWXFPUjR1UjJOQWoyelFtdzlRSWdi
VFhiNGh2RmJqNFQyN2J2L3JHcmMreSswcHVvWU9Ca0JrOVAiICsKKyAgICAgICAgIm1DZXdXbE5q
ZURWamdWa0N3akNDQXI0d2dnR21vQU1DQVFJQ0JIU0cvY0l3RFFZSktvWklodmNOQVFFTEJRQXci
ICsKKyAgICAgICAgIkxqRXNNQ29HQTFVRUF4TWpXWFZpYVdOdklGVXlSaUJTYjI5MElFTkJJRk5s
Y21saGJDQTBOVGN5TURBMk16RXciICsKKyAgICAgICAgIklCY05NVFF3T0RBeE1EQXdNREF3V2hn
UE1qQTFNREE1TURRd01EQXdNREJhTUc4eEN6QUpCZ05WQkFZVEFsTkYiICsKKyAgICAgICAgIk1S
SXdFQVlEVlFRS0RBbFpkV0pwWTI4Z1FVSXhJakFnQmdOVkJBc01HVUYxZEdobGJuUnBZMkYwYjNJ
Z1FYUjAiICsKKyAgICAgICAgIlpYTjBZWFJwYjI0eEtEQW1CZ05WQkFNTUgxbDFZbWxqYnlCVk1r
WWdSVVVnVTJWeWFXRnNJREU1TlRVd01ETTQiICsKKyAgICAgICAgIk5ESXdXVEFUQmdjcWhrak9Q
UUlCQmdncWhrak9QUU1CQndOQ0FBU1ZYZk90OXlSOU1YWHYvWnpFOHhwT2g0NjYiICsKKyAgICAg
ICAgIjRZRUpWbUZRK3ppTExsOWxKNzlYUUpxbGdhVU5Dc1V2R0VSY0NoTlVpaE5UeUtUbG1uQk9V
anZBVGV2dG8yd3ciICsKKyAgICAgICAgImFqQWlCZ2tyQmdFRUFZTEVDZ0lFRlRFdU15NDJMakV1
TkM0eExqUXhORGd5TGpFdU1UQVRCZ3NyQmdFRUFZTGwiICsKKyAgICAgICAgIkhBSUJBUVFFQXdJ
RklEQWhCZ3NyQmdFRUFZTGxIQUVCQkFRU0JCRDRvQkh6akFwTkZZQUdGeEVmbnR4OU1Bd0ciICsK
KyAgICAgICAgIkExVWRFd0VCL3dRQ01BQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBREZjU0lE
bW1sSitPR2FKdlduOUNxaHYiICsKKyAgICAgICAgIlNldWVUb1ZGUVZWdnF0QUxPZ0NLSGR3QitX
eDI5bWcyR3BIaU1zZ1FwNXhqQjB5YmJucEc2eDIxMkZ4RVNKK0ciICsKKyAgICAgICAgImluWkQw
aXBjaGk3QVB3UGxoSXZqZ0gxNnpWWDQ0YTRlNGhPc2M2dExJT1A3MVNhTXNIdUhnQ2NkSDB2ZzVk
MnMiICsKKyAgICAgICAgImMwMDZXSmU5VFhPNmZ6VitvZ2pKbllwTktRTG1DWG9BWEUzSkJOd0tH
QklPQ3ZmUURQeVdtaWlHNWJHeFlmUHQiICsKKyAgICAgICAgInk4WjNwbmpYKzFNRG5NMmhocjQw
dWxNeGxTTkRuWC9aU25EeU1HSWJrOFRPUW1qVEYwMlVPOGF1UDhrM3d0NUQiICsKKyAgICAgICAg
IjFyUk9JUlU5K0ZDU1g1V1FZaTY4UnVEckdNWkI4UDUrYnlvSnFiS1FkeG4yTG1FMW9aQXlvaFBB
bUxjb1BPND0iOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFs
cy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRD
bGllbnRQaW46IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0Q3RhcFBpbkF1dGhJbnZhbGlkRXJy
b3JCYXNlNjQsIHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQsIHRlc3RQaW5HZXRLZXlB
Z3JlZW1lbnRSZXNwb25zZUJhc2U2NCwgdGVzdFBpbkdldFBpblRva2VuUmVzcG9uc2VCYXNlNjQs
IHRlc3RDcmVhdGlvbk1lc3NhZ2VCYXNlNjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRo
VXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5mb2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25z
dCBvcHRpb25zID0geworICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIHJwOiB7Cisg
ICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisg
ICAgICAgICAgICAgICAgaWQ6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgICAgICBk
aXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2hh
bGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1z
OiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0KKyAgICAgICAgfQorICAgIH07CisK
KyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlh
bCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNj
ZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJv
ci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387005</attachid>
            <date>2020-01-07 11:25:57 -0800</date>
            <delta_ts>2020-01-07 14:05:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191516-20200107112556.patch</filename>
            <type>text/plain</type>
            <size>85554</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY4YWIxMDU1YWZlOTBl
NTY5OTU5NGU0YmVjYmI1ZDcyNzdjNzZmNC4uZDQ2YjQyYTE0YjkyNjI1ZWQxZTkyYTNiNjVjNjBm
YTBiMTZiMGI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAxLTA2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBTdXBw
b3J0IENUQVAgQ2xpZW50IFBpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkxNTE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjU1ODU1OD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5
IEFQSSB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1
ZXN0Q29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OmVuY29kZU1ha2VDcmVkZW5pdGFsUmVx
dWVzdEFzQ0JPUik6CisgICAgICAgIChmaWRvOjplbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXND
Qk9SKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcDoKKyAgICAgICAg
KGZpZG86OnBpbjo6UmV0cmllc1Jlc3BvbnNlOjpwYXJzZSk6CisgICAgICAgIChmaWRvOjpwaW46
OlRva2VuUmVzcG9uc2U6OnBhcnNlKToKKyAgICAgICAgKGZpZG86OnBpbjo6VG9rZW5SZXF1ZXN0
Ojp0cnlDcmVhdGUpOgorICAgICAgICAoZmlkbzo6cGluOjplbmNvZGVBc0NCT1IpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmg6CisgICAgICAgICogY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0
b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpD
cnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQpOgorICAgICAgICAqIGNyeXB0
by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
cmFuc2Zvcm1BRVNfQ0JDKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19D
QkM6OnBsYXRmb3JtRW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQpOgorICAgICAgICAqIHRlc3RpbmcvTW9ja1dlYkF1dGhl
bnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1dlYkF1dGhl
bnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6SGlkQ29uZmlndXJhdGlvbjo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246Okhp
ZENvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICogdGVzdGluZy9Nb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uLmlkbDoKKwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gSXNzdWUgbWFjaCBsb29rdXAg
ZXh0ZW5zaW9uIHRvIGxhdW5jaCBzZXJ2aWNlcyBkYWVtb24gZm9yIE1haWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
OTljMzcyNzAxZmMzMzMwNDM0NDE5YTZkYTViMzY2YjE4N2E3ZjdlNy4uMGJiZTM4OWFkODNkZGFk
MDVlNDA2MzY2N2ZjZTIwMTE3YzJjZDE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAy
MC0wMS0wNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtX
ZWJBdXRobl0gU3VwcG9ydCBDVEFQIENsaWVudCBQaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTUxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTY1NTg1NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0b3JDbGllbnRQSU4gZnJvbSB0aGUg
c3BlYzoKKyAgICAgICAgaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1w
cy0yMDE5MDEzMC9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMt
MjAxOTAxMzAuaHRtbCNhdXRoZW50aWNhdG9yQ2xpZW50UElOCisgICAgICAgIFNwZWNpZmljYWxs
eSwgaXQgaW1wbGVtZW50cyBzZWN0aW9uIDUuNS4xLCA1LjUuMywgNS41LjQsIDUuNS43LCBhbmQg
NS41LjguCisKKyAgICAgICAgSGVyZSBpcyB0aGUgZmxvdyBob3cgbWFrZUNyZWRlbnRpYWwvZ2V0
QXNzZXJ0aW9uIHdvcmtzIHdpdGggYSBQSU4gaW4gb3VyIGltcGxlbWVudGF0aW9uOgorICAgICAg
ICAxLiBEZXRlcm1pbmUgaWYgdGhlIGNvbm5lY3RlZCBhdXRoZW50aWNhdG9yIGhhcyBhIFBJTjsK
KyAgICAgICAgMi4gSWYgeWVzLCBzZW5kIHRoZSBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb24g
cmVxdWVzdCB0byB0aGUgYXV0aGVudGljYXRvciB3aXRoIGFuIGVtcHR5IHBpbkF1dGgKKyAgICAg
ICAgc3VjaCB0aGF0IHRoZSBhdXRoZW50aWNhdG9yIHdpbGwgd2luayBmb3IgdXNlciBnZXN0dXJl
cy4gVGhpcyBzdGVwIGludGVuZHMgdG8gY29uZmlybSB0aGUgYXV0aGVudGljYXRvcgorICAgICAg
ICBpcyB0aGUgb25lIHRoZSB1c2VyIHdhbnRzIHRvIHVzZS4gT3RoZXJ3aXNlLCB3ZSBkb24ndCBr
bm93IHdoaWNoIGF1dGhlbnRpY2F0b3IgdG8gc2VuZCB0aGUgUElOCisgICAgICAgIGlmIG11bHRp
cGxlIGFyZSBjb25uZWN0ZWQ7CisgICAgICAgIDMuIE9uY2UgdGhlIHVzZXIgY29uZmlybXMgdGhl
IGF1dGhldG5pY2F0b3IsIGl0IHdpbGwgcmV0dXJuIGVpdGhlciBDVEFQMl9FUlJfUElOX0lOVkFM
SUQgb3IKKyAgICAgICAgQ1RBUDJfRVJSX1BJTl9BVVRIX0lOVkFMSUQuIFNvbWUgYXV0aGVudGlj
YXRvcnMgcmV0dXJuIENUQVAyX0VSUl9QSU5fQVVUSF9JTlZBTElEIGV2ZW4gdGhvdWdoCisgICAg
ICAgIGl0IGlzIG5vdCBzdWdnZXN0ZWQgYnkgdGhlIHNwZWM7CisgICAgICAgIDQuIEdldCByZXRy
aWVzIGZyb20gdGhlIGF1dGhlbnRpY2F0b3I7CisgICAgICAgIDUuIEdldCBrZXkgYWdyZWVtZW50
IGZyb20gdGhlIGF1dGhlbnRpY2F0b3I7CisgICAgICAgIDYuIEFzayB0aGUgVUkgY2xpZW50IGZv
ciB0aGUgUElOIGFuZCBhdCB0aGUgbWVhbnRpbWUgaW5mb3JtIGl0IHRoZSByZXRyaWVzOworICAg
ICAgICA3LiBHZXQgcGluIHRva2VuIGZyb20gdGhlIGF1dGhlbnRpY2F0b3I7CisgICAgICAgIDgu
IFJlc2VuZCB0aGUgbWFrZUNyZWRlbnRpYWwvZ2V0QXNzZXJ0aW9uIHJlcXVlc3Qgd2l0aCB0aGUg
ZGVzaXJlZCBwaW5BdXRoLgorCisgICAgICAgIEJlc2lkZXMgaW1wbGVtZW50YXRpbmcgdGhlIGFi
b3ZlIGZsb3csIHRoaXMgcGF0Y2ggYWxzbyBmaXhlcyBzb21lIGJ1Z3Mgd2l0aGluIHRoZSBQSU4g
Y29tbWFuZHMgZW5jb2RlcjoKKyAgICAgICAgMS4gcGluQXV0aC9waW5Qcm90b2NvbCBhcmUgd3Jv
bmdseSBlbmNvZGVkIGZvciBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb247CisgICAgICAgIDIu
IEFFUyBDQkMgc2hvdWxkIGJlIGNhbGxlZCB3aXRob3V0IGFueSBwYWRkaW5nLiBUaGVyZWZvcmUs
IENyeXB0b0FsZ29yaXRobUFFU19DQkMgYWRkcyBhIG5vIHBhZGRpbmcgbW9kZTsKKyAgICAgICAg
My4gVGhlIHNoYXJlZFNlY3JldCBpcyB0aGUgU0hBMjU2IGRpZ2VzdCBvZiB0aGUgRUNESCBrZXkg
YWdyZWVtZW50IGluc3RlYWQgb2YgdGhlIHJhdyBrZXkgYWdyZWVtZW50LgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6CisgICAgICAg
IChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OnJlcXVlc3RQaW4gY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6OnJlcXVlc3RQaW4p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJB
dXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW06CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OldlYkF1dGhlbnRpY2F0aW9u
UGFuZWxDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xp
ZW50OjpyZXF1ZXN0UGluIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vTW9jay9Nb2NrSGlkQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vY2tI
aWRDb25uZWN0aW9uOjpmZWVkUmVwb3J0cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpD
dGFwQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0OjpDdGFw
QXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZl
ZCk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpnZXRBc3NlcnRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25B
ZnRlclJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRv
cjo6Z2V0UmV0cmllcyk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250
aW51ZUdldEtleUFncmVlbWVudEFmdGVyR2V0UmV0cmllcyk6CisgICAgICAgIChXZWJLaXQ6OkN0
YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZVJlcXVlc3RQaW5BZnRlckdldEtleUFncmVlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldFBpblRva2Vu
QWZ0ZXJSZXF1ZXN0UGluKToKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmNv
bnRpbnVlUmVxdWVzdEFmdGVyR2V0UGluVG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0
aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZlZCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2Zp
ZG8vQ3RhcEF1dGhlbnRpY2F0b3IuaDoKKwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFuICA8
cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gSXNzdWUgbWFjaCBsb29rdXAgZXh0
ZW5zaW9uIHRvIGxhdW5jaCBzZXJ2aWNlcyBkYWVtb24gZm9yIE1haWwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0
Q29udmVydGVyLmNwcAppbmRleCBiOTZkYWJiNTk4NjljNDI1YmRiYmE0N2U5M2Y1ZDMwMDk4YWE5
ZDg5Li4xNTVlNWQxZWUyZTNmODVkNzQ0OTIwZTRhYTM4YjllOGQ5YTcyNjQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZl
cnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0Rldmlj
ZVJlcXVlc3RDb252ZXJ0ZXIuY3BwCkBAIC0xMjYsOCArMTI2LDggQEAgVmVjdG9yPHVpbnQ4X3Q+
IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4m
IGhhc2gsIGMKIAogICAgIGlmIChwaW4pIHsKICAgICAgICAgQVNTRVJUKHBpbi0+cHJvdG9jb2wg
Pj0gMCk7Ci0gICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDgpXSA9IENCT1JWYWx1ZShwaW4tPnBy
b3RvY29sKTsKLSAgICAgICAgY2Jvck1hcFtDQk9SVmFsdWUoOSldID0gQ0JPUlZhbHVlKFdURk1v
dmUocGluLT5hdXRoKSk7CisgICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDgpXSA9IENCT1JWYWx1
ZShXVEZNb3ZlKHBpbi0+YXV0aCkpOworICAgICAgICBjYm9yTWFwW0NCT1JWYWx1ZSg5KV0gPSBD
Qk9SVmFsdWUocGluLT5wcm90b2NvbCk7CiAgICAgfQogCiAgICAgYXV0byBzZXJpYWxpemVkUGFy
YW0gPSBDQk9SV3JpdGVyOjp3cml0ZShDQk9SVmFsdWUoV1RGTW92ZShjYm9yTWFwKSkpOwpAQCAt
MTcyLDggKzE3Miw4IEBAIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0
QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uCiAKICAgICBpZiAocGluKSB7
CiAgICAgICAgIEFTU0VSVChwaW4tPnByb3RvY29sID49IDApOwotICAgICAgICBjYm9yTWFwW0NC
T1JWYWx1ZSg4KV0gPSBDQk9SVmFsdWUocGluLT5wcm90b2NvbCk7Ci0gICAgICAgIGNib3JNYXBb
Q0JPUlZhbHVlKDkpXSA9IENCT1JWYWx1ZShXVEZNb3ZlKHBpbi0+YXV0aCkpOworICAgICAgICBj
Ym9yTWFwW0NCT1JWYWx1ZSg2KV0gPSBDQk9SVmFsdWUoV1RGTW92ZShwaW4tPmF1dGgpKTsKKyAg
ICAgICAgY2Jvck1hcFtDQk9SVmFsdWUoNyldID0gQ0JPUlZhbHVlKHBpbi0+cHJvdG9jb2wpOwog
ICAgIH0KIAogICAgIGF1dG8gc2VyaWFsaXplZFBhcmFtID0gQ0JPUldyaXRlcjo6d3JpdGUoQ0JP
UlZhbHVlKFdURk1vdmUoY2Jvck1hcCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1Bpbi5jcHAKaW5kZXggN2YwYzY1OWQ4NGQxYmQyN2QyYTU2Yjg0YmVlOTE4ZWY1
ODMyNmEzOC4uZTE5YTFkM2MzYjA1ZDA5OTk3MGNhODhjZTcyM2JkOTY5MmI1MmNhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKQEAgLTEyNiw3ICsx
MjYsNyBAQCBPcHRpb25hbDxSZXRyaWVzUmVzcG9uc2U+IFJldHJpZXNSZXNwb25zZTo6cGFyc2Uo
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpbkJ1ZmZlcgogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCiAgICAgUmV0cmllc1Jlc3BvbnNlIHJldDsKLSAgICByZXQucmV0cmllcyA9IHN0YXRp
Y19jYXN0PGludDY0X3Q+KGl0LT5zZWNvbmQuZ2V0VW5zaWduZWQoKSk7CisgICAgcmV0LnJldHJp
ZXMgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaXQtPnNlY29uZC5nZXRVbnNpZ25lZCgpKTsKICAg
ICByZXR1cm4gcmV0OwogfQogCkBAIC0yMjcsNyArMjI3LDcgQEAgT3B0aW9uYWw8VG9rZW5SZXNw
b25zZT4gVG9rZW5SZXNwb25zZTo6cGFyc2UoY29uc3QgV2ViQ29yZTo6Q3J5cHRvS2V5QUVTJiBz
aGFyZWQKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBjb25zdCBhdXRvJiBlbmNy
eXB0ZWRUb2tlbiA9IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOwogCi0gICAgYXV0byB0b2tl
blJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdCh7IH0sIHNo
YXJlZEtleSwgZW5jcnlwdGVkVG9rZW4pOworICAgIGF1dG8gdG9rZW5SZXN1bHQgPSBDcnlwdG9B
bGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQoeyB9LCBzaGFyZWRLZXksIGVuY3J5cHRl
ZFRva2VuLCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpQYWRkaW5nOjpObyk7CiAgICAgaWYgKHRv
a2VuUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owog
ICAgIGF1dG8gdG9rZW4gPSB0b2tlblJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKQEAgLTI2
NywxMSArMjY3LDE2IEBAIE9wdGlvbmFsPFRva2VuUmVxdWVzdD4gVG9rZW5SZXF1ZXN0Ojp0cnlD
cmVhdGUoY29uc3QgQ1N0cmluZyYgcGluLCBjb25zdCBDcnlwdG9LCiAgICAgQVNTRVJUKCFrZXlQ
YWlyUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKTsKICAgICBhdXRvIGtleVBhaXIgPSBrZXlQYWlyUmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCi0gICAgLy8gMi4gVXNlIEVDREggdG8gY29tcHV0
ZSB0aGUgc2hhcmVkIEFFUy1DQkMga2V5LgorICAgIC8vIDIuIFVzZSBFQ0RIIGFuZCBTSEEtMjU2
IHRvIGNvbXB1dGUgdGhlIHNoYXJlZCBBRVMtQ0JDIGtleS4KICAgICBhdXRvIHNoYXJlZEtleVJl
c3VsdCA9IENyeXB0b0FsZ29yaXRobUVDREg6OnBsYXRmb3JtRGVyaXZlQml0cyhkb3duY2FzdDxD
cnlwdG9LZXlFQz4oKmtleVBhaXIucHJpdmF0ZUtleSksIHBlZXJLZXkpOwogICAgIGlmICghc2hh
cmVkS2V5UmVzdWx0KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGF1dG8gc2hh
cmVkS2V5ID0gQ3J5cHRvS2V5QUVTOjppbXBvcnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6QUVTX0NCQywgV1RGTW92ZSgqc2hhcmVkS2V5UmVzdWx0KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNh
Z2VFbmNyeXB0IHwgQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0KTsKKworICAgIGF1dG8gY3J5cHRvID0g
UEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZShQQUw6OkNyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpT
SEFfMjU2KTsKKyAgICBjcnlwdG8tPmFkZEJ5dGVzKHNoYXJlZEtleVJlc3VsdC0+ZGF0YSgpLCBz
aGFyZWRLZXlSZXN1bHQtPnNpemUoKSk7CisgICAgYXV0byBzaGFyZWRLZXlIYXNoID0gY3J5cHRv
LT5jb21wdXRlSGFzaCgpOworCisgICAgYXV0byBzaGFyZWRLZXkgPSBDcnlwdG9LZXlBRVM6Omlt
cG9ydFJhdyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDLCBXVEZNb3ZlKHNoYXJl
ZEtleUhhc2gpLCB0cnVlLCBDcnlwdG9LZXlVc2FnZUVuY3J5cHQgfCBDcnlwdG9LZXlVc2FnZURl
Y3J5cHQpOwogICAgIEFTU0VSVChzaGFyZWRLZXkpOwogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBl
bmNvZGVzIHRoZSBwdWJsaWMga2V5IG9mIHRoZSBhYm92ZSBrZXkgcGFpciBpbnRvIENPU0UgZm9y
bWF0LgpAQCAtMjgwLDcgKzI4NSw3IEBAIE9wdGlvbmFsPFRva2VuUmVxdWVzdD4gVG9rZW5SZXF1
ZXN0Ojp0cnlDcmVhdGUoY29uc3QgQ1N0cmluZyYgcGluLCBjb25zdCBDcnlwdG9LCiAgICAgYXV0
byBjb3NlS2V5ID0gZW5jb2RlQ09TRVB1YmxpY0tleShyYXdQdWJsaWNLZXlSZXN1bHQucmV0dXJu
VmFsdWUoKSk7CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGNhbGN1bGF0ZXMgYSBTSEEtMjU2IGRp
Z2VzdCBvZiB0aGUgUElOLCBhbmQgc2hyaW5rIHRvIHRoZSBsZWZ0IDE2IGJ5dGVzLgotICAgIGF1
dG8gY3J5cHRvID0gUEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZShQQUw6OkNyeXB0b0RpZ2VzdDo6
QWxnb3JpdGhtOjpTSEFfMjU2KTsKKyAgICBjcnlwdG8gPSBQQUw6OkNyeXB0b0RpZ2VzdDo6Y3Jl
YXRlKFBBTDo6Q3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yNTYpOwogICAgIGNyeXB0by0+
YWRkQnl0ZXMocGluLmRhdGEoKSwgcGluLmxlbmd0aCgpKTsKICAgICBhdXRvIHBpbkhhc2ggPSBj
cnlwdG8tPmNvbXB1dGVIYXNoKCk7CiAgICAgcGluSGFzaC5zaHJpbmsoMTYpOwpAQCAtMzAyLDcg
KzMwNyw3IEBAIGNvbnN0IENyeXB0b0tleUFFUyYgVG9rZW5SZXF1ZXN0OjpzaGFyZWRLZXkoKSBj
b25zdAogCiBWZWN0b3I8dWludDhfdD4gZW5jb2RlQXNDQk9SKGNvbnN0IFRva2VuUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICBhdXRvIHJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBs
YXRmb3JtRW5jcnlwdCh7IH0sIHJlcXVlc3Quc2hhcmVkS2V5KCksIHJlcXVlc3QubV9waW5IYXNo
KTsKKyAgICBhdXRvIHJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRW5j
cnlwdCh7IH0sIHJlcXVlc3Quc2hhcmVkS2V5KCksIHJlcXVlc3QubV9waW5IYXNoLCBDcnlwdG9B
bGdvcml0aG1BRVNfQ0JDOjpQYWRkaW5nOjpObyk7CiAgICAgQVNTRVJUKCFyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpOwogCiAgICAgcmV0dXJuIGVuY29kZVBpbkNvbW1hbmQoU3ViY29tbWFuZDo6a0dl
dFBpblRva2VuLCBbY29zZUtleSA9IFdURk1vdmUocmVxdWVzdC5tX2Nvc2VLZXkpLCBlbmNyeXB0
ZWRQaW4gPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCldIChDQk9SVmFsdWU6Ok1hcFZhbHVl
KiBtYXApIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1Bpbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bp
bi5oCmluZGV4IDM1NzQzYTAwMzA3ZGNmYmQ5ZTQ4OGQ5NWQwYmUwYjI3NDgwZTU5NmIuLmY1YjFl
Y2EyZjU0YWIyNzJmNWY0ZDFmNTdjZGM1ODQ3MTI1MGIzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmgKQEAgLTc5LDcgKzc5LDcgQEAgZW51bSBjbGFzcyBS
ZXNwb25zZUtleSA6IHVpbnQ4X3QgewogCiAvLyBrUHJvdG9jb2xWZXJzaW9uIGlzIHRoZSB2ZXJz
aW9uIG9mIHRoZSBQSU4gcHJvdG9jb2wgdGhhdCB0aGlzIGNvZGUKIC8vIGltcGxlbWVudHMuCi1j
b25zdGV4cHIgaW50IGtQcm90b2NvbFZlcnNpb24gPSAxOworY29uc3RleHByIGludDY0X3Qga1By
b3RvY29sVmVyc2lvbiA9IDE7CiAKIC8vIGVuY29kZUNPU0VQdWJsaWNLZXkgdGFrZXMgYSByYXcg
RUNESDI1NiBwdWJsaWMga2V5IGFuZCByZXR1cm5zIGl0IGFzIGEgQ09TRSBzdHJ1Y3R1cmUuCiBX
RUJDT1JFX0VYUE9SVCBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGVuY29kZUNPU0VQdWJsaWNL
ZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpOwpAQCAtMTEwLDcgKzExMCw3IEBAIHN0cnVj
dCBSZXRyaWVzUmVzcG9uc2UgewogCiAgICAgLy8gcmV0cmllcyBpcyB0aGUgbnVtYmVyIG9mIFBJ
TiBhdHRlbXB0cyByZW1haW5pbmcgYmVmb3JlIHRoZSBhdXRoZW50aWNhdG9yCiAgICAgLy8gbG9j
a3MuCi0gICAgaW50IHJldHJpZXM7CisgICAgdWludDY0X3QgcmV0cmllczsKIAogcHJpdmF0ZToK
ICAgICBSZXRyaWVzUmVzcG9uc2UoKTsKQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAKICAg
ICAvLyBzaGFyZWRLZXkgcmV0dXJucyB0aGUgc2hhcmVkIEVDREgga2V5IHRoYXQgd2FzIHVzZWQg
dG8gZW5jcnlwdCB0aGUgUElOLgogICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGRlY3J5cHQgdGhl
IHJlc3BvbnNlLgotICAgIGNvbnN0IFdlYkNvcmU6OkNyeXB0b0tleUFFUyYgc2hhcmVkS2V5KCkg
Y29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgV2ViQ29yZTo6Q3J5cHRvS2V5QUVTJiBz
aGFyZWRLZXkoKSBjb25zdDsKIAogICAgIGZyaWVuZCBWZWN0b3I8dWludDhfdD4gZW5jb2RlQXND
Qk9SKGNvbnN0IFRva2VuUmVxdWVzdCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKaW5kZXggZmQ5ODkx
MmI3MGRjMGI1MWQxYjk4NzkwNjY0ZDcyYjQ2ZTM0MjhmZS4uMjczMjk4NWI3N2ZlZGZjMzk2NzRk
NDc0OWQ4OTU1MGEwYTE3MWMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaApAQCAtMzYsMTMgKzM2LDE4
IEBAIGNsYXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQyBm
aW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgorICAgIGVudW0gY2xhc3Mg
UGFkZGluZyA6IHVpbnQ4X3QgeworICAgICAgICBZZXMsCisgICAgICAgIE5vCisgICAgfTsKKwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkFFUy1DQkMiOwogICAg
IHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIg
PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOwogICAgIHN0YXRpYyBSZWY8Q3J5
cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIAogICAgIC8vIE9wZXJhdGlvbnMgY2FuIGJlIHBlcmZv
cm1lZCBkaXJlY3RseS4KLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVj
dG9yPHVpbnQ4X3Q+PiBwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2Jj
Q2ZiUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5QUVTJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4g
cGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYsIGNv
bnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IHBsYXRmb3JtRW5jcnlw
dChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlB
RVMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBQYWRkaW5nIHBhZGRpbmcgPSBQYWRkaW5nOjpZ
ZXMpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhf
dD4+IHBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJhbXMm
LCBjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBQYWRkaW5nIHBh
ZGRpbmcgPSBQYWRkaW5nOjpZZXMpOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRobUFF
U19DQkMoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAppbmRleCA5OGE2YjIx
OWJlMjAyZjMzNTM3OWE1NTE4Nzg2ZmNjMjRjY2EyMjUzLi5hNTFiNjZkOGRkZTgxMTM0YjU4MzBj
MmE2YTA5OWQ4MWFiMGNlZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dDcnlwdC5jcHAKQEAgLTE2Niw3
ICsxNjYsNyBAQCBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBnY3J5cHREZWNyeXB0
KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBjb25zdAogICAgIHJldHVybiBvdXRwdXQ7CiB9
CiAKLUV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6
cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYgcGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
cGxhaW5UZXh0KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFy
YW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiBwbGFpblRleHQsIFBhZGRpbmcpCiB7CiAgICAgYXV0byBvdXRwdXQgPSBnY3J5cHRF
bmNyeXB0KGtleS5rZXkoKSwgcGFyYW1ldGVycy5pdlZlY3RvcigpLCBWZWN0b3I8dWludDhfdD4o
cGxhaW5UZXh0KSk7CiAgICAgaWYgKCFvdXRwdXQpCkBAIC0xNzQsNyArMTc0LDcgQEAgRXhjZXB0
aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybUVu
Y3J5cHQoY29uc3QgQ3J5cHQKICAgICByZXR1cm4gV1RGTW92ZSgqb3V0cHV0KTsKIH0KIAotRXhj
ZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9y
bURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFyYW1zJiBwYXJhbWV0ZXJz
LCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjaXBoZXJU
ZXh0KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JD
OjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFyYW1zJiBw
YXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBjaXBoZXJUZXh0LCBQYWRkaW5nKQogewogICAgIGF1dG8gb3V0cHV0ID0gZ2NyeXB0RGVjcnlw
dChrZXkua2V5KCksIHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwgY2lwaGVyVGV4dCk7CiAgICAgaWYg
KCFvdXRwdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0Fs
Z29yaXRobUFFU19DQkNNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9B
bGdvcml0aG1BRVNfQ0JDTWFjLmNwcAppbmRleCA1MTdjZmM4OWI5NzM3MTQ5YzQ4MDdiODVhZDFm
MjBkZmEwYWFjMWRiLi5jNTdmMTA3OTlkMTEwYWIwYjRmYzFlOTJiMTcxNDQ2M2NmYjlkMzQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19D
QkNNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQ01hYy5jcHAKQEAgLTM0LDEwICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IHRyYW5zZm9ybUFFU19DQkMo
Q0NPcGVyYXRpb24gb3BlcmF0aW9uLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKQorc3RhdGlj
IEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gdHJhbnNmb3JtQUVTX0NCQyhDQ09wZXJhdGlv
biBvcGVyYXRpb24sIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaXYsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEsIENyeXB0b0FsZ29yaXRobUFF
U19DQkM6OlBhZGRpbmcgcGFkZGluZykKIHsKKyAgICBDQ09wdGlvbnMgb3B0aW9ucyA9IHBhZGRp
bmcgPT0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6UGFkZGluZzo6WWVzID8ga0NDT3B0aW9uUEtD
UzdQYWRkaW5nIDogMDsKICAgICBDQ0NyeXB0b3JSZWYgY3J5cHRvcjsKLSAgICBDQ0NyeXB0b3JT
dGF0dXMgc3RhdHVzID0gQ0NDcnlwdG9yQ3JlYXRlKG9wZXJhdGlvbiwga0NDQWxnb3JpdGhtQUVT
LCBrQ0NPcHRpb25QS0NTN1BhZGRpbmcsIGtleS5kYXRhKCksIGtleS5zaXplKCksIGl2LmRhdGEo
KSwgJmNyeXB0b3IpOworICAgIENDQ3J5cHRvclN0YXR1cyBzdGF0dXMgPSBDQ0NyeXB0b3JDcmVh
dGUob3BlcmF0aW9uLCBrQ0NBbGdvcml0aG1BRVMsIG9wdGlvbnMsIGtleS5kYXRhKCksIGtleS5z
aXplKCksIGl2LmRhdGEoKSwgJmNyeXB0b3IpOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCkBAIC00OSwxMCArNTAsMTIgQEAg
c3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gdHJhbnNmb3JtQUVTX0NCQyhDQ09w
ZXJhdGlvbiBvcGVyYXRpb24sIGNvbnMKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJh
dGlvbkVycm9yIH07CiAKICAgICB1aW50OF90KiBwID0gcmVzdWx0LmRhdGEoKSArIGJ5dGVzV3Jp
dHRlbjsKLSAgICBzdGF0dXMgPSBDQ0NyeXB0b3JGaW5hbChjcnlwdG9yLCBwLCByZXN1bHQuZW5k
KCkgLSBwLCAmYnl0ZXNXcml0dGVuKTsKLSAgICBwICs9IGJ5dGVzV3JpdHRlbjsKLSAgICBpZiAo
c3RhdHVzKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKKyAg
ICBpZiAocGFkZGluZyA9PSBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpQYWRkaW5nOjpZZXMpIHsK
KyAgICAgICAgc3RhdHVzID0gQ0NDcnlwdG9yRmluYWwoY3J5cHRvciwgcCwgcmVzdWx0LmVuZCgp
IC0gcCwgJmJ5dGVzV3JpdHRlbik7CisgICAgICAgIHAgKz0gYnl0ZXNXcml0dGVuOworICAgICAg
ICBpZiAoc3RhdHVzKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVy
cm9yIH07CisgICAgfQogCiAgICAgQVNTRVJUKHAgPD0gcmVzdWx0LmVuZCgpKTsKICAgICByZXN1
bHQuc2hyaW5rKHAgLSByZXN1bHQuYmVnaW4oKSk7CkBAIC02MiwxNiArNjUsMTggQEAgc3RhdGlj
IEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gdHJhbnNmb3JtQUVTX0NCQyhDQ09wZXJhdGlv
biBvcGVyYXRpb24sIGNvbnMKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCi1FeGNl
cHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3Jt
RW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJhbXMmIHBhcmFtZXRlcnMs
IGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHBsYWluVGV4
dCkKK0V4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6
cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYgcGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
cGxhaW5UZXh0LCBQYWRkaW5nIHBhZGRpbmcpCiB7CiAgICAgQVNTRVJUKHBhcmFtZXRlcnMuaXZW
ZWN0b3IoKS5zaXplKCkgPT0ga0NDQmxvY2tTaXplQUVTMTI4IHx8IHBhcmFtZXRlcnMuaXZWZWN0
b3IoKS5pc0VtcHR5KCkpOwotICAgIHJldHVybiB0cmFuc2Zvcm1BRVNfQ0JDKGtDQ0VuY3J5cHQs
IHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwga2V5LmtleSgpLCBwbGFpblRleHQpOworICAgIEFTU0VS
VChwYWRkaW5nID09IFBhZGRpbmc6OlllcyB8fCAhKHBsYWluVGV4dC5zaXplKCkgJSBrQ0NCbG9j
a1NpemVBRVMxMjgpKTsKKyAgICByZXR1cm4gdHJhbnNmb3JtQUVTX0NCQyhrQ0NFbmNyeXB0LCBw
YXJhbWV0ZXJzLml2VmVjdG9yKCksIGtleS5rZXkoKSwgcGxhaW5UZXh0LCBwYWRkaW5nKTsKIH0K
IAotRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpw
bGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFyYW1zJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBj
aXBoZXJUZXh0KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFy
YW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiBjaXBoZXJUZXh0LCBQYWRkaW5nIHBhZGRpbmcpCiB7CiAgICAgQVNTRVJUKHBhcmFt
ZXRlcnMuaXZWZWN0b3IoKS5zaXplKCkgPT0ga0NDQmxvY2tTaXplQUVTMTI4IHx8IHBhcmFtZXRl
cnMuaXZWZWN0b3IoKS5pc0VtcHR5KCkpOwotICAgIHJldHVybiB0cmFuc2Zvcm1BRVNfQ0JDKGtD
Q0RlY3J5cHQsIHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwga2V5LmtleSgpLCBjaXBoZXJUZXh0KTsK
KyAgICBBU1NFUlQocGFkZGluZyA9PSBQYWRkaW5nOjpZZXMgfHwgIShjaXBoZXJUZXh0LnNpemUo
KSAlIGtDQ0Jsb2NrU2l6ZUFFUzEyOCkpOworICAgIHJldHVybiB0cmFuc2Zvcm1BRVNfQ0JDKGtD
Q0RlY3J5cHQsIHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwga2V5LmtleSgpLCBjaXBoZXJUZXh0LCBw
YWRkaW5nKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24u
aAppbmRleCAzMjhiYjlkNGVhYWZjNzVkODNjNzFhN2M3Mjc0ZDE2NTAzNjdkMjBiLi42Mjk1NThm
N2ZiZGYwMTJmMWU2NDEzZjc5ZTU0Nzc1YTNjZWQyNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24u
aApAQCAtODQsNiArODQsNyBAQCBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbiB7CiAgICAgICAgIGJvb2wgY29udGludWVBZnRlckVycm9yRGF0YSB7IGZhbHNlIH07CiAg
ICAgICAgIGJvb2wgY2FuRG93bmdyYWRlIHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCBleHBlY3RD
YW5jZWwgeyBmYWxzZSB9OworICAgICAgICBib29sIHN1cHBvcnRDbGllbnRQaW4geyBmYWxzZSB9
OwogCiAgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFs
PEhpZENvbmZpZ3VyYXRpb24+IGRlY29kZShEZWNvZGVyJik7CkBAIC0xNjEsNyArMTYyLDcgQEAg
T3B0aW9uYWw8TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6TG9jYWxDb25maWd1
cmF0aW9uPiBNb2NrV2ViQXV0aGVudGkKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIE1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246OkhpZENvbmZpZ3VyYXRpb246OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgcGF5bG9hZEJhc2U2
NCA8PCBzdGFnZSA8PCBzdWJTdGFnZSA8PCBlcnJvciA8PCBpc1UyZiA8PCBrZWVwQWxpdmUgPDwg
ZmFzdERhdGFBcnJpdmFsIDw8IGNvbnRpbnVlQWZ0ZXJFcnJvckRhdGEgPDwgY2FuRG93bmdyYWRl
IDw8IGV4cGVjdENhbmNlbDsKKyAgICBlbmNvZGVyIDw8IHBheWxvYWRCYXNlNjQgPDwgc3RhZ2Ug
PDwgc3ViU3RhZ2UgPDwgZXJyb3IgPDwgaXNVMmYgPDwga2VlcEFsaXZlIDw8IGZhc3REYXRhQXJy
aXZhbCA8PCBjb250aW51ZUFmdGVyRXJyb3JEYXRhIDw8IGNhbkRvd25ncmFkZSA8PCBleHBlY3RD
YW5jZWwgPDwgc3VwcG9ydENsaWVudFBpbjsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
QEAgLTE4OCw2ICsxODksOCBAQCBPcHRpb25hbDxNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1
cmF0aW9uOjpIaWRDb25maWd1cmF0aW9uPiBNb2NrV2ViQXV0aGVudGljYQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmV4cGVjdENh
bmNlbCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQuc3VwcG9ydENsaWVudFBpbikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5pZGwKaW5k
ZXggNzg1Mzg1MTQ3NmZjY2Q2MjI4NGMzNmJmMjc5NDJhOGIxN2M1ZGUxMC4uYWQxMzkzNDlhZDJm
YzE1Y2FkODNmNmIyZDE2YjA4Mzg2MDNkZWUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRs
CkBAIC05Miw2ICs5Miw3IEBACiAgICAgYm9vbGVhbiBjb250aW51ZUFmdGVyRXJyb3JEYXRhID0g
ZmFsc2U7CiAgICAgYm9vbGVhbiBjYW5Eb3duZ3JhZGUgPSBmYWxzZTsKICAgICBib29sZWFuIGV4
cGVjdENhbmNlbCA9IGZhbHNlOworICAgIGJvb2xlYW4gc3VwcG9ydENsaWVudFBpbiA9IGZhbHNl
OwogfTsKIAogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKaW5kZXggNTU1YjU2MTlmZDgyNWNk
YzViYmMwNDUwYjc4OTgzNzY2MmVkMjk0NC4uN2VjNjI0MzU5NWU4NGNlMzQxNTQ0Nzc0ZWU1N2Nm
ZDBmNjQ5MWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCkBAIC0yNyw2ICsyNyw5IEBA
CiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblN0YXR1cyA6IGJvb2w7CiBlbnVtIGNs
YXNzIFdlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IDogYm9vbDsKQEAgLTQxLDYgKzQ0LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBhbmVsKFdlYktpdDo6V2ViQXV0aGVudGlj
YXRpb25TdGF0dXMpIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzUGFuZWwoV2Vi
S2l0OjpXZWJBdXRoZW50aWNhdGlvblJlc3VsdCkgY29uc3QgeyB9CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RQaW4odWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV1RGOjpT
dHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QgeyBjb21wbGV0aW9uSGFuZGxlcihl
bXB0eVN0cmluZygpKTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
LmgKaW5kZXggMGQyNDcxM2JmNzNiYzA5ZTE3MzBhMjkyMTY0OWNjYzg4ZWIxNzliMy4uMDQ2NjZj
MzcwNWI1OTAzZDA5MWM0MjY1NDFmNjJlYzk5OWYzNjNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaApA
QCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXNwb25kUmVj
ZWl2ZWQoUmVzcG9uZCYmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkb3duZ3JhZGUoQXV0
aGVudGljYXRvciogaWQsIFJlZjxBdXRoZW50aWNhdG9yPiYmIGRvd25ncmFkZWRBdXRoZW50aWNh
dG9yKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdG9yU3RhdHVzVXBkYXRl
ZChXZWJBdXRoZW50aWNhdGlvblN0YXR1cykgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFBpbih1aW50NjRfdCByZXRyaWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdU
Rjo6U3RyaW5nJik+JiYpID0gMDsKICAgICB9OwogCiAgICAgdmlydHVhbCB+QXV0aGVudGljYXRv
cigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAppbmRleCA2
ZmFlZGU1NDc2NDRhYjdkOGY5NmU4OTBkODM4YTFiYjEzYmMwODljLi43NDZjYTA2MTVmNTQxMDE0
N2JkYmE1YTRlYzUwMmQxODhlNjI5YjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFn
ZXIuY3BwCkBAIC0yNzMsNiArMjczLDEyIEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmF1
dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzIHN0CiAgICAg
ICAgIHBhbmVsLT5jbGllbnQoKS51cGRhdGVQYW5lbChzdGF0dXMpOwogfQogCit2b2lkIEF1dGhl
bnRpY2F0b3JNYW5hZ2VyOjpyZXF1ZXN0UGluKHVpbnQ2NF90IHJldHJpZXMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV1RGOjpTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBpZiAoYXV0byogcGFuZWwgPSBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYW5lbC5nZXQoKSkK
KyAgICAgICAgcGFuZWwtPmNsaWVudCgpLnJlcXVlc3RQaW4ocmV0cmllcywgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworfQorCiBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNl
cnZpY2U+IEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpjcmVhdGVTZXJ2aWNlKEF1dGhlbnRpY2F0b3JU
cmFuc3BvcnQgdHJhbnNwb3J0LCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2
ZXImIG9ic2VydmVyKSBjb25zdAogewogICAgIHJldHVybiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0
U2VydmljZTo6Y3JlYXRlKHRyYW5zcG9ydCwgb2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmgKaW5kZXggZGM2YzQ0NDM5MTAwMTAwMjNiYjE1NTI5ODA5ZTllZWE2NzBlZmIw
ZS4uMmE1MDgzM2ZkYjlkYjYzZGM5OGMzOTNkMDlkMWM5MzAyMGRmMmZhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdG9yTWFuYWdlci5oCkBAIC04MSw2ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZXNwb25kUmVjZWl2ZWQoUmVzcG9uZCYmKSBmaW5hbDsKICAgICB2b2lkIGRvd25ncmFkZShB
dXRoZW50aWNhdG9yKiBpZCwgUmVmPEF1dGhlbnRpY2F0b3I+JiYgZG93bmdyYWRlZEF1dGhlbnRp
Y2F0b3IpIGZpbmFsOwogICAgIHZvaWQgYXV0aGVudGljYXRvclN0YXR1c1VwZGF0ZWQoV2ViQXV0
aGVudGljYXRpb25TdGF0dXMpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFBpbih1aW50NjRfdCBy
ZXRyaWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdURjo6U3RyaW5nJik+JiYpIGZp
bmFsOwogCiAgICAgLy8gT3ZlcnJpZGVuIGJ5IE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci4KICAg
ICB2aXJ0dWFsIFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZT4gY3JlYXRl
U2VydmljZShXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0LCBBdXRoZW50aWNhdG9yVHJh
bnNwb3J0U2VydmljZTo6T2JzZXJ2ZXImKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAppbmRleCAzYjBjODkxNmRjMDkyMTA3
NTg0ZGQ3MGJhMDEwMjQ5MDU3NDc0Y2M2Li4xNDk5NDY2YTFjZWNhOGU5ZmQ5MGY5Y2Y2MTQyNTY1
OTAyYTg4ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRp
b25QYW5lbENsaWVudC5oCkBAIC00OSw2ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgLy8gQVBJOjpX
ZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50CiAgICAgdm9pZCB1cGRhdGVQYW5lbChXZWJBdXRo
ZW50aWNhdGlvblN0YXR1cykgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkaXNtaXNzUGFuZWwoV2Vi
QXV0aGVudGljYXRpb25SZXN1bHQpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFBpbih1
aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXVEY6OlN0cmluZyYpPiYmKSBj
b25zdCBmaW5hbDsKIAogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKm1fcGFuZWw7CiAg
ICAgV2Vha09iakNQdHI8aWQgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4gPiBt
X2RlbGVnYXRlOwpAQCAtNTYsNiArNTcsNyBAQCBwcml2YXRlOgogICAgIHN0cnVjdCB7CiAgICAg
ICAgIGJvb2wgcGFuZWxVcGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsIDogMTsKICAgICAgICAg
Ym9vbCBwYW5lbERpc21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0aFJlc3VsdCA6IDE7Cisg
ICAgICAgIGJvb2wgcGFuZWxSZXF1ZXN0UGluV2l0aFJlbWFpbmluZ1JldHJpZXNDb21wbGV0aW9u
SGFuZGxlciA6IDE7CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWxDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lm1tCmluZGV4IDM1
ZWY2NWJlZWY2MWJiZTVlYTUxMzllODMzMGNhNzM5ODVmZTQxMmMuLjdmMTU3YmQ5ODQ2OWNkNjY5
MWZlMTAwZjNlMzVhNDE5NzM4ZjVlOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2Ev
V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5tbQpAQCAtMjgsOCArMjgsMTAgQEAKIAogI2lm
IEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNr
ZXIuaCIKICNpbXBvcnQgIldlYkF1dGhlbnRpY2F0aW9uRmxhZ3MuaCIKICNpbXBvcnQgIl9XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwuaCIKKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9y
dCA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00MCw2ICs0Miw3IEBA
IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGll
bnQoX1dLV2ViQXV0aGVudGljYXRpb25QCiB7CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMucGFuZWxV
cGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IocGFuZWw6dXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5lbDopXTsKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy5wYW5lbERpc21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0aFJl
c3VsdCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHBhbmVsOmRpc21p
c3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0aFJlc3VsdDopXTsKKyAgICBtX2RlbGVnYXRlTWV0
aG9kcy5wYW5lbFJlcXVlc3RQaW5XaXRoUmVtYWluaW5nUmV0cmllc0NvbXBsZXRpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocGFuZWw6cmVxdWVzdFBJ
TldpdGhSZW1haW5pbmdSZXRyaWVzOmNvbXBsZXRpb25IYW5kbGVyOildOwogfQogCiBSZXRhaW5Q
dHI8aWQgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4gPiBXZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50OjpkZWxlZ2F0ZSgpCkBAIC0xMDcsNiArMTEwLDM3IEBAIHZvaWQgV2Vi
QXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6ZGlzbWlzc1BhbmVsKFdlYkF1dGhlbnRpY2F0aW9u
UmVzdWx0IHJlc3VsdCkKICAgICB9KTsKIH0KIAordm9pZCBXZWJBdXRoZW50aWNhdGlvblBhbmVs
Q2xpZW50OjpyZXF1ZXN0UGluKHVpbnQ2NF90IHJldHJpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgV1RGOjpTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKK3sKKyAg
ICAvLyBDYWxsIGRlbGVnYXRlcyBpbiB0aGUgbmV4dCBydW4gbG9vcCB0byBwcmV2ZW50IGNsaWVu
dHMnIHJlZW50cmFuY2UgdGhhdCB3b3VsZCBwb3RlbnRpYWxseSBtb2RpZnkgdGhlIHN0YXRlCisg
ICAgLy8gb2YgdGhlIGN1cnJlbnQgcnVuIGxvb3AgaW4gdW5leHBlY3RlZCB3YXlzLgorICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRo
aXMsIHJldHJpZXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildICgpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihlbXB0eVN0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmICghbV9kZWxlZ2F0ZU1ldGhvZHMucGFuZWxSZXF1ZXN0UGlu
V2l0aFJlbWFpbmluZ1JldHJpZXNDb21wbGV0aW9uSGFuZGxlcikgeworICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBhdXRvIGRlbGVnYXRlID0gbV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICAg
ICAgaWYgKCFkZWxlZ2F0ZSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZW1wdHlT
dHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhdXRv
IGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUu
Z2V0KCksIEBzZWxlY3RvcihwYW5lbDpyZXF1ZXN0UElOV2l0aFJlbWFpbmluZ1JldHJpZXM6Y29t
cGxldGlvbkhhbmRsZXI6KSk7CisgICAgICAgIFtkZWxlZ2F0ZSBwYW5lbDptX3BhbmVsIHJlcXVl
c3RQSU5XaXRoUmVtYWluaW5nUmV0cmllczpyZXRyaWVzIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VC
bG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
Y2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildKE5TU3RyaW5nICpwaW4pIG11dGFibGUgeworICAg
ICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21w
bGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocGluKTsKKyAg
ICAgICAgfSkuZ2V0KCldOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tIaWRDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5l
Y3Rpb24uY3BwCmluZGV4IDllNWQ4ZmE3MDY2ODBkZjZlMTRmOTYzZjIzYmU5ZTg4NWU3NDRmNTUu
LmY5OWM3MDRiZDk3MGI0YjM3MDdmNzk5Zjg5NGMxNTc1N2NkYzcwMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9DQk9SUmVhZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWRvQ29uc3RhbnRzLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9QaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1dGhlbnRpY2F0aW9u
Q29uc3RhbnRzLmg+CiAjaW5jbHVkZSA8d3RmL0Jsb2NrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL0Ny
eXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmg+CkBAIC0yMjMsMTAgKzIyNCwxOCBAQCB2b2lk
IE1vY2tIaWRDb25uZWN0aW9uOjpmZWVkUmVwb3J0cygpCiAKICAgICBPcHRpb25hbDxGaWRvSGlk
TWVzc2FnZT4gbWVzc2FnZTsKICAgICBpZiAobV9zdGFnZSA9PSBNb2NrOjpIaWRTdGFnZTo6SW5m
byAmJiBtX3N1YlN0YWdlID09IE1vY2s6OkhpZFN1YlN0YWdlOjpNc2cpIHsKKyAgICAgICAgLy8g
RklYTUUoMjA1ODM5KToKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGluZm9EYXRhOwogICAgICAg
ICBpZiAobV9jb25maWd1cmF0aW9uLmhpZC0+Y2FuRG93bmdyYWRlKQogICAgICAgICAgICAgaW5m
b0RhdGEgPSBlbmNvZGVBc0NCT1IoQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSh7IFByb3Rv
Y29sVmVyc2lvbjo6a0N0YXAsIFByb3RvY29sVmVyc2lvbjo6a1UyZiB9LCBWZWN0b3I8dWludDhf
dD4oYWFndWlkTGVuZ3RoLCAwdSkpKTsKLSAgICAgICAgZWxzZQorICAgICAgICBlbHNlIGlmICht
X2NvbmZpZ3VyYXRpb24uaGlkLT5zdXBwb3J0Q2xpZW50UGluKSB7CisgICAgICAgICAgICBBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIGluZm9SZXNwb25zZSh7IFByb3RvY29sVmVyc2lvbjo6
a0N0YXAgfSwgVmVjdG9yPHVpbnQ4X3Q+KGFhZ3VpZExlbmd0aCwgMHUpKTsKKyAgICAgICAgICAg
IGluZm9SZXNwb25zZS5zZXRQaW5Qcm90b2NvbHMoeyBwaW46OmtQcm90b2NvbFZlcnNpb24gfSk7
CisgICAgICAgICAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBvcHRpb25zOworICAg
ICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNl
dCk7CisgICAgICAgICAgICBpbmZvUmVzcG9uc2Uuc2V0T3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMp
KTsKKyAgICAgICAgICAgIGluZm9EYXRhID0gZW5jb2RlQXNDQk9SKGluZm9SZXNwb25zZSk7Cisg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgaW5mb0RhdGEgPSBlbmNvZGVBc0NCT1IoQXV0aGVu
dGljYXRvckdldEluZm9SZXNwb25zZSh7IFByb3RvY29sVmVyc2lvbjo6a0N0YXAgfSwgVmVjdG9y
PHVpbnQ4X3Q+KGFhZ3VpZExlbmd0aCwgMHUpKSk7CiAgICAgICAgIGluZm9EYXRhLmluc2VydCgw
LCBzdGF0aWNfY2FzdDx1aW50OF90PihDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprU3VjY2Vzcykp
OyAvLyBQcmVwZW5kIHN0YXR1cyBjb2RlLgogICAgICAgICBpZiAoc3RhZ2VzTWF0Y2goKSAmJiBt
X2NvbmZpZ3VyYXRpb24uaGlkLT5lcnJvciA9PSBNb2NrOjpIaWRFcnJvcjo6V3JvbmdDaGFubmVs
SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCmluZGV4IDllNDFlYjcx
YWRjNTg0NGVmZWRlNDBjNjdkZmUyMzNmZDg2YWM1YTEuLjVlNDA3NjRhY2U0MDQ4NTE2NmVlYjk1
OWE3OGM1Y2I5ZWU5OGY4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3Iu
Y3BwCkBAIC0zMSw5ICszMSwxMyBAQAogI2luY2x1ZGUgIkN0YXBEcml2ZXIuaCIKICNpbmNsdWRl
ICJDdGFwSGlkRHJpdmVyLmgiCiAjaW5jbHVkZSAiVTJmQXV0aGVudGljYXRvci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvQ3J5cHRvS2V5QUVTLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DcnlwdG9LZXlF
Qy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ3J5cHRvS2V5SE1BQy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlUmVz
cG9uc2VDb252ZXJ0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkRhdGEuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Bpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVTJmQ29tbWFuZENvbnN0
cnVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KQEAgLTUzLDcgKzU3LDExIEBAIHZvaWQgQ3RhcEF1
dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKCkKICAgICBBU1NFUlQoIW1faXNEb3duZ3JhZGVk
KTsKICAgICBpZiAocHJvY2Vzc0dvb2dsZUxlZ2FjeUFwcElkU3VwcG9ydEV4dGVuc2lvbigpKQog
ICAgICAgICByZXR1cm47Ci0gICAgYXV0byBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxS
ZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKSwgbV9pbmZvLm9wdGlv
bnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkpOworICAgIFZlY3Rvcjx1aW50OF90
PiBjYm9yQ21kOworICAgIGlmIChtX2luZm8ub3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0
eSgpID09IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQpCisgICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3Jl
ZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBXVEY6OmdldDxQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpLCBtX2lu
Zm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSwgUGluUGFyYW1ldGVy
cyB7IHBpbjo6a1Byb3RvY29sVmVyc2lvbiwgbV9waW5BdXRoIH0pOworICAgIGVsc2UKKyAgICAg
ICAgY2JvckNtZCA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0
YSgpLmhhc2gsIFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KHJl
cXVlc3REYXRhKCkub3B0aW9ucyksIG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eSgpKTsKICAgICBkcml2ZXIoKS50cmFuc2FjdChXVEZNb3ZlKGNib3JDbWQpLCBb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEpIHsK
ICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKQEAgLTYyLDEzICs3MCwxNiBAQCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVu
dGlhbCgpCiAgICAgfSk7CiB9CiAKLXZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFr
ZUNyZWRlbnRpYWxBZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkg
Y29uc3QKK3ZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRl
clJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkKIHsKICAgICBhdXRvIHJl
c3BvbnNlID0gcmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGRhdGEsIFdURjo6Z2V0PFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucyku
YXR0ZXN0YXRpb24pOwogICAgIGlmICghcmVzcG9uc2UpIHsKICAgICAgICAgYXV0byBlcnJvciA9
IGdldFJlc3BvbnNlQ29kZShkYXRhKTsKICAgICAgICAgaWYgKGVycm9yID09IEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyckNyZWRlbnRpYWxFeGNsdWRlZCkKICAgICAgICAgICAgIHJl
Y2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkF0IGxlYXN0
IG9uZSBjcmVkZW50aWFsIG1hdGNoZXMgYW4gZW50cnkgb2YgdGhlIGV4Y2x1ZGVDcmVkZW50aWFs
cyBsaXN0IGluIHRoZSBhdXRoZW50aWNhdG9yLiJfcyB9KTsKKyAgICAgICAgLy8gRklYTUUoMjA1
ODM3KQorICAgICAgICBlbHNlIGlmIChlcnJvciA9PSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDJFcnJQaW5JbnZhbGlkIHx8IGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMkVyclBpbkF1dGhJbnZhbGlkKQorICAgICAgICAgICAgZ2V0UmV0cmllcygpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93
bkVycm9yLCBtYWtlU3RyaW5nKCJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiAi
LCBzdGF0aWNfY2FzdDx1aW50OF90PihlcnJvcikpIH0pOwogICAgICAgICByZXR1cm47CkBAIC03
OSw3ICs5MCwxMSBAQCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50
aWFsQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW50OAogdm9pZCBDdGFwQXV0aGVudGlj
YXRvcjo6Z2V0QXNzZXJ0aW9uKCkKIHsKICAgICBBU1NFUlQoIW1faXNEb3duZ3JhZGVkKTsKLSAg
ICBhdXRvIGNib3JDbWQgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKHJlcXVlc3RE
YXRhKCkuaGFzaCwgV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPihy
ZXF1ZXN0RGF0YSgpLm9wdGlvbnMpLCBtX2luZm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25B
dmFpbGFiaWxpdHkoKSk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNib3JDbWQ7CisgICAgaWYgKG1f
aW5mby5vcHRpb25zKCkuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkgPT0gQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNl
dCkKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IocmVx
dWVzdERhdGEoKS5oYXNoLCBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucyksIG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNh
dGlvbkF2YWlsYWJpbGl0eSgpLCBQaW5QYXJhbWV0ZXJzIHsgcGluOjprUHJvdG9jb2xWZXJzaW9u
LCBtX3BpbkF1dGggfSk7CisgICAgZWxzZQorICAgICAgICBjYm9yQ21kID0gZW5jb2RlR2V0QXNz
ZXJ0aW9uUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIFdURjo6Z2V0PFB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKSwgbV9pbmZv
Lm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkpOwogICAgIGRyaXZlcigp
LnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQpAQCAtOTMsNiArMTA4LDExIEBAIHZvaWQg
Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2Vp
dmVkKFZlY3Rvcjx1aW50OF90CiAgICAgYXV0byByZXNwb25zZSA9IHJlYWRDVEFQR2V0QXNzZXJ0
aW9uUmVzcG9uc2UoZGF0YSk7CiAgICAgaWYgKCFyZXNwb25zZSkgewogICAgICAgICBhdXRvIGVy
cm9yID0gZ2V0UmVzcG9uc2VDb2RlKGRhdGEpOworICAgICAgICAvLyBGSVhNRSgyMDU4MzcpCisg
ICAgICAgIGlmIChlcnJvciA9PSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5J
bnZhbGlkIHx8IGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkF1
dGhJbnZhbGlkKSB7CisgICAgICAgICAgICBnZXRSZXRyaWVzKCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KICAgICAgICAgaWYgKGVycm9yICE9IEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyckludmFsaWRDQk9SICYmIHRyeURvd25ncmFkZSgpKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICBpZiAoZXJyb3IgPT0gQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyTm9DcmVkZW50aWFscyAmJiBvYnNlcnZlcigpKQpAQCAtMTAzLDYgKzEyMyw5MyBAQCB2
b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9uc2VS
ZWNlaXZlZChWZWN0b3I8dWludDhfdAogICAgIHJlY2VpdmVSZXNwb25kKHJlc3BvbnNlLnJlbGVh
c2VOb25OdWxsKCkpOwogfQogCit2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpnZXRSZXRyaWVzKCkK
K3sKKyAgICBhdXRvIGNib3JDbWQgPSBlbmNvZGVBc0NCT1IocGluOjpSZXRyaWVzUmVxdWVzdCB7
IH0pOworICAgIGRyaXZlcigpLnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgeworICAgICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB3ZWFrVGhpcy0+Y29udGludWVHZXRLZXlBZ3JlZW1lbnRB
ZnRlckdldFJldHJpZXMoV1RGTW92ZShkYXRhKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgQ3RhcEF1
dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0S2V5QWdyZWVtZW50QWZ0ZXJHZXRSZXRyaWVzKFZlY3Rv
cjx1aW50OF90PiYmIGRhdGEpCit7CisgICAgYXV0byByZXRyaWVzID0gcGluOjpSZXRyaWVzUmVz
cG9uc2U6OnBhcnNlKGRhdGEpOworICAgIGlmICghcmV0cmllcykgeworICAgICAgICBhdXRvIGVy
cm9yID0gZ2V0UmVzcG9uc2VDb2RlKGRhdGEpOworICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNl
cHRpb25EYXRhIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJVbmtub3duIGludGVybmFsIGVy
cm9yLiBFcnJvciBjb2RlOiAiLCBzdGF0aWNfY2FzdDx1aW50OF90PihlcnJvcikpIH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjYm9yQ21kID0gZW5jb2RlQXNDQk9SKHBp
bjo6S2V5QWdyZWVtZW50UmVxdWVzdCB7IH0pOworICAgIGRyaXZlcigpLnRyYW5zYWN0KFdURk1v
dmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmV0cmllcyA9IHJl
dHJpZXMtPnJldHJpZXNdIChWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CisgICAgICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5jb250aW51ZVJlcXVlc3RQaW5BZnRlckdldEtl
eUFncmVlbWVudChXVEZNb3ZlKGRhdGEpLCByZXRyaWVzKTsKKyAgICB9KTsKK30KKwordm9pZCBD
dGFwQXV0aGVudGljYXRvcjo6Y29udGludWVSZXF1ZXN0UGluQWZ0ZXJHZXRLZXlBZ3JlZW1lbnQo
VmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgdWludDY0X3QgcmV0cmllcykKK3sKKyAgICBhdXRvIGtl
eUFncmVlbWVudCA9IHBpbjo6S2V5QWdyZWVtZW50UmVzcG9uc2U6OnBhcnNlKGRhdGEpOworICAg
IGlmICgha2V5QWdyZWVtZW50KSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBnZXRSZXNwb25zZUNv
ZGUoZGF0YSk7CisgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBVbmtub3du
RXJyb3IsIG1ha2VTdHJpbmcoIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVycm9yIGNvZGU6ICIs
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGVycm9yKSkgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0aGlzLT5vYnNlcnZlcigpKSB7CisgICAgICAg
IG9ic2VydmVyLT5yZXF1ZXN0UGluKHJldHJpZXMsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwga2V5QWdyZWVtZW50ID0gV1RGTW92ZSgqa2V5QWdyZWVtZW50KV0gKGNvbnN0IFN0cmlu
ZyYgcGluKSB7CisgICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB3ZWFrVGhpcy0+Y29udGludWVHZXRQaW5Ub2tlbkFmdGVyUmVxdWVzdFBpbihwaW4sIGtleUFn
cmVlbWVudC5wZWVyS2V5KTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCit2b2lkIEN0YXBBdXRo
ZW50aWNhdG9yOjpjb250aW51ZUdldFBpblRva2VuQWZ0ZXJSZXF1ZXN0UGluKGNvbnN0IFN0cmlu
ZyYgcGluLCBjb25zdCBDcnlwdG9LZXlFQyYgcGVlcktleSkKK3sKKyAgICBhdXRvIHBpblV0Zjgg
PSBwaW46OnZhbGlkYXRlQW5kQ29udmVydFRvVVRGOChwaW4pOworICAgIGlmICghcGluVXRmOCkg
eworICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93bkVycm9yLCBt
YWtlU3RyaW5nKCJQaW4gaXMgbm90IHZhbGlkOiAiLCBwaW4pIH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGF1dG8gdG9rZW5SZXF1ZXN0ID0gcGluOjpUb2tlblJlcXVlc3Q6OnRyeUNy
ZWF0ZSgqcGluVXRmOCwgcGVlcktleSk7CisgICAgaWYgKCF0b2tlblJlcXVlc3QpIHsKKyAgICAg
ICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IFVua25vd25FcnJvciwgIkNhbm5vdCBj
cmVhdGUgYSBUb2tlblJlcXVlc3QuIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgYXV0byBjYm9yQ21kID0gZW5jb2RlQXNDQk9SKCp0b2tlblJlcXVlc3QpOworICAgIGRyaXZl
cigpLnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgdG9rZW5SZXF1ZXN0ID0gV1RGTW92ZSgqdG9rZW5SZXF1ZXN0KV0gKFZlY3Rvcjx1aW50
OF90PiYmIGRhdGEpIHsKKyAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgd2Vha1RoaXMt
PmNvbnRpbnVlUmVxdWVzdEFmdGVyR2V0UGluVG9rZW4oV1RGTW92ZShkYXRhKSwgdG9rZW5SZXF1
ZXN0KTsKKyAgICB9KTsKK30KKwordm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVSZXF1
ZXN0QWZ0ZXJHZXRQaW5Ub2tlbihWZWN0b3I8dWludDhfdD4mJiBkYXRhLCBjb25zdCBmaWRvOjpw
aW46OlRva2VuUmVxdWVzdCYgdG9rZW5SZXF1ZXN0KQoreworICAgIGF1dG8gdG9rZW4gPSBwaW46
OlRva2VuUmVzcG9uc2U6OnBhcnNlKHRva2VuUmVxdWVzdC5zaGFyZWRLZXkoKSwgZGF0YSk7Cisg
ICAgaWYgKCF0b2tlbikgeworICAgICAgICBhdXRvIGVycm9yID0gZ2V0UmVzcG9uc2VDb2RlKGRh
dGEpOworICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93bkVycm9y
LCBtYWtlU3RyaW5nKCJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiAiLCBzdGF0
aWNfY2FzdDx1aW50OF90PihlcnJvcikpIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9waW5BdXRoID0gdG9rZW4tPnBpbkF1dGgocmVxdWVzdERhdGEoKS5oYXNoKTsKKyAgICBX
VEY6OnN3aXRjaE9uKHJlcXVlc3REYXRhKCkub3B0aW9ucywgWyZdKGNvbnN0IFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMpIHsKKyAgICAgICAgbWFrZUNyZWRlbnRp
YWwoKTsKKyAgICB9LCBbJl0oY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
JiBvcHRpb25zKSB7CisgICAgICAgIGdldEFzc2VydGlvbigpOworICAgIH0pOworfQorCiBib29s
IEN0YXBBdXRoZW50aWNhdG9yOjp0cnlEb3duZ3JhZGUoKQogewogICAgIGlmIChtX2luZm8udmVy
c2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a1UyZikgPT0gbV9pbmZvLnZlcnNpb25zKCku
ZW5kKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmgKaW5kZXggZWU1NDNkODVm
OTRkMDhmYTBjNmI3YTA0OWNkZmVkZjhlZjQyZmM1Yy4uNTgyNDhjYTEyNDQ4NWIwYWRjNjY3ODNj
YTBjNmNhN2E2OWVhM2ZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuaApA
QCAtMzAsNiArMzAsMTYgQEAKICNpbmNsdWRlICJGaWRvQXV0aGVudGljYXRvci5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oPgogCituYW1lc3BhY2Ug
ZmlkbyB7CituYW1lc3BhY2UgcGluIHsKK2NsYXNzIFRva2VuUmVxdWVzdDsKK30KK30KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ3J5cHRvS2V5RUM7Cit9CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBDdGFwRHJpdmVyOwpAQCAtNDUsMTUgKzU1LDIyIEBAIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgQ3RhcEF1dGhlbnRpY2F0b3Ioc3RkOjp1bmlxdWVfcHRyPEN0YXBEcml2ZXI+
JiYsIGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmJik7CiAKICAgICB2b2lkIG1h
a2VDcmVkZW50aWFsKCkgZmluYWw7Ci0gICAgdm9pZCBjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0
ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW50OF90PiYmKSBjb25zdDsKKyAgICB2b2lkIGNv
bnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+
JiYpOwogICAgIHZvaWQgZ2V0QXNzZXJ0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBjb250aW51ZUdl
dEFzc2VydGlvbkFmdGVyUmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWludDhfdD4mJik7CiAKKyAg
ICB2b2lkIGdldFJldHJpZXMoKTsKKyAgICB2b2lkIGNvbnRpbnVlR2V0S2V5QWdyZWVtZW50QWZ0
ZXJHZXRSZXRyaWVzKFZlY3Rvcjx1aW50OF90PiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlUmVxdWVz
dFBpbkFmdGVyR2V0S2V5QWdyZWVtZW50KFZlY3Rvcjx1aW50OF90PiYmLCB1aW50NjRfdCByZXRy
aWVzKTsKKyAgICB2b2lkIGNvbnRpbnVlR2V0UGluVG9rZW5BZnRlclJlcXVlc3RQaW4oY29uc3Qg
U3RyaW5nJiBwaW4sIGNvbnN0IENyeXB0b0tleUVDJik7CisgICAgdm9pZCBjb250aW51ZVJlcXVl
c3RBZnRlckdldFBpblRva2VuKFZlY3Rvcjx1aW50OF90PiYmLCBjb25zdCBmaWRvOjpwaW46OlRv
a2VuUmVxdWVzdCYpOworCiAgICAgYm9vbCB0cnlEb3duZ3JhZGUoKTsKICAgICBib29sIHByb2Nl
c3NHb29nbGVMZWdhY3lBcHBJZFN1cHBvcnRFeHRlbnNpb24oKTsKIAogICAgIGZpZG86OkF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UgbV9pbmZvOwogICAgIGJvb2wgbV9pc0Rvd25ncmFkZWQg
eyBmYWxzZSB9OworICAgIFZlY3Rvcjx1aW50OF90PiBtX3BpbkF1dGg7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBiZmY5YmRiODZiNzdjNjQ5YzJmZTg2NDJiMzg2YmRhMTNjNjlhNGFlLi43YzI3
YjhlMDJmYzg4Njc5MWQ2NGU1MTNjZjI5ZjNlYzIyNzg2YTg3IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDEt
MDYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0
aG5dIFN1cHBvcnQgQ1RBUCBDbGllbnQgUGluCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1MTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NTU4
NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBQaW5UZXN0LmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICgtW1Rl
c3RXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgcGFuZWw6cmVxdWVzdFBJTldpdGhSZW1h
aW5pbmdSZXRyaWVzOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbDog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRt
bDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4taW52YWxpZC1rZXktYWdyZWVl
bWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sOiBBZGRl
ZC4KKwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gSXNzdWUgbWFjaCBsb29rdXAgZXh0ZW5zaW9uIHRvIGxhdW5jaCBzZXJ2
aWNlcyBkYWVtb24gZm9yIE1haWwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjhkMDA2MGU1
YThhMGExNzZhMjFjNzlmM2QxMjY4N2RkMWI1ZGE2Ny4uYzdiNWY0YmFiNGQwNDc4ZDdjNDI0ZGJh
YmM2ZTJiOGI3Mzk0ZjI3NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNyw2ICszMjcs
MTEgQEAKIAkJNTVBODE3RkYyMTgxMDIxQTAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUE4MTdG
RTIxODEwMURGMDAwNEEzOUEgLyogMTAweDEwMC1yZWQudGdhICovOyB9OwogCQk1NUE4MTgwMDIx
ODEwMjIxMDAwNEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBODE3RkQyMTgxMDFERjAwMDRBMzlB
IC8qIDQwMHg0MDAtZ3JlZW4ucG5nICovOyB9OwogCQk1NUY5RDJFNTIyMDUwMzE4MDBBOUFCMzgg
LyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUY5RDJFNDIyMDUwMzE4MDBBOUFCMzggLyogQWRk
aXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gKi87IH07CisJCTU3MEQyNkY0MjNDM0NBNkEw
MEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0
LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEMjZGMzIzQzNDQTU1MDBENUNGNjcgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVy
cm9yLmh0bWwgKi87IH07CisJCTU3MEQyNkY2MjNDM0QzMzAwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEMjZGNTIzQzNEMzI3MDBENUNG
NjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwgKi87
IH07CisJCTU3MEQyNkZBMjNDM0YyNTEwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFr
ZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MEQyNkY5MjNDM0Yy
NDUwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4t
Z2V0LXBpbi10b2tlbi1lcnJvci5odG1sICovOyB9OworCQk1NzBEMjZGQzIzQzNGODcwMDBENUNG
NjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MEQyNkZC
MjNDM0Y4NjUwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQt
cGluLmh0bWwgKi87IH07CisJCTU3MEQyNkZFMjNDNEZGMzYwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4taW52YWxpZC1rZXktYWdyZWVlbWVudC5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3MEQyNkZEMjNDNEZGMjUwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4taW52YWxpZC1rZXktYWdyZWVlbWVudC5odG1sICovOyB9OwogCQk1NzE0
RUNCOTFDQThCNUIwMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0
RUNCODFDQThCNTg4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbCAq
LzsgfTsKIAkJNTcxNEVDQkIxQ0E4QkZFNDAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdp
bmFsVVJMRnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0
T3JpZ2luYWxVUkxGcmFtZS5odG1sICovOyB9OwogCQk1NzE0RUNCRDFDQThDMjJBMDAwNTFBQzgg
LyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4
IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICovOyB9OwpAQCAtMzQzLDYgKzM0
OCw3IEBACiAJCTU3MzI1NUE3MjIxMzlCQzcwMDM5NkFFOCAvKiBsb2FkLXdlYi1hcmNoaXZlLTIu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzMyNTVBMzIyMTM5QjkwMDAzOTZBRTggLyogbG9hZC13ZWItYXJjaGl2ZS0yLmh0bWwgKi87
IH07CiAJCTU3NEY1NUQyMjA0RDQ3RjAwMDI5NDhDNiAvKiBTZWN1cml0eS5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzRGNTVEMDIw
NEQ0NzFDMDAyOTQ4QzYgLyogU2VjdXJpdHkuZnJhbWV3b3JrICovOyB9OwogCQk1NzU4NTk3RjIz
QTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1ODU5N0UyM0EyNTI3QTAwQzc0NTcyIC8qIEN0YXBQ
aW5UZXN0LmNwcCAqLzsgfTsKKwkJNTc1ODU5ODQyM0MzQzNBNDAwQzc0NTcyIC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
NTg1OTgzMjNDM0MzNjIwMEM3NDU3MiAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRtbCAqLzsgfTsKIAkJNTc1OTlFMjExRjA3
MTkxOTAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJp
bGl0eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
NTk5RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHkubW0gKi87IH07CiAJCTU3NTk5RTI3MUYwNzFBQTAwMEEzRkI4QyAvKiBJ
bmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUy
NDFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21w
YXRpYmlsaXR5LnNxbGl0ZTMgKi87IH07CiAJCTU3NTk5RTI4MUYwNzFBQTAwMEEzRkI4QyAvKiBJ
bmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0g
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1
OTlFMjYxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJk
Q29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSAqLzsgfTsKQEAgLTE0NzksMTEgKzE0ODUsMTcgQEAK
IAkJCQlDRDU3Nzc5OTIxMUNFMEU0MDAxQjM3MUUgLyogd2ViLWF1ZGlvLW9ubHkuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2M0RGMzIzNTdFNDg5MDBFODVFMDkgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTU3NzQ1NEQwMjM1OUIzNzgwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVudGlhbHMuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKKwkJCQk1NzBEMjZGQzIzQzNGODcwMDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24taGlkLXBpbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3
NjYzREVDMjM0RjFGOTMwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1oaWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1Nzk4MzM5MjIzNjhGQTM3MDA4
RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRh
Z3MuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2M0RFQTIzNEVBNjZEMDBFODVF
MDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTc3NDU0RDIyMzU5QkIwMTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3MEQy
NkY0MjNDM0NBNkEwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFs
LWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKKwkJCQk1NzBEMjZGQTIzQzNGMjUxMDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKKwkJCQk1NzU4NTk4NDIzQzNDM0E0MDBDNzQ1NzIgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTcwRDI2RkUyM0M0RkYzNjAwRDVDRjY3IC8qIHdlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1pbnZhbGlkLWtleS1hZ3JlZWVt
ZW50Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTcwRDI2RjYyM0MzRDMzMDAwRDVD
RjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3OTgzMzdFMjM2MDE5QTQwMDhFNTU0NyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTFDMkI4MTg2MUM4OTI1OUQwMEE1NTI5RiAvKiB3ZWJmb250Lmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJNTE3MTRFQjQxQ0Y4Qzc4QzAwNDcyM0M0IC8qIFdlYlByb2Nl
c3NLaWxsSURCQ2xlYW51cC0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xODkyLDYg
KzE5MDQsMTEgQEAKIAkJNTVBODE3RkQyMTgxMDFERjAwMDRBMzlBIC8qIDQwMHg0MDAtZ3JlZW4u
cG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1h
Z2UucG5nOyBwYXRoID0gIjQwMHg0MDAtZ3JlZW4ucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTVBODE3RkUyMTgxMDFERjAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGgg
PSAiMTAweDEwMC1yZWQudGdhIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVGOUQy
RTQyMjA1MDMxODAwQTlBQjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcwRDI2RjMyM0MzQ0E1NTAwRDVDRjY3IC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVu
dC1lcnJvci5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVudC1lcnJvci5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTcwRDI2RjUyM0MzRDMyNzAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTcwRDI2RjkyM0MzRjI0NTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWVycm9yLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4t
dG9rZW4tZXJyb3IuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MEQyNkZC
MjNDM0Y4NjUwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQt
cGluLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlk
LXBpbi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcwRDI2RkQyM0M0RkYy
NTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1p
bnZhbGlkLWtleS1hZ3JlZWVtZW50Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWludmFsaWQta2V5LWFncmVlZW1lbnQuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTRFQ0I4MUNBOEI1ODgwMDA1MUFDOCAvKiBE
b3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTcxNEVDQkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdp
bmFsVVJMRnJhbWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2FkUmVx
dWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxV
UkwyLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTEwLDYgKzE5MjcsNyBA
QAogCQk1NzRGNTVEMDIwNEQ0NzFDMDAyOTQ4QzYgLyogU2VjdXJpdHkuZnJhbWV3b3JrICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFt
ZXdvcms7IG5hbWUgPSBTZWN1cml0eS5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL1NlY3VyaXR5LmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CiAJ
CTU3NTg1OTdEMjNBMjUyN0EwMEM3NDU3MiAvKiBDdGFwUGluVGVzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDdGFwUGluVGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU4NTk3RTIz
QTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Rh
cFBpblRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzU4NTk4MzIzQzND
MzYyMDBDNzQ1NzIgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGlu
LWdldC1yZXRyaWVzLWVycm9yLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzU5OUUyMDFGMDcxOTE3MDBBM0ZCOEMgLyogSW5kZXhlZERC
U3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRD
b21wYXRpYmlsaXR5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU5OUUyMzFG
MDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRp
YmlsaXR5V3JpdGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3
YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3NTk5RTI0MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVC
YWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTM0ODMsMTEgKzM1MDEsMTcgQEAKIAkJCQlDRDU3Nzc5ODIxMUNERThGMDAxQjM3MUUgLyog
d2ViLWF1ZGlvLW9ubHkuaHRtbCAqLywKIAkJCQk1NzY2M0RGMjIzNTdFNDVEMDBFODVFMDkgLyog
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1sICovLAogCQkJ
CTU3NzQ1NENGMjM1OUIzMzgwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2Vy
dGlvbi1oaWQtbm8tY3JlZGVudGlhbHMuaHRtbCAqLywKKwkJCQk1NzBEMjZGQjIzQzNGODY1MDBE
NUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi5odG1sICov
LAogCQkJCTU3NjYzREVCMjM0RjFGODAwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi1oaWQuaHRtbCAqLywKIAkJCQk1Nzk4MzM3QjIzNUVCNjVDMDA4RTU1NDcgLyog
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCAq
LywKIAkJCQk1NzY2M0RFOTIzNEVBNjBCMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24tbmZjLmh0bWwgKi8sCiAJCQkJNTc3NDU0RDEyMzU5QkFENTAwOEUxRUQ3IC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1s
ICovLAogCQkJCTU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24t
Z2V0LWFzc2VydGlvbi5odG1sICovLAorCQkJCTU3MEQyNkYzMjNDM0NBNTUwMEQ1Q0Y2NyAvKiB3
ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1l
bnQtZXJyb3IuaHRtbCAqLywKKwkJCQk1NzBEMjZGOTIzQzNGMjQ1MDBENUNGNjcgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3Iu
aHRtbCAqLywKKwkJCQk1NzU4NTk4MzIzQzNDMzYyMDBDNzQ1NzIgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwgKi8sCisJ
CQkJNTcwRDI2RkQyM0M0RkYyNTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkLXBpbi1pbnZhbGlkLWtleS1hZ3JlZWVtZW50Lmh0bWwgKi8sCisJCQkJNTcw
RDI2RjUyM0MzRDMyNzAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtaGlkLXBpbi5odG1sICovLAogCQkJCTU3OTgzMzdEMjM2MDE5NkQwMDhFNTU0NyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC5odG1sICovLAogCQkJCTUxNzE0RUIy
MUNGOEM3NjEwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMS5odG1sICovLAog
CQkJCTUxNzE0RUIzMUNGOEM3NjEwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAt
Mi5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0N0YXBQaW5UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFw
UGluVGVzdC5jcHAKaW5kZXggYTYzYWE2Njk5NTliNTViY2QxNDdkNzMyNWQzZWZmYTg1NWU0ZTg1
Ny4uMzY1MjhlYTY5Yzk1NWNiZDcxY2M0ODgwNDBjZjliNTVlODNjZjU4YSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBQaW5UZXN0LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFBpblRlc3QuY3BwCkBAIC00MSw3
ICs0MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dl
YkF1dGhlbnRpY2F0aW9uQ29uc3RhbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdXRoZW50
aWNhdGlvblV0aWxzLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CisjaW5jbHVkZSA8
cGFsL2NyeXB0by9DcnlwdG9EaWdlc3QuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05OCw3ICs5OCw3IEBAIFRFU1QoQ3RhcFBpblRl
c3QsIFRlc3RSZXRyaWVzUmVzcG9uc2UpCiAgICAgLy8gU3VjY2VzcyBjYXNlcwogICAgIHJlc3Vs
dCA9IFJldHJpZXNSZXNwb25zZTo6cGFyc2UoY29udmVydEJ5dGVzVG9WZWN0b3IoVGVzdERhdGE6
OmtDdGFwQ2xpZW50UGluUmV0cmllc1Jlc3BvbnNlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwQ2xp
ZW50UGluUmV0cmllc1Jlc3BvbnNlKSkpOwogICAgIEVYUEVDVF9UUlVFKHJlc3VsdCk7Ci0gICAg
RVhQRUNUX0VRKHJlc3VsdC0+cmV0cmllcywgOCk7CisgICAgRVhQRUNUX0VRKHJlc3VsdC0+cmV0
cmllcywgOHUpOwogfQogCiBURVNUKEN0YXBQaW5UZXN0LCBUZXN0S2V5QWdyZWVtZW50UmVxdWVz
dCkKQEAgLTEyNSw2ICsxMjUsMTEgQEAgVEVTVChDdGFwUGluVGVzdCwgVGVzdEtleUFncmVlbWVu
dFJlc3BvbnNlKQogICAgIHJlc3VsdCA9IEtleUFncmVlbWVudFJlc3BvbnNlOjpwYXJzZShjb252
ZXJ0Qnl0ZXNUb1ZlY3RvcihUZXN0RGF0YTo6a0N0YXBDbGllbnRQaW5Ub2tlblJlc3BvbnNlLCBz
aXplb2YoVGVzdERhdGE6OmtDdGFwQ2xpZW50UGluVG9rZW5SZXNwb25zZSkpKTsgLy8gd3Jvbmcg
cmVzcG9uc2UKICAgICBFWFBFQ1RfRkFMU0UocmVzdWx0KTsKIAorI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9S
TShJT1MpCisgICAgcmVzdWx0ID0gS2V5QWdyZWVtZW50UmVzcG9uc2U6OnBhcnNlKGNvbnZlcnRC
eXRlc1RvVmVjdG9yKFRlc3REYXRhOjprQ3RhcENsaWVudFBpbkludmFsaWRLZXlBZ3JlZW1lbnRS
ZXNwb25zZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcENsaWVudFBpbkludmFsaWRLZXlBZ3JlZW1l
bnRSZXNwb25zZSkpKTsgLy8gVGhlIHBvaW50IGlzIG5vdCBvbiB0aGUgY3VydmUuCisgICAgRVhQ
RUNUX0ZBTFNFKHJlc3VsdCk7CisjZW5kaWYKKwogICAgIC8vIFRlc3QgQ09TRQogICAgIGF1dG8g
Y29zZUtleSA9IGVuY29kZUNPU0VQdWJsaWNLZXkoVmVjdG9yPHVpbnQ4X3Q+KDY1KSk7CiAgICAg
Y29zZUtleVtDQk9SVmFsdWUoQ09TRTo6a3R5KV0gPSBDQk9SVmFsdWUoMCk7IC8vIHdyb25nIGt0
eQpAQCAtMTc2LDcgKzE4MSw3IEBAIFRFU1QoQ3RhcFBpblRlc3QsIFRlc3RUb2tlblJlcXVlc3Qp
CiAgICAgYXV0byB0b2tlbiA9IFRva2VuUmVxdWVzdDo6dHJ5Q3JlYXRlKHBpbiwgZG93bmNhc3Q8
Q3J5cHRvS2V5RUM+KCprZXlQYWlyLnB1YmxpY0tleSkpOwogICAgIEVYUEVDVF9UUlVFKHRva2Vu
KTsKICAgICBhdXRvIHJlc3VsdCA9IGVuY29kZUFzQ0JPUigqdG9rZW4pOwotICAgIEVYUEVDVF9F
UShyZXN1bHQuc2l6ZSgpLCAxMjB1KTsKKyAgICBFWFBFQ1RfRVEocmVzdWx0LnNpemUoKSwgMTAz
dSk7CiAgICAgRVhQRUNUX0VRKHJlc3VsdFswXSwgc3RhdGljX2Nhc3Q8dWludDhfdD4oQ3RhcFJl
cXVlc3RDb21tYW5kOjprQXV0aGVudGljYXRvckNsaWVudFBpbikpOwogCiAgICAgLy8gRGVjb2Rl
IHRoZSBDQk9SIGJpbmFyeSB0byBjaGVjayBpZiBlYWNoIGZpZWxkIGlzIGVuY29kZWQgY29ycmVj
dGx5LgpAQCAtMjI0LDEyICsyMjksMTcgQEAgVEVTVChDdGFwUGluVGVzdCwgVGVzdFRva2VuUmVx
dWVzdCkKICAgICAvLyBDaGVjayB0aGUgZW5jcnlwdGVkIFBpbi4KICAgICBhdXRvIHNoYXJlZEtl
eVJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUVDREg6OnBsYXRmb3JtRGVyaXZlQml0cyhkb3duY2Fz
dDxDcnlwdG9LZXlFQz4oKmtleVBhaXIucHJpdmF0ZUtleSksICpjb3NlUHVibGljS2V5KTsKICAg
ICBFWFBFQ1RfVFJVRShzaGFyZWRLZXlSZXN1bHQpOwotICAgIGF1dG8gYWVzS2V5ID0gQ3J5cHRv
S2V5QUVTOjppbXBvcnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQywgV1RG
TW92ZSgqc2hhcmVkS2V5UmVzdWx0KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0KTsKKwor
ICAgIGF1dG8gY3J5cHRvID0gUEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZShQQUw6OkNyeXB0b0Rp
Z2VzdDo6QWxnb3JpdGhtOjpTSEFfMjU2KTsKKyAgICBjcnlwdG8tPmFkZEJ5dGVzKHNoYXJlZEtl
eVJlc3VsdC0+ZGF0YSgpLCBzaGFyZWRLZXlSZXN1bHQtPnNpemUoKSk7CisgICAgYXV0byBzaGFy
ZWRLZXlIYXNoID0gY3J5cHRvLT5jb21wdXRlSGFzaCgpOworCisgICAgYXV0byBhZXNLZXkgPSBD
cnlwdG9LZXlBRVM6OmltcG9ydFJhdyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JD
LCBXVEZNb3ZlKHNoYXJlZEtleUhhc2gpLCB0cnVlLCBDcnlwdG9LZXlVc2FnZURlY3J5cHQpOwog
ICAgIEVYUEVDVF9UUlVFKGFlc0tleSk7CiAKICAgICBjb25zdCBhdXRvJiBpdDYgPSByZXNwb25z
ZU1hcC5maW5kKENCT1JWYWx1ZShzdGF0aWNfY2FzdDx1aW50OF90PihSZXF1ZXN0S2V5OjprUGlu
SGFzaEVuYykpKTsKICAgICBFWFBFQ1RfTkUoaXQ2LCByZXNwb25zZU1hcC5lbmQoKSk7Ci0gICAg
YXV0byBwaW5IYXNoUmVzdWx0ID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1EZWNy
eXB0KHsgfSwgKmFlc0tleSwgaXQ2LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpKTsKKyAgICBhdXRv
IHBpbkhhc2hSZXN1bHQgPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQo
eyB9LCAqYWVzS2V5LCBpdDYtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCksIENyeXB0b0FsZ29yaXRo
bUFFU19DQkM6OlBhZGRpbmc6Ok5vKTsKICAgICBFWFBFQ1RfRkFMU0UocGluSGFzaFJlc3VsdC5o
YXNFeGNlcHRpb24oKSk7CiAgICAgYXV0byBwaW5IYXNoID0gcGluSGFzaFJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKTsKICAgICBjb25zdCB1aW50OF90IGV4cGVjdGVkUGluSGFzaFtdID0geyAw
eDAzLCAweGFjLCAweDY3LCAweDQyLCAweDE2LCAweGYzLCAweGUxLCAweDVjLCAweDc2LCAweDFl
LCAweGUxLCAweGE1LCAweGUyLCAweDU1LCAweGYwLCAweDY3IH07CkBAIC0yNDAsMTAgKzI1MCwx
MCBAQCBURVNUKEN0YXBQaW5UZXN0LCBUZXN0VG9rZW5SZXF1ZXN0KQogVEVTVChDdGFwUGluVGVz
dCwgVGVzdFRva2VuUmVzcG9uc2UpCiB7CiAgICAgY29uc3QgdWludDhfdCBzaGFyZWRLZXlEYXRh
W10gPSB7Ci0gICAgICAgIDB4MDMsIDB4YWMsIDB4NjcsIDB4NDIsIDB4MTYsIDB4ZjMsIDB4ZTEs
IDB4NWMsCi0gICAgICAgIDB4NzYsIDB4MWUsIDB4ZTEsIDB4YTUsIDB4ZTIsIDB4NTUsIDB4ZjAs
IDB4NjcsCi0gICAgICAgIDB4OTUsIDB4MzYsIDB4MjMsIDB4YzgsIDB4YjMsIDB4ODgsIDB4YjQs
IDB4NDUsCi0gICAgICAgIDB4OWUsIDB4MTMsIDB4ZjksIDB4NzgsIDB4ZDcsIDB4YzgsIDB4NDYs
IDB4ZjQsIH07CisgICAgICAgIDB4MjksIDB4OUUsIDB4NjUsIDB4QjgsIDB4RTcsIDB4NzEsIDB4
QjgsIDB4MUQsCisgICAgICAgIDB4QjEsIDB4QzQsIDB4OEQsIDB4QkUsIDB4Q0UsIDB4NTAsIDB4
MkEsIDB4ODQsCisgICAgICAgIDB4MDUsIDB4NDQsIDB4N0YsIDB4NDYsIDB4MkQsIDB4RTYsIDB4
ODEsIDB4RkEsCisgICAgICAgIDB4RUYsIDB4MEEsIDB4NkMsIDB4NjcsIDB4QTcsIDB4MkIsIDB4
QjUsIDB4MEYsIH07CiAgICAgYXV0byBzaGFyZWRLZXkgPSBDcnlwdG9LZXlBRVM6OmltcG9ydFJh
dyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDLCBjb252ZXJ0Qnl0ZXNUb1ZlY3Rv
cihzaGFyZWRLZXlEYXRhLCBzaXplb2Yoc2hhcmVkS2V5RGF0YSkpLCB0cnVlLCBDcnlwdG9LZXlV
c2FnZUVuY3J5cHQgfCBDcnlwdG9LZXlVc2FnZURlY3J5cHQpOwogICAgIEFTU0VSVF9UUlVFKHNo
YXJlZEtleSk7CiAKQEAgLTI3NCwxMCArMjg0LDEwIEBAIFRFU1QoQ3RhcFBpblRlc3QsIFRlc3RQ
aW5BdXRoKQogewogICAgIC8vIDEuIEdlbmVyYXRlIHRoZSB0b2tlbi4KICAgICBjb25zdCB1aW50
OF90IHNoYXJlZEtleURhdGFbXSA9IHsKLSAgICAgICAgMHgwMywgMHhhYywgMHg2NywgMHg0Miwg
MHgxNiwgMHhmMywgMHhlMSwgMHg1YywKLSAgICAgICAgMHg3NiwgMHgxZSwgMHhlMSwgMHhhNSwg
MHhlMiwgMHg1NSwgMHhmMCwgMHg2NywKLSAgICAgICAgMHg5NSwgMHgzNiwgMHgyMywgMHhjOCwg
MHhiMywgMHg4OCwgMHhiNCwgMHg0NSwKLSAgICAgICAgMHg5ZSwgMHgxMywgMHhmOSwgMHg3OCwg
MHhkNywgMHhjOCwgMHg0NiwgMHhmNCwgfTsKKyAgICAgICAgMHgyOSwgMHg5RSwgMHg2NSwgMHhC
OCwgMHhFNywgMHg3MSwgMHhCOCwgMHgxRCwKKyAgICAgICAgMHhCMSwgMHhDNCwgMHg4RCwgMHhC
RSwgMHhDRSwgMHg1MCwgMHgyQSwgMHg4NCwKKyAgICAgICAgMHgwNSwgMHg0NCwgMHg3RiwgMHg0
NiwgMHgyRCwgMHhFNiwgMHg4MSwgMHhGQSwKKyAgICAgICAgMHhFRiwgMHgwQSwgMHg2QywgMHg2
NywgMHhBNywgMHgyQiwgMHhCNSwgMHgwRiwgfTsKICAgICBhdXRvIHNoYXJlZEtleSA9IENyeXB0
b0tleUFFUzo6aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMsIGNv
bnZlcnRCeXRlc1RvVmVjdG9yKHNoYXJlZEtleURhdGEsIHNpemVvZihzaGFyZWRLZXlEYXRhKSks
IHRydWUsIENyeXB0b0tleVVzYWdlRW5jcnlwdCB8IENyeXB0b0tleVVzYWdlRGVjcnlwdCk7CiAg
ICAgQVNTRVJUX1RSVUUoc2hhcmVkS2V5KTsKICAgICBhdXRvIHJlc3VsdCA9IFRva2VuUmVzcG9u
c2U6OnBhcnNlKCpzaGFyZWRLZXksIGNvbnZlcnRCeXRlc1RvVmVjdG9yKFRlc3REYXRhOjprQ3Rh
cENsaWVudFBpblRva2VuUmVzcG9uc2UsIHNpemVvZihUZXN0RGF0YTo6a0N0YXBDbGllbnRQaW5U
b2tlblJlc3BvbnNlKSkpOwpAQCAtMjg1LDcgKzI5NSw3IEBAIFRFU1QoQ3RhcFBpblRlc3QsIFRl
c3RQaW5BdXRoKQogCiAgICAgLy8gMi4gR2VuZXJhdGUgdGhlIHBpbkF1dGguCiAgICAgYXV0byBw
aW5BdXRoID0gcmVzdWx0LT5waW5BdXRoKGNvbnZlcnRCeXRlc1RvVmVjdG9yKHNoYXJlZEtleURh
dGEsIHNpemVvZihzaGFyZWRLZXlEYXRhKSkpOyAvLyBzaGFyZWRLZXlEYXRhIHByZXRlbmRzIHRv
IGJlIGNsaWVudERhdGFIYXNoCi0gICAgY29uc3QgdWludDhfdCBleHBlY3RlZFBpbkF1dGhbXSA9
IHsgMHhiMywgMHhjMiwgMHg2NSwgMHgxYywgMHhmZCwgMHhjOCwgMHg0MiwgMHhiNCwgMHg2MCwg
MHgxNiwgMHhlZCwgMHgyMCwgMHg2NCwgMHg1MywgMHhhZiwgMHg4NCB9OworICAgIGNvbnN0IHVp
bnQ4X3QgZXhwZWN0ZWRQaW5BdXRoW10gPSB7IDB4MGIsIDB4ZWMsIDB4OWQsIDB4YmEsIDB4Njks
IDB4YjAsIDB4MGYsIDB4NDUsIDB4MGIsIDB4ZWMsIDB4NjYsIDB4YjQsIDB4NzUsIDB4N2YsIDB4
OTMsIDB4ODUgfTsKICAgICBFWFBFQ1RfRVEocGluQXV0aC5zaXplKCksIDE2dSk7CiAgICAgRVhQ
RUNUX0VRKG1lbWNtcChwaW5BdXRoLmRhdGEoKSwgZXhwZWN0ZWRQaW5BdXRoLCBwaW5BdXRoLnNp
emUoKSksIDApOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0ZpZG9UZXN0RGF0YS5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zp
ZG9UZXN0RGF0YS5oCmluZGV4IDNjMjMwMmIwYTg4YjcyMTlkOWVjNmFkY2QxM2FkN2Q3YjdmZWRj
NjEuLmYyNTgxNjViNzMxYjk5ZWQ3OTVlMDQ2MWU4YTU2YmJkNWU1ZTlkMjUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmgKQEAgLTYxMiwx
NSArNjEyLDE1IEBAIGNvbnN0ZXhwciB1aW50OF90IGtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0
V2l0aFBpbltdID0gewogICAgIDB4NjIsIDB4NzUsIDB4NzYsCiAgICAgLy8gVHJ1ZSgyMSkKICAg
ICAweGY1LAotICAgIC8vIGtleSg4KSAtIHBpblByb3RvY29sCisgICAgLy8ga2V5KDgpIC0gcGlu
QXV0aAogICAgIDB4MDgsCi0gICAgLy8gdmFsdWUgLSAxCi0gICAgMHgwMSwKLSAgICAvLyBrZXko
OSkgLSBwaW5BdXRoCi0gICAgMHgwOSwKICAgICAvLyBieXRlcygxNikKICAgICAweDUwLCAweDAw
LCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDA4LCAweDA5LCAw
eDBhLAotICAgIDB4MGIsIDB4MGMsIDB4MGQsIDB4MGUsIDB4MGYKKyAgICAweDBiLCAweDBjLCAw
eDBkLCAweDBlLCAweDBmLAorICAgIC8vIGtleSg5KSAtIHBpblByb3RvY29sCisgICAgMHgwOSwK
KyAgICAvLyB2YWx1ZSAtIDEKKyAgICAweDAxLAogfTsKIAogY29uc3RleHByIHVpbnQ4X3Qga1Rl
c3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RbXSA9IHsKQEAgLTc0NSwxNSArNzQ1LDE1
IEBAIGNvbnN0ZXhwciB1aW50OF90IGtUZXN0Q29tcGxleEN0YXBHZXRBc3NlcnRpb25SZXF1ZXN0
V2l0aFBpbltdID0gewogICAgIDB4NjIsIDB4NzUsIDB4NzYsCiAgICAgLy8gdmFsdWUgLSBUcnVl
KDIxKQogICAgIDB4ZjUsCi0gICAgLy8ga2V5KDgpIC0gcGluUHJvdG9jb2wKLSAgICAweDA4LAot
ICAgIC8vIHZhbHVlIC0gMQotICAgIDB4MDEsCi0gICAgLy8ga2V5KDkpIC0gcGluQXV0aAotICAg
IDB4MDksCisgICAgLy8ga2V5KDYpIC0gcGluQXV0aAorICAgIDB4MDYsCiAgICAgLy8gYnl0ZXMo
MTYpCiAgICAgMHg1MCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwgMHgwNiwg
MHgwNywgMHgwOCwgMHgwOSwgMHgwYSwKLSAgICAweDBiLCAweDBjLCAweDBkLCAweDBlLCAweDBm
CisgICAgMHgwYiwgMHgwYywgMHgwZCwgMHgwZSwgMHgwZiwKKyAgICAvLyBrZXkoNykgLSBwaW5Q
cm90b2NvbAorICAgIDB4MDcsCisgICAgLy8gdmFsdWUgLSAxCisgICAgMHgwMSwKIH07CiAKIC8v
IENUQVAgcmVzcG9uc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTAzLDEyICsxMTAzLDExIEBAIGNvbnN0ZXhwciB1
aW50OF90IGtDdGFwQ2xpZW50UGluVG9rZW5SZXNwb25zZVtdID0gewogICAgIDB4YTEsCiAgICAg
Ly8ga2V5KDIpIC0gcGluVG9rZW4KICAgICAweDAyLAotICAgIC8vIGJ5dGVzKDMyKQotICAgIDB4
NTgsIDB4MjAsCisgICAgLy8gYnl0ZXMoMTYpCisgICAgMHg1MCwKICAgICAvLyBlbmNyeXB0ZWQg
dG9rZW4KLSAgICAweDQ4LCAweGI5LCAweDVkLCAweDNkLCAweDllLCAweGVlLCAweGU1LCAweDAw
LCAweGFiLCAweDUxLCAweDEzLCAweDJiLAotICAgIDB4MzUsIDB4NzcsIDB4NjYsIDB4NWMsIDB4
NDEsIDB4N2EsIDB4NTYsIDB4M2UsIDB4YjMsIDB4ZTIsIDB4M2MsIDB4YjcsCi0gICAgMHg2YSwg
MHgzNywgMHhiMywgMHhkZSwgMHg1NywgMHgyYiwgMHhjYSwgMHhhYSwKKyAgICAweDEzLCAweEE0
LCAweEVFLCAweEI3LCAweDBFLCAweEM5LCAweDFBLCAweEVBLCAweDAwLCAweDFFLCAweDkzLCAw
eDE2LAorICAgIDB4RjYsIDB4MUUsIDB4NDEsIDB4RjcsCiB9OwogCiBjb25zdGV4cHIgdWludDhf
dCBrQ3RhcENsaWVudFBpbktleUFncmVlbWVudFJlc3BvbnNlW10gPSB7CkBAIC0xMTQ0LDYgKzEx
NDMsMzkgQEAgY29uc3RleHByIHVpbnQ4X3Qga0N0YXBDbGllbnRQaW5LZXlBZ3JlZW1lbnRSZXNw
b25zZVtdID0gewogICAgIDB4NzAsIDB4NDUsIDB4RjQsIDB4NjEsIDB4MkYsIDB4QjIsIDB4MEMs
IDB4OTEsCiB9OwogCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcENsaWVudFBpbkludmFsaWRLZXlB
Z3JlZW1lbnRSZXNwb25zZVtdID0geworICAgIC8vIFN1Y2Nlc3MKKyAgICAweDAwLAorICAgIC8v
IG1hcCgxKQorICAgIDB4QTEsCisgICAgLy8ga2V5KDEpIC0ga2V5QWdyZWVtZW50CisgICAgMHgw
MSwKKyAgICAvLyBNYXAoNSkKKyAgICAweEE1LAorICAgIC8vIGt0eTogRUMga2V5IHR5cGUKKyAg
ICAweDAxLCAweDAyLAorICAgIC8vIGFsZzogRUNESDI1NiBzaWduYXR1cmUgYWxnb3JpdGhtCisg
ICAgMHgwMywgMHgzOCwgMHgxOCwKKyAgICAvLyBjcnY6IFAtMjU2IGN1cnZlCisgICAgMHgyMCwg
MHgwMSwKKyAgICAvLyB4LWNvb3JkaW5hdGUKKyAgICAweDIxLAorICAgIC8vIEJ5dGVzKDMyKQor
ICAgIDB4NTgsIDB4MjAsCisgICAgLy8gQnl0ZSBhcnJheSBjb250ZW50CisgICAgMHhFOCwgMHg3
NiwgMHgyNSwgMHg4OSwgMHg2RSwgMHhFNCwgMHhFNCwgMHg2NiwgMHhDMCwgMHgzMiwgMHg3Niwg
MHg2RSwKKyAgICAweDgwLCAweDg3LCAweDk2LCAweDJGLCAweDM2LCAweERGLCAweDlELCAweEZG
LCAweDhCLCAweDU2LCAweDdGLCAweDM3LAorICAgIDB4NjMsIDB4MDEsIDB4NUIsIDB4MTksIDB4
OTAsIDB4QTYsIDB4MEUsIDB4MTQsCisgICAgLy8geS1jb29yZGluYXRlCisgICAgMHgyMiwKKyAg
ICAvLyBCeXRlcygzMikKKyAgICAweDU4LCAweDIwLAorICAgIC8vIEJ5dGUgYXJyYXkgY29udGVu
dAorICAgIDB4MjcsIDB4REUsIDB4NjEsIDB4MkQsIDB4NjYsIDB4NDEsIDB4OEIsIDB4REEsIDB4
MTksIDB4NTAsIDB4NTgsIDB4MUUsCisgICAgMHhCQywgMHg1QywgMHg4QywgMHgxRCwgMHhBRCwg
MHg3MSwgMHgwQywgMHhCMSwgMHg0QywgMHgyMiwgMHhGOCwgMHhDOSwKKyAgICAweDcwLCAweDQ1
LCAweEY0LCAweDYxLCAweDJGLCAweEIyLCAweDBDLCAweDkxLAorfTsKKwogY29uc3RleHByIHVp
bnQ4X3Qga0N0YXBDbGllbnRQaW5SZXRyaWVzUmVzcG9uc2VbXSA9IHsKICAgICAvLyBTdWNjZXNz
CiAgICAgMHgwMCwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCA2NmY3
NGQzODJkYzRkMGRjYmVjNWE2ZmE0MDZkNGM0NDc5ZWY5YzhjLi43MDg3ZGJkMTA5ZDJiMDYzMjYz
ZDE4NDVlZmQxMTdhMGM2ZGMxN2EyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tCkBAIC00NSw2ICs0NSw3IEBAIHN0YXRpYyBib29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxT
dWNjZWRlZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0
ZU11bHRpcGxlTkZDVGFnc1ByZXNlbnQgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRlbnRpYWxzRm91bmQgPSBmYWxzZTsKIHN0YXRpYyBib29s
IHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDYW5jZWxJbW1lZGlhdGVseSA9IGZhbHNlOworc3RhdGlj
IFN0cmluZyB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUGluOwogCiBAaW50ZXJmYWNlIFRlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgOiBOU09iamVjdCA8X1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbERlbGVnYXRlPgogQGVuZApAQCAtODMsNiArODQsMTMgQEAgLSAodm9pZClwYW5lbDoo
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIGRpc21pc3NXZWJBdXRoZW50aWNhdGlv
blBhbmVsV2kKICAgICB9CiB9CiAKKy0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwgKilwYW5lbCByZXF1ZXN0UElOV2l0aFJlbWFpbmluZ1JldHJpZXM6KE5TVUludGVnZXIp
cmV0cmllcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKikpY29tcGxldGlv
bkhhbmRsZXIKK3sKKyAgICBBU1NFUlRfTkUocGFuZWwsIG5pbCk7CisgICAgRVhQRUNUX0VRKHJl
dHJpZXMsIDh1bCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIod2ViQXV0aGVudGljYXRpb25QYW5l
bFBpbik7Cit9CisKIEBlbmQKIAogQGludGVyZmFjZSBUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bEZha2VEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdh
dGU+CkBAIC03NDAsNiArNzQ4LDE0OSBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBh
bmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZENhbmNlbE5vQ3Jhc2gpCiAgICAgVXRpbDo6cnVu
KCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTm9DcmVkZW50aWFsc0ZvdW5kKTsKIH0KIAor
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRSZXRyaWVzRXJyb3IpCit7CisgICAg
cmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25F
eHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVz
c2FnZTpAIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVycm9yIGNvZGU6IDIiXTsKK30KKworVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRLZXlBZ3JlZW1lbnRFcnJvcikKK3sKKyAg
ICByZXNldCgpOworICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgYXV0byAq
Y29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRp
b25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxz
IiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3ZWJWaWV3IHdh
aXRGb3JNZXNzYWdlOkAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29kZTogMiJdOwor
fQorCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvck5vRGVs
ZWdhdGUpCit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBl
cmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2Fn
ZTpAIlBpbiBpcyBub3QgdmFsaWQ6ICJdOworfQorCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIFBpblJlcXVlc3RQaW5FcnJvck51bGxEZWxlZ2F0ZSkKK3sKKyAgICByZXNldCgpOworICAg
IFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4iIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdOworCisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQ
bHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CisgICAgW2RlbGVnYXRlIHNldElzTnVsbDp0cnVlXTsKKyAgICBbd2ViVmll
dyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3
ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiUGluIGlzIG5vdCB2YWxpZDogIl07Cit9CisKK1RFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVxdWVzdFBpbkVycm9yKQoreworICAgIHJlc2V0
KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlk
LXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
KworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisgICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRl
LmdldCgpXTsKKworICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxQaW4gPSAiMTIzIjsKKyAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwu
Z2V0KCldXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlBpbiBpcyBub3QgdmFsaWQ6
IDEyMyJdOworfQorCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldFBpblRva2Vu
RXJyb3IpCit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisg
ICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRo
SW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICB3
ZWJBdXRoZW50aWNhdGlvblBhbmVsUGluID0gIjEyMzQiOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3
ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29k
ZTogMiJdOworfQorCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFs
UGluKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1t
YWtlLWNyZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVu
dGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRV
SURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxQ
aW4gPSAiMTIzNCI7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6
QCJTdWNjZWVkZWQhIl07Cit9CisKK1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNz
ZXJ0aW9uUGluKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcg
c2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICB3ZWJBdXRoZW50aWNhdGlvblBh
bmVsUGluID0gIjEyMzQiOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNz
YWdlOkAiU3VjY2VlZGVkISJdOworfQorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01BWF9BTExPV0VEIDwgMTAxNDAwKQorVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBQaW5JbnZhbGlkS2V5QWdyZWVtZW50RXJyb3IpCit7CisgICAgcmVzZXQoKTsKKyAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWludmFs
aWQta2V5LWFncmVlbWVudCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRl
c3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxQaW4gPSAi
MTIzNCI7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJDYW5u
b3QgY3JlYXRlIGEgVG9rZW5SZXF1ZXN0LiJdOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmUzMWViM2JmZTFlMmNiY2I1MjE0YTM2ZWQ2ODRiMDUyNDk2ODJiMTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4uaHRtbApAQCAtMCwwICsxLDMy
IEBACis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+CisgICAgY29uc3Qg
dGVzdEN0YXBQaW5BdXRoSW52YWxpZEVycm9yQmFzZTY0ID0gIk13PT0iOworICAgIGNvbnN0IHRl
c3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQgPSAiQUtFRENBPT0iOworICAgIGNvbnN0IHRl
c3RQaW5HZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCA9ICJBS0VCcFFFQ0F6Z1lJQUVoV0NE
b2RpV0pidVRrYmNBeWRtNkFoNVl2TnQrZC9vdFdmemRqQVZzWmtLWU9GQ0pZSUNmZVlTMW1RWXZh
R1ZCWUhyeGNqQjJ0Y1F5eFRDTDR5WEJGOUdFdnNneVIiOworICAgIGNvbnN0IHRlc3RQaW5HZXRQ
aW5Ub2tlblJlc3BvbnNlQmFzZTY0ID0gIkFLRUNVQk9rN3JjT3lScnFBQjZURnZZZVFmYz0iOwor
ICAgIGNvbnN0IHRlc3RBc3NlcnRpb25NZXNzYWdlQmFzZTY0ID0KKyAgICAgICAgIkFLTUJvbUpw
WkZoQUtBaXR6dWorVHNsemVsZjMvdlp3SUd0RFFOZ29LZUZkNW9FaWVZemh5ekE2NXNhZjB0SzIi
ICsKKyAgICAgICAgIncvbW9vYTd0UXRHZ0Rkd1pJak9oamN1WjBwUTFham9FNEdSMGVYQmxhbkIx
WW14cFl5MXJaWGtDV0NWR3pIKzUiICsKKyAgICAgICAgIlo1MVZzdHVRa3VISTJlWGgwQ3QxZ1BD
MGdTeDNDV0xoNUk5YTJBRUFBQUJRQTFoSE1FVUNJUUNTRlR1dUJXZ0IiICsKKyAgICAgICAgIjQv
RjBWQjdEbFVWTTA5SUhQbXhlMU16SFV3Um9DUlpiQ0FJZ0dLb3Y2eG9BeDJNRWY2LzZxTnM4T3V0
emhQMkMiICsKKyAgICAgICAgIlFvSjFMN0ZlNjRHOXVCYz0iOworICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25m
aWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46IHRydWUsIHBheWxvYWRCYXNlNjQ6
IFt0ZXN0Q3RhcFBpbkF1dGhJbnZhbGlkRXJyb3JCYXNlNjQsIHRlc3RQaW5HZXRSZXRyaWVzUmVz
cG9uc2VCYXNlNjQsIHRlc3RQaW5HZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCwgdGVzdFBp
bkdldFBpblRva2VuUmVzcG9uc2VCYXNlNjQsIHRlc3RBc3NlcnRpb25NZXNzYWdlQmFzZTY0XSB9
IH0pOworICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsgaW5wdXQuZm9j
dXMoKTsgfSk7CisgICAgfQorCisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgcHVibGlj
S2V5OiB7CisgICAgICAgICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAg
ICAgICAgIHRpbWVvdXQ6IDEwMAorICAgICAgICB9CisgICAgfTsKKworICAgIG5hdmlnYXRvci5j
cmVkZW50aWFscy5nZXQob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgLy8g
Y29uc29sZS5sb2coIlN1Y2NlZWRlZCEiKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN1Y2NlZWRlZCEiKTsKKyAgICB9LCBl
cnJvciA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShl
cnJvci5tZXNzYWdlKTsKKyAgICB9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODNh
Y2E5ODc5NGI4YWU5NGFhZTEwZjdhZmFmNzI2YWVhYzkyZDljMQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwKQEAg
LTAsMCArMSwzMyBAQAorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dCI+Cis8c2NyaXB0Pgor
ICAgIGNvbnN0IHRlc3RDdGFwUGluSW52YWxpZEVycm9yQmFzZTY0ID0gIk1RPT0iOworICAgIGNv
bnN0IHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQgPSAiQUtFRENBPT0iOworICAgIGNv
bnN0IHRlc3RDdGFwSW52YWxpZFBhcmFtZXRlckVycm9yQmFzZTY0ID0gIkFnPT0iOworICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46IHRydWUsIHBh
eWxvYWRCYXNlNjQ6IFt0ZXN0Q3RhcFBpbkludmFsaWRFcnJvckJhc2U2NCwgdGVzdFBpbkdldFJl
dHJpZXNSZXNwb25zZUJhc2U2NCwgdGVzdEN0YXBJbnZhbGlkUGFyYW1ldGVyRXJyb3JCYXNlNjRd
IH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5m
b2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICBwdWJs
aWNLZXk6IHsKKyAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgbmFtZTogImxvY2Fs
aG9zdCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAg
ICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgaWQ6IG5ldyBVaW50
OEFycmF5KDE2KSwKKyAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgY2hhbGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiks
CisgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFs
ZzogLTcgfV0KKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUu
bG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4g
eworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVz
c2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1o
aWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGlu
LWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTkxNWIzZjhmZmRlYmEyODk5
NjIzNzZiNjQzY2Y5OTZmYTBhOGZiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFs
LWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzxpbnB1
dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0Q3RhcFBp
bkludmFsaWRFcnJvckJhc2U2NCA9ICJNUT09IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0UmV0cmll
c1Jlc3BvbnNlQmFzZTY0ID0gIkFLRURDQT09IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0S2V5QWdy
ZWVtZW50UmVzcG9uc2VCYXNlNjQgPSAiQUtFQnBRRUNBemdZSUFFaFdDRG9kaVdKYnVUa2JjQXlk
bTZBaDVZdk50K2Qvb3RXZnpkakFWc1prS1lPRkNKWUlDZmVZUzFtUVl2YUdWQllIcnhjakIydGNR
eXhUQ0w0eVhCRjlHRXZzZ3lSIjsKKyAgICBjb25zdCB0ZXN0Q3RhcEludmFsaWRQYXJhbWV0ZXJF
cnJvckJhc2U2NCA9ICJBZz09IjsKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
ICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IGhpZDog
eyBzdXBwb3J0Q2xpZW50UGluOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEN0YXBQaW5JbnZh
bGlkRXJyb3JCYXNlNjQsIHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQsIHRlc3RQaW5H
ZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCwgdGVzdEN0YXBJbnZhbGlkUGFyYW1ldGVyRXJy
b3JCYXNlNjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4g
eyBpbnB1dC5mb2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAg
ICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgbmFt
ZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdXNlcjogeworICAg
ICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgaWQ6
IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxl
c2VlZCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2hhbGxlbmdlOiBuZXcgVWludDhB
cnJheSgxNiksCisgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGlj
LWtleSIsIGFsZzogLTcgfV0KKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8v
IGNvbnNvbGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwg
ZXJyb3IgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
ZXJyb3IubWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3Jl
ZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwt
aGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZDExNTdjNDFjZjhj
M2QzN2Q5ZTgzMjQ3MDMzNWIzNmU3MWIwMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxp
bnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0Q3Rh
cFBpbkludmFsaWRFcnJvckJhc2U2NCA9ICJNUT09IjsKKyAgICBjb25zdCB0ZXN0Q3RhcEludmFs
aWRQYXJhbWV0ZXJFcnJvckJhc2U2NCA9ICJBZz09IjsKKyAgICBpZiAod2luZG93LmludGVybmFs
cykgeworICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbih7IGhpZDogeyBzdXBwb3J0Q2xpZW50UGluOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVz
dEN0YXBQaW5JbnZhbGlkRXJyb3JCYXNlNjQsIHRlc3RDdGFwSW52YWxpZFBhcmFtZXRlckVycm9y
QmFzZTY0XSB9IH0pOworICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsg
aW5wdXQuZm9jdXMoKTsgfSk7CisgICAgfQorCisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAg
ICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgIG5hbWU6
ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHVzZXI6IHsKKyAgICAg
ICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIGlkOiBu
ZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNl
ZWQiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJy
YXkoMTYpLAorICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1r
ZXkiLCBhbGc6IC03IH1dCisgICAgICAgIH0KKyAgICB9OworCisgICAgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAvLyBj
b25zb2xlLmxvZygiU3VjY2VlZGVkISIpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiU3VjY2VlZGVkISIpOworICAgIH0sIGVy
cm9yID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGVy
cm9yLm1lc3NhZ2UpOworICAgIH0pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLXBpbi1pbnZhbGlkLWtleS1hZ3JlZWVtZW50Lmh0bWwgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtaGlkLXBpbi1pbnZhbGlkLWtleS1hZ3JlZWVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY4NTE4
ZmYwYzc4YWU4YmFkYWI1MTQ5MDg1NzgyZWFjYjkyYjUzNQotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWludmFsaWQta2V5LWFncmVlZW1lbnQuaHRtbApAQCAtMCww
ICsxLDMzIEBACis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+CisgICAg
Y29uc3QgdGVzdEN0YXBQaW5JbnZhbGlkRXJyb3JCYXNlNjQgPSAiTVE9PSI7CisgICAgY29uc3Qg
dGVzdFBpbkdldFJldHJpZXNSZXNwb25zZUJhc2U2NCA9ICJBS0VEQ0E9PSI7CisgICAgY29uc3Qg
dGVzdFBpbkludmFsaWRHZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCA9ICJBS0VCcFFFQ0F6
Z1lJQUVoV0NEb2RpV0pidVRrWnNBeWRtNkFoNVl2TnQrZC80dFdmemRqQVZzWmtLWU9GQ0pZSUNm
ZVlTMW1RWXZhR1ZCWUhyeGNqQjJ0Y1F5eFRDTDR5WEJGOUdFdnNneVIiOworICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46IHRydWUsIHBheWxvYWRC
YXNlNjQ6IFt0ZXN0Q3RhcFBpbkludmFsaWRFcnJvckJhc2U2NCwgdGVzdFBpbkdldFJldHJpZXNS
ZXNwb25zZUJhc2U2NCwgdGVzdFBpbkludmFsaWRHZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2
NF0gfSB9KTsKKyAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0
LmZvY3VzKCk7IH0pOworICAgIH0KKworICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1
YmxpY0tleTogeworICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAibG9j
YWxob3N0IiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAg
ICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICBpZDogbmV3IFVp
bnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2
KSwKKyAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5Iiwg
YWxnOiAtNyB9XQorICAgICAgICB9CisgICAgfTsKKworICAgIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgLy8gY29uc29s
ZS5sb2coIlN1Y2NlZWRlZCEiKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN1Y2NlZWRlZCEiKTsKKyAgICB9LCBlcnJvciA9
PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShlcnJvci5t
ZXNzYWdlKTsKKyAgICB9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFs
LWhpZC1waW4uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzE1YTBmZjUxNmU5YjYyNjgwMWE0OGY2NzViZDA2OTE2ZjhkYWI0MAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPGlucHV0
IHR5cGU9InRleHQiIGlkPSJpbnB1dCI+Cis8c2NyaXB0PgorICAgIGNvbnN0IHRlc3RDdGFwUGlu
QXV0aEludmFsaWRFcnJvckJhc2U2NCA9ICJNdz09IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0UmV0
cmllc1Jlc3BvbnNlQmFzZTY0ID0gIkFLRURDQT09IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0S2V5
QWdyZWVtZW50UmVzcG9uc2VCYXNlNjQgPSAiQUtFQnBRRUNBemdZSUFFaFdDRG9kaVdKYnVUa2Jj
QXlkbTZBaDVZdk50K2Qvb3RXZnpkakFWc1prS1lPRkNKWUlDZmVZUzFtUVl2YUdWQllIcnhjakIy
dGNReXhUQ0w0eVhCRjlHRXZzZ3lSIjsKKyAgICBjb25zdCB0ZXN0UGluR2V0UGluVG9rZW5SZXNw
b25zZUJhc2U2NCA9ICJBS0VDVUJPazdyY095UnJxQUI2VEZ2WWVRZmM9IjsKKyAgICBjb25zdCB0
ZXN0Q3JlYXRpb25NZXNzYWdlQmFzZTY0ID0KKyAgICAgICAgIkFLTUJabkJoWTJ0bFpBSll4RWJN
Zjdsbm5WV3kyNUNTNGNqWjVlSFFLM1dBOExTQkxIY0pZdUhrajFyWVFRQUEiICsKKyAgICAgICAg
IkFFNzRvQkh6akFwTkZZQUdGeEVmbnR4OUFFQW9DSzNPNlA1T3lYTjZWL2YrOW5BZ2EwTkEyQ2dw
NFYzbWdTSjUiICsKKyAgICAgICAgImpPSExNRHJteHAvUzByYkQrYWlocnUxQzBhQU4zQmtpTTZH
Tnk1blNsRFZxT2dUZ3BRRUNBeVlnQVNGWUlFRmIiICsKKyAgICAgICAgImhlM1JrTnVkNnNneXJh
QkdqbGgxcHpUbENaZWhRbEwvYjE4SFo2V0dJbGdnSmdmVWQvZW45cDVBSXFNUWJVbmkiICsKKyAg
ICAgICAgIm5FZVhkRkxrdlcwL3pWNUJwRWpqTnhBRG8yTmhiR2NtWTNOcFoxaEhNRVVDSVFES2cr
WkJtRUJ0ZjBsV3E0UmUiICsKKyAgICAgICAgImRINC9pL0xPWXFPUjR1UjJOQWoyelFtdzlRSWdi
VFhiNGh2RmJqNFQyN2J2L3JHcmMreSswcHVvWU9Ca0JrOVAiICsKKyAgICAgICAgIm1DZXdXbE5q
ZURWamdWa0N3akNDQXI0d2dnR21vQU1DQVFJQ0JIU0cvY0l3RFFZSktvWklodmNOQVFFTEJRQXci
ICsKKyAgICAgICAgIkxqRXNNQ29HQTFVRUF4TWpXWFZpYVdOdklGVXlSaUJTYjI5MElFTkJJRk5s
Y21saGJDQTBOVGN5TURBMk16RXciICsKKyAgICAgICAgIklCY05NVFF3T0RBeE1EQXdNREF3V2hn
UE1qQTFNREE1TURRd01EQXdNREJhTUc4eEN6QUpCZ05WQkFZVEFsTkYiICsKKyAgICAgICAgIk1S
SXdFQVlEVlFRS0RBbFpkV0pwWTI4Z1FVSXhJakFnQmdOVkJBc01HVUYxZEdobGJuUnBZMkYwYjNJ
Z1FYUjAiICsKKyAgICAgICAgIlpYTjBZWFJwYjI0eEtEQW1CZ05WQkFNTUgxbDFZbWxqYnlCVk1r
WWdSVVVnVTJWeWFXRnNJREU1TlRVd01ETTQiICsKKyAgICAgICAgIk5ESXdXVEFUQmdjcWhrak9Q
UUlCQmdncWhrak9QUU1CQndOQ0FBU1ZYZk90OXlSOU1YWHYvWnpFOHhwT2g0NjYiICsKKyAgICAg
ICAgIjRZRUpWbUZRK3ppTExsOWxKNzlYUUpxbGdhVU5Dc1V2R0VSY0NoTlVpaE5UeUtUbG1uQk9V
anZBVGV2dG8yd3ciICsKKyAgICAgICAgImFqQWlCZ2tyQmdFRUFZTEVDZ0lFRlRFdU15NDJMakV1
TkM0eExqUXhORGd5TGpFdU1UQVRCZ3NyQmdFRUFZTGwiICsKKyAgICAgICAgIkhBSUJBUVFFQXdJ
RklEQWhCZ3NyQmdFRUFZTGxIQUVCQkFRU0JCRDRvQkh6akFwTkZZQUdGeEVmbnR4OU1Bd0ciICsK
KyAgICAgICAgIkExVWRFd0VCL3dRQ01BQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBREZjU0lE
bW1sSitPR2FKdlduOUNxaHYiICsKKyAgICAgICAgIlNldWVUb1ZGUVZWdnF0QUxPZ0NLSGR3QitX
eDI5bWcyR3BIaU1zZ1FwNXhqQjB5YmJucEc2eDIxMkZ4RVNKK0ciICsKKyAgICAgICAgImluWkQw
aXBjaGk3QVB3UGxoSXZqZ0gxNnpWWDQ0YTRlNGhPc2M2dExJT1A3MVNhTXNIdUhnQ2NkSDB2ZzVk
MnMiICsKKyAgICAgICAgImMwMDZXSmU5VFhPNmZ6VitvZ2pKbllwTktRTG1DWG9BWEUzSkJOd0tH
QklPQ3ZmUURQeVdtaWlHNWJHeFlmUHQiICsKKyAgICAgICAgInk4WjNwbmpYKzFNRG5NMmhocjQw
dWxNeGxTTkRuWC9aU25EeU1HSWJrOFRPUW1qVEYwMlVPOGF1UDhrM3d0NUQiICsKKyAgICAgICAg
IjFyUk9JUlU5K0ZDU1g1V1FZaTY4UnVEckdNWkI4UDUrYnlvSnFiS1FkeG4yTG1FMW9aQXlvaFBB
bUxjb1BPND0iOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFs
cy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRD
bGllbnRQaW46IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0Q3RhcFBpbkF1dGhJbnZhbGlkRXJy
b3JCYXNlNjQsIHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQsIHRlc3RQaW5HZXRLZXlB
Z3JlZW1lbnRSZXNwb25zZUJhc2U2NCwgdGVzdFBpbkdldFBpblRva2VuUmVzcG9uc2VCYXNlNjQs
IHRlc3RDcmVhdGlvbk1lc3NhZ2VCYXNlNjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRo
VXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5mb2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25z
dCBvcHRpb25zID0geworICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIHJwOiB7Cisg
ICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisg
ICAgICAgICAgICAgICAgaWQ6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgICAgICBk
aXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2hh
bGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1z
OiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0KKyAgICAgICAgfQorICAgIH07CisK
KyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlh
bCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNj
ZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJv
ci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387028</attachid>
            <date>2020-01-07 14:05:32 -0800</date>
            <delta_ts>2020-01-10 15:23:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191516-20200107140531.patch</filename>
            <type>text/plain</type>
            <size>81746</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY4YWIxMDU1YWZlOTBl
NTY5OTU5NGU0YmVjYmI1ZDcyNzdjNzZmNC4uZDQ2YjQyYTE0YjkyNjI1ZWQxZTkyYTNiNjVjNjBm
YTBiMTZiMGI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAxLTA2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBTdXBw
b3J0IENUQVAgQ2xpZW50IFBpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkxNTE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjU1ODU1OD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5
IEFQSSB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1
ZXN0Q29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OmVuY29kZU1ha2VDcmVkZW5pdGFsUmVx
dWVzdEFzQ0JPUik6CisgICAgICAgIChmaWRvOjplbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXND
Qk9SKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcDoKKyAgICAgICAg
KGZpZG86OnBpbjo6UmV0cmllc1Jlc3BvbnNlOjpwYXJzZSk6CisgICAgICAgIChmaWRvOjpwaW46
OlRva2VuUmVzcG9uc2U6OnBhcnNlKToKKyAgICAgICAgKGZpZG86OnBpbjo6VG9rZW5SZXF1ZXN0
Ojp0cnlDcmVhdGUpOgorICAgICAgICAoZmlkbzo6cGluOjplbmNvZGVBc0NCT1IpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmg6CisgICAgICAgICogY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0
b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpD
cnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQpOgorICAgICAgICAqIGNyeXB0
by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
cmFuc2Zvcm1BRVNfQ0JDKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19D
QkM6OnBsYXRmb3JtRW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQpOgorICAgICAgICAqIHRlc3RpbmcvTW9ja1dlYkF1dGhl
bnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1dlYkF1dGhl
bnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6SGlkQ29uZmlndXJhdGlvbjo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246Okhp
ZENvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICogdGVzdGluZy9Nb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uLmlkbDoKKwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gSXNzdWUgbWFjaCBsb29rdXAg
ZXh0ZW5zaW9uIHRvIGxhdW5jaCBzZXJ2aWNlcyBkYWVtb24gZm9yIE1haWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
OTljMzcyNzAxZmMzMzMwNDM0NDE5YTZkYTViMzY2YjE4N2E3ZjdlNy4uMGJiZTM4OWFkODNkZGFk
MDVlNDA2MzY2N2ZjZTIwMTE3YzJjZDE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAy
MC0wMS0wNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtX
ZWJBdXRobl0gU3VwcG9ydCBDVEFQIENsaWVudCBQaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTUxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTY1NTg1NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0b3JDbGllbnRQSU4gZnJvbSB0aGUg
c3BlYzoKKyAgICAgICAgaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1w
cy0yMDE5MDEzMC9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMt
MjAxOTAxMzAuaHRtbCNhdXRoZW50aWNhdG9yQ2xpZW50UElOCisgICAgICAgIFNwZWNpZmljYWxs
eSwgaXQgaW1wbGVtZW50cyBzZWN0aW9uIDUuNS4xLCA1LjUuMywgNS41LjQsIDUuNS43LCBhbmQg
NS41LjguCisKKyAgICAgICAgSGVyZSBpcyB0aGUgZmxvdyBob3cgbWFrZUNyZWRlbnRpYWwvZ2V0
QXNzZXJ0aW9uIHdvcmtzIHdpdGggYSBQSU4gaW4gb3VyIGltcGxlbWVudGF0aW9uOgorICAgICAg
ICAxLiBEZXRlcm1pbmUgaWYgdGhlIGNvbm5lY3RlZCBhdXRoZW50aWNhdG9yIGhhcyBhIFBJTjsK
KyAgICAgICAgMi4gSWYgeWVzLCBzZW5kIHRoZSBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb24g
cmVxdWVzdCB0byB0aGUgYXV0aGVudGljYXRvciB3aXRoIGFuIGVtcHR5IHBpbkF1dGgKKyAgICAg
ICAgc3VjaCB0aGF0IHRoZSBhdXRoZW50aWNhdG9yIHdpbGwgd2luayBmb3IgdXNlciBnZXN0dXJl
cy4gVGhpcyBzdGVwIGludGVuZHMgdG8gY29uZmlybSB0aGUgYXV0aGVudGljYXRvcgorICAgICAg
ICBpcyB0aGUgb25lIHRoZSB1c2VyIHdhbnRzIHRvIHVzZS4gT3RoZXJ3aXNlLCB3ZSBkb24ndCBr
bm93IHdoaWNoIGF1dGhlbnRpY2F0b3IgdG8gc2VuZCB0aGUgUElOCisgICAgICAgIGlmIG11bHRp
cGxlIGFyZSBjb25uZWN0ZWQ7CisgICAgICAgIDMuIE9uY2UgdGhlIHVzZXIgY29uZmlybXMgdGhl
IGF1dGhldG5pY2F0b3IsIGl0IHdpbGwgcmV0dXJuIGVpdGhlciBDVEFQMl9FUlJfUElOX0lOVkFM
SUQgb3IKKyAgICAgICAgQ1RBUDJfRVJSX1BJTl9BVVRIX0lOVkFMSUQuIFNvbWUgYXV0aGVudGlj
YXRvcnMgcmV0dXJuIENUQVAyX0VSUl9QSU5fQVVUSF9JTlZBTElEIGV2ZW4gdGhvdWdoCisgICAg
ICAgIGl0IGlzIG5vdCBzdWdnZXN0ZWQgYnkgdGhlIHNwZWM7CisgICAgICAgIDQuIEdldCByZXRy
aWVzIGZyb20gdGhlIGF1dGhlbnRpY2F0b3I7CisgICAgICAgIDUuIEdldCBrZXkgYWdyZWVtZW50
IGZyb20gdGhlIGF1dGhlbnRpY2F0b3I7CisgICAgICAgIDYuIEFzayB0aGUgVUkgY2xpZW50IGZv
ciB0aGUgUElOIGFuZCBhdCB0aGUgbWVhbnRpbWUgaW5mb3JtIGl0IHRoZSByZXRyaWVzOworICAg
ICAgICA3LiBHZXQgcGluIHRva2VuIGZyb20gdGhlIGF1dGhlbnRpY2F0b3I7CisgICAgICAgIDgu
IFJlc2VuZCB0aGUgbWFrZUNyZWRlbnRpYWwvZ2V0QXNzZXJ0aW9uIHJlcXVlc3Qgd2l0aCB0aGUg
ZGVzaXJlZCBwaW5BdXRoLgorCisgICAgICAgIEJlc2lkZXMgaW1wbGVtZW50YXRpbmcgdGhlIGFi
b3ZlIGZsb3csIHRoaXMgcGF0Y2ggYWxzbyBmaXhlcyBzb21lIGJ1Z3Mgd2l0aGluIHRoZSBQSU4g
Y29tbWFuZHMgZW5jb2RlcjoKKyAgICAgICAgMS4gcGluQXV0aC9waW5Qcm90b2NvbCBhcmUgd3Jv
bmdseSBlbmNvZGVkIGZvciBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb247CisgICAgICAgIDIu
IEFFUyBDQkMgc2hvdWxkIGJlIGNhbGxlZCB3aXRob3V0IGFueSBwYWRkaW5nLiBUaGVyZWZvcmUs
IENyeXB0b0FsZ29yaXRobUFFU19DQkMgYWRkcyBhIG5vIHBhZGRpbmcgbW9kZTsKKyAgICAgICAg
My4gVGhlIHNoYXJlZFNlY3JldCBpcyB0aGUgU0hBMjU2IGRpZ2VzdCBvZiB0aGUgRUNESCBrZXkg
YWdyZWVtZW50IGluc3RlYWQgb2YgdGhlIHJhdyBrZXkgYWdyZWVtZW50LgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6CisgICAgICAg
IChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OnJlcXVlc3RQaW4gY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6OnJlcXVlc3RQaW4p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJB
dXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW06CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OldlYkF1dGhlbnRpY2F0aW9u
UGFuZWxDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xp
ZW50OjpyZXF1ZXN0UGluIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vTW9jay9Nb2NrSGlkQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vY2tI
aWRDb25uZWN0aW9uOjpmZWVkUmVwb3J0cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpD
dGFwQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0OjpDdGFw
QXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZl
ZCk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpnZXRBc3NlcnRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25B
ZnRlclJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRv
cjo6Z2V0UmV0cmllcyk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250
aW51ZUdldEtleUFncmVlbWVudEFmdGVyR2V0UmV0cmllcyk6CisgICAgICAgIChXZWJLaXQ6OkN0
YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZVJlcXVlc3RQaW5BZnRlckdldEtleUFncmVlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldFBpblRva2Vu
QWZ0ZXJSZXF1ZXN0UGluKToKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmNv
bnRpbnVlUmVxdWVzdEFmdGVyR2V0UGluVG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0
aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZlZCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2Zp
ZG8vQ3RhcEF1dGhlbnRpY2F0b3IuaDoKKwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFuICA8
cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gSXNzdWUgbWFjaCBsb29rdXAgZXh0
ZW5zaW9uIHRvIGxhdW5jaCBzZXJ2aWNlcyBkYWVtb24gZm9yIE1haWwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0
Q29udmVydGVyLmNwcAppbmRleCBiOTZkYWJiNTk4NjljNDI1YmRiYmE0N2U5M2Y1ZDMwMDk4YWE5
ZDg5Li4xNTVlNWQxZWUyZTNmODVkNzQ0OTIwZTRhYTM4YjllOGQ5YTcyNjQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZl
cnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0Rldmlj
ZVJlcXVlc3RDb252ZXJ0ZXIuY3BwCkBAIC0xMjYsOCArMTI2LDggQEAgVmVjdG9yPHVpbnQ4X3Q+
IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4m
IGhhc2gsIGMKIAogICAgIGlmIChwaW4pIHsKICAgICAgICAgQVNTRVJUKHBpbi0+cHJvdG9jb2wg
Pj0gMCk7Ci0gICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDgpXSA9IENCT1JWYWx1ZShwaW4tPnBy
b3RvY29sKTsKLSAgICAgICAgY2Jvck1hcFtDQk9SVmFsdWUoOSldID0gQ0JPUlZhbHVlKFdURk1v
dmUocGluLT5hdXRoKSk7CisgICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDgpXSA9IENCT1JWYWx1
ZShXVEZNb3ZlKHBpbi0+YXV0aCkpOworICAgICAgICBjYm9yTWFwW0NCT1JWYWx1ZSg5KV0gPSBD
Qk9SVmFsdWUocGluLT5wcm90b2NvbCk7CiAgICAgfQogCiAgICAgYXV0byBzZXJpYWxpemVkUGFy
YW0gPSBDQk9SV3JpdGVyOjp3cml0ZShDQk9SVmFsdWUoV1RGTW92ZShjYm9yTWFwKSkpOwpAQCAt
MTcyLDggKzE3Miw4IEBAIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0
QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uCiAKICAgICBpZiAocGluKSB7
CiAgICAgICAgIEFTU0VSVChwaW4tPnByb3RvY29sID49IDApOwotICAgICAgICBjYm9yTWFwW0NC
T1JWYWx1ZSg4KV0gPSBDQk9SVmFsdWUocGluLT5wcm90b2NvbCk7Ci0gICAgICAgIGNib3JNYXBb
Q0JPUlZhbHVlKDkpXSA9IENCT1JWYWx1ZShXVEZNb3ZlKHBpbi0+YXV0aCkpOworICAgICAgICBj
Ym9yTWFwW0NCT1JWYWx1ZSg2KV0gPSBDQk9SVmFsdWUoV1RGTW92ZShwaW4tPmF1dGgpKTsKKyAg
ICAgICAgY2Jvck1hcFtDQk9SVmFsdWUoNyldID0gQ0JPUlZhbHVlKHBpbi0+cHJvdG9jb2wpOwog
ICAgIH0KIAogICAgIGF1dG8gc2VyaWFsaXplZFBhcmFtID0gQ0JPUldyaXRlcjo6d3JpdGUoQ0JP
UlZhbHVlKFdURk1vdmUoY2Jvck1hcCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1Bpbi5jcHAKaW5kZXggN2YwYzY1OWQ4NGQxYmQyN2QyYTU2Yjg0YmVlOTE4ZWY1
ODMyNmEzOC4uZTE5YTFkM2MzYjA1ZDA5OTk3MGNhODhjZTcyM2JkOTY5MmI1MmNhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKQEAgLTEyNiw3ICsx
MjYsNyBAQCBPcHRpb25hbDxSZXRyaWVzUmVzcG9uc2U+IFJldHJpZXNSZXNwb25zZTo6cGFyc2Uo
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpbkJ1ZmZlcgogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCiAgICAgUmV0cmllc1Jlc3BvbnNlIHJldDsKLSAgICByZXQucmV0cmllcyA9IHN0YXRp
Y19jYXN0PGludDY0X3Q+KGl0LT5zZWNvbmQuZ2V0VW5zaWduZWQoKSk7CisgICAgcmV0LnJldHJp
ZXMgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaXQtPnNlY29uZC5nZXRVbnNpZ25lZCgpKTsKICAg
ICByZXR1cm4gcmV0OwogfQogCkBAIC0yMjcsNyArMjI3LDcgQEAgT3B0aW9uYWw8VG9rZW5SZXNw
b25zZT4gVG9rZW5SZXNwb25zZTo6cGFyc2UoY29uc3QgV2ViQ29yZTo6Q3J5cHRvS2V5QUVTJiBz
aGFyZWQKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBjb25zdCBhdXRvJiBlbmNy
eXB0ZWRUb2tlbiA9IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOwogCi0gICAgYXV0byB0b2tl
blJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdCh7IH0sIHNo
YXJlZEtleSwgZW5jcnlwdGVkVG9rZW4pOworICAgIGF1dG8gdG9rZW5SZXN1bHQgPSBDcnlwdG9B
bGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQoeyB9LCBzaGFyZWRLZXksIGVuY3J5cHRl
ZFRva2VuLCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpQYWRkaW5nOjpObyk7CiAgICAgaWYgKHRv
a2VuUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owog
ICAgIGF1dG8gdG9rZW4gPSB0b2tlblJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKQEAgLTI2
NywxMSArMjY3LDE2IEBAIE9wdGlvbmFsPFRva2VuUmVxdWVzdD4gVG9rZW5SZXF1ZXN0Ojp0cnlD
cmVhdGUoY29uc3QgQ1N0cmluZyYgcGluLCBjb25zdCBDcnlwdG9LCiAgICAgQVNTRVJUKCFrZXlQ
YWlyUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKTsKICAgICBhdXRvIGtleVBhaXIgPSBrZXlQYWlyUmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCi0gICAgLy8gMi4gVXNlIEVDREggdG8gY29tcHV0
ZSB0aGUgc2hhcmVkIEFFUy1DQkMga2V5LgorICAgIC8vIDIuIFVzZSBFQ0RIIGFuZCBTSEEtMjU2
IHRvIGNvbXB1dGUgdGhlIHNoYXJlZCBBRVMtQ0JDIGtleS4KICAgICBhdXRvIHNoYXJlZEtleVJl
c3VsdCA9IENyeXB0b0FsZ29yaXRobUVDREg6OnBsYXRmb3JtRGVyaXZlQml0cyhkb3duY2FzdDxD
cnlwdG9LZXlFQz4oKmtleVBhaXIucHJpdmF0ZUtleSksIHBlZXJLZXkpOwogICAgIGlmICghc2hh
cmVkS2V5UmVzdWx0KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGF1dG8gc2hh
cmVkS2V5ID0gQ3J5cHRvS2V5QUVTOjppbXBvcnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6QUVTX0NCQywgV1RGTW92ZSgqc2hhcmVkS2V5UmVzdWx0KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNh
Z2VFbmNyeXB0IHwgQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0KTsKKworICAgIGF1dG8gY3J5cHRvID0g
UEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZShQQUw6OkNyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpT
SEFfMjU2KTsKKyAgICBjcnlwdG8tPmFkZEJ5dGVzKHNoYXJlZEtleVJlc3VsdC0+ZGF0YSgpLCBz
aGFyZWRLZXlSZXN1bHQtPnNpemUoKSk7CisgICAgYXV0byBzaGFyZWRLZXlIYXNoID0gY3J5cHRv
LT5jb21wdXRlSGFzaCgpOworCisgICAgYXV0byBzaGFyZWRLZXkgPSBDcnlwdG9LZXlBRVM6Omlt
cG9ydFJhdyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDLCBXVEZNb3ZlKHNoYXJl
ZEtleUhhc2gpLCB0cnVlLCBDcnlwdG9LZXlVc2FnZUVuY3J5cHQgfCBDcnlwdG9LZXlVc2FnZURl
Y3J5cHQpOwogICAgIEFTU0VSVChzaGFyZWRLZXkpOwogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBl
bmNvZGVzIHRoZSBwdWJsaWMga2V5IG9mIHRoZSBhYm92ZSBrZXkgcGFpciBpbnRvIENPU0UgZm9y
bWF0LgpAQCAtMjgwLDcgKzI4NSw3IEBAIE9wdGlvbmFsPFRva2VuUmVxdWVzdD4gVG9rZW5SZXF1
ZXN0Ojp0cnlDcmVhdGUoY29uc3QgQ1N0cmluZyYgcGluLCBjb25zdCBDcnlwdG9LCiAgICAgYXV0
byBjb3NlS2V5ID0gZW5jb2RlQ09TRVB1YmxpY0tleShyYXdQdWJsaWNLZXlSZXN1bHQucmV0dXJu
VmFsdWUoKSk7CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGNhbGN1bGF0ZXMgYSBTSEEtMjU2IGRp
Z2VzdCBvZiB0aGUgUElOLCBhbmQgc2hyaW5rIHRvIHRoZSBsZWZ0IDE2IGJ5dGVzLgotICAgIGF1
dG8gY3J5cHRvID0gUEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZShQQUw6OkNyeXB0b0RpZ2VzdDo6
QWxnb3JpdGhtOjpTSEFfMjU2KTsKKyAgICBjcnlwdG8gPSBQQUw6OkNyeXB0b0RpZ2VzdDo6Y3Jl
YXRlKFBBTDo6Q3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yNTYpOwogICAgIGNyeXB0by0+
YWRkQnl0ZXMocGluLmRhdGEoKSwgcGluLmxlbmd0aCgpKTsKICAgICBhdXRvIHBpbkhhc2ggPSBj
cnlwdG8tPmNvbXB1dGVIYXNoKCk7CiAgICAgcGluSGFzaC5zaHJpbmsoMTYpOwpAQCAtMzAyLDcg
KzMwNyw3IEBAIGNvbnN0IENyeXB0b0tleUFFUyYgVG9rZW5SZXF1ZXN0OjpzaGFyZWRLZXkoKSBj
b25zdAogCiBWZWN0b3I8dWludDhfdD4gZW5jb2RlQXNDQk9SKGNvbnN0IFRva2VuUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICBhdXRvIHJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBs
YXRmb3JtRW5jcnlwdCh7IH0sIHJlcXVlc3Quc2hhcmVkS2V5KCksIHJlcXVlc3QubV9waW5IYXNo
KTsKKyAgICBhdXRvIHJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRW5j
cnlwdCh7IH0sIHJlcXVlc3Quc2hhcmVkS2V5KCksIHJlcXVlc3QubV9waW5IYXNoLCBDcnlwdG9B
bGdvcml0aG1BRVNfQ0JDOjpQYWRkaW5nOjpObyk7CiAgICAgQVNTRVJUKCFyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpOwogCiAgICAgcmV0dXJuIGVuY29kZVBpbkNvbW1hbmQoU3ViY29tbWFuZDo6a0dl
dFBpblRva2VuLCBbY29zZUtleSA9IFdURk1vdmUocmVxdWVzdC5tX2Nvc2VLZXkpLCBlbmNyeXB0
ZWRQaW4gPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCldIChDQk9SVmFsdWU6Ok1hcFZhbHVl
KiBtYXApIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1Bpbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bp
bi5oCmluZGV4IDM1NzQzYTAwMzA3ZGNmYmQ5ZTQ4OGQ5NWQwYmUwYjI3NDgwZTU5NmIuLmY1YjFl
Y2EyZjU0YWIyNzJmNWY0ZDFmNTdjZGM1ODQ3MTI1MGIzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmgKQEAgLTc5LDcgKzc5LDcgQEAgZW51bSBjbGFzcyBS
ZXNwb25zZUtleSA6IHVpbnQ4X3QgewogCiAvLyBrUHJvdG9jb2xWZXJzaW9uIGlzIHRoZSB2ZXJz
aW9uIG9mIHRoZSBQSU4gcHJvdG9jb2wgdGhhdCB0aGlzIGNvZGUKIC8vIGltcGxlbWVudHMuCi1j
b25zdGV4cHIgaW50IGtQcm90b2NvbFZlcnNpb24gPSAxOworY29uc3RleHByIGludDY0X3Qga1By
b3RvY29sVmVyc2lvbiA9IDE7CiAKIC8vIGVuY29kZUNPU0VQdWJsaWNLZXkgdGFrZXMgYSByYXcg
RUNESDI1NiBwdWJsaWMga2V5IGFuZCByZXR1cm5zIGl0IGFzIGEgQ09TRSBzdHJ1Y3R1cmUuCiBX
RUJDT1JFX0VYUE9SVCBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGVuY29kZUNPU0VQdWJsaWNL
ZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpOwpAQCAtMTEwLDcgKzExMCw3IEBAIHN0cnVj
dCBSZXRyaWVzUmVzcG9uc2UgewogCiAgICAgLy8gcmV0cmllcyBpcyB0aGUgbnVtYmVyIG9mIFBJ
TiBhdHRlbXB0cyByZW1haW5pbmcgYmVmb3JlIHRoZSBhdXRoZW50aWNhdG9yCiAgICAgLy8gbG9j
a3MuCi0gICAgaW50IHJldHJpZXM7CisgICAgdWludDY0X3QgcmV0cmllczsKIAogcHJpdmF0ZToK
ICAgICBSZXRyaWVzUmVzcG9uc2UoKTsKQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAKICAg
ICAvLyBzaGFyZWRLZXkgcmV0dXJucyB0aGUgc2hhcmVkIEVDREgga2V5IHRoYXQgd2FzIHVzZWQg
dG8gZW5jcnlwdCB0aGUgUElOLgogICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGRlY3J5cHQgdGhl
IHJlc3BvbnNlLgotICAgIGNvbnN0IFdlYkNvcmU6OkNyeXB0b0tleUFFUyYgc2hhcmVkS2V5KCkg
Y29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgV2ViQ29yZTo6Q3J5cHRvS2V5QUVTJiBz
aGFyZWRLZXkoKSBjb25zdDsKIAogICAgIGZyaWVuZCBWZWN0b3I8dWludDhfdD4gZW5jb2RlQXND
Qk9SKGNvbnN0IFRva2VuUmVxdWVzdCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKaW5kZXggZmQ5ODkx
MmI3MGRjMGI1MWQxYjk4NzkwNjY0ZDcyYjQ2ZTM0MjhmZS4uMjczMjk4NWI3N2ZlZGZjMzk2NzRk
NDc0OWQ4OTU1MGEwYTE3MWMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaApAQCAtMzYsMTMgKzM2LDE4
IEBAIGNsYXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQyBm
aW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgorICAgIGVudW0gY2xhc3Mg
UGFkZGluZyA6IHVpbnQ4X3QgeworICAgICAgICBZZXMsCisgICAgICAgIE5vCisgICAgfTsKKwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkFFUy1DQkMiOwogICAg
IHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIg
PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOwogICAgIHN0YXRpYyBSZWY8Q3J5
cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIAogICAgIC8vIE9wZXJhdGlvbnMgY2FuIGJlIHBlcmZv
cm1lZCBkaXJlY3RseS4KLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVj
dG9yPHVpbnQ4X3Q+PiBwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2Jj
Q2ZiUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5QUVTJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4g
cGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYsIGNv
bnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IHBsYXRmb3JtRW5jcnlw
dChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlB
RVMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBQYWRkaW5nIHBhZGRpbmcgPSBQYWRkaW5nOjpZ
ZXMpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhf
dD4+IHBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJhbXMm
LCBjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBQYWRkaW5nIHBh
ZGRpbmcgPSBQYWRkaW5nOjpZZXMpOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRobUFF
U19DQkMoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAppbmRleCA5OGE2YjIx
OWJlMjAyZjMzNTM3OWE1NTE4Nzg2ZmNjMjRjY2EyMjUzLi5hNTFiNjZkOGRkZTgxMTM0YjU4MzBj
MmE2YTA5OWQ4MWFiMGNlZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dDcnlwdC5jcHAKQEAgLTE2Niw3
ICsxNjYsNyBAQCBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBnY3J5cHREZWNyeXB0
KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBjb25zdAogICAgIHJldHVybiBvdXRwdXQ7CiB9
CiAKLUV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6
cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYgcGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
cGxhaW5UZXh0KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFy
YW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiBwbGFpblRleHQsIFBhZGRpbmcpCiB7CiAgICAgYXV0byBvdXRwdXQgPSBnY3J5cHRF
bmNyeXB0KGtleS5rZXkoKSwgcGFyYW1ldGVycy5pdlZlY3RvcigpLCBWZWN0b3I8dWludDhfdD4o
cGxhaW5UZXh0KSk7CiAgICAgaWYgKCFvdXRwdXQpCkBAIC0xNzQsNyArMTc0LDcgQEAgRXhjZXB0
aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybUVu
Y3J5cHQoY29uc3QgQ3J5cHQKICAgICByZXR1cm4gV1RGTW92ZSgqb3V0cHV0KTsKIH0KIAotRXhj
ZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9y
bURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFyYW1zJiBwYXJhbWV0ZXJz
LCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjaXBoZXJU
ZXh0KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JD
OjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFyYW1zJiBw
YXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBjaXBoZXJUZXh0LCBQYWRkaW5nKQogewogICAgIGF1dG8gb3V0cHV0ID0gZ2NyeXB0RGVjcnlw
dChrZXkua2V5KCksIHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwgY2lwaGVyVGV4dCk7CiAgICAgaWYg
KCFvdXRwdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0Fs
Z29yaXRobUFFU19DQkNNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9B
bGdvcml0aG1BRVNfQ0JDTWFjLmNwcAppbmRleCA1MTdjZmM4OWI5NzM3MTQ5YzQ4MDdiODVhZDFm
MjBkZmEwYWFjMWRiLi5jNTdmMTA3OTlkMTEwYWIwYjRmYzFlOTJiMTcxNDQ2M2NmYjlkMzQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19D
QkNNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQ01hYy5jcHAKQEAgLTM0LDEwICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IHRyYW5zZm9ybUFFU19DQkMo
Q0NPcGVyYXRpb24gb3BlcmF0aW9uLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKQorc3RhdGlj
IEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gdHJhbnNmb3JtQUVTX0NCQyhDQ09wZXJhdGlv
biBvcGVyYXRpb24sIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaXYsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEsIENyeXB0b0FsZ29yaXRobUFF
U19DQkM6OlBhZGRpbmcgcGFkZGluZykKIHsKKyAgICBDQ09wdGlvbnMgb3B0aW9ucyA9IHBhZGRp
bmcgPT0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6UGFkZGluZzo6WWVzID8ga0NDT3B0aW9uUEtD
UzdQYWRkaW5nIDogMDsKICAgICBDQ0NyeXB0b3JSZWYgY3J5cHRvcjsKLSAgICBDQ0NyeXB0b3JT
dGF0dXMgc3RhdHVzID0gQ0NDcnlwdG9yQ3JlYXRlKG9wZXJhdGlvbiwga0NDQWxnb3JpdGhtQUVT
LCBrQ0NPcHRpb25QS0NTN1BhZGRpbmcsIGtleS5kYXRhKCksIGtleS5zaXplKCksIGl2LmRhdGEo
KSwgJmNyeXB0b3IpOworICAgIENDQ3J5cHRvclN0YXR1cyBzdGF0dXMgPSBDQ0NyeXB0b3JDcmVh
dGUob3BlcmF0aW9uLCBrQ0NBbGdvcml0aG1BRVMsIG9wdGlvbnMsIGtleS5kYXRhKCksIGtleS5z
aXplKCksIGl2LmRhdGEoKSwgJmNyeXB0b3IpOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCkBAIC00OSwxMCArNTAsMTIgQEAg
c3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gdHJhbnNmb3JtQUVTX0NCQyhDQ09w
ZXJhdGlvbiBvcGVyYXRpb24sIGNvbnMKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJh
dGlvbkVycm9yIH07CiAKICAgICB1aW50OF90KiBwID0gcmVzdWx0LmRhdGEoKSArIGJ5dGVzV3Jp
dHRlbjsKLSAgICBzdGF0dXMgPSBDQ0NyeXB0b3JGaW5hbChjcnlwdG9yLCBwLCByZXN1bHQuZW5k
KCkgLSBwLCAmYnl0ZXNXcml0dGVuKTsKLSAgICBwICs9IGJ5dGVzV3JpdHRlbjsKLSAgICBpZiAo
c3RhdHVzKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKKyAg
ICBpZiAocGFkZGluZyA9PSBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpQYWRkaW5nOjpZZXMpIHsK
KyAgICAgICAgc3RhdHVzID0gQ0NDcnlwdG9yRmluYWwoY3J5cHRvciwgcCwgcmVzdWx0LmVuZCgp
IC0gcCwgJmJ5dGVzV3JpdHRlbik7CisgICAgICAgIHAgKz0gYnl0ZXNXcml0dGVuOworICAgICAg
ICBpZiAoc3RhdHVzKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVy
cm9yIH07CisgICAgfQogCiAgICAgQVNTRVJUKHAgPD0gcmVzdWx0LmVuZCgpKTsKICAgICByZXN1
bHQuc2hyaW5rKHAgLSByZXN1bHQuYmVnaW4oKSk7CkBAIC02MiwxNiArNjUsMTggQEAgc3RhdGlj
IEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gdHJhbnNmb3JtQUVTX0NCQyhDQ09wZXJhdGlv
biBvcGVyYXRpb24sIGNvbnMKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCi1FeGNl
cHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3Jt
RW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJhbXMmIHBhcmFtZXRlcnMs
IGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHBsYWluVGV4
dCkKK0V4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6
cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYgcGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
cGxhaW5UZXh0LCBQYWRkaW5nIHBhZGRpbmcpCiB7CiAgICAgQVNTRVJUKHBhcmFtZXRlcnMuaXZW
ZWN0b3IoKS5zaXplKCkgPT0ga0NDQmxvY2tTaXplQUVTMTI4IHx8IHBhcmFtZXRlcnMuaXZWZWN0
b3IoKS5pc0VtcHR5KCkpOwotICAgIHJldHVybiB0cmFuc2Zvcm1BRVNfQ0JDKGtDQ0VuY3J5cHQs
IHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwga2V5LmtleSgpLCBwbGFpblRleHQpOworICAgIEFTU0VS
VChwYWRkaW5nID09IFBhZGRpbmc6OlllcyB8fCAhKHBsYWluVGV4dC5zaXplKCkgJSBrQ0NCbG9j
a1NpemVBRVMxMjgpKTsKKyAgICByZXR1cm4gdHJhbnNmb3JtQUVTX0NCQyhrQ0NFbmNyeXB0LCBw
YXJhbWV0ZXJzLml2VmVjdG9yKCksIGtleS5rZXkoKSwgcGxhaW5UZXh0LCBwYWRkaW5nKTsKIH0K
IAotRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpw
bGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFyYW1zJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBj
aXBoZXJUZXh0KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFy
YW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiBjaXBoZXJUZXh0LCBQYWRkaW5nIHBhZGRpbmcpCiB7CiAgICAgQVNTRVJUKHBhcmFt
ZXRlcnMuaXZWZWN0b3IoKS5zaXplKCkgPT0ga0NDQmxvY2tTaXplQUVTMTI4IHx8IHBhcmFtZXRl
cnMuaXZWZWN0b3IoKS5pc0VtcHR5KCkpOwotICAgIHJldHVybiB0cmFuc2Zvcm1BRVNfQ0JDKGtD
Q0RlY3J5cHQsIHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwga2V5LmtleSgpLCBjaXBoZXJUZXh0KTsK
KyAgICBBU1NFUlQocGFkZGluZyA9PSBQYWRkaW5nOjpZZXMgfHwgIShjaXBoZXJUZXh0LnNpemUo
KSAlIGtDQ0Jsb2NrU2l6ZUFFUzEyOCkpOworICAgIHJldHVybiB0cmFuc2Zvcm1BRVNfQ0JDKGtD
Q0RlY3J5cHQsIHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwga2V5LmtleSgpLCBjaXBoZXJUZXh0LCBw
YWRkaW5nKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24u
aAppbmRleCAzMjhiYjlkNGVhYWZjNzVkODNjNzFhN2M3Mjc0ZDE2NTAzNjdkMjBiLi42Mjk1NThm
N2ZiZGYwMTJmMWU2NDEzZjc5ZTU0Nzc1YTNjZWQyNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24u
aApAQCAtODQsNiArODQsNyBAQCBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbiB7CiAgICAgICAgIGJvb2wgY29udGludWVBZnRlckVycm9yRGF0YSB7IGZhbHNlIH07CiAg
ICAgICAgIGJvb2wgY2FuRG93bmdyYWRlIHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCBleHBlY3RD
YW5jZWwgeyBmYWxzZSB9OworICAgICAgICBib29sIHN1cHBvcnRDbGllbnRQaW4geyBmYWxzZSB9
OwogCiAgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFs
PEhpZENvbmZpZ3VyYXRpb24+IGRlY29kZShEZWNvZGVyJik7CkBAIC0xNjEsNyArMTYyLDcgQEAg
T3B0aW9uYWw8TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6TG9jYWxDb25maWd1
cmF0aW9uPiBNb2NrV2ViQXV0aGVudGkKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIE1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246OkhpZENvbmZpZ3VyYXRpb246OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgcGF5bG9hZEJhc2U2
NCA8PCBzdGFnZSA8PCBzdWJTdGFnZSA8PCBlcnJvciA8PCBpc1UyZiA8PCBrZWVwQWxpdmUgPDwg
ZmFzdERhdGFBcnJpdmFsIDw8IGNvbnRpbnVlQWZ0ZXJFcnJvckRhdGEgPDwgY2FuRG93bmdyYWRl
IDw8IGV4cGVjdENhbmNlbDsKKyAgICBlbmNvZGVyIDw8IHBheWxvYWRCYXNlNjQgPDwgc3RhZ2Ug
PDwgc3ViU3RhZ2UgPDwgZXJyb3IgPDwgaXNVMmYgPDwga2VlcEFsaXZlIDw8IGZhc3REYXRhQXJy
aXZhbCA8PCBjb250aW51ZUFmdGVyRXJyb3JEYXRhIDw8IGNhbkRvd25ncmFkZSA8PCBleHBlY3RD
YW5jZWwgPDwgc3VwcG9ydENsaWVudFBpbjsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
QEAgLTE4OCw2ICsxODksOCBAQCBPcHRpb25hbDxNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1
cmF0aW9uOjpIaWRDb25maWd1cmF0aW9uPiBNb2NrV2ViQXV0aGVudGljYQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmV4cGVjdENh
bmNlbCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQuc3VwcG9ydENsaWVudFBpbikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5pZGwKaW5k
ZXggNzg1Mzg1MTQ3NmZjY2Q2MjI4NGMzNmJmMjc5NDJhOGIxN2M1ZGUxMC4uYWQxMzkzNDlhZDJm
YzE1Y2FkODNmNmIyZDE2YjA4Mzg2MDNkZWUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRs
CkBAIC05Miw2ICs5Miw3IEBACiAgICAgYm9vbGVhbiBjb250aW51ZUFmdGVyRXJyb3JEYXRhID0g
ZmFsc2U7CiAgICAgYm9vbGVhbiBjYW5Eb3duZ3JhZGUgPSBmYWxzZTsKICAgICBib29sZWFuIGV4
cGVjdENhbmNlbCA9IGZhbHNlOworICAgIGJvb2xlYW4gc3VwcG9ydENsaWVudFBpbiA9IGZhbHNl
OwogfTsKIAogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKaW5kZXggNTU1YjU2MTlmZDgyNWNk
YzViYmMwNDUwYjc4OTgzNzY2MmVkMjk0NC4uN2VjNjI0MzU5NWU4NGNlMzQxNTQ0Nzc0ZWU1N2Nm
ZDBmNjQ5MWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCkBAIC0yNyw2ICsyNyw5IEBA
CiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblN0YXR1cyA6IGJvb2w7CiBlbnVtIGNs
YXNzIFdlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IDogYm9vbDsKQEAgLTQxLDYgKzQ0LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBhbmVsKFdlYktpdDo6V2ViQXV0aGVudGlj
YXRpb25TdGF0dXMpIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzUGFuZWwoV2Vi
S2l0OjpXZWJBdXRoZW50aWNhdGlvblJlc3VsdCkgY29uc3QgeyB9CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RQaW4odWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV1RGOjpT
dHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QgeyBjb21wbGV0aW9uSGFuZGxlcihl
bXB0eVN0cmluZygpKTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
LmgKaW5kZXggMGQyNDcxM2JmNzNiYzA5ZTE3MzBhMjkyMTY0OWNjYzg4ZWIxNzliMy4uMDQ2NjZj
MzcwNWI1OTAzZDA5MWM0MjY1NDFmNjJlYzk5OWYzNjNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaApA
QCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXNwb25kUmVj
ZWl2ZWQoUmVzcG9uZCYmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkb3duZ3JhZGUoQXV0
aGVudGljYXRvciogaWQsIFJlZjxBdXRoZW50aWNhdG9yPiYmIGRvd25ncmFkZWRBdXRoZW50aWNh
dG9yKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdG9yU3RhdHVzVXBkYXRl
ZChXZWJBdXRoZW50aWNhdGlvblN0YXR1cykgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFBpbih1aW50NjRfdCByZXRyaWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdU
Rjo6U3RyaW5nJik+JiYpID0gMDsKICAgICB9OwogCiAgICAgdmlydHVhbCB+QXV0aGVudGljYXRv
cigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAppbmRleCA2
ZmFlZGU1NDc2NDRhYjdkOGY5NmU4OTBkODM4YTFiYjEzYmMwODljLi43NDZjYTA2MTVmNTQxMDE0
N2JkYmE1YTRlYzUwMmQxODhlNjI5YjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFn
ZXIuY3BwCkBAIC0yNzMsNiArMjczLDEyIEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmF1
dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzIHN0CiAgICAg
ICAgIHBhbmVsLT5jbGllbnQoKS51cGRhdGVQYW5lbChzdGF0dXMpOwogfQogCit2b2lkIEF1dGhl
bnRpY2F0b3JNYW5hZ2VyOjpyZXF1ZXN0UGluKHVpbnQ2NF90IHJldHJpZXMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV1RGOjpTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBpZiAoYXV0byogcGFuZWwgPSBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYW5lbC5nZXQoKSkK
KyAgICAgICAgcGFuZWwtPmNsaWVudCgpLnJlcXVlc3RQaW4ocmV0cmllcywgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworfQorCiBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNl
cnZpY2U+IEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpjcmVhdGVTZXJ2aWNlKEF1dGhlbnRpY2F0b3JU
cmFuc3BvcnQgdHJhbnNwb3J0LCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2
ZXImIG9ic2VydmVyKSBjb25zdAogewogICAgIHJldHVybiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0
U2VydmljZTo6Y3JlYXRlKHRyYW5zcG9ydCwgb2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmgKaW5kZXggZGM2YzQ0NDM5MTAwMTAwMjNiYjE1NTI5ODA5ZTllZWE2NzBlZmIw
ZS4uMmE1MDgzM2ZkYjlkYjYzZGM5OGMzOTNkMDlkMWM5MzAyMGRmMmZhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdG9yTWFuYWdlci5oCkBAIC04MSw2ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZXNwb25kUmVjZWl2ZWQoUmVzcG9uZCYmKSBmaW5hbDsKICAgICB2b2lkIGRvd25ncmFkZShB
dXRoZW50aWNhdG9yKiBpZCwgUmVmPEF1dGhlbnRpY2F0b3I+JiYgZG93bmdyYWRlZEF1dGhlbnRp
Y2F0b3IpIGZpbmFsOwogICAgIHZvaWQgYXV0aGVudGljYXRvclN0YXR1c1VwZGF0ZWQoV2ViQXV0
aGVudGljYXRpb25TdGF0dXMpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFBpbih1aW50NjRfdCBy
ZXRyaWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdURjo6U3RyaW5nJik+JiYpIGZp
bmFsOwogCiAgICAgLy8gT3ZlcnJpZGVuIGJ5IE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci4KICAg
ICB2aXJ0dWFsIFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZT4gY3JlYXRl
U2VydmljZShXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0LCBBdXRoZW50aWNhdG9yVHJh
bnNwb3J0U2VydmljZTo6T2JzZXJ2ZXImKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAppbmRleCAzYjBjODkxNmRjMDkyMTA3
NTg0ZGQ3MGJhMDEwMjQ5MDU3NDc0Y2M2Li4xNDk5NDY2YTFjZWNhOGU5ZmQ5MGY5Y2Y2MTQyNTY1
OTAyYTg4ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRp
b25QYW5lbENsaWVudC5oCkBAIC00OSw2ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgLy8gQVBJOjpX
ZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50CiAgICAgdm9pZCB1cGRhdGVQYW5lbChXZWJBdXRo
ZW50aWNhdGlvblN0YXR1cykgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkaXNtaXNzUGFuZWwoV2Vi
QXV0aGVudGljYXRpb25SZXN1bHQpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFBpbih1
aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXVEY6OlN0cmluZyYpPiYmKSBj
b25zdCBmaW5hbDsKIAogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKm1fcGFuZWw7CiAg
ICAgV2Vha09iakNQdHI8aWQgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4gPiBt
X2RlbGVnYXRlOwpAQCAtNTYsNiArNTcsNyBAQCBwcml2YXRlOgogICAgIHN0cnVjdCB7CiAgICAg
ICAgIGJvb2wgcGFuZWxVcGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsIDogMTsKICAgICAgICAg
Ym9vbCBwYW5lbERpc21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0aFJlc3VsdCA6IDE7Cisg
ICAgICAgIGJvb2wgcGFuZWxSZXF1ZXN0UGluV2l0aFJlbWFpbmluZ1JldHJpZXNDb21wbGV0aW9u
SGFuZGxlciA6IDE7CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWxDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lm1tCmluZGV4IDM1
ZWY2NWJlZWY2MWJiZTVlYTUxMzllODMzMGNhNzM5ODVmZTQxMmMuLjdmMTU3YmQ5ODQ2OWNkNjY5
MWZlMTAwZjNlMzVhNDE5NzM4ZjVlOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2Ev
V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5tbQpAQCAtMjgsOCArMjgsMTAgQEAKIAogI2lm
IEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNr
ZXIuaCIKICNpbXBvcnQgIldlYkF1dGhlbnRpY2F0aW9uRmxhZ3MuaCIKICNpbXBvcnQgIl9XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwuaCIKKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9y
dCA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00MCw2ICs0Miw3IEBA
IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGll
bnQoX1dLV2ViQXV0aGVudGljYXRpb25QCiB7CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMucGFuZWxV
cGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IocGFuZWw6dXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5lbDopXTsKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy5wYW5lbERpc21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0aFJl
c3VsdCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHBhbmVsOmRpc21p
c3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0aFJlc3VsdDopXTsKKyAgICBtX2RlbGVnYXRlTWV0
aG9kcy5wYW5lbFJlcXVlc3RQaW5XaXRoUmVtYWluaW5nUmV0cmllc0NvbXBsZXRpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocGFuZWw6cmVxdWVzdFBJ
TldpdGhSZW1haW5pbmdSZXRyaWVzOmNvbXBsZXRpb25IYW5kbGVyOildOwogfQogCiBSZXRhaW5Q
dHI8aWQgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4gPiBXZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50OjpkZWxlZ2F0ZSgpCkBAIC0xMDcsNiArMTEwLDM3IEBAIHZvaWQgV2Vi
QXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6ZGlzbWlzc1BhbmVsKFdlYkF1dGhlbnRpY2F0aW9u
UmVzdWx0IHJlc3VsdCkKICAgICB9KTsKIH0KIAordm9pZCBXZWJBdXRoZW50aWNhdGlvblBhbmVs
Q2xpZW50OjpyZXF1ZXN0UGluKHVpbnQ2NF90IHJldHJpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgV1RGOjpTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKK3sKKyAg
ICAvLyBDYWxsIGRlbGVnYXRlcyBpbiB0aGUgbmV4dCBydW4gbG9vcCB0byBwcmV2ZW50IGNsaWVu
dHMnIHJlZW50cmFuY2UgdGhhdCB3b3VsZCBwb3RlbnRpYWxseSBtb2RpZnkgdGhlIHN0YXRlCisg
ICAgLy8gb2YgdGhlIGN1cnJlbnQgcnVuIGxvb3AgaW4gdW5leHBlY3RlZCB3YXlzLgorICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRo
aXMsIHJldHJpZXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildICgpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihlbXB0eVN0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmICghbV9kZWxlZ2F0ZU1ldGhvZHMucGFuZWxSZXF1ZXN0UGlu
V2l0aFJlbWFpbmluZ1JldHJpZXNDb21wbGV0aW9uSGFuZGxlcikgeworICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBhdXRvIGRlbGVnYXRlID0gbV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICAg
ICAgaWYgKCFkZWxlZ2F0ZSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZW1wdHlT
dHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhdXRv
IGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUu
Z2V0KCksIEBzZWxlY3RvcihwYW5lbDpyZXF1ZXN0UElOV2l0aFJlbWFpbmluZ1JldHJpZXM6Y29t
cGxldGlvbkhhbmRsZXI6KSk7CisgICAgICAgIFtkZWxlZ2F0ZSBwYW5lbDptX3BhbmVsIHJlcXVl
c3RQSU5XaXRoUmVtYWluaW5nUmV0cmllczpyZXRyaWVzIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VC
bG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
Y2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildKE5TU3RyaW5nICpwaW4pIG11dGFibGUgeworICAg
ICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21w
bGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocGluKTsKKyAg
ICAgICAgfSkuZ2V0KCldOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tIaWRDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5l
Y3Rpb24uY3BwCmluZGV4IDllNWQ4ZmE3MDY2ODBkZjZlMTRmOTYzZjIzYmU5ZTg4NWU3NDRmNTUu
LmY5OWM3MDRiZDk3MGI0YjM3MDdmNzk5Zjg5NGMxNTc1N2NkYzcwMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9DQk9SUmVhZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWRvQ29uc3RhbnRzLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9QaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1dGhlbnRpY2F0aW9u
Q29uc3RhbnRzLmg+CiAjaW5jbHVkZSA8d3RmL0Jsb2NrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL0Ny
eXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmg+CkBAIC0yMjMsMTAgKzIyNCwxOCBAQCB2b2lk
IE1vY2tIaWRDb25uZWN0aW9uOjpmZWVkUmVwb3J0cygpCiAKICAgICBPcHRpb25hbDxGaWRvSGlk
TWVzc2FnZT4gbWVzc2FnZTsKICAgICBpZiAobV9zdGFnZSA9PSBNb2NrOjpIaWRTdGFnZTo6SW5m
byAmJiBtX3N1YlN0YWdlID09IE1vY2s6OkhpZFN1YlN0YWdlOjpNc2cpIHsKKyAgICAgICAgLy8g
RklYTUUoMjA1ODM5KToKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGluZm9EYXRhOwogICAgICAg
ICBpZiAobV9jb25maWd1cmF0aW9uLmhpZC0+Y2FuRG93bmdyYWRlKQogICAgICAgICAgICAgaW5m
b0RhdGEgPSBlbmNvZGVBc0NCT1IoQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSh7IFByb3Rv
Y29sVmVyc2lvbjo6a0N0YXAsIFByb3RvY29sVmVyc2lvbjo6a1UyZiB9LCBWZWN0b3I8dWludDhf
dD4oYWFndWlkTGVuZ3RoLCAwdSkpKTsKLSAgICAgICAgZWxzZQorICAgICAgICBlbHNlIGlmICht
X2NvbmZpZ3VyYXRpb24uaGlkLT5zdXBwb3J0Q2xpZW50UGluKSB7CisgICAgICAgICAgICBBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIGluZm9SZXNwb25zZSh7IFByb3RvY29sVmVyc2lvbjo6
a0N0YXAgfSwgVmVjdG9yPHVpbnQ4X3Q+KGFhZ3VpZExlbmd0aCwgMHUpKTsKKyAgICAgICAgICAg
IGluZm9SZXNwb25zZS5zZXRQaW5Qcm90b2NvbHMoeyBwaW46OmtQcm90b2NvbFZlcnNpb24gfSk7
CisgICAgICAgICAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBvcHRpb25zOworICAg
ICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNl
dCk7CisgICAgICAgICAgICBpbmZvUmVzcG9uc2Uuc2V0T3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMp
KTsKKyAgICAgICAgICAgIGluZm9EYXRhID0gZW5jb2RlQXNDQk9SKGluZm9SZXNwb25zZSk7Cisg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgaW5mb0RhdGEgPSBlbmNvZGVBc0NCT1IoQXV0aGVu
dGljYXRvckdldEluZm9SZXNwb25zZSh7IFByb3RvY29sVmVyc2lvbjo6a0N0YXAgfSwgVmVjdG9y
PHVpbnQ4X3Q+KGFhZ3VpZExlbmd0aCwgMHUpKSk7CiAgICAgICAgIGluZm9EYXRhLmluc2VydCgw
LCBzdGF0aWNfY2FzdDx1aW50OF90PihDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprU3VjY2Vzcykp
OyAvLyBQcmVwZW5kIHN0YXR1cyBjb2RlLgogICAgICAgICBpZiAoc3RhZ2VzTWF0Y2goKSAmJiBt
X2NvbmZpZ3VyYXRpb24uaGlkLT5lcnJvciA9PSBNb2NrOjpIaWRFcnJvcjo6V3JvbmdDaGFubmVs
SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCmluZGV4IDllNDFlYjcx
YWRjNTg0NGVmZWRlNDBjNjdkZmUyMzNmZDg2YWM1YTEuLjVlNDA3NjRhY2U0MDQ4NTE2NmVlYjk1
OWE3OGM1Y2I5ZWU5OGY4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3Iu
Y3BwCkBAIC0zMSw5ICszMSwxMyBAQAogI2luY2x1ZGUgIkN0YXBEcml2ZXIuaCIKICNpbmNsdWRl
ICJDdGFwSGlkRHJpdmVyLmgiCiAjaW5jbHVkZSAiVTJmQXV0aGVudGljYXRvci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvQ3J5cHRvS2V5QUVTLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DcnlwdG9LZXlF
Qy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ3J5cHRvS2V5SE1BQy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlUmVz
cG9uc2VDb252ZXJ0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkRhdGEuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Bpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVTJmQ29tbWFuZENvbnN0
cnVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KQEAgLTUzLDcgKzU3LDExIEBAIHZvaWQgQ3RhcEF1
dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKCkKICAgICBBU1NFUlQoIW1faXNEb3duZ3JhZGVk
KTsKICAgICBpZiAocHJvY2Vzc0dvb2dsZUxlZ2FjeUFwcElkU3VwcG9ydEV4dGVuc2lvbigpKQog
ICAgICAgICByZXR1cm47Ci0gICAgYXV0byBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxS
ZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKSwgbV9pbmZvLm9wdGlv
bnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkpOworICAgIFZlY3Rvcjx1aW50OF90
PiBjYm9yQ21kOworICAgIGlmIChtX2luZm8ub3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0
eSgpID09IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQpCisgICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3Jl
ZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBXVEY6OmdldDxQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpLCBtX2lu
Zm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSwgUGluUGFyYW1ldGVy
cyB7IHBpbjo6a1Byb3RvY29sVmVyc2lvbiwgbV9waW5BdXRoIH0pOworICAgIGVsc2UKKyAgICAg
ICAgY2JvckNtZCA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0
YSgpLmhhc2gsIFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KHJl
cXVlc3REYXRhKCkub3B0aW9ucyksIG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eSgpKTsKICAgICBkcml2ZXIoKS50cmFuc2FjdChXVEZNb3ZlKGNib3JDbWQpLCBb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEpIHsK
ICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKQEAgLTYyLDEzICs3MCwxNiBAQCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVu
dGlhbCgpCiAgICAgfSk7CiB9CiAKLXZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFr
ZUNyZWRlbnRpYWxBZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkg
Y29uc3QKK3ZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRl
clJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkKIHsKICAgICBhdXRvIHJl
c3BvbnNlID0gcmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGRhdGEsIFdURjo6Z2V0PFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucyku
YXR0ZXN0YXRpb24pOwogICAgIGlmICghcmVzcG9uc2UpIHsKICAgICAgICAgYXV0byBlcnJvciA9
IGdldFJlc3BvbnNlQ29kZShkYXRhKTsKICAgICAgICAgaWYgKGVycm9yID09IEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyckNyZWRlbnRpYWxFeGNsdWRlZCkKICAgICAgICAgICAgIHJl
Y2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkF0IGxlYXN0
IG9uZSBjcmVkZW50aWFsIG1hdGNoZXMgYW4gZW50cnkgb2YgdGhlIGV4Y2x1ZGVDcmVkZW50aWFs
cyBsaXN0IGluIHRoZSBhdXRoZW50aWNhdG9yLiJfcyB9KTsKKyAgICAgICAgLy8gRklYTUUoMjA1
ODM3KQorICAgICAgICBlbHNlIGlmIChlcnJvciA9PSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDJFcnJQaW5JbnZhbGlkIHx8IGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMkVyclBpbkF1dGhJbnZhbGlkKQorICAgICAgICAgICAgZ2V0UmV0cmllcygpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93
bkVycm9yLCBtYWtlU3RyaW5nKCJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiAi
LCBzdGF0aWNfY2FzdDx1aW50OF90PihlcnJvcikpIH0pOwogICAgICAgICByZXR1cm47CkBAIC03
OSw3ICs5MCwxMSBAQCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50
aWFsQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW50OAogdm9pZCBDdGFwQXV0aGVudGlj
YXRvcjo6Z2V0QXNzZXJ0aW9uKCkKIHsKICAgICBBU1NFUlQoIW1faXNEb3duZ3JhZGVkKTsKLSAg
ICBhdXRvIGNib3JDbWQgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKHJlcXVlc3RE
YXRhKCkuaGFzaCwgV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPihy
ZXF1ZXN0RGF0YSgpLm9wdGlvbnMpLCBtX2luZm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25B
dmFpbGFiaWxpdHkoKSk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNib3JDbWQ7CisgICAgaWYgKG1f
aW5mby5vcHRpb25zKCkuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkgPT0gQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNl
dCkKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IocmVx
dWVzdERhdGEoKS5oYXNoLCBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucyksIG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNh
dGlvbkF2YWlsYWJpbGl0eSgpLCBQaW5QYXJhbWV0ZXJzIHsgcGluOjprUHJvdG9jb2xWZXJzaW9u
LCBtX3BpbkF1dGggfSk7CisgICAgZWxzZQorICAgICAgICBjYm9yQ21kID0gZW5jb2RlR2V0QXNz
ZXJ0aW9uUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIFdURjo6Z2V0PFB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKSwgbV9pbmZv
Lm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkpOwogICAgIGRyaXZlcigp
LnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQpAQCAtOTMsNiArMTA4LDExIEBAIHZvaWQg
Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2Vp
dmVkKFZlY3Rvcjx1aW50OF90CiAgICAgYXV0byByZXNwb25zZSA9IHJlYWRDVEFQR2V0QXNzZXJ0
aW9uUmVzcG9uc2UoZGF0YSk7CiAgICAgaWYgKCFyZXNwb25zZSkgewogICAgICAgICBhdXRvIGVy
cm9yID0gZ2V0UmVzcG9uc2VDb2RlKGRhdGEpOworICAgICAgICAvLyBGSVhNRSgyMDU4MzcpCisg
ICAgICAgIGlmIChlcnJvciA9PSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5J
bnZhbGlkIHx8IGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkF1
dGhJbnZhbGlkKSB7CisgICAgICAgICAgICBnZXRSZXRyaWVzKCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KICAgICAgICAgaWYgKGVycm9yICE9IEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyckludmFsaWRDQk9SICYmIHRyeURvd25ncmFkZSgpKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICBpZiAoZXJyb3IgPT0gQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyTm9DcmVkZW50aWFscyAmJiBvYnNlcnZlcigpKQpAQCAtMTAzLDYgKzEyMyw5MyBAQCB2
b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9uc2VS
ZWNlaXZlZChWZWN0b3I8dWludDhfdAogICAgIHJlY2VpdmVSZXNwb25kKHJlc3BvbnNlLnJlbGVh
c2VOb25OdWxsKCkpOwogfQogCit2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpnZXRSZXRyaWVzKCkK
K3sKKyAgICBhdXRvIGNib3JDbWQgPSBlbmNvZGVBc0NCT1IocGluOjpSZXRyaWVzUmVxdWVzdCB7
IH0pOworICAgIGRyaXZlcigpLnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgeworICAgICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB3ZWFrVGhpcy0+Y29udGludWVHZXRLZXlBZ3JlZW1lbnRB
ZnRlckdldFJldHJpZXMoV1RGTW92ZShkYXRhKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgQ3RhcEF1
dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0S2V5QWdyZWVtZW50QWZ0ZXJHZXRSZXRyaWVzKFZlY3Rv
cjx1aW50OF90PiYmIGRhdGEpCit7CisgICAgYXV0byByZXRyaWVzID0gcGluOjpSZXRyaWVzUmVz
cG9uc2U6OnBhcnNlKGRhdGEpOworICAgIGlmICghcmV0cmllcykgeworICAgICAgICBhdXRvIGVy
cm9yID0gZ2V0UmVzcG9uc2VDb2RlKGRhdGEpOworICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNl
cHRpb25EYXRhIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJVbmtub3duIGludGVybmFsIGVy
cm9yLiBFcnJvciBjb2RlOiAiLCBzdGF0aWNfY2FzdDx1aW50OF90PihlcnJvcikpIH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjYm9yQ21kID0gZW5jb2RlQXNDQk9SKHBp
bjo6S2V5QWdyZWVtZW50UmVxdWVzdCB7IH0pOworICAgIGRyaXZlcigpLnRyYW5zYWN0KFdURk1v
dmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmV0cmllcyA9IHJl
dHJpZXMtPnJldHJpZXNdIChWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CisgICAgICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5jb250aW51ZVJlcXVlc3RQaW5BZnRlckdldEtl
eUFncmVlbWVudChXVEZNb3ZlKGRhdGEpLCByZXRyaWVzKTsKKyAgICB9KTsKK30KKwordm9pZCBD
dGFwQXV0aGVudGljYXRvcjo6Y29udGludWVSZXF1ZXN0UGluQWZ0ZXJHZXRLZXlBZ3JlZW1lbnQo
VmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgdWludDY0X3QgcmV0cmllcykKK3sKKyAgICBhdXRvIGtl
eUFncmVlbWVudCA9IHBpbjo6S2V5QWdyZWVtZW50UmVzcG9uc2U6OnBhcnNlKGRhdGEpOworICAg
IGlmICgha2V5QWdyZWVtZW50KSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBnZXRSZXNwb25zZUNv
ZGUoZGF0YSk7CisgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBVbmtub3du
RXJyb3IsIG1ha2VTdHJpbmcoIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVycm9yIGNvZGU6ICIs
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGVycm9yKSkgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0aGlzLT5vYnNlcnZlcigpKSB7CisgICAgICAg
IG9ic2VydmVyLT5yZXF1ZXN0UGluKHJldHJpZXMsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwga2V5QWdyZWVtZW50ID0gV1RGTW92ZSgqa2V5QWdyZWVtZW50KV0gKGNvbnN0IFN0cmlu
ZyYgcGluKSB7CisgICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB3ZWFrVGhpcy0+Y29udGludWVHZXRQaW5Ub2tlbkFmdGVyUmVxdWVzdFBpbihwaW4sIGtleUFn
cmVlbWVudC5wZWVyS2V5KTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCit2b2lkIEN0YXBBdXRo
ZW50aWNhdG9yOjpjb250aW51ZUdldFBpblRva2VuQWZ0ZXJSZXF1ZXN0UGluKGNvbnN0IFN0cmlu
ZyYgcGluLCBjb25zdCBDcnlwdG9LZXlFQyYgcGVlcktleSkKK3sKKyAgICBhdXRvIHBpblV0Zjgg
PSBwaW46OnZhbGlkYXRlQW5kQ29udmVydFRvVVRGOChwaW4pOworICAgIGlmICghcGluVXRmOCkg
eworICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93bkVycm9yLCBt
YWtlU3RyaW5nKCJQaW4gaXMgbm90IHZhbGlkOiAiLCBwaW4pIH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGF1dG8gdG9rZW5SZXF1ZXN0ID0gcGluOjpUb2tlblJlcXVlc3Q6OnRyeUNy
ZWF0ZSgqcGluVXRmOCwgcGVlcktleSk7CisgICAgaWYgKCF0b2tlblJlcXVlc3QpIHsKKyAgICAg
ICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IFVua25vd25FcnJvciwgIkNhbm5vdCBj
cmVhdGUgYSBUb2tlblJlcXVlc3QuIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgYXV0byBjYm9yQ21kID0gZW5jb2RlQXNDQk9SKCp0b2tlblJlcXVlc3QpOworICAgIGRyaXZl
cigpLnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgdG9rZW5SZXF1ZXN0ID0gV1RGTW92ZSgqdG9rZW5SZXF1ZXN0KV0gKFZlY3Rvcjx1aW50
OF90PiYmIGRhdGEpIHsKKyAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgd2Vha1RoaXMt
PmNvbnRpbnVlUmVxdWVzdEFmdGVyR2V0UGluVG9rZW4oV1RGTW92ZShkYXRhKSwgdG9rZW5SZXF1
ZXN0KTsKKyAgICB9KTsKK30KKwordm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVSZXF1
ZXN0QWZ0ZXJHZXRQaW5Ub2tlbihWZWN0b3I8dWludDhfdD4mJiBkYXRhLCBjb25zdCBmaWRvOjpw
aW46OlRva2VuUmVxdWVzdCYgdG9rZW5SZXF1ZXN0KQoreworICAgIGF1dG8gdG9rZW4gPSBwaW46
OlRva2VuUmVzcG9uc2U6OnBhcnNlKHRva2VuUmVxdWVzdC5zaGFyZWRLZXkoKSwgZGF0YSk7Cisg
ICAgaWYgKCF0b2tlbikgeworICAgICAgICBhdXRvIGVycm9yID0gZ2V0UmVzcG9uc2VDb2RlKGRh
dGEpOworICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93bkVycm9y
LCBtYWtlU3RyaW5nKCJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiAiLCBzdGF0
aWNfY2FzdDx1aW50OF90PihlcnJvcikpIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9waW5BdXRoID0gdG9rZW4tPnBpbkF1dGgocmVxdWVzdERhdGEoKS5oYXNoKTsKKyAgICBX
VEY6OnN3aXRjaE9uKHJlcXVlc3REYXRhKCkub3B0aW9ucywgWyZdKGNvbnN0IFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMpIHsKKyAgICAgICAgbWFrZUNyZWRlbnRp
YWwoKTsKKyAgICB9LCBbJl0oY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
JiBvcHRpb25zKSB7CisgICAgICAgIGdldEFzc2VydGlvbigpOworICAgIH0pOworfQorCiBib29s
IEN0YXBBdXRoZW50aWNhdG9yOjp0cnlEb3duZ3JhZGUoKQogewogICAgIGlmIChtX2luZm8udmVy
c2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a1UyZikgPT0gbV9pbmZvLnZlcnNpb25zKCku
ZW5kKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmgKaW5kZXggZWU1NDNkODVm
OTRkMDhmYTBjNmI3YTA0OWNkZmVkZjhlZjQyZmM1Yy4uNTgyNDhjYTEyNDQ4NWIwYWRjNjY3ODNj
YTBjNmNhN2E2OWVhM2ZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuaApA
QCAtMzAsNiArMzAsMTYgQEAKICNpbmNsdWRlICJGaWRvQXV0aGVudGljYXRvci5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oPgogCituYW1lc3BhY2Ug
ZmlkbyB7CituYW1lc3BhY2UgcGluIHsKK2NsYXNzIFRva2VuUmVxdWVzdDsKK30KK30KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ3J5cHRvS2V5RUM7Cit9CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBDdGFwRHJpdmVyOwpAQCAtNDUsMTUgKzU1LDIyIEBAIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgQ3RhcEF1dGhlbnRpY2F0b3Ioc3RkOjp1bmlxdWVfcHRyPEN0YXBEcml2ZXI+
JiYsIGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmJik7CiAKICAgICB2b2lkIG1h
a2VDcmVkZW50aWFsKCkgZmluYWw7Ci0gICAgdm9pZCBjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0
ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW50OF90PiYmKSBjb25zdDsKKyAgICB2b2lkIGNv
bnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+
JiYpOwogICAgIHZvaWQgZ2V0QXNzZXJ0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBjb250aW51ZUdl
dEFzc2VydGlvbkFmdGVyUmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWludDhfdD4mJik7CiAKKyAg
ICB2b2lkIGdldFJldHJpZXMoKTsKKyAgICB2b2lkIGNvbnRpbnVlR2V0S2V5QWdyZWVtZW50QWZ0
ZXJHZXRSZXRyaWVzKFZlY3Rvcjx1aW50OF90PiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlUmVxdWVz
dFBpbkFmdGVyR2V0S2V5QWdyZWVtZW50KFZlY3Rvcjx1aW50OF90PiYmLCB1aW50NjRfdCByZXRy
aWVzKTsKKyAgICB2b2lkIGNvbnRpbnVlR2V0UGluVG9rZW5BZnRlclJlcXVlc3RQaW4oY29uc3Qg
U3RyaW5nJiBwaW4sIGNvbnN0IENyeXB0b0tleUVDJik7CisgICAgdm9pZCBjb250aW51ZVJlcXVl
c3RBZnRlckdldFBpblRva2VuKFZlY3Rvcjx1aW50OF90PiYmLCBjb25zdCBmaWRvOjpwaW46OlRv
a2VuUmVxdWVzdCYpOworCiAgICAgYm9vbCB0cnlEb3duZ3JhZGUoKTsKICAgICBib29sIHByb2Nl
c3NHb29nbGVMZWdhY3lBcHBJZFN1cHBvcnRFeHRlbnNpb24oKTsKIAogICAgIGZpZG86OkF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UgbV9pbmZvOwogICAgIGJvb2wgbV9pc0Rvd25ncmFkZWQg
eyBmYWxzZSB9OworICAgIFZlY3Rvcjx1aW50OF90PiBtX3BpbkF1dGg7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBiZmY5YmRiODZiNzdjNjQ5YzJmZTg2NDJiMzg2YmRhMTNjNjlhNGFlLi5iODU3
NWE5YTNjMjQ0MzgxN2IyZTc3M2E1YzQwMDQ4YjBhM2NmNzM5IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDEt
MDYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0
aG5dIFN1cHBvcnQgQ1RBUCBDbGllbnQgUGluCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1MTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NTU4
NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBQaW5UZXN0LmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICgtW1Rl
c3RXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgcGFuZWw6cmVxdWVzdFBJTldpdGhSZW1h
aW5pbmdSZXRyaWVzOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbDog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRt
bDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4uaHRtbDogQWRkZWQuCisKIDIw
MjAtMDEtMDYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1NdIElzc3VlIG1hY2ggbG9va3VwIGV4dGVuc2lvbiB0byBsYXVuY2ggc2VydmljZXMgZGFl
bW9uIGZvciBNYWlsCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY4ZDAwNjBlNWE4YTBhMTc2
YTIxYzc5ZjNkMTI2ODdkZDFiNWRhNjcuLjE3NmZmYWQyMWVjODI5YzZlN2QzNTIxNmU4OTJlNTI4
M2JjNDcyMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjcsNiArMzI3LDEwIEBACiAJ
CTU1QTgxN0ZGMjE4MTAyMUEwMDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50Z2EgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBODE3RkUyMTgxMDFE
RjAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSAqLzsgfTsKIAkJNTVBODE4MDAyMTgxMDIyMTAw
MDRBMzlBIC8qIDQwMHg0MDAtZ3JlZW4ucG5nIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTgxN0ZEMjE4MTAxREYwMDA0QTM5QSAvKiA0MDB4
NDAwLWdyZWVuLnBuZyAqLzsgfTsKIAkJNTVGOUQyRTUyMjA1MDMxODAwQTlBQjM4IC8qIEFkZGl0
aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTVGOUQyRTQyMjA1MDMxODAwQTlBQjM4IC8qIEFkZGl0aW9uYWxT
dXBwb3J0ZWRJbWFnZVR5cGVzLm1tICovOyB9OworCQk1NzBEMjZGNDIzQzNDQTZBMDBENUNGNjcg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdy
ZWVtZW50LWVycm9yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTcwRDI2RjMyM0MzQ0E1NTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVudC1lcnJvci5odG1s
ICovOyB9OworCQk1NzBEMjZGNjIzQzNEMzMwMDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwRDI2RjUyM0MzRDMyNzAwRDVDRjY3IC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sICovOyB9OworCQk1
NzBEMjZGQTIzQzNGMjUxMDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEMjZGOTIzQzNGMjQ1MDBENUNG
NjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4t
dG9rZW4tZXJyb3IuaHRtbCAqLzsgfTsKKwkJNTcwRDI2RkMyM0MzRjg3MDAwRDVDRjY3IC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4uaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEMjZGQjIzQzNGODY1
MDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi5odG1s
ICovOyB9OwogCQk1NzE0RUNCOTFDQThCNUIwMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3Jp
Z2luYWxVUkwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzE0RUNCODFDQThCNTg4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3Jp
Z2luYWxVUkwuaHRtbCAqLzsgfTsKIAkJNTcxNEVDQkIxQ0E4QkZFNDAwMDUxQUM4IC8qIERvd25s
b2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyog
RG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovOyB9OwogCQk1NzE0RUNCRDFD
QThDMjJBMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQkMx
Q0E4QzIxODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICovOyB9
OwpAQCAtMzQzLDYgKzM0Nyw3IEBACiAJCTU3MzI1NUE3MjIxMzlCQzcwMDM5NkFFOCAvKiBsb2Fk
LXdlYi1hcmNoaXZlLTIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzMyNTVBMzIyMTM5QjkwMDAzOTZBRTggLyogbG9hZC13ZWItYXJj
aGl2ZS0yLmh0bWwgKi87IH07CiAJCTU3NEY1NUQyMjA0RDQ3RjAwMDI5NDhDNiAvKiBTZWN1cml0
eS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzRGNTVEMDIwNEQ0NzFDMDAyOTQ4QzYgLyogU2VjdXJpdHkuZnJhbWV3b3JrICovOyB9
OwogCQk1NzU4NTk3RjIzQTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1ODU5N0UyM0EyNTI3QTAw
Qzc0NTcyIC8qIEN0YXBQaW5UZXN0LmNwcCAqLzsgfTsKKwkJNTc1ODU5ODQyM0MzQzNBNDAwQzc0
NTcyIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0
cmllcy1lcnJvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3NTg1OTgzMjNDM0MzNjIwMEM3NDU3MiAvKiB3ZWItYXV0aGVudGljYXRp
b24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRtbCAqLzsgfTsK
IAkJNTc1OTlFMjExRjA3MTkxOTAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJh
Y2t3YXJkQ29tcGF0aWJpbGl0eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3NTk5RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1
cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gKi87IH07CiAJCTU3NTk5RTI3MUYwNzFB
QTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxp
dHkuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzU5OUUyNDFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENs
b25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgKi87IH07CiAJCTU3NTk5RTI4MUYwNzFB
QTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxp
dHkuc3FsaXRlMy1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTc1OTlFMjYxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVy
ZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSAqLzsgfTsKQEAgLTE0Nzks
MTEgKzE0ODQsMTYgQEAKIAkJCQlDRDU3Nzc5OTIxMUNFMEU0MDAxQjM3MUUgLyogd2ViLWF1ZGlv
LW9ubHkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2M0RGMzIzNTdFNDg5MDBF
ODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NzQ1NEQwMjM1OUIzNzgwMDhFMUVENyAvKiB3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVudGlhbHMuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1NzBEMjZGQzIzQzNGODcwMDBENUNGNjcgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTU3NjYzREVDMjM0RjFGOTMwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1Nzk4
MzM5MjIzNjhGQTM3MDA4RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
bmZjLW11bHRpcGxlLXRhZ3MuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2M0RF
QTIzNEVBNjZEMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZj
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc3NDU0RDIyMzU5QkIwMTAwOEUxRUQ3
IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZFNyAv
KiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAorCQkJCTU3MEQyNkY0MjNDM0NBNkEwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24t
bWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKKwkJCQk1NzBEMjZGQTIzQzNGMjUxMDBENUNGNjcgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3Iu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1NzU4NTk4NDIzQzNDM0E0MDBDNzQ1NzIg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVz
LWVycm9yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTcwRDI2RjYyM0MzRDMzMDAw
RDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3OTgzMzdFMjM2MDE5QTQwMDhFNTU0NyAvKiB3
ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTFDMkI4MTg2MUM4OTI1OUQwMEE1NTI5RiAvKiB3ZWJmb250Lmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTE3MTRFQjQxQ0Y4Qzc4QzAwNDcyM0M0IC8qIFdlYlBy
b2Nlc3NLaWxsSURCQ2xlYW51cC0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xODky
LDYgKzE5MDIsMTAgQEAKIAkJNTVBODE3RkQyMTgxMDFERjAwMDRBMzlBIC8qIDQwMHg0MDAtZ3Jl
ZW4ucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
aW1hZ2UucG5nOyBwYXRoID0gIjQwMHg0MDAtZ3JlZW4ucG5nIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTVBODE3RkUyMTgxMDFERjAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBh
dGggPSAiMTAweDEwMC1yZWQudGdhIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVG
OUQyRTQyMjA1MDMxODAwQTlBQjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcwRDI2RjMyM0MzQ0E1NTAwRDVDRjY3IC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVl
bWVudC1lcnJvci5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVudC1lcnJvci5odG1sIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTcwRDI2RjUyM0MzRDMyNzAwRDVDRjY3IC8qIHdlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRo
ZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTcwRDI2RjkyM0MzRjI0NTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWVycm9yLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1w
aW4tdG9rZW4tZXJyb3IuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MEQy
NkZCMjNDM0Y4NjUwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1o
aWQtcGluLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
aGlkLXBpbi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcxNEVDQjgxQ0E4
QjU4ODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93
bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1
ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9h
ZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5MTAsNiArMTkyNCw3IEBACiAJCTU3NEY1NUQwMjA0RDQ3MUMwMDI5NDhDNiAvKiBTZWN1cml0
eS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IFNlY3VyaXR5LmZyYW1ld29yazsgcGF0aCA9
IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHkuZnJhbWV3b3JrOyBzb3VyY2VUcmVl
ID0gU0RLUk9PVDsgfTsKIAkJNTc1ODU5N0QyM0EyNTI3QTAwQzc0NTcyIC8qIEN0YXBQaW5UZXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEN0YXBQaW5UZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3NTg1OTdFMjNBMjUyN0EwMEM3NDU3MiAvKiBDdGFwUGluVGVzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDdGFwUGluVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTU3NTg1OTgzMjNDM0MzNjIwMEM3NDU3MiAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3Iu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NTk5RTIwMUYwNzE5MTcwMEEz
RkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbmRleGVkREJTdHJ1Y3R1
cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3NTk5RTIzMUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xv
bmVCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTc1OTlFMjQxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0
cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEluZGV4ZWRE
QlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzQ4MywxMSArMzQ5OCwxNiBAQAogCQkJCUNENTc3Nzk4MjEx
Q0RFOEYwMDFCMzcxRSAvKiB3ZWItYXVkaW8tb25seS5odG1sICovLAogCQkJCTU3NjYzREYyMjM1
N0U0NUQwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2Fu
Y2VsLmh0bWwgKi8sCiAJCQkJNTc3NDU0Q0YyMzU5QjMzODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1sICovLAorCQkJCTU3
MEQyNkZCMjNDM0Y4NjUwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1oaWQtcGluLmh0bWwgKi8sCiAJCQkJNTc2NjNERUIyMzRGMUY4MDAwRTg1RTA5IC8qIHdlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sICovLAogCQkJCTU3OTgzMzdCMjM1
RUI2NUMwMDhFNTU0NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtbXVs
dGlwbGUtdGFncy5odG1sICovLAogCQkJCTU3NjYzREU5MjM0RUE2MEIwMEU4NUUwOSAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMuaHRtbCAqLywKIAkJCQk1Nzc0NTREMTIz
NTlCQUQ1MDA4RTFFRDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5v
LWNyZWRlbnRpYWxzLmh0bWwgKi8sCiAJCQkJNTdDNjI0NEYyMzQ2QzFFQzAwMzgzRkU3IC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgKi8sCisJCQkJNTcwRDI2RjMyM0Mz
Q0E1NTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBp
bi1nZXQta2V5LWFncmVlbWVudC1lcnJvci5odG1sICovLAorCQkJCTU3MEQyNkY5MjNDM0YyNDUw
MEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0
LXBpbi10b2tlbi1lcnJvci5odG1sICovLAorCQkJCTU3NTg1OTgzMjNDM0MzNjIwMEM3NDU3MiAv
KiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMt
ZXJyb3IuaHRtbCAqLywKKwkJCQk1NzBEMjZGNTIzQzNEMzI3MDBENUNGNjcgLyogd2ViLWF1dGhl
bnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwgKi8sCiAJCQkJNTc5ODMzN0Qy
MzYwMTk2RDAwOEU1NTQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlk
Lmh0bWwgKi8sCiAJCQkJNTE3MTRFQjIxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxs
SURCQ2xlYW51cC0xLmh0bWwgKi8sCiAJCQkJNTE3MTRFQjMxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdl
YlByb2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0bWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFBpblRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBQaW5UZXN0LmNwcAppbmRleCBhNjNhYTY2OTk1OWI1NWJj
ZDE0N2Q3MzI1ZDNlZmZhODU1ZTRlODU3Li4zNjUyOGVhNjljOTU1Y2JkNzFjYzQ4ODA0MGNmOWI1
NWU4M2NmNThhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q3RhcFBpblRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
dGFwUGluVGVzdC5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Bpbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXV0aGVudGljYXRpb25Db25zdGFudHMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuaD4KLSNpbmNsdWRlIDx3dGYvdGV4
dC9CYXNlNjQuaD4KKyNpbmNsdWRlIDxwYWwvY3J5cHRvL0NyeXB0b0RpZ2VzdC5oPgogCiBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTk4LDcg
Kzk4LDcgQEAgVEVTVChDdGFwUGluVGVzdCwgVGVzdFJldHJpZXNSZXNwb25zZSkKICAgICAvLyBT
dWNjZXNzIGNhc2VzCiAgICAgcmVzdWx0ID0gUmV0cmllc1Jlc3BvbnNlOjpwYXJzZShjb252ZXJ0
Qnl0ZXNUb1ZlY3RvcihUZXN0RGF0YTo6a0N0YXBDbGllbnRQaW5SZXRyaWVzUmVzcG9uc2UsIHNp
emVvZihUZXN0RGF0YTo6a0N0YXBDbGllbnRQaW5SZXRyaWVzUmVzcG9uc2UpKSk7CiAgICAgRVhQ
RUNUX1RSVUUocmVzdWx0KTsKLSAgICBFWFBFQ1RfRVEocmVzdWx0LT5yZXRyaWVzLCA4KTsKKyAg
ICBFWFBFQ1RfRVEocmVzdWx0LT5yZXRyaWVzLCA4dSk7CiB9CiAKIFRFU1QoQ3RhcFBpblRlc3Qs
IFRlc3RLZXlBZ3JlZW1lbnRSZXF1ZXN0KQpAQCAtMTI1LDYgKzEyNSwxMSBAQCBURVNUKEN0YXBQ
aW5UZXN0LCBUZXN0S2V5QWdyZWVtZW50UmVzcG9uc2UpCiAgICAgcmVzdWx0ID0gS2V5QWdyZWVt
ZW50UmVzcG9uc2U6OnBhcnNlKGNvbnZlcnRCeXRlc1RvVmVjdG9yKFRlc3REYXRhOjprQ3RhcENs
aWVudFBpblRva2VuUmVzcG9uc2UsIHNpemVvZihUZXN0RGF0YTo6a0N0YXBDbGllbnRQaW5Ub2tl
blJlc3BvbnNlKSkpOyAvLyB3cm9uZyByZXNwb25zZQogICAgIEVYUEVDVF9GQUxTRShyZXN1bHQp
OwogCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPUykKKyAgICByZXN1bHQgPSBLZXlBZ3JlZW1lbnRS
ZXNwb25zZTo6cGFyc2UoY29udmVydEJ5dGVzVG9WZWN0b3IoVGVzdERhdGE6OmtDdGFwQ2xpZW50
UGluSW52YWxpZEtleUFncmVlbWVudFJlc3BvbnNlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwQ2xp
ZW50UGluSW52YWxpZEtleUFncmVlbWVudFJlc3BvbnNlKSkpOyAvLyBUaGUgcG9pbnQgaXMgbm90
IG9uIHRoZSBjdXJ2ZS4KKyAgICBFWFBFQ1RfRkFMU0UocmVzdWx0KTsKKyNlbmRpZgorCiAgICAg
Ly8gVGVzdCBDT1NFCiAgICAgYXV0byBjb3NlS2V5ID0gZW5jb2RlQ09TRVB1YmxpY0tleShWZWN0
b3I8dWludDhfdD4oNjUpKTsKICAgICBjb3NlS2V5W0NCT1JWYWx1ZShDT1NFOjprdHkpXSA9IENC
T1JWYWx1ZSgwKTsgLy8gd3Jvbmcga3R5CkBAIC0xNzYsNyArMTgxLDcgQEAgVEVTVChDdGFwUGlu
VGVzdCwgVGVzdFRva2VuUmVxdWVzdCkKICAgICBhdXRvIHRva2VuID0gVG9rZW5SZXF1ZXN0Ojp0
cnlDcmVhdGUocGluLCBkb3duY2FzdDxDcnlwdG9LZXlFQz4oKmtleVBhaXIucHVibGljS2V5KSk7
CiAgICAgRVhQRUNUX1RSVUUodG9rZW4pOwogICAgIGF1dG8gcmVzdWx0ID0gZW5jb2RlQXNDQk9S
KCp0b2tlbik7Ci0gICAgRVhQRUNUX0VRKHJlc3VsdC5zaXplKCksIDEyMHUpOworICAgIEVYUEVD
VF9FUShyZXN1bHQuc2l6ZSgpLCAxMDN1KTsKICAgICBFWFBFQ1RfRVEocmVzdWx0WzBdLCBzdGF0
aWNfY2FzdDx1aW50OF90PihDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yQ2xpZW50
UGluKSk7CiAKICAgICAvLyBEZWNvZGUgdGhlIENCT1IgYmluYXJ5IHRvIGNoZWNrIGlmIGVhY2gg
ZmllbGQgaXMgZW5jb2RlZCBjb3JyZWN0bHkuCkBAIC0yMjQsMTIgKzIyOSwxNyBAQCBURVNUKEN0
YXBQaW5UZXN0LCBUZXN0VG9rZW5SZXF1ZXN0KQogICAgIC8vIENoZWNrIHRoZSBlbmNyeXB0ZWQg
UGluLgogICAgIGF1dG8gc2hhcmVkS2V5UmVzdWx0ID0gQ3J5cHRvQWxnb3JpdGhtRUNESDo6cGxh
dGZvcm1EZXJpdmVCaXRzKGRvd25jYXN0PENyeXB0b0tleUVDPigqa2V5UGFpci5wcml2YXRlS2V5
KSwgKmNvc2VQdWJsaWNLZXkpOwogICAgIEVYUEVDVF9UUlVFKHNoYXJlZEtleVJlc3VsdCk7Ci0g
ICAgYXV0byBhZXNLZXkgPSBDcnlwdG9LZXlBRVM6OmltcG9ydFJhdyhDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpBRVNfQ0JDLCBXVEZNb3ZlKCpzaGFyZWRLZXlSZXN1bHQpLCB0cnVlLCBDcnlw
dG9LZXlVc2FnZURlY3J5cHQpOworCisgICAgYXV0byBjcnlwdG8gPSBQQUw6OkNyeXB0b0RpZ2Vz
dDo6Y3JlYXRlKFBBTDo6Q3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yNTYpOworICAgIGNy
eXB0by0+YWRkQnl0ZXMoc2hhcmVkS2V5UmVzdWx0LT5kYXRhKCksIHNoYXJlZEtleVJlc3VsdC0+
c2l6ZSgpKTsKKyAgICBhdXRvIHNoYXJlZEtleUhhc2ggPSBjcnlwdG8tPmNvbXB1dGVIYXNoKCk7
CisKKyAgICBhdXRvIGFlc0tleSA9IENyeXB0b0tleUFFUzo6aW1wb3J0UmF3KENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OkFFU19DQkMsIFdURk1vdmUoc2hhcmVkS2V5SGFzaCksIHRydWUsIENy
eXB0b0tleVVzYWdlRGVjcnlwdCk7CiAgICAgRVhQRUNUX1RSVUUoYWVzS2V5KTsKIAogICAgIGNv
bnN0IGF1dG8mIGl0NiA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUlZhbHVlKHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KFJlcXVlc3RLZXk6OmtQaW5IYXNoRW5jKSkpOwogICAgIEVYUEVDVF9ORShpdDYsIHJl
c3BvbnNlTWFwLmVuZCgpKTsKLSAgICBhdXRvIHBpbkhhc2hSZXN1bHQgPSBDcnlwdG9BbGdvcml0
aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQoeyB9LCAqYWVzS2V5LCBpdDYtPnNlY29uZC5nZXRC
eXRlU3RyaW5nKCkpOworICAgIGF1dG8gcGluSGFzaFJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUFF
U19DQkM6OnBsYXRmb3JtRGVjcnlwdCh7IH0sICphZXNLZXksIGl0Ni0+c2Vjb25kLmdldEJ5dGVT
dHJpbmcoKSwgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6UGFkZGluZzo6Tm8pOwogICAgIEVYUEVD
VF9GQUxTRShwaW5IYXNoUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKTsKICAgICBhdXRvIHBpbkhhc2gg
PSBwaW5IYXNoUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgIGNvbnN0IHVpbnQ4X3Qg
ZXhwZWN0ZWRQaW5IYXNoW10gPSB7IDB4MDMsIDB4YWMsIDB4NjcsIDB4NDIsIDB4MTYsIDB4ZjMs
IDB4ZTEsIDB4NWMsIDB4NzYsIDB4MWUsIDB4ZTEsIDB4YTUsIDB4ZTIsIDB4NTUsIDB4ZjAsIDB4
NjcgfTsKQEAgLTI0MCwxMCArMjUwLDEwIEBAIFRFU1QoQ3RhcFBpblRlc3QsIFRlc3RUb2tlblJl
cXVlc3QpCiBURVNUKEN0YXBQaW5UZXN0LCBUZXN0VG9rZW5SZXNwb25zZSkKIHsKICAgICBjb25z
dCB1aW50OF90IHNoYXJlZEtleURhdGFbXSA9IHsKLSAgICAgICAgMHgwMywgMHhhYywgMHg2Nywg
MHg0MiwgMHgxNiwgMHhmMywgMHhlMSwgMHg1YywKLSAgICAgICAgMHg3NiwgMHgxZSwgMHhlMSwg
MHhhNSwgMHhlMiwgMHg1NSwgMHhmMCwgMHg2NywKLSAgICAgICAgMHg5NSwgMHgzNiwgMHgyMywg
MHhjOCwgMHhiMywgMHg4OCwgMHhiNCwgMHg0NSwKLSAgICAgICAgMHg5ZSwgMHgxMywgMHhmOSwg
MHg3OCwgMHhkNywgMHhjOCwgMHg0NiwgMHhmNCwgfTsKKyAgICAgICAgMHgyOSwgMHg5RSwgMHg2
NSwgMHhCOCwgMHhFNywgMHg3MSwgMHhCOCwgMHgxRCwKKyAgICAgICAgMHhCMSwgMHhDNCwgMHg4
RCwgMHhCRSwgMHhDRSwgMHg1MCwgMHgyQSwgMHg4NCwKKyAgICAgICAgMHgwNSwgMHg0NCwgMHg3
RiwgMHg0NiwgMHgyRCwgMHhFNiwgMHg4MSwgMHhGQSwKKyAgICAgICAgMHhFRiwgMHgwQSwgMHg2
QywgMHg2NywgMHhBNywgMHgyQiwgMHhCNSwgMHgwRiwgfTsKICAgICBhdXRvIHNoYXJlZEtleSA9
IENyeXB0b0tleUFFUzo6aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19D
QkMsIGNvbnZlcnRCeXRlc1RvVmVjdG9yKHNoYXJlZEtleURhdGEsIHNpemVvZihzaGFyZWRLZXlE
YXRhKSksIHRydWUsIENyeXB0b0tleVVzYWdlRW5jcnlwdCB8IENyeXB0b0tleVVzYWdlRGVjcnlw
dCk7CiAgICAgQVNTRVJUX1RSVUUoc2hhcmVkS2V5KTsKIApAQCAtMjc0LDEwICsyODQsMTAgQEAg
VEVTVChDdGFwUGluVGVzdCwgVGVzdFBpbkF1dGgpCiB7CiAgICAgLy8gMS4gR2VuZXJhdGUgdGhl
IHRva2VuLgogICAgIGNvbnN0IHVpbnQ4X3Qgc2hhcmVkS2V5RGF0YVtdID0gewotICAgICAgICAw
eDAzLCAweGFjLCAweDY3LCAweDQyLCAweDE2LCAweGYzLCAweGUxLCAweDVjLAotICAgICAgICAw
eDc2LCAweDFlLCAweGUxLCAweGE1LCAweGUyLCAweDU1LCAweGYwLCAweDY3LAotICAgICAgICAw
eDk1LCAweDM2LCAweDIzLCAweGM4LCAweGIzLCAweDg4LCAweGI0LCAweDQ1LAotICAgICAgICAw
eDllLCAweDEzLCAweGY5LCAweDc4LCAweGQ3LCAweGM4LCAweDQ2LCAweGY0LCB9OworICAgICAg
ICAweDI5LCAweDlFLCAweDY1LCAweEI4LCAweEU3LCAweDcxLCAweEI4LCAweDFELAorICAgICAg
ICAweEIxLCAweEM0LCAweDhELCAweEJFLCAweENFLCAweDUwLCAweDJBLCAweDg0LAorICAgICAg
ICAweDA1LCAweDQ0LCAweDdGLCAweDQ2LCAweDJELCAweEU2LCAweDgxLCAweEZBLAorICAgICAg
ICAweEVGLCAweDBBLCAweDZDLCAweDY3LCAweEE3LCAweDJCLCAweEI1LCAweDBGLCB9OwogICAg
IGF1dG8gc2hhcmVkS2V5ID0gQ3J5cHRvS2V5QUVTOjppbXBvcnRSYXcoQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6QUVTX0NCQywgY29udmVydEJ5dGVzVG9WZWN0b3Ioc2hhcmVkS2V5RGF0YSwg
c2l6ZW9mKHNoYXJlZEtleURhdGEpKSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VFbmNyeXB0IHwgQ3J5
cHRvS2V5VXNhZ2VEZWNyeXB0KTsKICAgICBBU1NFUlRfVFJVRShzaGFyZWRLZXkpOwogICAgIGF1
dG8gcmVzdWx0ID0gVG9rZW5SZXNwb25zZTo6cGFyc2UoKnNoYXJlZEtleSwgY29udmVydEJ5dGVz
VG9WZWN0b3IoVGVzdERhdGE6OmtDdGFwQ2xpZW50UGluVG9rZW5SZXNwb25zZSwgc2l6ZW9mKFRl
c3REYXRhOjprQ3RhcENsaWVudFBpblRva2VuUmVzcG9uc2UpKSk7CkBAIC0yODUsNyArMjk1LDcg
QEAgVEVTVChDdGFwUGluVGVzdCwgVGVzdFBpbkF1dGgpCiAKICAgICAvLyAyLiBHZW5lcmF0ZSB0
aGUgcGluQXV0aC4KICAgICBhdXRvIHBpbkF1dGggPSByZXN1bHQtPnBpbkF1dGgoY29udmVydEJ5
dGVzVG9WZWN0b3Ioc2hhcmVkS2V5RGF0YSwgc2l6ZW9mKHNoYXJlZEtleURhdGEpKSk7IC8vIHNo
YXJlZEtleURhdGEgcHJldGVuZHMgdG8gYmUgY2xpZW50RGF0YUhhc2gKLSAgICBjb25zdCB1aW50
OF90IGV4cGVjdGVkUGluQXV0aFtdID0geyAweGIzLCAweGMyLCAweDY1LCAweDFjLCAweGZkLCAw
eGM4LCAweDQyLCAweGI0LCAweDYwLCAweDE2LCAweGVkLCAweDIwLCAweDY0LCAweDUzLCAweGFm
LCAweDg0IH07CisgICAgY29uc3QgdWludDhfdCBleHBlY3RlZFBpbkF1dGhbXSA9IHsgMHgwYiwg
MHhlYywgMHg5ZCwgMHhiYSwgMHg2OSwgMHhiMCwgMHgwZiwgMHg0NSwgMHgwYiwgMHhlYywgMHg2
NiwgMHhiNCwgMHg3NSwgMHg3ZiwgMHg5MywgMHg4NSB9OwogICAgIEVYUEVDVF9FUShwaW5BdXRo
LnNpemUoKSwgMTZ1KTsKICAgICBFWFBFQ1RfRVEobWVtY21wKHBpbkF1dGguZGF0YSgpLCBleHBl
Y3RlZFBpbkF1dGgsIHBpbkF1dGguc2l6ZSgpKSwgMCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmggYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmgKaW5kZXggM2MyMzAyYjBhODhiNzIx
OWQ5ZWM2YWRjZDEzYWQ3ZDdiN2ZlZGM2MS4uZjI1ODE2NWI3MzFiOTllZDc5NWUwNDYxZThhNTZi
YmQ1ZTVlOWQyNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0ZpZG9UZXN0RGF0YS5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9G
aWRvVGVzdERhdGEuaApAQCAtNjEyLDE1ICs2MTIsMTUgQEAgY29uc3RleHByIHVpbnQ4X3Qga0N0
YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RXaXRoUGluW10gPSB7CiAgICAgMHg2MiwgMHg3NSwgMHg3
NiwKICAgICAvLyBUcnVlKDIxKQogICAgIDB4ZjUsCi0gICAgLy8ga2V5KDgpIC0gcGluUHJvdG9j
b2wKKyAgICAvLyBrZXkoOCkgLSBwaW5BdXRoCiAgICAgMHgwOCwKLSAgICAvLyB2YWx1ZSAtIDEK
LSAgICAweDAxLAotICAgIC8vIGtleSg5KSAtIHBpbkF1dGgKLSAgICAweDA5LAogICAgIC8vIGJ5
dGVzKDE2KQogICAgIDB4NTAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4
MDYsIDB4MDcsIDB4MDgsIDB4MDksIDB4MGEsCi0gICAgMHgwYiwgMHgwYywgMHgwZCwgMHgwZSwg
MHgwZgorICAgIDB4MGIsIDB4MGMsIDB4MGQsIDB4MGUsIDB4MGYsCisgICAgLy8ga2V5KDkpIC0g
cGluUHJvdG9jb2wKKyAgICAweDA5LAorICAgIC8vIHZhbHVlIC0gMQorICAgIDB4MDEsCiB9Owog
CiBjb25zdGV4cHIgdWludDhfdCBrVGVzdENvbXBsZXhDdGFwR2V0QXNzZXJ0aW9uUmVxdWVzdFtd
ID0gewpAQCAtNzQ1LDE1ICs3NDUsMTUgQEAgY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RDb21wbGV4
Q3RhcEdldEFzc2VydGlvblJlcXVlc3RXaXRoUGluW10gPSB7CiAgICAgMHg2MiwgMHg3NSwgMHg3
NiwKICAgICAvLyB2YWx1ZSAtIFRydWUoMjEpCiAgICAgMHhmNSwKLSAgICAvLyBrZXkoOCkgLSBw
aW5Qcm90b2NvbAotICAgIDB4MDgsCi0gICAgLy8gdmFsdWUgLSAxCi0gICAgMHgwMSwKLSAgICAv
LyBrZXkoOSkgLSBwaW5BdXRoCi0gICAgMHgwOSwKKyAgICAvLyBrZXkoNikgLSBwaW5BdXRoCisg
ICAgMHgwNiwKICAgICAvLyBieXRlcygxNikKICAgICAweDUwLCAweDAwLCAweDAxLCAweDAyLCAw
eDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDA4LCAweDA5LCAweDBhLAotICAgIDB4MGIs
IDB4MGMsIDB4MGQsIDB4MGUsIDB4MGYKKyAgICAweDBiLCAweDBjLCAweDBkLCAweDBlLCAweDBm
LAorICAgIC8vIGtleSg3KSAtIHBpblByb3RvY29sCisgICAgMHgwNywKKyAgICAvLyB2YWx1ZSAt
IDEKKyAgICAweDAxLAogfTsKIAogLy8gQ1RBUCByZXNwb25zZXMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTExMDMsMTIg
KzExMDMsMTEgQEAgY29uc3RleHByIHVpbnQ4X3Qga0N0YXBDbGllbnRQaW5Ub2tlblJlc3BvbnNl
W10gPSB7CiAgICAgMHhhMSwKICAgICAvLyBrZXkoMikgLSBwaW5Ub2tlbgogICAgIDB4MDIsCi0g
ICAgLy8gYnl0ZXMoMzIpCi0gICAgMHg1OCwgMHgyMCwKKyAgICAvLyBieXRlcygxNikKKyAgICAw
eDUwLAogICAgIC8vIGVuY3J5cHRlZCB0b2tlbgotICAgIDB4NDgsIDB4YjksIDB4NWQsIDB4M2Qs
IDB4OWUsIDB4ZWUsIDB4ZTUsIDB4MDAsIDB4YWIsIDB4NTEsIDB4MTMsIDB4MmIsCi0gICAgMHgz
NSwgMHg3NywgMHg2NiwgMHg1YywgMHg0MSwgMHg3YSwgMHg1NiwgMHgzZSwgMHhiMywgMHhlMiwg
MHgzYywgMHhiNywKLSAgICAweDZhLCAweDM3LCAweGIzLCAweGRlLCAweDU3LCAweDJiLCAweGNh
LCAweGFhLAorICAgIDB4MTMsIDB4QTQsIDB4RUUsIDB4QjcsIDB4MEUsIDB4QzksIDB4MUEsIDB4
RUEsIDB4MDAsIDB4MUUsIDB4OTMsIDB4MTYsCisgICAgMHhGNiwgMHgxRSwgMHg0MSwgMHhGNywK
IH07CiAKIGNvbnN0ZXhwciB1aW50OF90IGtDdGFwQ2xpZW50UGluS2V5QWdyZWVtZW50UmVzcG9u
c2VbXSA9IHsKQEAgLTExNDQsNiArMTE0MywzOSBAQCBjb25zdGV4cHIgdWludDhfdCBrQ3RhcENs
aWVudFBpbktleUFncmVlbWVudFJlc3BvbnNlW10gPSB7CiAgICAgMHg3MCwgMHg0NSwgMHhGNCwg
MHg2MSwgMHgyRiwgMHhCMiwgMHgwQywgMHg5MSwKIH07CiAKK2NvbnN0ZXhwciB1aW50OF90IGtD
dGFwQ2xpZW50UGluSW52YWxpZEtleUFncmVlbWVudFJlc3BvbnNlW10gPSB7CisgICAgLy8gU3Vj
Y2VzcworICAgIDB4MDAsCisgICAgLy8gbWFwKDEpCisgICAgMHhBMSwKKyAgICAvLyBrZXkoMSkg
LSBrZXlBZ3JlZW1lbnQKKyAgICAweDAxLAorICAgIC8vIE1hcCg1KQorICAgIDB4QTUsCisgICAg
Ly8ga3R5OiBFQyBrZXkgdHlwZQorICAgIDB4MDEsIDB4MDIsCisgICAgLy8gYWxnOiBFQ0RIMjU2
IHNpZ25hdHVyZSBhbGdvcml0aG0KKyAgICAweDAzLCAweDM4LCAweDE4LAorICAgIC8vIGNydjog
UC0yNTYgY3VydmUKKyAgICAweDIwLCAweDAxLAorICAgIC8vIHgtY29vcmRpbmF0ZQorICAgIDB4
MjEsCisgICAgLy8gQnl0ZXMoMzIpCisgICAgMHg1OCwgMHgyMCwKKyAgICAvLyBCeXRlIGFycmF5
IGNvbnRlbnQKKyAgICAweEU4LCAweDc2LCAweDI1LCAweDg5LCAweDZFLCAweEU0LCAweEU0LCAw
eDY2LCAweEMwLCAweDMyLCAweDc2LCAweDZFLAorICAgIDB4ODAsIDB4ODcsIDB4OTYsIDB4MkYs
IDB4MzYsIDB4REYsIDB4OUQsIDB4RkYsIDB4OEIsIDB4NTYsIDB4N0YsIDB4MzcsCisgICAgMHg2
MywgMHgwMSwgMHg1QiwgMHgxOSwgMHg5MCwgMHhBNiwgMHgwRSwgMHgxNCwKKyAgICAvLyB5LWNv
b3JkaW5hdGUKKyAgICAweDIyLAorICAgIC8vIEJ5dGVzKDMyKQorICAgIDB4NTgsIDB4MjAsCisg
ICAgLy8gQnl0ZSBhcnJheSBjb250ZW50CisgICAgMHgyNywgMHhERSwgMHg2MSwgMHgyRCwgMHg2
NiwgMHg0MSwgMHg4QiwgMHhEQSwgMHgxOSwgMHg1MCwgMHg1OCwgMHgxRSwKKyAgICAweEJDLCAw
eDVDLCAweDhDLCAweDFELCAweEFELCAweDcxLCAweDBDLCAweEIxLCAweDRDLCAweDIyLCAweEY4
LCAweEM5LAorICAgIDB4NzAsIDB4NDUsIDB4RjQsIDB4NjEsIDB4MkYsIDB4QjIsIDB4MEMsIDB4
OTEsCit9OworCiBjb25zdGV4cHIgdWludDhfdCBrQ3RhcENsaWVudFBpblJldHJpZXNSZXNwb25z
ZVtdID0gewogICAgIC8vIFN1Y2Nlc3MKICAgICAweDAwLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsLm1tCmluZGV4IDY2Zjc0ZDM4MmRjNGQwZGNiZWM1YTZmYTQwNmQ0YzQ0NzllZjlj
OGMuLjBjYjI0NzhkYzliMTljN2FhYTIxNGM4MzhhZmZiYjNjMWMyYWZkM2QgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTQ1LDYgKzQ1LDcgQEAgc3RhdGljIGJvb2wg
d2ViQXV0aGVudGljYXRpb25QYW5lbFN1Y2NlZGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCB3ZWJB
dXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTXVsdGlwbGVORkNUYWdzUHJlc2VudCA9IGZhbHNlOwog
c3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU5vQ3JlZGVudGlhbHNGb3Vu
ZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5lbENhbmNlbEltbWVk
aWF0ZWx5ID0gZmFsc2U7CitzdGF0aWMgU3RyaW5nIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxQaW47
CiAKIEBpbnRlcmZhY2UgVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZSA6IE5TT2Jq
ZWN0IDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+CiBAZW5kCkBAIC04Myw2ICs4
NCwxMyBAQCAtICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwg
ZGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaQogICAgIH0KIH0KIAorLSAodm9pZClwYW5l
bDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIHJlcXVlc3RQSU5XaXRoUmVtYWlu
aW5nUmV0cmllczooTlNVSW50ZWdlcilyZXRyaWVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIEFTU0VSVF9ORShwYW5lbCwg
bmlsKTsKKyAgICBFWFBFQ1RfRVEocmV0cmllcywgOHVsKTsKKyAgICBjb21wbGV0aW9uSGFuZGxl
cih3ZWJBdXRoZW50aWNhdGlvblBhbmVsUGluKTsKK30KKwogQGVuZAogCiBAaW50ZXJmYWNlIFRl
c3RXZWJBdXRoZW50aWNhdGlvblBhbmVsRmFrZURlbGVnYXRlIDogTlNPYmplY3QgPF9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4KQEAgLTc0MCw2ICs3NDgsMTMwIEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kQ2FuY2Vs
Tm9DcmFzaCkKICAgICBVdGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0Ny
ZWRlbnRpYWxzRm91bmQpOwogfQogCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdl
dFJldHJpZXNFcnJvcikKK3sKKyAgICByZXNldCgpOworICAgIFJldGFpblB0cjxOU1VSTD4gdGVz
dFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OworCisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwor
ICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJy
b3IgY29kZTogMiJdOworfQorCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldEtl
eUFncmVlbWVudEVycm9yKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRo
ZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVudC1lcnJv
ciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJv
Y2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKwor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdl
dCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJVbmtub3duIGludGVybmFsIGVy
cm9yLiBFcnJvciBjb2RlOiAyIl07Cit9CisKK1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwg
UGluUmVxdWVzdFBpbkVycm9yTm9EZWxlZ2F0ZSkKK3sKKyAgICByZXNldCgpOworICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4iIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwor
CisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAg
IFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiUGluIGlzIG5vdCB2YWxpZDogIl07Cit9CisKK1RF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVxdWVzdFBpbkVycm9yTnVsbERlbGVnYXRl
KQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtl
LWNyZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbZGVsZWdhdGUgc2V0SXNO
dWxsOnRydWVdOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwor
CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0
ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJQaW4gaXMgbm90
IHZhbGlkOiAiXTsKK30KKworVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5SZXF1ZXN0
UGluRXJyb3IpCit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25F
eHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgd2ViQXV0aGVudGljYXRpb25Q
YW5lbFBpbiA9ICIxMjMiOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNz
YWdlOkAiUGluIGlzIG5vdCB2YWxpZDogMTIzIl07Cit9CisKK1RFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgUGluR2V0UGluVG9rZW5FcnJvcikKK3sKKyAgICByZXNldCgpOworICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10
b2tlbi1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6
WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRl
bGVnYXRlLmdldCgpXTsKKworICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxQaW4gPSAiMTIzNCI7
CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0
ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJVbmtub3duIGlu
dGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiAyIl07Cit9CisKK1RFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW4pCit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluIiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKwor
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJv
UmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAg
d2ViQXV0aGVudGljYXRpb25QYW5lbFBpbiA9ICIxMjM0IjsKKyAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBb
d2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1Y2NlZWRlZCEiXTsKK30KKworVEVTVChXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25QaW4pCit7CisgICAgcmVzZXQoKTsKKyAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbiIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rl
c3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJ
bldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
WmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKwor
ICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxQaW4gPSAiMTIzNCI7CisgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07Cisg
ICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJTdWNjZWVkZWQhIl07Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBp
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUzMWViM2JmZTFlMmNiY2I1MjE0YTM2ZWQ2ODRiMDUyNDk2ODJi
MTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4uaHRtbApAQCAtMCww
ICsxLDMyIEBACis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+CisgICAg
Y29uc3QgdGVzdEN0YXBQaW5BdXRoSW52YWxpZEVycm9yQmFzZTY0ID0gIk13PT0iOworICAgIGNv
bnN0IHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQgPSAiQUtFRENBPT0iOworICAgIGNv
bnN0IHRlc3RQaW5HZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCA9ICJBS0VCcFFFQ0F6Z1lJ
QUVoV0NEb2RpV0pidVRrYmNBeWRtNkFoNVl2TnQrZC9vdFdmemRqQVZzWmtLWU9GQ0pZSUNmZVlT
MW1RWXZhR1ZCWUhyeGNqQjJ0Y1F5eFRDTDR5WEJGOUdFdnNneVIiOworICAgIGNvbnN0IHRlc3RQ
aW5HZXRQaW5Ub2tlblJlc3BvbnNlQmFzZTY0ID0gIkFLRUNVQk9rN3JjT3lScnFBQjZURnZZZVFm
Yz0iOworICAgIGNvbnN0IHRlc3RBc3NlcnRpb25NZXNzYWdlQmFzZTY0ID0KKyAgICAgICAgIkFL
TUJvbUpwWkZoQUtBaXR6dWorVHNsemVsZjMvdlp3SUd0RFFOZ29LZUZkNW9FaWVZemh5ekE2NXNh
ZjB0SzIiICsKKyAgICAgICAgIncvbW9vYTd0UXRHZ0Rkd1pJak9oamN1WjBwUTFham9FNEdSMGVY
QmxhbkIxWW14cFl5MXJaWGtDV0NWR3pIKzUiICsKKyAgICAgICAgIlo1MVZzdHVRa3VISTJlWGgw
Q3QxZ1BDMGdTeDNDV0xoNUk5YTJBRUFBQUJRQTFoSE1FVUNJUUNTRlR1dUJXZ0IiICsKKyAgICAg
ICAgIjQvRjBWQjdEbFVWTTA5SUhQbXhlMU16SFV3Um9DUlpiQ0FJZ0dLb3Y2eG9BeDJNRWY2LzZx
TnM4T3V0emhQMkMiICsKKyAgICAgICAgIlFvSjFMN0ZlNjRHOXVCYz0iOworICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46IHRydWUsIHBheWxvYWRC
YXNlNjQ6IFt0ZXN0Q3RhcFBpbkF1dGhJbnZhbGlkRXJyb3JCYXNlNjQsIHRlc3RQaW5HZXRSZXRy
aWVzUmVzcG9uc2VCYXNlNjQsIHRlc3RQaW5HZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCwg
dGVzdFBpbkdldFBpblRva2VuUmVzcG9uc2VCYXNlNjQsIHRlc3RBc3NlcnRpb25NZXNzYWdlQmFz
ZTY0XSB9IH0pOworICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsgaW5w
dXQuZm9jdXMoKTsgfSk7CisgICAgfQorCisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAg
cHVibGljS2V5OiB7CisgICAgICAgICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwK
KyAgICAgICAgICAgIHRpbWVvdXQ6IDEwMAorICAgICAgICB9CisgICAgfTsKKworICAgIG5hdmln
YXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAg
ICAgLy8gY29uc29sZS5sb2coIlN1Y2NlZWRlZCEiKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN1Y2NlZWRlZCEiKTsKKyAg
ICB9LCBlcnJvciA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOwor
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVz
c2FnZShlcnJvci5tZXNzYWdlKTsKKyAgICB9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFr
ZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2Ut
Y3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODNhY2E5ODc5NGI4YWU5NGFhZTEwZjdhZmFmNzI2YWVhYzkyZDljMQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0
bWwKQEAgLTAsMCArMSwzMyBAQAorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dCI+Cis8c2Ny
aXB0PgorICAgIGNvbnN0IHRlc3RDdGFwUGluSW52YWxpZEVycm9yQmFzZTY0ID0gIk1RPT0iOwor
ICAgIGNvbnN0IHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQgPSAiQUtFRENBPT0iOwor
ICAgIGNvbnN0IHRlc3RDdGFwSW52YWxpZFBhcmFtZXRlckVycm9yQmFzZTY0ID0gIkFnPT0iOwor
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46IHRy
dWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0Q3RhcFBpbkludmFsaWRFcnJvckJhc2U2NCwgdGVzdFBp
bkdldFJldHJpZXNSZXNwb25zZUJhc2U2NCwgdGVzdEN0YXBJbnZhbGlkUGFyYW1ldGVyRXJyb3JC
YXNlNjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBp
bnB1dC5mb2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAg
ICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgbmFtZTog
ImxvY2FsaG9zdCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdXNlcjogeworICAgICAg
ICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgaWQ6IG5l
dyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2Vl
ZCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2hhbGxlbmdlOiBuZXcgVWludDhBcnJh
eSgxNiksCisgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtl
eSIsIGFsZzogLTcgfV0KKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNv
bnNvbGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJy
b3IgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJy
b3IubWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1o
aWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTkxNWIzZjhmZmRl
YmEyODk5NjIzNzZiNjQzY2Y5OTZmYTBhOGZiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5odG1sCkBAIC0wLDAgKzEsMzQgQEAK
KzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0
Q3RhcFBpbkludmFsaWRFcnJvckJhc2U2NCA9ICJNUT09IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0
UmV0cmllc1Jlc3BvbnNlQmFzZTY0ID0gIkFLRURDQT09IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0
S2V5QWdyZWVtZW50UmVzcG9uc2VCYXNlNjQgPSAiQUtFQnBRRUNBemdZSUFFaFdDRG9kaVdKYnVU
a2JjQXlkbTZBaDVZdk50K2Qvb3RXZnpkakFWc1prS1lPRkNKWUlDZmVZUzFtUVl2YUdWQllIcnhj
akIydGNReXhUQ0w0eVhCRjlHRXZzZ3lSIjsKKyAgICBjb25zdCB0ZXN0Q3RhcEludmFsaWRQYXJh
bWV0ZXJFcnJvckJhc2U2NCA9ICJBZz09IjsKKyAgICBpZiAod2luZG93LmludGVybmFscykgewor
ICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7
IGhpZDogeyBzdXBwb3J0Q2xpZW50UGluOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEN0YXBQ
aW5JbnZhbGlkRXJyb3JCYXNlNjQsIHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQsIHRl
c3RQaW5HZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCwgdGVzdEN0YXBJbnZhbGlkUGFyYW1l
dGVyRXJyb3JCYXNlNjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUo
KCkgPT4geyBpbnB1dC5mb2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0g
eworICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAg
ICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdXNlcjog
eworICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAg
ICAgaWQ6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTog
IkFwcGxlc2VlZCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2hhbGxlbmdlOiBuZXcg
VWludDhBcnJheSgxNiksCisgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAi
cHVibGljLWtleSIsIGFsZzogLTcgfV0KKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAg
ICAgIC8vIGNvbnNvbGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7Cisg
ICAgfSwgZXJyb3IgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsK
KyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoZXJyb3IubWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZDExNTdj
NDFjZjhjM2QzN2Q5ZTgzMjQ3MDMzNWIzNmU3MWIwMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtl
LWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sCkBAIC0wLDAgKzEsMzIg
QEAKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0
ZXN0Q3RhcFBpbkludmFsaWRFcnJvckJhc2U2NCA9ICJNUT09IjsKKyAgICBjb25zdCB0ZXN0Q3Rh
cEludmFsaWRQYXJhbWV0ZXJFcnJvckJhc2U2NCA9ICJBZz09IjsKKyAgICBpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29u
ZmlndXJhdGlvbih7IGhpZDogeyBzdXBwb3J0Q2xpZW50UGluOiB0cnVlLCBwYXlsb2FkQmFzZTY0
OiBbdGVzdEN0YXBQaW5JbnZhbGlkRXJyb3JCYXNlNjQsIHRlc3RDdGFwSW52YWxpZFBhcmFtZXRl
ckVycm9yQmFzZTY0XSB9IH0pOworICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgp
ID0+IHsgaW5wdXQuZm9jdXMoKTsgfSk7CisgICAgfQorCisgICAgY29uc3Qgb3B0aW9ucyA9IHsK
KyAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAg
IG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHVzZXI6IHsK
KyAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAg
IGlkOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJB
cHBsZXNlZWQiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNoYWxsZW5nZTogbmV3IFVp
bnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1
YmxpYy1rZXkiLCBhbGc6IC03IH1dCisgICAgICAgIH0KKyAgICB9OworCisgICAgbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAg
ICAvLyBjb25zb2xlLmxvZygiU3VjY2VlZGVkISIpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiU3VjY2VlZGVkISIpOworICAg
IH0sIGVycm9yID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7Cisg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKGVycm9yLm1lc3NhZ2UpOworICAgIH0pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtl
LWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MTVhMGZmNTE2ZTliNjI2ODAxYTQ4ZjY3NWJkMDY5MTZmOGRhYjQwCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4uaHRtbApAQCAtMCwwICsxLDU2
IEBACis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+CisgICAgY29uc3Qg
dGVzdEN0YXBQaW5BdXRoSW52YWxpZEVycm9yQmFzZTY0ID0gIk13PT0iOworICAgIGNvbnN0IHRl
c3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQgPSAiQUtFRENBPT0iOworICAgIGNvbnN0IHRl
c3RQaW5HZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCA9ICJBS0VCcFFFQ0F6Z1lJQUVoV0NE
b2RpV0pidVRrYmNBeWRtNkFoNVl2TnQrZC9vdFdmemRqQVZzWmtLWU9GQ0pZSUNmZVlTMW1RWXZh
R1ZCWUhyeGNqQjJ0Y1F5eFRDTDR5WEJGOUdFdnNneVIiOworICAgIGNvbnN0IHRlc3RQaW5HZXRQ
aW5Ub2tlblJlc3BvbnNlQmFzZTY0ID0gIkFLRUNVQk9rN3JjT3lScnFBQjZURnZZZVFmYz0iOwor
ICAgIGNvbnN0IHRlc3RDcmVhdGlvbk1lc3NhZ2VCYXNlNjQgPQorICAgICAgICAiQUtNQlpuQmhZ
MnRsWkFKWXhFYk1mN2xublZXeTI1Q1M0Y2paNWVIUUszV0E4TFNCTEhjSll1SGtqMXJZUVFBQSIg
KworICAgICAgICAiQUU3NG9CSHpqQXBORllBR0Z4RWZudHg5QUVBb0NLM082UDVPeVhONlYvZis5
bkFnYTBOQTJDZ3A0VjNtZ1NKNSIgKworICAgICAgICAiak9ITE1Ecm14cC9TMHJiRCthaWhydTFD
MGFBTjNCa2lNNkdOeTVuU2xEVnFPZ1RncFFFQ0F5WWdBU0ZZSUVGYiIgKworICAgICAgICAiaGUz
UmtOdWQ2c2d5cmFCR2psaDFwelRsQ1plaFFsTC9iMThIWjZXR0lsZ2dKZ2ZVZC9lbjlwNUFJcU1R
YlVuaSIgKworICAgICAgICAibkVlWGRGTGt2VzAvelY1QnBFampOeEFEbzJOaGJHY21ZM05wWjFo
SE1FVUNJUURLZytaQm1FQnRmMGxXcTRSZSIgKworICAgICAgICAiZEg0L2kvTE9ZcU9SNHVSMk5B
ajJ6UW13OVFJZ2JUWGI0aHZGYmo0VDI3YnYvckdyYyt5KzBwdW9ZT0JrQms5UCIgKworICAgICAg
ICAibUNld1dsTmplRFZqZ1ZrQ3dqQ0NBcjR3Z2dHbW9BTUNBUUlDQkhTRy9jSXdEUVlKS29aSWh2
Y05BUUVMQlFBdyIgKworICAgICAgICAiTGpFc01Db0dBMVVFQXhNaldYVmlhV052SUZVeVJpQlNi
MjkwSUVOQklGTmxjbWxoYkNBME5UY3lNREEyTXpFdyIgKworICAgICAgICAiSUJjTk1UUXdPREF4
TURBd01EQXdXaGdQTWpBMU1EQTVNRFF3TURBd01EQmFNRzh4Q3pBSkJnTlZCQVlUQWxORiIgKwor
ICAgICAgICAiTVJJd0VBWURWUVFLREFsWmRXSnBZMjhnUVVJeElqQWdCZ05WQkFzTUdVRjFkR2hs
Ym5ScFkyRjBiM0lnUVhSMCIgKworICAgICAgICAiWlhOMFlYUnBiMjR4S0RBbUJnTlZCQU1NSDFs
MVltbGpieUJWTWtZZ1JVVWdVMlZ5YVdGc0lERTVOVFV3TURNNCIgKworICAgICAgICAiTkRJd1dU
QVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTVlhmT3Q5eVI5TVhYdi9aekU4eHBPaDQ2
NiIgKworICAgICAgICAiNFlFSlZtRlEremlMTGw5bEo3OVhRSnFsZ2FVTkNzVXZHRVJjQ2hOVWlo
TlR5S1RsbW5CT1VqdkFUZXZ0bzJ3dyIgKworICAgICAgICAiYWpBaUJna3JCZ0VFQVlMRUNnSUVG
VEV1TXk0MkxqRXVOQzR4TGpReE5EZ3lMakV1TVRBVEJnc3JCZ0VFQVlMbCIgKworICAgICAgICAi
SEFJQkFRUUVBd0lGSURBaEJnc3JCZ0VFQVlMbEhBRUJCQVFTQkJENG9CSHpqQXBORllBR0Z4RWZu
dHg5TUF3RyIgKworICAgICAgICAiQTFVZEV3RUIvd1FDTUFBd0RRWUpLb1pJaHZjTkFRRUxCUUFE
Z2dFQkFERmNTSURtbWxKK09HYUp2V245Q3FodiIgKworICAgICAgICAiU2V1ZVRvVkZRVlZ2cXRB
TE9nQ0tIZHdCK1d4MjltZzJHcEhpTXNnUXA1eGpCMHliYm5wRzZ4MjEyRnhFU0orRyIgKworICAg
ICAgICAiaW5aRDBpcGNoaTdBUHdQbGhJdmpnSDE2elZYNDRhNGU0aE9zYzZ0TElPUDcxU2FNc0h1
SGdDY2RIMHZnNWQycyIgKworICAgICAgICAiYzAwNldKZTlUWE82ZnpWK29nakpuWXBOS1FMbUNY
b0FYRTNKQk53S0dCSU9DdmZRRFB5V21paUc1Ykd4WWZQdCIgKworICAgICAgICAieThaM3Bualgr
MU1Ebk0yaGhyNDB1bE14bFNORG5YL1pTbkR5TUdJYms4VE9RbWpURjAyVU84YXVQOGszd3Q1RCIg
KworICAgICAgICAiMXJST0lSVTkrRkNTWDVXUVlpNjhSdURyR01aQjhQNStieW9KcWJLUWR4bjJM
bUUxb1pBeW9oUEFtTGNvUE80PSI7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBoaWQ6
IHsgc3VwcG9ydENsaWVudFBpbjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RDdGFwUGluQXV0
aEludmFsaWRFcnJvckJhc2U2NCwgdGVzdFBpbkdldFJldHJpZXNSZXNwb25zZUJhc2U2NCwgdGVz
dFBpbkdldEtleUFncmVlbWVudFJlc3BvbnNlQmFzZTY0LCB0ZXN0UGluR2V0UGluVG9rZW5SZXNw
b25zZUJhc2U2NCwgdGVzdENyZWF0aW9uTWVzc2FnZUJhc2U2NF0gfSB9KTsKKyAgICAgICAgaW50
ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOworICAgIH0K
KworICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAg
ICAgcnA6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBw
bGVzZWVkIiwKKyAgICAgICAgICAgICAgICBpZDogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAg
ICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgIHB1Yktl
eUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQorICAgICAgICB9
CisgICAgfTsKKworICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhl
bihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coIlN1Y2NlZWRlZCEiKTsK
KyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoIlN1Y2NlZWRlZCEiKTsKKyAgICB9LCBlcnJvciA9PiB7CisgICAgICAgIC8vIGNvbnNv
bGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShlcnJvci5tZXNzYWdlKTsKKyAgICB9KTsKKzwv
c2NyaXB0Pgo=
</data>
<flag name="review"
          id="402791"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387399</attachid>
            <date>2020-01-10 17:02:30 -0800</date>
            <delta_ts>2020-01-10 18:47:49 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191516-20200110170229.patch</filename>
            <type>text/plain</type>
            <size>82399</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYxMTBlMTg0NmE4Njgy
ZWMwN2MwNjFkYTYyOTZhYjU5N2NjODYxYi4uZWRhMzEyMWRiYzE0YWI3MGM0YTc0OGNhZTUwY2Rk
MDk3ZTYxN2IxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAxLTA2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBTdXBw
b3J0IENUQVAgQ2xpZW50IFBpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkxNTE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjU1ODU1OD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIENvdmVyZWQgYnkg
QVBJIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVl
c3RDb252ZXJ0ZXIuY3BwOgorICAgICAgICAoZmlkbzo6ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1
ZXN0QXNDQk9SKToKKyAgICAgICAgKGZpZG86OmVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NC
T1IpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwOgorICAgICAgICAo
Zmlkbzo6cGluOjpSZXRyaWVzUmVzcG9uc2U6OnBhcnNlKToKKyAgICAgICAgKGZpZG86OnBpbjo6
VG9rZW5SZXNwb25zZTo6cGFyc2UpOgorICAgICAgICAoZmlkbzo6cGluOjpUb2tlblJlcXVlc3Q6
OnRyeUNyZWF0ZSk6CisgICAgICAgIChmaWRvOjpwaW46OmVuY29kZUFzQ0JPUik6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaDoKKyAgICAgICAgKiBjcnlwdG8vZ2NyeXB0L0Ny
eXB0b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1FbmNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkNy
eXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdCk6CisgICAgICAgICogY3J5cHRv
L21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRy
YW5zZm9ybUFFU19DQkMpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtQUVTX0NC
Qzo6cGxhdGZvcm1FbmNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFF
U19DQkM6OnBsYXRmb3JtRGVjcnlwdCk6CisgICAgICAgICogdGVzdGluZy9Nb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpNb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uOjpIaWRDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6SGlk
Q29uZmlndXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tXZWJBdXRoZW50
aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRsOgorCiAyMDIwLTAxLTEwICBKaWV3ZW4gVGFuICA8amll
d2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBTdXBwb3J0IGF1dGhlbnRp
Y2F0b3JHZXROZXh0QXNzZXJ0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAxNDkzM2U3NzJlZDYzNTE0NWYxMWI1
MzQ5YjM1ZmZmNjNiODgwOGQuLjRhYjBkNWU2OTM3NWUyYzUwODQzMzMyN2FjZWZjYjFmMjllYjQw
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjAtMDEtMDYgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFN1cHBvcnQgQ1RBUCBD
bGllbnQgUGluCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTE1MTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NTU4NTU4PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRz
IGF1dGhlbnRpY2F0b3JDbGllbnRQSU4gZnJvbSB0aGUgc3BlYzoKKyAgICAgICAgaHR0cHM6Ly9m
aWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE5MDEzMC9maWRvLWNsaWVudC10
by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxOTAxMzAuaHRtbCNhdXRoZW50aWNh
dG9yQ2xpZW50UElOCisgICAgICAgIFNwZWNpZmljYWxseSwgaXQgaW1wbGVtZW50cyBzZWN0aW9u
IDUuNS4xLCA1LjUuMywgNS41LjQsIDUuNS43LCBhbmQgNS41LjguCisKKyAgICAgICAgSGVyZSBp
cyB0aGUgZmxvdyBob3cgbWFrZUNyZWRlbnRpYWwvZ2V0QXNzZXJ0aW9uIHdvcmtzIHdpdGggYSBQ
SU4gaW4gb3VyIGltcGxlbWVudGF0aW9uOgorICAgICAgICAxLiBEZXRlcm1pbmUgaWYgdGhlIGNv
bm5lY3RlZCBhdXRoZW50aWNhdG9yIGhhcyBhIFBJTjsKKyAgICAgICAgMi4gSWYgeWVzLCBzZW5k
IHRoZSBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb24gcmVxdWVzdCB0byB0aGUgYXV0aGVudGlj
YXRvciB3aXRoIGFuIGVtcHR5IHBpbkF1dGgKKyAgICAgICAgc3VjaCB0aGF0IHRoZSBhdXRoZW50
aWNhdG9yIHdpbGwgd2luayBmb3IgdXNlciBnZXN0dXJlcy4gVGhpcyBzdGVwIGludGVuZHMgdG8g
Y29uZmlybSB0aGUgYXV0aGVudGljYXRvcgorICAgICAgICBpcyB0aGUgb25lIHRoZSB1c2VyIHdh
bnRzIHRvIHVzZS4gT3RoZXJ3aXNlLCB3ZSBkb24ndCBrbm93IHdoaWNoIGF1dGhlbnRpY2F0b3Ig
dG8gc2VuZCB0aGUgUElOCisgICAgICAgIGlmIG11bHRpcGxlIGFyZSBjb25uZWN0ZWQ7CisgICAg
ICAgIDMuIE9uY2UgdGhlIHVzZXIgY29uZmlybXMgdGhlIGF1dGhldG5pY2F0b3IsIGl0IHdpbGwg
cmV0dXJuIGVpdGhlciBDVEFQMl9FUlJfUElOX0lOVkFMSUQgb3IKKyAgICAgICAgQ1RBUDJfRVJS
X1BJTl9BVVRIX0lOVkFMSUQuIFNvbWUgYXV0aGVudGljYXRvcnMgcmV0dXJuIENUQVAyX0VSUl9Q
SU5fQVVUSF9JTlZBTElEIGV2ZW4gdGhvdWdoCisgICAgICAgIGl0IGlzIG5vdCBzdWdnZXN0ZWQg
YnkgdGhlIHNwZWM7CisgICAgICAgIDQuIEdldCByZXRyaWVzIGZyb20gdGhlIGF1dGhlbnRpY2F0
b3I7CisgICAgICAgIDUuIEdldCBrZXkgYWdyZWVtZW50IGZyb20gdGhlIGF1dGhlbnRpY2F0b3I7
CisgICAgICAgIDYuIEFzayB0aGUgVUkgY2xpZW50IGZvciB0aGUgUElOIGFuZCBhdCB0aGUgbWVh
bnRpbWUgaW5mb3JtIGl0IHRoZSByZXRyaWVzOworICAgICAgICA3LiBHZXQgcGluIHRva2VuIGZy
b20gdGhlIGF1dGhlbnRpY2F0b3I7CisgICAgICAgIDguIFJlc2VuZCB0aGUgbWFrZUNyZWRlbnRp
YWwvZ2V0QXNzZXJ0aW9uIHJlcXVlc3Qgd2l0aCB0aGUgZGVzaXJlZCBwaW5BdXRoLgorCisgICAg
ICAgIEJlc2lkZXMgaW1wbGVtZW50YXRpbmcgdGhlIGFib3ZlIGZsb3csIHRoaXMgcGF0Y2ggYWxz
byBmaXhlcyBzb21lIGJ1Z3Mgd2l0aGluIHRoZSBQSU4gY29tbWFuZHMgZW5jb2RlcjoKKyAgICAg
ICAgMS4gcGluQXV0aC9waW5Qcm90b2NvbCBhcmUgd3JvbmdseSBlbmNvZGVkIGZvciBtYWtlQ3Jl
ZGVudGlhbC9nZXRBc3NlcnRpb247CisgICAgICAgIDIuIEFFUyBDQkMgc2hvdWxkIGJlIGNhbGxl
ZCB3aXRob3V0IGFueSBwYWRkaW5nLiBUaGVyZWZvcmUsIENyeXB0b0FsZ29yaXRobUFFU19DQkMg
YWRkcyBhIG5vIHBhZGRpbmcgbW9kZTsKKyAgICAgICAgMy4gVGhlIHNoYXJlZFNlY3JldCBpcyB0
aGUgU0hBMjU2IGRpZ2VzdCBvZiB0aGUgRUNESCBrZXkgYWdyZWVtZW50IGluc3RlYWQgb2YgdGhl
IHJhdyBrZXkgYWdyZWVtZW50LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OldlYkF1dGhlbnRpY2F0aW9u
UGFuZWxDbGllbnQ6OnJlcXVlc3RQaW4gY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
QXV0aGVudGljYXRvck1hbmFnZXI6OnJlcXVlc3RQaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWxDbGllbnQubW06CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0
aW9uUGFuZWxDbGllbnQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OjpyZXF1ZXN0UGluIGNvbnN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrSGlkQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vY2tIaWRDb25uZWN0aW9uOjpmZWVkUmVwb3J0
cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhl
bnRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6bWFrZUNy
ZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVN
YWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OkN0
YXBBdXRoZW50aWNhdG9yOjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0
aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclJlc3BvbnNlUmVjZWl2ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Z2V0UmV0cmllcyk6CisgICAgICAg
IChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEtleUFncmVlbWVudEFmdGVy
R2V0UmV0cmllcyk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51
ZVJlcXVlc3RQaW5BZnRlckdldEtleUFncmVlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBB
dXRoZW50aWNhdG9yOjpjb250aW51ZUdldFBpblRva2VuQWZ0ZXJSZXF1ZXN0UGluKToKKyAgICAg
ICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlUmVxdWVzdEFmdGVyR2V0UGlu
VG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtl
Q3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuaDoK
KwogMjAyMC0wMS0xMCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXZWJBdXRobl0gU3VwcG9ydCBhdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVl
c3RDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0Rl
dmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwCmluZGV4IGI5NmRhYmI1OTg2OWM0MjViZGJiYTQ3ZTkz
ZjVkMzAwOThhYTlkODkuLjE1NWU1ZDFlZTJlM2Y4NWQ3NDQ5MjBlNGFhMzhiOWU4ZDlhNzI2NDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VS
ZXF1ZXN0Q29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKQEAgLTEyNiw4ICsxMjYsOCBAQCBWZWN0
b3I8dWludDhfdD4gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgaGFzaCwgYwogCiAgICAgaWYgKHBpbikgewogICAgICAgICBBU1NFUlQocGlu
LT5wcm90b2NvbCA+PSAwKTsKLSAgICAgICAgY2Jvck1hcFtDQk9SVmFsdWUoOCldID0gQ0JPUlZh
bHVlKHBpbi0+cHJvdG9jb2wpOwotICAgICAgICBjYm9yTWFwW0NCT1JWYWx1ZSg5KV0gPSBDQk9S
VmFsdWUoV1RGTW92ZShwaW4tPmF1dGgpKTsKKyAgICAgICAgY2Jvck1hcFtDQk9SVmFsdWUoOCld
ID0gQ0JPUlZhbHVlKFdURk1vdmUocGluLT5hdXRoKSk7CisgICAgICAgIGNib3JNYXBbQ0JPUlZh
bHVlKDkpXSA9IENCT1JWYWx1ZShwaW4tPnByb3RvY29sKTsKICAgICB9CiAKICAgICBhdXRvIHNl
cmlhbGl6ZWRQYXJhbSA9IENCT1JXcml0ZXI6OndyaXRlKENCT1JWYWx1ZShXVEZNb3ZlKGNib3JN
YXApKSk7CkBAIC0xNzIsOCArMTcyLDggQEAgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUdldEFzc2Vy
dGlvblJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb24KIAogICAg
IGlmIChwaW4pIHsKICAgICAgICAgQVNTRVJUKHBpbi0+cHJvdG9jb2wgPj0gMCk7Ci0gICAgICAg
IGNib3JNYXBbQ0JPUlZhbHVlKDgpXSA9IENCT1JWYWx1ZShwaW4tPnByb3RvY29sKTsKLSAgICAg
ICAgY2Jvck1hcFtDQk9SVmFsdWUoOSldID0gQ0JPUlZhbHVlKFdURk1vdmUocGluLT5hdXRoKSk7
CisgICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDYpXSA9IENCT1JWYWx1ZShXVEZNb3ZlKHBpbi0+
YXV0aCkpOworICAgICAgICBjYm9yTWFwW0NCT1JWYWx1ZSg3KV0gPSBDQk9SVmFsdWUocGluLT5w
cm90b2NvbCk7CiAgICAgfQogCiAgICAgYXV0byBzZXJpYWxpemVkUGFyYW0gPSBDQk9SV3JpdGVy
Ojp3cml0ZShDQk9SVmFsdWUoV1RGTW92ZShjYm9yTWFwKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcAppbmRleCAxNmU2OGY4NjUxZDg3Y2E3MjkyOTYx
NzdmNjdkZmUyZmZhZjBkYmVmLi4yNzE2ZWZkNDY3ZDk3YjMxYzRjNjBlNzQ4Y2ZmZjNjZDE5NWFi
MTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGlu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcApA
QCAtMTMxLDcgKzEzMSw3IEBAIE9wdGlvbmFsPFJldHJpZXNSZXNwb25zZT4gUmV0cmllc1Jlc3Bv
bnNlOjpwYXJzZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGluQnVmZmVyCiAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CiAKICAgICBSZXRyaWVzUmVzcG9uc2UgcmV0OwotICAgIHJldC5yZXRy
aWVzID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oaXQtPnNlY29uZC5nZXRVbnNpZ25lZCgpKTsKKyAg
ICByZXQucmV0cmllcyA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihpdC0+c2Vjb25kLmdldFVuc2ln
bmVkKCkpOwogICAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTIzMiw3ICsyMzIsNyBAQCBPcHRpb25h
bDxUb2tlblJlc3BvbnNlPiBUb2tlblJlc3BvbnNlOjpwYXJzZShjb25zdCBXZWJDb3JlOjpDcnlw
dG9LZXlBRVMmIHNoYXJlZAogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIGNvbnN0
IGF1dG8mIGVuY3J5cHRlZFRva2VuID0gaXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7CiAKLSAg
ICBhdXRvIHRva2VuUmVzdWx0ID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1EZWNy
eXB0KHsgfSwgc2hhcmVkS2V5LCBlbmNyeXB0ZWRUb2tlbik7CisgICAgYXV0byB0b2tlblJlc3Vs
dCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdCh7IH0sIHNoYXJlZEtl
eSwgZW5jcnlwdGVkVG9rZW4sIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OlBhZGRpbmc6Ok5vKTsK
ICAgICBpZiAodG9rZW5SZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAgICAgYXV0byB0b2tlbiA9IHRva2VuUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpOwpAQCAtMjcyLDExICsyNzIsMTYgQEAgT3B0aW9uYWw8VG9rZW5SZXF1ZXN0PiBUb2tlblJl
cXVlc3Q6OnRyeUNyZWF0ZShjb25zdCBDU3RyaW5nJiBwaW4sIGNvbnN0IENyeXB0b0sKICAgICBB
U1NFUlQoIWtleVBhaXJSZXN1bHQuaGFzRXhjZXB0aW9uKCkpOwogICAgIGF1dG8ga2V5UGFpciA9
IGtleVBhaXJSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKLSAgICAvLyAyLiBVc2UgRUNE
SCB0byBjb21wdXRlIHRoZSBzaGFyZWQgQUVTLUNCQyBrZXkuCisgICAgLy8gMi4gVXNlIEVDREgg
YW5kIFNIQS0yNTYgdG8gY29tcHV0ZSB0aGUgc2hhcmVkIEFFUy1DQkMga2V5LgogICAgIGF1dG8g
c2hhcmVkS2V5UmVzdWx0ID0gQ3J5cHRvQWxnb3JpdGhtRUNESDo6cGxhdGZvcm1EZXJpdmVCaXRz
KGRvd25jYXN0PENyeXB0b0tleUVDPigqa2V5UGFpci5wcml2YXRlS2V5KSwgcGVlcktleSk7CiAg
ICAgaWYgKCFzaGFyZWRLZXlSZXN1bHQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0g
ICAgYXV0byBzaGFyZWRLZXkgPSBDcnlwdG9LZXlBRVM6OmltcG9ydFJhdyhDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpBRVNfQ0JDLCBXVEZNb3ZlKCpzaGFyZWRLZXlSZXN1bHQpLCB0cnVlLCBD
cnlwdG9LZXlVc2FnZUVuY3J5cHQgfCBDcnlwdG9LZXlVc2FnZURlY3J5cHQpOworCisgICAgYXV0
byBjcnlwdG8gPSBQQUw6OkNyeXB0b0RpZ2VzdDo6Y3JlYXRlKFBBTDo6Q3J5cHRvRGlnZXN0OjpB
bGdvcml0aG06OlNIQV8yNTYpOworICAgIGNyeXB0by0+YWRkQnl0ZXMoc2hhcmVkS2V5UmVzdWx0
LT5kYXRhKCksIHNoYXJlZEtleVJlc3VsdC0+c2l6ZSgpKTsKKyAgICBhdXRvIHNoYXJlZEtleUhh
c2ggPSBjcnlwdG8tPmNvbXB1dGVIYXNoKCk7CisKKyAgICBhdXRvIHNoYXJlZEtleSA9IENyeXB0
b0tleUFFUzo6aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMsIFdU
Rk1vdmUoc2hhcmVkS2V5SGFzaCksIHRydWUsIENyeXB0b0tleVVzYWdlRW5jcnlwdCB8IENyeXB0
b0tleVVzYWdlRGVjcnlwdCk7CiAgICAgQVNTRVJUKHNoYXJlZEtleSk7CiAKICAgICAvLyBUaGUg
Zm9sbG93aW5nIGVuY29kZXMgdGhlIHB1YmxpYyBrZXkgb2YgdGhlIGFib3ZlIGtleSBwYWlyIGlu
dG8gQ09TRSBmb3JtYXQuCkBAIC0yODUsNyArMjkwLDcgQEAgT3B0aW9uYWw8VG9rZW5SZXF1ZXN0
PiBUb2tlblJlcXVlc3Q6OnRyeUNyZWF0ZShjb25zdCBDU3RyaW5nJiBwaW4sIGNvbnN0IENyeXB0
b0sKICAgICBhdXRvIGNvc2VLZXkgPSBlbmNvZGVDT1NFUHVibGljS2V5KHJhd1B1YmxpY0tleVJl
c3VsdC5yZXR1cm5WYWx1ZSgpKTsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgY2FsY3VsYXRlcyBh
IFNIQS0yNTYgZGlnZXN0IG9mIHRoZSBQSU4sIGFuZCBzaHJpbmsgdG8gdGhlIGxlZnQgMTYgYnl0
ZXMuCi0gICAgYXV0byBjcnlwdG8gPSBQQUw6OkNyeXB0b0RpZ2VzdDo6Y3JlYXRlKFBBTDo6Q3J5
cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yNTYpOworICAgIGNyeXB0byA9IFBBTDo6Q3J5cHRv
RGlnZXN0OjpjcmVhdGUoUEFMOjpDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzI1Nik7CiAg
ICAgY3J5cHRvLT5hZGRCeXRlcyhwaW4uZGF0YSgpLCBwaW4ubGVuZ3RoKCkpOwogICAgIGF1dG8g
cGluSGFzaCA9IGNyeXB0by0+Y29tcHV0ZUhhc2goKTsKICAgICBwaW5IYXNoLnNocmluaygxNik7
CkBAIC0zMDcsNyArMzEyLDcgQEAgY29uc3QgQ3J5cHRvS2V5QUVTJiBUb2tlblJlcXVlc3Q6OnNo
YXJlZEtleSgpIGNvbnN0CiAKIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVBc0NCT1IoY29uc3QgVG9r
ZW5SZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIGF1dG8gcmVzdWx0ID0gQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQzo6cGxhdGZvcm1FbmNyeXB0KHsgfSwgcmVxdWVzdC5zaGFyZWRLZXkoKSwgcmVxdWVz
dC5tX3Bpbkhhc2gpOworICAgIGF1dG8gcmVzdWx0ID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6
cGxhdGZvcm1FbmNyeXB0KHsgfSwgcmVxdWVzdC5zaGFyZWRLZXkoKSwgcmVxdWVzdC5tX3Bpbkhh
c2gsIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OlBhZGRpbmc6Ok5vKTsKICAgICBBU1NFUlQoIXJl
c3VsdC5oYXNFeGNlcHRpb24oKSk7CiAKICAgICByZXR1cm4gZW5jb2RlUGluQ29tbWFuZChTdWJj
b21tYW5kOjprR2V0UGluVG9rZW4sIFtjb3NlS2V5ID0gV1RGTW92ZShyZXF1ZXN0Lm1fY29zZUtl
eSksIGVuY3J5cHRlZFBpbiA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKV0gKENCT1JWYWx1
ZTo6TWFwVmFsdWUqIG1hcCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vUGluLmgKaW5kZXggMzU3NDNhMDAzMDdkY2ZiZDllNDg4ZDk1ZDBiZTBiMjc0ODBl
NTk2Yi4uZjViMWVjYTJmNTRhYjI3MmY1ZjRkMWY1N2NkYzU4NDcxMjUwYjM4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uaApAQCAtNzksNyArNzksNyBAQCBl
bnVtIGNsYXNzIFJlc3BvbnNlS2V5IDogdWludDhfdCB7CiAKIC8vIGtQcm90b2NvbFZlcnNpb24g
aXMgdGhlIHZlcnNpb24gb2YgdGhlIFBJTiBwcm90b2NvbCB0aGF0IHRoaXMgY29kZQogLy8gaW1w
bGVtZW50cy4KLWNvbnN0ZXhwciBpbnQga1Byb3RvY29sVmVyc2lvbiA9IDE7Citjb25zdGV4cHIg
aW50NjRfdCBrUHJvdG9jb2xWZXJzaW9uID0gMTsKIAogLy8gZW5jb2RlQ09TRVB1YmxpY0tleSB0
YWtlcyBhIHJhdyBFQ0RIMjU2IHB1YmxpYyBrZXkgYW5kIHJldHVybnMgaXQgYXMgYSBDT1NFIHN0
cnVjdHVyZS4KIFdFQkNPUkVfRVhQT1JUIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUgZW5jb2Rl
Q09TRVB1YmxpY0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSk7CkBAIC0xMTAsNyArMTEw
LDcgQEAgc3RydWN0IFJldHJpZXNSZXNwb25zZSB7CiAKICAgICAvLyByZXRyaWVzIGlzIHRoZSBu
dW1iZXIgb2YgUElOIGF0dGVtcHRzIHJlbWFpbmluZyBiZWZvcmUgdGhlIGF1dGhlbnRpY2F0b3IK
ICAgICAvLyBsb2Nrcy4KLSAgICBpbnQgcmV0cmllczsKKyAgICB1aW50NjRfdCByZXRyaWVzOwog
CiBwcml2YXRlOgogICAgIFJldHJpZXNSZXNwb25zZSgpOwpAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIHNoYXJlZEtleSByZXR1cm5zIHRoZSBzaGFyZWQgRUNESCBrZXkgdGhh
dCB3YXMgdXNlZCB0byBlbmNyeXB0IHRoZSBQSU4uCiAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8g
ZGVjcnlwdCB0aGUgcmVzcG9uc2UuCi0gICAgY29uc3QgV2ViQ29yZTo6Q3J5cHRvS2V5QUVTJiBz
aGFyZWRLZXkoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBXZWJDb3JlOjpDcnlw
dG9LZXlBRVMmIHNoYXJlZEtleSgpIGNvbnN0OwogCiAgICAgZnJpZW5kIFZlY3Rvcjx1aW50OF90
PiBlbmNvZGVBc0NCT1IoY29uc3QgVG9rZW5SZXF1ZXN0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaApp
bmRleCBmZDk4OTEyYjcwZGMwYjUxZDFiOTg3OTA2NjRkNzJiNDZlMzQyOGZlLi4yNzMyOTg1Yjc3
ZmVkZmMzOTY3NGQ0NzQ5ZDg5NTUwYTBhMTcxYzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCkBAIC0z
NiwxMyArMzYsMTggQEAgY2xhc3MgQ3J5cHRvS2V5QUVTOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0
aG1BRVNfQ0JDIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6CisgICAg
ZW51bSBjbGFzcyBQYWRkaW5nIDogdWludDhfdCB7CisgICAgICAgIFllcywKKyAgICAgICAgTm8K
KyAgICB9OworCiAgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVT
LUNCQyI7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNf
aWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkM7CiAgICAgc3Rh
dGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCiAgICAgLy8gT3BlcmF0aW9ucyBj
YW4gYmUgcGVyZm9ybWVkIGRpcmVjdGx5LgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeGNl
cHRpb25PcjxWZWN0b3I8dWludDhfdD4+IHBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1BZXNDYmNDZmJQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBWZWN0b3I8
dWludDhfdD4mKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9y
PHVpbnQ4X3Q+PiBwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2Zi
UGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5QUVTJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gcGxh
dGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYsIGNvbnN0
IENyeXB0b0tleUFFUyYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIFBhZGRpbmcgcGFkZGluZyA9
IFBhZGRpbmc6Olllcyk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEV4Y2VwdGlvbk9yPFZl
Y3Rvcjx1aW50OF90Pj4gcGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0Ni
Y0NmYlBhcmFtcyYsIGNvbnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYs
IFBhZGRpbmcgcGFkZGluZyA9IFBhZGRpbmc6Olllcyk7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRv
QWxnb3JpdGhtQUVTX0NCQygpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dDcnlwdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwCmlu
ZGV4IDk4YTZiMjE5YmUyMDJmMzM1Mzc5YTU1MTg3ODZmY2MyNGNjYTIyNTMuLmE1MWI2NmQ4ZGRl
ODExMzRiNTgzMGMyYTZhMDk5ZDgxYWIwY2VkNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dDcnlwdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNw
cApAQCAtMTY2LDcgKzE2Niw3IEBAIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGdj
cnlwdERlY3J5cHQoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIGNvbnN0CiAgICAgcmV0dXJu
IG91dHB1dDsKIH0KIAotRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0
aG1BRVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2Zi
UGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBwbGFpblRleHQpCitFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0
b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1B
ZXNDYmNDZmJQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIHBsYWluVGV4dCwgUGFkZGluZykKIHsKICAgICBhdXRvIG91dHB1
dCA9IGdjcnlwdEVuY3J5cHQoa2V5LmtleSgpLCBwYXJhbWV0ZXJzLml2VmVjdG9yKCksIFZlY3Rv
cjx1aW50OF90PihwbGFpblRleHQpKTsKICAgICBpZiAoIW91dHB1dCkKQEAgLTE3NCw3ICsxNzQs
NyBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRobUFFU19DQkM6
OnBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdAogICAgIHJldHVybiBXVEZNb3ZlKCpvdXRwdXQp
OwogfQogCi1FeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRobUFFU19D
QkM6OnBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQYXJhbXMm
IHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBWZWN0b3I8dWludDhf
dD4mIGNpcGhlclRleHQpCitFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29y
aXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmND
ZmJQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBWZWN0
b3I8dWludDhfdD4mIGNpcGhlclRleHQsIFBhZGRpbmcpCiB7CiAgICAgYXV0byBvdXRwdXQgPSBn
Y3J5cHREZWNyeXB0KGtleS5rZXkoKSwgcGFyYW1ldGVycy5pdlZlY3RvcigpLCBjaXBoZXJUZXh0
KTsKICAgICBpZiAoIW91dHB1dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9t
YWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
bWFjL0NyeXB0b0FsZ29yaXRobUFFU19DQkNNYWMuY3BwCmluZGV4IDUxN2NmYzg5Yjk3MzcxNDlj
NDgwN2I4NWFkMWYyMGRmYTBhYWMxZGIuLmM1N2YxMDc5OWQxMTBhYjBiNGZjMWU5MmIxNzE0NDYz
Y2ZiOWQzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0NCQ01hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9Dcnlw
dG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcApAQCAtMzQsMTAgKzM0LDExIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gdHJhbnNm
b3JtQUVTX0NCQyhDQ09wZXJhdGlvbiBvcGVyYXRpb24sIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
aXYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRh
dGEpCitzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiB0cmFuc2Zvcm1BRVNfQ0JD
KENDT3BlcmF0aW9uIG9wZXJhdGlvbiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSwgQ3J5cHRv
QWxnb3JpdGhtQUVTX0NCQzo6UGFkZGluZyBwYWRkaW5nKQogeworICAgIENDT3B0aW9ucyBvcHRp
b25zID0gcGFkZGluZyA9PSBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpQYWRkaW5nOjpZZXMgPyBr
Q0NPcHRpb25QS0NTN1BhZGRpbmcgOiAwOwogICAgIENDQ3J5cHRvclJlZiBjcnlwdG9yOwotICAg
IENDQ3J5cHRvclN0YXR1cyBzdGF0dXMgPSBDQ0NyeXB0b3JDcmVhdGUob3BlcmF0aW9uLCBrQ0NB
bGdvcml0aG1BRVMsIGtDQ09wdGlvblBLQ1M3UGFkZGluZywga2V5LmRhdGEoKSwga2V5LnNpemUo
KSwgaXYuZGF0YSgpLCAmY3J5cHRvcik7CisgICAgQ0NDcnlwdG9yU3RhdHVzIHN0YXR1cyA9IEND
Q3J5cHRvckNyZWF0ZShvcGVyYXRpb24sIGtDQ0FsZ29yaXRobUFFUywgb3B0aW9ucywga2V5LmRh
dGEoKSwga2V5LnNpemUoKSwgaXYuZGF0YSgpLCAmY3J5cHRvcik7CiAgICAgaWYgKHN0YXR1cykK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CiAKQEAgLTQ5LDEw
ICs1MCwxMiBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiB0cmFuc2Zvcm1B
RVNfQ0JDKENDT3BlcmF0aW9uIG9wZXJhdGlvbiwgY29ucwogICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKIAogICAgIHVpbnQ4X3QqIHAgPSByZXN1bHQuZGF0YSgp
ICsgYnl0ZXNXcml0dGVuOwotICAgIHN0YXR1cyA9IENDQ3J5cHRvckZpbmFsKGNyeXB0b3IsIHAs
IHJlc3VsdC5lbmQoKSAtIHAsICZieXRlc1dyaXR0ZW4pOwotICAgIHAgKz0gYnl0ZXNXcml0dGVu
OwotICAgIGlmIChzdGF0dXMpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25F
cnJvciB9OworICAgIGlmIChwYWRkaW5nID09IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OlBhZGRp
bmc6OlllcykgeworICAgICAgICBzdGF0dXMgPSBDQ0NyeXB0b3JGaW5hbChjcnlwdG9yLCBwLCBy
ZXN1bHQuZW5kKCkgLSBwLCAmYnl0ZXNXcml0dGVuKTsKKyAgICAgICAgcCArPSBieXRlc1dyaXR0
ZW47CisgICAgICAgIGlmIChzdGF0dXMpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
T3BlcmF0aW9uRXJyb3IgfTsKKyAgICB9CiAKICAgICBBU1NFUlQocCA8PSByZXN1bHQuZW5kKCkp
OwogICAgIHJlc3VsdC5zaHJpbmsocCAtIHJlc3VsdC5iZWdpbigpKTsKQEAgLTYyLDE2ICs2NSwx
OCBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiB0cmFuc2Zvcm1BRVNfQ0JD
KENDT3BlcmF0aW9uIG9wZXJhdGlvbiwgY29ucwogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7
CiB9CiAKLUV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtQUVTX0NC
Qzo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcyYg
cGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgcGxhaW5UZXh0KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0
aG1BRVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2Zi
UGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBwbGFpblRleHQsIFBhZGRpbmcgcGFkZGluZykKIHsKICAgICBBU1NFUlQocGFy
YW1ldGVycy5pdlZlY3RvcigpLnNpemUoKSA9PSBrQ0NCbG9ja1NpemVBRVMxMjggfHwgcGFyYW1l
dGVycy5pdlZlY3RvcigpLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIHRyYW5zZm9ybUFFU19DQkMo
a0NDRW5jcnlwdCwgcGFyYW1ldGVycy5pdlZlY3RvcigpLCBrZXkua2V5KCksIHBsYWluVGV4dCk7
CisgICAgQVNTRVJUKHBhZGRpbmcgPT0gUGFkZGluZzo6WWVzIHx8ICEocGxhaW5UZXh0LnNpemUo
KSAlIGtDQ0Jsb2NrU2l6ZUFFUzEyOCkpOworICAgIHJldHVybiB0cmFuc2Zvcm1BRVNfQ0JDKGtD
Q0VuY3J5cHQsIHBhcmFtZXRlcnMuaXZWZWN0b3IoKSwga2V5LmtleSgpLCBwbGFpblRleHQsIHBh
ZGRpbmcpOwogfQogCi1FeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRo
bUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNDZmJQ
YXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIGNpcGhlclRleHQpCitFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0
b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1B
ZXNDYmNDZmJQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIGNpcGhlclRleHQsIFBhZGRpbmcgcGFkZGluZykKIHsKICAgICBB
U1NFUlQocGFyYW1ldGVycy5pdlZlY3RvcigpLnNpemUoKSA9PSBrQ0NCbG9ja1NpemVBRVMxMjgg
fHwgcGFyYW1ldGVycy5pdlZlY3RvcigpLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIHRyYW5zZm9y
bUFFU19DQkMoa0NDRGVjcnlwdCwgcGFyYW1ldGVycy5pdlZlY3RvcigpLCBrZXkua2V5KCksIGNp
cGhlclRleHQpOworICAgIEFTU0VSVChwYWRkaW5nID09IFBhZGRpbmc6OlllcyB8fCAhKGNpcGhl
clRleHQuc2l6ZSgpICUga0NDQmxvY2tTaXplQUVTMTI4KSk7CisgICAgcmV0dXJuIHRyYW5zZm9y
bUFFU19DQkMoa0NDRGVjcnlwdCwgcGFyYW1ldGVycy5pdlZlY3RvcigpLCBrZXkua2V5KCksIGNp
cGhlclRleHQsIHBhZGRpbmcpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3Vy
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29u
ZmlndXJhdGlvbi5oCmluZGV4IDMyOGJiOWQ0ZWFhZmM3NWQ4M2M3MWE3YzcyNzRkMTY1MDM2N2Qy
MGIuLjYyOTU1OGY3ZmJkZjAxMmYxZTY0MTNmNzllNTQ3NzVhM2NlZDI1NDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29u
ZmlndXJhdGlvbi5oCkBAIC04NCw2ICs4NCw3IEBAIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uIHsKICAgICAgICAgYm9vbCBjb250aW51ZUFmdGVyRXJyb3JEYXRhIHsg
ZmFsc2UgfTsKICAgICAgICAgYm9vbCBjYW5Eb3duZ3JhZGUgeyBmYWxzZSB9OwogICAgICAgICBi
b29sIGV4cGVjdENhbmNlbCB7IGZhbHNlIH07CisgICAgICAgIGJvb2wgc3VwcG9ydENsaWVudFBp
biB7IGZhbHNlIH07CiAKICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OwogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8SGlkQ29uZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImKTsKQEAgLTE2MSw3
ICsxNjIsNyBAQCBPcHRpb25hbDxNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpM
b2NhbENvbmZpZ3VyYXRpb24+IE1vY2tXZWJBdXRoZW50aQogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4KIHZvaWQgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6SGlkQ29uZmlndXJh
dGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBw
YXlsb2FkQmFzZTY0IDw8IHN0YWdlIDw8IHN1YlN0YWdlIDw8IGVycm9yIDw8IGlzVTJmIDw8IGtl
ZXBBbGl2ZSA8PCBmYXN0RGF0YUFycml2YWwgPDwgY29udGludWVBZnRlckVycm9yRGF0YSA8PCBj
YW5Eb3duZ3JhZGUgPDwgZXhwZWN0Q2FuY2VsOworICAgIGVuY29kZXIgPDwgcGF5bG9hZEJhc2U2
NCA8PCBzdGFnZSA8PCBzdWJTdGFnZSA8PCBlcnJvciA8PCBpc1UyZiA8PCBrZWVwQWxpdmUgPDwg
ZmFzdERhdGFBcnJpdmFsIDw8IGNvbnRpbnVlQWZ0ZXJFcnJvckRhdGEgPDwgY2FuRG93bmdyYWRl
IDw8IGV4cGVjdENhbmNlbCA8PCBzdXBwb3J0Q2xpZW50UGluOwogfQogCiB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgpAQCAtMTg4LDYgKzE4OSw4IEBAIE9wdGlvbmFsPE1vY2tXZWJBdXRoZW50aWNh
dGlvbkNvbmZpZ3VyYXRpb246OkhpZENvbmZpZ3VyYXRpb24+IE1vY2tXZWJBdXRoZW50aWNhCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQuZXhwZWN0Q2FuY2VsKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zdXBwb3J0Q2xpZW50UGluKSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRs
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0
aW9uLmlkbAppbmRleCA3ODUzODUxNDc2ZmNjZDYyMjg0YzM2YmYyNzk0MmE4YjE3YzVkZTEwLi5h
ZDEzOTM0OWFkMmZjMTVjYWQ4M2Y2YjJkMTZiMDgzODYwM2RlZTM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbi5pZGwKQEAgLTkyLDYgKzkyLDcgQEAKICAgICBib29sZWFuIGNvbnRpbnVlQWZ0ZXJF
cnJvckRhdGEgPSBmYWxzZTsKICAgICBib29sZWFuIGNhbkRvd25ncmFkZSA9IGZhbHNlOwogICAg
IGJvb2xlYW4gZXhwZWN0Q2FuY2VsID0gZmFsc2U7CisgICAgYm9vbGVhbiBzdXBwb3J0Q2xpZW50
UGluID0gZmFsc2U7CiB9OwogCiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAppbmRleCAyMjZi
ODFlODNjMDhjYzU3NGMwNTkyN2IxY2NiOTFmNjJiMDk5NmNiLi4wMDYyZjlhN2Q5NzQ3MjY2Zjdm
NjIyMWY0ZTc5ZDU4NTdmZmMyMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTsKQEAgLTUwLDYgKzUxLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVQYW5lbChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uU3RhdHVz
KSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc1BhbmVsKFdlYktpdDo6V2ViQXV0
aGVudGljYXRpb25SZXN1bHQpIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBc3Nl
cnRpb25SZXNwb25zZXMoY29uc3QgSGFzaFNldDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlPj4mIHJlc3BvbnNlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBjb25zdCB7IGNvbXBsZXRpb25IYW5kbGVyKCpyZXNwb25zZXMuYmVnaW4o
KSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBpbih1aW50NjRfdCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBXVEY6OlN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25z
dCB7IGNvbXBsZXRpb25IYW5kbGVyKGVtcHR5U3RyaW5nKCkpOyB9CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaAppbmRleCBhZmFlZGQxNzcwNjAxMzk0ODA3MzQxYjQw
OWQ0N2UyZDBjY2YzODZiLi4zMmZjN2QyZDdmZmNkOTMxNmZhNjYzYzYwYTI1ZmI2ZGMxYmExMTA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRvci5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICAgICAg
dmlydHVhbCB2b2lkIGRvd25ncmFkZShBdXRoZW50aWNhdG9yKiBpZCwgUmVmPEF1dGhlbnRpY2F0
b3I+JiYgZG93bmdyYWRlZEF1dGhlbnRpY2F0b3IpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lk
IGF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzKSA9IDA7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBc3NlcnRpb25SZXNwb25zZXMoY29uc3QgSGFz
aFNldDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0
aW9uUmVzcG9uc2U+Jik+JiYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQaW4o
dWludDY0X3QgcmV0cmllcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXVEY6OlN0cmlu
ZyYpPiYmKSA9IDA7CiAgICAgfTsKIAogICAgIHZpcnR1YWwgfkF1dGhlbnRpY2F0b3IoKSA9IGRl
ZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKaW5kZXggZWI0OWRiMGQ4
MTgyZjJjYzI2Y2RkYzRiYjllNzg4YjIyMGY1MjQ3Yy4uOWNkNDU0N2M4OGFlODQ2ZTlmNTdmODlh
NThjM2ZjNWJlYzJiNjE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcApA
QCAtMjc5LDYgKzI3OSwxMiBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpzZWxlY3RBc3Nl
cnRpb25SZXNwb25zZXMoY29uc3QgSGFzaFNldDxSZWY8V2ViQ29yZTo6QQogICAgICAgICBwYW5l
bC0+Y2xpZW50KCkuc2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2VzKHJlc3BvbnNlcywgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXF1
ZXN0UGluKHVpbnQ2NF90IHJldHJpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV1RG
OjpTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoYXV0byogcGFuZWwg
PSBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYW5lbC5nZXQoKSkKKyAgICAgICAgcGFuZWwtPmNsaWVu
dCgpLnJlcXVlc3RQaW4ocmV0cmllcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQor
CiBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+IEF1dGhlbnRpY2F0b3JN
YW5hZ2VyOjpjcmVhdGVTZXJ2aWNlKEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQgdHJhbnNwb3J0LCBB
dXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2ZXImIG9ic2VydmVyKSBjb25zdAog
ewogICAgIHJldHVybiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6Y3JlYXRlKHRyYW5z
cG9ydCwgb2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKaW5kZXggOTdi
YTJjOTBlZjZmYzZlMGEwMWYxNmRmZTY0MjM0N2IyMDIxMGE2My4uOWZkNTIzZDQwNzFmMTc4NzIy
YzRmZjFmOWQ1MjY0NzExODY4NzlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5o
CkBAIC04Miw2ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkb3duZ3JhZGUoQXV0aGVudGlj
YXRvciogaWQsIFJlZjxBdXRoZW50aWNhdG9yPiYmIGRvd25ncmFkZWRBdXRoZW50aWNhdG9yKSBm
aW5hbDsKICAgICB2b2lkIGF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1dGhlbnRpY2F0
aW9uU3RhdHVzKSBmaW5hbDsKICAgICB2b2lkIHNlbGVjdEFzc2VydGlvblJlc3BvbnNlcyhjb25z
dCBIYXNoU2V0PFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+PiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JB
c3NlcnRpb25SZXNwb25zZT4mKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0UGluKHVpbnQ2
NF90IHJldHJpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV1RGOjpTdHJpbmcmKT4m
JikgZmluYWw7CiAKICAgICAvLyBPdmVycmlkZW4gYnkgTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2Vy
LgogICAgIHZpcnR1YWwgVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlPiBj
cmVhdGVTZXJ2aWNlKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQsIEF1dGhlbnRpY2F0
b3JUcmFuc3BvcnRTZXJ2aWNlOjpPYnNlcnZlciYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRp
b25QYW5lbENsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCmluZGV4IDNiMGM4OTE2ZGMw
OTIxMDc1ODRkZDcwYmEwMTAyNDkwNTc0NzRjYzYuLjE0OTk0NjZhMWNlY2E4ZTlmZDkwZjljZjYx
NDI1NjU5MDJhODhmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50
aWNhdGlvblBhbmVsQ2xpZW50LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICAvLyBB
UEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQKICAgICB2b2lkIHVwZGF0ZVBhbmVsKFdl
YkF1dGhlbnRpY2F0aW9uU3RhdHVzKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGRpc21pc3NQYW5l
bChXZWJBdXRoZW50aWNhdGlvblJlc3VsdCkgY29uc3QgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0
UGluKHVpbnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdURjo6U3RyaW5nJik+
JiYpIGNvbnN0IGZpbmFsOwogCiAgICAgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqbV9wYW5l
bDsKICAgICBXZWFrT2JqQ1B0cjxpZCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRl
PiA+IG1fZGVsZWdhdGU7CkBAIC01Niw2ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RydWN0IHsK
ICAgICAgICAgYm9vbCBwYW5lbFVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwgOiAxOwogICAg
ICAgICBib29sIHBhbmVsRGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0IDog
MTsKKyAgICAgICAgYm9vbCBwYW5lbFJlcXVlc3RQaW5XaXRoUmVtYWluaW5nUmV0cmllc0NvbXBs
ZXRpb25IYW5kbGVyIDogMTsKICAgICB9IG1fZGVsZWdhdGVNZXRob2RzOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2Vi
QXV0aGVudGljYXRpb25QYW5lbENsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW0KaW5k
ZXggMzVlZjY1YmVlZjYxYmJlNWVhNTEzOWU4MzMwY2E3Mzk4NWZlNDEyYy4uN2YxNTdiZDk4NDY5
Y2Q2NjkxZmUxMDBmM2UzNWE0MTk3MzhmNWU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENs
aWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9D
b2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lm1tCkBAIC0yOCw4ICsyOCwxMCBAQAog
CiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAorI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxs
Q2hlY2tlci5oIgogI2ltcG9ydCAiV2ViQXV0aGVudGljYXRpb25GbGFncy5oIgogI2ltcG9ydCAi
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oIgorI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAj
aW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQwLDYgKzQy
LDcgQEAgV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6V2ViQXV0aGVudGljYXRpb25QYW5l
bENsaWVudChfV0tXZWJBdXRoZW50aWNhdGlvblAKIHsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5w
YW5lbFVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3RvcihwYW5lbDp1cGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsOildOwog
ICAgIG1fZGVsZWdhdGVNZXRob2RzLnBhbmVsRGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxX
aXRoUmVzdWx0ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocGFuZWw6
ZGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0OildOworICAgIG1fZGVsZWdh
dGVNZXRob2RzLnBhbmVsUmVxdWVzdFBpbldpdGhSZW1haW5pbmdSZXRyaWVzQ29tcGxldGlvbkhh
bmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihwYW5lbDpyZXF1
ZXN0UElOV2l0aFJlbWFpbmluZ1JldHJpZXM6Y29tcGxldGlvbkhhbmRsZXI6KV07CiB9CiAKIFJl
dGFpblB0cjxpZCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiA+IFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxDbGllbnQ6OmRlbGVnYXRlKCkKQEAgLTEwNyw2ICsxMTAsMzcgQEAgdm9p
ZCBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OjpkaXNtaXNzUGFuZWwoV2ViQXV0aGVudGlj
YXRpb25SZXN1bHQgcmVzdWx0KQogICAgIH0pOwogfQogCit2b2lkIFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxDbGllbnQ6OnJlcXVlc3RQaW4odWludDY0X3QgcmV0cmllcywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBXVEY6OlN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAor
eworICAgIC8vIENhbGwgZGVsZWdhdGVzIGluIHRoZSBuZXh0IHJ1biBsb29wIHRvIHByZXZlbnQg
Y2xpZW50cycgcmVlbnRyYW5jZSB0aGF0IHdvdWxkIHBvdGVudGlhbGx5IG1vZGlmeSB0aGUgc3Rh
dGUKKyAgICAvLyBvZiB0aGUgY3VycmVudCBydW4gbG9vcCBpbiB1bmV4cGVjdGVkIHdheXMuCisg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KSwgdGhpcywgcmV0cmllcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGVtcHR5U3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFtX2RlbGVnYXRlTWV0aG9kcy5wYW5lbFJlcXVl
c3RQaW5XaXRoUmVtYWluaW5nUmV0cmllc0NvbXBsZXRpb25IYW5kbGVyKSB7CisgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihlbXB0eVN0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIGF1dG8gZGVsZWdhdGUgPSBtX2RlbGVnYXRlLmdldCgpOwor
ICAgICAgICBpZiAoIWRlbGVnYXRlKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihl
bXB0eVN0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxl
Z2F0ZS5nZXQoKSwgQHNlbGVjdG9yKHBhbmVsOnJlcXVlc3RQSU5XaXRoUmVtYWluaW5nUmV0cmll
czpjb21wbGV0aW9uSGFuZGxlcjopKTsKKyAgICAgICAgW2RlbGVnYXRlIHBhbmVsOm1fcGFuZWwg
cmVxdWVzdFBJTldpdGhSZW1haW5pbmdSZXRyaWVzOnJldHJpZXMgY29tcGxldGlvbkhhbmRsZXI6
bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0oTlNTdHJpbmcgKnBpbikgbXV0YWJsZSB7
CisgICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVk
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgY2hlY2tlci0+ZGlkQ2Fs
bENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihwaW4p
OworICAgICAgICB9KS5nZXQoKV07CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrSGlk
Q29ubmVjdGlvbi5jcHAKaW5kZXggOTBjMWJiMDA1ZTViOThkN2Q4NDhlODE0YzgyMTJkODFhOTBm
ZTA3MC4uNDM5NTc2NzQxMzMwODY3YTc1OTI5NTJhM2ZmMWViYmYwYTk1NzFiNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrSGlk
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vTW9jay9Nb2NrSGlkQ29ubmVjdGlvbi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0NCT1JSZWFkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpZG9Db25zdGFudHMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Bpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXV0aGVudGlj
YXRpb25Db25zdGFudHMuaD4KICNpbmNsdWRlIDx3dGYvQmxvY2tQdHIuaD4KICNpbmNsdWRlIDx3
dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaD4KQEAgLTIyMywxMCArMjI0LDE4IEBA
IHZvaWQgTW9ja0hpZENvbm5lY3Rpb246OmZlZWRSZXBvcnRzKCkKIAogICAgIE9wdGlvbmFsPEZp
ZG9IaWRNZXNzYWdlPiBtZXNzYWdlOwogICAgIGlmIChtX3N0YWdlID09IE1vY2s6OkhpZFN0YWdl
OjpJbmZvICYmIG1fc3ViU3RhZ2UgPT0gTW9jazo6SGlkU3ViU3RhZ2U6Ok1zZykgeworICAgICAg
ICAvLyBGSVhNRSgyMDU4MzkpOgogICAgICAgICBWZWN0b3I8dWludDhfdD4gaW5mb0RhdGE7CiAg
ICAgICAgIGlmIChtX2NvbmZpZ3VyYXRpb24uaGlkLT5jYW5Eb3duZ3JhZGUpCiAgICAgICAgICAg
ICBpbmZvRGF0YSA9IGVuY29kZUFzQ0JPUihBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKHsg
UHJvdG9jb2xWZXJzaW9uOjprQ3RhcCwgUHJvdG9jb2xWZXJzaW9uOjprVTJmIH0sIFZlY3Rvcjx1
aW50OF90PihhYWd1aWRMZW5ndGgsIDB1KSkpOwotICAgICAgICBlbHNlCisgICAgICAgIGVsc2Ug
aWYgKG1fY29uZmlndXJhdGlvbi5oaWQtPnN1cHBvcnRDbGllbnRQaW4pIHsKKyAgICAgICAgICAg
IEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UgaW5mb1Jlc3BvbnNlKHsgUHJvdG9jb2xWZXJz
aW9uOjprQ3RhcCB9LCBWZWN0b3I8dWludDhfdD4oYWFndWlkTGVuZ3RoLCAwdSkpOworICAgICAg
ICAgICAgaW5mb1Jlc3BvbnNlLnNldFBpblByb3RvY29scyh7IHBpbjo6a1Byb3RvY29sVmVyc2lv
biB9KTsKKyAgICAgICAgICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIG9wdGlvbnM7
CisgICAgICAgICAgICBvcHRpb25zLnNldENsaWVudFBpbkF2YWlsYWJpbGl0eShBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5k
UGluU2V0KTsKKyAgICAgICAgICAgIGluZm9SZXNwb25zZS5zZXRPcHRpb25zKFdURk1vdmUob3B0
aW9ucykpOworICAgICAgICAgICAgaW5mb0RhdGEgPSBlbmNvZGVBc0NCT1IoaW5mb1Jlc3BvbnNl
KTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBpbmZvRGF0YSA9IGVuY29kZUFzQ0JPUihB
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKHsgUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCB9LCBW
ZWN0b3I8dWludDhfdD4oYWFndWlkTGVuZ3RoLCAwdSkpKTsKICAgICAgICAgaW5mb0RhdGEuaW5z
ZXJ0KDAsIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtTdWNj
ZXNzKSk7IC8vIFByZXBlbmQgc3RhdHVzIGNvZGUuCiAgICAgICAgIGlmIChzdGFnZXNNYXRjaCgp
ICYmIG1fY29uZmlndXJhdGlvbi5oaWQtPmVycm9yID09IE1vY2s6OkhpZEVycm9yOjpXcm9uZ0No
YW5uZWxJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKaW5kZXggZTcz
OTk1ZTQwYTMzYmQ3MjQxZTBlZjk5MWE0YTIwMjk2NGYzMDU5Ni4uM2MzZjk2MjE4YWJiZTVmNmMx
MjIxMDk5NzQ5ZGU5NzRjZWVhODE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGlj
YXRvci5jcHAKQEAgLTMxLDkgKzMxLDEzIEBACiAjaW5jbHVkZSAiQ3RhcERyaXZlci5oIgogI2lu
Y2x1ZGUgIkN0YXBIaWREcml2ZXIuaCIKICNpbmNsdWRlICJVMmZBdXRoZW50aWNhdG9yLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9DcnlwdG9LZXlBRVMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NyeXB0
b0tleUVDLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DcnlwdG9LZXlITUFDLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EZXZp
Y2VSZXNwb25zZUNvbnZlcnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uRGF0YS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUGluLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VMmZDb21tYW5k
Q29uc3RydWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgpAQCAtNTMsNyArNTcsMTEgQEAgdm9pZCBD
dGFwQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwoKQogICAgIEFTU0VSVCghbV9pc0Rvd25n
cmFkZWQpOwogICAgIGlmIChwcm9jZXNzR29vZ2xlTGVnYWN5QXBwSWRTdXBwb3J0RXh0ZW5zaW9u
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBhdXRvIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3JlZGVu
aXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBXVEY6OmdldDxQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpLCBtX2luZm8u
b3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSk7CisgICAgVmVjdG9yPHVp
bnQ4X3Q+IGNib3JDbWQ7CisgICAgaWYgKG1faW5mby5vcHRpb25zKCkuY2xpZW50UGluQXZhaWxh
YmlsaXR5KCkgPT0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWls
YWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNldCkKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZU1h
a2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIFdURjo6Z2V0PFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucyks
IG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpLCBQaW5QYXJh
bWV0ZXJzIHsgcGluOjprUHJvdG9jb2xWZXJzaW9uLCBtX3BpbkF1dGggfSk7CisgICAgZWxzZQor
ICAgICAgICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVl
c3REYXRhKCkuaGFzaCwgV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKSwgbV9pbmZvLm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5KCkpOwogICAgIGRyaXZlcigpLnRyYW5zYWN0KFdURk1vdmUoY2JvckNt
ZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0
YSkgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBpZiAoIXdl
YWtUaGlzKQpAQCAtNjIsMTMgKzcwLDE2IEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6Om1ha2VD
cmVkZW50aWFsKCkKICAgICB9KTsKIH0KIAotdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGlu
dWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWludDhfdD4mJiBk
YXRhKSBjb25zdAordm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlh
bEFmdGVyUmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWludDhfdD4mJiBkYXRhKQogewogICAgIGF1
dG8gcmVzcG9uc2UgPSByZWFkQ1RBUE1ha2VDcmVkZW50aWFsUmVzcG9uc2UoZGF0YSwgV1RGOjpn
ZXQ8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRp
b25zKS5hdHRlc3RhdGlvbik7CiAgICAgaWYgKCFyZXNwb25zZSkgewogICAgICAgICBhdXRvIGVy
cm9yID0gZ2V0UmVzcG9uc2VDb2RlKGRhdGEpOwogICAgICAgICBpZiAoZXJyb3IgPT0gQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyQ3JlZGVudGlhbEV4Y2x1ZGVkKQogICAgICAgICAg
ICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiQXQg
bGVhc3Qgb25lIGNyZWRlbnRpYWwgbWF0Y2hlcyBhbiBlbnRyeSBvZiB0aGUgZXhjbHVkZUNyZWRl
bnRpYWxzIGxpc3QgaW4gdGhlIGF1dGhlbnRpY2F0b3IuIl9zIH0pOworICAgICAgICAvLyBGSVhN
RSgyMDU4MzcpCisgICAgICAgIGVsc2UgaWYgKGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyclBpbkludmFsaWQgfHwgZXJyb3IgPT0gQ3RhcERldmljZVJlc3BvbnNlQ29k
ZTo6a0N0YXAyRXJyUGluQXV0aEludmFsaWQpCisgICAgICAgICAgICBnZXRSZXRyaWVzKCk7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBV
bmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVycm9yIGNv
ZGU6ICIsIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGVycm9yKSkgfSk7CiAgICAgICAgIHJldHVybjsK
QEAgLTc5LDcgKzkwLDExIEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNy
ZWRlbnRpYWxBZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4CiB2b2lkIEN0YXBBdXRo
ZW50aWNhdG9yOjpnZXRBc3NlcnRpb24oKQogewogICAgIEFTU0VSVCghbV9pc0Rvd25ncmFkZWQp
OwotICAgIGF1dG8gY2JvckNtZCA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IocmVx
dWVzdERhdGEoKS5oYXNoLCBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucyksIG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNh
dGlvbkF2YWlsYWJpbGl0eSgpKTsKKyAgICBWZWN0b3I8dWludDhfdD4gY2JvckNtZDsKKyAgICBp
ZiAobV9pbmZvLm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSA9PSBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5k
UGluU2V0KQorICAgICAgICBjYm9yQ21kID0gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JP
UihyZXF1ZXN0RGF0YSgpLmhhc2gsIFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKSwgbV9pbmZvLm9wdGlvbnMoKS51c2VyVmVy
aWZpY2F0aW9uQXZhaWxhYmlsaXR5KCksIFBpblBhcmFtZXRlcnMgeyBwaW46OmtQcm90b2NvbFZl
cnNpb24sIG1fcGluQXV0aCB9KTsKKyAgICBlbHNlCisgICAgICAgIGNib3JDbWQgPSBlbmNvZGVH
ZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgV1RGOjpnZXQ8UHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpLCBt
X2luZm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSk7CiAgICAgZHJp
dmVyKCkudHJhbnNhY3QoV1RGTW92ZShjYm9yQ21kKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpXShWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CiAgICAgICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCkBAIC05Myw2ICsxMDgsMTEgQEAg
dm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclJlc3BvbnNl
UmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3QKICAgICBhdXRvIHJlc3BvbnNlID0gcmVhZENUQVBHZXRB
c3NlcnRpb25SZXNwb25zZShkYXRhKTsKICAgICBpZiAoIXJlc3BvbnNlKSB7CiAgICAgICAgIGF1
dG8gZXJyb3IgPSBnZXRSZXNwb25zZUNvZGUoZGF0YSk7CisgICAgICAgIC8vIEZJWE1FKDIwNTgz
NykKKyAgICAgICAgaWYgKGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVy
clBpbkludmFsaWQgfHwgZXJyb3IgPT0gQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJy
UGluQXV0aEludmFsaWQpIHsKKyAgICAgICAgICAgIGdldFJldHJpZXMoKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQogICAgICAgICBpZiAoZXJyb3IgIT0gQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAyRXJySW52YWxpZENCT1IgJiYgdHJ5RG93bmdyYWRlKCkpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIGlmIChlcnJvciA9PSBDdGFwRGV2aWNlUmVzcG9uc2VDb2Rl
OjprQ3RhcDJFcnJOb0NyZWRlbnRpYWxzICYmIG9ic2VydmVyKCkpCkBAIC0xNTIsNiArMTcyLDkz
IEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0TmV4dEFzc2VydGlvbkFmdGVy
UmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWluCiAgICAgfSk7CiB9CiAKK3ZvaWQgQ3RhcEF1dGhl
bnRpY2F0b3I6OmdldFJldHJpZXMoKQoreworICAgIGF1dG8gY2JvckNtZCA9IGVuY29kZUFzQ0JP
UihwaW46OlJldHJpZXNSZXF1ZXN0IHsgfSk7CisgICAgZHJpdmVyKCkudHJhbnNhY3QoV1RGTW92
ZShjYm9yQ21kKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShWZWN0b3I8dWludDhf
dD4mJiBkYXRhKSB7CisgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgICAg
IGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5j
b250aW51ZUdldEtleUFncmVlbWVudEFmdGVyR2V0UmV0cmllcyhXVEZNb3ZlKGRhdGEpKTsKKyAg
ICB9KTsKK30KKwordm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRLZXlBZ3JlZW1l
bnRBZnRlckdldFJldHJpZXMoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkKK3sKKyAgICBhdXRvIHJl
dHJpZXMgPSBwaW46OlJldHJpZXNSZXNwb25zZTo6cGFyc2UoZGF0YSk7CisgICAgaWYgKCFyZXRy
aWVzKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBnZXRSZXNwb25zZUNvZGUoZGF0YSk7CisgICAg
ICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRhdGEgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJp
bmcoIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVycm9yIGNvZGU6ICIsIHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KGVycm9yKSkgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNi
b3JDbWQgPSBlbmNvZGVBc0NCT1IocGluOjpLZXlBZ3JlZW1lbnRSZXF1ZXN0IHsgfSk7CisgICAg
ZHJpdmVyKCkudHJhbnNhY3QoV1RGTW92ZShjYm9yQ21kKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpLCByZXRyaWVzID0gcmV0cmllcy0+cmV0cmllc10gKFZlY3Rvcjx1aW50OF90PiYm
IGRhdGEpIHsKKyAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAgICAgaWYg
KCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgd2Vha1RoaXMtPmNvbnRp
bnVlUmVxdWVzdFBpbkFmdGVyR2V0S2V5QWdyZWVtZW50KFdURk1vdmUoZGF0YSksIHJldHJpZXMp
OworICAgIH0pOworfQorCit2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZVJlcXVlc3RQ
aW5BZnRlckdldEtleUFncmVlbWVudChWZWN0b3I8dWludDhfdD4mJiBkYXRhLCB1aW50NjRfdCBy
ZXRyaWVzKQoreworICAgIGF1dG8ga2V5QWdyZWVtZW50ID0gcGluOjpLZXlBZ3JlZW1lbnRSZXNw
b25zZTo6cGFyc2UoZGF0YSk7CisgICAgaWYgKCFrZXlBZ3JlZW1lbnQpIHsKKyAgICAgICAgYXV0
byBlcnJvciA9IGdldFJlc3BvbnNlQ29kZShkYXRhKTsKKyAgICAgICAgcmVjZWl2ZVJlc3BvbmQo
RXhjZXB0aW9uRGF0YSB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiVW5rbm93biBpbnRlcm5h
bCBlcnJvci4gRXJyb3IgY29kZTogIiwgc3RhdGljX2Nhc3Q8dWludDhfdD4oZXJyb3IpKSB9KTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChhdXRvKiBvYnNlcnZlciA9IHRoaXMt
Pm9ic2VydmVyKCkpIHsKKyAgICAgICAgb2JzZXJ2ZXItPnJlcXVlc3RQaW4ocmV0cmllcywgW3dl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBrZXlBZ3JlZW1lbnQgPSBXVEZNb3ZlKCprZXlB
Z3JlZW1lbnQpXSAoY29uc3QgU3RyaW5nJiBwaW4pIHsKKyAgICAgICAgICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5jb250aW51ZUdldFBpblRva2VuQWZ0
ZXJSZXF1ZXN0UGluKHBpbiwga2V5QWdyZWVtZW50LnBlZXJLZXkpOworICAgICAgICB9KTsKKyAg
ICB9Cit9CisKK3ZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0UGluVG9rZW5BZnRl
clJlcXVlc3RQaW4oY29uc3QgU3RyaW5nJiBwaW4sIGNvbnN0IENyeXB0b0tleUVDJiBwZWVyS2V5
KQoreworICAgIGF1dG8gcGluVXRmOCA9IHBpbjo6dmFsaWRhdGVBbmRDb252ZXJ0VG9VVEY4KHBp
bik7CisgICAgaWYgKCFwaW5VdGY4KSB7CisgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlv
bkRhdGEgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIlBpbiBpcyBub3QgdmFsaWQ6ICIsIHBp
bikgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXV0byB0b2tlblJlcXVlc3QgPSBw
aW46OlRva2VuUmVxdWVzdDo6dHJ5Q3JlYXRlKCpwaW5VdGY4LCBwZWVyS2V5KTsKKyAgICBpZiAo
IXRva2VuUmVxdWVzdCkgeworICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsg
VW5rbm93bkVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhIFRva2VuUmVxdWVzdC4iX3MgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNib3JDbWQgPSBlbmNvZGVBc0NCT1IoKnRv
a2VuUmVxdWVzdCk7CisgICAgZHJpdmVyKCkudHJhbnNhY3QoV1RGTW92ZShjYm9yQ21kKSwgW3dl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0b2tlblJlcXVlc3QgPSBXVEZNb3ZlKCp0b2tl
blJlcXVlc3QpXSAoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgeworICAgICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB3ZWFrVGhpcy0+Y29udGludWVSZXF1ZXN0QWZ0ZXJHZXRQaW5Ub2tlbihX
VEZNb3ZlKGRhdGEpLCB0b2tlblJlcXVlc3QpOworICAgIH0pOworfQorCit2b2lkIEN0YXBBdXRo
ZW50aWNhdG9yOjpjb250aW51ZVJlcXVlc3RBZnRlckdldFBpblRva2VuKFZlY3Rvcjx1aW50OF90
PiYmIGRhdGEsIGNvbnN0IGZpZG86OnBpbjo6VG9rZW5SZXF1ZXN0JiB0b2tlblJlcXVlc3QpCit7
CisgICAgYXV0byB0b2tlbiA9IHBpbjo6VG9rZW5SZXNwb25zZTo6cGFyc2UodG9rZW5SZXF1ZXN0
LnNoYXJlZEtleSgpLCBkYXRhKTsKKyAgICBpZiAoIXRva2VuKSB7CisgICAgICAgIGF1dG8gZXJy
b3IgPSBnZXRSZXNwb25zZUNvZGUoZGF0YSk7CisgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2Vw
dGlvbkRhdGEgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIlVua25vd24gaW50ZXJuYWwgZXJy
b3IuIEVycm9yIGNvZGU6ICIsIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGVycm9yKSkgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BpbkF1dGggPSB0b2tlbi0+cGluQXV0aChyZXF1
ZXN0RGF0YSgpLmhhc2gpOworICAgIFdURjo6c3dpdGNoT24ocmVxdWVzdERhdGEoKS5vcHRpb25z
LCBbJl0oY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucykg
eworICAgICAgICBtYWtlQ3JlZGVudGlhbCgpOworICAgIH0sIFsmXShjb25zdCBQdWJsaWNLZXlD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMpIHsKKyAgICAgICAgZ2V0QXNzZXJ0aW9u
KCk7CisgICAgfSk7Cit9CisKIGJvb2wgQ3RhcEF1dGhlbnRpY2F0b3I6OnRyeURvd25ncmFkZSgp
CiB7CiAgICAgaWYgKG1faW5mby52ZXJzaW9ucygpLmZpbmQoUHJvdG9jb2xWZXJzaW9uOjprVTJm
KSA9PSBtX2luZm8udmVyc2lvbnMoKS5lbmQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRp
Y2F0b3IuaAppbmRleCA1NGZmNDk0MWE2ODAzMTQxYjE4MDE2NGJiMmViMjBkOTNkMDc0M2NmLi4y
NWZlOTAzMmY4ZTQwNGViZjdiNWE5MTdiZGQ4MmRkZmQ0N2JjYjlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNh
dG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlk
by9DdGFwQXV0aGVudGljYXRvci5oCkBAIC0zMCw2ICszMCwxNiBAQAogI2luY2x1ZGUgIkZpZG9B
dXRoZW50aWNhdG9yLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdG9yR2V0SW5mb1Jl
c3BvbnNlLmg+CiAKK25hbWVzcGFjZSBmaWRvIHsKK25hbWVzcGFjZSBwaW4geworY2xhc3MgVG9r
ZW5SZXF1ZXN0OworfQorfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDcnlwdG9LZXlF
QzsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEN0YXBEcml2ZXI7CkBAIC00NSwx
MSArNTUsMTcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBDdGFwQXV0aGVudGljYXRvcihzdGQ6
OnVuaXF1ZV9wdHI8Q3RhcERyaXZlcj4mJiwgZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZSYmKTsKIAogICAgIHZvaWQgbWFrZUNyZWRlbnRpYWwoKSBmaW5hbDsKLSAgICB2b2lkIGNv
bnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+
JiYpIGNvbnN0OworICAgIHZvaWQgY29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VS
ZWNlaXZlZChWZWN0b3I8dWludDhfdD4mJik7CiAgICAgdm9pZCBnZXRBc3NlcnRpb24oKSBmaW5h
bDsKICAgICB2b2lkIGNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFZl
Y3Rvcjx1aW50OF90PiYmKTsKICAgICB2b2lkIGNvbnRpbnVlR2V0TmV4dEFzc2VydGlvbkFmdGVy
UmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWludDhfdD4mJik7CiAKKyAgICB2b2lkIGdldFJldHJp
ZXMoKTsKKyAgICB2b2lkIGNvbnRpbnVlR2V0S2V5QWdyZWVtZW50QWZ0ZXJHZXRSZXRyaWVzKFZl
Y3Rvcjx1aW50OF90PiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlUmVxdWVzdFBpbkFmdGVyR2V0S2V5
QWdyZWVtZW50KFZlY3Rvcjx1aW50OF90PiYmLCB1aW50NjRfdCByZXRyaWVzKTsKKyAgICB2b2lk
IGNvbnRpbnVlR2V0UGluVG9rZW5BZnRlclJlcXVlc3RQaW4oY29uc3QgU3RyaW5nJiBwaW4sIGNv
bnN0IENyeXB0b0tleUVDJik7CisgICAgdm9pZCBjb250aW51ZVJlcXVlc3RBZnRlckdldFBpblRv
a2VuKFZlY3Rvcjx1aW50OF90PiYmLCBjb25zdCBmaWRvOjpwaW46OlRva2VuUmVxdWVzdCYpOwor
CiAgICAgYm9vbCB0cnlEb3duZ3JhZGUoKTsKICAgICBib29sIHByb2Nlc3NHb29nbGVMZWdhY3lB
cHBJZFN1cHBvcnRFeHRlbnNpb24oKTsKIApAQCAtNTcsNiArNzMsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9pc0Rvd25ncmFkZWQgeyBmYWxzZSB9OwogICAgIHNpemVfdCBtX3JlbWFpbmluZ0Fz
c2VydGlvblJlc3BvbnNlcyB7IDAgfTsKICAgICBIYXNoU2V0PFJlZjxXZWJDb3JlOjpBdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+PiBtX2Fzc2VydGlvblJlc3BvbnNlczsKKyAgICBWZWN0
b3I8dWludDhfdD4gbV9waW5BdXRoOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2I0NTJlMjAw
NzkwNmIwNTYxYzQ0MGE0ZTBlYjllODFmMmEzNWU4ZC4uN2IwMjI5ZDRmMTVjNDk1NDEyM2FiOGNl
NmRjMGJkYThkYmRhYzViNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTAxLTA2ICBKaWV3ZW4gVGFuICA8amll
d2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBTdXBwb3J0IENUQVAgQ2xp
ZW50IFBpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkxNTE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjU1ODU1OD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0N0YXBQaW5UZXN0LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERh
dGEuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICgtW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBh
bmVsRGVsZWdhdGUgcGFuZWw6cmVxdWVzdFBJTldpdGhSZW1haW5pbmdSZXRyaWVzOmNvbXBsZXRp
b25IYW5kbGVyOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi1oaWQtcGluLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGlu
LWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1oaWQtcGluLWdldC1waW4tdG9rZW4tZXJyb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRtbDogQWRkZWQuCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWhpZC1waW4uaHRtbDogQWRkZWQuCisKIDIwMjAtMDEtMTAgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXggZm9y
IGJ1aWxkcyB3aXRob3V0IGxpYndlYnJ0YydzIEJvcmluZ1NTTC4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNDcwOTFjM2RjMGQyOTNjMDM5NjNiNzc5YjFkM2U3MzEzOTg5MjllOS4uNWE4NDg1
ODkxNGQ4NTBkNGE1Y2NjMzYyYjJlMmRkYmZkYmE4NDUzNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTMyNyw2ICszMjcsMTAgQEAKIAkJNTVBODE3RkYyMTgxMDIxQTAwMDRBMzlBIC8qIDEw
MHgxMDAtcmVkLnRnYSBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NUE4MTdGRTIxODEwMURGMDAwNEEzOUEgLyogMTAweDEwMC1yZWQudGdhICov
OyB9OwogCQk1NUE4MTgwMDIxODEwMjIxMDAwNEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBODE3
RkQyMTgxMDFERjAwMDRBMzlBIC8qIDQwMHg0MDAtZ3JlZW4ucG5nICovOyB9OwogCQk1NUY5RDJF
NTIyMDUwMzE4MDBBOUFCMzggLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUY5RDJFNDIyMDUw
MzE4MDBBOUFCMzggLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gKi87IH07CisJ
CTU3MEQyNkY0MjNDM0NBNkEwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEMjZGMzIzQzNDQTU1
MDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdl
dC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwgKi87IH07CisJCTU3MEQyNkY2MjNDM0QzMzAwMEQ1
Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4uaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBE
MjZGNTIzQzNEMzI3MDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1oaWQtcGluLmh0bWwgKi87IH07CisJCTU3MEQyNkZBMjNDM0YyNTEwMEQ1Q0Y2NyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJv
ci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3MEQyNkY5MjNDM0YyNDUwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5odG1sICovOyB9OworCQk1NzBE
MjZGQzIzQzNGODcwMDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
aGlkLXBpbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3MEQyNkZCMjNDM0Y4NjUwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24t
Z2V0LWFzc2VydGlvbi1oaWQtcGluLmh0bWwgKi87IH07CiAJCTU3MTRFQ0I5MUNBOEI1QjAwMDA1
MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0I4MUNBOEI1ODgwMDA1
MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sICovOyB9OwogCQk1NzE0RUNC
QjFDQThCRkU0MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
MTRFQ0JBMUNBOEJGRDEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1l
Lmh0bWwgKi87IH07CiAJCTU3MTRFQ0JEMUNBOEMyMkEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVl
c3RPcmlnaW5hbFVSTDIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1
ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi87IH07CkBAIC0zNDMsNiArMzQ3LDcgQEAKIAkJNTczMjU1
QTcyMjEzOUJDNzAwMzk2QUU4IC8qIGxvYWQtd2ViLWFyY2hpdmUtMi5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzI1NUEzMjIxMzlC
OTAwMDM5NkFFOCAvKiBsb2FkLXdlYi1hcmNoaXZlLTIuaHRtbCAqLzsgfTsKIAkJNTc0RjU1RDIy
MDRENDdGMDAwMjk0OEM2IC8qIFNlY3VyaXR5LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NEY1NUQwMjA0RDQ3MUMwMDI5NDhDNiAv
KiBTZWN1cml0eS5mcmFtZXdvcmsgKi87IH07CiAJCTU3NTg1OTdGMjNBMjUyN0EwMEM3NDU3MiAv
KiBDdGFwUGluVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzU4NTk3RTIzQTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3QuY3BwICovOyB9
OworCQk1NzU4NTk4NDIzQzNDM0E0MDBDNzQ1NzIgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2Ut
Y3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1ODU5ODMyM0MzQzM2MjAw
Qzc0NTcyIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQt
cmV0cmllcy1lcnJvci5odG1sICovOyB9OwogCQk1NzU5OUUyMTFGMDcxOTE5MDBBM0ZCOEMgLyog
SW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlFMjAxRjA3MTkxNzAw
QTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5t
bSAqLzsgfTsKIAkJNTc1OTlFMjcxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVy
ZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5RTI0MUYwNzE5MkMwMEEzRkI4
QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRl
MyAqLzsgfTsKIAkJNTc1OTlFMjgxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVy
ZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyNjFGMDcxOTJDMDBB
M0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNx
bGl0ZTMtc2htICovOyB9OwpAQCAtMTQ4MCwxMSArMTQ4NSwxNiBAQAogCQkJCUNENTc3Nzk5MjEx
Q0UwRTQwMDFCMzcxRSAvKiB3ZWItYXVkaW8tb25seS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCTU3NjYzREYzMjM1N0U0ODkwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc3
NDU0RDAyMzU5QjM3ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9u
LWhpZC1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3MEQy
NkZDMjNDM0Y4NzAwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1o
aWQtcGluLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc2NjNERUMyMzRGMUY5MzAw
RTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCTU3OTgzMzkyMjM2OEZBMzcwMDhFNTU0NyAvKiB3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtbXVsdGlwbGUtdGFncy5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTU3NjYzREVBMjM0RUE2NkQwMEU4NUUwOSAvKiB3ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQk1Nzc0NTREMjIzNTlCQjAxMDA4RTFFRDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
NTdDNjI0NTAyMzQ2QzIxRTAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTcwRDI2RjQyM0MzQ0E2QTAwRDVD
RjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5
LWFncmVlbWVudC1lcnJvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3MEQyNkZB
MjNDM0YyNTEwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhp
ZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJ
CTU3NTg1OTg0MjNDM0MzQTQwMEM3NDU3MiAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKKwkJCQk1NzBEMjZGNjIzQzNEMzMwMDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc5
ODMzN0UyMzYwMTlBNDAwOEU1NTQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtaGlkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUMyQjgxODYxQzg5MjU5RDAw
QTU1MjlGIC8qIHdlYmZvbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MTcxNEVC
NDFDRjhDNzhDMDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLTEuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKQEAgLTE4OTMsNiArMTkwMywxMCBAQAogCQk1NUE4MTdGRDIxODEw
MURGMDAwNEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAiNDAweDQwMC1ncmVl
bi5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUE4MTdGRTIxODEwMURGMDAw
NEEzOUEgLyogMTAweDEwMC1yZWQudGdhICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICIxMDB4MTAwLXJlZC50Z2EiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NUY5RDJFNDIyMDUwMzE4MDBBOUFCMzggLyogQWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFkZGl0aW9u
YWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
NzBEMjZGMzIzQzNDQTU1MDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50
LWVycm9yLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzBEMjZGNTIzQzNE
MzI3MDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGlu
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQt
cGluLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzBEMjZGOTIzQzNGMjQ1
MDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdl
dC1waW4tdG9rZW4tZXJyb3IuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWItYXV0aGVudGljYXRpb24tbWFr
ZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcwRDI2RkIyM0MzRjg2NTAwRDVDRjY3IC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzE0RUNCODFDQThCNTg4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0
T3JpZ2luYWxVUkwuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2FkUmVx
dWVzdE9yaWdpbmFsVVJMLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTRF
Q0JBMUNBOEJGRDEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVS
TEZyYW1lLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTRFQ0JDMUNBOEMy
MTgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkxMSw2ICsxOTI1LDcgQEAKIAkJNTc0RjU1RDAy
MDRENDcxQzAwMjk0OEM2IC8qIFNlY3VyaXR5LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0g
U2VjdXJpdHkuZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9TZWN1
cml0eS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQk1NzU4NTk3RDIzQTI1
MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3RhcFBpblRlc3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc1ODU5N0UyM0EyNTI3QTAwQzc0NTcy
IC8qIEN0YXBQaW5UZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN0YXBQaW5UZXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc1ODU5ODMyM0MzQzM2MjAwQzc0NTcyIC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1l
cnJvci5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwt
aGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTc1OTlFMjAxRjA3MTkxNzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9u
ZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc1OTlFMjMxRjA3MTkyQzAwQTNGQjhD
IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxp
dHlXcml0ZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU5OUUyNDFGMDcx
OTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmls
aXR5LnNxbGl0ZTMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBmaWxlOyBwYXRoID0gSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRp
YmlsaXR5LnNxbGl0ZTM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDg2LDExICsz
NTAxLDE2IEBACiAJCQkJQ0Q1Nzc3OTgyMTFDREU4RjAwMUIzNzFFIC8qIHdlYi1hdWRpby1vbmx5
Lmh0bWwgKi8sCiAJCQkJNTc2NjNERjIyMzU3RTQ1RDAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwuaHRtbCAqLywKIAkJCQk1Nzc0NTRDRjIzNTlC
MzM4MDA4RTFFRDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNy
ZWRlbnRpYWxzLmh0bWwgKi8sCisJCQkJNTcwRDI2RkIyM0MzRjg2NTAwRDVDRjY3IC8qIHdlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4uaHRtbCAqLywKIAkJCQk1NzY2M0RF
QjIzNEYxRjgwMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlk
Lmh0bWwgKi8sCiAJCQkJNTc5ODMzN0IyMzVFQjY1QzAwOEU1NTQ3IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1tdWx0aXBsZS10YWdzLmh0bWwgKi8sCiAJCQkJNTc2NjNE
RTkyMzRFQTYwQjAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5m
Yy5odG1sICovLAogCQkJCTU3NzQ1NEQxMjM1OUJBRDUwMDhFMUVENyAvKiB3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi11MmYtbm8tY3JlZGVudGlhbHMuaHRtbCAqLywKIAkJCQk1N0M2
MjQ0RjIzNDZDMUVDMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24u
aHRtbCAqLywKKwkJCQk1NzBEMjZGMzIzQzNDQTU1MDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwg
Ki8sCisJCQkJNTcwRDI2RjkyM0MzRjI0NTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1t
YWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWVycm9yLmh0bWwgKi8sCisJCQkJ
NTc1ODU5ODMyM0MzQzM2MjAwQzc0NTcyIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sICovLAorCQkJCTU3MEQyNkY1MjND
M0QzMjcwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1w
aW4uaHRtbCAqLywKIAkJCQk1Nzk4MzM3RDIzNjAxOTZEMDA4RTU1NDcgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQuaHRtbCAqLywKIAkJCQk1MTcxNEVCMjFDRjhDNzYx
MDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLTEuaHRtbCAqLywKIAkJCQk1MTcx
NEVCMzFDRjhDNzYxMDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLTIuaHRtbCAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUGlu
VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFBpblRlc3Qu
Y3BwCmluZGV4IGE2M2FhNjY5OTU5YjU1YmNkMTQ3ZDczMjVkM2VmZmE4NTVlNGU4NTcuLjM2NTI4
ZWE2OWM5NTVjYmQ3MWNjNDg4MDQwY2Y5YjU1ZTgzY2Y1OGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUGluVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBQaW5UZXN0LmNwcApAQCAtNDEsNyArNDEsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvUGluLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdXRoZW50
aWNhdGlvbkNvbnN0YW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXV0aGVudGljYXRpb25V
dGlscy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgorI2luY2x1ZGUgPHBhbC9jcnlw
dG8vQ3J5cHRvRGlnZXN0Lmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwpAQCAtOTgsNyArOTgsNyBAQCBURVNUKEN0YXBQaW5UZXN0LCBUZXN0
UmV0cmllc1Jlc3BvbnNlKQogICAgIC8vIFN1Y2Nlc3MgY2FzZXMKICAgICByZXN1bHQgPSBSZXRy
aWVzUmVzcG9uc2U6OnBhcnNlKGNvbnZlcnRCeXRlc1RvVmVjdG9yKFRlc3REYXRhOjprQ3RhcENs
aWVudFBpblJldHJpZXNSZXNwb25zZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcENsaWVudFBpblJl
dHJpZXNSZXNwb25zZSkpKTsKICAgICBFWFBFQ1RfVFJVRShyZXN1bHQpOwotICAgIEVYUEVDVF9F
UShyZXN1bHQtPnJldHJpZXMsIDgpOworICAgIEVYUEVDVF9FUShyZXN1bHQtPnJldHJpZXMsIDh1
KTsKIH0KIAogVEVTVChDdGFwUGluVGVzdCwgVGVzdEtleUFncmVlbWVudFJlcXVlc3QpCkBAIC0x
MjUsNiArMTI1LDExIEBAIFRFU1QoQ3RhcFBpblRlc3QsIFRlc3RLZXlBZ3JlZW1lbnRSZXNwb25z
ZSkKICAgICByZXN1bHQgPSBLZXlBZ3JlZW1lbnRSZXNwb25zZTo6cGFyc2UoY29udmVydEJ5dGVz
VG9WZWN0b3IoVGVzdERhdGE6OmtDdGFwQ2xpZW50UGluVG9rZW5SZXNwb25zZSwgc2l6ZW9mKFRl
c3REYXRhOjprQ3RhcENsaWVudFBpblRva2VuUmVzcG9uc2UpKSk7IC8vIHdyb25nIHJlc3BvbnNl
CiAgICAgRVhQRUNUX0ZBTFNFKHJlc3VsdCk7CiAKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oSU9TKQor
ICAgIHJlc3VsdCA9IEtleUFncmVlbWVudFJlc3BvbnNlOjpwYXJzZShjb252ZXJ0Qnl0ZXNUb1Zl
Y3RvcihUZXN0RGF0YTo6a0N0YXBDbGllbnRQaW5JbnZhbGlkS2V5QWdyZWVtZW50UmVzcG9uc2Us
IHNpemVvZihUZXN0RGF0YTo6a0N0YXBDbGllbnRQaW5JbnZhbGlkS2V5QWdyZWVtZW50UmVzcG9u
c2UpKSk7IC8vIFRoZSBwb2ludCBpcyBub3Qgb24gdGhlIGN1cnZlLgorICAgIEVYUEVDVF9GQUxT
RShyZXN1bHQpOworI2VuZGlmCisKICAgICAvLyBUZXN0IENPU0UKICAgICBhdXRvIGNvc2VLZXkg
PSBlbmNvZGVDT1NFUHVibGljS2V5KFZlY3Rvcjx1aW50OF90Pig2NSkpOwogICAgIGNvc2VLZXlb
Q0JPUlZhbHVlKENPU0U6Omt0eSldID0gQ0JPUlZhbHVlKDApOyAvLyB3cm9uZyBrdHkKQEAgLTE3
Niw3ICsxODEsNyBAQCBURVNUKEN0YXBQaW5UZXN0LCBUZXN0VG9rZW5SZXF1ZXN0KQogICAgIGF1
dG8gdG9rZW4gPSBUb2tlblJlcXVlc3Q6OnRyeUNyZWF0ZShwaW4sIGRvd25jYXN0PENyeXB0b0tl
eUVDPigqa2V5UGFpci5wdWJsaWNLZXkpKTsKICAgICBFWFBFQ1RfVFJVRSh0b2tlbik7CiAgICAg
YXV0byByZXN1bHQgPSBlbmNvZGVBc0NCT1IoKnRva2VuKTsKLSAgICBFWFBFQ1RfRVEocmVzdWx0
LnNpemUoKSwgMTIwdSk7CisgICAgRVhQRUNUX0VRKHJlc3VsdC5zaXplKCksIDEwM3UpOwogICAg
IEVYUEVDVF9FUShyZXN1bHRbMF0sIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KEN0YXBSZXF1ZXN0Q29t
bWFuZDo6a0F1dGhlbnRpY2F0b3JDbGllbnRQaW4pKTsKIAogICAgIC8vIERlY29kZSB0aGUgQ0JP
UiBiaW5hcnkgdG8gY2hlY2sgaWYgZWFjaCBmaWVsZCBpcyBlbmNvZGVkIGNvcnJlY3RseS4KQEAg
LTIyNCwxMiArMjI5LDE3IEBAIFRFU1QoQ3RhcFBpblRlc3QsIFRlc3RUb2tlblJlcXVlc3QpCiAg
ICAgLy8gQ2hlY2sgdGhlIGVuY3J5cHRlZCBQaW4uCiAgICAgYXV0byBzaGFyZWRLZXlSZXN1bHQg
PSBDcnlwdG9BbGdvcml0aG1FQ0RIOjpwbGF0Zm9ybURlcml2ZUJpdHMoZG93bmNhc3Q8Q3J5cHRv
S2V5RUM+KCprZXlQYWlyLnByaXZhdGVLZXkpLCAqY29zZVB1YmxpY0tleSk7CiAgICAgRVhQRUNU
X1RSVUUoc2hhcmVkS2V5UmVzdWx0KTsKLSAgICBhdXRvIGFlc0tleSA9IENyeXB0b0tleUFFUzo6
aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMsIFdURk1vdmUoKnNo
YXJlZEtleVJlc3VsdCksIHRydWUsIENyeXB0b0tleVVzYWdlRGVjcnlwdCk7CisKKyAgICBhdXRv
IGNyeXB0byA9IFBBTDo6Q3J5cHRvRGlnZXN0OjpjcmVhdGUoUEFMOjpDcnlwdG9EaWdlc3Q6OkFs
Z29yaXRobTo6U0hBXzI1Nik7CisgICAgY3J5cHRvLT5hZGRCeXRlcyhzaGFyZWRLZXlSZXN1bHQt
PmRhdGEoKSwgc2hhcmVkS2V5UmVzdWx0LT5zaXplKCkpOworICAgIGF1dG8gc2hhcmVkS2V5SGFz
aCA9IGNyeXB0by0+Y29tcHV0ZUhhc2goKTsKKworICAgIGF1dG8gYWVzS2V5ID0gQ3J5cHRvS2V5
QUVTOjppbXBvcnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQywgV1RGTW92
ZShzaGFyZWRLZXlIYXNoKSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0KTsKICAgICBFWFBF
Q1RfVFJVRShhZXNLZXkpOwogCiAgICAgY29uc3QgYXV0byYgaXQ2ID0gcmVzcG9uc2VNYXAuZmlu
ZChDQk9SVmFsdWUoc3RhdGljX2Nhc3Q8dWludDhfdD4oUmVxdWVzdEtleTo6a1Bpbkhhc2hFbmMp
KSk7CiAgICAgRVhQRUNUX05FKGl0NiwgcmVzcG9uc2VNYXAuZW5kKCkpOwotICAgIGF1dG8gcGlu
SGFzaFJlc3VsdCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdCh7IH0s
ICphZXNLZXksIGl0Ni0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKSk7CisgICAgYXV0byBwaW5IYXNo
UmVzdWx0ID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1EZWNyeXB0KHsgfSwgKmFl
c0tleSwgaXQ2LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpLCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JD
OjpQYWRkaW5nOjpObyk7CiAgICAgRVhQRUNUX0ZBTFNFKHBpbkhhc2hSZXN1bHQuaGFzRXhjZXB0
aW9uKCkpOwogICAgIGF1dG8gcGluSGFzaCA9IHBpbkhhc2hSZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCk7CiAgICAgY29uc3QgdWludDhfdCBleHBlY3RlZFBpbkhhc2hbXSA9IHsgMHgwMywgMHhh
YywgMHg2NywgMHg0MiwgMHgxNiwgMHhmMywgMHhlMSwgMHg1YywgMHg3NiwgMHgxZSwgMHhlMSwg
MHhhNSwgMHhlMiwgMHg1NSwgMHhmMCwgMHg2NyB9OwpAQCAtMjQwLDEwICsyNTAsMTAgQEAgVEVT
VChDdGFwUGluVGVzdCwgVGVzdFRva2VuUmVxdWVzdCkKIFRFU1QoQ3RhcFBpblRlc3QsIFRlc3RU
b2tlblJlc3BvbnNlKQogewogICAgIGNvbnN0IHVpbnQ4X3Qgc2hhcmVkS2V5RGF0YVtdID0gewot
ICAgICAgICAweDAzLCAweGFjLCAweDY3LCAweDQyLCAweDE2LCAweGYzLCAweGUxLCAweDVjLAot
ICAgICAgICAweDc2LCAweDFlLCAweGUxLCAweGE1LCAweGUyLCAweDU1LCAweGYwLCAweDY3LAot
ICAgICAgICAweDk1LCAweDM2LCAweDIzLCAweGM4LCAweGIzLCAweDg4LCAweGI0LCAweDQ1LAot
ICAgICAgICAweDllLCAweDEzLCAweGY5LCAweDc4LCAweGQ3LCAweGM4LCAweDQ2LCAweGY0LCB9
OworICAgICAgICAweDI5LCAweDlFLCAweDY1LCAweEI4LCAweEU3LCAweDcxLCAweEI4LCAweDFE
LAorICAgICAgICAweEIxLCAweEM0LCAweDhELCAweEJFLCAweENFLCAweDUwLCAweDJBLCAweDg0
LAorICAgICAgICAweDA1LCAweDQ0LCAweDdGLCAweDQ2LCAweDJELCAweEU2LCAweDgxLCAweEZB
LAorICAgICAgICAweEVGLCAweDBBLCAweDZDLCAweDY3LCAweEE3LCAweDJCLCAweEI1LCAweDBG
LCB9OwogICAgIGF1dG8gc2hhcmVkS2V5ID0gQ3J5cHRvS2V5QUVTOjppbXBvcnRSYXcoQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQywgY29udmVydEJ5dGVzVG9WZWN0b3Ioc2hhcmVk
S2V5RGF0YSwgc2l6ZW9mKHNoYXJlZEtleURhdGEpKSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VFbmNy
eXB0IHwgQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0KTsKICAgICBBU1NFUlRfVFJVRShzaGFyZWRLZXkp
OwogCkBAIC0yNzQsMTAgKzI4NCwxMCBAQCBURVNUKEN0YXBQaW5UZXN0LCBUZXN0UGluQXV0aCkK
IHsKICAgICAvLyAxLiBHZW5lcmF0ZSB0aGUgdG9rZW4uCiAgICAgY29uc3QgdWludDhfdCBzaGFy
ZWRLZXlEYXRhW10gPSB7Ci0gICAgICAgIDB4MDMsIDB4YWMsIDB4NjcsIDB4NDIsIDB4MTYsIDB4
ZjMsIDB4ZTEsIDB4NWMsCi0gICAgICAgIDB4NzYsIDB4MWUsIDB4ZTEsIDB4YTUsIDB4ZTIsIDB4
NTUsIDB4ZjAsIDB4NjcsCi0gICAgICAgIDB4OTUsIDB4MzYsIDB4MjMsIDB4YzgsIDB4YjMsIDB4
ODgsIDB4YjQsIDB4NDUsCi0gICAgICAgIDB4OWUsIDB4MTMsIDB4ZjksIDB4NzgsIDB4ZDcsIDB4
YzgsIDB4NDYsIDB4ZjQsIH07CisgICAgICAgIDB4MjksIDB4OUUsIDB4NjUsIDB4QjgsIDB4RTcs
IDB4NzEsIDB4QjgsIDB4MUQsCisgICAgICAgIDB4QjEsIDB4QzQsIDB4OEQsIDB4QkUsIDB4Q0Us
IDB4NTAsIDB4MkEsIDB4ODQsCisgICAgICAgIDB4MDUsIDB4NDQsIDB4N0YsIDB4NDYsIDB4MkQs
IDB4RTYsIDB4ODEsIDB4RkEsCisgICAgICAgIDB4RUYsIDB4MEEsIDB4NkMsIDB4NjcsIDB4QTcs
IDB4MkIsIDB4QjUsIDB4MEYsIH07CiAgICAgYXV0byBzaGFyZWRLZXkgPSBDcnlwdG9LZXlBRVM6
OmltcG9ydFJhdyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDLCBjb252ZXJ0Qnl0
ZXNUb1ZlY3RvcihzaGFyZWRLZXlEYXRhLCBzaXplb2Yoc2hhcmVkS2V5RGF0YSkpLCB0cnVlLCBD
cnlwdG9LZXlVc2FnZUVuY3J5cHQgfCBDcnlwdG9LZXlVc2FnZURlY3J5cHQpOwogICAgIEFTU0VS
VF9UUlVFKHNoYXJlZEtleSk7CiAgICAgYXV0byByZXN1bHQgPSBUb2tlblJlc3BvbnNlOjpwYXJz
ZSgqc2hhcmVkS2V5LCBjb252ZXJ0Qnl0ZXNUb1ZlY3RvcihUZXN0RGF0YTo6a0N0YXBDbGllbnRQ
aW5Ub2tlblJlc3BvbnNlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwQ2xpZW50UGluVG9rZW5SZXNw
b25zZSkpKTsKQEAgLTI4NSw3ICsyOTUsNyBAQCBURVNUKEN0YXBQaW5UZXN0LCBUZXN0UGluQXV0
aCkKIAogICAgIC8vIDIuIEdlbmVyYXRlIHRoZSBwaW5BdXRoLgogICAgIGF1dG8gcGluQXV0aCA9
IHJlc3VsdC0+cGluQXV0aChjb252ZXJ0Qnl0ZXNUb1ZlY3RvcihzaGFyZWRLZXlEYXRhLCBzaXpl
b2Yoc2hhcmVkS2V5RGF0YSkpKTsgLy8gc2hhcmVkS2V5RGF0YSBwcmV0ZW5kcyB0byBiZSBjbGll
bnREYXRhSGFzaAotICAgIGNvbnN0IHVpbnQ4X3QgZXhwZWN0ZWRQaW5BdXRoW10gPSB7IDB4YjMs
IDB4YzIsIDB4NjUsIDB4MWMsIDB4ZmQsIDB4YzgsIDB4NDIsIDB4YjQsIDB4NjAsIDB4MTYsIDB4
ZWQsIDB4MjAsIDB4NjQsIDB4NTMsIDB4YWYsIDB4ODQgfTsKKyAgICBjb25zdCB1aW50OF90IGV4
cGVjdGVkUGluQXV0aFtdID0geyAweDBiLCAweGVjLCAweDlkLCAweGJhLCAweDY5LCAweGIwLCAw
eDBmLCAweDQ1LCAweDBiLCAweGVjLCAweDY2LCAweGI0LCAweDc1LCAweDdmLCAweDkzLCAweDg1
IH07CiAgICAgRVhQRUNUX0VRKHBpbkF1dGguc2l6ZSgpLCAxNnUpOwogICAgIEVYUEVDVF9FUSht
ZW1jbXAocGluQXV0aC5kYXRhKCksIGV4cGVjdGVkUGluQXV0aCwgcGluQXV0aC5zaXplKCkpLCAw
KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRv
VGVzdERhdGEuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERh
dGEuaAppbmRleCA5YTcwNDQxMjQwMmEwNWZhZTI4YTYzOWRmZWZiMzU3MWM3NzYxMTZhLi5mYzM4
ZGFiNzNjMzJhOWMwNTE2NjM4MTY4ODVlNzIzMTc3NmVjZjk1IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmgKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oCkBAIC02MTIsMTUgKzYxMiwx
NSBAQCBjb25zdGV4cHIgdWludDhfdCBrQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFdpdGhQaW5b
XSA9IHsKICAgICAweDYyLCAweDc1LCAweDc2LAogICAgIC8vIFRydWUoMjEpCiAgICAgMHhmNSwK
LSAgICAvLyBrZXkoOCkgLSBwaW5Qcm90b2NvbAorICAgIC8vIGtleSg4KSAtIHBpbkF1dGgKICAg
ICAweDA4LAotICAgIC8vIHZhbHVlIC0gMQotICAgIDB4MDEsCi0gICAgLy8ga2V5KDkpIC0gcGlu
QXV0aAotICAgIDB4MDksCiAgICAgLy8gYnl0ZXMoMTYpCiAgICAgMHg1MCwgMHgwMCwgMHgwMSwg
MHgwMiwgMHgwMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgMHgwOCwgMHgwOSwgMHgwYSwKLSAg
ICAweDBiLCAweDBjLCAweDBkLCAweDBlLCAweDBmCisgICAgMHgwYiwgMHgwYywgMHgwZCwgMHgw
ZSwgMHgwZiwKKyAgICAvLyBrZXkoOSkgLSBwaW5Qcm90b2NvbAorICAgIDB4MDksCisgICAgLy8g
dmFsdWUgLSAxCisgICAgMHgwMSwKIH07CiAKIGNvbnN0ZXhwciB1aW50OF90IGtUZXN0Q29tcGxl
eEN0YXBHZXRBc3NlcnRpb25SZXF1ZXN0W10gPSB7CkBAIC03NDUsMTUgKzc0NSwxNSBAQCBjb25z
dGV4cHIgdWludDhfdCBrVGVzdENvbXBsZXhDdGFwR2V0QXNzZXJ0aW9uUmVxdWVzdFdpdGhQaW5b
XSA9IHsKICAgICAweDYyLCAweDc1LCAweDc2LAogICAgIC8vIHZhbHVlIC0gVHJ1ZSgyMSkKICAg
ICAweGY1LAotICAgIC8vIGtleSg4KSAtIHBpblByb3RvY29sCi0gICAgMHgwOCwKLSAgICAvLyB2
YWx1ZSAtIDEKLSAgICAweDAxLAotICAgIC8vIGtleSg5KSAtIHBpbkF1dGgKLSAgICAweDA5LAor
ICAgIC8vIGtleSg2KSAtIHBpbkF1dGgKKyAgICAweDA2LAogICAgIC8vIGJ5dGVzKDE2KQogICAg
IDB4NTAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4
MDgsIDB4MDksIDB4MGEsCi0gICAgMHgwYiwgMHgwYywgMHgwZCwgMHgwZSwgMHgwZgorICAgIDB4
MGIsIDB4MGMsIDB4MGQsIDB4MGUsIDB4MGYsCisgICAgLy8ga2V5KDcpIC0gcGluUHJvdG9jb2wK
KyAgICAweDA3LAorICAgIC8vIHZhbHVlIC0gMQorICAgIDB4MDEsCiB9OwogCiAvLyBDVEFQIHJl
c3BvbnNlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQpAQCAtMTIyNywxMiArMTIyNywxMSBAQCBjb25zdGV4cHIgdWludDhfdCBr
Q3RhcENsaWVudFBpblRva2VuUmVzcG9uc2VbXSA9IHsKICAgICAweGExLAogICAgIC8vIGtleSgy
KSAtIHBpblRva2VuCiAgICAgMHgwMiwKLSAgICAvLyBieXRlcygzMikKLSAgICAweDU4LCAweDIw
LAorICAgIC8vIGJ5dGVzKDE2KQorICAgIDB4NTAsCiAgICAgLy8gZW5jcnlwdGVkIHRva2VuCi0g
ICAgMHg0OCwgMHhiOSwgMHg1ZCwgMHgzZCwgMHg5ZSwgMHhlZSwgMHhlNSwgMHgwMCwgMHhhYiwg
MHg1MSwgMHgxMywgMHgyYiwKLSAgICAweDM1LCAweDc3LCAweDY2LCAweDVjLCAweDQxLCAweDdh
LCAweDU2LCAweDNlLCAweGIzLCAweGUyLCAweDNjLCAweGI3LAotICAgIDB4NmEsIDB4MzcsIDB4
YjMsIDB4ZGUsIDB4NTcsIDB4MmIsIDB4Y2EsIDB4YWEsCisgICAgMHgxMywgMHhBNCwgMHhFRSwg
MHhCNywgMHgwRSwgMHhDOSwgMHgxQSwgMHhFQSwgMHgwMCwgMHgxRSwgMHg5MywgMHgxNiwKKyAg
ICAweEY2LCAweDFFLCAweDQxLCAweEY3LAogfTsKIAogY29uc3RleHByIHVpbnQ4X3Qga0N0YXBD
bGllbnRQaW5LZXlBZ3JlZW1lbnRSZXNwb25zZVtdID0gewpAQCAtMTI2OCw2ICsxMjY3LDM5IEBA
IGNvbnN0ZXhwciB1aW50OF90IGtDdGFwQ2xpZW50UGluS2V5QWdyZWVtZW50UmVzcG9uc2VbXSA9
IHsKICAgICAweDcwLCAweDQ1LCAweEY0LCAweDYxLCAweDJGLCAweEIyLCAweDBDLCAweDkxLAog
fTsKIAorY29uc3RleHByIHVpbnQ4X3Qga0N0YXBDbGllbnRQaW5JbnZhbGlkS2V5QWdyZWVtZW50
UmVzcG9uc2VbXSA9IHsKKyAgICAvLyBTdWNjZXNzCisgICAgMHgwMCwKKyAgICAvLyBtYXAoMSkK
KyAgICAweEExLAorICAgIC8vIGtleSgxKSAtIGtleUFncmVlbWVudAorICAgIDB4MDEsCisgICAg
Ly8gTWFwKDUpCisgICAgMHhBNSwKKyAgICAvLyBrdHk6IEVDIGtleSB0eXBlCisgICAgMHgwMSwg
MHgwMiwKKyAgICAvLyBhbGc6IEVDREgyNTYgc2lnbmF0dXJlIGFsZ29yaXRobQorICAgIDB4MDMs
IDB4MzgsIDB4MTgsCisgICAgLy8gY3J2OiBQLTI1NiBjdXJ2ZQorICAgIDB4MjAsIDB4MDEsCisg
ICAgLy8geC1jb29yZGluYXRlCisgICAgMHgyMSwKKyAgICAvLyBCeXRlcygzMikKKyAgICAweDU4
LCAweDIwLAorICAgIC8vIEJ5dGUgYXJyYXkgY29udGVudAorICAgIDB4RTgsIDB4NzYsIDB4MjUs
IDB4ODksIDB4NkUsIDB4RTQsIDB4RTQsIDB4NjYsIDB4QzAsIDB4MzIsIDB4NzYsIDB4NkUsCisg
ICAgMHg4MCwgMHg4NywgMHg5NiwgMHgyRiwgMHgzNiwgMHhERiwgMHg5RCwgMHhGRiwgMHg4Qiwg
MHg1NiwgMHg3RiwgMHgzNywKKyAgICAweDYzLCAweDAxLCAweDVCLCAweDE5LCAweDkwLCAweEE2
LCAweDBFLCAweDE0LAorICAgIC8vIHktY29vcmRpbmF0ZQorICAgIDB4MjIsCisgICAgLy8gQnl0
ZXMoMzIpCisgICAgMHg1OCwgMHgyMCwKKyAgICAvLyBCeXRlIGFycmF5IGNvbnRlbnQKKyAgICAw
eDI3LCAweERFLCAweDYxLCAweDJELCAweDY2LCAweDQxLCAweDhCLCAweERBLCAweDE5LCAweDUw
LCAweDU4LCAweDFFLAorICAgIDB4QkMsIDB4NUMsIDB4OEMsIDB4MUQsIDB4QUQsIDB4NzEsIDB4
MEMsIDB4QjEsIDB4NEMsIDB4MjIsIDB4RjgsIDB4QzksCisgICAgMHg3MCwgMHg0NSwgMHhGNCwg
MHg2MSwgMHgyRiwgMHhCMiwgMHgwQywgMHg5MSwKK307CisKIGNvbnN0ZXhwciB1aW50OF90IGtD
dGFwQ2xpZW50UGluUmV0cmllc1Jlc3BvbnNlW10gPSB7CiAgICAgLy8gU3VjY2VzcwogICAgIDB4
MDAsCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggNjZmNzRkMzgyZGM0
ZDBkY2JlYzVhNmZhNDA2ZDRjNDQ3OWVmOWM4Yy4uMGNiMjQ3OGRjOWIxOWM3YWFhMjE0YzgzOGFm
ZmJiM2MxYzJhZmQzZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAt
NDUsNiArNDUsNyBAQCBzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsU3VjY2VkZWQg
PSBmYWxzZTsKIHN0YXRpYyBib29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVNdWx0aXBs
ZU5GQ1RhZ3NQcmVzZW50ID0gZmFsc2U7CiBzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBh
bmVsVXBkYXRlTm9DcmVkZW50aWFsc0ZvdW5kID0gZmFsc2U7CiBzdGF0aWMgYm9vbCB3ZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2FuY2VsSW1tZWRpYXRlbHkgPSBmYWxzZTsKK3N0YXRpYyBTdHJpbmcg
d2ViQXV0aGVudGljYXRpb25QYW5lbFBpbjsKIAogQGludGVyZmFjZSBUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbERlbGVnYXRlIDogTlNPYmplY3QgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxE
ZWxlZ2F0ZT4KIEBlbmQKQEAgLTgzLDYgKzg0LDEzIEBAIC0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCBkaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdp
CiAgICAgfQogfQogCistICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICop
cGFuZWwgcmVxdWVzdFBJTldpdGhSZW1haW5pbmdSZXRyaWVzOihOU1VJbnRlZ2VyKXJldHJpZXMg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNvbXBsZXRpb25IYW5kbGVy
Cit7CisgICAgQVNTRVJUX05FKHBhbmVsLCBuaWwpOworICAgIEVYUEVDVF9FUShyZXRyaWVzLCA4
dWwpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxQaW4pOwor
fQorCiBAZW5kCiAKIEBpbnRlcmZhY2UgVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGYWtlRGVs
ZWdhdGUgOiBOU09iamVjdCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPgpAQCAt
NzQwLDYgKzc0OCwxMzAgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZEN0
YXBOb0NyZWRlbnRpYWxzRm91bmRDYW5jZWxOb0NyYXNoKQogICAgIFV0aWw6OnJ1bigmd2ViQXV0
aGVudGljYXRpb25QYW5lbFVwZGF0ZU5vQ3JlZGVudGlhbHNGb3VuZCk7CiB9CiAKK1RFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0UmV0cmllc0Vycm9yKQoreworICAgIHJlc2V0KCk7
CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBp
bi1nZXQtcmV0cmllcy1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJV
bmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2RlOiAyIl07Cit9CisKK1RFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgUGluR2V0S2V5QWdyZWVtZW50RXJyb3IpCit7CisgICAgcmVzZXQo
KTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQt
cGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25F
eHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVz
c2FnZTpAIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVycm9yIGNvZGU6IDIiXTsKK30KKworVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5SZXF1ZXN0UGluRXJyb3JOb0RlbGVnYXRlKQor
eworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRl
c3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJQaW4g
aXMgbm90IHZhbGlkOiAiXTsKK30KKworVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5S
ZXF1ZXN0UGluRXJyb3JOdWxsRGVsZWdhdGUpCit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluIiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKwor
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJv
UmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOworICAgIFtkZWxlZ2F0ZSBzZXRJc051bGw6dHJ1ZV07CisgICAgW3dlYlZpZXcgc2V0VUlE
ZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBbd2ViVmlldyB3
YWl0Rm9yTWVzc2FnZTpAIlBpbiBpcyBub3QgdmFsaWQ6ICJdOworfQorCitURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvcikKK3sKKyAgICByZXNldCgpOworICAg
IFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4iIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdOworCisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQ
bHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07
CisKKyAgICB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUGluID0gIjEyMyI7CisgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07
CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJQaW4gaXMgbm90IHZhbGlkOiAxMjMiXTsK
K30KKworVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlbkVycm9yKQor
eworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8g
KmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0
aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFs
cyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAg
IFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgd2ViQXV0aGVu
dGljYXRpb25QYW5lbFBpbiA9ICIxMjM0IjsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBbd2ViVmlldyB3
YWl0Rm9yTWVzc2FnZTpAIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVycm9yIGNvZGU6IDIiXTsK
K30KKworVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVudGlhbFBpbikKK3sK
KyAgICByZXNldCgpOworICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUGluID0gIjEy
MzQiOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiU3VjY2Vl
ZGVkISJdOworfQorCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvblBp
bikKK3sKKyAgICByZXNldCgpOworICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi1oaWQtcGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50
YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFBpbiA9
ICIxMjM0IjsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1
Y2NlZWRlZCEiXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi5o
dG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMxZWIzYmZlMWUy
Y2JjYjUyMTRhMzZlZDY4NGIwNTI0OTY4MmIxNAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24taGlkLXBpbi5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBp
ZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0Q3RhcFBpbkF1dGhJbnZhbGlkRXJy
b3JCYXNlNjQgPSAiTXc9PSI7CisgICAgY29uc3QgdGVzdFBpbkdldFJldHJpZXNSZXNwb25zZUJh
c2U2NCA9ICJBS0VEQ0E9PSI7CisgICAgY29uc3QgdGVzdFBpbkdldEtleUFncmVlbWVudFJlc3Bv
bnNlQmFzZTY0ID0gIkFLRUJwUUVDQXpnWUlBRWhXQ0RvZGlXSmJ1VGtiY0F5ZG02QWg1WXZOdCtk
L290V2Z6ZGpBVnNaa0tZT0ZDSllJQ2ZlWVMxbVFZdmFHVkJZSHJ4Y2pCMnRjUXl4VENMNHlYQkY5
R0V2c2d5UiI7CisgICAgY29uc3QgdGVzdFBpbkdldFBpblRva2VuUmVzcG9uc2VCYXNlNjQgPSAi
QUtFQ1VCT2s3cmNPeVJycUFCNlRGdlllUWZjPSI7CisgICAgY29uc3QgdGVzdEFzc2VydGlvbk1l
c3NhZ2VCYXNlNjQgPQorICAgICAgICAiQUtNQm9tSnBaRmhBS0FpdHp1aitUc2x6ZWxmMy92WndJ
R3REUU5nb0tlRmQ1b0VpZVl6aHl6QTY1c2FmMHRLMiIgKworICAgICAgICAidy9tb29hN3RRdEdn
RGR3WklqT2hqY3VaMHBRMWFqb0U0R1IwZVhCbGFuQjFZbXhwWXkxclpYa0NXQ1ZHekgrNSIgKwor
ICAgICAgICAiWjUxVnN0dVFrdUhJMmVYaDBDdDFnUEMwZ1N4M0NXTGg1STlhMkFFQUFBQlFBMWhI
TUVVQ0lRQ1NGVHV1QldnQiIgKworICAgICAgICAiNC9GMFZCN0RsVVZNMDlJSFBteGUxTXpIVXdS
b0NSWmJDQUlnR0tvdjZ4b0F4Mk1FZjYvNnFOczhPdXR6aFAyQyIgKworICAgICAgICAiUW9KMUw3
RmU2NEc5dUJjPSI7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgaW50ZXJu
YWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3VwcG9y
dENsaWVudFBpbjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RDdGFwUGluQXV0aEludmFsaWRF
cnJvckJhc2U2NCwgdGVzdFBpbkdldFJldHJpZXNSZXNwb25zZUJhc2U2NCwgdGVzdFBpbkdldEtl
eUFncmVlbWVudFJlc3BvbnNlQmFzZTY0LCB0ZXN0UGluR2V0UGluVG9rZW5SZXNwb25zZUJhc2U2
NCwgdGVzdEFzc2VydGlvbk1lc3NhZ2VCYXNlNjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy53
aXRoVXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5mb2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBj
b25zdCBvcHRpb25zID0geworICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIGNoYWxs
ZW5nZTogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAgdGltZW91dDogMTAwCisgICAg
ICAgIH0KKyAgICB9OworCisgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKS50
aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZygiU3VjY2VlZGVkISIp
OworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZSgiU3VjY2VlZGVkISIpOworICAgIH0sIGVycm9yID0+IHsKKyAgICAgICAgLy8gY29u
c29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGVycm9yLm1lc3NhZ2UpOworICAgIH0pOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFn
cmVlbWVudC1lcnJvci5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3Jl
ZW1lbnQtZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44M2FjYTk4Nzk0YjhhZTk0YWFlMTBmN2FmYWY3
MjZhZWFjOTJkOWMxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4t
Z2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+CisgICAgY29uc3QgdGVzdEN0YXBQaW5JbnZh
bGlkRXJyb3JCYXNlNjQgPSAiTVE9PSI7CisgICAgY29uc3QgdGVzdFBpbkdldFJldHJpZXNSZXNw
b25zZUJhc2U2NCA9ICJBS0VEQ0E9PSI7CisgICAgY29uc3QgdGVzdEN0YXBJbnZhbGlkUGFyYW1l
dGVyRXJyb3JCYXNlNjQgPSAiQWc9PSI7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBo
aWQ6IHsgc3VwcG9ydENsaWVudFBpbjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RDdGFwUGlu
SW52YWxpZEVycm9yQmFzZTY0LCB0ZXN0UGluR2V0UmV0cmllc1Jlc3BvbnNlQmFzZTY0LCB0ZXN0
Q3RhcEludmFsaWRQYXJhbWV0ZXJFcnJvckJhc2U2NF0gfSB9KTsKKyAgICAgICAgaW50ZXJuYWxz
LndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOworICAgIH0KKworICAg
IGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgcnA6
IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVk
IiwKKyAgICAgICAgICAgICAgICBpZDogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAg
ICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgIHB1YktleUNyZWRQ
YXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQorICAgICAgICB9CisgICAg
fTsKKworICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVk
ZW50aWFsID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coIlN1Y2NlZWRlZCEiKTsKKyAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
IlN1Y2NlZWRlZCEiKTsKKyAgICB9LCBlcnJvciA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9n
KGVycm9yLm1lc3NhZ2UpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50
ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShlcnJvci5tZXNzYWdlKTsKKyAgICB9KTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJv
ci5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1lcnJvci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ5OTE1YjNmOGZmZGViYTI4OTk2MjM3NmI2NDNjZjk5NmZhMGE4ZmIKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dl
Yi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWVy
cm9yLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dCI+
Cis8c2NyaXB0PgorICAgIGNvbnN0IHRlc3RDdGFwUGluSW52YWxpZEVycm9yQmFzZTY0ID0gIk1R
PT0iOworICAgIGNvbnN0IHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQgPSAiQUtFRENB
PT0iOworICAgIGNvbnN0IHRlc3RQaW5HZXRLZXlBZ3JlZW1lbnRSZXNwb25zZUJhc2U2NCA9ICJB
S0VCcFFFQ0F6Z1lJQUVoV0NEb2RpV0pidVRrYmNBeWRtNkFoNVl2TnQrZC9vdFdmemRqQVZzWmtL
WU9GQ0pZSUNmZVlTMW1RWXZhR1ZCWUhyeGNqQjJ0Y1F5eFRDTDR5WEJGOUdFdnNneVIiOworICAg
IGNvbnN0IHRlc3RDdGFwSW52YWxpZFBhcmFtZXRlckVycm9yQmFzZTY0ID0gIkFnPT0iOworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46IHRydWUs
IHBheWxvYWRCYXNlNjQ6IFt0ZXN0Q3RhcFBpbkludmFsaWRFcnJvckJhc2U2NCwgdGVzdFBpbkdl
dFJldHJpZXNSZXNwb25zZUJhc2U2NCwgdGVzdFBpbkdldEtleUFncmVlbWVudFJlc3BvbnNlQmFz
ZTY0LCB0ZXN0Q3RhcEludmFsaWRQYXJhbWV0ZXJFcnJvckJhc2U2NF0gfSB9KTsKKyAgICAgICAg
aW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOworICAg
IH0KKworICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAg
ICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4g
QXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICBpZDogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAg
ICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgIHB1
YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQorICAgICAg
ICB9CisgICAgfTsKKworICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyku
dGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coIlN1Y2NlZWRlZCEi
KTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9z
dE1lc3NhZ2UoIlN1Y2NlZWRlZCEiKTsKKyAgICB9LCBlcnJvciA9PiB7CisgICAgICAgIC8vIGNv
bnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShlcnJvci5tZXNzYWdlKTsKKyAgICB9KTsK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJp
ZXMtZXJyb3IuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9y
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2JkMTE1N2M0MWNmOGMzZDM3ZDllODMyNDcwMzM1YjM2ZTcxYjAx
ZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVz
LWVycm9yLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1
dCI+Cis8c2NyaXB0PgorICAgIGNvbnN0IHRlc3RDdGFwUGluSW52YWxpZEVycm9yQmFzZTY0ID0g
Ik1RPT0iOworICAgIGNvbnN0IHRlc3RDdGFwSW52YWxpZFBhcmFtZXRlckVycm9yQmFzZTY0ID0g
IkFnPT0iOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5z
ZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGll
bnRQaW46IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0Q3RhcFBpbkludmFsaWRFcnJvckJhc2U2
NCwgdGVzdEN0YXBJbnZhbGlkUGFyYW1ldGVyRXJyb3JCYXNlNjRdIH0gfSk7CisgICAgICAgIGlu
dGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5mb2N1cygpOyB9KTsKKyAgICB9
CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAg
ICAgIHJwOiB7CisgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFw
cGxlc2VlZCIsCisgICAgICAgICAgICAgICAgaWQ6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAg
ICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgY2hhbGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICBwdWJL
ZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0KKyAgICAgICAg
fQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRo
ZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKCJTdWNjZWVkZWQhIik7
CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RN
ZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4geworICAgICAgICAvLyBjb25z
b2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVzc2FnZSk7CisgICAgfSk7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLmh0bWwgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtl
LWNyZWRlbnRpYWwtaGlkLXBpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWEwZmY1MTZlOWI2MjY4MDFh
NDhmNjc1YmQwNjkxNmY4ZGFiNDAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwt
aGlkLXBpbi5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5w
dXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0Q3RhcFBpbkF1dGhJbnZhbGlkRXJyb3JCYXNl
NjQgPSAiTXc9PSI7CisgICAgY29uc3QgdGVzdFBpbkdldFJldHJpZXNSZXNwb25zZUJhc2U2NCA9
ICJBS0VEQ0E9PSI7CisgICAgY29uc3QgdGVzdFBpbkdldEtleUFncmVlbWVudFJlc3BvbnNlQmFz
ZTY0ID0gIkFLRUJwUUVDQXpnWUlBRWhXQ0RvZGlXSmJ1VGtiY0F5ZG02QWg1WXZOdCtkL290V2Z6
ZGpBVnNaa0tZT0ZDSllJQ2ZlWVMxbVFZdmFHVkJZSHJ4Y2pCMnRjUXl4VENMNHlYQkY5R0V2c2d5
UiI7CisgICAgY29uc3QgdGVzdFBpbkdldFBpblRva2VuUmVzcG9uc2VCYXNlNjQgPSAiQUtFQ1VC
T2s3cmNPeVJycUFCNlRGdlllUWZjPSI7CisgICAgY29uc3QgdGVzdENyZWF0aW9uTWVzc2FnZUJh
c2U2NCA9CisgICAgICAgICJBS01CWm5CaFkydGxaQUpZeEViTWY3bG5uVld5MjVDUzRjalo1ZUhR
SzNXQThMU0JMSGNKWXVIa2oxcllRUUFBIiArCisgICAgICAgICJBRTc0b0JIempBcE5GWUFHRnhF
Zm50eDlBRUFvQ0szTzZQNU95WE42Vi9mKzluQWdhME5BMkNncDRWM21nU0o1IiArCisgICAgICAg
ICJqT0hMTURybXhwL1MwcmJEK2FpaHJ1MUMwYUFOM0JraU02R055NW5TbERWcU9nVGdwUUVDQXlZ
Z0FTRllJRUZiIiArCisgICAgICAgICJoZTNSa051ZDZzZ3lyYUJHamxoMXB6VGxDWmVoUWxML2Ix
OEhaNldHSWxnZ0pnZlVkL2VuOXA1QUlxTVFiVW5pIiArCisgICAgICAgICJuRWVYZEZMa3ZXMC96
VjVCcEVqak54QURvMk5oYkdjbVkzTnBaMWhITUVVQ0lRREtnK1pCbUVCdGYwbFdxNFJlIiArCisg
ICAgICAgICJkSDQvaS9MT1lxT1I0dVIyTkFqMnpRbXc5UUlnYlRYYjRodkZiajRUMjdidi9yR3Jj
K3krMHB1b1lPQmtCazlQIiArCisgICAgICAgICJtQ2V3V2xOamVEVmpnVmtDd2pDQ0FyNHdnZ0dt
b0FNQ0FRSUNCSFNHL2NJd0RRWUpLb1pJaHZjTkFRRUxCUUF3IiArCisgICAgICAgICJMakVzTUNv
R0ExVUVBeE1qV1hWaWFXTnZJRlV5UmlCU2IyOTBJRU5CSUZObGNtbGhiQ0EwTlRjeU1EQTJNekV3
IiArCisgICAgICAgICJJQmNOTVRRd09EQXhNREF3TURBd1doZ1BNakExTURBNU1EUXdNREF3TURC
YU1HOHhDekFKQmdOVkJBWVRBbE5GIiArCisgICAgICAgICJNUkl3RUFZRFZRUUtEQWxaZFdKcFky
OGdRVUl4SWpBZ0JnTlZCQXNNR1VGMWRHaGxiblJwWTJGMGIzSWdRWFIwIiArCisgICAgICAgICJa
WE4wWVhScGIyNHhLREFtQmdOVkJBTU1IMWwxWW1samJ5QlZNa1lnUlVVZ1UyVnlhV0ZzSURFNU5U
VXdNRE00IiArCisgICAgICAgICJOREl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNB
QVNWWGZPdDl5UjlNWFh2L1p6RTh4cE9oNDY2IiArCisgICAgICAgICI0WUVKVm1GUSt6aUxMbDls
Sjc5WFFKcWxnYVVOQ3NVdkdFUmNDaE5VaWhOVHlLVGxtbkJPVWp2QVRldnRvMnd3IiArCisgICAg
ICAgICJhakFpQmdrckJnRUVBWUxFQ2dJRUZURXVNeTQyTGpFdU5DNHhMalF4TkRneUxqRXVNVEFU
QmdzckJnRUVBWUxsIiArCisgICAgICAgICJIQUlCQVFRRUF3SUZJREFoQmdzckJnRUVBWUxsSEFF
QkJBUVNCQkQ0b0JIempBcE5GWUFHRnhFZm50eDlNQXdHIiArCisgICAgICAgICJBMVVkRXdFQi93
UUNNQUF3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQURGY1NJRG1tbEorT0dhSnZXbjlDcWh2IiAr
CisgICAgICAgICJTZXVlVG9WRlFWVnZxdEFMT2dDS0hkd0IrV3gyOW1nMkdwSGlNc2dRcDV4akIw
eWJibnBHNngyMTJGeEVTSitHIiArCisgICAgICAgICJpblpEMGlwY2hpN0FQd1BsaEl2amdIMTZ6
Vlg0NGE0ZTRoT3NjNnRMSU9QNzFTYU1zSHVIZ0NjZEgwdmc1ZDJzIiArCisgICAgICAgICJjMDA2
V0plOVRYTzZmelYrb2dqSm5ZcE5LUUxtQ1hvQVhFM0pCTndLR0JJT0N2ZlFEUHlXbWlpRzViR3hZ
ZlB0IiArCisgICAgICAgICJ5OFozcG5qWCsxTURuTTJoaHI0MHVsTXhsU05EblgvWlNuRHlNR0li
azhUT1FtalRGMDJVTzhhdVA4azN3dDVEIiArCisgICAgICAgICIxclJPSVJVOStGQ1NYNVdRWWk2
OFJ1RHJHTVpCOFA1K2J5b0pxYktRZHhuMkxtRTFvWkF5b2hQQW1MY29QTzQ9IjsKKyAgICBpZiAo
d2luZG93LmludGVybmFscykgeworICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRp
Y2F0aW9uQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdXBwb3J0Q2xpZW50UGluOiB0cnVlLCBwYXls
b2FkQmFzZTY0OiBbdGVzdEN0YXBQaW5BdXRoSW52YWxpZEVycm9yQmFzZTY0LCB0ZXN0UGluR2V0
UmV0cmllc1Jlc3BvbnNlQmFzZTY0LCB0ZXN0UGluR2V0S2V5QWdyZWVtZW50UmVzcG9uc2VCYXNl
NjQsIHRlc3RQaW5HZXRQaW5Ub2tlblJlc3BvbnNlQmFzZTY0LCB0ZXN0Q3JlYXRpb25NZXNzYWdl
QmFzZTY0XSB9IH0pOworICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsg
aW5wdXQuZm9jdXMoKTsgfSk7CisgICAgfQorCisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAg
ICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgIG5hbWU6
ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHVzZXI6IHsKKyAgICAg
ICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIGlkOiBu
ZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNl
ZWQiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJy
YXkoMTYpLAorICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1r
ZXkiLCBhbGc6IC03IH1dCisgICAgICAgIH0KKyAgICB9OworCisgICAgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAvLyBj
b25zb2xlLmxvZygiU3VjY2VlZGVkISIpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiU3VjY2VlZGVkISIpOworICAgIH0sIGVy
cm9yID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGVy
cm9yLm1lc3NhZ2UpOworICAgIH0pOworPC9zY3JpcHQ+Cg==
</data>
<flag name="commit-queue"
          id="403201"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387598</attachid>
            <date>2020-01-13 17:30:37 -0800</date>
            <delta_ts>2020-01-13 22:42:02 -0800</delta_ts>
            <desc>Build fix</desc>
            <filename>bug-191516.diff</filename>
            <type>text/plain</type>
            <size>1722</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzdhYjg0ZTYxOTM3Li5lNjdkMjBhZWY3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMjAtMDEtMTMgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNv
bT4KKworICAgICAgICBbV2ViQXV0aG5dIFN1cHBvcnQgQ1RBUCBDbGllbnQgUGluCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1MTYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzU2NTU4NTU4PgorCisgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4
IGFmdGVyIHIyNTQ0MzkuCisKKyAgICAgICAgQ3J5cHRvS2V5RUMgd2FzIGZvcndhcmQgZGVjbGFy
ZWQgaW50byBXZWJDb3JlIGJ1dCB0aGUgbmFtZXNwYWNlIHdhcyBub3QgdXNlZCBpbgorICAgICAg
ICBjb250aW51ZUdldFBpblRva2VuQWZ0ZXJSZXF1ZXN0UGluLiBMb29rcyBsaWtlIHNvbWV0aGlu
ZyBpbiB0aGUgdW5pZmllZCBzb3VyY2VzCisgICAgICAgIHdhcyBjb3ZlcmluZyB0aGlzIGlzc3Vl
LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhl
bnRpY2F0b3IuaDoKKwogMjAyMC0wMS0xMyAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5
QGFwcGxlLmNvbT4KIAogICAgICAgICBfV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0
eSBzaG91bGQgYmUgZm9yd2FyZCBkZWNsYXJlZCBub3QgaW1wb3J0ZWQgaW4gX1dLUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1RoaXJkUGFydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3Iu
aAppbmRleCAyNWZlOTAzMmY4ZTQuLjZlM2RlMDExY2M0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3Rh
cEF1dGhlbnRpY2F0b3IuaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0
UmV0cmllcygpOwogICAgIHZvaWQgY29udGludWVHZXRLZXlBZ3JlZW1lbnRBZnRlckdldFJldHJp
ZXMoVmVjdG9yPHVpbnQ4X3Q+JiYpOwogICAgIHZvaWQgY29udGludWVSZXF1ZXN0UGluQWZ0ZXJH
ZXRLZXlBZ3JlZW1lbnQoVmVjdG9yPHVpbnQ4X3Q+JiYsIHVpbnQ2NF90IHJldHJpZXMpOwotICAg
IHZvaWQgY29udGludWVHZXRQaW5Ub2tlbkFmdGVyUmVxdWVzdFBpbihjb25zdCBTdHJpbmcmIHBp
biwgY29uc3QgQ3J5cHRvS2V5RUMmKTsKKyAgICB2b2lkIGNvbnRpbnVlR2V0UGluVG9rZW5BZnRl
clJlcXVlc3RQaW4oY29uc3QgU3RyaW5nJiBwaW4sIGNvbnN0IFdlYkNvcmU6OkNyeXB0b0tleUVD
Jik7CiAgICAgdm9pZCBjb250aW51ZVJlcXVlc3RBZnRlckdldFBpblRva2VuKFZlY3Rvcjx1aW50
OF90PiYmLCBjb25zdCBmaWRvOjpwaW46OlRva2VuUmVxdWVzdCYpOwogCiAgICAgYm9vbCB0cnlE
b3duZ3JhZGUoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>