<?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>191004</bug_id>
          
          <creation_ts>2018-10-27 18:20:49 -0700</creation_ts>
          <short_desc>[GTK] Layout test media/track/track-cue-missing.html is failing</short_desc>
          <delta_ts>2021-09-13 09:04:53 -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>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=229219</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Enrique Ocaña">eocanha</assigned_to>
          <cc>aboya</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eocanha</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>magomez</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1472777</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-10-27 18:20:49 -0700</bug_when>
    <thetext>Layout test media/track/track-cue-missing.html is failing since it was added in r237376 &quot;TextTrack cues should be updated more often than every 250ms.&quot; There is a text diff:

--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/media/track/track-cue-missing-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/media/track/track-cue-missing-actual.txt
@@ -5,6 +5,6 @@
 EVENT(loadeddata)
 Created 121 cues.
 EVENT(ended)
-EXPECTED (missedCueCount &lt; &apos;50&apos;) OK
+EXPECTED (missedCueCount &lt; &apos;50&apos;), OBSERVED &apos;96&apos; FAIL
 END OF TEST</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544445</commentid>
    <comment_count>1</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2019-06-13 06:30:16 -0700</bug_when>
    <thetext>Sometimes this is also crashing and timing out, with no information about why Updating expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755412</commentid>
    <comment_count>2</comment_count>
      <attachid>427350</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-04-29 09:23:02 -0700</bug_when>
    <thetext>Created attachment 427350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755435</commentid>
    <comment_count>3</comment_count>
      <attachid>427350</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2021-04-29 10:10:42 -0700</bug_when>
    <thetext>Comment on attachment 427350
Patch

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

Good job. Frame accuracy is something we need to improve in WebKitGTK.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:2849
&gt; +        RunLoop::main().dispatchAfter(Seconds((time-currentTime).toDouble() / double(m_playbackRate)), WTFMove(task));

This is not robust enough. This breaks if the video is paused or a seek occurs. This is also vulnerable to slight timing differences. Given that a common application of this API is subtitles, I can imagine how this could cause frames being shown with the wrong subtitle for a fraction of a second.

Instead, to get a more robust implementation I suggest taking advantage of MediaPlayerPrivateGStreamer::triggerRepaint(), since that will give you frame accuracy. You can get the stream time of the PTS of each sample, and if that time is &gt;= the time previously saved in this function, run the callback.

Looking at the implementation in AVFoundation I see there is no need to have more than one callback at a time, so you can always clear the previous one. See performTaskAtMediaTime() in Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm for reference.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:187
&gt; +    bool performTaskAtMediaTime(Function&lt;void()&gt;&amp;&amp;, const MediaTime&amp;);

Please add the `override` keyword to indicate that this method comes from MediaPlayerPrivateInterface, as opposed to something internal of the GStreamer backend.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:409
&gt; +    MediaTime playbackPosition(bool useCached = true) const;

Using an enum would be better for readability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756895</commentid>
    <comment_count>4</comment_count>
      <attachid>427755</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-05-05 04:54:14 -0700</bug_when>
    <thetext>Created attachment 427755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756899</commentid>
    <comment_count>5</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-05-05 05:00:39 -0700</bug_when>
    <thetext>*** Bug 190871 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757635</commentid>
    <comment_count>6</comment_count>
      <attachid>427755</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2021-05-06 14:11:53 -0700</bug_when>
    <thetext>Comment on attachment 427755
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3078
&gt; +        m_cachedPosition = MediaTime(gst_segment_to_stream_time(gst_sample_get_segment(sample), GST_FORMAT_TIME, GST_BUFFER_PTS(buffer)), GST_SECOND);

The problem with this code is that it alters m_cachedPosition (and therefore currentMediaTime()) from a background thread.

From the conversation we had before you commented that a big part of the problem you were having is that you needed currentTime to be updated every frame, rather than every 250ms, and doing this here did the trick.

I did some testing to confirm it, and indeed, there is no good reason for currentTime to update only every &gt;200 ms, at all. No other browser has such a low resolution. I propose that instead of caching currentTime for 200 ms as we currently do, we cache it only for the current iteration of the main thread loop. That could be its own separate patch and then this patch could focus on dispatching a task after a certain currentTime has been reached... although both issues are closely intermingled, so it doesn&apos;t have to be.

I asked in the Slack channel and Eric Carlson had an idea on how we can update m_cachedTime once per main thread loop iteration without unnecessary queries and without its value changing within the same iteration: After every update of m_cachedTime, set a task with HTMLMediaElement::enqueueTaskForDispatcher() that resets m_cachedTime so that the next frame it&apos;s checked again. For that to work is important that currentTime is only used from the main thread. Stream time can still be used to post tasks for performTaskAtMediaTime().

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:405
&gt; +            if (isEmpty() || !currentTime.isFinite() || (playbackRate &gt;= 0 &amp;&amp; m_targetTime &gt; currentTime) || (playbackRate &lt; 0 &amp;&amp; m_targetTime &lt; currentTime))

nit: I would prefer if you swap currentTime and m_targetTime, because given the combination of the inverse logic (early return) and swapped arguments from what one would more likely read I got a bit confused at first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757835</commentid>
    <comment_count>7</comment_count>
      <attachid>427755</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-05-07 04:34:55 -0700</bug_when>
    <thetext>Comment on attachment 427755
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3078
&gt;&gt; +        m_cachedPosition = MediaTime(gst_segment_to_stream_time(gst_sample_get_segment(sample), GST_FORMAT_TIME, GST_BUFFER_PTS(buffer)), GST_SECOND);
&gt; 
&gt; The problem with this code is that it alters m_cachedPosition (and therefore currentMediaTime()) from a background thread.
&gt; 
&gt; From the conversation we had before you commented that a big part of the problem you were having is that you needed currentTime to be updated every frame, rather than every 250ms, and doing this here did the trick.
&gt; 
&gt; I did some testing to confirm it, and indeed, there is no good reason for currentTime to update only every &gt;200 ms, at all. No other browser has such a low resolution. I propose that instead of caching currentTime for 200 ms as we currently do, we cache it only for the current iteration of the main thread loop. That could be its own separate patch and then this patch could focus on dispatching a task after a certain currentTime has been reached... although both issues are closely intermingled, so it doesn&apos;t have to be.
&gt; 
&gt; I asked in the Slack channel and Eric Carlson had an idea on how we can update m_cachedTime once per main thread loop iteration without unnecessary queries and without its value changing within the same iteration: After every update of m_cachedTime, set a task with HTMLMediaElement::enqueueTaskForDispatcher() that resets m_cachedTime so that the next frame it&apos;s checked again. For that to work is important that currentTime is only used from the main thread. Stream time can still be used to post tasks for performTaskAtMediaTime().

I did a quick implementation of the m_cachedPosition reset every mainloop iteration by calling g_idle_add() in the player constructor, clearing it in the destructor and adding some printf()s to verify the result. It worked, but I got scared about the huge inefficiency that running some code on *every* mainloop iteration represents (it&apos;s *a lot*, and that code will run as long as the player is alive, no matter if it&apos;s paused or unused before destruction!!!). In the end, I considered that it would be way more efficient to just RunLoop::main().dispatch() a task to update m_cachedPosition in the main thread every triggerRepaint(). Yes, that&apos;s a lot of work, but much less than running some code every mainloop iteration. I&apos;m sending a new patch with this new approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757837</commentid>
    <comment_count>8</comment_count>
      <attachid>427991</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-05-07 04:52:20 -0700</bug_when>
    <thetext>Created attachment 427991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758174</commentid>
    <comment_count>9</comment_count>
      <attachid>427755</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2021-05-08 03:20:55 -0700</bug_when>
    <thetext>Comment on attachment 427755
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3078
&gt;&gt;&gt; +        m_cachedPosition = MediaTime(gst_segment_to_stream_time(gst_sample_get_segment(sample), GST_FORMAT_TIME, GST_BUFFER_PTS(buffer)), GST_SECOND);
&gt;&gt; 
&gt;&gt; The problem with this code is that it alters m_cachedPosition (and therefore currentMediaTime()) from a background thread.
&gt;&gt; 
&gt;&gt; From the conversation we had before you commented that a big part of the problem you were having is that you needed currentTime to be updated every frame, rather than every 250ms, and doing this here did the trick.
&gt;&gt; 
&gt;&gt; I did some testing to confirm it, and indeed, there is no good reason for currentTime to update only every &gt;200 ms, at all. No other browser has such a low resolution. I propose that instead of caching currentTime for 200 ms as we currently do, we cache it only for the current iteration of the main thread loop. That could be its own separate patch and then this patch could focus on dispatching a task after a certain currentTime has been reached... although both issues are closely intermingled, so it doesn&apos;t have to be.
&gt;&gt; 
&gt;&gt; I asked in the Slack channel and Eric Carlson had an idea on how we can update m_cachedTime once per main thread loop iteration without unnecessary queries and without its value changing within the same iteration: After every update of m_cachedTime, set a task with HTMLMediaElement::enqueueTaskForDispatcher() that resets m_cachedTime so that the next frame it&apos;s checked again. For that to work is important that currentTime is only used from the main thread. Stream time can still be used to post tasks for performTaskAtMediaTime().
&gt; 
&gt; I did a quick implementation of the m_cachedPosition reset every mainloop iteration by calling g_idle_add() in the player constructor, clearing it in the destructor and adding some printf()s to verify the result. It worked, but I got scared about the huge inefficiency that running some code on *every* mainloop iteration represents (it&apos;s *a lot*, and that code will run as long as the player is alive, no matter if it&apos;s paused or unused before destruction!!!). In the end, I considered that it would be way more efficient to just RunLoop::main().dispatch() a task to update m_cachedPosition in the main thread every triggerRepaint(). Yes, that&apos;s a lot of work, but much less than running some code every mainloop iteration. I&apos;m sending a new patch with this new approach.

&gt; I got scared about the huge inefficiency that running some code on *every* mainloop iteration represents

Please note that the callback to be scheduled here is not to get the position but to clear it. It&apos;s therefore only added and run if during this main thread loop iteration the position has been queried, and the only thing it has to do is clear a MediaTime field. Adding callback to the main loop shouldn&apos;t be *that* expensive, since it&apos;s essentially just adding a small object to a queue and doing a function call that clears some recently used data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758175</commentid>
    <comment_count>10</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2021-05-08 03:27:02 -0700</bug_when>
    <thetext>However, on the topic of performance for position queries, while looking at gstbin code I realized that it searches the entire pipeline for elements filtering those marked as sink before answering position queries. Then it queries those and returns the biggest value. My impression is that, and not a callback that clears a small data field, could have a performance impact if that search ends up being recursive (I haven&apos;t digged deeper into this).

If that ends up being the case, a faster approach would be to query the sinks ourselves directly, rather than the pipeline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758477</commentid>
    <comment_count>11</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2021-05-10 06:26:25 -0700</bug_when>
    <thetext>Summarizing: things to do with this patch: two parts (ideally in two separate patches):

Part 1:

We need currentTime to return the current position, not the one &lt;=200 ms ago. In order to do this, we will schedule a task with HTMLMediaElement::enqueueTaskForDispatcher() to clear m_cachedTime in the next main thread loop iteration right after m_cachedTime is set. (That will ensure that in a given tick currentTime never changes value but currentTime is always accurate to the current frame, and that position queries are only made when someone queries currentTime.)

Performance note: Please evaluate the performance implications of querying the position to the pipeline if it&apos;s queried every frame. If it&apos;s too slow, we can -- as an optimization -- query the sinks directly and take the maximum value, doing the same gstbin would do, but avoiding the traversal of the entire pipeline.

Part 2 (the one for this Bugzilla issue):

We want to support performTaskAtMediaTime(). To reduce the complexity of the implementation, for now we will only support it when there is video (we won&apos;t support it for audio-only files in this patch, although that could be added later, potentially with additional complexity, if needed).

We will add some code in the video sink that checks the stream time against a given target time, and if that time is hit or passed, enqueue a task to run in the main thread.

Thread-safety notice and something I forgot to mention: the variable holding the object used for checking the target time and holding the task (in the latest patch, m_pendingTask) must be set atomically, since it&apos;s read and written from different, concurrent threads. You can use a mutex for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759272</commentid>
    <comment_count>12</comment_count>
      <attachid>428378</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-05-12 09:39:43 -0700</bug_when>
    <thetext>Created attachment 428378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759274</commentid>
    <comment_count>13</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-05-12 09:45:11 -0700</bug_when>
    <thetext>(In reply to Alicia Boya García from comment #11)

&gt; We need currentTime to return the current position, not the one &lt;=200 ms
&gt; ago. In order to do this, we will schedule a task with
&gt; HTMLMediaElement::enqueueTaskForDispatcher() to clear m_cachedTime in the
&gt; next main thread loop iteration right after m_cachedTime is set.

In the end, I had to use RunLoop::main().dispatch() for that, as HTMLMediaElement::enqueueTaskForDispatcher() was only meant to be used from HTMLMediaElement code. On the one hand, it&apos;s a private method, and on the other hand, even if it was public, it should have to be exposed through the MediaPlayerClient interface, which is the only &quot;face&quot; of HTMLMediaElement that the player private can see.

About the other suggestions, all of them are implemented in the new patch I&apos;ve just uploaded. See the ChangeLog for the performance measures you asked for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759706</commentid>
    <comment_count>14</comment_count>
      <attachid>428378</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2021-05-13 09:10:34 -0700</bug_when>
    <thetext>Comment on attachment 428378
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:2859
&gt; +    m_pendingTask = PendingTask(WTFMove(task), time, m_pendingTaskMutex);

You&apos;re constructing a new PendingTask -- its constructor takes the mutex, initializes its members while holding its mutex (totally unnecessary, since during the constructor execution no other code has received a reference to that instance). Then, the constructor withdraws the mutex, and this code runs operator=() on PendingTask, which -- now without any mutex protecting anything -- swaps the data members of the new instance with the members of the old instance.

r-

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:308
&gt; +    void invalidateCachedPositionOnNextIteration() const;

invalidateCachedPositionOnNextIteration() can be private, since it&apos;s only used by MediaPlayerPrivateGStreamer. Note playbackPosition() is also private. Both are things that could be changed easily if ever needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759733</commentid>
    <comment_count>15</comment_count>
      <attachid>428378</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-05-13 10:34:18 -0700</bug_when>
    <thetext>Comment on attachment 428378
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:2859
&gt;&gt; +    m_pendingTask = PendingTask(WTFMove(task), time, m_pendingTaskMutex);
&gt; 
&gt; You&apos;re constructing a new PendingTask -- its constructor takes the mutex, initializes its members while holding its mutex (totally unnecessary, since during the constructor execution no other code has received a reference to that instance). Then, the constructor withdraws the mutex, and this code runs operator=() on PendingTask, which -- now without any mutex protecting anything -- swaps the data members of the new instance with the members of the old instance.
&gt; 
&gt; r-

Thanks for catching this one. I forgot about operator=() when thinking on the cases that should be protected. I think I&apos;m better moving the management of the lock out of PendingTask in the next patch version. I coded that management inside to avoid boilerplate, but it has proven to be a bad idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760107</commentid>
    <comment_count>16</comment_count>
      <attachid>428626</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-05-14 09:15:54 -0700</bug_when>
    <thetext>Created attachment 428626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760147</commentid>
    <comment_count>17</comment_count>
      <attachid>428626</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2021-05-14 11:18:46 -0700</bug_when>
    <thetext>Comment on attachment 428626
Patch

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

LGTM, r+ with the rename nits.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:2868
&gt; +            m_playbackRate &gt;= 0 ? TaskAtMediaTimeScheduler::LessOrEqual : TaskAtMediaTimeScheduler::GreaterOrEqual);

Shouldn&apos;t this be reversed? If m_playbackRate &gt;= 0 we want to check when time is greater or equal to the target. The code being implemented with early return (and therefore negative condition) should not affect this.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:2871
&gt; +    if (taskToSchedule.hasValue())

Add a explanatory comment: // Dispatch the task synchronously if the time is already reached.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:405
&gt; +        Optional&lt;Function&lt;void()&gt;&gt; scheduleIfTimeReached(const MediaTime&amp; currentTime)

The name of the function is now confusing if the scheduling is not done inside. We could have a more descriptive name. What about `checkTaskForScheduling()`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760476</commentid>
    <comment_count>18</comment_count>
      <attachid>428626</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-05-15 15:09:37 -0700</bug_when>
    <thetext>Comment on attachment 428626
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:2868
&gt;&gt; +            m_playbackRate &gt;= 0 ? TaskAtMediaTimeScheduler::LessOrEqual : TaskAtMediaTimeScheduler::GreaterOrEqual);
&gt; 
&gt; Shouldn&apos;t this be reversed? If m_playbackRate &gt;= 0 we want to check when time is greater or equal to the target. The code being implemented with early return (and therefore negative condition) should not affect this.

That&apos;s the problem when the enum is named TargetTimeOperator (literally targetTime.operator(), such as targetTime.lessOrEqual(currentTime)). If you want to apply the operator on currentTime, the enum should be named CurrentTimeOperator. 
Anyway, to my taste, I think that it would be much better if the enum was named PlaybackDirection, with values Forward and Backwards.

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:405
&gt;&gt; +        Optional&lt;Function&lt;void()&gt;&gt; scheduleIfTimeReached(const MediaTime&amp; currentTime)
&gt; 
&gt; The name of the function is now confusing if the scheduling is not done inside. We could have a more descriptive name. What about `checkTaskForScheduling()`?

That&apos;s a great name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760656</commentid>
    <comment_count>19</comment_count>
      <attachid>428626</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2021-05-16 14:58:47 -0700</bug_when>
    <thetext>Comment on attachment 428626
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:2868
&gt;&gt;&gt; +            m_playbackRate &gt;= 0 ? TaskAtMediaTimeScheduler::LessOrEqual : TaskAtMediaTimeScheduler::GreaterOrEqual);
&gt;&gt; 
&gt;&gt; Shouldn&apos;t this be reversed? If m_playbackRate &gt;= 0 we want to check when time is greater or equal to the target. The code being implemented with early return (and therefore negative condition) should not affect this.
&gt; 
&gt; That&apos;s the problem when the enum is named TargetTimeOperator (literally targetTime.operator(), such as targetTime.lessOrEqual(currentTime)). If you want to apply the operator on currentTime, the enum should be named CurrentTimeOperator. 
&gt; Anyway, to my taste, I think that it would be much better if the enum was named PlaybackDirection, with values Forward and Backwards.

Yeah, let&apos;s go with PlaybackDirection for that one and remove the ambiguity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763479</commentid>
    <comment_count>20</comment_count>
      <attachid>429645</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-05-25 05:14:19 -0700</bug_when>
    <thetext>Created attachment 429645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763483</commentid>
    <comment_count>21</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-05-25 05:20:57 -0700</bug_when>
    <thetext>Changed TargetTimeOperator to PlaybackDirection as agreed, but I detected some regressions before resubmitting the patch.

Some media/track/in-band tests were crashing due to an infinite recursion when the task due time was already met in performTaskAtMediaTime() (so the task was directly run in the main thread there). The patch finally submitted before this comment already has the problem solved by enqueing the task for dispatching in the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763487</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-25 05:52:13 -0700</bug_when>
    <thetext>Committed r278004 (238117@main): &lt;https://commits.webkit.org/238117@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429645.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784862</commentid>
    <comment_count>23</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-08-17 10:00:53 -0700</bug_when>
    <thetext>Arcady Goldmints-Orlov reported that this patch might have created a flaky regression in http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-redirect.html

That test creates an &lt;audio&gt; element from JavaScript and wraps it in a webaudio source. Maybe the patch broke &lt;audio&gt; in some way and that causes problems in the test.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427350</attachid>
            <date>2021-04-29 09:23:02 -0700</date>
            <delta_ts>2021-05-05 04:54:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191004-20210429182301.patch</filename>
            <type>text/plain</type>
            <size>6545</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFhYjA1YWNmZTdhMTVi
MjRkMGNhYTNmZDNiMmIxYzdiNGI2MzMxNi4uNzZmNmRiNTE5ZDVhYTFjY2M4OGIwM2M1MDNjY2U1
YjRjZmU5MGQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA0LTI5ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dU
S10gTGF5b3V0IHRlc3QgbWVkaWEvdHJhY2svdHJhY2stY3VlLW1pc3NpbmcuaHRtbCBpcyBmYWls
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEw
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnRlZCB0aGUgbWlzc2luZyBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKCkgbWV0aG9kLCBuZWVk
ZWQgYnkgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcygpCisgICAg
ICAgIHRvIHRyaWdnZXIgY3VzdG9tIHVwZGF0ZXMgYXQgdGltZXMgdGhhdCBkb24ndCBmaXQgaW4g
dGhlIHJlZ3VsYXIgdXBkYXRlcyBzdGF0aWNhbGx5IHNjaGVkdWxlZCBldmVyeSAyNTAgbXMuIE9u
CisgICAgICAgIHRvcCBvZiB0aGF0LCB0aGUgcGxheWJhY2tQb3NpdGlvbigpIGNhY2hpbmcgbWVj
aGFuaXNtIGhhZCB0byBiZSB0d2Vha2VkIHRvIGZvcmNlIG9uIGRlbWFuZCB1cGRhdGVzIHRoYXQg
YnlwYXNzCisgICAgICAgIHRoZSBjYWNoZS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnBsYXliYWNrUG9zaXRpb24gY29uc3QpOiBBZGRlZCB1c2VDYWNoZWQg
cGFyYW1ldGVyIHRvIGJ5cGFzcyB0aGUgY2FjaGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUpOiBTY2hlZHVsZSBh
IG1haW4gdGhyZWFkIHRhc2sgYXQgdGhlIHRhcmdldCB0aW1lIHdoZW4gdGhlIG1lZGlhIGlzIGN1
cnJlbnRseSBwbGF5aW5nLiBJZiBub3QsIHRoZSBIVE1MTWVkaWFFbGVtZW50IHBlcmlvZGljIHVw
ZGF0ZSB3aWxsIGFscmVhZHkgdGFrZSBjYXJlLiBQbGF5YmFjayByYXRlIGlzIGhhZCBpbnRvIGFj
Y291bnQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oOiBBZGRlZC9tb2RpZmllZCBoZWFkZXJzIG9mIHRoZSBhZmZlY3Rl
ZCBtZXRob2RzLgorCiAyMDIxLTA0LTIzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBIYW5kbGUgcm90YXRpb24gY29ycmVjdGx5IGluIFdlYlJUQyBHUFVQcm9j
ZXNzIHJlbmRlcmluZyBwaXBlbGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcAppbmRleCBjY2M0OWFlZGU0MTY2ZDRjNjA1NDJiMDkzM2RjNjQ1YTM4
NzU1MzkwLi5mYWU5Yzk5NTQ4MWRlMjczMGYyNTA2ODIyZGI2MzllZjIzMDRmMDcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTMzMCw3
ICsxMzMwLDcgQEAgR3N0RWxlbWVudCogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjphdWRp
b1NpbmsoKSBjb25zdAogICAgIHJldHVybiBzaW5rOwogfQogCi1NZWRpYVRpbWUgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF5YmFja1Bvc2l0aW9uKCkgY29uc3QKK01lZGlhVGltZSBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBsYXliYWNrUG9zaXRpb24oYm9vbCB1c2VDYWNo
ZWQpIGNvbnN0CiB7CiAgICAgR1NUX1RSQUNFX09CSkVDVChwaXBlbGluZSgpLCAiaXNFbmRSZWFj
aGVkOiAlcywgc2Vla2luZzogJXMsIHNlZWtUaW1lOiAlcyIsIGJvb2xGb3JQcmludGluZyhtX2lz
RW5kUmVhY2hlZCksIGJvb2xGb3JQcmludGluZyhtX2lzU2Vla2luZyksIG1fc2Vla1RpbWUudG9T
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIApAQCAtMTM0Nyw3ICsxMzQ3LDcgQEAgTWVkaWFUaW1l
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxheWJhY2tQb3NpdGlvbigpIGNvbnN0CiAg
ICAgLy8gVGhpcyBjb25zdGFudCBzaG91bGQgcmVtYWluIGxvd2VyIHRoYW4gSFRNTE1lZGlhRWxl
bWVudCdzIG1heFRpbWV1cGRhdGVFdmVudEZyZXF1ZW5jeS4KICAgICBzdGF0aWMgY29uc3QgU2Vj
b25kcyBwb3NpdGlvbkNhY2hlVGhyZXNob2xkID0gMjAwX21zOwogICAgIFNlY29uZHMgbm93ID0g
V1RGOjpXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKTsKLSAgICBpZiAobV9sYXN0
UXVlcnlUaW1lICYmIChub3cgLSBtX2xhc3RRdWVyeVRpbWUudmFsdWUoKSkgPCBwb3NpdGlvbkNh
Y2hlVGhyZXNob2xkICYmIG1fY2FjaGVkUG9zaXRpb24uaXNWYWxpZCgpKSB7CisgICAgaWYgKHVz
ZUNhY2hlZCAmJiBtX2xhc3RRdWVyeVRpbWUgJiYgKG5vdyAtIG1fbGFzdFF1ZXJ5VGltZS52YWx1
ZSgpKSA8IHBvc2l0aW9uQ2FjaGVUaHJlc2hvbGQgJiYgbV9jYWNoZWRQb3NpdGlvbi5pc1ZhbGlk
KCkpIHsKICAgICAgICAgR1NUX1RSQUNFX09CSkVDVChwaXBlbGluZSgpLCAiUmV0dXJuaW5nIGNh
Y2hlZCBwb3NpdGlvbjogJXMiLCBtX2NhY2hlZFBvc2l0aW9uLnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CiAgICAgICAgIHJldHVybiBtX2NhY2hlZFBvc2l0aW9uOwogICAgIH0KQEAgLTI4MzMs
NiArMjgzMywyMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6YWNjZWxlcmF0
ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKQogICAgIG1fY2FuUmVuZGVyaW5nQmVBY2NlbGVyYXRl
ZCA9IG1fcGxheWVyICYmIG1fcGxheWVyLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgp
OwogfQogCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGVyZm9ybVRhc2tBdE1l
ZGlhVGltZShGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaywgY29uc3QgTWVkaWFUaW1lJiB0aW1lKQor
eworICAgIC8vIElnbm9yZSB0aGUgY2FzZXMgd2hlbiB0aGUgdGltZSBpc24ndCBtYXJjaGluZyBv
bi4KKyAgICBpZiAoIW1fcGlwZWxpbmUgfHwgbV9kaWRFcnJvck9jY3VyIHx8IG1faXNTZWVraW5n
IHx8IG1faXNQYXVzZWQgfHwgIW1fcGxheWJhY2tSYXRlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBNZWRpYVRpbWUgY3VycmVudFRpbWUgPSBwbGF5YmFja1Bvc2l0aW9uKGZhbHNlKTsK
KyAgICBpZiAoIWN1cnJlbnRUaW1lLmlzRmluaXRlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmICgobV9wbGF5YmFja1JhdGUgPj0gMCAmJiB0aW1lIDw9IGN1cnJlbnRUaW1lKSB8
fCAobV9wbGF5YmFja1JhdGUgPCAwICYmIHRpbWUgPiBjdXJyZW50VGltZSkpCisgICAgICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKHRhc2spKTsKKyAgICBlbHNlCisgICAgICAg
IFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaEFmdGVyKFNlY29uZHMoKHRpbWUtY3VycmVudFRpbWUp
LnRvRG91YmxlKCkgLyBkb3VibGUobV9wbGF5YmFja1JhdGUpKSwgV1RGTW92ZSh0YXNrKSk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiBQbGF0Zm9y
bUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBsYXRmb3JtTGF5ZXIoKSBjb25z
dAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4
IGQ0MjFlYzc0MWE2ZGVkZDg4YWI3N2U0ZTdiN2QxYzNhNTY0NTMzYzMuLjRkM2EzMzE0MjIxYWQx
Y2E2Y2MyMDc3ZmQxODQ4YmIzMjUwMjQ5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTE4NCw2ICsxODQsNyBAQCBwdWJsaWM6CiAKICAgICBP
cHRpb25hbDxWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5
TWV0cmljcygpIGZpbmFsOwogICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5n
ZWQoKSBmaW5hbDsKKyAgICBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoRnVuY3Rpb248dm9p
ZCgpPiYmLCBjb25zdCBNZWRpYVRpbWUmKTsKIAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkK
ICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC00
MDUsNyArNDA2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3luY09uQ2xvY2soYm9vbCBzeW5j
KTsKIAotICAgIE1lZGlhVGltZSBwbGF5YmFja1Bvc2l0aW9uKCkgY29uc3Q7CisgICAgTWVkaWFU
aW1lIHBsYXliYWNrUG9zaXRpb24oYm9vbCB1c2VDYWNoZWQgPSB0cnVlKSBjb25zdDsKIAogICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVTdGF0ZXMoKTsKICAgICB2aXJ0dWFsIHZvaWQgYXN5bmNTdGF0
ZUNoYW5nZURvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlYzQ1YjFlMDI2ZjNjNWE3YWViOTgwZjVlMTVmOTYwMzlm
NGI5YmY0Li4wNzYwZDkxZTM3MDllZTZhODczNzFiMWJmODEyNThhNDRmZGMyNGJkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMjEtMDQtMjkgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVv
Y2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBMYXlvdXQgdGVzdCBtZWRpYS90cmFj
ay90cmFjay1jdWUtbWlzc2luZy5odG1sIGlzIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTAwNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRp
b25zOiBVbnNraXBwZWQgdGVzdC4KKwogMjAyMS0wNC0yMyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgR1RLIGdhcmRlbmluZwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDM5YTA2YmRk
ZGViYTEzZGZjMDU0Y2Y1MjgwNjBhNzlhYWRmYjhlODUuLjFjZjc2MmZmMGY1MWRlYjJkMGU1ZjU0
NTI5YTY0NDY5MTM5ZWJkOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTIyNjMsOCArMjI2Myw2IEBAIHdlYmtpdC5vcmcvYi8xODY2MzggbWVkaWEv
dmlkZW8tcmVtb3RlLWNvbnRyb2wtcGxheXBhdXNlLmh0bWwgWyBGYWlsdXJlIFRpbWVvdXQKIHdl
YmtpdC5vcmcvYi8xODY2NjQgbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUuaHRtbCBbIEZhaWx1cmUg
XQogd2Via2l0Lm9yZy9iLzE4NjY3OSBtZWRpYS92aWRlby1jdXJyZW50VGltZS1kZWxheS5odG1s
IFsgQ3Jhc2ggUGFzcyBUaW1lb3V0IF0KIAotd2Via2l0Lm9yZy9iLzE5MTAwNCBtZWRpYS90cmFj
ay90cmFjay1jdWUtbWlzc2luZy5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xOTg4
MjcgbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5lLmh0bWwgWyBUaW1lb3V0
IFBhc3MgQ3Jhc2ggXQogd2Via2l0Lm9yZy9iLzE5ODgyNyBtZWRpYS92aWRlby1lbmRlZC1ldmVu
dC1zbG93LW1vdGlvbi1wbGF5YmFjay5odG1sIFsgVGltZW91dCBQYXNzIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427755</attachid>
            <date>2021-05-05 04:54:14 -0700</date>
            <delta_ts>2021-05-07 04:52:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191004-20210505135413.patch</filename>
            <type>text/plain</type>
            <size>8088</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Q5NzI5NjkzYjc2YmNk
Y2MxZDI2NjVkMmFkZTE1NGVmNDI0YjY4Zi4uYTc3NzA3MDk5ZThlMDAxMjdjOGM1Njg3ZTFmOTA3
ZmE1YTljNGM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA1LTA1ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dU
S10gTGF5b3V0IHRlc3QgbWVkaWEvdHJhY2svdHJhY2stY3VlLW1pc3NpbmcuaHRtbCBpcyBmYWls
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEw
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnRlZCB0aGUgbWlzc2luZyBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKCkgbWV0aG9kLCBuZWVk
ZWQgYnkgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcygpCisgICAg
ICAgIHRvIHRyaWdnZXIgY3VzdG9tIHVwZGF0ZXMgYXQgdGltZXMgdGhhdCBkb24ndCBmaXQgaW4g
dGhlIHJlZ3VsYXIgdXBkYXRlcyBzdGF0aWNhbGx5IHNjaGVkdWxlZCBldmVyeSAyNTAgbXMuCisg
ICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHRyaWdnZXJSZXBhaW50KCkgZm9yIHN5bmNo
cm9uaXphdGlvbiBpbnN0ZWFkIG9mIHRpbWVycywgdXBkYXRpbmcgbV9jYWNoZWRQb3NpdGlvbiB0
byB0aGUKKyAgICAgICAgc3RyZWFtaW5nIHRpbWUgb2YgdGhlIGxhc3QgcmVuZGVyZWQgc2FtcGxl
LiBUaGlzIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgaW5jcmVhc2luZyB0aGUgYWNjdXJhY3kgb2YK
KyAgICAgICAgcGxheWJhY2tQb3NpdGlvbigpIGFuZCBjdXJyZW50TWVkaWFUaW1lKCkgd2l0aG91
dCBuZWVkaW5nIGV4dHJhIHBvc2l0aW9uIHF1ZXJpZXMgdG8gdGhlIHBpcGVsaW5lLgorCisgICAg
ICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGVyZm9ybVRhc2tBdE1lZGlh
VGltZSk6IENyZWF0ZSBhIFBlbmRpbmdUYXNrIHdoZW4gdGhlIG1lZGlhIGlzIGN1cnJlbnRseSBw
bGF5aW5nLiBUaGF0IHRhc2sgd2lsbCBydW4gYnkgaXRzZWxmIGF0IHRoZSB0YXJnZXQgdGltZS4g
VGhlIEhUTUxNZWRpYUVsZW1lbnQgcGVyaW9kaWMgdXBkYXRlIHdpbGwgYWxyZWFkeSB0YWtlIGNh
cmUgaWYgdGhlIG1lZGlhIGlzbid0IGN1cnJlbnRseSBwbGF5aW5nLiBQbGF5YmFjayByYXRlIGlz
IGhhZCBpbnRvIGFjY291bnQgZm9yIHRpbWUgY2hlY2tzLgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0cmlnZ2VyUmVwYWludCk6IFVwZGF0ZSBtX2NhY2hl
ZFBvc2l0aW9uIHRvIHRoZSBzdHJlYW1pbmcgdGltZSBvZiB0aGUgbGFzdCByZW5kZXJlZCBzYW1w
bGUgYW5kIGNoZWNrIGlmIHRoZSBQZW5kaW5nVGFzayBuZWVkcyB0byBiZSBydW4uCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpQZW5k
aW5nVGFzazo6UGVuZGluZ1Rhc2spOiBOZXcgY2xhc3MgdG8gc3RvcmUgdGhlIGxhc3QgKGFuZCBv
bmx5KSB0YXNrIHRvIGJlIHBlcmZvcm1lZCBhbmQgdGhlIG1lZGlhIHRpbWUgd2hlbiBpdCBzaG91
bGQgYmUgcGVyZm9ybWVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpQZW5kaW5nVGFzazo6cnVuSWZOZWVkZWQpOiBDaGVja3MgaWYgdGhlIHRpbWUgdG8g
cnVuIHRoZSB0YXNrIGhhcyBjb21lLCBhbmQgc2NoZWR1bGVzIGl0IHRvIGJlIHJ1biBvbiB0aGUg
bWFpbiB0aHJlYWQgaWYgdGhhdCdzIHRoZSBjYXNlLCBjbGVhcmluZyB0aGUgdGFzayBhZnRlcndh
cmRzLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpQZW5k
aW5nVGFzazo6Y2xlYXIpOiBDbGVhcnMgdGhlIHRhc2tzIGJ5IHNldHRpbmcgdGhlIHRhcmdldCB0
aW1lIHRvIGludmFsaWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OlBlbmRpbmdUYXNrOjppc0VtcHR5KTogQ2hlY2tzIGlmIHRoZSB0YXJnZXQgdGltZSBp
cyBpbnZhbGlkLCBtZWFuaW5nIHRoYXQgdGhlIHRhc2sgaXMgZW1wdHkvaW52YWxpZCBhbmQgc2hv
dWxkbid0IHRyaWdnZXIgYW55IGFjdGlvbi4KKwogMjAyMS0wNS0wNSAgQ2hyaXMgTG9yZCAgPGNs
b3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAgT2Zmc2NyZWVuQ2FudmFzIHNob3VsZCBwcmVzZXJ2
ZSBjb250ZXh0IHRyYW5zZm9ybSBhZnRlciB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggY2NjNDlhZWRl
NDE2NmQ0YzYwNTQyYjA5MzNkYzY0NWEzODc1NTM5MC4uYzQ2MGYzZDJiZGIxMzg3YjVjMjRlYzAx
YzgzYmYzMzRmODI0YWVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTI4MzMsNiArMjgzMywxNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKQogICAgIG1f
Y2FuUmVuZGVyaW5nQmVBY2NlbGVyYXRlZCA9IG1fcGxheWVyICYmIG1fcGxheWVyLT5hY2NlbGVy
YXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpOwogfQogCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaywg
Y29uc3QgTWVkaWFUaW1lJiB0aW1lKQoreworICAgIC8vIElnbm9yZSB0aGUgY2FzZXMgd2hlbiB0
aGUgdGltZSBpc24ndCBtYXJjaGluZyBvbiBvciB0aGUgcG9zaXRpb24gaXMgdW5rbm93bi4KKyAg
ICBpZiAoIW1fcGlwZWxpbmUgfHwgbV9kaWRFcnJvck9jY3VyIHx8IG1faXNTZWVraW5nIHx8IG1f
aXNQYXVzZWQgfHwgIW1fcGxheWJhY2tSYXRlIHx8ICFtX2NhY2hlZFBvc2l0aW9uLmlzRmluaXRl
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fcGVuZGluZ1Rhc2sgPSBQZW5kaW5n
VGFzayhXVEZNb3ZlKHRhc2spLCB0aW1lKTsKKyAgICBtX3BlbmRpbmdUYXNrLnJ1bklmTmVlZGVk
KG1fY2FjaGVkUG9zaXRpb24sIG1fcGxheWJhY2tSYXRlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KwogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CkBAIC0zMDYyLDYgKzMw
NzMsMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRyaWdnZXJSZXBhaW50
KEdzdFNhbXBsZSogc2FtcGxlKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCisg
ICAgR3N0QnVmZmVyKiBidWZmZXIgPSBnc3Rfc2FtcGxlX2dldF9idWZmZXIoc2FtcGxlKTsKKyAg
ICBpZiAoYnVmZmVyICYmIEdTVF9CVUZGRVJfUFRTX0lTX1ZBTElEKGJ1ZmZlcikpIHsKKyAgICAg
ICAgbV9jYWNoZWRQb3NpdGlvbiA9IE1lZGlhVGltZShnc3Rfc2VnbWVudF90b19zdHJlYW1fdGlt
ZShnc3Rfc2FtcGxlX2dldF9zZWdtZW50KHNhbXBsZSksIEdTVF9GT1JNQVRfVElNRSwgR1NUX0JV
RkZFUl9QVFMoYnVmZmVyKSksIEdTVF9TRUNPTkQpOworICAgICAgICBtX3BlbmRpbmdUYXNrLnJ1
bklmTmVlZGVkKG1fY2FjaGVkUG9zaXRpb24sIG1fcGxheWJhY2tSYXRlKTsKKyAgICB9CisKICAg
ICBib29sIHNob3VsZFRyaWdnZXJSZXNpemU7CiAgICAgewogICAgICAgICBhdXRvIHNhbXBsZUxv
Y2tlciA9IGhvbGRMb2NrKG1fc2FtcGxlTXV0ZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IGQ0MjFlYzc0MWE2ZGVkZDg4YWI3N2U0ZTdiN2Qx
YzNhNTY0NTMzYzMuLmM0ZTFmY2RjYWY4ZDM0NGM4ZjZkYTNiNTgwODM3ZDZlNmQ5Zjg4YTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTE4NCw2
ICsxODQsNyBAQCBwdWJsaWM6CiAKICAgICBPcHRpb25hbDxWaWRlb1BsYXliYWNrUXVhbGl0eU1l
dHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygpIGZpbmFsOwogICAgIHZvaWQgYWNj
ZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICBib29sIHBlcmZvcm1U
YXNrQXRNZWRpYVRpbWUoRnVuY3Rpb248dm9pZCgpPiYmLCBjb25zdCBNZWRpYVRpbWUmKSBvdmVy
cmlkZTsKIAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICAgICBQbGF0Zm9ybUxheWVyKiBw
bGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0zODYsNiArMzg3LDM0IEBAIHByb3Rl
Y3RlZDoKICAgICBPcHRpb25hbDxHc3RWaWRlb0RlY29kZXJQbGF0Zm9ybT4gbV92aWRlb0RlY29k
ZXJQbGF0Zm9ybTsKIAogcHJpdmF0ZToKKyAgICBjbGFzcyBQZW5kaW5nVGFzayB7CisgICAgcHVi
bGljOgorICAgICAgICBQZW5kaW5nVGFzaygpCisgICAgICAgICAgICA6IG1fdGFyZ2V0VGltZShN
ZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCisgICAgICAgICAgICAsIG1fdGFzayhGdW5jdGlvbjx2
b2lkKCk+KCkpIHsgfQorCisgICAgICAgIFBlbmRpbmdUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiB0
YXNrLCBjb25zdCBNZWRpYVRpbWUmIHRhcmdldFRpbWUpCisgICAgICAgICAgICA6IG1fdGFyZ2V0
VGltZSh0YXJnZXRUaW1lKQorICAgICAgICAgICAgLCBtX3Rhc2soV1RGTW92ZSh0YXNrKSkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKGlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBjbGVh
cigpOworICAgICAgICB9CisgICAgICAgIHZvaWQgcnVuSWZOZWVkZWQoY29uc3QgTWVkaWFUaW1l
JiBjdXJyZW50VGltZSwgY29uc3QgZmxvYXQmIHBsYXliYWNrUmF0ZSkKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKGlzRW1wdHkoKSB8fCAhY3VycmVudFRpbWUuaXNGaW5pdGUoKSB8fCAocGxh
eWJhY2tSYXRlID49IDAgJiYgbV90YXJnZXRUaW1lID4gY3VycmVudFRpbWUpIHx8IChwbGF5YmFj
a1JhdGUgPCAwICYmIG1fdGFyZ2V0VGltZSA8IGN1cnJlbnRUaW1lKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RGTW92ZSht
X3Rhc2spKTsKKyAgICAgICAgICAgIGNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCBj
bGVhcigpIHsgKnRoaXMgPSBQZW5kaW5nVGFzaygpOyB9CisgICAgICAgIGJvb2wgaXNFbXB0eSgp
IHsgcmV0dXJuICFtX3RhcmdldFRpbWUuaXNGaW5pdGUoKTsgfQorCisgICAgcHJpdmF0ZToKKyAg
ICAgICAgTWVkaWFUaW1lIG1fdGFyZ2V0VGltZTsKKyAgICAgICAgRnVuY3Rpb248dm9pZCgpPiBt
X3Rhc2s7CisgICAgfTsKKwogICAgIGJvb2wgaXNQbGF5ZXJTaHV0dGluZ0Rvd24oKSBjb25zdCB7
IHJldHVybiBtX2lzUGxheWVyU2h1dHRpbmdEb3duLmxvYWQoKTsgfQogICAgIE1lZGlhVGltZSBt
YXhUaW1lTG9hZGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRWaWRlb1NvdXJjZU9yaWVudGF0aW9u
KEltYWdlT3JpZW50YXRpb24pOwpAQCAtNTM1LDYgKzU2NCw4IEBAIHByaXZhdGU6CiAgICAgLy8g
VGhpcyBpcyBzZXQgdG8gdHJ1ZSBpZiBubyB2aWRlb2ZsaXAgZWxlbWVudCBoYXMgYmVlbiBhZGRl
ZCB0byB0aGUgcGlwZWxpbmUuCiAgICAgYm9vbCBtX3Nob3VsZEhhbmRsZU9yaWVudGF0aW9uVGFn
cyB7IGZhbHNlIH07CiAKKyAgICBQZW5kaW5nVGFzayBtX3BlbmRpbmdUYXNrOworCiBwcml2YXRl
OgogI2lmIFVTRShXUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCiAgICAgR1VuaXF1ZVB0
cjxzdHJ1Y3Qgd3BlX3ZpZGVvX3BsYW5lX2Rpc3BsYXlfZG1hYnVmX3NvdXJjZT4gbV93cGVWaWRl
b1BsYW5lRGlzcGxheURtYUJ1ZjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkZGU4MDE3YjFiZGEwZmE4NWRkNjEyMTI5MjU1
M2E3YzVmOTQyZjIzLi41MWI5NmQ4ZDU2OWI4YjRiMDhhYjczNWYxZjNkYmMxOWU4ZjkzYTcwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDUtMDUgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxl
eiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBMYXlvdXQgdGVzdCBtZWRp
YS90cmFjay90cmFjay1jdWUtbWlzc2luZy5odG1sIGlzIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTAwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9UZXN0RXhw
ZWN0YXRpb25zOiBVbnNraXBwZWQgdGVzdC4KKwogMjAyMS0wNS0wNCAgVHlsZXIgV2lsY29jayAg
PHR3aWxjby5vQHByb3Rvbm1haWwuY29tPgogCiAgICAgICAgIEltcG9ydCB3ZWJzdG9yYWdlIFdQ
VHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyOGZh
N2JkNjIwZjFhYjU2Y2NjODUxMWE4ZWNhNTQyYWU4NTQ5Mjc2Li40YmM0ZDY4NjM4NGE0ODc4NTZl
NDdjNDdhY2YxNDk5YThmZGI0YWJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
bGliL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0
RXhwZWN0YXRpb25zCkBAIC0yMjU4LDggKzIyNTgsNiBAQCB3ZWJraXQub3JnL2IvMTg2NjM4IG1l
ZGlhL3ZpZGVvLXJlbW90ZS1jb250cm9sLXBsYXlwYXVzZS5odG1sIFsgRmFpbHVyZSBUaW1lb3V0
CiB3ZWJraXQub3JnL2IvMTg2NjY0IG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi8xODY2NzkgbWVkaWEvdmlkZW8tY3VycmVudFRpbWUtZGVsYXku
aHRtbCBbIENyYXNoIFBhc3MgVGltZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8xOTEwMDQgbWVkaWEv
dHJhY2svdHJhY2stY3VlLW1pc3NpbmcuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2Iv
MTk4ODI3IG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS5odG1sIFsgVGlt
ZW91dCBQYXNzIENyYXNoIF0KIHdlYmtpdC5vcmcvYi8xOTg4MjcgbWVkaWEvdmlkZW8tZW5kZWQt
ZXZlbnQtc2xvdy1tb3Rpb24tcGxheWJhY2suaHRtbCBbIFRpbWVvdXQgUGFzcyBdCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427991</attachid>
            <date>2021-05-07 04:52:20 -0700</date>
            <delta_ts>2021-05-12 09:39:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191004-20210507135218.patch</filename>
            <type>text/plain</type>
            <size>8917</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDc0ZTQ0ZTNkOThlOWY3
ZTFiZmY0MzFiYzA3MmY2ZTFlMzEzYmU0My4uZmZjNTczOTU5MTNkYmVkMmU2OWNhYmVlZGZlNDMx
ZWNmNmZhYzM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA1LTA3ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dU
S10gTGF5b3V0IHRlc3QgbWVkaWEvdHJhY2svdHJhY2stY3VlLW1pc3NpbmcuaHRtbCBpcyBmYWls
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEw
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnRlZCB0aGUgbWlzc2luZyBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKCkgbWV0aG9kLCBuZWVk
ZWQgYnkgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcygpCisgICAg
ICAgIHRvIHRyaWdnZXIgY3VzdG9tIHVwZGF0ZXMgYXQgdGltZXMgdGhhdCBkb24ndCBmaXQgaW4g
dGhlIHJlZ3VsYXIgdXBkYXRlcyBzdGF0aWNhbGx5IHNjaGVkdWxlZCBldmVyeSAyNTAgbXMuCisg
ICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHRyaWdnZXJSZXBhaW50KCkgZm9yIHN5bmNo
cm9uaXphdGlvbiBpbnN0ZWFkIG9mIHRpbWVycywgZm9yd2FyZGluZyB0byB0aGUgbWFpbiB0aHJl
YWQKKyAgICAgICAgdGhlIG1fY2FjaGVkUG9zaXRpb24gdXBkYXRlIHRvIHRoZSBzdHJlYW1pbmcg
dGltZSBvZiB0aGUgbGFzdCByZW5kZXJlZCBzYW1wbGUuIFRoaXMgaGFzIHRoZSBzaWRlIGVmZmVj
dCBvZgorICAgICAgICBpbmNyZWFzaW5nIHRoZSBhY2N1cmFjeSBvZiBwbGF5YmFja1Bvc2l0aW9u
KCkgYW5kIGN1cnJlbnRNZWRpYVRpbWUoKSB3aXRob3V0IG5lZWRpbmcgZXh0cmEgcG9zaXRpb24g
cXVlcmllcyB0bworICAgICAgICB0aGUgcGlwZWxpbmUuCisKKyAgICAgICAgQW4gYWx0ZXJuYXRp
dmUgdG8gcmVzZXQgbV9jYWNoZWRUaW1lIGV2ZXJ5IG1haW5sb29wIGl0ZXJhdGlvbiB3YXMgZGlz
Y2FyZGVkLCBzaW5jZSBpdCB3b3VsZCBtZWFuIGEgaHVnZQorICAgICAgICBwZXJmb3JtYW5jZSBp
bXBhY3QuIFRoZSBhbHRlcm5hdGl2ZSBvZiBmb3J3YXJkaW5nIHRoZSBtX2NhY2hlZFBvc2l0aW9u
IHVwZGF0ZSB0byB0aGUgbWFpbiB0aHJlYWQgZnJvbSB0aGUKKyAgICAgICAgc2Vjb25kYXJ5IHRo
cmVhZCB0aGF0IHJ1bnMgdHJpZ2dlclJlcGFpbnQoKSBpcyBtdWNoIG1vcmUgZWZmaWNpZW50Lgor
CisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGVyZm9ybVRhc2tB
dE1lZGlhVGltZSk6IENyZWF0ZSBhIFBlbmRpbmdUYXNrIHdoZW4gdGhlIG1lZGlhIGlzIGN1cnJl
bnRseSBwbGF5aW5nLiBUaGF0IHRhc2sgd2lsbCBydW4gYnkgaXRzZWxmIGF0IHRoZSB0YXJnZXQg
dGltZS4gVGhlIEhUTUxNZWRpYUVsZW1lbnQgcGVyaW9kaWMgdXBkYXRlIHdpbGwgYWxyZWFkeSB0
YWtlIGNhcmUgaWYgdGhlIG1lZGlhIGlzbid0IGN1cnJlbnRseSBwbGF5aW5nLiBQbGF5YmFjayBy
YXRlIGlzIGhhZCBpbnRvIGFjY291bnQgZm9yIHRpbWUgY2hlY2tzLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0cmlnZ2VyUmVwYWludCk6IENoZWNrIGlm
IHRoZSBQZW5kaW5nVGFzayBuZWVkcyB0byBiZSBydW4gYW5kIHVwZGF0ZSBtX2NhY2hlZFBvc2l0
aW9uIG9uIHRoZSBtYWluIHRocmVhZCB0byB0aGUgc3RyZWFtaW5nIHRpbWUgb2YgdGhlIGxhc3Qg
cmVuZGVyZWQgc2FtcGxlLCBidXQgb25seSBpZiBpdCdzIGhpZ2hlciB0aGFuIHRoZSBsYXN0IGNh
Y2hlZCB0aW1lICh0aGlzIGF2b2lkcyBjdXJyZW50VGltZSB0byBnbyBiYWNrd2FyZHMpLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
UGVuZGluZ1Rhc2s6OlBlbmRpbmdUYXNrKTogTmV3IGNsYXNzIHRvIHN0b3JlIHRoZSBsYXN0IChh
bmQgb25seSkgdGFzayB0byBiZSBwZXJmb3JtZWQgYW5kIHRoZSBtZWRpYSB0aW1lIHdoZW4gaXQg
c2hvdWxkIGJlIHBlcmZvcm1lZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6UGVuZGluZ1Rhc2s6OnJ1bklmTmVlZGVkKTogQ2hlY2tzIGlmIHRoZSB0aW1l
IHRvIHJ1biB0aGUgdGFzayBoYXMgY29tZSwgYW5kIHNjaGVkdWxlcyBpdCB0byBiZSBydW4gb24g
dGhlIG1haW4gdGhyZWFkIGlmIHRoYXQncyB0aGUgY2FzZSwgY2xlYXJpbmcgdGhlIHRhc2sgYWZ0
ZXJ3YXJkcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
UGVuZGluZ1Rhc2s6OmNsZWFyKTogQ2xlYXJzIHRoZSB0YXNrcyBieSBzZXR0aW5nIHRoZSB0YXJn
ZXQgdGltZSB0byBpbnZhbGlkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpQZW5kaW5nVGFzazo6aXNFbXB0eSk6IENoZWNrcyBpZiB0aGUgdGFyZ2V0IHRp
bWUgaXMgaW52YWxpZCwgbWVhbmluZyB0aGF0IHRoZSB0YXNrIGlzIGVtcHR5L2ludmFsaWQgYW5k
IHNob3VsZG4ndCB0cmlnZ2VyIGFueSBhY3Rpb24uCisKIDIwMjEtMDUtMDYgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI3MTM0
MSk6IG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4taW5saW5lLmh0bWwgdGltZXMgb3V0IG9uIEdUSwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAz
MDZmNzU0ZTZmMjUwNGU4OGRkNmM1NjQzZTczMWUyODdhMjZmMmUxLi43M2I5OTY4ZGVhNGE0MTM0
M2MzNDMzMDExNmZiOGU5ODVhNWFjMTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjg0MCw2ICsyODQwLDE3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgp
CiAgICAgbV9jYW5SZW5kZXJpbmdCZUFjY2VsZXJhdGVkID0gbV9wbGF5ZXIgJiYgbV9wbGF5ZXIt
PmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7CiB9CiAKK2Jvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKEZ1bmN0aW9uPHZvaWQoKT4m
JiB0YXNrLCBjb25zdCBNZWRpYVRpbWUmIHRpbWUpCit7CisgICAgLy8gSWdub3JlIHRoZSBjYXNl
cyB3aGVuIHRoZSB0aW1lIGlzbid0IG1hcmNoaW5nIG9uIG9yIHRoZSBwb3NpdGlvbiBpcyB1bmtu
b3duLgorICAgIGlmICghbV9waXBlbGluZSB8fCBtX2RpZEVycm9yT2NjdXIgfHwgbV9pc1NlZWtp
bmcgfHwgbV9pc1BhdXNlZCB8fCAhbV9wbGF5YmFja1JhdGUgfHwgIW1fY2FjaGVkUG9zaXRpb24u
aXNGaW5pdGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9wZW5kaW5nVGFzayA9
IFBlbmRpbmdUYXNrKFdURk1vdmUodGFzayksIHRpbWUpOworICAgIG1fcGVuZGluZ1Rhc2sucnVu
SWZOZWVkZWQobV9jYWNoZWRQb3NpdGlvbiwgbV9wbGF5YmFja1JhdGUpOworICAgIHJldHVybiB0
cnVlOworfQorCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogUGxhdGZvcm1MYXllciogTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKQEAgLTMw
NjksNiArMzA4MCwxNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dHJpZ2dl
clJlcGFpbnQoR3N0U2FtcGxlKiBzYW1wbGUpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CiAKKyAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1w
bGUpOworICAgIGlmIChidWZmZXIgJiYgR1NUX0JVRkZFUl9QVFNfSVNfVkFMSUQoYnVmZmVyKSkg
eworICAgICAgICBNZWRpYVRpbWUgY3VycmVudFRpbWUgPSBNZWRpYVRpbWUoZ3N0X3NlZ21lbnRf
dG9fc3RyZWFtX3RpbWUoZ3N0X3NhbXBsZV9nZXRfc2VnbWVudChzYW1wbGUpLCBHU1RfRk9STUFU
X1RJTUUsIEdTVF9CVUZGRVJfUFRTKGJ1ZmZlcikpLCBHU1RfU0VDT05EKTsKKyAgICAgICAgbV9w
ZW5kaW5nVGFzay5ydW5JZk5lZWRlZChjdXJyZW50VGltZSwgbV9wbGF5YmFja1JhdGUpOworICAg
ICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpLCB0aGlzLCBjdXJyZW50VGltZSA9IFdURk1vdmUoY3VycmVudFRpbWUpXSB7CisgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzIHx8ICFjdXJyZW50VGltZS5pc0Zpbml0ZSgpIHx8IChtX3BsYXli
YWNrUmF0ZSA+PSAwICYmIGN1cnJlbnRUaW1lIDwgbV9jYWNoZWRQb3NpdGlvbikgfHwgKG1fcGxh
eWJhY2tSYXRlIDwgMCAmJiBjdXJyZW50VGltZSA+IG1fY2FjaGVkUG9zaXRpb24pKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2FjaGVkUG9zaXRpb24gPSBjdXJyZW50
VGltZTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgYm9vbCBzaG91bGRUcmlnZ2VyUmVzaXpl
OwogICAgIHsKICAgICAgICAgYXV0byBzYW1wbGVMb2NrZXIgPSBob2xkTG9jayhtX3NhbXBsZU11
dGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRl
eCAxYThhMWNkZmM5OWZiMTMyMjczMDJkM2RmNTdkZDBmMjc0MGQ5NjE5Li5mOGYyMTQwZDJkNDE4
Nzk1YWY4MTY5ZGFkMDA1Y2FiNDJlYjJiN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0xODQsNiArMTg0LDcgQEAgcHVibGljOgogCiAgICAg
T3B0aW9uYWw8VmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzPiB2aWRlb1BsYXliYWNrUXVhbGl0
eU1ldHJpY3MoKSBmaW5hbDsKICAgICB2b2lkIGFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFu
Z2VkKCkgZmluYWw7CisgICAgYm9vbCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKEZ1bmN0aW9uPHZv
aWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikgb3ZlcnJpZGU7CiAKICNpZiBVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJy
aWRlOwpAQCAtMzg4LDYgKzM4OSwzNCBAQCBwcm90ZWN0ZWQ6CiAgICAgT3B0aW9uYWw8R3N0Vmlk
ZW9EZWNvZGVyUGxhdGZvcm0+IG1fdmlkZW9EZWNvZGVyUGxhdGZvcm07CiAKIHByaXZhdGU6Cisg
ICAgY2xhc3MgUGVuZGluZ1Rhc2sgeworICAgIHB1YmxpYzoKKyAgICAgICAgUGVuZGluZ1Rhc2so
KQorICAgICAgICAgICAgOiBtX3RhcmdldFRpbWUoTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQor
ICAgICAgICAgICAgLCBtX3Rhc2soRnVuY3Rpb248dm9pZCgpPigpKSB7IH0KKworICAgICAgICBQ
ZW5kaW5nVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaywgY29uc3QgTWVkaWFUaW1lJiB0YXJn
ZXRUaW1lKQorICAgICAgICAgICAgOiBtX3RhcmdldFRpbWUodGFyZ2V0VGltZSkKKyAgICAgICAg
ICAgICwgbV90YXNrKFdURk1vdmUodGFzaykpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChp
c0VtcHR5KCkpCisgICAgICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICB2
b2lkIHJ1bklmTmVlZGVkKGNvbnN0IE1lZGlhVGltZSYgY3VycmVudFRpbWUsIGNvbnN0IGZsb2F0
JiBwbGF5YmFja1JhdGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChpc0VtcHR5KCkgfHwg
IWN1cnJlbnRUaW1lLmlzRmluaXRlKCkgfHwgKHBsYXliYWNrUmF0ZSA+PSAwICYmIGN1cnJlbnRU
aW1lIDwgbV90YXJnZXRUaW1lKSB8fCAocGxheWJhY2tSYXRlIDwgMCAmJiBjdXJyZW50VGltZSA+
IG1fdGFyZ2V0VGltZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUobV90YXNrKSk7CisgICAgICAgICAgICBjbGVh
cigpOworICAgICAgICB9CisgICAgICAgIHZvaWQgY2xlYXIoKSB7ICp0aGlzID0gUGVuZGluZ1Rh
c2soKTsgfQorICAgICAgICBib29sIGlzRW1wdHkoKSB7IHJldHVybiAhbV90YXJnZXRUaW1lLmlz
RmluaXRlKCk7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIE1lZGlhVGltZSBtX3RhcmdldFRp
bWU7CisgICAgICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV90YXNrOworICAgIH07CisKICAgICBib29s
IGlzUGxheWVyU2h1dHRpbmdEb3duKCkgY29uc3QgeyByZXR1cm4gbV9pc1BsYXllclNodXR0aW5n
RG93bi5sb2FkKCk7IH0KICAgICBNZWRpYVRpbWUgbWF4VGltZUxvYWRlZCgpIGNvbnN0OwogICAg
IHZvaWQgc2V0VmlkZW9Tb3VyY2VPcmllbnRhdGlvbihJbWFnZU9yaWVudGF0aW9uKTsKQEAgLTUz
NSw2ICs1NjQsOCBAQCBwcml2YXRlOgogICAgIC8vIFRoaXMgaXMgc2V0IHRvIHRydWUgaWYgbm8g
dmlkZW9mbGlwIGVsZW1lbnQgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIHBpcGVsaW5lLgogICAgIGJv
b2wgbV9zaG91bGRIYW5kbGVPcmllbnRhdGlvblRhZ3MgeyBmYWxzZSB9OwogCisgICAgUGVuZGlu
Z1Rhc2sgbV9wZW5kaW5nVGFzazsKKwogcHJpdmF0ZToKICNpZiBVU0UoV1BFX1ZJREVPX1BMQU5F
X0RJU1BMQVlfRE1BQlVGKQogICAgIEdVbmlxdWVQdHI8c3RydWN0IHdwZV92aWRlb19wbGFuZV9k
aXNwbGF5X2RtYWJ1Zl9zb3VyY2U+IG1fd3BlVmlkZW9QbGFuZURpc3BsYXlEbWFCdWY7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZDQwNzQwYTViMGE4OTdhNTNmNDQ4YTRhMzhhZWI3Mzc2MDFkZjYwNy4uYTU4ZTc4NDRmNjlj
NGI2OGZiZmJiNWUzYjAxN2I3NzZjNDI2MDgyYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIx
LTA1LTA3ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0dUS10gTGF5b3V0IHRlc3QgbWVkaWEvdHJhY2svdHJhY2stY3VlLW1pc3Npbmcu
aHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTEwMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9uczogVW5za2lwcGVkIHRlc3Qu
CisKIDIwMjEtMDUtMDYgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZS1pbXBvcnQgY3NzL2Nzcy13aWxsLWNoYW5nZSBXUFRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
bGliL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzE3Y2JjNTc1NTg5ZWMzN2RjY2RjMTNiNWZkYjgw
MWFkMjhiMzM0NC4uZGMxNmE0ODllZGEyMzEwYzRmMzAyZmY3NWQ5MWYxY2E1ZjY0NzkxMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjI1Myw4ICsy
MjUzLDYgQEAgd2Via2l0Lm9yZy9iLzE4NjYzOCBtZWRpYS92aWRlby1yZW1vdGUtY29udHJvbC1w
bGF5cGF1c2UuaHRtbCBbIEZhaWx1cmUgVGltZW91dAogd2Via2l0Lm9yZy9iLzE4NjY2NCBtZWRp
YS92aWRlby1wbGF5c2lubGluZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTg2Njc5
IG1lZGlhL3ZpZGVvLWN1cnJlbnRUaW1lLWRlbGF5Lmh0bWwgWyBDcmFzaCBQYXNzIFRpbWVvdXQg
XQogCi13ZWJraXQub3JnL2IvMTkxMDA0IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1taXNzaW5nLmh0
bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE5ODgyNyBtZWRpYS9tZWRpYS1mdWxsc2Ny
ZWVuLXJldHVybi10by1pbmxpbmUuaHRtbCBbIFRpbWVvdXQgUGFzcyBDcmFzaCBdCiB3ZWJraXQu
b3JnL2IvMTk4ODI3IG1lZGlhL3ZpZGVvLWVuZGVkLWV2ZW50LXNsb3ctbW90aW9uLXBsYXliYWNr
Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428378</attachid>
            <date>2021-05-12 09:39:43 -0700</date>
            <delta_ts>2021-05-14 09:15:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191004-20210512183942.patch</filename>
            <type>text/plain</type>
            <size>17417</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDc0ZTQ0ZTNkOThlOWY3
ZTFiZmY0MzFiYzA3MmY2ZTFlMzEzYmU0My4uYTdkM2U5MDhiNmJiMDYxMjdhOGNjNGJiNzJiMGEy
OTJjNDdkNTgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTA1LTEyICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dU
S10gTGF5b3V0IHRlc3QgbWVkaWEvdHJhY2svdHJhY2stY3VlLW1pc3NpbmcuaHRtbCBpcyBmYWls
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEw
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnRlZCB0aGUgbWlzc2luZyBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKCkgbWV0aG9kLCBuZWVk
ZWQgYnkgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcygpCisgICAg
ICAgIHRvIHRyaWdnZXIgY3VzdG9tIHVwZGF0ZXMgYXQgdGltZXMgdGhhdCBkb24ndCBmaXQgaW4g
dGhlIHJlZ3VsYXIgdXBkYXRlcyBzdGF0aWNhbGx5IHNjaGVkdWxlZCBldmVyeSAyNTAgbXMuCisg
ICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHRyaWdnZXJSZXBhaW50KCkgZm9yIHN5bmNo
cm9uaXphdGlvbiBpbnN0ZWFkIG9mIHRpbWVycywgY29tcHV0aW5nIHRoZSBjdXJyZW50IHN0cmVh
bSB0aW1lCisgICAgICAgIG9mIHRoZSBsYXN0IHZpZGVvIGZyYW1lIHRvIGJlIHBhaW50ZWQgYXMg
YW4gaGV1cmlzdGljLCBpbnN0ZWFkIG9mIGFza2luZyB0aGUgcG9zaXRpb24gdG8gdGhlIHBpcGVs
aW5lIChtb3JlCisgICAgICAgIGV4cGVuc2l2ZSBhbmQgcmlza3kgZnJvbSBhIG5vbi1tYWluIHRo
cmVhZCkuIElmIHRoZSBzdHJlYW0gdGltZSBpcyBiZXlvbmQgdGhlIHRhc2sgdGFyZ2V0IHRpbWUs
IHRoZSB0YXNrIGlzIHJ1bgorICAgICAgICBvbiB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAg
U3RpbGwsIHRoYXQgaXMgbm90IGVub3VnaC4gVGhlIHRhc2sgc2NoZWR1bGVkIGJ5IEhUTUxNZWRp
YUVsZW1lbnQgcmVxdWlyZXMgY3VycmVudFRpbWUoKSB0byByZXR1cm4gYW4gYWNjdXJhdGUKKyAg
ICAgICAgdmFsdWUsIG5vdCBvbmUgY2FjaGVkIGV2ZXJ5IDIwMG1zLiBtX2NhY2hlZFRpbWUgbmVl
ZHMgdG8gYmUgdXBkYXRlZCBtb3JlIGZyZXF1ZW50bHkgKGF0IGxlYXN0IG9uY2UgZXZlcnkgbWFp
bgorICAgICAgICBsb29wIGl0ZXJhdGlvbiksIGJ1dCBzdGlsbCByZW1haW4gY29uc2lzdGVudCBh
bG9uZyB0aGUgd2hvbGUgaXRlcmF0aW9uLiBUaGlzIGlzIGFjaGlldmVkIGJ5IGVucXVlaW5nIGFu
CisgICAgICAgIGludmFsaWRhdGlvbiB0YXNrICh0byBiZSBydW4gYXQgdGhlIGVuZCBvZiB0aGUg
Y3VycmVudCBpdGVyYXRpb24pIGVhY2ggdGltZSB0aGUgY2FjaGVkIHZhbHVlIGlzIHNldCB3aXRo
IGEgdmFsdWUKKyAgICAgICAgY29taW5nIGZyb20gYSBwb3NpdGlvbiBxdWVyeS4KKworICAgICAg
ICBUaGUgY2hhbmdlcyBpbiB0aGUgbV9jYWNoZWRUaW1lIG1hbmFnZW1lbnQgYWRkIGFuIG92ZXJo
ZWFkIGJldHdlZW4gMTczICh0cmFjay1jdWUtbWlzc2luZyB0ZXN0KSBhbmQgNDI2JQorICAgICAg
ICAocmVndWxhciB2aWRlbyBwbGF5YmFjayB3aXRob3V0IHN1YnRpdGxlcykgaW4gdGhlIHJ1biB0
aW1lIHNwZW50IHF1ZXJ5aW5nIHRoZSBwb3NpdGlvbiB0byB0aGUgcGlwZWxpbmUuIEFzIGFuCisg
ICAgICAgIG9wdGltaXphdGlvbiwgdGhlIHBvc2l0aW9uIGlzIG5vdyBkaXJlY3RseSBxdWVyaWVk
IHRvIHRoZSBhdWRpbyBhbmQgdmlkZW8gc2luayBhbmQgdGhlIGhpZ2hlc3QgKGFjY29yZGluZyB0
byB0aGUKKyAgICAgICAgY3VycmVudCBwbGF5YmFjayBkaXJlY3Rpb24pIGlzIHJldHVybmVkLiBU
aGlzIHJlZHVjZXMgdGhlIG92ZXJoZWFkIHRvIGp1c3QgNjMlIGluIHRoZSByZWd1bGFyIHBsYXli
YWNrIHdpdGhvdXQKKyAgICAgICAgc3VidGl0bGVzIGNhc2UuCisKKyAgICAgICAgVGhlIGlubmVy
IFBlbmRpbmdUYXNrIGNsYXNzIGlzIHVzZWQgZm9yIHRhc2sgdGFyZ2V0IHRpbWUgZXZhbHVhdGlv
biBhbmQgc2NoZWR1bGVkLiBBcyBpdCBjYW4gYmUgdXNlZCBmcm9tIHRoZQorICAgICAgICBtYWlu
IHRocmVhZCBhbmQgZnJvbSBhIHNlY29uZGFyeSBvbmUgaW4gdHJpZ2dlclJlcGFpbnQoKSwgYSBt
dXRleCBpcyB1c2VkIHRvIG1hbmFnZSBjb25jdXJyZW50IGFjY2Vzcy4gVGhlIHRhc2sKKyAgICAg
ICAgaXMgcnVuIG9uIHRoZSBtYWluIHRocmVhZCBvbmNlIHRyaWdnZXJlZC4gQWZ0ZXIgdGhhdCwg
dGhlIG9iamVjdCBjbGVhcnMgaXRzZWxmLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3Rpbmcg
dGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKTogRG9uJ3QgaW5pdGlh
bGl6ZSBtX2NhY2hlZFBvc2l0aW9uLCBhcyBpdCdzIG5vdyBhbiBPcHRpb25hbCB0aGF0IHdpbGwg
YmUgaW5pdGlhbGl6ZWQgYXMgbm8tdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnBsYXliYWNrUG9zaXRpb24gY29uc3QpOiBDaGFuZ2UgdGhlIHRp
bWUgYmFzZWQgY2FjaGluZyBtZWNoYW5pc20gdG8gYSBtYWlubG9vcCBpdGVyYXRpb24gYmFzZWQg
b25lLiBEaXJlY3RseSBxdWVyeSB0aGUgc2lua3MgaW5zdGVhZCBvZiB0aGUgcGlwZWxpbmUgZm9y
IHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojphc3luY1N0YXRlQ2hhbmdlRG9uZSk6IEludmFsaWRhdGUgdGhlIE9wdGlvbmFsLCBpbnN0ZWFk
IG9mIHNldHRpbmcgYW4gaW52YWxpZCBNZWRpYVRpbWUuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRFbmQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGVyZm9ybVRhc2tB
dE1lZGlhVGltZSk6IENyZWF0ZSBhIFBlbmRpbmdUYXNrIHdoZW4gdGhlIG1lZGlhIGlzIGN1cnJl
bnRseSBwbGF5aW5nLiBUaGF0IHRhc2sgd2lsbCBydW4gYnkgaXRzZWxmIGF0IHRoZSB0YXJnZXQg
dGltZS4gVGhlIEhUTUxNZWRpYUVsZW1lbnQgcGVyaW9kaWMgdXBkYXRlIHdpbGwgYWxyZWFkeSB0
YWtlIGNhcmUgaWYgdGhlIG1lZGlhIGlzbid0IGN1cnJlbnRseSBwbGF5aW5nLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjppbnZhbGlkYXRlQ2FjaGVkUG9z
aXRpb24gY29uc3QpOiBSZXNldCBPcHRpb25hbDxNZWRpYVRpbWU+IG1fY2FjaGVkVGltZS4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aW52YWxpZGF0ZUNh
Y2hlZFBvc2l0aW9uT25OZXh0SXRlcmF0aW9uIGNvbnN0KTogRW5xdWV1ZSBhbiBpbnZhbGlkYXRp
b24gb24gdGhlIG5leHQgbWFpbmxvb3AgaXRlcmF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0cmlnZ2VyUmVwYWludCk6IENoZWNrIGlmIHRoZSBQ
ZW5kaW5nVGFzayBuZWVkcyB0byBiZSBydW4sIHVzaW5nIHRoZSBzdHJlYW1pbmcgdGltZSBvZiB0
aGUgbGFzdCByZW5kZXJlZCBzYW1wbGUgYXMgYW4gYXBwcm94aW1hdGUgd2F5IHRvIGdldCB0aGUg
cG9zaXRpb24uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpQZW5kaW5nVGFzazo6UGVuZGluZ1Rhc2spOiBOZXcgY2xhc3MgdG8gc3Rv
cmUgdGhlIGxhc3QgKGFuZCBvbmx5KSB0YXNrIHRvIGJlIHBlcmZvcm1lZCBhbmQgdGhlIG1lZGlh
IHRpbWUgd2hlbiBpdCBzaG91bGQgYmUgcGVyZm9ybWVkLgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpQZW5kaW5nVGFzazo6cnVuSWZOZWVkZWQpOiBDaGVj
a3MgaWYgdGhlIHRpbWUgdG8gcnVuIHRoZSB0YXNrIGhhcyBjb21lLCBhbmQgc2NoZWR1bGVzIGl0
IHRvIGJlIHJ1biBvbiB0aGUgbWFpbiB0aHJlYWQgaWYgdGhhdCdzIHRoZSBjYXNlLCBjbGVhcmlu
ZyB0aGUgdGFzayBhZnRlcndhcmRzLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpQZW5kaW5nVGFzazo6Y2xlYXIpOiBDbGVhcnMgdGhlIHRhc2tzIGJ5IHNl
dHRpbmcgdGhlIHRhcmdldCB0aW1lIHRvIGludmFsaWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OlBlbmRpbmdUYXNrOjppc0VtcHR5KTogQ2hlY2tzIGlm
IHRoZSB0YXJnZXQgdGltZSBpcyBpbnZhbGlkLCBtZWFuaW5nIHRoYXQgdGhlIHRhc2sgaXMgZW1w
dHkvaW52YWxpZCBhbmQgc2hvdWxkbid0IHRyaWdnZXIgYW55IGFjdGlvbi4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aW52YWxpZGF0ZUNhY2hlZFBvc2l0
aW9uKTogSW1wbGVtZW50YXRpb24gbW92ZWQgdG8gdGhlIGNwcCBmaWxlLgorCiAyMDIxLTA1LTA2
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OKHIyNzEzNDEpOiBtZWRpYS9tZWRpYS1mdWxsc2NyZWVuLWlubGluZS5odG1sIHRpbWVz
IG91dCBvbiBHVEsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKaW5kZXggMzA2Zjc1NGU2ZjI1MDRlODhkZDZjNTY0M2U3MzFlMjg3YTI2ZjJlMS4uMDYx
YmJhODA1ODEyM2UxOTkyODAyNTEyYmQ3NTkwZGY4OGRjZThkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTE0Niw3ICsxNDYsNiBAQCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihN
ZWRpYVBsYXllciogcGxheWVyKQogICAgIDogbV9ub3RpZmllcihNYWluVGhyZWFkTm90aWZpZXI8
TWFpblRocmVhZE5vdGlmaWNhdGlvbj46OmNyZWF0ZSgpKQogICAgICwgbV9wbGF5ZXIocGxheWVy
KQogICAgICwgbV9yZWZlcnJlcihwbGF5ZXItPnJlZmVycmVyKCkpCi0gICAgLCBtX2NhY2hlZFBv
c2l0aW9uKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKICAgICAsIG1fY2FjaGVkRHVyYXRpb24o
TWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQogICAgICwgbV9zZWVrVGltZShNZWRpYVRpbWU6Omlu
dmFsaWRUaW1lKCkpCiAgICAgLCBtX3RpbWVPZk92ZXJsYXBwaW5nU2VlayhNZWRpYVRpbWU6Omlu
dmFsaWRUaW1lKCkpCkBAIC0xMzQ0LDIyICsxMzQzLDMxIEBAIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnBsYXliYWNrUG9zaXRpb24oKSBjb25zdAogICAgIGlmIChtX2lz
RW5kUmVhY2hlZCkKICAgICAgICAgcmV0dXJuIG1fcGxheWJhY2tSYXRlID4gMCA/IGR1cmF0aW9u
TWVkaWFUaW1lKCkgOiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAKLSAgICAvLyBUaGlzIGNvbnN0
YW50IHNob3VsZCByZW1haW4gbG93ZXIgdGhhbiBIVE1MTWVkaWFFbGVtZW50J3MgbWF4VGltZXVw
ZGF0ZUV2ZW50RnJlcXVlbmN5LgotICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIHBvc2l0aW9uQ2Fj
aGVUaHJlc2hvbGQgPSAyMDBfbXM7Ci0gICAgU2Vjb25kcyBub3cgPSBXVEY6OldhbGxUaW1lOjpu
b3coKS5zZWNvbmRzU2luY2VFcG9jaCgpOwotICAgIGlmIChtX2xhc3RRdWVyeVRpbWUgJiYgKG5v
dyAtIG1fbGFzdFF1ZXJ5VGltZS52YWx1ZSgpKSA8IHBvc2l0aW9uQ2FjaGVUaHJlc2hvbGQgJiYg
bV9jYWNoZWRQb3NpdGlvbi5pc1ZhbGlkKCkpIHsKLSAgICAgICAgR1NUX1RSQUNFX09CSkVDVChw
aXBlbGluZSgpLCAiUmV0dXJuaW5nIGNhY2hlZCBwb3NpdGlvbjogJXMiLCBtX2NhY2hlZFBvc2l0
aW9uLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIHJldHVybiBtX2NhY2hlZFBv
c2l0aW9uOworICAgIGlmIChtX2NhY2hlZFBvc2l0aW9uLmhhc1ZhbHVlKCkpIHsKKyAgICAgICAg
R1NUX1RSQUNFX09CSkVDVChwaXBlbGluZSgpLCAiUmV0dXJuaW5nIGNhY2hlZCBwb3NpdGlvbjog
JXMiLCBtX2NhY2hlZFBvc2l0aW9uLnZhbHVlKCkudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgcmV0dXJuIG1fY2FjaGVkUG9zaXRpb24udmFsdWUoKTsKICAgICB9CiAKLSAgICBt
X2xhc3RRdWVyeVRpbWUgPSBub3c7Ci0KICAgICAvLyBQb3NpdGlvbiBpcyBvbmx5IGF2YWlsYWJs
ZSBpZiBubyBhc3luYyBzdGF0ZSBjaGFuZ2UgaXMgZ29pbmcgb24gYW5kIHRoZSBzdGF0ZSBpcyBl
aXRoZXIgcGF1c2VkIG9yIHBsYXlpbmcuCiAgICAgZ2ludDY0IHBvc2l0aW9uID0gR1NUX0NMT0NL
X1RJTUVfTk9ORTsKLSAgICBHc3RRdWVyeSogcXVlcnkgPSBnc3RfcXVlcnlfbmV3X3Bvc2l0aW9u
KEdTVF9GT1JNQVRfVElNRSk7Ci0gICAgaWYgKGdzdF9lbGVtZW50X3F1ZXJ5KG1fcGlwZWxpbmUu
Z2V0KCksIHF1ZXJ5KSkKLSAgICAgICAgZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKHF1ZXJ5LCAw
LCAmcG9zaXRpb24pOwotICAgIGdzdF9xdWVyeV91bnJlZihxdWVyeSk7CisKKyAgICAvLyBBc2tp
bmcgZGlyZWN0bHkgdG8gdGhlIHNpbmtzIGFuZCBjaG9vc2luZyB0aGUgaGlnaGVzdCB2YWx1ZSBp
cyBmYXN0ZXIgdGhhbiBhc2tpbmcgdG8gdGhlIHBpcGVsaW5lLgorICAgIEdSZWZQdHI8R3N0UXVl
cnk+IHF1ZXJ5ID0gYWRvcHRHUmVmKGdzdF9xdWVyeV9uZXdfcG9zaXRpb24oR1NUX0ZPUk1BVF9U
SU1FKSk7CisgICAgaWYgKG1fYXVkaW9TaW5rICYmIGdzdF9lbGVtZW50X3F1ZXJ5KG1fYXVkaW9T
aW5rLmdldCgpLCBxdWVyeS5nZXQoKSkpIHsKKyAgICAgICAgZ2ludDY0IGF1ZGlvUG9zaXRpb24g
PSBHU1RfQ0xPQ0tfVElNRV9OT05FOworICAgICAgICBnc3RfcXVlcnlfcGFyc2VfcG9zaXRpb24o
cXVlcnkuZ2V0KCksIDAsICZhdWRpb1Bvc2l0aW9uKTsKKyAgICAgICAgaWYgKEdTVF9DTE9DS19U
SU1FX0lTX1ZBTElEKGF1ZGlvUG9zaXRpb24pKQorICAgICAgICAgICAgcG9zaXRpb24gPSBhdWRp
b1Bvc2l0aW9uOworICAgICAgICBxdWVyeSA9IGFkb3B0R1JlZihnc3RfcXVlcnlfbmV3X3Bvc2l0
aW9uKEdTVF9GT1JNQVRfVElNRSkpOworICAgIH0KKyAgICBpZiAobV92aWRlb1NpbmsgJiYgZ3N0
X2VsZW1lbnRfcXVlcnkobV92aWRlb1NpbmsuZ2V0KCksIHF1ZXJ5LmdldCgpKSkgeworICAgICAg
ICBnaW50NjQgdmlkZW9Qb3NpdGlvbiA9IEdTVF9DTE9DS19USU1FX05PTkU7CisgICAgICAgIGdz
dF9xdWVyeV9wYXJzZV9wb3NpdGlvbihxdWVyeS5nZXQoKSwgMCwgJnZpZGVvUG9zaXRpb24pOwor
ICAgICAgICBpZiAoR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQodmlkZW9Qb3NpdGlvbikgJiYgKCFH
U1RfQ0xPQ0tfVElNRV9JU19WQUxJRChwb3NpdGlvbikKKyAgICAgICAgICAgIHx8IChtX3BsYXli
YWNrUmF0ZSA+PSAwICYmIHZpZGVvUG9zaXRpb24gPiBwb3NpdGlvbikKKyAgICAgICAgICAgIHx8
IChtX3BsYXliYWNrUmF0ZSA8IDAgJiYgdmlkZW9Qb3NpdGlvbiA8IHBvc2l0aW9uKSkpCisgICAg
ICAgICAgICBwb3NpdGlvbiA9IHZpZGVvUG9zaXRpb247CisgICAgfQogCiAgICAgR3N0Q2xvY2tU
aW1lIGdzdHJlYW1lclBvc2l0aW9uID0gc3RhdGljX2Nhc3Q8R3N0Q2xvY2tUaW1lPihwb3NpdGlv
bik7CiAgICAgR1NUX1RSQUNFX09CSkVDVChwaXBlbGluZSgpLCAiUG9zaXRpb24gJSIgR1NUX1RJ
TUVfRk9STUFUICIsIGNhbkZhbGxCYWNrVG9MYXN0RmluaXNoZWRTZWVrUG9zaXRpb246ICVzIiwg
R1NUX1RJTUVfQVJHUyhnc3RyZWFtZXJQb3NpdGlvbiksIGJvb2xGb3JQcmludGluZyhtX2NhbkZh
bGxCYWNrVG9MYXN0RmluaXNoZWRTZWVrUG9zaXRpb24pKTsKQEAgLTEzNzIsNiArMTM4MCw3IEBA
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBsYXliYWNrUG9zaXRpb24o
KSBjb25zdAogICAgICAgICBwbGF5YmFja1Bvc2l0aW9uID0gbV9zZWVrVGltZTsKIAogICAgIG1f
Y2FjaGVkUG9zaXRpb24gPSBwbGF5YmFja1Bvc2l0aW9uOworICAgIGludmFsaWRhdGVDYWNoZWRQ
b3NpdGlvbk9uTmV4dEl0ZXJhdGlvbigpOwogICAgIHJldHVybiBwbGF5YmFja1Bvc2l0aW9uOwog
fQogCkBAIC0yMjMyLDcgKzIyNDEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6YXN5bmNTdGF0ZUNoYW5nZURvbmUoKQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIltTZWVrXSBzZWVrZWQgdG8gJXMiLCB0b1N0cmlu
ZyhtX3NlZWtUaW1lKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgIG1faXNTZWVraW5nID0g
ZmFsc2U7Ci0gICAgICAgICAgICBtX2NhY2hlZFBvc2l0aW9uID0gTWVkaWFUaW1lOjppbnZhbGlk
VGltZSgpOworICAgICAgICAgICAgaW52YWxpZGF0ZUNhY2hlZFBvc2l0aW9uKCk7CiAgICAgICAg
ICAgICBpZiAobV90aW1lT2ZPdmVybGFwcGluZ1NlZWsgIT0gbV9zZWVrVGltZSAmJiBtX3RpbWVP
Zk92ZXJsYXBwaW5nU2Vlay5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgICAgICBzZWVrKG1fdGlt
ZU9mT3ZlcmxhcHBpbmdTZWVrKTsKICAgICAgICAgICAgICAgICBtX3RpbWVPZk92ZXJsYXBwaW5n
U2VlayA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKQEAgLTI0MTgsNyArMjQyNyw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMoKQogICAgICAgICAg
ICAgbV9pc1NlZWtQZW5kaW5nID0gZmFsc2U7CiAgICAgICAgICAgICBtX2lzU2Vla2luZyA9IGRv
U2VlayhtX3NlZWtUaW1lLCBtX3BsYXllci0+cmF0ZSgpLCBzdGF0aWNfY2FzdDxHc3RTZWVrRmxh
Z3M+KEdTVF9TRUVLX0ZMQUdfRkxVU0ggfCBHU1RfU0VFS19GTEFHX0FDQ1VSQVRFKSk7CiAgICAg
ICAgICAgICBpZiAoIW1faXNTZWVraW5nKSB7Ci0gICAgICAgICAgICAgICAgbV9jYWNoZWRQb3Np
dGlvbiA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKKyAgICAgICAgICAgICAgICBpbnZhbGlk
YXRlQ2FjaGVkUG9zaXRpb24oKTsKICAgICAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJbU2Vla10gc2Vla2luZyB0byAlcyBmYWlsZWQiLCB0b1N0cmluZyhtX3NlZWtU
aW1lKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjUzMCw3
ICsyNTM5LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9j
YXRpb24oKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkRW5kKCkKIHsK
LSAgICBtX2NhY2hlZFBvc2l0aW9uID0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOworICAgIGlu
dmFsaWRhdGVDYWNoZWRQb3NpdGlvbigpOwogICAgIE1lZGlhVGltZSBub3cgPSBjdXJyZW50TWVk
aWFUaW1lKCk7CiAgICAgR1NUX0lORk9fT0JKRUNUKHBpcGVsaW5lKCksICJQbGF5YmFjayBlbmRl
ZCwgY3VycmVudE1lZGlhVGltZSA9ICVzLCBkdXJhdGlvbiA9ICVzIiwgbm93LnRvU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgZHVyYXRpb25NZWRpYVRpbWUoKS50b1N0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwogICAgIG1faXNFbmRSZWFjaGVkID0gdHJ1ZTsKQEAgLTI4NDAsNiArMjg0OSwxOCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0
ZUNoYW5nZWQoKQogICAgIG1fY2FuUmVuZGVyaW5nQmVBY2NlbGVyYXRlZCA9IG1fcGxheWVyICYm
IG1fcGxheWVyLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpOwogfQogCitib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShGdW5jdGlv
bjx2b2lkKCk+JiYgdGFzaywgY29uc3QgTWVkaWFUaW1lJiB0aW1lKQoreworICAgIC8vIElnbm9y
ZSB0aGUgY2FzZXMgd2hlbiB0aGUgdGltZSBpc24ndCBtYXJjaGluZyBvbiBvciB0aGUgcG9zaXRp
b24gaXMgdW5rbm93bi4KKyAgICBNZWRpYVRpbWUgY3VycmVudFRpbWUgPSBwbGF5YmFja1Bvc2l0
aW9uKCk7CisgICAgaWYgKCFtX3BpcGVsaW5lIHx8IG1fZGlkRXJyb3JPY2N1ciB8fCBtX2lzU2Vl
a2luZyB8fCBtX2lzUGF1c2VkIHx8ICFtX3BsYXliYWNrUmF0ZSB8fCAhY3VycmVudFRpbWUuaXNW
YWxpZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3BlbmRpbmdUYXNrID0gUGVu
ZGluZ1Rhc2soV1RGTW92ZSh0YXNrKSwgdGltZSwgbV9wZW5kaW5nVGFza011dGV4KTsKKyAgICBt
X3BlbmRpbmdUYXNrLnJ1bklmTmVlZGVkKGN1cnJlbnRUaW1lLCBtX3BsYXliYWNrUmF0ZSwgbV9w
ZW5kaW5nVGFza011dGV4KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogI2lmIFVTRShURVhUVVJF
X01BUFBFUl9HTCkKIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CkBAIC0zMDY1LDEwICszMDg2LDMxIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVWaWRlb1NpemVBbmRPcmllbnRhdGlvbkZy
b21DYXBzKGNvbnN0IEdzCiAgICAgbV9wbGF5ZXItPnNpemVDaGFuZ2VkKCk7CiB9CiAKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjppbnZhbGlkYXRlQ2FjaGVkUG9zaXRpb24oKSBj
b25zdAoreworICAgIG1fY2FjaGVkUG9zaXRpb24ucmVzZXQoKTsKK30KKwordm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmludmFsaWRhdGVDYWNoZWRQb3NpdGlvbk9uTmV4dEl0ZXJh
dGlvbigpIGNvbnN0Cit7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBpbnZhbGlkYXRlQ2FjaGVkUG9zaXRpb24oKTsKKyAg
ICB9KTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRyaWdnZXJSZXBh
aW50KEdzdFNhbXBsZSogc2FtcGxlKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwog
CisgICAgR3N0QnVmZmVyKiBidWZmZXIgPSBnc3Rfc2FtcGxlX2dldF9idWZmZXIoc2FtcGxlKTsK
KyAgICBpZiAoYnVmZmVyICYmIEdTVF9CVUZGRVJfUFRTX0lTX1ZBTElEKGJ1ZmZlcikpIHsKKyAg
ICAgICAgLy8gSGV1cmlzdGljIHRvIGF2b2lkIGFza2luZyBmb3IgcGxheWJhY2tQb3NpdGlvbigp
IGZyb20gYSBub24tbWFpbiB0aHJlYWQuCisgICAgICAgIE1lZGlhVGltZSBjdXJyZW50VGltZSA9
IE1lZGlhVGltZShnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZShnc3Rfc2FtcGxlX2dldF9zZWdt
ZW50KHNhbXBsZSksIEdTVF9GT1JNQVRfVElNRSwgR1NUX0JVRkZFUl9QVFMoYnVmZmVyKSksIEdT
VF9TRUNPTkQpOworICAgICAgICBtX3BlbmRpbmdUYXNrLnJ1bklmTmVlZGVkKGN1cnJlbnRUaW1l
LCBtX3BsYXliYWNrUmF0ZSwgbV9wZW5kaW5nVGFza011dGV4KTsKKyAgICB9CisKICAgICBib29s
IHNob3VsZFRyaWdnZXJSZXNpemU7CiAgICAgewogICAgICAgICBhdXRvIHNhbXBsZUxvY2tlciA9
IGhvbGRMb2NrKG1fc2FtcGxlTXV0ZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5oCmluZGV4IDFhOGExY2RmYzk5ZmIxMzIyNzMwMmQzZGY1N2RkMGYyNzQw
ZDk2MTkuLjEyMDIzNWJjYTZjZTI0MDIxZDc0MjM5YmU3YTk5MTJkYTBiOTRhMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTE4NCw2ICsxODQs
NyBAQCBwdWJsaWM6CiAKICAgICBPcHRpb25hbDxWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3M+
IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygpIGZpbmFsOwogICAgIHZvaWQgYWNjZWxlcmF0
ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICBib29sIHBlcmZvcm1UYXNrQXRN
ZWRpYVRpbWUoRnVuY3Rpb248dm9pZCgpPiYmLCBjb25zdCBNZWRpYVRpbWUmKSBvdmVycmlkZTsK
IAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9y
bUxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0zMDMsNyArMzA0LDggQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgc2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzKEdPYmplY3QqKTsKIAogICAgIHZpcnR1
YWwgYm9vbCBkb1NlZWsoY29uc3QgTWVkaWFUaW1lJiBwb3NpdGlvbiwgZmxvYXQgcmF0ZSwgR3N0
U2Vla0ZsYWdzKTsKLSAgICB2b2lkIGludmFsaWRhdGVDYWNoZWRQb3NpdGlvbigpIHsgbV9sYXN0
UXVlcnlUaW1lLnJlc2V0KCk7IH0KKyAgICB2b2lkIGludmFsaWRhdGVDYWNoZWRQb3NpdGlvbigp
IGNvbnN0OworICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlZFBvc2l0aW9uT25OZXh0SXRlcmF0aW9u
KCkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXNDYWxs
YmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqLCBHT2JqZWN0Kik7CiAKQEAgLTMyMyw3
ICszMjUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmPE1haW5UaHJlYWROb3RpZmllcjxNYWluVGhy
ZWFkTm90aWZpY2F0aW9uPj4gbV9ub3RpZmllcjsKICAgICBNZWRpYVBsYXllciogbV9wbGF5ZXI7
CiAgICAgU3RyaW5nIG1fcmVmZXJyZXI7Ci0gICAgbXV0YWJsZSBNZWRpYVRpbWUgbV9jYWNoZWRQ
b3NpdGlvbjsKKyAgICBtdXRhYmxlIE9wdGlvbmFsPE1lZGlhVGltZT4gbV9jYWNoZWRQb3NpdGlv
bjsKICAgICBtdXRhYmxlIE1lZGlhVGltZSBtX2NhY2hlZER1cmF0aW9uOwogICAgIGJvb2wgbV9j
YW5GYWxsQmFja1RvTGFzdEZpbmlzaGVkU2Vla1Bvc2l0aW9uIHsgZmFsc2UgfTsKICAgICBib29s
IG1faXNDaGFuZ2luZ1JhdGUgeyBmYWxzZSB9OwpAQCAtMzg4LDYgKzM5MCw0NiBAQCBwcm90ZWN0
ZWQ6CiAgICAgT3B0aW9uYWw8R3N0VmlkZW9EZWNvZGVyUGxhdGZvcm0+IG1fdmlkZW9EZWNvZGVy
UGxhdGZvcm07CiAKIHByaXZhdGU6CisgICAgY2xhc3MgUGVuZGluZ1Rhc2sgeworICAgIHB1Ymxp
YzoKKyAgICAgICAgUGVuZGluZ1Rhc2soKSA9IGRlbGV0ZTsKKyAgICAgICAgUGVuZGluZ1Rhc2so
TG9jayYgbXV0ZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG11
dGV4KTsKKyAgICAgICAgICAgIGNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgUGVuZGluZ1Rh
c2soRnVuY3Rpb248dm9pZCgpPiYmIHRhc2ssIGNvbnN0IE1lZGlhVGltZSYgdGFyZ2V0VGltZSwg
TG9jayYgbXV0ZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG11
dGV4KTsKKyAgICAgICAgICAgIG1fdGFyZ2V0VGltZSA9IHRhcmdldFRpbWU7CisgICAgICAgICAg
ICBtX3Rhc2sgPSBXVEZNb3ZlKHRhc2spOworICAgICAgICAgICAgaWYgKGlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBjbGVhcigpOworICAgICAgICB9CisgICAgICAgIHZvaWQgcnVuSWZOZWVk
ZWQoY29uc3QgTWVkaWFUaW1lJiBjdXJyZW50VGltZSwgY29uc3QgZmxvYXQmIHBsYXliYWNrUmF0
ZSwgTG9jayYgbXV0ZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG11dGV4KTsKKyAgICAgICAgICAgIGlmIChpc0VtcHR5KCkgfHwgIWN1cnJlbnRUaW1lLmlzRmlu
aXRlKCkgfHwgKHBsYXliYWNrUmF0ZSA+PSAwICYmIGN1cnJlbnRUaW1lIDwgbV90YXJnZXRUaW1l
KSB8fCAocGxheWJhY2tSYXRlIDwgMCAmJiBjdXJyZW50VGltZSA+IG1fdGFyZ2V0VGltZSkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgRnVuY3Rpb248dm9pZCgpPiB0YXNr
ID0gV1RGTW92ZShtX3Rhc2spOworICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgICAgIGxv
Y2tlci51bmxvY2tFYXJseSgpOworCisgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0
Y2goV1RGTW92ZSh0YXNrKSk7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHZv
aWQgY2xlYXIoKQorICAgICAgICB7CisgICAgICAgICAgICBtX3RhcmdldFRpbWUgPSBNZWRpYVRp
bWU6OmludmFsaWRUaW1lKCk7CisgICAgICAgICAgICBtX3Rhc2sgPSBGdW5jdGlvbjx2b2lkKCk+
KCk7CisgICAgICAgIH0KKyAgICAgICAgYm9vbCBpc0VtcHR5KCkgeyByZXR1cm4gIW1fdGFyZ2V0
VGltZS5pc0Zpbml0ZSgpOyB9CisKKyAgICAgICAgTWVkaWFUaW1lIG1fdGFyZ2V0VGltZTsKKyAg
ICAgICAgRnVuY3Rpb248dm9pZCgpPiBtX3Rhc2s7CisgICAgfTsKKwogICAgIGJvb2wgaXNQbGF5
ZXJTaHV0dGluZ0Rvd24oKSBjb25zdCB7IHJldHVybiBtX2lzUGxheWVyU2h1dHRpbmdEb3duLmxv
YWQoKTsgfQogICAgIE1lZGlhVGltZSBtYXhUaW1lTG9hZGVkKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRWaWRlb1NvdXJjZU9yaWVudGF0aW9uKEltYWdlT3JpZW50YXRpb24pOwpAQCAtNDkwLDcgKzUz
Miw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSB1bnNpZ25lZCBsb25nIGxvbmcgbV90b3RhbEJ5
dGVzIHsgMCB9OwogICAgIFVSTCBtX3VybDsKICAgICBib29sIG1fc2hvdWxkUHJlc2VydmVQaXRj
aCB7IGZhbHNlIH07Ci0gICAgbXV0YWJsZSBPcHRpb25hbDxTZWNvbmRzPiBtX2xhc3RRdWVyeVRp
bWU7CiAgICAgYm9vbCBtX2lzTGVnYWN5UGxheWJpbjsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogICAgIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IG1fc3RyZWFtUHJpdmF0ZTsKQEAgLTUz
NSw2ICs1NzYsOSBAQCBwcml2YXRlOgogICAgIC8vIFRoaXMgaXMgc2V0IHRvIHRydWUgaWYgbm8g
dmlkZW9mbGlwIGVsZW1lbnQgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIHBpcGVsaW5lLgogICAgIGJv
b2wgbV9zaG91bGRIYW5kbGVPcmllbnRhdGlvblRhZ3MgeyBmYWxzZSB9OwogCisgICAgTG9jayBt
X3BlbmRpbmdUYXNrTXV0ZXg7CisgICAgUGVuZGluZ1Rhc2sgbV9wZW5kaW5nVGFzayA9IFBlbmRp
bmdUYXNrKG1fcGVuZGluZ1Rhc2tNdXRleCk7CisKIHByaXZhdGU6CiAjaWYgVVNFKFdQRV9WSURF
T19QTEFORV9ESVNQTEFZX0RNQUJVRikKICAgICBHVW5pcXVlUHRyPHN0cnVjdCB3cGVfdmlkZW9f
cGxhbmVfZGlzcGxheV9kbWFidWZfc291cmNlPiBtX3dwZVZpZGVvUGxhbmVEaXNwbGF5RG1hQnVm
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGQ0MDc0MGE1YjBhODk3YTUzZjQ0OGE0YTM4YWViNzM3NjAxZGY2MDcuLjU2YTUw
OTRlYzRiZWQxNmU3Y2VmNGZhY2ViMDIzNjc2MTk5NzU5ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAyMS0wNS0xMiAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtHVEtdIExheW91dCB0ZXN0IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1t
aXNzaW5nLmh0bWwgaXMgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkxMDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcHBl
ZCB0ZXN0LgorCiAyMDIxLTA1LTA2ICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmUtaW1wb3J0IGNzcy9jc3Mtd2lsbC1jaGFuZ2UgV1BUcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGMxN2NiYzU3NTU4OWVjMzdkY2NkYzEz
YjVmZGI4MDFhZDI4YjMzNDQuLmRjMTZhNDg5ZWRhMjMxMGM0ZjMwMmZmNzVkOTFmMWNhNWY2NDc5
MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIy
NTMsOCArMjI1Myw2IEBAIHdlYmtpdC5vcmcvYi8xODY2MzggbWVkaWEvdmlkZW8tcmVtb3RlLWNv
bnRyb2wtcGxheXBhdXNlLmh0bWwgWyBGYWlsdXJlIFRpbWVvdXQKIHdlYmtpdC5vcmcvYi8xODY2
NjQgbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9i
LzE4NjY3OSBtZWRpYS92aWRlby1jdXJyZW50VGltZS1kZWxheS5odG1sIFsgQ3Jhc2ggUGFzcyBU
aW1lb3V0IF0KIAotd2Via2l0Lm9yZy9iLzE5MTAwNCBtZWRpYS90cmFjay90cmFjay1jdWUtbWlz
c2luZy5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xOTg4MjcgbWVkaWEvbWVkaWEt
ZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5lLmh0bWwgWyBUaW1lb3V0IFBhc3MgQ3Jhc2ggXQog
d2Via2l0Lm9yZy9iLzE5ODgyNyBtZWRpYS92aWRlby1lbmRlZC1ldmVudC1zbG93LW1vdGlvbi1w
bGF5YmFjay5odG1sIFsgVGltZW91dCBQYXNzIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428626</attachid>
            <date>2021-05-14 09:15:54 -0700</date>
            <delta_ts>2021-05-25 05:14:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191004-20210514181553.patch</filename>
            <type>text/plain</type>
            <size>18424</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU1OWFmNDI1Y2FhMmU5
MTkzMDFiN2MyYzliNTc3MGQxMGZjNmIyMC4uOGQ4MzBlNjg5MDYxMzdlYzk2ZjVkNDc1NDU4MGU5
OTY0NzBiNzk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTA1LTE0ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dU
S10gTGF5b3V0IHRlc3QgbWVkaWEvdHJhY2svdHJhY2stY3VlLW1pc3NpbmcuaHRtbCBpcyBmYWls
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEw
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnRlZCB0aGUgbWlzc2luZyBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKCkgbWV0aG9kLCBuZWVk
ZWQgYnkgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcygpCisgICAg
ICAgIHRvIHRyaWdnZXIgY3VzdG9tIHVwZGF0ZXMgYXQgdGltZXMgdGhhdCBkb24ndCBmaXQgaW4g
dGhlIHJlZ3VsYXIgdXBkYXRlcyBzdGF0aWNhbGx5IHNjaGVkdWxlZCBldmVyeSAyNTAgbXMuCisg
ICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHRyaWdnZXJSZXBhaW50KCkgZm9yIHN5bmNo
cm9uaXphdGlvbiBpbnN0ZWFkIG9mIHRpbWVycywgY29tcHV0aW5nIHRoZSBjdXJyZW50IHN0cmVh
bSB0aW1lCisgICAgICAgIG9mIHRoZSBsYXN0IHZpZGVvIGZyYW1lIHRvIGJlIHBhaW50ZWQgYXMg
YW4gaGV1cmlzdGljLCBpbnN0ZWFkIG9mIGFza2luZyB0aGUgcG9zaXRpb24gdG8gdGhlIHBpcGVs
aW5lIChtb3JlCisgICAgICAgIGV4cGVuc2l2ZSBhbmQgcmlza3kgZnJvbSBhIG5vbi1tYWluIHRo
cmVhZCkuIElmIHRoZSBzdHJlYW0gdGltZSBpcyBiZXlvbmQgdGhlIHRhc2sgdGFyZ2V0IHRpbWUs
IHRoZSB0YXNrIGlzIHJ1bgorICAgICAgICBvbiB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAg
U3RpbGwsIHRoYXQgaXMgbm90IGVub3VnaC4gVGhlIHRhc2sgc2NoZWR1bGVkIGJ5IEhUTUxNZWRp
YUVsZW1lbnQgcmVxdWlyZXMgY3VycmVudFRpbWUoKSB0byByZXR1cm4gYW4gYWNjdXJhdGUKKyAg
ICAgICAgdmFsdWUsIG5vdCBvbmUgY2FjaGVkIGV2ZXJ5IDIwMG1zLiBtX2NhY2hlZFRpbWUgbmVl
ZHMgdG8gYmUgdXBkYXRlZCBtb3JlIGZyZXF1ZW50bHkgKGF0IGxlYXN0IG9uY2UgZXZlcnkgbWFp
bgorICAgICAgICBsb29wIGl0ZXJhdGlvbiksIGJ1dCBzdGlsbCByZW1haW4gY29uc2lzdGVudCBh
bG9uZyB0aGUgd2hvbGUgaXRlcmF0aW9uLiBUaGlzIGlzIGFjaGlldmVkIGJ5IGVucXVlaW5nIGFu
CisgICAgICAgIGludmFsaWRhdGlvbiB0YXNrICh0byBiZSBydW4gYXQgdGhlIGVuZCBvZiB0aGUg
Y3VycmVudCBpdGVyYXRpb24pIGVhY2ggdGltZSB0aGUgY2FjaGVkIHZhbHVlIGlzIHNldCB3aXRo
IGEgdmFsdWUKKyAgICAgICAgY29taW5nIGZyb20gYSBwb3NpdGlvbiBxdWVyeS4KKworICAgICAg
ICBUaGUgY2hhbmdlcyBpbiB0aGUgbV9jYWNoZWRUaW1lIG1hbmFnZW1lbnQgYWRkIGFuIG92ZXJo
ZWFkIGJldHdlZW4gMTczICh0cmFjay1jdWUtbWlzc2luZyB0ZXN0KSBhbmQgNDI2JQorICAgICAg
ICAocmVndWxhciB2aWRlbyBwbGF5YmFjayB3aXRob3V0IHN1YnRpdGxlcykgaW4gdGhlIHJ1biB0
aW1lIHNwZW50IHF1ZXJ5aW5nIHRoZSBwb3NpdGlvbiB0byB0aGUgcGlwZWxpbmUuIEFzIGFuCisg
ICAgICAgIG9wdGltaXphdGlvbiwgdGhlIHBvc2l0aW9uIGlzIG5vdyBkaXJlY3RseSBxdWVyaWVk
IHRvIHRoZSBhdWRpbyBhbmQgdmlkZW8gc2luayBhbmQgdGhlIGhpZ2hlc3QgKGFjY29yZGluZyB0
byB0aGUKKyAgICAgICAgY3VycmVudCBwbGF5YmFjayBkaXJlY3Rpb24pIGlzIHJldHVybmVkLiBU
aGlzIHJlZHVjZXMgdGhlIG92ZXJoZWFkIHRvIGp1c3QgNjMlIGluIHRoZSByZWd1bGFyIHBsYXli
YWNrIHdpdGhvdXQKKyAgICAgICAgc3VidGl0bGVzIGNhc2UuCisKKyAgICAgICAgVGhlIGlubmVy
IFRhc2tBdE1lZGlhVGltZVNjaGVkdWxlciBjbGFzcyBpcyB1c2VkIGZvciB0YXNrIHRhcmdldCB0
aW1lIGV2YWx1YXRpb24uIEFzIGl0IGNhbiBiZSB1c2VkIGZyb20gdGhlCisgICAgICAgIG1haW4g
dGhyZWFkIGFuZCBmcm9tIGEgc2Vjb25kYXJ5IG9uZSBpbiB0cmlnZ2VyUmVwYWludCgpLCBpdCdz
IHdyYXBwZWQgaW4gYSBEYXRhTXV0ZXggdG8gbWFuYWdlIGNvbmN1cnJlbnQKKyAgICAgICAgYWNj
ZXNzLiBUaGUgb3JpZ2luYWwgdGFzayBpcyByZXR1cm5lZCB0byB0aGUgY2FsbGVyIG9mIHNjaGVk
dWxlSWZUaW1lUmVhY2hlZCgpIHdoZW4gdGhlIGN1cnJlbnRUaW1lIGlzIGJleW9uZAorICAgICAg
ICB0aGUgdGFyZ2V0IHRpbWUuIFRoZSBjYWxsZXIgaXMgdGhlbiByZXNwb25zaWJsZSBvZiBydW5u
aW5nIHRoZSB0YXNrIGV4dGVybmFsbHkgaW4gdGhlIG1haW4gdGhyZWFkLCBvdXQgb2YgdGhlCisg
ICAgICAgIGluZmx1ZW5jZSBvZiB0aGUgRGF0YU11dGV4IGxvY2sgKHRoZSB0YXNrIGNhbiBiZSBl
eHBlbnNpdmUgYW5kIHRoZSBsb2NrIGlzIG9ubHkgbmVlZGVkIHRvIGV2YWx1YXRlIHRoZSB0cmln
Z2VyaW5nCisgICAgICAgIGNvbmRpdGlvbnMuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIpOiBEb24ndCBpbml0
aWFsaXplIG1fY2FjaGVkUG9zaXRpb24sIGFzIGl0J3Mgbm93IGFuIE9wdGlvbmFsIHRoYXQgd2ls
bCBiZSBpbml0aWFsaXplZCBhcyBuby12YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxheWJhY2tQb3NpdGlvbiBjb25zdCk6IENoYW5nZSB0aGUg
dGltZSBiYXNlZCBjYWNoaW5nIG1lY2hhbmlzbSB0byBhIG1haW5sb29wIGl0ZXJhdGlvbiBiYXNl
ZCBvbmUuIERpcmVjdGx5IHF1ZXJ5IHRoZSBzaW5rcyBpbnN0ZWFkIG9mIHRoZSBwaXBlbGluZSBm
b3IgcG9zaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmFzeW5jU3RhdGVDaGFuZ2VEb25lKTogSW52YWxpZGF0ZSB0aGUgT3B0aW9uYWwsIGluc3Rl
YWQgb2Ygc2V0dGluZyBhbiBpbnZhbGlkIE1lZGlhVGltZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZEVuZCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwZXJmb3JtVGFz
a0F0TWVkaWFUaW1lKTogU2V0IHRoZSB0YXNrIG9uIHRoZSBUYXNrQXRNZWRpYVRpbWVTY2hlZHVs
ZXIgd2hlbiB0aGUgbWVkaWEgaXMgY3VycmVudGx5IHBsYXlpbmcuIFRoYXQgdGFzayB3aWxsIHJ1
biBhdCB0aGUgdGFyZ2V0IHRpbWUuIFRoZSBIVE1MTWVkaWFFbGVtZW50IHBlcmlvZGljIHVwZGF0
ZSB3aWxsIGFscmVhZHkgdGFrZSBjYXJlIGlmIHRoZSBtZWRpYSBpc24ndCBjdXJyZW50bHkgcGxh
eWluZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aW52
YWxpZGF0ZUNhY2hlZFBvc2l0aW9uIGNvbnN0KTogUmVzZXQgT3B0aW9uYWw8TWVkaWFUaW1lPiBt
X2NhY2hlZFRpbWUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmludmFsaWRhdGVDYWNoZWRQb3NpdGlvbk9uTmV4dEl0ZXJhdGlvbiBjb25zdCk6IEVucXVl
dWUgYW4gaW52YWxpZGF0aW9uIG9uIHRoZSBuZXh0IG1haW5sb29wIGl0ZXJhdGlvbi4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dHJpZ2dlclJlcGFpbnQp
OiBDaGVjayBpZiB0aGUgUGVuZGluZ1Rhc2sgbmVlZHMgdG8gYmUgcnVuLCB1c2luZyB0aGUgc3Ry
ZWFtaW5nIHRpbWUgb2YgdGhlIGxhc3QgcmVuZGVyZWQgc2FtcGxlIGFzIGFuIGFwcHJveGltYXRl
IHdheSB0byBnZXQgdGhlIHBvc2l0aW9uLCBhbmQgcnVuIGl0IGlmIHRoYXQncyB0aGUgY2FzZS4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OlRhc2tBdE1lZGlhVGltZVNjaGVkdWxlcjo6c2V0VGFzayk6IENvbmZpZ3VyZSB0aGUgb2Jq
ZWN0IHdpdGggdGhlIHJpZ2h0IHRhc2ssIHRhcmdldFRpbWUsIGFuZCBhcHByb3ByaWF0ZSBjb21w
YXJpc29uIG9wZXJhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgcGxheWJhY2sgZGlyZWN0
aW9uLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpUYXNr
QXRNZWRpYVRpbWVTY2hlZHVsZXI6OnNjaGVkdWxlSWZUaW1lUmVhY2hlZCk6IENoZWNrIGlmIHRo
ZSB0YXNrIG11c3QgcnVuLiBJbiB0aGF0IGNhc2UsIHJldHVybiB0aGUgdGFzayBhcyByZXN1bHQg
c28gdGhlIGNhbGxlciBjYW4gcnVuIGl0IGV4dGVybmFsbHkgb24gdGhlIG1haW4gdGhyZWFkIGFm
dGVyIHRoZSBEYXRhTXV0ZXggbG9jayBoYXMgYmVlbiByZWxlYXNlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aW52YWxpZGF0ZUNhY2hlZFBvc2l0aW9u
KTogSW1wbGVtZW50YXRpb24gbW92ZWQgdG8gdGhlIGNwcCBmaWxlLgorCiAyMDIxLTA1LTEzICBS
b2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQ2hlY2sgZm9yIG51bGwgZWxl
bWVudCBpbiBwYWludFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAwMmMyYzMwYTdkMTk0ZWYwOTJl
ODk5MGIxNWYyMmJiZTRhODcwZTRmLi5lYzM2MjNmNzllZWE1MTI1MWQ3Y2QyMmEyM2QwNDljODMx
MzE5OWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcApAQCAtMTQ2LDcgKzE0Niw2IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX25v
dGlmaWVyKE1haW5UaHJlYWROb3RpZmllcjxNYWluVGhyZWFkTm90aWZpY2F0aW9uPjo6Y3JlYXRl
KCkpCiAgICAgLCBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX3JlZmVycmVyKHBsYXllci0+cmVm
ZXJyZXIoKSkKLSAgICAsIG1fY2FjaGVkUG9zaXRpb24oTWVkaWFUaW1lOjppbnZhbGlkVGltZSgp
KQogICAgICwgbV9jYWNoZWREdXJhdGlvbihNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCiAgICAg
LCBtX3NlZWtUaW1lKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKICAgICAsIG1fdGltZU9mT3Zl
cmxhcHBpbmdTZWVrKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKQEAgLTEzNDQsMjIgKzEzNDMs
MzEgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxheWJhY2tQb3Np
dGlvbigpIGNvbnN0CiAgICAgaWYgKG1faXNFbmRSZWFjaGVkKQogICAgICAgICByZXR1cm4gbV9w
bGF5YmFja1JhdGUgPiAwID8gZHVyYXRpb25NZWRpYVRpbWUoKSA6IE1lZGlhVGltZTo6emVyb1Rp
bWUoKTsKIAotICAgIC8vIFRoaXMgY29uc3RhbnQgc2hvdWxkIHJlbWFpbiBsb3dlciB0aGFuIEhU
TUxNZWRpYUVsZW1lbnQncyBtYXhUaW1ldXBkYXRlRXZlbnRGcmVxdWVuY3kuCi0gICAgc3RhdGlj
IGNvbnN0IFNlY29uZHMgcG9zaXRpb25DYWNoZVRocmVzaG9sZCA9IDIwMF9tczsKLSAgICBTZWNv
bmRzIG5vdyA9IFdURjo6V2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCk7Ci0gICAg
aWYgKG1fbGFzdFF1ZXJ5VGltZSAmJiAobm93IC0gbV9sYXN0UXVlcnlUaW1lLnZhbHVlKCkpIDwg
cG9zaXRpb25DYWNoZVRocmVzaG9sZCAmJiBtX2NhY2hlZFBvc2l0aW9uLmlzVmFsaWQoKSkgewot
ICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHBpcGVsaW5lKCksICJSZXR1cm5pbmcgY2FjaGVkIHBv
c2l0aW9uOiAlcyIsIG1fY2FjaGVkUG9zaXRpb24udG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICAgICAgcmV0dXJuIG1fY2FjaGVkUG9zaXRpb247CisgICAgaWYgKG1fY2FjaGVkUG9zaXRp
b24uaGFzVmFsdWUoKSkgeworICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHBpcGVsaW5lKCksICJS
ZXR1cm5pbmcgY2FjaGVkIHBvc2l0aW9uOiAlcyIsIG1fY2FjaGVkUG9zaXRpb24udmFsdWUoKS50
b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gbV9jYWNoZWRQb3NpdGlv
bi52YWx1ZSgpOwogICAgIH0KIAotICAgIG1fbGFzdFF1ZXJ5VGltZSA9IG5vdzsKLQogICAgIC8v
IFBvc2l0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIGlmIG5vIGFzeW5jIHN0YXRlIGNoYW5nZSBpcyBn
b2luZyBvbiBhbmQgdGhlIHN0YXRlIGlzIGVpdGhlciBwYXVzZWQgb3IgcGxheWluZy4KICAgICBn
aW50NjQgcG9zaXRpb24gPSBHU1RfQ0xPQ0tfVElNRV9OT05FOwotICAgIEdzdFF1ZXJ5KiBxdWVy
eSA9IGdzdF9xdWVyeV9uZXdfcG9zaXRpb24oR1NUX0ZPUk1BVF9USU1FKTsKLSAgICBpZiAoZ3N0
X2VsZW1lbnRfcXVlcnkobV9waXBlbGluZS5nZXQoKSwgcXVlcnkpKQotICAgICAgICBnc3RfcXVl
cnlfcGFyc2VfcG9zaXRpb24ocXVlcnksIDAsICZwb3NpdGlvbik7Ci0gICAgZ3N0X3F1ZXJ5X3Vu
cmVmKHF1ZXJ5KTsKKworICAgIC8vIEFza2luZyBkaXJlY3RseSB0byB0aGUgc2lua3MgYW5kIGNo
b29zaW5nIHRoZSBoaWdoZXN0IHZhbHVlIGlzIGZhc3RlciB0aGFuIGFza2luZyB0byB0aGUgcGlw
ZWxpbmUuCisgICAgR1JlZlB0cjxHc3RRdWVyeT4gcXVlcnkgPSBhZG9wdEdSZWYoZ3N0X3F1ZXJ5
X25ld19wb3NpdGlvbihHU1RfRk9STUFUX1RJTUUpKTsKKyAgICBpZiAobV9hdWRpb1NpbmsgJiYg
Z3N0X2VsZW1lbnRfcXVlcnkobV9hdWRpb1NpbmsuZ2V0KCksIHF1ZXJ5LmdldCgpKSkgeworICAg
ICAgICBnaW50NjQgYXVkaW9Qb3NpdGlvbiA9IEdTVF9DTE9DS19USU1FX05PTkU7CisgICAgICAg
IGdzdF9xdWVyeV9wYXJzZV9wb3NpdGlvbihxdWVyeS5nZXQoKSwgMCwgJmF1ZGlvUG9zaXRpb24p
OworICAgICAgICBpZiAoR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQoYXVkaW9Qb3NpdGlvbikpCisg
ICAgICAgICAgICBwb3NpdGlvbiA9IGF1ZGlvUG9zaXRpb247CisgICAgICAgIHF1ZXJ5ID0gYWRv
cHRHUmVmKGdzdF9xdWVyeV9uZXdfcG9zaXRpb24oR1NUX0ZPUk1BVF9USU1FKSk7CisgICAgfQor
ICAgIGlmIChtX3ZpZGVvU2luayAmJiBnc3RfZWxlbWVudF9xdWVyeShtX3ZpZGVvU2luay5nZXQo
KSwgcXVlcnkuZ2V0KCkpKSB7CisgICAgICAgIGdpbnQ2NCB2aWRlb1Bvc2l0aW9uID0gR1NUX0NM
T0NLX1RJTUVfTk9ORTsKKyAgICAgICAgZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKHF1ZXJ5Lmdl
dCgpLCAwLCAmdmlkZW9Qb3NpdGlvbik7CisgICAgICAgIGlmIChHU1RfQ0xPQ0tfVElNRV9JU19W
QUxJRCh2aWRlb1Bvc2l0aW9uKSAmJiAoIUdTVF9DTE9DS19USU1FX0lTX1ZBTElEKHBvc2l0aW9u
KQorICAgICAgICAgICAgfHwgKG1fcGxheWJhY2tSYXRlID49IDAgJiYgdmlkZW9Qb3NpdGlvbiA+
IHBvc2l0aW9uKQorICAgICAgICAgICAgfHwgKG1fcGxheWJhY2tSYXRlIDwgMCAmJiB2aWRlb1Bv
c2l0aW9uIDwgcG9zaXRpb24pKSkKKyAgICAgICAgICAgIHBvc2l0aW9uID0gdmlkZW9Qb3NpdGlv
bjsKKyAgICB9CiAKICAgICBHc3RDbG9ja1RpbWUgZ3N0cmVhbWVyUG9zaXRpb24gPSBzdGF0aWNf
Y2FzdDxHc3RDbG9ja1RpbWU+KHBvc2l0aW9uKTsKICAgICBHU1RfVFJBQ0VfT0JKRUNUKHBpcGVs
aW5lKCksICJQb3NpdGlvbiAlIiBHU1RfVElNRV9GT1JNQVQgIiwgY2FuRmFsbEJhY2tUb0xhc3RG
aW5pc2hlZFNlZWtQb3NpdGlvbjogJXMiLCBHU1RfVElNRV9BUkdTKGdzdHJlYW1lclBvc2l0aW9u
KSwgYm9vbEZvclByaW50aW5nKG1fY2FuRmFsbEJhY2tUb0xhc3RGaW5pc2hlZFNlZWtQb3NpdGlv
bikpOwpAQCAtMTM3Miw2ICsxMzgwLDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6cGxheWJhY2tQb3NpdGlvbigpIGNvbnN0CiAgICAgICAgIHBsYXliYWNrUG9zaXRp
b24gPSBtX3NlZWtUaW1lOwogCiAgICAgbV9jYWNoZWRQb3NpdGlvbiA9IHBsYXliYWNrUG9zaXRp
b247CisgICAgaW52YWxpZGF0ZUNhY2hlZFBvc2l0aW9uT25OZXh0SXRlcmF0aW9uKCk7CiAgICAg
cmV0dXJuIHBsYXliYWNrUG9zaXRpb247CiB9CiAKQEAgLTIyMzUsNyArMjI0NCw3IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjphc3luY1N0YXRlQ2hhbmdlRG9uZSgpCiAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiW1Nl
ZWtdIHNlZWtlZCB0byAlcyIsIHRvU3RyaW5nKG1fc2Vla1RpbWUpLnV0ZjgoKS5kYXRhKCkpOwog
ICAgICAgICAgICAgbV9pc1NlZWtpbmcgPSBmYWxzZTsKLSAgICAgICAgICAgIG1fY2FjaGVkUG9z
aXRpb24gPSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7CisgICAgICAgICAgICBpbnZhbGlkYXRl
Q2FjaGVkUG9zaXRpb24oKTsKICAgICAgICAgICAgIGlmIChtX3RpbWVPZk92ZXJsYXBwaW5nU2Vl
ayAhPSBtX3NlZWtUaW1lICYmIG1fdGltZU9mT3ZlcmxhcHBpbmdTZWVrLmlzVmFsaWQoKSkgewog
ICAgICAgICAgICAgICAgIHNlZWsobV90aW1lT2ZPdmVybGFwcGluZ1NlZWspOwogICAgICAgICAg
ICAgICAgIG1fdGltZU9mT3ZlcmxhcHBpbmdTZWVrID0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgp
OwpAQCAtMjQyMSw3ICsyNDMwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgICAgICBtX2lzU2Vla1BlbmRpbmcgPSBmYWxzZTsKICAg
ICAgICAgICAgIG1faXNTZWVraW5nID0gZG9TZWVrKG1fc2Vla1RpbWUsIG1fcGxheWVyLT5yYXRl
KCksIHN0YXRpY19jYXN0PEdzdFNlZWtGbGFncz4oR1NUX1NFRUtfRkxBR19GTFVTSCB8IEdTVF9T
RUVLX0ZMQUdfQUNDVVJBVEUpKTsKICAgICAgICAgICAgIGlmICghbV9pc1NlZWtpbmcpIHsKLSAg
ICAgICAgICAgICAgICBtX2NhY2hlZFBvc2l0aW9uID0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgp
OworICAgICAgICAgICAgICAgIGludmFsaWRhdGVDYWNoZWRQb3NpdGlvbigpOwogICAgICAgICAg
ICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIltTZWVrXSBzZWVraW5nIHRvICVz
IGZhaWxlZCIsIHRvU3RyaW5nKG1fc2Vla1RpbWUpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CkBAIC0yNTMzLDcgKzI1NDIsNyBAQCBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpkaWRFbmQoKQogewotICAgIG1fY2FjaGVkUG9zaXRpb24gPSBNZWRpYVRp
bWU6OmludmFsaWRUaW1lKCk7CisgICAgaW52YWxpZGF0ZUNhY2hlZFBvc2l0aW9uKCk7CiAgICAg
TWVkaWFUaW1lIG5vdyA9IGN1cnJlbnRNZWRpYVRpbWUoKTsKICAgICBHU1RfSU5GT19PQkpFQ1Qo
cGlwZWxpbmUoKSwgIlBsYXliYWNrIGVuZGVkLCBjdXJyZW50TWVkaWFUaW1lID0gJXMsIGR1cmF0
aW9uID0gJXMiLCBub3cudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBkdXJhdGlvbk1lZGlhVGlt
ZSgpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgbV9pc0VuZFJlYWNoZWQgPSB0cnVl
OwpAQCAtMjg0Myw2ICsyODUyLDI4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiAgICAgbV9jYW5SZW5kZXJpbmdC
ZUFjY2VsZXJhdGVkID0gbV9wbGF5ZXIgJiYgbV9wbGF5ZXItPmFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdFbmFibGVkKCk7CiB9CiAKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwZXJm
b3JtVGFza0F0TWVkaWFUaW1lKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrLCBjb25zdCBNZWRpYVRp
bWUmIHRpbWUpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIC8vIElnbm9y
ZSB0aGUgY2FzZXMgd2hlbiB0aGUgdGltZSBpc24ndCBtYXJjaGluZyBvbiBvciB0aGUgcG9zaXRp
b24gaXMgdW5rbm93bi4KKyAgICBNZWRpYVRpbWUgY3VycmVudFRpbWUgPSBwbGF5YmFja1Bvc2l0
aW9uKCk7CisgICAgaWYgKCFtX3BpcGVsaW5lIHx8IG1fZGlkRXJyb3JPY2N1ciB8fCBtX2lzU2Vl
a2luZyB8fCBtX2lzUGF1c2VkIHx8ICFtX3BsYXliYWNrUmF0ZSB8fCAhY3VycmVudFRpbWUuaXNW
YWxpZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPcHRpb25hbDxGdW5jdGlvbjx2
b2lkKCk+PiB0YXNrVG9TY2hlZHVsZTsKKyAgICB7CisgICAgICAgIGF1dG8gdGFza0F0TWVkaWFU
aW1lU2NoZWR1bGVyID0gaG9sZExvY2sobV9UYXNrQXRNZWRpYVRpbWVTY2hlZHVsZXJEYXRhTXV0
ZXgpOworICAgICAgICB0YXNrQXRNZWRpYVRpbWVTY2hlZHVsZXItPnNldFRhc2soV1RGTW92ZSh0
YXNrKSwgdGltZSwKKyAgICAgICAgICAgIG1fcGxheWJhY2tSYXRlID49IDAgPyBUYXNrQXRNZWRp
YVRpbWVTY2hlZHVsZXI6Okxlc3NPckVxdWFsIDogVGFza0F0TWVkaWFUaW1lU2NoZWR1bGVyOjpH
cmVhdGVyT3JFcXVhbCk7CisgICAgICAgIHRhc2tUb1NjaGVkdWxlID0gdGFza0F0TWVkaWFUaW1l
U2NoZWR1bGVyLT5zY2hlZHVsZUlmVGltZVJlYWNoZWQoY3VycmVudFRpbWUpOworICAgIH0KKyAg
ICBpZiAodGFza1RvU2NoZWR1bGUuaGFzVmFsdWUoKSkKKyAgICAgICAgdGFza1RvU2NoZWR1bGUu
dmFsdWUoKSgpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKICNpZiBVU0UoVEVYVFVSRV9NQVBQ
RVJfR0wpCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBsYXRm
b3JtTGF5ZXIoKSBjb25zdAogewpAQCAtMzA2OCwxMCArMzA5OSwzMyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlVmlkZW9TaXplQW5kT3JpZW50YXRpb25Gcm9tQ2Fw
cyhjb25zdCBHcwogICAgIG1fcGxheWVyLT5zaXplQ2hhbmdlZCgpOwogfQogCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aW52YWxpZGF0ZUNhY2hlZFBvc2l0aW9uKCkgY29uc3QK
K3sKKyAgICBtX2NhY2hlZFBvc2l0aW9uLnJlc2V0KCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjppbnZhbGlkYXRlQ2FjaGVkUG9zaXRpb25Pbk5leHRJdGVyYXRpb24o
KSBjb25zdAoreworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIHRoaXNdIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgaW52YWxpZGF0ZUNhY2hlZFBvc2l0aW9uKCk7CisgICAgfSk7
Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0cmlnZ2VyUmVwYWludChH
c3RTYW1wbGUqIHNhbXBsZSkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAorICAg
IEdzdEJ1ZmZlciogYnVmZmVyID0gZ3N0X3NhbXBsZV9nZXRfYnVmZmVyKHNhbXBsZSk7CisgICAg
aWYgKGJ1ZmZlciAmJiBHU1RfQlVGRkVSX1BUU19JU19WQUxJRChidWZmZXIpKSB7CisgICAgICAg
IC8vIEhldXJpc3RpYyB0byBhdm9pZCBhc2tpbmcgZm9yIHBsYXliYWNrUG9zaXRpb24oKSBmcm9t
IGEgbm9uLW1haW4gdGhyZWFkLgorICAgICAgICBNZWRpYVRpbWUgY3VycmVudFRpbWUgPSBNZWRp
YVRpbWUoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUoZ3N0X3NhbXBsZV9nZXRfc2VnbWVudChz
YW1wbGUpLCBHU1RfRk9STUFUX1RJTUUsIEdTVF9CVUZGRVJfUFRTKGJ1ZmZlcikpLCBHU1RfU0VD
T05EKTsKKyAgICAgICAgYXV0byB0YXNrID0gaG9sZExvY2sobV9UYXNrQXRNZWRpYVRpbWVTY2hl
ZHVsZXJEYXRhTXV0ZXgpLT5zY2hlZHVsZUlmVGltZVJlYWNoZWQoY3VycmVudFRpbWUpOworICAg
ICAgICBpZiAodGFzay5oYXNWYWx1ZSgpKQorICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRp
c3BhdGNoKFdURk1vdmUodGFzay52YWx1ZSgpKSk7CisgICAgfQorCiAgICAgYm9vbCBzaG91bGRU
cmlnZ2VyUmVzaXplOwogICAgIHsKICAgICAgICAgYXV0byBzYW1wbGVMb2NrZXIgPSBob2xkTG9j
ayhtX3NhbXBsZU11dGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaAppbmRleCAwMjFmYjgyMjc1MTUzNTc4YTlhNTY2ZjE3ZDM3YWM1MzkxMWQ2NmQ0Li5h
YzIwMmU2YjI2ZDc3NGQ4NTcxNmFiYzI4ZTdiOWY3NDA5MjZhY2MxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5j
bHVkZSA8Z3N0L3BidXRpbHMvaW5zdGFsbC1wbHVnaW5zLmg+CiAjaW5jbHVkZSA8d3RmL0F0b21p
Y3MuaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0RhdGFNdXRl
eC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBl
ci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CkBAIC0xODQsNiArMTg1LDcgQEAgcHVibGlj
OgogCiAgICAgT3B0aW9uYWw8VmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzPiB2aWRlb1BsYXli
YWNrUXVhbGl0eU1ldHJpY3MoKSBmaW5hbDsKICAgICB2b2lkIGFjY2VsZXJhdGVkUmVuZGVyaW5n
U3RhdGVDaGFuZ2VkKCkgZmluYWw7CisgICAgYm9vbCBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKEZ1
bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikgb3ZlcnJpZGU7CiAKICNpZiBVU0Uo
VEVYVFVSRV9NQVBQRVJfR0wpCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0IG92ZXJyaWRlOwpAQCAtMzAzLDcgKzMwNSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNl
dEF1ZGlvU3RyZWFtUHJvcGVydGllcyhHT2JqZWN0Kik7CiAKICAgICB2aXJ0dWFsIGJvb2wgZG9T
ZWVrKGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpb24sIGZsb2F0IHJhdGUsIEdzdFNlZWtGbGFncyk7
Ci0gICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGVkUG9zaXRpb24oKSB7IG1fbGFzdFF1ZXJ5VGltZS5y
ZXNldCgpOyB9CisgICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGVkUG9zaXRpb24oKSBjb25zdDsKIAog
ICAgIHN0YXRpYyB2b2lkIHNldEF1ZGlvU3RyZWFtUHJvcGVydGllc0NhbGxiYWNrKE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lciosIEdPYmplY3QqKTsKIApAQCAtMzIzLDcgKzMyNSw3IEBAIHBy
b3RlY3RlZDoKICAgICBSZWY8TWFpblRocmVhZE5vdGlmaWVyPE1haW5UaHJlYWROb3RpZmljYXRp
b24+PiBtX25vdGlmaWVyOwogICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKICAgICBTdHJpbmcg
bV9yZWZlcnJlcjsKLSAgICBtdXRhYmxlIE1lZGlhVGltZSBtX2NhY2hlZFBvc2l0aW9uOworICAg
IG11dGFibGUgT3B0aW9uYWw8TWVkaWFUaW1lPiBtX2NhY2hlZFBvc2l0aW9uOwogICAgIG11dGFi
bGUgTWVkaWFUaW1lIG1fY2FjaGVkRHVyYXRpb247CiAgICAgYm9vbCBtX2NhbkZhbGxCYWNrVG9M
YXN0RmluaXNoZWRTZWVrUG9zaXRpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0NoYW5naW5n
UmF0ZSB7IGZhbHNlIH07CkBAIC0zODgsNiArMzkwLDMzIEBAIHByb3RlY3RlZDoKICAgICBPcHRp
b25hbDxHc3RWaWRlb0RlY29kZXJQbGF0Zm9ybT4gbV92aWRlb0RlY29kZXJQbGF0Zm9ybTsKIAog
cHJpdmF0ZToKKyAgICBjbGFzcyBUYXNrQXRNZWRpYVRpbWVTY2hlZHVsZXIgeworICAgIHB1Ymxp
YzoKKyAgICAgICAgZW51bSBUYXJnZXRUaW1lT3BlcmF0b3IgeworICAgICAgICAgICAgTGVzc09y
RXF1YWwsIC8vIFNjaGVkdWxlIHdoZW4gdGFyZ2V0VGltZSA8PSBjdXJyZW50VGltZS4gVXNlZCBv
biBmb3J3YXJkIHBsYXliYWNrLCB3aGVuIHBsYXliYWNrUmF0ZSA+PSAwLgorICAgICAgICAgICAg
R3JlYXRlck9yRXF1YWwgLy8gU2NoZWR1bGUgd2hlbiB0YXJnZXRUaW1lID49IGN1cnJlbnRUaW1l
LiBVc2VkIG9uIGJhY2t3YXJkcyBwbGF5YmFjaywgd2hlbiBwbGF5YmFja1JhdGUgPCAwLgorICAg
ICAgICB9OworICAgICAgICB2b2lkIHNldFRhc2soRnVuY3Rpb248dm9pZCgpPiYmIHRhc2ssIGNv
bnN0IE1lZGlhVGltZSYgdGFyZ2V0VGltZSwgVGFyZ2V0VGltZU9wZXJhdG9yIHRhcmdldFRpbWVP
cGVyYXRvcikKKyAgICAgICAgeworICAgICAgICAgICAgbV90YXJnZXRUaW1lID0gdGFyZ2V0VGlt
ZTsKKyAgICAgICAgICAgIG1fdGFzayA9IFdURk1vdmUodGFzayk7CisgICAgICAgICAgICBtX3Rh
cmdldFRpbWVPcGVyYXRvciA9IHRhcmdldFRpbWVPcGVyYXRvcjsKKyAgICAgICAgfQorICAgICAg
ICBPcHRpb25hbDxGdW5jdGlvbjx2b2lkKCk+PiBzY2hlZHVsZUlmVGltZVJlYWNoZWQoY29uc3Qg
TWVkaWFUaW1lJiBjdXJyZW50VGltZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX3Rh
cmdldFRpbWUuaXNWYWxpZCgpIHx8ICFjdXJyZW50VGltZS5pc0Zpbml0ZSgpCisgICAgICAgICAg
ICAgICAgfHwgKG1fdGFyZ2V0VGltZU9wZXJhdG9yID09IExlc3NPckVxdWFsICYmIGN1cnJlbnRU
aW1lIDwgbV90YXJnZXRUaW1lKQorICAgICAgICAgICAgICAgIHx8IChtX3RhcmdldFRpbWVPcGVy
YXRvciA9PSBHcmVhdGVyT3JFcXVhbCAmJiBjdXJyZW50VGltZSA+IG1fdGFyZ2V0VGltZSkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPEZ1bmN0aW9uPHZvaWQoKT4+KCk7CisgICAg
ICAgICAgICBtX3RhcmdldFRpbWUgPSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7CisgICAgICAg
ICAgICByZXR1cm4gV1RGTW92ZShtX3Rhc2spOworICAgICAgICB9CisgICAgcHJpdmF0ZToKKyAg
ICAgICAgTWVkaWFUaW1lIG1fdGFyZ2V0VGltZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsK
KyAgICAgICAgVGFyZ2V0VGltZU9wZXJhdG9yIG1fdGFyZ2V0VGltZU9wZXJhdG9yID0gR3JlYXRl
ck9yRXF1YWw7CisgICAgICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV90YXNrID0gRnVuY3Rpb248dm9p
ZCgpPigpOworICAgIH07CisKICAgICBib29sIGlzUGxheWVyU2h1dHRpbmdEb3duKCkgY29uc3Qg
eyByZXR1cm4gbV9pc1BsYXllclNodXR0aW5nRG93bi5sb2FkKCk7IH0KICAgICBNZWRpYVRpbWUg
bWF4VGltZUxvYWRlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0VmlkZW9Tb3VyY2VPcmllbnRhdGlv
bihJbWFnZU9yaWVudGF0aW9uKTsKQEAgLTQ1Nyw2ICs0ODYsNyBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICAgICB2b2lkIGNvbmZpZ3VyZU1lZGlhU3RyZWFtQXVkaW9UcmFja3MoKTsKKyAgICB2b2lk
IGludmFsaWRhdGVDYWNoZWRQb3NpdGlvbk9uTmV4dEl0ZXJhdGlvbigpIGNvbnN0OwogCiAgICAg
QXRvbWljPGJvb2w+IG1faXNQbGF5ZXJTaHV0dGluZ0Rvd247CiAgICAgR1JlZlB0cjxHc3RFbGVt
ZW50PiBtX3RleHRTaW5rOwpAQCAtNDkwLDcgKzUyMCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJs
ZSB1bnNpZ25lZCBsb25nIGxvbmcgbV90b3RhbEJ5dGVzIHsgMCB9OwogICAgIFVSTCBtX3VybDsK
ICAgICBib29sIG1fc2hvdWxkUHJlc2VydmVQaXRjaCB7IGZhbHNlIH07Ci0gICAgbXV0YWJsZSBP
cHRpb25hbDxTZWNvbmRzPiBtX2xhc3RRdWVyeVRpbWU7CiAgICAgYm9vbCBtX2lzTGVnYWN5UGxh
eWJpbjsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFJlZlB0cjxNZWRpYVN0cmVhbVBy
aXZhdGU+IG1fc3RyZWFtUHJpdmF0ZTsKQEAgLTUzNSw2ICs1NjQsOCBAQCBwcml2YXRlOgogICAg
IC8vIFRoaXMgaXMgc2V0IHRvIHRydWUgaWYgbm8gdmlkZW9mbGlwIGVsZW1lbnQgaGFzIGJlZW4g
YWRkZWQgdG8gdGhlIHBpcGVsaW5lLgogICAgIGJvb2wgbV9zaG91bGRIYW5kbGVPcmllbnRhdGlv
blRhZ3MgeyBmYWxzZSB9OwogCisgICAgV1RGOjpEYXRhTXV0ZXg8VGFza0F0TWVkaWFUaW1lU2No
ZWR1bGVyPiBtX1Rhc2tBdE1lZGlhVGltZVNjaGVkdWxlckRhdGFNdXRleDsKKwogcHJpdmF0ZToK
ICNpZiBVU0UoV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQogICAgIEdVbmlxdWVQdHI8
c3RydWN0IHdwZV92aWRlb19wbGFuZV9kaXNwbGF5X2RtYWJ1Zl9zb3VyY2U+IG1fd3BlVmlkZW9Q
bGFuZURpc3BsYXlEbWFCdWY7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmU1MjE2NzZkOTc3YTQ3ZjZjMzE5Mzc2NDgxZWU0
ZjlkZDg3OWU0Mi4uZTJjZGVjOTQ0MTc5YmM0NTQ0ZjBmYTEwZjhjMGYzMDllYTUzZjZjZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA1LTE0ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXog
IDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gTGF5b3V0IHRlc3QgbWVkaWEv
dHJhY2svdHJhY2stY3VlLW1pc3NpbmcuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEwMDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dsaWIvVGVzdEV4cGVj
dGF0aW9uczogVW5za2lwcGVkIHRlc3QuCisKIDIwMjEtMDUtMTMgIFJvYiBCdWlzICA8cmJ1aXNA
aWdhbGlhLmNvbT4KIAogICAgICAgICBDaGVjayBmb3IgbnVsbCBlbGVtZW50IGluIHBhaW50U2Vh
cmNoRmllbGRSZXN1bHRzQnV0dG9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
bGliL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggOGE1MWZiZmExYzQzYzQzNWQ2MjA1YmI1YWI3YjgyNDhiMjNkNGI5ZS4u
MWM4NDc0Zjg0YzI0OTQwZmM4MDA5NTgxNjVmYWFjZWNlNjY3OWYxZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjI2Myw4ICsyMjYzLDYgQEAgd2Vi
a2l0Lm9yZy9iLzE4NjYzOCBtZWRpYS92aWRlby1yZW1vdGUtY29udHJvbC1wbGF5cGF1c2UuaHRt
bCBbIEZhaWx1cmUgVGltZW91dAogd2Via2l0Lm9yZy9iLzE4NjY2NCBtZWRpYS92aWRlby1wbGF5
c2lubGluZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTg2Njc5IG1lZGlhL3ZpZGVv
LWN1cnJlbnRUaW1lLWRlbGF5Lmh0bWwgWyBDcmFzaCBQYXNzIFRpbWVvdXQgXQogCi13ZWJraXQu
b3JnL2IvMTkxMDA0IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1taXNzaW5nLmh0bWwgWyBGYWlsdXJl
IF0KLQogd2Via2l0Lm9yZy9iLzE5ODgyNyBtZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10
by1pbmxpbmUuaHRtbCBbIFRpbWVvdXQgUGFzcyBDcmFzaCBdCiB3ZWJraXQub3JnL2IvMTk4ODI3
IG1lZGlhL3ZpZGVvLWVuZGVkLWV2ZW50LXNsb3ctbW90aW9uLXBsYXliYWNrLmh0bWwgWyBUaW1l
b3V0IFBhc3MgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429645</attachid>
            <date>2021-05-25 05:14:19 -0700</date>
            <delta_ts>2021-05-25 05:52:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191004-20210525141418.patch</filename>
            <type>text/plain</type>
            <size>18588</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU1OWFmNDI1Y2FhMmU5
MTkzMDFiN2MyYzliNTc3MGQxMGZjNmIyMC4uMTRjYzgwMGRmNjQ0OTRlNzVjMDY1Y2RjOTQ0MzY4
ODJmYWI2YzU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTA1LTI1ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dU
S10gTGF5b3V0IHRlc3QgbWVkaWEvdHJhY2svdHJhY2stY3VlLW1pc3NpbmcuaHRtbCBpcyBmYWls
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEw
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBBbGljaWEgQm95YSBHYXJjaWEuCisKKyAgICAgICAg
SW1wbGVtZW50ZWQgdGhlIG1pc3NpbmcgcGVyZm9ybVRhc2tBdE1lZGlhVGltZSgpIG1ldGhvZCwg
bmVlZGVkIGJ5IEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoKQor
ICAgICAgICB0byB0cmlnZ2VyIGN1c3RvbSB1cGRhdGVzIGF0IHRpbWVzIHRoYXQgZG9uJ3QgZml0
IGluIHRoZSByZWd1bGFyIHVwZGF0ZXMgc3RhdGljYWxseSBzY2hlZHVsZWQgZXZlcnkgMjUwIG1z
LgorICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gdXNlcyB0cmlnZ2VyUmVwYWludCgpIGZvciBz
eW5jaHJvbml6YXRpb24gaW5zdGVhZCBvZiB0aW1lcnMsIGNvbXB1dGluZyB0aGUgY3VycmVudCBz
dHJlYW0gdGltZQorICAgICAgICBvZiB0aGUgbGFzdCB2aWRlbyBmcmFtZSB0byBiZSBwYWludGVk
IGFzIGFuIGhldXJpc3RpYywgaW5zdGVhZCBvZiBhc2tpbmcgdGhlIHBvc2l0aW9uIHRvIHRoZSBw
aXBlbGluZSAobW9yZQorICAgICAgICBleHBlbnNpdmUgYW5kIHJpc2t5IGZyb20gYSBub24tbWFp
biB0aHJlYWQpLiBJZiB0aGUgc3RyZWFtIHRpbWUgaXMgYmV5b25kIHRoZSB0YXNrIHRhcmdldCB0
aW1lLCB0aGUgdGFzayBpcyBydW4KKyAgICAgICAgb24gdGhlIG1haW4gdGhyZWFkLgorCisgICAg
ICAgIFN0aWxsLCB0aGF0IGlzIG5vdCBlbm91Z2guIFRoZSB0YXNrIHNjaGVkdWxlZCBieSBIVE1M
TWVkaWFFbGVtZW50IHJlcXVpcmVzIGN1cnJlbnRUaW1lKCkgdG8gcmV0dXJuIGFuIGFjY3VyYXRl
CisgICAgICAgIHZhbHVlLCBub3Qgb25lIGNhY2hlZCBldmVyeSAyMDBtcy4gbV9jYWNoZWRUaW1l
IG5lZWRzIHRvIGJlIHVwZGF0ZWQgbW9yZSBmcmVxdWVudGx5IChhdCBsZWFzdCBvbmNlIGV2ZXJ5
IG1haW4KKyAgICAgICAgbG9vcCBpdGVyYXRpb24pLCBidXQgc3RpbGwgcmVtYWluIGNvbnNpc3Rl
bnQgYWxvbmcgdGhlIHdob2xlIGl0ZXJhdGlvbi4gVGhpcyBpcyBhY2hpZXZlZCBieSBlbnF1ZWlu
ZyBhbgorICAgICAgICBpbnZhbGlkYXRpb24gdGFzayAodG8gYmUgcnVuIGF0IHRoZSBlbmQgb2Yg
dGhlIGN1cnJlbnQgaXRlcmF0aW9uKSBlYWNoIHRpbWUgdGhlIGNhY2hlZCB2YWx1ZSBpcyBzZXQg
d2l0aCBhIHZhbHVlCisgICAgICAgIGNvbWluZyBmcm9tIGEgcG9zaXRpb24gcXVlcnkuCisKKyAg
ICAgICAgVGhlIGNoYW5nZXMgaW4gdGhlIG1fY2FjaGVkVGltZSBtYW5hZ2VtZW50IGFkZCBhbiBv
dmVyaGVhZCBiZXR3ZWVuIDE3MyUgKHRyYWNrLWN1ZS1taXNzaW5nIHRlc3QpIGFuZCA0MjYlCisg
ICAgICAgIChyZWd1bGFyIHZpZGVvIHBsYXliYWNrIHdpdGhvdXQgc3VidGl0bGVzKSBpbiB0aGUg
cnVuIHRpbWUgc3BlbnQgcXVlcnlpbmcgdGhlIHBvc2l0aW9uIHRvIHRoZSBwaXBlbGluZS4gQXMg
YW4KKyAgICAgICAgb3B0aW1pemF0aW9uLCB0aGUgcG9zaXRpb24gaXMgbm93IGRpcmVjdGx5IHF1
ZXJpZWQgdG8gdGhlIGF1ZGlvIGFuZCB2aWRlbyBzaW5rIGFuZCB0aGUgaGlnaGVzdCB2YWx1ZSAo
YWNjb3JkaW5nCisgICAgICAgIHRvIHRoZSBjdXJyZW50IHBsYXliYWNrIGRpcmVjdGlvbikgaXMg
cmV0dXJuZWQuIFRoaXMgcmVkdWNlcyB0aGUgb3ZlcmhlYWQgdG8ganVzdCA2MyUgaW4gdGhlIHJl
Z3VsYXIgcGxheWJhY2sKKyAgICAgICAgd2l0aG91dCBzdWJ0aXRsZXMgY2FzZS4KKworICAgICAg
ICBUaGUgaW5uZXIgVGFza0F0TWVkaWFUaW1lU2NoZWR1bGVyIGNsYXNzIGlzIHVzZWQgZm9yIHRh
c2sgdGFyZ2V0IHRpbWUgZXZhbHVhdGlvbi4gQXMgaXQgY2FuIGJlIHVzZWQgZnJvbSB0aGUKKyAg
ICAgICAgbWFpbiB0aHJlYWQgYW5kIGZyb20gYSBzZWNvbmRhcnkgb25lIGluIHRyaWdnZXJSZXBh
aW50KCksIGl0J3Mgd3JhcHBlZCBpbiBhIERhdGFNdXRleCB0byBtYW5hZ2UgY29uY3VycmVudAor
ICAgICAgICBhY2Nlc3MuIFRoZSBvcmlnaW5hbCB0YXNrIGlzIHJldHVybmVkIHRvIHRoZSBjYWxs
ZXIgb2YgY2hlY2tUYXNrRm9yU2NoZWR1bGluZygpIHdoZW4gdGhlIGN1cnJlbnRUaW1lIGlzIGJl
eW9uZAorICAgICAgICB0aGUgdGFyZ2V0IHRpbWUuIFRoZSBjYWxsZXIgaXMgdGhlbiByZXNwb25z
aWJsZSBvZiBydW5uaW5nIHRoZSB0YXNrIGV4dGVybmFsbHkgaW4gdGhlIG1haW4gdGhyZWFkLCBv
dXQgb2YgdGhlCisgICAgICAgIGluZmx1ZW5jZSBvZiB0aGUgRGF0YU11dGV4IGxvY2sgKHRoZSB0
YXNrIGNhbiBiZSBleHBlbnNpdmUgYW5kIHRoZSBsb2NrIGlzIG9ubHkgbmVlZGVkIHRvIGV2YWx1
YXRlIHRoZSB0cmlnZ2VyaW5nCisgICAgICAgIGNvbmRpdGlvbnMpLgorCisgICAgICAgIENvdmVy
ZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OlRhc2tBdE1lZGlhVGltZVNjaGVkdWxlcjo6c2V0
VGFzayk6IENvbmZpZ3VyZSB0aGUgb2JqZWN0IHdpdGggdGhlIHJpZ2h0IHRhc2ssIHRhcmdldFRp
bWUsIGFuZCBjdXJyZW50IHBsYXliYWNrIGRpcmVjdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6VGFza0F0TWVkaWFUaW1lU2NoZWR1bGVyOjpjaGVj
a1Rhc2tGb3JTY2hlZHVsaW5nKTogQ2hlY2sgaWYgdGhlIHRhc2sgbXVzdCBydW4uIEluIHRoYXQg
Y2FzZSwgcmV0dXJuIHRoZSB0YXNrIGFzIHJlc3VsdCBzbyB0aGUgY2FsbGVyIGNhbiBydW4gaXQg
ZXh0ZXJuYWxseSBvbiB0aGUgbWFpbiB0aHJlYWQgYWZ0ZXIgdGhlIERhdGFNdXRleCBsb2NrIGhh
cyBiZWVuIHJlbGVhc2VkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjppbnZhbGlkYXRlQ2FjaGVkUG9zaXRpb24pOiBJbXBsZW1lbnRhdGlvbiBtb3ZlZCB0
byB0aGUgY3BwIGZpbGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKTogRG9u
J3QgaW5pdGlhbGl6ZSBtX2NhY2hlZFBvc2l0aW9uLCBhcyBpdCdzIG5vdyBhbiBPcHRpb25hbCB0
aGF0IHdpbGwgYmUgaW5pdGlhbGl6ZWQgYXMgbm8tdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBsYXliYWNrUG9zaXRpb24gY29uc3QpOiBDaGFu
Z2UgdGhlIHRpbWUgYmFzZWQgY2FjaGluZyBtZWNoYW5pc20gdG8gYSBtYWlubG9vcCBpdGVyYXRp
b24gYmFzZWQgb25lLiBEaXJlY3RseSBxdWVyeSB0aGUgc2lua3MgaW5zdGVhZCBvZiB0aGUgcGlw
ZWxpbmUgZm9yIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjphc3luY1N0YXRlQ2hhbmdlRG9uZSk6IEludmFsaWRhdGUgdGhlIE9wdGlvbmFs
LCBpbnN0ZWFkIG9mIHNldHRpbmcgYW4gaW52YWxpZCBNZWRpYVRpbWUuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcyk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRFbmQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGVy
Zm9ybVRhc2tBdE1lZGlhVGltZSk6IFNldCB0aGUgdGFzayBvbiB0aGUgVGFza0F0TWVkaWFUaW1l
U2NoZWR1bGVyIHdoZW4gdGhlIG1lZGlhIGlzIGN1cnJlbnRseSBwbGF5aW5nLiBUaGF0IHRhc2sg
d2lsbCBydW4gYXQgdGhlIHRhcmdldCB0aW1lLiBUaGUgSFRNTE1lZGlhRWxlbWVudCBwZXJpb2Rp
YyB1cGRhdGUgd2lsbCBhbHJlYWR5IHRha2UgY2FyZSBpZiB0aGUgbWVkaWEgaXNuJ3QgY3VycmVu
dGx5IHBsYXlpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmludmFsaWRhdGVDYWNoZWRQb3NpdGlvbiBjb25zdCk6IFJlc2V0IE9wdGlvbmFsPE1lZGlh
VGltZT4gbV9jYWNoZWRUaW1lLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjppbnZhbGlkYXRlQ2FjaGVkUG9zaXRpb25Pbk5leHRJdGVyYXRpb24gY29uc3Qp
OiBFbnF1ZXVlIGFuIGludmFsaWRhdGlvbiBvbiB0aGUgbmV4dCBtYWlubG9vcCBpdGVyYXRpb24u
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRyaWdnZXJS
ZXBhaW50KTogQ2hlY2sgaWYgdGhlIFBlbmRpbmdUYXNrIG5lZWRzIHRvIGJlIHJ1biwgdXNpbmcg
dGhlIHN0cmVhbWluZyB0aW1lIG9mIHRoZSBsYXN0IHJlbmRlcmVkIHNhbXBsZSBhcyBhbiBhcHBy
b3hpbWF0ZSB3YXkgdG8gZ2V0IHRoZSBwb3NpdGlvbiwgYW5kIHJ1biBpdCBpZiB0aGF0J3MgdGhl
IGNhc2UuCisKIDIwMjEtMDUtMTMgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBDaGVjayBmb3IgbnVsbCBlbGVtZW50IGluIHBhaW50U2VhcmNoRmllbGRSZXN1bHRzQnV0
dG9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmlu
ZGV4IDAyYzJjMzBhN2QxOTRlZjA5MmU4OTkwYjE1ZjIyYmJlNGE4NzBlNGYuLmM4MWUzZDBjNWJj
MzM4YWRjMWE0ZjBmNTlhZDU1NTU4OWQ0OWFlY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xNDYsNyArMTQ2LDYgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5
ZXIqIHBsYXllcikKICAgICA6IG1fbm90aWZpZXIoTWFpblRocmVhZE5vdGlmaWVyPE1haW5UaHJl
YWROb3RpZmljYXRpb24+OjpjcmVhdGUoKSkKICAgICAsIG1fcGxheWVyKHBsYXllcikKICAgICAs
IG1fcmVmZXJyZXIocGxheWVyLT5yZWZlcnJlcigpKQotICAgICwgbV9jYWNoZWRQb3NpdGlvbihN
ZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCiAgICAgLCBtX2NhY2hlZER1cmF0aW9uKE1lZGlhVGlt
ZTo6aW52YWxpZFRpbWUoKSkKICAgICAsIG1fc2Vla1RpbWUoTWVkaWFUaW1lOjppbnZhbGlkVGlt
ZSgpKQogICAgICwgbV90aW1lT2ZPdmVybGFwcGluZ1NlZWsoTWVkaWFUaW1lOjppbnZhbGlkVGlt
ZSgpKQpAQCAtMTM0NCwyMiArMTM0MywzMSBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpwbGF5YmFja1Bvc2l0aW9uKCkgY29uc3QKICAgICBpZiAobV9pc0VuZFJlYWNo
ZWQpCiAgICAgICAgIHJldHVybiBtX3BsYXliYWNrUmF0ZSA+IDAgPyBkdXJhdGlvbk1lZGlhVGlt
ZSgpIDogTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogCi0gICAgLy8gVGhpcyBjb25zdGFudCBzaG91
bGQgcmVtYWluIGxvd2VyIHRoYW4gSFRNTE1lZGlhRWxlbWVudCdzIG1heFRpbWV1cGRhdGVFdmVu
dEZyZXF1ZW5jeS4KLSAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBwb3NpdGlvbkNhY2hlVGhyZXNo
b2xkID0gMjAwX21zOwotICAgIFNlY29uZHMgbm93ID0gV1RGOjpXYWxsVGltZTo6bm93KCkuc2Vj
b25kc1NpbmNlRXBvY2goKTsKLSAgICBpZiAobV9sYXN0UXVlcnlUaW1lICYmIChub3cgLSBtX2xh
c3RRdWVyeVRpbWUudmFsdWUoKSkgPCBwb3NpdGlvbkNhY2hlVGhyZXNob2xkICYmIG1fY2FjaGVk
UG9zaXRpb24uaXNWYWxpZCgpKSB7Ci0gICAgICAgIEdTVF9UUkFDRV9PQkpFQ1QocGlwZWxpbmUo
KSwgIlJldHVybmluZyBjYWNoZWQgcG9zaXRpb246ICVzIiwgbV9jYWNoZWRQb3NpdGlvbi50b1N0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICByZXR1cm4gbV9jYWNoZWRQb3NpdGlvbjsK
KyAgICBpZiAobV9jYWNoZWRQb3NpdGlvbi5oYXNWYWx1ZSgpKSB7CisgICAgICAgIEdTVF9UUkFD
RV9PQkpFQ1QocGlwZWxpbmUoKSwgIlJldHVybmluZyBjYWNoZWQgcG9zaXRpb246ICVzIiwgbV9j
YWNoZWRQb3NpdGlvbi52YWx1ZSgpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAg
IHJldHVybiBtX2NhY2hlZFBvc2l0aW9uLnZhbHVlKCk7CiAgICAgfQogCi0gICAgbV9sYXN0UXVl
cnlUaW1lID0gbm93OwotCiAgICAgLy8gUG9zaXRpb24gaXMgb25seSBhdmFpbGFibGUgaWYgbm8g
YXN5bmMgc3RhdGUgY2hhbmdlIGlzIGdvaW5nIG9uIGFuZCB0aGUgc3RhdGUgaXMgZWl0aGVyIHBh
dXNlZCBvciBwbGF5aW5nLgogICAgIGdpbnQ2NCBwb3NpdGlvbiA9IEdTVF9DTE9DS19USU1FX05P
TkU7Ci0gICAgR3N0UXVlcnkqIHF1ZXJ5ID0gZ3N0X3F1ZXJ5X25ld19wb3NpdGlvbihHU1RfRk9S
TUFUX1RJTUUpOwotICAgIGlmIChnc3RfZWxlbWVudF9xdWVyeShtX3BpcGVsaW5lLmdldCgpLCBx
dWVyeSkpCi0gICAgICAgIGdzdF9xdWVyeV9wYXJzZV9wb3NpdGlvbihxdWVyeSwgMCwgJnBvc2l0
aW9uKTsKLSAgICBnc3RfcXVlcnlfdW5yZWYocXVlcnkpOworCisgICAgLy8gQXNraW5nIGRpcmVj
dGx5IHRvIHRoZSBzaW5rcyBhbmQgY2hvb3NpbmcgdGhlIGhpZ2hlc3QgdmFsdWUgaXMgZmFzdGVy
IHRoYW4gYXNraW5nIHRvIHRoZSBwaXBlbGluZS4KKyAgICBHUmVmUHRyPEdzdFF1ZXJ5PiBxdWVy
eSA9IGFkb3B0R1JlZihnc3RfcXVlcnlfbmV3X3Bvc2l0aW9uKEdTVF9GT1JNQVRfVElNRSkpOwor
ICAgIGlmIChtX2F1ZGlvU2luayAmJiBnc3RfZWxlbWVudF9xdWVyeShtX2F1ZGlvU2luay5nZXQo
KSwgcXVlcnkuZ2V0KCkpKSB7CisgICAgICAgIGdpbnQ2NCBhdWRpb1Bvc2l0aW9uID0gR1NUX0NM
T0NLX1RJTUVfTk9ORTsKKyAgICAgICAgZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKHF1ZXJ5Lmdl
dCgpLCAwLCAmYXVkaW9Qb3NpdGlvbik7CisgICAgICAgIGlmIChHU1RfQ0xPQ0tfVElNRV9JU19W
QUxJRChhdWRpb1Bvc2l0aW9uKSkKKyAgICAgICAgICAgIHBvc2l0aW9uID0gYXVkaW9Qb3NpdGlv
bjsKKyAgICAgICAgcXVlcnkgPSBhZG9wdEdSZWYoZ3N0X3F1ZXJ5X25ld19wb3NpdGlvbihHU1Rf
Rk9STUFUX1RJTUUpKTsKKyAgICB9CisgICAgaWYgKG1fdmlkZW9TaW5rICYmIGdzdF9lbGVtZW50
X3F1ZXJ5KG1fdmlkZW9TaW5rLmdldCgpLCBxdWVyeS5nZXQoKSkpIHsKKyAgICAgICAgZ2ludDY0
IHZpZGVvUG9zaXRpb24gPSBHU1RfQ0xPQ0tfVElNRV9OT05FOworICAgICAgICBnc3RfcXVlcnlf
cGFyc2VfcG9zaXRpb24ocXVlcnkuZ2V0KCksIDAsICZ2aWRlb1Bvc2l0aW9uKTsKKyAgICAgICAg
aWYgKEdTVF9DTE9DS19USU1FX0lTX1ZBTElEKHZpZGVvUG9zaXRpb24pICYmICghR1NUX0NMT0NL
X1RJTUVfSVNfVkFMSUQocG9zaXRpb24pCisgICAgICAgICAgICB8fCAobV9wbGF5YmFja1JhdGUg
Pj0gMCAmJiB2aWRlb1Bvc2l0aW9uID4gcG9zaXRpb24pCisgICAgICAgICAgICB8fCAobV9wbGF5
YmFja1JhdGUgPCAwICYmIHZpZGVvUG9zaXRpb24gPCBwb3NpdGlvbikpKQorICAgICAgICAgICAg
cG9zaXRpb24gPSB2aWRlb1Bvc2l0aW9uOworICAgIH0KIAogICAgIEdzdENsb2NrVGltZSBnc3Ry
ZWFtZXJQb3NpdGlvbiA9IHN0YXRpY19jYXN0PEdzdENsb2NrVGltZT4ocG9zaXRpb24pOwogICAg
IEdTVF9UUkFDRV9PQkpFQ1QocGlwZWxpbmUoKSwgIlBvc2l0aW9uICUiIEdTVF9USU1FX0ZPUk1B
VCAiLCBjYW5GYWxsQmFja1RvTGFzdEZpbmlzaGVkU2Vla1Bvc2l0aW9uOiAlcyIsIEdTVF9USU1F
X0FSR1MoZ3N0cmVhbWVyUG9zaXRpb24pLCBib29sRm9yUHJpbnRpbmcobV9jYW5GYWxsQmFja1Rv
TGFzdEZpbmlzaGVkU2Vla1Bvc2l0aW9uKSk7CkBAIC0xMzcyLDYgKzEzODAsNyBAQCBNZWRpYVRp
bWUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF5YmFja1Bvc2l0aW9uKCkgY29uc3QK
ICAgICAgICAgcGxheWJhY2tQb3NpdGlvbiA9IG1fc2Vla1RpbWU7CiAKICAgICBtX2NhY2hlZFBv
c2l0aW9uID0gcGxheWJhY2tQb3NpdGlvbjsKKyAgICBpbnZhbGlkYXRlQ2FjaGVkUG9zaXRpb25P
bk5leHRJdGVyYXRpb24oKTsKICAgICByZXR1cm4gcGxheWJhY2tQb3NpdGlvbjsKIH0KIApAQCAt
MjIzNSw3ICsyMjQ0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmFzeW5j
U3RhdGVDaGFuZ2VEb25lKCkKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBHU1RfREVCVUdf
T0JKRUNUKHBpcGVsaW5lKCksICJbU2Vla10gc2Vla2VkIHRvICVzIiwgdG9TdHJpbmcobV9zZWVr
VGltZSkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICBtX2lzU2Vla2luZyA9IGZhbHNlOwot
ICAgICAgICAgICAgbV9jYWNoZWRQb3NpdGlvbiA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsK
KyAgICAgICAgICAgIGludmFsaWRhdGVDYWNoZWRQb3NpdGlvbigpOwogICAgICAgICAgICAgaWYg
KG1fdGltZU9mT3ZlcmxhcHBpbmdTZWVrICE9IG1fc2Vla1RpbWUgJiYgbV90aW1lT2ZPdmVybGFw
cGluZ1NlZWsuaXNWYWxpZCgpKSB7CiAgICAgICAgICAgICAgICAgc2VlayhtX3RpbWVPZk92ZXJs
YXBwaW5nU2Vlayk7CiAgICAgICAgICAgICAgICAgbV90aW1lT2ZPdmVybGFwcGluZ1NlZWsgPSBN
ZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7CkBAIC0yNDIxLDcgKzI0MzAsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAgICAgIG1faXNT
ZWVrUGVuZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgbV9pc1NlZWtpbmcgPSBkb1NlZWsobV9z
ZWVrVGltZSwgbV9wbGF5ZXItPnJhdGUoKSwgc3RhdGljX2Nhc3Q8R3N0U2Vla0ZsYWdzPihHU1Rf
U0VFS19GTEFHX0ZMVVNIIHwgR1NUX1NFRUtfRkxBR19BQ0NVUkFURSkpOwogICAgICAgICAgICAg
aWYgKCFtX2lzU2Vla2luZykgewotICAgICAgICAgICAgICAgIG1fY2FjaGVkUG9zaXRpb24gPSBN
ZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7CisgICAgICAgICAgICAgICAgaW52YWxpZGF0ZUNhY2hl
ZFBvc2l0aW9uKCk7CiAgICAgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgp
LCAiW1NlZWtdIHNlZWtpbmcgdG8gJXMgZmFpbGVkIiwgdG9TdHJpbmcobV9zZWVrVGltZSkudXRm
OCgpLmRhdGEoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTI1MzMsNyArMjU0Miw3
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExvY2F0aW9uKCkK
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZEVuZCgpCiB7Ci0gICAgbV9j
YWNoZWRQb3NpdGlvbiA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKKyAgICBpbnZhbGlkYXRl
Q2FjaGVkUG9zaXRpb24oKTsKICAgICBNZWRpYVRpbWUgbm93ID0gY3VycmVudE1lZGlhVGltZSgp
OwogICAgIEdTVF9JTkZPX09CSkVDVChwaXBlbGluZSgpLCAiUGxheWJhY2sgZW5kZWQsIGN1cnJl
bnRNZWRpYVRpbWUgPSAlcywgZHVyYXRpb24gPSAlcyIsIG5vdy50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCksIGR1cmF0aW9uTWVkaWFUaW1lKCkudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAg
ICBtX2lzRW5kUmVhY2hlZCA9IHRydWU7CkBAIC0yODQzLDYgKzI4NTIsMzEgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2Vk
KCkKICAgICBtX2NhblJlbmRlcmluZ0JlQWNjZWxlcmF0ZWQgPSBtX3BsYXllciAmJiBtX3BsYXll
ci0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKTsKIH0KIAorYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoRnVuY3Rpb248dm9pZCgp
PiYmIHRhc2ssIGNvbnN0IE1lZGlhVGltZSYgdGltZSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworCisgICAgLy8gSWdub3JlIHRoZSBjYXNlcyB3aGVuIHRoZSB0aW1lIGlzbid0IG1h
cmNoaW5nIG9uIG9yIHRoZSBwb3NpdGlvbiBpcyB1bmtub3duLgorICAgIE1lZGlhVGltZSBjdXJy
ZW50VGltZSA9IHBsYXliYWNrUG9zaXRpb24oKTsKKyAgICBpZiAoIW1fcGlwZWxpbmUgfHwgbV9k
aWRFcnJvck9jY3VyIHx8IG1faXNTZWVraW5nIHx8IG1faXNQYXVzZWQgfHwgIW1fcGxheWJhY2tS
YXRlIHx8ICFjdXJyZW50VGltZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIE9wdGlvbmFsPEZ1bmN0aW9uPHZvaWQoKT4+IHRhc2tUb1NjaGVkdWxlOworICAgIHsKKyAg
ICAgICAgYXV0byB0YXNrQXRNZWRpYVRpbWVTY2hlZHVsZXIgPSBob2xkTG9jayhtX1Rhc2tBdE1l
ZGlhVGltZVNjaGVkdWxlckRhdGFNdXRleCk7CisgICAgICAgIHRhc2tBdE1lZGlhVGltZVNjaGVk
dWxlci0+c2V0VGFzayhXVEZNb3ZlKHRhc2spLCB0aW1lLAorICAgICAgICAgICAgbV9wbGF5YmFj
a1JhdGUgPj0gMCA/IFRhc2tBdE1lZGlhVGltZVNjaGVkdWxlcjo6Rm9yd2FyZCA6IFRhc2tBdE1l
ZGlhVGltZVNjaGVkdWxlcjo6QmFja3dhcmQpOworICAgICAgICB0YXNrVG9TY2hlZHVsZSA9IHRh
c2tBdE1lZGlhVGltZVNjaGVkdWxlci0+Y2hlY2tUYXNrRm9yU2NoZWR1bGluZyhjdXJyZW50VGlt
ZSk7CisgICAgfQorCisgICAgLy8gRGlzcGF0Y2ggdGhlIHRhc2sgaWYgdGhlIHRpbWUgaXMgYWxy
ZWFkeSByZWFjaGVkLiBEaXNwYXRjaGluZyBpbnN0ZWFkIG9mIGRpcmVjdGx5IHJ1bm5pbmcgdGhl
CisgICAgLy8gdGFzayBwcmV2ZW50cyBpbmZpbml0ZSByZWN1cnNpb24gaW4gY2FzZSB0aGUgdGFz
ayBjYWxscyBwZXJmb3JtVGFza0F0TWVkaWFUaW1lKCkgaW50ZXJuYWxseS4KKyAgICBpZiAodGFz
a1RvU2NoZWR1bGUuaGFzVmFsdWUoKSkKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFdURk1vdmUodGFza1RvU2NoZWR1bGUudmFsdWUoKSkpOworCisgICAgcmV0dXJuIHRydWU7Cit9
CisKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewpAQCAtMzA2OCwxMCAr
MzEwMiwzMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlVmlkZW9T
aXplQW5kT3JpZW50YXRpb25Gcm9tQ2Fwcyhjb25zdCBHcwogICAgIG1fcGxheWVyLT5zaXplQ2hh
bmdlZCgpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aW52YWxpZGF0
ZUNhY2hlZFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBtX2NhY2hlZFBvc2l0aW9uLnJlc2V0KCk7
Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjppbnZhbGlkYXRlQ2FjaGVk
UG9zaXRpb25Pbk5leHRJdGVyYXRpb24oKSBjb25zdAoreworICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIHsKKyAgICAgICAg
aWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaW52YWxpZGF0ZUNh
Y2hlZFBvc2l0aW9uKCk7CisgICAgfSk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjp0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqIHNhbXBsZSkKIHsKICAgICBBU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKIAorICAgIEdzdEJ1ZmZlciogYnVmZmVyID0gZ3N0X3NhbXBsZV9n
ZXRfYnVmZmVyKHNhbXBsZSk7CisgICAgaWYgKGJ1ZmZlciAmJiBHU1RfQlVGRkVSX1BUU19JU19W
QUxJRChidWZmZXIpKSB7CisgICAgICAgIC8vIEhldXJpc3RpYyB0byBhdm9pZCBhc2tpbmcgZm9y
IHBsYXliYWNrUG9zaXRpb24oKSBmcm9tIGEgbm9uLW1haW4gdGhyZWFkLgorICAgICAgICBNZWRp
YVRpbWUgY3VycmVudFRpbWUgPSBNZWRpYVRpbWUoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUo
Z3N0X3NhbXBsZV9nZXRfc2VnbWVudChzYW1wbGUpLCBHU1RfRk9STUFUX1RJTUUsIEdTVF9CVUZG
RVJfUFRTKGJ1ZmZlcikpLCBHU1RfU0VDT05EKTsKKyAgICAgICAgYXV0byB0YXNrID0gaG9sZExv
Y2sobV9UYXNrQXRNZWRpYVRpbWVTY2hlZHVsZXJEYXRhTXV0ZXgpLT5jaGVja1Rhc2tGb3JTY2hl
ZHVsaW5nKGN1cnJlbnRUaW1lKTsKKyAgICAgICAgaWYgKHRhc2suaGFzVmFsdWUoKSkKKyAgICAg
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKHRhc2sudmFsdWUoKSkpOwor
ICAgIH0KKwogICAgIGJvb2wgc2hvdWxkVHJpZ2dlclJlc2l6ZTsKICAgICB7CiAgICAgICAgIGF1
dG8gc2FtcGxlTG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVNdXRleCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggMDIxZmI4MjI3NTE1MzU3OGE5
YTU2NmYxN2QzN2FjNTM5MTFkNjZkNC4uN2MxOWJmMDgxN2NlOGIzOWE3ZjY5MzlhMDc2NTRiYjM0
NTE3OWI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
aApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPGdzdC9wYnV0aWxzL2luc3RhbGwtcGx1Z2lu
cy5oPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5o
PgorI2luY2x1ZGUgPHd0Zi9EYXRhTXV0ZXguaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgpA
QCAtMTg0LDYgKzE4NSw3IEBAIHB1YmxpYzoKIAogICAgIE9wdGlvbmFsPFZpZGVvUGxheWJhY2tR
dWFsaXR5TWV0cmljcz4gdmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzKCkgZmluYWw7CiAgICAg
dm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpIGZpbmFsOworICAgIGJvb2wg
cGVyZm9ybVRhc2tBdE1lZGlhVGltZShGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGlt
ZSYpIG92ZXJyaWRlOwogCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogICAgIFBsYXRmb3Jt
TGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKQEAgLTMwMyw3ICszMDUsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR09iamVjdCop
OwogCiAgICAgdmlydHVhbCBib29sIGRvU2Vlayhjb25zdCBNZWRpYVRpbWUmIHBvc2l0aW9uLCBm
bG9hdCByYXRlLCBHc3RTZWVrRmxhZ3MpOwotICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlZFBvc2l0
aW9uKCkgeyBtX2xhc3RRdWVyeVRpbWUucmVzZXQoKTsgfQorICAgIHZvaWQgaW52YWxpZGF0ZUNh
Y2hlZFBvc2l0aW9uKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBzZXRBdWRpb1N0cmVhbVBy
b3BlcnRpZXNDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqLCBHT2JqZWN0Kik7
CiAKQEAgLTMyMyw3ICszMjUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmPE1haW5UaHJlYWROb3Rp
ZmllcjxNYWluVGhyZWFkTm90aWZpY2F0aW9uPj4gbV9ub3RpZmllcjsKICAgICBNZWRpYVBsYXll
ciogbV9wbGF5ZXI7CiAgICAgU3RyaW5nIG1fcmVmZXJyZXI7Ci0gICAgbXV0YWJsZSBNZWRpYVRp
bWUgbV9jYWNoZWRQb3NpdGlvbjsKKyAgICBtdXRhYmxlIE9wdGlvbmFsPE1lZGlhVGltZT4gbV9j
YWNoZWRQb3NpdGlvbjsKICAgICBtdXRhYmxlIE1lZGlhVGltZSBtX2NhY2hlZER1cmF0aW9uOwog
ICAgIGJvb2wgbV9jYW5GYWxsQmFja1RvTGFzdEZpbmlzaGVkU2Vla1Bvc2l0aW9uIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faXNDaGFuZ2luZ1JhdGUgeyBmYWxzZSB9OwpAQCAtMzg4LDYgKzM5MCwz
MyBAQCBwcm90ZWN0ZWQ6CiAgICAgT3B0aW9uYWw8R3N0VmlkZW9EZWNvZGVyUGxhdGZvcm0+IG1f
dmlkZW9EZWNvZGVyUGxhdGZvcm07CiAKIHByaXZhdGU6CisgICAgY2xhc3MgVGFza0F0TWVkaWFU
aW1lU2NoZWR1bGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGVudW0gUGxheWJhY2tEaXJlY3Rp
b24geworICAgICAgICAgICAgRm9yd2FyZCwgLy8gU2NoZWR1bGUgd2hlbiB0YXJnZXRUaW1lIDw9
IGN1cnJlbnRUaW1lLiBVc2VkIG9uIGZvcndhcmQgcGxheWJhY2ssIHdoZW4gcGxheWJhY2tSYXRl
ID49IDAuCisgICAgICAgICAgICBCYWNrd2FyZCAvLyBTY2hlZHVsZSB3aGVuIHRhcmdldFRpbWUg
Pj0gY3VycmVudFRpbWUuIFVzZWQgb24gYmFja3dhcmQgcGxheWJhY2ssIHdoZW4gcGxheWJhY2tS
YXRlIDwgMC4KKyAgICAgICAgfTsKKyAgICAgICAgdm9pZCBzZXRUYXNrKEZ1bmN0aW9uPHZvaWQo
KT4mJiB0YXNrLCBjb25zdCBNZWRpYVRpbWUmIHRhcmdldFRpbWUsIFBsYXliYWNrRGlyZWN0aW9u
IHBsYXliYWNrRGlyZWN0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICBtX3RhcmdldFRpbWUg
PSB0YXJnZXRUaW1lOworICAgICAgICAgICAgbV90YXNrID0gV1RGTW92ZSh0YXNrKTsKKyAgICAg
ICAgICAgIG1fcGxheWJhY2tEaXJlY3Rpb24gPSBwbGF5YmFja0RpcmVjdGlvbjsKKyAgICAgICAg
fQorICAgICAgICBPcHRpb25hbDxGdW5jdGlvbjx2b2lkKCk+PiBjaGVja1Rhc2tGb3JTY2hlZHVs
aW5nKGNvbnN0IE1lZGlhVGltZSYgY3VycmVudFRpbWUpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICghbV90YXJnZXRUaW1lLmlzVmFsaWQoKSB8fCAhY3VycmVudFRpbWUuaXNGaW5pdGUoKQor
ICAgICAgICAgICAgICAgIHx8IChtX3BsYXliYWNrRGlyZWN0aW9uID09IEZvcndhcmQgJiYgY3Vy
cmVudFRpbWUgPCBtX3RhcmdldFRpbWUpCisgICAgICAgICAgICAgICAgfHwgKG1fcGxheWJhY2tE
aXJlY3Rpb24gPT0gQmFja3dhcmQgJiYgY3VycmVudFRpbWUgPiBtX3RhcmdldFRpbWUpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBPcHRpb25hbDxGdW5jdGlvbjx2b2lkKCk+PigpOworICAgICAg
ICAgICAgbV90YXJnZXRUaW1lID0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOworICAgICAgICAg
ICAgcmV0dXJuIFdURk1vdmUobV90YXNrKTsKKyAgICAgICAgfQorICAgIHByaXZhdGU6CisgICAg
ICAgIE1lZGlhVGltZSBtX3RhcmdldFRpbWUgPSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7Cisg
ICAgICAgIFBsYXliYWNrRGlyZWN0aW9uIG1fcGxheWJhY2tEaXJlY3Rpb24gPSBGb3J3YXJkOwor
ICAgICAgICBGdW5jdGlvbjx2b2lkKCk+IG1fdGFzayA9IEZ1bmN0aW9uPHZvaWQoKT4oKTsKKyAg
ICB9OworCiAgICAgYm9vbCBpc1BsYXllclNodXR0aW5nRG93bigpIGNvbnN0IHsgcmV0dXJuIG1f
aXNQbGF5ZXJTaHV0dGluZ0Rvd24ubG9hZCgpOyB9CiAgICAgTWVkaWFUaW1lIG1heFRpbWVMb2Fk
ZWQoKSBjb25zdDsKICAgICB2b2lkIHNldFZpZGVvU291cmNlT3JpZW50YXRpb24oSW1hZ2VPcmll
bnRhdGlvbik7CkBAIC00NTcsNiArNDg2LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdm9p
ZCBjb25maWd1cmVNZWRpYVN0cmVhbUF1ZGlvVHJhY2tzKCk7CisgICAgdm9pZCBpbnZhbGlkYXRl
Q2FjaGVkUG9zaXRpb25Pbk5leHRJdGVyYXRpb24oKSBjb25zdDsKIAogICAgIEF0b21pYzxib29s
PiBtX2lzUGxheWVyU2h1dHRpbmdEb3duOwogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV90ZXh0
U2luazsKQEAgLTQ5MCw3ICs1MjAsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgdW5zaWduZWQg
bG9uZyBsb25nIG1fdG90YWxCeXRlcyB7IDAgfTsKICAgICBVUkwgbV91cmw7CiAgICAgYm9vbCBt
X3Nob3VsZFByZXNlcnZlUGl0Y2ggeyBmYWxzZSB9OwotICAgIG11dGFibGUgT3B0aW9uYWw8U2Vj
b25kcz4gbV9sYXN0UXVlcnlUaW1lOwogICAgIGJvb2wgbV9pc0xlZ2FjeVBsYXliaW47CiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBtX3N0
cmVhbVByaXZhdGU7CkBAIC01MzUsNiArNTY0LDggQEAgcHJpdmF0ZToKICAgICAvLyBUaGlzIGlz
IHNldCB0byB0cnVlIGlmIG5vIHZpZGVvZmxpcCBlbGVtZW50IGhhcyBiZWVuIGFkZGVkIHRvIHRo
ZSBwaXBlbGluZS4KICAgICBib29sIG1fc2hvdWxkSGFuZGxlT3JpZW50YXRpb25UYWdzIHsgZmFs
c2UgfTsKIAorICAgIFdURjo6RGF0YU11dGV4PFRhc2tBdE1lZGlhVGltZVNjaGVkdWxlcj4gbV9U
YXNrQXRNZWRpYVRpbWVTY2hlZHVsZXJEYXRhTXV0ZXg7CisKIHByaXZhdGU6CiAjaWYgVVNFKFdQ
RV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKICAgICBHVW5pcXVlUHRyPHN0cnVjdCB3cGVf
dmlkZW9fcGxhbmVfZGlzcGxheV9kbWFidWZfc291cmNlPiBtX3dwZVZpZGVvUGxhbmVEaXNwbGF5
RG1hQnVmOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDJlNTIxNjc2ZDk3N2E0N2Y2YzMxOTM3NjQ4MWVlNGY5ZGQ4NzllNDIu
LmZhZjk1MjNlMGE2OTcxNDhjMzczZGVhOWMyMjlhZjAwYTIyMzU2ZmYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAyMS0wNS0yNSAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIExheW91dCB0ZXN0IG1lZGlhL3RyYWNrL3RyYWNr
LWN1ZS1taXNzaW5nLmh0bWwgaXMgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxpY2lh
IEJveWEgR2FyY2lhLgorCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25z
OiBVbnNraXBwZWQgdGVzdC4KKwogMjAyMS0wNS0xMyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIENoZWNrIGZvciBudWxsIGVsZW1lbnQgaW4gcGFpbnRTZWFyY2hGaWVs
ZFJlc3VsdHNCdXR0b24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCA4YTUxZmJmYTFjNDNjNDM1ZDYyMDViYjVhYjdiODI0OGIyM2Q0YjllLi4xYzg0NzRm
ODRjMjQ5NDBmYzgwMDk1ODE2NWZhYWNlY2U2Njc5ZjFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjYzLDggKzIyNjMsNiBAQCB3ZWJraXQub3Jn
L2IvMTg2NjM4IG1lZGlhL3ZpZGVvLXJlbW90ZS1jb250cm9sLXBsYXlwYXVzZS5odG1sIFsgRmFp
bHVyZSBUaW1lb3V0CiB3ZWJraXQub3JnL2IvMTg2NjY0IG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5l
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xODY2NzkgbWVkaWEvdmlkZW8tY3VycmVu
dFRpbWUtZGVsYXkuaHRtbCBbIENyYXNoIFBhc3MgVGltZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8x
OTEwMDQgbWVkaWEvdHJhY2svdHJhY2stY3VlLW1pc3NpbmcuaHRtbCBbIEZhaWx1cmUgXQotCiB3
ZWJraXQub3JnL2IvMTk4ODI3IG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGlu
ZS5odG1sIFsgVGltZW91dCBQYXNzIENyYXNoIF0KIHdlYmtpdC5vcmcvYi8xOTg4MjcgbWVkaWEv
dmlkZW8tZW5kZWQtZXZlbnQtc2xvdy1tb3Rpb24tcGxheWJhY2suaHRtbCBbIFRpbWVvdXQgUGFz
cyBdCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>