<?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>171595</bug_id>
          
          <creation_ts>2017-05-03 03:25:04 -0700</creation_ts>
          <short_desc>[GTK] Bump GStreamer version to 1.10.4 in jhbuild</short_desc>
          <delta_ts>2017-05-08 21:02:11 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>171681</dependson>
          <blocked>170500</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eocanha</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1303978</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-03 03:25:04 -0700</bug_when>
    <thetext>Upgrade from 1.8 to 1.10</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303980</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-03 03:34:10 -0700</bug_when>
    <thetext>I&apos;ve tried to upgrade, removing all patches (I don&apos;t know if any of those would still be needed with 1.10, though). And the results are not that bad, there some unexpected failures, but also unexpected passes. So, I think we can land the upgrade and deal with the new failures.

The relevant media results are

Regressions: Unexpected text-only failures
  imported/w3c/web-platform-tests/media-source/mediasource-redundant-seek.html [ Failure ]
  imported/w3c/web-platform-tests/media-source/mediasource-removesourcebuffer.html [ Failure ]
  imported/w3c/web-platform-tests/media-source/mediasource-seek-beyond-duration.html [ Failure ]
  imported/w3c/web-platform-tests/media-source/mediasource-seek-during-pending-seek.html [ Failure ]
  media/media-source/media-source-init-segment-duration.html [ Failure ]
  media/video-error-does-not-exist.html [ Failure ]
  media/video-load-networkState.html [ Failure ]
  media/video-source-error.html [ Failure ]
  media/video-source-none-supported.html [ Failure ]

Regressions: Unexpected audio failures
  webaudio/codec-tests/wav/24bit-22khz-resample.html [ Failure ]

Regressions: Unexpected crashes
  http/tests/media/video-accept-encoding.html [ Crash ]

Regressions: Unexpected timeouts
  media/video-source-moved.html [ Timeout ]

Unexpected flakiness: timeouts
  media/W3C/audio/events/event_canplaythrough.html [ Timeout Pass ]
  media/W3C/video/events/event_loadedmetadata_manual.html [ Timeout Pass ]
  media/W3C/video/events/event_timeupdate_manual.html [ Timeout Pass ]
  media/W3C/video/readyState/readyState_during_playing.html [ Timeout Pass ]
  media/track/track-in-band-legacy-api.html [ Failure Timeout ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303981</commentid>
    <comment_count>2</comment_count>
      <attachid>308892</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-03 03:41:34 -0700</bug_when>
    <thetext>Created attachment 308892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303986</commentid>
    <comment_count>3</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2017-05-03 04:04:15 -0700</bug_when>
    <thetext>At least these two patches might still be important. We&apos;re keeping them in out downstream port, which also uses GStreamer  1.10.4:

* gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch
* gtk/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303991</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-03 04:14:04 -0700</bug_when>
    <thetext>(In reply to Enrique Ocaña from comment #3)
&gt; At least these two patches might still be important. We&apos;re keeping them in
&gt; out downstream port, which also uses GStreamer  1.10.4:
&gt; 
&gt; *
&gt; gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-
&gt; protection.patch
&gt; *
&gt; gtk/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.
&gt; patch

Thanks Quique! Do you know which tests those patches fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303994</commentid>
    <comment_count>5</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-05-03 04:28:14 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #4)
&gt; &gt; *
&gt; &gt; gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-
&gt; &gt; protection.patch
&gt; &gt; *
&gt; &gt; gtk/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.
&gt; &gt; patch
&gt; 
&gt; Thanks Quique! Do you know which tests those patches fix?

None yet, it&apos;s EME code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303996</commentid>
    <comment_count>6</comment_count>
      <attachid>308892</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-05-03 04:42:58 -0700</bug_when>
    <thetext>Comment on attachment 308892
Patch

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

&gt; Tools/ChangeLog:17
&gt; +        * gtk/patches/gst-plugins-bad-0001-dtls-port-to-OpenSSL-1.1.0.patch: Removed.
&gt; +        * gtk/patches/gst-plugins-bad-0002-dtlscertificate-Fix-error-checking-in-RSA_generate_k.patch: Removed.
&gt; +        * gtk/patches/gst-plugins-good-0001-rtpbin-pipeline-gets-an-EOS-when-any-rtpsources-byes.patch: Removed.
&gt; +        * gtk/patches/gst-plugins-good-0002-rtpbin-avoid-generating-errors-when-rtcp-messages-ar.patch: Removed.
&gt; +        * gtk/patches/gst-plugins-good-0003-rtpbin-receive-bundle-support.patch: Removed.
&gt; +        * gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch: Removed.
&gt; +        * gtk/patches/gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch: Removed.
&gt; +        * gtk/patches/gst-plugins-good-use-the-tfdt-decode-time.patch: Removed.
&gt; +        * gtk/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch: Removed.

Please, check if these patches are present in 1.10.4 before removing them. As I said at least two of them are still needed. Please keep me posted.

&gt; Tools/gtk/jhbuild.modules:-361
&gt; -  &lt;autotools id=&quot;orc&quot; autogenargs=&quot;--disable-gtk-doc&quot; autogen-sh=&quot;configure&quot;&gt;
&gt; -    &lt;branch module=&quot;orc/orc-0.4.17.tar.gz&quot; version=&quot;0.4.17&quot;
&gt; -            repo=&quot;gstreamer&quot;
&gt; -            hash=&quot;sha256:4fc7cca48c59fff23afee78fb642cdbde001f56401c8f47b95a16578d1d5d7e8&quot;
&gt; -            md5sum=&quot;af1bf3dab9e69f3c36f389285e2a12a1&quot;/&gt;
&gt; -  &lt;/autotools&gt;

Why are you removing orc?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303997</commentid>
    <comment_count>7</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-05-03 04:43:41 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #6)
&gt; Please, check if these patches are present in 1.10.4 before removing them.
&gt; As I said at least two of them are still needed. Please keep me posted.

And a test status update would be interesting too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304001</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-03 05:01:24 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #5)
&gt; (In reply to Carlos Garcia Campos from comment #4)
&gt; &gt; &gt; *
&gt; &gt; &gt; gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-
&gt; &gt; &gt; protection.patch
&gt; &gt; &gt; *
&gt; &gt; &gt; gtk/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.
&gt; &gt; &gt; patch
&gt; &gt; 
&gt; &gt; Thanks Quique! Do you know which tests those patches fix?
&gt; 
&gt; None yet, it&apos;s EME code.

We don&apos;t maintain patches to fix tests that don&apos;t exist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304003</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-03 05:03:05 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #6)
&gt; Comment on attachment 308892 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=308892&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:17
&gt; &gt; +        * gtk/patches/gst-plugins-bad-0001-dtls-port-to-OpenSSL-1.1.0.patch: Removed.
&gt; &gt; +        * gtk/patches/gst-plugins-bad-0002-dtlscertificate-Fix-error-checking-in-RSA_generate_k.patch: Removed.
&gt; &gt; +        * gtk/patches/gst-plugins-good-0001-rtpbin-pipeline-gets-an-EOS-when-any-rtpsources-byes.patch: Removed.
&gt; &gt; +        * gtk/patches/gst-plugins-good-0002-rtpbin-avoid-generating-errors-when-rtcp-messages-ar.patch: Removed.
&gt; &gt; +        * gtk/patches/gst-plugins-good-0003-rtpbin-receive-bundle-support.patch: Removed.
&gt; &gt; +        * gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch: Removed.
&gt; &gt; +        * gtk/patches/gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch: Removed.
&gt; &gt; +        * gtk/patches/gst-plugins-good-use-the-tfdt-decode-time.patch: Removed.
&gt; &gt; +        * gtk/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch: Removed.
&gt; 
&gt; Please, check if these patches are present in 1.10.4 before removing them.
&gt; As I said at least two of them are still needed. Please keep me posted.

I don&apos;t understand why those two tests are needed if they don&apos;t fix any exiting test.

&gt; &gt; Tools/gtk/jhbuild.modules:-361
&gt; &gt; -  &lt;autotools id=&quot;orc&quot; autogenargs=&quot;--disable-gtk-doc&quot; autogen-sh=&quot;configure&quot;&gt;
&gt; &gt; -    &lt;branch module=&quot;orc/orc-0.4.17.tar.gz&quot; version=&quot;0.4.17&quot;
&gt; &gt; -            repo=&quot;gstreamer&quot;
&gt; &gt; -            hash=&quot;sha256:4fc7cca48c59fff23afee78fb642cdbde001f56401c8f47b95a16578d1d5d7e8&quot;
&gt; &gt; -            md5sum=&quot;af1bf3dab9e69f3c36f389285e2a12a1&quot;/&gt;
&gt; &gt; -  &lt;/autotools&gt;
&gt; 
&gt; Why are you removing orc?

Because the version in recent distros is even higher than that one. 0.4.22 in debian, for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304004</commentid>
    <comment_count>10</comment_count>
      <attachid>308892</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-05-03 05:05:29 -0700</bug_when>
    <thetext>Comment on attachment 308892
Patch

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

&gt; Tools/ChangeLog:13
&gt; +        * gtk/patches/gst-plugins-good-0003-rtpbin-receive-bundle-support.patch: Removed.

This one is not merged and is needed Webrtc. Please recover it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304026</commentid>
    <comment_count>11</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-05-03 08:32:09 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #8)
&gt; We don&apos;t maintain patches to fix tests that don&apos;t exist.

The feature is under development and we can&apos;t work without it so please, leave those two there.

(In reply to Carlos Garcia Campos from comment #9)
&gt; I don&apos;t understand why those two tests are needed if they don&apos;t fix any
&gt; exiting test.

As I said, feature is under heavy development and we need them.

&gt; &gt; &gt; Tools/gtk/jhbuild.modules:-361
&gt; &gt; &gt; -  &lt;autotools id=&quot;orc&quot; autogenargs=&quot;--disable-gtk-doc&quot; autogen-sh=&quot;configure&quot;&gt;
&gt; &gt; &gt; -    &lt;branch module=&quot;orc/orc-0.4.17.tar.gz&quot; version=&quot;0.4.17&quot;
&gt; &gt; &gt; -            repo=&quot;gstreamer&quot;
&gt; &gt; &gt; -            hash=&quot;sha256:4fc7cca48c59fff23afee78fb642cdbde001f56401c8f47b95a16578d1d5d7e8&quot;
&gt; &gt; &gt; -            md5sum=&quot;af1bf3dab9e69f3c36f389285e2a12a1&quot;/&gt;
&gt; &gt; &gt; -  &lt;/autotools&gt;
&gt; &gt; 
&gt; &gt; Why are you removing orc?
&gt; 
&gt; Because the version in recent distros is even higher than that one. 0.4.22
&gt; in debian, for example.

Ok.

(In reply to Carlos Alberto Lopez Perez from comment #10)
&gt; This one is not merged and is needed Webrtc. Please recover it.

Yes, basically all patches that are not in GStreamer yet are needed, either for tests or for features that are being developed. Please, check the availability of those patches in the required version, rerun the tests and resubmit the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304028</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-03 08:37:01 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #11)
&gt; (In reply to Carlos Garcia Campos from comment #8)
&gt; &gt; We don&apos;t maintain patches to fix tests that don&apos;t exist.
&gt; 
&gt; The feature is under development and we can&apos;t work without it so please,
&gt; leave those two there.
&gt; 
&gt; (In reply to Carlos Garcia Campos from comment #9)
&gt; &gt; I don&apos;t understand why those two tests are needed if they don&apos;t fix any
&gt; &gt; exiting test.
&gt; 
&gt; As I said, feature is under heavy development and we need them.
&gt; 
&gt; &gt; &gt; &gt; Tools/gtk/jhbuild.modules:-361
&gt; &gt; &gt; &gt; -  &lt;autotools id=&quot;orc&quot; autogenargs=&quot;--disable-gtk-doc&quot; autogen-sh=&quot;configure&quot;&gt;
&gt; &gt; &gt; &gt; -    &lt;branch module=&quot;orc/orc-0.4.17.tar.gz&quot; version=&quot;0.4.17&quot;
&gt; &gt; &gt; &gt; -            repo=&quot;gstreamer&quot;
&gt; &gt; &gt; &gt; -            hash=&quot;sha256:4fc7cca48c59fff23afee78fb642cdbde001f56401c8f47b95a16578d1d5d7e8&quot;
&gt; &gt; &gt; &gt; -            md5sum=&quot;af1bf3dab9e69f3c36f389285e2a12a1&quot;/&gt;
&gt; &gt; &gt; &gt; -  &lt;/autotools&gt;
&gt; &gt; &gt; 
&gt; &gt; &gt; Why are you removing orc?
&gt; &gt; 
&gt; &gt; Because the version in recent distros is even higher than that one. 0.4.22
&gt; &gt; in debian, for example.
&gt; 
&gt; Ok.
&gt; 
&gt; (In reply to Carlos Alberto Lopez Perez from comment #10)
&gt; &gt; This one is not merged and is needed Webrtc. Please recover it.
&gt; 
&gt; Yes, basically all patches that are not in GStreamer yet are needed, either
&gt; for tests or for features that are being developed. Please, check the
&gt; availability of those patches in the required version, rerun the tests and
&gt; resubmit the patch.

I wish I had the time, I don&apos;t know when I&apos;ll find some more time to do all that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304157</commentid>
    <comment_count>13</comment_count>
      <attachid>308892</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-05-03 11:59:32 -0700</bug_when>
    <thetext>Comment on attachment 308892
Patch

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

I have checked the patches, I comment below inline which ones should be kept or removed

&gt; Tools/gtk/jhbuild.modules:-374
&gt; -      &lt;patch file=&quot;gstreamer-0001-protection-added-function-to-filter-system-ids.patch&quot; strip=&quot;1&quot;/&gt;

I don&apos;t see it merged anywhere neither any bug related to it. I guess its still a WIP.
Keep this patch.

&gt; Tools/gtk/jhbuild.modules:-406
&gt; -      &lt;patch file=&quot;gst-plugins-good-use-the-tfdt-decode-time.patch&quot; strip=&quot;1&quot;/&gt;

Already merged in 1.10.4 : https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=a2adb7e30
Remove it

&gt; Tools/gtk/jhbuild.modules:-407
&gt; -      &lt;patch file=&quot;gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch&quot; strip=&quot;1&quot;/&gt;

Already merged in 1.10.4 : https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=707c69cb7
Remove it

&gt; Tools/gtk/jhbuild.modules:-408
&gt; -      &lt;patch file=&quot;gst-plugins-good-0001-rtpbin-pipeline-gets-an-EOS-when-any-rtpsources-byes.patch&quot; strip=&quot;1&quot;/&gt;

Merged in 1.10.4 : https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=7ec1ba2bf
Note: This was reverted on master, but not on 1.10.4 .. this means we may need to recover it on the future if we update beyond 1.10.4 and the patch doesn&apos;t gets merged again upstream.
For the moment (update to 1.10.4) we should just simply remove it as it is merged on 1.10.4
Remove it

&gt; Tools/gtk/jhbuild.modules:-409
&gt; -      &lt;patch file=&quot;gst-plugins-good-0002-rtpbin-avoid-generating-errors-when-rtcp-messages-ar.patch&quot; strip=&quot;1&quot;/&gt;

Already merged in 1.10.4 : https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=7708a1793
Remove it

&gt; Tools/gtk/jhbuild.modules:-410
&gt; -      &lt;patch file=&quot;gst-plugins-good-0003-rtpbin-receive-bundle-support.patch&quot; strip=&quot;1&quot;/&gt;

This was merged on https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=dcd3ce9751cdef0b5ab1fa118355f92bdfe82cb3 (&gt;= 1.11.1)
So, we need to keep this patch because its not on 1.10.4
Keep this patch.

&gt; Tools/gtk/jhbuild.modules:-411
&gt; -      &lt;patch file=&quot;gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch&quot; strip=&quot;1&quot;/&gt;

I don&apos;t see it merged anywhere neither any bug related to it. I guess its still a WIP.
Keep this patch.

&gt; Tools/gtk/jhbuild.modules:-427
&gt; -      &lt;patch file=&quot;gst-plugins-bad-0001-dtls-port-to-OpenSSL-1.1.0.patch&quot; strip=&quot;1&quot;/&gt;

Already merged in 1.10.4 : https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=e93893316
Remove it

&gt; Tools/gtk/jhbuild.modules:-428
&gt; -      &lt;patch file=&quot;gst-plugins-bad-0002-dtlscertificate-Fix-error-checking-in-RSA_generate_k.patch&quot; strip=&quot;1&quot;/&gt;

Already merged in 1.10.4 : https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=b810d09fd
Remove it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304215</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-05-03 13:42:55 -0700</bug_when>
    <thetext>So we have two patches without any upstream bug report?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304221</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-05-03 13:50:15 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; So we have two patches without any upstream bug report?

According to the previous conversation those patches are EME related, and the feature is still under development. Most likely the patches are still not ready to be proposed to upstream.

But I&apos;m just guessing here, if you want more details ask to the authors of the patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304526</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-03 23:09:01 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #13)
&gt; Comment on attachment 308892 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=308892&amp;action=review
&gt; 
&gt; I have checked the patches, I comment below inline which ones should be kept
&gt; or removed

Wow, thanks for doing the boring work!

&gt; &gt; Tools/gtk/jhbuild.modules:-374
&gt; &gt; -      &lt;patch file=&quot;gstreamer-0001-protection-added-function-to-filter-system-ids.patch&quot; strip=&quot;1&quot;/&gt;
&gt; 
&gt; I don&apos;t see it merged anywhere neither any bug related to it. I guess its
&gt; still a WIP.
&gt; Keep this patch.

I still don&apos;t understand why we keep patches for our dependencies that are not tracked upstream and don&apos;t fix any test.

&gt; &gt; Tools/gtk/jhbuild.modules:-406
&gt; &gt; -      &lt;patch file=&quot;gst-plugins-good-use-the-tfdt-decode-time.patch&quot; strip=&quot;1&quot;/&gt;
&gt; 
&gt; Already merged in 1.10.4 :
&gt; https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=a2adb7e30
&gt; Remove it
&gt; 
&gt; &gt; Tools/gtk/jhbuild.modules:-407
&gt; &gt; -      &lt;patch file=&quot;gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch&quot; strip=&quot;1&quot;/&gt;
&gt; 
&gt; Already merged in 1.10.4 :
&gt; https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=707c69cb7
&gt; Remove it
&gt; 
&gt; &gt; Tools/gtk/jhbuild.modules:-408
&gt; &gt; -      &lt;patch file=&quot;gst-plugins-good-0001-rtpbin-pipeline-gets-an-EOS-when-any-rtpsources-byes.patch&quot; strip=&quot;1&quot;/&gt;
&gt; 
&gt; Merged in 1.10.4 :
&gt; https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=7ec1ba2bf
&gt; Note: This was reverted on master, but not on 1.10.4 .. this means we may
&gt; need to recover it on the future if we update beyond 1.10.4 and the patch
&gt; doesn&apos;t gets merged again upstream.
&gt; For the moment (update to 1.10.4) we should just simply remove it as it is
&gt; merged on 1.10.4
&gt; Remove it
&gt; 
&gt; &gt; Tools/gtk/jhbuild.modules:-409
&gt; &gt; -      &lt;patch file=&quot;gst-plugins-good-0002-rtpbin-avoid-generating-errors-when-rtcp-messages-ar.patch&quot; strip=&quot;1&quot;/&gt;
&gt; 
&gt; Already merged in 1.10.4 :
&gt; https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=7708a1793
&gt; Remove it
&gt; 
&gt; &gt; Tools/gtk/jhbuild.modules:-410
&gt; &gt; -      &lt;patch file=&quot;gst-plugins-good-0003-rtpbin-receive-bundle-support.patch&quot; strip=&quot;1&quot;/&gt;
&gt; 
&gt; This was merged on
&gt; https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/
&gt; ?id=dcd3ce9751cdef0b5ab1fa118355f92bdfe82cb3 (&gt;= 1.11.1)
&gt; So, we need to keep this patch because its not on 1.10.4
&gt; Keep this patch.
&gt; 
&gt; &gt; Tools/gtk/jhbuild.modules:-411
&gt; &gt; -      &lt;patch file=&quot;gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch&quot; strip=&quot;1&quot;/&gt;
&gt; 
&gt; I don&apos;t see it merged anywhere neither any bug related to it. I guess its
&gt; still a WIP.
&gt; Keep this patch.
&gt; 
&gt; &gt; Tools/gtk/jhbuild.modules:-427
&gt; &gt; -      &lt;patch file=&quot;gst-plugins-bad-0001-dtls-port-to-OpenSSL-1.1.0.patch&quot; strip=&quot;1&quot;/&gt;
&gt; 
&gt; Already merged in 1.10.4 :
&gt; https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=e93893316
&gt; Remove it
&gt; 
&gt; &gt; Tools/gtk/jhbuild.modules:-428
&gt; &gt; -      &lt;patch file=&quot;gst-plugins-bad-0002-dtlscertificate-Fix-error-checking-in-RSA_generate_k.patch&quot; strip=&quot;1&quot;/&gt;
&gt; 
&gt; Already merged in 1.10.4 :
&gt; https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=b810d09fd
&gt; Remove it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304537</commentid>
    <comment_count>17</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-05-04 00:28:06 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; So we have two patches without any upstream bug report?

There&apos;s a bug report in GStreamer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304550</commentid>
    <comment_count>18</comment_count>
      <attachid>309026</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-04 01:31:26 -0700</bug_when>
    <thetext>Created attachment 309026
Updated patch

Results are the same as with the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304563</commentid>
    <comment_count>19</comment_count>
      <attachid>309026</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-05-04 04:07:27 -0700</bug_when>
    <thetext>Comment on attachment 309026
Updated patch

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

&gt; Tools/ChangeLog:13
&gt; +        * gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch:

Nit: If you want to mark it as rebased, perfect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304570</commentid>
    <comment_count>20</comment_count>
      <attachid>309026</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-04 04:57:11 -0700</bug_when>
    <thetext>Comment on attachment 309026
Updated patch

Clearing flags on attachment: 309026

Committed r216179: &lt;http://trac.webkit.org/changeset/216179&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304571</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-04 04:57:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306239</commentid>
    <comment_count>22</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-05-08 21:02:11 -0700</bug_when>
    <thetext>I updated the expectation for webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav in http://trac.webkit.org/changeset/216476/webkit, because I can&apos;t hear any difference. Please yell if that was wrong.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308892</attachid>
            <date>2017-05-03 03:41:34 -0700</date>
            <delta_ts>2017-05-04 01:31:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-gst-1.10.diff</filename>
            <type>text/plain</type>
            <size>87387</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0YjE4
NDFlYjgyZi4uYjA2NDkwOGYzMjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0wNS0wMyAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQnVtcCBHU3Ry
ZWFtZXIgdmVyc2lvbiB0byAxLjEwLjQgaW4gamhidWlsZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBndGsvamhidWlsZC5tb2R1bGVzOgorICAgICAg
ICAqIGd0ay9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NM
LTEuMS4wLnBhdGNoOiBSZW1vdmVkLgorICAgICAgICAqIGd0ay9wYXRjaGVzL2dzdC1wbHVnaW5z
LWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVy
YXRlX2sucGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMt
Z29vZC0wMDAxLXJ0cGJpbi1waXBlbGluZS1nZXRzLWFuLUVPUy13aGVuLWFueS1ydHBzb3VyY2Vz
LWJ5ZXMucGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMt
Z29vZC0wMDAyLXJ0cGJpbi1hdm9pZC1nZW5lcmF0aW5nLWVycm9ycy13aGVuLXJ0Y3AtbWVzc2Fn
ZXMtYXIucGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMt
Z29vZC0wMDAzLXJ0cGJpbi1yZWNlaXZlLWJ1bmRsZS1zdXBwb3J0LnBhdGNoOiBSZW1vdmVkLgor
ICAgICAgICAqIGd0ay9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNC1xdGRlbXV4LWFkZC1j
b250ZXh0LWZvci1hLXByZWZlcnJlZC1wcm90ZWN0aW9uLnBhdGNoOiBSZW1vdmVkLgorICAgICAg
ICAqIGd0ay9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0
cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaDogUmVtb3ZlZC4KKyAgICAgICAgKiBn
dGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRj
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBndGsvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMS1wcm90ZWN0
aW9uLWFkZGVkLWZ1bmN0aW9uLXRvLWZpbHRlci1zeXN0ZW0taWRzLnBhdGNoOiBSZW1vdmVkLgor
CiAyMDE3LTA1LTAyICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgY2hlY2std2Via2l0LXN0eWxlIHNob3VsZCBhbHNvIGtlZXAganMtdGVzdC1wb3N0Wy1hc3lu
Y10uanMgaW4gc3luYwpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2poYnVpbGQubW9kdWxlcyBiL1Rv
b2xzL2d0ay9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggNmNkNDg2NWQ1YWEuLjQ0OWQ5M2Y2ZGU4IDEw
MDY0NAotLS0gYS9Ub29scy9ndGsvamhidWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL2d0ay9qaGJ1
aWxkLm1vZHVsZXMKQEAgLTM1MywxMyArMzUzLDYgQEAKICAgICA8L2RlcGVuZGVuY2llcz4KICAg
PC9hdXRvdG9vbHM+CiAKLSAgPGF1dG90b29scyBpZD0ib3JjIiBhdXRvZ2VuYXJncz0iLS1kaXNh
YmxlLWd0ay1kb2MiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+Ci0gICAgPGJyYW5jaCBtb2R1bGU9
Im9yYy9vcmMtMC40LjE3LnRhci5neiIgdmVyc2lvbj0iMC40LjE3IgotICAgICAgICAgICAgcmVw
bz0iZ3N0cmVhbWVyIgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjRmYzdjY2E0OGM1OWZmZjIz
YWZlZTc4ZmI2NDJjZGJkZTAwMWY1NjQwMWM4ZjQ3Yjk1YTE2NTc4ZDFkNWQ3ZTgiCi0gICAgICAg
ICAgICBtZDVzdW09ImFmMWJmM2RhYjllNjlmM2MzNmYzODkyODVlMmExMmExIi8+Ci0gIDwvYXV0
b3Rvb2xzPgotCiAgIDxhdXRvdG9vbHMgaWQ9ImdzdHJlYW1lciIgYXV0b2dlbi1zaD0iY29uZmln
dXJlIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWd0ay1kb2MiPgogICAgIDxpZiBjb25kaXRpb24t
c2V0PSJtYWNvcyI+CiAgICAgICA8YXV0b2dlbmFyZ3MgdmFsdWU9Ii0tZGlzYWJsZS1pbnRyb3Nw
ZWN0aW9uIi8+CkBAIC0zNjcsMTIgKzM2MCw5IEBACiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAg
IDxkZXAgcGFja2FnZT0ib3JjIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBt
b2R1bGU9ImdzdHJlYW1lci9nc3RyZWFtZXItJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEu
OC4wIgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3RyZWFtZXIvZ3N0cmVhbWVyLSR7dmVyc2lvbn0u
dGFyLnh6IiB2ZXJzaW9uPSIxLjEwLjQiCiAgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCi0g
ICAgICAgICAgICBoYXNoPSJzaGEyNTY6OTQ3YTMxNGEyMTJiNWQ5NDk4NWQ4OWI0MzQ0MGRiZTY2
YjY5NmUxMmJiZGY5YTJmNzg5NjdiOThkNzRhYmVkYyIKLSAgICAgICAgICAgIG1kNXN1bT0iNjg0
NmQ3Mjg5ZWMzMjNjMzhjNDliODE4MTcxZTk1NWEiPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdHJl
YW1lci0wMDAxLXByb3RlY3Rpb24tYWRkZWQtZnVuY3Rpb24tdG8tZmlsdGVyLXN5c3RlbS1pZHMu
cGF0Y2giIHN0cmlwPSIxIi8+Ci0gICAgPC9icmFuY2g+CisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6NTBjMmY1YWY1MGE2Y2M2YzBhM2YzZWQ0M2JkZDhiNWUyYmZmMDBiYWNmYjc2NmQ0YmUxMzll
YzA2ZDhiNTIxOCIvPgogICA8L2F1dG90b29scz4KIAogICA8YXV0b3Rvb2xzIGlkPSJnc3QtcGx1
Z2lucy1iYXNlIgpAQCAtMzg0LDEwICszNzQsOSBAQAogICAgIDxkZXBlbmRlbmNpZXM+CiAgICAg
ICA8ZGVwIHBhY2thZ2U9ImdzdHJlYW1lciIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgotICAgIDxi
cmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9u
fS50YXIueHoiIHZlcnNpb249IjEuOC4wIgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lu
cy1iYXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAu
NCIKICAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKLSAgICAgICAgICAgIGhhc2g9InNoYTI1
NjphYmMwYWNjMWQxNWI0YjljOTdjNjVjZDk2ODliZDY0MDAwODE4NTNiOTk4MGVhNDI4ZDNjODU3
MmRkNzkxNTIyIgotICAgICAgICAgICAgbWQ1c3VtPSIyMGNjODIzMTYwOTMxODMxMGYyYTU1ZjY0
Yzg2Y2JiNCIvPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmY2ZDI0NWI2YjNkNGNiNzMzZjgx
ZWJiMDIxMDc0YzUyNWVjZTgzZGIwYzEwZTkzMjc5NGIzMzliOGQ5MzVlYjciLz4KICAgPC9hdXRv
dG9vbHM+CiAKICAgPGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtZ29vZCIgYXV0b2dlbi1zaD0i
Y29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVzIC0tZGlzYWJsZS1zb3Vw
IC0tZGlzYWJsZS1ndGstZG9jIj4KQEAgLTM5OSwxNyArMzg4LDkgQEAKICAgICAgIDxkZXAgcGFj
a2FnZT0ibGlidnB4Ii8+CiAgICAgPC9kZXBlbmRlbmNpZXM+CiAKLSAgICA8YnJhbmNoIG1vZHVs
ZT0iZ3N0LXBsdWdpbnMtZ29vZC9nc3QtcGx1Z2lucy1nb29kLSR7dmVyc2lvbn0udGFyLnh6IiB2
ZXJzaW9uPSIxLjguMCIKKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtZ29vZC9nc3Qt
cGx1Z2lucy1nb29kLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjEwLjQiCiAgICAgICAg
ICAgICByZXBvPSJnc3RyZWFtZXIiCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6YzIwYzEzNGQ0
N2RiYzIzOGQ5MjE3MDdhM2I2NmRhNzA5YzJiNGRkODlmOWQyNjdjZWMxM2QxZGRmMTZlOWY0ZCIK
LSAgICAgICAgICAgIG1kNXN1bT0iOTFlZDQ2NDljN2MyZTQzYTYxZjczMWQxNDRmNmY2ZDAiPgot
ICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10
aW1lLnBhdGNoIiBzdHJpcD0iMSIvPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdv
b2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5w
YXRjaCIgc3RyaXA9IjEiLz4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAw
MDEtcnRwYmluLXBpcGVsaW5lLWdldHMtYW4tRU9TLXdoZW4tYW55LXJ0cHNvdXJjZXMtYnllcy5w
YXRjaCIgc3RyaXA9IjEiLz4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAw
MDItcnRwYmluLWF2b2lkLWdlbmVyYXRpbmctZXJyb3JzLXdoZW4tcnRjcC1tZXNzYWdlcy1hci5w
YXRjaCIgc3RyaXA9IjEiLz4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAw
MDMtcnRwYmluLXJlY2VpdmUtYnVuZGxlLXN1cHBvcnQucGF0Y2giIHN0cmlwPSIxIi8+Ci0gICAg
ICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDA0LXF0ZGVtdXgtYWRkLWNvbnRleHQt
Zm9yLWEtcHJlZmVycmVkLXByb3RlY3Rpb24ucGF0Y2giIHN0cmlwPSIxIi8+Ci0gICAgPC9icmFu
Y2g+CisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6OGE4NmM2MTQzNGE4YzQ0NjY1MzY1YmQwYjM1
NTdhMDQwOTM3ZDFmNDRiZjY5Y2FlZTRlOWVhODE2Y2U3NGQ3ZSIvPgogICA8L2F1dG90b29scz4K
IAogICA8YXV0b3Rvb2xzIGlkPSJnc3QtcGx1Z2lucy1iYWQiIGF1dG9nZW4tc2g9ImNvbmZpZ3Vy
ZSIgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1leGFtcGxlcyAtLWRpc2FibGUtZ3RrLWRvYyI+CkBA
IC00MjAsMjMgKzQwMSwxOCBAQAogICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNl
Ii8+CiAgICAgICA8ZGVwIHBhY2thZ2U9Im9wZW5oMjY0Ii8+CiAgICAgPC9kZXBlbmRlbmNpZXM+
Ci0gICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWJhZC9nc3QtcGx1Z2lucy1iYWQtJHt2
ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4wIgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3Qt
cGx1Z2lucy1iYWQvZ3N0LXBsdWdpbnMtYmFkLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIx
LjEwLjQiCiAgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCi0gICAgICAgICAgICBoYXNoPSJz
aGEyNTY6MTE2Mzc2ZGQxMDg1MDgyNDIyZTBiMjFiMGVjZDNkMWNiMzQ1YzQ2OWM1OGUzMjQ2MzE2
N2Q0Njc1ZjRjYTkwZSIKLSAgICAgICAgICAgIG1kNXN1bT0iMWMyZDc5N2JiOTZhODFlOWVmNTcw
YzdhMGEzNzIwM2UiPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAxLWR0
bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIiBzdHJpcD0iMSIvPgotICAgICAgPHBhdGNo
IGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hl
Y2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2giIHN0cmlwPSIxIi8+Ci0gICAgPC9icmFuY2g+
CisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MjNkZGFlNTA2YjNhMjIzYjk0ODY5YTBkM2VlYTNl
OWExMmU4NDdmOTRkMmQwZTBiOTcxMDJjZTEzZWNkNjk2NiIvPgogICA8L2F1dG90b29scz4KIAog
ICA8YXV0b3Rvb2xzIGlkPSJnc3QtbGliYXYiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dl
bmFyZ3M9Ii0td2l0aC1saWJhdi1leHRyYS1jb25maWd1cmU9Jy0tZGlzYWJsZS15YXNtJyAtLWRp
c2FibGUtZ3RrLWRvYyI+CiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0i
Z3N0LXBsdWdpbnMtYmFzZSIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgotICAgIDxicmFuY2ggbW9k
dWxlPSJnc3QtbGliYXYvZ3N0LWxpYmF2LSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjgu
MCIKKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LWxpYmF2L2dzdC1saWJhdi0ke3ZlcnNpb259LnRh
ci54eiIgdmVyc2lvbj0iMS4xMC40IgogICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgotICAg
ICAgICAgICAgaGFzaD0ic2hhMjU2OjVhMWNlMjg4NzZhZWU5M2NiNGYzZDA5MGYwZTgwNzkxNWE1
ZDliYzEzMjVlMzQ4MGRkMzAyYjg1YWViNDI5MWMiCi0gICAgICAgICAgICBtZDVzdW09IjM2MTYz
OGZhNDU0NjZjNTA1MGJjZGU2YmZlMTBmYTQ2Ii8+CisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6
NmNhMGZlY2E3NWUzZDQ4MzE1ZTA3ZjIwZWMzN2NmNjI2MGVkMWU5ZGRlNThkZjM1NWZlYmQ1MDE2
MjQ2MjY4YiIvPgogICA8L2F1dG90b29scz4KIAogICA8YXV0b3Rvb2xzIGlkPSJ4c2VydmVyIiBh
dXRvZ2VuYXJncz0iLS1kaXNhYmxlLXhpbmVyYW1hIC0tZW5hYmxlLWdseCAtLWVuYWJsZS1jb21w
b3NpdGUgLS1kaXNhYmxlLXhvcmcgLS1kaXNhYmxlLWRteCAtLWRpc2FibGUteG5lc3QgLS1kaXNh
YmxlLXhxdWFydHogLS1kaXNhYmxlLXh3aW4gLS1kaXNhYmxlLXhlcGh5ciAtLWRpc2FibGUteGZh
a2UgLS1kaXNhYmxlLXhmYmRldiAtLWRpc2FibGUtaW5zdGFsbC1zZXR1aWQgLS1kaXNhYmxlLXVu
aXQtdGVzdHMgLS1kaXNhYmxlLXByZXNlbnQgLS1lbmFibGUtdW5peC10cmFuc3BvcnQgLS1lbmFi
bGUtdGNwLXRyYW5zcG9ydCAtLWRpc2FibGUtbG9jYWwtdHJhbnNwb3J0IC0td2l0aC14a2ItcGF0
aD0vdXNyL3NoYXJlL1gxMS94a2IgLS13aXRoLXhrYi1vdXRwdXQ9L3Zhci9saWIveGtiIC0td2l0
aC14a2ItYmluLWRpcmVjdG9yeT0vdXNyL2JpbiAtLXdpdGhvdXQtZHRyYWNlIj4KZGlmZiAtLWdp
dCBhL1Rvb2xzL2d0ay9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1P
cGVuU1NMLTEuMS4wLnBhdGNoIGIvVG9vbHMvZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAw
MDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDVkMTA2NGVkNWU5Li4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9ndGsvcGF0Y2hl
cy9nc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaAor
KysgL2Rldi9udWxsCkBAIC0xLDIzNiArMCwwIEBACi1Gcm9tIGU5Mzg5MzMxNjdjNDk0Y2RjYTQ0
MzMzNGY2NThiMDJhMDNjNDQ4NmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEYWlr
aSBVZW5vIDxkdWVub0ByZWRoYXQuY29tPgotRGF0ZTogV2VkLCAyNiBPY3QgMjAxNiAxNDo1MTow
MSArMDIwMAotU3ViamVjdDogW1BBVENIXSBkdGxzOiBwb3J0IHRvIE9wZW5TU0wgMS4xLjAKLQot
Q2hhbmdlcyBhcmU6Ci0KLS0gVXNlIHRoZSB3cmFwcGVyIGZ1bmN0aW9ucyB0byBhY2Nlc3Mgb3Bh
cXVlIGRhdGEgdHlwZXMuICBUbyBwcmVzZXJ2ZQotICBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBk
ZWZpbmUgZmFsbGJhY2sgZGVmaW5pdGlvbnMKLQotLSBSZW1vdmUgdGhlIHVzZSBvZiBpZGlvbSAi
cHF1ZXVlX3NpemUoc3NsLT5kMS0+c2VudF9tZXNzYWdlcykiLCBzaW5jZQotICB0aGVyZSBpcyBu
byByZXBsYWNlbWVudAotCi0tIFVzZSBSU0FfZ2VuZXJhdGVfa2V5X2V4IGluc3RlYWQgb2YgdGhl
IGRlcHJlY2F0ZWQgUlNBX2dlbmVyYXRlX2tleQotCi1odHRwczovL2J1Z3ppbGxhLmdub21lLm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzczNTQwCi0tLS0KLSBleHQvZHRscy9nc3RkdGxzY2VydGlmaWNh
dGUuYyB8IDE1ICsrKysrKysrCi0gZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYyAgfCA4NyAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCi0gMiBmaWxlcyBjaGFu
Z2VkLCA5MyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZXh0
L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUu
YwotaW5kZXggOTVmYmI4My4uYzFjOTYwMiAxMDA2NDQKLS0tLSBhL2V4dC9kdGxzL2dzdGR0bHNj
ZXJ0aWZpY2F0ZS5jCi0rKysgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYwotQEAgLTE5
OSw3ICsxOTksMjIgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZpY2F0ZSAqIHNlbGYp
Ci0gICAgIHByaXYtPnByaXZhdGVfa2V5ID0gTlVMTDsKLSAgICAgcmV0dXJuOwotICAgfQotKwot
KyAgLyogWFhYOiBSU0FfZ2VuZXJhdGVfa2V5IGlzIGFjdHVhbGx5IGRlcHJlY2F0ZWQgaW4gMC45
LjggKi8KLSsjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAwMDFMCi0gICByc2Eg
PSBSU0FfZ2VuZXJhdGVfa2V5ICgyMDQ4LCBSU0FfRjQsIE5VTEwsIE5VTEwpOwotKyNlbHNlCi0r
ICByc2EgPSBSU0FfbmV3ICgpOwotKyAgaWYgKHJzYSAhPSBOVUxMKSB7Ci0rICAgIEJJR05VTSAq
ZSA9IEJOX25ldyAoKTsKLSsgICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRfd29yZCAoZSwgUlNB
X0Y0KQotKyAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAyMDQ4LCBlLCBOVUxM
KSkgewotKyAgICAgIFJTQV9mcmVlIChyc2EpOwotKyAgICAgIHJzYSA9IE5VTEw7Ci0rICAgIH0K
LSsgICAgQk5fZnJlZSAoZSk7Ci0rICB9Ci0rI2VuZGlmCi0gCi0gICBpZiAoIXJzYSkgewotICAg
ICBHU1RfV0FSTklOR19PQkpFQ1QgKHNlbGYsICJmYWlsZWQgdG8gZ2VuZXJhdGUgUlNBIik7Ci1k
aWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYyBiL2V4dC9kdGxzL2dzdGR0
bHNjb25uZWN0aW9uLmMKLWluZGV4IDM2ZjZkNjMuLjcyOGY1YTcgMTAwNjQ0Ci0tLS0gYS9leHQv
ZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jCi0rKysgYi9leHQvZHRscy9nc3RkdGxzY29ubmVjdGlv
bi5jCi1AQCAtNDIsNiArNDIsOCBAQAotICNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgotICNpbmNs
dWRlIDxvcGVuc3NsL3NzbC5oPgotIAotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsKLSBHU1RfREVC
VUdfQ0FURUdPUllfU1RBVElDIChnc3RfZHRsc19jb25uZWN0aW9uX2RlYnVnKTsKLSAjZGVmaW5l
IEdTVF9DQVRfREVGQVVMVCBnc3RfZHRsc19jb25uZWN0aW9uX2RlYnVnCi0gR19ERUZJTkVfVFlQ
RV9XSVRIX0NPREUgKEdzdER0bHNDb25uZWN0aW9uLCBnc3RfZHRsc19jb25uZWN0aW9uLCBHX1RZ
UEVfT0JKRUNULAotQEAgLTIxNiw2ICsyMTgsMzggQEAgZ3N0X2R0bHNfY29ubmVjdGlvbl9maW5h
bGl6ZSAoR09iamVjdCAqIGdvYmplY3QpCi0gICBHX09CSkVDVF9DTEFTUyAoZ3N0X2R0bHNfY29u
bmVjdGlvbl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAoZ29iamVjdCk7Ci0gfQotIAotKyNpZiBP
UEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKLStzdGF0aWMgdm9pZAotK0JJT19z
ZXRfZGF0YSAoQklPICogYmlvLCB2b2lkICpwdHIpCi0rewotKyAgYmlvLT5wdHIgPSBwdHI7Ci0r
fQotKwotK3N0YXRpYyB2b2lkICoKLStCSU9fZ2V0X2RhdGEgKEJJTyAqIGJpbykKLSt7Ci0rICBy
ZXR1cm4gYmlvLT5wdHI7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rQklPX3NldF9zaHV0ZG93biAo
QklPICogYmlvLCBpbnQgc2h1dGRvd24pCi0rewotKyAgYmlvLT5zaHV0ZG93biA9IHNodXRkb3du
OwotK30KLSsKLStzdGF0aWMgdm9pZAotK0JJT19zZXRfaW5pdCAoQklPICogYmlvLCBpbnQgaW5p
dCkKLSt7Ci0rICBiaW8tPmluaXQgPSBpbml0OwotK30KLSsKLStzdGF0aWMgWDUwOSAqCi0rWDUw
OV9TVE9SRV9DVFhfZ2V0MF9jZXJ0IChYNTA5X1NUT1JFX0NUWCAqIGN0eCkKLSt7Ci0rICByZXR1
cm4gY3R4LT5jZXJ0OwotK30KLSsjZW5kaWYKLSsKLSBzdGF0aWMgdm9pZAotIGdzdF9kdGxzX2Nv
bm5lY3Rpb25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAot
ICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHBzcGVjKQotQEAgLTIzOSw3
ICsyNzMsNyBAQCBnc3RfZHRsc19jb25uZWN0aW9uX3NldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9i
amVjdCwgZ3VpbnQgcHJvcF9pZCwKLSAgICAgICBwcml2LT5iaW8gPSBCSU9fbmV3IChCSU9fc19n
c3RfZHRsc19jb25uZWN0aW9uICgpKTsKLSAgICAgICBnX3JldHVybl9pZl9mYWlsIChwcml2LT5i
aW8pOwotIAotLSAgICAgIHByaXYtPmJpby0+cHRyID0gc2VsZjsKLSsgICAgICBCSU9fc2V0X2Rh
dGEgKHByaXYtPmJpbywgc2VsZik7Ci0gICAgICAgU1NMX3NldF9iaW8gKHByaXYtPnNzbCwgcHJp
di0+YmlvLCBwcml2LT5iaW8pOwotIAotICAgICAgIFNTTF9zZXRfdmVyaWZ5IChwcml2LT5zc2ws
Ci1AQCAtNTczLDYgKzYwNyw3IEBAIGxvZ19zdGF0ZSAoR3N0RHRsc0Nvbm5lY3Rpb24gKiBzZWxm
LCBjb25zdCBnY2hhciAqIHN0cikKLSAgIHN0YXRlcyB8PSAoISAhU1NMX3dhbnRfd3JpdGUgKHBy
aXYtPnNzbCkgPDwgMjApOwotICAgc3RhdGVzIHw9ICghICFTU0xfd2FudF9yZWFkIChwcml2LT5z
c2wpIDw8IDI0KTsKLSAKLSsjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAwMDFM
Ci0gICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIiVzOiByb2xlPSVzIGJ1Zj0oJWQsJXA6JWQvJWQp
ICV4fCV4ICVzIiwKLSAgICAgICBzdHIsCi0gICAgICAgcHJpdi0+aXNfY2xpZW50ID8gImNsaWVu
dCIgOiAic2VydmVyIiwKLUBAIC01ODEsNiArNjE2LDE1IEBAIGxvZ19zdGF0ZSAoR3N0RHRsc0Nv
bm5lY3Rpb24gKiBzZWxmLCBjb25zdCBnY2hhciAqIHN0cikKLSAgICAgICBwcml2LT5iaW9fYnVm
ZmVyX29mZnNldCwKLSAgICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKLSAgICAgICBzdGF0ZXMs
IFNTTF9nZXRfc3RhdGUgKHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+
c3NsKSk7Ci0rI2Vsc2UKLSsgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiJXM6IHJvbGU9JXMgYnVm
PSglcDolZC8lZCkgJXh8JXggJXMiLAotKyAgICAgIHN0ciwKLSsgICAgICBwcml2LT5pc19jbGll
bnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAotKyAgICAgIHByaXYtPmJpb19idWZmZXIsCi0rICAg
ICAgcHJpdi0+YmlvX2J1ZmZlcl9vZmZzZXQsCi0rICAgICAgcHJpdi0+YmlvX2J1ZmZlcl9sZW4s
Ci0rICAgICAgc3RhdGVzLCBTU0xfZ2V0X3N0YXRlIChwcml2LT5zc2wpLCBTU0xfc3RhdGVfc3Ry
aW5nX2xvbmcgKHByaXYtPnNzbCkpOwotKyNlbmRpZgotIH0KLSAKLSBzdGF0aWMgdm9pZAotQEAg
LTczNyw3ICs3ODEsNyBAQCBvcGVuc3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9v
aywgWDUwOV9TVE9SRV9DVFggKiB4NTA5X2N0eCkKLSAgIHNlbGYgPSBTU0xfZ2V0X2V4X2RhdGEg
KHNzbCwgY29ubmVjdGlvbl9leF9pbmRleCk7Ci0gICBnX3JldHVybl92YWxfaWZfZmFpbCAoR1NU
X0lTX0RUTFNfQ09OTkVDVElPTiAoc2VsZiksIEZBTFNFKTsKLSAKLS0gIHBlbSA9IF9nc3RfZHRs
c194NTA5X3RvX3BlbSAoeDUwOV9jdHgtPmNlcnQpOwotKyAgcGVtID0gX2dzdF9kdGxzX3g1MDlf
dG9fcGVtIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSk7Ci0gCi0gICBpZiAo
IXBlbSkgewotICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHNlbGYsCi1AQCAtNzQ5LDcgKzc5Myw4
IEBAIG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JF
X0NUWCAqIHg1MDlfY3R4KQotICAgICAgIGdpbnQgbGVuOwotIAotICAgICAgIGxlbiA9Ci0tICAg
ICAgICAgIFg1MDlfTkFNRV9wcmludF9leCAoYmlvLCBYNTA5X2dldF9zdWJqZWN0X25hbWUgKHg1
MDlfY3R4LT5jZXJ0KSwgMSwKLSsgICAgICAgICAgWDUwOV9OQU1FX3ByaW50X2V4IChiaW8sCi0r
ICAgICAgICAgIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoWDUwOV9TVE9SRV9DVFhfZ2V0MF9jZXJ0
ICh4NTA5X2N0eCkpLCAxLAotICAgICAgICAgICBYTl9GTEFHX01VTFRJTElORSk7Ci0gICAgICAg
QklPX3JlYWQgKGJpbywgYnVmZmVyLCBsZW4pOwotICAgICAgIGJ1ZmZlcltsZW5dID0gJ1wwJzsK
LUBAIC03NzcsNiArODIyLDcgQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sgKGludCBwcmV2ZXJp
Znlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCi0gICAgICMjIyMjIyMjICAjIyMjICAj
IyMjIyMjCi0gKi8KLSAKLSsjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAwMDFM
Ci0gc3RhdGljIEJJT19NRVRIT0QgY3VzdG9tX2Jpb19tZXRob2RzID0gewotICAgQklPX1RZUEVf
QklPLAotICAgInN0cmVhbSIsCi1AQCAtNzk1LDExICs4NDEsMzQgQEAgQklPX3NfZ3N0X2R0bHNf
Y29ubmVjdGlvbiAodm9pZCkKLSB7Ci0gICByZXR1cm4gJmN1c3RvbV9iaW9fbWV0aG9kczsKLSB9
Ci0rI2Vsc2UKLStzdGF0aWMgQklPX01FVEhPRCAqY3VzdG9tX2Jpb19tZXRob2RzOwotKwotK3N0
YXRpYyBCSU9fTUVUSE9EICoKLStCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lkKQotK3sK
LSsgIGlmIChjdXN0b21fYmlvX21ldGhvZHMgIT0gTlVMTCkKLSsgICAgcmV0dXJuIGN1c3RvbV9i
aW9fbWV0aG9kczsKLSsKLSsgIGN1c3RvbV9iaW9fbWV0aG9kcyA9IEJJT19tZXRoX25ldyAoQklP
X1RZUEVfQklPLCAic3RyZWFtIik7Ci0rICBpZiAoY3VzdG9tX2Jpb19tZXRob2RzID09IE5VTEwK
LSsgICAgICB8fCAhQklPX21ldGhfc2V0X3dyaXRlIChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19t
ZXRob2Rfd3JpdGUpCi0rICAgICAgfHwgIUJJT19tZXRoX3NldF9yZWFkIChjdXN0b21fYmlvX21l
dGhvZHMsIGJpb19tZXRob2RfcmVhZCkKLSsgICAgICB8fCAhQklPX21ldGhfc2V0X2N0cmwgKGN1
c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9jdHJsKQotKyAgICAgIHx8ICFCSU9fbWV0aF9z
ZXRfY3JlYXRlIChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfbmV3KQotKyAgICAgIHx8
ICFCSU9fbWV0aF9zZXRfZGVzdHJveSAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0aG9kX2Zy
ZWUpKSB7Ci0rICAgIEJJT19tZXRoX2ZyZWUgKGN1c3RvbV9iaW9fbWV0aG9kcyk7Ci0rICAgIHJl
dHVybiBOVUxMOwotKyAgfQotKwotKyAgcmV0dXJuIGN1c3RvbV9iaW9fbWV0aG9kczsKLSt9Ci0r
I2VuZGlmCi0gCi0gc3RhdGljIGludAotIGJpb19tZXRob2Rfd3JpdGUgKEJJTyAqIGJpbywgY29u
c3QgY2hhciAqZGF0YSwgaW50IHNpemUpCi0gewotLSAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYg
PSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7Ci0rICBHc3REdGxzQ29ubmVjdGlvbiAq
c2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAoYmlvKSk7Ci0gCi0gICBH
U1RfTE9HX09CSkVDVCAoc2VsZiwgIkJJTzogd3JpdGluZyAlZCIsIHNpemUpOwotIAotQEAgLTgy
NCw3ICs4OTMsNyBAQCBiaW9fbWV0aG9kX3dyaXRlIChCSU8gKiBiaW8sIGNvbnN0IGNoYXIgKmRh
dGEsIGludCBzaXplKQotIHN0YXRpYyBpbnQKLSBiaW9fbWV0aG9kX3JlYWQgKEJJTyAqIGJpbywg
Y2hhciAqb3V0X2J1ZmZlciwgaW50IHNpemUpCi0gewotLSAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNl
bGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7Ci0rICBHc3REdGxzQ29ubmVjdGlv
biAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAoYmlvKSk7Ci0gICBH
c3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxmLT5wcml2OwotICAgZ3VpbnQgaW50
ZXJuYWxfc2l6ZTsKLSAgIGdpbnQgY29weV9zaXplOwotQEAgLTg2OCw3ICs5MzcsNyBAQCBiaW9f
bWV0aG9kX3JlYWQgKEJJTyAqIGJpbywgY2hhciAqb3V0X2J1ZmZlciwgaW50IHNpemUpCi0gc3Rh
dGljIGxvbmcKLSBiaW9fbWV0aG9kX2N0cmwgKEJJTyAqIGJpbywgaW50IGNtZCwgbG9uZyBhcmcx
LCB2b2lkICphcmcyKQotIHsKLS0gIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNf
Q09OTkVDVElPTiAoYmlvLT5wdHIpOwotKyAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1Rf
RFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpOwotICAgR3N0RHRsc0Nvbm5lY3Rp
b25Qcml2YXRlICpwcml2ID0gc2VsZi0+cHJpdjsKLSAKLSAgIHN3aXRjaCAoY21kKSB7Ci1AQCAt
OTE2LDggKzk4NSw4IEBAIGJpb19tZXRob2RfbmV3IChCSU8gKiBiaW8pCi0gewotICAgR1NUX0xP
R19PQkpFQ1QgKE5VTEwsICJCSU86IG5ldyIpOwotIAotLSAgYmlvLT5zaHV0ZG93biA9IDA7Ci0t
ICBiaW8tPmluaXQgPSAxOwotKyAgQklPX3NldF9zaHV0ZG93biAoYmlvLCAwKTsKLSsgIEJJT19z
ZXRfaW5pdCAoYmlvLCAxKTsKLSAKLSAgIHJldHVybiAxOwotIH0KLUBAIC05MzAsNiArOTk5LDYg
QEAgYmlvX21ldGhvZF9mcmVlIChCSU8gKiBiaW8pCi0gICAgIHJldHVybiAwOwotICAgfQotIAot
LSAgR1NUX0xPR19PQkpFQ1QgKEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+cHRyKSwgIkJJTyBm
cmVlIik7Ci0rICBHU1RfTE9HX09CSkVDVCAoR1NUX0RUTFNfQ09OTkVDVElPTiAoQklPX2dldF9k
YXRhIChiaW8pKSwgIkJJTyBmcmVlIik7Ci0gICByZXR1cm4gMDsKLSB9Ci0tLSAKLTIuMTAuMgot
CmRpZmYgLS1naXQgYS9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxz
Y2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoIGIv
VG9vbHMvZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItZHRsc2NlcnRpZmljYXRlLUZp
eC1lcnJvci1jaGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRjaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYzY2ODc3MzcwYzYuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2d0ay9w
YXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hl
Y2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCww
IEBACi1Gcm9tIDNhMDY5MTkzZTI1MzY0ZWJkYWNhYzg2ZjRiMDMwMjJjMTUxZWEyOWMgTW9uIFNl
cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/U2ViYXN0aWFuPTIwRHI9QzM9QjZn
ZT89IDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgotRGF0ZTogTW9uLCAxNCBOb3YgMjAxNiAx
MTozMjoxNyArMDIwMAotU3ViamVjdDogW1BBVENIXSBkdGxzY2VydGlmaWNhdGU6IEZpeCBlcnJv
ciBjaGVja2luZyBpbiBSU0FfZ2VuZXJhdGVfa2V5X2V4KCkKLSB1c2FnZQotCi1XYXMgYnJva2Vu
IGR1cmluZyB0aGUgcG9ydCBmb3IgT3BlblNTTCAxLjEuCi0KLWh0dHBzOi8vYnVnemlsbGEuZ25v
bWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQzMjgKLS0tLQotIGV4dC9kdGxzL2dzdGR0bHNjZXJ0
aWZpY2F0ZS5jIHwgNyArKysrLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg
MyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0
ZS5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKLWluZGV4IGMxYzk2MDIuLmMyZDli
YjIgMTAwNjQ0Ci0tLS0gYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYwotKysrIGIvZXh0
L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKLUBAIC0yMDcsMTIgKzIwNywxMyBAQCBpbml0X2dl
bmVyYXRlZCAoR3N0RHRsc0NlcnRpZmljYXRlICogc2VsZikKLSAgIHJzYSA9IFJTQV9uZXcgKCk7
Ci0gICBpZiAocnNhICE9IE5VTEwpIHsKLSAgICAgQklHTlVNICplID0gQk5fbmV3ICgpOwotLSAg
ICBpZiAoZSAhPSBOVUxMICYmIEJOX3NldF93b3JkIChlLCBSU0FfRjQpCi0tICAgICAgICAmJiBS
U0FfZ2VuZXJhdGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7Ci0rICAgIGlmIChlID09
IE5VTEwgfHwgIUJOX3NldF93b3JkIChlLCBSU0FfRjQpCi0rICAgICAgICB8fCAhUlNBX2dlbmVy
YXRlX2tleV9leCAocnNhLCAyMDQ4LCBlLCBOVUxMKSkgewotICAgICAgIFJTQV9mcmVlIChyc2Ep
OwotICAgICAgIHJzYSA9IE5VTEw7Ci0gICAgIH0KLS0gICAgQk5fZnJlZSAoZSk7Ci0rICAgIGlm
IChlKQotKyAgICAgIEJOX2ZyZWUgKGUpOwotICAgfQotICNlbmRpZgotIAotLS0gCi0yLjEwLjIK
LQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAxLXJ0
cGJpbi1waXBlbGluZS1nZXRzLWFuLUVPUy13aGVuLWFueS1ydHBzb3VyY2VzLWJ5ZXMucGF0Y2gg
Yi9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDEtcnRwYmluLXBpcGVsaW5l
LWdldHMtYW4tRU9TLXdoZW4tYW55LXJ0cHNvdXJjZXMtYnllcy5wYXRjaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZjBmOTBkMTA0NTcuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2d0
ay9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMS1ydHBiaW4tcGlwZWxpbmUtZ2V0cy1hbi1F
T1Mtd2hlbi1hbnktcnRwc291cmNlcy1ieWVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTU2
ICswLDAgQEAKLUZyb20gZWVlYTJhN2ZlODhhMTdiMTUzMThkNWI2YWU2ZTE5MGIyZjc3NzAzMCBN
b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ICJBbGVqYW5kcm8gRy4gQ2FzdHJvIiA8YWxl
eEBpZ2FsaWEuY29tPgotRGF0ZTogV2VkLCAyNiBPY3QgMjAxNiAxMzoyMToyOSArMDIwMAotU3Vi
amVjdDogW1BBVENIXSBydHBiaW46IHBpcGVsaW5lIGdldHMgYW4gRU9TIHdoZW4gYW55IHJ0cHNv
dXJjZXMgYnllcwotCi1JbnN0ZWFkIG9mIHNlbmRpbmcgRU9TIHdoZW4gYSBzb3VyY2UgYnllcyB3
ZSBoYXZlIHRvIHdhaXQgZm9yCi1hbGwgdGhlIHNvdXJjZXMgdG8gYmUgZ29uZSwgd2hpY2ggbWVh
bnMgdGhleSBhbHJlYWR5IHNlbnQgQllFIGFuZAotd2VyZSByZW1vdmVkIGZyb20gdGhlIHNlc3Np
b24uIFdlIG5vdyBoYW5kbGUgdGhlIEVPUyBpbiB0aGUgcnRjcAotbG9vcCBjaGVja2luZyB0aGUg
YW1vdW50IG9mIHNvdXJjZXMgaW4gdGhlIHNlc3Npb24uCi0KLWh0dHBzOi8vYnVnemlsbGEuZ25v
bWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzMyMTgKLS0tLQotIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0
cHNlc3Npb24uYyB8IDI5ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCi0gZ3N0L3J0cG1h
bmFnZXIvcnRwc2Vzc2lvbi5jICAgIHwgIDYgKy0tLS0tCi0gZ3N0L3J0cG1hbmFnZXIvcnRwc2Vz
c2lvbi5oICAgIHwgIDMgKy0tCi0gMyBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAx
NyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Np
b24uYyBiL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYwotaW5kZXggMzY4OGU4NS4uZmQx
ZjJiMSAxMDA2NDQKLS0tLSBhL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYwotKysrIGIv
Z3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jCi1AQCAtMjkzLDcgKzI5Myw3IEBAIHN0YXRp
YyBHc3RGbG93UmV0dXJuIGdzdF9ydHBfc2Vzc2lvbl9wcm9jZXNzX3J0cCAoUlRQU2Vzc2lvbiAq
IHNlc3MsCi0gc3RhdGljIEdzdEZsb3dSZXR1cm4gZ3N0X3J0cF9zZXNzaW9uX3NlbmRfcnRwIChS
VFBTZXNzaW9uICogc2VzcywKLSAgICAgUlRQU291cmNlICogc3JjLCBncG9pbnRlciBkYXRhLCBn
cG9pbnRlciB1c2VyX2RhdGEpOwotIHN0YXRpYyBHc3RGbG93UmV0dXJuIGdzdF9ydHBfc2Vzc2lv
bl9zZW5kX3J0Y3AgKFJUUFNlc3Npb24gKiBzZXNzLAotLSAgICBSVFBTb3VyY2UgKiBzcmMsIEdz
dEJ1ZmZlciAqIGJ1ZmZlciwgZ2Jvb2xlYW4gZW9zLCBncG9pbnRlciB1c2VyX2RhdGEpOwotKyAg
ICBSVFBTb3VyY2UgKiBzcmMsIEdzdEJ1ZmZlciAqIGJ1ZmZlciwgZ3BvaW50ZXIgdXNlcl9kYXRh
KTsKLSBzdGF0aWMgR3N0Rmxvd1JldHVybiBnc3RfcnRwX3Nlc3Npb25fc3luY19ydGNwIChSVFBT
ZXNzaW9uICogc2VzcywKLSAgICAgR3N0QnVmZmVyICogYnVmZmVyLCBncG9pbnRlciB1c2VyX2Rh
dGEpOwotIHN0YXRpYyBnaW50IGdzdF9ydHBfc2Vzc2lvbl9jbG9ja19yYXRlIChSVFBTZXNzaW9u
ICogc2VzcywgZ3VpbnQ4IHBheWxvYWQsCi1AQCAtMTE1Niw2ICsxMTU2LDIyIEBAIHJ0Y3BfdGhy
ZWFkIChHc3RSdHBTZXNzaW9uICogcnRwc2Vzc2lvbikKLSAgICAgR1NUX1JUUF9TRVNTSU9OX1VO
TE9DSyAocnRwc2Vzc2lvbik7Ci0gICAgIHJ0cF9zZXNzaW9uX29uX3RpbWVvdXQgKHNlc3Npb24s
IGN1cnJlbnRfdGltZSwgbnRwbnN0aW1lLCBydW5uaW5nX3RpbWUpOwotICAgICBHU1RfUlRQX1NF
U1NJT05fTE9DSyAocnRwc2Vzc2lvbik7Ci0rCi0rICAgIGlmICghcnRwX3Nlc3Npb25fZ2V0X251
bV9zb3VyY2VzIChzZXNzaW9uKSkgewotKyAgICAgIC8qIHdoZW4gbm8gc291cmNlcyBsZWZ0IGlu
IHRoZSBzZXNzaW9uLCBhbGwgb2YgdGhlIHRoZW0gaGF2ZSB3ZW50Ci0rICAgICAgICogQllFIGF0
IHNvbWUgcG9pbnQgYW5kIHJlbW92ZWQsIHdlIGNhbiBzZW5kIEVPUyB0byB0aGUKLSsgICAgICAg
KiBwaXBlbGluZS4gKi8KLSsgICAgICBHc3RQYWQgKnJ0Y3Bfc3JjID0gcnRwc2Vzc2lvbi0+c2Vu
ZF9ydGNwX3NyYzsKLSsKLSsgICAgICBpZiAocnRjcF9zcmMpIHsKLSsgICAgICAgIGdzdF9vYmpl
Y3RfcmVmIChydGNwX3NyYyk7Ci0rICAgICAgICBHU1RfTE9HX09CSkVDVCAocnRwc2Vzc2lvbiwg
InNlbmRpbmcgRU9TIik7Ci0rICAgICAgICBHU1RfUlRQX1NFU1NJT05fVU5MT0NLIChydHBzZXNz
aW9uKTsKLSsgICAgICAgIGdzdF9wYWRfcHVzaF9ldmVudCAocnRwc2Vzc2lvbi0+c2VuZF9ydGNw
X3NyYywgZ3N0X2V2ZW50X25ld19lb3MgKCkpOwotKyAgICAgICAgR1NUX1JUUF9TRVNTSU9OX0xP
Q0sgKHJ0cHNlc3Npb24pOwotKyAgICAgICAgZ3N0X29iamVjdF91bnJlZiAocnRjcF9zcmMpOwot
KyAgICAgIH0KLSsgICAgfQotICAgfQotICAgLyogbWFyayB0aGUgdGhyZWFkIGFzIHN0b3BwZWQg
bm93ICovCi0gICBydHBzZXNzaW9uLT5wcml2LT50aHJlYWRfc3RvcHBlZCA9IFRSVUU7Ci1AQCAt
MTQxMywxMSArMTQyOSwxMCBAQCBkb19ydGNwX2V2ZW50cyAoR3N0UnRwU2Vzc2lvbiAqIHJ0cHNl
c3Npb24sIEdzdFBhZCAqIHNyY3BhZCkKLSB9Ci0gCi0gLyogY2FsbGVkIHdoZW4gdGhlIHNlc3Np
b24gbWFuYWdlciBoYXMgYW4gUlRDUCBwYWNrZXQgcmVhZHkgZm9yIGZ1cnRoZXIKLS0gKiBzZW5k
aW5nLiBUaGUgZW9zIGZsYWcgaXMgc2V0IHdoZW4gYW4gRU9TIGV2ZW50IHNob3VsZCBiZSBzZW50
IGRvd25zdHJlYW0gYXMKLS0gKiB3ZWxsLiAqLwotKyAqIHNlbmRpbmcuICovCi0gc3RhdGljIEdz
dEZsb3dSZXR1cm4KLSBnc3RfcnRwX3Nlc3Npb25fc2VuZF9ydGNwIChSVFBTZXNzaW9uICogc2Vz
cywgUlRQU291cmNlICogc3JjLAotLSAgICBHc3RCdWZmZXIgKiBidWZmZXIsIGdib29sZWFuIGVv
cywgZ3BvaW50ZXIgdXNlcl9kYXRhKQotKyAgICBHc3RCdWZmZXIgKiBidWZmZXIsIGdwb2ludGVy
IHVzZXJfZGF0YSkKLSB7Ci0gICBHc3RGbG93UmV0dXJuIHJlc3VsdDsKLSAgIEdzdFJ0cFNlc3Np
b24gKnJ0cHNlc3Npb247Ci1AQCAtMTQ0MCwxMSArMTQ1NSw2IEBAIGdzdF9ydHBfc2Vzc2lvbl9z
ZW5kX3J0Y3AgKFJUUFNlc3Npb24gKiBzZXNzLCBSVFBTb3VyY2UgKiBzcmMsCi0gICAgIEdTVF9M
T0dfT0JKRUNUIChydHBzZXNzaW9uLCAic2VuZGluZyBSVENQIik7Ci0gICAgIHJlc3VsdCA9IGdz
dF9wYWRfcHVzaCAocnRjcF9zcmMsIGJ1ZmZlcik7Ci0gCi0tICAgIC8qIHdlIGhhdmUgdG8gc2Vu
ZCBFT1MgYWZ0ZXIgdGhpcyBwYWNrZXQgKi8KLS0gICAgaWYgKGVvcykgewotLSAgICAgIEdTVF9M
T0dfT0JKRUNUIChydHBzZXNzaW9uLCAic2VuZGluZyBFT1MiKTsKLS0gICAgICBnc3RfcGFkX3B1
c2hfZXZlbnQgKHJ0Y3Bfc3JjLCBnc3RfZXZlbnRfbmV3X2VvcyAoKSk7Ci0tICAgIH0KLSAgICAg
Z3N0X29iamVjdF91bnJlZiAocnRjcF9zcmMpOwotICAgfSBlbHNlIHsKLSAgICAgR1NUX1JUUF9T
RVNTSU9OX1VOTE9DSyAocnRwc2Vzc2lvbik7Ci1AQCAtMjA1Niw3ICsyMDY2LDYgQEAgZ3N0X3J0
cF9zZXNzaW9uX2V2ZW50X3NlbmRfcnRjcF9zcmMgKEdzdFBhZCAqIHBhZCwgR3N0T2JqZWN0ICog
cGFyZW50LAotICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0tCi0gc3RhdGljIGdib29sZWFuCi0gZ3N0
X3J0cF9zZXNzaW9uX2V2ZW50X3NlbmRfcnRwX3NpbmsgKEdzdFBhZCAqIHBhZCwgR3N0T2JqZWN0
ICogcGFyZW50LAotICAgICBHc3RFdmVudCAqIGV2ZW50KQotZGlmZiAtLWdpdCBhL2dzdC9ydHBt
YW5hZ2VyL3J0cHNlc3Npb24uYyBiL2dzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYwotaW5kZXgg
OGIzM2I2Yi4uYWE4YjQwYiAxMDA2NDQKLS0tLSBhL2dzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24u
YwotKysrIGIvZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jCi1AQCAtMzI2Myw3ICszMjYzLDYg
QEAgZWFybHlfZXhpdDoKLSB0eXBlZGVmIHN0cnVjdAotIHsKLSAgIFJUUFNvdXJjZSAqc291cmNl
OwotLSAgZ2Jvb2xlYW4gaXNfYnllOwotICAgR3N0QnVmZmVyICpidWZmZXI7Ci0gfSBSZXBvcnRP
dXRwdXQ7Ci0gCi1AQCAtMzg3NCw3ICszODczLDYgQEAgc3RhdGljIHZvaWQKLSBnZW5lcmF0ZV9y
dGNwIChjb25zdCBnY2hhciAqIGtleSwgUlRQU291cmNlICogc291cmNlLCBSZXBvcnREYXRhICog
ZGF0YSkKLSB7Ci0gICBSVFBTZXNzaW9uICpzZXNzID0gZGF0YS0+c2VzczsKLS0gIGdib29sZWFu
IGlzX2J5ZSA9IEZBTFNFOwotICAgUmVwb3J0T3V0cHV0ICpvdXRwdXQ7Ci0gCi0gICAvKiBvbmx5
IGdlbmVyYXRlIFJUQ1AgZm9yIGFjdGl2ZSBpbnRlcm5hbCBzb3VyY2VzICovCi1AQCAtMzg5Myw3
ICszODkxLDYgQEAgZ2VuZXJhdGVfcnRjcCAoY29uc3QgZ2NoYXIgKiBrZXksIFJUUFNvdXJjZSAq
IHNvdXJjZSwgUmVwb3J0RGF0YSAqIGRhdGEpCi0gICBpZiAoc291cmNlLT5tYXJrZWRfYnllKSB7
Ci0gICAgIC8qIHNlbmQgQllFICovCi0gICAgIG1ha2Vfc291cmNlX2J5ZSAoc2Vzcywgc291cmNl
LCBkYXRhKTsKLS0gICAgaXNfYnllID0gVFJVRTsKLSAgIH0gZWxzZSBpZiAoIWRhdGEtPmlzX2Vh
cmx5KSB7Ci0gICAgIC8qIGxvb3Agb3ZlciBhbGwga25vd24gc291cmNlcyBhbmQgYWRkIHJlcG9y
dCBibG9ja3MuIElmIHdlIGFyZSBlYXJseSwgd2UKLSAgICAgICoganVzdCBtYWtlIGEgbWluaW1h
bCBSVENQIHBhY2tldCBhbmQgc2tpcCB0aGlzIHN0ZXAgKi8KLUBAIC0zOTE4LDcgKzM5MTUsNiBA
QCBnZW5lcmF0ZV9ydGNwIChjb25zdCBnY2hhciAqIGtleSwgUlRQU291cmNlICogc291cmNlLCBS
ZXBvcnREYXRhICogZGF0YSkKLSAKLSAgIG91dHB1dCA9IGdfc2xpY2VfbmV3IChSZXBvcnRPdXRw
dXQpOwotICAgb3V0cHV0LT5zb3VyY2UgPSBnX29iamVjdF9yZWYgKHNvdXJjZSk7Ci0tICBvdXRw
dXQtPmlzX2J5ZSA9IGlzX2J5ZTsKLSAgIG91dHB1dC0+YnVmZmVyID0gZGF0YS0+cnRjcDsKLSAg
IC8qIHF1ZXVlIHRoZSBSVENQIHBhY2tldCB0byBwdXNoIGxhdGVyICovCi0gICBnX3F1ZXVlX3B1
c2hfdGFpbCAoJmRhdGEtPm91dHB1dCwgb3V0cHV0KTsKLUBAIC00MDk4LDcgKzQwOTQsNyBAQCBk
b25lOgotICAgICAgIEdTVF9ERUJVRyAoIiVwLCBzZW5kaW5nIFJUQ1AgcGFja2V0LCBhdmcgc2l6
ZSAldSwgJXUiLCAmc2Vzcy0+c3RhdHMsCi0gICAgICAgICAgIHNlc3MtPnN0YXRzLmF2Z19ydGNw
X3BhY2tldF9zaXplLCBwYWNrZXRfc2l6ZSk7Ci0gICAgICAgcmVzdWx0ID0KLS0gICAgICAgICAg
c2Vzcy0+Y2FsbGJhY2tzLnNlbmRfcnRjcCAoc2Vzcywgc291cmNlLCBidWZmZXIsIG91dHB1dC0+
aXNfYnllLAotKyAgICAgICAgICBzZXNzLT5jYWxsYmFja3Muc2VuZF9ydGNwIChzZXNzLCBzb3Vy
Y2UsIGJ1ZmZlciwKLSAgICAgICAgICAgc2Vzcy0+c2VuZF9ydGNwX3VzZXJfZGF0YSk7Ci0gCi0g
ICAgICAgUlRQX1NFU1NJT05fTE9DSyAoc2Vzcyk7Ci1kaWZmIC0tZ2l0IGEvZ3N0L3J0cG1hbmFn
ZXIvcnRwc2Vzc2lvbi5oIGIvZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oCi1pbmRleCA5ZmE5
MzI3Li5jMjU5ODFhIDEwMDY0NAotLS0tIGEvZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oCi0r
KysgYi9nc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmgKLUBAIC03MSw3ICs3MSw2IEBAIHR5cGVk
ZWYgR3N0Rmxvd1JldHVybiAoKlJUUFNlc3Npb25TZW5kUlRQKSAoUlRQU2Vzc2lvbiAqc2Vzcywg
UlRQU291cmNlICpzcmMsIGdwCi0gICogQHNlc3M6IGFuICNSVFBTZXNzaW9uCi0gICogQHNyYzog
dGhlICNSVFBTb3VyY2UKLSAgKiBAYnVmZmVyOiB0aGUgUlRDUCBidWZmZXIgcmVhZHkgZm9yIHNl
bmRpbmcKLS0gKiBAZW9zOiBpZiBhbiBFT1MgZXZlbnQgc2hvdWxkIGJlIHB1c2hlZAotICAqIEB1
c2VyX2RhdGE6IHVzZXIgZGF0YSBzcGVjaWZpZWQgd2hlbiByZWdpc3RlcmluZwotICAqCi0gICog
VGhpcyBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCB3aGVuIEBzZXNzIGhhcyBAYnVmZmVyIHJlYWR5
IGZvciBzZW5kaW5nIHRvCi1AQCAtODAsNyArNzksNyBAQCB0eXBlZGVmIEdzdEZsb3dSZXR1cm4g
KCpSVFBTZXNzaW9uU2VuZFJUUCkgKFJUUFNlc3Npb24gKnNlc3MsIFJUUFNvdXJjZSAqc3JjLCBn
cAotICAqIFJldHVybnM6IGEgI0dzdEZsb3dSZXR1cm4uCi0gICovCi0gdHlwZWRlZiBHc3RGbG93
UmV0dXJuICgqUlRQU2Vzc2lvblNlbmRSVENQKSAoUlRQU2Vzc2lvbiAqc2VzcywgUlRQU291cmNl
ICpzcmMsIEdzdEJ1ZmZlciAqYnVmZmVyLAotLSAgICBnYm9vbGVhbiBlb3MsIGdwb2ludGVyIHVz
ZXJfZGF0YSk7Ci0rICAgIGdwb2ludGVyIHVzZXJfZGF0YSk7Ci0gCi0gLyoqCi0gICogUlRQU2Vz
c2lvblN5bmNSVENQOgotLS0gCi0yLjEwLjIKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAyLXJ0cGJpbi1hdm9pZC1nZW5lcmF0aW5nLWVycm9ycy13
aGVuLXJ0Y3AtbWVzc2FnZXMtYXIucGF0Y2ggYi9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lu
cy1nb29kLTAwMDItcnRwYmluLWF2b2lkLWdlbmVyYXRpbmctZXJyb3JzLXdoZW4tcnRjcC1tZXNz
YWdlcy1hci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWFkMDQ4MzAwY2Yu
LjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2d0ay9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAw
Mi1ydHBiaW4tYXZvaWQtZ2VuZXJhdGluZy1lcnJvcnMtd2hlbi1ydGNwLW1lc3NhZ2VzLWFyLnBh
dGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotRnJvbSBkYWI2YzQ3M2MzZTFiMmI0
MDBlZTE4YWZjNzAxNDBjMmY4NDJkZWJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog
IkFsZWphbmRybyBHLiBDYXN0cm8iIDxhbGV4QGlnYWxpYS5jb20+Ci1EYXRlOiBUaHUsIDIwIE9j
dCAyMDE2IDEzOjE0OjEzICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIHJ0cGJpbjogYXZvaWQgZ2Vu
ZXJhdGluZyBlcnJvcnMgd2hlbiBydGNwIG1lc3NhZ2VzIGFyZSBlbXB0eQotIGFuZCBjaGVjayB0
aGUgcXVldWUgaXMgbm90IGVtcHR5Ci0KLUFkZCBhIGNoZWNrIHRvIHZlcmlmeSBhbGwgdGhlIG91
dHB1dCBidWZmZXJzIHdlcmUgZW1wdHkgZm9yIHRoZQotc2Vzc2lvbiBpbiBhIHRpbW91dCBhbmQg
bG9nIGFuIGVycm9yLgotCi1odHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzczMjY5Ci0tLS0KLSBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmMgfCAxMiArKysrKysr
KysrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK
LQotZGlmZiAtLWdpdCBhL2dzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYyBiL2dzdC9ydHBtYW5h
Z2VyL3J0cHNlc3Npb24uYwotaW5kZXggNzU5MDhjMC4uZjFkOTIxMCAxMDA2NDQKLS0tLSBhL2dz
dC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYwotKysrIGIvZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lv
bi5jCi1AQCAtMzkyMyw2ICszOTIzLDcgQEAgcnRwX3Nlc3Npb25fb25fdGltZW91dCAoUlRQU2Vz
c2lvbiAqIHNlc3MsIEdzdENsb2NrVGltZSBjdXJyZW50X3RpbWUsCi0gICBSZXBvcnREYXRhIGRh
dGEgPSB7IEdTVF9SVENQX0JVRkZFUl9JTklUIH07Ci0gICBHSGFzaFRhYmxlICp0YWJsZV9jb3B5
OwotICAgUmVwb3J0T3V0cHV0ICpvdXRwdXQ7Ci0rICBnYm9vbGVhbiBhbGxfZW1wdHkgPSBGQUxT
RTsKLSAKLSAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChSVFBfSVNfU0VTU0lPTiAoc2VzcyksIEdT
VF9GTE9XX0VSUk9SKTsKLSAKLUBAIC0zOTg5LDYgKzM5OTAsOSBAQCBydHBfc2Vzc2lvbl9vbl90
aW1lb3V0IChSVFBTZXNzaW9uICogc2VzcywgR3N0Q2xvY2tUaW1lIGN1cnJlbnRfdGltZSwKLSAg
IGlmICghaXNfcnRjcF90aW1lIChzZXNzLCBjdXJyZW50X3RpbWUsICZkYXRhKSkKLSAgICAgZ290
byBkb25lOwotIAotKyAgLyogY2hlY2sgaWYgYWxsIHRoZSBidWZmZXJzIGFyZSBlbXB0eSBhZmVy
IGdlbmVyYXRpb24gKi8KLSsgIGFsbF9lbXB0eSA9IFRSVUU7Ci0rCi0gICBHU1RfREVCVUcKLSAg
ICAgICAoImRvaW5nIFJUQ1AgZ2VuZXJhdGlvbiAldSBmb3IgJXUgc291cmNlcywgZWFybHkgJWQs
IG1heSBzdXBwcmVzcyAlZCIsCi0gICAgICAgc2Vzcy0+Z2VuZXJhdGlvbiwgZGF0YS5udW1fdG9f
cmVwb3J0LCBkYXRhLmlzX2Vhcmx5LCBkYXRhLm1heV9zdXBwcmVzcyk7Ci1AQCAtNDAzNiw4ICs0
MDQwLDggQEAgZG9uZToKLSAKLSAgICAgZW1wdHlfYnVmZmVyID0gZ3N0X2J1ZmZlcl9nZXRfc2l6
ZSAoYnVmZmVyKSA9PSAwOwotIAotLSAgICBpZiAoZW1wdHlfYnVmZmVyKQotLSAgICAgIGdfd2Fy
bmluZyAoInJ0cHNlc3Npb246IFRyeWluZyB0byBzZW5kIGFuIGVtcHR5IFJUQ1AgcGFja2V0Iik7
Ci0rICAgIGlmICghZW1wdHlfYnVmZmVyKQotKyAgICAgIGFsbF9lbXB0eSA9IEZBTFNFOwotIAot
ICAgICBpZiAoc2Vzcy0+Y2FsbGJhY2tzLnNlbmRfcnRjcCAmJgotICAgICAgICAgIWVtcHR5X2J1
ZmZlciAmJiAoZG9fbm90X3N1cHByZXNzIHx8ICFkYXRhLm1heV9zdXBwcmVzcykpIHsKLUBAIC00
MDY4LDYgKzQwNzIsMTAgQEAgZG9uZToKLSAgICAgZ19vYmplY3RfdW5yZWYgKHNvdXJjZSk7Ci0g
ICAgIGdfc2xpY2VfZnJlZSAoUmVwb3J0T3V0cHV0LCBvdXRwdXQpOwotICAgfQotKwotKyAgaWYg
KGFsbF9lbXB0eSkKLSsgICAgR1NUX0VSUk9SICgiZ2VuZXJhdGVkIGVtcHR5IFJUQ1AgbWVzc2Fn
ZXMgZm9yIGFsbCB0aGUgc291cmNlcyIpOwotKwotICAgcmV0dXJuIHJlc3VsdDsKLSB9Ci0gCi0t
LSAKLTIuMTAuMgotCmRpZmYgLS1naXQgYS9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1n
b29kLTAwMDMtcnRwYmluLXJlY2VpdmUtYnVuZGxlLXN1cHBvcnQucGF0Y2ggYi9Ub29scy9ndGsv
cGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDMtcnRwYmluLXJlY2VpdmUtYnVuZGxlLXN1cHBv
cnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmODljODE5OThiLi4wMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDMtcnRw
YmluLXJlY2VpdmUtYnVuZGxlLXN1cHBvcnQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMDE4
ICswLDAgQEAKLUZyb20gZGNkM2NlOTc1MWNkZWYwYjVhYjFmYTExODM1NWY5MmJkZmU4MmNiMyBN
b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGln
YWxpYS5jb20+Ci1EYXRlOiBXZWQsIDE2IE5vdiAyMDE2IDA4OjU2OjM0ICswMTAwCi1TdWJqZWN0
OiBbUEFUQ0hdIHJ0cGJpbjogcmVjZWl2ZSBidW5kbGUgc3VwcG9ydAotCi1BIG5ldyBzaWduYWwg
bmFtZWQgb24tYnVuZGxlZC1zc3JjIGlzIHByb3ZpZGVkIGFuZCBjYW4gYmUKLXVzZWQgYnkgdGhl
IGFwcGxpY2F0aW9uIHRvIHJlZGlyZWN0IGEgc3RyZWFtIHRvIGEgZGlmZmVyZW50Ci1Hc3RSdHBT
ZXNzaW9uIG9yIHRvIGtlZXAgdGhlIFJUWCBzdHJlYW0gZ3JvdXBlZCB3aXRoaW4gdGhlCi1Hc3RS
dHBTZXNzaW9uIG9mIHRoZSBzYW1lIG1lZGlhIHR5cGUuCi0KLWh0dHBzOi8vYnVnemlsbGEuZ25v
bWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI3NDAKLS0tLQotIGRvY3MvcGx1Z2lucy9nc3QtcGx1
Z2lucy1nb29kLXBsdWdpbnMuc2lnbmFscyB8ICAgOCArCi0gZ3N0L3J0cG1hbmFnZXIvZ3N0cnRw
YmluLmMgICAgICAgICAgICAgICAgICAgIHwgNTYyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0t
Ci0gZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmggICAgICAgICAgICAgICAgICAgIHwgICAyICsK
LSB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwot
IHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmUgICAgICAgICAgICAgICB8ICAgMSArCi0g
dGVzdHMvY2hlY2svZWxlbWVudHMvcnRwYnVuZGxlLmMgICAgICAgICAgICAgIHwgMzkwICsrKysr
KysrKysrKysrKysrKwotIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMSArCi0gdGVzdHMvZXhhbXBsZXMvcnRwLy5naXRpZ25vcmUgICAgICAgICAgICAg
ICAgIHwgICAyICsKLSB0ZXN0cy9leGFtcGxlcy9ydHAvTWFrZWZpbGUuYW0gICAgICAgICAgICAg
ICAgfCAgMTAgKy0KLSB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LXJ0cGJ1bmRsZS5jICAgICAg
ICAgfCAyNjYgKysrKysrKysrKysrCi0gdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1ydHBidW5k
bGUuYyAgICAgICAgIHwgMTc5ICsrKysrKysrCi0gMTEgZmlsZXMgY2hhbmdlZCwgMTI2NSBpbnNl
cnRpb25zKCspLCAxNjAgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2No
ZWNrL2VsZW1lbnRzL3J0cGJ1bmRsZS5jCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2V4YW1w
bGVzL3J0cC9jbGllbnQtcnRwYnVuZGxlLmMKLSBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvZXhh
bXBsZXMvcnRwL3NlcnZlci1ydHBidW5kbGUuYwotCi1kaWZmIC0tZ2l0IGEvZG9jcy9wbHVnaW5z
L2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5zaWduYWxzIGIvZG9jcy9wbHVnaW5zL2dzdC1wbHVn
aW5zLWdvb2QtcGx1Z2lucy5zaWduYWxzCi1pbmRleCAzZGIxN2U5Li40NGJiZGRhIDEwMDY0NAot
LS0tIGEvZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5zaWduYWxzCi0rKysg
Yi9kb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnNpZ25hbHMKLUBAIC0zNzUs
NiArMzc1LDE0IEBAIGd1aW50ICBhcmcxCi0gPC9TSUdOQUw+Ci0gCi0gPFNJR05BTD4KLSs8TkFN
RT5Hc3RSdHBCaW46Om9uLWJ1bmRsZWQtc3NyYzwvTkFNRT4KLSs8UkVUVVJOUz5ndWludDwvUkVU
VVJOUz4KLSs8RkxBR1M+bDwvRkxBR1M+Ci0rR3N0UnRwQmluICpnc3RydHBiaW4KLStndWludCAg
YXJnMQotKzwvU0lHTkFMPgotKwotKzxTSUdOQUw+Ci0gPE5BTUU+R3N0UnRwSml0dGVyQnVmZmVy
OjpjbGVhci1wdC1tYXA8L05BTUU+Ci0gPFJFVFVSTlM+dm9pZDwvUkVUVVJOUz4KLSA8RkxBR1M+
bGE8L0ZMQUdTPgotZGlmZiAtLWdpdCBhL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jIGIvZ3N0
L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmMKLWluZGV4IDY0OGFkYjkuLmY1OGRlMDEgMTAwNjQ0Ci0t
LS0gYS9nc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYwotKysrIGIvZ3N0L3J0cG1hbmFnZXIvZ3N0
cnRwYmluLmMKLUBAIC01Myw2ICs1MywxMyBAQAotICAqIFNTUkMgaW4gdGhlIFJUUCBwYWNrZXRz
IHRvIGl0cyBvd24gU1NSQyBhbmQgd2lsIGZvcndhcmQgdGhlIHBhY2tldHMgb24gdGhlCi0gICog
c2VuZF9ydHBfc3JjX1wldSBwYWQgYWZ0ZXIgdXBkYXRpbmcgaXRzIGludGVybmFsIHN0YXRlLgot
ICAqCi0rICogI0dzdFJ0cEJpbiBjYW4gYWxzbyBkZW11bHRpcGxleCBpbmNvbWluZyBidW5kbGVk
IHN0cmVhbXMuIFRoZSBmaXJzdAotKyAqICNHc3RSdHBTZXNzaW9uIHdpbGwgaGF2ZSBhICNHc3RS
dHBTc3JjRGVtdXggZWxlbWVudCBzcGxpdHRpbmcgdGhlIHN0cmVhbXMKLSsgKiBiYXNlZCBvbiB0
aGVpciBTU1JDIGFuZCBwb3RlbnRpYWxseSBkaXNwYXRjaGVkIHRvIGEgZGlmZmVyZW50ICNHc3RS
dHBTZXNzaW9uLgotKyAqIEJlY2F1c2UgcmV0cmFuc21pc3Npb24gU1NSQ3MgbmVlZCB0byBiZSBt
ZXJnZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBtZWRpYQotKyAqIHN0cmVhbSB0aGUgI0dzdFJ0
cEJpbjo6b24tYnVuZGxlZC1zc3JjIHNpZ25hbCBpcyBlbWl0dGVkIHNvIHRoYXQgdGhlCi0rICog
YXBwbGljYXRpb24gY2FuIGZpbmQgb3V0IHRvIHdoaWNoIHNlc3Npb24gdGhlIFNTUkMgYmVsb25n
cy4KLSsgKgotICAqIFRoZSBzZXNzaW9uIG1hbmFnZXIgbmVlZHMgdGhlIGNsb2NrLXJhdGUgb2Yg
dGhlIHBheWxvYWQgdHlwZXMgaXQgaXMgaGFuZGxpbmcKLSAgKiBhbmQgd2lsbCBzaWduYWwgdGhl
ICNHc3RSdHBTZXNzaW9uOjpyZXF1ZXN0LXB0LW1hcCBzaWduYWwgd2hlbiBpdCBuZWVkcyBzdWNo
IGEKLSAgKiBtYXBwaW5nLiBPbmUgY2FuIGNsZWFyIHRoZSBjYWNoZWQgdmFsdWVzIHdpdGggdGhl
ICNHc3RSdHBTZXNzaW9uOjpjbGVhci1wdC1tYXAKLUBAIC0yNzYsNiArMjgzLDggQEAgZW51bQot
ICAgU0lHTkFMX09OX05FV19TRU5ERVJfU1NSQywKLSAgIFNJR05BTF9PTl9TRU5ERVJfU1NSQ19B
Q1RJVkUsCi0gCi0rICBTSUdOQUxfT05fQlVORExFRF9TU1JDLAotKwotICAgTEFTVF9TSUdOQUwK
LSB9OwotIAotQEAgLTM2Miw2ICszNzEsMTQgQEAgc3RhdGljIHZvaWQgcmVtb3ZlX3NlbmRfcnRw
IChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKTsKLSBzdGF0
aWMgdm9pZCByZW1vdmVfcnRjcCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RSdHBCaW5TZXNzaW9u
ICogc2Vzc2lvbik7Ci0gc3RhdGljIHZvaWQgZnJlZV9jbGllbnQgKEdzdFJ0cEJpbkNsaWVudCAq
IGNsaWVudCwgR3N0UnRwQmluICogYmluKTsKLSBzdGF0aWMgdm9pZCBmcmVlX3N0cmVhbSAoR3N0
UnRwQmluU3RyZWFtICogc3RyZWFtLCBHc3RSdHBCaW4gKiBiaW4pOwotK3N0YXRpYyBHc3RSdHBC
aW5TZXNzaW9uICpjcmVhdGVfc2Vzc2lvbiAoR3N0UnRwQmluICogcnRwYmluLCBnaW50IGlkKTsK
LStzdGF0aWMgR3N0UGFkICpjb21wbGV0ZV9zZXNzaW9uX3NpbmsgKEdzdFJ0cEJpbiAqIHJ0cGJp
biwKLSsgICAgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24sIGdib29sZWFuIGJ1bmRsZV9kZW11
eGVyX25lZWRlZCk7Ci0rc3RhdGljIHZvaWQKLStjb21wbGV0ZV9zZXNzaW9uX3JlY2VpdmVyIChH
c3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uLAotKyAgICBndWlu
dCBzZXNzaWQpOwotK3N0YXRpYyBHc3RQYWQgKmNvbXBsZXRlX3Nlc3Npb25fcnRjcCAoR3N0UnRw
QmluICogcnRwYmluLAotKyAgICBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbiwgZ3VpbnQgc2Vz
c2lkLCBnYm9vbGVhbiBidW5kbGVfZGVtdXhlcl9uZWVkZWQpOwotIAotIC8qIE1hbmFnZXMgdGhl
IFJUUCBzdHJlYW0gZm9yIG9uZSBTU1JDLgotICAqCi1AQCAtNDI4LDYgKzQ0NSwxMiBAQCBzdHJ1
Y3QgX0dzdFJ0cEJpblNlc3Npb24KLSAgIGd1bG9uZyBkZW11eF9uZXdwYWRfc2lnOwotICAgZ3Vs
b25nIGRlbXV4X3BhZHJlbW92ZWRfc2lnOwotIAotKyAgLyogQnVuZGxpbmcgc3VwcG9ydCAqLwot
KyAgR3N0RWxlbWVudCAqcnRwX2Z1bm5lbDsKLSsgIEdzdEVsZW1lbnQgKnJ0Y3BfZnVubmVsOwot
KyAgR3N0RWxlbWVudCAqYnVuZGxlX2RlbXV4OwotKyAgZ3Vsb25nIGJ1bmRsZV9kZW11eF9uZXdw
YWRfc2lnOwotKwotICAgR011dGV4IGxvY2s7Ci0gCi0gICAvKiBsaXN0IG9mIEdzdFJ0cEJpblN0
cmVhbSAqLwotQEAgLTYyOSw2ICs2NTIsOTYgQEAgc3NyY19kZW11eF9wYWRfcmVtb3ZlZCAoR3N0
RWxlbWVudCAqIGVsZW1lbnQsIGd1aW50IHNzcmMsIEdzdFBhZCAqIHBhZCwKLSAgIEdTVF9SVFBf
QklOX1VOTE9DSyAocnRwYmluKTsKLSB9Ci0gCi0rc3RhdGljIHZvaWQKLStuZXdfYnVuZGxlZF9z
c3JjX3BhZF9mb3VuZCAoR3N0RWxlbWVudCAqIGVsZW1lbnQsIGd1aW50IHNzcmMsIEdzdFBhZCAq
IHBhZCwKLSsgICAgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24pCi0rewotKyAgR1ZhbHVlIHJl
c3VsdCA9IEdfVkFMVUVfSU5JVDsKLSsgIEdWYWx1ZSBwYXJhbXNbMl0gPSB7IEdfVkFMVUVfSU5J
VCwgR19WQUxVRV9JTklUIH07Ci0rICBndWludCBzZXNzaW9uX2lkID0gMDsKLSsgIEdzdFJ0cEJp
blNlc3Npb24gKnRhcmdldF9zZXNzaW9uID0gTlVMTDsKLSsgIEdzdFJ0cEJpbiAqcnRwYmluID0g
c2Vzc2lvbi0+YmluOwotKyAgZ2NoYXIgKm5hbWU7Ci0rICBHc3RQYWQgKnNyY19wYWQ7Ci0rICBH
c3RQYWQgKnJlY3ZfcnRwX3NpbmsgPSBOVUxMOwotKyAgR3N0UGFkICpyZWN2X3J0Y3Bfc2luayA9
IE5VTEw7Ci0rICBHc3RQYWRMaW5rUmV0dXJuIHJldDsKLSsKLSsgIEdTVF9SVFBfQklOX0RZTl9M
T0NLIChydHBiaW4pOwotKyAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAibmV3IGJ1bmRsZWQg
U1NSQyBwYWQgJTA4eCwgJXM6JXMiLCBzc3JjLAotKyAgICAgIEdTVF9ERUJVR19QQURfTkFNRSAo
cGFkKSk7Ci0rCi0rICBnX3ZhbHVlX2luaXQgKCZyZXN1bHQsIEdfVFlQRV9VSU5UKTsKLSsgIGdf
dmFsdWVfaW5pdCAoJnBhcmFtc1swXSwgR1NUX1RZUEVfRUxFTUVOVCk7Ci0rICBnX3ZhbHVlX3Nl
dF9vYmplY3QgKCZwYXJhbXNbMF0sIHJ0cGJpbik7Ci0rICBnX3ZhbHVlX2luaXQgKCZwYXJhbXNb
MV0sIEdfVFlQRV9VSU5UKTsKLSsgIGdfdmFsdWVfc2V0X3VpbnQgKCZwYXJhbXNbMV0sIHNzcmMp
OwotKwotKyAgZ19zaWduYWxfZW1pdHYgKHBhcmFtcywKLSsgICAgICBnc3RfcnRwX2Jpbl9zaWdu
YWxzW1NJR05BTF9PTl9CVU5ETEVEX1NTUkNdLCAwLCAmcmVzdWx0KTsKLSsgIGdfdmFsdWVfdW5z
ZXQgKCZwYXJhbXNbMF0pOwotKwotKyAgc2Vzc2lvbl9pZCA9IGdfdmFsdWVfZ2V0X3VpbnQgKCZy
ZXN1bHQpOwotKyAgaWYgKHNlc3Npb25faWQgPT0gMCkgewotKyAgICB0YXJnZXRfc2Vzc2lvbiA9
IHNlc3Npb247Ci0rICB9IGVsc2UgewotKyAgICB0YXJnZXRfc2Vzc2lvbiA9IGZpbmRfc2Vzc2lv
bl9ieV9pZCAocnRwYmluLCAoZ2ludCkgc2Vzc2lvbl9pZCk7Ci0rICAgIGlmICghdGFyZ2V0X3Nl
c3Npb24pIHsKLSsgICAgICB0YXJnZXRfc2Vzc2lvbiA9IGNyZWF0ZV9zZXNzaW9uIChydHBiaW4s
IHNlc3Npb25faWQpOwotKyAgICB9Ci0rICAgIGlmICghdGFyZ2V0X3Nlc3Npb24tPnJlY3ZfcnRw
X3NpbmspIHsKLSsgICAgICByZWN2X3J0cF9zaW5rID0gY29tcGxldGVfc2Vzc2lvbl9zaW5rIChy
dHBiaW4sIHRhcmdldF9zZXNzaW9uLCBGQUxTRSk7Ci0rICAgIH0KLSsKLSsgICAgaWYgKCF0YXJn
ZXRfc2Vzc2lvbi0+cmVjdl9ydHBfc3JjKQotKyAgICAgIGNvbXBsZXRlX3Nlc3Npb25fcmVjZWl2
ZXIgKHJ0cGJpbiwgdGFyZ2V0X3Nlc3Npb24sIHNlc3Npb25faWQpOwotKwotKyAgICBpZiAoIXRh
cmdldF9zZXNzaW9uLT5yZWN2X3J0Y3Bfc2luaykgewotKyAgICAgIHJlY3ZfcnRjcF9zaW5rID0K
LSsgICAgICAgICAgY29tcGxldGVfc2Vzc2lvbl9ydGNwIChydHBiaW4sIHRhcmdldF9zZXNzaW9u
LCBzZXNzaW9uX2lkLCBGQUxTRSk7Ci0rICAgIH0KLSsgIH0KLSsKLSsgIEdTVF9ERUJVR19PQkpF
Q1QgKHJ0cGJpbiwgIkFzc2lnbmluZyBidW5kbGVkIHNzcmMgJXUgdG8gc2Vzc2lvbiAldSIsIHNz
cmMsCi0rICAgICAgc2Vzc2lvbl9pZCk7Ci0rCi0rICBpZiAoIXJlY3ZfcnRwX3NpbmspIHsKLSsg
ICAgcmVjdl9ydHBfc2luayA9Ci0rICAgICAgICBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQg
KHRhcmdldF9zZXNzaW9uLT5ydHBfZnVubmVsLCAic2lua18ldSIpOwotKyAgfQotKwotKyAgaWYg
KCFyZWN2X3J0Y3Bfc2luaykgewotKyAgICByZWN2X3J0Y3Bfc2luayA9Ci0rICAgICAgICBnc3Rf
ZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQgKHRhcmdldF9zZXNzaW9uLT5ydGNwX2Z1bm5lbCwgInNp
bmtfJXUiKTsKLSsgIH0KLSsKLSsgIG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzcmNfJXUiLCBz
c3JjKTsKLSsgIHNyY19wYWQgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoZWxlbWVudCwg
bmFtZSk7Ci0rICByZXQgPSBnc3RfcGFkX2xpbmsgKHNyY19wYWQsIHJlY3ZfcnRwX3NpbmspOwot
KyAgZ19mcmVlIChuYW1lKTsKLSsgIGdzdF9vYmplY3RfdW5yZWYgKHNyY19wYWQpOwotKyAgZ3N0
X29iamVjdF91bnJlZiAocmVjdl9ydHBfc2luayk7Ci0rICBpZiAocmV0ICE9IEdTVF9QQURfTElO
S19PSykgewotKyAgICBnX3dhcm5pbmcKLSsgICAgICAgICgicnRwYmluOiBmYWlsZWQgdG8gbGlu
ayBidW5kbGUgZGVtdXhlciB0byByZWNlaXZlIHJ0cCBmdW5uZWwgZm9yIHNlc3Npb24gJXUiLAot
KyAgICAgICAgc2Vzc2lvbl9pZCk7Ci0rICB9Ci0rCi0rICBuYW1lID0gZ19zdHJkdXBfcHJpbnRm
ICgicnRjcF9zcmNfJXUiLCBzc3JjKTsKLSsgIHNyY19wYWQgPSBnc3RfZWxlbWVudF9nZXRfc3Rh
dGljX3BhZCAoZWxlbWVudCwgbmFtZSk7Ci0rICBnc3RfcGFkX2xpbmsgKHNyY19wYWQsIHJlY3Zf
cnRjcF9zaW5rKTsKLSsgIGdfZnJlZSAobmFtZSk7Ci0rICBnc3Rfb2JqZWN0X3VucmVmIChzcmNf
cGFkKTsKLSsgIGdzdF9vYmplY3RfdW5yZWYgKHJlY3ZfcnRjcF9zaW5rKTsKLSsgIGlmIChyZXQg
IT0gR1NUX1BBRF9MSU5LX09LKSB7Ci0rICAgIGdfd2FybmluZwotKyAgICAgICAgKCJydHBiaW46
IGZhaWxlZCB0byBsaW5rIGJ1bmRsZSBkZW11eGVyIHRvIHJlY2VpdmUgcnRjcCBzaW5rIHBhZCBm
b3Igc2Vzc2lvbiAldSIsCi0rICAgICAgICBzZXNzaW9uX2lkKTsKLSsgIH0KLSsKLSsgIEdTVF9S
VFBfQklOX0RZTl9VTkxPQ0sgKHJ0cGJpbik7Ci0rfQotKwotIC8qIGNyZWF0ZSBhIHNlc3Npb24g
d2l0aCB0aGUgZ2l2ZW4gaWQuICBNdXN0IGJlIGNhbGxlZCB3aXRoIFJUUF9CSU5fTE9DSyAqLwot
IHN0YXRpYyBHc3RSdHBCaW5TZXNzaW9uICoKLSBjcmVhdGVfc2Vzc2lvbiAoR3N0UnRwQmluICog
cnRwYmluLCBnaW50IGlkKQotQEAgLTY0OSw2ICs3NjIsMTAgQEAgY3JlYXRlX3Nlc3Npb24gKEdz
dFJ0cEJpbiAqIHJ0cGJpbiwgZ2ludCBpZCkKLSAgIHNlc3MtPmJpbiA9IHJ0cGJpbjsKLSAgIHNl
c3MtPnNlc3Npb24gPSBzZXNzaW9uOwotICAgc2Vzcy0+ZGVtdXggPSBkZW11eDsKLSsKLSsgIHNl
c3MtPnJ0cF9mdW5uZWwgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UgKCJmdW5uZWwiLCBOVUxM
KTsKLSsgIHNlc3MtPnJ0Y3BfZnVubmVsID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlICgiZnVu
bmVsIiwgTlVMTCk7Ci0rCi0gICBzZXNzLT5wdG1hcCA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbCAo
TlVMTCwgTlVMTCwgTlVMTCwKLSAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpIGdzdF9jYXBzX3VucmVm
KTsKLSAgIHJ0cGJpbi0+c2Vzc2lvbnMgPSBnX3NsaXN0X3ByZXBlbmQgKHJ0cGJpbi0+c2Vzc2lv
bnMsIHNlc3MpOwotQEAgLTY5Niw2ICs4MTMsOCBAQCBjcmVhdGVfc2Vzc2lvbiAoR3N0UnRwQmlu
ICogcnRwYmluLCBnaW50IGlkKQotIAotICAgZ3N0X2Jpbl9hZGQgKEdTVF9CSU5fQ0FTVCAocnRw
YmluKSwgc2Vzc2lvbik7Ci0gICBnc3RfYmluX2FkZCAoR1NUX0JJTl9DQVNUIChydHBiaW4pLCBk
ZW11eCk7Ci0rICBnc3RfYmluX2FkZCAoR1NUX0JJTl9DQVNUIChydHBiaW4pLCBzZXNzLT5ydHBf
ZnVubmVsKTsKLSsgIGdzdF9iaW5fYWRkIChHU1RfQklOX0NBU1QgKHJ0cGJpbiksIHNlc3MtPnJ0
Y3BfZnVubmVsKTsKLSAKLSAgIEdTVF9PQkpFQ1RfTE9DSyAocnRwYmluKTsKLSAgIHRhcmdldCA9
IEdTVF9TVEFURV9UQVJHRVQgKHJ0cGJpbik7Ci1AQCAtNzA0LDYgKzgyMyw4IEBAIGNyZWF0ZV9z
ZXNzaW9uIChHc3RSdHBCaW4gKiBydHBiaW4sIGdpbnQgaWQpCi0gICAvKiBjaGFuZ2Ugc3RhdGUg
b25seSB0byB3aGF0J3MgbmVlZGVkICovCi0gICBnc3RfZWxlbWVudF9zZXRfc3RhdGUgKGRlbXV4
LCB0YXJnZXQpOwotICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlIChzZXNzaW9uLCB0YXJnZXQpOwot
KyAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlIChzZXNzLT5ydHBfZnVubmVsLCB0YXJnZXQpOwotKyAg
Z3N0X2VsZW1lbnRfc2V0X3N0YXRlIChzZXNzLT5ydGNwX2Z1bm5lbCwgdGFyZ2V0KTsKLSAKLSAg
IHJldHVybiBzZXNzOwotIAotQEAgLTgwNyw3ICs5MjgsNyBAQCBnZXRfcHRfbWFwIChHc3RSdHBC
aW5TZXNzaW9uICogc2Vzc2lvbiwgZ3VpbnQgcHQpCi0gICBHVmFsdWUgcmV0ID0geyAwIH07Ci0g
ICBHVmFsdWUgYXJnc1szXSA9IHsgezB9LCB7MH0sIHswfSB9OwotIAotLSAgR1NUX0RFQlVHICgi
c2VhcmNoaW5nIHB0ICVkIGluIGNhY2hlIiwgcHQpOwotKyAgR1NUX0RFQlVHICgic2VhcmNoaW5n
IHB0ICV1IGluIGNhY2hlIiwgcHQpOwotIAotICAgR1NUX1JUUF9TRVNTSU9OX0xPQ0sgKHNlc3Np
b24pOwotIAotQEAgLTgyMCw3ICs5NDEsNyBAQCBnZXRfcHRfbWFwIChHc3RSdHBCaW5TZXNzaW9u
ICogc2Vzc2lvbiwgZ3VpbnQgcHQpCi0gCi0gICBiaW4gPSBzZXNzaW9uLT5iaW47Ci0gCi0tICBH
U1RfREVCVUcgKCJlbWl0aW5nIHNpZ25hbCBmb3IgcHQgJWQgaW4gc2Vzc2lvbiAlZCIsIHB0LCBz
ZXNzaW9uLT5pZCk7Ci0rICBHU1RfREVCVUcgKCJlbWl0aW5nIHNpZ25hbCBmb3IgcHQgJXUgaW4g
c2Vzc2lvbiAldSIsIHB0LCBzZXNzaW9uLT5pZCk7Ci0gCi0gICAvKiBub3QgaW4gY2FjaGUsIHNl
bmQgc2lnbmFsIHRvIHJlcXVlc3QgY2FwcyAqLwotICAgZ192YWx1ZV9pbml0ICgmYXJnc1swXSwg
R1NUX1RZUEVfRUxFTUVOVCk7Ci1AQCAtODU2LDcgKzk3Nyw3IEBAIGdldF9wdF9tYXAgKEdzdFJ0
cEJpblNlc3Npb24gKiBzZXNzaW9uLCBndWludCBwdCkKLSAgIGlmICghY2FwcykKLSAgICAgZ290
byBub19jYXBzOwotIAotLSAgR1NUX0RFQlVHICgiY2FjaGluZyBwdCAlZCBhcyAlIiBHU1RfUFRS
X0ZPUk1BVCwgcHQsIGNhcHMpOwotKyAgR1NUX0RFQlVHICgiY2FjaGluZyBwdCAldSBhcyAlIiBH
U1RfUFRSX0ZPUk1BVCwgcHQsIGNhcHMpOwotIAotICAgLyogc3RvcmUgaW4gY2FjaGUsIHRha2Ug
YWRkaXRpb25hbCByZWYgKi8KLSAgIGdfaGFzaF90YWJsZV9pbnNlcnQgKHNlc3Npb24tPnB0bWFw
LCBHSU5UX1RPX1BPSU5URVIgKHB0KSwKLUBAIC05NDcsNyArMTA2OCw3IEBAIGdzdF9ydHBfYmlu
X2dldF9zZXNzaW9uIChHc3RSdHBCaW4gKiBiaW4sIGd1aW50IHNlc3Npb25faWQpCi0gICBHc3RF
bGVtZW50ICpyZXQgPSBOVUxMOwotIAotICAgR1NUX1JUUF9CSU5fTE9DSyAoYmluKTsKLS0gIEdT
VF9ERUJVR19PQkpFQ1QgKGJpbiwgInJldHJpZXZpbmcgR3N0UnRwU2Vzc2lvbiwgaW5kZXg6ICVk
Iiwgc2Vzc2lvbl9pZCk7Ci0rICBHU1RfREVCVUdfT0JKRUNUIChiaW4sICJyZXRyaWV2aW5nIEdz
dFJ0cFNlc3Npb24sIGluZGV4OiAldSIsIHNlc3Npb25faWQpOwotICAgc2Vzc2lvbiA9IGZpbmRf
c2Vzc2lvbl9ieV9pZCAoYmluLCAoZ2ludCkgc2Vzc2lvbl9pZCk7Ci0gICBpZiAoc2Vzc2lvbikg
ewotICAgICByZXQgPSBnc3Rfb2JqZWN0X3JlZiAoc2Vzc2lvbi0+c2Vzc2lvbik7Ci1AQCAtOTY0
LDcgKzEwODUsNyBAQCBnc3RfcnRwX2Jpbl9nZXRfaW50ZXJuYWxfc2Vzc2lvbiAoR3N0UnRwQmlu
ICogYmluLCBndWludCBzZXNzaW9uX2lkKQotICAgR3N0UnRwQmluU2Vzc2lvbiAqc2Vzc2lvbjsK
LSAKLSAgIEdTVF9SVFBfQklOX0xPQ0sgKGJpbik7Ci0tICBHU1RfREVCVUdfT0JKRUNUIChiaW4s
ICJyZXRyaWV2aW5nIGludGVybmFsIFJUUFNlc3Npb24gb2JqZWN0LCBpbmRleDogJWQiLAotKyAg
R1NUX0RFQlVHX09CSkVDVCAoYmluLCAicmV0cmlldmluZyBpbnRlcm5hbCBSVFBTZXNzaW9uIG9i
amVjdCwgaW5kZXg6ICV1IiwKLSAgICAgICBzZXNzaW9uX2lkKTsKLSAgIHNlc3Npb24gPSBmaW5k
X3Nlc3Npb25fYnlfaWQgKGJpbiwgKGdpbnQpIHNlc3Npb25faWQpOwotICAgaWYgKHNlc3Npb24p
IHsKLUBAIC0yMTk0LDYgKzIzMTUsMjkgQEAgZ3N0X3J0cF9iaW5fY2xhc3NfaW5pdCAoR3N0UnRw
QmluQ2xhc3MgKiBrbGFzcykKLSAgICAgICAgICAgb25fc2VuZGVyX3NzcmNfYWN0aXZlKSwgTlVM
TCwgTlVMTCwgZ19jY2xvc3VyZV9tYXJzaGFsX2dlbmVyaWMsCi0gICAgICAgR19UWVBFX05PTkUs
IDIsIEdfVFlQRV9VSU5ULCBHX1RZUEVfVUlOVCk7Ci0gCi0rCi0rICAvKioKLSsgICAqIEdzdFJ0
cEJpbjo6b24tYnVuZGxlZC1zc3JjOgotKyAgICogQHJ0cGJpbjogdGhlIG9iamVjdCB3aGljaCBy
ZWNlaXZlZCB0aGUgc2lnbmFsCi0rICAgKiBAc3NyYzogdGhlIGJ1bmRsZWQgU1NSQwotKyAgICoK
LSsgICAqIE5vdGlmeSBvZiBhIG5ldyBpbmNvbWluZyBidW5kbGVkIFNTUkMuIElmIG5vIGhhbmRs
ZXIgaXMgY29ubmVjdGVkIHRvIHRoZQotKyAgICogc2lnbmFsIHRoZW4gdGhlICNHc3RSdHBTZXNz
aW9uIGNyZWF0ZWQgZm9yIHRoZSByZWN2X3J0cF9zaW5rX1wldQotKyAgICogcmVxdWVzdCBwYWQg
d2lsbCBiZSBtYW5hZ2luZyB0aGlzIG5ldyBTU1JDLiBIb3dldmVyIGlmIHRoZXJlIGlzIGEgaGFu
ZGxlcgotKyAgICogY29ubmVjdGVkIHRoZW4gdGhlIGFwcGxpY2F0aW9uIGNhbiBkZWNpZGVkIHRv
IGRpc3BhdGNoIHRoaXMgbmV3IHN0cmVhbSB0bwotKyAgICogYW5vdGhlciBzZXNzaW9uIGJ5IHBy
b3ZpZGluZyBpdHMgSUQgYXMgcmV0dXJuIHZhbHVlIG9mIHRoZSBoYW5kbGVyLiBUaGlzCi0rICAg
KiBjYW4gYmUgcGFydGljdWxhcmx5IHVzZWZ1bCB0byBrZWVwIHJldHJhbnNtaXNzaW9uIFNTUkNz
IGdyb3VwZWQgd2l0aCB0aGUKLSsgICAqIHNlc3Npb24gZm9yIHdoaWNoIHRoZXkgaGFuZGxlIHJl
dHJhbnNtaXNzaW9uLgotKyAgICoKLSsgICAqIFNpbmNlOiAxLjEyCi0rICAgKi8KLSsgIGdzdF9y
dHBfYmluX3NpZ25hbHNbU0lHTkFMX09OX0JVTkRMRURfU1NSQ10gPQotKyAgICAgIGdfc2lnbmFs
X25ldyAoIm9uLWJ1bmRsZWQtc3NyYyIsIEdfVFlQRV9GUk9NX0NMQVNTIChrbGFzcyksCi0rICAg
ICAgR19TSUdOQUxfUlVOX0xBU1QsIEdfU1RSVUNUX09GRlNFVCAoR3N0UnRwQmluQ2xhc3MsCi0r
ICAgICAgICAgIG9uX2J1bmRsZWRfc3NyYyksIE5VTEwsIE5VTEwsCi0rICAgICAgZ19jY2xvc3Vy
ZV9tYXJzaGFsX2dlbmVyaWMsIEdfVFlQRV9VSU5ULCAxLCBHX1RZUEVfVUlOVCk7Ci0rCi0rCi0g
ICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChnb2JqZWN0X2NsYXNzLCBQUk9QX1NE
RVMsCi0gICAgICAgZ19wYXJhbV9zcGVjX2JveGVkICgic2RlcyIsICJTREVTIiwKLSAgICAgICAg
ICAgIlRoZSBTREVTIGl0ZW1zIG9mIHRoaXMgc2Vzc2lvbiIsCi1AQCAtMzAyMSw3ICszMTY1LDcg
QEAgbmV3X3BheWxvYWRfZm91bmQgKEdzdEVsZW1lbnQgKiBlbGVtZW50LCBndWludCBwdCwgR3N0
UGFkICogcGFkLAotIAotICAgcnRwYmluID0gc3RyZWFtLT5iaW47Ci0gCi0tICBHU1RfREVCVUcg
KCJuZXcgcGF5bG9hZCBwYWQgJWQiLCBwdCk7Ci0rICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4s
ICJuZXcgcGF5bG9hZCBwYWQgJXUiLCBwdCk7Ci0gCi0gICBHU1RfUlRQX0JJTl9TSFVURE9XTl9M
T0NLIChydHBiaW4sIHNodXRkb3duKTsKLSAKLUBAIC0zMDc4LDcgKzMyMjIsNyBAQCBwdF9tYXBf
cmVxdWVzdGVkIChHc3RFbGVtZW50ICogZWxlbWVudCwgZ3VpbnQgcHQsIEdzdFJ0cEJpblNlc3Np
b24gKiBzZXNzaW9uKQotIAotICAgcnRwYmluID0gc2Vzc2lvbi0+YmluOwotIAotLSAgR1NUX0RF
QlVHX09CSkVDVCAocnRwYmluLCAicGF5bG9hZCBtYXAgcmVxdWVzdGVkIGZvciBwdCAlZCBpbiBz
ZXNzaW9uICVkIiwgcHQsCi0rICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJwYXlsb2FkIG1h
cCByZXF1ZXN0ZWQgZm9yIHB0ICV1IGluIHNlc3Npb24gJXUiLCBwdCwKLSAgICAgICBzZXNzaW9u
LT5pZCk7Ci0gCi0gICBjYXBzID0gZ2V0X3B0X21hcCAoc2Vzc2lvbiwgcHQpOwotQEAgLTMwOTks
NyArMzI0Myw3IEBAIHN0YXRpYyB2b2lkCi0gcGF5bG9hZF90eXBlX2NoYW5nZSAoR3N0RWxlbWVu
dCAqIGVsZW1lbnQsIGd1aW50IHB0LCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbikKLSB7Ci0g
ICBHU1RfREVCVUdfT0JKRUNUIChzZXNzaW9uLT5iaW4sCi0tICAgICAgImVtaXRpbmcgc2lnbmFs
IGZvciBwdCB0eXBlIGNoYW5nZWQgdG8gJWQgaW4gc2Vzc2lvbiAlZCIsIHB0LAotKyAgICAgICJl
bWl0aW5nIHNpZ25hbCBmb3IgcHQgdHlwZSBjaGFuZ2VkIHRvICV1IGluIHNlc3Npb24gJXUiLCBw
dCwKLSAgICAgICBzZXNzaW9uLT5pZCk7Ci0gCi0gICBnX3NpZ25hbF9lbWl0IChzZXNzaW9uLT5i
aW4sIGdzdF9ydHBfYmluX3NpZ25hbHNbU0lHTkFMX1BBWUxPQURfVFlQRV9DSEFOR0VdLAotQEAg
LTMyNDYsMTUgKzMzOTAsNDIgQEAgbm9fc3RyZWFtOgotICAgfQotIH0KLSAKLS1zdGF0aWMgZ2Jv
b2xlYW4KLS1jb21wbGV0ZV9zZXNzaW9uX3NpbmsgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRw
QmluU2Vzc2lvbiAqIHNlc3Npb24pCi0rc3RhdGljIHZvaWQKLStzZXNzaW9uX21heWJlX2NyZWF0
ZV9idW5kbGVfZGVtdXhlciAoR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24pCi0rewotKyAgR3N0
UnRwQmluICpydHBiaW47Ci0rCi0rICBpZiAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4KQotKyAgICBy
ZXR1cm47Ci0rCi0rICBydHBiaW4gPSBzZXNzaW9uLT5iaW47Ci0rICBpZiAoZ19zaWduYWxfaGFz
X2hhbmRsZXJfcGVuZGluZyAocnRwYmluLAotKyAgICAgICAgICBnc3RfcnRwX2Jpbl9zaWduYWxz
W1NJR05BTF9PTl9CVU5ETEVEX1NTUkNdLCAwLCBUUlVFKSkgewotKyAgICBHU1RfREVCVUdfT0JK
RUNUIChydHBiaW4sICJBZGRpbmcgYSBidW5kbGUgU1NSQyBkZW11eGVyIHRvIHNlc3Npb24gJXUi
LAotKyAgICAgICAgc2Vzc2lvbi0+aWQpOwotKyAgICBzZXNzaW9uLT5idW5kbGVfZGVtdXggPSBn
c3RfZWxlbWVudF9mYWN0b3J5X21ha2UgKCJydHBzc3JjZGVtdXgiLCBOVUxMKTsKLSsgICAgc2Vz
c2lvbi0+YnVuZGxlX2RlbXV4X25ld3BhZF9zaWcgPSBnX3NpZ25hbF9jb25uZWN0IChzZXNzaW9u
LT5idW5kbGVfZGVtdXgsCi0rICAgICAgICAibmV3LXNzcmMtcGFkIiwgKEdDYWxsYmFjaykgbmV3
X2J1bmRsZWRfc3NyY19wYWRfZm91bmQsIHNlc3Npb24pOwotKwotKyAgICBnc3RfYmluX2FkZCAo
R1NUX0JJTl9DQVNUIChydHBiaW4pLCBzZXNzaW9uLT5idW5kbGVfZGVtdXgpOwotKyAgICBnc3Rf
ZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50IChzZXNzaW9uLT5idW5kbGVfZGVtdXgpOwot
KyAgfSBlbHNlIHsKLSsgICAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLAotKyAgICAgICAgIk5v
IGhhbmRsZXIgZm9yIHRoZSBvbi1idW5kbGVkLXNzcmMgc2lnbmFsIHNvIG5vIG5lZWQgZm9yIGEg
YnVuZGxlIFNTUkMgZGVtdXhlciBpbiBzZXNzaW9uICV1IiwKLSsgICAgICAgIHNlc3Npb24tPmlk
KTsKLSsgIH0KLSt9Ci0rCi0rc3RhdGljIEdzdFBhZCAqCi0rY29tcGxldGVfc2Vzc2lvbl9zaW5r
IChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uLAotKyAgICBn
Ym9vbGVhbiBidW5kbGVfZGVtdXhlcl9uZWVkZWQpCi0gewotLSAgZ2NoYXIgKmduYW1lOwotICAg
Z3VpbnQgc2Vzc2lkID0gc2Vzc2lvbi0+aWQ7Ci0gICBHc3RQYWQgKnJlY3ZfcnRwX3Npbms7Ci0r
ICBHc3RQYWQgKmZ1bm5lbF9zcmM7Ci0gICBHc3RFbGVtZW50ICpkZWNvZGVyOwotLSAgR3N0RWxl
bWVudENsYXNzICprbGFzczsKLS0gIEdzdFBhZFRlbXBsYXRlICp0ZW1wbDsKLSsKLSsgIGdfYXNz
ZXJ0ICghc2Vzc2lvbi0+cmVjdl9ydHBfc2luayk7Ci0gCi0gICAvKiBnZXQgcmVjdl9ydHAgcGFk
IGFuZCBzdG9yZSAqLwotICAgc2Vzc2lvbi0+cmVjdl9ydHBfc2luayA9Ci1AQCAtMzI2NSw2ICsz
NDM2LDkgQEAgY29tcGxldGVfc2Vzc2lvbl9zaW5rIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0
cEJpblNlc3Npb24gKiBzZXNzaW9uKQotICAgZ19zaWduYWxfY29ubmVjdCAoc2Vzc2lvbi0+cmVj
dl9ydHBfc2luaywgIm5vdGlmeTo6Y2FwcyIsCi0gICAgICAgKEdDYWxsYmFjaykgY2Fwc19jaGFu
Z2VkLCBzZXNzaW9uKTsKLSAKLSsgIGlmIChidW5kbGVfZGVtdXhlcl9uZWVkZWQpCi0rICAgIHNl
c3Npb25fbWF5YmVfY3JlYXRlX2J1bmRsZV9kZW11eGVyIChzZXNzaW9uKTsKLSsKLSAgIEdTVF9E
RUJVR19PQkpFQ1QgKHJ0cGJpbiwgInJlcXVlc3RpbmcgUlRQIGRlY29kZXIiKTsKLSAgIGRlY29k
ZXIgPSBzZXNzaW9uX3JlcXVlc3RfZWxlbWVudCAoc2Vzc2lvbiwgU0lHTkFMX1JFUVVFU1RfUlRQ
X0RFQ09ERVIpOwotICAgaWYgKGRlY29kZXIpIHsKLUBAIC0zMjgyLDcgKzM0NTYsMTQgQEAgY29t
cGxldGVfc2Vzc2lvbl9zaW5rIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24g
KiBzZXNzaW9uKQotICAgICBpZiAoZGVjc3JjID09IE5VTEwpCi0gICAgICAgZ290byBkZWNfc3Jj
X2ZhaWxlZDsKLSAKLS0gICAgcmV0ID0gZ3N0X3BhZF9saW5rIChkZWNzcmMsIHNlc3Npb24tPnJl
Y3ZfcnRwX3NpbmspOwotKyAgICBpZiAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4KSB7Ci0rICAgICAg
R3N0UGFkICpkZW11eF9zaW5rOwotKyAgICAgIGRlbXV4X3NpbmsgPSBnc3RfZWxlbWVudF9nZXRf
c3RhdGljX3BhZCAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4LCAic2luayIpOwotKyAgICAgIHJldCA9
IGdzdF9wYWRfbGluayAoZGVjc3JjLCBkZW11eF9zaW5rKTsKLSsgICAgICBnc3Rfb2JqZWN0X3Vu
cmVmIChkZW11eF9zaW5rKTsKLSsgICAgfSBlbHNlIHsKLSsgICAgICByZXQgPSBnc3RfcGFkX2xp
bmsgKGRlY3NyYywgc2Vzc2lvbi0+cmVjdl9ydHBfc2luayk7Ci0rICAgIH0KLSAgICAgZ3N0X29i
amVjdF91bnJlZiAoZGVjc3JjKTsKLSAKLSAgICAgaWYgKHJldCAhPSBHU1RfUEFEX0xJTktfT0sp
Ci1AQCAtMzI5MCw4MSArMzQ3MSw1NCBAQCBjb21wbGV0ZV9zZXNzaW9uX3NpbmsgKEdzdFJ0cEJp
biAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24pCi0gCi0gICB9IGVsc2Ugewot
ICAgICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJubyBSVFAgZGVjb2RlciBnaXZlbiIpOwot
LSAgICByZWN2X3J0cF9zaW5rID0gZ3N0X29iamVjdF9yZWYgKHNlc3Npb24tPnJlY3ZfcnRwX3Np
bmspOwotKyAgICBpZiAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4KSB7Ci0rICAgICAgcmVjdl9ydHBf
c2luayA9Ci0rICAgICAgICAgIGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChzZXNzaW9uLT5i
dW5kbGVfZGVtdXgsICJzaW5rIik7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgcmVjdl9ydHBfc2lu
ayA9Ci0rICAgICAgICAgIGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCAoc2Vzc2lvbi0+cnRw
X2Z1bm5lbCwgInNpbmtfJXUiKTsKLSsgICAgfQotICAgfQotIAotLSAgR1NUX0RFQlVHX09CSkVD
VCAocnRwYmluLCAiZ2hvc3Rpbmcgc2Vzc2lvbiBzaW5rIHBhZCIpOwotLSAga2xhc3MgPSBHU1Rf
RUxFTUVOVF9HRVRfQ0xBU1MgKHJ0cGJpbik7Ci0tICBnbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAo
InJlY3ZfcnRwX3NpbmtfJXUiLCBzZXNzaWQpOwotLSAgdGVtcGwgPSBnc3RfZWxlbWVudF9jbGFz
c19nZXRfcGFkX3RlbXBsYXRlIChrbGFzcywgInJlY3ZfcnRwX3NpbmtfJXUiKTsKLS0gIHNlc3Np
b24tPnJlY3ZfcnRwX3NpbmtfZ2hvc3QgPQotLSAgICAgIGdzdF9naG9zdF9wYWRfbmV3X2Zyb21f
dGVtcGxhdGUgKGduYW1lLCByZWN2X3J0cF9zaW5rLCB0ZW1wbCk7Ci0tICBnc3Rfb2JqZWN0X3Vu
cmVmIChyZWN2X3J0cF9zaW5rKTsKLS0gIGdzdF9wYWRfc2V0X2FjdGl2ZSAoc2Vzc2lvbi0+cmVj
dl9ydHBfc2lua19naG9zdCwgVFJVRSk7Ci0tICBnc3RfZWxlbWVudF9hZGRfcGFkIChHU1RfRUxF
TUVOVF9DQVNUIChydHBiaW4pLCBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0KTsKLS0gIGdf
ZnJlZSAoZ25hbWUpOwotKyAgZnVubmVsX3NyYyA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFk
IChzZXNzaW9uLT5ydHBfZnVubmVsLCAic3JjIik7Ci0rICBnc3RfcGFkX2xpbmsgKGZ1bm5lbF9z
cmMsIHNlc3Npb24tPnJlY3ZfcnRwX3NpbmspOwotKyAgZ3N0X29iamVjdF91bnJlZiAoZnVubmVs
X3NyYyk7Ci0gCi0tICByZXR1cm4gVFJVRTsKLSsgIHJldHVybiByZWN2X3J0cF9zaW5rOwotIAot
ICAgLyogRVJST1JTICovCi0gcGFkX2ZhaWxlZDoKLSAgIHsKLSAgICAgZ193YXJuaW5nICgicnRw
YmluOiBmYWlsZWQgdG8gZ2V0IHNlc3Npb24gcmVjdl9ydHBfc2luayBwYWQiKTsKLS0gICAgcmV0
dXJuIEZBTFNFOwotKyAgICByZXR1cm4gTlVMTDsKLSAgIH0KLSBkZWNfc2lua19mYWlsZWQ6Ci0g
ICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBkZWNvZGVyIHNpbmsg
cGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLS0gICAgcmV0dXJuIEZBTFNFOwotKyAgICBn
X3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgZGVjb2RlciBzaW5rIHBhZCBmb3Igc2Vz
c2lvbiAldSIsIHNlc3NpZCk7Ci0rICAgIHJldHVybiBOVUxMOwotICAgfQotIGRlY19zcmNfZmFp
bGVkOgotICAgewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgZGVjb2Rl
ciBzcmMgcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRw
YmluOiBmYWlsZWQgdG8gZ2V0IGRlY29kZXIgc3JjIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3Np
ZCk7Ci0gICAgIGdzdF9vYmplY3RfdW5yZWYgKHJlY3ZfcnRwX3NpbmspOwotLSAgICByZXR1cm4g
RkFMU0U7Ci0rICAgIHJldHVybiBOVUxMOwotICAgfQotIGRlY19saW5rX2ZhaWxlZDoKLSAgIHsK
LS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBydHAgZGVjb2RlciBmb3Ig
c2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRv
IGxpbmsgcnRwIGRlY29kZXIgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICBnc3Rfb2Jq
ZWN0X3VucmVmIChyZWN2X3J0cF9zaW5rKTsKLS0gICAgcmV0dXJuIEZBTFNFOwotKyAgICByZXR1
cm4gTlVMTDsKLSAgIH0KLSB9Ci0gCi0tLyogQ3JlYXRlIGEgcGFkIGZvciByZWNlaXZpbmcgUlRQ
IGZvciB0aGUgc2Vzc2lvbiBpbiBAbmFtZS4gTXVzdCBiZSBjYWxsZWQgd2l0aAotLSAqIFJUUF9C
SU5fTE9DSy4KLS0gKi8KLS1zdGF0aWMgR3N0UGFkICoKLS1jcmVhdGVfcmVjdl9ydHAgKEdzdFJ0
cEJpbiAqIHJ0cGJpbiwgR3N0UGFkVGVtcGxhdGUgKiB0ZW1wbCwgY29uc3QgZ2NoYXIgKiBuYW1l
KQotK3N0YXRpYyB2b2lkCi0rY29tcGxldGVfc2Vzc2lvbl9yZWNlaXZlciAoR3N0UnRwQmluICog
cnRwYmluLCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbiwKLSsgICAgZ3VpbnQgc2Vzc2lkKQot
IHsKLS0gIGd1aW50IHNlc3NpZDsKLSAgIEdzdEVsZW1lbnQgKmF1eDsKLSAgIEdzdFBhZCAqcmVj
dl9ydHBfc3JjOwotLSAgR3N0UnRwQmluU2Vzc2lvbiAqc2Vzc2lvbjsKLS0KLS0gIC8qIGZpcnN0
IGdldCB0aGUgc2Vzc2lvbiBudW1iZXIgKi8KLS0gIGlmIChuYW1lID09IE5VTEwgfHwgc3NjYW5m
IChuYW1lLCAicmVjdl9ydHBfc2lua18ldSIsICZzZXNzaWQpICE9IDEpCi0tICAgIGdvdG8gbm9f
bmFtZTsKLS0KLS0gIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImZpbmRpbmcgc2Vzc2lvbiAl
ZCIsIHNlc3NpZCk7Ci0gCi0tICAvKiBnZXQgb3IgY3JlYXRlIHNlc3Npb24gKi8KLS0gIHNlc3Np
b24gPSBmaW5kX3Nlc3Npb25fYnlfaWQgKHJ0cGJpbiwgc2Vzc2lkKTsKLS0gIGlmICghc2Vzc2lv
bikgewotLSAgICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJjcmVhdGluZyBzZXNzaW9uICVk
Iiwgc2Vzc2lkKTsKLS0gICAgLyogY3JlYXRlIHNlc3Npb24gbm93ICovCi0tICAgIHNlc3Npb24g
PSBjcmVhdGVfc2Vzc2lvbiAocnRwYmluLCBzZXNzaWQpOwotLSAgICBpZiAoc2Vzc2lvbiA9PSBO
VUxMKQotLSAgICAgIGdvdG8gY3JlYXRlX2Vycm9yOwotLSAgfQotLQotLSAgLyogY2hlY2sgaWYg
cGFkIHdhcyByZXF1ZXN0ZWQgKi8KLS0gIGlmIChzZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0
ICE9IE5VTEwpCi0tICAgIHJldHVybiBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0OwotLQot
LSAgLyogc2V0dXAgdGhlIHNlc3Npb24gc2luayBwYWQgKi8KLS0gIGlmICghY29tcGxldGVfc2Vz
c2lvbl9zaW5rIChydHBiaW4sIHNlc3Npb24pKQotLSAgICBnb3RvIHNlc3Npb25fc2lua19mYWls
ZWQ7Ci0rICBnX2Fzc2VydCAoIXNlc3Npb24tPnJlY3ZfcnRwX3NyYyk7Ci0gCi0gICBzZXNzaW9u
LT5yZWN2X3J0cF9zcmMgPQotICAgICAgIGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChzZXNz
aW9uLT5zZXNzaW9uLCAicmVjdl9ydHBfc3JjIik7Ci1AQCAtMzM4MSw3ICszNTM1LDcgQEAgY3Jl
YXRlX3JlY3ZfcnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGws
IGNvbnN0IGdjaGFyICogbmFtZSkKLSAKLSAgICAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAi
bGlua2luZyBBVVggcmVjZWl2ZXIiKTsKLSAKLS0gICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYg
KCJzaW5rXyVkIiwgc2Vzc2lkKTsKLSsgICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzaW5r
XyV1Iiwgc2Vzc2lkKTsKLSAgICAgYXV4c2luayA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFk
IChhdXgsIHBuYW1lKTsKLSAgICAgZ19mcmVlIChwbmFtZSk7Ci0gICAgIGlmIChhdXhzaW5rID09
IE5VTEwpCi1AQCAtMzM5NCw3ICszNTQ4LDcgQEAgY3JlYXRlX3JlY3ZfcnRwIChHc3RSdHBCaW4g
KiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFtZSkKLSAK
LSAgICAgLyogdGhpcyBjYW4gYmUgTlVMTCB3aGVuIHRoaXMgQVVYIGVsZW1lbnQgaXMgbm90IHRv
IGJlIGxpbmtlZCB0bwotICAgICAgKiBhbiBTU1JDIGRlbXV4ZXIgKi8KLS0gICAgcG5hbWUgPSBn
X3N0cmR1cF9wcmludGYgKCJzcmNfJWQiLCBzZXNzaWQpOwotKyAgICBwbmFtZSA9IGdfc3RyZHVw
X3ByaW50ZiAoInNyY18ldSIsIHNlc3NpZCk7Ci0gICAgIHJlY3ZfcnRwX3NyYyA9IGdzdF9lbGVt
ZW50X2dldF9zdGF0aWNfcGFkIChhdXgsIHBuYW1lKTsKLSAgICAgZ19mcmVlIChwbmFtZSk7Ci0g
ICB9IGVsc2UgewotQEAgLTM0MDgsOCArMzU2Miw4IEBAIGNyZWF0ZV9yZWN2X3J0cCAoR3N0UnRw
QmluICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRlbXBsLCBjb25zdCBnY2hhciAqIG5hbWUp
Ci0gICAgIHNpbmtkcGFkID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKHNlc3Npb24tPmRl
bXV4LCAic2luayIpOwotICAgICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJsaW5raW5nIGRl
bXV4ZXIgUlRQIHNpbmsgcGFkIik7Ci0gICAgIGdzdF9wYWRfbGlua19mdWxsIChyZWN2X3J0cF9z
cmMsIHNpbmtkcGFkLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7Ci0tICAgIGdzdF9vYmpl
Y3RfdW5yZWYgKHJlY3ZfcnRwX3NyYyk7Ci0gICAgIGdzdF9vYmplY3RfdW5yZWYgKHNpbmtkcGFk
KTsKLSsgICAgZ3N0X29iamVjdF91bnJlZiAocmVjdl9ydHBfc3JjKTsKLSAKLSAgICAgLyogY29u
bmVjdCB0byB0aGUgbmV3LXNzcmMtcGFkIHNpZ25hbCBvZiB0aGUgU1NSQyBkZW11eGVyICovCi0g
ICAgIHNlc3Npb24tPmRlbXV4X25ld3BhZF9zaWcgPSBnX3NpZ25hbF9jb25uZWN0IChzZXNzaW9u
LT5kZW11eCwKLUBAIC0zNDE3LDYgKzM1NzEsNzEgQEAgY3JlYXRlX3JlY3ZfcnRwIChHc3RSdHBC
aW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFtZSkK
LSAgICAgc2Vzc2lvbi0+ZGVtdXhfcGFkcmVtb3ZlZF9zaWcgPSBnX3NpZ25hbF9jb25uZWN0IChz
ZXNzaW9uLT5kZW11eCwKLSAgICAgICAgICJyZW1vdmVkLXNzcmMtcGFkIiwgKEdDYWxsYmFjaykg
c3NyY19kZW11eF9wYWRfcmVtb3ZlZCwgc2Vzc2lvbik7Ci0gICB9Ci0rCi0rICByZXR1cm47Ci0r
Ci0rcGFkX2ZhaWxlZDoKLSsgIHsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8g
Z2V0IHNlc3Npb24gcmVjdl9ydHBfc3JjIHBhZCIpOwotKyAgICByZXR1cm47Ci0rICB9Ci0rYXV4
X3NpbmtfZmFpbGVkOgotKyAgewotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBn
ZXQgQVVYIHNpbmsgcGFkIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKLSsgICAgcmV0dXJuOwot
KyAgfQotK2F1eF9saW5rX2ZhaWxlZDoKLSsgIHsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBm
YWlsZWQgdG8gbGluayBBVVggcGFkIHRvIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotKyAgICByZXR1
cm47Ci0rICB9Ci0rfQotKwotKy8qIENyZWF0ZSBhIHBhZCBmb3IgcmVjZWl2aW5nIFJUUCBmb3Ig
dGhlIHNlc3Npb24gaW4gQG5hbWUuIE11c3QgYmUgY2FsbGVkIHdpdGgKLSsgKiBSVFBfQklOX0xP
Q0suCi0rICovCi0rc3RhdGljIEdzdFBhZCAqCi0rY3JlYXRlX3JlY3ZfcnRwIChHc3RSdHBCaW4g
KiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFtZSkKLSt7
Ci0rICBndWludCBzZXNzaWQ7Ci0rICBHc3RSdHBCaW5TZXNzaW9uICpzZXNzaW9uOwotKyAgR3N0
UGFkICpyZWN2X3J0cF9zaW5rOwotKwotKyAgLyogZmlyc3QgZ2V0IHRoZSBzZXNzaW9uIG51bWJl
ciAqLwotKyAgaWYgKG5hbWUgPT0gTlVMTCB8fCBzc2NhbmYgKG5hbWUsICJyZWN2X3J0cF9zaW5r
XyV1IiwgJnNlc3NpZCkgIT0gMSkKLSsgICAgZ290byBub19uYW1lOwotKwotKyAgR1NUX0RFQlVH
X09CSkVDVCAocnRwYmluLCAiZmluZGluZyBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKLSsKLSsgIC8q
IGdldCBvciBjcmVhdGUgc2Vzc2lvbiAqLwotKyAgc2Vzc2lvbiA9IGZpbmRfc2Vzc2lvbl9ieV9p
ZCAocnRwYmluLCBzZXNzaWQpOwotKyAgaWYgKCFzZXNzaW9uKSB7Ci0rICAgIEdTVF9ERUJVR19P
QkpFQ1QgKHJ0cGJpbiwgImNyZWF0aW5nIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotKyAgICAvKiBj
cmVhdGUgc2Vzc2lvbiBub3cgKi8KLSsgICAgc2Vzc2lvbiA9IGNyZWF0ZV9zZXNzaW9uIChydHBi
aW4sIHNlc3NpZCk7Ci0rICAgIGlmIChzZXNzaW9uID09IE5VTEwpCi0rICAgICAgZ290byBjcmVh
dGVfZXJyb3I7Ci0rICB9Ci0rCi0rICAvKiBjaGVjayBpZiBwYWQgd2FzIHJlcXVlc3RlZCAqLwot
KyAgaWYgKHNlc3Npb24tPnJlY3ZfcnRwX3NpbmtfZ2hvc3QgIT0gTlVMTCkKLSsgICAgcmV0dXJu
IHNlc3Npb24tPnJlY3ZfcnRwX3NpbmtfZ2hvc3Q7Ci0rCi0rICAvKiBzZXR1cCB0aGUgc2Vzc2lv
biBzaW5rIHBhZCAqLwotKyAgcmVjdl9ydHBfc2luayA9IGNvbXBsZXRlX3Nlc3Npb25fc2luayAo
cnRwYmluLCBzZXNzaW9uLCBUUlVFKTsKLSsgIGlmICghcmVjdl9ydHBfc2luaykKLSsgICAgZ290
byBzZXNzaW9uX3NpbmtfZmFpbGVkOwotKwotKwotKyAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmlu
LCAiZ2hvc3Rpbmcgc2Vzc2lvbiBzaW5rIHBhZCIpOwotKyAgc2Vzc2lvbi0+cmVjdl9ydHBfc2lu
a19naG9zdCA9Ci0rICAgICAgZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSAobmFtZSwg
cmVjdl9ydHBfc2luaywgdGVtcGwpOwotKyAgZ3N0X29iamVjdF91bnJlZiAocmVjdl9ydHBfc2lu
ayk7Ci0rICBnc3RfcGFkX3NldF9hY3RpdmUgKHNlc3Npb24tPnJlY3ZfcnRwX3NpbmtfZ2hvc3Qs
IFRSVUUpOwotKyAgZ3N0X2VsZW1lbnRfYWRkX3BhZCAoR1NUX0VMRU1FTlRfQ0FTVCAocnRwYmlu
KSwgc2Vzc2lvbi0+cmVjdl9ydHBfc2lua19naG9zdCk7Ci0rCi0rICBjb21wbGV0ZV9zZXNzaW9u
X3JlY2VpdmVyIChydHBiaW4sIHNlc3Npb24sIHNlc3NpZCk7Ci0rCi0gICByZXR1cm4gc2Vzc2lv
bi0+cmVjdl9ydHBfc2lua19naG9zdDsKLSAKLSAgIC8qIEVSUk9SUyAqLwotQEAgLTM0MzUsMjEg
KzM2NTQsNiBAQCBzZXNzaW9uX3NpbmtfZmFpbGVkOgotICAgICAvKiB3YXJuaW5nIGFscmVhZHkg
ZG9uZSAqLwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0KLS1wYWRfZmFpbGVkOgotLSAgewotLSAg
ICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiByZWN2X3J0cF9zcmMg
cGFkIik7Ci0tICAgIHJldHVybiBOVUxMOwotLSAgfQotLWF1eF9zaW5rX2ZhaWxlZDoKLS0gIHsK
LS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IEFVWCBzaW5rIHBhZCBmb3Ig
c2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0tICAgIHJldHVybiBOVUxMOwotLSAgfQotLWF1eF9saW5r
X2ZhaWxlZDoKLS0gIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBB
VVggcGFkIHRvIHNlc3Npb24gJWQiLCBzZXNzaWQpOwotLSAgICByZXR1cm4gTlVMTDsKLS0gIH0K
LSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC0zNDYzLDYgKzM2NjcsMTEgQEAgcmVtb3ZlX3JlY3Zf
cnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQotICAg
ICBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5lY3QgKHNlc3Npb24tPmRlbXV4LCBzZXNzaW9uLT5k
ZW11eF9wYWRyZW1vdmVkX3NpZyk7Ci0gICAgIHNlc3Npb24tPmRlbXV4X3BhZHJlbW92ZWRfc2ln
ID0gMDsKLSAgIH0KLSsgIGlmIChzZXNzaW9uLT5idW5kbGVfZGVtdXhfbmV3cGFkX3NpZykgewot
KyAgICBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5lY3QgKHNlc3Npb24tPmJ1bmRsZV9kZW11eCwK
LSsgICAgICAgIHNlc3Npb24tPmJ1bmRsZV9kZW11eF9uZXdwYWRfc2lnKTsKLSsgICAgc2Vzc2lv
bi0+YnVuZGxlX2RlbXV4X25ld3BhZF9zaWcgPSAwOwotKyAgfQotICAgaWYgKHNlc3Npb24tPnJl
Y3ZfcnRwX3NyYykgewotICAgICBnc3Rfb2JqZWN0X3VucmVmIChzZXNzaW9uLT5yZWN2X3J0cF9z
cmMpOwotICAgICBzZXNzaW9uLT5yZWN2X3J0cF9zcmMgPSBOVUxMOwotQEAgLTM0ODAsMzcgKzM2
ODksMTQgQEAgcmVtb3ZlX3JlY3ZfcnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNl
c3Npb24gKiBzZXNzaW9uKQotICAgfQotIH0KLSAKLS0vKiBDcmVhdGUgYSBwYWQgZm9yIHJlY2Vp
dmluZyBSVENQIGZvciB0aGUgc2Vzc2lvbiBpbiBAbmFtZS4gTXVzdCBiZSBjYWxsZWQgd2l0aAot
LSAqIFJUUF9CSU5fTE9DSy4KLS0gKi8KLSBzdGF0aWMgR3N0UGFkICoKLS1jcmVhdGVfcmVjdl9y
dGNwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsCi0tICAgIGNv
bnN0IGdjaGFyICogbmFtZSkKLStjb21wbGV0ZV9zZXNzaW9uX3J0Y3AgKEdzdFJ0cEJpbiAqIHJ0
cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24sCi0rICAgIGd1aW50IHNlc3NpZCwgZ2Jv
b2xlYW4gYnVuZGxlX2RlbXV4ZXJfbmVlZGVkKQotIHsKLS0gIGd1aW50IHNlc3NpZDsKLSAgIEdz
dEVsZW1lbnQgKmRlY29kZXI7Ci0tICBHc3RSdHBCaW5TZXNzaW9uICpzZXNzaW9uOwotLSAgR3N0
UGFkICpzaW5rZHBhZCwgKmRlY3Npbms7Ci0tCi0tICAvKiBmaXJzdCBnZXQgdGhlIHNlc3Npb24g
bnVtYmVyICovCi0tICBpZiAobmFtZSA9PSBOVUxMIHx8IHNzY2FuZiAobmFtZSwgInJlY3ZfcnRj
cF9zaW5rXyV1IiwgJnNlc3NpZCkgIT0gMSkKLS0gICAgZ290byBub19uYW1lOwotLQotLSAgR1NU
X0RFQlVHX09CSkVDVCAocnRwYmluLCAiZmluZGluZyBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLS0K
LS0gIC8qIGdldCBvciBjcmVhdGUgdGhlIHNlc3Npb24gKi8KLS0gIHNlc3Npb24gPSBmaW5kX3Nl
c3Npb25fYnlfaWQgKHJ0cGJpbiwgc2Vzc2lkKTsKLS0gIGlmICghc2Vzc2lvbikgewotLSAgICBH
U1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJjcmVhdGluZyBzZXNzaW9uICVkIiwgc2Vzc2lkKTsK
LS0gICAgLyogY3JlYXRlIHNlc3Npb24gbm93ICovCi0tICAgIHNlc3Npb24gPSBjcmVhdGVfc2Vz
c2lvbiAocnRwYmluLCBzZXNzaWQpOwotLSAgICBpZiAoc2Vzc2lvbiA9PSBOVUxMKQotLSAgICAg
IGdvdG8gY3JlYXRlX2Vycm9yOwotLSAgfQotLQotLSAgLyogY2hlY2sgaWYgcGFkIHdhcyByZXF1
ZXN0ZWQgKi8KLS0gIGlmIChzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdCAhPSBOVUxMKQot
LSAgICByZXR1cm4gc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmtfZ2hvc3Q7Ci0rICBHc3RQYWQgKnNp
bmtkcGFkOwotKyAgR3N0UGFkICpkZWNzaW5rID0gTlVMTDsKLSsgIEdzdFBhZCAqZnVubmVsX3Ny
YzsKLSAKLSAgIC8qIGdldCByZWN2X3J0cCBwYWQgYW5kIHN0b3JlICovCi0gICBHU1RfREVCVUdf
T0JKRUNUIChydHBiaW4sICJnZXR0aW5nIFJUQ1Agc2luayBwYWQiKTsKLUBAIC0zNTE5LDYgKzM3
MDUsOSBAQCBjcmVhdGVfcmVjdl9ydGNwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBs
YXRlICogdGVtcGwsCi0gICBpZiAoc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmsgPT0gTlVMTCkKLSAg
ICAgZ290byBwYWRfZmFpbGVkOwotIAotKyAgaWYgKGJ1bmRsZV9kZW11eGVyX25lZWRlZCkKLSsg
ICAgc2Vzc2lvbl9tYXliZV9jcmVhdGVfYnVuZGxlX2RlbXV4ZXIgKHNlc3Npb24pOwotKwotICAg
R1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAiZ2V0dGluZyBSVENQIGRlY29kZXIiKTsKLSAgIGRl
Y29kZXIgPSBzZXNzaW9uX3JlcXVlc3RfZWxlbWVudCAoc2Vzc2lvbiwgU0lHTkFMX1JFUVVFU1Rf
UlRDUF9ERUNPREVSKTsKLSAgIGlmIChkZWNvZGVyKSB7Ci1AQCAtMzUzNSwxNCArMzcyNCwyNiBA
QCBjcmVhdGVfcmVjdl9ydGNwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICog
dGVtcGwsCi0gICAgIGlmIChkZWNzcmMgPT0gTlVMTCkKLSAgICAgICBnb3RvIGRlY19zcmNfZmFp
bGVkOwotIAotLSAgICByZXQgPSBnc3RfcGFkX2xpbmsgKGRlY3NyYywgc2Vzc2lvbi0+cmVjdl9y
dGNwX3NpbmspOwotKyAgICBpZiAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4KSB7Ci0rICAgICAgR3N0
UGFkICpkZW11eF9zaW5rOwotKyAgICAgIGRlbXV4X3NpbmsgPQotKyAgICAgICAgICBnc3RfZWxl
bWVudF9nZXRfc3RhdGljX3BhZCAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4LCAicnRjcF9zaW5rIik7
Ci0rICAgICAgcmV0ID0gZ3N0X3BhZF9saW5rIChkZWNzcmMsIGRlbXV4X3NpbmspOwotKyAgICAg
IGdzdF9vYmplY3RfdW5yZWYgKGRlbXV4X3NpbmspOwotKyAgICB9IGVsc2UgewotKyAgICAgIHJl
dCA9IGdzdF9wYWRfbGluayAoZGVjc3JjLCBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2luayk7Ci0rICAg
IH0KLSAgICAgZ3N0X29iamVjdF91bnJlZiAoZGVjc3JjKTsKLSAKLSAgICAgaWYgKHJldCAhPSBH
U1RfUEFEX0xJTktfT0spCi0gICAgICAgZ290byBkZWNfbGlua19mYWlsZWQ7Ci0gICB9IGVsc2Ug
ewotICAgICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJubyBSVENQIGRlY29kZXIgZ2l2ZW4i
KTsKLS0gICAgZGVjc2luayA9IGdzdF9vYmplY3RfcmVmIChzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lu
ayk7Ci0rICAgIGlmIChzZXNzaW9uLT5idW5kbGVfZGVtdXgpIHsKLSsgICAgICBkZWNzaW5rID0g
Z3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKHNlc3Npb24tPmJ1bmRsZV9kZW11eCwgInJ0Y3Bf
c2luayIpOwotKyAgICB9IGVsc2UgewotKyAgICAgIGRlY3NpbmsgPSBnc3RfZWxlbWVudF9nZXRf
cmVxdWVzdF9wYWQgKHNlc3Npb24tPnJ0Y3BfZnVubmVsLCAic2lua18ldSIpOwotKyAgICB9Ci0g
ICB9Ci0gCi0gICAvKiBnZXQgc3JjcGFkLCBsaW5rIHRvIFNTUkNEZW11eCAqLwotQEAgLTM1NTYs
MjYgKzM3NTcsMTIgQEAgY3JlYXRlX3JlY3ZfcnRjcCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RQ
YWRUZW1wbGF0ZSAqIHRlbXBsLAotICAgZ3N0X3BhZF9saW5rX2Z1bGwgKHNlc3Npb24tPnN5bmNf
c3JjLCBzaW5rZHBhZCwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOwotICAgZ3N0X29iamVj
dF91bnJlZiAoc2lua2RwYWQpOwotIAotLSAgc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmtfZ2hvc3Qg
PQotLSAgICAgIGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUgKG5hbWUsIGRlY3Npbmss
IHRlbXBsKTsKLS0gIGdzdF9vYmplY3RfdW5yZWYgKGRlY3NpbmspOwotLSAgZ3N0X3BhZF9zZXRf
YWN0aXZlIChzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdCwgVFJVRSk7Ci0tICBnc3RfZWxl
bWVudF9hZGRfcGFkIChHU1RfRUxFTUVOVF9DQVNUIChydHBiaW4pLAotLSAgICAgIHNlc3Npb24t
PnJlY3ZfcnRjcF9zaW5rX2dob3N0KTsKLSsgIGZ1bm5lbF9zcmMgPSBnc3RfZWxlbWVudF9nZXRf
c3RhdGljX3BhZCAoc2Vzc2lvbi0+cnRjcF9mdW5uZWwsICJzcmMiKTsKLSsgIGdzdF9wYWRfbGlu
ayAoZnVubmVsX3NyYywgc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmspOwotKyAgZ3N0X29iamVjdF91
bnJlZiAoZnVubmVsX3NyYyk7Ci0gCi0tICByZXR1cm4gc2Vzc2lvbi0+cmVjdl9ydGNwX3Npbmtf
Z2hvc3Q7Ci0rICByZXR1cm4gZGVjc2luazsKLSAKLS0gIC8qIEVSUk9SUyAqLwotLW5vX25hbWU6
Ci0tICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjogaW52YWxpZCBuYW1lIGdpdmVuIik7Ci0t
ICAgIHJldHVybiBOVUxMOwotLSAgfQotLWNyZWF0ZV9lcnJvcjoKLS0gIHsKLS0gICAgLyogY3Jl
YXRlX3Nlc3Npb24gYWxyZWFkeSB3YXJuZWQgKi8KLS0gICAgcmV0dXJuIE5VTEw7Ci0tICB9Ci0g
cGFkX2ZhaWxlZDoKLSAgIHsKLSAgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0
IHNlc3Npb24gcnRjcF9zaW5rIHBhZCIpOwotQEAgLTM1ODMsMjUgKzM3NzAsODIgQEAgcGFkX2Zh
aWxlZDoKLSAgIH0KLSBkZWNfc2lua19mYWlsZWQ6Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0
cGJpbjogZmFpbGVkIHRvIGdldCBkZWNvZGVyIHNpbmsgcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vz
c2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGRlY29kZXIgc2lu
ayBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0K
LSBkZWNfc3JjX2ZhaWxlZDoKLSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQg
dG8gZ2V0IGRlY29kZXIgc3JjIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0tICAgIGdz
dF9vYmplY3RfdW5yZWYgKGRlY3NpbmspOwotLSAgICByZXR1cm4gTlVMTDsKLSsgICAgZ193YXJu
aW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGRlY29kZXIgc3JjIHBhZCBmb3Igc2Vzc2lvbiAl
dSIsIHNlc3NpZCk7Ci0rICAgIGdvdG8gY2xlYW51cDsKLSAgIH0KLSBkZWNfbGlua19mYWlsZWQ6
Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgcnRjcCBkZWNv
ZGVyIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLS0gICAgZ3N0X29iamVjdF91bnJlZiAoZGVj
c2luayk7Ci0tICAgIHJldHVybiBOVUxMOwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxl
ZCB0byBsaW5rIHJ0Y3AgZGVjb2RlciBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0rICAgIGdv
dG8gY2xlYW51cDsKLSAgIH0KLSBzcmNfcGFkX2ZhaWxlZDoKLSAgIHsKLSAgICAgZ193YXJuaW5n
ICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IHNlc3Npb24gc3luY19zcmMgcGFkIik7Ci0tICAgIGdz
dF9vYmplY3RfdW5yZWYgKGRlY3NpbmspOwotKyAgfQotKwotK2NsZWFudXA6Ci0rICBnc3Rfb2Jq
ZWN0X3VucmVmIChkZWNzaW5rKTsKLSsgIHJldHVybiBOVUxMOwotK30KLSsKLSsvKiBDcmVhdGUg
YSBwYWQgZm9yIHJlY2VpdmluZyBSVENQIGZvciB0aGUgc2Vzc2lvbiBpbiBAbmFtZS4gTXVzdCBi
ZSBjYWxsZWQgd2l0aAotKyAqIFJUUF9CSU5fTE9DSy4KLSsgKi8KLStzdGF0aWMgR3N0UGFkICoK
LStjcmVhdGVfcmVjdl9ydGNwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICog
dGVtcGwsCi0rICAgIGNvbnN0IGdjaGFyICogbmFtZSkKLSt7Ci0rICBndWludCBzZXNzaWQ7Ci0r
ICBHc3RSdHBCaW5TZXNzaW9uICpzZXNzaW9uOwotKyAgR3N0UGFkICpkZWNzaW5rID0gTlVMTDsK
LSsKLSsgIC8qIGZpcnN0IGdldCB0aGUgc2Vzc2lvbiBudW1iZXIgKi8KLSsgIGlmIChuYW1lID09
IE5VTEwgfHwgc3NjYW5mIChuYW1lLCAicmVjdl9ydGNwX3NpbmtfJXUiLCAmc2Vzc2lkKSAhPSAx
KQotKyAgICBnb3RvIG5vX25hbWU7Ci0rCi0rICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJm
aW5kaW5nIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotKwotKyAgLyogZ2V0IG9yIGNyZWF0ZSB0aGUg
c2Vzc2lvbiAqLwotKyAgc2Vzc2lvbiA9IGZpbmRfc2Vzc2lvbl9ieV9pZCAocnRwYmluLCBzZXNz
aWQpOwotKyAgaWYgKCFzZXNzaW9uKSB7Ci0rICAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwg
ImNyZWF0aW5nIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotKyAgICAvKiBjcmVhdGUgc2Vzc2lvbiBu
b3cgKi8KLSsgICAgc2Vzc2lvbiA9IGNyZWF0ZV9zZXNzaW9uIChydHBiaW4sIHNlc3NpZCk7Ci0r
ICAgIGlmIChzZXNzaW9uID09IE5VTEwpCi0rICAgICAgZ290byBjcmVhdGVfZXJyb3I7Ci0rICB9
Ci0rCi0rICAvKiBjaGVjayBpZiBwYWQgd2FzIHJlcXVlc3RlZCAqLwotKyAgaWYgKHNlc3Npb24t
PnJlY3ZfcnRjcF9zaW5rX2dob3N0ICE9IE5VTEwpCi0rICAgIHJldHVybiBzZXNzaW9uLT5yZWN2
X3J0Y3Bfc2lua19naG9zdDsKLSsKLSsgIGRlY3NpbmsgPSBjb21wbGV0ZV9zZXNzaW9uX3J0Y3Ag
KHJ0cGJpbiwgc2Vzc2lvbiwgc2Vzc2lkLCBUUlVFKTsKLSsgIGlmICghZGVjc2luaykKLSsgICAg
Z290byBjcmVhdGVfZXJyb3I7Ci0rCi0rICBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdCA9
Ci0rICAgICAgZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSAobmFtZSwgZGVjc2luaywg
dGVtcGwpOwotKyAgZ3N0X29iamVjdF91bnJlZiAoZGVjc2luayk7Ci0rICBnc3RfcGFkX3NldF9h
Y3RpdmUgKHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rX2dob3N0LCBUUlVFKTsKLSsgIGdzdF9lbGVt
ZW50X2FkZF9wYWQgKEdTVF9FTEVNRU5UX0NBU1QgKHJ0cGJpbiksCi0rICAgICAgc2Vzc2lvbi0+
cmVjdl9ydGNwX3NpbmtfZ2hvc3QpOwotKwotKyAgcmV0dXJuIHNlc3Npb24tPnJlY3ZfcnRjcF9z
aW5rX2dob3N0OwotKwotKyAgLyogRVJST1JTICovCi0rbm9fbmFtZToKLSsgIHsKLSsgICAgZ193
YXJuaW5nICgicnRwYmluOiBpbnZhbGlkIG5hbWUgZ2l2ZW4iKTsKLSsgICAgcmV0dXJuIE5VTEw7
Ci0rICB9Ci0rY3JlYXRlX2Vycm9yOgotKyAgewotKyAgICAvKiBjcmVhdGVfc2Vzc2lvbiBhbHJl
YWR5IHdhcm5lZCAqLwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0KLSB9Ci1AQCAtMzY1MSw3ICsz
ODk1LDcgQEAgY29tcGxldGVfc2Vzc2lvbl9zcmMgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRw
QmluU2Vzc2lvbiAqIHNlc3Npb24pCi0gICAgIEdzdFBhZExpbmtSZXR1cm4gcmV0OwotIAotICAg
ICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJsaW5raW5nIFJUUCBlbmNvZGVyIik7Ci0tICAg
IGVuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgicnRwX3NyY18lZCIsIHNlc3NpZCk7Ci0rICAgIGVu
YW1lID0gZ19zdHJkdXBfcHJpbnRmICgicnRwX3NyY18ldSIsIHNlc3NpZCk7Ci0gICAgIGVuY3Ny
YyA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChlbmNvZGVyLCBlbmFtZSk7Ci0gICAgIGdf
ZnJlZSAoZW5hbWUpOwotIAotQEAgLTM2NjAsNyArMzkwNCw3IEBAIGNvbXBsZXRlX3Nlc3Npb25f
c3JjIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQotIAot
ICAgICBzZW5kX3J0cF9zcmMgPSBlbmNzcmM7Ci0gCi0tICAgIGVuYW1lID0gZ19zdHJkdXBfcHJp
bnRmICgicnRwX3NpbmtfJWQiLCBzZXNzaWQpOwotKyAgICBlbmFtZSA9IGdfc3RyZHVwX3ByaW50
ZiAoInJ0cF9zaW5rXyV1Iiwgc2Vzc2lkKTsKLSAgICAgZW5jc2luayA9IGdzdF9lbGVtZW50X2dl
dF9zdGF0aWNfcGFkIChlbmNvZGVyLCBlbmFtZSk7Ci0gICAgIGdfZnJlZSAoZW5hbWUpOwotICAg
ICBpZiAoZW5jc2luayA9PSBOVUxMKQotQEAgLTM2OTQsMjMgKzM5MzgsMjMgQEAgY29tcGxldGVf
c2Vzc2lvbl9zcmMgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Np
b24pCi0gICAvKiBFUlJPUlMgKi8KLSBub19zcmNwYWQ6Ci0gICB7Ci0tICAgIGdfd2FybmluZyAo
InJ0cGJpbjogZmFpbGVkIHRvIGdldCBydHAgc291cmNlIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNl
c3NpZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBydHAgc291cmNl
IHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0gICAgIHJldHVybiBGQUxTRTsKLSAgIH0K
LSBlbmNfc3JjX2ZhaWxlZDoKLSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQg
dG8gZ2V0IGVuY29kZXIgc3JjIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAgIGdf
d2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNyYyBwYWQgZm9yIHNlc3Np
b24gJXUiLCBzZXNzaWQpOwotICAgICByZXR1cm4gRkFMU0U7Ci0gICB9Ci0gZW5jX3NpbmtfZmFp
bGVkOgotICAgewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgZW5jb2Rl
ciBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0
cGJpbjogZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNpbmsgcGFkIGZvciBzZXNzaW9uICV1Iiwgc2Vz
c2lkKTsKLSAgICAgZ3N0X29iamVjdF91bnJlZiAoc2VuZF9ydHBfc3JjKTsKLSAgICAgcmV0dXJu
IEZBTFNFOwotICAgfQotIGVuY19saW5rX2ZhaWxlZDoKLSAgIHsKLS0gICAgZ193YXJuaW5nICgi
cnRwYmluOiBmYWlsZWQgdG8gbGluayBydHAgZW5jb2RlciBmb3Igc2Vzc2lvbiAlZCIsIHNlc3Np
ZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgcnRwIGVuY29kZXIg
Zm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICBnc3Rfb2JqZWN0X3VucmVmIChzZW5kX3J0
cF9zcmMpOwotICAgICByZXR1cm4gRkFMU0U7Ci0gICB9Ci1AQCAtMzc3MiwyMiArNDAxNiwyMiBA
QCBjcmVhdGVfZXJyb3I6Ci0gICB9Ci0gZXhpc3Rpbmdfc2Vzc2lvbjoKLSAgIHsKLS0gICAgZ193
YXJuaW5nICgicnRwYmluOiBzZXNzaW9uICVkIGlzIGFscmVhZHkgYSBzZW5kZXIiLCBzZXNzaWQp
OwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IHNlc3Npb24gJXUgaXMgYWxyZWFkeSBhIHNlbmRl
ciIsIHNlc3NpZCk7Ci0gICAgIHJldHVybiBGQUxTRTsKLSAgIH0KLSBwYWRfZmFpbGVkOgotICAg
ewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiBwYWQgZm9y
IHNlc3Npb24gJWQiLCBzZXNzaWQpOwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0
byBnZXQgc2Vzc2lvbiBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICByZXR1cm4g
RkFMU0U7Ci0gICB9Ci0gYXV4X2xpbmtfZmFpbGVkOgotICAgewotLSAgICBnX3dhcm5pbmcgKCJy
dHBiaW46IGZhaWxlZCB0byBsaW5rIEFVWCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAg
IGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgQVVYIGZvciBzZXNzaW9uICV1Iiwg
c2Vzc2lkKTsKLSAgICAgcmV0dXJuIEZBTFNFOwotICAgfQotIHNlc3Npb25fc3JjX2ZhaWxlZDoK
LSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gY29tcGxldGUgQVVYIGZv
ciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQg
dG8gY29tcGxldGUgQVVYIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKLSAgICAgcmV0dXJuIEZB
TFNFOwotICAgfQotIH0KLUBAIC0zODQ3LDcgKzQwOTEsNyBAQCBjcmVhdGVfc2VuZF9ydHAgKEdz
dFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UGFkVGVtcGxhdGUgKiB0ZW1wbCwgY29uc3QgZ2NoYXIgKiBu
YW1lKQotICAgICBpZiAoIXNldHVwX2F1eF9zZW5kZXIgKHJ0cGJpbiwgc2Vzc2lvbiwgYXV4KSkK
LSAgICAgICBnb3RvIGF1eF9zZXNzaW9uX2ZhaWxlZDsKLSAKLS0gICAgcG5hbWUgPSBnX3N0cmR1
cF9wcmludGYgKCJzaW5rXyVkIiwgc2Vzc2lkKTsKLSsgICAgcG5hbWUgPSBnX3N0cmR1cF9wcmlu
dGYgKCJzaW5rXyV1Iiwgc2Vzc2lkKTsKLSAgICAgc2VuZF9ydHBfc2luayA9IGdzdF9lbGVtZW50
X2dldF9zdGF0aWNfcGFkIChhdXgsIHBuYW1lKTsKLSAgICAgZ19mcmVlIChwbmFtZSk7Ci0gCi1A
QCAtMzg4NywyNyArNDEzMSwyNyBAQCBjcmVhdGVfZXJyb3I6Ci0gICB9Ci0gZXhpc3Rpbmdfc2Vz
c2lvbjoKLSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBzZXNzaW9uICVkIGlzIGFscmVh
ZHkgaW4gdXNlIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBzZXNzaW9uICV1
IGlzIGFscmVhZHkgaW4gdXNlIiwgc2Vzc2lkKTsKLSAgICAgcmV0dXJuIE5VTEw7Ci0gICB9Ci0g
YXV4X3Nlc3Npb25fZmFpbGVkOgotICAgewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxl
ZCB0byBnZXQgQVVYIHNpbmsgcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193
YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IEFVWCBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAl
dSIsIHNlc3NpZCk7Ci0gICAgIHJldHVybiBOVUxMOwotICAgfQotIGF1eF9zaW5rX2ZhaWxlZDoK
LSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IEFVWCBzaW5rIHBh
ZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFp
bGVkIHRvIGdldCBBVVggc2luayBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICBy
ZXR1cm4gTlVMTDsKLSAgIH0KLSBwYWRfZmFpbGVkOgotICAgewotLSAgICBnX3dhcm5pbmcgKCJy
dHBiaW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQp
OwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiBwYWQgZm9y
IHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0KLSBzZXNzaW9u
X3NyY19mYWlsZWQ6Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIHNl
dHVwIHNvdXJjZSBwYWRzIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5n
ICgicnRwYmluOiBmYWlsZWQgdG8gc2V0dXAgc291cmNlIHBhZHMgZm9yIHNlc3Npb24gJXUiLCBz
ZXNzaWQpOwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0KLSB9Ci1AQCAtMzk3OCwxMyArNDIyMiwx
MyBAQCBjcmVhdGVfcnRjcCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRl
bXBsLCBjb25zdCBnY2hhciAqIG5hbWUpCi0gCi0gICAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJp
biwgImxpbmtpbmcgUlRDUCBlbmNvZGVyIik7Ci0gCi0tICAgIGVuYW1lID0gZ19zdHJkdXBfcHJp
bnRmICgicnRjcF9zcmNfJWQiLCBzZXNzaWQpOwotKyAgICBlbmFtZSA9IGdfc3RyZHVwX3ByaW50
ZiAoInJ0Y3Bfc3JjXyV1Iiwgc2Vzc2lkKTsKLSAgICAgZW5jc3JjID0gZ3N0X2VsZW1lbnRfZ2V0
X3N0YXRpY19wYWQgKGVuY29kZXIsIGVuYW1lKTsKLSAgICAgZ19mcmVlIChlbmFtZSk7Ci0gICAg
IGlmIChlbmNzcmMgPT0gTlVMTCkKLSAgICAgICBnb3RvIGVuY19zcmNfZmFpbGVkOwotIAotLSAg
ICBlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJ0Y3Bfc2lua18lZCIsIHNlc3NpZCk7Ci0rICAg
IGVuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgicnRjcF9zaW5rXyV1Iiwgc2Vzc2lkKTsKLSAgICAg
ZW5jc2luayA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChlbmNvZGVyLCBlbmFtZSk7Ci0g
ICAgIGdfZnJlZSAoZW5hbWUpOwotICAgICBpZiAoZW5jc2luayA9PSBOVUxMKQotQEAgLTQwMjEs
MjMgKzQyNjUsMjMgQEAgbm9fc2Vzc2lvbjoKLSAgIH0KLSBwYWRfZmFpbGVkOgotICAgewotLSAg
ICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgcnRjcCBwYWQgZm9yIHNlc3Npb24g
JWQiLCBzZXNzaWQpOwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgcnRj
cCBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0K
LSBlbmNfc3JjX2ZhaWxlZDoKLSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQg
dG8gZ2V0IGVuY29kZXIgc3JjIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAgIGdf
d2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNyYyBwYWQgZm9yIHNlc3Np
b24gJXUiLCBzZXNzaWQpOwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0KLSBlbmNfc2lua19mYWls
ZWQ6Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBlbmNvZGVy
IHNpbmsgcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRw
YmluOiBmYWlsZWQgdG8gZ2V0IGVuY29kZXIgc2luayBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNz
aWQpOwotICAgICBnc3Rfb2JqZWN0X3VucmVmIChlbmNzcmMpOwotICAgICByZXR1cm4gTlVMTDsK
LSAgIH0KLSBlbmNfbGlua19mYWlsZWQ6Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjog
ZmFpbGVkIHRvIGxpbmsgcnRjcCBlbmNvZGVyIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsg
ICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBydGNwIGVuY29kZXIgZm9yIHNl
c3Npb24gJXUiLCBzZXNzaWQpOwotICAgICBnc3Rfb2JqZWN0X3VucmVmIChlbmNzcmMpOwotICAg
ICByZXR1cm4gTlVMTDsKLSAgIH0KLWRpZmYgLS1naXQgYS9nc3QvcnRwbWFuYWdlci9nc3RydHBi
aW4uaCBiL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oCi1pbmRleCBmYjEzYTQ3Li4zODRiNzZk
IDEwMDY0NAotLS0tIGEvZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmgKLSsrKyBiL2dzdC9ydHBt
YW5hZ2VyL2dzdHJ0cGJpbi5oCi1AQCAtMTI3LDYgKzEyNyw4IEBAIHN0cnVjdCBfR3N0UnRwQmlu
Q2xhc3MgewotIAotICAgdm9pZCAgICAgKCpvbl9uZXdfc2VuZGVyX3NzcmMpICAgICAgKEdzdFJ0
cEJpbiAqcnRwYmluLCBndWludCBzZXNzaW9uLCBndWludDMyIHNzcmMpOwotICAgdm9pZCAgICAg
KCpvbl9zZW5kZXJfc3NyY19hY3RpdmUpICAgKEdzdFJ0cEJpbiAqcnRwYmluLCBndWludCBzZXNz
aW9uLCBndWludDMyIHNzcmMpOwotKwotKyAgZ3VpbnQgICAgKCpvbl9idW5kbGVkX3NzcmMpICAg
ICAgICAgKEdzdFJ0cEJpbiAqcnRwYmluLCBndWludCBzc3JjKTsKLSB9OwotIAotIEdUeXBlIGdz
dF9ydHBfYmluX2dldF90eXBlICh2b2lkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9wYXRjaGVz
L2dzdC1wbHVnaW5zLWdvb2QtMDAwNC1xdGRlbXV4LWFkZC1jb250ZXh0LWZvci1hLXByZWZlcnJl
ZC1wcm90ZWN0aW9uLnBhdGNoIGIvVG9vbHMvZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0w
MDA0LXF0ZGVtdXgtYWRkLWNvbnRleHQtZm9yLWEtcHJlZmVycmVkLXByb3RlY3Rpb24ucGF0Y2gK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiMTVlMDE4ZjA5Li4wMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDQtcXRkZW11eC1hZGQt
Y29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaAorKysgL2Rldi9udWxsCkBA
IC0xLDMyMCArMCwwIEBACi1Gcm9tIGFlNGY3ZDRmMDlhMDUxYzJmYmJkMDVlNGRmOWY3OWZhNjUy
MjEwNGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBYYWJpZXIgUm9kcmlndWV6IENh
bHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KLURhdGU6IEZyaSwgMTYgU2VwIDIwMTYgMTY6MDg6
MTggKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gcXRkZW11eDogYWRkIGNvbnRleHQgZm9yIGEgcHJl
ZmVycmVkIHByb3RlY3Rpb24KLQotcXRkZW11eCBzZWxlY3RlZCB0aGUgZmlyc3Qgc3lzdGVtIGNv
cnJlc3BvbmRpbmcgdG8gYSB3b3JraW5nIEdTdHJlYW1lcgotZGVjcnlwdG9yLiBXaXRoIHRoaXMg
Y2hhbmdlLCBiZWZvcmUgc2VsZWN0aW5nIHRoYXQgZGVjcnlwdG9yLCBxdGRlbXV4Ci13aWxsIGNo
ZWNrIGlmIGl0IGhhcyBjb250ZXh0IChhIHByZWZlcnJlZCBkZWNyeXB0b3IgaWQpIGFuZCBpZiBu
b3QsIGl0Ci13aWxsIHJlcXVlc3QgaXQuCi0KLVRoZSByZXF1ZXN0IGluY2x1ZGVzIHRyYWNrLWlk
LCBhdmFpbGFibGUga2V5IHN5c3RlbSBpZHMgZm9yIHRoZQotYXZhaWxhYmxlIGRlY3J5cHRvcnMg
YW5kIGV2ZW50IHRoZSBldmVudHMgc28gdGhhdCB0aGUgaW5pdCBkYXRhIGlzCi1hY2Nlc3NpYmxl
LgotLS0tCi0gZ3N0L2lzb21wNC9xdGRlbXV4LmMgfCAyMDkgKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCi0gZ3N0L2lzb21wNC9xdGRlbXV4LmggfCAg
IDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDIwNCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygt
KQotCi1kaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVt
dXguYwotaW5kZXggMDQyNWU2Ni4uZTA1ZTc1ZSAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRk
ZW11eC5jCi0rKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotQEAgLTQ4MCw2ICs0ODAsOCBAQCBz
dGF0aWMgR3N0SW5kZXggKmdzdF9xdGRlbXV4X2dldF9pbmRleCAoR3N0RWxlbWVudCAqIGVsZW1l
bnQpOwotICNlbmRpZgotIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiBnc3RfcXRkZW11eF9j
aGFuZ2Vfc3RhdGUgKEdzdEVsZW1lbnQgKiBlbGVtZW50LAotICAgICBHc3RTdGF0ZUNoYW5nZSB0
cmFuc2l0aW9uKTsKLStzdGF0aWMgdm9pZCBnc3RfcXRkZW11eF9zZXRfY29udGV4dCAoR3N0RWxl
bWVudCAqIGVsZW1lbnQsCi0rICAgIEdzdENvbnRleHQgKiBjb250ZXh0KTsKLSBzdGF0aWMgZ2Jv
b2xlYW4gcXRkZW11eF9zaW5rX2FjdGl2YXRlIChHc3RQYWQgKiBzaW5rcGFkLCBHc3RPYmplY3Qg
KiBwYXJlbnQpOwotIHN0YXRpYyBnYm9vbGVhbiBxdGRlbXV4X3NpbmtfYWN0aXZhdGVfbW9kZSAo
R3N0UGFkICogc2lua3BhZCwKLSAgICAgR3N0T2JqZWN0ICogcGFyZW50LCBHc3RQYWRNb2RlIG1v
ZGUsIGdib29sZWFuIGFjdGl2ZSk7Ci1AQCAtNTU0LDYgKzU1Niw3IEBAIGdzdF9xdGRlbXV4X2Ns
YXNzX2luaXQgKEdzdFFURGVtdXhDbGFzcyAqIGtsYXNzKQotICAgZ3N0ZWxlbWVudF9jbGFzcy0+
c2V0X2luZGV4ID0gR1NUX0RFQlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X3NldF9pbmRleCk7Ci0g
ICBnc3RlbGVtZW50X2NsYXNzLT5nZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0
ZGVtdXhfZ2V0X2luZGV4KTsKLSAjZW5kaWYKLSsgIGdzdGVsZW1lbnRfY2xhc3MtPnNldF9jb250
ZXh0ID0gR1NUX0RFQlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X3NldF9jb250ZXh0KTsKLSAKLSAg
IGdzdF90YWdfcmVnaXN0ZXJfbXVzaWNicmFpbnpfdGFncyAoKTsKLSAKLUBAIC02MTIsNiArNjE1
LDcgQEAgZ3N0X3F0ZGVtdXhfaW5pdCAoR3N0UVREZW11eCAqIHF0ZGVtdXgpCi0gICBxdGRlbXV4
LT5jZW5jX2F1eF9pbmZvX3NpemVzID0gTlVMTDsKLSAgIHF0ZGVtdXgtPmNlbmNfYXV4X3NhbXBs
ZV9jb3VudCA9IDA7Ci0gICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMgPSBOVUxMOwot
KyAgcXRkZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkID0gTlVMTDsKLSAgIGdf
cXVldWVfaW5pdCAoJnF0ZGVtdXgtPnByb3RlY3Rpb25fZXZlbnRfcXVldWUpOwotICAgZ3N0X3Nl
Z21lbnRfaW5pdCAoJnF0ZGVtdXgtPnNlZ21lbnQsIEdTVF9GT1JNQVRfVElNRSk7Ci0gICBxdGRl
bXV4LT5mbG93Y29tYmluZXIgPSBnc3RfZmxvd19jb21iaW5lcl9uZXcgKCk7Ci1AQCAtMTk3Miw2
ICsxOTc2LDEwIEBAIGdzdF9xdGRlbXV4X3Jlc2V0IChHc3RRVERlbXV4ICogcXRkZW11eCwgZ2Jv
b2xlYW4gaGFyZCkKLSAgICAgZ19xdWV1ZV9mb3JlYWNoICgmcXRkZW11eC0+cHJvdGVjdGlvbl9l
dmVudF9xdWV1ZSwgKEdGdW5jKSBnc3RfZXZlbnRfdW5yZWYsCi0gICAgICAgICBOVUxMKTsKLSAg
ICAgZ19xdWV1ZV9jbGVhciAoJnF0ZGVtdXgtPnByb3RlY3Rpb25fZXZlbnRfcXVldWUpOwotKyAg
ICBpZiAocXRkZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkKSB7Ci0rICAgICAg
Z19mcmVlIChxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQpOwotKyAgICAg
IHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCA9IE5VTEw7Ci0rICAgIH0K
LSAgIH0KLSAgIHF0ZGVtdXgtPm9mZnNldCA9IDA7Ci0gICBnc3RfYWRhcHRlcl9jbGVhciAocXRk
ZW11eC0+YWRhcHRlcik7Ci1AQCAtMjQwNCw2ICsyNDEyLDI5IEBAIGdzdF9xdGRlbXV4X2NoYW5n
ZV9zdGF0ZSAoR3N0RWxlbWVudCAqIGVsZW1lbnQsIEdzdFN0YXRlQ2hhbmdlIHRyYW5zaXRpb24p
Ci0gfQotIAotIHN0YXRpYyB2b2lkCi0rZ3N0X3F0ZGVtdXhfc2V0X2NvbnRleHQgKEdzdEVsZW1l
bnQgKiBlbGVtZW50LCBHc3RDb250ZXh0ICogY29udGV4dCkKLSt7Ci0rICBHc3RRVERlbXV4ICpx
dGRlbXV4ID0gR1NUX1FUREVNVVggKGVsZW1lbnQpOwotKwotKyAgZ19yZXR1cm5faWZfZmFpbCAo
R1NUX0lTX0NPTlRFWFQgKGNvbnRleHQpKTsKLSsKLSsgIGlmIChnX3N0cmNtcDAgKGdzdF9jb250
ZXh0X2dldF9jb250ZXh0X3R5cGUgKGNvbnRleHQpLAotKyAgICAgICAgICAiZHJtLXByZWZlcnJl
ZC1kZWNyeXB0aW9uLXN5c3RlbS1pZCIpID09IDApIHsKLSsgICAgY29uc3QgR3N0U3RydWN0dXJl
ICpzOwotKwotKyAgICBzID0gZ3N0X2NvbnRleHRfZ2V0X3N0cnVjdHVyZSAoY29udGV4dCk7Ci0r
ICAgIHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCA9Ci0rICAgICAgICBn
X3N0cmR1cCAoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nIChzLCAiZGVjcnlwdGlvbi1zeXN0ZW0t
aWQiKSk7Ci0rICAgIEdTVF9ERUJVR19PQkpFQ1QgKGVsZW1lbnQsICJzZXQgcHJlZmVycmVkIGRl
Y3J5cHRpb24gc3lzdGVtIHRvICVzIiwKLSsgICAgICAgIHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90
ZWN0aW9uX3N5c3RlbV9pZCk7Ci0rICB9Ci0rCi0rICBHU1RfVFJBQ0VfT0JKRUNUIChlbGVtZW50
LCAiY2hhaW5pbmcgc2V0X2NvbnRleHQgdG8gc3VwZXJjbGFzcyAlcCBvciAlcCIsCi0rICAgICAg
R1NUX0VMRU1FTlRfR0VUX0NMQVNTIChlbGVtZW50KSwgcGFyZW50X2NsYXNzKTsKLSsgIEdTVF9F
TEVNRU5UX0NMQVNTIChwYXJlbnRfY2xhc3MpLT5zZXRfY29udGV4dCAoZWxlbWVudCwgY29udGV4
dCk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0gcXRkZW11eF9wYXJzZV9mdHlwIChHc3RRVERlbXV4
ICogcXRkZW11eCwgY29uc3QgZ3VpbnQ4ICogYnVmZmVyLCBnaW50IGxlbmd0aCkKLSB7Ci0gICAv
KiBjb3VudHMgYXMgaGVhZGVyIGRhdGEgKi8KLUBAIC0zMzkyLDYgKzM0MjMsOCBAQCBxdGRlbXV4
X3BhcnNlX3Bzc2ggKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHTm9kZSAqIG5vZGUpCi0gICBldmVu
dCA9IGdzdF9ldmVudF9uZXdfcHJvdGVjdGlvbiAoc3lzaWRfc3RyaW5nLCBwc3NoLAotICAgICAg
IChwYXJlbnRfYm94X3R5cGUgPT0gRk9VUkNDX21vb3YpID8gImlzb2JtZmYvbW9vdiIgOiAiaXNv
Ym1mZi9tb29mIik7Ci0gICBmb3IgKGkgPSAwOyBpIDwgcXRkZW11eC0+bl9zdHJlYW1zOyArK2kp
IHsKLSsgICAgR1NUX1RSQUNFX09CSkVDVCAocXRkZW11eCwKLSsgICAgICAgICJhZGRpbmcgcHJv
dGVjdGlvbiBldmVudCBmb3Igc3RyZWFtICVkIGFuZCBzeXN0ZW0gJXMiLCBpLCBzeXNpZF9zdHJp
bmcpOwotICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoJnF0ZGVtdXgtPnN0cmVhbXNbaV0tPnByb3Rl
Y3Rpb25fc2NoZW1lX2V2ZW50X3F1ZXVlLAotICAgICAgICAgZ3N0X2V2ZW50X3JlZiAoZXZlbnQp
KTsKLSAgIH0KLUBAIC00OTkzLDYgKzUwMjYsMTIgQEAgZ3N0X3F0ZGVtdXhfZGVjb3JhdGVfYW5k
X3B1c2hfYnVmZmVyIChHc3RRVERlbXV4ICogcXRkZW11eCwKLSAgICAgR3N0RXZlbnQgKmV2ZW50
OwotIAotICAgICB3aGlsZSAoKGV2ZW50ID0gZ19xdWV1ZV9wb3BfaGVhZCAoJnN0cmVhbS0+cHJv
dGVjdGlvbl9zY2hlbWVfZXZlbnRfcXVldWUpKSkgewotKyNpZiAoIUdTVF9ESVNBQkxFX0dTVF9E
RUJVRykKLSsgICAgICBjb25zdCBnY2hhciAqc3lzdGVtX2lkID0gTlVMTDsKLSsgICAgICBnc3Rf
ZXZlbnRfcGFyc2VfcHJvdGVjdGlvbiAoZXZlbnQsICZzeXN0ZW1faWQsIE5VTEwsIE5VTEwpOwot
KyAgICAgIEdTVF9UUkFDRV9PQkpFQ1QgKHF0ZGVtdXgsICJwdXNoaW5nIGFnYWluIHByb3RlY3Rp
b24gZXZlbnQgZm9yIHN5c3RlbSAlcyIsCi0rICAgICAgICAgIHN5c3RlbV9pZCk7Ci0rI2VuZGlm
Ci0gICAgICAgZ3N0X3BhZF9wdXNoX2V2ZW50IChzdHJlYW0tPnBhZCwgZXZlbnQpOwotICAgICB9
Ci0gCi1AQCAtNjk0NywxMSArNjk4NiwxNDggQEAgcXRkZW11eF9kb19hbGxvY2F0aW9uIChHc3RR
VERlbXV4ICogcXRkZW11eCwgUXREZW11eFN0cmVhbSAqIHN0cmVhbSkKLSB9Ci0gCi0gc3RhdGlj
IGdib29sZWFuCi0rcGFkX3F1ZXJ5IChjb25zdCBHVmFsdWUgKiBpdGVtLCBHVmFsdWUgKiB2YWx1
ZSwgZ3BvaW50ZXIgdXNlcl9kYXRhKQotK3sKLSsgIEdzdFBhZCAqcGFkID0gZ192YWx1ZV9nZXRf
b2JqZWN0IChpdGVtKTsKLSsgIEdzdFF1ZXJ5ICpxdWVyeSA9IHVzZXJfZGF0YTsKLSsgIGdib29s
ZWFuIHJlczsKLSsKLSsgIHJlcyA9IGdzdF9wYWRfcGVlcl9xdWVyeSAocGFkLCBxdWVyeSk7Ci0r
Ci0rICBpZiAocmVzKSB7Ci0rICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4gKHZhbHVlLCBUUlVFKTsK
LSsgICAgcmV0dXJuIEZBTFNFOwotKyAgfQotKwotKyAgR1NUX0lORk9fT0JKRUNUIChwYWQsICJw
YWQgcGVlciBxdWVyeSBmYWlsZWQiKTsKLSsgIHJldHVybiBUUlVFOwotK30KLSsKLStzdGF0aWMg
Z2Jvb2xlYW4KLStnc3RfcXRkZW11eF9ydW5fcXVlcnkgKEdzdEVsZW1lbnQgKiBlbGVtZW50LCBH
c3RRdWVyeSAqIHF1ZXJ5LAotKyAgICBHc3RQYWREaXJlY3Rpb24gZGlyZWN0aW9uKQotK3sKLSsg
IEdzdEl0ZXJhdG9yICppdDsKLSsgIEdzdEl0ZXJhdG9yRm9sZEZ1bmN0aW9uIGZ1bmMgPSBwYWRf
cXVlcnk7Ci0rICBHVmFsdWUgcmVzID0geyAwLCB9OwotKwotKyAgZ192YWx1ZV9pbml0ICgmcmVz
LCBHX1RZUEVfQk9PTEVBTik7Ci0rICBnX3ZhbHVlX3NldF9ib29sZWFuICgmcmVzLCBGQUxTRSk7
Ci0rCi0rICAvKiBBc2sgbmVpZ2hib3IgKi8KLSsgIGlmIChkaXJlY3Rpb24gPT0gR1NUX1BBRF9T
UkMpCi0rICAgIGl0ID0gZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zcmNfcGFkcyAoZWxlbWVudCk7Ci0r
ICBlbHNlCi0rICAgIGl0ID0gZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zaW5rX3BhZHMgKGVsZW1lbnQp
OwotKwotKyAgd2hpbGUgKGdzdF9pdGVyYXRvcl9mb2xkIChpdCwgZnVuYywgJnJlcywgcXVlcnkp
ID09IEdTVF9JVEVSQVRPUl9SRVNZTkMpCi0rICAgIGdzdF9pdGVyYXRvcl9yZXN5bmMgKGl0KTsK
LSsKLSsgIGdzdF9pdGVyYXRvcl9mcmVlIChpdCk7Ci0rCi0rICByZXR1cm4gZ192YWx1ZV9nZXRf
Ym9vbGVhbiAoJnJlcyk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZ3N0X3F0ZGVtdXhfcmVxdWVz
dF9wcm90ZWN0aW9uX2NvbnRleHRfaWZfbmVlZGVkIChHc3RRVERlbXV4ICogcXRkZW11eCwKLSsg
ICAgUXREZW11eFN0cmVhbSAqIHN0cmVhbSkKLSt7Ci0rICBHc3RRdWVyeSAqcXVlcnk7Ci0rICBH
c3RDb250ZXh0ICpjdHh0OwotKyAgR3N0RWxlbWVudCAqZWxlbWVudCA9IEdTVF9FTEVNRU5UIChx
dGRlbXV4KTsKLSsgIEdzdFN0cnVjdHVyZSAqc3Q7Ci0rICBnY2hhciAqKmZpbHRlcmVkX3N5c19p
ZHM7Ci0rICBHVmFsdWUgZXZlbnRfbGlzdCA9IEdfVkFMVUVfSU5JVDsKLSsgIEdMaXN0ICp3YWxr
OwotKwotKyAgLyogMS4gQ2hlY2sgaWYgd2UgYWxyZWFkeSBoYXZlIHRoZSBjb250ZXh0LiAqLwot
KyAgaWYgKHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCAhPSBOVUxMKSB7
Ci0rICAgIEdTVF9MT0dfT0JKRUNUIChlbGVtZW50LAotKyAgICAgICAgImFscmVhZHkgaGF2ZSB0
aGUgcHJvdGVjdGlvbiBjb250ZXh0LCBubyBuZWVkIHRvIHJlcXVlc3QgaXQgYWdhaW4iKTsKLSsg
ICAgcmV0dXJuOwotKyAgfQotKwotKyAgR1NUX1RSQUNFX09CSkVDVCAocXRkZW11eCwgImN1cnJl
bnRseSB3ZSBoYXZlIGRldGVjdGVkICV1IHByb3RlY3Rpb24gc3lzdGVtcyIsCi0rICAgICAgcXRk
ZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5sZW4pOwotKyAgZ19wdHJfYXJyYXlfYWRkIChx
dGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMsIE5VTEwpOwotKyAgZmlsdGVyZWRfc3lzX2lk
cyA9IGdzdF9wcm90ZWN0aW9uX2ZpbHRlcl9zeXN0ZW1zX2J5X2F2YWlsYWJsZV9kZWNyeXB0b3Jz
ICgKLSsgICAgICAoY29uc3QgZ2NoYXIgKiopIHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lk
cy0+cGRhdGEpOwotKyAgZ19wdHJfYXJyYXlfcmVtb3ZlX2luZGV4IChxdGRlbXV4LT5wcm90ZWN0
aW9uX3N5c3RlbV9pZHMsCi0rICAgICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5s
ZW4gLSAxKTsKLSsgIGlmIChmaWx0ZXJlZF9zeXNfaWRzID09IE5VTEwgfHwgZmlsdGVyZWRfc3lz
X2lkc1swXSA9PSBOVUxMKSB7Ci0rICAgIEdTVF9MT0dfT0JKRUNUIChxdGRlbXV4LCAibm8gc3Vp
dGFibGUgZGVjcnlwdG9ycyBmb3VuZCwgbm90IGlzc3VpbmcgdGhlICIKLSsgICAgICAgICJjb250
ZXh0IHJlcXVlc3QiKTsKLSsgICAgZ19zdHJmcmVldiAoZmlsdGVyZWRfc3lzX2lkcyk7Ci0rICAg
IHJldHVybjsKLSsgIH0KLSsgIEdTVF9UUkFDRV9PQkpFQ1QgKHF0ZGVtdXgsICJmb3VuZCBzdWl0
YWJsZSBkZWNyeXB0b3JzLCBydW5uaW5nIHRoZSBjb250ZXh0ICIKLSsgICAgICAicmVxdWVzdCIp
OwotKwotKyAgaWYgKHN0cmVhbS0+cHJvdGVjdGlvbl9zY2hlbWVfZXZlbnRfcXVldWUubGVuZ3Ro
KSB7Ci0rICAgIEdTVF9UUkFDRV9PQkpFQ1QgKHF0ZGVtdXgsICJ1c2luZyBzdHJlYW0gZXZlbnQg
cXVldWUsIGxlbmd0aCAldSIsCi0rICAgICAgICBzdHJlYW0tPnByb3RlY3Rpb25fc2NoZW1lX2V2
ZW50X3F1ZXVlLmxlbmd0aCk7Ci0rICAgIHdhbGsgPSBzdHJlYW0tPnByb3RlY3Rpb25fc2NoZW1l
X2V2ZW50X3F1ZXVlLnRhaWw7Ci0rICB9IGVsc2UgewotKyAgICBHU1RfVFJBQ0VfT0JKRUNUIChx
dGRlbXV4LCAidXNpbmcgZGVtdXhlciBldmVudCBxdWV1ZSwgbGVuZ3RoICV1IiwKLSsgICAgICAg
IHF0ZGVtdXgtPnByb3RlY3Rpb25fZXZlbnRfcXVldWUubGVuZ3RoKTsKLSsgICAgd2FsayA9IHF0
ZGVtdXgtPnByb3RlY3Rpb25fZXZlbnRfcXVldWUudGFpbDsKLSsgIH0KLSsKLSsgIGdfdmFsdWVf
aW5pdCAoJmV2ZW50X2xpc3QsIEdTVF9UWVBFX0xJU1QpOwotKyAgZm9yICg7IHdhbGs7IHdhbGsg
PSBnX2xpc3RfcHJldmlvdXMgKHdhbGspKSB7Ci0rICAgIEdWYWx1ZSAqZXZlbnRfdmFsdWUgPSBn
X25ldzAgKEdWYWx1ZSwgMSk7Ci0rICAgIGdfdmFsdWVfaW5pdCAoZXZlbnRfdmFsdWUsIEdTVF9U
WVBFX0VWRU5UKTsKLSsgICAgZ192YWx1ZV9zZXRfYm94ZWQgKGV2ZW50X3ZhbHVlLCB3YWxrLT5k
YXRhKTsKLSsgICAgZ3N0X3ZhbHVlX2xpc3RfYXBwZW5kX2FuZF90YWtlX3ZhbHVlICgmZXZlbnRf
bGlzdCwgZXZlbnRfdmFsdWUpOwotKyAgfQotKwotKyAgLyogIDJhKSBRdWVyeSBkb3duc3RyZWFt
IHdpdGggR1NUX1FVRVJZX0NPTlRFWFQgZm9yIHRoZSBjb250ZXh0IGFuZAotKyAgICogICAgICBj
aGVjayBpZiBkb3duc3RyZWFtIGFscmVhZHkgaGFzIGEgY29udGV4dCBvZiB0aGUgc3BlY2lmaWMg
dHlwZQotKyAgICogIDJiKSBRdWVyeSB1cHN0cmVhbSBhcyBhYm92ZS4KLSsgICAqLwotKyAgcXVl
cnkgPSBnc3RfcXVlcnlfbmV3X2NvbnRleHQgKCJkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lz
dGVtLWlkIik7Ci0rICBzdCA9IChHc3RTdHJ1Y3R1cmUgKikgZ3N0X3F1ZXJ5X2dldF9zdHJ1Y3R1
cmUgKHF1ZXJ5KTsKLSsgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzdCwgInRyYWNrLWlkIiwgR19UWVBF
X1VJTlQsIHN0cmVhbS0+dHJhY2tfaWQsCi0rICAgICAgInN0cmVhbS1lbmNyeXB0aW9uLXN5c3Rl
bXMiLCBHX1RZUEVfU1RSViwgZmlsdGVyZWRfc3lzX2lkcywgTlVMTCk7Ci0rICBnc3Rfc3RydWN0
dXJlX3NldF92YWx1ZSAoc3QsICJzdHJlYW0tZW5jcnlwdGlvbi1ldmVudHMiLCAmZXZlbnRfbGlz
dCk7Ci0rICBpZiAoZ3N0X3F0ZGVtdXhfcnVuX3F1ZXJ5IChlbGVtZW50LCBxdWVyeSwgR1NUX1BB
RF9TUkMpKSB7Ci0rICAgIGdzdF9xdWVyeV9wYXJzZV9jb250ZXh0IChxdWVyeSwgJmN0eHQpOwot
KyAgICBHU1RfSU5GT19PQkpFQ1QgKGVsZW1lbnQsICJmb3VuZCBjb250ZXh0ICglcCkgaW4gZG93
bnN0cmVhbSBxdWVyeSIsIGN0eHQpOwotKyAgICBnc3RfZWxlbWVudF9zZXRfY29udGV4dCAoZWxl
bWVudCwgY3R4dCk7Ci0rICB9IGVsc2UgaWYgKGdzdF9xdGRlbXV4X3J1bl9xdWVyeSAoZWxlbWVu
dCwgcXVlcnksIEdTVF9QQURfU0lOSykpIHsKLSsgICAgZ3N0X3F1ZXJ5X3BhcnNlX2NvbnRleHQg
KHF1ZXJ5LCAmY3R4dCk7Ci0rICAgIEdTVF9JTkZPX09CSkVDVCAoZWxlbWVudCwgImZvdW5kIGNv
bnRleHQgKCVwKSBpbiB1cHN0cmVhbSBxdWVyeSIsIGN0eHQpOwotKyAgICBnc3RfZWxlbWVudF9z
ZXRfY29udGV4dCAoZWxlbWVudCwgY3R4dCk7Ci0rICB9IGVsc2UgewotKyAgICAvKiAzKSBQb3N0
IGEgR1NUX01FU1NBR0VfTkVFRF9DT05URVhUIG1lc3NhZ2Ugb24gdGhlIGJ1cyB3aXRoCi0rICAg
ICAqICAgIHRoZSByZXF1aXJlZCBjb250ZXh0IHR5cGUgYW5kIGFmdGVyd2FyZHMgY2hlY2sgaWYg
YQotKyAgICAgKiAgICB1c2FibGUgY29udGV4dCB3YXMgc2V0IG5vdyBhcyBpbiAxKS4gVGhlIG1l
c3NhZ2UgY291bGQKLSsgICAgICogICAgYmUgaGFuZGxlZCBieSB0aGUgcGFyZW50IGJpbnMgb2Yg
dGhlIGVsZW1lbnQgYW5kIHRoZQotKyAgICAgKiAgICBhcHBsaWNhdGlvbi4KLSsgICAgICovCi0r
ICAgIEdzdE1lc3NhZ2UgKm1zZzsKLSsKLSsgICAgR1NUX0lORk9fT0JKRUNUIChlbGVtZW50LCAi
cG9zdGluZyBuZWVkIGNvbnRleHQgbWVzc2FnZSIpOwotKyAgICBtc2cgPSBnc3RfbWVzc2FnZV9u
ZXdfbmVlZF9jb250ZXh0IChHU1RfT0JKRUNUX0NBU1QgKGVsZW1lbnQpLAotKyAgICAgICAgImRy
bS1wcmVmZXJyZWQtZGVjcnlwdGlvbi1zeXN0ZW0taWQiKTsKLSsgICAgc3QgPSAoR3N0U3RydWN0
dXJlICopIGdzdF9tZXNzYWdlX2dldF9zdHJ1Y3R1cmUgKG1zZyk7Ci0rICAgIGdzdF9zdHJ1Y3R1
cmVfc2V0IChzdCwgInRyYWNrLWlkIiwgR19UWVBFX1VJTlQsIHN0cmVhbS0+dHJhY2tfaWQsCi0r
ICAgICAgICAic3RyZWFtLWVuY3J5cHRpb24tc3lzdGVtcyIsIEdfVFlQRV9TVFJWLCBmaWx0ZXJl
ZF9zeXNfaWRzLCBOVUxMKTsKLSsgICAgZ3N0X3N0cnVjdHVyZV9zZXRfdmFsdWUgKHN0LCAic3Ry
ZWFtLWVuY3J5cHRpb24tZXZlbnRzIiwgJmV2ZW50X2xpc3QpOwotKyAgICBnc3RfZWxlbWVudF9w
b3N0X21lc3NhZ2UgKGVsZW1lbnQsIG1zZyk7Ci0rICB9Ci0rCi0rICBnX3N0cmZyZWV2IChmaWx0
ZXJlZF9zeXNfaWRzKTsKLSsgIGdfdmFsdWVfdW5zZXQgKCZldmVudF9saXN0KTsKLSsgIGdzdF9x
dWVyeV91bnJlZiAocXVlcnkpOwotK30KLSsKLStzdGF0aWMgZ2Jvb2xlYW4KLSBnc3RfcXRkZW11
eF9jb25maWd1cmVfcHJvdGVjdGVkX2NhcHMgKEdzdFFURGVtdXggKiBxdGRlbXV4LAotICAgICBR
dERlbXV4U3RyZWFtICogc3RyZWFtKQotIHsKLSAgIEdzdFN0cnVjdHVyZSAqczsKLS0gIGNvbnN0
IGdjaGFyICpzZWxlY3RlZF9zeXN0ZW07Ci0rICBjb25zdCBnY2hhciAqc2VsZWN0ZWRfc3lzdGVt
ID0gTlVMTDsKLSAKLSAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChxdGRlbXV4ICE9IE5VTEwsIEZB
TFNFKTsKLSAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzdHJlYW0gIT0gTlVMTCwgRkFMU0UpOwot
QEAgLTY5NjYsMTcgKzcxNDIsMzggQEAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3Byb3RlY3RlZF9j
YXBzIChHc3RRVERlbXV4ICogcXRkZW11eCwKLSAgICAgICAgICJjZW5jIHByb3RlY3Rpb24gc3lz
dGVtIGluZm9ybWF0aW9uIGhhcyBiZWVuIGZvdW5kIik7Ci0gICAgIHJldHVybiBGQUxTRTsKLSAg
IH0KLS0gIGdfcHRyX2FycmF5X2FkZCAocXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLCBO
VUxMKTsKLS0gIHNlbGVjdGVkX3N5c3RlbSA9IGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0g
KChjb25zdCBnY2hhciAqKikKLS0gICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMt
PnBkYXRhKTsKLS0gIGdfcHRyX2FycmF5X3JlbW92ZV9pbmRleCAocXRkZW11eC0+cHJvdGVjdGlv
bl9zeXN0ZW1faWRzLAotLSAgICAgIHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcy0+bGVu
IC0gMSk7Ci0rCi0rICBnc3RfcXRkZW11eF9yZXF1ZXN0X3Byb3RlY3Rpb25fY29udGV4dF9pZl9u
ZWVkZWQgKHF0ZGVtdXgsIHN0cmVhbSk7Ci0rICBpZiAocXRkZW11eC0+cHJlZmVycmVkX3Byb3Rl
Y3Rpb25fc3lzdGVtX2lkICE9IE5VTEwpIHsKLSsgICAgZ3VpbnQgaTsKLSsgICAgZm9yIChpID0g
MDsgaSA8IHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcy0+bGVuOyBpKyspIHsKLSsgICAg
ICBpZiAoZ19zdHJjbXAwIChnX3B0cl9hcnJheV9pbmRleCAocXRkZW11eC0+cHJvdGVjdGlvbl9z
eXN0ZW1faWRzLCBpKSwKLSsgICAgICAgICAgICAgIHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0
aW9uX3N5c3RlbV9pZCkgPT0gMCkgewotKyAgICAgICAgY29uc3QgZ2NoYXIgKnByZWZlcnJlZF9z
eXN0ZW1fYXJyYXlbXSA9Ci0rICAgICAgICAgICAgeyBxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVj
dGlvbl9zeXN0ZW1faWQsIE5VTEwgfTsKLSsgICAgICAgIHNlbGVjdGVkX3N5c3RlbSA9IGdzdF9w
cm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0gKHByZWZlcnJlZF9zeXN0ZW1fYXJyYXkpOwotKyAgICAg
ICAgYnJlYWs7Ci0rICAgICAgfQotKyAgICB9Ci0rICB9Ci0rCi0rICBpZiAoIXNlbGVjdGVkX3N5
c3RlbSkgewotKyAgICBnX3B0cl9hcnJheV9hZGQgKHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVt
X2lkcywgTlVMTCk7Ci0rICAgIHNlbGVjdGVkX3N5c3RlbSA9IGdzdF9wcm90ZWN0aW9uX3NlbGVj
dF9zeXN0ZW0gKChjb25zdCBnY2hhciAqKikKLSsgICAgICAgIHF0ZGVtdXgtPnByb3RlY3Rpb25f
c3lzdGVtX2lkcy0+cGRhdGEpOwotKyAgICBnX3B0cl9hcnJheV9yZW1vdmVfaW5kZXggKHF0ZGVt
dXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcywKLSsgICAgICAgIHF0ZGVtdXgtPnByb3RlY3Rpb25f
c3lzdGVtX2lkcy0+bGVuIC0gMSk7Ci0rICB9Ci0rCi0gICBpZiAoIXNlbGVjdGVkX3N5c3RlbSkg
ewotICAgICBHU1RfRVJST1JfT0JKRUNUIChxdGRlbXV4LCAic3RyZWFtIGlzIHByb3RlY3RlZCwg
YnV0IG5vICIKLSAgICAgICAgICJzdWl0YWJsZSBkZWNyeXB0b3IgZWxlbWVudCBoYXMgYmVlbiBm
b3VuZCIpOwotICAgICByZXR1cm4gRkFMU0U7Ci0gICB9Ci0gCi0rICBHU1RfREVCVUdfT0JKRUNU
IChxdGRlbXV4LCAic2VsZWN0ZWQgcHJvdGVjdGlvbiBzeXN0ZW0gaXMgJXMiLAotKyAgICAgIHNl
bGVjdGVkX3N5c3RlbSk7Ci0rCi0gICBzID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSAoc3RyZWFt
LT5jYXBzLCAwKTsKLSAgIGlmICghZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZSAocywgImFwcGxpY2F0
aW9uL3gtY2VuYyIpKSB7Ci0gICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzLAotZGlmZiAtLWdpdCBh
L2dzdC9pc29tcDQvcXRkZW11eC5oIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKLWluZGV4IDUzYmQw
NzEuLjU1YzRmNjMgMTAwNjQ0Ci0tLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguaAotKysrIGIvZ3N0
L2lzb21wNC9xdGRlbXV4LmgKLUBAIC0xNTMsNyArMTUzLDcgQEAgc3RydWN0IF9Hc3RRVERlbXV4
IHsKLSAgIGd1aW50NjQgY2VuY19hdXhfaW5mb19vZmZzZXQ7Ci0gICBndWludDggKmNlbmNfYXV4
X2luZm9fc2l6ZXM7Ci0gICBndWludDMyIGNlbmNfYXV4X3NhbXBsZV9jb3VudDsKLS0KLSsgIGdj
aGFyICpwcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQ7Ci0gfTsKLSAKLSBzdHJ1Y3QgX0dz
dFFURGVtdXhDbGFzcyB7Ci0tLSAKLTIuMTEuMAotCmRpZmYgLS1naXQgYS9Ub29scy9ndGsvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgt
Zmlyc3QtbW9vZi1mb3ItZnIucGF0Y2ggYi9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1n
b29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIu
cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhNjBkYjQ3NzJiLi4wMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRl
bXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKKysrIC9kZXYv
bnVsbApAQCAtMSwxMzMgKzAsMCBAQAotRnJvbSAxYTgxYmQ5MGQ0YTNlNTlkNjY2OWEwYmJmYTQ1
NmYxZWQ0ZTVkYjQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogWGFiaWVyIFJvZHJp
Z3VleiBDYWx2YXIgPGNhbHZhcmlzQGlnYWxpYS5jb20+Ci1EYXRlOiBUaHUsIDcgQXByIDIwMTYg
MTM6NTc6MTYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gUmV2ZXJ0ICJxdGRlbXV4OiBleHBvc2Ug
c3RyZWFtcyB3aXRoIGZpcnN0IG1vb2YgZm9yCi0gZnJhZ21lbnRlZCBmb3JtYXQiCi0KLVRoaXMg
cmV2ZXJ0cyBjb21taXQgZDhiYjY2ODdlYTI1MTU3MGMzMzEwMzgyNzlhNDNkNDQ4MTY3ZDZhZC4K
LS0tLQotIGdzdC9pc29tcDQvcXRkZW11eC5jIHwgNTQgKysrKysrKysrKysrKysrKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGdzdC9pc29tcDQvcXRkZW11eC5oIHwgIDEg
LQotIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCi0K
LWRpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5j
Ci1pbmRleCAzOWJlMTYzLi45NjM2YjRiIDEwMDY0NAotLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4
LmMKLSsrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCi1AQCAtNjA5LDcgKzYwOSw2IEBAIGdzdF9x
dGRlbXV4X2luaXQgKEdzdFFURGVtdXggKiBxdGRlbXV4KQotICAgcXRkZW11eC0+c3RhdGUgPSBR
VERFTVVYX1NUQVRFX0lOSVRJQUw7Ci0gICBxdGRlbXV4LT5wdWxsYmFzZWQgPSBGQUxTRTsKLSAg
IHF0ZGVtdXgtPnBvc3RlZF9yZWRpcmVjdCA9IEZBTFNFOwotLSAgcXRkZW11eC0+cGVuZGluZ19j
b25maWd1cmUgPSBGQUxTRTsKLSAgIHF0ZGVtdXgtPm5lZWRlZGJ5dGVzID0gMTY7Ci0gICBxdGRl
bXV4LT50b2Ryb3AgPSAwOwotICAgcXRkZW11eC0+YWRhcHRlciA9IGdzdF9hZGFwdGVyX25ldyAo
KTsKLUBAIC0yMDQ5LDcgKzIwNDgsNiBAQCBnc3RfcXRkZW11eF9yZXNldCAoR3N0UVREZW11eCAq
IHF0ZGVtdXgsIGdib29sZWFuIGhhcmQpCi0gICAgIGdzdF9jYXBzX3JlcGxhY2UgKCZxdGRlbXV4
LT5tZWRpYV9jYXBzLCBOVUxMKTsKLSAgICAgcXRkZW11eC0+dGltZXNjYWxlID0gMDsKLSAgICAg
cXRkZW11eC0+Z290X21vb3YgPSBGQUxTRTsKLS0gICAgcXRkZW11eC0+cGVuZGluZ19jb25maWd1
cmUgPSBGQUxTRTsKLSAgIH0gZWxzZSBpZiAocXRkZW11eC0+bXNzX21vZGUpIHsKLSAgICAgZ3N0
X2Zsb3dfY29tYmluZXJfcmVzZXQgKHF0ZGVtdXgtPmZsb3djb21iaW5lcik7Ci0gICAgIGZvciAo
biA9IDA7IG4gPCBxdGRlbXV4LT5uX3N0cmVhbXM7IG4rKykKLUBAIC02MTA0LDcgKzYxMDIsNiBA
QCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xl
YW4gZm9yY2UpCi0gICAgICAgICAgICAgJmZvdXJjYyk7Ci0gICAgICAgICBpZiAoZm91cmNjID09
IEZPVVJDQ19tb292KSB7Ci0gICAgICAgICAgIGdpbnQgbjsKLS0gICAgICAgICAgZ2Jvb2xlYW4g
Z290X3NhbXBsZXMgPSBGQUxTRTsKLSAKLSAgICAgICAgICAgLyogaW4gdXN1YWwgZnJhZ21lbnRl
ZCBzZXR1cCB3ZSBjb3VsZCB0cnkgdG8gc2NhbiBmb3IgbW9yZQotICAgICAgICAgICAgKiBhbmQg
ZW5kIHVwIGF0IHRoZSB0aGUgbW9vdiAoYWZ0ZXIgbWRhdCkgYWdhaW4gKi8KLUBAIC02MTM2LDI3
ICs2MTMzLDE5IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRl
bXV4LCBnYm9vbGVhbiBmb3JjZSkKLSAgICAgICAgICAgICBxdGRlbXV4X25vZGVfZHVtcCAoZGVt
dXgsIGRlbXV4LT5tb292X25vZGUpOwotICAgICAgICAgICAgIHF0ZGVtdXhfcGFyc2VfdHJlZSAo
ZGVtdXgpOwotICAgICAgICAgICAgIHF0ZGVtdXhfcHJlcGFyZV9zdHJlYW1zIChkZW11eCk7Ci0r
ICAgICAgICAgICAgaWYgKCFkZW11eC0+Z290X21vb3YpCi0rICAgICAgICAgICAgICBxdGRlbXV4
X2V4cG9zZV9zdHJlYW1zIChkZW11eCk7Ci0rICAgICAgICAgICAgZWxzZSB7Ci0gCi0tICAgICAg
ICAgICAgZm9yIChuID0gMDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgewotLSAgICAgICAg
ICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07Ci0tICAgICAg
ICAgICAgICBnb3Rfc2FtcGxlcyB8PSBzdHJlYW0tPnN0YmxfaW5kZXggPj0gMDsKLS0gICAgICAg
ICAgICB9Ci0tICAgICAgICAgICAgaWYgKCFkZW11eC0+ZnJhZ21lbnRlZCB8fCBnb3Rfc2FtcGxl
cykgewotLSAgICAgICAgICAgICAgaWYgKCFkZW11eC0+Z290X21vb3YpIHsKLS0gICAgICAgICAg
ICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAoZGVtdXgpOwotLSAgICAgICAgICAgICAgfSBl
bHNlIHsKLS0gICAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7
IG4rKykgewotLSAgICAgICAgICAgICAgICAgIFF0RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4
LT5zdHJlYW1zW25dOwotLSAgICAgICAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9z
dHJlYW0gKGRlbXV4LCBzdHJlYW0pOwotLSAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAg
ICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7Ci0rICAgICAgICAgICAg
ICAgIFF0RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOwotKwotKyAgICAg
ICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1cmVfc3RyZWFtIChkZW11eCwgc3RyZWFtKTsK
LSAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRf
cGVuZGluZ19zZWdtZW50IChkZW11eCk7Ci0tICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19j
b25maWd1cmUgPSBGQUxTRTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAg
ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gVFJVRTsKLSAgICAgICAgICAgICB9Ci0gCi0gICAg
ICAgICAgICAgZGVtdXgtPmdvdF9tb292ID0gVFJVRTsKLSsgICAgICAgICAgICBnc3RfcXRkZW11
eF9jaGVja19zZW5kX3BlbmRpbmdfc2VnbWVudCAoZGVtdXgpOwotIAotICAgICAgICAgICAgIC8q
IGZyYWdtZW50ZWQgc3RyZWFtcyBoZWFkZXJzIHNob3VsZG4ndCBjb250YWluIGVkdHMgYXRvbXMg
Ki8KLSAgICAgICAgICAgICBpZiAoIWRlbXV4LT5mcmFnbWVudGVkKSB7Ci1AQCAtNjE3NSw3ICs2
MTY0LDYgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgs
IGdib29sZWFuIGZvcmNlKQotICAgICAgICAgICAgIGd1aW50NjQgZGlzdCA9IDA7Ci0gICAgICAg
ICAgICAgR3N0Q2xvY2tUaW1lIHByZXZfcHRzOwotICAgICAgICAgICAgIGd1aW50NjQgcHJldl9v
ZmZzZXQ7Ci0tICAgICAgICAgICAgZ2ludCBuOwotIAotICAgICAgICAgICAgIEdTVF9ERUJVR19P
QkpFQ1QgKGRlbXV4LCAiUGFyc2luZyBbbW9vZl0iKTsKLSAKLUBAIC02MjA5LDI1ICs2MTk3LDE1
IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9v
bGVhbiBmb3JjZSkKLSAgICAgICAgICAgICAgIHJldCA9IEdTVF9GTE9XX0VSUk9SOwotICAgICAg
ICAgICAgICAgZ290byBkb25lOwotICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAvKiBpbiBN
U1Mgd2UgbmVlZCB0byBleHBvc2UgdGhlIHBhZHMgYWZ0ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ug
d29uJ3QgZ2V0IGEgbW9vdiAKLS0gICAgICAgICAgICAgKiBBbHNvLCBmcmFnbWVudGVkIGZvcm1h
dCBuZWVkIHRvIGJlIGV4cG9zZWQgaWYgYSBtb292IGhhdmUgbm8gdmFsaWQgc2FtcGxlIGRhdGEg
Ki8KLS0gICAgICAgICAgICBpZiAoZGVtdXgtPm1zc19tb2RlIHx8IGRlbXV4LT5wZW5kaW5nX2Nv
bmZpZ3VyZSkgewotLSAgICAgICAgICAgICAgaWYgKCFkZW11eC0+ZXhwb3NlZCkgewotLSAgICAg
ICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQpIHsKLS0gICAgICAgICAg
ICAgICAgICBHc3RTZWdtZW50IHNlZ21lbnQ7Ci0tICAgICAgICAgICAgICAgICAgZ3N0X3NlZ21l
bnRfaW5pdCAoJnNlZ21lbnQsIEdTVF9GT1JNQVRfVElNRSk7Ci0tICAgICAgICAgICAgICAgICAg
R1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVuZGluZ19uZXdzZWdtZW50Iik7Ci0tICAg
ICAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfbmV3c2VnbWVudCA9IGdzdF9ldmVudF9uZXdf
c2VnbWVudCAoJnNlZ21lbnQpOwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg
IHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKLS0gICAgICAgICAgICAgIH0gZWxzZSB7
Ci0tICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKysp
IHsKLS0gICAgICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3Ry
ZWFtc1tuXTsKLS0gICAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1cmVfc3RyZWFt
IChkZW11eCwgc3RyZWFtKTsKLS0gICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgIC8qIGlu
IE1TUyB3ZSBuZWVkIHRvIGV4cG9zZSB0aGUgcGFkcyBhZnRlciB0aGUgZmlyc3QgbW9vZiBhcyB3
ZSB3b24ndCBnZXQgYSBtb292ICovCi0rICAgICAgICAgICAgaWYgKGRlbXV4LT5tc3NfbW9kZSAm
JiAhZGVtdXgtPmV4cG9zZWQpIHsKLSsgICAgICAgICAgICAgIGlmICghZGVtdXgtPnBlbmRpbmdf
bmV3c2VnbWVudCkgewotKyAgICAgICAgICAgICAgICBHc3RTZWdtZW50IHNlZ21lbnQ7Ci0rICAg
ICAgICAgICAgICAgIGdzdF9zZWdtZW50X2luaXQgKCZzZWdtZW50LCBHU1RfRk9STUFUX1RJTUUp
OwotKyAgICAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwgIm5ldyBwZW5kaW5n
X25ld3NlZ21lbnQiKTsKLSsgICAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfbmV3c2VnbWVu
dCA9IGdzdF9ldmVudF9uZXdfc2VnbWVudCAoJnNlZ21lbnQpOwotICAgICAgICAgICAgICAgfQot
LSAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hlY2tfc2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRl
bXV4KTsKLS0gICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOwot
KyAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAoZGVtdXgpOwotICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNU
IChkZW11eCwgIkRpc2NhcmRpbmcgW21vb2ZdIik7Ci1kaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9x
dGRlbXV4LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAotaW5kZXggNjA2MTIxNS4uZWNmMGM2MyAx
MDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5oCi0rKysgYi9nc3QvaXNvbXA0L3F0ZGVt
dXguaAotQEAgLTg5LDcgKzg5LDYgQEAgc3RydWN0IF9Hc3RRVERlbXV4IHsKLSAgIGdib29sZWFu
IHBvc3RlZF9yZWRpcmVjdDsKLSAKLSAgIC8qIHB1c2ggYmFzZWQgdmFyaWFibGVzICovCi0tICBn
Ym9vbGVhbiBwZW5kaW5nX2NvbmZpZ3VyZTsKLSAgIGd1aW50IG5lZWRlZGJ5dGVzOwotICAgZ3Vp
bnQgdG9kcm9wOwotICAgR3N0QWRhcHRlciAqYWRhcHRlcjsKLS0tIAotMi44LjAucmMzCi0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL2d0ay9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0
LWRlY29kZS10aW1lLnBhdGNoIGIvVG9vbHMvZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC11
c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGMzYzA4ZGZlZDllLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9ndGsvcGF0Y2hlcy9nc3Qt
cGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaAorKysgL2Rldi9udWxs
CkBAIC0xLDg5ICswLDAgQEAKLUZyb20gMTU1NjA0M2MwMGViNjBkMzg3MWI0YmFhOGIwMjkxNzVj
MTZjNzA5NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9FbnJpcXVl
PTIwT2NhPUMzPUIxYT0yMEdvbno9QzM9QTFsZXo/PSA8ZW9jYW5oYUBpZ2FsaWEuY29tPgotRGF0
ZTogTW9uLCAyNCBPY3QgMjAxNiAxNjo1NjozMSArMDAwMAotU3ViamVjdDogW1BBVENIXSBVc2Ug
dGhlIHRmZHQgZGVjb2RlIHRpbWUgb24gYnl0ZSBzdHJlYW1zIHdoZW4gaXQncwotIHNpZ25pZmlj
YW50bHkgZGlmZmVyZW50IHRoYW4gdGhlIHRpbWUgaW4gdGhlIGxhc3Qgc2FtcGxlCi0KLVdlIGNv
bnNpZGVyIHRoZXJlJ3MgYSBzaWZuaWZpY2FudCBkaWZmZXJlbmNlIHdoZW4gaXQncyBsYXJnZXIg
dGhhbiBvbiBzZWNvbmQKLW9yIHRoYW4gaGFsZiB0aGUgZHVyYXRpb24gb2YgdGhlIGxhc3QgcHJv
Y2Vzc2VkIGZyYWdtZW50IGluIGNhc2UgdGhlIGxhdHRlciBpcwotbGFyZ2VyLgotCi1odHRwczov
L2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MjMwCi0tLS0KLSBnc3QvaXNv
bXA0L3F0ZGVtdXguYyB8IDI1ICsrKysrKysrKysrKysrKysrKysrKysrKysKLSAxIGZpbGUgY2hh
bmdlZCwgMjUgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4
LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotaW5kZXggZGIyZDM2MS4uNTQzMGEzOSAxMDA2NDQK
LS0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCi0rKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwot
QEAgLTk1LDYgKzk1LDggQEAKLSAKLSAjZGVmaW5lIFNUUkVBTV9JU19FT1MocykgKHMtPnRpbWVf
cG9zaXRpb24gPT0gR1NUX0NMT0NLX1RJTUVfTk9ORSkKLSAKLSsjZGVmaW5lIEFCU0RJRkYoeCwg
eSkgKCAoeCkgPiAoeSkgPyAoKHgpIC0gKHkpKSA6ICgoeSkgLSAoeCkpICkKLSsKLSBHU1RfREVC
VUdfQ0FURUdPUlkgKHF0ZGVtdXhfZGVidWcpOwotIAotIC8qdHlwZWRlZiBzdHJ1Y3QgX1F0Tm9k
ZSBRdE5vZGU7ICovCi1AQCAtMjU2LDYgKzI1OCw3IEBAIHN0cnVjdCBfUXREZW11eFN0cmVhbQot
ICAgZ3VpbnQzMiBuX3NhbXBsZXNfbW9vZjsgICAgICAgLyogc2FtcGxlIGNvdW50IGluIGEgbW9v
ZiAqLwotICAgZ3VpbnQ2NCBkdXJhdGlvbl9tb29mOyAgICAgICAgLyogZHVyYXRpb24gaW4gdGlt
ZXNjYWxlIG9mIGEgbW9vZiwgdXNlZCBmb3IgZmlndXJlIG91dAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICogdGhlIGZyYW1lcmF0ZSBvZiBmcmFnbWVudGVkIGZvcm1hdCBzdHJl
YW0gKi8KLSsgIGd1aW50NjQgZHVyYXRpb25fbGFzdF9tb29mOwotICAgZ3VpbnQzMiBvZmZzZXRf
aW5fc2FtcGxlOwotICAgZ3VpbnQzMiBtYXhfYnVmZmVyX3NpemU7Ci0gCi1AQCAtMTgyOCw2ICsx
ODMxLDcgQEAgX2NyZWF0ZV9zdHJlYW0gKHZvaWQpCi0gICBzdHJlYW0tPnByb3RlY3Rpb25fc2No
ZW1lX2luZm8gPSBOVUxMOwotICAgc3RyZWFtLT5uX3NhbXBsZXNfbW9vZiA9IDA7Ci0gICBzdHJl
YW0tPmR1cmF0aW9uX21vb2YgPSAwOwotKyAgc3RyZWFtLT5kdXJhdGlvbl9sYXN0X21vb2YgPSAw
OwotICAgZ19xdWV1ZV9pbml0ICgmc3RyZWFtLT5wcm90ZWN0aW9uX3NjaGVtZV9ldmVudF9xdWV1
ZSk7Ci0gICByZXR1cm4gc3RyZWFtOwotIH0KLUBAIC0yMzE1LDYgKzIzMTksNyBAQCBnc3RfcXRk
ZW11eF9zdHJlYW1fZmx1c2hfc2FtcGxlc19kYXRhIChHc3RRVERlbXV4ICogcXRkZW11eCwKLSAK
LSAgIHN0cmVhbS0+bl9zYW1wbGVzX21vb2YgPSAwOwotICAgc3RyZWFtLT5kdXJhdGlvbl9tb29m
ID0gMDsKLSsgIHN0cmVhbS0+ZHVyYXRpb25fbGFzdF9tb29mID0gMDsKLSB9Ci0gCi0gc3RhdGlj
IHZvaWQKLUBAIC0yODgzLDYgKzI4ODgsMjUgQEAgcXRkZW11eF9wYXJzZV90cnVuIChHc3RRVERl
bXV4ICogcXRkZW11eCwgR3N0Qnl0ZVJlYWRlciAqIHRydW4sCi0gICAgICAgICAgIHN0cmVhbS0+
c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFdLnRpbWVzdGFtcCArCi0gICAgICAgICAgIHN0
cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFdLmR1cmF0aW9uOwotIAotKyAgICAg
IC8qIElmIHRoaXMgaXMgYSBHU1RfRk9STUFUX0JZVEVTIHN0cmVhbSBhbmQgdGhlcmUncyBhIHNp
Z25pZmljYW50Ci0rICAgICAgICogZGlmZmVyZW5jZSAoMSBzZWMuKSBiZXR3ZWVuIGRlY29kZV90
cyBhbmQgdGltZXN0YW1wLCBwcmVmZXIgdGhlCi0rICAgICAgICogZm9ybWVyICovCi0rICAgICAg
aWYgKCFxdGRlbXV4LT51cHN0cmVhbV9mb3JtYXRfaXNfdGltZQotKyAgICAgICAgICAmJiBBQlNE
SUZGIChkZWNvZGVfdHMsIHRpbWVzdGFtcCkgPgotKyAgICAgICAgICBNQVggKHN0cmVhbS0+ZHVy
YXRpb25fbGFzdF9tb29mIC8gMiwKLSsgICAgICAgICAgICAgIEdTVFRJTUVfVE9fUVRTVFJFQU1U
SU1FIChzdHJlYW0sIEdTVF9TRUNPTkQpKSkgewotKyAgICAgICAgR1NUX0lORk9fT0JKRUNUIChx
dGRlbXV4LAotKyAgICAgICAgICAgICJkZWNvZGVfdHMgKCUiIEdTVF9USU1FX0ZPUk1BVCAiKSBh
bmQgdGltZXN0YW1wICglIiBHU1RfVElNRV9GT1JNQVQKLSsgICAgICAgICAgICAiKSBhcmUgc2ln
bmlmaWNhbnRseSBkaWZmZXJlbnQgKG1vcmUgdGhhbiAlIiBHU1RfVElNRV9GT1JNQVQKLSsgICAg
ICAgICAgICAiKSwgdXNpbmcgZGVjb2RlX3RzIiwKLSsgICAgICAgICAgICBHU1RfVElNRV9BUkdT
IChRVFNUUkVBTVRJTUVfVE9fR1NUVElNRSAoc3RyZWFtLCBkZWNvZGVfdHMpKSwKLSsgICAgICAg
ICAgICBHU1RfVElNRV9BUkdTIChRVFNUUkVBTVRJTUVfVE9fR1NUVElNRSAoc3RyZWFtLCB0aW1l
c3RhbXApKSwKLSsgICAgICAgICAgICBHU1RfVElNRV9BUkdTIChRVFNUUkVBTVRJTUVfVE9fR1NU
VElNRSAoc3RyZWFtLAotKyAgICAgICAgICAgICAgICAgICAgTUFYIChzdHJlYW0tPmR1cmF0aW9u
X2xhc3RfbW9vZiAvIDIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgR1NUVElNRV9UT19RVFNU
UkVBTVRJTUUgKHN0cmVhbSwgR1NUX1NFQ09ORCkpKSkpOwotKyAgICAgICAgdGltZXN0YW1wID0g
ZGVjb2RlX3RzOwotKyAgICAgIH0KLSsKLSAgICAgICBnc3RfdHMgPSBRVFNUUkVBTVRJTUVfVE9f
R1NUVElNRSAoc3RyZWFtLCB0aW1lc3RhbXApOwotICAgICAgIEdTVF9JTkZPX09CSkVDVCAocXRk
ZW11eCwgImZpcnN0IHNhbXBsZSB0cyAlIiBHU1RfVElNRV9GT1JNQVQKLSAgICAgICAgICAgIiAo
ZXh0ZW5kcyBwcmV2aW91cyBzYW1wbGVzKSIsIEdTVF9USU1FX0FSR1MgKGdzdF90cykpOwotQEAg
LTM1NDQsNiArMzU2OCw3IEBAIHF0ZGVtdXhfcGFyc2VfbW9vZiAoR3N0UVREZW11eCAqIHF0ZGVt
dXgsIGNvbnN0IGd1aW50OCAqIGJ1ZmZlciwgZ3VpbnQgbGVuZ3RoLAotIAotICAgICAvKiBpbml0
aWFsaXNlIG1vb2Ygc2FtcGxlIGRhdGEgKi8KLSAgICAgc3RyZWFtLT5uX3NhbXBsZXNfbW9vZiA9
IDA7Ci0rICAgIHN0cmVhbS0+ZHVyYXRpb25fbGFzdF9tb29mID0gc3RyZWFtLT5kdXJhdGlvbl9t
b29mOwotICAgICBzdHJlYW0tPmR1cmF0aW9uX21vb2YgPSAwOwotIAotICAgICAvKiBUcmFjayBS
dW4gbm9kZSAqLwotLS0gCi0yLjEuNAotCmRpZmYgLS1naXQgYS9Ub29scy9ndGsvcGF0Y2hlcy9n
c3RyZWFtZXItMDAwMS1wcm90ZWN0aW9uLWFkZGVkLWZ1bmN0aW9uLXRvLWZpbHRlci1zeXN0ZW0t
aWRzLnBhdGNoIGIvVG9vbHMvZ3RrL3BhdGNoZXMvZ3N0cmVhbWVyLTAwMDEtcHJvdGVjdGlvbi1h
ZGRlZC1mdW5jdGlvbi10by1maWx0ZXItc3lzdGVtLWlkcy5wYXRjaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTcyZWY2YzEzMmMuLjAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2d0ay9w
YXRjaGVzL2dzdHJlYW1lci0wMDAxLXByb3RlY3Rpb24tYWRkZWQtZnVuY3Rpb24tdG8tZmlsdGVy
LXN5c3RlbS1pZHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi1Gcm9tIDc3
NzJlYjM1MDU5MTY4MmI2YTMxNWM4YTg3YTU4MTMxZjczMWYxZDQgTW9uIFNlcCAxNyAwMDowMDow
MCAyMDAxCi1Gcm9tOiBYYWJpZXIgUm9kcmlndWV6IENhbHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNv
bT4KLURhdGU6IFdlZCwgMTkgT2N0IDIwMTYgMTY6NDQ6MTYgKzAyMDAKLVN1YmplY3Q6IFtQQVRD
SF0gcHJvdGVjdGlvbjogYWRkZWQgZnVuY3Rpb24gdG8gZmlsdGVyIHN5c3RlbSBpZHMKLQotZ3N0
X3Byb3RlY3Rpb25fZmlsdGVyX3N5c3RlbXNfYnlfYXZhaWxhYmxlX2RlY3J5cHRvcnMgdGFrZXMg
YW4gYXJyYXkgb2YKLXN0cmluZ3MgYW5kIHJldHVybnMgYSBuZXcgYXJyYXkgb2Ygc3RyaW5ncyBm
aWx0ZXJlZCBieSB0aGUgYXZhaWJsZQotZGVjcnlwdG9ycyBmb3IgdGhlbSBzbyB0aGUgb25lcyB5
b3UgZ2V0IGFyZSB0aGUgb25lcyB0aGF0IHlvdSBzaG91bGQgYmUKLWFibGUgdG8gZGVjcnlwdC4K
LS0tLQotIGdzdC9nc3Rwcm90ZWN0aW9uLmMgfCAzNiArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysKLSBnc3QvZ3N0cHJvdGVjdGlvbi5oIHwgIDIgKysKLSAyIGZpbGVzIGNoYW5n
ZWQsIDM4IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2dzdC9nc3Rwcm90ZWN0aW9uLmMg
Yi9nc3QvZ3N0cHJvdGVjdGlvbi5jCi1pbmRleCA4ZWU1MmVhLi4yZDdlNWUwIDEwMDY0NAotLS0t
IGEvZ3N0L2dzdHByb3RlY3Rpb24uYwotKysrIGIvZ3N0L2dzdHByb3RlY3Rpb24uYwotQEAgLTE5
MSw2ICsxOTEsNDIgQEAgZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbSAoY29uc3QgZ2NoYXIg
Kiogc3lzdGVtX2lkZW50aWZpZXJzKQotICAgcmV0dXJuIHJldHZhbDsKLSB9Ci0gCi0rZ2NoYXIg
KioKLStnc3RfcHJvdGVjdGlvbl9maWx0ZXJfc3lzdGVtc19ieV9hdmFpbGFibGVfZGVjcnlwdG9y
cyAoY29uc3QgZ2NoYXIgKioKLSsgICAgc3lzdGVtX2lkZW50aWZpZXJzKQotK3sKLSsgIEdMaXN0
ICpkZWNyeXB0b3JzLCAqd2FsazsKLSsgIGdjaGFyICoqcmV0dmFsOwotKyAgZ3VpbnQgaSA9IDAs
IGRlY3J5cHRvcnNfbnVtYmVyOwotKwotKyAgZGVjcnlwdG9ycyA9Ci0rICAgICAgZ3N0X2VsZW1l
bnRfZmFjdG9yeV9saXN0X2dldF9lbGVtZW50cyAoR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RF
Q1JZUFRPUiwKLSsgICAgICBHU1RfUkFOS19NQVJHSU5BTCk7Ci0rCi0rICBkZWNyeXB0b3JzX251
bWJlciA9IGdfbGlzdF9sZW5ndGggKGRlY3J5cHRvcnMpOwotKyAgcmV0dmFsID0gZ19uZXcgKGdj
aGFyICosIGRlY3J5cHRvcnNfbnVtYmVyICsgMSk7Ci0rCi0rICBHU1RfVFJBQ0UgKCJmb3VuZCAl
dSBkZWNyeXRvcnMiLCBkZWNyeXB0b3JzX251bWJlcik7Ci0rCi0rICBmb3IgKHdhbGsgPSBkZWNy
eXB0b3JzOyB3YWxrOyB3YWxrID0gZ19saXN0X25leHQgKHdhbGspKSB7Ci0rICAgIEdzdEVsZW1l
bnRGYWN0b3J5ICpmYWN0ID0gKEdzdEVsZW1lbnRGYWN0b3J5ICopIHdhbGstPmRhdGE7Ci0rCi0r
ICAgIGNvbnN0IGNoYXIgKmZvdW5kX3N5c19pZCA9Ci0rICAgICAgICBnc3RfcHJvdGVjdGlvbl9m
YWN0b3J5X2NoZWNrIChmYWN0LCBzeXN0ZW1faWRlbnRpZmllcnMpOwotKyAgICBHU1RfVFJBQ0Ug
KCJmYWN0b3J5ICVzIGlzIHZhbGlkIGZvciAlcyIsIEdTVF9PQkpFQ1RfTkFNRSAoZmFjdCksCi0r
ICAgICAgICBmb3VuZF9zeXNfaWQpOwotKwotKyAgICBpZiAoZm91bmRfc3lzX2lkKSB7Ci0rICAg
ICAgcmV0dmFsW2krK10gPSBnX3N0cmR1cCAoZm91bmRfc3lzX2lkKTsKLSsgICAgfQotKyAgfQot
KyAgcmV0dmFsW2ldID0gTlVMTDsKLSsKLSsgIGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUg
KGRlY3J5cHRvcnMpOwotKwotKyAgcmV0dXJuIHJldHZhbDsKLSt9Ci0rCi0gc3RhdGljIGNvbnN0
IGdjaGFyICoKLSBnc3RfcHJvdGVjdGlvbl9mYWN0b3J5X2NoZWNrIChHc3RFbGVtZW50RmFjdG9y
eSAqIGZhY3QsCi0gICAgIGNvbnN0IGdjaGFyICoqIHN5c3RlbV9pZGVudGlmaWVycykKLWRpZmYg
LS1naXQgYS9nc3QvZ3N0cHJvdGVjdGlvbi5oIGIvZ3N0L2dzdHByb3RlY3Rpb24uaAotaW5kZXgg
ZjJmNTRjNC4uOTU5NzZjNSAxMDA2NDQKLS0tLSBhL2dzdC9nc3Rwcm90ZWN0aW9uLmgKLSsrKyBi
L2dzdC9nc3Rwcm90ZWN0aW9uLmgKLUBAIC02Niw2ICs2Niw4IEBAIEdzdFByb3RlY3Rpb25NZXRh
ICpnc3RfYnVmZmVyX2FkZF9wcm90ZWN0aW9uX21ldGEgKEdzdEJ1ZmZlciAqIGJ1ZmZlciwKLSAg
ICAgR3N0U3RydWN0dXJlICogaW5mbyk7Ci0gCi0gY29uc3QgZ2NoYXIgKmdzdF9wcm90ZWN0aW9u
X3NlbGVjdF9zeXN0ZW0gKGNvbnN0IGdjaGFyICoqIHN5c3RlbV9pZGVudGlmaWVycyk7Ci0rZ2No
YXIgKiogZ3N0X3Byb3RlY3Rpb25fZmlsdGVyX3N5c3RlbXNfYnlfYXZhaWxhYmxlX2RlY3J5cHRv
cnMgKAotKyAgICBjb25zdCBnY2hhciAqKiBzeXN0ZW1faWRlbnRpZmllcnMpOwotIAotIEdfRU5E
X0RFQ0xTCi0gI2VuZGlmIC8qIF9fR1NUX1BST1RFQ1RJT05fTUVUQV9IX18gKi8KLS0tIAotMi4x
MC4yCi0K
</data>
<flag name="review"
          id="330060"
          type_id="1"
          status="-"
          setter="calvaris"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309026</attachid>
            <date>2017-05-04 01:31:26 -0700</date>
            <delta_ts>2017-05-04 04:57:11 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk-gst-bump.diff</filename>
            <type>text/plain</type>
            <size>40576</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwZDZk
MzU1NGJiMC4uOGE1YzdiMzYzZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNy0wNS0wNCAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQnVtcCBHU3Ry
ZWFtZXIgdmVyc2lvbiB0byAxLjEwLjQgaW4gamhidWlsZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBndGsvamhidWlsZC5tb2R1bGVzOgorICAgICAg
ICAqIGd0ay9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NM
LTEuMS4wLnBhdGNoOiBSZW1vdmVkLgorICAgICAgICAqIGd0ay9wYXRjaGVzL2dzdC1wbHVnaW5z
LWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVy
YXRlX2sucGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMt
Z29vZC0wMDAxLXJ0cGJpbi1waXBlbGluZS1nZXRzLWFuLUVPUy13aGVuLWFueS1ydHBzb3VyY2Vz
LWJ5ZXMucGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMt
Z29vZC0wMDAyLXJ0cGJpbi1hdm9pZC1nZW5lcmF0aW5nLWVycm9ycy13aGVuLXJ0Y3AtbWVzc2Fn
ZXMtYXIucGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMt
Z29vZC0wMDA0LXF0ZGVtdXgtYWRkLWNvbnRleHQtZm9yLWEtcHJlZmVycmVkLXByb3RlY3Rpb24u
cGF0Y2g6CisgICAgICAgICogZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRk
ZW11eC1leHBvc2Utc3RyZWFtcy13aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoOiBSZW1vdmVk
LgorICAgICAgICAqIGd0ay9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRl
Y29kZS10aW1lLnBhdGNoOiBSZW1vdmVkLgorCiAyMDE3LTA1LTAzICBTYWFtIEJhcmF0aSAgPHNi
YXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEhvdyB3ZSBidWlsZCBwb2x5bW9ycGhpYyBjYXNl
cyBpcyB3cm9uZyB3aGVuIG1ha2luZyBhIGNhbGwgZnJvbSBXYXNtCmRpZmYgLS1naXQgYS9Ub29s
cy9ndGsvamhidWlsZC5tb2R1bGVzIGIvVG9vbHMvZ3RrL2poYnVpbGQubW9kdWxlcwppbmRleCA2
Y2Q0ODY1ZDVhYS4uNjIyYWNjNzhmZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2d0ay9qaGJ1aWxkLm1v
ZHVsZXMKKysrIGIvVG9vbHMvZ3RrL2poYnVpbGQubW9kdWxlcwpAQCAtMzUzLDEzICszNTMsNiBA
QAogICAgIDwvZGVwZW5kZW5jaWVzPgogICA8L2F1dG90b29scz4KIAotICA8YXV0b3Rvb2xzIGlk
PSJvcmMiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0iY29uZmln
dXJlIj4KLSAgICA8YnJhbmNoIG1vZHVsZT0ib3JjL29yYy0wLjQuMTcudGFyLmd6IiB2ZXJzaW9u
PSIwLjQuMTciCi0gICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCi0gICAgICAgICAgICBoYXNo
PSJzaGEyNTY6NGZjN2NjYTQ4YzU5ZmZmMjNhZmVlNzhmYjY0MmNkYmRlMDAxZjU2NDAxYzhmNDdi
OTVhMTY1NzhkMWQ1ZDdlOCIKLSAgICAgICAgICAgIG1kNXN1bT0iYWYxYmYzZGFiOWU2OWYzYzM2
ZjM4OTI4NWUyYTEyYTEiLz4KLSAgPC9hdXRvdG9vbHM+Ci0KICAgPGF1dG90b29scyBpZD0iZ3N0
cmVhbWVyIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3Rr
LWRvYyI+CiAgICAgPGlmIGNvbmRpdGlvbi1zZXQ9Im1hY29zIj4KICAgICAgIDxhdXRvZ2VuYXJn
cyB2YWx1ZT0iLS1kaXNhYmxlLWludHJvc3BlY3Rpb24iLz4KQEAgLTM2NywxMCArMzYwLDkgQEAK
ICAgICA8ZGVwZW5kZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJvcmMiLz4KICAgICA8L2Rl
cGVuZGVuY2llcz4KLSAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0cmVhbWVyL2dzdHJlYW1lci0ke3Zl
cnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44LjAiCisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdHJl
YW1lci9nc3RyZWFtZXItJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAuNCIKICAgICAg
ICAgICAgIHJlcG89ImdzdHJlYW1lciIKLSAgICAgICAgICAgIGhhc2g9InNoYTI1Njo5NDdhMzE0
YTIxMmI1ZDk0OTg1ZDg5YjQzNDQwZGJlNjZiNjk2ZTEyYmJkZjlhMmY3ODk2N2I5OGQ3NGFiZWRj
IgotICAgICAgICAgICAgbWQ1c3VtPSI2ODQ2ZDcyODllYzMyM2MzOGM0OWI4MTgxNzFlOTU1YSI+
CisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NTBjMmY1YWY1MGE2Y2M2YzBhM2YzZWQ0M2JkZDhi
NWUyYmZmMDBiYWNmYjc2NmQ0YmUxMzllYzA2ZDhiNTIxOCI+CiAgICAgICA8cGF0Y2ggZmlsZT0i
Z3N0cmVhbWVyLTAwMDEtcHJvdGVjdGlvbi1hZGRlZC1mdW5jdGlvbi10by1maWx0ZXItc3lzdGVt
LWlkcy5wYXRjaCIgc3RyaXA9IjEiLz4KICAgICA8L2JyYW5jaD4KICAgPC9hdXRvdG9vbHM+CkBA
IC0zODQsMTAgKzM3Niw5IEBACiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2Fn
ZT0iZ3N0cmVhbWVyIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBtb2R1bGU9
ImdzdC1wbHVnaW5zLWJhc2UvZ3N0LXBsdWdpbnMtYmFzZS0ke3ZlcnNpb259LnRhci54eiIgdmVy
c2lvbj0iMS44LjAiCisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWJhc2UvZ3N0LXBs
dWdpbnMtYmFzZS0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS4xMC40IgogICAgICAgICAg
ICAgcmVwbz0iZ3N0cmVhbWVyIgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmFiYzBhY2MxZDE1
YjRiOWM5N2M2NWNkOTY4OWJkNjQwMDA4MTg1M2I5OTgwZWE0MjhkM2M4NTcyZGQ3OTE1MjIiCi0g
ICAgICAgICAgICBtZDVzdW09IjIwY2M4MjMxNjA5MzE4MzEwZjJhNTVmNjRjODZjYmI0Ii8+Cisg
ICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZjZkMjQ1YjZiM2Q0Y2I3MzNmODFlYmIwMjEwNzRjNTI1
ZWNlODNkYjBjMTBlOTMyNzk0YjMzOWI4ZDkzNWViNyIvPgogICA8L2F1dG90b29scz4KIAogICA8
YXV0b3Rvb2xzIGlkPSJnc3QtcGx1Z2lucy1nb29kIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1
dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLXNvdXAgLS1kaXNhYmxlLWd0
ay1kb2MiPgpAQCAtMzk5LDE0ICszOTAsOSBAQAogICAgICAgPGRlcCBwYWNrYWdlPSJsaWJ2cHgi
Lz4KICAgICA8L2RlcGVuZGVuY2llcz4KIAotICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lu
cy1nb29kL2dzdC1wbHVnaW5zLWdvb2QtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4w
IgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1nb29kL2dzdC1wbHVnaW5zLWdvb2Qt
JHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAuNCIKICAgICAgICAgICAgIHJlcG89Imdz
dHJlYW1lciIKLSAgICAgICAgICAgIGhhc2g9InNoYTI1NjpjMjBjMTM0ZDQ3ZGJjMjM4ZDkyMTcw
N2EzYjY2ZGE3MDljMmI0ZGQ4OWY5ZDI2N2NlYzEzZDFkZGYxNmU5ZjRkIgotICAgICAgICAgICAg
bWQ1c3VtPSI5MWVkNDY0OWM3YzJlNDNhNjFmNzMxZDE0NGY2ZjZkMCI+Ci0gICAgICA8cGF0Y2gg
ZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2giIHN0
cmlwPSIxIi8+Ci0gICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRk
ZW11eC1leHBvc2Utc3RyZWFtcy13aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoIiBzdHJpcD0i
MSIvPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwMS1ydHBiaW4tcGlw
ZWxpbmUtZ2V0cy1hbi1FT1Mtd2hlbi1hbnktcnRwc291cmNlcy1ieWVzLnBhdGNoIiBzdHJpcD0i
MSIvPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwMi1ydHBiaW4tYXZv
aWQtZ2VuZXJhdGluZy1lcnJvcnMtd2hlbi1ydGNwLW1lc3NhZ2VzLWFyLnBhdGNoIiBzdHJpcD0i
MSIvPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjhhODZjNjE0MzRhOGM0NDY2NTM2NWJkMGIz
NTU3YTA0MDkzN2QxZjQ0YmY2OWNhZWU0ZTllYTgxNmNlNzRkN2UiPgogICAgICAgPHBhdGNoIGZp
bGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwMy1ydHBiaW4tcmVjZWl2ZS1idW5kbGUtc3VwcG9ydC5w
YXRjaCIgc3RyaXA9IjEiLz4KICAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAw
MDQtcXRkZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaCIg
c3RyaXA9IjEiLz4KICAgICA8L2JyYW5jaD4KQEAgLTQyMCwyMyArNDA2LDE4IEBACiAgICAgICA8
ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KICAgICAgIDxkZXAgcGFja2FnZT0ib3Bl
bmgyNjQiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KLSAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBs
dWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44
LjAiCisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWJhZC9nc3QtcGx1Z2lucy1iYWQt
JHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAuNCIKICAgICAgICAgICAgIHJlcG89Imdz
dHJlYW1lciIKLSAgICAgICAgICAgIGhhc2g9InNoYTI1NjoxMTYzNzZkZDEwODUwODI0MjJlMGIy
MWIwZWNkM2QxY2IzNDVjNDY5YzU4ZTMyNDYzMTY3ZDQ2NzVmNGNhOTBlIgotICAgICAgICAgICAg
bWQ1c3VtPSIxYzJkNzk3YmI5NmE4MWU5ZWY1NzBjN2EwYTM3MjAzZSI+Ci0gICAgICA8cGF0Y2gg
ZmlsZT0iZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0
Y2giIHN0cmlwPSIxIi8+Ci0gICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtYmFkLTAwMDIt
ZHRsc2NlcnRpZmljYXRlLUZpeC1lcnJvci1jaGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRj
aCIgc3RyaXA9IjEiLz4KLSAgICA8L2JyYW5jaD4KKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njoy
M2RkYWU1MDZiM2EyMjNiOTQ4NjlhMGQzZWVhM2U5YTEyZTg0N2Y5NGQyZDBlMGI5NzEwMmNlMTNl
Y2Q2OTY2Ii8+CiAgIDwvYXV0b3Rvb2xzPgogCiAgIDxhdXRvdG9vbHMgaWQ9ImdzdC1saWJhdiIg
YXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS13aXRoLWxpYmF2LWV4dHJhLWNv
bmZpZ3VyZT0nLS1kaXNhYmxlLXlhc20nIC0tZGlzYWJsZS1ndGstZG9jIj4KICAgICA8ZGVwZW5k
ZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+CiAgICAgPC9k
ZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1saWJhdi9nc3QtbGliYXYtJHt2
ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4wIgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3Qt
bGliYXYvZ3N0LWxpYmF2LSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjEwLjQiCiAgICAg
ICAgICAgICByZXBvPSJnc3RyZWFtZXIiCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6NWExY2Uy
ODg3NmFlZTkzY2I0ZjNkMDkwZjBlODA3OTE1YTVkOWJjMTMyNWUzNDgwZGQzMDJiODVhZWI0Mjkx
YyIKLSAgICAgICAgICAgIG1kNXN1bT0iMzYxNjM4ZmE0NTQ2NmM1MDUwYmNkZTZiZmUxMGZhNDYi
Lz4KKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo2Y2EwZmVjYTc1ZTNkNDgzMTVlMDdmMjBlYzM3
Y2Y2MjYwZWQxZTlkZGU1OGRmMzU1ZmViZDUwMTYyNDYyNjhiIi8+CiAgIDwvYXV0b3Rvb2xzPgog
CiAgIDxhdXRvdG9vbHMgaWQ9InhzZXJ2ZXIiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUteGluZXJh
bWEgLS1lbmFibGUtZ2x4IC0tZW5hYmxlLWNvbXBvc2l0ZSAtLWRpc2FibGUteG9yZyAtLWRpc2Fi
bGUtZG14IC0tZGlzYWJsZS14bmVzdCAtLWRpc2FibGUteHF1YXJ0eiAtLWRpc2FibGUteHdpbiAt
LWRpc2FibGUteGVwaHlyIC0tZGlzYWJsZS14ZmFrZSAtLWRpc2FibGUteGZiZGV2IC0tZGlzYWJs
ZS1pbnN0YWxsLXNldHVpZCAtLWRpc2FibGUtdW5pdC10ZXN0cyAtLWRpc2FibGUtcHJlc2VudCAt
LWVuYWJsZS11bml4LXRyYW5zcG9ydCAtLWVuYWJsZS10Y3AtdHJhbnNwb3J0IC0tZGlzYWJsZS1s
b2NhbC10cmFuc3BvcnQgLS13aXRoLXhrYi1wYXRoPS91c3Ivc2hhcmUvWDExL3hrYiAtLXdpdGgt
eGtiLW91dHB1dD0vdmFyL2xpYi94a2IgLS13aXRoLXhrYi1iaW4tZGlyZWN0b3J5PS91c3IvYmlu
IC0td2l0aG91dC1kdHJhY2UiPgpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL3BhdGNoZXMvZ3N0LXBs
dWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2ggYi9Ub29scy9n
dGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEu
MC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQxMDY0ZWQ1ZTkuLjAwMDAw
MDAwMDAwCi0tLSBhL1Rvb2xzL2d0ay9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMt
cG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjM2ICswLDAg
QEAKLUZyb20gZTkzODkzMzE2N2M0OTRjZGNhNDQzMzM0ZjY1OGIwMmEwM2M0NDg2YiBNb24gU2Vw
IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERhaWtpIFVlbm8gPGR1ZW5vQHJlZGhhdC5jb20+Ci1E
YXRlOiBXZWQsIDI2IE9jdCAyMDE2IDE0OjUxOjAxICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGR0
bHM6IHBvcnQgdG8gT3BlblNTTCAxLjEuMAotCi1DaGFuZ2VzIGFyZToKLQotLSBVc2UgdGhlIHdy
YXBwZXIgZnVuY3Rpb25zIHRvIGFjY2VzcyBvcGFxdWUgZGF0YSB0eXBlcy4gIFRvIHByZXNlcnZl
Ci0gIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGRlZmluZSBmYWxsYmFjayBkZWZpbml0aW9ucwot
Ci0tIFJlbW92ZSB0aGUgdXNlIG9mIGlkaW9tICJwcXVldWVfc2l6ZShzc2wtPmQxLT5zZW50X21l
c3NhZ2VzKSIsIHNpbmNlCi0gIHRoZXJlIGlzIG5vIHJlcGxhY2VtZW50Ci0KLS0gVXNlIFJTQV9n
ZW5lcmF0ZV9rZXlfZXggaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBSU0FfZ2VuZXJhdGVfa2V5
Ci0KLWh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM1NDAKLS0t
LQotIGV4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIHwgMTUgKysrKysrKysKLSBleHQvZHRs
cy9nc3RkdGxzY29ubmVjdGlvbi5jICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDkgZGVs
ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBi
L2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCi1pbmRleCA5NWZiYjgzLi5jMWM5NjAyIDEw
MDY0NAotLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKLSsrKyBiL2V4dC9kdGxz
L2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCi1AQCAtMTk5LDcgKzE5OSwyMiBAQCBpbml0X2dlbmVyYXRl
ZCAoR3N0RHRsc0NlcnRpZmljYXRlICogc2VsZikKLSAgICAgcHJpdi0+cHJpdmF0ZV9rZXkgPSBO
VUxMOwotICAgICByZXR1cm47Ci0gICB9Ci0rCi0rICAvKiBYWFg6IFJTQV9nZW5lcmF0ZV9rZXkg
aXMgYWN0dWFsbHkgZGVwcmVjYXRlZCBpbiAwLjkuOCAqLwotKyNpZiBPUEVOU1NMX1ZFUlNJT05f
TlVNQkVSIDwgMHgxMDEwMDAwMUwKLSAgIHJzYSA9IFJTQV9nZW5lcmF0ZV9rZXkgKDIwNDgsIFJT
QV9GNCwgTlVMTCwgTlVMTCk7Ci0rI2Vsc2UKLSsgIHJzYSA9IFJTQV9uZXcgKCk7Ci0rICBpZiAo
cnNhICE9IE5VTEwpIHsKLSsgICAgQklHTlVNICplID0gQk5fbmV3ICgpOwotKyAgICBpZiAoZSAh
PSBOVUxMICYmIEJOX3NldF93b3JkIChlLCBSU0FfRjQpCi0rICAgICAgICAmJiBSU0FfZ2VuZXJh
dGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7Ci0rICAgICAgUlNBX2ZyZWUgKHJzYSk7
Ci0rICAgICAgcnNhID0gTlVMTDsKLSsgICAgfQotKyAgICBCTl9mcmVlIChlKTsKLSsgIH0KLSsj
ZW5kaWYKLSAKLSAgIGlmICghcnNhKSB7Ci0gICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoc2VsZiwg
ImZhaWxlZCB0byBnZW5lcmF0ZSBSU0EiKTsKLWRpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxz
Y29ubmVjdGlvbi5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYwotaW5kZXggMzZmNmQ2
My4uNzI4ZjVhNyAxMDA2NDQKLS0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKLSsr
KyBiL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKLUBAIC00Miw2ICs0Miw4IEBACi0gI2lu
Y2x1ZGUgPG9wZW5zc2wvZXJyLmg+Ci0gI2luY2x1ZGUgPG9wZW5zc2wvc3NsLmg+Ci0gCi0rI2lu
Y2x1ZGUgPHN0cmluZy5oPgotKwotIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgKGdzdF9kdGxz
X2Nvbm5lY3Rpb25fZGVidWcpOwotICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIGdzdF9kdGxzX2Nv
bm5lY3Rpb25fZGVidWcKLSBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoR3N0RHRsc0Nvbm5lY3Rp
b24sIGdzdF9kdGxzX2Nvbm5lY3Rpb24sIEdfVFlQRV9PQkpFQ1QsCi1AQCAtMjE2LDYgKzIxOCwz
OCBAQCBnc3RfZHRsc19jb25uZWN0aW9uX2ZpbmFsaXplIChHT2JqZWN0ICogZ29iamVjdCkKLSAg
IEdfT0JKRUNUX0NMQVNTIChnc3RfZHRsc19jb25uZWN0aW9uX3BhcmVudF9jbGFzcyktPmZpbmFs
aXplIChnb2JqZWN0KTsKLSB9Ci0gCi0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEw
MTAwMDAxTAotK3N0YXRpYyB2b2lkCi0rQklPX3NldF9kYXRhIChCSU8gKiBiaW8sIHZvaWQgKnB0
cikKLSt7Ci0rICBiaW8tPnB0ciA9IHB0cjsKLSt9Ci0rCi0rc3RhdGljIHZvaWQgKgotK0JJT19n
ZXRfZGF0YSAoQklPICogYmlvKQotK3sKLSsgIHJldHVybiBiaW8tPnB0cjsKLSt9Ci0rCi0rc3Rh
dGljIHZvaWQKLStCSU9fc2V0X3NodXRkb3duIChCSU8gKiBiaW8sIGludCBzaHV0ZG93bikKLSt7
Ci0rICBiaW8tPnNodXRkb3duID0gc2h1dGRvd247Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rQklP
X3NldF9pbml0IChCSU8gKiBiaW8sIGludCBpbml0KQotK3sKLSsgIGJpby0+aW5pdCA9IGluaXQ7
Ci0rfQotKwotK3N0YXRpYyBYNTA5ICoKLStYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKFg1MDlf
U1RPUkVfQ1RYICogY3R4KQotK3sKLSsgIHJldHVybiBjdHgtPmNlcnQ7Ci0rfQotKyNlbmRpZgot
KwotIHN0YXRpYyB2b2lkCi0gZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJvcGVydHkgKEdPYmpl
Y3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCi0gICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBH
UGFyYW1TcGVjICogcHNwZWMpCi1AQCAtMjM5LDcgKzI3Myw3IEBAIGdzdF9kdGxzX2Nvbm5lY3Rp
b25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAotICAgICAg
IHByaXYtPmJpbyA9IEJJT19uZXcgKEJJT19zX2dzdF9kdGxzX2Nvbm5lY3Rpb24gKCkpOwotICAg
ICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHByaXYtPmJpbyk7Ci0gCi0tICAgICAgcHJpdi0+YmlvLT5w
dHIgPSBzZWxmOwotKyAgICAgIEJJT19zZXRfZGF0YSAocHJpdi0+YmlvLCBzZWxmKTsKLSAgICAg
ICBTU0xfc2V0X2JpbyAocHJpdi0+c3NsLCBwcml2LT5iaW8sIHByaXYtPmJpbyk7Ci0gCi0gICAg
ICAgU1NMX3NldF92ZXJpZnkgKHByaXYtPnNzbCwKLUBAIC01NzMsNiArNjA3LDcgQEAgbG9nX3N0
YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICogc3RyKQotICAgc3Rh
dGVzIHw9ICghICFTU0xfd2FudF93cml0ZSAocHJpdi0+c3NsKSA8PCAyMCk7Ci0gICBzdGF0ZXMg
fD0gKCEgIVNTTF93YW50X3JlYWQgKHByaXYtPnNzbCkgPDwgMjQpOwotIAotKyNpZiBPUEVOU1NM
X1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKLSAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAi
JXM6IHJvbGU9JXMgYnVmPSglZCwlcDolZC8lZCkgJXh8JXggJXMiLAotICAgICAgIHN0ciwKLSAg
ICAgICBwcml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAotQEAgLTU4MSw2ICs2
MTYsMTUgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFy
ICogc3RyKQotICAgICAgIHByaXYtPmJpb19idWZmZXJfb2Zmc2V0LAotICAgICAgIHByaXYtPmJp
b19idWZmZXJfbGVuLAotICAgICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAocHJpdi0+c3NsKSwg
U1NMX3N0YXRlX3N0cmluZ19sb25nIChwcml2LT5zc2wpKTsKLSsjZWxzZQotKyAgR1NUX0xPR19P
QkpFQ1QgKHNlbGYsICIlczogcm9sZT0lcyBidWY9KCVwOiVkLyVkKSAleHwleCAlcyIsCi0rICAg
ICAgc3RyLAotKyAgICAgIHByaXYtPmlzX2NsaWVudCA/ICJjbGllbnQiIDogInNlcnZlciIsCi0r
ICAgICAgcHJpdi0+YmlvX2J1ZmZlciwKLSsgICAgICBwcml2LT5iaW9fYnVmZmVyX29mZnNldCwK
LSsgICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKLSsgICAgICBzdGF0ZXMsIFNTTF9nZXRfc3Rh
dGUgKHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+c3NsKSk7Ci0rI2Vu
ZGlmCi0gfQotIAotIHN0YXRpYyB2b2lkCi1AQCAtNzM3LDcgKzc4MSw3IEBAIG9wZW5zc2xfdmVy
aWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlfY3R4
KQotICAgc2VsZiA9IFNTTF9nZXRfZXhfZGF0YSAoc3NsLCBjb25uZWN0aW9uX2V4X2luZGV4KTsK
LSAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChHU1RfSVNfRFRMU19DT05ORUNUSU9OIChzZWxmKSwg
RkFMU0UpOwotIAotLSAgcGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtICh4NTA5X2N0eC0+Y2Vy
dCk7Ci0rICBwZW0gPSBfZ3N0X2R0bHNfeDUwOV90b19wZW0gKFg1MDlfU1RPUkVfQ1RYX2dldDBf
Y2VydCAoeDUwOV9jdHgpKTsKLSAKLSAgIGlmICghcGVtKSB7Ci0gICAgIEdTVF9XQVJOSU5HX09C
SkVDVCAoc2VsZiwKLUBAIC03NDksNyArNzkzLDggQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sg
KGludCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCi0gICAgICAgZ2lu
dCBsZW47Ci0gCi0gICAgICAgbGVuID0KLS0gICAgICAgICAgWDUwOV9OQU1FX3ByaW50X2V4IChi
aW8sIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoeDUwOV9jdHgtPmNlcnQpLCAxLAotKyAgICAgICAg
ICBYNTA5X05BTUVfcHJpbnRfZXggKGJpbywKLSsgICAgICAgICAgWDUwOV9nZXRfc3ViamVjdF9u
YW1lIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSksIDEsCi0gICAgICAgICAg
IFhOX0ZMQUdfTVVMVElMSU5FKTsKLSAgICAgICBCSU9fcmVhZCAoYmlvLCBidWZmZXIsIGxlbik7
Ci0gICAgICAgYnVmZmVyW2xlbl0gPSAnXDAnOwotQEAgLTc3Nyw2ICs4MjIsNyBAQCBvcGVuc3Ns
X3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFggKiB4NTA5
X2N0eCkKLSAgICAgIyMjIyMjIyMgICMjIyMgICMjIyMjIyMKLSAqLwotIAotKyNpZiBPUEVOU1NM
X1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKLSBzdGF0aWMgQklPX01FVEhPRCBjdXN0b21f
YmlvX21ldGhvZHMgPSB7Ci0gICBCSU9fVFlQRV9CSU8sCi0gICAic3RyZWFtIiwKLUBAIC03OTUs
MTEgKzg0MSwzNCBAQCBCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lkKQotIHsKLSAgIHJl
dHVybiAmY3VzdG9tX2Jpb19tZXRob2RzOwotIH0KLSsjZWxzZQotK3N0YXRpYyBCSU9fTUVUSE9E
ICpjdXN0b21fYmlvX21ldGhvZHM7Ci0rCi0rc3RhdGljIEJJT19NRVRIT0QgKgotK0JJT19zX2dz
dF9kdGxzX2Nvbm5lY3Rpb24gKHZvaWQpCi0rewotKyAgaWYgKGN1c3RvbV9iaW9fbWV0aG9kcyAh
PSBOVUxMKQotKyAgICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOwotKwotKyAgY3VzdG9tX2Jp
b19tZXRob2RzID0gQklPX21ldGhfbmV3IChCSU9fVFlQRV9CSU8sICJzdHJlYW0iKTsKLSsgIGlm
IChjdXN0b21fYmlvX21ldGhvZHMgPT0gTlVMTAotKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfd3Jp
dGUgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF93cml0ZSkKLSsgICAgICB8fCAhQklP
X21ldGhfc2V0X3JlYWQgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9yZWFkKQotKyAg
ICAgIHx8ICFCSU9fbWV0aF9zZXRfY3RybCAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0aG9k
X2N0cmwpCi0rICAgICAgfHwgIUJJT19tZXRoX3NldF9jcmVhdGUgKGN1c3RvbV9iaW9fbWV0aG9k
cywgYmlvX21ldGhvZF9uZXcpCi0rICAgICAgfHwgIUJJT19tZXRoX3NldF9kZXN0cm95IChjdXN0
b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfZnJlZSkpIHsKLSsgICAgQklPX21ldGhfZnJlZSAo
Y3VzdG9tX2Jpb19tZXRob2RzKTsKLSsgICAgcmV0dXJuIE5VTEw7Ci0rICB9Ci0rCi0rICByZXR1
cm4gY3VzdG9tX2Jpb19tZXRob2RzOwotK30KLSsjZW5kaWYKLSAKLSBzdGF0aWMgaW50Ci0gYmlv
X21ldGhvZF93cml0ZSAoQklPICogYmlvLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgc2l6ZSkKLSB7
Ci0tICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+
cHRyKTsKLSsgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAo
QklPX2dldF9kYXRhIChiaW8pKTsKLSAKLSAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiQklPOiB3
cml0aW5nICVkIiwgc2l6ZSk7Ci0gCi1AQCAtODI0LDcgKzg5Myw3IEBAIGJpb19tZXRob2Rfd3Jp
dGUgKEJJTyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCi0gc3RhdGljIGludAot
IGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6ZSkK
LSB7Ci0tICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKGJp
by0+cHRyKTsKLSsgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElP
TiAoQklPX2dldF9kYXRhIChiaW8pKTsKLSAgIEdzdER0bHNDb25uZWN0aW9uUHJpdmF0ZSAqcHJp
diA9IHNlbGYtPnByaXY7Ci0gICBndWludCBpbnRlcm5hbF9zaXplOwotICAgZ2ludCBjb3B5X3Np
emU7Ci1AQCAtODY4LDcgKzkzNyw3IEBAIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFy
ICpvdXRfYnVmZmVyLCBpbnQgc2l6ZSkKLSBzdGF0aWMgbG9uZwotIGJpb19tZXRob2RfY3RybCAo
QklPICogYmlvLCBpbnQgY21kLCBsb25nIGFyZzEsIHZvaWQgKmFyZzIpCi0gewotLSAgR3N0RHRs
c0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7Ci0rICBH
c3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0
YSAoYmlvKSk7Ci0gICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxmLT5wcml2
OwotIAotICAgc3dpdGNoIChjbWQpIHsKLUBAIC05MTYsOCArOTg1LDggQEAgYmlvX21ldGhvZF9u
ZXcgKEJJTyAqIGJpbykKLSB7Ci0gICBHU1RfTE9HX09CSkVDVCAoTlVMTCwgIkJJTzogbmV3Iik7
Ci0gCi0tICBiaW8tPnNodXRkb3duID0gMDsKLS0gIGJpby0+aW5pdCA9IDE7Ci0rICBCSU9fc2V0
X3NodXRkb3duIChiaW8sIDApOwotKyAgQklPX3NldF9pbml0IChiaW8sIDEpOwotIAotICAgcmV0
dXJuIDE7Ci0gfQotQEAgLTkzMCw2ICs5OTksNiBAQCBiaW9fbWV0aG9kX2ZyZWUgKEJJTyAqIGJp
bykKLSAgICAgcmV0dXJuIDA7Ci0gICB9Ci0gCi0tICBHU1RfTE9HX09CSkVDVCAoR1NUX0RUTFNf
Q09OTkVDVElPTiAoYmlvLT5wdHIpLCAiQklPIGZyZWUiKTsKLSsgIEdTVF9MT0dfT0JKRUNUIChH
U1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpLCAiQklPIGZyZWUiKTsKLSAg
IHJldHVybiAwOwotIH0KLS0tIAotMi4xMC4yCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9wYXRj
aGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tp
bmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2ggYi9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lu
cy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5l
cmF0ZV9rLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjY4NzczNzBjNi4u
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDIt
ZHRsc2NlcnRpZmljYXRlLUZpeC1lcnJvci1jaGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRj
aAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLUZyb20gM2EwNjkxOTNlMjUzNjRlYmRh
Y2FjODZmNGIwMzAyMmMxNTFlYTI5YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/
VVRGLTg/cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdlPz0gPHNlYmFzdGlhbkBjZW50cmljdWxhci5j
b20+Ci1EYXRlOiBNb24sIDE0IE5vdiAyMDE2IDExOjMyOjE3ICswMjAwCi1TdWJqZWN0OiBbUEFU
Q0hdIGR0bHNjZXJ0aWZpY2F0ZTogRml4IGVycm9yIGNoZWNraW5nIGluIFJTQV9nZW5lcmF0ZV9r
ZXlfZXgoKQotIHVzYWdlCi0KLVdhcyBicm9rZW4gZHVyaW5nIHRoZSBwb3J0IGZvciBPcGVuU1NM
IDEuMS4KLQotaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDMy
OAotLS0tCi0gZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMgfCA3ICsrKystLS0KLSAxIGZp
bGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0
IGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMgYi9leHQvZHRscy9nc3RkdGxzY2VydGlm
aWNhdGUuYwotaW5kZXggYzFjOTYwMi4uYzJkOWJiMiAxMDA2NDQKLS0tLSBhL2V4dC9kdGxzL2dz
dGR0bHNjZXJ0aWZpY2F0ZS5jCi0rKysgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYwot
QEAgLTIwNywxMiArMjA3LDEzIEBAIGluaXRfZ2VuZXJhdGVkIChHc3REdGxzQ2VydGlmaWNhdGUg
KiBzZWxmKQotICAgcnNhID0gUlNBX25ldyAoKTsKLSAgIGlmIChyc2EgIT0gTlVMTCkgewotICAg
ICBCSUdOVU0gKmUgPSBCTl9uZXcgKCk7Ci0tICAgIGlmIChlICE9IE5VTEwgJiYgQk5fc2V0X3dv
cmQgKGUsIFJTQV9GNCkKLS0gICAgICAgICYmIFJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0
OCwgZSwgTlVMTCkpIHsKLSsgICAgaWYgKGUgPT0gTlVMTCB8fCAhQk5fc2V0X3dvcmQgKGUsIFJT
QV9GNCkKLSsgICAgICAgIHx8ICFSU0FfZ2VuZXJhdGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5V
TEwpKSB7Ci0gICAgICAgUlNBX2ZyZWUgKHJzYSk7Ci0gICAgICAgcnNhID0gTlVMTDsKLSAgICAg
fQotLSAgICBCTl9mcmVlIChlKTsKLSsgICAgaWYgKGUpCi0rICAgICAgQk5fZnJlZSAoZSk7Ci0g
ICB9Ci0gI2VuZGlmCi0gCi0tLSAKLTIuMTAuMgotCmRpZmYgLS1naXQgYS9Ub29scy9ndGsvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDEtcnRwYmluLXBpcGVsaW5lLWdldHMtYW4tRU9TLXdo
ZW4tYW55LXJ0cHNvdXJjZXMtYnllcy5wYXRjaCBiL1Rvb2xzL2d0ay9wYXRjaGVzL2dzdC1wbHVn
aW5zLWdvb2QtMDAwMS1ydHBiaW4tcGlwZWxpbmUtZ2V0cy1hbi1FT1Mtd2hlbi1hbnktcnRwc291
cmNlcy1ieWVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMGY5MGQxMDQ1
Ny4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3RrL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0w
MDAxLXJ0cGJpbi1waXBlbGluZS1nZXRzLWFuLUVPUy13aGVuLWFueS1ydHBzb3VyY2VzLWJ5ZXMu
cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNTYgKzAsMCBAQAotRnJvbSBlZWVhMmE3ZmU4OGEx
N2IxNTMxOGQ1YjZhZTZlMTkwYjJmNzc3MDMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv
bTogIkFsZWphbmRybyBHLiBDYXN0cm8iIDxhbGV4QGlnYWxpYS5jb20+Ci1EYXRlOiBXZWQsIDI2
IE9jdCAyMDE2IDEzOjIxOjI5ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIHJ0cGJpbjogcGlwZWxp
bmUgZ2V0cyBhbiBFT1Mgd2hlbiBhbnkgcnRwc291cmNlcyBieWVzCi0KLUluc3RlYWQgb2Ygc2Vu
ZGluZyBFT1Mgd2hlbiBhIHNvdXJjZSBieWVzIHdlIGhhdmUgdG8gd2FpdCBmb3IKLWFsbCB0aGUg
c291cmNlcyB0byBiZSBnb25lLCB3aGljaCBtZWFucyB0aGV5IGFscmVhZHkgc2VudCBCWUUgYW5k
Ci13ZXJlIHJlbW92ZWQgZnJvbSB0aGUgc2Vzc2lvbi4gV2Ugbm93IGhhbmRsZSB0aGUgRU9TIGlu
IHRoZSBydGNwCi1sb29wIGNoZWNraW5nIHRoZSBhbW91bnQgb2Ygc291cmNlcyBpbiB0aGUgc2Vz
c2lvbi4KLQotaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzIx
OAotLS0tCi0gZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jIHwgMjkgKysrKysrKysrKysr
KysrKysrKy0tLS0tLS0tLS0KLSBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmMgICAgfCAgNiAr
LS0tLS0KLSBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmggICAgfCAgMyArLS0KLSAzIGZpbGVz
IGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0
IGEvZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jIGIvZ3N0L3J0cG1hbmFnZXIvZ3N0cnRw
c2Vzc2lvbi5jCi1pbmRleCAzNjg4ZTg1Li5mZDFmMmIxIDEwMDY0NAotLS0tIGEvZ3N0L3J0cG1h
bmFnZXIvZ3N0cnRwc2Vzc2lvbi5jCi0rKysgYi9nc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9u
LmMKLUBAIC0yOTMsNyArMjkzLDcgQEAgc3RhdGljIEdzdEZsb3dSZXR1cm4gZ3N0X3J0cF9zZXNz
aW9uX3Byb2Nlc3NfcnRwIChSVFBTZXNzaW9uICogc2VzcywKLSBzdGF0aWMgR3N0Rmxvd1JldHVy
biBnc3RfcnRwX3Nlc3Npb25fc2VuZF9ydHAgKFJUUFNlc3Npb24gKiBzZXNzLAotICAgICBSVFBT
b3VyY2UgKiBzcmMsIGdwb2ludGVyIGRhdGEsIGdwb2ludGVyIHVzZXJfZGF0YSk7Ci0gc3RhdGlj
IEdzdEZsb3dSZXR1cm4gZ3N0X3J0cF9zZXNzaW9uX3NlbmRfcnRjcCAoUlRQU2Vzc2lvbiAqIHNl
c3MsCi0tICAgIFJUUFNvdXJjZSAqIHNyYywgR3N0QnVmZmVyICogYnVmZmVyLCBnYm9vbGVhbiBl
b3MsIGdwb2ludGVyIHVzZXJfZGF0YSk7Ci0rICAgIFJUUFNvdXJjZSAqIHNyYywgR3N0QnVmZmVy
ICogYnVmZmVyLCBncG9pbnRlciB1c2VyX2RhdGEpOwotIHN0YXRpYyBHc3RGbG93UmV0dXJuIGdz
dF9ydHBfc2Vzc2lvbl9zeW5jX3J0Y3AgKFJUUFNlc3Npb24gKiBzZXNzLAotICAgICBHc3RCdWZm
ZXIgKiBidWZmZXIsIGdwb2ludGVyIHVzZXJfZGF0YSk7Ci0gc3RhdGljIGdpbnQgZ3N0X3J0cF9z
ZXNzaW9uX2Nsb2NrX3JhdGUgKFJUUFNlc3Npb24gKiBzZXNzLCBndWludDggcGF5bG9hZCwKLUBA
IC0xMTU2LDYgKzExNTYsMjIgQEAgcnRjcF90aHJlYWQgKEdzdFJ0cFNlc3Npb24gKiBydHBzZXNz
aW9uKQotICAgICBHU1RfUlRQX1NFU1NJT05fVU5MT0NLIChydHBzZXNzaW9uKTsKLSAgICAgcnRw
X3Nlc3Npb25fb25fdGltZW91dCAoc2Vzc2lvbiwgY3VycmVudF90aW1lLCBudHBuc3RpbWUsIHJ1
bm5pbmdfdGltZSk7Ci0gICAgIEdTVF9SVFBfU0VTU0lPTl9MT0NLIChydHBzZXNzaW9uKTsKLSsK
LSsgICAgaWYgKCFydHBfc2Vzc2lvbl9nZXRfbnVtX3NvdXJjZXMgKHNlc3Npb24pKSB7Ci0rICAg
ICAgLyogd2hlbiBubyBzb3VyY2VzIGxlZnQgaW4gdGhlIHNlc3Npb24sIGFsbCBvZiB0aGUgdGhl
bSBoYXZlIHdlbnQKLSsgICAgICAgKiBCWUUgYXQgc29tZSBwb2ludCBhbmQgcmVtb3ZlZCwgd2Ug
Y2FuIHNlbmQgRU9TIHRvIHRoZQotKyAgICAgICAqIHBpcGVsaW5lLiAqLwotKyAgICAgIEdzdFBh
ZCAqcnRjcF9zcmMgPSBydHBzZXNzaW9uLT5zZW5kX3J0Y3Bfc3JjOwotKwotKyAgICAgIGlmIChy
dGNwX3NyYykgewotKyAgICAgICAgZ3N0X29iamVjdF9yZWYgKHJ0Y3Bfc3JjKTsKLSsgICAgICAg
IEdTVF9MT0dfT0JKRUNUIChydHBzZXNzaW9uLCAic2VuZGluZyBFT1MiKTsKLSsgICAgICAgIEdT
VF9SVFBfU0VTU0lPTl9VTkxPQ0sgKHJ0cHNlc3Npb24pOwotKyAgICAgICAgZ3N0X3BhZF9wdXNo
X2V2ZW50IChydHBzZXNzaW9uLT5zZW5kX3J0Y3Bfc3JjLCBnc3RfZXZlbnRfbmV3X2VvcyAoKSk7
Ci0rICAgICAgICBHU1RfUlRQX1NFU1NJT05fTE9DSyAocnRwc2Vzc2lvbik7Ci0rICAgICAgICBn
c3Rfb2JqZWN0X3VucmVmIChydGNwX3NyYyk7Ci0rICAgICAgfQotKyAgICB9Ci0gICB9Ci0gICAv
KiBtYXJrIHRoZSB0aHJlYWQgYXMgc3RvcHBlZCBub3cgKi8KLSAgIHJ0cHNlc3Npb24tPnByaXYt
PnRocmVhZF9zdG9wcGVkID0gVFJVRTsKLUBAIC0xNDEzLDExICsxNDI5LDEwIEBAIGRvX3J0Y3Bf
ZXZlbnRzIChHc3RSdHBTZXNzaW9uICogcnRwc2Vzc2lvbiwgR3N0UGFkICogc3JjcGFkKQotIH0K
LSAKLSAvKiBjYWxsZWQgd2hlbiB0aGUgc2Vzc2lvbiBtYW5hZ2VyIGhhcyBhbiBSVENQIHBhY2tl
dCByZWFkeSBmb3IgZnVydGhlcgotLSAqIHNlbmRpbmcuIFRoZSBlb3MgZmxhZyBpcyBzZXQgd2hl
biBhbiBFT1MgZXZlbnQgc2hvdWxkIGJlIHNlbnQgZG93bnN0cmVhbSBhcwotLSAqIHdlbGwuICov
Ci0rICogc2VuZGluZy4gKi8KLSBzdGF0aWMgR3N0Rmxvd1JldHVybgotIGdzdF9ydHBfc2Vzc2lv
bl9zZW5kX3J0Y3AgKFJUUFNlc3Npb24gKiBzZXNzLCBSVFBTb3VyY2UgKiBzcmMsCi0tICAgIEdz
dEJ1ZmZlciAqIGJ1ZmZlciwgZ2Jvb2xlYW4gZW9zLCBncG9pbnRlciB1c2VyX2RhdGEpCi0rICAg
IEdzdEJ1ZmZlciAqIGJ1ZmZlciwgZ3BvaW50ZXIgdXNlcl9kYXRhKQotIHsKLSAgIEdzdEZsb3dS
ZXR1cm4gcmVzdWx0OwotICAgR3N0UnRwU2Vzc2lvbiAqcnRwc2Vzc2lvbjsKLUBAIC0xNDQwLDEx
ICsxNDU1LDYgQEAgZ3N0X3J0cF9zZXNzaW9uX3NlbmRfcnRjcCAoUlRQU2Vzc2lvbiAqIHNlc3Ms
IFJUUFNvdXJjZSAqIHNyYywKLSAgICAgR1NUX0xPR19PQkpFQ1QgKHJ0cHNlc3Npb24sICJzZW5k
aW5nIFJUQ1AiKTsKLSAgICAgcmVzdWx0ID0gZ3N0X3BhZF9wdXNoIChydGNwX3NyYywgYnVmZmVy
KTsKLSAKLS0gICAgLyogd2UgaGF2ZSB0byBzZW5kIEVPUyBhZnRlciB0aGlzIHBhY2tldCAqLwot
LSAgICBpZiAoZW9zKSB7Ci0tICAgICAgR1NUX0xPR19PQkpFQ1QgKHJ0cHNlc3Npb24sICJzZW5k
aW5nIEVPUyIpOwotLSAgICAgIGdzdF9wYWRfcHVzaF9ldmVudCAocnRjcF9zcmMsIGdzdF9ldmVu
dF9uZXdfZW9zICgpKTsKLS0gICAgfQotICAgICBnc3Rfb2JqZWN0X3VucmVmIChydGNwX3NyYyk7
Ci0gICB9IGVsc2UgewotICAgICBHU1RfUlRQX1NFU1NJT05fVU5MT0NLIChydHBzZXNzaW9uKTsK
LUBAIC0yMDU2LDcgKzIwNjYsNiBAQCBnc3RfcnRwX3Nlc3Npb25fZXZlbnRfc2VuZF9ydGNwX3Ny
YyAoR3N0UGFkICogcGFkLCBHc3RPYmplY3QgKiBwYXJlbnQsCi0gICByZXR1cm4gcmV0OwotIH0K
LSAKLS0KLSBzdGF0aWMgZ2Jvb2xlYW4KLSBnc3RfcnRwX3Nlc3Npb25fZXZlbnRfc2VuZF9ydHBf
c2luayAoR3N0UGFkICogcGFkLCBHc3RPYmplY3QgKiBwYXJlbnQsCi0gICAgIEdzdEV2ZW50ICog
ZXZlbnQpCi1kaWZmIC0tZ2l0IGEvZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jIGIvZ3N0L3J0
cG1hbmFnZXIvcnRwc2Vzc2lvbi5jCi1pbmRleCA4YjMzYjZiLi5hYThiNDBiIDEwMDY0NAotLS0t
IGEvZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jCi0rKysgYi9nc3QvcnRwbWFuYWdlci9ydHBz
ZXNzaW9uLmMKLUBAIC0zMjYzLDcgKzMyNjMsNiBAQCBlYXJseV9leGl0OgotIHR5cGVkZWYgc3Ry
dWN0Ci0gewotICAgUlRQU291cmNlICpzb3VyY2U7Ci0tICBnYm9vbGVhbiBpc19ieWU7Ci0gICBH
c3RCdWZmZXIgKmJ1ZmZlcjsKLSB9IFJlcG9ydE91dHB1dDsKLSAKLUBAIC0zODc0LDcgKzM4NzMs
NiBAQCBzdGF0aWMgdm9pZAotIGdlbmVyYXRlX3J0Y3AgKGNvbnN0IGdjaGFyICoga2V5LCBSVFBT
b3VyY2UgKiBzb3VyY2UsIFJlcG9ydERhdGEgKiBkYXRhKQotIHsKLSAgIFJUUFNlc3Npb24gKnNl
c3MgPSBkYXRhLT5zZXNzOwotLSAgZ2Jvb2xlYW4gaXNfYnllID0gRkFMU0U7Ci0gICBSZXBvcnRP
dXRwdXQgKm91dHB1dDsKLSAKLSAgIC8qIG9ubHkgZ2VuZXJhdGUgUlRDUCBmb3IgYWN0aXZlIGlu
dGVybmFsIHNvdXJjZXMgKi8KLUBAIC0zODkzLDcgKzM4OTEsNiBAQCBnZW5lcmF0ZV9ydGNwIChj
b25zdCBnY2hhciAqIGtleSwgUlRQU291cmNlICogc291cmNlLCBSZXBvcnREYXRhICogZGF0YSkK
LSAgIGlmIChzb3VyY2UtPm1hcmtlZF9ieWUpIHsKLSAgICAgLyogc2VuZCBCWUUgKi8KLSAgICAg
bWFrZV9zb3VyY2VfYnllIChzZXNzLCBzb3VyY2UsIGRhdGEpOwotLSAgICBpc19ieWUgPSBUUlVF
OwotICAgfSBlbHNlIGlmICghZGF0YS0+aXNfZWFybHkpIHsKLSAgICAgLyogbG9vcCBvdmVyIGFs
bCBrbm93biBzb3VyY2VzIGFuZCBhZGQgcmVwb3J0IGJsb2Nrcy4gSWYgd2UgYXJlIGVhcmx5LCB3
ZQotICAgICAgKiBqdXN0IG1ha2UgYSBtaW5pbWFsIFJUQ1AgcGFja2V0IGFuZCBza2lwIHRoaXMg
c3RlcCAqLwotQEAgLTM5MTgsNyArMzkxNSw2IEBAIGdlbmVyYXRlX3J0Y3AgKGNvbnN0IGdjaGFy
ICoga2V5LCBSVFBTb3VyY2UgKiBzb3VyY2UsIFJlcG9ydERhdGEgKiBkYXRhKQotIAotICAgb3V0
cHV0ID0gZ19zbGljZV9uZXcgKFJlcG9ydE91dHB1dCk7Ci0gICBvdXRwdXQtPnNvdXJjZSA9IGdf
b2JqZWN0X3JlZiAoc291cmNlKTsKLS0gIG91dHB1dC0+aXNfYnllID0gaXNfYnllOwotICAgb3V0
cHV0LT5idWZmZXIgPSBkYXRhLT5ydGNwOwotICAgLyogcXVldWUgdGhlIFJUQ1AgcGFja2V0IHRv
IHB1c2ggbGF0ZXIgKi8KLSAgIGdfcXVldWVfcHVzaF90YWlsICgmZGF0YS0+b3V0cHV0LCBvdXRw
dXQpOwotQEAgLTQwOTgsNyArNDA5NCw3IEBAIGRvbmU6Ci0gICAgICAgR1NUX0RFQlVHICgiJXAs
IHNlbmRpbmcgUlRDUCBwYWNrZXQsIGF2ZyBzaXplICV1LCAldSIsICZzZXNzLT5zdGF0cywKLSAg
ICAgICAgICAgc2Vzcy0+c3RhdHMuYXZnX3J0Y3BfcGFja2V0X3NpemUsIHBhY2tldF9zaXplKTsK
LSAgICAgICByZXN1bHQgPQotLSAgICAgICAgICBzZXNzLT5jYWxsYmFja3Muc2VuZF9ydGNwIChz
ZXNzLCBzb3VyY2UsIGJ1ZmZlciwgb3V0cHV0LT5pc19ieWUsCi0rICAgICAgICAgIHNlc3MtPmNh
bGxiYWNrcy5zZW5kX3J0Y3AgKHNlc3MsIHNvdXJjZSwgYnVmZmVyLAotICAgICAgICAgICBzZXNz
LT5zZW5kX3J0Y3BfdXNlcl9kYXRhKTsKLSAKLSAgICAgICBSVFBfU0VTU0lPTl9MT0NLIChzZXNz
KTsKLWRpZmYgLS1naXQgYS9nc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmggYi9nc3QvcnRwbWFu
YWdlci9ydHBzZXNzaW9uLmgKLWluZGV4IDlmYTkzMjcuLmMyNTk4MWEgMTAwNjQ0Ci0tLS0gYS9n
c3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmgKLSsrKyBiL2dzdC9ydHBtYW5hZ2VyL3J0cHNlc3Np
b24uaAotQEAgLTcxLDcgKzcxLDYgQEAgdHlwZWRlZiBHc3RGbG93UmV0dXJuICgqUlRQU2Vzc2lv
blNlbmRSVFApIChSVFBTZXNzaW9uICpzZXNzLCBSVFBTb3VyY2UgKnNyYywgZ3AKLSAgKiBAc2Vz
czogYW4gI1JUUFNlc3Npb24KLSAgKiBAc3JjOiB0aGUgI1JUUFNvdXJjZQotICAqIEBidWZmZXI6
IHRoZSBSVENQIGJ1ZmZlciByZWFkeSBmb3Igc2VuZGluZwotLSAqIEBlb3M6IGlmIGFuIEVPUyBl
dmVudCBzaG91bGQgYmUgcHVzaGVkCi0gICogQHVzZXJfZGF0YTogdXNlciBkYXRhIHNwZWNpZmll
ZCB3aGVuIHJlZ2lzdGVyaW5nCi0gICoKLSAgKiBUaGlzIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVk
IHdoZW4gQHNlc3MgaGFzIEBidWZmZXIgcmVhZHkgZm9yIHNlbmRpbmcgdG8KLUBAIC04MCw3ICs3
OSw3IEBAIHR5cGVkZWYgR3N0Rmxvd1JldHVybiAoKlJUUFNlc3Npb25TZW5kUlRQKSAoUlRQU2Vz
c2lvbiAqc2VzcywgUlRQU291cmNlICpzcmMsIGdwCi0gICogUmV0dXJuczogYSAjR3N0Rmxvd1Jl
dHVybi4KLSAgKi8KLSB0eXBlZGVmIEdzdEZsb3dSZXR1cm4gKCpSVFBTZXNzaW9uU2VuZFJUQ1Ap
IChSVFBTZXNzaW9uICpzZXNzLCBSVFBTb3VyY2UgKnNyYywgR3N0QnVmZmVyICpidWZmZXIsCi0t
ICAgIGdib29sZWFuIGVvcywgZ3BvaW50ZXIgdXNlcl9kYXRhKTsKLSsgICAgZ3BvaW50ZXIgdXNl
cl9kYXRhKTsKLSAKLSAvKioKLSAgKiBSVFBTZXNzaW9uU3luY1JUQ1A6Ci0tLSAKLTIuMTAuMgot
CmRpZmYgLS1naXQgYS9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDItcnRw
YmluLWF2b2lkLWdlbmVyYXRpbmctZXJyb3JzLXdoZW4tcnRjcC1tZXNzYWdlcy1hci5wYXRjaCBi
L1Rvb2xzL2d0ay9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMi1ydHBiaW4tYXZvaWQtZ2Vu
ZXJhdGluZy1lcnJvcnMtd2hlbi1ydGNwLW1lc3NhZ2VzLWFyLnBhdGNoCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhYWQwNDgzMDBjZi4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3Rr
L3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAyLXJ0cGJpbi1hdm9pZC1nZW5lcmF0aW5nLWVy
cm9ycy13aGVuLXJ0Y3AtbWVzc2FnZXMtYXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MSAr
MCwwIEBACi1Gcm9tIGRhYjZjNDczYzNlMWIyYjQwMGVlMThhZmM3MDE0MGMyZjg0MmRlYmYgTW9u
IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiAiQWxlamFuZHJvIEcuIENhc3RybyIgPGFsZXhA
aWdhbGlhLmNvbT4KLURhdGU6IFRodSwgMjAgT2N0IDIwMTYgMTM6MTQ6MTMgKzAyMDAKLVN1Ympl
Y3Q6IFtQQVRDSF0gcnRwYmluOiBhdm9pZCBnZW5lcmF0aW5nIGVycm9ycyB3aGVuIHJ0Y3AgbWVz
c2FnZXMgYXJlIGVtcHR5Ci0gYW5kIGNoZWNrIHRoZSBxdWV1ZSBpcyBub3QgZW1wdHkKLQotQWRk
IGEgY2hlY2sgdG8gdmVyaWZ5IGFsbCB0aGUgb3V0cHV0IGJ1ZmZlcnMgd2VyZSBlbXB0eSBmb3Ig
dGhlCi1zZXNzaW9uIGluIGEgdGltb3V0IGFuZCBsb2cgYW4gZXJyb3IuCi0KLWh0dHBzOi8vYnVn
emlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzMyNjkKLS0tLQotIGdzdC9ydHBtYW5h
Z2VyL3J0cHNlc3Npb24uYyB8IDEyICsrKysrKysrKystLQotIDEgZmlsZSBjaGFuZ2VkLCAxMCBp
bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ3N0L3J0cG1hbmFn
ZXIvcnRwc2Vzc2lvbi5jIGIvZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jCi1pbmRleCA3NTkw
OGMwLi5mMWQ5MjEwIDEwMDY0NAotLS0tIGEvZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jCi0r
KysgYi9nc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmMKLUBAIC0zOTIzLDYgKzM5MjMsNyBAQCBy
dHBfc2Vzc2lvbl9vbl90aW1lb3V0IChSVFBTZXNzaW9uICogc2VzcywgR3N0Q2xvY2tUaW1lIGN1
cnJlbnRfdGltZSwKLSAgIFJlcG9ydERhdGEgZGF0YSA9IHsgR1NUX1JUQ1BfQlVGRkVSX0lOSVQg
fTsKLSAgIEdIYXNoVGFibGUgKnRhYmxlX2NvcHk7Ci0gICBSZXBvcnRPdXRwdXQgKm91dHB1dDsK
LSsgIGdib29sZWFuIGFsbF9lbXB0eSA9IEZBTFNFOwotIAotICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwgKFJUUF9JU19TRVNTSU9OIChzZXNzKSwgR1NUX0ZMT1dfRVJST1IpOwotIAotQEAgLTM5ODks
NiArMzk5MCw5IEBAIHJ0cF9zZXNzaW9uX29uX3RpbWVvdXQgKFJUUFNlc3Npb24gKiBzZXNzLCBH
c3RDbG9ja1RpbWUgY3VycmVudF90aW1lLAotICAgaWYgKCFpc19ydGNwX3RpbWUgKHNlc3MsIGN1
cnJlbnRfdGltZSwgJmRhdGEpKQotICAgICBnb3RvIGRvbmU7Ci0gCi0rICAvKiBjaGVjayBpZiBh
bGwgdGhlIGJ1ZmZlcnMgYXJlIGVtcHR5IGFmZXIgZ2VuZXJhdGlvbiAqLwotKyAgYWxsX2VtcHR5
ID0gVFJVRTsKLSsKLSAgIEdTVF9ERUJVRwotICAgICAgICgiZG9pbmcgUlRDUCBnZW5lcmF0aW9u
ICV1IGZvciAldSBzb3VyY2VzLCBlYXJseSAlZCwgbWF5IHN1cHByZXNzICVkIiwKLSAgICAgICBz
ZXNzLT5nZW5lcmF0aW9uLCBkYXRhLm51bV90b19yZXBvcnQsIGRhdGEuaXNfZWFybHksIGRhdGEu
bWF5X3N1cHByZXNzKTsKLUBAIC00MDM2LDggKzQwNDAsOCBAQCBkb25lOgotIAotICAgICBlbXB0
eV9idWZmZXIgPSBnc3RfYnVmZmVyX2dldF9zaXplIChidWZmZXIpID09IDA7Ci0gCi0tICAgIGlm
IChlbXB0eV9idWZmZXIpCi0tICAgICAgZ193YXJuaW5nICgicnRwc2Vzc2lvbjogVHJ5aW5nIHRv
IHNlbmQgYW4gZW1wdHkgUlRDUCBwYWNrZXQiKTsKLSsgICAgaWYgKCFlbXB0eV9idWZmZXIpCi0r
ICAgICAgYWxsX2VtcHR5ID0gRkFMU0U7Ci0gCi0gICAgIGlmIChzZXNzLT5jYWxsYmFja3Muc2Vu
ZF9ydGNwICYmCi0gICAgICAgICAhZW1wdHlfYnVmZmVyICYmIChkb19ub3Rfc3VwcHJlc3MgfHwg
IWRhdGEubWF5X3N1cHByZXNzKSkgewotQEAgLTQwNjgsNiArNDA3MiwxMCBAQCBkb25lOgotICAg
ICBnX29iamVjdF91bnJlZiAoc291cmNlKTsKLSAgICAgZ19zbGljZV9mcmVlIChSZXBvcnRPdXRw
dXQsIG91dHB1dCk7Ci0gICB9Ci0rCi0rICBpZiAoYWxsX2VtcHR5KQotKyAgICBHU1RfRVJST1Ig
KCJnZW5lcmF0ZWQgZW1wdHkgUlRDUCBtZXNzYWdlcyBmb3IgYWxsIHRoZSBzb3VyY2VzIik7Ci0r
Ci0gICByZXR1cm4gcmVzdWx0OwotIH0KLSAKLS0tIAotMi4xMC4yCi0KZGlmZiAtLWdpdCBhL1Rv
b2xzL2d0ay9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNC1xdGRlbXV4LWFkZC1jb250ZXh0
LWZvci1hLXByZWZlcnJlZC1wcm90ZWN0aW9uLnBhdGNoIGIvVG9vbHMvZ3RrL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtZ29vZC0wMDA0LXF0ZGVtdXgtYWRkLWNvbnRleHQtZm9yLWEtcHJlZmVycmVkLXBy
b3RlY3Rpb24ucGF0Y2gKaW5kZXggZmIxNWUwMThmMDkuLjMyZGZiMjg0NmYwIDEwMDY0NAotLS0g
YS9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDQtcXRkZW11eC1hZGQtY29u
dGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaAorKysgYi9Ub29scy9ndGsvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDQtcXRkZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVm
ZXJyZWQtcHJvdGVjdGlvbi5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gYWU0ZjdkNGYwOWEw
NTFjMmZiYmQwNWU0ZGY5Zjc5ZmE2NTIyMTA0ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy
b20gMjQ4NTczYTg0ZThmNzE1ZTVhYmRjMGEyYTVjZTJmYWYzZTc4NTJmZCBNb24gU2VwIDE3IDAw
OjAwOjAwIDIwMDEKIEZyb206IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2Fs
aWEuY29tPgogRGF0ZTogRnJpLCAxNiBTZXAgMjAxNiAxNjowODoxOCArMDIwMAogU3ViamVjdDog
W1BBVENIXSBxdGRlbXV4OiBhZGQgY29udGV4dCBmb3IgYSBwcmVmZXJyZWQgcHJvdGVjdGlvbgpA
QCAtMTMsMTQgKzEzLDE0IEBAIGF2YWlsYWJsZSBkZWNyeXB0b3JzIGFuZCBldmVudCB0aGUgZXZl
bnRzIHNvIHRoYXQgdGhlIGluaXQgZGF0YSBpcwogYWNjZXNzaWJsZS4KIC0tLQogIGdzdC9pc29t
cDQvcXRkZW11eC5jIHwgMjA5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKystLQotIGdzdC9pc29tcDQvcXRkZW11eC5oIHwgICAyICstCi0gMiBmaWxlcyBj
aGFuZ2VkLCAyMDQgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKKyBnc3QvaXNvbXA0L3F0
ZGVtdXguaCB8ICAgMiArCisgMiBmaWxlcyBjaGFuZ2VkLCAyMDUgaW5zZXJ0aW9ucygrKSwgNiBk
ZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5jIGIvZ3N0L2lz
b21wNC9xdGRlbXV4LmMKLWluZGV4IDA0MjVlNjYuLmUwNWU3NWUgMTAwNjQ0CitpbmRleCA0Y2Jj
YWVkYjIuLjJkNDI3OTY0NiAxMDA2NDQKIC0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCiArKysg
Yi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotQEAgLTQ4MCw2ICs0ODAsOCBAQCBzdGF0aWMgR3N0SW5k
ZXggKmdzdF9xdGRlbXV4X2dldF9pbmRleCAoR3N0RWxlbWVudCAqIGVsZW1lbnQpOworQEAgLTQ5
MCw2ICs0OTAsOCBAQCBzdGF0aWMgR3N0SW5kZXggKmdzdF9xdGRlbXV4X2dldF9pbmRleCAoR3N0
RWxlbWVudCAqIGVsZW1lbnQpOwogICNlbmRpZgogIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVy
biBnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUgKEdzdEVsZW1lbnQgKiBlbGVtZW50LAogICAgICBH
c3RTdGF0ZUNoYW5nZSB0cmFuc2l0aW9uKTsKQEAgLTI5LDcgKzI5LDcgQEAgaW5kZXggMDQyNWU2
Ni4uZTA1ZTc1ZSAxMDA2NDQKICBzdGF0aWMgZ2Jvb2xlYW4gcXRkZW11eF9zaW5rX2FjdGl2YXRl
IChHc3RQYWQgKiBzaW5rcGFkLCBHc3RPYmplY3QgKiBwYXJlbnQpOwogIHN0YXRpYyBnYm9vbGVh
biBxdGRlbXV4X3NpbmtfYWN0aXZhdGVfbW9kZSAoR3N0UGFkICogc2lua3BhZCwKICAgICAgR3N0
T2JqZWN0ICogcGFyZW50LCBHc3RQYWRNb2RlIG1vZGUsIGdib29sZWFuIGFjdGl2ZSk7Ci1AQCAt
NTU0LDYgKzU1Niw3IEBAIGdzdF9xdGRlbXV4X2NsYXNzX2luaXQgKEdzdFFURGVtdXhDbGFzcyAq
IGtsYXNzKQorQEAgLTU3Niw2ICs1NzgsNyBAQCBnc3RfcXRkZW11eF9jbGFzc19pbml0IChHc3RR
VERlbXV4Q2xhc3MgKiBrbGFzcykKICAgIGdzdGVsZW1lbnRfY2xhc3MtPnNldF9pbmRleCA9IEdT
VF9ERUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9zZXRfaW5kZXgpOwogICAgZ3N0ZWxlbWVudF9j
bGFzcy0+Z2V0X2luZGV4ID0gR1NUX0RFQlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X2dldF9pbmRl
eCk7CiAgI2VuZGlmCkBAIC0zNyw3ICszNyw3IEBAIGluZGV4IDA0MjVlNjYuLmUwNWU3NWUgMTAw
NjQ0CiAgCiAgICBnc3RfdGFnX3JlZ2lzdGVyX211c2ljYnJhaW56X3RhZ3MgKCk7CiAgCi1AQCAt
NjEyLDYgKzYxNSw3IEBAIGdzdF9xdGRlbXV4X2luaXQgKEdzdFFURGVtdXggKiBxdGRlbXV4KQor
QEAgLTYzNCw2ICs2MzcsNyBAQCBnc3RfcXRkZW11eF9pbml0IChHc3RRVERlbXV4ICogcXRkZW11
eCkKICAgIHF0ZGVtdXgtPmNlbmNfYXV4X2luZm9fc2l6ZXMgPSBOVUxMOwogICAgcXRkZW11eC0+
Y2VuY19hdXhfc2FtcGxlX2NvdW50ID0gMDsKICAgIHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVt
X2lkcyA9IE5VTEw7CkBAIC00NSw3ICs0NSw3IEBAIGluZGV4IDA0MjVlNjYuLmUwNWU3NWUgMTAw
NjQ0CiAgICBnX3F1ZXVlX2luaXQgKCZxdGRlbXV4LT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVlKTsK
ICAgIGdzdF9zZWdtZW50X2luaXQgKCZxdGRlbXV4LT5zZWdtZW50LCBHU1RfRk9STUFUX1RJTUUp
OwogICAgcXRkZW11eC0+Zmxvd2NvbWJpbmVyID0gZ3N0X2Zsb3dfY29tYmluZXJfbmV3ICgpOwot
QEAgLTE5NzIsNiArMTk3NiwxMCBAQCBnc3RfcXRkZW11eF9yZXNldCAoR3N0UVREZW11eCAqIHF0
ZGVtdXgsIGdib29sZWFuIGhhcmQpCitAQCAtMTk5Nyw2ICsyMDAxLDEwIEBAIGdzdF9xdGRlbXV4
X3Jlc2V0IChHc3RRVERlbXV4ICogcXRkZW11eCwgZ2Jvb2xlYW4gaGFyZCkKICAgICAgZ19xdWV1
ZV9mb3JlYWNoICgmcXRkZW11eC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZSwgKEdGdW5jKSBnc3Rf
ZXZlbnRfdW5yZWYsCiAgICAgICAgICBOVUxMKTsKICAgICAgZ19xdWV1ZV9jbGVhciAoJnF0ZGVt
dXgtPnByb3RlY3Rpb25fZXZlbnRfcXVldWUpOwpAQCAtNTYsNyArNTYsNyBAQCBpbmRleCAwNDI1
ZTY2Li5lMDVlNzVlIDEwMDY0NAogICAgfQogICAgcXRkZW11eC0+b2Zmc2V0ID0gMDsKICAgIGdz
dF9hZGFwdGVyX2NsZWFyIChxdGRlbXV4LT5hZGFwdGVyKTsKLUBAIC0yNDA0LDYgKzI0MTIsMjkg
QEAgZ3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlIChHc3RFbGVtZW50ICogZWxlbWVudCwgR3N0U3Rh
dGVDaGFuZ2UgdHJhbnNpdGlvbikKK0BAIC0yNDg1LDYgKzI0OTMsMjkgQEAgZ3N0X3F0ZGVtdXhf
Y2hhbmdlX3N0YXRlIChHc3RFbGVtZW50ICogZWxlbWVudCwgR3N0U3RhdGVDaGFuZ2UgdHJhbnNp
dGlvbikKICB9CiAgCiAgc3RhdGljIHZvaWQKQEAgLTg2LDcgKzg2LDcgQEAgaW5kZXggMDQyNWU2
Ni4uZTA1ZTc1ZSAxMDA2NDQKICBxdGRlbXV4X3BhcnNlX2Z0eXAgKEdzdFFURGVtdXggKiBxdGRl
bXV4LCBjb25zdCBndWludDggKiBidWZmZXIsIGdpbnQgbGVuZ3RoKQogIHsKICAgIC8qIGNvdW50
cyBhcyBoZWFkZXIgZGF0YSAqLwotQEAgLTMzOTIsNiArMzQyMyw4IEBAIHF0ZGVtdXhfcGFyc2Vf
cHNzaCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIEdOb2RlICogbm9kZSkKK0BAIC0zNjczLDYgKzM3
MDQsOCBAQCBxdGRlbXV4X3BhcnNlX3Bzc2ggKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHTm9kZSAq
IG5vZGUpCiAgICBldmVudCA9IGdzdF9ldmVudF9uZXdfcHJvdGVjdGlvbiAoc3lzaWRfc3RyaW5n
LCBwc3NoLAogICAgICAgIChwYXJlbnRfYm94X3R5cGUgPT0gRk9VUkNDX21vb3YpID8gImlzb2Jt
ZmYvbW9vdiIgOiAiaXNvYm1mZi9tb29mIik7CiAgICBmb3IgKGkgPSAwOyBpIDwgcXRkZW11eC0+
bl9zdHJlYW1zOyArK2kpIHsKQEAgLTk1LDcgKzk1LDcgQEAgaW5kZXggMDQyNWU2Ni4uZTA1ZTc1
ZSAxMDA2NDQKICAgICAgZ19xdWV1ZV9wdXNoX3RhaWwgKCZxdGRlbXV4LT5zdHJlYW1zW2ldLT5w
cm90ZWN0aW9uX3NjaGVtZV9ldmVudF9xdWV1ZSwKICAgICAgICAgIGdzdF9ldmVudF9yZWYgKGV2
ZW50KSk7CiAgICB9Ci1AQCAtNDk5Myw2ICs1MDI2LDEyIEBAIGdzdF9xdGRlbXV4X2RlY29yYXRl
X2FuZF9wdXNoX2J1ZmZlciAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCitAQCAtNTM4MCw2ICs1NDEz
LDEyIEBAIGdzdF9xdGRlbXV4X2RlY29yYXRlX2FuZF9wdXNoX2J1ZmZlciAoR3N0UVREZW11eCAq
IHF0ZGVtdXgsCiAgICAgIEdzdEV2ZW50ICpldmVudDsKICAKICAgICAgd2hpbGUgKChldmVudCA9
IGdfcXVldWVfcG9wX2hlYWQgKCZzdHJlYW0tPnByb3RlY3Rpb25fc2NoZW1lX2V2ZW50X3F1ZXVl
KSkpIHsKQEAgLTEwOCw3ICsxMDgsNyBAQCBpbmRleCAwNDI1ZTY2Li5lMDVlNzVlIDEwMDY0NAog
ICAgICAgIGdzdF9wYWRfcHVzaF9ldmVudCAoc3RyZWFtLT5wYWQsIGV2ZW50KTsKICAgICAgfQog
IAotQEAgLTY5NDcsMTEgKzY5ODYsMTQ4IEBAIHF0ZGVtdXhfZG9fYWxsb2NhdGlvbiAoR3N0UVRE
ZW11eCAqIHF0ZGVtdXgsIFF0RGVtdXhTdHJlYW0gKiBzdHJlYW0pCitAQCAtNzQ3NSwxMSArNzUx
NCwxNDggQEAgcXRkZW11eF9kb19hbGxvY2F0aW9uIChHc3RRVERlbXV4ICogcXRkZW11eCwgUXRE
ZW11eFN0cmVhbSAqIHN0cmVhbSkKICB9CiAgCiAgc3RhdGljIGdib29sZWFuCkBAIC0yNTgsNyAr
MjU4LDcgQEAgaW5kZXggMDQyNWU2Ni4uZTA1ZTc1ZSAxMDA2NDQKICAKICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsIChxdGRlbXV4ICE9IE5VTEwsIEZBTFNFKTsKICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsIChzdHJlYW0gIT0gTlVMTCwgRkFMU0UpOwotQEAgLTY5NjYsMTcgKzcxNDIsMzggQEAgZ3N0
X3F0ZGVtdXhfY29uZmlndXJlX3Byb3RlY3RlZF9jYXBzIChHc3RRVERlbXV4ICogcXRkZW11eCwK
K0BAIC03NDk0LDE3ICs3NjcwLDM4IEBAIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9wcm90ZWN0ZWRf
Y2FwcyAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCiAgICAgICAgICAiY2VuYyBwcm90ZWN0aW9uIHN5
c3RlbSBpbmZvcm1hdGlvbiBoYXMgYmVlbiBmb3VuZCIpOwogICAgICByZXR1cm4gRkFMU0U7CiAg
ICB9CkBAIC0zMDMsMTggKzMwMywxOCBAQCBpbmRleCAwNDI1ZTY2Li5lMDVlNzVlIDEwMDY0NAog
ICAgaWYgKCFnc3Rfc3RydWN0dXJlX2hhc19uYW1lIChzLCAiYXBwbGljYXRpb24veC1jZW5jIikp
IHsKICAgICAgZ3N0X3N0cnVjdHVyZV9zZXQgKHMsCiBkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9x
dGRlbXV4LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAotaW5kZXggNTNiZDA3MS4uNTVjNGY2MyAx
MDA2NDQKK2luZGV4IDc3MWRkY2M1Yi4uMmMzN2MyYzNlIDEwMDY0NAogLS0tIGEvZ3N0L2lzb21w
NC9xdGRlbXV4LmgKICsrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5oCi1AQCAtMTUzLDcgKzE1Myw3
IEBAIHN0cnVjdCBfR3N0UVREZW11eCB7Ci0gICBndWludDY0IGNlbmNfYXV4X2luZm9fb2Zmc2V0
OworQEAgLTE1NSw2ICsxNTUsOCBAQCBzdHJ1Y3QgX0dzdFFURGVtdXggewogICAgZ3VpbnQ4ICpj
ZW5jX2F1eF9pbmZvX3NpemVzOwogICAgZ3VpbnQzMiBjZW5jX2F1eF9zYW1wbGVfY291bnQ7Ci0t
CisgCiArICBnY2hhciAqcHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkOwotIH07CisrCiAg
Ci0gc3RydWN0IF9Hc3RRVERlbXV4Q2xhc3MgeworICAgLyoKKyAgICAqIEFMTCBWQVJJQUJMRVMg
QkVMT1cgQVJFIE9OTFkgVVNFRCBJTiBQVVNILUJBU0VEIE1PREUgCiAtLSAKIDIuMTEuMAogCmRp
ZmYgLS1naXQgYS9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRl
bXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2ggYi9Ub29scy9n
dGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1z
LXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDNhNjBkYjQ3NzJiLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9ndGsvcGF0Y2hlcy9nc3Qt
cGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9v
Zi1mb3ItZnIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAsMCBAQAotRnJvbSAxYTgx
YmQ5MGQ0YTNlNTlkNjY2OWEwYmJmYTQ1NmYxZWQ0ZTVkYjQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAg
MjAwMQotRnJvbTogWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgPGNhbHZhcmlzQGlnYWxpYS5jb20+
Ci1EYXRlOiBUaHUsIDcgQXByIDIwMTYgMTM6NTc6MTYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0g
UmV2ZXJ0ICJxdGRlbXV4OiBleHBvc2Ugc3RyZWFtcyB3aXRoIGZpcnN0IG1vb2YgZm9yCi0gZnJh
Z21lbnRlZCBmb3JtYXQiCi0KLVRoaXMgcmV2ZXJ0cyBjb21taXQgZDhiYjY2ODdlYTI1MTU3MGMz
MzEwMzgyNzlhNDNkNDQ4MTY3ZDZhZC4KLS0tLQotIGdzdC9pc29tcDQvcXRkZW11eC5jIHwgNTQg
KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGdz
dC9pc29tcDQvcXRkZW11eC5oIHwgIDEgLQotIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9u
cygrKSwgMzkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXgu
YyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCi1pbmRleCAzOWJlMTYzLi45NjM2YjRiIDEwMDY0NAot
LS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLSsrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCi1A
QCAtNjA5LDcgKzYwOSw2IEBAIGdzdF9xdGRlbXV4X2luaXQgKEdzdFFURGVtdXggKiBxdGRlbXV4
KQotICAgcXRkZW11eC0+c3RhdGUgPSBRVERFTVVYX1NUQVRFX0lOSVRJQUw7Ci0gICBxdGRlbXV4
LT5wdWxsYmFzZWQgPSBGQUxTRTsKLSAgIHF0ZGVtdXgtPnBvc3RlZF9yZWRpcmVjdCA9IEZBTFNF
OwotLSAgcXRkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKLSAgIHF0ZGVtdXgtPm5l
ZWRlZGJ5dGVzID0gMTY7Ci0gICBxdGRlbXV4LT50b2Ryb3AgPSAwOwotICAgcXRkZW11eC0+YWRh
cHRlciA9IGdzdF9hZGFwdGVyX25ldyAoKTsKLUBAIC0yMDQ5LDcgKzIwNDgsNiBAQCBnc3RfcXRk
ZW11eF9yZXNldCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIGdib29sZWFuIGhhcmQpCi0gICAgIGdz
dF9jYXBzX3JlcGxhY2UgKCZxdGRlbXV4LT5tZWRpYV9jYXBzLCBOVUxMKTsKLSAgICAgcXRkZW11
eC0+dGltZXNjYWxlID0gMDsKLSAgICAgcXRkZW11eC0+Z290X21vb3YgPSBGQUxTRTsKLS0gICAg
cXRkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKLSAgIH0gZWxzZSBpZiAocXRkZW11
eC0+bXNzX21vZGUpIHsKLSAgICAgZ3N0X2Zsb3dfY29tYmluZXJfcmVzZXQgKHF0ZGVtdXgtPmZs
b3djb21iaW5lcik7Ci0gICAgIGZvciAobiA9IDA7IG4gPCBxdGRlbXV4LT5uX3N0cmVhbXM7IG4r
KykKLUBAIC02MTA0LDcgKzYxMDIsNiBAQCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdz
dFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCi0gICAgICAgICAgICAgJmZvdXJjYyk7
Ci0gICAgICAgICBpZiAoZm91cmNjID09IEZPVVJDQ19tb292KSB7Ci0gICAgICAgICAgIGdpbnQg
bjsKLS0gICAgICAgICAgZ2Jvb2xlYW4gZ290X3NhbXBsZXMgPSBGQUxTRTsKLSAKLSAgICAgICAg
ICAgLyogaW4gdXN1YWwgZnJhZ21lbnRlZCBzZXR1cCB3ZSBjb3VsZCB0cnkgdG8gc2NhbiBmb3Ig
bW9yZQotICAgICAgICAgICAgKiBhbmQgZW5kIHVwIGF0IHRoZSB0aGUgbW9vdiAoYWZ0ZXIgbWRh
dCkgYWdhaW4gKi8KLUBAIC02MTM2LDI3ICs2MTMzLDE5IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3Nf
YWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKLSAgICAgICAgICAg
ICBxdGRlbXV4X25vZGVfZHVtcCAoZGVtdXgsIGRlbXV4LT5tb292X25vZGUpOwotICAgICAgICAg
ICAgIHF0ZGVtdXhfcGFyc2VfdHJlZSAoZGVtdXgpOwotICAgICAgICAgICAgIHF0ZGVtdXhfcHJl
cGFyZV9zdHJlYW1zIChkZW11eCk7Ci0rICAgICAgICAgICAgaWYgKCFkZW11eC0+Z290X21vb3Yp
Ci0rICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9zdHJlYW1zIChkZW11eCk7Ci0rICAgICAg
ICAgICAgZWxzZSB7Ci0gCi0tICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGRlbXV4LT5uX3N0
cmVhbXM7IG4rKykgewotLSAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVt
dXgtPnN0cmVhbXNbbl07Ci0tICAgICAgICAgICAgICBnb3Rfc2FtcGxlcyB8PSBzdHJlYW0tPnN0
YmxfaW5kZXggPj0gMDsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgaWYgKCFkZW11eC0+
ZnJhZ21lbnRlZCB8fCBnb3Rfc2FtcGxlcykgewotLSAgICAgICAgICAgICAgaWYgKCFkZW11eC0+
Z290X21vb3YpIHsKLS0gICAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAoZGVt
dXgpOwotLSAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgZm9yIChuID0g
MDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgewotLSAgICAgICAgICAgICAgICAgIFF0RGVt
dXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOwotLSAgICAgICAgICAgICAgICAg
IGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9zdHJlYW0gKGRlbXV4LCBzdHJlYW0pOwotLSAgICAgICAg
ICAgICAgICB9Ci0rICAgICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFt
czsgbisrKSB7Ci0rICAgICAgICAgICAgICAgIFF0RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4
LT5zdHJlYW1zW25dOwotKwotKyAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1cmVf
c3RyZWFtIChkZW11eCwgc3RyZWFtKTsKLSAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg
IGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11eCk7Ci0tICAgICAg
ICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKLS0gICAgICAgICAgICB9
IGVsc2UgewotLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gVFJVRTsK
LSAgICAgICAgICAgICB9Ci0gCi0gICAgICAgICAgICAgZGVtdXgtPmdvdF9tb292ID0gVFJVRTsK
LSsgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3BlbmRpbmdfc2VnbWVudCAoZGVt
dXgpOwotIAotICAgICAgICAgICAgIC8qIGZyYWdtZW50ZWQgc3RyZWFtcyBoZWFkZXJzIHNob3Vs
ZG4ndCBjb250YWluIGVkdHMgYXRvbXMgKi8KLSAgICAgICAgICAgICBpZiAoIWRlbXV4LT5mcmFn
bWVudGVkKSB7Ci1AQCAtNjE3NSw3ICs2MTY0LDYgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19hZGFw
dGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQotICAgICAgICAgICAgIGd1
aW50NjQgZGlzdCA9IDA7Ci0gICAgICAgICAgICAgR3N0Q2xvY2tUaW1lIHByZXZfcHRzOwotICAg
ICAgICAgICAgIGd1aW50NjQgcHJldl9vZmZzZXQ7Ci0tICAgICAgICAgICAgZ2ludCBuOwotIAot
ICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAiUGFyc2luZyBbbW9vZl0iKTsK
LSAKLUBAIC02MjA5LDI1ICs2MTk3LDE1IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRlciAo
R3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKLSAgICAgICAgICAgICAgIHJldCA9
IEdTVF9GTE9XX0VSUk9SOwotICAgICAgICAgICAgICAgZ290byBkb25lOwotICAgICAgICAgICAg
IH0KLS0gICAgICAgICAgICAvKiBpbiBNU1Mgd2UgbmVlZCB0byBleHBvc2UgdGhlIHBhZHMgYWZ0
ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ugd29uJ3QgZ2V0IGEgbW9vdiAKLS0gICAgICAgICAgICAg
KiBBbHNvLCBmcmFnbWVudGVkIGZvcm1hdCBuZWVkIHRvIGJlIGV4cG9zZWQgaWYgYSBtb292IGhh
dmUgbm8gdmFsaWQgc2FtcGxlIGRhdGEgKi8KLS0gICAgICAgICAgICBpZiAoZGVtdXgtPm1zc19t
b2RlIHx8IGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSkgewotLSAgICAgICAgICAgICAgaWYgKCFk
ZW11eC0+ZXhwb3NlZCkgewotLSAgICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5nX25l
d3NlZ21lbnQpIHsKLS0gICAgICAgICAgICAgICAgICBHc3RTZWdtZW50IHNlZ21lbnQ7Ci0tICAg
ICAgICAgICAgICAgICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnNlZ21lbnQsIEdTVF9GT1JNQVRfVElN
RSk7Ci0tICAgICAgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVu
ZGluZ19uZXdzZWdtZW50Iik7Ci0tICAgICAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfbmV3
c2VnbWVudCA9IGdzdF9ldmVudF9uZXdfc2VnbWVudCAoJnNlZ21lbnQpOwotLSAgICAgICAgICAg
ICAgICB9Ci0tICAgICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsK
LS0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4g
PCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKLS0gICAgICAgICAgICAgICAgICBRdERlbXV4U3Ry
ZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKLS0gICAgICAgICAgICAgICAgICBnc3Rf
cXRkZW11eF9jb25maWd1cmVfc3RyZWFtIChkZW11eCwgc3RyZWFtKTsKLS0gICAgICAgICAgICAg
ICAgfQotKyAgICAgICAgICAgIC8qIGluIE1TUyB3ZSBuZWVkIHRvIGV4cG9zZSB0aGUgcGFkcyBh
ZnRlciB0aGUgZmlyc3QgbW9vZiBhcyB3ZSB3b24ndCBnZXQgYSBtb292ICovCi0rICAgICAgICAg
ICAgaWYgKGRlbXV4LT5tc3NfbW9kZSAmJiAhZGVtdXgtPmV4cG9zZWQpIHsKLSsgICAgICAgICAg
ICAgIGlmICghZGVtdXgtPnBlbmRpbmdfbmV3c2VnbWVudCkgewotKyAgICAgICAgICAgICAgICBH
c3RTZWdtZW50IHNlZ21lbnQ7Ci0rICAgICAgICAgICAgICAgIGdzdF9zZWdtZW50X2luaXQgKCZz
ZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOwotKyAgICAgICAgICAgICAgICBHU1RfREVCVUdfT0JK
RUNUIChkZW11eCwgIm5ldyBwZW5kaW5nX25ld3NlZ21lbnQiKTsKLSsgICAgICAgICAgICAgICAg
ZGVtdXgtPnBlbmRpbmdfbmV3c2VnbWVudCA9IGdzdF9ldmVudF9uZXdfc2VnbWVudCAoJnNlZ21l
bnQpOwotICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hlY2tf
c2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsKLS0gICAgICAgICAgICAgIGRlbXV4LT5wZW5k
aW5nX2NvbmZpZ3VyZSA9IEZBTFNFOwotKyAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3Ry
ZWFtcyAoZGVtdXgpOwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwgIkRpc2NhcmRpbmcgW21vb2ZdIik7Ci1k
aWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAot
aW5kZXggNjA2MTIxNS4uZWNmMGM2MyAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5o
Ci0rKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAotQEAgLTg5LDcgKzg5LDYgQEAgc3RydWN0IF9H
c3RRVERlbXV4IHsKLSAgIGdib29sZWFuIHBvc3RlZF9yZWRpcmVjdDsKLSAKLSAgIC8qIHB1c2gg
YmFzZWQgdmFyaWFibGVzICovCi0tICBnYm9vbGVhbiBwZW5kaW5nX2NvbmZpZ3VyZTsKLSAgIGd1
aW50IG5lZWRlZGJ5dGVzOwotICAgZ3VpbnQgdG9kcm9wOwotICAgR3N0QWRhcHRlciAqYWRhcHRl
cjsKLS0tIAotMi44LjAucmMzCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9wYXRjaGVzL2dzdC1w
bHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoIGIvVG9vbHMvZ3RrL3Bh
dGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2gKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzYzA4ZGZlZDllLi4wMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9ndGsvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUt
dGltZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLUZyb20gMTU1NjA0M2Mw
MGViNjBkMzg3MWI0YmFhOGIwMjkxNzVjMTZjNzA5NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK
LUZyb206ID0/VVRGLTg/cT9FbnJpcXVlPTIwT2NhPUMzPUIxYT0yMEdvbno9QzM9QTFsZXo/PSA8
ZW9jYW5oYUBpZ2FsaWEuY29tPgotRGF0ZTogTW9uLCAyNCBPY3QgMjAxNiAxNjo1NjozMSArMDAw
MAotU3ViamVjdDogW1BBVENIXSBVc2UgdGhlIHRmZHQgZGVjb2RlIHRpbWUgb24gYnl0ZSBzdHJl
YW1zIHdoZW4gaXQncwotIHNpZ25pZmljYW50bHkgZGlmZmVyZW50IHRoYW4gdGhlIHRpbWUgaW4g
dGhlIGxhc3Qgc2FtcGxlCi0KLVdlIGNvbnNpZGVyIHRoZXJlJ3MgYSBzaWZuaWZpY2FudCBkaWZm
ZXJlbmNlIHdoZW4gaXQncyBsYXJnZXIgdGhhbiBvbiBzZWNvbmQKLW9yIHRoYW4gaGFsZiB0aGUg
ZHVyYXRpb24gb2YgdGhlIGxhc3QgcHJvY2Vzc2VkIGZyYWdtZW50IGluIGNhc2UgdGhlIGxhdHRl
ciBpcwotbGFyZ2VyLgotCi1odHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzU0MjMwCi0tLS0KLSBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8IDI1ICsrKysrKysrKysrKysr
KysrKysrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0t
Z2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotaW5kZXgg
ZGIyZDM2MS4uNTQzMGEzOSAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCi0rKysg
Yi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotQEAgLTk1LDYgKzk1LDggQEAKLSAKLSAjZGVmaW5lIFNU
UkVBTV9JU19FT1MocykgKHMtPnRpbWVfcG9zaXRpb24gPT0gR1NUX0NMT0NLX1RJTUVfTk9ORSkK
LSAKLSsjZGVmaW5lIEFCU0RJRkYoeCwgeSkgKCAoeCkgPiAoeSkgPyAoKHgpIC0gKHkpKSA6ICgo
eSkgLSAoeCkpICkKLSsKLSBHU1RfREVCVUdfQ0FURUdPUlkgKHF0ZGVtdXhfZGVidWcpOwotIAot
IC8qdHlwZWRlZiBzdHJ1Y3QgX1F0Tm9kZSBRdE5vZGU7ICovCi1AQCAtMjU2LDYgKzI1OCw3IEBA
IHN0cnVjdCBfUXREZW11eFN0cmVhbQotICAgZ3VpbnQzMiBuX3NhbXBsZXNfbW9vZjsgICAgICAg
Lyogc2FtcGxlIGNvdW50IGluIGEgbW9vZiAqLwotICAgZ3VpbnQ2NCBkdXJhdGlvbl9tb29mOyAg
ICAgICAgLyogZHVyYXRpb24gaW4gdGltZXNjYWxlIG9mIGEgbW9vZiwgdXNlZCBmb3IgZmlndXJl
IG91dAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIGZyYW1lcmF0ZSBv
ZiBmcmFnbWVudGVkIGZvcm1hdCBzdHJlYW0gKi8KLSsgIGd1aW50NjQgZHVyYXRpb25fbGFzdF9t
b29mOwotICAgZ3VpbnQzMiBvZmZzZXRfaW5fc2FtcGxlOwotICAgZ3VpbnQzMiBtYXhfYnVmZmVy
X3NpemU7Ci0gCi1AQCAtMTgyOCw2ICsxODMxLDcgQEAgX2NyZWF0ZV9zdHJlYW0gKHZvaWQpCi0g
ICBzdHJlYW0tPnByb3RlY3Rpb25fc2NoZW1lX2luZm8gPSBOVUxMOwotICAgc3RyZWFtLT5uX3Nh
bXBsZXNfbW9vZiA9IDA7Ci0gICBzdHJlYW0tPmR1cmF0aW9uX21vb2YgPSAwOwotKyAgc3RyZWFt
LT5kdXJhdGlvbl9sYXN0X21vb2YgPSAwOwotICAgZ19xdWV1ZV9pbml0ICgmc3RyZWFtLT5wcm90
ZWN0aW9uX3NjaGVtZV9ldmVudF9xdWV1ZSk7Ci0gICByZXR1cm4gc3RyZWFtOwotIH0KLUBAIC0y
MzE1LDYgKzIzMTksNyBAQCBnc3RfcXRkZW11eF9zdHJlYW1fZmx1c2hfc2FtcGxlc19kYXRhIChH
c3RRVERlbXV4ICogcXRkZW11eCwKLSAKLSAgIHN0cmVhbS0+bl9zYW1wbGVzX21vb2YgPSAwOwot
ICAgc3RyZWFtLT5kdXJhdGlvbl9tb29mID0gMDsKLSsgIHN0cmVhbS0+ZHVyYXRpb25fbGFzdF9t
b29mID0gMDsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC0yODgzLDYgKzI4ODgsMjUgQEAgcXRk
ZW11eF9wYXJzZV90cnVuIChHc3RRVERlbXV4ICogcXRkZW11eCwgR3N0Qnl0ZVJlYWRlciAqIHRy
dW4sCi0gICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFdLnRp
bWVzdGFtcCArCi0gICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAt
IDFdLmR1cmF0aW9uOwotIAotKyAgICAgIC8qIElmIHRoaXMgaXMgYSBHU1RfRk9STUFUX0JZVEVT
IHN0cmVhbSBhbmQgdGhlcmUncyBhIHNpZ25pZmljYW50Ci0rICAgICAgICogZGlmZmVyZW5jZSAo
MSBzZWMuKSBiZXR3ZWVuIGRlY29kZV90cyBhbmQgdGltZXN0YW1wLCBwcmVmZXIgdGhlCi0rICAg
ICAgICogZm9ybWVyICovCi0rICAgICAgaWYgKCFxdGRlbXV4LT51cHN0cmVhbV9mb3JtYXRfaXNf
dGltZQotKyAgICAgICAgICAmJiBBQlNESUZGIChkZWNvZGVfdHMsIHRpbWVzdGFtcCkgPgotKyAg
ICAgICAgICBNQVggKHN0cmVhbS0+ZHVyYXRpb25fbGFzdF9tb29mIC8gMiwKLSsgICAgICAgICAg
ICAgIEdTVFRJTUVfVE9fUVRTVFJFQU1USU1FIChzdHJlYW0sIEdTVF9TRUNPTkQpKSkgewotKyAg
ICAgICAgR1NUX0lORk9fT0JKRUNUIChxdGRlbXV4LAotKyAgICAgICAgICAgICJkZWNvZGVfdHMg
KCUiIEdTVF9USU1FX0ZPUk1BVCAiKSBhbmQgdGltZXN0YW1wICglIiBHU1RfVElNRV9GT1JNQVQK
LSsgICAgICAgICAgICAiKSBhcmUgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQgKG1vcmUgdGhhbiAl
IiBHU1RfVElNRV9GT1JNQVQKLSsgICAgICAgICAgICAiKSwgdXNpbmcgZGVjb2RlX3RzIiwKLSsg
ICAgICAgICAgICBHU1RfVElNRV9BUkdTIChRVFNUUkVBTVRJTUVfVE9fR1NUVElNRSAoc3RyZWFt
LCBkZWNvZGVfdHMpKSwKLSsgICAgICAgICAgICBHU1RfVElNRV9BUkdTIChRVFNUUkVBTVRJTUVf
VE9fR1NUVElNRSAoc3RyZWFtLCB0aW1lc3RhbXApKSwKLSsgICAgICAgICAgICBHU1RfVElNRV9B
UkdTIChRVFNUUkVBTVRJTUVfVE9fR1NUVElNRSAoc3RyZWFtLAotKyAgICAgICAgICAgICAgICAg
ICAgTUFYIChzdHJlYW0tPmR1cmF0aW9uX2xhc3RfbW9vZiAvIDIsCi0rICAgICAgICAgICAgICAg
ICAgICAgICAgR1NUVElNRV9UT19RVFNUUkVBTVRJTUUgKHN0cmVhbSwgR1NUX1NFQ09ORCkpKSkp
OwotKyAgICAgICAgdGltZXN0YW1wID0gZGVjb2RlX3RzOwotKyAgICAgIH0KLSsKLSAgICAgICBn
c3RfdHMgPSBRVFNUUkVBTVRJTUVfVE9fR1NUVElNRSAoc3RyZWFtLCB0aW1lc3RhbXApOwotICAg
ICAgIEdTVF9JTkZPX09CSkVDVCAocXRkZW11eCwgImZpcnN0IHNhbXBsZSB0cyAlIiBHU1RfVElN
RV9GT1JNQVQKLSAgICAgICAgICAgIiAoZXh0ZW5kcyBwcmV2aW91cyBzYW1wbGVzKSIsIEdTVF9U
SU1FX0FSR1MgKGdzdF90cykpOwotQEAgLTM1NDQsNiArMzU2OCw3IEBAIHF0ZGVtdXhfcGFyc2Vf
bW9vZiAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIGNvbnN0IGd1aW50OCAqIGJ1ZmZlciwgZ3VpbnQg
bGVuZ3RoLAotIAotICAgICAvKiBpbml0aWFsaXNlIG1vb2Ygc2FtcGxlIGRhdGEgKi8KLSAgICAg
c3RyZWFtLT5uX3NhbXBsZXNfbW9vZiA9IDA7Ci0rICAgIHN0cmVhbS0+ZHVyYXRpb25fbGFzdF9t
b29mID0gc3RyZWFtLT5kdXJhdGlvbl9tb29mOwotICAgICBzdHJlYW0tPmR1cmF0aW9uX21vb2Yg
PSAwOwotIAotICAgICAvKiBUcmFjayBSdW4gbm9kZSAqLwotLS0gCi0yLjEuNAotCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>