<?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>230778</bug_id>
          
          <creation_ts>2021-09-24 16:29:38 -0700</creation_ts>
          <short_desc>PCM: Take app bundle ID into consideration when matching triggering events with pending clicks</short_desc>
          <delta_ts>2021-09-30 09:22:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit 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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230839</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1797074</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-24 16:29:38 -0700</bug_when>
    <thetext>https://commits.webkit.org/r282884 added app bundle IDs to unattributed and attributed clicks in PCM. We need to take those IDs into consideration in PCM::Database::attributePrivateClickMeasurement().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797075</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-24 16:30:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/83516528&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798107</commentid>
    <comment_count>2</comment_count>
      <attachid>439544</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-28 16:49:03 -0700</bug_when>
    <thetext>Created attachment 439544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798115</commentid>
    <comment_count>3</comment_count>
      <attachid>439544</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-28 17:02:45 -0700</bug_when>
    <thetext>Comment on attachment 439544
Patch

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

&gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:152
&gt; +    RELEASE_ASSERT(WebCore::applicationBundleIdentifier() == &quot;com.apple.WebKit.WebKitTestRunner&quot;_s);

iOS has a different bundle ID, &quot;org.webkit.WebKitTestRunnerApp&quot;

&gt; Source/WebCore/loader/PrivateClickMeasurement.h:424
&gt; +    std::optional&lt;String&gt; m_sourceApplicationBundleIDForTesting;

I don&apos;t think this needs to be stored separately on the PCM.  setSourceApplicationBundleIDForTesting could just set m_sourceApplicationBundleID.

&gt; Source/WebKit/NetworkProcess/NetworkSession.h:217
&gt; +    std::optional&lt;String&gt; m_privateClickMeasurementAppBundleIDForTesting;

This should probably be stored on the PrivateClickMeasurementManager along with all the other testing state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798116</commentid>
    <comment_count>4</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-28 17:07:25 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 439544 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=439544&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:152
&gt; &gt; +    RELEASE_ASSERT(WebCore::applicationBundleIdentifier() == &quot;com.apple.WebKit.WebKitTestRunner&quot;_s);
&gt; 
&gt; iOS has a different bundle ID, &quot;org.webkit.WebKitTestRunnerApp&quot;

Will fix.

&gt; &gt; Source/WebCore/loader/PrivateClickMeasurement.h:424
&gt; &gt; +    std::optional&lt;String&gt; m_sourceApplicationBundleIDForTesting;
&gt; 
&gt; I don&apos;t think this needs to be stored separately on the PCM. 
&gt; setSourceApplicationBundleIDForTesting could just set
&gt; m_sourceApplicationBundleID.

I remember thinking about that and opted for what&apos;s in the patch but I can&apos;t recall what it was. Will change and hopefully that just works.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.h:217
&gt; &gt; +    std::optional&lt;String&gt; m_privateClickMeasurementAppBundleIDForTesting;
&gt; 
&gt; This should probably be stored on the PrivateClickMeasurementManager along
&gt; with all the other testing state.

I discussed with Kate and she said PrivateClickMeasurementManager will be part of the daemon and not part of the app that&apos;s using WebKit which would break this functionality. That&apos;s why I moved it back to NetworkSession. Are you saying PrivateClickMeasurementManager is guaranteed to always be part of the app?

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798117</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-28 17:12:30 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #4)
&gt; (In reply to Alex Christensen from comment #3)
&gt; &gt; Comment on attachment 439544 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=439544&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:152
&gt; &gt; &gt; +    RELEASE_ASSERT(WebCore::applicationBundleIdentifier() == &quot;com.apple.WebKit.WebKitTestRunner&quot;_s);
&gt; &gt; 
&gt; &gt; iOS has a different bundle ID, &quot;org.webkit.WebKitTestRunnerApp&quot;
&gt; 
&gt; Will fix.
&gt; 
&gt; &gt; &gt; Source/WebCore/loader/PrivateClickMeasurement.h:424
&gt; &gt; &gt; +    std::optional&lt;String&gt; m_sourceApplicationBundleIDForTesting;
&gt; &gt; 
&gt; &gt; I don&apos;t think this needs to be stored separately on the PCM. 
&gt; &gt; setSourceApplicationBundleIDForTesting could just set
&gt; &gt; m_sourceApplicationBundleID.
&gt; 
&gt; I remember thinking about that and opted for what&apos;s in the patch but I can&apos;t
&gt; recall what it was. Will change and hopefully that just works.

Aaand now I remember why. It&apos;s to be able to reset it back to its original app bundle ID. Otherwise I&apos;d have to have a variable to store the old one instead.

But I guess I could just set it to WebCore::applicationBundleIdentifier().

&gt; &gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.h:217
&gt; &gt; &gt; +    std::optional&lt;String&gt; m_privateClickMeasurementAppBundleIDForTesting;
&gt; &gt; 
&gt; &gt; This should probably be stored on the PrivateClickMeasurementManager along
&gt; &gt; with all the other testing state.
&gt; 
&gt; I discussed with Kate and she said PrivateClickMeasurementManager will be
&gt; part of the daemon and not part of the app that&apos;s using WebKit which would
&gt; break this functionality. That&apos;s why I moved it back to NetworkSession. Are
&gt; you saying PrivateClickMeasurementManager is guaranteed to always be part of
&gt; the app?
&gt; 
&gt; Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798145</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-28 19:31:50 -0700</bug_when>
    <thetext>PrivateClickMeasurementManager is in the daemon, but the ability to set an override bundle ID for testing is one of many test-only functions that will only be available when running tests.  I think it will be fine.

Yeah, reset it to WebCore::applicationBundleIdentifier()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798176</commentid>
    <comment_count>7</comment_count>
      <attachid>439563</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-28 21:17:15 -0700</bug_when>
    <thetext>Created attachment 439563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798181</commentid>
    <comment_count>8</comment_count>
      <attachid>439564</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-28 22:01:45 -0700</bug_when>
    <thetext>Created attachment 439564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798403</commentid>
    <comment_count>9</comment_count>
      <attachid>439564</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-29 09:50:27 -0700</bug_when>
    <thetext>Comment on attachment 439564
Patch

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

Seems good.  API test needs fixing.

&gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:152
&gt; +    RELEASE_ASSERT(WebCore::applicationBundleIdentifier() == &quot;com.apple.WebKit.WebKitTestRunner&quot;_s || WebCore::applicationBundleIdentifier() == &quot;org.webkit.WebKitTestRunnerApp&quot;_s);

nit: we could only check the first one if PLATFORM(MAC) and the second one elif PLATFORM(COCOA)
Also, I think we should move this check to NetworkSession, which is the place that won&apos;t move to the daemon.

&gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:328
&gt; +    privateClickMeasurement().handleAttribution(WTFMove(attributionTriggerData), requestURL, RegistrableDomain(redirectRequest.url()), redirectRequest.firstPartyForCookies(), WebCore::applicationBundleIdentifier());

nit: we could reduce some redundancy by doing something like this:

#if PLATFORM(COCOA)
auto bundleID = WebCore::applicationBundleIdentifier();
#else
auto bundleID = emptyString();
#endif

&gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:265
&gt; +    RELEASE_ASSERT(WebCore::applicationBundleIdentifier() == &quot;com.apple.WebKit.WebKitTestRunner&quot;_s || WebCore::applicationBundleIdentifier() == &quot;org.webkit.WebKitTestRunnerApp&quot;_s);

This is currently redundant.  One check in NetworkSession ought to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798556</commentid>
    <comment_count>10</comment_count>
      <attachid>439655</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-29 14:12:42 -0700</bug_when>
    <thetext>Created attachment 439655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798557</commentid>
    <comment_count>11</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-29 14:14:46 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #9)
&gt; Comment on attachment 439564 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=439564&amp;action=review
&gt; 
&gt; Seems good.  API test needs fixing.
&gt; 
&gt; &gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:152
&gt; &gt; +    RELEASE_ASSERT(WebCore::applicationBundleIdentifier() == &quot;com.apple.WebKit.WebKitTestRunner&quot;_s || WebCore::applicationBundleIdentifier() == &quot;org.webkit.WebKitTestRunnerApp&quot;_s);
&gt; 
&gt; nit: we could only check the first one if PLATFORM(MAC) and the second one
&gt; elif PLATFORM(COCOA)
&gt; Also, I think we should move this check to NetworkSession, which is the
&gt; place that won&apos;t move to the daemon.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:328
&gt; &gt; +    privateClickMeasurement().handleAttribution(WTFMove(attributionTriggerData), requestURL, RegistrableDomain(redirectRequest.url()), redirectRequest.firstPartyForCookies(), WebCore::applicationBundleIdentifier());
&gt; 
&gt; nit: we could reduce some redundancy by doing something like this:
&gt; 
&gt; #if PLATFORM(COCOA)
&gt; auto bundleID = WebCore::applicationBundleIdentifier();
&gt; #else
&gt; auto bundleID = emptyString();
&gt; #endif
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:265
&gt; &gt; +    RELEASE_ASSERT(WebCore::applicationBundleIdentifier() == &quot;com.apple.WebKit.WebKitTestRunner&quot;_s || WebCore::applicationBundleIdentifier() == &quot;org.webkit.WebKitTestRunnerApp&quot;_s);
&gt; 
&gt; This is currently redundant.  One check in NetworkSession ought to do.

I changed the release asserts to the Mac vs Cocoa thing you wanted. However, I kept the check in WebCore::PrivateClickMeasurement since the two places protect against two different kinds of abuse. One is about making a *click* count for another application. The other is for a *conversion* to count for another application. You could of course have cases where both are done at the same time but they matter isolated too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798604</commentid>
    <comment_count>12</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-29 15:22:08 -0700</bug_when>
    <thetext>The WPE build failure looks unrelated and was caused by https://commits.webkit.org/r283029. Sihui is fixing it in https://bugs.webkit.org/show_bug.cgi?id=230989.

The Win layout test failures are unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798607</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-29 15:24:00 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #12)
&gt; The WPE build failure looks unrelated and was caused by
&gt; https://commits.webkit.org/r283029. Sihui is fixing it in
&gt; https://bugs.webkit.org/show_bug.cgi?id=230989.
&gt; 
&gt; The Win layout test failures are unrelated.

Looks related to me:
Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp.o:UnifiedSource-72468c22-2.cpp:function WebKit::NetworkProcess::setPrivateClickMeasurementAppBundleIDForTesting(PAL::SessionID, WTF::String&amp;&amp;, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;): error: undefined reference to &apos;WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting(WTF::String&amp;&amp;)&apos;
collect2: error: ld returned 1 exit status

The other one is just a warning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798609</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-29 15:25:12 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #13)
&gt; (In reply to John Wilander from comment #12)
&gt; &gt; The WPE build failure looks unrelated and was caused by
&gt; &gt; https://commits.webkit.org/r283029. Sihui is fixing it in
&gt; &gt; https://bugs.webkit.org/show_bug.cgi?id=230989.
&gt; &gt; 
&gt; &gt; The Win layout test failures are unrelated.
&gt; 
&gt; Looks related to me:
&gt; Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-
&gt; sources/UnifiedSource-72468c22-2.cpp.o:UnifiedSource-72468c22-2.cpp:function
&gt; WebKit::NetworkProcess::setPrivateClickMeasurementAppBundleIDForTesting(PAL::
&gt; SessionID, WTF::String&amp;&amp;, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;): error:
&gt; undefined reference to
&gt; &apos;WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting(WTF:
&gt; :String&amp;&amp;)&apos;
&gt; collect2: error: ld returned 1 exit status
&gt; 
&gt; The other one is just a warning.

That said, given that this is the only bot, maybe it is just an incremental build issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798613</commentid>
    <comment_count>15</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-29 15:27:53 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #14)
&gt; (In reply to Chris Dumez from comment #13)
&gt; &gt; (In reply to John Wilander from comment #12)
&gt; &gt; &gt; The WPE build failure looks unrelated and was caused by
&gt; &gt; &gt; https://commits.webkit.org/r283029. Sihui is fixing it in
&gt; &gt; &gt; https://bugs.webkit.org/show_bug.cgi?id=230989.
&gt; &gt; &gt; 
&gt; &gt; &gt; The Win layout test failures are unrelated.
&gt; &gt; 
&gt; &gt; Looks related to me:
&gt; &gt; Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-
&gt; &gt; sources/UnifiedSource-72468c22-2.cpp.o:UnifiedSource-72468c22-2.cpp:function
&gt; &gt; WebKit::NetworkProcess::setPrivateClickMeasurementAppBundleIDForTesting(PAL::
&gt; &gt; SessionID, WTF::String&amp;&amp;, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;): error:
&gt; &gt; undefined reference to
&gt; &gt; &apos;WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting(WTF:
&gt; &gt; :String&amp;&amp;)&apos;
&gt; &gt; collect2: error: ld returned 1 exit status
&gt; &gt; 
&gt; &gt; The other one is just a warning.

Oh.

&gt; That said, given that this is the only bot, maybe it is just an incremental
&gt; build issue?

I did look at that part too and couldn&apos;t figure out why it was complaining. Can such a thing happen due to incremental build?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798716</commentid>
    <comment_count>16</comment_count>
      <attachid>439688</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-29 18:23:32 -0700</bug_when>
    <thetext>Created attachment 439688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798734</commentid>
    <comment_count>17</comment_count>
      <attachid>439688</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-29 19:34:32 -0700</bug_when>
    <thetext>Comment on attachment 439688
Patch

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

&gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:149
&gt; +    m_sourceApplicationBundleID = appBundleIDForTesting;

It needs to check that it&apos;s running a test here too. Otherwise it&apos;s possible to store a click for arbitrary bundle IDs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798735</commentid>
    <comment_count>18</comment_count>
      <attachid>439688</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-29 19:54:46 -0700</bug_when>
    <thetext>Comment on attachment 439688
Patch

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

&gt;&gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:149
&gt;&gt; +    m_sourceApplicationBundleID = appBundleIDForTesting;
&gt; 
&gt; It needs to check that it&apos;s running a test here too. Otherwise it&apos;s possible to store a click for arbitrary bundle IDs.

This is only called if the manager&apos;s m_privateClickMeasurementAppBundleIDForTesting has been set, which can only be set through NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798737</commentid>
    <comment_count>19</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-29 20:25:57 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #18)
&gt; Comment on attachment 439688 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=439688&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:149
&gt; &gt;&gt; +    m_sourceApplicationBundleID = appBundleIDForTesting;
&gt; &gt; 
&gt; &gt; It needs to check that it&apos;s running a test here too. Otherwise it&apos;s possible to store a click for arbitrary bundle IDs.
&gt; 
&gt; This is only called if the manager&apos;s
&gt; m_privateClickMeasurementAppBundleIDForTesting has been set, which can only
&gt; be set through
&gt; NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting.

In our current benign, mistake-free code, yes. I want to make sure no code, good or bad, can call that setter unless it&apos;s a test client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798740</commentid>
    <comment_count>20</comment_count>
      <attachid>439695</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-29 20:38:38 -0700</bug_when>
    <thetext>Created attachment 439695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798741</commentid>
    <comment_count>21</comment_count>
      <attachid>439696</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-29 20:43:24 -0700</bug_when>
    <thetext>Created attachment 439696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798896</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-30 09:22:11 -0700</bug_when>
    <thetext>Committed r283316 (242341@main): &lt;https://commits.webkit.org/242341@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439696.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439544</attachid>
            <date>2021-09-28 16:49:03 -0700</date>
            <delta_ts>2021-09-28 17:19:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230778-20210928164903.patch</filename>
            <type>text/plain</type>
            <size>70626</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODcxMzkxNmMwN2Q1NTli
Mjg4ZmQxNGY0ZTY3NzQ1M2IyOTdmODI2My4uZjYzMTI3YzFhNjQ1ZmYxNDI5ZjUxNmI4ZGY5MzQy
NmU1MmM3NjA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTA5LTI4ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogVGFrZSBhcHAg
YnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIG1hdGNoaW5nIHRyaWdnZXJpbmcgZXZl
bnRzIHdpdGggcGVuZGluZyBjbGlja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMDc3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9jb21taXRzLndlYmtpdC5vcmcvcjI4Mjg4NCBhZGRlZCBhcHAgYnVuZGxlIElEcyB0byB1bmF0
dHJpYnV0ZWQKKyAgICAgICAgYW5kIGF0dHJpYnV0ZWQgY2xpY2tzIGluIFBDTS4gVGhpcyBwYXRj
aCBtYWtlcyBzdXJlIHdlIHRha2UgdGhvc2UgSURzCisgICAgICAgIGludG8gY29uc2lkZXJhdGlv
biBpbiBQQ006OkRhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLgor
CisgICAgICAgIFRoZSBXZWJDb3JlIHBhcnQgbWFrZXMgc3VyZSB0aGF0IGEgdGVtcG9yYXJ5IGFk
IGJ1bmRsZSBJRCBjYW4gYmUgc2V0CisgICAgICAgIG9uIGF0dHJpYnV0aW9ucyB0aGF0IGdldCBz
dG9yZWQgaW4gUENNJ3MgZGF0YWJhc2UuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sCisKKyAgICAg
ICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSURG
b3JUZXN0aW5nKToKKyAgICAgICAgICAgIFNldHMgaXRzIG93biBvcHRpb25hbCBtX3NvdXJjZUFw
cGxpY2F0aW9uQnVuZGxlSURGb3JUZXN0aW5nLgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgY29uc3QpOgorICAgICAgICAgICAgTm93IHJl
dHVybnMgdGhlIHRlc3QgSUQgaWYgaXQncyBzZXQsIG90aGVyd2lzZSB0aGUgcmVhbCBJRC4KKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmRlY29kZSk6CisgICAg
ICAgICAgICBDb2RlYyBmb3IgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlERm9yVGVzdGluZy4K
KwogMjAyMS0wOS0yOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgTW92ZSBgRHJhd0dseXBoc1JlY29yZGVyYCBvdXRzaWRlIG9mIGBEaXNwbGF5TGlzdGAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggMTczZjRjZTIwYzE3OTU0Nzk1NWMwMWVmYmIzMThhM2FjYzJiM2M2NC4uZjUyYzhl
MTAwNWE3N2RmNzkzMDMwZjI1MDgxNzI4MjAyZTExOTg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2
MiBAQAorMjAyMS0wOS0yOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBQQ006IFRha2UgYXBwIGJ1bmRsZSBJRCBpbnRvIGNvbnNpZGVyYXRpb24gd2hlbiBt
YXRjaGluZyB0cmlnZ2VyaW5nIGV2ZW50cyB3aXRoIHBlbmRpbmcgY2xpY2tzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3NzgKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzNTE2NTI4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyODI4ODQgYWRkZWQg
YXBwIGJ1bmRsZSBJRHMgdG8gdW5hdHRyaWJ1dGVkCisgICAgICAgIGFuZCBhdHRyaWJ1dGVkIGNs
aWNrcyBpbiBQQ00uIFRoaXMgcGF0Y2ggbWFrZXMgc3VyZSB3ZSB0YWtlIHRob3NlIElEcworICAg
ICAgICBpbnRvIGNvbnNpZGVyYXRpb24gaW4gUENNOjpEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoKS4KKworICAgICAgICBBIGxvdCBvZiB0aGUgV2ViS2l0IHBhcnQg
aXM6CisgICAgICAgIC0gUGlwaW5nIHRocm91Z2ggYXBwIGJ1bmRsZSBJRHMgZnJvbSB0aGUgbmV0
d29yayBzZXNzaW9uIHRvIHRoZSBQQ00KKyAgICAgICAgICAgIGRhdGFiYXNlIHdoZXJlIHRoZSBJ
RCB3aWxsIGJlIG1hdGNoZWQgYWdhaW5zdCBzdG9yZWQgYXBwIGJ1bmRsZSBJRHMuCisgICAgICAg
IC0gUGlwaW5nIHRocm91Z2ggdGVzdCBjb25maWd1cmF0aW9uIGZvciBhcHAgYnVuZGxlIElELgor
CisgICAgICAgIFRoZSByZWFsIGNoYW5nZSBpcyBpbiBQQ006OkRhdGFiYXNlIHdoaWNoIGlzIGV4
cGxhaW5lZCBiZWxvdy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnN0b3JlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6aGFuZGxlUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5n
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjpmaW5k
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAgICAgTm93IHRha2VzIGFuIGFwcCBi
dW5kbGUgSUQgc3VwcGxpZWQgZnJvbSB0aGUgbmV0d29yayBzZXNzaW9uIGFuZAorICAgICAgICAg
ICAgaW5jbHVkZXMgaXQgaW4gdGhlIGRhdGFiYXNlIHF1ZXJ5IHRvIGZpbmQgbWF0Y2hpbmcgZW50
cmllcy4gSWYgYW5kCisgICAgICAgICAgICBhdHRyaWJ1dGlvbiB3YXMgc2F2ZWQgd2l0aCBhcHAg
YnVuZGxlIElEIFhZWiwgaXQgc2hvdWxkIG9ubHkgYmUKKyAgICAgICAgICAgIGJlIGNvbnZlcnRl
ZCBpbiBhbiBhcHBsaWNhdGlvbiB3aXRoIGFwcCBidW5kbGUgSUQgWFlaLgorICAgICAgICAoV2Vi
S2l0OjpQQ006OkRhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6Cisg
ICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbGxzIFBDTTo6RGF0YWJhc2U6OmZpbmRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCgpCisgICAgICAgICAgICB3aGljaCBuZWVkcyB0aGUgYXBwIGJ1bmRs
ZSBJRCBzbyB0aGF0IElEIGlzIGZvcndhcmRlZCB0aHJvdWdoLgorICAgICAgICAoV2ViS2l0OjpQ
Q006OkRhdGFiYXNlOjpyZW1vdmVVbmF0dHJpYnV0ZWQpOgorICAgICAgICAgICAgUmVtb3ZhbCBh
bHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50RGF0YWJhc2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRsZUF0
dHJpYnV0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjphdHRyaWJ1dGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlckludGVyZmFjZS5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNl
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
Q006Ok1hbmFnZXJQcm94eTo6aGFuZGxlQXR0cmlidXRpb24pOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlclByb3h5Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlBDTTo6U3RvcmU6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6Cisg
ICAgICAgIChXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorCiAyMDIxLTA5LTI4ICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRkIFNQSSB0byBzZWxl
Y3QgYSB0YWIgY3JlYXRlZCBieSBfV0tJbnNwZWN0b3JFeHRlbnNpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDBhNzgxNDg4
M2ExNDM5NDliMmQ5Yjc1NWY5NzdjNDBjNTk4NjMwYWQuLmQxMjY1YzRhOTkzZGFiYTc3YjQ1NDQz
NmI4MjkxNWVjZWQ4OWU0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByaXZh
dGVDbGlja01lYXN1cmVtZW50LmgiCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAi
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oIgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgogI2luY2x1ZGUgPHd0
Zi9FeHBlY3RlZC5oPgpAQCAtMTQ0LDYgKzE0NSwxOSBAQCBib29sIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpoYXNQcmV2aW91c2x5QmVlblJlcG9ydGVkKCkKICAgICByZXR1cm4gIW1fdGltZXNU
b1NlbmQuc291cmNlRWFybGllc3RUaW1lVG9TZW5kIHx8ICFtX3RpbWVzVG9TZW5kLmRlc3RpbmF0
aW9uRWFybGllc3RUaW1lVG9TZW5kOwogfQogCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlERm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIGFw
cEJ1bmRsZUlEKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIC8vIE1ha2Ugc3VyZSBvdGhl
ciBjbGllbnRzIGNhbm5vdCBjaGFuZ2UgdGhlaXIgYXBwIGJ1bmRsZSBJRCBpbiB0aGUgZXllcyBv
ZiBQQ00uCisgICAgUkVMRUFTRV9BU1NFUlQoV2ViQ29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyKCkgPT0gImNvbS5hcHBsZS5XZWJLaXQuV2ViS2l0VGVzdFJ1bm5lciJfcyk7CisjZW5k
aWYKKyAgICBpZiAoYXBwQnVuZGxlSUQuaXNFbXB0eSgpKQorICAgICAgICBtX3NvdXJjZUFwcGxp
Y2F0aW9uQnVuZGxlSURGb3JUZXN0aW5nID0gc3RkOjpudWxsb3B0OworICAgIGVsc2UKKyAgICAg
ICAgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlERm9yVGVzdGluZyA9IGFwcEJ1bmRsZUlEOwor
fQorCisKIHN0YXRpYyBTZWNvbmRzIHJhbmRvbWx5QmV0d2VlblR3ZW50eUZvdXJBbmRGb3J0eUVp
Z2h0SG91cnMoKQogewogICAgIHJldHVybiAyNF9oICsgU2Vjb25kcyhyYW5kb21OdW1iZXIoKSAq
ICgyNF9oKS52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmgKaW5kZXggMDZiYmZmN2M1MDQ3NmE5YzI4MmFjN2JiYWYyYjRlMTQzNjBi
MmQ0ZS4uOGIyMjgwMGMzZjU5ZTRiNDQyM2JhNTBjZThjZWYwMjZlNTI2MGFmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTM0MCw3
ICszNDAsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU291cmNlSUQmIHNvdXJjZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2VJRDsgfQogICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8QXR0cmlidXRp
b25UcmlnZ2VyRGF0YT4mIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoKSBjb25zdCB7IHJldHVybiBt
X2F0dHJpYnV0aW9uVHJpZ2dlckRhdGE7IH0KICAgICB2b2lkIHNldEF0dHJpYnV0aW9uKEF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSB7IG1fYXR0cmlidXRp
b25UcmlnZ2VyRGF0YSA9IFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSk7IH0KLSAgICBj
b25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQoKSBjb25zdCB7IHJldHVybiBt
X3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQ7IH0KKyAgICBjb25zdCBTdHJpbmcmIHNvdXJjZUFw
cGxpY2F0aW9uQnVuZGxlSUQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUFwcGxpY2F0aW9uQnVu
ZGxlSURGb3JUZXN0aW5nID8gKm1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJREZvclRlc3Rpbmcg
OiBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQ7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSURGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgYXBw
QnVuZGxlSUQpOwogCiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VEZXNjcmlwdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlRGVzY3JpcHRpb247IH0KICAgICBjb25zdCBTdHJpbmcmIHB1cmNo
YXNlcigpIGNvbnN0IHsgcmV0dXJuIG1fcHVyY2hhc2VyOyB9CkBAIC00MjAsNiArNDIxLDcgQEAg
cHJpdmF0ZToKICAgICBTb3VyY2VVbmxpbmthYmxlVG9rZW4gbV9zb3VyY2VVbmxpbmthYmxlVG9r
ZW47CiAgICAgc3RkOjpvcHRpb25hbDxTb3VyY2VTZWNyZXRUb2tlbj4gbV9zb3VyY2VTZWNyZXRU
b2tlbjsKICAgICBTdHJpbmcgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEOworICAgIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSURGb3JUZXN0aW5nOwog
fTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KQEAgLTQzNSw2ICs0MzcsNyBAQCB2b2lkIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICAgICAgPDwgbV9pc0VwaGVtZXJhbAogICAgICAgICA8PCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRh
dGEKICAgICAgICAgPDwgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlECisgICAgICAgIDw8IG1f
c291cmNlQXBwbGljYXRpb25CdW5kbGVJREZvclRlc3RpbmcKICAgICAgICAgPDwgbV90aW1lc1Rv
U2VuZDsKIH0KIApAQCAtNDkxLDYgKzQ5NCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlj
a01lYXN1cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVjb2RlKERlY29kZXImCiAg
ICAgaWYgKCFzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCisgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFN0cmluZz4+IHNvdXJj
ZUFwcGxpY2F0aW9uQnVuZGxlSURGb3JUZXN0aW5nOworICAgIGRlY29kZXIgPj4gc291cmNlQXBw
bGljYXRpb25CdW5kbGVJREZvclRlc3Rpbmc7CisgICAgaWYgKCFzb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlERm9yVGVzdGluZykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAgIHN0
ZDo6b3B0aW9uYWw8QXR0cmlidXRpb25UaW1lVG9TZW5kRGF0YT4gdGltZXNUb1NlbmQ7CiAgICAg
ZGVjb2RlciA+PiB0aW1lc1RvU2VuZDsKICAgICBpZiAoIXRpbWVzVG9TZW5kKQpAQCAtNTA5LDcg
KzUxNyw4IEBAIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpkZWNvZGUoRGVjb2RlciYKICAgICBhdHRyaWJ1dGlvbi5tX2VwaGVt
ZXJhbFNvdXJjZU5vbmNlID0gV1RGTW92ZSgqZXBoZW1lcmFsU291cmNlTm9uY2UpOwogICAgIGF0
dHJpYnV0aW9uLm1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUoKmF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEpOwogICAgIGF0dHJpYnV0aW9uLm1fdGltZXNUb1NlbmQgPSBXVEZNb3ZlKCp0
aW1lc1RvU2VuZCk7Ci0gICAgCisgICAgYXR0cmlidXRpb24ubV9zb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlERm9yVGVzdGluZyA9IFdURk1vdmUoKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSURGb3JU
ZXN0aW5nKTsKKwogICAgIHJldHVybiBhdHRyaWJ1dGlvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBkYzMxMzUxOWExYzM3
NDgzMWMzN2FkODlkN2EyYWMxYTdlMmYxNmQ5Li5jMTYxODQ4M2U2ZTNhNmMwNzY4ZGU2YjM3Mjgz
OTU4MmM3NzRkYzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcApAQCAtMjY4Niw2ICsyNjg2LDE0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBTdHJpbmcmJiBhcHBCdW5kbGVJREZvclRlc3RpbmcsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoYXV0byog
c2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCisgICAgICAgIHNlc3Npb24tPnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFdURk1vdmUoYXBw
QnVuZGxlSURGb3JUZXN0aW5nKSk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCiB2
b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRLZXB0QWxpdmVMb2FkKFJlZjxOZXR3b3JrUmVzb3VyY2VM
b2FkZXI+JiYgbG9hZGVyKQogewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24obG9hZGVyLT5zZXNzaW9uSUQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggN2UwYzE5OTJjMmUwNGUyYmZjZDM4YjkyMmM4Y2Y0ZTg3
ZTVkNGZhMS4uN2VlNzkxYWQ5OGVjZjQ3YmM5ODNkYzZiNzQzZDNmY2Q1N2ZmYTZjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzUwLDYg
KzM1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0
cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgVVJMJiYgc291cmNl
VVJMLCBVUkwmJiBkZXN0aW5hdGlvblVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgU3Ry
aW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2ln
bmF0dXJlLCBTdHJpbmcmJiBrZXlJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklELCBTdHJpbmcmJiBhcHBCdW5kbGVJREZvclRlc3RpbmcsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZVF1b3RhTWFu
YWdlcj4gc3RvcmFnZVF1b3RhTWFuYWdlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDIyZWE5NzNkNDk1M2M0ODI4NzM2
YzJjMzA2YTM2NmMxYTZkYWU4NDkuLjgyY2RjM2Y1YWE3MWEyMGE5Y2QxNzBlN2VlNjNhMjgwZjA1
NzNlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTcxLDYgKzE3MSw3IEBAIG1lc3NhZ2VzIC0+IE5l
dHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVUkwgc291cmNlVVJMLCBVUkwgZGVzdGluYXRpb25VUkwpIC0+ICgpIEFzeW5jCiAgICAg
TWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNldFBDTUZyYXVkUHJldmVudGlvblZh
bHVlc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgc2VjcmV0VG9r
ZW4sIFN0cmluZyB1bmxpbmthYmxlVG9rZW4sIFN0cmluZyBzaWduYXR1cmUsIFN0cmluZyBrZXlJ
RCkgLT4gKCkgQXN5bmMKKyAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlE
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBhcHBCdW5kbGVJREZv
clRlc3RpbmcpIC0+ICgpIEFzeW5jCiAgICAgR2V0TG9jYWxTdG9yYWdlT3JpZ2luRGV0YWlscyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8V2ViS2l0OjpMb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXI6Ok9yaWdpbkRldGFpbHM+IGRldGFpbHMpIEFzeW5jCiAKICAgICBTZXRT
ZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0Rm9yVGVzdGluZyhTZWNvbmRzIHNlY29uZHMpIC0+ICgp
IFN5bmNocm9ub3VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb24uY3BwCmluZGV4IGU4YjQ5ZWUwZTUyODQxNDMyYWNhMWUwMWExY2EyZDVjNDc2NTVjZTQu
LjY4OTIyMGFmYTJlMDJlOTgxODhhYTFiZWM1ZWJmYWRkNTUwZWU0YjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC00NCw2ICs0NCw3
IEBACiAjaW5jbHVkZSAiV2ViU29ja2V0VGFzay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2ll
SmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25Db2NvYS5oIgpAQCAtMzE4LDEyICszMTksMTQgQEAg
dm9pZCBOZXR3b3JrU2Vzc2lvbjo6cmVzZXRDTkFNRURvbWFpbkRhdGEoKQogCiB2b2lkIE5ldHdv
cmtTZXNzaW9uOjpzdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50JiYgdW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCiB7
CisgICAgaWYgKG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmcp
CisgICAgICAgIHVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50LnNldFNvdXJjZUFw
cGxpY2F0aW9uQnVuZGxlSURGb3JUZXN0aW5nKCptX3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBw
QnVuZGxlSURGb3JUZXN0aW5nKTsKICAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLnN0b3Jl
VW5hdHRyaWJ1dGVkKFdURk1vdmUodW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQp
KTsKIH0KIAogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6aGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb252ZXJzaW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCkKIHsKLSAgICBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCgpLmhhbmRsZUF0dHJpYnV0aW9uKFdURk1vdmUoYXR0cmlidXRp
b25UcmlnZ2VyRGF0YSksIHJlcXVlc3RVUkwsIFJlZ2lzdHJhYmxlRG9tYWluKHJlZGlyZWN0UmVx
dWVzdC51cmwoKSksIHJlZGlyZWN0UmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpKTsKKyAg
ICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLmhhbmRsZUF0dHJpYnV0aW9uKFdURk1vdmUoYXR0
cmlidXRpb25UcmlnZ2VyRGF0YSksIHJlcXVlc3RVUkwsIFJlZ2lzdHJhYmxlRG9tYWluKHJlZGly
ZWN0UmVxdWVzdC51cmwoKSksIHJlZGlyZWN0UmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygp
LCBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nID8gKm1fcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcgOiBXZWJDb3JlOjphcHBs
aWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb246OmR1
bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0zOTIsNiArMzk1LDE4IEBAIHZvaWQgTmV0d29ya1Nl
c3Npb246OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBX
ZWJDb3JlOjpDCiAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5hbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY2VydGlmaWNhdGVJbmZvKTsKIH0KIAordm9pZCBO
ZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRl
c3RpbmcoU3RyaW5nJiYgYXBwQnVuZGxlSURGb3JUZXN0aW5nKQoreworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIC8vIE1ha2Ugc3VyZSBvdGhlciBjbGllbnRzIGNhbm5vdCBjaGFuZ2UgdGhlaXIg
YXBwIGJ1bmRsZSBJRCBpbiB0aGUgZXllcyBvZiBQQ00uCisgICAgUkVMRUFTRV9BU1NFUlQoV2Vi
Q29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgPT0gImNvbS5hcHBsZS5XZWJLaXQu
V2ViS2l0VGVzdFJ1bm5lciJfcyk7CisjZW5kaWYKKyAgICBpZiAoYXBwQnVuZGxlSURGb3JUZXN0
aW5nLmlzRW1wdHkoKSkKKyAgICAgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZyA9IHN0ZDo6bnVsbG9wdDsKKyAgICBlbHNlCisgICAgICAgIG1fcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcgPSBXVEZNb3ZlKGFwcEJ1bmRs
ZUlERm9yVGVzdGluZyk7Cit9CisKIHZvaWQgTmV0d29ya1Nlc3Npb246OmFkZEtlcHRBbGl2ZUxv
YWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpCiB7CiAgICAgQVNTRVJUKG1f
c2Vzc2lvbklEID09IGxvYWRlci0+c2Vzc2lvbklEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDVlY2UxNDRjZmNiYjk1MTY5Nzg0ZDRj
OGU3Mjc0YWJkN2JkYmU5MTIuLjY0MjQ5YTc0N2U0OWNmOTc4NWQ4ZTVjMjdlZTQ0ZmM0YzM4NmYy
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgK
QEAgLTE0MSw2ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRp
b25WYWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYmIHVubGlua2FibGVUb2tlbiwgU3RyaW5nJiYgc2Vj
cmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5nJiYga2V5SUQpOwogICAgIHZvaWQg
ZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKTsK
ICAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25z
dCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFN0cmluZyYmKTsKIAogICAgIHZvaWQgYWRk
S2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPiYmKTsKICAgICB2b2lkIHJl
bW92ZUtlcHRBbGl2ZUxvYWQoTmV0d29ya1Jlc291cmNlTG9hZGVyJik7CkBAIC0yMTMsNiArMjE0
LDcgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAgICAgYm9vbCBtX2lzU3RhbGVXaGlsZVJldmFsaWRh
dGVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBVbmlxdWVSZWY8UENNOjpNYW5hZ2VySW50ZXJmYWNl
PiBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBt
X3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOwogCiAgICAgSGFz
aFNldDxSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPj4gbV9rZXB0QWxpdmVMb2FkczsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREYXRhYmFzZS5jcHAKaW5kZXggYTc0ZTYzMWJhYWQzZTkyMzgxYmJlNDBhZmY3YzRhMjgz
MTkwMDRlMi4uN2RlNmZlZTZjNDM2YWI4MTE3NWE3MmRhYmNkYzZhNGU4NWJiNTRiYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50RGF0YWJhc2UuY3BwCkBAIC00MywxOCArNDMsMTggQEAgY29uc3RleHByIGF1dG8gaW5z
ZXJ0VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSA9ICJJTlNFUlQgT1Ig
UkVQTEEKICAgICAic291cmNlSUQsIHRpbWVPZkFkQ2xpY2ssIHRva2VuLCBzaWduYXR1cmUsIGtl
eUlELCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKSBWQUxVRVMgKD8sID8sID8sID8sID8sID8s
ID8sID8pIl9zOwogY29uc3RleHByIGF1dG8gaW5zZXJ0QXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50UXVlcnkgPSAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyBBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgKHNvdXJjZVNpdGVEb21haW5JRCwgZGVzdGluYXRpb25TaXRlRG9t
YWluSUQsICIKICAgICAic291cmNlSUQsIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIHByaW9yaXR5
LCB0aW1lT2ZBZENsaWNrLCBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJjZSwgdG9rZW4sIHNpZ25h
dHVyZSwga2V5SUQsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24sIHNvdXJjZUFwcGxp
Y2F0aW9uQnVuZGxlSUQpIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywg
PykiX3M7Ci1jb25zdGV4cHIgYXV0byBmaW5kVW5hdHRyaWJ1dGVkUXVlcnkgPSAiU0VMRUNUICog
RlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRl
RG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8iX3M7Ci1jb25zdGV4
cHIgYXV0byBmaW5kQXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRl
c3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIHJlbW92ZVVuYXR0
cmlidXRlZFF1ZXJ5ID0gIkRFTEVURSBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURv
bWFpbklEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIGZpbmRVbmF0dHJpYnV0ZWRRdWVyeSA9ICJT
RUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNv
dXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQg
c291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBmaW5kQXR0
cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURv
bWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4
cHIgYXV0byByZW1vdmVVbmF0dHJpYnV0ZWRRdWVyeSA9ICJERUxFVEUgRlJPTSBVbmF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFO
RCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SUQgPSA/Il9zOwogY29uc3RleHByIGF1dG8gYWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50UXVlcnkgPSAiU0VMRUNUICosIE1JTihlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJjZSwg
ZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlvbikgYXMgbWluVmFsICIKICAgICAiRlJPTSBB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgZWFybGllc3RUaW1lVG9TZW5k
VG9Tb3VyY2UgSVMgTk9UIE5VTEwgQU5EIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24g
SVMgTk9UIE5VTEwgIgogICAgICJVTklPTiBBTEwgU0VMRUNUICosIGVhcmxpZXN0VGltZVRvU2Vu
ZFRvU291cmNlIGFzIG1pblZhbCBGUk9NIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCBXSEVSRSBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIElTIE5VTEwgIgogICAgICJV
TklPTiBBTEwgU0VMRUNUICosIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gYXMgbWlu
VmFsIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIGVhcmxpZXN0
VGltZVRvU2VuZFRvU291cmNlIElTIE5VTEwgT1JERVIgQlkgbWluVmFsIl9zOwogY29uc3RleHBy
IGF1dG8gYWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvbnNR
dWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
Il9zOwogY29uc3RleHByIGF1dG8gY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRR
dWVyeSA9ICJERUxFVEUgRlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBX
SEVSRSA/ID4gdGltZU9mQWRDbGljayJfczsKLWNvbnN0ZXhwciBhdXRvIG1hcmtSZXBvcnRBc1Nl
bnRUb1NvdXJjZVF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlID0gbnVsbCBXSEVSRSBzb3VyY2VTaXRl
RG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8iX3M7Ci1jb25zdGV4
cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvblF1ZXJ5ID0gIlVQREFURSBBdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVz
dGluYXRpb24gPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0
aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIGVhcmxpZXN0VGltZXNUb1Nl
bmRRdWVyeSA9ICJTRUxFQ1QgZWFybGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UsIGVhcmxpZXN0VGlt
ZVRvU2VuZFRvRGVzdGluYXRpb24gRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRlRG9tYWlu
SUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gbWFya1JlcG9ydEFzU2VudFRvU291cmNlUXVlcnkg
PSAiVVBEQVRFIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBTRVQgZWFybGllc3RU
aW1lVG9TZW5kVG9Tb3VyY2UgPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5E
IGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJ
RCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvblF1
ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVhcmxp
ZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVEb21haW5J
RCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRp
b25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBlYXJsaWVzdFRpbWVzVG9TZW5kUXVl
cnkgPSAiU0VMRUNUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlLCBlYXJsaWVzdFRpbWVUb1Nl
bmRUb0Rlc3RpbmF0aW9uIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdI
RVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0g
PyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7CiBjb25zdGV4cHIgYXV0byBk
b21haW5JREZyb21TdHJpbmdRdWVyeSA9ICJTRUxFQ1QgZG9tYWluSUQgRlJPTSBQQ01PYnNlcnZl
ZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwogY29uc3RleHByIGF1dG8g
ZG9tYWluU3RyaW5nRnJvbURvbWFpbklEUXVlcnkgPSAiU0VMRUNUIHJlZ2lzdHJhYmxlRG9tYWlu
IEZST00gUENNT2JzZXJ2ZWREb21haW5zIFdIRVJFIGRvbWFpbklEID0gPyJfczsKIGNvbnN0ZXhw
ciBhdXRvIGNyZWF0ZVVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gIkNSRUFU
RSBUQUJMRSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAoIgpAQCAtMjM3LDcg
KzIzNyw3IEBAIHZvaWQgRGF0YWJhc2U6Om1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKQogICAgIH0KIH0KIAotc3RkOjpwYWlyPHN0
ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
Piwgc3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Pj4gRGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3Qg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25T
aXRlJiBkZXN0aW5hdGlvblNpdGUpCitzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6
VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdGlvbmFsPERhdGFi
YXNlOjpBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+PiBEYXRhYmFzZTo6ZmluZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmIGRlc3RpbmF0aW9uU2l0ZSwg
Y29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgYXV0byBzb3Vy
Y2VTaXRlRG9tYWluSUQgPSBkb21haW5JRChzb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluKTsK
QEAgLTI0OCw3ICsyNDgsOCBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6VW5h
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdAogICAgIGF1dG8gZmlu
ZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX2Zp
bmRVbmF0dHJpYnV0ZWRTdGF0ZW1lbnQsIGZpbmRVbmF0dHJpYnV0ZWRRdWVyeSwgImZpbmRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CiAgICAgaWYgKCFmaW5kVW5hdHRyaWJ1dGVkU2NvcGVk
U3RhdGVtZW50CiAgICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJp
bmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IGZp
bmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0
ZURvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgfHwgZmluZFVuYXR0cmlidXRlZFNj
b3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNR
TElURV9PSworICAgICAgICB8fCBmaW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5k
VGV4dCgzLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpICE9IFNRTElURV9PSykgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIiVwIC0gRGF0
YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBmaW5kVW5hdHRyaWJ1dGVkUXVlcnks
IGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAg
LTI1Niw3ICsyNTcsOCBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6VW5hdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdAogICAgIGF1dG8gZmluZEF0
dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV9maW5kQXR0
cmlidXRlZFN0YXRlbWVudCwgZmluZEF0dHJpYnV0ZWRRdWVyeSwgImZpbmRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCJfcyk7CiAgICAgaWYgKCFmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudAog
ICAgICAgICB8fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCAqc291
cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgZmluZEF0dHJpYnV0ZWRT
Y29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBT
UUxJVEVfT0spIHsKKyAgICAgICAgfHwgZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJp
bmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAg
fHwgZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDMsIGFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllcikgIT0gU1FMSVRFX09LKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiJXAgLSBEYXRhYmFzZTo6ZmluZFByaXZhdGVD
bGlja01lYXN1cmVtZW50IGZpbmRBdHRyaWJ1dGVkUXVlcnksIGVycm9yIG1lc3NhZ2U6ICUiIFBS
SVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTI3Miw3ICsyNzQsNyBAQCBzdGQ6
OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ+LCBzdGQ6Om9wdAogICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcih1bmF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KTsKIH0KIAotc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+
IERhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3Qg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25T
aXRlJiBkZXN0aW5hdGlvblNpdGUsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKK3N0ZDo6cGFp
cjxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiwgRGVidWdJbmZvPiBEYXRhYmFzZTo6YXR0cmlidXRl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRl
LCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogewogICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogCkBAIC0yOTEsNyArMjkzLDcgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1Vu
dGkKIAogICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNl
Y29uZHNVbnRpbFNlbmREYXRhIHNlY29uZHNVbnRpbFNlbmQgeyBzdGQ6Om51bGxvcHQsIHN0ZDo6
bnVsbG9wdCB9OwogCi0gICAgYXV0byBhdHRyaWJ1dGlvbiA9IGZpbmRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChzb3VyY2VTaXRlLCBkZXN0aW5hdGlvblNpdGUpOworICAgIGF1dG8gYXR0cmlidXRp
b24gPSBmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25T
aXRlLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpOwogICAgIGF1dG8mIHByZXZpb3VzbHlV
bmF0dHJpYnV0ZWQgPSBhdHRyaWJ1dGlvbi5maXJzdDsKICAgICBhdXRvJiBwcmV2aW91c2x5QXR0
cmlidXRlZCA9IGF0dHJpYnV0aW9uLnNlY29uZDsKIApAQCAtMzUwLDYgKzM1Miw3IEBAIHZvaWQg
RGF0YWJhc2U6OnJlbW92ZVVuYXR0cmlidXRlZChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCYgYXR0cmlidXRpb24pCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwg
c2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3VyY2VTaXRlRG9tYWluSUQpICE9IFNRTElU
RV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9u
U2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5i
aW5kVGV4dCgzLCBhdHRyaWJ1dGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKCkpICE9IFNR
TElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9O
RSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
IiVwIC0gRGF0YWJhc2U6OnJlbW92ZVVuYXR0cmlidXRlZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJ
VkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01MjIsNiArNTI1LDcgQEAgdm9pZCBEYXRhYmFz
ZTo6Y2xlYXJTZW50QXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQm
JiBhdHRyaWJ1dGkKIAogICAgIGF1dG8gc291cmNlU2l0ZURvbWFpbklEID0gZG9tYWluSUQoYXR0
cmlidXRpb24uc291cmNlU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluKTsKICAgICBhdXRvIGRlc3Rp
bmF0aW9uU2l0ZURvbWFpbklEID0gZG9tYWluSUQoYXR0cmlidXRpb24uZGVzdGluYXRpb25TaXRl
KCkucmVnaXN0cmFibGVEb21haW4pOworICAgIGF1dG8gc291cmNlQXBwbGljYXRpb25CdW5kbGVJ
RCA9IGF0dHJpYnV0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQoKTsKIAogICAgIGlmICgh
c291cmNlU2l0ZURvbWFpbklEIHx8ICFkZXN0aW5hdGlvblNpdGVEb21haW5JRCkKICAgICAgICAg
cmV0dXJuOwpAQCAtNTMyLDcgKzUzNiw3IEBAIHZvaWQgRGF0YWJhc2U6OmNsZWFyU2VudEF0dHJp
YnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgYXR0cmlidXRpCiAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQotICAgICAgICBtYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UoKnNvdXJjZVNpdGVEb21haW5J
RCwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKTsKKyAgICAgICAgbWFya1JlcG9ydEFzU2VudFRv
U291cmNlKCpzb3VyY2VTaXRlRG9tYWluSUQsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCwgc291
cmNlQXBwbGljYXRpb25CdW5kbGVJRCk7CiAgICAgICAgIHNvdXJjZUVhcmxpZXN0VGltZVRvU2Vu
ZCA9IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25SZXBvcnRFbmRwb2ludDo6RGVzdGluYXRp
b246CkBAIC01NDAsNyArNTQ0LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRp
b24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGkKICAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
Ci0gICAgICAgIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKCpzb3VyY2VTaXRlRG9tYWlu
SUQsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCk7CisgICAgICAgIG1hcmtSZXBvcnRBc1NlbnRU
b0Rlc3RpbmF0aW9uKCpzb3VyY2VTaXRlRG9tYWluSUQsICpkZXN0aW5hdGlvblNpdGVEb21haW5J
RCwgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCk7CiAgICAgICAgIGRlc3RpbmF0aW9uRWFybGll
c3RUaW1lVG9TZW5kID0gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtNTQ4LDE3ICs1NTIsMTgg
QEAgdm9pZCBEYXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGkKICAgICBpZiAoZGVzdGluYXRpb25FYXJsaWVzdFRp
bWVUb1NlbmQgfHwgc291cmNlRWFybGllc3RUaW1lVG9TZW5kKQogICAgICAgICByZXR1cm47CiAK
LSAgICBhdXRvIGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudCA9IG1fZGF0YWJhc2UucHJlcGFyZVN0
YXRlbWVudCgiREVMRVRFIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdI
RVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0g
PyJfcyk7CisgICAgYXV0byBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQgPSBtX2RhdGFiYXNlLnBy
ZXBhcmVTdGF0ZW1lbnQoIkRFTEVURSBGUk9NIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21h
aW5JRCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSA/Il9zKTsKICAgICBpZiAo
IWNsZWFyQXR0cmlidXRlZFN0YXRlbWVudAogICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTdGF0
ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAg
ICAgIHx8IGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25T
aXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTdGF0
ZW1lbnQtPmJpbmRUZXh0KDMsIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpICE9IFNRTElURV9P
SwogICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVf
RE9ORSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCwgIiVwIC0gRGF0YWJhc2U6OmNsZWFyU2VudEF0dHJpYnV0aW9uIGZhaWxlZCB0byBzdGVwLCBl
cnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9CiAK
LXZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKFNvdXJjZURvbWFp
bklEIHNvdXJjZVNpdGVEb21haW5JRCwgRGVzdGluYXRpb25Eb21haW5JRCBkZXN0aW5hdGlvblNp
dGVEb21haW5JRCkKK3ZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9u
KFNvdXJjZURvbWFpbklEIHNvdXJjZVNpdGVEb21haW5JRCwgRGVzdGluYXRpb25Eb21haW5JRCBk
ZXN0aW5hdGlvblNpdGVEb21haW5JRCwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
JiBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogICAgIGF1dG8gc2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50
KG1fbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb25TdGF0ZW1lbnQsIG1hcmtSZXBvcnRBc1Nl
bnRUb0Rlc3RpbmF0aW9uUXVlcnksICJtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbiJfcyk7
CkBAIC01NjYsMTMgKzU3MSwxNCBAQCB2b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9E
ZXN0aW5hdGlvbihTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsCiAgICAgaWYgKCFz
Y29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsIHNv
dXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVu
dC0+YmluZEludCgyLCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAg
ICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgc291cmNlQXBwbGljYXRpb25CdW5k
bGVJRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9
IFNRTElURV9ET05FKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01l
YXN1cmVtZW50LCAiRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uLCBlcnJv
ciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KIAotdm9pZCBEYXRh
YmFzZTo6bWFya1JlcG9ydEFzU2VudFRvU291cmNlKFNvdXJjZURvbWFpbklEIHNvdXJjZVNpdGVE
b21haW5JRCwgRGVzdGluYXRpb25Eb21haW5JRCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCkKK3Zv
aWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZShTb3VyY2VEb21haW5JRCBzb3Vy
Y2VTaXRlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWluSUQgZGVzdGluYXRpb25TaXRlRG9tYWlu
SUQsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYgc291cmNlQXBwbGljYXRpb25C
dW5kbGVJRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBhdXRvIHNj
b3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX21hcmtSZXBvcnRBc1NlbnRU
b1NvdXJjZVN0YXRlbWVudCwgbWFya1JlcG9ydEFzU2VudFRvU291cmNlUXVlcnksICJtYXJrUmVw
b3J0QXNTZW50VG9Tb3VyY2UiX3MpOwpAQCAtNTgwLDYgKzU4Niw3IEBAIHZvaWQgRGF0YWJhc2U6
Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZShTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWlu
SUQsIERlc3RpCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3Rh
dGVtZW50LT5iaW5kSW50KDEsIHNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAg
ICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCBkZXN0aW5hdGlvblNpdGVEb21haW5J
RCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywg
c291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3Bl
ZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1Nl
bnRUb1NvdXJjZSwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTYw
MCw2ICs2MDcsNyBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6U291cmNlRWFy
bGllc3RUaW1lVG9TZW5kPiwgc3RkOjpvcHRpb25hbDxEYXRhYgogICAgIGlmICghc2NvcGVkU3Rh
dGVtZW50CiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCAqc291cmNlU2l0
ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5k
SW50KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8
IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgYXR0cmlidXRpb24uc291cmNlQXBwbGljYXRp
b25CdW5kbGVJRCgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5z
dGVwKCkgIT0gU1FMSVRFX1JPVykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgIkRhdGFiYXNlOjplYXJsaWVzdFRpbWVzVG9TZW5kLCBlcnJvciBt
ZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuaAppbmRleCAy
ZWVkODk0NWRhMGJmZDI1NjFhZDk4NzA0YjhlZjcxMTgwMjE5ZDNhLi44NDAxYmE5ODg2ZGVjNTQ2
ODdmMTEzNmIwMTJlZmFhMDBjZWE0YzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
RGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuaApAQCAtNDIsMTAg
KzQyLDEyIEBAIHB1YmxpYzoKICAgICBEYXRhYmFzZShjb25zdCBTdHJpbmcmIHN0b3JhZ2VEaXJl
Y3RvcnkpOwogICAgIHZpcnR1YWwgfkRhdGFiYXNlKCk7CiAgICAgCisgICAgdXNpbmcgQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyID0gU3RyaW5nOworCiAgICAgc3RhdGljIHZvaWQgaW50ZXJy
dXB0QWxsRGF0YWJhc2VzKCk7CiAKICAgICB2b2lkIGluc2VydFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFByaXZhdGVDbGlja01lYXN1
cmVtZW50QXR0cmlidXRpb25UeXBlKTsKLSAgICBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5k
RGF0YT4sIERlYnVnSW5mbz4gYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3Qg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUm
LCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0
YSYmKTsKKyAgICBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4sIERlYnVnSW5mbz4g
YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBjb25zdCBBcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXImLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRpb25UcmlnZ2VyRGF0YSYmKTsKICAgICBWZWN0b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+IGFsbEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogICAg
IHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluPik7CiAgICAgdm9pZCBjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCgpOwpAQCAtNjYsMTEgKzY4LDExIEBAIHByaXZhdGU6CiAKICAgICBib29sIGNy
ZWF0ZVNjaGVtYSgpIGZpbmFsOwogICAgIHZvaWQgZGVzdHJveVN0YXRlbWVudHMoKSBmaW5hbDsK
LSAgICBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudD4sIHN0ZDo6b3B0aW9uYWw8QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
Pj4gZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJik7CisgICAgc3RkOjpwYWlyPHN0
ZDo6b3B0aW9uYWw8VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9w
dGlvbmFsPEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IGZpbmRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGlvbkRlc3RpbmF0aW9uU2l0ZSYsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYp
OwogICAgIHZvaWQgcmVtb3ZlVW5hdHRyaWJ1dGVkKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50Jik7CiAgICAgU3RyaW5nIGF0dHJpYnV0aW9uVG9TdHJpbmdGb3JUZXN0aW5nKGNvbnN0
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JikgY29uc3Q7Ci0gICAgdm9pZCBtYXJr
UmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbihTb3VyY2VEb21haW5JRCwgRGVzdGluYXRpb25Eb21h
aW5JRCk7Ci0gICAgdm9pZCBtYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UoU291cmNlRG9tYWluSUQs
IERlc3RpbmF0aW9uRG9tYWluSUQpOworICAgIHZvaWQgbWFya1JlcG9ydEFzU2VudFRvRGVzdGlu
YXRpb24oU291cmNlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWluSUQsIGNvbnN0IEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciYpOworICAgIHZvaWQgbWFya1JlcG9ydEFzU2VudFRvU291cmNl
KFNvdXJjZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFpbklELCBjb25zdCBBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXImKTsKICAgICBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxTb3VyY2VFYXJs
aWVzdFRpbWVUb1NlbmQ+LCBzdGQ6Om9wdGlvbmFsPERlc3RpbmF0aW9uRWFybGllc3RUaW1lVG9T
ZW5kPj4gZWFybGllc3RUaW1lc1RvU2VuZChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYpOwogICAgIHN0ZDo6b3B0aW9uYWw8RG9tYWluSUQ+IGVuc3VyZURvbWFpbklEKGNv
bnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CiAgICAgc3RkOjpvcHRpb25hbDxEb21h
aW5JRD4gZG9tYWluSUQoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyLmNwcAppbmRleCBmNDk5ODM5OGU4YzFiM2JkMjI4ZWNhZTY0MjRlNmE1NjBiOTVh
OGI5Li41YTVmNTRmZTA2Y2Y1ODE1YzgwMDEzMWQyODc4NDBjMDgwZmZjMGEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXIuY3BwCkBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXI6Om1pZ3JhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdhY3lTdG8K
ICAgICBzdG9yZSgpLmluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50KFdURk1vdmUobWVhc3Vy
ZW1lbnQpLCB0eXBlKTsKIH0KIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OmhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRy
aWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCkKK3ZvaWQgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgY29uc3QgVVJMJiByZXF1ZXN0
VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJlZGlyZWN0RG9tYWluLCBjb25zdCBV
UkwmIGZpcnN0UGFydHlVUkwsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYgYXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogewogICAgIGlmICghZmVhdHVyZUVuYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRh
JiYKIAogICAgIG1fY2xpZW50LT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShNZXNzYWdlTGV2ZWw6
OkxvZywgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBUcmlnZ2VyaW5nIGV2ZW50IGFjY2Vw
dGVkLiJfcyk7CiAKLSAgICBhdHRyaWJ1dGUoU291cmNlU2l0ZSB7IFdURk1vdmUocmVkaXJlY3RE
b21haW4pIH0sIEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlIHsgZmlyc3RQYXJ0eVVSTCB9LCBX
VEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpKTsKKyAgICBhdHRyaWJ1dGUoU291cmNlU2l0
ZSB7IFdURk1vdmUocmVkaXJlY3REb21haW4pIH0sIEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRl
IHsgZmlyc3RQYXJ0eVVSTCB9LCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBhcHBs
aWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpOwogfQogCiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcjo6c3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpCkBAIC0yNjAsNyAr
MjYwLDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0YXJ0VGltZXIo
U2Vjb25kcyBzZWNvbmRzKQogICAgIG1fZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzVGlt
ZXIuc3RhcnRPbmVTaG90KG1faXNSdW5uaW5nVGVzdCA/IDBfcyA6IHNlY29uZHMpOwogfQogCi12
b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YXR0cmlidXRlKGNvbnN0IFNvdXJj
ZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0
aW5hdGlvblNpdGUsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJE
YXRhKQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmF0dHJpYnV0ZShjb25z
dCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0
ZSYgZGVzdGluYXRpb25TaXRlLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25U
cmlnZ2VyRGF0YSwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAg
ICByZXR1cm47CkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OmF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb24KICAg
ICAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgICAgIAotICAgIHN0b3JlKCkuYXR0cmlidXRl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBXVEZN
b3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBzdGQ6OmV4Y2hhbmdlKG1fZXBoZW1lcmFsTWVh
c3VyZW1lbnQsIHN0ZDo6bnVsbG9wdCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0gKGF1dG8gYXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSwgYXV0byBkZWJ1Z0lu
Zm8pIHsKKyAgICBzdG9yZSgpLmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJj
ZVNpdGUsIGRlc3RpbmF0aW9uU2l0ZSwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLCBXVEZN
b3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBzdGQ6OmV4Y2hhbmdlKG1fZXBoZW1lcmFsTWVh
c3VyZW1lbnQsIHN0ZDo6bnVsbG9wdCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0gKGF1dG8gYXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSwgYXV0byBkZWJ1Z0lu
Zm8pIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXIuaAppbmRleCBiYzViYzllNzRhYzA4MzFhZDdjYjkwMTc2YmExMDk1
NjBjYjE5OWJjLi5iY2I1OWQzODg5NWZiMGYxZDljNmI2ZWU5ZmJkZTg5YzQyNTIyZDc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyLmgKQEAgLTQ1LDggKzQ1LDEwIEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoVW5pcXVlUmVmPFBDTTo6Q2xpZW50PiYmLCBj
b25zdCBTdHJpbmcmIHN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIH5Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXIoKTsKIAorICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9
IFN0cmluZzsKKwogICAgIHZvaWQgc3RvcmVVbmF0dHJpYnV0ZWQoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQmJikgZmluYWw7Ci0gICAgdm9pZCBoYW5kbGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMKSBmaW5hbDsK
KyAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29u
c3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJlZGlyZWN0
RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwog
ICAgIHZvaWQgbWlncmF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50RnJvbUxlZ2FjeVN0b3JhZ2Uo
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvblR5cGUpIGZpbmFsOwpAQCAtNzIsNyArNzQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0
U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpOwogICAgIHZv
aWQgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQm
JiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpOwogICAgIHZvaWQgY2xl
YXJTZW50QXR0cmlidXRpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQpOwotICAgIHZvaWQgYXR0cmli
dXRlKGNvbnN0IFNvdXJjZVNpdGUmLCBjb25zdCBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYs
IEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CisgICAgdm9pZCBhdHRyaWJ1dGUoY29uc3QgU291
cmNlU2l0ZSYsIGNvbnN0IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgQXR0cmlidXRpb25U
cmlnZ2VyRGF0YSYmLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsKICAgICB2
b2lkIGZpcmVDb252ZXJzaW9uUmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYs
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50KTsKICAg
ICB2b2lkIGZpcmVDb252ZXJzaW9uUmVxdWVzdEltcGwoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25SZXBvcnRFbmRwb2lu
dCk7CiAgICAgdm9pZCBmaXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVxdWVzdHMoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcAppbmRleCA2N2E0NjkzMTNjYzgyY2JmZmE0NjQx
YjA4NGFlZDlhYTcwMjI3MmM1Li42ZTkxMmFjYTZiY2FiNDdlZWI2Nzg2MjI2ZTI5YzU2ZWRhMWFi
YjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCkBAIC01MSw3ICs1
MSw3IEBAIEFSR1VNRU5UUyhXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKIEVORAog
CiBGVU5DVElPTihoYW5kbGVBdHRyaWJ1dGlvbikKLUFSR1VNRU5UUyhQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIFVSTCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4sIFVSTCkKK0FSR1VNRU5UUyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXI6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4sIFVSTCwgU3RyaW5nKQogRU5ECiAKIEZVTkNUSU9OKGNsZWFyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VySW50ZXJmYWNlLmgKaW5kZXggNWNmNGUzZGUyMWQwY2MzOTljMjNhZDA5MDdhMzNk
OGVlZjA3YjVhNS4uNTAxZjljZjAyNmU2ZjcyN2UzNTg3YWVjNmU2ODE4MjhiYWIwMzFiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oCkBAIC01MCw5ICs1MCwxMCBAQCBwdWJs
aWM6CiAgICAgdXNpbmcgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDsKICAgICB1c2luZyBSZWdpc3RyYWJsZURvbWFpbiA9IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIFNvdXJjZVNpdGUgPSBXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZTsKKyAgICB1c2luZyBBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIgPSBTdHJpbmc7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RvcmVVbmF0dHJp
YnV0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBo
YW5kbGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVx
dWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5VVJMKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF0dHJp
YnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJlZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZp
cnN0UGFydHlVUkwsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgbWlncmF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50RnJvbUxlZ2FjeVN0b3JhZ2UoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlv
blR5cGUpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKaW5kZXggOTdlZjZlZTY3
MmQ0YjhkYTYwNTNiY2M3NDIzMzg1Y2YwZDc4YmUxYi4uMmIxYzI2NGM4ODk3MjIxZmU4YTI1Y2Jh
Y2NjZGVkNWUwYjcxMmM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKQEAgLTgw
LDkgKzgwLDkgQEAgdm9pZCBNYW5hZ2VyUHJveHk6OnN0b3JlVW5hdHRyaWJ1dGVkKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgcGNtKQogICAgIHNlbmRNZXNzYWdlPE1lc3NhZ2VU
eXBlOjpTdG9yZVVuYXR0cmlidXRlZD4ocGNtKTsKIH0KIAotdm9pZCBNYW5hZ2VyUHJveHk6Omhh
bmRsZUF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhJiYgdHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5VVJMKQordm9pZCBNYW5hZ2VyUHJveHk6OmhhbmRsZUF0dHJpYnV0aW9uKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgdHJpZ2dl
ckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMLCBjb25zdCBBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikKIHsKLSAg
ICBzZW5kTWVzc2FnZTxNZXNzYWdlVHlwZTo6SGFuZGxlQXR0cmlidXRpb24+KHRyaWdnZXJEYXRh
LCByZXF1ZXN0VVJMLCByZWRpcmVjdERvbWFpbiwgZmlyc3RQYXJ0eVVSTCk7CisgICAgc2VuZE1l
c3NhZ2U8TWVzc2FnZVR5cGU6OkhhbmRsZUF0dHJpYnV0aW9uPih0cmlnZ2VyRGF0YSwgcmVxdWVz
dFVSTCwgcmVkaXJlY3REb21haW4sIGZpcnN0UGFydHlVUkwsIGFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcik7CiB9CiAKIHZvaWQgTWFuYWdlclByb3h5OjpjbGVhcihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgK
aW5kZXggN2MwYWYwZjYzOTBkMzZjZGMxZmE2YjYxMDRjMzg0YjYzNjc1ZTUxMC4uYzRmNzI3NGE0
ZWUzOGQyYTBiNmQ0ZjgxZjlkMmI1NGY5ZDY0ZDNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJv
eHkuaApAQCAtMzksOCArMzksMTAgQEAgY2xhc3MgTWFuYWdlclByb3h5IDogcHVibGljIE1hbmFn
ZXJJbnRlcmZhY2UgewogcHVibGljOgogICAgIE1hbmFnZXJQcm94eShjb25zdCBTdHJpbmcmIG1h
Y2hTZXJ2aWNlTmFtZSk7CiAKKyAgICB1c2luZyBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIg
PSBTdHJpbmc7CisKICAgICB2b2lkIHN0b3JlVW5hdHRyaWJ1dGVkKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50JiYpIGZpbmFsOwotICAgIHZvaWQgaGFuZGxlQXR0cmlidXRpb24oV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwg
Y29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJlZGly
ZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwpIGZpbmFsOworICAgIHZvaWQgaGFu
ZGxlQXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEmJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmIHJlZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwsIGNv
bnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXIo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyRm9yUmVn
aXN0cmFibGVEb21haW4oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgbWlncmF0ZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50RnJvbUxlZ2FjeVN0b3JhZ2UoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQmJiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRTdG9yZS5jcHAKaW5kZXggZDg5Mjk1NTk3NmY5MWVhM2RlMDlmMmUxODQyYzI2ZDY3YTc3
Y2Q2NS4uZjkwN2FmZTlhMGQwM2Y3M2E3MTg2Njg5MGFlMDMyNDA5ZjE4MGQwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
U3RvcmUuY3BwCkBAIC05NSw5ICs5NSw5IEBAIHZvaWQgU3RvcmU6Om1hcmtBbGxVbmF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKQogICAgIH0pOwog
fQogCi12b2lkIFN0b3JlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0ZSwg
Y29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGlu
YXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiBlcGhlbWVyYWxN
ZWFzdXJlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRh
PiYmLCBEZWJ1Z0luZm8mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFN0b3JlOjphdHRy
aWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlv
blNpdGUsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYgYXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgZXBoZW1lcmFsTWVhc3VyZW1lbnQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZv
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgc291cmNlU2l0ZSA9IHNvdXJjZVNpdGUuaXNvbGF0ZWRD
b3B5KCksIGRlc3RpbmF0aW9uU2l0ZSA9IGRlc3RpbmF0aW9uU2l0ZS5pc29sYXRlZENvcHkoKSwg
YXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSks
IGVwaGVtZXJhbE1lYXN1cmVtZW50ID0gY3Jvc3NUaHJlYWRDb3B5KGVwaGVtZXJhbE1lYXN1cmVt
ZW50KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkg
bXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9LCBzb3VyY2VTaXRlID0gc291cmNlU2l0ZS5pc29sYXRlZENvcHkoKSwgZGVzdGluYXRpb25T
aXRlID0gZGVzdGluYXRpb25TaXRlLmlzb2xhdGVkQ29weSgpLCBhcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCksIGF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBl
cGhlbWVyYWxNZWFzdXJlbWVudCA9IGNyb3NzVGhyZWFkQ29weShlcGhlbWVyYWxNZWFzdXJlbWVu
dCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11
dGFibGUgewogICAgICAgICBpZiAoIW1fZGF0YWJhc2UpIHsKICAgICAgICAgICAgIHJldHVybiBw
b3N0VGFza1JlcGx5KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6
Om51bGxvcHQsIHsgfSk7CkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBTdG9yZTo6YXR0cmlidXRl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW0KICAgICAgICAgICAgIG1fZGF0YWJhc2UtPmluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50
KFdURk1vdmUoKmVwaGVtZXJhbE1lYXN1cmVtZW50KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
dHRyaWJ1dGlvblR5cGU6OlVuYXR0cmlidXRlZCk7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRv
IFtzZWNvbmRzLCBkZWJ1Z0luZm9dID0gbV9kYXRhYmFzZS0+YXR0cmlidXRlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBXVEZNb3ZlKGF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEpKTsKKyAgICAgICAgYXV0byBbc2Vjb25kcywgZGVidWdJbmZvXSA9IG1f
ZGF0YWJhc2UtPmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUsIGRl
c3RpbmF0aW9uU2l0ZSwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEpKTsKIAogICAgICAgICBwb3N0VGFza1JlcGx5KFtzZWNvbmRzID0g
V1RGTW92ZShzZWNvbmRzKSwgZGVidWdJbmZvID0gZGVidWdJbmZvLmlzb2xhdGVkQ29weSgpLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUg
ewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZWNvbmRzKSwgV1RGTW92
ZShkZWJ1Z0luZm8pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmgKaW5kZXggODMxMzU2ZGNjNmM3MzkxOTc2YmVkMGE4
OGRjMjNkY2JiYzVjMTIyMS4uODRiNzE2NjJkN2ExYTFmNzhiMjNjNTA1ZTZjMDc0M2JjMWZkY2Y5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFN0b3JlLmgKQEAgLTQ3LDExICs0NywxMyBAQCBwdWJsaWM6CiAKICAgICB+U3Rv
cmUoKTsKIAorICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsK
KwogICAgIHN0YXRpYyB2b2lkIHByZXBhcmVGb3JQcm9jZXNzVG9TdXNwZW5kKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgc3RhdGljIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZSgpOwog
CiAgICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCYmLCBXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25UeXBlKTsKLSAgICB2b2lkIGF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNv
bnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3Qg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25T
aXRlJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEmJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4m
JiBlcGhlbWVyYWxNZWFzdXJlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNV
bnRpbFNlbmREYXRhPiYmLCBEZWJ1Z0luZm8mJik+JiYpOworICAgIHZvaWQgYXR0cmlidXRlUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXImLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25Ucmln
Z2VyRGF0YSYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
PiYmIGVwaGVtZXJhbE1lYXN1cmVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25k
c1VudGlsU2VuZERhdGE+JiYsIERlYnVnSW5mbyYmKT4mJik7CiAKICAgICB2b2lkIHByaXZhdGVD
bGlja01lYXN1cmVtZW50VG9TdHJpbmdGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nKT4mJikgY29uc3Q7CiAgICAgdm9pZCBtYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAwMjQ5ZGZlMDFmNDQwZTA4OTU1M2RmNGFjNzk5NjNl
YmI2OTI2NGJiLi5hYjIyOTFlMzQxYjUzMDhiOGU1NWU0NWRhZDlhZmI5ZTQ0Yzk2NjQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTMxMzgsNiArMzEzOCwx
NCBAQCB2b2lkIFdLUGFnZVNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoV0tQ
YWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmCiAgICAgfSk7CiB9CiAKK3ZvaWQgV0tQYWdlU2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tQYWdlUmVmIHBh
Z2VSZWYsIFdLU3RyaW5nUmVmIGFwcEJ1bmRsZUlERm9yVGVzdGluZywgV0tQYWdlU2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywg
dm9pZCogY2FsbGJhY2tDb250ZXh0KQoreworICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKKyAgICB0
b0ltcGwocGFnZVJlZiktPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JU
ZXN0aW5nKHRvV1RGU3RyaW5nKGFwcEJ1bmRsZUlERm9yVGVzdGluZyksIFtjYWxsYmFja0NvbnRl
eHQsIGNhbGxiYWNrXSAoKSB7CisgICAgICAgIGNhbGxiYWNrKGNhbGxiYWNrQ29udGV4dCk7Cisg
ICAgfSk7Cit9CisKIHZvaWQgV0tQYWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdLUGFnZVJl
ZiBwYWdlUmVmLCB1aW50NjRfdCBvcmllbnRhdGlvbikKIHsKICAgICBDUkFTSF9JRl9TVVNQRU5E
RUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKaW5k
ZXggN2YyNDM4OTYwNThlZjA4YTdiZjgxZjVjZTVhY2FkNTgxM2ZiZWRlZi4uNzUzOGVjMDI2Y2Q5
ZGE4MjhlZTY4MzA0ZjBhZWNiOTI4NGFkYWEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaApAQCAtMTkyLDYgKzE5Miw4IEBAIHR5cGVkZWYgdm9p
ZCAoKldLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5n
RnVuY3Rpb24pKHZvCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlTWFya1ByaXZh
dGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywg
dm9pZCogY2FsbGJhY2tDb250ZXh0KTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVNldFBDTUZyYXVk
UHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0
KTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRl
c3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHNlY3JldFRva2VuLCBXS1N0cmluZ1Jl
ZiB1bmxpbmthYmxlVG9rZW4sIFdLU3RyaW5nUmVmIHNpZ25hdHVyZSwgV0tTdHJpbmdSZWYga2V5
SUQsIFdLUGFnZVNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmdGdW5jdGlvbiBj
YWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nRnVuY3Rpb24pKHZv
aWQqIGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZVJlZiwgV0tT
dHJpbmdSZWYgYXBwQnVuZGxlSURGb3JUZXN0aW5nLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxs
YmFja0NvbnRleHQpOwogCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRNb2NrQ2FtZXJhT3JpZW50
YXRpb24oV0tQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IG9yaWVudGF0aW9uKTsKIFdLX0VYUE9SVCBi
b29sIFdLUGFnZUlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKFdLUGFnZVJl
ZiBwYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI3
ZWMyZWNlNTJjN2U2NDk4ZjA5NThjNmEyYjJjZDJiZDQ3ZTFkZGMuLjkzODM0Yjc4ZTEyN2NkMGQ0
MmJiNmYyMDVjMjE5NzVhMGNlMjJiY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtMTA1MTMsNiArMTA1MTMsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNl
dFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiB1bmxpbmth
YmwKICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1
ZXNGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHVubGlua2FibGVU
b2tlbiwgc2VjcmV0VG9rZW4sIHNpZ25hdHVyZSwga2V5SUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIGFwcEJ1bmRsZUlERm9yVGVz
dGluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBw
QnVuZGxlSURGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIGFwcEJ1
bmRsZUlERm9yVGVzdGluZyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogI2lm
IEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVzZXRTcGVl
Y2hTeW50aGVzaXplcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IGYyZGZiMDUxMDg2ZGJmMDhiNTdmOWM1OTkxMzdjNmFiYjFhZTI4NWEuLjNmYmZhZTRmMmVjM2Fi
NWQ2NDE1NjE5MDllMWNlNTRmNzY5OTRjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xNzcyLDYgKzE3NzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3RpbmcoY29uc3Qg
VVJMJiBzb3VyY2VVUkwsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNF
eHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIHVubGlu
a2FibGVUb2tlbiwgY29uc3QgU3RyaW5nJiBzZWNyZXRUb2tlbiwgY29uc3QgU3RyaW5nJiBzaWdu
YXR1cmUsIGNvbnN0IFN0cmluZyYga2V5SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGlu
Zyhjb25zdCBTdHJpbmcmIGFwcEJ1bmRsZUlERm9yVGVzdGluZywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKIAogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIHZvaWQgc3Bl
ZWNoU3ludGhlc2lzVm9pY2VMaXN0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYlNw
ZWVjaFN5bnRoZXNpc1ZvaWNlPiYmKT4mJik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjM0NDE5M2ZhMDBhMjQwMjg4NTU1YzExZDQ0MGJlYTcw
NmVhZGFiNy4uYTgzZDlmN2EwMjA1NmJjODAwZThkODcxYjAxYTMyMmY1OWY5YzczMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDIxLTA5LTI4ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFBDTTogVGFrZSBhcHAgYnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIG1h
dGNoaW5nIHRyaWdnZXJpbmcgZXZlbnRzIHdpdGggcGVuZGluZyBjbGlja3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDc3OAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODM1MTY1Mjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvcjI4Mjg4NCBhZGRlZCBh
cHAgYnVuZGxlIElEcyB0byB1bmF0dHJpYnV0ZWQKKyAgICAgICAgYW5kIGF0dHJpYnV0ZWQgY2xp
Y2tzIGluIFBDTS4gVGhpcyBwYXRjaCBtYWtlcyBzdXJlIHdlIHRha2UgdGhvc2UgSURzCisgICAg
ICAgIGludG8gY29uc2lkZXJhdGlvbiBpbiBQQ006OkRhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCgpLgorCisgICAgICAgIFRoZSBjaGFuZ2VzIGJlbG93IGFyZSBhbGwg
dGVzdCBpbmZyYXN0cnVjdHVyZSB0byBlbmFibGUgVGVzdFJ1bm5lcgorICAgICAgICB0byBydW4g
d2l0aCBkaWZmZXJlbnQgYXBwIGJ1bmRsZSBJRHMgaW4gdGhlIGV5ZXMgb2YgUENNLgorCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlk
UmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMjEtMDkt
MjggIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBBZGQgU1BJ
IHRvIHNlbGVjdCBhIHRhYiBjcmVhdGVkIGJ5IF9XS0luc3BlY3RvckV4dGVuc2lvbgpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggYWJlYmM4ZWFlOTUyOTg3OGI3Njc0ODBjYzkzZDExODQ4
MGEyN2VmNC4uZWFlMmJhODZlMDhjOTg1ZTQwZWIwOWIzMDlmOWFjNDYwZjZjMzI3YiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC00MTYsNiArNDE2LDcgQEAgaW50ZXJmYWNlIFRlc3RS
dW5uZXIgewogICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uUmVwb3J0VVJMc0ZvclRlc3RpbmcoRE9NU3RyaW5nIHNvdXJjZVVSTFN0cmluZywgRE9NU3Ry
aW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nKTsKICAgICB1bmRlZmluZWQgbWFya1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICB1bmRlZmluZWQgc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRGcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKERPTVN0
cmluZyB1bmxpbmthYmxlVG9rZW4sIERPTVN0cmluZyBzZWNyZXRUb2tlbiwgRE9NU3RyaW5nIHNp
Z25hdHVyZSwgRE9NU3RyaW5nIGtleUlEKTsKKyAgICB1bmRlZmluZWQgc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoRE9NU3RyaW5nIGFwcEJ1bmRsZUlEKTsK
IAogICAgIC8vIFNwZWVjaFJlY29nbml0aW9uCiAgICAgdW5kZWZpbmVkIHNldElzU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDk2
NWRmNjE1Yzc1MDA1OGFhNDU4YTBlOTBmYmVkNGJiOGEwNjJiNDIuLmVjODk2ZGM5NDYyNDFiNmRj
Yjk5MjY0MjQ0MDEzYzg5NTg4NTc3ZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMjExNCw2ICsyMTE0LDEyIEBA
IHZvaWQgVGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcmF1ZFByZXZlbnRp
b25WYWx1ZXNGb3JUZXN0aW5nKEpTU3RyCiAgICAgfSkpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6
OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKEpTU3RyaW5n
UmVmIGFwcEJ1bmRsZUlEKQoreworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyIsCisgICAgICAgIHRv
V0soYXBwQnVuZGxlSUQpKTsKK30KKwogYm9vbCBUZXN0UnVubmVyOjpoYXNBcHBCb3VuZFNlc3Np
b24oKQogewogICAgIHJldHVybiBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZVJldHVybmluZ0Jv
b2xlYW4oIkhhc0FwcEJvdW5kU2Vzc2lvbiIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBhOWQzYmY4NWQ2MjM3Mzc5MzNk
Njk2OWU4NzkzZGM3MjhjZDM1OWJkLi43YzE3ZjQyYmVjNGFmMWJlOGYxNzk3NGIxZDQ0OWRkNGQ4
ZTYzODczIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaApAQCAtNTMyLDYgKzUzMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcmtB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwog
ICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFcGhlbWVyYWxNZWFzdXJlbWVudEZv
clRlc3RpbmcoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoSlNTdHJpbmdSZWYgdW5saW5rYWJsZVRv
a2VuLCBKU1N0cmluZ1JlZiBzZWNyZXRUb2tlbiwgSlNTdHJpbmdSZWYgc2lnbmF0dXJlLCBKU1N0
cmluZ1JlZiBrZXlJRCk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1
bmRsZUlERm9yVGVzdGluZyhKU1N0cmluZ1JlZik7CiAgICAgdm9pZCBzaW11bGF0ZVJlc291cmNl
TG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOwogCiAgICAgdm9pZCBzZXRJc1NwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGVmNzM5MGJhYzQyN2VjNzg2MmRlMjA3NTBkZjc3YTJi
ZTk3ZTFkZmUuLmZlYjJhMzk3ZTQyYTM2OGM0MTc5ZWNiMzFkNmQxOTIwNjNmMTlhMDcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zNzQ5LDYgKzM3NDks
MTMgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9y
VGVzdGluZyhXS1N0cmluZ1JlZiB1bmxpbmthYmwKICAgICBydW5VbnRpbChjYWxsYmFja0NvbnRl
eHQuZG9uZSwgbm9UaW1lb3V0KTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tTdHJpbmdSZWYgYXBwQnVu
ZGxlSUQpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0
IGNhbGxiYWNrQ29udGV4dCgqdGhpcyk7CisgICAgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcobV9tYWluV2ViVmlldy0+cGFnZSgpLCBhcHBCdW5k
bGVJRCwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRl
eHQpOworICAgIHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOworfQor
CiBXS1VSTFJlZiBUZXN0Q29udHJvbGxlcjo6Y3VycmVudFRlc3RVUkwoKSBjb25zdAogewogICAg
IHJldHVybiBtX2N1cnJlbnRJbnZvY2F0aW9uID8gbV9jdXJyZW50SW52b2NhdGlvbi0+dXJsKCkg
OiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDk0
ZTEzMDgwMjU0ZTI3YWVmMTUxODZlMmRjNThlMmU3ZDk5MWI1Y2QuLjBhODJmMmRlMTU5MTc3Njcw
Nzg3Y2EwMTliOWIzNzc2NWM3MDkzNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgKQEAgLTM1NSw2ICszNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3RpbmcoV0tVUkxSZWYg
c291cmNlVVJMLCBXS1VSTFJlZiBkZXN0aW5hdGlvblVSTCk7CiAgICAgdm9pZCBtYXJrUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogICAgIHZvaWQgc2V0UENN
RnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhXS1N0cmluZ1JlZiB1bmxpbmthYmxlVG9r
ZW4sIFdLU3RyaW5nUmVmIHNlY3JldFRva2VuLCBXS1N0cmluZ1JlZiBzaWduYXR1cmUsIFdLU3Ry
aW5nUmVmIGtleUlEKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVu
ZGxlSURGb3JUZXN0aW5nKFdLU3RyaW5nUmVmKTsKIAogICAgIHZvaWQgZGlkU2V0QXBwQm91bmRE
b21haW5zKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAKaW5kZXggM2YyZjJiMTdkMzgyYWNiZmQ4ZDY0NzQ4Zjg0MDIwMzQzNzM5MDcxNS4uMzQ1MDY5
MzAwOTkyZmIzZTA3MTNlODMyYzQxN2ZjNTFjMDg4ZjA4YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE0MjMsNiArMTQyMywxMSBAQCBXS1JldGFpblB0
cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdl
RnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nIikpIHsKKyAgICAgICAgVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nKHN0cmluZ1ZhbHVlKG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiU3luY0xvY2FsU3RvcmFnZSIpKSB7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS5zeW5jTG9jYWxTdG9yYWdlKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGY4MDNiMTg5NGYxOGFhMDVlMmE2MzA0Y2VkMTcxM2Y5MDlkOGEwOTQuLjk4MmQyOWJi
MmI3NmNkNTQyZmE5YmJkOGU3YjlkOTVjYjFiMDRiMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAyMS0wOS0yOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBQQ006IFRha2UgYXBwIGJ1bmRsZSBJRCBpbnRvIGNvbnNpZGVyYXRpb24gd2hlbiBtYXRjaGlu
ZyB0cmlnZ2VyaW5nIGV2ZW50cyB3aXRoIHBlbmRpbmcgY2xpY2tzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3NzgKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzgzNTE2NTI4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyODI4ODQgYWRkZWQgYXBwIGJ1
bmRsZSBJRHMgdG8gdW5hdHRyaWJ1dGVkCisgICAgICAgIGFuZCBhdHRyaWJ1dGVkIGNsaWNrcyBp
biBQQ00uIFRoaXMgcGF0Y2ggbWFrZXMgc3VyZSB3ZSB0YWtlIHRob3NlIElEcworICAgICAgICBp
bnRvIGNvbnNpZGVyYXRpb24gaW4gUENNOjpEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5k
bGUtaWRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgICh0ZWFyRG93bkFuZEZpbmlzaCk6
CisKIDIwMjEtMDktMjggIFRydWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNYXJraW5nIG1vcmUgdGVzdHMgY3Jhc2hpbmcgd2l0aCB1bmNhdWdodCBleGNlcHRpb24g
J05TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTNh
NWY0OTAyMDg0Zjk0NTYzYjAzM2YyNjk3NDI4NzBhNjkyNDI3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1h
cHAtYnVuZGxlLWlkcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAorVGVzdHMgcHJpdmF0
ZSBjbGljayBtZWFzdXJlbWVudCB3aXRoIG11bHRpcGxlIGFwcCBidW5kbGUgSURzLCBtYWtpbmcg
c3VyZSBvbmx5IHRoZSBtYXRjaGluZyBJRCBpcyBjb25zaWRlcmVkIGEgbWF0Y2guCisKKworCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorQXR0cmlidXRpb24g
cmVjZWl2ZWQuCitIVFRQX0hPU1Q6IDEyNy4wLjAuMTo4MDAwCitDb250ZW50IHR5cGU6IGFwcGxp
Y2F0aW9uL2pzb24KK1JFUVVFU1RfVVJJOiAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL2NvbnZlcnNpb25SZXBvcnQucHk/cmVjaXBpZW50PUNsaWNrU291cmNlCitObyBjb29raWVz
IGluIGF0dHJpYnV0aW9uIHJlcXVlc3QuCitSZXF1ZXN0IGJvZHk6Cit7InNvdXJjZV9lbmdhZ2Vt
ZW50X3R5cGUiOiJjbGljayIsInNvdXJjZV9zaXRlIjoiMTI3LjAuMC4xIiwic291cmNlX2lkIjoz
MywiYXR0cmlidXRlZF9vbl9zaXRlIjoibG9jYWxob3N0IiwidHJpZ2dlcl9kYXRhIjoxMiwidmVy
c2lvbiI6Mn0KKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0K
K0F0dHJpYnV0aW9uIHJlY2VpdmVkLgorSFRUUF9IT1NUOiBsb2NhbGhvc3Q6ODAwMAorQ29udGVu
dCB0eXBlOiBhcHBsaWNhdGlvbi9qc29uCitSRVFVRVNUX1VSSTogL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnB5P3JlY2lwaWVudD1DbGlja0Rlc3Rp
bmF0aW9uCitObyBjb29raWVzIGluIGF0dHJpYnV0aW9uIHJlcXVlc3QuCitSZXF1ZXN0IGJvZHk6
Cit7InNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiOiJjbGljayIsInNvdXJjZV9zaXRlIjoiMTI3LjAu
MC4xIiwic291cmNlX2lkIjozMywiYXR0cmlidXRlZF9vbl9zaXRlIjoibG9jYWxob3N0IiwidHJp
Z2dlcl9kYXRhIjoxMiwidmVyc2lvbiI6Mn0KKworVW5hdHRyaWJ1dGVkIFByaXZhdGUgQ2xpY2sg
TWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNl
IHNpdGU6IDEyNy4wLjAuMQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNlIElE
OiAyMworTm8gYXR0cmlidXRpb24gdHJpZ2dlciBkYXRhLgorQXBwbGljYXRpb24gYnVuZGxlIGlk
ZW50aWZpZXI6IHRlc3RCdW5kbGVJRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1h
cHAtYnVuZGxlLWlkcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNDcwMzQ3YzAwM2E1OTI1YTZmYjk2MzQ2
MmE2NTM5ZTQzZjc2NTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWwKQEAg
LTAsMCArMSwxMDMgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJs
ZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPlRlc3RzIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgd2l0aCBtdWx0
aXBsZSBhcHAgYnVuZGxlIElEcywgbWFraW5nIHN1cmUgb25seSB0aGUgbWF0Y2hpbmcgSUQgaXMg
Y29uc2lkZXJlZCBhIG1hdGNoLjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsxIiBocmVmPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1
bmRsZS1pZHMuaHRtbD9zdGVwVHdvIiBhdHRyaWJ1dGlvbnNvdXJjZWlkPTIzIGF0dHJpYnV0aW9u
ZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazE8L2E+PGJyPgorPGEgaWQ9
InRhcmdldExpbmsyIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMuaHRtbD9zdGVwRm91ciIgYXR0cmlidXRp
b25zb3VyY2VpZD0zMyBhdHRyaWJ1dGlvbmRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiPkxpbmsyPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAg
IGNvbnN0IGN1cnJlbnRUaW1lTWlsbGlzID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKKyAgICBj
b25zdCBoaWdoRW50cm9weUJpdHMgPSBjdXJyZW50VGltZU1pbGxpcyAtIChNYXRoLmZsb29yKGN1
cnJlbnRUaW1lTWlsbGlzIC8gMTAwMDAwMCkgKiAxMDAwMDAwKTsKKyAgICBjb25zdCBub25jZSA9
IGhpZ2hFbnRyb3B5Qml0cyArICIiICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKTsK
KworICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJG
b3JUZXN0aW5nKHRydWUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAg
IHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVt
ZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRM
ZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxl
bWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVs
cGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9
ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZp
bmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGFwcGVuZElmcmFtZSh1cmwsIG9ubG9hZENhbGxiYWNrKSB7CisgICAgICAgIGxldCBpZnJhbWVF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmcmFt
ZUVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25sb2FkQ2FsbGJhY2spCisgICAgICAg
ICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IG9ubG9hZENhbGxiYWNrOworICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgIH0KKworICAgIGxldCBy
ZXBvcnRzUmVjZWl2ZWQgPSAwOworICAgIGZ1bmN0aW9uIGFwcGVuZENvbnZlcnNpb25EYXRhSWZy
YW1lQW5kRmluaXNoKCkgeworICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rMSIpKTsKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluazIiKSk7Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InBpeGVsIikpOworCisgICAgICAgIC8vIENsaWNrIHNvdXJjZS4KKyAgICAgICAgYXBwZW5kSWZy
YW1lKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL2dldENvbnZlcnNpb25EYXRhLnB5P3RpbWVvdXRfbXM9MjAwMCZyZWNpcGllbnQ9Q2xpY2tT
b3VyY2Umbm9uY2U9IiArIG5vbmNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJlcG9ydHNS
ZWNlaXZlZCsrOworICAgICAgICAgICAgaWYgKHJlcG9ydHNSZWNlaXZlZCA+PSAyKQorICAgICAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gQ2xpY2sg
ZGVzdGluYXRpb24uCisgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5weT90
aW1lb3V0X21zPTIwMDAmcmVjaXBpZW50PUNsaWNrRGVzdGluYXRpb24mbm9uY2U9IiArIG5vbmNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJlcG9ydHNSZWNlaXZlZCsrOworICAgICAgICAg
ICAgaWYgKHJlcG9ydHNSZWNlaXZlZCA+PSAyKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0
aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAgICAgIC8vIFN0ZXAgMjog
R28gYmFjayB0byB0aGUgc291cmNlLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
LmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211
bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWw/c3RlcFRocmVlIjsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhyZWUiKSB7CisgICAgICAg
ICAgICAgICAgLy8gU3RlcCAzOiBDaGFuZ2UgdGhlIGFwcCBidW5kbGUgSUQgYW5kIGNsaWNrIHRo
ZSBzZWNvbmQgbGluay4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKCIiKTsKKyAgICAgICAgICAgICAgICBh
Y3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsyIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdp
bmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcEZvdXIiKSB7CisgICAgICAgICAgICAgICAg
Ly8gU3RlcCA0OiBDb252ZXJ0LgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nKCJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNp
b25SZXBvcnQucHk/cmVjaXBpZW50PUNsaWNrU291cmNlJm5vbmNlPSIgKyBub25jZSwgImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVy
c2lvblJlcG9ydC5weT9yZWNpcGllbnQ9Q2xpY2tEZXN0aW5hdGlvbiZub25jZT0iICsgbm9uY2Up
OworICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpbWciKTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8v
MTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0
VG9Db252ZXJzaW9uLnB5P2NvbnZlcnNpb25EYXRhPTEyJm5vbmNlPSIgKyBub25jZTsKKyAgICAg
ICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGlt
YWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGFw
cGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAgfTsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFN0ZXAgMTogQ2hhbmdl
IHRoZSBhcHAgYnVuZGxlIElEIGFuZCBjbGljayB0aGUgZmlyc3QgbGluay4KKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JU
ZXN0aW5nKCJ0ZXN0QnVuZGxlSUQiKTsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQo
InRhcmdldExpbmsxIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwg
Tm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvdXRpbC5qcwppbmRleCBlN2MzY2Q4OGM0Mjg2
MDJlNjEzODAzZmM0OTIzNmY4NmYxN2ZhZGQxLi4yYTYzMzYxNDJhYTQ4YmM0MjNiOGUzN2E1NjEw
M2RhMzA0ZGVmOWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMKQEAgLTE1LDYg
KzE1LDcgQEAgZnVuY3Rpb24gdGVhckRvd25BbmRGaW5pc2goKSB7CiAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0
aW5nKCIiLCAiIik7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoIiIpOwogICAgICAgICB0ZXN0UnVubmVyLnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nKCIiKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlE
Rm9yVGVzdGluZygiIik7CiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0K
IH0K
</data>
<flag name="review"
          id="463202"
          type_id="1"
          status="-"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439563</attachid>
            <date>2021-09-28 21:17:15 -0700</date>
            <delta_ts>2021-09-28 22:18:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230778-20210928211714.patch</filename>
            <type>text/plain</type>
            <size>75108</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODcxMzkxNmMwN2Q1NTli
Mjg4ZmQxNGY0ZTY3NzQ1M2IyOTdmODI2My4uOTMwMTNkZTVjOGI3ODFhOGRlZjY0MDMxNjI2YjBj
ZGQwMzJhOWEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA5LTI4ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogVGFrZSBhcHAg
YnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIG1hdGNoaW5nIHRyaWdnZXJpbmcgZXZl
bnRzIHdpdGggcGVuZGluZyBjbGlja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMDc3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9jb21taXRzLndlYmtpdC5vcmcvcjI4Mjg4NCBhZGRlZCBhcHAgYnVuZGxlIElEcyB0byB1bmF0
dHJpYnV0ZWQKKyAgICAgICAgYW5kIGF0dHJpYnV0ZWQgY2xpY2tzIGluIFBDTS4gVGhpcyBwYXRj
aCBtYWtlcyBzdXJlIHdlIHRha2UgdGhvc2UgSURzCisgICAgICAgIGludG8gY29uc2lkZXJhdGlv
biBpbiBQQ006OkRhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLgor
CisgICAgICAgIFRoZSBXZWJDb3JlIHBhcnQgbWFrZXMgc3VyZSB0aGF0IGEgdGVtcG9yYXJ5IGFw
cCBidW5kbGUgSUQgY2FuIGJlIHNldAorICAgICAgICBvbiBhdHRyaWJ1dGlvbnMgdGhhdCBnZXQg
c3RvcmVkIGluIFBDTSdzIGRhdGFiYXNlLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMuaHRtbAorCisgICAg
ICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlE
Rm9yVGVzdGluZyk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg6
CisKIDIwMjEtMDktMjggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vdmUgYERyYXdHbHlwaHNSZWNvcmRlcmAgb3V0c2lkZSBvZiBgRGlzcGxheUxpc3RgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDE3M2Y0Y2UyMGMxNzk1NDc5NTVjMDFlZmJiMzE4YTNhY2MyYjNjNjQuLjM1MjY4
M2MxMGRmYWQ0NzYwY2U2YmFmNGJjNDgwNTE0NzFjZTFiNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NzkgQEAKKzIwMjEtMDktMjggIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUENNOiBUYWtlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uIHdoZW4g
bWF0Y2hpbmcgdHJpZ2dlcmluZyBldmVudHMgd2l0aCBwZW5kaW5nIGNsaWNrcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzc4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MzUxNjUyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWwKKworICAgICAgICBodHRwczovL2NvbW1pdHMu
d2Via2l0Lm9yZy9yMjgyODg0IGFkZGVkIGFwcCBidW5kbGUgSURzIHRvIHVuYXR0cmlidXRlZAor
ICAgICAgICBhbmQgYXR0cmlidXRlZCBjbGlja3MgaW4gUENNLiBUaGlzIHBhdGNoIG1ha2VzIHN1
cmUgd2UgdGFrZSB0aG9zZSBJRHMKKyAgICAgICAgaW50byBjb25zaWRlcmF0aW9uIGluIFBDTTo6
RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuCisKKyAgICAgICAg
QSBsb3Qgb2YgdGhlIFdlYktpdCBwYXJ0IGlzOgorICAgICAgICAtIFBpcGluZyB0aHJvdWdoIGFw
cCBidW5kbGUgSURzIGZyb20gdGhlIG5ldHdvcmsgc2Vzc2lvbiB0byB0aGUgUENNCisgICAgICAg
ICAgICBkYXRhYmFzZSB3aGVyZSB0aGUgSUQgd2lsbCBiZSBtYXRjaGVkIGFnYWluc3Qgc3RvcmVk
IGFwcCBidW5kbGUgSURzLgorICAgICAgICAtIFBpcGluZyB0aHJvdWdoIHRlc3QgY29uZmlndXJh
dGlvbiBmb3IgYXBwIGJ1bmRsZSBJRC4KKworICAgICAgICBUaGUgcmVhbCBjaGFuZ2UgaXMgaW4g
UENNOjpEYXRhYmFzZSB3aGljaCBpcyBleHBsYWluZWQgYmVsb3cuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
ZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6RGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgICAgICBO
b3cgdGFrZXMgYW4gYXBwIGJ1bmRsZSBJRCBzdXBwbGllZCBmcm9tIHRoZSBuZXR3b3JrIHNlc3Np
b24gYW5kCisgICAgICAgICAgICBpbmNsdWRlcyBpdCBpbiB0aGUgZGF0YWJhc2UgcXVlcnkgdG8g
ZmluZCBtYXRjaGluZyBlbnRyaWVzLiBJZiBhbmQKKyAgICAgICAgICAgIGF0dHJpYnV0aW9uIHdh
cyBzYXZlZCB3aXRoIGFwcCBidW5kbGUgSUQgWFlaLCBpdCBzaG91bGQgb25seSBiZQorICAgICAg
ICAgICAgYmUgY29udmVydGVkIGluIGFuIGFwcGxpY2F0aW9uIHdpdGggYXBwIGJ1bmRsZSBJRCBY
WVouCisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KToKKyAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FsbHMgUENNOjpEYXRh
YmFzZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkKKyAgICAgICAgICAgIHdoaWNoIG5l
ZWRzIHRoZSBhcHAgYnVuZGxlIElEIHNvIHRoYXQgSUQgaXMgZm9yd2FyZGVkIHRocm91Z2guCisg
ICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OnJlbW92ZVVuYXR0cmlidXRlZCk6CisgICAg
ICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRl
cmF0aW9uLgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1
dGlvbik6CisgICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQg
aW50byBjb25zaWRlcmF0aW9uLgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjptYXJr
UmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbik6CisgICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRh
a2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uLgorICAgICAgICAoV2ViS2l0
OjpQQ006OkRhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UpOgorICAgICAgICAgICAg
QWxzbyBuZWVkcyB0byB0YWtlIHRoZSBhcHAgYnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbi4K
KyAgICAgICAgKFdlYktpdDo6UENNOjpEYXRhYmFzZTo6ZWFybGllc3RUaW1lc1RvU2VuZCk6Cisg
ICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25z
aWRlcmF0aW9uLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVBdHRyaWJ1dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
cHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXIpOgorICAgICAgICAgICAgQ2xlYXJzIHRoZSB0ZXN0
IHNldHRpbmcgZm9yIGFwcCBidW5kbGUgSUQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENN
OjptZXNzYWdlVHlwZVNlbmRzUmVwbHkpOgorICAgICAgICAoV2ViS2l0OjpQQ006OmRlY29kZU1l
c3NhZ2VBbmRTZW5kVG9NYW5hZ2VyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2Uu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6TWFuYWdlclByb3h5OjpoYW5kbGVBdHRyaWJ1dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6TWFuYWdlclByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9y
VGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpTdG9yZTo6YXR0cmlidXRlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBDTUZyYXVkUHJl
dmVudGlvblZhbHVlc0ZvclRlc3RpbmcpOgorICAgICAgICAoV0tQYWdlU2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKwogMjAyMS0wOS0yOCAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdIEFkZCBTUEkgdG8gc2VsZWN0IGEgdGFiIGNyZWF0ZWQgYnkgX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50LmNwcAppbmRleCAwYTc4MTQ4ODNhMTQzOTQ5YjJkOWI3NTVmOTc3YzQwYzU5ODYz
MGFkLi5jMDc4NWE2YjFjY2M0ODJkMGExYWI4N2ZiNzM0NWIyYjEzODI4YzJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgogCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgog
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvQ3Jvc3NU
aHJlYWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KQEAgLTE0NCw2ICsxNDUs
MTkgQEAgYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzUHJldmlvdXNseUJlZW5SZXBv
cnRlZCgpCiAgICAgcmV0dXJuICFtX3RpbWVzVG9TZW5kLnNvdXJjZUVhcmxpZXN0VGltZVRvU2Vu
ZCB8fCAhbV90aW1lc1RvU2VuZC5kZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2VuZDsKIH0KIAor
dm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJ
REZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBhcHBCdW5kbGVJRCkKK3sKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICAvLyBNYWtlIHN1cmUgb3RoZXIgY2xpZW50cyBjYW5ub3QgY2hhbmdlIHRoZWly
IGFwcCBidW5kbGUgSUQgaW4gdGhlIGV5ZXMgb2YgUENNLgorICAgIFJFTEVBU0VfQVNTRVJUKFdl
YkNvcmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpID09ICJjb20uYXBwbGUuV2ViS2l0
LldlYktpdFRlc3RSdW5uZXIiX3MgfHwgV2ViQ29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyKCkgPT0gIm9yZy53ZWJraXQuV2ViS2l0VGVzdFJ1bm5lckFwcCJfcyk7CisjZW5kaWYKKyAg
ICBpZiAoYXBwQnVuZGxlSUQuaXNFbXB0eSgpKQorICAgICAgICBtX3NvdXJjZUFwcGxpY2F0aW9u
QnVuZGxlSUQgPSBXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKKyAgICBl
bHNlCisgICAgICAgIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9IGFwcEJ1bmRsZUlEOwor
fQorCisKIHN0YXRpYyBTZWNvbmRzIHJhbmRvbWx5QmV0d2VlblR3ZW50eUZvdXJBbmRGb3J0eUVp
Z2h0SG91cnMoKQogewogICAgIHJldHVybiAyNF9oICsgU2Vjb25kcyhyYW5kb21OdW1iZXIoKSAq
ICgyNF9oKS52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmgKaW5kZXggMDZiYmZmN2M1MDQ3NmE5YzI4MmFjN2JiYWYyYjRlMTQzNjBi
MmQ0ZS4uZGFlMjQzNDRmMmJkODBhMzZlYzhiOTViYjhiODE0N2NkNTdlYjQyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTM0MSw2
ICszNDEsNyBAQCBwdWJsaWM6CiAgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhPiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0
cmlidXRpb25UcmlnZ2VyRGF0YTsgfQogICAgIHZvaWQgc2V0QXR0cmlidXRpb24oQXR0cmlidXRp
b25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpIHsgbV9hdHRyaWJ1dGlvblRy
aWdnZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsgfQogICAgIGNvbnN0
IFN0cmluZyYgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc291
cmNlQXBwbGljYXRpb25CdW5kbGVJRDsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U291
cmNlQXBwbGljYXRpb25CdW5kbGVJREZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CiAKICAgICBj
b25zdCBTdHJpbmcmIHNvdXJjZURlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VE
ZXNjcmlwdGlvbjsgfQogICAgIGNvbnN0IFN0cmluZyYgcHVyY2hhc2VyKCkgY29uc3QgeyByZXR1
cm4gbV9wdXJjaGFzZXI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKaW5kZXggZGMzMTM1MTlhMWMzNzQ4MzFjMzdhZDg5ZDdhMmFjMWE3ZTJm
MTZkOS4uYzE2MTg0ODNlNmUzYTZjMDc2OGRlNmIzNzI4Mzk1ODJjNzc0ZGM3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI2ODYs
NiArMjY4NiwxNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQQ01GcmF1ZFByZXZlbnRpb25W
YWx1ZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3NpbwogICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5n
JiYgYXBwQnVuZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpKQorICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXVEZNb3ZlKGFwcEJ1bmRsZUlERm9yVGVzdGluZykpOwor
CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWRk
S2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPiYmIGxvYWRlcikKIHsKICAg
ICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKGxvYWRlci0+c2Vzc2lvbklEKCkp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4
IDdlMGMxOTkyYzJlMDRlMmJmY2QzOGI5MjJjOGNmNGU4N2U1ZDRmYTEuLjdlZTc5MWFkOThlY2Y0
N2JjOTgzZGM2Yjc0M2QzZmNkNTdmZmE2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTM1MCw2ICszNTAsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQsIFVSTCYmIHNvdXJjZVVSTCwgVVJMJiYgZGVzdGluYXRpb25V
UkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBtYXJrUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZh
bHVlc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIHVubGlua2FibGVUb2tlbiwg
U3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5nJiYga2V5SUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYg
YXBwQnVuZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAg
ICAgUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFnZXI+IHN0b3JhZ2VRdW90YU1hbmFn
ZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbgppbmRleCAyMmVhOTczZDQ5NTNjNDgyODczNmMyYzMwNmEzNjZjMWE2ZGFlODQ5Li44
MmNkYzNmNWFhNzFhMjBhOWNkMTcwZTdlZTYzYTI4MGYwNTczZTljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4K
QEAgLTE3MSw2ICsxNzEsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNl
aXZlciB7CiAgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVS
THNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHNvdXJjZVVSTCwgVVJM
IGRlc3RpbmF0aW9uVVJMKSAtPiAoKSBBc3luYwogICAgIE1hcmtQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkg
QXN5bmMKICAgICBTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIHNlY3JldFRva2VuLCBTdHJpbmcgdW5saW5rYWJsZVRv
a2VuLCBTdHJpbmcgc2lnbmF0dXJlLCBTdHJpbmcga2V5SUQpIC0+ICgpIEFzeW5jCisgICAgU2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBTdHJpbmcgYXBwQnVuZGxlSURGb3JUZXN0aW5nKSAtPiAoKSBBc3luYwog
ICAgIEdldExvY2FsU3RvcmFnZU9yaWdpbkRldGFpbHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KSAtPiAoVmVjdG9yPFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpPcmlnaW5E
ZXRhaWxzPiBkZXRhaWxzKSBBc3luYwogCiAgICAgU2V0U2VydmljZVdvcmtlckZldGNoVGltZW91
dEZvclRlc3RpbmcoU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBTeW5jaHJvbm91cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCBlOGI0OWVl
MGU1Mjg0MTQzMmFjYTFlMDFhMWNhMmQ1YzQ3NjU1Y2U0Li4yNzAxZWY1NzJkYzA2MDkxYjIwZjBk
OWE1OGVhYmMzNTU2ZTMxOWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIldlYlNvY2tl
dFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIk5ldHdvcmtTZXNz
aW9uQ29jb2EuaCIKQEAgLTMyMyw3ICszMjQsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzdG9y
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZQog
CiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBh
dHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQogewotICAgIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50KCkuaGFuZGxlQXR0cmlidXRpb24oV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhKSwgcmVxdWVzdFVSTCwgUmVnaXN0cmFibGVEb21haW4ocmVkaXJlY3RSZXF1ZXN0LnVy
bCgpKSwgcmVkaXJlY3RSZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkpOworICAgIHByaXZh
dGVDbGlja01lYXN1cmVtZW50KCkuaGFuZGxlQXR0cmlidXRpb24oV1RGTW92ZShhdHRyaWJ1dGlv
blRyaWdnZXJEYXRhKSwgcmVxdWVzdFVSTCwgUmVnaXN0cmFibGVEb21haW4ocmVkaXJlY3RSZXF1
ZXN0LnVybCgpKSwgcmVkaXJlY3RSZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCksIFdlYkNv
cmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBOZXR3b3JrU2Vz
c2lvbjo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTM5Miw2ICszOTMsMTEgQEAgdm9pZCBO
ZXR3b3JrU2Vzc2lvbjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
KGNvbnN0IFdlYkNvcmU6OkMKICAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLmFsbG93VExT
Q2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjZXJ0aWZpY2F0ZUluZm8pOwogfQog
Cit2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZyhTdHJpbmcmJiBhcHBCdW5kbGVJREZvclRlc3RpbmcpCit7CisgICAgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZyhXVEZNb3ZlKGFwcEJ1bmRsZUlERm9yVGVzdGluZykpOworfQorCiB2b2lk
IE5ldHdvcmtTZXNzaW9uOjphZGRLZXB0QWxpdmVMb2FkKFJlZjxOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI+JiYgbG9hZGVyKQogewogICAgIEFTU0VSVChtX3Nlc3Npb25JRCA9PSBsb2FkZXItPnNlc3Np
b25JRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aAppbmRleCA1ZWNlMTQ0Y2ZjYmI5NTE2OTc4NGQ0YzhlNzI3NGFiZDdiZGJlOTEyLi4zNGM3NWJk
NzU4ZjE0NzgwOGI5ZjgzZmVhNjY5OWJkNDljMmYwOTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC0xNDEsNiArMTQxLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcm
JiB1bmxpbmthYmxlVG9rZW4sIFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1
cmUsIFN0cmluZyYmIGtleUlEKTsKICAgICB2b2lkIGZpcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCk7CiAgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
Jik7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZyhTdHJpbmcmJik7CiAKICAgICB2b2lkIGFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9pZCByZW1vdmVLZXB0QWxpdmVMb2FkKE5ldHdvcmtS
ZXNvdXJjZUxvYWRlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHAKaW5kZXggYTc0ZTYzMWJhYWQz
ZTkyMzgxYmJlNDBhZmY3YzRhMjgzMTkwMDRlMi4uN2RlNmZlZTZjNDM2YWI4MTE3NWE3MmRhYmNk
YzZhNGU4NWJiNTRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3BwCkBAIC00MywxOCArNDMsMTgg
QEAgY29uc3RleHByIGF1dG8gaW5zZXJ0VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRRdWVyeSA9ICJJTlNFUlQgT1IgUkVQTEEKICAgICAic291cmNlSUQsIHRpbWVPZkFkQ2xpY2ss
IHRva2VuLCBzaWduYXR1cmUsIGtleUlELCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKSBWQUxV
RVMgKD8sID8sID8sID8sID8sID8sID8sID8pIl9zOwogY29uc3RleHByIGF1dG8gaW5zZXJ0QXR0
cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnkgPSAiSU5TRVJUIE9SIFJFUExBQ0Ug
SU5UTyBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKHNvdXJjZVNpdGVEb21haW5J
RCwgZGVzdGluYXRpb25TaXRlRG9tYWluSUQsICIKICAgICAic291cmNlSUQsIGF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEsIHByaW9yaXR5LCB0aW1lT2ZBZENsaWNrLCBlYXJsaWVzdFRpbWVUb1NlbmRU
b1NvdXJjZSwgdG9rZW4sIHNpZ25hdHVyZSwga2V5SUQsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVz
dGluYXRpb24sIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpIFZBTFVFUyAoPywgPywgPywgPywg
PywgPywgPywgPywgPywgPywgPywgPykiX3M7Ci1jb25zdGV4cHIgYXV0byBmaW5kVW5hdHRyaWJ1
dGVkUXVlcnkgPSAiU0VMRUNUICogRlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21h
aW5JRCA9ID8iX3M7Ci1jb25zdGV4cHIgYXV0byBmaW5kQXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVD
VCAqIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNp
dGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0
ZXhwciBhdXRvIHJlbW92ZVVuYXR0cmlidXRlZFF1ZXJ5ID0gIkRFTEVURSBGUk9NIFVuYXR0cmli
dXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8g
QU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIGZpbmRV
bmF0dHJpYnV0ZWRRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9u
U2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citj
b25zdGV4cHIgYXV0byBmaW5kQXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gQXR0cmli
dXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8g
QU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5k
bGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byByZW1vdmVVbmF0dHJpYnV0ZWRRdWVyeSA9ICJE
RUxFVEUgRlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3Vy
Y2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNv
dXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSA/Il9zOwogY29uc3RleHByIGF1dG8gYWxsQXR0cmli
dXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnkgPSAiU0VMRUNUICosIE1JTihlYXJsaWVz
dFRpbWVUb1NlbmRUb1NvdXJjZSwgZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlvbikgYXMg
bWluVmFsICIKICAgICAiRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hF
UkUgZWFybGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UgSVMgTk9UIE5VTEwgQU5EIGVhcmxpZXN0VGlt
ZVRvU2VuZFRvRGVzdGluYXRpb24gSVMgTk9UIE5VTEwgIgogICAgICJVTklPTiBBTEwgU0VMRUNU
ICosIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlIGFzIG1pblZhbCBGUk9NIEF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0
aW9uIElTIE5VTEwgIgogICAgICJVTklPTiBBTEwgU0VMRUNUICosIGVhcmxpZXN0VGltZVRvU2Vu
ZFRvRGVzdGluYXRpb24gYXMgbWluVmFsIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50IFdIRVJFIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlIElTIE5VTEwgT1JERVIgQlkg
bWluVmFsIl9zOwogY29uc3RleHByIGF1dG8gYWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvbnNRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Il9zOwogY29uc3RleHByIGF1dG8gY2xlYXJFeHBpcmVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSA9ICJERUxFVEUgRlJPTSBVbmF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSA/ID4gdGltZU9mQWRDbGljayJfczsKLWNvbnN0ZXhw
ciBhdXRvIG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZVF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlID0g
bnVsbCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21h
aW5JRCA9ID8iX3M7Ci1jb25zdGV4cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlv
blF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVh
cmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVEb21h
aW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBh
dXRvIGVhcmxpZXN0VGltZXNUb1NlbmRRdWVyeSA9ICJTRUxFQ1QgZWFybGllc3RUaW1lVG9TZW5k
VG9Tb3VyY2UsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gRlJPTSBBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQg
ZGVzdGluYXRpb25TaXRlRG9tYWluSUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gbWFya1JlcG9y
dEFzU2VudFRvU291cmNlUXVlcnkgPSAiVVBEQVRFIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBTRVQgZWFybGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UgPSBudWxsIFdIRVJFIHNvdXJj
ZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291
cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBtYXJrUmVwb3J0
QXNTZW50VG9EZXN0aW5hdGlvblF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gPSBudWxsIFdI
RVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0g
PyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBl
YXJsaWVzdFRpbWVzVG9TZW5kUXVlcnkgPSAiU0VMRUNUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291
cmNlLCBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIEZST00gQXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3Rp
bmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8i
X3M7CiBjb25zdGV4cHIgYXV0byBkb21haW5JREZyb21TdHJpbmdRdWVyeSA9ICJTRUxFQ1QgZG9t
YWluSUQgRlJPTSBQQ01PYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/
Il9zOwogY29uc3RleHByIGF1dG8gZG9tYWluU3RyaW5nRnJvbURvbWFpbklEUXVlcnkgPSAiU0VM
RUNUIHJlZ2lzdHJhYmxlRG9tYWluIEZST00gUENNT2JzZXJ2ZWREb21haW5zIFdIRVJFIGRvbWFp
bklEID0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuYXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50ID0gIkNSRUFURSBUQUJMRSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCAoIgpAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgRGF0YWJhc2U6Om1hcmtBbGxVbmF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKQogICAg
IH0KIH0KIAotc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Piwgc3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6QXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50Pj4gRGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0
ZSYgc291cmNlU2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUpCitzdGQ6OnBhaXI8c3Rk
OjpvcHRpb25hbDxEYXRhYmFzZTo6VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+
LCBzdGQ6Om9wdGlvbmFsPERhdGFiYXNlOjpBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ+PiBEYXRhYmFzZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNp
dGUmIGRlc3RpbmF0aW9uU2l0ZSwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBh
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgYXV0byBzb3VyY2VTaXRlRG9tYWluSUQgPSBkb21haW5JRChzb3VyY2VTaXRl
LnJlZ2lzdHJhYmxlRG9tYWluKTsKQEAgLTI0OCw3ICsyNDgsOCBAQCBzdGQ6OnBhaXI8c3RkOjpv
cHRpb25hbDxEYXRhYmFzZTo6VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBz
dGQ6Om9wdAogICAgIGF1dG8gZmluZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMt
PnNjb3BlZFN0YXRlbWVudChtX2ZpbmRVbmF0dHJpYnV0ZWRTdGF0ZW1lbnQsIGZpbmRVbmF0dHJp
YnV0ZWRRdWVyeSwgImZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CiAgICAgaWYgKCFm
aW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50CiAgICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0
ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FM
SVRFX09LCi0gICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJ
bnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAg
fHwgZmluZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRp
b25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBmaW5kVW5hdHRyaWJ1dGVk
U2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgzLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIp
ICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgIiVwIC0gRGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBm
aW5kVW5hdHRyaWJ1dGVkUXVlcnksIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklO
RywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIH0KQEAgLTI1Niw3ICsyNTcsOCBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRp
b25hbDxEYXRhYmFzZTo6VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6
Om9wdAogICAgIGF1dG8gZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29w
ZWRTdGF0ZW1lbnQobV9maW5kQXR0cmlidXRlZFN0YXRlbWVudCwgZmluZEF0dHJpYnV0ZWRRdWVy
eSwgImZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CiAgICAgaWYgKCFmaW5kQXR0cmli
dXRlZFNjb3BlZFN0YXRlbWVudAogICAgICAgICB8fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRl
bWVudC0+YmluZEludCgxLCAqc291cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKLSAgICAg
ICAgfHwgZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0
aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgfHwgZmluZEF0dHJpYnV0
ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAh
PSBTUUxJVEVfT0sKKyAgICAgICAgfHwgZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJp
bmRUZXh0KDMsIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikgIT0gU1FMSVRFX09LKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiJXAgLSBE
YXRhYmFzZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50IGZpbmRBdHRyaWJ1dGVkUXVlcnks
IGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAg
LTI3Miw3ICsyNzQsNyBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6VW5hdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdAogICAgIHJldHVybiBzdGQ6
Om1ha2VfcGFpcih1bmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgYXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50KTsKIH0KIAotc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGls
U2VuZERhdGE+LCBEZWJ1Z0luZm8+IERhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0
ZSYgc291cmNlU2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25U
cmlnZ2VyRGF0YSkKK3N0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiwgRGVidWdJbmZv
PiBEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9u
U2l0ZSYgZGVzdGluYXRpb25TaXRlLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIm
IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQog
ewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0yOTEsNyArMjkzLDcgQEAg
c3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uU2Vjb25kc1VudGkKIAogICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhIHNlY29uZHNVbnRpbFNlbmQg
eyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9OwogCi0gICAgYXV0byBhdHRyaWJ1dGlvbiA9
IGZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3VyY2VTaXRlLCBkZXN0aW5hdGlvblNpdGUp
OworICAgIGF1dG8gYXR0cmlidXRpb24gPSBmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291
cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpOwog
ICAgIGF1dG8mIHByZXZpb3VzbHlVbmF0dHJpYnV0ZWQgPSBhdHRyaWJ1dGlvbi5maXJzdDsKICAg
ICBhdXRvJiBwcmV2aW91c2x5QXR0cmlidXRlZCA9IGF0dHJpYnV0aW9uLnNlY29uZDsKIApAQCAt
MzUwLDYgKzM1Miw3IEBAIHZvaWQgRGF0YWJhc2U6OnJlbW92ZVVuYXR0cmlidXRlZChXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYgYXR0cmlidXRpb24pCiAgICAgaWYgKCFzY29wZWRT
dGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3VyY2VT
aXRlRG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJp
bmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAg
fHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgzLCBhdHRyaWJ1dGlvbi5zb3VyY2VBcHBsaWNh
dGlvbkJ1bmRsZUlEKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQt
PnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgIiVwIC0gRGF0YWJhc2U6OnJlbW92ZVVuYXR0cmlidXRlZCwg
ZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01MjIsNiAr
NTI1LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRpb24oV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGkKIAogICAgIGF1dG8gc291cmNlU2l0ZURv
bWFpbklEID0gZG9tYWluSUQoYXR0cmlidXRpb24uc291cmNlU2l0ZSgpLnJlZ2lzdHJhYmxlRG9t
YWluKTsKICAgICBhdXRvIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gZG9tYWluSUQoYXR0cmli
dXRpb24uZGVzdGluYXRpb25TaXRlKCkucmVnaXN0cmFibGVEb21haW4pOworICAgIGF1dG8gc291
cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9IGF0dHJpYnV0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVu
ZGxlSUQoKTsKIAogICAgIGlmICghc291cmNlU2l0ZURvbWFpbklEIHx8ICFkZXN0aW5hdGlvblNp
dGVEb21haW5JRCkKICAgICAgICAgcmV0dXJuOwpAQCAtNTMyLDcgKzUzNiw3IEBAIHZvaWQgRGF0
YWJhc2U6OmNsZWFyU2VudEF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50JiYgYXR0cmlidXRpCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBtYXJrUmVwb3J0QXNTZW50VG9Tb3Vy
Y2UoKnNvdXJjZVNpdGVEb21haW5JRCwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKTsKKyAgICAg
ICAgbWFya1JlcG9ydEFzU2VudFRvU291cmNlKCpzb3VyY2VTaXRlRG9tYWluSUQsICpkZXN0aW5h
dGlvblNpdGVEb21haW5JRCwgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCk7CiAgICAgICAgIHNv
dXJjZUVhcmxpZXN0VGltZVRvU2VuZCA9IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25SZXBv
cnRFbmRwb2ludDo6RGVzdGluYXRpb246CkBAIC01NDAsNyArNTQ0LDcgQEAgdm9pZCBEYXRhYmFz
ZTo6Y2xlYXJTZW50QXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQm
JiBhdHRyaWJ1dGkKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0
aW9uKCpzb3VyY2VTaXRlRG9tYWluSUQsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCk7CisgICAg
ICAgIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKCpzb3VyY2VTaXRlRG9tYWluSUQsICpk
ZXN0aW5hdGlvblNpdGVEb21haW5JRCwgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCk7CiAgICAg
ICAgIGRlc3RpbmF0aW9uRWFybGllc3RUaW1lVG9TZW5kID0gc3RkOjpudWxsb3B0OwogICAgIH0K
IApAQCAtNTQ4LDE3ICs1NTIsMTggQEAgdm9pZCBEYXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRp
b24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGkKICAgICBpZiAo
ZGVzdGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmQgfHwgc291cmNlRWFybGllc3RUaW1lVG9TZW5k
KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudCA9
IG1fZGF0YWJhc2UucHJlcGFyZVN0YXRlbWVudCgiREVMRVRFIEZST00gQXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3Rp
bmF0aW9uU2l0ZURvbWFpbklEID0gPyJfcyk7CisgICAgYXV0byBjbGVhckF0dHJpYnV0ZWRTdGF0
ZW1lbnQgPSBtX2RhdGFiYXNlLnByZXBhcmVTdGF0ZW1lbnQoIkRFTEVURSBGUk9NIEF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFO
RCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SUQgPSA/Il9zKTsKICAgICBpZiAoIWNsZWFyQXR0cmlidXRlZFN0YXRlbWVudAogICAgICAgICB8
fCBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5J
RCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudC0+Ymlu
ZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8
fCBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDMsIHNvdXJjZUFwcGxpY2F0aW9u
QnVuZGxlSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1l
bnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIiVwIC0gRGF0YWJhc2U6OmNsZWFyU2VudEF0dHJpYnV0
aW9uIGZhaWxlZCB0byBzdGVwLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcs
IHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICB9CiB9CiAKLXZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb0Rl
c3RpbmF0aW9uKFNvdXJjZURvbWFpbklEIHNvdXJjZVNpdGVEb21haW5JRCwgRGVzdGluYXRpb25E
b21haW5JRCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCkKK3ZvaWQgRGF0YWJhc2U6Om1hcmtSZXBv
cnRBc1NlbnRUb0Rlc3RpbmF0aW9uKFNvdXJjZURvbWFpbklEIHNvdXJjZVNpdGVEb21haW5JRCwg
RGVzdGluYXRpb25Eb21haW5JRCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCwgY29uc3QgQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyJiBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKQogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIGF1dG8gc2NvcGVkU3RhdGVtZW50ID0g
dGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb25TdGF0
ZW1lbnQsIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uUXVlcnksICJtYXJrUmVwb3J0QXNT
ZW50VG9EZXN0aW5hdGlvbiJfcyk7CkBAIC01NjYsMTMgKzU3MSwxNCBAQCB2b2lkIERhdGFiYXNl
OjptYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbihTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRl
RG9tYWluSUQsCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3Rh
dGVtZW50LT5iaW5kSW50KDEsIHNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAg
ICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCBkZXN0aW5hdGlvblNpdGVEb21haW5J
RCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywg
c291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3Bl
ZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1Nl
bnRUb0Rlc3RpbmF0aW9uLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIH0KIH0KIAotdm9pZCBEYXRhYmFzZTo6bWFya1JlcG9ydEFzU2VudFRvU291cmNlKFNvdXJj
ZURvbWFpbklEIHNvdXJjZVNpdGVEb21haW5JRCwgRGVzdGluYXRpb25Eb21haW5JRCBkZXN0aW5h
dGlvblNpdGVEb21haW5JRCkKK3ZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJj
ZShTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWluSUQg
ZGVzdGluYXRpb25TaXRlRG9tYWluSUQsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
ciYgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKICAgICBhdXRvIHNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVu
dChtX21hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZVN0YXRlbWVudCwgbWFya1JlcG9ydEFzU2VudFRv
U291cmNlUXVlcnksICJtYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UiX3MpOwpAQCAtNTgwLDYgKzU4
Niw3IEBAIHZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZShTb3VyY2VEb21h
aW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQK
ICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsIHNvdXJjZVNpdGVEb21haW5J
RCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCBk
ZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNjb3BlZFN0
YXRlbWVudC0+YmluZFRleHQoMywgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkgIT0gU1FMSVRF
X09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiRGF0
YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZSwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElD
X0xPR19TVFJJTkcsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTYwMCw2ICs2MDcsNyBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25h
bDxEYXRhYmFzZTo6U291cmNlRWFybGllc3RUaW1lVG9TZW5kPiwgc3RkOjpvcHRpb25hbDxEYXRh
YgogICAgIGlmICghc2NvcGVkU3RhdGVtZW50CiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+
YmluZEludCgxLCAqc291cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwg
c2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0g
U1FMSVRFX09LCisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgYXR0cmli
dXRpb24uc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAg
fHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkRhdGFiYXNlOjplYXJsaWVz
dFRpbWVzVG9TZW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50RGF0YWJhc2UuaAppbmRleCAyZWVkODk0NWRhMGJmZDI1NjFhZDk4NzA0YjhlZjcxMTgwMjE5
ZDNhLi44NDAxYmE5ODg2ZGVjNTQ2ODdmMTEzNmIwMTJlZmFhMDBjZWE0YzBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
RGF0YWJhc2UuaApAQCAtNDIsMTAgKzQyLDEyIEBAIHB1YmxpYzoKICAgICBEYXRhYmFzZShjb25z
dCBTdHJpbmcmIHN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIHZpcnR1YWwgfkRhdGFiYXNlKCk7CiAg
ICAgCisgICAgdXNpbmcgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gU3RyaW5nOworCiAg
ICAgc3RhdGljIHZvaWQgaW50ZXJydXB0QWxsRGF0YWJhc2VzKCk7CiAKICAgICB2b2lkIGluc2Vy
dFByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlKTsKLSAgICBzdGQ6OnBh
aXI8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmli
dXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4sIERlYnVnSW5mbz4gYXR0cmlidXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmli
dXRpb25EZXN0aW5hdGlvblNpdGUmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKTsKKyAgICBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxT
ZW5kRGF0YT4sIERlYnVnSW5mbz4gYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29u
c3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNp
dGUmLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImLCBXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKTsKICAgICBWZWN0b3I8
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGFsbEF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCgpOwogICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPik7CiAgICAgdm9pZCBjbGVh
ckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwpAQCAtNjYsMTEgKzY4LDExIEBAIHBy
aXZhdGU6CiAKICAgICBib29sIGNyZWF0ZVNjaGVtYSgpIGZpbmFsOwogICAgIHZvaWQgZGVzdHJv
eVN0YXRlbWVudHMoKSBmaW5hbDsKLSAgICBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxVbmF0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4sIHN0ZDo6b3B0aW9uYWw8QXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Pj4gZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRl
Jik7CisgICAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdGlvbmFsPEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudD4+IGZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYsIGNvbnN0IEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciYpOwogICAgIHZvaWQgcmVtb3ZlVW5hdHRyaWJ1dGVkKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Jik7CiAgICAgU3RyaW5nIGF0dHJpYnV0aW9uVG9T
dHJpbmdGb3JUZXN0aW5nKGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Jikg
Y29uc3Q7Ci0gICAgdm9pZCBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbihTb3VyY2VEb21h
aW5JRCwgRGVzdGluYXRpb25Eb21haW5JRCk7Ci0gICAgdm9pZCBtYXJrUmVwb3J0QXNTZW50VG9T
b3VyY2UoU291cmNlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWluSUQpOworICAgIHZvaWQgbWFy
a1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24oU291cmNlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9t
YWluSUQsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYpOworICAgIHZvaWQgbWFy
a1JlcG9ydEFzU2VudFRvU291cmNlKFNvdXJjZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFpbklE
LCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsKICAgICBzdGQ6OnBhaXI8c3Rk
OjpvcHRpb25hbDxTb3VyY2VFYXJsaWVzdFRpbWVUb1NlbmQ+LCBzdGQ6Om9wdGlvbmFsPERlc3Rp
bmF0aW9uRWFybGllc3RUaW1lVG9TZW5kPj4gZWFybGllc3RUaW1lc1RvU2VuZChjb25zdCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwogICAgIHN0ZDo6b3B0aW9uYWw8RG9tYWlu
SUQ+IGVuc3VyZURvbWFpbklEKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CiAg
ICAgc3RkOjpvcHRpb25hbDxEb21haW5JRD4gZG9tYWluSUQoY29uc3QgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAppbmRleCBmNDk5ODM5OGU4YzFiM2Jk
MjI4ZWNhZTY0MjRlNmE1NjBiOTVhOGI5Li4wODk4OTZiZDgyN2Q4OTAxOTM0YTAzMWJiNjY0YjY5
NmYxOTIzZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCkBAIC03Nyw2ICs3Nyw5IEBAIHZvaWQg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdG9yZVVuYXR0cmlidXRlZChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCYmCiAKICAgICBjbGVhckV4cGlyZWQoKTsKIAorICAgIGlmIChtX3By
aXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKQorICAgICAgICBtZWFz
dXJlbWVudC5zZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlERm9yVGVzdGluZygqbV9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk7CisKICAgICBpZiAobWVhc3Vy
ZW1lbnQuZXBoZW1lcmFsU291cmNlTm9uY2UoKSkgewogICAgICAgICBhdXRvIG1lYXN1cmVtZW50
Q29weSA9IG1lYXN1cmVtZW50OwogICAgICAgICAvLyBUaGlzIGlzIGd1YXJhbnRlZWQgdG8gYmUg
Y2xvc2UgaW4gdGltZSB0byB0aGUgbmF2aWdhdGlvbmFsIGNsaWNrIHdoaWNoIG1ha2VzIGl0IGxp
a2VseSB0byBiZSBwZXJzb25hbGx5IGlkZW50aWZpYWJsZS4KQEAgLTIzMCw3ICsyMzMsNyBAQCB2
b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6bWlncmF0ZVByaXZhdGVDbGlja01l
YXN1cmVtZW50RnJvbUxlZ2FjeVN0bwogICAgIHN0b3JlKCkuaW5zZXJ0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoV1RGTW92ZShtZWFzdXJlbWVudCksIHR5cGUpOwogfQogCi12b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25Ucmln
Z2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5VVJMKQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRs
ZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJE
YXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYg
cmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwgY29uc3QgQXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCiB7CiAgICAg
aWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0yNDcsNyArMjUwLDcg
QEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRsZUF0dHJpYnV0aW9u
KEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJgogCiAgICAgbV9jbGllbnQtPmJyb2FkY2FzdENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRd
IFRyaWdnZXJpbmcgZXZlbnQgYWNjZXB0ZWQuIl9zKTsKIAotICAgIGF0dHJpYnV0ZShTb3VyY2VT
aXRlIHsgV1RGTW92ZShyZWRpcmVjdERvbWFpbikgfSwgQXR0cmlidXRpb25EZXN0aW5hdGlvblNp
dGUgeyBmaXJzdFBhcnR5VVJMIH0sIFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkpOwor
ICAgIGF0dHJpYnV0ZShTb3VyY2VTaXRlIHsgV1RGTW92ZShyZWRpcmVjdERvbWFpbikgfSwgQXR0
cmlidXRpb25EZXN0aW5hdGlvblNpdGUgeyBmaXJzdFBhcnR5VVJMIH0sIFdURk1vdmUoYXR0cmli
dXRpb25UcmlnZ2VyRGF0YSksIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZv
clRlc3RpbmcgPyAqbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGlu
ZyA6IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyOjpzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkKQEAg
LTI1NSwxMiArMjU4LDI0IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpz
dGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkKICAgICBzdGFydFRpbWVyKDBfcyk7CiB9
CiAKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXImJiBhcHBCdW5kbGVJRCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAvLyBNYWtlIHN1
cmUgb3RoZXIgY2xpZW50cyBjYW5ub3QgY2hhbmdlIHRoZWlyIGFwcCBidW5kbGUgSUQgaW4gdGhl
IGV5ZXMgb2YgUENNLgorICAgIFJFTEVBU0VfQVNTRVJUKFdlYkNvcmU6OmFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllcigpID09ICJjb20uYXBwbGUuV2ViS2l0LldlYktpdFRlc3RSdW5uZXIiX3Mg
fHwgV2ViQ29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgPT0gIm9yZy53ZWJraXQu
V2ViS2l0VGVzdFJ1bm5lckFwcCJfcyk7CisjZW5kaWYKKyAgICBpZiAoYXBwQnVuZGxlSUQuaXNF
bXB0eSgpKQorICAgICAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JU
ZXN0aW5nID0gc3RkOjpudWxsb3B0OworICAgIGVsc2UKKyAgICAgICAgbV9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA9IFdURk1vdmUoYXBwQnVuZGxlSUQpOwor
fQorCiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RhcnRUaW1lcihTZWNv
bmRzIHNlY29uZHMpCiB7CiAgICAgbV9maXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVxdWVzdHNUaW1l
ci5zdGFydE9uZVNob3QobV9pc1J1bm5pbmdUZXN0ID8gMF9zIDogc2Vjb25kcyk7CiB9CiAKLXZv
aWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjphdHRyaWJ1dGUoY29uc3QgU291cmNl
U2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgQXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmIGRlc3Rp
bmF0aW9uU2l0ZSwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEpCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YXR0cmlidXRlKGNvbnN0
IFNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRl
JiBkZXN0aW5hdGlvblNpdGUsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRy
aWdnZXJEYXRhLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllcikKIHsKICAgICBpZiAoIWZlYXR1cmVFbmFibGVkKCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTI3Myw3ICsyODgsNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6YXR0cmlidXRlKGNvbnN0IFNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbgogICAg
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAgICAgCi0gICAgc3RvcmUoKS5hdHRyaWJ1dGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3VyY2VTaXRlLCBkZXN0aW5hdGlvblNpdGUsIFdURk1v
dmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIHN0ZDo6ZXhjaGFuZ2UobV9lcGhlbWVyYWxNZWFz
dXJlbWVudCwgc3RkOjpudWxsb3B0KSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpXSAoYXV0byBhdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhLCBhdXRvIGRlYnVnSW5m
bykgeworICAgIHN0b3JlKCkuYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNl
U2l0ZSwgZGVzdGluYXRpb25TaXRlLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIsIFdURk1v
dmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIHN0ZDo6ZXhjaGFuZ2UobV9lcGhlbWVyYWxNZWFz
dXJlbWVudCwgc3RkOjpudWxsb3B0KSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpXSAoYXV0byBhdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhLCBhdXRvIGRlYnVnSW5m
bykgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAKQEAgLTQzNiw2ICs0NTEsNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cjo6Y2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpbwogICAgIG1fZmly
ZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzVGltZXIuc3RvcCgpOwogICAgIG1fZXBoZW1lcmFs
TWVhc3VyZW1lbnQgPSBzdGQ6Om51bGxvcHQ7CiAgICAgbV9pc1J1bm5pbmdFcGhlbWVyYWxNZWFz
dXJlbWVudFRlc3QgPSBmYWxzZTsKKyAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVu
ZGxlSURGb3JUZXN0aW5nID0gc3RkOjpudWxsb3B0OwogCiAgICAgaWYgKCFmZWF0dXJlRW5hYmxl
ZCgpKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5o
CmluZGV4IGJjNWJjOWU3NGFjMDgzMWFkN2NiOTAxNzZiYTEwOTU2MGNiMTk5YmMuLjY3MWQzOTAx
YmE2NTg5NzA0NzAwMzlmOTQ1NGVlZTE1OWMwNTJmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaApAQCAt
NDUsOCArNDUsMTAgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcihVbmlxdWVSZWY8UENNOjpDbGllbnQ+JiYsIGNvbnN0IFN0cmluZyYgc3RvcmFn
ZURpcmVjdG9yeSk7CiAgICAgflByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcigpOwogCisg
ICAgdXNpbmcgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gU3RyaW5nOworCiAgICAgdm9p
ZCBzdG9yZVVuYXR0cmlidXRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKSBmaW5hbDsKLSAg
ICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3Qg
VVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJlZGlyZWN0RG9t
YWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwpIGZpbmFsOworICAgIHZvaWQgaGFuZGxlQXR0
cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkws
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eVVSTCwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJikgZmluYWw7
CiAgICAgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAg
IHZvaWQgY2xlYXJGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBtaWdyYXRlUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9tTGVnYWN5U3RvcmFnZShQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSkgZmluYWw7CkBA
IC02MSw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVwaGVtZXJhbE1lYXN1cmVtZW50
Rm9yVGVzdGluZyhib29sIHZhbHVlKSBmaW5hbCB7IG1faXNSdW5uaW5nRXBoZW1lcmFsTWVhc3Vy
ZW1lbnRUZXN0ID0gdmFsdWU7IH0KICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVl
c0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tl
biwgU3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCkgZmluYWw7CiAgICAgdm9pZCBz
dGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkgZmluYWw7CisgICAgdm9pZCBzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXImJik7CiAgICAgdm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRl
Q2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikg
ZmluYWw7CiAKQEAgLTcyLDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFNpZ25lZFVu
bGlua2FibGVUb2tlbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKICAgICB2b2lkIGluc2Vy
dFByaXZhdGVDbGlja01lYXN1cmVtZW50KFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFByaXZh
dGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlKTsKICAgICB2b2lkIGNsZWFyU2VudEF0
dHJpYnV0aW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50KTsKLSAgICB2b2lkIGF0dHJpYnV0ZShjb25z
dCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhJiYpOworICAgIHZvaWQgYXR0cmlidXRlKGNvbnN0IFNvdXJjZVNpdGUm
LCBjb25zdCBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYsIEF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEmJiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJik7CiAgICAgdm9pZCBmaXJl
Q29udmVyc2lvblJlcXVlc3QoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmLCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25SZXBvcnRFbmRwb2ludCk7CiAgICAgdm9pZCBm
aXJlQ29udmVyc2lvblJlcXVlc3RJbXBsKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50Jiwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQpOwogICAg
IHZvaWQgZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzKCk7CkBAIC04Niw2ICs4OSw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUnVubmluZ0VwaGVtZXJhbE1lYXN1cmVtZW50VGVzdCB7
IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxVUkw+IG1fdG9rZW5QdWJsaWNLZXlVUkxGb3JU
ZXN0aW5nOwogICAgIHN0ZDo6b3B0aW9uYWw8VVJMPiBtX3Rva2VuU2lnbmF0dXJlVVJMRm9yVGVz
dGluZzsKKyAgICBzdGQ6Om9wdGlvbmFsPEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcj4gbV9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZzsKICAgICBtdXRhYmxl
IFJlZlB0cjxQQ006OlN0b3JlPiBtX3N0b3JlOwogICAgIFN0cmluZyBtX3N0b3JhZ2VEaXJlY3Rv
cnk7CiAgICAgVW5pcXVlUmVmPFBDTTo6Q2xpZW50PiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VySW50ZXJmYWNlLmNwcAppbmRleCA2N2E0NjkzMTNjYzgyY2JmZmE0NjQxYjA4NGFl
ZDlhYTcwMjI3MmM1Li4zOWNjNjQ4ODZmOWI0Zjk0NjJlMDBjYjUwZTU1MmVjOGJlNzU3NDk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCkBAIC01MSw3ICs1MSw3IEBA
IEFSR1VNRU5UUyhXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKIEVORAogCiBGVU5D
VElPTihoYW5kbGVBdHRyaWJ1dGlvbikKLUFSR1VNRU5UUyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4sIFVSTCkKK0FSR1VNRU5UUyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4s
IFVSTCwgU3RyaW5nKQogRU5ECiAKIEZVTkNUSU9OKGNsZWFyKQpAQCAtMTEwLDYgKzExMCwxMCBA
QCBGVU5DVElPTihzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKQogQVJHVU1FTlRTKCkK
IEVORAogCitGVU5DVElPTihzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9y
VGVzdGluZykKK0FSR1VNRU5UUyhTdHJpbmcpCitFTkQKKwogRlVOQ1RJT04oZGVzdHJveVN0b3Jl
Rm9yVGVzdGluZykKIEFSR1VNRU5UUygpCiBSRVBMWSgpCkBAIC0xNTQsNiArMTU4LDcgQEAgYm9v
bCBtZXNzYWdlVHlwZVNlbmRzUmVwbHkoTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUpCiAgICAgY2Fz
ZSBNZXNzYWdlVHlwZTo6U2V0RXBoZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0aW5nOgogICAgIGNh
c2UgTWVzc2FnZVR5cGU6OlNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rpbmc6CiAg
ICAgY2FzZSBNZXNzYWdlVHlwZTo6U3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZzoKKyAg
ICBjYXNlIE1lc3NhZ2VUeXBlOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlE
Rm9yVGVzdGluZzoKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpBbGxvd1RMU0NlcnRpZmljYXRlQ2hh
aW5Gb3JMb2NhbFBDTVRlc3Rpbmc6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjYXNlIE1l
c3NhZ2VUeXBlOjpNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3Rpbmc6CkBAIC0yNjQsNiArMjY5LDkgQEAgdm9pZCBkZWNvZGVNZXNzYWdlQW5kU2Vu
ZFRvTWFuYWdlcihNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgVmVjdG9yPHVpbnQ4X3Q+JiYgZW4K
ICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3Rp
bmc6CiAgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnN0YXJ0VGltZXJJbW1l
ZGlhdGVseUZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEFwcEJ1bmRsZUlERm9yVGVzdGluZzoKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdl
SW5mbzo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc+KFdU
Rk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1l
c3NhZ2VUeXBlOjpEZXN0cm95U3RvcmVGb3JUZXN0aW5nOgogICAgICAgICBoYW5kbGVQQ01NZXNz
YWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpkZXN0cm95U3RvcmVGb3JUZXN0aW5nPihXVEZNb3Zl
KGVuY29kZWRNZXNzYWdlKSwgV1RGTW92ZShyZXBseVNlbmRlcikpOwogICAgICAgICBicmVhazsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oCmluZGV4IDVjZjRlM2RlMjFkMGNjMzk5
YzIzYWQwOTA3YTMzZDhlZWYwN2I1YTUuLmE0YTk3NDQ4OTcxMWFiNDhhMjIzZmZjNDJkODIwNGYy
NjE5MzczN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNl
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaApAQCAtNTAsOSAr
NTAsMTAgQEAgcHVibGljOgogICAgIHVzaW5nIFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiAgICAgdXNpbmcgUmVnaXN0cmFibGVEb21h
aW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBTb3VyY2VTaXRlID0g
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGU7CisgICAgdXNpbmcg
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gU3RyaW5nOwogCiAgICAgdmlydHVhbCB2b2lk
IHN0b3JlVW5hdHRyaWJ1dGVkKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgaGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBj
b25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJl
Y3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYg
cmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIG1pZ3JhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdh
Y3lTdG9yYWdlKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25UeXBlKSA9IDA7CkBAIC02Nyw2ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0RXBoZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0aW5nKGJvb2wpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhT
dHJpbmcmJiB1bmxpbmthYmxlVG9rZW4sIFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBz
aWduYXR1cmUsIFN0cmluZyYmIGtleUlEKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VGlt
ZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKEFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3Rp
bmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFs
bG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mKSA9IDA7CiB9OwpAQCAtOTEsNiArOTMsNyBAQCBlbnVtIGNsYXNzIE1l
c3NhZ2VUeXBlIDogdWludDhfdCB7CiAgICAgU2V0RXBoZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0
aW5nLAogICAgIFNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcsCiAgICAgU3Rh
cnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZywKKyAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZywKICAgICBEZXN0cm95U3RvcmVGb3JUZXN0aW5nLAog
ICAgIEFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZwogfTsKQEAgLTEy
Nyw2ICsxMzAsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6UENNOjpN
ZXNzYWdlVHlwZT4gewogICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OlNldEVwaGVt
ZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZywKICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VU
eXBlOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nLAogICAgICAgICBXZWJL
aXQ6OlBDTTo6TWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcsCisg
ICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3RpbmcsCiAgICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlw
ZTo6RGVzdHJveVN0b3JlRm9yVGVzdGluZywKICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VU
eXBlOjpBbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcKICAgICA+Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcAppbmRleCA5N2VmNmVlNjcyZDRiOGRhNjA1M2Jj
Yzc0MjMzODVjZjBkNzhiZTFiLi5iZGE4NWM0OTZiNjBiMWViNjIwZWViNzE0NWFjODEwM2RmNGRl
Y2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcApAQCAtODAsOSArODAsOSBAQCB2
b2lkIE1hbmFnZXJQcm94eTo6c3RvcmVVbmF0dHJpYnV0ZWQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQmJiBwY20pCiAgICAgc2VuZE1lc3NhZ2U8TWVzc2FnZVR5cGU6OlN0b3JlVW5h
dHRyaWJ1dGVkPihwY20pOwogfQogCi12b2lkIE1hbmFnZXJQcm94eTo6aGFuZGxlQXR0cmlidXRp
b24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEmJiB0cmlnZ2VyRGF0YSwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmIHJlZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwpCit2
b2lkIE1hbmFnZXJQcm94eTo6aGFuZGxlQXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiB0cmlnZ2VyRGF0YSwgY29uc3Qg
VVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJlZGlyZWN0RG9t
YWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogewotICAgIHNlbmRNZXNzYWdl
PE1lc3NhZ2VUeXBlOjpIYW5kbGVBdHRyaWJ1dGlvbj4odHJpZ2dlckRhdGEsIHJlcXVlc3RVUkws
IHJlZGlyZWN0RG9tYWluLCBmaXJzdFBhcnR5VVJMKTsKKyAgICBzZW5kTWVzc2FnZTxNZXNzYWdl
VHlwZTo6SGFuZGxlQXR0cmlidXRpb24+KHRyaWdnZXJEYXRhLCByZXF1ZXN0VVJMLCByZWRpcmVj
dERvbWFpbiwgZmlyc3RQYXJ0eVVSTCwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKTsKIH0K
IAogdm9pZCBNYW5hZ2VyUHJveHk6OmNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKQEAgLTE1MCw2ICsxNTAsMTEgQEAgdm9pZCBNYW5hZ2VyUHJveHk6
OnN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKQogICAgIHNlbmRNZXNzYWdlPE1lc3Nh
Z2VUeXBlOjpTdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nPigpOwogfQogCit2b2lkIE1h
bmFnZXJQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rp
bmcoQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiYgYXBwQnVuZGxlSUQpCit7CisgICAgc2Vu
ZE1lc3NhZ2U8TWVzc2FnZVR5cGU6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxl
SURGb3JUZXN0aW5nPihhcHBCdW5kbGVJRCk7Cit9CisKIHZvaWQgTWFuYWdlclByb3h5OjpkZXN0
cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBzZW5kTWVzc2FnZVdpdGhSZXBseTxNZXNzYWdlVHlwZTo6RGVzdHJv
eVN0b3JlRm9yVGVzdGluZz4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXJQcm94eS5oCmluZGV4IDdjMGFmMGY2MzkwZDM2Y2RjMWZhNmI2MTA0YzM4NGI2MzY3
NWU1MTAuLjM0YjM0NzBhYWViY2NjOWM2Zjg3NDRkMjNiNGYxMGEwMTFjOGFjM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlclByb3h5LmgKQEAgLTM5LDggKzM5LDEwIEBAIGNsYXNzIE1hbmFnZXJQcm94
eSA6IHB1YmxpYyBNYW5hZ2VySW50ZXJmYWNlIHsKIHB1YmxpYzoKICAgICBNYW5hZ2VyUHJveHko
Y29uc3QgU3RyaW5nJiBtYWNoU2VydmljZU5hbWUpOwogCisgICAgdXNpbmcgQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyID0gU3RyaW5nOworCiAgICAgdm9pZCBzdG9yZVVuYXR0cmlidXRlZChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKSBmaW5hbDsKLSAgICB2b2lkIGhhbmRs
ZUF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMKSBmaW5h
bDsKKyAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5VVJMLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKSBmaW5hbDsK
ICAgICB2b2lkIGNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAg
dm9pZCBjbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIG1p
Z3JhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdhY3lTdG9yYWdlKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25UeXBlKSBmaW5hbDsKQEAgLTU1LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RXBo
ZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0aW5nKGJvb2wpIGZpbmFsOwogICAgIHZvaWQgc2V0UENN
RnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4s
IFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlE
KSBmaW5hbDsKICAgICB2b2lkIHN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKSBmaW5h
bDsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0
aW5nKEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYmKSBmaW5hbDsKICAgICB2b2lkIGRlc3Ry
b3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5jcHAKaW5kZXgg
ZDg5Mjk1NTk3NmY5MWVhM2RlMDlmMmUxODQyYzI2ZDY3YTc3Y2Q2NS4uZjkwN2FmZTlhMGQwM2Y3
M2E3MTg2Njg5MGFlMDMyNDA5ZjE4MGQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuY3BwCkBAIC05NSw5ICs5
NSw5IEBAIHZvaWQgU3RvcmU6Om1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKQogICAgIH0pOwogfQogCi12b2lkIFN0b3JlOjphdHRy
aWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlv
blNpdGUsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiBlcGhlbWVyYWxNZWFzdXJlbWVudCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiYmLCBEZWJ1Z0luZm8mJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFN0b3JlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0
ZSYgc291cmNlU2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIGNvbnN0IEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ+JiYgZXBoZW1lcmFsTWVhc3VyZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25TZWNvbmRzVW50aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZvJiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewotICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fSwgc291cmNlU2l0ZSA9IHNvdXJjZVNpdGUuaXNvbGF0ZWRDb3B5KCksIGRlc3RpbmF0aW9uU2l0
ZSA9IGRlc3RpbmF0aW9uU2l0ZS5pc29sYXRlZENvcHkoKSwgYXR0cmlidXRpb25UcmlnZ2VyRGF0
YSA9IFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIGVwaGVtZXJhbE1lYXN1cmVtZW50
ID0gY3Jvc3NUaHJlYWRDb3B5KGVwaGVtZXJhbE1lYXN1cmVtZW50KSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CisgICAgcG9zdFRh
c2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBzb3VyY2VTaXRlID0gc291
cmNlU2l0ZS5pc29sYXRlZENvcHkoKSwgZGVzdGluYXRpb25TaXRlID0gZGVzdGluYXRpb25TaXRl
Lmlzb2xhdGVkQ29weSgpLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgPSBhcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCksIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEg
PSBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBlcGhlbWVyYWxNZWFzdXJlbWVudCA9
IGNyb3NzVGhyZWFkQ29weShlcGhlbWVyYWxNZWFzdXJlbWVudCksIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICBpZiAo
IW1fZGF0YWJhc2UpIHsKICAgICAgICAgICAgIHJldHVybiBwb3N0VGFza1JlcGx5KFtjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQsIHsgfSk7CkBAIC0x
MTAsNyArMTEwLDcgQEAgdm9pZCBTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW0KICAgICAgICAgICAgIG1fZGF0
YWJhc2UtPmluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50KFdURk1vdmUoKmVwaGVtZXJhbE1l
YXN1cmVtZW50KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OlVuYXR0
cmlidXRlZCk7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIFtzZWNvbmRzLCBkZWJ1Z0luZm9d
ID0gbV9kYXRhYmFzZS0+YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0
ZSwgZGVzdGluYXRpb25TaXRlLCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpKTsKKyAg
ICAgICAgYXV0byBbc2Vjb25kcywgZGVidWdJbmZvXSA9IG1fZGF0YWJhc2UtPmF0dHJpYnV0ZVBy
aXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUsIGRlc3RpbmF0aW9uU2l0ZSwgYXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpKTsK
IAogICAgICAgICBwb3N0VGFza1JlcGx5KFtzZWNvbmRzID0gV1RGTW92ZShzZWNvbmRzKSwgZGVi
dWdJbmZvID0gZGVidWdJbmZvLmlzb2xhdGVkQ29weSgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShzZWNvbmRzKSwgV1RGTW92ZShkZWJ1Z0luZm8pKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0
b3JlLmgKaW5kZXggODMxMzU2ZGNjNmM3MzkxOTc2YmVkMGE4OGRjMjNkY2JiYzVjMTIyMS4uODRi
NzE2NjJkN2ExYTFmNzhiMjNjNTA1ZTZjMDc0M2JjMWZkY2Y5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmgKQEAg
LTQ3LDExICs0NywxMyBAQCBwdWJsaWM6CiAKICAgICB+U3RvcmUoKTsKIAorICAgIHVzaW5nIEFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKKwogICAgIHN0YXRpYyB2b2lkIHBy
ZXBhcmVGb3JQcm9jZXNzVG9TdXNwZW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgc3RhdGljIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZSgpOwogCiAgICAgdm9pZCBpbnNlcnRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBX
ZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlKTsKLSAgICB2b2lk
IGF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiBlcGhlbWVyYWxNZWFzdXJlbWVu
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiYmLCBEZWJ1
Z0luZm8mJik+JiYpOworICAgIHZvaWQgYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
Y29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25z
dCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlv
blNpdGUmLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImLCBXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIGVwaGVtZXJhbE1lYXN1cmVt
ZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+JiYsIERl
YnVnSW5mbyYmKT4mJik7CiAKICAgICB2b2lkIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJp
bmdGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgY29uc3Q7CiAg
ICAgdm9pZCBtYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGly
ZWRGb3JUZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApp
bmRleCAwMjQ5ZGZlMDFmNDQwZTA4OTU1M2RmNGFjNzk5NjNlYmI2OTI2NGJiLi5hYjIyOTFlMzQx
YjUzMDhiOGU1NWU0NWRhZDlhZmI5ZTQ0Yzk2NjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKQEAgLTMxMzgsNiArMzEzOCwxNCBAQCB2b2lkIFdLUGFnZVNldFBD
TUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3Ry
aW5nUmVmCiAgICAgfSk7CiB9CiAKK3ZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIGFw
cEJ1bmRsZUlERm9yVGVzdGluZywgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0
KQoreworICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKKyAgICB0b0ltcGwocGFnZVJlZiktPnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKHRvV1RGU3RyaW5nKGFw
cEJ1bmRsZUlERm9yVGVzdGluZyksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7Cisg
ICAgICAgIGNhbGxiYWNrKGNhbGxiYWNrQ29udGV4dCk7CisgICAgfSk7Cit9CisKIHZvaWQgV0tQ
YWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdLUGFnZVJlZiBwYWdlUmVmLCB1aW50NjRfdCBv
cmllbnRhdGlvbikKIHsKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKaW5kZXggN2YyNDM4OTYwNThlZjA4YTdi
ZjgxZjVjZTVhY2FkNTgxM2ZiZWRlZi4uNzUzOGVjMDI2Y2Q5ZGE4MjhlZTY4MzA0ZjBhZWNiOTI4
NGFkYWEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZh
dGUuaApAQCAtMTkyLDYgKzE5Miw4IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZU1hcmtQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24pKHZvCiBXS19FWFBP
UlQgdm9pZCBXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVz
dGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0Fz
RXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0
KTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRl
c3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdL
UGFnZVNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2Us
IFdLU3RyaW5nUmVmIHNlY3JldFRva2VuLCBXS1N0cmluZ1JlZiB1bmxpbmthYmxlVG9rZW4sIFdL
U3RyaW5nUmVmIHNpZ25hdHVyZSwgV0tTdHJpbmdSZWYga2V5SUQsIFdLUGFnZVNldFBDTUZyYXVk
UHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJh
Y2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7
CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYgYXBwQnVuZGxlSURG
b3JUZXN0aW5nLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9y
VGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwogCiBXS19F
WFBPUlQgdm9pZCBXS1BhZ2VTZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24oV0tQYWdlUmVmIHBhZ2Us
IHVpbnQ2NF90IG9yaWVudGF0aW9uKTsKIFdLX0VYUE9SVCBib29sIFdLUGFnZUlzTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKFdLUGFnZVJlZiBwYWdlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI3ZWMyZWNlNTJjN2U2NDk4ZjA5NThj
NmEyYjJjZDJiZDQ3ZTFkZGMuLjkzODM0Yjc4ZTEyN2NkMGQ0MmJiNmYyMDVjMjE5NzVhMGNlMjJi
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTA1MTMs
NiArMTA1MTMsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFBDTUZyYXVkUHJldmVudGlvblZh
bHVlc0ZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiB1bmxpbmthYmwKICAgICB3ZWJzaXRlRGF0YVN0
b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKG1fd2Vic2l0
ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHVubGlua2FibGVUb2tlbiwgc2VjcmV0VG9rZW4sIHNp
Z25hdHVyZSwga2V5SUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQg
V2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZyhjb25zdCBTdHJpbmcmIGFwcEJ1bmRsZUlERm9yVGVzdGluZywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHdlYnNpdGVEYXRhU3RvcmUo
KS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKG1f
d2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIGFwcEJ1bmRsZUlERm9yVGVzdGluZyksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhF
U0lTKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVzZXRTcGVlY2hTeW50aGVzaXplcigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGYyZGZiMDUxMDg2ZGJmMDhiNTdm
OWM1OTkxMzdjNmFiYjFhZTI4NWEuLjNmYmZhZTRmMmVjM2FiNWQ2NDE1NjE5MDllMWNlNTRmNzY5
OTRjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNzcyLDYg
KzE3NzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3RpbmcoY29uc3QgVVJMJiBzb3VyY2VVUkwsIGNvbnN0
IFVSTCYgZGVzdGluYXRpb25VUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UENNRnJhdWRQcmV2ZW50aW9u
VmFsdWVzRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIHVubGlua2FibGVUb2tlbiwgY29uc3QgU3Ry
aW5nJiBzZWNyZXRUb2tlbiwgY29uc3QgU3RyaW5nJiBzaWduYXR1cmUsIGNvbnN0IFN0cmluZyYg
a2V5SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIGFwcEJ1
bmRsZUlERm9yVGVzdGluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogI2lmIEVO
QUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIHZvaWQgc3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlPiYm
KT4mJik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggYjM0NDE5M2ZhMDBhMjQwMjg4NTU1YzExZDQ0MGJlYTcwNmVhZGFiNy4uYTgzZDlmN2EwMjA1
NmJjODAwZThkODcxYjAxYTMyMmY1OWY5YzczMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA5LTI4ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogVGFrZSBhcHAg
YnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIG1hdGNoaW5nIHRyaWdnZXJpbmcgZXZl
bnRzIHdpdGggcGVuZGluZyBjbGlja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMDc3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9jb21taXRzLndlYmtpdC5vcmcvcjI4Mjg4NCBhZGRlZCBhcHAgYnVuZGxlIElEcyB0byB1bmF0
dHJpYnV0ZWQKKyAgICAgICAgYW5kIGF0dHJpYnV0ZWQgY2xpY2tzIGluIFBDTS4gVGhpcyBwYXRj
aCBtYWtlcyBzdXJlIHdlIHRha2UgdGhvc2UgSURzCisgICAgICAgIGludG8gY29uc2lkZXJhdGlv
biBpbiBQQ006OkRhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLgor
CisgICAgICAgIFRoZSBjaGFuZ2VzIGJlbG93IGFyZSBhbGwgdGVzdCBpbmZyYXN0cnVjdHVyZSB0
byBlbmFibGUgVGVzdFJ1bm5lcgorICAgICAgICB0byBydW4gd2l0aCBkaWZmZXJlbnQgYXBwIGJ1
bmRsZSBJRHMgaW4gdGhlIGV5ZXMgb2YgUENNLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RS
OjpUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFw
cEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMjEtMDktMjggIEJKIEJ1cmcgIDxiYnVyZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBBZGQgU1BJIHRvIHNlbGVjdCBhIHRhYiBjcmVh
dGVkIGJ5IF9XS0luc3BlY3RvckV4dGVuc2lvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5k
ZXggYWJlYmM4ZWFlOTUyOTg3OGI3Njc0ODBjYzkzZDExODQ4MGEyN2VmNC4uZWFlMmJhODZlMDhj
OTg1ZTQwZWIwOWIzMDlmOWFjNDYwZjZjMzI3YiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
CkBAIC00MTYsNiArNDE2LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVmaW5l
ZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rp
bmcoRE9NU3RyaW5nIHNvdXJjZVVSTFN0cmluZywgRE9NU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3Ry
aW5nKTsKICAgICB1bmRlZmluZWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcoKTsKICAgICB1bmRlZmluZWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRG
cmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKERPTVN0cmluZyB1bmxpbmthYmxlVG9rZW4s
IERPTVN0cmluZyBzZWNyZXRUb2tlbiwgRE9NU3RyaW5nIHNpZ25hdHVyZSwgRE9NU3RyaW5nIGtl
eUlEKTsKKyAgICB1bmRlZmluZWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJ
REZvclRlc3RpbmcoRE9NU3RyaW5nIGFwcEJ1bmRsZUlEKTsKIAogICAgIC8vIFNwZWVjaFJlY29n
bml0aW9uCiAgICAgdW5kZWZpbmVkIHNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3Jh
bnRlZChib29sZWFuIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDk2NWRmNjE1Yzc1MDA1OGFhNDU4YTBl
OTBmYmVkNGJiOGEwNjJiNDIuLmVjODk2ZGM5NDYyNDFiNmRjYjk5MjY0MjQ0MDEzYzg5NTg4NTc3
ZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcApAQCAtMjExNCw2ICsyMTE0LDEyIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKEpT
U3RyCiAgICAgfSkpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKEpTU3RyaW5nUmVmIGFwcEJ1bmRsZUlEKQorewor
ICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEFwcEJ1bmRsZUlERm9yVGVzdGluZyIsCisgICAgICAgIHRvV0soYXBwQnVuZGxlSUQpKTsKK30K
KwogYm9vbCBUZXN0UnVubmVyOjpoYXNBcHBCb3VuZFNlc3Npb24oKQogewogICAgIHJldHVybiBw
b3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZVJldHVybmluZ0Jvb2xlYW4oIkhhc0FwcEJvdW5kU2Vz
c2lvbiIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuaAppbmRleCBhOWQzYmY4NWQ2MjM3Mzc5MzNkNjk2OWU4NzkzZGM3MjhjZDM1OWJk
Li43YzE3ZjQyYmVjNGFmMWJlOGYxNzk3NGIxZDQ0OWRkNGQ4ZTYzODczIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNTMy
LDYgKzUzMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7
CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyYXVkUHJldmVudGlvblZhbHVl
c0ZvclRlc3RpbmcoSlNTdHJpbmdSZWYgdW5saW5rYWJsZVRva2VuLCBKU1N0cmluZ1JlZiBzZWNy
ZXRUb2tlbiwgSlNTdHJpbmdSZWYgc2lnbmF0dXJlLCBKU1N0cmluZ1JlZiBrZXlJRCk7CisgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhKU1N0
cmluZ1JlZik7CiAgICAgdm9pZCBzaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9u
UmVzdGFydCgpOwogCiAgICAgdm9pZCBzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdy
YW50ZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IGVmNzM5MGJhYzQyN2VjNzg2MmRlMjA3NTBkZjc3YTJiZTk3ZTFkZmUuLmZlYjJhMzk3ZTQy
YTM2OGM0MTc5ZWNiMzFkNmQxOTIwNjNmMTlhMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zNzQ5LDYgKzM3NDksMTMgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhXS1N0cmluZ1JlZiB1
bmxpbmthYmwKICAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsK
IH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmcoV0tTdHJpbmdSZWYgYXBwQnVuZGxlSUQpCit7CisgICAgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29udGV4dCgqdGhp
cyk7CisgICAgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRl
c3RpbmcobV9tYWluV2ViVmlldy0+cGFnZSgpLCBhcHBCdW5kbGVJRCwgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOworICAgIHJ1blVudGlsKGNh
bGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOworfQorCiBXS1VSTFJlZiBUZXN0Q29udHJv
bGxlcjo6Y3VycmVudFRlc3RVUkwoKSBjb25zdAogewogICAgIHJldHVybiBtX2N1cnJlbnRJbnZv
Y2F0aW9uID8gbV9jdXJyZW50SW52b2NhdGlvbi0+dXJsKCkgOiBudWxscHRyOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDk0ZTEzMDgwMjU0ZTI3YWVmMTUxODZl
MmRjNThlMmU3ZDk5MWI1Y2QuLjBhODJmMmRlMTU5MTc3NjcwNzg3Y2EwMTliOWIzNzc2NWM3MDkz
NzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTM1NSw2ICsz
NTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uUmVwb3J0VVJMc0ZvclRlc3RpbmcoV0tVUkxSZWYgc291cmNlVVJMLCBXS1VSTFJlZiBk
ZXN0aW5hdGlvblVSTCk7CiAgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNF
eHBpcmVkRm9yVGVzdGluZygpOwogICAgIHZvaWQgc2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVz
Rm9yVGVzdGluZyhXS1N0cmluZ1JlZiB1bmxpbmthYmxlVG9rZW4sIFdLU3RyaW5nUmVmIHNlY3Jl
dFRva2VuLCBXS1N0cmluZ1JlZiBzaWduYXR1cmUsIFdLU3RyaW5nUmVmIGtleUlEKTsKKyAgICB2
b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFdLU3Ry
aW5nUmVmKTsKIAogICAgIHZvaWQgZGlkU2V0QXBwQm91bmREb21haW5zKCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggM2YyZjJiMTdkMzgy
YWNiZmQ4ZDY0NzQ4Zjg0MDIwMzQzNzM5MDcxNS4uMzQ1MDY5MzAwOTkyZmIzZTA3MTNlODMyYzQx
N2ZjNTFjMDg4ZjA4YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAKQEAgLTE0MjMsNiArMTQyMywxMSBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZv
Y2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxl
SURGb3JUZXN0aW5nIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKHN0cmluZ1ZhbHVl
KG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGlm
IChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU3luY0xvY2FsU3Rv
cmFnZSIpKSB7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zeW5jTG9jYWxT
dG9yYWdlKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4MDNiMTg5NGYxOGFh
MDVlMmE2MzA0Y2VkMTcxM2Y5MDlkOGEwOTQuLjk4MmQyOWJiMmI3NmNkNTQyZmE5YmJkOGU3Yjlk
OTVjYjFiMDRiMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wOS0yOCAgSm9obiBXaWxh
bmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IFRha2UgYXBwIGJ1bmRs
ZSBJRCBpbnRvIGNvbnNpZGVyYXRpb24gd2hlbiBtYXRjaGluZyB0cmlnZ2VyaW5nIGV2ZW50cyB3
aXRoIHBlbmRpbmcgY2xpY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzA3NzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNTE2NTI4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vY29t
bWl0cy53ZWJraXQub3JnL3IyODI4ODQgYWRkZWQgYXBwIGJ1bmRsZSBJRHMgdG8gdW5hdHRyaWJ1
dGVkCisgICAgICAgIGFuZCBhdHRyaWJ1dGVkIGNsaWNrcyBpbiBQQ00uIFRoaXMgcGF0Y2ggbWFr
ZXMgc3VyZSB3ZSB0YWtlIHRob3NlIElEcworICAgICAgICBpbnRvIGNvbnNpZGVyYXRpb24gaW4g
UENNOjpEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1
bmRsZS1pZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0
aWwuanM6CisgICAgICAgICh0ZWFyRG93bkFuZEZpbmlzaCk6CisKIDIwMjEtMDktMjggIFRydWl0
dCBTYXZlbGwgIDx0c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJraW5nIG1vcmUgdGVz
dHMgY3Jhc2hpbmcgd2l0aCB1bmNhdWdodCBleGNlcHRpb24gJ05TSW52YWxpZEFyZ3VtZW50RXhj
ZXB0aW9uJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5k
bGUtaWRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTNhNWY0OTAyMDg0Zjk0NTYzYjAzM2Yy
Njk3NDI4NzBhNjkyNDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzNSBAQAorVGVzdHMgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCB3
aXRoIG11bHRpcGxlIGFwcCBidW5kbGUgSURzLCBtYWtpbmcgc3VyZSBvbmx5IHRoZSBtYXRjaGlu
ZyBJRCBpcyBjb25zaWRlcmVkIGEgbWF0Y2guCisKKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwh
LS1mcmFtZTEtLT4nCistLS0tLS0tLQorQXR0cmlidXRpb24gcmVjZWl2ZWQuCitIVFRQX0hPU1Q6
IDEyNy4wLjAuMTo4MDAwCitDb250ZW50IHR5cGU6IGFwcGxpY2F0aW9uL2pzb24KK1JFUVVFU1Rf
VVJJOiAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQu
cHk/cmVjaXBpZW50PUNsaWNrU291cmNlCitObyBjb29raWVzIGluIGF0dHJpYnV0aW9uIHJlcXVl
c3QuCitSZXF1ZXN0IGJvZHk6Cit7InNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiOiJjbGljayIsInNv
dXJjZV9zaXRlIjoiMTI3LjAuMC4xIiwic291cmNlX2lkIjozMywiYXR0cmlidXRlZF9vbl9zaXRl
IjoibG9jYWxob3N0IiwidHJpZ2dlcl9kYXRhIjoxMiwidmVyc2lvbiI6Mn0KKworCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK0F0dHJpYnV0aW9uIHJlY2VpdmVk
LgorSFRUUF9IT1NUOiBsb2NhbGhvc3Q6ODAwMAorQ29udGVudCB0eXBlOiBhcHBsaWNhdGlvbi9q
c29uCitSRVFVRVNUX1VSSTogL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252
ZXJzaW9uUmVwb3J0LnB5P3JlY2lwaWVudD1DbGlja0Rlc3RpbmF0aW9uCitObyBjb29raWVzIGlu
IGF0dHJpYnV0aW9uIHJlcXVlc3QuCitSZXF1ZXN0IGJvZHk6Cit7InNvdXJjZV9lbmdhZ2VtZW50
X3R5cGUiOiJjbGljayIsInNvdXJjZV9zaXRlIjoiMTI3LjAuMC4xIiwic291cmNlX2lkIjozMywi
YXR0cmlidXRlZF9vbl9zaXRlIjoibG9jYWxob3N0IiwidHJpZ2dlcl9kYXRhIjoxMiwidmVyc2lv
biI6Mn0KKworVW5hdHRyaWJ1dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNlIHNpdGU6IDEyNy4wLjAuMQorQXR0
cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNlIElEOiAyMworTm8gYXR0cmlidXRpb24g
dHJpZ2dlciBkYXRhLgorQXBwbGljYXRpb24gYnVuZGxlIGlkZW50aWZpZXI6IHRlc3RCdW5kbGVJ
RApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVkNDcwMzQ3YzAwM2E1OTI1YTZmYjk2MzQ2MmE2NTM5ZTQzZjc2NTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWwKQEAgLTAsMCArMSwxMDMgQEAKKzwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9
dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Ut
d2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3Rz
IHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgd2l0aCBtdWx0aXBsZSBhcHAgYnVuZGxlIElEcywg
bWFraW5nIHN1cmUgb25seSB0aGUgbWF0Y2hpbmcgSUQgaXMgY29uc2lkZXJlZCBhIG1hdGNoLjwv
ZGl2PgorPGEgaWQ9InRhcmdldExpbmsxIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMuaHRtbD9zdGVwVHdv
IiBhdHRyaWJ1dGlvbnNvdXJjZWlkPTIzIGF0dHJpYnV0aW9uZGVzdGluYXRpb249Imh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCI+TGluazE8L2E+PGJyPgorPGEgaWQ9InRhcmdldExpbmsyIiBocmVmPSJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBw
LWJ1bmRsZS1pZHMuaHRtbD9zdGVwRm91ciIgYXR0cmlidXRpb25zb3VyY2VpZD0zMyBhdHRyaWJ1
dGlvbmRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbmsyPC9hPjxicj4KKzxk
aXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGNvbnN0IGN1cnJlbnRUaW1lTWls
bGlzID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKKyAgICBjb25zdCBoaWdoRW50cm9weUJpdHMg
PSBjdXJyZW50VGltZU1pbGxpcyAtIChNYXRoLmZsb29yKGN1cnJlbnRUaW1lTWlsbGlzIC8gMTAw
MDAwMCkgKiAxMDAwMDAwKTsKKyAgICBjb25zdCBub25jZSA9IGhpZ2hFbnRyb3B5Qml0cyArICIi
ICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKTsKKworICAgIHByZXBhcmVUZXN0KCk7
CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHRydWUpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAg
ICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Cisg
ICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRX
aWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVt
ZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVy
WCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0
ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAg
fQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVuZElmcmFtZSh1cmwsIG9u
bG9hZENhbGxiYWNrKSB7CisgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdXJsOwor
ICAgICAgICBpZiAob25sb2FkQ2FsbGJhY2spCisgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9u
bG9hZCA9IG9ubG9hZENhbGxiYWNrOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGlmcmFtZUVsZW1lbnQpOworICAgIH0KKworICAgIGxldCByZXBvcnRzUmVjZWl2ZWQgPSAwOwor
ICAgIGZ1bmN0aW9uIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCkgeworICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXRMaW5rMSIpKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluazIiKSk7CisgICAgICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworCisgICAgICAg
IC8vIENsaWNrIHNvdXJjZS4KKyAgICAgICAgYXBwZW5kSWZyYW1lKCJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRh
LnB5P3RpbWVvdXRfbXM9MjAwMCZyZWNpcGllbnQ9Q2xpY2tTb3VyY2Umbm9uY2U9IiArIG5vbmNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJlcG9ydHNSZWNlaXZlZCsrOworICAgICAgICAg
ICAgaWYgKHJlcG9ydHNSZWNlaXZlZCA+PSAyKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gQ2xpY2sgZGVzdGluYXRpb24uCisgICAgICAg
IGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5weT90aW1lb3V0X21zPTIwMDAmcmVjaXBp
ZW50PUNsaWNrRGVzdGluYXRpb24mbm9uY2U9IiArIG5vbmNlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHJlcG9ydHNSZWNlaXZlZCsrOworICAgICAgICAgICAgaWYgKHJlcG9ydHNSZWNlaXZl
ZCA+PSAyKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVw
VHdvIikgeworICAgICAgICAgICAgICAgIC8vIFN0ZXAgMjogR28gYmFjayB0byB0aGUgc291cmNl
LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRz
Lmh0bWw/c3RlcFRocmVlIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9u
LnNlYXJjaCA9PT0gIj9zdGVwVGhyZWUiKSB7CisgICAgICAgICAgICAgICAgLy8gU3RlcCAzOiBD
aGFuZ2UgdGhlIGFwcCBidW5kbGUgSUQgYW5kIGNsaWNrIHRoZSBzZWNvbmQgbGluay4KKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxl
SURGb3JUZXN0aW5nKCIiKTsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdl
dExpbmsyIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gg
PT09ICI/c3RlcEZvdXIiKSB7CisgICAgICAgICAgICAgICAgLy8gU3RlcCA0OiBDb252ZXJ0Lgor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRy
aWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucHk/cmVjaXBpZW50
PUNsaWNrU291cmNlJm5vbmNlPSIgKyBub25jZSwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5weT9yZWNpcGll
bnQ9Q2xpY2tEZXN0aW5hdGlvbiZub25jZT0iICsgbm9uY2UpOworICAgICAgICAgICAgICAgIGxl
dCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAg
ICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnB5P2NvbnZl
cnNpb25EYXRhPTEyJm5vbmNlPSIgKyBub25jZTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1l
bnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZENvbnZlcnNpb25EYXRhSWZy
YW1lQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIC8vIFN0ZXAgMTogQ2hhbmdlIHRoZSBhcHAgYnVuZGxlIElEIGFu
ZCBjbGljayB0aGUgZmlyc3QgbGluay4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKCJ0ZXN0QnVuZGxlSUQi
KTsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsxIik7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAg
ICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91
dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9y
ZXNvdXJjZXMvdXRpbC5qcwppbmRleCBlN2MzY2Q4OGM0Mjg2MDJlNjEzODAzZmM0OTIzNmY4NmYx
N2ZhZGQxLi4yYTYzMzYxNDJhYTQ4YmM0MjNiOGUzN2E1NjEwM2RhMzA0ZGVmOWZiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy91dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMKQEAgLTE1LDYgKzE1LDcgQEAgZnVuY3Rpb24gdGVh
ckRvd25BbmRGaW5pc2goKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nKCIiLCAiIik7CiAgICAgICAg
IHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZv
clRlc3RpbmcoIiIpOwogICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50VG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nKCIiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZygiIik7CiAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KIH0K
</data>
<flag name="commit-queue"
          id="463230"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439564</attachid>
            <date>2021-09-28 22:01:45 -0700</date>
            <delta_ts>2021-09-29 14:12:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230778-20210928220144.patch</filename>
            <type>text/plain</type>
            <size>75349</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODcxMzkxNmMwN2Q1NTli
Mjg4ZmQxNGY0ZTY3NzQ1M2IyOTdmODI2My4uOTMwMTNkZTVjOGI3ODFhOGRlZjY0MDMxNjI2YjBj
ZGQwMzJhOWEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA5LTI4ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogVGFrZSBhcHAg
YnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIG1hdGNoaW5nIHRyaWdnZXJpbmcgZXZl
bnRzIHdpdGggcGVuZGluZyBjbGlja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMDc3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9jb21taXRzLndlYmtpdC5vcmcvcjI4Mjg4NCBhZGRlZCBhcHAgYnVuZGxlIElEcyB0byB1bmF0
dHJpYnV0ZWQKKyAgICAgICAgYW5kIGF0dHJpYnV0ZWQgY2xpY2tzIGluIFBDTS4gVGhpcyBwYXRj
aCBtYWtlcyBzdXJlIHdlIHRha2UgdGhvc2UgSURzCisgICAgICAgIGludG8gY29uc2lkZXJhdGlv
biBpbiBQQ006OkRhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLgor
CisgICAgICAgIFRoZSBXZWJDb3JlIHBhcnQgbWFrZXMgc3VyZSB0aGF0IGEgdGVtcG9yYXJ5IGFw
cCBidW5kbGUgSUQgY2FuIGJlIHNldAorICAgICAgICBvbiBhdHRyaWJ1dGlvbnMgdGhhdCBnZXQg
c3RvcmVkIGluIFBDTSdzIGRhdGFiYXNlLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMuaHRtbAorCisgICAg
ICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlE
Rm9yVGVzdGluZyk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg6
CisKIDIwMjEtMDktMjggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vdmUgYERyYXdHbHlwaHNSZWNvcmRlcmAgb3V0c2lkZSBvZiBgRGlzcGxheUxpc3RgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDE3M2Y0Y2UyMGMxNzk1NDc5NTVjMDFlZmJiMzE4YTNhY2MyYjNjNjQuLjFkOTVh
ZDgzY2RkMjhiYjA5NDU0Mzg3ZmY4ODE2ZTFjMzIxY2YyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NzkgQEAKKzIwMjEtMDktMjggIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUENNOiBUYWtlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uIHdoZW4g
bWF0Y2hpbmcgdHJpZ2dlcmluZyBldmVudHMgd2l0aCBwZW5kaW5nIGNsaWNrcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzc4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MzUxNjUyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9yMjgyODg0IGFkZGVk
IGFwcCBidW5kbGUgSURzIHRvIHVuYXR0cmlidXRlZAorICAgICAgICBhbmQgYXR0cmlidXRlZCBj
bGlja3MgaW4gUENNLiBUaGlzIHBhdGNoIG1ha2VzIHN1cmUgd2UgdGFrZSB0aG9zZSBJRHMKKyAg
ICAgICAgaW50byBjb25zaWRlcmF0aW9uIGluIFBDTTo6RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZh
dGVDbGlja01lYXN1cmVtZW50KCkuCisKKyAgICAgICAgQSBsb3Qgb2YgdGhlIFdlYktpdCBwYXJ0
IGlzOgorICAgICAgICAtIFBpcGluZyB0aHJvdWdoIGFwcCBidW5kbGUgSURzIGZyb20gdGhlIG5l
dHdvcmsgc2Vzc2lvbiB0byB0aGUgUENNCisgICAgICAgICAgICBkYXRhYmFzZSB3aGVyZSB0aGUg
SUQgd2lsbCBiZSBtYXRjaGVkIGFnYWluc3Qgc3RvcmVkIGFwcCBidW5kbGUgSURzLgorICAgICAg
ICAtIFBpcGluZyB0aHJvdWdoIHRlc3QgY29uZmlndXJhdGlvbiBmb3IgYXBwIGJ1bmRsZSBJRC4K
KworICAgICAgICBUaGUgcmVhbCBjaGFuZ2UgaXMgaW4gUENNOjpEYXRhYmFzZSB3aGljaCBpcyBl
eHBsYWluZWQgYmVsb3cuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
ZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6RGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgICAgICBO
b3cgdGFrZXMgYW4gYXBwIGJ1bmRsZSBJRCBzdXBwbGllZCBmcm9tIHRoZSBuZXR3b3JrIHNlc3Np
b24gYW5kCisgICAgICAgICAgICBpbmNsdWRlcyBpdCBpbiB0aGUgZGF0YWJhc2UgcXVlcnkgdG8g
ZmluZCBtYXRjaGluZyBlbnRyaWVzLiBJZiBhbmQKKyAgICAgICAgICAgIGF0dHJpYnV0aW9uIHdh
cyBzYXZlZCB3aXRoIGFwcCBidW5kbGUgSUQgWFlaLCBpdCBzaG91bGQgb25seSBiZQorICAgICAg
ICAgICAgYmUgY29udmVydGVkIGluIGFuIGFwcGxpY2F0aW9uIHdpdGggYXBwIGJ1bmRsZSBJRCBY
WVouCisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KToKKyAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FsbHMgUENNOjpEYXRh
YmFzZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkKKyAgICAgICAgICAgIHdoaWNoIG5l
ZWRzIHRoZSBhcHAgYnVuZGxlIElEIHNvIHRoYXQgSUQgaXMgZm9yd2FyZGVkIHRocm91Z2guCisg
ICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OnJlbW92ZVVuYXR0cmlidXRlZCk6CisgICAg
ICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRl
cmF0aW9uLgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1
dGlvbik6CisgICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQg
aW50byBjb25zaWRlcmF0aW9uLgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjptYXJr
UmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbik6CisgICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRh
a2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uLgorICAgICAgICAoV2ViS2l0
OjpQQ006OkRhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UpOgorICAgICAgICAgICAg
QWxzbyBuZWVkcyB0byB0YWtlIHRoZSBhcHAgYnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbi4K
KyAgICAgICAgKFdlYktpdDo6UENNOjpEYXRhYmFzZTo6ZWFybGllc3RUaW1lc1RvU2VuZCk6Cisg
ICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25z
aWRlcmF0aW9uLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVBdHRyaWJ1dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
cHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXIpOgorICAgICAgICAgICAgQ2xlYXJzIHRoZSB0ZXN0
IHNldHRpbmcgZm9yIGFwcCBidW5kbGUgSUQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENN
OjptZXNzYWdlVHlwZVNlbmRzUmVwbHkpOgorICAgICAgICAoV2ViS2l0OjpQQ006OmRlY29kZU1l
c3NhZ2VBbmRTZW5kVG9NYW5hZ2VyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2Uu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6TWFuYWdlclByb3h5OjpoYW5kbGVBdHRyaWJ1dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6TWFuYWdlclByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9y
VGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpTdG9yZTo6YXR0cmlidXRlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBDTUZyYXVkUHJl
dmVudGlvblZhbHVlc0ZvclRlc3RpbmcpOgorICAgICAgICAoV0tQYWdlU2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKwogMjAyMS0wOS0yOCAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdIEFkZCBTUEkgdG8gc2VsZWN0IGEgdGFiIGNyZWF0ZWQgYnkgX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50LmNwcAppbmRleCAwYTc4MTQ4ODNhMTQzOTQ5YjJkOWI3NTVmOTc3YzQwYzU5ODYz
MGFkLi5mYjg4ZDQ2Yjk0NzdmNWYxNTkzYzNlNmYwYTM5ZGExNTQ2MjY1ODk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgogCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgog
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvQ3Jvc3NU
aHJlYWRDb3BpZXIuaD4KICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KQEAgLTE0NCw2ICsxNDUs
MjAgQEAgYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzUHJldmlvdXNseUJlZW5SZXBv
cnRlZCgpCiAgICAgcmV0dXJuICFtX3RpbWVzVG9TZW5kLnNvdXJjZUVhcmxpZXN0VGltZVRvU2Vu
ZCB8fCAhbV90aW1lc1RvU2VuZC5kZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2VuZDsKIH0KIAor
dm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJ
REZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBhcHBCdW5kbGVJRCkKK3sKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICAvLyBNYWtlIHN1cmUgb3RoZXIgY2xpZW50cyBjYW5ub3QgY2hhbmdlIHRoZWly
IGFwcCBidW5kbGUgSUQgaW4gdGhlIGV5ZXMgb2YgUENNLgorICAgIFJFTEVBU0VfQVNTRVJUKFdl
YkNvcmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpID09ICJjb20uYXBwbGUuV2ViS2l0
LldlYktpdFRlc3RSdW5uZXIiX3MgfHwgV2ViQ29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyKCkgPT0gIm9yZy53ZWJraXQuV2ViS2l0VGVzdFJ1bm5lckFwcCJfcyk7CisgICAgaWYgKGFw
cEJ1bmRsZUlELmlzRW1wdHkoKSkgeworICAgICAgICBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SUQgPSBXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyNlbmRpZgorICAgIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9IGFw
cEJ1bmRsZUlEOworfQorCisKIHN0YXRpYyBTZWNvbmRzIHJhbmRvbWx5QmV0d2VlblR3ZW50eUZv
dXJBbmRGb3J0eUVpZ2h0SG91cnMoKQogewogICAgIHJldHVybiAyNF9oICsgU2Vjb25kcyhyYW5k
b21OdW1iZXIoKSAqICgyNF9oKS52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKaW5kZXggMDZiYmZmN2M1MDQ3NmE5YzI4MmFjN2Ji
YWYyYjRlMTQzNjBiMmQ0ZS4uZGFlMjQzNDRmMmJkODBhMzZlYzhiOTViYjhiODE0N2NkNTdlYjQy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
LmgKQEAgLTM0MSw2ICszNDEsNyBAQCBwdWJsaWM6CiAgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhPiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSgpIGNvbnN0IHsg
cmV0dXJuIG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsgfQogICAgIHZvaWQgc2V0QXR0cmlidXRp
b24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpIHsgbV9h
dHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsg
fQogICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJRDsgfQorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJREZvclRlc3RpbmcoY29uc3QgU3RyaW5n
Jik7CiAKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZURlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9zb3VyY2VEZXNjcmlwdGlvbjsgfQogICAgIGNvbnN0IFN0cmluZyYgcHVyY2hhc2VyKCkg
Y29uc3QgeyByZXR1cm4gbV9wdXJjaGFzZXI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggZGMzMTM1MTlhMWMzNzQ4MzFjMzdhZDg5
ZDdhMmFjMWE3ZTJmMTZkOS4uYzE2MTg0ODNlNmUzYTZjMDc2OGRlNmIzNzI4Mzk1ODJjNzc0ZGM3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKQEAgLTI2ODYsNiArMjY4NiwxNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQQ01GcmF1
ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3NpbwogICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgU3RyaW5nJiYgYXBwQnVuZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBu
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQorICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXVEZNb3ZlKGFwcEJ1bmRsZUlERm9y
VGVzdGluZykpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6YWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPiYmIGxv
YWRlcikKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKGxvYWRlci0+
c2Vzc2lvbklEKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCmluZGV4IDdlMGMxOTkyYzJlMDRlMmJmY2QzOGI5MjJjOGNmNGU4N2U1ZDRmYTEuLjdl
ZTc5MWFkOThlY2Y0N2JjOTgzZGM2Yjc0M2QzZmNkNTdmZmE2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTM1MCw2ICszNTAsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVw
b3J0VVJMc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFVSTCYmIHNvdXJjZVVSTCwgVVJMJiYg
ZGVzdGluYXRpb25VUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBt
YXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFBDTUZyYXVk
UHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIHVubGlu
a2FibGVUb2tlbiwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3Ry
aW5nJiYga2V5SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhQQUw6OlNlc3Npb25J
RCwgU3RyaW5nJiYgYXBwQnVuZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogCiAgICAgUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFnZXI+IHN0b3Jh
Z2VRdW90YU1hbmFnZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdp
biYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAyMmVhOTczZDQ5NTNjNDgyODczNmMyYzMwNmEzNjZj
MWE2ZGFlODQ5Li44MmNkYzNmNWFhNzFhMjBhOWNkMTcwZTdlZTYzYTI4MGYwNTczZTljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4KQEAgLTE3MSw2ICsxNzEsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHNv
dXJjZVVSTCwgVVJMIGRlc3RpbmF0aW9uVVJMKSAtPiAoKSBBc3luYwogICAgIE1hcmtQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkgLT4gKCkgQXN5bmMKICAgICBTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0
aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIHNlY3JldFRva2VuLCBTdHJpbmcg
dW5saW5rYWJsZVRva2VuLCBTdHJpbmcgc2lnbmF0dXJlLCBTdHJpbmcga2V5SUQpIC0+ICgpIEFz
eW5jCisgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgYXBwQnVuZGxlSURGb3JUZXN0aW5nKSAt
PiAoKSBBc3luYwogICAgIEdldExvY2FsU3RvcmFnZU9yaWdpbkRldGFpbHMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFj
a2VyOjpPcmlnaW5EZXRhaWxzPiBkZXRhaWxzKSBBc3luYwogCiAgICAgU2V0U2VydmljZVdvcmtl
ckZldGNoVGltZW91dEZvclRlc3RpbmcoU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBTeW5jaHJvbm91
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApp
bmRleCBlOGI0OWVlMGU1Mjg0MTQzMmFjYTFlMDFhMWNhMmQ1YzQ3NjU1Y2U0Li45YWFlNmE4YWU2
ZTM4OGEzYmIzMDAzYjhkNjA0ZjM3MzU4MGNlMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1
ZGUgIldlYlNvY2tldFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUphci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUg
Ik5ldHdvcmtTZXNzaW9uQ29jb2EuaCIKQEAgLTMyMyw3ICszMjQsMTEgQEAgdm9pZCBOZXR3b3Jr
U2Vzc2lvbjo6c3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWUKIAogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6aGFuZGxlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb252ZXJzaW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgY29uc3QgVVJMJiByZXF1ZXN0VVJM
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCkKIHsKLSAg
ICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLmhhbmRsZUF0dHJpYnV0aW9uKFdURk1vdmUoYXR0
cmlidXRpb25UcmlnZ2VyRGF0YSksIHJlcXVlc3RVUkwsIFJlZ2lzdHJhYmxlRG9tYWluKHJlZGly
ZWN0UmVxdWVzdC51cmwoKSksIHJlZGlyZWN0UmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygp
KTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLmhh
bmRsZUF0dHJpYnV0aW9uKFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIHJlcXVlc3RV
UkwsIFJlZ2lzdHJhYmxlRG9tYWluKHJlZGlyZWN0UmVxdWVzdC51cmwoKSksIHJlZGlyZWN0UmVx
dWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIoKSk7CisjZWxzZQorICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuaGFuZGxl
QXR0cmlidXRpb24oV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgcmVxdWVzdFVSTCwg
UmVnaXN0cmFibGVEb21haW4ocmVkaXJlY3RSZXF1ZXN0LnVybCgpKSwgcmVkaXJlY3RSZXF1ZXN0
LmZpcnN0UGFydHlGb3JDb29raWVzKCksIGVtcHR5U3RyaW5nKCkpOworI2VuZGlmCiB9CiAKIHZv
aWQgTmV0d29ya1Nlc3Npb246OmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0zOTIsNiArMzk3
LDExIEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxv
Y2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDCiAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoKS5hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY2VydGlmaWNh
dGVJbmZvKTsKIH0KIAordm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoU3RyaW5nJiYgYXBwQnVuZGxlSURGb3JUZXN0aW5n
KQoreworICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV1RGTW92ZShhcHBCdW5kbGVJREZvclRlc3Rpbmcp
KTsKK30KKwogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6YWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29y
a1Jlc291cmNlTG9hZGVyPiYmIGxvYWRlcikKIHsKICAgICBBU1NFUlQobV9zZXNzaW9uSUQgPT0g
bG9hZGVyLT5zZXNzaW9uSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmgKaW5kZXggNWVjZTE0NGNmY2JiOTUxNjk3ODRkNGM4ZTcyNzRhYmQ3YmRi
ZTkxMi4uMzRjNzViZDc1OGYxNDc4MDhiOWY4M2ZlYTY2OTliZDQ5YzJmMDkzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMTQxLDYgKzE0
MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRl
c3RpbmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3Ry
aW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCk7CiAgICAgdm9pZCBmaXJlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpOwogICAgIHZvaWQgYWxs
b3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmcoU3RyaW5nJiYpOwogCiAgICAgdm9pZCBhZGRLZXB0QWxpdmVMb2Fk
KFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+JiYpOwogICAgIHZvaWQgcmVtb3ZlS2VwdEFsaXZl
TG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3BwCmluZGV4
IGE3NGU2MzFiYWFkM2U5MjM4MWJiZTQwYWZmN2M0YTI4MzE5MDA0ZTIuLjdkZTZmZWU2YzQzNmFi
ODExNzVhNzJkYWJjZGM2YTRlODViYjU0YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcApAQCAt
NDMsMTggKzQzLDE4IEBAIGNvbnN0ZXhwciBhdXRvIGluc2VydFVuYXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50UXVlcnkgPSAiSU5TRVJUIE9SIFJFUExBCiAgICAgInNvdXJjZUlELCB0
aW1lT2ZBZENsaWNrLCB0b2tlbiwgc2lnbmF0dXJlLCBrZXlJRCwgc291cmNlQXBwbGljYXRpb25C
dW5kbGVJRCkgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KSJfczsKIGNvbnN0ZXhwciBh
dXRvIGluc2VydEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5ID0gIklOU0VS
VCBPUiBSRVBMQUNFIElOVE8gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IChzb3Vy
Y2VTaXRlRG9tYWluSUQsIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklELCAiCiAgICAgInNvdXJjZUlE
LCBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBwcmlvcml0eSwgdGltZU9mQWRDbGljaywgZWFybGll
c3RUaW1lVG9TZW5kVG9Tb3VyY2UsIHRva2VuLCBzaWduYXR1cmUsIGtleUlELCBlYXJsaWVzdFRp
bWVUb1NlbmRUb0Rlc3RpbmF0aW9uLCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKSBWQUxVRVMg
KD8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pIl9zOwotY29uc3RleHByIGF1dG8g
ZmluZFVuYXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gVW5hdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGlu
YXRpb25TaXRlRG9tYWluSUQgPSA/Il9zOwotY29uc3RleHByIGF1dG8gZmluZEF0dHJpYnV0ZWRR
dWVyeSA9ICJTRUxFQ1QgKiBGUk9NIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBX
SEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9
ID8iX3M7Ci1jb25zdGV4cHIgYXV0byByZW1vdmVVbmF0dHJpYnV0ZWRRdWVyeSA9ICJERUxFVEUg
RlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRl
RG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8iX3M7Citjb25zdGV4
cHIgYXV0byBmaW5kVW5hdHRyaWJ1dGVkUXVlcnkgPSAiU0VMRUNUICogRlJPTSBVbmF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFO
RCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gZmluZEF0dHJpYnV0ZWRRdWVyeSA9ICJTRUxFQ1Qg
KiBGUk9NIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRl
RG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFw
cGxpY2F0aW9uQnVuZGxlSUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gcmVtb3ZlVW5hdHRyaWJ1
dGVkUXVlcnkgPSAiREVMRVRFIEZST00gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRlRG9tYWlu
SUQgPSA/IEFORCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEID0gPyJfczsKIGNvbnN0ZXhwciBh
dXRvIGFsbEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5ID0gIlNFTEVDVCAq
LCBNSU4oZWFybGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVz
dGluYXRpb24pIGFzIG1pblZhbCAiCiAgICAgIkZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50IFdIRVJFIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlIElTIE5PVCBOVUxMIEFO
RCBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIElTIE5PVCBOVUxMICIKICAgICAiVU5J
T04gQUxMIFNFTEVDVCAqLCBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJjZSBhcyBtaW5WYWwgRlJP
TSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgZWFybGllc3RUaW1lVG9T
ZW5kVG9EZXN0aW5hdGlvbiBJUyBOVUxMICIKICAgICAiVU5JT04gQUxMIFNFTEVDVCAqLCBlYXJs
aWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIGFzIG1pblZhbCBGUk9NIEF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJjZSBJUyBO
VUxMIE9SREVSIEJZIG1pblZhbCJfczsKIGNvbnN0ZXhwciBhdXRvIGFsbFVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25zUXVlcnkgPSAiU0VMRUNUICogRlJPTSBV
bmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfczsKIGNvbnN0ZXhwciBhdXRvIGNs
ZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnkgPSAiREVMRVRFIEZST00gVW5h
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgPyA+IHRpbWVPZkFkQ2xpY2si
X3M7Ci1jb25zdGV4cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2VRdWVyeSA9ICJVUERB
VEUgQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFNFVCBlYXJsaWVzdFRpbWVUb1Nl
bmRUb1NvdXJjZSA9IG51bGwgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGlu
YXRpb25TaXRlRG9tYWluSUQgPSA/Il9zOwotY29uc3RleHByIGF1dG8gbWFya1JlcG9ydEFzU2Vu
dFRvRGVzdGluYXRpb25RdWVyeSA9ICJVUERBVEUgQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50IFNFVCBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uID0gbnVsbCBXSEVSRSBz
b3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8iX3M7
Ci1jb25zdGV4cHIgYXV0byBlYXJsaWVzdFRpbWVzVG9TZW5kUXVlcnkgPSAiU0VMRUNUIGVhcmxp
ZXN0VGltZVRvU2VuZFRvU291cmNlLCBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIEZS
T00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21h
aW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKK2NvbnN0ZXhwciBh
dXRvIG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZVF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlID0gbnVs
bCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5J
RCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSA/Il9zOworY29uc3RleHByIGF1
dG8gbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb25RdWVyeSA9ICJVUERBVEUgQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFNFVCBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0
aW9uID0gbnVsbCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNp
dGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSA/Il9zOworY29u
c3RleHByIGF1dG8gZWFybGllc3RUaW1lc1RvU2VuZFF1ZXJ5ID0gIlNFTEVDVCBlYXJsaWVzdFRp
bWVUb1NlbmRUb1NvdXJjZSwgZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlvbiBGUk9NIEF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQg
PSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9u
QnVuZGxlSUQgPSA/Il9zOwogY29uc3RleHByIGF1dG8gZG9tYWluSURGcm9tU3RyaW5nUXVlcnkg
PSAiU0VMRUNUIGRvbWFpbklEIEZST00gUENNT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJh
YmxlRG9tYWluID0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIGRvbWFpblN0cmluZ0Zyb21Eb21haW5J
RFF1ZXJ5ID0gIlNFTEVDVCByZWdpc3RyYWJsZURvbWFpbiBGUk9NIFBDTU9ic2VydmVkRG9tYWlu
cyBXSEVSRSBkb21haW5JRCA9ID8iX3M7CiBjb25zdGV4cHIgYXV0byBjcmVhdGVVbmF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9ICJDUkVBVEUgVEFCTEUgVW5hdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgKCIKQEAgLTIzNyw3ICsyMzcsNyBAQCB2b2lkIERhdGFiYXNl
OjptYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JU
ZXN0aW5nKCkKICAgICB9CiB9CiAKLXN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPERhdGFiYXNlOjpV
bmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4sIHN0ZDo6b3B0aW9uYWw8RGF0YWJh
c2U6OkF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IERhdGFiYXNlOjpmaW5kUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlKQor
c3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Piwgc3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6QXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50Pj4gRGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChj
b25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNl
U2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9u
RGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogewogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogICAgIGF1dG8gc291cmNlU2l0ZURvbWFpbklEID0gZG9tYWlu
SUQoc291cmNlU2l0ZS5yZWdpc3RyYWJsZURvbWFpbik7CkBAIC0yNDgsNyArMjQ4LDggQEAgc3Rk
OjpwYWlyPHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50Piwgc3RkOjpvcHQKICAgICBhdXRvIGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0
ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV9maW5kVW5hdHRyaWJ1dGVkU3RhdGVtZW50
LCBmaW5kVW5hdHRyaWJ1dGVkUXVlcnksICJmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiX3Mp
OwogICAgIGlmICghZmluZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudAogICAgICAgICB8fCBm
aW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3VyY2VTaXRlRG9t
YWluSUQpICE9IFNRTElURV9PSwotICAgICAgICB8fCBmaW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3Rh
dGVtZW50LT5iaW5kSW50KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09L
KSB7CisgICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQo
MiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgZmlu
ZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgYXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICIlcCAtIERhdGFiYXNlOjpmaW5kUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgZmluZFVuYXR0cmlidXRlZFF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAlIiBQUklW
QVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC0yNTYsNyArMjU3LDggQEAgc3RkOjpw
YWlyPHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50Piwgc3RkOjpvcHQKICAgICBhdXRvIGZpbmRBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50
ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fZmluZEF0dHJpYnV0ZWRTdGF0ZW1lbnQsIGZpbmRB
dHRyaWJ1dGVkUXVlcnksICJmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiX3MpOwogICAgIGlm
ICghZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgZmluZEF0dHJpYnV0
ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FM
SVRFX09LCi0gICAgICAgIHx8IGZpbmRBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5kSW50
KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIHx8
IGZpbmRBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDIsICpkZXN0aW5hdGlvblNp
dGVEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IGZpbmRBdHRyaWJ1dGVkU2NvcGVk
U3RhdGVtZW50LT5iaW5kVGV4dCgzLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpICE9IFNR
TElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgIiVwIC0gRGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBmaW5kQXR0
cmlidXRlZFF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICB9CkBAIC0yNzIsNyArMjc0LDcgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8RGF0
YWJhc2U6OlVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50Piwgc3RkOjpvcHQKICAg
ICByZXR1cm4gc3RkOjptYWtlX3BhaXIodW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIGF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk7CiB9CiAKLXN0ZDo6cGFpcjxz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlv
blNlY29uZHNVbnRpbFNlbmREYXRhPiwgRGVidWdJbmZvPiBEYXRhYmFzZTo6YXR0cmlidXRlUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYm
IGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpCitzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0
YT4sIERlYnVnSW5mbz4gRGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50
KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiBzb3Vy
Y2VTaXRlLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25EZXN0aW5hdGlvblNpdGUmIGRlc3RpbmF0aW9uU2l0ZSwgY29uc3QgQXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25U
cmlnZ2VyRGF0YSkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMjkx
LDcgKzI5Myw3IEBAIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpCiAKICAgICBXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSBzZWNv
bmRzVW50aWxTZW5kIHsgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfTsKIAotICAgIGF1dG8g
YXR0cmlidXRpb24gPSBmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVz
dGluYXRpb25TaXRlKTsKKyAgICBhdXRvIGF0dHJpYnV0aW9uID0gZmluZFByaXZhdGVDbGlja01l
YXN1cmVtZW50KHNvdXJjZVNpdGUsIGRlc3RpbmF0aW9uU2l0ZSwgYXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyKTsKICAgICBhdXRvJiBwcmV2aW91c2x5VW5hdHRyaWJ1dGVkID0gYXR0cmlidXRp
b24uZmlyc3Q7CiAgICAgYXV0byYgcHJldmlvdXNseUF0dHJpYnV0ZWQgPSBhdHRyaWJ1dGlvbi5z
ZWNvbmQ7CiAKQEAgLTM1MCw2ICszNTIsNyBAQCB2b2lkIERhdGFiYXNlOjpyZW1vdmVVbmF0dHJp
YnV0ZWQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmIGF0dHJpYnV0aW9uKQogICAg
IGlmICghc2NvcGVkU3RhdGVtZW50CiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZElu
dCgxLCAqc291cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2NvcGVk
U3RhdGVtZW50LT5iaW5kSW50KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRF
X09LCisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgYXR0cmlidXRpb24u
c291cmNlQXBwbGljYXRpb25CdW5kbGVJRCgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2Nv
cGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICIlcCAtIERhdGFiYXNlOjpyZW1vdmVV
bmF0dHJpYnV0ZWQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpAQCAtNTIyLDYgKzUyNSw3IEBAIHZvaWQgRGF0YWJhc2U6OmNsZWFyU2VudEF0dHJpYnV0aW9u
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgYXR0cmlidXRpCiAKICAgICBhdXRv
IHNvdXJjZVNpdGVEb21haW5JRCA9IGRvbWFpbklEKGF0dHJpYnV0aW9uLnNvdXJjZVNpdGUoKS5y
ZWdpc3RyYWJsZURvbWFpbik7CiAgICAgYXV0byBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9IGRv
bWFpbklEKGF0dHJpYnV0aW9uLmRlc3RpbmF0aW9uU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluKTsK
KyAgICBhdXRvIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSBhdHRyaWJ1dGlvbi5zb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlEKCk7CiAKICAgICBpZiAoIXNvdXJjZVNpdGVEb21haW5JRCB8fCAh
ZGVzdGluYXRpb25TaXRlRG9tYWluSUQpCiAgICAgICAgIHJldHVybjsKQEAgLTUzMiw3ICs1MzYs
NyBAQCB2b2lkIERhdGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCYmIGF0dHJpYnV0aQogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgbWFya1JlcG9y
dEFzU2VudFRvU291cmNlKCpzb3VyY2VTaXRlRG9tYWluSUQsICpkZXN0aW5hdGlvblNpdGVEb21h
aW5JRCk7CisgICAgICAgIG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZSgqc291cmNlU2l0ZURvbWFp
bklELCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQsIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQp
OwogICAgICAgICBzb3VyY2VFYXJsaWVzdFRpbWVUb1NlbmQgPSBzdGQ6Om51bGxvcHQ7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQ6OkRlc3RpbmF0aW9uOgpAQCAtNTQwLDcgKzU0NCw3IEBA
IHZvaWQgRGF0YWJhc2U6OmNsZWFyU2VudEF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50JiYgYXR0cmlidXRpCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBtYXJrUmVwb3J0QXNT
ZW50VG9EZXN0aW5hdGlvbigqc291cmNlU2l0ZURvbWFpbklELCAqZGVzdGluYXRpb25TaXRlRG9t
YWluSUQpOworICAgICAgICBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbigqc291cmNlU2l0
ZURvbWFpbklELCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQsIHNvdXJjZUFwcGxpY2F0aW9uQnVu
ZGxlSUQpOwogICAgICAgICBkZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2VuZCA9IHN0ZDo6bnVs
bG9wdDsKICAgICB9CiAKQEAgLTU0OCwxNyArNTUyLDE4IEBAIHZvaWQgRGF0YWJhc2U6OmNsZWFy
U2VudEF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgYXR0cmli
dXRpCiAgICAgaWYgKGRlc3RpbmF0aW9uRWFybGllc3RUaW1lVG9TZW5kIHx8IHNvdXJjZUVhcmxp
ZXN0VGltZVRvU2VuZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBjbGVhckF0dHJpYnV0
ZWRTdGF0ZW1lbnQgPSBtX2RhdGFiYXNlLnByZXBhcmVTdGF0ZW1lbnQoIkRFTEVURSBGUk9NIEF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQg
PSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8iX3MpOworICAgIGF1dG8gY2xlYXJB
dHRyaWJ1dGVkU3RhdGVtZW50ID0gbV9kYXRhYmFzZS5wcmVwYXJlU3RhdGVtZW50KCJERUxFVEUg
RlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURv
bWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQgPSA/IEFORCBzb3VyY2VBcHBs
aWNhdGlvbkJ1bmRsZUlEID0gPyJfcyk7CiAgICAgaWYgKCFjbGVhckF0dHJpYnV0ZWRTdGF0ZW1l
bnQKICAgICAgICAgfHwgY2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3Vy
Y2VTaXRlRG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRT
dGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVf
T0sKKyAgICAgICAgfHwgY2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50LT5iaW5kVGV4dCgzLCBzb3Vy
Y2VBcHBsaWNhdGlvbkJ1bmRsZUlEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgY2xlYXJBdHRy
aWJ1dGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICIlcCAtIERhdGFiYXNlOjpjbGVh
clNlbnRBdHRyaWJ1dGlvbiBmYWlsZWQgdG8gc3RlcCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFU
RV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCi12b2lkIERhdGFiYXNlOjptYXJrUmVw
b3J0QXNTZW50VG9EZXN0aW5hdGlvbihTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQs
IERlc3RpbmF0aW9uRG9tYWluSUQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQpCit2b2lkIERhdGFi
YXNlOjptYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbihTb3VyY2VEb21haW5JRCBzb3VyY2VT
aXRlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWluSUQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQs
IGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYgc291cmNlQXBwbGljYXRpb25CdW5k
bGVJRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBhdXRvIHNjb3Bl
ZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX21hcmtSZXBvcnRBc1NlbnRUb0Rl
c3RpbmF0aW9uU3RhdGVtZW50LCBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvblF1ZXJ5LCAi
bWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24iX3MpOwpAQCAtNTY2LDEzICs1NzEsMTQgQEAg
dm9pZCBEYXRhYmFzZTo6bWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24oU291cmNlRG9tYWlu
SUQgc291cmNlU2l0ZURvbWFpbklELAogICAgIGlmICghc2NvcGVkU3RhdGVtZW50CiAgICAgICAg
IHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCBzb3VyY2VTaXRlRG9tYWluSUQpICE9IFNR
TElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgZGVzdGluYXRp
b25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQt
PmJpbmRUZXh0KDMsIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpICE9IFNRTElURV9PSwogICAg
ICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkRhdGFiYXNlOjpt
YXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbiwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xP
R19TVFJJTkcsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CiB9CiAKLXZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRU
b1NvdXJjZShTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9t
YWluSUQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQpCit2b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0
QXNTZW50VG9Tb3VyY2UoU291cmNlRG9tYWluSUQgc291cmNlU2l0ZURvbWFpbklELCBEZXN0aW5h
dGlvbkRvbWFpbklEIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklELCBjb25zdCBBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXImIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpCiB7CiAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5z
Y29wZWRTdGF0ZW1lbnQobV9tYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2VTdGF0ZW1lbnQsIG1hcmtS
ZXBvcnRBc1NlbnRUb1NvdXJjZVF1ZXJ5LCAibWFya1JlcG9ydEFzU2VudFRvU291cmNlIl9zKTsK
QEAgLTU4MCw2ICs1ODYsNyBAQCB2b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9Tb3Vy
Y2UoU291cmNlRG9tYWluSUQgc291cmNlU2l0ZURvbWFpbklELCBEZXN0aQogICAgIGlmICghc2Nv
cGVkU3RhdGVtZW50CiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCBzb3Vy
Y2VTaXRlRG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQt
PmJpbmRJbnQoMiwgZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAg
ICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDMsIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBT
UUxJVEVfRE9ORSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgIkRhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UsIGVycm9yIG1lc3Nh
Z2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02MDAsNiArNjA3LDcgQEAgc3RkOjpwYWly
PHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZD4sIHN0ZDo6
b3B0aW9uYWw8RGF0YWIKICAgICBpZiAoIXNjb3BlZFN0YXRlbWVudAogICAgICAgICB8fCBzY29w
ZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09L
CiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRl
RG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRU
ZXh0KDMsIGF0dHJpYnV0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQoKSkgIT0gU1FMSVRF
X09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ST1cpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJEYXRh
YmFzZTo6ZWFybGllc3RUaW1lc1RvU2VuZCwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19T
VFJJTkcsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmgKaW5kZXggMmVlZDg5NDVkYTBiZmQyNTYxYWQ5ODcw
NGI4ZWY3MTE4MDIxOWQzYS4uODQwMWJhOTg4NmRlYzU0Njg3ZjExMzZiMDEyZWZhYTAwY2VhNGMw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudERhdGFiYXNlLmgKQEAgLTQyLDEwICs0MiwxMiBAQCBwdWJsaWM6CiAgICAg
RGF0YWJhc2UoY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KTsKICAgICB2aXJ0dWFsIH5E
YXRhYmFzZSgpOwogICAgIAorICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9
IFN0cmluZzsKKwogICAgIHN0YXRpYyB2b2lkIGludGVycnVwdEFsbERhdGFiYXNlcygpOwogCiAg
ICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSk7
Ci0gICAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+IGF0dHJp
YnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CisgICAgc3RkOjpwYWlyPHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9u
U2Vjb25kc1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+IGF0dHJpYnV0ZVByaXZhdGVDbGlja01l
YXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VT
aXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9u
RGVzdGluYXRpb25TaXRlJiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiwgV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7
CiAgICAgVmVjdG9yPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBhbGxBdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4pOwog
ICAgIHZvaWQgY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKQEAgLTY2LDEx
ICs2OCwxMSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjcmVhdGVTY2hlbWEoKSBmaW5hbDsKICAg
ICB2b2lkIGRlc3Ryb3lTdGF0ZW1lbnRzKCkgZmluYWw7Ci0gICAgc3RkOjpwYWlyPHN0ZDo6b3B0
aW9uYWw8VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdGlvbmFs
PEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IGZpbmRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0
ZSYsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRl
c3RpbmF0aW9uU2l0ZSYpOworICAgIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFVuYXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50Piwgc3RkOjpvcHRpb25hbDxBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ+PiBmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBj
b25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsKICAgICB2b2lkIHJlbW92ZVVuYXR0
cmlidXRlZChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwogICAgIFN0cmluZyBh
dHRyaWJ1dGlvblRvU3RyaW5nRm9yVGVzdGluZyhjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCYpIGNvbnN0OwotICAgIHZvaWQgbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRp
b24oU291cmNlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWluSUQpOwotICAgIHZvaWQgbWFya1Jl
cG9ydEFzU2VudFRvU291cmNlKFNvdXJjZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFpbklEKTsK
KyAgICB2b2lkIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKFNvdXJjZURvbWFpbklELCBE
ZXN0aW5hdGlvbkRvbWFpbklELCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsK
KyAgICB2b2lkIG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZShTb3VyY2VEb21haW5JRCwgRGVzdGlu
YXRpb25Eb21haW5JRCwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJik7CiAgICAg
c3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8U291cmNlRWFybGllc3RUaW1lVG9TZW5kPiwgc3RkOjpv
cHRpb25hbDxEZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2VuZD4+IGVhcmxpZXN0VGltZXNUb1Nl
bmQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKICAgICBzdGQ6Om9w
dGlvbmFsPERvbWFpbklEPiBlbnN1cmVEb21haW5JRChjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYpOwogICAgIHN0ZDo6b3B0aW9uYWw8RG9tYWluSUQ+IGRvbWFpbklEKGNvbnN0IFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKaW5kZXggZjQ5
OTgzOThlOGMxYjNiZDIyOGVjYWU2NDI0ZTZhNTYwYjk1YThiOS4uMDg5ODk2YmQ4MjdkODkwMTkz
NGEwMzFiYjY2NGI2OTZmMTkyM2UyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcApAQCAtNzcsNiAr
NzcsOSBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RvcmVVbmF0dHJp
YnV0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJgogCiAgICAgY2xlYXJFeHBpcmVkKCk7CiAK
KyAgICBpZiAobV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZykK
KyAgICAgICAgbWVhc3VyZW1lbnQuc2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJREZvclRlc3Rp
bmcoKm1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOworCiAg
ICAgaWYgKG1lYXN1cmVtZW50LmVwaGVtZXJhbFNvdXJjZU5vbmNlKCkpIHsKICAgICAgICAgYXV0
byBtZWFzdXJlbWVudENvcHkgPSBtZWFzdXJlbWVudDsKICAgICAgICAgLy8gVGhpcyBpcyBndWFy
YW50ZWVkIHRvIGJlIGNsb3NlIGluIHRpbWUgdG8gdGhlIG5hdmlnYXRpb25hbCBjbGljayB3aGlj
aCBtYWtlcyBpdCBsaWtlbHkgdG8gYmUgcGVyc29uYWxseSBpZGVudGlmaWFibGUuCkBAIC0yMzAs
NyArMjMzLDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6Om1pZ3JhdGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdhY3lTdG8KICAgICBzdG9yZSgpLmluc2VydFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KFdURk1vdmUobWVhc3VyZW1lbnQpLCB0eXBlKTsKIH0KIAot
dm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRsZUF0dHJpYnV0aW9uKEF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBjb25zdCBVUkwm
IHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCkKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyOjpoYW5kbGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmli
dXRpb25UcmlnZ2VyRGF0YSwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmIHJlZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwsIGNv
bnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyKQogewogICAgIGlmICghZmVhdHVyZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAt
MjQ3LDcgKzI1MCw3IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5k
bGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYKIAogICAgIG1fY2xpZW50LT5i
cm9hZGNhc3RDb25zb2xlTWVzc2FnZShNZXNzYWdlTGV2ZWw6OkxvZywgIltQcml2YXRlIENsaWNr
IE1lYXN1cmVtZW50XSBUcmlnZ2VyaW5nIGV2ZW50IGFjY2VwdGVkLiJfcyk7CiAKLSAgICBhdHRy
aWJ1dGUoU291cmNlU2l0ZSB7IFdURk1vdmUocmVkaXJlY3REb21haW4pIH0sIEF0dHJpYnV0aW9u
RGVzdGluYXRpb25TaXRlIHsgZmlyc3RQYXJ0eVVSTCB9LCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEpKTsKKyAgICBhdHRyaWJ1dGUoU291cmNlU2l0ZSB7IFdURk1vdmUocmVkaXJlY3RE
b21haW4pIH0sIEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlIHsgZmlyc3RQYXJ0eVVSTCB9LCBX
VEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50
QXBwQnVuZGxlSURGb3JUZXN0aW5nID8gKm1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5k
bGVJREZvclRlc3RpbmcgOiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpOwogfQogCiB2b2lk
IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9y
VGVzdGluZygpCkBAIC0yNTUsMTIgKzI1OCwyNCBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcjo6c3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpCiAgICAgc3RhcnRU
aW1lcigwX3MpOwogfQogCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyJiYgYXBwQnVuZGxlSUQpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgLy8gTWFrZSBzdXJlIG90aGVyIGNsaWVudHMgY2Fubm90IGNoYW5nZSB0aGVpciBhcHAgYnVu
ZGxlIElEIGluIHRoZSBleWVzIG9mIFBDTS4KKyAgICBSRUxFQVNFX0FTU0VSVChXZWJDb3JlOjph
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSA9PSAiY29tLmFwcGxlLldlYktpdC5XZWJLaXRU
ZXN0UnVubmVyIl9zIHx8IFdlYkNvcmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpID09
ICJvcmcud2Via2l0LldlYktpdFRlc3RSdW5uZXJBcHAiX3MpOworI2VuZGlmCisgICAgaWYgKGFw
cEJ1bmRsZUlELmlzRW1wdHkoKSkKKyAgICAgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFw
cEJ1bmRsZUlERm9yVGVzdGluZyA9IHN0ZDo6bnVsbG9wdDsKKyAgICBlbHNlCisgICAgICAgIG1f
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcgPSBXVEZNb3ZlKGFw
cEJ1bmRsZUlEKTsKK30KKwogdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0
YXJ0VGltZXIoU2Vjb25kcyBzZWNvbmRzKQogewogICAgIG1fZmlyZVBlbmRpbmdBdHRyaWJ1dGlv
blJlcXVlc3RzVGltZXIuc3RhcnRPbmVTaG90KG1faXNSdW5uaW5nVGVzdCA/IDBfcyA6IHNlY29u
ZHMpOwogfQogCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YXR0cmlidXRl
KGNvbnN0IFNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IEF0dHJpYnV0aW9uRGVzdGluYXRp
b25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1
dGlvblRyaWdnZXJEYXRhKQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmF0
dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBBdHRyaWJ1dGlvbkRl
c3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYg
YXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
JiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFmZWF0dXJlRW5hYmxl
ZCgpKQogICAgICAgICByZXR1cm47CkBAIC0yNzMsNyArMjg4LDcgQEAgdm9pZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXI6OmF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VT
aXRlLCBjb24KICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgICAgIAotICAgIHN0b3Jl
KCkuYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRp
b25TaXRlLCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBzdGQ6OmV4Y2hhbmdlKG1f
ZXBoZW1lcmFsTWVhc3VyZW1lbnQsIHN0ZDo6bnVsbG9wdCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKV0gKGF1dG8gYXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSwg
YXV0byBkZWJ1Z0luZm8pIHsKKyAgICBzdG9yZSgpLmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1
cmVtZW50KHNvdXJjZVNpdGUsIGRlc3RpbmF0aW9uU2l0ZSwgYXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyLCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBzdGQ6OmV4Y2hhbmdlKG1f
ZXBoZW1lcmFsTWVhc3VyZW1lbnQsIHN0ZDo6bnVsbG9wdCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKV0gKGF1dG8gYXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSwg
YXV0byBkZWJ1Z0luZm8pIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgCkBAIC00MzYsNiArNDUxLDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW8KICAgICBtX2ZpcmVQZW5kaW5nQXR0cmlidXRpb25SZXF1ZXN0c1RpbWVyLnN0b3AoKTsKICAg
ICBtX2VwaGVtZXJhbE1lYXN1cmVtZW50ID0gc3RkOjpudWxsb3B0OwogICAgIG1faXNSdW5uaW5n
RXBoZW1lcmFsTWVhc3VyZW1lbnRUZXN0ID0gZmFsc2U7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA9IHN0ZDo6bnVsbG9wdDsKIAogICAgIGlmICgh
ZmVhdHVyZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXIuaAppbmRleCBiYzViYzllNzRhYzA4MzFhZDdjYjkwMTc2YmExMDk1NjBjYjE5
OWJjLi42NzFkMzkwMWJhNjU4OTcwNDcwMDM5Zjk0NTRlZWUxNTljMDUyZmVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmgKQEAgLTQ1LDggKzQ1LDEwIEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoVW5pcXVlUmVmPFBDTTo6Q2xpZW50PiYmLCBjb25zdCBT
dHJpbmcmIHN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIH5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXIoKTsKIAorICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmlu
ZzsKKwogICAgIHZvaWQgc3RvcmVVbmF0dHJpYnV0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQm
JikgZmluYWw7Ci0gICAgdm9pZCBoYW5kbGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMKSBmaW5hbDsKKyAgICB2
b2lkIGhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3QgVVJM
JiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJlZGlyZWN0RG9tYWlu
LCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllciYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KSBmaW5hbDsKICAgICB2b2lkIGNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZv
aWQgbWlncmF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50RnJvbUxlZ2FjeVN0b3JhZ2UoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5
cGUpIGZpbmFsOwpAQCAtNjEsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRFcGhlbWVy
YWxNZWFzdXJlbWVudEZvclRlc3RpbmcoYm9vbCB2YWx1ZSkgZmluYWwgeyBtX2lzUnVubmluZ0Vw
aGVtZXJhbE1lYXN1cmVtZW50VGVzdCA9IHZhbHVlOyB9CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFBy
ZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYmIHVubGlua2FibGVUb2tlbiwgU3RyaW5n
JiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5nJiYga2V5SUQpIGZpbmFs
OwogICAgIHZvaWQgc3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpIGZpbmFsOworICAg
IHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoQXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiYpOwogICAgIHZvaWQgZGVzdHJveVN0b3JlRm9yVGVz
dGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgYWxsb3dU
TFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbyYpIGZpbmFsOwogCkBAIC03Miw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7CiAg
ICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSk7CiAgICAgdm9p
ZCBjbGVhclNlbnRBdHRyaWJ1dGlvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25SZXBvcnRFbmRwb2ludCk7Ci0gICAgdm9pZCBh
dHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYsIGNvbnN0IEF0dHJpYnV0aW9uRGVzdGluYXRpb25T
aXRlJiwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKTsKKyAgICB2b2lkIGF0dHJpYnV0ZShjb25z
dCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYpOwog
ICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50JiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQp
OwogICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0SW1wbChjb25zdCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVu
ZHBvaW50KTsKICAgICB2b2lkIGZpcmVQZW5kaW5nQXR0cmlidXRpb25SZXF1ZXN0cygpOwpAQCAt
ODYsNiArODksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1J1bm5pbmdFcGhlbWVyYWxNZWFz
dXJlbWVudFRlc3QgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8VVJMPiBtX3Rva2VuUHVi
bGljS2V5VVJMRm9yVGVzdGluZzsKICAgICBzdGQ6Om9wdGlvbmFsPFVSTD4gbV90b2tlblNpZ25h
dHVyZVVSTEZvclRlc3Rpbmc7CisgICAgc3RkOjpvcHRpb25hbDxBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXI+IG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc7
CiAgICAgbXV0YWJsZSBSZWZQdHI8UENNOjpTdG9yZT4gbV9zdG9yZTsKICAgICBTdHJpbmcgbV9z
dG9yYWdlRGlyZWN0b3J5OwogICAgIFVuaXF1ZVJlZjxQQ006OkNsaWVudD4gbV9jbGllbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAKaW5kZXggNjdhNDY5MzEzY2M4MmNi
ZmZhNDY0MWIwODRhZWQ5YWE3MDIyNzJjNS4uMzljYzY0ODg2ZjliNGY5NDYyZTAwY2I1MGU1NTJl
YzhiZTc1NzQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZh
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcApAQCAt
NTEsNyArNTEsNyBAQCBBUkdVTUVOVFMoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQp
CiBFTkQKIAogRlVOQ1RJT04oaGFuZGxlQXR0cmlidXRpb24pCi1BUkdVTUVOVFMoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBVUkwsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluLCBVUkwpCitBUkdVTUVOVFMoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyOjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBVUkwsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluLCBVUkwsIFN0cmluZykKIEVORAogCiBGVU5DVElPTihjbGVhcikKQEAgLTEx
MCw2ICsxMTAsMTAgQEAgRlVOQ1RJT04oc3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZykK
IEFSR1VNRU5UUygpCiBFTkQKIAorRlVOQ1RJT04oc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
cHBCdW5kbGVJREZvclRlc3RpbmcpCitBUkdVTUVOVFMoU3RyaW5nKQorRU5ECisKIEZVTkNUSU9O
KGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcpCiBBUkdVTUVOVFMoKQogUkVQTFkoKQpAQCAtMTU0LDYg
KzE1OCw3IEBAIGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VU
eXBlKQogICAgIGNhc2UgTWVzc2FnZVR5cGU6OlNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVz
dGluZzoKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNG
b3JUZXN0aW5nOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZv
clRlc3Rpbmc6CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3Rpbmc6CiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6QWxsb3dUTFND
ZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOgogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6TWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nOgpAQCAtMjY0LDYgKzI2OSw5IEBAIHZvaWQgZGVjb2Rl
TWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIFZlY3Rvcjx1
aW50OF90PiYmIGVuCiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTdGFydFRpbWVySW1tZWRp
YXRlbHlGb3JUZXN0aW5nOgogICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpz
dGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6U2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc6CisgICAgICAgIGhhbmRsZVBDTU1l
c3NhZ2U8TWVzc2FnZUluZm86OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6RGVzdHJveVN0b3JlRm9yVGVzdGluZzoKICAgICAgICAg
aGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseTxNZXNzYWdlSW5mbzo6ZGVzdHJveVN0b3JlRm9yVGVz
dGluZz4oV1RGTW92ZShlbmNvZGVkTWVzc2FnZSksIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKICAg
ICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVy
ZmFjZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAppbmRleCA1Y2Y0
ZTNkZTIxZDBjYzM5OWMyM2FkMDkwN2EzM2Q4ZWVmMDdiNWE1Li5hNGE5NzQ0ODk3MTFhYjQ4YTIy
M2ZmYzQyZDgyMDRmMjYxOTM3MzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlckludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNl
LmgKQEAgLTUwLDkgKzUwLDEwIEBAIHB1YmxpYzoKICAgICB1c2luZyBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OwogICAgIHVzaW5nIFJl
Z2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcg
U291cmNlU2l0ZSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRl
OworICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKIAogICAg
IHZpcnR1YWwgdm9pZCBzdG9yZVVuYXR0cmlidXRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYm
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEmJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYmIHJlZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYm
LCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVk
aXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwgY29uc3QgQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhcihDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb3JSZWdpc3Ry
YWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBtaWdyYXRlUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRGcm9tTGVnYWN5U3RvcmFnZShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSkgPSAwOwpAQCAtNjcsNiArNjgsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGlu
Zyhib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVl
c0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tl
biwgU3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhBcHBs
aWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95
U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29u
c3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikgPSAwOwogfTsKQEAgLTkxLDYgKzkzLDcgQEAg
ZW51bSBjbGFzcyBNZXNzYWdlVHlwZSA6IHVpbnQ4X3QgewogICAgIFNldEVwaGVtZXJhbE1lYXN1
cmVtZW50Rm9yVGVzdGluZywKICAgICBTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0
aW5nLAogICAgIFN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcsCisgICAgU2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcsCiAgICAgRGVzdHJveVN0b3Jl
Rm9yVGVzdGluZywKICAgICBBbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rp
bmcKIH07CkBAIC0xMjcsNiArMTMwLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU+IHsKICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VU
eXBlOjpTZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3RpbmcsCiAgICAgICAgIFdlYktpdDo6
UENNOjpNZXNzYWdlVHlwZTo6U2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZywK
ICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpTdGFydFRpbWVySW1tZWRpYXRlbHlG
b3JUZXN0aW5nLAorICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OlNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nLAogICAgICAgICBXZWJLaXQ6OlBD
TTo6TWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRlc3RpbmcsCiAgICAgICAgIFdlYktpdDo6
UENNOjpNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0
aW5nCiAgICAgPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKaW5kZXggOTdlZjZlZTY3
MmQ0YjhkYTYwNTNiY2M3NDIzMzg1Y2YwZDc4YmUxYi4uYmRhODVjNDk2YjYwYjFlYjYyMGVlYjcx
NDVhYzgxMDNkZjRkZWNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKQEAgLTgw
LDkgKzgwLDkgQEAgdm9pZCBNYW5hZ2VyUHJveHk6OnN0b3JlVW5hdHRyaWJ1dGVkKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgcGNtKQogICAgIHNlbmRNZXNzYWdlPE1lc3NhZ2VU
eXBlOjpTdG9yZVVuYXR0cmlidXRlZD4ocGNtKTsKIH0KIAotdm9pZCBNYW5hZ2VyUHJveHk6Omhh
bmRsZUF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhJiYgdHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5VVJMKQordm9pZCBNYW5hZ2VyUHJveHk6OmhhbmRsZUF0dHJpYnV0aW9uKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgdHJpZ2dl
ckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMLCBjb25zdCBBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikKIHsKLSAg
ICBzZW5kTWVzc2FnZTxNZXNzYWdlVHlwZTo6SGFuZGxlQXR0cmlidXRpb24+KHRyaWdnZXJEYXRh
LCByZXF1ZXN0VVJMLCByZWRpcmVjdERvbWFpbiwgZmlyc3RQYXJ0eVVSTCk7CisgICAgc2VuZE1l
c3NhZ2U8TWVzc2FnZVR5cGU6OkhhbmRsZUF0dHJpYnV0aW9uPih0cmlnZ2VyRGF0YSwgcmVxdWVz
dFVSTCwgcmVkaXJlY3REb21haW4sIGZpcnN0UGFydHlVUkwsIGFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcik7CiB9CiAKIHZvaWQgTWFuYWdlclByb3h5OjpjbGVhcihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0xNTAsNiArMTUwLDExIEBAIHZvaWQg
TWFuYWdlclByb3h5OjpzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkKICAgICBzZW5k
TWVzc2FnZTxNZXNzYWdlVHlwZTo6U3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZz4oKTsK
IH0KIAordm9pZCBNYW5hZ2VyUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVu
ZGxlSURGb3JUZXN0aW5nKEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYmIGFwcEJ1bmRsZUlE
KQoreworICAgIHNlbmRNZXNzYWdlPE1lc3NhZ2VUeXBlOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZz4oYXBwQnVuZGxlSUQpOworfQorCiB2b2lkIE1hbmFn
ZXJQcm94eTo6ZGVzdHJveVN0b3JlRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZE1lc3NhZ2VXaXRoUmVwbHk8TWVzc2Fn
ZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc+KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaAppbmRleCA3YzBhZjBmNjM5MGQzNmNkYzFmYTZi
NjEwNGMzODRiNjM2NzVlNTEwLi4zNGIzNDcwYWFlYmNjYzljNmY4NzQ0ZDIzYjRmMTBhMDExYzhh
YzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oCkBAIC0zOSw4ICszOSwxMCBAQCBjbGFz
cyBNYW5hZ2VyUHJveHkgOiBwdWJsaWMgTWFuYWdlckludGVyZmFjZSB7CiBwdWJsaWM6CiAgICAg
TWFuYWdlclByb3h5KGNvbnN0IFN0cmluZyYgbWFjaFNlcnZpY2VOYW1lKTsKIAorICAgIHVzaW5n
IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKKwogICAgIHZvaWQgc3RvcmVV
bmF0dHJpYnV0ZWQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJikgZmluYWw7Ci0g
ICAgdm9pZCBoYW5kbGVBdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eVVSTCkgZmluYWw7CisgICAgdm9pZCBoYW5kbGVBdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBVUkwm
IHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyJikgZmluYWw7CiAgICAgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
IGZpbmFsOwogICAgIHZvaWQgY2xlYXJGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7
CiAgICAgdm9pZCBtaWdyYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9tTGVnYWN5U3RvcmFn
ZShXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uVHlwZSkgZmluYWw7CkBAIC01NSw2ICs1Nyw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyhib29sKSBmaW5hbDsKICAg
ICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5s
aW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBT
dHJpbmcmJiBrZXlJRCkgZmluYWw7CiAgICAgdm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JU
ZXN0aW5nKCkgZmluYWw7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1
bmRsZUlERm9yVGVzdGluZyhBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImJikgZmluYWw7CiAg
ICAgdm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JikgZmluYWw7CiAgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRl
c3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3Rv
cmUuY3BwCmluZGV4IGQ4OTI5NTU5NzZmOTFlYTNkZTA5ZjJlMTg0MmMyNmQ2N2E3N2NkNjUuLmY5
MDdhZmU5YTBkMDNmNzNhNzE4NjY4OTBhZTAzMjQwOWYxODBkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNw
cApAQCAtOTUsOSArOTUsOSBAQCB2b2lkIFN0b3JlOjptYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKCkKICAgICB9KTsKIH0KIAotdm9p
ZCBTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0
ZSYgZGVzdGluYXRpb25TaXRlLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgZXBoZW1lcmFsTWVhc3VyZW1l
bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4mJiwgRGVi
dWdJbmZvJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTdG9yZTo6YXR0cmlidXRlUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBj
b25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50PiYmIGVwaGVtZXJhbE1lYXN1cmVtZW50LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+JiYsIERlYnVnSW5mbyYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIHNvdXJjZVNpdGUgPSBzb3VyY2VTaXRlLmlzb2xhdGVkQ29weSgpLCBk
ZXN0aW5hdGlvblNpdGUgPSBkZXN0aW5hdGlvblNpdGUuaXNvbGF0ZWRDb3B5KCksIGF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBlcGhlbWVy
YWxNZWFzdXJlbWVudCA9IGNyb3NzVGhyZWFkQ29weShlcGhlbWVyYWxNZWFzdXJlbWVudCksIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUg
eworICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgc291
cmNlU2l0ZSA9IHNvdXJjZVNpdGUuaXNvbGF0ZWRDb3B5KCksIGRlc3RpbmF0aW9uU2l0ZSA9IGRl
c3RpbmF0aW9uU2l0ZS5pc29sYXRlZENvcHkoKSwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
ID0gYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpLCBhdHRyaWJ1dGlv
blRyaWdnZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgZXBoZW1lcmFs
TWVhc3VyZW1lbnQgPSBjcm9zc1RocmVhZENvcHkoZXBoZW1lcmFsTWVhc3VyZW1lbnQpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCFtX2RhdGFiYXNlKSB7CiAgICAgICAgICAgICByZXR1cm4gcG9zdFRhc2tS
ZXBseShbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0
LCB7IH0pOwpAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgU3RvcmU6OmF0dHJpYnV0ZVByaXZhdGVD
bGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtCiAgICAg
ICAgICAgICBtX2RhdGFiYXNlLT5pbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXVEZNb3Zl
KCplcGhlbWVyYWxNZWFzdXJlbWVudCksIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25UeXBlOjpVbmF0dHJpYnV0ZWQpOwogICAgICAgICB9CiAKLSAgICAgICAgYXV0byBbc2Vjb25k
cywgZGVidWdJbmZvXSA9IG1fZGF0YWJhc2UtPmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVt
ZW50KHNvdXJjZVNpdGUsIGRlc3RpbmF0aW9uU2l0ZSwgV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhKSk7CisgICAgICAgIGF1dG8gW3NlY29uZHMsIGRlYnVnSW5mb10gPSBtX2RhdGFiYXNl
LT5hdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3VyY2VTaXRlLCBkZXN0aW5hdGlv
blNpdGUsIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciwgV1RGTW92ZShhdHRyaWJ1dGlvblRy
aWdnZXJEYXRhKSk7CiAKICAgICAgICAgcG9zdFRhc2tSZXBseShbc2Vjb25kcyA9IFdURk1vdmUo
c2Vjb25kcyksIGRlYnVnSW5mbyA9IGRlYnVnSW5mby5pc29sYXRlZENvcHkoKSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc2Vjb25kcyksIFdURk1vdmUoZGVidWdJ
bmZvKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRTdG9yZS5oCmluZGV4IDgzMTM1NmRjYzZjNzM5MTk3NmJlZDBhODhkYzIzZGNi
YmM1YzEyMjEuLjg0YjcxNjYyZDdhMWExZjc4YjIzYzUwNWU2YzA3NDNiYzFmZGNmOTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRTdG9yZS5oCkBAIC00NywxMSArNDcsMTMgQEAgcHVibGljOgogCiAgICAgflN0b3JlKCk7CiAK
KyAgICB1c2luZyBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgPSBTdHJpbmc7CisKICAgICBz
dGF0aWMgdm9pZCBwcmVwYXJlRm9yUHJvY2Vzc1RvU3VzcGVuZChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHN0YXRpYyB2b2lkIHByb2Nlc3NEaWRSZXN1bWUoKTsKIAogICAgIHZv
aWQgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQmJiwgV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlw
ZSk7Ci0gICAgdm9pZCBhdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYsIFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYs
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgZXBoZW1l
cmFsTWVhc3VyZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5k
RGF0YT4mJiwgRGVidWdJbmZvJiYpPiYmKTsKKyAgICB2b2lkIGF0dHJpYnV0ZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uRGVzdGluYXRpb25TaXRlJiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiwg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEm
Jiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiBlcGhl
bWVyYWxNZWFzdXJlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNl
bmREYXRhPiYmLCBEZWJ1Z0luZm8mJik+JiYpOwogCiAgICAgdm9pZCBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFRvU3RyaW5nRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+
JiYpIGNvbnN0OwogICAgIHZvaWQgbWFya0FsbFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKaW5kZXggMDI0OWRmZTAxZjQ0MGUwODk1NTNkZjRhYzc5OTYzZWJiNjkyNjRi
Yi4uYWIyMjkxZTM0MWI1MzA4YjhlNTVlNDVkYWQ5YWZiOWU0NGM5NjY0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0zMTM4LDYgKzMxMzgsMTQgQEAgdm9p
ZCBXS1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFdLUGFnZVJlZiBw
YWdlUmVmLCBXS1N0cmluZ1JlZgogICAgIH0pOwogfQogCit2b2lkIFdLUGFnZVNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlUmVmLCBX
S1N0cmluZ1JlZiBhcHBCdW5kbGVJREZvclRlc3RpbmcsIFdLUGFnZVNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNh
bGxiYWNrQ29udGV4dCkKK3sKKyAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CisgICAgdG9JbXBsKHBh
Z2VSZWYpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyh0
b1dURlN0cmluZyhhcHBCdW5kbGVJREZvclRlc3RpbmcpLCBbY2FsbGJhY2tDb250ZXh0LCBjYWxs
YmFja10gKCkgeworICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRleHQpOworICAgIH0pOwor
fQorCiB2b2lkIFdLUGFnZVNldE1vY2tDYW1lcmFPcmllbnRhdGlvbihXS1BhZ2VSZWYgcGFnZVJl
ZiwgdWludDY0X3Qgb3JpZW50YXRpb24pCiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCmluZGV4IDdmMjQz
ODk2MDU4ZWYwOGE3YmY4MWY1Y2U1YWNhZDU4MTNmYmVkZWYuLjc1MzhlYzAyNmNkOWRhODI4ZWU2
ODMwNGYwYWVjYjkyODRhZGFhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VQcml2YXRlLmgKQEAgLTE5Miw2ICsxOTIsOCBAQCB0eXBlZGVmIHZvaWQgKCpXS1Bh
Z2VNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9u
KSh2bwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0Fz
RXhwaXJlZEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNh
bGxiYWNrQ29udGV4dCk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRp
b25WYWx1ZXNGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19F
WFBPUlQgdm9pZCBXS1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFdL
UGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzZWNyZXRUb2tlbiwgV0tTdHJpbmdSZWYgdW5saW5r
YWJsZVRva2VuLCBXS1N0cmluZ1JlZiBzaWduYXR1cmUsIFdLU3RyaW5nUmVmIGtleUlELCBXS1Bh
Z2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ss
IHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5j
dGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVm
IGFwcEJ1bmRsZUlERm9yVGVzdGluZywgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
cHBCdW5kbGVJREZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250
ZXh0KTsKIAogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdL
UGFnZVJlZiBwYWdlLCB1aW50NjRfdCBvcmllbnRhdGlvbik7CiBXS19FWFBPUlQgYm9vbCBXS1Bh
Z2VJc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZChXS1BhZ2VSZWYgcGFnZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiN2VjMmVjZTUy
YzdlNjQ5OGYwOTU4YzZhMmIyY2QyYmQ0N2UxZGRjLi45MzgzNGI3OGUxMjdjZDBkNDJiYjZmMjA1
YzIxOTc1YTBjZTIyYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTEwNTEzLDYgKzEwNTEzLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRQQ01GcmF1
ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgdW5saW5rYWJsCiAgICAg
d2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVz
dGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCB1bmxpbmthYmxlVG9rZW4sIHNl
Y3JldFRva2VuLCBzaWduYXR1cmUsIGtleUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBhcHBCdW5kbGVJREZvclRlc3RpbmcsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICB3ZWJz
aXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlE
Rm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBhcHBCdW5kbGVJREZv
clRlc3RpbmcpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKICNpZiBFTkFCTEUo
U1BFRUNIX1NZTlRIRVNJUykKIAogdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0U3BlZWNoU3ludGhl
c2l6ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmMmRmYjA1
MTA4NmRiZjA4YjU3ZjljNTk5MTM3YzZhYmIxYWUyODVhLi4zZmJmYWU0ZjJlYzNhYjVkNjQxNTYx
OTA5ZTFjZTU0Zjc2OTk0Y2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtMTc3Miw2ICsxNzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nKGNvbnN0IFVSTCYgc291
cmNlVVJMLCBjb25zdCBVUkwmIGRlc3RpbmF0aW9uVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZv
clRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFBDTUZy
YXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiB1bmxpbmthYmxlVG9r
ZW4sIGNvbnN0IFN0cmluZyYgc2VjcmV0VG9rZW4sIGNvbnN0IFN0cmluZyYgc2lnbmF0dXJlLCBj
b25zdCBTdHJpbmcmIGtleUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZv
aWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoY29uc3Qg
U3RyaW5nJiBhcHBCdW5kbGVJREZvclRlc3RpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICB2b2lkIHNwZWVjaFN5bnRo
ZXNpc1ZvaWNlTGlzdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJTcGVlY2hTeW50
aGVzaXNWb2ljZT4mJik+JiYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGIzNDQxOTNmYTAwYTI0MDI4ODU1NWMxMWQ0NDBiZWE3MDZlYWRhYjcu
LmE4M2Q5ZjdhMDIwNTZiYzgwMGU4ZDg3MWIwMWEzMjJmNTlmOWM3MzEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAy
MS0wOS0yOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQ
Q006IFRha2UgYXBwIGJ1bmRsZSBJRCBpbnRvIGNvbnNpZGVyYXRpb24gd2hlbiBtYXRjaGluZyB0
cmlnZ2VyaW5nIGV2ZW50cyB3aXRoIHBlbmRpbmcgY2xpY2tzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3NzgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzgzNTE2NTI4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyODI4ODQgYWRkZWQgYXBwIGJ1bmRs
ZSBJRHMgdG8gdW5hdHRyaWJ1dGVkCisgICAgICAgIGFuZCBhdHRyaWJ1dGVkIGNsaWNrcyBpbiBQ
Q00uIFRoaXMgcGF0Y2ggbWFrZXMgc3VyZSB3ZSB0YWtlIHRob3NlIElEcworICAgICAgICBpbnRv
IGNvbnNpZGVyYXRpb24gaW4gUENNOjpEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoKS4KKworICAgICAgICBUaGUgY2hhbmdlcyBiZWxvdyBhcmUgYWxsIHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgdG8gZW5hYmxlIFRlc3RSdW5uZXIKKyAgICAgICAgdG8gcnVuIHdpdGggZGlm
ZmVyZW50IGFwcCBidW5kbGUgSURzIGluIHRoZSBleWVzIG9mIFBDTS4KKworICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVT
eW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDIxLTA5LTI4ICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRkIFNQSSB0byBzZWxl
Y3QgYSB0YWIgY3JlYXRlZCBieSBfV0tJbnNwZWN0b3JFeHRlbnNpb24KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCmluZGV4IGFiZWJjOGVhZTk1Mjk4NzhiNzY3NDgwY2M5M2QxMTg0ODBhMjdlZjQu
LmVhZTJiYTg2ZTA4Yzk4NWU0MGViMDliMzA5ZjlhYzQ2MGY2YzMyN2IgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbApAQCAtNDE2LDYgKzQxNiw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsK
ICAgICB1bmRlZmluZWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9y
dFVSTHNGb3JUZXN0aW5nKERPTVN0cmluZyBzb3VyY2VVUkxTdHJpbmcsIERPTVN0cmluZyBkZXN0
aW5hdGlvblVSTFN0cmluZyk7CiAgICAgdW5kZWZpbmVkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAgICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50RnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhET01TdHJpbmcgdW5s
aW5rYWJsZVRva2VuLCBET01TdHJpbmcgc2VjcmV0VG9rZW4sIERPTVN0cmluZyBzaWduYXR1cmUs
IERPTVN0cmluZyBrZXlJRCk7CisgICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKERPTVN0cmluZyBhcHBCdW5kbGVJRCk7CiAKICAgICAv
LyBTcGVlY2hSZWNvZ25pdGlvbgogICAgIHVuZGVmaW5lZCBzZXRJc1NwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbkdyYW50ZWQoYm9vbGVhbiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCA5NjVkZjYxNWM3
NTAwNThhYTQ1OGEwZTkwZmJlZDRiYjhhMDYyYjQyLi5lYzg5NmRjOTQ2MjQxYjZkY2I5OTI2NDI0
NDAxM2M4OTU4ODU3N2YyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIxMTQsNiArMjExNCwxMiBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RnJhdWRQcmV2ZW50aW9uVmFsdWVz
Rm9yVGVzdGluZyhKU1N0cgogICAgIH0pKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhKU1N0cmluZ1JlZiBhcHBC
dW5kbGVJRCkKK3sKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmciLAorICAgICAgICB0b1dLKGFwcEJ1
bmRsZUlEKSk7Cit9CisKIGJvb2wgVGVzdFJ1bm5lcjo6aGFzQXBwQm91bmRTZXNzaW9uKCkKIHsK
ICAgICByZXR1cm4gcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2VSZXR1cm5pbmdCb29sZWFuKCJI
YXNBcHBCb3VuZFNlc3Npb24iKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggYTlkM2JmODVkNjIzNzM3OTMzZDY5NjllODc5
M2RjNzI4Y2QzNTliZC4uN2MxN2Y0MmJlYzRhZjFiZThmMTc5NzRiMWQ0NDlkZDRkOGU2Mzg3MyAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKQEAgLTUzMiw2ICs1MzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICB2b2lk
IHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RXBoZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0aW5n
KGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcmF1ZFBy
ZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKEpTU3RyaW5nUmVmIHVubGlua2FibGVUb2tlbiwgSlNT
dHJpbmdSZWYgc2VjcmV0VG9rZW4sIEpTU3RyaW5nUmVmIHNpZ25hdHVyZSwgSlNTdHJpbmdSZWYg
a2V5SUQpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZv
clRlc3RpbmcoSlNTdHJpbmdSZWYpOwogICAgIHZvaWQgc2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU2Vzc2lvblJlc3RhcnQoKTsKIAogICAgIHZvaWQgc2V0SXNTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25HcmFudGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAppbmRleCBlZjczOTBiYWM0MjdlYzc4NjJkZTIwNzUwZGY3N2EyYmU5N2UxZGZl
Li5mZWIyYTM5N2U0MmEzNjhjNDE3OWVjYjMxZDZkMTkyMDYzZjE5YTA3IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMzc0OSw2ICszNzQ5LDEzIEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rpbmco
V0tTdHJpbmdSZWYgdW5saW5rYWJsCiAgICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUs
IG5vVGltZW91dCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFdLU3RyaW5nUmVmIGFwcEJ1bmRsZUlEKQor
eworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4dCBjYWxsYmFj
a0NvbnRleHQoKnRoaXMpOworICAgIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBw
QnVuZGxlSURGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgYXBwQnVuZGxlSUQsIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrLCAmY2FsbGJhY2tDb250ZXh0KTsKKyAg
ICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKK30KKwogV0tVUkxS
ZWYgVGVzdENvbnRyb2xsZXI6OmN1cnJlbnRUZXN0VVJMKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9jdXJyZW50SW52b2NhdGlvbiA/IG1fY3VycmVudEludm9jYXRpb24tPnVybCgpIDogbnVsbHB0
cjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA5NGUxMzA4MDI1
NGUyN2FlZjE1MTg2ZTJkYzU4ZTJlN2Q5OTFiNWNkLi4wYTgyZjJkZTE1OTE3NzY3MDc4N2NhMDE5
YjliMzc3NjVjNzA5Mzc3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CkBAIC0zNTUsNiArMzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nKFdLVVJMUmVmIHNvdXJjZVVS
TCwgV0tVUkxSZWYgZGVzdGluYXRpb25VUkwpOwogICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01l
YXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICB2b2lkIHNldFBDTUZyYXVkUHJl
dmVudGlvblZhbHVlc0ZvclRlc3RpbmcoV0tTdHJpbmdSZWYgdW5saW5rYWJsZVRva2VuLCBXS1N0
cmluZ1JlZiBzZWNyZXRUb2tlbiwgV0tTdHJpbmdSZWYgc2lnbmF0dXJlLCBXS1N0cmluZ1JlZiBr
ZXlJRCk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9y
VGVzdGluZyhXS1N0cmluZ1JlZik7CiAKICAgICB2b2lkIGRpZFNldEFwcEJvdW5kRG9tYWlucygp
IGNvbnN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4
IDNmMmYyYjE3ZDM4MmFjYmZkOGQ2NDc0OGY4NDAyMDM0MzczOTA3MTUuLjM0NTA2OTMwMDk5MmZi
M2UwNzEzZTgzMmM0MTdmYzUxYzA4OGYwOGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCkBAIC0xNDIzLDYgKzE0MjMsMTEgQEAgV0tSZXRhaW5QdHI8V0tUeXBl
UmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21Jbmpl
Y3RlZEIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5n
SXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyIpKSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGlu
ZyhzdHJpbmdWYWx1ZShtZXNzYWdlQm9keSkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IlN5bmNMb2NhbFN0b3JhZ2UiKSkgewogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkuc3luY0xvY2FsU3RvcmFnZSgpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBm
ODAzYjE4OTRmMThhYTA1ZTJhNjMwNGNlZDE3MTNmOTA5ZDhhMDk0Li45ODJkMjliYjJiNzZjZDU0
MmZhOWJiZDhlN2I5ZDk1Y2IxYjA0YjMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDkt
MjggIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBU
YWtlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uIHdoZW4gbWF0Y2hpbmcgdHJpZ2dl
cmluZyBldmVudHMgd2l0aCBwZW5kaW5nIGNsaWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzc4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
MzUxNjUyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9yMjgyODg0IGFkZGVkIGFwcCBidW5kbGUgSURz
IHRvIHVuYXR0cmlidXRlZAorICAgICAgICBhbmQgYXR0cmlidXRlZCBjbGlja3MgaW4gUENNLiBU
aGlzIHBhdGNoIG1ha2VzIHN1cmUgd2UgdGFrZSB0aG9zZSBJRHMKKyAgICAgICAgaW50byBjb25z
aWRlcmF0aW9uIGluIFBDTTo6RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVt
ZW50KCkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211
bHRpcGxlLWFwcC1idW5kbGUtaWRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3Jlc291cmNlcy91dGlsLmpzOgorICAgICAgICAodGVhckRvd25BbmRGaW5pc2gpOgorCiAyMDIx
LTA5LTI4ICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFy
a2luZyBtb3JlIHRlc3RzIGNyYXNoaW5nIHdpdGggdW5jYXVnaHQgZXhjZXB0aW9uICdOU0ludmFs
aWRBcmd1bWVudEV4Y2VwdGlvbicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0
aXBsZS1hcHAtYnVuZGxlLWlkcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmEzYTVmNDkwMjA4
NGY5NDU2M2IwMzNmMjY5NzQyODcwYTY5MjQyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRs
ZS1pZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAKK1Rlc3RzIHByaXZhdGUgY2xpY2sg
bWVhc3VyZW1lbnQgd2l0aCBtdWx0aXBsZSBhcHAgYnVuZGxlIElEcywgbWFraW5nIHN1cmUgb25s
eSB0aGUgbWF0Y2hpbmcgSUQgaXMgY29uc2lkZXJlZCBhIG1hdGNoLgorCisKKworCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK0F0dHJpYnV0aW9uIHJlY2VpdmVk
LgorSFRUUF9IT1NUOiAxMjcuMC4wLjE6ODAwMAorQ29udGVudCB0eXBlOiBhcHBsaWNhdGlvbi9q
c29uCitSRVFVRVNUX1VSSTogL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252
ZXJzaW9uUmVwb3J0LnB5P3JlY2lwaWVudD1DbGlja1NvdXJjZQorTm8gY29va2llcyBpbiBhdHRy
aWJ1dGlvbiByZXF1ZXN0LgorUmVxdWVzdCBib2R5OgoreyJzb3VyY2VfZW5nYWdlbWVudF90eXBl
IjoiY2xpY2siLCJzb3VyY2Vfc2l0ZSI6IjEyNy4wLjAuMSIsInNvdXJjZV9pZCI6MzMsImF0dHJp
YnV0ZWRfb25fc2l0ZSI6ImxvY2FsaG9zdCIsInRyaWdnZXJfZGF0YSI6MTIsInZlcnNpb24iOjJ9
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitBdHRyaWJ1
dGlvbiByZWNlaXZlZC4KK0hUVFBfSE9TVDogbG9jYWxob3N0OjgwMDAKK0NvbnRlbnQgdHlwZTog
YXBwbGljYXRpb24vanNvbgorUkVRVUVTVF9VUkk6IC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9y
ZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5weT9yZWNpcGllbnQ9Q2xpY2tEZXN0aW5hdGlvbgor
Tm8gY29va2llcyBpbiBhdHRyaWJ1dGlvbiByZXF1ZXN0LgorUmVxdWVzdCBib2R5OgoreyJzb3Vy
Y2VfZW5nYWdlbWVudF90eXBlIjoiY2xpY2siLCJzb3VyY2Vfc2l0ZSI6IjEyNy4wLjAuMSIsInNv
dXJjZV9pZCI6MzMsImF0dHJpYnV0ZWRfb25fc2l0ZSI6ImxvY2FsaG9zdCIsInRyaWdnZXJfZGF0
YSI6MTIsInZlcnNpb24iOjJ9CisKK1VuYXR0cmlidXRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVt
ZW50czoKK1dlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJjZSBzaXRlOiAx
MjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBzaXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJRDogMjMKK05v
IGF0dHJpYnV0aW9uIHRyaWdnZXIgZGF0YS4KK0FwcGxpY2F0aW9uIGJ1bmRsZSBpZGVudGlmaWVy
OiB0ZXN0QnVuZGxlSUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRs
ZS1pZHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDQ3MDM0N2MwMDNhNTkyNWE2ZmI5NjM0NjJhNjUzOWU0
M2Y3NjU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sCkBAIC0wLDAgKzEs
MTAzIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4
aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj5UZXN0cyBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHdpdGggbXVsdGlwbGUgYXBw
IGJ1bmRsZSBJRHMsIG1ha2luZyBzdXJlIG9ubHkgdGhlIG1hdGNoaW5nIElEIGlzIGNvbnNpZGVy
ZWQgYSBtYXRjaC48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rMSIgaHJlZj0iaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRz
Lmh0bWw/c3RlcFR3byIgYXR0cmlidXRpb25zb3VyY2VpZD0yMyBhdHRyaWJ1dGlvbmRlc3RpbmF0
aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbmsxPC9hPjxicj4KKzxhIGlkPSJ0YXJnZXRM
aW5rMiIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWw/c3RlcEZvdXIiIGF0dHJpYnV0aW9uc291cmNl
aWQ9MzMgYXR0cmlidXRpb25kZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5r
MjwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25zdCBj
dXJyZW50VGltZU1pbGxpcyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7CisgICAgY29uc3QgaGln
aEVudHJvcHlCaXRzID0gY3VycmVudFRpbWVNaWxsaXMgLSAoTWF0aC5mbG9vcihjdXJyZW50VGlt
ZU1pbGxpcyAvIDEwMDAwMDApICogMTAwMDAwMCk7CisgICAgY29uc3Qgbm9uY2UgPSBoaWdoRW50
cm9weUJpdHMgKyAiIiArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCk7CisKKyAgICBw
cmVwYXJlVGVzdCgpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGlu
Zyh0cnVlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICB0
ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICB0ZWFyRG93
bkFuZEZpbmlzaCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVt
ZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChl
bGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVs
ZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zm
c2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3Rp
dmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQ
cm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcHBlbmRJ
ZnJhbWUodXJsLCBvbmxvYWRDYWxsYmFjaykgeworICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBpZnJhbWVFbGVtZW50
LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9ubG9hZENhbGxiYWNrKQorICAgICAgICAgICAgaWZy
YW1lRWxlbWVudC5vbmxvYWQgPSBvbmxvYWRDYWxsYmFjazsKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICB9CisKKyAgICBsZXQgcmVwb3J0c1Jl
Y2VpdmVkID0gMDsKKyAgICBmdW5jdGlvbiBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZp
bmlzaCgpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0TGluazEiKSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsyIikpOworICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIp
KTsKKworICAgICAgICAvLyBDbGljayBzb3VyY2UuCisgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRD
b252ZXJzaW9uRGF0YS5weT90aW1lb3V0X21zPTIwMDAmcmVjaXBpZW50PUNsaWNrU291cmNlJm5v
bmNlPSIgKyBub25jZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICByZXBvcnRzUmVjZWl2ZWQr
KzsKKyAgICAgICAgICAgIGlmIChyZXBvcnRzUmVjZWl2ZWQgPj0gMikKKyAgICAgICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIENsaWNrIGRlc3RpbmF0
aW9uLgorICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucHk/dGltZW91dF9t
cz0yMDAwJnJlY2lwaWVudD1DbGlja0Rlc3RpbmF0aW9uJm5vbmNlPSIgKyBub25jZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICByZXBvcnRzUmVjZWl2ZWQrKzsKKyAgICAgICAgICAgIGlmIChy
ZXBvcnRzUmVjZWl2ZWQgPj0gMikKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFy
Y2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICAvLyBTdGVwIDI6IEdvIGJhY2sg
dG8gdGhlIHNvdXJjZS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1h
cHAtYnVuZGxlLWlkcy5odG1sP3N0ZXBUaHJlZSI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdp
bmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikgeworICAgICAgICAgICAgICAg
IC8vIFN0ZXAgMzogQ2hhbmdlIHRoZSBhcHAgYnVuZGxlIElEIGFuZCBjbGljayB0aGUgc2Vjb25k
IGxpbmsuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZygiIik7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVF
bGVtZW50KCJ0YXJnZXRMaW5rMiIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9j
YXRpb24uc2VhcmNoID09PSAiP3N0ZXBGb3VyIikgeworICAgICAgICAgICAgICAgIC8vIFN0ZXAg
NDogQ29udmVydC4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZygiaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0
LnB5P3JlY2lwaWVudD1DbGlja1NvdXJjZSZub25jZT0iICsgbm9uY2UsICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBv
cnQucHk/cmVjaXBpZW50PUNsaWNrRGVzdGluYXRpb24mbm9uY2U9IiArIG5vbmNlKTsKKyAgICAg
ICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1n
Iik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAu
MTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVy
c2lvbi5weT9jb252ZXJzaW9uRGF0YT0xMiZub25jZT0iICsgbm9uY2U7CisgICAgICAgICAgICAg
ICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1l
bnQub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBhcHBlbmRDb252
ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpOworICAgICAgICAgICAgICAgIH07CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBTdGVwIDE6IENoYW5nZSB0aGUgYXBw
IGJ1bmRsZSBJRCBhbmQgY2xpY2sgdGhlIGZpcnN0IGxpbmsuCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZygi
dGVzdEJ1bmRsZUlEIik7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRM
aW5rMSIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RS
dW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMKaW5kZXggZTdjM2NkODhjNDI4NjAyZTYxMzgw
M2ZjNDkyMzZmODZmMTdmYWRkMS4uMmE2MzM2MTQyYWE0OGJjNDIzYjhlMzdhNTYxMDNkYTMwNGRl
ZjlmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9yZXNvdXJjZXMvdXRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzCkBAIC0xNSw2ICsxNSw3IEBA
IGZ1bmN0aW9uIHRlYXJEb3duQW5kRmluaXNoKCkgewogICAgICAgICB0ZXN0UnVubmVyLnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZygiIiwg
IiIpOwogICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5T
aWduYXR1cmVVUkxGb3JUZXN0aW5nKCIiKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZygiIik7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rp
bmcoIiIpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439655</attachid>
            <date>2021-09-29 14:12:42 -0700</date>
            <delta_ts>2021-09-29 18:23:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230778-20210929141242.patch</filename>
            <type>text/plain</type>
            <size>80091</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODcxMzkxNmMwN2Q1NTli
Mjg4ZmQxNGY0ZTY3NzQ1M2IyOTdmODI2My4uMjE0Y2M1MGNmMDc5MDk2ZjA3ZWE3YzdmMTYxYzM4
NGE3NjZmODIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA5LTI5ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogVGFrZSBhcHAg
YnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIG1hdGNoaW5nIHRyaWdnZXJpbmcgZXZl
bnRzIHdpdGggcGVuZGluZyBjbGlja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMDc3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9jb21taXRzLndlYmtpdC5vcmcvcjI4Mjg4NCBhZGRlZCBhcHAgYnVuZGxlIElEcyB0byB1bmF0
dHJpYnV0ZWQKKyAgICAgICAgYW5kIGF0dHJpYnV0ZWQgY2xpY2tzIGluIFBDTS4gVGhpcyBwYXRj
aCBtYWtlcyBzdXJlIHdlIHRha2UgdGhvc2UgSURzCisgICAgICAgIGludG8gY29uc2lkZXJhdGlv
biBpbiBQQ006OkRhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLgor
CisgICAgICAgIFRoZSBXZWJDb3JlIHBhcnQgbWFrZXMgc3VyZSB0aGF0IGEgdGVtcG9yYXJ5IGFw
cCBidW5kbGUgSUQgY2FuIGJlIHNldAorICAgICAgICBvbiBhdHRyaWJ1dGlvbnMgdGhhdCBnZXQg
c3RvcmVkIGluIFBDTSdzIGRhdGFiYXNlLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMuaHRtbAorCisgICAg
ICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlE
Rm9yVGVzdGluZyk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg6
CisKIDIwMjEtMDktMjggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vdmUgYERyYXdHbHlwaHNSZWNvcmRlcmAgb3V0c2lkZSBvZiBgRGlzcGxheUxpc3RgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDE3M2Y0Y2UyMGMxNzk1NDc5NTVjMDFlZmJiMzE4YTNhY2MyYjNjNjQuLjliZWIy
NWYzMmU5MTE0YzAwOTM1YzBlOTg2OTdiNjBhYjNkZGM2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
ODIgQEAKKzIwMjEtMDktMjkgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUENNOiBUYWtlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uIHdoZW4g
bWF0Y2hpbmcgdHJpZ2dlcmluZyBldmVudHMgd2l0aCBwZW5kaW5nIGNsaWNrcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzc4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MzUxNjUyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9yMjgyODg0IGFkZGVk
IGFwcCBidW5kbGUgSURzIHRvIHVuYXR0cmlidXRlZAorICAgICAgICBhbmQgYXR0cmlidXRlZCBj
bGlja3MgaW4gUENNLiBUaGlzIHBhdGNoIG1ha2VzIHN1cmUgd2UgdGFrZSB0aG9zZSBJRHMKKyAg
ICAgICAgaW50byBjb25zaWRlcmF0aW9uIGluIFBDTTo6RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZh
dGVDbGlja01lYXN1cmVtZW50KCkuCisKKyAgICAgICAgQSBsb3Qgb2YgdGhlIFdlYktpdCBwYXJ0
IGlzOgorICAgICAgICAtIFBpcGluZyB0aHJvdWdoIGFwcCBidW5kbGUgSURzIGZyb20gdGhlIG5l
dHdvcmsgc2Vzc2lvbiB0byB0aGUgUENNCisgICAgICAgICAgICBkYXRhYmFzZSB3aGVyZSB0aGUg
SUQgd2lsbCBiZSBtYXRjaGVkIGFnYWluc3Qgc3RvcmVkIGFwcCBidW5kbGUgSURzLgorICAgICAg
ICAtIFBpcGluZyB0aHJvdWdoIHRlc3QgY29uZmlndXJhdGlvbiBmb3IgYXBwIGJ1bmRsZSBJRC4K
KworICAgICAgICBUaGUgcmVhbCBjaGFuZ2UgaXMgaW4gUENNOjpEYXRhYmFzZSB3aGljaCBpcyBl
eHBsYWluZWQgYmVsb3cuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
ZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6RGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgICAgICBO
b3cgdGFrZXMgYW4gYXBwIGJ1bmRsZSBJRCBzdXBwbGllZCBmcm9tIHRoZSBuZXR3b3JrIHNlc3Np
b24gYW5kCisgICAgICAgICAgICBpbmNsdWRlcyBpdCBpbiB0aGUgZGF0YWJhc2UgcXVlcnkgdG8g
ZmluZCBtYXRjaGluZyBlbnRyaWVzLiBJZiBhbmQKKyAgICAgICAgICAgIGF0dHJpYnV0aW9uIHdh
cyBzYXZlZCB3aXRoIGFwcCBidW5kbGUgSUQgWFlaLCBpdCBzaG91bGQgb25seSBiZQorICAgICAg
ICAgICAgYmUgY29udmVydGVkIGluIGFuIGFwcGxpY2F0aW9uIHdpdGggYXBwIGJ1bmRsZSBJRCBY
WVouCisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KToKKyAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FsbHMgUENNOjpEYXRh
YmFzZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkKKyAgICAgICAgICAgIHdoaWNoIG5l
ZWRzIHRoZSBhcHAgYnVuZGxlIElEIHNvIHRoYXQgSUQgaXMgZm9yd2FyZGVkIHRocm91Z2guCisg
ICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OnJlbW92ZVVuYXR0cmlidXRlZCk6CisgICAg
ICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRl
cmF0aW9uLgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1
dGlvbik6CisgICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQg
aW50byBjb25zaWRlcmF0aW9uLgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjptYXJr
UmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbik6CisgICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRh
a2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uLgorICAgICAgICAoV2ViS2l0
OjpQQ006OkRhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UpOgorICAgICAgICAgICAg
QWxzbyBuZWVkcyB0byB0YWtlIHRoZSBhcHAgYnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbi4K
KyAgICAgICAgKFdlYktpdDo6UENNOjpEYXRhYmFzZTo6ZWFybGllc3RUaW1lc1RvU2VuZCk6Cisg
ICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25z
aWRlcmF0aW9uLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVBdHRyaWJ1dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
cHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXIpOgorICAgICAgICAgICAgQ2xlYXJzIHRoZSB0ZXN0
IHNldHRpbmcgZm9yIGFwcCBidW5kbGUgSUQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENN
OjptZXNzYWdlVHlwZVNlbmRzUmVwbHkpOgorICAgICAgICAoV2ViS2l0OjpQQ006OmRlY29kZU1l
c3NhZ2VBbmRTZW5kVG9NYW5hZ2VyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2Uu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6TWFuYWdlclByb3h5OjpoYW5kbGVBdHRyaWJ1dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6TWFuYWdlclByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9y
VGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpTdG9yZTo6YXR0cmlidXRlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBDTUZyYXVkUHJl
dmVudGlvblZhbHVlc0ZvclRlc3RpbmcpOgorICAgICAgICAoV0tQYWdlU2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlRm9yVGVzdGluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3VGVzdGluZy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZzpjb21wbGV0aW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorCiAyMDIxLTA5LTI4
ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRkIFNQSSB0
byBzZWxlY3QgYSB0YWIgY3JlYXRlZCBieSBfV0tJbnNwZWN0b3JFeHRlbnNpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDBh
NzgxNDg4M2ExNDM5NDliMmQ5Yjc1NWY5NzdjNDBjNTk4NjMwYWQuLjBhM2NhYjhhMWViMzIzYjZh
OWFjMWIzYTk3MGYxYTkxMzM0YzQ5M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50LmgiCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgogI2luY2x1
ZGUgPHd0Zi9FeHBlY3RlZC5oPgpAQCAtMTQ0LDYgKzE0NSwxNyBAQCBib29sIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpoYXNQcmV2aW91c2x5QmVlblJlcG9ydGVkKCkKICAgICByZXR1cm4gIW1f
dGltZXNUb1NlbmQuc291cmNlRWFybGllc3RUaW1lVG9TZW5kIHx8ICFtX3RpbWVzVG9TZW5kLmRl
c3RpbmF0aW9uRWFybGllc3RUaW1lVG9TZW5kOwogfQogCit2b2lkIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlERm9yVGVzdGluZyhjb25zdCBTdHJp
bmcmIGFwcEJ1bmRsZUlERm9yVGVzdGluZykKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgUkVM
RUFTRV9BU1NFUlQoV2ViQ29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgPT0gImNv
bS5hcHBsZS5XZWJLaXQuV2ViS2l0VGVzdFJ1bm5lciJfcyB8fCBXZWJDb3JlOjphcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXIoKSA9PSAiY29tLmFwcGxlLldlYktpdC5UZXN0V2ViS2l0QVBJIl9z
KTsKKyNlbGlmIFBMQVRGT1JNKENPQ09BKQorICAgIFJFTEVBU0VfQVNTRVJUKFdlYkNvcmU6OmFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpID09ICJvcmcud2Via2l0LldlYktpdFRlc3RSdW5u
ZXJBcHAiX3MgfHwgV2ViQ29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgPT0gImNv
bS5hcHBsZS5XZWJLaXQuVGVzdFdlYktpdEFQSSJfcyk7CisjZW5kaWYKKyAgICBtX3NvdXJjZUFw
cGxpY2F0aW9uQnVuZGxlSUQgPSBhcHBCdW5kbGVJREZvclRlc3Rpbmc7Cit9CisKKwogc3RhdGlj
IFNlY29uZHMgcmFuZG9tbHlCZXR3ZWVuVHdlbnR5Rm91ckFuZEZvcnR5RWlnaHRIb3VycygpCiB7
CiAgICAgcmV0dXJuIDI0X2ggKyBTZWNvbmRzKHJhbmRvbU51bWJlcigpICogKDI0X2gpLnZhbHVl
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
aAppbmRleCAwNmJiZmY3YzUwNDc2YTljMjgyYWM3YmJhZjJiNGUxNDM2MGIyZDRlLi5kYWUyNDM0
NGYyYmQ4MGEzNmVjOGI5NWJiOGI4MTQ3Y2Q1N2ViNDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaApAQCAtMzQxLDYgKzM0MSw3IEBAIHB1
YmxpYzoKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+JiBh
dHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhOyB9CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRh
JiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkgeyBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBX
VEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpOyB9CiAgICAgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VBcHBsaWNhdGlvbkJ1bmRsZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VBcHBsaWNhdGlv
bkJ1bmRsZUlEOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTb3VyY2VBcHBsaWNhdGlv
bkJ1bmRsZUlERm9yVGVzdGluZyhjb25zdCBTdHJpbmcmKTsKIAogICAgIGNvbnN0IFN0cmluZyYg
c291cmNlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZURlc2NyaXB0aW9uOyB9
CiAgICAgY29uc3QgU3RyaW5nJiBwdXJjaGFzZXIoKSBjb25zdCB7IHJldHVybiBtX3B1cmNoYXNl
cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAppbmRleCBkYzMxMzUxOWExYzM3NDgzMWMzN2FkODlkN2EyYWMxYTdlMmYxNmQ5Li5jMTYxODQ4
M2U2ZTNhNmMwNzY4ZGU2YjM3MjgzOTU4MmM3NzRkYzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjY4Niw2ICsyNjg2LDE0IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAor
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJ
REZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcmJiBhcHBCdW5kbGVJ
REZvclRlc3RpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkp
CisgICAgICAgIHNlc3Npb24tPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nKFdURk1vdmUoYXBwQnVuZGxlSURGb3JUZXN0aW5nKSk7CisKKyAgICBjb21wbGV0
aW9uSGFuZGxlcigpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRLZXB0QWxpdmVMb2Fk
KFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+JiYgbG9hZGVyKQogewogICAgIGlmIChhdXRvKiBz
ZXNzaW9uID0gbmV0d29ya1Nlc3Npb24obG9hZGVyLT5zZXNzaW9uSUQoKSkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggN2UwYzE5OTJjMmUw
NGUyYmZjZDM4YjkyMmM4Y2Y0ZTg3ZTVkNGZhMS4uN2VlNzkxYWQ5OGVjZjQ3YmM5ODNkYzZiNzQz
ZDNmY2Q1N2ZmYTZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaApAQCAtMzUwLDYgKzM1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhQQUw6OlNl
c3Npb25JRCwgVVJMJiYgc291cmNlVVJMLCBVUkwmJiBkZXN0aW5hdGlvblVSTCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGlu
ZyhQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNy
ZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBw
QnVuZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiBhcHBCdW5kbGVJREZv
clRlc3RpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBSZWZQdHI8V2Vi
Q29yZTo6U3RvcmFnZVF1b3RhTWFuYWdlcj4gc3RvcmFnZVF1b3RhTWFuYWdlcihQQUw6OlNlc3Np
b25JRCwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4
IDIyZWE5NzNkNDk1M2M0ODI4NzM2YzJjMzA2YTM2NmMxYTZkYWU4NDkuLjgyY2RjM2Y1YWE3MWEy
MGE5Y2QxNzBlN2VlNjNhMjgwZjA1NzNlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTcxLDYgKzE3
MSw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBT
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgc291cmNlVVJMLCBVUkwgZGVzdGluYXRpb25V
UkwpIC0+ICgpIEFzeW5jCiAgICAgTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNl
dFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBTdHJpbmcgc2VjcmV0VG9rZW4sIFN0cmluZyB1bmxpbmthYmxlVG9rZW4sIFN0cmluZyBz
aWduYXR1cmUsIFN0cmluZyBrZXlJRCkgLT4gKCkgQXN5bmMKKyAgICBTZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFN0cmluZyBhcHBCdW5kbGVJREZvclRlc3RpbmcpIC0+ICgpIEFzeW5jCiAgICAgR2V0TG9jYWxT
dG9yYWdlT3JpZ2luRGV0YWlscyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8
V2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6Ok9yaWdpbkRldGFpbHM+IGRldGFp
bHMpIEFzeW5jCiAKICAgICBTZXRTZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0Rm9yVGVzdGluZyhT
ZWNvbmRzIHNlY29uZHMpIC0+ICgpIFN5bmNocm9ub3VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IGU4YjQ5ZWUwZTUyODQxNDMyYWNh
MWUwMWExY2EyZDVjNDc2NTVjZTQuLmZiODlkOTA4NTcxNjA0ODRlODFjM2E3MWRlNzYzMTAzM2Y5
MTg5MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiV2ViU29ja2V0VGFzay5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25Db2NvYS5oIgpA
QCAtMzIzLDcgKzMyNCwxMiBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzdG9yZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZQogCiB2b2lkIE5ldHdv
cmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24oUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRy
aWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQogewotICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50
KCkuaGFuZGxlQXR0cmlidXRpb24oV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgcmVx
dWVzdFVSTCwgUmVnaXN0cmFibGVEb21haW4ocmVkaXJlY3RSZXF1ZXN0LnVybCgpKSwgcmVkaXJl
Y3RSZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkpOworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIGF1dG8gYXBwQnVuZGxlSUQgPSBXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIoKTsKKyNlbHNlCisgICAgYXV0byBhcHBCdW5kbGVJRCA9IGVtcHR5U3RyaW5nKCk7CisjZW5k
aWYKKyAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLmhhbmRsZUF0dHJpYnV0aW9uKFdURk1v
dmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIHJlcXVlc3RVUkwsIFJlZ2lzdHJhYmxlRG9tYWlu
KHJlZGlyZWN0UmVxdWVzdC51cmwoKSksIHJlZGlyZWN0UmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29v
a2llcygpLCBhcHBCdW5kbGVJRCk7CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb246OmR1bXBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCkBAIC0zOTIsNiArMzk4LDE2IEBAIHZvaWQgTmV0d29ya1Nlc3Npb246
OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3Jl
OjpDCiAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5hbGxvd1RMU0NlcnRpZmljYXRlQ2hh
aW5Gb3JMb2NhbFBDTVRlc3RpbmcoY2VydGlmaWNhdGVJbmZvKTsKIH0KIAordm9pZCBOZXR3b3Jr
U2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmco
U3RyaW5nJiYgYXBwQnVuZGxlSURGb3JUZXN0aW5nKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICBSRUxFQVNFX0FTU0VSVChXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSA9
PSAiY29tLmFwcGxlLldlYktpdC5XZWJLaXRUZXN0UnVubmVyIl9zIHx8IFdlYkNvcmU6OmFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllcigpID09ICJjb20uYXBwbGUuV2ViS2l0LlRlc3RXZWJLaXRB
UEkiX3MpOworI2VsaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUkVMRUFTRV9BU1NFUlQoV2ViQ29y
ZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgPT0gIm9yZy53ZWJraXQuV2ViS2l0VGVz
dFJ1bm5lckFwcCJfcyB8fCBXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSA9
PSAiY29tLmFwcGxlLldlYktpdC5UZXN0V2ViS2l0QVBJIl9zKTsKKyNlbmRpZgorICAgIHByaXZh
dGVDbGlja01lYXN1cmVtZW50KCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJ
REZvclRlc3RpbmcoV1RGTW92ZShhcHBCdW5kbGVJREZvclRlc3RpbmcpKTsKK30KKwogdm9pZCBO
ZXR3b3JrU2Vzc2lvbjo6YWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVy
PiYmIGxvYWRlcikKIHsKICAgICBBU1NFUlQobV9zZXNzaW9uSUQgPT0gbG9hZGVyLT5zZXNzaW9u
SUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgK
aW5kZXggNWVjZTE0NGNmY2JiOTUxNjk3ODRkNGM4ZTcyNzRhYmQ3YmRiZTkxMi4uMzRjNzViZDc1
OGYxNDc4MDhiOWY4M2ZlYTY2OTliZDQ5YzJmMDkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMTQxLDYgKzE0MSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYg
dW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJl
LCBTdHJpbmcmJiBrZXlJRCk7CiAgICAgdm9pZCBmaXJlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRU
aW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpOwogICAgIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0
ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYp
OworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rp
bmcoU3RyaW5nJiYpOwogCiAgICAgdm9pZCBhZGRLZXB0QWxpdmVMb2FkKFJlZjxOZXR3b3JrUmVz
b3VyY2VMb2FkZXI+JiYpOwogICAgIHZvaWQgcmVtb3ZlS2VwdEFsaXZlTG9hZChOZXR3b3JrUmVz
b3VyY2VMb2FkZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3BwCmluZGV4IGE3NGU2MzFiYWFkM2U5
MjM4MWJiZTQwYWZmN2M0YTI4MzE5MDA0ZTIuLjdkZTZmZWU2YzQzNmFiODExNzVhNzJkYWJjZGM2
YTRlODViYjU0YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcApAQCAtNDMsMTggKzQzLDE4IEBA
IGNvbnN0ZXhwciBhdXRvIGluc2VydFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
UXVlcnkgPSAiSU5TRVJUIE9SIFJFUExBCiAgICAgInNvdXJjZUlELCB0aW1lT2ZBZENsaWNrLCB0
b2tlbiwgc2lnbmF0dXJlLCBrZXlJRCwgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkgVkFMVUVT
ICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KSJfczsKIGNvbnN0ZXhwciBhdXRvIGluc2VydEF0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5ID0gIklOU0VSVCBPUiBSRVBMQUNFIElO
VE8gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IChzb3VyY2VTaXRlRG9tYWluSUQs
IGRlc3RpbmF0aW9uU2l0ZURvbWFpbklELCAiCiAgICAgInNvdXJjZUlELCBhdHRyaWJ1dGlvblRy
aWdnZXJEYXRhLCBwcmlvcml0eSwgdGltZU9mQWRDbGljaywgZWFybGllc3RUaW1lVG9TZW5kVG9T
b3VyY2UsIHRva2VuLCBzaWduYXR1cmUsIGtleUlELCBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3Rp
bmF0aW9uLCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKSBWQUxVRVMgKD8sID8sID8sID8sID8s
ID8sID8sID8sID8sID8sID8sID8pIl9zOwotY29uc3RleHByIGF1dG8gZmluZFVuYXR0cmlidXRl
ZFF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRlRG9tYWlu
SUQgPSA/Il9zOwotY29uc3RleHByIGF1dG8gZmluZEF0dHJpYnV0ZWRRdWVyeSA9ICJTRUxFQ1Qg
KiBGUk9NIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRl
RG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8iX3M7Ci1jb25zdGV4
cHIgYXV0byByZW1vdmVVbmF0dHJpYnV0ZWRRdWVyeSA9ICJERUxFVEUgRlJPTSBVbmF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFO
RCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBmaW5kVW5h
dHRyaWJ1dGVkUXVlcnkgPSAiU0VMRUNUICogRlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNp
dGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSA/Il9zOworY29u
c3RleHByIGF1dG8gZmluZEF0dHJpYnV0ZWRRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIEF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFO
RCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gcmVtb3ZlVW5hdHRyaWJ1dGVkUXVlcnkgPSAiREVM
RVRFIEZST00gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNl
U2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQgPSA/IEFORCBzb3Vy
Y2VBcHBsaWNhdGlvbkJ1bmRsZUlEID0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIGFsbEF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5ID0gIlNFTEVDVCAqLCBNSU4oZWFybGllc3RU
aW1lVG9TZW5kVG9Tb3VyY2UsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24pIGFzIG1p
blZhbCAiCiAgICAgIkZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJF
IGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlIElTIE5PVCBOVUxMIEFORCBlYXJsaWVzdFRpbWVU
b1NlbmRUb0Rlc3RpbmF0aW9uIElTIE5PVCBOVUxMICIKICAgICAiVU5JT04gQUxMIFNFTEVDVCAq
LCBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJjZSBhcyBtaW5WYWwgRlJPTSBBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlv
biBJUyBOVUxMICIKICAgICAiVU5JT04gQUxMIFNFTEVDVCAqLCBlYXJsaWVzdFRpbWVUb1NlbmRU
b0Rlc3RpbmF0aW9uIGFzIG1pblZhbCBGUk9NIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCBXSEVSRSBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJjZSBJUyBOVUxMIE9SREVSIEJZIG1p
blZhbCJfczsKIGNvbnN0ZXhwciBhdXRvIGFsbFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50QXR0cmlidXRpb25zUXVlcnkgPSAiU0VMRUNUICogRlJPTSBVbmF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCJfczsKIGNvbnN0ZXhwciBhdXRvIGNsZWFyRXhwaXJlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50UXVlcnkgPSAiREVMRVRFIEZST00gVW5hdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgPyA+IHRpbWVPZkFkQ2xpY2siX3M7Ci1jb25zdGV4cHIg
YXV0byBtYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2VRdWVyeSA9ICJVUERBVEUgQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IFNFVCBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJjZSA9IG51
bGwgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRlRG9tYWlu
SUQgPSA/Il9zOwotY29uc3RleHByIGF1dG8gbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb25R
dWVyeSA9ICJVUERBVEUgQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFNFVCBlYXJs
aWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uID0gbnVsbCBXSEVSRSBzb3VyY2VTaXRlRG9tYWlu
SUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8iX3M7Ci1jb25zdGV4cHIgYXV0
byBlYXJsaWVzdFRpbWVzVG9TZW5kUXVlcnkgPSAiU0VMRUNUIGVhcmxpZXN0VGltZVRvU2VuZFRv
U291cmNlLCBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIEZST00gQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRl
c3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIG1hcmtSZXBvcnRB
c1NlbnRUb1NvdXJjZVF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlID0gbnVsbCBXSEVSRSBzb3VyY2VT
aXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJj
ZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gbWFya1JlcG9ydEFz
U2VudFRvRGVzdGluYXRpb25RdWVyeSA9ICJVUERBVEUgQXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50IFNFVCBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uID0gbnVsbCBXSEVS
RSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8g
QU5EIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gZWFy
bGllc3RUaW1lc1RvU2VuZFF1ZXJ5ID0gIlNFTEVDVCBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJj
ZSwgZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlvbiBGUk9NIEF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5h
dGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSA/Il9z
OwogY29uc3RleHByIGF1dG8gZG9tYWluSURGcm9tU3RyaW5nUXVlcnkgPSAiU0VMRUNUIGRvbWFp
bklEIEZST00gUENNT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJf
czsKIGNvbnN0ZXhwciBhdXRvIGRvbWFpblN0cmluZ0Zyb21Eb21haW5JRFF1ZXJ5ID0gIlNFTEVD
VCByZWdpc3RyYWJsZURvbWFpbiBGUk9NIFBDTU9ic2VydmVkRG9tYWlucyBXSEVSRSBkb21haW5J
RCA9ID8iX3M7CiBjb25zdGV4cHIgYXV0byBjcmVhdGVVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCA9ICJDUkVBVEUgVEFCTEUgVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgKCIKQEAgLTIzNyw3ICsyMzcsNyBAQCB2b2lkIERhdGFiYXNlOjptYXJrQWxsVW5hdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKCkKICAgICB9
CiB9CiAKLXN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPERhdGFiYXNlOjpVbmF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudD4sIHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OkF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IERhdGFiYXNlOjpmaW5kUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUm
IHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRy
aWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlKQorc3RkOjpwYWlyPHN0ZDo6
b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50Piwg
c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
Pj4gRGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRl
JiBkZXN0aW5hdGlvblNpdGUsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYgYXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwogICAgIGF1dG8gc291cmNlU2l0ZURvbWFpbklEID0gZG9tYWluSUQoc291cmNlU2l0ZS5y
ZWdpc3RyYWJsZURvbWFpbik7CkBAIC0yNDgsNyArMjQ4LDggQEAgc3RkOjpwYWlyPHN0ZDo6b3B0
aW9uYWw8RGF0YWJhc2U6OlVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50Piwgc3Rk
OjpvcHQKICAgICBhdXRvIGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5z
Y29wZWRTdGF0ZW1lbnQobV9maW5kVW5hdHRyaWJ1dGVkU3RhdGVtZW50LCBmaW5kVW5hdHRyaWJ1
dGVkUXVlcnksICJmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiX3MpOwogICAgIGlmICghZmlu
ZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudAogICAgICAgICB8fCBmaW5kVW5hdHRyaWJ1dGVk
U2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3VyY2VTaXRlRG9tYWluSUQpICE9IFNRTElU
RV9PSwotICAgICAgICB8fCBmaW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5kSW50
KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIHx8
IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9u
U2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgZmluZFVuYXR0cmlidXRlZFNj
b3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKSAh
PSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsICIlcCAtIERhdGFiYXNlOjpmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgZmlu
ZFVuYXR0cmlidXRlZFF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcs
IHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICB9CkBAIC0yNTYsNyArMjU3LDggQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9u
YWw8RGF0YWJhc2U6OlVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50Piwgc3RkOjpv
cHQKICAgICBhdXRvIGZpbmRBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVk
U3RhdGVtZW50KG1fZmluZEF0dHJpYnV0ZWRTdGF0ZW1lbnQsIGZpbmRBdHRyaWJ1dGVkUXVlcnks
ICJmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiX3MpOwogICAgIGlmICghZmluZEF0dHJpYnV0
ZWRTY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1l
bnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCi0gICAgICAg
IHx8IGZpbmRBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDIsICpkZXN0aW5hdGlv
blNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIHx8IGZpbmRBdHRyaWJ1dGVk
U2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0g
U1FMSVRFX09LCisgICAgICAgIHx8IGZpbmRBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5k
VGV4dCgzLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpICE9IFNRTElURV9PSykgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIiVwIC0gRGF0
YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBmaW5kQXR0cmlidXRlZFF1ZXJ5LCBl
cnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC0y
NzIsNyArMjc0LDcgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cmli
dXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50Piwgc3RkOjpvcHQKICAgICByZXR1cm4gc3RkOjpt
YWtlX3BhaXIodW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIGF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCk7CiB9CiAKLXN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNl
bmREYXRhPiwgRGVidWdJbmZvPiBEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUm
IHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRy
aWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEpCitzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4sIERlYnVnSW5mbz4g
RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNp
dGUmIGRlc3RpbmF0aW9uU2l0ZSwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBh
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKIHsK
ICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMjkxLDcgKzI5Myw3IEBAIHN0
ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpB
dHRyaWJ1dGlvblNlY29uZHNVbnRpCiAKICAgICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSBzZWNvbmRzVW50aWxTZW5kIHsg
c3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfTsKIAotICAgIGF1dG8gYXR0cmlidXRpb24gPSBm
aW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlKTsK
KyAgICBhdXRvIGF0dHJpYnV0aW9uID0gZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJj
ZVNpdGUsIGRlc3RpbmF0aW9uU2l0ZSwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKTsKICAg
ICBhdXRvJiBwcmV2aW91c2x5VW5hdHRyaWJ1dGVkID0gYXR0cmlidXRpb24uZmlyc3Q7CiAgICAg
YXV0byYgcHJldmlvdXNseUF0dHJpYnV0ZWQgPSBhdHRyaWJ1dGlvbi5zZWNvbmQ7CiAKQEAgLTM1
MCw2ICszNTIsNyBAQCB2b2lkIERhdGFiYXNlOjpyZW1vdmVVbmF0dHJpYnV0ZWQoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmIGF0dHJpYnV0aW9uKQogICAgIGlmICghc2NvcGVkU3Rh
dGVtZW50CiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCAqc291cmNlU2l0
ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5k
SW50KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8
IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgYXR0cmlidXRpb24uc291cmNlQXBwbGljYXRp
b25CdW5kbGVJRCgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5z
dGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsICIlcCAtIERhdGFiYXNlOjpyZW1vdmVVbmF0dHJpYnV0ZWQsIGVy
cm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0
RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTIyLDYgKzUy
NSw3IEBAIHZvaWQgRGF0YWJhc2U6OmNsZWFyU2VudEF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50JiYgYXR0cmlidXRpCiAKICAgICBhdXRvIHNvdXJjZVNpdGVEb21h
aW5JRCA9IGRvbWFpbklEKGF0dHJpYnV0aW9uLnNvdXJjZVNpdGUoKS5yZWdpc3RyYWJsZURvbWFp
bik7CiAgICAgYXV0byBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9IGRvbWFpbklEKGF0dHJpYnV0
aW9uLmRlc3RpbmF0aW9uU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICBhdXRvIHNvdXJj
ZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSBhdHRyaWJ1dGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlEKCk7CiAKICAgICBpZiAoIXNvdXJjZVNpdGVEb21haW5JRCB8fCAhZGVzdGluYXRpb25TaXRl
RG9tYWluSUQpCiAgICAgICAgIHJldHVybjsKQEAgLTUzMiw3ICs1MzYsNyBAQCB2b2lkIERhdGFi
YXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCYmIGF0dHJpYnV0aQogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgbWFya1JlcG9ydEFzU2VudFRvU291cmNl
KCpzb3VyY2VTaXRlRG9tYWluSUQsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCk7CisgICAgICAg
IG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZSgqc291cmNlU2l0ZURvbWFpbklELCAqZGVzdGluYXRp
b25TaXRlRG9tYWluSUQsIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpOwogICAgICAgICBzb3Vy
Y2VFYXJsaWVzdFRpbWVUb1NlbmQgPSBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uUmVwb3J0
RW5kcG9pbnQ6OkRlc3RpbmF0aW9uOgpAQCAtNTQwLDcgKzU0NCw3IEBAIHZvaWQgRGF0YWJhc2U6
OmNsZWFyU2VudEF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYg
YXR0cmlidXRpCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotICAgICAgICBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlv
bigqc291cmNlU2l0ZURvbWFpbklELCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpOworICAgICAg
ICBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbigqc291cmNlU2l0ZURvbWFpbklELCAqZGVz
dGluYXRpb25TaXRlRG9tYWluSUQsIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpOwogICAgICAg
ICBkZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2VuZCA9IHN0ZDo6bnVsbG9wdDsKICAgICB9CiAK
QEAgLTU0OCwxNyArNTUyLDE4IEBAIHZvaWQgRGF0YWJhc2U6OmNsZWFyU2VudEF0dHJpYnV0aW9u
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgYXR0cmlidXRpCiAgICAgaWYgKGRl
c3RpbmF0aW9uRWFybGllc3RUaW1lVG9TZW5kIHx8IHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQgPSBt
X2RhdGFiYXNlLnByZXBhcmVTdGF0ZW1lbnQoIkRFTEVURSBGUk9NIEF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5h
dGlvblNpdGVEb21haW5JRCA9ID8iX3MpOworICAgIGF1dG8gY2xlYXJBdHRyaWJ1dGVkU3RhdGVt
ZW50ID0gbV9kYXRhYmFzZS5wcmVwYXJlU3RhdGVtZW50KCJERUxFVEUgRlJPTSBBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQg
ZGVzdGluYXRpb25TaXRlRG9tYWluSUQgPSA/IEFORCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlE
ID0gPyJfcyk7CiAgICAgaWYgKCFjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQKICAgICAgICAgfHwg
Y2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3VyY2VTaXRlRG9tYWluSUQp
ICE9IFNRTElURV9PSwogICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQtPmJpbmRJ
bnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwg
Y2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50LT5iaW5kVGV4dCgzLCBzb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgY2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50
LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsICIlcCAtIERhdGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlv
biBmYWlsZWQgdG8gc3RlcCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgfQogfQogCi12b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9EZXN0
aW5hdGlvbihTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9t
YWluSUQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQpCit2b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0
QXNTZW50VG9EZXN0aW5hdGlvbihTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERl
c3RpbmF0aW9uRG9tYWluSUQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQsIGNvbnN0IEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciYgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBhdXRvIHNjb3BlZFN0YXRlbWVudCA9IHRo
aXMtPnNjb3BlZFN0YXRlbWVudChtX21hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uU3RhdGVt
ZW50LCBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvblF1ZXJ5LCAibWFya1JlcG9ydEFzU2Vu
dFRvRGVzdGluYXRpb24iX3MpOwpAQCAtNTY2LDEzICs1NzEsMTQgQEAgdm9pZCBEYXRhYmFzZTo6
bWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24oU291cmNlRG9tYWluSUQgc291cmNlU2l0ZURv
bWFpbklELAogICAgIGlmICghc2NvcGVkU3RhdGVtZW50CiAgICAgICAgIHx8IHNjb3BlZFN0YXRl
bWVudC0+YmluZEludCgxLCBzb3VyY2VTaXRlRG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAg
ICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgZGVzdGluYXRpb25TaXRlRG9tYWluSUQp
ICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDMsIHNv
dXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRT
dGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkRhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50
VG9EZXN0aW5hdGlvbiwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIG1fZGF0
YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICB9CiB9CiAKLXZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZShTb3VyY2VE
b21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWluSUQgZGVzdGluYXRp
b25TaXRlRG9tYWluSUQpCit2b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2Uo
U291cmNlRG9tYWluSUQgc291cmNlU2l0ZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFpbklEIGRl
c3RpbmF0aW9uU2l0ZURvbWFpbklELCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIm
IHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQo
bV9tYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2VTdGF0ZW1lbnQsIG1hcmtSZXBvcnRBc1NlbnRUb1Nv
dXJjZVF1ZXJ5LCAibWFya1JlcG9ydEFzU2VudFRvU291cmNlIl9zKTsKQEAgLTU4MCw2ICs1ODYs
NyBAQCB2b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UoU291cmNlRG9tYWlu
SUQgc291cmNlU2l0ZURvbWFpbklELCBEZXN0aQogICAgIGlmICghc2NvcGVkU3RhdGVtZW50CiAg
ICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCBzb3VyY2VTaXRlRG9tYWluSUQp
ICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgZGVz
dGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0
ZW1lbnQtPmJpbmRUZXh0KDMsIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpICE9IFNRTElURV9P
SwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkRhdGFi
YXNlOjptYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UsIGVycm9yIG1lc3NhZ2U6ICUiIFBVQkxJQ19M
T0dfU1RSSU5HLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC02MDAsNiArNjA3LDcgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8
RGF0YWJhc2U6OlNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZD4sIHN0ZDo6b3B0aW9uYWw8RGF0YWIK
ICAgICBpZiAoIXNjb3BlZFN0YXRlbWVudAogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJp
bmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNj
b3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNR
TElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDMsIGF0dHJpYnV0
aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8
IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ST1cpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJEYXRhYmFzZTo6ZWFybGllc3RU
aW1lc1RvU2VuZCwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERhdGFiYXNlLmgKaW5kZXggMmVlZDg5NDVkYTBiZmQyNTYxYWQ5ODcwNGI4ZWY3MTE4MDIxOWQz
YS4uODQwMWJhOTg4NmRlYzU0Njg3ZjExMzZiMDEyZWZhYTAwY2VhNGMwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERh
dGFiYXNlLmgKQEAgLTQyLDEwICs0MiwxMiBAQCBwdWJsaWM6CiAgICAgRGF0YWJhc2UoY29uc3Qg
U3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KTsKICAgICB2aXJ0dWFsIH5EYXRhYmFzZSgpOwogICAg
IAorICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKKwogICAg
IHN0YXRpYyB2b2lkIGludGVycnVwdEFsbERhdGFiYXNlcygpOwogCiAgICAgdm9pZCBpbnNlcnRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYm
LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSk7Ci0gICAgc3RkOjpwYWly
PHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+IGF0dHJpYnV0ZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uRGVzdGluYXRpb25TaXRlJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CisgICAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2Vu
ZERhdGE+LCBEZWJ1Z0luZm8+IGF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRl
JiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiwgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CiAgICAgVmVjdG9yPFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBhbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoKTsKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4pOwogICAgIHZvaWQgY2xlYXJF
eHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKQEAgLTY2LDExICs2OCwxMSBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBjcmVhdGVTY2hlbWEoKSBmaW5hbDsKICAgICB2b2lkIGRlc3Ryb3lT
dGF0ZW1lbnRzKCkgZmluYWw7Ci0gICAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8VW5hdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdGlvbmFsPEF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudD4+IGZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYp
OworICAgIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50Piwgc3RkOjpvcHRpb25hbDxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ+PiBmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBjb25zdCBBcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXImKTsKICAgICB2b2lkIHJlbW92ZVVuYXR0cmlidXRlZChXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwogICAgIFN0cmluZyBhdHRyaWJ1dGlvblRvU3Ry
aW5nRm9yVGVzdGluZyhjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpIGNv
bnN0OwotICAgIHZvaWQgbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24oU291cmNlRG9tYWlu
SUQsIERlc3RpbmF0aW9uRG9tYWluSUQpOwotICAgIHZvaWQgbWFya1JlcG9ydEFzU2VudFRvU291
cmNlKFNvdXJjZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFpbklEKTsKKyAgICB2b2lkIG1hcmtS
ZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKFNvdXJjZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFp
bklELCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsKKyAgICB2b2lkIG1hcmtS
ZXBvcnRBc1NlbnRUb1NvdXJjZShTb3VyY2VEb21haW5JRCwgRGVzdGluYXRpb25Eb21haW5JRCwg
Y29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJik7CiAgICAgc3RkOjpwYWlyPHN0ZDo6
b3B0aW9uYWw8U291cmNlRWFybGllc3RUaW1lVG9TZW5kPiwgc3RkOjpvcHRpb25hbDxEZXN0aW5h
dGlvbkVhcmxpZXN0VGltZVRvU2VuZD4+IGVhcmxpZXN0VGltZXNUb1NlbmQoY29uc3QgV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKICAgICBzdGQ6Om9wdGlvbmFsPERvbWFpbklE
PiBlbnN1cmVEb21haW5JRChjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwogICAg
IHN0ZDo6b3B0aW9uYWw8RG9tYWluSUQ+IGRvbWFpbklEKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKaW5kZXggZjQ5OTgzOThlOGMxYjNiZDIy
OGVjYWU2NDI0ZTZhNTYwYjk1YThiOS4uNWQwODVjYjVlZjllMGU3MTcxZmViMTdmNjAzZWJmYzA5
YTU1YTlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcApAQCAtNzcsNiArNzcsOSBAQCB2b2lkIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RvcmVVbmF0dHJpYnV0ZWQoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQmJgogCiAgICAgY2xlYXJFeHBpcmVkKCk7CiAKKyAgICBpZiAobV9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZykKKyAgICAgICAgbWVhc3Vy
ZW1lbnQuc2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJREZvclRlc3RpbmcoKm1fcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOworCiAgICAgaWYgKG1lYXN1cmVt
ZW50LmVwaGVtZXJhbFNvdXJjZU5vbmNlKCkpIHsKICAgICAgICAgYXV0byBtZWFzdXJlbWVudENv
cHkgPSBtZWFzdXJlbWVudDsKICAgICAgICAgLy8gVGhpcyBpcyBndWFyYW50ZWVkIHRvIGJlIGNs
b3NlIGluIHRpbWUgdG8gdGhlIG5hdmlnYXRpb25hbCBjbGljayB3aGljaCBtYWtlcyBpdCBsaWtl
bHkgdG8gYmUgcGVyc29uYWxseSBpZGVudGlmaWFibGUuCkBAIC0yMzAsNyArMjMzLDcgQEAgdm9p
ZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6Om1pZ3JhdGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEZyb21MZWdhY3lTdG8KICAgICBzdG9yZSgpLmluc2VydFByaXZhdGVDbGlja01lYXN1
cmVtZW50KFdURk1vdmUobWVhc3VyZW1lbnQpLCB0eXBlKTsKIH0KIAotdm9pZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eVVSTCkKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVB
dHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0
YSwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJl
ZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwsIGNvbnN0IEFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogewogICAgIGlm
ICghZmVhdHVyZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjQ3LDcgKzI1MCw3IEBA
IHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVBdHRyaWJ1dGlvbihB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYKIAogICAgIG1fY2xpZW50LT5icm9hZGNhc3RDb25zb2xl
TWVzc2FnZShNZXNzYWdlTGV2ZWw6OkxvZywgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBU
cmlnZ2VyaW5nIGV2ZW50IGFjY2VwdGVkLiJfcyk7CiAKLSAgICBhdHRyaWJ1dGUoU291cmNlU2l0
ZSB7IFdURk1vdmUocmVkaXJlY3REb21haW4pIH0sIEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRl
IHsgZmlyc3RQYXJ0eVVSTCB9LCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpKTsKKyAg
ICBhdHRyaWJ1dGUoU291cmNlU2l0ZSB7IFdURk1vdmUocmVkaXJlY3REb21haW4pIH0sIEF0dHJp
YnV0aW9uRGVzdGluYXRpb25TaXRlIHsgZmlyc3RQYXJ0eVVSTCB9LCBXVEZNb3ZlKGF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEpLCBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JU
ZXN0aW5nID8gKm1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmcg
OiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpOwogfQogCiB2b2lkIFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlcjo6c3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpCkBAIC0y
NTUsMTIgKzI1OCwyMCBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3Rh
cnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpCiAgICAgc3RhcnRUaW1lcigwX3MpOwogfQog
Cit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
JiYgYXBwQnVuZGxlSUQpCit7CisgICAgaWYgKGFwcEJ1bmRsZUlELmlzRW1wdHkoKSkKKyAgICAg
ICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA9IHN0ZDo6
bnVsbG9wdDsKKyAgICBlbHNlCisgICAgICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmcgPSBXVEZNb3ZlKGFwcEJ1bmRsZUlEKTsKK30KKwogdm9pZCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0YXJ0VGltZXIoU2Vjb25kcyBzZWNvbmRzKQog
ewogICAgIG1fZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzVGltZXIuc3RhcnRPbmVTaG90
KG1faXNSdW5uaW5nVGVzdCA/IDBfcyA6IHNlY29uZHMpOwogfQogCi12b2lkIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6YXR0cmlidXRlKGNvbnN0IFNvdXJjZVNpdGUmIHNvdXJjZVNp
dGUsIGNvbnN0IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIEF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQordm9pZCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiBz
b3VyY2VTaXRlLCBjb25zdCBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25T
aXRlLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgY29u
c3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIpCiB7CiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0y
NzMsNyArMjg0LDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmF0dHJp
YnV0ZShjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb24KICAgICAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgICAgIAotICAgIHN0b3JlKCkuYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBXVEZNb3ZlKGF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEpLCBzdGQ6OmV4Y2hhbmdlKG1fZXBoZW1lcmFsTWVhc3VyZW1lbnQsIHN0ZDo6
bnVsbG9wdCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKGF1dG8gYXR0
cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSwgYXV0byBkZWJ1Z0luZm8pIHsKKyAgICBzdG9y
ZSgpLmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUsIGRlc3RpbmF0
aW9uU2l0ZSwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEpLCBzdGQ6OmV4Y2hhbmdlKG1fZXBoZW1lcmFsTWVhc3VyZW1lbnQsIHN0ZDo6
bnVsbG9wdCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKGF1dG8gYXR0
cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSwgYXV0byBkZWJ1Z0luZm8pIHsKICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCkBAIC00MzYsNiAr
NDQ3LDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW8KICAgICBtX2ZpcmVQZW5kaW5nQXR0cmli
dXRpb25SZXF1ZXN0c1RpbWVyLnN0b3AoKTsKICAgICBtX2VwaGVtZXJhbE1lYXN1cmVtZW50ID0g
c3RkOjpudWxsb3B0OwogICAgIG1faXNSdW5uaW5nRXBoZW1lcmFsTWVhc3VyZW1lbnRUZXN0ID0g
ZmFsc2U7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGlu
ZyA9IHN0ZDo6bnVsbG9wdDsKIAogICAgIGlmICghZmVhdHVyZUVuYWJsZWQoKSkKICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaAppbmRleCBiYzViYzll
NzRhYzA4MzFhZDdjYjkwMTc2YmExMDk1NjBjYjE5OWJjLi42NzFkMzkwMWJhNjU4OTcwNDcwMDM5
Zjk0NTRlZWUxNTljMDUyZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKQEAgLTQ1LDggKzQ1LDEwIEBA
IHB1YmxpYzoKICAgICBleHBsaWNpdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoVW5p
cXVlUmVmPFBDTTo6Q2xpZW50PiYmLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VEaXJlY3RvcnkpOwog
ICAgIH5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoKTsKIAorICAgIHVzaW5nIEFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKKwogICAgIHZvaWQgc3RvcmVVbmF0dHJp
YnV0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJikgZmluYWw7Ci0gICAgdm9pZCBoYW5kbGVB
dHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVS
TCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5VVJMKSBmaW5hbDsKKyAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKEF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiYmIHJlZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkws
IGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYpIGZpbmFsOwogICAgIHZvaWQgY2xl
YXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyRm9y
UmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgbWlncmF0ZVByaXZhdGVDbGlja01lYXN1
cmVtZW50RnJvbUxlZ2FjeVN0b3JhZ2UoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpIGZpbmFsOwpAQCAtNjEsNiArNjMsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3RpbmcoYm9v
bCB2YWx1ZSkgZmluYWwgeyBtX2lzUnVubmluZ0VwaGVtZXJhbE1lYXN1cmVtZW50VGVzdCA9IHZh
bHVlOyB9CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0
cmluZyYmIHVubGlua2FibGVUb2tlbiwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNp
Z25hdHVyZSwgU3RyaW5nJiYga2V5SUQpIGZpbmFsOwogICAgIHZvaWQgc3RhcnRUaW1lckltbWVk
aWF0ZWx5Rm9yVGVzdGluZygpIGZpbmFsOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiYp
OwogICAgIHZvaWQgZGVzdHJveVN0b3JlRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpIGZpbmFsOwogICAgIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQ
Q01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpIGZpbmFsOwogCkBAIC03
Miw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4o
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7CiAgICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uVHlwZSk7CiAgICAgdm9pZCBjbGVhclNlbnRBdHRyaWJ1dGlvbihQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25SZXBvcnRFbmRwb2ludCk7Ci0gICAgdm9pZCBhdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYs
IGNvbnN0IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgQXR0cmlidXRpb25UcmlnZ2VyRGF0
YSYmKTsKKyAgICB2b2lkIGF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmli
dXRpb25EZXN0aW5hdGlvblNpdGUmLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IEFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYpOwogICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1
ZXN0KGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50JiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQpOwogICAgIHZvaWQgZmlyZUNvbnZlcnNpb25S
ZXF1ZXN0SW1wbChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYsIFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50KTsKICAgICB2b2lkIGZpcmVQZW5k
aW5nQXR0cmlidXRpb25SZXF1ZXN0cygpOwpAQCAtODYsNiArODksNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9pc1J1bm5pbmdFcGhlbWVyYWxNZWFzdXJlbWVudFRlc3QgeyBmYWxzZSB9OwogICAg
IHN0ZDo6b3B0aW9uYWw8VVJMPiBtX3Rva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZzsKICAgICBz
dGQ6Om9wdGlvbmFsPFVSTD4gbV90b2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc7CisgICAgc3Rk
OjpvcHRpb25hbDxBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI+IG1fcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc7CiAgICAgbXV0YWJsZSBSZWZQdHI8UENNOjpT
dG9yZT4gbV9zdG9yZTsKICAgICBTdHJpbmcgbV9zdG9yYWdlRGlyZWN0b3J5OwogICAgIFVuaXF1
ZVJlZjxQQ006OkNsaWVudD4gbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlckludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVy
ZmFjZS5jcHAKaW5kZXggNjdhNDY5MzEzY2M4MmNiZmZhNDY0MWIwODRhZWQ5YWE3MDIyNzJjNS4u
MzljYzY0ODg2ZjliNGY5NDYyZTAwY2I1MGU1NTJlYzhiZTc1NzQ5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcApAQCAtNTEsNyArNTEsNyBAQCBBUkdVTUVOVFMoV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCiBFTkQKIAogRlVOQ1RJT04oaGFuZGxlQXR0
cmlidXRpb24pCi1BUkdVTUVOVFMoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpBdHRy
aWJ1dGlvblRyaWdnZXJEYXRhLCBVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluLCBVUkwp
CitBUkdVTUVOVFMoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhLCBVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluLCBVUkwsIFN0cmluZykK
IEVORAogCiBGVU5DVElPTihjbGVhcikKQEAgLTExMCw2ICsxMTAsMTAgQEAgRlVOQ1RJT04oc3Rh
cnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZykKIEFSR1VNRU5UUygpCiBFTkQKIAorRlVOQ1RJ
T04oc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpCitBUkdV
TUVOVFMoU3RyaW5nKQorRU5ECisKIEZVTkNUSU9OKGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcpCiBB
UkdVTUVOVFMoKQogUkVQTFkoKQpAQCAtMTU0LDYgKzE1OCw3IEBAIGJvb2wgbWVzc2FnZVR5cGVT
ZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlKQogICAgIGNhc2UgTWVzc2FnZVR5cGU6
OlNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZzoKICAgICBjYXNlIE1lc3NhZ2VUeXBl
OjpTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nOgogICAgIGNhc2UgTWVzc2Fn
ZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3Rpbmc6CisgICAgY2FzZSBNZXNzYWdl
VHlwZTo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc6CiAg
ICAgY2FzZSBNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01U
ZXN0aW5nOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6TWFy
a0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nOgpA
QCAtMjY0LDYgKzI2OSw5IEBAIHZvaWQgZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoTWVz
c2FnZVR5cGUgbWVzc2FnZVR5cGUsIFZlY3Rvcjx1aW50OF90PiYmIGVuCiAgICAgY2FzZSBQQ006
Ok1lc3NhZ2VUeXBlOjpTdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nOgogICAgICAgICBo
YW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0
aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UENNOjpNZXNzYWdlVHlwZTo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZv
clRlc3Rpbmc6CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRN
ZXNzYWdlKSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6RGVz
dHJveVN0b3JlRm9yVGVzdGluZzoKICAgICAgICAgaGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseTxN
ZXNzYWdlSW5mbzo6ZGVzdHJveVN0b3JlRm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVkTWVzc2Fn
ZSksIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXJJbnRlcmZhY2UuaAppbmRleCA1Y2Y0ZTNkZTIxZDBjYzM5OWMyM2FkMDkwN2EzM2Q4
ZWVmMDdiNWE1Li5hNGE5NzQ0ODk3MTFhYjQ4YTIyM2ZmYzQyZDgyMDRmMjYxOTM3MzdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKQEAgLTUwLDkgKzUwLDEwIEBAIHB1Ymxp
YzoKICAgICB1c2luZyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OwogICAgIHVzaW5nIFJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgU291cmNlU2l0ZSA9IFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlOworICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllciA9IFN0cmluZzsKIAogICAgIHZpcnR1YWwgdm9pZCBzdG9yZVVuYXR0cmli
dXRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGhh
bmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3QgVVJMJiByZXF1
ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJlZGlyZWN0RG9tYWluLCBjb25z
dCBVUkwmIGZpcnN0UGFydHlVUkwpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXR0cmli
dXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eVVSTCwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBtaWdyYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9tTGVnYWN5U3RvcmFnZShQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9u
VHlwZSkgPSAwOwpAQCAtNjcsNiArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyhib29sKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5saW5r
YWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJp
bmcmJiBrZXlJRCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlG
b3JUZXN0aW5nKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
JikgPSAwOwogfTsKQEAgLTkxLDYgKzkzLDcgQEAgZW51bSBjbGFzcyBNZXNzYWdlVHlwZSA6IHVp
bnQ4X3QgewogICAgIFNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZywKICAgICBTZXRQ
Q01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nLAogICAgIFN0YXJ0VGltZXJJbW1lZGlh
dGVseUZvclRlc3RpbmcsCisgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJ
REZvclRlc3RpbmcsCiAgICAgRGVzdHJveVN0b3JlRm9yVGVzdGluZywKICAgICBBbGxvd1RMU0Nl
cnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcKIH07CkBAIC0xMjcsNiArMTMwLDcgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU+IHsK
ICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpTZXRFcGhlbWVyYWxNZWFzdXJlbWVu
dEZvclRlc3RpbmcsCiAgICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6U2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZywKICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3Nh
Z2VUeXBlOjpTdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nLAorICAgICAgICBXZWJLaXQ6
OlBDTTo6TWVzc2FnZVR5cGU6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nLAogICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9y
ZUZvclRlc3RpbmcsCiAgICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6QWxsb3dUTFND
ZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nCiAgICAgPjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXJQcm94eS5jcHAKaW5kZXggOTdlZjZlZTY3MmQ0YjhkYTYwNTNiY2M3NDIzMzg1Y2YwZDc4
YmUxYi4uYmRhODVjNDk2YjYwYjFlYjYyMGVlYjcxNDVhYzgxMDNkZjRkZWNhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJQcm94eS5jcHAKQEAgLTgwLDkgKzgwLDkgQEAgdm9pZCBNYW5hZ2VyUHJv
eHk6OnN0b3JlVW5hdHRyaWJ1dGVkKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYg
cGNtKQogICAgIHNlbmRNZXNzYWdlPE1lc3NhZ2VUeXBlOjpTdG9yZVVuYXR0cmlidXRlZD4ocGNt
KTsKIH0KIAotdm9pZCBNYW5hZ2VyUHJveHk6OmhhbmRsZUF0dHJpYnV0aW9uKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgdHJpZ2dlckRh
dGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBy
ZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMKQordm9pZCBNYW5hZ2VyUHJv
eHk6OmhhbmRsZUF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgdHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVS
TCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5VVJMLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllcikKIHsKLSAgICBzZW5kTWVzc2FnZTxNZXNzYWdlVHlwZTo6
SGFuZGxlQXR0cmlidXRpb24+KHRyaWdnZXJEYXRhLCByZXF1ZXN0VVJMLCByZWRpcmVjdERvbWFp
biwgZmlyc3RQYXJ0eVVSTCk7CisgICAgc2VuZE1lc3NhZ2U8TWVzc2FnZVR5cGU6OkhhbmRsZUF0
dHJpYnV0aW9uPih0cmlnZ2VyRGF0YSwgcmVxdWVzdFVSTCwgcmVkaXJlY3REb21haW4sIGZpcnN0
UGFydHlVUkwsIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgTWFuYWdl
clByb3h5OjpjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCkBAIC0xNTAsNiArMTUwLDExIEBAIHZvaWQgTWFuYWdlclByb3h5OjpzdGFydFRpbWVySW1t
ZWRpYXRlbHlGb3JUZXN0aW5nKCkKICAgICBzZW5kTWVzc2FnZTxNZXNzYWdlVHlwZTo6U3RhcnRU
aW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZz4oKTsKIH0KIAordm9pZCBNYW5hZ2VyUHJveHk6OnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKEFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciYmIGFwcEJ1bmRsZUlEKQoreworICAgIHNlbmRNZXNzYWdlPE1lc3Nh
Z2VUeXBlOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZz4o
YXBwQnVuZGxlSUQpOworfQorCiB2b2lkIE1hbmFnZXJQcm94eTo6ZGVzdHJveVN0b3JlRm9yVGVz
dGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgc2VuZE1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRlc3Rp
bmc+KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHku
aAppbmRleCA3YzBhZjBmNjM5MGQzNmNkYzFmYTZiNjEwNGMzODRiNjM2NzVlNTEwLi4zNGIzNDcw
YWFlYmNjYzljNmY4NzQ0ZDIzYjRmMTBhMDExYzhhYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQ
cm94eS5oCkBAIC0zOSw4ICszOSwxMCBAQCBjbGFzcyBNYW5hZ2VyUHJveHkgOiBwdWJsaWMgTWFu
YWdlckludGVyZmFjZSB7CiBwdWJsaWM6CiAgICAgTWFuYWdlclByb3h5KGNvbnN0IFN0cmluZyYg
bWFjaFNlcnZpY2VOYW1lKTsKIAorICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
ciA9IFN0cmluZzsKKwogICAgIHZvaWQgc3RvcmVVbmF0dHJpYnV0ZWQoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQmJikgZmluYWw7Ci0gICAgdm9pZCBoYW5kbGVBdHRyaWJ1dGlvbihX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYm
LCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVk
aXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCkgZmluYWw7CisgICAgdm9pZCBo
YW5kbGVBdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmli
dXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwg
Y29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJikgZmluYWw7CiAgICAgdm9pZCBjbGVh
cihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXJGb3JS
ZWdpc3RyYWJsZURvbWFpbihjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBtaWdyYXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRGcm9tTGVnYWN5U3RvcmFnZShXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSkgZmluYWw7
CkBAIC01NSw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVwaGVtZXJhbE1lYXN1cmVt
ZW50Rm9yVGVzdGluZyhib29sKSBmaW5hbDsKICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlv
blZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNy
ZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCkgZmluYWw7CiAgICAg
dm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkgZmluYWw7CisgICAgdm9pZCBz
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhBcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXImJikgZmluYWw7CiAgICAgdm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0
aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBhbGxvd1RM
U0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlm
aWNhdGVJbmZvJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuY3BwCmluZGV4IGQ4OTI5NTU5NzZmOTFl
YTNkZTA5ZjJlMTg0MmMyNmQ2N2E3N2NkNjUuLmY5MDdhZmU5YTBkMDNmNzNhNzE4NjY4OTBhZTAz
MjQwOWYxODBkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcApAQCAtOTUsOSArOTUsOSBAQCB2b2lkIFN0
b3JlOjptYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRG
b3JUZXN0aW5nKCkKICAgICB9KTsKIH0KIAotdm9pZCBTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ+JiYgZXBoZW1lcmFsTWVhc3VyZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25TZWNvbmRzVW50aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZvJiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3Qg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUs
IGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3Rp
bmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJE
YXRhLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIGVw
aGVtZXJhbE1lYXN1cmVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGls
U2VuZERhdGE+JiYsIERlYnVnSW5mbyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBw
b3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHNvdXJjZVNpdGUg
PSBzb3VyY2VTaXRlLmlzb2xhdGVkQ29weSgpLCBkZXN0aW5hdGlvblNpdGUgPSBkZXN0aW5hdGlv
blNpdGUuaXNvbGF0ZWRDb3B5KCksIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3ZlKGF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBlcGhlbWVyYWxNZWFzdXJlbWVudCA9IGNyb3NzVGhyZWFk
Q29weShlcGhlbWVyYWxNZWFzdXJlbWVudCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgc291cmNlU2l0ZSA9IHNvdXJjZVNpdGUuaXNvbGF0
ZWRDb3B5KCksIGRlc3RpbmF0aW9uU2l0ZSA9IGRlc3RpbmF0aW9uU2l0ZS5pc29sYXRlZENvcHko
KSwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gYXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyLmlzb2xhdGVkQ29weSgpLCBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShhdHRy
aWJ1dGlvblRyaWdnZXJEYXRhKSwgZXBoZW1lcmFsTWVhc3VyZW1lbnQgPSBjcm9zc1RocmVhZENv
cHkoZXBoZW1lcmFsTWVhc3VyZW1lbnQpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX2RhdGFiYXNlKSB7
CiAgICAgICAgICAgICByZXR1cm4gcG9zdFRhc2tSZXBseShbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0LCB7IH0pOwpAQCAtMTEwLDcgKzExMCw3IEBA
IHZvaWQgU3RvcmU6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtCiAgICAgICAgICAgICBtX2RhdGFiYXNlLT5pbnNlcnRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChXVEZNb3ZlKCplcGhlbWVyYWxNZWFzdXJlbWVudCksIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlOjpVbmF0dHJpYnV0ZWQpOwogICAg
ICAgICB9CiAKLSAgICAgICAgYXV0byBbc2Vjb25kcywgZGVidWdJbmZvXSA9IG1fZGF0YWJhc2Ut
PmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUsIGRlc3RpbmF0aW9u
U2l0ZSwgV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSk7CisgICAgICAgIGF1dG8gW3Nl
Y29uZHMsIGRlYnVnSW5mb10gPSBtX2RhdGFiYXNlLT5hdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChzb3VyY2VTaXRlLCBkZXN0aW5hdGlvblNpdGUsIGFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciwgV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSk7CiAKICAgICAgICAgcG9z
dFRhc2tSZXBseShbc2Vjb25kcyA9IFdURk1vdmUoc2Vjb25kcyksIGRlYnVnSW5mbyA9IGRlYnVn
SW5mby5pc29sYXRlZENvcHkoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUoc2Vjb25kcyksIFdURk1vdmUoZGVidWdJbmZvKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oCmluZGV4IDgz
MTM1NmRjYzZjNzM5MTk3NmJlZDBhODhkYzIzZGNiYmM1YzEyMjEuLjg0YjcxNjYyZDdhMWExZjc4
YjIzYzUwNWU2YzA3NDNiYzFmZGNmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oCkBAIC00NywxMSArNDcsMTMg
QEAgcHVibGljOgogCiAgICAgflN0b3JlKCk7CiAKKyAgICB1c2luZyBBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIgPSBTdHJpbmc7CisKICAgICBzdGF0aWMgdm9pZCBwcmVwYXJlRm9yUHJvY2Vz
c1RvU3VzcGVuZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHN0YXRpYyB2b2lk
IHByb2Nlc3NEaWRSZXN1bWUoKTsKIAogICAgIHZvaWQgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgV2ViS2l0OjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSk7Ci0gICAgdm9pZCBhdHRyaWJ1dGVQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpB
dHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgZXBoZW1lcmFsTWVhc3VyZW1lbnQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZvJiYpPiYmKTsK
KyAgICB2b2lkIGF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgY29uc3Qg
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiBlcGhlbWVyYWxNZWFzdXJlbWVudCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiYmLCBEZWJ1Z0luZm8mJik+JiYp
OwogCiAgICAgdm9pZCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nRm9yVGVzdGluZyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGNvbnN0OwogICAgIHZvaWQgbWFya0Fs
bFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggMDI0OWRmZTAx
ZjQ0MGUwODk1NTNkZjRhYzc5OTYzZWJiNjkyNjRiYi4uYWIyMjkxZTM0MWI1MzA4YjhlNTVlNDVk
YWQ5YWZiOWU0NGM5NjY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCkBAIC0zMTM4LDYgKzMxMzgsMTQgQEAgdm9pZCBXS1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRp
b25WYWx1ZXNGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1JlZgogICAgIH0p
OwogfQogCit2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1JlZiBhcHBCdW5kbGVJREZvclRl
c3RpbmcsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0
aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKK3sKKyAgICBDUkFT
SF9JRl9TVVNQRU5ERUQ7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyh0b1dURlN0cmluZyhhcHBCdW5kbGVJREZvclRl
c3RpbmcpLCBbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgeworICAgICAgICBjYWxsYmFj
ayhjYWxsYmFja0NvbnRleHQpOworICAgIH0pOworfQorCiB2b2lkIFdLUGFnZVNldE1vY2tDYW1l
cmFPcmllbnRhdGlvbihXS1BhZ2VSZWYgcGFnZVJlZiwgdWludDY0X3Qgb3JpZW50YXRpb24pCiB7
CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlUHJpdmF0ZS5oCmluZGV4IDdmMjQzODk2MDU4ZWYwOGE3YmY4MWY1Y2U1YWNhZDU4
MTNmYmVkZWYuLjc1MzhlYzAyNmNkOWRhODI4ZWU2ODMwNGYwYWVjYjkyODRhZGFhMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKQEAgLTE5Miw2
ICsxOTIsOCBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uKSh2bwogV0tfRVhQT1JUIHZvaWQgV0tQYWdl
TWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoV0tQYWdlUmVm
IHBhZ2UsIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0
aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nRnVuY3Rpb24p
KHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQQ01GcmF1
ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBz
ZWNyZXRUb2tlbiwgV0tTdHJpbmdSZWYgdW5saW5rYWJsZVRva2VuLCBXS1N0cmluZ1JlZiBzaWdu
YXR1cmUsIFdLU3RyaW5nUmVmIGtleUlELCBXS1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1
ZXNGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0
eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlE
Rm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZv
aWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmco
V0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIGFwcEJ1bmRsZUlERm9yVGVzdGluZywgV0tQ
YWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmdGdW5jdGlv
biBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKIAogV0tfRVhQT1JUIHZvaWQgV0tQ
YWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdLUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBvcmll
bnRhdGlvbik7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyRW5hYmxlZChXS1BhZ2VSZWYgcGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5o
CmluZGV4IDIwNDcyNmEwZTg3ZGIxMzdkZGIwNDdhNWViNTJmZDNkNjI3OTE4MGIuLmUzZWQyYTRl
YzU0YzhhYjJkN2MwMmI4NjE2OGM3YmUyNzFiMmRkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVz
dGluZy5oCkBAIC0xMDMsNiArMTAzLDcgQEAgc3RydWN0IFdLQXBwUHJpdmFjeVJlcG9ydFRlc3Rp
bmdEYXRhIHsKIC0gKHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25S
ZXBvcnRVUkxzRm9yVGVzdGluZzooTlNVUkwgKilzb3VyY2VVUkwgZGVzdGluYXRpb25VUkw6KE5T
VVJMICopZGVzdGluYXRpb25VUkwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsK
IC0gKHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25Ub2tlblB1Ymxp
Y0tleVVSTEZvclRlc3Rpbmc6KE5TVVJMICopdXJsIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlv
cygxNS4wKSk7CiAtICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9u
VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nOihOU1VSTCAqKXVybCBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApLCBpb3MoMTUuMCkpOworLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
cHBCdW5kbGVJREZvclRlc3Rpbmc6KE5TU3RyaW5nICopYXBwQnVuZGxlSUQgY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX2R1bXBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDoodm9pZCheKShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFuZGxlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAt
ICh2b2lkKV9sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZDoodm9pZCheKShCT09MKSljb21w
bGV0aW9uSGFuZGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1Rlc3RpbmcubW0KaW5kZXggNjhjNDQxMTQ5ZWE0NmE0NGQxMjg4ODJkN2Zl
YTJhODg0OTUyZWJjNC4uY2I0MjM0NmFjZWY0NTExYTRlNGU5MjFhODYxNTNlNzQ5YzIyZDNhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rl
c3RpbmcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1Rlc3RpbmcubW0KQEAgLTM1NCw2ICszNTQsMTMgQEAgLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZzooTlNVUkwK
ICAgICB9KTsKIH0KIAorLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5k
bGVJREZvclRlc3Rpbmc6KE5TU3RyaW5nICopYXBwQnVuZGxlSUQgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZS0+c2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoYXBwQnVuZGxlSUQsIFtjb21w
bGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9KTsKK30KKwogLSAodm9pZClfZHVtcFByaXZh
dGVDbGlja01lYXN1cmVtZW50Oih2b2lkKF4pKE5TU3RyaW5nICopKWNvbXBsZXRpb25IYW5kbGVy
CiB7CiAgICAgX3BhZ2UtPmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChbY29tcGxldGlvbkhh
bmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXShjb25zdCBTdHJpbmcmIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCBiN2VjMmVjZTUyYzdlNjQ5OGYwOTU4YzZhMmIyY2QyYmQ0N2UxZGRjLi45
MzgzNGI3OGUxMjdjZDBkNDJiYjZmMjA1YzIxOTc1YTBjZTIyYmNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwNTEzLDYgKzEwNTEzLDExIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKGNvbnN0
IFN0cmluZyYgdW5saW5rYWJsCiAgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNz
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25J
RCgpLCB1bmxpbmthYmxlVG9rZW4sIHNlY3JldFRva2VuLCBzaWduYXR1cmUsIGtleUlEKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBh
cHBCdW5kbGVJREZvclRlc3RpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNl
c3Npb25JRCgpLCBhcHBCdW5kbGVJREZvclRlc3RpbmcpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Cit9CisKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKIAogdm9pZCBXZWJQYWdl
UHJveHk6OnJlc2V0U3BlZWNoU3ludGhlc2l6ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCBmMmRmYjA1MTA4NmRiZjA4YjU3ZjljNTk5MTM3YzZhYmIxYWUyODVh
Li4zZmJmYWU0ZjJlYzNhYjVkNjQxNTYxOTA5ZTFjZTU0Zjc2OTk0Y2RhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTc3Miw2ICsxNzcyLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNG
b3JUZXN0aW5nKGNvbnN0IFVSTCYgc291cmNlVVJMLCBjb25zdCBVUkwmIGRlc3RpbmF0aW9uVVJM
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbWFya1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoY29u
c3QgU3RyaW5nJiB1bmxpbmthYmxlVG9rZW4sIGNvbnN0IFN0cmluZyYgc2VjcmV0VG9rZW4sIGNv
bnN0IFN0cmluZyYgc2lnbmF0dXJlLCBjb25zdCBTdHJpbmcmIGtleUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBhcHBCdW5kbGVJREZvclRlc3RpbmcsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJ
UykKICAgICB2b2lkIHNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3RvcjxXZWJTcGVlY2hTeW50aGVzaXNWb2ljZT4mJik+JiYpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGIzNDQxOTNmYTAwYTI0MDI4
ODU1NWMxMWQ0NDBiZWE3MDZlYWRhYjcuLjVhNmYzYTVmZThkYjI0ZWIzYTg0NmFkODFiOGNlOTY5
NjQzM2M3ODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wOS0yOSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVy
QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IFRha2UgYXBwIGJ1bmRsZSBJRCBpbnRvIGNvbnNp
ZGVyYXRpb24gd2hlbiBtYXRjaGluZyB0cmlnZ2VyaW5nIGV2ZW50cyB3aXRoIHBlbmRpbmcgY2xp
Y2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3
NzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNTE2NTI4PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3Jn
L3IyODI4ODQgYWRkZWQgYXBwIGJ1bmRsZSBJRHMgdG8gdW5hdHRyaWJ1dGVkCisgICAgICAgIGFu
ZCBhdHRyaWJ1dGVkIGNsaWNrcyBpbiBQQ00uIFRoaXMgcGF0Y2ggbWFrZXMgc3VyZSB3ZSB0YWtl
IHRob3NlIElEcworICAgICAgICBpbnRvIGNvbnNpZGVyYXRpb24gaW4gUENNOjpEYXRhYmFzZTo6
YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS4KKworICAgICAgICBUaGUgVGVzdFJ1
bm5lciBjaGFuZ2VzIGFyZSBhbGwgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBlbmFibGUgZGlmZmVy
ZW50CisgICAgICAgIGFwcCBidW5kbGUgSURzIGluIHRoZSBleWVzIG9mIFBDTS4gVGhlIEFQSSB0
ZXN0IGNoYW5nZXMgYXJlIHRvIG1ha2UgdXNlCisgICAgICAgIG9mIHRoZSBhcHAgYnVuZGxlIElE
IHRlc3QgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpy
dW5CYXNpY0V2ZW50QXR0cmlidXRpb25UZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9j
YXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgor
CiAyMDIxLTA5LTI4ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2Nv
YV0gQWRkIFNQSSB0byBzZWxlY3QgYSB0YWIgY3JlYXRlZCBieSBfV0tJbnNwZWN0b3JFeHRlbnNp
b24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZl
bnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA0MzRmOWE2ZTkwZmRkYTk1Y2E5NjNhYjU1MGRlOGYw
MTQ3ZGQyMzdlLi4yOTVhMDBmNGRjYTBmNWU3MjNiYjk5ZTRmNDM2ODE5MTViMzczNjE3IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmli
dXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVu
dEF0dHJpYnV0aW9uLm1tCkBAIC0xNTMsOCArMTUzLDEwIEBAIHZvaWQgcnVuQmFzaWNFdmVudEF0
dHJpYnV0aW9uVGVzdChXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uLCBGdW5j
dGlvCiAgICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLndlYnNpdGVEYXRhU3RvcmUgX3RydXN0
U2VydmVyRm9yTG9jYWxQQ01UZXN0aW5nOnNlY1RydXN0RnJvbUNlcnRpZmljYXRlQ2hhaW4oQFso
aWQpdGVzdENlcnRpZmljYXRlKCkuZ2V0KCldKS5nZXQoKV07CiAgICAgW3dlYlZpZXcgX3NldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZzpzZXJ2
ZXJVUkwgZGVzdGluYXRpb25VUkw6ZXhhbXBsZVVSTCgpIGNvbXBsZXRpb25IYW5kbGVyOl57CiAg
ICAgICAgIFt3ZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJG
b3JUZXN0aW5nOllFUyBjb21wbGV0aW9uSGFuZGxlcjpeewotICAgICAgICAgICAgTlNTdHJpbmcg
Kmh0bWwgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjxzY3JpcHQ+ZmV0Y2goJyVAY29u
dmVyc2lvblJlcXVlc3RCZWZvcmVSZWRpcmVjdCcse21vZGU6J25vLWNvcnMnfSk8L3NjcmlwdD4i
LCBzZXJ2ZXJVUkxdOwotICAgICAgICAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbCBi
YXNlVVJMOmV4YW1wbGVVUkwoKV07CisgICAgICAgICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc6QCJ0ZXN0LmJ1bmRsZS5pZCIgY29t
cGxldGlvbkhhbmRsZXI6XnsKKyAgICAgICAgICAgICAgICBOU1N0cmluZyAqaHRtbCA9IFtOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPHNjcmlwdD5mZXRjaCgnJUBjb252ZXJzaW9uUmVxdWVz
dEJlZm9yZVJlZGlyZWN0Jyx7bW9kZTonbm8tY29ycyd9KTwvc2NyaXB0PiIsIHNlcnZlclVSTF07
CisgICAgICAgICAgICAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOmV4
YW1wbGVVUkwoKV07CisgICAgICAgICAgICB9XTsKICAgICAgICAgfV07CiAgICAgfV07CiAgICAg
VXRpbDo6cnVuKCZkb25lKTsKQEAgLTQ3NSw3ICs0NzcsNyBAQCBURVNUKEV2ZW50QXR0cmlidXRp
b24sIERhZW1vbikKICAgICAgICAgW3dlYlZpZXcgX2FkZEV2ZW50QXR0cmlidXRpb25XaXRoU291
cmNlSUQ6NDIgZGVzdGluYXRpb25VUkw6ZXhhbXBsZVVSTCgpIHNvdXJjZURlc2NyaXB0aW9uOkAi
dGVzdCBzb3VyY2UgZGVzY3JpcHRpb24iIHB1cmNoYXNlcjpAInRlc3QgcHVyY2hhc2VyIiByZXBv
cnRFbmRwb2ludDpzZXJ2ZXIucmVxdWVzdCgpLlVSTCBvcHRpb25hbE5vbmNlOm5pbCBhcHBsaWNh
dGlvbkJ1bmRsZUlEOkAidGVzdC5idW5kbGUuaWQiXTsKICAgICB9KTsKIAotICAgIHN5c3RlbSgi
a2lsbGFsbCBUZXN0UENNRGFlbW9uIC05Iik7CisgICAgc3lzdGVtKCJraWxsYWxsIEFkQXR0cmli
dXRpb25EYWVtb24gLTkiKTsKICNpZiBIQVZFKE9TX0xBVU5DSERfSk9CKQogICAgIC8vIExhdW5j
aE9ubHlPbmNlIHRha2VzIGNhcmUgb2YgY2xlYW51cCB3aXRoIGxhdW5jaGQuCiAjZWxzZQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggYWJlYmM4ZWFlOTUyOTg3OGI3Njc0ODBjYzkzZDEx
ODQ4MGEyN2VmNC4uZWFlMmJhODZlMDhjOTg1ZTQwZWIwOWIzMDlmOWFjNDYwZjZjMzI3YiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC00MTYsNiArNDE2LDcgQEAgaW50ZXJmYWNlIFRl
c3RSdW5uZXIgewogICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uUmVwb3J0VVJMc0ZvclRlc3RpbmcoRE9NU3RyaW5nIHNvdXJjZVVSTFN0cmluZywgRE9N
U3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nKTsKICAgICB1bmRlZmluZWQgbWFya1ByaXZhdGVD
bGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICB1bmRlZmluZWQgc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKERP
TVN0cmluZyB1bmxpbmthYmxlVG9rZW4sIERPTVN0cmluZyBzZWNyZXRUb2tlbiwgRE9NU3RyaW5n
IHNpZ25hdHVyZSwgRE9NU3RyaW5nIGtleUlEKTsKKyAgICB1bmRlZmluZWQgc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoRE9NU3RyaW5nIGFwcEJ1bmRsZUlE
KTsKIAogICAgIC8vIFNwZWVjaFJlY29nbml0aW9uCiAgICAgdW5kZWZpbmVkIHNldElzU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuIHZhbHVlKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4
IDk2NWRmNjE1Yzc1MDA1OGFhNDU4YTBlOTBmYmVkNGJiOGEwNjJiNDIuLmVjODk2ZGM5NDYyNDFi
NmRjYjk5MjY0MjQ0MDEzYzg5NTg4NTc3ZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMjExNCw2ICsyMTE0LDEy
IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcmF1ZFByZXZl
bnRpb25WYWx1ZXNGb3JUZXN0aW5nKEpTU3RyCiAgICAgfSkpOwogfQogCit2b2lkIFRlc3RSdW5u
ZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKEpTU3Ry
aW5nUmVmIGFwcEJ1bmRsZUlEKQoreworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJT
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyIsCisgICAgICAg
IHRvV0soYXBwQnVuZGxlSUQpKTsKK30KKwogYm9vbCBUZXN0UnVubmVyOjpoYXNBcHBCb3VuZFNl
c3Npb24oKQogewogICAgIHJldHVybiBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZVJldHVybmlu
Z0Jvb2xlYW4oIkhhc0FwcEJvdW5kU2Vzc2lvbiIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBhOWQzYmY4NWQ2MjM3Mzc5
MzNkNjk2OWU4NzkzZGM3MjhjZDM1OWJkLi43YzE3ZjQyYmVjNGFmMWJlOGYxNzk3NGIxZDQ0OWRk
NGQ4ZTYzODczIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaApAQCAtNTMyLDYgKzUzMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1h
cmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygp
OwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFcGhlbWVyYWxNZWFzdXJlbWVu
dEZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoSlNTdHJpbmdSZWYgdW5saW5rYWJs
ZVRva2VuLCBKU1N0cmluZ1JlZiBzZWNyZXRUb2tlbiwgSlNTdHJpbmdSZWYgc2lnbmF0dXJlLCBK
U1N0cmluZ1JlZiBrZXlJRCk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFw
cEJ1bmRsZUlERm9yVGVzdGluZyhKU1N0cmluZ1JlZik7CiAgICAgdm9pZCBzaW11bGF0ZVJlc291
cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOwogCiAgICAgdm9pZCBzZXRJc1NwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGVmNzM5MGJhYzQyN2VjNzg2MmRlMjA3NTBkZjc3
YTJiZTk3ZTFkZmUuLmZlYjJhMzk3ZTQyYTM2OGM0MTc5ZWNiMzFkNmQxOTIwNjNmMTlhMDcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zNzQ5LDYgKzM3
NDksMTMgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVz
Rm9yVGVzdGluZyhXS1N0cmluZ1JlZiB1bmxpbmthYmwKICAgICBydW5VbnRpbChjYWxsYmFja0Nv
bnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tTdHJpbmdSZWYgYXBw
QnVuZGxlSUQpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250
ZXh0IGNhbGxiYWNrQ29udGV4dCgqdGhpcyk7CisgICAgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcobV9tYWluV2ViVmlldy0+cGFnZSgpLCBhcHBC
dW5kbGVJRCwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0Nv
bnRleHQpOworICAgIHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOwor
fQorCiBXS1VSTFJlZiBUZXN0Q29udHJvbGxlcjo6Y3VycmVudFRlc3RVUkwoKSBjb25zdAogewog
ICAgIHJldHVybiBtX2N1cnJlbnRJbnZvY2F0aW9uID8gbV9jdXJyZW50SW52b2NhdGlvbi0+dXJs
KCkgOiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4
IDk0ZTEzMDgwMjU0ZTI3YWVmMTUxODZlMmRjNThlMmU3ZDk5MWI1Y2QuLjBhODJmMmRlMTU5MTc3
NjcwNzg3Y2EwMTliOWIzNzc2NWM3MDkzNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKQEAgLTM1NSw2ICszNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3RpbmcoV0tVUkxS
ZWYgc291cmNlVVJMLCBXS1VSTFJlZiBkZXN0aW5hdGlvblVSTCk7CiAgICAgdm9pZCBtYXJrUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogICAgIHZvaWQgc2V0
UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhXS1N0cmluZ1JlZiB1bmxpbmthYmxl
VG9rZW4sIFdLU3RyaW5nUmVmIHNlY3JldFRva2VuLCBXS1N0cmluZ1JlZiBzaWduYXR1cmUsIFdL
U3RyaW5nUmVmIGtleUlEKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBw
QnVuZGxlSURGb3JUZXN0aW5nKFdLU3RyaW5nUmVmKTsKIAogICAgIHZvaWQgZGlkU2V0QXBwQm91
bmREb21haW5zKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAKaW5kZXggM2YyZjJiMTdkMzgyYWNiZmQ4ZDY0NzQ4Zjg0MDIwMzQzNzM5MDcxNS4uMzQ1
MDY5MzAwOTkyZmIzZTA3MTNlODMyYzQxN2ZjNTFjMDg4ZjA4YyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE0MjMsNiArMTQyMywxMSBAQCBXS1JldGFp
blB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNz
YWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nIikpIHsKKyAgICAgICAgVGVzdENv
bnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxl
SURGb3JUZXN0aW5nKHN0cmluZ1ZhbHVlKG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAiU3luY0xvY2FsU3RvcmFnZSIpKSB7CiAgICAgICAgIFRlc3RDb250cm9sbGVy
OjpzaW5nbGV0b24oKS5zeW5jTG9jYWxTdG9yYWdlKCk7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGY4MDNiMTg5NGYxOGFhMDVlMmE2MzA0Y2VkMTcxM2Y5MDlkOGEwOTQuLmY5MTQ2
MzlhY2QyN2MyYjlhYmYzMGM5NmQ5ZTI5ZTZiMDVjYTE4MzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAyMS0wOS0yOSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBQQ006IFRha2UgYXBwIGJ1bmRsZSBJRCBpbnRvIGNvbnNpZGVyYXRpb24gd2hlbiBtYXRj
aGluZyB0cmlnZ2VyaW5nIGV2ZW50cyB3aXRoIHBlbmRpbmcgY2xpY2tzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3NzgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgzNTE2NTI4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyODI4ODQgYWRkZWQgYXBw
IGJ1bmRsZSBJRHMgdG8gdW5hdHRyaWJ1dGVkCisgICAgICAgIGFuZCBhdHRyaWJ1dGVkIGNsaWNr
cyBpbiBQQ00uIFRoaXMgcGF0Y2ggbWFrZXMgc3VyZSB3ZSB0YWtlIHRob3NlIElEcworICAgICAg
ICBpbnRvIGNvbnNpZGVyYXRpb24gaW4gUENNOjpEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1i
dW5kbGUtaWRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgICh0ZWFyRG93bkFuZEZpbmlz
aCk6CisKIDIwMjEtMDktMjggIFRydWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNYXJraW5nIG1vcmUgdGVzdHMgY3Jhc2hpbmcgd2l0aCB1bmNhdWdodCBleGNlcHRp
b24gJ05TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlk
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
YTNhNWY0OTAyMDg0Zjk0NTYzYjAzM2YyNjk3NDI4NzBhNjkyNDI3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBs
ZS1hcHAtYnVuZGxlLWlkcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAorVGVzdHMgcHJp
dmF0ZSBjbGljayBtZWFzdXJlbWVudCB3aXRoIG11bHRpcGxlIGFwcCBidW5kbGUgSURzLCBtYWtp
bmcgc3VyZSBvbmx5IHRoZSBtYXRjaGluZyBJRCBpcyBjb25zaWRlcmVkIGEgbWF0Y2guCisKKwor
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorQXR0cmlidXRp
b24gcmVjZWl2ZWQuCitIVFRQX0hPU1Q6IDEyNy4wLjAuMTo4MDAwCitDb250ZW50IHR5cGU6IGFw
cGxpY2F0aW9uL2pzb24KK1JFUVVFU1RfVVJJOiAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVz
b3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucHk/cmVjaXBpZW50PUNsaWNrU291cmNlCitObyBjb29r
aWVzIGluIGF0dHJpYnV0aW9uIHJlcXVlc3QuCitSZXF1ZXN0IGJvZHk6Cit7InNvdXJjZV9lbmdh
Z2VtZW50X3R5cGUiOiJjbGljayIsInNvdXJjZV9zaXRlIjoiMTI3LjAuMC4xIiwic291cmNlX2lk
IjozMywiYXR0cmlidXRlZF9vbl9zaXRlIjoibG9jYWxob3N0IiwidHJpZ2dlcl9kYXRhIjoxMiwi
dmVyc2lvbiI6Mn0KKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0t
LS0KK0F0dHJpYnV0aW9uIHJlY2VpdmVkLgorSFRUUF9IT1NUOiBsb2NhbGhvc3Q6ODAwMAorQ29u
dGVudCB0eXBlOiBhcHBsaWNhdGlvbi9qc29uCitSRVFVRVNUX1VSSTogL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnB5P3JlY2lwaWVudD1DbGlja0Rl
c3RpbmF0aW9uCitObyBjb29raWVzIGluIGF0dHJpYnV0aW9uIHJlcXVlc3QuCitSZXF1ZXN0IGJv
ZHk6Cit7InNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiOiJjbGljayIsInNvdXJjZV9zaXRlIjoiMTI3
LjAuMC4xIiwic291cmNlX2lkIjozMywiYXR0cmlidXRlZF9vbl9zaXRlIjoibG9jYWxob3N0Iiwi
dHJpZ2dlcl9kYXRhIjoxMiwidmVyc2lvbiI6Mn0KKworVW5hdHRyaWJ1dGVkIFByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291
cmNlIHNpdGU6IDEyNy4wLjAuMQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNl
IElEOiAyMworTm8gYXR0cmlidXRpb24gdHJpZ2dlciBkYXRhLgorQXBwbGljYXRpb24gYnVuZGxl
IGlkZW50aWZpZXI6IHRlc3RCdW5kbGVJRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBs
ZS1hcHAtYnVuZGxlLWlkcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNDcwMzQ3YzAwM2E1OTI1YTZmYjk2
MzQ2MmE2NTM5ZTQzZjc2NTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWwK
QEAgLTAsMCArMSwxMDMgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2Fs
YWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRp
diBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgd2l0aCBt
dWx0aXBsZSBhcHAgYnVuZGxlIElEcywgbWFraW5nIHN1cmUgb25seSB0aGUgbWF0Y2hpbmcgSUQg
aXMgY29uc2lkZXJlZCBhIG1hdGNoLjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsxIiBocmVmPSJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBw
LWJ1bmRsZS1pZHMuaHRtbD9zdGVwVHdvIiBhdHRyaWJ1dGlvbnNvdXJjZWlkPTIzIGF0dHJpYnV0
aW9uZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazE8L2E+PGJyPgorPGEg
aWQ9InRhcmdldExpbmsyIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMuaHRtbD9zdGVwRm91ciIgYXR0cmli
dXRpb25zb3VyY2VpZD0zMyBhdHRyaWJ1dGlvbmRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0
OjgwMDAiPkxpbmsyPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0Pgor
ICAgIGNvbnN0IGN1cnJlbnRUaW1lTWlsbGlzID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKKyAg
ICBjb25zdCBoaWdoRW50cm9weUJpdHMgPSBjdXJyZW50VGltZU1pbGxpcyAtIChNYXRoLmZsb29y
KGN1cnJlbnRUaW1lTWlsbGlzIC8gMTAwMDAwMCkgKiAxMDAwMDAwKTsKKyAgICBjb25zdCBub25j
ZSA9IGhpZ2hFbnRyb3B5Qml0cyArICIiICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAw
KTsKKworICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGlt
ZXJGb3JUZXN0aW5nKHRydWUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAg
ICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVF
bGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZz
ZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0g
ZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJ
SGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4
dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGFwcGVuZElmcmFtZSh1cmwsIG9ubG9hZENhbGxiYWNrKSB7CisgICAgICAgIGxldCBpZnJh
bWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlm
cmFtZUVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25sb2FkQ2FsbGJhY2spCisgICAg
ICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IG9ubG9hZENhbGxiYWNrOworICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgIH0KKworICAgIGxl
dCByZXBvcnRzUmVjZWl2ZWQgPSAwOworICAgIGZ1bmN0aW9uIGFwcGVuZENvbnZlcnNpb25EYXRh
SWZyYW1lQW5kRmluaXNoKCkgeworICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rMSIpKTsKKyAgICAgICAgZG9jdW1lbnQu
Ym9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluazIiKSk7
CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInBpeGVsIikpOworCisgICAgICAgIC8vIENsaWNrIHNvdXJjZS4KKyAgICAgICAgYXBwZW5k
SWZyYW1lKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVz
b3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnB5P3RpbWVvdXRfbXM9MjAwMCZyZWNpcGllbnQ9Q2xp
Y2tTb3VyY2Umbm9uY2U9IiArIG5vbmNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJlcG9y
dHNSZWNlaXZlZCsrOworICAgICAgICAgICAgaWYgKHJlcG9ydHNSZWNlaXZlZCA+PSAyKQorICAg
ICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gQ2xp
Y2sgZGVzdGluYXRpb24uCisgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5w
eT90aW1lb3V0X21zPTIwMDAmcmVjaXBpZW50PUNsaWNrRGVzdGluYXRpb24mbm9uY2U9IiArIG5v
bmNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJlcG9ydHNSZWNlaXZlZCsrOworICAgICAg
ICAgICAgaWYgKHJlcG9ydHNSZWNlaXZlZCA+PSAyKQorICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBpZiAod2luZG93Lmxv
Y2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAgICAgIC8vIFN0ZXAg
MjogR28gYmFjayB0byB0aGUgc291cmNlLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWw/c3RlcFRocmVlIjsKKyAgICAgICAgICAgIH0g
ZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhyZWUiKSB7CisgICAg
ICAgICAgICAgICAgLy8gU3RlcCAzOiBDaGFuZ2UgdGhlIGFwcCBidW5kbGUgSUQgYW5kIGNsaWNr
IHRoZSBzZWNvbmQgbGluay4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKCIiKTsKKyAgICAgICAgICAgICAg
ICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsyIik7CisgICAgICAgICAgICB9IGVsc2UgaWYg
KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcEZvdXIiKSB7CisgICAgICAgICAgICAg
ICAgLy8gU3RlcCA0OiBDb252ZXJ0LgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nKCJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZl
cnNpb25SZXBvcnQucHk/cmVjaXBpZW50PUNsaWNrU291cmNlJm5vbmNlPSIgKyBub25jZSwgImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29u
dmVyc2lvblJlcG9ydC5weT9yZWNpcGllbnQ9Q2xpY2tEZXN0aW5hdGlvbiZub25jZT0iICsgbm9u
Y2UpOworICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBz
Oi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGly
ZWN0VG9Db252ZXJzaW9uLnB5P2NvbnZlcnNpb25EYXRhPTEyJm5vbmNlPSIgKyBub25jZTsKKyAg
ICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAg
IGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAg
fTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVu
dCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFN0ZXAgMTogQ2hh
bmdlIHRoZSBhcHAgYnVuZGxlIElEIGFuZCBjbGljayB0aGUgZmlyc3QgbGluay4KKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nKCJ0ZXN0QnVuZGxlSUQiKTsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1l
bnQoInRhcmdldExpbmsxIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZB
SUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvdXRpbC5qcwppbmRleCBlN2MzY2Q4OGM0
Mjg2MDJlNjEzODAzZmM0OTIzNmY4NmYxN2ZhZGQxLi4yYTYzMzYxNDJhYTQ4YmM0MjNiOGUzN2E1
NjEwM2RhMzA0ZGVmOWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMKQEAgLTE1
LDYgKzE1LDcgQEAgZnVuY3Rpb24gdGVhckRvd25BbmRGaW5pc2goKSB7CiAgICAgICAgIHRlc3RS
dW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JU
ZXN0aW5nKCIiLCAiIik7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoIiIpOwogICAgICAgICB0ZXN0UnVubmVy
LnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nKCIi
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZygiIik7CiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAg
IH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439688</attachid>
            <date>2021-09-29 18:23:32 -0700</date>
            <delta_ts>2021-09-29 20:38:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230778-20210929182331.patch</filename>
            <type>text/plain</type>
            <size>64758</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM1NDMyZTYxMzAxNTQ3
ZGZlYjIxMzNmYjU3OGMwOTZiMWNiZGI0Mi4uMTBhNTI1NzIzMDJhMTIyMmVmMWQzNjYzMzMxYzUy
Y2YzMTI0OWQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA5LTI5ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogVGFrZSBhcHAg
YnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIG1hdGNoaW5nIHRyaWdnZXJpbmcgZXZl
bnRzIHdpdGggcGVuZGluZyBjbGlja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMDc3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBodHRw
czovL2NvbW1pdHMud2Via2l0Lm9yZy9yMjgyODg0IGFkZGVkIGFwcCBidW5kbGUgSURzIHRvIHVu
YXR0cmlidXRlZAorICAgICAgICBhbmQgYXR0cmlidXRlZCBjbGlja3MgaW4gUENNLiBUaGlzIHBh
dGNoIG1ha2VzIHN1cmUgd2UgdGFrZSB0aG9zZSBJRHMKKyAgICAgICAgaW50byBjb25zaWRlcmF0
aW9uIGluIFBDTTo6RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KCku
CisKKyAgICAgICAgVGhlIFdlYkNvcmUgcGFydCBtYWtlcyBzdXJlIHRoYXQgYSB0ZW1wb3Jhcnkg
YXBwIGJ1bmRsZSBJRCBjYW4gYmUgc2V0CisgICAgICAgIG9uIGF0dHJpYnV0aW9ucyB0aGF0IGdl
dCBzdG9yZWQgaW4gUENNJ3MgZGF0YWJhc2UuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sCisKKyAg
ICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SURGb3JUZXN0aW5nKToKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
aDoKKwogMjAyMS0wOS0yOSAgQmFzdWtlIFN1enVraSAgPGJhc3VrZS5zdXp1a2lAc29ueS5jb20+
CiAKICAgICAgICAgU3VwcHJlc3Mgd2FybmluZ3MgZm9yIGltcGxpY2l0IGNvcHkgYXNzaWdubWVu
dCBvcGVyYXRvci9jb3B5IGNvbnN0cnVjdG9yIHdpdGggY2xhbmcgMTMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTg5
NjNhODI2NzVmN2NiODhmMjA1NTRkMmM0YWMxOTUxMGJiMDcyYy4uMmUyMDM5MDY5YjA2NDE2Mzcw
ZWU1M2MzMzQ5YWYwYjM1ZTRhNmIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MiBAQAorMjAyMS0w
OS0yOSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006
IFRha2UgYXBwIGJ1bmRsZSBJRCBpbnRvIGNvbnNpZGVyYXRpb24gd2hlbiBtYXRjaGluZyB0cmln
Z2VyaW5nIGV2ZW50cyB3aXRoIHBlbmRpbmcgY2xpY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3NzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzgzNTE2NTI4PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAg
ICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvcjI4Mjg4NCBhZGRlZCBhcHAgYnVuZGxl
IElEcyB0byB1bmF0dHJpYnV0ZWQKKyAgICAgICAgYW5kIGF0dHJpYnV0ZWQgY2xpY2tzIGluIFBD
TS4gVGhpcyBwYXRjaCBtYWtlcyBzdXJlIHdlIHRha2UgdGhvc2UgSURzCisgICAgICAgIGludG8g
Y29uc2lkZXJhdGlvbiBpbiBQQ006OkRhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCgpLgorCisgICAgICAgIEEgbG90IG9mIHRoZSBXZWJLaXQgcGFydCBpczoKKyAgICAg
ICAgLSBQaXBpbmcgdGhyb3VnaCBhcHAgYnVuZGxlIElEcyBmcm9tIHRoZSBuZXR3b3JrIHNlc3Np
b24gdG8gdGhlIFBDTQorICAgICAgICAgICAgZGF0YWJhc2Ugd2hlcmUgdGhlIElEIHdpbGwgYmUg
bWF0Y2hlZCBhZ2FpbnN0IHN0b3JlZCBhcHAgYnVuZGxlIElEcy4KKyAgICAgICAgLSBQaXBpbmcg
dGhyb3VnaCB0ZXN0IGNvbmZpZ3VyYXRpb24gZm9yIGFwcCBidW5kbGUgSUQuCisKKyAgICAgICAg
VGhlIHJlYWwgY2hhbmdlIGlzIGluIFBDTTo6RGF0YWJhc2Ugd2hpY2ggaXMgZXhwbGFpbmVkIGJl
bG93LgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
bXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMuaHRtbAorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6aGFu
ZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JU
ZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNl
OjpmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAgICAgTm93IHRha2VzIGFu
IGFwcCBidW5kbGUgSUQgc3VwcGxpZWQgZnJvbSB0aGUgbmV0d29yayBzZXNzaW9uIGFuZAorICAg
ICAgICAgICAgaW5jbHVkZXMgaXQgaW4gdGhlIGRhdGFiYXNlIHF1ZXJ5IHRvIGZpbmQgbWF0Y2hp
bmcgZW50cmllcy4gSWYgYW5kCisgICAgICAgICAgICBhdHRyaWJ1dGlvbiB3YXMgc2F2ZWQgd2l0
aCBhcHAgYnVuZGxlIElEIFhZWiwgaXQgc2hvdWxkIG9ubHkgYmUKKyAgICAgICAgICAgIGJlIGNv
bnZlcnRlZCBpbiBhbiBhcHBsaWNhdGlvbiB3aXRoIGFwcCBidW5kbGUgSUQgWFlaLgorICAgICAg
ICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCk6CisgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbGxzIFBDTTo6RGF0YWJhc2U6OmZpbmRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpCisgICAgICAgICAgICB3aGljaCBuZWVkcyB0aGUgYXBw
IGJ1bmRsZSBJRCBzbyB0aGF0IElEIGlzIGZvcndhcmRlZCB0aHJvdWdoLgorICAgICAgICAoV2Vi
S2l0OjpQQ006OkRhdGFiYXNlOjpyZW1vdmVVbmF0dHJpYnV0ZWQpOgorICAgICAgICAgICAgQWxz
byBuZWVkcyB0byB0YWtlIHRoZSBhcHAgYnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbi4KKyAg
ICAgICAgKFdlYktpdDo6UENNOjpEYXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRpb24pOgorICAg
ICAgICAgICAgQWxzbyBuZWVkcyB0byB0YWtlIHRoZSBhcHAgYnVuZGxlIElEIGludG8gY29uc2lk
ZXJhdGlvbi4KKyAgICAgICAgKFdlYktpdDo6UENNOjpEYXRhYmFzZTo6bWFya1JlcG9ydEFzU2Vu
dFRvRGVzdGluYXRpb24pOgorICAgICAgICAgICAgQWxzbyBuZWVkcyB0byB0YWtlIHRoZSBhcHAg
YnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbi4KKyAgICAgICAgKFdlYktpdDo6UENNOjpEYXRh
YmFzZTo6bWFya1JlcG9ydEFzU2VudFRvU291cmNlKToKKyAgICAgICAgICAgIEFsc28gbmVlZHMg
dG8gdGFrZSB0aGUgYXBwIGJ1bmRsZSBJRCBpbnRvIGNvbnNpZGVyYXRpb24uCisgICAgICAgIChX
ZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OmVhcmxpZXN0VGltZXNUb1NlbmQpOgorICAgICAgICAgICAg
QWxzbyBuZWVkcyB0byB0YWtlIHRoZSBhcHAgYnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbi4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdG9yZVVu
YXR0cmlidXRlZCk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcjo6aGFuZGxlQXR0cmlidXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjphdHRyaWJ1dGUpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OmNsZWFyKToKKyAgICAgICAgICAgIENsZWFycyB0aGUgdGVzdCBzZXR0aW5nIGZv
ciBhcHAgYnVuZGxlIElELgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlckludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6bWVzc2FnZVR5
cGVTZW5kc1JlcGx5KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpkZWNvZGVNZXNzYWdlQW5kU2Vu
ZFRvTWFuYWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQ
cm94eTo6aGFuZGxlQXR0cmlidXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQ
cm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlBDTTo6U3RvcmU6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1
cmVtZW50KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1
ZXNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXBwQnVuZGxlSURGb3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZUZvclRlc3RpbmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rl
c3RpbmcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKwogMjAyMS0wOS0yOSAgRnVqaWkgSGly
b25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIFJF
R1JFU1NJT04ocjI4MDcyNik6IHJlZ2lzdHJ5IGtleXMgZW5hYmxpbmcgR1BVIHByb2Nlc3MgbW9k
ZSBkb24ndCB3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50LmNwcAppbmRleCAwYTc4MTQ4ODNhMTQzOTQ5YjJkOWI3NTVmOTc3YzQwYzU5ODYz
MGFkLi5iZDI5OGVmYjViYmY1OTNlNzY0Y2ZmMjBiYmIwZWExZTExZjM1Yzk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTE0
NCw2ICsxNDQsMTEgQEAgYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzUHJldmlvdXNs
eUJlZW5SZXBvcnRlZCgpCiAgICAgcmV0dXJuICFtX3RpbWVzVG9TZW5kLnNvdXJjZUVhcmxpZXN0
VGltZVRvU2VuZCB8fCAhbV90aW1lc1RvU2VuZC5kZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2Vu
ZDsKIH0KIAordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0U291cmNlQXBwbGljYXRp
b25CdW5kbGVJREZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBhcHBCdW5kbGVJREZvclRlc3Rpbmcp
Cit7CisgICAgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEID0gYXBwQnVuZGxlSURGb3JUZXN0
aW5nOworfQorCiBzdGF0aWMgU2Vjb25kcyByYW5kb21seUJldHdlZW5Ud2VudHlGb3VyQW5kRm9y
dHlFaWdodEhvdXJzKCkKIHsKICAgICByZXR1cm4gMjRfaCArIFNlY29uZHMocmFuZG9tTnVtYmVy
KCkgKiAoMjRfaCkudmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5oCmluZGV4IDA2YmJmZjdjNTA0NzZhOWMyODJhYzdiYmFmMmI0ZTE0
MzYwYjJkNGUuLmRhZTI0MzQ0ZjJiZDgwYTM2ZWM4Yjk1YmI4YjgxNDdjZDU3ZWI0MjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCkBAIC0z
NDEsNiArMzQxLDcgQEAgcHVibGljOgogICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8QXR0cmlidXRp
b25UcmlnZ2VyRGF0YT4mIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoKSBjb25zdCB7IHJldHVybiBt
X2F0dHJpYnV0aW9uVHJpZ2dlckRhdGE7IH0KICAgICB2b2lkIHNldEF0dHJpYnV0aW9uKEF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSB7IG1fYXR0cmlidXRp
b25UcmlnZ2VyRGF0YSA9IFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSk7IH0KICAgICBj
b25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQoKSBjb25zdCB7IHJldHVybiBt
X3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQ7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSURGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOwogCiAg
ICAgY29uc3QgU3RyaW5nJiBzb3VyY2VEZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc291
cmNlRGVzY3JpcHRpb247IH0KICAgICBjb25zdCBTdHJpbmcmIHB1cmNoYXNlcigpIGNvbnN0IHsg
cmV0dXJuIG1fcHVyY2hhc2VyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGRjMzEzNTE5YTFjMzc0ODMxYzM3YWQ4OWQ3YTJhYzFh
N2UyZjE2ZDkuLmMxNjE4NDgzZTZlM2E2YzA3NjhkZTZiMzcyODM5NTgyYzc3NGRjN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0y
Njg2LDYgKzI2ODYsMTQgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UENNRnJhdWRQcmV2ZW50
aW9uVmFsdWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW8KICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0
cmluZyYmIGFwcEJ1bmRsZUlERm9yVGVzdGluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nl
c3Npb24oc2Vzc2lvbklEKSkKKyAgICAgICAgc2Vzc2lvbi0+c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV1RGTW92ZShhcHBCdW5kbGVJREZvclRlc3Rpbmcp
KTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpCiB7
CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihsb2FkZXItPnNlc3Npb25J
RCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApp
bmRleCA3ZTBjMTk5MmMyZTA0ZTJiZmNkMzhiOTIyYzhjZjRlODdlNWQ0ZmExLi43ZWU3OTFhZDk4
ZWNmNDdiYzk4M2RjNmI3NDNkM2ZjZDU3ZmZhNmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zNTAsNiArMzUwLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBVUkwmJiBzb3VyY2VVUkwsIFVSTCYmIGRlc3RpbmF0
aW9uVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbWFya1ByaXZh
dGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRp
b25WYWx1ZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1bmxpbmthYmxlVG9r
ZW4sIFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtl
eUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFN0cmlu
ZyYmIGFwcEJ1bmRsZUlERm9yVGVzdGluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
IAogICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlUXVvdGFNYW5hZ2VyPiBzdG9yYWdlUXVvdGFN
YW5hZ2VyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4KaW5kZXggMjJlYTk3M2Q0OTUzYzQ4Mjg3MzZjMmMzMDZhMzY2YzFhNmRhZTg0
OS4uODJjZGMzZjVhYTcxYTIwYTljZDE3MGU3ZWU2M2EyODBmMDU3M2U5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluCkBAIC0xNzEsNiArMTcxLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5
UmVjZWl2ZXIgewogICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBv
cnRVUkxzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBzb3VyY2VVUkws
IFVSTCBkZXN0aW5hdGlvblVSTCkgLT4gKCkgQXN5bmMKICAgICBNYXJrUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+
ICgpIEFzeW5jCiAgICAgU2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBzZWNyZXRUb2tlbiwgU3RyaW5nIHVubGlua2Fi
bGVUb2tlbiwgU3RyaW5nIHNpZ25hdHVyZSwgU3RyaW5nIGtleUlEKSAtPiAoKSBBc3luYworICAg
IFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIGFwcEJ1bmRsZUlERm9yVGVzdGluZykgLT4gKCkgQXN5
bmMKICAgICBHZXRMb2NhbFN0b3JhZ2VPcmlnaW5EZXRhaWxzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkgLT4gKFZlY3RvcjxXZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6T3Jp
Z2luRGV0YWlscz4gZGV0YWlscykgQXN5bmMKIAogICAgIFNldFNlcnZpY2VXb3JrZXJGZXRjaFRp
bWVvdXRGb3JUZXN0aW5nKFNlY29uZHMgc2Vjb25kcykgLT4gKCkgU3luY2hyb25vdXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggZThi
NDllZTBlNTI4NDE0MzJhY2ExZTAxYTFjYTJkNWM0NzY1NWNlNC4uMzJiNjQ3ZDYyMTkyZGVmZjBl
MDA1NDhkZWYzYjk1ZTE0NjExNjM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogCisjaW5jbHVkZSAiRGVmYXVsdFdl
YkJyb3dzZXJDaGVja3MuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkU2NoZWR1
bGVyLmgiCkBAIC00NCw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV2ViU29ja2V0VGFzay5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25Db2NvYS5oIgpA
QCAtMzIzLDcgKzMyNSwxMiBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzdG9yZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZQogCiB2b2lkIE5ldHdv
cmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24oUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRy
aWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQogewotICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50
KCkuaGFuZGxlQXR0cmlidXRpb24oV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgcmVx
dWVzdFVSTCwgUmVnaXN0cmFibGVEb21haW4ocmVkaXJlY3RSZXF1ZXN0LnVybCgpKSwgcmVkaXJl
Y3RSZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkpOworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIGF1dG8gYXBwQnVuZGxlSUQgPSBXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIoKTsKKyNlbHNlCisgICAgYXV0byBhcHBCdW5kbGVJRCA9IFN0cmluZygpOworI2VuZGlmCisg
ICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5oYW5kbGVBdHRyaWJ1dGlvbihXVEZNb3ZlKGF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCByZXF1ZXN0VVJMLCBSZWdpc3RyYWJsZURvbWFpbihyZWRp
cmVjdFJlcXVlc3QudXJsKCkpLCByZWRpcmVjdFJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMo
KSwgYXBwQnVuZGxlSUQpOwogfQogCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpkdW1wUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQpAQCAtMzkyLDYgKzM5OSwxNCBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjphbGxv
d1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Qwog
ICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nKGNlcnRpZmljYXRlSW5mbyk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Np
b246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFN0cmlu
ZyYmIGFwcEJ1bmRsZUlERm9yVGVzdGluZykKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBS
RUxFQVNFX0FTU0VSVChpc1J1bm5pbmdUZXN0KFdlYkNvcmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcigpKSk7CisjZW5kaWYKKyAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFdURk1vdmUoYXBwQnVu
ZGxlSURGb3JUZXN0aW5nKSk7Cit9CisKIHZvaWQgTmV0d29ya1Nlc3Npb246OmFkZEtlcHRBbGl2
ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpCiB7CiAgICAgQVNTRVJU
KG1fc2Vzc2lvbklEID09IGxvYWRlci0+c2Vzc2lvbklEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDVlY2UxNDRjZmNiYjk1MTY5Nzg0
ZDRjOGU3Mjc0YWJkN2JkYmU5MTIuLjM0Yzc1YmQ3NThmMTQ3ODA4YjlmODNmZWE2Njk5YmQ0OWMy
ZjA5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmgKQEAgLTE0MSw2ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZl
bnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYmIHVubGlua2FibGVUb2tlbiwgU3RyaW5nJiYg
c2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5nJiYga2V5SUQpOwogICAgIHZv
aWQgZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseUZvclRlc3Rpbmco
KTsKICAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhj
b25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFN0cmluZyYmKTsKIAogICAgIHZvaWQg
YWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPiYmKTsKICAgICB2b2lk
IHJlbW92ZUtlcHRBbGl2ZUxvYWQoTmV0d29ya1Jlc291cmNlTG9hZGVyJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERh
dGFiYXNlLmNwcAppbmRleCAxODk2YmRkYmMxNjllZTg4YjBkYzMwOTM2MzFkNDZmODk0M2ZlMzk5
Li5jYWE1ZmM2YzM3OGNlODNmYjFkYjc4OTI5NjBmYTlkZDZmM2IyNjE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRE
YXRhYmFzZS5jcHAKQEAgLTQzLDE4ICs0MywxOCBAQCBjb25zdGV4cHIgYXV0byBpbnNlcnRVbmF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5ID0gIklOU0VSVCBPUiBSRVBMQQog
ICAgICJzb3VyY2VJRCwgdGltZU9mQWRDbGljaywgdG9rZW4sIHNpZ25hdHVyZSwga2V5SUQsIHNv
dXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPyki
X3M7CiBjb25zdGV4cHIgYXV0byBpbnNlcnRBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRRdWVyeSA9ICJJTlNFUlQgT1IgUkVQTEFDRSBJTlRPIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCAoc291cmNlU2l0ZURvbWFpbklELCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCwg
IgogICAgICJzb3VyY2VJRCwgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgcHJpb3JpdHksIHRpbWVP
ZkFkQ2xpY2ssIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlLCB0b2tlbiwgc2lnbmF0dXJlLCBr
ZXlJRCwgZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlvbiwgc291cmNlQXBwbGljYXRpb25C
dW5kbGVJRCkgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KSJfczsK
LWNvbnN0ZXhwciBhdXRvIGZpbmRVbmF0dHJpYnV0ZWRRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVu
YXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5J
RCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBhdXRv
IGZpbmRBdHRyaWJ1dGVkUXVlcnkgPSAiU0VMRUNUICogRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRp
b25TaXRlRG9tYWluSUQgPSA/Il9zOwotY29uc3RleHByIGF1dG8gcmVtb3ZlVW5hdHRyaWJ1dGVk
UXVlcnkgPSAiREVMRVRFIEZST00gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
V0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQg
PSA/Il9zOworY29uc3RleHByIGF1dG8gZmluZFVuYXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAq
IEZST00gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0
ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQgPSA/IEFORCBzb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIGZpbmRBdHRyaWJ1dGVk
UXVlcnkgPSAiU0VMRUNUICogRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
V0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQg
PSA/IEFORCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRv
IHJlbW92ZVVuYXR0cmlidXRlZFF1ZXJ5ID0gIkRFTEVURSBGUk9NIFVuYXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3Rp
bmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8i
X3M7CiBjb25zdGV4cHIgYXV0byBhbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRR
dWVyeSA9ICJTRUxFQ1QgKiwgTUlOKGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlLCBlYXJsaWVz
dFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uKSBhcyBtaW5WYWwgIgogICAgICJGUk9NIEF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJj
ZSBJUyBOT1QgTlVMTCBBTkQgZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlvbiBJUyBOT1Qg
TlVMTCAiCiAgICAgIlVOSU9OIEFMTCBTRUxFQ1QgKiwgZWFybGllc3RUaW1lVG9TZW5kVG9Tb3Vy
Y2UgYXMgbWluVmFsIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJF
IGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gSVMgTlVMTCAiCiAgICAgIlVOSU9OIEFM
TCBTRUxFQ1QgKiwgZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlvbiBhcyBtaW5WYWwgRlJP
TSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgZWFybGllc3RUaW1lVG9T
ZW5kVG9Tb3VyY2UgSVMgTlVMTCBPUkRFUiBCWSBtaW5WYWwiX3M7CiBjb25zdGV4cHIgYXV0byBh
bGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uc1F1ZXJ5ID0g
IlNFTEVDVCAqIEZST00gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiX3M7CiBj
b25zdGV4cHIgYXV0byBjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5ID0g
IkRFTEVURSBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFID8g
PiB0aW1lT2ZBZENsaWNrIl9zOwotY29uc3RleHByIGF1dG8gbWFya1JlcG9ydEFzU2VudFRvU291
cmNlUXVlcnkgPSAiVVBEQVRFIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBTRVQg
ZWFybGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UgPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVEb21haW5J
RCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBhdXRv
IG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uUXVlcnkgPSAiVVBEQVRFIEF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCBTRVQgZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlv
biA9IG51bGwgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRl
RG9tYWluSUQgPSA/Il9zOwotY29uc3RleHByIGF1dG8gZWFybGllc3RUaW1lc1RvU2VuZFF1ZXJ5
ID0gIlNFTEVDVCBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJjZSwgZWFybGllc3RUaW1lVG9TZW5k
VG9EZXN0aW5hdGlvbiBGUk9NIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVS
RSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8i
X3M7Citjb25zdGV4cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2VRdWVyeSA9ICJVUERB
VEUgQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFNFVCBlYXJsaWVzdFRpbWVUb1Nl
bmRUb1NvdXJjZSA9IG51bGwgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGlu
YXRpb25TaXRlRG9tYWluSUQgPSA/IEFORCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEID0gPyJf
czsKK2NvbnN0ZXhwciBhdXRvIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uUXVlcnkgPSAi
VVBEQVRFIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBTRVQgZWFybGllc3RUaW1l
VG9TZW5kVG9EZXN0aW5hdGlvbiA9IG51bGwgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBB
TkQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQgPSA/IEFORCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIGVhcmxpZXN0VGltZXNUb1NlbmRRdWVyeSA9ICJT
RUxFQ1QgZWFybGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVz
dGluYXRpb24gRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291
cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQgPSA/IEFORCBz
b3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEID0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIGRvbWFpbklE
RnJvbVN0cmluZ1F1ZXJ5ID0gIlNFTEVDVCBkb21haW5JRCBGUk9NIFBDTU9ic2VydmVkRG9tYWlu
cyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7CiBjb25zdGV4cHIgYXV0byBkb21haW5T
dHJpbmdGcm9tRG9tYWluSURRdWVyeSA9ICJTRUxFQ1QgcmVnaXN0cmFibGVEb21haW4gRlJPTSBQ
Q01PYnNlcnZlZERvbWFpbnMgV0hFUkUgZG9tYWluSUQgPSA/Il9zOwogY29uc3RleHByIGF1dG8g
Y3JlYXRlVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSAiQ1JFQVRFIFRBQkxF
IFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50ICgiCkBAIC0yMzcsNyArMjM3LDcg
QEAgdm9pZCBEYXRhYmFzZTo6bWFya0FsbFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXNFeHBpcmVkRm9yVGVzdGluZygpCiAgICAgfQogfQogCi1zdGQ6OnBhaXI8c3RkOjpvcHRp
b25hbDxEYXRhYmFzZTo6VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6
Om9wdGlvbmFsPERhdGFiYXNlOjpBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+PiBE
YXRhYmFzZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmIGRl
c3RpbmF0aW9uU2l0ZSkKK3N0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPERhdGFiYXNlOjpVbmF0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4sIHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OkF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IERhdGFiYXNlOjpmaW5kUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBjb25zdCBB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikK
IHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBhdXRvIHNvdXJjZVNpdGVE
b21haW5JRCA9IGRvbWFpbklEKHNvdXJjZVNpdGUucmVnaXN0cmFibGVEb21haW4pOwpAQCAtMjQ4
LDcgKzI0OCw4IEBAIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPERhdGFiYXNlOjpVbmF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4sIHN0ZDo6b3B0CiAgICAgYXV0byBmaW5kVW5hdHRy
aWJ1dGVkU2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fZmluZFVuYXR0
cmlidXRlZFN0YXRlbWVudCwgZmluZFVuYXR0cmlidXRlZFF1ZXJ5LCAiZmluZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Il9zKTsKICAgICBpZiAoIWZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1l
bnQKICAgICAgICAgfHwgZmluZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgx
LCAqc291cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgZmluZFVuYXR0
cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWlu
SUQpICE9IFNRTElURV9PSykgeworICAgICAgICB8fCBmaW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3Rh
dGVtZW50LT5iaW5kSW50KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09L
CisgICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDMs
IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikgIT0gU1FMSVRFX09LKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiJXAgLSBEYXRhYmFzZTo6
ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50IGZpbmRVbmF0dHJpYnV0ZWRRdWVyeSwgZXJyb3Ig
bWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtMjU2LDcg
KzI1Nyw4IEBAIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPERhdGFiYXNlOjpVbmF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudD4sIHN0ZDo6b3B0CiAgICAgYXV0byBmaW5kQXR0cmlidXRl
ZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX2ZpbmRBdHRyaWJ1dGVk
U3RhdGVtZW50LCBmaW5kQXR0cmlidXRlZFF1ZXJ5LCAiZmluZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Il9zKTsKICAgICBpZiAoIWZpbmRBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50CiAgICAgICAg
IHx8IGZpbmRBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3VyY2VTaXRl
RG9tYWluSUQpICE9IFNRTElURV9PSwotICAgICAgICB8fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0
YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9P
SykgeworICAgICAgICB8fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgy
LCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBmaW5k
QXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgYXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsICIlcCAtIERhdGFiYXNlOjpmaW5kUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgZmluZEF0dHJpYnV0ZWRRdWVyeSwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9M
T0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtMjcyLDcgKzI3NCw3IEBAIHN0ZDo6cGFpcjxz
dGQ6Om9wdGlvbmFsPERhdGFiYXNlOjpVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dD4sIHN0ZDo6b3B0CiAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHVuYXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50LCBhdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOwog
fQogCi1zdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4sIERlYnVnSW5mbz4gRGF0YWJh
c2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmIGRl
c3RpbmF0aW9uU2l0ZSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQorc3RkOjpwYWlyPHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vj
b25kc1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+IERhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIGNvbnN0
IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0
YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAKQEAgLTI5MSw3ICsyOTMsNyBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aQogCiAg
ICAgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1Vu
dGlsU2VuZERhdGEgc2Vjb25kc1VudGlsU2VuZCB7IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0
IH07CiAKLSAgICBhdXRvIGF0dHJpYnV0aW9uID0gZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50
KHNvdXJjZVNpdGUsIGRlc3RpbmF0aW9uU2l0ZSk7CisgICAgYXV0byBhdHRyaWJ1dGlvbiA9IGZp
bmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3VyY2VTaXRlLCBkZXN0aW5hdGlvblNpdGUsIGFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7CiAgICAgYXV0byYgcHJldmlvdXNseVVuYXR0cmli
dXRlZCA9IGF0dHJpYnV0aW9uLmZpcnN0OwogICAgIGF1dG8mIHByZXZpb3VzbHlBdHRyaWJ1dGVk
ID0gYXR0cmlidXRpb24uc2Vjb25kOwogCkBAIC0zNTAsNiArMzUyLDcgQEAgdm9pZCBEYXRhYmFz
ZTo6cmVtb3ZlVW5hdHRyaWJ1dGVkKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiBh
dHRyaWJ1dGlvbikKICAgICBpZiAoIXNjb3BlZFN0YXRlbWVudAogICAgICAgICB8fCBzY29wZWRT
dGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9t
YWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0
KDMsIGF0dHJpYnV0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQoKSkgIT0gU1FMSVRFX09L
CiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiJXAgLSBE
YXRhYmFzZTo6cmVtb3ZlVW5hdHRyaWJ1dGVkLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xP
R19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTUyMiw2ICs1MjUsNyBAQCB2b2lkIERhdGFiYXNlOjpjbGVh
clNlbnRBdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIGF0dHJp
YnV0aQogCiAgICAgYXV0byBzb3VyY2VTaXRlRG9tYWluSUQgPSBkb21haW5JRChhdHRyaWJ1dGlv
bi5zb3VyY2VTaXRlKCkucmVnaXN0cmFibGVEb21haW4pOwogICAgIGF1dG8gZGVzdGluYXRpb25T
aXRlRG9tYWluSUQgPSBkb21haW5JRChhdHRyaWJ1dGlvbi5kZXN0aW5hdGlvblNpdGUoKS5yZWdp
c3RyYWJsZURvbWFpbik7CisgICAgYXV0byBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEID0gYXR0
cmlidXRpb24uc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCgpOwogCiAgICAgaWYgKCFzb3VyY2VT
aXRlRG9tYWluSUQgfHwgIWRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKQogICAgICAgICByZXR1cm47
CkBAIC01MzIsNyArNTM2LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRpb24o
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGkKICAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0g
ICAgICAgIG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZSgqc291cmNlU2l0ZURvbWFpbklELCAqZGVz
dGluYXRpb25TaXRlRG9tYWluSUQpOworICAgICAgICBtYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2Uo
KnNvdXJjZVNpdGVEb21haW5JRCwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklELCBzb3VyY2VBcHBs
aWNhdGlvbkJ1bmRsZUlEKTsKICAgICAgICAgc291cmNlRWFybGllc3RUaW1lVG9TZW5kID0gc3Rk
OjpudWxsb3B0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50OjpEZXN0aW5hdGlvbjoKQEAg
LTU0MCw3ICs1NDQsNyBAQCB2b2lkIERhdGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbihXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIGF0dHJpYnV0aQogICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAg
ICAgbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24oKnNvdXJjZVNpdGVEb21haW5JRCwgKmRl
c3RpbmF0aW9uU2l0ZURvbWFpbklEKTsKKyAgICAgICAgbWFya1JlcG9ydEFzU2VudFRvRGVzdGlu
YXRpb24oKnNvdXJjZVNpdGVEb21haW5JRCwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklELCBzb3Vy
Y2VBcHBsaWNhdGlvbkJ1bmRsZUlEKTsKICAgICAgICAgZGVzdGluYXRpb25FYXJsaWVzdFRpbWVU
b1NlbmQgPSBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC01NDgsMTcgKzU1MiwxOCBAQCB2b2lk
IERhdGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmIGF0dHJpYnV0aQogICAgIGlmIChkZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2Vu
ZCB8fCBzb3VyY2VFYXJsaWVzdFRpbWVUb1NlbmQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1
dG8gY2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50ID0gbV9kYXRhYmFzZS5wcmVwYXJlU3RhdGVtZW50
KCJERUxFVEUgRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291
cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQgPSA/Il9zKTsK
KyAgICBhdXRvIGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudCA9IG1fZGF0YWJhc2UucHJlcGFyZVN0
YXRlbWVudCgiREVMRVRFIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdI
RVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0g
PyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3MpOwogICAgIGlmICghY2xlYXJB
dHRyaWJ1dGVkU3RhdGVtZW50CiAgICAgICAgIHx8IGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudC0+
YmluZEludCgxLCAqc291cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwg
Y2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50LT5iaW5kSW50KDIsICpkZXN0aW5hdGlvblNpdGVEb21h
aW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudC0+
YmluZFRleHQoMywgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkgIT0gU1FMSVRFX09LCiAgICAg
ICAgIHx8IGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiJXAg
LSBEYXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRpb24gZmFpbGVkIHRvIHN0ZXAsIGVycm9yIG1l
c3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KIAotdm9pZCBE
YXRhYmFzZTo6bWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24oU291cmNlRG9tYWluSUQgc291
cmNlU2l0ZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFpbklEIGRlc3RpbmF0aW9uU2l0ZURvbWFp
bklEKQordm9pZCBEYXRhYmFzZTo6bWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24oU291cmNl
RG9tYWluSUQgc291cmNlU2l0ZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFpbklEIGRlc3RpbmF0
aW9uU2l0ZURvbWFpbklELCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIHNvdXJj
ZUFwcGxpY2F0aW9uQnVuZGxlSUQpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7
CiAgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV9tYXJr
UmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvblN0YXRlbWVudCwgbWFya1JlcG9ydEFzU2VudFRvRGVz
dGluYXRpb25RdWVyeSwgIm1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uIl9zKTsKQEAgLTU2
NiwxMyArNTcxLDE0IEBAIHZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0
aW9uKFNvdXJjZURvbWFpbklEIHNvdXJjZVNpdGVEb21haW5JRCwKICAgICBpZiAoIXNjb3BlZFN0
YXRlbWVudAogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgc291cmNlU2l0
ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5k
SW50KDIsIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwg
c2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgzLCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKSAh
PSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRF
X0RPTkUpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsICJEYXRhYmFzZTo6bWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24sIGVycm9yIG1lc3Nh
Z2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCi12b2lkIERhdGFiYXNlOjpt
YXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UoU291cmNlRG9tYWluSUQgc291cmNlU2l0ZURvbWFpbklE
LCBEZXN0aW5hdGlvbkRvbWFpbklEIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKQordm9pZCBEYXRh
YmFzZTo6bWFya1JlcG9ydEFzU2VudFRvU291cmNlKFNvdXJjZURvbWFpbklEIHNvdXJjZVNpdGVE
b21haW5JRCwgRGVzdGluYXRpb25Eb21haW5JRCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCwgY29u
c3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlE
KQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIGF1dG8gc2NvcGVkU3Rh
dGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fbWFya1JlcG9ydEFzU2VudFRvU291cmNl
U3RhdGVtZW50LCBtYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2VRdWVyeSwgIm1hcmtSZXBvcnRBc1Nl
bnRUb1NvdXJjZSJfcyk7CkBAIC01ODAsNiArNTg2LDcgQEAgdm9pZCBEYXRhYmFzZTo6bWFya1Jl
cG9ydEFzU2VudFRvU291cmNlKFNvdXJjZURvbWFpbklEIHNvdXJjZVNpdGVEb21haW5JRCwgRGVz
dGkKICAgICBpZiAoIXNjb3BlZFN0YXRlbWVudAogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQt
PmJpbmRJbnQoMSwgc291cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwg
c2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDIsIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBT
UUxJVEVfT0sKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgzLCBzb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2NvcGVkU3RhdGVt
ZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJEYXRhYmFzZTo6bWFya1JlcG9ydEFzU2VudFRvU291
cmNlLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgbV9kYXRhYmFzZS5sYXN0
RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNjAwLDYgKzYw
Nyw3IEBAIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPERhdGFiYXNlOjpTb3VyY2VFYXJsaWVzdFRp
bWVUb1NlbmQ+LCBzdGQ6Om9wdGlvbmFsPERhdGFiCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQK
ICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3VyY2VTaXRlRG9tYWlu
SUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwg
KmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc2NvcGVk
U3RhdGVtZW50LT5iaW5kVGV4dCgzLCBhdHRyaWJ1dGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlEKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAh
PSBTUUxJVEVfUk9XKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01l
YXN1cmVtZW50LCAiRGF0YWJhc2U6OmVhcmxpZXN0VGltZXNUb1NlbmQsIGVycm9yIG1lc3NhZ2U6
ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
RGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5oCmluZGV4IDBmYzc3NzU5
NTBmMTE5ZDkyYjRiNGVmZDQ4MGQ3YjQ1ZjI3NGI5YWUuLjg3NzFmNTRhZWRiMmQ0OGMyOTY2YzBh
ZTgwNTI4MmI2M2VmZDFkMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5oCkBAIC00MiwxMCArNDIsMTIg
QEAgcHVibGljOgogICAgIERhdGFiYXNlKGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeSk7
CiAgICAgdmlydHVhbCB+RGF0YWJhc2UoKTsKICAgICAKKyAgICB1c2luZyBBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIgPSBTdHJpbmc7CisKICAgICBzdGF0aWMgdm9pZCBpbnRlcnJ1cHRBbGxE
YXRhYmFzZXMoKTsKIAogICAgIHZvaWQgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
dHRyaWJ1dGlvblR5cGUpOwotICAgIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiwg
RGVidWdJbmZvPiBhdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYsIFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYpOwor
ICAgIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiwgRGVidWdJbmZvPiBhdHRyaWJ1
dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhJiYpOwogICAgIFZlY3RvcjxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudD4gYWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CiAgICAgdm9pZCBj
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4+KTsKICAgICB2b2lkIGNsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KCk7CkBAIC02NiwxMSArNjgsMTEgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgY3JlYXRlU2No
ZW1hKCkgZmluYWw7CiAgICAgdm9pZCBkZXN0cm95U3RhdGVtZW50cygpIGZpbmFsOwotICAgIHN0
ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
Piwgc3RkOjpvcHRpb25hbDxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+PiBmaW5k
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmKTsKKyAgICBzdGQ6OnBhaXI8c3RkOjpvcHRp
b25hbDxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4sIHN0ZDo6b3B0aW9uYWw8
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50Pj4gZmluZFByaXZhdGVDbGlja01lYXN1
cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRl
JiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVz
dGluYXRpb25TaXRlJiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJik7CiAgICAg
dm9pZCByZW1vdmVVbmF0dHJpYnV0ZWQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQm
KTsKICAgICBTdHJpbmcgYXR0cmlidXRpb25Ub1N0cmluZ0ZvclRlc3RpbmcoY29uc3QgV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKSBjb25zdDsKLSAgICB2b2lkIG1hcmtSZXBvcnRB
c1NlbnRUb0Rlc3RpbmF0aW9uKFNvdXJjZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFpbklEKTsK
LSAgICB2b2lkIG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZShTb3VyY2VEb21haW5JRCwgRGVzdGlu
YXRpb25Eb21haW5JRCk7CisgICAgdm9pZCBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbihT
b3VyY2VEb21haW5JRCwgRGVzdGluYXRpb25Eb21haW5JRCwgY29uc3QgQXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyJik7CisgICAgdm9pZCBtYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UoU291cmNl
RG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWluSUQsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciYpOwogICAgIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFNvdXJjZUVhcmxpZXN0VGlt
ZVRvU2VuZD4sIHN0ZDo6b3B0aW9uYWw8RGVzdGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmQ+PiBl
YXJsaWVzdFRpbWVzVG9TZW5kKGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
Jik7CiAgICAgc3RkOjpvcHRpb25hbDxEb21haW5JRD4gZW5zdXJlRG9tYWluSUQoY29uc3QgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mKTsKICAgICBzdGQ6Om9wdGlvbmFsPERvbWFpbklEPiBk
b21haW5JRChjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXIuY3BwCmluZGV4IGY0OTk4Mzk4ZThjMWIzYmQyMjhlY2FlNjQyNGU2YTU2MGI5NWE4YjkuLjVk
MDg1Y2I1ZWY5ZTBlNzE3MWZlYjE3ZjYwM2ViZmMwOWE1NWE5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAKQEAgLTc3LDYgKzc3LDkgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYKIAogICAgIGNs
ZWFyRXhwaXJlZCgpOwogCisgICAgaWYgKG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5k
bGVJREZvclRlc3RpbmcpCisgICAgICAgIG1lYXN1cmVtZW50LnNldFNvdXJjZUFwcGxpY2F0aW9u
QnVuZGxlSURGb3JUZXN0aW5nKCptX3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nKTsKKwogICAgIGlmIChtZWFzdXJlbWVudC5lcGhlbWVyYWxTb3VyY2VOb25jZSgp
KSB7CiAgICAgICAgIGF1dG8gbWVhc3VyZW1lbnRDb3B5ID0gbWVhc3VyZW1lbnQ7CiAgICAgICAg
IC8vIFRoaXMgaXMgZ3VhcmFudGVlZCB0byBiZSBjbG9zZSBpbiB0aW1lIHRvIHRoZSBuYXZpZ2F0
aW9uYWwgY2xpY2sgd2hpY2ggbWFrZXMgaXQgbGlrZWx5IHRvIGJlIHBlcnNvbmFsbHkgaWRlbnRp
ZmlhYmxlLgpAQCAtMjMwLDcgKzIzMyw3IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyOjptaWdyYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9tTGVnYWN5U3RvCiAgICAg
c3RvcmUoKS5pbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXVEZNb3ZlKG1lYXN1cmVtZW50
KSwgdHlwZSk7CiB9CiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5k
bGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IHJlZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwpCit2b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25Ucmln
Z2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5VVJMLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcikKIHsKICAgICBpZiAoIWZlYXR1cmVFbmFibGVkKCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTI0Nyw3ICsyNTAsNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcjo6aGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmCiAK
ICAgICBtX2NsaWVudC0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZUxldmVsOjpMb2cs
ICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gVHJpZ2dlcmluZyBldmVudCBhY2NlcHRlZC4i
X3MpOwogCi0gICAgYXR0cmlidXRlKFNvdXJjZVNpdGUgeyBXVEZNb3ZlKHJlZGlyZWN0RG9tYWlu
KSB9LCBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSB7IGZpcnN0UGFydHlVUkwgfSwgV1RGTW92
ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSk7CisgICAgYXR0cmlidXRlKFNvdXJjZVNpdGUgeyBX
VEZNb3ZlKHJlZGlyZWN0RG9tYWluKSB9LCBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSB7IGZp
cnN0UGFydHlVUkwgfSwgV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgbV9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA/ICptX3ByaXZhdGVDbGlja01l
YXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nIDogYXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyKTsKIH0KIAogdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0YXJ0VGlt
ZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKQpAQCAtMjU1LDEyICsyNTgsMjAgQEAgdm9pZCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3Rp
bmcoKQogICAgIHN0YXJ0VGltZXIoMF9zKTsKIH0KIAordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0
aW5nKEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYmIGFwcEJ1bmRsZUlEKQoreworICAgIGlm
IChhcHBCdW5kbGVJRC5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3RpbmcgPSBzdGQ6Om51bGxvcHQ7CisgICAgZWxzZQorICAgICAg
ICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nID0gV1RGTW92
ZShhcHBCdW5kbGVJRCk7Cit9CisKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpzdGFydFRpbWVyKFNlY29uZHMgc2Vjb25kcykKIHsKICAgICBtX2ZpcmVQZW5kaW5nQXR0cmli
dXRpb25SZXF1ZXN0c1RpbWVyLnN0YXJ0T25lU2hvdChtX2lzUnVubmluZ1Rlc3QgPyAwX3MgOiBz
ZWNvbmRzKTsKIH0KIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmF0dHJp
YnV0ZShjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBBdHRyaWJ1dGlvbkRlc3Rp
bmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0
cmlidXRpb25UcmlnZ2VyRGF0YSkKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjphdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgQXR0cmlidXRp
b25EZXN0aW5hdGlvblNpdGUmIGRlc3RpbmF0aW9uU2l0ZSwgQXR0cmlidXRpb25UcmlnZ2VyRGF0
YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogewogICAgIGlmICghZmVhdHVyZUVu
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjczLDcgKzI4NCw3IEBAIHZvaWQgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjphdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYgc291
cmNlU2l0ZSwgY29uCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBz
dG9yZSgpLmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUsIGRlc3Rp
bmF0aW9uU2l0ZSwgV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgc3RkOjpleGNoYW5n
ZShtX2VwaGVtZXJhbE1lYXN1cmVtZW50LCBzdGQ6Om51bGxvcHQpLCBbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyldIChhdXRvIGF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERh
dGEsIGF1dG8gZGVidWdJbmZvKSB7CisgICAgc3RvcmUoKS5hdHRyaWJ1dGVQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChzb3VyY2VTaXRlLCBkZXN0aW5hdGlvblNpdGUsIGFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciwgV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgc3RkOjpleGNoYW5n
ZShtX2VwaGVtZXJhbE1lYXN1cmVtZW50LCBzdGQ6Om51bGxvcHQpLCBbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyldIChhdXRvIGF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERh
dGEsIGF1dG8gZGVidWdJbmZvKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIApAQCAtNDM2LDYgKzQ0Nyw3IEBAIHZvaWQgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvCiAgICAgbV9maXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVxdWVzdHNUaW1lci5zdG9wKCk7
CiAgICAgbV9lcGhlbWVyYWxNZWFzdXJlbWVudCA9IHN0ZDo6bnVsbG9wdDsKICAgICBtX2lzUnVu
bmluZ0VwaGVtZXJhbE1lYXN1cmVtZW50VGVzdCA9IGZhbHNlOworICAgIG1fcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcgPSBzdGQ6Om51bGxvcHQ7CiAKICAgICBp
ZiAoIWZlYXR1cmVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyLmgKaW5kZXggYmM1YmM5ZTc0YWMwODMxYWQ3Y2I5MDE3NmJhMTA5NTYw
Y2IxOTliYy4uNjcxZDM5MDFiYTY1ODk3MDQ3MDAzOWY5NDU0ZWVlMTU5YzA1MmZlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5oCkBAIC00NSw4ICs0NSwxMCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyKFVuaXF1ZVJlZjxQQ006OkNsaWVudD4mJiwgY29u
c3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KTsKICAgICB+UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyKCk7CiAKKyAgICB1c2luZyBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgPSBT
dHJpbmc7CisKICAgICB2b2lkIHN0b3JlVW5hdHRyaWJ1dGVkKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50JiYpIGZpbmFsOwotICAgIHZvaWQgaGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25Ucmln
Z2VyRGF0YSYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCkgZmluYWw7Cisg
ICAgdm9pZCBoYW5kbGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0
IFVSTCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERv
bWFpbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXImKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJikgZmluYWw7CiAgICAgdm9pZCBjbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIG1pZ3JhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdhY3lTdG9yYWdlKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25UeXBlKSBmaW5hbDsKQEAgLTYxLDYgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RXBo
ZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0aW5nKGJvb2wgdmFsdWUpIGZpbmFsIHsgbV9pc1J1bm5p
bmdFcGhlbWVyYWxNZWFzdXJlbWVudFRlc3QgPSB2YWx1ZTsgfQogICAgIHZvaWQgc2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4sIFN0
cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlEKSBm
aW5hbDsKICAgICB2b2lkIHN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKSBmaW5hbDsK
KyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5n
KEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYmKTsKICAgICB2b2lkIGRlc3Ryb3lTdG9yZUZv
clRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIGFs
bG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mKSBmaW5hbDsKIApAQCAtNzIsNyArNzUsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZ2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYp
OwogICAgIHZvaWQgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpOwogICAg
IHZvaWQgY2xlYXJTZW50QXR0cmlidXRpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQpOwotICAgIHZv
aWQgYXR0cmlidXRlKGNvbnN0IFNvdXJjZVNpdGUmLCBjb25zdCBBdHRyaWJ1dGlvbkRlc3RpbmF0
aW9uU2l0ZSYsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CisgICAgdm9pZCBhdHRyaWJ1dGUo
Y29uc3QgU291cmNlU2l0ZSYsIGNvbnN0IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgQXR0
cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIm
KTsKICAgICB2b2lkIGZpcmVDb252ZXJzaW9uUmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBv
aW50KTsKICAgICB2b2lkIGZpcmVDb252ZXJzaW9uUmVxdWVzdEltcGwoY29uc3QgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25SZXBv
cnRFbmRwb2ludCk7CiAgICAgdm9pZCBmaXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVxdWVzdHMoKTsK
QEAgLTg2LDYgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNSdW5uaW5nRXBoZW1lcmFs
TWVhc3VyZW1lbnRUZXN0IHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFVSTD4gbV90b2tl
blB1YmxpY0tleVVSTEZvclRlc3Rpbmc7CiAgICAgc3RkOjpvcHRpb25hbDxVUkw+IG1fdG9rZW5T
aWduYXR1cmVVUkxGb3JUZXN0aW5nOworICAgIHN0ZDo6b3B0aW9uYWw8QXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyPiBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0
aW5nOwogICAgIG11dGFibGUgUmVmUHRyPFBDTTo6U3RvcmU+IG1fc3RvcmU7CiAgICAgU3RyaW5n
IG1fc3RvcmFnZURpcmVjdG9yeTsKICAgICBVbmlxdWVSZWY8UENNOjpDbGllbnQ+IG1fY2xpZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCmluZGV4IDY3YTQ2OTMxM2Nj
ODJjYmZmYTQ2NDFiMDg0YWVkOWFhNzAyMjcyYzUuLjM5Y2M2NDg4NmY5YjRmOTQ2MmUwMGNiNTBl
NTUyZWM4YmU3NTc0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50
ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAK
QEAgLTUxLDcgKzUxLDcgQEAgQVJHVU1FTlRTKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50KQogRU5ECiAKIEZVTkNUSU9OKGhhbmRsZUF0dHJpYnV0aW9uKQotQVJHVU1FTlRTKFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgVVJMLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgVVJMKQorQVJHVU1FTlRTKFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlcjo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgVVJMLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiwgVVJMLCBTdHJpbmcpCiBFTkQKIAogRlVOQ1RJT04oY2xlYXIpCkBA
IC0xMTAsNiArMTEwLDEwIEBAIEZVTkNUSU9OKHN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3Rp
bmcpCiBBUkdVTUVOVFMoKQogRU5ECiAKK0ZVTkNUSU9OKHNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKQorQVJHVU1FTlRTKFN0cmluZykKK0VORAorCiBGVU5D
VElPTihkZXN0cm95U3RvcmVGb3JUZXN0aW5nKQogQVJHVU1FTlRTKCkKIFJFUExZKCkKQEAgLTE1
NCw2ICsxNTgsNyBAQCBib29sIG1lc3NhZ2VUeXBlU2VuZHNSZXBseShNZXNzYWdlVHlwZSBtZXNz
YWdlVHlwZSkKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZv
clRlc3Rpbmc6CiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6U2V0UENNRnJhdWRQcmV2ZW50aW9uVmFs
dWVzRm9yVGVzdGluZzoKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTdGFydFRpbWVySW1tZWRpYXRl
bHlGb3JUZXN0aW5nOgorICAgIGNhc2UgTWVzc2FnZVR5cGU6OlNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OkFsbG93
VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZzoKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGNhc2UgTWVzc2FnZVR5cGU6Ok1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZzoKQEAgLTI2NCw2ICsyNjksOSBAQCB2b2lkIGRl
Y29kZU1lc3NhZ2VBbmRTZW5kVG9NYW5hZ2VyKE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCBWZWN0
b3I8dWludDhfdD4mJiBlbgogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6U3RhcnRUaW1lcklt
bWVkaWF0ZWx5Rm9yVGVzdGluZzoKICAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5m
bzo6c3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVkTWVzc2Fn
ZSkpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOgorICAgICAgICBoYW5kbGVQ
Q01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVkTWVzc2FnZSkpOworICAgICAgICBicmVhazsK
ICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc6CiAgICAg
ICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmRlc3Ryb3lTdG9yZUZv
clRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7
CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJ
bnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKaW5kZXgg
NWNmNGUzZGUyMWQwY2MzOTljMjNhZDA5MDdhMzNkOGVlZjA3YjVhNS4uYTRhOTc0NDg5NzExYWI0
OGEyMjNmZmM0MmQ4MjA0ZjI2MTkzNzM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXJJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVy
ZmFjZS5oCkBAIC01MCw5ICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgPSBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKICAgICB1c2lu
ZyBSZWdpc3RyYWJsZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVz
aW5nIFNvdXJjZVNpdGUgPSBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNl
U2l0ZTsKKyAgICB1c2luZyBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgPSBTdHJpbmc7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc3RvcmVVbmF0dHJpYnV0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQmJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEmJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IHJlZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwsIGNvbnN0IEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyRm9yUmVn
aXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbWlncmF0ZVByaXZhdGVDbGlja01l
YXN1cmVtZW50RnJvbUxlZ2FjeVN0b3JhZ2UoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpID0gMDsKQEAgLTY3LDYgKzY4LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRl
c3RpbmcoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25W
YWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYmIHVubGlua2FibGVUb2tlbiwgU3RyaW5nJiYgc2VjcmV0
VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5nJiYga2V5SUQpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmco
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVz
dHJveVN0b3JlRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpID0gMDsKIH07CkBAIC05MSw2ICs5Myw3
IEBAIGVudW0gY2xhc3MgTWVzc2FnZVR5cGUgOiB1aW50OF90IHsKICAgICBTZXRFcGhlbWVyYWxN
ZWFzdXJlbWVudEZvclRlc3RpbmcsCiAgICAgU2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9y
VGVzdGluZywKICAgICBTdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nLAorICAgIFNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nLAogICAgIERlc3Ryb3lT
dG9yZUZvclRlc3RpbmcsCiAgICAgQWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01U
ZXN0aW5nCiB9OwpAQCAtMTI3LDYgKzEzMCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlPiB7CiAgICAgICAgIFdlYktpdDo6UENNOjpNZXNz
YWdlVHlwZTo6U2V0RXBoZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0aW5nLAogICAgICAgICBXZWJL
aXQ6OlBDTTo6TWVzc2FnZVR5cGU6OlNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rp
bmcsCiAgICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6U3RhcnRUaW1lckltbWVkaWF0
ZWx5Rm9yVGVzdGluZywKKyAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZywKICAgICAgICAgV2ViS2l0
OjpQQ006Ok1lc3NhZ2VUeXBlOjpEZXN0cm95U3RvcmVGb3JUZXN0aW5nLAogICAgICAgICBXZWJL
aXQ6OlBDTTo6TWVzc2FnZVR5cGU6OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENN
VGVzdGluZwogICAgID47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDk3ZWY2
ZWU2NzJkNGI4ZGE2MDUzYmNjNzQyMzM4NWNmMGQ3OGJlMWIuLmJkYTg1YzQ5NmI2MGIxZWI2MjBl
ZWI3MTQ1YWM4MTAzZGY0ZGVjYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCkBA
IC04MCw5ICs4MCw5IEBAIHZvaWQgTWFuYWdlclByb3h5OjpzdG9yZVVuYXR0cmlidXRlZChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIHBjbSkKICAgICBzZW5kTWVzc2FnZTxNZXNz
YWdlVHlwZTo6U3RvcmVVbmF0dHJpYnV0ZWQ+KHBjbSk7CiB9CiAKLXZvaWQgTWFuYWdlclByb3h5
OjpoYW5kbGVBdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRpb25UcmlnZ2VyRGF0YSYmIHRyaWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkws
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eVVSTCkKK3ZvaWQgTWFuYWdlclByb3h5OjpoYW5kbGVBdHRyaWJ1dGlvbihXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIHRy
aWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwgY29uc3QgQXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCiB7
Ci0gICAgc2VuZE1lc3NhZ2U8TWVzc2FnZVR5cGU6OkhhbmRsZUF0dHJpYnV0aW9uPih0cmlnZ2Vy
RGF0YSwgcmVxdWVzdFVSTCwgcmVkaXJlY3REb21haW4sIGZpcnN0UGFydHlVUkwpOworICAgIHNl
bmRNZXNzYWdlPE1lc3NhZ2VUeXBlOjpIYW5kbGVBdHRyaWJ1dGlvbj4odHJpZ2dlckRhdGEsIHJl
cXVlc3RVUkwsIHJlZGlyZWN0RG9tYWluLCBmaXJzdFBhcnR5VVJMLCBhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIpOwogfQogCiB2b2lkIE1hbmFnZXJQcm94eTo6Y2xlYXIoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTUwLDYgKzE1MCwxMSBAQCB2
b2lkIE1hbmFnZXJQcm94eTo6c3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpCiAgICAg
c2VuZE1lc3NhZ2U8TWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3Rpbmc+
KCk7CiB9CiAKK3ZvaWQgTWFuYWdlclByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFw
cEJ1bmRsZUlERm9yVGVzdGluZyhBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImJiBhcHBCdW5k
bGVJRCkKK3sKKyAgICBzZW5kTWVzc2FnZTxNZXNzYWdlVHlwZTo6U2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc+KGFwcEJ1bmRsZUlEKTsKK30KKwogdm9pZCBN
YW5hZ2VyUHJveHk6OmRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHNlbmRNZXNzYWdlV2l0aFJlcGx5PE1l
c3NhZ2VUeXBlOjpEZXN0cm95U3RvcmVGb3JUZXN0aW5nPihXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgKaW5kZXggN2MwYWYwZjYzOTBkMzZjZGMx
ZmE2YjYxMDRjMzg0YjYzNjc1ZTUxMC4uMzRiMzQ3MGFhZWJjY2M5YzZmODc0NGQyM2I0ZjEwYTAx
MWM4YWMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaApAQCAtMzksOCArMzksMTAgQEAg
Y2xhc3MgTWFuYWdlclByb3h5IDogcHVibGljIE1hbmFnZXJJbnRlcmZhY2UgewogcHVibGljOgog
ICAgIE1hbmFnZXJQcm94eShjb25zdCBTdHJpbmcmIG1hY2hTZXJ2aWNlTmFtZSk7CiAKKyAgICB1
c2luZyBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgPSBTdHJpbmc7CisKICAgICB2b2lkIHN0
b3JlVW5hdHRyaWJ1dGVkKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpIGZpbmFs
OwotICAgIHZvaWQgaGFuZGxlQXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJlZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZp
cnN0UGFydHlVUkwpIGZpbmFsOworICAgIHZvaWQgaGFuZGxlQXR0cmlidXRpb24oV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3Qg
VVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJlZGlyZWN0RG9t
YWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZp
bmFsOwogICAgIHZvaWQgbWlncmF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50RnJvbUxlZ2FjeVN0
b3JhZ2UoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpIGZpbmFsOwpAQCAtNTUsNiArNTcsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3RpbmcoYm9vbCkgZmluYWw7
CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYm
IHVubGlua2FibGVUb2tlbiwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVy
ZSwgU3RyaW5nJiYga2V5SUQpIGZpbmFsOwogICAgIHZvaWQgc3RhcnRUaW1lckltbWVkaWF0ZWx5
Rm9yVGVzdGluZygpIGZpbmFsOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
cHBCdW5kbGVJREZvclRlc3RpbmcoQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiYpIGZpbmFs
OwogICAgIHZvaWQgZGVzdHJveVN0b3JlRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpIGZpbmFsOwogICAgIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQ
Q01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpIGZpbmFsOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFN0b3JlLmNwcAppbmRleCBkODkyOTU1OTc2ZjkxZWEzZGUwOWYyZTE4NDJjMjZkNjdhNzdjZDY1
Li5mOTA3YWZlOWEwZDAzZjczYTcxODY2ODkwYWUwMzI0MDlmMTgwZDBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9y
ZS5jcHAKQEAgLTk1LDkgKzk1LDkgQEAgdm9pZCBTdG9yZTo6bWFya0FsbFVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZygpCiAgICAgfSk7CiB9CiAK
LXZvaWQgU3RvcmU6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25z
dCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlv
blNpdGUmIGRlc3RpbmF0aW9uU2l0ZSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIGVwaGVtZXJhbE1lYXN1
cmVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+JiYs
IERlYnVnSW5mbyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgU3RvcmU6OmF0dHJpYnV0
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmIGRlc3RpbmF0aW9uU2l0
ZSwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiBlcGhlbWVyYWxNZWFzdXJlbWVudCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiYmLCBEZWJ1Z0luZm8mJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9LCBzb3VyY2VTaXRlID0gc291cmNlU2l0ZS5pc29sYXRlZENvcHko
KSwgZGVzdGluYXRpb25TaXRlID0gZGVzdGluYXRpb25TaXRlLmlzb2xhdGVkQ29weSgpLCBhdHRy
aWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgZXBo
ZW1lcmFsTWVhc3VyZW1lbnQgPSBjcm9zc1RocmVhZENvcHkoZXBoZW1lcmFsTWVhc3VyZW1lbnQp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRh
YmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0s
IHNvdXJjZVNpdGUgPSBzb3VyY2VTaXRlLmlzb2xhdGVkQ29weSgpLCBkZXN0aW5hdGlvblNpdGUg
PSBkZXN0aW5hdGlvblNpdGUuaXNvbGF0ZWRDb3B5KCksIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllciA9IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllci5pc29sYXRlZENvcHkoKSwgYXR0cmli
dXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIGVwaGVt
ZXJhbE1lYXN1cmVtZW50ID0gY3Jvc3NUaHJlYWRDb3B5KGVwaGVtZXJhbE1lYXN1cmVtZW50KSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZSkgewogICAgICAgICAgICAgcmV0dXJuIHBvc3RU
YXNrUmVwbHkoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
ICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVs
bG9wdCwgeyB9KTsKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIFN0b3JlOjphdHRyaWJ1dGVQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbQog
ICAgICAgICAgICAgbV9kYXRhYmFzZS0+aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RG
TW92ZSgqZXBoZW1lcmFsTWVhc3VyZW1lbnQpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uVHlwZTo6VW5hdHRyaWJ1dGVkKTsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gW3Nl
Y29uZHMsIGRlYnVnSW5mb10gPSBtX2RhdGFiYXNlLT5hdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChzb3VyY2VTaXRlLCBkZXN0aW5hdGlvblNpdGUsIFdURk1vdmUoYXR0cmlidXRpb25U
cmlnZ2VyRGF0YSkpOworICAgICAgICBhdXRvIFtzZWNvbmRzLCBkZWJ1Z0luZm9dID0gbV9kYXRh
YmFzZS0+YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGlu
YXRpb25TaXRlLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIsIFdURk1vdmUoYXR0cmlidXRp
b25UcmlnZ2VyRGF0YSkpOwogCiAgICAgICAgIHBvc3RUYXNrUmVwbHkoW3NlY29uZHMgPSBXVEZN
b3ZlKHNlY29uZHMpLCBkZWJ1Z0luZm8gPSBkZWJ1Z0luZm8uaXNvbGF0ZWRDb3B5KCksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNlY29uZHMpLCBXVEZNb3ZlKGRl
YnVnSW5mbykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50U3RvcmUuaAppbmRleCA4MzEzNTZkY2M2YzczOTE5NzZiZWQwYTg4ZGMy
M2RjYmJjNWMxMjIxLi44NGI3MTY2MmQ3YTFhMWY3OGIyM2M1MDVlNmMwNzQzYmMxZmRjZjk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50U3RvcmUuaApAQCAtNDcsMTEgKzQ3LDEzIEBAIHB1YmxpYzoKIAogICAgIH5TdG9yZSgp
OwogCisgICAgdXNpbmcgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gU3RyaW5nOworCiAg
ICAgc3RhdGljIHZvaWQgcHJlcGFyZUZvclByb2Nlc3NUb1N1c3BlbmQoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICBzdGF0aWMgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKCk7CiAKICAg
ICB2b2lkIGluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50JiYsIFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlv
blR5cGUpOwotICAgIHZvaWQgYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3Qg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUm
LCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0
YSYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIGVw
aGVtZXJhbE1lYXN1cmVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGls
U2VuZERhdGE+JiYsIERlYnVnSW5mbyYmKT4mJik7CisgICAgdm9pZCBhdHRyaWJ1dGVQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRy
aWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
ciYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhJiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYg
ZXBoZW1lcmFsTWVhc3VyZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50
aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZvJiYpPiYmKTsKIAogICAgIHZvaWQgcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb1N0cmluZ0ZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJp
bmcpPiYmKSBjb25zdDsKICAgICB2b2lkIG1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCmluZGV4IDAyNDlkZmUwMWY0NDBlMDg5NTUzZGY0YWM3OTk2M2ViYjY5
MjY0YmIuLmFiMjI5MWUzNDFiNTMwOGI4ZTU1ZTQ1ZGFkOWFmYjllNDRjOTY2NDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMzEzOCw2ICszMTM4LDE0IEBA
IHZvaWQgV0tQYWdlU2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhXS1BhZ2VS
ZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYKICAgICB9KTsKIH0KIAordm9pZCBXS1BhZ2VTZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZVJl
ZiwgV0tTdHJpbmdSZWYgYXBwQnVuZGxlSURGb3JUZXN0aW5nLCBXS1BhZ2VTZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lk
KiBjYWxsYmFja0NvbnRleHQpCit7CisgICAgQ1JBU0hfSUZfU1VTUEVOREVEOworICAgIHRvSW1w
bChwYWdlUmVmKS0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rp
bmcodG9XVEZTdHJpbmcoYXBwQnVuZGxlSURGb3JUZXN0aW5nKSwgW2NhbGxiYWNrQ29udGV4dCwg
Y2FsbGJhY2tdICgpIHsKKyAgICAgICAgY2FsbGJhY2soY2FsbGJhY2tDb250ZXh0KTsKKyAgICB9
KTsKK30KKwogdm9pZCBXS1BhZ2VTZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24oV0tQYWdlUmVmIHBh
Z2VSZWYsIHVpbnQ2NF90IG9yaWVudGF0aW9uKQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAppbmRleCA3
ZjI0Mzg5NjA1OGVmMDhhN2JmODFmNWNlNWFjYWQ1ODEzZmJlZGVmLi43NTM4ZWMwMjZjZDlkYTgy
OGVlNjgzMDRmMGFlY2I5Mjg0YWRhYTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlUHJpdmF0ZS5oCkBAIC0xOTIsNiArMTkyLDggQEAgdHlwZWRlZiB2b2lkICgq
V0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdGdW5j
dGlvbikodm8KIFdLX0VYUE9SVCB2b2lkIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VNYXJrUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lk
KiBjYWxsYmFja0NvbnRleHQpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0UENNRnJhdWRQcmV2
ZW50aW9uVmFsdWVzRm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwog
V0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGlu
ZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc2VjcmV0VG9rZW4sIFdLU3RyaW5nUmVmIHVu
bGlua2FibGVUb2tlbiwgV0tTdHJpbmdSZWYgc2lnbmF0dXJlLCBXS1N0cmluZ1JlZiBrZXlJRCwg
V0tQYWdlU2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxi
YWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwordHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmdGdW5jdGlvbikodm9pZCog
ZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmlu
Z1JlZiBhcHBCdW5kbGVJREZvclRlc3RpbmcsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNr
Q29udGV4dCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldE1vY2tDYW1lcmFPcmllbnRhdGlv
bihXS1BhZ2VSZWYgcGFnZSwgdWludDY0X3Qgb3JpZW50YXRpb24pOwogV0tfRVhQT1JUIGJvb2wg
V0tQYWdlSXNNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoV0tQYWdlUmVmIHBh
Z2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGVGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAppbmRleCAyMDQ3MjZhMGU4N2RiMTM3ZGRi
MDQ3YTVlYjUyZmQzZDYyNzkxODBiLi5lM2VkMmE0ZWM1NGM4YWIyZDdjMDJiODYxNjhjN2JlMjcx
YjJkZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaApAQCAtMTAzLDYgKzEwMyw3IEBA
IHN0cnVjdCBXS0FwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSB7CiAtICh2b2lkKV9zZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc6KE5TVVJM
ICopc291cmNlVVJMIGRlc3RpbmF0aW9uVVJMOihOU1VSTCAqKWRlc3RpbmF0aW9uVVJMIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAtICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEF0dHJpYnV0aW9uVG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nOihOU1VSTCAq
KXVybCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAodm9pZClfc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGlu
ZzooTlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZv
aWQpX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOihOU1N0
cmluZyAqKWFwcEJ1bmRsZUlEIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAtICh2b2lkKV9kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6KHZvaWQoXiko
TlNTdHJpbmcgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfbGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQ6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCmlu
ZGV4IDY4YzQ0MTE0OWVhNDZhNDRkMTI4ODgyZDdmZWEyYTg4NDk1MmViYzQuLmNiNDIzNDZhY2Vm
NDUxMWE0ZTRlOTIxYTg2MTUzZTc0OWMyMmQzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCkBAIC0zNTQsNiArMzU0
LDEzIEBACiAgICAgfSk7CiB9CiAKKy0gKHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXBwQnVuZGxlSURGb3JUZXN0aW5nOihOU1N0cmluZyAqKWFwcEJ1bmRsZUlEIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3BhZ2UtPnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKGFwcEJ1bmRsZUlE
LCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIC0gKHZvaWQpX2R1
bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDoodm9pZCheKShOU1N0cmluZyAqKSljb21wbGV0aW9u
SGFuZGxlcgogewogICAgIF9wYWdlLT5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoW2NvbXBs
ZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oY29uc3QgU3Ry
aW5nJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggYjdlYzJlY2U1MmM3ZTY0OThmMDk1OGM2YTJiMmNkMmJkNDdl
MWRkYy4uOTM4MzRiNzhlMTI3Y2QwZDQyYmI2ZjIwNWMyMTk3NWEwY2UyMmJjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDUxMyw2ICsxMDUxMywxMSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGlu
Zyhjb25zdCBTdHJpbmcmIHVubGlua2FibAogICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3Jr
UHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNl
dFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcobV93ZWJzaXRlRGF0YVN0b3JlLT5z
ZXNzaW9uSUQoKSwgdW5saW5rYWJsZVRva2VuLCBzZWNyZXRUb2tlbiwgc2lnbmF0dXJlLCBrZXlJ
RCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6
OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKGNvbnN0IFN0
cmluZyYgYXBwQnVuZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9j
ZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcobV93ZWJzaXRlRGF0YVN0
b3JlLT5zZXNzaW9uSUQoKSwgYXBwQnVuZGxlSURGb3JUZXN0aW5nKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworfQorCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAKIHZvaWQg
V2ViUGFnZVByb3h5OjpyZXNldFNwZWVjaFN5bnRoZXNpemVyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZjJkZmIwNTEwODZkYmYwOGI1N2Y5YzU5OTEzN2M2YWJi
MWFlMjg1YS4uM2ZiZmFlNGYyZWMzYWI1ZDY0MTU2MTkwOWUxY2U1NGY3Njk5NGNkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE3NzIsNiArMTc3Miw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBv
cnRVUkxzRm9yVGVzdGluZyhjb25zdCBVUkwmIHNvdXJjZVVSTCwgY29uc3QgVVJMJiBkZXN0aW5h
dGlvblVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG1hcmtQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0
aW5nKGNvbnN0IFN0cmluZyYgdW5saW5rYWJsZVRva2VuLCBjb25zdCBTdHJpbmcmIHNlY3JldFRv
a2VuLCBjb25zdCBTdHJpbmcmIHNpZ25hdHVyZSwgY29uc3QgU3RyaW5nJiBrZXlJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgYXBwQnVuZGxlSURGb3JUZXN0
aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAjaWYgRU5BQkxFKFNQRUVDSF9T
WU5USEVTSVMpCiAgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChWZWN0b3I8V2ViU3BlZWNoU3ludGhlc2lzVm9pY2U+JiYpPiYmKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0MDQ3OTliMTQ2
YzY0OTM5M2QxNGYxNWVhYzFiNWY1ZGVkYzQzZWMwLi43NTUyYmM4ZTFmNTI1NjZiZDBmMjk3ZmFk
NWNkNTg3NDZmNDYwNGEyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjEtMDktMjkgIEpvaG4gV2lsYW5kZXIgIDx3
aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBUYWtlIGFwcCBidW5kbGUgSUQgaW50
byBjb25zaWRlcmF0aW9uIHdoZW4gbWF0Y2hpbmcgdHJpZ2dlcmluZyBldmVudHMgd2l0aCBwZW5k
aW5nIGNsaWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMwNzc4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzUxNjUyOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53
ZWJraXQub3JnL3IyODI4ODQgYWRkZWQgYXBwIGJ1bmRsZSBJRHMgdG8gdW5hdHRyaWJ1dGVkCisg
ICAgICAgIGFuZCBhdHRyaWJ1dGVkIGNsaWNrcyBpbiBQQ00uIFRoaXMgcGF0Y2ggbWFrZXMgc3Vy
ZSB3ZSB0YWtlIHRob3NlIElEcworICAgICAgICBpbnRvIGNvbnNpZGVyYXRpb24gaW4gUENNOjpE
YXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS4KKworICAgICAgICBU
aGUgVGVzdFJ1bm5lciBjaGFuZ2VzIGFyZSBhbGwgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBlbmFi
bGUgZGlmZmVyZW50CisgICAgICAgIGFwcCBidW5kbGUgSURzIGluIHRoZSBleWVzIG9mIFBDTS4g
VGhlIEFQSSB0ZXN0IGNoYW5nZXMgYXJlIHRvIG1ha2UgdXNlCisgICAgICAgIG9mIHRoZSBhcHAg
YnVuZGxlIElEIHRlc3QgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpydW5CYXNpY0V2ZW50QXR0cmlidXRpb25UZXN0KToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rp
bmcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRC
dW5kbGUpOgorCiAyMDIxLTA5LTI5ICBCYXN1a2UgU3V6dWtpICA8YmFzdWtlLnN1enVraUBzb255
LmNvbT4KIAogICAgICAgICBbd2Via2l0cHldIExPR19DSEFOTkVMIGlzIHdpZGVseSB1c2VkIGlu
IHRoZSBjb2RlYmFzZSBhbmQgc2hvdWxkbid0IGJlIHRyZWF0ZWQgYXMgZXJyb3IKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlv
bi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1
dGlvbi5tbQppbmRleCA0MzAxOTEyOWE5ZDQzMjc0NWYxZjU5ZGIxNmVlOGVmNDY1NjE2OWYzLi4y
OTVhMDBmNGRjYTBmNWU3MjNiYjk5ZTRmNDM2ODE5MTViMzczNjE3IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9u
Lm1tCkBAIC0xNTMsOCArMTUzLDEwIEBAIHZvaWQgcnVuQmFzaWNFdmVudEF0dHJpYnV0aW9uVGVz
dChXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uLCBGdW5jdGlvCiAgICAgW1t3
ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLndlYnNpdGVEYXRhU3RvcmUgX3RydXN0U2VydmVyRm9yTG9j
YWxQQ01UZXN0aW5nOnNlY1RydXN0RnJvbUNlcnRpZmljYXRlQ2hhaW4oQFsoaWQpdGVzdENlcnRp
ZmljYXRlKCkuZ2V0KCldKS5nZXQoKV07CiAgICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZzpzZXJ2ZXJVUkwgZGVzdGlu
YXRpb25VUkw6ZXhhbXBsZVVSTCgpIGNvbXBsZXRpb25IYW5kbGVyOl57CiAgICAgICAgIFt3ZWJW
aWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nOllF
UyBjb21wbGV0aW9uSGFuZGxlcjpeewotICAgICAgICAgICAgTlNTdHJpbmcgKmh0bWwgPSBbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjxzY3JpcHQ+ZmV0Y2goJyVAY29udmVyc2lvblJlcXVl
c3RCZWZvcmVSZWRpcmVjdCcse21vZGU6J25vLWNvcnMnfSk8L3NjcmlwdD4iLCBzZXJ2ZXJVUkxd
OwotICAgICAgICAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOmV4YW1w
bGVVUkwoKV07CisgICAgICAgICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3Rpbmc6QCJ0ZXN0LmJ1bmRsZS5pZCIgY29tcGxldGlvbkhhbmRs
ZXI6XnsKKyAgICAgICAgICAgICAgICBOU1N0cmluZyAqaHRtbCA9IFtOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OkAiPHNjcmlwdD5mZXRjaCgnJUBjb252ZXJzaW9uUmVxdWVzdEJlZm9yZVJlZGly
ZWN0Jyx7bW9kZTonbm8tY29ycyd9KTwvc2NyaXB0PiIsIHNlcnZlclVSTF07CisgICAgICAgICAg
ICAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOmV4YW1wbGVVUkwoKV07
CisgICAgICAgICAgICB9XTsKICAgICAgICAgfV07CiAgICAgfV07CiAgICAgVXRpbDo6cnVuKCZk
b25lKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439695</attachid>
            <date>2021-09-29 20:38:38 -0700</date>
            <delta_ts>2021-09-29 20:43:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230778-20210929203837.patch</filename>
            <type>text/plain</type>
            <size>61345</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4MzI4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA5LTI5ICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogVGFrZSBhcHAgYnVu
ZGxlIElEIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIG1hdGNoaW5nIHRyaWdnZXJpbmcgZXZlbnRz
IHdpdGggcGVuZGluZyBjbGlja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMDc3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBodHRwczov
L2NvbW1pdHMud2Via2l0Lm9yZy9yMjgyODg0IGFkZGVkIGFwcCBidW5kbGUgSURzIHRvIHVuYXR0
cmlidXRlZAorICAgICAgICBhbmQgYXR0cmlidXRlZCBjbGlja3MgaW4gUENNLiBUaGlzIHBhdGNo
IG1ha2VzIHN1cmUgd2UgdGFrZSB0aG9zZSBJRHMKKyAgICAgICAgaW50byBjb25zaWRlcmF0aW9u
IGluIFBDTTo6RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuCisK
KyAgICAgICAgVGhlIFdlYkNvcmUgcGFydCBtYWtlcyBzdXJlIHRoYXQgYSB0ZW1wb3JhcnkgYXBw
IGJ1bmRsZSBJRCBjYW4gYmUgc2V0CisgICAgICAgIG9uIGF0dHJpYnV0aW9ucyB0aGF0IGdldCBz
dG9yZWQgaW4gUENNJ3MgZGF0YWJhc2UuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sCisKKyAgICAg
ICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSURG
b3JUZXN0aW5nKToKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaDoK
KwogMjAyMS0wOS0yOSAgS2lldCBIbyAgPHRobzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBs
ZW1lbnQgdGhlICdpYycgdW5pdCBmcm9tIENTUyBWYWx1ZXMgNApJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCShyZXZpc2lvbiAy
ODMyODApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsNiArMTQ0LDExIEBAIGJvb2wgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6Omhhc1ByZXZpb3UKICAgICByZXR1cm4gIW1fdGltZXNUb1NlbmQuc291cmNl
RWFybGllc3RUaW1lVG9TZW5kIHx8ICFtX3RpbWVzVG9TZW5kLmRlc3RpbmF0aW9uRWFybGllc3RU
aW1lVG9TZW5kOwogfQogCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpzZXRTb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlERm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIGFwcEJ1bmRsZUlERm9y
VGVzdGluZykKK3sKKyAgICBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSBhcHBCdW5kbGVJ
REZvclRlc3Rpbmc7Cit9CisKIHN0YXRpYyBTZWNvbmRzIHJhbmRvbWx5QmV0d2VlblR3ZW50eUZv
dXJBbmRGb3J0eUVpZ2h0SG91cnMoKQogewogICAgIHJldHVybiAyNF9oICsgU2Vjb25kcyhyYW5k
b21OdW1iZXIoKSAqICgyNF9oKS52YWx1ZSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCShyZXZpc2lvbiAyODMyODApCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzQxLDYgKzM0MSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFs
PEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+JiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhOyB9CiAgICAgdm9pZCBzZXRBdHRyaWJ1
dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkgeyBt
X2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEp
OyB9CiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEOyB9CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlERm9yVGVzdGluZyhjb25zdCBTdHJp
bmcmKTsKIAogICAgIGNvbnN0IFN0cmluZyYgc291cmNlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJl
dHVybiBtX3NvdXJjZURlc2NyaXB0aW9uOyB9CiAgICAgY29uc3QgU3RyaW5nJiBwdXJjaGFzZXIo
KSBjb25zdCB7IHJldHVybiBtX3B1cmNoYXNlcjsgfQpJbmRleDogU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4
MzI4MCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsODIgQEAKKzIwMjEtMDktMjkgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUENNOiBUYWtlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uIHdo
ZW4gbWF0Y2hpbmcgdHJpZ2dlcmluZyBldmVudHMgd2l0aCBwZW5kaW5nIGNsaWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzc4CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84MzUxNjUyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyODI4ODQg
YWRkZWQgYXBwIGJ1bmRsZSBJRHMgdG8gdW5hdHRyaWJ1dGVkCisgICAgICAgIGFuZCBhdHRyaWJ1
dGVkIGNsaWNrcyBpbiBQQ00uIFRoaXMgcGF0Y2ggbWFrZXMgc3VyZSB3ZSB0YWtlIHRob3NlIElE
cworICAgICAgICBpbnRvIGNvbnNpZGVyYXRpb24gaW4gUENNOjpEYXRhYmFzZTo6YXR0cmlidXRl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS4KKworICAgICAgICBBIGxvdCBvZiB0aGUgV2ViS2l0
IHBhcnQgaXM6CisgICAgICAgIC0gUGlwaW5nIHRocm91Z2ggYXBwIGJ1bmRsZSBJRHMgZnJvbSB0
aGUgbmV0d29yayBzZXNzaW9uIHRvIHRoZSBQQ00KKyAgICAgICAgICAgIGRhdGFiYXNlIHdoZXJl
IHRoZSBJRCB3aWxsIGJlIG1hdGNoZWQgYWdhaW5zdCBzdG9yZWQgYXBwIGJ1bmRsZSBJRHMuCisg
ICAgICAgIC0gUGlwaW5nIHRocm91Z2ggdGVzdCBjb25maWd1cmF0aW9uIGZvciBhcHAgYnVuZGxl
IElELgorCisgICAgICAgIFRoZSByZWFsIGNoYW5nZSBpcyBpbiBQQ006OkRhdGFiYXNlIHdoaWNo
IGlzIGV4cGxhaW5lZCBiZWxvdy4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWwKKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0
aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Nlc3Npb246OmhhbmRsZVByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbik6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UENNOjpEYXRhYmFzZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAg
ICAgIE5vdyB0YWtlcyBhbiBhcHAgYnVuZGxlIElEIHN1cHBsaWVkIGZyb20gdGhlIG5ldHdvcmsg
c2Vzc2lvbiBhbmQKKyAgICAgICAgICAgIGluY2x1ZGVzIGl0IGluIHRoZSBkYXRhYmFzZSBxdWVy
eSB0byBmaW5kIG1hdGNoaW5nIGVudHJpZXMuIElmIGFuZAorICAgICAgICAgICAgYXR0cmlidXRp
b24gd2FzIHNhdmVkIHdpdGggYXBwIGJ1bmRsZSBJRCBYWVosIGl0IHNob3VsZCBvbmx5IGJlCisg
ICAgICAgICAgICBiZSBjb252ZXJ0ZWQgaW4gYW4gYXBwbGljYXRpb24gd2l0aCBhcHAgYnVuZGxl
IElEIFhZWi4KKyAgICAgICAgKFdlYktpdDo6UENNOjpEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjYWxscyBQQ006
OkRhdGFiYXNlOjpmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQorICAgICAgICAgICAgd2hp
Y2ggbmVlZHMgdGhlIGFwcCBidW5kbGUgSUQgc28gdGhhdCBJRCBpcyBmb3J3YXJkZWQgdGhyb3Vn
aC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpEYXRhYmFzZTo6cmVtb3ZlVW5hdHRyaWJ1dGVkKToK
KyAgICAgICAgICAgIEFsc28gbmVlZHMgdG8gdGFrZSB0aGUgYXBwIGJ1bmRsZSBJRCBpbnRvIGNv
bnNpZGVyYXRpb24uCisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OmNsZWFyU2VudEF0
dHJpYnV0aW9uKToKKyAgICAgICAgICAgIEFsc28gbmVlZHMgdG8gdGFrZSB0aGUgYXBwIGJ1bmRs
ZSBJRCBpbnRvIGNvbnNpZGVyYXRpb24uCisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6
Om1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgICAgIEFsc28gbmVlZHMg
dG8gdGFrZSB0aGUgYXBwIGJ1bmRsZSBJRCBpbnRvIGNvbnNpZGVyYXRpb24uCisgICAgICAgIChX
ZWJLaXQ6OlBDTTo6RGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZSk6CisgICAgICAg
ICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0
aW9uLgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjplYXJsaWVzdFRpbWVzVG9TZW5k
KToKKyAgICAgICAgICAgIEFsc28gbmVlZHMgdG8gdGFrZSB0aGUgYXBwIGJ1bmRsZSBJRCBpbnRv
IGNvbnNpZGVyYXRpb24uCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6c3RvcmVVbmF0dHJpYnV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRsZUF0dHJpYnV0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6YXR0cmlidXRlKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhcik6CisgICAgICAgICAgICBDbGVhcnMgdGhl
IHRlc3Qgc2V0dGluZyBmb3IgYXBwIGJ1bmRsZSBJRC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpQQ006Om1lc3NhZ2VUeXBlU2VuZHNSZXBseSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6ZGVj
b2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVy
ZmFjZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UENNOjpNYW5hZ2VyUHJveHk6OmhhbmRsZUF0dHJpYnV0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6UENNOjpNYW5hZ2VyUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxl
SURGb3JUZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006OlN0b3JlOjphdHRyaWJ1dGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyk6CisgICAgICAgIChXS1BhZ2VTZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFByaXZh
dGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVy
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMjEt
MDktMjkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEg
ZGVmYXVsdCByZXR1cm4gdmFsdWUgaW4gY29udmVydFRvRXhjZXB0aW9uQ29kZQpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlz
aW9uIDI4MzI4MCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjg2LDYgKzI2ODYsMTQgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0UENNRnJhdWRQcmV2ZW50aQogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVu
ZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nJiYgYXBwQnVu
ZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9u
SUQpKQorICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZyhXVEZNb3ZlKGFwcEJ1bmRsZUlERm9yVGVzdGluZykpOworCisgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWRkS2VwdEFsaXZl
TG9hZChSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPiYmIGxvYWRlcikKIHsKICAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKGxvYWRlci0+c2Vzc2lvbklEKCkpKQpJbmRleDog
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkocmV2aXNp
b24gMjgzMjgwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTAsNiArMzUwLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklELCBVUkwmJiBzb3VyY2VVUkwsIFVSTCYmIGRlc3RpbmF0aW9uVVJMLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01l
YXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4sIFN0cmlu
ZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIGFwcEJ1
bmRsZUlERm9yVGVzdGluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIFJl
ZlB0cjxXZWJDb3JlOjpTdG9yYWdlUXVvdGFNYW5hZ2VyPiBzdG9yYWdlUXVvdGFNYW5hZ2VyKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKIApJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCShyZXZpc2lvbiAyODMyODApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsNiAr
MTcxLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZQogICAgIFNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBzb3VyY2VVUkwsIFVSTCBkZXN0aW5hdGlvblVS
TCkgLT4gKCkgQXN5bmMKICAgICBNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVk
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgU2V0
UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFN0cmluZyBzZWNyZXRUb2tlbiwgU3RyaW5nIHVubGlua2FibGVUb2tlbiwgU3RyaW5nIHNp
Z25hdHVyZSwgU3RyaW5nIGtleUlEKSAtPiAoKSBBc3luYworICAgIFNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
U3RyaW5nIGFwcEJ1bmRsZUlERm9yVGVzdGluZykgLT4gKCkgQXN5bmMKICAgICBHZXRMb2NhbFN0
b3JhZ2VPcmlnaW5EZXRhaWxzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxX
ZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6T3JpZ2luRGV0YWlscz4gZGV0YWls
cykgQXN5bmMKIAogICAgIFNldFNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKFNl
Y29uZHMgc2Vjb25kcykgLT4gKCkgU3luY2hyb25vdXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCShyZXZpc2lvbiAyODMyODApCisr
KyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsOCArNDQsMTAgQEAKICNpbmNsdWRlICJXZWJTb2NrZXRUYXNrLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+
CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJEZWZhdWx0V2ViQnJvd3NlckNoZWNr
cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ29jb2EuaCIKICNlbmRpZgogI2lmIFVTRShT
T1VQKQpAQCAtMzIzLDcgKzMyNSwxMiBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzdG9yZVByaXZh
dGVDbGlja01lCiAKIHZvaWQgTmV0d29ya1Nlc3Npb246OmhhbmRsZVByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29udmVyc2lvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25Ucmln
Z2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpCiB7Ci0gICAg
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5oYW5kbGVBdHRyaWJ1dGlvbihXVEZNb3ZlKGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEpLCByZXF1ZXN0VVJMLCBSZWdpc3RyYWJsZURvbWFpbihyZWRpcmVj
dFJlcXVlc3QudXJsKCkpLCByZWRpcmVjdFJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSk7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYXV0byBhcHBCdW5kbGVJRCA9IFdlYkNvcmU6OmFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpOworI2Vsc2UKKyAgICBhdXRvIGFwcEJ1bmRsZUlE
ID0gU3RyaW5nKCk7CisjZW5kaWYKKyAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLmhhbmRs
ZUF0dHJpYnV0aW9uKFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIHJlcXVlc3RVUkws
IFJlZ2lzdHJhYmxlRG9tYWluKHJlZGlyZWN0UmVxdWVzdC51cmwoKSksIHJlZGlyZWN0UmVxdWVz
dC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBhcHBCdW5kbGVJRCk7CiB9CiAKIHZvaWQgTmV0d29y
a1Nlc3Npb246OmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0zOTIsNiArMzk5LDE0IEBAIHZv
aWQgTmV0d29ya1Nlc3Npb246OmFsbG93VExTQ2VydGlmaWNhdGUKICAgICBwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCgpLmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhj
ZXJ0aWZpY2F0ZUluZm8pOwogfQogCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhTdHJpbmcmJiBhcHBCdW5kbGVJREZv
clRlc3RpbmcpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUkVMRUFTRV9BU1NFUlQoaXNS
dW5uaW5nVGVzdChXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSkpOworI2Vu
ZGlmCisgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXVEZNb3ZlKGFwcEJ1bmRsZUlERm9yVGVzdGluZykp
OworfQorCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjphZGRLZXB0QWxpdmVMb2FkKFJlZjxOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI+JiYgbG9hZGVyKQogewogICAgIEFTU0VSVChtX3Nlc3Npb25JRCA9PSBs
b2FkZXItPnNlc3Npb25JRCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmgJKHJldmlzaW9uIDI4MzI4MCkKKysrIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDYg
KzE0MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0Zv
clRlc3RpbmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwg
U3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCk7CiAgICAgdm9pZCBmaXJlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpOwogICAgIHZvaWQg
YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbyYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
cHBCdW5kbGVJREZvclRlc3RpbmcoU3RyaW5nJiYpOwogCiAgICAgdm9pZCBhZGRLZXB0QWxpdmVM
b2FkKFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+JiYpOwogICAgIHZvaWQgcmVtb3ZlS2VwdEFs
aXZlTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkZXImKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNl
LmNwcAkocmV2aXNpb24gMjgzMjgwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTggKzQzLDE4IEBAIGNvbnN0ZXhwciBhdXRvIGluc2Vy
dFVuYXR0cmlidXRlZFByaXZhdGUKICAgICAic291cmNlSUQsIHRpbWVPZkFkQ2xpY2ssIHRva2Vu
LCBzaWduYXR1cmUsIGtleUlELCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKSBWQUxVRVMgKD8s
ID8sID8sID8sID8sID8sID8sID8pIl9zOwogY29uc3RleHByIGF1dG8gaW5zZXJ0QXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnkgPSAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyBB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKHNvdXJjZVNpdGVEb21haW5JRCwgZGVz
dGluYXRpb25TaXRlRG9tYWluSUQsICIKICAgICAic291cmNlSUQsIGF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEsIHByaW9yaXR5LCB0aW1lT2ZBZENsaWNrLCBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJj
ZSwgdG9rZW4sIHNpZ25hdHVyZSwga2V5SUQsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRp
b24sIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpIFZBTFVFUyAoPywgPywgPywgPywgPywgPywg
PywgPywgPywgPywgPywgPykiX3M7Ci1jb25zdGV4cHIgYXV0byBmaW5kVW5hdHRyaWJ1dGVkUXVl
cnkgPSAiU0VMRUNUICogRlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBX
SEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9
ID8iX3M7Ci1jb25zdGV4cHIgYXV0byBmaW5kQXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAqIEZS
T00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21h
aW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBh
dXRvIHJlbW92ZVVuYXR0cmlidXRlZFF1ZXJ5ID0gIkRFTEVURSBGUk9NIFVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRl
c3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIGZpbmRVbmF0dHJp
YnV0ZWRRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURv
bWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4
cHIgYXV0byBmaW5kQXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRl
c3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9
ID8iX3M7Citjb25zdGV4cHIgYXV0byByZW1vdmVVbmF0dHJpYnV0ZWRRdWVyeSA9ICJERUxFVEUg
RlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRl
RG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFw
cGxpY2F0aW9uQnVuZGxlSUQgPSA/Il9zOwogY29uc3RleHByIGF1dG8gYWxsQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnkgPSAiU0VMRUNUICosIE1JTihlYXJsaWVzdFRpbWVU
b1NlbmRUb1NvdXJjZSwgZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlvbikgYXMgbWluVmFs
ICIKICAgICAiRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgZWFy
bGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UgSVMgTk9UIE5VTEwgQU5EIGVhcmxpZXN0VGltZVRvU2Vu
ZFRvRGVzdGluYXRpb24gSVMgTk9UIE5VTEwgIgogICAgICJVTklPTiBBTEwgU0VMRUNUICosIGVh
cmxpZXN0VGltZVRvU2VuZFRvU291cmNlIGFzIG1pblZhbCBGUk9NIEF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBXSEVSRSBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIElT
IE5VTEwgIgogICAgICJVTklPTiBBTEwgU0VMRUNUICosIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVz
dGluYXRpb24gYXMgbWluVmFsIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
IFdIRVJFIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlIElTIE5VTEwgT1JERVIgQlkgbWluVmFs
Il9zOwogY29uc3RleHByIGF1dG8gYWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvbnNRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50Il9zOwogY29uc3RleHByIGF1dG8gY2xlYXJFeHBpcmVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRRdWVyeSA9ICJERUxFVEUgRlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCBXSEVSRSA/ID4gdGltZU9mQWRDbGljayJfczsKLWNvbnN0ZXhwciBhdXRv
IG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZVF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlID0gbnVsbCBX
SEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9
ID8iX3M7Ci1jb25zdGV4cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvblF1ZXJ5
ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVhcmxpZXN0
VGltZVRvU2VuZFRvRGVzdGluYXRpb24gPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9
ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIGVh
cmxpZXN0VGltZXNUb1NlbmRRdWVyeSA9ICJTRUxFQ1QgZWFybGllc3RUaW1lVG9TZW5kVG9Tb3Vy
Y2UsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gRlJPTSBBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGlu
YXRpb25TaXRlRG9tYWluSUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gbWFya1JlcG9ydEFzU2Vu
dFRvU291cmNlUXVlcnkgPSAiVVBEQVRFIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCBTRVQgZWFybGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UgPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVE
b21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBw
bGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50
VG9EZXN0aW5hdGlvblF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gPSBudWxsIFdIRVJFIHNv
dXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQg
c291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBlYXJsaWVz
dFRpbWVzVG9TZW5kUXVlcnkgPSAiU0VMRUNUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlLCBl
YXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9u
U2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7CiBj
b25zdGV4cHIgYXV0byBkb21haW5JREZyb21TdHJpbmdRdWVyeSA9ICJTRUxFQ1QgZG9tYWluSUQg
RlJPTSBQQ01PYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwog
Y29uc3RleHByIGF1dG8gZG9tYWluU3RyaW5nRnJvbURvbWFpbklEUXVlcnkgPSAiU0VMRUNUIHJl
Z2lzdHJhYmxlRG9tYWluIEZST00gUENNT2JzZXJ2ZWREb21haW5zIFdIRVJFIGRvbWFpbklEID0g
PyJfczsKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50ID0gIkNSRUFURSBUQUJMRSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCAoIgpAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgRGF0YWJhc2U6Om1hcmtBbGxVbmF0dHJpYnV0
ZWRQcml2YXQKICAgICB9CiB9CiAKLXN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPERhdGFiYXNlOjpV
bmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4sIHN0ZDo6b3B0aW9uYWw8RGF0YWJh
c2U6OkF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IERhdGFiYXNlOjpmaW5kUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlKQor
c3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Piwgc3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6QXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50Pj4gRGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChj
b25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNl
U2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9u
RGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogewogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogICAgIGF1dG8gc291cmNlU2l0ZURvbWFpbklEID0gZG9tYWlu
SUQoc291cmNlU2l0ZS5yZWdpc3RyYWJsZURvbWFpbik7CkBAIC0yNDgsNyArMjQ4LDggQEAgc3Rk
OjpwYWlyPHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cgogICAgIGF1dG8gZmluZFVuYXR0
cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX2ZpbmRVbmF0
dHJpYnV0ZWRTdGF0ZW1lbnQsIGZpbmRVbmF0dHJpYnV0ZWRRdWVyeSwgImZpbmRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCJfcyk7CiAgICAgaWYgKCFmaW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVt
ZW50CiAgICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQo
MSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IGZpbmRVbmF0
dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFp
bklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgfHwgZmluZFVuYXR0cmlidXRlZFNjb3BlZFN0
YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9P
SworICAgICAgICB8fCBmaW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgz
LCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpICE9IFNRTElURV9PSykgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIiVwIC0gRGF0YWJhc2U6
OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBmaW5kVW5hdHRyaWJ1dGVkUXVlcnksIGVycm9y
IG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTI1Niw3
ICsyNTcsOCBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6VW5hdHRyCiAgICAg
YXV0byBmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVu
dChtX2ZpbmRBdHRyaWJ1dGVkU3RhdGVtZW50LCBmaW5kQXR0cmlidXRlZFF1ZXJ5LCAiZmluZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Il9zKTsKICAgICBpZiAoIWZpbmRBdHRyaWJ1dGVkU2NvcGVk
U3RhdGVtZW50CiAgICAgICAgIHx8IGZpbmRBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5k
SW50KDEsICpzb3VyY2VTaXRlRG9tYWluSUQpICE9IFNRTElURV9PSwotICAgICAgICB8fCBmaW5k
QXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9t
YWluSUQpICE9IFNRTElURV9PSykgeworICAgICAgICB8fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0
YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9P
SworICAgICAgICB8fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywg
YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICIlcCAtIERhdGFiYXNlOjpm
aW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgZmluZEF0dHJpYnV0ZWRRdWVyeSwgZXJyb3IgbWVz
c2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtMjcyLDcgKzI3
NCw3IEBAIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPERhdGFiYXNlOjpVbmF0dHIKICAgICByZXR1
cm4gc3RkOjptYWtlX3BhaXIodW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIGF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk7CiB9CiAKLXN0ZDo6cGFpcjxzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29u
ZHNVbnRpbFNlbmREYXRhPiwgRGVidWdJbmZvPiBEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEpCitzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4sIERl
YnVnSW5mbz4gRGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRl
LCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0
aW5hdGlvblNpdGUmIGRlc3RpbmF0aW9uU2l0ZSwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMjkxLDcgKzI5
Myw3IEBAIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGUKIAogICAgIFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNl
bmREYXRhIHNlY29uZHNVbnRpbFNlbmQgeyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9Owog
Ci0gICAgYXV0byBhdHRyaWJ1dGlvbiA9IGZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3Vy
Y2VTaXRlLCBkZXN0aW5hdGlvblNpdGUpOworICAgIGF1dG8gYXR0cmlidXRpb24gPSBmaW5kUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBhcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIpOwogICAgIGF1dG8mIHByZXZpb3VzbHlVbmF0dHJpYnV0ZWQg
PSBhdHRyaWJ1dGlvbi5maXJzdDsKICAgICBhdXRvJiBwcmV2aW91c2x5QXR0cmlidXRlZCA9IGF0
dHJpYnV0aW9uLnNlY29uZDsKIApAQCAtMzUwLDYgKzM1Miw3IEBAIHZvaWQgRGF0YWJhc2U6OnJl
bW92ZVVuYXR0cmlidXRlZChXZWJDb3IKICAgICBpZiAoIXNjb3BlZFN0YXRlbWVudAogICAgICAg
ICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0g
U1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGlu
YXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1l
bnQtPmJpbmRUZXh0KDMsIGF0dHJpYnV0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQoKSkg
IT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElU
RV9ET05FKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCAiJXAgLSBEYXRhYmFzZTo6cmVtb3ZlVW5hdHRyaWJ1dGVkLCBlcnJvciBtZXNzYWdlOiAl
IiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTUyMiw2ICs1MjUsNyBAQCB2b2lkIERh
dGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbihXZWJDCiAKICAgICBhdXRvIHNvdXJjZVNpdGVE
b21haW5JRCA9IGRvbWFpbklEKGF0dHJpYnV0aW9uLnNvdXJjZVNpdGUoKS5yZWdpc3RyYWJsZURv
bWFpbik7CiAgICAgYXV0byBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9IGRvbWFpbklEKGF0dHJp
YnV0aW9uLmRlc3RpbmF0aW9uU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICBhdXRvIHNv
dXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSBhdHRyaWJ1dGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlEKCk7CiAKICAgICBpZiAoIXNvdXJjZVNpdGVEb21haW5JRCB8fCAhZGVzdGluYXRpb25T
aXRlRG9tYWluSUQpCiAgICAgICAgIHJldHVybjsKQEAgLTUzMiw3ICs1MzYsNyBAQCB2b2lkIERh
dGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbihXZWJDCiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBtYXJr
UmVwb3J0QXNTZW50VG9Tb3VyY2UoKnNvdXJjZVNpdGVEb21haW5JRCwgKmRlc3RpbmF0aW9uU2l0
ZURvbWFpbklEKTsKKyAgICAgICAgbWFya1JlcG9ydEFzU2VudFRvU291cmNlKCpzb3VyY2VTaXRl
RG9tYWluSUQsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCwgc291cmNlQXBwbGljYXRpb25CdW5k
bGVJRCk7CiAgICAgICAgIHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCA9IHN0ZDo6bnVsbG9wdDsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25SZXBvcnRFbmRwb2ludDo6RGVzdGluYXRpb246CkBAIC01NDAsNyArNTQ0
LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRpb24oV2ViQwogICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24oKnNvdXJjZVNpdGVEb21haW5J
RCwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKTsKKyAgICAgICAgbWFya1JlcG9ydEFzU2VudFRv
RGVzdGluYXRpb24oKnNvdXJjZVNpdGVEb21haW5JRCwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklE
LCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKTsKICAgICAgICAgZGVzdGluYXRpb25FYXJsaWVz
dFRpbWVUb1NlbmQgPSBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC01NDgsMTcgKzU1MiwxOCBA
QCB2b2lkIERhdGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbihXZWJDCiAgICAgaWYgKGRlc3Rp
bmF0aW9uRWFybGllc3RUaW1lVG9TZW5kIHx8IHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQgPSBtX2Rh
dGFiYXNlLnByZXBhcmVTdGF0ZW1lbnQoIkRFTEVURSBGUk9NIEF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlv
blNpdGVEb21haW5JRCA9ID8iX3MpOworICAgIGF1dG8gY2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50
ID0gbV9kYXRhYmFzZS5wcmVwYXJlU3RhdGVtZW50KCJERUxFVEUgRlJPTSBBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVz
dGluYXRpb25TaXRlRG9tYWluSUQgPSA/IEFORCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEID0g
PyJfcyk7CiAgICAgaWYgKCFjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgY2xl
YXJBdHRyaWJ1dGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3VyY2VTaXRlRG9tYWluSUQpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQtPmJpbmRJbnQo
MiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgY2xl
YXJBdHRyaWJ1dGVkU3RhdGVtZW50LT5iaW5kVGV4dCgzLCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgY2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50LT5z
dGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsICIlcCAtIERhdGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbiBm
YWlsZWQgdG8gc3RlcCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgfQogfQogCi12b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5h
dGlvbihTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWlu
SUQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQpCit2b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0QXNT
ZW50VG9EZXN0aW5hdGlvbihTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3Rp
bmF0aW9uRG9tYWluSUQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQsIGNvbnN0IEFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciYgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkKIHsKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBhdXRvIHNjb3BlZFN0YXRlbWVudCA9IHRoaXMt
PnNjb3BlZFN0YXRlbWVudChtX21hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uU3RhdGVtZW50
LCBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvblF1ZXJ5LCAibWFya1JlcG9ydEFzU2VudFRv
RGVzdGluYXRpb24iX3MpOwpAQCAtNTY2LDEzICs1NzEsMTQgQEAgdm9pZCBEYXRhYmFzZTo6bWFy
a1JlcG9ydEFzU2VudFRvRGVzdGluYQogICAgIGlmICghc2NvcGVkU3RhdGVtZW50CiAgICAgICAg
IHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCBzb3VyY2VTaXRlRG9tYWluSUQpICE9IFNR
TElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgZGVzdGluYXRp
b25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQt
PmJpbmRUZXh0KDMsIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpICE9IFNRTElURV9PSwogICAg
ICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkRhdGFiYXNlOjpt
YXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbiwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xP
R19TVFJJTkcsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CiB9CiAKLXZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRU
b1NvdXJjZShTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9t
YWluSUQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQpCit2b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0
QXNTZW50VG9Tb3VyY2UoU291cmNlRG9tYWluSUQgc291cmNlU2l0ZURvbWFpbklELCBEZXN0aW5h
dGlvbkRvbWFpbklEIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklELCBjb25zdCBBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXImIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpCiB7CiAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5z
Y29wZWRTdGF0ZW1lbnQobV9tYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2VTdGF0ZW1lbnQsIG1hcmtS
ZXBvcnRBc1NlbnRUb1NvdXJjZVF1ZXJ5LCAibWFya1JlcG9ydEFzU2VudFRvU291cmNlIl9zKTsK
QEAgLTU4MCw2ICs1ODYsNyBAQCB2b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9Tb3Vy
Y2UoCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50
LT5iaW5kSW50KDEsIHNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8
IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0g
U1FMSVRFX09LCisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgc291cmNl
QXBwbGljYXRpb25CdW5kbGVJRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRl
bWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1Nv
dXJjZSwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTYwMCw2ICs2
MDcsNyBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6U291cmNlCiAgICAgaWYg
KCFzY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEs
ICpzb3VyY2VTaXRlRG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0
ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sK
KyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgzLCBhdHRyaWJ1dGlvbi5zb3Vy
Y2VBcHBsaWNhdGlvbkJ1bmRsZUlEKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRT
dGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiRGF0YWJhc2U6OmVhcmxpZXN0VGltZXNUb1Nl
bmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
RGF0YWJhc2UuaAkocmV2aXNpb24gMjgzMjgwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFi
YXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDEwICs0MiwxMiBAQCBwdWJsaWM6CiAgICAgRGF0
YWJhc2UoY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KTsKICAgICB2aXJ0dWFsIH5EYXRh
YmFzZSgpOwogICAgIAorICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0
cmluZzsKKwogICAgIHN0YXRpYyB2b2lkIGludGVycnVwdEFsbERhdGFiYXNlcygpOwogCiAgICAg
dm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSk7Ci0g
ICAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+IGF0dHJpYnV0
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CisgICAgc3RkOjpwYWlyPHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vj
b25kc1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+IGF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1
cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRl
JiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVz
dGluYXRpb25TaXRlJiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiwgV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CiAg
ICAgVmVjdG9yPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBhbGxBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4pOwogICAg
IHZvaWQgY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKQEAgLTY2LDExICs2
OCwxMSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjcmVhdGVTY2hlbWEoKSBmaW5hbDsKICAgICB2
b2lkIGRlc3Ryb3lTdGF0ZW1lbnRzKCkgZmluYWw7Ci0gICAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9u
YWw8VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdGlvbmFsPEF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IGZpbmRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYs
IGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3Rp
bmF0aW9uU2l0ZSYpOworICAgIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Piwgc3RkOjpvcHRpb25hbDxBdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ+PiBmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBjb25z
dCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsKICAgICB2b2lkIHJlbW92ZVVuYXR0cmli
dXRlZChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwogICAgIFN0cmluZyBhdHRy
aWJ1dGlvblRvU3RyaW5nRm9yVGVzdGluZyhjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYpIGNvbnN0OwotICAgIHZvaWQgbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24o
U291cmNlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWluSUQpOwotICAgIHZvaWQgbWFya1JlcG9y
dEFzU2VudFRvU291cmNlKFNvdXJjZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFpbklEKTsKKyAg
ICB2b2lkIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKFNvdXJjZURvbWFpbklELCBEZXN0
aW5hdGlvbkRvbWFpbklELCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsKKyAg
ICB2b2lkIG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZShTb3VyY2VEb21haW5JRCwgRGVzdGluYXRp
b25Eb21haW5JRCwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJik7CiAgICAgc3Rk
OjpwYWlyPHN0ZDo6b3B0aW9uYWw8U291cmNlRWFybGllc3RUaW1lVG9TZW5kPiwgc3RkOjpvcHRp
b25hbDxEZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2VuZD4+IGVhcmxpZXN0VGltZXNUb1NlbmQo
Y29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKICAgICBzdGQ6Om9wdGlv
bmFsPERvbWFpbklEPiBlbnN1cmVEb21haW5JRChjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYpOwogICAgIHN0ZDo6b3B0aW9uYWw8RG9tYWluSUQ+IGRvbWFpbklEKGNvbnN0IFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCShyZXZp
c2lvbiAyODMyODApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc3LDYgKzc3LDkgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OnN0bwogCiAgICAgY2xlYXJFeHBpcmVkKCk7CiAKKyAgICBpZiAobV9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZykKKyAgICAgICAgbWVhc3VyZW1lbnQuc2V0
U291cmNlQXBwbGljYXRpb25CdW5kbGVJREZvclRlc3RpbmcoKm1fcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOworCiAgICAgaWYgKG1lYXN1cmVtZW50LmVwaGVt
ZXJhbFNvdXJjZU5vbmNlKCkpIHsKICAgICAgICAgYXV0byBtZWFzdXJlbWVudENvcHkgPSBtZWFz
dXJlbWVudDsKICAgICAgICAgLy8gVGhpcyBpcyBndWFyYW50ZWVkIHRvIGJlIGNsb3NlIGluIHRp
bWUgdG8gdGhlIG5hdmlnYXRpb25hbCBjbGljayB3aGljaCBtYWtlcyBpdCBsaWtlbHkgdG8gYmUg
cGVyc29uYWxseSBpZGVudGlmaWFibGUuCkBAIC0yMzAsNyArMjMzLDcgQEAgdm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6Om1pZwogICAgIHN0b3JlKCkuaW5zZXJ0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoV1RGTW92ZShtZWFzdXJlbWVudCksIHR5cGUpOwogfQogCi12b2lkIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRp
b25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVz
dFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5VVJMKQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OmhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRy
aWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwgY29uc3QgQXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCiB7
CiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0yNDcsNyAr
MjUwLDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbgogCiAgICAg
bV9jbGllbnQtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1By
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFRyaWdnZXJpbmcgZXZlbnQgYWNjZXB0ZWQuIl9zKTsK
IAotICAgIGF0dHJpYnV0ZShTb3VyY2VTaXRlIHsgV1RGTW92ZShyZWRpcmVjdERvbWFpbikgfSwg
QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUgeyBmaXJzdFBhcnR5VVJMIH0sIFdURk1vdmUoYXR0
cmlidXRpb25UcmlnZ2VyRGF0YSkpOworICAgIGF0dHJpYnV0ZShTb3VyY2VTaXRlIHsgV1RGTW92
ZShyZWRpcmVjdERvbWFpbikgfSwgQXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUgeyBmaXJzdFBh
cnR5VVJMIH0sIFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIG1fcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcgPyAqbV9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA6IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7
CiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdGFydFRpbWVySW1t
ZWRpYXRlbHlGb3JUZXN0aW5nKCkKQEAgLTI1NSwxMiArMjU4LDIwIEBAIHZvaWQgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdGEKICAgICBzdGFydFRpbWVyKDBfcyk7CiB9CiAKK3Zv
aWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImJiBh
cHBCdW5kbGVJRCkKK3sKKyAgICBpZiAoYXBwQnVuZGxlSUQuaXNFbXB0eSgpKQorICAgICAgICBt
X3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nID0gc3RkOjpudWxs
b3B0OworICAgIGVsc2UKKyAgICAgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZyA9IFdURk1vdmUoYXBwQnVuZGxlSUQpOworfQorCiB2b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RhcnRUaW1lcihTZWNvbmRzIHNlY29uZHMpCiB7CiAg
ICAgbV9maXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVxdWVzdHNUaW1lci5zdGFydE9uZVNob3QobV9p
c1J1bm5pbmdUZXN0ID8gMF9zIDogc2Vjb25kcyk7CiB9CiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyOjphdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSwg
Y29uc3QgQXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmIGRlc3RpbmF0aW9uU2l0ZSwgQXR0cmli
dXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpCit2b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6YXR0cmlidXRlKGNvbnN0IFNvdXJjZVNpdGUmIHNvdXJj
ZVNpdGUsIGNvbnN0IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUs
IEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBjb25zdCBB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikK
IHsKICAgICBpZiAoIWZlYXR1cmVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI3Myw3
ICsyODQsNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YXR0CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBzdG9yZSgpLmF0dHJpYnV0ZVBy
aXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUsIGRlc3RpbmF0aW9uU2l0ZSwgV1RGTW92
ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgc3RkOjpleGNoYW5nZShtX2VwaGVtZXJhbE1lYXN1
cmVtZW50LCBzdGQ6Om51bGxvcHQpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyldIChhdXRvIGF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGEsIGF1dG8gZGVidWdJbmZv
KSB7CisgICAgc3RvcmUoKS5hdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3VyY2VT
aXRlLCBkZXN0aW5hdGlvblNpdGUsIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciwgV1RGTW92
ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgc3RkOjpleGNoYW5nZShtX2VwaGVtZXJhbE1lYXN1
cmVtZW50LCBzdGQ6Om51bGxvcHQpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyldIChhdXRvIGF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGEsIGF1dG8gZGVidWdJbmZv
KSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IApAQCAtNDM2LDYgKzQ0Nyw3IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpjbGUKICAgICBtX2ZpcmVQZW5kaW5nQXR0cmlidXRpb25SZXF1ZXN0c1RpbWVyLnN0b3AoKTsK
ICAgICBtX2VwaGVtZXJhbE1lYXN1cmVtZW50ID0gc3RkOjpudWxsb3B0OwogICAgIG1faXNSdW5u
aW5nRXBoZW1lcmFsTWVhc3VyZW1lbnRUZXN0ID0gZmFsc2U7CisgICAgbV9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA9IHN0ZDo6bnVsbG9wdDsKIAogICAgIGlm
ICghZmVhdHVyZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgJKHJldmlzaW9uIDI4MzI4MCkKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDggKzQ1LDEwIEBAIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoVW5pcXVlUmVm
PFBDTTo6Q2xpZW50PiYmLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIH5Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoKTsKIAorICAgIHVzaW5nIEFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKKwogICAgIHZvaWQgc3RvcmVVbmF0dHJpYnV0ZWQo
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJikgZmluYWw7Ci0gICAgdm9pZCBoYW5kbGVBdHRyaWJ1
dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5VVJMKSBmaW5hbDsKKyAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEmJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYmIHJlZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwsIGNvbnN0
IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXIoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyRm9yUmVnaXN0
cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgbWlncmF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50
RnJvbUxlZ2FjeVN0b3JhZ2UoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpIGZpbmFsOwpAQCAtNjEsNiArNjMsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3RpbmcoYm9vbCB2YWx1
ZSkgZmluYWwgeyBtX2lzUnVubmluZ0VwaGVtZXJhbE1lYXN1cmVtZW50VGVzdCA9IHZhbHVlOyB9
CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYm
IHVubGlua2FibGVUb2tlbiwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVy
ZSwgU3RyaW5nJiYga2V5SUQpIGZpbmFsOwogICAgIHZvaWQgc3RhcnRUaW1lckltbWVkaWF0ZWx5
Rm9yVGVzdGluZygpIGZpbmFsOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
cHBCdW5kbGVJREZvclRlc3RpbmcoQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiYpOwogICAg
IHZvaWQgZGVzdHJveVN0b3JlRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
IGZpbmFsOwogICAgIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0
aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpIGZpbmFsOwogCkBAIC03Miw3ICs3
NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQmJik7CiAgICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uVHlwZSk7CiAgICAgdm9pZCBjbGVhclNlbnRBdHRyaWJ1dGlvbihQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25SZXBv
cnRFbmRwb2ludCk7Ci0gICAgdm9pZCBhdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYsIGNvbnN0
IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKTsK
KyAgICB2b2lkIGF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmlidXRpb25E
ZXN0aW5hdGlvblNpdGUmLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciYpOwogICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNv
bnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50JiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQpOwogICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0
SW1wbChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYsIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50KTsKICAgICB2b2lkIGZpcmVQZW5kaW5nQXR0
cmlidXRpb25SZXF1ZXN0cygpOwpAQCAtODYsNiArODksNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9pc1J1bm5pbmdFcGhlbWVyYWxNZWFzdXJlbWVudFRlc3QgeyBmYWxzZSB9OwogICAgIHN0ZDo6
b3B0aW9uYWw8VVJMPiBtX3Rva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZzsKICAgICBzdGQ6Om9w
dGlvbmFsPFVSTD4gbV90b2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc7CisgICAgc3RkOjpvcHRp
b25hbDxBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI+IG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3Rpbmc7CiAgICAgbXV0YWJsZSBSZWZQdHI8UENNOjpTdG9yZT4g
bV9zdG9yZTsKICAgICBTdHJpbmcgbV9zdG9yYWdlRGlyZWN0b3J5OwogICAgIFVuaXF1ZVJlZjxQ
Q006OkNsaWVudD4gbV9jbGllbnQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcklu
dGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRl
cmZhY2UuY3BwCShyZXZpc2lvbiAyODMyODApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ckludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgQVJHVU1FTlRT
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZQogRU5ECiAKIEZVTkNUSU9OKGhhbmRsZUF0
dHJpYnV0aW9uKQotQVJHVU1FTlRTKFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6QXR0
cmlidXRpb25UcmlnZ2VyRGF0YSwgVVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgVVJM
KQorQVJHVU1FTlRTKFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6QXR0cmlidXRpb25U
cmlnZ2VyRGF0YSwgVVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgVVJMLCBTdHJpbmcp
CiBFTkQKIAogRlVOQ1RJT04oY2xlYXIpCkBAIC0xMTAsNiArMTEwLDEwIEBAIEZVTkNUSU9OKHN0
YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcKIEFSR1VNRU5UUygpCiBFTkQKIAorRlVOQ1RJ
T04oc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpCitBUkdV
TUVOVFMoU3RyaW5nKQorRU5ECisKIEZVTkNUSU9OKGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcpCiBB
UkdVTUVOVFMoKQogUkVQTFkoKQpAQCAtMTU0LDYgKzE1OCw3IEBAIGJvb2wgbWVzc2FnZVR5cGVT
ZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG0KICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTZXRFcGhlbWVy
YWxNZWFzdXJlbWVudEZvclRlc3Rpbmc6CiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6U2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZzoKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTdGFy
dFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nOgorICAgIGNhc2UgTWVzc2FnZVR5cGU6OlNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOgogICAgIGNhc2UgTWVz
c2FnZVR5cGU6OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZzoKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGNhc2UgTWVzc2FnZVR5cGU6Ok1hcmtBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZzoKQEAgLTI2NCw2ICsy
NjksOSBAQCB2b2lkIGRlY29kZU1lc3NhZ2VBbmRTZW5kVG9NYW5hZ2VyKE1lc3NhCiAgICAgY2Fz
ZSBQQ006Ok1lc3NhZ2VUeXBlOjpTdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nOgogICAg
ICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzdGFydFRpbWVySW1tZWRpYXRlbHlG
b3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CiAgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5k
bGVJREZvclRlc3Rpbmc6CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nPihXVEZNb3ZlKGVu
Y29kZWRNZXNzYWdlKSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlw
ZTo6RGVzdHJveVN0b3JlRm9yVGVzdGluZzoKICAgICAgICAgaGFuZGxlUENNTWVzc2FnZVdpdGhS
ZXBseTxNZXNzYWdlSW5mbzo6ZGVzdHJveVN0b3JlRm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVk
TWVzc2FnZSksIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgJKHJldmlzaW9uIDI4MzI4MCkKKysrIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUw
LDkgKzUwLDEwIEBAIHB1YmxpYzoKICAgICB1c2luZyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OwogICAgIHVzaW5nIFJlZ2lzdHJhYmxl
RG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgU291cmNlU2l0
ZSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlOworICAgIHVz
aW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKIAogICAgIHZpcnR1YWwg
dm9pZCBzdG9yZVVuYXR0cmlidXRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEm
JiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJl
ZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBV
UkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21h
aW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb3JSZWdpc3RyYWJsZURvbWFp
bihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBtaWdyYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9t
TGVnYWN5U3RvcmFnZShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEF0dHJpYnV0aW9uVHlwZSkgPSAwOwpAQCAtNjcsNiArNjgsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyhib29sKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rp
bmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5n
JiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdGFy
dFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXImJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U3RvcmVGb3JU
ZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJikgPSAwOwogfTsKQEAgLTkxLDYgKzkzLDcgQEAgZW51bSBjbGFz
cyBNZXNzYWdlVHlwZSA6IHVpbnQ4X3QgewogICAgIFNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9y
VGVzdGluZywKICAgICBTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nLAogICAg
IFN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcsCisgICAgU2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcsCiAgICAgRGVzdHJveVN0b3JlRm9yVGVzdGlu
ZywKICAgICBBbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcKIH07CkBA
IC0xMjcsNiArMTMwLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OlBD
TQogICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OlNldEVwaGVtZXJhbE1lYXN1cmVt
ZW50Rm9yVGVzdGluZywKICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQQ01G
cmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nLAogICAgICAgICBXZWJLaXQ6OlBDTTo6TWVz
c2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcsCisgICAgICAgIFdlYktp
dDo6UENNOjpNZXNzYWdlVHlwZTo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJ
REZvclRlc3RpbmcsCiAgICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6RGVzdHJveVN0
b3JlRm9yVGVzdGluZywKICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpBbGxvd1RM
U0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcKICAgICA+OwpJbmRleDogU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDI4MzI4MCkKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw5ICs4MCw5IEBA
IHZvaWQgTWFuYWdlclByb3h5OjpzdG9yZVVuYXR0cmlidXRlZChXZWIKICAgICBzZW5kTWVzc2Fn
ZTxNZXNzYWdlVHlwZTo6U3RvcmVVbmF0dHJpYnV0ZWQ+KHBjbSk7CiB9CiAKLXZvaWQgTWFuYWdl
clByb3h5OjpoYW5kbGVBdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIHRyaWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVl
c3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eVVSTCkKK3ZvaWQgTWFuYWdlclByb3h5OjpoYW5kbGVBdHRyaWJ1dGlv
bihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0
YSYmIHRyaWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwgY29u
c3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIpCiB7Ci0gICAgc2VuZE1lc3NhZ2U8TWVzc2FnZVR5cGU6OkhhbmRsZUF0dHJpYnV0aW9uPih0
cmlnZ2VyRGF0YSwgcmVxdWVzdFVSTCwgcmVkaXJlY3REb21haW4sIGZpcnN0UGFydHlVUkwpOwor
ICAgIHNlbmRNZXNzYWdlPE1lc3NhZ2VUeXBlOjpIYW5kbGVBdHRyaWJ1dGlvbj4odHJpZ2dlckRh
dGEsIHJlcXVlc3RVUkwsIHJlZGlyZWN0RG9tYWluLCBmaXJzdFBhcnR5VVJMLCBhcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXIpOwogfQogCiB2b2lkIE1hbmFnZXJQcm94eTo6Y2xlYXIoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTUwLDYgKzE1MCwx
MSBAQCB2b2lkIE1hbmFnZXJQcm94eTo6c3RhcnRUaW1lckltbWVkaWF0ZWx5CiAgICAgc2VuZE1l
c3NhZ2U8TWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3Rpbmc+KCk7CiB9
CiAKK3ZvaWQgTWFuYWdlclByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZyhBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImJiBhcHBCdW5kbGVJRCkK
K3sKKyAgICBzZW5kTWVzc2FnZTxNZXNzYWdlVHlwZTo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3Rpbmc+KGFwcEJ1bmRsZUlEKTsKK30KKwogdm9pZCBNYW5hZ2Vy
UHJveHk6OmRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHNlbmRNZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VU
eXBlOjpEZXN0cm95U3RvcmVGb3JUZXN0aW5nPihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAyODMyODApCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDgg
KzM5LDEwIEBAIGNsYXNzIE1hbmFnZXJQcm94eSA6IHB1YmxpYyBNYW5hZ2VySW50ZXIKIHB1Ymxp
YzoKICAgICBNYW5hZ2VyUHJveHkoY29uc3QgU3RyaW5nJiBtYWNoU2VydmljZU5hbWUpOwogCisg
ICAgdXNpbmcgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gU3RyaW5nOworCiAgICAgdm9p
ZCBzdG9yZVVuYXR0cmlidXRlZChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKSBm
aW5hbDsKLSAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVS
TCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5VVJMKSBmaW5hbDsKKyAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNv
bnN0IFVSTCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVj
dERvbWFpbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXImKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBjbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KSBmaW5hbDsKICAgICB2b2lkIG1pZ3JhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdh
Y3lTdG9yYWdlKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlKSBmaW5hbDsKQEAgLTU1LDYgKzU3LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0RXBoZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0aW5nKGJvb2wpIGZp
bmFsOwogICAgIHZvaWQgc2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJp
bmcmJiB1bmxpbmthYmxlVG9rZW4sIFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWdu
YXR1cmUsIFN0cmluZyYmIGtleUlEKSBmaW5hbDsKICAgICB2b2lkIHN0YXJ0VGltZXJJbW1lZGlh
dGVseUZvclRlc3RpbmcoKSBmaW5hbDsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYmKSBm
aW5hbDsKICAgICB2b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxv
Y2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKSBmaW5hbDsKIApJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50U3RvcmUuY3BwCShyZXZpc2lvbiAyODMyODApCisrKyBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50U3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSw5ICs5NSw5IEBAIHZvaWQgU3Rv
cmU6Om1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2wKICAgICB9KTsKIH0KIAotdm9pZCBTdG9y
ZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVz
dGluYXRpb25TaXRlLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgZXBoZW1lcmFsTWVhc3VyZW1lbnQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZv
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBjb25zdCBB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciwg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEm
JiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50PiYmIGVwaGVtZXJhbE1lYXN1cmVtZW50LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+JiYsIERlYnVnSW5mbyYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKLSAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7
ICp0aGlzIH0sIHNvdXJjZVNpdGUgPSBzb3VyY2VTaXRlLmlzb2xhdGVkQ29weSgpLCBkZXN0aW5h
dGlvblNpdGUgPSBkZXN0aW5hdGlvblNpdGUuaXNvbGF0ZWRDb3B5KCksIGF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEgPSBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBlcGhlbWVyYWxNZWFz
dXJlbWVudCA9IGNyb3NzVGhyZWFkQ29weShlcGhlbWVyYWxNZWFzdXJlbWVudCksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAg
IHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgc291cmNlU2l0
ZSA9IHNvdXJjZVNpdGUuaXNvbGF0ZWRDb3B5KCksIGRlc3RpbmF0aW9uU2l0ZSA9IGRlc3RpbmF0
aW9uU2l0ZS5pc29sYXRlZENvcHkoKSwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gYXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpLCBhdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgZXBoZW1lcmFsTWVhc3Vy
ZW1lbnQgPSBjcm9zc1RocmVhZENvcHkoZXBoZW1lcmFsTWVhc3VyZW1lbnQpLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKCFtX2RhdGFiYXNlKSB7CiAgICAgICAgICAgICByZXR1cm4gcG9zdFRhc2tSZXBseShb
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0LCB7IH0p
OwpAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgU3RvcmU6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01l
YXN1cmUKICAgICAgICAgICAgIG1fZGF0YWJhc2UtPmluc2VydFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KFdURk1vdmUoKmVwaGVtZXJhbE1lYXN1cmVtZW50KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblR5cGU6OlVuYXR0cmlidXRlZCk7CiAgICAgICAgIH0KIAotICAgICAgICBh
dXRvIFtzZWNvbmRzLCBkZWJ1Z0luZm9dID0gbV9kYXRhYmFzZS0+YXR0cmlidXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBXVEZNb3ZlKGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEpKTsKKyAgICAgICAgYXV0byBbc2Vjb25kcywgZGVidWdJbmZvXSA9
IG1fZGF0YWJhc2UtPmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUs
IGRlc3RpbmF0aW9uU2l0ZSwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEpKTsKIAogICAgICAgICBwb3N0VGFza1JlcGx5KFtzZWNvbmRz
ID0gV1RGTW92ZShzZWNvbmRzKSwgZGVidWdJbmZvID0gZGVidWdJbmZvLmlzb2xhdGVkQ29weSgp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFi
bGUgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZWNvbmRzKSwgV1RG
TW92ZShkZWJ1Z0luZm8pKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oCShyZXZpc2lvbiAyODMyODApCisr
KyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsMTEgKzQ3
LDEzIEBAIHB1YmxpYzoKIAogICAgIH5TdG9yZSgpOwogCisgICAgdXNpbmcgQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyID0gU3RyaW5nOworCiAgICAgc3RhdGljIHZvaWQgcHJlcGFyZUZvclBy
b2Nlc3NUb1N1c3BlbmQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICBzdGF0aWMg
dm9pZCBwcm9jZXNzRGlkUmVzdW1lKCk7CiAKICAgICB2b2lkIGluc2VydFByaXZhdGVDbGlja01l
YXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFdlYktpdDo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpOwotICAgIHZvaWQgYXR0cmlidXRl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIGVwaGVtZXJhbE1lYXN1cmVtZW50LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+JiYsIERlYnVnSW5mbyYmKT4m
Jik7CisgICAgdm9pZCBhdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYsIGNv
bnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgZXBoZW1lcmFsTWVhc3VyZW1lbnQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZvJiYp
PiYmKTsKIAogICAgIHZvaWQgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZ0ZvclRlc3Rp
bmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBjb25zdDsKICAgICB2b2lkIG1h
cmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3Rp
bmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2
aXNpb24gMjgzMjgwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTA1MTMsNiArMTA1MTMsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNldFBDTUZyYXVkUHJldmVudGlvbgogICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3Jr
UHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNl
dFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcobV93ZWJzaXRlRGF0YVN0b3JlLT5z
ZXNzaW9uSUQoKSwgdW5saW5rYWJsZVRva2VuLCBzZWNyZXRUb2tlbiwgc2lnbmF0dXJlLCBrZXlJ
RCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6
OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKGNvbnN0IFN0
cmluZyYgYXBwQnVuZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9j
ZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcobV93ZWJzaXRlRGF0YVN0
b3JlLT5zZXNzaW9uSUQoKSwgYXBwQnVuZGxlSURGb3JUZXN0aW5nKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworfQorCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAKIHZvaWQg
V2ViUGFnZVByb3h5OjpyZXNldFNwZWVjaFN5bnRoZXNpemVyKCkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyODMyODApCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTc3Miw2ICsx
NzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRy
aWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nKGNvbnN0IFVSTCYgc291cmNlVVJMLCBjb25zdCBV
UkwmIGRlc3RpbmF0aW9uVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZh
bHVlc0ZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiB1bmxpbmthYmxlVG9rZW4sIGNvbnN0IFN0cmlu
ZyYgc2VjcmV0VG9rZW4sIGNvbnN0IFN0cmluZyYgc2lnbmF0dXJlLCBjb25zdCBTdHJpbmcmIGtl
eUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBhcHBCdW5k
bGVJREZvclRlc3RpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICNpZiBFTkFC
TEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICB2b2lkIHNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdChD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJTcGVlY2hTeW50aGVzaXNWb2ljZT4mJik+
JiYpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCShyZXZp
c2lvbiAyODMyODApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMTM4LDYgKzMxMzgsMTQgQEAgdm9pZCBXS1BhZ2VTZXRQQ01G
cmF1ZFByZXZlbnRpb25WYWx1ZXNGbwogICAgIH0pOwogfQogCit2b2lkIFdLUGFnZVNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlUmVm
LCBXS1N0cmluZ1JlZiBhcHBCdW5kbGVJREZvclRlc3RpbmcsIFdLUGFnZVNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQq
IGNhbGxiYWNrQ29udGV4dCkKK3sKKyAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CisgICAgdG9JbXBs
KHBhZ2VSZWYpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGlu
Zyh0b1dURlN0cmluZyhhcHBCdW5kbGVJREZvclRlc3RpbmcpLCBbY2FsbGJhY2tDb250ZXh0LCBj
YWxsYmFja10gKCkgeworICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRleHQpOworICAgIH0p
OworfQorCiB2b2lkIFdLUGFnZVNldE1vY2tDYW1lcmFPcmllbnRhdGlvbihXS1BhZ2VSZWYgcGFn
ZVJlZiwgdWludDY0X3Qgb3JpZW50YXRpb24pCiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAko
cmV2aXNpb24gMjgzMjgwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIsNiArMTkyLDggQEAgdHlwZWRlZiB2b2lk
ICgqV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYQogV0tfRVhQT1JUIHZvaWQgV0tQYWdlTWFya1By
aXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2Us
IFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnVu
Y3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7CiB0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQq
IGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQQ01GcmF1ZFByZXZl
bnRpb25WYWx1ZXNGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzZWNyZXRU
b2tlbiwgV0tTdHJpbmdSZWYgdW5saW5rYWJsZVRva2VuLCBXS1N0cmluZ1JlZiBzaWduYXR1cmUs
IFdLU3RyaW5nUmVmIGtleUlELCBXS1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JU
ZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0eXBlZGVm
IHZvaWQgKCpXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tQ
YWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tQYWdl
UmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIGFwcEJ1bmRsZUlERm9yVGVzdGluZywgV0tQYWdlU2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmdGdW5jdGlvbiBjYWxs
YmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKIAogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0
TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdLUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBvcmllbnRhdGlv
bik7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
RW5hYmxlZChXS1BhZ2VSZWYgcGFnZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rpbmcu
aAkocmV2aXNpb24gMjgzMjgwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2ICsx
MDMsNyBAQCBzdHJ1Y3QgV0tBcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGEgewogLSAodm9pZClf
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5n
OihOU1VSTCAqKXNvdXJjZVVSTCBkZXN0aW5hdGlvblVSTDooTlNVUkwgKilkZXN0aW5hdGlvblVS
TCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAodm9pZClfc2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZzoo
TlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQp
X3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25Ub2tlblNpZ25hdHVyZVVSTEZv
clRlc3Rpbmc6KE5TVVJMICopdXJsIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7
CistICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGlu
ZzooTlNTdHJpbmcgKilhcHBCdW5kbGVJRCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lk
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50Oih2
b2lkKF4pKE5TU3RyaW5nICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX2xhc3ROYXZpZ2F0
aW9uV2FzQXBwSW5pdGlhdGVkOih2b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyOwpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1Rlc3RpbmcubW0JKHJldmlzaW9uIDI4MzI4MCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNTQsNiAr
MzU0LDEzIEBAIC0gKHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmkKICAgICB9
KTsKIH0KIAorLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZv
clRlc3Rpbmc6KE5TU3RyaW5nICopYXBwQnVuZGxlSUQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
Xikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZS0+c2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoYXBwQnVuZGxlSUQsIFtjb21wbGV0aW9u
SGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKKyAgICB9KTsKK30KKwogLSAodm9pZClfZHVtcFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Oih2b2lkKF4pKE5TU3RyaW5nICopKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAg
ICAgX3BhZ2UtPmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChbY29tcGxldGlvbkhhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXShjb25zdCBTdHJpbmcmIHByaXZhdGVD
bGlja01lYXN1cmVtZW50KSB7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODMyODEpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wOS0yOSAgSm9obiBXaWxhbmRlciAg
PHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IFRha2UgYXBwIGJ1bmRsZSBJRCBp
bnRvIGNvbnNpZGVyYXRpb24gd2hlbiBtYXRjaGluZyB0cmlnZ2VyaW5nIGV2ZW50cyB3aXRoIHBl
bmRpbmcgY2xpY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzA3NzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNTE2NTI4PgorCisgICAgICAg
IFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgaHR0cHM6Ly9jb21taXRz
LndlYmtpdC5vcmcvcjI4Mjg4NCBhZGRlZCBhcHAgYnVuZGxlIElEcyB0byB1bmF0dHJpYnV0ZWQK
KyAgICAgICAgYW5kIGF0dHJpYnV0ZWQgY2xpY2tzIGluIFBDTS4gVGhpcyBwYXRjaCBtYWtlcyBz
dXJlIHdlIHRha2UgdGhvc2UgSURzCisgICAgICAgIGludG8gY29uc2lkZXJhdGlvbiBpbiBQQ006
OkRhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLgorCisgICAgICAg
IFRoZSBUZXN0UnVubmVyIGNoYW5nZXMgYXJlIGFsbCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIGVu
YWJsZSBkaWZmZXJlbnQKKyAgICAgICAgYXBwIGJ1bmRsZSBJRHMgaW4gdGhlIGV5ZXMgb2YgUENN
LiBUaGUgQVBJIHRlc3QgY2hhbmdlcyBhcmUgdG8gbWFrZSB1c2UKKyAgICAgICAgb2YgdGhlIGFw
cCBidW5kbGUgSUQgdGVzdCBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OnJ1bkJhc2ljRXZlbnRBdHRyaWJ1dGlvblRlc3QpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpz
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RS
OjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZSk6CisKIDIwMjEtMDktMjkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBVcGRhdGUgUENNIERhZW1vbiBuYW1lCkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0
dHJpYnV0aW9uLm1tCShyZXZpc2lvbiAyODMyODEpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1
Myw4ICsxNTMsMTAgQEAgdm9pZCBydW5CYXNpY0V2ZW50QXR0cmlidXRpb25UZXN0KFdLV2ViVgog
ICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF90cnVzdFNlcnZl
ckZvckxvY2FsUENNVGVzdGluZzpzZWNUcnVzdEZyb21DZXJ0aWZpY2F0ZUNoYWluKEBbKGlkKXRl
c3RDZXJ0aWZpY2F0ZSgpLmdldCgpXSkuZ2V0KCldOwogICAgIFt3ZWJWaWV3IF9zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc6c2VydmVyVVJM
IGRlc3RpbmF0aW9uVVJMOmV4YW1wbGVVUkwoKSBjb21wbGV0aW9uSGFuZGxlcjpeewogICAgICAg
ICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVz
dGluZzpZRVMgY29tcGxldGlvbkhhbmRsZXI6XnsKLSAgICAgICAgICAgIE5TU3RyaW5nICpodG1s
ID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0PmZldGNoKCclQGNvbnZlcnNp
b25SZXF1ZXN0QmVmb3JlUmVkaXJlY3QnLHttb2RlOiduby1jb3JzJ30pPC9zY3JpcHQ+Iiwgc2Vy
dmVyVVJMXTsKLSAgICAgICAgICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVS
TDpleGFtcGxlVVJMKCldOworICAgICAgICAgICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOkAidGVzdC5idW5kbGUuaWQiIGNvbXBsZXRp
b25IYW5kbGVyOl57CisgICAgICAgICAgICAgICAgTlNTdHJpbmcgKmh0bWwgPSBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIjxzY3JpcHQ+ZmV0Y2goJyVAY29udmVyc2lvblJlcXVlc3RCZWZv
cmVSZWRpcmVjdCcse21vZGU6J25vLWNvcnMnfSk8L3NjcmlwdD4iLCBzZXJ2ZXJVUkxdOworICAg
ICAgICAgICAgICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpleGFtcGxl
VVJMKCldOworICAgICAgICAgICAgfV07CiAgICAgICAgIH1dOwogICAgIH1dOwogICAgIFV0aWw6
OnJ1bigmZG9uZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439696</attachid>
            <date>2021-09-29 20:43:24 -0700</date>
            <delta_ts>2021-09-30 09:22:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230778-20210929204324.patch</filename>
            <type>text/plain</type>
            <size>74827</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4MzI4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA5LTI5ICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogVGFrZSBhcHAgYnVu
ZGxlIElEIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIG1hdGNoaW5nIHRyaWdnZXJpbmcgZXZlbnRz
IHdpdGggcGVuZGluZyBjbGlja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMDc3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBodHRwczov
L2NvbW1pdHMud2Via2l0Lm9yZy9yMjgyODg0IGFkZGVkIGFwcCBidW5kbGUgSURzIHRvIHVuYXR0
cmlidXRlZAorICAgICAgICBhbmQgYXR0cmlidXRlZCBjbGlja3MgaW4gUENNLiBUaGlzIHBhdGNo
IG1ha2VzIHN1cmUgd2UgdGFrZSB0aG9zZSBJRHMKKyAgICAgICAgaW50byBjb25zaWRlcmF0aW9u
IGluIFBDTTo6RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuCisK
KyAgICAgICAgVGhlIFdlYkNvcmUgcGFydCBtYWtlcyBzdXJlIHRoYXQgYSB0ZW1wb3JhcnkgYXBw
IGJ1bmRsZSBJRCBjYW4gYmUgc2V0CisgICAgICAgIG9uIGF0dHJpYnV0aW9ucyB0aGF0IGdldCBz
dG9yZWQgaW4gUENNJ3MgZGF0YWJhc2UuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sCisKKyAgICAg
ICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSURG
b3JUZXN0aW5nKToKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaDoK
KwogMjAyMS0wOS0yOSAgS2lldCBIbyAgPHRobzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBs
ZW1lbnQgdGhlICdpYycgdW5pdCBmcm9tIENTUyBWYWx1ZXMgNApJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCShyZXZpc2lvbiAy
ODMyODApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsNiArMTQ0LDExIEBAIGJvb2wgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6Omhhc1ByZXZpb3UKICAgICByZXR1cm4gIW1fdGltZXNUb1NlbmQuc291cmNl
RWFybGllc3RUaW1lVG9TZW5kIHx8ICFtX3RpbWVzVG9TZW5kLmRlc3RpbmF0aW9uRWFybGllc3RU
aW1lVG9TZW5kOwogfQogCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpzZXRTb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlERm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIGFwcEJ1bmRsZUlERm9y
VGVzdGluZykKK3sKKyAgICBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSBhcHBCdW5kbGVJ
REZvclRlc3Rpbmc7Cit9CisKIHN0YXRpYyBTZWNvbmRzIHJhbmRvbWx5QmV0d2VlblR3ZW50eUZv
dXJBbmRGb3J0eUVpZ2h0SG91cnMoKQogewogICAgIHJldHVybiAyNF9oICsgU2Vjb25kcyhyYW5k
b21OdW1iZXIoKSAqICgyNF9oKS52YWx1ZSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCShyZXZpc2lvbiAyODMyODApCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzQxLDYgKzM0MSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFs
PEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+JiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhOyB9CiAgICAgdm9pZCBzZXRBdHRyaWJ1
dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkgeyBt
X2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEp
OyB9CiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEOyB9CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlERm9yVGVzdGluZyhjb25zdCBTdHJp
bmcmKTsKIAogICAgIGNvbnN0IFN0cmluZyYgc291cmNlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJl
dHVybiBtX3NvdXJjZURlc2NyaXB0aW9uOyB9CiAgICAgY29uc3QgU3RyaW5nJiBwdXJjaGFzZXIo
KSBjb25zdCB7IHJldHVybiBtX3B1cmNoYXNlcjsgfQpJbmRleDogU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4
MzI4MCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsODIgQEAKKzIwMjEtMDktMjkgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUENNOiBUYWtlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uIHdo
ZW4gbWF0Y2hpbmcgdHJpZ2dlcmluZyBldmVudHMgd2l0aCBwZW5kaW5nIGNsaWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzc4CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84MzUxNjUyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyODI4ODQg
YWRkZWQgYXBwIGJ1bmRsZSBJRHMgdG8gdW5hdHRyaWJ1dGVkCisgICAgICAgIGFuZCBhdHRyaWJ1
dGVkIGNsaWNrcyBpbiBQQ00uIFRoaXMgcGF0Y2ggbWFrZXMgc3VyZSB3ZSB0YWtlIHRob3NlIElE
cworICAgICAgICBpbnRvIGNvbnNpZGVyYXRpb24gaW4gUENNOjpEYXRhYmFzZTo6YXR0cmlidXRl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS4KKworICAgICAgICBBIGxvdCBvZiB0aGUgV2ViS2l0
IHBhcnQgaXM6CisgICAgICAgIC0gUGlwaW5nIHRocm91Z2ggYXBwIGJ1bmRsZSBJRHMgZnJvbSB0
aGUgbmV0d29yayBzZXNzaW9uIHRvIHRoZSBQQ00KKyAgICAgICAgICAgIGRhdGFiYXNlIHdoZXJl
IHRoZSBJRCB3aWxsIGJlIG1hdGNoZWQgYWdhaW5zdCBzdG9yZWQgYXBwIGJ1bmRsZSBJRHMuCisg
ICAgICAgIC0gUGlwaW5nIHRocm91Z2ggdGVzdCBjb25maWd1cmF0aW9uIGZvciBhcHAgYnVuZGxl
IElELgorCisgICAgICAgIFRoZSByZWFsIGNoYW5nZSBpcyBpbiBQQ006OkRhdGFiYXNlIHdoaWNo
IGlzIGV4cGxhaW5lZCBiZWxvdy4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWwKKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0
aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Nlc3Npb246OmhhbmRsZVByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbik6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UENNOjpEYXRhYmFzZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAg
ICAgIE5vdyB0YWtlcyBhbiBhcHAgYnVuZGxlIElEIHN1cHBsaWVkIGZyb20gdGhlIG5ldHdvcmsg
c2Vzc2lvbiBhbmQKKyAgICAgICAgICAgIGluY2x1ZGVzIGl0IGluIHRoZSBkYXRhYmFzZSBxdWVy
eSB0byBmaW5kIG1hdGNoaW5nIGVudHJpZXMuIElmIGFuZAorICAgICAgICAgICAgYXR0cmlidXRp
b24gd2FzIHNhdmVkIHdpdGggYXBwIGJ1bmRsZSBJRCBYWVosIGl0IHNob3VsZCBvbmx5IGJlCisg
ICAgICAgICAgICBiZSBjb252ZXJ0ZWQgaW4gYW4gYXBwbGljYXRpb24gd2l0aCBhcHAgYnVuZGxl
IElEIFhZWi4KKyAgICAgICAgKFdlYktpdDo6UENNOjpEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjYWxscyBQQ006
OkRhdGFiYXNlOjpmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQorICAgICAgICAgICAgd2hp
Y2ggbmVlZHMgdGhlIGFwcCBidW5kbGUgSUQgc28gdGhhdCBJRCBpcyBmb3J3YXJkZWQgdGhyb3Vn
aC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpEYXRhYmFzZTo6cmVtb3ZlVW5hdHRyaWJ1dGVkKToK
KyAgICAgICAgICAgIEFsc28gbmVlZHMgdG8gdGFrZSB0aGUgYXBwIGJ1bmRsZSBJRCBpbnRvIGNv
bnNpZGVyYXRpb24uCisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OmNsZWFyU2VudEF0
dHJpYnV0aW9uKToKKyAgICAgICAgICAgIEFsc28gbmVlZHMgdG8gdGFrZSB0aGUgYXBwIGJ1bmRs
ZSBJRCBpbnRvIGNvbnNpZGVyYXRpb24uCisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6
Om1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgICAgIEFsc28gbmVlZHMg
dG8gdGFrZSB0aGUgYXBwIGJ1bmRsZSBJRCBpbnRvIGNvbnNpZGVyYXRpb24uCisgICAgICAgIChX
ZWJLaXQ6OlBDTTo6RGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZSk6CisgICAgICAg
ICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0
aW9uLgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjplYXJsaWVzdFRpbWVzVG9TZW5k
KToKKyAgICAgICAgICAgIEFsc28gbmVlZHMgdG8gdGFrZSB0aGUgYXBwIGJ1bmRsZSBJRCBpbnRv
IGNvbnNpZGVyYXRpb24uCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6c3RvcmVVbmF0dHJpYnV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRsZUF0dHJpYnV0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6YXR0cmlidXRlKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhcik6CisgICAgICAgICAgICBDbGVhcnMgdGhl
IHRlc3Qgc2V0dGluZyBmb3IgYXBwIGJ1bmRsZSBJRC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpQQ006Om1lc3NhZ2VUeXBlU2VuZHNSZXBseSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6ZGVj
b2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVy
ZmFjZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UENNOjpNYW5hZ2VyUHJveHk6OmhhbmRsZUF0dHJpYnV0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6UENNOjpNYW5hZ2VyUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxl
SURGb3JUZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006OlN0b3JlOjphdHRyaWJ1dGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyk6CisgICAgICAgIChXS1BhZ2VTZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFByaXZh
dGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVy
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMjEt
MDktMjkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEg
ZGVmYXVsdCByZXR1cm4gdmFsdWUgaW4gY29udmVydFRvRXhjZXB0aW9uQ29kZQpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlz
aW9uIDI4MzI4MCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjg2LDYgKzI2ODYsMTQgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0UENNRnJhdWRQcmV2ZW50aQogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVu
ZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nJiYgYXBwQnVu
ZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9u
SUQpKQorICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZyhXVEZNb3ZlKGFwcEJ1bmRsZUlERm9yVGVzdGluZykpOworCisgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWRkS2VwdEFsaXZl
TG9hZChSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPiYmIGxvYWRlcikKIHsKICAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKGxvYWRlci0+c2Vzc2lvbklEKCkpKQpJbmRleDog
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkocmV2aXNp
b24gMjgzMjgwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTAsNiArMzUwLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklELCBVUkwmJiBzb3VyY2VVUkwsIFVSTCYmIGRlc3RpbmF0aW9uVVJMLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01l
YXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4sIFN0cmlu
ZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIGFwcEJ1
bmRsZUlERm9yVGVzdGluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIFJl
ZlB0cjxXZWJDb3JlOjpTdG9yYWdlUXVvdGFNYW5hZ2VyPiBzdG9yYWdlUXVvdGFNYW5hZ2VyKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKIApJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCShyZXZpc2lvbiAyODMyODApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsNiAr
MTcxLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZQogICAgIFNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBzb3VyY2VVUkwsIFVSTCBkZXN0aW5hdGlvblVS
TCkgLT4gKCkgQXN5bmMKICAgICBNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVk
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgU2V0
UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFN0cmluZyBzZWNyZXRUb2tlbiwgU3RyaW5nIHVubGlua2FibGVUb2tlbiwgU3RyaW5nIHNp
Z25hdHVyZSwgU3RyaW5nIGtleUlEKSAtPiAoKSBBc3luYworICAgIFNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
U3RyaW5nIGFwcEJ1bmRsZUlERm9yVGVzdGluZykgLT4gKCkgQXN5bmMKICAgICBHZXRMb2NhbFN0
b3JhZ2VPcmlnaW5EZXRhaWxzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxX
ZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6T3JpZ2luRGV0YWlscz4gZGV0YWls
cykgQXN5bmMKIAogICAgIFNldFNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKFNl
Y29uZHMgc2Vjb25kcykgLT4gKCkgU3luY2hyb25vdXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCShyZXZpc2lvbiAyODMyODApCisr
KyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsOCArNDQsMTAgQEAKICNpbmNsdWRlICJXZWJTb2NrZXRUYXNrLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+
CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJEZWZhdWx0V2ViQnJvd3NlckNoZWNr
cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ29jb2EuaCIKICNlbmRpZgogI2lmIFVTRShT
T1VQKQpAQCAtMzIzLDcgKzMyNSwxMiBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzdG9yZVByaXZh
dGVDbGlja01lCiAKIHZvaWQgTmV0d29ya1Nlc3Npb246OmhhbmRsZVByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29udmVyc2lvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25Ucmln
Z2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpCiB7Ci0gICAg
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5oYW5kbGVBdHRyaWJ1dGlvbihXVEZNb3ZlKGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEpLCByZXF1ZXN0VVJMLCBSZWdpc3RyYWJsZURvbWFpbihyZWRpcmVj
dFJlcXVlc3QudXJsKCkpLCByZWRpcmVjdFJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSk7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYXV0byBhcHBCdW5kbGVJRCA9IFdlYkNvcmU6OmFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpOworI2Vsc2UKKyAgICBhdXRvIGFwcEJ1bmRsZUlE
ID0gU3RyaW5nKCk7CisjZW5kaWYKKyAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLmhhbmRs
ZUF0dHJpYnV0aW9uKFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIHJlcXVlc3RVUkws
IFJlZ2lzdHJhYmxlRG9tYWluKHJlZGlyZWN0UmVxdWVzdC51cmwoKSksIHJlZGlyZWN0UmVxdWVz
dC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBhcHBCdW5kbGVJRCk7CiB9CiAKIHZvaWQgTmV0d29y
a1Nlc3Npb246OmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0zOTIsNiArMzk5LDE0IEBAIHZv
aWQgTmV0d29ya1Nlc3Npb246OmFsbG93VExTQ2VydGlmaWNhdGUKICAgICBwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCgpLmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhj
ZXJ0aWZpY2F0ZUluZm8pOwogfQogCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhTdHJpbmcmJiBhcHBCdW5kbGVJREZv
clRlc3RpbmcpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUkVMRUFTRV9BU1NFUlQoaXNS
dW5uaW5nVGVzdChXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSkpOworI2Vu
ZGlmCisgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXVEZNb3ZlKGFwcEJ1bmRsZUlERm9yVGVzdGluZykp
OworfQorCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjphZGRLZXB0QWxpdmVMb2FkKFJlZjxOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI+JiYgbG9hZGVyKQogewogICAgIEFTU0VSVChtX3Nlc3Npb25JRCA9PSBs
b2FkZXItPnNlc3Npb25JRCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmgJKHJldmlzaW9uIDI4MzI4MCkKKysrIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDYg
KzE0MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0Zv
clRlc3RpbmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwg
U3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCk7CiAgICAgdm9pZCBmaXJlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpOwogICAgIHZvaWQg
YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbyYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
cHBCdW5kbGVJREZvclRlc3RpbmcoU3RyaW5nJiYpOwogCiAgICAgdm9pZCBhZGRLZXB0QWxpdmVM
b2FkKFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+JiYpOwogICAgIHZvaWQgcmVtb3ZlS2VwdEFs
aXZlTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkZXImKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNl
LmNwcAkocmV2aXNpb24gMjgzMjgwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTggKzQzLDE4IEBAIGNvbnN0ZXhwciBhdXRvIGluc2Vy
dFVuYXR0cmlidXRlZFByaXZhdGUKICAgICAic291cmNlSUQsIHRpbWVPZkFkQ2xpY2ssIHRva2Vu
LCBzaWduYXR1cmUsIGtleUlELCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKSBWQUxVRVMgKD8s
ID8sID8sID8sID8sID8sID8sID8pIl9zOwogY29uc3RleHByIGF1dG8gaW5zZXJ0QXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnkgPSAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyBB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKHNvdXJjZVNpdGVEb21haW5JRCwgZGVz
dGluYXRpb25TaXRlRG9tYWluSUQsICIKICAgICAic291cmNlSUQsIGF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEsIHByaW9yaXR5LCB0aW1lT2ZBZENsaWNrLCBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJj
ZSwgdG9rZW4sIHNpZ25hdHVyZSwga2V5SUQsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRp
b24sIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpIFZBTFVFUyAoPywgPywgPywgPywgPywgPywg
PywgPywgPywgPywgPywgPykiX3M7Ci1jb25zdGV4cHIgYXV0byBmaW5kVW5hdHRyaWJ1dGVkUXVl
cnkgPSAiU0VMRUNUICogRlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBX
SEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9
ID8iX3M7Ci1jb25zdGV4cHIgYXV0byBmaW5kQXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAqIEZS
T00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21h
aW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBh
dXRvIHJlbW92ZVVuYXR0cmlidXRlZFF1ZXJ5ID0gIkRFTEVURSBGUk9NIFVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRl
c3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIGZpbmRVbmF0dHJp
YnV0ZWRRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURv
bWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4
cHIgYXV0byBmaW5kQXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRl
c3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9
ID8iX3M7Citjb25zdGV4cHIgYXV0byByZW1vdmVVbmF0dHJpYnV0ZWRRdWVyeSA9ICJERUxFVEUg
RlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRl
RG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFw
cGxpY2F0aW9uQnVuZGxlSUQgPSA/Il9zOwogY29uc3RleHByIGF1dG8gYWxsQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnkgPSAiU0VMRUNUICosIE1JTihlYXJsaWVzdFRpbWVU
b1NlbmRUb1NvdXJjZSwgZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlvbikgYXMgbWluVmFs
ICIKICAgICAiRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgZWFy
bGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UgSVMgTk9UIE5VTEwgQU5EIGVhcmxpZXN0VGltZVRvU2Vu
ZFRvRGVzdGluYXRpb24gSVMgTk9UIE5VTEwgIgogICAgICJVTklPTiBBTEwgU0VMRUNUICosIGVh
cmxpZXN0VGltZVRvU2VuZFRvU291cmNlIGFzIG1pblZhbCBGUk9NIEF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBXSEVSRSBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIElT
IE5VTEwgIgogICAgICJVTklPTiBBTEwgU0VMRUNUICosIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVz
dGluYXRpb24gYXMgbWluVmFsIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
IFdIRVJFIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlIElTIE5VTEwgT1JERVIgQlkgbWluVmFs
Il9zOwogY29uc3RleHByIGF1dG8gYWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvbnNRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50Il9zOwogY29uc3RleHByIGF1dG8gY2xlYXJFeHBpcmVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRRdWVyeSA9ICJERUxFVEUgRlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCBXSEVSRSA/ID4gdGltZU9mQWRDbGljayJfczsKLWNvbnN0ZXhwciBhdXRv
IG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZVF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlID0gbnVsbCBX
SEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9
ID8iX3M7Ci1jb25zdGV4cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvblF1ZXJ5
ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVhcmxpZXN0
VGltZVRvU2VuZFRvRGVzdGluYXRpb24gPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9
ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIGVh
cmxpZXN0VGltZXNUb1NlbmRRdWVyeSA9ICJTRUxFQ1QgZWFybGllc3RUaW1lVG9TZW5kVG9Tb3Vy
Y2UsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gRlJPTSBBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGlu
YXRpb25TaXRlRG9tYWluSUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gbWFya1JlcG9ydEFzU2Vu
dFRvU291cmNlUXVlcnkgPSAiVVBEQVRFIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCBTRVQgZWFybGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UgPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVE
b21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBw
bGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50
VG9EZXN0aW5hdGlvblF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gPSBudWxsIFdIRVJFIHNv
dXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQg
c291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBlYXJsaWVz
dFRpbWVzVG9TZW5kUXVlcnkgPSAiU0VMRUNUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlLCBl
YXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9u
U2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7CiBj
b25zdGV4cHIgYXV0byBkb21haW5JREZyb21TdHJpbmdRdWVyeSA9ICJTRUxFQ1QgZG9tYWluSUQg
RlJPTSBQQ01PYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwog
Y29uc3RleHByIGF1dG8gZG9tYWluU3RyaW5nRnJvbURvbWFpbklEUXVlcnkgPSAiU0VMRUNUIHJl
Z2lzdHJhYmxlRG9tYWluIEZST00gUENNT2JzZXJ2ZWREb21haW5zIFdIRVJFIGRvbWFpbklEID0g
PyJfczsKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50ID0gIkNSRUFURSBUQUJMRSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCAoIgpAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgRGF0YWJhc2U6Om1hcmtBbGxVbmF0dHJpYnV0
ZWRQcml2YXQKICAgICB9CiB9CiAKLXN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPERhdGFiYXNlOjpV
bmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4sIHN0ZDo6b3B0aW9uYWw8RGF0YWJh
c2U6OkF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IERhdGFiYXNlOjpmaW5kUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlKQor
c3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Piwgc3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6QXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50Pj4gRGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChj
b25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNl
U2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9u
RGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogewogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogICAgIGF1dG8gc291cmNlU2l0ZURvbWFpbklEID0gZG9tYWlu
SUQoc291cmNlU2l0ZS5yZWdpc3RyYWJsZURvbWFpbik7CkBAIC0yNDgsNyArMjQ4LDggQEAgc3Rk
OjpwYWlyPHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cgogICAgIGF1dG8gZmluZFVuYXR0
cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX2ZpbmRVbmF0
dHJpYnV0ZWRTdGF0ZW1lbnQsIGZpbmRVbmF0dHJpYnV0ZWRRdWVyeSwgImZpbmRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCJfcyk7CiAgICAgaWYgKCFmaW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVt
ZW50CiAgICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQo
MSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IGZpbmRVbmF0
dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFp
bklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgfHwgZmluZFVuYXR0cmlidXRlZFNjb3BlZFN0
YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9P
SworICAgICAgICB8fCBmaW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgz
LCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpICE9IFNRTElURV9PSykgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIiVwIC0gRGF0YWJhc2U6
OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBmaW5kVW5hdHRyaWJ1dGVkUXVlcnksIGVycm9y
IG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTI1Niw3
ICsyNTcsOCBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6VW5hdHRyCiAgICAg
YXV0byBmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVu
dChtX2ZpbmRBdHRyaWJ1dGVkU3RhdGVtZW50LCBmaW5kQXR0cmlidXRlZFF1ZXJ5LCAiZmluZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Il9zKTsKICAgICBpZiAoIWZpbmRBdHRyaWJ1dGVkU2NvcGVk
U3RhdGVtZW50CiAgICAgICAgIHx8IGZpbmRBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5k
SW50KDEsICpzb3VyY2VTaXRlRG9tYWluSUQpICE9IFNRTElURV9PSwotICAgICAgICB8fCBmaW5k
QXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9t
YWluSUQpICE9IFNRTElURV9PSykgeworICAgICAgICB8fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0
YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9P
SworICAgICAgICB8fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywg
YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICIlcCAtIERhdGFiYXNlOjpm
aW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgZmluZEF0dHJpYnV0ZWRRdWVyeSwgZXJyb3IgbWVz
c2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtMjcyLDcgKzI3
NCw3IEBAIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPERhdGFiYXNlOjpVbmF0dHIKICAgICByZXR1
cm4gc3RkOjptYWtlX3BhaXIodW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIGF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk7CiB9CiAKLXN0ZDo6cGFpcjxzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29u
ZHNVbnRpbFNlbmREYXRhPiwgRGVidWdJbmZvPiBEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEpCitzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4sIERl
YnVnSW5mbz4gRGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRl
LCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0
aW5hdGlvblNpdGUmIGRlc3RpbmF0aW9uU2l0ZSwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMjkxLDcgKzI5
Myw3IEBAIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGUKIAogICAgIFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNl
bmREYXRhIHNlY29uZHNVbnRpbFNlbmQgeyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9Owog
Ci0gICAgYXV0byBhdHRyaWJ1dGlvbiA9IGZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3Vy
Y2VTaXRlLCBkZXN0aW5hdGlvblNpdGUpOworICAgIGF1dG8gYXR0cmlidXRpb24gPSBmaW5kUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBhcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIpOwogICAgIGF1dG8mIHByZXZpb3VzbHlVbmF0dHJpYnV0ZWQg
PSBhdHRyaWJ1dGlvbi5maXJzdDsKICAgICBhdXRvJiBwcmV2aW91c2x5QXR0cmlidXRlZCA9IGF0
dHJpYnV0aW9uLnNlY29uZDsKIApAQCAtMzUwLDYgKzM1Miw3IEBAIHZvaWQgRGF0YWJhc2U6OnJl
bW92ZVVuYXR0cmlidXRlZChXZWJDb3IKICAgICBpZiAoIXNjb3BlZFN0YXRlbWVudAogICAgICAg
ICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0g
U1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGlu
YXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1l
bnQtPmJpbmRUZXh0KDMsIGF0dHJpYnV0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQoKSkg
IT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElU
RV9ET05FKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCAiJXAgLSBEYXRhYmFzZTo6cmVtb3ZlVW5hdHRyaWJ1dGVkLCBlcnJvciBtZXNzYWdlOiAl
IiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTUyMiw2ICs1MjUsNyBAQCB2b2lkIERh
dGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbihXZWJDCiAKICAgICBhdXRvIHNvdXJjZVNpdGVE
b21haW5JRCA9IGRvbWFpbklEKGF0dHJpYnV0aW9uLnNvdXJjZVNpdGUoKS5yZWdpc3RyYWJsZURv
bWFpbik7CiAgICAgYXV0byBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9IGRvbWFpbklEKGF0dHJp
YnV0aW9uLmRlc3RpbmF0aW9uU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICBhdXRvIHNv
dXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQgPSBhdHRyaWJ1dGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlEKCk7CiAKICAgICBpZiAoIXNvdXJjZVNpdGVEb21haW5JRCB8fCAhZGVzdGluYXRpb25T
aXRlRG9tYWluSUQpCiAgICAgICAgIHJldHVybjsKQEAgLTUzMiw3ICs1MzYsNyBAQCB2b2lkIERh
dGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbihXZWJDCiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBtYXJr
UmVwb3J0QXNTZW50VG9Tb3VyY2UoKnNvdXJjZVNpdGVEb21haW5JRCwgKmRlc3RpbmF0aW9uU2l0
ZURvbWFpbklEKTsKKyAgICAgICAgbWFya1JlcG9ydEFzU2VudFRvU291cmNlKCpzb3VyY2VTaXRl
RG9tYWluSUQsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCwgc291cmNlQXBwbGljYXRpb25CdW5k
bGVJRCk7CiAgICAgICAgIHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCA9IHN0ZDo6bnVsbG9wdDsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25SZXBvcnRFbmRwb2ludDo6RGVzdGluYXRpb246CkBAIC01NDAsNyArNTQ0
LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRpb24oV2ViQwogICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24oKnNvdXJjZVNpdGVEb21haW5J
RCwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKTsKKyAgICAgICAgbWFya1JlcG9ydEFzU2VudFRv
RGVzdGluYXRpb24oKnNvdXJjZVNpdGVEb21haW5JRCwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklE
LCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKTsKICAgICAgICAgZGVzdGluYXRpb25FYXJsaWVz
dFRpbWVUb1NlbmQgPSBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC01NDgsMTcgKzU1MiwxOCBA
QCB2b2lkIERhdGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbihXZWJDCiAgICAgaWYgKGRlc3Rp
bmF0aW9uRWFybGllc3RUaW1lVG9TZW5kIHx8IHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQgPSBtX2Rh
dGFiYXNlLnByZXBhcmVTdGF0ZW1lbnQoIkRFTEVURSBGUk9NIEF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlv
blNpdGVEb21haW5JRCA9ID8iX3MpOworICAgIGF1dG8gY2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50
ID0gbV9kYXRhYmFzZS5wcmVwYXJlU3RhdGVtZW50KCJERUxFVEUgRlJPTSBBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVz
dGluYXRpb25TaXRlRG9tYWluSUQgPSA/IEFORCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEID0g
PyJfcyk7CiAgICAgaWYgKCFjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgY2xl
YXJBdHRyaWJ1dGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3VyY2VTaXRlRG9tYWluSUQpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQtPmJpbmRJbnQo
MiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgY2xl
YXJBdHRyaWJ1dGVkU3RhdGVtZW50LT5iaW5kVGV4dCgzLCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgY2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50LT5z
dGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsICIlcCAtIERhdGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbiBm
YWlsZWQgdG8gc3RlcCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgfQogfQogCi12b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5h
dGlvbihTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWlu
SUQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQpCit2b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0QXNT
ZW50VG9EZXN0aW5hdGlvbihTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3Rp
bmF0aW9uRG9tYWluSUQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQsIGNvbnN0IEFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciYgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkKIHsKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBhdXRvIHNjb3BlZFN0YXRlbWVudCA9IHRoaXMt
PnNjb3BlZFN0YXRlbWVudChtX21hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uU3RhdGVtZW50
LCBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvblF1ZXJ5LCAibWFya1JlcG9ydEFzU2VudFRv
RGVzdGluYXRpb24iX3MpOwpAQCAtNTY2LDEzICs1NzEsMTQgQEAgdm9pZCBEYXRhYmFzZTo6bWFy
a1JlcG9ydEFzU2VudFRvRGVzdGluYQogICAgIGlmICghc2NvcGVkU3RhdGVtZW50CiAgICAgICAg
IHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCBzb3VyY2VTaXRlRG9tYWluSUQpICE9IFNR
TElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgZGVzdGluYXRp
b25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQt
PmJpbmRUZXh0KDMsIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpICE9IFNRTElURV9PSwogICAg
ICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkRhdGFiYXNlOjpt
YXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbiwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xP
R19TVFJJTkcsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CiB9CiAKLXZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRU
b1NvdXJjZShTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9t
YWluSUQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQpCit2b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0
QXNTZW50VG9Tb3VyY2UoU291cmNlRG9tYWluSUQgc291cmNlU2l0ZURvbWFpbklELCBEZXN0aW5h
dGlvbkRvbWFpbklEIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklELCBjb25zdCBBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXImIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpCiB7CiAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5z
Y29wZWRTdGF0ZW1lbnQobV9tYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2VTdGF0ZW1lbnQsIG1hcmtS
ZXBvcnRBc1NlbnRUb1NvdXJjZVF1ZXJ5LCAibWFya1JlcG9ydEFzU2VudFRvU291cmNlIl9zKTsK
QEAgLTU4MCw2ICs1ODYsNyBAQCB2b2lkIERhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9Tb3Vy
Y2UoCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50
LT5iaW5kSW50KDEsIHNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8
IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0g
U1FMSVRFX09LCisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgc291cmNl
QXBwbGljYXRpb25CdW5kbGVJRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRl
bWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1Nv
dXJjZSwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTYwMCw2ICs2
MDcsNyBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6U291cmNlCiAgICAgaWYg
KCFzY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEs
ICpzb3VyY2VTaXRlRG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0
ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sK
KyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgzLCBhdHRyaWJ1dGlvbi5zb3Vy
Y2VBcHBsaWNhdGlvbkJ1bmRsZUlEKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRT
dGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiRGF0YWJhc2U6OmVhcmxpZXN0VGltZXNUb1Nl
bmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
RGF0YWJhc2UuaAkocmV2aXNpb24gMjgzMjgwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFi
YXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDEwICs0MiwxMiBAQCBwdWJsaWM6CiAgICAgRGF0
YWJhc2UoY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KTsKICAgICB2aXJ0dWFsIH5EYXRh
YmFzZSgpOwogICAgIAorICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0
cmluZzsKKwogICAgIHN0YXRpYyB2b2lkIGludGVycnVwdEFsbERhdGFiYXNlcygpOwogCiAgICAg
dm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSk7Ci0g
ICAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+IGF0dHJpYnV0
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CisgICAgc3RkOjpwYWlyPHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vj
b25kc1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+IGF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1
cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRl
JiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVz
dGluYXRpb25TaXRlJiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiwgV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CiAg
ICAgVmVjdG9yPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBhbGxBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4pOwogICAg
IHZvaWQgY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKQEAgLTY2LDExICs2
OCwxMSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjcmVhdGVTY2hlbWEoKSBmaW5hbDsKICAgICB2
b2lkIGRlc3Ryb3lTdGF0ZW1lbnRzKCkgZmluYWw7Ci0gICAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9u
YWw8VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdGlvbmFsPEF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IGZpbmRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYs
IGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3Rp
bmF0aW9uU2l0ZSYpOworICAgIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Piwgc3RkOjpvcHRpb25hbDxBdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ+PiBmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBjb25z
dCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsKICAgICB2b2lkIHJlbW92ZVVuYXR0cmli
dXRlZChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwogICAgIFN0cmluZyBhdHRy
aWJ1dGlvblRvU3RyaW5nRm9yVGVzdGluZyhjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYpIGNvbnN0OwotICAgIHZvaWQgbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24o
U291cmNlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWluSUQpOwotICAgIHZvaWQgbWFya1JlcG9y
dEFzU2VudFRvU291cmNlKFNvdXJjZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFpbklEKTsKKyAg
ICB2b2lkIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKFNvdXJjZURvbWFpbklELCBEZXN0
aW5hdGlvbkRvbWFpbklELCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsKKyAg
ICB2b2lkIG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZShTb3VyY2VEb21haW5JRCwgRGVzdGluYXRp
b25Eb21haW5JRCwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJik7CiAgICAgc3Rk
OjpwYWlyPHN0ZDo6b3B0aW9uYWw8U291cmNlRWFybGllc3RUaW1lVG9TZW5kPiwgc3RkOjpvcHRp
b25hbDxEZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2VuZD4+IGVhcmxpZXN0VGltZXNUb1NlbmQo
Y29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKICAgICBzdGQ6Om9wdGlv
bmFsPERvbWFpbklEPiBlbnN1cmVEb21haW5JRChjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYpOwogICAgIHN0ZDo6b3B0aW9uYWw8RG9tYWluSUQ+IGRvbWFpbklEKGNvbnN0IFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCShyZXZp
c2lvbiAyODMyODApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc3LDYgKzc3LDkgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OnN0bwogCiAgICAgY2xlYXJFeHBpcmVkKCk7CiAKKyAgICBpZiAobV9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZykKKyAgICAgICAgbWVhc3VyZW1lbnQuc2V0
U291cmNlQXBwbGljYXRpb25CdW5kbGVJREZvclRlc3RpbmcoKm1fcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOworCiAgICAgaWYgKG1lYXN1cmVtZW50LmVwaGVt
ZXJhbFNvdXJjZU5vbmNlKCkpIHsKICAgICAgICAgYXV0byBtZWFzdXJlbWVudENvcHkgPSBtZWFz
dXJlbWVudDsKICAgICAgICAgLy8gVGhpcyBpcyBndWFyYW50ZWVkIHRvIGJlIGNsb3NlIGluIHRp
bWUgdG8gdGhlIG5hdmlnYXRpb25hbCBjbGljayB3aGljaCBtYWtlcyBpdCBsaWtlbHkgdG8gYmUg
cGVyc29uYWxseSBpZGVudGlmaWFibGUuCkBAIC0yMzAsNyArMjMzLDcgQEAgdm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6Om1pZwogICAgIHN0b3JlKCkuaW5zZXJ0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoV1RGTW92ZShtZWFzdXJlbWVudCksIHR5cGUpOwogfQogCi12b2lkIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRp
b25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVz
dFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5VVJMKQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OmhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRy
aWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwgY29uc3QgQXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCiB7
CiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0yNDcsNyAr
MjUwLDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbgogCiAgICAg
bV9jbGllbnQtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1By
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFRyaWdnZXJpbmcgZXZlbnQgYWNjZXB0ZWQuIl9zKTsK
IAotICAgIGF0dHJpYnV0ZShTb3VyY2VTaXRlIHsgV1RGTW92ZShyZWRpcmVjdERvbWFpbikgfSwg
QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUgeyBmaXJzdFBhcnR5VVJMIH0sIFdURk1vdmUoYXR0
cmlidXRpb25UcmlnZ2VyRGF0YSkpOworICAgIGF0dHJpYnV0ZShTb3VyY2VTaXRlIHsgV1RGTW92
ZShyZWRpcmVjdERvbWFpbikgfSwgQXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUgeyBmaXJzdFBh
cnR5VVJMIH0sIFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIG1fcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcgPyAqbV9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA6IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7
CiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdGFydFRpbWVySW1t
ZWRpYXRlbHlGb3JUZXN0aW5nKCkKQEAgLTI1NSwxMiArMjU4LDIwIEBAIHZvaWQgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdGEKICAgICBzdGFydFRpbWVyKDBfcyk7CiB9CiAKK3Zv
aWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImJiBh
cHBCdW5kbGVJRCkKK3sKKyAgICBpZiAoYXBwQnVuZGxlSUQuaXNFbXB0eSgpKQorICAgICAgICBt
X3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nID0gc3RkOjpudWxs
b3B0OworICAgIGVsc2UKKyAgICAgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZyA9IFdURk1vdmUoYXBwQnVuZGxlSUQpOworfQorCiB2b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RhcnRUaW1lcihTZWNvbmRzIHNlY29uZHMpCiB7CiAg
ICAgbV9maXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVxdWVzdHNUaW1lci5zdGFydE9uZVNob3QobV9p
c1J1bm5pbmdUZXN0ID8gMF9zIDogc2Vjb25kcyk7CiB9CiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyOjphdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSwg
Y29uc3QgQXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmIGRlc3RpbmF0aW9uU2l0ZSwgQXR0cmli
dXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpCit2b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6YXR0cmlidXRlKGNvbnN0IFNvdXJjZVNpdGUmIHNvdXJj
ZVNpdGUsIGNvbnN0IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUs
IEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBjb25zdCBB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikK
IHsKICAgICBpZiAoIWZlYXR1cmVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI3Myw3
ICsyODQsNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YXR0CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBzdG9yZSgpLmF0dHJpYnV0ZVBy
aXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUsIGRlc3RpbmF0aW9uU2l0ZSwgV1RGTW92
ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgc3RkOjpleGNoYW5nZShtX2VwaGVtZXJhbE1lYXN1
cmVtZW50LCBzdGQ6Om51bGxvcHQpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyldIChhdXRvIGF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGEsIGF1dG8gZGVidWdJbmZv
KSB7CisgICAgc3RvcmUoKS5hdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3VyY2VT
aXRlLCBkZXN0aW5hdGlvblNpdGUsIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciwgV1RGTW92
ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgc3RkOjpleGNoYW5nZShtX2VwaGVtZXJhbE1lYXN1
cmVtZW50LCBzdGQ6Om51bGxvcHQpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyldIChhdXRvIGF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGEsIGF1dG8gZGVidWdJbmZv
KSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IApAQCAtNDM2LDYgKzQ0Nyw3IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpjbGUKICAgICBtX2ZpcmVQZW5kaW5nQXR0cmlidXRpb25SZXF1ZXN0c1RpbWVyLnN0b3AoKTsK
ICAgICBtX2VwaGVtZXJhbE1lYXN1cmVtZW50ID0gc3RkOjpudWxsb3B0OwogICAgIG1faXNSdW5u
aW5nRXBoZW1lcmFsTWVhc3VyZW1lbnRUZXN0ID0gZmFsc2U7CisgICAgbV9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA9IHN0ZDo6bnVsbG9wdDsKIAogICAgIGlm
ICghZmVhdHVyZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgJKHJldmlzaW9uIDI4MzI4MCkKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDggKzQ1LDEwIEBAIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoVW5pcXVlUmVm
PFBDTTo6Q2xpZW50PiYmLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIH5Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoKTsKIAorICAgIHVzaW5nIEFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKKwogICAgIHZvaWQgc3RvcmVVbmF0dHJpYnV0ZWQo
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJikgZmluYWw7Ci0gICAgdm9pZCBoYW5kbGVBdHRyaWJ1
dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5VVJMKSBmaW5hbDsKKyAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEmJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYmIHJlZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwsIGNvbnN0
IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXIoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyRm9yUmVnaXN0
cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgbWlncmF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50
RnJvbUxlZ2FjeVN0b3JhZ2UoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpIGZpbmFsOwpAQCAtNjEsNiArNjMsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3RpbmcoYm9vbCB2YWx1
ZSkgZmluYWwgeyBtX2lzUnVubmluZ0VwaGVtZXJhbE1lYXN1cmVtZW50VGVzdCA9IHZhbHVlOyB9
CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYm
IHVubGlua2FibGVUb2tlbiwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVy
ZSwgU3RyaW5nJiYga2V5SUQpIGZpbmFsOwogICAgIHZvaWQgc3RhcnRUaW1lckltbWVkaWF0ZWx5
Rm9yVGVzdGluZygpIGZpbmFsOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
cHBCdW5kbGVJREZvclRlc3RpbmcoQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiYpOwogICAg
IHZvaWQgZGVzdHJveVN0b3JlRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
IGZpbmFsOwogICAgIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0
aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpIGZpbmFsOwogCkBAIC03Miw3ICs3
NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQmJik7CiAgICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uVHlwZSk7CiAgICAgdm9pZCBjbGVhclNlbnRBdHRyaWJ1dGlvbihQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25SZXBv
cnRFbmRwb2ludCk7Ci0gICAgdm9pZCBhdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYsIGNvbnN0
IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKTsK
KyAgICB2b2lkIGF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmlidXRpb25E
ZXN0aW5hdGlvblNpdGUmLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciYpOwogICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNv
bnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50JiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQpOwogICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0
SW1wbChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYsIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50KTsKICAgICB2b2lkIGZpcmVQZW5kaW5nQXR0
cmlidXRpb25SZXF1ZXN0cygpOwpAQCAtODYsNiArODksNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9pc1J1bm5pbmdFcGhlbWVyYWxNZWFzdXJlbWVudFRlc3QgeyBmYWxzZSB9OwogICAgIHN0ZDo6
b3B0aW9uYWw8VVJMPiBtX3Rva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZzsKICAgICBzdGQ6Om9w
dGlvbmFsPFVSTD4gbV90b2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc7CisgICAgc3RkOjpvcHRp
b25hbDxBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI+IG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3Rpbmc7CiAgICAgbXV0YWJsZSBSZWZQdHI8UENNOjpTdG9yZT4g
bV9zdG9yZTsKICAgICBTdHJpbmcgbV9zdG9yYWdlRGlyZWN0b3J5OwogICAgIFVuaXF1ZVJlZjxQ
Q006OkNsaWVudD4gbV9jbGllbnQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcklu
dGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRl
cmZhY2UuY3BwCShyZXZpc2lvbiAyODMyODApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ckludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgQVJHVU1FTlRT
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZQogRU5ECiAKIEZVTkNUSU9OKGhhbmRsZUF0
dHJpYnV0aW9uKQotQVJHVU1FTlRTKFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6QXR0
cmlidXRpb25UcmlnZ2VyRGF0YSwgVVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgVVJM
KQorQVJHVU1FTlRTKFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6QXR0cmlidXRpb25U
cmlnZ2VyRGF0YSwgVVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgVVJMLCBTdHJpbmcp
CiBFTkQKIAogRlVOQ1RJT04oY2xlYXIpCkBAIC0xMTAsNiArMTEwLDEwIEBAIEZVTkNUSU9OKHN0
YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcKIEFSR1VNRU5UUygpCiBFTkQKIAorRlVOQ1RJ
T04oc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpCitBUkdV
TUVOVFMoU3RyaW5nKQorRU5ECisKIEZVTkNUSU9OKGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcpCiBB
UkdVTUVOVFMoKQogUkVQTFkoKQpAQCAtMTU0LDYgKzE1OCw3IEBAIGJvb2wgbWVzc2FnZVR5cGVT
ZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG0KICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTZXRFcGhlbWVy
YWxNZWFzdXJlbWVudEZvclRlc3Rpbmc6CiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6U2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZzoKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTdGFy
dFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nOgorICAgIGNhc2UgTWVzc2FnZVR5cGU6OlNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOgogICAgIGNhc2UgTWVz
c2FnZVR5cGU6OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZzoKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGNhc2UgTWVzc2FnZVR5cGU6Ok1hcmtBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZzoKQEAgLTI2NCw2ICsy
NjksOSBAQCB2b2lkIGRlY29kZU1lc3NhZ2VBbmRTZW5kVG9NYW5hZ2VyKE1lc3NhCiAgICAgY2Fz
ZSBQQ006Ok1lc3NhZ2VUeXBlOjpTdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nOgogICAg
ICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzdGFydFRpbWVySW1tZWRpYXRlbHlG
b3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CiAgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5k
bGVJREZvclRlc3Rpbmc6CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nPihXVEZNb3ZlKGVu
Y29kZWRNZXNzYWdlKSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlw
ZTo6RGVzdHJveVN0b3JlRm9yVGVzdGluZzoKICAgICAgICAgaGFuZGxlUENNTWVzc2FnZVdpdGhS
ZXBseTxNZXNzYWdlSW5mbzo6ZGVzdHJveVN0b3JlRm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVk
TWVzc2FnZSksIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgJKHJldmlzaW9uIDI4MzI4MCkKKysrIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUw
LDkgKzUwLDEwIEBAIHB1YmxpYzoKICAgICB1c2luZyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OwogICAgIHVzaW5nIFJlZ2lzdHJhYmxl
RG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgU291cmNlU2l0
ZSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlOworICAgIHVz
aW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKIAogICAgIHZpcnR1YWwg
dm9pZCBzdG9yZVVuYXR0cmlidXRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEm
JiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJl
ZGlyZWN0RG9tYWluLCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBV
UkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21h
aW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb3JSZWdpc3RyYWJsZURvbWFp
bihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBtaWdyYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9t
TGVnYWN5U3RvcmFnZShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEF0dHJpYnV0aW9uVHlwZSkgPSAwOwpAQCAtNjcsNiArNjgsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyhib29sKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rp
bmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5n
JiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdGFy
dFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXImJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U3RvcmVGb3JU
ZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJikgPSAwOwogfTsKQEAgLTkxLDYgKzkzLDcgQEAgZW51bSBjbGFz
cyBNZXNzYWdlVHlwZSA6IHVpbnQ4X3QgewogICAgIFNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9y
VGVzdGluZywKICAgICBTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nLAogICAg
IFN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcsCisgICAgU2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcsCiAgICAgRGVzdHJveVN0b3JlRm9yVGVzdGlu
ZywKICAgICBBbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcKIH07CkBA
IC0xMjcsNiArMTMwLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OlBD
TQogICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OlNldEVwaGVtZXJhbE1lYXN1cmVt
ZW50Rm9yVGVzdGluZywKICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQQ01G
cmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nLAogICAgICAgICBXZWJLaXQ6OlBDTTo6TWVz
c2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcsCisgICAgICAgIFdlYktp
dDo6UENNOjpNZXNzYWdlVHlwZTo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJ
REZvclRlc3RpbmcsCiAgICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6RGVzdHJveVN0
b3JlRm9yVGVzdGluZywKICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpBbGxvd1RM
U0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcKICAgICA+OwpJbmRleDogU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDI4MzI4MCkKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw5ICs4MCw5IEBA
IHZvaWQgTWFuYWdlclByb3h5OjpzdG9yZVVuYXR0cmlidXRlZChXZWIKICAgICBzZW5kTWVzc2Fn
ZTxNZXNzYWdlVHlwZTo6U3RvcmVVbmF0dHJpYnV0ZWQ+KHBjbSk7CiB9CiAKLXZvaWQgTWFuYWdl
clByb3h5OjpoYW5kbGVBdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIHRyaWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVl
c3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eVVSTCkKK3ZvaWQgTWFuYWdlclByb3h5OjpoYW5kbGVBdHRyaWJ1dGlv
bihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0
YSYmIHRyaWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwgY29u
c3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIpCiB7Ci0gICAgc2VuZE1lc3NhZ2U8TWVzc2FnZVR5cGU6OkhhbmRsZUF0dHJpYnV0aW9uPih0
cmlnZ2VyRGF0YSwgcmVxdWVzdFVSTCwgcmVkaXJlY3REb21haW4sIGZpcnN0UGFydHlVUkwpOwor
ICAgIHNlbmRNZXNzYWdlPE1lc3NhZ2VUeXBlOjpIYW5kbGVBdHRyaWJ1dGlvbj4odHJpZ2dlckRh
dGEsIHJlcXVlc3RVUkwsIHJlZGlyZWN0RG9tYWluLCBmaXJzdFBhcnR5VVJMLCBhcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXIpOwogfQogCiB2b2lkIE1hbmFnZXJQcm94eTo6Y2xlYXIoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTUwLDYgKzE1MCwx
MSBAQCB2b2lkIE1hbmFnZXJQcm94eTo6c3RhcnRUaW1lckltbWVkaWF0ZWx5CiAgICAgc2VuZE1l
c3NhZ2U8TWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3Rpbmc+KCk7CiB9
CiAKK3ZvaWQgTWFuYWdlclByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZyhBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImJiBhcHBCdW5kbGVJRCkK
K3sKKyAgICBzZW5kTWVzc2FnZTxNZXNzYWdlVHlwZTo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3Rpbmc+KGFwcEJ1bmRsZUlEKTsKK30KKwogdm9pZCBNYW5hZ2Vy
UHJveHk6OmRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHNlbmRNZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VU
eXBlOjpEZXN0cm95U3RvcmVGb3JUZXN0aW5nPihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAyODMyODApCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDgg
KzM5LDEwIEBAIGNsYXNzIE1hbmFnZXJQcm94eSA6IHB1YmxpYyBNYW5hZ2VySW50ZXIKIHB1Ymxp
YzoKICAgICBNYW5hZ2VyUHJveHkoY29uc3QgU3RyaW5nJiBtYWNoU2VydmljZU5hbWUpOwogCisg
ICAgdXNpbmcgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gU3RyaW5nOworCiAgICAgdm9p
ZCBzdG9yZVVuYXR0cmlidXRlZChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKSBm
aW5hbDsKLSAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVS
TCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5VVJMKSBmaW5hbDsKKyAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNv
bnN0IFVSTCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVj
dERvbWFpbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXImKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBjbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KSBmaW5hbDsKICAgICB2b2lkIG1pZ3JhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdh
Y3lTdG9yYWdlKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlKSBmaW5hbDsKQEAgLTU1LDYgKzU3LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0RXBoZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0aW5nKGJvb2wpIGZp
bmFsOwogICAgIHZvaWQgc2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJp
bmcmJiB1bmxpbmthYmxlVG9rZW4sIFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWdu
YXR1cmUsIFN0cmluZyYmIGtleUlEKSBmaW5hbDsKICAgICB2b2lkIHN0YXJ0VGltZXJJbW1lZGlh
dGVseUZvclRlc3RpbmcoKSBmaW5hbDsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYmKSBm
aW5hbDsKICAgICB2b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxv
Y2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKSBmaW5hbDsKIApJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50U3RvcmUuY3BwCShyZXZpc2lvbiAyODMyODApCisrKyBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50U3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSw5ICs5NSw5IEBAIHZvaWQgU3Rv
cmU6Om1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2wKICAgICB9KTsKIH0KIAotdm9pZCBTdG9y
ZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVz
dGluYXRpb25TaXRlLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgZXBoZW1lcmFsTWVhc3VyZW1lbnQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZv
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBjb25zdCBB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciwg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEm
JiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50PiYmIGVwaGVtZXJhbE1lYXN1cmVtZW50LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+JiYsIERlYnVnSW5mbyYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKLSAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7
ICp0aGlzIH0sIHNvdXJjZVNpdGUgPSBzb3VyY2VTaXRlLmlzb2xhdGVkQ29weSgpLCBkZXN0aW5h
dGlvblNpdGUgPSBkZXN0aW5hdGlvblNpdGUuaXNvbGF0ZWRDb3B5KCksIGF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEgPSBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBlcGhlbWVyYWxNZWFz
dXJlbWVudCA9IGNyb3NzVGhyZWFkQ29weShlcGhlbWVyYWxNZWFzdXJlbWVudCksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAg
IHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgc291cmNlU2l0
ZSA9IHNvdXJjZVNpdGUuaXNvbGF0ZWRDb3B5KCksIGRlc3RpbmF0aW9uU2l0ZSA9IGRlc3RpbmF0
aW9uU2l0ZS5pc29sYXRlZENvcHkoKSwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gYXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpLCBhdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgZXBoZW1lcmFsTWVhc3Vy
ZW1lbnQgPSBjcm9zc1RocmVhZENvcHkoZXBoZW1lcmFsTWVhc3VyZW1lbnQpLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKCFtX2RhdGFiYXNlKSB7CiAgICAgICAgICAgICByZXR1cm4gcG9zdFRhc2tSZXBseShb
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0LCB7IH0p
OwpAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgU3RvcmU6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01l
YXN1cmUKICAgICAgICAgICAgIG1fZGF0YWJhc2UtPmluc2VydFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KFdURk1vdmUoKmVwaGVtZXJhbE1lYXN1cmVtZW50KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblR5cGU6OlVuYXR0cmlidXRlZCk7CiAgICAgICAgIH0KIAotICAgICAgICBh
dXRvIFtzZWNvbmRzLCBkZWJ1Z0luZm9dID0gbV9kYXRhYmFzZS0+YXR0cmlidXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBXVEZNb3ZlKGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEpKTsKKyAgICAgICAgYXV0byBbc2Vjb25kcywgZGVidWdJbmZvXSA9
IG1fZGF0YWJhc2UtPmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUs
IGRlc3RpbmF0aW9uU2l0ZSwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEpKTsKIAogICAgICAgICBwb3N0VGFza1JlcGx5KFtzZWNvbmRz
ID0gV1RGTW92ZShzZWNvbmRzKSwgZGVidWdJbmZvID0gZGVidWdJbmZvLmlzb2xhdGVkQ29weSgp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFi
bGUgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZWNvbmRzKSwgV1RG
TW92ZShkZWJ1Z0luZm8pKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oCShyZXZpc2lvbiAyODMyODApCisr
KyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsMTEgKzQ3
LDEzIEBAIHB1YmxpYzoKIAogICAgIH5TdG9yZSgpOwogCisgICAgdXNpbmcgQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyID0gU3RyaW5nOworCiAgICAgc3RhdGljIHZvaWQgcHJlcGFyZUZvclBy
b2Nlc3NUb1N1c3BlbmQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICBzdGF0aWMg
dm9pZCBwcm9jZXNzRGlkUmVzdW1lKCk7CiAKICAgICB2b2lkIGluc2VydFByaXZhdGVDbGlja01l
YXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFdlYktpdDo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpOwotICAgIHZvaWQgYXR0cmlidXRl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIGVwaGVtZXJhbE1lYXN1cmVtZW50LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+JiYsIERlYnVnSW5mbyYmKT4m
Jik7CisgICAgdm9pZCBhdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYsIGNv
bnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgZXBoZW1lcmFsTWVhc3VyZW1lbnQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZvJiYp
PiYmKTsKIAogICAgIHZvaWQgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZ0ZvclRlc3Rp
bmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBjb25zdDsKICAgICB2b2lkIG1h
cmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3Rp
bmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2
aXNpb24gMjgzMjgwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTA1MTMsNiArMTA1MTMsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNldFBDTUZyYXVkUHJldmVudGlvbgogICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3Jr
UHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNl
dFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcobV93ZWJzaXRlRGF0YVN0b3JlLT5z
ZXNzaW9uSUQoKSwgdW5saW5rYWJsZVRva2VuLCBzZWNyZXRUb2tlbiwgc2lnbmF0dXJlLCBrZXlJ
RCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6
OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKGNvbnN0IFN0
cmluZyYgYXBwQnVuZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9j
ZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcobV93ZWJzaXRlRGF0YVN0
b3JlLT5zZXNzaW9uSUQoKSwgYXBwQnVuZGxlSURGb3JUZXN0aW5nKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworfQorCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAKIHZvaWQg
V2ViUGFnZVByb3h5OjpyZXNldFNwZWVjaFN5bnRoZXNpemVyKCkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyODMyODApCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTc3Miw2ICsx
NzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRy
aWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nKGNvbnN0IFVSTCYgc291cmNlVVJMLCBjb25zdCBV
UkwmIGRlc3RpbmF0aW9uVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZh
bHVlc0ZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiB1bmxpbmthYmxlVG9rZW4sIGNvbnN0IFN0cmlu
ZyYgc2VjcmV0VG9rZW4sIGNvbnN0IFN0cmluZyYgc2lnbmF0dXJlLCBjb25zdCBTdHJpbmcmIGtl
eUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBhcHBCdW5k
bGVJREZvclRlc3RpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICNpZiBFTkFC
TEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICB2b2lkIHNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdChD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJTcGVlY2hTeW50aGVzaXNWb2ljZT4mJik+
JiYpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCShyZXZp
c2lvbiAyODMyODApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMTM4LDYgKzMxMzgsMTQgQEAgdm9pZCBXS1BhZ2VTZXRQQ01G
cmF1ZFByZXZlbnRpb25WYWx1ZXNGbwogICAgIH0pOwogfQogCit2b2lkIFdLUGFnZVNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlUmVm
LCBXS1N0cmluZ1JlZiBhcHBCdW5kbGVJREZvclRlc3RpbmcsIFdLUGFnZVNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQq
IGNhbGxiYWNrQ29udGV4dCkKK3sKKyAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CisgICAgdG9JbXBs
KHBhZ2VSZWYpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGlu
Zyh0b1dURlN0cmluZyhhcHBCdW5kbGVJREZvclRlc3RpbmcpLCBbY2FsbGJhY2tDb250ZXh0LCBj
YWxsYmFja10gKCkgeworICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRleHQpOworICAgIH0p
OworfQorCiB2b2lkIFdLUGFnZVNldE1vY2tDYW1lcmFPcmllbnRhdGlvbihXS1BhZ2VSZWYgcGFn
ZVJlZiwgdWludDY0X3Qgb3JpZW50YXRpb24pCiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAko
cmV2aXNpb24gMjgzMjgwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIsNiArMTkyLDggQEAgdHlwZWRlZiB2b2lk
ICgqV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYQogV0tfRVhQT1JUIHZvaWQgV0tQYWdlTWFya1By
aXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2Us
IFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnVu
Y3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7CiB0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQq
IGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQQ01GcmF1ZFByZXZl
bnRpb25WYWx1ZXNGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzZWNyZXRU
b2tlbiwgV0tTdHJpbmdSZWYgdW5saW5rYWJsZVRva2VuLCBXS1N0cmluZ1JlZiBzaWduYXR1cmUs
IFdLU3RyaW5nUmVmIGtleUlELCBXS1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JU
ZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0eXBlZGVm
IHZvaWQgKCpXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tQ
YWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tQYWdl
UmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIGFwcEJ1bmRsZUlERm9yVGVzdGluZywgV0tQYWdlU2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmdGdW5jdGlvbiBjYWxs
YmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKIAogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0
TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdLUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBvcmllbnRhdGlv
bik7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
RW5hYmxlZChXS1BhZ2VSZWYgcGFnZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rpbmcu
aAkocmV2aXNpb24gMjgzMjgwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2ICsx
MDMsNyBAQCBzdHJ1Y3QgV0tBcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGEgewogLSAodm9pZClf
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5n
OihOU1VSTCAqKXNvdXJjZVVSTCBkZXN0aW5hdGlvblVSTDooTlNVUkwgKilkZXN0aW5hdGlvblVS
TCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAodm9pZClfc2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZzoo
TlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQp
X3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25Ub2tlblNpZ25hdHVyZVVSTEZv
clRlc3Rpbmc6KE5TVVJMICopdXJsIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7
CistICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGlu
ZzooTlNTdHJpbmcgKilhcHBCdW5kbGVJRCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lk
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50Oih2
b2lkKF4pKE5TU3RyaW5nICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX2xhc3ROYXZpZ2F0
aW9uV2FzQXBwSW5pdGlhdGVkOih2b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyOwpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1Rlc3RpbmcubW0JKHJldmlzaW9uIDI4MzI4MCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNTQsNiAr
MzU0LDEzIEBAIC0gKHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmkKICAgICB9
KTsKIH0KIAorLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZv
clRlc3Rpbmc6KE5TU3RyaW5nICopYXBwQnVuZGxlSUQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
Xikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZS0+c2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoYXBwQnVuZGxlSUQsIFtjb21wbGV0aW9u
SGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKKyAgICB9KTsKK30KKwogLSAodm9pZClfZHVtcFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Oih2b2lkKF4pKE5TU3RyaW5nICopKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAg
ICAgX3BhZ2UtPmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChbY29tcGxldGlvbkhhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXShjb25zdCBTdHJpbmcmIHByaXZhdGVD
bGlja01lYXN1cmVtZW50KSB7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODMyODEpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wOS0yOSAgSm9obiBXaWxhbmRlciAg
PHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IFRha2UgYXBwIGJ1bmRsZSBJRCBp
bnRvIGNvbnNpZGVyYXRpb24gd2hlbiBtYXRjaGluZyB0cmlnZ2VyaW5nIGV2ZW50cyB3aXRoIHBl
bmRpbmcgY2xpY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzA3NzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNTE2NTI4PgorCisgICAgICAg
IFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgaHR0cHM6Ly9jb21taXRz
LndlYmtpdC5vcmcvcjI4Mjg4NCBhZGRlZCBhcHAgYnVuZGxlIElEcyB0byB1bmF0dHJpYnV0ZWQK
KyAgICAgICAgYW5kIGF0dHJpYnV0ZWQgY2xpY2tzIGluIFBDTS4gVGhpcyBwYXRjaCBtYWtlcyBz
dXJlIHdlIHRha2UgdGhvc2UgSURzCisgICAgICAgIGludG8gY29uc2lkZXJhdGlvbiBpbiBQQ006
OkRhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLgorCisgICAgICAg
IFRoZSBUZXN0UnVubmVyIGNoYW5nZXMgYXJlIGFsbCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIGVu
YWJsZSBkaWZmZXJlbnQKKyAgICAgICAgYXBwIGJ1bmRsZSBJRHMgaW4gdGhlIGV5ZXMgb2YgUENN
LiBUaGUgQVBJIHRlc3QgY2hhbmdlcyBhcmUgdG8gbWFrZSB1c2UKKyAgICAgICAgb2YgdGhlIGFw
cCBidW5kbGUgSUQgdGVzdCBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OnJ1bkJhc2ljRXZlbnRBdHRyaWJ1dGlvblRlc3QpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpz
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RS
OjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZSk6CisKIDIwMjEtMDktMjkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBVcGRhdGUgUENNIERhZW1vbiBuYW1lCkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0
dHJpYnV0aW9uLm1tCShyZXZpc2lvbiAyODMyODEpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1
Myw4ICsxNTMsMTAgQEAgdm9pZCBydW5CYXNpY0V2ZW50QXR0cmlidXRpb25UZXN0KFdLV2ViVgog
ICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF90cnVzdFNlcnZl
ckZvckxvY2FsUENNVGVzdGluZzpzZWNUcnVzdEZyb21DZXJ0aWZpY2F0ZUNoYWluKEBbKGlkKXRl
c3RDZXJ0aWZpY2F0ZSgpLmdldCgpXSkuZ2V0KCldOwogICAgIFt3ZWJWaWV3IF9zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc6c2VydmVyVVJM
IGRlc3RpbmF0aW9uVVJMOmV4YW1wbGVVUkwoKSBjb21wbGV0aW9uSGFuZGxlcjpeewogICAgICAg
ICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVz
dGluZzpZRVMgY29tcGxldGlvbkhhbmRsZXI6XnsKLSAgICAgICAgICAgIE5TU3RyaW5nICpodG1s
ID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0PmZldGNoKCclQGNvbnZlcnNp
b25SZXF1ZXN0QmVmb3JlUmVkaXJlY3QnLHttb2RlOiduby1jb3JzJ30pPC9zY3JpcHQ+Iiwgc2Vy
dmVyVVJMXTsKLSAgICAgICAgICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVS
TDpleGFtcGxlVVJMKCldOworICAgICAgICAgICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOkAidGVzdC5idW5kbGUuaWQiIGNvbXBsZXRp
b25IYW5kbGVyOl57CisgICAgICAgICAgICAgICAgTlNTdHJpbmcgKmh0bWwgPSBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIjxzY3JpcHQ+ZmV0Y2goJyVAY29udmVyc2lvblJlcXVlc3RCZWZv
cmVSZWRpcmVjdCcse21vZGU6J25vLWNvcnMnfSk8L3NjcmlwdD4iLCBzZXJ2ZXJVUkxdOworICAg
ICAgICAgICAgICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpleGFtcGxl
VVJMKCldOworICAgICAgICAgICAgfV07CiAgICAgICAgIH1dOwogICAgIH1dOwogICAgIFV0aWw6
OnJ1bigmZG9uZSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcAkocmV2aXNpb24gMjgzMjgwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3NDksNiArMzc0OSwxMyBAQCB2b2lkIFRl
c3RDb250cm9sbGVyOjpzZXRQQ01GcmF1ZFByZXZlbnRpCiAgICAgcnVuVW50aWwoY2FsbGJhY2tD
b250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFdLU3RyaW5nUmVmIGFw
cEJ1bmRsZUlEKQoreworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29u
dGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOworICAgIFdLUGFnZVNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgYXBw
QnVuZGxlSUQsIHByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrLCAmY2FsbGJhY2tD
b250ZXh0KTsKKyAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsK
K30KKwogV0tVUkxSZWYgVGVzdENvbnRyb2xsZXI6OmN1cnJlbnRUZXN0VVJMKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9jdXJyZW50SW52b2NhdGlvbiA/IG1fY3VycmVudEludm9jYXRpb24tPnVy
bCgpIDogbnVsbHB0cjsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgJKHJldmlzaW9uIDI4MzI4MCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzU1LDYgKzM1NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVz
dGluZyhXS1VSTFJlZiBzb3VyY2VVUkwsIFdLVVJMUmVmIGRlc3RpbmF0aW9uVVJMKTsKICAgICB2
b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAg
ICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFdLU3RyaW5nUmVm
IHVubGlua2FibGVUb2tlbiwgV0tTdHJpbmdSZWYgc2VjcmV0VG9rZW4sIFdLU3RyaW5nUmVmIHNp
Z25hdHVyZSwgV0tTdHJpbmdSZWYga2V5SUQpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tTdHJpbmdSZWYpOwogCiAgICAgdm9pZCBk
aWRTZXRBcHBCb3VuZERvbWFpbnMoKSBjb25zdDsKIApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHAJKHJldmlzaW9uIDI4MzI4MCkKKysrIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIzLDYg
KzE0MjMsMTEgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZAogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVu
ZGxlSURGb3JUZXN0aW5nIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
LnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKHN0cmluZ1Zh
bHVlKG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAg
IGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU3luY0xvY2Fs
U3RvcmFnZSIpKSB7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zeW5jTG9j
YWxTdG9yYWdlKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpJbmRleDogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCShyZXZp
c2lvbiAyODMyODApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTE0LDYgKzIxMTQsMTIgQEAgdm9pZCBU
ZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbQogICAgIH0pKTsKIH0KIAordm9pZCBU
ZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGlu
ZyhKU1N0cmluZ1JlZiBhcHBCdW5kbGVJRCkKK3sKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVz
c2FnZSgiU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmciLAor
ICAgICAgICB0b1dLKGFwcEJ1bmRsZUlEKSk7Cit9CisKIGJvb2wgVGVzdFJ1bm5lcjo6aGFzQXBw
Qm91bmRTZXNzaW9uKCkKIHsKICAgICByZXR1cm4gcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2VS
ZXR1cm5pbmdCb29sZWFuKCJIYXNBcHBCb3VuZFNlc3Npb24iKTsKSW5kZXg6IFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCShyZXZpc2lv
biAyODMyODApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTMyLDYgKzUzMiw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVz
dGluZygpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFcGhlbWVyYWxNZWFz
dXJlbWVudEZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoSlNTdHJpbmdSZWYgdW5s
aW5rYWJsZVRva2VuLCBKU1N0cmluZ1JlZiBzZWNyZXRUb2tlbiwgSlNTdHJpbmdSZWYgc2lnbmF0
dXJlLCBKU1N0cmluZ1JlZiBrZXlJRCk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhKU1N0cmluZ1JlZik7CiAgICAgdm9pZCBzaW11bGF0
ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOwogCiAgICAgdm9pZCBzZXRJ
c1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CkluZGV4OiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwJKHJldmlzaW9uIDI4MzI4MCkKKysrIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTQxNiw2ICs0MTYsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdW5kZWZp
bmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVz
dGluZyhET01TdHJpbmcgc291cmNlVVJMU3RyaW5nLCBET01TdHJpbmcgZGVzdGluYXRpb25VUkxT
dHJpbmcpOwogICAgIHVuZGVmaW5lZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBp
cmVkRm9yVGVzdGluZygpOwogICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoRE9NU3RyaW5nIHVubGlua2FibGVUb2tl
biwgRE9NU3RyaW5nIHNlY3JldFRva2VuLCBET01TdHJpbmcgc2lnbmF0dXJlLCBET01TdHJpbmcg
a2V5SUQpOworICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZyhET01TdHJpbmcgYXBwQnVuZGxlSUQpOwogCiAgICAgLy8gU3BlZWNoUmVj
b2duaXRpb24KICAgICB1bmRlZmluZWQgc2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25H
cmFudGVkKGJvb2xlYW4gdmFsdWUpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzMjgwKQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEt
MDktMjkgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENN
OiBUYWtlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uIHdoZW4gbWF0Y2hpbmcgdHJp
Z2dlcmluZyBldmVudHMgd2l0aCBwZW5kaW5nIGNsaWNrcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzc4CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS84MzUxNjUyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisg
ICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyODI4ODQgYWRkZWQgYXBwIGJ1bmRs
ZSBJRHMgdG8gdW5hdHRyaWJ1dGVkCisgICAgICAgIGFuZCBhdHRyaWJ1dGVkIGNsaWNrcyBpbiBQ
Q00uIFRoaXMgcGF0Y2ggbWFrZXMgc3VyZSB3ZSB0YWtlIHRob3NlIElEcworICAgICAgICBpbnRv
IGNvbnNpZGVyYXRpb24gaW4gUENNOjpEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUt
aWRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgICh0ZWFyRG93bkFuZEZpbmlzaCk6CisK
IDIwMjEtMDktMjkgIEtpZXQgSG8gIDx0aG8yMkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVt
ZW50IHRoZSAnaWMnIHVuaXQgZnJvbSBDU1MgVmFsdWVzIDQKSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMtZXhwZWN0ZWQudHh0CShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMzUgQEAKK1Rlc3RzIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgd2l0aCBt
dWx0aXBsZSBhcHAgYnVuZGxlIElEcywgbWFraW5nIHN1cmUgb25seSB0aGUgbWF0Y2hpbmcgSUQg
aXMgY29uc2lkZXJlZCBhIG1hdGNoLgorCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWUxLS0+JworLS0tLS0tLS0KK0F0dHJpYnV0aW9uIHJlY2VpdmVkLgorSFRUUF9IT1NUOiAxMjcu
MC4wLjE6ODAwMAorQ29udGVudCB0eXBlOiBhcHBsaWNhdGlvbi9qc29uCitSRVFVRVNUX1VSSTog
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnB5P3Jl
Y2lwaWVudD1DbGlja1NvdXJjZQorTm8gY29va2llcyBpbiBhdHRyaWJ1dGlvbiByZXF1ZXN0Lgor
UmVxdWVzdCBib2R5OgoreyJzb3VyY2VfZW5nYWdlbWVudF90eXBlIjoiY2xpY2siLCJzb3VyY2Vf
c2l0ZSI6IjEyNy4wLjAuMSIsInNvdXJjZV9pZCI6MzMsImF0dHJpYnV0ZWRfb25fc2l0ZSI6Imxv
Y2FsaG9zdCIsInRyaWdnZXJfZGF0YSI6MTIsInZlcnNpb24iOjJ9CisKKworLS0tLS0tLS0KK0Zy
YW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitBdHRyaWJ1dGlvbiByZWNlaXZlZC4KK0hU
VFBfSE9TVDogbG9jYWxob3N0OjgwMDAKK0NvbnRlbnQgdHlwZTogYXBwbGljYXRpb24vanNvbgor
UkVRVUVTVF9VUkk6IC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lv
blJlcG9ydC5weT9yZWNpcGllbnQ9Q2xpY2tEZXN0aW5hdGlvbgorTm8gY29va2llcyBpbiBhdHRy
aWJ1dGlvbiByZXF1ZXN0LgorUmVxdWVzdCBib2R5OgoreyJzb3VyY2VfZW5nYWdlbWVudF90eXBl
IjoiY2xpY2siLCJzb3VyY2Vfc2l0ZSI6IjEyNy4wLjAuMSIsInNvdXJjZV9pZCI6MzMsImF0dHJp
YnV0ZWRfb25fc2l0ZSI6ImxvY2FsaG9zdCIsInRyaWdnZXJfZGF0YSI6MTIsInZlcnNpb24iOjJ9
CisKK1VuYXR0cmlidXRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK1dlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJjZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0
ZSBvbiBzaXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJRDogMjMKK05vIGF0dHJpYnV0aW9uIHRyaWdn
ZXIgZGF0YS4KK0FwcGxpY2F0aW9uIGJ1bmRsZSBpZGVudGlmaWVyOiB0ZXN0QnVuZGxlSUQKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlw
bGUtYXBwLWJ1bmRsZS1pZHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTAzIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1
c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9
bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj5UZXN0cyBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHdpdGggbXVsdGlw
bGUgYXBwIGJ1bmRsZSBJRHMsIG1ha2luZyBzdXJlIG9ubHkgdGhlIG1hdGNoaW5nIElEIGlzIGNv
bnNpZGVyZWQgYSBtYXRjaC48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rMSIgaHJlZj0iaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5k
bGUtaWRzLmh0bWw/c3RlcFR3byIgYXR0cmlidXRpb25zb3VyY2VpZD0yMyBhdHRyaWJ1dGlvbmRl
c3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbmsxPC9hPjxicj4KKzxhIGlkPSJ0
YXJnZXRMaW5rMiIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWw/c3RlcEZvdXIiIGF0dHJpYnV0aW9u
c291cmNlaWQ9MzMgYXR0cmlidXRpb25kZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAw
Ij5MaW5rMjwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBj
b25zdCBjdXJyZW50VGltZU1pbGxpcyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7CisgICAgY29u
c3QgaGlnaEVudHJvcHlCaXRzID0gY3VycmVudFRpbWVNaWxsaXMgLSAoTWF0aC5mbG9vcihjdXJy
ZW50VGltZU1pbGxpcyAvIDEwMDAwMDApICogMTAwMDAwMCk7CisgICAgY29uc3Qgbm9uY2UgPSBo
aWdoRW50cm9weUJpdHMgKyAiIiArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCk7CisK
KyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9y
VGVzdGluZyh0cnVlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICB0
ZWFyRG93bkFuZEZpbmlzaCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVu
dChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVm
dCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1l
bnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBl
ci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAi
RkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5p
c2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBh
cHBlbmRJZnJhbWUodXJsLCBvbmxvYWRDYWxsYmFjaykgeworICAgICAgICBsZXQgaWZyYW1lRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBpZnJhbWVF
bGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9ubG9hZENhbGxiYWNrKQorICAgICAgICAg
ICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBvbmxvYWRDYWxsYmFjazsKKyAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICB9CisKKyAgICBsZXQgcmVw
b3J0c1JlY2VpdmVkID0gMDsKKyAgICBmdW5jdGlvbiBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFt
ZUFuZEZpbmlzaCgpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluazEiKSk7CisgICAgICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsyIikpOworICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJw
aXhlbCIpKTsKKworICAgICAgICAvLyBDbGljayBzb3VyY2UuCisgICAgICAgIGFwcGVuZElmcmFt
ZSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9nZXRDb252ZXJzaW9uRGF0YS5weT90aW1lb3V0X21zPTIwMDAmcmVjaXBpZW50PUNsaWNrU291
cmNlJm5vbmNlPSIgKyBub25jZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICByZXBvcnRzUmVj
ZWl2ZWQrKzsKKyAgICAgICAgICAgIGlmIChyZXBvcnRzUmVjZWl2ZWQgPj0gMikKKyAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIENsaWNrIGRl
c3RpbmF0aW9uLgorICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucHk/dGlt
ZW91dF9tcz0yMDAwJnJlY2lwaWVudD1DbGlja0Rlc3RpbmF0aW9uJm5vbmNlPSIgKyBub25jZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICByZXBvcnRzUmVjZWl2ZWQrKzsKKyAgICAgICAgICAg
IGlmIChyZXBvcnRzUmVjZWl2ZWQgPj0gMikKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlv
bi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICAvLyBTdGVwIDI6IEdv
IGJhY2sgdG8gdGhlIHNvdXJjZS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
cmVmID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0
aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sP3N0ZXBUaHJlZSI7CisgICAgICAgICAgICB9IGVsc2Ug
aWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikgeworICAgICAgICAg
ICAgICAgIC8vIFN0ZXAgMzogQ2hhbmdlIHRoZSBhcHAgYnVuZGxlIElEIGFuZCBjbGljayB0aGUg
c2Vjb25kIGxpbmsuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZygiIik7CisgICAgICAgICAgICAgICAgYWN0
aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rMiIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5k
b3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBGb3VyIikgeworICAgICAgICAgICAgICAgIC8v
IFN0ZXAgNDogQ29udmVydC4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZygiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9u
UmVwb3J0LnB5P3JlY2lwaWVudD1DbGlja1NvdXJjZSZub25jZT0iICsgbm9uY2UsICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNp
b25SZXBvcnQucHk/cmVjaXBpZW50PUNsaWNrRGVzdGluYXRpb24mbm9uY2U9IiArIG5vbmNlKTsK
KyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEy
Ny4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRv
Q29udmVyc2lvbi5weT9jb252ZXJzaW9uRGF0YT0xMiZub25jZT0iICsgbm9uY2U7CisgICAgICAg
ICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFn
ZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBhcHBl
bmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpOworICAgICAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBTdGVwIDE6IENoYW5nZSB0
aGUgYXBwIGJ1bmRsZSBJRCBhbmQgY2xpY2sgdGhlIGZpcnN0IGxpbmsuCisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZygidGVzdEJ1bmRsZUlEIik7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0
YXJnZXRMaW5rMSIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5v
IHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9yZXNvdXJjZXMvdXRpbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzCShyZXZpc2lvbiAyODMy
ODApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jl
c291cmNlcy91dGlsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw2ICsxNSw3IEBAIGZ1bmN0aW9u
IHRlYXJEb3duQW5kRmluaXNoKCkgewogICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZygiIiwgIiIpOwogICAg
ICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVV
UkxGb3JUZXN0aW5nKCIiKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZygiIik7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoIiIpOwog
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>