<?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>181928</bug_id>
          
          <creation_ts>2018-01-22 02:04:08 -0800</creation_ts>
          <short_desc>[WebAuthN] Implement PublicKeyCredential&apos;s [[Create]] with a dummy authenticator</short_desc>
          <delta_ts>2018-01-22 19:05:10 -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>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1391573</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-01-22 02:04:08 -0800</bug_when>
    <thetext>Implement PublicKeyCredential&apos;s [[Create]] with a dummy authenticator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391574</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-01-22 02:04:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/36459893&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391576</commentid>
    <comment_count>2</comment_count>
      <attachid>331907</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-01-22 02:25:02 -0800</bug_when>
    <thetext>Created attachment 331907
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391759</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-01-22 13:04:40 -0800</bug_when>
    <thetext>Did you forget to include some changes in your patch?

In file included from /Volumes/Data/EWS/WebKit/WebKitBuild/Release/DerivedSources/WebCore/unified-sources/UnifiedSource152.cpp:1:
/Volumes/Data/EWS/WebKit/Source/WebCore/Modules/webauthn/Authenticator.cpp:53:12: error: no viable conversion from returned value of type &apos;Vector&lt;uint8_t&gt;&apos; (aka &apos;Vector&lt;unsigned char&gt;&apos;) to function return type &apos;ExceptionOr&lt;Vector&lt;uint8_t&gt; &gt;&apos; (aka &apos;ExceptionOr&lt;Vector&lt;unsigned char&gt; &gt;&apos;)
    return attestationObject;
           ^~~~~~~~~~~~~~~~~
In file included from /Volumes/Data/EWS/WebKit/WebKitBuild/Release/DerivedSources/WebCore/unified-sources/UnifiedSource152.cpp:1:
In file included from /Volumes/Data/EWS/WebKit/Source/WebCore/Modules/webauthn/Authenticator.cpp:27:
In file included from /Volumes/Data/EWS/WebKit/Source/WebCore/Modules/webauthn/Authenticator.h:28:
/Volumes/Data/EWS/WebKit/Source/WebCore/dom/ExceptionOr.h:35:37: note: candidate constructor (the implicit move constructor) not viable: no known conversion from &apos;Vector&lt;uint8_t&gt;&apos; (aka &apos;Vector&lt;unsigned char&gt;&apos;) to &apos;WebCore::ExceptionOr&lt;WTF::Vector&lt;unsigned char, 0, WTF::CrashOnOverflow, 16, WTF::FastMalloc&gt; &gt; &amp;&amp;&apos; for 1st argument
template&lt;typename ReturnType&gt; class ExceptionOr {
                                    ^
/Volumes/Data/EWS/WebKit/Source/WebCore/dom/ExceptionOr.h:35:37: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from &apos;Vector&lt;uint8_t&gt;&apos; (aka &apos;Vector&lt;unsigned char&gt;&apos;) to &apos;const WebCore::ExceptionOr&lt;WTF::Vector&lt;unsigned char, 0, WTF::CrashOnOverflow, 16, WTF::FastMalloc&gt; &gt; &amp;&apos; for 1st argument
/Volumes/Data/EWS/WebKit/Source/WebCore/dom/ExceptionOr.h:37:5: note: candidate constructor not viable: no known conversion from &apos;Vector&lt;uint8_t&gt;&apos; (aka &apos;Vector&lt;unsigned char&gt;&apos;) to &apos;WebCore::Exception &amp;&amp;&apos; for 1st argument
    ExceptionOr(Exception&amp;&amp;);
    ^
/Volumes/Data/EWS/WebKit/Source/WebCore/dom/ExceptionOr.h:38:5: note: candidate constructor not viable: no known conversion from &apos;Vector&lt;uint8_t&gt;&apos; (aka &apos;Vector&lt;unsigned char&gt;&apos;) to &apos;WTF::Vector&lt;unsigned char, 0, WTF::CrashOnOverflow, 16, WTF::FastMalloc&gt; &amp;&amp;&apos; for 1st argument
    ExceptionOr(ReturnType&amp;&amp;);
    ^
/Volumes/Data/EWS/WebKit/Source/WebCore/dom/ExceptionOr.h:39:88: note: candidate template ignored: disabled by &apos;enable_if&apos; [with OtherType = WTF::Vector&lt;unsigned char, 0, WTF::CrashOnOverflow, 16, WTF::FastMalloc&gt;]
    template&lt;typename OtherType&gt; ExceptionOr(const OtherType&amp;, typename std::enable_if&lt;std::is_scalar&lt;OtherType&gt;::value &amp;&amp; std::is_convertible&lt;OtherType, ReturnType&gt;::value&gt;::type* = nullptr);
                                                                                       ^
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391760</commentid>
    <comment_count>4</comment_count>
      <attachid>331907</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-01-22 13:05:27 -0800</bug_when>
    <thetext>Comment on attachment 331907
Patch

r- because it is failing to build on just about every platform. I think the patch is either dependent on other work, or is missing some code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391761</commentid>
    <comment_count>5</comment_count>
      <attachid>331954</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-01-22 13:05:33 -0800</bug_when>
    <thetext>Created attachment 331954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391806</commentid>
    <comment_count>6</comment_count>
      <attachid>331954</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-01-22 14:04:43 -0800</bug_when>
    <thetext>Comment on attachment 331954
Patch

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

I think this looks good for initial code. r=me.

&gt; Source/WebCore/ChangeLog:11
&gt; +        and a pass paths. A numbers of dependencies need to be resolved later in order to comply with the spec.

... &quot;and a pass path. A number of&quot;

&gt; Source/WebCore/ChangeLog:12
&gt; +        Also, the current architecture of handling async operations including dispatching, timeout, and aborting

I would say, &quot;of handling async WebAuthN operations&quot;, otherwise it sounds like you think the entire async model of WebKit needs to be replaced :-)

&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:77
&gt; +// since it doesn&apos;t support observers (or other means) to trigger the actual abort action. Enhancement to AbortSignal is needed.

Bugzilla for AbortSIgnal enhancement request?

&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:79
&gt; +    void CredentialsContainer::dispatchTask(OperationType&amp;&amp; operation, Ref&lt;DeferredPromise&gt;&amp;&amp; promise, std::optional&lt;unsigned long&gt; timeOutInMs)

I don&apos;t think you want this whitespace.

&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:86
&gt; +    // FIXME: We should probably trim timeOutInMs to some max allowable number.

Doe the WebAuthN spec indicate a performance level? Do we have other authentication tasks that have a timeout value?

&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:96
&gt; +        pendingPromise-&gt;timer-&gt;startOneShot(Seconds(timeOutInMs.value() / 1000.0));

Do we need to assert upon entering &apos;dispatchTask&apos; that we are on the MainThread? Otherwise, couldn&apos;t the timer be created on some background thread, and we will only assert when the timer fires?

&gt; Source/WebCore/Modules/webauthn/Authenticator.cpp:41
&gt; +    // User cancellation is effecively NotAllowedError.

Can you add a comment here that this is just a  dummy function to support initial development?

&gt; Source/WebCore/Modules/webauthn/Authenticator.cpp:42
&gt; +    if (user.displayName == &quot;John&quot;)

LOL

&gt; Source/WebCore/Modules/webauthn/PublicKeyCredential.cpp:128
&gt; +    // FIXME: We lack fundamental support from SecurityOrigin to determine if a host is a valid domain or not.

Can you file a Radar/Bugzilla about this? We may not be able to take immediate action, but I&apos;d like it on the task list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391807</commentid>
    <comment_count>7</comment_count>
      <attachid>331954</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-01-22 14:05:14 -0800</bug_when>
    <thetext>Comment on attachment 331954
Patch

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

&gt; LayoutTests/http/wpt/webauthn/idl.https-expected.txt:54
&gt; +PASS AuthenticatorAssertionResponse interface: attribute userHandle 

Are these official WebAuthN tests? Great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391841</commentid>
    <comment_count>8</comment_count>
      <attachid>331954</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-01-22 15:00:29 -0800</bug_when>
    <thetext>Comment on attachment 331954
Patch

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

Thanks Brent for r+ the patch.

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        and a pass paths. A numbers of dependencies need to be resolved later in order to comply with the spec.
&gt; 
&gt; ... &quot;and a pass path. A number of&quot;

Fixed.

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +        Also, the current architecture of handling async operations including dispatching, timeout, and aborting
&gt; 
&gt; I would say, &quot;of handling async WebAuthN operations&quot;, otherwise it sounds like you think the entire async model of WebKit needs to be replaced :-)

Yep. I would be more specific.

&gt;&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:77
&gt;&gt; +// since it doesn&apos;t support observers (or other means) to trigger the actual abort action. Enhancement to AbortSignal is needed.
&gt; 
&gt; Bugzilla for AbortSIgnal enhancement request?

Bugzilla for every FIXME has been updated.

&gt;&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:79
&gt;&gt; +    void CredentialsContainer::dispatchTask(OperationType&amp;&amp; operation, Ref&lt;DeferredPromise&gt;&amp;&amp; promise, std::optional&lt;unsigned long&gt; timeOutInMs)
&gt; 
&gt; I don&apos;t think you want this whitespace.

Fixed.

&gt;&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:86
&gt;&gt; +    // FIXME: We should probably trim timeOutInMs to some max allowable number.
&gt; 
&gt; Doe the WebAuthN spec indicate a performance level? Do we have other authentication tasks that have a timeout value?

The spec only suggests user agents should trim the timeout to some platform dependent max value. Both attestation and assertion have a timeout value. So far, I didn&apos;t have any speculation on what the value should be.

&gt;&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:96
&gt;&gt; +        pendingPromise-&gt;timer-&gt;startOneShot(Seconds(timeOutInMs.value() / 1000.0));
&gt; 
&gt; Do we need to assert upon entering &apos;dispatchTask&apos; that we are on the MainThread? Otherwise, couldn&apos;t the timer be created on some background thread, and we will only assert when the timer fires?

Sure, an assertion is added at the very beginning of this method.

&gt;&gt; Source/WebCore/Modules/webauthn/Authenticator.cpp:41
&gt;&gt; +    // User cancellation is effecively NotAllowedError.
&gt; 
&gt; Can you add a comment here that this is just a  dummy function to support initial development?

Added.

&gt;&gt; Source/WebCore/Modules/webauthn/PublicKeyCredential.cpp:128
&gt;&gt; +    // FIXME: We lack fundamental support from SecurityOrigin to determine if a host is a valid domain or not.
&gt; 
&gt; Can you file a Radar/Bugzilla about this? We may not be able to take immediate action, but I&apos;d like it on the task list.

Fixed.

&gt;&gt; LayoutTests/http/wpt/webauthn/idl.https-expected.txt:54
&gt;&gt; +PASS AuthenticatorAssertionResponse interface: attribute userHandle 
&gt; 
&gt; Are these official WebAuthN tests? Great!

Let&apos;s make them official!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391844</commentid>
    <comment_count>9</comment_count>
      <attachid>331968</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-01-22 15:02:40 -0800</bug_when>
    <thetext>Created attachment 331968
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391848</commentid>
    <comment_count>10</comment_count>
      <attachid>331970</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-01-22 15:47:48 -0800</bug_when>
    <thetext>Created attachment 331970
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391903</commentid>
    <comment_count>11</comment_count>
      <attachid>331987</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-01-22 17:26:47 -0800</bug_when>
    <thetext>Created attachment 331987
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391945</commentid>
    <comment_count>12</comment_count>
      <attachid>331987</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-22 19:01:05 -0800</bug_when>
    <thetext>Comment on attachment 331987
Patch for landing

Clearing flags on attachment: 331987

Committed r227382: &lt;https://trac.webkit.org/changeset/227382&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331907</attachid>
            <date>2018-01-22 02:25:02 -0800</date>
            <delta_ts>2018-01-22 13:05:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181928-20180122022501.patch</filename>
            <type>text/plain</type>
            <size>102884</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEwZjBkZmQ3Zjg4ZTc0
NDA3MTUzMzUzYTNjMTNhODY5ZTAwNzgzMS4uNzVjODJiM2IxNmUxOTgxM2RjOTNmNTU0MzlhYmI0
Yjk2ZjczMGQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDE4LTAxLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBs
ZW1lbnQgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbQ3JlYXRlXV0gd2l0aCBhIGR1bW15IGF1dGhl
bnRpY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MTkyOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY0NTk4OTM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRz
IFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW0NyZWF0ZV1dIGZyb20gaHR0cHM6Ly93d3cudzMub3Jn
L1RSL3dlYmF1dGhuLyNjcmVhdGVDcmVkZW50aWFsCisgICAgICAgIGFzIG9mIDUgRGVjZW1iZXIg
MjAxNy4gSW4gb3JkZXIgdG8gZG8gdGVzdGluZywgYSBkdW1teSBhdXRoZW50aWNhdG9yIGlzIGlt
cGxlbWVudGVkIHRvIGV4ZXJjaXNlIGEgZmFpbHVyZQorICAgICAgICBhbmQgYSBwYXNzIHBhdGhz
LiBBIG51bWJlcnMgb2YgZGVwZW5kZW5jaWVzIG5lZWQgdG8gYmUgcmVzb2x2ZWQgbGF0ZXIgaW4g
b3JkZXIgdG8gY29tcGx5IHdpdGggdGhlIHNwZWMuCisgICAgICAgIEFsc28sIHRoZSBjdXJyZW50
IGFyY2hpdGVjdHVyZSBvZiBoYW5kbGluZyBhc3luYyBvcGVyYXRpb25zIGluY2x1ZGluZyBkaXNw
YXRjaGluZywgdGltZW91dCwgYW5kIGFib3J0aW5nCisgICAgICAgIG1pZ2h0IG5lZWQgYSByZWRl
c2lnbiBvbmNlIHRoZSB1bmRlcmx5aW5nIGF1dGhlbnRpY2F0b3IgaXMgY2xlYXIuIFNpbmNlIHRo
aXMgaXMgb3VyIGZpcnN0IGF0dGVtcHQgdG8gaW1wbGVtZW50CisgICAgICAgIGEgcHJvdG90eXBl
LCBhbGwgdGhvc2UgbGltaXRhdGlvbnMsIGluIG15IG9waW5pb24sIGNhbiBiZSBtYXJrZWQgYXMg
bm9uLWJsb2NraW5nIHRvIGFjY2VsZXJhdGUgdGhlIHdob2xlCisgICAgICAgIHByb2Nlc3MuIFRo
b3NlIGxpbWl0YXRpb25zIHdpbGwgdGhlbiBiZSBhZGRyZXNzZWQgb25jZSB0aGUgZmlyc3QgcHJv
dG90eXBlIGlzIGZpbnNoZWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS13aXRoLWludmFsaWQtcGFyYW1ldGVycy5odHRw
cy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBzLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3Jp
Z2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0L3dl
YmF1dGhuL2lkbC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNj
ZXNzLmh0dHBzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
QmFzaWNDcmVkZW50aWFsLmg6CisgICAgICAgICogTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVu
dC9CYXNpY0NyZWRlbnRpYWwuaWRsOgorICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlhbG1hbmFn
ZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVu
dGlhbHNDb250YWluZXI6OlBlbmRpbmdQcm9taXNlOjpQZW5kaW5nUHJvbWlzZSk6CisgICAgICAg
IChXZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6ZGlzcGF0Y2hUYXNrKToKKyAgICAgICAg
KFdlYkNvcmU6OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q3JlZGVudGlhbHNDb250YWluZXI6OmlzQ3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRl
bnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29u
dGFpbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6UGVuZGlu
Z1Byb21pc2U6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yUmVzcG9uc2UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvcjo6
c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50
aWFsIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3IuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmguCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVu
dGljYXRvckFzc2VydGlvblJlc3BvbnNlOjphdXRoZW50aWNhdG9yRGF0YSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OnNpZ25hdHVyZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6
OnVzZXJIYW5kbGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlOjp+QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6YXV0aGVu
dGljYXRvckRhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlOjpzaWduYXR1cmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjp1c2VySGFuZGxlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5o
OgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjpjcmVh
dGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjp+QXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2U6OmNsaWVudERhdGFKU09OIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZTo6fkF1dGhlbnRp
Y2F0b3JSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9y
UmVzcG9uc2U6OmNsaWVudERhdGFKU09OKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0
aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhu
L1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3Jl
ZGVudGlhbEludGVybmFsOjpwcm9kdWNlQ2xpZW50RGF0YUpzb24pOgorICAgICAgICAoV2ViQ29y
ZTo6UHVibGljS2V5Q3JlZGVudGlhbEludGVybmFsOjpwcm9kdWNlQ2xpZW50RGF0YUpzb25IYXNo
KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxJbnRlcm5hbDo6Z2V0SWRG
cm9tQXR0ZXN0YXRpb25PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVu
dGlhbDo6UHVibGljS2V5Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlD
cmVkZW50aWFsOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQdWJsaWNLZXlDcmVkZW50aWFsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGlj
S2V5Q3JlZGVudGlhbDo6cmF3SWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5
Q3JlZGVudGlhbDo6cmVzcG9uc2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5
Q3JlZGVudGlhbDo6Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpyYXdJZCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpyZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5oOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmg6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5pZGw6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9y
QXR0ZXN0YXRpb25SZXNwb25zZS5jcHAuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVh
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
QmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwLgorICAgICAgICAoV2ViQ29y
ZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorCiAyMDE4LTAxLTE4ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVp
bGQgZml4LCByZW1vdmVkIHVudXNlZCBsYW1iZGEgY2FwdHVyZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWNDcmVkZW50aWFsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2ljQ3JlZGVu
dGlhbC5oCmluZGV4IDc3NjBiZWE3MzE4ZTY5ZmNiNzM2OWJmNWI4MGY2YTBmODFhMjZkYzIuLmQ3
ZGI0MWI0YzFmODhhZTdkZWFhMDY4ZDg3MjNjYTU1YjFkNzU1MjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWNDcmVkZW50aWFsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9CYXNpY0Ny
ZWRlbnRpYWwuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQxLDE1ICs0MiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIFJlbW90ZSwKICAgICB9OwogCisgICAg
QmFzaWNDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYsIFR5cGUsIERpc2NvdmVyeSk7CiAgICAgdmly
dHVhbCB+QmFzaWNDcmVkZW50aWFsKCk7CiAKKyAgICB2aXJ0dWFsIFR5cGUgY3JlZGVudGlhbFR5
cGUoKSBjb25zdCA9IDA7CisKICAgICBjb25zdCBTdHJpbmcmIGlkKCkgY29uc3QgeyByZXR1cm4g
bV9pZDsgfQogICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CiAgICAgRGlzY292ZXJ5IGRpc2NvdmVy
eSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzY292ZXJ5OyB9CiAKLXByb3RlY3RlZDoKLSAgICBCYXNp
Y0NyZWRlbnRpYWwoY29uc3QgU3RyaW5nJiwgVHlwZSwgRGlzY292ZXJ5KTsKLQogcHJpdmF0ZToK
ICAgICBTdHJpbmcgbV9pZDsKICAgICBUeXBlIG1fdHlwZTsKQEAgLTU3LDMgKzU4LDggQEAgcHJp
dmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2RlZmluZSBTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0JBU0lDX0NSRURFTlRJQUwoVG9DbGFzc05hbWUsIFR5cGUpIFwKK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6VG9DbGFzc05hbWUpIFwKKyAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6QmFzaWNDcmVkZW50aWFsJiBjcmVkZW50aWFs
KSB7IHJldHVybiBjcmVkZW50aWFsLmNyZWRlbnRpYWxUeXBlKCkgPT0gV2ViQ29yZTo6VHlwZTsg
fSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2ljQ3JlZGVudGlhbC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2ljQ3JlZGVudGlh
bC5pZGwKaW5kZXggZjIzZWQyZjAzZmUyODVlMTEyNTg0OWE5M2RmN2MzYWQ2MWIyYTI0Zi4uYTUw
Yzk0ZWJiMWIzM2NkODNkNTQ3YmIzZWYwOTViN2I2OTYwNTZkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9CYXNpY0NyZWRlbnRpYWwuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWND
cmVkZW50aWFsLmlkbApAQCAtMjUsNiArMjUsNyBAQAogCiBbCiAgICAgSW50ZXJmYWNlTmFtZT1D
cmVkZW50aWFsLAorICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJBdXRoZW50aWNhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTZWN1cmVDb250ZXh0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50
L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVu
dGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCmluZGV4IDllYzM4NThlMDEz
ZmQ1Yjc0YmEwMWMxZDQ5MDVhZjBjMjFiYzQ1MzMuLjFiNWJlOWI5NjE1ZjkzMTUwYWZmMGQzMWUx
MWE3YzU0YTg0ZWZjZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVu
dGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3Bw
CkBAIC0zNSwxNSArMzUsMjkgQEAKICNpbmNsdWRlICJKU0Jhc2ljQ3JlZGVudGlhbC5oIgogI2lu
Y2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWwuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Q3JlZGVudGlhbHNDb250YWluZXI6OlBlbmRpbmdQcm9taXNlOjpQZW5kaW5nUHJvbWlzZShSZWY8
RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIHN0ZDo6dW5pcXVlX3B0cjxUaW1lcj4mJiB0aW1l
cikKKyAgICA6IHByb21pc2UoV1RGTW92ZShwcm9taXNlKSkKKyAgICAsIHRpbWVyKFdURk1vdmUo
dGltZXIpKQoreworfQorCitDcmVkZW50aWFsc0NvbnRhaW5lcjo6UGVuZGluZ1Byb21pc2U6OlBl
bmRpbmdQcm9taXNlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAgICA6IHByb21p
c2UoV1RGTW92ZShwcm9taXNlKSkKK3sKK30KKwogQ3JlZGVudGlhbHNDb250YWluZXI6OkNyZWRl
bnRpYWxzQ29udGFpbmVyKFdlYWtQdHI8RG9jdW1lbnQ+JiYgZG9jdW1lbnQpCiAgICAgOiBtX2Rv
Y3VtZW50KFdURk1vdmUoZG9jdW1lbnQpKQogICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ3JlZGVudGlhbFF1ZXVlIikpCiB7CiB9CiAKKy8vIFRo
ZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXBwc2VjLWNy
ZWRlbnRpYWwtbWFuYWdlbWVudC8jc2FtZS1vcmlnaW4td2l0aC1pdHMtYW5jZXN0b3JzCisvLyBh
cyBvZiAxNCBOb3ZlbWJlciAyMDE3LgogYm9vbCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6ZG9lc0hh
dmVTYW1lT3JpZ2luQXNJdHNBbmNlc3RvcnMoKQogewogICAgIGlmICghbV9kb2N1bWVudCkKQEAg
LTU3LDIxICs3MSw0NiBAQCBib29sIENyZWRlbnRpYWxzQ29udGFpbmVyOjpkb2VzSGF2ZVNhbWVP
cmlnaW5Bc0l0c0FuY2VzdG9ycygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKy8vIEZJWE1FOiBT
aW5jZSB0aGUgdW5kZXJseWluZyBhdXRoZW50aWNhdG9yIG1vZGVsIGlzIG5vdCBjbGVhciBhdCB0
aGlzIG1vbWVudCwgdGhlIHRpbWVyIGlzIG1vdmVkIHRvIENyZWRlbnRpYWxzQ29udGFpbmVyIHN1
Y2ggdGhhdAorLy8gdGltZXIgY2FuIHN0YXkgd2l0aCBtYWluIHRocmVhZCBhbmQgdGhlcmVmb3Jl
IGNhbiBlYXNpbHkgdGltZSBvdXQgYWN0aXZpdGllcyBvbiB0aGUgd29yayBxdWV1ZS4KKy8vIEZJ
WE1FOiBUaGUgdXNhZ2VzIG9mIEFib3J0U2lnbmFsIGFyZSBhbHNvIG1vdmVkIGhlcmUgZm9yIHRo
ZSB2ZXJ5IHNhbWUgcmVhc29uLiBBbHNvIHRoZSBBYm9ydFNpZ25hbCBpcyBraW5kIG9mIGJvZ3Vz
IGF0IHRoaXMgbW9tZW50CisvLyBzaW5jZSBpdCBkb2Vzbid0IHN1cHBvcnQgb2JzZXJ2ZXJzIChv
ciBvdGhlciBtZWFucykgdG8gdHJpZ2dlciB0aGUgYWN0dWFsIGFib3J0IGFjdGlvbi4gRW5oYW5j
ZW1lbnQgdG8gQWJvcnRTaWduYWwgaXMgbmVlZGVkLgogdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0
aW9uVHlwZT4KLXZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OmRpc3BhdGNoVGFzayhPcGVyYXRp
b25UeXBlJiYgb3BlcmF0aW9uLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCisgICAg
dm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6ZGlzcGF0Y2hUYXNrKE9wZXJhdGlvblR5cGUmJiBv
cGVyYXRpb24sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgc3RkOjpvcHRpb25hbDx1
bnNpZ25lZCBsb25nPiB0aW1lT3V0SW5NcykKIHsKKyAgICBpZiAoIW1fZG9jdW1lbnQpCisgICAg
ICAgIHJldHVybjsKKwogICAgIGF1dG8qIHByb21pc2VJbmRleCA9IHByb21pc2UucHRyKCk7Ci0g
ICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKHByb21pc2VJbmRleCwgV1RGTW92ZShwcm9taXNlKSk7
CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyk7Ci0gICAgYXV0byB0YXNrID0gW3Byb21pc2VJbmRleCwgd2Vha1RoaXMsIGlzU2FtZU9yaWdp
bldpdGhJdHNBbmNlc3RvcnMgPSBkb2VzSGF2ZVNhbWVPcmlnaW5Bc0l0c0FuY2VzdG9ycygpLCBv
cGVyYXRpb24gPSBXVEZNb3ZlKG9wZXJhdGlvbildICgpIHsKLSAgICAgICAgYXV0byByZXN1bHQg
PSBvcGVyYXRpb24oaXNTYW1lT3JpZ2luV2l0aEl0c0FuY2VzdG9ycyk7CisgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBwcm9iYWJseSB0cmltIHRpbWVPdXRJbk1zIHRvIHNvbWUgbWF4IGFsbG93YWJs
ZSBudW1iZXIuCisgICAgaWYgKHRpbWVPdXRJbk1zKSB7CisgICAgICAgIGF1dG8gcGVuZGluZ1By
b21pc2UgPSBQZW5kaW5nUHJvbWlzZTo6Y3JlYXRlKFdURk1vdmUocHJvbWlzZSksIHN0ZDo6bWFr
ZV91bmlxdWU8VGltZXI+KFtwcm9taXNlSW5kZXgsIHdlYWtUaGlzXSAoKSB7CisgICAgICAgICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKSB7Cisg
ICAgICAgICAgICAgICAgLy8gQSBsb2NrIHNob3VsZCBub3QgYmUgbmVlZGVkIGFzIGFsbCBjYWxs
YmFja3MgYXJlIGV4ZWN1dGVkIGluIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgICAgICAgICBp
ZiAoYXV0byBwcm9taXNlID0gd2Vha1RoaXMtPm1fcGVuZGluZ1Byb21pc2VzLnRha2UocHJvbWlz
ZUluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgcHJvbWlzZS52YWx1ZSgpLT5wcm9taXNlLT5y
ZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICAgICAgfQorICAg
ICAgICB9KSk7CisgICAgICAgIHBlbmRpbmdQcm9taXNlLT50aW1lci0+c3RhcnRPbmVTaG90KFNl
Y29uZHModGltZU91dEluTXMudmFsdWUoKSAvIDEwMDAuMCkpOworICAgICAgICBtX3BlbmRpbmdQ
cm9taXNlcy5hZGQocHJvbWlzZUluZGV4LCBXVEZNb3ZlKHBlbmRpbmdQcm9taXNlKSk7CisgICAg
fSBlbHNlCisgICAgICAgIG1fcGVuZGluZ1Byb21pc2VzLmFkZChwcm9taXNlSW5kZXgsIFBlbmRp
bmdQcm9taXNlOjpjcmVhdGUoV1RGTW92ZShwcm9taXNlKSkpOworCisgICAgYXV0byB0YXNrID0g
W3Byb21pc2VJbmRleCwgd2Vha1RoaXMsIG9yaWdpbiA9IG1fZG9jdW1lbnQtPnNlY3VyaXR5T3Jp
Z2luKCkuaXNvbGF0ZWRDb3B5KCksIGlzU2FtZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMgPSBkb2Vz
SGF2ZVNhbWVPcmlnaW5Bc0l0c0FuY2VzdG9ycygpLCBvcGVyYXRpb24gPSBXVEZNb3ZlKG9wZXJh
dGlvbildICgpIHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBvcGVyYXRpb24ob3JpZ2luLCBpc1Nh
bWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJv
bWlzZUluZGV4LCB3ZWFrVGhpcywgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSAoKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAgICAgICAgICAgIC8vIEEgbG9j
ayBzaG91bGQgbm90IGJlIG5lZWRlZCBhcyBhbGwgY2FsbGJhY2tzIGFyZSBleGVjdXRlZCBpbiB0
aGUgbWFpbiB0aHJlYWQuCiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IHdlYWtU
aGlzLT5tX3BlbmRpbmdQcm9taXNlcy50YWtlKHByb21pc2VJbmRleCkpIHsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHByb21pc2UudmFsdWUoKS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwot
ICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBwcm9taXNl
LnZhbHVlKCktPnJlc29sdmU8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPEJhc2ljQ3JlZGVudGlh
bD4+PihyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkuZ2V0KCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvbWlzZS52YWx1ZSgpLT5wcm9taXNlLT5yZWplY3QocmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEdvdCBzb21lIGNyYXp5IGNvbXBpbGUgZXJyb3Igd2hlbiBJIHdh
cyB0cnlpbmcgdG8gcGFzcyBSSFMgdG8gdGhlIHJlc29sdmUgbWV0aG9kLgorICAgICAgICAgICAg
ICAgICAgICAgICAgUmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4gY3JlZGVudGlhbCA9IHJlc3VsdC5y
ZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb21pc2UudmFs
dWUoKS0+cHJvbWlzZS0+cmVzb2x2ZTxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8QmFzaWNDcmVk
ZW50aWFsPj4+KGNyZWRlbnRpYWwuZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9KTsKQEAgLTk5LDEwICsxMzgs
MTAgQEAgdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGF1dG8gb3BlcmF0aW9uID0gW29wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpXSAoYm9vbCBp
c1NhbWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKSB7Ci0gICAgICAgIHJldHVybiBQdWJsaWNLZXlD
cmVkZW50aWFsOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShvcHRpb25zLCBpc1NhbWVPcmln
aW5XaXRoSXRzQW5jZXN0b3JzKTsKKyAgICBhdXRvIG9wZXJhdGlvbiA9IFtvcHRpb25zID0gV1RG
TW92ZShvcHRpb25zKV0gKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGJvb2wgaXNTYW1l
T3JpZ2luV2l0aEl0c0FuY2VzdG9ycykgeworICAgICAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVu
dGlhbDo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2Uob3JpZ2luLCBvcHRpb25zLCBpc1NhbWVP
cmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKICAgICB9OwotICAgIGRpc3BhdGNoVGFzayhXVEZNb3Zl
KG9wZXJhdGlvbiksIFdURk1vdmUocHJvbWlzZSkpOworICAgIGRpc3BhdGNoVGFzayhXVEZNb3Zl
KG9wZXJhdGlvbiksIFdURk1vdmUocHJvbWlzZSksIG9wdGlvbnMucHVibGljS2V5LT50aW1lb3V0
KTsKIH0KIAogdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6c3RvcmUoY29uc3QgQmFzaWNDcmVk
ZW50aWFsJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQpAQCAtMTEyLDYgKzE1MSw4
IEBAIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OnN0b3JlKGNvbnN0IEJhc2ljQ3JlZGVudGlh
bCYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYKIAogdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6
aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKKyAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVudHMg
aHR0cHM6Ly93d3cudzMub3JnL1RSL2NyZWRlbnRpYWwtbWFuYWdlbWVudC0xLyNhbGdvcml0aG0t
Y3JlYXRlIGFzIG9mIDQgQXVndXN0IDIwMTcKKyAgICAvLyB3aXRoIGVuaGFuY2VtZW50IGZyb20g
MTQgTm92ZW1iZXIgMjAxNyBFZGl0b3IncyBEcmFmdC4KICAgICAvLyBGSVhNRTogT3B0aW9uYWwg
b3B0aW9ucyBhcmUgcGFzc2VkIHdpdGggbm8gY29udGVudHMuIEl0IHNob3VsZCBiZSBzdGQ6Om9w
dGlvbmFsLgogICAgIGlmICgoIW9wdGlvbnMuc2lnbmFsICYmICFvcHRpb25zLnB1YmxpY0tleSkg
fHwgIW1fZG9jdW1lbnQpIHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5v
dFN1cHBvcnRlZEVycm9yIH0pOwpAQCAtMTIxLDIzICsxNjIsMjUgQEAgdm9pZCBDcmVkZW50aWFs
c0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMs
IFJlZjxEZWYKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3Ig
fSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgLy8gU3RlcCAxLTIuCiAgICAgQVNTRVJU
KG1fZG9jdW1lbnQtPmlzU2VjdXJlQ29udGV4dCgpKTsKIAotICAgIC8vIFRoaXMgaXMgYSBzaG9y
dGN1dCB0byBodHRwczovL3d3dy53My5vcmcvVFIvY3JlZGVudGlhbC1tYW5hZ2VtZW50LTEvI2Ny
ZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy1yZWxldmFudC1jcmVkZW50aWFsLWludGVyZmFjZS1vYmpl
Y3RzLAotICAgIC8vIGFzIHdlIG9ubHkgc3VwcG9ydCBvbmUga2luZCBvZiBjcmVkZW50aWFscy4K
KyAgICAvLyBTdGVwIDMtNC4gU2hvcnRjdXQgYXMgd2Ugb25seSBzdXBwb3J0IG9uZSBraW5kIG9m
IGNyZWRlbnRpYWxzLgogICAgIGlmICghb3B0aW9ucy5wdWJsaWNLZXkpIHsKICAgICAgICAgcHJv
bWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBvcGVyYXRpb24gPSBbb3B0aW9ucyA9IFdURk1vdmUo
b3B0aW9ucyldIChib29sIGlzU2FtZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMpIHsKKyAgICBhdXRv
IHRpbWVvdXQgPSBvcHRpb25zLnB1YmxpY0tleS0+dGltZW91dDsKKyAgICAvLyBTdGVwIDUtNy4K
KyAgICBhdXRvIG9wZXJhdGlvbiA9IFtvcHRpb25zID0gV1RGTW92ZShvcHRpb25zLnB1YmxpY0tl
eS52YWx1ZSgpKV0gKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGJvb2wgaXNTYW1lT3Jp
Z2luV2l0aEl0c0FuY2VzdG9ycykgewogICAgICAgICAvLyBTaG9ydGN1dCBhcyB3ZWxsLgotICAg
ICAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVudGlhbDo6Y3JlYXRlKG9wdGlvbnMsIGlzU2FtZU9y
aWdpbldpdGhJdHNBbmNlc3RvcnMpOworICAgICAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVudGlh
bDo6Y3JlYXRlKG9yaWdpbiwgb3B0aW9ucywgaXNTYW1lT3JpZ2luV2l0aEl0c0FuY2VzdG9ycyk7
CiAgICAgfTsKLSAgICBkaXNwYXRjaFRhc2soV1RGTW92ZShvcGVyYXRpb24pLCBXVEZNb3ZlKHBy
b21pc2UpKTsKKyAgICBkaXNwYXRjaFRhc2soV1RGTW92ZShvcGVyYXRpb24pLCBXVEZNb3ZlKHBy
b21pc2UpLCBvcHRpb25zLnB1YmxpY0tleS0+dGltZW91dCk7CiB9CiAKLXZvaWQgQ3JlZGVudGlh
bHNDb250YWluZXI6OnByZXZlbnRTaWxlbnRBY2Nlc3MoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQordm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6cHJldmVudFNpbGVudEFjY2VzcyhS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAgcHJvbWlzZS0+cmVq
ZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRh
aW5lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVk
ZW50aWFsc0NvbnRhaW5lci5oCmluZGV4IDM5MzFiOGRkM2ExYzkzMjAzNGMyZDM3NWNjYTgxNjdm
ZTI5YWY3YmMuLmM5ZDM3MTM0MDliNWZiZWM5ODUzYTA1ZTFhOTI3ZTRiNTYwNjJiMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVu
dGlhbHNDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxt
YW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJU
aW1lci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTUwLDE5ICs1MSw0MCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGlzQ3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmJiwgUmVm
PERlZmVycmVkUHJvbWlzZT4mJik7CiAKLSAgICB2b2lkIHByZXZlbnRTaWxlbnRBY2Nlc3MoUmVm
PERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBwcmV2ZW50U2lsZW50QWNjZXNzKFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIENyZWRlbnRpYWxzQ29u
dGFpbmVyKFdlYWtQdHI8RG9jdW1lbnQ+JiYpOwogCiAgICAgYm9vbCBkb2VzSGF2ZVNhbWVPcmln
aW5Bc0l0c0FuY2VzdG9ycygpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGU+
Ci0gICAgdm9pZCBkaXNwYXRjaFRhc2soT3BlcmF0aW9uVHlwZSYmLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmKTsKKyAgICB2b2lkIGRpc3BhdGNoVGFzayhPcGVyYXRpb25UeXBlJiYsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYsIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQgbG9uZz4gdGltZU91dEluTXMg
PSBzdGQ6Om51bGxvcHQpOwogCiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKLSAg
ICBIYXNoTWFwPERlZmVycmVkUHJvbWlzZSosIFJlZjxEZWZlcnJlZFByb21pc2U+PiBtX3BlbmRp
bmdQcm9taXNlczsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3dvcmtRdWV1ZTsKICAgICBXZWFrUHRy
RmFjdG9yeTxDcmVkZW50aWFsc0NvbnRhaW5lcj4gbV93ZWFrUHRyRmFjdG9yeTsKKworICAgIC8v
IEJ1bmRsZSBwcm9taXNlIGFuZCB0aW1lciwgc3VjaCB0aGF0IHRoZSB0aW1lciBjYW4KKyAgICAv
LyB0aW1lcyBvdXQgdGhlIGNvcnJlc3BvbmRpbmcgcHJvbXNpZS4KKyAgICBzdHJ1Y3QgUGVuZGlu
Z1Byb21pc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxQZW5kaW5nUHJvbWlzZT4geworICAgICAgICBz
dGF0aWMgUmVmPFBlbmRpbmdQcm9taXNlPiBjcmVhdGUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlLCBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+JiYgdGltZXIpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBlbmRpbmdQcm9taXNlKFdURk1vdmUocHJvbWlz
ZSksIFdURk1vdmUodGltZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIFJlZjxQZW5k
aW5nUHJvbWlzZT4gY3JlYXRlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVuZGluZ1Byb21pc2UoV1RG
TW92ZShwcm9taXNlKSkpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBQZW5k
aW5nUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+
JiYpOworICAgICAgICBQZW5kaW5nUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKKwor
ICAgIHB1YmxpYzoKKyAgICAgICAgUmVmPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZTsKKyAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiB0aW1lcjsKKyAgICB9OworICAgIEhhc2hNYXA8RGVm
ZXJyZWRQcm9taXNlKiwgUmVmPFBlbmRpbmdQcm9taXNlPj4gbV9wZW5kaW5nUHJvbWlzZXM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9BdXRoZW50aWNhdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzc3MmMyNTVkOTQ0YWJl
NzdmOTkwY2EyODA5ZmNhNDg5YmEwMjgzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yLmNwcApAQCAtMCwwICsxLDU2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3Iu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBdXRoZW50aWNhdG9yJiBBdXRoZW50aWNhdG9y
OjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdXRoZW50aWNhdG9y
PiBhdXRoZW50aWNhdG9yOworICAgIHJldHVybiBhdXRoZW50aWNhdG9yOworfQorCitFeGNlcHRp
b25PcjxWZWN0b3I8dWludDhfdD4+IEF1dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6UnBFbnRpdHkmLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zOjpVc2VyRW50aXR5JiB1c2VyLCBjb25zdCBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4mLCBjb25zdCBWZWN0b3I8UHVibGljS2V5Q3JlZGVu
dGlhbERlc2NyaXB0b3I+JikgY29uc3QKK3sKKyAgICAvLyBVc2VyIGNhbmNlbGxhdGlvbiBpcyBl
ZmZlY2l2ZWx5IE5vdEFsbG93ZWRFcnJvci4KKyAgICBpZiAodXNlci5kaXNwbGF5TmFtZSA9PSAi
Sm9obiIpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfTsKKwor
ICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgY29tcGxldGVseSBmYWtlIGZvciBub3cuCisgICAgLy8g
RmlsbCBhbGwgcGFydHMgYmVmb3JlIENyZWRlbnRpYWxJRCB3aXRoIDB4MDAKKyAgICBWZWN0b3I8
dWludDhfdD4gYXR0ZXN0YXRpb25PYmplY3QoNDMsIDB4MDApOworICAgIC8vIEZpbGwgbGVuZ3Ro
IG9mIENyZWRlbnRpYWxJRDogMSBCeXRlCisgICAgYXR0ZXN0YXRpb25PYmplY3QuYXBwZW5kKDB4
MDApOworICAgIGF0dGVzdGF0aW9uT2JqZWN0LmFwcGVuZCgweDAxKTsKKyAgICAvLyBGaWxsIENy
ZWRlbnRpYWxJRDogMjU1CisgICAgYXR0ZXN0YXRpb25PYmplY3QuYXBwZW5kKDB4ZmYpOworICAg
IC8vIEFwcGVuZCBjbGllbnREYXRhSnNvbkhhc2gKKyAgICBhdHRlc3RhdGlvbk9iamVjdC5hcHBl
bmRWZWN0b3IoaGFzaCk7CisgICAgcmV0dXJuIGF0dGVzdGF0aW9uT2JqZWN0OworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
QXV0aGVudGljYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwZDFlMzNlY2I2NWNiYTEzZTZhODUyNDE3YjBl
YzdiYTdhZDExY2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3IuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIlB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8v
IEZJWE1FOiBDb25zaWRlciBtb3ZpbmcgYWxsIHN0YXRpYyBtZXRob2RzIGZyb20gUHVibGljS2V5
Q3JlZGVudGlhbCB0byBoZXJlIGFuZCBtYWtpbmcgdGhpcworLy8gYXMgYW4gYXV0aGVudGljYXRv
ciBtYW5hZ2VyIHRoYXQgY29udHJvbHMgYWxsIGF1dGhlbnRpY2F0b3IgYWN0aXZpdGllcywgbW9z
dGx5IGxpa2VseSBhc255YworLy8gZm9yIGF0dGVzdGF0aW9ucy4KK2NsYXNzIEF1dGhlbnRpY2F0
b3IgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1dGhlbnRpY2F0b3IpOworICAgIGZyaWVu
ZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxBdXRoZW50aWNhdG9yPjsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgQXV0aGVudGljYXRvciYgc2luZ2xldG9uKCk7CisKKyAgICAvLyBPbWl0IHJlcXVpcmVSZXNp
ZGVudEtleSwgcmVxdWlyZVVzZXJQcmVzZW5jZSwgYW5kIHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9u
IGFzIHdlIGFsd2F5cyBwcm92aWRlIHJlc2lkZW50IGtleXMgYW5kIHJlcXVpcmUgdXNlciB2ZXJp
ZmljYXRpb24uCisgICAgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBtYWtlQ3JlZGVudGlh
bChjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnM6OlJwRW50aXR5JiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9uczo6VXNlckVudGl0eSYsIGNvbnN0IFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiYsIGNvbnN0IFZlY3RvcjxQdWJsaWNLZXlDcmVk
ZW50aWFsRGVzY3JpcHRvcj4mIGV4Y2x1ZGVDcmVkZW50aWFsSWRzKSBjb25zdDsKKworcHJpdmF0
ZToKKyAgICBBdXRoZW50aWNhdG9yKCkgPSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwCmluZGV4IDU3MDRmMDFi
YzBiZWRkMTBhMjMyYjM0N2Y0NDgzZTc2NDVmNTQ3YTguLmI0NWJkYmExOThkZWNiZWYxNTk1YjU2
NTg3MzFjNzhiMjJmMWQ0NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHAK
QEAgLTM2LDIxICszNiwxNyBAQCBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OkF1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZShSZWZQdHI8QXJyYXlCdWZmZQogewogfQogCi1BdXRo
ZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6On5BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9u
c2UoKQotewotfQotCi1BcnJheUJ1ZmZlciogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNl
OjphdXRoZW50aWNhdG9yRGF0YSgpCitBcnJheUJ1ZmZlciogQXV0aGVudGljYXRvckFzc2VydGlv
blJlc3BvbnNlOjphdXRoZW50aWNhdG9yRGF0YSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fYXV0
aGVudGljYXRvckRhdGEuZ2V0KCk7CiB9CiAKLUFycmF5QnVmZmVyKiBBdXRoZW50aWNhdG9yQXNz
ZXJ0aW9uUmVzcG9uc2U6OnNpZ25hdHVyZSgpCitBcnJheUJ1ZmZlciogQXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlOjpzaWduYXR1cmUoKSBjb25zdAogewogICAgIHJldHVybiBtX3NpZ25h
dHVyZS5nZXQoKTsKIH0KIAotQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZTo6dXNlckhhbmRsZSgpCitBcnJheUJ1ZmZlciogQXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlOjp1c2VySGFuZGxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV91c2VySGFuZGxlLmdl
dCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmgKaW5kZXggOTdhYjY3OThhYmQz
MDM4M2FmZmRlNjM4MGMwNWFjNzhlMDc1N2UwZC4uNzgzYWNiYWY4ZDg0NWY5NDZiNTQ3MGVkNzA2
YTlhOTM2MjUzMGVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oCkBAIC0zMSwx
NyArMzEsMjcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdXRoZW50aWNhdG9yQXNz
ZXJ0aW9uUmVzcG9uc2UgOiBwdWJsaWMgQXV0aGVudGljYXRvclJlc3BvbnNlIHsKIHB1YmxpYzoK
LSAgICBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UoUmVmUHRyPEFycmF5QnVmZmVyPiYm
IGNsaWVudERhdGFKU09OLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgYXV0aGVudGljYXRvckRhdGEs
IFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBzaWduYXR1cmUsIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiB1
c2VySGFuZGxlKTsKLSAgICB2aXJ0dWFsIH5BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2Uo
KTsKKyAgICBzdGF0aWMgUmVmPEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4gY3JlYXRl
KFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBjbGllbnREYXRhSlNPTiwgUmVmUHRyPEFycmF5QnVmZmVy
PiYmIGF1dGhlbnRpY2F0b3JEYXRhLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgc2lnbmF0dXJlLCBS
ZWZQdHI8QXJyYXlCdWZmZXI+JiYgdXNlckhhbmRsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZShXVEZNb3ZlKGNsaWVu
dERhdGFKU09OKSwgV1RGTW92ZShhdXRoZW50aWNhdG9yRGF0YSksIFdURk1vdmUoc2lnbmF0dXJl
KSwgV1RGTW92ZSh1c2VySGFuZGxlKSkpOworICAgIH0KKworICAgIHZpcnR1YWwgfkF1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZSgpID0gZGVmYXVsdDsKIAotICAgIEFycmF5QnVmZmVyKiBh
dXRoZW50aWNhdG9yRGF0YSgpOwotICAgIEFycmF5QnVmZmVyKiBzaWduYXR1cmUoKTsKLSAgICBB
cnJheUJ1ZmZlciogdXNlckhhbmRsZSgpOworICAgIEFycmF5QnVmZmVyKiBhdXRoZW50aWNhdG9y
RGF0YSgpIGNvbnN0OworICAgIEFycmF5QnVmZmVyKiBzaWduYXR1cmUoKSBjb25zdDsKKyAgICBB
cnJheUJ1ZmZlciogdXNlckhhbmRsZSgpIGNvbnN0OwogCiBwcml2YXRlOgorICAgIEF1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZShSZWZQdHI8QXJyYXlCdWZmZXI+JiYgY2xpZW50RGF0YUpT
T04sIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBhdXRoZW50aWNhdG9yRGF0YSwgUmVmUHRyPEFycmF5
QnVmZmVyPiYmIHNpZ25hdHVyZSwgUmVmUHRyPEFycmF5QnVmZmVyPiYmIHVzZXJIYW5kbGUpOwor
CisgICAgVHlwZSB0eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gVHlwZTo6QXNzZXJ0aW9uOyB9
CisKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1fYXV0aGVudGljYXRvckRhdGE7CiAgICAgUmVm
UHRyPEFycmF5QnVmZmVyPiBtX3NpZ25hdHVyZTsKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1f
dXNlckhhbmRsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19BVVRIRU5USUNBVE9SX1JFU1BPTlNFKEF1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZSwgQXV0aGVudGljYXRvclJlc3BvbnNlOjpUeXBlOjpBc3NlcnRpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3Rh
dGlvblJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuY3BwCmluZGV4IDgxOTYwMzBmMmRkZTQ3OWViYjll
OGNlODFhNmE3N2FkNTkwYzk1MDAuLjhiMTA4MmZmYTg0Nzk3Mzc5MTFlODk5OWNkYjQzNWNlYjY4
MDM2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuY3BwCkBAIC0zNCwx
MSArMzQsNyBAQCBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6QXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2UoUmVmUHRyPEFycmF5QgogewogfQogCi1BdXRoZW50aWNhdG9y
QXR0ZXN0YXRpb25SZXNwb25zZTo6fkF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKCkK
LXsKLX0KLQotQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjph
dHRlc3RhdGlvbk9iamVjdCgpCitBcnJheUJ1ZmZlciogQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9hdHRl
c3RhdGlvbk9iamVjdC5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2Uu
aAppbmRleCBiYTliYmNkNTNiYTJjZTk3ZDg0MWJlNWVkNDRhMDUxZDUwY2I4YTRlLi5jMjQ0MDFk
YWJhOGU3YjA1ZGIyMTYzZTk0MmI5NTQzM2FhZGE5ZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0
YXRpb25SZXNwb25zZS5oCkBAIC0zMSwxMyArMzEsMjMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSA6IHB1YmxpYyBBdXRoZW50
aWNhdG9yUmVzcG9uc2UgewogcHVibGljOgotICAgIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJl
c3BvbnNlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBjbGllbnREYXRhSlNPTiwgUmVmUHRyPEFycmF5
QnVmZmVyPiYmIGF0dGVzdGF0aW9uT2JqZWN0KTsKLSAgICB2aXJ0dWFsIH5BdXRoZW50aWNhdG9y
QXR0ZXN0YXRpb25SZXNwb25zZSgpOworICAgIHN0YXRpYyBSZWY8QXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2U+IGNyZWF0ZShSZWZQdHI8QXJyYXlCdWZmZXI+JiYgY2xpZW50RGF0YUpT
T04sIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBhdHRlc3RhdGlvbk9iamVjdCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNl
KFdURk1vdmUoY2xpZW50RGF0YUpTT04pLCBXVEZNb3ZlKGF0dGVzdGF0aW9uT2JqZWN0KSkpOwor
ICAgIH0KKworICAgIHZpcnR1YWwgfkF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKCkg
PSBkZWZhdWx0OwogCi0gICAgQXJyYXlCdWZmZXIqIGF0dGVzdGF0aW9uT2JqZWN0KCk7CisgICAg
QXJyYXlCdWZmZXIqIGF0dGVzdGF0aW9uT2JqZWN0KCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAg
QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UoUmVmUHRyPEFycmF5QnVmZmVyPiYmIGNs
aWVudERhdGFKU09OLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgYXR0ZXN0YXRpb25PYmplY3QpOwor
CisgICAgVHlwZSB0eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gVHlwZTo6QXR0ZXN0YXRpb247
IH0KKwogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbV9hdHRlc3RhdGlvbk9iamVjdDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BVVRIRU5U
SUNBVE9SX1JFU1BPTlNFKEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLCBBdXRoZW50
aWNhdG9yUmVzcG9uc2U6OlR5cGU6OkF0dGVzdGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwCmluZGV4
IGRkYjE4YjM2NDFiM2EwMDI4NGNjMjAwMzUyZTNlZDVlYjNhYThlOWIuLjk1N2M2ZGVjODdlNDhk
NTFjZjA3NjUyMWE0YmIyNDAyYjgwNWM0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5jcHAKQEAgLTMzLDEx
ICszMyw3IEBAIEF1dGhlbnRpY2F0b3JSZXNwb25zZTo6QXV0aGVudGljYXRvclJlc3BvbnNlKFJl
ZlB0cjxBcnJheUJ1ZmZlcj4mJiBjbGllbnREYXRhSlNPCiB7CiB9CiAKLUF1dGhlbnRpY2F0b3JS
ZXNwb25zZTo6fkF1dGhlbnRpY2F0b3JSZXNwb25zZSgpCi17Ci19Ci0KLUFycmF5QnVmZmVyKiBB
dXRoZW50aWNhdG9yUmVzcG9uc2U6OmNsaWVudERhdGFKU09OKCkKK0FycmF5QnVmZmVyKiBBdXRo
ZW50aWNhdG9yUmVzcG9uc2U6OmNsaWVudERhdGFKU09OKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9jbGllbnREYXRhSlNPTi5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oCmluZGV4IGEzYTE2YjU2ZjQ5
N2FiYjM0MGRiYzI5MzJkYmI0Mzc0ZTk0NjJiODkuLmQ0MTczYjk5ODM4ZTQwYTFlMDM2MDIwODI0
YmYxZThmYWFiOGUyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuaApAQCAtMjcsMTggKzI3LDMxIEBACiAKICNp
bmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEF1dGhlbnRpY2F0b3JSZXNwb25zZSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxBdXRoZW50aWNhdG9yUmVzcG9uc2U+IHsKIHB1YmxpYzoKKyAgICBlbnVtIGNs
YXNzIFR5cGUgeworICAgICAgICBBc3NlcnRpb24sCisgICAgICAgIEF0dGVzdGF0aW9uCisgICAg
fTsKKwogICAgIGV4cGxpY2l0IEF1dGhlbnRpY2F0b3JSZXNwb25zZShSZWZQdHI8QXJyYXlCdWZm
ZXI+JiYpOwotICAgIHZpcnR1YWwgfkF1dGhlbnRpY2F0b3JSZXNwb25zZSgpOworICAgIHZpcnR1
YWwgfkF1dGhlbnRpY2F0b3JSZXNwb25zZSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgVHlw
ZSB0eXBlKCkgY29uc3QgPSAwOwogCi0gICAgQXJyYXlCdWZmZXIqIGNsaWVudERhdGFKU09OKCk7
CisgICAgQXJyYXlCdWZmZXIqIGNsaWVudERhdGFKU09OKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAg
ICAgUmVmUHRyPEFycmF5QnVmZmVyPiBtX2NsaWVudERhdGFKU09OOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQVVUSEVOVElD
QVRPUl9SRVNQT05TRShUb0NsYXNzTmFtZSwgVHlwZSkgXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19CRUdJTihXZWJDb3JlOjpUb0NsYXNzTmFtZSkgXAorICAgIHN0YXRpYyBib29sIGlzVHlwZShj
b25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2UmIHJlc3BvbnNlKSB7IHJldHVybiBy
ZXNwb25zZS50eXBlKCkgPT0gV2ViQ29yZTo6VHlwZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0VORCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1
dGhlbnRpY2F0b3JSZXNwb25zZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L0F1dGhlbnRpY2F0b3JSZXNwb25zZS5pZGwKaW5kZXggZTVjNGRkY2M1ODRjNGI4MTFjMjVmMjg3
NjAxZWY2OGViMTNiNmZiMS4uMWJmNDA5OWQxMmI0ZjYyNDlkOTViM2ZlYmFiNDgzOGY3N2M4M2U2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yUmVzcG9uc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvclJlc3BvbnNlLmlkbApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKIFsKKyAgICBD
dXN0b21Ub0pTT2JqZWN0LAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViQXV0aGVudGljYXRpb24s
CiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgU2VjdXJlQ29udGV4dCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwCmlu
ZGV4IDE3YWNiMmYxODUyNDBlOTkxMTlmMWFlMjMyMTJhZjIxMTg4ODk4YzEuLjU5YzczZjQ1NTg1
NmU1MjM0OWQzODU4MTI4MDc3OWI0NGE5MDU5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNwcApAQCAtMjYsMTIg
KzI2LDc1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVu
dGlhbC5oIgogCisjaW5jbHVkZSAiQXV0aGVudGljYXRvci5oIgorI2luY2x1ZGUgIkF1dGhlbnRp
Y2F0b3JSZXNwb25zZS5oIgorI2luY2x1ZGUgIkNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCIK
ICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCisjaW5jbHVkZSA8cGFsL2NyeXB0by9DcnlwdG9EaWdlc3QuaD4KKyNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0Jhc2U2NC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVB1YmxpY0tleUNy
ZWRlbnRpYWw6OlB1YmxpY0tleUNyZWRlbnRpYWwoY29uc3QgU3RyaW5nJiBpZCkKLSAgICA6IEJh
c2ljQ3JlZGVudGlhbChpZCwgVHlwZTo6UHVibGljS2V5LCBEaXNjb3Zlcnk6OlJlbW90ZSkKK25h
bWVzcGFjZSBQdWJsaWNLZXlDcmVkZW50aWFsSW50ZXJuYWwgeworCisvLyBUaGUgbGF5b3V0IG9m
IGF0dGVzdGF0aW9uIG9iamVjdDogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNhdHRl
c3RhdGlvbi1vYmplY3QgYXMgb2YgNSBEZWNlbWJlciAyMDE3LgorLy8gSGVyZSBpcyBhIHN1bW1h
cnkgYmVmb3JlIENyZWRlbnRpYWxJRCBpbiB0aGUgbGF5b3V0LiBBbGwgbGVuZ3RocyBhcmUgZml4
ZWQuCisvLyBSUCBJRCBoYXNoICgzMikgfHwgRkxBR1MgKDEpIHx8IENPVU5URVIgKDQpIHx8IEFB
R1VJRCAoMTYpIHx8IEwgKDIpIHx8IENSRURFTlRJQUwgSUQgKD8pIHx8IC4uLgorc3RhdGljIGNv
bnN0ZXhwciBzaXplX3QgQ3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ID0gNDM7CisKK2VudW0gY2xh
c3MgQ2xpZW50RGF0YVR5cGUgeworICAgIENyZWF0ZSwKKyAgICBHZXQKK307CisKKy8vIEZJWE1F
OiBBZGQgdG9rZW4gYmluZGluZyBJRCBhbmQgZXh0ZW5zaW9ucy4KK3N0YXRpYyBSZWY8QXJyYXlC
dWZmZXI+IHByb2R1Y2VDbGllbnREYXRhSnNvbihDbGllbnREYXRhVHlwZSB0eXBlLCBjb25zdCBC
dWZmZXJTb3VyY2UmIGNoYWxsZW5nZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikKK3sK
KyAgICBhdXRvIG9iamVjdCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgc3dpdGNoICh0
eXBlKSB7CisgICAgY2FzZSBDbGllbnREYXRhVHlwZTo6Q3JlYXRlOgorICAgICAgICBvYmplY3Qt
PnNldFN0cmluZyhBU0NJSUxpdGVyYWwoInR5cGUiKSwgQVNDSUlMaXRlcmFsKCJ3ZWJhdXRobi5j
cmVhdGUiKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2xpZW50RGF0YVR5cGU6OkdldDoK
KyAgICAgICAgb2JqZWN0LT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJ0eXBlIiksIEFTQ0lJTGl0
ZXJhbCgid2ViYXV0aG4uZ2V0IikpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgb2JqZWN0
LT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJjaGFsbGVuZ2UiKSwgV1RGOjpiYXNlNjRVUkxFbmNv
ZGUoY2hhbGxlbmdlLmRhdGEoKSwgY2hhbGxlbmdlLmxlbmd0aCgpKSk7CisgICAgb2JqZWN0LT5z
ZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJvcmlnaW4iKSwgb3JpZ2luLnRvUmF3U3RyaW5nKCkpOwor
ICAgIC8vIEZJWE1FOiBUaGlzIG1pZ2h0IGJlIHBsYXRmb3JtIGRlcGVuZGVudC4KKyAgICBvYmpl
Y3QtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImhhc2hBbGdvcml0aG0iKSwgQVNDSUlMaXRlcmFs
KCJTSEEtMjU2IikpOworCisgICAgYXV0byB1dGY4SlNPTlN0cmluZyA9IG9iamVjdC0+dG9KU09O
U3RyaW5nKCkudXRmOCgpOworICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHV0ZjhKU09O
U3RyaW5nLmRhdGEoKSwgdXRmOEpTT05TdHJpbmcubGVuZ3RoKCkpOworfQorCitzdGF0aWMgVmVj
dG9yPHVpbnQ4X3Q+IHByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2goY29uc3QgUmVmPEFycmF5QnVm
ZmVyPiYgY2xpZW50RGF0YUpzb24pCit7CisgICAgYXV0byBjcnlwdG8gPSBQQUw6OkNyeXB0b0Rp
Z2VzdDo6Y3JlYXRlKFBBTDo6Q3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yNTYpOworICAg
IGNyeXB0by0+YWRkQnl0ZXMoY2xpZW50RGF0YUpzb24tPmRhdGEoKSwgY2xpZW50RGF0YUpzb24t
PmJ5dGVMZW5ndGgoKSk7CisgICAgcmV0dXJuIGNyeXB0by0+Y29tcHV0ZUhhc2goKTsKK30KKwor
c3RhdGljIFJlZlB0cjxBcnJheUJ1ZmZlcj4gZ2V0SWRGcm9tQXR0ZXN0YXRpb25PYmplY3QoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBhdHRlc3RhdGlvbk9iamVjdCkKK3sKKyAgICAvLyBUaGUgYnl0
ZSBsZW5ndGggb2YgTCBpcyAyLgorICAgIGlmIChhdHRlc3RhdGlvbk9iamVjdC5zaXplKCkgPCBD
cmVkZW50aWFsSWRMZW5ndGhPZmZzZXQgKyAyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICBzaXplX3QgbGVuZ3RoID0gKGF0dGVzdGF0aW9uT2JqZWN0W0NyZWRlbnRpYWxJZExlbmd0aE9m
ZnNldF0gPDwgOCkgKyBhdHRlc3RhdGlvbk9iamVjdFtDcmVkZW50aWFsSWRMZW5ndGhPZmZzZXQg
KyAxXTsKKyAgICBpZiAoYXR0ZXN0YXRpb25PYmplY3Quc2l6ZSgpIDwgQ3JlZGVudGlhbElkTGVu
Z3RoT2Zmc2V0ICsgMiArIGxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0
dXJuIEFycmF5QnVmZmVyOjpjcmVhdGUoYXR0ZXN0YXRpb25PYmplY3QuZGF0YSgpICsgQ3JlZGVu
dGlhbElkTGVuZ3RoT2Zmc2V0ICsgMiwgbGVuZ3RoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgUHVi
bGljS2V5Q3JlZGVudGlhbEludGVybmFsCisKK1B1YmxpY0tleUNyZWRlbnRpYWw6OlB1YmxpY0tl
eUNyZWRlbnRpYWwoUmVmUHRyPEFycmF5QnVmZmVyPiYmIGlkLCBSZWZQdHI8QXV0aGVudGljYXRv
clJlc3BvbnNlPiYmIHJlc3BvbnNlKQorICAgIDogQmFzaWNDcmVkZW50aWFsKFdURjo6YmFzZTY0
VVJMRW5jb2RlKGlkLT5kYXRhKCksIGlkLT5ieXRlTGVuZ3RoKCkpLCBUeXBlOjpQdWJsaWNLZXks
IERpc2NvdmVyeTo6UmVtb3RlKQorICAgICwgbV9yYXdJZChXVEZNb3ZlKGlkKSkKKyAgICAsIG1f
cmVzcG9uc2UoV1RGTW92ZShyZXNwb25zZSkpCiB7CiB9CiAKQEAgLTQwLDcgKzEwMyw3IEBAIFZl
Y3RvcjxSZWY8QmFzaWNDcmVkZW50aWFsPj4gUHVibGljS2V5Q3JlZGVudGlhbDo6Y29sbGVjdEZy
b21DcmVkZW50aWFsU3RvcmUoQ3JlCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotRXhjZXB0aW9uT3I8
UmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4+IFB1YmxpY0tleUNyZWRlbnRpYWw6OmRpc2NvdmVyRnJv
bUV4dGVybmFsU291cmNlKGNvbnN0IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIGJvb2wpCitF
eGNlcHRpb25PcjxSZWZQdHI8QmFzaWNDcmVkZW50aWFsPj4gUHVibGljS2V5Q3JlZGVudGlhbDo6
ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBib29sKQogewogICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogfQpAQCAtNTAsMjIgKzExMyw2NCBAQCBSZWZQdHI8QmFz
aWNDcmVkZW50aWFsPiBQdWJsaWNLZXlDcmVkZW50aWFsOjpzdG9yZShSZWZQdHI8QmFzaWNDcmVk
ZW50aWFsPiYmLCBibwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1FeGNlcHRpb25PcjxSZWZQ
dHI8QmFzaWNDcmVkZW50aWFsPj4gUHVibGljS2V5Q3JlZGVudGlhbDo6Y3JlYXRlKGNvbnN0IENy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmLCBib29sKQorRXhjZXB0aW9uT3I8UmVmUHRyPEJhc2lj
Q3JlZGVudGlhbD4+IFB1YmxpY0tleUNyZWRlbnRpYWw6OmNyZWF0ZShjb25zdCBTZWN1cml0eU9y
aWdpbiYgY2FsbGVyT3JpZ2luLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zJiBvcHRpb25zLCBib29sIHNhbWVPcmlnaW5XaXRoQW5jZXN0b3JzKQogewotICAgIHJldHVy
biBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworICAgIHVzaW5nIG5hbWVzcGFjZSBQ
dWJsaWNLZXlDcmVkZW50aWFsSW50ZXJuYWw7CisKKyAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxl
bWVudHMgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNjcmVhdGVDcmVkZW50aWFsIGFz
IG9mIDUgRGVjZW1iZXIgMjAxNy4KKyAgICAvLyBGSVhNRTogRXh0ZW5zaW9ucyBhcmUgbm90IHN1
cHBvcnRlZCB5ZXQuIFNraXAgU3RlcCAxMS0xMi4KKyAgICAvLyBTdGVwIDEsIDMsIDQsIDE3IGFy
ZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIsIGluY2x1ZGluZyBvcHRpb25zIHNhbml0aXppbmcsIHRp
bWVyIGFuZCBhYm9ydCBzaWduYWwuCisgICAgLy8gU3RlcCAyLgorICAgIGlmICghc2FtZU9yaWdp
bldpdGhBbmNlc3RvcnMpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJy
b3IgfTsKKworICAgIC8vIFN0ZXAgNS03LgorICAgIC8vIEZJWE1FOiBXZSBsYWNrIGZ1bmRhbWVu
dGFsIHN1cHBvcnQgZnJvbSBTZWN1cml0eU9yaWdpbiB0byBkZXRlcm1pbmUgaWYgYSBob3N0IGlz
IGEgdmFsaWQgZG9tYWluIG9yIG5vdC4KKyAgICAvLyBTdGVwIDYgaXMgdGhlcmVmb3JlIHNraXBw
ZWQuIEFsc28sIHdlIGxhY2sgdGhlIHN1cHBvcnQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBkb21h
aW4gaXMgYSByZWdpc3RyYWJsZQorICAgIC8vIGRvbWFpbiBzdWZmaXggb2YgYW5vdGhlciBkb21h
aW4uIEhlbmNlIHJlc3RyaWN0IHRoZSBjb21wYXJpc29uIHRvIGVxdWFsIGluIFN0ZXAgNy4KKyAg
ICBpZiAoIW9wdGlvbnMucnAuaWQuaXNFbXB0eSgpICYmICEoY2FsbGVyT3JpZ2luLmhvc3QoKSA9
PSBvcHRpb25zLnJwLmlkKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJy
b3IgfTsKKyAgICBpZiAob3B0aW9ucy5ycC5pZC5pc0VtcHR5KCkpCisgICAgICAgIG9wdGlvbnMu
cnAuaWQgPSBjYWxsZXJPcmlnaW4uaG9zdCgpOworCisgICAgLy8gU3RlcCA4LTEwLgorICAgIC8v
IE1vc3Qgb2YgdGhlIGpvYnMgYXJlIGRvbmUgYnkgYmluZGluZ3MuIEhvd2V2ZXIsIHdlIGNhbid0
IGtub3cgaWYgdGhlIEpTVmFsdWUgb2Ygb3B0aW9ucy5wdWJLZXlDcmVkUGFyYW1zCisgICAgLy8g
aXMgZW1wdHkgb3Igbm90LiBSZXR1cm4gTm90U3VwcG9ydGVkRXJyb3IgYXMgbG9uZyBhcyBpdCBp
cyBlbXB0eS4KKyAgICBpZiAob3B0aW9ucy5wdWJLZXlDcmVkUGFyYW1zLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CisKKyAgICAvLyBT
dGVwIDEzLTE1LgorICAgIGF1dG8gY2xpZW50RGF0YUpzb24gPSBwcm9kdWNlQ2xpZW50RGF0YUpz
b24oQ2xpZW50RGF0YVR5cGU6OkNyZWF0ZSwgb3B0aW9ucy5jaGFsbGVuZ2UsIGNhbGxlck9yaWdp
bik7CisgICAgYXV0byBjbGllbnREYXRhSnNvbkhhc2ggPSBwcm9kdWNlQ2xpZW50RGF0YUpzb25I
YXNoKGNsaWVudERhdGFKc29uKTsKKworICAgIC8vIFN0ZXAgMTgtMjEuCisgICAgLy8gT25seSBw
bGF0Zm9ybSBhdHRhY2htZW50cyB3aWxsIGJlIHN1cHBvcnRlZCBhdCB0aGlzIHN0YWdlLiBBc3N1
bWluZyBvbmUgYXV0aGVudGljYXRvciBwZXIgZGV2aWNlLgorICAgIC8vIEFsc28sIHJlc2lkZW50
IGtleXMsIHVzZXIgdmVyaWZpY2F0aW9ucyBhbmQgZGlyZWN0IGF0dGVzdGF0aW9uIGFyZSBlbmZv
cmNlZCBhdCB0aGlzIHRhZ2UuCisgICAgLy8gRm9yIGJldHRlciBwZXJmb3JtYW5jZSwgbm8gZmls
dGVyaW5nIGlzIGRvbmUgaGVyZSByZWdhcmRpbmcgdG8gb3B0aW9ucy5leGNsdWRlQ3JlZGVudGlh
bHMuCisgICAgLy8gV2hhdCdzIG1vcmUsIHVzZXIgY2FuY2VsbGF0aW9ucyBlZmZlY3RpdmVseSBt
ZWFucyBOb3RBbGxvd2VkRXJyb3IuIFRoZXJlZm9yZSwgdGhlIGJlbG93IGNhbGwKKyAgICAvLyB3
aWxsIG9ubHkgcmV0dXJucyBlaXRoZXIgYW4gZXhjZXB0aW9uIG9yIGEgUHVibGljS2V5Q3JlZGVu
dGlhbCByZWYuCisgICAgLy8gRklYTUU6IFRoZSBmb2xsb3dpbmcgb3BlcmF0aW9uIG1pZ2h0IG5l
ZWQgdG8gcGVyZm9ybSBhc3luYy4KKyAgICBhdXRvIHJlc3VsdCA9IEF1dGhlbnRpY2F0b3I6OnNp
bmdsZXRvbigpLm1ha2VDcmVkZW50aWFsKGNsaWVudERhdGFKc29uSGFzaCwgb3B0aW9ucy5ycCwg
b3B0aW9ucy51c2VyLCBvcHRpb25zLnB1YktleUNyZWRQYXJhbXMsIG9wdGlvbnMuZXhjbHVkZUNy
ZWRlbnRpYWxzKTsKKyAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1
cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIGF1dG8gYXR0ZXN0YXRpb25PYmpl
Y3QgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgLy8gRklYTUU6IEdvdCBzb21l
IGNyYXp5IGNvbXBpbGUgZXJyb3Igd2hlbiBJIHdhcyB0cnlpbmcgdG8gcmV0dXJuIFJIUyBkaXJl
Y3RseS4KKyAgICBSZWZQdHI8QmFzaWNDcmVkZW50aWFsPiBjcmVkZW50aWFsID0gUHVibGljS2V5
Q3JlZGVudGlhbDo6Y3JlYXRlKGdldElkRnJvbUF0dGVzdGF0aW9uT2JqZWN0KGF0dGVzdGF0aW9u
T2JqZWN0KSwgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6OmNyZWF0ZShXVEZNb3Zl
KGNsaWVudERhdGFKc29uKSwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9iamVjdC5k
YXRhKCksIGF0dGVzdGF0aW9uT2JqZWN0LnNpemUoKSkpKTsKKyAgICByZXR1cm4gV1RGTW92ZShj
cmVkZW50aWFsKTsKIH0KIAotQXJyYXlCdWZmZXIqIFB1YmxpY0tleUNyZWRlbnRpYWw6OnJhd0lk
KCkKK0FycmF5QnVmZmVyKiBQdWJsaWNLZXlDcmVkZW50aWFsOjpyYXdJZCgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fcmF3SWQuZ2V0KCk7CiB9CiAKLUF1dGhlbnRpY2F0b3JSZXNwb25zZSogUHVi
bGljS2V5Q3JlZGVudGlhbDo6cmVzcG9uc2UoKQorQXV0aGVudGljYXRvclJlc3BvbnNlKiBQdWJs
aWNLZXlDcmVkZW50aWFsOjpyZXNwb25zZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcmVzcG9u
c2UuZ2V0KCk7CiB9CiAKLUV4Y2VwdGlvbk9yPGJvb2w+IFB1YmxpY0tleUNyZWRlbnRpYWw6Omdl
dENsaWVudEV4dGVuc2lvblJlc3VsdHMoKQorRXhjZXB0aW9uT3I8Ym9vbD4gUHVibGljS2V5Q3Jl
ZGVudGlhbDo6Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5oCmluZGV4IDNjOTY2
YmM5ODA0NTNhYjU1YmI5MjY5ZTliMmVmMjU2ODNjN2FhNDIuLjViODY2Yjk2Mjk0OTEzODQyYzg2
M2VmMWQ4NGMxYjkxODRlM2FhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5oCkBAIC0zNCwzNCArMzQsMzkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdXRoZW50aWNhdG9yUmVzcG9uc2U7CiBjbGFzcyBE
ZWZlcnJlZFByb21pc2U7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKIAotc3RydWN0IENyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnM7CitzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczsKIHN0cnVjdCBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM7CiAKIGNsYXNzIFB1YmxpY0tl
eUNyZWRlbnRpYWwgZmluYWwgOiBwdWJsaWMgQmFzaWNDcmVkZW50aWFsIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFB1YmxpY0tleUNyZWRlbnRpYWw+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGlk
KQorICAgIHN0YXRpYyBSZWY8UHVibGljS2V5Q3JlZGVudGlhbD4gY3JlYXRlKFJlZlB0cjxBcnJh
eUJ1ZmZlcj4mJiBpZCwgUmVmUHRyPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJiByZXNwb25zZSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFB1YmxpY0tleUNyZWRlbnRpYWwo
aWQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHVibGljS2V5Q3JlZGVudGlhbChX
VEZNb3ZlKGlkKSwgV1RGTW92ZShyZXNwb25zZSkpKTsKICAgICB9CiAKICAgICBzdGF0aWMgVmVj
dG9yPFJlZjxCYXNpY0NyZWRlbnRpYWw+PiBjb2xsZWN0RnJvbUNyZWRlbnRpYWxTdG9yZShDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnMmJiwgYm9vbCk7Ci0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJl
ZlB0cjxCYXNpY0NyZWRlbnRpYWw+PiBkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBib29sKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8
UmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4+IGRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgYm9vbCBz
YW1lT3JpZ2luV2l0aEFuY2VzdG9ycyk7CiAgICAgc3RhdGljIFJlZlB0cjxCYXNpY0NyZWRlbnRp
YWw+IHN0b3JlKFJlZlB0cjxCYXNpY0NyZWRlbnRpYWw+JiYsIGJvb2wpOwotICAgIHN0YXRpYyBF
eGNlcHRpb25PcjxSZWZQdHI8QmFzaWNDcmVkZW50aWFsPj4gY3JlYXRlKGNvbnN0IENyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnMmLCBib29sKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmUHRy
PEJhc2ljQ3JlZGVudGlhbD4+IGNyZWF0ZShjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmLCBib29sIHNhbWVPcmlnaW5XaXRoQW5j
ZXN0b3JzKTsKIAotICAgIEFycmF5QnVmZmVyKiByYXdJZCgpOwotICAgIEF1dGhlbnRpY2F0b3JS
ZXNwb25zZSogcmVzcG9uc2UoKTsKKyAgICBBcnJheUJ1ZmZlciogcmF3SWQoKSBjb25zdDsKKyAg
ICBBdXRoZW50aWNhdG9yUmVzcG9uc2UqIHJlc3BvbnNlKCkgY29uc3Q7CiAgICAgLy8gTm90IHN1
cHBvcnQgeWV0LiBBbHdheXMgdGhyb3dzLgotICAgIEV4Y2VwdGlvbk9yPGJvb2w+IGdldENsaWVu
dEV4dGVuc2lvblJlc3VsdHMoKTsKKyAgICBFeGNlcHRpb25Pcjxib29sPiBnZXRDbGllbnRFeHRl
bnNpb25SZXN1bHRzKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBpc1VzZXJWZXJpZnlpbmdQ
bGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAK
IHByaXZhdGU6Ci0gICAgUHVibGljS2V5Q3JlZGVudGlhbChjb25zdCBTdHJpbmcmKTsKKyAgICBQ
dWJsaWNLZXlDcmVkZW50aWFsKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBpZCwgUmVmUHRyPEF1dGhl
bnRpY2F0b3JSZXNwb25zZT4mJik7CisKKyAgICBUeXBlIGNyZWRlbnRpYWxUeXBlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gVHlwZTo6UHVibGljS2V5OyB9CiAKICAgICBSZWZQdHI8QXJyYXlCdWZm
ZXI+IG1fcmF3SWQ7CiAgICAgUmVmUHRyPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4gbV9yZXNwb25z
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19CQVNJQ19DUkVERU5USUFMKFB1YmxpY0tleUNyZWRlbnRpYWwsIEJhc2ljQ3JlZGVudGlhbDo6
VHlwZTo6UHVibGljS2V5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5pZGwKaW5kZXggNDhlZjlmZmZjYzNhMjNmOGY0NTU1
OGJlN2ZkOGVlYTg3ZTAyY2ZkMS4uNmI5OTZiNjMyZDJhNWIzN2UyZWNmODA1MWQ5MjJiOWFlZThk
NWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1
YmxpY0tleUNyZWRlbnRpYWwuaWRsCkBAIC0yOSw3ICsyOSw3IEBAIHR5cGVkZWYgYm9vbGVhbiBB
dXRoZW50aWNhdGlvbkV4dGVuc2lvbnM7CiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJBdXRoZW50
aWNhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTZWN1cmVDb250ZXh0LAotXSBpbnRl
cmZhY2UgUHVibGljS2V5Q3JlZGVudGlhbCB7CitdIGludGVyZmFjZSBQdWJsaWNLZXlDcmVkZW50
aWFsIDogQmFzaWNDcmVkZW50aWFsIHsKICAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIEFycmF5QnVmZmVyIHJhd0lkOwogICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1
dGUgQXV0aGVudGljYXRvclJlc3BvbnNlIHJlc3BvbnNlOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gQXV0aGVudGljYXRpb25FeHRlbnNpb25zIGdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKaW5kZXggOGJhZmUzMDVjZGY0
ZTY0N2IyNzkxYzNhNzA1YTQ0YjFjZmZkMjQ4Yy4uZmNmMTAxZDVmODAzMmU3YTYwYjY5Y2I1Y2Fh
OWYwOTQzNDIyZDdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgK
QEAgLTM5LDcgKzM5LDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMgewogICAgIH07CiAKICAgICBzdHJ1Y3QgUnBFbnRpdHkgOiBwdWJsaWMgRW50aXR5IHsKLSAg
ICAgICAgU3RyaW5nIGlkOworICAgICAgICBtdXRhYmxlIFN0cmluZyBpZDsKICAgICB9OwogCiAg
ICAgc3RydWN0IFVzZXJFbnRpdHkgOiBwdWJsaWMgRW50aXR5IHsKQEAgLTQ5LDcgKzQ5LDcgQEAg
c3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgewogCiAgICAgc3RydWN0
IFBhcmFtZXRlcnMgewogICAgICAgICBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSB0eXBlOwotICAg
ICAgICBsb25nIGFsZyB7IDAgfTsKKyAgICAgICAgbG9uZyBhbGc7CiAgICAgfTsKIAogICAgIFJw
RW50aXR5IHJwOwpAQCAtNTgsNyArNTgsNyBAQCBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucyB7CiAgICAgQnVmZmVyU291cmNlIGNoYWxsZW5nZTsKICAgICBWZWN0b3I8
UGFyYW1ldGVycz4gcHViS2V5Q3JlZFBhcmFtczsKIAotICAgIHVuc2lnbmVkIGxvbmcgdGltZW91
dCB7IDAgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkIGxvbmc+IHRpbWVvdXQ7CiAgICAg
VmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBleGNsdWRlQ3JlZGVudGlhbHM7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmgKaW5kZXggNzNlNDQ5MjM3MjRmMzEy
NWIxZWRhZGUzNjg3Mzg3ZWRiMWFlODE4NS4uODI5ZDYwMTI1MTFmYjRkZThlNzNiMTY4NGM2OGM5
MTM5YjgxNjE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaApAQCAtMzEsOCArMzEs
MTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxE
ZXNjcmlwdG9yIHsKKyAgICBlbnVtIGNsYXNzIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQgeworICAg
ICAgICBVc2IsCisgICAgICAgIE5mYywKKyAgICAgICAgQmxlCisgICAgfTsKKwogICAgIFB1Ymxp
Y0tleUNyZWRlbnRpYWxUeXBlIHR5cGU7CiAgICAgQnVmZmVyU291cmNlIGlkOworICAgIFZlY3Rv
cjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0PiB0cmFuc3BvcnRzOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbAppbmRleCBlOTNmODY0
NGIxOWUwNTFiMDNiZDk0OGUxZmFkODJiNzBlZjRkOGVmLi4yNThlMjg5YzE4NGE0YjhlMzJlYjIx
NjQ2MjdmYWMwNDJmMjA1OGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbApA
QCAtMjMsOSArMjMsMTQgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCitlbnVtIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQgeworICAgICJ1c2IiLAorICAgICJuZmMi
LAorICAgICJibGUiCit9OworCiBkaWN0aW9uYXJ5IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlw
dG9yIHsKICAgICByZXF1aXJlZCBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSB0eXBlOwogICAgIHJl
cXVpcmVkIEJ1ZmZlclNvdXJjZSBpZDsKLSAgICAvLyBXZSBvbmx5IGFsbG93IHBsYXRmb3JtIGF0
dGFjaG1lbnQgYXQgdGhpcyBzdGFnZS4KLSAgICAvLyBzZXF1ZW5jZTxBdXRoZW50aWNhdG9yVHJh
bnNwb3J0PiB0cmFuc3BvcnRzOworICAgIHNlcXVlbmNlPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ+
IHRyYW5zcG9ydHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5YzJiMGE1ZjExZjE3NGRhODFkNDdk
Y2UyNmI5ZTNjMGM1OTE3MTM1Li4yYTA4YTU1ZDUxYzI3Y2E3OWNkMWJmNmE2OGYyMjNjMTViM2Zl
NzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjQ0LDYgKzI0NCw3IEBAIE1vZHVsZXMvd2ViYXVkaW8v
V2F2ZVNoYXBlckRTUEtlcm5lbC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUu
Y3BwCiBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCiAKK01vZHVsZXMv
d2ViYXV0aG4vQXV0aGVudGljYXRvci5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRv
ckFzc2VydGlvblJlc3BvbnNlLmNwcAogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0
ZXN0YXRpb25SZXNwb25zZS5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3Bv
bnNlLmNwcApAQCAtMzQ1LDExICszNDYsMTMgQEAgYmluZGluZ3MvanMvRE9NR0NPdXRwdXRDb25z
dHJhaW50LmNwcAogYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmNwcAogYmluZGluZ3MvanMv
R0NDb250cm9sbGVyLmNwcAogYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKy8v
IGJpbmRpbmdzL2pzL0pTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcAogYmluZGluZ3Mv
anMvSlNBbmltYXRpb25FZmZlY3RDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0FuaW1hdGlvblRp
bWVsaW5lQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNBdHRyQ3VzdG9tLmNwcAogYmluZGluZ3Mv
anMvSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNBdWRpb1RyYWNrTGlzdEN1
c3RvbS5jcHAKKy8vIGJpbmRpbmdzL2pzL0pTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcAogYmlu
ZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNw
cAogYmluZGluZ3MvanMvSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMWI5ZDE2MTE3OGRk
MDhjOWZkZTc4YWRjM2Q3ZDJkMzdkZDJkMDA1Li5jYzUwNmE0NTJmZTBiZDM2NWUxNzY3ZThjYmYx
ZDE3YWI0YzIwM2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xNjYwLDYgKzE2NjAsNyBAQAogCQk1NzMwM0MyMjIwMDlBRjAz
MDAzNTU5NjUgLyogSlNBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNDMjEyMDA5QUVGNjAw
MzU1OTY1IC8qIEpTQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaCAqLzsgfTsKIAkJ
NTczMDNDMkMyMDA5QjRBODAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25z
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDND
MjcyMDA5QjJGQzAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oICov
OyB9OwogCQk1NzMwM0MyRjIwMDlCN0UxMDAzNTU5NjUgLyogSlNBdXRoZW50aWNhdG9yQXNzZXJ0
aW9uUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3MzAzQzJEMjAwOUI3RDkwMDM1NTk2NSAvKiBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZS5oICovOyB9OworCQk1NzMwM0M0NjIwMTA1RDJGMDAzNTU5NjUgLyogQXV0aGVudGlj
YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcz
MDNDNDMyMDEwNUIzRDAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3IuaCAqLzsgfTsKIAkJNTczNDg5
MzkxREFDNkI2RTAwREMwNjY3IC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzQ4OTM4MURBQzZCNkQw
MERDMDY2NyAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggKi87IH07CiAJCTU3MzlFMTJG
MURBQzdGNzgwMEUxNDM4MyAvKiBKU0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzlFMTJFMURBQzdGNzgw
MEUxNDM4MyAvKiBKU0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJNTc1MEE5
NzUxRTY4RDAwMDAwNzA1QzRBIC8qIENyeXB0b0tleUVDLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzUwQTk3MzFFNjhEMDAwMDA3MDVDNEEgLyogQ3J5
cHRvS2V5RUMuaCAqLzsgfTsKQEAgLTE2NjcsNiArMTY2OCw4IEBACiAJCTU3NTBBOTgyMUU2QTE1
MDgwMDcwNUM0QSAvKiBKU0VjS2V5UGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzUwQTk4MDFFNkExNTA4MDA3MDVDNEEgLyogSlNFY0tleVBh
cmFtcy5oICovOyB9OwogCQk1NzUwQTk4NzFFNkEyMTY4MDA3MDVDNEEgLyogQ3J5cHRvQWxnb3Jp
dGhtRUNESC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTc1MEE5ODUxRTZBMjE2ODAwNzA1QzRBIC8qIENyeXB0b0FsZ29yaXRobUVDREguaCAqLzsgfTsK
IAkJNTc1NDcxOUYxRUNFNjI4MzAwREQ2M0IyIC8qIEpTUnNhUHNzUGFyYW1zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU0NzE5OTFFQ0U1RDJBMDBE
RDYzQjIgLyogSlNSc2FQc3NQYXJhbXMuaCAqLzsgfTsKKwkJNTc2MDgyNTMyMDExQkJDMjAwMTE2
Njc4IC8qIEpTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjA4MjRGMjAxMThEOEQwMDExNjY3OCAvKiBKU0Jh
c2ljQ3JlZGVudGlhbEN1c3RvbS5jcHAgKi87IH07CisJCTU3NjA4MjVBMjAxMUMwMTgwMDExNjY3
OCAvKiBKU0F1dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzYwODI1NjIwMTFCRTAyMDAxMTY2NzggLyog
SlNBdXRoZW50aWNhdG9yUmVzcG9uc2VDdXN0b20uY3BwICovOyB9OwogCQk1NzY4MTQyQTFFNkY5
OUMxMDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFtcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc2ODE0MjkxRTZGOTlD
MTAwRTc3NzU0IC8qIENyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXMuaCAqLzsgfTsK
IAkJNTc2ODE0NDExRTcwOUZBNDAwRTc3NzU0IC8qIEpTRWNkaEtleURlcml2ZVBhcmFtcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc2ODE0M0UxRTcw
OUMzNjAwRTc3NzU0IC8qIEpTRWNkaEtleURlcml2ZVBhcmFtcy5oICovOyB9OwogCQk1NzY4MTQ0
NTFFNzBDQjFGMDBFNzc3NTQgLyogSlNBZXNLZXlQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjgxNDQzMUU3MENCMTAwMEU3Nzc1NCAvKiBK
U0Flc0tleVBhcmFtcy5oICovOyB9OwpAQCAtODIyNyw2ICs4MjMwLDggQEAKIAkJNTczMDNDMjky
MDA5QjJGQzAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTczMDNDMkQyMDA5QjdEOTAwMzU1OTY1IC8qIEpTQXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXV0
aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3MzAzQzJFMjAwOUI3REEwMDM1NTk2NSAvKiBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0F1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTU3MzAzQzQzMjAxMDVCM0QwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEF1dGhlbnRpY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcz
MDNDNDQyMDEwNUIzRDAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQXV0aGVudGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
MzQ4OTM4MURBQzZCNkQwMERDMDY2NyAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczOUUxMkUxREFDN0Y3ODAwRTE0Mzgz
IC8qIEpTQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTczOUUxMzAxREFDN0ZEMTAwRTE0MzgzIC8qIEpTQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtODI0Myw2ICs4MjQ4LDggQEAKIAkJNTc1MEE5ODUxRTZBMjE2ODAwNzA1QzRBIC8qIENy
eXB0b0FsZ29yaXRobUVDREguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5
cHRvQWxnb3JpdGhtRUNESC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU0NzE5
OTFFQ0U1RDJBMDBERDYzQjIgLyogSlNSc2FQc3NQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNSc2FQc3NQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTc1NDcxOUExRUNFNUQyQTAwREQ2M0IyIC8qIEpTUnNhUHNzUGFyYW1zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUnNhUHNzUGFyYW1zLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc2MDgyNEYyMDExOEQ4RDAwMTE2Njc4IC8qIEpT
QmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmFzaWNDcmVk
ZW50aWFsQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc2MDgyNTYy
MDExQkUwMjAwMTE2Njc4IC8qIEpTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc2ODE0MjgxRTZGOThBRDAwRTc3NzU0IC8qIEVjZGhL
ZXlEZXJpdmVQYXJhbXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVjZGhLZXlEZXJpdmVQYXJhbXMuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY4MTQyOTFFNkY5OUMxMDBFNzc3NTQgLyogQ3J5cHRv
QWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDcnlwdG9BbGdvcml0aG1FY2RoS2V5RGVyaXZlUGFyYW1zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3NjgxNDM0MUU2RkUzRTgwMEU3Nzc1NCAvKiBDcnlwdG9BbGdv
cml0aG1FQ0RITWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENy
eXB0b0FsZ29yaXRobUVDREhNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTgxNzEsNiArMTgxNzgsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
IAkJCQk1NzMwM0JCMzIwMDZDNkVEMDAzNTU5NjUgLyogY2JvciAqLywKKwkJCQk1NzMwM0M0NDIw
MTA1QjNEMDAzNTU5NjUgLyogQXV0aGVudGljYXRvci5jcHAgKi8sCisJCQkJNTczMDNDNDMyMDEw
NUIzRDAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3IuaCAqLywKIAkJCQk1NzMwM0MyODIwMDlCMkZD
MDAzNTU5NjUgLyogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmNwcCAqLywKIAkJCQk1
NzMwM0MyNzIwMDlCMkZDMDAzNTU5NjUgLyogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNl
LmggKi8sCiAJCQkJNTczMDNDMjkyMDA5QjJGQzAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZS5pZGwgKi8sCkBAIC0xOTIxNiw2ICsxOTIyNSw4IEBACiAJCQkJQkMyRUQ2
QkIwQzZCRDJGMDAwOTIwQkZGIC8qIEpTQXR0ckN1c3RvbS5jcHAgKi8sCiAJCQkJQkU2REY3MEUx
NzFDQTJEQTAwREQ1MkI4IC8qIEpTQXVkaW9UcmFja0N1c3RvbS5jcHAgKi8sCiAJCQkJQkU2REY3
MTAxNzFDQTJEQTAwREQ1MkI4IC8qIEpTQXVkaW9UcmFja0xpc3RDdXN0b20uY3BwICovLAorCQkJ
CTU3NjA4MjU2MjAxMUJFMDIwMDExNjY3OCAvKiBKU0F1dGhlbnRpY2F0b3JSZXNwb25zZUN1c3Rv
bS5jcHAgKi8sCisJCQkJNTc2MDgyNEYyMDExOEQ4RDAwMTE2Njc4IC8qIEpTQmFzaWNDcmVkZW50
aWFsQ3VzdG9tLmNwcCAqLywKIAkJCQk4OTMxREU1QTE0QzQ0QzQ0MDAwREM5RDIgLyogSlNCbG9i
Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFRDE0QjEwNTE5NzE5MDAwOTlGQUIgLyogSlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwICovLAogCQkJCUJDNDZDMUVEMEMwRERCREYwMDIw
Q0ZDMyAvKiBKU0NTU1J1bGVDdXN0b20uY3BwICovLApAQCAtMjY0OTgsNiArMjY1MDksNyBAQAog
CQkJCTkzNEY3MTNBMEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJh
c2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjQ3NDg0MTBBQTE2MUQwMEI3OTQ5MyAvKiBBdXRo
ZW50aWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2NEMwQ0U5MjM0RTAw
N0VGM0NEIC8qIEF1dGhlbnRpY2F0aW9uTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzMwM0M0
NjIwMTA1RDJGMDAzNTU5NjUgLyogQXV0aGVudGljYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTczMDNDMkMyMDA5QjRBODAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25z
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNDMUYyMDA5QUI0MjAwMzU1OTY1IC8qIEF1dGhl
bnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JE
MjIwMDg3QTgzMDAzNTU5NjUgLyogQXV0aGVudGljYXRvclJlc3BvbnNlLmggaW4gSGVhZGVycyAq
LywKQEAgLTMwNzIxLDYgKzMwNzMzLDggQEAKIAkJCQk2QTcyNzk4QzFGMTZDMjlDMDAzRjM5Qjgg
LyogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUY2RDAx
MTFGRTA5OUIyMDAxODA3OEMgLyogSlNBcHBsZVBheU1vZGlmaWVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUExRjZEMDEwMUZFMDk5OTYwMDE4MDc4QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhv
ZFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTc2MDgyNUEyMDExQzAxODAwMTE2Njc4IC8q
IEpTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3
NjA4MjUzMjAxMUJCQzIwMDExNjY3OCAvKiBKU0Jhc2ljQ3JlZGVudGlhbEN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBMTFBRTBEMjFGRkQ2MURGMDA0NzM0OEIgLyogSlNNZXJjaGFudFZh
bGlkYXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzhFQzkzRTFGOTlCRjVBMDA0
RDIyQTggLyogSlNRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5MzVDNDc3MDA5QUM0RDczMDBBNkFBQjQgLyogS2V5RXZlbnRNYWMubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXV0aGVudGlj
YXRvclJlc3BvbnNlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXV0
aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmUwOTRlYTc3NzdlODU0
NjZjNDJhOTRhODZhZDljZGU4YTg3MWFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNBdXRoZW50aWNhdG9yUmVzcG9uc2VDdXN0b20uY3BwCkBAIC0wLDAg
KzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNB
dXRoZW50aWNhdG9yUmVzcG9uc2UuaCIKKworI2luY2x1ZGUgIkpTQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworSlNWYWx1ZSB0b0pTTmV3bHlDcmVh
dGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVm
PEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJiByZXNwb25zZSkKK3sKKyAgICBpZiAoaXM8QXV0aGVu
dGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+KHJlc3BvbnNlKSkKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZVdyYXBwZXI8QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+KGdsb2JhbE9iamVj
dCwgV1RGTW92ZShyZXNwb25zZSkpOworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPEF1dGhlbnRp
Y2F0b3JSZXNwb25zZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHJlc3BvbnNlKSk7Cit9CisKK0pT
VmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBBdXRoZW50aWNhdG9yUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiB3cmFw
KHN0YXRlLCBnbG9iYWxPYmplY3QsIHJlc3BvbnNlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCYXNpY0NyZWRl
bnRpYWxDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCYXNpY0NyZWRl
bnRpYWxDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2YmRkOGMyNGFlM2NiNzlhMjZkNDI0ZDgwNjM4
YjRhMjMyZGMyY2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0Jhc2ljQ3JlZGVudGlhbEN1c3RvbS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0Jhc2ljQ3JlZGVudGlhbC5oIgor
CisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNQdWJsaWNLZXlDcmVkZW50
aWFsLmgiCisKKworbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwor
SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgUmVmPEJhc2ljQ3JlZGVudGlhbD4mJiBjcmVkZW50aWFsKQorewor
ICAgIGlmIChpczxQdWJsaWNLZXlDcmVkZW50aWFsPihjcmVkZW50aWFsKSkKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZVdyYXBwZXI8UHVibGljS2V5Q3JlZGVudGlhbD4oZ2xvYmFsT2JqZWN0LCBXVEZN
b3ZlKGNyZWRlbnRpYWwpKTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxCYXNpY0NyZWRlbnRp
YWw+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShjcmVkZW50aWFsKSk7Cit9CisKK0pTVmFsdWUgdG9K
UyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCYXNp
Y0NyZWRlbnRpYWwmIGNyZWRlbnRpYWwpCit7CisgICAgcmV0dXJuIHdyYXAoc3RhdGUsIGdsb2Jh
bE9iamVjdCwgY3JlZGVudGlhbCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4
IDZmODAzYzU5NWY1YzIxNDNhZThjYjU0MzgyYzljMWQzY2ExZDE2NWYuLjQ4YzUzZTJjZDJlZDJi
NGZjMzNiNDUxYWRjY2YyMzZkMmExMTY5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIkpTQXR0ckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU0Jhc2lj
Q3JlZGVudGlhbEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNCbG9iQ3VzdG9tLmNwcCIKICNpbmNs
dWRlICJKU0NTU1J1bGVDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTQ1NTUnVsZUxpc3RDdXN0b20u
Y3BwIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDA5YTA1YzgwMDU1NGRhZjI5OTg4Y2I4MjA4YTkxNDc0YmI1YTAwNGMuLjU4
YmE1ODY0MzkyNmZhYWM4OGM2MjA2YzNkMmUwN2Q0MDgzMmYxZDQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MyBAQAorMjAxOC0wMS0yMiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJBdXRoTl0gSW1wbGVtZW50IFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW0NyZWF0
ZV1dIHdpdGggYSBkdW1teSBhdXRoZW50aWNhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE5MjgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2
NDU5ODkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3QgY2FzZXMgYXJlIGRpdmlkZWQgaW50byB0d28gZGlmZmVyZW50IGZvbGRlcnMuIE9uZSBm
b2xsb3dzIHdwdCBzdHlsZS4gVGhlIG90aGVyIGNvbnRhaW5zIHRlc3RzCisgICAgICAgIHRoYXQg
SSBkb24ndCBrbm93IGhvdyB0byB3cml0ZSB0aGVtIGluIHdwdCBzdHlsZS4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS13aXRoLWlu
dmFsaWQtcGFyYW1ldGVycy5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS13aXRoLWludmFs
aWQtcGFyYW1ldGVycy5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0y
Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMtMi5odHRw
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL2xhc3QtbGF5ZXItZnJhbWUuaHR0cHMu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJhdXRobi9yZXNvdXJjZXMvc2Vj
b25kLWxheWVyLWZyYW1lLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanM6IEFkZGVkLgorICAgICAgICBJdCB3aWxsIGJlIGdv
b2QgdG8gY29udmVydCB0aGVtIGludG8gd3B0IHN0eWxlLgorICAgICAgICAqIGh0dHAvd3B0L3dl
YmF1dGhuL1dlYkF1dGhOLmlkbDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4v
aWRsLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0
aG4vaWRsLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1j
cmVhdGUtZmFpbHVyZS5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MuaHR0cHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3JlYXRlLXN1Y2Nlc3MuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC93
cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanM6IEFkZGVkLgorCiAyMDE4LTAxLTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIGJlIGFibGUg
dG8gdGVybWluYXRlIHNlcnZpY2Ugd29ya2VycyB0aGF0IGFyZSB1bnJlc3BvbnNpdmUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWNyZWF0ZS13aXRoLWludmFsaWQtcGFyYW1ldGVycy5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVh
dGUtd2l0aC1pbnZhbGlkLXBhcmFtZXRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZjZTFkZmJjZTg2N2UwYzA3NTUzZDM4ZDI0Zjc2ODU3NjVhN2ZhOWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1jcmVhdGUtd2l0aC1pbnZhbGlkLXBhcmFtZXRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNjQgQEAKK1Rlc3RzIHRoYXQgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0g
dGhyb3dzIFR5cGVFcnJvciB3aGVuIGludmFsaWQgb3B0aW9ucyBhcmUgcGFzc2VkLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3Jl
YXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVt
YmVyIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMucnAgaXMgcmVxdWlyZWQgYW5k
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgUHVibGljS2V5Q3JlZGVudGlhbFJwRW50aXR5LgorUEFT
UyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBw
cm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMudXNlciBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBQdWJs
aWNLZXlDcmVkZW50aWFsVXNlckVudGl0eS4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNy
ZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1l
bWJlciBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmNoYWxsZW5nZSBpcyByZXF1
aXJlZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiAoQXJyYXlCdWZmZXJWaWV3IG9yIEFycmF5
QnVmZmVyKS4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9u
cykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLnB1YktleUNyZWRQYXJhbXMgaXMgcmVxdWlyZWQgYW5kIG11
c3QgYmUgYW4gaW5zdGFuY2Ugb2Ygc2VxdWVuY2UuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9y
OiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlhbFJwRW50aXR5Lm5hbWUgaXMgcmVxdWlyZWQgYW5k
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRE9NU3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVF
cnJvcjogTWVtYmVyIFB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5Lm5hbWUgaXMgcmVxdWly
ZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRE9NU3RyaW5nLgorUEFTUyBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRo
IFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5LmlkIGlzIHJl
cXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIChBcnJheUJ1ZmZlclZpZXcgb3IgQXJy
YXlCdWZmZXIpLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRp
b25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNy
ZWRlbnRpYWxVc2VyRW50aXR5LmRpc3BsYXlOYW1lIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIERPTVN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0
ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJl
ciBQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycy50eXBlIGlzIHJlcXVpcmVkIGFuZCBtdXN0
IGJlIGFuIGluc3RhbmNlIG9mIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLgorUEFTUyBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3
aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzLmFsZyBp
cyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBsb25nLgorUEFTUyBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3
aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLnR5cGUg
aXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgUHVibGljS2V5Q3JlZGVudGlh
bFR5cGUuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMp
IHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVu
dGlhbERlc2NyaXB0b3IuaWQgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2Yg
KEFycmF5QnVmZmVyVmlldyBvciBBcnJheUJ1ZmZlcikuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVy
cm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIHN0cmluZy4KK1BBU1MgbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0
aCBUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEgc3RyaW5nLgorUEFTUyBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9t
aXNlICB3aXRoIFR5cGVFcnJvcjogQ2Fubm90IGNvbnZlcnQgYSBzeW1ib2wgdG8gYSBzdHJpbmcu
CitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVj
dGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBh
IHN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9u
cykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5h
dmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21p
c2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlk
T3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQ
QVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVk
IHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShp
bnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJl
amVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0
byBhIHN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0
aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0IGEg
c3ltYm9sIHRvIGEgc3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGlu
dmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVq
ZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdp
dGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3Jl
YXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9u
cykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5h
dmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21p
c2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlk
T3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQ
QVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVk
IHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShp
bnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IENhbm5vdCBj
b252ZXJ0IGEgc3ltYm9sIHRvIGEgc3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0
aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNT
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHBy
b21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVF
cnJvcjogQ2Fubm90IGNvbnZlcnQgYSBzeW1ib2wgdG8gYSBudW1iZXIuCitQQVNTIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdp
dGggVHlwZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIG51bWJlci4KK1BBU1Mg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJv
bWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFs
aWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0
ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEg
c3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25z
KSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlz
ZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9y
OiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRP
cHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BB
U1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQg
cHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGlu
dmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVq
ZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdp
dGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3Jl
YXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1pbnZhbGlkLXBhcmFtZXRlcnMuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNy
ZWF0ZS13aXRoLWludmFsaWQtcGFyYW1ldGVycy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmMjRk
NzNiMzFjMGFmYzIyN2FkODIyYWQ3NGNlYTI0ZDk5ZjdjMDIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVh
dGUtd2l0aC1pbnZhbGlkLXBhcmFtZXRlcnMuaHR0cHMuaHRtbApAQCAtMCwwICsxLDEyMyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4vcmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB0aHJv
d3MgVHlwZUVycm9yIHdoZW4gaW52YWxpZCBvcHRpb25zIGFyZSBwYXNzZWQuIik7CisKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHJwID0geworICAgICAgICBuYW1lOiAi
ZXhhbXBsZS5jb20iCisgICAgfTsKKyAgICBjb25zdCB1c2VyID0geworICAgICAgICBuYW1lOiAi
Sm9obiBBcHBsZXNlZWQiLAorICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIp
LAorICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIKKyAgICB9OworICAgIGNvbnN0IGNo
YWxsZW5nZSA9IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKTsKKyAgICBjb25zdCBwdWJLZXlD
cmVkUGFyYW0gPSB7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9OworICAgIGNvbnN0IGV4
Y2x1ZGVDcmVkZW50aWFscyA9IHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogYXNjaWlUb1VpbnQ4
QXJyYXkoIjEyMzQ1NiIpIH07CisKKyAgICBjb25zdCBtaXNzaW5nQXR0cmlidXRlVmVjdG9yID0g
WworICAgICAgICAvLyBtaXNzaW5nIHRvcCBsZXZlbCBhdHRyaWJ1dGUKKyAgICAgICAgW3VuZGVm
aW5lZCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwg
dW5kZWZpbmVkLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB1
c2VyLCB1bmRlZmluZWQsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBj
aGFsbGVuZ2UsIHVuZGVmaW5lZF0sCisgICAgICAgIC8vIG1pc3NpbmcgcnAgYXR0cmlidXRlCisg
ICAgICAgIFt7IG5hbWU6IHVuZGVmaW5lZCB9LCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVk
UGFyYW1dXSwKKyAgICAgICAgLy8gbWlzc2luZyB1c2VyIGF0dHJpYnV0ZQorICAgICAgICBbcnAs
IHsgbmFtZTogdW5kZWZpbmVkLCBpZDogdXNlci5pZCwgZGlzcGxheU5hbWU6IHVzZXIuZGlzcGxh
eU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB7IG5h
bWU6IHVzZXIubmFtZSwgaWQ6IHVuZGVmaW5lZCwgZGlzcGxheU5hbWU6IHVzZXIuZGlzcGxheU5h
bWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB7IG5hbWU6
IHVzZXIubmFtZSwgaWQ6IHVzZXIuaWQsIGRpc3BsYXlOYW1lOiB1bmRlZmluZWR9LCBjaGFsbGVu
Z2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgLy8gbWlzc2luZyBwdWJLZXlDcmVkUGFy
YW1zIGF0dHJpYnV0ZQorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogdW5k
ZWZpbmVkLCBhbGc6IHB1YktleUNyZWRQYXJhbS5hbGcgfV1dLAorICAgICAgICBbcnAsIHVzZXIs
IGNoYWxsZW5nZSwgW3sgdHlwZTogcHViS2V5Q3JlZFBhcmFtLnR5cGUsIGFsZzogdW5kZWZpbmVk
IH1dXSwKKyAgICAgICAgLy8gbWlzc2luZyBleGNsdWRlQ3JlZGVudGlhbHMgYXR0cmlidXRlCisg
ICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVk
LCBbeyB0eXBlOiB1bmRlZmluZWQsIGlkOiBleGNsdWRlQ3JlZGVudGlhbHMuaWQgfV1dLAorICAg
ICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwg
W3sgdHlwZTogZXhjbHVkZUNyZWRlbnRpYWxzLnR5cGUsIGlkOiB1bmRlZmluZWQgfV1dCisgICAg
XTsKKworICAgIGNvbnN0IHdyb25nVHlwZUF0dHJpYnV0ZVZlY3RvciA9IFsKKyAgICAgICAgLy8g
d3JvbmcgcnAgYXR0cmlidXRlIHR5cGUKKyAgICAgICAgW3sgbmFtZTogU3ltYm9sKCkgfSwgdXNl
ciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFt7IG5hbWU6IHJwLm5h
bWUsIGljb246IFN5bWJvbCgpIH0sIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1d
LAorICAgICAgICBbeyBuYW1lOiBycC5uYW1lLCBpZDogU3ltYm9sKCkgfSwgdXNlciwgY2hhbGxl
bmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIC8vIHdyb25nIHVzZXIgYXR0cmlidXRl
IHR5cGUKKyAgICAgICAgW3JwLCB7IG5hbWU6IFN5bWJvbCgpLCBpZDogdXNlci5pZCwgZGlzcGxh
eU5hbWU6IHVzZXIuZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwK
KyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IDEsIGRpc3BsYXlOYW1lOiB1c2Vy
LmRpc3BsYXlOYW1lfSwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFty
cCwgeyBuYW1lOiB1c2VyLm5hbWUsIGlkOiB0cnVlLCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5
TmFtZX0sIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHsgbmFt
ZTogdXNlci5uYW1lLCBpZDogbnVsbCwgZGlzcGxheU5hbWU6IHVzZXIuZGlzcGxheU5hbWV9LCBj
aGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIu
bmFtZSwgaWQ6IFN5bWJvbCgpLCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5TmFtZX0sIGNoYWxs
ZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHsgbmFtZTogdXNlci5uYW1l
LCBpZDogeyB9LCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5TmFtZX0sIGNoYWxsZW5nZSwgW3B1
YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHsgbmFtZTogdXNlci5uYW1lLCBpZDogImZv
byIsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwgY2hhbGxlbmdlLCBbcHViS2V5Q3Jl
ZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUsIGlkOiBbIF0sIGRpc3Bs
YXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0s
CisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUsIGlkOiB1c2VyLmlkLCBkaXNwbGF5TmFt
ZTogU3ltYm9sKCl9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3Jw
LCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IHVzZXIuaWQsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3Bs
YXlOYW1lLCBpY29uOiBTeW1ib2woKX0sIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAor
ICAgICAgICAvLyB3cm9uZyBjaGFsbGVuZ2UgdHlwZQorICAgICAgICBbcnAsIHVzZXIsIDEsIFtw
dWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCB0cnVlLCBbcHViS2V5Q3JlZFBh
cmFtXV0sCisgICAgICAgIFtycCwgdXNlciwgbnVsbCwgW3B1YktleUNyZWRQYXJhbV1dLAorICAg
ICAgICBbcnAsIHVzZXIsIFN5bWJvbCgpLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFty
cCwgdXNlciwgImZvbyIsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBb
IF0sIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCB7IH0sIFtwdWJLZXlD
cmVkUGFyYW1dXSwKKyAgICAgICAgLy8gd3JvbmcgcHViS2V5Q3JlZFBhcmFtIHR5cGUKKyAgICAg
ICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6IDEsIGFsZzogcHViS2V5Q3JlZFBhcmFt
LmFsZyB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbeyB0eXBlOiB0cnVlLCBh
bGc6IHB1YktleUNyZWRQYXJhbS5hbGcgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5n
ZSwgW3sgdHlwZTogbnVsbCwgYWxnOiBwdWJLZXlDcmVkUGFyYW0uYWxnIH1dXSwKKyAgICAgICAg
W3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6IFN5bWJvbCgpLCBhbGc6IHB1YktleUNyZWRQ
YXJhbS5hbGcgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogImZv
byIsIGFsZzogcHViS2V5Q3JlZFBhcmFtLmFsZyB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hh
bGxlbmdlLCBbeyB0eXBlOiBbIF0sIGFsZzogcHViS2V5Q3JlZFBhcmFtLmFsZyB9XV0sCisgICAg
ICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbeyB0eXBlOiB7IH0sIGFsZzogcHViS2V5Q3JlZFBh
cmFtLmFsZyB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbeyB0eXBlOiBwdWJL
ZXlDcmVkUGFyYW0udHlwZSwgYWxnOiBTeW1ib2woKSB9XV0sCisgICAgICAgIC8vIHdyb25nIHRp
bWVvdXQgdHlwZQorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJh
bV0sIFN5bWJvbCgpLCB1bmRlZmluZWRdLAorICAgICAgICAvLyB3cm9uZyBleGNsdWRlQ3JlZGVu
dGlhbHMKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1
bmRlZmluZWQsIFt7IHR5cGU6IDEsIGlkOiBleGNsdWRlQ3JlZGVudGlhbHMuaWQgfV1dLAorICAg
ICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwg
W3sgdHlwZTogdHJ1ZSwgaWQ6IGV4Y2x1ZGVDcmVkZW50aWFscy5pZCB9XV0sCisgICAgICAgIFty
cCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBl
OiBudWxsLCBpZDogZXhjbHVkZUNyZWRlbnRpYWxzLmlkIH1dXSwKKyAgICAgICAgW3JwLCB1c2Vy
LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IFN5bWJv
bCgpLCBpZDogZXhjbHVkZUNyZWRlbnRpYWxzLmlkIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBj
aGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6ICJmb28iLCBp
ZDogZXhjbHVkZUNyZWRlbnRpYWxzLmlkIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVu
Z2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IFsgXSwgaWQ6IGV4Y2x1
ZGVDcmVkZW50aWFscy5pZCB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHVi
S2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiB7IH0sIGlkOiBleGNsdWRlQ3JlZGVu
dGlhbHMuaWQgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQ
YXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogZXhjbHVkZUNyZWRlbnRpYWxzLnR5cGUsIGlkOiAx
IH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1
bmRlZmluZWQsIFt7IHR5cGU6IGV4Y2x1ZGVDcmVkZW50aWFscy50eXBlLCBpZDogdHJ1ZSB9XV0s
CisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZp
bmVkLCBbeyB0eXBlOiBleGNsdWRlQ3JlZGVudGlhbHMudHlwZSwgaWQ6IG51bGwgfV1dLAorICAg
ICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwg
W3sgdHlwZTogZXhjbHVkZUNyZWRlbnRpYWxzLnR5cGUsIGlkOiBTeW1ib2woKSB9XV0sCisgICAg
ICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBb
eyB0eXBlOiBleGNsdWRlQ3JlZGVudGlhbHMudHlwZSwgaWQ6ICJmb28iIH1dXSwKKyAgICAgICAg
W3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5
cGU6IGV4Y2x1ZGVDcmVkZW50aWFscy50eXBlLCBpZDogWyBdIH1dXSwKKyAgICAgICAgW3JwLCB1
c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IGV4
Y2x1ZGVDcmVkZW50aWFscy50eXBlLCBpZDogeyB9IH1dXQorICAgIF0KKworICAgIGZ1bmN0aW9u
IG1ha2VPcHRpb25zKGF0dHJpYnV0ZXMpCisgICAgeworICAgICAgICBpZiAoYXR0cmlidXRlcy5s
ZW5ndGggPT0gNCkKKyAgICAgICAgICAgIHJldHVybiB7IHB1YmxpY0tleTogeyBycDogYXR0cmli
dXRlc1swXSwgdXNlcjogYXR0cmlidXRlc1sxXSwgY2hhbGxlbmdlOiBhdHRyaWJ1dGVzWzJdLCBw
dWJLZXlDcmVkUGFyYW1zOiBhdHRyaWJ1dGVzWzNdIH0gfTsKKyAgICAgICAgcmV0dXJuIHsgcHVi
bGljS2V5OiB7IHJwOiBhdHRyaWJ1dGVzWzBdLCB1c2VyOiBhdHRyaWJ1dGVzWzFdLCBjaGFsbGVu
Z2U6IGF0dHJpYnV0ZXNbMl0sIHB1YktleUNyZWRQYXJhbXM6IGF0dHJpYnV0ZXNbM10sIHRpbWVv
dXQ6IGF0dHJpYnV0ZXNbNF0sICBleGNsdWRlQ3JlZGVudGlhbHM6IGF0dHJpYnV0ZXNbNV19IH07
CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdChhdHRyaWJ1dGVzVmVjdG9ycykgeworICAg
ICAgICBhdHRyaWJ1dGVzVmVjdG9ycy5mb3JFYWNoKGZ1bmN0aW9uKGF0dHJpYnV0ZXNWZWN0b3Ip
IHsKKyAgICAgICAgICAgIGF0dHJpYnV0ZXNWZWN0b3IuZm9yRWFjaChhc3luYyBmdW5jdGlvbihh
dHRyaWJ1dGVzKSB7CisgICAgICAgICAgICAgICAgaW52YWxpZE9wdGlvbnMgPSBtYWtlT3B0aW9u
cyhhdHRyaWJ1dGVzKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBzaG91bGRSZWplY3QoJ25hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpJyk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorCisgICAg
Y29uc3QgdmVjdG9ycyA9IFtdOworICAgIHZlY3RvcnMucHVzaChtaXNzaW5nQXR0cmlidXRlVmVj
dG9yKTsKKyAgICB2ZWN0b3JzLnB1c2god3JvbmdUeXBlQXR0cmlidXRlVmVjdG9yKTsKKyAgICBy
dW5UZXN0KHZlY3RvcnMpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1z
YW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2lu
LXdpdGgtYW5jZXN0b3JzLTIuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3NWM1YzAx
YTEzZTE1MGIzMmNjNGE0Y2ZmNzAwNTBhYTQyZTM3YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9y
aWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBkb2Vzbid0IHNoYXJlIHRoZSBzYW1lIG9yaWdpbiB3
aXRoIGFsbCBpdHMgYW5jZXN0b3JzIGNvdWxkIG5vdCBhY2Nlc3MgdGhlIEFQSS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhyb3cgTm90QWxsb3dlZEVycm9yLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLTIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgt
YW5jZXN0b3JzLTIuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTAxMWE5ODUxOGM5MTY3ZDRiZmVl
NmZkZDBmNjZmOTU2MGI4MWYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNl
c3RvcnMtMi5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGZy
YW1lIHRoYXQgZG9lc24ndCBzaGFyZSB0aGUgc2FtZSBvcmlnaW4gd2l0aCBhbGwgaXRzIGFuY2Vz
dG9ycyBjb3VsZCBub3QgYWNjZXNzIHRoZSBBUEkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVj
ZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAg
IDxpZnJhbWUgc3JjPSJodHRwczovL2xvY2FsaG9zdDo4NDQzL3dlYmF1dGhuL3Jlc291cmNlcy9s
YXN0LWxheWVyLWZyYW1lLmh0dHBzLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2Ft
ZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3
NWM1YzAxYTEzZTE1MGIzMmNjNGE0Y2ZmNzAwNTBhYTQyZTM3YTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1z
YW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MCBAQAorVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgZG9lc24ndCBzaGFyZSB0aGUgc2FtZSBvcmln
aW4gd2l0aCBhbGwgaXRzIGFuY2VzdG9ycyBjb3VsZCBub3QgYWNjZXNzIHRoZSBBUEkuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRocm93IE5vdEFsbG93ZWRFcnJvci4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0
aC1hbmNlc3RvcnMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGM5NWNmNzYzZjg3Yzk3ZjU4YjBh
MmE0MTY0Nzg1MGYwMTBmZWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNl
c3RvcnMuaHR0cHMuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBmcmFt
ZSB0aGF0IGRvZXNuJ3Qgc2hhcmUgdGhlIHNhbWUgb3JpZ2luIHdpdGggYWxsIGl0cyBhbmNlc3Rv
cnMgY291bGQgbm90IGFjY2VzcyB0aGUgQVBJLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2Vp
dmVNZXNzYWdlLCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8
aWZyYW1lIHNyYz0iaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My93ZWJhdXRobi9yZXNvdXJjZXMvc2Vj
b25kLWxheWVyLWZyYW1lLmh0dHBzLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9yZXNvdXJjZXMvbGFz
dC1sYXllci1mcmFtZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRo
bi9yZXNvdXJjZXMvbGFzdC1sYXllci1mcmFtZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhYTJj
YzQ5NjA2NzI2M2FlNTNmYzdlZjJlMDgwNGU5MDNlMzFmNTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNlcy9sYXN0LWxheWVyLWZyYW1l
Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIG1l
c3NhZ2VUb1RvcChtZXNzYWdlUHJlZml4KSB7CisgICAgICAgIHRvcC5wb3N0TWVzc2FnZShtZXNz
YWdlUHJlZml4LCAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0MyIpOworICAgIH0KKworICAgIGNvbnN0
IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgcnA6IHsKKyAg
ICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisg
ICAgICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAg
ICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgcHVi
S2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dCisgICAgICAg
IH0KKyAgICB9OworICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhl
bigKKyAgICAgICAgZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAgICAgIG1lc3NhZ2VUb1RvcCgi
QWNjZXNzIGdyYW50ZWQuICIgKyB2YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAgIGZ1bmN0aW9u
KGV4Y2VwdGlvbikgeworICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbi5uYW1lID09ICJOb3RBbGxv
d2VkRXJyb3IiKQorICAgICAgICAgICAgICAgIG1lc3NhZ2VUb1RvcCgiUEFTUyBUaHJvdyBOb3RB
bGxvd2VkRXJyb3IuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbWVzc2Fn
ZVRvVG9wKCJUaHJvdyAiICsgZXhjZXB0aW9uLm5hbWUgICsgIi4iKTsKKyAgICAgICAgfQorICAg
ICk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNlcy9zZWNvbmQtbGF5ZXItZnJhbWUuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL3NlY29u
ZC1sYXllci1mcmFtZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjZjE2MzBlNDBmNGNkMWI1YWVj
M2FiNmJiOWRhNDRjY2VmMzc2MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNlcy9zZWNvbmQtbGF5ZXItZnJhbWUuaHR0cHMuaHRtbApA
QCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDxpZnJhbWUgc3JjPSJsYXN0LWxheWVyLWZyYW1lLmh0dHBzLmh0bWwiPjwv
aWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdiNmY0ZTg0MjQ0NDRhZTg1
ZjkwN2E2NWUxMzNhNTE4YTBkZGU1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanMKQEAgLTAsMCArMSwxOCBAQAorZnVu
Y3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQub3JpZ2luID09PSAi
aHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0MyIpIHsKKyAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhP
ZigiUEFTUyAiKSAhPT0gLTEpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVw
bGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KGV2ZW50LmRhdGEpOworICAgIH0gZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBh
IG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGFzY2lpVG9VaW50OEFycmF5KHN0cikK
K3sKKyAgICBjb25zdCBjaGFycyA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxl
bmd0aDsgKytpKQorICAgICAgICBjaGFycy5wdXNoKHN0ci5jaGFyQ29kZUF0KGkpKTsKKyAgICBy
ZXR1cm4gbmV3IFVpbnQ4QXJyYXkoY2hhcnMpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vV2ViQXV0aE4uaWRsIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vV2ViQXV0aE4uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxODllYzNmYzMwMDI3NDE3MjRiZjUxZTU0
YzA0YzFkOTA4MDFmZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9XZWJBdXRoTi5pZGwKQEAgLTAsMCArMSwxMzUgQEAKKy8vIENvcGllZCBmcm9tIGh0
dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jaWRsLWluZGV4IGFzIG9mIDUgRGVjZW1iZXIg
MjAxNworW1NlY3VyZUNvbnRleHQsIEV4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIFB1YmxpY0tl
eUNyZWRlbnRpYWwgOiBDcmVkZW50aWFsIHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIEFycmF5QnVmZmVyICAgICAgICAgICAgICByYXdJZDsKKyAgICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIEF1dGhlbnRpY2F0b3JSZXNwb25zZSAgICByZXNwb25zZTsKKyAg
ICBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnMgZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpOwor
fTsKKworcGFydGlhbCBkaWN0aW9uYXJ5IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgeworICAg
IE1ha2VQdWJsaWNLZXlDcmVkZW50aWFsT3B0aW9ucyAgICAgIHB1YmxpY0tleTsKK307CisKK3Bh
cnRpYWwgZGljdGlvbmFyeSBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgeworICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyAgICAgIHB1YmxpY0tleTsKK307CisKK3BhcnRpYWwg
aW50ZXJmYWNlIFB1YmxpY0tleUNyZWRlbnRpYWwgeworICAgIHN0YXRpYyBQcm9taXNlIDwgYm9v
bGVhbiA+IGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpOwor
fTsKKworW1NlY3VyZUNvbnRleHQsIEV4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIEF1dGhlbnRp
Y2F0b3JSZXNwb25zZSB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJh
eUJ1ZmZlciAgICAgIGNsaWVudERhdGFKU09OOworfTsKKworW1NlY3VyZUNvbnRleHQsIEV4cG9z
ZWQ9V2luZG93XQoraW50ZXJmYWNlIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlIDog
QXV0aGVudGljYXRvclJlc3BvbnNlIHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIEFycmF5QnVmZmVyICAgICAgYXR0ZXN0YXRpb25PYmplY3Q7Cit9OworCitbU2VjdXJlQ29u
dGV4dCwgRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgQXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlIDogQXV0aGVudGljYXRvclJlc3BvbnNlIHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIEFycmF5QnVmZmVyICAgICAgYXV0aGVudGljYXRvckRhdGE7CisgICAgW1Nh
bWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJheUJ1ZmZlciAgICAgIHNpZ25hdHVyZTsK
KyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5QnVmZmVyICAgICAgdXNl
ckhhbmRsZTsKK307CisKK2RpY3Rpb25hcnkgUHVibGljS2V5Q3JlZGVudGlhbFBhcmFtZXRlcnMg
eworICAgIHJlcXVpcmVkIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlICAgICAgdHlwZTsKKyAgICBy
ZXF1aXJlZCBDT1NFQWxnb3JpdGhtSWRlbnRpZmllciAgICAgIGFsZzsKK307CisKK2RpY3Rpb25h
cnkgTWFrZVB1YmxpY0tleUNyZWRlbnRpYWxPcHRpb25zIHsKKyAgICByZXF1aXJlZCBQdWJsaWNL
ZXlDcmVkZW50aWFsUnBFbnRpdHkgICAgICAgICBycDsKKyAgICByZXF1aXJlZCBQdWJsaWNLZXlD
cmVkZW50aWFsVXNlckVudGl0eSAgICAgICB1c2VyOworCisgICAgcmVxdWlyZWQgQnVmZmVyU291
cmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U7CisgICAgcmVxdWlyZWQg
c2VxdWVuY2U8UHVibGljS2V5Q3JlZGVudGlhbFBhcmFtZXRlcnM+ICBwdWJLZXlDcmVkUGFyYW1z
OworCisgICAgdW5zaWduZWQgbG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlt
ZW91dDsKKyAgICBzZXF1ZW5jZTxQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4gICAgICBl
eGNsdWRlQ3JlZGVudGlhbHMgPSBbXTsKKyAgICBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVy
aWEgICAgICAgICAgICAgICBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOworICAgIEF0dGVzdGF0aW9u
Q29udmV5YW5jZVByZWZlcmVuY2UgICAgICAgICAgICAgIGF0dGVzdGF0aW9uID0gIm5vbmUiOwor
ICAgIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9ucyAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lv
bnM7Cit9OworCitkaWN0aW9uYXJ5IFB1YmxpY0tleUNyZWRlbnRpYWxFbnRpdHkgeworICAgIHJl
cXVpcmVkIERPTVN0cmluZyAgICBuYW1lOworICAgIFVTVlN0cmluZyAgICAgICAgICAgICBpY29u
OworfTsKKworZGljdGlvbmFyeSBQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHkgOiBQdWJsaWNL
ZXlDcmVkZW50aWFsRW50aXR5IHsKKyAgICBET01TdHJpbmcgICAgICBpZDsKK307CisKK2RpY3Rp
b25hcnkgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkgOiBQdWJsaWNLZXlDcmVkZW50aWFs
RW50aXR5IHsKKyAgICByZXF1aXJlZCBCdWZmZXJTb3VyY2UgICBpZDsKKyAgICByZXF1aXJlZCBE
T01TdHJpbmcgICAgICBkaXNwbGF5TmFtZTsKK307CisKK2RpY3Rpb25hcnkgQXV0aGVudGljYXRv
clNlbGVjdGlvbkNyaXRlcmlhIHsKKyAgICBBdXRoZW50aWNhdG9yQXR0YWNobWVudCAgICAgIGF1
dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAgIGJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAg
cmVxdWlyZVJlc2lkZW50S2V5ID0gZmFsc2U7CisgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50ICB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7Cit9OworCitlbnVtIEF1dGhlbnRp
Y2F0b3JBdHRhY2htZW50IHsKKyAgICAicGxhdGZvcm0iLCAgICAgICAvLyBQbGF0Zm9ybSBhdHRh
Y2htZW50CisgICAgImNyb3NzLXBsYXRmb3JtIiAgLy8gQ3Jvc3MtcGxhdGZvcm0gYXR0YWNobWVu
dAorfTsKKworZW51bSBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlIHsKKyAgICAibm9u
ZSIsCisgICAgImluZGlyZWN0IiwKKyAgICAiZGlyZWN0IgorfTsKKworZGljdGlvbmFyeSBQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgeworICAgIHJlcXVpcmVkIEJ1ZmZlclNvdXJj
ZSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U7CisgICAgdW5zaWduZWQgbG9uZyAgICAgICAgICAg
ICAgICAgICAgICAgIHRpbWVvdXQ7CisgICAgVVNWU3RyaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJwSWQ7CisgICAgc2VxdWVuY2U8UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+
IGFsbG93Q3JlZGVudGlhbHMgPSBbXTsKKyAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQg
ICAgICAgICAgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJyZWQiOworICAgIEF1dGhlbnRpY2F0
aW9uRXh0ZW5zaW9ucyAgICAgICAgICAgICBleHRlbnNpb25zOworfTsKKwordHlwZWRlZiByZWNv
cmQ8RE9NU3RyaW5nLCBhbnk+ICAgICAgIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uczsKKworZGlj
dGlvbmFyeSBDb2xsZWN0ZWRDbGllbnREYXRhIHsKKyAgICByZXF1aXJlZCBET01TdHJpbmcgICAg
ICAgICAgIHR5cGU7CisgICAgcmVxdWlyZWQgRE9NU3RyaW5nICAgICAgICAgICBjaGFsbGVuZ2U7
CisgICAgcmVxdWlyZWQgRE9NU3RyaW5nICAgICAgICAgICBvcmlnaW47CisgICAgcmVxdWlyZWQg
RE9NU3RyaW5nICAgICAgICAgICBoYXNoQWxnb3JpdGhtOworICAgIERPTVN0cmluZyAgICAgICAg
ICAgICAgICAgICAgdG9rZW5CaW5kaW5nSWQ7CisgICAgQXV0aGVudGljYXRpb25FeHRlbnNpb25z
ICAgICBjbGllbnRFeHRlbnNpb25zOworICAgIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9ucyAgICAg
YXV0aGVudGljYXRvckV4dGVuc2lvbnM7Cit9OworCitlbnVtIFB1YmxpY0tleUNyZWRlbnRpYWxU
eXBlIHsKKyAgICAicHVibGljLWtleSIKK307CisKK2RpY3Rpb25hcnkgUHVibGljS2V5Q3JlZGVu
dGlhbERlc2NyaXB0b3IgeworICAgIHJlcXVpcmVkIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlICAg
ICAgdHlwZTsKKyAgICByZXF1aXJlZCBCdWZmZXJTb3VyY2UgICAgICAgICAgICAgICAgIGlkOwor
ICAgIHNlcXVlbmNlPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ+ICAgICAgdHJhbnNwb3J0czsKK307
CisKK2VudW0gQXV0aGVudGljYXRvclRyYW5zcG9ydCB7CisgICAgInVzYiIsCisgICAgIm5mYyIs
CisgICAgImJsZSIKK307CisKK3R5cGVkZWYgbG9uZyBDT1NFQWxnb3JpdGhtSWRlbnRpZmllcjsK
KworZW51bSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgeworICAgICJyZXF1aXJlZCIsCisg
ICAgInByZWZlcnJlZCIsCisgICAgImRpc2NvdXJhZ2VkIgorfTsKKwordHlwZWRlZiBzZXF1ZW5j
ZTxBQUdVSUQ+ICAgICAgQXV0aGVudGljYXRvclNlbGVjdGlvbkxpc3Q7CisKK3R5cGVkZWYgQnVm
ZmVyU291cmNlICAgICAgQUFHVUlEOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vaWRsLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL2lkbC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdkZGI0YWFjODBkMjQ2
OGM0OWQ5YmU4NTc0YjYwZTMxMGFhMzBkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NSBA
QAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIGltcGxlbWVudGF0
aW9ucyBvZiB0aGUgV2ViQXV0aE4gQVBJIG1hdGNoIHdpdGggaXRzIFdlYklETCBkZWZpbml0aW9u
LgorCisKK1BBU1MgU2V0dXAgZm9yIFdlYkF1dGhOIEFQSSBJREwgdGVzdHMuIAorUEFTUyBDcmVk
ZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIENy
ZWRlbnRpYWwgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBDcmVkZW50aWFsIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IAorUEFTUyBDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BB
U1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCAKK1BBU1MgQ3JlZGVudGlhbCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSB0eXBlIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNT
IFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIFB1Ymxp
Y0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNv
bnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSByYXdJZCAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSByZXNwb25zZSAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgCitQQVNTIFB1YmxpY0tleUNyZWRl
bnRpYWwgaW50ZXJmYWNlOiBvcGVyYXRpb24gaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50
aWNhdG9yQXZhaWxhYmxlKCkgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwgbXVzdCBiZSBwcmlt
YXJ5IGludGVyZmFjZSBvZiBjcmVkZW50aWFsIAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgY3Jl
ZGVudGlhbCAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGNyZWRlbnRpYWwg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJyYXdJZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlOiBjcmVkZW50aWFsIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAicmVzcG9uc2UiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQdWJsaWNLZXlD
cmVkZW50aWFsIGludGVyZmFjZTogY3JlZGVudGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdl
dENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlOiBjcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBDcmVkZW50aWFsIGludGVyZmFjZTogY3JlZGVudGlh
bCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImlkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1Mg
Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGNyZWRlbnRpYWwgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0
eXBlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgQXV0aGVudGljYXRvclJlc3BvbnNlIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQ
QVNTIEF1dGhlbnRpY2F0b3JSZXNwb25zZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1Mg
QXV0aGVudGljYXRvclJlc3BvbnNlIGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgQXV0aGVu
dGljYXRvclJlc3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBBdXRoZW50aWNhdG9yUmVzcG9uc2UgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBBdXRoZW50aWNhdG9yUmVzcG9u
c2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY2xpZW50RGF0YUpTT04gCitQQVNTIEF1dGhlbnRpY2F0
b3JBdHRlc3RhdGlvblJlc3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3Bv
bnNlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRp
b25SZXNwb25zZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIEF1dGhlbnRpY2F0b3JBdHRl
c3RhdGlvblJlc3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25S
ZXNwb25zZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIEF1dGhlbnRp
Y2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlIGludGVyZmFjZTogYXR0cmlidXRlIGF0dGVzdGF0aW9u
T2JqZWN0IAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBtdXN0IGJlIHBy
aW1hcnkgaW50ZXJmYWNlIG9mIGNyZWRlbnRpYWwucmVzcG9uc2UgCitQQVNTIFN0cmluZ2lmaWNh
dGlvbiBvZiBjcmVkZW50aWFsLnJlc3BvbnNlIAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRp
b25SZXNwb25zZSBpbnRlcmZhY2U6IGNyZWRlbnRpYWwucmVzcG9uc2UgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJhdHRlc3RhdGlvbk9iamVjdCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEF1
dGhlbnRpY2F0b3JSZXNwb25zZSBpbnRlcmZhY2U6IGNyZWRlbnRpYWwucmVzcG9uc2UgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJjbGllbnREYXRhSlNPTiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQ
QVNTIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBBdXRoZW50aWNhdG9yQXNz
ZXJ0aW9uUmVzcG9uc2UgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIEF1dGhlbnRpY2F0
b3JBc3NlcnRpb25SZXNwb25zZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIEF1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgQXV0
aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlIGludGVyZmFjZTogYXR0cmlidXRlIGF1dGhlbnRp
Y2F0b3JEYXRhIAorUEFTUyBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgc2lnbmF0dXJlIAorUEFTUyBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9u
c2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdXNlckhhbmRsZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9pZGwuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDJiY2JmZDcyNDQ3YWRi
ZGE4MWMwMTg1ZDM5NzUwNWVhYjY0MDYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9dXRmLTg+CisgICAg
PHRpdGxlPklETCBjaGVjayBvZiBXZWJBdXRoTjwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI2lkbC1pbmRleCI+CisgICAg
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPS9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPS9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGgx
IGNsYXNzPSJpbnN0cnVjdGlvbnMiPkRlc2NyaXB0aW9uPC9oMT4KKworPHAgY2xhc3M9Imluc3Ry
dWN0aW9ucyI+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIGltcGxlbWVudGF0aW9ucyBvZiB0
aGUgV2ViQXV0aE4gQVBJIG1hdGNoIHdpdGggaXRzIFdlYklETCBkZWZpbml0aW9uLjwvcD4KKwor
PGRpdiBpZD0nbG9nJz48L2Rpdj4KKworPHNjcmlwdD4KK3Byb21pc2VfdGVzdChhc3luYyAoKSA9
PiB7CisgICAgY29uc3QgaWRsVVJMID0gWyJXZWJBdXRoTi5pZGwiXTsKKyAgICBjb25zdCBpZGxB
cnJheSA9IG5ldyBJZGxBcnJheSgpOworICAgIGNvbnN0IGlkbFRleHQgPSBhd2FpdCBmZXRjaChp
ZGxVUkwpLnRoZW4ociA9PiByLnRleHQoKSk7CisKKyAgICBpZGxBcnJheS5hZGRfdW50ZXN0ZWRf
aWRscygiaW50ZXJmYWNlIEFycmF5QnVmZmVyIHt9OyIpOworCisgICAgaWRsQXJyYXkuYWRkX2lk
bHMoYAorICAgICAgICBbRXhwb3NlZD1XaW5kb3csIFNlY3VyZUNvbnRleHRdCisgICAgICAgIGlu
dGVyZmFjZSBDcmVkZW50aWFsIHsKKyAgICAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZT
dHJpbmcgaWQ7CisgICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7
CisgICAgICAgIH07CisgICAgYCk7CisgICAgaWRsQXJyYXkuYWRkX2lkbHMoaWRsVGV4dCk7CisK
KyAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAg
IHJwOiB7CisgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxl
c2VlZCIsCisgICAgICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwK
KyAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisg
ICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzog
LTcgfV0sCisgICAgICAgIH0KKyAgICB9OworICAgIGNyZWRlbnRpYWwgPSBhd2FpdCBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpOworCisgICAgaWRsQXJyYXkuYWRkX29iamVj
dHMoeyJQdWJsaWNLZXlDcmVkZW50aWFsIjogWyJjcmVkZW50aWFsIl0sICJBdXRoZW50aWNhdG9y
QXR0ZXN0YXRpb25SZXNwb25zZSI6IFsiY3JlZGVudGlhbC5yZXNwb25zZSJdfSk7CisgICAgaWRs
QXJyYXkudGVzdCgpOworfSwgIlNldHVwIGZvciBXZWJBdXRoTiBBUEkgSURMIHRlc3RzLiIpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1m
YWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDc2MWYzZjRhYzIxMmZlZmMy
YzkwN2NhMWVkMGNlNzI5OTU1Mjk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFs
J3MgW1tjcmVhdGVdXSB3aXRoIHRpbWVvdXQgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2NyZWF0ZV1dIHdpdGggYSBtaXNtYXRjaGVkIFJQIElEIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50
aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIGFuIGVtcHR5IHB1YktleUNyZWRQYXJhbXMgCitQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdXNlciBjYW5jZWxsYXRpb25zIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIwZThlNDE5NzVhYTE0ZjU1YWQyMDhlMjI3ZGMwN2Y2YmRjMTJiNzYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbApAQCAtMCwwICsxLDg4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5XZWIgQXV0aGVudGljYXRpb24gQVBJOiBQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tjcmVhdGVdXSBmYWlsdXJlIGNhc2VzLjwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi9y
ZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIHByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJs
aWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1l
OiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2Vy
OiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAg
ICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAg
ICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAg
ICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzog
LTcgfV0sCisgICAgICAgICAgICAgICAgdGltZW91dDogMCwKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9y
IiwKKyAgICAgICAgICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykpOwor
ICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHRpbWVvdXQiKTsK
KworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAg
ICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iLAorICAgICAgICAgICAgICAgICAg
ICBpZDogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
dXNlcjogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAg
ICAgICAgICAgICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAg
ICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisg
ICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBh
bGc6IC03IH1dLAorICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICByZXR1cm4gcHJv
bWlzZV9yZWplY3RzKHQsICJTZWN1cml0eUVycm9yIiwKKyAgICAgICAgICAgIG5hdmlnYXRvci5j
cmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykpOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFs
J3MgW1tjcmVhdGVdXSB3aXRoIGEgbWlzbWF0Y2hlZCBSUCBJRCIpOworCisgICAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAg
IHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAg
IG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgICAgICAgICBpZDogImxvY2FsaG9zdCIK
KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAg
ICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6
IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxh
eU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
Y2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAg
cHViS2V5Q3JlZFBhcmFtczogWyBdLAorICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAg
ICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICJOb3RTdXBwb3J0ZWRFcnJvciIsCisgICAgICAg
ICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpKTsKKyAgICB9LCAiUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBhbiBlbXB0eSBwdWJLZXlDcmVkUGFy
YW1zIik7CisKKyAgICAvLyBUaGlzIHRlc3QgaXMgdGFyZ2V0aW5nIHRvIHRoZSBkdW1teSBhdXRo
ZW50aWNhdG9yLCB3aGljaCBhbHdheXMgY2FuY2VsIHRoZSBvcGVyYXRpb24KKyAgICAvLyB3aGVu
IHVzZXIuZGlzcGxheU5hbWUgPSAiSm9obiIuCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogewor
ICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhv
c3QiLAorICAgICAgICAgICAgICAgICAgICBpZDogImxvY2FsaG9zdCIKKyAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTog
IkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFy
cmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwK
KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1Vp
bnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7
IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwK
KyAgICAgICAgICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykpOworICAg
IH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHVzZXIgY2FuY2VsbGF0
aW9ucyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyZWF0ZS1zdWNjZXNzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTg2ODQwNmI1
ODJmNTM0YzlkNmEyYmIxNTEzZWZlZGI5NDdlZDEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNj
ZXNzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1pbmltdW0gb3B0aW9ucyAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNy
ZWF0ZS1zdWNjZXNzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MuaHR0cHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wZjNlZWZmMTczNjcyMDcwM2UzNGQ3N2VlNzYxMWY3MDJiZTZmNDkwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyZWF0ZS1zdWNjZXNzLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8dGl0bGU+V2ViIEF1dGhlbnRpY2F0aW9uIEFQSTogUHVibGljS2V5Q3JlZGVudGlhbCdz
IFtbY3JlYXRlXV0gc3VjY2VzcyBjYXNlcy48L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICAvLyBUaGUgZm9sbG93aW5nIHRlc3QgaXMg
c3BlY2lmaWNhbGx5IHR1bmVkIGZvciBjdXJyZW50IGR1bW15IGF1dGhlbnRpY2F0b3IuCisgICAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAg
ICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAg
ICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNl
ZWQiLAorICAgICAgICAgICAgICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIp
LAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgi
TVRJek5EVTIiKSwKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAi
cHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAg
ICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihm
dW5jdGlvbihjcmVkZW50aWFsKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjcmVk
ZW50aWFsLmlkLCAnX3cnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNyZWRlbnRp
YWwudHlwZSwgJ3B1YmxpYy1rZXknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5
dGVzVG9IZXhTdHJpbmcoY3JlZGVudGlhbC5yYXdJZCksICdmZicpOworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoYnl0ZXNUb0FTQ0lJU3RyaW5nKGNyZWRlbnRpYWwucmVzcG9uc2UuY2xp
ZW50RGF0YUpTT04pLCAneyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiTVRJ
ek5EVTIiLCJvcmlnaW4iOiJodHRwczovL2xvY2FsaG9zdDo5NDQzIiwiaGFzaEFsZ29yaXRobSI6
IlNIQS0yNTYifScpOworICAgICAgICAgICAgICAgIC8vIFRoaXMgZmllbGQgaXMgY29tcGxldGVs
eSBmYWtlIDB4MDAqNDMgfCAweDAwMDFmZiB8IFNIQS0yNTYgaGFzaCBvZiB0aGUgY2xpZW50RGF0
YUpTT04KKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9IZXhTdHJpbmcoY3Jl
ZGVudGlhbC5yZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCksICcwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDFmZjMzNzRiOTgzMTZiMzgwNDY3MjdhNzcwYjhlOTVjNDU4MGEyOTJiOWUy
ZjRiYjQ0YTI1MGE1NDAyZDZkMzc4M2EnKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJOb3RTdXBwb3J0ZWRFcnJvciIsIGNyZWRlbnRp
YWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNo
IHsgfQorICAgICAgICAgICAgfSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2Ny
ZWF0ZV1dIHdpdGggbWluaW11bSBvcHRpb25zIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA3NWVi
Nzg0ODE1ZTYzNWM4ODRiMzg1ZGMzNTc2ZThmYzMzOWQ5OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy91dGlsLmpzCkBAIC0wLDAgKzEs
NDUgQEAKK2Z1bmN0aW9uIGFzY2lpVG9VaW50OEFycmF5KHN0cikKK3sKKyAgICB2YXIgY2hhcnMg
PSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkKKyAgICAgICAg
Y2hhcnMucHVzaChzdHIuY2hhckNvZGVBdChpKSk7CisgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5
KGNoYXJzKTsKK30KKworLy8gQnVpbGRzIGEgaGV4IHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3Ig
YW4gYXJyYXktbGlrZSBpbnB1dC4KKy8vICJieXRlcyIgY2FuIGJlIGFuIEFycmF5IG9mIGJ5dGVz
LCBhbiBBcnJheUJ1ZmZlciwgb3IgYW55IFR5cGVkQXJyYXkuCisvLyBUaGUgb3V0cHV0IGxvb2tz
IGxpa2UgdGhpczoKKy8vICAgIGFiMDM0Yzk5CitmdW5jdGlvbiBieXRlc1RvSGV4U3RyaW5nKGJ5
dGVzKQoreworICAgIGlmICghYnl0ZXMpCisgICAgICAgIHJldHVybiBudWxsOworCisgICAgYnl0
ZXMgPSBuZXcgVWludDhBcnJheShieXRlcyk7CisgICAgdmFyIGhleEJ5dGVzID0gW107CisKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBi
eXRlU3RyaW5nID0gYnl0ZXNbaV0udG9TdHJpbmcoMTYpOworICAgICAgICBpZiAoYnl0ZVN0cmlu
Zy5sZW5ndGggPCAyKQorICAgICAgICAgICAgYnl0ZVN0cmluZyA9ICIwIiArIGJ5dGVTdHJpbmc7
CisgICAgICAgIGhleEJ5dGVzLnB1c2goYnl0ZVN0cmluZyk7CisgICAgfQorCisgICAgcmV0dXJu
IGhleEJ5dGVzLmpvaW4oIiIpOworfQorCitmdW5jdGlvbiBieXRlc1RvQVNDSUlTdHJpbmcoYnl0
ZXMpCit7CisgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgbmV3IFVp
bnQ4QXJyYXkoYnl0ZXMpKTsKK30KKwordmFyIEJhc2U2NFVSTCA9IHsKKyAgICBzdHJpbmdpZnk6
IGZ1bmN0aW9uIChhKSB7CisgICAgICAgIHZhciBiYXNlNjRzdHJpbmcgPSBidG9hKFN0cmluZy5m
cm9tQ2hhckNvZGUuYXBwbHkoMCwgYSkpOworICAgICAgICByZXR1cm4gYmFzZTY0c3RyaW5nLnJl
cGxhY2UoLz0vZywgIiIpLnJlcGxhY2UoL1wrL2csICItIikucmVwbGFjZSgvXC8vZywgIl8iKTsK
KyAgICB9LAorICAgIHBhcnNlOiBmdW5jdGlvbiAocykgeworICAgICAgICBzID0gcy5yZXBsYWNl
KC8tL2csICIrIikucmVwbGFjZSgvXy9nLCAiLyIpLnJlcGxhY2UoL1xzL2csICcnKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChhdG9iKHMp
LCBmdW5jdGlvbiAoYykgeyByZXR1cm4gYy5jaGFyQ29kZUF0KDApIH0pKTsKKyAgICB9Cit9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331954</attachid>
            <date>2018-01-22 13:05:33 -0800</date>
            <delta_ts>2018-01-22 14:04:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181928-20180122130532.patch</filename>
            <type>text/plain</type>
            <size>101496</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEwZjBkZmQ3Zjg4ZTc0
NDA3MTUzMzUzYTNjMTNhODY5ZTAwNzgzMS4uNzVjODJiM2IxNmUxOTgxM2RjOTNmNTU0MzlhYmI0
Yjk2ZjczMGQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDE4LTAxLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBs
ZW1lbnQgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbQ3JlYXRlXV0gd2l0aCBhIGR1bW15IGF1dGhl
bnRpY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MTkyOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY0NTk4OTM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRz
IFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW0NyZWF0ZV1dIGZyb20gaHR0cHM6Ly93d3cudzMub3Jn
L1RSL3dlYmF1dGhuLyNjcmVhdGVDcmVkZW50aWFsCisgICAgICAgIGFzIG9mIDUgRGVjZW1iZXIg
MjAxNy4gSW4gb3JkZXIgdG8gZG8gdGVzdGluZywgYSBkdW1teSBhdXRoZW50aWNhdG9yIGlzIGlt
cGxlbWVudGVkIHRvIGV4ZXJjaXNlIGEgZmFpbHVyZQorICAgICAgICBhbmQgYSBwYXNzIHBhdGhz
LiBBIG51bWJlcnMgb2YgZGVwZW5kZW5jaWVzIG5lZWQgdG8gYmUgcmVzb2x2ZWQgbGF0ZXIgaW4g
b3JkZXIgdG8gY29tcGx5IHdpdGggdGhlIHNwZWMuCisgICAgICAgIEFsc28sIHRoZSBjdXJyZW50
IGFyY2hpdGVjdHVyZSBvZiBoYW5kbGluZyBhc3luYyBvcGVyYXRpb25zIGluY2x1ZGluZyBkaXNw
YXRjaGluZywgdGltZW91dCwgYW5kIGFib3J0aW5nCisgICAgICAgIG1pZ2h0IG5lZWQgYSByZWRl
c2lnbiBvbmNlIHRoZSB1bmRlcmx5aW5nIGF1dGhlbnRpY2F0b3IgaXMgY2xlYXIuIFNpbmNlIHRo
aXMgaXMgb3VyIGZpcnN0IGF0dGVtcHQgdG8gaW1wbGVtZW50CisgICAgICAgIGEgcHJvdG90eXBl
LCBhbGwgdGhvc2UgbGltaXRhdGlvbnMsIGluIG15IG9waW5pb24sIGNhbiBiZSBtYXJrZWQgYXMg
bm9uLWJsb2NraW5nIHRvIGFjY2VsZXJhdGUgdGhlIHdob2xlCisgICAgICAgIHByb2Nlc3MuIFRo
b3NlIGxpbWl0YXRpb25zIHdpbGwgdGhlbiBiZSBhZGRyZXNzZWQgb25jZSB0aGUgZmlyc3QgcHJv
dG90eXBlIGlzIGZpbnNoZWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS13aXRoLWludmFsaWQtcGFyYW1ldGVycy5odHRw
cy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBzLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3Jp
Z2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0L3dl
YmF1dGhuL2lkbC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNj
ZXNzLmh0dHBzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
QmFzaWNDcmVkZW50aWFsLmg6CisgICAgICAgICogTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVu
dC9CYXNpY0NyZWRlbnRpYWwuaWRsOgorICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlhbG1hbmFn
ZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVu
dGlhbHNDb250YWluZXI6OlBlbmRpbmdQcm9taXNlOjpQZW5kaW5nUHJvbWlzZSk6CisgICAgICAg
IChXZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6ZGlzcGF0Y2hUYXNrKToKKyAgICAgICAg
KFdlYkNvcmU6OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q3JlZGVudGlhbHNDb250YWluZXI6OmlzQ3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRl
bnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29u
dGFpbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6UGVuZGlu
Z1Byb21pc2U6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yUmVzcG9uc2UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvcjo6
c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50
aWFsIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3IuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmguCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVu
dGljYXRvckFzc2VydGlvblJlc3BvbnNlOjphdXRoZW50aWNhdG9yRGF0YSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OnNpZ25hdHVyZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6
OnVzZXJIYW5kbGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlOjp+QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6YXV0aGVu
dGljYXRvckRhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlOjpzaWduYXR1cmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjp1c2VySGFuZGxlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5o
OgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjpjcmVh
dGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjp+QXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2U6OmNsaWVudERhdGFKU09OIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZTo6fkF1dGhlbnRp
Y2F0b3JSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9y
UmVzcG9uc2U6OmNsaWVudERhdGFKU09OKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0
aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhu
L1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3Jl
ZGVudGlhbEludGVybmFsOjpwcm9kdWNlQ2xpZW50RGF0YUpzb24pOgorICAgICAgICAoV2ViQ29y
ZTo6UHVibGljS2V5Q3JlZGVudGlhbEludGVybmFsOjpwcm9kdWNlQ2xpZW50RGF0YUpzb25IYXNo
KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxJbnRlcm5hbDo6Z2V0SWRG
cm9tQXR0ZXN0YXRpb25PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVu
dGlhbDo6UHVibGljS2V5Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlD
cmVkZW50aWFsOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQdWJsaWNLZXlDcmVkZW50aWFsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGlj
S2V5Q3JlZGVudGlhbDo6cmF3SWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5
Q3JlZGVudGlhbDo6cmVzcG9uc2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5
Q3JlZGVudGlhbDo6Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpyYXdJZCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpyZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5oOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmg6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5pZGw6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9y
QXR0ZXN0YXRpb25SZXNwb25zZS5jcHAuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVh
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
QmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwLgorICAgICAgICAoV2ViQ29y
ZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorCiAyMDE4LTAxLTE4ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVp
bGQgZml4LCByZW1vdmVkIHVudXNlZCBsYW1iZGEgY2FwdHVyZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWNDcmVkZW50aWFsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2ljQ3JlZGVu
dGlhbC5oCmluZGV4IDc3NjBiZWE3MzE4ZTY5ZmNiNzM2OWJmNWI4MGY2YTBmODFhMjZkYzIuLmQ3
ZGI0MWI0YzFmODhhZTdkZWFhMDY4ZDg3MjNjYTU1YjFkNzU1MjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWNDcmVkZW50aWFsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9CYXNpY0Ny
ZWRlbnRpYWwuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQxLDE1ICs0MiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIFJlbW90ZSwKICAgICB9OwogCisgICAg
QmFzaWNDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYsIFR5cGUsIERpc2NvdmVyeSk7CiAgICAgdmly
dHVhbCB+QmFzaWNDcmVkZW50aWFsKCk7CiAKKyAgICB2aXJ0dWFsIFR5cGUgY3JlZGVudGlhbFR5
cGUoKSBjb25zdCA9IDA7CisKICAgICBjb25zdCBTdHJpbmcmIGlkKCkgY29uc3QgeyByZXR1cm4g
bV9pZDsgfQogICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CiAgICAgRGlzY292ZXJ5IGRpc2NvdmVy
eSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzY292ZXJ5OyB9CiAKLXByb3RlY3RlZDoKLSAgICBCYXNp
Y0NyZWRlbnRpYWwoY29uc3QgU3RyaW5nJiwgVHlwZSwgRGlzY292ZXJ5KTsKLQogcHJpdmF0ZToK
ICAgICBTdHJpbmcgbV9pZDsKICAgICBUeXBlIG1fdHlwZTsKQEAgLTU3LDMgKzU4LDggQEAgcHJp
dmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2RlZmluZSBTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0JBU0lDX0NSRURFTlRJQUwoVG9DbGFzc05hbWUsIFR5cGUpIFwKK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6VG9DbGFzc05hbWUpIFwKKyAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6QmFzaWNDcmVkZW50aWFsJiBjcmVkZW50aWFs
KSB7IHJldHVybiBjcmVkZW50aWFsLmNyZWRlbnRpYWxUeXBlKCkgPT0gV2ViQ29yZTo6VHlwZTsg
fSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2ljQ3JlZGVudGlhbC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2ljQ3JlZGVudGlh
bC5pZGwKaW5kZXggZjIzZWQyZjAzZmUyODVlMTEyNTg0OWE5M2RmN2MzYWQ2MWIyYTI0Zi4uYTUw
Yzk0ZWJiMWIzM2NkODNkNTQ3YmIzZWYwOTViN2I2OTYwNTZkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9CYXNpY0NyZWRlbnRpYWwuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWND
cmVkZW50aWFsLmlkbApAQCAtMjUsNiArMjUsNyBAQAogCiBbCiAgICAgSW50ZXJmYWNlTmFtZT1D
cmVkZW50aWFsLAorICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJBdXRoZW50aWNhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTZWN1cmVDb250ZXh0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50
L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVu
dGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCmluZGV4IDllYzM4NThlMDEz
ZmQ1Yjc0YmEwMWMxZDQ5MDVhZjBjMjFiYzQ1MzMuLjFiNWJlOWI5NjE1ZjkzMTUwYWZmMGQzMWUx
MWE3YzU0YTg0ZWZjZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVu
dGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3Bw
CkBAIC0zNSwxNSArMzUsMjkgQEAKICNpbmNsdWRlICJKU0Jhc2ljQ3JlZGVudGlhbC5oIgogI2lu
Y2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWwuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Q3JlZGVudGlhbHNDb250YWluZXI6OlBlbmRpbmdQcm9taXNlOjpQZW5kaW5nUHJvbWlzZShSZWY8
RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIHN0ZDo6dW5pcXVlX3B0cjxUaW1lcj4mJiB0aW1l
cikKKyAgICA6IHByb21pc2UoV1RGTW92ZShwcm9taXNlKSkKKyAgICAsIHRpbWVyKFdURk1vdmUo
dGltZXIpKQoreworfQorCitDcmVkZW50aWFsc0NvbnRhaW5lcjo6UGVuZGluZ1Byb21pc2U6OlBl
bmRpbmdQcm9taXNlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAgICA6IHByb21p
c2UoV1RGTW92ZShwcm9taXNlKSkKK3sKK30KKwogQ3JlZGVudGlhbHNDb250YWluZXI6OkNyZWRl
bnRpYWxzQ29udGFpbmVyKFdlYWtQdHI8RG9jdW1lbnQ+JiYgZG9jdW1lbnQpCiAgICAgOiBtX2Rv
Y3VtZW50KFdURk1vdmUoZG9jdW1lbnQpKQogICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ3JlZGVudGlhbFF1ZXVlIikpCiB7CiB9CiAKKy8vIFRo
ZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXBwc2VjLWNy
ZWRlbnRpYWwtbWFuYWdlbWVudC8jc2FtZS1vcmlnaW4td2l0aC1pdHMtYW5jZXN0b3JzCisvLyBh
cyBvZiAxNCBOb3ZlbWJlciAyMDE3LgogYm9vbCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6ZG9lc0hh
dmVTYW1lT3JpZ2luQXNJdHNBbmNlc3RvcnMoKQogewogICAgIGlmICghbV9kb2N1bWVudCkKQEAg
LTU3LDIxICs3MSw0NiBAQCBib29sIENyZWRlbnRpYWxzQ29udGFpbmVyOjpkb2VzSGF2ZVNhbWVP
cmlnaW5Bc0l0c0FuY2VzdG9ycygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKy8vIEZJWE1FOiBT
aW5jZSB0aGUgdW5kZXJseWluZyBhdXRoZW50aWNhdG9yIG1vZGVsIGlzIG5vdCBjbGVhciBhdCB0
aGlzIG1vbWVudCwgdGhlIHRpbWVyIGlzIG1vdmVkIHRvIENyZWRlbnRpYWxzQ29udGFpbmVyIHN1
Y2ggdGhhdAorLy8gdGltZXIgY2FuIHN0YXkgd2l0aCBtYWluIHRocmVhZCBhbmQgdGhlcmVmb3Jl
IGNhbiBlYXNpbHkgdGltZSBvdXQgYWN0aXZpdGllcyBvbiB0aGUgd29yayBxdWV1ZS4KKy8vIEZJ
WE1FOiBUaGUgdXNhZ2VzIG9mIEFib3J0U2lnbmFsIGFyZSBhbHNvIG1vdmVkIGhlcmUgZm9yIHRo
ZSB2ZXJ5IHNhbWUgcmVhc29uLiBBbHNvIHRoZSBBYm9ydFNpZ25hbCBpcyBraW5kIG9mIGJvZ3Vz
IGF0IHRoaXMgbW9tZW50CisvLyBzaW5jZSBpdCBkb2Vzbid0IHN1cHBvcnQgb2JzZXJ2ZXJzIChv
ciBvdGhlciBtZWFucykgdG8gdHJpZ2dlciB0aGUgYWN0dWFsIGFib3J0IGFjdGlvbi4gRW5oYW5j
ZW1lbnQgdG8gQWJvcnRTaWduYWwgaXMgbmVlZGVkLgogdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0
aW9uVHlwZT4KLXZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OmRpc3BhdGNoVGFzayhPcGVyYXRp
b25UeXBlJiYgb3BlcmF0aW9uLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCisgICAg
dm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6ZGlzcGF0Y2hUYXNrKE9wZXJhdGlvblR5cGUmJiBv
cGVyYXRpb24sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgc3RkOjpvcHRpb25hbDx1
bnNpZ25lZCBsb25nPiB0aW1lT3V0SW5NcykKIHsKKyAgICBpZiAoIW1fZG9jdW1lbnQpCisgICAg
ICAgIHJldHVybjsKKwogICAgIGF1dG8qIHByb21pc2VJbmRleCA9IHByb21pc2UucHRyKCk7Ci0g
ICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKHByb21pc2VJbmRleCwgV1RGTW92ZShwcm9taXNlKSk7
CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyk7Ci0gICAgYXV0byB0YXNrID0gW3Byb21pc2VJbmRleCwgd2Vha1RoaXMsIGlzU2FtZU9yaWdp
bldpdGhJdHNBbmNlc3RvcnMgPSBkb2VzSGF2ZVNhbWVPcmlnaW5Bc0l0c0FuY2VzdG9ycygpLCBv
cGVyYXRpb24gPSBXVEZNb3ZlKG9wZXJhdGlvbildICgpIHsKLSAgICAgICAgYXV0byByZXN1bHQg
PSBvcGVyYXRpb24oaXNTYW1lT3JpZ2luV2l0aEl0c0FuY2VzdG9ycyk7CisgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBwcm9iYWJseSB0cmltIHRpbWVPdXRJbk1zIHRvIHNvbWUgbWF4IGFsbG93YWJs
ZSBudW1iZXIuCisgICAgaWYgKHRpbWVPdXRJbk1zKSB7CisgICAgICAgIGF1dG8gcGVuZGluZ1By
b21pc2UgPSBQZW5kaW5nUHJvbWlzZTo6Y3JlYXRlKFdURk1vdmUocHJvbWlzZSksIHN0ZDo6bWFr
ZV91bmlxdWU8VGltZXI+KFtwcm9taXNlSW5kZXgsIHdlYWtUaGlzXSAoKSB7CisgICAgICAgICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKSB7Cisg
ICAgICAgICAgICAgICAgLy8gQSBsb2NrIHNob3VsZCBub3QgYmUgbmVlZGVkIGFzIGFsbCBjYWxs
YmFja3MgYXJlIGV4ZWN1dGVkIGluIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgICAgICAgICBp
ZiAoYXV0byBwcm9taXNlID0gd2Vha1RoaXMtPm1fcGVuZGluZ1Byb21pc2VzLnRha2UocHJvbWlz
ZUluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgcHJvbWlzZS52YWx1ZSgpLT5wcm9taXNlLT5y
ZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICAgICAgfQorICAg
ICAgICB9KSk7CisgICAgICAgIHBlbmRpbmdQcm9taXNlLT50aW1lci0+c3RhcnRPbmVTaG90KFNl
Y29uZHModGltZU91dEluTXMudmFsdWUoKSAvIDEwMDAuMCkpOworICAgICAgICBtX3BlbmRpbmdQ
cm9taXNlcy5hZGQocHJvbWlzZUluZGV4LCBXVEZNb3ZlKHBlbmRpbmdQcm9taXNlKSk7CisgICAg
fSBlbHNlCisgICAgICAgIG1fcGVuZGluZ1Byb21pc2VzLmFkZChwcm9taXNlSW5kZXgsIFBlbmRp
bmdQcm9taXNlOjpjcmVhdGUoV1RGTW92ZShwcm9taXNlKSkpOworCisgICAgYXV0byB0YXNrID0g
W3Byb21pc2VJbmRleCwgd2Vha1RoaXMsIG9yaWdpbiA9IG1fZG9jdW1lbnQtPnNlY3VyaXR5T3Jp
Z2luKCkuaXNvbGF0ZWRDb3B5KCksIGlzU2FtZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMgPSBkb2Vz
SGF2ZVNhbWVPcmlnaW5Bc0l0c0FuY2VzdG9ycygpLCBvcGVyYXRpb24gPSBXVEZNb3ZlKG9wZXJh
dGlvbildICgpIHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBvcGVyYXRpb24ob3JpZ2luLCBpc1Nh
bWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJv
bWlzZUluZGV4LCB3ZWFrVGhpcywgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSAoKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAgICAgICAgICAgIC8vIEEgbG9j
ayBzaG91bGQgbm90IGJlIG5lZWRlZCBhcyBhbGwgY2FsbGJhY2tzIGFyZSBleGVjdXRlZCBpbiB0
aGUgbWFpbiB0aHJlYWQuCiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IHdlYWtU
aGlzLT5tX3BlbmRpbmdQcm9taXNlcy50YWtlKHByb21pc2VJbmRleCkpIHsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHByb21pc2UudmFsdWUoKS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwot
ICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBwcm9taXNl
LnZhbHVlKCktPnJlc29sdmU8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPEJhc2ljQ3JlZGVudGlh
bD4+PihyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkuZ2V0KCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvbWlzZS52YWx1ZSgpLT5wcm9taXNlLT5yZWplY3QocmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEdvdCBzb21lIGNyYXp5IGNvbXBpbGUgZXJyb3Igd2hlbiBJIHdh
cyB0cnlpbmcgdG8gcGFzcyBSSFMgdG8gdGhlIHJlc29sdmUgbWV0aG9kLgorICAgICAgICAgICAg
ICAgICAgICAgICAgUmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4gY3JlZGVudGlhbCA9IHJlc3VsdC5y
ZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb21pc2UudmFs
dWUoKS0+cHJvbWlzZS0+cmVzb2x2ZTxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8QmFzaWNDcmVk
ZW50aWFsPj4+KGNyZWRlbnRpYWwuZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9KTsKQEAgLTk5LDEwICsxMzgs
MTAgQEAgdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGF1dG8gb3BlcmF0aW9uID0gW29wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpXSAoYm9vbCBp
c1NhbWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKSB7Ci0gICAgICAgIHJldHVybiBQdWJsaWNLZXlD
cmVkZW50aWFsOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShvcHRpb25zLCBpc1NhbWVPcmln
aW5XaXRoSXRzQW5jZXN0b3JzKTsKKyAgICBhdXRvIG9wZXJhdGlvbiA9IFtvcHRpb25zID0gV1RG
TW92ZShvcHRpb25zKV0gKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGJvb2wgaXNTYW1l
T3JpZ2luV2l0aEl0c0FuY2VzdG9ycykgeworICAgICAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVu
dGlhbDo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2Uob3JpZ2luLCBvcHRpb25zLCBpc1NhbWVP
cmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKICAgICB9OwotICAgIGRpc3BhdGNoVGFzayhXVEZNb3Zl
KG9wZXJhdGlvbiksIFdURk1vdmUocHJvbWlzZSkpOworICAgIGRpc3BhdGNoVGFzayhXVEZNb3Zl
KG9wZXJhdGlvbiksIFdURk1vdmUocHJvbWlzZSksIG9wdGlvbnMucHVibGljS2V5LT50aW1lb3V0
KTsKIH0KIAogdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6c3RvcmUoY29uc3QgQmFzaWNDcmVk
ZW50aWFsJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQpAQCAtMTEyLDYgKzE1MSw4
IEBAIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OnN0b3JlKGNvbnN0IEJhc2ljQ3JlZGVudGlh
bCYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYKIAogdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6
aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKKyAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVudHMg
aHR0cHM6Ly93d3cudzMub3JnL1RSL2NyZWRlbnRpYWwtbWFuYWdlbWVudC0xLyNhbGdvcml0aG0t
Y3JlYXRlIGFzIG9mIDQgQXVndXN0IDIwMTcKKyAgICAvLyB3aXRoIGVuaGFuY2VtZW50IGZyb20g
MTQgTm92ZW1iZXIgMjAxNyBFZGl0b3IncyBEcmFmdC4KICAgICAvLyBGSVhNRTogT3B0aW9uYWwg
b3B0aW9ucyBhcmUgcGFzc2VkIHdpdGggbm8gY29udGVudHMuIEl0IHNob3VsZCBiZSBzdGQ6Om9w
dGlvbmFsLgogICAgIGlmICgoIW9wdGlvbnMuc2lnbmFsICYmICFvcHRpb25zLnB1YmxpY0tleSkg
fHwgIW1fZG9jdW1lbnQpIHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5v
dFN1cHBvcnRlZEVycm9yIH0pOwpAQCAtMTIxLDIzICsxNjIsMjUgQEAgdm9pZCBDcmVkZW50aWFs
c0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMs
IFJlZjxEZWYKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3Ig
fSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgLy8gU3RlcCAxLTIuCiAgICAgQVNTRVJU
KG1fZG9jdW1lbnQtPmlzU2VjdXJlQ29udGV4dCgpKTsKIAotICAgIC8vIFRoaXMgaXMgYSBzaG9y
dGN1dCB0byBodHRwczovL3d3dy53My5vcmcvVFIvY3JlZGVudGlhbC1tYW5hZ2VtZW50LTEvI2Ny
ZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy1yZWxldmFudC1jcmVkZW50aWFsLWludGVyZmFjZS1vYmpl
Y3RzLAotICAgIC8vIGFzIHdlIG9ubHkgc3VwcG9ydCBvbmUga2luZCBvZiBjcmVkZW50aWFscy4K
KyAgICAvLyBTdGVwIDMtNC4gU2hvcnRjdXQgYXMgd2Ugb25seSBzdXBwb3J0IG9uZSBraW5kIG9m
IGNyZWRlbnRpYWxzLgogICAgIGlmICghb3B0aW9ucy5wdWJsaWNLZXkpIHsKICAgICAgICAgcHJv
bWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBvcGVyYXRpb24gPSBbb3B0aW9ucyA9IFdURk1vdmUo
b3B0aW9ucyldIChib29sIGlzU2FtZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMpIHsKKyAgICBhdXRv
IHRpbWVvdXQgPSBvcHRpb25zLnB1YmxpY0tleS0+dGltZW91dDsKKyAgICAvLyBTdGVwIDUtNy4K
KyAgICBhdXRvIG9wZXJhdGlvbiA9IFtvcHRpb25zID0gV1RGTW92ZShvcHRpb25zLnB1YmxpY0tl
eS52YWx1ZSgpKV0gKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGJvb2wgaXNTYW1lT3Jp
Z2luV2l0aEl0c0FuY2VzdG9ycykgewogICAgICAgICAvLyBTaG9ydGN1dCBhcyB3ZWxsLgotICAg
ICAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVudGlhbDo6Y3JlYXRlKG9wdGlvbnMsIGlzU2FtZU9y
aWdpbldpdGhJdHNBbmNlc3RvcnMpOworICAgICAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVudGlh
bDo6Y3JlYXRlKG9yaWdpbiwgb3B0aW9ucywgaXNTYW1lT3JpZ2luV2l0aEl0c0FuY2VzdG9ycyk7
CiAgICAgfTsKLSAgICBkaXNwYXRjaFRhc2soV1RGTW92ZShvcGVyYXRpb24pLCBXVEZNb3ZlKHBy
b21pc2UpKTsKKyAgICBkaXNwYXRjaFRhc2soV1RGTW92ZShvcGVyYXRpb24pLCBXVEZNb3ZlKHBy
b21pc2UpLCBvcHRpb25zLnB1YmxpY0tleS0+dGltZW91dCk7CiB9CiAKLXZvaWQgQ3JlZGVudGlh
bHNDb250YWluZXI6OnByZXZlbnRTaWxlbnRBY2Nlc3MoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQordm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6cHJldmVudFNpbGVudEFjY2VzcyhS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAgcHJvbWlzZS0+cmVq
ZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRh
aW5lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVk
ZW50aWFsc0NvbnRhaW5lci5oCmluZGV4IDM5MzFiOGRkM2ExYzkzMjAzNGMyZDM3NWNjYTgxNjdm
ZTI5YWY3YmMuLmM5ZDM3MTM0MDliNWZiZWM5ODUzYTA1ZTFhOTI3ZTRiNTYwNjJiMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVu
dGlhbHNDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxt
YW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJU
aW1lci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTUwLDE5ICs1MSw0MCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGlzQ3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmJiwgUmVm
PERlZmVycmVkUHJvbWlzZT4mJik7CiAKLSAgICB2b2lkIHByZXZlbnRTaWxlbnRBY2Nlc3MoUmVm
PERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBwcmV2ZW50U2lsZW50QWNjZXNzKFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIENyZWRlbnRpYWxzQ29u
dGFpbmVyKFdlYWtQdHI8RG9jdW1lbnQ+JiYpOwogCiAgICAgYm9vbCBkb2VzSGF2ZVNhbWVPcmln
aW5Bc0l0c0FuY2VzdG9ycygpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGU+
Ci0gICAgdm9pZCBkaXNwYXRjaFRhc2soT3BlcmF0aW9uVHlwZSYmLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmKTsKKyAgICB2b2lkIGRpc3BhdGNoVGFzayhPcGVyYXRpb25UeXBlJiYsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYsIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQgbG9uZz4gdGltZU91dEluTXMg
PSBzdGQ6Om51bGxvcHQpOwogCiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKLSAg
ICBIYXNoTWFwPERlZmVycmVkUHJvbWlzZSosIFJlZjxEZWZlcnJlZFByb21pc2U+PiBtX3BlbmRp
bmdQcm9taXNlczsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3dvcmtRdWV1ZTsKICAgICBXZWFrUHRy
RmFjdG9yeTxDcmVkZW50aWFsc0NvbnRhaW5lcj4gbV93ZWFrUHRyRmFjdG9yeTsKKworICAgIC8v
IEJ1bmRsZSBwcm9taXNlIGFuZCB0aW1lciwgc3VjaCB0aGF0IHRoZSB0aW1lciBjYW4KKyAgICAv
LyB0aW1lcyBvdXQgdGhlIGNvcnJlc3BvbmRpbmcgcHJvbXNpZS4KKyAgICBzdHJ1Y3QgUGVuZGlu
Z1Byb21pc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxQZW5kaW5nUHJvbWlzZT4geworICAgICAgICBz
dGF0aWMgUmVmPFBlbmRpbmdQcm9taXNlPiBjcmVhdGUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlLCBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+JiYgdGltZXIpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBlbmRpbmdQcm9taXNlKFdURk1vdmUocHJvbWlz
ZSksIFdURk1vdmUodGltZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIFJlZjxQZW5k
aW5nUHJvbWlzZT4gY3JlYXRlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVuZGluZ1Byb21pc2UoV1RG
TW92ZShwcm9taXNlKSkpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBQZW5k
aW5nUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+
JiYpOworICAgICAgICBQZW5kaW5nUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKKwor
ICAgIHB1YmxpYzoKKyAgICAgICAgUmVmPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZTsKKyAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiB0aW1lcjsKKyAgICB9OworICAgIEhhc2hNYXA8RGVm
ZXJyZWRQcm9taXNlKiwgUmVmPFBlbmRpbmdQcm9taXNlPj4gbV9wZW5kaW5nUHJvbWlzZXM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9BdXRoZW50aWNhdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWE3YWZlNTllY2YzZTEz
OGI2ZjlmYjA2ZTY1OGYzM2NkOGY4MjUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yLmNwcApAQCAtMCwwICsxLDU4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3Iu
aCIKKworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0F1dGhlbnRpY2F0b3ImIEF1dGhlbnRpY2F0b3I6OnNpbmdsZXRvbigpCit7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF1dGhlbnRpY2F0b3I+IGF1dGhlbnRpY2F0b3I7CisgICAg
cmV0dXJuIGF1dGhlbnRpY2F0b3I7Cit9CisKK0V4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4g
QXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNo
LCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0eSYsIGNv
bnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkmIHVzZXIs
IGNvbnN0IFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0
ZXJzPiYsIGNvbnN0IFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4mKSBjb25z
dAoreworICAgIC8vIFVzZXIgY2FuY2VsbGF0aW9uIGlzIGVmZmVjaXZlbHkgTm90QWxsb3dlZEVy
cm9yLgorICAgIGlmICh1c2VyLmRpc3BsYXlOYW1lID09ICJKb2huIikKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciB9OworCisgICAgLy8gVGhlIGZvbGxvd2luZyBp
cyBjb21wbGV0ZWx5IGZha2UgZm9yIG5vdy4KKyAgICAvLyBGaWxsIGFsbCBwYXJ0cyBiZWZvcmUg
Q3JlZGVudGlhbElEIHdpdGggMHgwMAorICAgIFZlY3Rvcjx1aW50OF90PiBhdHRlc3RhdGlvbk9i
amVjdCg0MywgMHgwMCk7CisgICAgLy8gRmlsbCBsZW5ndGggb2YgQ3JlZGVudGlhbElEOiAxIEJ5
dGUKKyAgICBhdHRlc3RhdGlvbk9iamVjdC5hcHBlbmQoMHgwMCk7CisgICAgYXR0ZXN0YXRpb25P
YmplY3QuYXBwZW5kKDB4MDEpOworICAgIC8vIEZpbGwgQ3JlZGVudGlhbElEOiAyNTUKKyAgICBh
dHRlc3RhdGlvbk9iamVjdC5hcHBlbmQoMHhmZik7CisgICAgLy8gQXBwZW5kIGNsaWVudERhdGFK
c29uSGFzaAorICAgIGF0dGVzdGF0aW9uT2JqZWN0LmFwcGVuZFZlY3RvcihoYXNoKTsKKyAgICBy
ZXR1cm4gV1RGTW92ZShhdHRlc3RhdGlvbk9iamVjdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9y
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzBkMWUzM2VjYjY1Y2JhMTNlNmE4NTI0MTdiMGVjN2JhN2FkMTFjYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRvci5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gRklYTUU6IENvbnNp
ZGVyIG1vdmluZyBhbGwgc3RhdGljIG1ldGhvZHMgZnJvbSBQdWJsaWNLZXlDcmVkZW50aWFsIHRv
IGhlcmUgYW5kIG1ha2luZyB0aGlzCisvLyBhcyBhbiBhdXRoZW50aWNhdG9yIG1hbmFnZXIgdGhh
dCBjb250cm9scyBhbGwgYXV0aGVudGljYXRvciBhY3Rpdml0aWVzLCBtb3N0bHkgbGlrZWx5IGFz
bnljCisvLyBmb3IgYXR0ZXN0YXRpb25zLgorY2xhc3MgQXV0aGVudGljYXRvciB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoQXV0aGVudGljYXRvcik7CisgICAgZnJpZW5kIGNsYXNzIE5ldmVy
RGVzdHJveWVkPEF1dGhlbnRpY2F0b3I+OworcHVibGljOgorICAgIHN0YXRpYyBBdXRoZW50aWNh
dG9yJiBzaW5nbGV0b24oKTsKKworICAgIC8vIE9taXQgcmVxdWlyZVJlc2lkZW50S2V5LCByZXF1
aXJlVXNlclByZXNlbmNlLCBhbmQgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gYXMgd2UgYWx3YXlz
IHByb3ZpZGUgcmVzaWRlbnQga2V5cyBhbmQgcmVxdWlyZSB1c2VyIHZlcmlmaWNhdGlvbi4KKyAg
ICBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IG1ha2VDcmVkZW50aWFsKGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6UnBFbnRpdHkmLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpV
c2VyRW50aXR5JiwgY29uc3QgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnM6OlBhcmFtZXRlcnM+JiwgY29uc3QgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlw
dG9yPiYgZXhjbHVkZUNyZWRlbnRpYWxJZHMpIGNvbnN0OworCitwcml2YXRlOgorICAgIEF1dGhl
bnRpY2F0b3IoKSA9IGRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHAKaW5kZXggNTcwNGYwMWJjMGJlZGQxMGEyMzJi
MzQ3ZjQ0ODNlNzY0NWY1NDdhOC4uYjQ1YmRiYTE5OGRlY2JlZjE1OTViNTY1ODczMWM3OGIyMmYx
ZDQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmNwcApAQCAtMzYsMjEgKzM2
LDE3IEBAIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6QXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlKFJlZlB0cjxBcnJheUJ1ZmZlCiB7CiB9CiAKLUF1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZTo6fkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSgpCi17Ci19Ci0K
LUFycmF5QnVmZmVyKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OmF1dGhlbnRpY2F0
b3JEYXRhKCkKK0FycmF5QnVmZmVyKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OmF1
dGhlbnRpY2F0b3JEYXRhKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9hdXRoZW50aWNhdG9yRGF0
YS5nZXQoKTsKIH0KIAotQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25z
ZTo6c2lnbmF0dXJlKCkKK0FycmF5QnVmZmVyKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9u
c2U6OnNpZ25hdHVyZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2lnbmF0dXJlLmdldCgpOwog
fQogCi1BcnJheUJ1ZmZlciogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjp1c2VySGFu
ZGxlKCkKK0FycmF5QnVmZmVyKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OnVzZXJI
YW5kbGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3VzZXJIYW5kbGUuZ2V0KCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaAppbmRleCA5N2FiNjc5OGFiZDMwMzgzYWZmZGU2Mzgw
YzA1YWM3OGUwNzU3ZTBkLi43ODNhY2JhZjhkODQ1Zjk0NmI1NDcwZWQ3MDZhOWE5MzYyNTMwZWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0
b3JBc3NlcnRpb25SZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmgKQEAgLTMxLDE3ICszMSwyNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25z
ZSA6IHB1YmxpYyBBdXRoZW50aWNhdG9yUmVzcG9uc2UgewogcHVibGljOgotICAgIEF1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZShSZWZQdHI8QXJyYXlCdWZmZXI+JiYgY2xpZW50RGF0YUpT
T04sIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBhdXRoZW50aWNhdG9yRGF0YSwgUmVmUHRyPEFycmF5
QnVmZmVyPiYmIHNpZ25hdHVyZSwgUmVmUHRyPEFycmF5QnVmZmVyPiYmIHVzZXJIYW5kbGUpOwot
ICAgIHZpcnR1YWwgfkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSgpOworICAgIHN0YXRp
YyBSZWY8QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiBjcmVhdGUoUmVmUHRyPEFycmF5
QnVmZmVyPiYmIGNsaWVudERhdGFKU09OLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgYXV0aGVudGlj
YXRvckRhdGEsIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBzaWduYXR1cmUsIFJlZlB0cjxBcnJheUJ1
ZmZlcj4mJiB1c2VySGFuZGxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKFdURk1vdmUoY2xpZW50RGF0YUpTT04pLCBX
VEZNb3ZlKGF1dGhlbnRpY2F0b3JEYXRhKSwgV1RGTW92ZShzaWduYXR1cmUpLCBXVEZNb3ZlKHVz
ZXJIYW5kbGUpKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+QXV0aGVudGljYXRvckFzc2VydGlv
blJlc3BvbnNlKCkgPSBkZWZhdWx0OwogCi0gICAgQXJyYXlCdWZmZXIqIGF1dGhlbnRpY2F0b3JE
YXRhKCk7Ci0gICAgQXJyYXlCdWZmZXIqIHNpZ25hdHVyZSgpOwotICAgIEFycmF5QnVmZmVyKiB1
c2VySGFuZGxlKCk7CisgICAgQXJyYXlCdWZmZXIqIGF1dGhlbnRpY2F0b3JEYXRhKCkgY29uc3Q7
CisgICAgQXJyYXlCdWZmZXIqIHNpZ25hdHVyZSgpIGNvbnN0OworICAgIEFycmF5QnVmZmVyKiB1
c2VySGFuZGxlKCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgQXV0aGVudGljYXRvckFzc2VydGlv
blJlc3BvbnNlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBjbGllbnREYXRhSlNPTiwgUmVmUHRyPEFy
cmF5QnVmZmVyPiYmIGF1dGhlbnRpY2F0b3JEYXRhLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgc2ln
bmF0dXJlLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgdXNlckhhbmRsZSk7CisKKyAgICBUeXBlIHR5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBUeXBlOjpBc3NlcnRpb247IH0KKwogICAgIFJlZlB0
cjxBcnJheUJ1ZmZlcj4gbV9hdXRoZW50aWNhdG9yRGF0YTsKICAgICBSZWZQdHI8QXJyYXlCdWZm
ZXI+IG1fc2lnbmF0dXJlOwogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbV91c2VySGFuZGxlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0FV
VEhFTlRJQ0FUT1JfUkVTUE9OU0UoQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLCBBdXRo
ZW50aWNhdG9yUmVzcG9uc2U6OlR5cGU6OkFzc2VydGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0
YXRpb25SZXNwb25zZS5jcHAKaW5kZXggODE5NjAzMGYyZGRlNDc5ZWJiOWU4Y2U4MWE2YTc3YWQ1
OTBjOTUwMC4uOGIxMDgyZmZhODQ3OTczNzkxMWU4OTk5Y2RiNDM1Y2ViNjgwMzZkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0
YXRpb25SZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9B
dXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5jcHAKQEAgLTM0LDExICszNCw3IEBAIEF1
dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25S
ZXNwb25zZShSZWZQdHI8QXJyYXlCCiB7CiB9CiAKLUF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJl
c3BvbnNlOjp+QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UoKQotewotfQotCi1BcnJh
eUJ1ZmZlciogQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6OmF0dGVzdGF0aW9uT2Jq
ZWN0KCkKK0FycmF5QnVmZmVyKiBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6YXR0
ZXN0YXRpb25PYmplY3QoKSBjb25zdAogewogICAgIHJldHVybiBtX2F0dGVzdGF0aW9uT2JqZWN0
LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9B
dXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5oCmluZGV4IGJhOWJi
Y2Q1M2JhMmNlOTdkODQxYmU1ZWQ0NGEwNTFkNTBjYjhhNGUuLmMyNDQwMWRhYmE4ZTdiMDVkYjIx
NjNlOTQyYjk1NDMzYWFkYTlmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNl
LmgKQEAgLTMxLDEzICszMSwyMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1dGhl
bnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlIDogcHVibGljIEF1dGhlbnRpY2F0b3JSZXNwb25z
ZSB7CiBwdWJsaWM6Ci0gICAgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UoUmVmUHRy
PEFycmF5QnVmZmVyPiYmIGNsaWVudERhdGFKU09OLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgYXR0
ZXN0YXRpb25PYmplY3QpOwotICAgIHZpcnR1YWwgfkF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJl
c3BvbnNlKCk7CisgICAgc3RhdGljIFJlZjxBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25z
ZT4gY3JlYXRlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBjbGllbnREYXRhSlNPTiwgUmVmUHRyPEFy
cmF5QnVmZmVyPiYmIGF0dGVzdGF0aW9uT2JqZWN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UoV1RGTW92ZShjbGll
bnREYXRhSlNPTiksIFdURk1vdmUoYXR0ZXN0YXRpb25PYmplY3QpKSk7CisgICAgfQorCisgICAg
dmlydHVhbCB+QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UoKSA9IGRlZmF1bHQ7CiAK
LSAgICBBcnJheUJ1ZmZlciogYXR0ZXN0YXRpb25PYmplY3QoKTsKKyAgICBBcnJheUJ1ZmZlciog
YXR0ZXN0YXRpb25PYmplY3QoKSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICBBdXRoZW50aWNhdG9y
QXR0ZXN0YXRpb25SZXNwb25zZShSZWZQdHI8QXJyYXlCdWZmZXI+JiYgY2xpZW50RGF0YUpTT04s
IFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBhdHRlc3RhdGlvbk9iamVjdCk7CisKKyAgICBUeXBlIHR5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBUeXBlOjpBdHRlc3RhdGlvbjsgfQorCiAgICAgUmVm
UHRyPEFycmF5QnVmZmVyPiBtX2F0dGVzdGF0aW9uT2JqZWN0OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0FVVEhFTlRJQ0FUT1JfUkVTUE9O
U0UoQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UsIEF1dGhlbnRpY2F0b3JSZXNwb25z
ZTo6VHlwZTo6QXR0ZXN0YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5jcHAKaW5kZXggZGRiMThiMzY0MWIz
YTAwMjg0Y2MyMDAzNTJlM2VkNWViM2FhOGU5Yi4uOTU3YzZkZWM4N2U0OGQ1MWNmMDc2NTIxYTRi
YjI0MDJiODA1YzRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmNwcApAQCAtMzMsMTEgKzMzLDcgQEAgQXV0
aGVudGljYXRvclJlc3BvbnNlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2UoUmVmUHRyPEFycmF5QnVm
ZmVyPiYmIGNsaWVudERhdGFKU08KIHsKIH0KIAotQXV0aGVudGljYXRvclJlc3BvbnNlOjp+QXV0
aGVudGljYXRvclJlc3BvbnNlKCkKLXsKLX0KLQotQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JS
ZXNwb25zZTo6Y2xpZW50RGF0YUpTT04oKQorQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JSZXNw
b25zZTo6Y2xpZW50RGF0YUpTT04oKSBjb25zdAogewogICAgIHJldHVybiBtX2NsaWVudERhdGFK
U09OLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmgKaW5kZXggYTNhMTZiNTZmNDk3YWJiMzQwZGJjMjkz
MmRiYjQzNzRlOTQ2MmI4OS4uZDQxNzNiOTk4MzhlNDBhMWUwMzYwMjA4MjRiZjFlOGZhYWI4ZTIw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhl
bnRpY2F0b3JSZXNwb25zZS5oCkBAIC0yNywxOCArMjcsMzEgQEAKIAogI2luY2x1ZGUgPHJ1bnRp
bWUvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQXV0aGVudGljYXRvclJlc3BvbnNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1
dGhlbnRpY2F0b3JSZXNwb25zZT4gewogcHVibGljOgorICAgIGVudW0gY2xhc3MgVHlwZSB7Cisg
ICAgICAgIEFzc2VydGlvbiwKKyAgICAgICAgQXR0ZXN0YXRpb24KKyAgICB9OworCiAgICAgZXhw
bGljaXQgQXV0aGVudGljYXRvclJlc3BvbnNlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJik7Ci0gICAg
dmlydHVhbCB+QXV0aGVudGljYXRvclJlc3BvbnNlKCk7CisgICAgdmlydHVhbCB+QXV0aGVudGlj
YXRvclJlc3BvbnNlKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25z
dCA9IDA7CiAKLSAgICBBcnJheUJ1ZmZlciogY2xpZW50RGF0YUpTT04oKTsKKyAgICBBcnJheUJ1
ZmZlciogY2xpZW50RGF0YUpTT04oKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IG1fY2xpZW50RGF0YUpTT047CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BVVRIRU5USUNBVE9SX1JFU1BPTlNF
KFRvQ2xhc3NOYW1lLCBUeXBlKSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNv
cmU6OlRvQ2xhc3NOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JSZXNwb25zZSYgcmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnR5cGUo
KSA9PSBXZWJDb3JlOjpUeXBlOyB9IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJl
c3BvbnNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRv
clJlc3BvbnNlLmlkbAppbmRleCBlNWM0ZGRjYzU4NGM0YjgxMWMyNWYyODc2MDFlZjY4ZWIxM2I2
ZmIxLi4xYmY0MDk5ZDEyYjRmNjI0OWQ5NWIzZmViYWI0ODM4Zjc3YzgzZTY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVz
cG9uc2UuaWRsCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogWworICAgIEN1c3RvbVRvSlNPYmpl
Y3QsCiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJBdXRoZW50aWNhdGlvbiwKICAgICBFeHBvc2Vk
PVdpbmRvdywKICAgICBTZWN1cmVDb250ZXh0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5jcHAKaW5kZXggMTdhY2IyZjE4
NTI0MGU5OTExOWYxYWUyMzIxMmFmMjExODg4OThjMS4uNTljNzNmNDU1ODU2ZTUyMzQ5ZDM4NTgx
MjgwNzc5YjQ0YTkwNTk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwCkBAIC0yNiwxMiArMjYsNzUgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsLmgiCiAKKyNp
bmNsdWRlICJBdXRoZW50aWNhdG9yLmgiCisjaW5jbHVkZSAiQXV0aGVudGljYXRvclJlc3BvbnNl
LmgiCisjaW5jbHVkZSAiQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIgogI2luY2x1ZGUgIkpT
RE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNs
dWRlIDxwYWwvY3J5cHRvL0NyeXB0b0RpZ2VzdC5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgorI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQmFz
ZTY0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUHVibGljS2V5Q3JlZGVudGlhbDo6UHVi
bGljS2V5Q3JlZGVudGlhbChjb25zdCBTdHJpbmcmIGlkKQotICAgIDogQmFzaWNDcmVkZW50aWFs
KGlkLCBUeXBlOjpQdWJsaWNLZXksIERpc2NvdmVyeTo6UmVtb3RlKQorbmFtZXNwYWNlIFB1Ymxp
Y0tleUNyZWRlbnRpYWxJbnRlcm5hbCB7CisKKy8vIFRoZSBsYXlvdXQgb2YgYXR0ZXN0YXRpb24g
b2JqZWN0OiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI2F0dGVzdGF0aW9uLW9iamVj
dCBhcyBvZiA1IERlY2VtYmVyIDIwMTcuCisvLyBIZXJlIGlzIGEgc3VtbWFyeSBiZWZvcmUgQ3Jl
ZGVudGlhbElEIGluIHRoZSBsYXlvdXQuIEFsbCBsZW5ndGhzIGFyZSBmaXhlZC4KKy8vIFJQIElE
IGhhc2ggKDMyKSB8fCBGTEFHUyAoMSkgfHwgQ09VTlRFUiAoNCkgfHwgQUFHVUlEICgxNikgfHwg
TCAoMikgfHwgQ1JFREVOVElBTCBJRCAoPykgfHwgLi4uCitzdGF0aWMgY29uc3RleHByIHNpemVf
dCBDcmVkZW50aWFsSWRMZW5ndGhPZmZzZXQgPSA0MzsKKworZW51bSBjbGFzcyBDbGllbnREYXRh
VHlwZSB7CisgICAgQ3JlYXRlLAorICAgIEdldAorfTsKKworLy8gRklYTUU6IEFkZCB0b2tlbiBi
aW5kaW5nIElEIGFuZCBleHRlbnNpb25zLgorc3RhdGljIFJlZjxBcnJheUJ1ZmZlcj4gcHJvZHVj
ZUNsaWVudERhdGFKc29uKENsaWVudERhdGFUeXBlIHR5cGUsIGNvbnN0IEJ1ZmZlclNvdXJjZSYg
Y2hhbGxlbmdlLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKQoreworICAgIGF1dG8gb2Jq
ZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBj
YXNlIENsaWVudERhdGFUeXBlOjpDcmVhdGU6CisgICAgICAgIG9iamVjdC0+c2V0U3RyaW5nKEFT
Q0lJTGl0ZXJhbCgidHlwZSIpLCBBU0NJSUxpdGVyYWwoIndlYmF1dGhuLmNyZWF0ZSIpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDbGllbnREYXRhVHlwZTo6R2V0OgorICAgICAgICBvYmpl
Y3QtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoInR5cGUiKSwgQVNDSUlMaXRlcmFsKCJ3ZWJhdXRo
bi5nZXQiKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBvYmplY3QtPnNldFN0cmluZyhB
U0NJSUxpdGVyYWwoImNoYWxsZW5nZSIpLCBXVEY6OmJhc2U2NFVSTEVuY29kZShjaGFsbGVuZ2Uu
ZGF0YSgpLCBjaGFsbGVuZ2UubGVuZ3RoKCkpKTsKKyAgICBvYmplY3QtPnNldFN0cmluZyhBU0NJ
SUxpdGVyYWwoIm9yaWdpbiIpLCBvcmlnaW4udG9SYXdTdHJpbmcoKSk7CisgICAgLy8gRklYTUU6
IFRoaXMgbWlnaHQgYmUgcGxhdGZvcm0gZGVwZW5kZW50LgorICAgIG9iamVjdC0+c2V0U3RyaW5n
KEFTQ0lJTGl0ZXJhbCgiaGFzaEFsZ29yaXRobSIpLCBBU0NJSUxpdGVyYWwoIlNIQS0yNTYiKSk7
CisKKyAgICBhdXRvIHV0ZjhKU09OU3RyaW5nID0gb2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4
KCk7CisgICAgcmV0dXJuIEFycmF5QnVmZmVyOjpjcmVhdGUodXRmOEpTT05TdHJpbmcuZGF0YSgp
LCB1dGY4SlNPTlN0cmluZy5sZW5ndGgoKSk7Cit9CisKK3N0YXRpYyBWZWN0b3I8dWludDhfdD4g
cHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChjb25zdCBSZWY8QXJyYXlCdWZmZXI+JiBjbGllbnRE
YXRhSnNvbikKK3sKKyAgICBhdXRvIGNyeXB0byA9IFBBTDo6Q3J5cHRvRGlnZXN0OjpjcmVhdGUo
UEFMOjpDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzI1Nik7CisgICAgY3J5cHRvLT5hZGRC
eXRlcyhjbGllbnREYXRhSnNvbi0+ZGF0YSgpLCBjbGllbnREYXRhSnNvbi0+Ynl0ZUxlbmd0aCgp
KTsKKyAgICByZXR1cm4gY3J5cHRvLT5jb21wdXRlSGFzaCgpOworfQorCitzdGF0aWMgUmVmUHRy
PEFycmF5QnVmZmVyPiBnZXRJZEZyb21BdHRlc3RhdGlvbk9iamVjdChjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGF0dGVzdGF0aW9uT2JqZWN0KQoreworICAgIC8vIFRoZSBieXRlIGxlbmd0aCBvZiBM
IGlzIDIuCisgICAgaWYgKGF0dGVzdGF0aW9uT2JqZWN0LnNpemUoKSA8IENyZWRlbnRpYWxJZExl
bmd0aE9mZnNldCArIDIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHNpemVfdCBsZW5n
dGggPSAoYXR0ZXN0YXRpb25PYmplY3RbQ3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0XSA8PCA4KSAr
IGF0dGVzdGF0aW9uT2JqZWN0W0NyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIDFdOworICAgIGlm
IChhdHRlc3RhdGlvbk9iamVjdC5zaXplKCkgPCBDcmVkZW50aWFsSWRMZW5ndGhPZmZzZXQgKyAy
ICsgbGVuZ3RoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gQXJyYXlCdWZm
ZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9iamVjdC5kYXRhKCkgKyBDcmVkZW50aWFsSWRMZW5ndGhP
ZmZzZXQgKyAyLCBsZW5ndGgpOworfQorCit9IC8vIG5hbWVzcGFjZSBQdWJsaWNLZXlDcmVkZW50
aWFsSW50ZXJuYWwKKworUHVibGljS2V5Q3JlZGVudGlhbDo6UHVibGljS2V5Q3JlZGVudGlhbChS
ZWZQdHI8QXJyYXlCdWZmZXI+JiYgaWQsIFJlZlB0cjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiYg
cmVzcG9uc2UpCisgICAgOiBCYXNpY0NyZWRlbnRpYWwoV1RGOjpiYXNlNjRVUkxFbmNvZGUoaWQt
PmRhdGEoKSwgaWQtPmJ5dGVMZW5ndGgoKSksIFR5cGU6OlB1YmxpY0tleSwgRGlzY292ZXJ5OjpS
ZW1vdGUpCisgICAgLCBtX3Jhd0lkKFdURk1vdmUoaWQpKQorICAgICwgbV9yZXNwb25zZShXVEZN
b3ZlKHJlc3BvbnNlKSkKIHsKIH0KIApAQCAtNDAsNyArMTAzLDcgQEAgVmVjdG9yPFJlZjxCYXNp
Y0NyZWRlbnRpYWw+PiBQdWJsaWNLZXlDcmVkZW50aWFsOjpjb2xsZWN0RnJvbUNyZWRlbnRpYWxT
dG9yZShDcmUKICAgICByZXR1cm4geyB9OwogfQogCi1FeGNlcHRpb25PcjxSZWZQdHI8QmFzaWND
cmVkZW50aWFsPj4gUHVibGljS2V5Q3JlZGVudGlhbDo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3Vy
Y2UoY29uc3QgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgYm9vbCkKK0V4Y2VwdGlvbk9yPFJl
ZlB0cjxCYXNpY0NyZWRlbnRpYWw+PiBQdWJsaWNLZXlDcmVkZW50aWFsOjpkaXNjb3ZlckZyb21F
eHRlcm5hbFNvdXJjZShjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IENyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucyYsIGJvb2wpCiB7CiAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRl
ZEVycm9yIH07CiB9CkBAIC01MCwyMiArMTEzLDY0IEBAIFJlZlB0cjxCYXNpY0NyZWRlbnRpYWw+
IFB1YmxpY0tleUNyZWRlbnRpYWw6OnN0b3JlKFJlZlB0cjxCYXNpY0NyZWRlbnRpYWw+JiYsIGJv
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUV4Y2VwdGlvbk9yPFJlZlB0cjxCYXNpY0NyZWRl
bnRpYWw+PiBQdWJsaWNLZXlDcmVkZW50aWFsOjpjcmVhdGUoY29uc3QgQ3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucyYsIGJvb2wpCitFeGNlcHRpb25PcjxSZWZQdHI8QmFzaWNDcmVkZW50aWFsPj4g
UHVibGljS2V5Q3JlZGVudGlhbDo6Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjYWxsZXJP
cmlnaW4sIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMs
IGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMpCiB7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yIH07CisgICAgdXNpbmcgbmFtZXNwYWNlIFB1YmxpY0tleUNyZWRl
bnRpYWxJbnRlcm5hbDsKKworICAgIC8vIFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBodHRwczov
L3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI2NyZWF0ZUNyZWRlbnRpYWwgYXMgb2YgNSBEZWNlbWJl
ciAyMDE3LgorICAgIC8vIEZJWE1FOiBFeHRlbnNpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4g
U2tpcCBTdGVwIDExLTEyLgorICAgIC8vIFN0ZXAgMSwgMywgNCwgMTcgYXJlIGhhbmRsZWQgYnkg
dGhlIGNhbGxlciwgaW5jbHVkaW5nIG9wdGlvbnMgc2FuaXRpemluZywgdGltZXIgYW5kIGFib3J0
IHNpZ25hbC4KKyAgICAvLyBTdGVwIDIuCisgICAgaWYgKCFzYW1lT3JpZ2luV2l0aEFuY2VzdG9y
cykKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciB9OworCisgICAg
Ly8gU3RlcCA1LTcuCisgICAgLy8gRklYTUU6IFdlIGxhY2sgZnVuZGFtZW50YWwgc3VwcG9ydCBm
cm9tIFNlY3VyaXR5T3JpZ2luIHRvIGRldGVybWluZSBpZiBhIGhvc3QgaXMgYSB2YWxpZCBkb21h
aW4gb3Igbm90LgorICAgIC8vIFN0ZXAgNiBpcyB0aGVyZWZvcmUgc2tpcHBlZC4gQWxzbywgd2Ug
bGFjayB0aGUgc3VwcG9ydCB0byBkZXRlcm1pbmUgd2hldGhlciBhIGRvbWFpbiBpcyBhIHJlZ2lz
dHJhYmxlCisgICAgLy8gZG9tYWluIHN1ZmZpeCBvZiBhbm90aGVyIGRvbWFpbi4gSGVuY2UgcmVz
dHJpY3QgdGhlIGNvbXBhcmlzb24gdG8gZXF1YWwgaW4gU3RlcCA3LgorICAgIGlmICghb3B0aW9u
cy5ycC5pZC5pc0VtcHR5KCkgJiYgIShjYWxsZXJPcmlnaW4uaG9zdCgpID09IG9wdGlvbnMucnAu
aWQpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciB9OworICAgIGlm
IChvcHRpb25zLnJwLmlkLmlzRW1wdHkoKSkKKyAgICAgICAgb3B0aW9ucy5ycC5pZCA9IGNhbGxl
ck9yaWdpbi5ob3N0KCk7CisKKyAgICAvLyBTdGVwIDgtMTAuCisgICAgLy8gTW9zdCBvZiB0aGUg
am9icyBhcmUgZG9uZSBieSBiaW5kaW5ncy4gSG93ZXZlciwgd2UgY2FuJ3Qga25vdyBpZiB0aGUg
SlNWYWx1ZSBvZiBvcHRpb25zLnB1YktleUNyZWRQYXJhbXMKKyAgICAvLyBpcyBlbXB0eSBvciBu
b3QuIFJldHVybiBOb3RTdXBwb3J0ZWRFcnJvciBhcyBsb25nIGFzIGl0IGlzIGVtcHR5LgorICAg
IGlmIChvcHRpb25zLnB1YktleUNyZWRQYXJhbXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKKworICAgIC8vIFN0ZXAgMTMtMTUuCisg
ICAgYXV0byBjbGllbnREYXRhSnNvbiA9IHByb2R1Y2VDbGllbnREYXRhSnNvbihDbGllbnREYXRh
VHlwZTo6Q3JlYXRlLCBvcHRpb25zLmNoYWxsZW5nZSwgY2FsbGVyT3JpZ2luKTsKKyAgICBhdXRv
IGNsaWVudERhdGFKc29uSGFzaCA9IHByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2goY2xpZW50RGF0
YUpzb24pOworCisgICAgLy8gU3RlcCAxOC0yMS4KKyAgICAvLyBPbmx5IHBsYXRmb3JtIGF0dGFj
aG1lbnRzIHdpbGwgYmUgc3VwcG9ydGVkIGF0IHRoaXMgc3RhZ2UuIEFzc3VtaW5nIG9uZSBhdXRo
ZW50aWNhdG9yIHBlciBkZXZpY2UuCisgICAgLy8gQWxzbywgcmVzaWRlbnQga2V5cywgdXNlciB2
ZXJpZmljYXRpb25zIGFuZCBkaXJlY3QgYXR0ZXN0YXRpb24gYXJlIGVuZm9yY2VkIGF0IHRoaXMg
dGFnZS4KKyAgICAvLyBGb3IgYmV0dGVyIHBlcmZvcm1hbmNlLCBubyBmaWx0ZXJpbmcgaXMgZG9u
ZSBoZXJlIHJlZ2FyZGluZyB0byBvcHRpb25zLmV4Y2x1ZGVDcmVkZW50aWFscy4KKyAgICAvLyBX
aGF0J3MgbW9yZSwgdXNlciBjYW5jZWxsYXRpb25zIGVmZmVjdGl2ZWx5IG1lYW5zIE5vdEFsbG93
ZWRFcnJvci4gVGhlcmVmb3JlLCB0aGUgYmVsb3cgY2FsbAorICAgIC8vIHdpbGwgb25seSByZXR1
cm5zIGVpdGhlciBhbiBleGNlcHRpb24gb3IgYSBQdWJsaWNLZXlDcmVkZW50aWFsIHJlZi4KKyAg
ICAvLyBGSVhNRTogVGhlIGZvbGxvd2luZyBvcGVyYXRpb24gbWlnaHQgbmVlZCB0byBwZXJmb3Jt
IGFzeW5jLgorICAgIGF1dG8gcmVzdWx0ID0gQXV0aGVudGljYXRvcjo6c2luZ2xldG9uKCkubWFr
ZUNyZWRlbnRpYWwoY2xpZW50RGF0YUpzb25IYXNoLCBvcHRpb25zLnJwLCBvcHRpb25zLnVzZXIs
IG9wdGlvbnMucHViS2V5Q3JlZFBhcmFtcywgb3B0aW9ucy5leGNsdWRlQ3JlZGVudGlhbHMpOwor
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiByZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpOworCisgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IHJlc3VsdC5y
ZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAvLyBGSVhNRTogR290IHNvbWUgY3JhenkgY29tcGls
ZSBlcnJvciB3aGVuIEkgd2FzIHRyeWluZyB0byByZXR1cm4gUkhTIGRpcmVjdGx5LgorICAgIFJl
ZlB0cjxCYXNpY0NyZWRlbnRpYWw+IGNyZWRlbnRpYWwgPSBQdWJsaWNLZXlDcmVkZW50aWFsOjpj
cmVhdGUoZ2V0SWRGcm9tQXR0ZXN0YXRpb25PYmplY3QoYXR0ZXN0YXRpb25PYmplY3QpLCBBdXRo
ZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKFdURk1vdmUoY2xpZW50RGF0YUpz
b24pLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF0dGVzdGF0aW9uT2JqZWN0LmRhdGEoKSwgYXR0ZXN0
YXRpb25PYmplY3Quc2l6ZSgpKSkpOworICAgIHJldHVybiBXVEZNb3ZlKGNyZWRlbnRpYWwpOwog
fQogCi1BcnJheUJ1ZmZlciogUHVibGljS2V5Q3JlZGVudGlhbDo6cmF3SWQoKQorQXJyYXlCdWZm
ZXIqIFB1YmxpY0tleUNyZWRlbnRpYWw6OnJhd0lkKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9y
YXdJZC5nZXQoKTsKIH0KIAotQXV0aGVudGljYXRvclJlc3BvbnNlKiBQdWJsaWNLZXlDcmVkZW50
aWFsOjpyZXNwb25zZSgpCitBdXRoZW50aWNhdG9yUmVzcG9uc2UqIFB1YmxpY0tleUNyZWRlbnRp
YWw6OnJlc3BvbnNlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9yZXNwb25zZS5nZXQoKTsKIH0K
IAotRXhjZXB0aW9uT3I8Ym9vbD4gUHVibGljS2V5Q3JlZGVudGlhbDo6Z2V0Q2xpZW50RXh0ZW5z
aW9uUmVzdWx0cygpCitFeGNlcHRpb25Pcjxib29sPiBQdWJsaWNLZXlDcmVkZW50aWFsOjpnZXRD
bGllbnRFeHRlbnNpb25SZXN1bHRzKCkgY29uc3QKIHsKICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm90U3VwcG9ydGVkRXJyb3IgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmgKaW5kZXggM2M5NjZiYzk4MDQ1M2FiNTVi
YjkyNjllOWIyZWYyNTY4M2M3YWE0Mi4uNWI4NjZiOTYyOTQ5MTM4NDJjODYzZWYxZDg0YzFiOTE4
NGUzYWFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsLmgKQEAgLTM0LDM0ICszNCwzOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEF1dGhlbnRpY2F0b3JSZXNwb25zZTsKIGNsYXNzIERlZmVycmVkUHJvbWlz
ZTsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOwogCi1zdHJ1Y3QgQ3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczsKK3N0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOwogc3RydWN0
IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKIAogY2xhc3MgUHVibGljS2V5Q3JlZGVudGlhbCBm
aW5hbCA6IHB1YmxpYyBCYXNpY0NyZWRlbnRpYWwgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
UHVibGljS2V5Q3JlZGVudGlhbD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgaWQpCisgICAgc3RhdGlj
IFJlZjxQdWJsaWNLZXlDcmVkZW50aWFsPiBjcmVhdGUoUmVmUHRyPEFycmF5QnVmZmVyPiYmIGlk
LCBSZWZQdHI8QXV0aGVudGljYXRvclJlc3BvbnNlPiYmIHJlc3BvbnNlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHVibGljS2V5Q3JlZGVudGlhbChpZCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQdWJsaWNLZXlDcmVkZW50aWFsKFdURk1vdmUoaWQpLCBX
VEZNb3ZlKHJlc3BvbnNlKSkpOwogICAgIH0KIAogICAgIHN0YXRpYyBWZWN0b3I8UmVmPEJhc2lj
Q3JlZGVudGlhbD4+IGNvbGxlY3RGcm9tQ3JlZGVudGlhbFN0b3JlKENyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucyYmLCBib29sKTsKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmUHRyPEJhc2ljQ3Jl
ZGVudGlhbD4+IGRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IENyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucyYsIGJvb2wpOworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWZQdHI8QmFzaWND
cmVkZW50aWFsPj4gZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgU2VjdXJpdHlPcmln
aW4mLCBjb25zdCBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBib29sIHNhbWVPcmlnaW5XaXRo
QW5jZXN0b3JzKTsKICAgICBzdGF0aWMgUmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4gc3RvcmUoUmVm
UHRyPEJhc2ljQ3JlZGVudGlhbD4mJiwgYm9vbCk7Ci0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJl
ZlB0cjxCYXNpY0NyZWRlbnRpYWw+PiBjcmVhdGUoY29uc3QgQ3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyYsIGJvb2wpOworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWZQdHI8QmFzaWNDcmVkZW50
aWFsPj4gY3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgUHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9ucyYsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMpOwogCi0g
ICAgQXJyYXlCdWZmZXIqIHJhd0lkKCk7Ci0gICAgQXV0aGVudGljYXRvclJlc3BvbnNlKiByZXNw
b25zZSgpOworICAgIEFycmF5QnVmZmVyKiByYXdJZCgpIGNvbnN0OworICAgIEF1dGhlbnRpY2F0
b3JSZXNwb25zZSogcmVzcG9uc2UoKSBjb25zdDsKICAgICAvLyBOb3Qgc3VwcG9ydCB5ZXQuIEFs
d2F5cyB0aHJvd3MuCi0gICAgRXhjZXB0aW9uT3I8Ym9vbD4gZ2V0Q2xpZW50RXh0ZW5zaW9uUmVz
dWx0cygpOworICAgIEV4Y2VwdGlvbk9yPGJvb2w+IGdldENsaWVudEV4dGVuc2lvblJlc3VsdHMo
KSBjb25zdDsKIAogICAgIHN0YXRpYyB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVu
dGljYXRvckF2YWlsYWJsZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIAogcHJpdmF0ZToKLSAg
ICBQdWJsaWNLZXlDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYpOworICAgIFB1YmxpY0tleUNyZWRl
bnRpYWwoUmVmUHRyPEFycmF5QnVmZmVyPiYmIGlkLCBSZWZQdHI8QXV0aGVudGljYXRvclJlc3Bv
bnNlPiYmKTsKKworICAgIFR5cGUgY3JlZGVudGlhbFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBUeXBlOjpQdWJsaWNLZXk7IH0KIAogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbV9yYXdJZDsK
ICAgICBSZWZQdHI8QXV0aGVudGljYXRvclJlc3BvbnNlPiBtX3Jlc3BvbnNlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JBU0lDX0NSRURF
TlRJQUwoUHVibGljS2V5Q3JlZGVudGlhbCwgQmFzaWNDcmVkZW50aWFsOjpUeXBlOjpQdWJsaWNL
ZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tl
eUNyZWRlbnRpYWwuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsLmlkbAppbmRleCA0OGVmOWZmZmNjM2EyM2Y4ZjQ1NTU4YmU3ZmQ4ZWVhODdl
MDJjZmQxLi42Yjk5NmI2MzJkMmE1YjM3ZTJlY2Y4MDUxZDkyMmI5YWVlOGQ1YjYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbC5pZGwKQEAgLTI5LDcgKzI5LDcgQEAgdHlwZWRlZiBib29sZWFuIEF1dGhlbnRpY2F0aW9u
RXh0ZW5zaW9uczsKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkF1dGhlbnRpY2F0aW9uLAogICAg
IEV4cG9zZWQ9V2luZG93LAogICAgIFNlY3VyZUNvbnRleHQsCi1dIGludGVyZmFjZSBQdWJsaWNL
ZXlDcmVkZW50aWFsIHsKK10gaW50ZXJmYWNlIFB1YmxpY0tleUNyZWRlbnRpYWwgOiBCYXNpY0Ny
ZWRlbnRpYWwgewogICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgQXJyYXlCdWZm
ZXIgcmF3SWQ7CiAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdXRoZW50aWNh
dG9yUmVzcG9uc2UgcmVzcG9uc2U7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBBdXRoZW50aWNh
dGlvbkV4dGVuc2lvbnMgZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaAppbmRleCA4YmFmZTMwNWNkZjRlNjQ3YjI3OTFjM2E3
MDVhNDRiMWNmZmQyNDhjLi5mY2YxMDFkNWY4MDMyZTdhNjBiNjljYjVjYWE5ZjA5NDM0MjJkN2Yx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaApAQCAtMzksNyArMzks
NyBAQCBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAgICAgfTsK
IAogICAgIHN0cnVjdCBScEVudGl0eSA6IHB1YmxpYyBFbnRpdHkgewotICAgICAgICBTdHJpbmcg
aWQ7CisgICAgICAgIG11dGFibGUgU3RyaW5nIGlkOwogICAgIH07CiAKICAgICBzdHJ1Y3QgVXNl
ckVudGl0eSA6IHB1YmxpYyBFbnRpdHkgewpAQCAtNDksNyArNDksNyBAQCBzdHJ1Y3QgUHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAKICAgICBzdHJ1Y3QgUGFyYW1ldGVycyB7
CiAgICAgICAgIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlIHR5cGU7Ci0gICAgICAgIGxvbmcgYWxn
IHsgMCB9OworICAgICAgICBsb25nIGFsZzsKICAgICB9OwogCiAgICAgUnBFbnRpdHkgcnA7CkBA
IC01OCw3ICs1OCw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
IHsKICAgICBCdWZmZXJTb3VyY2UgY2hhbGxlbmdlOwogICAgIFZlY3RvcjxQYXJhbWV0ZXJzPiBw
dWJLZXlDcmVkUGFyYW1zOwogCi0gICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0IHsgMCB9OworICAg
IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQgbG9uZz4gdGltZW91dDsKICAgICBWZWN0b3I8UHVibGlj
S2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+IGV4Y2x1ZGVDcmVkZW50aWFsczsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3IuaAppbmRleCA3M2U0NDkyMzcyNGYzMTI1YjFlZGFkZTM2ODcz
ODdlZGIxYWU4MTg1Li44MjlkNjAxMjUxMWZiNGRlOGU3M2IxNjg0YzY4YzkxMzliODE2MTliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oCkBAIC0zMSw4ICszMSwxNSBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3Igewor
ICAgIGVudW0gY2xhc3MgQXV0aGVudGljYXRvclRyYW5zcG9ydCB7CisgICAgICAgIFVzYiwKKyAg
ICAgICAgTmZjLAorICAgICAgICBCbGUKKyAgICB9OworCiAgICAgUHVibGljS2V5Q3JlZGVudGlh
bFR5cGUgdHlwZTsKICAgICBCdWZmZXJTb3VyY2UgaWQ7CisgICAgVmVjdG9yPEF1dGhlbnRpY2F0
b3JUcmFuc3BvcnQ+IHRyYW5zcG9ydHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxEZXNjcmlwdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVi
bGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsCmluZGV4IGU5M2Y4NjQ0YjE5ZTA1MWIwM2Jk
OTQ4ZTFmYWQ4MmI3MGVmNGQ4ZWYuLjI1OGUyODljMTg0YTRiOGUzMmViMjE2NDYyN2ZhYzA0MmYy
MDU4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsCkBAIC0yMyw5ICsyMywx
NCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKK2VudW0gQXV0
aGVudGljYXRvclRyYW5zcG9ydCB7CisgICAgInVzYiIsCisgICAgIm5mYyIsCisgICAgImJsZSIK
K307CisKIGRpY3Rpb25hcnkgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IgewogICAgIHJl
cXVpcmVkIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlIHR5cGU7CiAgICAgcmVxdWlyZWQgQnVmZmVy
U291cmNlIGlkOwotICAgIC8vIFdlIG9ubHkgYWxsb3cgcGxhdGZvcm0gYXR0YWNobWVudCBhdCB0
aGlzIHN0YWdlLgotICAgIC8vIHNlcXVlbmNlPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ+IHRyYW5z
cG9ydHM7CisgICAgc2VxdWVuY2U8QXV0aGVudGljYXRvclRyYW5zcG9ydD4gdHJhbnNwb3J0czsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IDljMmIwYTVmMTFmMTc0ZGE4MWQ0N2RjZTI2YjllM2MwYzU5
MTcxMzUuLjIyYzYzNmU2MjVkNzgxYjM0MTgyYjk1YjUxZjRiNmIxZDJkZDM3MmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0yNDQsNiArMjQ0LDcgQEAgTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyRFNQ
S2VybmVsLmNwcAogTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHAKIE1vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKIAorTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yLmNwcAogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVz
cG9uc2UuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3Bv
bnNlLmNwcAogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwCkBAIC0z
NDUsMTEgKzM0NiwxMyBAQCBiaW5kaW5ncy9qcy9ET01HQ091dHB1dENvbnN0cmFpbnQuY3BwCiBi
aW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuY3BwCiBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIu
Y3BwCiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorYmluZGluZ3MvanMvSlNB
dXRoZW50aWNhdG9yUmVzcG9uc2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0FuaW1hdGlvbkVm
ZmVjdEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTQW5pbWF0aW9uVGltZWxpbmVDdXN0b20uY3Bw
CiBiaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tD
dXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcAorYmluZGlu
Z3MvanMvSlNCYXNpY0NyZWRlbnRpYWxDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0Jsb2JDdXN0
b20uY3BwCiBiaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0NT
U1J1bGVMaXN0Q3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIxYjlkMTYxMTc4ZGQwOGM5ZmRlNzhhZGMzZDdkMmQz
N2RkMmQwMDUuLmYzNTAxYzMzOTZhY2Y1YmEyYzllN2UyZDVhM2RkM2Y0NzVhOTU2N2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE2NjAsNiArMTY2MCw3IEBACiAJCTU3MzAzQzIyMjAwOUFGMDMwMDM1NTk2NSAvKiBKU0F1dGhl
bnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0MyMTIwMDlBRUY2MDAzNTU5NjUgLyogSlNBdXRoZW50
aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5oICovOyB9OwogCQk1NzMwM0MyQzIwMDlCNEE4MDAz
NTU5NjUgLyogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0MyNzIwMDlCMkZDMDAzNTU5NjUg
LyogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggKi87IH07CiAJCTU3MzAzQzJGMjAw
OUI3RTEwMDM1NTk2NSAvKiBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNDMkQyMDA5QjdE
OTAwMzU1OTY1IC8qIEpTQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggKi87IH07CisJ
CTU3MzAzQzQ2MjAxMDVEMkYwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0M0MzIwMTA1QjNEMDAzNTU5
NjUgLyogQXV0aGVudGljYXRvci5oICovOyB9OwogCQk1NzM0ODkzOTFEQUM2QjZFMDBEQzA2Njcg
LyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTczNDg5MzgxREFDNkI2RDAwREMwNjY3IC8qIENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJNTczOUUxMkYxREFDN0Y3ODAwRTE0MzgzIC8q
IEpTQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTczOUUxMkUxREFDN0Y3ODAwRTE0MzgzIC8qIEpTQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycy5oICovOyB9OwogCQk1NzUwQTk3NTFFNjhEMDAwMDA3MDVDNEEg
LyogQ3J5cHRvS2V5RUMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3NTBBOTczMUU2OEQwMDAwMDcwNUM0QSAvKiBDcnlwdG9LZXlFQy5oICovOyB9OwpA
QCAtODIyNyw2ICs4MjI4LDggQEAKIAkJNTczMDNDMjkyMDA5QjJGQzAwMzU1OTY1IC8qIEF1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXV0aGVudGljYXRvckFzc2VydGlv
blJlc3BvbnNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNDMkQyMDA5
QjdEOTAwMzU1OTY1IC8qIEpTQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXV0aGVudGljYXRvckFzc2VydGlvblJlc3Bv
bnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQzJFMjAwOUI3REEwMDM1
NTk2NSAvKiBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25z
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MzAzQzQzMjAxMDVCM0QwMDM1
NTk2NSAvKiBBdXRoZW50aWNhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0b3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTczMDNDNDQyMDEwNUIzRDAwMzU1OTY1IC8q
IEF1dGhlbnRpY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzQ4OTM4MURBQzZCNkQwMERDMDY2NyAv
KiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTczOUUxMkUxREFDN0Y3ODAwRTE0MzgzIC8qIEpTQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczOUUxMzAx
REFDN0ZEMTAwRTE0MzgzIC8qIEpTQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODI0Myw2ICs4MjQ2LDggQEAK
IAkJNTc1MEE5ODUxRTZBMjE2ODAwNzA1QzRBIC8qIENyeXB0b0FsZ29yaXRobUVDREguaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtRUNESC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU0NzE5OTFFQ0U1RDJBMDBERDYzQjIgLyogSlNS
c2FQc3NQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSc2FQc3NQ
YXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc1NDcxOUExRUNFNUQyQTAw
REQ2M0IyIC8qIEpTUnNhUHNzUGFyYW1zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTUnNhUHNzUGFyYW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTc2MDgyNEYyMDExOEQ4RDAwMTE2Njc4IC8qIEpTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc2MDgyNTYyMDExQkUwMjAwMTE2Njc4IC8qIEpTQXV0
aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXV0aGVu
dGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTc2ODE0MjgxRTZGOThBRDAwRTc3NzU0IC8qIEVjZGhLZXlEZXJpdmVQYXJhbXMuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEVjZGhLZXlEZXJpdmVQYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzY4MTQyOTFFNkY5OUMxMDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBh
cmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1F
Y2RoS2V5RGVyaXZlUGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3Njgx
NDM0MUU2RkUzRTgwMEU3Nzc1NCAvKiBDcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUVDREhNYWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgxNzEsNiArMTgxNzYsOCBAQAogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1NzMwM0JCMzIwMDZDNkVEMDAz
NTU5NjUgLyogY2JvciAqLywKKwkJCQk1NzMwM0M0NDIwMTA1QjNEMDAzNTU5NjUgLyogQXV0aGVu
dGljYXRvci5jcHAgKi8sCisJCQkJNTczMDNDNDMyMDEwNUIzRDAwMzU1OTY1IC8qIEF1dGhlbnRp
Y2F0b3IuaCAqLywKIAkJCQk1NzMwM0MyODIwMDlCMkZDMDAzNTU5NjUgLyogQXV0aGVudGljYXRv
ckFzc2VydGlvblJlc3BvbnNlLmNwcCAqLywKIAkJCQk1NzMwM0MyNzIwMDlCMkZDMDAzNTU5NjUg
LyogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggKi8sCiAJCQkJNTczMDNDMjkyMDA5
QjJGQzAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5pZGwgKi8sCkBA
IC0xOTIxNiw2ICsxOTIyMyw4IEBACiAJCQkJQkMyRUQ2QkIwQzZCRDJGMDAwOTIwQkZGIC8qIEpT
QXR0ckN1c3RvbS5jcHAgKi8sCiAJCQkJQkU2REY3MEUxNzFDQTJEQTAwREQ1MkI4IC8qIEpTQXVk
aW9UcmFja0N1c3RvbS5jcHAgKi8sCiAJCQkJQkU2REY3MTAxNzFDQTJEQTAwREQ1MkI4IC8qIEpT
QXVkaW9UcmFja0xpc3RDdXN0b20uY3BwICovLAorCQkJCTU3NjA4MjU2MjAxMUJFMDIwMDExNjY3
OCAvKiBKU0F1dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAgKi8sCisJCQkJNTc2MDgyNEYy
MDExOEQ4RDAwMTE2Njc4IC8qIEpTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcCAqLywKIAkJCQk4
OTMxREU1QTE0QzQ0QzQ0MDAwREM5RDIgLyogSlNCbG9iQ3VzdG9tLmNwcCAqLywKIAkJCQk0OUVF
RDE0QjEwNTE5NzE5MDAwOTlGQUIgLyogSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20u
Y3BwICovLAogCQkJCUJDNDZDMUVEMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0b20u
Y3BwICovLApAQCAtMjY0OTgsNiArMjY1MDcsNyBAQAogCQkJCTkzNEY3MTNBMEQ1QTZGMTAwMDAx
OEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxMjQ3NDg0MTBBQTE2MUQwMEI3OTQ5MyAvKiBBdXRoZW50aWNhdGlvbkNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE0Qzc2NEMwQ0U5MjM0RTAwN0VGM0NEIC8qIEF1dGhlbnRpY2F0aW9u
TWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzMwM0M0NjIwMTA1RDJGMDAzNTU5NjUgLyogQXV0
aGVudGljYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNDMkMyMDA5QjRBODAwMzU1OTY1
IC8qIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTczMDNDMUYyMDA5QUI0MjAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3Bv
bnNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JEMjIwMDg3QTgzMDAzNTU5NjUgLyogQXV0
aGVudGljYXRvclJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hZmUwOTRlYTc3NzdlODU0NjZjNDJhOTRhODZhZDljZGU4YTg3MWFmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdXRoZW50aWNh
dG9yUmVzcG9uc2VDdXN0b20uY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNBdXRoZW50aWNhdG9yUmVzcG9uc2UuaCIKKwor
I2luY2x1ZGUgIkpTQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaCIKKyNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNl
IEpTQzsKKworSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJiBy
ZXNwb25zZSkKK3sKKyAgICBpZiAoaXM8QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+
KHJlc3BvbnNlKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8QXV0aGVudGljYXRvckF0
dGVzdGF0aW9uUmVzcG9uc2U+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShyZXNwb25zZSkpOworICAg
IHJldHVybiBjcmVhdGVXcmFwcGVyPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4oZ2xvYmFsT2JqZWN0
LCBXVEZNb3ZlKHJlc3BvbnNlKSk7Cit9CisKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBBdXRoZW50aWNhdG9yUmVzcG9uc2Um
IHJlc3BvbnNlKQoreworICAgIHJldHVybiB3cmFwKHN0YXRlLCBnbG9iYWxPYmplY3QsIHJlc3Bv
bnNlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCYXNpY0NyZWRlbnRpYWxDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCYXNpY0NyZWRlbnRpYWxDdXN0b20uY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY2YmRkOGMyNGFlM2NiNzlhMjZkNDI0ZDgwNjM4YjRhMjMyZGMyY2YKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jhc2ljQ3JlZGVudGlhbEN1c3RvbS5j
cHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJKU0Jhc2ljQ3JlZGVudGlhbC5oIgorCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CisjaW5jbHVkZSAiSlNQdWJsaWNLZXlDcmVkZW50aWFsLmgiCisKKworbmFtZXNwYWNlIFdlYkNv
cmUgewordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPEJhc2lj
Q3JlZGVudGlhbD4mJiBjcmVkZW50aWFsKQoreworICAgIGlmIChpczxQdWJsaWNLZXlDcmVkZW50
aWFsPihjcmVkZW50aWFsKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8UHVibGljS2V5
Q3JlZGVudGlhbD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGNyZWRlbnRpYWwpKTsKKyAgICByZXR1
cm4gY3JlYXRlV3JhcHBlcjxCYXNpY0NyZWRlbnRpYWw+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShj
cmVkZW50aWFsKSk7Cit9CisKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCYXNpY0NyZWRlbnRpYWwmIGNyZWRlbnRpYWwpCit7
CisgICAgcmV0dXJuIHdyYXAoc3RhdGUsIGdsb2JhbE9iamVjdCwgY3JlZGVudGlhbCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IDZmODAzYzU5NWY1YzIxNDNhZThjYjU0Mzgy
YzljMWQzY2ExZDE2NWYuLjQ4YzUzZTJjZDJlZDJiNGZjMzNiNDUxYWRjY2YyMzZkMmExMTY5ZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTQXR0ckN1c3RvbS5jcHAiCiAjaW5j
bHVkZSAiSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0F1ZGlvVHJhY2tMaXN0
Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU0Jhc2ljQ3JlZGVudGlhbEN1c3RvbS5jcHAiCiAjaW5j
bHVkZSAiSlNCbG9iQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0NTU1J1bGVDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5j
cHAKaW5kZXggZDllMjUwYTE2OTNkNjNiYzEwM2QxNTlmZDc4NjRkYTQyNjdmMTFkYS4uMTBiODQ4
ZjBkMDYzYTIwZTAyMjI4NTI3ZTAwM2NhMTkzYjkzZGNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4dGVuZGFibGVNZXNzYWdlRXZlbnRDdXN0
b20uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50LmgiCiAKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiSlNET01D
b252ZXJ0U3RyaW5ncy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOWEwNWM4
MDA1NTRkYWYyOTk4OGNiODIwOGE5MTQ3NGJiNWEwMDRjLi41OGJhNTg2NDM5MjZmYWFjODhjNjIw
NmMzZDJlMDdkNDA4MzJmMWQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTgtMDEtMjIgIEpp
ZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aE5dIElt
cGxlbWVudCBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tDcmVhdGVdXSB3aXRoIGEgZHVtbXkgYXV0
aGVudGljYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgxOTI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjQ1OTg5Mz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGNhc2VzIGFyZSBkaXZp
ZGVkIGludG8gdHdvIGRpZmZlcmVudCBmb2xkZXJzLiBPbmUgZm9sbG93cyB3cHQgc3R5bGUuIFRo
ZSBvdGhlciBjb250YWlucyB0ZXN0cworICAgICAgICB0aGF0IEkgZG9uJ3Qga25vdyBob3cgdG8g
d3JpdGUgdGhlbSBpbiB3cHQgc3R5bGUuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1pbnZhbGlkLXBhcmFtZXRlcnMuaHR0
cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1pbnZhbGlkLXBhcmFtZXRlcnMuaHR0cHMu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMtMi5odHRwcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLTIuaHR0cHMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmln
aW4td2l0aC1hbmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRo
LWFuY2VzdG9ycy5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmF1
dGhuL3Jlc291cmNlcy9sYXN0LWxheWVyLWZyYW1lLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL3NlY29uZC1sYXllci1mcmFtZS5odHRw
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNlcy91
dGlsLmpzOiBBZGRlZC4KKyAgICAgICAgSXQgd2lsbCBiZSBnb29kIHRvIGNvbnZlcnQgdGhlbSBp
bnRvIHdwdCBzdHlsZS4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9XZWJBdXRoTi5pZGw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Y3JlYXRlLWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWNyZWF0ZS1zdWNjZXNzLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNz
Lmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNl
cy91dGlsLmpzOiBBZGRlZC4KKwogMjAxOC0wMS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIHRlcm1pbmF0ZSBzZXJ2aWNl
IHdvcmtlcnMgdGhhdCBhcmUgdW5yZXNwb25zaXZlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1pbnZh
bGlkLXBhcmFtZXRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXdpdGgtaW52YWxpZC1wYXJh
bWV0ZXJzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2UxZGZiY2U4NjdlMGMwNzU1
M2QzOGQyNGY3Njg1NzY1YTdmYTllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXdpdGgtaW52YWxp
ZC1wYXJhbWV0ZXJzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDY0IEBACitUZXN0cyB0
aGF0IFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHRocm93cyBUeXBlRXJyb3Igd2hl
biBpbnZhbGlkIG9wdGlvbnMgYXJlIHBhc3NlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykg
cmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zLnJwIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIFB1YmxpY0tleUNyZWRlbnRpYWxScEVudGl0eS4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJy
b3I6IE1lbWJlciBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLnVzZXIgaXMgcmVx
dWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJF
bnRpdHkuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMp
IHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9ucy5jaGFsbGVuZ2UgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgKEFycmF5QnVmZmVyVmlldyBvciBBcnJheUJ1ZmZlcikuCitQQVNTIG5hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2Ug
IHdpdGggVHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cy5wdWJLZXlDcmVkUGFyYW1zIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
IHNlcXVlbmNlLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRp
b25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNy
ZWRlbnRpYWxScEVudGl0eS5uYW1lIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIERPTVN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlk
T3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJsaWNL
ZXlDcmVkZW50aWFsVXNlckVudGl0eS5uYW1lIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIERPTVN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShp
bnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQ
dWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eS5pZCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiAoQXJyYXlCdWZmZXJWaWV3IG9yIEFycmF5QnVmZmVyKS4KK1BBU1MgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlz
ZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eS5k
aXNwbGF5TmFtZSBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBET01TdHJp
bmcuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJl
amVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlh
bFBhcmFtZXRlcnMudHlwZSBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBQ
dWJsaWNLZXlDcmVkZW50aWFsVHlwZS4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0
ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJl
ciBQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycy5hbGcgaXMgcmVxdWlyZWQgYW5kIG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgbG9uZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0
ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJl
ciBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci50eXBlIGlzIHJlcXVpcmVkIGFuZCBtdXN0
IGJlIGFuIGluc3RhbmNlIG9mIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLgorUEFTUyBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3
aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkIGlz
IHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIChBcnJheUJ1ZmZlclZpZXcgb3Ig
QXJyYXlCdWZmZXIpLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRP
cHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogQ2Fubm90IGNvbnZlcnQg
YSBzeW1ib2wgdG8gYSBzdHJpbmcuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUo
aW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBDYW5ub3Qg
Y29udmVydCBhIHN5bWJvbCB0byBhIHN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6
IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEgc3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5
cGVFcnJvcjogQ2Fubm90IGNvbnZlcnQgYSBzeW1ib2wgdG8gYSBzdHJpbmcuCitQQVNTIG5hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2Ug
IHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0
aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNT
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHBy
b21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZh
bGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVj
dGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRo
IFR5cGVFcnJvcjogQ2Fubm90IGNvbnZlcnQgYSBzeW1ib2wgdG8gYSBzdHJpbmcuCitQQVNTIG5h
dmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21p
c2UgIHdpdGggVHlwZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIHN0cmluZy4K
K1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0
ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5j
cmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGgg
VHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRl
KGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykg
cmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2Ug
IHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0
aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNT
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHBy
b21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZh
bGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVj
dGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBh
IHN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9u
cykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5h
dmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21p
c2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlk
T3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0
IGEgc3ltYm9sIHRvIGEgbnVtYmVyLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRl
KGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogQ2Fubm90
IGNvbnZlcnQgYSBzeW1ib2wgdG8gYSBudW1iZXIuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9y
OiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRP
cHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BB
U1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQg
cHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlw
ZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIHN0cmluZy4KK1BBU1MgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAg
d2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5j
cmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBU
eXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRp
b25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJv
bWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFs
aWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0
ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5j
cmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGgg
VHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRl
KGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykg
cmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRl
LXdpdGgtaW52YWxpZC1wYXJhbWV0ZXJzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1pbnZhbGlkLXBh
cmFtZXRlcnMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjI0ZDczYjMxYzBhZmMyMjdhZDgyMmFk
NzRjZWEyNGQ5OWY3YzAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXdpdGgtaW52YWxpZC1wYXJh
bWV0ZXJzLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gdGhyb3dzIFR5cGVFcnJvciB3aGVuIGlu
dmFsaWQgb3B0aW9ucyBhcmUgcGFzc2VkLiIpOworCisgICAganNUZXN0SXNBc3luYyA9IHRydWU7
CisKKyAgICBjb25zdCBycCA9IHsKKyAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgIH07
CisgICAgY29uc3QgdXNlciA9IHsKKyAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAg
ICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgZGlzcGxheU5h
bWU6ICJBcHBsZXNlZWQiCisgICAgfTsKKyAgICBjb25zdCBjaGFsbGVuZ2UgPSBhc2NpaVRvVWlu
dDhBcnJheSgiMTIzNDU2Iik7CisgICAgY29uc3QgcHViS2V5Q3JlZFBhcmFtID0geyB0eXBlOiAi
cHVibGljLWtleSIsIGFsZzogLTcgfTsKKyAgICBjb25zdCBleGNsdWRlQ3JlZGVudGlhbHMgPSB7
IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSB9Owor
CisgICAgY29uc3QgbWlzc2luZ0F0dHJpYnV0ZVZlY3RvciA9IFsKKyAgICAgICAgLy8gbWlzc2lu
ZyB0b3AgbGV2ZWwgYXR0cmlidXRlCisgICAgICAgIFt1bmRlZmluZWQsIHVzZXIsIGNoYWxsZW5n
ZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHVuZGVmaW5lZCwgY2hhbGxlbmdl
LCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgdXNlciwgdW5kZWZpbmVkLCBbcHVi
S2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCB1bmRlZmluZWRd
LAorICAgICAgICAvLyBtaXNzaW5nIHJwIGF0dHJpYnV0ZQorICAgICAgICBbeyBuYW1lOiB1bmRl
ZmluZWQgfSwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIC8v
IG1pc3NpbmcgdXNlciBhdHRyaWJ1dGUKKyAgICAgICAgW3JwLCB7IG5hbWU6IHVuZGVmaW5lZCwg
aWQ6IHVzZXIuaWQsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwgY2hhbGxlbmdlLCBb
cHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUsIGlkOiB1
bmRlZmluZWQsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwgY2hhbGxlbmdlLCBbcHVi
S2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUsIGlkOiB1c2Vy
LmlkLCBkaXNwbGF5TmFtZTogdW5kZWZpbmVkfSwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFt
XV0sCisgICAgICAgIC8vIG1pc3NpbmcgcHViS2V5Q3JlZFBhcmFtcyBhdHRyaWJ1dGUKKyAgICAg
ICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6IHVuZGVmaW5lZCwgYWxnOiBwdWJLZXlD
cmVkUGFyYW0uYWxnIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6
IHB1YktleUNyZWRQYXJhbS50eXBlLCBhbGc6IHVuZGVmaW5lZCB9XV0sCisgICAgICAgIC8vIG1p
c3NpbmcgZXhjbHVkZUNyZWRlbnRpYWxzIGF0dHJpYnV0ZQorICAgICAgICBbcnAsIHVzZXIsIGNo
YWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogdW5kZWZpbmVk
LCBpZDogZXhjbHVkZUNyZWRlbnRpYWxzLmlkIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFs
bGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IGV4Y2x1ZGVDcmVk
ZW50aWFscy50eXBlLCBpZDogdW5kZWZpbmVkIH1dXQorICAgIF07CisKKyAgICBjb25zdCB3cm9u
Z1R5cGVBdHRyaWJ1dGVWZWN0b3IgPSBbCisgICAgICAgIC8vIHdyb25nIHJwIGF0dHJpYnV0ZSB0
eXBlCisgICAgICAgIFt7IG5hbWU6IFN5bWJvbCgpIH0sIHVzZXIsIGNoYWxsZW5nZSwgW3B1Yktl
eUNyZWRQYXJhbV1dLAorICAgICAgICBbeyBuYW1lOiBycC5uYW1lLCBpY29uOiBTeW1ib2woKSB9
LCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3sgbmFtZTog
cnAubmFtZSwgaWQ6IFN5bWJvbCgpIH0sIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJh
bV1dLAorICAgICAgICAvLyB3cm9uZyB1c2VyIGF0dHJpYnV0ZSB0eXBlCisgICAgICAgIFtycCwg
eyBuYW1lOiBTeW1ib2woKSwgaWQ6IHVzZXIuaWQsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlO
YW1lfSwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1l
OiB1c2VyLm5hbWUsIGlkOiAxLCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5TmFtZX0sIGNoYWxs
ZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHsgbmFtZTogdXNlci5uYW1l
LCBpZDogdHJ1ZSwgZGlzcGxheU5hbWU6IHVzZXIuZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtw
dWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IG51
bGwsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwgY2hhbGxlbmdlLCBbcHViS2V5Q3Jl
ZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUsIGlkOiBTeW1ib2woKSwg
ZGlzcGxheU5hbWU6IHVzZXIuZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFy
YW1dXSwKKyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IHsgfSwgZGlzcGxheU5h
bWU6IHVzZXIuZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAg
ICAgICAgW3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6ICJmb28iLCBkaXNwbGF5TmFtZTogdXNl
ci5kaXNwbGF5TmFtZX0sIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBb
cnAsIHsgbmFtZTogdXNlci5uYW1lLCBpZDogWyBdLCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5
TmFtZX0sIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHsgbmFt
ZTogdXNlci5uYW1lLCBpZDogdXNlci5pZCwgZGlzcGxheU5hbWU6IFN5bWJvbCgpfSwgY2hhbGxl
bmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUs
IGlkOiB1c2VyLmlkLCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5TmFtZSwgaWNvbjogU3ltYm9s
KCl9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgLy8gd3JvbmcgY2hh
bGxlbmdlIHR5cGUKKyAgICAgICAgW3JwLCB1c2VyLCAxLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisg
ICAgICAgIFtycCwgdXNlciwgdHJ1ZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAs
IHVzZXIsIG51bGwsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBTeW1i
b2woKSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHVzZXIsICJmb28iLCBbcHVi
S2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgdXNlciwgWyBdLCBbcHViS2V5Q3JlZFBhcmFt
XV0sCisgICAgICAgIFtycCwgdXNlciwgeyB9LCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAg
IC8vIHdyb25nIHB1YktleUNyZWRQYXJhbSB0eXBlCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxl
bmdlLCBbeyB0eXBlOiAxLCBhbGc6IHB1YktleUNyZWRQYXJhbS5hbGcgfV1dLAorICAgICAgICBb
cnAsIHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogdHJ1ZSwgYWxnOiBwdWJLZXlDcmVkUGFyYW0u
YWxnIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6IG51bGwsIGFs
ZzogcHViS2V5Q3JlZFBhcmFtLmFsZyB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdl
LCBbeyB0eXBlOiBTeW1ib2woKSwgYWxnOiBwdWJLZXlDcmVkUGFyYW0uYWxnIH1dXSwKKyAgICAg
ICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6ICJmb28iLCBhbGc6IHB1YktleUNyZWRQ
YXJhbS5hbGcgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogWyBd
LCBhbGc6IHB1YktleUNyZWRQYXJhbS5hbGcgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxs
ZW5nZSwgW3sgdHlwZTogeyB9LCBhbGc6IHB1YktleUNyZWRQYXJhbS5hbGcgfV1dLAorICAgICAg
ICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogcHViS2V5Q3JlZFBhcmFtLnR5cGUsIGFs
ZzogU3ltYm9sKCkgfV1dLAorICAgICAgICAvLyB3cm9uZyB0aW1lb3V0IHR5cGUKKyAgICAgICAg
W3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCBTeW1ib2woKSwgdW5kZWZp
bmVkXSwKKyAgICAgICAgLy8gd3JvbmcgZXhjbHVkZUNyZWRlbnRpYWxzCisgICAgICAgIFtycCwg
dXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiAx
LCBpZDogZXhjbHVkZUNyZWRlbnRpYWxzLmlkIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFs
bGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IHRydWUsIGlkOiBl
eGNsdWRlQ3JlZGVudGlhbHMuaWQgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwg
W3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogbnVsbCwgaWQ6IGV4Y2x1ZGVD
cmVkZW50aWFscy5pZCB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5
Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBTeW1ib2woKSwgaWQ6IGV4Y2x1ZGVDcmVk
ZW50aWFscy5pZCB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3Jl
ZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiAiZm9vIiwgaWQ6IGV4Y2x1ZGVDcmVkZW50aWFs
cy5pZCB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFt
XSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBbIF0sIGlkOiBleGNsdWRlQ3JlZGVudGlhbHMuaWQgfV1d
LAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVm
aW5lZCwgW3sgdHlwZTogeyB9LCBpZDogZXhjbHVkZUNyZWRlbnRpYWxzLmlkIH1dXSwKKyAgICAg
ICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7
IHR5cGU6IGV4Y2x1ZGVDcmVkZW50aWFscy50eXBlLCBpZDogMSB9XV0sCisgICAgICAgIFtycCwg
dXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBl
eGNsdWRlQ3JlZGVudGlhbHMudHlwZSwgaWQ6IHRydWUgfV1dLAorICAgICAgICBbcnAsIHVzZXIs
IGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogZXhjbHVk
ZUNyZWRlbnRpYWxzLnR5cGUsIGlkOiBudWxsIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFs
bGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IGV4Y2x1ZGVDcmVk
ZW50aWFscy50eXBlLCBpZDogU3ltYm9sKCkgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxs
ZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogZXhjbHVkZUNyZWRl
bnRpYWxzLnR5cGUsIGlkOiAiZm9vIiB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdl
LCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBleGNsdWRlQ3JlZGVudGlh
bHMudHlwZSwgaWQ6IFsgXSB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHVi
S2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBleGNsdWRlQ3JlZGVudGlhbHMudHlw
ZSwgaWQ6IHsgfSB9XV0KKyAgICBdCisKKyAgICBmdW5jdGlvbiBtYWtlT3B0aW9ucyhhdHRyaWJ1
dGVzKQorICAgIHsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMubGVuZ3RoID09IDQpCisgICAgICAg
ICAgICByZXR1cm4geyBwdWJsaWNLZXk6IHsgcnA6IGF0dHJpYnV0ZXNbMF0sIHVzZXI6IGF0dHJp
YnV0ZXNbMV0sIGNoYWxsZW5nZTogYXR0cmlidXRlc1syXSwgcHViS2V5Q3JlZFBhcmFtczogYXR0
cmlidXRlc1szXSB9IH07CisgICAgICAgIHJldHVybiB7IHB1YmxpY0tleTogeyBycDogYXR0cmli
dXRlc1swXSwgdXNlcjogYXR0cmlidXRlc1sxXSwgY2hhbGxlbmdlOiBhdHRyaWJ1dGVzWzJdLCBw
dWJLZXlDcmVkUGFyYW1zOiBhdHRyaWJ1dGVzWzNdLCB0aW1lb3V0OiBhdHRyaWJ1dGVzWzRdLCAg
ZXhjbHVkZUNyZWRlbnRpYWxzOiBhdHRyaWJ1dGVzWzVdfSB9OworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3QoYXR0cmlidXRlc1ZlY3RvcnMpIHsKKyAgICAgICAgYXR0cmlidXRlc1ZlY3Rv
cnMuZm9yRWFjaChmdW5jdGlvbihhdHRyaWJ1dGVzVmVjdG9yKSB7CisgICAgICAgICAgICBhdHRy
aWJ1dGVzVmVjdG9yLmZvckVhY2goYXN5bmMgZnVuY3Rpb24oYXR0cmlidXRlcykgeworICAgICAg
ICAgICAgICAgIGludmFsaWRPcHRpb25zID0gbWFrZU9wdGlvbnMoYXR0cmlidXRlcyk7CisgICAg
ICAgICAgICAgICAgYXdhaXQgc2hvdWxkUmVqZWN0KCduYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3Jl
YXRlKGludmFsaWRPcHRpb25zKScpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIGNvbnN0IHZlY3RvcnMgPSBbXTsK
KyAgICB2ZWN0b3JzLnB1c2gobWlzc2luZ0F0dHJpYnV0ZVZlY3Rvcik7CisgICAgdmVjdG9ycy5w
dXNoKHdyb25nVHlwZUF0dHJpYnV0ZVZlY3Rvcik7CisgICAgcnVuVGVzdCh2ZWN0b3JzKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNl
c3RvcnMtMi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0
dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzVjNWMwMWExM2UxNTBiMzJjYzRhNGNmZjcw
MDUwYWE0MmUzN2E5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMt
Mi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBhIGZyYW1l
IHRoYXQgZG9lc24ndCBzaGFyZSB0aGUgc2FtZSBvcmlnaW4gd2l0aCBhbGwgaXRzIGFuY2VzdG9y
cyBjb3VsZCBub3QgYWNjZXNzIHRoZSBBUEkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIFRocm93IE5vdEFsbG93ZWRFcnJvci4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFu
Y2VzdG9ycy0yLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzkwMTFhOTg1MThjOTE2N2Q0YmZlZTZmZGQwZjY2Zjk1NjBiODFmMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLTIuaHR0cHMuaHRtbApA
QCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGRvZXNuJ3Qgc2hh
cmUgdGhlIHNhbWUgb3JpZ2luIHdpdGggYWxsIGl0cyBhbmNlc3RvcnMgY291bGQgbm90IGFjY2Vz
cyB0aGUgQVBJLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aWZyYW1lIHNyYz0iaHR0cHM6
Ly9sb2NhbGhvc3Q6ODQ0My93ZWJhdXRobi9yZXNvdXJjZXMvbGFzdC1sYXllci1mcmFtZS5odHRw
cy5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2lu
LXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0
b3JzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzVjNWMwMWExM2UxNTBiMzJjYzRh
NGNmZjcwMDUwYWE0MmUzN2E5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNl
c3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgYSBm
cmFtZSB0aGF0IGRvZXNuJ3Qgc2hhcmUgdGhlIHNhbWUgb3JpZ2luIHdpdGggYWxsIGl0cyBhbmNl
c3RvcnMgY291bGQgbm90IGFjY2VzcyB0aGUgQVBJLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBUaHJvdyBOb3RBbGxvd2VkRXJyb3IuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0
aC1hbmNlc3RvcnMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjhjOTVjZjc2M2Y4N2M5N2Y1OGIwYTJhNDE2NDc4NTBmMDEwZmVjZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKQEAg
LTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBkb2Vzbid0IHNoYXJl
IHRoZSBzYW1lIG9yaWdpbiB3aXRoIGFsbCBpdHMgYW5jZXN0b3JzIGNvdWxkIG5vdCBhY2Nlc3Mg
dGhlIEFQSS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOwor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8v
bG9jYWxob3N0Ojg0NDMvd2ViYXV0aG4vcmVzb3VyY2VzL3NlY29uZC1sYXllci1mcmFtZS5odHRw
cy5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL2xhc3QtbGF5ZXItZnJhbWUuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL2xhc3QtbGF5
ZXItZnJhbWUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYWEyY2M0OTYwNjcyNjNhZTUzZmM3ZWYy
ZTA4MDRlOTAzZTMxZjU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJhdXRobi9yZXNvdXJjZXMvbGFzdC1sYXllci1mcmFtZS5odHRwcy5odG1sCkBAIC0wLDAg
KzEsMzcgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBtZXNzYWdlVG9Ub3AobWVzc2FnZVBy
ZWZpeCkgeworICAgICAgICB0b3AucG9zdE1lc3NhZ2UobWVzc2FnZVByZWZpeCwgImh0dHBzOi8v
MTI3LjAuMC4xOjg0NDMiKTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAg
ICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgbmFtZTog
ImV4YW1wbGUuY29tIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHVzZXI6IHsKKyAgICAg
ICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIGlkOiBh
c2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6
ICJKb2huIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9V
aW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5
cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQorICAgICAgICB9CisgICAgfTsKKyAgICBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oCisgICAgICAgIGZ1bmN0aW9u
KHZhbHVlKSB7CisgICAgICAgICAgICBtZXNzYWdlVG9Ub3AoIkFjY2VzcyBncmFudGVkLiAiICsg
dmFsdWUpOworICAgICAgICB9LAorICAgICAgICBmdW5jdGlvbihleGNlcHRpb24pIHsKKyAgICAg
ICAgICAgIGlmIChleGNlcHRpb24ubmFtZSA9PSAiTm90QWxsb3dlZEVycm9yIikKKyAgICAgICAg
ICAgICAgICBtZXNzYWdlVG9Ub3AoIlBBU1MgVGhyb3cgTm90QWxsb3dlZEVycm9yLiIpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1lc3NhZ2VUb1RvcCgiVGhyb3cgIiArIGV4
Y2VwdGlvbi5uYW1lICArICIuIik7CisgICAgICAgIH0KKyAgICApOworICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJh
dXRobi9yZXNvdXJjZXMvc2Vjb25kLWxheWVyLWZyYW1lLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNlcy9zZWNvbmQtbGF5ZXItZnJhbWUuaHR0cHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zY2YxNjMwZTQwZjRjZDFiNWFlYzNhYjZiYjlkYTQ0Y2NlZjM3NjI3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9yZXNv
dXJjZXMvc2Vjb25kLWxheWVyLWZyYW1lLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aWZyYW1l
IHNyYz0ibGFzdC1sYXllci1mcmFtZS5odHRwcy5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3Vy
Y2VzL3V0aWwuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNlcy91
dGlsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI3YjZmNGU4NDI0NDQ0YWU4NWY5MDdhNjVlMTMzYTUxOGEwZGRl
NTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3Jl
c291cmNlcy91dGlsLmpzCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIHJlY2VpdmVNZXNzYWdl
KGV2ZW50KSB7CisgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHBzOi8vbG9jYWxob3N0Ojg0
NDMiKSB7CisgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MgIikgIT09IC0xKQor
ICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICB9
IGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5l
eHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgIGZpbmlzaEpTVGVzdCgpOwor
fQorCitmdW5jdGlvbiBhc2NpaVRvVWludDhBcnJheShzdHIpCit7CisgICAgY29uc3QgY2hhcnMg
PSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkKKyAgICAgICAg
Y2hhcnMucHVzaChzdHIuY2hhckNvZGVBdChpKSk7CisgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5
KGNoYXJzKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL1dl
YkF1dGhOLmlkbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL1dlYkF1dGhOLmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MTg5ZWMzZmMzMDAyNzQxNzI0YmY1MWU1NGMwNGMxZDkwODAxZmVkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vV2ViQXV0aE4uaWRs
CkBAIC0wLDAgKzEsMTM1IEBACisvLyBDb3BpZWQgZnJvbSBodHRwczovL3d3dy53My5vcmcvVFIv
d2ViYXV0aG4vI2lkbC1pbmRleCBhcyBvZiA1IERlY2VtYmVyIDIwMTcKK1tTZWN1cmVDb250ZXh0
LCBFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBQdWJsaWNLZXlDcmVkZW50aWFsIDogQ3JlZGVu
dGlhbCB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJheUJ1ZmZlciAg
ICAgICAgICAgICAgcmF3SWQ7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBB
dXRoZW50aWNhdG9yUmVzcG9uc2UgICAgcmVzcG9uc2U7CisgICAgQXV0aGVudGljYXRpb25FeHRl
bnNpb25zIGdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKTsKK307CisKK3BhcnRpYWwgZGljdGlv
bmFyeSBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsKKyAgICBNYWtlUHVibGljS2V5Q3JlZGVu
dGlhbE9wdGlvbnMgICAgICBwdWJsaWNLZXk7Cit9OworCitwYXJ0aWFsIGRpY3Rpb25hcnkgQ3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zIHsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnMgICAgICBwdWJsaWNLZXk7Cit9OworCitwYXJ0aWFsIGludGVyZmFjZSBQdWJsaWNLZXlD
cmVkZW50aWFsIHsKKyAgICBzdGF0aWMgUHJvbWlzZSA8IGJvb2xlYW4gPiBpc1VzZXJWZXJpZnlp
bmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKTsKK307CisKK1tTZWN1cmVDb250ZXh0
LCBFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBBdXRoZW50aWNhdG9yUmVzcG9uc2UgeworICAg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgQXJyYXlCdWZmZXIgICAgICBjbGllbnRE
YXRhSlNPTjsKK307CisKK1tTZWN1cmVDb250ZXh0LCBFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFj
ZSBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSA6IEF1dGhlbnRpY2F0b3JSZXNwb25z
ZSB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJheUJ1ZmZlciAgICAg
IGF0dGVzdGF0aW9uT2JqZWN0OworfTsKKworW1NlY3VyZUNvbnRleHQsIEV4cG9zZWQ9V2luZG93
XQoraW50ZXJmYWNlIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSA6IEF1dGhlbnRpY2F0
b3JSZXNwb25zZSB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJheUJ1
ZmZlciAgICAgIGF1dGhlbnRpY2F0b3JEYXRhOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgQXJyYXlCdWZmZXIgICAgICBzaWduYXR1cmU7CisgICAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBBcnJheUJ1ZmZlciAgICAgIHVzZXJIYW5kbGU7Cit9OworCitkaWN0
aW9uYXJ5IFB1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzIHsKKyAgICByZXF1aXJlZCBQdWJs
aWNLZXlDcmVkZW50aWFsVHlwZSAgICAgIHR5cGU7CisgICAgcmVxdWlyZWQgQ09TRUFsZ29yaXRo
bUlkZW50aWZpZXIgICAgICBhbGc7Cit9OworCitkaWN0aW9uYXJ5IE1ha2VQdWJsaWNLZXlDcmVk
ZW50aWFsT3B0aW9ucyB7CisgICAgcmVxdWlyZWQgUHVibGljS2V5Q3JlZGVudGlhbFJwRW50aXR5
ICAgICAgICAgcnA7CisgICAgcmVxdWlyZWQgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkg
ICAgICAgdXNlcjsKKworICAgIHJlcXVpcmVkIEJ1ZmZlclNvdXJjZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhbGxlbmdlOworICAgIHJlcXVpcmVkIHNlcXVlbmNlPFB1YmxpY0tleUNy
ZWRlbnRpYWxQYXJhbWV0ZXJzPiAgcHViS2V5Q3JlZFBhcmFtczsKKworICAgIHVuc2lnbmVkIGxv
bmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ7CisgICAgc2VxdWVuY2U8
UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+ICAgICAgZXhjbHVkZUNyZWRlbnRpYWxzID0g
W107CisgICAgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhICAgICAgICAgICAgICAgYXV0
aGVudGljYXRvclNlbGVjdGlvbjsKKyAgICBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNl
ICAgICAgICAgICAgICBhdHRlc3RhdGlvbiA9ICJub25lIjsKKyAgICBBdXRoZW50aWNhdGlvbkV4
dGVuc2lvbnMgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zOworfTsKKworZGljdGlvbmFy
eSBQdWJsaWNLZXlDcmVkZW50aWFsRW50aXR5IHsKKyAgICByZXF1aXJlZCBET01TdHJpbmcgICAg
bmFtZTsKKyAgICBVU1ZTdHJpbmcgICAgICAgICAgICAgaWNvbjsKK307CisKK2RpY3Rpb25hcnkg
UHVibGljS2V5Q3JlZGVudGlhbFJwRW50aXR5IDogUHVibGljS2V5Q3JlZGVudGlhbEVudGl0eSB7
CisgICAgRE9NU3RyaW5nICAgICAgaWQ7Cit9OworCitkaWN0aW9uYXJ5IFB1YmxpY0tleUNyZWRl
bnRpYWxVc2VyRW50aXR5IDogUHVibGljS2V5Q3JlZGVudGlhbEVudGl0eSB7CisgICAgcmVxdWly
ZWQgQnVmZmVyU291cmNlICAgaWQ7CisgICAgcmVxdWlyZWQgRE9NU3RyaW5nICAgICAgZGlzcGxh
eU5hbWU7Cit9OworCitkaWN0aW9uYXJ5IEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSB7
CisgICAgQXV0aGVudGljYXRvckF0dGFjaG1lbnQgICAgICBhdXRoZW50aWNhdG9yQXR0YWNobWVu
dDsKKyAgICBib29sZWFuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVSZXNpZGVudEtleSA9
IGZhbHNlOworICAgIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCAgdXNlclZlcmlmaWNhdGlv
biA9ICJwcmVmZXJyZWQiOworfTsKKworZW51bSBBdXRoZW50aWNhdG9yQXR0YWNobWVudCB7Cisg
ICAgInBsYXRmb3JtIiwgICAgICAgLy8gUGxhdGZvcm0gYXR0YWNobWVudAorICAgICJjcm9zcy1w
bGF0Zm9ybSIgIC8vIENyb3NzLXBsYXRmb3JtIGF0dGFjaG1lbnQKK307CisKK2VudW0gQXR0ZXN0
YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZSB7CisgICAgIm5vbmUiLAorICAgICJpbmRpcmVjdCIs
CisgICAgImRpcmVjdCIKK307CisKK2RpY3Rpb25hcnkgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zIHsKKyAgICByZXF1aXJlZCBCdWZmZXJTb3VyY2UgICAgICAgICAgICAgICAgY2hh
bGxlbmdlOworICAgIHVuc2lnbmVkIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0
OworICAgIFVTVlN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICBycElkOworICAgIHNl
cXVlbmNlPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBhbGxvd0NyZWRlbnRpYWxzID0g
W107CisgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50ICAgICAgICAgIHVzZXJWZXJpZmlj
YXRpb24gPSAicHJlZmVycmVkIjsKKyAgICBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnMgICAgICAg
ICAgICAgZXh0ZW5zaW9uczsKK307CisKK3R5cGVkZWYgcmVjb3JkPERPTVN0cmluZywgYW55PiAg
ICAgICBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnM7CisKK2RpY3Rpb25hcnkgQ29sbGVjdGVkQ2xp
ZW50RGF0YSB7CisgICAgcmVxdWlyZWQgRE9NU3RyaW5nICAgICAgICAgICB0eXBlOworICAgIHJl
cXVpcmVkIERPTVN0cmluZyAgICAgICAgICAgY2hhbGxlbmdlOworICAgIHJlcXVpcmVkIERPTVN0
cmluZyAgICAgICAgICAgb3JpZ2luOworICAgIHJlcXVpcmVkIERPTVN0cmluZyAgICAgICAgICAg
aGFzaEFsZ29yaXRobTsKKyAgICBET01TdHJpbmcgICAgICAgICAgICAgICAgICAgIHRva2VuQmlu
ZGluZ0lkOworICAgIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9ucyAgICAgY2xpZW50RXh0ZW5zaW9u
czsKKyAgICBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnMgICAgIGF1dGhlbnRpY2F0b3JFeHRlbnNp
b25zOworfTsKKworZW51bSBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSB7CisgICAgInB1YmxpYy1r
ZXkiCit9OworCitkaWN0aW9uYXJ5IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yIHsKKyAg
ICByZXF1aXJlZCBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSAgICAgIHR5cGU7CisgICAgcmVxdWly
ZWQgQnVmZmVyU291cmNlICAgICAgICAgICAgICAgICBpZDsKKyAgICBzZXF1ZW5jZTxBdXRoZW50
aWNhdG9yVHJhbnNwb3J0PiAgICAgIHRyYW5zcG9ydHM7Cit9OworCitlbnVtIEF1dGhlbnRpY2F0
b3JUcmFuc3BvcnQgeworICAgICJ1c2IiLAorICAgICJuZmMiLAorICAgICJibGUiCit9OworCit0
eXBlZGVmIGxvbmcgQ09TRUFsZ29yaXRobUlkZW50aWZpZXI7CisKK2VudW0gVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50IHsKKyAgICAicmVxdWlyZWQiLAorICAgICJwcmVmZXJyZWQiLAorICAg
ICJkaXNjb3VyYWdlZCIKK307CisKK3R5cGVkZWYgc2VxdWVuY2U8QUFHVUlEPiAgICAgIEF1dGhl
bnRpY2F0b3JTZWxlY3Rpb25MaXN0OworCit0eXBlZGVmIEJ1ZmZlclNvdXJjZSAgICAgIEFBR1VJ
RDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9pZGwuaHR0cHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3ZGRiNGFhYzgwZDI0NjhjNDlkOWJlODU3NGI2MGUzMTBh
YTMwZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9p
ZGwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTUgQEAKK0Rlc2NyaXB0aW9uCisKK1Ro
aXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIFdlYkF1dGhO
IEFQSSBtYXRjaCB3aXRoIGl0cyBXZWJJREwgZGVmaW5pdGlvbi4KKworCitQQVNTIFNldHVwIGZv
ciBXZWJBdXRoTiBBUEkgSURMIHRlc3RzLiAKK1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBDcmVkZW50
aWFsIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBDcmVkZW50aWFsIGludGVyZmFjZSBv
YmplY3QgbmFtZSAKK1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgQ3JlZGVudGlhbCBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgaWQgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
dHlwZSAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFs
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVy
ZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BB
U1MgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkg
CitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmF3SWQgCitQ
QVNTIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVzcG9uc2UgCitQ
QVNTIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q2xpZW50RXh0
ZW5zaW9uUmVzdWx0cygpIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZTogb3Bl
cmF0aW9uIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpIAor
UEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgY3Jl
ZGVudGlhbCAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIGNyZWRlbnRpYWwgCitQQVNTIFB1Ymxp
Y0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlOiBjcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAicmF3SWQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFs
IGludGVyZmFjZTogY3JlZGVudGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlc3BvbnNlIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6
IGNyZWRlbnRpYWwgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRDbGllbnRFeHRlbnNpb25SZXN1
bHRzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGlu
dGVyZmFjZTogY3JlZGVudGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImlzVXNlclZlcmlmeWlu
Z1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGNyZWRlbnRpYWwgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJpZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNl
OiBjcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIEF1dGhlbnRpY2F0b3JSZXNwb25zZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBBdXRoZW50aWNhdG9yUmVz
cG9uc2UgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIEF1dGhlbnRpY2F0b3JSZXNwb25z
ZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIEF1dGhlbnRpY2F0b3JSZXNwb25zZSBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCAKK1BBU1MgQXV0aGVudGljYXRvclJlc3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9y
IiBwcm9wZXJ0eSAKK1BBU1MgQXV0aGVudGljYXRvclJlc3BvbnNlIGludGVyZmFjZTogYXR0cmli
dXRlIGNsaWVudERhdGFKU09OIAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25z
ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
IAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBpbnRlcmZhY2Ugb2JqZWN0
IGxlbmd0aCAKK1BBU1MgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgaW50ZXJmYWNl
IG9iamVjdCBuYW1lIAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCAKK1BBU1MgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAi
Y29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNw
b25zZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhdHRlc3RhdGlvbk9iamVjdCAKK1BBU1MgQXV0aGVu
dGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBj
cmVkZW50aWFsLnJlc3BvbnNlIAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgY3JlZGVudGlhbC5y
ZXNwb25zZSAKK1BBU1MgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgaW50ZXJmYWNl
OiBjcmVkZW50aWFsLnJlc3BvbnNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXR0ZXN0YXRpb25P
YmplY3QiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBBdXRoZW50aWNhdG9yUmVzcG9uc2Ug
aW50ZXJmYWNlOiBjcmVkZW50aWFsLnJlc3BvbnNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xp
ZW50RGF0YUpTT04iIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBBdXRoZW50aWNhdG9yQXNz
ZXJ0aW9uUmVzcG9uc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdCAKK1BBU1MgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlIGludGVy
ZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2Ug
aW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9u
c2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgCitQQVNTIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhdXRoZW50aWNhdG9yRGF0YSAKK1BBU1MgQXV0
aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlIGludGVyZmFjZTogYXR0cmlidXRlIHNpZ25hdHVy
ZSAKK1BBU1MgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlIGludGVyZmFjZTogYXR0cmli
dXRlIHVzZXJIYW5kbGUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL2lkbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0
dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQyYmNiZmQ3MjQ0N2FkYmRhODFjMDE4NWQzOTc1MDVlYWI2
NDA2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL2lk
bC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PXV0Zi04PgorICAgIDx0aXRsZT5JREwgY2hlY2sgb2Yg
V2ViQXV0aE48L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93d3cu
dzMub3JnL1RSL3dlYmF1dGhuLyNpZGwtaW5kZXgiPgorICAgIDxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0vcmVzb3VyY2Vz
L1dlYklETFBhcnNlci5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL2lk
bGhhcm5lc3MuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxoMSBjbGFzcz0iaW5zdHJ1Y3Rpb25z
Ij5EZXNjcmlwdGlvbjwvaDE+CisKKzxwIGNsYXNzPSJpbnN0cnVjdGlvbnMiPlRoaXMgdGVzdCB2
ZXJpZmllcyB0aGF0IHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIFdlYkF1dGhOIEFQSSBtYXRj
aCB3aXRoIGl0cyBXZWJJREwgZGVmaW5pdGlvbi48L3A+CisKKzxkaXYgaWQ9J2xvZyc+PC9kaXY+
CisKKzxzY3JpcHQ+Citwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgIGNvbnN0IGlkbFVS
TCA9IFsiV2ViQXV0aE4uaWRsIl07CisgICAgY29uc3QgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXko
KTsKKyAgICBjb25zdCBpZGxUZXh0ID0gYXdhaXQgZmV0Y2goaWRsVVJMKS50aGVuKHIgPT4gci50
ZXh0KCkpOworCisgICAgaWRsQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoImludGVyZmFjZSBBcnJh
eUJ1ZmZlciB7fTsiKTsKKworICAgIGlkbEFycmF5LmFkZF9pZGxzKGAKKyAgICAgICAgW0V4cG9z
ZWQ9V2luZG93LCBTZWN1cmVDb250ZXh0XQorICAgICAgICBpbnRlcmZhY2UgQ3JlZGVudGlhbCB7
CisgICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGlkOworICAgICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOworICAgICAgICB9OworICAgIGAp
OworICAgIGlkbEFycmF5LmFkZF9pZGxzKGlkbFRleHQpOworCisgICAgY29uc3Qgb3B0aW9ucyA9
IHsKKyAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICBycDogeworICAgICAgICAgICAg
ICAgIG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHVzZXI6
IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAg
ICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgZGlz
cGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNoYWxs
ZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgcHViS2V5Q3Jl
ZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICB9Cisg
ICAgfTsKKyAgICBjcmVkZW50aWFsID0gYXdhaXQgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0
ZShvcHRpb25zKTsKKworICAgIGlkbEFycmF5LmFkZF9vYmplY3RzKHsiUHVibGljS2V5Q3JlZGVu
dGlhbCI6IFsiY3JlZGVudGlhbCJdLCAiQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2Ui
OiBbImNyZWRlbnRpYWwucmVzcG9uc2UiXX0pOworICAgIGlkbEFycmF5LnRlc3QoKTsKK30sICJT
ZXR1cCBmb3IgV2ViQXV0aE4gQVBJIElETCB0ZXN0cy4iKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNy
ZWF0ZS1mYWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzQ3NjFmM2Y0YWMyMTJmZWZjMmM5MDdjYTFlZDBjZTcyOTk1NTI5
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2IEBACisKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB0
aW1lb3V0IAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIGEgbWlz
bWF0Y2hlZCBSUCBJRCAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0
aCBhbiBlbXB0eSBwdWJLZXlDcmVkUGFyYW1zIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tjcmVhdGVdXSB3aXRoIHVzZXIgY2FuY2VsbGF0aW9ucyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWls
dXJlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGU4ZTQx
OTc1YWExNGY1NWFkMjA4ZTIyN2RjMDdmNmJkYzEyYjc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1m
YWlsdXJlLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0
bGU+V2ViIEF1dGhlbnRpY2F0aW9uIEFQSTogUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRl
XV0gZmFpbHVyZSBjYXNlcy48L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAg
ICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAg
ICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgorICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAg
ICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICBpZDogYXNj
aWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFt
ZTogIkpvaG4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY2hhbGxlbmdl
OiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgcHViS2V5Q3Jl
ZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAg
ICAgIHRpbWVvdXQ6IDAsCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHJldHVy
biBwcm9taXNlX3JlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsCisgICAgICAgICAgICBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpKTsKKyAgICB9LCAiUHVibGljS2V5Q3Jl
ZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB0aW1lb3V0Iik7CisKKyAgICBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVi
bGljS2V5OiB7CisgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFt
ZTogImV4YW1wbGUuY29tIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6ICJleGFtcGxlLmNvbSIK
KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAg
ICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6
IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxh
eU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxs
ZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIHB1Yktl
eUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAiU2Vj
dXJpdHlFcnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9w
dGlvbnMpKTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBh
IG1pc21hdGNoZWQgUlAgSUQiKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cisg
ICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAg
ICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwK
KyAgICAgICAgICAgICAgICAgICAgaWQ6ICJsb2NhbGhvc3QiCisgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2hu
IEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgi
MTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwK
KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1Vp
bnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFsg
XSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VfcmVq
ZWN0cyh0LCAiTm90U3VwcG9ydGVkRXJyb3IiLAorICAgICAgICAgICAgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZShvcHRpb25zKSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2NyZWF0ZV1dIHdpdGggYW4gZW1wdHkgcHViS2V5Q3JlZFBhcmFtcyIpOworCisgICAgLy8gVGhp
cyB0ZXN0IGlzIHRhcmdldGluZyB0byB0aGUgZHVtbXkgYXV0aGVudGljYXRvciwgd2hpY2ggYWx3
YXlzIGNhbmNlbCB0aGUgb3BlcmF0aW9uCisgICAgLy8gd2hlbiB1c2VyLmRpc3BsYXlOYW1lID0g
IkpvaG4iLgorICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICAgIGNvbnN0IG9w
dGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDog
eworICAgICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAg
ICAgICAgaWQ6ICJsb2NhbGhvc3QiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisg
ICAgICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAg
ICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwK
KyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIs
IGFsZzogLTcgfV0sCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHJldHVybiBw
cm9taXNlX3JlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpKTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB1c2VyIGNhbmNlbGxhdGlvbnMiKTsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWNyZWF0ZS1zdWNjZXNzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy5odHRw
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E4Njg0MDZiNTgyZjUzNGM5ZDZhMmJiMTUxM2Vm
ZWRiOTQ3ZWQxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRl
XV0gd2l0aCBtaW5pbXVtIG9wdGlvbnMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyZWF0ZS1zdWNjZXNzLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGYzZWVmZjE3MzY3MjA3MDNl
MzRkNzdlZTc2MTFmNzAyYmU2ZjQ5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy5odHRw
cy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPldlYiBBdXRo
ZW50aWNhdGlvbiBBUEk6IFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHN1Y2Nlc3Mg
Y2FzZXMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisgICAgLy8gVGhlIGZvbGxvd2luZyB0ZXN0IGlzIHNwZWNpZmljYWxseSB0dW5lZCBm
b3IgY3VycmVudCBkdW1teSBhdXRoZW50aWNhdG9yLgorICAgIHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6
IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAibG9j
YWxob3N0IiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAg
ICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAg
ICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAg
ICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03
IH1dLAorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHJldHVybiBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24oY3JlZGVudGlhbCkg
eworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC5pZCwgJ193Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjcmVkZW50aWFsLnR5cGUsICdwdWJsaWMta2V5
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvSGV4U3RyaW5nKGNyZWRl
bnRpYWwucmF3SWQpLCAnZmYnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVz
VG9BU0NJSVN0cmluZyhjcmVkZW50aWFsLnJlc3BvbnNlLmNsaWVudERhdGFKU09OKSwgJ3sidHlw
ZSI6IndlYmF1dGhuLmNyZWF0ZSIsImNoYWxsZW5nZSI6Ik1USXpORFUyIiwib3JpZ2luIjoiaHR0
cHM6Ly9sb2NhbGhvc3Q6OTQ0MyIsImhhc2hBbGdvcml0aG0iOiJTSEEtMjU2In0nKTsKKyAgICAg
ICAgICAgICAgICAvLyBUaGlzIGZpZWxkIGlzIGNvbXBsZXRlbHkgZmFrZSAweDAwKjQzIHwgMHgw
MDAxZmYgfCBTSEEtMjU2IGhhc2ggb2YgdGhlIGNsaWVudERhdGFKU09OCisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvSGV4U3RyaW5nKGNyZWRlbnRpYWwucmVzcG9uc2UuYXR0
ZXN0YXRpb25PYmplY3QpLCAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxZmYzMzc0
Yjk4MzE2YjM4MDQ2NzI3YTc3MGI4ZTk1YzQ1ODBhMjkyYjllMmY0YmI0NGEyNTBhNTQwMmQ2ZDM3
ODNhJyk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X3Rocm93cygiTm90U3VwcG9ydGVkRXJyb3IiLCBjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lv
blJlc3VsdHMoKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCB7IH0KKyAgICAgICAgICAgIH0p
OworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1pbmltdW0g
b3B0aW9ucyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3Jlc291cmNlcy91dGlsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNzVlYjc4NDgxNWU2MzVjODg0YjM4NWRj
MzU3NmU4ZmMzMzlkOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcwpAQCAtMCwwICsxLDQ1IEBACitmdW5jdGlvbiBhc2Np
aVRvVWludDhBcnJheShzdHIpCit7CisgICAgdmFyIGNoYXJzID0gW107CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBzdHIubGVuZ3RoOyArK2kpCisgICAgICAgIGNoYXJzLnB1c2goc3RyLmNoYXJD
b2RlQXQoaSkpOworICAgIHJldHVybiBuZXcgVWludDhBcnJheShjaGFycyk7Cit9CisKKy8vIEJ1
aWxkcyBhIGhleCBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIGFuIGFycmF5LWxpa2UgaW5wdXQu
CisvLyAiYnl0ZXMiIGNhbiBiZSBhbiBBcnJheSBvZiBieXRlcywgYW4gQXJyYXlCdWZmZXIsIG9y
IGFueSBUeXBlZEFycmF5LgorLy8gVGhlIG91dHB1dCBsb29rcyBsaWtlIHRoaXM6CisvLyAgICBh
YjAzNGM5OQorZnVuY3Rpb24gYnl0ZXNUb0hleFN0cmluZyhieXRlcykKK3sKKyAgICBpZiAoIWJ5
dGVzKQorICAgICAgICByZXR1cm4gbnVsbDsKKworICAgIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXko
Ynl0ZXMpOworICAgIHZhciBoZXhCeXRlcyA9IFtdOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBieXRlcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgYnl0ZVN0cmluZyA9IGJ5dGVzW2ld
LnRvU3RyaW5nKDE2KTsKKyAgICAgICAgaWYgKGJ5dGVTdHJpbmcubGVuZ3RoIDwgMikKKyAgICAg
ICAgICAgIGJ5dGVTdHJpbmcgPSAiMCIgKyBieXRlU3RyaW5nOworICAgICAgICBoZXhCeXRlcy5w
dXNoKGJ5dGVTdHJpbmcpOworICAgIH0KKworICAgIHJldHVybiBoZXhCeXRlcy5qb2luKCIiKTsK
K30KKworZnVuY3Rpb24gYnl0ZXNUb0FTQ0lJU3RyaW5nKGJ5dGVzKQoreworICAgIHJldHVybiBT
dHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIG5ldyBVaW50OEFycmF5KGJ5dGVzKSk7Cit9
CisKK3ZhciBCYXNlNjRVUkwgPSB7CisgICAgc3RyaW5naWZ5OiBmdW5jdGlvbiAoYSkgeworICAg
ICAgICB2YXIgYmFzZTY0c3RyaW5nID0gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KDAs
IGEpKTsKKyAgICAgICAgcmV0dXJuIGJhc2U2NHN0cmluZy5yZXBsYWNlKC89L2csICIiKS5yZXBs
YWNlKC9cKy9nLCAiLSIpLnJlcGxhY2UoL1wvL2csICJfIik7CisgICAgfSwKKyAgICBwYXJzZTog
ZnVuY3Rpb24gKHMpIHsKKyAgICAgICAgcyA9IHMucmVwbGFjZSgvLS9nLCAiKyIpLnJlcGxhY2Uo
L18vZywgIi8iKS5yZXBsYWNlKC9ccy9nLCAnJyk7CisgICAgICAgIHJldHVybiBuZXcgVWludDhB
cnJheShBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoYXRvYihzKSwgZnVuY3Rpb24gKGMpIHsgcmV0
dXJuIGMuY2hhckNvZGVBdCgwKSB9KSk7CisgICAgfQorfTsK
</data>
<flag name="review"
          id="350935"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331968</attachid>
            <date>2018-01-22 15:02:40 -0800</date>
            <delta_ts>2018-01-22 15:47:24 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-181928-20180122150240.patch</filename>
            <type>text/plain</type>
            <size>102541</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEwZjBkZmQ3Zjg4ZTc0
NDA3MTUzMzUzYTNjMTNhODY5ZTAwNzgzMS4uMjFjNmYxMzc1YjQyZjQzOTU4OThhOGNiNTFkMzlm
YmU4MWY0Mzg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDE4LTAxLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBs
ZW1lbnQgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbQ3JlYXRlXV0gd2l0aCBhIGR1bW15IGF1dGhl
bnRpY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MTkyOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY0NTk4OTM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMg
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbQ3JlYXRlXV0gZnJvbSBodHRwczovL3d3dy53My5vcmcv
VFIvd2ViYXV0aG4vI2NyZWF0ZUNyZWRlbnRpYWwKKyAgICAgICAgYXMgb2YgNSBEZWNlbWJlciAy
MDE3LiBJbiBvcmRlciB0byBkbyB0ZXN0aW5nLCBhIGR1bW15IGF1dGhlbnRpY2F0b3IgaXMgaW1w
bGVtZW50ZWQgdG8gZXhlcmNpc2UgYSBmYWlsdXJlCisgICAgICAgIGFuZCBhIHBhc3MgcGF0aC4g
QSBudW1iZXIgb2YgZGVwZW5kZW5jaWVzIG5lZWQgdG8gYmUgcmVzb2x2ZWQgbGF0ZXIgaW4gb3Jk
ZXIgdG8gY29tcGx5IHdpdGggdGhlIHNwZWMuCisgICAgICAgIEFsc28sIHRoZSBjdXJyZW50IGFy
Y2hpdGVjdHVyZSBvZiBoYW5kbGluZyBhc3luYyBXZWJBdXRoTiBvcGVyYXRpb25zIGluY2x1ZGlu
ZyBkaXNwYXRjaGluZywgdGltZW91dCwgYW5kIGFib3J0aW5nCisgICAgICAgIG1pZ2h0IG5lZWQg
YSByZWRlc2lnbiBvbmNlIHRoZSB1bmRlcmx5aW5nIGF1dGhlbnRpY2F0b3IgaXMgY2xlYXIuIFNp
bmNlIHRoaXMgaXMgb3VyIGZpcnN0IGF0dGVtcHQgdG8gaW1wbGVtZW50CisgICAgICAgIGEgcHJv
dG90eXBlLCBhbGwgdGhvc2UgbGltaXRhdGlvbnMsIGluIG15IG9waW5pb24sIGNhbiBiZSBtYXJr
ZWQgYXMgbm9uLWJsb2NraW5nIHRvIGFjY2VsZXJhdGUgdGhlIHdob2xlCisgICAgICAgIHByb2Nl
c3MuIFRob3NlIGxpbWl0YXRpb25zIHdpbGwgdGhlbiBiZSBhZGRyZXNzZWQgb25jZSB0aGUgZmly
c3QgcHJvdG90eXBlIGlzIGZpbnNoZWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS13aXRoLWludmFsaWQtcGFyYW1ldGVy
cy5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBzLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNh
bWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
d3B0L3dlYmF1dGhuL2lkbC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0
ZS1zdWNjZXNzLmh0dHBzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlhbG1hbmFn
ZW1lbnQvQmFzaWNDcmVkZW50aWFsLmg6CisgICAgICAgICogTW9kdWxlcy9jcmVkZW50aWFsbWFu
YWdlbWVudC9CYXNpY0NyZWRlbnRpYWwuaWRsOgorICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlh
bG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3JlZGVudGlhbHNDb250YWluZXI6OlBlbmRpbmdQcm9taXNlOjpQZW5kaW5nUHJvbWlzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6ZGlzcGF0Y2hUYXNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3JlZGVudGlhbHNDb250YWluZXI6OmlzQ3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRp
YWxzQ29udGFpbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6
UGVuZGluZ1Byb21pc2U6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRvcjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3I6Om1ha2VD
cmVkZW50aWFsIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0
b3IuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmguCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjphdXRoZW50aWNhdG9yRGF0YSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OnNpZ25h
dHVyZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVz
cG9uc2U6OnVzZXJIYW5kbGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ckFzc2VydGlvblJlc3BvbnNlOjp+QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6
YXV0aGVudGljYXRvckRhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlOjpzaWduYXR1cmUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjp1c2VySGFuZGxlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNl
OjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjp+QXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmg6
CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2U6OmNsaWVudERhdGFK
U09OIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZTo6fkF1
dGhlbnRpY2F0b3JSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50
aWNhdG9yUmVzcG9uc2U6OmNsaWVudERhdGFKU09OKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHVibGlj
S2V5Q3JlZGVudGlhbEludGVybmFsOjpwcm9kdWNlQ2xpZW50RGF0YUpzb24pOgorICAgICAgICAo
V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbEludGVybmFsOjpwcm9kdWNlQ2xpZW50RGF0YUpz
b25IYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxJbnRlcm5hbDo6
Z2V0SWRGcm9tQXR0ZXN0YXRpb25PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5
Q3JlZGVudGlhbDo6UHVibGljS2V5Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbDo6cmF3SWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbDo6cmVzcG9uc2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbDo6Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpyYXdJZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpyZXNwb25zZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpnZXRDbGllbnRFeHRlbnNpb25S
ZXN1bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWwuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5pZGw6CisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9t
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50
aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5jcHAuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3
bHlDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwLgorICAgICAgICAo
V2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorCiAyMDE4LTAxLTE4
ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgYnVpbGQgZml4LCByZW1vdmVkIHVudXNlZCBsYW1iZGEgY2FwdHVyZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWNDcmVkZW50
aWFsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2lj
Q3JlZGVudGlhbC5oCmluZGV4IDc3NjBiZWE3MzE4ZTY5ZmNiNzM2OWJmNWI4MGY2YTBmODFhMjZk
YzIuLmQ3ZGI0MWI0YzFmODhhZTdkZWFhMDY4ZDg3MjNjYTU1YjFkNzU1MjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWNDcmVkZW50
aWFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9C
YXNpY0NyZWRlbnRpYWwuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVHlwZUNhc3Rz
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQxLDE1ICs0MiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIFJlbW90ZSwKICAgICB9Owog
CisgICAgQmFzaWNDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYsIFR5cGUsIERpc2NvdmVyeSk7CiAg
ICAgdmlydHVhbCB+QmFzaWNDcmVkZW50aWFsKCk7CiAKKyAgICB2aXJ0dWFsIFR5cGUgY3JlZGVu
dGlhbFR5cGUoKSBjb25zdCA9IDA7CisKICAgICBjb25zdCBTdHJpbmcmIGlkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZDsgfQogICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CiAgICAgRGlzY292ZXJ5IGRp
c2NvdmVyeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzY292ZXJ5OyB9CiAKLXByb3RlY3RlZDoKLSAg
ICBCYXNpY0NyZWRlbnRpYWwoY29uc3QgU3RyaW5nJiwgVHlwZSwgRGlzY292ZXJ5KTsKLQogcHJp
dmF0ZToKICAgICBTdHJpbmcgbV9pZDsKICAgICBUeXBlIG1fdHlwZTsKQEAgLTU3LDMgKzU4LDgg
QEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2RlZmluZSBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0JBU0lDX0NSRURFTlRJQUwoVG9DbGFzc05hbWUsIFR5cGUpIFwK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6VG9DbGFzc05hbWUpIFwKKyAg
ICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6QmFzaWNDcmVkZW50aWFsJiBjcmVk
ZW50aWFsKSB7IHJldHVybiBjcmVkZW50aWFsLmNyZWRlbnRpYWxUeXBlKCkgPT0gV2ViQ29yZTo6
VHlwZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2ljQ3JlZGVudGlhbC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2ljQ3Jl
ZGVudGlhbC5pZGwKaW5kZXggZjIzZWQyZjAzZmUyODVlMTEyNTg0OWE5M2RmN2MzYWQ2MWIyYTI0
Zi4uYTUwYzk0ZWJiMWIzM2NkODNkNTQ3YmIzZWYwOTViN2I2OTYwNTZkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9CYXNpY0NyZWRlbnRp
YWwuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
QmFzaWNDcmVkZW50aWFsLmlkbApAQCAtMjUsNiArMjUsNyBAQAogCiBbCiAgICAgSW50ZXJmYWNl
TmFtZT1DcmVkZW50aWFsLAorICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJBdXRoZW50aWNhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTZWN1cmVD
b250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5h
Z2VtZW50L0NyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCmluZGV4
IDFiNDAxZWY1YTdmNjUxYzk5OWY3MzBiYjNiNmRjMTM1YTkyN2FlYzQuLjM3NzVkZGEwODA2MzA0
ODgwZGNlYTM5YjlhODk2YjE0MjIxYmIyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucy5oCkBAIC0zMiw4ICszMiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgQWJvcnRTaWduYWw7Ci0KIHN0cnVjdCBDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zIHsKICAgICBSZWZQdHI8QWJvcnRTaWduYWw+IHNpZ25hbDsKICAgICBzdGQ6Om9wdGlvbmFs
PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+IHB1YmxpY0tleTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlh
bHNDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdl
bWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHAKaW5kZXggOWVjMzg1OGUwMTNmZDViNzRiYTAx
YzFkNDkwNWFmMGMyMWJjNDUzMy4uM2ZhZDc1YWQwZDNkOTYzMmZmYjE3OGIwN2EzODljMThmOTgy
M2YyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdl
bWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHAKQEAgLTM1LDE1
ICszNSwyOSBAQAogI2luY2x1ZGUgIkpTQmFzaWNDcmVkZW50aWFsLmgiCiAjaW5jbHVkZSAiUHVi
bGljS2V5Q3JlZGVudGlhbC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitDcmVkZW50aWFs
c0NvbnRhaW5lcjo6UGVuZGluZ1Byb21pc2U6OlBlbmRpbmdQcm9taXNlKFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSwgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiYmIHRpbWVyKQorICAgIDog
cHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQorICAgICwgdGltZXIoV1RGTW92ZSh0aW1lcikpCit7
Cit9CisKK0NyZWRlbnRpYWxzQ29udGFpbmVyOjpQZW5kaW5nUHJvbWlzZTo6UGVuZGluZ1Byb21p
c2UoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQorICAgIDogcHJvbWlzZShXVEZNb3Zl
KHByb21pc2UpKQoreworfQorCiBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Q3JlZGVudGlhbHNDb250
YWluZXIoV2Vha1B0cjxEb2N1bWVudD4mJiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQoV1RG
TW92ZShkb2N1bWVudCkpCiAgICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29t
LmFwcGxlLldlYktpdC5DcmVkZW50aWFsUXVldWUiKSkKIHsKIH0KIAorLy8gVGhlIGZvbGxvd2lu
ZyBpbXBsZW1lbnRzIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtY3JlZGVudGlhbC1t
YW5hZ2VtZW50LyNzYW1lLW9yaWdpbi13aXRoLWl0cy1hbmNlc3RvcnMKKy8vIGFzIG9mIDE0IE5v
dmVtYmVyIDIwMTcuCiBib29sIENyZWRlbnRpYWxzQ29udGFpbmVyOjpkb2VzSGF2ZVNhbWVPcmln
aW5Bc0l0c0FuY2VzdG9ycygpCiB7CiAgICAgaWYgKCFtX2RvY3VtZW50KQpAQCAtNTcsMjEgKzcx
LDUwIEBAIGJvb2wgQ3JlZGVudGlhbHNDb250YWluZXI6OmRvZXNIYXZlU2FtZU9yaWdpbkFzSXRz
QW5jZXN0b3JzKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorLy8gRklYTUU6IFNpbmNlIHRoZSB1
bmRlcmx5aW5nIGF1dGhlbnRpY2F0b3IgbW9kZWwgaXMgbm90IGNsZWFyIGF0IHRoaXMgbW9tZW50
LCB0aGUgdGltZXIgaXMgbW92ZWQgdG8gQ3JlZGVudGlhbHNDb250YWluZXIgc3VjaCB0aGF0Cisv
LyB0aW1lciBjYW4gc3RheSB3aXRoIG1haW4gdGhyZWFkIGFuZCB0aGVyZWZvcmUgY2FuIGVhc2ls
eSB0aW1lIG91dCBhY3Rpdml0aWVzIG9uIHRoZSB3b3JrIHF1ZXVlLgorLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTk0Ni4KKy8vIEZJWE1FOiBUaGUgdXNhZ2Vz
IG9mIEFib3J0U2lnbmFsIGFyZSBhbHNvIG1vdmVkIGhlcmUgZm9yIHRoZSB2ZXJ5IHNhbWUgcmVh
c29uLiBBbHNvIHRoZSBBYm9ydFNpZ25hbCBpcyBraW5kIG9mIGJvZ3VzIGF0IHRoaXMgbW9tZW50
CisvLyBzaW5jZSBpdCBkb2Vzbid0IHN1cHBvcnQgb2JzZXJ2ZXJzIChvciBvdGhlciBtZWFucykg
dG8gdHJpZ2dlciB0aGUgYWN0dWFsIGFib3J0IGFjdGlvbi4gRW5oYW5jZW1lbnQgdG8gQWJvcnRT
aWduYWwgaXMgbmVlZGVkLgorLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MTk0NS4KIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGU+Ci12b2lkIENyZWRl
bnRpYWxzQ29udGFpbmVyOjpkaXNwYXRjaFRhc2soT3BlcmF0aW9uVHlwZSYmIG9wZXJhdGlvbiwg
UmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQordm9pZCBDcmVkZW50aWFsc0NvbnRhaW5l
cjo6ZGlzcGF0Y2hUYXNrKE9wZXJhdGlvblR5cGUmJiBvcGVyYXRpb24sIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZCBsb25nPiB0aW1lT3V0SW5N
cykKIHsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmICghbV9kb2N1bWVudCkK
KyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byogcHJvbWlzZUluZGV4ID0gcHJvbWlzZS5wdHIo
KTsKLSAgICBtX3BlbmRpbmdQcm9taXNlcy5hZGQocHJvbWlzZUluZGV4LCBXVEZNb3ZlKHByb21p
c2UpKTsKICAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsKLSAgICBhdXRvIHRhc2sgPSBbcHJvbWlzZUluZGV4LCB3ZWFrVGhpcywgaXNTYW1l
T3JpZ2luV2l0aEl0c0FuY2VzdG9ycyA9IGRvZXNIYXZlU2FtZU9yaWdpbkFzSXRzQW5jZXN0b3Jz
KCksIG9wZXJhdGlvbiA9IFdURk1vdmUob3BlcmF0aW9uKV0gKCkgewotICAgICAgICBhdXRvIHJl
c3VsdCA9IG9wZXJhdGlvbihpc1NhbWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IHRyaW0gdGltZU91dEluTXMgdG8gc29tZSBtYXggYWxs
b3dhYmxlIG51bWJlci4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgxOTQ3CisgICAgaWYgKHRpbWVPdXRJbk1zKSB7CisgICAgICAgIGF1dG8gcGVuZGlu
Z1Byb21pc2UgPSBQZW5kaW5nUHJvbWlzZTo6Y3JlYXRlKFdURk1vdmUocHJvbWlzZSksIHN0ZDo6
bWFrZV91bmlxdWU8VGltZXI+KFtwcm9taXNlSW5kZXgsIHdlYWtUaGlzXSAoKSB7CisgICAgICAg
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKSB7
CisgICAgICAgICAgICAgICAgLy8gQSBsb2NrIHNob3VsZCBub3QgYmUgbmVlZGVkIGFzIGFsbCBj
YWxsYmFja3MgYXJlIGV4ZWN1dGVkIGluIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgICAgICAg
ICBpZiAoYXV0byBwcm9taXNlID0gd2Vha1RoaXMtPm1fcGVuZGluZ1Byb21pc2VzLnRha2UocHJv
bWlzZUluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgcHJvbWlzZS52YWx1ZSgpLT5wcm9taXNl
LT5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICAgICAgfQor
ICAgICAgICB9KSk7CisgICAgICAgIHBlbmRpbmdQcm9taXNlLT50aW1lci0+c3RhcnRPbmVTaG90
KFNlY29uZHModGltZU91dEluTXMudmFsdWUoKSAvIDEwMDAuMCkpOworICAgICAgICBtX3BlbmRp
bmdQcm9taXNlcy5hZGQocHJvbWlzZUluZGV4LCBXVEZNb3ZlKHBlbmRpbmdQcm9taXNlKSk7Cisg
ICAgfSBlbHNlCisgICAgICAgIG1fcGVuZGluZ1Byb21pc2VzLmFkZChwcm9taXNlSW5kZXgsIFBl
bmRpbmdQcm9taXNlOjpjcmVhdGUoV1RGTW92ZShwcm9taXNlKSkpOworCisgICAgYXV0byB0YXNr
ID0gW3Byb21pc2VJbmRleCwgd2Vha1RoaXMsIG9yaWdpbiA9IG1fZG9jdW1lbnQtPnNlY3VyaXR5
T3JpZ2luKCkuaXNvbGF0ZWRDb3B5KCksIGlzU2FtZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMgPSBk
b2VzSGF2ZVNhbWVPcmlnaW5Bc0l0c0FuY2VzdG9ycygpLCBvcGVyYXRpb24gPSBXVEZNb3ZlKG9w
ZXJhdGlvbildICgpIHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBvcGVyYXRpb24ob3JpZ2luLCBp
c1NhbWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
cHJvbWlzZUluZGV4LCB3ZWFrVGhpcywgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSAoKSBtdXRh
YmxlIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAgICAgICAgICAgIC8vIEEg
bG9jayBzaG91bGQgbm90IGJlIG5lZWRlZCBhcyBhbGwgY2FsbGJhY2tzIGFyZSBleGVjdXRlZCBp
biB0aGUgbWFpbiB0aHJlYWQuCiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IHdl
YWtUaGlzLT5tX3BlbmRpbmdQcm9taXNlcy50YWtlKHByb21pc2VJbmRleCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHByb21pc2UudmFsdWUoKS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkp
OwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBwcm9t
aXNlLnZhbHVlKCktPnJlc29sdmU8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPEJhc2ljQ3JlZGVu
dGlhbD4+PihyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkuZ2V0KCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgcHJvbWlzZS52YWx1ZSgpLT5wcm9taXNlLT5yZWplY3QocmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IEdvdCBzb21lIGNyYXp5IGNvbXBpbGUgZXJyb3Igd2hlbiBJ
IHdhcyB0cnlpbmcgdG8gcGFzcyBSSFMgdG8gdGhlIHJlc29sdmUgbWV0aG9kLgorICAgICAgICAg
ICAgICAgICAgICAgICAgUmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4gY3JlZGVudGlhbCA9IHJlc3Vs
dC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb21pc2Uu
dmFsdWUoKS0+cHJvbWlzZS0+cmVzb2x2ZTxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8QmFzaWND
cmVkZW50aWFsPj4+KGNyZWRlbnRpYWwuZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9KTsKQEAgLTk5LDEwICsx
NDIsMTAgQEAgdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KENyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFAKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGF1dG8gb3BlcmF0aW9uID0gW29wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpXSAoYm9v
bCBpc1NhbWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKSB7Ci0gICAgICAgIHJldHVybiBQdWJsaWNL
ZXlDcmVkZW50aWFsOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShvcHRpb25zLCBpc1NhbWVP
cmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKKyAgICBhdXRvIG9wZXJhdGlvbiA9IFtvcHRpb25zID0g
V1RGTW92ZShvcHRpb25zKV0gKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGJvb2wgaXNT
YW1lT3JpZ2luV2l0aEl0c0FuY2VzdG9ycykgeworICAgICAgICByZXR1cm4gUHVibGljS2V5Q3Jl
ZGVudGlhbDo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2Uob3JpZ2luLCBvcHRpb25zLCBpc1Nh
bWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKICAgICB9OwotICAgIGRpc3BhdGNoVGFzayhXVEZN
b3ZlKG9wZXJhdGlvbiksIFdURk1vdmUocHJvbWlzZSkpOworICAgIGRpc3BhdGNoVGFzayhXVEZN
b3ZlKG9wZXJhdGlvbiksIFdURk1vdmUocHJvbWlzZSksIG9wdGlvbnMucHVibGljS2V5LT50aW1l
b3V0KTsKIH0KIAogdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6c3RvcmUoY29uc3QgQmFzaWND
cmVkZW50aWFsJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQpAQCAtMTEyLDYgKzE1
NSw4IEBAIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OnN0b3JlKGNvbnN0IEJhc2ljQ3JlZGVu
dGlhbCYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYKIAogdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5l
cjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKKyAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVu
dHMgaHR0cHM6Ly93d3cudzMub3JnL1RSL2NyZWRlbnRpYWwtbWFuYWdlbWVudC0xLyNhbGdvcml0
aG0tY3JlYXRlIGFzIG9mIDQgQXVndXN0IDIwMTcKKyAgICAvLyB3aXRoIGVuaGFuY2VtZW50IGZy
b20gMTQgTm92ZW1iZXIgMjAxNyBFZGl0b3IncyBEcmFmdC4KICAgICAvLyBGSVhNRTogT3B0aW9u
YWwgb3B0aW9ucyBhcmUgcGFzc2VkIHdpdGggbm8gY29udGVudHMuIEl0IHNob3VsZCBiZSBzdGQ6
Om9wdGlvbmFsLgogICAgIGlmICgoIW9wdGlvbnMuc2lnbmFsICYmICFvcHRpb25zLnB1YmxpY0tl
eSkgfHwgIW1fZG9jdW1lbnQpIHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yIH0pOwpAQCAtMTIxLDIzICsxNjYsMjUgQEAgdm9pZCBDcmVkZW50
aWFsc0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlv
bnMsIFJlZjxEZWYKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJy
b3IgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgLy8gU3RlcCAxLTIuCiAgICAgQVNT
RVJUKG1fZG9jdW1lbnQtPmlzU2VjdXJlQ29udGV4dCgpKTsKIAotICAgIC8vIFRoaXMgaXMgYSBz
aG9ydGN1dCB0byBodHRwczovL3d3dy53My5vcmcvVFIvY3JlZGVudGlhbC1tYW5hZ2VtZW50LTEv
I2NyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy1yZWxldmFudC1jcmVkZW50aWFsLWludGVyZmFjZS1v
YmplY3RzLAotICAgIC8vIGFzIHdlIG9ubHkgc3VwcG9ydCBvbmUga2luZCBvZiBjcmVkZW50aWFs
cy4KKyAgICAvLyBTdGVwIDMtNC4gU2hvcnRjdXQgYXMgd2Ugb25seSBzdXBwb3J0IG9uZSBraW5k
IG9mIGNyZWRlbnRpYWxzLgogICAgIGlmICghb3B0aW9ucy5wdWJsaWNLZXkpIHsKICAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBvcGVyYXRpb24gPSBbb3B0aW9ucyA9IFdURk1v
dmUob3B0aW9ucyldIChib29sIGlzU2FtZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMpIHsKKyAgICBh
dXRvIHRpbWVvdXQgPSBvcHRpb25zLnB1YmxpY0tleS0+dGltZW91dDsKKyAgICAvLyBTdGVwIDUt
Ny4KKyAgICBhdXRvIG9wZXJhdGlvbiA9IFtvcHRpb25zID0gV1RGTW92ZShvcHRpb25zLnB1Ymxp
Y0tleS52YWx1ZSgpKV0gKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGJvb2wgaXNTYW1l
T3JpZ2luV2l0aEl0c0FuY2VzdG9ycykgewogICAgICAgICAvLyBTaG9ydGN1dCBhcyB3ZWxsLgot
ICAgICAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVudGlhbDo6Y3JlYXRlKG9wdGlvbnMsIGlzU2Ft
ZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMpOworICAgICAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVu
dGlhbDo6Y3JlYXRlKG9yaWdpbiwgb3B0aW9ucywgaXNTYW1lT3JpZ2luV2l0aEl0c0FuY2VzdG9y
cyk7CiAgICAgfTsKLSAgICBkaXNwYXRjaFRhc2soV1RGTW92ZShvcGVyYXRpb24pLCBXVEZNb3Zl
KHByb21pc2UpKTsKKyAgICBkaXNwYXRjaFRhc2soV1RGTW92ZShvcGVyYXRpb24pLCBXVEZNb3Zl
KHByb21pc2UpLCBvcHRpb25zLnB1YmxpY0tleS0+dGltZW91dCk7CiB9CiAKLXZvaWQgQ3JlZGVu
dGlhbHNDb250YWluZXI6OnByZXZlbnRTaWxlbnRBY2Nlc3MoUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKQordm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6cHJldmVudFNpbGVudEFjY2Vz
cyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAgcHJvbWlzZS0+
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0Nv
bnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9D
cmVkZW50aWFsc0NvbnRhaW5lci5oCmluZGV4IDM5MzFiOGRkM2ExYzkzMjAzNGMyZDM3NWNjYTgx
NjdmZTI5YWY3YmMuLmM5ZDM3MTM0MDliNWZiZWM5ODUzYTA1ZTFhOTI3ZTRiNTYwNjJiMmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3Jl
ZGVudGlhbHNDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRp
YWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRl
ICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTUwLDE5ICs1MSw0MCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGlzQ3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmJiwg
UmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAKLSAgICB2b2lkIHByZXZlbnRTaWxlbnRBY2Nlc3Mo
UmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBwcmV2ZW50U2lsZW50QWNjZXNzKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIENyZWRlbnRpYWxz
Q29udGFpbmVyKFdlYWtQdHI8RG9jdW1lbnQ+JiYpOwogCiAgICAgYm9vbCBkb2VzSGF2ZVNhbWVP
cmlnaW5Bc0l0c0FuY2VzdG9ycygpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5
cGU+Ci0gICAgdm9pZCBkaXNwYXRjaFRhc2soT3BlcmF0aW9uVHlwZSYmLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmKTsKKyAgICB2b2lkIGRpc3BhdGNoVGFzayhPcGVyYXRpb25UeXBlJiYsIFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYsIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQgbG9uZz4gdGltZU91dElu
TXMgPSBzdGQ6Om51bGxvcHQpOwogCiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsK
LSAgICBIYXNoTWFwPERlZmVycmVkUHJvbWlzZSosIFJlZjxEZWZlcnJlZFByb21pc2U+PiBtX3Bl
bmRpbmdQcm9taXNlczsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3dvcmtRdWV1ZTsKICAgICBXZWFr
UHRyRmFjdG9yeTxDcmVkZW50aWFsc0NvbnRhaW5lcj4gbV93ZWFrUHRyRmFjdG9yeTsKKworICAg
IC8vIEJ1bmRsZSBwcm9taXNlIGFuZCB0aW1lciwgc3VjaCB0aGF0IHRoZSB0aW1lciBjYW4KKyAg
ICAvLyB0aW1lcyBvdXQgdGhlIGNvcnJlc3BvbmRpbmcgcHJvbXNpZS4KKyAgICBzdHJ1Y3QgUGVu
ZGluZ1Byb21pc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxQZW5kaW5nUHJvbWlzZT4geworICAgICAg
ICBzdGF0aWMgUmVmPFBlbmRpbmdQcm9taXNlPiBjcmVhdGUoUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlLCBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+JiYgdGltZXIpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBlbmRpbmdQcm9taXNlKFdURk1vdmUocHJv
bWlzZSksIFdURk1vdmUodGltZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIFJlZjxQ
ZW5kaW5nUHJvbWlzZT4gY3JlYXRlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVuZGluZ1Byb21pc2Uo
V1RGTW92ZShwcm9taXNlKSkpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBQ
ZW5kaW5nUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8VGlt
ZXI+JiYpOworICAgICAgICBQZW5kaW5nUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsK
KworICAgIHB1YmxpYzoKKyAgICAgICAgUmVmPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZTsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiB0aW1lcjsKKyAgICB9OworICAgIEhhc2hNYXA8
RGVmZXJyZWRQcm9taXNlKiwgUmVmPFBlbmRpbmdQcm9taXNlPj4gbV9wZW5kaW5nUHJvbWlzZXM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDFlOGUzMTFiYzZk
N2E0MjI3OWNmODcyN2U4MzM2YzhkNTBjYjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yLmNwcApAQCAtMCwwICsxLDU2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0
b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBdXRoZW50aWNhdG9yJiBBdXRoZW50aWNh
dG9yOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdXRoZW50aWNh
dG9yPiBhdXRoZW50aWNhdG9yOworICAgIHJldHVybiBhdXRoZW50aWNhdG9yOworfQorCitFeGNl
cHRpb25PcjxWZWN0b3I8dWludDhfdD4+IEF1dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9uczo6UnBFbnRpdHkmLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zOjpVc2VyRW50aXR5JiB1c2VyLCBjb25zdCBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4mLCBjb25zdCBWZWN0b3I8UHVibGljS2V5Q3Jl
ZGVudGlhbERlc2NyaXB0b3I+JikgY29uc3QKK3sKKyAgICAvLyBUaGUgZm9sbG93aW5ncyBpcyBq
dXN0IGEgZHVtbXkgaW1wbGVtZW50YWlvbiB0byBzdXBwb3J0IGluaXRpYWwgZGV2ZWxvcG1lbnQu
CisgICAgLy8gVXNlciBjYW5jZWxsYXRpb24gaXMgZWZmZWNpdmVseSBOb3RBbGxvd2VkRXJyb3Iu
CisgICAgaWYgKHVzZXIuZGlzcGxheU5hbWUgPT0gIkpvaG4iKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07CisKKyAgICAvLyBGaWxsIGFsbCBwYXJ0cyBiZWZv
cmUgQ3JlZGVudGlhbElEIHdpdGggMHgwMAorICAgIFZlY3Rvcjx1aW50OF90PiBhdHRlc3RhdGlv
bk9iamVjdCg0MywgMHgwMCk7CisgICAgLy8gRmlsbCBsZW5ndGggb2YgQ3JlZGVudGlhbElEOiAx
IEJ5dGUKKyAgICBhdHRlc3RhdGlvbk9iamVjdC5hcHBlbmQoMHgwMCk7CisgICAgYXR0ZXN0YXRp
b25PYmplY3QuYXBwZW5kKDB4MDEpOworICAgIC8vIEZpbGwgQ3JlZGVudGlhbElEOiAyNTUKKyAg
ICBhdHRlc3RhdGlvbk9iamVjdC5hcHBlbmQoMHhmZik7CisgICAgLy8gQXBwZW5kIGNsaWVudERh
dGFKc29uSGFzaAorICAgIGF0dGVzdGF0aW9uT2JqZWN0LmFwcGVuZFZlY3RvcihoYXNoKTsKKyAg
ICByZXR1cm4gV1RGTW92ZShhdHRlc3RhdGlvbk9iamVjdCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGI2MGFiZmQyNzE0ZGQwN2Q1NTUxMzdmMzQ5ZWQ2ZmUwMjE0YTE2
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworLy8gRklYTUU6IENvbnNpZGVyIG1vdmluZyBhbGwgc3RhdGlj
IG1ldGhvZHMgZnJvbSBQdWJsaWNLZXlDcmVkZW50aWFsIHRvIGhlcmUgYW5kIG1ha2luZyB0aGlz
CisvLyBhcyBhbiBhdXRoZW50aWNhdG9yIG1hbmFnZXIgdGhhdCBjb250cm9scyBhbGwgYXV0aGVu
dGljYXRvciBhY3Rpdml0aWVzLCBtb3N0bHkgbGlrZWx5IGFzbnljCisvLyBmb3IgYXR0ZXN0YXRp
b25zLgorY2xhc3MgQXV0aGVudGljYXRvciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXV0
aGVudGljYXRvcik7CisgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPEF1dGhlbnRpY2F0
b3I+OworcHVibGljOgorICAgIHN0YXRpYyBBdXRoZW50aWNhdG9yJiBzaW5nbGV0b24oKTsKKwor
ICAgIC8vIE9taXQgcmVxdWlyZVJlc2lkZW50S2V5LCByZXF1aXJlVXNlclByZXNlbmNlLCBhbmQg
cmVxdWlyZVVzZXJWZXJpZmljYXRpb24gYXMgd2UgYWx3YXlzIHByb3ZpZGUgcmVzaWRlbnQga2V5
cyBhbmQgcmVxdWlyZSB1c2VyIHZlcmlmaWNhdGlvbi4KKyAgICBFeGNlcHRpb25PcjxWZWN0b3I8
dWludDhfdD4+IG1ha2VDcmVkZW50aWFsKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29u
c3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UnBFbnRpdHkmLCBjb25zdCBQ
dWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpVc2VyRW50aXR5JiwgY29uc3QgVmVj
dG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+JiwgY29u
c3QgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiYgZXhjbHVkZUNyZWRlbnRp
YWxJZHMpIGNvbnN0OworCitwcml2YXRlOgorICAgIEF1dGhlbnRpY2F0b3IoKSA9IGRlZmF1bHQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZS5jcHAKaW5kZXggNTcwNGYwMWJjMGJlZGQxMGEyMzJiMzQ3ZjQ0ODNlNzY0NWY1NDdhOC4u
YjQ1YmRiYTE5OGRlY2JlZjE1OTViNTY1ODczMWM3OGIyMmYxZDQ3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9u
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRv
ckFzc2VydGlvblJlc3BvbnNlLmNwcApAQCAtMzYsMjEgKzM2LDE3IEBAIEF1dGhlbnRpY2F0b3JB
c3NlcnRpb25SZXNwb25zZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKFJlZlB0cjxB
cnJheUJ1ZmZlCiB7CiB9CiAKLUF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6fkF1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSgpCi17Ci19Ci0KLUFycmF5QnVmZmVyKiBBdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OmF1dGhlbnRpY2F0b3JEYXRhKCkKK0FycmF5QnVmZmVy
KiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OmF1dGhlbnRpY2F0b3JEYXRhKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9hdXRoZW50aWNhdG9yRGF0YS5nZXQoKTsKIH0KIAotQXJyYXlC
dWZmZXIqIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6c2lnbmF0dXJlKCkKK0FycmF5
QnVmZmVyKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OnNpZ25hdHVyZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fc2lnbmF0dXJlLmdldCgpOwogfQogCi1BcnJheUJ1ZmZlciogQXV0
aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjp1c2VySGFuZGxlKCkKK0FycmF5QnVmZmVyKiBB
dXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OnVzZXJIYW5kbGUoKSBjb25zdAogewogICAg
IHJldHVybiBtX3VzZXJIYW5kbGUuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9u
c2UuaAppbmRleCA5N2FiNjc5OGFiZDMwMzgzYWZmZGU2MzgwYzA1YWM3OGUwNzU3ZTBkLi43ODNh
Y2JhZjhkODQ1Zjk0NmI1NDcwZWQ3MDZhOWE5MzYyNTMwZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlLmgKQEAgLTMxLDE3ICszMSwyNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSA6IHB1YmxpYyBBdXRoZW50aWNh
dG9yUmVzcG9uc2UgewogcHVibGljOgotICAgIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25z
ZShSZWZQdHI8QXJyYXlCdWZmZXI+JiYgY2xpZW50RGF0YUpTT04sIFJlZlB0cjxBcnJheUJ1ZmZl
cj4mJiBhdXRoZW50aWNhdG9yRGF0YSwgUmVmUHRyPEFycmF5QnVmZmVyPiYmIHNpZ25hdHVyZSwg
UmVmUHRyPEFycmF5QnVmZmVyPiYmIHVzZXJIYW5kbGUpOwotICAgIHZpcnR1YWwgfkF1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZSgpOworICAgIHN0YXRpYyBSZWY8QXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlPiBjcmVhdGUoUmVmUHRyPEFycmF5QnVmZmVyPiYmIGNsaWVudERhdGFK
U09OLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgYXV0aGVudGljYXRvckRhdGEsIFJlZlB0cjxBcnJh
eUJ1ZmZlcj4mJiBzaWduYXR1cmUsIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiB1c2VySGFuZGxlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXV0aGVudGljYXRvckFzc2VydGlv
blJlc3BvbnNlKFdURk1vdmUoY2xpZW50RGF0YUpTT04pLCBXVEZNb3ZlKGF1dGhlbnRpY2F0b3JE
YXRhKSwgV1RGTW92ZShzaWduYXR1cmUpLCBXVEZNb3ZlKHVzZXJIYW5kbGUpKSk7CisgICAgfQor
CisgICAgdmlydHVhbCB+QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKCkgPSBkZWZhdWx0
OwogCi0gICAgQXJyYXlCdWZmZXIqIGF1dGhlbnRpY2F0b3JEYXRhKCk7Ci0gICAgQXJyYXlCdWZm
ZXIqIHNpZ25hdHVyZSgpOwotICAgIEFycmF5QnVmZmVyKiB1c2VySGFuZGxlKCk7CisgICAgQXJy
YXlCdWZmZXIqIGF1dGhlbnRpY2F0b3JEYXRhKCkgY29uc3Q7CisgICAgQXJyYXlCdWZmZXIqIHNp
Z25hdHVyZSgpIGNvbnN0OworICAgIEFycmF5QnVmZmVyKiB1c2VySGFuZGxlKCkgY29uc3Q7CiAK
IHByaXZhdGU6CisgICAgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKFJlZlB0cjxBcnJh
eUJ1ZmZlcj4mJiBjbGllbnREYXRhSlNPTiwgUmVmUHRyPEFycmF5QnVmZmVyPiYmIGF1dGhlbnRp
Y2F0b3JEYXRhLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgc2lnbmF0dXJlLCBSZWZQdHI8QXJyYXlC
dWZmZXI+JiYgdXNlckhhbmRsZSk7CisKKyAgICBUeXBlIHR5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBUeXBlOjpBc3NlcnRpb247IH0KKwogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbV9hdXRo
ZW50aWNhdG9yRGF0YTsKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1fc2lnbmF0dXJlOwogICAg
IFJlZlB0cjxBcnJheUJ1ZmZlcj4gbV91c2VySGFuZGxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0FVVEhFTlRJQ0FUT1JfUkVTUE9OU0Uo
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLCBBdXRoZW50aWNhdG9yUmVzcG9uc2U6OlR5
cGU6OkFzc2VydGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5jcHAKaW5k
ZXggODE5NjAzMGYyZGRlNDc5ZWJiOWU4Y2U4MWE2YTc3YWQ1OTBjOTUwMC4uOGIxMDgyZmZhODQ3
OTczNzkxMWU4OTk5Y2RiNDM1Y2ViNjgwMzZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0YXRp
b25SZXNwb25zZS5jcHAKQEAgLTM0LDExICszNCw3IEBAIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlv
blJlc3BvbnNlOjpBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZShSZWZQdHI8QXJyYXlC
CiB7CiB9CiAKLUF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjp+QXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2UoKQotewotfQotCi1BcnJheUJ1ZmZlciogQXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0KCkKK0FycmF5QnVmZmVyKiBB
dXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6YXR0ZXN0YXRpb25PYmplY3QoKSBjb25z
dAogewogICAgIHJldHVybiBtX2F0dGVzdGF0aW9uT2JqZWN0LmdldCgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0YXRp
b25SZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yQXR0ZXN0YXRpb25SZXNwb25zZS5oCmluZGV4IGJhOWJiY2Q1M2JhMmNlOTdkODQxYmU1ZWQ0
NGEwNTFkNTBjYjhhNGUuLmMyNDQwMWRhYmE4ZTdiMDVkYjIxNjNlOTQyYjk1NDMzYWFkYTlmMjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmgKQEAgLTMxLDEzICszMSwyMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJl
c3BvbnNlIDogcHVibGljIEF1dGhlbnRpY2F0b3JSZXNwb25zZSB7CiBwdWJsaWM6Ci0gICAgQXV0
aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UoUmVmUHRyPEFycmF5QnVmZmVyPiYmIGNsaWVu
dERhdGFKU09OLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgYXR0ZXN0YXRpb25PYmplY3QpOwotICAg
IHZpcnR1YWwgfkF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKCk7CisgICAgc3RhdGlj
IFJlZjxBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZT4gY3JlYXRlKFJlZlB0cjxBcnJh
eUJ1ZmZlcj4mJiBjbGllbnREYXRhSlNPTiwgUmVmUHRyPEFycmF5QnVmZmVyPiYmIGF0dGVzdGF0
aW9uT2JqZWN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXV0aGVudGlj
YXRvckF0dGVzdGF0aW9uUmVzcG9uc2UoV1RGTW92ZShjbGllbnREYXRhSlNPTiksIFdURk1vdmUo
YXR0ZXN0YXRpb25PYmplY3QpKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+QXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2UoKSA9IGRlZmF1bHQ7CiAKLSAgICBBcnJheUJ1ZmZlciogYXR0
ZXN0YXRpb25PYmplY3QoKTsKKyAgICBBcnJheUJ1ZmZlciogYXR0ZXN0YXRpb25PYmplY3QoKSBj
b25zdDsKIAogcHJpdmF0ZToKKyAgICBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZShS
ZWZQdHI8QXJyYXlCdWZmZXI+JiYgY2xpZW50RGF0YUpTT04sIFJlZlB0cjxBcnJheUJ1ZmZlcj4m
JiBhdHRlc3RhdGlvbk9iamVjdCk7CisKKyAgICBUeXBlIHR5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBUeXBlOjpBdHRlc3RhdGlvbjsgfQorCiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBtX2F0
dGVzdGF0aW9uT2JqZWN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0FVVEhFTlRJQ0FUT1JfUkVTUE9OU0UoQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UsIEF1dGhlbnRpY2F0b3JSZXNwb25zZTo6VHlwZTo6QXR0ZXN0YXRpb24p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0
b3JSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRp
Y2F0b3JSZXNwb25zZS5jcHAKaW5kZXggZGRiMThiMzY0MWIzYTAwMjg0Y2MyMDAzNTJlM2VkNWVi
M2FhOGU5Yi4uOTU3YzZkZWM4N2U0OGQ1MWNmMDc2NTIxYTRiYjI0MDJiODA1YzRkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9u
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRv
clJlc3BvbnNlLmNwcApAQCAtMzMsMTEgKzMzLDcgQEAgQXV0aGVudGljYXRvclJlc3BvbnNlOjpB
dXRoZW50aWNhdG9yUmVzcG9uc2UoUmVmUHRyPEFycmF5QnVmZmVyPiYmIGNsaWVudERhdGFKU08K
IHsKIH0KIAotQXV0aGVudGljYXRvclJlc3BvbnNlOjp+QXV0aGVudGljYXRvclJlc3BvbnNlKCkK
LXsKLX0KLQotQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JSZXNwb25zZTo6Y2xpZW50RGF0YUpT
T04oKQorQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JSZXNwb25zZTo6Y2xpZW50RGF0YUpTT04o
KSBjb25zdAogewogICAgIHJldHVybiBtX2NsaWVudERhdGFKU09OLmdldCgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9u
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3Bv
bnNlLmgKaW5kZXggYTNhMTZiNTZmNDk3YWJiMzQwZGJjMjkzMmRiYjQzNzRlOTQ2MmI4OS4uZDQx
NzNiOTk4MzhlNDBhMWUwMzYwMjA4MjRiZjFlOGZhYWI4ZTIwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oCkBA
IC0yNywxOCArMjcsMzEgQEAKIAogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KICNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVHlwZUNh
c3RzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXV0aGVudGljYXRvclJlc3Bv
bnNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4g
ewogcHVibGljOgorICAgIGVudW0gY2xhc3MgVHlwZSB7CisgICAgICAgIEFzc2VydGlvbiwKKyAg
ICAgICAgQXR0ZXN0YXRpb24KKyAgICB9OworCiAgICAgZXhwbGljaXQgQXV0aGVudGljYXRvclJl
c3BvbnNlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJik7Ci0gICAgdmlydHVhbCB+QXV0aGVudGljYXRv
clJlc3BvbnNlKCk7CisgICAgdmlydHVhbCB+QXV0aGVudGljYXRvclJlc3BvbnNlKCkgPSBkZWZh
dWx0OworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCA9IDA7CiAKLSAgICBBcnJheUJ1
ZmZlciogY2xpZW50RGF0YUpTT04oKTsKKyAgICBBcnJheUJ1ZmZlciogY2xpZW50RGF0YUpTT04o
KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1fY2xpZW50RGF0
YUpTT047CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNkZWZpbmUgU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19BVVRIRU5USUNBVE9SX1JFU1BPTlNFKFRvQ2xhc3NOYW1lLCBUeXBlKSBc
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlRvQ2xhc3NOYW1lKSBcCisg
ICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25z
ZSYgcmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnR5cGUoKSA9PSBXZWJDb3JlOjpUeXBlOyB9
IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmlkbAppbmRleCBl
NWM0ZGRjYzU4NGM0YjgxMWMyNWYyODc2MDFlZjY4ZWIxM2I2ZmIxLi4xYmY0MDk5ZDEyYjRmNjI0
OWQ5NWIzZmViYWI0ODM4Zjc3YzgzZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuaWRsCkBAIC0yNCw2ICsy
NCw3IEBACiAgKi8KIAogWworICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJBdXRoZW50aWNhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTZWN1cmVD
b250ZXh0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVi
bGljS2V5Q3JlZGVudGlhbC5jcHAKaW5kZXggMTdhY2IyZjE4NTI0MGU5OTExOWYxYWUyMzIxMmFm
MjExODg4OThjMS4uZTY4M2RjYWM2NTM0MmYzZGVjY2E5M2VlNzdmZTdhMDVkNjc3NGFlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50
aWFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWwuY3BwCkBAIC0yNiwxMiArMjYsNzcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsLmgiCiAKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9y
LmgiCisjaW5jbHVkZSAiQXV0aGVudGljYXRvclJlc3BvbnNlLmgiCisjaW5jbHVkZSAiQ3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgi
CisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDxwYWwvY3J5cHRvL0NyeXB0
b0RpZ2VzdC5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9K
U09OVmFsdWVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUHVibGljS2V5Q3JlZGVudGlhbDo6UHVibGljS2V5Q3JlZGVudGlhbChjb25z
dCBTdHJpbmcmIGlkKQotICAgIDogQmFzaWNDcmVkZW50aWFsKGlkLCBUeXBlOjpQdWJsaWNLZXks
IERpc2NvdmVyeTo6UmVtb3RlKQorbmFtZXNwYWNlIFB1YmxpY0tleUNyZWRlbnRpYWxJbnRlcm5h
bCB7CisKKy8vIFRoZSBsYXlvdXQgb2YgYXR0ZXN0YXRpb24gb2JqZWN0OiBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXV0aG4vI2F0dGVzdGF0aW9uLW9iamVjdCBhcyBvZiA1IERlY2VtYmVyIDIw
MTcuCisvLyBIZXJlIGlzIGEgc3VtbWFyeSBiZWZvcmUgQ3JlZGVudGlhbElEIGluIHRoZSBsYXlv
dXQuIEFsbCBsZW5ndGhzIGFyZSBmaXhlZC4KKy8vIFJQIElEIGhhc2ggKDMyKSB8fCBGTEFHUyAo
MSkgfHwgQ09VTlRFUiAoNCkgfHwgQUFHVUlEICgxNikgfHwgTCAoMikgfHwgQ1JFREVOVElBTCBJ
RCAoPykgfHwgLi4uCitzdGF0aWMgY29uc3RleHByIHNpemVfdCBDcmVkZW50aWFsSWRMZW5ndGhP
ZmZzZXQgPSA0MzsKKworZW51bSBjbGFzcyBDbGllbnREYXRhVHlwZSB7CisgICAgQ3JlYXRlLAor
ICAgIEdldAorfTsKKworLy8gRklYTUU6IEFkZCB0b2tlbiBiaW5kaW5nIElEIGFuZCBleHRlbnNp
b25zLgorLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTk0OAor
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTk0OQorc3RhdGlj
IFJlZjxBcnJheUJ1ZmZlcj4gcHJvZHVjZUNsaWVudERhdGFKc29uKENsaWVudERhdGFUeXBlIHR5
cGUsIGNvbnN0IEJ1ZmZlclNvdXJjZSYgY2hhbGxlbmdlLCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
b3JpZ2luKQoreworICAgIGF1dG8gb2JqZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAg
ICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIENsaWVudERhdGFUeXBlOjpDcmVhdGU6CisgICAg
ICAgIG9iamVjdC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgidHlwZSIpLCBBU0NJSUxpdGVyYWwo
IndlYmF1dGhuLmNyZWF0ZSIpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDbGllbnREYXRh
VHlwZTo6R2V0OgorICAgICAgICBvYmplY3QtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoInR5cGUi
KSwgQVNDSUlMaXRlcmFsKCJ3ZWJhdXRobi5nZXQiKSk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICBvYmplY3QtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImNoYWxsZW5nZSIpLCBXVEY6OmJh
c2U2NFVSTEVuY29kZShjaGFsbGVuZ2UuZGF0YSgpLCBjaGFsbGVuZ2UubGVuZ3RoKCkpKTsKKyAg
ICBvYmplY3QtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoIm9yaWdpbiIpLCBvcmlnaW4udG9SYXdT
dHJpbmcoKSk7CisgICAgLy8gRklYTUU6IFRoaXMgbWlnaHQgYmUgcGxhdGZvcm0gZGVwZW5kZW50
LgorICAgIG9iamVjdC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiaGFzaEFsZ29yaXRobSIpLCBB
U0NJSUxpdGVyYWwoIlNIQS0yNTYiKSk7CisKKyAgICBhdXRvIHV0ZjhKU09OU3RyaW5nID0gb2Jq
ZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCk7CisgICAgcmV0dXJuIEFycmF5QnVmZmVyOjpjcmVh
dGUodXRmOEpTT05TdHJpbmcuZGF0YSgpLCB1dGY4SlNPTlN0cmluZy5sZW5ndGgoKSk7Cit9CisK
K3N0YXRpYyBWZWN0b3I8dWludDhfdD4gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChjb25zdCBS
ZWY8QXJyYXlCdWZmZXI+JiBjbGllbnREYXRhSnNvbikKK3sKKyAgICBhdXRvIGNyeXB0byA9IFBB
TDo6Q3J5cHRvRGlnZXN0OjpjcmVhdGUoUEFMOjpDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hB
XzI1Nik7CisgICAgY3J5cHRvLT5hZGRCeXRlcyhjbGllbnREYXRhSnNvbi0+ZGF0YSgpLCBjbGll
bnREYXRhSnNvbi0+Ynl0ZUxlbmd0aCgpKTsKKyAgICByZXR1cm4gY3J5cHRvLT5jb21wdXRlSGFz
aCgpOworfQorCitzdGF0aWMgUmVmUHRyPEFycmF5QnVmZmVyPiBnZXRJZEZyb21BdHRlc3RhdGlv
bk9iamVjdChjb25zdCBWZWN0b3I8dWludDhfdD4mIGF0dGVzdGF0aW9uT2JqZWN0KQoreworICAg
IC8vIFRoZSBieXRlIGxlbmd0aCBvZiBMIGlzIDIuCisgICAgaWYgKGF0dGVzdGF0aW9uT2JqZWN0
LnNpemUoKSA8IENyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIDIpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIHNpemVfdCBsZW5ndGggPSAoYXR0ZXN0YXRpb25PYmplY3RbQ3JlZGVudGlh
bElkTGVuZ3RoT2Zmc2V0XSA8PCA4KSArIGF0dGVzdGF0aW9uT2JqZWN0W0NyZWRlbnRpYWxJZExl
bmd0aE9mZnNldCArIDFdOworICAgIGlmIChhdHRlc3RhdGlvbk9iamVjdC5zaXplKCkgPCBDcmVk
ZW50aWFsSWRMZW5ndGhPZmZzZXQgKyAyICsgbGVuZ3RoKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gQXJyYXlCdWZmZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9iamVjdC5kYXRh
KCkgKyBDcmVkZW50aWFsSWRMZW5ndGhPZmZzZXQgKyAyLCBsZW5ndGgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBQdWJsaWNLZXlDcmVkZW50aWFsSW50ZXJuYWwKKworUHVibGljS2V5Q3JlZGVudGlh
bDo6UHVibGljS2V5Q3JlZGVudGlhbChSZWZQdHI8QXJyYXlCdWZmZXI+JiYgaWQsIFJlZlB0cjxB
dXRoZW50aWNhdG9yUmVzcG9uc2U+JiYgcmVzcG9uc2UpCisgICAgOiBCYXNpY0NyZWRlbnRpYWwo
V1RGOjpiYXNlNjRVUkxFbmNvZGUoaWQtPmRhdGEoKSwgaWQtPmJ5dGVMZW5ndGgoKSksIFR5cGU6
OlB1YmxpY0tleSwgRGlzY292ZXJ5OjpSZW1vdGUpCisgICAgLCBtX3Jhd0lkKFdURk1vdmUoaWQp
KQorICAgICwgbV9yZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSkKIHsKIH0KIApAQCAtNDAsNyAr
MTA1LDcgQEAgVmVjdG9yPFJlZjxCYXNpY0NyZWRlbnRpYWw+PiBQdWJsaWNLZXlDcmVkZW50aWFs
Ojpjb2xsZWN0RnJvbUNyZWRlbnRpYWxTdG9yZShDcmUKICAgICByZXR1cm4geyB9OwogfQogCi1F
eGNlcHRpb25PcjxSZWZQdHI8QmFzaWNDcmVkZW50aWFsPj4gUHVibGljS2V5Q3JlZGVudGlhbDo6
ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
JiwgYm9vbCkKK0V4Y2VwdGlvbk9yPFJlZlB0cjxCYXNpY0NyZWRlbnRpYWw+PiBQdWJsaWNLZXlD
cmVkZW50aWFsOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBTZWN1cml0eU9yaWdp
biYsIGNvbnN0IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIGJvb2wpCiB7CiAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CiB9CkBAIC01MCwyMiArMTE1LDY2IEBA
IFJlZlB0cjxCYXNpY0NyZWRlbnRpYWw+IFB1YmxpY0tleUNyZWRlbnRpYWw6OnN0b3JlKFJlZlB0
cjxCYXNpY0NyZWRlbnRpYWw+JiYsIGJvCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUV4Y2Vw
dGlvbk9yPFJlZlB0cjxCYXNpY0NyZWRlbnRpYWw+PiBQdWJsaWNLZXlDcmVkZW50aWFsOjpjcmVh
dGUoY29uc3QgQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYsIGJvb2wpCitFeGNlcHRpb25PcjxS
ZWZQdHI8QmFzaWNDcmVkZW50aWFsPj4gUHVibGljS2V5Q3JlZGVudGlhbDo6Y3JlYXRlKGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiBjYWxsZXJPcmlnaW4sIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMpCiB7
Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CisgICAgdXNpbmcg
bmFtZXNwYWNlIFB1YmxpY0tleUNyZWRlbnRpYWxJbnRlcm5hbDsKKworICAgIC8vIFRoZSBmb2xs
b3dpbmcgaW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI2NyZWF0ZUNy
ZWRlbnRpYWwgYXMgb2YgNSBEZWNlbWJlciAyMDE3LgorICAgIC8vIEZJWE1FOiBFeHRlbnNpb25z
IGFyZSBub3Qgc3VwcG9ydGVkIHlldC4gU2tpcCBTdGVwIDExLTEyLgorICAgIC8vIFN0ZXAgMSwg
MywgNCwgMTcgYXJlIGhhbmRsZWQgYnkgdGhlIGNhbGxlciwgaW5jbHVkaW5nIG9wdGlvbnMgc2Fu
aXRpemluZywgdGltZXIgYW5kIGFib3J0IHNpZ25hbC4KKyAgICAvLyBTdGVwIDIuCisgICAgaWYg
KCFzYW1lT3JpZ2luV2l0aEFuY2VzdG9ycykKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciB9OworCisgICAgLy8gU3RlcCA1LTcuCisgICAgLy8gRklYTUU6IFdlIGxh
Y2sgZnVuZGFtZW50YWwgc3VwcG9ydCBmcm9tIFNlY3VyaXR5T3JpZ2luIHRvIGRldGVybWluZSBp
ZiBhIGhvc3QgaXMgYSB2YWxpZCBkb21haW4gb3Igbm90LgorICAgIC8vIFN0ZXAgNiBpcyB0aGVy
ZWZvcmUgc2tpcHBlZC4gQWxzbywgd2UgbGFjayB0aGUgc3VwcG9ydCB0byBkZXRlcm1pbmUgd2hl
dGhlciBhIGRvbWFpbiBpcyBhIHJlZ2lzdHJhYmxlCisgICAgLy8gZG9tYWluIHN1ZmZpeCBvZiBh
bm90aGVyIGRvbWFpbi4gSGVuY2UgcmVzdHJpY3QgdGhlIGNvbXBhcmlzb24gdG8gZXF1YWwgaW4g
U3RlcCA3LgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODE5NTAKKyAgICBpZiAoIW9wdGlvbnMucnAuaWQuaXNFbXB0eSgpICYmICEoY2FsbGVyT3JpZ2lu
Lmhvc3QoKSA9PSBvcHRpb25zLnJwLmlkKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNl
Y3VyaXR5RXJyb3IgfTsKKyAgICBpZiAob3B0aW9ucy5ycC5pZC5pc0VtcHR5KCkpCisgICAgICAg
IG9wdGlvbnMucnAuaWQgPSBjYWxsZXJPcmlnaW4uaG9zdCgpOworCisgICAgLy8gU3RlcCA4LTEw
LgorICAgIC8vIE1vc3Qgb2YgdGhlIGpvYnMgYXJlIGRvbmUgYnkgYmluZGluZ3MuIEhvd2V2ZXIs
IHdlIGNhbid0IGtub3cgaWYgdGhlIEpTVmFsdWUgb2Ygb3B0aW9ucy5wdWJLZXlDcmVkUGFyYW1z
CisgICAgLy8gaXMgZW1wdHkgb3Igbm90LiBSZXR1cm4gTm90U3VwcG9ydGVkRXJyb3IgYXMgbG9u
ZyBhcyBpdCBpcyBlbXB0eS4KKyAgICBpZiAob3B0aW9ucy5wdWJLZXlDcmVkUGFyYW1zLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CisK
KyAgICAvLyBTdGVwIDEzLTE1LgorICAgIGF1dG8gY2xpZW50RGF0YUpzb24gPSBwcm9kdWNlQ2xp
ZW50RGF0YUpzb24oQ2xpZW50RGF0YVR5cGU6OkNyZWF0ZSwgb3B0aW9ucy5jaGFsbGVuZ2UsIGNh
bGxlck9yaWdpbik7CisgICAgYXV0byBjbGllbnREYXRhSnNvbkhhc2ggPSBwcm9kdWNlQ2xpZW50
RGF0YUpzb25IYXNoKGNsaWVudERhdGFKc29uKTsKKworICAgIC8vIFN0ZXAgMTgtMjEuCisgICAg
Ly8gT25seSBwbGF0Zm9ybSBhdHRhY2htZW50cyB3aWxsIGJlIHN1cHBvcnRlZCBhdCB0aGlzIHN0
YWdlLiBBc3N1bWluZyBvbmUgYXV0aGVudGljYXRvciBwZXIgZGV2aWNlLgorICAgIC8vIEFsc28s
IHJlc2lkZW50IGtleXMsIHVzZXIgdmVyaWZpY2F0aW9ucyBhbmQgZGlyZWN0IGF0dGVzdGF0aW9u
IGFyZSBlbmZvcmNlZCBhdCB0aGlzIHRhZ2UuCisgICAgLy8gRm9yIGJldHRlciBwZXJmb3JtYW5j
ZSwgbm8gZmlsdGVyaW5nIGlzIGRvbmUgaGVyZSByZWdhcmRpbmcgdG8gb3B0aW9ucy5leGNsdWRl
Q3JlZGVudGlhbHMuCisgICAgLy8gV2hhdCdzIG1vcmUsIHVzZXIgY2FuY2VsbGF0aW9ucyBlZmZl
Y3RpdmVseSBtZWFucyBOb3RBbGxvd2VkRXJyb3IuIFRoZXJlZm9yZSwgdGhlIGJlbG93IGNhbGwK
KyAgICAvLyB3aWxsIG9ubHkgcmV0dXJucyBlaXRoZXIgYW4gZXhjZXB0aW9uIG9yIGEgUHVibGlj
S2V5Q3JlZGVudGlhbCByZWYuCisgICAgLy8gRklYTUU6IFRoZSBmb2xsb3dpbmcgb3BlcmF0aW9u
IG1pZ2h0IG5lZWQgdG8gcGVyZm9ybSBhc3luYy4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxOTQ2CisgICAgYXV0byByZXN1bHQgPSBBdXRoZW50aWNh
dG9yOjpzaW5nbGV0b24oKS5tYWtlQ3JlZGVudGlhbChjbGllbnREYXRhSnNvbkhhc2gsIG9wdGlv
bnMucnAsIG9wdGlvbnMudXNlciwgb3B0aW9ucy5wdWJLZXlDcmVkUGFyYW1zLCBvcHRpb25zLmV4
Y2x1ZGVDcmVkZW50aWFscyk7CisgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICBhdXRvIGF0dGVzdGF0
aW9uT2JqZWN0ID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIC8vIEZJWE1FOiBH
b3Qgc29tZSBjcmF6eSBjb21waWxlIGVycm9yIHdoZW4gSSB3YXMgdHJ5aW5nIHRvIHJldHVybiBS
SFMgZGlyZWN0bHkuCisgICAgUmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4gY3JlZGVudGlhbCA9IFB1
YmxpY0tleUNyZWRlbnRpYWw6OmNyZWF0ZShnZXRJZEZyb21BdHRlc3RhdGlvbk9iamVjdChhdHRl
c3RhdGlvbk9iamVjdCksIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpjcmVhdGUo
V1RGTW92ZShjbGllbnREYXRhSnNvbiksIEFycmF5QnVmZmVyOjpjcmVhdGUoYXR0ZXN0YXRpb25P
YmplY3QuZGF0YSgpLCBhdHRlc3RhdGlvbk9iamVjdC5zaXplKCkpKSk7CisgICAgcmV0dXJuIFdU
Rk1vdmUoY3JlZGVudGlhbCk7CiB9CiAKLUFycmF5QnVmZmVyKiBQdWJsaWNLZXlDcmVkZW50aWFs
OjpyYXdJZCgpCitBcnJheUJ1ZmZlciogUHVibGljS2V5Q3JlZGVudGlhbDo6cmF3SWQoKSBjb25z
dAogewogICAgIHJldHVybiBtX3Jhd0lkLmdldCgpOwogfQogCi1BdXRoZW50aWNhdG9yUmVzcG9u
c2UqIFB1YmxpY0tleUNyZWRlbnRpYWw6OnJlc3BvbnNlKCkKK0F1dGhlbnRpY2F0b3JSZXNwb25z
ZSogUHVibGljS2V5Q3JlZGVudGlhbDo6cmVzcG9uc2UoKSBjb25zdAogewogICAgIHJldHVybiBt
X3Jlc3BvbnNlLmdldCgpOwogfQogCi1FeGNlcHRpb25Pcjxib29sPiBQdWJsaWNLZXlDcmVkZW50
aWFsOjpnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkKK0V4Y2VwdGlvbk9yPGJvb2w+IFB1Ymxp
Y0tleUNyZWRlbnRpYWw6OmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSBjb25zdAogewogICAg
IHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaAppbmRl
eCAzYzk2NmJjOTgwNDUzYWI1NWJiOTI2OWU5YjJlZjI1NjgzYzdhYTQyLi41Yjg2NmI5NjI5NDkx
Mzg0MmM4NjNlZjFkODRjMWI5MTg0ZTNhYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaApAQCAtMzQsMzQgKzM0LDM5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXV0aGVudGljYXRvclJlc3BvbnNlOwog
Y2xhc3MgRGVmZXJyZWRQcm9taXNlOworY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKLXN0cnVjdCBD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOworc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM7CiBzdHJ1Y3QgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOwogCiBjbGFzcyBQ
dWJsaWNLZXlDcmVkZW50aWFsIGZpbmFsIDogcHVibGljIEJhc2ljQ3JlZGVudGlhbCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxQdWJsaWNLZXlDcmVkZW50aWFsPiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBpZCkKKyAgICBzdGF0aWMgUmVmPFB1YmxpY0tleUNyZWRlbnRpYWw+IGNyZWF0ZShSZWZQ
dHI8QXJyYXlCdWZmZXI+JiYgaWQsIFJlZlB0cjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiYgcmVz
cG9uc2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQdWJsaWNLZXlDcmVk
ZW50aWFsKGlkKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFB1YmxpY0tleUNyZWRl
bnRpYWwoV1RGTW92ZShpZCksIFdURk1vdmUocmVzcG9uc2UpKSk7CiAgICAgfQogCiAgICAgc3Rh
dGljIFZlY3RvcjxSZWY8QmFzaWNDcmVkZW50aWFsPj4gY29sbGVjdEZyb21DcmVkZW50aWFsU3Rv
cmUoQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYsIGJvb2wpOwotICAgIHN0YXRpYyBFeGNlcHRp
b25PcjxSZWZQdHI8QmFzaWNDcmVkZW50aWFsPj4gZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2Uo
Y29uc3QgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgYm9vbCk7CisgICAgc3RhdGljIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxCYXNpY0NyZWRlbnRpYWw+PiBkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJj
ZShjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYs
IGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMpOwogICAgIHN0YXRpYyBSZWZQdHI8QmFzaWND
cmVkZW50aWFsPiBzdG9yZShSZWZQdHI8QmFzaWNDcmVkZW50aWFsPiYmLCBib29sKTsKLSAgICBz
dGF0aWMgRXhjZXB0aW9uT3I8UmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4+IGNyZWF0ZShjb25zdCBD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgYm9vbCk7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9y
PFJlZlB0cjxCYXNpY0NyZWRlbnRpYWw+PiBjcmVhdGUoY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBj
b25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgYm9vbCBzYW1lT3JpZ2lu
V2l0aEFuY2VzdG9ycyk7CiAKLSAgICBBcnJheUJ1ZmZlciogcmF3SWQoKTsKLSAgICBBdXRoZW50
aWNhdG9yUmVzcG9uc2UqIHJlc3BvbnNlKCk7CisgICAgQXJyYXlCdWZmZXIqIHJhd0lkKCkgY29u
c3Q7CisgICAgQXV0aGVudGljYXRvclJlc3BvbnNlKiByZXNwb25zZSgpIGNvbnN0OwogICAgIC8v
IE5vdCBzdXBwb3J0IHlldC4gQWx3YXlzIHRocm93cy4KLSAgICBFeGNlcHRpb25Pcjxib29sPiBn
ZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCk7CisgICAgRXhjZXB0aW9uT3I8Ym9vbD4gZ2V0Q2xp
ZW50RXh0ZW5zaW9uUmVzdWx0cygpIGNvbnN0OwogCiAgICAgc3RhdGljIHZvaWQgaXNVc2VyVmVy
aWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKFJlZjxEZWZlcnJlZFByb21pc2U+
JiYpOwogCiBwcml2YXRlOgotICAgIFB1YmxpY0tleUNyZWRlbnRpYWwoY29uc3QgU3RyaW5nJik7
CisgICAgUHVibGljS2V5Q3JlZGVudGlhbChSZWZQdHI8QXJyYXlCdWZmZXI+JiYgaWQsIFJlZlB0
cjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiYpOworCisgICAgVHlwZSBjcmVkZW50aWFsVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFR5cGU6OlB1YmxpY0tleTsgfQogCiAgICAgUmVmUHRyPEFy
cmF5QnVmZmVyPiBtX3Jhd0lkOwogICAgIFJlZlB0cjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+IG1f
cmVzcG9uc2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQkFTSUNfQ1JFREVOVElBTChQdWJsaWNLZXlDcmVkZW50aWFsLCBCYXNpY0NyZWRl
bnRpYWw6OlR5cGU6OlB1YmxpY0tleSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaWRsCmluZGV4IDQ4ZWY5ZmZmY2MzYTIz
ZjhmNDU1NThiZTdmZDhlZWE4N2UwMmNmZDEuLjZiOTk2YjYzMmQyYTViMzdlMmVjZjgwNTFkOTIy
YjlhZWU4ZDViNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
UHVibGljS2V5Q3JlZGVudGlhbC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmlkbApAQCAtMjksNyArMjksNyBAQCB0eXBlZGVmIGJv
b2xlYW4gQXV0aGVudGljYXRpb25FeHRlbnNpb25zOwogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
QXV0aGVudGljYXRpb24sCiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgU2VjdXJlQ29udGV4dCwK
LV0gaW50ZXJmYWNlIFB1YmxpY0tleUNyZWRlbnRpYWwgeworXSBpbnRlcmZhY2UgUHVibGljS2V5
Q3JlZGVudGlhbCA6IEJhc2ljQ3JlZGVudGlhbCB7CiAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBBcnJheUJ1ZmZlciByYXdJZDsKICAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkg
YXR0cmlidXRlIEF1dGhlbnRpY2F0b3JSZXNwb25zZSByZXNwb25zZTsKICAgICBbTWF5VGhyb3dF
eGNlcHRpb25dIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9ucyBnZXRDbGllbnRFeHRlbnNpb25SZXN1
bHRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCmluZGV4IDhiYWZl
MzA1Y2RmNGU2NDdiMjc5MWMzYTcwNWE0NGIxY2ZmZDI0OGMuLmZjZjEwMWQ1ZjgwMzJlN2E2MGI2
OWNiNWNhYTlmMDk0MzQyMmQ3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucy5oCkBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zIHsKICAgICB9OwogCiAgICAgc3RydWN0IFJwRW50aXR5IDogcHVibGljIEVudGl0
eSB7Ci0gICAgICAgIFN0cmluZyBpZDsKKyAgICAgICAgbXV0YWJsZSBTdHJpbmcgaWQ7CiAgICAg
fTsKIAogICAgIHN0cnVjdCBVc2VyRW50aXR5IDogcHVibGljIEVudGl0eSB7CkBAIC00OSw3ICs0
OSw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsKIAogICAg
IHN0cnVjdCBQYXJhbWV0ZXJzIHsKICAgICAgICAgUHVibGljS2V5Q3JlZGVudGlhbFR5cGUgdHlw
ZTsKLSAgICAgICAgbG9uZyBhbGcgeyAwIH07CisgICAgICAgIGxvbmcgYWxnOwogICAgIH07CiAK
ICAgICBScEVudGl0eSBycDsKQEAgLTU4LDcgKzU4LDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnMgewogICAgIEJ1ZmZlclNvdXJjZSBjaGFsbGVuZ2U7CiAgICAg
VmVjdG9yPFBhcmFtZXRlcnM+IHB1YktleUNyZWRQYXJhbXM7CiAKLSAgICB1bnNpZ25lZCBsb25n
IHRpbWVvdXQgeyAwIH07CisgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZCBsb25nPiB0aW1lb3V0
OwogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4gZXhjbHVkZUNyZWRl
bnRpYWxzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oCmluZGV4IDczZTQ0OTIz
NzI0ZjMxMjViMWVkYWRlMzY4NzM4N2VkYjFhZTgxODUuLjgyOWQ2MDEyNTExZmI0ZGU4ZTczYjE2
ODRjNjhjOTEzOWI4MTYxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmgKQEAgLTMx
LDggKzMxLDE1IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBQdWJsaWNLZXlDcmVk
ZW50aWFsRGVzY3JpcHRvciB7CisgICAgZW51bSBjbGFzcyBBdXRoZW50aWNhdG9yVHJhbnNwb3J0
IHsKKyAgICAgICAgVXNiLAorICAgICAgICBOZmMsCisgICAgICAgIEJsZQorICAgIH07CisKICAg
ICBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSB0eXBlOwogICAgIEJ1ZmZlclNvdXJjZSBpZDsKKyAg
ICBWZWN0b3I8QXV0aGVudGljYXRvclRyYW5zcG9ydD4gdHJhbnNwb3J0czsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5pZGwKaW5kZXgg
ZTkzZjg2NDRiMTllMDUxYjAzYmQ5NDhlMWZhZDgyYjcwZWY0ZDhlZi4uMjU4ZTI4OWMxODRhNGI4
ZTMyZWIyMTY0NjI3ZmFjMDQyZjIwNThiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRv
ci5pZGwKQEAgLTIzLDkgKzIzLDE0IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAorZW51bSBBdXRoZW50aWNhdG9yVHJhbnNwb3J0IHsKKyAgICAidXNiIiwKKyAg
ICAibmZjIiwKKyAgICAiYmxlIgorfTsKKwogZGljdGlvbmFyeSBQdWJsaWNLZXlDcmVkZW50aWFs
RGVzY3JpcHRvciB7CiAgICAgcmVxdWlyZWQgUHVibGljS2V5Q3JlZGVudGlhbFR5cGUgdHlwZTsK
ICAgICByZXF1aXJlZCBCdWZmZXJTb3VyY2UgaWQ7Ci0gICAgLy8gV2Ugb25seSBhbGxvdyBwbGF0
Zm9ybSBhdHRhY2htZW50IGF0IHRoaXMgc3RhZ2UuCi0gICAgLy8gc2VxdWVuY2U8QXV0aGVudGlj
YXRvclRyYW5zcG9ydD4gdHJhbnNwb3J0czsKKyAgICBzZXF1ZW5jZTxBdXRoZW50aWNhdG9yVHJh
bnNwb3J0PiB0cmFuc3BvcnRzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOWMyYjBhNWYxMWYxNzRk
YTgxZDQ3ZGNlMjZiOWUzYzBjNTkxNzEzNS4uMjJjNjM2ZTYyNWQ3ODFiMzQxODJiOTViNTFmNGI2
YjFkMmRkMzcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTI0NCw2ICsyNDQsNyBAQCBNb2R1bGVzL3dl
YmF1ZGlvL1dhdmVTaGFwZXJEU1BLZXJuZWwuY3BwCiBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFw
ZXJOb2RlLmNwcAogTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAogCitN
b2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3IuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGlj
YXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0
b3JSZXNwb25zZS5jcHAKQEAgLTM0NSwxMSArMzQ2LDEzIEBAIGJpbmRpbmdzL2pzL0RPTUdDT3V0
cHV0Q29uc3RyYWludC5jcHAKIGJpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5jcHAKIGJpbmRp
bmdzL2pzL0dDQ29udHJvbGxlci5jcHAKIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMu
Y3BwCitiaW5kaW5ncy9qcy9KU0F1dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAKIGJpbmRp
bmdzL2pzL0pTQW5pbWF0aW9uRWZmZWN0Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNBbmltYXRp
b25UaW1lbGluZUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTQXR0ckN1c3RvbS5jcHAKIGJpbmRp
bmdzL2pzL0pTQXVkaW9UcmFja0N1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTQXVkaW9UcmFja0xp
c3RDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0Jhc2ljQ3JlZGVudGlhbEN1c3RvbS5jcHAKIGJp
bmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5j
cHAKIGJpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjFiOWQxNjExNzhk
ZDA4YzlmZGU3OGFkYzNkN2QyZDM3ZGQyZDAwNS4uZjM1MDFjMzM5NmFjZjViYTJjOWU3ZTJkNWEz
ZGQzZjQ3NWE5NTY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTY2MCw2ICsxNjYwLDcgQEAKIAkJNTczMDNDMjIyMDA5QUYw
MzAwMzU1OTY1IC8qIEpTQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQzIxMjAwOUFFRjYw
MDM1NTk2NSAvKiBKU0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmggKi87IH07CiAJ
CTU3MzAzQzJDMjAwOUI0QTgwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9u
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAz
QzI3MjAwOUIyRkMwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaCAq
LzsgfTsKIAkJNTczMDNDMkYyMDA5QjdFMTAwMzU1OTY1IC8qIEpTQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzMwM0MyRDIwMDlCN0Q5MDAzNTU5NjUgLyogSlNBdXRoZW50aWNhdG9yQXNzZXJ0aW9u
UmVzcG9uc2UuaCAqLzsgfTsKKwkJNTczMDNDNDYyMDEwNUQyRjAwMzU1OTY1IC8qIEF1dGhlbnRp
Y2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
MzAzQzQzMjAxMDVCM0QwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yLmggKi87IH07CiAJCTU3MzQ4
OTM5MURBQzZCNkUwMERDMDY2NyAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzM0ODkzODFEQUM2QjZE
MDBEQzA2NjcgLyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oICovOyB9OwogCQk1NzM5RTEy
RjFEQUM3Rjc4MDBFMTQzODMgLyogSlNDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzM5RTEyRTFEQUM3Rjc4
MDBFMTQzODMgLyogSlNDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggKi87IH07CiAJCTU3NTBB
OTc1MUU2OEQwMDAwMDcwNUM0QSAvKiBDcnlwdG9LZXlFQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1MEE5NzMxRTY4RDAwMDAwNzA1QzRBIC8qIENy
eXB0b0tleUVDLmggKi87IH07CkBAIC04MjI3LDYgKzgyMjgsOCBAQAogCQk1NzMwM0MyOTIwMDlC
MkZDMDAzNTU5NjUgLyogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBB
dXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NzMwM0MyRDIwMDlCN0Q5MDAzNTU5NjUgLyogSlNBdXRoZW50aWNhdG9yQXNzZXJ0
aW9uUmVzcG9uc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTczMDNDMkUyMDA5QjdEQTAwMzU1OTY1IC8qIEpTQXV0aGVudGljYXRvckFzc2VydGlvblJlc3Bv
bnNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTczMDNDNDMyMDEwNUIzRDAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXV0aGVudGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzMwM0M0
NDIwMTA1QjNEMDAzNTU5NjUgLyogQXV0aGVudGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBdXRoZW50aWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczNDg5
MzgxREFDNkI2RDAwREMwNjY3IC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzM5RTEyRTFEQUM3Rjc4MDBFMTQzODMgLyog
SlNDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzM5RTEzMDFEQUM3RkQxMDBFMTQzODMgLyogSlNDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04MjQzLDYgKzgyNDYsOCBAQAogCQk1NzUwQTk4NTFFNkEyMTY4MDA3MDVDNEEgLyogQ3J5cHRv
QWxnb3JpdGhtRUNESC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9B
bGdvcml0aG1FQ0RILmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NTQ3MTk5MUVD
RTVEMkEwMERENjNCMiAvKiBKU1JzYVBzc1BhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1JzYVBzc1BhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NzU0NzE5QTFFQ0U1RDJBMDBERDYzQjIgLyogSlNSc2FQc3NQYXJhbXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSc2FQc3NQYXJhbXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NzYwODI0RjIwMTE4RDhEMDAxMTY2NzggLyogSlNCYXNp
Y0NyZWRlbnRpYWxDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCYXNpY0NyZWRlbnRp
YWxDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzYwODI1NjIwMTFC
RTAyMDAxMTY2NzggLyogSlNBdXRoZW50aWNhdG9yUmVzcG9uc2VDdXN0b20uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNBdXRoZW50aWNhdG9yUmVzcG9uc2VDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzY4MTQyODFFNkY5OEFEMDBFNzc3NTQgLyogRWNkaEtleURl
cml2ZVBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gRWNkaEtleURlcml2ZVBhcmFtcy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3NjgxNDI5MUU2Rjk5QzEwMEU3Nzc1NCAvKiBDcnlwdG9BbGdv
cml0aG1FY2RoS2V5RGVyaXZlUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTc2ODE0MzQxRTZGRTNFODAwRTc3NzU0IC8qIENyeXB0b0FsZ29yaXRo
bUVDREhNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtRUNESE1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODE3
MSw2ICsxODE3Niw4IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTU3MzAzQkIzMjAwNkM2RUQwMDM1NTk2NSAvKiBjYm9yICovLAorCQkJCTU3MzAzQzQ0MjAxMDVC
M0QwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yLmNwcCAqLywKKwkJCQk1NzMwM0M0MzIwMTA1QjNE
MDAzNTU5NjUgLyogQXV0aGVudGljYXRvci5oICovLAogCQkJCTU3MzAzQzI4MjAwOUIyRkMwMDM1
NTk2NSAvKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwICovLAogCQkJCTU3MzAz
QzI3MjAwOUIyRkMwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaCAq
LywKIAkJCQk1NzMwM0MyOTIwMDlCMkZDMDAzNTU5NjUgLyogQXV0aGVudGljYXRvckFzc2VydGlv
blJlc3BvbnNlLmlkbCAqLywKQEAgLTE5MjE2LDYgKzE5MjIzLDggQEAKIAkJCQlCQzJFRDZCQjBD
NkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCAqLywKIAkJCQlCRTZERjcwRTE3MUNB
MkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcCAqLywKIAkJCQlCRTZERjcxMDE3
MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNrTGlzdEN1c3RvbS5jcHAgKi8sCisJCQkJNTc2
MDgyNTYyMDExQkUwMjAwMTE2Njc4IC8qIEpTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNw
cCAqLywKKwkJCQk1NzYwODI0RjIwMTE4RDhEMDAxMTY2NzggLyogSlNCYXNpY0NyZWRlbnRpYWxD
dXN0b20uY3BwICovLAogCQkJCTg5MzFERTVBMTRDNDRDNDQwMDBEQzlEMiAvKiBKU0Jsb2JDdXN0
b20uY3BwICovLAogCQkJCTQ5RUVEMTRCMTA1MTk3MTkwMDA5OUZBQiAvKiBKU0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREN1c3RvbS5jcHAgKi8sCiAJCQkJQkM0NkMxRUQwQzBEREJERjAwMjBDRkMz
IC8qIEpTQ1NTUnVsZUN1c3RvbS5jcHAgKi8sCkBAIC0yNjQ5OCw2ICsyNjUwNyw3IEBACiAJCQkJ
OTM0RjcxM0EwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNDc0ODQxMEFBMTYxRDAwQjc5NDkzIC8qIEF1dGhlbnRp
Y2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY0QzBDRTkyMzRFMDA3RUYz
Q0QgLyogQXV0aGVudGljYXRpb25NYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MzAzQzQ2MjAx
MDVEMkYwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMw
M0MyQzIwMDlCNEE4MDAzNTU5NjUgLyogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0MxRjIwMDlBQjQyMDAzNTU5NjUgLyogQXV0aGVudGlj
YXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkQyMjAw
ODdBODMwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdXRoZW50aWNhdG9yUmVz
cG9uc2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdXRoZW50aWNh
dG9yUmVzcG9uc2VDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmZTA5NGVhNzc3N2U4NTQ2NmM0MmE5
NGE4NmFkOWNkZThhODcxYWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0F1dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAKQEAgLTAsMCArMSw0NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0F1dGhlbnRp
Y2F0b3JSZXNwb25zZS5oIgorCisjaW5jbHVkZSAiSlNBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25S
ZXNwb25zZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7Cit1c2luZyBuYW1lc3BhY2UgSlNDOworCitKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8QXV0aGVu
dGljYXRvclJlc3BvbnNlPiYmIHJlc3BvbnNlKQoreworICAgIGlmIChpczxBdXRoZW50aWNhdG9y
QXR0ZXN0YXRpb25SZXNwb25zZT4ocmVzcG9uc2UpKQorICAgICAgICByZXR1cm4gY3JlYXRlV3Jh
cHBlcjxBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZT4oZ2xvYmFsT2JqZWN0LCBXVEZN
b3ZlKHJlc3BvbnNlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8QXV0aGVudGljYXRvclJl
c3BvbnNlPihnbG9iYWxPYmplY3QsIFdURk1vdmUocmVzcG9uc2UpKTsKK30KKworSlNWYWx1ZSB0
b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEF1
dGhlbnRpY2F0b3JSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIHdyYXAoc3RhdGUs
IGdsb2JhbE9iamVjdCwgcmVzcG9uc2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jhc2ljQ3JlZGVudGlhbEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jhc2ljQ3JlZGVudGlhbEN1
c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjZiZGQ4YzI0YWUzY2I3OWEyNmQ0MjRkODA2MzhiNGEyMzJk
YzJjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmFz
aWNDcmVkZW50aWFsQ3VzdG9tLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTQmFzaWNDcmVkZW50aWFsLmgiCisKKyNpbmNs
dWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU1B1YmxpY0tleUNyZWRlbnRpYWwuaCIK
KworCituYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgSlNDOworCitKU1ZhbHVl
IHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWY8QmFzaWNDcmVkZW50aWFsPiYmIGNyZWRlbnRpYWwpCit7CisgICAgaWYg
KGlzPFB1YmxpY0tleUNyZWRlbnRpYWw+KGNyZWRlbnRpYWwpKQorICAgICAgICByZXR1cm4gY3Jl
YXRlV3JhcHBlcjxQdWJsaWNLZXlDcmVkZW50aWFsPihnbG9iYWxPYmplY3QsIFdURk1vdmUoY3Jl
ZGVudGlhbCkpOworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPEJhc2ljQ3JlZGVudGlhbD4oZ2xv
YmFsT2JqZWN0LCBXVEZNb3ZlKGNyZWRlbnRpYWwpKTsKK30KKworSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEJhc2ljQ3JlZGVu
dGlhbCYgY3JlZGVudGlhbCkKK3sKKyAgICByZXR1cm4gd3JhcChzdGF0ZSwgZ2xvYmFsT2JqZWN0
LCBjcmVkZW50aWFsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggNmY4MDNj
NTk1ZjVjMjE0M2FlOGNiNTQzODJjOWMxZDNjYTFkMTY1Zi4uNDhjNTNlMmNkMmVkMmI0ZmMzM2I0
NTFhZGNjZjIzNmQyYTExNjlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSlNB
dHRyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0F1ZGlvVHJhY2tDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkpTQXVkaW9UcmFja0xpc3RDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTQmFzaWNDcmVkZW50
aWFsQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0Jsb2JDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpT
Q1NTUnVsZUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4dGVuZGFibGVNZXNzYWdl
RXZlbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAppbmRleCBkOWUyNTBhMTY5M2Q2M2JjMTAzZDE1OWZkNzg2
NGRhNDI2N2YxMWRhLi4xMGI4NDhmMGQwNjNhMjBlMDIyMjg1MjdlMDAzY2ExOTNiOTNkY2FiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4dGVuZGFibGVNZXNzYWdl
RXZlbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXh0ZW5k
YWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJK
U0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIKIAogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3Iu
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDA5YTA1YzgwMDU1NGRhZjI5OTg4Y2I4MjA4YTkxNDc0YmI1YTAwNGMuLjg2
MDIyNWZjZGZmYzQyZWRmODAzMGQ3NTk5NDk3YTNmNzFkZWQ3NDAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MyBAQAorMjAxOC0wMS0yMiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJBdXRoTl0gSW1wbGVtZW50IFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW0NyZWF0
ZV1dIHdpdGggYSBkdW1teSBhdXRoZW50aWNhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE5MjgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2
NDU5ODkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAg
VGVzdCBjYXNlcyBhcmUgZGl2aWRlZCBpbnRvIHR3byBkaWZmZXJlbnQgZm9sZGVycy4gT25lIGZv
bGxvd3Mgd3B0IHN0eWxlLiBUaGUgb3RoZXIgY29udGFpbnMgdGVzdHMKKyAgICAgICAgdGhhdCBJ
IGRvbid0IGtub3cgaG93IHRvIHdyaXRlIHRoZW0gaW4gd3B0IHN0eWxlLgorCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXdpdGgtaW52
YWxpZC1wYXJhbWV0ZXJzLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXdpdGgtaW52YWxp
ZC1wYXJhbWV0ZXJzLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLTIu
aHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy93ZWJhdXRobi9yZXNvdXJjZXMvbGFzdC1sYXllci1mcmFtZS5odHRwcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNlcy9zZWNv
bmQtbGF5ZXItZnJhbWUuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qczogQWRkZWQuCisgICAgICAgIEl0IHdpbGwgYmUgZ29v
ZCB0byBjb252ZXJ0IHRoZW0gaW50byB3cHQgc3R5bGUuCisgICAgICAgICogaHR0cC93cHQvd2Vi
YXV0aG4vV2ViQXV0aE4uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9p
ZGwuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRo
bi9pZGwuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNy
ZWF0ZS1mYWlsdXJlLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy5odHRwcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1jcmVhdGUtc3VjY2Vzcy5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dw
dC93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qczogQWRkZWQuCisKIDIwMTgtMDEtMTggIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBXZSBzaG91bGQgYmUgYWJsZSB0
byB0ZXJtaW5hdGUgc2VydmljZSB3b3JrZXJzIHRoYXQgYXJlIHVucmVzcG9uc2l2ZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3JlYXRlLXdpdGgtaW52YWxpZC1wYXJhbWV0ZXJzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0
ZS13aXRoLWludmFsaWQtcGFyYW1ldGVycy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmNlMWRmYmNlODY3ZTBjMDc1NTNkMzhkMjRmNzY4NTc2NWE3ZmE5ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyZWF0ZS13aXRoLWludmFsaWQtcGFyYW1ldGVycy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2NCBAQAorVGVzdHMgdGhhdCBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB0
aHJvd3MgVHlwZUVycm9yIHdoZW4gaW52YWxpZCBvcHRpb25zIGFyZSBwYXNzZWQuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVh
dGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBNZW1i
ZXIgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5ycCBpcyByZXF1aXJlZCBhbmQg
bXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHkuCitQQVNT
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHBy
b21pc2UgIHdpdGggVHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy51c2VyIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFB1Ymxp
Y0tleUNyZWRlbnRpYWxVc2VyRW50aXR5LgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3Jl
YXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVt
YmVyIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuY2hhbGxlbmdlIGlzIHJlcXVp
cmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIChBcnJheUJ1ZmZlclZpZXcgb3IgQXJyYXlC
dWZmZXIpLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25z
KSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnMucHViS2V5Q3JlZFBhcmFtcyBpcyByZXF1aXJlZCBhbmQgbXVz
dCBiZSBhbiBpbnN0YW5jZSBvZiBzZXF1ZW5jZS4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6
IE1lbWJlciBQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHkubmFtZSBpcyByZXF1aXJlZCBhbmQg
bXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBET01TdHJpbmcuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVy
cm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkubmFtZSBpcyByZXF1aXJl
ZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBET01TdHJpbmcuCitQQVNTIG5hdmlnYXRvci5j
cmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGgg
VHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkuaWQgaXMgcmVx
dWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgKEFycmF5QnVmZmVyVmlldyBvciBBcnJh
eUJ1ZmZlcikuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlv
bnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3Jl
ZGVudGlhbFVzZXJFbnRpdHkuZGlzcGxheU5hbWUgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgRE9NU3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRl
KGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVy
IFB1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzLnR5cGUgaXMgcmVxdWlyZWQgYW5kIG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuCitQQVNTIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdp
dGggVHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlhbFBhcmFtZXRlcnMuYWxnIGlz
IHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIGxvbmcuCitQQVNTIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdp
dGggVHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IudHlwZSBp
cyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBQdWJsaWNLZXlDcmVkZW50aWFs
VHlwZS4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykg
cmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJsaWNLZXlDcmVkZW50
aWFsRGVzY3JpcHRvci5pZCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiAo
QXJyYXlCdWZmZXJWaWV3IG9yIEFycmF5QnVmZmVyKS4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJy
b3I6IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEgc3RyaW5nLgorUEFTUyBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRo
IFR5cGVFcnJvcjogQ2Fubm90IGNvbnZlcnQgYSBzeW1ib2wgdG8gYSBzdHJpbmcuCitQQVNTIG5h
dmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21p
c2UgIHdpdGggVHlwZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIHN0cmluZy4K
K1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0
ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEg
c3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25z
KSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlz
ZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9y
OiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRP
cHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BB
U1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQg
cHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGlu
dmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVq
ZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRv
IGEgc3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRp
b25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogQ2Fubm90IGNvbnZlcnQgYSBz
eW1ib2wgdG8gYSBzdHJpbmcuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52
YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9y
LgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWpl
Y3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0
aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVh
dGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBl
IGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25z
KSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlz
ZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9y
OiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRP
cHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BB
U1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQg
cHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGlu
dmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogQ2Fubm90IGNv
bnZlcnQgYSBzeW1ib2wgdG8gYSBzdHJpbmcuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5j
cmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBU
eXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRp
b25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJv
bWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVy
cm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIG51bWJlci4KK1BBU1MgbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0
aCBUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEgbnVtYmVyLgorUEFTUyBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9t
aXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxp
ZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3Rl
ZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogQ2Fubm90IGNvbnZlcnQgYSBzeW1ib2wgdG8gYSBz
dHJpbmcuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMp
IHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNl
ICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9w
dGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFT
UyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBw
cm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52
YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9y
LgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWpl
Y3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0
aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVh
dGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBl
IGVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWNyZWF0ZS13aXRoLWludmFsaWQtcGFyYW1ldGVycy5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jl
YXRlLXdpdGgtaW52YWxpZC1wYXJhbWV0ZXJzLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWYyNGQ3
M2IzMWMwYWZjMjI3YWQ4MjJhZDc0Y2VhMjRkOTlmN2MwMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0
ZS13aXRoLWludmFsaWQtcGFyYW1ldGVycy5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTIzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi9yZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHRocm93
cyBUeXBlRXJyb3Igd2hlbiBpbnZhbGlkIG9wdGlvbnMgYXJlIHBhc3NlZC4iKTsKKworICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgcnAgPSB7CisgICAgICAgIG5hbWU6ICJl
eGFtcGxlLmNvbSIKKyAgICB9OworICAgIGNvbnN0IHVzZXIgPSB7CisgICAgICAgIG5hbWU6ICJK
b2huIEFwcGxlc2VlZCIsCisgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2Iiks
CisgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIgorICAgIH07CisgICAgY29uc3QgY2hh
bGxlbmdlID0gYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpOworICAgIGNvbnN0IHB1YktleUNy
ZWRQYXJhbSA9IHsgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH07CisgICAgY29uc3QgZXhj
bHVkZUNyZWRlbnRpYWxzID0geyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBhc2NpaVRvVWludDhB
cnJheSgiMTIzNDU2IikgfTsKKworICAgIGNvbnN0IG1pc3NpbmdBdHRyaWJ1dGVWZWN0b3IgPSBb
CisgICAgICAgIC8vIG1pc3NpbmcgdG9wIGxldmVsIGF0dHJpYnV0ZQorICAgICAgICBbdW5kZWZp
bmVkLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB1
bmRlZmluZWQsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHVz
ZXIsIHVuZGVmaW5lZCwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNo
YWxsZW5nZSwgdW5kZWZpbmVkXSwKKyAgICAgICAgLy8gbWlzc2luZyBycCBhdHRyaWJ1dGUKKyAg
ICAgICAgW3sgbmFtZTogdW5kZWZpbmVkIH0sIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQ
YXJhbV1dLAorICAgICAgICAvLyBtaXNzaW5nIHVzZXIgYXR0cmlidXRlCisgICAgICAgIFtycCwg
eyBuYW1lOiB1bmRlZmluZWQsIGlkOiB1c2VyLmlkLCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5
TmFtZX0sIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHsgbmFt
ZTogdXNlci5uYW1lLCBpZDogdW5kZWZpbmVkLCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5TmFt
ZX0sIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHsgbmFtZTog
dXNlci5uYW1lLCBpZDogdXNlci5pZCwgZGlzcGxheU5hbWU6IHVuZGVmaW5lZH0sIGNoYWxsZW5n
ZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICAvLyBtaXNzaW5nIHB1YktleUNyZWRQYXJh
bXMgYXR0cmlidXRlCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbeyB0eXBlOiB1bmRl
ZmluZWQsIGFsZzogcHViS2V5Q3JlZFBhcmFtLmFsZyB9XV0sCisgICAgICAgIFtycCwgdXNlciwg
Y2hhbGxlbmdlLCBbeyB0eXBlOiBwdWJLZXlDcmVkUGFyYW0udHlwZSwgYWxnOiB1bmRlZmluZWQg
fV1dLAorICAgICAgICAvLyBtaXNzaW5nIGV4Y2x1ZGVDcmVkZW50aWFscyBhdHRyaWJ1dGUKKyAg
ICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQs
IFt7IHR5cGU6IHVuZGVmaW5lZCwgaWQ6IGV4Y2x1ZGVDcmVkZW50aWFscy5pZCB9XV0sCisgICAg
ICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBb
eyB0eXBlOiBleGNsdWRlQ3JlZGVudGlhbHMudHlwZSwgaWQ6IHVuZGVmaW5lZCB9XV0KKyAgICBd
OworCisgICAgY29uc3Qgd3JvbmdUeXBlQXR0cmlidXRlVmVjdG9yID0gWworICAgICAgICAvLyB3
cm9uZyBycCBhdHRyaWJ1dGUgdHlwZQorICAgICAgICBbeyBuYW1lOiBTeW1ib2woKSB9LCB1c2Vy
LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3sgbmFtZTogcnAubmFt
ZSwgaWNvbjogU3ltYm9sKCkgfSwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0s
CisgICAgICAgIFt7IG5hbWU6IHJwLm5hbWUsIGlkOiBTeW1ib2woKSB9LCB1c2VyLCBjaGFsbGVu
Z2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgLy8gd3JvbmcgdXNlciBhdHRyaWJ1dGUg
dHlwZQorICAgICAgICBbcnAsIHsgbmFtZTogU3ltYm9sKCksIGlkOiB1c2VyLmlkLCBkaXNwbGF5
TmFtZTogdXNlci5kaXNwbGF5TmFtZX0sIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAor
ICAgICAgICBbcnAsIHsgbmFtZTogdXNlci5uYW1lLCBpZDogMSwgZGlzcGxheU5hbWU6IHVzZXIu
ZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3Jw
LCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IHRydWUsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlO
YW1lfSwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1l
OiB1c2VyLm5hbWUsIGlkOiBudWxsLCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5TmFtZX0sIGNo
YWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHsgbmFtZTogdXNlci5u
YW1lLCBpZDogU3ltYm9sKCksIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwgY2hhbGxl
bmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUs
IGlkOiB7IH0sIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwgY2hhbGxlbmdlLCBbcHVi
S2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUsIGlkOiAiZm9v
IiwgZGlzcGxheU5hbWU6IHVzZXIuZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVk
UGFyYW1dXSwKKyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IFsgXSwgZGlzcGxh
eU5hbWU6IHVzZXIuZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwK
KyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IHVzZXIuaWQsIGRpc3BsYXlOYW1l
OiBTeW1ib2woKX0sIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAs
IHsgbmFtZTogdXNlci5uYW1lLCBpZDogdXNlci5pZCwgZGlzcGxheU5hbWU6IHVzZXIuZGlzcGxh
eU5hbWUsIGljb246IFN5bWJvbCgpfSwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisg
ICAgICAgIC8vIHdyb25nIGNoYWxsZW5nZSB0eXBlCisgICAgICAgIFtycCwgdXNlciwgMSwgW3B1
YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHVzZXIsIHRydWUsIFtwdWJLZXlDcmVkUGFy
YW1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBudWxsLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAg
ICAgIFtycCwgdXNlciwgU3ltYm9sKCksIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3Jw
LCB1c2VyLCAiZm9vIiwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHVzZXIsIFsg
XSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHVzZXIsIHsgfSwgW3B1YktleUNy
ZWRQYXJhbV1dLAorICAgICAgICAvLyB3cm9uZyBwdWJLZXlDcmVkUGFyYW0gdHlwZQorICAgICAg
ICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogMSwgYWxnOiBwdWJLZXlDcmVkUGFyYW0u
YWxnIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6IHRydWUsIGFs
ZzogcHViS2V5Q3JlZFBhcmFtLmFsZyB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdl
LCBbeyB0eXBlOiBudWxsLCBhbGc6IHB1YktleUNyZWRQYXJhbS5hbGcgfV1dLAorICAgICAgICBb
cnAsIHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogU3ltYm9sKCksIGFsZzogcHViS2V5Q3JlZFBh
cmFtLmFsZyB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbeyB0eXBlOiAiZm9v
IiwgYWxnOiBwdWJLZXlDcmVkUGFyYW0uYWxnIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFs
bGVuZ2UsIFt7IHR5cGU6IFsgXSwgYWxnOiBwdWJLZXlDcmVkUGFyYW0uYWxnIH1dXSwKKyAgICAg
ICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6IHsgfSwgYWxnOiBwdWJLZXlDcmVkUGFy
YW0uYWxnIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6IHB1Yktl
eUNyZWRQYXJhbS50eXBlLCBhbGc6IFN5bWJvbCgpIH1dXSwKKyAgICAgICAgLy8gd3JvbmcgdGlt
ZW91dCB0eXBlCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFt
XSwgU3ltYm9sKCksIHVuZGVmaW5lZF0sCisgICAgICAgIC8vIHdyb25nIGV4Y2x1ZGVDcmVkZW50
aWFscworICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVu
ZGVmaW5lZCwgW3sgdHlwZTogMSwgaWQ6IGV4Y2x1ZGVDcmVkZW50aWFscy5pZCB9XV0sCisgICAg
ICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBb
eyB0eXBlOiB0cnVlLCBpZDogZXhjbHVkZUNyZWRlbnRpYWxzLmlkIH1dXSwKKyAgICAgICAgW3Jw
LCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6
IG51bGwsIGlkOiBleGNsdWRlQ3JlZGVudGlhbHMuaWQgfV1dLAorICAgICAgICBbcnAsIHVzZXIs
IGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogU3ltYm9s
KCksIGlkOiBleGNsdWRlQ3JlZGVudGlhbHMuaWQgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNo
YWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogImZvbyIsIGlk
OiBleGNsdWRlQ3JlZGVudGlhbHMuaWQgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5n
ZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogWyBdLCBpZDogZXhjbHVk
ZUNyZWRlbnRpYWxzLmlkIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJL
ZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IHsgfSwgaWQ6IGV4Y2x1ZGVDcmVkZW50
aWFscy5pZCB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBh
cmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBleGNsdWRlQ3JlZGVudGlhbHMudHlwZSwgaWQ6IDEg
fV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVu
ZGVmaW5lZCwgW3sgdHlwZTogZXhjbHVkZUNyZWRlbnRpYWxzLnR5cGUsIGlkOiB0cnVlIH1dXSwK
KyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmlu
ZWQsIFt7IHR5cGU6IGV4Y2x1ZGVDcmVkZW50aWFscy50eXBlLCBpZDogbnVsbCB9XV0sCisgICAg
ICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBb
eyB0eXBlOiBleGNsdWRlQ3JlZGVudGlhbHMudHlwZSwgaWQ6IFN5bWJvbCgpIH1dXSwKKyAgICAg
ICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7
IHR5cGU6IGV4Y2x1ZGVDcmVkZW50aWFscy50eXBlLCBpZDogImZvbyIgfV1dLAorICAgICAgICBb
cnAsIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlw
ZTogZXhjbHVkZUNyZWRlbnRpYWxzLnR5cGUsIGlkOiBbIF0gfV1dLAorICAgICAgICBbcnAsIHVz
ZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogZXhj
bHVkZUNyZWRlbnRpYWxzLnR5cGUsIGlkOiB7IH0gfV1dCisgICAgXQorCisgICAgZnVuY3Rpb24g
bWFrZU9wdGlvbnMoYXR0cmlidXRlcykKKyAgICB7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLmxl
bmd0aCA9PSA0KQorICAgICAgICAgICAgcmV0dXJuIHsgcHVibGljS2V5OiB7IHJwOiBhdHRyaWJ1
dGVzWzBdLCB1c2VyOiBhdHRyaWJ1dGVzWzFdLCBjaGFsbGVuZ2U6IGF0dHJpYnV0ZXNbMl0sIHB1
YktleUNyZWRQYXJhbXM6IGF0dHJpYnV0ZXNbM10gfSB9OworICAgICAgICByZXR1cm4geyBwdWJs
aWNLZXk6IHsgcnA6IGF0dHJpYnV0ZXNbMF0sIHVzZXI6IGF0dHJpYnV0ZXNbMV0sIGNoYWxsZW5n
ZTogYXR0cmlidXRlc1syXSwgcHViS2V5Q3JlZFBhcmFtczogYXR0cmlidXRlc1szXSwgdGltZW91
dDogYXR0cmlidXRlc1s0XSwgIGV4Y2x1ZGVDcmVkZW50aWFsczogYXR0cmlidXRlc1s1XX0gfTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KGF0dHJpYnV0ZXNWZWN0b3JzKSB7CisgICAg
ICAgIGF0dHJpYnV0ZXNWZWN0b3JzLmZvckVhY2goZnVuY3Rpb24oYXR0cmlidXRlc1ZlY3Rvcikg
eworICAgICAgICAgICAgYXR0cmlidXRlc1ZlY3Rvci5mb3JFYWNoKGFzeW5jIGZ1bmN0aW9uKGF0
dHJpYnV0ZXMpIHsKKyAgICAgICAgICAgICAgICBpbnZhbGlkT3B0aW9ucyA9IG1ha2VPcHRpb25z
KGF0dHJpYnV0ZXMpOworICAgICAgICAgICAgICAgIGF3YWl0IHNob3VsZFJlamVjdCgnbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucyknKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KTsKKworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisKKyAgICBj
b25zdCB2ZWN0b3JzID0gW107CisgICAgdmVjdG9ycy5wdXNoKG1pc3NpbmdBdHRyaWJ1dGVWZWN0
b3IpOworICAgIHZlY3RvcnMucHVzaCh3cm9uZ1R5cGVBdHRyaWJ1dGVWZWN0b3IpOworICAgIHJ1
blRlc3QodmVjdG9ycyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNh
bWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLTIuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4t
d2l0aC1hbmNlc3RvcnMtMi5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc1YzVjMDFh
MTNlMTUwYjMyY2M0YTRjZmY3MDA1MGFhNDJlMzdhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3Jp
Z2luLXdpdGgtYW5jZXN0b3JzLTIuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1Rlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGRvZXNuJ3Qgc2hhcmUgdGhlIHNhbWUgb3JpZ2luIHdp
dGggYWxsIGl0cyBhbmNlc3RvcnMgY291bGQgbm90IGFjY2VzcyB0aGUgQVBJLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaHJvdyBOb3RBbGxvd2VkRXJyb3IuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
c2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMtMi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1h
bmNlc3RvcnMtMi5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5MDExYTk4NTE4YzkxNjdkNGJmZWU2
ZmRkMGY2NmY5NTYwYjgxZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2Vz
dG9ycy0yLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgZnJh
bWUgdGhhdCBkb2Vzbid0IHNoYXJlIHRoZSBzYW1lIG9yaWdpbiB3aXRoIGFsbCBpdHMgYW5jZXN0
b3JzIGNvdWxkIG5vdCBhY2Nlc3MgdGhlIEFQSS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNl
aXZlTWVzc2FnZSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGlmcmFtZSBzcmM9Imh0dHBzOi8vbG9jYWxob3N0Ojg0NDMvd2ViYXV0aG4vcmVzb3VyY2VzL2xh
c3QtbGF5ZXItZnJhbWUuaHR0cHMuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1l
LW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc1
YzVjMDFhMTNlMTUwYjMyY2M0YTRjZmY3MDA1MGFhNDJlMzdhOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNh
bWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBkb2Vzbid0IHNoYXJlIHRoZSBzYW1lIG9yaWdp
biB3aXRoIGFsbCBpdHMgYW5jZXN0b3JzIGNvdWxkIG5vdCBhY2Nlc3MgdGhlIEFQSS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhyb3cgTm90QWxsb3dlZEVycm9yLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRo
LWFuY2VzdG9ycy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4Yzk1Y2Y3NjNmODdjOTdmNThiMGEy
YTQxNjQ3ODUwZjAxMGZlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2Vz
dG9ycy5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGZyYW1l
IHRoYXQgZG9lc24ndCBzaGFyZSB0aGUgc2FtZSBvcmlnaW4gd2l0aCBhbGwgaXRzIGFuY2VzdG9y
cyBjb3VsZCBub3QgYWNjZXNzIHRoZSBBUEkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2
ZU1lc3NhZ2UsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxp
ZnJhbWUgc3JjPSJodHRwczovL2xvY2FsaG9zdDo4NDQzL3dlYmF1dGhuL3Jlc291cmNlcy9zZWNv
bmQtbGF5ZXItZnJhbWUuaHR0cHMuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNlcy9sYXN0
LWxheWVyLWZyYW1lLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhu
L3Jlc291cmNlcy9sYXN0LWxheWVyLWZyYW1lLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2FhMmNj
NDk2MDY3MjYzYWU1M2ZjN2VmMmUwODA0ZTkwM2UzMWY1OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL2xhc3QtbGF5ZXItZnJhbWUu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDM3IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InV0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gbWVz
c2FnZVRvVG9wKG1lc3NhZ2VQcmVmaXgpIHsKKyAgICAgICAgdG9wLnBvc3RNZXNzYWdlKG1lc3Nh
Z2VQcmVmaXgsICJodHRwczovLzEyNy4wLjAuMTo4NDQzIik7CisgICAgfQorCisgICAgY29uc3Qg
b3B0aW9ucyA9IHsKKyAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICBycDogeworICAg
ICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAg
ICAgICAgICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAg
ICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
Y2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICBwdWJL
ZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0KKyAgICAgICAg
fQorICAgIH07CisgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVu
KAorICAgICAgICBmdW5jdGlvbih2YWx1ZSkgeworICAgICAgICAgICAgbWVzc2FnZVRvVG9wKCJB
Y2Nlc3MgZ3JhbnRlZC4gIiArIHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgZnVuY3Rpb24o
ZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBpZiAoZXhjZXB0aW9uLm5hbWUgPT0gIk5vdEFsbG93
ZWRFcnJvciIpCisgICAgICAgICAgICAgICAgbWVzc2FnZVRvVG9wKCJQQVNTIFRocm93IE5vdEFs
bG93ZWRFcnJvci4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtZXNzYWdl
VG9Ub3AoIlRocm93ICIgKyBleGNlcHRpb24ubmFtZSAgKyAiLiIpOworICAgICAgICB9CisgICAg
KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL3NlY29uZC1sYXllci1mcmFtZS5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9yZXNvdXJjZXMvc2Vjb25k
LWxheWVyLWZyYW1lLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NmMTYzMGU0MGY0Y2QxYjVhZWMz
YWI2YmI5ZGE0NGNjZWYzNzYyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL3NlY29uZC1sYXllci1mcmFtZS5odHRwcy5odG1sCkBA
IC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgor
PGJvZHk+CisgICAgPGlmcmFtZSBzcmM9Imxhc3QtbGF5ZXItZnJhbWUuaHR0cHMuaHRtbCI+PC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmF1dGhuL3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2I2ZjRlODQyNDQ0NGFlODVm
OTA3YTY1ZTEzM2E1MThhMGRkZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcwpAQCAtMCwwICsxLDE4IEBACitmdW5j
dGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJo
dHRwczovL2xvY2FsaG9zdDo4NDQzIikgeworICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9m
KCJQQVNTICIpICE9PSAtMSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBs
YWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXZlbnQuZGF0YSk7CisgICAgfSBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEg
bWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gYXNjaWlUb1VpbnQ4QXJyYXkoc3RyKQor
eworICAgIGNvbnN0IGNoYXJzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVu
Z3RoOyArK2kpCisgICAgICAgIGNoYXJzLnB1c2goc3RyLmNoYXJDb2RlQXQoaSkpOworICAgIHJl
dHVybiBuZXcgVWludDhBcnJheShjaGFycyk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9XZWJBdXRoTi5pZGwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9XZWJBdXRoTi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE4OWVjM2ZjMzAwMjc0MTcyNGJmNTFlNTRj
MDRjMWQ5MDgwMWZlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL1dlYkF1dGhOLmlkbApAQCAtMCwwICsxLDEzNSBAQAorLy8gQ29waWVkIGZyb20gaHR0
cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNpZGwtaW5kZXggYXMgb2YgNSBEZWNlbWJlciAy
MDE3CitbU2VjdXJlQ29udGV4dCwgRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgUHVibGljS2V5
Q3JlZGVudGlhbCA6IENyZWRlbnRpYWwgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgQXJyYXlCdWZmZXIgICAgICAgICAgICAgIHJhd0lkOworICAgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgQXV0aGVudGljYXRvclJlc3BvbnNlICAgIHJlc3BvbnNlOworICAg
IEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9ucyBnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCk7Cit9
OworCitwYXJ0aWFsIGRpY3Rpb25hcnkgQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CisgICAg
TWFrZVB1YmxpY0tleUNyZWRlbnRpYWxPcHRpb25zICAgICAgcHVibGljS2V5OworfTsKKworcGFy
dGlhbCBkaWN0aW9uYXJ5IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyB7CisgICAgUHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zICAgICAgcHVibGljS2V5OworfTsKKworcGFydGlhbCBp
bnRlcmZhY2UgUHVibGljS2V5Q3JlZGVudGlhbCB7CisgICAgc3RhdGljIFByb21pc2UgPCBib29s
ZWFuID4gaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCk7Cit9
OworCitbU2VjdXJlQ29udGV4dCwgRXhwb3NlZD1XaW5kb3ddCitpbnRlcmZhY2UgQXV0aGVudGlj
YXRvclJlc3BvbnNlIHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5
QnVmZmVyICAgICAgY2xpZW50RGF0YUpTT047Cit9OworCitbU2VjdXJlQ29udGV4dCwgRXhwb3Nl
ZD1XaW5kb3ddCitpbnRlcmZhY2UgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgOiBB
dXRoZW50aWNhdG9yUmVzcG9uc2UgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1
dGUgQXJyYXlCdWZmZXIgICAgICBhdHRlc3RhdGlvbk9iamVjdDsKK307CisKK1tTZWN1cmVDb250
ZXh0LCBFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVz
cG9uc2UgOiBBdXRoZW50aWNhdG9yUmVzcG9uc2UgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgQXJyYXlCdWZmZXIgICAgICBhdXRoZW50aWNhdG9yRGF0YTsKKyAgICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5QnVmZmVyICAgICAgc2lnbmF0dXJlOwor
ICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgQXJyYXlCdWZmZXIgICAgICB1c2Vy
SGFuZGxlOworfTsKKworZGljdGlvbmFyeSBQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycyB7
CisgICAgcmVxdWlyZWQgUHVibGljS2V5Q3JlZGVudGlhbFR5cGUgICAgICB0eXBlOworICAgIHJl
cXVpcmVkIENPU0VBbGdvcml0aG1JZGVudGlmaWVyICAgICAgYWxnOworfTsKKworZGljdGlvbmFy
eSBNYWtlUHVibGljS2V5Q3JlZGVudGlhbE9wdGlvbnMgeworICAgIHJlcXVpcmVkIFB1YmxpY0tl
eUNyZWRlbnRpYWxScEVudGl0eSAgICAgICAgIHJwOworICAgIHJlcXVpcmVkIFB1YmxpY0tleUNy
ZWRlbnRpYWxVc2VyRW50aXR5ICAgICAgIHVzZXI7CisKKyAgICByZXF1aXJlZCBCdWZmZXJTb3Vy
Y2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZTsKKyAgICByZXF1aXJlZCBz
ZXF1ZW5jZTxQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycz4gIHB1YktleUNyZWRQYXJhbXM7
CisKKyAgICB1bnNpZ25lZCBsb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1l
b3V0OworICAgIHNlcXVlbmNlPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiAgICAgIGV4
Y2x1ZGVDcmVkZW50aWFscyA9IFtdOworICAgIEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJp
YSAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb247CisgICAgQXR0ZXN0YXRpb25D
b252ZXlhbmNlUHJlZmVyZW5jZSAgICAgICAgICAgICAgYXR0ZXN0YXRpb24gPSAibm9uZSI7Cisg
ICAgQXV0aGVudGljYXRpb25FeHRlbnNpb25zICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9u
czsKK307CisKK2RpY3Rpb25hcnkgUHVibGljS2V5Q3JlZGVudGlhbEVudGl0eSB7CisgICAgcmVx
dWlyZWQgRE9NU3RyaW5nICAgIG5hbWU7CisgICAgVVNWU3RyaW5nICAgICAgICAgICAgIGljb247
Cit9OworCitkaWN0aW9uYXJ5IFB1YmxpY0tleUNyZWRlbnRpYWxScEVudGl0eSA6IFB1YmxpY0tl
eUNyZWRlbnRpYWxFbnRpdHkgeworICAgIERPTVN0cmluZyAgICAgIGlkOworfTsKKworZGljdGlv
bmFyeSBQdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eSA6IFB1YmxpY0tleUNyZWRlbnRpYWxF
bnRpdHkgeworICAgIHJlcXVpcmVkIEJ1ZmZlclNvdXJjZSAgIGlkOworICAgIHJlcXVpcmVkIERP
TVN0cmluZyAgICAgIGRpc3BsYXlOYW1lOworfTsKKworZGljdGlvbmFyeSBBdXRoZW50aWNhdG9y
U2VsZWN0aW9uQ3JpdGVyaWEgeworICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50ICAgICAgYXV0
aGVudGljYXRvckF0dGFjaG1lbnQ7CisgICAgYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICBy
ZXF1aXJlUmVzaWRlbnRLZXkgPSBmYWxzZTsKKyAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQgIHVzZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKK307CisKK2VudW0gQXV0aGVudGlj
YXRvckF0dGFjaG1lbnQgeworICAgICJwbGF0Zm9ybSIsICAgICAgIC8vIFBsYXRmb3JtIGF0dGFj
aG1lbnQKKyAgICAiY3Jvc3MtcGxhdGZvcm0iICAvLyBDcm9zcy1wbGF0Zm9ybSBhdHRhY2htZW50
Cit9OworCitlbnVtIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UgeworICAgICJub25l
IiwKKyAgICAiaW5kaXJlY3QiLAorICAgICJkaXJlY3QiCit9OworCitkaWN0aW9uYXJ5IFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyB7CisgICAgcmVxdWlyZWQgQnVmZmVyU291cmNl
ICAgICAgICAgICAgICAgIGNoYWxsZW5nZTsKKyAgICB1bnNpZ25lZCBsb25nICAgICAgICAgICAg
ICAgICAgICAgICAgdGltZW91dDsKKyAgICBVU1ZTdHJpbmcgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcnBJZDsKKyAgICBzZXF1ZW5jZTxQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4g
YWxsb3dDcmVkZW50aWFscyA9IFtdOworICAgIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCAg
ICAgICAgICB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7CisgICAgQXV0aGVudGljYXRp
b25FeHRlbnNpb25zICAgICAgICAgICAgIGV4dGVuc2lvbnM7Cit9OworCit0eXBlZGVmIHJlY29y
ZDxET01TdHJpbmcsIGFueT4gICAgICAgQXV0aGVudGljYXRpb25FeHRlbnNpb25zOworCitkaWN0
aW9uYXJ5IENvbGxlY3RlZENsaWVudERhdGEgeworICAgIHJlcXVpcmVkIERPTVN0cmluZyAgICAg
ICAgICAgdHlwZTsKKyAgICByZXF1aXJlZCBET01TdHJpbmcgICAgICAgICAgIGNoYWxsZW5nZTsK
KyAgICByZXF1aXJlZCBET01TdHJpbmcgICAgICAgICAgIG9yaWdpbjsKKyAgICByZXF1aXJlZCBE
T01TdHJpbmcgICAgICAgICAgIGhhc2hBbGdvcml0aG07CisgICAgRE9NU3RyaW5nICAgICAgICAg
ICAgICAgICAgICB0b2tlbkJpbmRpbmdJZDsKKyAgICBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnMg
ICAgIGNsaWVudEV4dGVuc2lvbnM7CisgICAgQXV0aGVudGljYXRpb25FeHRlbnNpb25zICAgICBh
dXRoZW50aWNhdG9yRXh0ZW5zaW9uczsKK307CisKK2VudW0gUHVibGljS2V5Q3JlZGVudGlhbFR5
cGUgeworICAgICJwdWJsaWMta2V5IgorfTsKKworZGljdGlvbmFyeSBQdWJsaWNLZXlDcmVkZW50
aWFsRGVzY3JpcHRvciB7CisgICAgcmVxdWlyZWQgUHVibGljS2V5Q3JlZGVudGlhbFR5cGUgICAg
ICB0eXBlOworICAgIHJlcXVpcmVkIEJ1ZmZlclNvdXJjZSAgICAgICAgICAgICAgICAgaWQ7Cisg
ICAgc2VxdWVuY2U8QXV0aGVudGljYXRvclRyYW5zcG9ydD4gICAgICB0cmFuc3BvcnRzOworfTsK
KworZW51bSBBdXRoZW50aWNhdG9yVHJhbnNwb3J0IHsKKyAgICAidXNiIiwKKyAgICAibmZjIiwK
KyAgICAiYmxlIgorfTsKKwordHlwZWRlZiBsb25nIENPU0VBbGdvcml0aG1JZGVudGlmaWVyOwor
CitlbnVtIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB7CisgICAgInJlcXVpcmVkIiwKKyAg
ICAicHJlZmVycmVkIiwKKyAgICAiZGlzY291cmFnZWQiCit9OworCit0eXBlZGVmIHNlcXVlbmNl
PEFBR1VJRD4gICAgICBBdXRoZW50aWNhdG9yU2VsZWN0aW9uTGlzdDsKKwordHlwZWRlZiBCdWZm
ZXJTb3VyY2UgICAgICBBQUdVSUQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9pZGwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vaWRsLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2RkYjRhYWM4MGQyNDY4
YzQ5ZDliZTg1NzRiNjBlMzEwYWEzMGRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU1IEBA
CitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgaW1wbGVtZW50YXRp
b25zIG9mIHRoZSBXZWJBdXRoTiBBUEkgbWF0Y2ggd2l0aCBpdHMgV2ViSURMIGRlZmluaXRpb24u
CisKKworUEFTUyBTZXR1cCBmb3IgV2ViQXV0aE4gQVBJIElETCB0ZXN0cy4gCitQQVNTIENyZWRl
bnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdCAKK1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgQ3Jl
ZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
CitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFT
UyBDcmVkZW50aWFsIGludGVyZmFjZTogYXR0cmlidXRlIGlkIAorUEFTUyBDcmVkZW50aWFsIGlu
dGVyZmFjZTogYXR0cmlidXRlIHR5cGUgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1Mg
UHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgUHVibGlj
S2V5Q3JlZGVudGlhbCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFB1YmxpY0tleUNyZWRl
bnRpYWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29u
c3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZTog
YXR0cmlidXRlIHJhd0lkIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZTogYXR0
cmlidXRlIHJlc3BvbnNlIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZTogb3Bl
cmF0aW9uIGdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSAKK1BBU1MgUHVibGljS2V5Q3JlZGVu
dGlhbCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRp
Y2F0b3JBdmFpbGFibGUoKSAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCBtdXN0IGJlIHByaW1h
cnkgaW50ZXJmYWNlIG9mIGNyZWRlbnRpYWwgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBjcmVk
ZW50aWFsIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZTogY3JlZGVudGlhbCBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInJhd0lkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1Mg
UHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGNyZWRlbnRpYWwgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJyZXNwb25zZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFB1YmxpY0tleUNy
ZWRlbnRpYWwgaW50ZXJmYWNlOiBjcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0
Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUHVi
bGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGNyZWRlbnRpYWwgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNlOiBjcmVkZW50aWFs
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaWQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBD
cmVkZW50aWFsIGludGVyZmFjZTogY3JlZGVudGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInR5
cGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBBdXRoZW50aWNhdG9yUmVzcG9uc2UgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BB
U1MgQXV0aGVudGljYXRvclJlc3BvbnNlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBB
dXRoZW50aWNhdG9yUmVzcG9uc2UgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBBdXRoZW50
aWNhdG9yUmVzcG9uc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIEF1dGhlbnRpY2F0b3JSZXNwb25zZSBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIEF1dGhlbnRpY2F0b3JSZXNwb25z
ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjbGllbnREYXRhSlNPTiAKK1BBU1MgQXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9u
c2UgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlv
blJlc3BvbnNlIGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJl
c3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgQXV0aGVudGlj
YXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYXR0ZXN0YXRpb25P
YmplY3QgCitQQVNTIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlIG11c3QgYmUgcHJp
bWFyeSBpbnRlcmZhY2Ugb2YgY3JlZGVudGlhbC5yZXNwb25zZSAKK1BBU1MgU3RyaW5naWZpY2F0
aW9uIG9mIGNyZWRlbnRpYWwucmVzcG9uc2UgCitQQVNTIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlv
blJlc3BvbnNlIGludGVyZmFjZTogY3JlZGVudGlhbC5yZXNwb25zZSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImF0dGVzdGF0aW9uT2JqZWN0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgQXV0
aGVudGljYXRvclJlc3BvbnNlIGludGVyZmFjZTogY3JlZGVudGlhbC5yZXNwb25zZSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImNsaWVudERhdGFKU09OIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BB
U1MgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIEF1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgQXV0aGVudGljYXRv
ckFzc2VydGlvblJlc3BvbnNlIGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgQXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBBdXRoZW50aWNhdG9yQXNzZXJ0
aW9uUmVzcG9uc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBBdXRo
ZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYXV0aGVudGlj
YXRvckRhdGEgCitQQVNTIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBzaWduYXR1cmUgCitQQVNTIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25z
ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB1c2VySGFuZGxlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9pZGwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL2lkbC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkMmJjYmZkNzI0NDdhZGJk
YTgxYzAxODVkMzk3NTA1ZWFiNjQwNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9pZGwuaHR0cHMuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD11dGYtOD4KKyAgICA8
dGl0bGU+SURMIGNoZWNrIG9mIFdlYkF1dGhOPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jaWRsLWluZGV4Ij4KKyAgICA8
c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9L3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8aDEg
Y2xhc3M9Imluc3RydWN0aW9ucyI+RGVzY3JpcHRpb248L2gxPgorCis8cCBjbGFzcz0iaW5zdHJ1
Y3Rpb25zIj5UaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRo
ZSBXZWJBdXRoTiBBUEkgbWF0Y2ggd2l0aCBpdHMgV2ViSURMIGRlZmluaXRpb24uPC9wPgorCis8
ZGl2IGlkPSdsb2cnPjwvZGl2PgorCis8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+
IHsKKyAgICBjb25zdCBpZGxVUkwgPSBbIldlYkF1dGhOLmlkbCJdOworICAgIGNvbnN0IGlkbEFy
cmF5ID0gbmV3IElkbEFycmF5KCk7CisgICAgY29uc3QgaWRsVGV4dCA9IGF3YWl0IGZldGNoKGlk
bFVSTCkudGhlbihyID0+IHIudGV4dCgpKTsKKworICAgIGlkbEFycmF5LmFkZF91bnRlc3RlZF9p
ZGxzKCJpbnRlcmZhY2UgQXJyYXlCdWZmZXIge307Iik7CisKKyAgICBpZGxBcnJheS5hZGRfaWRs
cyhgCisgICAgICAgIFtFeHBvc2VkPVdpbmRvdywgU2VjdXJlQ29udGV4dF0KKyAgICAgICAgaW50
ZXJmYWNlIENyZWRlbnRpYWwgeworICAgICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0
cmluZyBpZDsKKyAgICAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsK
KyAgICAgICAgfTsKKyAgICBgKTsKKyAgICBpZGxBcnJheS5hZGRfaWRscyhpZGxUZXh0KTsKKwor
ICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAg
cnA6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVz
ZWVkIiwKKyAgICAgICAgICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAor
ICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKKyAg
ICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAt
NyB9XSwKKyAgICAgICAgfQorICAgIH07CisgICAgY3JlZGVudGlhbCA9IGF3YWl0IG5hdmlnYXRv
ci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyk7CisKKyAgICBpZGxBcnJheS5hZGRfb2JqZWN0
cyh7IlB1YmxpY0tleUNyZWRlbnRpYWwiOiBbImNyZWRlbnRpYWwiXSwgIkF1dGhlbnRpY2F0b3JB
dHRlc3RhdGlvblJlc3BvbnNlIjogWyJjcmVkZW50aWFsLnJlc3BvbnNlIl19KTsKKyAgICBpZGxB
cnJheS50ZXN0KCk7Cit9LCAiU2V0dXAgZm9yIFdlYkF1dGhOIEFQSSBJREwgdGVzdHMuIik7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZh
aWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NzYxZjNmNGFjMjEyZmVmYzJj
OTA3Y2ExZWQwY2U3Mjk5NTUyOTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwn
cyBbW2NyZWF0ZV1dIHdpdGggdGltZW91dCAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtb
Y3JlYXRlXV0gd2l0aCBhIG1pc21hdGNoZWQgUlAgSUQgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2NyZWF0ZV1dIHdpdGggYW4gZW1wdHkgcHViS2V5Q3JlZFBhcmFtcyAKK1BBU1MgUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB1c2VyIGNhbmNlbGxhdGlvbnMgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjBlOGU0MTk3NWFhMTRmNTVhZDIwOGUyMjdkYzA3ZjZiZGMxMmI3NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsODggQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRpdGxlPldlYiBBdXRoZW50aWNhdGlvbiBBUEk6IFB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2NyZWF0ZV1dIGZhaWx1cmUgY2FzZXMuPC90aXRsZT4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuL3Jl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1Ymxp
Y0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6
ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6
IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAg
ICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAg
ICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAg
ICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAt
NyB9XSwKKyAgICAgICAgICAgICAgICB0aW1lb3V0OiAwLAorICAgICAgICAgICAgfQorICAgICAg
ICB9OworICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3Ii
LAorICAgICAgICAgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSk7Cisg
ICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdGltZW91dCIpOwor
CisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9
IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAg
ICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIsCisgICAgICAgICAgICAgICAgICAg
IGlkOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB1
c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAg
ICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAg
ICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAg
ICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFs
ZzogLTcgfV0sCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHJldHVybiBwcm9t
aXNlX3JlamVjdHModCwgIlNlY3VyaXR5RXJyb3IiLAorICAgICAgICAgICAgbmF2aWdhdG9yLmNy
ZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwn
cyBbW2NyZWF0ZV1dIHdpdGggYSBtaXNtYXRjaGVkIFJQIElEIik7CisKKyAgICBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAg
cHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAg
bmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiAibG9jYWxob3N0Igor
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAg
ICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICBpZDog
YXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5
TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBj
aGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBw
dWJLZXlDcmVkUGFyYW1zOiBbIF0sCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAg
IHJldHVybiBwcm9taXNlX3JlamVjdHModCwgIk5vdFN1cHBvcnRlZEVycm9yIiwKKyAgICAgICAg
ICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykpOworICAgIH0sICJQdWJs
aWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIGFuIGVtcHR5IHB1YktleUNyZWRQYXJh
bXMiKTsKKworICAgIC8vIFRoaXMgdGVzdCBpcyB0YXJnZXRpbmcgdG8gdGhlIGR1bW15IGF1dGhl
bnRpY2F0b3IsIHdoaWNoIGFsd2F5cyBjYW5jZWwgdGhlIG9wZXJhdGlvbgorICAgIC8vIHdoZW4g
dXNlci5kaXNwbGF5TmFtZSA9ICJKb2huIi4KKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
eworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7Cisg
ICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9z
dCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiAibG9jYWxob3N0IgorICAgICAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAi
Sm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJy
YXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAor
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWlu
dDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sg
dHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAgfQorICAgICAgICB9
OworICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLAor
ICAgICAgICAgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSk7CisgICAg
fSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdXNlciBjYW5jZWxsYXRp
b25zIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Y3JlYXRlLXN1Y2Nlc3MuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhODY4NDA2YjU4
MmY1MzRjOWQ2YTJiYjE1MTNlZmVkYjk0N2VkMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nl
c3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbWluaW11bSBvcHRpb25zIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jl
YXRlLXN1Y2Nlc3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy5odHRwcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBmM2VlZmYxNzM2NzIwNzAzZTM0ZDc3ZWU3NjExZjcwMmJlNmY0OTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Y3JlYXRlLXN1Y2Nlc3MuaHR0cHMuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzx0aXRsZT5XZWIgQXV0aGVudGljYXRpb24gQVBJOiBQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tjcmVhdGVdXSBzdWNjZXNzIGNhc2VzLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIC8vIFRoZSBmb2xsb3dpbmcgdGVzdCBpcyBz
cGVjaWZpY2FsbHkgdHVuZWQgZm9yIGN1cnJlbnQgZHVtbXkgYXV0aGVudGljYXRvci4KKyAgICBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAg
ICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAg
ICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2Vl
ZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2Iiks
CisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJN
VEl6TkRVMiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJw
dWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAg
ICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGZ1
bmN0aW9uKGNyZWRlbnRpYWwpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNyZWRl
bnRpYWwuaWQsICdfdycpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlh
bC50eXBlLCAncHVibGljLWtleScpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYnl0
ZXNUb0hleFN0cmluZyhjcmVkZW50aWFsLnJhd0lkKSwgJ2ZmJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhieXRlc1RvQVNDSUlTdHJpbmcoY3JlZGVudGlhbC5yZXNwb25zZS5jbGll
bnREYXRhSlNPTiksICd7InR5cGUiOiJ3ZWJhdXRobi5jcmVhdGUiLCJjaGFsbGVuZ2UiOiJNVEl6
TkRVMiIsIm9yaWdpbiI6Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMiLCJoYXNoQWxnb3JpdGhtIjoi
U0hBLTI1NiJ9Jyk7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBmaWVsZCBpcyBjb21wbGV0ZWx5
IGZha2UgMHgwMCo0MyB8IDB4MDAwMWZmIHwgU0hBLTI1NiBoYXNoIG9mIHRoZSBjbGllbnREYXRh
SlNPTgorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0hleFN0cmluZyhjcmVk
ZW50aWFsLnJlc3BvbnNlLmF0dGVzdGF0aW9uT2JqZWN0KSwgJzAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMWZmMzM3NGI5ODMxNmIzODA0NjcyN2E3NzBiOGU5NWM0NTgwYTI5MmI5ZTJm
NGJiNDRhMjUwYTU0MDJkNmQzNzgzYScpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIk5vdFN1cHBvcnRlZEVycm9yIiwgY3JlZGVudGlh
bC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkpOworICAgICAgICAgICAgICAgIH0gY2F0Y2gg
eyB9CisgICAgICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3Jl
YXRlXV0gd2l0aCBtaW5pbXVtIG9wdGlvbnMiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanMgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDc1ZWI3
ODQ4MTVlNjM1Yzg4NGIzODVkYzM1NzZlOGZjMzM5ZDk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanMKQEAgLTAsMCArMSw0
NSBAQAorZnVuY3Rpb24gYXNjaWlUb1VpbnQ4QXJyYXkoc3RyKQoreworICAgIHZhciBjaGFycyA9
IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKQorICAgICAgICBj
aGFycy5wdXNoKHN0ci5jaGFyQ29kZUF0KGkpKTsKKyAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXko
Y2hhcnMpOworfQorCisvLyBCdWlsZHMgYSBoZXggc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZvciBh
biBhcnJheS1saWtlIGlucHV0LgorLy8gImJ5dGVzIiBjYW4gYmUgYW4gQXJyYXkgb2YgYnl0ZXMs
IGFuIEFycmF5QnVmZmVyLCBvciBhbnkgVHlwZWRBcnJheS4KKy8vIFRoZSBvdXRwdXQgbG9va3Mg
bGlrZSB0aGlzOgorLy8gICAgYWIwMzRjOTkKK2Z1bmN0aW9uIGJ5dGVzVG9IZXhTdHJpbmcoYnl0
ZXMpCit7CisgICAgaWYgKCFieXRlcykKKyAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICBieXRl
cyA9IG5ldyBVaW50OEFycmF5KGJ5dGVzKTsKKyAgICB2YXIgaGV4Qnl0ZXMgPSBbXTsKKworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIGJ5
dGVTdHJpbmcgPSBieXRlc1tpXS50b1N0cmluZygxNik7CisgICAgICAgIGlmIChieXRlU3RyaW5n
Lmxlbmd0aCA8IDIpCisgICAgICAgICAgICBieXRlU3RyaW5nID0gIjAiICsgYnl0ZVN0cmluZzsK
KyAgICAgICAgaGV4Qnl0ZXMucHVzaChieXRlU3RyaW5nKTsKKyAgICB9CisKKyAgICByZXR1cm4g
aGV4Qnl0ZXMuam9pbigiIik7Cit9CisKK2Z1bmN0aW9uIGJ5dGVzVG9BU0NJSVN0cmluZyhieXRl
cykKK3sKKyAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWlu
dDhBcnJheShieXRlcykpOworfQorCit2YXIgQmFzZTY0VVJMID0geworICAgIHN0cmluZ2lmeTog
ZnVuY3Rpb24gKGEpIHsKKyAgICAgICAgdmFyIGJhc2U2NHN0cmluZyA9IGJ0b2EoU3RyaW5nLmZy
b21DaGFyQ29kZS5hcHBseSgwLCBhKSk7CisgICAgICAgIHJldHVybiBiYXNlNjRzdHJpbmcucmVw
bGFjZSgvPS9nLCAiIikucmVwbGFjZSgvXCsvZywgIi0iKS5yZXBsYWNlKC9cLy9nLCAiXyIpOwor
ICAgIH0sCisgICAgcGFyc2U6IGZ1bmN0aW9uIChzKSB7CisgICAgICAgIHMgPSBzLnJlcGxhY2Uo
Ly0vZywgIisiKS5yZXBsYWNlKC9fL2csICIvIikucmVwbGFjZSgvXHMvZywgJycpOworICAgICAg
ICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGF0b2Iocyks
IGZ1bmN0aW9uIChjKSB7IHJldHVybiBjLmNoYXJDb2RlQXQoMCkgfSkpOworICAgIH0KK307Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331970</attachid>
            <date>2018-01-22 15:47:48 -0800</date>
            <delta_ts>2018-01-22 17:25:33 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-181928-20180122154747.patch</filename>
            <type>text/plain</type>
            <size>102573</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEwZjBkZmQ3Zjg4ZTc0
NDA3MTUzMzUzYTNjMTNhODY5ZTAwNzgzMS4uMjFjNmYxMzc1YjQyZjQzOTU4OThhOGNiNTFkMzlm
YmU4MWY0Mzg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDE4LTAxLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBs
ZW1lbnQgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbQ3JlYXRlXV0gd2l0aCBhIGR1bW15IGF1dGhl
bnRpY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MTkyOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY0NTk4OTM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMg
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbQ3JlYXRlXV0gZnJvbSBodHRwczovL3d3dy53My5vcmcv
VFIvd2ViYXV0aG4vI2NyZWF0ZUNyZWRlbnRpYWwKKyAgICAgICAgYXMgb2YgNSBEZWNlbWJlciAy
MDE3LiBJbiBvcmRlciB0byBkbyB0ZXN0aW5nLCBhIGR1bW15IGF1dGhlbnRpY2F0b3IgaXMgaW1w
bGVtZW50ZWQgdG8gZXhlcmNpc2UgYSBmYWlsdXJlCisgICAgICAgIGFuZCBhIHBhc3MgcGF0aC4g
QSBudW1iZXIgb2YgZGVwZW5kZW5jaWVzIG5lZWQgdG8gYmUgcmVzb2x2ZWQgbGF0ZXIgaW4gb3Jk
ZXIgdG8gY29tcGx5IHdpdGggdGhlIHNwZWMuCisgICAgICAgIEFsc28sIHRoZSBjdXJyZW50IGFy
Y2hpdGVjdHVyZSBvZiBoYW5kbGluZyBhc3luYyBXZWJBdXRoTiBvcGVyYXRpb25zIGluY2x1ZGlu
ZyBkaXNwYXRjaGluZywgdGltZW91dCwgYW5kIGFib3J0aW5nCisgICAgICAgIG1pZ2h0IG5lZWQg
YSByZWRlc2lnbiBvbmNlIHRoZSB1bmRlcmx5aW5nIGF1dGhlbnRpY2F0b3IgaXMgY2xlYXIuIFNp
bmNlIHRoaXMgaXMgb3VyIGZpcnN0IGF0dGVtcHQgdG8gaW1wbGVtZW50CisgICAgICAgIGEgcHJv
dG90eXBlLCBhbGwgdGhvc2UgbGltaXRhdGlvbnMsIGluIG15IG9waW5pb24sIGNhbiBiZSBtYXJr
ZWQgYXMgbm9uLWJsb2NraW5nIHRvIGFjY2VsZXJhdGUgdGhlIHdob2xlCisgICAgICAgIHByb2Nl
c3MuIFRob3NlIGxpbWl0YXRpb25zIHdpbGwgdGhlbiBiZSBhZGRyZXNzZWQgb25jZSB0aGUgZmly
c3QgcHJvdG90eXBlIGlzIGZpbnNoZWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS13aXRoLWludmFsaWQtcGFyYW1ldGVy
cy5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBzLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNh
bWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
d3B0L3dlYmF1dGhuL2lkbC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0
ZS1zdWNjZXNzLmh0dHBzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlhbG1hbmFn
ZW1lbnQvQmFzaWNDcmVkZW50aWFsLmg6CisgICAgICAgICogTW9kdWxlcy9jcmVkZW50aWFsbWFu
YWdlbWVudC9CYXNpY0NyZWRlbnRpYWwuaWRsOgorICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlh
bG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3JlZGVudGlhbHNDb250YWluZXI6OlBlbmRpbmdQcm9taXNlOjpQZW5kaW5nUHJvbWlzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6ZGlzcGF0Y2hUYXNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3JlZGVudGlhbHNDb250YWluZXI6OmlzQ3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRp
YWxzQ29udGFpbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6
UGVuZGluZ1Byb21pc2U6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRvcjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3I6Om1ha2VD
cmVkZW50aWFsIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0
b3IuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmguCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjphdXRoZW50aWNhdG9yRGF0YSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OnNpZ25h
dHVyZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVz
cG9uc2U6OnVzZXJIYW5kbGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ckFzc2VydGlvblJlc3BvbnNlOjp+QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6
YXV0aGVudGljYXRvckRhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlOjpzaWduYXR1cmUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjp1c2VySGFuZGxlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNl
OjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjp+QXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmg6
CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2U6OmNsaWVudERhdGFK
U09OIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZTo6fkF1
dGhlbnRpY2F0b3JSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50
aWNhdG9yUmVzcG9uc2U6OmNsaWVudERhdGFKU09OKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHVibGlj
S2V5Q3JlZGVudGlhbEludGVybmFsOjpwcm9kdWNlQ2xpZW50RGF0YUpzb24pOgorICAgICAgICAo
V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbEludGVybmFsOjpwcm9kdWNlQ2xpZW50RGF0YUpz
b25IYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxJbnRlcm5hbDo6
Z2V0SWRGcm9tQXR0ZXN0YXRpb25PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5
Q3JlZGVudGlhbDo6UHVibGljS2V5Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbDo6cmF3SWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbDo6cmVzcG9uc2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbDo6Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpyYXdJZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpyZXNwb25zZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpnZXRDbGllbnRFeHRlbnNpb25S
ZXN1bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWwuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5pZGw6CisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9t
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50
aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5jcHAuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3
bHlDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwLgorICAgICAgICAo
V2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorCiAyMDE4LTAxLTE4
ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgYnVpbGQgZml4LCByZW1vdmVkIHVudXNlZCBsYW1iZGEgY2FwdHVyZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWNDcmVkZW50
aWFsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2lj
Q3JlZGVudGlhbC5oCmluZGV4IDc3NjBiZWE3MzE4ZTY5ZmNiNzM2OWJmNWI4MGY2YTBmODFhMjZk
YzIuLmQ3ZGI0MWI0YzFmODhhZTdkZWFhMDY4ZDg3MjNjYTU1YjFkNzU1MjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWNDcmVkZW50
aWFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9C
YXNpY0NyZWRlbnRpYWwuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVHlwZUNhc3Rz
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQxLDE1ICs0MiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIFJlbW90ZSwKICAgICB9Owog
CisgICAgQmFzaWNDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYsIFR5cGUsIERpc2NvdmVyeSk7CiAg
ICAgdmlydHVhbCB+QmFzaWNDcmVkZW50aWFsKCk7CiAKKyAgICB2aXJ0dWFsIFR5cGUgY3JlZGVu
dGlhbFR5cGUoKSBjb25zdCA9IDA7CisKICAgICBjb25zdCBTdHJpbmcmIGlkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZDsgfQogICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CiAgICAgRGlzY292ZXJ5IGRp
c2NvdmVyeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzY292ZXJ5OyB9CiAKLXByb3RlY3RlZDoKLSAg
ICBCYXNpY0NyZWRlbnRpYWwoY29uc3QgU3RyaW5nJiwgVHlwZSwgRGlzY292ZXJ5KTsKLQogcHJp
dmF0ZToKICAgICBTdHJpbmcgbV9pZDsKICAgICBUeXBlIG1fdHlwZTsKQEAgLTU3LDMgKzU4LDgg
QEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2RlZmluZSBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0JBU0lDX0NSRURFTlRJQUwoVG9DbGFzc05hbWUsIFR5cGUpIFwK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6VG9DbGFzc05hbWUpIFwKKyAg
ICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6QmFzaWNDcmVkZW50aWFsJiBjcmVk
ZW50aWFsKSB7IHJldHVybiBjcmVkZW50aWFsLmNyZWRlbnRpYWxUeXBlKCkgPT0gV2ViQ29yZTo6
VHlwZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2ljQ3JlZGVudGlhbC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2ljQ3Jl
ZGVudGlhbC5pZGwKaW5kZXggZjIzZWQyZjAzZmUyODVlMTEyNTg0OWE5M2RmN2MzYWQ2MWIyYTI0
Zi4uYTUwYzk0ZWJiMWIzM2NkODNkNTQ3YmIzZWYwOTViN2I2OTYwNTZkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9CYXNpY0NyZWRlbnRp
YWwuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
QmFzaWNDcmVkZW50aWFsLmlkbApAQCAtMjUsNiArMjUsNyBAQAogCiBbCiAgICAgSW50ZXJmYWNl
TmFtZT1DcmVkZW50aWFsLAorICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJBdXRoZW50aWNhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTZWN1cmVD
b250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5h
Z2VtZW50L0NyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCmluZGV4
IDFiNDAxZWY1YTdmNjUxYzk5OWY3MzBiYjNiNmRjMTM1YTkyN2FlYzQuLjM3NzVkZGEwODA2MzA0
ODgwZGNlYTM5YjlhODk2YjE0MjIxYmIyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucy5oCkBAIC0zMiw4ICszMiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgQWJvcnRTaWduYWw7Ci0KIHN0cnVjdCBDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zIHsKICAgICBSZWZQdHI8QWJvcnRTaWduYWw+IHNpZ25hbDsKICAgICBzdGQ6Om9wdGlvbmFs
PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+IHB1YmxpY0tleTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlh
bHNDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdl
bWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHAKaW5kZXggOWVjMzg1OGUwMTNmZDViNzRiYTAx
YzFkNDkwNWFmMGMyMWJjNDUzMy4uM2ZhZDc1YWQwZDNkOTYzMmZmYjE3OGIwN2EzODljMThmOTgy
M2YyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdl
bWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHAKQEAgLTM1LDE1
ICszNSwyOSBAQAogI2luY2x1ZGUgIkpTQmFzaWNDcmVkZW50aWFsLmgiCiAjaW5jbHVkZSAiUHVi
bGljS2V5Q3JlZGVudGlhbC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitDcmVkZW50aWFs
c0NvbnRhaW5lcjo6UGVuZGluZ1Byb21pc2U6OlBlbmRpbmdQcm9taXNlKFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSwgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiYmIHRpbWVyKQorICAgIDog
cHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQorICAgICwgdGltZXIoV1RGTW92ZSh0aW1lcikpCit7
Cit9CisKK0NyZWRlbnRpYWxzQ29udGFpbmVyOjpQZW5kaW5nUHJvbWlzZTo6UGVuZGluZ1Byb21p
c2UoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQorICAgIDogcHJvbWlzZShXVEZNb3Zl
KHByb21pc2UpKQoreworfQorCiBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Q3JlZGVudGlhbHNDb250
YWluZXIoV2Vha1B0cjxEb2N1bWVudD4mJiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQoV1RG
TW92ZShkb2N1bWVudCkpCiAgICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29t
LmFwcGxlLldlYktpdC5DcmVkZW50aWFsUXVldWUiKSkKIHsKIH0KIAorLy8gVGhlIGZvbGxvd2lu
ZyBpbXBsZW1lbnRzIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtY3JlZGVudGlhbC1t
YW5hZ2VtZW50LyNzYW1lLW9yaWdpbi13aXRoLWl0cy1hbmNlc3RvcnMKKy8vIGFzIG9mIDE0IE5v
dmVtYmVyIDIwMTcuCiBib29sIENyZWRlbnRpYWxzQ29udGFpbmVyOjpkb2VzSGF2ZVNhbWVPcmln
aW5Bc0l0c0FuY2VzdG9ycygpCiB7CiAgICAgaWYgKCFtX2RvY3VtZW50KQpAQCAtNTcsMjEgKzcx
LDUwIEBAIGJvb2wgQ3JlZGVudGlhbHNDb250YWluZXI6OmRvZXNIYXZlU2FtZU9yaWdpbkFzSXRz
QW5jZXN0b3JzKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorLy8gRklYTUU6IFNpbmNlIHRoZSB1
bmRlcmx5aW5nIGF1dGhlbnRpY2F0b3IgbW9kZWwgaXMgbm90IGNsZWFyIGF0IHRoaXMgbW9tZW50
LCB0aGUgdGltZXIgaXMgbW92ZWQgdG8gQ3JlZGVudGlhbHNDb250YWluZXIgc3VjaCB0aGF0Cisv
LyB0aW1lciBjYW4gc3RheSB3aXRoIG1haW4gdGhyZWFkIGFuZCB0aGVyZWZvcmUgY2FuIGVhc2ls
eSB0aW1lIG91dCBhY3Rpdml0aWVzIG9uIHRoZSB3b3JrIHF1ZXVlLgorLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTk0Ni4KKy8vIEZJWE1FOiBUaGUgdXNhZ2Vz
IG9mIEFib3J0U2lnbmFsIGFyZSBhbHNvIG1vdmVkIGhlcmUgZm9yIHRoZSB2ZXJ5IHNhbWUgcmVh
c29uLiBBbHNvIHRoZSBBYm9ydFNpZ25hbCBpcyBraW5kIG9mIGJvZ3VzIGF0IHRoaXMgbW9tZW50
CisvLyBzaW5jZSBpdCBkb2Vzbid0IHN1cHBvcnQgb2JzZXJ2ZXJzIChvciBvdGhlciBtZWFucykg
dG8gdHJpZ2dlciB0aGUgYWN0dWFsIGFib3J0IGFjdGlvbi4gRW5oYW5jZW1lbnQgdG8gQWJvcnRT
aWduYWwgaXMgbmVlZGVkLgorLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MTk0NS4KIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGU+Ci12b2lkIENyZWRl
bnRpYWxzQ29udGFpbmVyOjpkaXNwYXRjaFRhc2soT3BlcmF0aW9uVHlwZSYmIG9wZXJhdGlvbiwg
UmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQordm9pZCBDcmVkZW50aWFsc0NvbnRhaW5l
cjo6ZGlzcGF0Y2hUYXNrKE9wZXJhdGlvblR5cGUmJiBvcGVyYXRpb24sIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZCBsb25nPiB0aW1lT3V0SW5N
cykKIHsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmICghbV9kb2N1bWVudCkK
KyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byogcHJvbWlzZUluZGV4ID0gcHJvbWlzZS5wdHIo
KTsKLSAgICBtX3BlbmRpbmdQcm9taXNlcy5hZGQocHJvbWlzZUluZGV4LCBXVEZNb3ZlKHByb21p
c2UpKTsKICAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsKLSAgICBhdXRvIHRhc2sgPSBbcHJvbWlzZUluZGV4LCB3ZWFrVGhpcywgaXNTYW1l
T3JpZ2luV2l0aEl0c0FuY2VzdG9ycyA9IGRvZXNIYXZlU2FtZU9yaWdpbkFzSXRzQW5jZXN0b3Jz
KCksIG9wZXJhdGlvbiA9IFdURk1vdmUob3BlcmF0aW9uKV0gKCkgewotICAgICAgICBhdXRvIHJl
c3VsdCA9IG9wZXJhdGlvbihpc1NhbWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IHRyaW0gdGltZU91dEluTXMgdG8gc29tZSBtYXggYWxs
b3dhYmxlIG51bWJlci4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgxOTQ3CisgICAgaWYgKHRpbWVPdXRJbk1zKSB7CisgICAgICAgIGF1dG8gcGVuZGlu
Z1Byb21pc2UgPSBQZW5kaW5nUHJvbWlzZTo6Y3JlYXRlKFdURk1vdmUocHJvbWlzZSksIHN0ZDo6
bWFrZV91bmlxdWU8VGltZXI+KFtwcm9taXNlSW5kZXgsIHdlYWtUaGlzXSAoKSB7CisgICAgICAg
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKSB7
CisgICAgICAgICAgICAgICAgLy8gQSBsb2NrIHNob3VsZCBub3QgYmUgbmVlZGVkIGFzIGFsbCBj
YWxsYmFja3MgYXJlIGV4ZWN1dGVkIGluIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgICAgICAg
ICBpZiAoYXV0byBwcm9taXNlID0gd2Vha1RoaXMtPm1fcGVuZGluZ1Byb21pc2VzLnRha2UocHJv
bWlzZUluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgcHJvbWlzZS52YWx1ZSgpLT5wcm9taXNl
LT5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICAgICAgfQor
ICAgICAgICB9KSk7CisgICAgICAgIHBlbmRpbmdQcm9taXNlLT50aW1lci0+c3RhcnRPbmVTaG90
KFNlY29uZHModGltZU91dEluTXMudmFsdWUoKSAvIDEwMDAuMCkpOworICAgICAgICBtX3BlbmRp
bmdQcm9taXNlcy5hZGQocHJvbWlzZUluZGV4LCBXVEZNb3ZlKHBlbmRpbmdQcm9taXNlKSk7Cisg
ICAgfSBlbHNlCisgICAgICAgIG1fcGVuZGluZ1Byb21pc2VzLmFkZChwcm9taXNlSW5kZXgsIFBl
bmRpbmdQcm9taXNlOjpjcmVhdGUoV1RGTW92ZShwcm9taXNlKSkpOworCisgICAgYXV0byB0YXNr
ID0gW3Byb21pc2VJbmRleCwgd2Vha1RoaXMsIG9yaWdpbiA9IG1fZG9jdW1lbnQtPnNlY3VyaXR5
T3JpZ2luKCkuaXNvbGF0ZWRDb3B5KCksIGlzU2FtZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMgPSBk
b2VzSGF2ZVNhbWVPcmlnaW5Bc0l0c0FuY2VzdG9ycygpLCBvcGVyYXRpb24gPSBXVEZNb3ZlKG9w
ZXJhdGlvbildICgpIHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBvcGVyYXRpb24ob3JpZ2luLCBp
c1NhbWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
cHJvbWlzZUluZGV4LCB3ZWFrVGhpcywgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSAoKSBtdXRh
YmxlIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAgICAgICAgICAgIC8vIEEg
bG9jayBzaG91bGQgbm90IGJlIG5lZWRlZCBhcyBhbGwgY2FsbGJhY2tzIGFyZSBleGVjdXRlZCBp
biB0aGUgbWFpbiB0aHJlYWQuCiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IHdl
YWtUaGlzLT5tX3BlbmRpbmdQcm9taXNlcy50YWtlKHByb21pc2VJbmRleCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHByb21pc2UudmFsdWUoKS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkp
OwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBwcm9t
aXNlLnZhbHVlKCktPnJlc29sdmU8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPEJhc2ljQ3JlZGVu
dGlhbD4+PihyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkuZ2V0KCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgcHJvbWlzZS52YWx1ZSgpLT5wcm9taXNlLT5yZWplY3QocmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IEdvdCBzb21lIGNyYXp5IGNvbXBpbGUgZXJyb3Igd2hlbiBJ
IHdhcyB0cnlpbmcgdG8gcGFzcyBSSFMgdG8gdGhlIHJlc29sdmUgbWV0aG9kLgorICAgICAgICAg
ICAgICAgICAgICAgICAgUmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4gY3JlZGVudGlhbCA9IHJlc3Vs
dC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb21pc2Uu
dmFsdWUoKS0+cHJvbWlzZS0+cmVzb2x2ZTxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8QmFzaWND
cmVkZW50aWFsPj4+KGNyZWRlbnRpYWwuZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9KTsKQEAgLTk5LDEwICsx
NDIsMTAgQEAgdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KENyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFAKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGF1dG8gb3BlcmF0aW9uID0gW29wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpXSAoYm9v
bCBpc1NhbWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKSB7Ci0gICAgICAgIHJldHVybiBQdWJsaWNL
ZXlDcmVkZW50aWFsOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShvcHRpb25zLCBpc1NhbWVP
cmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKKyAgICBhdXRvIG9wZXJhdGlvbiA9IFtvcHRpb25zID0g
V1RGTW92ZShvcHRpb25zKV0gKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGJvb2wgaXNT
YW1lT3JpZ2luV2l0aEl0c0FuY2VzdG9ycykgeworICAgICAgICByZXR1cm4gUHVibGljS2V5Q3Jl
ZGVudGlhbDo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2Uob3JpZ2luLCBvcHRpb25zLCBpc1Nh
bWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKICAgICB9OwotICAgIGRpc3BhdGNoVGFzayhXVEZN
b3ZlKG9wZXJhdGlvbiksIFdURk1vdmUocHJvbWlzZSkpOworICAgIGRpc3BhdGNoVGFzayhXVEZN
b3ZlKG9wZXJhdGlvbiksIFdURk1vdmUocHJvbWlzZSksIG9wdGlvbnMucHVibGljS2V5LT50aW1l
b3V0KTsKIH0KIAogdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6c3RvcmUoY29uc3QgQmFzaWND
cmVkZW50aWFsJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQpAQCAtMTEyLDYgKzE1
NSw4IEBAIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OnN0b3JlKGNvbnN0IEJhc2ljQ3JlZGVu
dGlhbCYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYKIAogdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5l
cjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKKyAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVu
dHMgaHR0cHM6Ly93d3cudzMub3JnL1RSL2NyZWRlbnRpYWwtbWFuYWdlbWVudC0xLyNhbGdvcml0
aG0tY3JlYXRlIGFzIG9mIDQgQXVndXN0IDIwMTcKKyAgICAvLyB3aXRoIGVuaGFuY2VtZW50IGZy
b20gMTQgTm92ZW1iZXIgMjAxNyBFZGl0b3IncyBEcmFmdC4KICAgICAvLyBGSVhNRTogT3B0aW9u
YWwgb3B0aW9ucyBhcmUgcGFzc2VkIHdpdGggbm8gY29udGVudHMuIEl0IHNob3VsZCBiZSBzdGQ6
Om9wdGlvbmFsLgogICAgIGlmICgoIW9wdGlvbnMuc2lnbmFsICYmICFvcHRpb25zLnB1YmxpY0tl
eSkgfHwgIW1fZG9jdW1lbnQpIHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yIH0pOwpAQCAtMTIxLDIzICsxNjYsMjUgQEAgdm9pZCBDcmVkZW50
aWFsc0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlv
bnMsIFJlZjxEZWYKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJy
b3IgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgLy8gU3RlcCAxLTIuCiAgICAgQVNT
RVJUKG1fZG9jdW1lbnQtPmlzU2VjdXJlQ29udGV4dCgpKTsKIAotICAgIC8vIFRoaXMgaXMgYSBz
aG9ydGN1dCB0byBodHRwczovL3d3dy53My5vcmcvVFIvY3JlZGVudGlhbC1tYW5hZ2VtZW50LTEv
I2NyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy1yZWxldmFudC1jcmVkZW50aWFsLWludGVyZmFjZS1v
YmplY3RzLAotICAgIC8vIGFzIHdlIG9ubHkgc3VwcG9ydCBvbmUga2luZCBvZiBjcmVkZW50aWFs
cy4KKyAgICAvLyBTdGVwIDMtNC4gU2hvcnRjdXQgYXMgd2Ugb25seSBzdXBwb3J0IG9uZSBraW5k
IG9mIGNyZWRlbnRpYWxzLgogICAgIGlmICghb3B0aW9ucy5wdWJsaWNLZXkpIHsKICAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBvcGVyYXRpb24gPSBbb3B0aW9ucyA9IFdURk1v
dmUob3B0aW9ucyldIChib29sIGlzU2FtZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMpIHsKKyAgICBh
dXRvIHRpbWVvdXQgPSBvcHRpb25zLnB1YmxpY0tleS0+dGltZW91dDsKKyAgICAvLyBTdGVwIDUt
Ny4KKyAgICBhdXRvIG9wZXJhdGlvbiA9IFtvcHRpb25zID0gV1RGTW92ZShvcHRpb25zLnB1Ymxp
Y0tleS52YWx1ZSgpKV0gKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGJvb2wgaXNTYW1l
T3JpZ2luV2l0aEl0c0FuY2VzdG9ycykgewogICAgICAgICAvLyBTaG9ydGN1dCBhcyB3ZWxsLgot
ICAgICAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVudGlhbDo6Y3JlYXRlKG9wdGlvbnMsIGlzU2Ft
ZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMpOworICAgICAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVu
dGlhbDo6Y3JlYXRlKG9yaWdpbiwgb3B0aW9ucywgaXNTYW1lT3JpZ2luV2l0aEl0c0FuY2VzdG9y
cyk7CiAgICAgfTsKLSAgICBkaXNwYXRjaFRhc2soV1RGTW92ZShvcGVyYXRpb24pLCBXVEZNb3Zl
KHByb21pc2UpKTsKKyAgICBkaXNwYXRjaFRhc2soV1RGTW92ZShvcGVyYXRpb24pLCBXVEZNb3Zl
KHByb21pc2UpLCBvcHRpb25zLnB1YmxpY0tleS0+dGltZW91dCk7CiB9CiAKLXZvaWQgQ3JlZGVu
dGlhbHNDb250YWluZXI6OnByZXZlbnRTaWxlbnRBY2Nlc3MoUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKQordm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6cHJldmVudFNpbGVudEFjY2Vz
cyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAgcHJvbWlzZS0+
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0Nv
bnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9D
cmVkZW50aWFsc0NvbnRhaW5lci5oCmluZGV4IDM5MzFiOGRkM2ExYzkzMjAzNGMyZDM3NWNjYTgx
NjdmZTI5YWY3YmMuLmM5ZDM3MTM0MDliNWZiZWM5ODUzYTA1ZTFhOTI3ZTRiNTYwNjJiMmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3Jl
ZGVudGlhbHNDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRp
YWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRl
ICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTUwLDE5ICs1MSw0MCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGlzQ3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmJiwg
UmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAKLSAgICB2b2lkIHByZXZlbnRTaWxlbnRBY2Nlc3Mo
UmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBwcmV2ZW50U2lsZW50QWNjZXNzKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIENyZWRlbnRpYWxz
Q29udGFpbmVyKFdlYWtQdHI8RG9jdW1lbnQ+JiYpOwogCiAgICAgYm9vbCBkb2VzSGF2ZVNhbWVP
cmlnaW5Bc0l0c0FuY2VzdG9ycygpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5
cGU+Ci0gICAgdm9pZCBkaXNwYXRjaFRhc2soT3BlcmF0aW9uVHlwZSYmLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmKTsKKyAgICB2b2lkIGRpc3BhdGNoVGFzayhPcGVyYXRpb25UeXBlJiYsIFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYsIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQgbG9uZz4gdGltZU91dElu
TXMgPSBzdGQ6Om51bGxvcHQpOwogCiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsK
LSAgICBIYXNoTWFwPERlZmVycmVkUHJvbWlzZSosIFJlZjxEZWZlcnJlZFByb21pc2U+PiBtX3Bl
bmRpbmdQcm9taXNlczsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3dvcmtRdWV1ZTsKICAgICBXZWFr
UHRyRmFjdG9yeTxDcmVkZW50aWFsc0NvbnRhaW5lcj4gbV93ZWFrUHRyRmFjdG9yeTsKKworICAg
IC8vIEJ1bmRsZSBwcm9taXNlIGFuZCB0aW1lciwgc3VjaCB0aGF0IHRoZSB0aW1lciBjYW4KKyAg
ICAvLyB0aW1lcyBvdXQgdGhlIGNvcnJlc3BvbmRpbmcgcHJvbXNpZS4KKyAgICBzdHJ1Y3QgUGVu
ZGluZ1Byb21pc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxQZW5kaW5nUHJvbWlzZT4geworICAgICAg
ICBzdGF0aWMgUmVmPFBlbmRpbmdQcm9taXNlPiBjcmVhdGUoUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlLCBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+JiYgdGltZXIpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBlbmRpbmdQcm9taXNlKFdURk1vdmUocHJv
bWlzZSksIFdURk1vdmUodGltZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIFJlZjxQ
ZW5kaW5nUHJvbWlzZT4gY3JlYXRlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVuZGluZ1Byb21pc2Uo
V1RGTW92ZShwcm9taXNlKSkpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBQ
ZW5kaW5nUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8VGlt
ZXI+JiYpOworICAgICAgICBQZW5kaW5nUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsK
KworICAgIHB1YmxpYzoKKyAgICAgICAgUmVmPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZTsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiB0aW1lcjsKKyAgICB9OworICAgIEhhc2hNYXA8
RGVmZXJyZWRQcm9taXNlKiwgUmVmPFBlbmRpbmdQcm9taXNlPj4gbV9wZW5kaW5nUHJvbWlzZXM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWFiZDM0OTMzMDI0
NmZiNmFkZDBlMTk1NTQ3YTM2MjZmNmU3NmQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yLmNwcApAQCAtMCwwICsxLDYyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0
b3IuaCIKKworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0F1dGhlbnRpY2F0b3I6OkF1dGhlbnRpY2F0b3IoKQoreworfQorCitBdXRoZW50
aWNhdG9yJiBBdXRoZW50aWNhdG9yOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdXRoZW50aWNhdG9yPiBhdXRoZW50aWNhdG9yOworICAgIHJldHVybiBhdXRoZW50
aWNhdG9yOworfQorCitFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IEF1dGhlbnRpY2F0b3I6
Om1ha2VDcmVkZW50aWFsKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UnBFbnRpdHkmLCBjb25zdCBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpVc2VyRW50aXR5JiB1c2VyLCBjb25zdCBWZWN0b3I8
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4mLCBjb25zdCBW
ZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+JikgY29uc3QKK3sKKyAgICAvLyBU
aGUgZm9sbG93aW5ncyBpcyBqdXN0IGEgZHVtbXkgaW1wbGVtZW50YWlvbiB0byBzdXBwb3J0IGlu
aXRpYWwgZGV2ZWxvcG1lbnQuCisgICAgLy8gVXNlciBjYW5jZWxsYXRpb24gaXMgZWZmZWNpdmVs
eSBOb3RBbGxvd2VkRXJyb3IuCisgICAgaWYgKHVzZXIuZGlzcGxheU5hbWUgPT0gIkpvaG4iKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07CisKKyAgICAvLyBG
aWxsIGFsbCBwYXJ0cyBiZWZvcmUgQ3JlZGVudGlhbElEIHdpdGggMHgwMAorICAgIFZlY3Rvcjx1
aW50OF90PiBhdHRlc3RhdGlvbk9iamVjdCg0MywgMHgwMCk7CisgICAgLy8gRmlsbCBsZW5ndGgg
b2YgQ3JlZGVudGlhbElEOiAxIEJ5dGUKKyAgICBhdHRlc3RhdGlvbk9iamVjdC5hcHBlbmQoMHgw
MCk7CisgICAgYXR0ZXN0YXRpb25PYmplY3QuYXBwZW5kKDB4MDEpOworICAgIC8vIEZpbGwgQ3Jl
ZGVudGlhbElEOiAyNTUKKyAgICBhdHRlc3RhdGlvbk9iamVjdC5hcHBlbmQoMHhmZik7CisgICAg
Ly8gQXBwZW5kIGNsaWVudERhdGFKc29uSGFzaAorICAgIGF0dGVzdGF0aW9uT2JqZWN0LmFwcGVu
ZFZlY3RvcihoYXNoKTsKKyAgICByZXR1cm4gV1RGTW92ZShhdHRlc3RhdGlvbk9iamVjdCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTcyOTNkMTc1MDI0ZTBjODIzMjNk
MjA4ZGE3NGJhNDg5NmFjNDliZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvci5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAi
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworLy8gRklYTUU6IENvbnNpZGVyIG1vdmluZyBhbGwgc3RhdGljIG1ldGhvZHMgZnJvbSBQ
dWJsaWNLZXlDcmVkZW50aWFsIHRvIGhlcmUgYW5kIG1ha2luZyB0aGlzCisvLyBhcyBhbiBhdXRo
ZW50aWNhdG9yIG1hbmFnZXIgdGhhdCBjb250cm9scyBhbGwgYXV0aGVudGljYXRvciBhY3Rpdml0
aWVzLCBtb3N0bHkgbGlrZWx5IGFzbnljCisvLyBmb3IgYXR0ZXN0YXRpb25zLgorY2xhc3MgQXV0
aGVudGljYXRvciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXV0aGVudGljYXRvcik7Cisg
ICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPEF1dGhlbnRpY2F0b3I+OworcHVibGljOgor
ICAgIHN0YXRpYyBBdXRoZW50aWNhdG9yJiBzaW5nbGV0b24oKTsKKworICAgIC8vIE9taXQgcmVx
dWlyZVJlc2lkZW50S2V5LCByZXF1aXJlVXNlclByZXNlbmNlLCBhbmQgcmVxdWlyZVVzZXJWZXJp
ZmljYXRpb24gYXMgd2UgYWx3YXlzIHByb3ZpZGUgcmVzaWRlbnQga2V5cyBhbmQgcmVxdWlyZSB1
c2VyIHZlcmlmaWNhdGlvbi4KKyAgICBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IG1ha2VD
cmVkZW50aWFsKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UnBFbnRpdHkmLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zOjpVc2VyRW50aXR5JiwgY29uc3QgVmVjdG9yPFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+JiwgY29uc3QgVmVjdG9yPFB1Ymxp
Y0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiYgZXhjbHVkZUNyZWRlbnRpYWxJZHMpIGNvbnN0Owor
Citwcml2YXRlOgorICAgIEF1dGhlbnRpY2F0b3IoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRvckFzc2VydGlvblJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmNwcAppbmRleCA1NzA0ZjAxYmMw
YmVkZDEwYTIzMmIzNDdmNDQ4M2U3NjQ1ZjU0N2E4Li5iNDViZGJhMTk4ZGVjYmVmMTU5NWI1NjU4
NzMxYzc4YjIyZjFkNDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwCkBA
IC0zNiwyMSArMzYsMTcgQEAgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjpBdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UoUmVmUHRyPEFycmF5QnVmZmUKIHsKIH0KIAotQXV0aGVu
dGljYXRvckFzc2VydGlvblJlc3BvbnNlOjp+QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNl
KCkKLXsKLX0KLQotQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6
YXV0aGVudGljYXRvckRhdGEoKQorQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZTo6YXV0aGVudGljYXRvckRhdGEoKSBjb25zdAogewogICAgIHJldHVybiBtX2F1dGhl
bnRpY2F0b3JEYXRhLmdldCgpOwogfQogCi1BcnJheUJ1ZmZlciogQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlOjpzaWduYXR1cmUoKQorQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZTo6c2lnbmF0dXJlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zaWduYXR1
cmUuZ2V0KCk7CiB9CiAKLUFycmF5QnVmZmVyKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9u
c2U6OnVzZXJIYW5kbGUoKQorQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZTo6dXNlckhhbmRsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdXNlckhhbmRsZS5nZXQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oCmluZGV4IDk3YWI2Nzk4YWJkMzAz
ODNhZmZkZTYzODBjMDVhYzc4ZTA3NTdlMGQuLjc4M2FjYmFmOGQ4NDVmOTQ2YjU0NzBlZDcwNmE5
YTkzNjI1MzBlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaApAQCAtMzEsMTcg
KzMxLDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlIDogcHVibGljIEF1dGhlbnRpY2F0b3JSZXNwb25zZSB7CiBwdWJsaWM6Ci0g
ICAgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBj
bGllbnREYXRhSlNPTiwgUmVmUHRyPEFycmF5QnVmZmVyPiYmIGF1dGhlbnRpY2F0b3JEYXRhLCBS
ZWZQdHI8QXJyYXlCdWZmZXI+JiYgc2lnbmF0dXJlLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgdXNl
ckhhbmRsZSk7Ci0gICAgdmlydHVhbCB+QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKCk7
CisgICAgc3RhdGljIFJlZjxBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+IGNyZWF0ZShS
ZWZQdHI8QXJyYXlCdWZmZXI+JiYgY2xpZW50RGF0YUpTT04sIFJlZlB0cjxBcnJheUJ1ZmZlcj4m
JiBhdXRoZW50aWNhdG9yRGF0YSwgUmVmUHRyPEFycmF5QnVmZmVyPiYmIHNpZ25hdHVyZSwgUmVm
UHRyPEFycmF5QnVmZmVyPiYmIHVzZXJIYW5kbGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UoV1RGTW92ZShjbGllbnRE
YXRhSlNPTiksIFdURk1vdmUoYXV0aGVudGljYXRvckRhdGEpLCBXVEZNb3ZlKHNpZ25hdHVyZSks
IFdURk1vdmUodXNlckhhbmRsZSkpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5BdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UoKSA9IGRlZmF1bHQ7CiAKLSAgICBBcnJheUJ1ZmZlciogYXV0
aGVudGljYXRvckRhdGEoKTsKLSAgICBBcnJheUJ1ZmZlciogc2lnbmF0dXJlKCk7Ci0gICAgQXJy
YXlCdWZmZXIqIHVzZXJIYW5kbGUoKTsKKyAgICBBcnJheUJ1ZmZlciogYXV0aGVudGljYXRvckRh
dGEoKSBjb25zdDsKKyAgICBBcnJheUJ1ZmZlciogc2lnbmF0dXJlKCkgY29uc3Q7CisgICAgQXJy
YXlCdWZmZXIqIHVzZXJIYW5kbGUoKSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICBBdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UoUmVmUHRyPEFycmF5QnVmZmVyPiYmIGNsaWVudERhdGFKU09O
LCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgYXV0aGVudGljYXRvckRhdGEsIFJlZlB0cjxBcnJheUJ1
ZmZlcj4mJiBzaWduYXR1cmUsIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiB1c2VySGFuZGxlKTsKKwor
ICAgIFR5cGUgdHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFR5cGU6OkFzc2VydGlvbjsgfQor
CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBtX2F1dGhlbnRpY2F0b3JEYXRhOwogICAgIFJlZlB0
cjxBcnJheUJ1ZmZlcj4gbV9zaWduYXR1cmU7CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBtX3Vz
ZXJIYW5kbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQVVUSEVOVElDQVRPUl9SRVNQT05TRShBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVz
cG9uc2UsIEF1dGhlbnRpY2F0b3JSZXNwb25zZTo6VHlwZTo6QXNzZXJ0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0YXRp
b25SZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRp
Y2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmNwcAppbmRleCA4MTk2MDMwZjJkZGU0NzllYmI5ZThj
ZTgxYTZhNzdhZDU5MGM5NTAwLi44YjEwODJmZmE4NDc5NzM3OTExZTg5OTljZGI0MzVjZWI2ODAz
NmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRp
Y2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmNwcApAQCAtMzQsMTEg
KzM0LDcgQEAgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6OkF1dGhlbnRpY2F0b3JB
dHRlc3RhdGlvblJlc3BvbnNlKFJlZlB0cjxBcnJheUIKIHsKIH0KIAotQXV0aGVudGljYXRvckF0
dGVzdGF0aW9uUmVzcG9uc2U6On5BdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSgpCi17
Ci19Ci0KLUFycmF5QnVmZmVyKiBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6YXR0
ZXN0YXRpb25PYmplY3QoKQorQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJl
c3BvbnNlOjphdHRlc3RhdGlvbk9iamVjdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fYXR0ZXN0
YXRpb25PYmplY3QuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmgK
aW5kZXggYmE5YmJjZDUzYmEyY2U5N2Q4NDFiZTVlZDQ0YTA1MWQ1MGNiOGE0ZS4uYzI0NDAxZGFi
YThlN2IwNWRiMjE2M2U5NDJiOTU0MzNhYWRhOWYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0
aW9uUmVzcG9uc2UuaApAQCAtMzEsMTMgKzMxLDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgOiBwdWJsaWMgQXV0aGVudGlj
YXRvclJlc3BvbnNlIHsKIHB1YmxpYzoKLSAgICBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNw
b25zZShSZWZQdHI8QXJyYXlCdWZmZXI+JiYgY2xpZW50RGF0YUpTT04sIFJlZlB0cjxBcnJheUJ1
ZmZlcj4mJiBhdHRlc3RhdGlvbk9iamVjdCk7Ci0gICAgdmlydHVhbCB+QXV0aGVudGljYXRvckF0
dGVzdGF0aW9uUmVzcG9uc2UoKTsKKyAgICBzdGF0aWMgUmVmPEF1dGhlbnRpY2F0b3JBdHRlc3Rh
dGlvblJlc3BvbnNlPiBjcmVhdGUoUmVmUHRyPEFycmF5QnVmZmVyPiYmIGNsaWVudERhdGFKU09O
LCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgYXR0ZXN0YXRpb25PYmplY3QpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZShX
VEZNb3ZlKGNsaWVudERhdGFKU09OKSwgV1RGTW92ZShhdHRlc3RhdGlvbk9iamVjdCkpKTsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIH5BdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSgpID0g
ZGVmYXVsdDsKIAotICAgIEFycmF5QnVmZmVyKiBhdHRlc3RhdGlvbk9iamVjdCgpOworICAgIEFy
cmF5QnVmZmVyKiBhdHRlc3RhdGlvbk9iamVjdCgpIGNvbnN0OwogCiBwcml2YXRlOgorICAgIEF1
dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBjbGll
bnREYXRhSlNPTiwgUmVmUHRyPEFycmF5QnVmZmVyPiYmIGF0dGVzdGF0aW9uT2JqZWN0KTsKKwor
ICAgIFR5cGUgdHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFR5cGU6OkF0dGVzdGF0aW9uOyB9
CisKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1fYXR0ZXN0YXRpb25PYmplY3Q7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQVVUSEVOVElD
QVRPUl9SRVNQT05TRShBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSwgQXV0aGVudGlj
YXRvclJlc3BvbnNlOjpUeXBlOjpBdHRlc3RhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmNwcAppbmRleCBk
ZGIxOGIzNjQxYjNhMDAyODRjYzIwMDM1MmUzZWQ1ZWIzYWE4ZTliLi45NTdjNmRlYzg3ZTQ4ZDUx
Y2YwNzY1MjFhNGJiMjQwMmI4MDVjNGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwCkBAIC0zMywxMSAr
MzMsNyBAQCBBdXRoZW50aWNhdG9yUmVzcG9uc2U6OkF1dGhlbnRpY2F0b3JSZXNwb25zZShSZWZQ
dHI8QXJyYXlCdWZmZXI+JiYgY2xpZW50RGF0YUpTTwogewogfQogCi1BdXRoZW50aWNhdG9yUmVz
cG9uc2U6On5BdXRoZW50aWNhdG9yUmVzcG9uc2UoKQotewotfQotCi1BcnJheUJ1ZmZlciogQXV0
aGVudGljYXRvclJlc3BvbnNlOjpjbGllbnREYXRhSlNPTigpCitBcnJheUJ1ZmZlciogQXV0aGVu
dGljYXRvclJlc3BvbnNlOjpjbGllbnREYXRhSlNPTigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
Y2xpZW50RGF0YUpTT04uZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuaAppbmRleCBhM2ExNmI1NmY0OTdh
YmIzNDBkYmMyOTMyZGJiNDM3NGU5NDYyYjg5Li5kNDE3M2I5OTgzOGU0MGExZTAzNjAyMDgyNGJm
MWU4ZmFhYjhlMjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmgKQEAgLTI3LDE4ICsyNywzMSBAQAogCiAjaW5j
bHVkZSA8cnVudGltZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBBdXRoZW50aWNhdG9yUmVzcG9uc2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8QXV0aGVudGljYXRvclJlc3BvbnNlPiB7CiBwdWJsaWM6CisgICAgZW51bSBjbGFz
cyBUeXBlIHsKKyAgICAgICAgQXNzZXJ0aW9uLAorICAgICAgICBBdHRlc3RhdGlvbgorICAgIH07
CisKICAgICBleHBsaWNpdCBBdXRoZW50aWNhdG9yUmVzcG9uc2UoUmVmUHRyPEFycmF5QnVmZmVy
PiYmKTsKLSAgICB2aXJ0dWFsIH5BdXRoZW50aWNhdG9yUmVzcG9uc2UoKTsKKyAgICB2aXJ0dWFs
IH5BdXRoZW50aWNhdG9yUmVzcG9uc2UoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIFR5cGUg
dHlwZSgpIGNvbnN0ID0gMDsKIAotICAgIEFycmF5QnVmZmVyKiBjbGllbnREYXRhSlNPTigpOwor
ICAgIEFycmF5QnVmZmVyKiBjbGllbnREYXRhSlNPTigpIGNvbnN0OwogCiBwcml2YXRlOgogICAg
IFJlZlB0cjxBcnJheUJ1ZmZlcj4gbV9jbGllbnREYXRhSlNPTjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0FVVEhFTlRJQ0FU
T1JfUkVTUE9OU0UoVG9DbGFzc05hbWUsIFR5cGUpIFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
QkVHSU4oV2ViQ29yZTo6VG9DbGFzc05hbWUpIFwKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29u
c3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlJiByZXNwb25zZSkgeyByZXR1cm4gcmVz
cG9uc2UudHlwZSgpID09IFdlYkNvcmU6OlR5cGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19FTkQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yUmVzcG9uc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9B
dXRoZW50aWNhdG9yUmVzcG9uc2UuaWRsCmluZGV4IGU1YzRkZGNjNTg0YzRiODExYzI1ZjI4NzYw
MWVmNjhlYjEzYjZmYjEuLjFiZjQwOTlkMTJiNGY2MjQ5ZDk1YjNmZWJhYjQ4MzhmNzdjODNlNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRv
clJlc3BvbnNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhl
bnRpY2F0b3JSZXNwb25zZS5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCisgICAgQ3Vz
dG9tVG9KU09iamVjdCwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkF1dGhlbnRpY2F0aW9uLAog
ICAgIEV4cG9zZWQ9V2luZG93LAogICAgIFNlY3VyZUNvbnRleHQsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNwcAppbmRl
eCAxN2FjYjJmMTg1MjQwZTk5MTE5ZjFhZTIzMjEyYWYyMTE4ODg5OGMxLi5lNjgzZGNhYzY1MzQy
ZjNkZWNjYTkzZWU3N2ZlN2EwNWQ2Nzc0YWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5jcHAKQEAgLTI2LDEyICsy
Niw3NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRp
YWwuaCIKIAorI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3IuaCIKKyNpbmNsdWRlICJBdXRoZW50aWNh
dG9yUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgiCiAj
aW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bi5oIgorI2luY2x1ZGUgPHBhbC9jcnlwdG8vQ3J5cHRvRGlnZXN0Lmg+CisjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9CYXNlNjQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QdWJsaWNLZXlDcmVk
ZW50aWFsOjpQdWJsaWNLZXlDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYgaWQpCi0gICAgOiBCYXNp
Y0NyZWRlbnRpYWwoaWQsIFR5cGU6OlB1YmxpY0tleSwgRGlzY292ZXJ5OjpSZW1vdGUpCituYW1l
c3BhY2UgUHVibGljS2V5Q3JlZGVudGlhbEludGVybmFsIHsKKworLy8gVGhlIGxheW91dCBvZiBh
dHRlc3RhdGlvbiBvYmplY3Q6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jYXR0ZXN0
YXRpb24tb2JqZWN0IGFzIG9mIDUgRGVjZW1iZXIgMjAxNy4KKy8vIEhlcmUgaXMgYSBzdW1tYXJ5
IGJlZm9yZSBDcmVkZW50aWFsSUQgaW4gdGhlIGxheW91dC4gQWxsIGxlbmd0aHMgYXJlIGZpeGVk
LgorLy8gUlAgSUQgaGFzaCAoMzIpIHx8IEZMQUdTICgxKSB8fCBDT1VOVEVSICg0KSB8fCBBQUdV
SUQgKDE2KSB8fCBMICgyKSB8fCBDUkVERU5USUFMIElEICg/KSB8fCAuLi4KK3N0YXRpYyBjb25z
dGV4cHIgc2l6ZV90IENyZWRlbnRpYWxJZExlbmd0aE9mZnNldCA9IDQzOworCitlbnVtIGNsYXNz
IENsaWVudERhdGFUeXBlIHsKKyAgICBDcmVhdGUsCisgICAgR2V0Cit9OworCisvLyBGSVhNRTog
QWRkIHRva2VuIGJpbmRpbmcgSUQgYW5kIGV4dGVuc2lvbnMuCisvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxOTQ4CisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgxOTQ5CitzdGF0aWMgUmVmPEFycmF5QnVmZmVyPiBwcm9kdWNl
Q2xpZW50RGF0YUpzb24oQ2xpZW50RGF0YVR5cGUgdHlwZSwgY29uc3QgQnVmZmVyU291cmNlJiBj
aGFsbGVuZ2UsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pCit7CisgICAgYXV0byBvYmpl
Y3QgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNh
c2UgQ2xpZW50RGF0YVR5cGU6OkNyZWF0ZToKKyAgICAgICAgb2JqZWN0LT5zZXRTdHJpbmcoQVND
SUlMaXRlcmFsKCJ0eXBlIiksIEFTQ0lJTGl0ZXJhbCgid2ViYXV0aG4uY3JlYXRlIikpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENsaWVudERhdGFUeXBlOjpHZXQ6CisgICAgICAgIG9iamVj
dC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgidHlwZSIpLCBBU0NJSUxpdGVyYWwoIndlYmF1dGhu
LmdldCIpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIG9iamVjdC0+c2V0U3RyaW5nKEFT
Q0lJTGl0ZXJhbCgiY2hhbGxlbmdlIiksIFdURjo6YmFzZTY0VVJMRW5jb2RlKGNoYWxsZW5nZS5k
YXRhKCksIGNoYWxsZW5nZS5sZW5ndGgoKSkpOworICAgIG9iamVjdC0+c2V0U3RyaW5nKEFTQ0lJ
TGl0ZXJhbCgib3JpZ2luIiksIG9yaWdpbi50b1Jhd1N0cmluZygpKTsKKyAgICAvLyBGSVhNRTog
VGhpcyBtaWdodCBiZSBwbGF0Zm9ybSBkZXBlbmRlbnQuCisgICAgb2JqZWN0LT5zZXRTdHJpbmco
QVNDSUlMaXRlcmFsKCJoYXNoQWxnb3JpdGhtIiksIEFTQ0lJTGl0ZXJhbCgiU0hBLTI1NiIpKTsK
KworICAgIGF1dG8gdXRmOEpTT05TdHJpbmcgPSBvYmplY3QtPnRvSlNPTlN0cmluZygpLnV0Zjgo
KTsKKyAgICByZXR1cm4gQXJyYXlCdWZmZXI6OmNyZWF0ZSh1dGY4SlNPTlN0cmluZy5kYXRhKCks
IHV0ZjhKU09OU3RyaW5nLmxlbmd0aCgpKTsKK30KKworc3RhdGljIFZlY3Rvcjx1aW50OF90PiBw
cm9kdWNlQ2xpZW50RGF0YUpzb25IYXNoKGNvbnN0IFJlZjxBcnJheUJ1ZmZlcj4mIGNsaWVudERh
dGFKc29uKQoreworICAgIGF1dG8gY3J5cHRvID0gUEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZShQ
QUw6OkNyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjU2KTsKKyAgICBjcnlwdG8tPmFkZEJ5
dGVzKGNsaWVudERhdGFKc29uLT5kYXRhKCksIGNsaWVudERhdGFKc29uLT5ieXRlTGVuZ3RoKCkp
OworICAgIHJldHVybiBjcnlwdG8tPmNvbXB1dGVIYXNoKCk7Cit9CisKK3N0YXRpYyBSZWZQdHI8
QXJyYXlCdWZmZXI+IGdldElkRnJvbUF0dGVzdGF0aW9uT2JqZWN0KGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgYXR0ZXN0YXRpb25PYmplY3QpCit7CisgICAgLy8gVGhlIGJ5dGUgbGVuZ3RoIG9mIEwg
aXMgMi4KKyAgICBpZiAoYXR0ZXN0YXRpb25PYmplY3Quc2l6ZSgpIDwgQ3JlZGVudGlhbElkTGVu
Z3RoT2Zmc2V0ICsgMikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgc2l6ZV90IGxlbmd0
aCA9IChhdHRlc3RhdGlvbk9iamVjdFtDcmVkZW50aWFsSWRMZW5ndGhPZmZzZXRdIDw8IDgpICsg
YXR0ZXN0YXRpb25PYmplY3RbQ3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ICsgMV07CisgICAgaWYg
KGF0dGVzdGF0aW9uT2JqZWN0LnNpemUoKSA8IENyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIDIg
KyBsZW5ndGgpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBBcnJheUJ1ZmZl
cjo6Y3JlYXRlKGF0dGVzdGF0aW9uT2JqZWN0LmRhdGEoKSArIENyZWRlbnRpYWxJZExlbmd0aE9m
ZnNldCArIDIsIGxlbmd0aCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFB1YmxpY0tleUNyZWRlbnRp
YWxJbnRlcm5hbAorCitQdWJsaWNLZXlDcmVkZW50aWFsOjpQdWJsaWNLZXlDcmVkZW50aWFsKFJl
ZlB0cjxBcnJheUJ1ZmZlcj4mJiBpZCwgUmVmUHRyPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJiBy
ZXNwb25zZSkKKyAgICA6IEJhc2ljQ3JlZGVudGlhbChXVEY6OmJhc2U2NFVSTEVuY29kZShpZC0+
ZGF0YSgpLCBpZC0+Ynl0ZUxlbmd0aCgpKSwgVHlwZTo6UHVibGljS2V5LCBEaXNjb3Zlcnk6OlJl
bW90ZSkKKyAgICAsIG1fcmF3SWQoV1RGTW92ZShpZCkpCisgICAgLCBtX3Jlc3BvbnNlKFdURk1v
dmUocmVzcG9uc2UpKQogewogfQogCkBAIC00MCw3ICsxMDUsNyBAQCBWZWN0b3I8UmVmPEJhc2lj
Q3JlZGVudGlhbD4+IFB1YmxpY0tleUNyZWRlbnRpYWw6OmNvbGxlY3RGcm9tQ3JlZGVudGlhbFN0
b3JlKENyZQogICAgIHJldHVybiB7IH07CiB9CiAKLUV4Y2VwdGlvbk9yPFJlZlB0cjxCYXNpY0Ny
ZWRlbnRpYWw+PiBQdWJsaWNLZXlDcmVkZW50aWFsOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJj
ZShjb25zdCBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBib29sKQorRXhjZXB0aW9uT3I8UmVm
UHRyPEJhc2ljQ3JlZGVudGlhbD4+IFB1YmxpY0tleUNyZWRlbnRpYWw6OmRpc2NvdmVyRnJvbUV4
dGVybmFsU291cmNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgQ3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zJiwgYm9vbCkKIHsKICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IgfTsKIH0KQEAgLTUwLDIyICsxMTUsNjYgQEAgUmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4g
UHVibGljS2V5Q3JlZGVudGlhbDo6c3RvcmUoUmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4mJiwgYm8K
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotRXhjZXB0aW9uT3I8UmVmUHRyPEJhc2ljQ3JlZGVu
dGlhbD4+IFB1YmxpY0tleUNyZWRlbnRpYWw6OmNyZWF0ZShjb25zdCBDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zJiwgYm9vbCkKK0V4Y2VwdGlvbk9yPFJlZlB0cjxCYXNpY0NyZWRlbnRpYWw+PiBQ
dWJsaWNLZXlDcmVkZW50aWFsOjpjcmVhdGUoY29uc3QgU2VjdXJpdHlPcmlnaW4mIGNhbGxlck9y
aWdpbiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucywg
Ym9vbCBzYW1lT3JpZ2luV2l0aEFuY2VzdG9ycykKIHsKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm90U3VwcG9ydGVkRXJyb3IgfTsKKyAgICB1c2luZyBuYW1lc3BhY2UgUHVibGljS2V5Q3JlZGVu
dGlhbEludGVybmFsOworCisgICAgLy8gVGhlIGZvbGxvd2luZyBpbXBsZW1lbnRzIGh0dHBzOi8v
d3d3LnczLm9yZy9UUi93ZWJhdXRobi8jY3JlYXRlQ3JlZGVudGlhbCBhcyBvZiA1IERlY2VtYmVy
IDIwMTcuCisgICAgLy8gRklYTUU6IEV4dGVuc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiBT
a2lwIFN0ZXAgMTEtMTIuCisgICAgLy8gU3RlcCAxLCAzLCA0LCAxNyBhcmUgaGFuZGxlZCBieSB0
aGUgY2FsbGVyLCBpbmNsdWRpbmcgb3B0aW9ucyBzYW5pdGl6aW5nLCB0aW1lciBhbmQgYWJvcnQg
c2lnbmFsLgorICAgIC8vIFN0ZXAgMi4KKyAgICBpZiAoIXNhbWVPcmlnaW5XaXRoQW5jZXN0b3Jz
KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07CisKKyAgICAv
LyBTdGVwIDUtNy4KKyAgICAvLyBGSVhNRTogV2UgbGFjayBmdW5kYW1lbnRhbCBzdXBwb3J0IGZy
b20gU2VjdXJpdHlPcmlnaW4gdG8gZGV0ZXJtaW5lIGlmIGEgaG9zdCBpcyBhIHZhbGlkIGRvbWFp
biBvciBub3QuCisgICAgLy8gU3RlcCA2IGlzIHRoZXJlZm9yZSBza2lwcGVkLiBBbHNvLCB3ZSBs
YWNrIHRoZSBzdXBwb3J0IHRvIGRldGVybWluZSB3aGV0aGVyIGEgZG9tYWluIGlzIGEgcmVnaXN0
cmFibGUKKyAgICAvLyBkb21haW4gc3VmZml4IG9mIGFub3RoZXIgZG9tYWluLiBIZW5jZSByZXN0
cmljdCB0aGUgY29tcGFyaXNvbiB0byBlcXVhbCBpbiBTdGVwIDcuCisgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTk1MAorICAgIGlmICghb3B0aW9ucy5y
cC5pZC5pc0VtcHR5KCkgJiYgIShjYWxsZXJPcmlnaW4uaG9zdCgpID09IG9wdGlvbnMucnAuaWQp
KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciB9OworICAgIGlmIChv
cHRpb25zLnJwLmlkLmlzRW1wdHkoKSkKKyAgICAgICAgb3B0aW9ucy5ycC5pZCA9IGNhbGxlck9y
aWdpbi5ob3N0KCk7CisKKyAgICAvLyBTdGVwIDgtMTAuCisgICAgLy8gTW9zdCBvZiB0aGUgam9i
cyBhcmUgZG9uZSBieSBiaW5kaW5ncy4gSG93ZXZlciwgd2UgY2FuJ3Qga25vdyBpZiB0aGUgSlNW
YWx1ZSBvZiBvcHRpb25zLnB1YktleUNyZWRQYXJhbXMKKyAgICAvLyBpcyBlbXB0eSBvciBub3Qu
IFJldHVybiBOb3RTdXBwb3J0ZWRFcnJvciBhcyBsb25nIGFzIGl0IGlzIGVtcHR5LgorICAgIGlm
IChvcHRpb25zLnB1YktleUNyZWRQYXJhbXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKKworICAgIC8vIFN0ZXAgMTMtMTUuCisgICAg
YXV0byBjbGllbnREYXRhSnNvbiA9IHByb2R1Y2VDbGllbnREYXRhSnNvbihDbGllbnREYXRhVHlw
ZTo6Q3JlYXRlLCBvcHRpb25zLmNoYWxsZW5nZSwgY2FsbGVyT3JpZ2luKTsKKyAgICBhdXRvIGNs
aWVudERhdGFKc29uSGFzaCA9IHByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2goY2xpZW50RGF0YUpz
b24pOworCisgICAgLy8gU3RlcCAxOC0yMS4KKyAgICAvLyBPbmx5IHBsYXRmb3JtIGF0dGFjaG1l
bnRzIHdpbGwgYmUgc3VwcG9ydGVkIGF0IHRoaXMgc3RhZ2UuIEFzc3VtaW5nIG9uZSBhdXRoZW50
aWNhdG9yIHBlciBkZXZpY2UuCisgICAgLy8gQWxzbywgcmVzaWRlbnQga2V5cywgdXNlciB2ZXJp
ZmljYXRpb25zIGFuZCBkaXJlY3QgYXR0ZXN0YXRpb24gYXJlIGVuZm9yY2VkIGF0IHRoaXMgdGFn
ZS4KKyAgICAvLyBGb3IgYmV0dGVyIHBlcmZvcm1hbmNlLCBubyBmaWx0ZXJpbmcgaXMgZG9uZSBo
ZXJlIHJlZ2FyZGluZyB0byBvcHRpb25zLmV4Y2x1ZGVDcmVkZW50aWFscy4KKyAgICAvLyBXaGF0
J3MgbW9yZSwgdXNlciBjYW5jZWxsYXRpb25zIGVmZmVjdGl2ZWx5IG1lYW5zIE5vdEFsbG93ZWRF
cnJvci4gVGhlcmVmb3JlLCB0aGUgYmVsb3cgY2FsbAorICAgIC8vIHdpbGwgb25seSByZXR1cm5z
IGVpdGhlciBhbiBleGNlcHRpb24gb3IgYSBQdWJsaWNLZXlDcmVkZW50aWFsIHJlZi4KKyAgICAv
LyBGSVhNRTogVGhlIGZvbGxvd2luZyBvcGVyYXRpb24gbWlnaHQgbmVlZCB0byBwZXJmb3JtIGFz
eW5jLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE5
NDYKKyAgICBhdXRvIHJlc3VsdCA9IEF1dGhlbnRpY2F0b3I6OnNpbmdsZXRvbigpLm1ha2VDcmVk
ZW50aWFsKGNsaWVudERhdGFKc29uSGFzaCwgb3B0aW9ucy5ycCwgb3B0aW9ucy51c2VyLCBvcHRp
b25zLnB1YktleUNyZWRQYXJhbXMsIG9wdGlvbnMuZXhjbHVkZUNyZWRlbnRpYWxzKTsKKyAgICBp
ZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKTsKKworICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSByZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCk7CisgICAgLy8gRklYTUU6IEdvdCBzb21lIGNyYXp5IGNvbXBpbGUgZXJy
b3Igd2hlbiBJIHdhcyB0cnlpbmcgdG8gcmV0dXJuIFJIUyBkaXJlY3RseS4KKyAgICBSZWZQdHI8
QmFzaWNDcmVkZW50aWFsPiBjcmVkZW50aWFsID0gUHVibGljS2V5Q3JlZGVudGlhbDo6Y3JlYXRl
KGdldElkRnJvbUF0dGVzdGF0aW9uT2JqZWN0KGF0dGVzdGF0aW9uT2JqZWN0KSwgQXV0aGVudGlj
YXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6OmNyZWF0ZShXVEZNb3ZlKGNsaWVudERhdGFKc29uKSwg
QXJyYXlCdWZmZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9iamVjdC5kYXRhKCksIGF0dGVzdGF0aW9u
T2JqZWN0LnNpemUoKSkpKTsKKyAgICByZXR1cm4gV1RGTW92ZShjcmVkZW50aWFsKTsKIH0KIAot
QXJyYXlCdWZmZXIqIFB1YmxpY0tleUNyZWRlbnRpYWw6OnJhd0lkKCkKK0FycmF5QnVmZmVyKiBQ
dWJsaWNLZXlDcmVkZW50aWFsOjpyYXdJZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcmF3SWQu
Z2V0KCk7CiB9CiAKLUF1dGhlbnRpY2F0b3JSZXNwb25zZSogUHVibGljS2V5Q3JlZGVudGlhbDo6
cmVzcG9uc2UoKQorQXV0aGVudGljYXRvclJlc3BvbnNlKiBQdWJsaWNLZXlDcmVkZW50aWFsOjpy
ZXNwb25zZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcmVzcG9uc2UuZ2V0KCk7CiB9CiAKLUV4
Y2VwdGlvbk9yPGJvb2w+IFB1YmxpY0tleUNyZWRlbnRpYWw6OmdldENsaWVudEV4dGVuc2lvblJl
c3VsdHMoKQorRXhjZXB0aW9uT3I8Ym9vbD4gUHVibGljS2V5Q3JlZGVudGlhbDo6Z2V0Q2xpZW50
RXh0ZW5zaW9uUmVzdWx0cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1
cHBvcnRlZEVycm9yIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5oCmluZGV4IDNjOTY2YmM5ODA0NTNhYjU1YmI5MjY5
ZTliMmVmMjU2ODNjN2FhNDIuLjViODY2Yjk2Mjk0OTEzODQyYzg2M2VmMWQ4NGMxYjkxODRlM2Fh
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbC5oCkBAIC0zNCwzNCArMzQsMzkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBBdXRoZW50aWNhdG9yUmVzcG9uc2U7CiBjbGFzcyBEZWZlcnJlZFByb21pc2U7Citj
bGFzcyBTZWN1cml0eU9yaWdpbjsKIAotc3RydWN0IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM7
CitzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczsKIHN0cnVjdCBDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnM7CiAKIGNsYXNzIFB1YmxpY0tleUNyZWRlbnRpYWwgZmluYWwg
OiBwdWJsaWMgQmFzaWNDcmVkZW50aWFsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFB1Ymxp
Y0tleUNyZWRlbnRpYWw+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGlkKQorICAgIHN0YXRpYyBSZWY8
UHVibGljS2V5Q3JlZGVudGlhbD4gY3JlYXRlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBpZCwgUmVm
UHRyPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJiByZXNwb25zZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFB1YmxpY0tleUNyZWRlbnRpYWwoaWQpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUHVibGljS2V5Q3JlZGVudGlhbChXVEZNb3ZlKGlkKSwgV1RGTW92
ZShyZXNwb25zZSkpKTsKICAgICB9CiAKICAgICBzdGF0aWMgVmVjdG9yPFJlZjxCYXNpY0NyZWRl
bnRpYWw+PiBjb2xsZWN0RnJvbUNyZWRlbnRpYWxTdG9yZShDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMmJiwgYm9vbCk7Ci0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZlB0cjxCYXNpY0NyZWRlbnRp
YWw+PiBkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnMmLCBib29sKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmUHRyPEJhc2ljQ3JlZGVu
dGlhbD4+IGRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwg
Y29uc3QgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgYm9vbCBzYW1lT3JpZ2luV2l0aEFuY2Vz
dG9ycyk7CiAgICAgc3RhdGljIFJlZlB0cjxCYXNpY0NyZWRlbnRpYWw+IHN0b3JlKFJlZlB0cjxC
YXNpY0NyZWRlbnRpYWw+JiYsIGJvb2wpOwotICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWZQdHI8
QmFzaWNDcmVkZW50aWFsPj4gY3JlYXRlKGNvbnN0IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
LCBib29sKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4+
IGNyZWF0ZShjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMmLCBib29sIHNhbWVPcmlnaW5XaXRoQW5jZXN0b3JzKTsKIAotICAgIEFy
cmF5QnVmZmVyKiByYXdJZCgpOwotICAgIEF1dGhlbnRpY2F0b3JSZXNwb25zZSogcmVzcG9uc2Uo
KTsKKyAgICBBcnJheUJ1ZmZlciogcmF3SWQoKSBjb25zdDsKKyAgICBBdXRoZW50aWNhdG9yUmVz
cG9uc2UqIHJlc3BvbnNlKCkgY29uc3Q7CiAgICAgLy8gTm90IHN1cHBvcnQgeWV0LiBBbHdheXMg
dGhyb3dzLgotICAgIEV4Y2VwdGlvbk9yPGJvb2w+IGdldENsaWVudEV4dGVuc2lvblJlc3VsdHMo
KTsKKyAgICBFeGNlcHRpb25Pcjxib29sPiBnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgY29u
c3Q7CiAKICAgICBzdGF0aWMgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0
b3JBdmFpbGFibGUoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAKIHByaXZhdGU6Ci0gICAgUHVi
bGljS2V5Q3JlZGVudGlhbChjb25zdCBTdHJpbmcmKTsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFs
KFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBpZCwgUmVmUHRyPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4m
Jik7CisKKyAgICBUeXBlIGNyZWRlbnRpYWxUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gVHlw
ZTo6UHVibGljS2V5OyB9CiAKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1fcmF3SWQ7CiAgICAg
UmVmUHRyPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4gbV9yZXNwb25zZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CQVNJQ19DUkVERU5USUFM
KFB1YmxpY0tleUNyZWRlbnRpYWwsIEJhc2ljQ3JlZGVudGlhbDo6VHlwZTo6UHVibGljS2V5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3Jl
ZGVudGlhbC5pZGwKaW5kZXggNDhlZjlmZmZjYzNhMjNmOGY0NTU1OGJlN2ZkOGVlYTg3ZTAyY2Zk
MS4uNmI5OTZiNjMyZDJhNWIzN2UyZWNmODA1MWQ5MjJiOWFlZThkNWI2MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwu
aWRsCkBAIC0yOSw3ICsyOSw3IEBAIHR5cGVkZWYgYm9vbGVhbiBBdXRoZW50aWNhdGlvbkV4dGVu
c2lvbnM7CiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJBdXRoZW50aWNhdGlvbiwKICAgICBFeHBv
c2VkPVdpbmRvdywKICAgICBTZWN1cmVDb250ZXh0LAotXSBpbnRlcmZhY2UgUHVibGljS2V5Q3Jl
ZGVudGlhbCB7CitdIGludGVyZmFjZSBQdWJsaWNLZXlDcmVkZW50aWFsIDogQmFzaWNDcmVkZW50
aWFsIHsKICAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5QnVmZmVyIHJh
d0lkOwogICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgQXV0aGVudGljYXRvclJl
c3BvbnNlIHJlc3BvbnNlOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gQXV0aGVudGljYXRpb25F
eHRlbnNpb25zIGdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zLmgKaW5kZXggOGJhZmUzMDVjZGY0ZTY0N2IyNzkxYzNhNzA1YTQ0
YjFjZmZkMjQ4Yy4uZmNmMTAxZDVmODAzMmU3YTYwYjY5Y2I1Y2FhOWYwOTQzNDIyZDdmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKQEAgLTM5LDcgKzM5LDcgQEAg
c3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgewogICAgIH07CiAKICAg
ICBzdHJ1Y3QgUnBFbnRpdHkgOiBwdWJsaWMgRW50aXR5IHsKLSAgICAgICAgU3RyaW5nIGlkOwor
ICAgICAgICBtdXRhYmxlIFN0cmluZyBpZDsKICAgICB9OwogCiAgICAgc3RydWN0IFVzZXJFbnRp
dHkgOiBwdWJsaWMgRW50aXR5IHsKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RydWN0IFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgewogCiAgICAgc3RydWN0IFBhcmFtZXRlcnMgewogICAg
ICAgICBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSB0eXBlOwotICAgICAgICBsb25nIGFsZyB7IDAg
fTsKKyAgICAgICAgbG9uZyBhbGc7CiAgICAgfTsKIAogICAgIFJwRW50aXR5IHJwOwpAQCAtNTgs
NyArNTgsNyBAQCBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAg
ICAgQnVmZmVyU291cmNlIGNoYWxsZW5nZTsKICAgICBWZWN0b3I8UGFyYW1ldGVycz4gcHViS2V5
Q3JlZFBhcmFtczsKIAotICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCB7IDAgfTsKKyAgICBzdGQ6
Om9wdGlvbmFsPHVuc2lnbmVkIGxvbmc+IHRpbWVvdXQ7CiAgICAgVmVjdG9yPFB1YmxpY0tleUNy
ZWRlbnRpYWxEZXNjcmlwdG9yPiBleGNsdWRlQ3JlZGVudGlhbHM7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNj
cmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxEZXNjcmlwdG9yLmgKaW5kZXggNzNlNDQ5MjM3MjRmMzEyNWIxZWRhZGUzNjg3Mzg3ZWRi
MWFlODE4NS4uODI5ZDYwMTI1MTFmYjRkZThlNzNiMTY4NGM2OGM5MTM5YjgxNjE5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFs
RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaApAQCAtMzEsOCArMzEsMTUgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yIHsKKyAgICBl
bnVtIGNsYXNzIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQgeworICAgICAgICBVc2IsCisgICAgICAg
IE5mYywKKyAgICAgICAgQmxlCisgICAgfTsKKwogICAgIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBl
IHR5cGU7CiAgICAgQnVmZmVyU291cmNlIGlkOworICAgIFZlY3RvcjxBdXRoZW50aWNhdG9yVHJh
bnNwb3J0PiB0cmFuc3BvcnRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFs
RGVzY3JpcHRvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tl
eUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbAppbmRleCBlOTNmODY0NGIxOWUwNTFiMDNiZDk0OGUx
ZmFkODJiNzBlZjRkOGVmLi4yNThlMjg5YzE4NGE0YjhlMzJlYjIxNjQ2MjdmYWMwNDJmMjA1OGI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxEZXNjcmlwdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbApAQCAtMjMsOSArMjMsMTQgQEAK
ICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCitlbnVtIEF1dGhlbnRp
Y2F0b3JUcmFuc3BvcnQgeworICAgICJ1c2IiLAorICAgICJuZmMiLAorICAgICJibGUiCit9Owor
CiBkaWN0aW9uYXJ5IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yIHsKICAgICByZXF1aXJl
ZCBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSB0eXBlOwogICAgIHJlcXVpcmVkIEJ1ZmZlclNvdXJj
ZSBpZDsKLSAgICAvLyBXZSBvbmx5IGFsbG93IHBsYXRmb3JtIGF0dGFjaG1lbnQgYXQgdGhpcyBz
dGFnZS4KLSAgICAvLyBzZXF1ZW5jZTxBdXRoZW50aWNhdG9yVHJhbnNwb3J0PiB0cmFuc3BvcnRz
OworICAgIHNlcXVlbmNlPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ+IHRyYW5zcG9ydHM7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA5YzJiMGE1ZjExZjE3NGRhODFkNDdkY2UyNmI5ZTNjMGM1OTE3MTM1
Li4yMmM2MzZlNjI1ZDc4MWIzNDE4MmI5NWI1MWY0YjZiMWQyZGQzNzJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMjQ0LDYgKzI0NCw3IEBAIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlckRTUEtlcm5l
bC5jcHAKIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCiBNb2R1bGVzL3dlYmF1
ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCiAKK01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGlj
YXRvci5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNl
LmNwcAogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5j
cHAKIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmNwcApAQCAtMzQ1LDEx
ICszNDYsMTMgQEAgYmluZGluZ3MvanMvRE9NR0NPdXRwdXRDb25zdHJhaW50LmNwcAogYmluZGlu
Z3MvanMvRE9NV3JhcHBlcldvcmxkLmNwcAogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAog
YmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKK2JpbmRpbmdzL2pzL0pTQXV0aGVu
dGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNBbmltYXRpb25FZmZlY3RD
dXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0FuaW1hdGlvblRpbWVsaW5lQ3VzdG9tLmNwcAogYmlu
ZGluZ3MvanMvSlNBdHRyQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNBdWRpb1RyYWNrQ3VzdG9t
LmNwcAogYmluZGluZ3MvanMvSlNBdWRpb1RyYWNrTGlzdEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pz
L0pTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNw
cAogYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNDU1NSdWxl
TGlzdEN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyMWI5ZDE2MTE3OGRkMDhjOWZkZTc4YWRjM2Q3ZDJkMzdkZDJk
MDA1Li5mMzUwMWMzMzk2YWNmNWJhMmM5ZTdlMmQ1YTNkZDNmNDc1YTk1NjdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjYw
LDYgKzE2NjAsNyBAQAogCQk1NzMwM0MyMjIwMDlBRjAzMDAzNTU5NjUgLyogSlNBdXRoZW50aWNh
dG9yQXR0ZXN0YXRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTczMDNDMjEyMDA5QUVGNjAwMzU1OTY1IC8qIEpTQXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2UuaCAqLzsgfTsKIAkJNTczMDNDMkMyMDA5QjRBODAwMzU1OTY1
IC8qIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNDMjcyMDA5QjJGQzAwMzU1OTY1IC8qIEF1
dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oICovOyB9OwogCQk1NzMwM0MyRjIwMDlCN0Ux
MDAzNTU5NjUgLyogSlNBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQzJEMjAwOUI3RDkwMDM1
NTk2NSAvKiBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oICovOyB9OworCQk1NzMw
M0M0NjIwMTA1RDJGMDAzNTU5NjUgLyogQXV0aGVudGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNDNDMyMDEwNUIzRDAwMzU1OTY1IC8q
IEF1dGhlbnRpY2F0b3IuaCAqLzsgfTsKIAkJNTczNDg5MzkxREFDNkI2RTAwREMwNjY3IC8qIENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3MzQ4OTM4MURBQzZCNkQwMERDMDY2NyAvKiBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzLmggKi87IH07CiAJCTU3MzlFMTJGMURBQzdGNzgwMEUxNDM4MyAvKiBKU0Ny
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3MzlFMTJFMURBQzdGNzgwMEUxNDM4MyAvKiBKU0NyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJNTc1MEE5NzUxRTY4RDAwMDAwNzA1QzRBIC8qIENy
eXB0b0tleUVDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzUwQTk3MzFFNjhEMDAwMDA3MDVDNEEgLyogQ3J5cHRvS2V5RUMuaCAqLzsgfTsKQEAgLTgy
MjcsNiArODIyOCw4IEBACiAJCTU3MzAzQzI5MjAwOUIyRkMwMDM1NTk2NSAvKiBBdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQzJEMjAwOUI3RDkw
MDM1NTk2NSAvKiBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0MyRTIwMDlCN0RBMDAzNTU5NjUg
LyogSlNBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzMwM0M0MzIwMTA1QjNEMDAzNTU5NjUg
LyogQXV0aGVudGljYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MzAzQzQ0MjAxMDVCM0QwMDM1NTk2NSAvKiBBdXRo
ZW50aWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzM0ODkzODFEQUM2QjZEMDBEQzA2NjcgLyogQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3MzlFMTJFMURBQzdGNzgwMEUxNDM4MyAvKiBKU0NyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzlFMTMwMURBQzdG
RDEwMEUxNDM4MyAvKiBKU0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgyNDMsNiArODI0Niw4IEBACiAJCTU3
NTBBOTg1MUU2QTIxNjgwMDcwNUM0QSAvKiBDcnlwdG9BbGdvcml0aG1FQ0RILmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUVDREguaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc1NDcxOTkxRUNFNUQyQTAwREQ2M0IyIC8qIEpTUnNhUHNz
UGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUnNhUHNzUGFyYW1z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NTQ3MTlBMUVDRTVEMkEwMERENjNC
MiAvKiBKU1JzYVBzc1BhcmFtcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1JzYVBzc1BhcmFtcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3
NjA4MjRGMjAxMThEOEQwMDExNjY3OCAvKiBKU0Jhc2ljQ3JlZGVudGlhbEN1c3RvbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0Jhc2ljQ3JlZGVudGlhbEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU3NjA4MjU2MjAxMUJFMDIwMDExNjY3OCAvKiBKU0F1dGhlbnRp
Y2F0b3JSZXNwb25zZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0F1dGhlbnRpY2F0
b3JSZXNwb25zZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3Njgx
NDI4MUU2Rjk4QUQwMEU3Nzc1NCAvKiBFY2RoS2V5RGVyaXZlUGFyYW1zLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFY2Ro
S2V5RGVyaXZlUGFyYW1zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc2ODE0
MjkxRTZGOTlDMTAwRTc3NzU0IC8qIENyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtRWNkaEtl
eURlcml2ZVBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY4MTQzNDFF
NkZFM0U4MDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRUNESE1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTcxLDYgKzE4MTc2LDggQEAKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTczMDNCQjMyMDA2QzZFRDAwMzU1OTY1
IC8qIGNib3IgKi8sCisJCQkJNTczMDNDNDQyMDEwNUIzRDAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0
b3IuY3BwICovLAorCQkJCTU3MzAzQzQzMjAxMDVCM0QwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9y
LmggKi8sCiAJCQkJNTczMDNDMjgyMDA5QjJGQzAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZS5jcHAgKi8sCiAJCQkJNTczMDNDMjcyMDA5QjJGQzAwMzU1OTY1IC8qIEF1
dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oICovLAogCQkJCTU3MzAzQzI5MjAwOUIyRkMw
MDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaWRsICovLApAQCAtMTky
MTYsNiArMTkyMjMsOCBAQAogCQkJCUJDMkVENkJCMEM2QkQyRjAwMDkyMEJGRiAvKiBKU0F0dHJD
dXN0b20uY3BwICovLAogCQkJCUJFNkRGNzBFMTcxQ0EyREEwMERENTJCOCAvKiBKU0F1ZGlvVHJh
Y2tDdXN0b20uY3BwICovLAogCQkJCUJFNkRGNzEwMTcxQ0EyREEwMERENTJCOCAvKiBKU0F1ZGlv
VHJhY2tMaXN0Q3VzdG9tLmNwcCAqLywKKwkJCQk1NzYwODI1NjIwMTFCRTAyMDAxMTY2NzggLyog
SlNBdXRoZW50aWNhdG9yUmVzcG9uc2VDdXN0b20uY3BwICovLAorCQkJCTU3NjA4MjRGMjAxMThE
OEQwMDExNjY3OCAvKiBKU0Jhc2ljQ3JlZGVudGlhbEN1c3RvbS5jcHAgKi8sCiAJCQkJODkzMURF
NUExNEM0NEM0NDAwMERDOUQyIC8qIEpTQmxvYkN1c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUQxNEIx
MDUxOTcxOTAwMDk5RkFCIC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCAq
LywKIAkJCQlCQzQ2QzFFRDBDMEREQkRGMDAyMENGQzMgLyogSlNDU1NSdWxlQ3VzdG9tLmNwcCAq
LywKQEAgLTI2NDk4LDYgKzI2NTA3LDcgQEAKIAkJCQk5MzRGNzEzQTBENUE2RjEwMDAwMThENjkg
LyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI0
NzQ4NDEwQUExNjFEMDBCNzk0OTMgLyogQXV0aGVudGljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxNEM3NjRDMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTczMDNDNDYyMDEwNUQyRjAwMzU1OTY1IC8qIEF1dGhlbnRp
Y2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQzJDMjAwOUI0QTgwMDM1NTk2NSAvKiBB
dXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAz
QzFGMjAwOUFCNDIwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNCRDIyMDA4N0E4MzAwMzU1OTY1IC8qIEF1dGhlbnRp
Y2F0b3JSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0F1dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWZlMDk0ZWE3Nzc3ZTg1NDY2YzQyYTk0YTg2YWQ5Y2RlOGE4NzFhZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXV0aGVudGljYXRvclJl
c3BvbnNlQ3VzdG9tLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTQXV0aGVudGljYXRvclJlc3BvbnNlLmgiCisKKyNpbmNs
dWRlICJKU0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmgiCisjaW5jbHVkZSAiSlNE
T01CaW5kaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBKU0M7
CisKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiYgcmVzcG9u
c2UpCit7CisgICAgaWYgKGlzPEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlPihyZXNw
b25zZSkpCisgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPEF1dGhlbnRpY2F0b3JBdHRlc3Rh
dGlvblJlc3BvbnNlPihnbG9iYWxPYmplY3QsIFdURk1vdmUocmVzcG9uc2UpKTsKKyAgICByZXR1
cm4gY3JlYXRlV3JhcHBlcjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+KGdsb2JhbE9iamVjdCwgV1RG
TW92ZShyZXNwb25zZSkpOworfQorCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQXV0aGVudGljYXRvclJlc3BvbnNlJiByZXNw
b25zZSkKK3sKKyAgICByZXR1cm4gd3JhcChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCByZXNwb25zZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmJk
ZDhjMjRhZTNjYjc5YTI2ZDQyNGQ4MDYzOGI0YTIzMmRjMmNmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCYXNpY0NyZWRlbnRpYWxDdXN0b20uY3BwCkBA
IC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiSlNCYXNpY0NyZWRlbnRpYWwuaCIKKworI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2lu
Y2x1ZGUgIkpTUHVibGljS2V5Q3JlZGVudGlhbC5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxCYXNpY0NyZWRl
bnRpYWw+JiYgY3JlZGVudGlhbCkKK3sKKyAgICBpZiAoaXM8UHVibGljS2V5Q3JlZGVudGlhbD4o
Y3JlZGVudGlhbCkpCisgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPFB1YmxpY0tleUNyZWRl
bnRpYWw+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShjcmVkZW50aWFsKSk7CisgICAgcmV0dXJuIGNy
ZWF0ZVdyYXBwZXI8QmFzaWNDcmVkZW50aWFsPihnbG9iYWxPYmplY3QsIFdURk1vdmUoY3JlZGVu
dGlhbCkpOworfQorCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQmFzaWNDcmVkZW50aWFsJiBjcmVkZW50aWFsKQoreworICAg
IHJldHVybiB3cmFwKHN0YXRlLCBnbG9iYWxPYmplY3QsIGNyZWRlbnRpYWwpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNC
aW5kaW5nc0FsbEluT25lLmNwcAppbmRleCA2ZjgwM2M1OTVmNWMyMTQzYWU4Y2I1NDM4MmM5YzFk
M2NhMWQxNjVmLi40OGM1M2UyY2QyZWQyYjRmYzMzYjQ1MWFkY2NmMjM2ZDJhMTE2OWRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0F0dHJDdXN0b20uY3BwIgogI2luY2x1ZGUg
IkpTQXVkaW9UcmFja0N1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNBdWRpb1RyYWNrTGlzdEN1c3Rv
bS5jcHAiCisjaW5jbHVkZSAiSlNCYXNpY0NyZWRlbnRpYWxDdXN0b20uY3BwIgogI2luY2x1ZGUg
IkpTQmxvYkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNDU1NSdWxlQ3VzdG9tLmNwcCIKICNpbmNs
dWRlICJKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4dGVuZGFibGVNZXNzYWdlRXZlbnRDdXN0b20uY3BwCmlu
ZGV4IGQ5ZTI1MGExNjkzZDYzYmMxMDNkMTU5ZmQ3ODY0ZGE0MjY3ZjExZGEuLjEwYjg0OGYwZDA2
M2EyMGUwMjIyODUyN2UwMDNjYTE5M2I5M2RjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNw
cApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5o
IgogCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVy
dFN0cmluZ3MuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDlhMDVjODAwNTU0
ZGFmMjk5ODhjYjgyMDhhOTE0NzRiYjVhMDA0Yy4uODYwMjI1ZmNkZmZjNDJlZGY4MDMwZDc1OTk0
OTdhM2Y3MWRlZDc0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE4LTAxLTIyICBKaWV3ZW4g
VGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBsZW1l
bnQgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbQ3JlYXRlXV0gd2l0aCBhIGR1bW15IGF1dGhlbnRp
Y2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MTkyOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY0NTk4OTM+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBUZXN0IGNhc2VzIGFyZSBkaXZpZGVkIGlu
dG8gdHdvIGRpZmZlcmVudCBmb2xkZXJzLiBPbmUgZm9sbG93cyB3cHQgc3R5bGUuIFRoZSBvdGhl
ciBjb250YWlucyB0ZXN0cworICAgICAgICB0aGF0IEkgZG9uJ3Qga25vdyBob3cgdG8gd3JpdGUg
dGhlbSBpbiB3cHQgc3R5bGUuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1pbnZhbGlkLXBhcmFtZXRlcnMuaHR0cHMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1pbnZhbGlkLXBhcmFtZXRlcnMuaHR0cHMuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMtMi5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNh
bWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLTIuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0
aC1hbmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2Vz
dG9ycy5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmF1dGhuL3Jl
c291cmNlcy9sYXN0LWxheWVyLWZyYW1lLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL3NlY29uZC1sYXllci1mcmFtZS5odHRwcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNlcy91dGlsLmpz
OiBBZGRlZC4KKyAgICAgICAgSXQgd2lsbCBiZSBnb29kIHRvIGNvbnZlcnQgdGhlbSBpbnRvIHdw
dCBzdHlsZS4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9XZWJBdXRoTi5pZGw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRl
LWZhaWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyZWF0ZS1zdWNjZXNzLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLmh0dHBz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy91dGls
LmpzOiBBZGRlZC4KKwogMjAxOC0wMS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIHRlcm1pbmF0ZSBzZXJ2aWNlIHdvcmtl
cnMgdGhhdCBhcmUgdW5yZXNwb25zaXZlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1pbnZhbGlkLXBh
cmFtZXRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXdpdGgtaW52YWxpZC1wYXJhbWV0ZXJz
Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2UxZGZiY2U4NjdlMGMwNzU1M2QzOGQy
NGY3Njg1NzY1YTdmYTllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXdpdGgtaW52YWxpZC1wYXJh
bWV0ZXJzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDY0IEBACitUZXN0cyB0aGF0IFB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHRocm93cyBUeXBlRXJyb3Igd2hlbiBpbnZh
bGlkIG9wdGlvbnMgYXJlIHBhc3NlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0
ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zLnJwIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFB1
YmxpY0tleUNyZWRlbnRpYWxScEVudGl0eS4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNy
ZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1l
bWJlciBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLnVzZXIgaXMgcmVxdWlyZWQg
YW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHku
CitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVj
dGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5jaGFsbGVuZ2UgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgKEFycmF5QnVmZmVyVmlldyBvciBBcnJheUJ1ZmZlcikuCitQQVNTIG5hdmlnYXRvci5j
cmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGgg
VHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5wdWJL
ZXlDcmVkUGFyYW1zIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIHNlcXVl
bmNlLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSBy
ZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNyZWRlbnRp
YWxScEVudGl0eS5uYW1lIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIERP
TVN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9u
cykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJsaWNLZXlDcmVk
ZW50aWFsVXNlckVudGl0eS5uYW1lIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIERPTVN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlk
T3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJsaWNL
ZXlDcmVkZW50aWFsVXNlckVudGl0eS5pZCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiBpbnN0
YW5jZSBvZiAoQXJyYXlCdWZmZXJWaWV3IG9yIEFycmF5QnVmZmVyKS4KK1BBU1MgbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0
aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eS5kaXNwbGF5
TmFtZSBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBET01TdHJpbmcuCitQ
QVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVk
IHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlhbFBhcmFt
ZXRlcnMudHlwZSBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBQdWJsaWNL
ZXlDcmVkZW50aWFsVHlwZS4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZh
bGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJs
aWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycy5hbGcgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgbG9uZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZh
bGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJs
aWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci50eXBlIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLgorUEFTUyBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5
cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkIGlzIHJlcXVp
cmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIChBcnJheUJ1ZmZlclZpZXcgb3IgQXJyYXlC
dWZmZXIpLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25z
KSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogQ2Fubm90IGNvbnZlcnQgYSBzeW1i
b2wgdG8gYSBzdHJpbmcuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxp
ZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBDYW5ub3QgY29udmVy
dCBhIHN5bWJvbCB0byBhIHN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0
ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IENhbm5v
dCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEgc3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJv
cjogQ2Fubm90IGNvbnZlcnQgYSBzeW1ib2wgdG8gYSBzdHJpbmcuCitQQVNTIG5hdmlnYXRvci5j
cmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGgg
VHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRl
KGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykg
cmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2Ug
IHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0
aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNT
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHBy
b21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVF
cnJvcjogQ2Fubm90IGNvbnZlcnQgYSBzeW1ib2wgdG8gYSBzdHJpbmcuCitQQVNTIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdp
dGggVHlwZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIHN0cmluZy4KK1BBU1Mg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJv
bWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFs
aWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0
ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5j
cmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGgg
VHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRl
KGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykg
cmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2Ug
IHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0
aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNT
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHBy
b21pc2UgIHdpdGggVHlwZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIHN0cmlu
Zy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVq
ZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdp
dGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3Jl
YXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9u
cykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0IGEgc3lt
Ym9sIHRvIGEgbnVtYmVyLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFs
aWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogQ2Fubm90IGNvbnZl
cnQgYSBzeW1ib2wgdG8gYSBudW1iZXIuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVh
dGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBl
IGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25z
KSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlz
ZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9y
OiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIHN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNy
ZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUo
aW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSBy
ZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAg
d2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5j
cmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBU
eXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRp
b25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJv
bWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFs
aWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0
ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXdpdGgt
aW52YWxpZC1wYXJhbWV0ZXJzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1pbnZhbGlkLXBhcmFtZXRl
cnMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjI0ZDczYjMxYzBhZmMyMjdhZDgyMmFkNzRjZWEy
NGQ5OWY3YzAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXdpdGgtaW52YWxpZC1wYXJhbWV0ZXJz
Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgUHVibGlj
S2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gdGhyb3dzIFR5cGVFcnJvciB3aGVuIGludmFsaWQg
b3B0aW9ucyBhcmUgcGFzc2VkLiIpOworCisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICBjb25zdCBycCA9IHsKKyAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgIH07CisgICAg
Y29uc3QgdXNlciA9IHsKKyAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAg
aWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgZGlzcGxheU5hbWU6ICJB
cHBsZXNlZWQiCisgICAgfTsKKyAgICBjb25zdCBjaGFsbGVuZ2UgPSBhc2NpaVRvVWludDhBcnJh
eSgiMTIzNDU2Iik7CisgICAgY29uc3QgcHViS2V5Q3JlZFBhcmFtID0geyB0eXBlOiAicHVibGlj
LWtleSIsIGFsZzogLTcgfTsKKyAgICBjb25zdCBleGNsdWRlQ3JlZGVudGlhbHMgPSB7IHR5cGU6
ICJwdWJsaWMta2V5IiwgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSB9OworCisgICAg
Y29uc3QgbWlzc2luZ0F0dHJpYnV0ZVZlY3RvciA9IFsKKyAgICAgICAgLy8gbWlzc2luZyB0b3Ag
bGV2ZWwgYXR0cmlidXRlCisgICAgICAgIFt1bmRlZmluZWQsIHVzZXIsIGNoYWxsZW5nZSwgW3B1
YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHVuZGVmaW5lZCwgY2hhbGxlbmdlLCBbcHVi
S2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgdXNlciwgdW5kZWZpbmVkLCBbcHViS2V5Q3Jl
ZFBhcmFtXV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCB1bmRlZmluZWRdLAorICAg
ICAgICAvLyBtaXNzaW5nIHJwIGF0dHJpYnV0ZQorICAgICAgICBbeyBuYW1lOiB1bmRlZmluZWQg
fSwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIC8vIG1pc3Np
bmcgdXNlciBhdHRyaWJ1dGUKKyAgICAgICAgW3JwLCB7IG5hbWU6IHVuZGVmaW5lZCwgaWQ6IHVz
ZXIuaWQsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwgY2hhbGxlbmdlLCBbcHViS2V5
Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUsIGlkOiB1bmRlZmlu
ZWQsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwgY2hhbGxlbmdlLCBbcHViS2V5Q3Jl
ZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUsIGlkOiB1c2VyLmlkLCBk
aXNwbGF5TmFtZTogdW5kZWZpbmVkfSwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisg
ICAgICAgIC8vIG1pc3NpbmcgcHViS2V5Q3JlZFBhcmFtcyBhdHRyaWJ1dGUKKyAgICAgICAgW3Jw
LCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6IHVuZGVmaW5lZCwgYWxnOiBwdWJLZXlDcmVkUGFy
YW0uYWxnIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6IHB1Yktl
eUNyZWRQYXJhbS50eXBlLCBhbGc6IHVuZGVmaW5lZCB9XV0sCisgICAgICAgIC8vIG1pc3Npbmcg
ZXhjbHVkZUNyZWRlbnRpYWxzIGF0dHJpYnV0ZQorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5n
ZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogdW5kZWZpbmVkLCBpZDog
ZXhjbHVkZUNyZWRlbnRpYWxzLmlkIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2Us
IFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IGV4Y2x1ZGVDcmVkZW50aWFs
cy50eXBlLCBpZDogdW5kZWZpbmVkIH1dXQorICAgIF07CisKKyAgICBjb25zdCB3cm9uZ1R5cGVB
dHRyaWJ1dGVWZWN0b3IgPSBbCisgICAgICAgIC8vIHdyb25nIHJwIGF0dHJpYnV0ZSB0eXBlCisg
ICAgICAgIFt7IG5hbWU6IFN5bWJvbCgpIH0sIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQ
YXJhbV1dLAorICAgICAgICBbeyBuYW1lOiBycC5uYW1lLCBpY29uOiBTeW1ib2woKSB9LCB1c2Vy
LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3sgbmFtZTogcnAubmFt
ZSwgaWQ6IFN5bWJvbCgpIH0sIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAor
ICAgICAgICAvLyB3cm9uZyB1c2VyIGF0dHJpYnV0ZSB0eXBlCisgICAgICAgIFtycCwgeyBuYW1l
OiBTeW1ib2woKSwgaWQ6IHVzZXIuaWQsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwg
Y2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2Vy
Lm5hbWUsIGlkOiAxLCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5TmFtZX0sIGNoYWxsZW5nZSwg
W3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHsgbmFtZTogdXNlci5uYW1lLCBpZDog
dHJ1ZSwgZGlzcGxheU5hbWU6IHVzZXIuZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlD
cmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IG51bGwsIGRp
c3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFt
XV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUsIGlkOiBTeW1ib2woKSwgZGlzcGxh
eU5hbWU6IHVzZXIuZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwK
KyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IHsgfSwgZGlzcGxheU5hbWU6IHVz
ZXIuZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAg
W3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6ICJmb28iLCBkaXNwbGF5TmFtZTogdXNlci5kaXNw
bGF5TmFtZX0sIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHsg
bmFtZTogdXNlci5uYW1lLCBpZDogWyBdLCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5TmFtZX0s
IGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHsgbmFtZTogdXNl
ci5uYW1lLCBpZDogdXNlci5pZCwgZGlzcGxheU5hbWU6IFN5bWJvbCgpfSwgY2hhbGxlbmdlLCBb
cHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUsIGlkOiB1
c2VyLmlkLCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5TmFtZSwgaWNvbjogU3ltYm9sKCl9LCBj
aGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgLy8gd3JvbmcgY2hhbGxlbmdl
IHR5cGUKKyAgICAgICAgW3JwLCB1c2VyLCAxLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAg
IFtycCwgdXNlciwgdHJ1ZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHVzZXIs
IG51bGwsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBTeW1ib2woKSwg
W3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHVzZXIsICJmb28iLCBbcHViS2V5Q3Jl
ZFBhcmFtXV0sCisgICAgICAgIFtycCwgdXNlciwgWyBdLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisg
ICAgICAgIFtycCwgdXNlciwgeyB9LCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIC8vIHdy
b25nIHB1YktleUNyZWRQYXJhbSB0eXBlCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBb
eyB0eXBlOiAxLCBhbGc6IHB1YktleUNyZWRQYXJhbS5hbGcgfV1dLAorICAgICAgICBbcnAsIHVz
ZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogdHJ1ZSwgYWxnOiBwdWJLZXlDcmVkUGFyYW0uYWxnIH1d
XSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6IG51bGwsIGFsZzogcHVi
S2V5Q3JlZFBhcmFtLmFsZyB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbeyB0
eXBlOiBTeW1ib2woKSwgYWxnOiBwdWJLZXlDcmVkUGFyYW0uYWxnIH1dXSwKKyAgICAgICAgW3Jw
LCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5cGU6ICJmb28iLCBhbGc6IHB1YktleUNyZWRQYXJhbS5h
bGcgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogWyBdLCBhbGc6
IHB1YktleUNyZWRQYXJhbS5hbGcgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwg
W3sgdHlwZTogeyB9LCBhbGc6IHB1YktleUNyZWRQYXJhbS5hbGcgfV1dLAorICAgICAgICBbcnAs
IHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogcHViS2V5Q3JlZFBhcmFtLnR5cGUsIGFsZzogU3lt
Ym9sKCkgfV1dLAorICAgICAgICAvLyB3cm9uZyB0aW1lb3V0IHR5cGUKKyAgICAgICAgW3JwLCB1
c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCBTeW1ib2woKSwgdW5kZWZpbmVkXSwK
KyAgICAgICAgLy8gd3JvbmcgZXhjbHVkZUNyZWRlbnRpYWxzCisgICAgICAgIFtycCwgdXNlciwg
Y2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiAxLCBpZDog
ZXhjbHVkZUNyZWRlbnRpYWxzLmlkIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2Us
IFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IHRydWUsIGlkOiBleGNsdWRl
Q3JlZGVudGlhbHMuaWQgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3B1Yktl
eUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogbnVsbCwgaWQ6IGV4Y2x1ZGVDcmVkZW50
aWFscy5pZCB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBh
cmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBTeW1ib2woKSwgaWQ6IGV4Y2x1ZGVDcmVkZW50aWFs
cy5pZCB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFt
XSwgdW5kZWZpbmVkLCBbeyB0eXBlOiAiZm9vIiwgaWQ6IGV4Y2x1ZGVDcmVkZW50aWFscy5pZCB9
XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5k
ZWZpbmVkLCBbeyB0eXBlOiBbIF0sIGlkOiBleGNsdWRlQ3JlZGVudGlhbHMuaWQgfV1dLAorICAg
ICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwg
W3sgdHlwZTogeyB9LCBpZDogZXhjbHVkZUNyZWRlbnRpYWxzLmlkIH1dXSwKKyAgICAgICAgW3Jw
LCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6
IGV4Y2x1ZGVDcmVkZW50aWFscy50eXBlLCBpZDogMSB9XV0sCisgICAgICAgIFtycCwgdXNlciwg
Y2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBleGNsdWRl
Q3JlZGVudGlhbHMudHlwZSwgaWQ6IHRydWUgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxs
ZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogZXhjbHVkZUNyZWRl
bnRpYWxzLnR5cGUsIGlkOiBudWxsIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2Us
IFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IGV4Y2x1ZGVDcmVkZW50aWFs
cy50eXBlLCBpZDogU3ltYm9sKCkgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwg
W3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogZXhjbHVkZUNyZWRlbnRpYWxz
LnR5cGUsIGlkOiAiZm9vIiB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHVi
S2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBleGNsdWRlQ3JlZGVudGlhbHMudHlw
ZSwgaWQ6IFsgXSB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3Jl
ZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBleGNsdWRlQ3JlZGVudGlhbHMudHlwZSwgaWQ6
IHsgfSB9XV0KKyAgICBdCisKKyAgICBmdW5jdGlvbiBtYWtlT3B0aW9ucyhhdHRyaWJ1dGVzKQor
ICAgIHsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMubGVuZ3RoID09IDQpCisgICAgICAgICAgICBy
ZXR1cm4geyBwdWJsaWNLZXk6IHsgcnA6IGF0dHJpYnV0ZXNbMF0sIHVzZXI6IGF0dHJpYnV0ZXNb
MV0sIGNoYWxsZW5nZTogYXR0cmlidXRlc1syXSwgcHViS2V5Q3JlZFBhcmFtczogYXR0cmlidXRl
c1szXSB9IH07CisgICAgICAgIHJldHVybiB7IHB1YmxpY0tleTogeyBycDogYXR0cmlidXRlc1sw
XSwgdXNlcjogYXR0cmlidXRlc1sxXSwgY2hhbGxlbmdlOiBhdHRyaWJ1dGVzWzJdLCBwdWJLZXlD
cmVkUGFyYW1zOiBhdHRyaWJ1dGVzWzNdLCB0aW1lb3V0OiBhdHRyaWJ1dGVzWzRdLCAgZXhjbHVk
ZUNyZWRlbnRpYWxzOiBhdHRyaWJ1dGVzWzVdfSB9OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
blRlc3QoYXR0cmlidXRlc1ZlY3RvcnMpIHsKKyAgICAgICAgYXR0cmlidXRlc1ZlY3RvcnMuZm9y
RWFjaChmdW5jdGlvbihhdHRyaWJ1dGVzVmVjdG9yKSB7CisgICAgICAgICAgICBhdHRyaWJ1dGVz
VmVjdG9yLmZvckVhY2goYXN5bmMgZnVuY3Rpb24oYXR0cmlidXRlcykgeworICAgICAgICAgICAg
ICAgIGludmFsaWRPcHRpb25zID0gbWFrZU9wdGlvbnMoYXR0cmlidXRlcyk7CisgICAgICAgICAg
ICAgICAgYXdhaXQgc2hvdWxkUmVqZWN0KCduYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGlu
dmFsaWRPcHRpb25zKScpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIGNvbnN0IHZlY3RvcnMgPSBbXTsKKyAgICB2
ZWN0b3JzLnB1c2gobWlzc2luZ0F0dHJpYnV0ZVZlY3Rvcik7CisgICAgdmVjdG9ycy5wdXNoKHdy
b25nVHlwZUF0dHJpYnV0ZVZlY3Rvcik7CisgICAgcnVuVGVzdCh2ZWN0b3JzKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMt
Mi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzVjNWMwMWExM2UxNTBiMzJjYzRhNGNmZjcwMDUwYWE0
MmUzN2E5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMtMi5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQg
ZG9lc24ndCBzaGFyZSB0aGUgc2FtZSBvcmlnaW4gd2l0aCBhbGwgaXRzIGFuY2VzdG9ycyBjb3Vs
ZCBub3QgYWNjZXNzIHRoZSBBUEkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIFRocm93IE5vdEFsbG93ZWRFcnJvci4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9y
cy0yLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzkwMTFhOTg1MThjOTE2N2Q0YmZlZTZmZGQwZjY2Zjk1NjBiODFmMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLTIuaHR0cHMuaHRtbApAQCAtMCww
ICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iLi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGRvZXNuJ3Qgc2hhcmUgdGhl
IHNhbWUgb3JpZ2luIHdpdGggYWxsIGl0cyBhbmNlc3RvcnMgY291bGQgbm90IGFjY2VzcyB0aGUg
QVBJLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly9sb2Nh
bGhvc3Q6ODQ0My93ZWJhdXRobi9yZXNvdXJjZXMvbGFzdC1sYXllci1mcmFtZS5odHRwcy5odG1s
Ij48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgt
YW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0
dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzVjNWMwMWExM2UxNTBiMzJjYzRhNGNmZjcw
MDUwYWE0MmUzN2E5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgYSBmcmFtZSB0
aGF0IGRvZXNuJ3Qgc2hhcmUgdGhlIHNhbWUgb3JpZ2luIHdpdGggYWxsIGl0cyBhbmNlc3RvcnMg
Y291bGQgbm90IGFjY2VzcyB0aGUgQVBJLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBUaHJvdyBOb3RBbGxvd2VkRXJyb3IuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNl
c3RvcnMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjhjOTVjZjc2M2Y4N2M5N2Y1OGIwYTJhNDE2NDc4NTBmMDEwZmVjZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKQEAgLTAsMCAr
MSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4vcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBkb2Vzbid0IHNoYXJlIHRoZSBz
YW1lIG9yaWdpbiB3aXRoIGFsbCBpdHMgYW5jZXN0b3JzIGNvdWxkIG5vdCBhY2Nlc3MgdGhlIEFQ
SS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8vbG9jYWxo
b3N0Ojg0NDMvd2ViYXV0aG4vcmVzb3VyY2VzL3NlY29uZC1sYXllci1mcmFtZS5odHRwcy5odG1s
Ij48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL2xhc3QtbGF5ZXItZnJhbWUuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL2xhc3QtbGF5ZXItZnJh
bWUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYWEyY2M0OTYwNjcyNjNhZTUzZmM3ZWYyZTA4MDRl
OTAzZTMxZjU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJh
dXRobi9yZXNvdXJjZXMvbGFzdC1sYXllci1mcmFtZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsMzcg
QEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBtZXNzYWdlVG9Ub3AobWVzc2FnZVByZWZpeCkg
eworICAgICAgICB0b3AucG9zdE1lc3NhZ2UobWVzc2FnZVByZWZpeCwgImh0dHBzOi8vMTI3LjAu
MC4xOjg0NDMiKTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICBwdWJs
aWNLZXk6IHsKKyAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgbmFtZTogImV4YW1w
bGUuY29tIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAg
ICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRv
VWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2hu
IiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFy
cmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJw
dWJsaWMta2V5IiwgYWxnOiAtNyB9XQorICAgICAgICB9CisgICAgfTsKKyAgICBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oCisgICAgICAgIGZ1bmN0aW9uKHZhbHVl
KSB7CisgICAgICAgICAgICBtZXNzYWdlVG9Ub3AoIkFjY2VzcyBncmFudGVkLiAiICsgdmFsdWUp
OworICAgICAgICB9LAorICAgICAgICBmdW5jdGlvbihleGNlcHRpb24pIHsKKyAgICAgICAgICAg
IGlmIChleGNlcHRpb24ubmFtZSA9PSAiTm90QWxsb3dlZEVycm9yIikKKyAgICAgICAgICAgICAg
ICBtZXNzYWdlVG9Ub3AoIlBBU1MgVGhyb3cgTm90QWxsb3dlZEVycm9yLiIpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIG1lc3NhZ2VUb1RvcCgiVGhyb3cgIiArIGV4Y2VwdGlv
bi5uYW1lICArICIuIik7CisgICAgICAgIH0KKyAgICApOworICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9y
ZXNvdXJjZXMvc2Vjb25kLWxheWVyLWZyYW1lLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNlcy9zZWNvbmQtbGF5ZXItZnJhbWUuaHR0cHMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zY2YxNjMwZTQwZjRjZDFiNWFlYzNhYjZiYjlkYTQ0Y2NlZjM3NjI3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9yZXNvdXJjZXMv
c2Vjb25kLWxheWVyLWZyYW1lLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aWZyYW1lIHNyYz0i
bGFzdC1sYXllci1mcmFtZS5odHRwcy5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL3V0
aWwuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNlcy91dGlsLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI3YjZmNGU4NDI0NDQ0YWU4NWY5MDdhNjVlMTMzYTUxOGEwZGRlNTYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNl
cy91dGlsLmpzCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50
KSB7CisgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHBzOi8vbG9jYWxob3N0Ojg0NDMiKSB7
CisgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MgIikgIT09IC0xKQorICAgICAg
ICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICB9IGVsc2UK
KyAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3Rl
ZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitm
dW5jdGlvbiBhc2NpaVRvVWludDhBcnJheShzdHIpCit7CisgICAgY29uc3QgY2hhcnMgPSBbXTsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkKKyAgICAgICAgY2hhcnMu
cHVzaChzdHIuY2hhckNvZGVBdChpKSk7CisgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGNoYXJz
KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL1dlYkF1dGhO
LmlkbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL1dlYkF1dGhOLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41MTg5ZWMzZmMzMDAyNzQxNzI0YmY1MWU1NGMwNGMxZDkwODAxZmVkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vV2ViQXV0aE4uaWRsCkBAIC0w
LDAgKzEsMTM1IEBACisvLyBDb3BpZWQgZnJvbSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0
aG4vI2lkbC1pbmRleCBhcyBvZiA1IERlY2VtYmVyIDIwMTcKK1tTZWN1cmVDb250ZXh0LCBFeHBv
c2VkPVdpbmRvd10KK2ludGVyZmFjZSBQdWJsaWNLZXlDcmVkZW50aWFsIDogQ3JlZGVudGlhbCB7
CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJheUJ1ZmZlciAgICAgICAg
ICAgICAgcmF3SWQ7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdXRoZW50
aWNhdG9yUmVzcG9uc2UgICAgcmVzcG9uc2U7CisgICAgQXV0aGVudGljYXRpb25FeHRlbnNpb25z
IGdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKTsKK307CisKK3BhcnRpYWwgZGljdGlvbmFyeSBD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsKKyAgICBNYWtlUHVibGljS2V5Q3JlZGVudGlhbE9w
dGlvbnMgICAgICBwdWJsaWNLZXk7Cit9OworCitwYXJ0aWFsIGRpY3Rpb25hcnkgQ3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zIHsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMg
ICAgICBwdWJsaWNLZXk7Cit9OworCitwYXJ0aWFsIGludGVyZmFjZSBQdWJsaWNLZXlDcmVkZW50
aWFsIHsKKyAgICBzdGF0aWMgUHJvbWlzZSA8IGJvb2xlYW4gPiBpc1VzZXJWZXJpZnlpbmdQbGF0
Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKTsKK307CisKK1tTZWN1cmVDb250ZXh0LCBFeHBv
c2VkPVdpbmRvd10KK2ludGVyZmFjZSBBdXRoZW50aWNhdG9yUmVzcG9uc2UgeworICAgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgQXJyYXlCdWZmZXIgICAgICBjbGllbnREYXRhSlNP
TjsKK307CisKK1tTZWN1cmVDb250ZXh0LCBFeHBvc2VkPVdpbmRvd10KK2ludGVyZmFjZSBBdXRo
ZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSA6IEF1dGhlbnRpY2F0b3JSZXNwb25zZSB7Cisg
ICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJheUJ1ZmZlciAgICAgIGF0dGVz
dGF0aW9uT2JqZWN0OworfTsKKworW1NlY3VyZUNvbnRleHQsIEV4cG9zZWQ9V2luZG93XQoraW50
ZXJmYWNlIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSA6IEF1dGhlbnRpY2F0b3JSZXNw
b25zZSB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJheUJ1ZmZlciAg
ICAgIGF1dGhlbnRpY2F0b3JEYXRhOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1
dGUgQXJyYXlCdWZmZXIgICAgICBzaWduYXR1cmU7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBBcnJheUJ1ZmZlciAgICAgIHVzZXJIYW5kbGU7Cit9OworCitkaWN0aW9uYXJ5
IFB1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzIHsKKyAgICByZXF1aXJlZCBQdWJsaWNLZXlD
cmVkZW50aWFsVHlwZSAgICAgIHR5cGU7CisgICAgcmVxdWlyZWQgQ09TRUFsZ29yaXRobUlkZW50
aWZpZXIgICAgICBhbGc7Cit9OworCitkaWN0aW9uYXJ5IE1ha2VQdWJsaWNLZXlDcmVkZW50aWFs
T3B0aW9ucyB7CisgICAgcmVxdWlyZWQgUHVibGljS2V5Q3JlZGVudGlhbFJwRW50aXR5ICAgICAg
ICAgcnA7CisgICAgcmVxdWlyZWQgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkgICAgICAg
dXNlcjsKKworICAgIHJlcXVpcmVkIEJ1ZmZlclNvdXJjZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbGxlbmdlOworICAgIHJlcXVpcmVkIHNlcXVlbmNlPFB1YmxpY0tleUNyZWRlbnRp
YWxQYXJhbWV0ZXJzPiAgcHViS2V5Q3JlZFBhcmFtczsKKworICAgIHVuc2lnbmVkIGxvbmcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ7CisgICAgc2VxdWVuY2U8UHVibGlj
S2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+ICAgICAgZXhjbHVkZUNyZWRlbnRpYWxzID0gW107Cisg
ICAgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhICAgICAgICAgICAgICAgYXV0aGVudGlj
YXRvclNlbGVjdGlvbjsKKyAgICBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlICAgICAg
ICAgICAgICBhdHRlc3RhdGlvbiA9ICJub25lIjsKKyAgICBBdXRoZW50aWNhdGlvbkV4dGVuc2lv
bnMgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zOworfTsKKworZGljdGlvbmFyeSBQdWJs
aWNLZXlDcmVkZW50aWFsRW50aXR5IHsKKyAgICByZXF1aXJlZCBET01TdHJpbmcgICAgbmFtZTsK
KyAgICBVU1ZTdHJpbmcgICAgICAgICAgICAgaWNvbjsKK307CisKK2RpY3Rpb25hcnkgUHVibGlj
S2V5Q3JlZGVudGlhbFJwRW50aXR5IDogUHVibGljS2V5Q3JlZGVudGlhbEVudGl0eSB7CisgICAg
RE9NU3RyaW5nICAgICAgaWQ7Cit9OworCitkaWN0aW9uYXJ5IFB1YmxpY0tleUNyZWRlbnRpYWxV
c2VyRW50aXR5IDogUHVibGljS2V5Q3JlZGVudGlhbEVudGl0eSB7CisgICAgcmVxdWlyZWQgQnVm
ZmVyU291cmNlICAgaWQ7CisgICAgcmVxdWlyZWQgRE9NU3RyaW5nICAgICAgZGlzcGxheU5hbWU7
Cit9OworCitkaWN0aW9uYXJ5IEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSB7CisgICAg
QXV0aGVudGljYXRvckF0dGFjaG1lbnQgICAgICBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAg
ICBib29sZWFuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVSZXNpZGVudEtleSA9IGZhbHNl
OworICAgIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCAgdXNlclZlcmlmaWNhdGlvbiA9ICJw
cmVmZXJyZWQiOworfTsKKworZW51bSBBdXRoZW50aWNhdG9yQXR0YWNobWVudCB7CisgICAgInBs
YXRmb3JtIiwgICAgICAgLy8gUGxhdGZvcm0gYXR0YWNobWVudAorICAgICJjcm9zcy1wbGF0Zm9y
bSIgIC8vIENyb3NzLXBsYXRmb3JtIGF0dGFjaG1lbnQKK307CisKK2VudW0gQXR0ZXN0YXRpb25D
b252ZXlhbmNlUHJlZmVyZW5jZSB7CisgICAgIm5vbmUiLAorICAgICJpbmRpcmVjdCIsCisgICAg
ImRpcmVjdCIKK307CisKK2RpY3Rpb25hcnkgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zIHsKKyAgICByZXF1aXJlZCBCdWZmZXJTb3VyY2UgICAgICAgICAgICAgICAgY2hhbGxlbmdl
OworICAgIHVuc2lnbmVkIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0OworICAg
IFVTVlN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICBycElkOworICAgIHNlcXVlbmNl
PFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBhbGxvd0NyZWRlbnRpYWxzID0gW107Cisg
ICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50ICAgICAgICAgIHVzZXJWZXJpZmljYXRpb24g
PSAicHJlZmVycmVkIjsKKyAgICBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnMgICAgICAgICAgICAg
ZXh0ZW5zaW9uczsKK307CisKK3R5cGVkZWYgcmVjb3JkPERPTVN0cmluZywgYW55PiAgICAgICBB
dXRoZW50aWNhdGlvbkV4dGVuc2lvbnM7CisKK2RpY3Rpb25hcnkgQ29sbGVjdGVkQ2xpZW50RGF0
YSB7CisgICAgcmVxdWlyZWQgRE9NU3RyaW5nICAgICAgICAgICB0eXBlOworICAgIHJlcXVpcmVk
IERPTVN0cmluZyAgICAgICAgICAgY2hhbGxlbmdlOworICAgIHJlcXVpcmVkIERPTVN0cmluZyAg
ICAgICAgICAgb3JpZ2luOworICAgIHJlcXVpcmVkIERPTVN0cmluZyAgICAgICAgICAgaGFzaEFs
Z29yaXRobTsKKyAgICBET01TdHJpbmcgICAgICAgICAgICAgICAgICAgIHRva2VuQmluZGluZ0lk
OworICAgIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9ucyAgICAgY2xpZW50RXh0ZW5zaW9uczsKKyAg
ICBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnMgICAgIGF1dGhlbnRpY2F0b3JFeHRlbnNpb25zOwor
fTsKKworZW51bSBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSB7CisgICAgInB1YmxpYy1rZXkiCit9
OworCitkaWN0aW9uYXJ5IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yIHsKKyAgICByZXF1
aXJlZCBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSAgICAgIHR5cGU7CisgICAgcmVxdWlyZWQgQnVm
ZmVyU291cmNlICAgICAgICAgICAgICAgICBpZDsKKyAgICBzZXF1ZW5jZTxBdXRoZW50aWNhdG9y
VHJhbnNwb3J0PiAgICAgIHRyYW5zcG9ydHM7Cit9OworCitlbnVtIEF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQgeworICAgICJ1c2IiLAorICAgICJuZmMiLAorICAgICJibGUiCit9OworCit0eXBlZGVm
IGxvbmcgQ09TRUFsZ29yaXRobUlkZW50aWZpZXI7CisKK2VudW0gVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50IHsKKyAgICAicmVxdWlyZWQiLAorICAgICJwcmVmZXJyZWQiLAorICAgICJkaXNj
b3VyYWdlZCIKK307CisKK3R5cGVkZWYgc2VxdWVuY2U8QUFHVUlEPiAgICAgIEF1dGhlbnRpY2F0
b3JTZWxlY3Rpb25MaXN0OworCit0eXBlZGVmIEJ1ZmZlclNvdXJjZSAgICAgIEFBR1VJRDsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9pZGwuaHR0cHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI3ZGRiNGFhYzgwZDI0NjhjNDlkOWJlODU3NGI2MGUzMTBhYTMwZGIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9pZGwuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTUgQEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVz
dCB2ZXJpZmllcyB0aGF0IHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIFdlYkF1dGhOIEFQSSBt
YXRjaCB3aXRoIGl0cyBXZWJJREwgZGVmaW5pdGlvbi4KKworCitQQVNTIFNldHVwIGZvciBXZWJB
dXRoTiBBUEkgSURMIHRlc3RzLiAKK1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBDcmVkZW50aWFsIGlu
dGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBDcmVkZW50aWFsIGludGVyZmFjZSBvYmplY3Qg
bmFtZSAKK1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgaWQgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdHlwZSAK
K1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVy
ZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZSBv
YmplY3QgbmFtZSAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgUHVi
bGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNT
IFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmF3SWQgCitQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVzcG9uc2UgCitQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q2xpZW50RXh0ZW5zaW9u
UmVzdWx0cygpIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZTogb3BlcmF0aW9u
IGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpIAorUEFTUyBQ
dWJsaWNLZXlDcmVkZW50aWFsIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgY3JlZGVudGlh
bCAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIGNyZWRlbnRpYWwgCitQQVNTIFB1YmxpY0tleUNy
ZWRlbnRpYWwgaW50ZXJmYWNlOiBjcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmF3
SWQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVy
ZmFjZTogY3JlZGVudGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlc3BvbnNlIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGNyZWRl
bnRpYWwgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCki
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFj
ZTogY3JlZGVudGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImlzVXNlclZlcmlmeWluZ1BsYXRm
b3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1Mg
Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGNyZWRlbnRpYWwgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJp
ZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNlOiBjcmVk
ZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CitQQVNTIEF1dGhlbnRpY2F0b3JSZXNwb25zZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBBdXRoZW50aWNhdG9yUmVzcG9uc2Ug
aW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIEF1dGhlbnRpY2F0b3JSZXNwb25zZSBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIEF1dGhlbnRpY2F0b3JSZXNwb25zZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAK
K1BBU1MgQXV0aGVudGljYXRvclJlc3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eSAKK1BBU1MgQXV0aGVudGljYXRvclJlc3BvbnNlIGludGVyZmFjZTogYXR0cmlidXRlIGNs
aWVudERhdGFKU09OIAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFT
UyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0
aCAKK1BBU1MgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgaW50ZXJmYWNlIG9iamVj
dCBuYW1lIAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAK
K1BBU1MgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3Ry
dWN0b3IiIHByb3BlcnR5IAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBhdHRlc3RhdGlvbk9iamVjdCAKK1BBU1MgQXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2UgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBjcmVkZW50
aWFsLnJlc3BvbnNlIAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgY3JlZGVudGlhbC5yZXNwb25z
ZSAKK1BBU1MgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgaW50ZXJmYWNlOiBjcmVk
ZW50aWFsLnJlc3BvbnNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXR0ZXN0YXRpb25PYmplY3Qi
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBBdXRoZW50aWNhdG9yUmVzcG9uc2UgaW50ZXJm
YWNlOiBjcmVkZW50aWFsLnJlc3BvbnNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xpZW50RGF0
YUpTT04iIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBBdXRoZW50aWNhdG9yQXNzZXJ0aW9u
UmVzcG9uc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCAKK1BBU1MgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlIGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoIAorUEFTUyBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UgaW50ZXJm
YWNlIG9iamVjdCBuYW1lIAorUEFTUyBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QgCitQQVNTIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJj
b25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25z
ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhdXRoZW50aWNhdG9yRGF0YSAKK1BBU1MgQXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlIGludGVyZmFjZTogYXR0cmlidXRlIHNpZ25hdHVyZSAKK1BB
U1MgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlIGludGVyZmFjZTogYXR0cmlidXRlIHVz
ZXJIYW5kbGUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL2lk
bC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWQyYmNiZmQ3MjQ0N2FkYmRhODFjMDE4NWQzOTc1MDVlYWI2NDA2Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRw
cy5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PXV0Zi04PgorICAgIDx0aXRsZT5JREwgY2hlY2sgb2YgV2ViQXV0
aE48L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93d3cudzMub3Jn
L1RSL3dlYmF1dGhuLyNpZGwtaW5kZXgiPgorICAgIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL1dlYklE
TFBhcnNlci5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL2lkbGhhcm5l
c3MuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxoMSBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj5EZXNj
cmlwdGlvbjwvaDE+CisKKzxwIGNsYXNzPSJpbnN0cnVjdGlvbnMiPlRoaXMgdGVzdCB2ZXJpZmll
cyB0aGF0IHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIFdlYkF1dGhOIEFQSSBtYXRjaCB3aXRo
IGl0cyBXZWJJREwgZGVmaW5pdGlvbi48L3A+CisKKzxkaXYgaWQ9J2xvZyc+PC9kaXY+CisKKzxz
Y3JpcHQ+Citwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgIGNvbnN0IGlkbFVSTCA9IFsi
V2ViQXV0aE4uaWRsIl07CisgICAgY29uc3QgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKKyAg
ICBjb25zdCBpZGxUZXh0ID0gYXdhaXQgZmV0Y2goaWRsVVJMKS50aGVuKHIgPT4gci50ZXh0KCkp
OworCisgICAgaWRsQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoImludGVyZmFjZSBBcnJheUJ1ZmZl
ciB7fTsiKTsKKworICAgIGlkbEFycmF5LmFkZF9pZGxzKGAKKyAgICAgICAgW0V4cG9zZWQ9V2lu
ZG93LCBTZWN1cmVDb250ZXh0XQorICAgICAgICBpbnRlcmZhY2UgQ3JlZGVudGlhbCB7CisgICAg
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGlkOworICAgICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOworICAgICAgICB9OworICAgIGApOworICAg
IGlkbEFycmF5LmFkZF9pZGxzKGlkbFRleHQpOworCisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAg
ICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgIG5h
bWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHVzZXI6IHsKKyAg
ICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIGlk
OiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgZGlzcGxheU5h
bWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNoYWxsZW5nZTog
QmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFt
czogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICB9CisgICAgfTsK
KyAgICBjcmVkZW50aWFsID0gYXdhaXQgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRp
b25zKTsKKworICAgIGlkbEFycmF5LmFkZF9vYmplY3RzKHsiUHVibGljS2V5Q3JlZGVudGlhbCI6
IFsiY3JlZGVudGlhbCJdLCAiQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UiOiBbImNy
ZWRlbnRpYWwucmVzcG9uc2UiXX0pOworICAgIGlkbEFycmF5LnRlc3QoKTsKK30sICJTZXR1cCBm
b3IgV2ViQXV0aE4gQVBJIElETCB0ZXN0cy4iKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1m
YWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzQ3NjFmM2Y0YWMyMTJmZWZjMmM5MDdjYTFlZDBjZTcyOTk1NTI5NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2
IEBACisKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB0aW1lb3V0
IAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIGEgbWlzbWF0Y2hl
ZCBSUCBJRCAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBhbiBl
bXB0eSBwdWJLZXlDcmVkUGFyYW1zIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVh
dGVdXSB3aXRoIHVzZXIgY2FuY2VsbGF0aW9ucyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGU4ZTQxOTc1YWEx
NGY1NWFkMjA4ZTIyN2RjMDdmNmJkYzEyYjc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJl
Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+V2Vi
IEF1dGhlbnRpY2F0aW9uIEFQSTogUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gZmFp
bHVyZSBjYXNlcy48L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgICBjb25z
dCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAg
cnA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICBu
YW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICBpZDogYXNjaWlUb1Vp
bnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpv
aG4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2Np
aVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFt
czogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAgICAgIHRp
bWVvdXQ6IDAsCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHJldHVybiBwcm9t
aXNlX3JlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpKTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlh
bCdzIFtbY3JlYXRlXV0gd2l0aCB0aW1lb3V0Iik7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5
OiB7CisgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4
YW1wbGUuY29tIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6ICJleGFtcGxlLmNvbSIKKyAgICAg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAg
ICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IGFzY2lp
VG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6
ICJKb2huIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTog
YXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQ
YXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAiU2VjdXJpdHlF
cnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMp
KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBhIG1pc21h
dGNoZWQgUlAgSUQiKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICAg
IGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAg
ICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAg
ICAgICAgICAgICAgICAgaWQ6ICJsb2NhbGhvc3QiCisgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxl
c2VlZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2
IiksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJy
YXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFsgXSwKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0
LCAiTm90U3VwcG9ydGVkRXJyb3IiLAorICAgICAgICAgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmNyZWF0ZShvcHRpb25zKSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0
ZV1dIHdpdGggYW4gZW1wdHkgcHViS2V5Q3JlZFBhcmFtcyIpOworCisgICAgLy8gVGhpcyB0ZXN0
IGlzIHRhcmdldGluZyB0byB0aGUgZHVtbXkgYXV0aGVudGljYXRvciwgd2hpY2ggYWx3YXlzIGNh
bmNlbCB0aGUgb3BlcmF0aW9uCisgICAgLy8gd2hlbiB1c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4i
LgorICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAg
ICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICAgICAg
aWQ6ICJsb2NhbGhvc3QiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2Vy
OiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAg
ICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAg
ICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAg
ICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzog
LTcgfV0sCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHJldHVybiBwcm9taXNl
X3JlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpKTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdz
IFtbY3JlYXRlXV0gd2l0aCB1c2VyIGNhbmNlbGxhdGlvbnMiKTsKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyZWF0ZS1zdWNjZXNzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy5odHRwcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E4Njg0MDZiNTgyZjUzNGM5ZDZhMmJiMTUxM2VmZWRiOTQ3
ZWQxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0
aCBtaW5pbXVtIG9wdGlvbnMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0
ZS1zdWNjZXNzLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGYzZWVmZjE3MzY3MjA3MDNlMzRkNzdl
ZTc2MTFmNzAyYmU2ZjQ5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy5odHRwcy5odG1s
CkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPldlYiBBdXRoZW50aWNh
dGlvbiBBUEk6IFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHN1Y2Nlc3MgY2FzZXMu
PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisgICAgLy8gVGhlIGZvbGxvd2luZyB0ZXN0IGlzIHNwZWNpZmljYWxseSB0dW5lZCBmb3IgY3Vy
cmVudCBkdW1teSBhdXRoZW50aWNhdG9yLgorICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAg
ICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0
IiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAg
ICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAg
aWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgZGlz
cGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg
ICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAg
ICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAor
ICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24oY3JlZGVudGlhbCkgeworICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC5pZCwgJ193Jyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjcmVkZW50aWFsLnR5cGUsICdwdWJsaWMta2V5Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvSGV4U3RyaW5nKGNyZWRlbnRpYWwu
cmF3SWQpLCAnZmYnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9BU0NJ
SVN0cmluZyhjcmVkZW50aWFsLnJlc3BvbnNlLmNsaWVudERhdGFKU09OKSwgJ3sidHlwZSI6Indl
YmF1dGhuLmNyZWF0ZSIsImNoYWxsZW5nZSI6Ik1USXpORFUyIiwib3JpZ2luIjoiaHR0cHM6Ly9s
b2NhbGhvc3Q6OTQ0MyIsImhhc2hBbGdvcml0aG0iOiJTSEEtMjU2In0nKTsKKyAgICAgICAgICAg
ICAgICAvLyBUaGlzIGZpZWxkIGlzIGNvbXBsZXRlbHkgZmFrZSAweDAwKjQzIHwgMHgwMDAxZmYg
fCBTSEEtMjU2IGhhc2ggb2YgdGhlIGNsaWVudERhdGFKU09OCisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhieXRlc1RvSGV4U3RyaW5nKGNyZWRlbnRpYWwucmVzcG9uc2UuYXR0ZXN0YXRp
b25PYmplY3QpLCAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxZmYzMzc0Yjk4MzE2
YjM4MDQ2NzI3YTc3MGI4ZTk1YzQ1ODBhMjkyYjllMmY0YmI0NGEyNTBhNTQwMmQ2ZDM3ODNhJyk7
CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cygiTm90U3VwcG9ydGVkRXJyb3IiLCBjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3Vs
dHMoKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCB7IH0KKyAgICAgICAgICAgIH0pOworICAg
IH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1pbmltdW0gb3B0aW9u
cyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRo
bi9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jlc291
cmNlcy91dGlsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNzVlYjc4NDgxNWU2MzVjODg0YjM4NWRjMzU3NmU4
ZmMzMzlkOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRo
bi9yZXNvdXJjZXMvdXRpbC5qcwpAQCAtMCwwICsxLDQ1IEBACitmdW5jdGlvbiBhc2NpaVRvVWlu
dDhBcnJheShzdHIpCit7CisgICAgdmFyIGNoYXJzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBzdHIubGVuZ3RoOyArK2kpCisgICAgICAgIGNoYXJzLnB1c2goc3RyLmNoYXJDb2RlQXQo
aSkpOworICAgIHJldHVybiBuZXcgVWludDhBcnJheShjaGFycyk7Cit9CisKKy8vIEJ1aWxkcyBh
IGhleCBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIGFuIGFycmF5LWxpa2UgaW5wdXQuCisvLyAi
Ynl0ZXMiIGNhbiBiZSBhbiBBcnJheSBvZiBieXRlcywgYW4gQXJyYXlCdWZmZXIsIG9yIGFueSBU
eXBlZEFycmF5LgorLy8gVGhlIG91dHB1dCBsb29rcyBsaWtlIHRoaXM6CisvLyAgICBhYjAzNGM5
OQorZnVuY3Rpb24gYnl0ZXNUb0hleFN0cmluZyhieXRlcykKK3sKKyAgICBpZiAoIWJ5dGVzKQor
ICAgICAgICByZXR1cm4gbnVsbDsKKworICAgIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZXMp
OworICAgIHZhciBoZXhCeXRlcyA9IFtdOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBieXRl
cy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgYnl0ZVN0cmluZyA9IGJ5dGVzW2ldLnRvU3Ry
aW5nKDE2KTsKKyAgICAgICAgaWYgKGJ5dGVTdHJpbmcubGVuZ3RoIDwgMikKKyAgICAgICAgICAg
IGJ5dGVTdHJpbmcgPSAiMCIgKyBieXRlU3RyaW5nOworICAgICAgICBoZXhCeXRlcy5wdXNoKGJ5
dGVTdHJpbmcpOworICAgIH0KKworICAgIHJldHVybiBoZXhCeXRlcy5qb2luKCIiKTsKK30KKwor
ZnVuY3Rpb24gYnl0ZXNUb0FTQ0lJU3RyaW5nKGJ5dGVzKQoreworICAgIHJldHVybiBTdHJpbmcu
ZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIG5ldyBVaW50OEFycmF5KGJ5dGVzKSk7Cit9CisKK3Zh
ciBCYXNlNjRVUkwgPSB7CisgICAgc3RyaW5naWZ5OiBmdW5jdGlvbiAoYSkgeworICAgICAgICB2
YXIgYmFzZTY0c3RyaW5nID0gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KDAsIGEpKTsK
KyAgICAgICAgcmV0dXJuIGJhc2U2NHN0cmluZy5yZXBsYWNlKC89L2csICIiKS5yZXBsYWNlKC9c
Ky9nLCAiLSIpLnJlcGxhY2UoL1wvL2csICJfIik7CisgICAgfSwKKyAgICBwYXJzZTogZnVuY3Rp
b24gKHMpIHsKKyAgICAgICAgcyA9IHMucmVwbGFjZSgvLS9nLCAiKyIpLnJlcGxhY2UoL18vZywg
Ii8iKS5yZXBsYWNlKC9ccy9nLCAnJyk7CisgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShB
cnJheS5wcm90b3R5cGUubWFwLmNhbGwoYXRvYihzKSwgZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMu
Y2hhckNvZGVBdCgwKSB9KSk7CisgICAgfQorfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331987</attachid>
            <date>2018-01-22 17:26:47 -0800</date>
            <delta_ts>2018-01-22 19:01:05 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-181928-20180122172646.patch</filename>
            <type>text/plain</type>
            <size>102572</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEwZjBkZmQ3Zjg4ZTc0
NDA3MTUzMzUzYTNjMTNhODY5ZTAwNzgzMS4uMjFjNmYxMzc1YjQyZjQzOTU4OThhOGNiNTFkMzlm
YmU4MWY0Mzg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDE4LTAxLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBs
ZW1lbnQgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbQ3JlYXRlXV0gd2l0aCBhIGR1bW15IGF1dGhl
bnRpY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MTkyOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY0NTk4OTM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMg
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbQ3JlYXRlXV0gZnJvbSBodHRwczovL3d3dy53My5vcmcv
VFIvd2ViYXV0aG4vI2NyZWF0ZUNyZWRlbnRpYWwKKyAgICAgICAgYXMgb2YgNSBEZWNlbWJlciAy
MDE3LiBJbiBvcmRlciB0byBkbyB0ZXN0aW5nLCBhIGR1bW15IGF1dGhlbnRpY2F0b3IgaXMgaW1w
bGVtZW50ZWQgdG8gZXhlcmNpc2UgYSBmYWlsdXJlCisgICAgICAgIGFuZCBhIHBhc3MgcGF0aC4g
QSBudW1iZXIgb2YgZGVwZW5kZW5jaWVzIG5lZWQgdG8gYmUgcmVzb2x2ZWQgbGF0ZXIgaW4gb3Jk
ZXIgdG8gY29tcGx5IHdpdGggdGhlIHNwZWMuCisgICAgICAgIEFsc28sIHRoZSBjdXJyZW50IGFy
Y2hpdGVjdHVyZSBvZiBoYW5kbGluZyBhc3luYyBXZWJBdXRoTiBvcGVyYXRpb25zIGluY2x1ZGlu
ZyBkaXNwYXRjaGluZywgdGltZW91dCwgYW5kIGFib3J0aW5nCisgICAgICAgIG1pZ2h0IG5lZWQg
YSByZWRlc2lnbiBvbmNlIHRoZSB1bmRlcmx5aW5nIGF1dGhlbnRpY2F0b3IgaXMgY2xlYXIuIFNp
bmNlIHRoaXMgaXMgb3VyIGZpcnN0IGF0dGVtcHQgdG8gaW1wbGVtZW50CisgICAgICAgIGEgcHJv
dG90eXBlLCBhbGwgdGhvc2UgbGltaXRhdGlvbnMsIGluIG15IG9waW5pb24sIGNhbiBiZSBtYXJr
ZWQgYXMgbm9uLWJsb2NraW5nIHRvIGFjY2VsZXJhdGUgdGhlIHdob2xlCisgICAgICAgIHByb2Nl
c3MuIFRob3NlIGxpbWl0YXRpb25zIHdpbGwgdGhlbiBiZSBhZGRyZXNzZWQgb25jZSB0aGUgZmly
c3QgcHJvdG90eXBlIGlzIGZpbnNoZWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS13aXRoLWludmFsaWQtcGFyYW1ldGVy
cy5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBzLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNh
bWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
d3B0L3dlYmF1dGhuL2lkbC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0cHMuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0
ZS1zdWNjZXNzLmh0dHBzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlhbG1hbmFn
ZW1lbnQvQmFzaWNDcmVkZW50aWFsLmg6CisgICAgICAgICogTW9kdWxlcy9jcmVkZW50aWFsbWFu
YWdlbWVudC9CYXNpY0NyZWRlbnRpYWwuaWRsOgorICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlh
bG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3JlZGVudGlhbHNDb250YWluZXI6OlBlbmRpbmdQcm9taXNlOjpQZW5kaW5nUHJvbWlzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6ZGlzcGF0Y2hUYXNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3JlZGVudGlhbHNDb250YWluZXI6OmlzQ3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRp
YWxzQ29udGFpbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6
UGVuZGluZ1Byb21pc2U6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRvcjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3I6Om1ha2VD
cmVkZW50aWFsIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0
b3IuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmguCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjphdXRoZW50aWNhdG9yRGF0YSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OnNpZ25h
dHVyZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVz
cG9uc2U6OnVzZXJIYW5kbGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ckFzc2VydGlvblJlc3BvbnNlOjp+QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6
YXV0aGVudGljYXRvckRhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlOjpzaWduYXR1cmUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjp1c2VySGFuZGxlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNl
OjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjp+QXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmg6
CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2U6OmNsaWVudERhdGFK
U09OIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZTo6fkF1
dGhlbnRpY2F0b3JSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50
aWNhdG9yUmVzcG9uc2U6OmNsaWVudERhdGFKU09OKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHVibGlj
S2V5Q3JlZGVudGlhbEludGVybmFsOjpwcm9kdWNlQ2xpZW50RGF0YUpzb24pOgorICAgICAgICAo
V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbEludGVybmFsOjpwcm9kdWNlQ2xpZW50RGF0YUpz
b25IYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxJbnRlcm5hbDo6
Z2V0SWRGcm9tQXR0ZXN0YXRpb25PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5
Q3JlZGVudGlhbDo6UHVibGljS2V5Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbDo6cmF3SWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbDo6cmVzcG9uc2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbDo6Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpyYXdJZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpyZXNwb25zZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjpnZXRDbGllbnRFeHRlbnNpb25S
ZXN1bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWwuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5pZGw6CisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9t
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50
aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5jcHAuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3
bHlDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwLgorICAgICAgICAo
V2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorCiAyMDE4LTAxLTE4
ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgYnVpbGQgZml4LCByZW1vdmVkIHVudXNlZCBsYW1iZGEgY2FwdHVyZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWNDcmVkZW50
aWFsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2lj
Q3JlZGVudGlhbC5oCmluZGV4IDc3NjBiZWE3MzE4ZTY5ZmNiNzM2OWJmNWI4MGY2YTBmODFhMjZk
YzIuLmQ3ZGI0MWI0YzFmODhhZTdkZWFhMDY4ZDg3MjNjYTU1YjFkNzU1MjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWNDcmVkZW50
aWFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9C
YXNpY0NyZWRlbnRpYWwuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVHlwZUNhc3Rz
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQxLDE1ICs0MiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIFJlbW90ZSwKICAgICB9Owog
CisgICAgQmFzaWNDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYsIFR5cGUsIERpc2NvdmVyeSk7CiAg
ICAgdmlydHVhbCB+QmFzaWNDcmVkZW50aWFsKCk7CiAKKyAgICB2aXJ0dWFsIFR5cGUgY3JlZGVu
dGlhbFR5cGUoKSBjb25zdCA9IDA7CisKICAgICBjb25zdCBTdHJpbmcmIGlkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZDsgfQogICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CiAgICAgRGlzY292ZXJ5IGRp
c2NvdmVyeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzY292ZXJ5OyB9CiAKLXByb3RlY3RlZDoKLSAg
ICBCYXNpY0NyZWRlbnRpYWwoY29uc3QgU3RyaW5nJiwgVHlwZSwgRGlzY292ZXJ5KTsKLQogcHJp
dmF0ZToKICAgICBTdHJpbmcgbV9pZDsKICAgICBUeXBlIG1fdHlwZTsKQEAgLTU3LDMgKzU4LDgg
QEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2RlZmluZSBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0JBU0lDX0NSRURFTlRJQUwoVG9DbGFzc05hbWUsIFR5cGUpIFwK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6VG9DbGFzc05hbWUpIFwKKyAg
ICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6QmFzaWNDcmVkZW50aWFsJiBjcmVk
ZW50aWFsKSB7IHJldHVybiBjcmVkZW50aWFsLmNyZWRlbnRpYWxUeXBlKCkgPT0gV2ViQ29yZTo6
VHlwZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2ljQ3JlZGVudGlhbC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Jhc2ljQ3Jl
ZGVudGlhbC5pZGwKaW5kZXggZjIzZWQyZjAzZmUyODVlMTEyNTg0OWE5M2RmN2MzYWQ2MWIyYTI0
Zi4uYTUwYzk0ZWJiMWIzM2NkODNkNTQ3YmIzZWYwOTViN2I2OTYwNTZkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9CYXNpY0NyZWRlbnRp
YWwuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
QmFzaWNDcmVkZW50aWFsLmlkbApAQCAtMjUsNiArMjUsNyBAQAogCiBbCiAgICAgSW50ZXJmYWNl
TmFtZT1DcmVkZW50aWFsLAorICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJBdXRoZW50aWNhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBTZWN1cmVD
b250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5h
Z2VtZW50L0NyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCmluZGV4
IDFiNDAxZWY1YTdmNjUxYzk5OWY3MzBiYjNiNmRjMTM1YTkyN2FlYzQuLjM3NzVkZGEwODA2MzA0
ODgwZGNlYTM5YjlhODk2YjE0MjIxYmIyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucy5oCkBAIC0zMiw4ICszMiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgQWJvcnRTaWduYWw7Ci0KIHN0cnVjdCBDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zIHsKICAgICBSZWZQdHI8QWJvcnRTaWduYWw+IHNpZ25hbDsKICAgICBzdGQ6Om9wdGlvbmFs
PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+IHB1YmxpY0tleTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlh
bHNDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdl
bWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHAKaW5kZXggOWVjMzg1OGUwMTNmZDViNzRiYTAx
YzFkNDkwNWFmMGMyMWJjNDUzMy4uM2ZhZDc1YWQwZDNkOTYzMmZmYjE3OGIwN2EzODljMThmOTgy
M2YyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdl
bWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHAKQEAgLTM1LDE1
ICszNSwyOSBAQAogI2luY2x1ZGUgIkpTQmFzaWNDcmVkZW50aWFsLmgiCiAjaW5jbHVkZSAiUHVi
bGljS2V5Q3JlZGVudGlhbC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitDcmVkZW50aWFs
c0NvbnRhaW5lcjo6UGVuZGluZ1Byb21pc2U6OlBlbmRpbmdQcm9taXNlKFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSwgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiYmIHRpbWVyKQorICAgIDog
cHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQorICAgICwgdGltZXIoV1RGTW92ZSh0aW1lcikpCit7
Cit9CisKK0NyZWRlbnRpYWxzQ29udGFpbmVyOjpQZW5kaW5nUHJvbWlzZTo6UGVuZGluZ1Byb21p
c2UoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQorICAgIDogcHJvbWlzZShXVEZNb3Zl
KHByb21pc2UpKQoreworfQorCiBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Q3JlZGVudGlhbHNDb250
YWluZXIoV2Vha1B0cjxEb2N1bWVudD4mJiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQoV1RG
TW92ZShkb2N1bWVudCkpCiAgICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29t
LmFwcGxlLldlYktpdC5DcmVkZW50aWFsUXVldWUiKSkKIHsKIH0KIAorLy8gVGhlIGZvbGxvd2lu
ZyBpbXBsZW1lbnRzIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtY3JlZGVudGlhbC1t
YW5hZ2VtZW50LyNzYW1lLW9yaWdpbi13aXRoLWl0cy1hbmNlc3RvcnMKKy8vIGFzIG9mIDE0IE5v
dmVtYmVyIDIwMTcuCiBib29sIENyZWRlbnRpYWxzQ29udGFpbmVyOjpkb2VzSGF2ZVNhbWVPcmln
aW5Bc0l0c0FuY2VzdG9ycygpCiB7CiAgICAgaWYgKCFtX2RvY3VtZW50KQpAQCAtNTcsMjEgKzcx
LDUwIEBAIGJvb2wgQ3JlZGVudGlhbHNDb250YWluZXI6OmRvZXNIYXZlU2FtZU9yaWdpbkFzSXRz
QW5jZXN0b3JzKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorLy8gRklYTUU6IFNpbmNlIHRoZSB1
bmRlcmx5aW5nIGF1dGhlbnRpY2F0b3IgbW9kZWwgaXMgbm90IGNsZWFyIGF0IHRoaXMgbW9tZW50
LCB0aGUgdGltZXIgaXMgbW92ZWQgdG8gQ3JlZGVudGlhbHNDb250YWluZXIgc3VjaCB0aGF0Cisv
LyB0aW1lciBjYW4gc3RheSB3aXRoIG1haW4gdGhyZWFkIGFuZCB0aGVyZWZvcmUgY2FuIGVhc2ls
eSB0aW1lIG91dCBhY3Rpdml0aWVzIG9uIHRoZSB3b3JrIHF1ZXVlLgorLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTk0Ni4KKy8vIEZJWE1FOiBUaGUgdXNhZ2Vz
IG9mIEFib3J0U2lnbmFsIGFyZSBhbHNvIG1vdmVkIGhlcmUgZm9yIHRoZSB2ZXJ5IHNhbWUgcmVh
c29uLiBBbHNvIHRoZSBBYm9ydFNpZ25hbCBpcyBraW5kIG9mIGJvZ3VzIGF0IHRoaXMgbW9tZW50
CisvLyBzaW5jZSBpdCBkb2Vzbid0IHN1cHBvcnQgb2JzZXJ2ZXJzIChvciBvdGhlciBtZWFucykg
dG8gdHJpZ2dlciB0aGUgYWN0dWFsIGFib3J0IGFjdGlvbi4gRW5oYW5jZW1lbnQgdG8gQWJvcnRT
aWduYWwgaXMgbmVlZGVkLgorLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MTk0NS4KIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGU+Ci12b2lkIENyZWRl
bnRpYWxzQ29udGFpbmVyOjpkaXNwYXRjaFRhc2soT3BlcmF0aW9uVHlwZSYmIG9wZXJhdGlvbiwg
UmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQordm9pZCBDcmVkZW50aWFsc0NvbnRhaW5l
cjo6ZGlzcGF0Y2hUYXNrKE9wZXJhdGlvblR5cGUmJiBvcGVyYXRpb24sIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZCBsb25nPiB0aW1lT3V0SW5N
cykKIHsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmICghbV9kb2N1bWVudCkK
KyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byogcHJvbWlzZUluZGV4ID0gcHJvbWlzZS5wdHIo
KTsKLSAgICBtX3BlbmRpbmdQcm9taXNlcy5hZGQocHJvbWlzZUluZGV4LCBXVEZNb3ZlKHByb21p
c2UpKTsKICAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsKLSAgICBhdXRvIHRhc2sgPSBbcHJvbWlzZUluZGV4LCB3ZWFrVGhpcywgaXNTYW1l
T3JpZ2luV2l0aEl0c0FuY2VzdG9ycyA9IGRvZXNIYXZlU2FtZU9yaWdpbkFzSXRzQW5jZXN0b3Jz
KCksIG9wZXJhdGlvbiA9IFdURk1vdmUob3BlcmF0aW9uKV0gKCkgewotICAgICAgICBhdXRvIHJl
c3VsdCA9IG9wZXJhdGlvbihpc1NhbWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IHRyaW0gdGltZU91dEluTXMgdG8gc29tZSBtYXggYWxs
b3dhYmxlIG51bWJlci4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgxOTQ3CisgICAgaWYgKHRpbWVPdXRJbk1zKSB7CisgICAgICAgIGF1dG8gcGVuZGlu
Z1Byb21pc2UgPSBQZW5kaW5nUHJvbWlzZTo6Y3JlYXRlKFdURk1vdmUocHJvbWlzZSksIHN0ZDo6
bWFrZV91bmlxdWU8VGltZXI+KFtwcm9taXNlSW5kZXgsIHdlYWtUaGlzXSAoKSB7CisgICAgICAg
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKSB7
CisgICAgICAgICAgICAgICAgLy8gQSBsb2NrIHNob3VsZCBub3QgYmUgbmVlZGVkIGFzIGFsbCBj
YWxsYmFja3MgYXJlIGV4ZWN1dGVkIGluIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgICAgICAg
ICBpZiAoYXV0byBwcm9taXNlID0gd2Vha1RoaXMtPm1fcGVuZGluZ1Byb21pc2VzLnRha2UocHJv
bWlzZUluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgcHJvbWlzZS52YWx1ZSgpLT5wcm9taXNl
LT5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICAgICAgfQor
ICAgICAgICB9KSk7CisgICAgICAgIHBlbmRpbmdQcm9taXNlLT50aW1lci0+c3RhcnRPbmVTaG90
KFNlY29uZHModGltZU91dEluTXMudmFsdWUoKSAvIDEwMDAuMCkpOworICAgICAgICBtX3BlbmRp
bmdQcm9taXNlcy5hZGQocHJvbWlzZUluZGV4LCBXVEZNb3ZlKHBlbmRpbmdQcm9taXNlKSk7Cisg
ICAgfSBlbHNlCisgICAgICAgIG1fcGVuZGluZ1Byb21pc2VzLmFkZChwcm9taXNlSW5kZXgsIFBl
bmRpbmdQcm9taXNlOjpjcmVhdGUoV1RGTW92ZShwcm9taXNlKSkpOworCisgICAgYXV0byB0YXNr
ID0gW3Byb21pc2VJbmRleCwgd2Vha1RoaXMsIG9yaWdpbiA9IG1fZG9jdW1lbnQtPnNlY3VyaXR5
T3JpZ2luKCkuaXNvbGF0ZWRDb3B5KCksIGlzU2FtZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMgPSBk
b2VzSGF2ZVNhbWVPcmlnaW5Bc0l0c0FuY2VzdG9ycygpLCBvcGVyYXRpb24gPSBXVEZNb3ZlKG9w
ZXJhdGlvbildICgpIHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBvcGVyYXRpb24ob3JpZ2luLCBp
c1NhbWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
cHJvbWlzZUluZGV4LCB3ZWFrVGhpcywgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSAoKSBtdXRh
YmxlIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAgICAgICAgICAgIC8vIEEg
bG9jayBzaG91bGQgbm90IGJlIG5lZWRlZCBhcyBhbGwgY2FsbGJhY2tzIGFyZSBleGVjdXRlZCBp
biB0aGUgbWFpbiB0aHJlYWQuCiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IHdl
YWtUaGlzLT5tX3BlbmRpbmdQcm9taXNlcy50YWtlKHByb21pc2VJbmRleCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHByb21pc2UudmFsdWUoKS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkp
OwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBwcm9t
aXNlLnZhbHVlKCktPnJlc29sdmU8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPEJhc2ljQ3JlZGVu
dGlhbD4+PihyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkuZ2V0KCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgcHJvbWlzZS52YWx1ZSgpLT5wcm9taXNlLT5yZWplY3QocmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IEdvdCBzb21lIGNyYXp5IGNvbXBpbGUgZXJyb3Igd2hlbiBJ
IHdhcyB0cnlpbmcgdG8gcGFzcyBSSFMgdG8gdGhlIHJlc29sdmUgbWV0aG9kLgorICAgICAgICAg
ICAgICAgICAgICAgICAgUmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4gY3JlZGVudGlhbCA9IHJlc3Vs
dC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb21pc2Uu
dmFsdWUoKS0+cHJvbWlzZS0+cmVzb2x2ZTxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8QmFzaWND
cmVkZW50aWFsPj4+KGNyZWRlbnRpYWwuZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9KTsKQEAgLTk5LDEwICsx
NDIsMTAgQEAgdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KENyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFAKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGF1dG8gb3BlcmF0aW9uID0gW29wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpXSAoYm9v
bCBpc1NhbWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKSB7Ci0gICAgICAgIHJldHVybiBQdWJsaWNL
ZXlDcmVkZW50aWFsOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShvcHRpb25zLCBpc1NhbWVP
cmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKKyAgICBhdXRvIG9wZXJhdGlvbiA9IFtvcHRpb25zID0g
V1RGTW92ZShvcHRpb25zKV0gKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGJvb2wgaXNT
YW1lT3JpZ2luV2l0aEl0c0FuY2VzdG9ycykgeworICAgICAgICByZXR1cm4gUHVibGljS2V5Q3Jl
ZGVudGlhbDo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2Uob3JpZ2luLCBvcHRpb25zLCBpc1Nh
bWVPcmlnaW5XaXRoSXRzQW5jZXN0b3JzKTsKICAgICB9OwotICAgIGRpc3BhdGNoVGFzayhXVEZN
b3ZlKG9wZXJhdGlvbiksIFdURk1vdmUocHJvbWlzZSkpOworICAgIGRpc3BhdGNoVGFzayhXVEZN
b3ZlKG9wZXJhdGlvbiksIFdURk1vdmUocHJvbWlzZSksIG9wdGlvbnMucHVibGljS2V5LT50aW1l
b3V0KTsKIH0KIAogdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6c3RvcmUoY29uc3QgQmFzaWND
cmVkZW50aWFsJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQpAQCAtMTEyLDYgKzE1
NSw4IEBAIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OnN0b3JlKGNvbnN0IEJhc2ljQ3JlZGVu
dGlhbCYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYKIAogdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5l
cjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKKyAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVu
dHMgaHR0cHM6Ly93d3cudzMub3JnL1RSL2NyZWRlbnRpYWwtbWFuYWdlbWVudC0xLyNhbGdvcml0
aG0tY3JlYXRlIGFzIG9mIDQgQXVndXN0IDIwMTcKKyAgICAvLyB3aXRoIGVuaGFuY2VtZW50IGZy
b20gMTQgTm92ZW1iZXIgMjAxNyBFZGl0b3IncyBEcmFmdC4KICAgICAvLyBGSVhNRTogT3B0aW9u
YWwgb3B0aW9ucyBhcmUgcGFzc2VkIHdpdGggbm8gY29udGVudHMuIEl0IHNob3VsZCBiZSBzdGQ6
Om9wdGlvbmFsLgogICAgIGlmICgoIW9wdGlvbnMuc2lnbmFsICYmICFvcHRpb25zLnB1YmxpY0tl
eSkgfHwgIW1fZG9jdW1lbnQpIHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yIH0pOwpAQCAtMTIxLDIzICsxNjYsMjUgQEAgdm9pZCBDcmVkZW50
aWFsc0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlv
bnMsIFJlZjxEZWYKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJy
b3IgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgLy8gU3RlcCAxLTIuCiAgICAgQVNT
RVJUKG1fZG9jdW1lbnQtPmlzU2VjdXJlQ29udGV4dCgpKTsKIAotICAgIC8vIFRoaXMgaXMgYSBz
aG9ydGN1dCB0byBodHRwczovL3d3dy53My5vcmcvVFIvY3JlZGVudGlhbC1tYW5hZ2VtZW50LTEv
I2NyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy1yZWxldmFudC1jcmVkZW50aWFsLWludGVyZmFjZS1v
YmplY3RzLAotICAgIC8vIGFzIHdlIG9ubHkgc3VwcG9ydCBvbmUga2luZCBvZiBjcmVkZW50aWFs
cy4KKyAgICAvLyBTdGVwIDMtNC4gU2hvcnRjdXQgYXMgd2Ugb25seSBzdXBwb3J0IG9uZSBraW5k
IG9mIGNyZWRlbnRpYWxzLgogICAgIGlmICghb3B0aW9ucy5wdWJsaWNLZXkpIHsKICAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBvcGVyYXRpb24gPSBbb3B0aW9ucyA9IFdURk1v
dmUob3B0aW9ucyldIChib29sIGlzU2FtZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMpIHsKKyAgICBh
dXRvIHRpbWVvdXQgPSBvcHRpb25zLnB1YmxpY0tleS0+dGltZW91dDsKKyAgICAvLyBTdGVwIDUt
Ny4KKyAgICBhdXRvIG9wZXJhdGlvbiA9IFtvcHRpb25zID0gV1RGTW92ZShvcHRpb25zLnB1Ymxp
Y0tleS52YWx1ZSgpKV0gKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGJvb2wgaXNTYW1l
T3JpZ2luV2l0aEl0c0FuY2VzdG9ycykgewogICAgICAgICAvLyBTaG9ydGN1dCBhcyB3ZWxsLgot
ICAgICAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVudGlhbDo6Y3JlYXRlKG9wdGlvbnMsIGlzU2Ft
ZU9yaWdpbldpdGhJdHNBbmNlc3RvcnMpOworICAgICAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVu
dGlhbDo6Y3JlYXRlKG9yaWdpbiwgb3B0aW9ucywgaXNTYW1lT3JpZ2luV2l0aEl0c0FuY2VzdG9y
cyk7CiAgICAgfTsKLSAgICBkaXNwYXRjaFRhc2soV1RGTW92ZShvcGVyYXRpb24pLCBXVEZNb3Zl
KHByb21pc2UpKTsKKyAgICBkaXNwYXRjaFRhc2soV1RGTW92ZShvcGVyYXRpb24pLCBXVEZNb3Zl
KHByb21pc2UpLCBvcHRpb25zLnB1YmxpY0tleS0+dGltZW91dCk7CiB9CiAKLXZvaWQgQ3JlZGVu
dGlhbHNDb250YWluZXI6OnByZXZlbnRTaWxlbnRBY2Nlc3MoUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKQordm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6cHJldmVudFNpbGVudEFjY2Vz
cyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAgcHJvbWlzZS0+
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0Nv
bnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9D
cmVkZW50aWFsc0NvbnRhaW5lci5oCmluZGV4IDM5MzFiOGRkM2ExYzkzMjAzNGMyZDM3NWNjYTgx
NjdmZTI5YWY3YmMuLmM5ZDM3MTM0MDliNWZiZWM5ODUzYTA1ZTFhOTI3ZTRiNTYwNjJiMmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3Jl
ZGVudGlhbHNDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRp
YWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRl
ICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTUwLDE5ICs1MSw0MCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGlzQ3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmJiwg
UmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAKLSAgICB2b2lkIHByZXZlbnRTaWxlbnRBY2Nlc3Mo
UmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBwcmV2ZW50U2lsZW50QWNjZXNzKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIENyZWRlbnRpYWxz
Q29udGFpbmVyKFdlYWtQdHI8RG9jdW1lbnQ+JiYpOwogCiAgICAgYm9vbCBkb2VzSGF2ZVNhbWVP
cmlnaW5Bc0l0c0FuY2VzdG9ycygpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5
cGU+Ci0gICAgdm9pZCBkaXNwYXRjaFRhc2soT3BlcmF0aW9uVHlwZSYmLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmKTsKKyAgICB2b2lkIGRpc3BhdGNoVGFzayhPcGVyYXRpb25UeXBlJiYsIFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYsIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQgbG9uZz4gdGltZU91dElu
TXMgPSBzdGQ6Om51bGxvcHQpOwogCiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsK
LSAgICBIYXNoTWFwPERlZmVycmVkUHJvbWlzZSosIFJlZjxEZWZlcnJlZFByb21pc2U+PiBtX3Bl
bmRpbmdQcm9taXNlczsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3dvcmtRdWV1ZTsKICAgICBXZWFr
UHRyRmFjdG9yeTxDcmVkZW50aWFsc0NvbnRhaW5lcj4gbV93ZWFrUHRyRmFjdG9yeTsKKworICAg
IC8vIEJ1bmRsZSBwcm9taXNlIGFuZCB0aW1lciwgc3VjaCB0aGF0IHRoZSB0aW1lciBjYW4KKyAg
ICAvLyB0aW1lcyBvdXQgdGhlIGNvcnJlc3BvbmRpbmcgcHJvbXNpZS4KKyAgICBzdHJ1Y3QgUGVu
ZGluZ1Byb21pc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxQZW5kaW5nUHJvbWlzZT4geworICAgICAg
ICBzdGF0aWMgUmVmPFBlbmRpbmdQcm9taXNlPiBjcmVhdGUoUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlLCBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+JiYgdGltZXIpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBlbmRpbmdQcm9taXNlKFdURk1vdmUocHJv
bWlzZSksIFdURk1vdmUodGltZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIFJlZjxQ
ZW5kaW5nUHJvbWlzZT4gY3JlYXRlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVuZGluZ1Byb21pc2Uo
V1RGTW92ZShwcm9taXNlKSkpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBQ
ZW5kaW5nUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8VGlt
ZXI+JiYpOworICAgICAgICBQZW5kaW5nUHJvbWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsK
KworICAgIHB1YmxpYzoKKyAgICAgICAgUmVmPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZTsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiB0aW1lcjsKKyAgICB9OworICAgIEhhc2hNYXA8
RGVmZXJyZWRQcm9taXNlKiwgUmVmPFBlbmRpbmdQcm9taXNlPj4gbV9wZW5kaW5nUHJvbWlzZXM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Mjc4NzgzM2ZlZTQy
OWU5NmU2YTQ0ZDE5NzlmYjgxNmE2Nzk1OTA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yLmNwcApAQCAtMCwwICsxLDU4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0
b3IuaCIKKworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0F1dGhlbnRpY2F0b3ImIEF1dGhlbnRpY2F0b3I6OnNpbmdsZXRvbigpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF1dGhlbnRpY2F0b3I+IGF1dGhlbnRpY2F0b3I7Cisg
ICAgcmV0dXJuIGF1dGhlbnRpY2F0b3I7Cit9CisKK0V4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90
Pj4gQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBo
YXNoLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0eSYs
IGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkmIHVz
ZXIsIGNvbnN0IFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJh
bWV0ZXJzPiYsIGNvbnN0IFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4mKSBj
b25zdAoreworICAgIC8vIFRoZSBmb2xsb3dpbmdzIGlzIGp1c3QgYSBkdW1teSBpbXBsZW1lbnRh
aW9uIHRvIHN1cHBvcnQgaW5pdGlhbCBkZXZlbG9wbWVudC4KKyAgICAvLyBVc2VyIGNhbmNlbGxh
dGlvbiBpcyBlZmZlY2l2ZWx5IE5vdEFsbG93ZWRFcnJvci4KKyAgICBpZiAodXNlci5kaXNwbGF5
TmFtZSA9PSAiSm9obiIpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJy
b3IgfTsKKworICAgIC8vIEZpbGwgYWxsIHBhcnRzIGJlZm9yZSBDcmVkZW50aWFsSUQgd2l0aCAw
eDAwCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGF0dGVzdGF0aW9uT2JqZWN0KDQzLCAweDAwKTsKKyAg
ICAvLyBGaWxsIGxlbmd0aCBvZiBDcmVkZW50aWFsSUQ6IDEgQnl0ZQorICAgIGF0dGVzdGF0aW9u
T2JqZWN0LmFwcGVuZCgweDAwKTsKKyAgICBhdHRlc3RhdGlvbk9iamVjdC5hcHBlbmQoMHgwMSk7
CisgICAgLy8gRmlsbCBDcmVkZW50aWFsSUQ6IDI1NQorICAgIGF0dGVzdGF0aW9uT2JqZWN0LmFw
cGVuZCgweGZmKTsKKyAgICAvLyBBcHBlbmQgY2xpZW50RGF0YUpzb25IYXNoCisgICAgYXR0ZXN0
YXRpb25PYmplY3QuYXBwZW5kVmVjdG9yKGhhc2gpOworICAgIHJldHVybiBXVEZNb3ZlKGF0dGVz
dGF0aW9uT2JqZWN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3IuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2M1
YjM2MWUyNjFhZDk3ZmUzYjZmOWE5MTFjYWEzZTFiMzI4MjA5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yLmgKQEAgLTAsMCAr
MSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKKyNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgiCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBGSVhNRTogQ29uc2lkZXIgbW92aW5nIGFsbCBzdGF0
aWMgbWV0aG9kcyBmcm9tIFB1YmxpY0tleUNyZWRlbnRpYWwgdG8gaGVyZSBhbmQgbWFraW5nIHRo
aXMKKy8vIGFzIGFuIGF1dGhlbnRpY2F0b3IgbWFuYWdlciB0aGF0IGNvbnRyb2xzIGFsbCBhdXRo
ZW50aWNhdG9yIGFjdGl2aXRpZXMsIG1vc3RseSBsaWtlbHkgYXNueWMKKy8vIGZvciBhdHRlc3Rh
dGlvbnMuCitjbGFzcyBBdXRoZW50aWNhdG9yIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShB
dXRoZW50aWNhdG9yKTsKKyAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXV0aGVudGlj
YXRvcj47CitwdWJsaWM6CisgICAgc3RhdGljIEF1dGhlbnRpY2F0b3ImIHNpbmdsZXRvbigpOwor
CisgICAgLy8gT21pdCByZXF1aXJlUmVzaWRlbnRLZXksIHJlcXVpcmVVc2VyUHJlc2VuY2UsIGFu
ZCByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiBhcyB3ZSBhbHdheXMgcHJvdmlkZSByZXNpZGVudCBr
ZXlzIGFuZCByZXF1aXJlIHVzZXIgdmVyaWZpY2F0aW9uLgorICAgIEV4Y2VwdGlvbk9yPFZlY3Rv
cjx1aW50OF90Pj4gbWFrZUNyZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBj
b25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0eSYsIGNvbnN0
IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkmLCBjb25zdCBW
ZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4mLCBj
b25zdCBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+JiBleGNsdWRlQ3JlZGVu
dGlhbElkcykgY29uc3Q7CisKKyNpZiAhQ09NUElMRVIoTVNWQykKK3ByaXZhdGU6CisjZW5kaWYK
KyAgICBBdXRoZW50aWNhdG9yKCkgPSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwCmluZGV4IDU3MDRmMDFiYzBi
ZWRkMTBhMjMyYjM0N2Y0NDgzZTc2NDVmNTQ3YTguLmI0NWJkYmExOThkZWNiZWYxNTk1YjU2NTg3
MzFjNzhiMjJmMWQ0NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHAKQEAg
LTM2LDIxICszNiwxNyBAQCBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6OkF1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZShSZWZQdHI8QXJyYXlCdWZmZQogewogfQogCi1BdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6On5BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2Uo
KQotewotfQotCi1BcnJheUJ1ZmZlciogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjph
dXRoZW50aWNhdG9yRGF0YSgpCitBcnJheUJ1ZmZlciogQXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlOjphdXRoZW50aWNhdG9yRGF0YSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fYXV0aGVu
dGljYXRvckRhdGEuZ2V0KCk7CiB9CiAKLUFycmF5QnVmZmVyKiBBdXRoZW50aWNhdG9yQXNzZXJ0
aW9uUmVzcG9uc2U6OnNpZ25hdHVyZSgpCitBcnJheUJ1ZmZlciogQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlOjpzaWduYXR1cmUoKSBjb25zdAogewogICAgIHJldHVybiBtX3NpZ25hdHVy
ZS5nZXQoKTsKIH0KIAotQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25z
ZTo6dXNlckhhbmRsZSgpCitBcnJheUJ1ZmZlciogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3Bv
bnNlOjp1c2VySGFuZGxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV91c2VySGFuZGxlLmdldCgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmgKaW5kZXggOTdhYjY3OThhYmQzMDM4
M2FmZmRlNjM4MGMwNWFjNzhlMDc1N2UwZC4uNzgzYWNiYWY4ZDg0NWY5NDZiNTQ3MGVkNzA2YTlh
OTM2MjUzMGVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9B
dXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oCkBAIC0zMSwxNyAr
MzEsMjcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdXRoZW50aWNhdG9yQXNzZXJ0
aW9uUmVzcG9uc2UgOiBwdWJsaWMgQXV0aGVudGljYXRvclJlc3BvbnNlIHsKIHB1YmxpYzoKLSAg
ICBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UoUmVmUHRyPEFycmF5QnVmZmVyPiYmIGNs
aWVudERhdGFKU09OLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgYXV0aGVudGljYXRvckRhdGEsIFJl
ZlB0cjxBcnJheUJ1ZmZlcj4mJiBzaWduYXR1cmUsIFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiB1c2Vy
SGFuZGxlKTsKLSAgICB2aXJ0dWFsIH5BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UoKTsK
KyAgICBzdGF0aWMgUmVmPEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4gY3JlYXRlKFJl
ZlB0cjxBcnJheUJ1ZmZlcj4mJiBjbGllbnREYXRhSlNPTiwgUmVmUHRyPEFycmF5QnVmZmVyPiYm
IGF1dGhlbnRpY2F0b3JEYXRhLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgc2lnbmF0dXJlLCBSZWZQ
dHI8QXJyYXlCdWZmZXI+JiYgdXNlckhhbmRsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZShXVEZNb3ZlKGNsaWVudERh
dGFKU09OKSwgV1RGTW92ZShhdXRoZW50aWNhdG9yRGF0YSksIFdURk1vdmUoc2lnbmF0dXJlKSwg
V1RGTW92ZSh1c2VySGFuZGxlKSkpOworICAgIH0KKworICAgIHZpcnR1YWwgfkF1dGhlbnRpY2F0
b3JBc3NlcnRpb25SZXNwb25zZSgpID0gZGVmYXVsdDsKIAotICAgIEFycmF5QnVmZmVyKiBhdXRo
ZW50aWNhdG9yRGF0YSgpOwotICAgIEFycmF5QnVmZmVyKiBzaWduYXR1cmUoKTsKLSAgICBBcnJh
eUJ1ZmZlciogdXNlckhhbmRsZSgpOworICAgIEFycmF5QnVmZmVyKiBhdXRoZW50aWNhdG9yRGF0
YSgpIGNvbnN0OworICAgIEFycmF5QnVmZmVyKiBzaWduYXR1cmUoKSBjb25zdDsKKyAgICBBcnJh
eUJ1ZmZlciogdXNlckhhbmRsZSgpIGNvbnN0OwogCiBwcml2YXRlOgorICAgIEF1dGhlbnRpY2F0
b3JBc3NlcnRpb25SZXNwb25zZShSZWZQdHI8QXJyYXlCdWZmZXI+JiYgY2xpZW50RGF0YUpTT04s
IFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBhdXRoZW50aWNhdG9yRGF0YSwgUmVmUHRyPEFycmF5QnVm
ZmVyPiYmIHNpZ25hdHVyZSwgUmVmUHRyPEFycmF5QnVmZmVyPiYmIHVzZXJIYW5kbGUpOworCisg
ICAgVHlwZSB0eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gVHlwZTo6QXNzZXJ0aW9uOyB9CisK
ICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1fYXV0aGVudGljYXRvckRhdGE7CiAgICAgUmVmUHRy
PEFycmF5QnVmZmVyPiBtX3NpZ25hdHVyZTsKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1fdXNl
ckhhbmRsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19BVVRIRU5USUNBVE9SX1JFU1BPTlNFKEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZSwgQXV0aGVudGljYXRvclJlc3BvbnNlOjpUeXBlOjpBc3NlcnRpb24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlv
blJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGlj
YXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuY3BwCmluZGV4IDgxOTYwMzBmMmRkZTQ3OWViYjllOGNl
ODFhNmE3N2FkNTkwYzk1MDAuLjhiMTA4MmZmYTg0Nzk3Mzc5MTFlODk5OWNkYjQzNWNlYjY4MDM2
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGlj
YXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuY3BwCkBAIC0zNCwxMSAr
MzQsNyBAQCBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6QXV0aGVudGljYXRvckF0
dGVzdGF0aW9uUmVzcG9uc2UoUmVmUHRyPEFycmF5QgogewogfQogCi1BdXRoZW50aWNhdG9yQXR0
ZXN0YXRpb25SZXNwb25zZTo6fkF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKCkKLXsK
LX0KLQotQXJyYXlCdWZmZXIqIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjphdHRl
c3RhdGlvbk9iamVjdCgpCitBcnJheUJ1ZmZlciogQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVz
cG9uc2U6OmF0dGVzdGF0aW9uT2JqZWN0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9hdHRlc3Rh
dGlvbk9iamVjdC5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaApp
bmRleCBiYTliYmNkNTNiYTJjZTk3ZDg0MWJlNWVkNDRhMDUxZDUwY2I4YTRlLi5jMjQ0MDFkYWJh
OGU3YjA1ZGIyMTYzZTk0MmI5NTQzM2FhZGE5ZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0YXRp
b25SZXNwb25zZS5oCkBAIC0zMSwxMyArMzEsMjMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSA6IHB1YmxpYyBBdXRoZW50aWNh
dG9yUmVzcG9uc2UgewogcHVibGljOgotICAgIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3Bv
bnNlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBjbGllbnREYXRhSlNPTiwgUmVmUHRyPEFycmF5QnVm
ZmVyPiYmIGF0dGVzdGF0aW9uT2JqZWN0KTsKLSAgICB2aXJ0dWFsIH5BdXRoZW50aWNhdG9yQXR0
ZXN0YXRpb25SZXNwb25zZSgpOworICAgIHN0YXRpYyBSZWY8QXV0aGVudGljYXRvckF0dGVzdGF0
aW9uUmVzcG9uc2U+IGNyZWF0ZShSZWZQdHI8QXJyYXlCdWZmZXI+JiYgY2xpZW50RGF0YUpTT04s
IFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBhdHRlc3RhdGlvbk9iamVjdCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKFdU
Rk1vdmUoY2xpZW50RGF0YUpTT04pLCBXVEZNb3ZlKGF0dGVzdGF0aW9uT2JqZWN0KSkpOworICAg
IH0KKworICAgIHZpcnR1YWwgfkF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKCkgPSBk
ZWZhdWx0OwogCi0gICAgQXJyYXlCdWZmZXIqIGF0dGVzdGF0aW9uT2JqZWN0KCk7CisgICAgQXJy
YXlCdWZmZXIqIGF0dGVzdGF0aW9uT2JqZWN0KCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgQXV0
aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UoUmVmUHRyPEFycmF5QnVmZmVyPiYmIGNsaWVu
dERhdGFKU09OLCBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgYXR0ZXN0YXRpb25PYmplY3QpOworCisg
ICAgVHlwZSB0eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gVHlwZTo6QXR0ZXN0YXRpb247IH0K
KwogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbV9hdHRlc3RhdGlvbk9iamVjdDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BVVRIRU5USUNB
VE9SX1JFU1BPTlNFKEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLCBBdXRoZW50aWNh
dG9yUmVzcG9uc2U6OlR5cGU6OkF0dGVzdGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwCmluZGV4IGRk
YjE4YjM2NDFiM2EwMDI4NGNjMjAwMzUyZTNlZDVlYjNhYThlOWIuLjk1N2M2ZGVjODdlNDhkNTFj
ZjA3NjUyMWE0YmIyNDAyYjgwNWM0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5jcHAKQEAgLTMzLDExICsz
Myw3IEBAIEF1dGhlbnRpY2F0b3JSZXNwb25zZTo6QXV0aGVudGljYXRvclJlc3BvbnNlKFJlZlB0
cjxBcnJheUJ1ZmZlcj4mJiBjbGllbnREYXRhSlNPCiB7CiB9CiAKLUF1dGhlbnRpY2F0b3JSZXNw
b25zZTo6fkF1dGhlbnRpY2F0b3JSZXNwb25zZSgpCi17Ci19Ci0KLUFycmF5QnVmZmVyKiBBdXRo
ZW50aWNhdG9yUmVzcG9uc2U6OmNsaWVudERhdGFKU09OKCkKK0FycmF5QnVmZmVyKiBBdXRoZW50
aWNhdG9yUmVzcG9uc2U6OmNsaWVudERhdGFKU09OKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9j
bGllbnREYXRhSlNPTi5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oCmluZGV4IGEzYTE2YjU2ZjQ5N2Fi
YjM0MGRiYzI5MzJkYmI0Mzc0ZTk0NjJiODkuLmQ0MTczYjk5ODM4ZTQwYTFlMDM2MDIwODI0YmYx
ZThmYWFiOGUyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
QXV0aGVudGljYXRvclJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuaApAQCAtMjcsMTggKzI3LDMxIEBACiAKICNpbmNs
dWRlIDxydW50aW1lL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZD
b3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEF1dGhlbnRpY2F0b3JSZXNwb25zZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxBdXRoZW50aWNhdG9yUmVzcG9uc2U+IHsKIHB1YmxpYzoKKyAgICBlbnVtIGNsYXNz
IFR5cGUgeworICAgICAgICBBc3NlcnRpb24sCisgICAgICAgIEF0dGVzdGF0aW9uCisgICAgfTsK
KwogICAgIGV4cGxpY2l0IEF1dGhlbnRpY2F0b3JSZXNwb25zZShSZWZQdHI8QXJyYXlCdWZmZXI+
JiYpOwotICAgIHZpcnR1YWwgfkF1dGhlbnRpY2F0b3JSZXNwb25zZSgpOworICAgIHZpcnR1YWwg
fkF1dGhlbnRpY2F0b3JSZXNwb25zZSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgVHlwZSB0
eXBlKCkgY29uc3QgPSAwOwogCi0gICAgQXJyYXlCdWZmZXIqIGNsaWVudERhdGFKU09OKCk7Cisg
ICAgQXJyYXlCdWZmZXIqIGNsaWVudERhdGFKU09OKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAg
UmVmUHRyPEFycmF5QnVmZmVyPiBtX2NsaWVudERhdGFKU09OOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQVVUSEVOVElDQVRP
Ul9SRVNQT05TRShUb0NsYXNzTmFtZSwgVHlwZSkgXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19C
RUdJTihXZWJDb3JlOjpUb0NsYXNzTmFtZSkgXAorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25z
dCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2UmIHJlc3BvbnNlKSB7IHJldHVybiByZXNw
b25zZS50eXBlKCkgPT0gV2ViQ29yZTo6VHlwZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0VORCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhl
bnRpY2F0b3JSZXNwb25zZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1
dGhlbnRpY2F0b3JSZXNwb25zZS5pZGwKaW5kZXggZTVjNGRkY2M1ODRjNGI4MTFjMjVmMjg3NjAx
ZWY2OGViMTNiNmZiMS4uMWJmNDA5OWQxMmI0ZjYyNDlkOTViM2ZlYmFiNDgzOGY3N2M4M2U2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9y
UmVzcG9uc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRvclJlc3BvbnNlLmlkbApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKIFsKKyAgICBDdXN0
b21Ub0pTT2JqZWN0LAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViQXV0aGVudGljYXRpb24sCiAg
ICAgRXhwb3NlZD1XaW5kb3csCiAgICAgU2VjdXJlQ29udGV4dCwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwCmluZGV4
IDE3YWNiMmYxODUyNDBlOTkxMTlmMWFlMjMyMTJhZjIxMTg4ODk4YzEuLmU2ODNkY2FjNjUzNDJm
M2RlY2NhOTNlZTc3ZmU3YTA1ZDY3NzRhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNwcApAQCAtMjYsMTIgKzI2
LDc3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlh
bC5oIgogCisjaW5jbHVkZSAiQXV0aGVudGljYXRvci5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0
b3JSZXNwb25zZS5oIgorI2luY2x1ZGUgIkNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCIKICNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCisjaW5jbHVkZSA8cGFsL2NyeXB0by9DcnlwdG9EaWdlc3QuaD4KKyNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L0Jhc2U2NC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVB1YmxpY0tleUNyZWRl
bnRpYWw6OlB1YmxpY0tleUNyZWRlbnRpYWwoY29uc3QgU3RyaW5nJiBpZCkKLSAgICA6IEJhc2lj
Q3JlZGVudGlhbChpZCwgVHlwZTo6UHVibGljS2V5LCBEaXNjb3Zlcnk6OlJlbW90ZSkKK25hbWVz
cGFjZSBQdWJsaWNLZXlDcmVkZW50aWFsSW50ZXJuYWwgeworCisvLyBUaGUgbGF5b3V0IG9mIGF0
dGVzdGF0aW9uIG9iamVjdDogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNhdHRlc3Rh
dGlvbi1vYmplY3QgYXMgb2YgNSBEZWNlbWJlciAyMDE3LgorLy8gSGVyZSBpcyBhIHN1bW1hcnkg
YmVmb3JlIENyZWRlbnRpYWxJRCBpbiB0aGUgbGF5b3V0LiBBbGwgbGVuZ3RocyBhcmUgZml4ZWQu
CisvLyBSUCBJRCBoYXNoICgzMikgfHwgRkxBR1MgKDEpIHx8IENPVU5URVIgKDQpIHx8IEFBR1VJ
RCAoMTYpIHx8IEwgKDIpIHx8IENSRURFTlRJQUwgSUQgKD8pIHx8IC4uLgorc3RhdGljIGNvbnN0
ZXhwciBzaXplX3QgQ3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ID0gNDM7CisKK2VudW0gY2xhc3Mg
Q2xpZW50RGF0YVR5cGUgeworICAgIENyZWF0ZSwKKyAgICBHZXQKK307CisKKy8vIEZJWE1FOiBB
ZGQgdG9rZW4gYmluZGluZyBJRCBhbmQgZXh0ZW5zaW9ucy4KKy8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE5NDgKKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODE5NDkKK3N0YXRpYyBSZWY8QXJyYXlCdWZmZXI+IHByb2R1Y2VD
bGllbnREYXRhSnNvbihDbGllbnREYXRhVHlwZSB0eXBlLCBjb25zdCBCdWZmZXJTb3VyY2UmIGNo
YWxsZW5nZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikKK3sKKyAgICBhdXRvIG9iamVj
dCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2Fz
ZSBDbGllbnREYXRhVHlwZTo6Q3JlYXRlOgorICAgICAgICBvYmplY3QtPnNldFN0cmluZyhBU0NJ
SUxpdGVyYWwoInR5cGUiKSwgQVNDSUlMaXRlcmFsKCJ3ZWJhdXRobi5jcmVhdGUiKSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ2xpZW50RGF0YVR5cGU6OkdldDoKKyAgICAgICAgb2JqZWN0
LT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJ0eXBlIiksIEFTQ0lJTGl0ZXJhbCgid2ViYXV0aG4u
Z2V0IikpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgb2JqZWN0LT5zZXRTdHJpbmcoQVND
SUlMaXRlcmFsKCJjaGFsbGVuZ2UiKSwgV1RGOjpiYXNlNjRVUkxFbmNvZGUoY2hhbGxlbmdlLmRh
dGEoKSwgY2hhbGxlbmdlLmxlbmd0aCgpKSk7CisgICAgb2JqZWN0LT5zZXRTdHJpbmcoQVNDSUlM
aXRlcmFsKCJvcmlnaW4iKSwgb3JpZ2luLnRvUmF3U3RyaW5nKCkpOworICAgIC8vIEZJWE1FOiBU
aGlzIG1pZ2h0IGJlIHBsYXRmb3JtIGRlcGVuZGVudC4KKyAgICBvYmplY3QtPnNldFN0cmluZyhB
U0NJSUxpdGVyYWwoImhhc2hBbGdvcml0aG0iKSwgQVNDSUlMaXRlcmFsKCJTSEEtMjU2IikpOwor
CisgICAgYXV0byB1dGY4SlNPTlN0cmluZyA9IG9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgp
OworICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHV0ZjhKU09OU3RyaW5nLmRhdGEoKSwg
dXRmOEpTT05TdHJpbmcubGVuZ3RoKCkpOworfQorCitzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IHBy
b2R1Y2VDbGllbnREYXRhSnNvbkhhc2goY29uc3QgUmVmPEFycmF5QnVmZmVyPiYgY2xpZW50RGF0
YUpzb24pCit7CisgICAgYXV0byBjcnlwdG8gPSBQQUw6OkNyeXB0b0RpZ2VzdDo6Y3JlYXRlKFBB
TDo6Q3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yNTYpOworICAgIGNyeXB0by0+YWRkQnl0
ZXMoY2xpZW50RGF0YUpzb24tPmRhdGEoKSwgY2xpZW50RGF0YUpzb24tPmJ5dGVMZW5ndGgoKSk7
CisgICAgcmV0dXJuIGNyeXB0by0+Y29tcHV0ZUhhc2goKTsKK30KKworc3RhdGljIFJlZlB0cjxB
cnJheUJ1ZmZlcj4gZ2V0SWRGcm9tQXR0ZXN0YXRpb25PYmplY3QoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBhdHRlc3RhdGlvbk9iamVjdCkKK3sKKyAgICAvLyBUaGUgYnl0ZSBsZW5ndGggb2YgTCBp
cyAyLgorICAgIGlmIChhdHRlc3RhdGlvbk9iamVjdC5zaXplKCkgPCBDcmVkZW50aWFsSWRMZW5n
dGhPZmZzZXQgKyAyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBzaXplX3QgbGVuZ3Ro
ID0gKGF0dGVzdGF0aW9uT2JqZWN0W0NyZWRlbnRpYWxJZExlbmd0aE9mZnNldF0gPDwgOCkgKyBh
dHRlc3RhdGlvbk9iamVjdFtDcmVkZW50aWFsSWRMZW5ndGhPZmZzZXQgKyAxXTsKKyAgICBpZiAo
YXR0ZXN0YXRpb25PYmplY3Quc2l6ZSgpIDwgQ3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ICsgMiAr
IGxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIEFycmF5QnVmZmVy
OjpjcmVhdGUoYXR0ZXN0YXRpb25PYmplY3QuZGF0YSgpICsgQ3JlZGVudGlhbElkTGVuZ3RoT2Zm
c2V0ICsgMiwgbGVuZ3RoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgUHVibGljS2V5Q3JlZGVudGlh
bEludGVybmFsCisKK1B1YmxpY0tleUNyZWRlbnRpYWw6OlB1YmxpY0tleUNyZWRlbnRpYWwoUmVm
UHRyPEFycmF5QnVmZmVyPiYmIGlkLCBSZWZQdHI8QXV0aGVudGljYXRvclJlc3BvbnNlPiYmIHJl
c3BvbnNlKQorICAgIDogQmFzaWNDcmVkZW50aWFsKFdURjo6YmFzZTY0VVJMRW5jb2RlKGlkLT5k
YXRhKCksIGlkLT5ieXRlTGVuZ3RoKCkpLCBUeXBlOjpQdWJsaWNLZXksIERpc2NvdmVyeTo6UmVt
b3RlKQorICAgICwgbV9yYXdJZChXVEZNb3ZlKGlkKSkKKyAgICAsIG1fcmVzcG9uc2UoV1RGTW92
ZShyZXNwb25zZSkpCiB7CiB9CiAKQEAgLTQwLDcgKzEwNSw3IEBAIFZlY3RvcjxSZWY8QmFzaWND
cmVkZW50aWFsPj4gUHVibGljS2V5Q3JlZGVudGlhbDo6Y29sbGVjdEZyb21DcmVkZW50aWFsU3Rv
cmUoQ3JlCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotRXhjZXB0aW9uT3I8UmVmUHRyPEJhc2ljQ3Jl
ZGVudGlhbD4+IFB1YmxpY0tleUNyZWRlbnRpYWw6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNl
KGNvbnN0IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIGJvb2wpCitFeGNlcHRpb25PcjxSZWZQ
dHI8QmFzaWNDcmVkZW50aWFsPj4gUHVibGljS2V5Q3JlZGVudGlhbDo6ZGlzY292ZXJGcm9tRXh0
ZXJuYWxTb3VyY2UoY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnMmLCBib29sKQogewogICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciB9OwogfQpAQCAtNTAsMjIgKzExNSw2NiBAQCBSZWZQdHI8QmFzaWNDcmVkZW50aWFsPiBQ
dWJsaWNLZXlDcmVkZW50aWFsOjpzdG9yZShSZWZQdHI8QmFzaWNDcmVkZW50aWFsPiYmLCBibwog
ICAgIHJldHVybiBudWxscHRyOwogfQogCi1FeGNlcHRpb25PcjxSZWZQdHI8QmFzaWNDcmVkZW50
aWFsPj4gUHVibGljS2V5Q3JlZGVudGlhbDo6Y3JlYXRlKGNvbnN0IENyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMmLCBib29sKQorRXhjZXB0aW9uT3I8UmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4+IFB1
YmxpY0tleUNyZWRlbnRpYWw6OmNyZWF0ZShjb25zdCBTZWN1cml0eU9yaWdpbiYgY2FsbGVyT3Jp
Z2luLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiBvcHRpb25zLCBi
b29sIHNhbWVPcmlnaW5XaXRoQW5jZXN0b3JzKQogewotICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciB9OworICAgIHVzaW5nIG5hbWVzcGFjZSBQdWJsaWNLZXlDcmVkZW50
aWFsSW50ZXJuYWw7CisKKyAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVudHMgaHR0cHM6Ly93
d3cudzMub3JnL1RSL3dlYmF1dGhuLyNjcmVhdGVDcmVkZW50aWFsIGFzIG9mIDUgRGVjZW1iZXIg
MjAxNy4KKyAgICAvLyBGSVhNRTogRXh0ZW5zaW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIFNr
aXAgU3RlcCAxMS0xMi4KKyAgICAvLyBTdGVwIDEsIDMsIDQsIDE3IGFyZSBoYW5kbGVkIGJ5IHRo
ZSBjYWxsZXIsIGluY2x1ZGluZyBvcHRpb25zIHNhbml0aXppbmcsIHRpbWVyIGFuZCBhYm9ydCBz
aWduYWwuCisgICAgLy8gU3RlcCAyLgorICAgIGlmICghc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMp
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfTsKKworICAgIC8v
IFN0ZXAgNS03LgorICAgIC8vIEZJWE1FOiBXZSBsYWNrIGZ1bmRhbWVudGFsIHN1cHBvcnQgZnJv
bSBTZWN1cml0eU9yaWdpbiB0byBkZXRlcm1pbmUgaWYgYSBob3N0IGlzIGEgdmFsaWQgZG9tYWlu
IG9yIG5vdC4KKyAgICAvLyBTdGVwIDYgaXMgdGhlcmVmb3JlIHNraXBwZWQuIEFsc28sIHdlIGxh
Y2sgdGhlIHN1cHBvcnQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBkb21haW4gaXMgYSByZWdpc3Ry
YWJsZQorICAgIC8vIGRvbWFpbiBzdWZmaXggb2YgYW5vdGhlciBkb21haW4uIEhlbmNlIHJlc3Ry
aWN0IHRoZSBjb21wYXJpc29uIHRvIGVxdWFsIGluIFN0ZXAgNy4KKyAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxOTUwCisgICAgaWYgKCFvcHRpb25zLnJw
LmlkLmlzRW1wdHkoKSAmJiAhKGNhbGxlck9yaWdpbi5ob3N0KCkgPT0gb3B0aW9ucy5ycC5pZCkp
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yIH07CisgICAgaWYgKG9w
dGlvbnMucnAuaWQuaXNFbXB0eSgpKQorICAgICAgICBvcHRpb25zLnJwLmlkID0gY2FsbGVyT3Jp
Z2luLmhvc3QoKTsKKworICAgIC8vIFN0ZXAgOC0xMC4KKyAgICAvLyBNb3N0IG9mIHRoZSBqb2Jz
IGFyZSBkb25lIGJ5IGJpbmRpbmdzLiBIb3dldmVyLCB3ZSBjYW4ndCBrbm93IGlmIHRoZSBKU1Zh
bHVlIG9mIG9wdGlvbnMucHViS2V5Q3JlZFBhcmFtcworICAgIC8vIGlzIGVtcHR5IG9yIG5vdC4g
UmV0dXJuIE5vdFN1cHBvcnRlZEVycm9yIGFzIGxvbmcgYXMgaXQgaXMgZW1wdHkuCisgICAgaWYg
KG9wdGlvbnMucHViS2V5Q3JlZFBhcmFtcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworCisgICAgLy8gU3RlcCAxMy0xNS4KKyAgICBh
dXRvIGNsaWVudERhdGFKc29uID0gcHJvZHVjZUNsaWVudERhdGFKc29uKENsaWVudERhdGFUeXBl
OjpDcmVhdGUsIG9wdGlvbnMuY2hhbGxlbmdlLCBjYWxsZXJPcmlnaW4pOworICAgIGF1dG8gY2xp
ZW50RGF0YUpzb25IYXNoID0gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChjbGllbnREYXRhSnNv
bik7CisKKyAgICAvLyBTdGVwIDE4LTIxLgorICAgIC8vIE9ubHkgcGxhdGZvcm0gYXR0YWNobWVu
dHMgd2lsbCBiZSBzdXBwb3J0ZWQgYXQgdGhpcyBzdGFnZS4gQXNzdW1pbmcgb25lIGF1dGhlbnRp
Y2F0b3IgcGVyIGRldmljZS4KKyAgICAvLyBBbHNvLCByZXNpZGVudCBrZXlzLCB1c2VyIHZlcmlm
aWNhdGlvbnMgYW5kIGRpcmVjdCBhdHRlc3RhdGlvbiBhcmUgZW5mb3JjZWQgYXQgdGhpcyB0YWdl
LgorICAgIC8vIEZvciBiZXR0ZXIgcGVyZm9ybWFuY2UsIG5vIGZpbHRlcmluZyBpcyBkb25lIGhl
cmUgcmVnYXJkaW5nIHRvIG9wdGlvbnMuZXhjbHVkZUNyZWRlbnRpYWxzLgorICAgIC8vIFdoYXQn
cyBtb3JlLCB1c2VyIGNhbmNlbGxhdGlvbnMgZWZmZWN0aXZlbHkgbWVhbnMgTm90QWxsb3dlZEVy
cm9yLiBUaGVyZWZvcmUsIHRoZSBiZWxvdyBjYWxsCisgICAgLy8gd2lsbCBvbmx5IHJldHVybnMg
ZWl0aGVyIGFuIGV4Y2VwdGlvbiBvciBhIFB1YmxpY0tleUNyZWRlbnRpYWwgcmVmLgorICAgIC8v
IEZJWE1FOiBUaGUgZm9sbG93aW5nIG9wZXJhdGlvbiBtaWdodCBuZWVkIHRvIHBlcmZvcm0gYXN5
bmMuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTk0
NgorICAgIGF1dG8gcmVzdWx0ID0gQXV0aGVudGljYXRvcjo6c2luZ2xldG9uKCkubWFrZUNyZWRl
bnRpYWwoY2xpZW50RGF0YUpzb25IYXNoLCBvcHRpb25zLnJwLCBvcHRpb25zLnVzZXIsIG9wdGlv
bnMucHViS2V5Q3JlZFBhcmFtcywgb3B0aW9ucy5leGNsdWRlQ3JlZGVudGlhbHMpOworICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpOworCisgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IHJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKTsKKyAgICAvLyBGSVhNRTogR290IHNvbWUgY3JhenkgY29tcGlsZSBlcnJv
ciB3aGVuIEkgd2FzIHRyeWluZyB0byByZXR1cm4gUkhTIGRpcmVjdGx5LgorICAgIFJlZlB0cjxC
YXNpY0NyZWRlbnRpYWw+IGNyZWRlbnRpYWwgPSBQdWJsaWNLZXlDcmVkZW50aWFsOjpjcmVhdGUo
Z2V0SWRGcm9tQXR0ZXN0YXRpb25PYmplY3QoYXR0ZXN0YXRpb25PYmplY3QpLCBBdXRoZW50aWNh
dG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKFdURk1vdmUoY2xpZW50RGF0YUpzb24pLCBB
cnJheUJ1ZmZlcjo6Y3JlYXRlKGF0dGVzdGF0aW9uT2JqZWN0LmRhdGEoKSwgYXR0ZXN0YXRpb25P
YmplY3Quc2l6ZSgpKSkpOworICAgIHJldHVybiBXVEZNb3ZlKGNyZWRlbnRpYWwpOwogfQogCi1B
cnJheUJ1ZmZlciogUHVibGljS2V5Q3JlZGVudGlhbDo6cmF3SWQoKQorQXJyYXlCdWZmZXIqIFB1
YmxpY0tleUNyZWRlbnRpYWw6OnJhd0lkKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9yYXdJZC5n
ZXQoKTsKIH0KIAotQXV0aGVudGljYXRvclJlc3BvbnNlKiBQdWJsaWNLZXlDcmVkZW50aWFsOjpy
ZXNwb25zZSgpCitBdXRoZW50aWNhdG9yUmVzcG9uc2UqIFB1YmxpY0tleUNyZWRlbnRpYWw6OnJl
c3BvbnNlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9yZXNwb25zZS5nZXQoKTsKIH0KIAotRXhj
ZXB0aW9uT3I8Ym9vbD4gUHVibGljS2V5Q3JlZGVudGlhbDo6Z2V0Q2xpZW50RXh0ZW5zaW9uUmVz
dWx0cygpCitFeGNlcHRpb25Pcjxib29sPiBQdWJsaWNLZXlDcmVkZW50aWFsOjpnZXRDbGllbnRF
eHRlbnNpb25SZXN1bHRzKCkgY29uc3QKIHsKICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3Vw
cG9ydGVkRXJyb3IgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmgKaW5kZXggM2M5NjZiYzk4MDQ1M2FiNTViYjkyNjll
OWIyZWYyNTY4M2M3YWE0Mi4uNWI4NjZiOTYyOTQ5MTM4NDJjODYzZWYxZDg0YzFiOTE4NGUzYWFh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlD
cmVkZW50aWFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsLmgKQEAgLTM0LDM0ICszNCwzOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEF1dGhlbnRpY2F0b3JSZXNwb25zZTsKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKK2Ns
YXNzIFNlY3VyaXR5T3JpZ2luOwogCi1zdHJ1Y3QgQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczsK
K3N0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOwogc3RydWN0IENyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9uczsKIAogY2xhc3MgUHVibGljS2V5Q3JlZGVudGlhbCBmaW5hbCA6
IHB1YmxpYyBCYXNpY0NyZWRlbnRpYWwgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UHVibGlj
S2V5Q3JlZGVudGlhbD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgaWQpCisgICAgc3RhdGljIFJlZjxQ
dWJsaWNLZXlDcmVkZW50aWFsPiBjcmVhdGUoUmVmUHRyPEFycmF5QnVmZmVyPiYmIGlkLCBSZWZQ
dHI8QXV0aGVudGljYXRvclJlc3BvbnNlPiYmIHJlc3BvbnNlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUHVibGljS2V5Q3JlZGVudGlhbChpZCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQdWJsaWNLZXlDcmVkZW50aWFsKFdURk1vdmUoaWQpLCBXVEZNb3Zl
KHJlc3BvbnNlKSkpOwogICAgIH0KIAogICAgIHN0YXRpYyBWZWN0b3I8UmVmPEJhc2ljQ3JlZGVu
dGlhbD4+IGNvbGxlY3RGcm9tQ3JlZGVudGlhbFN0b3JlKENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cyYmLCBib29sKTsKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmUHRyPEJhc2ljQ3JlZGVudGlh
bD4+IGRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IENyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucyYsIGJvb2wpOworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWZQdHI8QmFzaWNDcmVkZW50
aWFsPj4gZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBj
b25zdCBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBib29sIHNhbWVPcmlnaW5XaXRoQW5jZXN0
b3JzKTsKICAgICBzdGF0aWMgUmVmUHRyPEJhc2ljQ3JlZGVudGlhbD4gc3RvcmUoUmVmUHRyPEJh
c2ljQ3JlZGVudGlhbD4mJiwgYm9vbCk7Ci0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZlB0cjxC
YXNpY0NyZWRlbnRpYWw+PiBjcmVhdGUoY29uc3QgQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYs
IGJvb2wpOworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWZQdHI8QmFzaWNDcmVkZW50aWFsPj4g
Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucyYsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMpOwogCi0gICAgQXJy
YXlCdWZmZXIqIHJhd0lkKCk7Ci0gICAgQXV0aGVudGljYXRvclJlc3BvbnNlKiByZXNwb25zZSgp
OworICAgIEFycmF5QnVmZmVyKiByYXdJZCgpIGNvbnN0OworICAgIEF1dGhlbnRpY2F0b3JSZXNw
b25zZSogcmVzcG9uc2UoKSBjb25zdDsKICAgICAvLyBOb3Qgc3VwcG9ydCB5ZXQuIEFsd2F5cyB0
aHJvd3MuCi0gICAgRXhjZXB0aW9uT3I8Ym9vbD4gZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygp
OworICAgIEV4Y2VwdGlvbk9yPGJvb2w+IGdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSBjb25z
dDsKIAogICAgIHN0YXRpYyB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
ckF2YWlsYWJsZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIAogcHJpdmF0ZToKLSAgICBQdWJs
aWNLZXlDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYpOworICAgIFB1YmxpY0tleUNyZWRlbnRpYWwo
UmVmUHRyPEFycmF5QnVmZmVyPiYmIGlkLCBSZWZQdHI8QXV0aGVudGljYXRvclJlc3BvbnNlPiYm
KTsKKworICAgIFR5cGUgY3JlZGVudGlhbFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBUeXBl
OjpQdWJsaWNLZXk7IH0KIAogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbV9yYXdJZDsKICAgICBS
ZWZQdHI8QXV0aGVudGljYXRvclJlc3BvbnNlPiBtX3Jlc3BvbnNlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JBU0lDX0NSRURFTlRJQUwo
UHVibGljS2V5Q3JlZGVudGlhbCwgQmFzaWNDcmVkZW50aWFsOjpUeXBlOjpQdWJsaWNLZXkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWwuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsLmlkbAppbmRleCA0OGVmOWZmZmNjM2EyM2Y4ZjQ1NTU4YmU3ZmQ4ZWVhODdlMDJjZmQx
Li42Yjk5NmI2MzJkMmE1YjM3ZTJlY2Y4MDUxZDkyMmI5YWVlOGQ1YjYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5p
ZGwKQEAgLTI5LDcgKzI5LDcgQEAgdHlwZWRlZiBib29sZWFuIEF1dGhlbnRpY2F0aW9uRXh0ZW5z
aW9uczsKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkF1dGhlbnRpY2F0aW9uLAogICAgIEV4cG9z
ZWQ9V2luZG93LAogICAgIFNlY3VyZUNvbnRleHQsCi1dIGludGVyZmFjZSBQdWJsaWNLZXlDcmVk
ZW50aWFsIHsKK10gaW50ZXJmYWNlIFB1YmxpY0tleUNyZWRlbnRpYWwgOiBCYXNpY0NyZWRlbnRp
YWwgewogICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgQXJyYXlCdWZmZXIgcmF3
SWQ7CiAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdXRoZW50aWNhdG9yUmVz
cG9uc2UgcmVzcG9uc2U7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBBdXRoZW50aWNhdGlvbkV4
dGVuc2lvbnMgZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnMuaAppbmRleCA4YmFmZTMwNWNkZjRlNjQ3YjI3OTFjM2E3MDVhNDRi
MWNmZmQyNDhjLi5mY2YxMDFkNWY4MDMyZTdhNjBiNjljYjVjYWE5ZjA5NDM0MjJkN2YxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaApAQCAtMzksNyArMzksNyBAQCBz
dHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAgICAgfTsKIAogICAg
IHN0cnVjdCBScEVudGl0eSA6IHB1YmxpYyBFbnRpdHkgewotICAgICAgICBTdHJpbmcgaWQ7Cisg
ICAgICAgIG11dGFibGUgU3RyaW5nIGlkOwogICAgIH07CiAKICAgICBzdHJ1Y3QgVXNlckVudGl0
eSA6IHB1YmxpYyBFbnRpdHkgewpAQCAtNDksNyArNDksNyBAQCBzdHJ1Y3QgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAKICAgICBzdHJ1Y3QgUGFyYW1ldGVycyB7CiAgICAg
ICAgIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlIHR5cGU7Ci0gICAgICAgIGxvbmcgYWxnIHsgMCB9
OworICAgICAgICBsb25nIGFsZzsKICAgICB9OwogCiAgICAgUnBFbnRpdHkgcnA7CkBAIC01OCw3
ICs1OCw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsKICAg
ICBCdWZmZXJTb3VyY2UgY2hhbGxlbmdlOwogICAgIFZlY3RvcjxQYXJhbWV0ZXJzPiBwdWJLZXlD
cmVkUGFyYW1zOwogCi0gICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0IHsgMCB9OworICAgIHN0ZDo6
b3B0aW9uYWw8dW5zaWduZWQgbG9uZz4gdGltZW91dDsKICAgICBWZWN0b3I8UHVibGljS2V5Q3Jl
ZGVudGlhbERlc2NyaXB0b3I+IGV4Y2x1ZGVDcmVkZW50aWFsczsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2Ny
aXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbERlc2NyaXB0b3IuaAppbmRleCA3M2U0NDkyMzcyNGYzMTI1YjFlZGFkZTM2ODczODdlZGIx
YWU4MTg1Li44MjlkNjAxMjUxMWZiNGRlOGU3M2IxNjg0YzY4YzkxMzliODE2MTliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxE
ZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oCkBAIC0zMSw4ICszMSwxNSBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IgeworICAgIGVu
dW0gY2xhc3MgQXV0aGVudGljYXRvclRyYW5zcG9ydCB7CisgICAgICAgIFVzYiwKKyAgICAgICAg
TmZjLAorICAgICAgICBCbGUKKyAgICB9OworCiAgICAgUHVibGljS2V5Q3JlZGVudGlhbFR5cGUg
dHlwZTsKICAgICBCdWZmZXJTb3VyY2UgaWQ7CisgICAgVmVjdG9yPEF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQ+IHRyYW5zcG9ydHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxE
ZXNjcmlwdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsCmluZGV4IGU5M2Y4NjQ0YjE5ZTA1MWIwM2JkOTQ4ZTFm
YWQ4MmI3MGVmNGQ4ZWYuLjI1OGUyODljMTg0YTRiOGUzMmViMjE2NDYyN2ZhYzA0MmYyMDU4YjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3Jl
ZGVudGlhbERlc2NyaXB0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsCkBAIC0yMyw5ICsyMywxNCBAQAog
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKK2VudW0gQXV0aGVudGlj
YXRvclRyYW5zcG9ydCB7CisgICAgInVzYiIsCisgICAgIm5mYyIsCisgICAgImJsZSIKK307CisK
IGRpY3Rpb25hcnkgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IgewogICAgIHJlcXVpcmVk
IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlIHR5cGU7CiAgICAgcmVxdWlyZWQgQnVmZmVyU291cmNl
IGlkOwotICAgIC8vIFdlIG9ubHkgYWxsb3cgcGxhdGZvcm0gYXR0YWNobWVudCBhdCB0aGlzIHN0
YWdlLgotICAgIC8vIHNlcXVlbmNlPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ+IHRyYW5zcG9ydHM7
CisgICAgc2VxdWVuY2U8QXV0aGVudGljYXRvclRyYW5zcG9ydD4gdHJhbnNwb3J0czsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDljMmIwYTVmMTFmMTc0ZGE4MWQ0N2RjZTI2YjllM2MwYzU5MTcxMzUu
LjIyYzYzNmU2MjVkNzgxYjM0MTgyYjk1YjUxZjRiNmIxZDJkZDM3MmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC0yNDQsNiArMjQ0LDcgQEAgTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyRFNQS2VybmVs
LmNwcAogTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHAKIE1vZHVsZXMvd2ViYXVk
aW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKIAorTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yLmNwcAogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2Uu
Y3BwCiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmNw
cAogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwCkBAIC0zNDUsMTEg
KzM0NiwxMyBAQCBiaW5kaW5ncy9qcy9ET01HQ091dHB1dENvbnN0cmFpbnQuY3BwCiBiaW5kaW5n
cy9qcy9ET01XcmFwcGVyV29ybGQuY3BwCiBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCiBi
aW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorYmluZGluZ3MvanMvSlNBdXRoZW50
aWNhdG9yUmVzcG9uc2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0FuaW1hdGlvbkVmZmVjdEN1
c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTQW5pbWF0aW9uVGltZWxpbmVDdXN0b20uY3BwCiBiaW5k
aW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tDdXN0b20u
Y3BwCiBiaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcAorYmluZGluZ3MvanMv
SlNCYXNpY0NyZWRlbnRpYWxDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3Bw
CiBiaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0NTU1J1bGVM
aXN0Q3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDIxYjlkMTYxMTc4ZGQwOGM5ZmRlNzhhZGMzZDdkMmQzN2RkMmQw
MDUuLmYzNTAxYzMzOTZhY2Y1YmEyYzllN2UyZDVhM2RkM2Y0NzVhOTU2N2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2NjAs
NiArMTY2MCw3IEBACiAJCTU3MzAzQzIyMjAwOUFGMDMwMDM1NTk2NSAvKiBKU0F1dGhlbnRpY2F0
b3JBdHRlc3RhdGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzMwM0MyMTIwMDlBRUY2MDAzNTU5NjUgLyogSlNBdXRoZW50aWNhdG9y
QXR0ZXN0YXRpb25SZXNwb25zZS5oICovOyB9OwogCQk1NzMwM0MyQzIwMDlCNEE4MDAzNTU5NjUg
LyogQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0MyNzIwMDlCMkZDMDAzNTU5NjUgLyogQXV0
aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggKi87IH07CiAJCTU3MzAzQzJGMjAwOUI3RTEw
MDM1NTk2NSAvKiBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNDMkQyMDA5QjdEOTAwMzU1
OTY1IC8qIEpTQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggKi87IH07CisJCTU3MzAz
QzQ2MjAxMDVEMkYwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0M0MzIwMTA1QjNEMDAzNTU5NjUgLyog
QXV0aGVudGljYXRvci5oICovOyB9OwogCQk1NzM0ODkzOTFEQUM2QjZFMDBEQzA2NjcgLyogQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTczNDg5MzgxREFDNkI2RDAwREMwNjY3IC8qIENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJNTczOUUxMkYxREFDN0Y3ODAwRTE0MzgzIC8qIEpTQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTczOUUxMkUxREFDN0Y3ODAwRTE0MzgzIC8qIEpTQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycy5oICovOyB9OwogCQk1NzUwQTk3NTFFNjhEMDAwMDA3MDVDNEEgLyogQ3J5
cHRvS2V5RUMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3NTBBOTczMUU2OEQwMDAwMDcwNUM0QSAvKiBDcnlwdG9LZXlFQy5oICovOyB9OwpAQCAtODIy
Nyw2ICs4MjI4LDggQEAKIAkJNTczMDNDMjkyMDA5QjJGQzAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0
b3JBc3NlcnRpb25SZXNwb25zZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXV0aGVudGljYXRvckFzc2VydGlvblJlc3Bv
bnNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNDMkQyMDA5QjdEOTAw
MzU1OTY1IC8qIEpTQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQzJFMjAwOUI3REEwMDM1NTk2NSAv
KiBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MzAzQzQzMjAxMDVCM0QwMDM1NTk2NSAv
KiBBdXRoZW50aWNhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTczMDNDNDQyMDEwNUIzRDAwMzU1OTY1IC8qIEF1dGhl
bnRpY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzQ4OTM4MURBQzZCNkQwMERDMDY2NyAvKiBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTczOUUxMkUxREFDN0Y3ODAwRTE0MzgzIC8qIEpTQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczOUUxMzAxREFDN0ZE
MTAwRTE0MzgzIC8qIEpTQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODI0Myw2ICs4MjQ2LDggQEAKIAkJNTc1
MEE5ODUxRTZBMjE2ODAwNzA1QzRBIC8qIENyeXB0b0FsZ29yaXRobUVDREguaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtRUNESC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzU0NzE5OTFFQ0U1RDJBMDBERDYzQjIgLyogSlNSc2FQc3NQ
YXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSc2FQc3NQYXJhbXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc1NDcxOUExRUNFNUQyQTAwREQ2M0Iy
IC8qIEpTUnNhUHNzUGFyYW1zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTUnNhUHNzUGFyYW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc2
MDgyNEYyMDExOEQ4RDAwMTE2Njc4IC8qIEpTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTc2MDgyNTYyMDExQkUwMjAwMTE2Njc4IC8qIEpTQXV0aGVudGlj
YXRvclJlc3BvbnNlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXV0aGVudGljYXRv
clJlc3BvbnNlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc2ODE0
MjgxRTZGOThBRDAwRTc3NzU0IC8qIEVjZGhLZXlEZXJpdmVQYXJhbXMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVjZGhL
ZXlEZXJpdmVQYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY4MTQy
OTFFNkY5OUMxMDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFtcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1FY2RoS2V5
RGVyaXZlUGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NjgxNDM0MUU2
RkUzRTgwMEU3Nzc1NCAvKiBDcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUVDREhNYWMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgxNzEsNiArMTgxNzYsOCBAQAogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1NzMwM0JCMzIwMDZDNkVEMDAzNTU5NjUg
LyogY2JvciAqLywKKwkJCQk1NzMwM0M0NDIwMTA1QjNEMDAzNTU5NjUgLyogQXV0aGVudGljYXRv
ci5jcHAgKi8sCisJCQkJNTczMDNDNDMyMDEwNUIzRDAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3Iu
aCAqLywKIAkJCQk1NzMwM0MyODIwMDlCMkZDMDAzNTU5NjUgLyogQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlLmNwcCAqLywKIAkJCQk1NzMwM0MyNzIwMDlCMkZDMDAzNTU5NjUgLyogQXV0
aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggKi8sCiAJCQkJNTczMDNDMjkyMDA5QjJGQzAw
MzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5pZGwgKi8sCkBAIC0xOTIx
Niw2ICsxOTIyMyw4IEBACiAJCQkJQkMyRUQ2QkIwQzZCRDJGMDAwOTIwQkZGIC8qIEpTQXR0ckN1
c3RvbS5jcHAgKi8sCiAJCQkJQkU2REY3MEUxNzFDQTJEQTAwREQ1MkI4IC8qIEpTQXVkaW9UcmFj
a0N1c3RvbS5jcHAgKi8sCiAJCQkJQkU2REY3MTAxNzFDQTJEQTAwREQ1MkI4IC8qIEpTQXVkaW9U
cmFja0xpc3RDdXN0b20uY3BwICovLAorCQkJCTU3NjA4MjU2MjAxMUJFMDIwMDExNjY3OCAvKiBK
U0F1dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAgKi8sCisJCQkJNTc2MDgyNEYyMDExOEQ4
RDAwMTE2Njc4IC8qIEpTQmFzaWNDcmVkZW50aWFsQ3VzdG9tLmNwcCAqLywKIAkJCQk4OTMxREU1
QTE0QzQ0QzQ0MDAwREM5RDIgLyogSlNCbG9iQ3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFRDE0QjEw
NTE5NzE5MDAwOTlGQUIgLyogSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwICov
LAogCQkJCUJDNDZDMUVEMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0b20uY3BwICov
LApAQCAtMjY0OTgsNiArMjY1MDcsNyBAQAogCQkJCTkzNEY3MTNBMEQ1QTZGMTAwMDAxOEQ2OSAv
KiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjQ3
NDg0MTBBQTE2MUQwMEI3OTQ5MyAvKiBBdXRoZW50aWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTE0Qzc2NEMwQ0U5MjM0RTAwN0VGM0NEIC8qIEF1dGhlbnRpY2F0aW9uTWFjLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1NzMwM0M0NjIwMTA1RDJGMDAzNTU5NjUgLyogQXV0aGVudGlj
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNDMkMyMDA5QjRBODAwMzU1OTY1IC8qIEF1
dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDND
MUYyMDA5QUI0MjAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JEMjIwMDg3QTgzMDAzNTU5NjUgLyogQXV0aGVudGlj
YXRvclJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXV0aGVudGljYXRvclJlc3BvbnNlQ3VzdG9tLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hZmUwOTRlYTc3NzdlODU0NjZjNDJhOTRhODZhZDljZGU4YTg3MWFmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdXRoZW50aWNhdG9yUmVz
cG9uc2VDdXN0b20uY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSlNBdXRoZW50aWNhdG9yUmVzcG9uc2UuaCIKKworI2luY2x1
ZGUgIkpTQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIEpTQzsK
KworSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJiByZXNwb25z
ZSkKK3sKKyAgICBpZiAoaXM8QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+KHJlc3Bv
bnNlKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8QXV0aGVudGljYXRvckF0dGVzdGF0
aW9uUmVzcG9uc2U+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShyZXNwb25zZSkpOworICAgIHJldHVy
biBjcmVhdGVXcmFwcGVyPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4oZ2xvYmFsT2JqZWN0LCBXVEZN
b3ZlKHJlc3BvbnNlKSk7Cit9CisKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBBdXRoZW50aWNhdG9yUmVzcG9uc2UmIHJlc3Bv
bnNlKQoreworICAgIHJldHVybiB3cmFwKHN0YXRlLCBnbG9iYWxPYmplY3QsIHJlc3BvbnNlKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNCYXNpY0NyZWRlbnRpYWxDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNCYXNpY0NyZWRlbnRpYWxDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2YmRk
OGMyNGFlM2NiNzlhMjZkNDI0ZDgwNjM4YjRhMjMyZGMyY2YKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jhc2ljQ3JlZGVudGlhbEN1c3RvbS5jcHAKQEAg
LTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJKU0Jhc2ljQ3JlZGVudGlhbC5oIgorCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5j
bHVkZSAiSlNQdWJsaWNLZXlDcmVkZW50aWFsLmgiCisKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
dXNpbmcgbmFtZXNwYWNlIEpTQzsKKworSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPEJhc2ljQ3JlZGVu
dGlhbD4mJiBjcmVkZW50aWFsKQoreworICAgIGlmIChpczxQdWJsaWNLZXlDcmVkZW50aWFsPihj
cmVkZW50aWFsKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8UHVibGljS2V5Q3JlZGVu
dGlhbD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGNyZWRlbnRpYWwpKTsKKyAgICByZXR1cm4gY3Jl
YXRlV3JhcHBlcjxCYXNpY0NyZWRlbnRpYWw+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShjcmVkZW50
aWFsKSk7Cit9CisKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBCYXNpY0NyZWRlbnRpYWwmIGNyZWRlbnRpYWwpCit7CisgICAg
cmV0dXJuIHdyYXAoc3RhdGUsIGdsb2JhbE9iamVjdCwgY3JlZGVudGlhbCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IDZmODAzYzU5NWY1YzIxNDNhZThjYjU0MzgyYzljMWQz
Y2ExZDE2NWYuLjQ4YzUzZTJjZDJlZDJiNGZjMzNiNDUxYWRjY2YyMzZkMmExMTY5ZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTQXR0ckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAi
SlNBdWRpb1RyYWNrQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0F1ZGlvVHJhY2tMaXN0Q3VzdG9t
LmNwcCIKKyNpbmNsdWRlICJKU0Jhc2ljQ3JlZGVudGlhbEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAi
SlNCbG9iQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0NTU1J1bGVDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKaW5k
ZXggZDllMjUwYTE2OTNkNjNiYzEwM2QxNTlmZDc4NjRkYTQyNjdmMTFkYS4uMTBiODQ4ZjBkMDYz
YTIwZTAyMjI4NTI3ZTAwM2NhMTkzYjkzZGNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4dGVuZGFibGVNZXNzYWdlRXZlbnRDdXN0b20uY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Lmgi
CiAKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
U3RyaW5ncy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOWEwNWM4MDA1NTRk
YWYyOTk4OGNiODIwOGE5MTQ3NGJiNWEwMDRjLi44NjAyMjVmY2RmZmM0MmVkZjgwMzBkNzU5OTQ5
N2EzZjcxZGVkNzQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTgtMDEtMjIgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aE5dIEltcGxlbWVu
dCBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tDcmVhdGVdXSB3aXRoIGEgZHVtbXkgYXV0aGVudGlj
YXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgx
OTI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjQ1OTg5Mz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIFRlc3QgY2FzZXMgYXJlIGRpdmlkZWQgaW50
byB0d28gZGlmZmVyZW50IGZvbGRlcnMuIE9uZSBmb2xsb3dzIHdwdCBzdHlsZS4gVGhlIG90aGVy
IGNvbnRhaW5zIHRlc3RzCisgICAgICAgIHRoYXQgSSBkb24ndCBrbm93IGhvdyB0byB3cml0ZSB0
aGVtIGluIHdwdCBzdHlsZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyZWF0ZS13aXRoLWludmFsaWQtcGFyYW1ldGVycy5odHRwcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWNyZWF0ZS13aXRoLWludmFsaWQtcGFyYW1ldGVycy5odHRwcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2Ft
ZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMtMi5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRo
LWFuY2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0
b3JzLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViYXV0aG4vcmVz
b3VyY2VzL2xhc3QtbGF5ZXItZnJhbWUuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJhdXRobi9yZXNvdXJjZXMvc2Vjb25kLWxheWVyLWZyYW1lLmh0dHBzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanM6
IEFkZGVkLgorICAgICAgICBJdCB3aWxsIGJlIGdvb2QgdG8gY29udmVydCB0aGVtIGludG8gd3B0
IHN0eWxlLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL1dlYkF1dGhOLmlkbDogQWRkZWQu
CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUt
ZmFpbHVyZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Y3JlYXRlLXN1Y2Nlc3MuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MuaHR0cHMu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwu
anM6IEFkZGVkLgorCiAyMDE4LTAxLTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gdGVybWluYXRlIHNlcnZpY2Ugd29ya2Vy
cyB0aGF0IGFyZSB1bnJlc3BvbnNpdmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS13aXRoLWludmFsaWQtcGFy
YW1ldGVycy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1pbnZhbGlkLXBhcmFtZXRlcnMu
aHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZTFkZmJjZTg2N2UwYzA3NTUzZDM4ZDI0
Zjc2ODU3NjVhN2ZhOWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1pbnZhbGlkLXBhcmFt
ZXRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjQgQEAKK1Rlc3RzIHRoYXQgUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gdGhyb3dzIFR5cGVFcnJvciB3aGVuIGludmFs
aWQgb3B0aW9ucyBhcmUgcGFzc2VkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3Rl
ZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnMucnAgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgUHVi
bGljS2V5Q3JlZGVudGlhbFJwRW50aXR5LgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3Jl
YXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVt
YmVyIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMudXNlciBpcyByZXF1aXJlZCBh
bmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBQdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eS4K
K1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0
ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zLmNoYWxsZW5nZSBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5j
ZSBvZiAoQXJyYXlCdWZmZXJWaWV3IG9yIEFycmF5QnVmZmVyKS4KK1BBU1MgbmF2aWdhdG9yLmNy
ZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBU
eXBlRXJyb3I6IE1lbWJlciBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLnB1Yktl
eUNyZWRQYXJhbXMgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2Ygc2VxdWVu
Y2UuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJl
amVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlh
bFJwRW50aXR5Lm5hbWUgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRE9N
U3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25z
KSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNyZWRl
bnRpYWxVc2VyRW50aXR5Lm5hbWUgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ug
b2YgRE9NU3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRP
cHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tl
eUNyZWRlbnRpYWxVc2VyRW50aXR5LmlkIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3Rh
bmNlIG9mIChBcnJheUJ1ZmZlclZpZXcgb3IgQXJyYXlCdWZmZXIpLgorUEFTUyBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRo
IFR5cGVFcnJvcjogTWVtYmVyIFB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5LmRpc3BsYXlO
YW1lIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIERPTVN0cmluZy4KK1BB
U1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQg
cHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1l
dGVycy50eXBlIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFB1YmxpY0tl
eUNyZWRlbnRpYWxUeXBlLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFs
aWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1Ymxp
Y0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzLmFsZyBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiBp
bnN0YW5jZSBvZiBsb25nLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFs
aWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIFB1Ymxp
Y0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLnR5cGUgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuCitQQVNTIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlw
ZUVycm9yOiBNZW1iZXIgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaWQgaXMgcmVxdWly
ZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgKEFycmF5QnVmZmVyVmlldyBvciBBcnJheUJ1
ZmZlcikuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMp
IHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJv
bCB0byBhIHN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlk
T3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0
IGEgc3ltYm9sIHRvIGEgc3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRl
KGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogQ2Fubm90
IGNvbnZlcnQgYSBzeW1ib2wgdG8gYSBzdHJpbmcuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9y
OiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIHN0cmluZy4KK1BBU1MgbmF2aWdhdG9yLmNy
ZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUo
aW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSBy
ZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAg
d2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5j
cmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBU
eXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRp
b25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJv
bWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVy
cm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIHN0cmluZy4KK1BBU1MgbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0
aCBUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEgc3RyaW5nLgorUEFTUyBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9t
aXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxp
ZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3Rl
ZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNy
ZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUo
aW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSBy
ZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAg
d2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5j
cmVhdGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBU
eXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRp
b25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJv
bWlzZSAgd2l0aCBUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEgc3RyaW5n
LgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWpl
Y3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0
aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVh
dGUoaW52YWxpZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBl
IGVycm9yLgorUEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25z
KSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogQ2Fubm90IGNvbnZlcnQgYSBzeW1i
b2wgdG8gYSBudW1iZXIuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxp
ZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBDYW5ub3QgY29udmVy
dCBhIHN5bWJvbCB0byBhIG51bWJlci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0
ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMp
IHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNl
ICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6
IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEgc3RyaW5nLgorUEFTUyBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShp
bnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlvbnMpIHJl
amVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9taXNlICB3
aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNy
ZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxpZE9wdGlv
bnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3RlZCBwcm9t
aXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmNyZWF0ZShpbnZhbGlkT3B0aW9ucykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52YWxp
ZE9wdGlvbnMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGludmFsaWRPcHRpb25zKSByZWplY3Rl
ZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1p
bnZhbGlkLXBhcmFtZXRlcnMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS13aXRoLWludmFsaWQtcGFyYW1ldGVy
cy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmMjRkNzNiMzFjMGFmYzIyN2FkODIyYWQ3NGNlYTI0
ZDk5ZjdjMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtd2l0aC1pbnZhbGlkLXBhcmFtZXRlcnMu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDEyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBQdWJsaWNL
ZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB0aHJvd3MgVHlwZUVycm9yIHdoZW4gaW52YWxpZCBv
cHRpb25zIGFyZSBwYXNzZWQuIik7CisKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
IGNvbnN0IHJwID0geworICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgfTsKKyAgICBj
b25zdCB1c2VyID0geworICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICBp
ZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICBkaXNwbGF5TmFtZTogIkFw
cGxlc2VlZCIKKyAgICB9OworICAgIGNvbnN0IGNoYWxsZW5nZSA9IGFzY2lpVG9VaW50OEFycmF5
KCIxMjM0NTYiKTsKKyAgICBjb25zdCBwdWJLZXlDcmVkUGFyYW0gPSB7IHR5cGU6ICJwdWJsaWMt
a2V5IiwgYWxnOiAtNyB9OworICAgIGNvbnN0IGV4Y2x1ZGVDcmVkZW50aWFscyA9IHsgdHlwZTog
InB1YmxpYy1rZXkiLCBpZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpIH07CisKKyAgICBj
b25zdCBtaXNzaW5nQXR0cmlidXRlVmVjdG9yID0gWworICAgICAgICAvLyBtaXNzaW5nIHRvcCBs
ZXZlbCBhdHRyaWJ1dGUKKyAgICAgICAgW3VuZGVmaW5lZCwgdXNlciwgY2hhbGxlbmdlLCBbcHVi
S2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgdW5kZWZpbmVkLCBjaGFsbGVuZ2UsIFtwdWJL
ZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCB1bmRlZmluZWQsIFtwdWJLZXlDcmVk
UGFyYW1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIHVuZGVmaW5lZF0sCisgICAg
ICAgIC8vIG1pc3NpbmcgcnAgYXR0cmlidXRlCisgICAgICAgIFt7IG5hbWU6IHVuZGVmaW5lZCB9
LCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgLy8gbWlzc2lu
ZyB1c2VyIGF0dHJpYnV0ZQorICAgICAgICBbcnAsIHsgbmFtZTogdW5kZWZpbmVkLCBpZDogdXNl
ci5pZCwgZGlzcGxheU5hbWU6IHVzZXIuZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlD
cmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IHVuZGVmaW5l
ZCwgZGlzcGxheU5hbWU6IHVzZXIuZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVk
UGFyYW1dXSwKKyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IHVzZXIuaWQsIGRp
c3BsYXlOYW1lOiB1bmRlZmluZWR9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAg
ICAgICAgLy8gbWlzc2luZyBwdWJLZXlDcmVkUGFyYW1zIGF0dHJpYnV0ZQorICAgICAgICBbcnAs
IHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogdW5kZWZpbmVkLCBhbGc6IHB1YktleUNyZWRQYXJh
bS5hbGcgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogcHViS2V5
Q3JlZFBhcmFtLnR5cGUsIGFsZzogdW5kZWZpbmVkIH1dXSwKKyAgICAgICAgLy8gbWlzc2luZyBl
eGNsdWRlQ3JlZGVudGlhbHMgYXR0cmlidXRlCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdl
LCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiB1bmRlZmluZWQsIGlkOiBl
eGNsdWRlQ3JlZGVudGlhbHMuaWQgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwg
W3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogZXhjbHVkZUNyZWRlbnRpYWxz
LnR5cGUsIGlkOiB1bmRlZmluZWQgfV1dCisgICAgXTsKKworICAgIGNvbnN0IHdyb25nVHlwZUF0
dHJpYnV0ZVZlY3RvciA9IFsKKyAgICAgICAgLy8gd3JvbmcgcnAgYXR0cmlidXRlIHR5cGUKKyAg
ICAgICAgW3sgbmFtZTogU3ltYm9sKCkgfSwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBh
cmFtXV0sCisgICAgICAgIFt7IG5hbWU6IHJwLm5hbWUsIGljb246IFN5bWJvbCgpIH0sIHVzZXIs
IGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbeyBuYW1lOiBycC5uYW1l
LCBpZDogU3ltYm9sKCkgfSwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisg
ICAgICAgIC8vIHdyb25nIHVzZXIgYXR0cmlidXRlIHR5cGUKKyAgICAgICAgW3JwLCB7IG5hbWU6
IFN5bWJvbCgpLCBpZDogdXNlci5pZCwgZGlzcGxheU5hbWU6IHVzZXIuZGlzcGxheU5hbWV9LCBj
aGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIu
bmFtZSwgaWQ6IDEsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwgY2hhbGxlbmdlLCBb
cHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2VyLm5hbWUsIGlkOiB0
cnVlLCBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5TmFtZX0sIGNoYWxsZW5nZSwgW3B1YktleUNy
ZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHsgbmFtZTogdXNlci5uYW1lLCBpZDogbnVsbCwgZGlz
cGxheU5hbWU6IHVzZXIuZGlzcGxheU5hbWV9LCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1d
XSwKKyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IFN5bWJvbCgpLCBkaXNwbGF5
TmFtZTogdXNlci5kaXNwbGF5TmFtZX0sIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAor
ICAgICAgICBbcnAsIHsgbmFtZTogdXNlci5uYW1lLCBpZDogeyB9LCBkaXNwbGF5TmFtZTogdXNl
ci5kaXNwbGF5TmFtZX0sIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBb
cnAsIHsgbmFtZTogdXNlci5uYW1lLCBpZDogImZvbyIsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3Bs
YXlOYW1lfSwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBu
YW1lOiB1c2VyLm5hbWUsIGlkOiBbIF0sIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lfSwg
Y2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgeyBuYW1lOiB1c2Vy
Lm5hbWUsIGlkOiB1c2VyLmlkLCBkaXNwbGF5TmFtZTogU3ltYm9sKCl9LCBjaGFsbGVuZ2UsIFtw
dWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgW3JwLCB7IG5hbWU6IHVzZXIubmFtZSwgaWQ6IHVz
ZXIuaWQsIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lLCBpY29uOiBTeW1ib2woKX0sIGNo
YWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICAvLyB3cm9uZyBjaGFsbGVuZ2Ug
dHlwZQorICAgICAgICBbcnAsIHVzZXIsIDEsIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAg
W3JwLCB1c2VyLCB0cnVlLCBbcHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgdXNlciwg
bnVsbCwgW3B1YktleUNyZWRQYXJhbV1dLAorICAgICAgICBbcnAsIHVzZXIsIFN5bWJvbCgpLCBb
cHViS2V5Q3JlZFBhcmFtXV0sCisgICAgICAgIFtycCwgdXNlciwgImZvbyIsIFtwdWJLZXlDcmVk
UGFyYW1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBbIF0sIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAg
ICAgICAgW3JwLCB1c2VyLCB7IH0sIFtwdWJLZXlDcmVkUGFyYW1dXSwKKyAgICAgICAgLy8gd3Jv
bmcgcHViS2V5Q3JlZFBhcmFtIHR5cGUKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7
IHR5cGU6IDEsIGFsZzogcHViS2V5Q3JlZFBhcmFtLmFsZyB9XV0sCisgICAgICAgIFtycCwgdXNl
ciwgY2hhbGxlbmdlLCBbeyB0eXBlOiB0cnVlLCBhbGc6IHB1YktleUNyZWRQYXJhbS5hbGcgfV1d
LAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogbnVsbCwgYWxnOiBwdWJL
ZXlDcmVkUGFyYW0uYWxnIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFt7IHR5
cGU6IFN5bWJvbCgpLCBhbGc6IHB1YktleUNyZWRQYXJhbS5hbGcgfV1dLAorICAgICAgICBbcnAs
IHVzZXIsIGNoYWxsZW5nZSwgW3sgdHlwZTogImZvbyIsIGFsZzogcHViS2V5Q3JlZFBhcmFtLmFs
ZyB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbeyB0eXBlOiBbIF0sIGFsZzog
cHViS2V5Q3JlZFBhcmFtLmFsZyB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBb
eyB0eXBlOiB7IH0sIGFsZzogcHViS2V5Q3JlZFBhcmFtLmFsZyB9XV0sCisgICAgICAgIFtycCwg
dXNlciwgY2hhbGxlbmdlLCBbeyB0eXBlOiBwdWJLZXlDcmVkUGFyYW0udHlwZSwgYWxnOiBTeW1i
b2woKSB9XV0sCisgICAgICAgIC8vIHdyb25nIHRpbWVvdXQgdHlwZQorICAgICAgICBbcnAsIHVz
ZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIFN5bWJvbCgpLCB1bmRlZmluZWRdLAor
ICAgICAgICAvLyB3cm9uZyBleGNsdWRlQ3JlZGVudGlhbHMKKyAgICAgICAgW3JwLCB1c2VyLCBj
aGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IDEsIGlkOiBl
eGNsdWRlQ3JlZGVudGlhbHMuaWQgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwg
W3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogdHJ1ZSwgaWQ6IGV4Y2x1ZGVD
cmVkZW50aWFscy5pZCB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5
Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBudWxsLCBpZDogZXhjbHVkZUNyZWRlbnRp
YWxzLmlkIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFy
YW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IFN5bWJvbCgpLCBpZDogZXhjbHVkZUNyZWRlbnRpYWxz
LmlkIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1d
LCB1bmRlZmluZWQsIFt7IHR5cGU6ICJmb28iLCBpZDogZXhjbHVkZUNyZWRlbnRpYWxzLmlkIH1d
XSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRl
ZmluZWQsIFt7IHR5cGU6IFsgXSwgaWQ6IGV4Y2x1ZGVDcmVkZW50aWFscy5pZCB9XV0sCisgICAg
ICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBb
eyB0eXBlOiB7IH0sIGlkOiBleGNsdWRlQ3JlZGVudGlhbHMuaWQgfV1dLAorICAgICAgICBbcnAs
IHVzZXIsIGNoYWxsZW5nZSwgW3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTog
ZXhjbHVkZUNyZWRlbnRpYWxzLnR5cGUsIGlkOiAxIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBj
aGFsbGVuZ2UsIFtwdWJLZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IGV4Y2x1ZGVD
cmVkZW50aWFscy50eXBlLCBpZDogdHJ1ZSB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxl
bmdlLCBbcHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBleGNsdWRlQ3JlZGVu
dGlhbHMudHlwZSwgaWQ6IG51bGwgfV1dLAorICAgICAgICBbcnAsIHVzZXIsIGNoYWxsZW5nZSwg
W3B1YktleUNyZWRQYXJhbV0sIHVuZGVmaW5lZCwgW3sgdHlwZTogZXhjbHVkZUNyZWRlbnRpYWxz
LnR5cGUsIGlkOiBTeW1ib2woKSB9XV0sCisgICAgICAgIFtycCwgdXNlciwgY2hhbGxlbmdlLCBb
cHViS2V5Q3JlZFBhcmFtXSwgdW5kZWZpbmVkLCBbeyB0eXBlOiBleGNsdWRlQ3JlZGVudGlhbHMu
dHlwZSwgaWQ6ICJmb28iIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJL
ZXlDcmVkUGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IGV4Y2x1ZGVDcmVkZW50aWFscy50eXBl
LCBpZDogWyBdIH1dXSwKKyAgICAgICAgW3JwLCB1c2VyLCBjaGFsbGVuZ2UsIFtwdWJLZXlDcmVk
UGFyYW1dLCB1bmRlZmluZWQsIFt7IHR5cGU6IGV4Y2x1ZGVDcmVkZW50aWFscy50eXBlLCBpZDog
eyB9IH1dXQorICAgIF0KKworICAgIGZ1bmN0aW9uIG1ha2VPcHRpb25zKGF0dHJpYnV0ZXMpCisg
ICAgeworICAgICAgICBpZiAoYXR0cmlidXRlcy5sZW5ndGggPT0gNCkKKyAgICAgICAgICAgIHJl
dHVybiB7IHB1YmxpY0tleTogeyBycDogYXR0cmlidXRlc1swXSwgdXNlcjogYXR0cmlidXRlc1sx
XSwgY2hhbGxlbmdlOiBhdHRyaWJ1dGVzWzJdLCBwdWJLZXlDcmVkUGFyYW1zOiBhdHRyaWJ1dGVz
WzNdIH0gfTsKKyAgICAgICAgcmV0dXJuIHsgcHVibGljS2V5OiB7IHJwOiBhdHRyaWJ1dGVzWzBd
LCB1c2VyOiBhdHRyaWJ1dGVzWzFdLCBjaGFsbGVuZ2U6IGF0dHJpYnV0ZXNbMl0sIHB1YktleUNy
ZWRQYXJhbXM6IGF0dHJpYnV0ZXNbM10sIHRpbWVvdXQ6IGF0dHJpYnV0ZXNbNF0sICBleGNsdWRl
Q3JlZGVudGlhbHM6IGF0dHJpYnV0ZXNbNV19IH07CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdChhdHRyaWJ1dGVzVmVjdG9ycykgeworICAgICAgICBhdHRyaWJ1dGVzVmVjdG9ycy5mb3JF
YWNoKGZ1bmN0aW9uKGF0dHJpYnV0ZXNWZWN0b3IpIHsKKyAgICAgICAgICAgIGF0dHJpYnV0ZXNW
ZWN0b3IuZm9yRWFjaChhc3luYyBmdW5jdGlvbihhdHRyaWJ1dGVzKSB7CisgICAgICAgICAgICAg
ICAgaW52YWxpZE9wdGlvbnMgPSBtYWtlT3B0aW9ucyhhdHRyaWJ1dGVzKTsKKyAgICAgICAgICAg
ICAgICBhd2FpdCBzaG91bGRSZWplY3QoJ25hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoaW52
YWxpZE9wdGlvbnMpJyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgfQorCisgICAgY29uc3QgdmVjdG9ycyA9IFtdOworICAgIHZl
Y3RvcnMucHVzaChtaXNzaW5nQXR0cmlidXRlVmVjdG9yKTsKKyAgICB2ZWN0b3JzLnB1c2god3Jv
bmdUeXBlQXR0cmlidXRlVmVjdG9yKTsKKyAgICBydW5UZXN0KHZlY3RvcnMpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0y
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLTIuaHR0cHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3NWM1YzAxYTEzZTE1MGIzMmNjNGE0Y2ZmNzAwNTBhYTQy
ZTM3YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy0yLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBk
b2Vzbid0IHNoYXJlIHRoZSBzYW1lIG9yaWdpbiB3aXRoIGFsbCBpdHMgYW5jZXN0b3JzIGNvdWxk
IG5vdCBhY2Nlc3MgdGhlIEFQSS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgVGhyb3cgTm90QWxsb3dlZEVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3Jz
LTIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLTIuaHR0cHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jOTAxMWE5ODUxOGM5MTY3ZDRiZmVlNmZkZDBmNjZmOTU2MGI4MWYzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMtMi5odHRwcy5odG1sCkBAIC0wLDAg
KzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgZG9lc24ndCBzaGFyZSB0aGUg
c2FtZSBvcmlnaW4gd2l0aCBhbGwgaXRzIGFuY2VzdG9ycyBjb3VsZCBub3QgYWNjZXNzIHRoZSBB
UEkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpZnJhbWUgc3JjPSJodHRwczovL2xvY2Fs
aG9zdDo4NDQzL3dlYmF1dGhuL3Jlc291cmNlcy9sYXN0LWxheWVyLWZyYW1lLmh0dHBzLmh0bWwi
PjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1h
bmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0
cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3NWM1YzAxYTEzZTE1MGIzMmNjNGE0Y2ZmNzAw
NTBhYTQyZTM3YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBhIGZyYW1lIHRo
YXQgZG9lc24ndCBzaGFyZSB0aGUgc2FtZSBvcmlnaW4gd2l0aCBhbGwgaXRzIGFuY2VzdG9ycyBj
b3VsZCBub3QgYWNjZXNzIHRoZSBBUEkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIFRocm93IE5vdEFsbG93ZWRFcnJvci4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2Vz
dG9ycy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iOGM5NWNmNzYzZjg3Yzk3ZjU4YjBhMmE0MTY0Nzg1MGYwMTBmZWNlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGRvZXNuJ3Qgc2hhcmUgdGhlIHNh
bWUgb3JpZ2luIHdpdGggYWxsIGl0cyBhbmNlc3RvcnMgY291bGQgbm90IGFjY2VzcyB0aGUgQVBJ
LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly9sb2NhbGhv
c3Q6ODQ0My93ZWJhdXRobi9yZXNvdXJjZXMvc2Vjb25kLWxheWVyLWZyYW1lLmh0dHBzLmh0bWwi
PjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJhdXRobi9yZXNvdXJjZXMvbGFzdC1sYXllci1mcmFtZS5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9yZXNvdXJjZXMvbGFzdC1sYXllci1mcmFt
ZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhYTJjYzQ5NjA2NzI2M2FlNTNmYzdlZjJlMDgwNGU5
MDNlMzFmNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1
dGhuL3Jlc291cmNlcy9sYXN0LWxheWVyLWZyYW1lLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwzNyBA
QAorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIG1lc3NhZ2VUb1RvcChtZXNzYWdlUHJlZml4KSB7
CisgICAgICAgIHRvcC5wb3N0TWVzc2FnZShtZXNzYWdlUHJlZml4LCAiaHR0cHM6Ly8xMjcuMC4w
LjE6ODQ0MyIpOworICAgIH0KKworICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1Ymxp
Y0tleTogeworICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBs
ZS5jb20iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAg
ICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgaWQ6IGFzY2lpVG9V
aW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4i
LAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJy
YXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1
YmxpYy1rZXkiLCBhbGc6IC03IH1dCisgICAgICAgIH0KKyAgICB9OworICAgIG5hdmlnYXRvci5j
cmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbigKKyAgICAgICAgZnVuY3Rpb24odmFsdWUp
IHsKKyAgICAgICAgICAgIG1lc3NhZ2VUb1RvcCgiQWNjZXNzIGdyYW50ZWQuICIgKyB2YWx1ZSk7
CisgICAgICAgIH0sCisgICAgICAgIGZ1bmN0aW9uKGV4Y2VwdGlvbikgeworICAgICAgICAgICAg
aWYgKGV4Y2VwdGlvbi5uYW1lID09ICJOb3RBbGxvd2VkRXJyb3IiKQorICAgICAgICAgICAgICAg
IG1lc3NhZ2VUb1RvcCgiUEFTUyBUaHJvdyBOb3RBbGxvd2VkRXJyb3IuIik7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgbWVzc2FnZVRvVG9wKCJUaHJvdyAiICsgZXhjZXB0aW9u
Lm5hbWUgICsgIi4iKTsKKyAgICAgICAgfQorICAgICk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3Jl
c291cmNlcy9zZWNvbmQtbGF5ZXItZnJhbWUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL3NlY29uZC1sYXllci1mcmFtZS5odHRwcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNjZjE2MzBlNDBmNGNkMWI1YWVjM2FiNmJiOWRhNDRjY2VmMzc2MjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmF1dGhuL3Jlc291cmNlcy9z
ZWNvbmQtbGF5ZXItZnJhbWUuaHR0cHMuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpZnJhbWUgc3JjPSJs
YXN0LWxheWVyLWZyYW1lLmh0dHBzLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhdXRobi9yZXNvdXJjZXMvdXRp
bC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjdiNmY0ZTg0MjQ0NDRhZTg1ZjkwN2E2NWUxMzNhNTE4YTBkZGU1NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXV0aG4vcmVzb3VyY2Vz
L3V0aWwuanMKQEAgLTAsMCArMSwxOCBAQAorZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQp
IHsKKyAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0MyIpIHsK
KyAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyAiKSAhPT0gLTEpCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEpOworICAgIH0gZWxzZQor
ICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVk
IG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1
bmN0aW9uIGFzY2lpVG9VaW50OEFycmF5KHN0cikKK3sKKyAgICBjb25zdCBjaGFycyA9IFtdOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKQorICAgICAgICBjaGFycy5w
dXNoKHN0ci5jaGFyQ29kZUF0KGkpKTsKKyAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoY2hhcnMp
OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vV2ViQXV0aE4u
aWRsIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vV2ViQXV0aE4uaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjUxODllYzNmYzMwMDI3NDE3MjRiZjUxZTU0YzA0YzFkOTA4MDFmZWQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9XZWJBdXRoTi5pZGwKQEAgLTAs
MCArMSwxMzUgQEAKKy8vIENvcGllZCBmcm9tIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRo
bi8jaWRsLWluZGV4IGFzIG9mIDUgRGVjZW1iZXIgMjAxNworW1NlY3VyZUNvbnRleHQsIEV4cG9z
ZWQ9V2luZG93XQoraW50ZXJmYWNlIFB1YmxpY0tleUNyZWRlbnRpYWwgOiBDcmVkZW50aWFsIHsK
KyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5QnVmZmVyICAgICAgICAg
ICAgICByYXdJZDsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEF1dGhlbnRp
Y2F0b3JSZXNwb25zZSAgICByZXNwb25zZTsKKyAgICBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnMg
Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpOworfTsKKworcGFydGlhbCBkaWN0aW9uYXJ5IENy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgeworICAgIE1ha2VQdWJsaWNLZXlDcmVkZW50aWFsT3B0
aW9ucyAgICAgIHB1YmxpY0tleTsKK307CisKK3BhcnRpYWwgZGljdGlvbmFyeSBDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnMgeworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyAg
ICAgIHB1YmxpY0tleTsKK307CisKK3BhcnRpYWwgaW50ZXJmYWNlIFB1YmxpY0tleUNyZWRlbnRp
YWwgeworICAgIHN0YXRpYyBQcm9taXNlIDwgYm9vbGVhbiA+IGlzVXNlclZlcmlmeWluZ1BsYXRm
b3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpOworfTsKKworW1NlY3VyZUNvbnRleHQsIEV4cG9z
ZWQ9V2luZG93XQoraW50ZXJmYWNlIEF1dGhlbnRpY2F0b3JSZXNwb25zZSB7CisgICAgW1NhbWVP
YmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJheUJ1ZmZlciAgICAgIGNsaWVudERhdGFKU09O
OworfTsKKworW1NlY3VyZUNvbnRleHQsIEV4cG9zZWQ9V2luZG93XQoraW50ZXJmYWNlIEF1dGhl
bnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlIDogQXV0aGVudGljYXRvclJlc3BvbnNlIHsKKyAg
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5QnVmZmVyICAgICAgYXR0ZXN0
YXRpb25PYmplY3Q7Cit9OworCitbU2VjdXJlQ29udGV4dCwgRXhwb3NlZD1XaW5kb3ddCitpbnRl
cmZhY2UgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlIDogQXV0aGVudGljYXRvclJlc3Bv
bnNlIHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5QnVmZmVyICAg
ICAgYXV0aGVudGljYXRvckRhdGE7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBBcnJheUJ1ZmZlciAgICAgIHNpZ25hdHVyZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkg
YXR0cmlidXRlIEFycmF5QnVmZmVyICAgICAgdXNlckhhbmRsZTsKK307CisKK2RpY3Rpb25hcnkg
UHVibGljS2V5Q3JlZGVudGlhbFBhcmFtZXRlcnMgeworICAgIHJlcXVpcmVkIFB1YmxpY0tleUNy
ZWRlbnRpYWxUeXBlICAgICAgdHlwZTsKKyAgICByZXF1aXJlZCBDT1NFQWxnb3JpdGhtSWRlbnRp
ZmllciAgICAgIGFsZzsKK307CisKK2RpY3Rpb25hcnkgTWFrZVB1YmxpY0tleUNyZWRlbnRpYWxP
cHRpb25zIHsKKyAgICByZXF1aXJlZCBQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHkgICAgICAg
ICBycDsKKyAgICByZXF1aXJlZCBQdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eSAgICAgICB1
c2VyOworCisgICAgcmVxdWlyZWQgQnVmZmVyU291cmNlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFsbGVuZ2U7CisgICAgcmVxdWlyZWQgc2VxdWVuY2U8UHVibGljS2V5Q3JlZGVudGlh
bFBhcmFtZXRlcnM+ICBwdWJLZXlDcmVkUGFyYW1zOworCisgICAgdW5zaWduZWQgbG9uZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dDsKKyAgICBzZXF1ZW5jZTxQdWJsaWNL
ZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4gICAgICBleGNsdWRlQ3JlZGVudGlhbHMgPSBbXTsKKyAg
ICBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgICAgICAgICAgICAgICBhdXRoZW50aWNh
dG9yU2VsZWN0aW9uOworICAgIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UgICAgICAg
ICAgICAgIGF0dGVzdGF0aW9uID0gIm5vbmUiOworICAgIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9u
cyAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM7Cit9OworCitkaWN0aW9uYXJ5IFB1Ymxp
Y0tleUNyZWRlbnRpYWxFbnRpdHkgeworICAgIHJlcXVpcmVkIERPTVN0cmluZyAgICBuYW1lOwor
ICAgIFVTVlN0cmluZyAgICAgICAgICAgICBpY29uOworfTsKKworZGljdGlvbmFyeSBQdWJsaWNL
ZXlDcmVkZW50aWFsUnBFbnRpdHkgOiBQdWJsaWNLZXlDcmVkZW50aWFsRW50aXR5IHsKKyAgICBE
T01TdHJpbmcgICAgICBpZDsKK307CisKK2RpY3Rpb25hcnkgUHVibGljS2V5Q3JlZGVudGlhbFVz
ZXJFbnRpdHkgOiBQdWJsaWNLZXlDcmVkZW50aWFsRW50aXR5IHsKKyAgICByZXF1aXJlZCBCdWZm
ZXJTb3VyY2UgICBpZDsKKyAgICByZXF1aXJlZCBET01TdHJpbmcgICAgICBkaXNwbGF5TmFtZTsK
K307CisKK2RpY3Rpb25hcnkgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHsKKyAgICBB
dXRoZW50aWNhdG9yQXR0YWNobWVudCAgICAgIGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAg
IGJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZVJlc2lkZW50S2V5ID0gZmFsc2U7
CisgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50ICB1c2VyVmVyaWZpY2F0aW9uID0gInBy
ZWZlcnJlZCI7Cit9OworCitlbnVtIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50IHsKKyAgICAicGxh
dGZvcm0iLCAgICAgICAvLyBQbGF0Zm9ybSBhdHRhY2htZW50CisgICAgImNyb3NzLXBsYXRmb3Jt
IiAgLy8gQ3Jvc3MtcGxhdGZvcm0gYXR0YWNobWVudAorfTsKKworZW51bSBBdHRlc3RhdGlvbkNv
bnZleWFuY2VQcmVmZXJlbmNlIHsKKyAgICAibm9uZSIsCisgICAgImluZGlyZWN0IiwKKyAgICAi
ZGlyZWN0IgorfTsKKworZGljdGlvbmFyeSBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMgeworICAgIHJlcXVpcmVkIEJ1ZmZlclNvdXJjZSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U7
CisgICAgdW5zaWduZWQgbG9uZyAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ7CisgICAg
VVNWU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJwSWQ7CisgICAgc2VxdWVuY2U8
UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+IGFsbG93Q3JlZGVudGlhbHMgPSBbXTsKKyAg
ICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgICAgICAgICAgdXNlclZlcmlmaWNhdGlvbiA9
ICJwcmVmZXJyZWQiOworICAgIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9ucyAgICAgICAgICAgICBl
eHRlbnNpb25zOworfTsKKwordHlwZWRlZiByZWNvcmQ8RE9NU3RyaW5nLCBhbnk+ICAgICAgIEF1
dGhlbnRpY2F0aW9uRXh0ZW5zaW9uczsKKworZGljdGlvbmFyeSBDb2xsZWN0ZWRDbGllbnREYXRh
IHsKKyAgICByZXF1aXJlZCBET01TdHJpbmcgICAgICAgICAgIHR5cGU7CisgICAgcmVxdWlyZWQg
RE9NU3RyaW5nICAgICAgICAgICBjaGFsbGVuZ2U7CisgICAgcmVxdWlyZWQgRE9NU3RyaW5nICAg
ICAgICAgICBvcmlnaW47CisgICAgcmVxdWlyZWQgRE9NU3RyaW5nICAgICAgICAgICBoYXNoQWxn
b3JpdGhtOworICAgIERPTVN0cmluZyAgICAgICAgICAgICAgICAgICAgdG9rZW5CaW5kaW5nSWQ7
CisgICAgQXV0aGVudGljYXRpb25FeHRlbnNpb25zICAgICBjbGllbnRFeHRlbnNpb25zOworICAg
IEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9ucyAgICAgYXV0aGVudGljYXRvckV4dGVuc2lvbnM7Cit9
OworCitlbnVtIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlIHsKKyAgICAicHVibGljLWtleSIKK307
CisKK2RpY3Rpb25hcnkgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IgeworICAgIHJlcXVp
cmVkIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlICAgICAgdHlwZTsKKyAgICByZXF1aXJlZCBCdWZm
ZXJTb3VyY2UgICAgICAgICAgICAgICAgIGlkOworICAgIHNlcXVlbmNlPEF1dGhlbnRpY2F0b3JU
cmFuc3BvcnQ+ICAgICAgdHJhbnNwb3J0czsKK307CisKK2VudW0gQXV0aGVudGljYXRvclRyYW5z
cG9ydCB7CisgICAgInVzYiIsCisgICAgIm5mYyIsCisgICAgImJsZSIKK307CisKK3R5cGVkZWYg
bG9uZyBDT1NFQWxnb3JpdGhtSWRlbnRpZmllcjsKKworZW51bSBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQgeworICAgICJyZXF1aXJlZCIsCisgICAgInByZWZlcnJlZCIsCisgICAgImRpc2Nv
dXJhZ2VkIgorfTsKKwordHlwZWRlZiBzZXF1ZW5jZTxBQUdVSUQ+ICAgICAgQXV0aGVudGljYXRv
clNlbGVjdGlvbkxpc3Q7CisKK3R5cGVkZWYgQnVmZmVyU291cmNlICAgICAgQUFHVUlEOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjdkZGI0YWFjODBkMjQ2OGM0OWQ5YmU4NTc0YjYwZTMxMGFhMzBkYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NSBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgdGhlIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgV2ViQXV0aE4gQVBJIG1h
dGNoIHdpdGggaXRzIFdlYklETCBkZWZpbml0aW9uLgorCisKK1BBU1MgU2V0dXAgZm9yIFdlYkF1
dGhOIEFQSSBJREwgdGVzdHMuIAorUEFTUyBDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIENyZWRlbnRpYWwgaW50
ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIENyZWRlbnRpYWwgaW50ZXJmYWNlIG9iamVjdCBu
YW1lIAorUEFTUyBDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBDcmVkZW50aWFsIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBpZCAKK1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0eXBlIAor
UEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGggCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlIG9i
amVjdCBuYW1lIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBQdWJs
aWNLZXlDcmVkZW50aWFsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1Mg
UHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByYXdJZCAKK1BBU1MgUHVi
bGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZXNwb25zZSAKK1BBU1MgUHVi
bGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRDbGllbnRFeHRlbnNpb25S
ZXN1bHRzKCkgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlOiBvcGVyYXRpb24g
aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkgCitQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBjcmVkZW50aWFs
IAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgY3JlZGVudGlhbCAKK1BBU1MgUHVibGljS2V5Q3Jl
ZGVudGlhbCBpbnRlcmZhY2U6IGNyZWRlbnRpYWwgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyYXdJ
ZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJm
YWNlOiBjcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVzcG9uc2UiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZTogY3JlZGVu
dGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNl
OiBjcmVkZW50aWFsIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaXNVc2VyVmVyaWZ5aW5nUGxhdGZv
cm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBD
cmVkZW50aWFsIGludGVyZmFjZTogY3JlZGVudGlhbCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImlk
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgQ3JlZGVudGlhbCBpbnRlcmZhY2U6IGNyZWRl
bnRpYWwgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0eXBlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgQXV0aGVudGljYXRvclJlc3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIEF1dGhlbnRpY2F0b3JSZXNwb25zZSBp
bnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgQXV0aGVudGljYXRvclJlc3BvbnNlIGludGVy
ZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgQXV0aGVudGljYXRvclJlc3BvbnNlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAor
UEFTUyBBdXRoZW50aWNhdG9yUmVzcG9uc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3Bl
cnR5IAorUEFTUyBBdXRoZW50aWNhdG9yUmVzcG9uc2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY2xp
ZW50RGF0YUpTT04gCitQQVNTIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNT
IEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlIGludGVyZmFjZSBvYmplY3QgbGVuZ3Ro
IAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBpbnRlcmZhY2Ugb2JqZWN0
IG5hbWUgCitQQVNTIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAor
UEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1
Y3RvciIgcHJvcGVydHkgCitQQVNTIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlIGlu
dGVyZmFjZTogYXR0cmlidXRlIGF0dGVzdGF0aW9uT2JqZWN0IAorUEFTUyBBdXRoZW50aWNhdG9y
QXR0ZXN0YXRpb25SZXNwb25zZSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIGNyZWRlbnRp
YWwucmVzcG9uc2UgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBjcmVkZW50aWFsLnJlc3BvbnNl
IAorUEFTUyBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBpbnRlcmZhY2U6IGNyZWRl
bnRpYWwucmVzcG9uc2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhdHRlc3RhdGlvbk9iamVjdCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEF1dGhlbnRpY2F0b3JSZXNwb25zZSBpbnRlcmZh
Y2U6IGNyZWRlbnRpYWwucmVzcG9uc2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbGllbnREYXRh
SlNPTiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0IAorUEFTUyBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UgaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggCitQQVNTIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSBpbnRlcmZh
Y2Ugb2JqZWN0IG5hbWUgCitQQVNTIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCAKK1BBU1MgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNv
bnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNl
IGludGVyZmFjZTogYXR0cmlidXRlIGF1dGhlbnRpY2F0b3JEYXRhIAorUEFTUyBBdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2lnbmF0dXJlIAorUEFT
UyBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdXNl
ckhhbmRsZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vaWRs
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9pZGwuaHR0cHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hZDJiY2JmZDcyNDQ3YWRiZGE4MWMwMTg1ZDM5NzUwNWVhYjY0MDYzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBz
Lmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9dXRmLTg+CisgICAgPHRpdGxlPklETCBjaGVjayBvZiBXZWJBdXRo
TjwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3d3dy53My5vcmcv
VFIvd2ViYXV0aG4vI2lkbC1pbmRleCI+CisgICAgPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvV2ViSURM
UGFyc2VyLmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvaWRsaGFybmVz
cy5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGgxIGNsYXNzPSJpbnN0cnVjdGlvbnMiPkRlc2Ny
aXB0aW9uPC9oMT4KKworPHAgY2xhc3M9Imluc3RydWN0aW9ucyI+VGhpcyB0ZXN0IHZlcmlmaWVz
IHRoYXQgdGhlIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgV2ViQXV0aE4gQVBJIG1hdGNoIHdpdGgg
aXRzIFdlYklETCBkZWZpbml0aW9uLjwvcD4KKworPGRpdiBpZD0nbG9nJz48L2Rpdj4KKworPHNj
cmlwdD4KK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgY29uc3QgaWRsVVJMID0gWyJX
ZWJBdXRoTi5pZGwiXTsKKyAgICBjb25zdCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOworICAg
IGNvbnN0IGlkbFRleHQgPSBhd2FpdCBmZXRjaChpZGxVUkwpLnRoZW4ociA9PiByLnRleHQoKSk7
CisKKyAgICBpZGxBcnJheS5hZGRfdW50ZXN0ZWRfaWRscygiaW50ZXJmYWNlIEFycmF5QnVmZmVy
IHt9OyIpOworCisgICAgaWRsQXJyYXkuYWRkX2lkbHMoYAorICAgICAgICBbRXhwb3NlZD1XaW5k
b3csIFNlY3VyZUNvbnRleHRdCisgICAgICAgIGludGVyZmFjZSBDcmVkZW50aWFsIHsKKyAgICAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgaWQ7CisgICAgICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CisgICAgICAgIH07CisgICAgYCk7CisgICAg
aWRsQXJyYXkuYWRkX2lkbHMoaWRsVGV4dCk7CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAg
ICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgbmFt
ZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdXNlcjogeworICAg
ICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgaWQ6
IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBkaXNwbGF5TmFt
ZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2hhbGxlbmdlOiBC
YXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1z
OiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgIH0KKyAgICB9Owor
ICAgIGNyZWRlbnRpYWwgPSBhd2FpdCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlv
bnMpOworCisgICAgaWRsQXJyYXkuYWRkX29iamVjdHMoeyJQdWJsaWNLZXlDcmVkZW50aWFsIjog
WyJjcmVkZW50aWFsIl0sICJBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSI6IFsiY3Jl
ZGVudGlhbC5yZXNwb25zZSJdfSk7CisgICAgaWRsQXJyYXkudGVzdCgpOworfSwgIlNldHVwIGZv
ciBXZWJBdXRoTiBBUEkgSURMIHRlc3RzLiIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZh
aWx1cmUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jNDc2MWYzZjRhYzIxMmZlZmMyYzkwN2NhMWVkMGNlNzI5OTU1Mjk2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYg
QEAKKworUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHRpbWVvdXQg
CitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggYSBtaXNtYXRjaGVk
IFJQIElEIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIGFuIGVt
cHR5IHB1YktleUNyZWRQYXJhbXMgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0
ZV1dIHdpdGggdXNlciBjYW5jZWxsYXRpb25zIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1jcmVhdGUtZmFpbHVyZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwZThlNDE5NzVhYTE0
ZjU1YWQyMDhlMjI3ZGMwN2Y2YmRjMTJiNzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5XZWIg
QXV0aGVudGljYXRpb24gQVBJOiBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSBmYWls
dXJlIGNhc2VzLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICAgIGNvbnN0
IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBy
cDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5h
bWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWlu
dDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9o
biIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lp
VG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1z
OiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICAgICAgdGlt
ZW91dDogMCwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIHByb21p
c2VfcmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwKKyAgICAgICAgICAgIG5hdmlnYXRvci5j
cmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykpOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFs
J3MgW1tjcmVhdGVdXSB3aXRoIHRpbWVvdXQiKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6
IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhh
bXBsZS5jb20iLAorICAgICAgICAgICAgICAgICAgICBpZDogImV4YW1wbGUuY29tIgorICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICBpZDogYXNjaWlU
b1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTog
IkpvaG4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBh
c2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBh
cmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAgfQor
ICAgICAgICB9OworICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICJTZWN1cml0eUVy
cm9yIiwKKyAgICAgICAgICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykp
OworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIGEgbWlzbWF0
Y2hlZCBSUCBJRCIpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAg
Y29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAg
ICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAg
ICAgICAgICAgICAgICBpZDogImxvY2FsaG9zdCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVz
ZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYi
KSwKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJh
eSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogWyBdLAorICAg
ICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQs
ICJOb3RTdXBwb3J0ZWRFcnJvciIsCisgICAgICAgICAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlKG9wdGlvbnMpKTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRl
XV0gd2l0aCBhbiBlbXB0eSBwdWJLZXlDcmVkUGFyYW1zIik7CisKKyAgICAvLyBUaGlzIHRlc3Qg
aXMgdGFyZ2V0aW5nIHRvIHRoZSBkdW1teSBhdXRoZW50aWNhdG9yLCB3aGljaCBhbHdheXMgY2Fu
Y2VsIHRoZSBvcGVyYXRpb24KKyAgICAvLyB3aGVuIHVzZXIuZGlzcGxheU5hbWUgPSAiSm9obiIu
CisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9
IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAg
ICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgICAgICAgICBp
ZDogImxvY2FsaG9zdCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6
IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAg
ICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAg
ICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAg
ICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAt
NyB9XSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIHByb21pc2Vf
cmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwKKyAgICAgICAgICAgIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5jcmVhdGUob3B0aW9ucykpOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tjcmVhdGVdXSB3aXRoIHVzZXIgY2FuY2VsbGF0aW9ucyIpOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Y3JlYXRlLXN1Y2Nlc3MuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLmh0dHBzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jYTg2ODQwNmI1ODJmNTM0YzlkNmEyYmIxNTEzZWZlZGI5NDdl
ZDEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRo
IG1pbmltdW0gb3B0aW9ucyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRl
LXN1Y2Nlc3MuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjNlZWZmMTczNjcyMDcwM2UzNGQ3N2Vl
NzYxMWY3MDJiZTZmNDkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLmh0dHBzLmh0bWwK
QEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+V2ViIEF1dGhlbnRpY2F0
aW9uIEFQSTogUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gc3VjY2VzcyBjYXNlcy48
L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KyAgICAvLyBUaGUgZm9sbG93aW5nIHRlc3QgaXMgc3BlY2lmaWNhbGx5IHR1bmVkIGZvciBjdXJy
ZW50IGR1bW15IGF1dGhlbnRpY2F0b3IuCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
KyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAg
ICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3Qi
LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAg
ICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICBp
ZDogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBkaXNw
bGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAgICAgICAg
ICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisg
ICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihmdW5jdGlvbihjcmVkZW50aWFsKSB7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjcmVkZW50aWFsLmlkLCAnX3cnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGNyZWRlbnRpYWwudHlwZSwgJ3B1YmxpYy1rZXknKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9IZXhTdHJpbmcoY3JlZGVudGlhbC5y
YXdJZCksICdmZicpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0FTQ0lJ
U3RyaW5nKGNyZWRlbnRpYWwucmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLCAneyJ0eXBlIjoid2Vi
YXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiTVRJek5EVTIiLCJvcmlnaW4iOiJodHRwczovL2xv
Y2FsaG9zdDo5NDQzIiwiaGFzaEFsZ29yaXRobSI6IlNIQS0yNTYifScpOworICAgICAgICAgICAg
ICAgIC8vIFRoaXMgZmllbGQgaXMgY29tcGxldGVseSBmYWtlIDB4MDAqNDMgfCAweDAwMDFmZiB8
IFNIQS0yNTYgaGFzaCBvZiB0aGUgY2xpZW50RGF0YUpTT04KKyAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGJ5dGVzVG9IZXhTdHJpbmcoY3JlZGVudGlhbC5yZXNwb25zZS5hdHRlc3RhdGlv
bk9iamVjdCksICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFmZjMzNzRiOTgzMTZi
MzgwNDY3MjdhNzcwYjhlOTVjNDU4MGEyOTJiOWUyZjRiYjQ0YTI1MGE1NDAyZDZkMzc4M2EnKTsK
KyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCJOb3RTdXBwb3J0ZWRFcnJvciIsIGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0
cygpKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIHsgfQorICAgICAgICAgICAgfSk7CisgICAg
fSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbWluaW11bSBvcHRpb25z
Iik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3Vy
Y2VzL3V0aWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA3NWViNzg0ODE1ZTYzNWM4ODRiMzg1ZGMzNTc2ZThm
YzMzOWQ5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3Jlc291cmNlcy91dGlsLmpzCkBAIC0wLDAgKzEsNDUgQEAKK2Z1bmN0aW9uIGFzY2lpVG9VaW50
OEFycmF5KHN0cikKK3sKKyAgICB2YXIgY2hhcnMgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHN0ci5sZW5ndGg7ICsraSkKKyAgICAgICAgY2hhcnMucHVzaChzdHIuY2hhckNvZGVBdChp
KSk7CisgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGNoYXJzKTsKK30KKworLy8gQnVpbGRzIGEg
aGV4IHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgYW4gYXJyYXktbGlrZSBpbnB1dC4KKy8vICJi
eXRlcyIgY2FuIGJlIGFuIEFycmF5IG9mIGJ5dGVzLCBhbiBBcnJheUJ1ZmZlciwgb3IgYW55IFR5
cGVkQXJyYXkuCisvLyBUaGUgb3V0cHV0IGxvb2tzIGxpa2UgdGhpczoKKy8vICAgIGFiMDM0Yzk5
CitmdW5jdGlvbiBieXRlc1RvSGV4U3RyaW5nKGJ5dGVzKQoreworICAgIGlmICghYnl0ZXMpCisg
ICAgICAgIHJldHVybiBudWxsOworCisgICAgYnl0ZXMgPSBuZXcgVWludDhBcnJheShieXRlcyk7
CisgICAgdmFyIGhleEJ5dGVzID0gW107CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBieXRlU3RyaW5nID0gYnl0ZXNbaV0udG9TdHJp
bmcoMTYpOworICAgICAgICBpZiAoYnl0ZVN0cmluZy5sZW5ndGggPCAyKQorICAgICAgICAgICAg
Ynl0ZVN0cmluZyA9ICIwIiArIGJ5dGVTdHJpbmc7CisgICAgICAgIGhleEJ5dGVzLnB1c2goYnl0
ZVN0cmluZyk7CisgICAgfQorCisgICAgcmV0dXJuIGhleEJ5dGVzLmpvaW4oIiIpOworfQorCitm
dW5jdGlvbiBieXRlc1RvQVNDSUlTdHJpbmcoYnl0ZXMpCit7CisgICAgcmV0dXJuIFN0cmluZy5m
cm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgbmV3IFVpbnQ4QXJyYXkoYnl0ZXMpKTsKK30KKwordmFy
IEJhc2U2NFVSTCA9IHsKKyAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uIChhKSB7CisgICAgICAgIHZh
ciBiYXNlNjRzdHJpbmcgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoMCwgYSkpOwor
ICAgICAgICByZXR1cm4gYmFzZTY0c3RyaW5nLnJlcGxhY2UoLz0vZywgIiIpLnJlcGxhY2UoL1wr
L2csICItIikucmVwbGFjZSgvXC8vZywgIl8iKTsKKyAgICB9LAorICAgIHBhcnNlOiBmdW5jdGlv
biAocykgeworICAgICAgICBzID0gcy5yZXBsYWNlKC8tL2csICIrIikucmVwbGFjZSgvXy9nLCAi
LyIpLnJlcGxhY2UoL1xzL2csICcnKTsKKyAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KEFy
cmF5LnByb3RvdHlwZS5tYXAuY2FsbChhdG9iKHMpLCBmdW5jdGlvbiAoYykgeyByZXR1cm4gYy5j
aGFyQ29kZUF0KDApIH0pKTsKKyAgICB9Cit9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>