<?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>207153</bug_id>
          
          <creation_ts>2020-02-03 15:08:21 -0800</creation_ts>
          <short_desc>Timestamps should be the same for all rendering update steps</short_desc>
          <delta_ts>2020-06-24 12:48:00 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159038</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=210990</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=213543</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jason Lawrence">Lawrence.j</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>jacob_uphoff</cc>
    
    <cc>kangil.han</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1614201</commentid>
    <comment_count>0</comment_count>
    <who name="Jason Lawrence">Lawrence.j</who>
    <bug_when>2020-02-03 15:08:21 -0800</bug_when>
    <thetext>animations/animation-callback-timestamp.html 

Description:
This test is flaky failing on iOS wk2.

History:
https://results.webkit.org/?limit=50000&amp;platform=ios&amp;suite=layout-tests&amp;test=animations%2Fanimation-callback-timestamp.html

Diff:
--- /Volumes/Data/slave/ipados-simulator-13-debug-tests-wk2/build/layout-test-results/animations/animation-callback-timestamp-expected.txt
+++ /Volumes/Data/slave/ipados-simulator-13-debug-tests-wk2/build/layout-test-results/animations/animation-callback-timestamp-actual.txt
@@ -1,4 +1,5 @@
-PASS All the differences between requestAnimationFrame() callback timestamps and Performance.now() were within 3ms.
+requestAnimationFrame() timestamp = 634, window.performance.now() = 649
+FAIL Some of the requestAnimationFrame() callback timestamps were larger than Performance.now() by more than 3ms.
 PASS successfullyParsed is true
 
 TEST COMPLETE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614202</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-03 15:08:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/59127682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614206</commentid>
    <comment_count>2</comment_count>
      <attachid>389578</attachid>
    <who name="Jason Lawrence">Lawrence.j</who>
    <bug_when>2020-02-03 15:14:41 -0800</bug_when>
    <thetext>Created attachment 389578
Update Test Expectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614222</commentid>
    <comment_count>3</comment_count>
      <attachid>389578</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-02-03 15:31:45 -0800</bug_when>
    <thetext>Comment on attachment 389578
Update Test Expectations

Clearing flags on attachment: 389578

Committed r255606: &lt;https://trac.webkit.org/changeset/255606&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614596</commentid>
    <comment_count>4</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-02-04 09:45:13 -0800</bug_when>
    <thetext>I see an instance of this test failing on 11/10/2019 @ r252317.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617485</commentid>
    <comment_count>5</comment_count>
    <who name="Jacob Uphoff">jacob_uphoff</who>
    <bug_when>2020-02-11 10:45:25 -0800</bug_when>
    <thetext>This test is also failing on macOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617492</commentid>
    <comment_count>6</comment_count>
    <who name="Jacob Uphoff">jacob_uphoff</who>
    <bug_when>2020-02-11 10:50:30 -0800</bug_when>
    <thetext>Updated test expectations here:https: //trac.webkit.org/changeset/256319/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617557</commentid>
    <comment_count>7</comment_count>
    <who name="Jason Lawrence">Lawrence.j</who>
    <bug_when>2020-02-11 12:55:37 -0800</bug_when>
    <thetext>I am able to reproduce this issue on r256303 with the command below.
run-webkit-tests animations/animation-callback-timestamp.html --iterations 5000 -f --ios-simulator --debug --force --child-processes 1

[70/5000] animations/animation-callback-timestamp.html failed unexpectedly (WebKitTestRunnerApp crashed [pid=48974])
Retrying 1 unexpected failure ...
Running 1 WebKitTestRunnerApp.app
4999 tests ran as expected, 1 didn&apos;t:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644001</commentid>
    <comment_count>8</comment_count>
      <attachid>397116</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-21 13:42:20 -0700</bug_when>
    <thetext>Created attachment 397116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644002</commentid>
    <comment_count>9</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-21 13:46:45 -0700</bug_when>
    <thetext>The test was checkin whether the difference between the rAF callback timestamp and the window.performance.now() is less than 3ms. This may fail on slow and busy hardware where calling the JavaScript callback and executing some of its code may take 3ms or more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644171</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-21 20:08:50 -0700</bug_when>
    <thetext>Isn&apos;t this reflecting a bug in our implementation, where we don&apos;t freeze Performance.now() for the &quot;update the rendering&quot; steps? See https://html.spec.whatwg.org/multipage/webappapis.html#event-loop-processing-model step 9.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644706</commentid>
    <comment_count>11</comment_count>
      <attachid>397326</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-23 01:09:21 -0700</bug_when>
    <thetext>Created attachment 397326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644710</commentid>
    <comment_count>12</comment_count>
      <attachid>397328</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-23 01:25:55 -0700</bug_when>
    <thetext>Created attachment 397328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644711</commentid>
    <comment_count>13</comment_count>
      <attachid>397328</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-23 01:33:32 -0700</bug_when>
    <thetext>Comment on attachment 397328
Patch

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

&gt; Source/WebCore/page/DOMWindow.cpp:752
&gt; +

These names are pretty generic and do not suggest what is being frozen. I&apos;m not sure what value having those methods on DOMWindow serves either, there is a single call site for either of those methods, feels like they could go through `performance()` directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644782</commentid>
    <comment_count>14</comment_count>
      <attachid>397328</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-23 08:48:32 -0700</bug_when>
    <thetext>Comment on attachment 397328
Patch

Actually, reading the specs some more, I&apos;m not sure that performance.now() should be frozen, but we do want the intersectionObserver part of the patch. Could you make a test that tests whether perf.now() is frozen in other browsers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644786</commentid>
    <comment_count>15</comment_count>
      <attachid>397345</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-23 08:58:47 -0700</bug_when>
    <thetext>Created attachment 397345
Test for frozen performance.now()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644826</commentid>
    <comment_count>16</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-23 10:16:39 -0700</bug_when>
    <thetext>Note that document.timeline.currentTime is frozen as well and matches the rAF timestamp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645088</commentid>
    <comment_count>17</comment_count>
      <attachid>397428</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-23 22:17:42 -0700</bug_when>
    <thetext>Created attachment 397428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645125</commentid>
    <comment_count>18</comment_count>
      <attachid>397439</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-24 01:45:18 -0700</bug_when>
    <thetext>Created attachment 397439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645228</commentid>
    <comment_count>19</comment_count>
      <attachid>397439</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-24 09:51:02 -0700</bug_when>
    <thetext>Comment on attachment 397439
Patch

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

&gt; Source/WebCore/page/DOMWindow.h:355
&gt;      WEBCORE_EXPORT double nowTimestamp() const;
&gt; +    void freezeNowTimestamp();
&gt; +    void unfreezeNowTimestamp();
&gt; +    double frozenNowTimestamp() const;

It should would be nice of nowTimestamp() and frozenNowTimestamp() returned Seconds.

&gt; Source/WebCore/page/DOMWindow.h:475
&gt; +    Optional&lt;double&gt; m_frozenNowTimestamp;

Seconds

&gt; Source/WebCore/page/IntersectionObserver.cpp:258
&gt; +        timestamp = std::round(1000 * window-&gt;frozenNowTimestamp());

We need a Seconds -&gt; DOMHighResTimeStamp helper somewhere.

&gt; Source/WebCore/page/Page.cpp:1330
&gt; +    Vector&lt;WeakPtr&lt;Document&gt;&gt; initialDocuments;
&gt; +    forEachDocument([&amp;initialDocuments] (Document&amp; document) {
&gt; +        document.domWindow()-&gt;freezeNowTimestamp();
&gt; +        initialDocuments.append(makeWeakPtr(&amp;document));
&gt; +    });

I think it&apos;s OK to do it like this for now, but longer term I&apos;d like to see the frozen &quot;now&quot; time be generated in this function, and passed down into all the functions that need it. That would require having each document compute its own frozen now time based on its time origin, but it would be nicer than storing temporary state on DOMWindow.

&gt; Source/WebCore/page/Page.cpp:1349
&gt; -        DOMHighResTimeStamp timestamp = document.domWindow()-&gt;nowTimestamp();
&gt; +        DOMHighResTimeStamp timestamp = document.domWindow()-&gt;frozenNowTimestamp();

Wait, do we need some seconds/milliseconds conversion here? The lack of types makes it hard to know.

&gt; LayoutTests/intersection-observer/intersection-observer-callback-timestamp.html:1
&gt; +&lt;!DOCTYPE HTML&gt;

This should be a WPT if there&apos;s no test that detected our buggy behavior.

&gt; LayoutTests/intersection-observer/intersection-observer-callback-timestamp.html:6
&gt; +&lt;style&gt;

&lt;style&gt; should go in the &lt;head&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646141</commentid>
    <comment_count>20</comment_count>
      <attachid>397719</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-27 12:38:14 -0700</bug_when>
    <thetext>Created attachment 397719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646148</commentid>
    <comment_count>21</comment_count>
      <attachid>397439</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-27 12:48:52 -0700</bug_when>
    <thetext>Comment on attachment 397439
Patch

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

&gt;&gt; Source/WebCore/page/DOMWindow.h:355
&gt;&gt; +    double frozenNowTimestamp() const;
&gt; 
&gt; It should would be nice of nowTimestamp() and frozenNowTimestamp() returned Seconds.

Done in https://bugs.webkit.org/show_bug.cgi?id=210990.

&gt;&gt; Source/WebCore/page/DOMWindow.h:475
&gt;&gt; +    Optional&lt;double&gt; m_frozenNowTimestamp;
&gt; 
&gt; Seconds

Ditto.

&gt;&gt; Source/WebCore/page/IntersectionObserver.cpp:258
&gt;&gt; +        timestamp = std::round(1000 * window-&gt;frozenNowTimestamp());
&gt; 
&gt; We need a Seconds -&gt; DOMHighResTimeStamp helper somewhere.

No need to convert Seconds -&gt; DOMHighResTimeStamp since DOMWindow::frozenNowTimestamp() and IntersectionObserver::nowTimestamp() are now returning Seconds.

&gt;&gt; Source/WebCore/page/Page.cpp:1330
&gt;&gt; +    });
&gt; 
&gt; I think it&apos;s OK to do it like this for now, but longer term I&apos;d like to see the frozen &quot;now&quot; time be generated in this function, and passed down into all the functions that need it. That would require having each document compute its own frozen now time based on its time origin, but it would be nicer than storing temporary state on DOMWindow.

I tried that but some of the IntersectionObserver test failed. The reason is an IntersectionObserver in a document can observe element in another document. So passing the frozenTimestamp of a document here to Document::updateIntersectionObservations() will not help if the element belongs to another document.

&gt;&gt; Source/WebCore/page/Page.cpp:1349
&gt;&gt; +        DOMHighResTimeStamp timestamp = document.domWindow()-&gt;frozenNowTimestamp();
&gt; 
&gt; Wait, do we need some seconds/milliseconds conversion here? The lack of types makes it hard to know.

We do need the conversion anymore since DOMWindow::frozenNowTimestamp() now returns ReducedResolutionSeconds and Document::serviceRequestAnimationFrameCallbacks() and DocumentTimelinesController::updateAnimationsAndSendEvents() both take ReducedResolutionSeconds.

&gt;&gt; LayoutTests/intersection-observer/intersection-observer-callback-timestamp.html:1
&gt;&gt; +&lt;!DOCTYPE HTML&gt;
&gt; 
&gt; This should be a WPT if there&apos;s no test that detected our buggy behavior.

Will do.

&gt;&gt; LayoutTests/intersection-observer/intersection-observer-callback-timestamp.html:6
&gt;&gt; +&lt;style&gt;
&gt; 
&gt; &lt;style&gt; should go in the &lt;head&gt;

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646257</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-27 15:06:56 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #21)
&gt; Comment on attachment 397439 [details]

&gt; &gt; I think it&apos;s OK to do it like this for now, but longer term I&apos;d like to see the frozen &quot;now&quot; time be generated in this function, and passed down into all the functions that need it. That would require having each document compute its own frozen now time based on its time origin, but it would be nicer than storing temporary state on DOMWindow.
&gt; 
&gt; I tried that but some of the IntersectionObserver test failed. The reason is
&gt; an IntersectionObserver in a document can observe element in another
&gt; document. So passing the frozenTimestamp of a document here to
&gt; Document::updateIntersectionObservations() will not help if the element
&gt; belongs to another document.

That was exactly my point with &apos;That would require having each document compute its own frozen now time based on its time origin&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646267</commentid>
    <comment_count>23</comment_count>
      <attachid>397751</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-27 15:34:42 -0700</bug_when>
    <thetext>Created attachment 397751
Patch

Unmark animation tests as failed in the TestExpectations files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646320</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-27 17:22:55 -0700</bug_when>
    <thetext>Committed r260800: &lt;https://trac.webkit.org/changeset/260800&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397751.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389578</attachid>
            <date>2020-02-03 15:14:41 -0800</date>
            <delta_ts>2020-02-03 15:32:23 -0800</delta_ts>
            <desc>Update Test Expectations</desc>
            <filename>bug-207153-20200203151440.patch</filename>
            <type>text/plain</type>
            <size>1432</size>
            <attacher name="Jason Lawrence">Lawrence.j</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjAzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWQ3MTM0M2JiYmMyYzQyMzc1MDhl
YmIzZDc1ZTAzOTE4NDZiMzZhNC4uZTQwZDU1NWVlNDUxOThiMzVjNjdmYzExYmYxMWRmZTBiYTIw
OTNhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAyLTAzICBKYXNvbiBMYXdyZW5jZSAg
PGxhd3JlbmNlLmpAYXBwbGUuY29tPgorCisgICAgICAgIFsgaU9TIHdrMiBdIGFuaW1hdGlvbnMv
YW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sIGlzIGZsYWt5IGZhaWxpbmcuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxNTMKKworICAg
ICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vaW9z
LXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAyLTAzICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgMTNdIERyYWdnaW5nIG9uLXNjcmVl
biB2b2x1bWUgY29udHJvbCBvbiBhIFlvdVR1YmUgdmlkZW8gc2VsZWN0cyB0ZXh0IGFyb3VuZCB0
aGUgcGFuZWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCBkOWNjOTgxY2Y1ZTk3MzY1NDc5MDI3YTJkMTE2YmFjMzRlZjM2Yjc4Li4wZTY0NGNi
OTkyM2IzMmI3MGMxOTA1MzNhZWExNTNhOWEyMTMxNzk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzY1LDMgKzEzNjUsNSBAQCB3ZWJr
aXQub3JnL2IvMjA2OTY1IHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1w
cml2YXRlLmh0bWwgWyBQYXNzCiB3ZWJraXQub3JnL2IvMjA1MzA5IHNjcm9sbGluZ2Nvb3JkaW5h
dG9yL2lvcy9zY3JvbGwtcG9zaXRpb24tYWZ0ZXItcmVhdHRhY2guaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMjA2OTkzIFsgUmVsZWFzZSBdICBmYXN0L2hpZHBpL2lt
YWdlLXNyY3NldC1yZWxhdGl2ZS1zdmctY2FudmFzLTJ4Lmh0bWwgWyBQYXNzIEltYWdlT25seUZh
aWx1cmUgXQorCit3ZWJraXQub3JnL2IvMjA3MTUzIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxi
YWNrLXRpbWVzdGFtcC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397116</attachid>
            <date>2020-04-21 13:42:20 -0700</date>
            <delta_ts>2020-04-23 01:09:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207153-20200421134219.patch</filename>
            <type>text/plain</type>
            <size>3781</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI2MDQ0OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA0LTIxICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgWyBtYWNPUyBpT1MgXSBhbmlt
YXRpb25zL2FuaW1hdGlvbi1jYWxsYmFjay10aW1lc3RhbXAuaHRtbCBpcyBmbGFreSBmYWlsaW5n
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MTUz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGZs
YWtpbmVzcyBjYW4gYmUgZml4ZWQgYnkgZW5zdXJpbmcgdGhlIHRpbWVzdGFtcCBhbmQgUGVyZm9y
bWFuY2Uubm93KCkKKyAgICAgICAgYXJlIGFsd2F5cyBpbiBvcmRlci4gSW4gb3RoZXIgd29yZHMs
IGNoZWNrOgorICAgICAgICAgICAgcGVyZm9ybWFuY2VOb3dQcmV2aW91cyA8IHRpbWVzdGFtcCA8
IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKQorCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRp
b24tY2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhbmltYXRpb25z
L2FuaW1hdGlvbi1jYWxsYmFjay10aW1lc3RhbXAuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25z
L2R1cGxpY2F0ZS1rZXlzLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9kdXBs
aWNhdGUta2V5cy5odG1sOgorCiAyMDIwLTA0LTIwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEhvcml6b250YWwgb3ZlcmZsb3cgb3ZlcmxheSBzY3Jv
bGxiYXIgaXMgbWlzcGxhY2VkIGluIFJUTApJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9h
bmltYXRpb24tY2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1jYWxsYmFjay10aW1lc3RhbXAtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAyNjAwMjApCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1h
dGlvbi1jYWxsYmFjay10aW1lc3RhbXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDQgKzEsNCBAQAotUEFTUyBBbGwgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gcmVxdWVzdEFuaW1h
dGlvbkZyYW1lKCkgY2FsbGJhY2sgdGltZXN0YW1wcyBhbmQgUGVyZm9ybWFuY2Uubm93KCkgd2Vy
ZSB3aXRoaW4gM21zLgorUEFTUyBBbGwgdGltZXN0YW1wcyBhbmQgUGVyZm9ybWFuY2Uubm93KCkg
YXJlIGluIG9yZGVyLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1jYWxsYmFjay10
aW1lc3RhbXAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1h
dGlvbi1jYWxsYmFjay10aW1lc3RhbXAuaHRtbAkocmV2aXNpb24gMjYwMDIwKQorKysgTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJhY2stdGltZXN0YW1wLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTYsMTQgKzYsMTUgQEAKIDxib2R5PgogICAgIDxzY3JpcHQ+CiAgICAgICAg
IHZhciBjdXJyZW50RnJhbWUgPSAwOworICAgICAgICB2YXIgcGVyZm9ybWFuY2VOb3dQcmV2aW91
cyA9IDA7CiAgICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKIAogICAgICAgICBmdW5jdGlvbiBm
aW5pc2hUZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKGZhaWxlZCkKLSAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJTb21lIG9mIHRoZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBj
YWxsYmFjayB0aW1lc3RhbXBzIHdlcmUgbGFyZ2VyIHRoYW4gUGVyZm9ybWFuY2Uubm93KCkgYnkg
bW9yZSB0aGFuIDNtcy4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBbGwgdGltZXN0
YW1wcyBhbmQgUGVyZm9ybWFuY2Uubm93KCkgYXJlIG91dCBvZiBvcmRlci4iKTsKICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJBbGwgdGhlIGRpZmZlcmVuY2Vz
IGJldHdlZW4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkgY2FsbGJhY2sgdGltZXN0YW1wcyBhbmQg
UGVyZm9ybWFuY2Uubm93KCkgd2VyZSB3aXRoaW4gM21zLiIpCisgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiQWxsIHRpbWVzdGFtcHMgYW5kIFBlcmZvcm1hbmNlLm5vdygpIGFyZSBpbiBvcmRl
ci4iKTsKICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9CiAgICAgICAgIApA
QCAtMjMsOSArMjQsMTUgQEAKICAgICAgICAgICAgIGNvbnN0IFdhcm11cEZyYW1lcyA9IDU7CiAK
ICAgICAgICAgICAgIHZhciBwZXJmb3JtYW5jZU5vdyA9IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3co
KTsKLSAgICAgICAgICAgIGlmICgrK2N1cnJlbnRGcmFtZSA+IFdhcm11cEZyYW1lcyAmJiBNYXRo
LmFicyh0aW1lc3RhbXAgLSBwZXJmb3JtYW5jZU5vdykgPj0gVG9sZXJhbmNlKSB7Ci0gICAgICAg
ICAgICAgICAgZGVidWcoInJlcXVlc3RBbmltYXRpb25GcmFtZSgpIHRpbWVzdGFtcCA9ICIgKyB0
aW1lc3RhbXAgKyAiLCB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkgPSAiICsgcGVyZm9ybWFuY2VO
b3cpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoKytj
dXJyZW50RnJhbWUgPiBXYXJtdXBGcmFtZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAodGltZXN0
YW1wIDwgcGVyZm9ybWFuY2VOb3dQcmV2aW91cykgeworICAgICAgICAgICAgICAgICAgICBkZWJ1
ZygicmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkgdGltZXN0YW1wID0gIiArIHRpbWVzdGFtcCArICIs
IFByZXZpb3VzIHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSA9ICIgKyBwZXJmb3JtYW5jZU5vd1By
ZXZpb3VzKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICB9IAorICAgICAgICAgICAgICAgIGlmICh0aW1lc3RhbXAgPiBwZXJmb3JtYW5jZU5vdykg
eworICAgICAgICAgICAgICAgICAgICBkZWJ1ZygicmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkgdGlt
ZXN0YW1wID0gIiArIHRpbWVzdGFtcCArICIsIHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSA9ICIg
KyBwZXJmb3JtYW5jZU5vdyk7CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjb25zdCBNYXhG
cmFtZXMgPSAyNTsKQEAgLTMzLDYgKzQwLDggQEAKICAgICAgICAgICAgICAgICBmaW5pc2hUZXN0
KCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKGRvQW5pbWF0aW9uKTsKKworICAgICAgICAgICAgcGVyZm9ybWFuY2VOb3dQcmV2aW91cyA9
IHBlcmZvcm1hbmNlTm93OwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397326</attachid>
            <date>2020-04-23 01:09:21 -0700</date>
            <delta_ts>2020-04-23 01:25:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207153-20200423010920.patch</filename>
            <type>text/plain</type>
            <size>17890</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MDU1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDIwLTA0LTIzICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUGVyZm9ybWFu
Y2Uubm93KCkgc2hvdWxkIGJlIGZyb3plbiB3aGVuIHNlcnZpbmcgdGhlIHJlbmRlcmluZyB1cGRh
dGUgc3RlcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBIVE1MIDUgZXZlbnQgbG9vcCBzZXBjcyBzdGF0ZXMgdGhhdCBQZXJmb3JtYW5jZS5ub3co
KSBzaG91bGQgYmUgZnJvemVuCisgICAgICAgIHRpbGwgYWxsIHRoZSByZW5kZXJpbmcgdXBkYXRl
IHN0ZXBzIGFyZSBzZXJ2ZWQuCisKKyAgICAgICAgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2V2ZW50LWxvb3AtcHJvY2Vzc2luZy1tb2RlbAor
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
Ojp1cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZhdGlvbnMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6ZnJlZXplTm93KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6dW5mcmVl
emVOb3cpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9JbnRl
cnNlY3Rpb25PYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNl
cnZlcjo6Y3JlYXRlVGltZXN0YW1wIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0lu
dGVyc2VjdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OnVwZGF0ZVJlbmRlcmluZyk6CisgICAgICAgICogcGFnZS9QZXJmb3Jt
YW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6bm93IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjpmcmVlemVOb3cpOgorICAgICAgICAoV2ViQ29y
ZTo6UGVyZm9ybWFuY2U6OnVuZnJlZXplTm93KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNl
Lmg6CisKIDIwMjAtMDQtMjIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBlYWdlcmx5IGFwcGx5IHNjcm9sbGluZyB0
cmVlIHN0YXRlIGZyb20gdGhlIG1haW4gdGhyZWFkCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAJKHJldmlzaW9uIDI2MDAyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc2MjIsNyArNzYyMiw3IEBAIHN0YXRpYyBPcHRpb25hbDxJbnRl
cnNlY3Rpb25PYnNlcnZhdGlvblMKICAgICByZXR1cm4gaW50ZXJzZWN0aW9uU3RhdGU7CiB9CiAK
LXZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmF0aW9ucygpCit2b2lkIERv
Y3VtZW50Ojp1cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZhdGlvbnMoRE9NSGlnaFJlc1RpbWVTdGFt
cCB0aW1lc3RhbXApCiB7CiAgICAgYXV0byogZnJhbWVWaWV3ID0gdmlldygpOwogICAgIGlmICgh
ZnJhbWVWaWV3KQpAQCAtNzYzNiw5ICs3NjM2LDYgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSW50
ZXJzZWN0aW9uT2JzZXJ2YQogCiAgICAgZm9yIChjb25zdCBhdXRvJiBvYnNlcnZlciA6IG1faW50
ZXJzZWN0aW9uT2JzZXJ2ZXJzKSB7CiAgICAgICAgIGJvb2wgbmVlZE5vdGlmeSA9IGZhbHNlOwot
ICAgICAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVzdGFtcDsKLSAgICAgICAgaWYgKCFvYnNl
cnZlci0+Y3JlYXRlVGltZXN0YW1wKHRpbWVzdGFtcCkpCi0gICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgZm9yIChFbGVtZW50KiB0YXJnZXQgOiBvYnNlcnZlci0+b2JzZXJ2YXRpb25UYXJn
ZXRzKCkpIHsKICAgICAgICAgICAgIGF1dG8mIHRhcmdldFJlZ2lzdHJhdGlvbnMgPSB0YXJnZXQt
PmludGVyc2VjdGlvbk9ic2VydmVyRGF0YUlmRXhpc3RzKCktPnJlZ2lzdHJhdGlvbnM7CiAgICAg
ICAgICAgICBhdXRvIGluZGV4ID0gdGFyZ2V0UmVnaXN0cmF0aW9ucy5maW5kTWF0Y2hpbmcoW29i
c2VydmVyXShhdXRvJiByZWdpc3RyYXRpb24pIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShy
ZXZpc2lvbiAyNjAwMjApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQwMSw3ICsxNDAxLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImKTsKICAgICB2b2lkIHJlbW92ZUlu
dGVyc2VjdGlvbk9ic2VydmVyKEludGVyc2VjdGlvbk9ic2VydmVyJik7CiAgICAgdW5zaWduZWQg
bnVtYmVyT2ZJbnRlcnNlY3Rpb25PYnNlcnZlcnMoKSBjb25zdCB7IHJldHVybiBtX2ludGVyc2Vj
dGlvbk9ic2VydmVycy5zaXplKCk7IH0KLSAgICB2b2lkIHVwZGF0ZUludGVyc2VjdGlvbk9ic2Vy
dmF0aW9ucygpOworICAgIHZvaWQgdXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25zKERPTUhp
Z2hSZXNUaW1lU3RhbXApOwogICAgIHZvaWQgc2NoZWR1bGVJbml0aWFsSW50ZXJzZWN0aW9uT2Jz
ZXJ2YXRpb25VcGRhdGUoKTsKICAgICBJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEmIGVuc3VyZUlu
dGVyc2VjdGlvbk9ic2VydmVyRGF0YSgpOwogICAgIEludGVyc2VjdGlvbk9ic2VydmVyRGF0YSog
aW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhSWZFeGlzdHMoKSB7IHJldHVybiBtX2ludGVyc2VjdGlv
bk9ic2VydmVyRGF0YS5nZXQoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAko
cmV2aXNpb24gMjYwMDIwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03MzksNiArNzM5LDE2IEBAIGRvdWJsZSBET01XaW5kb3c6Om5vd1Rp
bWVzdGFtcCgpIGNvbnN0CiAgICAgcmV0dXJuIHBlcmZvcm1hbmNlKCkubm93KCkgLyAxMDAwLjsK
IH0KIAordm9pZCBET01XaW5kb3c6OmZyZWV6ZU5vdygpCit7CisgICAgcGVyZm9ybWFuY2UoKS5m
cmVlemVOb3coKTsKK30KKwordm9pZCBET01XaW5kb3c6OnVuZnJlZXplTm93KCkKK3sKKyAgICBw
ZXJmb3JtYW5jZSgpLnVuZnJlZXplTm93KCk7Cit9CisKIExvY2F0aW9uJiBET01XaW5kb3c6Omxv
Y2F0aW9uKCkKIHsKICAgICBpZiAoIW1fbG9jYXRpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmgJKHJldmlzaW9uIDI2MDAyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1MCw2ICszNTAsOCBAQCBwdWJsaWM6CiAKICAgICBQZXJm
b3JtYW5jZSYgcGVyZm9ybWFuY2UoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUg
bm93VGltZXN0YW1wKCkgY29uc3Q7CisgICAgdm9pZCBmcmVlemVOb3coKTsKKyAgICB2b2lkIHVu
ZnJlZXplTm93KCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgaW5jcmVt
ZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAJKHJldmlzaW9uIDI2MDAyMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNDQsMjMgKzI0NCw2IEBAIHZvaWQgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnJvb3REZXN0cm95
ZWQKICAgICBtX3Jvb3QgPSBudWxscHRyOwogfQogCi1ib29sIEludGVyc2VjdGlvbk9ic2VydmVy
OjpjcmVhdGVUaW1lc3RhbXAoRE9NSGlnaFJlc1RpbWVTdGFtcCYgdGltZXN0YW1wKSBjb25zdAot
ewotICAgIGlmICghbV9jYWxsYmFjaykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgYXV0
byogY29udGV4dCA9IG1fY2FsbGJhY2stPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBp
ZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBBU1NFUlQoY29udGV4dC0+
aXNEb2N1bWVudCgpKTsKLSAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigq
Y29udGV4dCk7Ci0gICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LmRvbVdpbmRvdygpKSB7
Ci0gICAgICAgIHRpbWVzdGFtcCA9ICB3aW5kb3ctPnBlcmZvcm1hbmNlKCkubm93KCk7Ci0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQgSW50
ZXJzZWN0aW9uT2JzZXJ2ZXI6OmFwcGVuZFF1ZXVlZEVudHJ5KFJlZjxJbnRlcnNlY3Rpb25PYnNl
cnZlckVudHJ5PiYmIGVudHJ5KQogewogICAgIEFTU0VSVChlbnRyeS0+dGFyZ2V0KCkpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaAkocmV2aXNpb24g
MjYwMDIwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC05NCw4ICs5NCw2IEBAIHB1YmxpYzoKICAgICBib29sIGhhc09ic2Vy
dmF0aW9uVGFyZ2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2YXRpb25UYXJnZXRzLnNpemUo
KTsgfQogICAgIHZvaWQgcm9vdERlc3Ryb3llZCgpOwogCi0gICAgYm9vbCBjcmVhdGVUaW1lc3Rh
bXAoRE9NSGlnaFJlc1RpbWVTdGFtcCYpIGNvbnN0OwotCiAgICAgdm9pZCBhcHBlbmRRdWV1ZWRF
bnRyeShSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeT4mJik7CiAgICAgdm9pZCBub3RpZnko
KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAyNjAwMjApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIyLDYgKzEzMjIsMTIg
QEAgdm9pZCBQYWdlOjp1cGRhdGVSZW5kZXJpbmcoKQogCiAgICAgbGF5b3V0SWZOZWVkZWQoKTsK
IAorICAgIFZlY3RvcjxXZWFrUHRyPERvY3VtZW50Pj4gZG9jdW1lbnRzOworICAgIGZvckVhY2hE
b2N1bWVudChbJmRvY3VtZW50c10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1
bWVudHMuYXBwZW5kKG1ha2VXZWFrUHRyKGRvY3VtZW50KSk7CisgICAgICAgIGRvY3VtZW50LmRv
bVdpbmRvdygpLT5mcmVlemVOb3coKTsKKyAgICB9KTsKKwogICAgIC8vIEZsdXNoIGF1dG9mb2N1
cyBjYW5kaWRhdGVzCiAKICAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVu
dCkgewpAQCAtMTMzOSw3ICsxMzQ1LDcgQEAgdm9pZCBQYWdlOjp1cGRhdGVSZW5kZXJpbmcoKQog
ICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGlm
ICghZG9jdW1lbnQuZG9tV2luZG93KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIERP
TUhpZ2hSZXNUaW1lU3RhbXAgdGltZXN0YW1wID0gZG9jdW1lbnQuZG9tV2luZG93KCktPm5vd1Rp
bWVzdGFtcCgpOworICAgICAgICBhdXRvIHRpbWVzdGFtcCA9IGRvY3VtZW50LmRvbVdpbmRvdygp
LT5ub3dUaW1lc3RhbXAoKTsKICAgICAgICAgZG9jdW1lbnQudXBkYXRlQW5pbWF0aW9uc0FuZFNl
bmRFdmVudHModGltZXN0YW1wKTsKICAgICAgICAgLy8gRklYTUU6IFJ1biB0aGUgZnVsbHNjcmVl
biBzdGVwcy4KICAgICAgICAgZG9jdW1lbnQuc2VydmljZVJlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrcyh0aW1lc3RhbXApOwpAQCAtMTM0OSw3ICsxMzU1LDggQEAgdm9pZCBQYWdlOjp1cGRh
dGVSZW5kZXJpbmcoKQogCiAjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNFUlZFUikKICAgICBm
b3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgewotICAgICAgICBkb2N1bWVu
dC51cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZhdGlvbnMoKTsKKyAgICAgICAgYXV0byB0aW1lc3Rh
bXAgPSBkb2N1bWVudC5kb21XaW5kb3coKS0+bm93VGltZXN0YW1wKCk7CisgICAgICAgIGRvY3Vt
ZW50LnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmF0aW9ucyh0aW1lc3RhbXApOwogICAgIH0pOwog
I2VuZGlmCiAKQEAgLTEzNjYsNiArMTM3MywxMSBAQCB2b2lkIFBhZ2U6OnVwZGF0ZVJlbmRlcmlu
ZygpCiAgICAgICAgIH0KICAgICB9KTsKIAorICAgIGZvciAoYXV0byYgZG9jdW1lbnQgOiBkb2N1
bWVudHMpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50KQorICAgICAgICAgICAgZG9jdW1lbnQtPmRv
bVdpbmRvdygpLT51bmZyZWV6ZU5vdygpOworICAgIH0KKwogICAgIGxheW91dElmTmVlZGVkKCk7
CiAgICAgZG9BZnRlclVwZGF0ZVJlbmRlcmluZygpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZS5jcHAJKHJldmlzaW9uIDI2MDAyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCwxMCArNzQsMjIgQEAgdm9pZCBQ
ZXJmb3JtYW5jZTo6Y29udGV4dERlc3Ryb3llZCgpCiAKIERPTUhpZ2hSZXNUaW1lU3RhbXAgUGVy
Zm9ybWFuY2U6Om5vdygpIGNvbnN0CiB7Ci0gICAgU2Vjb25kcyBub3cgPSBNb25vdG9uaWNUaW1l
Ojpub3coKSAtIG1fdGltZU9yaWdpbjsKKyAgICBTZWNvbmRzIG5vdyA9IG1fZnJvemVuTW9ub3Rv
bmljVGltZS52YWx1ZU9yKE1vbm90b25pY1RpbWU6Om5vdygpKSAtIG1fdGltZU9yaWdpbjsKICAg
ICByZXR1cm4gcmVkdWNlVGltZVJlc29sdXRpb24obm93KS5taWxsaXNlY29uZHMoKTsKIH0KIAor
dm9pZCBQZXJmb3JtYW5jZTo6ZnJlZXplTm93KCkKK3sKKyAgICBBU1NFUlQoIW1fZnJvemVuTW9u
b3RvbmljVGltZSk7CisgICAgbV9mcm96ZW5Nb25vdG9uaWNUaW1lID0gTW9ub3RvbmljVGltZTo6
bm93KCk7Cit9CisKK3ZvaWQgUGVyZm9ybWFuY2U6OnVuZnJlZXplTm93KCkKK3sKKyAgICBBU1NF
UlQobV9mcm96ZW5Nb25vdG9uaWNUaW1lKTsKKyAgICBtX2Zyb3plbk1vbm90b25pY1RpbWUgPSBX
VEY6Om51bGxvcHQ7Cit9CisKIFNlY29uZHMgUGVyZm9ybWFuY2U6OnJlZHVjZVRpbWVSZXNvbHV0
aW9uKFNlY29uZHMgc2Vjb25kcykKIHsKICAgICBkb3VibGUgcmVzb2x1dGlvbiA9ICgxMDAwX3Vz
KS5zZWNvbmRzKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCShyZXZpc2lvbiAy
NjAwMjApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU5LDYgKzU5LDkgQEAgcHVibGljOgogCiAgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBu
b3coKSBjb25zdDsKIAorICAgIHZvaWQgZnJlZXplTm93KCk7CisgICAgdm9pZCB1bmZyZWV6ZU5v
dygpOworCiAgICAgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKCk7CiAgICAgUGVy
Zm9ybWFuY2VUaW1pbmcqIHRpbWluZygpOwogCkBAIC0xMjAsNiArMTIzLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fd2FpdGluZ0ZvckJhY2t1cEJ1ZmZlclRvQmVQcm9jZXNzZWQgeyBmYWxzZSB9
OwogCiAgICAgTW9ub3RvbmljVGltZSBtX3RpbWVPcmlnaW47CisgICAgT3B0aW9uYWw8TW9ub3Rv
bmljVGltZT4gbV9mcm96ZW5Nb25vdG9uaWNUaW1lOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVz
ZXJUaW1pbmc+IG1fdXNlclRpbWluZzsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjYwNDQ5KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjAtMDQtMjMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKwor
ICAgICAgICBQZXJmb3JtYW5jZS5ub3coKSBzaG91bGQgYmUgZnJvemVuIHdoZW4gc2VydmluZyB0
aGUgcmVuZGVyaW5nIHVwZGF0ZSBzdGVwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1jYWxsYmFjay10aW1lc3Rh
bXAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNr
LXRpbWVzdGFtcC5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLW11bHRpcGxl
LWNhbGxiYWNrcy10aW1lc3RhbXAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFuaW1hdGlvbnMv
YW5pbWF0aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3RhbXAuaHRtbDoKKwogMjAyMC0wNC0y
MCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBIb3Jp
em9udGFsIG92ZXJmbG93IG92ZXJsYXkgc2Nyb2xsYmFyIGlzIG1pc3BsYWNlZCBpbiBSVEwKSW5k
ZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRp
b24tY2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjYwMDIwKQorKysg
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJhY2stdGltZXN0YW1wLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDE4IEBACi1QQVNTIEFsbCB0aGUgZGlm
ZmVyZW5jZXMgYmV0d2VlbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBjYWxsYmFjayB0aW1lc3Rh
bXBzIGFuZCBQZXJmb3JtYW5jZS5ub3coKSB3ZXJlIHdpdGhpbiAzbXMuCitUZXN0IHBlcmZvcm1h
bmNlLm5vdygpIGlzIGZyb3plbiB3aGlsZSBzZXJ2aW5nIHRoZSByQUYgY2FsbGJhY2suCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZv
cm1hbmNlLm5vdygpKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQo
d2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNT
IE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBNYXRoLnJvdW5kKHRpbWVz
dGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBNYXRo
LnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5v
dygpKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBl
cmZvcm1hbmNlLm5vdygpKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91
bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQ
QVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBNYXRoLnJvdW5kKHRp
bWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBN
YXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNl
Lm5vdygpKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMv
YW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sCShyZXZpc2lv
biAyNjAwMjApCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1jYWxsYmFjay10
aW1lc3RhbXAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNSwzNyArNSwyNiBAQAogPC9oZWFkPgog
PGJvZHk+CiAgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIHRpbWVzdGFtcDEgPSAwOwogICAgICAg
ICB2YXIgY3VycmVudEZyYW1lID0gMDsKLSAgICAgICAgdmFyIGZhaWxlZCA9IGZhbHNlOworICAg
ICAgICBjb25zdCBNYXhGcmFtZXMgPSAxMDsKIAotICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0
KCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGZhaWxlZCkKLSAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJTb21lIG9mIHRoZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBjYWxsYmFjayB0
aW1lc3RhbXBzIHdlcmUgbGFyZ2VyIHRoYW4gUGVyZm9ybWFuY2Uubm93KCkgYnkgbW9yZSB0aGFu
IDNtcy4iKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJB
bGwgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkgY2FsbGJh
Y2sgdGltZXN0YW1wcyBhbmQgUGVyZm9ybWFuY2Uubm93KCkgd2VyZSB3aXRoaW4gM21zLiIpCi0g
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAg
ZnVuY3Rpb24gZG9BbmltYXRpb24odGltZXN0YW1wKQogICAgICAgICB7Ci0gICAgICAgICAgICBj
b25zdCBUb2xlcmFuY2UgPSAzOwotICAgICAgICAgICAgY29uc3QgV2FybXVwRnJhbWVzID0gNTsK
KyAgICAgICAgICAgIHRpbWVzdGFtcDEgPSB0aW1lc3RhbXA7CisgICAgICAgICAgICBzaG91bGRC
ZSgiTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIiwgIk1hdGgucm91bmQodGlt
ZXN0YW1wMSkiKTsKIAotICAgICAgICAgICAgdmFyIHBlcmZvcm1hbmNlTm93ID0gd2luZG93LnBl
cmZvcm1hbmNlLm5vdygpOwotICAgICAgICAgICAgaWYgKCsrY3VycmVudEZyYW1lID4gV2FybXVw
RnJhbWVzICYmIE1hdGguYWJzKHRpbWVzdGFtcCAtIHBlcmZvcm1hbmNlTm93KSA+PSBUb2xlcmFu
Y2UpIHsKLSAgICAgICAgICAgICAgICBkZWJ1ZygicmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkgdGlt
ZXN0YW1wID0gIiArIHRpbWVzdGFtcCArICIsIHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSA9ICIg
KyBwZXJmb3JtYW5jZU5vdyk7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGlmICgrK2N1cnJlbnRGcmFtZSA9PSBNYXhGcmFtZXMpIHsKKyAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIGNvbnN0IE1heEZyYW1lcyA9IDI1OwotICAgICAgICAgICAgaWYgKGN1
cnJlbnRGcmFtZSA9PSBNYXhGcmFtZXMpCi0gICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShk
b0FuaW1hdGlvbik7CisgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZG9BbmltYXRp
b24pOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3QgcGVyZm9ybWFuY2Uubm93KCkgaXMg
ZnJvemVuIHdoaWxlIHNlcnZpbmcgdGhlIHJBRiBjYWxsYmFjay4iKTsKICAgICAgICAgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uKTsKICAgICA8L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CkluZGV4OiBMYXlv
dXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1tdWx0aXBsZS1jYWxsYmFja3MtdGltZXN0YW1w
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1h
dGlvbi1tdWx0aXBsZS1jYWxsYmFja3MtdGltZXN0YW1wLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjYwMDIwKQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tbXVsdGlwbGUtY2Fs
bGJhY2tzLXRpbWVzdGFtcC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSwz
MiBAQAotUEFTUyBBbGwgdGhlIG11bHRpcGxlIHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIGNhbGxi
YWNrcywgd2hpY2ggd2VyZSBmaXJlZCBhdCB0aGUgc2FtZSB0aW1lLCByZWNlaXZlZCB0aGUgc2Ft
ZSB0aW1lc3RhbXAuCitUZXN0IHBlcmZvcm1hbmNlLm5vdygpIGlzIGZyb3plbiB3aGlsZSBzZXJ2
aW5nIGFsbCB0aGUgckFGIGNhbGxiYWNrcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIp
CitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBNYXRoLnJvdW5k
KHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBp
cyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1hdGgucm91bmQodGltZXN0YW1wMSkgaXMg
TWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5j
ZS5ub3coKSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKQorUEFTUyBNYXRoLnJvdW5kKHdpbmRv
dy5wZXJmb3JtYW5jZS5ub3coKSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRo
LnJvdW5kKHRpbWVzdGFtcDEpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0aC5y
b3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMSkK
K1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQo
dGltZXN0YW1wMikKK1BBU1MgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSBpcyBNYXRoLnJvdW5kKHRp
bWVzdGFtcDIpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBN
YXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNl
Lm5vdygpKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1hdGgucm91bmQodGltZXN0
YW1wMSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5kKHdpbmRvdy5w
ZXJmb3JtYW5jZS5ub3coKSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKQorUEFTUyBNYXRoLnJv
dW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAyKQor
UEFTUyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKK1BB
U1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGlt
ZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1h
dGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSBpcyBNYXRo
LnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5v
dygpKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBl
cmZvcm1hbmNlLm5vdygpKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1hdGgucm91
bmQodGltZXN0YW1wMSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5k
KHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKQorUEFT
UyBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkgaXMgTWF0aC5yb3VuZCh0aW1l
c3RhbXAyKQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1tdWx0aXBsZS1jYWxsYmFj
a3MtdGltZXN0YW1wLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9h
bmltYXRpb24tbXVsdGlwbGUtY2FsbGJhY2tzLXRpbWVzdGFtcC5odG1sCShyZXZpc2lvbiAyNjAw
MjApCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1tdWx0aXBsZS1jYWxsYmFj
a3MtdGltZXN0YW1wLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsNDIgKzUsMzUgQEAKIDwvaGVh
ZD4KIDxib2R5PgogICAgIDxzY3JpcHQ+Ci0gICAgICAgIHZhciBjdXJyZW50RnJhbWUgPSAwOwog
ICAgICAgICB2YXIgdGltZXN0YW1wMSA9IDA7Ci0gICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsK
LQotICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkKLSAgICAgICAgewotICAgICAgICAgICAg
aWYgKGZhaWxlZCkKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTb21lIG9mIHRoZSBtdWx0
aXBsZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBjYWxsYmFja3MsIHdoaWNoIHdlcmUgZmlyZWQg
YXQgdGhlIHNhbWUgdGltZSwgcmVjZWl2ZWQgZGlmZmVyZW50IHRpbWVzdGFtcHMuIik7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQWxsIHRoZSBtdWx0aXBs
ZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBjYWxsYmFja3MsIHdoaWNoIHdlcmUgZmlyZWQgYXQg
dGhlIHNhbWUgdGltZSwgcmVjZWl2ZWQgdGhlIHNhbWUgdGltZXN0YW1wLiIpOwotICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0KKyAgICAgICAgdmFyIHRpbWVzdGFtcDIgPSAw
OworICAgICAgICB2YXIgY3VycmVudEZyYW1lID0gMDsKKyAgICAgICAgY29uc3QgTWF4RnJhbWVz
ID0gMTA7CiAKICAgICAgICAgZnVuY3Rpb24gZG9BbmltYXRpb24xKHRpbWVzdGFtcCkKICAgICAg
ICAgewogICAgICAgICAgICAgdGltZXN0YW1wMSA9IHRpbWVzdGFtcDsKLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgY29uc3QgTWF4RnJhbWVzID0gMjU7Ci0gICAgICAgICAgICBpZiAoY3VycmVu
dEZyYW1lID09IE1heEZyYW1lcykKLSAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAg
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZG9B
bmltYXRpb24xKTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZG9Bbmlt
YXRpb24yKTsKKyAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoKytjdXJyZW50RnJhbWUgPT0g
TWF4RnJhbWVzKSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoZG9BbmltYXRpb24xKTsKKyAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFt
ZShkb0FuaW1hdGlvbjIpOwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gZG9BbmltYXRp
b24yKHRpbWVzdGFtcCkKICAgICAgICAgewotICAgICAgICAgICAgY29uc3QgV2FybXVwRnJhbWVz
ID0gNTsKLSAgICAgICAgICAgIGlmICgrK2N1cnJlbnRGcmFtZSA+IFdhcm11cEZyYW1lcyAmJiB0
aW1lc3RhbXAgIT0gdGltZXN0YW1wMSkgewotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoInRp
bWVzdGFtcCA9ICIgKyB0aW1lc3RhbXAgKyAiLCB0aW1lc3RhbXAxID0gIiArIHRpbWVzdGFtcDEg
ICsgIiwgd2luZG93LnBlcmZvcm1hbmNlLm5vdygpID0gIiArIHdpbmRvdy5wZXJmb3JtYW5jZS5u
b3coKSk7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIHRpbWVzdGFtcDIgPSB0aW1lc3RhbXA7CisgICAgICAgICAgICBzaG91bGRCZSgi
TWF0aC5yb3VuZCh0aW1lc3RhbXAxKSIsICJNYXRoLnJvdW5kKHRpbWVzdGFtcDIpIik7CisgICAg
ICAgICAgICBzaG91bGRCZSgiTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIiwg
Ik1hdGgucm91bmQodGltZXN0YW1wMSkiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJNYXRoLnJv
dW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkiLCAiTWF0aC5yb3VuZCh0aW1lc3RhbXAyKSIp
OwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3QgcGVyZm9ybWFuY2Uubm93KCkgaXMgZnJv
emVuIHdoaWxlIHNlcnZpbmcgYWxsIHRoZSByQUYgY2FsbGJhY2tzLiIpOwogICAgICAgICByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoZG9BbmltYXRpb24xKTsKICAgICA8L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397328</attachid>
            <date>2020-04-23 01:25:55 -0700</date>
            <delta_ts>2020-04-23 22:17:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207153-20200423012554.patch</filename>
            <type>text/plain</type>
            <size>17913</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MDU1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDIwLTA0LTIzICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUGVyZm9ybWFu
Y2Uubm93KCkgc2hvdWxkIGJlIGZyb3plbiB3aGVuIHNlcnZpbmcgdGhlIHJlbmRlcmluZyB1cGRh
dGUgc3RlcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNzE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBIVE1MIDUgZXZlbnQgbG9vcCBzZXBjcyBzdGF0ZXMgdGhhdCBQZXJmb3JtYW5jZS5ub3co
KSBzaG91bGQgYmUgZnJvemVuCisgICAgICAgIHRpbGwgYWxsIHRoZSByZW5kZXJpbmcgdXBkYXRl
IHN0ZXBzIGFyZSBzZXJ2ZWQuCisKKyAgICAgICAgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2V2ZW50LWxvb3AtcHJvY2Vzc2luZy1tb2RlbAor
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
Ojp1cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZhdGlvbnMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6ZnJlZXplTm93KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6dW5mcmVl
emVOb3cpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9JbnRl
cnNlY3Rpb25PYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNl
cnZlcjo6Y3JlYXRlVGltZXN0YW1wIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0lu
dGVyc2VjdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OnVwZGF0ZVJlbmRlcmluZyk6CisgICAgICAgICogcGFnZS9QZXJmb3Jt
YW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6bm93IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjpmcmVlemVOb3cpOgorICAgICAgICAoV2ViQ29y
ZTo6UGVyZm9ybWFuY2U6OnVuZnJlZXplTm93KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNl
Lmg6CisKIDIwMjAtMDQtMjIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBlYWdlcmx5IGFwcGx5IHNjcm9sbGluZyB0
cmVlIHN0YXRlIGZyb20gdGhlIG1haW4gdGhyZWFkCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAJKHJldmlzaW9uIDI2MDU1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc2MDgsNyArNzYwOCw3IEBAIHN0YXRpYyBPcHRpb25hbDxJbnRl
cnNlY3Rpb25PYnNlcnZhdGlvblMKICAgICByZXR1cm4gaW50ZXJzZWN0aW9uU3RhdGU7CiB9CiAK
LXZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmF0aW9ucygpCit2b2lkIERv
Y3VtZW50Ojp1cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZhdGlvbnMoRE9NSGlnaFJlc1RpbWVTdGFt
cCB0aW1lc3RhbXApCiB7CiAgICAgYXV0byogZnJhbWVWaWV3ID0gdmlldygpOwogICAgIGlmICgh
ZnJhbWVWaWV3KQpAQCAtNzYyMiw5ICs3NjIyLDYgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSW50
ZXJzZWN0aW9uT2JzZXJ2YQogCiAgICAgZm9yIChjb25zdCBhdXRvJiBvYnNlcnZlciA6IG1faW50
ZXJzZWN0aW9uT2JzZXJ2ZXJzKSB7CiAgICAgICAgIGJvb2wgbmVlZE5vdGlmeSA9IGZhbHNlOwot
ICAgICAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVzdGFtcDsKLSAgICAgICAgaWYgKCFvYnNl
cnZlci0+Y3JlYXRlVGltZXN0YW1wKHRpbWVzdGFtcCkpCi0gICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgZm9yIChFbGVtZW50KiB0YXJnZXQgOiBvYnNlcnZlci0+b2JzZXJ2YXRpb25UYXJn
ZXRzKCkpIHsKICAgICAgICAgICAgIGF1dG8mIHRhcmdldFJlZ2lzdHJhdGlvbnMgPSB0YXJnZXQt
PmludGVyc2VjdGlvbk9ic2VydmVyRGF0YUlmRXhpc3RzKCktPnJlZ2lzdHJhdGlvbnM7CiAgICAg
ICAgICAgICBhdXRvIGluZGV4ID0gdGFyZ2V0UmVnaXN0cmF0aW9ucy5maW5kTWF0Y2hpbmcoW29i
c2VydmVyXShhdXRvJiByZWdpc3RyYXRpb24pIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShy
ZXZpc2lvbiAyNjA1NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQwMyw3ICsxNDAzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImKTsKICAgICB2b2lkIHJlbW92ZUlu
dGVyc2VjdGlvbk9ic2VydmVyKEludGVyc2VjdGlvbk9ic2VydmVyJik7CiAgICAgdW5zaWduZWQg
bnVtYmVyT2ZJbnRlcnNlY3Rpb25PYnNlcnZlcnMoKSBjb25zdCB7IHJldHVybiBtX2ludGVyc2Vj
dGlvbk9ic2VydmVycy5zaXplKCk7IH0KLSAgICB2b2lkIHVwZGF0ZUludGVyc2VjdGlvbk9ic2Vy
dmF0aW9ucygpOworICAgIHZvaWQgdXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25zKERPTUhp
Z2hSZXNUaW1lU3RhbXApOwogICAgIHZvaWQgc2NoZWR1bGVJbml0aWFsSW50ZXJzZWN0aW9uT2Jz
ZXJ2YXRpb25VcGRhdGUoKTsKICAgICBJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEmIGVuc3VyZUlu
dGVyc2VjdGlvbk9ic2VydmVyRGF0YSgpOwogICAgIEludGVyc2VjdGlvbk9ic2VydmVyRGF0YSog
aW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhSWZFeGlzdHMoKSB7IHJldHVybiBtX2ludGVyc2VjdGlv
bk9ic2VydmVyRGF0YS5nZXQoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAko
cmV2aXNpb24gMjYwNTU5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03NDAsNiArNzQwLDE2IEBAIGRvdWJsZSBET01XaW5kb3c6Om5vd1Rp
bWVzdGFtcCgpIGNvbnN0CiAgICAgcmV0dXJuIHBlcmZvcm1hbmNlKCkubm93KCkgLyAxMDAwLjsK
IH0KIAordm9pZCBET01XaW5kb3c6OmZyZWV6ZU5vdygpCit7CisgICAgcGVyZm9ybWFuY2UoKS5m
cmVlemVOb3coKTsKK30KKwordm9pZCBET01XaW5kb3c6OnVuZnJlZXplTm93KCkKK3sKKyAgICBw
ZXJmb3JtYW5jZSgpLnVuZnJlZXplTm93KCk7Cit9CisKIExvY2F0aW9uJiBET01XaW5kb3c6Omxv
Y2F0aW9uKCkKIHsKICAgICBpZiAoIW1fbG9jYXRpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmgJKHJldmlzaW9uIDI2MDU1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1MCw2ICszNTAsOCBAQCBwdWJsaWM6CiAKICAgICBQZXJm
b3JtYW5jZSYgcGVyZm9ybWFuY2UoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUg
bm93VGltZXN0YW1wKCkgY29uc3Q7CisgICAgdm9pZCBmcmVlemVOb3coKTsKKyAgICB2b2lkIHVu
ZnJlZXplTm93KCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgaW5jcmVt
ZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAJKHJldmlzaW9uIDI2MDU1OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNDQsMjMgKzI0NCw2IEBAIHZvaWQgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnJvb3REZXN0cm95
ZWQKICAgICBtX3Jvb3QgPSBudWxscHRyOwogfQogCi1ib29sIEludGVyc2VjdGlvbk9ic2VydmVy
OjpjcmVhdGVUaW1lc3RhbXAoRE9NSGlnaFJlc1RpbWVTdGFtcCYgdGltZXN0YW1wKSBjb25zdAot
ewotICAgIGlmICghbV9jYWxsYmFjaykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgYXV0
byogY29udGV4dCA9IG1fY2FsbGJhY2stPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBp
ZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBBU1NFUlQoY29udGV4dC0+
aXNEb2N1bWVudCgpKTsKLSAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigq
Y29udGV4dCk7Ci0gICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LmRvbVdpbmRvdygpKSB7
Ci0gICAgICAgIHRpbWVzdGFtcCA9ICB3aW5kb3ctPnBlcmZvcm1hbmNlKCkubm93KCk7Ci0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQgSW50
ZXJzZWN0aW9uT2JzZXJ2ZXI6OmFwcGVuZFF1ZXVlZEVudHJ5KFJlZjxJbnRlcnNlY3Rpb25PYnNl
cnZlckVudHJ5PiYmIGVudHJ5KQogewogICAgIEFTU0VSVChlbnRyeS0+dGFyZ2V0KCkpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaAkocmV2aXNpb24g
MjYwNTU5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC05NCw4ICs5NCw2IEBAIHB1YmxpYzoKICAgICBib29sIGhhc09ic2Vy
dmF0aW9uVGFyZ2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2YXRpb25UYXJnZXRzLnNpemUo
KTsgfQogICAgIHZvaWQgcm9vdERlc3Ryb3llZCgpOwogCi0gICAgYm9vbCBjcmVhdGVUaW1lc3Rh
bXAoRE9NSGlnaFJlc1RpbWVTdGFtcCYpIGNvbnN0OwotCiAgICAgdm9pZCBhcHBlbmRRdWV1ZWRF
bnRyeShSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeT4mJik7CiAgICAgdm9pZCBub3RpZnko
KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAyNjA1NTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIyLDYgKzEzMjIsMTIg
QEAgdm9pZCBQYWdlOjp1cGRhdGVSZW5kZXJpbmcoKQogCiAgICAgbGF5b3V0SWZOZWVkZWQoKTsK
IAorICAgIFZlY3RvcjxXZWFrUHRyPERvY3VtZW50Pj4gZG9jdW1lbnRzOworICAgIGZvckVhY2hE
b2N1bWVudChbJmRvY3VtZW50c10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1
bWVudHMuYXBwZW5kKG1ha2VXZWFrUHRyKGRvY3VtZW50KSk7CisgICAgICAgIGRvY3VtZW50LmRv
bVdpbmRvdygpLT5mcmVlemVOb3coKTsKKyAgICB9KTsKKwogICAgIC8vIEZsdXNoIGF1dG9mb2N1
cyBjYW5kaWRhdGVzCiAKICAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVu
dCkgewpAQCAtMTMzOSw3ICsxMzQ1LDcgQEAgdm9pZCBQYWdlOjp1cGRhdGVSZW5kZXJpbmcoKQog
ICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGlm
ICghZG9jdW1lbnQuZG9tV2luZG93KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIERP
TUhpZ2hSZXNUaW1lU3RhbXAgdGltZXN0YW1wID0gZG9jdW1lbnQuZG9tV2luZG93KCktPm5vd1Rp
bWVzdGFtcCgpOworICAgICAgICBhdXRvIHRpbWVzdGFtcCA9IGRvY3VtZW50LmRvbVdpbmRvdygp
LT5ub3dUaW1lc3RhbXAoKTsKICAgICAgICAgaWYgKGF1dG8qIHRpbWVsaW5lc0NvbnRyb2xsZXIg
PSBkb2N1bWVudC50aW1lbGluZXNDb250cm9sbGVyKCkpCiAgICAgICAgICAgICB0aW1lbGluZXND
b250cm9sbGVyLT51cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cyh0aW1lc3RhbXApOwogICAg
ICAgICAvLyBGSVhNRTogUnVuIHRoZSBmdWxsc2NyZWVuIHN0ZXBzLgpAQCAtMTM1MCw3ICsxMzU2
LDggQEAgdm9pZCBQYWdlOjp1cGRhdGVSZW5kZXJpbmcoKQogCiAjaWYgRU5BQkxFKElOVEVSU0VD
VElPTl9PQlNFUlZFUikKICAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVu
dCkgewotICAgICAgICBkb2N1bWVudC51cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZhdGlvbnMoKTsK
KyAgICAgICAgYXV0byB0aW1lc3RhbXAgPSBkb2N1bWVudC5kb21XaW5kb3coKS0+bm93VGltZXN0
YW1wKCk7CisgICAgICAgIGRvY3VtZW50LnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmF0aW9ucyh0
aW1lc3RhbXApOwogICAgIH0pOwogI2VuZGlmCiAKQEAgLTEzNjcsNiArMTM3NCwxMSBAQCB2b2lk
IFBhZ2U6OnVwZGF0ZVJlbmRlcmluZygpCiAgICAgICAgIH0KICAgICB9KTsKIAorICAgIGZvciAo
YXV0byYgZG9jdW1lbnQgOiBkb2N1bWVudHMpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50KQorICAg
ICAgICAgICAgZG9jdW1lbnQtPmRvbVdpbmRvdygpLT51bmZyZWV6ZU5vdygpOworICAgIH0KKwog
ICAgIGxheW91dElmTmVlZGVkKCk7CiAgICAgZG9BZnRlclVwZGF0ZVJlbmRlcmluZygpOwogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAJKHJldmlzaW9uIDI2MDU1OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
NCwxMCArNzQsMjIgQEAgdm9pZCBQZXJmb3JtYW5jZTo6Y29udGV4dERlc3Ryb3llZCgpCiAKIERP
TUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFuY2U6Om5vdygpIGNvbnN0CiB7Ci0gICAgU2Vjb25k
cyBub3cgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fdGltZU9yaWdpbjsKKyAgICBTZWNvbmRz
IG5vdyA9IG1fZnJvemVuTW9ub3RvbmljVGltZS52YWx1ZU9yKE1vbm90b25pY1RpbWU6Om5vdygp
KSAtIG1fdGltZU9yaWdpbjsKICAgICByZXR1cm4gcmVkdWNlVGltZVJlc29sdXRpb24obm93KS5t
aWxsaXNlY29uZHMoKTsKIH0KIAordm9pZCBQZXJmb3JtYW5jZTo6ZnJlZXplTm93KCkKK3sKKyAg
ICBBU1NFUlQoIW1fZnJvemVuTW9ub3RvbmljVGltZSk7CisgICAgbV9mcm96ZW5Nb25vdG9uaWNU
aW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7Cit9CisKK3ZvaWQgUGVyZm9ybWFuY2U6OnVuZnJl
ZXplTm93KCkKK3sKKyAgICBBU1NFUlQobV9mcm96ZW5Nb25vdG9uaWNUaW1lKTsKKyAgICBtX2Zy
b3plbk1vbm90b25pY1RpbWUgPSBXVEY6Om51bGxvcHQ7Cit9CisKIFNlY29uZHMgUGVyZm9ybWFu
Y2U6OnJlZHVjZVRpbWVSZXNvbHV0aW9uKFNlY29uZHMgc2Vjb25kcykKIHsKICAgICBkb3VibGUg
cmVzb2x1dGlvbiA9ICgxMDAwX3VzKS5zZWNvbmRzKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZS5oCShyZXZpc2lvbiAyNjA1NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDkgQEAgcHVibGljOgogCiAgICAg
RE9NSGlnaFJlc1RpbWVTdGFtcCBub3coKSBjb25zdDsKIAorICAgIHZvaWQgZnJlZXplTm93KCk7
CisgICAgdm9pZCB1bmZyZWV6ZU5vdygpOworCiAgICAgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBu
YXZpZ2F0aW9uKCk7CiAgICAgUGVyZm9ybWFuY2VUaW1pbmcqIHRpbWluZygpOwogCkBAIC0xMjAs
NiArMTIzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fd2FpdGluZ0ZvckJhY2t1cEJ1ZmZlclRv
QmVQcm9jZXNzZWQgeyBmYWxzZSB9OwogCiAgICAgTW9ub3RvbmljVGltZSBtX3RpbWVPcmlnaW47
CisgICAgT3B0aW9uYWw8TW9ub3RvbmljVGltZT4gbV9mcm96ZW5Nb25vdG9uaWNUaW1lOwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJUaW1pbmc+IG1fdXNlclRpbWluZzsKIApJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMjYwNTU5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDQtMjMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBQZXJmb3JtYW5jZS5ub3coKSBzaG91bGQgYmUg
ZnJvemVuIHdoZW4gc2VydmluZyB0aGUgcmVuZGVyaW5nIHVwZGF0ZSBzdGVwcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MTUzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1h
dGlvbi1jYWxsYmFjay10aW1lc3RhbXAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFuaW1hdGlv
bnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sOgorICAgICAgICAqIGFuaW1hdGlv
bnMvYW5pbWF0aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3RhbXAtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3Rh
bXAuaHRtbDoKKwogMjAyMC0wNC0yMyAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gR2FyZGVuaW5nLCB1cGRhdGUgYmFzZWxpbmVzIGFu
ZCB0ZXN0IGV4cGVjdGF0aW9ucwpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRp
b24tY2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1jYWxsYmFjay10aW1lc3RhbXAtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAyNjA1NTkpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1j
YWxsYmFjay10aW1lc3RhbXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEs
MTggQEAKLVBBU1MgQWxsIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHJlcXVlc3RBbmltYXRpb25G
cmFtZSgpIGNhbGxiYWNrIHRpbWVzdGFtcHMgYW5kIFBlcmZvcm1hbmNlLm5vdygpIHdlcmUgd2l0
aGluIDNtcy4KK1Rlc3QgcGVyZm9ybWFuY2Uubm93KCkgaXMgZnJvemVuIHdoaWxlIHNlcnZpbmcg
dGhlIHJBRiBjYWxsYmFjay4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
TWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGltZXN0
YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgu
cm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93
KCkpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVy
Zm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3Vu
ZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BB
U1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGlt
ZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1h
dGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uu
bm93KCkpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cu
cGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5y
b3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMSkK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDog
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJhY2stdGltZXN0YW1wLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJhY2st
dGltZXN0YW1wLmh0bWwJKHJldmlzaW9uIDI2MDU1OSkKKysrIExheW91dFRlc3RzL2FuaW1hdGlv
bnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01
LDM3ICs1LDI2IEBACiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8c2NyaXB0PgorICAgICAgICB2YXIg
dGltZXN0YW1wMSA9IDA7CiAgICAgICAgIHZhciBjdXJyZW50RnJhbWUgPSAwOwotICAgICAgICB2
YXIgZmFpbGVkID0gZmFsc2U7CisgICAgICAgIGNvbnN0IE1heEZyYW1lcyA9IDEwOwogCi0gICAg
ICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoZmFp
bGVkKQotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNvbWUgb2YgdGhlIHJlcXVlc3RBbmlt
YXRpb25GcmFtZSgpIGNhbGxiYWNrIHRpbWVzdGFtcHMgd2VyZSBsYXJnZXIgdGhhbiBQZXJmb3Jt
YW5jZS5ub3coKSBieSBtb3JlIHRoYW4gM21zLiIpOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIkFsbCB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoKSBjYWxsYmFjayB0aW1lc3RhbXBzIGFuZCBQZXJmb3JtYW5jZS5ub3co
KSB3ZXJlIHdpdGhpbiAzbXMuIikKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAg
ICB9Ci0gICAgICAgIAogICAgICAgICBmdW5jdGlvbiBkb0FuaW1hdGlvbih0aW1lc3RhbXApCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGNvbnN0IFRvbGVyYW5jZSA9IDM7Ci0gICAgICAgICAgICBj
b25zdCBXYXJtdXBGcmFtZXMgPSA1OworICAgICAgICAgICAgdGltZXN0YW1wMSA9IHRpbWVzdGFt
cDsKKyAgICAgICAgICAgIHNob3VsZEJlKCJNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5u
b3coKSkiLCAiTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSIpOwogCi0gICAgICAgICAgICB2YXIgcGVy
Zm9ybWFuY2VOb3cgPSB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7Ci0gICAgICAgICAgICBpZiAo
KytjdXJyZW50RnJhbWUgPiBXYXJtdXBGcmFtZXMgJiYgTWF0aC5hYnModGltZXN0YW1wIC0gcGVy
Zm9ybWFuY2VOb3cpID49IFRvbGVyYW5jZSkgewotICAgICAgICAgICAgICAgIGRlYnVnKCJyZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoKSB0aW1lc3RhbXAgPSAiICsgdGltZXN0YW1wICsgIiwgd2luZG93
LnBlcmZvcm1hbmNlLm5vdygpID0gIiArIHBlcmZvcm1hbmNlTm93KTsKLSAgICAgICAgICAgICAg
ICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKCsrY3VycmVudEZyYW1lID09IE1heEZy
YW1lcykgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgY29uc3QgTWF4RnJhbWVzID0g
MjU7Ci0gICAgICAgICAgICBpZiAoY3VycmVudEZyYW1lID09IE1heEZyYW1lcykKLSAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uKTsKKyAgICAgICAgICAgIHJlcXVlc3RB
bmltYXRpb25GcmFtZShkb0FuaW1hdGlvbik7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBkZXNjcmlwdGlvbigiVGVz
dCBwZXJmb3JtYW5jZS5ub3coKSBpcyBmcm96ZW4gd2hpbGUgc2VydmluZyB0aGUgckFGIGNhbGxi
YWNrLiIpOwogICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZG9BbmltYXRpb24pOwogICAg
IDwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLW11bHRp
cGxlLWNhbGxiYWNrcy10aW1lc3RhbXAtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3RhbXAt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjA1NTkpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25z
L2FuaW1hdGlvbi1tdWx0aXBsZS1jYWxsYmFja3MtdGltZXN0YW1wLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSw0ICsxLDMyIEBACi1QQVNTIEFsbCB0aGUgbXVsdGlwbGUgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lKCkgY2FsbGJhY2tzLCB3aGljaCB3ZXJlIGZpcmVkIGF0IHRoZSBzYW1l
IHRpbWUsIHJlY2VpdmVkIHRoZSBzYW1lIHRpbWVzdGFtcC4KK1Rlc3QgcGVyZm9ybWFuY2Uubm93
KCkgaXMgZnJvemVuIHdoaWxlIHNlcnZpbmcgYWxsIHRoZSByQUYgY2FsbGJhY2tzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpIGlz
IE1hdGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFu
Y2Uubm93KCkpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5k
b3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0
aC5yb3VuZCh0aW1lc3RhbXAxKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1hdGgu
cm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEp
CitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBNYXRoLnJvdW5k
KHRpbWVzdGFtcDIpCitQQVNTIE1hdGgucm91bmQodGltZXN0YW1wMSkgaXMgTWF0aC5yb3VuZCh0
aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkgaXMg
TWF0aC5yb3VuZCh0aW1lc3RhbXAxKQorUEFTUyBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5j
ZS5ub3coKSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5kKHRpbWVz
dGFtcDEpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cu
cGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5y
b3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikK
K1BBU1MgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCitQ
QVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBNYXRoLnJvdW5kKHRp
bWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBN
YXRoLnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1hdGgucm91bmQodGltZXN0YW1wMSkgaXMgTWF0
aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5u
b3coKSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKQorUEFTUyBNYXRoLnJvdW5kKHdpbmRvdy5w
ZXJmb3JtYW5jZS5ub3coKSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJv
dW5kKHRpbWVzdGFtcDEpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0aC5yb3Vu
ZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BB
U1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzIE1hdGgucm91bmQodGlt
ZXN0YW1wMikKK1BBU1MgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSBpcyBNYXRoLnJvdW5kKHRpbWVz
dGFtcDIpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyBNYXRo
LnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5v
dygpKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5p
bWF0aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3RhbXAuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1tdWx0aXBsZS1jYWxsYmFja3MtdGltZXN0
YW1wLmh0bWwJKHJldmlzaW9uIDI2MDU1OSkKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5p
bWF0aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3RhbXAuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNSw0MiArNSwzNSBAQAogPC9oZWFkPgogPGJvZHk+CiAgICAgPHNjcmlwdD4KLSAgICAgICAg
dmFyIGN1cnJlbnRGcmFtZSA9IDA7CiAgICAgICAgIHZhciB0aW1lc3RhbXAxID0gMDsKLSAgICAg
ICAgdmFyIGZhaWxlZCA9IGZhbHNlOwotCi0gICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoZmFpbGVkKQotICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlNvbWUgb2YgdGhlIG11bHRpcGxlIHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIGNhbGxi
YWNrcywgd2hpY2ggd2VyZSBmaXJlZCBhdCB0aGUgc2FtZSB0aW1lLCByZWNlaXZlZCBkaWZmZXJl
bnQgdGltZXN0YW1wcy4iKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJBbGwgdGhlIG11bHRpcGxlIHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIGNhbGxiYWNr
cywgd2hpY2ggd2VyZSBmaXJlZCBhdCB0aGUgc2FtZSB0aW1lLCByZWNlaXZlZCB0aGUgc2FtZSB0
aW1lc3RhbXAuIik7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQorICAg
ICAgICB2YXIgdGltZXN0YW1wMiA9IDA7CisgICAgICAgIHZhciBjdXJyZW50RnJhbWUgPSAwOwor
ICAgICAgICBjb25zdCBNYXhGcmFtZXMgPSAxMDsKIAogICAgICAgICBmdW5jdGlvbiBkb0FuaW1h
dGlvbjEodGltZXN0YW1wKQogICAgICAgICB7CiAgICAgICAgICAgICB0aW1lc3RhbXAxID0gdGlt
ZXN0YW1wOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBjb25zdCBNYXhGcmFtZXMgPSAyNTsK
LSAgICAgICAgICAgIGlmIChjdXJyZW50RnJhbWUgPT0gTWF4RnJhbWVzKQotICAgICAgICAgICAg
ICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHJl
cXVlc3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbjEpOwotICAgICAgICAgICAgICAgIHJlcXVl
c3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbjIpOworICAgICAgICAgICAKKyAgICAgICAgICAg
IGlmICgrK2N1cnJlbnRGcmFtZSA9PSBNYXhGcmFtZXMpIHsKKyAgICAgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbjEpOworICAgICAgICAg
ICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uMik7CiAgICAgICAgIH0KIAogICAg
ICAgICBmdW5jdGlvbiBkb0FuaW1hdGlvbjIodGltZXN0YW1wKQogICAgICAgICB7Ci0gICAgICAg
ICAgICBjb25zdCBXYXJtdXBGcmFtZXMgPSA1OwotICAgICAgICAgICAgaWYgKCsrY3VycmVudEZy
YW1lID4gV2FybXVwRnJhbWVzICYmIHRpbWVzdGFtcCAhPSB0aW1lc3RhbXAxKSB7Ci0gICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgidGltZXN0YW1wID0gIiArIHRpbWVzdGFtcCArICIsIHRpbWVz
dGFtcDEgPSAiICsgdGltZXN0YW1wMSAgKyAiLCB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkgPSAi
ICsgd2luZG93LnBlcmZvcm1hbmNlLm5vdygpKTsKLSAgICAgICAgICAgICAgICBmYWlsZWQgPSB0
cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgdGltZXN0YW1wMiA9IHRpbWVzdGFtcDsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJNYXRoLnJvdW5kKHRpbWVzdGFtcDEpIiwgIk1hdGgucm91
bmQodGltZXN0YW1wMikiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJNYXRoLnJvdW5kKHdpbmRv
dy5wZXJmb3JtYW5jZS5ub3coKSkiLCAiTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSIpOworICAgICAg
ICAgICAgc2hvdWxkQmUoIk1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSIsICJN
YXRoLnJvdW5kKHRpbWVzdGFtcDIpIik7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBkZXNjcmlwdGlvbigiVGVzdCBw
ZXJmb3JtYW5jZS5ub3coKSBpcyBmcm96ZW4gd2hpbGUgc2VydmluZyBhbGwgdGhlIHJBRiBjYWxs
YmFja3MuIik7CiAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbjEpOwog
ICAgIDwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>397345</attachid>
            <date>2020-04-23 08:58:47 -0700</date>
            <delta_ts>2020-04-23 08:58:47 -0700</delta_ts>
            <desc>Test for frozen performance.now()</desc>
            <filename>update-rendering-now-timestamp.html</filename>
            <type>text/html</type>
            <size>1746</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxzdHlsZT4KICAgICAgICAjY29uc29s
ZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICB3aWR0aDogODAlOwog
ICAgICAgICAgICBoZWlnaHQ6IDgwMHB4OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsKICAgICAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKICAgICAgICB9CiAgICA8L3N0eWxl
PgogICAgPHNjcmlwdD4KCiAgICAgICAgbGV0IGNvbnNvbGU7CiAgICAgICAgbGV0IHJ1bm5pbmcg
PSBmYWxzZTsKCiAgICAgICAgZnVuY3Rpb24gc2hvd0xvZyhzKQogICAgICAgIHsKICAgICAgICAg
ICAgY29uc29sZS50ZXh0Q29udGVudCArPSBzICsgJ1xuJzsKICAgICAgICAgICAgY29uc29sZS5z
Y3JvbGxUb3AgPSA5OTk5OTk5CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBzbGVlcChtaWxs
aXMpCiAgICAgICAgewogICAgICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7CiAgICAgICAg
ICAgIHZhciBjdXJEYXRlID0gbnVsbDsKICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgICAg
Y3VyRGF0ZSA9IG5ldyBEYXRlKCk7CiAgICAgICAgICAgIH0gd2hpbGUoY3VyRGF0ZS1kYXRlIDwg
bWlsbGlzKTsKICAgICAgICB9ICAgICAgICAKICAgICAgICAKICAgICAgICBmdW5jdGlvbiB0b2dn
bGVSdW5uaW5nKCkKICAgICAgICB7CiAgICAgICAgICAgIHJ1bm5pbmcgPSAhcnVubmluZzsKICAg
ICAgICAgICAgaWYgKHJ1bm5pbmcpIHsKICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25G
cmFtZSgodGltZXN0YW1wKSA9PiB7IHRlc3RUaW1pbmcodGltZXN0YW1wLCAxKTsgfSk7CiAgICAg
ICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKHRpbWVzdGFtcCkgPT4geyB0ZXN0VGlt
aW5nKHRpbWVzdGFtcCwgMik7IH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBm
dW5jdGlvbiB0ZXN0VGltaW5nKHRpbWVzdGFtcCwgaW5kZXgpCiAgICAgICAgewogICAgICAgICAg
ICBsZXQgcHJlZml4ID0gaW5kZXggPT0gMSA/ICdcbicgOiAnJzsKICAgICAgICAgICAgc2hvd0xv
ZyhwcmVmaXggKyB0aW1lc3RhbXAgKyAnIHRlc3RUaW1pbmcgJyArIGluZGV4ICsgJyBwZXJmb3Jt
YW5jZS5ub3coKSAnICsgcGVyZm9ybWFuY2Uubm93KCkpOwoKICAgICAgICAgICAgc2xlZXAoNCk7
CgogICAgICAgICAgICBpZiAocnVubmluZykKICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRp
b25GcmFtZSgodGltZXN0YW1wKSA9PiB7IHRlc3RUaW1pbmcodGltZXN0YW1wLCBpbmRleCApfSk7
CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2Fk
JywgKCkgPT4gewogICAgICAgICAgICBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKTsKICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCh0aW1lc3RhbXAp
ID0+IHsgdGVzdFRpbWluZyh0aW1lc3RhbXAsIDEpOyB9KTsKICAgICAgICAgICAgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCh0aW1lc3RhbXApID0+IHsgdGVzdFRpbWluZyh0aW1lc3RhbXAsIDIpOyB9
KTsKICAgICAgICB9LCBmYWxzZSk7CiAgICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KPGJ1dHRv
biBvbmNsaWNrPSJ0b2dnbGVSdW5uaW5nKCkiPlRvZ2dsZSBydW5uaW5nPC9idXR0b24+CjxwcmUg
aWQ9ImNvbnNvbGUiPjwvcHJlPgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397428</attachid>
            <date>2020-04-23 22:17:42 -0700</date>
            <delta_ts>2020-04-24 01:45:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207153-20200423221741.patch</filename>
            <type>text/plain</type>
            <size>22998</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MDYxOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA0LTIzICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgVGltZXN0YW1w
cyBzaG91bGQgYmUgdGhlIHNhbWUgZm9yIGFsbCByZW5kZXJpbmcgdXBkYXRlIHN0ZXBzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxNTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgSFRNTCA1IGV2
ZW50IGxvb3Agc2VwY3Mgc3RhdGVzIHRoYXQgdGltZXN0YW1wcyBzaG91bGQgYmUgdGhlIHNhbWUg
Zm9yIAorICAgICAgICBhbGwgcmVuZGVyaW5nIHVwZGF0ZSBzdGVwcy4KKworICAgICAgICBTcGVj
cyBsaW5rOiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlz
Lmh0bWwjZXZlbnQtbG9vcC1wcm9jZXNzaW5nLW1vZGVsCisgICAgICAgIHNldHAgOS4KKworICAg
ICAgICBUaGlzIHBhdGNoIGluY2x1ZGVzIGFsc28gc29tZSBmaXhlcyBpbiBJbnRlcnNlY3Rpb25P
YnNlcnZlci4KKworICAgICAgICBUZXN0OiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0
aW9uLW9ic2VydmVyLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sCisKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUludGVyc2VjdGlv
bk9ic2VydmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bm90aWZ5SW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJzVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3Vt
ZW50Lmg6CisgICAgICAgIC0tIENvbnZlcnQgdGhlIHRpbWVzdGFtcHMgZnJvbSBzZWNvbmRzIHRv
IG1pbGxpc2Vjb25kcy4KKyAgICAgICAgLS0gSGFuZGxlIHRoZSBjYXNlIHdoZW4gdHdvIGZsb2F0
cyBhcmUgYXJlRXNzZW50aWFsbHlFcXVhbCgpLgorICAgICAgICAtLSBFeGVjdXRlIHRoZSBJbnRl
cnNlY3Rpb25PYnNlcnZlciBpbW1lZGlhdGVseSBhbmQgZG8gbm90IHdhaXQgdW50aWwgdGhlIAor
ICAgICAgICAgICBuZXh0IENGUnVuTG9vcCBldmVudCBzaW5jZSB0aGlzIGRvZXMgbm90IGltcGxl
bWVudCB0aGUgc3BlY3MuCisKKyAgICAgICAgKiBwYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjpjcmVhdGVUaW1lc3Rh
bXAgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIu
aDoKKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1
cGRhdGVSZW5kZXJpbmcpOgorICAgICAgICBTdG9yZSB0aW1lc3RhbXBzIGZvciBlYWNoIGRvY3Vt
ZW50IGFuZCB1c2UgdGhlbSB3aGVuIHNlcnZpbmcgdGhlIHJlbmRlcmluZworICAgICAgICB1cGRh
dGUgc3RlcHMuCisKIDIwMjAtMDQtMjMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSB0aGUgc3RvcmFnZSBvZiBEaXNwbGF5SUQgZnJvbSBDaHJv
bWUgdG8gUGFnZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyNjA1NTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NjEsNyArNTYxLDYgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVQog
ICAgICwgbV9mdWxsc2NyZWVuTWFuYWdlciB7IG1ha2VVbmlxdWVSZWY8RnVsbHNjcmVlbk1hbmFn
ZXI+KCp0aGlzKSB9CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQot
ICAgICwgbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnNOb3RpZnlUaW1lcigqdGhpcywgJkRvY3VtZW50
Ojpub3RpZnlJbnRlcnNlY3Rpb25PYnNlcnZlcnNUaW1lckZpcmVkKQogICAgICwgbV9pbnRlcnNl
Y3Rpb25PYnNlcnZlcnNJbml0aWFsVXBkYXRlVGltZXIoKnRoaXMsICZEb2N1bWVudDo6c2NoZWR1
bGVUaW1lZFJlbmRlcmluZ1VwZGF0ZSkKICNlbmRpZgogICAgICwgbV9sb2FkRXZlbnREZWxheVRp
bWVyKCp0aGlzLCAmRG9jdW1lbnQ6OmxvYWRFdmVudERlbGF5VGltZXJGaXJlZCkKQEAgLTc2MDgs
MjMgKzc2MDcsMjQgQEAgc3RhdGljIE9wdGlvbmFsPEludGVyc2VjdGlvbk9ic2VydmF0aW9uUwog
ICAgIHJldHVybiBpbnRlcnNlY3Rpb25TdGF0ZTsKIH0KIAotdm9pZCBEb2N1bWVudDo6dXBkYXRl
SW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25zKCkKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUludGVyc2Vj
dGlvbk9ic2VydmF0aW9ucyhET01IaWdoUmVzVGltZVN0YW1wIHRpbWVzdGFtcCkKIHsKICAgICBh
dXRvKiBmcmFtZVZpZXcgPSB2aWV3KCk7CiAgICAgaWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzSW5pdGlhbFVwZGF0ZVRpbWVyLnN0
b3AoKTsKLQogICAgIGJvb2wgbmVlZHNMYXlvdXQgPSBmcmFtZVZpZXctPmxheW91dENvbnRleHQo
KS5pc0xheW91dFBlbmRpbmcoKSB8fCAocmVuZGVyVmlldygpICYmIHJlbmRlclZpZXcoKS0+bmVl
ZHNMYXlvdXQoKSk7CiAgICAgaWYgKG5lZWRzTGF5b3V0IHx8IGhhc1BlbmRpbmdTdHlsZVJlY2Fs
YygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBhdXRvIGhpZ2hSZXNOb3dNcyA9IHN0ZDo6cm91
bmQoMTAwMCAqIHRpbWVzdGFtcCk7CisgICAgaWYgKHF1aXJrcygpLm5lZWRzTWlsbGlzZWNvbmRS
ZXNvbHV0aW9uRm9ySGlnaFJlc1RpbWVTdGFtcCgpKQorICAgICAgICBoaWdoUmVzTm93TXMgKz0g
MC4xOworCisgICAgVmVjdG9yPFdlYWtQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+PiBpbnRlcnNl
Y3Rpb25PYnNlcnZlcnNXaXRoUGVuZGluZ05vdGlmaWNhdGlvbnM7CisgICAgCiAgICAgZm9yIChj
b25zdCBhdXRvJiBvYnNlcnZlciA6IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzKSB7CiAgICAgICAg
IGJvb2wgbmVlZE5vdGlmeSA9IGZhbHNlOwotICAgICAgICBET01IaWdoUmVzVGltZVN0YW1wIHRp
bWVzdGFtcDsKLSAgICAgICAgaWYgKCFvYnNlcnZlci0+Y3JlYXRlVGltZXN0YW1wKHRpbWVzdGFt
cCkpCi0gICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgZm9yIChFbGVtZW50KiB0YXJnZXQg
OiBvYnNlcnZlci0+b2JzZXJ2YXRpb25UYXJnZXRzKCkpIHsKICAgICAgICAgICAgIGF1dG8mIHRh
cmdldFJlZ2lzdHJhdGlvbnMgPSB0YXJnZXQtPmludGVyc2VjdGlvbk9ic2VydmVyRGF0YUlmRXhp
c3RzKCktPnJlZ2lzdHJhdGlvbnM7CiAgICAgICAgICAgICBhdXRvIGluZGV4ID0gdGFyZ2V0UmVn
aXN0cmF0aW9ucy5maW5kTWF0Y2hpbmcoW29ic2VydmVyXShhdXRvJiByZWdpc3RyYXRpb24pIHsK
QEAgLTc2NDYsOSArNzY0NiwxMSBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVJbnRlcnNlY3Rpb25P
YnNlcnZhCiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg
IGludGVyc2VjdGlvblJhdGlvID0gMTsKIAotICAgICAgICAgICAgICAgICAgICBhdXRvJiB0aHJl
c2hvbGRzID0gb2JzZXJ2ZXItPnRocmVzaG9sZHMoKTsKLSAgICAgICAgICAgICAgICAgICAgd2hp
bGUgKHRocmVzaG9sZEluZGV4IDwgdGhyZXNob2xkcy5zaXplKCkgJiYgdGhyZXNob2xkc1t0aHJl
c2hvbGRJbmRleF0gPD0gaW50ZXJzZWN0aW9uUmF0aW8pCisgICAgICAgICAgICAgICAgICAgIGZv
ciAoYXV0byB0aHJlc2hvbGQgOiBvYnNlcnZlci0+dGhyZXNob2xkcygpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodGhyZXNob2xkID4gaW50ZXJzZWN0aW9uUmF0aW8gJiYgIVdURjo6
YXJlRXNzZW50aWFsbHlFcXVhbDxmbG9hdD4odGhyZXNob2xkLCBpbnRlcnNlY3Rpb25SYXRpbykp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg
ICAgICArK3RocmVzaG9sZEluZGV4OworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC03Njc2LDcgKzc2NzgsNyBAQCB2b2lkIERvY3Vt
ZW50Ojp1cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZhCiAgICAgICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAgICAgb2JzZXJ2ZXItPmFwcGVuZFF1ZXVlZEVudHJ5KEludGVyc2VjdGlvbk9ic2Vy
dmVyRW50cnk6OmNyZWF0ZSh7Ci0gICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCwKKyAgICAg
ICAgICAgICAgICAgICAgaGlnaFJlc05vd01zLAogICAgICAgICAgICAgICAgICAgICByZXBvcnRl
ZFJvb3RCb3VuZHMsCiAgICAgICAgICAgICAgICAgICAgIHsgdGFyZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0LngoKSwgdGFyZ2V0Qm91bmRpbmdDbGllbnRSZWN0LnkoKSwgdGFyZ2V0Qm91bmRpbmdDbGll
bnRSZWN0LndpZHRoKCksIHRhcmdldEJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQoKSB9LAogICAg
ICAgICAgICAgICAgICAgICB7IGNsaWVudEludGVyc2VjdGlvblJlY3QueCgpLCBjbGllbnRJbnRl
cnNlY3Rpb25SZWN0LnkoKSwgY2xpZW50SW50ZXJzZWN0aW9uUmVjdC53aWR0aCgpLCBjbGllbnRJ
bnRlcnNlY3Rpb25SZWN0LmhlaWdodCgpIH0sCkBAIC03Njg4LDIxICs3NjkwLDE1IEBAIHZvaWQg
RG9jdW1lbnQ6OnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmEKICAgICAgICAgICAgICAgICByZWdp
c3RyYXRpb24ucHJldmlvdXNUaHJlc2hvbGRJbmRleCA9IHRocmVzaG9sZEluZGV4OwogICAgICAg
ICAgICAgfQogICAgICAgICB9CisKICAgICAgICAgaWYgKG5lZWROb3RpZnkpCi0gICAgICAgICAg
ICBtX2ludGVyc2VjdGlvbk9ic2VydmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9ucy5hcHBlbmQo
bWFrZVdlYWtQdHIob2JzZXJ2ZXIuZ2V0KCkpKTsKKyAgICAgICAgICAgIGludGVyc2VjdGlvbk9i
c2VydmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9ucy5hcHBlbmQobWFrZVdlYWtQdHIob2JzZXJ2
ZXIuZ2V0KCkpKTsKICAgICB9CiAKLSAgICBpZiAobV9pbnRlcnNlY3Rpb25PYnNlcnZlcnNXaXRo
UGVuZGluZ05vdGlmaWNhdGlvbnMuc2l6ZSgpKQotICAgICAgICBtX2ludGVyc2VjdGlvbk9ic2Vy
dmVyc05vdGlmeVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwotfQotCi12b2lkIERvY3VtZW50Ojpu
b3RpZnlJbnRlcnNlY3Rpb25PYnNlcnZlcnNUaW1lckZpcmVkKCkKLXsKLSAgICBmb3IgKGNvbnN0
IGF1dG8mIG9ic2VydmVyIDogbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnNXaXRoUGVuZGluZ05vdGlm
aWNhdGlvbnMpIHsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG9ic2VydmVyIDogaW50ZXJzZWN0aW9u
T2JzZXJ2ZXJzV2l0aFBlbmRpbmdOb3RpZmljYXRpb25zKSB7CiAgICAgICAgIGlmIChvYnNlcnZl
cikKICAgICAgICAgICAgIG9ic2VydmVyLT5ub3RpZnkoKTsKICAgICB9Ci0gICAgbV9pbnRlcnNl
Y3Rpb25PYnNlcnZlcnNXaXRoUGVuZGluZ05vdGlmaWNhdGlvbnMuY2xlYXIoKTsKIH0KIAogdm9p
ZCBEb2N1bWVudDo6c2NoZWR1bGVJbml0aWFsSW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25VcGRhdGUo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDI2MDU1OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAzLDcgKzE0MDMsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhZGRJbnRlcnNlY3Rpb25PYnNlcnZlcihJbnRlcnNlY3Rpb25P
YnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoSW50ZXJzZWN0
aW9uT2JzZXJ2ZXImKTsKICAgICB1bnNpZ25lZCBudW1iZXJPZkludGVyc2VjdGlvbk9ic2VydmVy
cygpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzLnNpemUoKTsgfQotICAg
IHZvaWQgdXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25zKCk7CisgICAgdm9pZCB1cGRhdGVJ
bnRlcnNlY3Rpb25PYnNlcnZhdGlvbnMoRE9NSGlnaFJlc1RpbWVTdGFtcCk7CiAgICAgdm9pZCBz
Y2hlZHVsZUluaXRpYWxJbnRlcnNlY3Rpb25PYnNlcnZhdGlvblVwZGF0ZSgpOwogICAgIEludGVy
c2VjdGlvbk9ic2VydmVyRGF0YSYgZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKCk7CiAg
ICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKiBpbnRlcnNlY3Rpb25PYnNlcnZlckRhdGFJZkV4
aXN0cygpIHsgcmV0dXJuIG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhLmdldCgpOyB9CkBAIC0x
NjY4LDEwICsxNjY4LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGNhbk5hdmlnYXRlSW50ZXJuYWwo
RnJhbWUmIHRhcmdldEZyYW1lKTsKICAgICBib29sIGlzTmF2aWdhdGlvbkJsb2NrZWRCeVRoaXJk
UGFydHlJRnJhbWVSZWRpcmVjdEJsb2NraW5nKEZyYW1lJiB0YXJnZXRGcmFtZSwgY29uc3QgVVJM
JiBkZXN0aW5hdGlvblVSTCk7CiAKLSNpZiBFTkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQot
ICAgIHZvaWQgbm90aWZ5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJzVGltZXJGaXJlZCgpOwotI2VuZGlm
Ci0KICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBib29sIHNob3VsZEVuZm9yY2VRdWlja0xvb2tT
YW5kYm94KCkgY29uc3Q7CiAgICAgdm9pZCBhcHBseVF1aWNrTG9va1NhbmRib3goKTsKQEAgLTE4
NDQsNyArMTg0MCw2IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNFUlZF
UikKICAgICBWZWN0b3I8V2Vha1B0cjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4+IG1faW50ZXJzZWN0
aW9uT2JzZXJ2ZXJzOwogICAgIFZlY3RvcjxXZWFrUHRyPEludGVyc2VjdGlvbk9ic2VydmVyPj4g
bV9pbnRlcnNlY3Rpb25PYnNlcnZlcnNXaXRoUGVuZGluZ05vdGlmaWNhdGlvbnM7Ci0gICAgVGlt
ZXIgbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnNOb3RpZnlUaW1lcjsKICAgICBUaW1lciBtX2ludGVy
c2VjdGlvbk9ic2VydmVyc0luaXRpYWxVcGRhdGVUaW1lcjsKICAgICAvLyBUaGlzIGlzIG9ubHkg
bm9uLW51bGwgd2hlbiB0aGlzIGRvY3VtZW50IGlzIGFuIGV4cGxpY2l0IHJvb3QuCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEludGVyc2VjdGlvbk9ic2VydmVyRGF0YT4gbV9pbnRlcnNlY3Rpb25PYnNl
cnZlckRhdGE7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2Vy
dmVyLmNwcAkocmV2aXNpb24gMjYwNTU5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNl
Y3Rpb25PYnNlcnZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0NCwyMyArMjQ0LDYgQEAgdm9p
ZCBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6cm9vdERlc3Ryb3llZAogICAgIG1fcm9vdCA9IG51bGxw
dHI7CiB9CiAKLWJvb2wgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OmNyZWF0ZVRpbWVzdGFtcChET01I
aWdoUmVzVGltZVN0YW1wJiB0aW1lc3RhbXApIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2NhbGxiYWNr
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBhdXRvKiBjb250ZXh0ID0gbV9jYWxsYmFj
ay0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGlmICghY29udGV4dCkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIEFTU0VSVChjb250ZXh0LT5pc0RvY3VtZW50KCkpOwotICAgIGF1
dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KTsKLSAgICBpZiAoYXV0
byogd2luZG93ID0gZG9jdW1lbnQuZG9tV2luZG93KCkpIHsKLSAgICAgICAgdGltZXN0YW1wID0g
IHdpbmRvdy0+cGVyZm9ybWFuY2UoKS5ub3coKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogdm9pZCBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6YXBw
ZW5kUXVldWVkRW50cnkoUmVmPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+JiYgZW50cnkpCiB7
CiAgICAgQVNTRVJUKGVudHJ5LT50YXJnZXQoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ludGVyc2VjdGlvbk9ic2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCShyZXZpc2lvbiAyNjA1NTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk0LDgg
Kzk0LDYgQEAgcHVibGljOgogICAgIGJvb2wgaGFzT2JzZXJ2YXRpb25UYXJnZXRzKCkgY29uc3Qg
eyByZXR1cm4gbV9vYnNlcnZhdGlvblRhcmdldHMuc2l6ZSgpOyB9CiAgICAgdm9pZCByb290RGVz
dHJveWVkKCk7CiAKLSAgICBib29sIGNyZWF0ZVRpbWVzdGFtcChET01IaWdoUmVzVGltZVN0YW1w
JikgY29uc3Q7Ci0KICAgICB2b2lkIGFwcGVuZFF1ZXVlZEVudHJ5KFJlZjxJbnRlcnNlY3Rpb25P
YnNlcnZlckVudHJ5PiYmKTsKICAgICB2b2lkIG5vdGlmeSgpOwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAJKHJldmlzaW9uIDI2MDU1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMjIsNiArMTMyMiwyMiBAQCB2b2lkIFBhZ2U6OnVwZGF0ZVJl
bmRlcmluZygpCiAKICAgICBsYXlvdXRJZk5lZWRlZCgpOwogCisgICAgLy8gVGltZXN0YW1wcyBz
aG91bGQgbm90IGNoYW5nZSB3aGlsZSBzZXJ2aW5nIHRoZSByZW5kZXJpbmcgdXBkYXRlIHN0ZXBz
LgorICAgIFZlY3RvcjxzdGQ6OnBhaXI8V2Vha1B0cjxEb2N1bWVudD4sIERPTUhpZ2hSZXNUaW1l
U3RhbXA+PiBkb2N1bWVudHNOb3c7CisgICAgZm9yRWFjaERvY3VtZW50KFsmZG9jdW1lbnRzTm93
XSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CisgICAgICAgIGF1dG8gdGltZXN0YW1wID0gZG9jdW1l
bnQuZG9tV2luZG93KCktPm5vd1RpbWVzdGFtcCgpOworICAgICAgICBkb2N1bWVudHNOb3cuYXBw
ZW5kKHN0ZDo6bWFrZV9wYWlyKG1ha2VXZWFrUHRyKCZkb2N1bWVudCksIHRpbWVzdGFtcCkpOwor
ICAgIH0pOworCisgICAgYXV0byB0aW1lc3RhbXBGb3JEb2N1bWVudCA9IFsmZG9jdW1lbnRzTm93
XShEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgYXV0byBpbmRleCA9IGRvY3VtZW50c05v
dy5maW5kTWF0Y2hpbmcoWyZkb2N1bWVudF0oYXV0byYgZW50cnkpIHsKKyAgICAgICAgICAgIHJl
dHVybiBlbnRyeS5maXJzdCA9PSAmZG9jdW1lbnQ7CisgICAgICAgIH0pOworICAgICAgICBpZiAo
aW5kZXggPT0gbm90Rm91bmQpCisgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuZG9tV2luZG93
KCktPm5vd1RpbWVzdGFtcCgpOworICAgICAgICByZXR1cm4gZG9jdW1lbnRzTm93W2luZGV4XS5z
ZWNvbmQ7CisgICAgfTsKKwogICAgIC8vIEZsdXNoIGF1dG9mb2N1cyBjYW5kaWRhdGVzCiAKICAg
ICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgewpAQCAtMTMzNiwxMCAr
MTM1MiwxMCBAQCB2b2lkIFBhZ2U6OnVwZGF0ZVJlbmRlcmluZygpCiAgICAgICAgIGRvY3VtZW50
LmV2YWx1YXRlTWVkaWFRdWVyaWVzQW5kUmVwb3J0Q2hhbmdlcygpOyAgICAgICAgCiAgICAgfSk7
CiAKLSAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgIGZv
ckVhY2hEb2N1bWVudChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgewogICAgICAgICBpZiAoIWRv
Y3VtZW50LmRvbVdpbmRvdygpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBET01IaWdo
UmVzVGltZVN0YW1wIHRpbWVzdGFtcCA9IGRvY3VtZW50LmRvbVdpbmRvdygpLT5ub3dUaW1lc3Rh
bXAoKTsKKyAgICAgICAgYXV0byB0aW1lc3RhbXAgPSB0aW1lc3RhbXBGb3JEb2N1bWVudChkb2N1
bWVudCk7CiAgICAgICAgIGlmIChhdXRvKiB0aW1lbGluZXNDb250cm9sbGVyID0gZG9jdW1lbnQu
dGltZWxpbmVzQ29udHJvbGxlcigpKQogICAgICAgICAgICAgdGltZWxpbmVzQ29udHJvbGxlci0+
dXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHModGltZXN0YW1wKTsKICAgICAgICAgLy8gRklY
TUU6IFJ1biB0aGUgZnVsbHNjcmVlbiBzdGVwcy4KQEAgLTEzNDksOCArMTM2NSw5IEBAIHZvaWQg
UGFnZTo6dXBkYXRlUmVuZGVyaW5nKCkKICAgICBsYXlvdXRJZk5lZWRlZCgpOwogCiAjaWYgRU5B
QkxFKElOVEVSU0VDVElPTl9PQlNFUlZFUikKLSAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3Vt
ZW50JiBkb2N1bWVudCkgewotICAgICAgICBkb2N1bWVudC51cGRhdGVJbnRlcnNlY3Rpb25PYnNl
cnZhdGlvbnMoKTsKKyAgICBmb3JFYWNoRG9jdW1lbnQoWyZdIChEb2N1bWVudCYgZG9jdW1lbnQp
IHsKKyAgICAgICAgYXV0byB0aW1lc3RhbXAgPSB0aW1lc3RhbXBGb3JEb2N1bWVudChkb2N1bWVu
dCk7CisgICAgICAgIGRvY3VtZW50LnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmF0aW9ucyh0aW1l
c3RhbXApOwogICAgIH0pOwogI2VuZGlmCiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MDU1OSkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisy
MDIwLTA0LTIzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisK
KyAgICAgICAgVGltZXN0YW1wcyBzaG91bGQgYmUgdGhlIHNhbWUgZm9yIGFsbCByZW5kZXJpbmcg
dXBkYXRlIHN0ZXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDcxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJhY2stdGltZXN0YW1wLmh0
bWw6CisgICAgICAgIEVuc3VyZSB0aGUgckFGIGNhbGxiYWNrIHRpbWVzdGFtcCBpcyBsZXNzIHRo
YW4gUGVyZm9ybWFuY2Uubm93KCkuCisKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1t
dWx0aXBsZS1jYWxsYmFja3MtdGltZXN0YW1wLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhbmlt
YXRpb25zL2FuaW1hdGlvbi1tdWx0aXBsZS1jYWxsYmFja3MtdGltZXN0YW1wLmh0bWw6CisgICAg
ICAgIEVuc3VyZSB0aGUgckFGIGNhbGxiYWNrcyByZWNlaXZlIHRoZSBzYW1lIHRpbWVzdGFtcHMu
CisKKyAgICAgICAgKiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVy
LWNhbGxiYWNrLXRpbWVzdGFtcC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGludGVy
c2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stdGltZXN0YW1w
Lmh0bWw6IEFkZGVkLgorICAgICAgICBFbnN1cmUgdGhlIEludGVyc2VjdGlvbk9ic2V2ZXIgYW5k
IHRoZSByQUYgY2FsbGJhY2tzIHJlY2VpdmUgdGhlIHNhbWUgdGltZXN0YW1wcy4KKwogMjAyMC0w
NC0yMyAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdW1dQRV0gR2FyZGVuaW5nLCB1cGRhdGUgYmFzZWxpbmVzIGFuZCB0ZXN0IGV4cGVjdGF0aW9u
cwpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJhY2stdGltZXN0
YW1wLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2Fu
aW1hdGlvbi1jYWxsYmFjay10aW1lc3RhbXAtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjA1NTkp
CisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1jYWxsYmFjay10aW1lc3RhbXAt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMTggQEAKLVBBU1MgQWxsIHRo
ZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIGNhbGxiYWNrIHRp
bWVzdGFtcHMgYW5kIFBlcmZvcm1hbmNlLm5vdygpIHdlcmUgd2l0aGluIDNtcy4KK1Rlc3QgcGVy
Zm9ybWFuY2Uubm93KCkgaXMgYXQgbGVhc3QgYXMgdGhlIHRpbWVzdGFtcCB0aGUgckFGIGNhbGxi
YWNrLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBNYXRoLnJvdW5kKHdp
bmRvdy5wZXJmb3JtYW5jZS5ub3coKSkgaXMgPj0gTWF0aC5yb3VuZCh0aW1lc3RhbXAxKQorUEFT
UyBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkgaXMgPj0gTWF0aC5yb3VuZCh0
aW1lc3RhbXAxKQorUEFTUyBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkgaXMg
Pj0gTWF0aC5yb3VuZCh0aW1lc3RhbXAxKQorUEFTUyBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3Jt
YW5jZS5ub3coKSkgaXMgPj0gTWF0aC5yb3VuZCh0aW1lc3RhbXAxKQorUEFTUyBNYXRoLnJvdW5k
KHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkgaXMgPj0gTWF0aC5yb3VuZCh0aW1lc3RhbXAxKQor
UEFTUyBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkgaXMgPj0gTWF0aC5yb3Vu
ZCh0aW1lc3RhbXAxKQorUEFTUyBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkg
aXMgPj0gTWF0aC5yb3VuZCh0aW1lc3RhbXAxKQorUEFTUyBNYXRoLnJvdW5kKHdpbmRvdy5wZXJm
b3JtYW5jZS5ub3coKSkgaXMgPj0gTWF0aC5yb3VuZCh0aW1lc3RhbXAxKQorUEFTUyBNYXRoLnJv
dW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkgaXMgPj0gTWF0aC5yb3VuZCh0aW1lc3RhbXAx
KQorUEFTUyBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkgaXMgPj0gTWF0aC5y
b3VuZCh0aW1lc3RhbXAxKQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1jYWxsYmFj
ay10aW1lc3RhbXAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2Fu
aW1hdGlvbi1jYWxsYmFjay10aW1lc3RhbXAuaHRtbAkocmV2aXNpb24gMjYwNTU5KQorKysgTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJhY2stdGltZXN0YW1wLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTUsMzcgKzUsMjYgQEAKIDwvaGVhZD4KIDxib2R5PgogICAgIDxzY3Jp
cHQ+CisgICAgICAgIHZhciB0aW1lc3RhbXAxID0gMDsKICAgICAgICAgdmFyIGN1cnJlbnRGcmFt
ZSA9IDA7Ci0gICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKKyAgICAgICAgY29uc3QgTWF4RnJh
bWVzID0gMTA7CiAKLSAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGlmIChmYWlsZWQpCi0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiU29tZSBv
ZiB0aGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkgY2FsbGJhY2sgdGltZXN0YW1wcyB3ZXJlIGxh
cmdlciB0aGFuIFBlcmZvcm1hbmNlLm5vdygpIGJ5IG1vcmUgdGhhbiAzbXMuIik7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQWxsIHRoZSBkaWZmZXJlbmNl
cyBiZXR3ZWVuIHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIGNhbGxiYWNrIHRpbWVzdGFtcHMgYW5k
IFBlcmZvcm1hbmNlLm5vdygpIHdlcmUgd2l0aGluIDNtcy4iKQotICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGZ1bmN0aW9uIGRvQW5pbWF0
aW9uKHRpbWVzdGFtcCkKICAgICAgICAgewotICAgICAgICAgICAgY29uc3QgVG9sZXJhbmNlID0g
MzsKLSAgICAgICAgICAgIGNvbnN0IFdhcm11cEZyYW1lcyA9IDU7CisgICAgICAgICAgICB0aW1l
c3RhbXAxID0gdGltZXN0YW1wOworICAgICAgICAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1
YWwoIk1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSIsICJNYXRoLnJvdW5kKHRp
bWVzdGFtcDEpIik7CiAKLSAgICAgICAgICAgIHZhciBwZXJmb3JtYW5jZU5vdyA9IHdpbmRvdy5w
ZXJmb3JtYW5jZS5ub3coKTsKLSAgICAgICAgICAgIGlmICgrK2N1cnJlbnRGcmFtZSA+IFdhcm11
cEZyYW1lcyAmJiBNYXRoLmFicyh0aW1lc3RhbXAgLSBwZXJmb3JtYW5jZU5vdykgPj0gVG9sZXJh
bmNlKSB7Ci0gICAgICAgICAgICAgICAgZGVidWcoInJlcXVlc3RBbmltYXRpb25GcmFtZSgpIHRp
bWVzdGFtcCA9ICIgKyB0aW1lc3RhbXAgKyAiLCB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkgPSAi
ICsgcGVyZm9ybWFuY2VOb3cpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAg
ICAgICAgICBpZiAoKytjdXJyZW50RnJhbWUgPT0gTWF4RnJhbWVzKSB7CisgICAgICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBjb25zdCBNYXhGcmFtZXMgPSAyNTsKLSAgICAgICAgICAgIGlmIChj
dXJyZW50RnJhbWUgPT0gTWF4RnJhbWVzKQotICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
ZG9BbmltYXRpb24pOworICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0
aW9uKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0IHBlcmZvcm1hbmNlLm5vdygpIGlz
IGF0IGxlYXN0IGFzIHRoZSB0aW1lc3RhbXAgdGhlIHJBRiBjYWxsYmFjay4iKTsKICAgICAgICAg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uKTsKICAgICA8L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CkluZGV4
OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1tdWx0aXBsZS1jYWxsYmFja3MtdGlt
ZXN0YW1wLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25z
L2FuaW1hdGlvbi1tdWx0aXBsZS1jYWxsYmFja3MtdGltZXN0YW1wLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMjYwNTU5KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tbXVsdGlw
bGUtY2FsbGJhY2tzLXRpbWVzdGFtcC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
NCArMSwxNiBAQAotUEFTUyBBbGwgdGhlIG11bHRpcGxlIHJlcXVlc3RBbmltYXRpb25GcmFtZSgp
IGNhbGxiYWNrcywgd2hpY2ggd2VyZSBmaXJlZCBhdCB0aGUgc2FtZSB0aW1lLCByZWNlaXZlZCB0
aGUgc2FtZSB0aW1lc3RhbXAuCitUZXN0IHRoZSB0aW1lc3RhbXBzIG9mIGFsbCB0aGUgckFGIGNh
bGxiYWNrcyBhcmUgdGhlIHNhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIE1hdGgucm91bmQodGltZXN0YW1wMSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFT
UyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKK1BBU1Mg
TWF0aC5yb3VuZCh0aW1lc3RhbXAxKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1h
dGgucm91bmQodGltZXN0YW1wMSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRo
LnJvdW5kKHRpbWVzdGFtcDEpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0aC5y
b3VuZCh0aW1lc3RhbXAxKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1hdGgucm91
bmQodGltZXN0YW1wMSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5k
KHRpbWVzdGFtcDEpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24tbXVsdGlwbGUtY2FsbGJhY2tzLXRpbWVzdGFtcC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLW11bHRpcGxlLWNhbGxiYWNr
cy10aW1lc3RhbXAuaHRtbAkocmV2aXNpb24gMjYwNTU5KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24tbXVsdGlwbGUtY2FsbGJhY2tzLXRpbWVzdGFtcC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC01LDQyICs1LDMzIEBACiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8c2NyaXB0Pgot
ICAgICAgICB2YXIgY3VycmVudEZyYW1lID0gMDsKICAgICAgICAgdmFyIHRpbWVzdGFtcDEgPSAw
OwotICAgICAgICB2YXIgZmFpbGVkID0gZmFsc2U7Ci0KLSAgICAgICAgZnVuY3Rpb24gZmluaXNo
VGVzdCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChmYWlsZWQpCi0gICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiU29tZSBvZiB0aGUgbXVsdGlwbGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1l
KCkgY2FsbGJhY2tzLCB3aGljaCB3ZXJlIGZpcmVkIGF0IHRoZSBzYW1lIHRpbWUsIHJlY2VpdmVk
IGRpZmZlcmVudCB0aW1lc3RhbXBzLiIpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkFsbCB0aGUgbXVsdGlwbGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkg
Y2FsbGJhY2tzLCB3aGljaCB3ZXJlIGZpcmVkIGF0IHRoZSBzYW1lIHRpbWUsIHJlY2VpdmVkIHRo
ZSBzYW1lIHRpbWVzdGFtcC4iKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAg
ICB9CisgICAgICAgIHZhciB0aW1lc3RhbXAyID0gMDsKKyAgICAgICAgdmFyIGN1cnJlbnRGcmFt
ZSA9IDA7CisgICAgICAgIGNvbnN0IE1heEZyYW1lcyA9IDEwOwogCiAgICAgICAgIGZ1bmN0aW9u
IGRvQW5pbWF0aW9uMSh0aW1lc3RhbXApCiAgICAgICAgIHsKICAgICAgICAgICAgIHRpbWVzdGFt
cDEgPSB0aW1lc3RhbXA7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGNvbnN0IE1heEZyYW1l
cyA9IDI1OwotICAgICAgICAgICAgaWYgKGN1cnJlbnRGcmFtZSA9PSBNYXhGcmFtZXMpCi0gICAg
ICAgICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uMSk7Ci0gICAgICAgICAgICAg
ICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uMik7CisgICAgICAgICAgIAorICAg
ICAgICAgICAgaWYgKCsrY3VycmVudEZyYW1lID09IE1heEZyYW1lcykgeworICAgICAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uMSk7Cisg
ICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZG9BbmltYXRpb24yKTsKICAgICAgICAg
fQogCiAgICAgICAgIGZ1bmN0aW9uIGRvQW5pbWF0aW9uMih0aW1lc3RhbXApCiAgICAgICAgIHsK
LSAgICAgICAgICAgIGNvbnN0IFdhcm11cEZyYW1lcyA9IDU7Ci0gICAgICAgICAgICBpZiAoKytj
dXJyZW50RnJhbWUgPiBXYXJtdXBGcmFtZXMgJiYgdGltZXN0YW1wICE9IHRpbWVzdGFtcDEpIHsK
LSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJ0aW1lc3RhbXAgPSAiICsgdGltZXN0YW1wICsg
IiwgdGltZXN0YW1wMSA9ICIgKyB0aW1lc3RhbXAxICArICIsIHdpbmRvdy5wZXJmb3JtYW5jZS5u
b3coKSA9ICIgKyB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpOwotICAgICAgICAgICAgICAgIGZh
aWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICB0aW1lc3RhbXAyID0gdGlt
ZXN0YW1wOworICAgICAgICAgICAgc2hvdWxkQmUoIk1hdGgucm91bmQodGltZXN0YW1wMSkiLCAi
TWF0aC5yb3VuZCh0aW1lc3RhbXAyKSIpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3Qg
dGhlIHRpbWVzdGFtcHMgb2YgYWxsIHRoZSByQUYgY2FsbGJhY2tzIGFyZSB0aGUgc2FtZS4iKTsK
ICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uMSk7CiAgICAgPC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlv
bi1vYnNlcnZlci1jYWxsYmFjay10aW1lc3RhbXAtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIt
Y2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRU
ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNr
LXRpbWVzdGFtcC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAor
VGVzdCB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgdGltZXN0YW1wIGlzIHRoZSBzYW1lIGFzIHRo
ZSB0aW1lc3RhbXAgb2YgdGhlIHJBRiBjYWxsYmFjay4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgTWF0aC5yb3VuZChhbmltYXRlVGltZXN0YW1wKSBpcyBNYXRoLnJvdW5k
KGludGVyc2VjdFRpbWVzdGFtcCkKK1BBU1MgTWF0aC5yb3VuZChhbmltYXRlVGltZXN0YW1wKSBp
cyBNYXRoLnJvdW5kKGludGVyc2VjdFRpbWVzdGFtcCkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9pbnRlcnNlY3Rp
b24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNl
Y3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stdGltZXN0YW1wLmh0bWwJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1j
YWxsYmFjay10aW1lc3RhbXAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk5IEBACis8
IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8c3R5bGU+CisgICAgI3Nj
cm9sbGFibGUgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7
CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICBvdmVyZmxvdy15OiBh
dXRvOworICAgIH0KKyAgICAjY29udGFpbmVyIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAg
ICAgICBoZWlnaHQ6IDIwMHB4OworICAgIH0KKyAgICAjYm94IHsKKyAgICAgICAgcG9zaXRpb246
IHJlbGF0aXZlOworICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7Cisg
ICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwor
ICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJzY3JvbGxhYmxlIj4KKyAgICAg
ICAgPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgaWQ9ImJveCI+PC9kaXY+
CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBh
bmltYXRlVGltZXN0YW1wID0gMDsKKyAgICAgICAgdmFyIGludGVyc2VjdFRpbWVzdGFtcCA9IDA7
CisgICAgICAgIHZhciBNYXhGcmFtZXMgPSAyOworICAgICAgICB2YXIgY3VycmVudEZyYW1lID0g
MDsKKworICAgICAgICBmdW5jdGlvbiBzY3JvbGxCb3goKQorICAgICAgICB7CisgICAgICAgICAg
ICB2YXIgc2Nyb2xsYWJsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzY3JvbGxhYmxlIik7
CisgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gc2Nyb2xsYWJsZS5jbGllbnRIZWlnaHQ7CisgICAg
ICAgICAgICBzY3JvbGxhYmxlLnNjcm9sbCgwLCAoaGVpZ2h0IC8gTWF4RnJhbWVzKSAqIGN1cnJl
bnRGcmFtZSk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZUFuaW1hdGUodGltZXN0YW1wKQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoKytjdXJyZW50RnJhbWUgPiBNYXhGcmFtZXMpIHsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGFuaW1hdGVUaW1lc3RhbXAgPSB0aW1lc3RhbXA7Cisg
ICAgICAgICAgICBzY3JvbGxCb3goKTsKKyAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFt
ZShoYW5kbGVBbmltYXRlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZUlu
dGVyc2VjdChlbnRyaWVzLCBvYnNlcnZlcikKKyAgICAgICAgeworICAgICAgICAgICAgZW50cmll
cy5mb3JFYWNoKChlbnRyeSkgPT4geworICAgICAgICAgICAgICAgIGludGVyc2VjdFRpbWVzdGFt
cCA9IGVudHJ5LnRpbWU7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIk1hdGgucm91bmQoYW5p
bWF0ZVRpbWVzdGFtcCkiLCAiTWF0aC5yb3VuZChpbnRlcnNlY3RUaW1lc3RhbXApIik7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGJ1aWxkVGhyZXNob2xk
TGlzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxldCB0aHJlc2hvbGRzID0gW107CisKKyAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAxLjA7IGkgPD0gTWF4RnJhbWVzOyBpKyspIHsKKyAgICAg
ICAgICAgICAgICBsZXQgcmF0aW8gPSBpIC8gTWF4RnJhbWVzOworICAgICAgICAgICAgICAgIHRo
cmVzaG9sZHMucHVzaChyYXRpbyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVy
biB0aHJlc2hvbGRzOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY3JlYXRlT2JzZXJ2
ZXIoKQorICAgICAgICB7CisgICAgICAgICAgICBsZXQgb2JzZXJ2ZXI7CisKKyAgICAgICAgICAg
IGxldCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHJvb3Q6IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoIiNzY3JvbGxhYmxlIiksCisgICAgICAgICAgICAgICAgcm9vdE1hcmdpbjogIjBweCIs
CisgICAgICAgICAgICAgICAgdGhyZXNob2xkOiBidWlsZFRocmVzaG9sZExpc3QoKQorICAgICAg
ICAgICAgfTsKKworICAgICAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2
ZXIoaGFuZGxlSW50ZXJzZWN0LCBvcHRpb25zKTsKKyAgICAgICAgICAgIG9ic2VydmVyLm9ic2Vy
dmUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2JveCIpKTsKKyAgICAgICAgfQorCisgICAgICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBkZXNjcmlwdGlvbigiVGVz
dCB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgdGltZXN0YW1wIGlzIHRoZSBzYW1lIGFzIHRoZSB0
aW1lc3RhbXAgb2YgdGhlIHJBRiBjYWxsYmFjay4iKTsKKyAgICAgICAgY3JlYXRlT2JzZXJ2ZXIo
KTsKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGhhbmRsZUFuaW1hdGUpOworICAgIDwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397439</attachid>
            <date>2020-04-24 01:45:18 -0700</date>
            <delta_ts>2020-04-27 12:38:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207153-20200424014517.patch</filename>
            <type>text/plain</type>
            <size>21625</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MDYyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDIwLTA0LTI0ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgVGltZXN0YW1w
cyBzaG91bGQgYmUgdGhlIHNhbWUgZm9yIGFsbCByZW5kZXJpbmcgdXBkYXRlIHN0ZXBzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxNTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgSFRNTCA1IGV2
ZW50IGxvb3Agc2VwY3Mgc3RhdGVzIHRoYXQgdGltZXN0YW1wcyBzaG91bGQgYmUgdGhlIHNhbWUg
Zm9yIAorICAgICAgICBhbGwgcmVuZGVyaW5nIHVwZGF0ZSBzdGVwcy4KKworICAgICAgICBTcGVj
cyBsaW5rOiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlz
Lmh0bWwjZXZlbnQtbG9vcC1wcm9jZXNzaW5nLW1vZGVsCisgICAgICAgIHNldHAgOS4KKworICAg
ICAgICBUaGlzIHBhdGNoIGluY2x1ZGVzIGFsc28gc29tZSBmaXhlcyBpbiBJbnRlcnNlY3Rpb25P
YnNlcnZlci4KKworICAgICAgICBUZXN0OiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0
aW9uLW9ic2VydmVyLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sCisKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUludGVyc2VjdGlv
bk9ic2VydmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bm90aWZ5SW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJzVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3Vt
ZW50Lmg6CisgICAgICAgIC0tIEhhbmRsZSB0aGUgY2FzZSB3aGVuIHR3byBmbG9hdHMgYXJlIGFy
ZUVzc2VudGlhbGx5RXF1YWwoKS4KKyAgICAgICAgLS0gRXhlY3V0ZSB0aGUgSW50ZXJzZWN0aW9u
T2JzZXJ2ZXIgaW1tZWRpYXRlbHkgYW5kIGRvIG5vdCB3YWl0IHVudGlsIHRoZSAKKyAgICAgICAg
ICAgbmV4dCBDRlJ1bkxvb3AgZXZlbnQgc2luY2UgdGhpcyBkb2VzIG5vdCBpbXBsZW1lbnQgdGhl
IHNwZWNzLgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpmcmVlemVOb3dUaW1lc3RhbXApOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93Ojp1bmZyZWV6ZU5vd1RpbWVzdGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3c6OmZyb3plbk5vd1RpbWVzdGFtcCBjb25zdCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
aDoKKyAgICAgICAgUHJvdmlkZSBhIGZyb3plbiBub3coKSB0aW1lc3RhbXAgaW4gc2Vjb25kcyB0
byBiZSB1c2VkIGludGVybmFsbHkgb25seS4KKworICAgICAgICAqIHBhZ2UvSW50ZXJzZWN0aW9u
T2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OmNy
ZWF0ZVRpbWVzdGFtcCBjb25zdCk6CisgICAgICAgIC0tIENvbnZlcnQgdGhlIHRpbWVzdGFtcHMg
ZnJvbSBzZWNvbmRzIHRvIG1pbGxpc2Vjb25kcy4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVSZW5kZXJpbmcpOgorICAgICAgICBGcmVl
emUgdGhlIHRpbWVzdGFtcHMgd2hpbGUgc2VydmluZyB0aGUgcmVuZGVyaW5nIHVwZGF0ZSBzdGVw
cy4KKwogMjAyMC0wNC0yNCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIEFkZCBtaXNzaW5nIEhUTUxOYW1lczo6IG5hbWVzcGFjZSBwcmVmaXgg
dG8gdXNhZ2Ugb2YgbGlUYWcgb2JqZWN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJl
dmlzaW9uIDI2MDU1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU2MSw3ICs1NjEsNiBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZy
YW1lLCBjb25zdCBVCiAgICAgLCBtX2Z1bGxzY3JlZW5NYW5hZ2VyIHsgbWFrZVVuaXF1ZVJlZjxG
dWxsc2NyZWVuTWFuYWdlcj4oKnRoaXMpIH0KICNlbmRpZgogI2lmIEVOQUJMRShJTlRFUlNFQ1RJ
T05fT0JTRVJWRVIpCi0gICAgLCBtX2ludGVyc2VjdGlvbk9ic2VydmVyc05vdGlmeVRpbWVyKCp0
aGlzLCAmRG9jdW1lbnQ6Om5vdGlmeUludGVyc2VjdGlvbk9ic2VydmVyc1RpbWVyRmlyZWQpCiAg
ICAgLCBtX2ludGVyc2VjdGlvbk9ic2VydmVyc0luaXRpYWxVcGRhdGVUaW1lcigqdGhpcywgJkRv
Y3VtZW50OjpzY2hlZHVsZVRpbWVkUmVuZGVyaW5nVXBkYXRlKQogI2VuZGlmCiAgICAgLCBtX2xv
YWRFdmVudERlbGF5VGltZXIoKnRoaXMsICZEb2N1bWVudDo6bG9hZEV2ZW50RGVsYXlUaW1lckZp
cmVkKQpAQCAtNzYxNCwxMiArNzYxMywxMiBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVJbnRlcnNl
Y3Rpb25PYnNlcnZhCiAgICAgaWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzSW5pdGlhbFVwZGF0ZVRpbWVyLnN0b3AoKTsKLQogICAg
IGJvb2wgbmVlZHNMYXlvdXQgPSBmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dFBl
bmRpbmcoKSB8fCAocmVuZGVyVmlldygpICYmIHJlbmRlclZpZXcoKS0+bmVlZHNMYXlvdXQoKSk7
CiAgICAgaWYgKG5lZWRzTGF5b3V0IHx8IGhhc1BlbmRpbmdTdHlsZVJlY2FsYygpKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBWZWN0b3I8V2Vha1B0cjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4+IGlu
dGVyc2VjdGlvbk9ic2VydmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9uczsKKyAgICAKICAgICBm
b3IgKGNvbnN0IGF1dG8mIG9ic2VydmVyIDogbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnMpIHsKICAg
ICAgICAgYm9vbCBuZWVkTm90aWZ5ID0gZmFsc2U7CiAgICAgICAgIERPTUhpZ2hSZXNUaW1lU3Rh
bXAgdGltZXN0YW1wOwpAQCAtNzY0Niw5ICs3NjQ1LDExIEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0
ZUludGVyc2VjdGlvbk9ic2VydmEKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgICAgICAgICAgaW50ZXJzZWN0aW9uUmF0aW8gPSAxOwogCi0gICAgICAgICAgICAgICAg
ICAgIGF1dG8mIHRocmVzaG9sZHMgPSBvYnNlcnZlci0+dGhyZXNob2xkcygpOwotICAgICAgICAg
ICAgICAgICAgICB3aGlsZSAodGhyZXNob2xkSW5kZXggPCB0aHJlc2hvbGRzLnNpemUoKSAmJiB0
aHJlc2hvbGRzW3RocmVzaG9sZEluZGV4XSA8PSBpbnRlcnNlY3Rpb25SYXRpbykKKyAgICAgICAg
ICAgICAgICAgICAgZm9yIChhdXRvIHRocmVzaG9sZCA6IG9ic2VydmVyLT50aHJlc2hvbGRzKCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aHJlc2hvbGQgPiBpbnRlcnNlY3Rpb25S
YXRpbyAmJiAhV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsPGZsb2F0Pih0aHJlc2hvbGQsIGludGVy
c2VjdGlvblJhdGlvKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICAgICAgICAgICsrdGhyZXNob2xkSW5kZXg7CisgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKQEAgLTc2ODgsMjEgKzc2ODks
MTUgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YQogICAgICAgICAg
ICAgICAgIHJlZ2lzdHJhdGlvbi5wcmV2aW91c1RocmVzaG9sZEluZGV4ID0gdGhyZXNob2xkSW5k
ZXg7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKwogICAgICAgICBpZiAobmVlZE5vdGlmeSkK
LSAgICAgICAgICAgIG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzV2l0aFBlbmRpbmdOb3RpZmljYXRp
b25zLmFwcGVuZChtYWtlV2Vha1B0cihvYnNlcnZlci5nZXQoKSkpOworICAgICAgICAgICAgaW50
ZXJzZWN0aW9uT2JzZXJ2ZXJzV2l0aFBlbmRpbmdOb3RpZmljYXRpb25zLmFwcGVuZChtYWtlV2Vh
a1B0cihvYnNlcnZlci5nZXQoKSkpOwogICAgIH0KIAotICAgIGlmIChtX2ludGVyc2VjdGlvbk9i
c2VydmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9ucy5zaXplKCkpCi0gICAgICAgIG1faW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJzTm90aWZ5VGltZXIuc3RhcnRPbmVTaG90KDBfcyk7Ci19Ci0KLXZvaWQg
RG9jdW1lbnQ6Om5vdGlmeUludGVyc2VjdGlvbk9ic2VydmVyc1RpbWVyRmlyZWQoKQotewotICAg
IGZvciAoY29uc3QgYXV0byYgb2JzZXJ2ZXIgOiBtX2ludGVyc2VjdGlvbk9ic2VydmVyc1dpdGhQ
ZW5kaW5nTm90aWZpY2F0aW9ucykgeworICAgIGZvciAoY29uc3QgYXV0byYgb2JzZXJ2ZXIgOiBp
bnRlcnNlY3Rpb25PYnNlcnZlcnNXaXRoUGVuZGluZ05vdGlmaWNhdGlvbnMpIHsKICAgICAgICAg
aWYgKG9ic2VydmVyKQogICAgICAgICAgICAgb2JzZXJ2ZXItPm5vdGlmeSgpOwogICAgIH0KLSAg
ICBtX2ludGVyc2VjdGlvbk9ic2VydmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9ucy5jbGVhcigp
OwogfQogCiB2b2lkIERvY3VtZW50OjpzY2hlZHVsZUluaXRpYWxJbnRlcnNlY3Rpb25PYnNlcnZh
dGlvblVwZGF0ZSgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMjYwNTU5KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Njgs
MTAgKzE2NjgsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuTmF2aWdhdGVJbnRlcm5hbChGcmFt
ZSYgdGFyZ2V0RnJhbWUpOwogICAgIGJvb2wgaXNOYXZpZ2F0aW9uQmxvY2tlZEJ5VGhpcmRQYXJ0
eUlGcmFtZVJlZGlyZWN0QmxvY2tpbmcoRnJhbWUmIHRhcmdldEZyYW1lLCBjb25zdCBVUkwmIGRl
c3RpbmF0aW9uVVJMKTsKIAotI2lmIEVOQUJMRShJTlRFUlNFQ1RJT05fT0JTRVJWRVIpCi0gICAg
dm9pZCBub3RpZnlJbnRlcnNlY3Rpb25PYnNlcnZlcnNUaW1lckZpcmVkKCk7Ci0jZW5kaWYKLQog
I2lmIFVTRShRVUlDS19MT09LKQogICAgIGJvb2wgc2hvdWxkRW5mb3JjZVF1aWNrTG9va1NhbmRi
b3goKSBjb25zdDsKICAgICB2b2lkIGFwcGx5UXVpY2tMb29rU2FuZGJveCgpOwpAQCAtMTg0NCw3
ICsxODQwLDYgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQog
ICAgIFZlY3RvcjxXZWFrUHRyPEludGVyc2VjdGlvbk9ic2VydmVyPj4gbV9pbnRlcnNlY3Rpb25P
YnNlcnZlcnM7CiAgICAgVmVjdG9yPFdlYWtQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+PiBtX2lu
dGVyc2VjdGlvbk9ic2VydmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9uczsKLSAgICBUaW1lciBt
X2ludGVyc2VjdGlvbk9ic2VydmVyc05vdGlmeVRpbWVyOwogICAgIFRpbWVyIG1faW50ZXJzZWN0
aW9uT2JzZXJ2ZXJzSW5pdGlhbFVwZGF0ZVRpbWVyOwogICAgIC8vIFRoaXMgaXMgb25seSBub24t
bnVsbCB3aGVuIHRoaXMgZG9jdW1lbnQgaXMgYW4gZXhwbGljaXQgcm9vdC4KICAgICBzdGQ6OnVu
aXF1ZV9wdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhPiBtX2ludGVyc2VjdGlvbk9ic2VydmVy
RGF0YTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDI2MDU1OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzQwLDYgKzc0MCwyMSBAQCBkb3VibGUgRE9NV2luZG93Ojpub3dUaW1lc3RhbXAoKSBjb25zdAog
ICAgIHJldHVybiBwZXJmb3JtYW5jZSgpLm5vdygpIC8gMTAwMC47CiB9CiAKK3ZvaWQgRE9NV2lu
ZG93OjpmcmVlemVOb3dUaW1lc3RhbXAoKQoreworICAgIG1fZnJvemVuTm93VGltZXN0YW1wID0g
bm93VGltZXN0YW1wKCk7Cit9CisKK3ZvaWQgRE9NV2luZG93Ojp1bmZyZWV6ZU5vd1RpbWVzdGFt
cCgpCit7CisgICAgbV9mcm96ZW5Ob3dUaW1lc3RhbXAgPSBXVEY6Om51bGxvcHQ7Cit9CisKK2Rv
dWJsZSBET01XaW5kb3c6OmZyb3plbk5vd1RpbWVzdGFtcCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fZnJvemVuTm93VGltZXN0YW1wLnZhbHVlT3Iobm93VGltZXN0YW1wKCkpOworfQorCiBMb2Nh
dGlvbiYgRE9NV2luZG93Ojpsb2NhdGlvbigpCiB7CiAgICAgaWYgKCFtX2xvY2F0aW9uKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCShyZXZpc2lvbiAyNjA1NTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTAsNiArMzUwLDkgQEAg
cHVibGljOgogCiAgICAgUGVyZm9ybWFuY2UmIHBlcmZvcm1hbmNlKCkgY29uc3Q7CiAgICAgV0VC
Q09SRV9FWFBPUlQgZG91YmxlIG5vd1RpbWVzdGFtcCgpIGNvbnN0OworICAgIHZvaWQgZnJlZXpl
Tm93VGltZXN0YW1wKCk7CisgICAgdm9pZCB1bmZyZWV6ZU5vd1RpbWVzdGFtcCgpOworICAgIGRv
dWJsZSBmcm96ZW5Ob3dUaW1lc3RhbXAoKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAgICAgdm9pZCBpbmNyZW1lbnRTY3JvbGxFdmVudExpc3RlbmVyc0NvdW50KCk7CkBAIC00
NjgsNiArNDcxLDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5
PiBtX2N1c3RvbUVsZW1lbnRSZWdpc3RyeTsKIAogICAgIG11dGFibGUgUmVmUHRyPFBlcmZvcm1h
bmNlPiBtX3BlcmZvcm1hbmNlOworICAgICAgICAKKyAgICBPcHRpb25hbDxkb3VibGU+IG1fZnJv
emVuTm93VGltZXN0YW1wOwogCiAgICAgLy8gRm9yIHRoZSBwdXJwb3NlIG9mIHRyYWNraW5nIHVz
ZXIgYWN0aXZhdGlvbiwgZWFjaCBXaW5kb3cgVyBoYXMgYSBsYXN0IGFjdGl2YXRpb24gdGltZXN0
YW1wLiBUaGlzIGlzIGEgbnVtYmVyIGluZGljYXRpbmcgdGhlIGxhc3QgdGltZSBXIGdvdAogICAg
IC8vIGFuIGFjdGl2YXRpb24gbm90aWZpY2F0aW9uLiBJdCBjb3JyZXNwb25kcyB0byBhIERPTUhp
Z2hSZXNUaW1lU3RhbXAgdmFsdWUgZXhjZXB0IGZvciB0d28gY2FzZXM6IHBvc2l0aXZlIGluZmlu
aXR5IGluZGljYXRlcyB0aGF0IFcgaGFzIG5ldmVyCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcAkocmV2aXNpb24gMjYwNTU5KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI1NSw3ICsyNTUsNyBAQCBib29sIEludGVyc2VjdGlvbk9ic2VydmVyOjpjcmVhdGVUaW1lc3Rh
CiAgICAgQVNTRVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CiAgICAgYXV0byYgZG9jdW1lbnQg
PSBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpOwogICAgIGlmIChhdXRvKiB3aW5kb3cgPSBk
b2N1bWVudC5kb21XaW5kb3coKSkgewotICAgICAgICB0aW1lc3RhbXAgPSAgd2luZG93LT5wZXJm
b3JtYW5jZSgpLm5vdygpOworICAgICAgICB0aW1lc3RhbXAgPSBzdGQ6OnJvdW5kKDEwMDAgKiB3
aW5kb3ctPmZyb3plbk5vd1RpbWVzdGFtcCgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24gMjYw
NTU5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTMyMiw2ICsxMzIyLDEzIEBAIHZvaWQgUGFnZTo6dXBkYXRlUmVuZGVyaW5nKCkKIAogICAgIGxh
eW91dElmTmVlZGVkKCk7CiAKKyAgICAvLyBUaW1lc3RhbXBzIHNob3VsZCBub3QgY2hhbmdlIHdo
aWxlIHNlcnZpbmcgdGhlIHJlbmRlcmluZyB1cGRhdGUgc3RlcHMuCisgICAgVmVjdG9yPFdlYWtQ
dHI8RG9jdW1lbnQ+PiBpbml0aWFsRG9jdW1lbnRzOworICAgIGZvckVhY2hEb2N1bWVudChbJmlu
aXRpYWxEb2N1bWVudHNdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQu
ZG9tV2luZG93KCktPmZyZWV6ZU5vd1RpbWVzdGFtcCgpOworICAgICAgICBpbml0aWFsRG9jdW1l
bnRzLmFwcGVuZChtYWtlV2Vha1B0cigmZG9jdW1lbnQpKTsKKyAgICB9KTsKKwogICAgIC8vIEZs
dXNoIGF1dG9mb2N1cyBjYW5kaWRhdGVzCiAKICAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3Vt
ZW50JiBkb2N1bWVudCkgewpAQCAtMTMzOSw3ICsxMzQ2LDcgQEAgdm9pZCBQYWdlOjp1cGRhdGVS
ZW5kZXJpbmcoKQogICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7
CiAgICAgICAgIGlmICghZG9jdW1lbnQuZG9tV2luZG93KCkpCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZXN0YW1wID0gZG9jdW1lbnQuZG9tV2lu
ZG93KCktPm5vd1RpbWVzdGFtcCgpOworICAgICAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVz
dGFtcCA9IGRvY3VtZW50LmRvbVdpbmRvdygpLT5mcm96ZW5Ob3dUaW1lc3RhbXAoKTsKICAgICAg
ICAgaWYgKGF1dG8qIHRpbWVsaW5lc0NvbnRyb2xsZXIgPSBkb2N1bWVudC50aW1lbGluZXNDb250
cm9sbGVyKCkpCiAgICAgICAgICAgICB0aW1lbGluZXNDb250cm9sbGVyLT51cGRhdGVBbmltYXRp
b25zQW5kU2VuZEV2ZW50cyh0aW1lc3RhbXApOwogICAgICAgICAvLyBGSVhNRTogUnVuIHRoZSBm
dWxsc2NyZWVuIHN0ZXBzLgpAQCAtMTM2Nyw2ICsxMzc0LDExIEBAIHZvaWQgUGFnZTo6dXBkYXRl
UmVuZGVyaW5nKCkKICAgICAgICAgfQogICAgIH0pOwogCisgICAgZm9yIChhdXRvJiBkb2N1bWVu
dCA6IGluaXRpYWxEb2N1bWVudHMpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50KQorICAgICAgICAg
ICAgZG9jdW1lbnQtPmRvbVdpbmRvdygpLT51bmZyZWV6ZU5vd1RpbWVzdGFtcCgpOworICAgIH0K
KyAgICAgICAgCiAgICAgbGF5b3V0SWZOZWVkZWQoKTsKICAgICBkb0FmdGVyVXBkYXRlUmVuZGVy
aW5nKCk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjA1NTkpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNC0yNCAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFRpbWVzdGFt
cHMgc2hvdWxkIGJlIHRoZSBzYW1lIGZvciBhbGwgcmVuZGVyaW5nIHVwZGF0ZSBzdGVwcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MTUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhbmltYXRpb25z
L2FuaW1hdGlvbi1jYWxsYmFjay10aW1lc3RhbXAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFu
aW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sOgorICAgICAgICBFbnN1
cmUgdGhlIHJBRiBjYWxsYmFjayB0aW1lc3RhbXAgaXMgbGVzcyB0aGFuIFBlcmZvcm1hbmNlLm5v
dygpLgorCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tbXVsdGlwbGUtY2FsbGJhY2tz
LXRpbWVzdGFtcC1leHBlY3RlZC50eHQ6CisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24t
bXVsdGlwbGUtY2FsbGJhY2tzLXRpbWVzdGFtcC5odG1sOgorICAgICAgICBFbnN1cmUgdGhlIHJB
RiBjYWxsYmFja3MgcmVjZWl2ZSB0aGUgc2FtZSB0aW1lc3RhbXBzLgorCisgICAgICAgICogaW50
ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay10aW1lc3Rh
bXAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIv
aW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgTmV3IHRlc3QgdG8gZW5zdXJlIHRoZSBJbnRlcnNlY3Rpb25PYnNldmVyIGFuZCB0aGUg
ckFGIGNhbGxiYWNrcyByZWNlaXZlIHRoZSBzYW1lIHRpbWVzdGFtcHMuCisKIDIwMjAtMDQtMjMg
IERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtX
UEVdIEdhcmRlbmluZywgdXBkYXRlIGJhc2VsaW5lcyBhbmQgdGVzdCBleHBlY3RhdGlvbnMKSW5k
ZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRp
b24tY2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjYwNTU5KQorKysg
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJhY2stdGltZXN0YW1wLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDE4IEBACi1QQVNTIEFsbCB0aGUgZGlm
ZmVyZW5jZXMgYmV0d2VlbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBjYWxsYmFjayB0aW1lc3Rh
bXBzIGFuZCBQZXJmb3JtYW5jZS5ub3coKSB3ZXJlIHdpdGhpbiAzbXMuCitUZXN0IHBlcmZvcm1h
bmNlLm5vdygpIGlzIGF0IGxlYXN0IGFzIHRoZSB0aW1lc3RhbXAgdGhlIHJBRiBjYWxsYmFjay4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cu
cGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0
aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1hdGgucm91bmQodGltZXN0
YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1h
dGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uu
bm93KCkpIGlzID49IE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5k
b3cucGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1Mg
TWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1hdGgucm91bmQodGlt
ZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzID49
IE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFu
Y2Uubm93KCkpIGlzID49IE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3
aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BB
U1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1hdGgucm91bmQo
dGltZXN0YW1wMSkKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJhY2stdGlt
ZXN0YW1wLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRp
b24tY2FsbGJhY2stdGltZXN0YW1wLmh0bWwJKHJldmlzaW9uIDI2MDU1OSkKKysrIExheW91dFRl
c3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC01LDM3ICs1LDI2IEBACiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8c2NyaXB0Pgor
ICAgICAgICB2YXIgdGltZXN0YW1wMSA9IDA7CiAgICAgICAgIHZhciBjdXJyZW50RnJhbWUgPSAw
OwotICAgICAgICB2YXIgZmFpbGVkID0gZmFsc2U7CisgICAgICAgIGNvbnN0IE1heEZyYW1lcyA9
IDEwOwogCi0gICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBpZiAoZmFpbGVkKQotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNvbWUgb2YgdGhl
IHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIGNhbGxiYWNrIHRpbWVzdGFtcHMgd2VyZSBsYXJnZXIg
dGhhbiBQZXJmb3JtYW5jZS5ub3coKSBieSBtb3JlIHRoYW4gM21zLiIpOwotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkFsbCB0aGUgZGlmZmVyZW5jZXMgYmV0
d2VlbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBjYWxsYmFjayB0aW1lc3RhbXBzIGFuZCBQZXJm
b3JtYW5jZS5ub3coKSB3ZXJlIHdpdGhpbiAzbXMuIikKLSAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOwotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBmdW5jdGlvbiBkb0FuaW1hdGlvbih0
aW1lc3RhbXApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNvbnN0IFRvbGVyYW5jZSA9IDM7Ci0g
ICAgICAgICAgICBjb25zdCBXYXJtdXBGcmFtZXMgPSA1OworICAgICAgICAgICAgdGltZXN0YW1w
MSA9IHRpbWVzdGFtcDsKKyAgICAgICAgICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJN
YXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSkiLCAiTWF0aC5yb3VuZCh0aW1lc3Rh
bXAxKSIpOwogCi0gICAgICAgICAgICB2YXIgcGVyZm9ybWFuY2VOb3cgPSB3aW5kb3cucGVyZm9y
bWFuY2Uubm93KCk7Ci0gICAgICAgICAgICBpZiAoKytjdXJyZW50RnJhbWUgPiBXYXJtdXBGcmFt
ZXMgJiYgTWF0aC5hYnModGltZXN0YW1wIC0gcGVyZm9ybWFuY2VOb3cpID49IFRvbGVyYW5jZSkg
ewotICAgICAgICAgICAgICAgIGRlYnVnKCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSB0aW1lc3Rh
bXAgPSAiICsgdGltZXN0YW1wICsgIiwgd2luZG93LnBlcmZvcm1hbmNlLm5vdygpID0gIiArIHBl
cmZvcm1hbmNlTm93KTsKLSAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKCsrY3VycmVudEZyYW1lID09IE1heEZyYW1lcykgeworICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgY29uc3QgTWF4RnJhbWVzID0gMjU7Ci0gICAgICAgICAgICBpZiAoY3VycmVu
dEZyYW1lID09IE1heEZyYW1lcykKLSAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5p
bWF0aW9uKTsKKyAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbik7
CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgICAgICBkZXNjcmlwdGlvbigiVGVzdCBwZXJmb3JtYW5jZS5ub3coKSBpcyBhdCBs
ZWFzdCBhcyB0aGUgdGltZXN0YW1wIHRoZSByQUYgY2FsbGJhY2suIik7CiAgICAgICAgIHJlcXVl
c3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbik7CiAgICAgPC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpJbmRleDogTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tbXVsdGlwbGUtY2FsbGJhY2tzLXRpbWVzdGFt
cC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmlt
YXRpb24tbXVsdGlwbGUtY2FsbGJhY2tzLXRpbWVzdGFtcC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDI2MDU1OSkKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLW11bHRpcGxlLWNh
bGxiYWNrcy10aW1lc3RhbXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEs
MTYgQEAKLVBBU1MgQWxsIHRoZSBtdWx0aXBsZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBjYWxs
YmFja3MsIHdoaWNoIHdlcmUgZmlyZWQgYXQgdGhlIHNhbWUgdGltZSwgcmVjZWl2ZWQgdGhlIHNh
bWUgdGltZXN0YW1wLgorVGVzdCB0aGUgdGltZXN0YW1wcyBvZiBhbGwgdGhlIHJBRiBjYWxsYmFj
a3MgYXJlIHRoZSBzYW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBN
YXRoLnJvdW5kKHRpbWVzdGFtcDEpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0
aC5yb3VuZCh0aW1lc3RhbXAxKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1hdGgu
cm91bmQodGltZXN0YW1wMSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJv
dW5kKHRpbWVzdGFtcDEpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0aC5yb3Vu
ZCh0aW1lc3RhbXAxKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1hdGgucm91bmQo
dGltZXN0YW1wMSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5kKHRp
bWVzdGFtcDEpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0aC5yb3VuZCh0aW1l
c3RhbXAxKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMv
YW5pbWF0aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3RhbXAuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1tdWx0aXBsZS1jYWxsYmFja3MtdGlt
ZXN0YW1wLmh0bWwJKHJldmlzaW9uIDI2MDU1OSkKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMv
YW5pbWF0aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3RhbXAuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNSw0MiArNSwzMyBAQAogPC9oZWFkPgogPGJvZHk+CiAgICAgPHNjcmlwdD4KLSAgICAg
ICAgdmFyIGN1cnJlbnRGcmFtZSA9IDA7CiAgICAgICAgIHZhciB0aW1lc3RhbXAxID0gMDsKLSAg
ICAgICAgdmFyIGZhaWxlZCA9IGZhbHNlOwotCi0gICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoZmFpbGVkKQotICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlNvbWUgb2YgdGhlIG11bHRpcGxlIHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIGNh
bGxiYWNrcywgd2hpY2ggd2VyZSBmaXJlZCBhdCB0aGUgc2FtZSB0aW1lLCByZWNlaXZlZCBkaWZm
ZXJlbnQgdGltZXN0YW1wcy4iKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJBbGwgdGhlIG11bHRpcGxlIHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIGNhbGxi
YWNrcywgd2hpY2ggd2VyZSBmaXJlZCBhdCB0aGUgc2FtZSB0aW1lLCByZWNlaXZlZCB0aGUgc2Ft
ZSB0aW1lc3RhbXAuIik7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQor
ICAgICAgICB2YXIgdGltZXN0YW1wMiA9IDA7CisgICAgICAgIHZhciBjdXJyZW50RnJhbWUgPSAw
OworICAgICAgICBjb25zdCBNYXhGcmFtZXMgPSAxMDsKIAogICAgICAgICBmdW5jdGlvbiBkb0Fu
aW1hdGlvbjEodGltZXN0YW1wKQogICAgICAgICB7CiAgICAgICAgICAgICB0aW1lc3RhbXAxID0g
dGltZXN0YW1wOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBjb25zdCBNYXhGcmFtZXMgPSAy
NTsKLSAgICAgICAgICAgIGlmIChjdXJyZW50RnJhbWUgPT0gTWF4RnJhbWVzKQotICAgICAgICAg
ICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAg
IHJlcXVlc3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbjEpOwotICAgICAgICAgICAgICAgIHJl
cXVlc3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbjIpOworICAgICAgICAgICAKKyAgICAgICAg
ICAgIGlmICgrK2N1cnJlbnRGcmFtZSA9PSBNYXhGcmFtZXMpIHsKKyAgICAgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbjEpOworICAgICAg
ICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uMik7CiAgICAgICAgIH0KIAog
ICAgICAgICBmdW5jdGlvbiBkb0FuaW1hdGlvbjIodGltZXN0YW1wKQogICAgICAgICB7Ci0gICAg
ICAgICAgICBjb25zdCBXYXJtdXBGcmFtZXMgPSA1OwotICAgICAgICAgICAgaWYgKCsrY3VycmVu
dEZyYW1lID4gV2FybXVwRnJhbWVzICYmIHRpbWVzdGFtcCAhPSB0aW1lc3RhbXAxKSB7Ci0gICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgidGltZXN0YW1wID0gIiArIHRpbWVzdGFtcCArICIsIHRp
bWVzdGFtcDEgPSAiICsgdGltZXN0YW1wMSAgKyAiLCB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkg
PSAiICsgd2luZG93LnBlcmZvcm1hbmNlLm5vdygpKTsKLSAgICAgICAgICAgICAgICBmYWlsZWQg
PSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgdGltZXN0YW1wMiA9IHRpbWVzdGFt
cDsKKyAgICAgICAgICAgIHNob3VsZEJlKCJNYXRoLnJvdW5kKHRpbWVzdGFtcDEpIiwgIk1hdGgu
cm91bmQodGltZXN0YW1wMikiKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSB0
aW1lc3RhbXBzIG9mIGFsbCB0aGUgckFGIGNhbGxiYWNrcyBhcmUgdGhlIHNhbWUuIik7CiAgICAg
ICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbjEpOwogICAgIDwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
SW5kZXg6IExheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2Jz
ZXJ2ZXItY2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxi
YWNrLXRpbWVzdGFtcC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
aW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay10aW1l
c3RhbXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Qg
dGhlIEludGVyc2VjdGlvbk9ic2VydmVyIHRpbWVzdGFtcCBpcyB0aGUgc2FtZSBhcyB0aGUgdGlt
ZXN0YW1wIG9mIHRoZSByQUYgY2FsbGJhY2suCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIE1hdGgucm91bmQoYW5pbWF0ZVRpbWVzdGFtcCkgaXMgTWF0aC5yb3VuZChpbnRl
cnNlY3RUaW1lc3RhbXApCitQQVNTIE1hdGgucm91bmQoYW5pbWF0ZVRpbWVzdGFtcCkgaXMgTWF0
aC5yb3VuZChpbnRlcnNlY3RUaW1lc3RhbXApCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9i
c2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay10aW1lc3RhbXAuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9u
LW9ic2VydmVyLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sCShub25leGlzdGVudCkKKysrIExheW91
dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJh
Y2stdGltZXN0YW1wLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5OSBAQAorPCFET0NU
WVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPHN0eWxlPgorICAgICNzY3JvbGxh
YmxlIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAg
ICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsK
KyAgICB9CisgICAgI2NvbnRhaW5lciB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
aGVpZ2h0OiAyMDBweDsKKyAgICB9CisgICAgI2JveCB7CisgICAgICAgIHBvc2l0aW9uOiByZWxh
dGl2ZTsKKyAgICAgICAgdG9wOiAxMDBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
ICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICB9
Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGRpdiBpZD0ic2Nyb2xsYWJsZSI+CisgICAgICAgIDxk
aXYgaWQ9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGlkPSJib3giPjwvZGl2PgorICAg
ICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgYW5pbWF0
ZVRpbWVzdGFtcCA9IDA7CisgICAgICAgIHZhciBpbnRlcnNlY3RUaW1lc3RhbXAgPSAwOworICAg
ICAgICB2YXIgTWF4RnJhbWVzID0gMjsKKyAgICAgICAgdmFyIGN1cnJlbnRGcmFtZSA9IDA7CisK
KyAgICAgICAgZnVuY3Rpb24gc2Nyb2xsQm94KCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFy
IHNjcm9sbGFibGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2Nyb2xsYWJsZSIpOworICAg
ICAgICAgICAgdmFyIGhlaWdodCA9IHNjcm9sbGFibGUuY2xpZW50SGVpZ2h0OworICAgICAgICAg
ICAgc2Nyb2xsYWJsZS5zY3JvbGwoMCwgKGhlaWdodCAvIE1heEZyYW1lcykgKiBjdXJyZW50RnJh
bWUpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBoYW5kbGVBbmltYXRlKHRpbWVzdGFtcCkKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKCsrY3VycmVudEZyYW1lID4gTWF4RnJhbWVzKSB7CisgICAgICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBhbmltYXRlVGltZXN0YW1wID0gdGltZXN0YW1wOworICAgICAg
ICAgICAgc2Nyb2xsQm94KCk7CisgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaGFu
ZGxlQW5pbWF0ZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVJbnRlcnNl
Y3QoZW50cmllcywgb2JzZXJ2ZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVudHJpZXMuZm9y
RWFjaCgoZW50cnkpID0+IHsKKyAgICAgICAgICAgICAgICBpbnRlcnNlY3RUaW1lc3RhbXAgPSBl
bnRyeS50aW1lOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJNYXRoLnJvdW5kKGFuaW1hdGVU
aW1lc3RhbXApIiwgIk1hdGgucm91bmQoaW50ZXJzZWN0VGltZXN0YW1wKSIpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBidWlsZFRocmVzaG9sZExpc3Qo
KQorICAgICAgICB7CisgICAgICAgICAgICBsZXQgdGhyZXNob2xkcyA9IFtdOworCisgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMS4wOyBpIDw9IE1heEZyYW1lczsgaSsrKSB7CisgICAgICAgICAg
ICAgICAgbGV0IHJhdGlvID0gaSAvIE1heEZyYW1lczsKKyAgICAgICAgICAgICAgICB0aHJlc2hv
bGRzLnB1c2gocmF0aW8pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdGhy
ZXNob2xkczsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKCkK
KyAgICAgICAgeworICAgICAgICAgICAgbGV0IG9ic2VydmVyOworCisgICAgICAgICAgICBsZXQg
b3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICByb290OiBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCIjc2Nyb2xsYWJsZSIpLAorICAgICAgICAgICAgICAgIHJvb3RNYXJnaW46ICIwcHgiLAorICAg
ICAgICAgICAgICAgIHRocmVzaG9sZDogYnVpbGRUaHJlc2hvbGRMaXN0KCkKKyAgICAgICAgICAg
IH07CisKKyAgICAgICAgICAgIG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGhh
bmRsZUludGVyc2VjdCwgb3B0aW9ucyk7CisgICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNib3giKSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3QgdGhl
IEludGVyc2VjdGlvbk9ic2VydmVyIHRpbWVzdGFtcCBpcyB0aGUgc2FtZSBhcyB0aGUgdGltZXN0
YW1wIG9mIHRoZSByQUYgY2FsbGJhY2suIik7CisgICAgICAgIGNyZWF0ZU9ic2VydmVyKCk7Cisg
ICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShoYW5kbGVBbmltYXRlKTsKKyAgICA8L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397719</attachid>
            <date>2020-04-27 12:38:14 -0700</date>
            <delta_ts>2020-04-27 15:34:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207153-20200427123813.patch</filename>
            <type>text/plain</type>
            <size>21609</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MDc2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDIwLTA0LTI3ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgVGltZXN0YW1w
cyBzaG91bGQgYmUgdGhlIHNhbWUgZm9yIGFsbCByZW5kZXJpbmcgdXBkYXRlIHN0ZXBzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxNTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgVGhlIEhUTUwgNSBldmVu
dCBsb29wIHNlcGNzIHN0YXRlcyB0aGF0IHRpbWVzdGFtcHMgc2hvdWxkIGJlIHRoZSBzYW1lIGZv
ciAKKyAgICAgICAgYWxsIHJlbmRlcmluZyB1cGRhdGUgc3RlcHMuCisKKyAgICAgICAgU3BlY3Mg
bGluayAoc3RlcCA5KToKKyAgICAgICAgICAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNldmVudC1sb29wLXByb2Nlc3NpbmctbW9kZWwKKwor
ICAgICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgc29tZSBpc3N1ZXMgaW4gSW50ZXJzZWN0aW9u
T2JzZXJ2ZXIuCisKKyAgICAgICAgVGVzdDogaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2Vj
dGlvbi1vYnNlcnZlci1jYWxsYmFjay10aW1lc3RhbXAuaHRtbAorCisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVJbnRlcnNlY3Rp
b25PYnNlcnZhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5vdGlmeUludGVy
c2VjdGlvbk9ic2VydmVyc1RpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOgorICAgICAgICAtLSBIYW5kbGUgdGhlIGNhc2Ugd2hlbiB0d28gZmxvYXRzIGFyZSBh
cmVFc3NlbnRpYWxseUVxdWFsKCkuCisgICAgICAgIC0tIEV4ZWN1dGUgdGhlIEludGVyc2VjdGlv
bk9ic2VydmVyIGltbWVkaWF0ZWx5IGFuZCBkbyBub3Qgd2FpdCB1bnRpbCB0aGUgCisgICAgICAg
ICAgIG5leHQgQ0ZSdW5Mb29wIGV2ZW50IHNpbmNlIHRoaXMgZG9lcyBub3QgaW1wbGVtZW50IHRo
ZSBzcGVjcy4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6ZnJlZXplTm93VGltZXN0YW1wKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6dW5mcmVlemVOb3dUaW1lc3RhbXApOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93Ojpmcm96ZW5Ob3dUaW1lc3RhbXAgY29uc3QpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
Lmg6CisgICAgICAgIFByb3ZpZGUgYSBmcm96ZW4gbm93KCkgdGltZXN0YW1wIGluIHNlY29uZHMg
dG8gYmUgdXNlZCBpbnRlcm5hbGx5IG9ubHkuCisKKyAgICAgICAgKiBwYWdlL0ludGVyc2VjdGlv
bk9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjpu
b3dUaW1lc3RhbXAgY29uc3QpOgorICAgICAgICBVc2UgdGhlIGZyb3plbk5vd1RpbWVzdGFtcCgp
LgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnVw
ZGF0ZVJlbmRlcmluZyk6CisgICAgICAgIEZyZWV6ZSB0aGUgdGltZXN0YW1wcyB3aGlsZSBzZXJ2
aW5nIHRoZSByZW5kZXJpbmcgdXBkYXRlIHN0ZXBzLgorCiAyMDIwLTA0LTI3ICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIHBlcmZvcm1hbmNlIG9mIGNv
bW1vbkluY2x1c2l2ZUFuY2VzdG9yIGZvciBkZWVwbHkgbmVzdGVkIG5vZGVzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDI2MDczOSkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2MSw3ICs1NjEsNiBAQCBEb2N1bWVu
dDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVCiAgICAgLCBtX2Z1bGxzY3JlZW5NYW5h
Z2VyIHsgbWFrZVVuaXF1ZVJlZjxGdWxsc2NyZWVuTWFuYWdlcj4oKnRoaXMpIH0KICNlbmRpZgog
I2lmIEVOQUJMRShJTlRFUlNFQ1RJT05fT0JTRVJWRVIpCi0gICAgLCBtX2ludGVyc2VjdGlvbk9i
c2VydmVyc05vdGlmeVRpbWVyKCp0aGlzLCAmRG9jdW1lbnQ6Om5vdGlmeUludGVyc2VjdGlvbk9i
c2VydmVyc1RpbWVyRmlyZWQpCiAgICAgLCBtX2ludGVyc2VjdGlvbk9ic2VydmVyc0luaXRpYWxV
cGRhdGVUaW1lcigqdGhpcywgJkRvY3VtZW50OjpzY2hlZHVsZVRpbWVkUmVuZGVyaW5nVXBkYXRl
KQogI2VuZGlmCiAgICAgLCBtX2xvYWRFdmVudERlbGF5VGltZXIoKnRoaXMsICZEb2N1bWVudDo6
bG9hZEV2ZW50RGVsYXlUaW1lckZpcmVkKQpAQCAtNzYxNCwxMiArNzYxMywxMiBAQCB2b2lkIERv
Y3VtZW50Ojp1cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZhCiAgICAgaWYgKCFmcmFtZVZpZXcpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzSW5pdGlhbFVwZGF0
ZVRpbWVyLnN0b3AoKTsKLQogICAgIGJvb2wgbmVlZHNMYXlvdXQgPSBmcmFtZVZpZXctPmxheW91
dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSB8fCAocmVuZGVyVmlldygpICYmIHJlbmRlclZp
ZXcoKS0+bmVlZHNMYXlvdXQoKSk7CiAgICAgaWYgKG5lZWRzTGF5b3V0IHx8IGhhc1BlbmRpbmdT
dHlsZVJlY2FsYygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBWZWN0b3I8V2Vha1B0cjxJbnRl
cnNlY3Rpb25PYnNlcnZlcj4+IGludGVyc2VjdGlvbk9ic2VydmVyc1dpdGhQZW5kaW5nTm90aWZp
Y2F0aW9uczsKKwogICAgIGZvciAoY29uc3QgYXV0byYgb2JzZXJ2ZXIgOiBtX2ludGVyc2VjdGlv
bk9ic2VydmVycykgewogICAgICAgICBib29sIG5lZWROb3RpZnkgPSBmYWxzZTsKICAgICAgICAg
YXV0byB0aW1lc3RhbXAgPSBvYnNlcnZlci0+bm93VGltZXN0YW1wKCk7CkBAIC03NjQ2LDkgKzc2
NDUsMTEgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YQogICAgICAg
ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnNlY3Rpb25S
YXRpbyA9IDE7CiAKLSAgICAgICAgICAgICAgICAgICAgYXV0byYgdGhyZXNob2xkcyA9IG9ic2Vy
dmVyLT50aHJlc2hvbGRzKCk7Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxlICh0aHJlc2hvbGRJ
bmRleCA8IHRocmVzaG9sZHMuc2l6ZSgpICYmIHRocmVzaG9sZHNbdGhyZXNob2xkSW5kZXhdIDw9
IGludGVyc2VjdGlvblJhdGlvKQorICAgICAgICAgICAgICAgICAgICBmb3IgKGF1dG8gdGhyZXNo
b2xkIDogb2JzZXJ2ZXItPnRocmVzaG9sZHMoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCEodGhyZXNob2xkIDw9IGludGVyc2VjdGlvblJhdGlvIHx8IFdURjo6YXJlRXNzZW50aWFs
bHlFcXVhbDxmbG9hdD4odGhyZXNob2xkLCBpbnRlcnNlY3Rpb25SYXRpbykpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgKyt0aHJl
c2hvbGRJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KIApAQCAtNzY4OSwyMCArNzY5MCwxMyBAQCB2b2lkIERvY3VtZW50Ojp1cGRh
dGVJbnRlcnNlY3Rpb25PYnNlcnZhCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAg
aWYgKG5lZWROb3RpZnkpCi0gICAgICAgICAgICBtX2ludGVyc2VjdGlvbk9ic2VydmVyc1dpdGhQ
ZW5kaW5nTm90aWZpY2F0aW9ucy5hcHBlbmQobWFrZVdlYWtQdHIob2JzZXJ2ZXIuZ2V0KCkpKTsK
KyAgICAgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9u
cy5hcHBlbmQobWFrZVdlYWtQdHIob2JzZXJ2ZXIuZ2V0KCkpKTsKICAgICB9CiAKLSAgICBpZiAo
bV9pbnRlcnNlY3Rpb25PYnNlcnZlcnNXaXRoUGVuZGluZ05vdGlmaWNhdGlvbnMuc2l6ZSgpKQot
ICAgICAgICBtX2ludGVyc2VjdGlvbk9ic2VydmVyc05vdGlmeVRpbWVyLnN0YXJ0T25lU2hvdCgw
X3MpOwotfQotCi12b2lkIERvY3VtZW50Ojpub3RpZnlJbnRlcnNlY3Rpb25PYnNlcnZlcnNUaW1l
ckZpcmVkKCkKLXsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIG9ic2VydmVyIDogbV9pbnRlcnNlY3Rp
b25PYnNlcnZlcnNXaXRoUGVuZGluZ05vdGlmaWNhdGlvbnMpIHsKKyAgICBmb3IgKGNvbnN0IGF1
dG8mIG9ic2VydmVyIDogaW50ZXJzZWN0aW9uT2JzZXJ2ZXJzV2l0aFBlbmRpbmdOb3RpZmljYXRp
b25zKSB7CiAgICAgICAgIGlmIChvYnNlcnZlcikKICAgICAgICAgICAgIG9ic2VydmVyLT5ub3Rp
ZnkoKTsKICAgICB9Ci0gICAgbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnNXaXRoUGVuZGluZ05vdGlm
aWNhdGlvbnMuY2xlYXIoKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6c2NoZWR1bGVJbml0aWFsSW50
ZXJzZWN0aW9uT2JzZXJ2YXRpb25VcGRhdGUoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJl
dmlzaW9uIDI2MDczOSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjY4LDEwICsxNjY4LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGNhbk5hdmln
YXRlSW50ZXJuYWwoRnJhbWUmIHRhcmdldEZyYW1lKTsKICAgICBib29sIGlzTmF2aWdhdGlvbkJs
b2NrZWRCeVRoaXJkUGFydHlJRnJhbWVSZWRpcmVjdEJsb2NraW5nKEZyYW1lJiB0YXJnZXRGcmFt
ZSwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7CiAKLSNpZiBFTkFCTEUoSU5URVJTRUNUSU9O
X09CU0VSVkVSKQotICAgIHZvaWQgbm90aWZ5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJzVGltZXJGaXJl
ZCgpOwotI2VuZGlmCi0KICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBib29sIHNob3VsZEVuZm9y
Y2VRdWlja0xvb2tTYW5kYm94KCkgY29uc3Q7CiAgICAgdm9pZCBhcHBseVF1aWNrTG9va1NhbmRi
b3goKTsKQEAgLTE4NDQsNyArMTg0MCw2IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKElOVEVSU0VD
VElPTl9PQlNFUlZFUikKICAgICBWZWN0b3I8V2Vha1B0cjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4+
IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzOwogICAgIFZlY3RvcjxXZWFrUHRyPEludGVyc2VjdGlv
bk9ic2VydmVyPj4gbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnNXaXRoUGVuZGluZ05vdGlmaWNhdGlv
bnM7Ci0gICAgVGltZXIgbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnNOb3RpZnlUaW1lcjsKICAgICBU
aW1lciBtX2ludGVyc2VjdGlvbk9ic2VydmVyc0luaXRpYWxVcGRhdGVUaW1lcjsKICAgICAvLyBU
aGlzIGlzIG9ubHkgbm9uLW51bGwgd2hlbiB0aGlzIGRvY3VtZW50IGlzIGFuIGV4cGxpY2l0IHJv
b3QuCiAgICAgc3RkOjp1bmlxdWVfcHRyPEludGVyc2VjdGlvbk9ic2VydmVyRGF0YT4gbV9pbnRl
cnNlY3Rpb25PYnNlcnZlckRhdGE7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShy
ZXZpc2lvbiAyNjA3MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTczOSw2ICs3MzksMjEgQEAgUmVkdWNlZFJlc29sdXRpb25TZWNvbmRz
IERPTVdpbmRvdzo6bm93VAogICAgIHJldHVybiBwZXJmb3JtYW5jZSgpLm5vd0luUmVkdWNlZFJl
c29sdXRpb25TZWNvbmRzKCk7CiB9CiAKK3ZvaWQgRE9NV2luZG93OjpmcmVlemVOb3dUaW1lc3Rh
bXAoKQoreworICAgIG1fZnJvemVuTm93VGltZXN0YW1wID0gbm93VGltZXN0YW1wKCk7Cit9CisK
K3ZvaWQgRE9NV2luZG93Ojp1bmZyZWV6ZU5vd1RpbWVzdGFtcCgpCit7CisgICAgbV9mcm96ZW5O
b3dUaW1lc3RhbXAgPSBXVEY6Om51bGxvcHQ7Cit9CisKK1JlZHVjZWRSZXNvbHV0aW9uU2Vjb25k
cyBET01XaW5kb3c6OmZyb3plbk5vd1RpbWVzdGFtcCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZnJvemVuTm93VGltZXN0YW1wLnZhbHVlT3Iobm93VGltZXN0YW1wKCkpOworfQorCiBMb2NhdGlv
biYgRE9NV2luZG93Ojpsb2NhdGlvbigpCiB7CiAgICAgaWYgKCFtX2xvY2F0aW9uKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCShyZXZpc2lvbiAyNjA3MzkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTEsNiArMzUxLDkgQEAgcHVi
bGljOgogCiAgICAgUGVyZm9ybWFuY2UmIHBlcmZvcm1hbmNlKCkgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgUmVkdWNlZFJlc29sdXRpb25TZWNvbmRzIG5vd1RpbWVzdGFtcCgpIGNvbnN0Owor
ICAgIHZvaWQgZnJlZXplTm93VGltZXN0YW1wKCk7CisgICAgdm9pZCB1bmZyZWV6ZU5vd1RpbWVz
dGFtcCgpOworICAgIFJlZHVjZWRSZXNvbHV0aW9uU2Vjb25kcyBmcm96ZW5Ob3dUaW1lc3RhbXAo
KSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBpbmNyZW1lbnRT
Y3JvbGxFdmVudExpc3RlbmVyc0NvdW50KCk7CkBAIC00NzAsNiArNDczLDggQEAgcHJpdmF0ZToK
IAogICAgIG11dGFibGUgUmVmUHRyPFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogCisgICAg
T3B0aW9uYWw8UmVkdWNlZFJlc29sdXRpb25TZWNvbmRzPiBtX2Zyb3plbk5vd1RpbWVzdGFtcDsK
KwogICAgIC8vIEZvciB0aGUgcHVycG9zZSBvZiB0cmFja2luZyB1c2VyIGFjdGl2YXRpb24sIGVh
Y2ggV2luZG93IFcgaGFzIGEgbGFzdCBhY3RpdmF0aW9uIHRpbWVzdGFtcC4gVGhpcyBpcyBhIG51
bWJlciBpbmRpY2F0aW5nIHRoZSBsYXN0IHRpbWUgVyBnb3QKICAgICAvLyBhbiBhY3RpdmF0aW9u
IG5vdGlmaWNhdGlvbi4gSXQgY29ycmVzcG9uZHMgdG8gYSBET01IaWdoUmVzVGltZVN0YW1wIHZh
bHVlIGV4Y2VwdCBmb3IgdHdvIGNhc2VzOiBwb3NpdGl2ZSBpbmZpbml0eSBpbmRpY2F0ZXMgdGhh
dCBXIGhhcyBuZXZlcgogICAgIC8vIGJlZW4gYWN0aXZhdGVkLCB3aGlsZSBuZWdhdGl2ZSBpbmZp
bml0eSBpbmRpY2F0ZXMgdGhhdCBhIHVzZXIgYWN0aXZhdGlvbi1nYXRlZCBBUEkgaGFzIGNvbnN1
bWVkIHRoZSBsYXN0IHVzZXIgYWN0aXZhdGlvbiBvZiBXLiBUaGUgaW5pdGlhbApJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAJKHJldmlzaW9uIDI2
MDczOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTYsNyArMjU2LDcgQEAgT3B0aW9uYWw8UmVkdWNlZFJlc29sdXRp
b25TZWNvbmRzPiBJbnRlcgogICAgIEFTU0VSVChjb250ZXh0LT5pc0RvY3VtZW50KCkpOwogICAg
IGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KTsKICAgICBpZiAo
YXV0byogd2luZG93ID0gZG9jdW1lbnQuZG9tV2luZG93KCkpCi0gICAgICAgIHJldHVybiB3aW5k
b3ctPm5vd1RpbWVzdGFtcCgpOworICAgICAgICByZXR1cm4gd2luZG93LT5mcm96ZW5Ob3dUaW1l
c3RhbXAoKTsKICAgICAKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCShyZXZpc2lvbiAyNjA3MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQxLDYgKzEzNDEsMTMgQEAgdm9pZCBQYWdlOjp1cGRh
dGVSZW5kZXJpbmcoKQogCiAgICAgbGF5b3V0SWZOZWVkZWQoKTsKIAorICAgIC8vIFRpbWVzdGFt
cHMgc2hvdWxkIG5vdCBjaGFuZ2Ugd2hpbGUgc2VydmluZyB0aGUgcmVuZGVyaW5nIHVwZGF0ZSBz
dGVwcy4KKyAgICBWZWN0b3I8V2Vha1B0cjxEb2N1bWVudD4+IGluaXRpYWxEb2N1bWVudHM7Cisg
ICAgZm9yRWFjaERvY3VtZW50KFsmaW5pdGlhbERvY3VtZW50c10gKERvY3VtZW50JiBkb2N1bWVu
dCkgeworICAgICAgICBkb2N1bWVudC5kb21XaW5kb3coKS0+ZnJlZXplTm93VGltZXN0YW1wKCk7
CisgICAgICAgIGluaXRpYWxEb2N1bWVudHMuYXBwZW5kKG1ha2VXZWFrUHRyKCZkb2N1bWVudCkp
OworICAgIH0pOworCiAgICAgLy8gRmx1c2ggYXV0b2ZvY3VzIGNhbmRpZGF0ZXMKIAogICAgIGZv
ckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CkBAIC0xMzU4LDcgKzEzNjUs
NyBAQCB2b2lkIFBhZ2U6OnVwZGF0ZVJlbmRlcmluZygpCiAgICAgZm9yRWFjaERvY3VtZW50KFtd
IChEb2N1bWVudCYgZG9jdW1lbnQpIHsKICAgICAgICAgaWYgKCFkb2N1bWVudC5kb21XaW5kb3co
KSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgYXV0byB0aW1lc3RhbXAgPSBkb2N1bWVu
dC5kb21XaW5kb3coKS0+bm93VGltZXN0YW1wKCk7CisgICAgICAgIGF1dG8gdGltZXN0YW1wID0g
ZG9jdW1lbnQuZG9tV2luZG93KCktPmZyb3plbk5vd1RpbWVzdGFtcCgpOwogICAgICAgICBpZiAo
YXV0byogdGltZWxpbmVzQ29udHJvbGxlciA9IGRvY3VtZW50LnRpbWVsaW5lc0NvbnRyb2xsZXIo
KSkKICAgICAgICAgICAgIHRpbWVsaW5lc0NvbnRyb2xsZXItPnVwZGF0ZUFuaW1hdGlvbnNBbmRT
ZW5kRXZlbnRzKHRpbWVzdGFtcCk7CiAgICAgICAgIC8vIEZJWE1FOiBSdW4gdGhlIGZ1bGxzY3Jl
ZW4gc3RlcHMuCkBAIC0xMzg2LDYgKzEzOTMsMTEgQEAgdm9pZCBQYWdlOjp1cGRhdGVSZW5kZXJp
bmcoKQogICAgICAgICB9CiAgICAgfSk7CiAKKyAgICBmb3IgKGF1dG8mIGRvY3VtZW50IDogaW5p
dGlhbERvY3VtZW50cykgeworICAgICAgICBpZiAoZG9jdW1lbnQpCisgICAgICAgICAgICBkb2N1
bWVudC0+ZG9tV2luZG93KCktPnVuZnJlZXplTm93VGltZXN0YW1wKCk7CisgICAgfQorCiAgICAg
bGF5b3V0SWZOZWVkZWQoKTsKICAgICBkb0FmdGVyVXBkYXRlUmVuZGVyaW5nKCk7CiB9CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNjA3MzkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNC0yNyAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFRpbWVzdGFtcHMgc2hvdWxkIGJlIHRo
ZSBzYW1lIGZvciBhbGwgcmVuZGVyaW5nIHVwZGF0ZSBzdGVwcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJh
Y2stdGltZXN0YW1wLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlv
bi1jYWxsYmFjay10aW1lc3RhbXAuaHRtbDoKKyAgICAgICAgRW5zdXJlIHRoZSByQUYgY2FsbGJh
Y2sgdGltZXN0YW1wIGlzIGxlc3MgdGhhbiBQZXJmb3JtYW5jZS5ub3coKS4KKworICAgICAgICAq
IGFuaW1hdGlvbnMvYW5pbWF0aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3RhbXAtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLW11bHRpcGxlLWNhbGxiYWNr
cy10aW1lc3RhbXAuaHRtbDoKKyAgICAgICAgRW5zdXJlIHRoZSByQUYgY2FsbGJhY2tzIHJlY2Vp
dmUgdGhlIHNhbWUgdGltZXN0YW1wcy4KKworICAgICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZl
ci9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNl
cnZlci1jYWxsYmFjay10aW1lc3RhbXAuaHRtbDogQWRkZWQuCisgICAgICAgIEEgbmV3IHRlc3Qg
dG8gZW5zdXJlIHRoZSBJbnRlcnNlY3Rpb25PYnNldmVyIGFuZCB0aGUgckFGIGNhbGxiYWNrcyBy
ZWNlaXZlIHRoZSBzYW1lIHRpbWVzdGFtcHMuCisKIDIwMjAtMDQtMjYgIExhdXJvIE1vdXJhICA8
bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gR2FyZGVuaW5nLCBza2lwcGluZyBt
b3JlIGluc3BlY3RvciB0ZXN0cy4KSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0
aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjYwNzM5KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
Y2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsx
LDE4IEBACi1QQVNTIEFsbCB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiByZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoKSBjYWxsYmFjayB0aW1lc3RhbXBzIGFuZCBQZXJmb3JtYW5jZS5ub3coKSB3ZXJlIHdp
dGhpbiAzbXMuCitUZXN0IHBlcmZvcm1hbmNlLm5vdygpIGlzIGF0IGxlYXN0IGFzIHRoZSB0aW1l
c3RhbXAgdGhlIHJBRiBjYWxsYmFjay4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1hdGgucm91
bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkp
IGlzID49IE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVy
Zm9ybWFuY2Uubm93KCkpIGlzID49IE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5y
b3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1hdGgucm91bmQodGltZXN0YW1w
MSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1hdGgu
cm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93
KCkpIGlzID49IE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cu
cGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1hdGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0
aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1hdGgucm91bmQodGltZXN0
YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpIGlzID49IE1h
dGgucm91bmQodGltZXN0YW1wMSkKK1BBU1MgTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uu
bm93KCkpIGlzID49IE1hdGgucm91bmQodGltZXN0YW1wMSkKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9hbmltYXRpb24tY2FsbGJhY2stdGltZXN0YW1wLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJhY2stdGltZXN0YW1wLmh0bWwJKHJldmlz
aW9uIDI2MDczOSkKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNr
LXRpbWVzdGFtcC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDM3ICs1LDI2IEBACiA8L2hlYWQ+
CiA8Ym9keT4KICAgICA8c2NyaXB0PgorICAgICAgICB2YXIgdGltZXN0YW1wMSA9IDA7CiAgICAg
ICAgIHZhciBjdXJyZW50RnJhbWUgPSAwOwotICAgICAgICB2YXIgZmFpbGVkID0gZmFsc2U7Cisg
ICAgICAgIGNvbnN0IE1heEZyYW1lcyA9IDEwOwogCi0gICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoZmFpbGVkKQotICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlNvbWUgb2YgdGhlIHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIGNhbGxiYWNr
IHRpbWVzdGFtcHMgd2VyZSBsYXJnZXIgdGhhbiBQZXJmb3JtYW5jZS5ub3coKSBieSBtb3JlIHRo
YW4gM21zLiIpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IkFsbCB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBjYWxs
YmFjayB0aW1lc3RhbXBzIGFuZCBQZXJmb3JtYW5jZS5ub3coKSB3ZXJlIHdpdGhpbiAzbXMuIikK
LSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9Ci0gICAgICAgIAogICAgICAg
ICBmdW5jdGlvbiBkb0FuaW1hdGlvbih0aW1lc3RhbXApCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGNvbnN0IFRvbGVyYW5jZSA9IDM7Ci0gICAgICAgICAgICBjb25zdCBXYXJtdXBGcmFtZXMgPSA1
OworICAgICAgICAgICAgdGltZXN0YW1wMSA9IHRpbWVzdGFtcDsKKyAgICAgICAgICAgIHNob3Vs
ZEJlR3JlYXRlclRoYW5PckVxdWFsKCJNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3co
KSkiLCAiTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSIpOwogCi0gICAgICAgICAgICB2YXIgcGVyZm9y
bWFuY2VOb3cgPSB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7Ci0gICAgICAgICAgICBpZiAoKytj
dXJyZW50RnJhbWUgPiBXYXJtdXBGcmFtZXMgJiYgTWF0aC5hYnModGltZXN0YW1wIC0gcGVyZm9y
bWFuY2VOb3cpID49IFRvbGVyYW5jZSkgewotICAgICAgICAgICAgICAgIGRlYnVnKCJyZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoKSB0aW1lc3RhbXAgPSAiICsgdGltZXN0YW1wICsgIiwgd2luZG93LnBl
cmZvcm1hbmNlLm5vdygpID0gIiArIHBlcmZvcm1hbmNlTm93KTsKLSAgICAgICAgICAgICAgICBm
YWlsZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKCsrY3VycmVudEZyYW1lID09IE1heEZyYW1l
cykgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgY29uc3QgTWF4RnJhbWVzID0gMjU7
Ci0gICAgICAgICAgICBpZiAoY3VycmVudEZyYW1lID09IE1heEZyYW1lcykKLSAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uKTsKKyAgICAgICAgICAgIHJlcXVlc3RBbmlt
YXRpb25GcmFtZShkb0FuaW1hdGlvbik7CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0
IHBlcmZvcm1hbmNlLm5vdygpIGlzIGF0IGxlYXN0IGFzIHRoZSB0aW1lc3RhbXAgdGhlIHJBRiBj
YWxsYmFjay4iKTsKICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uKTsK
ICAgICA8L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1t
dWx0aXBsZS1jYWxsYmFja3MtdGltZXN0YW1wLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1tdWx0aXBsZS1jYWxsYmFja3MtdGltZXN0
YW1wLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjYwNzM5KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24tbXVsdGlwbGUtY2FsbGJhY2tzLXRpbWVzdGFtcC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSwxNiBAQAotUEFTUyBBbGwgdGhlIG11bHRpcGxlIHJl
cXVlc3RBbmltYXRpb25GcmFtZSgpIGNhbGxiYWNrcywgd2hpY2ggd2VyZSBmaXJlZCBhdCB0aGUg
c2FtZSB0aW1lLCByZWNlaXZlZCB0aGUgc2FtZSB0aW1lc3RhbXAuCitUZXN0IHRoZSB0aW1lc3Rh
bXBzIG9mIGFsbCB0aGUgckFGIGNhbGxiYWNrcyBhcmUgdGhlIHNhbWUuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIE1hdGgucm91bmQodGltZXN0YW1wMSkgaXMgTWF0aC5y
b3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpIGlzIE1hdGgucm91
bmQodGltZXN0YW1wMikKK1BBU1MgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSBpcyBNYXRoLnJvdW5k
KHRpbWVzdGFtcDIpCitQQVNTIE1hdGgucm91bmQodGltZXN0YW1wMSkgaXMgTWF0aC5yb3VuZCh0
aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpIGlzIE1hdGgucm91bmQodGlt
ZXN0YW1wMikKK1BBU1MgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSBpcyBNYXRoLnJvdW5kKHRpbWVz
dGFtcDIpCitQQVNTIE1hdGgucm91bmQodGltZXN0YW1wMSkgaXMgTWF0aC5yb3VuZCh0aW1lc3Rh
bXAyKQorUEFTUyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpIGlzIE1hdGgucm91bmQodGltZXN0YW1w
MikKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRl
eDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tbXVsdGlwbGUtY2FsbGJhY2tzLXRp
bWVzdGFtcC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0
aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3RhbXAuaHRtbAkocmV2aXNpb24gMjYwNzM5KQor
KysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tbXVsdGlwbGUtY2FsbGJhY2tzLXRp
bWVzdGFtcC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDQyICs1LDMzIEBACiA8L2hlYWQ+CiA8
Ym9keT4KICAgICA8c2NyaXB0PgotICAgICAgICB2YXIgY3VycmVudEZyYW1lID0gMDsKICAgICAg
ICAgdmFyIHRpbWVzdGFtcDEgPSAwOwotICAgICAgICB2YXIgZmFpbGVkID0gZmFsc2U7Ci0KLSAg
ICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChm
YWlsZWQpCi0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiU29tZSBvZiB0aGUgbXVsdGlwbGUg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkgY2FsbGJhY2tzLCB3aGljaCB3ZXJlIGZpcmVkIGF0IHRo
ZSBzYW1lIHRpbWUsIHJlY2VpdmVkIGRpZmZlcmVudCB0aW1lc3RhbXBzLiIpOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkFsbCB0aGUgbXVsdGlwbGUgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lKCkgY2FsbGJhY2tzLCB3aGljaCB3ZXJlIGZpcmVkIGF0IHRoZSBz
YW1lIHRpbWUsIHJlY2VpdmVkIHRoZSBzYW1lIHRpbWVzdGFtcC4iKTsKLSAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwotICAgICAgICB9CisgICAgICAgIHZhciB0aW1lc3RhbXAyID0gMDsKKyAg
ICAgICAgdmFyIGN1cnJlbnRGcmFtZSA9IDA7CisgICAgICAgIGNvbnN0IE1heEZyYW1lcyA9IDEw
OwogCiAgICAgICAgIGZ1bmN0aW9uIGRvQW5pbWF0aW9uMSh0aW1lc3RhbXApCiAgICAgICAgIHsK
ICAgICAgICAgICAgIHRpbWVzdGFtcDEgPSB0aW1lc3RhbXA7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIGNvbnN0IE1heEZyYW1lcyA9IDI1OwotICAgICAgICAgICAgaWYgKGN1cnJlbnRGcmFt
ZSA9PSBNYXhGcmFtZXMpCi0gICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0
aW9uMSk7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9u
Mik7CisKKyAgICAgICAgICAgIGlmICgrK2N1cnJlbnRGcmFtZSA9PSBNYXhGcmFtZXMpIHsKKyAg
ICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShkb0FuaW1h
dGlvbjEpOworICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uMik7
CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBkb0FuaW1hdGlvbjIodGltZXN0YW1wKQog
ICAgICAgICB7Ci0gICAgICAgICAgICBjb25zdCBXYXJtdXBGcmFtZXMgPSA1OwotICAgICAgICAg
ICAgaWYgKCsrY3VycmVudEZyYW1lID4gV2FybXVwRnJhbWVzICYmIHRpbWVzdGFtcCAhPSB0aW1l
c3RhbXAxKSB7Ci0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgidGltZXN0YW1wID0gIiArIHRp
bWVzdGFtcCArICIsIHRpbWVzdGFtcDEgPSAiICsgdGltZXN0YW1wMSAgKyAiLCB3aW5kb3cucGVy
Zm9ybWFuY2Uubm93KCkgPSAiICsgd2luZG93LnBlcmZvcm1hbmNlLm5vdygpKTsKLSAgICAgICAg
ICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgdGltZXN0
YW1wMiA9IHRpbWVzdGFtcDsKKyAgICAgICAgICAgIHNob3VsZEJlKCJNYXRoLnJvdW5kKHRpbWVz
dGFtcDEpIiwgIk1hdGgucm91bmQodGltZXN0YW1wMikiKTsKICAgICAgICAgfQotICAgICAgICAK
KwogICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgZGVzY3Jp
cHRpb24oIlRlc3QgdGhlIHRpbWVzdGFtcHMgb2YgYWxsIHRoZSByQUYgY2FsbGJhY2tzIGFyZSB0
aGUgc2FtZS4iKTsKICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvQW5pbWF0aW9uMSk7
CiAgICAgPC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVy
L2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay10aW1lc3RhbXAtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rp
b24tb2JzZXJ2ZXItY2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2Vy
dmVyLWNhbGxiYWNrLXRpbWVzdGFtcC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMSBAQAorVGVzdCB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgdGltZXN0YW1wIGlzIHRo
ZSBzYW1lIGFzIHRoZSB0aW1lc3RhbXAgb2YgdGhlIHJBRiBjYWxsYmFjay4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgTWF0aC5yb3VuZChhbmltYXRlVGltZXN0YW1wKSBp
cyBNYXRoLnJvdW5kKGludGVyc2VjdFRpbWVzdGFtcCkKK1BBU1MgTWF0aC5yb3VuZChhbmltYXRl
VGltZXN0YW1wKSBpcyBNYXRoLnJvdW5kKGludGVyc2VjdFRpbWVzdGFtcCkKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLXRp
bWVzdGFtcC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNl
cnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stdGltZXN0YW1wLmh0bWwJKG5vbmV4
aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlv
bi1vYnNlcnZlci1jYWxsYmFjay10aW1lc3RhbXAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDk5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisJPHN0eWxlPgorCSAg
ICAjc2Nyb2xsYWJsZSB7CisgICAgCSAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIAloZWlnaHQ6
IDEwMHB4OworICAgICAgICAJYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgIAlvdmVy
Zmxvdy15OiBhdXRvOworICAgIAl9CisgICAgCSNjb250YWluZXIgeworCSAgICAgICAgd2lkdGg6
IDEwMHB4OworICAgICAgICAJaGVpZ2h0OiAyMDBweDsKKyAgICAJfQorICAgIAkjYm94IHsKKyAg
ICAgICAgCXBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgCXRvcDogMTAwcHg7CisgICAgICAg
IAl3aWR0aDogMTAwcHg7CisgICAgICAgIAloZWlnaHQ6IDEwMHB4OworICAgICAgICAJYmFja2dy
b3VuZC1jb2xvcjogZ3JlZW47CisgICAgCX0KKwk8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cisg
ICAgPGRpdiBpZD0ic2Nyb2xsYWJsZSI+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lciI+Cisg
ICAgICAgICAgICA8ZGl2IGlkPSJib3giPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rp
dj4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgYW5pbWF0ZVRpbWVzdGFtcCA9IDA7CisgICAg
ICAgIHZhciBpbnRlcnNlY3RUaW1lc3RhbXAgPSAwOworICAgICAgICB2YXIgTWF4RnJhbWVzID0g
MjsKKyAgICAgICAgdmFyIGN1cnJlbnRGcmFtZSA9IDA7CisKKyAgICAgICAgZnVuY3Rpb24gc2Ny
b2xsQm94KCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHNjcm9sbGFibGUgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCIjc2Nyb2xsYWJsZSIpOworICAgICAgICAgICAgdmFyIGhlaWdodCA9
IHNjcm9sbGFibGUuY2xpZW50SGVpZ2h0OworICAgICAgICAgICAgc2Nyb2xsYWJsZS5zY3JvbGwo
MCwgKGhlaWdodCAvIE1heEZyYW1lcykgKiBjdXJyZW50RnJhbWUpOworICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBo
YW5kbGVBbmltYXRlKHRpbWVzdGFtcCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCsrY3Vy
cmVudEZyYW1lID4gTWF4RnJhbWVzKSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
YW5pbWF0ZVRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKKyAgICAgICAgICAgIHNjcm9sbEJveCgpOwor
ICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGhhbmRsZUFuaW1hdGUpOworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gaGFuZGxlSW50ZXJzZWN0KGVudHJpZXMsIG9ic2VydmVy
KQorICAgICAgICB7CisgICAgICAgICAgICBlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7Cisg
ICAgICAgICAgICAgICAgaW50ZXJzZWN0VGltZXN0YW1wID0gZW50cnkudGltZTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgiTWF0aC5yb3VuZChhbmltYXRlVGltZXN0YW1wKSIsICJNYXRoLnJv
dW5kKGludGVyc2VjdFRpbWVzdGFtcCkiKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gYnVpbGRUaHJlc2hvbGRMaXN0KCkKKyAgICAgICAgeworICAgICAg
ICAgICAgbGV0IHRocmVzaG9sZHMgPSBbXTsKKworICAgICAgICAgICAgIGZvciAobGV0IGkgPSAx
LjA7IGkgPD0gTWF4RnJhbWVzOyBpKyspIHsKKyAgICAgICAgICAgICAgICBsZXQgcmF0aW8gPSBp
IC8gTWF4RnJhbWVzOworICAgICAgICAgICAgICAgIHRocmVzaG9sZHMucHVzaChyYXRpbyk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICByZXR1cm4gdGhyZXNob2xkczsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgbGV0IG9ic2VydmVyOworCisgICAgICAgICAgICAgbGV0IG9wdGlvbnMgPSB7CisgICAg
ICAgICAgICAgICAgcm9vdDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3Njcm9sbGFibGUiKSwK
KyAgICAgICAgICAgICAgICByb290TWFyZ2luOiAiMHB4IiwKKyAgICAgICAgICAgICAgICB0aHJl
c2hvbGQ6IGJ1aWxkVGhyZXNob2xkTGlzdCgpCisgICAgICAgICAgICB9OworCisgICAgICAgICAg
ICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlSW50ZXJzZWN0LCBv
cHRpb25zKTsKKyAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiI2JveCIpKTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgICAgICBkZXNjcmlwdGlvbigiVGVzdCB0aGUgSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXIgdGltZXN0YW1wIGlzIHRoZSBzYW1lIGFzIHRoZSB0aW1lc3RhbXAgb2YgdGhlIHJBRiBj
YWxsYmFjay4iKTsKKyAgICAgICAgY3JlYXRlT2JzZXJ2ZXIoKTsKKyAgICAgICAgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGhhbmRsZUFuaW1hdGUpOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397751</attachid>
            <date>2020-04-27 15:34:42 -0700</date>
            <delta_ts>2020-04-27 17:22:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207153-20200427153441.patch</filename>
            <type>text/plain</type>
            <size>23274</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MDc4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDIwLTA0LTI3ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgVGltZXN0YW1w
cyBzaG91bGQgYmUgdGhlIHNhbWUgZm9yIGFsbCByZW5kZXJpbmcgdXBkYXRlIHN0ZXBzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxNTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgVGhlIEhUTUwgNSBldmVu
dCBsb29wIHNlcGNzIHN0YXRlcyB0aGF0IHRpbWVzdGFtcHMgc2hvdWxkIGJlIHRoZSBzYW1lIGZv
ciAKKyAgICAgICAgYWxsIHJlbmRlcmluZyB1cGRhdGUgc3RlcHMuCisKKyAgICAgICAgU3BlY3Mg
bGluayAoc3RlcCA5KToKKyAgICAgICAgICAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNldmVudC1sb29wLXByb2Nlc3NpbmctbW9kZWwKKwor
ICAgICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgc29tZSBpc3N1ZXMgaW4gSW50ZXJzZWN0aW9u
T2JzZXJ2ZXIuCisKKyAgICAgICAgVGVzdDogaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2Vj
dGlvbi1vYnNlcnZlci1jYWxsYmFjay10aW1lc3RhbXAuaHRtbAorCisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVJbnRlcnNlY3Rp
b25PYnNlcnZhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5vdGlmeUludGVy
c2VjdGlvbk9ic2VydmVyc1RpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOgorICAgICAgICAtLSBIYW5kbGUgdGhlIGNhc2Ugd2hlbiB0d28gZmxvYXRzIGFyZSBh
cmVFc3NlbnRpYWxseUVxdWFsKCkuCisgICAgICAgIC0tIEV4ZWN1dGUgdGhlIEludGVyc2VjdGlv
bk9ic2VydmVyIGltbWVkaWF0ZWx5IGFuZCBkbyBub3Qgd2FpdCB1bnRpbCB0aGUgCisgICAgICAg
ICAgIG5leHQgQ0ZSdW5Mb29wIGV2ZW50IHNpbmNlIHRoaXMgZG9lcyBub3QgaW1wbGVtZW50IHRo
ZSBzcGVjcy4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6ZnJlZXplTm93VGltZXN0YW1wKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6dW5mcmVlemVOb3dUaW1lc3RhbXApOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93Ojpmcm96ZW5Ob3dUaW1lc3RhbXAgY29uc3QpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
Lmg6CisgICAgICAgIFByb3ZpZGUgYSBmcm96ZW4gbm93KCkgdGltZXN0YW1wIGluIHNlY29uZHMg
dG8gYmUgdXNlZCBpbnRlcm5hbGx5IG9ubHkuCisKKyAgICAgICAgKiBwYWdlL0ludGVyc2VjdGlv
bk9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjpu
b3dUaW1lc3RhbXAgY29uc3QpOgorICAgICAgICBVc2UgdGhlIGZyb3plbk5vd1RpbWVzdGFtcCgp
LgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnVw
ZGF0ZVJlbmRlcmluZyk6CisgICAgICAgIEZyZWV6ZSB0aGUgdGltZXN0YW1wcyB3aGlsZSBzZXJ2
aW5nIHRoZSByZW5kZXJpbmcgdXBkYXRlIHN0ZXBzLgorCiAyMDIwLTA0LTI3ICBEZWFuIEphY2tz
b24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQg
cmV0dXJucyB0aGUgd3JvbmcgdmFsdWVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJl
dmlzaW9uIDI2MDczOSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU2MSw3ICs1NjEsNiBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZy
YW1lLCBjb25zdCBVCiAgICAgLCBtX2Z1bGxzY3JlZW5NYW5hZ2VyIHsgbWFrZVVuaXF1ZVJlZjxG
dWxsc2NyZWVuTWFuYWdlcj4oKnRoaXMpIH0KICNlbmRpZgogI2lmIEVOQUJMRShJTlRFUlNFQ1RJ
T05fT0JTRVJWRVIpCi0gICAgLCBtX2ludGVyc2VjdGlvbk9ic2VydmVyc05vdGlmeVRpbWVyKCp0
aGlzLCAmRG9jdW1lbnQ6Om5vdGlmeUludGVyc2VjdGlvbk9ic2VydmVyc1RpbWVyRmlyZWQpCiAg
ICAgLCBtX2ludGVyc2VjdGlvbk9ic2VydmVyc0luaXRpYWxVcGRhdGVUaW1lcigqdGhpcywgJkRv
Y3VtZW50OjpzY2hlZHVsZVRpbWVkUmVuZGVyaW5nVXBkYXRlKQogI2VuZGlmCiAgICAgLCBtX2xv
YWRFdmVudERlbGF5VGltZXIoKnRoaXMsICZEb2N1bWVudDo6bG9hZEV2ZW50RGVsYXlUaW1lckZp
cmVkKQpAQCAtNzYxNCwxMiArNzYxMywxMiBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVJbnRlcnNl
Y3Rpb25PYnNlcnZhCiAgICAgaWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzSW5pdGlhbFVwZGF0ZVRpbWVyLnN0b3AoKTsKLQogICAg
IGJvb2wgbmVlZHNMYXlvdXQgPSBmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dFBl
bmRpbmcoKSB8fCAocmVuZGVyVmlldygpICYmIHJlbmRlclZpZXcoKS0+bmVlZHNMYXlvdXQoKSk7
CiAgICAgaWYgKG5lZWRzTGF5b3V0IHx8IGhhc1BlbmRpbmdTdHlsZVJlY2FsYygpKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBWZWN0b3I8V2Vha1B0cjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4+IGlu
dGVyc2VjdGlvbk9ic2VydmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9uczsKKwogICAgIGZvciAo
Y29uc3QgYXV0byYgb2JzZXJ2ZXIgOiBtX2ludGVyc2VjdGlvbk9ic2VydmVycykgewogICAgICAg
ICBib29sIG5lZWROb3RpZnkgPSBmYWxzZTsKICAgICAgICAgYXV0byB0aW1lc3RhbXAgPSBvYnNl
cnZlci0+bm93VGltZXN0YW1wKCk7CkBAIC03NjQ2LDkgKzc2NDUsMTEgQEAgdm9pZCBEb2N1bWVu
dDo6dXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YQogICAgICAgICAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnNlY3Rpb25SYXRpbyA9IDE7CiAKLSAgICAgICAg
ICAgICAgICAgICAgYXV0byYgdGhyZXNob2xkcyA9IG9ic2VydmVyLT50aHJlc2hvbGRzKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIHdoaWxlICh0aHJlc2hvbGRJbmRleCA8IHRocmVzaG9sZHMuc2l6
ZSgpICYmIHRocmVzaG9sZHNbdGhyZXNob2xkSW5kZXhdIDw9IGludGVyc2VjdGlvblJhdGlvKQor
ICAgICAgICAgICAgICAgICAgICBmb3IgKGF1dG8gdGhyZXNob2xkIDogb2JzZXJ2ZXItPnRocmVz
aG9sZHMoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodGhyZXNob2xkIDw9IGlu
dGVyc2VjdGlvblJhdGlvIHx8IFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbDxmbG9hdD4odGhyZXNo
b2xkLCBpbnRlcnNlY3Rpb25SYXRpbykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgKyt0aHJlc2hvbGRJbmRleDsKKyAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIApAQCAtNzY4
OSwyMCArNzY5MCwxMyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZh
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5lZWROb3RpZnkpCi0gICAg
ICAgICAgICBtX2ludGVyc2VjdGlvbk9ic2VydmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9ucy5h
cHBlbmQobWFrZVdlYWtQdHIob2JzZXJ2ZXIuZ2V0KCkpKTsKKyAgICAgICAgICAgIGludGVyc2Vj
dGlvbk9ic2VydmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9ucy5hcHBlbmQobWFrZVdlYWtQdHIo
b2JzZXJ2ZXIuZ2V0KCkpKTsKICAgICB9CiAKLSAgICBpZiAobV9pbnRlcnNlY3Rpb25PYnNlcnZl
cnNXaXRoUGVuZGluZ05vdGlmaWNhdGlvbnMuc2l6ZSgpKQotICAgICAgICBtX2ludGVyc2VjdGlv
bk9ic2VydmVyc05vdGlmeVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwotfQotCi12b2lkIERvY3Vt
ZW50Ojpub3RpZnlJbnRlcnNlY3Rpb25PYnNlcnZlcnNUaW1lckZpcmVkKCkKLXsKLSAgICBmb3Ig
KGNvbnN0IGF1dG8mIG9ic2VydmVyIDogbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnNXaXRoUGVuZGlu
Z05vdGlmaWNhdGlvbnMpIHsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG9ic2VydmVyIDogaW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJzV2l0aFBlbmRpbmdOb3RpZmljYXRpb25zKSB7CiAgICAgICAgIGlmIChv
YnNlcnZlcikKICAgICAgICAgICAgIG9ic2VydmVyLT5ub3RpZnkoKTsKICAgICB9Ci0gICAgbV9p
bnRlcnNlY3Rpb25PYnNlcnZlcnNXaXRoUGVuZGluZ05vdGlmaWNhdGlvbnMuY2xlYXIoKTsKIH0K
IAogdm9pZCBEb2N1bWVudDo6c2NoZWR1bGVJbml0aWFsSW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25V
cGRhdGUoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDI2MDczOSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjY4LDEwICsx
NjY4LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGNhbk5hdmlnYXRlSW50ZXJuYWwoRnJhbWUmIHRh
cmdldEZyYW1lKTsKICAgICBib29sIGlzTmF2aWdhdGlvbkJsb2NrZWRCeVRoaXJkUGFydHlJRnJh
bWVSZWRpcmVjdEJsb2NraW5nKEZyYW1lJiB0YXJnZXRGcmFtZSwgY29uc3QgVVJMJiBkZXN0aW5h
dGlvblVSTCk7CiAKLSNpZiBFTkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQotICAgIHZvaWQg
bm90aWZ5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJzVGltZXJGaXJlZCgpOwotI2VuZGlmCi0KICNpZiBV
U0UoUVVJQ0tfTE9PSykKICAgICBib29sIHNob3VsZEVuZm9yY2VRdWlja0xvb2tTYW5kYm94KCkg
Y29uc3Q7CiAgICAgdm9pZCBhcHBseVF1aWNrTG9va1NhbmRib3goKTsKQEAgLTE4NDQsNyArMTg0
MCw2IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNFUlZFUikKICAgICBW
ZWN0b3I8V2Vha1B0cjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4+IG1faW50ZXJzZWN0aW9uT2JzZXJ2
ZXJzOwogICAgIFZlY3RvcjxXZWFrUHRyPEludGVyc2VjdGlvbk9ic2VydmVyPj4gbV9pbnRlcnNl
Y3Rpb25PYnNlcnZlcnNXaXRoUGVuZGluZ05vdGlmaWNhdGlvbnM7Ci0gICAgVGltZXIgbV9pbnRl
cnNlY3Rpb25PYnNlcnZlcnNOb3RpZnlUaW1lcjsKICAgICBUaW1lciBtX2ludGVyc2VjdGlvbk9i
c2VydmVyc0luaXRpYWxVcGRhdGVUaW1lcjsKICAgICAvLyBUaGlzIGlzIG9ubHkgbm9uLW51bGwg
d2hlbiB0aGlzIGRvY3VtZW50IGlzIGFuIGV4cGxpY2l0IHJvb3QuCiAgICAgc3RkOjp1bmlxdWVf
cHRyPEludGVyc2VjdGlvbk9ic2VydmVyRGF0YT4gbV9pbnRlcnNlY3Rpb25PYnNlcnZlckRhdGE7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiAyNjA3MzkpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczOSw2
ICs3MzksMjEgQEAgUmVkdWNlZFJlc29sdXRpb25TZWNvbmRzIERPTVdpbmRvdzo6bm93VAogICAg
IHJldHVybiBwZXJmb3JtYW5jZSgpLm5vd0luUmVkdWNlZFJlc29sdXRpb25TZWNvbmRzKCk7CiB9
CiAKK3ZvaWQgRE9NV2luZG93OjpmcmVlemVOb3dUaW1lc3RhbXAoKQoreworICAgIG1fZnJvemVu
Tm93VGltZXN0YW1wID0gbm93VGltZXN0YW1wKCk7Cit9CisKK3ZvaWQgRE9NV2luZG93Ojp1bmZy
ZWV6ZU5vd1RpbWVzdGFtcCgpCit7CisgICAgbV9mcm96ZW5Ob3dUaW1lc3RhbXAgPSBXVEY6Om51
bGxvcHQ7Cit9CisKK1JlZHVjZWRSZXNvbHV0aW9uU2Vjb25kcyBET01XaW5kb3c6OmZyb3plbk5v
d1RpbWVzdGFtcCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJvemVuTm93VGltZXN0YW1wLnZh
bHVlT3Iobm93VGltZXN0YW1wKCkpOworfQorCiBMb2NhdGlvbiYgRE9NV2luZG93Ojpsb2NhdGlv
bigpCiB7CiAgICAgaWYgKCFtX2xvY2F0aW9uKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
CShyZXZpc2lvbiAyNjA3MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNTEsNiArMzUxLDkgQEAgcHVibGljOgogCiAgICAgUGVyZm9ybWFu
Y2UmIHBlcmZvcm1hbmNlKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVkdWNlZFJlc29s
dXRpb25TZWNvbmRzIG5vd1RpbWVzdGFtcCgpIGNvbnN0OworICAgIHZvaWQgZnJlZXplTm93VGlt
ZXN0YW1wKCk7CisgICAgdm9pZCB1bmZyZWV6ZU5vd1RpbWVzdGFtcCgpOworICAgIFJlZHVjZWRS
ZXNvbHV0aW9uU2Vjb25kcyBmcm96ZW5Ob3dUaW1lc3RhbXAoKSBjb25zdDsKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBpbmNyZW1lbnRTY3JvbGxFdmVudExpc3RlbmVyc0Nv
dW50KCk7CkBAIC00NzAsNiArNDczLDggQEAgcHJpdmF0ZToKIAogICAgIG11dGFibGUgUmVmUHRy
PFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogCisgICAgT3B0aW9uYWw8UmVkdWNlZFJlc29s
dXRpb25TZWNvbmRzPiBtX2Zyb3plbk5vd1RpbWVzdGFtcDsKKwogICAgIC8vIEZvciB0aGUgcHVy
cG9zZSBvZiB0cmFja2luZyB1c2VyIGFjdGl2YXRpb24sIGVhY2ggV2luZG93IFcgaGFzIGEgbGFz
dCBhY3RpdmF0aW9uIHRpbWVzdGFtcC4gVGhpcyBpcyBhIG51bWJlciBpbmRpY2F0aW5nIHRoZSBs
YXN0IHRpbWUgVyBnb3QKICAgICAvLyBhbiBhY3RpdmF0aW9uIG5vdGlmaWNhdGlvbi4gSXQgY29y
cmVzcG9uZHMgdG8gYSBET01IaWdoUmVzVGltZVN0YW1wIHZhbHVlIGV4Y2VwdCBmb3IgdHdvIGNh
c2VzOiBwb3NpdGl2ZSBpbmZpbml0eSBpbmRpY2F0ZXMgdGhhdCBXIGhhcyBuZXZlcgogICAgIC8v
IGJlZW4gYWN0aXZhdGVkLCB3aGlsZSBuZWdhdGl2ZSBpbmZpbml0eSBpbmRpY2F0ZXMgdGhhdCBh
IHVzZXIgYWN0aXZhdGlvbi1nYXRlZCBBUEkgaGFzIGNvbnN1bWVkIHRoZSBsYXN0IHVzZXIgYWN0
aXZhdGlvbiBvZiBXLiBUaGUgaW5pdGlhbApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9JbnRl
cnNlY3Rpb25PYnNlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9J
bnRlcnNlY3Rpb25PYnNlcnZlci5jcHAJKHJldmlzaW9uIDI2MDczOSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTYs
NyArMjU2LDcgQEAgT3B0aW9uYWw8UmVkdWNlZFJlc29sdXRpb25TZWNvbmRzPiBJbnRlcgogICAg
IEFTU0VSVChjb250ZXh0LT5pc0RvY3VtZW50KCkpOwogICAgIGF1dG8mIGRvY3VtZW50ID0gZG93
bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KTsKICAgICBpZiAoYXV0byogd2luZG93ID0gZG9jdW1l
bnQuZG9tV2luZG93KCkpCi0gICAgICAgIHJldHVybiB3aW5kb3ctPm5vd1RpbWVzdGFtcCgpOwor
ICAgICAgICByZXR1cm4gd2luZG93LT5mcm96ZW5Ob3dUaW1lc3RhbXAoKTsKICAgICAKICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAy
NjA3MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzQxLDYgKzEzNDEsMTMgQEAgdm9pZCBQYWdlOjp1cGRhdGVSZW5kZXJpbmcoKQogCiAgICAg
bGF5b3V0SWZOZWVkZWQoKTsKIAorICAgIC8vIFRpbWVzdGFtcHMgc2hvdWxkIG5vdCBjaGFuZ2Ug
d2hpbGUgc2VydmluZyB0aGUgcmVuZGVyaW5nIHVwZGF0ZSBzdGVwcy4KKyAgICBWZWN0b3I8V2Vh
a1B0cjxEb2N1bWVudD4+IGluaXRpYWxEb2N1bWVudHM7CisgICAgZm9yRWFjaERvY3VtZW50KFsm
aW5pdGlhbERvY3VtZW50c10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVu
dC5kb21XaW5kb3coKS0+ZnJlZXplTm93VGltZXN0YW1wKCk7CisgICAgICAgIGluaXRpYWxEb2N1
bWVudHMuYXBwZW5kKG1ha2VXZWFrUHRyKCZkb2N1bWVudCkpOworICAgIH0pOworCiAgICAgLy8g
Rmx1c2ggYXV0b2ZvY3VzIGNhbmRpZGF0ZXMKIAogICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9j
dW1lbnQmIGRvY3VtZW50KSB7CkBAIC0xMzU4LDcgKzEzNjUsNyBAQCB2b2lkIFBhZ2U6OnVwZGF0
ZVJlbmRlcmluZygpCiAgICAgZm9yRWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9jdW1lbnQp
IHsKICAgICAgICAgaWYgKCFkb2N1bWVudC5kb21XaW5kb3coKSkKICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgYXV0byB0aW1lc3RhbXAgPSBkb2N1bWVudC5kb21XaW5kb3coKS0+bm93VGlt
ZXN0YW1wKCk7CisgICAgICAgIGF1dG8gdGltZXN0YW1wID0gZG9jdW1lbnQuZG9tV2luZG93KCkt
PmZyb3plbk5vd1RpbWVzdGFtcCgpOwogICAgICAgICBpZiAoYXV0byogdGltZWxpbmVzQ29udHJv
bGxlciA9IGRvY3VtZW50LnRpbWVsaW5lc0NvbnRyb2xsZXIoKSkKICAgICAgICAgICAgIHRpbWVs
aW5lc0NvbnRyb2xsZXItPnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKHRpbWVzdGFtcCk7
CiAgICAgICAgIC8vIEZJWE1FOiBSdW4gdGhlIGZ1bGxzY3JlZW4gc3RlcHMuCkBAIC0xMzg2LDYg
KzEzOTMsMTEgQEAgdm9pZCBQYWdlOjp1cGRhdGVSZW5kZXJpbmcoKQogICAgICAgICB9CiAgICAg
fSk7CiAKKyAgICBmb3IgKGF1dG8mIGRvY3VtZW50IDogaW5pdGlhbERvY3VtZW50cykgeworICAg
ICAgICBpZiAoZG9jdW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC0+ZG9tV2luZG93KCktPnVu
ZnJlZXplTm93VGltZXN0YW1wKCk7CisgICAgfQorCiAgICAgbGF5b3V0SWZOZWVkZWQoKTsKICAg
ICBkb0FmdGVyVXBkYXRlUmVuZGVyaW5nKCk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjA3Mzkp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBA
QAorMjAyMC0wNC0yNyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29t
PgorCisgICAgICAgIFRpbWVzdGFtcHMgc2hvdWxkIGJlIHRoZSBzYW1lIGZvciBhbGwgcmVuZGVy
aW5nIHVwZGF0ZSBzdGVwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA3MTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisg
ICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tY2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1jYWxsYmFjay10aW1lc3RhbXAu
aHRtbDoKKyAgICAgICAgRW5zdXJlIHRoZSByQUYgY2FsbGJhY2sgdGltZXN0YW1wIGlzIGxlc3Mg
dGhhbiBQZXJmb3JtYW5jZS5ub3coKS4KKworICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9u
LW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3RhbXAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFu
aW1hdGlvbnMvYW5pbWF0aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3RhbXAuaHRtbDoKKyAg
ICAgICAgRW5zdXJlIHRoZSByQUYgY2FsbGJhY2tzIHJlY2VpdmUgdGhlIHNhbWUgdGltZXN0YW1w
cy4KKworICAgICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2
ZXItY2FsbGJhY2stdGltZXN0YW1wLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW50
ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay10aW1lc3Rh
bXAuaHRtbDogQWRkZWQuCisgICAgICAgIEEgbmV3IHRlc3QgdG8gZW5zdXJlIHRoZSBJbnRlcnNl
Y3Rpb25PYnNldmVyIGFuZCB0aGUgckFGIGNhbGxiYWNrcyByZWNlaXZlIHRoZSBzYW1lIHRpbWVz
dGFtcHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTA0LTI2
ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEdhcmRl
bmluZywgc2tpcHBpbmcgbW9yZSBpbnNwZWN0b3IgdGVzdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1jYWxsYmFjay10aW1lc3RhbXAtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVz
dGFtcC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2MDczOSkKKysrIExheW91dFRlc3RzL2FuaW1h
dGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNCArMSwxOCBAQAotUEFTUyBBbGwgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4g
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkgY2FsbGJhY2sgdGltZXN0YW1wcyBhbmQgUGVyZm9ybWFu
Y2Uubm93KCkgd2VyZSB3aXRoaW4gM21zLgorVGVzdCBwZXJmb3JtYW5jZS5ub3coKSBpcyBhdCBs
ZWFzdCBhcyB0aGUgdGltZXN0YW1wIHRoZSByQUYgY2FsbGJhY2suCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygp
KSBpcyA+PSBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBl
cmZvcm1hbmNlLm5vdygpKSBpcyA+PSBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgu
cm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyA+PSBNYXRoLnJvdW5kKHRpbWVzdGFt
cDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyA+PSBNYXRo
LnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5v
dygpKSBpcyA+PSBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93
LnBlcmZvcm1hbmNlLm5vdygpKSBpcyA+PSBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1h
dGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyA+PSBNYXRoLnJvdW5kKHRpbWVz
dGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyA+PSBN
YXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNl
Lm5vdygpKSBpcyA+PSBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCitQQVNTIE1hdGgucm91bmQod2lu
ZG93LnBlcmZvcm1hbmNlLm5vdygpKSBpcyA+PSBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVz
dGFtcC5odG1sCShyZXZpc2lvbiAyNjA3MzkpCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2Fu
aW1hdGlvbi1jYWxsYmFjay10aW1lc3RhbXAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNSwzNyAr
NSwyNiBAQAogPC9oZWFkPgogPGJvZHk+CiAgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIHRpbWVz
dGFtcDEgPSAwOwogICAgICAgICB2YXIgY3VycmVudEZyYW1lID0gMDsKLSAgICAgICAgdmFyIGZh
aWxlZCA9IGZhbHNlOworICAgICAgICBjb25zdCBNYXhGcmFtZXMgPSAxMDsKIAotICAgICAgICBm
dW5jdGlvbiBmaW5pc2hUZXN0KCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGZhaWxlZCkK
LSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTb21lIG9mIHRoZSByZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoKSBjYWxsYmFjayB0aW1lc3RhbXBzIHdlcmUgbGFyZ2VyIHRoYW4gUGVyZm9ybWFuY2Uu
bm93KCkgYnkgbW9yZSB0aGFuIDNtcy4iKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJBbGwgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gcmVxdWVzdEFuaW1h
dGlvbkZyYW1lKCkgY2FsbGJhY2sgdGltZXN0YW1wcyBhbmQgUGVyZm9ybWFuY2Uubm93KCkgd2Vy
ZSB3aXRoaW4gM21zLiIpCi0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQot
ICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gZG9BbmltYXRpb24odGltZXN0YW1wKQogICAgICAg
ICB7Ci0gICAgICAgICAgICBjb25zdCBUb2xlcmFuY2UgPSAzOwotICAgICAgICAgICAgY29uc3Qg
V2FybXVwRnJhbWVzID0gNTsKKyAgICAgICAgICAgIHRpbWVzdGFtcDEgPSB0aW1lc3RhbXA7Cisg
ICAgICAgICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgiTWF0aC5yb3VuZCh3aW5kb3cu
cGVyZm9ybWFuY2Uubm93KCkpIiwgIk1hdGgucm91bmQodGltZXN0YW1wMSkiKTsKIAotICAgICAg
ICAgICAgdmFyIHBlcmZvcm1hbmNlTm93ID0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpOwotICAg
ICAgICAgICAgaWYgKCsrY3VycmVudEZyYW1lID4gV2FybXVwRnJhbWVzICYmIE1hdGguYWJzKHRp
bWVzdGFtcCAtIHBlcmZvcm1hbmNlTm93KSA+PSBUb2xlcmFuY2UpIHsKLSAgICAgICAgICAgICAg
ICBkZWJ1ZygicmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkgdGltZXN0YW1wID0gIiArIHRpbWVzdGFt
cCArICIsIHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSA9ICIgKyBwZXJmb3JtYW5jZU5vdyk7Ci0g
ICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICgrK2N1cnJlbnRG
cmFtZSA9PSBNYXhGcmFtZXMpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGNvbnN0
IE1heEZyYW1lcyA9IDI1OwotICAgICAgICAgICAgaWYgKGN1cnJlbnRGcmFtZSA9PSBNYXhGcmFt
ZXMpCi0gICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbik7CisgICAgICAg
ICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZG9BbmltYXRpb24pOwogICAgICAgICB9Ci0gICAg
ICAgIAorCiAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdCBwZXJmb3JtYW5jZS5ub3coKSBpcyBhdCBsZWFzdCBhcyB0aGUgdGlt
ZXN0YW1wIHRoZSByQUYgY2FsbGJhY2suIik7CiAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFt
ZShkb0FuaW1hdGlvbik7CiAgICAgPC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24tbXVsdGlwbGUtY2FsbGJhY2tzLXRpbWVzdGFtcC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tbXVsdGlwbGUt
Y2FsbGJhY2tzLXRpbWVzdGFtcC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2MDczOSkKKysrIExh
eW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3Rh
bXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMTggQEAKLVBBU1MgQWxs
IHRoZSBtdWx0aXBsZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBjYWxsYmFja3MsIHdoaWNoIHdl
cmUgZmlyZWQgYXQgdGhlIHNhbWUgdGltZSwgcmVjZWl2ZWQgdGhlIHNhbWUgdGltZXN0YW1wLgor
VGVzdCB0aGUgdGltZXN0YW1wcyBvZiBhbGwgdGhlIHJBRiBjYWxsYmFja3MgYXJlIHRoZSBzYW1l
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBNYXRoLnJvdW5kKHRpbWVz
dGFtcDEpIGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0aC5yb3VuZCh0aW1lc3Rh
bXAxKSBpcyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1hdGgucm91bmQodGltZXN0YW1w
MSkgaXMgTWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEp
IGlzIE1hdGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSBp
cyBNYXRoLnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1hdGgucm91bmQodGltZXN0YW1wMSkgaXMg
TWF0aC5yb3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpIGlzIE1h
dGgucm91bmQodGltZXN0YW1wMikKK1BBU1MgTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSBpcyBNYXRo
LnJvdW5kKHRpbWVzdGFtcDIpCitQQVNTIE1hdGgucm91bmQodGltZXN0YW1wMSkgaXMgTWF0aC5y
b3VuZCh0aW1lc3RhbXAyKQorUEFTUyBNYXRoLnJvdW5kKHRpbWVzdGFtcDEpIGlzIE1hdGgucm91
bmQodGltZXN0YW1wMikKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBD
T01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tbXVsdGlwbGUt
Y2FsbGJhY2tzLXRpbWVzdGFtcC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1h
dGlvbnMvYW5pbWF0aW9uLW11bHRpcGxlLWNhbGxiYWNrcy10aW1lc3RhbXAuaHRtbAkocmV2aXNp
b24gMjYwNzM5KQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tbXVsdGlwbGUt
Y2FsbGJhY2tzLXRpbWVzdGFtcC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDQzICs1LDM0IEBA
CiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8c2NyaXB0PgotICAgICAgICB2YXIgY3VycmVudEZyYW1l
ID0gMDsKICAgICAgICAgdmFyIHRpbWVzdGFtcDEgPSAwOwotICAgICAgICB2YXIgZmFpbGVkID0g
ZmFsc2U7Ci0KLSAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChmYWlsZWQpCi0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiU29tZSBvZiB0
aGUgbXVsdGlwbGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkgY2FsbGJhY2tzLCB3aGljaCB3ZXJl
IGZpcmVkIGF0IHRoZSBzYW1lIHRpbWUsIHJlY2VpdmVkIGRpZmZlcmVudCB0aW1lc3RhbXBzLiIp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkFsbCB0aGUg
bXVsdGlwbGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkgY2FsbGJhY2tzLCB3aGljaCB3ZXJlIGZp
cmVkIGF0IHRoZSBzYW1lIHRpbWUsIHJlY2VpdmVkIHRoZSBzYW1lIHRpbWVzdGFtcC4iKTsKLSAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9CisgICAgICAgIHZhciB0aW1lc3Rh
bXAyID0gMDsKKyAgICAgICAgdmFyIGN1cnJlbnRGcmFtZSA9IDA7CisgICAgICAgIGNvbnN0IE1h
eEZyYW1lcyA9IDEwOwogCiAgICAgICAgIGZ1bmN0aW9uIGRvQW5pbWF0aW9uMSh0aW1lc3RhbXAp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHRpbWVzdGFtcDEgPSB0aW1lc3RhbXA7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgICAgIGNvbnN0IE1heEZyYW1lcyA9IDI1OwotICAgICAgICAgICAgaWYg
KGN1cnJlbnRGcmFtZSA9PSBNYXhGcmFtZXMpCi0gICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKGRvQW5pbWF0aW9uMSk7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1l
KGRvQW5pbWF0aW9uMik7CisgICAgICAgICAgICBpZiAoKytjdXJyZW50RnJhbWUgPiBNYXhGcmFt
ZXMpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRpbWVzdGFtcDEgPSB0aW1lc3Rh
bXA7CisgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZG9BbmltYXRpb24xKTsKKyAg
ICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbjIpOwogICAgICAgICB9
CiAKICAgICAgICAgZnVuY3Rpb24gZG9BbmltYXRpb24yKHRpbWVzdGFtcCkKICAgICAgICAgewot
ICAgICAgICAgICAgY29uc3QgV2FybXVwRnJhbWVzID0gNTsKLSAgICAgICAgICAgIGlmICgrK2N1
cnJlbnRGcmFtZSA+IFdhcm11cEZyYW1lcyAmJiB0aW1lc3RhbXAgIT0gdGltZXN0YW1wMSkgewot
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoInRpbWVzdGFtcCA9ICIgKyB0aW1lc3RhbXAgKyAi
LCB0aW1lc3RhbXAxID0gIiArIHRpbWVzdGFtcDEgICsgIiwgd2luZG93LnBlcmZvcm1hbmNlLm5v
dygpID0gIiArIHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSk7Ci0gICAgICAgICAgICAgICAgZmFp
bGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRpbWVzdGFtcDIgPSB0aW1l
c3RhbXA7CisgICAgICAgICAgICBzaG91bGRCZSgiTWF0aC5yb3VuZCh0aW1lc3RhbXAxKSIsICJN
YXRoLnJvdW5kKHRpbWVzdGFtcDIpIik7CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0
IHRoZSB0aW1lc3RhbXBzIG9mIGFsbCB0aGUgckFGIGNhbGxiYWNrcyBhcmUgdGhlIHNhbWUuIik7
CiAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShkb0FuaW1hdGlvbjEpOworICAgICAgICBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZG9BbmltYXRpb24yKTsKICAgICA8L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9u
LW9ic2VydmVyLWNhbGxiYWNrLXRpbWVzdGFtcC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1j
YWxsYmFjay10aW1lc3RhbXAtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2st
dGltZXN0YW1wLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitU
ZXN0IHRoZSBJbnRlcnNlY3Rpb25PYnNlcnZlciB0aW1lc3RhbXAgaXMgdGhlIHNhbWUgYXMgdGhl
IHRpbWVzdGFtcCBvZiB0aGUgckFGIGNhbGxiYWNrLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBNYXRoLnJvdW5kKGFuaW1hdGVUaW1lc3RhbXApIGlzIE1hdGgucm91bmQo
aW50ZXJzZWN0VGltZXN0YW1wKQorUEFTUyBNYXRoLnJvdW5kKGFuaW1hdGVUaW1lc3RhbXApIGlz
IE1hdGgucm91bmQoaW50ZXJzZWN0VGltZXN0YW1wKQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2ludGVyc2VjdGlv
bi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stdGltZXN0YW1wLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2Vj
dGlvbi1vYnNlcnZlci1jYWxsYmFjay10aW1lc3RhbXAuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNh
bGxiYWNrLXRpbWVzdGFtcC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTkgQEAKKzwh
RE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKwk8c3R5bGU+CisJICAgICNzY3JvbGxhYmxl
IHsKKyAgICAJICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgCWhlaWdodDogMTAwcHg7CisgICAg
ICAgIAlib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgCW92ZXJmbG93LXk6IGF1dG87
CisgICAgCX0KKyAgICAJI2NvbnRhaW5lciB7CisJICAgICAgICB3aWR0aDogMTAwcHg7CisgICAg
ICAgIAloZWlnaHQ6IDIwMHB4OworICAgIAl9CisgICAgCSNib3ggeworICAgICAgICAJcG9zaXRp
b246IHJlbGF0aXZlOworICAgICAgICAJdG9wOiAxMDBweDsKKyAgICAgICAgCXdpZHRoOiAxMDBw
eDsKKyAgICAgICAgCWhlaWdodDogMTAwcHg7CisgICAgICAgIAliYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsKKyAgICAJfQorCTwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJz
Y3JvbGxhYmxlIj4KKyAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxk
aXYgaWQ9ImJveCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxzY3Jp
cHQ+CisgICAgICAgIHZhciBhbmltYXRlVGltZXN0YW1wID0gMDsKKyAgICAgICAgdmFyIGludGVy
c2VjdFRpbWVzdGFtcCA9IDA7CisgICAgICAgIHZhciBNYXhGcmFtZXMgPSAyOworICAgICAgICB2
YXIgY3VycmVudEZyYW1lID0gMDsKKworICAgICAgICBmdW5jdGlvbiBzY3JvbGxCb3goKQorICAg
ICAgICB7CisgICAgICAgICAgICB2YXIgc2Nyb2xsYWJsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoIiNzY3JvbGxhYmxlIik7CisgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gc2Nyb2xsYWJsZS5j
bGllbnRIZWlnaHQ7CisgICAgICAgICAgICBzY3JvbGxhYmxlLnNjcm9sbCgwLCAoaGVpZ2h0IC8g
TWF4RnJhbWVzKSAqIGN1cnJlbnRGcmFtZSk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9m
ZnNldEhlaWdodDsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZUFuaW1hdGUo
dGltZXN0YW1wKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoKytjdXJyZW50RnJhbWUgPiBN
YXhGcmFtZXMpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICBhbmltYXRlVGltZXN0
YW1wID0gdGltZXN0YW1wOworICAgICAgICAgICAgc2Nyb2xsQm94KCk7CisgICAgICAgICAgICBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaGFuZGxlQW5pbWF0ZSk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBoYW5kbGVJbnRlcnNlY3QoZW50cmllcywgb2JzZXJ2ZXIpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHsKKyAgICAgICAgICAgICAg
ICBpbnRlcnNlY3RUaW1lc3RhbXAgPSBlbnRyeS50aW1lOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJNYXRoLnJvdW5kKGFuaW1hdGVUaW1lc3RhbXApIiwgIk1hdGgucm91bmQoaW50ZXJzZWN0
VGltZXN0YW1wKSIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBidWlsZFRocmVzaG9sZExpc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBsZXQgdGhy
ZXNob2xkcyA9IFtdOworCisgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDEuMDsgaSA8PSBNYXhG
cmFtZXM7IGkrKykgeworICAgICAgICAgICAgICAgIGxldCByYXRpbyA9IGkgLyBNYXhGcmFtZXM7
CisgICAgICAgICAgICAgICAgdGhyZXNob2xkcy5wdXNoKHJhdGlvKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgIHJldHVybiB0aHJlc2hvbGRzOworICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gY3JlYXRlT2JzZXJ2ZXIoKQorICAgICAgICB7CisgICAgICAgICAgICBsZXQgb2Jz
ZXJ2ZXI7CisKKyAgICAgICAgICAgICBsZXQgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBy
b290OiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2Nyb2xsYWJsZSIpLAorICAgICAgICAgICAg
ICAgIHJvb3RNYXJnaW46ICIwcHgiLAorICAgICAgICAgICAgICAgIHRocmVzaG9sZDogYnVpbGRU
aHJlc2hvbGRMaXN0KCkKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgICBvYnNlcnZlciA9
IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihoYW5kbGVJbnRlcnNlY3QsIG9wdGlvbnMpOworICAg
ICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYm94Iikp
OworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSBJbnRlcnNlY3Rpb25PYnNlcnZlciB0aW1lc3Rh
bXAgaXMgdGhlIHNhbWUgYXMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgckFGIGNhbGxiYWNrLiIpOwor
ICAgICAgICBjcmVhdGVPYnNlcnZlcigpOworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
aGFuZGxlQW5pbWF0ZSk7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNp
b24gMjYwNzM5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRp
b25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMzI1LDggKzEzMjUsNiBAQCB3ZWJraXQub3JnL2IvMjA2
OTQ2IGh0dHAvdGVzdHMvc2VjdXJpdHkvCiAKIHdlYmtpdC5vcmcvYi8yMDUzMDkgc2Nyb2xsaW5n
Y29vcmRpbmF0b3IvaW9zL3Njcm9sbC1wb3NpdGlvbi1hZnRlci1yZWF0dGFjaC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8yMDcxNTMgYW5pbWF0aW9ucy9hbmltYXRp
b24tY2FsbGJhY2stdGltZXN0YW1wLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3Jn
L2IvMjA3MTU2IFsgUmVsZWFzZSBdIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29y
a2Vycy9jbG9zZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIwNzE2MSBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVh
dGVJbWFnZUJpdG1hcC10cmFuc2Zlci5odG1sIFsgUGFzcyBGYWlsdXJlIF0KSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDI2
MDczOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwko
d29ya2luZyBjb3B5KQpAQCAtOTAxLDggKzkwMSw2IEBAIHdlYmtpdC5vcmcvYi8yMDgxNjUgaHR0
cC90ZXN0cy9jb29raWVzL2QKIAogd2Via2l0Lm9yZy9iLzIwNzU2MCBtZWRpYS9haXJwbGF5LXRh
cmdldC1hdmFpbGFiaWxpdHkuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8y
MDcxNTMgWyBEZWJ1ZyBdIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWNhbGxiYWNrLXRpbWVzdGFtcC5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzIwNzU2OCBpbnNwZWN0b3IvcGFn
ZS9vdmVycmlkZVVzZXJBZ2VudC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9i
LzIwNzg1NyBmYXN0L2NhbnZhcy93ZWJnbC90ZXhJbWFnZTJELW1zZS1mbGlwWS1mYWxzZS5odG1s
IFsgUGFzcyBUaW1lb3V0IF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>