<?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>147107</bug_id>
          
          <creation_ts>2015-07-20 05:45:46 -0700</creation_ts>
          <short_desc>Implementation JavaScript watchdog using WTF::WorkQueue.</short_desc>
          <delta_ts>2015-08-12 11:11:04 -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>JavaScriptCore</component>
          <version>528+ (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=121219</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>147473</dependson>
    
    <dependson>147790</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pascal Jacquemart">p.jacquemart</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbriance</cc>
    
    <cc>j.isorce</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>obzhirov</cc>
    
    <cc>peavo</cc>
    
    <cc>rgabor</cc>
    
    <cc>xinchao.peng</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1110603</commentid>
    <comment_count>0</comment_count>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2015-07-20 05:45:46 -0700</bug_when>
    <thetext>Adding default implementation for JavaScript watchdog based on C++11 features (threading, mutex, condition_variables)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110611</commentid>
    <comment_count>1</comment_count>
      <attachid>257092</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2015-07-20 07:13:52 -0700</bug_when>
    <thetext>Created attachment 257092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110618</commentid>
    <comment_count>2</comment_count>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2015-07-20 08:00:38 -0700</bug_when>
    <thetext>Too bad it is not compiling for Windows ;-(

I am working on WebKitEFL, trying to call JSContextGroupSetExecutionTimeLimit() from the injected bundle

It works -the JavaScript has been stopped after trying to execute a faulty page running an infinite loop- but... it won&apos;t restart!

I mean I can load new pages using the MiniBrowser URL bar but the JavaScript is still disabled. Is it an EFL bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111253</commentid>
    <comment_count>3</comment_count>
      <attachid>257262</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2015-07-22 06:12:58 -0700</bug_when>
    <thetext>Created attachment 257262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111284</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-22 08:25:33 -0700</bug_when>
    <thetext>Pascal, why did you r+ your own patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111288</commentid>
    <comment_count>5</comment_count>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2015-07-22 08:35:34 -0700</bug_when>
    <thetext>Sorry I meant r? of course
How is it possible? I can r+ myself whereas I am not even a reviewer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111309</commentid>
    <comment_count>6</comment_count>
      <attachid>257262</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-22 09:29:11 -0700</bug_when>
    <thetext>Comment on attachment 257262
Patch

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

&gt; Source/JavaScriptCore/runtime/WatchdogGeneric.cpp:36
&gt; +    unique_lock&lt;std::mutex&gt; lock(m_mutex);

Let&apos;s use a &quot;std::lock_guard&lt;std::mutex&gt; lock(m_mutex);&quot; instead since it also communicates that the mutex will not be unlocked until this scope exits.  The unique_lock&lt;std::mutex&gt; implies that you may unlock it mid scope (which you don&apos;t).

&gt; Source/JavaScriptCore/runtime/WatchdogGeneric.cpp:47
&gt; +    m_running = false;
&gt; +    m_active = false;
&gt; +    m_cond.notify_all();
&gt; +    m_mutex.unlock();

It is wrong to force unlock the mutex here, especially since you have not locked it.  The right thing to do is to put these 3 lines above this in a scope, and add a &quot;std::lock_guard&lt;std::mutex&gt; lock(m_mutex);&quot; at the top of the scope.

&gt; Source/JavaScriptCore/runtime/WatchdogGeneric.cpp:71
&gt; +    m_timeout = chrono::steady_clock::now() + limit;
&gt; +    m_active = true;
&gt; +    m_cond.notify_all();

You&apos;re should add a &quot;std::lock_guard&lt;std::mutex&gt; lock(m_mutex);&quot; at the top of this scope.  Otherwise, you&apos;ll have a race condition with Watchdog::run() due to spurious wakes from m_cond.wait().

&gt; Source/JavaScriptCore/runtime/WatchdogGeneric.cpp:77
&gt; +    m_active = false;
&gt; +    m_cond.notify_all();

You&apos;re should add a &quot;std::lock_guard&lt;std::mutex&gt; lock(m_mutex);&quot; at the top of this scope.  You might be able to get away without locking in this case here, but let&apos;s be pedantic about it so that it is clear that m_active and m_cond are under the guard of m_mutex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111310</commentid>
    <comment_count>7</comment_count>
      <attachid>257262</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-22 09:30:56 -0700</bug_when>
    <thetext>Comment on attachment 257262
Patch

One more thing: I think you should svn delete WatchdogNone.cpp since it is no longer needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111340</commentid>
    <comment_count>8</comment_count>
      <attachid>257262</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-07-22 10:40:38 -0700</bug_when>
    <thetext>Comment on attachment 257262
Patch

Is there any reason to have two implementations of this feature? Why not just one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111343</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-22 10:53:12 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 257262 [details]
&gt; Patch
&gt; 
&gt; Is there any reason to have two implementations of this feature? Why not
&gt; just one?

Darwin port uses GCD.  The default implementation being proposed creates a thread per WatchDog i.e. per VM.  I believe the GCD solution is more efficient for Darwin, but is unfortunately not always available for other ports.

The watchdog thread solution could be optimized to use only one thread, but that would effectively be like implementing a form of GCD.  If the other ports don&apos;t instantiate multiple VMs as a normal pattern of usage, then it may not be worth the effort to work on this optimization (which is why I didn&apos;t bring it up in my review).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111344</commentid>
    <comment_count>10</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-07-22 10:56:37 -0700</bug_when>
    <thetext>I think the default implementation of this should use WorkQueue (which is a GCD abstraction).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111348</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-22 11:03:52 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; I think the default implementation of this should use WorkQueue (which is a
&gt; GCD abstraction).

Interesting.  That sounds like the right plan, and we can have one implementation after all.  I&apos;ll let Pascal work on the implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112722</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-28 09:25:52 -0700</bug_when>
    <thetext>This was already implemented but ignored by reviewers in bug #121219, but for GTK and EFL only, so one bug or the other should be closed, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112725</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-28 09:34:38 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; This was already implemented but ignored by reviewers in bug #121219, but
&gt; for GTK and EFL only, so one bug or the other should be closed, I think.

It would help to cc me on Watchdog changes.  Anyway, it appears that 121219 is also implementing the same solution of using a monitoring thread.  As Anders pointed out above (https://bugs.webkit.org/show_bug.cgi?id=147107#c10), WTF::WorkQueue provides the abstraction we need to implement the Watchdog in a generic way for all platforms.

Hence, we should refactor the default implementation to be expressed in terms of WTF::WorkQueue, and have all platforms use that instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112761</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-28 11:02:47 -0700</bug_when>
    <thetext>*** Bug 121219 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113354</commentid>
    <comment_count>15</comment_count>
      <attachid>257832</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2015-07-30 07:40:49 -0700</bug_when>
    <thetext>Created attachment 257832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113359</commentid>
    <comment_count>16</comment_count>
      <attachid>257832</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2015-07-30 08:06:51 -0700</bug_when>
    <thetext>Comment on attachment 257832
Patch

Not asking for review, just saving the work in progress...

Thanks Mark for you comment on Bug 131082, it seems I missed the obvious...
Calling JSContextGroupSetExecutionTimeLimit() from a WebExtension / injected bundle is working fine... while using the appropriate callback.

In this concern &quot;load_started&quot; is fine because it is calling JSContextGroupSetExecutionTimeLimit() for each page load hence reseting m_didFire state

I can try to use WTF::WorkQueue, it sounds great!
Actually it seems we could apply the same treatment to remove / refactor heap/HeapTimer.cpp/.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113361</commentid>
    <comment_count>17</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-30 08:28:12 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Comment on attachment 257832 [details]
&gt; Patch
&gt; 
&gt; Not asking for review, just saving the work in progress...
&gt; 
&gt; Thanks Mark for you comment on Bug 131082, it seems I missed the obvious...
&gt; Calling JSContextGroupSetExecutionTimeLimit() from a WebExtension / injected
&gt; bundle is working fine... while using the appropriate callback.
&gt; 
&gt; In this concern &quot;load_started&quot; is fine because it is calling
&gt; JSContextGroupSetExecutionTimeLimit() for each page load hence reseting
&gt; m_didFire state
&gt; 
&gt; I can try to use WTF::WorkQueue, it sounds great!
&gt; Actually it seems we could apply the same treatment to remove / refactor
&gt; heap/HeapTimer.cpp/.h

FYI, since I didn’t hear back from you for a bit, I’ve actually implemented the changes to use WorkQueue (I think).  I’m currently testing it for some edge cases.  I plan upload a patch soon.  Thought I’d let you know so that we don’t do redundant work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114218</commentid>
    <comment_count>18</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-03 10:25:59 -0700</bug_when>
    <thetext>*** Bug 147473 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114347</commentid>
    <comment_count>19</comment_count>
      <attachid>258110</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-03 14:04:50 -0700</bug_when>
    <thetext>Created attachment 258110
the fix: using WorkQueue.

I&apos;ll test this on at least one other platform first before marking it for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114420</commentid>
    <comment_count>20</comment_count>
      <attachid>258128</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-03 15:54:41 -0700</bug_when>
    <thetext>Created attachment 258128
fix 2: Don&apos;t #include &quot;Watchdog.h&quot; in VM.h.  No more compiling the world.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114421</commentid>
    <comment_count>21</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-03 15:57:20 -0700</bug_when>
    <thetext>Need some EFL and GTK help.

EFL is failing to build due its implementation of WorkQueue:
https://webkit-queues.webkit.org/results/12528

GTK is also failing to build due to its implementation of WorkQueue:
https://webkit-queues.webkit.org/results/12622</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114455</commentid>
    <comment_count>22</comment_count>
      <attachid>258137</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-03 17:25:51 -0700</bug_when>
    <thetext>Created attachment 258137
fix 3: fixed build + some bug fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114483</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-08-03 19:04:43 -0700</bug_when>
    <thetext>Unbelievable how slow the GTK EWS is during Spanish nighttime. :(

Anyway the previous include directory issue on the EWS is concerning but I can&apos;t reproduce it locally; I built with attachment #258137 here with absolutely no issues. So I was then waiting for the EWS to provide more feedback on the new attachment, but I guess I will check back tomorrow as it still isn&apos;t done yet. Anyway the original problem for GTK was:

FAILED: /usr/lib/ccache/c++   -DBUILDING_GTK__=1 -DBUILDING_WITH_CMAKE=1 -DDATA_DIR=\&quot;share\&quot; -DGETTEXT_PACKAGE=\&quot;WebKit2GTK-4.0\&quot; -DHAVE_CONFIG_H=1 -DSTATICALLY_LINKED_WITH_WTF -DUSER_AGENT_GTK_MAJOR_VERSION=602 -DUSER_AGENT_GTK_MINOR_VERSION=1 -DWEBKITGTK_API_VERSION_STRING=\&quot;4.0\&quot; -std=c++11 -O3 -DNDEBUG -fno-exceptions -fno-strict-aliasing -fno-rtti -I../../Source/JavaScriptCore/shell/. -I. -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/ForwardingHeaders -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/bindings -I../../Source/JavaScriptCore/builtins -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/ftl -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/debugger -I../../Source/JavaScriptCore/inspector -I../../Source/JavaScriptCore/inspector/agents -I../../Source/JavaScriptCore/inspector/augmentable -I../../Source/JavaScriptCore/inspector/remote -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/llint -I../../Source/JavaScriptCore/llvm -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/replay -I../../Source/JavaScriptCore/runtime -I../../Source/JavaScriptCore/tools -I../../Source/JavaScriptCore/wasm -I../../Source/JavaScriptCore/yarr -I../../Source/WTF -IDerivedSources -IDerivedSources/ForwardingHeaders -IDerivedSources/JavaScriptCore -IDerivedSources/JavaScriptCore/inspector -I../../Source -I../../Source/JavaScriptCore/disassembler/udis86 -MMD -MT Source/JavaScriptCore/shell/CMakeFiles/jsc.dir/__/jsc.cpp.o -MF Source/JavaScriptCore/shell/CMakeFiles/jsc.dir/__/jsc.cpp.o.d -o Source/JavaScriptCore/shell/CMakeFiles/jsc.dir/__/jsc.cpp.o -c ../../Source/JavaScriptCore/jsc.cpp
In file included from ../../Source/WTF/wtf/WorkQueue.h:42:0,
                 from ../../Source/JavaScriptCore/runtime/Watchdog.h:32,
                 from ../../Source/JavaScriptCore/runtime/VM.h:53,
                 from ../../Source/JavaScriptCore/heap/CopiedSpaceInlines.h:32,
                 from ../../Source/JavaScriptCore/runtime/ButterflyInlines.h:31,
                 from ../../Source/JavaScriptCore/runtime/JSArray.h:25,
                 from ../../Source/JavaScriptCore/runtime/ArrayPrototype.h:24,
                 from ../../Source/JavaScriptCore/jsc.cpp:25:
../../Source/WTF/wtf/glib/GMainLoopSource.h:32:18: fatal error: glib.h: No such file or directory
 #include &lt;glib.h&gt;
                  ^
compilation terminated.

The glib include directory is clearly missing from the build command in this EWS failure, but I&apos;m not sure why, because it&apos;s very clearly specified in JSC&apos;s PlatformGTK.cmake. You shouldn&apos;t need any further changes to CMakeLists.txt. I half want to say &quot;whatever works for me must be good&quot; but I&apos;m also half concerned that the GTK and EWS bots have very similar include directory issues....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114491</commentid>
    <comment_count>24</comment_count>
      <attachid>258145</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-03 20:03:06 -0700</bug_when>
    <thetext>Created attachment 258145
fix 4: enable watchdog tests for all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114505</commentid>
    <comment_count>25</comment_count>
      <attachid>258150</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-03 20:45:57 -0700</bug_when>
    <thetext>Created attachment 258150
fix 5: more build fix for Windows port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114515</commentid>
    <comment_count>26</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-08-03 21:54:37 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Created attachment 258150 [details]
&gt; fix 5: more build fix for Windows port.


Mark, please add a include path for DispatchQueueEfl.h to PlatformEfl.cmake in order to pass efl-ews.


diff --git a/Source/JavaScriptCore/PlatformEfl.cmake b/Source/JavaScriptCore/PlatformEfl.cmake
index 6cc8c0e..ce1bc0b 100644
--- a/Source/JavaScriptCore/PlatformEfl.cmake
+++ b/Source/JavaScriptCore/PlatformEfl.cmake
@@ -2,6 +2,7 @@ list(APPEND JavaScriptCore_INCLUDE_DIRECTORIES
     ${ECORE_INCLUDE_DIRS}
     ${EINA_INCLUDE_DIRS}
     ${EO_INCLUDE_DIRS}
+    &quot;${WTF_DIR}/wtf/efl&quot;
 )
 add_definitions(-DSTATICALLY_LINKED_WITH_WTF)
 
diff --git a/Source/WebCore/PlatformEfl.cmake b/Source/WebCore/PlatformEfl.cmake
index c1f6f4c..b4bb2d8 100644
--- a/Source/WebCore/PlatformEfl.cmake
+++ b/Source/WebCore/PlatformEfl.cmake
@@ -24,6 +24,7 @@ list(APPEND WebCore_INCLUDE_DIRECTORIES
     &quot;${WEBCORE_DIR}/platform/network/soup&quot;
     &quot;${WEBCORE_DIR}/platform/text/efl&quot;
     &quot;${WEBCORE_DIR}/plugins/efl&quot;
+    &quot;${WTF_DIR}/wtf/efl&quot;
 )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114522</commentid>
    <comment_count>27</comment_count>
      <attachid>258154</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-03 22:23:09 -0700</bug_when>
    <thetext>Created attachment 258154
fix 6: + EFL fix, and fixed a few other bugs from debug code that was accidentally left in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115461</commentid>
    <comment_count>28</comment_count>
      <attachid>258154</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-06 14:43:46 -0700</bug_when>
    <thetext>Comment on attachment 258154
fix 6: + EFL fix, and fixed a few other bugs from debug code that was accidentally left in.

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

As I said in https://bugs.webkit.org/show_bug.cgi?id=147473#c9, I think you should remove the timer ID concept, and exclusively use expiration time. If a wakeup happens before our expiration time, we ignore it. If a wakeup happens after our expiration time, we signal a timeout.

I also think you should remove the isArmed bit. Disarming the timer should just set its expiration time far into the future. That way, the watchdog has only one bit of state: when will I expire?

Since Watchdog accesses Watchdog::Timer and Watchdog::Timer accesses Watchdog, I think that separating them into two classes is confusing, and makes for spaghetti code. I would make them once class.

Watchdog::didFire should split between an inline fast path and a slow path. The fast path should verify that we did not fire. The slow path should reset the did fire bit and perform the other expensive computations.

&gt; Source/JavaScriptCore/runtime/Watchdog.cpp:76
&gt; +    auto steadyTimeSinceEpoch = std::chrono::steady_clock::now().time_since_epoch();
&gt; +    auto currentTime = std::chrono::duration_cast&lt;std::chrono::seconds&gt;(steadyTimeSinceEpoch);
&gt; +    if (m_activeTimerID) {
&gt; +        if ((m_expirationTime &gt; currentTime) &amp;&amp; (m_expirationTime - currentTime &lt;= timeout))
&gt; +            return;
&gt; +    }

This seems wrong in the case where the caller wants to change the time limit to be longer than it used to be. You need to update the expiration time to reflect the new, longer limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115534</commentid>
    <comment_count>29</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-06 16:29:16 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; Comment on attachment 258154 [details]
&gt; fix 6: + EFL fix, and fixed a few other bugs from debug code that was
&gt; accidentally left in.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=258154&amp;action=review
&gt; 
&gt; As I said in https://bugs.webkit.org/show_bug.cgi?id=147473#c9, I think you
&gt; should remove the timer ID concept, and exclusively use expiration time. If
&gt; a wakeup happens before our expiration time, we ignore it. If a wakeup
&gt; happens after our expiration time, we signal a timeout.
&gt; 
&gt; I also think you should remove the isArmed bit. Disarming the timer should
&gt; just set its expiration time far into the future. That way, the watchdog has
&gt; only one bit of state: when will I expire?

Oh, I think I better understand what you’re suggesting now.  I was focusing on the part about when we actually need to start new timers, and missed the significance of doing away with the TimerIDs.  I agree that this is a better approach.  Sorry I didn’t catch on the first time.  Will fix.

I do have to point out one subtle difference from your suggestion that I will have to apply though: if the wakeup happens before our expiration time, I can’t just ignore it if the watchdog is not disarmed.  I will need to start a new timer for the balance of the time in m_limit.  This is because dispatchAfter() triggers wakeups based on wall clock / monotonic time, and definitely no CPU time.  It is, after all, triggered by a timer on the dispatched thread, not a timer on the JS thread which we’re trying to keep to a CPU time limit.  Hence, I have to keep track of more than just one time value.  This detail is probably why you didn’t get what I’m doing in Source/JavaScriptCore/runtime/Watchdog.cpp:76 below.

Based on this, I think I should also choose more descriptive names for the Watchdog fields.

&gt; Since Watchdog accesses Watchdog::Timer and Watchdog::Timer accesses
&gt; Watchdog, I think that separating them into two classes is confusing, and
&gt; makes for spaghetti code. I would make them once class.

I debated about that, but opted to keep Timer to minimize code change.  But in the end, I’m not sure it was worth it anyway.  Will fix as you ask.

&gt; Watchdog::didFire should split between an inline fast path and a slow path.
&gt; The fast path should verify that we did not fire. The slow path should reset
&gt; the did fire bit and perform the other expensive computations.

This completely slipped my mind.  Will fix.

&gt; &gt; Source/JavaScriptCore/runtime/Watchdog.cpp:76
&gt; &gt; +    auto steadyTimeSinceEpoch = std::chrono::steady_clock::now().time_since_epoch();
&gt; &gt; +    auto currentTime = std::chrono::duration_cast&lt;std::chrono::seconds&gt;(steadyTimeSinceEpoch);
&gt; &gt; +    if (m_activeTimerID) {
&gt; &gt; +        if ((m_expirationTime &gt; currentTime) &amp;&amp; (m_expirationTime - currentTime &lt;= timeout))
&gt; &gt; +            return;
&gt; &gt; +    }
&gt; 
&gt; This seems wrong in the case where the caller wants to change the time limit
&gt; to be longer than it used to be. You need to update the expiration time to
&gt; reflect the new, longer limit.

No, this is correct.  m_expirationTime indicates when the active timer is expected to expire.  m_limit indicates the amount of CPU time we want to allow the JS code to run.  If the active timer will expire before the amount of time allowed by m_limit, we’ll just start a new timer to make up the difference.  Hence, if the active timer claims that it will expire before our estimated timeout, we just leave it be.  For well behave JS code, there’s a high probability that we’ll disarm the watchdog before the active timer expires anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115543</commentid>
    <comment_count>30</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-06 16:36:57 -0700</bug_when>
    <thetext>&gt; I do have to point out one subtle difference from your suggestion that I
&gt; will have to apply though: if the wakeup happens before our expiration time,
&gt; I can’t just ignore it if the watchdog is not disarmed.  I will need to
&gt; start a new timer for the balance of the time in m_limit.  This is because
&gt; dispatchAfter() triggers wakeups based on wall clock / monotonic time, and
&gt; definitely no CPU time.  It is, after all, triggered by a timer on the
&gt; dispatched thread, not a timer on the JS thread which we’re trying to keep
&gt; to a CPU time limit.  Hence, I have to keep track of more than just one time
&gt; value.  This detail is probably why you didn’t get what I’m doing in
&gt; Source/JavaScriptCore/runtime/Watchdog.cpp:76 below.

I suggest keeping a wall clock expiration time and a CPU expiration time. 

When our dispatchAfter calls us back, check against wall clock expiration, and do what I said above.

If we have hit our expected wall clock expiration, then check against CPU expiration and either (a) signal a timeout or (b) update wall clock expiration and dispatchAfter again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115867</commentid>
    <comment_count>31</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-07 13:43:17 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; I also think you should remove the isArmed bit. Disarming the timer should
&gt; just set its expiration time far into the future. That way, the watchdog has
&gt; only one bit of state: when will I expire?

Regarding the isArmed state, after looking at the code, I realized that it is still needed.  Here’s why: I need to track whether VM re-entry count.  The watchdog should only be armed (where we set the expiration time) on first entry into the VM, and disarmed (where we clear the expiration time) when the re-entry count reaches 0.

If the client calls Watchdog::setTimeLimit() after we have entered the VM (i.e. the watchdog should be armed), we’ll set the expiration time immediately.  An example of this is during the watchdog timeout callback to the client, where the client may set a new watchdog time limit or reuse the existing one.

If the client calls Watchdog::setTimeLimit() before entering the VM (i.e. the watchdog is not armed yet), then we need to defer computing the expiration time until we actually enter the VM (when we arm the watchdog).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115900</commentid>
    <comment_count>32</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-07 15:25:58 -0700</bug_when>
    <thetext>&gt; Regarding the isArmed state, after looking at the code, I realized that it
&gt; is still needed.  Here’s why: I need to track whether VM re-entry count. 
&gt; The watchdog should only be armed (where we set the expiration time) on
&gt; first entry into the VM, and disarmed (where we clear the expiration time)
&gt; when the re-entry count reaches 0.

This doesn&apos;t sound like an isArmed state.

&gt; If the client calls Watchdog::setTimeLimit() after we have entered the VM
&gt; (i.e. the watchdog should be armed), we’ll set the expiration time
&gt; immediately.  An example of this is during the watchdog timeout callback to
&gt; the client, where the client may set a new watchdog time limit or reuse the
&gt; existing one.

This sounds like an update to the wall clock deadline.

&gt; If the client calls Watchdog::setTimeLimit() before entering the VM (i.e.
&gt; the watchdog is not armed yet), then we need to defer computing the
&gt; expiration time until we actually enter the VM (when we arm the watchdog).

This sounds like a time limit data member.

So, setTimeLimit should update a time limit data member, check if JavaScript is currently executing, and if so, start a timer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115940</commentid>
    <comment_count>33</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-07 17:12:28 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; &gt; Regarding the isArmed state, after looking at the code, I realized that it
&gt; &gt; is still needed.  Here’s why: I need to track whether VM re-entry count. 
&gt; &gt; The watchdog should only be armed (where we set the expiration time) on
&gt; &gt; first entry into the VM, and disarmed (where we clear the expiration time)
&gt; &gt; when the re-entry count reaches 0.
&gt; 
&gt; This doesn&apos;t sound like an isArmed state.

Sounds like your beef is with the use of the term “arm”, which I agree is not the best choice.  So, let’s clarify: the watchdog should only be started if both of the following conditions (or “states” as I used to call them) are true:

1. the user has set a time limit.
   I current called this state “enabled”.
   I will rename this state to “hasTimeLimit”.

2. execution has entered the VM.
   I currently called this state “armed”, mostly because “enabled” was already in use, and I was grasping for another term which sort of means the same thing.  The idea of “arm” came from the fact that we do this every time we enter the VM.  Hence, at VM entry (or re-entry), we tell the watchdog to arm itself (with the understood condition that it will only do so if it is “enabled”).  I agree that this may not be the best choice.
   I will renamed this state to “hasEnteredVM”.

I presume you’ll be happier with these terms: “hasTimeLimit” and “hasEnteredVM”?

&gt; &gt; If the client calls Watchdog::setTimeLimit() after we have entered the VM
&gt; &gt; (i.e. the watchdog should be armed), we’ll set the expiration time
&gt; &gt; immediately.  An example of this is during the watchdog timeout callback to
&gt; &gt; the client, where the client may set a new watchdog time limit or reuse the
&gt; &gt; existing one.
&gt; 
&gt; This sounds like an update to the wall clock deadline.

Actually, it’s the CPU clock deadline that I need to update, and yes, I’m already doing that.

&gt; &gt; If the client calls Watchdog::setTimeLimit() before entering the VM (i.e.
&gt; &gt; the watchdog is not armed yet), then we need to defer computing the
&gt; &gt; expiration time until we actually enter the VM (when we arm the watchdog).
&gt; 
&gt; This sounds like a time limit data member.
&gt; 
&gt; So, setTimeLimit should update a time limit data member, check if JavaScript
&gt; is currently executing, and if so, start a timer.

Yes, I am already doing this.  I check for whether “JavaScript is currently executing” by checking my previously named “armed” state.  I will now check that “hasEnteredVM” is true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116265</commentid>
    <comment_count>34</comment_count>
      <attachid>258629</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-10 11:51:55 -0700</bug_when>
    <thetext>Created attachment 258629
fix 7: no more timerID, no more ARMed state, no more WatchdogScope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116266</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-10 11:54:46 -0700</bug_when>
    <thetext>Attachment 258629 did not pass style-queue:


ERROR: Source/JavaScriptCore/ChangeLog:32:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/runtime/Watchdog.cpp:35:  Watchdog::NO_TIMEOUT is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/runtime/Watchdog.cpp:147:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/runtime/Watchdog.cpp:162:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/runtime/Watchdog.h:72:  NO_TIMEOUT is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/runtime/Watchdog.h:102:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 6 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116271</commentid>
    <comment_count>36</comment_count>
      <attachid>258629</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-10 11:58:57 -0700</bug_when>
    <thetext>Comment on attachment 258629
fix 7: no more timerID, no more ARMed state, no more WatchdogScope.

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

&gt; Source/JavaScriptCore/ChangeLog:32
&gt; +		   If m_cpuTimeDeadline has been reached, the watchdog is considered to have fired.

Tab in whitespace.  Will fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116274</commentid>
    <comment_count>37</comment_count>
      <attachid>258632</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-10 12:05:07 -0700</bug_when>
    <thetext>Created attachment 258632
fix 8: fix style issues.

There a few remaining style complaints about the use of NO_TIMEOUT as a constant, and the space in std::function&lt;void ()&gt;.  These are intentional because we do use capital letters and underscores for constants, and the std::function&lt;void ()&gt; is a pre-existing pattern in WorkQueue.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116276</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-10 12:07:49 -0700</bug_when>
    <thetext>Attachment 258632 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/Watchdog.cpp:35:  Watchdog::NO_TIMEOUT is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/runtime/Watchdog.h:72:  NO_TIMEOUT is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/runtime/Watchdog.h:102:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 3 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116780</commentid>
    <comment_count>39</comment_count>
      <attachid>258632</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-11 16:34:03 -0700</bug_when>
    <thetext>Comment on attachment 258632
fix 8: fix style issues.

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:19
&gt; +           Why do we need 2 time deadlines: m_cpuTimeDeadline and m_currentMonotonicTimeDeadline?

Let&apos;s call this m_cpuDeadline and m_wallClockDeadline.

Deadline implies time, so we don&apos;t need time in the name.

Monotonic only means &quot;increasing&quot;, so it does not explain its difference from CPU, which is also an increasing measurement of time.

&gt; Source/JavaScriptCore/ChangeLog:45
&gt; +           timer.  All other wake ups is considered to be spurious and will be ignored.

s/is/are/

&gt; Source/JavaScriptCore/API/JSContextRef.cpp:125
&gt; +        vm.watchdog-&gt;setTimeLimit(vm, Watchdog::NO_TIMEOUT);

WebKit style is &quot;noTimeout&quot;.

The function here is &quot;set time limit&quot;. Its input should be a &quot;time limit&quot;. So, let&apos;s name the constant &quot;noTimeLimit&quot;.

&gt; Source/JavaScriptCore/runtime/Watchdog.cpp:37
&gt; +static std::chrono::microseconds currentMonotonicTime()

Let&apos;s call this currentWallClockTime.

&gt; Source/JavaScriptCore/runtime/Watchdog.cpp:46
&gt; +    , m_timeoutPeriod(NO_TIMEOUT)

Since this is set by setTimeLimit, and compared to noTimeLimit, let&apos;s call it m_timeLimit.

&gt; Source/JavaScriptCore/runtime/Watchdog.cpp:55
&gt; +    auto watchdog = this;
&gt; +    m_timerHandler = [watchdog] {

You can just capture [this] instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116875</commentid>
    <comment_count>40</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-11 22:25:34 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to comment #39)
&gt; &gt; Source/JavaScriptCore/ChangeLog:19
&gt; &gt; +           Why do we need 2 time deadlines: m_cpuTimeDeadline and m_currentMonotonicTimeDeadline?
&gt; 
&gt; Let&apos;s call this m_cpuDeadline and m_wallClockDeadline.
&gt; 
&gt; Deadline implies time, so we don&apos;t need time in the name.
&gt; 
&gt; Monotonic only means &quot;increasing&quot;, so it does not explain its difference
&gt; from CPU, which is also an increasing measurement of time.

Actually, I did mean increasing time.  When I think of wall clock time, I think of the clock on the wall that a user can modify (or day light savings time can kick in and change) which potentially interferes with my measurements.  Instead, I want the monotonically increasing clock time.  The std::chrono spec (http://en.cppreference.com/w/cpp/chrono) also uses the terms wall clock time (std:chrono::system_clock) and monotonic time (std:chrono::steady_clock) similarly.

But for our purpose here, wall clock time conveys the contrast from CPU time well enough.  I’ll change the names as you suggest.

I’ll also make all the other fixes you requested, and fix up variable names and comments to be consistent with the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116885</commentid>
    <comment_count>41</comment_count>
      <attachid>258806</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-11 22:49:01 -0700</bug_when>
    <thetext>Created attachment 258806
patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116889</commentid>
    <comment_count>42</comment_count>
      <attachid>258807</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-11 22:51:42 -0700</bug_when>
    <thetext>Created attachment 258807
patch for landing v2: fix up some comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116893</commentid>
    <comment_count>43</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-11 22:57:54 -0700</bug_when>
    <thetext>Landed in r188329: &lt;http://trac.webkit.org/r188329&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116983</commentid>
    <comment_count>44</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-12 11:11:04 -0700</bug_when>
    <thetext>(In reply to comment #40)
&gt; When I think of wall clock time, I think of the clock on the wall that a user can modify

In CS, &quot;wall clock time&quot; is a term of art for real time in contrast to CPU time: &lt;https://en.wikipedia.org/wiki/Wall-clock_time&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257092</attachid>
            <date>2015-07-20 07:13:52 -0700</date>
            <delta_ts>2015-07-22 06:12:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147107-20150720151238.patch</filename>
            <type>text/plain</type>
            <size>9435</size>
            <attacher name="Pascal Jacquemart">p.jacquemart</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZjU1YjcxMzAxYWE4MDk1YWE4M2MwNmRhM2RkZWM1MzNkNDVmZWU1Li4zODE4NmMxYjgzODEwZjY3
MjcxNWJlMmMwMmZjMGQxNGFkODcwNGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxNS0wNy0yMCAgUGFzY2FsIEphY3F1ZW1hcnQgIDxwLmphY3F1ZW1hcnRA
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRkaW5nIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9y
IEphdmFTY3JpcHQgd2F0Y2hkb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NzEwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbHkgb24gQysrMTEgdGhyZWFkaW5nIHNvIGl0IHNob3VsZCB3b3JrIGZv
ciBhbGwgcGxhdGZvcm1zCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6Cisg
ICAgICAgICogcnVudGltZS9XYXRjaGRvZ0dlbmVyaWMuY3BwOiBSZW5hbWVkIGZyb20gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2dOb25lLmNwcC4KKyAgICAgICAgKEpTQzo6
V2F0Y2hkb2c6OmluaXRUaW1lcik6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpkZXN0cm95VGlt
ZXIpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6cnVuKToKKyAgICAgICAgKEpTQzo6V2F0Y2hk
b2c6OnN0YXJ0VGltZXIpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3RvcFRpbWVyKToKKwog
MjAxNS0wNy0yMCAgUGVyIEFybmUgVm9sbGFuICA8cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBkZWJ1ZyBidWlsZCBmaXggYWZ0ZXIgcjE4NzAyMC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NDMyNmQ5YTEwMjQ4YjE0MDdiYmQ3OTI1MDdiOWY4
MWQwMTE4M2FjLi5iZWIyNWFiMmJkMjI3MDJmZWUzMmY4MmVjNTNlZTQ2ZmYzODhlMmMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02MDAsNyArNjAwLDcgQEAgc2V0KEph
dmFTY3JpcHRDb3JlX1JVTlRJTUVfU09VUkNFUwogICAgIHJ1bnRpbWUvVk1FbnRyeVNjb3BlLmNw
cAogICAgIHJ1bnRpbWUvVmFyT2Zmc2V0LmNwcAogICAgIHJ1bnRpbWUvV2F0Y2hkb2cuY3BwCi0g
ICAgcnVudGltZS9XYXRjaGRvZ05vbmUuY3BwCisgICAgcnVudGltZS9XYXRjaGRvZ0dlbmVyaWMu
Y3BwCiAgICAgcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCiAgICAgcnVudGltZS9XZWFr
TWFwRGF0YS5jcHAKICAgICBydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCA3NGVmYTlkMzQ1ZDBjZDA3YzZkMzg0MGY5
MmRhMDk4MmUwZjQ2NDU3Li44NGFhOGJjMzVjODJiOTIwODZkZjk0NWE3MmNiMDRmZTAyNGIyZjg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKQEAgLTg1Niw3ICs4NTYs
NyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxWTUVudHJ5U2NvcGUuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxWYXJPZmZzZXQuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxXYXRjaGRvZy5jcHAiIC8+Ci0g
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nTm9uZS5jcHAiIC8+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nR2VuZXJpYy5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtNYXBDb25zdHJ1Y3Rvci5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtNYXBEYXRhLmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2Vha01hcFByb3RvdHlw
ZS5jcHAiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZp
bHRlcnMKaW5kZXggYWFmMzI1NjI5NjE0M2Y3MWJjZTU2ZGI5ZWEzYzUyM2EyY2ExYTQzOC4uYmUx
YzQ4NjA5ZWE5OWYzY2MzMTEwNWY5NzYxZjI1Mzk4NzExZTQxMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4
cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtODk3LDcgKzg5Nyw3IEBA
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nLmNwcCI+CiAgICAg
ICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hkb2dOb25lLmNwcCI+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nR2VuZXJpYy5jcHAiPgogICAgICAgPEZpbHRl
cj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlx0b29sc1xDb2RlUHJvZmlsZS5jcHAiPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dhdGNoZG9nLmgKaW5kZXggOTFkOGQ2NDFmMDVmYjY3ZjY4ODIxYjhkYmJiOWJiODc4MDIw
Mzg1Yy4uZDBlZGEzNGZlYzJmOTAxZmMwNjZhNjQ5ZDMzNTdkYjg2NzFlMDY2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5oCkBAIC0yOCw2ICsyOCwxMSBAQAogCiAj
aWYgT1MoREFSV0lOKQogI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+ICAgIAorI2Vsc2UK
KyNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1
ZGUgPG11dGV4PgorI2luY2x1ZGUgPHRocmVhZD4KICNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsK
QEAgLTczLDYgKzc4LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFRpbWVyKHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHMgbGltaXQpOwogICAgIHZvaWQgc3RvcFRpbWVyKCk7CiAKKyNpZiAh
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorICAgIHZvaWQgcnVuKCk7CisjZW5kaWYK
KwogICAgIC8vIG1fdGltZXJEaWRGaXJlIChhYm92ZSkgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRp
bWVyIGZpcmVkLiBUaGUgV2F0Y2hkb2cKICAgICAvLyBzdGlsbCBuZWVkcyB0byBjaGVjayBpZiB0
aGUgYWxsb3dlZCBDUFUgdGltZSBoYXMgZWxhcHNlZC4gSWYgc28sIHRoZW4KICAgICAvLyB0aGUg
V2F0Y2hkb2cgZmlyZXMgYW5kIG1fZGlkRmlyZSB3aWxsIGJlIHNldC4KQEAgLTk1LDYgKzEwNCwx
MyBAQCBwcml2YXRlOgogI2lmIE9TKERBUldJTikgJiYgIVBMQVRGT1JNKEVGTCkgJiYgIVBMQVRG
T1JNKEdUSykKICAgICBkaXNwYXRjaF9xdWV1ZV90IG1fcXVldWU7CiAgICAgZGlzcGF0Y2hfc291
cmNlX3QgbV90aW1lcjsKKyNlbHNlCisgICAgc3RkOjptdXRleCBtX211dGV4OworICAgIHN0ZDo6
dGhyZWFkIG1fdGhyZWFkOworICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1fY29uZDsKKyAg
ICBzdGQ6OmNocm9ubzo6dGltZV9wb2ludDxzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrPiBtX3Rp
bWVvdXQ7CisgICAgYm9vbCBtX3J1bm5pbmc7CisgICAgYm9vbCBtX2FjdGl2ZTsKICNlbmRpZgog
CiAgICAgZnJpZW5kIGNsYXNzIFdhdGNoZG9nOjpTY29wZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nR2VuZXJpYy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ0dlbmVyaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NGM2NDQ3
OTI2MDQ2NTdjZjJhNjMwMDcxMjJkNGYyZWI3ODJmMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ0dlbmVyaWMuY3BwCkBAIC0wLDAgKzEs
NzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCisKK25hbWVzcGFjZSBKU0Mg
eworCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCit2b2lkIFdhdGNoZG9nOjppbml0VGltZXIoKQor
eworICAgIHVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobV9tdXRleCk7CisgICAgbV9ydW5u
aW5nID0gdHJ1ZTsKKyAgICBtX2FjdGl2ZSA9IGZhbHNlOworICAgIG1fdGhyZWFkID0gdGhyZWFk
KGJpbmQoJldhdGNoZG9nOjpydW4sIHRoaXMpKTsKK30KKwordm9pZCBXYXRjaGRvZzo6ZGVzdHJv
eVRpbWVyKCkKK3sKKyAgICBtX3J1bm5pbmcgPSBmYWxzZTsKKyAgICBtX2FjdGl2ZSA9IGZhbHNl
OworICAgIG1fY29uZC5ub3RpZnlfYWxsKCk7CisgICAgbV9tdXRleC51bmxvY2soKTsKKyAgICBt
X3RocmVhZC5qb2luKCk7Cit9CisKK3ZvaWQgV2F0Y2hkb2c6OnJ1bigpCit7CisgICAgdW5pcXVl
X2xvY2s8bXV0ZXg+IGxvY2sobV9tdXRleCk7CisgICAgd2hpbGUgKG1fcnVubmluZykgeworICAg
ICAgICBpZiAobV9hY3RpdmUpIHsKKyAgICAgICAgICAgIGF1dG8gbm93ID0gY2hyb25vOjpzdGVh
ZHlfY2xvY2s6Om5vdygpOworICAgICAgICAgICAgaWYgKG5vdyA+IG1fdGltZW91dCkgeworICAg
ICAgICAgICAgICAgIG1fdGltZXJEaWRGaXJlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBtX2Fj
dGl2ZSA9IGZhbHNlOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgbV9jb25k
LndhaXRfdW50aWwobG9jaywgbV90aW1lb3V0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBtX2NvbmQud2FpdChsb2NrKTsKKyAgICB9Cit9CisKK3ZvaWQgV2F0Y2hkb2c6OnN0YXJ0VGlt
ZXIoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBsaW1pdCkKK3sKKyAgICBtX3RpbWVvdXQgPSBj
aHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgKyBsaW1pdDsKKyAgICBtX2FjdGl2ZSA9IHRydWU7
CisgICAgbV9jb25kLm5vdGlmeV9hbGwoKTsKK30KKwordm9pZCBXYXRjaGRvZzo6c3RvcFRpbWVy
KCkKK3sKKyAgICBtX2FjdGl2ZSA9IGZhbHNlOworICAgIG1fY29uZC5ub3RpZnlfYWxsKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV2F0Y2hkb2dOb25lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dhdGNoZG9nTm9uZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3YjdjZDU3
YTYxN2JmMWY5NTU3MDdhMzQ0ZDY3MDkyMjE2NDM1NTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0
Y2hkb2dOb25lLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIldhdGNoZG9nLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi0vLyBUaGlzIGlzIGEg
c3R1YiBmb3IgcGxhdGZvcm1zIHRoYXQgaGF2ZSBub3QgaW1wbGVtZW50ZWQgdGhpcyBmdW5jdGlv
bmFsaXR5LgotLy8gSW4gdGhpcyBjYXNlLCB0aGUgcGxhdGZvcm0gdGltZXIgaGVyZSBuZXZlciBm
aXJlcy4KLQotdm9pZCBXYXRjaGRvZzo6aW5pdFRpbWVyKCkKLXsKLX0KLQotdm9pZCBXYXRjaGRv
Zzo6ZGVzdHJveVRpbWVyKCkKLXsKLX0KLQotdm9pZCBXYXRjaGRvZzo6c3RhcnRUaW1lcihzdGQ6
OmNocm9ubzo6bWljcm9zZWNvbmRzKQotewotfQotCi12b2lkIFdhdGNoZG9nOjpzdG9wVGltZXIo
KQotewotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257262</attachid>
            <date>2015-07-22 06:12:58 -0700</date>
            <delta_ts>2015-07-30 07:40:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147107-20150722141143.patch</filename>
            <type>text/plain</type>
            <size>5725</size>
            <attacher name="Pascal Jacquemart">p.jacquemart</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZjU1YjcxMzAxYWE4MDk1YWE4M2MwNmRhM2RkZWM1MzNkNDVmZWU1Li5iMDhkMjlhNjIxMTRmNTUx
YjIxMWIwOWFiNGZlZjY4ZWQ5ZTQzZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNS0wNy0yMiAgUGFzY2FsIEphY3F1ZW1hcnQgIDxwLmphY3F1ZW1hcnRA
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRkaW5nIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9y
IEphdmFTY3JpcHQgd2F0Y2hkb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NzEwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbHkgb24gQysrMTEgdGhyZWFkaW5nIHNvIGl0IHNob3VsZCB3b3JrIGZv
ciBhbGwgcGxhdGZvcm1zCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBy
dW50aW1lL1dhdGNoZG9nLmg6CisgICAgICAgICogcnVudGltZS9XYXRjaGRvZ0dlbmVyaWMuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmluaXRUaW1lcik6CisgICAgICAgIChK
U0M6OldhdGNoZG9nOjpkZXN0cm95VGltZXIpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6cnVu
KToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnN0YXJ0VGltZXIpOgorICAgICAgICAoSlNDOjpX
YXRjaGRvZzo6c3RvcFRpbWVyKToKKwogMjAxNS0wNy0yMCAgUGVyIEFybmUgVm9sbGFuICA8cGVh
dm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBkZWJ1ZyBidWlsZCBmaXggYWZ0
ZXIgcjE4NzAyMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NDMyNmQ5
YTEwMjQ4YjE0MDdiYmQ3OTI1MDdiOWY4MWQwMTE4M2FjLi5iZWIyNWFiMmJkMjI3MDJmZWUzMmY4
MmVjNTNlZTQ2ZmYzODhlMmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC02MDAsNyArNjAwLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1JVTlRJTUVfU09VUkNFUwogICAg
IHJ1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAogICAgIHJ1bnRpbWUvVmFyT2Zmc2V0LmNwcAogICAg
IHJ1bnRpbWUvV2F0Y2hkb2cuY3BwCi0gICAgcnVudGltZS9XYXRjaGRvZ05vbmUuY3BwCisgICAg
cnVudGltZS9XYXRjaGRvZ0dlbmVyaWMuY3BwCiAgICAgcnVudGltZS9XZWFrTWFwQ29uc3RydWN0
b3IuY3BwCiAgICAgcnVudGltZS9XZWFrTWFwRGF0YS5jcHAKICAgICBydW50aW1lL1dlYWtNYXBQ
cm90b3R5cGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
YXRjaGRvZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAppbmRl
eCA5MWQ4ZDY0MWYwNWZiNjdmNjg4MjFiOGRiYmI5YmI4NzgwMjAzODVjLi4yMWRmNTMzNjg1OWQz
OTRjZDMzNzY1ZGUxY2VjYWYzZjRiNDZhMmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9XYXRjaGRvZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dhdGNoZG9nLmgKQEAgLTI4LDYgKzI4LDExIEBACiAKICNpZiBPUyhEQVJXSU4pCiAjaW5j
bHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4gICAgCisjZWxpZiBPUyhMSU5VWCkKKyNpbmNsdWRl
IDxjaHJvbm8+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPG11dGV4
PgorI2luY2x1ZGUgPHRocmVhZD4KICNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTczLDYg
Kzc4LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNy
b3NlY29uZHMgbGltaXQpOwogICAgIHZvaWQgc3RvcFRpbWVyKCk7CiAKKyNpZiBPUyhMSU5VWCkK
KyAgICB2b2lkIHJ1bigpOworI2VuZGlmCisKICAgICAvLyBtX3RpbWVyRGlkRmlyZSAoYWJvdmUp
IGluZGljYXRlcyB3aGV0aGVyIHRoZSB0aW1lciBmaXJlZC4gVGhlIFdhdGNoZG9nCiAgICAgLy8g
c3RpbGwgbmVlZHMgdG8gY2hlY2sgaWYgdGhlIGFsbG93ZWQgQ1BVIHRpbWUgaGFzIGVsYXBzZWQu
IElmIHNvLCB0aGVuCiAgICAgLy8gdGhlIFdhdGNoZG9nIGZpcmVzIGFuZCBtX2RpZEZpcmUgd2ls
bCBiZSBzZXQuCkBAIC05Miw5ICsxMDEsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lkKiBtX2NhbGxi
YWNrRGF0YTE7CiAgICAgdm9pZCogbV9jYWxsYmFja0RhdGEyOwogCi0jaWYgT1MoREFSV0lOKSAm
JiAhUExBVEZPUk0oRUZMKSAmJiAhUExBVEZPUk0oR1RLKQorI2lmIE9TKERBUldJTikKICAgICBk
aXNwYXRjaF9xdWV1ZV90IG1fcXVldWU7CiAgICAgZGlzcGF0Y2hfc291cmNlX3QgbV90aW1lcjsK
KyNlbGlmIE9TKExJTlVYKQorICAgIHN0ZDo6bXV0ZXggbV9tdXRleDsKKyAgICBzdGQ6OnRocmVh
ZCBtX3RocmVhZDsKKyAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBtX2NvbmQ7CisgICAgc3Rk
OjpjaHJvbm86OnRpbWVfcG9pbnQ8c3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jaz4gbV90aW1lb3V0
OworICAgIGJvb2wgbV9ydW5uaW5nOworICAgIGJvb2wgbV9hY3RpdmU7CiAjZW5kaWYKIAogICAg
IGZyaWVuZCBjbGFzcyBXYXRjaGRvZzo6U2NvcGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ0dlbmVyaWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2F0Y2hkb2dHZW5lcmljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjA2NjM1YzVmMGUz
MDg0MzZiMzJjMjc0MmVlNTliOWQwYmUwZjEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2dHZW5lcmljLmNwcApAQCAtMCwwICsxLDgwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKKworbmFtZXNwYWNlIEpT
QyB7CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK3ZvaWQgV2F0Y2hkb2c6OmluaXRUaW1lcigp
Cit7CisgICAgdW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtX211dGV4KTsKKyAgICBtX3J1
bm5pbmcgPSB0cnVlOworICAgIG1fYWN0aXZlID0gZmFsc2U7CisgICAgbV90aHJlYWQgPSB0aHJl
YWQoYmluZCgmV2F0Y2hkb2c6OnJ1biwgdGhpcykpOworfQorCit2b2lkIFdhdGNoZG9nOjpkZXN0
cm95VGltZXIoKQoreworICAgIG1fcnVubmluZyA9IGZhbHNlOworICAgIG1fYWN0aXZlID0gZmFs
c2U7CisgICAgbV9jb25kLm5vdGlmeV9hbGwoKTsKKyAgICBtX211dGV4LnVubG9jaygpOworICAg
IG1fdGhyZWFkLmpvaW4oKTsKK30KKwordm9pZCBXYXRjaGRvZzo6cnVuKCkKK3sKKyAgICB1bmlx
dWVfbG9jazxtdXRleD4gbG9jayhtX211dGV4KTsKKyAgICB3aGlsZSAobV9ydW5uaW5nKSB7Cisg
ICAgICAgIGlmIChtX2FjdGl2ZSkgeworICAgICAgICAgICAgYXV0byBub3cgPSBjaHJvbm86OnN0
ZWFkeV9jbG9jazo6bm93KCk7CisgICAgICAgICAgICBpZiAobm93ID4gbV90aW1lb3V0KSB7Cisg
ICAgICAgICAgICAgICAgbV90aW1lckRpZEZpcmUgPSB0cnVlOworICAgICAgICAgICAgICAgIG1f
YWN0aXZlID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBtX2Nv
bmQud2FpdF91bnRpbChsb2NrLCBtX3RpbWVvdXQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIG1fY29uZC53YWl0KGxvY2spOworICAgIH0KK30KKwordm9pZCBXYXRjaGRvZzo6c3RhcnRU
aW1lcihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0KQoreworICAgIG1fdGltZW91dCA9
IGNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSArIGxpbWl0OworICAgIG1fYWN0aXZlID0gdHJ1
ZTsKKyAgICBtX2NvbmQubm90aWZ5X2FsbCgpOworfQorCit2b2lkIFdhdGNoZG9nOjpzdG9wVGlt
ZXIoKQoreworICAgIG1fYWN0aXZlID0gZmFsc2U7CisgICAgbV9jb25kLm5vdGlmeV9hbGwoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgSlNDCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257832</attachid>
            <date>2015-07-30 07:40:49 -0700</date>
            <delta_ts>2015-08-03 14:04:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147107-20150730154048.patch</filename>
            <type>text/plain</type>
            <size>10389</size>
            <attacher name="Pascal Jacquemart">p.jacquemart</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZjU1YjcxMzAxYWE4MDk1YWE4M2MwNmRhM2RkZWM1MzNkNDVmZWU1Li4wNTU0M2U2ZDkxMzdlNjQy
MjZhNjkwMmViYzM4ZmM2ZGQxMzExY2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxNS0wNy0zMCAgUGFzY2FsIEphY3F1ZW1hcnQgIDxwLmphY3F1ZW1hcnRA
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRkaW5nIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9y
IEphdmFTY3JpcHQgd2F0Y2hkb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NzEwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogcnVudGltZS9XYXRjaGRv
Zy5oOgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2dHZW5lcmljLmNwcDogQWRkZWQuCisgICAg
ICAgIChKU0M6OldhdGNoZG9nOjppbml0VGltZXIpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6
ZGVzdHJveVRpbWVyKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnJ1bik6CisgICAgICAgIChK
U0M6OldhdGNoZG9nOjpzdGFydFRpbWVyKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnN0b3BU
aW1lcik6CisKKzIwMTUtMDctMjIgIFBhc2NhbCBKYWNxdWVtYXJ0ICA8cC5qYWNxdWVtYXJ0QHNh
bXN1bmcuY29tPgorCisgICAgICAgIEFkZGluZyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBK
YXZhU2NyaXB0IHdhdGNoZG9nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDcxMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZWx5IG9uIEMrKzExIHRocmVhZGluZyBzbyBpdCBzaG91bGQgd29yayBmb3Ig
YWxsIHBsYXRmb3JtcworCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogcnVu
dGltZS9XYXRjaGRvZy5oOgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2dHZW5lcmljLmNwcDog
QWRkZWQuCisgICAgICAgIChKU0M6OldhdGNoZG9nOjppbml0VGltZXIpOgorICAgICAgICAoSlND
OjpXYXRjaGRvZzo6ZGVzdHJveVRpbWVyKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnJ1bik6
CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpzdGFydFRpbWVyKToKKyAgICAgICAgKEpTQzo6V2F0
Y2hkb2c6OnN0b3BUaW1lcik6CisKIDIwMTUtMDctMjAgIFBlciBBcm5lIFZvbGxhbiAgPHBlYXZv
QG91dGxvb2suY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZGVidWcgYnVpbGQgZml4IGFmdGVy
IHIxODcwMjAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmM1MDZhMDkzOGZlYjQzMjVmMWY1ODdkNDk5YmY1NjRj
YzAwYzI1Zi4uODA4YTRmNTA4YmQ1N2Q3MzAxZTk3MTgyNmQ5ZGNjNmNiNDBjZGZjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA3LTMwICBQYXNjYWwgSmFjcXVlbWFydCAgPHAu
amFjcXVlbWFydEBzYW1zdW5nLmNvbT4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRp
b24gKE9PUFMhKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0NzEwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvZXh0ZW5zaW9ucy9leHRlbnNpb25fc2FtcGxl
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfamF2YXNj
cmlwdF9iaW5kaW5nLmNwcDoKKyAgICAgICAgKEVXSzJDb250ZXh0VGVzdFdpdGhFeHRlbnNpb246
Om1lc3NhZ2VSZWNlaXZlZFdhdGNoZG9nQ2FsbGJhY2spOgorICAgICAgICAoVEVTVF9GKTogTmV3
IHRlc3QgZXhlY3R1dGluZyBhbiBpbmZpbml0ZSBqYXZhU2NyaXB0IGxvb3AKKwogMjAxNS0wNy0x
OSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcGxhY2F0ZSAtV21pc21hdGNoZWQtdGFncyBhZnRlciByMTg3MDExCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTQzMjZkOWExMDI0OGIxNDA3YmJkNzky
NTA3YjlmODFkMDExODNhYy4uYmViMjVhYjJiZDIyNzAyZmVlMzJmODJlYzUzZWU0NmZmMzg4ZTJj
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjAwLDcgKzYwMCw3IEBA
IHNldChKYXZhU2NyaXB0Q29yZV9SVU5USU1FX1NPVVJDRVMKICAgICBydW50aW1lL1ZNRW50cnlT
Y29wZS5jcHAKICAgICBydW50aW1lL1Zhck9mZnNldC5jcHAKICAgICBydW50aW1lL1dhdGNoZG9n
LmNwcAotICAgIHJ1bnRpbWUvV2F0Y2hkb2dOb25lLmNwcAorICAgIHJ1bnRpbWUvV2F0Y2hkb2dH
ZW5lcmljLmNwcAogICAgIHJ1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRp
bWUvV2Vha01hcERhdGEuY3BwCiAgICAgcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmgKaW5kZXggOTFkOGQ2NDFmMDVmYjY3
ZjY4ODIxYjhkYmJiOWJiODc4MDIwMzg1Yy4uMjFkZjUzMzY4NTlkMzk0Y2QzMzc2NWRlMWNlY2Fm
M2Y0YjQ2YTJmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0
Y2hkb2cuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5oCkBA
IC0yOCw2ICsyOCwxMSBAQAogCiAjaWYgT1MoREFSV0lOKQogI2luY2x1ZGUgPGRpc3BhdGNoL2Rp
c3BhdGNoLmg+ICAgIAorI2VsaWYgT1MoTElOVVgpCisjaW5jbHVkZSA8Y2hyb25vPgorI2luY2x1
ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx0aHJl
YWQ+CiAjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC03Myw2ICs3OCwxMCBAQCBwcml2YXRl
OgogICAgIHZvaWQgc3RhcnRUaW1lcihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0KTsK
ICAgICB2b2lkIHN0b3BUaW1lcigpOwogCisjaWYgT1MoTElOVVgpCisgICAgdm9pZCBydW4oKTsK
KyNlbmRpZgorCiAgICAgLy8gbV90aW1lckRpZEZpcmUgKGFib3ZlKSBpbmRpY2F0ZXMgd2hldGhl
ciB0aGUgdGltZXIgZmlyZWQuIFRoZSBXYXRjaGRvZwogICAgIC8vIHN0aWxsIG5lZWRzIHRvIGNo
ZWNrIGlmIHRoZSBhbGxvd2VkIENQVSB0aW1lIGhhcyBlbGFwc2VkLiBJZiBzbywgdGhlbgogICAg
IC8vIHRoZSBXYXRjaGRvZyBmaXJlcyBhbmQgbV9kaWRGaXJlIHdpbGwgYmUgc2V0LgpAQCAtOTIs
OSArMTAxLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCogbV9jYWxsYmFja0RhdGExOwogICAgIHZv
aWQqIG1fY2FsbGJhY2tEYXRhMjsKIAotI2lmIE9TKERBUldJTikgJiYgIVBMQVRGT1JNKEVGTCkg
JiYgIVBMQVRGT1JNKEdUSykKKyNpZiBPUyhEQVJXSU4pCiAgICAgZGlzcGF0Y2hfcXVldWVfdCBt
X3F1ZXVlOwogICAgIGRpc3BhdGNoX3NvdXJjZV90IG1fdGltZXI7CisjZWxpZiBPUyhMSU5VWCkK
KyAgICBzdGQ6Om11dGV4IG1fbXV0ZXg7CisgICAgc3RkOjp0aHJlYWQgbV90aHJlYWQ7CisgICAg
c3RkOjpjb25kaXRpb25fdmFyaWFibGUgbV9jb25kOworICAgIHN0ZDo6Y2hyb25vOjp0aW1lX3Bv
aW50PHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s+IG1fdGltZW91dDsKKyAgICBib29sIG1fcnVu
bmluZzsKKyAgICBib29sIG1fYWN0aXZlOwogI2VuZGlmCiAKICAgICBmcmllbmQgY2xhc3MgV2F0
Y2hkb2c6OlNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2F0Y2hkb2dHZW5lcmljLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNo
ZG9nR2VuZXJpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdkNGVlM2QyNjM2M2M1M2JiNTI0MmFmMzNhNzM2
ZDRmMDFiNzgzYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dhdGNoZG9nR2VuZXJpYy5jcHAKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCisKK25hbWVzcGFjZSBKU0MgeworCit1c2luZyBuYW1l
c3BhY2Ugc3RkOworCit2b2lkIFdhdGNoZG9nOjppbml0VGltZXIoKQoreworICAgIGxvY2tfZ3Vh
cmQ8bXV0ZXg+IGxvY2sobV9tdXRleCk7CisgICAgbV9ydW5uaW5nID0gdHJ1ZTsKKyAgICBtX2Fj
dGl2ZSA9IGZhbHNlOworICAgIG1fdGhyZWFkID0gdGhyZWFkKGJpbmQoJldhdGNoZG9nOjpydW4s
IHRoaXMpKTsKK30KKwordm9pZCBXYXRjaGRvZzo6ZGVzdHJveVRpbWVyKCkKK3sKKyAgICBpZiAo
bV9ydW5uaW5nKSB7CisgICAgICAgIGxvY2tfZ3VhcmQ8bXV0ZXg+IGxvY2sobV9tdXRleCk7Cisg
ICAgICAgIG1fcnVubmluZyA9IGZhbHNlOworICAgICAgICBtX2FjdGl2ZSA9IGZhbHNlOworICAg
ICAgICBtX2NvbmQubm90aWZ5X2FsbCgpOworICAgIH0KKyAgICBtX3RocmVhZC5qb2luKCk7Cit9
CisKK3ZvaWQgV2F0Y2hkb2c6OnJ1bigpCit7CisgICAgdW5pcXVlX2xvY2s8bXV0ZXg+IGxvY2so
bV9tdXRleCk7CisgICAgd2hpbGUgKG1fcnVubmluZykgeworICAgICAgICBpZiAobV9hY3RpdmUp
IHsKKyAgICAgICAgICAgIGF1dG8gbm93ID0gY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwor
ICAgICAgICAgICAgaWYgKG5vdyA+IG1fdGltZW91dCkgeworICAgICAgICAgICAgICAgIG1fdGlt
ZXJEaWRGaXJlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBtX2FjdGl2ZSA9IGZhbHNlOworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgbV9jb25kLndhaXRfdW50aWwobG9jaywg
bV90aW1lb3V0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtX2NvbmQud2FpdChsb2Nr
KTsKKyAgICB9Cit9CisKK3ZvaWQgV2F0Y2hkb2c6OnN0YXJ0VGltZXIoc3RkOjpjaHJvbm86Om1p
Y3Jvc2Vjb25kcyBsaW1pdCkKK3sKKyAgICBsb2NrX2d1YXJkPG11dGV4PiBsb2NrKG1fbXV0ZXgp
OworICAgIG1fdGltZW91dCA9IGNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSArIGxpbWl0Owor
ICAgIG1fYWN0aXZlID0gdHJ1ZTsKKyAgICBtX2NvbmQubm90aWZ5X2FsbCgpOworfQorCit2b2lk
IFdhdGNoZG9nOjpzdG9wVGltZXIoKQoreworICAgIGxvY2tfZ3VhcmQ8bXV0ZXg+IGxvY2sobV9t
dXRleCk7CisgICAgbV9hY3RpdmUgPSBmYWxzZTsKKyAgICBtX2NvbmQubm90aWZ5X2FsbCgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL2V4dGVuc2lvbnMvZXh0ZW5zaW9uX3NhbXBsZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9leHRlbnNpb25zL2V4dGVuc2lvbl9z
YW1wbGUuY3BwCmluZGV4IGY2MDVlZDM2MzVlZjU2NjhjMmNlNzllMGE5MjQyNDQ2YmU0NjYwMTgu
LjQyYjc5NGUxMTc2NjM3MGU5Mzg0MjI3OGYwOTc1Mzc1ZmFiZDc5OGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL2V4dGVuc2lvbnMvZXh0ZW5zaW9u
X3NhbXBsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMv
ZXh0ZW5zaW9ucy9leHRlbnNpb25fc2FtcGxlLmNwcApAQCAtMjQsNiArMjQsNyBAQAogICovCiAK
ICNpbmNsdWRlICJFV2ViS2l0X0V4dGVuc2lvbi5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTQ29udGV4dFJlZlByaXZhdGUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Lmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwpAQCAtNDQsMTMgKzQ1LDI4IEBAIHN0YXRpYyBK
U1ZhbHVlUmVmIGhlbGxvQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK3N0YXRpYyBib29sIHRp
bWVMaW1pdFJlYWNoZWQoSlNDb250ZXh0UmVmIGN0eCwgdm9pZCogY29udGV4dCkKK3sKKyAgICBF
d2tfRXh0ZW5zaW9uKiBleHRlbnNpb24gPSBzdGF0aWNfY2FzdDxFd2tfRXh0ZW5zaW9uKj4oY29u
dGV4dCk7CisKKyAgICBFaW5hX1ZhbHVlKiB2YWx1ZSA9IGVpbmFfdmFsdWVfbmV3KEVJTkFfVkFM
VUVfVFlQRV9TVFJJTkcpOworICAgIGVpbmFfdmFsdWVfc2V0KHZhbHVlLCAiU3RvcHBlZCBieSBK
YXZhU2NyaXB0Q29yZSBXYXRjaGRvZyIpOworICAgIGV3a19leHRlbnNpb25fbWVzc2FnZV9wb3N0
KGV4dGVuc2lvbiwgIndhdGNoZG9nIiwgdmFsdWUpOworICAgIGVpbmFfdmFsdWVfZnJlZSh2YWx1
ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgbG9hZFN0YXJ0ZWQoRXdrX1BhZ2UqIHBh
Z2UsIHZvaWQqIGRhdGEpCiB7CisgICAgRXdrX0V4dGVuc2lvbiogZXh0ZW5zaW9uID0gc3RhdGlj
X2Nhc3Q8RXdrX0V4dGVuc2lvbio+KGRhdGEpOworCisgICAgSlNHbG9iYWxDb250ZXh0UmVmIGNv
bnRleHQgPSBld2tfcGFnZV9qc19nbG9iYWxfY29udGV4dF9nZXQocGFnZSk7CisgICAgSlNDb250
ZXh0R3JvdXBSZWYgY29udGV4dEdyb3VwID0gSlNDb250ZXh0R2V0R3JvdXAoY29udGV4dCk7Cisg
ICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4dEdyb3VwLCAxLjBm
LCB0aW1lTGltaXRSZWFjaGVkLCAodm9pZCAqKWV4dGVuc2lvbik7CisKICAgICBpZiAoIXNfaXNQ
YWdlTG9hZFRlc3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIEV3a19FeHRlbnNpb24qIGV4dGVu
c2lvbiA9IHN0YXRpY19jYXN0PEV3a19FeHRlbnNpb24qPihkYXRhKTsKLQogICAgIEVpbmFfVmFs
dWUqIHZhbHVlID0gZWluYV92YWx1ZV9uZXcoRUlOQV9WQUxVRV9UWVBFX1NUUklORyk7CiAgICAg
ZWluYV92YWx1ZV9zZXQodmFsdWUsICJsb2FkU3RhcnRlZCIpOwogICAgIGV3a19leHRlbnNpb25f
bWVzc2FnZV9wb3N0KGV4dGVuc2lvbiwgImxvYWRUZXN0IiwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2phdmFzY3Jp
cHRfYmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90
ZXN0X2V3azJfamF2YXNjcmlwdF9iaW5kaW5nLmNwcAppbmRleCA4NDJkMDcxZWY2MmFlMGQxYTA2
MzAxY2U2MjE0Yzg1ZTBmZGUyMTRkLi4yYjAyYzk5MGVmZGMyYjA1OTg3MmYzOTVkMTg1ZjAyNWNl
MmFmNjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0
cy90ZXN0X2V3azJfamF2YXNjcmlwdF9iaW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfamF2YXNjcmlwdF9iaW5kaW5nLmNwcApA
QCAtNDQsNiArNDQsMTQgQEAgcHVibGljOgogICAgICAgICAqaGFuZGxlZCA9IHRydWU7CiAgICAg
fQogCisgICAgc3RhdGljIHZvaWQgbWVzc2FnZVJlY2VpdmVkV2F0Y2hkb2dDYWxsYmFjayhjb25z
dCBjaGFyKiBuYW1lLCBjb25zdCBFaW5hX1ZhbHVlKiBib2R5LCB2b2lkKiB1c2VyRGF0YSkKKyAg
ICB7CisgICAgICAgIGJvb2wqIGhhbmRsZWQgPSBzdGF0aWNfY2FzdDxib29sKj4odXNlckRhdGEp
OworICAgICAgICBBU1NFUlRfU1RSRVEoIndhdGNoZG9nIiwgbmFtZSk7CisKKyAgICAgICAgKmhh
bmRsZWQgPSB0cnVlOworICAgIH0KKwogcHJvdGVjdGVkOgogICAgIEVXSzJDb250ZXh0VGVzdFdp
dGhFeHRlbnNpb24oKQogICAgIHsKQEAgLTY2LDMgKzc0LDE4IEBAIFRFU1RfRihFV0syQ29udGV4
dFRlc3RXaXRoRXh0ZW5zaW9uLCBld2tfamF2YXNjcmlwdF9iaW5kaW5nKQogICAgIEFTU0VSVF9U
UlVFKHdhaXRVbnRpbFRydWUocmVjZWl2ZWQsIHRlc3RUaW1lb3V0U2Vjb25kcykpOwogfQogCitU
RVNUX0YoRVdLMkNvbnRleHRUZXN0V2l0aEV4dGVuc2lvbiwgZXdrX2phdmFzY3JpcHRfaW5maW5p
dGVfbG9vcCkKK3sKKyAgICBib29sIHJlY2VpdmVkID0gZmFsc2U7CisgICAgRXdrX0NvbnRleHQq
IGNvbnRleHQgPSBld2tfdmlld19jb250ZXh0X2dldCh3ZWJWaWV3KCkpOworCisgICAgZXdrX2Nv
bnRleHRfbWVzc2FnZV9mcm9tX2V4dGVuc2lvbnNfY2FsbGJhY2tfc2V0KGNvbnRleHQsIG1lc3Nh
Z2VSZWNlaXZlZFdhdGNoZG9nQ2FsbGJhY2ssICZyZWNlaXZlZCk7CisKKyAgICBld2tfdmlld191
cmxfc2V0KHdlYlZpZXcoKSwgZW52aXJvbm1lbnQtPmRlZmF1bHRUZXN0UGFnZVVybCgpKTsKKyAg
ICBBU1NFUlRfVFJVRSh3YWl0VW50aWxMb2FkRmluaXNoZWQoKSk7CisKKyAgICBld2tfdmlld19z
Y3JpcHRfZXhlY3V0ZSh3ZWJWaWV3KCksICJ3aGlsZSgxKSB7fSIsIG51bGxwdHIsIG51bGxwdHIp
OworCisgICAgQVNTRVJUX1RSVUUod2FpdFVudGlsVHJ1ZShyZWNlaXZlZCwgdGVzdFRpbWVvdXRT
ZWNvbmRzKSk7Cit9CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258110</attachid>
            <date>2015-08-03 14:04:50 -0700</date>
            <delta_ts>2015-08-03 15:54:41 -0700</delta_ts>
            <desc>the fix: using WorkQueue.</desc>
            <filename>bug-147107.patch</filename>
            <type>text/plain</type>
            <size>23180</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3NzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBA
CisyMDE1LTA4LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnRhdGlvbiBKYXZhU2NyaXB0IHdhdGNoZG9nIHVzaW5nIFdURjo6V29ya1F1ZXVlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MTA3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlND
b250ZXh0UmVmLmNwcDoKKyAgICAgICAgKGNyZWF0ZVdhdGNoZG9nSWZOZWVkZWQpOgorICAgICAg
ICAoSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRpbWVMaW1pdCk6CisgICAgICAgIC0gTm8g
bmVlZCB0byBjcmVhdGUgdGhlIHdhdGNoZG9nIChpZiBub3QgYWxyZWFkeSBjcmVhdGVkKSBqdXN0
IHRvIGNsZWFyIGl0LgorICAgICAgICAgIElmIHRoZSB3YXRjaGRvZyBpcyBub3QgY3JlYXRlZCB5
ZXQsIHRoZW4gaXQgaXMgZWZmZWN0aXZlbHkgY2xlYXJlZC4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAtIFJlbW92ZSBub3cgdW5uZWVkZWQgV2F0Y2hkb2dNYWMu
Y3BwIGFuZCBXYXRjaGRvZ05vbmUuY3BwLgorCisgICAgICAgICogcnVudGltZS9WTS5oOgorICAg
ICAgICAtIFNlZSBUaW1lcjo6c3RhcnQoKSBmb3Igd2h5IHRoZSBXYXRjaGRvZyBuZWVkcyB0byBi
ZSB0aHJlYWQtc2FmZSByZWYgY291bnRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2cu
Y3BwOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6VGltZXI6OlRpbWVyKToKKyAgICAgICAgKEpT
Qzo6V2F0Y2hkb2c6OlRpbWVyOjpuZXh0VGltZXJJRCk6CisgICAgICAgIC0gV2UgbWF5IHN0b3Ag
dGhlIHRpbWVyIGJlZm9yZSBpdHMgV29ya1F1ZXVlIGNhbGxiYWNrIGhhcyBydW4uICBTaW5jZSBv
bmx5IG9uZQorICAgICAgICAgIHRpbWVyIG1heSBiZSBhY3RpdmUgYXQgYW55IHRpbWUsIGEgbW9u
b3RvbmljYWxseSBpbmNyZWFzaW5nIElEIHNjaGVtZSBnaXZlcyB1cworICAgICAgICAgIGFuIGVh
c3kgd2F5IHRvIGluZGljYXRlIHRvIHRoZSBXb3JrUXVldWUgY2FsbGJhY2sgaWYgaXRzIHRpbWVy
IHNlc3Npb24gaGFzIGJlZW4KKyAgICAgICAgICBjYW5jZWxsZWQuCisKKyAgICAgICAgICBXZSBy
ZXNlcnZlIGlkIDAgdG8gbWVhbiBubyBhY3RpdmUgdGltZXIuICBuZXh0VGltZXJJRCgpIHdpbGwg
ZW5zdXJlIHRoYXQgaXQKKyAgICAgICAgICBuZXZlciByZXR1cm5zIGEgMCBpZC4gIFRoZSBpZCB2
YWx1ZXMgd2lsbCBtb25vdG9uaWNhbGx5IGluY3JlYXNlIG92ZXIgdGhlCisgICAgICAgICAgcmFu
Z2UgZm9yIHNpemUgb2YgdWludHB0cl90LiAgVGhlb3JldGljYWxseSwgdGhlcmUgY2FuIGJlIGFu
IG92ZXJmbG93IGJhY2sgdG8gYQorICAgICAgICAgIGxvdyBpZCB2YWx1ZS4gIEhvd2V2ZXIsIGlu
IHByYWN0aWNlLCBpdCBpcyBpbXBvc3NpYmxlIHRvIGNyZWF0ZSB0aGF0IG1hbnkKKyAgICAgICAg
ICBXb3JrUXVldWUgY2FsbGJhY2tzIChpLmUuIHN0YXJ0IGFuZCBzdG9wIHRoZSB0aW1lcnMgdGhh
dCBtYW55IHRpbWVzIGJlZm9yZSBlYWNoCisgICAgICAgICAgdGltZW91dCBleHBpcmVzKSBpbiBv
cmRlciB0byBoYXZlIHRoaXMgYmUgYSBwcm9ibGVtLgorCisgICAgICAgIChKU0M6OldhdGNoZG9n
OjpUaW1lcjo6c3RhcnQpOgorICAgICAgICAtIFRoZSBXYXRjaGRvZyBpcyBub3cgdGhyZWFkLXNh
ZmUgcmVmIGNvdW50ZWQgYmVjYXVzZSB0aGUgV29ya1F1ZXVlIG1heSBhY2Nlc3MgaXQKKyAgICAg
ICAgICAoZnJvbSBhIGRpZmZlcmVudCB0aHJlYWQpIGV2ZW4gYWZ0ZXIgdGhlIFZNIHNodXRzIGRv
d24uICBXZSBuZWVkIHRvIGtlZXAgaXQKKyAgICAgICAgICBhbGl2ZSB1bnRpbCB0aGUgV29ya1F1
ZXVlIGNhbGxiYWNrIGNvbXBsZXRlcy4KKworICAgICAgICAgIEluIFRpbWVyOjpzdGFydCgpLCB3
ZSdsbCByZWYgdGhlIFdhdGNoZG9nIHRvIGtlZXAgaXQgYWxpdmUgZm9yIGVhY2ggV29ya1F1ZXVl
CisgICAgICAgICAgY2FsbGJhY2sgd2UgZGlzcGF0Y2guICBUaGUgY2FsbGJhY2sgd2lsbCBkZXJl
ZiB0aGUgV2F0Y2hkb2cgYWZ0ZXIgaXQgaXMgZG9uZQorICAgICAgICAgIHdpdGggaXQuICBUaGlz
IGVuc3VyZXMgdGhhdCB0aGUgV2F0Y2hkb2cgaXMga2VwdCBhbGl2ZSB1bnRpbCBhbGwgV29ya1F1
ZXVlCisgICAgICAgICAgY2FsbGJhY2tzIGFyZSBkb25lLgorCisgICAgICAgIChKU0M6OldhdGNo
ZG9nOjpUaW1lcjo6aGFuZGxlRmlyZWRUaW1lcklmTmVlZGVkKToKKyAgICAgICAgKEpTQzo6V2F0
Y2hkb2c6OldhdGNoZG9nKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6On5XYXRjaGRvZyk6Cisg
ICAgICAgIChKU0M6OldhdGNoZG9nOjpzZXRUaW1lTGltaXQpOgorICAgICAgICAoSlNDOjpXYXRj
aGRvZzo6ZGlkRmlyZSk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpkaXNhcm0pOgorICAgICAg
ICAoSlNDOjpXYXRjaGRvZzo6c3RhcnRDb3VudGRvd25JZk5lZWRlZCk6CisgICAgICAgIChKU0M6
OldhdGNoZG9nOjpzdGFydENvdW50ZG93bik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldhdGNo
ZG9nOjpzdG9wQ291bnRkb3duKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dhdGNoZG9n
Lmg6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjp0aW1lckRpZEZpcmVBZGRyZXNzKToKKyAgICAg
ICAgKEpTQzo6V2F0Y2hkb2c6OmlzQXJtZWQpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6VGlt
ZXI6OmlzQWN0aXZlKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OlRpbWVyOjpleHBpcmF0aW9u
VGltZSk6CisgICAgICAgICogcnVudGltZS9XYXRjaGRvZ01hYy5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogcnVudGltZS9XYXRjaGRvZ05vbmUuY3BwOiBSZW1vdmVkLgorCiAyMDE1LTA4LTAzICBL
ZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuIHVw
IHRoZSBuYW1pbmcgZm9yIEFTVCBleHByZXNzaW9uIGdlbmVyYXRpb24uCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYxMSw3ICs2MTEs
NiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUlVOVElNRV9TT1VSQ0VTCiAgICAgcnVudGltZS9WTUVu
dHJ5U2NvcGUuY3BwCiAgICAgcnVudGltZS9WYXJPZmZzZXQuY3BwCiAgICAgcnVudGltZS9XYXRj
aGRvZy5jcHAKLSAgICBydW50aW1lL1dhdGNoZG9nTm9uZS5jcHAKICAgICBydW50aW1lL1dlYWtN
YXBDb25zdHJ1Y3Rvci5jcHAKICAgICBydW50aW1lL1dlYWtNYXBEYXRhLmNwcAogICAgIHJ1bnRp
bWUvV2Vha01hcFByb3RvdHlwZS5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDb250ZXh0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ29udGV4dFJlZi5jcHAJKHJldmlzaW9uIDE4NzY1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBA
QCBzdGF0aWMgYm9vbCBpbnRlcm5hbFNjcmlwdFRpbWVvdXRDYWxsYmFjCiBzdGF0aWMgdm9pZCBj
cmVhdGVXYXRjaGRvZ0lmTmVlZGVkKFZNJiB2bSkKIHsKICAgICBpZiAoIXZtLndhdGNoZG9nKSB7
Ci0gICAgICAgIHZtLndhdGNoZG9nID0gc3RkOjptYWtlX3VuaXF1ZTxXYXRjaGRvZz4oKTsKKyAg
ICAgICAgdm0ud2F0Y2hkb2cgPSBhZG9wdFJlZihuZXcgV2F0Y2hkb2coKSk7CiAKICAgICAgICAg
Ly8gVGhlIExMSU5UIHBlZWtzIGludG8gdGhlIFdhdGNoZG9nIG9iamVjdCBkaXJlY3RseS4gSW4g
b3JkZXIgdG8gZG8gdGhhdCwKICAgICAgICAgLy8gdGhlIExMSU5UIGFzc3VtZXMgdGhhdCB0aGUg
aW50ZXJuYWwgc2hhcGUgb2YgYSBzdGQ6OnVuaXF1ZV9wdHIgaXMgdGhlCkBAIC0xMjAsOSArMTIw
LDggQEAgdm9pZCBKU0NvbnRleHRHcm91cENsZWFyRXhlY3V0aW9uVGltZUxpbQogewogICAgIFZN
JiB2bSA9ICp0b0pTKGdyb3VwKTsKICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKCZ2bSk7Ci0gICAg
Y3JlYXRlV2F0Y2hkb2dJZk5lZWRlZCh2bSk7Ci0gICAgV2F0Y2hkb2cmIHdhdGNoZG9nID0gKnZt
LndhdGNoZG9nOwotICAgIHdhdGNoZG9nLnNldFRpbWVMaW1pdCh2bSwgc3RkOjpjaHJvbm86Om1p
Y3Jvc2Vjb25kczo6bWF4KCkpOworICAgIGlmICh2bS53YXRjaGRvZykKKyAgICAgICAgdm0ud2F0
Y2hkb2ctPnNldFRpbWVMaW1pdCh2bSwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kczo6bWF4KCkp
OwogfQogCiAvLyBGcm9tIHRoZSBBUEkncyBwZXJzcGVjdGl2ZSwgYSBnbG9iYWwgY29udGV4dCBy
ZW1haW5zIGFsaXZlIGlmZiBpdCBoYXMgYmVlbiBKU0dsb2JhbENvbnRleHRSZXRhaW5lZC4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkocmV2aXNpb24gMTg3NjU4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNj
cmlwdENvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtODY1LDcgKzg2NSw2IEBACiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFZNRW50cnlTY29wZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFZhck9mZnNldC5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nLmNwcCIgLz4KLSAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hkb2dOb25lLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2Vha01hcENvbnN0cnVjdG9yLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2Vha01hcERhdGEuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxXZWFrTWFwUHJvdG90eXBlLmNwcCIgLz4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJ
KHJldmlzaW9uIDE4NzY1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpA
QCAtOTMzLDkgKzkzMyw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdh
dGNoZG9nLmNwcCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hkb2dOb25lLmNw
cCI+Ci0gICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHRvb2xzXENvZGVQcm9maWxlLmNwcCI+CiAgICAgICA8
RmlsdGVyPnRvb2xzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTE3MTIsNyArMTcxMiw2IEBACiAJCUZFRDI4N0IyMTVFQzlBNTcwMERBODE2MSAvKiBM
TEludE9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2RlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkVEOTRGMkUxNzFFM0UyMzAw
QkU3N0E0IC8qIFdhdGNoZG9nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFRDk0RjJCMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgKi87
IH07CiAJCUZFRDk0RjJGMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEOTRGMkMxNzFFM0UyMzAwQkU3
N0E0IC8qIFdhdGNoZG9nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJRkVEOTRGMzAxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDk0RjJEMTcx
RTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZ01hYy5jcHAgKi87IH07CiAJCUZFRjA0MDUxMUFBRTY2
MkQwMEJEMjhCMCAvKiBDb21wYXJlQW5kU3dhcFRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVGMDQwNTAxQUFFNjYyRDAwQkQyOEIwIC8qIENv
bXBhcmVBbmRTd2FwVGVzdC5jcHAgKi87IH07CiAJCUZFRjY4MzVFMTc0MzQzQ0MwMEEzMkUyNSAv
KiBKSVRTdHVic0FSTS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkVGNjgzNUExNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkVGNjgzNUYxNzQzNDND
QzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNdjcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZFRjY4MzVCMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FS
TXY3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTM1NTUsNyArMzU1NCw2IEBACiAJCUZFRDI4N0IxMTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9w
Y29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMTEludE9wY29kZS5oOyBw
YXRoID0gbGxpbnQvTExJbnRPcGNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhdGNoZG9nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRkVEOTRGMkMxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhdGNoZG9nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUZFRDk0RjJEMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZ01hYy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXRjaGRvZ01hYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjA0MDUwMUFBRTY2MkQwMEJEMjhCMCAvKiBDb21w
YXJlQW5kU3dhcFRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
Q29tcGFyZUFuZFN3YXBUZXN0LmNwcDsgcGF0aCA9IEFQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRl
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUYwNDA1MjFBQUVDNEVEMDBC
RDI4QjAgLyogQ29tcGFyZUFuZFN3YXBUZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IENvbXBhcmVBbmRTd2FwVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0NvbXBhcmVBbmRT
d2FwVGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUY2ODM1QTE3NDM0M0ND
MDBBMzJFMjUgLyogSklUU3R1YnNBUk0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSklUU3R1YnNBUk0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4ODUsNyAr
NDg4Myw2IEBACiAJCQkJRkU1OTMyQTYxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5o
ICovLAogCQkJCUZFRDk0RjJCMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgKi8sCiAJ
CQkJRkVEOTRGMkMxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi8sCi0JCQkJRkVEOTRG
MkQxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAqLywKIAkJCQkxNEJGQ0U2ODEw
Q0RCMUZDMDAzNjRDQ0UgLyogV2Vha0dDTWFwLmggKi8sCiAJCQkJQUQ4NkE5M0QxQUE0RDg3QzAw
MkZFNzdGIC8qIFdlYWtHQ01hcElubGluZXMuaCAqLywKIAkJCQlBN0NBM0FERDE3REE0MUFFMDA2
NTM4QUYgLyogV2Vha01hcENvbnN0cnVjdG9yLmNwcCAqLywKQEAgLTc3NjksNyArNzc2Niw2IEBA
CiAJCQkJRTE4RTNBNTkwREY5Mjc4QzAwRDkwQjM0IC8qIFZNLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZFNTkzMkE3MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkVEOTRGMkUxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUZFRDk0RjMwMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZ01hYy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3Qjk4RDEzNjFCNjBDRDVGMDAyM0IxQTQgLyogSlNXQVNN
TW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTE5RDI1MTU4NTNDRTAwMDRBNEU3RCAv
KiBXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQ0Y3Mzc3MTcxQ0E2RkIwMEM5
QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5oCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTksNyArMjU5LDcgQEAgcHVibGljOgogICAg
IENsaWVudERhdGEqIGNsaWVudERhdGE7CiAgICAgVk1FbnRyeUZyYW1lKiB0b3BWTUVudHJ5RnJh
bWU7CiAgICAgRXhlY1N0YXRlKiB0b3BDYWxsRnJhbWU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdh
dGNoZG9nPiB3YXRjaGRvZzsKKyAgICBSZWZQdHI8V2F0Y2hkb2c+IHdhdGNoZG9nOwogCiAgICAg
U3Ryb25nPFN0cnVjdHVyZT4gc3RydWN0dXJlU3RydWN0dXJlOwogICAgIFN0cm9uZzxTdHJ1Y3R1
cmU+IHN0cnVjdHVyZVJhcmVEYXRhU3RydWN0dXJlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw3NCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogI2RlZmluZSBOT19MSU1JVCBzdGQ6OmNocm9u
bzo6bWljcm9zZWNvbmRzOjptYXgoKQogCitXYXRjaGRvZzo6VGltZXI6OlRpbWVyKCkKKyAgICA6
IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImpzYy53YXRjaGRvZy5xdWV1ZSIsIFdvcmtRdWV1
ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCit7Cit9CisKK1dhdGNo
ZG9nOjpUaW1lcklEIFdhdGNoZG9nOjpUaW1lcjo6bmV4dFRpbWVySUQoKQoreworICAgIFRpbWVy
SUQgaWQgPSBtX25leHRUaW1lcklEKys7CisgICAgaWYgKCFpZCkKKyAgICAgICAgaWQgPSBtX25l
eHRUaW1lcklEKys7CisgICAgcmV0dXJuIGlkOworfQorCit2b2lkIFdhdGNoZG9nOjpUaW1lcjo6
c3RhcnQoV2F0Y2hkb2cqIHdhdGNoZG9nLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIHRpbWVv
dXQpCit7CisgICAgLy8gV2F0Y2hkb2c6OmRpZEZpcmUoKSBjYW4gaGFuZGxlIHNwdXJpb3VzIHdh
a2VzLCBhbmQgd2lsbCBzdGFydCBhIG5ldyB0aW1lciBmb3IgdGhlIHJlbWFpbmluZworICAgIC8v
IHRpbWUgaWYgdGhlIGxpbWl0IGhhcyBub3QgYmVlbiByZWFjaGVkIHlldC4gSGVuY2UsIGlmIHdl
IGFscmVhZHkgaGF2ZSBhbiBhY3RpdmUgdGltZXIsIGFuZAorICAgIC8vIHRoZSB0aW1lcidzIGV4
cGlyYXRpb24gd2lsbCBvY2N1ciBhdCBvciBiZWZvcmUgdGhlIGRlc2lyZWQgbGltaXQsIHRoZW4g
d2UgY2FuIGp1c3QgbGV0IHRoZQorICAgIC8vIGV4aXN0aW5nIHRpbWVyIGV4cGlyZSBuYXR1cmFs
bHkgYW5kIGhhbmRsZSBpdCB0aGUgc2FtZSB3YXkgd2UgaGFuZGxlIHNwdXJpb3VzIHdha2VzLgor
ICAgIC8vCisgICAgLy8gVGhpcyBhbGxvd3MgdXMgdG86CisgICAgLy8KKyAgICAvLyAxLiBtaW5p
bWl6ZSB0aGUgbnVtYmVyIG9mIHRpbWVyIGluc3RhbmNlcyB3ZSBoYXZlIHF1ZXVlZCBpbiB0aGUg
d29ya3F1ZXVlIGF0IHRoZSBzYW1lIHRpbWUKKyAgICAvLyAgICAoaWRlYWxseSBvbmx5IDEgb3Ig
MCkuIExlc3MgcGVhayBtZW1vcnkgdXNhZ2UuCisgICAgLy8KKyAgICAvLyAyLiBtaW5pbWl6ZSB0
aGUgZnJlcXVlbmN5IG9mIGluc3RhbnRpYXRpbmcgdGltZXIgaW5zdGFuY2VzLiBUaGlzIGlzIGJl
Y2F1c2Ugd2VsbCBiZWhhdmVkIEpTCisgICAgLy8gICAgY29kZSB3aWxsIHRlbmQgdG8gZW50ZXIg
YW5kIGV4aXQgdGhlIFZNIG1hbnkgdGltZXMgKGZvciBzaG9ydCBkdXJhdGlvbnMpIGJlZm9yZSBh
IHNpbmdsZQorICAgIC8vICAgIGFjdGl2ZSB0aW1lb3V0IHBlcmlvZCBleHBpcmVzLiBBcyBhIHJl
c3VsdCwgd2UgZ2V0IHRvIHN0YXJ0IG9uZSB0aW1lciBwZXIgdGltZW91dCBwZXJpb2QKKyAgICAv
LyAgICAod2hpY2ggaXMgaW5mcmVxdWVudCBiZWNhdXNlIHRpbWVvdXQgcGVyaW9kcyB0ZW5kIHRv
IGJlIGxvbmcpIGluc3RlYWQgb2Ygb25lIHRpbWVyIHBlcgorICAgIC8vICAgIFZNIGVudHJ5ICh3
aGljaCBpcyBmcmVxdWVudCkuCisgICAgLy8KKyAgICAvLyBPbmx5IGlmIHdlIGRvbid0IGhhdmUg
YW4gYWN0aXZlIHRpbWVyIGFscmVhZHksIG9yIGlmIHRoZSBhY3RpdmUgb25lIHdvbid0IGV4cGly
ZSBzb29uIGVub3VnaAorICAgIC8vIHRvIGVuZm9yY2UgdGhlIGRlc2lyZWQgbGltaXQsIHRoZW4g
d2UnbGwgbmVlZCB0byBzdGFydCBhIG5ldyB0aW1lci4KKyAgICAKKyAgICBhdXRvIGN1cnJlbnRU
aW1lID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CisgICAgaWYgKG1fYWN0aXZl
VGltZXJJRCkgeworICAgICAgICBpZiAoKG1fZXhwaXJhdGlvblRpbWUgPiBjdXJyZW50VGltZSkg
JiYgKG1fZXhwaXJhdGlvblRpbWUgLSBjdXJyZW50VGltZSA8PSB0aW1lb3V0KSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgLy8gU3RhcnQgYSBuZXcgdGltZXIuCisgICAg
d2F0Y2hkb2ctPnJlZigpOworCisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2so
bV9tdXRleCk7CisgICAgVGltZXJJRCBpZCA9IG5leHRUaW1lcklEKCk7CisgICAgbV9hY3RpdmVU
aW1lcklEID0gaWQ7CisgICAgbV9leHBpcmF0aW9uVGltZSA9IGN1cnJlbnRUaW1lICsgdGltZW91
dDsKKworICAgIG1fcXVldWUtPmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRz
KHRpbWVvdXQpLCBbd2F0Y2hkb2csIGlkXSB7CisgICAgICAgIGF1dG8mIHRpbWVyID0gd2F0Y2hk
b2ctPm1fdGltZXI7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKHRp
bWVyLm1fbXV0ZXgpOworICAgICAgICBpZiAodGltZXIubV9hY3RpdmVUaW1lcklEID09IGlkICYm
IHdhdGNoZG9nLT5pc0FybWVkKCkpCisgICAgICAgICAgICB3YXRjaGRvZy0+bV90aW1lckRpZEZp
cmUgPSB0cnVlOworICAgICAgICB3YXRjaGRvZy0+ZGVyZWYoKTsKKyAgICB9KTsKK30KKyAgICAK
K2Jvb2wgV2F0Y2hkb2c6OlRpbWVyOjpoYW5kbGVGaXJlZFRpbWVySWZOZWVkZWQoV2F0Y2hkb2cq
IHdhdGNoZG9nKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fbXV0
ZXgpOworICAgIGlmICghd2F0Y2hkb2ctPm1fdGltZXJEaWRGaXJlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgCisgICAgbV9hY3RpdmVUaW1lcklEID0gMDsKKyAgICB3YXRjaGRvZy0+bV90
aW1lckRpZEZpcmUgPSBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogV2F0Y2hkb2c6Oldh
dGNoZG9nKCkKICAgICA6IG1fdGltZXJEaWRGaXJlKGZhbHNlKQogICAgICwgbV9kaWRGaXJlKGZh
bHNlKQpAQCAtNDEsMTkgKzEwOSwxNSBAQCBXYXRjaGRvZzo6V2F0Y2hkb2coKQogICAgICwgbV9z
dGFydFRpbWUoMCkKICAgICAsIG1fZWxhcHNlZFRpbWUoMCkKICAgICAsIG1fcmVlbnRyeUNvdW50
KDApCi0gICAgLCBtX2lzU3RvcHBlZCh0cnVlKQogICAgICwgbV9jYWxsYmFjaygwKQogICAgICwg
bV9jYWxsYmFja0RhdGExKDApCiAgICAgLCBtX2NhbGxiYWNrRGF0YTIoMCkKIHsKLSAgICBpbml0
VGltZXIoKTsKIH0KIAogV2F0Y2hkb2c6On5XYXRjaGRvZygpCiB7CiAgICAgQVNTRVJUKCFpc0Fy
bWVkKCkpOwotICAgIHN0b3BDb3VudGRvd24oKTsKLSAgICBkZXN0cm95VGltZXIoKTsKIH0KIAog
dm9pZCBXYXRjaGRvZzo6c2V0VGltZUxpbWl0KFZNJiB2bSwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vj
b25kcyBsaW1pdCwKQEAgLTYxLDkgKzEyNSw2IEBAIHZvaWQgV2F0Y2hkb2c6OnNldFRpbWVMaW1p
dChWTSYgdm0sIHN0ZDoKIHsKICAgICBib29sIHdhc0VuYWJsZWQgPSBpc0VuYWJsZWQoKTsKIAot
ICAgIGlmICghbV9pc1N0b3BwZWQpCi0gICAgICAgIHN0b3BDb3VudGRvd24oKTsKLQogICAgIG1f
ZGlkRmlyZSA9IGZhbHNlOyAvLyBSZXNldCB0aGUgd2F0Y2hkb2cuCiAKICAgICBtX2xpbWl0ID0g
bGltaXQ7CkBAIC05MiwxMCArMTUzLDggQEAgYm9vbCBXYXRjaGRvZzo6ZGlkRmlyZShFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgaWYgKG1fZGlkRmlyZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBpZiAoIW1fdGltZXJEaWRGaXJlKQorICAgIGlmICghbV90aW1lci5oYW5kbGVGaXJlZFRpbWVy
SWZOZWVkZWQodGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtX3RpbWVyRGlkRmly
ZSA9IGZhbHNlOwotICAgIHN0b3BDb3VudGRvd24oKTsKIAogICAgIGF1dG8gY3VycmVudFRpbWUg
PSBjdXJyZW50Q1BVVGltZSgpOwogICAgIGF1dG8gZGVsdGFUaW1lID0gY3VycmVudFRpbWUgLSBt
X3N0YXJ0VGltZTsKQEAgLTEyNCw3ICsxODMsNyBAQCBib29sIFdhdGNoZG9nOjpkaWRGaXJlKEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgYXV0byByZW1haW5pbmdUaW1lID0gbV9saW1pdCAtIHRv
dGFsRWxhcHNlZFRpbWU7CiAgICAgICAgIG1fZWxhcHNlZFRpbWUgPSB0b3RhbEVsYXBzZWRUaW1l
OwogICAgICAgICBtX3N0YXJ0VGltZSA9IGN1cnJlbnRUaW1lOwotICAgICAgICBzdGFydENvdW50
ZG93bihyZW1haW5pbmdUaW1lKTsKKyAgICAgICAgbV90aW1lci5zdGFydCh0aGlzLCByZW1haW5p
bmdUaW1lKTsKICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNTAsMzkgKzIwOSwxOSBA
QCB2b2lkIFdhdGNoZG9nOjphcm0oKQogdm9pZCBXYXRjaGRvZzo6ZGlzYXJtKCkKIHsKICAgICBB
U1NFUlQobV9yZWVudHJ5Q291bnQgPiAwKTsKLSAgICBpZiAobV9yZWVudHJ5Q291bnQgPT0gMSkK
LSAgICAgICAgc3RvcENvdW50ZG93bigpOwogICAgIG1fcmVlbnRyeUNvdW50LS07CiB9CiAKIHZv
aWQgV2F0Y2hkb2c6OnN0YXJ0Q291bnRkb3duSWZOZWVkZWQoKQogewotICAgIGlmICghbV9pc1N0
b3BwZWQpCi0gICAgICAgIHJldHVybjsgLy8gQWxyZWFkeSBzdGFydGVkLgotCiAgICAgaWYgKCFp
c0FybWVkKCkpCiAgICAgICAgIHJldHVybjsgLy8gTm90IGV4ZWN1dGluZyBKUyBzY3JpcHQuIE5v
IG5lZWQgdG8gc3RhcnQuCiAKICAgICBpZiAoaXNFbmFibGVkKCkpIHsKICAgICAgICAgbV9lbGFw
c2VkVGltZSA9IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM6Onplcm8oKTsKICAgICAgICAgbV9z
dGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwotICAgICAgICBzdGFydENvdW50ZG93bihtX2xp
bWl0KTsKKyAgICAgICAgbV90aW1lci5zdGFydCh0aGlzLCBtX2xpbWl0KTsKICAgICB9CiB9CiAK
LXZvaWQgV2F0Y2hkb2c6OnN0YXJ0Q291bnRkb3duKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMg
bGltaXQpCi17Ci0gICAgQVNTRVJUKG1faXNTdG9wcGVkKTsKLSAgICBtX2lzU3RvcHBlZCA9IGZh
bHNlOwotICAgIHN0YXJ0VGltZXIobGltaXQpOwotfQotCi12b2lkIFdhdGNoZG9nOjpzdG9wQ291
bnRkb3duKCkKLXsKLSAgICBpZiAobV9pc1N0b3BwZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBz
dG9wVGltZXIoKTsKLSAgICBtX2lzU3RvcHBlZCA9IHRydWU7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5oCShyZXZp
c2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNiArMjYsMTcgQEAKICNpZm5kZWYgV2F0Y2hkb2dfaAog
I2RlZmluZSBXYXRjaGRvZ19oCiAKLSNpZiBPUyhEQVJXSU4pCi0jaW5jbHVkZSA8ZGlzcGF0Y2gv
ZGlzcGF0Y2guaD4gICAgCi0jZW5kaWYKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3dGYv
UmVmLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1dvcmtRdWV1ZS5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgRXhlY1N0YXRlOwog
Y2xhc3MgVk07CiAKLWNsYXNzIFdhdGNoZG9nIHsKK2NsYXNzIFdhdGNoZG9nIDogcHVibGljIFdU
Rjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2F0Y2hkb2c+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKICAgICBjbGFzcyBTY29wZTsKQEAgLTYxLDIwICs2MiwxNCBAQCBw
dWJsaWM6CiAgICAgdm9pZCogdGltZXJEaWRGaXJlQWRkcmVzcygpIHsgcmV0dXJuICZtX3RpbWVy
RGlkRmlyZTsgfQogCiBwcml2YXRlOgorICAgIHR5cGVkZWYgdWludDMyX3QgVGltZXJJRDsKKwog
ICAgIHZvaWQgYXJtKCk7CiAgICAgdm9pZCBkaXNhcm0oKTsKICAgICB2b2lkIHN0YXJ0Q291bnRk
b3duSWZOZWVkZWQoKTsKLSAgICB2b2lkIHN0YXJ0Q291bnRkb3duKHN0ZDo6Y2hyb25vOjptaWNy
b3NlY29uZHMgbGltaXQpOwotICAgIHZvaWQgc3RvcENvdW50ZG93bigpOwogICAgIGJvb2wgaXNB
cm1lZCgpIHsgcmV0dXJuICEhbV9yZWVudHJ5Q291bnQ7IH0KIAotICAgIC8vIFBsYXRmb3JtIHNw
ZWNpZmljIHRpbWVyIGltcGxlbWVudGF0aW9uOgotICAgIHZvaWQgaW5pdFRpbWVyKCk7Ci0gICAg
dm9pZCBkZXN0cm95VGltZXIoKTsKLSAgICB2b2lkIHN0YXJ0VGltZXIoc3RkOjpjaHJvbm86Om1p
Y3Jvc2Vjb25kcyBsaW1pdCk7Ci0gICAgdm9pZCBzdG9wVGltZXIoKTsKLQotICAgIC8vIG1fdGlt
ZXJEaWRGaXJlIChhYm92ZSkgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRpbWVyIGZpcmVkLiBUaGUg
V2F0Y2hkb2cKKyAgICAvLyBtX3RpbWVyRGlkRmlyZSBpbmRpY2F0ZXMgd2hldGhlciB0aGUgdGlt
ZXIgZmlyZWQuIFRoZSBXYXRjaGRvZwogICAgIC8vIHN0aWxsIG5lZWRzIHRvIGNoZWNrIGlmIHRo
ZSBhbGxvd2VkIENQVSB0aW1lIGhhcyBlbGFwc2VkLiBJZiBzbywgdGhlbgogICAgIC8vIHRoZSBX
YXRjaGRvZyBmaXJlcyBhbmQgbV9kaWRGaXJlIHdpbGwgYmUgc2V0LgogICAgIC8vIE5PVEU6IG1f
dGltZXJEaWRGaXJlIGlzIG9ubHkgc2V0IGJ5IHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyB0aW1lcgpA
QCAtODcsMTYgKzgyLDMyIEBAIHByaXZhdGU6CiAgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25k
cyBtX2VsYXBzZWRUaW1lOwogCiAgICAgaW50IG1fcmVlbnRyeUNvdW50OwotICAgIGJvb2wgbV9p
c1N0b3BwZWQ7CiAKICAgICBTaG91bGRUZXJtaW5hdGVDYWxsYmFjayBtX2NhbGxiYWNrOwogICAg
IHZvaWQqIG1fY2FsbGJhY2tEYXRhMTsKICAgICB2b2lkKiBtX2NhbGxiYWNrRGF0YTI7CiAKLSNp
ZiBPUyhEQVJXSU4pICYmICFQTEFURk9STShFRkwpICYmICFQTEFURk9STShHVEspCi0gICAgZGlz
cGF0Y2hfcXVldWVfdCBtX3F1ZXVlOwotICAgIGRpc3BhdGNoX3NvdXJjZV90IG1fdGltZXI7Ci0j
ZW5kaWYKKyAgICBjbGFzcyBUaW1lciB7CisgICAgcHVibGljOgorICAgICAgICBUaW1lcigpOwor
CisgICAgICAgIHZvaWQgc3RhcnQoV2F0Y2hkb2cqLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRz
IHRpbWVvdXQpOworICAgICAgICBib29sIGhhbmRsZUZpcmVkVGltZXJJZk5lZWRlZChXYXRjaGRv
ZyopOworCisgICAgICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZVRp
bWVySUQ7IH0KKyAgICAgICAgc3RkOjpjaHJvbm86OnRpbWVfcG9pbnQ8c3RkOjpjaHJvbm86OnN0
ZWFkeV9jbG9jaz4gZXhwaXJhdGlvblRpbWUoKSBjb25zdCB7IHJldHVybiBtX2V4cGlyYXRpb25U
aW1lOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBUaW1lcklEIG5leHRUaW1lcklEKCk7CisK
KyAgICAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKKyAgICAgICAgVGltZXJJRCBtX2FjdGl2
ZVRpbWVySUQgeyAwIH07CisgICAgICAgIFRpbWVySUQgbV9uZXh0VGltZXJJRCB7IDEgfTsKKyAg
ICAgICAgc3RkOjpjaHJvbm86OnRpbWVfcG9pbnQ8c3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jaz4g
IG1fZXhwaXJhdGlvblRpbWU7CisgICAgICAgIHN0ZDo6bXV0ZXggbV9tdXRleDsKKyAgICB9Owor
ICAgIAorICAgIFRpbWVyIG1fdGltZXI7CiAKICAgICBmcmllbmQgY2xhc3MgV2F0Y2hkb2c6OlNj
b3BlOwogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ01hYy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2dNYWMuY3BwCShyZXZpc2lvbiAx
ODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ01hYy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2F0
Y2hkb2cuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLXZvaWQgV2F0Y2hkb2c6OmluaXRUaW1lcigp
Ci17Ci0gICAgbV9xdWV1ZSA9IDA7Ci0gICAgbV90aW1lciA9IDA7Ci19Ci0KLXZvaWQgV2F0Y2hk
b2c6OmRlc3Ryb3lUaW1lcigpCi17Ci0gICAgQVNTRVJUKCFtX3RpbWVyKTsKLSAgICBpZiAobV9x
dWV1ZSkKLSAgICAgICAgZGlzcGF0Y2hfcmVsZWFzZShtX3F1ZXVlKTsKLX0KLQotdm9pZCBXYXRj
aGRvZzo6c3RhcnRUaW1lcihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0KQotewotICAg
IEFTU0VSVCghbV90aW1lcik7Ci0gICAgaWYgKCFtX3F1ZXVlKQotICAgICAgICBtX3F1ZXVlID0g
ZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJqc2Mud2F0Y2hkb2cucXVldWUiLCAwKTsKLSAgICBtX3Rp
bWVyID0gZGlzcGF0Y2hfc291cmNlX2NyZWF0ZShESVNQQVRDSF9TT1VSQ0VfVFlQRV9USU1FUiwg
MCwgMCwgbV9xdWV1ZSk7Ci0KLSAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X3RpbWVyKG1fdGltZXIs
Ci0gICAgICAgIGRpc3BhdGNoX3RpbWUoRElTUEFUQ0hfVElNRV9OT1csIHN0ZDo6Y2hyb25vOjpu
YW5vc2Vjb25kcyhsaW1pdCkuY291bnQoKSksCi0gICAgICAgIERJU1BBVENIX1RJTUVfRk9SRVZF
UiwgMCk7Ci0KLSAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hhbmRsZXIobV90aW1lciwg
XnsKLSAgICAgICAgbV90aW1lckRpZEZpcmUgPSB0cnVlOwotICAgIH0pOwotCi0gICAgZGlzcGF0
Y2hfcmVzdW1lKG1fdGltZXIpOwotfQotCi12b2lkIFdhdGNoZG9nOjpzdG9wVGltZXIoKQotewot
ICAgIEFTU0VSVChtX3F1ZXVlKTsKLSAgICBkaXNwYXRjaF9zeW5jKG1fcXVldWUsIF57Ci0gICAg
ICAgIGRpc3BhdGNoX3NvdXJjZV9jYW5jZWwobV90aW1lcik7Ci0gICAgfSk7Ci0gICAgZGlzcGF0
Y2hfcmVsZWFzZShtX3RpbWVyKTsKLSAgICBtX3RpbWVyID0gMDsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ05vbmUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9n
Tm9uZS5jcHAJKHJldmlzaW9uIDE4NzY1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dhdGNoZG9nTm9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNTAgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiV2F0Y2hkb2cuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLS8vIFRo
aXMgaXMgYSBzdHViIGZvciBwbGF0Zm9ybXMgdGhhdCBoYXZlIG5vdCBpbXBsZW1lbnRlZCB0aGlz
IGZ1bmN0aW9uYWxpdHkuCi0vLyBJbiB0aGlzIGNhc2UsIHRoZSBwbGF0Zm9ybSB0aW1lciBoZXJl
IG5ldmVyIGZpcmVzLgotCi12b2lkIFdhdGNoZG9nOjppbml0VGltZXIoKQotewotfQotCi12b2lk
IFdhdGNoZG9nOjpkZXN0cm95VGltZXIoKQotewotfQotCi12b2lkIFdhdGNoZG9nOjpzdGFydFRp
bWVyKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMpCi17Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OnN0
b3BUaW1lcigpCi17Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258128</attachid>
            <date>2015-08-03 15:54:41 -0700</date>
            <delta_ts>2015-08-03 17:25:51 -0700</delta_ts>
            <desc>fix 2: Don&apos;t #include &quot;Watchdog.h&quot; in VM.h.  No more compiling the world.</desc>
            <filename>bug-147107.patch</filename>
            <type>text/plain</type>
            <size>28368</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3Nzc4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc5IEBA
CisyMDE1LTA4LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnRhdGlvbiBKYXZhU2NyaXB0IHdhdGNoZG9nIHVzaW5nIFdURjo6V29ya1F1ZXVlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MTA3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlND
b250ZXh0UmVmLmNwcDoKKyAgICAgICAgKGNyZWF0ZVdhdGNoZG9nSWZOZWVkZWQpOgorICAgICAg
ICAoSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRpbWVMaW1pdCk6CisgICAgICAgIC0gTm8g
bmVlZCB0byBjcmVhdGUgdGhlIHdhdGNoZG9nIChpZiBub3QgYWxyZWFkeSBjcmVhdGVkKSBqdXN0
IHRvIGNsZWFyIGl0LgorICAgICAgICAgIElmIHRoZSB3YXRjaGRvZyBpcyBub3QgY3JlYXRlZCB5
ZXQsIHRoZW4gaXQgaXMgZWZmZWN0aXZlbHkgY2xlYXJlZC4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAtIFJlbW92ZSBub3cgdW5uZWVkZWQgV2F0Y2hkb2dNYWMu
Y3BwIGFuZCBXYXRjaGRvZ05vbmUuY3BwLgorCisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAqIGludGVycHJldGVy
L0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAg
ICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGxsaW50L0xMSW50T2Zmc2V0c0V4
dHJhY3Rvci5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAtIExldCdzICNpbmNsdWRlIFdhdGNoZG9nLmgg
aW4gdGhlc2UgZmlsZXMgZGlyZWN0bHkgaW5zdGVhZCBvZiBkb2luZyBpdCB2aWEgVk0uaC4KKyAg
ICAgICAgICBUaGVzZSBzYXZlcyB1cyBmcm9tIGhhdmluZyB0byByZWNvbXBpbGUgdGhlIHdvcmxk
IHdoZW4gd2UgY2hhbmdlIFdhdGNoZG9nLmguCisKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6Cisg
ICAgICAgIC0gU2VlIFRpbWVyOjpzdGFydCgpIGZvciB3aHkgdGhlIFdhdGNoZG9nIG5lZWRzIHRv
IGJlIHRocmVhZC1zYWZlIHJlZiBjb3VudGVkLgorCisgICAgICAgICogcnVudGltZS9XYXRjaGRv
Zy5jcHA6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpUaW1lcjo6VGltZXIpOgorICAgICAgICAo
SlNDOjpXYXRjaGRvZzo6VGltZXI6Om5leHRUaW1lcklEKToKKyAgICAgICAgLSBXZSBtYXkgc3Rv
cCB0aGUgdGltZXIgYmVmb3JlIGl0cyBXb3JrUXVldWUgY2FsbGJhY2sgaGFzIHJ1bi4gIFNpbmNl
IG9ubHkgb25lCisgICAgICAgICAgdGltZXIgbWF5IGJlIGFjdGl2ZSBhdCBhbnkgdGltZSwgYSBt
b25vdG9uaWNhbGx5IGluY3JlYXNpbmcgSUQgc2NoZW1lIGdpdmVzIHVzCisgICAgICAgICAgYW4g
ZWFzeSB3YXkgdG8gaW5kaWNhdGUgdG8gdGhlIFdvcmtRdWV1ZSBjYWxsYmFjayBpZiBpdHMgdGlt
ZXIgc2Vzc2lvbiBoYXMgYmVlbgorICAgICAgICAgIGNhbmNlbGxlZC4KKworICAgICAgICAgIFdl
IHJlc2VydmUgaWQgMCB0byBtZWFuIG5vIGFjdGl2ZSB0aW1lci4gIG5leHRUaW1lcklEKCkgd2ls
bCBlbnN1cmUgdGhhdCBpdAorICAgICAgICAgIG5ldmVyIHJldHVybnMgYSAwIGlkLiAgVGhlIGlk
IHZhbHVlcyB3aWxsIG1vbm90b25pY2FsbHkgaW5jcmVhc2Ugb3ZlciB0aGUKKyAgICAgICAgICBy
YW5nZSBmb3Igc2l6ZSBvZiB1aW50cHRyX3QuICBUaGVvcmV0aWNhbGx5LCB0aGVyZSBjYW4gYmUg
YW4gb3ZlcmZsb3cgYmFjayB0byBhCisgICAgICAgICAgbG93IGlkIHZhbHVlLiAgSG93ZXZlciwg
aW4gcHJhY3RpY2UsIGl0IGlzIGltcG9zc2libGUgdG8gY3JlYXRlIHRoYXQgbWFueQorICAgICAg
ICAgIFdvcmtRdWV1ZSBjYWxsYmFja3MgKGkuZS4gc3RhcnQgYW5kIHN0b3AgdGhlIHRpbWVycyB0
aGF0IG1hbnkgdGltZXMgYmVmb3JlIGVhY2gKKyAgICAgICAgICB0aW1lb3V0IGV4cGlyZXMpIGlu
IG9yZGVyIHRvIGhhdmUgdGhpcyBiZSBhIHByb2JsZW0uCisKKyAgICAgICAgKEpTQzo6V2F0Y2hk
b2c6OlRpbWVyOjpzdGFydCk6CisgICAgICAgIC0gVGhlIFdhdGNoZG9nIGlzIG5vdyB0aHJlYWQt
c2FmZSByZWYgY291bnRlZCBiZWNhdXNlIHRoZSBXb3JrUXVldWUgbWF5IGFjY2VzcyBpdAorICAg
ICAgICAgIChmcm9tIGEgZGlmZmVyZW50IHRocmVhZCkgZXZlbiBhZnRlciB0aGUgVk0gc2h1dHMg
ZG93bi4gIFdlIG5lZWQgdG8ga2VlcCBpdAorICAgICAgICAgIGFsaXZlIHVudGlsIHRoZSBXb3Jr
UXVldWUgY2FsbGJhY2sgY29tcGxldGVzLgorCisgICAgICAgICAgSW4gVGltZXI6OnN0YXJ0KCks
IHdlJ2xsIHJlZiB0aGUgV2F0Y2hkb2cgdG8ga2VlcCBpdCBhbGl2ZSBmb3IgZWFjaCBXb3JrUXVl
dWUKKyAgICAgICAgICBjYWxsYmFjayB3ZSBkaXNwYXRjaC4gIFRoZSBjYWxsYmFjayB3aWxsIGRl
cmVmIHRoZSBXYXRjaGRvZyBhZnRlciBpdCBpcyBkb25lCisgICAgICAgICAgd2l0aCBpdC4gIFRo
aXMgZW5zdXJlcyB0aGF0IHRoZSBXYXRjaGRvZyBpcyBrZXB0IGFsaXZlIHVudGlsIGFsbCBXb3Jr
UXVldWUKKyAgICAgICAgICBjYWxsYmFja3MgYXJlIGRvbmUuCisKKyAgICAgICAgKEpTQzo6V2F0
Y2hkb2c6OlRpbWVyOjpoYW5kbGVGaXJlZFRpbWVySWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpX
YXRjaGRvZzo6V2F0Y2hkb2cpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6fldhdGNoZG9nKToK
KyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnNldFRpbWVMaW1pdCk6CisgICAgICAgIChKU0M6Oldh
dGNoZG9nOjpkaWRGaXJlKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmRpc2FybSk6CisgICAg
ICAgIChKU0M6OldhdGNoZG9nOjpzdGFydENvdW50ZG93bklmTmVlZGVkKToKKyAgICAgICAgKEpT
Qzo6V2F0Y2hkb2c6OnN0YXJ0Q291bnRkb3duKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0
Y2hkb2c6OnN0b3BDb3VudGRvd24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hk
b2cuaDoKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnRpbWVyRGlkRmlyZUFkZHJlc3MpOgorICAg
ICAgICAoSlNDOjpXYXRjaGRvZzo6aXNBcm1lZCk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpU
aW1lcjo6aXNBY3RpdmUpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6VGltZXI6OmV4cGlyYXRp
b25UaW1lKToKKyAgICAgICAgKiBydW50aW1lL1dhdGNoZG9nTWFjLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBydW50aW1lL1dhdGNoZG9nTm9uZS5jcHA6IFJlbW92ZWQuCisKIDIwMTUtMDgtMDMg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgSmF2YXNj
cmlwdENvcmUgQ3Jhc2ggaW4gSlNDOjpBU1RCdWlsZGVyOjpQcm9wZXJ0eSBKU0M6OlBhcnNlcjxK
U0M6OkxleGVyPHVuc2lnbmVkIGNoYXI+ID46OnBhcnNlUHJvcGVydHk8SlNDOjpBU1RCdWlsZGVy
PihKU0M6OkFTVEJ1aWxkZXImLCBib29sKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02MTEsNyArNjExLDYgQEAgc2V0KEphdmFTY3Jp
cHRDb3JlX1JVTlRJTUVfU09VUkNFUwogICAgIHJ1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAogICAg
IHJ1bnRpbWUvVmFyT2Zmc2V0LmNwcAogICAgIHJ1bnRpbWUvV2F0Y2hkb2cuY3BwCi0gICAgcnVu
dGltZS9XYXRjaGRvZ05vbmUuY3BwCiAgICAgcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3Bw
CiAgICAgcnVudGltZS9XZWFrTWFwRGF0YS5jcHAKICAgICBydW50aW1lL1dlYWtNYXBQcm90b3R5
cGUuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3Bw
CShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4
dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdGFja1Zp
c2l0b3IuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTk0LDcg
Kzk1LDcgQEAgc3RhdGljIGJvb2wgaW50ZXJuYWxTY3JpcHRUaW1lb3V0Q2FsbGJhYwogc3RhdGlj
IHZvaWQgY3JlYXRlV2F0Y2hkb2dJZk5lZWRlZChWTSYgdm0pCiB7CiAgICAgaWYgKCF2bS53YXRj
aGRvZykgewotICAgICAgICB2bS53YXRjaGRvZyA9IHN0ZDo6bWFrZV91bmlxdWU8V2F0Y2hkb2c+
KCk7CisgICAgICAgIHZtLndhdGNoZG9nID0gYWRvcHRSZWYobmV3IFdhdGNoZG9nKCkpOwogCiAg
ICAgICAgIC8vIFRoZSBMTElOVCBwZWVrcyBpbnRvIHRoZSBXYXRjaGRvZyBvYmplY3QgZGlyZWN0
bHkuIEluIG9yZGVyIHRvIGRvIHRoYXQsCiAgICAgICAgIC8vIHRoZSBMTElOVCBhc3N1bWVzIHRo
YXQgdGhlIGludGVybmFsIHNoYXBlIG9mIGEgc3RkOjp1bmlxdWVfcHRyIGlzIHRoZQpAQCAtMTIw
LDkgKzEyMSw4IEBAIHZvaWQgSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRpbWVMaW0KIHsK
ICAgICBWTSYgdm0gPSAqdG9KUyhncm91cCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcigmdm0p
OwotICAgIGNyZWF0ZVdhdGNoZG9nSWZOZWVkZWQodm0pOwotICAgIFdhdGNoZG9nJiB3YXRjaGRv
ZyA9ICp2bS53YXRjaGRvZzsKLSAgICB3YXRjaGRvZy5zZXRUaW1lTGltaXQodm0sIHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHM6Om1heCgpKTsKKyAgICBpZiAodm0ud2F0Y2hkb2cpCisgICAgICAg
IHZtLndhdGNoZG9nLT5zZXRUaW1lTGltaXQodm0sIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM6
Om1heCgpKTsKIH0KIAogLy8gRnJvbSB0aGUgQVBJJ3MgcGVyc3BlY3RpdmUsIGEgZ2xvYmFsIGNv
bnRleHQgcmVtYWlucyBhbGl2ZSBpZmYgaXQgaGFzIGJlZW4gSlNHbG9iYWxDb250ZXh0UmV0YWlu
ZWQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9u
IDE4NzY1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg2NSw3ICs4NjUsNiBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxWTUVudHJ5U2NvcGUuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxWYXJPZmZzZXQuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxXYXRjaGRvZy5jcHAiIC8+Ci0gICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nTm9uZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtNYXBDb25zdHJ1Y3Rvci5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtNYXBEYXRhLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2Vha01hcFByb3RvdHlwZS5jcHAi
IC8+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5m
aWx0ZXJzCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcg
Y29weSkKQEAgLTkzMyw5ICs5MzMsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxXYXRjaGRvZy5jcHAiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9n
Tm9uZS5jcHAiPgotICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx0b29sc1xDb2RlUHJvZmlsZS5jcHAiPgog
ICAgICAgPEZpbHRlcj50b29sczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE4NzY1OCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzEyLDcgKzE3MTIsNiBAQAogCQlGRUQyODdCMjE1RUM5QTU3MDBEQTgx
NjEgLyogTExJbnRPcGNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZFRDI4N0IxMTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9wY29kZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFRDk0RjJFMTcx
RTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cu
Y3BwICovOyB9OwogCQlGRUQ5NEYyRjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDk0RjJDMTcxRTNF
MjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCUZFRDk0RjMwMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZ01h
Yy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5
NEYyRDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwICovOyB9OwogCQlGRUYwNDA1
MTFBQUU2NjJEMDBCRDI4QjAgLyogQ29tcGFyZUFuZFN3YXBUZXN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRjA0MDUwMUFBRTY2MkQwMEJEMjhC
MCAvKiBDb21wYXJlQW5kU3dhcFRlc3QuY3BwICovOyB9OwogCQlGRUY2ODM1RTE3NDM0M0NDMDBB
MzJFMjUgLyogSklUU3R1YnNBUk0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFRjY4MzVBMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFRjY4MzVG
MTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTXY3LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUY2ODM1QjE3NDM0M0NDMDBBMzJFMjUgLyogSklU
U3R1YnNBUk12Ny5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0zNTU1LDcgKzM1NTQsNiBAQAogCQlGRUQyODdCMTE1RUM5QTU3MDBEQTgxNjEgLyog
TExJbnRPcGNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTExJbnRPcGNv
ZGUuaDsgcGF0aCA9IGxsaW50L0xMSW50T3Bjb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZFRDk0RjJCMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXRjaGRvZy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUZFRDk0RjJDMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXRjaGRvZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlGRUQ5NEYyRDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2F0Y2hkb2dNYWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUYwNDA1MDFBQUU2NjJEMDBCRDI4QjAg
LyogQ29tcGFyZUFuZFN3YXBUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IENvbXBhcmVBbmRTd2FwVGVzdC5jcHA7IHBhdGggPSBBUEkvdGVzdHMvQ29tcGFyZUFu
ZFN3YXBUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVGMDQwNTIxQUFF
QzRFRDAwQkQyOEIwIC8qIENvbXBhcmVBbmRTd2FwVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBDb21wYXJlQW5kU3dhcFRlc3QuaDsgcGF0aCA9IEFQSS90ZXN0cy9Db21w
YXJlQW5kU3dhcFRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVGNjgzNUEx
NzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpJVFN0dWJzQVJNLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00
ODg1LDcgKzQ4ODMsNiBAQAogCQkJCUZFNTkzMkE2MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5
U2NvcGUuaCAqLywKIAkJCQlGRUQ5NEYyQjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3Bw
ICovLAogCQkJCUZFRDk0RjJDMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5oICovLAotCQkJ
CUZFRDk0RjJEMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZ01hYy5jcHAgKi8sCiAJCQkJMTRC
RkNFNjgxMENEQjFGQzAwMzY0Q0NFIC8qIFdlYWtHQ01hcC5oICovLAogCQkJCUFEODZBOTNEMUFB
NEQ4N0MwMDJGRTc3RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggKi8sCiAJCQkJQTdDQTNBREQxN0RB
NDFBRTAwNjUzOEFGIC8qIFdlYWtNYXBDb25zdHJ1Y3Rvci5jcHAgKi8sCkBAIC03NzY5LDcgKzc3
NjYsNiBAQAogCQkJCUUxOEUzQTU5MERGOTI3OEMwMEQ5MEIzNCAvKiBWTS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGRTU5MzJBNzE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZFRDk0RjJFMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlGRUQ5NEYzMDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hk
b2dNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0I5OEQxMzYxQjYwQ0Q1RjAwMjNCMUE0IC8q
IEpTV0FTTU1vZHVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkxOUQyNTE1ODUzQ0UwMDA0
QTRFN0QgLyogV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUNGNzM3NzE3MUNB
NkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxODc2
NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlB1dEJ5SWRTdGF0dXMu
aCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgIlN0cmluZ0NvbnN0cnVj
dG9yLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVy
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2
ICs0NCw3IEBACiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIlNldHVwVmFyYXJn
c0ZyYW1lLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCisjaW5jbHVkZSAiV2F0Y2hk
b2cuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlz
aW9uIDE4NzY1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJTZXR1
cFZhcmFyZ3NGcmFtZS5oIgogI2luY2x1ZGUgIlNwaWxsUmVnaXN0ZXJzTW9kZS5oIgogI2luY2x1
ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAiU3ltYm9sLmgiCiAjaW5jbHVkZSAi
Vk1FbnRyeVNjb3BlLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCisjaW5jbHVkZSAi
V2F0Y2hkb2cuaCIKIAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDE4
NzY1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJUeXBlTG9jYXRpb24uaCIKICNp
bmNsdWRlICJUeXBlUHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIK
KyNpbmNsdWRlICJXYXRjaGRvZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxODc2NTgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRzLmgiCiAj
aW5jbHVkZSAiVGVzdFJ1bm5lclV0aWxzLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgi
CisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+CiAKIG5h
bWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zm
c2V0c0V4dHJhY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAJKHJldmlzaW9uIDE4NzY1OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCiAj
aW5jbHVkZSAiVk1FbnRyeVJlY29yZC5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgorI2lu
Y2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cAkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUg
Ik9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIKICNpbmNs
dWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgog
I2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIExMSW50IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHJl
dmlzaW9uIDE4NzY1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQAogI2luY2x1ZGUgIlR5cGVQcm9maWxlci5o
IgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgogI2luY2x1ZGUgIlVubGlua2VkQ29kZUJs
b2NrLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlICJXZWFrR0NNYXBJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiV2Vha01hcERhdGEuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkocmV2aXNpb24gMTg3NjU4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkod29ya2luZyBjb3B5KQpAQCAt
NTAsNyArNTAsNyBAQAogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIlR5
cGVkQXJyYXlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVk1FbnRyeVJlY29yZC5oIgotI2luY2x1
ZGUgIldhdGNoZG9nLmgiCisvLyBtbGFtICNpbmNsdWRlICJXYXRjaGRvZy5oIgogI2luY2x1ZGUg
IldhdGNocG9pbnQuaCIKICNpbmNsdWRlICJXZWFrUmFuZG9tLmgiCiAjaW5jbHVkZSA8d3RmL0Jh
Zy5oPgpAQCAtMTA3LDYgKzEwNyw3IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
OwogY2xhc3MgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrOwogY2xhc3MgVmlydHVhbFJlZ2lzdGVy
OwogY2xhc3MgVk1FbnRyeVNjb3BlOworY2xhc3MgV2F0Y2hkb2c7CiBjbGFzcyBXYXRjaHBvaW50
OwogY2xhc3MgV2F0Y2hwb2ludFNldDsKIApAQCAtMjU5LDcgKzI2MCw3IEBAIHB1YmxpYzoKICAg
ICBDbGllbnREYXRhKiBjbGllbnREYXRhOwogICAgIFZNRW50cnlGcmFtZSogdG9wVk1FbnRyeUZy
YW1lOwogICAgIEV4ZWNTdGF0ZSogdG9wQ2FsbEZyYW1lOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxX
YXRjaGRvZz4gd2F0Y2hkb2c7CisgICAgUmVmUHRyPFdhdGNoZG9nPiB3YXRjaGRvZzsKIAogICAg
IFN0cm9uZzxTdHJ1Y3R1cmU+IHN0cnVjdHVyZVN0cnVjdHVyZTsKICAgICBTdHJvbmc8U3RydWN0
dXJlPiBzdHJ1Y3R1cmVSYXJlRGF0YVN0cnVjdHVyZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAJKHJldmlzaW9uIDE4NzY1OCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQs
NiArMzQsNzQgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICNkZWZpbmUgTk9fTElNSVQgc3RkOjpjaHJv
bm86Om1pY3Jvc2Vjb25kczo6bWF4KCkKIAorV2F0Y2hkb2c6OlRpbWVyOjpUaW1lcigpCisgICAg
OiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJqc2Mud2F0Y2hkb2cucXVldWUiLCBXb3JrUXVl
dWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlV0aWxpdHkpKQoreworfQorCitXYXRj
aGRvZzo6VGltZXJJRCBXYXRjaGRvZzo6VGltZXI6Om5leHRUaW1lcklEKCkKK3sKKyAgICBUaW1l
cklEIGlkID0gbV9uZXh0VGltZXJJRCsrOworICAgIGlmICghaWQpCisgICAgICAgIGlkID0gbV9u
ZXh0VGltZXJJRCsrOworICAgIHJldHVybiBpZDsKK30KKwordm9pZCBXYXRjaGRvZzo6VGltZXI6
OnN0YXJ0KFdhdGNoZG9nKiB3YXRjaGRvZywgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyB0aW1l
b3V0KQoreworICAgIC8vIFdhdGNoZG9nOjpkaWRGaXJlKCkgY2FuIGhhbmRsZSBzcHVyaW91cyB3
YWtlcywgYW5kIHdpbGwgc3RhcnQgYSBuZXcgdGltZXIgZm9yIHRoZSByZW1haW5pbmcKKyAgICAv
LyB0aW1lIGlmIHRoZSBsaW1pdCBoYXMgbm90IGJlZW4gcmVhY2hlZCB5ZXQuIEhlbmNlLCBpZiB3
ZSBhbHJlYWR5IGhhdmUgYW4gYWN0aXZlIHRpbWVyLCBhbmQKKyAgICAvLyB0aGUgdGltZXIncyBl
eHBpcmF0aW9uIHdpbGwgb2NjdXIgYXQgb3IgYmVmb3JlIHRoZSBkZXNpcmVkIGxpbWl0LCB0aGVu
IHdlIGNhbiBqdXN0IGxldCB0aGUKKyAgICAvLyBleGlzdGluZyB0aW1lciBleHBpcmUgbmF0dXJh
bGx5IGFuZCBoYW5kbGUgaXQgdGhlIHNhbWUgd2F5IHdlIGhhbmRsZSBzcHVyaW91cyB3YWtlcy4K
KyAgICAvLworICAgIC8vIFRoaXMgYWxsb3dzIHVzIHRvOgorICAgIC8vCisgICAgLy8gMS4gbWlu
aW1pemUgdGhlIG51bWJlciBvZiB0aW1lciBpbnN0YW5jZXMgd2UgaGF2ZSBxdWV1ZWQgaW4gdGhl
IHdvcmtxdWV1ZSBhdCB0aGUgc2FtZSB0aW1lCisgICAgLy8gICAgKGlkZWFsbHkgb25seSAxIG9y
IDApLiBMZXNzIHBlYWsgbWVtb3J5IHVzYWdlLgorICAgIC8vCisgICAgLy8gMi4gbWluaW1pemUg
dGhlIGZyZXF1ZW5jeSBvZiBpbnN0YW50aWF0aW5nIHRpbWVyIGluc3RhbmNlcy4gVGhpcyBpcyBi
ZWNhdXNlIHdlbGwgYmVoYXZlZCBKUworICAgIC8vICAgIGNvZGUgd2lsbCB0ZW5kIHRvIGVudGVy
IGFuZCBleGl0IHRoZSBWTSBtYW55IHRpbWVzIChmb3Igc2hvcnQgZHVyYXRpb25zKSBiZWZvcmUg
YSBzaW5nbGUKKyAgICAvLyAgICBhY3RpdmUgdGltZW91dCBwZXJpb2QgZXhwaXJlcy4gQXMgYSBy
ZXN1bHQsIHdlIGdldCB0byBzdGFydCBvbmUgdGltZXIgcGVyIHRpbWVvdXQgcGVyaW9kCisgICAg
Ly8gICAgKHdoaWNoIGlzIGluZnJlcXVlbnQgYmVjYXVzZSB0aW1lb3V0IHBlcmlvZHMgdGVuZCB0
byBiZSBsb25nKSBpbnN0ZWFkIG9mIG9uZSB0aW1lciBwZXIKKyAgICAvLyAgICBWTSBlbnRyeSAo
d2hpY2ggaXMgZnJlcXVlbnQpLgorICAgIC8vCisgICAgLy8gT25seSBpZiB3ZSBkb24ndCBoYXZl
IGFuIGFjdGl2ZSB0aW1lciBhbHJlYWR5LCBvciBpZiB0aGUgYWN0aXZlIG9uZSB3b24ndCBleHBp
cmUgc29vbiBlbm91Z2gKKyAgICAvLyB0byBlbmZvcmNlIHRoZSBkZXNpcmVkIGxpbWl0LCB0aGVu
IHdlJ2xsIG5lZWQgdG8gc3RhcnQgYSBuZXcgdGltZXIuCisgICAgCisgICAgYXV0byBjdXJyZW50
VGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOworICAgIGlmIChtX2FjdGl2
ZVRpbWVySUQpIHsKKyAgICAgICAgaWYgKChtX2V4cGlyYXRpb25UaW1lID4gY3VycmVudFRpbWUp
ICYmIChtX2V4cGlyYXRpb25UaW1lIC0gY3VycmVudFRpbWUgPD0gdGltZW91dCkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIC8vIFN0YXJ0IGEgbmV3IHRpbWVyLgorICAg
IHdhdGNoZG9nLT5yZWYoKTsKKworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2Nr
KG1fbXV0ZXgpOworICAgIFRpbWVySUQgaWQgPSBuZXh0VGltZXJJRCgpOworICAgIG1fYWN0aXZl
VGltZXJJRCA9IGlkOworICAgIG1fZXhwaXJhdGlvblRpbWUgPSBjdXJyZW50VGltZSArIHRpbWVv
dXQ7CisKKyAgICBtX3F1ZXVlLT5kaXNwYXRjaEFmdGVyKHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25k
cyh0aW1lb3V0KSwgW3dhdGNoZG9nLCBpZF0geworICAgICAgICBhdXRvJiB0aW1lciA9IHdhdGNo
ZG9nLT5tX3RpbWVyOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayh0
aW1lci5tX211dGV4KTsKKyAgICAgICAgaWYgKHRpbWVyLm1fYWN0aXZlVGltZXJJRCA9PSBpZCAm
JiB3YXRjaGRvZy0+aXNBcm1lZCgpKQorICAgICAgICAgICAgd2F0Y2hkb2ctPm1fdGltZXJEaWRG
aXJlID0gdHJ1ZTsKKyAgICAgICAgd2F0Y2hkb2ctPmRlcmVmKCk7CisgICAgfSk7Cit9CisgICAg
Citib29sIFdhdGNoZG9nOjpUaW1lcjo6aGFuZGxlRmlyZWRUaW1lcklmTmVlZGVkKFdhdGNoZG9n
KiB3YXRjaGRvZykKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtX211
dGV4KTsKKyAgICBpZiAoIXdhdGNoZG9nLT5tX3RpbWVyRGlkRmlyZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAorICAgIG1fYWN0aXZlVGltZXJJRCA9IDA7CisgICAgd2F0Y2hkb2ctPm1f
dGltZXJEaWRGaXJlID0gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIFdhdGNoZG9nOjpX
YXRjaGRvZygpCiAgICAgOiBtX3RpbWVyRGlkRmlyZShmYWxzZSkKICAgICAsIG1fZGlkRmlyZShm
YWxzZSkKQEAgLTQxLDE5ICsxMDksMTUgQEAgV2F0Y2hkb2c6OldhdGNoZG9nKCkKICAgICAsIG1f
c3RhcnRUaW1lKDApCiAgICAgLCBtX2VsYXBzZWRUaW1lKDApCiAgICAgLCBtX3JlZW50cnlDb3Vu
dCgwKQotICAgICwgbV9pc1N0b3BwZWQodHJ1ZSkKICAgICAsIG1fY2FsbGJhY2soMCkKICAgICAs
IG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwgbV9jYWxsYmFja0RhdGEyKDApCiB7Ci0gICAgaW5p
dFRpbWVyKCk7CiB9CiAKIFdhdGNoZG9nOjp+V2F0Y2hkb2coKQogewogICAgIEFTU0VSVCghaXNB
cm1lZCgpKTsKLSAgICBzdG9wQ291bnRkb3duKCk7Ci0gICAgZGVzdHJveVRpbWVyKCk7CiB9CiAK
IHZvaWQgV2F0Y2hkb2c6OnNldFRpbWVMaW1pdChWTSYgdm0sIHN0ZDo6Y2hyb25vOjptaWNyb3Nl
Y29uZHMgbGltaXQsCkBAIC02MSw5ICsxMjUsNiBAQCB2b2lkIFdhdGNoZG9nOjpzZXRUaW1lTGlt
aXQoVk0mIHZtLCBzdGQ6CiB7CiAgICAgYm9vbCB3YXNFbmFibGVkID0gaXNFbmFibGVkKCk7CiAK
LSAgICBpZiAoIW1faXNTdG9wcGVkKQotICAgICAgICBzdG9wQ291bnRkb3duKCk7Ci0KICAgICBt
X2RpZEZpcmUgPSBmYWxzZTsgLy8gUmVzZXQgdGhlIHdhdGNoZG9nLgogCiAgICAgbV9saW1pdCA9
IGxpbWl0OwpAQCAtOTIsMTAgKzE1Myw4IEBAIGJvb2wgV2F0Y2hkb2c6OmRpZEZpcmUoRXhlY1N0
YXRlKiBleGVjKQogICAgIGlmIChtX2RpZEZpcmUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgaWYgKCFtX3RpbWVyRGlkRmlyZSkKKyAgICBpZiAoIW1fdGltZXIuaGFuZGxlRmlyZWRUaW1l
cklmTmVlZGVkKHRoaXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgbV90aW1lckRpZEZp
cmUgPSBmYWxzZTsKLSAgICBzdG9wQ291bnRkb3duKCk7CiAKICAgICBhdXRvIGN1cnJlbnRUaW1l
ID0gY3VycmVudENQVVRpbWUoKTsKICAgICBhdXRvIGRlbHRhVGltZSA9IGN1cnJlbnRUaW1lIC0g
bV9zdGFydFRpbWU7CkBAIC0xMjQsNyArMTgzLDcgQEAgYm9vbCBXYXRjaGRvZzo6ZGlkRmlyZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGF1dG8gcmVtYWluaW5nVGltZSA9IG1fbGltaXQgLSB0
b3RhbEVsYXBzZWRUaW1lOwogICAgICAgICBtX2VsYXBzZWRUaW1lID0gdG90YWxFbGFwc2VkVGlt
ZTsKICAgICAgICAgbV9zdGFydFRpbWUgPSBjdXJyZW50VGltZTsKLSAgICAgICAgc3RhcnRDb3Vu
dGRvd24ocmVtYWluaW5nVGltZSk7CisgICAgICAgIG1fdGltZXIuc3RhcnQodGhpcywgcmVtYWlu
aW5nVGltZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTUwLDM5ICsyMDksMTkg
QEAgdm9pZCBXYXRjaGRvZzo6YXJtKCkKIHZvaWQgV2F0Y2hkb2c6OmRpc2FybSgpCiB7CiAgICAg
QVNTRVJUKG1fcmVlbnRyeUNvdW50ID4gMCk7Ci0gICAgaWYgKG1fcmVlbnRyeUNvdW50ID09IDEp
Ci0gICAgICAgIHN0b3BDb3VudGRvd24oKTsKICAgICBtX3JlZW50cnlDb3VudC0tOwogfQogCiB2
b2lkIFdhdGNoZG9nOjpzdGFydENvdW50ZG93bklmTmVlZGVkKCkKIHsKLSAgICBpZiAoIW1faXNT
dG9wcGVkKQotICAgICAgICByZXR1cm47IC8vIEFscmVhZHkgc3RhcnRlZC4KLQogICAgIGlmICgh
aXNBcm1lZCgpKQogICAgICAgICByZXR1cm47IC8vIE5vdCBleGVjdXRpbmcgSlMgc2NyaXB0LiBO
byBuZWVkIHRvIHN0YXJ0LgogCiAgICAgaWYgKGlzRW5hYmxlZCgpKSB7CiAgICAgICAgIG1fZWxh
cHNlZFRpbWUgPSBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzOjp6ZXJvKCk7CiAgICAgICAgIG1f
c3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKLSAgICAgICAgc3RhcnRDb3VudGRvd24obV9s
aW1pdCk7CisgICAgICAgIG1fdGltZXIuc3RhcnQodGhpcywgbV9saW1pdCk7CiAgICAgfQogfQog
Ci12b2lkIFdhdGNoZG9nOjpzdGFydENvdW50ZG93bihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRz
IGxpbWl0KQotewotICAgIEFTU0VSVChtX2lzU3RvcHBlZCk7Ci0gICAgbV9pc1N0b3BwZWQgPSBm
YWxzZTsKLSAgICBzdGFydFRpbWVyKGxpbWl0KTsKLX0KLQotdm9pZCBXYXRjaGRvZzo6c3RvcENv
dW50ZG93bigpCi17Ci0gICAgaWYgKG1faXNTdG9wcGVkKQotICAgICAgICByZXR1cm47Ci0gICAg
c3RvcFRpbWVyKCk7Ci0gICAgbV9pc1N0b3BwZWQgPSB0cnVlOwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAkocmV2
aXNpb24gMTg3NjU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cu
aAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTYgKzI2LDE3IEBACiAjaWZuZGVmIFdhdGNoZG9nX2gK
ICNkZWZpbmUgV2F0Y2hkb2dfaAogCi0jaWYgT1MoREFSV0lOKQotI2luY2x1ZGUgPGRpc3BhdGNo
L2Rpc3BhdGNoLmg+ICAgIAotI2VuZGlmCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorI2luY2x1ZGUg
PHd0Zi9Xb3JrUXVldWUuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEV4ZWNTdGF0ZTsK
IGNsYXNzIFZNOwogCi1jbGFzcyBXYXRjaGRvZyB7CitjbGFzcyBXYXRjaGRvZyA6IHB1YmxpYyBX
VEY6OlRocmVhZFNhZmVSZWZDb3VudGVkPFdhdGNoZG9nPiB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgY2xhc3MgU2NvcGU7CkBAIC02MSwyMCArNjIsMTQgQEAg
cHVibGljOgogICAgIHZvaWQqIHRpbWVyRGlkRmlyZUFkZHJlc3MoKSB7IHJldHVybiAmbV90aW1l
ckRpZEZpcmU7IH0KIAogcHJpdmF0ZToKKyAgICB0eXBlZGVmIHVpbnQzMl90IFRpbWVySUQ7CisK
ICAgICB2b2lkIGFybSgpOwogICAgIHZvaWQgZGlzYXJtKCk7CiAgICAgdm9pZCBzdGFydENvdW50
ZG93bklmTmVlZGVkKCk7Ci0gICAgdm9pZCBzdGFydENvdW50ZG93bihzdGQ6OmNocm9ubzo6bWlj
cm9zZWNvbmRzIGxpbWl0KTsKLSAgICB2b2lkIHN0b3BDb3VudGRvd24oKTsKICAgICBib29sIGlz
QXJtZWQoKSB7IHJldHVybiAhIW1fcmVlbnRyeUNvdW50OyB9CiAKLSAgICAvLyBQbGF0Zm9ybSBz
cGVjaWZpYyB0aW1lciBpbXBsZW1lbnRhdGlvbjoKLSAgICB2b2lkIGluaXRUaW1lcigpOwotICAg
IHZvaWQgZGVzdHJveVRpbWVyKCk7Ci0gICAgdm9pZCBzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjpt
aWNyb3NlY29uZHMgbGltaXQpOwotICAgIHZvaWQgc3RvcFRpbWVyKCk7Ci0KLSAgICAvLyBtX3Rp
bWVyRGlkRmlyZSAoYWJvdmUpIGluZGljYXRlcyB3aGV0aGVyIHRoZSB0aW1lciBmaXJlZC4gVGhl
IFdhdGNoZG9nCisgICAgLy8gbV90aW1lckRpZEZpcmUgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRp
bWVyIGZpcmVkLiBUaGUgV2F0Y2hkb2cKICAgICAvLyBzdGlsbCBuZWVkcyB0byBjaGVjayBpZiB0
aGUgYWxsb3dlZCBDUFUgdGltZSBoYXMgZWxhcHNlZC4gSWYgc28sIHRoZW4KICAgICAvLyB0aGUg
V2F0Y2hkb2cgZmlyZXMgYW5kIG1fZGlkRmlyZSB3aWxsIGJlIHNldC4KICAgICAvLyBOT1RFOiBt
X3RpbWVyRGlkRmlyZSBpcyBvbmx5IHNldCBieSB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgdGltZXIK
QEAgLTg3LDE2ICs4MiwzMiBAQCBwcml2YXRlOgogICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29u
ZHMgbV9lbGFwc2VkVGltZTsKIAogICAgIGludCBtX3JlZW50cnlDb3VudDsKLSAgICBib29sIG1f
aXNTdG9wcGVkOwogCiAgICAgU2hvdWxkVGVybWluYXRlQ2FsbGJhY2sgbV9jYWxsYmFjazsKICAg
ICB2b2lkKiBtX2NhbGxiYWNrRGF0YTE7CiAgICAgdm9pZCogbV9jYWxsYmFja0RhdGEyOwogCi0j
aWYgT1MoREFSV0lOKSAmJiAhUExBVEZPUk0oRUZMKSAmJiAhUExBVEZPUk0oR1RLKQotICAgIGRp
c3BhdGNoX3F1ZXVlX3QgbV9xdWV1ZTsKLSAgICBkaXNwYXRjaF9zb3VyY2VfdCBtX3RpbWVyOwot
I2VuZGlmCisgICAgY2xhc3MgVGltZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgVGltZXIoKTsK
KworICAgICAgICB2b2lkIHN0YXJ0KFdhdGNoZG9nKiwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25k
cyB0aW1lb3V0KTsKKyAgICAgICAgYm9vbCBoYW5kbGVGaXJlZFRpbWVySWZOZWVkZWQoV2F0Y2hk
b2cqKTsKKworICAgICAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVU
aW1lcklEOyB9CisgICAgICAgIHN0ZDo6Y2hyb25vOjp0aW1lX3BvaW50PHN0ZDo6Y2hyb25vOjpz
dGVhZHlfY2xvY2s+IGV4cGlyYXRpb25UaW1lKCkgY29uc3QgeyByZXR1cm4gbV9leHBpcmF0aW9u
VGltZTsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgVGltZXJJRCBuZXh0VGltZXJJRCgpOwor
CisgICAgICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CisgICAgICAgIFRpbWVySUQgbV9hY3Rp
dmVUaW1lcklEIHsgMCB9OworICAgICAgICBUaW1lcklEIG1fbmV4dFRpbWVySUQgeyAxIH07Cisg
ICAgICAgIHN0ZDo6Y2hyb25vOjp0aW1lX3BvaW50PHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s+
ICBtX2V4cGlyYXRpb25UaW1lOworICAgICAgICBzdGQ6Om11dGV4IG1fbXV0ZXg7CisgICAgfTsK
KyAgICAKKyAgICBUaW1lciBtX3RpbWVyOwogCiAgICAgZnJpZW5kIGNsYXNzIFdhdGNoZG9nOjpT
Y29wZTsKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2dNYWMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTWFjLmNwcAkocmV2aXNpb24g
MTg3NjU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2dNYWMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldh
dGNoZG9nLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi12b2lkIFdhdGNoZG9nOjppbml0VGltZXIo
KQotewotICAgIG1fcXVldWUgPSAwOwotICAgIG1fdGltZXIgPSAwOwotfQotCi12b2lkIFdhdGNo
ZG9nOjpkZXN0cm95VGltZXIoKQotewotICAgIEFTU0VSVCghbV90aW1lcik7Ci0gICAgaWYgKG1f
cXVldWUpCi0gICAgICAgIGRpc3BhdGNoX3JlbGVhc2UobV9xdWV1ZSk7Ci19Ci0KLXZvaWQgV2F0
Y2hkb2c6OnN0YXJ0VGltZXIoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBsaW1pdCkKLXsKLSAg
ICBBU1NFUlQoIW1fdGltZXIpOwotICAgIGlmICghbV9xdWV1ZSkKLSAgICAgICAgbV9xdWV1ZSA9
IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgianNjLndhdGNoZG9nLnF1ZXVlIiwgMCk7Ci0gICAgbV90
aW1lciA9IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfVElNRVIs
IDAsIDAsIG1fcXVldWUpOwotCi0gICAgZGlzcGF0Y2hfc291cmNlX3NldF90aW1lcihtX3RpbWVy
LAotICAgICAgICBkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVfTk9XLCBzdGQ6OmNocm9ubzo6
bmFub3NlY29uZHMobGltaXQpLmNvdW50KCkpLAotICAgICAgICBESVNQQVRDSF9USU1FX0ZPUkVW
RVIsIDApOwotCi0gICAgZGlzcGF0Y2hfc291cmNlX3NldF9ldmVudF9oYW5kbGVyKG1fdGltZXIs
IF57Ci0gICAgICAgIG1fdGltZXJEaWRGaXJlID0gdHJ1ZTsKLSAgICB9KTsKLQotICAgIGRpc3Bh
dGNoX3Jlc3VtZShtX3RpbWVyKTsKLX0KLQotdm9pZCBXYXRjaGRvZzo6c3RvcFRpbWVyKCkKLXsK
LSAgICBBU1NFUlQobV9xdWV1ZSk7Ci0gICAgZGlzcGF0Y2hfc3luYyhtX3F1ZXVlLCBeewotICAg
ICAgICBkaXNwYXRjaF9zb3VyY2VfY2FuY2VsKG1fdGltZXIpOwotICAgIH0pOwotICAgIGRpc3Bh
dGNoX3JlbGVhc2UobV90aW1lcik7Ci0gICAgbV90aW1lciA9IDA7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2dOb25l
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRv
Z05vbmUuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9XYXRjaGRvZ05vbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUwICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIldhdGNoZG9nLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi0vLyBU
aGlzIGlzIGEgc3R1YiBmb3IgcGxhdGZvcm1zIHRoYXQgaGF2ZSBub3QgaW1wbGVtZW50ZWQgdGhp
cyBmdW5jdGlvbmFsaXR5LgotLy8gSW4gdGhpcyBjYXNlLCB0aGUgcGxhdGZvcm0gdGltZXIgaGVy
ZSBuZXZlciBmaXJlcy4KLQotdm9pZCBXYXRjaGRvZzo6aW5pdFRpbWVyKCkKLXsKLX0KLQotdm9p
ZCBXYXRjaGRvZzo6ZGVzdHJveVRpbWVyKCkKLXsKLX0KLQotdm9pZCBXYXRjaGRvZzo6c3RhcnRU
aW1lcihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzKQotewotfQotCi12b2lkIFdhdGNoZG9nOjpz
dG9wVGltZXIoKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258137</attachid>
            <date>2015-08-03 17:25:51 -0700</date>
            <delta_ts>2015-08-03 20:03:06 -0700</delta_ts>
            <desc>fix 3: fixed build + some bug fixes.</desc>
            <filename>bug-147107.patch</filename>
            <type>text/plain</type>
            <size>31895</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3NzgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc5IEBA
CisyMDE1LTA4LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnRhdGlvbiBKYXZhU2NyaXB0IHdhdGNoZG9nIHVzaW5nIFdURjo6V29ya1F1ZXVlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MTA3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlND
b250ZXh0UmVmLmNwcDoKKyAgICAgICAgKGNyZWF0ZVdhdGNoZG9nSWZOZWVkZWQpOgorICAgICAg
ICAoSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRpbWVMaW1pdCk6CisgICAgICAgIC0gTm8g
bmVlZCB0byBjcmVhdGUgdGhlIHdhdGNoZG9nIChpZiBub3QgYWxyZWFkeSBjcmVhdGVkKSBqdXN0
IHRvIGNsZWFyIGl0LgorICAgICAgICAgIElmIHRoZSB3YXRjaGRvZyBpcyBub3QgY3JlYXRlZCB5
ZXQsIHRoZW4gaXQgaXMgZWZmZWN0aXZlbHkgY2xlYXJlZC4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAtIFJlbW92ZSBub3cgdW5uZWVkZWQgV2F0Y2hkb2dNYWMu
Y3BwIGFuZCBXYXRjaGRvZ05vbmUuY3BwLgorCisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAqIGludGVycHJldGVy
L0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAg
ICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGxsaW50L0xMSW50T2Zmc2V0c0V4
dHJhY3Rvci5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAtIExldCdzICNpbmNsdWRlIFdhdGNoZG9nLmgg
aW4gdGhlc2UgZmlsZXMgZGlyZWN0bHkgaW5zdGVhZCBvZiBkb2luZyBpdCB2aWEgVk0uaC4KKyAg
ICAgICAgICBUaGVzZSBzYXZlcyB1cyBmcm9tIGhhdmluZyB0byByZWNvbXBpbGUgdGhlIHdvcmxk
IHdoZW4gd2UgY2hhbmdlIFdhdGNoZG9nLmguCisKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6Cisg
ICAgICAgIC0gU2VlIFRpbWVyOjpzdGFydCgpIGZvciB3aHkgdGhlIFdhdGNoZG9nIG5lZWRzIHRv
IGJlIHRocmVhZC1zYWZlIHJlZiBjb3VudGVkLgorCisgICAgICAgICogcnVudGltZS9XYXRjaGRv
Zy5jcHA6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpUaW1lcjo6VGltZXIpOgorICAgICAgICAo
SlNDOjpXYXRjaGRvZzo6VGltZXI6Om5leHRUaW1lcklEKToKKyAgICAgICAgLSBXZSBtYXkgc3Rv
cCB0aGUgdGltZXIgYmVmb3JlIGl0cyBXb3JrUXVldWUgY2FsbGJhY2sgaGFzIHJ1bi4gIFNpbmNl
IG9ubHkgb25lCisgICAgICAgICAgdGltZXIgbWF5IGJlIGFjdGl2ZSBhdCBhbnkgdGltZSwgYSBt
b25vdG9uaWNhbGx5IGluY3JlYXNpbmcgSUQgc2NoZW1lIGdpdmVzIHVzCisgICAgICAgICAgYW4g
ZWFzeSB3YXkgdG8gaW5kaWNhdGUgdG8gdGhlIFdvcmtRdWV1ZSBjYWxsYmFjayBpZiBpdHMgdGlt
ZXIgc2Vzc2lvbiBoYXMgYmVlbgorICAgICAgICAgIGNhbmNlbGxlZC4KKworICAgICAgICAgIFdl
IHJlc2VydmUgaWQgMCB0byBtZWFuIG5vIGFjdGl2ZSB0aW1lci4gIG5leHRUaW1lcklEKCkgd2ls
bCBlbnN1cmUgdGhhdCBpdAorICAgICAgICAgIG5ldmVyIHJldHVybnMgYSAwIGlkLiAgVGhlIGlk
IHZhbHVlcyB3aWxsIG1vbm90b25pY2FsbHkgaW5jcmVhc2Ugb3ZlciB0aGUKKyAgICAgICAgICBy
YW5nZSBmb3Igc2l6ZSBvZiB1aW50cHRyX3QuICBUaGVvcmV0aWNhbGx5LCB0aGVyZSBjYW4gYmUg
YW4gb3ZlcmZsb3cgYmFjayB0byBhCisgICAgICAgICAgbG93IGlkIHZhbHVlLiAgSG93ZXZlciwg
aW4gcHJhY3RpY2UsIGl0IGlzIGltcG9zc2libGUgdG8gY3JlYXRlIHRoYXQgbWFueQorICAgICAg
ICAgIFdvcmtRdWV1ZSBjYWxsYmFja3MgKGkuZS4gc3RhcnQgYW5kIHN0b3AgdGhlIHRpbWVycyB0
aGF0IG1hbnkgdGltZXMgYmVmb3JlIGVhY2gKKyAgICAgICAgICB0aW1lb3V0IGV4cGlyZXMpIGlu
IG9yZGVyIHRvIGhhdmUgdGhpcyBiZSBhIHByb2JsZW0uCisKKyAgICAgICAgKEpTQzo6V2F0Y2hk
b2c6OlRpbWVyOjpzdGFydCk6CisgICAgICAgIC0gVGhlIFdhdGNoZG9nIGlzIG5vdyB0aHJlYWQt
c2FmZSByZWYgY291bnRlZCBiZWNhdXNlIHRoZSBXb3JrUXVldWUgbWF5IGFjY2VzcyBpdAorICAg
ICAgICAgIChmcm9tIGEgZGlmZmVyZW50IHRocmVhZCkgZXZlbiBhZnRlciB0aGUgVk0gc2h1dHMg
ZG93bi4gIFdlIG5lZWQgdG8ga2VlcCBpdAorICAgICAgICAgIGFsaXZlIHVudGlsIHRoZSBXb3Jr
UXVldWUgY2FsbGJhY2sgY29tcGxldGVzLgorCisgICAgICAgICAgSW4gVGltZXI6OnN0YXJ0KCks
IHdlJ2xsIHJlZiB0aGUgV2F0Y2hkb2cgdG8ga2VlcCBpdCBhbGl2ZSBmb3IgZWFjaCBXb3JrUXVl
dWUKKyAgICAgICAgICBjYWxsYmFjayB3ZSBkaXNwYXRjaC4gIFRoZSBjYWxsYmFjayB3aWxsIGRl
cmVmIHRoZSBXYXRjaGRvZyBhZnRlciBpdCBpcyBkb25lCisgICAgICAgICAgd2l0aCBpdC4gIFRo
aXMgZW5zdXJlcyB0aGF0IHRoZSBXYXRjaGRvZyBpcyBrZXB0IGFsaXZlIHVudGlsIGFsbCBXb3Jr
UXVldWUKKyAgICAgICAgICBjYWxsYmFja3MgYXJlIGRvbmUuCisKKyAgICAgICAgKEpTQzo6V2F0
Y2hkb2c6OlRpbWVyOjpoYW5kbGVGaXJlZFRpbWVySWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpX
YXRjaGRvZzo6V2F0Y2hkb2cpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6fldhdGNoZG9nKToK
KyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnNldFRpbWVMaW1pdCk6CisgICAgICAgIChKU0M6Oldh
dGNoZG9nOjpkaWRGaXJlKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmRpc2FybSk6CisgICAg
ICAgIChKU0M6OldhdGNoZG9nOjpzdGFydENvdW50ZG93bklmTmVlZGVkKToKKyAgICAgICAgKEpT
Qzo6V2F0Y2hkb2c6OnN0YXJ0Q291bnRkb3duKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0
Y2hkb2c6OnN0b3BDb3VudGRvd24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hk
b2cuaDoKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnRpbWVyRGlkRmlyZUFkZHJlc3MpOgorICAg
ICAgICAoSlNDOjpXYXRjaGRvZzo6aXNBcm1lZCk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpU
aW1lcjo6aXNBY3RpdmUpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6VGltZXI6OmV4cGlyYXRp
b25UaW1lKToKKyAgICAgICAgKiBydW50aW1lL1dhdGNoZG9nTWFjLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBydW50aW1lL1dhdGNoZG9nTm9uZS5jcHA6IFJlbW92ZWQuCisKIDIwMTUtMDgtMDMg
IEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBm
aXggV2luZG93cy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlz
aW9uIDE4NzY1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNjExLDcgKzYxMSw2IEBAIHNldChKYXZhU2NyaXB0Q29yZV9SVU5USU1F
X1NPVVJDRVMKICAgICBydW50aW1lL1ZNRW50cnlTY29wZS5jcHAKICAgICBydW50aW1lL1Zhck9m
ZnNldC5jcHAKICAgICBydW50aW1lL1dhdGNoZG9nLmNwcAotICAgIHJ1bnRpbWUvV2F0Y2hkb2dO
b25lLmNwcAogICAgIHJ1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUv
V2Vha01hcERhdGEuY3BwCiAgICAgcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAkocmV2aXNpb24gMTg3
NjU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RhY2tWaXNpdG9yLmgiCisjaW5j
bHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC05NCw3ICs5NSw3IEBAIHN0YXRp
YyBib29sIGludGVybmFsU2NyaXB0VGltZW91dENhbGxiYWMKIHN0YXRpYyB2b2lkIGNyZWF0ZVdh
dGNoZG9nSWZOZWVkZWQoVk0mIHZtKQogewogICAgIGlmICghdm0ud2F0Y2hkb2cpIHsKLSAgICAg
ICAgdm0ud2F0Y2hkb2cgPSBzdGQ6Om1ha2VfdW5pcXVlPFdhdGNoZG9nPigpOworICAgICAgICB2
bS53YXRjaGRvZyA9IGFkb3B0UmVmKG5ldyBXYXRjaGRvZygpKTsKIAogICAgICAgICAvLyBUaGUg
TExJTlQgcGVla3MgaW50byB0aGUgV2F0Y2hkb2cgb2JqZWN0IGRpcmVjdGx5LiBJbiBvcmRlciB0
byBkbyB0aGF0LAogICAgICAgICAvLyB0aGUgTExJTlQgYXNzdW1lcyB0aGF0IHRoZSBpbnRlcm5h
bCBzaGFwZSBvZiBhIHN0ZDo6dW5pcXVlX3B0ciBpcyB0aGUKQEAgLTEyMCw5ICsxMjEsOCBAQCB2
b2lkIEpTQ29udGV4dEdyb3VwQ2xlYXJFeGVjdXRpb25UaW1lTGltCiB7CiAgICAgVk0mIHZtID0g
KnRvSlMoZ3JvdXApOwogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJnZtKTsKLSAgICBjcmVhdGVX
YXRjaGRvZ0lmTmVlZGVkKHZtKTsKLSAgICBXYXRjaGRvZyYgd2F0Y2hkb2cgPSAqdm0ud2F0Y2hk
b2c7Ci0gICAgd2F0Y2hkb2cuc2V0VGltZUxpbWl0KHZtLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNv
bmRzOjptYXgoKSk7CisgICAgaWYgKHZtLndhdGNoZG9nKQorICAgICAgICB2bS53YXRjaGRvZy0+
c2V0VGltZUxpbWl0KHZtLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzOjptYXgoKSk7CiB9CiAK
IC8vIEZyb20gdGhlIEFQSSdzIHBlcnNwZWN0aXZlLCBhIGdsb2JhbCBjb250ZXh0IHJlbWFpbnMg
YWxpdmUgaWZmIGl0IGhhcyBiZWVuIEpTR2xvYmFsQ29udGV4dFJldGFpbmVkLgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCShyZXZpc2lvbiAxODc2NTgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04NjUsNyArODY1LDYgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcVk1FbnRyeVNjb3BlLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcVmFyT2Zmc2V0LmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hkb2cuY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxXYXRjaGRvZ05vbmUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxXZWFrTWFwQ29uc3RydWN0b3IuY3BwIiAvPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccnVudGltZVxXZWFrTWFwRGF0YS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtNYXBQcm90b3R5cGUuY3BwIiAvPgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNp
b24gMTg3NjU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC05MzMs
OSArOTMzLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hkb2cu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxXYXRjaGRvZ05vbmUuY3BwIj4KLSAg
ICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cdG9vbHNcQ29kZVByb2ZpbGUuY3BwIj4KICAgICAgIDxGaWx0ZXI+
dG9vbHM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MTcxMiw3ICsxNzEyLDYgQEAKIAkJRkVEMjg3QjIxNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bj
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQy
ODdCMTE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3QTQg
LyogV2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLzsgfTsKIAkJ
RkVEOTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyog
V2F0Y2hkb2cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlGRUQ5NEYzMDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEOTRGMkQxNzFFM0UyMzAw
QkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAqLzsgfTsKIAkJRkVGMDQwNTExQUFFNjYyRDAwQkQy
OEIwIC8qIENvbXBhcmVBbmRTd2FwVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRUYwNDA1MDFBQUU2NjJEMDBCRDI4QjAgLyogQ29tcGFyZUFu
ZFN3YXBUZXN0LmNwcCAqLzsgfTsKIAkJRkVGNjgzNUUxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0
dWJzQVJNLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RUY2ODM1QTE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNBUk0uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUY2ODM1RjE3NDM0M0NDMDBBMzJF
MjUgLyogSklUU3R1YnNBUk12Ny5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkVGNjgzNUIxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNdjcuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzU1NSw3
ICszNTU0LDYgQEAKIAkJRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50T3Bjb2RlLmg7IHBhdGggPSBs
bGludC9MTEludE9wY29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQ5NEYy
QjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2F0Y2hkb2cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGRUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2F0Y2hkb2cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRkVEOTRGMkQxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhdGNoZG9nTWFjLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkVGMDQwNTAxQUFFNjYyRDAwQkQyOEIwIC8qIENvbXBhcmVBbmRT
d2FwVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb21wYXJl
QW5kU3dhcFRlc3QuY3BwOyBwYXRoID0gQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjA0MDUyMUFBRUM0RUQwMEJEMjhCMCAv
KiBDb21wYXJlQW5kU3dhcFRlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
Q29tcGFyZUFuZFN3YXBUZXN0Lmg7IHBhdGggPSBBUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjY4MzVBMTc0MzQzQ0MwMEEzMkUy
NSAvKiBKSVRTdHVic0FSTS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRT
dHVic0FSTS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg4NSw3ICs0ODgzLDYg
QEAKIAkJCQlGRTU5MzJBNjE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggKi8sCiAJ
CQkJRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLywKIAkJCQlGRUQ5
NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLywKLQkJCQlGRUQ5NEYyRDE3MUUz
RTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwICovLAogCQkJCTE0QkZDRTY4MTBDREIxRkMw
MDM2NENDRSAvKiBXZWFrR0NNYXAuaCAqLywKIAkJCQlBRDg2QTkzRDFBQTREODdDMDAyRkU3N0Yg
LyogV2Vha0dDTWFwSW5saW5lcy5oICovLAogCQkJCUE3Q0EzQUREMTdEQTQxQUUwMDY1MzhBRiAv
KiBXZWFrTWFwQ29uc3RydWN0b3IuY3BwICovLApAQCAtNzc2OSw3ICs3NzY2LDYgQEAKIAkJCQlF
MThFM0E1OTBERjkyNzhDMDBEOTBCMzQgLyogVk0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU1
OTMyQTcxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJRkVEOTRGMzAxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdCOThEMTM2MUI2MENENUYwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MTlEMjUxNTg1M0NFMDAwNEE0RTdEIC8qIFdhdGNo
cG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDRjczNzcxNzFDQTZGQjAwQzlCQjFFIC8q
IFdlYWsuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAi
U3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlICJTdHJpbmdDb25zdHJ1Y3Rvci5oIgorI2luY2x1
ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2lu
Y2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJTZXR1cFZhcmFyZ3NGcmFtZS5oIgogI2lu
Y2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxODc2NTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU2V0dXBWYXJhcmdzRnJhbWUu
aCIKICNpbmNsdWRlICJTcGlsbFJlZ2lzdGVyc01vZGUuaCIKICNpbmNsdWRlICJUeXBlUHJvZmls
ZXJMb2cuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIs
NiArNzIsNyBAQAogI2luY2x1ZGUgIlN5bWJvbC5oIgogI2luY2x1ZGUgIlZNRW50cnlTY29wZS5o
IgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAK
ICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiVHlwZUxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiVHlwZVBy
b2ZpbGVyTG9nLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCisjaW5jbHVkZSAiV2F0
Y2hkb2cuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTks
NiArNTksNyBAQAogI2luY2x1ZGUgIlNjb3BlZEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlRlc3RS
dW5uZXJVdGlscy5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUgIldh
dGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL0lubGluZUFTTS5oPgogCiBuYW1lc3BhY2UgSlNDIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNl
dHNFeHRyYWN0b3IuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUs
NiArNTUsNyBAQAogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgogI2luY2x1ZGUgIlZNRW50
cnlSZWNvcmQuaCIKICNpbmNsdWRlICJWYWx1ZVByb2ZpbGUuaCIKKyNpbmNsdWRlICJXYXRjaGRv
Zy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDE4
NzY1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1
Y3Rvci5oIgogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJl
UmFyZURhdGFJbmxpbmVzLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3dGYv
U3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lvbiAxODc2NTgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTg2LDYgKzg2LDcgQEAKICNpbmNsdWRlICJUeXBlUHJvZmlsZXIuaCIKICNpbmNsdWRlICJU
eXBlUHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgorI2luY2x1
ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSAiV2Vha0dDTWFwSW5saW5lcy5oIgogI2luY2x1ZGUg
IldlYWtNYXBEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHJldmlzaW9uIDE4NzY1OCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAK
ICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJUeXBlZEFycmF5Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgIlZNRW50cnlSZWNvcmQuaCIKLSNpbmNsdWRlICJXYXRjaGRvZy5o
IgorLy8gbWxhbSAjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlICJXYXRjaHBvaW50Lmgi
CiAjaW5jbHVkZSAiV2Vha1JhbmRvbS5oIgogI2luY2x1ZGUgPHd0Zi9CYWcuaD4KQEAgLTEwNyw2
ICsxMDcsNyBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTsKIGNsYXNzIFVubGlu
a2VkUHJvZ3JhbUNvZGVCbG9jazsKIGNsYXNzIFZpcnR1YWxSZWdpc3RlcjsKIGNsYXNzIFZNRW50
cnlTY29wZTsKK2NsYXNzIFdhdGNoZG9nOwogY2xhc3MgV2F0Y2hwb2ludDsKIGNsYXNzIFdhdGNo
cG9pbnRTZXQ7CiAKQEAgLTI1OSw3ICsyNjAsNyBAQCBwdWJsaWM6CiAgICAgQ2xpZW50RGF0YSog
Y2xpZW50RGF0YTsKICAgICBWTUVudHJ5RnJhbWUqIHRvcFZNRW50cnlGcmFtZTsKICAgICBFeGVj
U3RhdGUqIHRvcENhbGxGcmFtZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2F0Y2hkb2c+IHdhdGNo
ZG9nOworICAgIFJlZlB0cjxXYXRjaGRvZz4gd2F0Y2hkb2c7CiAKICAgICBTdHJvbmc8U3RydWN0
dXJlPiBzdHJ1Y3R1cmVTdHJ1Y3R1cmU7CiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gc3RydWN0dXJl
UmFyZURhdGFTdHJ1Y3R1cmU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
YXRjaGRvZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2F0Y2hkb2cuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XYXRjaGRvZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDc1IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAjZGVmaW5lIE5PX0xJTUlUIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29u
ZHM6Om1heCgpCiAKK1dhdGNoZG9nOjpUaW1lcjo6VGltZXIoKQorICAgIDogbV9xdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZSgianNjLndhdGNoZG9nLnF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJp
YWwsIFdvcmtRdWV1ZTo6UU9TOjpVdGlsaXR5KSkKK3sKK30KKworV2F0Y2hkb2c6OlRpbWVySUQg
V2F0Y2hkb2c6OlRpbWVyOjpuZXh0VGltZXJJRCgpCit7CisgICAgVGltZXJJRCBpZCA9IG1fbmV4
dFRpbWVySUQrKzsKKyAgICBpZiAoIWlkKQorICAgICAgICBpZCA9IG1fbmV4dFRpbWVySUQrKzsK
KyAgICByZXR1cm4gaWQ7Cit9CisKK3ZvaWQgV2F0Y2hkb2c6OlRpbWVyOjpzdGFydChXYXRjaGRv
Zyogd2F0Y2hkb2csIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgdGltZW91dCkKK3sKKyAgICAv
LyBXYXRjaGRvZzo6ZGlkRmlyZSgpIGNhbiBoYW5kbGUgc3B1cmlvdXMgd2FrZXMsIGFuZCB3aWxs
IHN0YXJ0IGEgbmV3IHRpbWVyIGZvciB0aGUgcmVtYWluaW5nCisgICAgLy8gdGltZSBpZiB0aGUg
bGltaXQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LiBIZW5jZSwgaWYgd2UgYWxyZWFkeSBoYXZl
IGFuIGFjdGl2ZSB0aW1lciwgYW5kCisgICAgLy8gdGhlIHRpbWVyJ3MgZXhwaXJhdGlvbiB3aWxs
IG9jY3VyIGF0IG9yIGJlZm9yZSB0aGUgZGVzaXJlZCBsaW1pdCwgdGhlbiB3ZSBjYW4ganVzdCBs
ZXQgdGhlCisgICAgLy8gZXhpc3RpbmcgdGltZXIgZXhwaXJlIG5hdHVyYWxseSBhbmQgaGFuZGxl
IGl0IHRoZSBzYW1lIHdheSB3ZSBoYW5kbGUgc3B1cmlvdXMgd2FrZXMuCisgICAgLy8KKyAgICAv
LyBUaGlzIGFsbG93cyB1cyB0bzoKKyAgICAvLworICAgIC8vIDEuIG1pbmltaXplIHRoZSBudW1i
ZXIgb2YgdGltZXIgaW5zdGFuY2VzIHdlIGhhdmUgcXVldWVkIGluIHRoZSB3b3JrcXVldWUgYXQg
dGhlIHNhbWUgdGltZQorICAgIC8vICAgIChpZGVhbGx5IG9ubHkgMSBvciAwKS4gTGVzcyBwZWFr
IG1lbW9yeSB1c2FnZS4KKyAgICAvLworICAgIC8vIDIuIG1pbmltaXplIHRoZSBmcmVxdWVuY3kg
b2YgaW5zdGFudGlhdGluZyB0aW1lciBpbnN0YW5jZXMuIFRoaXMgaXMgYmVjYXVzZSB3ZWxsIGJl
aGF2ZWQgSlMKKyAgICAvLyAgICBjb2RlIHdpbGwgdGVuZCB0byBlbnRlciBhbmQgZXhpdCB0aGUg
Vk0gbWFueSB0aW1lcyAoZm9yIHNob3J0IGR1cmF0aW9ucykgYmVmb3JlIGEgc2luZ2xlCisgICAg
Ly8gICAgYWN0aXZlIHRpbWVvdXQgcGVyaW9kIGV4cGlyZXMuIEFzIGEgcmVzdWx0LCB3ZSBnZXQg
dG8gc3RhcnQgb25lIHRpbWVyIHBlciB0aW1lb3V0IHBlcmlvZAorICAgIC8vICAgICh3aGljaCBp
cyBpbmZyZXF1ZW50IGJlY2F1c2UgdGltZW91dCBwZXJpb2RzIHRlbmQgdG8gYmUgbG9uZykgaW5z
dGVhZCBvZiBvbmUgdGltZXIgcGVyCisgICAgLy8gICAgVk0gZW50cnkgKHdoaWNoIGlzIGZyZXF1
ZW50KS4KKyAgICAvLworICAgIC8vIE9ubHkgaWYgd2UgZG9uJ3QgaGF2ZSBhbiBhY3RpdmUgdGlt
ZXIgYWxyZWFkeSwgb3IgaWYgdGhlIGFjdGl2ZSBvbmUgd29uJ3QgZXhwaXJlIHNvb24gZW5vdWdo
CisgICAgLy8gdG8gZW5mb3JjZSB0aGUgZGVzaXJlZCBsaW1pdCwgdGhlbiB3ZSdsbCBuZWVkIHRv
IHN0YXJ0IGEgbmV3IHRpbWVyLgorICAgIAorICAgIGF1dG8gc3RlYWR5VGltZVNpbmNlRXBvY2gg
PSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCk7Cisg
ICAgYXV0byBjdXJyZW50VGltZSA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hy
b25vOjpzZWNvbmRzPihzdGVhZHlUaW1lU2luY2VFcG9jaCk7CisgICAgaWYgKG1fYWN0aXZlVGlt
ZXJJRCkgeworICAgICAgICBpZiAoKG1fZXhwaXJhdGlvblRpbWUgPiBjdXJyZW50VGltZSkgJiYg
KG1fZXhwaXJhdGlvblRpbWUgLSBjdXJyZW50VGltZSA8PSB0aW1lb3V0KSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgCisgICAgLy8gU3RhcnQgYSBuZXcgdGltZXIuCisgICAgd2F0
Y2hkb2ctPnJlZigpOworCisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobV9t
dXRleCk7CisgICAgVGltZXJJRCBpZCA9IG5leHRUaW1lcklEKCk7CisgICAgbV9hY3RpdmVUaW1l
cklEID0gaWQ7CisgICAgbV9leHBpcmF0aW9uVGltZSA9IGN1cnJlbnRUaW1lICsgdGltZW91dDsK
KworICAgIG1fcXVldWUtPmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzKHRp
bWVvdXQpLCBbd2F0Y2hkb2csIGlkXSB7CisgICAgICAgIGF1dG8mIHRpbWVyID0gd2F0Y2hkb2ct
Pm1fdGltZXI7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKHRpbWVy
Lm1fbXV0ZXgpOworICAgICAgICBpZiAodGltZXIubV9hY3RpdmVUaW1lcklEID09IGlkICYmIHdh
dGNoZG9nLT5pc0FybWVkKCkpCisgICAgICAgICAgICB3YXRjaGRvZy0+bV90aW1lckRpZEZpcmUg
PSB0cnVlOworICAgICAgICB3YXRjaGRvZy0+ZGVyZWYoKTsKKyAgICB9KTsKK30KKyAgICAKK2Jv
b2wgV2F0Y2hkb2c6OlRpbWVyOjpoYW5kbGVGaXJlZFRpbWVySWZOZWVkZWQoV2F0Y2hkb2cqIHdh
dGNoZG9nKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fbXV0ZXgp
OworICAgIGlmICghd2F0Y2hkb2ctPm1fdGltZXJEaWRGaXJlKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCisgICAgbV9hY3RpdmVUaW1lcklEID0gMDsKKyAgICB3YXRjaGRvZy0+bV90aW1l
ckRpZEZpcmUgPSBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogV2F0Y2hkb2c6OldhdGNo
ZG9nKCkKICAgICA6IG1fdGltZXJEaWRGaXJlKGZhbHNlKQogICAgICwgbV9kaWRGaXJlKGZhbHNl
KQpAQCAtNDEsMTkgKzExMCwxNSBAQCBXYXRjaGRvZzo6V2F0Y2hkb2coKQogICAgICwgbV9zdGFy
dFRpbWUoMCkKICAgICAsIG1fZWxhcHNlZFRpbWUoMCkKICAgICAsIG1fcmVlbnRyeUNvdW50KDAp
Ci0gICAgLCBtX2lzU3RvcHBlZCh0cnVlKQogICAgICwgbV9jYWxsYmFjaygwKQogICAgICwgbV9j
YWxsYmFja0RhdGExKDApCiAgICAgLCBtX2NhbGxiYWNrRGF0YTIoMCkKIHsKLSAgICBpbml0VGlt
ZXIoKTsKIH0KIAogV2F0Y2hkb2c6On5XYXRjaGRvZygpCiB7CiAgICAgQVNTRVJUKCFpc0FybWVk
KCkpOwotICAgIHN0b3BDb3VudGRvd24oKTsKLSAgICBkZXN0cm95VGltZXIoKTsKIH0KIAogdm9p
ZCBXYXRjaGRvZzo6c2V0VGltZUxpbWl0KFZNJiB2bSwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25k
cyBsaW1pdCwKQEAgLTYxLDkgKzEyNiw2IEBAIHZvaWQgV2F0Y2hkb2c6OnNldFRpbWVMaW1pdChW
TSYgdm0sIHN0ZDoKIHsKICAgICBib29sIHdhc0VuYWJsZWQgPSBpc0VuYWJsZWQoKTsKIAotICAg
IGlmICghbV9pc1N0b3BwZWQpCi0gICAgICAgIHN0b3BDb3VudGRvd24oKTsKLQogICAgIG1fZGlk
RmlyZSA9IGZhbHNlOyAvLyBSZXNldCB0aGUgd2F0Y2hkb2cuCiAKICAgICBtX2xpbWl0ID0gbGlt
aXQ7CkBAIC05MiwxMCArMTU0LDggQEAgYm9vbCBXYXRjaGRvZzo6ZGlkRmlyZShFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgaWYgKG1fZGlkRmlyZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBp
ZiAoIW1fdGltZXJEaWRGaXJlKQorICAgIGlmICghbV90aW1lci5oYW5kbGVGaXJlZFRpbWVySWZO
ZWVkZWQodGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtX3RpbWVyRGlkRmlyZSA9
IGZhbHNlOwotICAgIHN0b3BDb3VudGRvd24oKTsKIAogICAgIGF1dG8gY3VycmVudFRpbWUgPSBj
dXJyZW50Q1BVVGltZSgpOwogICAgIGF1dG8gZGVsdGFUaW1lID0gY3VycmVudFRpbWUgLSBtX3N0
YXJ0VGltZTsKQEAgLTEyNCw3ICsxODQsNyBAQCBib29sIFdhdGNoZG9nOjpkaWRGaXJlKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgYXV0byByZW1haW5pbmdUaW1lID0gbV9saW1pdCAtIHRvdGFs
RWxhcHNlZFRpbWU7CiAgICAgICAgIG1fZWxhcHNlZFRpbWUgPSB0b3RhbEVsYXBzZWRUaW1lOwog
ICAgICAgICBtX3N0YXJ0VGltZSA9IGN1cnJlbnRUaW1lOwotICAgICAgICBzdGFydENvdW50ZG93
bihyZW1haW5pbmdUaW1lKTsKKyAgICAgICAgbV90aW1lci5zdGFydCh0aGlzLCByZW1haW5pbmdU
aW1lKTsKICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNTAsMzkgKzIxMCwxOSBAQCB2
b2lkIFdhdGNoZG9nOjphcm0oKQogdm9pZCBXYXRjaGRvZzo6ZGlzYXJtKCkKIHsKICAgICBBU1NF
UlQobV9yZWVudHJ5Q291bnQgPiAwKTsKLSAgICBpZiAobV9yZWVudHJ5Q291bnQgPT0gMSkKLSAg
ICAgICAgc3RvcENvdW50ZG93bigpOwogICAgIG1fcmVlbnRyeUNvdW50LS07CiB9CiAKIHZvaWQg
V2F0Y2hkb2c6OnN0YXJ0Q291bnRkb3duSWZOZWVkZWQoKQogewotICAgIGlmICghbV9pc1N0b3Bw
ZWQpCi0gICAgICAgIHJldHVybjsgLy8gQWxyZWFkeSBzdGFydGVkLgotCiAgICAgaWYgKCFpc0Fy
bWVkKCkpCiAgICAgICAgIHJldHVybjsgLy8gTm90IGV4ZWN1dGluZyBKUyBzY3JpcHQuIE5vIG5l
ZWQgdG8gc3RhcnQuCiAKICAgICBpZiAoaXNFbmFibGVkKCkpIHsKICAgICAgICAgbV9lbGFwc2Vk
VGltZSA9IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM6Onplcm8oKTsKICAgICAgICAgbV9zdGFy
dFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwotICAgICAgICBzdGFydENvdW50ZG93bihtX2xpbWl0
KTsKKyAgICAgICAgbV90aW1lci5zdGFydCh0aGlzLCBtX2xpbWl0KTsKICAgICB9CiB9CiAKLXZv
aWQgV2F0Y2hkb2c6OnN0YXJ0Q291bnRkb3duKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbGlt
aXQpCi17Ci0gICAgQVNTRVJUKG1faXNTdG9wcGVkKTsKLSAgICBtX2lzU3RvcHBlZCA9IGZhbHNl
OwotICAgIHN0YXJ0VGltZXIobGltaXQpOwotfQotCi12b2lkIFdhdGNoZG9nOjpzdG9wQ291bnRk
b3duKCkKLXsKLSAgICBpZiAobV9pc1N0b3BwZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBzdG9w
VGltZXIoKTsKLSAgICBtX2lzU3RvcHBlZCA9IHRydWU7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpT
QwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5oCShyZXZpc2lv
biAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwxNiArMjYsMTcgQEAKICNpZm5kZWYgV2F0Y2hkb2dfaAogI2Rl
ZmluZSBXYXRjaGRvZ19oCiAKLSNpZiBPUyhEQVJXSU4pCi0jaW5jbHVkZSA8ZGlzcGF0Y2gvZGlz
cGF0Y2guaD4gICAgCi0jZW5kaWYKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3dGYvUmVm
Lmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L1dvcmtRdWV1ZS5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgRXhlY1N0YXRlOwogY2xh
c3MgVk07CiAKLWNsYXNzIFdhdGNoZG9nIHsKK2NsYXNzIFdhdGNoZG9nIDogcHVibGljIFdURjo6
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2F0Y2hkb2c+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBjbGFzcyBTY29wZTsKQEAgLTYxLDIwICs2MiwxNCBAQCBwdWJs
aWM6CiAgICAgdm9pZCogdGltZXJEaWRGaXJlQWRkcmVzcygpIHsgcmV0dXJuICZtX3RpbWVyRGlk
RmlyZTsgfQogCiBwcml2YXRlOgorICAgIHR5cGVkZWYgdWludDMyX3QgVGltZXJJRDsKKwogICAg
IHZvaWQgYXJtKCk7CiAgICAgdm9pZCBkaXNhcm0oKTsKICAgICB2b2lkIHN0YXJ0Q291bnRkb3du
SWZOZWVkZWQoKTsKLSAgICB2b2lkIHN0YXJ0Q291bnRkb3duKHN0ZDo6Y2hyb25vOjptaWNyb3Nl
Y29uZHMgbGltaXQpOwotICAgIHZvaWQgc3RvcENvdW50ZG93bigpOwogICAgIGJvb2wgaXNBcm1l
ZCgpIHsgcmV0dXJuICEhbV9yZWVudHJ5Q291bnQ7IH0KIAotICAgIC8vIFBsYXRmb3JtIHNwZWNp
ZmljIHRpbWVyIGltcGxlbWVudGF0aW9uOgotICAgIHZvaWQgaW5pdFRpbWVyKCk7Ci0gICAgdm9p
ZCBkZXN0cm95VGltZXIoKTsKLSAgICB2b2lkIHN0YXJ0VGltZXIoc3RkOjpjaHJvbm86Om1pY3Jv
c2Vjb25kcyBsaW1pdCk7Ci0gICAgdm9pZCBzdG9wVGltZXIoKTsKLQotICAgIC8vIG1fdGltZXJE
aWRGaXJlIChhYm92ZSkgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRpbWVyIGZpcmVkLiBUaGUgV2F0
Y2hkb2cKKyAgICAvLyBtX3RpbWVyRGlkRmlyZSBpbmRpY2F0ZXMgd2hldGhlciB0aGUgdGltZXIg
ZmlyZWQuIFRoZSBXYXRjaGRvZwogICAgIC8vIHN0aWxsIG5lZWRzIHRvIGNoZWNrIGlmIHRoZSBh
bGxvd2VkIENQVSB0aW1lIGhhcyBlbGFwc2VkLiBJZiBzbywgdGhlbgogICAgIC8vIHRoZSBXYXRj
aGRvZyBmaXJlcyBhbmQgbV9kaWRGaXJlIHdpbGwgYmUgc2V0LgogICAgIC8vIE5PVEU6IG1fdGlt
ZXJEaWRGaXJlIGlzIG9ubHkgc2V0IGJ5IHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyB0aW1lcgpAQCAt
ODcsMTYgKzgyLDMxIEBAIHByaXZhdGU6CiAgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBt
X2VsYXBzZWRUaW1lOwogCiAgICAgaW50IG1fcmVlbnRyeUNvdW50OwotICAgIGJvb2wgbV9pc1N0
b3BwZWQ7CiAKICAgICBTaG91bGRUZXJtaW5hdGVDYWxsYmFjayBtX2NhbGxiYWNrOwogICAgIHZv
aWQqIG1fY2FsbGJhY2tEYXRhMTsKICAgICB2b2lkKiBtX2NhbGxiYWNrRGF0YTI7CiAKLSNpZiBP
UyhEQVJXSU4pICYmICFQTEFURk9STShFRkwpICYmICFQTEFURk9STShHVEspCi0gICAgZGlzcGF0
Y2hfcXVldWVfdCBtX3F1ZXVlOwotICAgIGRpc3BhdGNoX3NvdXJjZV90IG1fdGltZXI7Ci0jZW5k
aWYKKyAgICBjbGFzcyBUaW1lciB7CisgICAgcHVibGljOgorICAgICAgICBUaW1lcigpOworCisg
ICAgICAgIHZvaWQgc3RhcnQoV2F0Y2hkb2cqLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIHRp
bWVvdXQpOworICAgICAgICBib29sIGhhbmRsZUZpcmVkVGltZXJJZk5lZWRlZChXYXRjaGRvZyop
OworCisgICAgICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZVRpbWVy
SUQ7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFRpbWVySUQgbmV4dFRpbWVySUQoKTsKKwor
ICAgICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOworICAgICAgICBUaW1lcklEIG1fYWN0aXZl
VGltZXJJRCB7IDAgfTsKKyAgICAgICAgVGltZXJJRCBtX25leHRUaW1lcklEIHsgMSB9OworICAg
ICAgICBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIG1fZXhwaXJhdGlvblRpbWU7CisgICAgICAg
IHN0ZDo6bXV0ZXggbV9tdXRleDsKKyAgICB9OworICAgIAorICAgIFRpbWVyIG1fdGltZXI7CiAK
ICAgICBmcmllbmQgY2xhc3MgV2F0Y2hkb2c6OlNjb3BlOwogICAgIGZyaWVuZCBjbGFzcyBMTElu
dE9mZnNldHNFeHRyYWN0b3I7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
YXRjaGRvZ01hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV2F0Y2hkb2dNYWMuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9XYXRjaGRvZ01hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNzIgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2F0Y2hkb2cuaCIKLQotbmFtZXNwYWNlIEpTQyB7
Ci0KLXZvaWQgV2F0Y2hkb2c6OmluaXRUaW1lcigpCi17Ci0gICAgbV9xdWV1ZSA9IDA7Ci0gICAg
bV90aW1lciA9IDA7Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OmRlc3Ryb3lUaW1lcigpCi17Ci0gICAg
QVNTRVJUKCFtX3RpbWVyKTsKLSAgICBpZiAobV9xdWV1ZSkKLSAgICAgICAgZGlzcGF0Y2hfcmVs
ZWFzZShtX3F1ZXVlKTsKLX0KLQotdm9pZCBXYXRjaGRvZzo6c3RhcnRUaW1lcihzdGQ6OmNocm9u
bzo6bWljcm9zZWNvbmRzIGxpbWl0KQotewotICAgIEFTU0VSVCghbV90aW1lcik7Ci0gICAgaWYg
KCFtX3F1ZXVlKQotICAgICAgICBtX3F1ZXVlID0gZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJqc2Mu
d2F0Y2hkb2cucXVldWUiLCAwKTsKLSAgICBtX3RpbWVyID0gZGlzcGF0Y2hfc291cmNlX2NyZWF0
ZShESVNQQVRDSF9TT1VSQ0VfVFlQRV9USU1FUiwgMCwgMCwgbV9xdWV1ZSk7Ci0KLSAgICBkaXNw
YXRjaF9zb3VyY2Vfc2V0X3RpbWVyKG1fdGltZXIsCi0gICAgICAgIGRpc3BhdGNoX3RpbWUoRElT
UEFUQ0hfVElNRV9OT1csIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyhsaW1pdCkuY291bnQoKSks
Ci0gICAgICAgIERJU1BBVENIX1RJTUVfRk9SRVZFUiwgMCk7Ci0KLSAgICBkaXNwYXRjaF9zb3Vy
Y2Vfc2V0X2V2ZW50X2hhbmRsZXIobV90aW1lciwgXnsKLSAgICAgICAgbV90aW1lckRpZEZpcmUg
PSB0cnVlOwotICAgIH0pOwotCi0gICAgZGlzcGF0Y2hfcmVzdW1lKG1fdGltZXIpOwotfQotCi12
b2lkIFdhdGNoZG9nOjpzdG9wVGltZXIoKQotewotICAgIEFTU0VSVChtX3F1ZXVlKTsKLSAgICBk
aXNwYXRjaF9zeW5jKG1fcXVldWUsIF57Ci0gICAgICAgIGRpc3BhdGNoX3NvdXJjZV9jYW5jZWwo
bV90aW1lcik7Ci0gICAgfSk7Ci0gICAgZGlzcGF0Y2hfcmVsZWFzZShtX3RpbWVyKTsKLSAgICBt
X3RpbWVyID0gMDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ05vbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTm9uZS5jcHAJKHJldmlzaW9uIDE4NzY1OCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTm9uZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2F0Y2hkb2cu
aCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLS8vIFRoaXMgaXMgYSBzdHViIGZvciBwbGF0Zm9ybXMg
dGhhdCBoYXZlIG5vdCBpbXBsZW1lbnRlZCB0aGlzIGZ1bmN0aW9uYWxpdHkuCi0vLyBJbiB0aGlz
IGNhc2UsIHRoZSBwbGF0Zm9ybSB0aW1lciBoZXJlIG5ldmVyIGZpcmVzLgotCi12b2lkIFdhdGNo
ZG9nOjppbml0VGltZXIoKQotewotfQotCi12b2lkIFdhdGNoZG9nOjpkZXN0cm95VGltZXIoKQot
ewotfQotCi12b2lkIFdhdGNoZG9nOjpzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29u
ZHMpCi17Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OnN0b3BUaW1lcigpCi17Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIEpTQwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3NzgzKQorKysgU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDgt
MDMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudGF0
aW9uIEphdmFTY3JpcHQgd2F0Y2hkb2cgdXNpbmcgV1RGOjpXb3JrUXVldWUuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcxMDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugd2UncmUg
bm90IGludHJvZHVjaW5nIGFueSBiZWhhdmlvciBjaGFuZ2UgaGVyZS4KKyAgICAgICAgV2UncmUg
b25seSAjaW5jbHVkZSdpbmcgV2F0Y2hkb2cuaCBkaXJlY3RseSBpbnN0ZWFkIG9mIGdvaW5nIHRo
cm91Z2ggVk0uaC4KKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvV2F0Y2hk
b2cuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKwogMjAx
NS0wOC0wMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWFjXSBBbHdheXMgcmVxdWlyZSB1c2VyIGdlc3R1cmUgdG8gYmVnaW4gcGxheWluZyB0byBB
cHBsZVRWIGF1dG9tYXRpY2FsbHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFk
ZXJzL3J1bnRpbWUvV2F0Y2hkb2cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9ydW50aW1lL1dhdGNoZG9nLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL1dhdGNoZG9nLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1dhdGNoZG9nX2gKKyNkZWZp
bmUgV2ViQ29yZV9GV0RfV2F0Y2hkb2dfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1dhdGNo
ZG9nLmg+CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk2NzQsNiAr
MTk2NzQsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNc
cnVudGltZVxTdHJ1Y3R1cmUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndh
cmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3RydWN0dXJlQ2hhaW4uaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3ltYm9sVGFibGUuaCIgLz4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV2F0
Y2hkb2cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJz
XHJ1bnRpbWVcV2Vha0dDTWFwLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3
YXJkaW5nSGVhZGVyc1xydW50aW1lXFdyaXRlQmFycmllci5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFyclxZYXJySklULmgiIC8+CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTEyMjEzLDYg
KzEyMjEzLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJz
XHJ1bnRpbWVcU3ltYm9sVGFibGUuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJz
XHJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV2F0Y2hkb2cuaCI+CisgICAgICA8Rmls
dGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV2Vh
a0dDTWFwLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDE4NzY1OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaD4KICNpbmNs
dWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvVk1FbnRyeVNjb3BlLmg+
CisjaW5jbHVkZSA8cnVudGltZS9XYXRjaGRvZy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCShy
ZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1
ZGUgPHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3Iu
aD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvV2F0Y2hk
b2cuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258145</attachid>
            <date>2015-08-03 20:03:06 -0700</date>
            <delta_ts>2015-08-03 20:45:57 -0700</delta_ts>
            <desc>fix 4: enable watchdog tests for all platforms.</desc>
            <filename>bug-147107.patch</filename>
            <type>text/plain</type>
            <size>41577</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3Nzk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg2IEBA
CisyMDE1LTA4LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnRhdGlvbiBKYXZhU2NyaXB0IHdhdGNoZG9nIHVzaW5nIFdURjo6V29ya1F1ZXVlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MTA3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlND
b250ZXh0UmVmLmNwcDoKKyAgICAgICAgKGNyZWF0ZVdhdGNoZG9nSWZOZWVkZWQpOgorICAgICAg
ICAoSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRpbWVMaW1pdCk6CisgICAgICAgIC0gTm8g
bmVlZCB0byBjcmVhdGUgdGhlIHdhdGNoZG9nIChpZiBub3QgYWxyZWFkeSBjcmVhdGVkKSBqdXN0
IHRvIGNsZWFyIGl0LgorICAgICAgICAgIElmIHRoZSB3YXRjaGRvZyBpcyBub3QgY3JlYXRlZCB5
ZXQsIHRoZW4gaXQgaXMgZWZmZWN0aXZlbHkgY2xlYXJlZC4KKworICAgICAgICAqIEFQSS90ZXN0
cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoKKyAgICAgICAgKGN1cnJlbnRDUFVUaW1lQXNK
U0Z1bmN0aW9uQ2FsbGJhY2spOgorICAgICAgICAodGVzdEV4ZWN1dGlvblRpbWVMaW1pdCk6Cisg
ICAgICAgIChjdXJyZW50Q1BVVGltZSk6IERlbGV0ZWQuCisgICAgICAgICogQVBJL3Rlc3RzL3Rl
c3RhcGkuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAtIEVuYWJsZSB3YXRjaGRvZyB0ZXN0
cyBmb3IgYWxsIHBsYXRmb3Jtcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVy
czoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAtIFJlbW92ZSBub3cgdW5uZWVkZWQgV2F0Y2hkb2dNYWMuY3BwIGFuZCBXYXRjaGRv
Z05vbmUuY3BwLgorCisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNw
cDoKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgICogaml0L0pJVE9wZXJh
dGlvbnMuY3BwOgorICAgICAgICAqIGxsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHA6Cisg
ICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvVk0u
Y3BwOgorICAgICAgICAtICNpbmNsdWRlIFdhdGNoZG9nLmggaW4gdGhlc2UgZmlsZXMgZGlyZWN0
bHkgaW5zdGVhZCBvZiBkb2luZyBpdCB2aWEgVk0uaC4KKyAgICAgICAgICBUaGVzZSBzYXZlcyB1
cyBmcm9tIGhhdmluZyB0byByZWNvbXBpbGUgdGhlIHdvcmxkIHdoZW4gd2UgY2hhbmdlIFdhdGNo
ZG9nLmguCisKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgIC0gU2VlIFRpbWVyOjpz
dGFydCgpIGZvciB3aHkgdGhlIFdhdGNoZG9nIG5lZWRzIHRvIGJlIHRocmVhZC1zYWZlIHJlZiBj
b3VudGVkLgorCisgICAgICAgICogcnVudGltZS9XYXRjaGRvZy5jcHA6CisgICAgICAgIChKU0M6
OldhdGNoZG9nOjpUaW1lcjo6VGltZXIpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6VGltZXI6
Om5leHRUaW1lcklEKToKKyAgICAgICAgLSBXZSBtYXkgc3RvcCB0aGUgdGltZXIgYmVmb3JlIGl0
cyBXb3JrUXVldWUgY2FsbGJhY2sgaGFzIHJ1bi4gIFNpbmNlIG9ubHkgb25lCisgICAgICAgICAg
dGltZXIgbWF5IGJlIGFjdGl2ZSBhdCBhbnkgdGltZSwgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNp
bmcgSUQgc2NoZW1lIGdpdmVzIHVzCisgICAgICAgICAgYW4gZWFzeSB3YXkgdG8gaW5kaWNhdGUg
dG8gdGhlIFdvcmtRdWV1ZSBjYWxsYmFjayBpZiBpdHMgdGltZXIgc2Vzc2lvbiBoYXMgYmVlbgor
ICAgICAgICAgIGNhbmNlbGxlZC4KKworICAgICAgICAgIFdlIHJlc2VydmUgaWQgMCB0byBtZWFu
IG5vIGFjdGl2ZSB0aW1lci4gIG5leHRUaW1lcklEKCkgd2lsbCBlbnN1cmUgdGhhdCBpdAorICAg
ICAgICAgIG5ldmVyIHJldHVybnMgYSAwIGlkLiAgVGhlIGlkIHZhbHVlcyB3aWxsIG1vbm90b25p
Y2FsbHkgaW5jcmVhc2Ugb3ZlciB0aGUKKyAgICAgICAgICByYW5nZSBmb3Igc2l6ZSBvZiB1aW50
cHRyX3QuICBUaGVvcmV0aWNhbGx5LCB0aGVyZSBjYW4gYmUgYW4gb3ZlcmZsb3cgYmFjayB0byBh
CisgICAgICAgICAgbG93IGlkIHZhbHVlLiAgSG93ZXZlciwgaW4gcHJhY3RpY2UsIGl0IGlzIGlt
cG9zc2libGUgdG8gY3JlYXRlIHRoYXQgbWFueQorICAgICAgICAgIFdvcmtRdWV1ZSBjYWxsYmFj
a3MgKGkuZS4gc3RhcnQgYW5kIHN0b3AgdGhlIHRpbWVycyB0aGF0IG1hbnkgdGltZXMgYmVmb3Jl
IGVhY2gKKyAgICAgICAgICB0aW1lb3V0IGV4cGlyZXMpIGluIG9yZGVyIHRvIGhhdmUgdGhpcyBi
ZSBhIHByb2JsZW0uCisKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OlRpbWVyOjpzdGFydCk6Cisg
ICAgICAgIC0gVGhlIFdhdGNoZG9nIGlzIG5vdyB0aHJlYWQtc2FmZSByZWYgY291bnRlZCBiZWNh
dXNlIHRoZSBXb3JrUXVldWUgbWF5IGFjY2VzcyBpdAorICAgICAgICAgIChmcm9tIGEgZGlmZmVy
ZW50IHRocmVhZCkgZXZlbiBhZnRlciB0aGUgVk0gc2h1dHMgZG93bi4gIFdlIG5lZWQgdG8ga2Vl
cCBpdAorICAgICAgICAgIGFsaXZlIHVudGlsIHRoZSBXb3JrUXVldWUgY2FsbGJhY2sgY29tcGxl
dGVzLgorCisgICAgICAgICAgSW4gVGltZXI6OnN0YXJ0KCksIHdlJ2xsIHJlZiB0aGUgV2F0Y2hk
b2cgdG8ga2VlcCBpdCBhbGl2ZSBmb3IgZWFjaCBXb3JrUXVldWUKKyAgICAgICAgICBjYWxsYmFj
ayB3ZSBkaXNwYXRjaC4gIFRoZSBjYWxsYmFjayB3aWxsIGRlcmVmIHRoZSBXYXRjaGRvZyBhZnRl
ciBpdCBpcyBkb25lCisgICAgICAgICAgd2l0aCBpdC4gIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBX
YXRjaGRvZyBpcyBrZXB0IGFsaXZlIHVudGlsIGFsbCBXb3JrUXVldWUKKyAgICAgICAgICBjYWxs
YmFja3MgYXJlIGRvbmUuCisKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OlRpbWVyOjpoYW5kbGVG
aXJlZFRpbWVySWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6V2F0Y2hkb2cpOgor
ICAgICAgICAoSlNDOjpXYXRjaGRvZzo6fldhdGNoZG9nKToKKyAgICAgICAgKEpTQzo6V2F0Y2hk
b2c6OnNldFRpbWVMaW1pdCk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpkaWRGaXJlKToKKyAg
ICAgICAgKEpTQzo6V2F0Y2hkb2c6OmRpc2FybSk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpz
dGFydENvdW50ZG93bklmTmVlZGVkKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnN0YXJ0Q291
bnRkb3duKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnN0b3BDb3VudGRvd24p
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2cuaDoKKyAgICAgICAgKEpTQzo6
V2F0Y2hkb2c6OnRpbWVyRGlkRmlyZUFkZHJlc3MpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6
aXNBcm1lZCk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpUaW1lcjo6aXNBY3RpdmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2dNYWMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHJ1bnRp
bWUvV2F0Y2hkb2dOb25lLmNwcDogUmVtb3ZlZC4KKwogMjAxNS0wOC0wMyAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB1bmluaXRpYWxp
emVkIHByb3BlcnR5IGxlYWRpbmcgdG8gYW4gYXNzZXJ0LgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02MTEsNyArNjExLDYgQEAgc2V0
KEphdmFTY3JpcHRDb3JlX1JVTlRJTUVfU09VUkNFUwogICAgIHJ1bnRpbWUvVk1FbnRyeVNjb3Bl
LmNwcAogICAgIHJ1bnRpbWUvVmFyT2Zmc2V0LmNwcAogICAgIHJ1bnRpbWUvV2F0Y2hkb2cuY3Bw
Ci0gICAgcnVudGltZS9XYXRjaGRvZ05vbmUuY3BwCiAgICAgcnVudGltZS9XZWFrTWFwQ29uc3Ry
dWN0b3IuY3BwCiAgICAgcnVudGltZS9XZWFrTWFwRGF0YS5jcHAKICAgICBydW50aW1lL1dlYWtN
YXBQcm90b3R5cGUuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4
dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRl
eHRSZWYuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ29udGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJTdGFja1Zpc2l0b3IuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAK
QEAgLTk0LDcgKzk1LDcgQEAgc3RhdGljIGJvb2wgaW50ZXJuYWxTY3JpcHRUaW1lb3V0Q2FsbGJh
Ywogc3RhdGljIHZvaWQgY3JlYXRlV2F0Y2hkb2dJZk5lZWRlZChWTSYgdm0pCiB7CiAgICAgaWYg
KCF2bS53YXRjaGRvZykgewotICAgICAgICB2bS53YXRjaGRvZyA9IHN0ZDo6bWFrZV91bmlxdWU8
V2F0Y2hkb2c+KCk7CisgICAgICAgIHZtLndhdGNoZG9nID0gYWRvcHRSZWYobmV3IFdhdGNoZG9n
KCkpOwogCiAgICAgICAgIC8vIFRoZSBMTElOVCBwZWVrcyBpbnRvIHRoZSBXYXRjaGRvZyBvYmpl
Y3QgZGlyZWN0bHkuIEluIG9yZGVyIHRvIGRvIHRoYXQsCiAgICAgICAgIC8vIHRoZSBMTElOVCBh
c3N1bWVzIHRoYXQgdGhlIGludGVybmFsIHNoYXBlIG9mIGEgc3RkOjp1bmlxdWVfcHRyIGlzIHRo
ZQpAQCAtMTIwLDkgKzEyMSw4IEBAIHZvaWQgSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRp
bWVMaW0KIHsKICAgICBWTSYgdm0gPSAqdG9KUyhncm91cCk7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2tlcigmdm0pOwotICAgIGNyZWF0ZVdhdGNoZG9nSWZOZWVkZWQodm0pOwotICAgIFdhdGNoZG9n
JiB3YXRjaGRvZyA9ICp2bS53YXRjaGRvZzsKLSAgICB3YXRjaGRvZy5zZXRUaW1lTGltaXQodm0s
IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM6Om1heCgpKTsKKyAgICBpZiAodm0ud2F0Y2hkb2cp
CisgICAgICAgIHZtLndhdGNoZG9nLT5zZXRUaW1lTGltaXQodm0sIHN0ZDo6Y2hyb25vOjptaWNy
b3NlY29uZHM6Om1heCgpKTsKIH0KIAogLy8gRnJvbSB0aGUgQVBJJ3MgcGVyc3BlY3RpdmUsIGEg
Z2xvYmFsIGNvbnRleHQgcmVtYWlucyBhbGl2ZSBpZmYgaXQgaGFzIGJlZW4gSlNHbG9iYWxDb250
ZXh0UmV0YWluZWQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1
dGlvblRpbWVMaW1pdFRlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAJKHJldmlzaW9uIDE4NzY1OCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVz
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDM0ICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuaCIKIAotI2lmIE9TKERBUldJ
TikKLQogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJKYXZhU2Ny
aXB0Q29yZS5oIgorI2luY2x1ZGUgPGNocm9ubz4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KIAotI2luY2x1ZGUgPG1hY2gvbWFjaC5oPgotI2luY2x1ZGUgPG1hY2gvbWFjaF90aW1lLmg+
Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgordXNpbmcgbmFtZXNw
YWNlIHN0ZDo6Y2hyb25vOwogCiBzdGF0aWMgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQgPSBu
dWxscHRyOwogCi1zdGF0aWMgZG91YmxlIGN1cnJlbnRDUFVUaW1lKCkKLXsKLSAgICBtYWNoX21z
Z190eXBlX251bWJlcl90IGluZm9Db3VudCA9IFRIUkVBRF9CQVNJQ19JTkZPX0NPVU5UOwotICAg
IHRocmVhZF9iYXNpY19pbmZvX2RhdGFfdCBpbmZvOwotICAgIAotICAgIC8qIEdldCB0aHJlYWQg
aW5mb3JtYXRpb24gKi8KLSAgICBtYWNoX3BvcnRfdCB0aHJlYWRQb3J0ID0gbWFjaF90aHJlYWRf
c2VsZigpOwotICAgIHRocmVhZF9pbmZvKHRocmVhZFBvcnQsIFRIUkVBRF9CQVNJQ19JTkZPLCAo
dGhyZWFkX2luZm9fdCkoJmluZm8pLCAmaW5mb0NvdW50KTsKLSAgICBtYWNoX3BvcnRfZGVhbGxv
Y2F0ZShtYWNoX3Rhc2tfc2VsZigpLCB0aHJlYWRQb3J0KTsKLSAgICAKLSAgICBkb3VibGUgdGlt
ZSA9IGluZm8udXNlcl90aW1lLnNlY29uZHMgKyBpbmZvLnVzZXJfdGltZS5taWNyb3NlY29uZHMg
LyAxMDAwMDAwLjsKLSAgICB0aW1lICs9IGluZm8uc3lzdGVtX3RpbWUuc2Vjb25kcyArIGluZm8u
c3lzdGVtX3RpbWUubWljcm9zZWNvbmRzIC8gMTAwMDAwMC47Ci0gICAgCi0gICAgcmV0dXJuIHRp
bWU7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIGN1cnJlbnRDUFVUaW1lQXNKU0Z1bmN0aW9uQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgZnVuY3Rpb25PYmplY3QsIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGZ1bmN0aW9uT2JqZWN0KTsKQEAgLTYzLDcgKzQ0LDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgY3Vy
cmVudENQVVRpbWVBc0pTRnVuYwogICAgIFVOVVNFRF9QQVJBTShleGNlcHRpb24pOwogICAgIAog
ICAgIEFTU0VSVChKU0NvbnRleHRHZXRHbG9iYWxDb250ZXh0KGN0eCkgPT0gY29udGV4dCk7Ci0g
ICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGN0eCwgY3VycmVudENQVVRpbWUoKSk7CisgICAg
cmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGN0eCwgY3VycmVudENQVVRpbWUoKS5jb3VudCgpIC8g
MTAwMDAwMC4pOwogfQogCiBib29sIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0g
ZmFsc2U7CkBAIC0xMTYsMjIgKzk3LDIxIEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkK
ICAgICBKU1N0cmluZ1JlbGVhc2UoY3VycmVudENQVVRpbWVTdHIpOwogICAgIAogICAgIC8qIFRl
c3Qgc2NyaXB0IHRpbWVvdXQ6ICovCi0gICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1l
TGltaXQoY29udGV4dEdyb3VwLCAuMTBmLCBzaG91bGRUZXJtaW5hdGVDYWxsYmFjaywgMCk7Cisg
ICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4dEdyb3VwLCAxLjEw
Ziwgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2ssIDApOwogICAgIHsKICAgICAgICAgY29uc3QgY2hh
ciogbG9vcEZvcmV2ZXJTY3JpcHQgPSAidmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7
IHdoaWxlICh0cnVlKSB7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gLjE1MCkg
YnJlYWs7IH0gIjsKICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcobG9vcEZvcmV2ZXJTY3JpcHQpOwotICAgICAgICBkb3VibGUgc3RhcnRU
aW1lOwotICAgICAgICBkb3VibGUgZW5kVGltZTsKICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0
cjsKICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKLSAg
ICAgICAgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBzdGFydFRp
bWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICB2ID0gSlNFdmFsdWF0ZVNjcmlwdChjb250
ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICBl
bmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBlbmRUaW1lID0gY3VycmVu
dENQVVRpbWUoKTsKICAgICAgICAgCi0gICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUp
IDwgLjE1MGYpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAK
KyAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCBtaWxsaXNlY29uZHMoMTUwKSkg
JiYgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCiAgICAgICAgICAgICBwcmludGYo
IlBBU1M6IHNjcmlwdCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCAuMTUwZikpCisgICAg
ICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCBtaWxsaXNlY29uZHMoMTUwKSkp
CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBh
cyBleHBlY3RlZC5cbiIpOwogICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFj
a1dhc0NhbGxlZCkKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6IHNjcmlwdCB0aW1lb3V0
IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIik7CkBAIC0xNDksMTYgKzEyOSwxNCBAQCBpbnQg
dGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgewogICAgICAgICBjb25zdCBjaGFyKiBsb29w
Rm9yZXZlclNjcmlwdCA9ICJ2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsgdHJ5IHsg
d2hpbGUgKHRydWUpIHsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAuMTUwKSBi
cmVhazsgfSB9IGNhdGNoKGUpIHsgfSI7CiAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGxvb3BGb3JldmVyU2NyaXB0KTsKLSAgICAgICAg
ZG91YmxlIHN0YXJ0VGltZTsKLSAgICAgICAgZG91YmxlIGVuZFRpbWU7CiAgICAgICAgIGV4Y2Vw
dGlvbiA9IG51bGxwdHI7CiAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVk
ID0gZmFsc2U7Ci0gICAgICAgIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAg
IGF1dG8gc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgdiA9IEpTRXZhbHVh
dGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9u
KTsKLSAgICAgICAgZW5kVGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gZW5k
VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAgICAgICAgIAotICAgICAgICBpZiAoKChlbmRUaW1l
IC0gc3RhcnRUaW1lKSA+PSAuMTUwZikgfHwgIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2Fs
bGVkKSB7Ci0gICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCAuMTUwZikp
CisgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IG1pbGxpc2Vjb25kcygxNTAp
KSB8fCAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpIHsKKyAgICAgICAgICAgIGlm
ICghKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25kcygxNTApKSkKICAgICAgICAg
ICAgICAgICBwcmludGYoIkZBSUw6IHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVk
LlxuIik7CiAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVk
KQogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sg
d2FzIG5vdCBjYWxsZWQuXG4iKTsKQEAgLTE3OCwxNyArMTU2LDE1IEBAIGludCB0ZXN0RXhlY3V0
aW9uVGltZUxpbWl0KCkKICAgICB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGxvb3BGb3JldmVyU2Ny
aXB0ID0gInZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBp
ZiAoY3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+IC4xNTApIGJyZWFrOyB9ICI7CiAgICAg
ICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGxv
b3BGb3JldmVyU2NyaXB0KTsKLSAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsKLSAgICAgICAgZG91
YmxlIGVuZFRpbWU7CiAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIHN0YXJ0
VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gY3VycmVu
dENQVVRpbWUoKTsKICAgICAgICAgdiA9IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0
LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgZW5kVGltZSA9IGN1
cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gZW5kVGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7
CiAgICAgICAgIAotICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IC4xNTBmKSAm
JiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgaWYgKCgoZW5kVGlt
ZSAtIHN0YXJ0VGltZSkgPCBtaWxsaXNlY29uZHMoMTUwKSkgJiYgc2hvdWxkVGVybWluYXRlQ2Fs
bGJhY2tXYXNDYWxsZWQpCiAgICAgICAgICAgICBwcmludGYoIlBBU1M6IHNjcmlwdCB0aW1lZCBv
dXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iKTsKICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCAuMTUw
ZikpCisgICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCBtaWxsaXNlY29u
ZHMoMTUwKSkpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgZGlkIG5vdCB0
aW1lIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIpOwog
ICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKICAgICAgICAgfQpAQCAtMjA0LDE3ICsxODAsMTUg
QEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgIHsKICAgICAgICAgY29uc3QgY2hh
ciogbG9vcEZvcmV2ZXJTY3JpcHQgPSAidmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7
IHdoaWxlICh0cnVlKSB7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gLjE1MCkg
YnJlYWs7IH0gIjsKICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcobG9vcEZvcmV2ZXJTY3JpcHQpOwotICAgICAgICBkb3VibGUgc3RhcnRU
aW1lOwotICAgICAgICBkb3VibGUgZW5kVGltZTsKICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0
cjsKLSAgICAgICAgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBz
dGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICB2ID0gSlNFdmFsdWF0ZVNjcmlw
dChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAg
ICAgICBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBlbmRUaW1lID0g
Y3VycmVudENQVVRpbWUoKTsKICAgICAgICAgCi0gICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFy
dFRpbWUpID49IC4xNTBmKSAmJiBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCAmJiAh
ZXhjZXB0aW9uKQorICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSBtaWxsaXNl
Y29uZHMoMTUwKSkgJiYgY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgJiYgIWV4Y2Vw
dGlvbikKICAgICAgICAgICAgIHByaW50ZigiUEFTUzogc2NyaXB0IHRpbWVvdXQgd2FzIGNhbmNl
bGxlZCBhcyBleHBlY3RlZC5cbiIpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmICgo
KGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MCkgfHwgZXhjZXB0aW9uKQorICAgICAgICAgICAg
aWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCBtaWxsaXNlY29uZHMoMTUwKSkgfHwgZXhjZXB0
aW9uKQogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IHRpbWVvdXQgd2FzIG5v
dCBjYW5jZWxsZWQuXG4iKTsKICAgICAgICAgICAgIGlmICghY2FuY2VsVGVybWluYXRlQ2FsbGJh
Y2tXYXNDYWxsZWQpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgdGltZW91
dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIpOwpAQCAtMjMyLDIxICsyMDYsMTggQEAgaW50
IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgIHsKICAgICAgICAgY29uc3QgY2hhciogbG9v
cEZvcmV2ZXJTY3JpcHQgPSAidmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHdoaWxl
ICh0cnVlKSB7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gLjUwMCkgYnJlYWs7
IH0gIjsKICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcobG9vcEZvcmV2ZXJTY3JpcHQpOwotICAgICAgICBkb3VibGUgc3RhcnRUaW1lOwot
ICAgICAgICBkb3VibGUgZW5kVGltZTsKLSAgICAgICAgZG91YmxlIGRlbHRhVGltZTsKICAgICAg
ICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgc3RhcnRUaW1lID0gY3VycmVudENQVVRp
bWUoKTsKKyAgICAgICAgYXV0byBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAg
ICB2ID0gSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIs
IDEsICZleGNlcHRpb24pOwotICAgICAgICBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKLSAg
ICAgICAgZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTsKKyAgICAgICAgYXV0byBlbmRU
aW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBkZWx0YVRpbWUgPSBlbmRUaW1l
IC0gc3RhcnRUaW1lOwogICAgICAgICAKLSAgICAgICAgaWYgKChkZWx0YVRpbWUgPj0gLjMwMGYp
ICYmIChkZWx0YVRpbWUgPCAuNTAwZikgJiYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVk
ID09IDIpICYmIGV4Y2VwdGlvbikKKyAgICAgICAgaWYgKChkZWx0YVRpbWUgPj0gbWlsbGlzZWNv
bmRzKDMwMCkpICYmIChkZWx0YVRpbWUgPCBtaWxsaXNlY29uZHMoNTAwKSkgJiYgKGV4dGVuZFRl
cm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID09IDIpICYmIGV4Y2VwdGlvbikKICAgICAgICAgICAgIHBy
aW50ZigiUEFTUzogc2NyaXB0IHRpbWVvdXQgd2FzIGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIik7
CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKGRlbHRhVGltZSA8IC4yMDBmKQorICAg
ICAgICAgICAgaWYgKGRlbHRhVGltZSA8IG1pbGxpc2Vjb25kcygyMDApKQogICAgICAgICAgICAg
ICAgIHByaW50ZigiRkFJTDogc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBleHRlbmRlZCBhcyBleHBl
Y3RlZC5cbiIpOwotICAgICAgICAgICAgZWxzZSBpZiAoZGVsdGFUaW1lID49IC41MDBmKQorICAg
ICAgICAgICAgZWxzZSBpZiAoZGVsdGFUaW1lID49IG1pbGxpc2Vjb25kcyg1MDApKQogICAgICAg
ICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IGRpZCBub3QgdGltZW91dC5cbiIpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQg
PCAxKQpAQCAtMjY0LDUgKzIzNSwzIEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAg
ICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKGNvbnRleHQpOwogICAgIHJldHVybiBmYWlsZWQ7CiB9
Ci0KLSNlbmRpZiAvLyBPUyhEQVJXSU4pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL3Rlc3RhcGkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL3Rlc3RhcGkuYwkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMJKHdvcmtpbmcgY29weSkKQEAgLTQzLDkgKzQzLDcgQEAK
ICNpbmNsdWRlICJDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuaCIKICNpbmNsdWRlICJHbG9i
YWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuaCIKIAotI2lmIE9TKERBUldJTikKICNpbmNsdWRl
ICJFeGVjdXRpb25UaW1lTGltaXRUZXN0LmgiCi0jZW5kaWYKIAogI2lmIEpTQ19PQkpDX0FQSV9F
TkFCTEVECiB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKHZvaWQpOwpAQCAtMTg5Myw5ICsxODkxLDcg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgSlNHbG9iYWxDb250
ZXh0UmVsZWFzZShjb250ZXh0KTsKICAgICB9CiAKLSNpZiBPUyhEQVJXSU4pCiAgICAgZmFpbGVk
ID0gdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpIHx8IGZhaWxlZDsKLSNlbmRpZiAvKiBPUyhEQVJX
SU4pICovCiAgICAgZmFpbGVkID0gdGVzdEdsb2JhbENvbnRleHRXaXRoRmluYWxpemVyKCkgfHwg
ZmFpbGVkOwogCiAgICAgLy8gQ2xlYXIgb3V0IGxvY2FsIHZhcmlhYmxlcyBwb2ludGluZyBhdCBK
U09iamVjdFJlZnMgdG8gYWxsb3cgdGhlaXIgdmFsdWVzIHRvIGJlIGNvbGxlY3RlZApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCShyZXZpc2lvbiAxODc2NTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04NjUsNyArODY1LDYgQEAKICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcVk1FbnRyeVNjb3BlLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcVmFyT2Zmc2V0LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hkb2cuY3BwIiAvPgotICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccnVudGltZVxXYXRjaGRvZ05vbmUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccnVudGltZVxXZWFrTWFwQ29uc3RydWN0b3IuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxXZWFrTWFwRGF0YS5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtNYXBQcm90b3R5cGUuY3BwIiAvPgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2
aXNpb24gMTg3NjU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC05
MzMsOSArOTMzLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hk
b2cuY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxXYXRjaGRvZ05vbmUuY3BwIj4K
LSAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cdG9vbHNcQ29kZVByb2ZpbGUuY3BwIj4KICAgICAgIDxGaWx0
ZXI+dG9vbHM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtMTcxMiw3ICsxNzEyLDYgQEAKIAkJRkVEMjg3QjIxNUVDOUE1NzAwREE4MTYxIC8qIExMSW50
T3Bjb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RUQyODdCMTE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3
QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLzsgfTsK
IAkJRkVEOTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQg
LyogV2F0Y2hkb2cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQlGRUQ5NEYzMDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEOTRGMkQxNzFFM0Uy
MzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAqLzsgfTsKIAkJRkVGMDQwNTExQUFFNjYyRDAw
QkQyOEIwIC8qIENvbXBhcmVBbmRTd2FwVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUYwNDA1MDFBQUU2NjJEMDBCRDI4QjAgLyogQ29tcGFy
ZUFuZFN3YXBUZXN0LmNwcCAqLzsgfTsKIAkJRkVGNjgzNUUxNzQzNDNDQzAwQTMyRTI1IC8qIEpJ
VFN0dWJzQVJNLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRUY2ODM1QTE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNBUk0uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUY2ODM1RjE3NDM0M0NDMDBB
MzJFMjUgLyogSklUU3R1YnNBUk12Ny5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkVGNjgzNUIxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNdjcu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzU1
NSw3ICszNTU0LDYgQEAKIAkJRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50T3Bjb2RlLmg7IHBhdGgg
PSBsbGludC9MTEludE9wY29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQ5
NEYyQjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2F0Y2hkb2cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGRUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2F0Y2hkb2cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJRkVEOTRGMkQxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhdGNoZG9nTWFjLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVGMDQwNTAxQUFFNjYyRDAwQkQyOEIwIC8qIENvbXBhcmVB
bmRTd2FwVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb21w
YXJlQW5kU3dhcFRlc3QuY3BwOyBwYXRoID0gQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjA0MDUyMUFBRUM0RUQwMEJEMjhC
MCAvKiBDb21wYXJlQW5kU3dhcFRlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQ29tcGFyZUFuZFN3YXBUZXN0Lmg7IHBhdGggPSBBUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBU
ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjY4MzVBMTc0MzQzQ0MwMEEz
MkUyNSAvKiBKSVRTdHVic0FSTS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
SVRTdHVic0FSTS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg4NSw3ICs0ODgz
LDYgQEAKIAkJCQlGRTU5MzJBNjE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggKi8s
CiAJCQkJRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLywKIAkJCQlG
RUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLywKLQkJCQlGRUQ5NEYyRDE3
MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwICovLAogCQkJCTE0QkZDRTY4MTBDREIx
RkMwMDM2NENDRSAvKiBXZWFrR0NNYXAuaCAqLywKIAkJCQlBRDg2QTkzRDFBQTREODdDMDAyRkU3
N0YgLyogV2Vha0dDTWFwSW5saW5lcy5oICovLAogCQkJCUE3Q0EzQUREMTdEQTQxQUUwMDY1MzhB
RiAvKiBXZWFrTWFwQ29uc3RydWN0b3IuY3BwICovLApAQCAtNzc2OSw3ICs3NzY2LDYgQEAKIAkJ
CQlFMThFM0E1OTBERjkyNzhDMDBEOTBCMzQgLyogVk0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkU1OTMyQTcxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRkVEOTRGMzAxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdCOThEMTM2MUI2MENENUYwMDIzQjFBNCAvKiBKU1dBU01Nb2R1
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MTlEMjUxNTg1M0NFMDAwNEE0RTdEIC8qIFdh
dGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDRjczNzcxNzFDQTZGQjAwQzlCQjFF
IC8qIFdlYWsuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTg3NjU4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVk
ZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlICJTdHJpbmdDb25zdHJ1Y3Rvci5oIgorI2lu
Y2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcAkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAog
I2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJTZXR1cFZhcmFyZ3NGcmFtZS5oIgog
I2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxODc2NTgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU2V0dXBWYXJhcmdzRnJh
bWUuaCIKICNpbmNsdWRlICJTcGlsbFJlZ2lzdGVyc01vZGUuaCIKICNpbmNsdWRlICJUeXBlUHJv
ZmlsZXJMb2cuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9J
bnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzIsNiArNzIsNyBAQAogI2luY2x1ZGUgIlN5bWJvbC5oIgogI2luY2x1ZGUgIlZNRW50cnlTY29w
ZS5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgi
CiAKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiVHlwZUxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiVHlw
ZVByb2ZpbGVyTG9nLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCisjaW5jbHVkZSAi
V2F0Y2hkb2cuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTksNiArNTksNyBAQAogI2luY2x1ZGUgIlNjb3BlZEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlRl
c3RSdW5uZXJVdGlscy5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUg
IldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL0lubGluZUFTTS5oPgogCiBuYW1lc3BhY2UgSlND
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9m
ZnNldHNFeHRyYWN0b3IuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgogI2luY2x1ZGUgIlZN
RW50cnlSZWNvcmQuaCIKICNpbmNsdWRlICJWYWx1ZVByb2ZpbGUuaCIKKyNpbmNsdWRlICJXYXRj
aGRvZy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9u
IDE4NzY1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJPYmplY3RDb25z
dHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU3RydWN0
dXJlUmFyZURhdGFJbmxpbmVzLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTElu
dCB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lvbiAxODc2
NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg2LDYgKzg2LDcgQEAKICNpbmNsdWRlICJUeXBlUHJvZmlsZXIuaCIKICNpbmNsdWRl
ICJUeXBlUHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgorI2lu
Y2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSAiV2Vha0dDTWFwSW5saW5lcy5oIgogI2luY2x1
ZGUgIldlYWtNYXBEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHJldmlzaW9uIDE4NzY1OCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcg
QEAKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJUeXBlZEFycmF5Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIlZNRW50cnlSZWNvcmQuaCIKLSNpbmNsdWRlICJXYXRjaGRv
Zy5oIgorLy8gbWxhbSAjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlICJXYXRjaHBvaW50
LmgiCiAjaW5jbHVkZSAiV2Vha1JhbmRvbS5oIgogI2luY2x1ZGUgPHd0Zi9CYWcuaD4KQEAgLTEw
Nyw2ICsxMDcsNyBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTsKIGNsYXNzIFVu
bGlua2VkUHJvZ3JhbUNvZGVCbG9jazsKIGNsYXNzIFZpcnR1YWxSZWdpc3RlcjsKIGNsYXNzIFZN
RW50cnlTY29wZTsKK2NsYXNzIFdhdGNoZG9nOwogY2xhc3MgV2F0Y2hwb2ludDsKIGNsYXNzIFdh
dGNocG9pbnRTZXQ7CiAKQEAgLTI1OSw3ICsyNjAsNyBAQCBwdWJsaWM6CiAgICAgQ2xpZW50RGF0
YSogY2xpZW50RGF0YTsKICAgICBWTUVudHJ5RnJhbWUqIHRvcFZNRW50cnlGcmFtZTsKICAgICBF
eGVjU3RhdGUqIHRvcENhbGxGcmFtZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2F0Y2hkb2c+IHdh
dGNoZG9nOworICAgIFJlZlB0cjxXYXRjaGRvZz4gd2F0Y2hkb2c7CiAKICAgICBTdHJvbmc8U3Ry
dWN0dXJlPiBzdHJ1Y3R1cmVTdHJ1Y3R1cmU7CiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gc3RydWN0
dXJlUmFyZURhdGFTdHJ1Y3R1cmU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XYXRjaGRvZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV2F0Y2hkb2cuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9XYXRjaGRvZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDc1IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAjZGVmaW5lIE5PX0xJTUlUIHN0ZDo6Y2hyb25vOjptaWNyb3Nl
Y29uZHM6Om1heCgpCiAKK1dhdGNoZG9nOjpUaW1lcjo6VGltZXIoKQorICAgIDogbV9xdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZSgianNjLndhdGNoZG9nLnF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpT
ZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVdGlsaXR5KSkKK3sKK30KKworV2F0Y2hkb2c6OlRpbWVy
SUQgV2F0Y2hkb2c6OlRpbWVyOjpuZXh0VGltZXJJRCgpCit7CisgICAgVGltZXJJRCBpZCA9IG1f
bmV4dFRpbWVySUQrKzsKKyAgICBpZiAoIWlkKQorICAgICAgICBpZCA9IG1fbmV4dFRpbWVySUQr
KzsKKyAgICByZXR1cm4gaWQ7Cit9CisKK3ZvaWQgV2F0Y2hkb2c6OlRpbWVyOjpzdGFydChXYXRj
aGRvZyogd2F0Y2hkb2csIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgdGltZW91dCkKK3sKKyAg
ICAvLyBXYXRjaGRvZzo6ZGlkRmlyZSgpIGNhbiBoYW5kbGUgc3B1cmlvdXMgd2FrZXMsIGFuZCB3
aWxsIHN0YXJ0IGEgbmV3IHRpbWVyIGZvciB0aGUgcmVtYWluaW5nCisgICAgLy8gdGltZSBpZiB0
aGUgbGltaXQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LiBIZW5jZSwgaWYgd2UgYWxyZWFkeSBo
YXZlIGFuIGFjdGl2ZSB0aW1lciwgYW5kCisgICAgLy8gdGhlIHRpbWVyJ3MgZXhwaXJhdGlvbiB3
aWxsIG9jY3VyIGF0IG9yIGJlZm9yZSB0aGUgZGVzaXJlZCBsaW1pdCwgdGhlbiB3ZSBjYW4ganVz
dCBsZXQgdGhlCisgICAgLy8gZXhpc3RpbmcgdGltZXIgZXhwaXJlIG5hdHVyYWxseSBhbmQgaGFu
ZGxlIGl0IHRoZSBzYW1lIHdheSB3ZSBoYW5kbGUgc3B1cmlvdXMgd2FrZXMuCisgICAgLy8KKyAg
ICAvLyBUaGlzIGFsbG93cyB1cyB0bzoKKyAgICAvLworICAgIC8vIDEuIG1pbmltaXplIHRoZSBu
dW1iZXIgb2YgdGltZXIgaW5zdGFuY2VzIHdlIGhhdmUgcXVldWVkIGluIHRoZSB3b3JrcXVldWUg
YXQgdGhlIHNhbWUgdGltZQorICAgIC8vICAgIChpZGVhbGx5IG9ubHkgMSBvciAwKS4gTGVzcyBw
ZWFrIG1lbW9yeSB1c2FnZS4KKyAgICAvLworICAgIC8vIDIuIG1pbmltaXplIHRoZSBmcmVxdWVu
Y3kgb2YgaW5zdGFudGlhdGluZyB0aW1lciBpbnN0YW5jZXMuIFRoaXMgaXMgYmVjYXVzZSB3ZWxs
IGJlaGF2ZWQgSlMKKyAgICAvLyAgICBjb2RlIHdpbGwgdGVuZCB0byBlbnRlciBhbmQgZXhpdCB0
aGUgVk0gbWFueSB0aW1lcyAoZm9yIHNob3J0IGR1cmF0aW9ucykgYmVmb3JlIGEgc2luZ2xlCisg
ICAgLy8gICAgYWN0aXZlIHRpbWVvdXQgcGVyaW9kIGV4cGlyZXMuIEFzIGEgcmVzdWx0LCB3ZSBn
ZXQgdG8gc3RhcnQgb25lIHRpbWVyIHBlciB0aW1lb3V0IHBlcmlvZAorICAgIC8vICAgICh3aGlj
aCBpcyBpbmZyZXF1ZW50IGJlY2F1c2UgdGltZW91dCBwZXJpb2RzIHRlbmQgdG8gYmUgbG9uZykg
aW5zdGVhZCBvZiBvbmUgdGltZXIgcGVyCisgICAgLy8gICAgVk0gZW50cnkgKHdoaWNoIGlzIGZy
ZXF1ZW50KS4KKyAgICAvLworICAgIC8vIE9ubHkgaWYgd2UgZG9uJ3QgaGF2ZSBhbiBhY3RpdmUg
dGltZXIgYWxyZWFkeSwgb3IgaWYgdGhlIGFjdGl2ZSBvbmUgd29uJ3QgZXhwaXJlIHNvb24gZW5v
dWdoCisgICAgLy8gdG8gZW5mb3JjZSB0aGUgZGVzaXJlZCBsaW1pdCwgdGhlbiB3ZSdsbCBuZWVk
IHRvIHN0YXJ0IGEgbmV3IHRpbWVyLgorICAgIAorICAgIGF1dG8gc3RlYWR5VGltZVNpbmNlRXBv
Y2ggPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCk7
CisgICAgYXV0byBjdXJyZW50VGltZSA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6
Y2hyb25vOjpzZWNvbmRzPihzdGVhZHlUaW1lU2luY2VFcG9jaCk7CisgICAgaWYgKG1fYWN0aXZl
VGltZXJJRCkgeworICAgICAgICBpZiAoKG1fZXhwaXJhdGlvblRpbWUgPiBjdXJyZW50VGltZSkg
JiYgKG1fZXhwaXJhdGlvblRpbWUgLSBjdXJyZW50VGltZSA8PSB0aW1lb3V0KSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgLy8gU3RhcnQgYSBuZXcgdGltZXIuCisgICAg
d2F0Y2hkb2ctPnJlZigpOworCisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2so
bV9tdXRleCk7CisgICAgVGltZXJJRCBpZCA9IG5leHRUaW1lcklEKCk7CisgICAgbV9hY3RpdmVU
aW1lcklEID0gaWQ7CisgICAgbV9leHBpcmF0aW9uVGltZSA9IGN1cnJlbnRUaW1lICsgdGltZW91
dDsKKworICAgIG1fcXVldWUtPmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRz
KHRpbWVvdXQpLCBbd2F0Y2hkb2csIGlkXSB7CisgICAgICAgIGF1dG8mIHRpbWVyID0gd2F0Y2hk
b2ctPm1fdGltZXI7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKHRp
bWVyLm1fbXV0ZXgpOworICAgICAgICBpZiAodGltZXIubV9hY3RpdmVUaW1lcklEID09IGlkICYm
IHdhdGNoZG9nLT5pc0FybWVkKCkpCisgICAgICAgICAgICB3YXRjaGRvZy0+bV90aW1lckRpZEZp
cmUgPSB0cnVlOworICAgICAgICB3YXRjaGRvZy0+ZGVyZWYoKTsKKyAgICB9KTsKK30KKyAgICAK
K2Jvb2wgV2F0Y2hkb2c6OlRpbWVyOjpoYW5kbGVGaXJlZFRpbWVySWZOZWVkZWQoV2F0Y2hkb2cq
IHdhdGNoZG9nKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fbXV0
ZXgpOworICAgIGlmICghd2F0Y2hkb2ctPm1fdGltZXJEaWRGaXJlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgCisgICAgbV9hY3RpdmVUaW1lcklEID0gMDsKKyAgICB3YXRjaGRvZy0+bV90
aW1lckRpZEZpcmUgPSBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogV2F0Y2hkb2c6Oldh
dGNoZG9nKCkKICAgICA6IG1fdGltZXJEaWRGaXJlKGZhbHNlKQogICAgICwgbV9kaWRGaXJlKGZh
bHNlKQpAQCAtNDEsMTkgKzExMCwxNSBAQCBXYXRjaGRvZzo6V2F0Y2hkb2coKQogICAgICwgbV9z
dGFydFRpbWUoMCkKICAgICAsIG1fZWxhcHNlZFRpbWUoMCkKICAgICAsIG1fcmVlbnRyeUNvdW50
KDApCi0gICAgLCBtX2lzU3RvcHBlZCh0cnVlKQogICAgICwgbV9jYWxsYmFjaygwKQogICAgICwg
bV9jYWxsYmFja0RhdGExKDApCiAgICAgLCBtX2NhbGxiYWNrRGF0YTIoMCkKIHsKLSAgICBpbml0
VGltZXIoKTsKIH0KIAogV2F0Y2hkb2c6On5XYXRjaGRvZygpCiB7CiAgICAgQVNTRVJUKCFpc0Fy
bWVkKCkpOwotICAgIHN0b3BDb3VudGRvd24oKTsKLSAgICBkZXN0cm95VGltZXIoKTsKIH0KIAog
dm9pZCBXYXRjaGRvZzo6c2V0VGltZUxpbWl0KFZNJiB2bSwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vj
b25kcyBsaW1pdCwKQEAgLTYxLDkgKzEyNiw2IEBAIHZvaWQgV2F0Y2hkb2c6OnNldFRpbWVMaW1p
dChWTSYgdm0sIHN0ZDoKIHsKICAgICBib29sIHdhc0VuYWJsZWQgPSBpc0VuYWJsZWQoKTsKIAot
ICAgIGlmICghbV9pc1N0b3BwZWQpCi0gICAgICAgIHN0b3BDb3VudGRvd24oKTsKLQogICAgIG1f
ZGlkRmlyZSA9IGZhbHNlOyAvLyBSZXNldCB0aGUgd2F0Y2hkb2cuCiAKICAgICBtX2xpbWl0ID0g
bGltaXQ7CkBAIC05MiwxMCArMTU0LDggQEAgYm9vbCBXYXRjaGRvZzo6ZGlkRmlyZShFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgaWYgKG1fZGlkRmlyZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBpZiAoIW1fdGltZXJEaWRGaXJlKQorICAgIGlmICghbV90aW1lci5oYW5kbGVGaXJlZFRpbWVy
SWZOZWVkZWQodGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtX3RpbWVyRGlkRmly
ZSA9IGZhbHNlOwotICAgIHN0b3BDb3VudGRvd24oKTsKIAogICAgIGF1dG8gY3VycmVudFRpbWUg
PSBjdXJyZW50Q1BVVGltZSgpOwogICAgIGF1dG8gZGVsdGFUaW1lID0gY3VycmVudFRpbWUgLSBt
X3N0YXJ0VGltZTsKQEAgLTEyNCw3ICsxODQsNyBAQCBib29sIFdhdGNoZG9nOjpkaWRGaXJlKEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgYXV0byByZW1haW5pbmdUaW1lID0gbV9saW1pdCAtIHRv
dGFsRWxhcHNlZFRpbWU7CiAgICAgICAgIG1fZWxhcHNlZFRpbWUgPSB0b3RhbEVsYXBzZWRUaW1l
OwogICAgICAgICBtX3N0YXJ0VGltZSA9IGN1cnJlbnRUaW1lOwotICAgICAgICBzdGFydENvdW50
ZG93bihyZW1haW5pbmdUaW1lKTsKKyAgICAgICAgbV90aW1lci5zdGFydCh0aGlzLCByZW1haW5p
bmdUaW1lKTsKICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNTAsMzkgKzIxMCwxOSBA
QCB2b2lkIFdhdGNoZG9nOjphcm0oKQogdm9pZCBXYXRjaGRvZzo6ZGlzYXJtKCkKIHsKICAgICBB
U1NFUlQobV9yZWVudHJ5Q291bnQgPiAwKTsKLSAgICBpZiAobV9yZWVudHJ5Q291bnQgPT0gMSkK
LSAgICAgICAgc3RvcENvdW50ZG93bigpOwogICAgIG1fcmVlbnRyeUNvdW50LS07CiB9CiAKIHZv
aWQgV2F0Y2hkb2c6OnN0YXJ0Q291bnRkb3duSWZOZWVkZWQoKQogewotICAgIGlmICghbV9pc1N0
b3BwZWQpCi0gICAgICAgIHJldHVybjsgLy8gQWxyZWFkeSBzdGFydGVkLgotCiAgICAgaWYgKCFp
c0FybWVkKCkpCiAgICAgICAgIHJldHVybjsgLy8gTm90IGV4ZWN1dGluZyBKUyBzY3JpcHQuIE5v
IG5lZWQgdG8gc3RhcnQuCiAKICAgICBpZiAoaXNFbmFibGVkKCkpIHsKICAgICAgICAgbV9lbGFw
c2VkVGltZSA9IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM6Onplcm8oKTsKICAgICAgICAgbV9z
dGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwotICAgICAgICBzdGFydENvdW50ZG93bihtX2xp
bWl0KTsKKyAgICAgICAgbV90aW1lci5zdGFydCh0aGlzLCBtX2xpbWl0KTsKICAgICB9CiB9CiAK
LXZvaWQgV2F0Y2hkb2c6OnN0YXJ0Q291bnRkb3duKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMg
bGltaXQpCi17Ci0gICAgQVNTRVJUKG1faXNTdG9wcGVkKTsKLSAgICBtX2lzU3RvcHBlZCA9IGZh
bHNlOwotICAgIHN0YXJ0VGltZXIobGltaXQpOwotfQotCi12b2lkIFdhdGNoZG9nOjpzdG9wQ291
bnRkb3duKCkKLXsKLSAgICBpZiAobV9pc1N0b3BwZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBz
dG9wVGltZXIoKTsKLSAgICBtX2lzU3RvcHBlZCA9IHRydWU7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5oCShyZXZp
c2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNiArMjYsMTcgQEAKICNpZm5kZWYgV2F0Y2hkb2dfaAog
I2RlZmluZSBXYXRjaGRvZ19oCiAKLSNpZiBPUyhEQVJXSU4pCi0jaW5jbHVkZSA8ZGlzcGF0Y2gv
ZGlzcGF0Y2guaD4gICAgCi0jZW5kaWYKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3dGYv
UmVmLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1dvcmtRdWV1ZS5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgRXhlY1N0YXRlOwog
Y2xhc3MgVk07CiAKLWNsYXNzIFdhdGNoZG9nIHsKK2NsYXNzIFdhdGNoZG9nIDogcHVibGljIFdU
Rjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2F0Y2hkb2c+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKICAgICBjbGFzcyBTY29wZTsKQEAgLTYxLDIwICs2MiwxNCBAQCBw
dWJsaWM6CiAgICAgdm9pZCogdGltZXJEaWRGaXJlQWRkcmVzcygpIHsgcmV0dXJuICZtX3RpbWVy
RGlkRmlyZTsgfQogCiBwcml2YXRlOgorICAgIHR5cGVkZWYgdWludDMyX3QgVGltZXJJRDsKKwog
ICAgIHZvaWQgYXJtKCk7CiAgICAgdm9pZCBkaXNhcm0oKTsKICAgICB2b2lkIHN0YXJ0Q291bnRk
b3duSWZOZWVkZWQoKTsKLSAgICB2b2lkIHN0YXJ0Q291bnRkb3duKHN0ZDo6Y2hyb25vOjptaWNy
b3NlY29uZHMgbGltaXQpOwotICAgIHZvaWQgc3RvcENvdW50ZG93bigpOwogICAgIGJvb2wgaXNB
cm1lZCgpIHsgcmV0dXJuICEhbV9yZWVudHJ5Q291bnQ7IH0KIAotICAgIC8vIFBsYXRmb3JtIHNw
ZWNpZmljIHRpbWVyIGltcGxlbWVudGF0aW9uOgotICAgIHZvaWQgaW5pdFRpbWVyKCk7Ci0gICAg
dm9pZCBkZXN0cm95VGltZXIoKTsKLSAgICB2b2lkIHN0YXJ0VGltZXIoc3RkOjpjaHJvbm86Om1p
Y3Jvc2Vjb25kcyBsaW1pdCk7Ci0gICAgdm9pZCBzdG9wVGltZXIoKTsKLQotICAgIC8vIG1fdGlt
ZXJEaWRGaXJlIChhYm92ZSkgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRpbWVyIGZpcmVkLiBUaGUg
V2F0Y2hkb2cKKyAgICAvLyBtX3RpbWVyRGlkRmlyZSBpbmRpY2F0ZXMgd2hldGhlciB0aGUgdGlt
ZXIgZmlyZWQuIFRoZSBXYXRjaGRvZwogICAgIC8vIHN0aWxsIG5lZWRzIHRvIGNoZWNrIGlmIHRo
ZSBhbGxvd2VkIENQVSB0aW1lIGhhcyBlbGFwc2VkLiBJZiBzbywgdGhlbgogICAgIC8vIHRoZSBX
YXRjaGRvZyBmaXJlcyBhbmQgbV9kaWRGaXJlIHdpbGwgYmUgc2V0LgogICAgIC8vIE5PVEU6IG1f
dGltZXJEaWRGaXJlIGlzIG9ubHkgc2V0IGJ5IHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyB0aW1lcgpA
QCAtODcsMTYgKzgyLDMxIEBAIHByaXZhdGU6CiAgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25k
cyBtX2VsYXBzZWRUaW1lOwogCiAgICAgaW50IG1fcmVlbnRyeUNvdW50OwotICAgIGJvb2wgbV9p
c1N0b3BwZWQ7CiAKICAgICBTaG91bGRUZXJtaW5hdGVDYWxsYmFjayBtX2NhbGxiYWNrOwogICAg
IHZvaWQqIG1fY2FsbGJhY2tEYXRhMTsKICAgICB2b2lkKiBtX2NhbGxiYWNrRGF0YTI7CiAKLSNp
ZiBPUyhEQVJXSU4pICYmICFQTEFURk9STShFRkwpICYmICFQTEFURk9STShHVEspCi0gICAgZGlz
cGF0Y2hfcXVldWVfdCBtX3F1ZXVlOwotICAgIGRpc3BhdGNoX3NvdXJjZV90IG1fdGltZXI7Ci0j
ZW5kaWYKKyAgICBjbGFzcyBUaW1lciB7CisgICAgcHVibGljOgorICAgICAgICBUaW1lcigpOwor
CisgICAgICAgIHZvaWQgc3RhcnQoV2F0Y2hkb2cqLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRz
IHRpbWVvdXQpOworICAgICAgICBib29sIGhhbmRsZUZpcmVkVGltZXJJZk5lZWRlZChXYXRjaGRv
ZyopOworCisgICAgICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZVRp
bWVySUQ7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFRpbWVySUQgbmV4dFRpbWVySUQoKTsK
KworICAgICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOworICAgICAgICBUaW1lcklEIG1fYWN0
aXZlVGltZXJJRCB7IDAgfTsKKyAgICAgICAgVGltZXJJRCBtX25leHRUaW1lcklEIHsgMSB9Owor
ICAgICAgICBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIG1fZXhwaXJhdGlvblRpbWU7CisgICAg
ICAgIHN0ZDo6bXV0ZXggbV9tdXRleDsKKyAgICB9OworICAgIAorICAgIFRpbWVyIG1fdGltZXI7
CiAKICAgICBmcmllbmQgY2xhc3MgV2F0Y2hkb2c6OlNjb3BlOwogICAgIGZyaWVuZCBjbGFzcyBM
TEludE9mZnNldHNFeHRyYWN0b3I7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XYXRjaGRvZ01hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV2F0Y2hkb2dNYWMuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ01hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNzIg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2F0Y2hkb2cuaCIKLQotbmFtZXNwYWNlIEpT
QyB7Ci0KLXZvaWQgV2F0Y2hkb2c6OmluaXRUaW1lcigpCi17Ci0gICAgbV9xdWV1ZSA9IDA7Ci0g
ICAgbV90aW1lciA9IDA7Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OmRlc3Ryb3lUaW1lcigpCi17Ci0g
ICAgQVNTRVJUKCFtX3RpbWVyKTsKLSAgICBpZiAobV9xdWV1ZSkKLSAgICAgICAgZGlzcGF0Y2hf
cmVsZWFzZShtX3F1ZXVlKTsKLX0KLQotdm9pZCBXYXRjaGRvZzo6c3RhcnRUaW1lcihzdGQ6OmNo
cm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0KQotewotICAgIEFTU0VSVCghbV90aW1lcik7Ci0gICAg
aWYgKCFtX3F1ZXVlKQotICAgICAgICBtX3F1ZXVlID0gZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJq
c2Mud2F0Y2hkb2cucXVldWUiLCAwKTsKLSAgICBtX3RpbWVyID0gZGlzcGF0Y2hfc291cmNlX2Ny
ZWF0ZShESVNQQVRDSF9TT1VSQ0VfVFlQRV9USU1FUiwgMCwgMCwgbV9xdWV1ZSk7Ci0KLSAgICBk
aXNwYXRjaF9zb3VyY2Vfc2V0X3RpbWVyKG1fdGltZXIsCi0gICAgICAgIGRpc3BhdGNoX3RpbWUo
RElTUEFUQ0hfVElNRV9OT1csIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyhsaW1pdCkuY291bnQo
KSksCi0gICAgICAgIERJU1BBVENIX1RJTUVfRk9SRVZFUiwgMCk7Ci0KLSAgICBkaXNwYXRjaF9z
b3VyY2Vfc2V0X2V2ZW50X2hhbmRsZXIobV90aW1lciwgXnsKLSAgICAgICAgbV90aW1lckRpZEZp
cmUgPSB0cnVlOwotICAgIH0pOwotCi0gICAgZGlzcGF0Y2hfcmVzdW1lKG1fdGltZXIpOwotfQot
Ci12b2lkIFdhdGNoZG9nOjpzdG9wVGltZXIoKQotewotICAgIEFTU0VSVChtX3F1ZXVlKTsKLSAg
ICBkaXNwYXRjaF9zeW5jKG1fcXVldWUsIF57Ci0gICAgICAgIGRpc3BhdGNoX3NvdXJjZV9jYW5j
ZWwobV90aW1lcik7Ci0gICAgfSk7Ci0gICAgZGlzcGF0Y2hfcmVsZWFzZShtX3RpbWVyKTsKLSAg
ICBtX3RpbWVyID0gMDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ05vbmUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTm9uZS5jcHAJKHJldmlzaW9uIDE4NzY1
OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTm9uZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2F0Y2hk
b2cuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLS8vIFRoaXMgaXMgYSBzdHViIGZvciBwbGF0Zm9y
bXMgdGhhdCBoYXZlIG5vdCBpbXBsZW1lbnRlZCB0aGlzIGZ1bmN0aW9uYWxpdHkuCi0vLyBJbiB0
aGlzIGNhc2UsIHRoZSBwbGF0Zm9ybSB0aW1lciBoZXJlIG5ldmVyIGZpcmVzLgotCi12b2lkIFdh
dGNoZG9nOjppbml0VGltZXIoKQotewotfQotCi12b2lkIFdhdGNoZG9nOjpkZXN0cm95VGltZXIo
KQotewotfQotCi12b2lkIFdhdGNoZG9nOjpzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNyb3Nl
Y29uZHMpCi17Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OnN0b3BUaW1lcigpCi17Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3Nzk4KQorKysgU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTUt
MDgtMDMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dGF0aW9uIEphdmFTY3JpcHQgd2F0Y2hkb2cgdXNpbmcgV1RGOjpXb3JrUXVldWUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcxMDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugd2Un
cmUgbm90IGludHJvZHVjaW5nIGFueSBiZWhhdmlvciBjaGFuZ2UgaGVyZS4KKyAgICAgICAgV2Un
cmUgb25seSAjaW5jbHVkZSdpbmcgV2F0Y2hkb2cuaCBkaXJlY3RseSBpbnN0ZWFkIG9mIGdvaW5n
IHRocm91Z2ggVk0uaC4KKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvV2F0
Y2hkb2cuaDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKwogMjAxNS0wOC0wMyAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjE4NDg5OSk6IENyYXNoIHdoZW4gZm9jdXNpbmcgYW4gaW5wdXQgZWxlbWVudCBzdHlsZWQgd2l0
aCBhIHdlYiBmb250CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50
aW1lL1dhdGNoZG9nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvcnVudGltZS9XYXRjaGRvZy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9XYXRjaGRvZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9XYXRjaGRvZ19oCisjZGVmaW5lIFdlYkNv
cmVfRldEX1dhdGNoZG9nX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XYXRjaGRvZy5oPgor
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oJKHJldmlzaW9uIDE4NzY1OCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5Njc0LDYgKzE5Njc0LDcg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVc
U3RydWN0dXJlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVh
ZGVyc1xydW50aW1lXFN0cnVjdHVyZUNoYWluLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN5bWJvbFRhYmxlLmgiIC8+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFdhdGNoZG9nLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1l
XFdlYWtHQ01hcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hl
YWRlcnNccnVudGltZVxXcml0ZUJhcnJpZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHlhcnJcWWFyckpJVC5oIiAvPgpJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cwkocmV2aXNpb24gMTg3NjU4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIxMyw2ICsxMjIxMyw5
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1l
XFN5bWJvbFRhYmxlLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1l
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxG
b3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFdhdGNoZG9nLmgiPgorICAgICAgPEZpbHRlcj5Gb3J3
YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFdlYWtHQ01hcC5o
Ij4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExp
c3RlbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2
ZW50TGlzdGVuZXIuY3BwCShyZXZpc2lvbiAxODc2NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSA8cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDxydW50aW1lL1ZNRW50cnlTY29wZS5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvV2F0Y2hkb2cuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24g
MTg3NjU4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJv
bGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlIDxydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL1dhdGNoZG9nLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258150</attachid>
            <date>2015-08-03 20:45:57 -0700</date>
            <delta_ts>2015-08-03 22:23:09 -0700</delta_ts>
            <desc>fix 5: more build fix for Windows port.</desc>
            <filename>bug-147107.patch</filename>
            <type>text/plain</type>
            <size>43410</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg4IEBA
CisyMDE1LTA4LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnRhdGlvbiBKYXZhU2NyaXB0IHdhdGNoZG9nIHVzaW5nIFdURjo6V29ya1F1ZXVlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MTA3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlND
b250ZXh0UmVmLmNwcDoKKyAgICAgICAgKGNyZWF0ZVdhdGNoZG9nSWZOZWVkZWQpOgorICAgICAg
ICAoSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRpbWVMaW1pdCk6CisgICAgICAgIC0gTm8g
bmVlZCB0byBjcmVhdGUgdGhlIHdhdGNoZG9nIChpZiBub3QgYWxyZWFkeSBjcmVhdGVkKSBqdXN0
IHRvIGNsZWFyIGl0LgorICAgICAgICAgIElmIHRoZSB3YXRjaGRvZyBpcyBub3QgY3JlYXRlZCB5
ZXQsIHRoZW4gaXQgaXMgZWZmZWN0aXZlbHkgY2xlYXJlZC4KKworICAgICAgICAqIEFQSS90ZXN0
cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoKKyAgICAgICAgKGN1cnJlbnRDUFVUaW1lQXNK
U0Z1bmN0aW9uQ2FsbGJhY2spOgorICAgICAgICAodGVzdEV4ZWN1dGlvblRpbWVMaW1pdCk6Cisg
ICAgICAgIChjdXJyZW50Q1BVVGltZSk6IERlbGV0ZWQuCisgICAgICAgICogQVBJL3Rlc3RzL3Rl
c3RhcGkuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHBy
b2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4
cHJvai90ZXN0YXBpL3Rlc3RhcGkudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAtIEVuYWJsZSB3
YXRjaGRvZyB0ZXN0cyBmb3IgYWxsIHBsYXRmb3Jtcy4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4
cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAtIFJlbW92ZSBub3cgdW5uZWVkZWQgV2F0Y2hkb2dNYWMuY3Bw
IGFuZCBXYXRjaGRvZ05vbmUuY3BwLgorCisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAg
ICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgICog
aml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGxsaW50L0xMSW50T2Zmc2V0c0V4dHJh
Y3Rvci5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAtICNpbmNsdWRlIFdhdGNoZG9nLmggaW4gdGhlc2Ug
ZmlsZXMgZGlyZWN0bHkgaW5zdGVhZCBvZiBkb2luZyBpdCB2aWEgVk0uaC4KKyAgICAgICAgICBU
aGVzZSBzYXZlcyB1cyBmcm9tIGhhdmluZyB0byByZWNvbXBpbGUgdGhlIHdvcmxkIHdoZW4gd2Ug
Y2hhbmdlIFdhdGNoZG9nLmguCisKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgIC0g
U2VlIFRpbWVyOjpzdGFydCgpIGZvciB3aHkgdGhlIFdhdGNoZG9nIG5lZWRzIHRvIGJlIHRocmVh
ZC1zYWZlIHJlZiBjb3VudGVkLgorCisgICAgICAgICogcnVudGltZS9XYXRjaGRvZy5jcHA6Cisg
ICAgICAgIChKU0M6OldhdGNoZG9nOjpUaW1lcjo6VGltZXIpOgorICAgICAgICAoSlNDOjpXYXRj
aGRvZzo6VGltZXI6Om5leHRUaW1lcklEKToKKyAgICAgICAgLSBXZSBtYXkgc3RvcCB0aGUgdGlt
ZXIgYmVmb3JlIGl0cyBXb3JrUXVldWUgY2FsbGJhY2sgaGFzIHJ1bi4gIFNpbmNlIG9ubHkgb25l
CisgICAgICAgICAgdGltZXIgbWF5IGJlIGFjdGl2ZSBhdCBhbnkgdGltZSwgYSBtb25vdG9uaWNh
bGx5IGluY3JlYXNpbmcgSUQgc2NoZW1lIGdpdmVzIHVzCisgICAgICAgICAgYW4gZWFzeSB3YXkg
dG8gaW5kaWNhdGUgdG8gdGhlIFdvcmtRdWV1ZSBjYWxsYmFjayBpZiBpdHMgdGltZXIgc2Vzc2lv
biBoYXMgYmVlbgorICAgICAgICAgIGNhbmNlbGxlZC4KKworICAgICAgICAgIFdlIHJlc2VydmUg
aWQgMCB0byBtZWFuIG5vIGFjdGl2ZSB0aW1lci4gIG5leHRUaW1lcklEKCkgd2lsbCBlbnN1cmUg
dGhhdCBpdAorICAgICAgICAgIG5ldmVyIHJldHVybnMgYSAwIGlkLiAgVGhlIGlkIHZhbHVlcyB3
aWxsIG1vbm90b25pY2FsbHkgaW5jcmVhc2Ugb3ZlciB0aGUKKyAgICAgICAgICByYW5nZSBmb3Ig
c2l6ZSBvZiB1aW50cHRyX3QuICBUaGVvcmV0aWNhbGx5LCB0aGVyZSBjYW4gYmUgYW4gb3ZlcmZs
b3cgYmFjayB0byBhCisgICAgICAgICAgbG93IGlkIHZhbHVlLiAgSG93ZXZlciwgaW4gcHJhY3Rp
Y2UsIGl0IGlzIGltcG9zc2libGUgdG8gY3JlYXRlIHRoYXQgbWFueQorICAgICAgICAgIFdvcmtR
dWV1ZSBjYWxsYmFja3MgKGkuZS4gc3RhcnQgYW5kIHN0b3AgdGhlIHRpbWVycyB0aGF0IG1hbnkg
dGltZXMgYmVmb3JlIGVhY2gKKyAgICAgICAgICB0aW1lb3V0IGV4cGlyZXMpIGluIG9yZGVyIHRv
IGhhdmUgdGhpcyBiZSBhIHByb2JsZW0uCisKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OlRpbWVy
OjpzdGFydCk6CisgICAgICAgIC0gVGhlIFdhdGNoZG9nIGlzIG5vdyB0aHJlYWQtc2FmZSByZWYg
Y291bnRlZCBiZWNhdXNlIHRoZSBXb3JrUXVldWUgbWF5IGFjY2VzcyBpdAorICAgICAgICAgIChm
cm9tIGEgZGlmZmVyZW50IHRocmVhZCkgZXZlbiBhZnRlciB0aGUgVk0gc2h1dHMgZG93bi4gIFdl
IG5lZWQgdG8ga2VlcCBpdAorICAgICAgICAgIGFsaXZlIHVudGlsIHRoZSBXb3JrUXVldWUgY2Fs
bGJhY2sgY29tcGxldGVzLgorCisgICAgICAgICAgSW4gVGltZXI6OnN0YXJ0KCksIHdlJ2xsIHJl
ZiB0aGUgV2F0Y2hkb2cgdG8ga2VlcCBpdCBhbGl2ZSBmb3IgZWFjaCBXb3JrUXVldWUKKyAgICAg
ICAgICBjYWxsYmFjayB3ZSBkaXNwYXRjaC4gIFRoZSBjYWxsYmFjayB3aWxsIGRlcmVmIHRoZSBX
YXRjaGRvZyBhZnRlciBpdCBpcyBkb25lCisgICAgICAgICAgd2l0aCBpdC4gIFRoaXMgZW5zdXJl
cyB0aGF0IHRoZSBXYXRjaGRvZyBpcyBrZXB0IGFsaXZlIHVudGlsIGFsbCBXb3JrUXVldWUKKyAg
ICAgICAgICBjYWxsYmFja3MgYXJlIGRvbmUuCisKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OlRp
bWVyOjpoYW5kbGVGaXJlZFRpbWVySWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6
V2F0Y2hkb2cpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6fldhdGNoZG9nKToKKyAgICAgICAg
KEpTQzo6V2F0Y2hkb2c6OnNldFRpbWVMaW1pdCk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpk
aWRGaXJlKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmRpc2FybSk6CisgICAgICAgIChKU0M6
OldhdGNoZG9nOjpzdGFydENvdW50ZG93bklmTmVlZGVkKToKKyAgICAgICAgKEpTQzo6V2F0Y2hk
b2c6OnN0YXJ0Q291bnRkb3duKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnN0
b3BDb3VudGRvd24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2cuaDoKKyAg
ICAgICAgKEpTQzo6V2F0Y2hkb2c6OnRpbWVyRGlkRmlyZUFkZHJlc3MpOgorICAgICAgICAoSlND
OjpXYXRjaGRvZzo6aXNBcm1lZCk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpUaW1lcjo6aXNB
Y3RpdmUpOgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2dNYWMuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2dOb25lLmNwcDogUmVtb3ZlZC4KKwogMjAxNS0wOC0wMyAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZp
eCB1bmluaXRpYWxpemVkIHByb3BlcnR5IGxlYWRpbmcgdG8gYW4gYXNzZXJ0LgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02MTcsNyAr
NjE3LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1JVTlRJTUVfU09VUkNFUwogICAgIHJ1bnRpbWUv
Vk1FbnRyeVNjb3BlLmNwcAogICAgIHJ1bnRpbWUvVmFyT2Zmc2V0LmNwcAogICAgIHJ1bnRpbWUv
V2F0Y2hkb2cuY3BwCi0gICAgcnVudGltZS9XYXRjaGRvZ05vbmUuY3BwCiAgICAgcnVudGltZS9X
ZWFrTWFwQ29uc3RydWN0b3IuY3BwCiAgICAgcnVudGltZS9XZWFrTWFwRGF0YS5jcHAKICAgICBy
dW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAxODc4MDUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKQEAgLTk0LDcgKzk1LDcgQEAgc3RhdGljIGJvb2wgaW50ZXJuYWxTY3JpcHRU
aW1lb3V0Q2FsbGJhYwogc3RhdGljIHZvaWQgY3JlYXRlV2F0Y2hkb2dJZk5lZWRlZChWTSYgdm0p
CiB7CiAgICAgaWYgKCF2bS53YXRjaGRvZykgewotICAgICAgICB2bS53YXRjaGRvZyA9IHN0ZDo6
bWFrZV91bmlxdWU8V2F0Y2hkb2c+KCk7CisgICAgICAgIHZtLndhdGNoZG9nID0gYWRvcHRSZWYo
bmV3IFdhdGNoZG9nKCkpOwogCiAgICAgICAgIC8vIFRoZSBMTElOVCBwZWVrcyBpbnRvIHRoZSBX
YXRjaGRvZyBvYmplY3QgZGlyZWN0bHkuIEluIG9yZGVyIHRvIGRvIHRoYXQsCiAgICAgICAgIC8v
IHRoZSBMTElOVCBhc3N1bWVzIHRoYXQgdGhlIGludGVybmFsIHNoYXBlIG9mIGEgc3RkOjp1bmlx
dWVfcHRyIGlzIHRoZQpAQCAtMTIwLDkgKzEyMSw4IEBAIHZvaWQgSlNDb250ZXh0R3JvdXBDbGVh
ckV4ZWN1dGlvblRpbWVMaW0KIHsKICAgICBWTSYgdm0gPSAqdG9KUyhncm91cCk7CiAgICAgSlNM
b2NrSG9sZGVyIGxvY2tlcigmdm0pOwotICAgIGNyZWF0ZVdhdGNoZG9nSWZOZWVkZWQodm0pOwot
ICAgIFdhdGNoZG9nJiB3YXRjaGRvZyA9ICp2bS53YXRjaGRvZzsKLSAgICB3YXRjaGRvZy5zZXRU
aW1lTGltaXQodm0sIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM6Om1heCgpKTsKKyAgICBpZiAo
dm0ud2F0Y2hkb2cpCisgICAgICAgIHZtLndhdGNoZG9nLT5zZXRUaW1lTGltaXQodm0sIHN0ZDo6
Y2hyb25vOjptaWNyb3NlY29uZHM6Om1heCgpKTsKIH0KIAogLy8gRnJvbSB0aGUgQVBJJ3MgcGVy
c3BlY3RpdmUsIGEgZ2xvYmFsIGNvbnRleHQgcmVtYWlucyBhbGl2ZSBpZmYgaXQgaGFzIGJlZW4g
SlNHbG9iYWxDb250ZXh0UmV0YWluZWQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAJKHJldmlz
aW9uIDE4NzgwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9u
VGltZUxpbWl0VGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDM0ICsyNiwxNSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuaCIKIAot
I2lmIE9TKERBUldJTikKLQogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZhdGUuaCIKICNpbmNs
dWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2luY2x1ZGUgPGNocm9ubz4KKyNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KIAotI2luY2x1ZGUgPG1hY2gvbWFjaC5oPgotI2luY2x1ZGUgPG1hY2gv
bWFjaF90aW1lLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgor
dXNpbmcgbmFtZXNwYWNlIHN0ZDo6Y2hyb25vOwogCiBzdGF0aWMgSlNHbG9iYWxDb250ZXh0UmVm
IGNvbnRleHQgPSBudWxscHRyOwogCi1zdGF0aWMgZG91YmxlIGN1cnJlbnRDUFVUaW1lKCkKLXsK
LSAgICBtYWNoX21zZ190eXBlX251bWJlcl90IGluZm9Db3VudCA9IFRIUkVBRF9CQVNJQ19JTkZP
X0NPVU5UOwotICAgIHRocmVhZF9iYXNpY19pbmZvX2RhdGFfdCBpbmZvOwotICAgIAotICAgIC8q
IEdldCB0aHJlYWQgaW5mb3JtYXRpb24gKi8KLSAgICBtYWNoX3BvcnRfdCB0aHJlYWRQb3J0ID0g
bWFjaF90aHJlYWRfc2VsZigpOwotICAgIHRocmVhZF9pbmZvKHRocmVhZFBvcnQsIFRIUkVBRF9C
QVNJQ19JTkZPLCAodGhyZWFkX2luZm9fdCkoJmluZm8pLCAmaW5mb0NvdW50KTsKLSAgICBtYWNo
X3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCB0aHJlYWRQb3J0KTsKLSAgICAKLSAg
ICBkb3VibGUgdGltZSA9IGluZm8udXNlcl90aW1lLnNlY29uZHMgKyBpbmZvLnVzZXJfdGltZS5t
aWNyb3NlY29uZHMgLyAxMDAwMDAwLjsKLSAgICB0aW1lICs9IGluZm8uc3lzdGVtX3RpbWUuc2Vj
b25kcyArIGluZm8uc3lzdGVtX3RpbWUubWljcm9zZWNvbmRzIC8gMTAwMDAwMC47Ci0gICAgCi0g
ICAgcmV0dXJuIHRpbWU7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIGN1cnJlbnRDUFVUaW1lQXNK
U0Z1bmN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgZnVuY3Rpb25P
YmplY3QsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAg
VU5VU0VEX1BBUkFNKGZ1bmN0aW9uT2JqZWN0KTsKQEAgLTYzLDcgKzQ0LDcgQEAgc3RhdGljIEpT
VmFsdWVSZWYgY3VycmVudENQVVRpbWVBc0pTRnVuYwogICAgIFVOVVNFRF9QQVJBTShleGNlcHRp
b24pOwogICAgIAogICAgIEFTU0VSVChKU0NvbnRleHRHZXRHbG9iYWxDb250ZXh0KGN0eCkgPT0g
Y29udGV4dCk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGN0eCwgY3VycmVudENQVVRp
bWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGN0eCwgY3VycmVudENQVVRpbWUo
KS5jb3VudCgpIC8gMTAwMDAwMC4pOwogfQogCiBib29sIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNr
V2FzQ2FsbGVkID0gZmFsc2U7CkBAIC0xMTYsMjIgKzk3LDIxIEBAIGludCB0ZXN0RXhlY3V0aW9u
VGltZUxpbWl0KCkKICAgICBKU1N0cmluZ1JlbGVhc2UoY3VycmVudENQVVRpbWVTdHIpOwogICAg
IAogICAgIC8qIFRlc3Qgc2NyaXB0IHRpbWVvdXQ6ICovCi0gICAgSlNDb250ZXh0R3JvdXBTZXRF
eGVjdXRpb25UaW1lTGltaXQoY29udGV4dEdyb3VwLCAuMTBmLCBzaG91bGRUZXJtaW5hdGVDYWxs
YmFjaywgMCk7CisgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4
dEdyb3VwLCAxLjEwZiwgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2ssIDApOwogICAgIHsKICAgICAg
ICAgY29uc3QgY2hhciogbG9vcEZvcmV2ZXJTY3JpcHQgPSAidmFyIHN0YXJ0VGltZSA9IGN1cnJl
bnRDUFVUaW1lKCk7IHdoaWxlICh0cnVlKSB7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRU
aW1lID4gLjE1MCkgYnJlYWs7IH0gIjsKICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobG9vcEZvcmV2ZXJTY3JpcHQpOwotICAgICAgICBk
b3VibGUgc3RhcnRUaW1lOwotICAgICAgICBkb3VibGUgZW5kVGltZTsKICAgICAgICAgZXhjZXB0
aW9uID0gbnVsbHB0cjsKICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQg
PSBmYWxzZTsKLSAgICAgICAgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAg
YXV0byBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICB2ID0gSlNFdmFsdWF0
ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24p
OwotICAgICAgICBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBlbmRU
aW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgCi0gICAgICAgIGlmICgoKGVuZFRpbWUg
LSBzdGFydFRpbWUpIDwgLjE1MGYpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVk
KQorICAgICAgICAKKyAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCBtaWxsaXNl
Y29uZHMoMTUwKSkgJiYgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCiAgICAgICAg
ICAgICBwcmludGYoIlBBU1M6IHNjcmlwdCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQuXG4iKTsKICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCAu
MTUwZikpCisgICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCBtaWxsaXNl
Y29uZHMoMTUwKSkpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgZGlkIG5v
dCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIpOwogICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJt
aW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6IHNj
cmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIik7CkBAIC0xNDksMTYgKzEy
OSwxNCBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgewogICAgICAgICBjb25z
dCBjaGFyKiBsb29wRm9yZXZlclNjcmlwdCA9ICJ2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRp
bWUoKTsgdHJ5IHsgd2hpbGUgKHRydWUpIHsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRp
bWUgPiAuMTUwKSBicmVhazsgfSB9IGNhdGNoKGUpIHsgfSI7CiAgICAgICAgIEpTU3RyaW5nUmVm
IHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGxvb3BGb3JldmVyU2NyaXB0
KTsKLSAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsKLSAgICAgICAgZG91YmxlIGVuZFRpbWU7CiAg
ICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CiAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxi
YWNrV2FzQ2FsbGVkID0gZmFsc2U7Ci0gICAgICAgIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1l
KCk7CisgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAg
diA9IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAx
LCAmZXhjZXB0aW9uKTsKLSAgICAgICAgZW5kVGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CisgICAg
ICAgIGF1dG8gZW5kVGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAgICAgICAgIAotICAgICAgICBp
ZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSAuMTUwZikgfHwgIXNob3VsZFRlcm1pbmF0ZUNh
bGxiYWNrV2FzQ2FsbGVkKSB7Ci0gICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGlt
ZSkgPCAuMTUwZikpCisgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IG1pbGxp
c2Vjb25kcygxNTApKSB8fCAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpIHsKKyAg
ICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25kcygxNTAp
KSkKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6IHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0
IGFzIGV4cGVjdGVkLlxuIik7CiAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxi
YWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IHRpbWVv
dXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iKTsKQEAgLTE3OCwxNyArMTU2LDE1IEBAIGlu
dCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGxv
b3BGb3JldmVyU2NyaXB0ID0gInZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGls
ZSAodHJ1ZSkgeyBpZiAoY3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+IC4xNTApIGJyZWFr
OyB9ICI7CiAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKGxvb3BGb3JldmVyU2NyaXB0KTsKLSAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsK
LSAgICAgICAgZG91YmxlIGVuZFRpbWU7CiAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gc3RhcnRU
aW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgdiA9IEpTRXZhbHVhdGVTY3JpcHQoY29u
dGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAg
ZW5kVGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gZW5kVGltZSA9IGN1cnJl
bnRDUFVUaW1lKCk7CiAgICAgICAgIAotICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA8IC4xNTBmKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAg
aWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCBtaWxsaXNlY29uZHMoMTUwKSkgJiYgc2hvdWxk
VGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCiAgICAgICAgICAgICBwcmludGYoIlBBU1M6IHNj
cmlwdCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQu
XG4iKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0
VGltZSkgPCAuMTUwZikpCisgICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkg
PCBtaWxsaXNlY29uZHMoMTUwKSkpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3Jp
cHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNp
ZmllZC5cbiIpOwogICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKICAgICAgICAgfQpAQCAtMjA0
LDE3ICsxODAsMTUgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgIHsKICAgICAg
ICAgY29uc3QgY2hhciogbG9vcEZvcmV2ZXJTY3JpcHQgPSAidmFyIHN0YXJ0VGltZSA9IGN1cnJl
bnRDUFVUaW1lKCk7IHdoaWxlICh0cnVlKSB7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRU
aW1lID4gLjE1MCkgYnJlYWs7IH0gIjsKICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobG9vcEZvcmV2ZXJTY3JpcHQpOwotICAgICAgICBk
b3VibGUgc3RhcnRUaW1lOwotICAgICAgICBkb3VibGUgZW5kVGltZTsKICAgICAgICAgZXhjZXB0
aW9uID0gbnVsbHB0cjsKLSAgICAgICAgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAg
ICAgICAgYXV0byBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICB2ID0gSlNF
dmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNl
cHRpb24pOwotICAgICAgICBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0
byBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgCi0gICAgICAgIGlmICgoKGVu
ZFRpbWUgLSBzdGFydFRpbWUpID49IC4xNTBmKSAmJiBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dh
c0NhbGxlZCAmJiAhZXhjZXB0aW9uKQorICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA+PSBtaWxsaXNlY29uZHMoMTUwKSkgJiYgY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxs
ZWQgJiYgIWV4Y2VwdGlvbikKICAgICAgICAgICAgIHByaW50ZigiUEFTUzogc2NyaXB0IHRpbWVv
dXQgd2FzIGNhbmNlbGxlZCBhcyBleHBlY3RlZC5cbiIpOwogICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MCkgfHwgZXhjZXB0aW9uKQor
ICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCBtaWxsaXNlY29uZHMoMTUw
KSkgfHwgZXhjZXB0aW9uKQogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IHRp
bWVvdXQgd2FzIG5vdCBjYW5jZWxsZWQuXG4iKTsKICAgICAgICAgICAgIGlmICghY2FuY2VsVGVy
bWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBz
Y3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIpOwpAQCAtMjMyLDIxICsy
MDYsMTggQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgIHsKICAgICAgICAgY29u
c3QgY2hhciogbG9vcEZvcmV2ZXJTY3JpcHQgPSAidmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVU
aW1lKCk7IHdoaWxlICh0cnVlKSB7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4g
LjUwMCkgYnJlYWs7IH0gIjsKICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcobG9vcEZvcmV2ZXJTY3JpcHQpOwotICAgICAgICBkb3VibGUg
c3RhcnRUaW1lOwotICAgICAgICBkb3VibGUgZW5kVGltZTsKLSAgICAgICAgZG91YmxlIGRlbHRh
VGltZTsKICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgc3RhcnRUaW1lID0g
Y3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGlt
ZSgpOwogICAgICAgICB2ID0gSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxw
dHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICBlbmRUaW1lID0gY3VycmVudENQ
VVRpbWUoKTsKLSAgICAgICAgZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTsKKyAgICAg
ICAgYXV0byBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBkZWx0YVRp
bWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lOwogICAgICAgICAKLSAgICAgICAgaWYgKChkZWx0YVRp
bWUgPj0gLjMwMGYpICYmIChkZWx0YVRpbWUgPCAuNTAwZikgJiYgKGV4dGVuZFRlcm1pbmF0ZUNh
bGxiYWNrQ2FsbGVkID09IDIpICYmIGV4Y2VwdGlvbikKKyAgICAgICAgaWYgKChkZWx0YVRpbWUg
Pj0gbWlsbGlzZWNvbmRzKDMwMCkpICYmIChkZWx0YVRpbWUgPCBtaWxsaXNlY29uZHMoNTAwKSkg
JiYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID09IDIpICYmIGV4Y2VwdGlvbikKICAg
ICAgICAgICAgIHByaW50ZigiUEFTUzogc2NyaXB0IHRpbWVvdXQgd2FzIGV4dGVuZGVkIGFzIGV4
cGVjdGVkLlxuIik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKGRlbHRhVGltZSA8
IC4yMDBmKQorICAgICAgICAgICAgaWYgKGRlbHRhVGltZSA8IG1pbGxpc2Vjb25kcygyMDApKQog
ICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBleHRl
bmRlZCBhcyBleHBlY3RlZC5cbiIpOwotICAgICAgICAgICAgZWxzZSBpZiAoZGVsdGFUaW1lID49
IC41MDBmKQorICAgICAgICAgICAgZWxzZSBpZiAoZGVsdGFUaW1lID49IG1pbGxpc2Vjb25kcyg1
MDApKQogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IGRpZCBub3QgdGltZW91
dC5cbiIpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2Fs
bGJhY2tDYWxsZWQgPCAxKQpAQCAtMjY0LDUgKzIzNSwzIEBAIGludCB0ZXN0RXhlY3V0aW9uVGlt
ZUxpbWl0KCkKICAgICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKGNvbnRleHQpOwogICAgIHJldHVy
biBmYWlsZWQ7CiB9Ci0KLSNlbmRpZiAvLyBPUyhEQVJXSU4pCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMJKHdvcmtpbmcgY29weSkKQEAgLTQz
LDkgKzQzLDcgQEAKICNpbmNsdWRlICJDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuaCIKICNp
bmNsdWRlICJHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuaCIKIAotI2lmIE9TKERBUldJ
TikKICNpbmNsdWRlICJFeGVjdXRpb25UaW1lTGltaXRUZXN0LmgiCi0jZW5kaWYKIAogI2lmIEpT
Q19PQkpDX0FQSV9FTkFCTEVECiB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKHZvaWQpOwpAQCAtMTg5
Myw5ICsxODkxLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAg
SlNHbG9iYWxDb250ZXh0UmVsZWFzZShjb250ZXh0KTsKICAgICB9CiAKLSNpZiBPUyhEQVJXSU4p
CiAgICAgZmFpbGVkID0gdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpIHx8IGZhaWxlZDsKLSNlbmRp
ZiAvKiBPUyhEQVJXSU4pICovCiAgICAgZmFpbGVkID0gdGVzdEdsb2JhbENvbnRleHRXaXRoRmlu
YWxpemVyKCkgfHwgZmFpbGVkOwogCiAgICAgLy8gQ2xlYXIgb3V0IGxvY2FsIHZhcmlhYmxlcyBw
b2ludGluZyBhdCBKU09iamVjdFJlZnMgdG8gYWxsb3cgdGhlaXIgdmFsdWVzIHRvIGJlIGNvbGxl
Y3RlZApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCShyZXZpc2lv
biAxODc4MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04NjksNyArODY5LDYg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcVk1FbnRyeVNjb3BlLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcVmFyT2Zmc2V0LmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hkb2cuY3BwIiAvPgotICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxXYXRjaGRvZ05vbmUuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxXZWFrTWFwQ29uc3RydWN0b3IuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxXZWFrTWFwRGF0YS5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtNYXBQcm90b3R5cGUuY3Bw
IiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ou
ZmlsdGVycwkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5n
IGNvcHkpCkBAIC05MzMsOSArOTMzLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1
bnRpbWVcV2F0Y2hkb2cuY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxXYXRjaGRv
Z05vbmUuY3BwIj4KLSAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgotICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cdG9vbHNcQ29kZVByb2ZpbGUuY3BwIj4K
ICAgICAgIDxGaWx0ZXI+dG9vbHM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL3Rlc3RhcGkvdGVzdGFw
aS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qL3Rlc3RhcGkvdGVzdGFwaS52Y3hwcm9qCShyZXZpc2lvbiAxODc4MDUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai90ZXN0YXBpL3Rl
c3RhcGkudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjk2LDYgKzI5Niw4IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxBUElcdGVzdHNcQ29tcGFyZUFuZFN3YXBUZXN0LmgiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxBUElcdGVzdHNcQ3VzdG9tR2xvYmFsT2Jq
ZWN0Q2xhc3NUZXN0LmMiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxBUElcdGVz
dHNcQ3VzdG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmgiIC8+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlwuLlxBUElcdGVzdHNcRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAiIC8+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxBUElcdGVzdHNcRXhlY3V0aW9uVGltZUxpbWl0VGVz
dC5oIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEdsb2JhbENv
bnRleHRXaXRoRmluYWxpemVyVGVzdC5jcHAiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlwuLlxBUElcdGVzdHNcR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmgiIC8+CiAgIDwv
SXRlbUdyb3VwPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai90ZXN0YXBpL3Rlc3RhcGku
dmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxODc4MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai90ZXN0YXBpL3Rlc3RhcGkudmN4cHJvai5maWx0ZXJz
CSh3b3JraW5nIGNvcHkpCkBAIC0xMiw2ICsxMiw4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlwuLlxBUElcdGVzdHNcQ29tcGFyZUFuZFN3YXBUZXN0LmgiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlwuLlxBUElcdGVzdHNcQ3VzdG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxBUElcdGVzdHNcQ3VzdG9tR2xvYmFs
T2JqZWN0Q2xhc3NUZXN0LmgiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxBUElc
dGVzdHNcRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlwuLlxBUElcdGVzdHNcRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5oIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEdsb2JhbENvbnRleHRXaXRoRmluYWxp
emVyVGVzdC5jcHAiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxBUElcdGVzdHNc
R2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmgiIC8+CiAgIDwvSXRlbUdyb3VwPgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE4NzgwNSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzI1LDcgKzE3MjUsNiBAQAogCQlGRUQyODdCMjE1RUM5QTU3
MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFRDI4N0IxMTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9wY29kZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFRDk0
RjJFMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0
Y2hkb2cuY3BwICovOyB9OwogCQlGRUQ5NEYyRjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDk0RjJD
MTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUZFRDk0RjMwMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRj
aGRvZ01hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRUQ5NEYyRDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwICovOyB9OwogCQlG
RUYwNDA1MTFBQUU2NjJEMDBCRDI4QjAgLyogQ29tcGFyZUFuZFN3YXBUZXN0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRjA0MDUwMUFBRTY2MkQw
MEJEMjhCMCAvKiBDb21wYXJlQW5kU3dhcFRlc3QuY3BwICovOyB9OwogCQlGRUY2ODM1RTE3NDM0
M0NDMDBBMzJFMjUgLyogSklUU3R1YnNBUk0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZFRjY4MzVBMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FS
TS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZF
RjY4MzVGMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTXY3LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUY2ODM1QjE3NDM0M0NDMDBBMzJFMjUg
LyogSklUU3R1YnNBUk12Ny5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0zNTgxLDcgKzM1ODAsNiBAQAogCQlGRUQyODdCMTE1RUM5QTU3MDBEQTgx
NjEgLyogTExJbnRPcGNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTExJ
bnRPcGNvZGUuaDsgcGF0aCA9IGxsaW50L0xMSW50T3Bjb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUZFRDk0RjJCMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXRjaGRvZy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRDk0RjJDMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRv
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXRjaGRvZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlGRUQ5NEYyRDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hk
b2dNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2F0Y2hkb2dN
YWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUYwNDA1MDFBQUU2NjJEMDBC
RDI4QjAgLyogQ29tcGFyZUFuZFN3YXBUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IENvbXBhcmVBbmRTd2FwVGVzdC5jcHA7IHBhdGggPSBBUEkvdGVzdHMvQ29t
cGFyZUFuZFN3YXBUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVGMDQw
NTIxQUFFQzRFRDAwQkQyOEIwIC8qIENvbXBhcmVBbmRTd2FwVGVzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBDb21wYXJlQW5kU3dhcFRlc3QuaDsgcGF0aCA9IEFQSS90ZXN0
cy9Db21wYXJlQW5kU3dhcFRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVG
NjgzNUExNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpJVFN0dWJzQVJNLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC00OTE0LDcgKzQ5MTIsNiBAQAogCQkJCUZFNTkzMkE2MTgzQzVBMjYwMEExRUNDQyAvKiBW
TUVudHJ5U2NvcGUuaCAqLywKIAkJCQlGRUQ5NEYyQjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hk
b2cuY3BwICovLAogCQkJCUZFRDk0RjJDMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5oICov
LAotCQkJCUZFRDk0RjJEMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZ01hYy5jcHAgKi8sCiAJ
CQkJMTRCRkNFNjgxMENEQjFGQzAwMzY0Q0NFIC8qIFdlYWtHQ01hcC5oICovLAogCQkJCUFEODZB
OTNEMUFBNEQ4N0MwMDJGRTc3RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggKi8sCiAJCQkJQTdDQTNB
REQxN0RBNDFBRTAwNjUzOEFGIC8qIFdlYWtNYXBDb25zdHJ1Y3Rvci5jcHAgKi8sCkBAIC03ODIx
LDcgKzc4MTgsNiBAQAogCQkJCUUxOEUzQTU5MERGOTI3OEMwMEQ5MEIzNCAvKiBWTS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGRTU5MzJBNzE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3Bl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFRDk0RjJFMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRj
aGRvZy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGRUQ5NEYzMDE3MUUzRTIzMDBCRTc3QTQgLyog
V2F0Y2hkb2dNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0I5OEQxMzYxQjYwQ0Q1RjAwMjNC
MUE0IC8qIEpTV0FTTU1vZHVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkxOUQyNTE1ODUz
Q0UwMDA0QTRFN0QgLyogV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUNGNzM3
NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lv
biAxODc4MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlB1dEJ5SWRT
dGF0dXMuaCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgIlN0cmluZ0Nv
bnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3dGYvQ29tbWFQ
cmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAxODc4MDUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIlNldHVw
VmFyYXJnc0ZyYW1lLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCisjaW5jbHVkZSAi
V2F0Y2hkb2cuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJ
KHJldmlzaW9uIDE4NzgwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRl
ICJTZXR1cFZhcmFyZ3NGcmFtZS5oIgogI2luY2x1ZGUgIlNwaWxsUmVnaXN0ZXJzTW9kZS5oIgog
I2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiAxODc4MDUp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAiU3ltYm9sLmgiCiAjaW5j
bHVkZSAiVk1FbnRyeVNjb3BlLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCisjaW5j
bHVkZSAiV2F0Y2hkb2cuaCIKIAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHN0ZGlv
Lmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJldmlz
aW9uIDE4NzgwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJUeXBlTG9jYXRpb24u
aCIKICNpbmNsdWRlICJUeXBlUHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0
ZXIuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAx
ODc4MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRz
LmgiCiAjaW5jbHVkZSAiVGVzdFJ1bm5lclV0aWxzLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVy
TG9nLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+
CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAJKHJldmlzaW9uIDE4NzgwNSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9n
LmgiCiAjaW5jbHVkZSAiVk1FbnRyeVJlY29yZC5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5o
IgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5o
PgogCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1Bh
dGhzLmNwcAkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBAQAogI2lu
Y2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIK
ICNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKKyNpbmNsdWRlICJXYXRjaGRv
Zy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIExMSW50IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAJKHJldmlzaW9uIDE4NzgwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQAogI2luY2x1ZGUgIlR5cGVQcm9m
aWxlci5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgogI2luY2x1ZGUgIlVubGlua2Vk
Q29kZUJsb2NrLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlICJXZWFrR0NNYXBJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiV2Vha01hcERhdGEuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkocmV2aXNpb24gMTg3
ODA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkod29ya2luZyBjb3B5
KQpAQCAtNTAsNyArNTAsNiBAQAogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1
ZGUgIlR5cGVkQXJyYXlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVk1FbnRyeVJlY29yZC5oIgot
I2luY2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSAiV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUg
IldlYWtSYW5kb20uaCIKICNpbmNsdWRlIDx3dGYvQmFnLmg+CkBAIC0xMDcsNiArMTA2LDcgQEAg
Y2xhc3MgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU7CiBjbGFzcyBVbmxpbmtlZFByb2dyYW1D
b2RlQmxvY2s7CiBjbGFzcyBWaXJ0dWFsUmVnaXN0ZXI7CiBjbGFzcyBWTUVudHJ5U2NvcGU7Citj
bGFzcyBXYXRjaGRvZzsKIGNsYXNzIFdhdGNocG9pbnQ7CiBjbGFzcyBXYXRjaHBvaW50U2V0Owog
CkBAIC0yNTksNyArMjU5LDcgQEAgcHVibGljOgogICAgIENsaWVudERhdGEqIGNsaWVudERhdGE7
CiAgICAgVk1FbnRyeUZyYW1lKiB0b3BWTUVudHJ5RnJhbWU7CiAgICAgRXhlY1N0YXRlKiB0b3BD
YWxsRnJhbWU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdhdGNoZG9nPiB3YXRjaGRvZzsKKyAgICBS
ZWZQdHI8V2F0Y2hkb2c+IHdhdGNoZG9nOwogCiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gc3RydWN0
dXJlU3RydWN0dXJlOwogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHN0cnVjdHVyZVJhcmVEYXRhU3Ry
dWN0dXJlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNw
cAkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0
Y2hkb2cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3NSBAQCBuYW1lc3BhY2UgSlND
IHsKIAogI2RlZmluZSBOT19MSU1JVCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzOjptYXgoKQog
CitXYXRjaGRvZzo6VGltZXI6OlRpbWVyKCkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoImpzYy53YXRjaGRvZy5xdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVl
dWU6OlFPUzo6VXRpbGl0eSkpCit7Cit9CisKK1dhdGNoZG9nOjpUaW1lcklEIFdhdGNoZG9nOjpU
aW1lcjo6bmV4dFRpbWVySUQoKQoreworICAgIFRpbWVySUQgaWQgPSBtX25leHRUaW1lcklEKys7
CisgICAgaWYgKCFpZCkKKyAgICAgICAgaWQgPSBtX25leHRUaW1lcklEKys7CisgICAgcmV0dXJu
IGlkOworfQorCit2b2lkIFdhdGNoZG9nOjpUaW1lcjo6c3RhcnQoV2F0Y2hkb2cqIHdhdGNoZG9n
LCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIHRpbWVvdXQpCit7CisgICAgLy8gV2F0Y2hkb2c6
OmRpZEZpcmUoKSBjYW4gaGFuZGxlIHNwdXJpb3VzIHdha2VzLCBhbmQgd2lsbCBzdGFydCBhIG5l
dyB0aW1lciBmb3IgdGhlIHJlbWFpbmluZworICAgIC8vIHRpbWUgaWYgdGhlIGxpbWl0IGhhcyBu
b3QgYmVlbiByZWFjaGVkIHlldC4gSGVuY2UsIGlmIHdlIGFscmVhZHkgaGF2ZSBhbiBhY3RpdmUg
dGltZXIsIGFuZAorICAgIC8vIHRoZSB0aW1lcidzIGV4cGlyYXRpb24gd2lsbCBvY2N1ciBhdCBv
ciBiZWZvcmUgdGhlIGRlc2lyZWQgbGltaXQsIHRoZW4gd2UgY2FuIGp1c3QgbGV0IHRoZQorICAg
IC8vIGV4aXN0aW5nIHRpbWVyIGV4cGlyZSBuYXR1cmFsbHkgYW5kIGhhbmRsZSBpdCB0aGUgc2Ft
ZSB3YXkgd2UgaGFuZGxlIHNwdXJpb3VzIHdha2VzLgorICAgIC8vCisgICAgLy8gVGhpcyBhbGxv
d3MgdXMgdG86CisgICAgLy8KKyAgICAvLyAxLiBtaW5pbWl6ZSB0aGUgbnVtYmVyIG9mIHRpbWVy
IGluc3RhbmNlcyB3ZSBoYXZlIHF1ZXVlZCBpbiB0aGUgd29ya3F1ZXVlIGF0IHRoZSBzYW1lIHRp
bWUKKyAgICAvLyAgICAoaWRlYWxseSBvbmx5IDEgb3IgMCkuIExlc3MgcGVhayBtZW1vcnkgdXNh
Z2UuCisgICAgLy8KKyAgICAvLyAyLiBtaW5pbWl6ZSB0aGUgZnJlcXVlbmN5IG9mIGluc3RhbnRp
YXRpbmcgdGltZXIgaW5zdGFuY2VzLiBUaGlzIGlzIGJlY2F1c2Ugd2VsbCBiZWhhdmVkIEpTCisg
ICAgLy8gICAgY29kZSB3aWxsIHRlbmQgdG8gZW50ZXIgYW5kIGV4aXQgdGhlIFZNIG1hbnkgdGlt
ZXMgKGZvciBzaG9ydCBkdXJhdGlvbnMpIGJlZm9yZSBhIHNpbmdsZQorICAgIC8vICAgIGFjdGl2
ZSB0aW1lb3V0IHBlcmlvZCBleHBpcmVzLiBBcyBhIHJlc3VsdCwgd2UgZ2V0IHRvIHN0YXJ0IG9u
ZSB0aW1lciBwZXIgdGltZW91dCBwZXJpb2QKKyAgICAvLyAgICAod2hpY2ggaXMgaW5mcmVxdWVu
dCBiZWNhdXNlIHRpbWVvdXQgcGVyaW9kcyB0ZW5kIHRvIGJlIGxvbmcpIGluc3RlYWQgb2Ygb25l
IHRpbWVyIHBlcgorICAgIC8vICAgIFZNIGVudHJ5ICh3aGljaCBpcyBmcmVxdWVudCkuCisgICAg
Ly8KKyAgICAvLyBPbmx5IGlmIHdlIGRvbid0IGhhdmUgYW4gYWN0aXZlIHRpbWVyIGFscmVhZHks
IG9yIGlmIHRoZSBhY3RpdmUgb25lIHdvbid0IGV4cGlyZSBzb29uIGVub3VnaAorICAgIC8vIHRv
IGVuZm9yY2UgdGhlIGRlc2lyZWQgbGltaXQsIHRoZW4gd2UnbGwgbmVlZCB0byBzdGFydCBhIG5l
dyB0aW1lci4KKyAgICAKKyAgICBhdXRvIHN0ZWFkeVRpbWVTaW5jZUVwb2NoID0gc3RkOjpjaHJv
bm86OnN0ZWFkeV9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpOworICAgIGF1dG8gY3Vy
cmVudFRpbWUgPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6c2Vjb25k
cz4oc3RlYWR5VGltZVNpbmNlRXBvY2gpOworICAgIGlmIChtX2FjdGl2ZVRpbWVySUQpIHsKKyAg
ICAgICAgaWYgKChtX2V4cGlyYXRpb25UaW1lID4gY3VycmVudFRpbWUpICYmIChtX2V4cGlyYXRp
b25UaW1lIC0gY3VycmVudFRpbWUgPD0gdGltZW91dCkpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIAorICAgIC8vIFN0YXJ0IGEgbmV3IHRpbWVyLgorICAgIHdhdGNoZG9nLT5yZWYo
KTsKKworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fbXV0ZXgpOworICAg
IFRpbWVySUQgaWQgPSBuZXh0VGltZXJJRCgpOworICAgIG1fYWN0aXZlVGltZXJJRCA9IGlkOwor
ICAgIG1fZXhwaXJhdGlvblRpbWUgPSBjdXJyZW50VGltZSArIHRpbWVvdXQ7CisKKyAgICBtX3F1
ZXVlLT5kaXNwYXRjaEFmdGVyKHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyh0aW1lb3V0KSwgW3dh
dGNoZG9nLCBpZF0geworICAgICAgICBhdXRvJiB0aW1lciA9IHdhdGNoZG9nLT5tX3RpbWVyOwor
ICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayh0aW1lci5tX211dGV4KTsK
KyAgICAgICAgaWYgKHRpbWVyLm1fYWN0aXZlVGltZXJJRCA9PSBpZCAmJiB3YXRjaGRvZy0+aXNB
cm1lZCgpKQorICAgICAgICAgICAgd2F0Y2hkb2ctPm1fdGltZXJEaWRGaXJlID0gdHJ1ZTsKKyAg
ICAgICAgd2F0Y2hkb2ctPmRlcmVmKCk7CisgICAgfSk7Cit9CisgICAgCitib29sIFdhdGNoZG9n
OjpUaW1lcjo6aGFuZGxlRmlyZWRUaW1lcklmTmVlZGVkKFdhdGNoZG9nKiB3YXRjaGRvZykKK3sK
KyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtX211dGV4KTsKKyAgICBpZiAo
IXdhdGNoZG9nLT5tX3RpbWVyRGlkRmlyZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAor
ICAgIG1fYWN0aXZlVGltZXJJRCA9IDA7CisgICAgd2F0Y2hkb2ctPm1fdGltZXJEaWRGaXJlID0g
ZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIFdhdGNoZG9nOjpXYXRjaGRvZygpCiAgICAg
OiBtX3RpbWVyRGlkRmlyZShmYWxzZSkKICAgICAsIG1fZGlkRmlyZShmYWxzZSkKQEAgLTQxLDE5
ICsxMTAsMTUgQEAgV2F0Y2hkb2c6OldhdGNoZG9nKCkKICAgICAsIG1fc3RhcnRUaW1lKDApCiAg
ICAgLCBtX2VsYXBzZWRUaW1lKDApCiAgICAgLCBtX3JlZW50cnlDb3VudCgwKQotICAgICwgbV9p
c1N0b3BwZWQodHJ1ZSkKICAgICAsIG1fY2FsbGJhY2soMCkKICAgICAsIG1fY2FsbGJhY2tEYXRh
MSgwKQogICAgICwgbV9jYWxsYmFja0RhdGEyKDApCiB7Ci0gICAgaW5pdFRpbWVyKCk7CiB9CiAK
IFdhdGNoZG9nOjp+V2F0Y2hkb2coKQogewogICAgIEFTU0VSVCghaXNBcm1lZCgpKTsKLSAgICBz
dG9wQ291bnRkb3duKCk7Ci0gICAgZGVzdHJveVRpbWVyKCk7CiB9CiAKIHZvaWQgV2F0Y2hkb2c6
OnNldFRpbWVMaW1pdChWTSYgdm0sIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbGltaXQsCkBA
IC02MSw5ICsxMjYsNiBAQCB2b2lkIFdhdGNoZG9nOjpzZXRUaW1lTGltaXQoVk0mIHZtLCBzdGQ6
CiB7CiAgICAgYm9vbCB3YXNFbmFibGVkID0gaXNFbmFibGVkKCk7CiAKLSAgICBpZiAoIW1faXNT
dG9wcGVkKQotICAgICAgICBzdG9wQ291bnRkb3duKCk7Ci0KICAgICBtX2RpZEZpcmUgPSBmYWxz
ZTsgLy8gUmVzZXQgdGhlIHdhdGNoZG9nLgogCiAgICAgbV9saW1pdCA9IGxpbWl0OwpAQCAtOTIs
MTAgKzE1NCw4IEBAIGJvb2wgV2F0Y2hkb2c6OmRpZEZpcmUoRXhlY1N0YXRlKiBleGVjKQogICAg
IGlmIChtX2RpZEZpcmUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKCFtX3RpbWVy
RGlkRmlyZSkKKyAgICBpZiAoIW1fdGltZXIuaGFuZGxlRmlyZWRUaW1lcklmTmVlZGVkKHRoaXMp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgbV90aW1lckRpZEZpcmUgPSBmYWxzZTsKLSAg
ICBzdG9wQ291bnRkb3duKCk7CiAKICAgICBhdXRvIGN1cnJlbnRUaW1lID0gY3VycmVudENQVVRp
bWUoKTsKICAgICBhdXRvIGRlbHRhVGltZSA9IGN1cnJlbnRUaW1lIC0gbV9zdGFydFRpbWU7CkBA
IC0xMjQsNyArMTg0LDcgQEAgYm9vbCBXYXRjaGRvZzo6ZGlkRmlyZShFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgICAgIGF1dG8gcmVtYWluaW5nVGltZSA9IG1fbGltaXQgLSB0b3RhbEVsYXBzZWRUaW1l
OwogICAgICAgICBtX2VsYXBzZWRUaW1lID0gdG90YWxFbGFwc2VkVGltZTsKICAgICAgICAgbV9z
dGFydFRpbWUgPSBjdXJyZW50VGltZTsKLSAgICAgICAgc3RhcnRDb3VudGRvd24ocmVtYWluaW5n
VGltZSk7CisgICAgICAgIG1fdGltZXIuc3RhcnQodGhpcywgcmVtYWluaW5nVGltZSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTUwLDM5ICsyMTAsMTkgQEAgdm9pZCBXYXRjaGRv
Zzo6YXJtKCkKIHZvaWQgV2F0Y2hkb2c6OmRpc2FybSgpCiB7CiAgICAgQVNTRVJUKG1fcmVlbnRy
eUNvdW50ID4gMCk7Ci0gICAgaWYgKG1fcmVlbnRyeUNvdW50ID09IDEpCi0gICAgICAgIHN0b3BD
b3VudGRvd24oKTsKICAgICBtX3JlZW50cnlDb3VudC0tOwogfQogCiB2b2lkIFdhdGNoZG9nOjpz
dGFydENvdW50ZG93bklmTmVlZGVkKCkKIHsKLSAgICBpZiAoIW1faXNTdG9wcGVkKQotICAgICAg
ICByZXR1cm47IC8vIEFscmVhZHkgc3RhcnRlZC4KLQogICAgIGlmICghaXNBcm1lZCgpKQogICAg
ICAgICByZXR1cm47IC8vIE5vdCBleGVjdXRpbmcgSlMgc2NyaXB0LiBObyBuZWVkIHRvIHN0YXJ0
LgogCiAgICAgaWYgKGlzRW5hYmxlZCgpKSB7CiAgICAgICAgIG1fZWxhcHNlZFRpbWUgPSBzdGQ6
OmNocm9ubzo6bWljcm9zZWNvbmRzOjp6ZXJvKCk7CiAgICAgICAgIG1fc3RhcnRUaW1lID0gY3Vy
cmVudENQVVRpbWUoKTsKLSAgICAgICAgc3RhcnRDb3VudGRvd24obV9saW1pdCk7CisgICAgICAg
IG1fdGltZXIuc3RhcnQodGhpcywgbV9saW1pdCk7CiAgICAgfQogfQogCi12b2lkIFdhdGNoZG9n
OjpzdGFydENvdW50ZG93bihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0KQotewotICAg
IEFTU0VSVChtX2lzU3RvcHBlZCk7Ci0gICAgbV9pc1N0b3BwZWQgPSBmYWxzZTsKLSAgICBzdGFy
dFRpbWVyKGxpbWl0KTsKLX0KLQotdm9pZCBXYXRjaGRvZzo6c3RvcENvdW50ZG93bigpCi17Ci0g
ICAgaWYgKG1faXNTdG9wcGVkKQotICAgICAgICByZXR1cm47Ci0gICAgc3RvcFRpbWVyKCk7Ci0g
ICAgbV9pc1N0b3BwZWQgPSB0cnVlOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAkocmV2aXNpb24gMTg3ODA1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAkod29ya2luZyBjb3B5
KQpAQCAtMjYsMTYgKzI2LDE3IEBACiAjaWZuZGVmIFdhdGNoZG9nX2gKICNkZWZpbmUgV2F0Y2hk
b2dfaAogCi0jaWYgT1MoREFSV0lOKQotI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+ICAg
IAotI2VuZGlmCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1
ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEV4ZWNTdGF0ZTsKIGNsYXNzIFZNOwogCi1j
bGFzcyBXYXRjaGRvZyB7CitjbGFzcyBXYXRjaGRvZyA6IHB1YmxpYyBXVEY6OlRocmVhZFNhZmVS
ZWZDb3VudGVkPFdhdGNoZG9nPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgY2xhc3MgU2NvcGU7CkBAIC02MSwyMCArNjIsMTQgQEAgcHVibGljOgogICAgIHZv
aWQqIHRpbWVyRGlkRmlyZUFkZHJlc3MoKSB7IHJldHVybiAmbV90aW1lckRpZEZpcmU7IH0KIAog
cHJpdmF0ZToKKyAgICB0eXBlZGVmIHVpbnQzMl90IFRpbWVySUQ7CisKICAgICB2b2lkIGFybSgp
OwogICAgIHZvaWQgZGlzYXJtKCk7CiAgICAgdm9pZCBzdGFydENvdW50ZG93bklmTmVlZGVkKCk7
Ci0gICAgdm9pZCBzdGFydENvdW50ZG93bihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0
KTsKLSAgICB2b2lkIHN0b3BDb3VudGRvd24oKTsKICAgICBib29sIGlzQXJtZWQoKSB7IHJldHVy
biAhIW1fcmVlbnRyeUNvdW50OyB9CiAKLSAgICAvLyBQbGF0Zm9ybSBzcGVjaWZpYyB0aW1lciBp
bXBsZW1lbnRhdGlvbjoKLSAgICB2b2lkIGluaXRUaW1lcigpOwotICAgIHZvaWQgZGVzdHJveVRp
bWVyKCk7Ci0gICAgdm9pZCBzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbGlt
aXQpOwotICAgIHZvaWQgc3RvcFRpbWVyKCk7Ci0KLSAgICAvLyBtX3RpbWVyRGlkRmlyZSAoYWJv
dmUpIGluZGljYXRlcyB3aGV0aGVyIHRoZSB0aW1lciBmaXJlZC4gVGhlIFdhdGNoZG9nCisgICAg
Ly8gbV90aW1lckRpZEZpcmUgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRpbWVyIGZpcmVkLiBUaGUg
V2F0Y2hkb2cKICAgICAvLyBzdGlsbCBuZWVkcyB0byBjaGVjayBpZiB0aGUgYWxsb3dlZCBDUFUg
dGltZSBoYXMgZWxhcHNlZC4gSWYgc28sIHRoZW4KICAgICAvLyB0aGUgV2F0Y2hkb2cgZmlyZXMg
YW5kIG1fZGlkRmlyZSB3aWxsIGJlIHNldC4KICAgICAvLyBOT1RFOiBtX3RpbWVyRGlkRmlyZSBp
cyBvbmx5IHNldCBieSB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgdGltZXIKQEAgLTg3LDE2ICs4Miwz
MSBAQCBwcml2YXRlOgogICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbV9lbGFwc2VkVGlt
ZTsKIAogICAgIGludCBtX3JlZW50cnlDb3VudDsKLSAgICBib29sIG1faXNTdG9wcGVkOwogCiAg
ICAgU2hvdWxkVGVybWluYXRlQ2FsbGJhY2sgbV9jYWxsYmFjazsKICAgICB2b2lkKiBtX2NhbGxi
YWNrRGF0YTE7CiAgICAgdm9pZCogbV9jYWxsYmFja0RhdGEyOwogCi0jaWYgT1MoREFSV0lOKSAm
JiAhUExBVEZPUk0oRUZMKSAmJiAhUExBVEZPUk0oR1RLKQotICAgIGRpc3BhdGNoX3F1ZXVlX3Qg
bV9xdWV1ZTsKLSAgICBkaXNwYXRjaF9zb3VyY2VfdCBtX3RpbWVyOwotI2VuZGlmCisgICAgY2xh
c3MgVGltZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgVGltZXIoKTsKKworICAgICAgICB2b2lk
IHN0YXJ0KFdhdGNoZG9nKiwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyB0aW1lb3V0KTsKKyAg
ICAgICAgYm9vbCBoYW5kbGVGaXJlZFRpbWVySWZOZWVkZWQoV2F0Y2hkb2cqKTsKKworICAgICAg
ICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVUaW1lcklEOyB9CisKKyAg
ICBwcml2YXRlOgorICAgICAgICBUaW1lcklEIG5leHRUaW1lcklEKCk7CisKKyAgICAgICAgUmVm
PFdvcmtRdWV1ZT4gbV9xdWV1ZTsKKyAgICAgICAgVGltZXJJRCBtX2FjdGl2ZVRpbWVySUQgeyAw
IH07CisgICAgICAgIFRpbWVySUQgbV9uZXh0VGltZXJJRCB7IDEgfTsKKyAgICAgICAgc3RkOjpj
aHJvbm86Om1pY3Jvc2Vjb25kcyBtX2V4cGlyYXRpb25UaW1lOworICAgICAgICBzdGQ6Om11dGV4
IG1fbXV0ZXg7CisgICAgfTsKKyAgICAKKyAgICBUaW1lciBtX3RpbWVyOwogCiAgICAgZnJpZW5k
IGNsYXNzIFdhdGNoZG9nOjpTY29wZTsKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0
cmFjdG9yOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2dNYWMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9n
TWFjLmNwcAkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV2F0Y2hkb2dNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcyICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIldhdGNoZG9nLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi12b2lkIFdh
dGNoZG9nOjppbml0VGltZXIoKQotewotICAgIG1fcXVldWUgPSAwOwotICAgIG1fdGltZXIgPSAw
OwotfQotCi12b2lkIFdhdGNoZG9nOjpkZXN0cm95VGltZXIoKQotewotICAgIEFTU0VSVCghbV90
aW1lcik7Ci0gICAgaWYgKG1fcXVldWUpCi0gICAgICAgIGRpc3BhdGNoX3JlbGVhc2UobV9xdWV1
ZSk7Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OnN0YXJ0VGltZXIoc3RkOjpjaHJvbm86Om1pY3Jvc2Vj
b25kcyBsaW1pdCkKLXsKLSAgICBBU1NFUlQoIW1fdGltZXIpOwotICAgIGlmICghbV9xdWV1ZSkK
LSAgICAgICAgbV9xdWV1ZSA9IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgianNjLndhdGNoZG9nLnF1
ZXVlIiwgMCk7Ci0gICAgbV90aW1lciA9IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hf
U09VUkNFX1RZUEVfVElNRVIsIDAsIDAsIG1fcXVldWUpOwotCi0gICAgZGlzcGF0Y2hfc291cmNl
X3NldF90aW1lcihtX3RpbWVyLAotICAgICAgICBkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVf
Tk9XLCBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMobGltaXQpLmNvdW50KCkpLAotICAgICAgICBE
SVNQQVRDSF9USU1FX0ZPUkVWRVIsIDApOwotCi0gICAgZGlzcGF0Y2hfc291cmNlX3NldF9ldmVu
dF9oYW5kbGVyKG1fdGltZXIsIF57Ci0gICAgICAgIG1fdGltZXJEaWRGaXJlID0gdHJ1ZTsKLSAg
ICB9KTsKLQotICAgIGRpc3BhdGNoX3Jlc3VtZShtX3RpbWVyKTsKLX0KLQotdm9pZCBXYXRjaGRv
Zzo6c3RvcFRpbWVyKCkKLXsKLSAgICBBU1NFUlQobV9xdWV1ZSk7Ci0gICAgZGlzcGF0Y2hfc3lu
YyhtX3F1ZXVlLCBeewotICAgICAgICBkaXNwYXRjaF9zb3VyY2VfY2FuY2VsKG1fdGltZXIpOwot
ICAgIH0pOwotICAgIGRpc3BhdGNoX3JlbGVhc2UobV90aW1lcik7Ci0gICAgbV90aW1lciA9IDA7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV2F0Y2hkb2dOb25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9XYXRjaGRvZ05vbmUuY3BwCShyZXZpc2lvbiAxODc4MDUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ05vbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldhdGNoZG9nLmgiCi0KLW5hbWVz
cGFjZSBKU0MgewotCi0vLyBUaGlzIGlzIGEgc3R1YiBmb3IgcGxhdGZvcm1zIHRoYXQgaGF2ZSBu
b3QgaW1wbGVtZW50ZWQgdGhpcyBmdW5jdGlvbmFsaXR5LgotLy8gSW4gdGhpcyBjYXNlLCB0aGUg
cGxhdGZvcm0gdGltZXIgaGVyZSBuZXZlciBmaXJlcy4KLQotdm9pZCBXYXRjaGRvZzo6aW5pdFRp
bWVyKCkKLXsKLX0KLQotdm9pZCBXYXRjaGRvZzo6ZGVzdHJveVRpbWVyKCkKLXsKLX0KLQotdm9p
ZCBXYXRjaGRvZzo6c3RhcnRUaW1lcihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzKQotewotfQot
Ci12b2lkIFdhdGNoZG9nOjpzdG9wVGltZXIoKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA4LTAzICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnRhdGlvbiBKYXZhU2Ny
aXB0IHdhdGNoZG9nIHVzaW5nIFdURjo6V29ya1F1ZXVlLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MTA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHdlJ3JlIG5vdCBpbnRyb2R1
Y2luZyBhbnkgYmVoYXZpb3IgY2hhbmdlIGhlcmUuCisgICAgICAgIFdlJ3JlIG9ubHkgI2luY2x1
ZGUnaW5nIFdhdGNoZG9nLmggZGlyZWN0bHkgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIFZNLmgu
CisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL1dhdGNoZG9nLmg6IEFkZGVk
LgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICog
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0Q29udHJvbGxlci5jcHA6CisKIDIwMTUtMDgtMDMgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBjYXN0cyBiZXR3ZWVuIE5T
Rm9udCpzIGFuZCBDVEZvbnRSZWZzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL1dhdGNoZG9nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvcnVudGltZS9XYXRjaGRvZy5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9XYXRjaGRvZy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9XYXRjaGRvZ19oCisjZGVm
aW5lIFdlYkNvcmVfRldEX1dhdGNoZG9nX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XYXRj
aGRvZy5oPgorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE4NzgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIwNDMxLDYg
KzIwNDMxLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJz
XHJ1bnRpbWVcU3RydWN0dXJlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3
YXJkaW5nSGVhZGVyc1xydW50aW1lXFN0cnVjdHVyZUNoYWluLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN5bWJvbFRhYmxlLmgiIC8+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFdh
dGNoZG9nLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lXFdlYWtHQ01hcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZVxXcml0ZUJhcnJpZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHlhcnJcWWFyckpJVC5oIiAvPgpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVycwkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIxMyw2
ICsxMjIxMyw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lXFN5bWJvbFRhYmxlLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFdhdGNoZG9nLmgiPgorICAgICAgPEZp
bHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFdl
YWtHQ01hcC5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFdmVudExpc3RlbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCShyZXZpc2lvbiAxODc4MDUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDxydW50aW1lL1ZNRW50cnlTY29wZS5o
PgorI2luY2x1ZGUgPHJ1bnRpbWUvV2F0Y2hkb2cuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAko
cmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNs
dWRlIDxydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxydW50aW1lL0Vycm9y
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL1dhdGNo
ZG9nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258154</attachid>
            <date>2015-08-03 22:23:09 -0700</date>
            <delta_ts>2015-08-10 11:51:55 -0700</delta_ts>
            <desc>fix 6: + EFL fix, and fixed a few other bugs from debug code that was accidentally left in.</desc>
            <filename>bug-147107.patch</filename>
            <type>text/plain</type>
            <size>44152</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3ODEzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkwIEBA
CisyMDE1LTA4LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnRhdGlvbiBKYXZhU2NyaXB0IHdhdGNoZG9nIHVzaW5nIFdURjo6V29ya1F1ZXVlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MTA3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlND
b250ZXh0UmVmLmNwcDoKKyAgICAgICAgKGNyZWF0ZVdhdGNoZG9nSWZOZWVkZWQpOgorICAgICAg
ICAoSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRpbWVMaW1pdCk6CisgICAgICAgIC0gTm8g
bmVlZCB0byBjcmVhdGUgdGhlIHdhdGNoZG9nIChpZiBub3QgYWxyZWFkeSBjcmVhdGVkKSBqdXN0
IHRvIGNsZWFyIGl0LgorICAgICAgICAgIElmIHRoZSB3YXRjaGRvZyBpcyBub3QgY3JlYXRlZCB5
ZXQsIHRoZW4gaXQgaXMgZWZmZWN0aXZlbHkgY2xlYXJlZC4KKworICAgICAgICAqIEFQSS90ZXN0
cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoKKyAgICAgICAgKGN1cnJlbnRDUFVUaW1lQXNK
U0Z1bmN0aW9uQ2FsbGJhY2spOgorICAgICAgICAodGVzdEV4ZWN1dGlvblRpbWVMaW1pdCk6Cisg
ICAgICAgIChjdXJyZW50Q1BVVGltZSk6IERlbGV0ZWQuCisgICAgICAgICogQVBJL3Rlc3RzL3Rl
c3RhcGkuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHBy
b2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4
cHJvai90ZXN0YXBpL3Rlc3RhcGkudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAtIEVuYWJsZSB3
YXRjaGRvZyB0ZXN0cyBmb3IgYWxsIHBsYXRmb3Jtcy4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4
cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAtIFJlbW92ZSBub3cgdW5uZWVkZWQgV2F0Y2hkb2dNYWMuY3Bw
IGFuZCBXYXRjaGRvZ05vbmUuY3BwLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisK
KyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAq
IGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6Cisg
ICAgICAgICogbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcDoKKyAgICAgICAgKiBsbGlu
dC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAg
IC0gI2luY2x1ZGUgV2F0Y2hkb2cuaCBpbiB0aGVzZSBmaWxlcyBkaXJlY3RseSBpbnN0ZWFkIG9m
IGRvaW5nIGl0IHZpYSBWTS5oLgorICAgICAgICAgIFRoZXNlIHNhdmVzIHVzIGZyb20gaGF2aW5n
IHRvIHJlY29tcGlsZSB0aGUgd29ybGQgd2hlbiB3ZSBjaGFuZ2UgV2F0Y2hkb2cuaC4KKworICAg
ICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgLSBTZWUgVGltZXI6OnN0YXJ0KCkgZm9yIHdo
eSB0aGUgV2F0Y2hkb2cgbmVlZHMgdG8gYmUgdGhyZWFkLXNhZmUgcmVmIGNvdW50ZWQuCisKKyAg
ICAgICAgKiBydW50aW1lL1dhdGNoZG9nLmNwcDoKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OlRp
bWVyOjpUaW1lcik6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpUaW1lcjo6bmV4dFRpbWVySUQp
OgorICAgICAgICAtIFdlIG1heSBzdG9wIHRoZSB0aW1lciBiZWZvcmUgaXRzIFdvcmtRdWV1ZSBj
YWxsYmFjayBoYXMgcnVuLiAgU2luY2Ugb25seSBvbmUKKyAgICAgICAgICB0aW1lciBtYXkgYmUg
YWN0aXZlIGF0IGFueSB0aW1lLCBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBJRCBzY2hlbWUg
Z2l2ZXMgdXMKKyAgICAgICAgICBhbiBlYXN5IHdheSB0byBpbmRpY2F0ZSB0byB0aGUgV29ya1F1
ZXVlIGNhbGxiYWNrIGlmIGl0cyB0aW1lciBzZXNzaW9uIGhhcyBiZWVuCisgICAgICAgICAgY2Fu
Y2VsbGVkLgorCisgICAgICAgICAgV2UgcmVzZXJ2ZSBpZCAwIHRvIG1lYW4gbm8gYWN0aXZlIHRp
bWVyLiAgbmV4dFRpbWVySUQoKSB3aWxsIGVuc3VyZSB0aGF0IGl0CisgICAgICAgICAgbmV2ZXIg
cmV0dXJucyBhIDAgaWQuICBUaGUgaWQgdmFsdWVzIHdpbGwgbW9ub3RvbmljYWxseSBpbmNyZWFz
ZSBvdmVyIHRoZQorICAgICAgICAgIHJhbmdlIGZvciBzaXplIG9mIHVpbnRwdHJfdC4gIFRoZW9y
ZXRpY2FsbHksIHRoZXJlIGNhbiBiZSBhbiBvdmVyZmxvdyBiYWNrIHRvIGEKKyAgICAgICAgICBs
b3cgaWQgdmFsdWUuICBIb3dldmVyLCBpbiBwcmFjdGljZSwgaXQgaXMgaW1wb3NzaWJsZSB0byBj
cmVhdGUgdGhhdCBtYW55CisgICAgICAgICAgV29ya1F1ZXVlIGNhbGxiYWNrcyAoaS5lLiBzdGFy
dCBhbmQgc3RvcCB0aGUgdGltZXJzIHRoYXQgbWFueSB0aW1lcyBiZWZvcmUgZWFjaAorICAgICAg
ICAgIHRpbWVvdXQgZXhwaXJlcykgaW4gb3JkZXIgdG8gaGF2ZSB0aGlzIGJlIGEgcHJvYmxlbS4K
KworICAgICAgICAoSlNDOjpXYXRjaGRvZzo6VGltZXI6OnN0YXJ0KToKKyAgICAgICAgLSBUaGUg
V2F0Y2hkb2cgaXMgbm93IHRocmVhZC1zYWZlIHJlZiBjb3VudGVkIGJlY2F1c2UgdGhlIFdvcmtR
dWV1ZSBtYXkgYWNjZXNzIGl0CisgICAgICAgICAgKGZyb20gYSBkaWZmZXJlbnQgdGhyZWFkKSBl
dmVuIGFmdGVyIHRoZSBWTSBzaHV0cyBkb3duLiAgV2UgbmVlZCB0byBrZWVwIGl0CisgICAgICAg
ICAgYWxpdmUgdW50aWwgdGhlIFdvcmtRdWV1ZSBjYWxsYmFjayBjb21wbGV0ZXMuCisKKyAgICAg
ICAgICBJbiBUaW1lcjo6c3RhcnQoKSwgd2UnbGwgcmVmIHRoZSBXYXRjaGRvZyB0byBrZWVwIGl0
IGFsaXZlIGZvciBlYWNoIFdvcmtRdWV1ZQorICAgICAgICAgIGNhbGxiYWNrIHdlIGRpc3BhdGNo
LiAgVGhlIGNhbGxiYWNrIHdpbGwgZGVyZWYgdGhlIFdhdGNoZG9nIGFmdGVyIGl0IGlzIGRvbmUK
KyAgICAgICAgICB3aXRoIGl0LiAgVGhpcyBlbnN1cmVzIHRoYXQgdGhlIFdhdGNoZG9nIGlzIGtl
cHQgYWxpdmUgdW50aWwgYWxsIFdvcmtRdWV1ZQorICAgICAgICAgIGNhbGxiYWNrcyBhcmUgZG9u
ZS4KKworICAgICAgICAoSlNDOjpXYXRjaGRvZzo6VGltZXI6OmhhbmRsZUZpcmVkVGltZXJJZk5l
ZWRlZCk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpXYXRjaGRvZyk6CisgICAgICAgIChKU0M6
OldhdGNoZG9nOjp+V2F0Y2hkb2cpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c2V0VGltZUxp
bWl0KToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmRpZEZpcmUpOgorICAgICAgICAoSlNDOjpX
YXRjaGRvZzo6ZGlzYXJtKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnN0YXJ0Q291bnRkb3du
SWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3RhcnRDb3VudGRvd24pOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3RvcENvdW50ZG93bik6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9XYXRjaGRvZy5oOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6dGlt
ZXJEaWRGaXJlQWRkcmVzcyk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjppc0FybWVkKToKKyAg
ICAgICAgKEpTQzo6V2F0Y2hkb2c6OlRpbWVyOjppc0FjdGl2ZSk6CisgICAgICAgICogcnVudGlt
ZS9XYXRjaGRvZ01hYy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcnVudGltZS9XYXRjaGRvZ05v
bmUuY3BwOiBSZW1vdmVkLgorCiAyMDE1LTA4LTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHVuaW5pdGlhbGl6ZWQgcHJvcGVydHkg
bGVhZGluZyB0byBhbiBhc3NlcnQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CShyZXZpc2lvbiAxODc4MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYxNyw3ICs2MTcsNiBAQCBzZXQoSmF2YVNjcmlwdENv
cmVfUlVOVElNRV9TT1VSQ0VTCiAgICAgcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCiAgICAgcnVu
dGltZS9WYXJPZmZzZXQuY3BwCiAgICAgcnVudGltZS9XYXRjaGRvZy5jcHAKLSAgICBydW50aW1l
L1dhdGNoZG9nTm9uZS5jcHAKICAgICBydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAKICAg
ICBydW50aW1lL1dlYWtNYXBEYXRhLmNwcAogICAgIHJ1bnRpbWUvV2Vha01hcFByb3RvdHlwZS5j
cHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UJKHJldmlzaW9u
IDE4NzgwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZQkod29y
a2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAgbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5D
TFVERV9ESVJFQwogICAgICR7RUNPUkVfSU5DTFVERV9ESVJTfQogICAgICR7RUlOQV9JTkNMVURF
X0RJUlN9CiAgICAgJHtFT19JTkNMVURFX0RJUlN9CisgICAgIiR7V1RGX0RJUn0vd3RmL2VmbCIK
ICkKIGFkZF9kZWZpbml0aW9ucygtRFNUQVRJQ0FMTFlfTElOS0VEX1dJVEhfV1RGKQogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAx
ODc4MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKKyNp
bmNsdWRlICJXYXRjaGRvZy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTk0LDcgKzk1LDcgQEAgc3Rh
dGljIGJvb2wgaW50ZXJuYWxTY3JpcHRUaW1lb3V0Q2FsbGJhYwogc3RhdGljIHZvaWQgY3JlYXRl
V2F0Y2hkb2dJZk5lZWRlZChWTSYgdm0pCiB7CiAgICAgaWYgKCF2bS53YXRjaGRvZykgewotICAg
ICAgICB2bS53YXRjaGRvZyA9IHN0ZDo6bWFrZV91bmlxdWU8V2F0Y2hkb2c+KCk7CisgICAgICAg
IHZtLndhdGNoZG9nID0gYWRvcHRSZWYobmV3IFdhdGNoZG9nKCkpOwogCiAgICAgICAgIC8vIFRo
ZSBMTElOVCBwZWVrcyBpbnRvIHRoZSBXYXRjaGRvZyBvYmplY3QgZGlyZWN0bHkuIEluIG9yZGVy
IHRvIGRvIHRoYXQsCiAgICAgICAgIC8vIHRoZSBMTElOVCBhc3N1bWVzIHRoYXQgdGhlIGludGVy
bmFsIHNoYXBlIG9mIGEgc3RkOjp1bmlxdWVfcHRyIGlzIHRoZQpAQCAtMTIwLDkgKzEyMSw4IEBA
IHZvaWQgSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRpbWVMaW0KIHsKICAgICBWTSYgdm0g
PSAqdG9KUyhncm91cCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcigmdm0pOwotICAgIGNyZWF0
ZVdhdGNoZG9nSWZOZWVkZWQodm0pOwotICAgIFdhdGNoZG9nJiB3YXRjaGRvZyA9ICp2bS53YXRj
aGRvZzsKLSAgICB3YXRjaGRvZy5zZXRUaW1lTGltaXQodm0sIHN0ZDo6Y2hyb25vOjptaWNyb3Nl
Y29uZHM6Om1heCgpKTsKKyAgICBpZiAodm0ud2F0Y2hkb2cpCisgICAgICAgIHZtLndhdGNoZG9n
LT5zZXRUaW1lTGltaXQodm0sIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM6Om1heCgpKTsKIH0K
IAogLy8gRnJvbSB0aGUgQVBJJ3MgcGVyc3BlY3RpdmUsIGEgZ2xvYmFsIGNvbnRleHQgcmVtYWlu
cyBhbGl2ZSBpZmYgaXQgaGFzIGJlZW4gSlNHbG9iYWxDb250ZXh0UmV0YWluZWQuCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9u
VGltZUxpbWl0VGVzdC5jcHAJKHJldmlzaW9uIDE4NzgwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDM0ICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV4ZWN1
dGlvblRpbWVMaW1pdFRlc3QuaCIKIAotI2lmIE9TKERBUldJTikKLQogI2luY2x1ZGUgIkpTQ29u
dGV4dFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2luY2x1ZGUg
PGNocm9ubz4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAotI2luY2x1ZGUgPG1hY2gv
bWFjaC5oPgotI2luY2x1ZGUgPG1hY2gvbWFjaF90aW1lLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4K
LSNpbmNsdWRlIDxzeXMvdGltZS5oPgordXNpbmcgbmFtZXNwYWNlIHN0ZDo6Y2hyb25vOwogCiBz
dGF0aWMgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQgPSBudWxscHRyOwogCi1zdGF0aWMgZG91
YmxlIGN1cnJlbnRDUFVUaW1lKCkKLXsKLSAgICBtYWNoX21zZ190eXBlX251bWJlcl90IGluZm9D
b3VudCA9IFRIUkVBRF9CQVNJQ19JTkZPX0NPVU5UOwotICAgIHRocmVhZF9iYXNpY19pbmZvX2Rh
dGFfdCBpbmZvOwotICAgIAotICAgIC8qIEdldCB0aHJlYWQgaW5mb3JtYXRpb24gKi8KLSAgICBt
YWNoX3BvcnRfdCB0aHJlYWRQb3J0ID0gbWFjaF90aHJlYWRfc2VsZigpOwotICAgIHRocmVhZF9p
bmZvKHRocmVhZFBvcnQsIFRIUkVBRF9CQVNJQ19JTkZPLCAodGhyZWFkX2luZm9fdCkoJmluZm8p
LCAmaW5mb0NvdW50KTsKLSAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigp
LCB0aHJlYWRQb3J0KTsKLSAgICAKLSAgICBkb3VibGUgdGltZSA9IGluZm8udXNlcl90aW1lLnNl
Y29uZHMgKyBpbmZvLnVzZXJfdGltZS5taWNyb3NlY29uZHMgLyAxMDAwMDAwLjsKLSAgICB0aW1l
ICs9IGluZm8uc3lzdGVtX3RpbWUuc2Vjb25kcyArIGluZm8uc3lzdGVtX3RpbWUubWljcm9zZWNv
bmRzIC8gMTAwMDAwMC47Ci0gICAgCi0gICAgcmV0dXJuIHRpbWU7Ci19Ci0KIHN0YXRpYyBKU1Zh
bHVlUmVmIGN1cnJlbnRDUFVUaW1lQXNKU0Z1bmN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGN0
eCwgSlNPYmplY3RSZWYgZnVuY3Rpb25PYmplY3QsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNp
emVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uT2JqZWN0KTsKQEAg
LTYzLDcgKzQ0LDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgY3VycmVudENQVVRpbWVBc0pTRnVuYwog
ICAgIFVOVVNFRF9QQVJBTShleGNlcHRpb24pOwogICAgIAogICAgIEFTU0VSVChKU0NvbnRleHRH
ZXRHbG9iYWxDb250ZXh0KGN0eCkgPT0gY29udGV4dCk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtl
TnVtYmVyKGN0eCwgY3VycmVudENQVVRpbWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVt
YmVyKGN0eCwgY3VycmVudENQVVRpbWUoKS5jb3VudCgpIC8gMTAwMDAwMC4pOwogfQogCiBib29s
IHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CkBAIC0xMjAsMTggKzEw
MSwxNiBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgewogICAgICAgICBjb25z
dCBjaGFyKiBsb29wRm9yZXZlclNjcmlwdCA9ICJ2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRp
bWUoKTsgd2hpbGUgKHRydWUpIHsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAu
MTUwKSBicmVhazsgfSAiOwogICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhsb29wRm9yZXZlclNjcmlwdCk7Ci0gICAgICAgIGRvdWJsZSBz
dGFydFRpbWU7Ci0gICAgICAgIGRvdWJsZSBlbmRUaW1lOwogICAgICAgICBleGNlcHRpb24gPSBu
dWxscHRyOwogICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNl
OwotICAgICAgICBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIHN0
YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAgICAgICAgIHYgPSBKU0V2YWx1YXRlU2NyaXB0
KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAg
ICAgIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIGVuZFRpbWUgPSBj
dXJyZW50Q1BVVGltZSgpOwogICAgICAgICAKLSAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0
VGltZSkgPCAuMTUwZikgJiYgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAg
ICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1MCkpICYmIHNo
b3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgcHJpbnRmKCJQQVNT
OiBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVkLlxuIik7CiAgICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MGYpKQorICAgICAgICAg
ICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1MCkpKQogICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhw
ZWN0ZWQuXG4iKTsKICAgICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXND
YWxsZWQpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgdGltZW91dCBjYWxs
YmFjayB3YXMgbm90IGNhbGxlZC5cbiIpOwpAQCAtMTQ5LDE2ICsxMjgsMTQgQEAgaW50IHRlc3RF
eGVjdXRpb25UaW1lTGltaXQoKQogICAgIHsKICAgICAgICAgY29uc3QgY2hhciogbG9vcEZvcmV2
ZXJTY3JpcHQgPSAidmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHRyeSB7IHdoaWxl
ICh0cnVlKSB7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gLjE1MCkgYnJlYWs7
IH0gfSBjYXRjaChlKSB7IH0iOwogICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsb29wRm9yZXZlclNjcmlwdCk7Ci0gICAgICAgIGRvdWJs
ZSBzdGFydFRpbWU7Ci0gICAgICAgIGRvdWJsZSBlbmRUaW1lOwogICAgICAgICBleGNlcHRpb24g
PSBudWxscHRyOwogICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZh
bHNlOwotICAgICAgICBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRv
IHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAgICAgICAgIHYgPSBKU0V2YWx1YXRlU2Ny
aXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0g
ICAgICAgIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIGVuZFRpbWUg
PSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICAKLSAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0
YXJ0VGltZSkgPj0gLjE1MGYpIHx8ICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkg
ewotICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MGYpKQorICAg
ICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSBtaWxsaXNlY29uZHMoMTUwKSkgfHwg
IXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKSB7CisgICAgICAgICAgICBpZiAoISgo
ZW5kVGltZSAtIHN0YXJ0VGltZSkgPCBtaWxsaXNlY29uZHMoMTUwKSkpCiAgICAgICAgICAgICAg
ICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIp
OwogICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKICAg
ICAgICAgICAgICAgICBwcmludGYoIkZBSUw6IHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBu
b3QgY2FsbGVkLlxuIik7CkBAIC0xNzgsMTcgKzE1NSwxNSBAQCBpbnQgdGVzdEV4ZWN1dGlvblRp
bWVMaW1pdCgpCiAgICAgewogICAgICAgICBjb25zdCBjaGFyKiBsb29wRm9yZXZlclNjcmlwdCA9
ICJ2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUpIHsgaWYgKGN1
cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAuMTUwKSBicmVhazsgfSAiOwogICAgICAgICBK
U1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsb29wRm9y
ZXZlclNjcmlwdCk7Ci0gICAgICAgIGRvdWJsZSBzdGFydFRpbWU7Ci0gICAgICAgIGRvdWJsZSBl
bmRUaW1lOwogICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICBzdGFydFRpbWUg
PSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVU
aW1lKCk7CiAgICAgICAgIHYgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVs
bHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgIGVuZFRpbWUgPSBjdXJyZW50
Q1BVVGltZSgpOworICAgICAgICBhdXRvIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAg
ICAgICAKLSAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCAuMTUwZikgJiYgc2hv
dWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgIGlmICgoKGVuZFRpbWUgLSBz
dGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1MCkpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNr
V2FzQ2FsbGVkKQogICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiBzY3JpcHQgdGltZWQgb3V0IGFz
IGV4cGVjdGVkIHdoZW4gbm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVkLlxuIik7CiAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MGYpKQor
ICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1
MCkpKQogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IGRpZCBub3QgdGltZSBv
dXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iKTsKICAgICAg
ICAgICAgIGZhaWxlZCA9IHRydWU7CiAgICAgICAgIH0KQEAgLTIwNCwxNyArMTc5LDE1IEBAIGlu
dCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGxv
b3BGb3JldmVyU2NyaXB0ID0gInZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGls
ZSAodHJ1ZSkgeyBpZiAoY3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+IC4xNTApIGJyZWFr
OyB9ICI7CiAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKGxvb3BGb3JldmVyU2NyaXB0KTsKLSAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsK
LSAgICAgICAgZG91YmxlIGVuZFRpbWU7CiAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gc3RhcnRU
aW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgdiA9IEpTRXZhbHVhdGVTY3JpcHQoY29u
dGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAg
ZW5kVGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gZW5kVGltZSA9IGN1cnJl
bnRDUFVUaW1lKCk7CiAgICAgICAgIAotICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA+PSAuMTUwZikgJiYgY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgJiYgIWV4Y2Vw
dGlvbikKKyAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gbWlsbGlzZWNvbmRz
KDE1MCkpICYmIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkICYmICFleGNlcHRpb24p
CiAgICAgICAgICAgICBwcmludGYoIlBBU1M6IHNjcmlwdCB0aW1lb3V0IHdhcyBjYW5jZWxsZWQg
YXMgZXhwZWN0ZWQuXG4iKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoKChlbmRU
aW1lIC0gc3RhcnRUaW1lKSA8IC4xNTApIHx8IGV4Y2VwdGlvbikKKyAgICAgICAgICAgIGlmICgo
KGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1MCkpIHx8IGV4Y2VwdGlvbikK
ICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6IHNjcmlwdCB0aW1lb3V0IHdhcyBub3QgY2Fu
Y2VsbGVkLlxuIik7CiAgICAgICAgICAgICBpZiAoIWNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2Fz
Q2FsbGVkKQogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IHRpbWVvdXQgY2Fs
bGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iKTsKQEAgLTIzMiwyMSArMjA1LDE4IEBAIGludCB0ZXN0
RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGxvb3BGb3Jl
dmVyU2NyaXB0ID0gInZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1
ZSkgeyBpZiAoY3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+IC41MDApIGJyZWFrOyB9ICI7
CiAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKGxvb3BGb3JldmVyU2NyaXB0KTsKLSAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsKLSAgICAg
ICAgZG91YmxlIGVuZFRpbWU7Ci0gICAgICAgIGRvdWJsZSBkZWx0YVRpbWU7CiAgICAgICAgIGV4
Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7
CisgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgdiA9
IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAm
ZXhjZXB0aW9uKTsKLSAgICAgICAgZW5kVGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7Ci0gICAgICAg
IGRlbHRhVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7CisgICAgICAgIGF1dG8gZW5kVGltZSA9
IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0
YXJ0VGltZTsKICAgICAgICAgCi0gICAgICAgIGlmICgoZGVsdGFUaW1lID49IC4zMDBmKSAmJiAo
ZGVsdGFUaW1lIDwgLjUwMGYpICYmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9PSAy
KSAmJiBleGNlcHRpb24pCisgICAgICAgIGlmICgoZGVsdGFUaW1lID49IG1pbGxpc2Vjb25kcygz
MDApKSAmJiAoZGVsdGFUaW1lIDwgbWlsbGlzZWNvbmRzKDUwMCkpICYmIChleHRlbmRUZXJtaW5h
dGVDYWxsYmFja0NhbGxlZCA9PSAyKSAmJiBleGNlcHRpb24pCiAgICAgICAgICAgICBwcmludGYo
IlBBU1M6IHNjcmlwdCB0aW1lb3V0IHdhcyBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIpOwogICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmIChkZWx0YVRpbWUgPCAuMjAwZikKKyAgICAgICAg
ICAgIGlmIChkZWx0YVRpbWUgPCBtaWxsaXNlY29uZHMoMjAwKSkKICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6IHNjcmlwdCB0aW1lb3V0IHdhcyBub3QgZXh0ZW5kZWQgYXMgZXhwZWN0ZWQu
XG4iKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSAuNTAwZikKKyAgICAgICAg
ICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSBtaWxsaXNlY29uZHMoNTAwKSkKICAgICAgICAgICAg
ICAgICBwcmludGYoIkZBSUw6IHNjcmlwdCBkaWQgbm90IHRpbWVvdXQuXG4iKTsKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgaWYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkIDwgMSkK
QEAgLTI2NCw1ICsyMzQsMyBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgSlNH
bG9iYWxDb250ZXh0UmVsZWFzZShjb250ZXh0KTsKICAgICByZXR1cm4gZmFpbGVkOwogfQotCi0j
ZW5kaWYgLy8gT1MoREFSV0lOKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLmMJKHJldmlzaW9uIDE4NzgwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaS5jCSh3b3JraW5nIGNvcHkpCkBAIC00Myw5ICs0Myw3IEBACiAjaW5j
bHVkZSAiQ3VzdG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmgiCiAjaW5jbHVkZSAiR2xvYmFsQ29u
dGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmgiCiAKLSNpZiBPUyhEQVJXSU4pCiAjaW5jbHVkZSAiRXhl
Y3V0aW9uVGltZUxpbWl0VGVzdC5oIgotI2VuZGlmCiAKICNpZiBKU0NfT0JKQ19BUElfRU5BQkxF
RAogdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSh2b2lkKTsKQEAgLTE4OTMsOSArMTg5MSw3IEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJl
bGVhc2UoY29udGV4dCk7CiAgICAgfQogCi0jaWYgT1MoREFSV0lOKQogICAgIGZhaWxlZCA9IHRl
c3RFeGVjdXRpb25UaW1lTGltaXQoKSB8fCBmYWlsZWQ7Ci0jZW5kaWYgLyogT1MoREFSV0lOKSAq
LwogICAgIGZhaWxlZCA9IHRlc3RHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplcigpIHx8IGZhaWxl
ZDsKIAogICAgIC8vIENsZWFyIG91dCBsb2NhbCB2YXJpYWJsZXMgcG9pbnRpbmcgYXQgSlNPYmpl
Y3RSZWZzIHRvIGFsbG93IHRoZWlyIHZhbHVlcyB0byBiZSBjb2xsZWN0ZWQKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkocmV2aXNpb24gMTg3ODA1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtODY5LDcgKzg2OSw2IEBACiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxydW50aW1lXFZNRW50cnlTY29wZS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxydW50aW1lXFZhck9mZnNldC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hkb2dOb25lLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcV2Vha01hcENvbnN0cnVjdG9yLmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2Vha01hcERhdGEuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccnVudGltZVxXZWFrTWFwUHJvdG90eXBlLmNwcCIgLz4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9u
IDE4NzgwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtOTMzLDkg
KzkzMyw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nLmNw
cCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hkb2dOb25lLmNwcCI+Ci0gICAg
ICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHRvb2xzXENvZGVQcm9maWxlLmNwcCI+CiAgICAgICA8RmlsdGVyPnRv
b2xzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai90ZXN0YXBpL3Rlc3RhcGkudmN4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai90ZXN0
YXBpL3Rlc3RhcGkudmN4cHJvagkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTI5Niw2ICsyOTYsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cLi5cQVBJXHRlc3RzXENvbXBhcmVBbmRTd2FwVGVzdC5oIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEN1c3RvbUdsb2JhbE9i
amVjdENsYXNzVGVzdC5oIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRl
c3RzXEV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cLi5cQVBJXHRlc3RzXEV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuaCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXpl
clRlc3QuY3BwIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEds
b2JhbENvbnRleHRXaXRoRmluYWxpemVyVGVzdC5oIiAvPgogICA8L0l0ZW1Hcm91cD4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL3Rlc3RhcGkvdGVz
dGFwaS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2ouZmlsdGVycwko
cmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpA
QCAtMTIsNiArMTIsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3Rz
XENvbXBhcmVBbmRTd2FwVGVzdC5oIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5c
QVBJXHRlc3RzXEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5o
IiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEV4ZWN1dGlvblRp
bWVMaW1pdFRlc3QuY3BwIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRl
c3RzXEV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuaCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXC4uXEFQSVx0ZXN0c1xHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEdsb2JhbENvbnRleHRXaXRo
RmluYWxpemVyVGVzdC5oIiAvPgogICA8L0l0ZW1Hcm91cD4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAxODc4MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtMTcyNSw3ICsxNzI1LDYgQEAKIAkJRkVEMjg3QjIxNUVDOUE1NzAwREE4MTYxIC8qIExMSW50
T3Bjb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RUQyODdCMTE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3
QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLzsgfTsK
IAkJRkVEOTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQg
LyogV2F0Y2hkb2cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQlGRUQ5NEYzMDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEOTRGMkQxNzFFM0Uy
MzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAqLzsgfTsKIAkJRkVGMDQwNTExQUFFNjYyRDAw
QkQyOEIwIC8qIENvbXBhcmVBbmRTd2FwVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUYwNDA1MDFBQUU2NjJEMDBCRDI4QjAgLyogQ29tcGFy
ZUFuZFN3YXBUZXN0LmNwcCAqLzsgfTsKIAkJRkVGNjgzNUUxNzQzNDNDQzAwQTMyRTI1IC8qIEpJ
VFN0dWJzQVJNLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRUY2ODM1QTE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNBUk0uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUY2ODM1RjE3NDM0M0NDMDBB
MzJFMjUgLyogSklUU3R1YnNBUk12Ny5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkVGNjgzNUIxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNdjcu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzU4
MSw3ICszNTgwLDYgQEAKIAkJRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50T3Bjb2RlLmg7IHBhdGgg
PSBsbGludC9MTEludE9wY29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQ5
NEYyQjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2F0Y2hkb2cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGRUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2F0Y2hkb2cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJRkVEOTRGMkQxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhdGNoZG9nTWFjLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVGMDQwNTAxQUFFNjYyRDAwQkQyOEIwIC8qIENvbXBhcmVB
bmRTd2FwVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb21w
YXJlQW5kU3dhcFRlc3QuY3BwOyBwYXRoID0gQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjA0MDUyMUFBRUM0RUQwMEJEMjhC
MCAvKiBDb21wYXJlQW5kU3dhcFRlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQ29tcGFyZUFuZFN3YXBUZXN0Lmg7IHBhdGggPSBBUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBU
ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjY4MzVBMTc0MzQzQ0MwMEEz
MkUyNSAvKiBKSVRTdHVic0FSTS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
SVRTdHVic0FSTS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDkxNCw3ICs0OTEy
LDYgQEAKIAkJCQlGRTU5MzJBNjE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggKi8s
CiAJCQkJRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLywKIAkJCQlG
RUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLywKLQkJCQlGRUQ5NEYyRDE3
MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwICovLAogCQkJCTE0QkZDRTY4MTBDREIx
RkMwMDM2NENDRSAvKiBXZWFrR0NNYXAuaCAqLywKIAkJCQlBRDg2QTkzRDFBQTREODdDMDAyRkU3
N0YgLyogV2Vha0dDTWFwSW5saW5lcy5oICovLAogCQkJCUE3Q0EzQUREMTdEQTQxQUUwMDY1MzhB
RiAvKiBXZWFrTWFwQ29uc3RydWN0b3IuY3BwICovLApAQCAtNzgyMSw3ICs3ODE4LDYgQEAKIAkJ
CQlFMThFM0E1OTBERjkyNzhDMDBEOTBCMzQgLyogVk0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkU1OTMyQTcxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRkVEOTRGMzAxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdCOThEMTM2MUI2MENENUYwMDIzQjFBNCAvKiBKU1dBU01Nb2R1
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MTlEMjUxNTg1M0NFMDAwNEE0RTdEIC8qIFdh
dGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDRjczNzcxNzFDQTZGQjAwQzlCQjFF
IC8qIFdlYWsuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTg3ODA1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVk
ZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlICJTdHJpbmdDb25zdHJ1Y3Rvci5oIgorI2lu
Y2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcAkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAog
I2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJTZXR1cFZhcmFyZ3NGcmFtZS5oIgog
I2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxODc4MDUp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU2V0dXBWYXJhcmdzRnJh
bWUuaCIKICNpbmNsdWRlICJTcGlsbFJlZ2lzdGVyc01vZGUuaCIKICNpbmNsdWRlICJUeXBlUHJv
ZmlsZXJMb2cuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9J
bnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzIsNiArNzIsNyBAQAogI2luY2x1ZGUgIlN5bWJvbC5oIgogI2luY2x1ZGUgIlZNRW50cnlTY29w
ZS5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgi
CiAKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCShyZXZpc2lvbiAxODc4MDUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiVHlwZUxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiVHlw
ZVByb2ZpbGVyTG9nLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCisjaW5jbHVkZSAi
V2F0Y2hkb2cuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTksNiArNTksNyBAQAogI2luY2x1ZGUgIlNjb3BlZEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlRl
c3RSdW5uZXJVdGlscy5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUg
IldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL0lubGluZUFTTS5oPgogCiBuYW1lc3BhY2UgSlND
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9m
ZnNldHNFeHRyYWN0b3IuY3BwCShyZXZpc2lvbiAxODc4MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgogI2luY2x1ZGUgIlZN
RW50cnlSZWNvcmQuaCIKICNpbmNsdWRlICJWYWx1ZVByb2ZpbGUuaCIKKyNpbmNsdWRlICJXYXRj
aGRvZy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9u
IDE4NzgwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJPYmplY3RDb25z
dHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU3RydWN0
dXJlUmFyZURhdGFJbmxpbmVzLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTElu
dCB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lvbiAxODc4
MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg2LDYgKzg2LDcgQEAKICNpbmNsdWRlICJUeXBlUHJvZmlsZXIuaCIKICNpbmNsdWRl
ICJUeXBlUHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgorI2lu
Y2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSAiV2Vha0dDTWFwSW5saW5lcy5oIgogI2luY2x1
ZGUgIldlYWtNYXBEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHJldmlzaW9uIDE4NzgwNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDYg
QEAKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJUeXBlZEFycmF5Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIlZNRW50cnlSZWNvcmQuaCIKLSNpbmNsdWRlICJXYXRjaGRv
Zy5oIgogI2luY2x1ZGUgIldhdGNocG9pbnQuaCIKICNpbmNsdWRlICJXZWFrUmFuZG9tLmgiCiAj
aW5jbHVkZSA8d3RmL0JhZy5oPgpAQCAtMTA3LDYgKzEwNiw3IEBAIGNsYXNzIFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlOwogY2xhc3MgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrOwogY2xhc3Mg
VmlydHVhbFJlZ2lzdGVyOwogY2xhc3MgVk1FbnRyeVNjb3BlOworY2xhc3MgV2F0Y2hkb2c7CiBj
bGFzcyBXYXRjaHBvaW50OwogY2xhc3MgV2F0Y2hwb2ludFNldDsKIApAQCAtMjU5LDcgKzI1OSw3
IEBAIHB1YmxpYzoKICAgICBDbGllbnREYXRhKiBjbGllbnREYXRhOwogICAgIFZNRW50cnlGcmFt
ZSogdG9wVk1FbnRyeUZyYW1lOwogICAgIEV4ZWNTdGF0ZSogdG9wQ2FsbEZyYW1lOwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxXYXRjaGRvZz4gd2F0Y2hkb2c7CisgICAgUmVmUHRyPFdhdGNoZG9nPiB3
YXRjaGRvZzsKIAogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHN0cnVjdHVyZVN0cnVjdHVyZTsKICAg
ICBTdHJvbmc8U3RydWN0dXJlPiBzdHJ1Y3R1cmVSYXJlRGF0YVN0cnVjdHVyZTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAJKHJldmlzaW9uIDE4Nzgw
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNiArMzQsNzUgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICNkZWZpbmUgTk9f
TElNSVQgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kczo6bWF4KCkKIAorV2F0Y2hkb2c6OlRpbWVy
OjpUaW1lcigpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJqc2Mud2F0Y2hkb2cu
cXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlV0aWxpdHkp
KQoreworfQorCitXYXRjaGRvZzo6VGltZXJJRCBXYXRjaGRvZzo6VGltZXI6Om5leHRUaW1lcklE
KCkKK3sKKyAgICBUaW1lcklEIGlkID0gbV9uZXh0VGltZXJJRCsrOworICAgIGlmICghaWQpCisg
ICAgICAgIGlkID0gbV9uZXh0VGltZXJJRCsrOworICAgIHJldHVybiBpZDsKK30KKwordm9pZCBX
YXRjaGRvZzo6VGltZXI6OnN0YXJ0KFdhdGNoZG9nKiB3YXRjaGRvZywgc3RkOjpjaHJvbm86Om1p
Y3Jvc2Vjb25kcyB0aW1lb3V0KQoreworICAgIC8vIFdhdGNoZG9nOjpkaWRGaXJlKCkgY2FuIGhh
bmRsZSBzcHVyaW91cyB3YWtlcywgYW5kIHdpbGwgc3RhcnQgYSBuZXcgdGltZXIgZm9yIHRoZSBy
ZW1haW5pbmcKKyAgICAvLyB0aW1lIGlmIHRoZSBsaW1pdCBoYXMgbm90IGJlZW4gcmVhY2hlZCB5
ZXQuIEhlbmNlLCBpZiB3ZSBhbHJlYWR5IGhhdmUgYW4gYWN0aXZlIHRpbWVyLCBhbmQKKyAgICAv
LyB0aGUgdGltZXIncyBleHBpcmF0aW9uIHdpbGwgb2NjdXIgYXQgb3IgYmVmb3JlIHRoZSBkZXNp
cmVkIGxpbWl0LCB0aGVuIHdlIGNhbiBqdXN0IGxldCB0aGUKKyAgICAvLyBleGlzdGluZyB0aW1l
ciBleHBpcmUgbmF0dXJhbGx5IGFuZCBoYW5kbGUgaXQgdGhlIHNhbWUgd2F5IHdlIGhhbmRsZSBz
cHVyaW91cyB3YWtlcy4KKyAgICAvLworICAgIC8vIFRoaXMgYWxsb3dzIHVzIHRvOgorICAgIC8v
CisgICAgLy8gMS4gbWluaW1pemUgdGhlIG51bWJlciBvZiB0aW1lciBpbnN0YW5jZXMgd2UgaGF2
ZSBxdWV1ZWQgaW4gdGhlIHdvcmtxdWV1ZSBhdCB0aGUgc2FtZSB0aW1lCisgICAgLy8gICAgKGlk
ZWFsbHkgb25seSAxIG9yIDApLiBMZXNzIHBlYWsgbWVtb3J5IHVzYWdlLgorICAgIC8vCisgICAg
Ly8gMi4gbWluaW1pemUgdGhlIGZyZXF1ZW5jeSBvZiBpbnN0YW50aWF0aW5nIHRpbWVyIGluc3Rh
bmNlcy4gVGhpcyBpcyBiZWNhdXNlIHdlbGwgYmVoYXZlZCBKUworICAgIC8vICAgIGNvZGUgd2ls
bCB0ZW5kIHRvIGVudGVyIGFuZCBleGl0IHRoZSBWTSBtYW55IHRpbWVzIChmb3Igc2hvcnQgZHVy
YXRpb25zKSBiZWZvcmUgYSBzaW5nbGUKKyAgICAvLyAgICBhY3RpdmUgdGltZW91dCBwZXJpb2Qg
ZXhwaXJlcy4gQXMgYSByZXN1bHQsIHdlIGdldCB0byBzdGFydCBvbmUgdGltZXIgcGVyIHRpbWVv
dXQgcGVyaW9kCisgICAgLy8gICAgKHdoaWNoIGlzIGluZnJlcXVlbnQgYmVjYXVzZSB0aW1lb3V0
IHBlcmlvZHMgdGVuZCB0byBiZSBsb25nKSBpbnN0ZWFkIG9mIG9uZSB0aW1lciBwZXIKKyAgICAv
LyAgICBWTSBlbnRyeSAod2hpY2ggaXMgZnJlcXVlbnQpLgorICAgIC8vCisgICAgLy8gT25seSBp
ZiB3ZSBkb24ndCBoYXZlIGFuIGFjdGl2ZSB0aW1lciBhbHJlYWR5LCBvciBpZiB0aGUgYWN0aXZl
IG9uZSB3b24ndCBleHBpcmUgc29vbiBlbm91Z2gKKyAgICAvLyB0byBlbmZvcmNlIHRoZSBkZXNp
cmVkIGxpbWl0LCB0aGVuIHdlJ2xsIG5lZWQgdG8gc3RhcnQgYSBuZXcgdGltZXIuCisgICAgCisg
ICAgYXV0byBzdGVhZHlUaW1lU2luY2VFcG9jaCA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKTsKKyAgICBhdXRvIGN1cnJlbnRUaW1lID0gc3RkOjpj
aHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86OnNlY29uZHM+KHN0ZWFkeVRpbWVTaW5j
ZUVwb2NoKTsKKyAgICBpZiAobV9hY3RpdmVUaW1lcklEKSB7CisgICAgICAgIGlmICgobV9leHBp
cmF0aW9uVGltZSA+IGN1cnJlbnRUaW1lKSAmJiAobV9leHBpcmF0aW9uVGltZSAtIGN1cnJlbnRU
aW1lIDw9IHRpbWVvdXQpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICAv
LyBTdGFydCBhIG5ldyB0aW1lci4KKyAgICB3YXRjaGRvZy0+cmVmKCk7CisKKyAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtX211dGV4KTsKKyAgICBUaW1lcklEIGlkID0gbmV4
dFRpbWVySUQoKTsKKyAgICBtX2FjdGl2ZVRpbWVySUQgPSBpZDsKKyAgICBtX2V4cGlyYXRpb25U
aW1lID0gY3VycmVudFRpbWUgKyB0aW1lb3V0OworCisgICAgbV9xdWV1ZS0+ZGlzcGF0Y2hBZnRl
cihzdGQ6OmNocm9ubzo6bmFub3NlY29uZHModGltZW91dCksIFt3YXRjaGRvZywgaWRdIHsKKyAg
ICAgICAgYXV0byYgdGltZXIgPSB3YXRjaGRvZy0+bV90aW1lcjsKKyAgICAgICAgc3RkOjpsb2Nr
X2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sodGltZXIubV9tdXRleCk7CisgICAgICAgIGlmICh0aW1l
ci5tX2FjdGl2ZVRpbWVySUQgPT0gaWQgJiYgd2F0Y2hkb2ctPmlzQXJtZWQoKSkKKyAgICAgICAg
ICAgIHdhdGNoZG9nLT5tX3RpbWVyRGlkRmlyZSA9IHRydWU7CisgICAgICAgIHdhdGNoZG9nLT5k
ZXJlZigpOworICAgIH0pOworfQorICAgIAorYm9vbCBXYXRjaGRvZzo6VGltZXI6OmhhbmRsZUZp
cmVkVGltZXJJZk5lZWRlZChXYXRjaGRvZyogd2F0Y2hkb2cpCit7CisgICAgc3RkOjpsb2NrX2d1
YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobV9tdXRleCk7CisgICAgaWYgKCF3YXRjaGRvZy0+bV90aW1l
ckRpZEZpcmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBtX2FjdGl2ZVRpbWVy
SUQgPSAwOworICAgIHdhdGNoZG9nLT5tX3RpbWVyRGlkRmlyZSA9IGZhbHNlOworICAgIHJldHVy
biB0cnVlOworfQorCiBXYXRjaGRvZzo6V2F0Y2hkb2coKQogICAgIDogbV90aW1lckRpZEZpcmUo
ZmFsc2UpCiAgICAgLCBtX2RpZEZpcmUoZmFsc2UpCkBAIC00MSwxOSArMTEwLDE1IEBAIFdhdGNo
ZG9nOjpXYXRjaGRvZygpCiAgICAgLCBtX3N0YXJ0VGltZSgwKQogICAgICwgbV9lbGFwc2VkVGlt
ZSgwKQogICAgICwgbV9yZWVudHJ5Q291bnQoMCkKLSAgICAsIG1faXNTdG9wcGVkKHRydWUpCiAg
ICAgLCBtX2NhbGxiYWNrKDApCiAgICAgLCBtX2NhbGxiYWNrRGF0YTEoMCkKICAgICAsIG1fY2Fs
bGJhY2tEYXRhMigwKQogewotICAgIGluaXRUaW1lcigpOwogfQogCiBXYXRjaGRvZzo6fldhdGNo
ZG9nKCkKIHsKICAgICBBU1NFUlQoIWlzQXJtZWQoKSk7Ci0gICAgc3RvcENvdW50ZG93bigpOwot
ICAgIGRlc3Ryb3lUaW1lcigpOwogfQogCiB2b2lkIFdhdGNoZG9nOjpzZXRUaW1lTGltaXQoVk0m
IHZtLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0LApAQCAtNjEsOSArMTI2LDYgQEAg
dm9pZCBXYXRjaGRvZzo6c2V0VGltZUxpbWl0KFZNJiB2bSwgc3RkOgogewogICAgIGJvb2wgd2Fz
RW5hYmxlZCA9IGlzRW5hYmxlZCgpOwogCi0gICAgaWYgKCFtX2lzU3RvcHBlZCkKLSAgICAgICAg
c3RvcENvdW50ZG93bigpOwotCiAgICAgbV9kaWRGaXJlID0gZmFsc2U7IC8vIFJlc2V0IHRoZSB3
YXRjaGRvZy4KIAogICAgIG1fbGltaXQgPSBsaW1pdDsKQEAgLTkyLDEwICsxNTQsOCBAQCBib29s
IFdhdGNoZG9nOjpkaWRGaXJlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAobV9kaWRGaXJlKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmICghbV90aW1lckRpZEZpcmUpCisgICAgaWYg
KCFtX3RpbWVyLmhhbmRsZUZpcmVkVGltZXJJZk5lZWRlZCh0aGlzKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIG1fdGltZXJEaWRGaXJlID0gZmFsc2U7Ci0gICAgc3RvcENvdW50ZG93bigp
OwogCiAgICAgYXV0byBjdXJyZW50VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAgICAgYXV0byBk
ZWx0YVRpbWUgPSBjdXJyZW50VGltZSAtIG1fc3RhcnRUaW1lOwpAQCAtMTI0LDcgKzE4NCw3IEBA
IGJvb2wgV2F0Y2hkb2c6OmRpZEZpcmUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBhdXRvIHJl
bWFpbmluZ1RpbWUgPSBtX2xpbWl0IC0gdG90YWxFbGFwc2VkVGltZTsKICAgICAgICAgbV9lbGFw
c2VkVGltZSA9IHRvdGFsRWxhcHNlZFRpbWU7CiAgICAgICAgIG1fc3RhcnRUaW1lID0gY3VycmVu
dFRpbWU7Ci0gICAgICAgIHN0YXJ0Q291bnRkb3duKHJlbWFpbmluZ1RpbWUpOworICAgICAgICBt
X3RpbWVyLnN0YXJ0KHRoaXMsIHJlbWFpbmluZ1RpbWUpOwogICAgIH0KIAogICAgIHJldHVybiBm
YWxzZTsKQEAgLTE1MCwzOSArMjEwLDE5IEBAIHZvaWQgV2F0Y2hkb2c6OmFybSgpCiB2b2lkIFdh
dGNoZG9nOjpkaXNhcm0oKQogewogICAgIEFTU0VSVChtX3JlZW50cnlDb3VudCA+IDApOwotICAg
IGlmIChtX3JlZW50cnlDb3VudCA9PSAxKQotICAgICAgICBzdG9wQ291bnRkb3duKCk7CiAgICAg
bV9yZWVudHJ5Q291bnQtLTsKIH0KIAogdm9pZCBXYXRjaGRvZzo6c3RhcnRDb3VudGRvd25JZk5l
ZWRlZCgpCiB7Ci0gICAgaWYgKCFtX2lzU3RvcHBlZCkKLSAgICAgICAgcmV0dXJuOyAvLyBBbHJl
YWR5IHN0YXJ0ZWQuCi0KICAgICBpZiAoIWlzQXJtZWQoKSkKICAgICAgICAgcmV0dXJuOyAvLyBO
b3QgZXhlY3V0aW5nIEpTIHNjcmlwdC4gTm8gbmVlZCB0byBzdGFydC4KIAogICAgIGlmIChpc0Vu
YWJsZWQoKSkgewogICAgICAgICBtX2VsYXBzZWRUaW1lID0gc3RkOjpjaHJvbm86Om1pY3Jvc2Vj
b25kczo6emVybygpOwogICAgICAgICBtX3N0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7Ci0g
ICAgICAgIHN0YXJ0Q291bnRkb3duKG1fbGltaXQpOworICAgICAgICBtX3RpbWVyLnN0YXJ0KHRo
aXMsIG1fbGltaXQpOwogICAgIH0KIH0KIAotdm9pZCBXYXRjaGRvZzo6c3RhcnRDb3VudGRvd24o
c3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBsaW1pdCkKLXsKLSAgICBBU1NFUlQobV9pc1N0b3Bw
ZWQpOwotICAgIG1faXNTdG9wcGVkID0gZmFsc2U7Ci0gICAgc3RhcnRUaW1lcihsaW1pdCk7Ci19
Ci0KLXZvaWQgV2F0Y2hkb2c6OnN0b3BDb3VudGRvd24oKQotewotICAgIGlmIChtX2lzU3RvcHBl
ZCkKLSAgICAgICAgcmV0dXJuOwotICAgIHN0b3BUaW1lcigpOwotICAgIG1faXNTdG9wcGVkID0g
dHJ1ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9XYXRjaGRvZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dhdGNoZG9nLmgJKHJldmlzaW9uIDE4NzgwNSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE2ICsyNiwx
NyBAQAogI2lmbmRlZiBXYXRjaGRvZ19oCiAjZGVmaW5lIFdhdGNoZG9nX2gKIAotI2lmIE9TKERB
UldJTikKLSNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPiAgICAKLSNlbmRpZgorI2luY2x1
ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewogCiBjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBWTTsKIAotY2xhc3MgV2F0Y2hkb2cgewor
Y2xhc3MgV2F0Y2hkb2cgOiBwdWJsaWMgV1RGOjpUaHJlYWRTYWZlUmVmQ291bnRlZDxXYXRjaGRv
Zz4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGNsYXNzIFNj
b3BlOwpAQCAtNjEsMjAgKzYyLDE0IEBAIHB1YmxpYzoKICAgICB2b2lkKiB0aW1lckRpZEZpcmVB
ZGRyZXNzKCkgeyByZXR1cm4gJm1fdGltZXJEaWRGaXJlOyB9CiAKIHByaXZhdGU6CisgICAgdHlw
ZWRlZiB1aW50MzJfdCBUaW1lcklEOworCiAgICAgdm9pZCBhcm0oKTsKICAgICB2b2lkIGRpc2Fy
bSgpOwogICAgIHZvaWQgc3RhcnRDb3VudGRvd25JZk5lZWRlZCgpOwotICAgIHZvaWQgc3RhcnRD
b3VudGRvd24oc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBsaW1pdCk7Ci0gICAgdm9pZCBzdG9w
Q291bnRkb3duKCk7CiAgICAgYm9vbCBpc0FybWVkKCkgeyByZXR1cm4gISFtX3JlZW50cnlDb3Vu
dDsgfQogCi0gICAgLy8gUGxhdGZvcm0gc3BlY2lmaWMgdGltZXIgaW1wbGVtZW50YXRpb246Ci0g
ICAgdm9pZCBpbml0VGltZXIoKTsKLSAgICB2b2lkIGRlc3Ryb3lUaW1lcigpOwotICAgIHZvaWQg
c3RhcnRUaW1lcihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0KTsKLSAgICB2b2lkIHN0
b3BUaW1lcigpOwotCi0gICAgLy8gbV90aW1lckRpZEZpcmUgKGFib3ZlKSBpbmRpY2F0ZXMgd2hl
dGhlciB0aGUgdGltZXIgZmlyZWQuIFRoZSBXYXRjaGRvZworICAgIC8vIG1fdGltZXJEaWRGaXJl
IGluZGljYXRlcyB3aGV0aGVyIHRoZSB0aW1lciBmaXJlZC4gVGhlIFdhdGNoZG9nCiAgICAgLy8g
c3RpbGwgbmVlZHMgdG8gY2hlY2sgaWYgdGhlIGFsbG93ZWQgQ1BVIHRpbWUgaGFzIGVsYXBzZWQu
IElmIHNvLCB0aGVuCiAgICAgLy8gdGhlIFdhdGNoZG9nIGZpcmVzIGFuZCBtX2RpZEZpcmUgd2ls
bCBiZSBzZXQuCiAgICAgLy8gTk9URTogbV90aW1lckRpZEZpcmUgaXMgb25seSBzZXQgYnkgdGhl
IHBsYXRmb3JtIHNwZWNpZmljIHRpbWVyCkBAIC04NywxNiArODIsMzEgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIG1fZWxhcHNlZFRpbWU7CiAKICAgICBpbnQgbV9y
ZWVudHJ5Q291bnQ7Ci0gICAgYm9vbCBtX2lzU3RvcHBlZDsKIAogICAgIFNob3VsZFRlcm1pbmF0
ZUNhbGxiYWNrIG1fY2FsbGJhY2s7CiAgICAgdm9pZCogbV9jYWxsYmFja0RhdGExOwogICAgIHZv
aWQqIG1fY2FsbGJhY2tEYXRhMjsKIAotI2lmIE9TKERBUldJTikgJiYgIVBMQVRGT1JNKEVGTCkg
JiYgIVBMQVRGT1JNKEdUSykKLSAgICBkaXNwYXRjaF9xdWV1ZV90IG1fcXVldWU7Ci0gICAgZGlz
cGF0Y2hfc291cmNlX3QgbV90aW1lcjsKLSNlbmRpZgorICAgIGNsYXNzIFRpbWVyIHsKKyAgICBw
dWJsaWM6CisgICAgICAgIFRpbWVyKCk7CisKKyAgICAgICAgdm9pZCBzdGFydChXYXRjaGRvZyos
IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgdGltZW91dCk7CisgICAgICAgIGJvb2wgaGFuZGxl
RmlyZWRUaW1lcklmTmVlZGVkKFdhdGNoZG9nKik7CisKKyAgICAgICAgYm9vbCBpc0FjdGl2ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlVGltZXJJRDsgfQorCisgICAgcHJpdmF0ZToKKyAgICAg
ICAgVGltZXJJRCBuZXh0VGltZXJJRCgpOworCisgICAgICAgIFJlZjxXb3JrUXVldWU+IG1fcXVl
dWU7CisgICAgICAgIFRpbWVySUQgbV9hY3RpdmVUaW1lcklEIHsgMCB9OworICAgICAgICBUaW1l
cklEIG1fbmV4dFRpbWVySUQgeyAxIH07CisgICAgICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29u
ZHMgbV9leHBpcmF0aW9uVGltZTsKKyAgICAgICAgc3RkOjptdXRleCBtX211dGV4OworICAgIH07
CisgICAgCisgICAgVGltZXIgbV90aW1lcjsKIAogICAgIGZyaWVuZCBjbGFzcyBXYXRjaGRvZzo6
U2NvcGU7CiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTWFjLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ01hYy5jcHAJKHJldmlzaW9u
IDE4NzgwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTWFjLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw3MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJX
YXRjaGRvZy5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotdm9pZCBXYXRjaGRvZzo6aW5pdFRpbWVy
KCkKLXsKLSAgICBtX3F1ZXVlID0gMDsKLSAgICBtX3RpbWVyID0gMDsKLX0KLQotdm9pZCBXYXRj
aGRvZzo6ZGVzdHJveVRpbWVyKCkKLXsKLSAgICBBU1NFUlQoIW1fdGltZXIpOwotICAgIGlmICht
X3F1ZXVlKQotICAgICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fcXVldWUpOwotfQotCi12b2lkIFdh
dGNoZG9nOjpzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbGltaXQpCi17Ci0g
ICAgQVNTRVJUKCFtX3RpbWVyKTsKLSAgICBpZiAoIW1fcXVldWUpCi0gICAgICAgIG1fcXVldWUg
PSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoImpzYy53YXRjaGRvZy5xdWV1ZSIsIDApOwotICAgIG1f
dGltZXIgPSBkaXNwYXRjaF9zb3VyY2VfY3JlYXRlKERJU1BBVENIX1NPVVJDRV9UWVBFX1RJTUVS
LCAwLCAwLCBtX3F1ZXVlKTsKLQotICAgIGRpc3BhdGNoX3NvdXJjZV9zZXRfdGltZXIobV90aW1l
ciwKLSAgICAgICAgZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgc3RkOjpjaHJvbm86
Om5hbm9zZWNvbmRzKGxpbWl0KS5jb3VudCgpKSwKLSAgICAgICAgRElTUEFUQ0hfVElNRV9GT1JF
VkVSLCAwKTsKLQotICAgIGRpc3BhdGNoX3NvdXJjZV9zZXRfZXZlbnRfaGFuZGxlcihtX3RpbWVy
LCBeewotICAgICAgICBtX3RpbWVyRGlkRmlyZSA9IHRydWU7Ci0gICAgfSk7Ci0KLSAgICBkaXNw
YXRjaF9yZXN1bWUobV90aW1lcik7Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OnN0b3BUaW1lcigpCi17
Ci0gICAgQVNTRVJUKG1fcXVldWUpOwotICAgIGRpc3BhdGNoX3N5bmMobV9xdWV1ZSwgXnsKLSAg
ICAgICAgZGlzcGF0Y2hfc291cmNlX2NhbmNlbChtX3RpbWVyKTsKLSAgICB9KTsKLSAgICBkaXNw
YXRjaF9yZWxlYXNlKG1fdGltZXIpOwotICAgIG1fdGltZXIgPSAwOwotfQotCi19IC8vIG5hbWVz
cGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTm9u
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hk
b2dOb25lLmNwcAkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV2F0Y2hkb2dOb25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1MCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJXYXRjaGRvZy5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotLy8g
VGhpcyBpcyBhIHN0dWIgZm9yIHBsYXRmb3JtcyB0aGF0IGhhdmUgbm90IGltcGxlbWVudGVkIHRo
aXMgZnVuY3Rpb25hbGl0eS4KLS8vIEluIHRoaXMgY2FzZSwgdGhlIHBsYXRmb3JtIHRpbWVyIGhl
cmUgbmV2ZXIgZmlyZXMuCi0KLXZvaWQgV2F0Y2hkb2c6OmluaXRUaW1lcigpCi17Ci19Ci0KLXZv
aWQgV2F0Y2hkb2c6OmRlc3Ryb3lUaW1lcigpCi17Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OnN0YXJ0
VGltZXIoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcykKLXsKLX0KLQotdm9pZCBXYXRjaGRvZzo6
c3RvcFRpbWVyKCkKLXsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxODc4MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyMCBAQAorMjAxNS0wOC0wMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gSmF2YVNjcmlwdCB3YXRjaGRvZyB1c2lu
ZyBXVEY6OldvcmtRdWV1ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0NzEwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgYmVjYXVzZSB3ZSdyZSBub3QgaW50cm9kdWNpbmcgYW55IGJlaGF2aW9y
IGNoYW5nZSB0byBXZWJDb3JlIGhlcmUuCisgICAgICAgIFdlJ3JlIG9ubHkgI2luY2x1ZGUnaW5n
IFdhdGNoZG9nLmggZGlyZWN0bHkgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIFZNLmguCisKKyAg
ICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL1dhdGNoZG9nLmg6IEFkZGVkLgorICAg
ICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHA6CisgICAg
ICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6CisKIDIwMTUtMDgt
MDMgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV0
dXJucyBpbmNvbnNpc3RlbnQgdHlwZXMgZm9yIGVsLnN0eWxlLnByb3BlcnR5IGFuZCBlbC5zdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKCdjb2xvcicpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bUVmbC5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFr
ZQkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UJ
KHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNM
VURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291
cCIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vdGV4dC9lZmwiCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L3BsdWdpbnMvZWZsIgorICAgICIke1dURl9ESVJ9L3d0Zi9lZmwiCiApCiAKIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwpJbmRleDogU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvcnVudGltZS9XYXRjaGRvZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvV2F0Y2hkb2cuaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvV2F0Y2hkb2cuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfV2F0Y2hkb2dfaAorI2Rl
ZmluZSBXZWJDb3JlX0ZXRF9XYXRjaGRvZ19oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvV2F0
Y2hkb2cuaD4KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxODc4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yMDQzMSw2
ICsyMDQzMSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lXFN0cnVjdHVyZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZVxTdHJ1Y3R1cmVDaGFpbi5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxTeW1ib2xUYWJsZS5oIiAv
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxX
YXRjaGRvZy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZVxXZWFrR0NNYXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZv
cndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV3JpdGVCYXJyaWVyLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1x5YXJyXFlhcnJKSVQuaCIgLz4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnMJKHJldmlzaW9uIDE4NzgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtMTIyMTMs
NiArMTIyMTMsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZVxTeW1ib2xUYWJsZS5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxXYXRjaGRvZy5oIj4KKyAgICAgIDxG
aWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRl
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxX
ZWFrR0NNYXAuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAkocmV2aXNpb24gMTg3ODA1KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9WTUVudHJ5U2NvcGUu
aD4KKyNpbmNsdWRlIDxydW50aW1lL1dhdGNoZG9nLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KIApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAJ
KHJldmlzaW9uIDE4NzgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSA8cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJv
ci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVkZSA8cnVudGltZS9XYXRj
aGRvZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCg==
</data>
<flag name="review"
          id="283458"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258629</attachid>
            <date>2015-08-10 11:51:55 -0700</date>
            <delta_ts>2015-08-10 12:05:07 -0700</delta_ts>
            <desc>fix 7: no more timerID, no more ARMed state, no more WatchdogScope.</desc>
            <filename>bug-147107.patch</filename>
            <type>text/plain</type>
            <size>60783</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4MjE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5NyBA
QAorMjAxNS0wOC0xMCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
SW1wbGVtZW50YXRpb24gSmF2YVNjcmlwdCB3YXRjaGRvZyB1c2luZyBXVEY6OldvcmtRdWV1ZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzEwNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhvdyB0aGUg
V2F0Y2hkb2cgd29ya3M/CisgICAgICAgID09PT09PT09PT09PT09PT09PT09PT0KKworICAgICAg
ICAxLiBXaGVuIGRvIHdlIHN0YXJ0IHRoZSBXYXRjaGRvZz8KKyAgICAgICAgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKyAgICAgICAgICAgVGhlIHdhdGNoZG9nIHNob3VsZCBvbmx5
IGJlIHN0YXJ0ZWQgaWYgYm90aCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHRydWU6Cisg
ICAgICAgICAgIDEuIEEgdGltZW91dCBsaW1pdCBoYXMgYmVlbiBzZXQuCisgICAgICAgICAgIDIu
IFdlIGhhdmUgZW50ZXJlZCB0aGUgVk0uCisgCisgICAgICAgIDIuIENQVSB0aW1lIHZzIFdhbGwg
Q2xvY2sgdGltZQorICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAg
ICAgICAgV2h5IGRvIHdlIG5lZWQgMiB0aW1lIGRlYWRsaW5lczogbV9jcHVUaW1lRGVhZGxpbmUg
YW5kIG1fY3VycmVudE1vbm90b25pY1RpbWVEZWFkbGluZT8KKworICAgICAgICAgICBUaGUgd2F0
Y2hkb2cgdXNlcyBXb3JrUXVldWUgZGlzcGF0Y2hBZnRlcigpIHRvIHF1ZXVlIGEgdGltZXIgdG8g
bWVhc3VyZSB0aGUgd2F0Y2hkb2cgdGltZW91dAorICAgICAgICAgICBwZXJpb2QuIFdvcmtRdWV1
ZSB0aW1lcnMgbWVhc3VyZSB0aW1lIGluIG1vdG9uaWMgdGltZS4gIG1fY3VycmVudE1vbm90b25p
Y1RpbWVEZWFkbGluZQorICAgICAgICAgICBpbmRpY2F0ZXMgdGhlIG1vbm90b25pYyB0aW1lIHBv
aW50IHdoZW4gdGhlIFdvcmtRdWV1ZSB0aW1lciBpcyBleHBlY3RlZCB0byBmaXJlLgorCisgICAg
ICAgICAgIFRoZSB0aW1lIGxpbWl0IGZvciB3aGljaCB3ZSBhbGxvdyBKUyBjb2RlIHRvIHJ1biBz
aG91bGQgYmUgbWVhc3VyZWQgaW4gQ1BVIHRpbWUsIHdoaWNoIGNhbgorICAgICAgICAgICBkaWZm
ZXIgZnJvbSBtb25vdG9uaWMgdGltZS4gIG1fY3B1VGltZURlYWRsaW5lIGluZGljYXRlcyB0aGUg
Q1BVIHRpbWUgcG9pbnQgd2hlbiB0aGUgd2F0Y2hkb2cKKyAgICAgICAgICAgc2hvdWxkIGZpcmUu
CisKKyAgICAgICAgICAgTm90ZTogdGhlIHRpbWVyIGZpcmluZyBpcyBub3QgdGhlIHNhbWUgdGhp
bmcgYXMgdGhlIHdhdGNoZG9nIGZpcmluZy4gIFdoZW4gdGhlIHRpbWVyIGZpcmVzLAorICAgICAg
ICAgICB3ZSBuZWVkIHRvIGNoZWNrIGlmIG1fY3B1VGltZURlYWRsaW5lIGhhcyBiZWVuIHJlYWNo
ZWQuCisKKwkJICAgSWYgbV9jcHVUaW1lRGVhZGxpbmUgaGFzIGJlZW4gcmVhY2hlZCwgdGhlIHdh
dGNoZG9nIGlzIGNvbnNpZGVyZWQgdG8gaGF2ZSBmaXJlZC4KKworICAgICAgICAgICBJZiBub3Qs
IHRoZW4gd2UgaGF2ZSBhIHJlbWFpbmluZyBhbW91bnQgb2YgQ1BVIHRpbWUsIFRyZW1haW5kZXIs
IHRoYXQgd2Ugc2hvdWxkIGFsbG93IEpTCisgICAgICAgICAgIGNvZGUgdG8gY29udGludWUgdG8g
cnVuIGZvci4gIEhlbmNlLCB3ZSBuZWVkIHRvIHN0YXJ0IGEgbmV3IHRpbWVyIHRvIGZpcmUgYWdh
aW4gYWZ0ZXIKKyAgICAgICAgICAgVHJlbWFpbmRlciBtaWNyb3NlY29uZHMuCisgICAgCisgICAg
ICAgICAgIFNlZSBXYXRjaGRvZzo6ZGlkRmlyZVNsb3coKS4KKworICAgICAgICAzLiBTcHVyaW91
cyB3YWtlIHVwcworICAgICAgICAgICA9PT09PT09PT09PT09PT09PQorICAgICAgICAgICBCZWNh
dXNlIHRoZSBXb3JrUXVldWUgdGltZXIgY2Fubm90IGJlIGNhbmNlbGxlZCwgdGhlIHdhdGNoZG9n
IG5lZWRzIHRvIGlnbm9yZSBzdGFsZSB0aW1lcnMuCisgICAgICAgICAgIEl0IGRvZXMgdGhpcyBi
eSBjaGVja2luZyB0aGUgbV9jdXJyZW50TW9ub3RvbmljVGltZURlYWRsaW5lLiAgQSB3YWtldXAg
dGhhdCBvY2N1cnMgcmlnaHQKKyAgICAgICAgICAgYWZ0ZXIgbV9jdXJyZW50TW9ub3RvbmljVGlt
ZURlYWRsaW5lIGV4cGlyZXMgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgd2FrZXVwIGZvciB0aGUg
YWN0aXZlCisgICAgICAgICAgIHRpbWVyLiAgQWxsIG90aGVyIHdha2UgdXBzIGlzIGNvbnNpZGVy
ZWQgdG8gYmUgc3B1cmlvdXMgYW5kIHdpbGwgYmUgaWdub3JlZC4KKyAKKyAgICAgICAgICAgU2Vl
IFdhdGNoZG9nOjpkaWRGaXJlU2xvdygpLgorIAorICAgICAgICA0LiBNaW5pbWl6aW5nIFRpbWVy
IGNyZWF0aW9uIGNvc3QKKyAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisgICAgICAgICAgIENvbmNlcHR1YWxseSwgd2UgY291bGQgc3RhcnQgYSBuZXcgdGltZXIgZXZl
cnkgdGltZSB3ZSBzdGFydCB0aGUgd2F0Y2hkb2cuIEJ1dCB3ZSBjYW4gZG8gYmV0dGVyCisgICAg
ICAgICAgIHRoYW4gdGhpcy4KKyAKKyAgICAgICAgICAgSW4gcHJhY3RpY2UsIHRoZSB0aW1lb3V0
IHBlcmlvZCBvZiBhIHdhdGNoZG9nIHRlbmRzIHRvIGJlIGxvbmcsIGFuZCB0aGUgYW1vdW50IG9m
IHRpbWUgYSB3YXRjaGRvZworICAgICAgICAgICBzdGF5cyBhY3RpdmUgdGVuZHMgdG8gYmUgc2hv
cnQgZm9yIHdlbGwtYmVoYXZlZCBKUyBjb2RlLiBUaGUgdXNlciBhbHNvIHRlbmRzIHRvIHJlLXVz
ZSB0aGUgc2FtZQorICAgICAgICAgICB0aW1lb3V0IHBlcmlvZC4gQ29uc2lkZXIgdGhlIGZvbGxv
d2luZyBleGFtcGxlOgorIAorICAgICAgICAgICAgICAgfC0tLXwtLS0tLXwtLS18LS0tLS0tLS0t
LS0tLS0tLXwtLS0tLS0tLS18CisgICAgICAgICAgICAgICB0MCAgdDEgICAgdDIgIHQzICAgICAg
ICAgICAgdDAgKyBQICAgIHQyICsgUAorCisgICAgICAgICAgICAgICB8PC0tLSBUMSAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0+fAorICAgICAgICAgICAgICAgICAgICAgICAgIHw8LS0tIFQyIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLT58CisgICAgICAgICAgICAgICB8PC0tIFRkIC0+fCAgICAgICAgICAg
ICAgICAgICAgfDwtLSBUZCAtPnwKKworICAgICAgICAgICAxLiBUaGUgdXNlciBpbml0aWFsaXpl
cyB0aGUgd2F0Y2hkb2cgd2l0aCB0aW1lb3V0IHBlcmlvZCBQLgorICAgICAgICAgICAyLiBBdCB0
MCwgd2UgZW50ZXIgdGhlIFZNIHRvIGV4ZWN1dGUgSlMgY29kZSwgYW5kIHN0YXJ0cyB0aGUgd2F0
Y2hkb2cgdGltZXIsIFQxLgorICAgICAgICAgICAgICBUaGUgdGltZXIgaXMgc2V0IHRvIGV4cGly
ZSBhdCB0MCArIFAuCisgICAgICAgICAgIDMuIEF0IHQxLCB3ZSBleGl0IHRoZSBWTS4KKyAgICAg
ICAgICAgNC4gQXQgdDIsIHdlIGVudGVyIHRoZSBWTSBhZ2FpbiwgYW5kIHdvdWxkIGxpa2UgdG8g
c3RhcnQgYSBuZXcgd2F0Y2hkb2cgdGltZXIsIFQyLgorICAgICAgICAgCisgICAgICAgICAgICAg
IEhvd2V2ZXIsIHdlIGNhbiBub3RlIHRoYXQgdGhlIGV4cGlyYXRpb24gdGltZSBmb3IgVDIgd291
bGQgYmUgYWZ0ZXIgdGhlIGV4cGlyYXRpb24gdGltZQorICAgICAgICAgICAgICBvZiBUMS4gU3Bl
Y2lmaWNhbGx5LCBUMiB3b3VsZCBoYXZlIGV4cGlyZWQgYXQgVGQgYWZ0ZXIgVDEgZXhwaXJlcy4K
KyAgICAgICAgIAorICAgICAgICAgICAgICBIZW5jZSwgd2UgY2FuIGp1c3Qgd2FpdCBmb3IgVDEg
dG8gZXhwaXJlLCBhbmQgdGhlbiBzdGFydCBhIG5ldyB0aW1lciBUMicgYXQgdGltZSB0MCArIFAK
KyAgICAgICAgICAgICAgZm9yIGEgcGVyaW9kIG9yIFRkIGluc3RlYWQuCisKKyAgICAgICAgICAg
Tm90ZSB0aGF0IGRpZEZpcmVTbG93KCkgYWxyZWFkeSBjb21wZW5zYXRlcyBmb3IgdGltZSBkaWZm
ZXJlbmNlcyBiZXR3ZWVuIG1vbm90b25pYyBhbmQgQ1BVIHRpbWUsCisgICAgICAgICAgIGFzIHdl
bGwgYXMgaGFuZGxlIHNwdXJpb3VzIHdha2UgdXBzIChzZWUgbm90ZSAyIGFuZCAzIGFib3ZlKS4g
IEFzIGEgcmVzdWx0LCBkaWRGaXJlU2xvdygpIHdpbGwKKyAgICAgICAgICAgYXV0b21hdGljYWxs
eSB0YWtlIGNhcmUgb2Ygc3RhcnRpbmcgYSBuZXcgdGltZXIgZm9yIHRoZSBkaWZmZXJlbmNlIFRk
IGluIHRoZSBleGFtcGxlIGFib3ZlLgorICAgICAgICAgICBJbnN0ZWFkIG9mIHN0YXJ0aW5nIHRo
ZSBuZXcgdGltZXIgVDIgYW5kIHRpbWUgdDIsIHdlIGp1c3QgdmVyaWZ5IHRoYXQgaWYgdGhlIGFj
dGl2ZSB0aW1lciwgVDEncworICAgICAgICAgICBleHBpcmF0aW9uIGlzIGxlc3MgdGhhbiBUMnMs
IHRoZW4gd2UgYXJlIGFscmVhZHkgY292ZXJlZCBieSBUMSBhbmQgdGhlcmUncyBubyBuZWVkIHRv
IHN0YXJ0IFQyLgorCisgICAgICAgICAgIFRoZSBiZW5lZml0OgorCisgICAgICAgICAgIDEuIHdl
IG1pbmltaXplIHRoZSBudW1iZXIgb2YgdGltZXIgaW5zdGFuY2VzIHdlIGhhdmUgcXVldWVkIGlu
IHRoZSB3b3JrcXVldWUgYXQgdGhlIHNhbWUgdGltZQorICAgICAgICAgICAgICAoaWRlYWxseSBv
bmx5IDEgb3IgMCksIGFuZCB1c2UgbGVzcyBwZWFrIG1lbW9yeSB1c2FnZS4KKworICAgICAgICAg
ICAyLiB3ZSBtaW5pbWl6ZSB0aGUgZnJlcXVlbmN5IG9mIGluc3RhbnRpYXRpbmcgdGltZXIgaW5z
dGFuY2VzLiBCeSB3YWl0aW5nIGZvciB0aGUgY3VycmVudAorICAgICAgICAgICAgICBhY3RpdmUg
dGltZXIgdG8gZXhwaXJlIGZpcnN0LCBvbiBhdmVyYWdlLCB3ZSBnZXQgdG8gc3RhcnQgb25lIHRp
bWVyIHBlciB0aW1lb3V0IHBlcmlvZAorICAgICAgICAgICAgICAod2hpY2ggaXMgaW5mcmVxdWVu
dCBiZWNhdXNlIHRpbWVvdXQgcGVyaW9kcyB0ZW5kIHRvIGJlIGxvbmcpIGluc3RlYWQgb2Ygb25l
IHRpbWVyIHBlcgorICAgICAgICAgICAgICBWTSBlbnRyeSAod2hpY2ggdGVuZHMgdG8gYmUgZnJl
cXVlbnQpLgorCisgICAgICAgICAgIFNlZSBXYXRjaGRvZzo6c3RhcnRUaW1lcigpLgorCisgICAg
ICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAgIChjcmVhdGVXYXRjaGRvZ0lmTmVl
ZGVkKToKKyAgICAgICAgKEpTQ29udGV4dEdyb3VwQ2xlYXJFeGVjdXRpb25UaW1lTGltaXQpOgor
ICAgICAgICAtIE5vIG5lZWQgdG8gY3JlYXRlIHRoZSB3YXRjaGRvZyAoaWYgbm90IGFscmVhZHkg
Y3JlYXRlZCkganVzdCB0byBjbGVhciBpdC4KKyAgICAgICAgICBJZiB0aGUgd2F0Y2hkb2cgaXMg
bm90IGNyZWF0ZWQgeWV0LCB0aGVuIGl0IGlzIGVmZmVjdGl2ZWx5IGNsZWFyZWQuCisKKyAgICAg
ICAgKiBBUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHA6CisgICAgICAgIChjdXJy
ZW50Q1BVVGltZUFzSlNGdW5jdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKHRlc3RFeGVjdXRpb25U
aW1lTGltaXQpOgorICAgICAgICAoY3VycmVudENQVVRpbWUpOiBEZWxldGVkLgorICAgICAgICAq
IEFQSS90ZXN0cy90ZXN0YXBpLmM6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL3Rlc3RhcGkvdGVzdGFwaS52Y3hwcm9qOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2ouZmlsdGVyczoKKyAgICAg
ICAgLSBFbmFibGUgd2F0Y2hkb2cgdGVzdHMgZm9yIGFsbCBwbGF0Zm9ybXMuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgLSBSZW1vdmUgbm93IHVubmVlZGVkIFdh
dGNoZG9nTWFjLmNwcCBhbmQgV2F0Y2hkb2dOb25lLmNwcC4KKworICAgICAgICAqIFBsYXRmb3Jt
RWZsLmNtYWtlOgorCisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAg
ICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0
ZXI6OmV4ZWN1dGVDYWxsKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25z
dHJ1Y3QpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX2xvb3BfaGludCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfbG9v
cF9oaW50KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogbGxp
bnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcDoKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQ
YXRocy5jcHA6CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIC0gI2luY2x1ZGUg
V2F0Y2hkb2cuaCBpbiB0aGVzZSBmaWxlcyBkaXJlY3RseSBpbnN0ZWFkIG9mIGRvaW5nIGl0IHZp
YSBWTS5oLgorICAgICAgICAgIFRoZXNlIHNhdmVzIHVzIGZyb20gaGF2aW5nIHRvIHJlY29tcGls
ZSB0aGUgd29ybGQgd2hlbiB3ZSBjaGFuZ2UgV2F0Y2hkb2cuaC4KKworICAgICAgICAqIHJ1bnRp
bWUvVk0uaDoKKyAgICAgICAgLSBTZWUgY29tbWVudCBpbiBXYXRjaGRvZzo6c3RhcnRUaW1lcigp
IGJlbG93IGZvciB3aHkgdGhlIFdhdGNoZG9nIG5lZWRzIHRvIGJlCisgICAgICAgICAgdGhyZWFk
LXNhZmUgcmVmIGNvdW50ZWQuCisKKyAgICAgICAgKiBydW50aW1lL1ZNRW50cnlTY29wZS5jcHA6
CisgICAgICAgIChKU0M6OlZNRW50cnlTY29wZTo6Vk1FbnRyeVNjb3BlKToKKyAgICAgICAgKEpT
Qzo6Vk1FbnRyeVNjb3BlOjp+Vk1FbnRyeVNjb3BlKToKKyAgICAgICAgLSBXZSBoYXZlIGRvbmUg
YXdheSB3aXRoIHRoZSBXYXRjaGRvZ1Njb3BlIGFuZCBhcm1pbmcvZGlzYXJtaW5nIG9mIHRoZSB3
YXRjaGRvZy4KKyAgICAgICAgICBJbnN0ZWFkLCB0aGUgVk1FbnRyeVNjb3BlIHdpbGwgaW5mb3Jt
IHRoZSB3YXRjaGRvZyBvZiB3aGVuIHdlIGhhdmUgZW50ZXJlZCBhbmQKKyAgICAgICAgICBleGl0
ZWQgdGhlIFZNLgorCisgICAgICAgICogcnVudGltZS9XYXRjaGRvZy5jcHA6CisgICAgICAgIChK
U0M6OmN1cnJlbnRNb25vdG9uaWNUaW1lKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OldhdGNo
ZG9nKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6Omhhc1N0YXJ0ZWRUaW1lcik6CisgICAgICAg
IChKU0M6OldhdGNoZG9nOjpzZXRUaW1lTGltaXQpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6
ZGlkRmlyZVNsb3cpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6aGFzVGltZUxpbWl0KToKKyAg
ICAgICAgKEpTQzo6V2F0Y2hkb2c6OmZpcmUpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6ZW50
ZXJlZFZNKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmV4aXRlZFZNKToKKworICAgICAgICAo
SlNDOjpXYXRjaGRvZzo6c3RhcnRUaW1lcik6CisgICAgICAgIC0gVGhlIFdhdGNoZG9nIGlzIG5v
dyB0aHJlYWQtc2FmZSByZWYgY291bnRlZCBiZWNhdXNlIHRoZSBXb3JrUXVldWUgbWF5IGFjY2Vz
cyBpdAorICAgICAgICAgIChmcm9tIGEgZGlmZmVyZW50IHRocmVhZCkgZXZlbiBhZnRlciB0aGUg
Vk0gc2h1dHMgZG93bi4gIFdlIG5lZWQgdG8ga2VlcCBpdAorICAgICAgICAgIGFsaXZlIHVudGls
IHRoZSBXb3JrUXVldWUgY2FsbGJhY2sgY29tcGxldGVzLgorCisgICAgICAgICAgSW4gV2F0Y2hk
b2c6OnN0YXJ0VGltZXIoKSwgd2UnbGwgcmVmIHRoZSBXYXRjaGRvZyB0byBrZWVwIGl0IGFsaXZl
IGZvciBlYWNoCisgICAgICAgICAgV29ya1F1ZXVlIGNhbGxiYWNrIHdlIGRpc3BhdGNoLiAgVGhl
IGNhbGxiYWNrIHdpbGwgZGVyZWYgdGhlIFdhdGNoZG9nIGFmdGVyIGl0CisgICAgICAgICAgaXMg
ZG9uZSB3aXRoIGl0LiAgVGhpcyBlbnN1cmVzIHRoYXQgdGhlIFdhdGNoZG9nIGlzIGtlcHQgYWxp
dmUgdW50aWwgYWxsCisgICAgICAgICAgV29ya1F1ZXVlIGNhbGxiYWNrcyBhcmUgZG9uZS4KKwor
ICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3RvcFRpbWVyKToKKyAgICAgICAgKEpTQzo6V2F0Y2hk
b2c6On5XYXRjaGRvZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldhdGNoZG9nOjpkaWRGaXJl
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmlzRW5hYmxlZCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OldhdGNoZG9nOjphcm0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpX
YXRjaGRvZzo6ZGlzYXJtKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnN0YXJ0
Q291bnRkb3duSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3Rh
cnRDb3VudGRvd24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3RvcENvdW50
ZG93bik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9XYXRjaGRvZy5oOgorICAgICAgICAo
SlNDOjpXYXRjaGRvZzo6ZGlkRmlyZSk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjp0aW1lckRp
ZEZpcmVBZGRyZXNzKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmlzQXJtZWQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6U2NvcGU6OlNjb3BlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6V2F0Y2hkb2c6OlNjb3BlOjp+U2NvcGUpOiBEZWxldGVkLgorICAgICAgICAqIHJ1
bnRpbWUvV2F0Y2hkb2dNYWMuY3BwOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6aW5pdFRpbWVy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmRlc3Ryb3lUaW1lcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OldhdGNoZG9nOjpzdGFydFRpbWVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6V2F0Y2hkb2c6OnN0b3BUaW1lcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9XYXRjaGRvZ05vbmUuY3BwOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6aW5pdFRpbWVyKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmRlc3Ryb3lUaW1lcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpzdGFydFRpbWVyKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6V2F0Y2hkb2c6OnN0b3BUaW1lcik6IERlbGV0ZWQuCisKIDIwMTUtMDgtMDkgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKHIxODgxMDUp
OiBTZWVtcyB0byBoYXZlIGNhdXNlZCBjcmFzaGVzIGR1cmluZyBQTFQgb24gc29tZSBpUGFkcwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTg4MjE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC02MTUsNyArNjE1LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1JVTlRJTUVfU09VUkNFUwogICAg
IHJ1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAogICAgIHJ1bnRpbWUvVmFyT2Zmc2V0LmNwcAogICAg
IHJ1bnRpbWUvV2F0Y2hkb2cuY3BwCi0gICAgcnVudGltZS9XYXRjaGRvZ05vbmUuY3BwCiAgICAg
cnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCiAgICAgcnVudGltZS9XZWFrTWFwRGF0YS5j
cHAKICAgICBydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCShyZXZpc2lvbiAxODgyMTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3
IEBAIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0lOQ0xVREVfRElSRUMKICAgICAke0VDT1JF
X0lOQ0xVREVfRElSU30KICAgICAke0VJTkFfSU5DTFVERV9ESVJTfQogICAgICR7RU9fSU5DTFVE
RV9ESVJTfQorICAgICIke1dURl9ESVJ9L3d0Zi9lZmwiCiApCiBhZGRfZGVmaW5pdGlvbnMoLURT
VEFUSUNBTExZX0xJTktFRF9XSVRIX1dURikKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NvbnRleHRSZWYuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDb250ZXh0UmVmLmNwcAkocmV2aXNpb24gMTg4MjE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVy
LmgiCiAjaW5jbHVkZSAiU3RhY2tWaXNpdG9yLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSGFzaC5oPgogCkBAIC05NCw3ICs5NSw3IEBAIHN0YXRpYyBib29sIGludGVybmFsU2NyaXB0
VGltZW91dENhbGxiYWMKIHN0YXRpYyB2b2lkIGNyZWF0ZVdhdGNoZG9nSWZOZWVkZWQoVk0mIHZt
KQogewogICAgIGlmICghdm0ud2F0Y2hkb2cpIHsKLSAgICAgICAgdm0ud2F0Y2hkb2cgPSBzdGQ6
Om1ha2VfdW5pcXVlPFdhdGNoZG9nPigpOworICAgICAgICB2bS53YXRjaGRvZyA9IGFkb3B0UmVm
KG5ldyBXYXRjaGRvZygpKTsKIAogICAgICAgICAvLyBUaGUgTExJTlQgcGVla3MgaW50byB0aGUg
V2F0Y2hkb2cgb2JqZWN0IGRpcmVjdGx5LiBJbiBvcmRlciB0byBkbyB0aGF0LAogICAgICAgICAv
LyB0aGUgTExJTlQgYXNzdW1lcyB0aGF0IHRoZSBpbnRlcm5hbCBzaGFwZSBvZiBhIHN0ZDo6dW5p
cXVlX3B0ciBpcyB0aGUKQEAgLTEyMCw5ICsxMjEsOCBAQCB2b2lkIEpTQ29udGV4dEdyb3VwQ2xl
YXJFeGVjdXRpb25UaW1lTGltCiB7CiAgICAgVk0mIHZtID0gKnRvSlMoZ3JvdXApOwogICAgIEpT
TG9ja0hvbGRlciBsb2NrZXIoJnZtKTsKLSAgICBjcmVhdGVXYXRjaGRvZ0lmTmVlZGVkKHZtKTsK
LSAgICBXYXRjaGRvZyYgd2F0Y2hkb2cgPSAqdm0ud2F0Y2hkb2c7Ci0gICAgd2F0Y2hkb2cuc2V0
VGltZUxpbWl0KHZtLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzOjptYXgoKSk7CisgICAgaWYg
KHZtLndhdGNoZG9nKQorICAgICAgICB2bS53YXRjaGRvZy0+c2V0VGltZUxpbWl0KHZtLCBXYXRj
aGRvZzo6Tk9fVElNRU9VVCk7CiB9CiAKIC8vIEZyb20gdGhlIEFQSSdzIHBlcnNwZWN0aXZlLCBh
IGdsb2JhbCBjb250ZXh0IHJlbWFpbnMgYWxpdmUgaWZmIGl0IGhhcyBiZWVuIEpTR2xvYmFsQ29u
dGV4dFJldGFpbmVkLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVj
dXRpb25UaW1lTGltaXRUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCShyZXZpc2lvbiAxODgyMTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRl
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwzNCArMjYsMTUgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJFeGVjdXRpb25UaW1lTGltaXRUZXN0LmgiCiAKLSNpZiBPUyhEQVJX
SU4pCi0KICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgiCiAjaW5jbHVkZSAiSmF2YVNj
cmlwdENvcmUuaCIKKyNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CiAKLSNpbmNsdWRlIDxtYWNoL21hY2guaD4KLSNpbmNsdWRlIDxtYWNoL21hY2hfdGltZS5o
PgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KK3VzaW5nIG5hbWVz
cGFjZSBzdGQ6OmNocm9ubzsKIAogc3RhdGljIEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0ID0g
bnVsbHB0cjsKIAotc3RhdGljIGRvdWJsZSBjdXJyZW50Q1BVVGltZSgpCi17Ci0gICAgbWFjaF9t
c2dfdHlwZV9udW1iZXJfdCBpbmZvQ291bnQgPSBUSFJFQURfQkFTSUNfSU5GT19DT1VOVDsKLSAg
ICB0aHJlYWRfYmFzaWNfaW5mb19kYXRhX3QgaW5mbzsKLSAgICAKLSAgICAvKiBHZXQgdGhyZWFk
IGluZm9ybWF0aW9uICovCi0gICAgbWFjaF9wb3J0X3QgdGhyZWFkUG9ydCA9IG1hY2hfdGhyZWFk
X3NlbGYoKTsKLSAgICB0aHJlYWRfaW5mbyh0aHJlYWRQb3J0LCBUSFJFQURfQkFTSUNfSU5GTywg
KHRocmVhZF9pbmZvX3QpKCZpbmZvKSwgJmluZm9Db3VudCk7Ci0gICAgbWFjaF9wb3J0X2RlYWxs
b2NhdGUobWFjaF90YXNrX3NlbGYoKSwgdGhyZWFkUG9ydCk7Ci0gICAgCi0gICAgZG91YmxlIHRp
bWUgPSBpbmZvLnVzZXJfdGltZS5zZWNvbmRzICsgaW5mby51c2VyX3RpbWUubWljcm9zZWNvbmRz
IC8gMTAwMDAwMC47Ci0gICAgdGltZSArPSBpbmZvLnN5c3RlbV90aW1lLnNlY29uZHMgKyBpbmZv
LnN5c3RlbV90aW1lLm1pY3Jvc2Vjb25kcyAvIDEwMDAwMDAuOwotICAgIAotICAgIHJldHVybiB0
aW1lOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBjdXJyZW50Q1BVVGltZUFzSlNGdW5jdGlvbkNh
bGxiYWNrKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uT2JqZWN0LCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIFVOVVNFRF9QQVJB
TShmdW5jdGlvbk9iamVjdCk7CkBAIC02Myw3ICs0NCw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGN1
cnJlbnRDUFVUaW1lQXNKU0Z1bmMKICAgICBVTlVTRURfUEFSQU0oZXhjZXB0aW9uKTsKICAgICAK
ICAgICBBU1NFUlQoSlNDb250ZXh0R2V0R2xvYmFsQ29udGV4dChjdHgpID09IGNvbnRleHQpOwot
ICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjdHgsIGN1cnJlbnRDUFVUaW1lKCkpOworICAg
IHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjdHgsIGN1cnJlbnRDUFVUaW1lKCkuY291bnQoKSAv
IDEwMDAwMDAuKTsKIH0KIAogYm9vbCBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9
IGZhbHNlOwpAQCAtMTIwLDE4ICsxMDEsMTYgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQo
KQogICAgIHsKICAgICAgICAgY29uc3QgY2hhciogbG9vcEZvcmV2ZXJTY3JpcHQgPSAidmFyIHN0
YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHdoaWxlICh0cnVlKSB7IGlmIChjdXJyZW50Q1BV
VGltZSgpIC0gc3RhcnRUaW1lID4gLjE1MCkgYnJlYWs7IH0gIjsKICAgICAgICAgSlNTdHJpbmdS
ZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobG9vcEZvcmV2ZXJTY3Jp
cHQpOwotICAgICAgICBkb3VibGUgc3RhcnRUaW1lOwotICAgICAgICBkb3VibGUgZW5kVGltZTsK
ICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2Fs
bGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgc3RhcnRUaW1lID0gY3VycmVudENQVVRp
bWUoKTsKKyAgICAgICAgYXV0byBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAg
ICB2ID0gSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIs
IDEsICZleGNlcHRpb24pOwotICAgICAgICBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAg
ICAgICAgYXV0byBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgCi0gICAgICAg
IGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MGYpICYmIHNob3VsZFRlcm1pbmF0ZUNh
bGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1p
bGxpc2Vjb25kcygxNTApKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKICAg
ICAgICAgICAgIHByaW50ZigiUEFTUzogc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIp
OwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA8IC4xNTBmKSkKKyAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1p
bGxpc2Vjb25kcygxNTApKSkKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6IHNjcmlwdCBk
aWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIik7CiAgICAgICAgICAgICBpZiAoIXNob3Vs
ZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJ
TDogc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iKTsKQEAgLTE0OSwx
NiArMTI4LDE0IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICB7CiAgICAgICAg
IGNvbnN0IGNoYXIqIGxvb3BGb3JldmVyU2NyaXB0ID0gInZhciBzdGFydFRpbWUgPSBjdXJyZW50
Q1BVVGltZSgpOyB0cnkgeyB3aGlsZSAodHJ1ZSkgeyBpZiAoY3VycmVudENQVVRpbWUoKSAtIHN0
YXJ0VGltZSA+IC4xNTApIGJyZWFrOyB9IH0gY2F0Y2goZSkgeyB9IjsKICAgICAgICAgSlNTdHJp
bmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobG9vcEZvcmV2ZXJT
Y3JpcHQpOwotICAgICAgICBkb3VibGUgc3RhcnRUaW1lOwotICAgICAgICBkb3VibGUgZW5kVGlt
ZTsKICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKICAgICAgICAgc2hvdWxkVGVybWluYXRl
Q2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgc3RhcnRUaW1lID0gY3VycmVudENQ
VVRpbWUoKTsKKyAgICAgICAgYXV0byBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAg
ICAgICB2ID0gSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxw
dHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsK
KyAgICAgICAgYXV0byBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgCi0gICAg
ICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IC4xNTBmKSB8fCAhc2hvdWxkVGVybWlu
YXRlQ2FsbGJhY2tXYXNDYWxsZWQpIHsKLSAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3Rh
cnRUaW1lKSA8IC4xNTBmKSkKKyAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0g
bWlsbGlzZWNvbmRzKDE1MCkpIHx8ICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkg
eworICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgbWlsbGlzZWNvbmRz
KDE1MCkpKQogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IGRpZCBub3QgdGlt
ZSBvdXQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRl
Q2FsbGJhY2tXYXNDYWxsZWQpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQg
dGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIpOwpAQCAtMTc4LDE3ICsxNTUsMTUg
QEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgIHsKICAgICAgICAgY29uc3QgY2hh
ciogbG9vcEZvcmV2ZXJTY3JpcHQgPSAidmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7
IHdoaWxlICh0cnVlKSB7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gLjE1MCkg
YnJlYWs7IH0gIjsKICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcobG9vcEZvcmV2ZXJTY3JpcHQpOwotICAgICAgICBkb3VibGUgc3RhcnRU
aW1lOwotICAgICAgICBkb3VibGUgZW5kVGltZTsKICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0
cjsKLSAgICAgICAgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBz
dGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICB2ID0gSlNFdmFsdWF0ZVNjcmlw
dChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAg
ICAgICBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBlbmRUaW1lID0g
Y3VycmVudENQVVRpbWUoKTsKICAgICAgICAgCi0gICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFy
dFRpbWUpIDwgLjE1MGYpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAg
ICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25kcygxNTApKSAmJiBz
aG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKICAgICAgICAgICAgIHByaW50ZigiUEFT
Uzogc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNp
ZmllZC5cbiIpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0g
c3RhcnRUaW1lKSA8IC4xNTBmKSkKKyAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3RhcnRU
aW1lKSA8IG1pbGxpc2Vjb25kcygxNTApKSkKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6
IHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkIHdoZW4gbm8gY2FsbGJhY2sgaXMg
c3BlY2lmaWVkLlxuIik7CiAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwogICAgICAgICB9CkBA
IC0yMDQsMTcgKzE3OSwxNSBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgewog
ICAgICAgICBjb25zdCBjaGFyKiBsb29wRm9yZXZlclNjcmlwdCA9ICJ2YXIgc3RhcnRUaW1lID0g
Y3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUpIHsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBz
dGFydFRpbWUgPiAuMTUwKSBicmVhazsgfSAiOwogICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQg
PSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsb29wRm9yZXZlclNjcmlwdCk7Ci0gICAg
ICAgIGRvdWJsZSBzdGFydFRpbWU7Ci0gICAgICAgIGRvdWJsZSBlbmRUaW1lOwogICAgICAgICBl
eGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgp
OworICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAgICAgICAgIHYg
PSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwg
JmV4Y2VwdGlvbik7Ci0gICAgICAgIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAg
ICBhdXRvIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICAKLSAgICAgICAgaWYg
KCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gLjE1MGYpICYmIGNhbmNlbFRlcm1pbmF0ZUNhbGxi
YWNrV2FzQ2FsbGVkICYmICFleGNlcHRpb24pCisgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFy
dFRpbWUpID49IG1pbGxpc2Vjb25kcygxNTApKSAmJiBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dh
c0NhbGxlZCAmJiAhZXhjZXB0aW9uKQogICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiBzY3JpcHQg
dGltZW91dCB3YXMgY2FuY2VsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCAuMTUwKSB8fCBleGNlcHRp
b24pCisgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25k
cygxNTApKSB8fCBleGNlcHRpb24pCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3Jp
cHQgdGltZW91dCB3YXMgbm90IGNhbmNlbGxlZC5cbiIpOwogICAgICAgICAgICAgaWYgKCFjYW5j
ZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6IHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIik7CkBAIC0yMzIs
MjEgKzIwNSwxOCBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgewogICAgICAg
ICBjb25zdCBjaGFyKiBsb29wRm9yZXZlclNjcmlwdCA9ICJ2YXIgc3RhcnRUaW1lID0gY3VycmVu
dENQVVRpbWUoKTsgd2hpbGUgKHRydWUpIHsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRp
bWUgPiAuNTAwKSBicmVhazsgfSAiOwogICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsb29wRm9yZXZlclNjcmlwdCk7Ci0gICAgICAgIGRv
dWJsZSBzdGFydFRpbWU7Ci0gICAgICAgIGRvdWJsZSBlbmRUaW1lOwotICAgICAgICBkb3VibGUg
ZGVsdGFUaW1lOwogICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICBzdGFydFRp
bWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IGN1cnJlbnRD
UFVUaW1lKCk7CiAgICAgICAgIHYgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwg
bnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgIGVuZFRpbWUgPSBjdXJy
ZW50Q1BVVGltZSgpOwotICAgICAgICBkZWx0YVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lOwor
ICAgICAgICBhdXRvIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIGRl
bHRhVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7CiAgICAgICAgIAotICAgICAgICBpZiAoKGRl
bHRhVGltZSA+PSAuMzAwZikgJiYgKGRlbHRhVGltZSA8IC41MDBmKSAmJiAoZXh0ZW5kVGVybWlu
YXRlQ2FsbGJhY2tDYWxsZWQgPT0gMikgJiYgZXhjZXB0aW9uKQorICAgICAgICBpZiAoKGRlbHRh
VGltZSA+PSBtaWxsaXNlY29uZHMoMzAwKSkgJiYgKGRlbHRhVGltZSA8IG1pbGxpc2Vjb25kcyg1
MDApKSAmJiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPT0gMikgJiYgZXhjZXB0aW9u
KQogICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiBzY3JpcHQgdGltZW91dCB3YXMgZXh0ZW5kZWQg
YXMgZXhwZWN0ZWQuXG4iKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoZGVsdGFU
aW1lIDwgLjIwMGYpCisgICAgICAgICAgICBpZiAoZGVsdGFUaW1lIDwgbWlsbGlzZWNvbmRzKDIw
MCkpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgdGltZW91dCB3YXMgbm90
IGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIik7Ci0gICAgICAgICAgICBlbHNlIGlmIChkZWx0YVRp
bWUgPj0gLjUwMGYpCisgICAgICAgICAgICBlbHNlIGlmIChkZWx0YVRpbWUgPj0gbWlsbGlzZWNv
bmRzKDUwMCkpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgZGlkIG5vdCB0
aW1lb3V0LlxuIik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChleHRlbmRUZXJtaW5h
dGVDYWxsYmFja0NhbGxlZCA8IDEpCkBAIC0yNjQsNSArMjM0LDMgQEAgaW50IHRlc3RFeGVjdXRp
b25UaW1lTGltaXQoKQogICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoY29udGV4dCk7CiAgICAg
cmV0dXJuIGZhaWxlZDsKIH0KLQotI2VuZGlmIC8vIE9TKERBUldJTikKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCShyZXZpc2lvbiAxODgyMTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwkod29ya2luZyBjb3B5KQpA
QCAtNDMsOSArNDMsNyBAQAogI2luY2x1ZGUgIkN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5o
IgogI2luY2x1ZGUgIkdsb2JhbENvbnRleHRXaXRoRmluYWxpemVyVGVzdC5oIgogCi0jaWYgT1Mo
REFSV0lOKQogI2luY2x1ZGUgIkV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuaCIKLSNlbmRpZgogCiAj
aWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkodm9pZCk7CkBA
IC0xODkzLDkgKzE4OTEsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAg
ICAgICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKGNvbnRleHQpOwogICAgIH0KIAotI2lmIE9TKERB
UldJTikKICAgICBmYWlsZWQgPSB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkgfHwgZmFpbGVkOwot
I2VuZGlmIC8qIE9TKERBUldJTikgKi8KICAgICBmYWlsZWQgPSB0ZXN0R2xvYmFsQ29udGV4dFdp
dGhGaW5hbGl6ZXIoKSB8fCBmYWlsZWQ7CiAKICAgICAvLyBDbGVhciBvdXQgbG9jYWwgdmFyaWFi
bGVzIHBvaW50aW5nIGF0IEpTT2JqZWN0UmVmcyB0byBhbGxvdyB0aGVpciB2YWx1ZXMgdG8gYmUg
Y29sbGVjdGVkCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJl
dmlzaW9uIDE4ODIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg2Nyw3ICs4
NjcsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxWTUVudHJ5U2NvcGUu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxWYXJPZmZzZXQuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxXYXRjaGRvZy5jcHAiIC8+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nTm9uZS5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtNYXBDb25zdHJ1Y3Rvci5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtNYXBEYXRhLmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2Vha01hcFByb3RvdHlw
ZS5jcHAiIC8+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4
cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxODgyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHdv
cmtpbmcgY29weSkKQEAgLTkzMCw5ICs5MzAsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccnVudGltZVxXYXRjaGRvZy5jcHAiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdh
dGNoZG9nTm9uZS5jcHAiPgotICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+Ci0gICAgPC9D
bENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx0b29sc1xDb2RlUHJvZmlsZS5j
cHAiPgogICAgICAgPEZpbHRlcj50b29sczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovdGVzdGFwaS90
ZXN0YXBpLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2oJKHJldmlzaW9uIDE4ODIx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL3Rlc3Rh
cGkvdGVzdGFwaS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yOTYsNiArMjk2LDggQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xDb21wYXJlQW5kU3dhcFRlc3Qu
aCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xDdXN0b21HbG9i
YWxPYmplY3RDbGFzc1Rlc3QuYyIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXEFQ
SVx0ZXN0c1xDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuaCIgLz4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xFeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcCIgLz4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xFeGVjdXRpb25UaW1lTGlt
aXRUZXN0LmgiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxBUElcdGVzdHNcR2xv
YmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuaCIgLz4K
ICAgPC9JdGVtR3JvdXA+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai90ZXN0YXBpL3Rlc3RhcGkudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL3Rlc3RhcGkvdGVz
dGFwaS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE4ODIxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL3Rlc3RhcGkvdGVzdGFwaS52Y3hwcm9qLmZp
bHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTEyLDYgKzEyLDggQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xDb21wYXJlQW5kU3dhcFRlc3QuaCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rl
c3QuYyIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xDdXN0b21H
bG9iYWxPYmplY3RDbGFzc1Rlc3QuaCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4u
XEFQSVx0ZXN0c1xFeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xFeGVjdXRpb25UaW1lTGltaXRUZXN0LmgiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxBUElcdGVzdHNcR2xvYmFsQ29udGV4dFdpdGhG
aW5hbGl6ZXJUZXN0LmNwcCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0
ZXN0c1xHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuaCIgLz4KICAgPC9JdGVtR3JvdXA+
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTg4MjE0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE3MjIsNyArMTcyMiw2IEBACiAJCUZFRDI4N0IyMTVF
QzlBNTcwMERBODE2MSAvKiBMTEludE9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bj
b2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RkVEOTRGMkUxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDk0RjJCMTcxRTNFMjMwMEJFNzdBNCAv
KiBXYXRjaGRvZy5jcHAgKi87IH07CiAJCUZFRDk0RjJGMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRj
aGRvZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVE
OTRGMkMxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRkVEOTRGMzAxNzFFM0UyMzAwQkU3N0E0IC8q
IFdhdGNoZG9nTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFRDk0RjJEMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZ01hYy5jcHAgKi87IH07
CiAJCUZFRjA0MDUxMUFBRTY2MkQwMEJEMjhCMCAvKiBDb21wYXJlQW5kU3dhcFRlc3QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVGMDQwNTAxQUFF
NjYyRDAwQkQyOEIwIC8qIENvbXBhcmVBbmRTd2FwVGVzdC5jcHAgKi87IH07CiAJCUZFRjY4MzVF
MTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVGNjgzNUExNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0
dWJzQVJNLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRkVGNjgzNUYxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNdjcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRjY4MzVCMTc0MzQzQ0MwMEEz
MkUyNSAvKiBKSVRTdHVic0FSTXY3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTM1NzUsNyArMzU3NCw2IEBACiAJCUZFRDI4N0IxMTVFQzlBNTcw
MERBODE2MSAvKiBMTEludE9wY29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBMTEludE9wY29kZS5oOyBwYXRoID0gbGxpbnQvTExJbnRPcGNvZGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhdGNoZG9nLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEOTRGMkMxNzFFM0UyMzAwQkU3N0E0IC8qIFdh
dGNoZG9nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhdGNoZG9nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUZFRDk0RjJEMTcxRTNFMjMwMEJFNzdBNCAvKiBX
YXRjaGRvZ01hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXRj
aGRvZ01hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjA0MDUwMUFBRTY2
MkQwMEJEMjhCMCAvKiBDb21wYXJlQW5kU3dhcFRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gQ29tcGFyZUFuZFN3YXBUZXN0LmNwcDsgcGF0aCA9IEFQSS90ZXN0
cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
RUYwNDA1MjFBQUVDNEVEMDBCRDI4QjAgLyogQ29tcGFyZUFuZFN3YXBUZXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbXBhcmVBbmRTd2FwVGVzdC5oOyBwYXRoID0gQVBJ
L3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGRUY2ODM1QTE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNBUk0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSklUU3R1YnNBUk0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQ5MDUsNyArNDkwMyw2IEBACiAJCQkJRkU1OTMyQTYxODNDNUEyNjAwQTFFQ0ND
IC8qIFZNRW50cnlTY29wZS5oICovLAogCQkJCUZFRDk0RjJCMTcxRTNFMjMwMEJFNzdBNCAvKiBX
YXRjaGRvZy5jcHAgKi8sCiAJCQkJRkVEOTRGMkMxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9n
LmggKi8sCi0JCQkJRkVEOTRGMkQxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAq
LywKIAkJCQkxNEJGQ0U2ODEwQ0RCMUZDMDAzNjRDQ0UgLyogV2Vha0dDTWFwLmggKi8sCiAJCQkJ
QUQ4NkE5M0QxQUE0RDg3QzAwMkZFNzdGIC8qIFdlYWtHQ01hcElubGluZXMuaCAqLywKIAkJCQlB
N0NBM0FERDE3REE0MUFFMDA2NTM4QUYgLyogV2Vha01hcENvbnN0cnVjdG9yLmNwcCAqLywKQEAg
LTc4MDksNyArNzgwNiw2IEBACiAJCQkJRTE4RTNBNTkwREY5Mjc4QzAwRDkwQjM0IC8qIFZNLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZFNTkzMkE3MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5
U2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVEOTRGMkUxNzFFM0UyMzAwQkU3N0E0IC8q
IFdhdGNoZG9nLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZFRDk0RjMwMTcxRTNFMjMwMEJFNzdB
NCAvKiBXYXRjaGRvZ01hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Qjk4RDEzNjFCNjBDRDVG
MDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTE5RDI1
MTU4NTNDRTAwMDRBNEU3RCAvKiBXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
Q0Y3Mzc3MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJl
dmlzaW9uIDE4ODIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUHV0
QnlJZFN0YXR1cy5oIgogI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSAiU3Ry
aW5nQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogI2luY2x1ZGUgPHd0Zi9D
b21tYVByaW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+CkBAIC00MDIwLDcgKzQwMjEsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKHVuc2lnbmVkCiAKICAgICAgICAgICAgIGFkZFRvR3JhcGgoTG9vcEhpbnQpOwog
ICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAobV92bS0+d2F0Y2hkb2cgJiYgbV92bS0+d2F0
Y2hkb2ctPmlzRW5hYmxlZCgpKQorICAgICAgICAgICAgaWYgKG1fdm0tPndhdGNoZG9nICYmIG1f
dm0tPndhdGNoZG9nLT5oYXNUaW1lTGltaXQoKSkKICAgICAgICAgICAgICAgICBhZGRUb0dyYXBo
KENoZWNrV2F0Y2hkb2dUaW1lcik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIE5FWFRfT1BD
T0RFKG9wX2xvb3BfaGludCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDE4ODIxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiU2V0dXBWYXJhcmdzRnJhbWUuaCIKICNpbmNsdWRlICJUeXBlUHJvZmlsZXJMb2cuaCIK
KyNpbmNsdWRlICJXYXRjaGRvZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAkocmV2aXNpb24gMTg4MjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBA
QAogI2luY2x1ZGUgIlNldHVwVmFyYXJnc0ZyYW1lLmgiCiAjaW5jbHVkZSAiU3BpbGxSZWdpc3Rl
cnNNb2RlLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCisjaW5jbHVkZSAiV2F0Y2hk
b2cuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlz
aW9uIDE4ODIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDcgQEAKICNpbmNsdWRlICJTeW1i
b2wuaCIKICNpbmNsdWRlICJWTUVudHJ5U2NvcGUuaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0
ZXIuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5j
bHVkZSA8c3RkaW8uaD4KQEAgLTg4MCw4ICs4ODEsNiBAQCBmYWlsZWRKU09OUDoKICAgICBKU1Zh
bHVlIHJlc3VsdDsKICAgICB7CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBjYWxs
UmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7Ci0gICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRv
Z1Njb3BlKHZtLndhdGNoZG9nLmdldCgpKTsKLQogICAgICAgICByZXN1bHQgPSBwcm9ncmFtLT5n
ZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOwogICAgIH0K
IApAQCAtOTQyLDcgKzk0MSw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENh
bGxGcmEKICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICB7CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6
Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSwgIWlzSlNDYWxsKTsKLSAgICAg
ICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cuZ2V0KCkpOwogCiAg
ICAgICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6CiAgICAgICAgIGlmIChpc0pTQ2FsbCkKQEAgLTEw
MTMsNyArMTAxMSw2IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgK
ICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICB7CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJl
Y29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSwgIWlzSlNDb25zdHJ1Y3QpOwotICAgICAg
ICBXYXRjaGRvZzo6U2NvcGUgd2F0Y2hkb2dTY29wZSh2bS53YXRjaGRvZy5nZXQoKSk7CiAKICAg
ICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZS4KICAgICAgICAgaWYgKGlzSlNDb25zdHJ1Y3QpCkBA
IC0xMDgyLDggKzEwNzksNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKENhbGxGcmFt
ZUNsCiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgewogICAgICAgICBTYW1wbGluZ1Rvb2w6OkNh
bGxSZWNvcmQgY2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkpOwotICAgICAgICBXYXRjaGRvZzo6
U2NvcGUgd2F0Y2hkb2dTY29wZSh2bS53YXRjaGRvZy5nZXQoKSk7Ci0KICAgICAgICAgcmVzdWx0
ID0gY2xvc3VyZS5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCkt
PmV4ZWN1dGUoJnZtLCBjbG9zdXJlLnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKQEAgLTExNzMs
OCArMTE2OCw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGEKICAg
ICBKU1ZhbHVlIHJlc3VsdDsKICAgICB7CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29y
ZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7Ci0gICAgICAgIFdhdGNoZG9nOjpTY29wZSB3
YXRjaGRvZ1Njb3BlKHZtLndhdGNoZG9nLmdldCgpKTsKLQogICAgICAgICByZXN1bHQgPSBldmFs
LT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOwogICAg
IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCShyZXZp
c2lvbiAxODgyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiVHlwZUxvY2F0aW9u
LmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lz
dGVyLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTkw
NSw3ICs5MDYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9sb29wX2hpbnQoSW5zdHJ1Y3Rpb24qCiAg
ICAgfQogCiAgICAgLy8gRW1pdCB0aGUgd2F0Y2hkb2cgdGltZXIgY2hlY2s6Ci0gICAgaWYgKG1f
dm0tPndhdGNoZG9nICYmIG1fdm0tPndhdGNoZG9nLT5pc0VuYWJsZWQoKSkKKyAgICBpZiAobV92
bS0+d2F0Y2hkb2cgJiYgbV92bS0+d2F0Y2hkb2ctPmhhc1RpbWVMaW1pdCgpKQogICAgICAgICBh
ZGRTbG93Q2FzZShicmFuY2hUZXN0OChOb25aZXJvLCBBYnNvbHV0ZUFkZHJlc3MobV92bS0+d2F0
Y2hkb2ctPnRpbWVyRGlkRmlyZUFkZHJlc3MoKSkpKTsKIH0KIApAQCAtOTMxLDcgKzkzMiw3IEBA
IHZvaWQgSklUOjplbWl0U2xvd19vcF9sb29wX2hpbnQoSW5zdHJ1Y3QKICNlbmRpZgogCiAgICAg
Ly8gRW1pdCB0aGUgc2xvdyBwYXRoIG9mIHRoZSB3YXRjaGRvZyB0aW1lciBjaGVjazoKLSAgICBp
ZiAobV92bS0+d2F0Y2hkb2cgJiYgbV92bS0+d2F0Y2hkb2ctPmlzRW5hYmxlZCgpKSB7CisgICAg
aWYgKG1fdm0tPndhdGNoZG9nICYmIG1fdm0tPndhdGNoZG9nLT5oYXNUaW1lTGltaXQoKSkgewog
ICAgICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uSGFuZGxlV2F0Y2hkb2dUaW1lcik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTg4MjE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiAr
NTcsNyBAQAogI2luY2x1ZGUgIlNjb3BlZEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlRlc3RSdW5u
ZXJVdGlscy5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUgIldhdGNo
ZG9nLmgiCiAjaW5jbHVkZSA8d3RmL0lubGluZUFTTS5oPgogCiBuYW1lc3BhY2UgSlNDIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNF
eHRyYWN0b3IuY3BwCShyZXZpc2lvbiAxODgyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiAr
NTUsNyBAQAogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgogI2luY2x1ZGUgIlZNRW50cnlS
ZWNvcmQuaCIKICNpbmNsdWRlICJWYWx1ZVByb2ZpbGUuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDE4ODIx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rv
ci5oIgogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlUmFy
ZURhdGFJbmxpbmVzLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lvbiAxODgyMTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTg1LDYgKzg1LDcgQEAKICNpbmNsdWRlICJUeXBlUHJvZmlsZXIuaCIKICNpbmNsdWRlICJUeXBl
UHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgorI2luY2x1ZGUg
IldhdGNoZG9nLmgiCiAjaW5jbHVkZSAiV2Vha0dDTWFwSW5saW5lcy5oIgogI2luY2x1ZGUgIldl
YWtNYXBEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmgJKHJldmlzaW9uIDE4ODIxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDYgQEAKICNp
bmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJUeXBlZEFycmF5Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlZNRW50cnlSZWNvcmQuaCIKLSNpbmNsdWRlICJXYXRjaGRvZy5oIgog
I2luY2x1ZGUgIldhdGNocG9pbnQuaCIKICNpbmNsdWRlICJXZWFrUmFuZG9tLmgiCiAjaW5jbHVk
ZSA8d3RmL0JhZy5oPgpAQCAtMTA3LDYgKzEwNiw3IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlOwogY2xhc3MgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrOwogY2xhc3MgVmlydHVh
bFJlZ2lzdGVyOwogY2xhc3MgVk1FbnRyeVNjb3BlOworY2xhc3MgV2F0Y2hkb2c7CiBjbGFzcyBX
YXRjaHBvaW50OwogY2xhc3MgV2F0Y2hwb2ludFNldDsKIApAQCAtMjU5LDcgKzI1OSw3IEBAIHB1
YmxpYzoKICAgICBDbGllbnREYXRhKiBjbGllbnREYXRhOwogICAgIFZNRW50cnlGcmFtZSogdG9w
Vk1FbnRyeUZyYW1lOwogICAgIEV4ZWNTdGF0ZSogdG9wQ2FsbEZyYW1lOwotICAgIHN0ZDo6dW5p
cXVlX3B0cjxXYXRjaGRvZz4gd2F0Y2hkb2c7CisgICAgUmVmUHRyPFdhdGNoZG9nPiB3YXRjaGRv
ZzsKIAogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHN0cnVjdHVyZVN0cnVjdHVyZTsKICAgICBTdHJv
bmc8U3RydWN0dXJlPiBzdHJ1Y3R1cmVSYXJlRGF0YVN0cnVjdHVyZTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAkocmV2aXNpb24gMTg4
MjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRGVidWdnZXIuaCIK
ICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKKyNpbmNsdWRlICJXYXRjaGRv
Zy5oIgogI2luY2x1ZGUgPHd0Zi9TdGFja0JvdW5kcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAg
LTQ4LDYgKzQ5LDkgQEAgVk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUoVk0mIHZtLCBKU0dsbwog
ICAgICAgICAvLyBSZXNldCB0aGUgZGF0ZSBjYWNoZSBiZXR3ZWVuIEpTIGludm9jYXRpb25zIHRv
IGZvcmNlIHRoZSBWTSB0bwogICAgICAgICAvLyBvYnNlcnZlIHRpbWUgeG9uZSBjaGFuZ2VzLgog
ICAgICAgICB2bS5yZXNldERhdGVDYWNoZSgpOworCisgICAgICAgIGlmICh2bS53YXRjaGRvZykK
KyAgICAgICAgICAgIHZtLndhdGNoZG9nLT5lbnRlcmVkVk0oKTsKICAgICB9CiAKICAgICB2bS5j
bGVhckxhc3RFeGNlcHRpb24oKTsKQEAgLTYzLDYgKzY3LDkgQEAgVk1FbnRyeVNjb3BlOjp+Vk1F
bnRyeVNjb3BlKCkKICAgICBpZiAobV92bS5lbnRyeVNjb3BlICE9IHRoaXMpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIGlmIChtX3ZtLndhdGNoZG9nKQorICAgICAgICBtX3ZtLndhdGNoZG9nLT5l
eGl0ZWRWTSgpOworCiAgICAgbV92bS5lbnRyeVNjb3BlID0gbnVsbHB0cjsKIAogICAgIGZvciAo
YXV0byYgbGlzdGVuZXIgOiBtX2FsbEVudHJ5U2NvcGVEaWRQb3BMaXN0ZW5lcnMudmFsdWVzKCkp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCShyZXZp
c2lvbiAxODgyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDM3ICszMiw0MSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
I2RlZmluZSBOT19MSU1JVCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzOjptYXgoKQorY29uc3Qg
c3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBXYXRjaGRvZzo6Tk9fVElNRU9VVCA9IHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHM6Om1heCgpOworCitzdGF0aWMgc3RkOjpjaHJvbm86Om1pY3Jvc2Vj
b25kcyBjdXJyZW50TW9ub3RvbmljVGltZSgpCit7CisgICAgYXV0byBzdGVhZHlUaW1lU2luY2VF
cG9jaCA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2go
KTsKKyAgICByZXR1cm4gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1p
Y3Jvc2Vjb25kcz4oc3RlYWR5VGltZVNpbmNlRXBvY2gpOworfQogCiBXYXRjaGRvZzo6V2F0Y2hk
b2coKQogICAgIDogbV90aW1lckRpZEZpcmUoZmFsc2UpCiAgICAgLCBtX2RpZEZpcmUoZmFsc2Up
Ci0gICAgLCBtX3RpbWVvdXRQZXJpb2QoTk9fTElNSVQpCi0gICAgLCBtX3N0YXJ0Q1BVVGltZSgw
KQotICAgICwgbV9lbGFwc2VkQ1BVVGltZSgwKQotICAgICwgbV9yZWVudHJ5Q291bnQoMCkKLSAg
ICAsIG1faXNTdG9wcGVkKHRydWUpCisgICAgLCBtX3RpbWVvdXRQZXJpb2QoTk9fVElNRU9VVCkK
KyAgICAsIG1fY3B1VGltZURlYWRsaW5lKE5PX1RJTUVPVVQpCisgICAgLCBtX2N1cnJlbnRNb25v
dG9uaWNUaW1lRGVhZGxpbmUoTk9fVElNRU9VVCkKICAgICAsIG1fY2FsbGJhY2soMCkKICAgICAs
IG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwgbV9jYWxsYmFja0RhdGEyKDApCisgICAgLCBtX3Rp
bWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImpzYy53YXRjaGRvZy5xdWV1ZSIsIFdvcmtRdWV1
ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCiB7Ci0gICAgaW5pdFRp
bWVyKCk7CisgICAgYXV0byB3YXRjaGRvZyA9IHRoaXM7CisgICAgbV90aW1lckhhbmRsZXIgPSBb
d2F0Y2hkb2ddIHsKKyAgICAgICAgd2F0Y2hkb2ctPm1fdGltZXJEaWRGaXJlID0gdHJ1ZTsKKyAg
ICAgICAgd2F0Y2hkb2ctPmRlcmVmKCk7CisgICAgfTsKIH0KIAotV2F0Y2hkb2c6On5XYXRjaGRv
ZygpCitpbmxpbmUgYm9vbCBXYXRjaGRvZzo6aGFzU3RhcnRlZFRpbWVyKCkKIHsKLSAgICBBU1NF
UlQoIWlzQXJtZWQoKSk7Ci0gICAgc3RvcENvdW50ZG93bigpOwotICAgIGRlc3Ryb3lUaW1lcigp
OworICAgIHJldHVybiBtX2NwdVRpbWVEZWFkbGluZSAhPSBOT19USU1FT1VUOwogfQogCiB2b2lk
IFdhdGNoZG9nOjpzZXRUaW1lTGltaXQoVk0mIHZtLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRz
IGxpbWl0LAogICAgIFNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBkYXRh
MSwgdm9pZCogZGF0YTIpCiB7Ci0gICAgYm9vbCB3YXNFbmFibGVkID0gaXNFbmFibGVkKCk7Ci0K
LSAgICBpZiAoIW1faXNTdG9wcGVkKQotICAgICAgICBzdG9wQ291bnRkb3duKCk7CisgICAgYm9v
bCBoYWRUaW1lTGltaXQgPSBoYXNUaW1lTGltaXQoKTsKIAogICAgIG1fZGlkRmlyZSA9IGZhbHNl
OyAvLyBSZXNldCB0aGUgd2F0Y2hkb2cuCiAKQEAgLTc4LDI5ICs4Miw4OCBAQCB2b2lkIFdhdGNo
ZG9nOjpzZXRUaW1lTGltaXQoVk0mIHZtLCBzdGQ6CiAgICAgLy8gSG93ZXZlciwgaWYgdGhlIHRp
bWVvdXQgaXMgYWxyZWFkeSBlbmFibGVkLCBhbmQgd2UncmUganVzdCBjaGFuZ2luZyB0aGUKICAg
ICAvLyB0aW1lb3V0IHZhbHVlLCB0aGVuIGFueSBleGlzdGluZyBKSVR0ZWQgY29kZSB3aWxsIGhh
dmUgdGhlIGFwcHJvcHJpYXRlCiAgICAgLy8gcG9sbGluZyBjaGVja3MuIEhlbmNlLCB0aGVyZSBp
cyBubyBuZWVkIHRvIHJlLWRvIHRoaXMgZmx1c2hpbmcuCi0gICAgaWYgKCF3YXNFbmFibGVkKSB7
CisgICAgaWYgKCFoYWRUaW1lTGltaXQpIHsKICAgICAgICAgLy8gQW5kIGlmIHdlJ3ZlIHByZXZp
b3VzbHkgY29tcGlsZWQgYW55IGZ1bmN0aW9ucywgd2UgbmVlZCB0byByZXZlcnQKICAgICAgICAg
Ly8gdGhlbSBiZWNhdXNlIHRoZXkgZG9uJ3QgaGF2ZSB0aGUgbmVlZGVkIHBvbGxpbmcgY2hlY2tz
IHlldC4KICAgICAgICAgdm0ucmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoKTsKICAgICB9CiAKLSAg
ICBzdGFydENvdW50ZG93bklmTmVlZGVkKCk7CisgICAgaWYgKG1faGFzRW50ZXJlZFZNICYmIGhh
c1RpbWVMaW1pdCgpKQorICAgICAgICBzdGFydFRpbWVyKG1fdGltZW91dFBlcmlvZCk7CiB9CiAK
LWJvb2wgV2F0Y2hkb2c6OmRpZEZpcmUoRXhlY1N0YXRlKiBleGVjKQorYm9vbCBXYXRjaGRvZzo6
ZGlkRmlyZVNsb3coRXhlY1N0YXRlKiBleGVjKQogewotICAgIGlmIChtX2RpZEZpcmUpCi0gICAg
ICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKCFtX3RpbWVyRGlkRmlyZSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIEFTU0VSVChtX3RpbWVyRGlkRmlyZSk7CiAgICAgbV90aW1lckRpZEZp
cmUgPSBmYWxzZTsKLSAgICBzdG9wQ291bnRkb3duKCk7CiAKLSAgICBhdXRvIGN1cnJlbnRUaW1l
ID0gY3VycmVudENQVVRpbWUoKTsKLSAgICBhdXRvIGRlbHRhQ1BVVGltZSA9IGN1cnJlbnRUaW1l
IC0gbV9zdGFydENQVVRpbWU7Ci0gICAgYXV0byB0b3RhbEVsYXBzZWRDUFVUaW1lID0gbV9lbGFw
c2VkQ1BVVGltZSArIGRlbHRhQ1BVVGltZTsKLSAgICBpZiAodG90YWxFbGFwc2VkQ1BVVGltZSA+
IG1fdGltZW91dFBlcmlvZCkgeworICAgIC8vIEEgbGVnaXRpbWF0ZSB0aW1lciBpcyB0aGUgdGlt
ZXIgd2hpY2ggd29rZSB1cCB3YXRjaGRvZyBhbmQgY2FuIGNhdXNlZCBkaWRGaXJlU2xvdygpIHRv
IGJlCisgICAgLy8gY2FsbGVkIGFmdGVyIG1fY3VycmVudE1vbm90b25pY1RpbWVEZWFkbGluZSBo
YXMgZXhwaXJlZC4gQWxsIG90aGVyIHRpbWVycyBhcmUgY29uc2lkZXJlZCB0bworICAgIC8vIGJl
IHN0YWxlLCBhbmQgdGhlaXIgd2FrZSB1cHMgYXJlIGNvbnNpZGVyZWQgdG8gYmUgc3B1cmlvdXMg
YW5kIHNob3VsZCBiZSBpZ25vcmVkLgorICAgIC8vCisgICAgLy8gZGlkRmlyZVNsb3coKSB3aWxs
IHJhY2UgYWdhaW5zdCBtX3RpbWVySGFuZGxlciB0byBjbGVhciBhbmQgc2V0IG1fdGltZXJEaWRG
aXJlIHJlc3BlY3RpdmVseS4KKyAgICAvLyBXZSBuZWVkIHRvIGRlYWwgd2l0aCBhIHZhcmlldHkg
b2Ygc2NlbmFyaW9zIHdoZXJlIHdlIGNhbiBoYXZlIHN0YWxlIHRpbWVycyBhbmQgbGVnaXRpbWF0
ZQorICAgIC8vIHRpbWVycyBmaXJpbmcgaW4gY2xvc2UgcHJveGltaXR5IHRvIGVhY2ggb3RoZXIu
CisgICAgLy8KKyAgICAvLyBDb25zaWRlciB0aGUgZm9sbG93aW5nIHNjZW5hcmlvczoKKyAgICAv
LworICAgIC8vIDEuIEEgc3RhbGUgdGltZXIgZmlyZXMgbG9uZyBiZWZvcmUgbV9jdXJyZW50TW9u
b3RvbmljVGltZURlYWRsaW5lIGV4cGlyZXMuCisgICAgLy8KKyAgICAvLyAgICBJbiB0aGlzIGNh
c2UsIHRoZSBtX2N1cnJlbnRNb25vdG9uaWNUaW1lRGVhZGxpbmUgY2hlY2sgYmVsb3cgd2lsbCBm
YWlsIGFuZCB0aGUgc3RhbGUgdGltZXIKKyAgICAvLyAgICB3aWxsIGJlIGlnbm9yZWQgYXMgc3B1
cmlvdXMuIFdlIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3ZSBjbGVhciBtX3RpbWVyRGlk
RmlyZSBiZWZvcmUKKyAgICAvLyAgICB3ZSBjaGVjayBtX2N1cnJlbnRNb25vdG9uaWNUaW1lRGVh
ZGxpbmUgYW5kIHJldHVybiBiZWxvdy4KKyAgICAvLworICAgIC8vIDIuIEEgc3RhbGUgdGltZXIg
ZmlyZXMganVzdCBiZWZvcmUgbV9jdXJyZW50TW9ub3RvbmljVGltZURlYWRsaW5lIGV4cGlyZXMu
CisgICAgLy8gICAgQmVmb3JlIHRoZSB3YXRjaGRvZyBjYW4gZ2V0cyB0byB0aGUgY2xlYXJpbmcg
bV90aW1lckRpZEZpcmUgYWJvdmUsIHRoZSBsZWdpdCB0aW1lciBhbHNvIGZpcmVzLgorICAgIC8v
CisgICAgLy8gICAgSW4gdGhpcyBjYXNlLCBtX3RpbWVyRGlkRmlyZSB3YXMgc2V0IHR3aWNlIGJ5
IHRoZSAyIHRpbWVycywgYnV0IHdlIG9ubHkgY2xlYXIgbmVlZCB0byBjbGVhcgorICAgIC8vICAg
IGl0IG9uY2UuIFRoZSBtX2N1cnJlbnRNb25vdG9uaWNUaW1lRGVhZGxpbmUgYmVsb3cgd2lsbCBw
YXNzIGFuZCB0aGlzIGludm9jYXRpb24gb2YgZGlkRmlyZVNsb3coKQorICAgIC8vICAgIHdpbGwg
YmUgdHJlYXRlZCBhcyB0aGUgcmVzcG9uc2UgdG8gdGhlIGxlZ2l0IHRpbWVyLiBUaGUgc3B1cmlv
dXMgdGltZXIgaXMgZWZmZWN0aXZlbHkgaWdub3JlZC4KKyAgICAvLworICAgIC8vIDMuIEEgc3Rh
dGUgdGltZXIgZmlyZXMganVzdCBiZWZvcmUgbV9jdXJyZW50TW9ub3RvbmljVGltZURlYWRsaW5l
IGV4cGlyZXMuCisgICAgLy8gICAgUmlnaHQgYWZ0ZXIgdGhlIHdhdGNoZG9nIGNsZWFycyBtX3Rp
bWVyRGlkRmlyZSBhYm92ZSwgdGhlIGxlZ2l0IHRpbWVyIGFsc28gZmlyZXMuCisgICAgLy8KKyAg
ICAvLyAgICBUaGUgZmFjdCB0aGF0IHRoZSBsZWdpdCB0aW1lciBmYWlscyBtZWFucyB0aGF0IHRo
ZSBtX2N1cnJlbnRNb25vdG9uaWNUaW1lRGVhZGxpbmUgY2hlY2sgd2lsbAorICAgIC8vICAgIHBh
c3MuIEFzIGxvbmcgYXMgd2UgY2xlYXIgbV90aW1lckRpZEZpcmUgYmVmb3JlIHdlIGRvIHRoZSBj
aGVjaywgd2UgYXJlIHNhZmUuIFRoaXMgaXMgdGhlIHNhbWUKKyAgICAvLyAgICBzY2VuYXJpbyBh
cyAyIGFib3ZlLgorICAgIC8vCisgICAgLy8gNC4gQSBzdGFsZSB0aW1lciBmaXJlcyBqdXN0IGJl
Zm9yZSBtX2N1cnJlbnRNb25vdG9uaWNUaW1lRGVhZGxpbmUgZXhwaXJlcy4KKyAgICAvLyAgICBS
aWdodCBhZnRlciB3ZSBkbyB0aGUgbV9jdXJyZW50TW9ub3RvbmljVGltZURlYWRsaW5lIGJlbG93
LCB0aGUgbGVnaXQgdGltZXIgZmlyZXMuCisgICAgLy8KKyAgICAvLyAgICBUaGUgZmFjdCB0aGF0
IHRoZSBsZWdpdCB0aW1lciBmaXJlcyBhZnRlciB0aGUgbV9jdXJyZW50TW9ub3RvbmljVGltZURl
YWRsaW5lIGNoZWNrIG1lYW5zIHRoYXQKKyAgICAvLyAgICB0aGUgbV9jdXJyZW50TW9ub3Rvbmlj
VGltZURlYWRsaW5lIGNoZWNrIHdpbGwgaGF2ZSBmYWlsZWQuIFRoaXMgaXMgdGhlIHNhbWUgc2Nl
bmFyaW8gYXMgMSBhYm92ZS4KKyAgICAvLworICAgIC8vIDUuIEEgbGVnaXQgdGltZXIgZmlyZXMu
CisgICAgLy8gICAgQSBzdGFsZSB0aW1lciBhbHNvIGZpcmVzIGJlZm9yZSB3ZSBjbGVhciBtX3Rp
bWVyRGlkRmlyZSBhYm92ZS4KKyAgICAvLworICAgIC8vICAgIFRoaXMgaXMgdGhlIHNhbWUgc2Nl
bmFyaW8gYXMgMiBhYm92ZS4KKyAgICAvLworICAgIC8vIDYuIEEgbGVnaXQgdGltZXIgZmlyZXMu
CisgICAgLy8gICAgQSBzdGFsZSB0aW1lciBmaXJlcyByaWdodCBhZnRlciB3ZSBjbGVhciBtX3Rp
bWVyRGlkRmlyZSBhYm92ZS4KKyAgICAvLworICAgIC8vICAgIEluIHRoaXMgY2FzZSwgdGhlIG1f
Y3VycmVudE1vbm90b25pY1RpbWVEZWFkbGluZSBjaGVjayB3aWxsIHBhc3MsIGFuZCB3ZSBmaXJl
IHRoZSB3YXRjaGRvZworICAgIC8vICAgIHRob3VnaCBtX3RpbWVyRGlkRmlyZSByZW1haW5zIHNl
dC4gVGhpcyBqdXN0IG1lYW5zIHRoYXQgZGlkRmlyZVNsb3coKSB3aWxsIGJlIGNhbGxlZCBhZ2Fp
biBkdWUKKyAgICAvLyAgICB0byBtX3RpbWVyRGlkRmlyZSBiZWluZyBzZXQuIFRoZSBzdWJzZXF1
ZW50IGludm9jYXRpb24gb2YgZGlkRmlyZVNsb3coKSB3aWxsIGVuZCB1cCBoYW5kbGluZworICAg
IC8vICAgIHRoZSBzdGFsZSB0aW1lciBhbmQgaWdub3JpbmcgaXQuICBUaGlzIGlzIHRoZSBzYW1l
IHNjZW5hcmlvIGFzIDEgYWJvdmUuCisgICAgLy8KKyAgICAvLyA3LiBBIGxlZ2l0IHRpbWVyIGZp
cmVzLgorICAgIC8vICAgIEEgc3RhbGUgdGltZXIgZmlyZXMgcmlnaHQgYWZ0ZXIgd2UgZG8gdGhl
IG1fY3VycmVudE1vbm90b25pY1RpbWVEZWFkbGluZSBjaGVjay4KKyAgICAvLworICAgIC8vICAg
IFRoaXMgaXMgdGhlIHNhbWUgYXMgNiwgd2hpY2ggbWVhbnMgaXQncyB0aGUgc2FtZSBhcyAxIGFi
b3ZlLgorICAgIC8vCisgICAgLy8gSW4gYWxsIHRoZXNlIGNhc2VzLCB3ZSBqdXN0IG5lZWQgdG8g
ZW5zdXJlIHRoYXQgd2UgY2xlYXIgbV90aW1lckRpZEZpcmUgYmVmb3JlIHdlIGRvIHRoZQorICAg
IC8vIG1fY3VycmVudE1vbm90b25pY1RpbWVEZWFkbGluZSBjaGVjayBiZWxvdy4gSGVuY2UsIGEg
c3RvcmVMb2FkIGZlbmNlIGlzIG5lZWRlZCB0byBlbnN1cmUKKyAgICAvLyB0aGF0IHRoZXNlIDIg
b3BlcmF0aW9ucyBkbyBub3QgZ2V0IHJlLW9yZGVyZWQuCisKKyAgICBXVEY6OnN0b3JlTG9hZEZl
bmNlKCk7CisKKyAgICBpZiAoY3VycmVudE1vbm90b25pY1RpbWUoKSA8IG1fY3VycmVudE1vbm90
b25pY1RpbWVEZWFkbGluZSkgeworICAgICAgICByZXR1cm4gZmFsc2U7IC8vIEp1c3QgYSBzdGFs
ZSB0aW1lciBmaXJpbmcuIE5vdGhpbmcgdG8gZG8uCisgICAgfQorCisgICAgbV9jdXJyZW50TW9u
b3RvbmljVGltZURlYWRsaW5lID0gTk9fVElNRU9VVDsKKworICAgIGlmIChjdXJyZW50Q1BVVGlt
ZSgpID49IG1fY3B1VGltZURlYWRsaW5lKSB7CiAgICAgICAgIC8vIENhc2UgMTogdGhlIGFsbG93
ZWQgQ1BVIHRpbWUgaGFzIGVsYXBzZWQuCiAKICAgICAgICAgLy8gSWYgbV9jYWxsYmFjayBpcyBu
b3Qgc2V0LCB0aGVuIHdlIHRlcm1pbmF0ZSBieSBkZWZhdWx0LgpAQCAtMTEyLDI3ICsxNzUsMzIg
QEAgYm9vbCBXYXRjaGRvZzo6ZGlkRmlyZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIFRoZSBtX2NhbGxiYWNrIG1heSBo
YXZlIHNldCBhIG5ldyBsaW1pdC4gU28sIHdlIG1heSBuZWVkIHRvIHJlc3RhcnQKLSAgICAgICAg
Ly8gdGhlIGNvdW50ZG93bi4KLSAgICAgICAgc3RhcnRDb3VudGRvd25JZk5lZWRlZCgpOworICAg
ICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgdGhlbiB0aGUgY2FsbGJhY2sgYWJvdmUgZGlkIG5vdCB3
YW50IHRvIHRlcm1pbmF0ZSBleGVjdXRpb24uIEFzIGEKKyAgICAgICAgLy8gcmVzdWx0LCB0aGUg
Y2FsbGJhY2sgbWF5IGhhdmUgZG9uZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgLy8g
ICAxLiBjbGVhcmVkIHRoZSB0aW1lb3V0IHBlcmlvZCAoaS5lLiB3YXRjaGRvZyBpcyBkaXNhYmxl
ZCksCisgICAgICAgIC8vICAgMi4gc2V0IGEgbmV3IHRpbWVvdXQgcGVyaW9kIHZpYSBXYXRjaGRv
Zzo6c2V0VGltZUxpbWl0KCksIG9yCisgICAgICAgIC8vICAgMy4gZGlkIG5vdGhpbmcgKGkuZS4g
YWxsb3cgYW5vdGhlciBjeWNsZSBvZiB0aGUgY3VycmVudCB0aW1lb3V0IHBlcmlvZCkuCisgICAg
ICAgIC8vCisgICAgICAgIC8vIEluIHRoZSBjYXNlIG9mIDEsIHdlIGRvbid0IGhhdmUgdG8gZG8g
YW55dGhpbmcuCisgICAgICAgIC8vIEluIHRoZSBjYXNlIG9mIDIsIFdhdGNoZG9nOjpzZXRUaW1l
TGltaXQoKSB3b3VsZCBhbHJlYWR5IGhhdmUgc3RhcnRlZCB0aGUgdGltZXIuCisgICAgICAgIC8v
IEluIHRoZSBjYXNlIG9mIDMsIHdlIG5lZWQgdG8gcmUtc3RhcnQgdGhlIHRpbWVyIGhlcmUuCisK
KyAgICAgICAgQVNTRVJUKG1faGFzRW50ZXJlZFZNKTsKKyAgICAgICAgaWYgKGhhc1RpbWVMaW1p
dCgpICYmICFoYXNTdGFydGVkVGltZXIoKSkKKyAgICAgICAgICAgIHN0YXJ0VGltZXIobV90aW1l
b3V0UGVyaW9kKTsKIAogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENhc2UgMjogdGhlIGFsbG93
ZWQgQ1BVIHRpbWUgaGFzIE5PVCBlbGFwc2VkLgotCi0gICAgICAgIC8vIFRlbGwgdGhlIHRpbWVy
IHRvIGFsYXJtIHVzIGFnYWluIHdoZW4gaXQgdGhpbmtzIHdlJ3ZlIHJlYWNoZWQgdGhlCi0gICAg
ICAgIC8vIGVuZCBvZiB0aGUgYWxsb3dlZCB0aW1lLgotICAgICAgICBhdXRvIHJlbWFpbmluZ0NQ
VVRpbWUgPSBtX3RpbWVvdXRQZXJpb2QgLSB0b3RhbEVsYXBzZWRDUFVUaW1lOwotICAgICAgICBt
X2VsYXBzZWRDUFVUaW1lID0gdG90YWxFbGFwc2VkQ1BVVGltZTsKLSAgICAgICAgbV9zdGFydENQ
VVRpbWUgPSBjdXJyZW50VGltZTsKLSAgICAgICAgc3RhcnRDb3VudGRvd24ocmVtYWluaW5nQ1BV
VGltZSk7CisgICAgICAgIGF1dG8gcmVtYWluaW5nQ1BVVGltZSA9IG1fY3B1VGltZURlYWRsaW5l
IC0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgc3RhcnRUaW1lcihyZW1haW5pbmdDUFVUaW1l
KTsKICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgV2F0Y2hkb2c6OmlzRW5h
YmxlZCgpCitib29sIFdhdGNoZG9nOjpoYXNUaW1lTGltaXQoKQogewotICAgIHJldHVybiAobV90
aW1lb3V0UGVyaW9kICE9IE5PX0xJTUlUKTsKKyAgICByZXR1cm4gKG1fdGltZW91dFBlcmlvZCAh
PSBOT19USU1FT1VUKTsKIH0KIAogdm9pZCBXYXRjaGRvZzo6ZmlyZSgpCkBAIC0xNDAsNDkgKzIw
OCw1MSBAQCB2b2lkIFdhdGNoZG9nOjpmaXJlKCkKICAgICBtX2RpZEZpcmUgPSB0cnVlOwogfQog
Ci12b2lkIFdhdGNoZG9nOjphcm0oKQordm9pZCBXYXRjaGRvZzo6ZW50ZXJlZFZNKCkKIHsKLSAg
ICBtX3JlZW50cnlDb3VudCsrOwotICAgIGlmIChtX3JlZW50cnlDb3VudCA9PSAxKQotICAgICAg
ICBzdGFydENvdW50ZG93bklmTmVlZGVkKCk7CisgICAgbV9oYXNFbnRlcmVkVk0gPSB0cnVlOwor
ICAgIGlmIChoYXNUaW1lTGltaXQoKSkKKyAgICAgICAgc3RhcnRUaW1lcihtX3RpbWVvdXRQZXJp
b2QpOwogfQogCi12b2lkIFdhdGNoZG9nOjpkaXNhcm0oKQordm9pZCBXYXRjaGRvZzo6ZXhpdGVk
Vk0oKQogewotICAgIEFTU0VSVChtX3JlZW50cnlDb3VudCA+IDApOwotICAgIGlmIChtX3JlZW50
cnlDb3VudCA9PSAxKQotICAgICAgICBzdG9wQ291bnRkb3duKCk7Ci0gICAgbV9yZWVudHJ5Q291
bnQtLTsKKyAgICBBU1NFUlQobV9oYXNFbnRlcmVkVk0pOworICAgIHN0b3BUaW1lcigpOworICAg
IG1faGFzRW50ZXJlZFZNID0gZmFsc2U7CiB9CiAKLXZvaWQgV2F0Y2hkb2c6OnN0YXJ0Q291bnRk
b3duSWZOZWVkZWQoKQordm9pZCBXYXRjaGRvZzo6c3RhcnRUaW1lcihzdGQ6OmNocm9ubzo6bWlj
cm9zZWNvbmRzIHRpbWVvdXQpCiB7Ci0gICAgaWYgKCFtX2lzU3RvcHBlZCkKLSAgICAgICAgcmV0
dXJuOyAvLyBBbHJlYWR5IHN0YXJ0ZWQuCisgICAgQVNTRVJUKG1faGFzRW50ZXJlZFZNKTsKKyAg
ICBBU1NFUlQoaGFzVGltZUxpbWl0KCkpOwogCi0gICAgaWYgKCFpc0FybWVkKCkpCi0gICAgICAg
IHJldHVybjsgLy8gTm90IGV4ZWN1dGluZyBKUyBzY3JpcHQuIE5vIG5lZWQgdG8gc3RhcnQuCisg
ICAgbV9jcHVUaW1lRGVhZGxpbmUgPSBjdXJyZW50Q1BVVGltZSgpICsgdGltZW91dDsKKyAgICBh
dXRvIG1vbm90b25pY1RpbWUgPSBjdXJyZW50TW9ub3RvbmljVGltZSgpOworICAgIGF1dG8gbW9u
b3RvbmljVGltZURlYWRsaW5lID0gbW9ub3RvbmljVGltZSArIHRpbWVvdXQ7CiAKLSAgICBpZiAo
aXNFbmFibGVkKCkpIHsKLSAgICAgICAgbV9lbGFwc2VkQ1BVVGltZSA9IHN0ZDo6Y2hyb25vOjpt
aWNyb3NlY29uZHM6Onplcm8oKTsKLSAgICAgICAgbV9zdGFydENQVVRpbWUgPSBjdXJyZW50Q1BV
VGltZSgpOwotICAgICAgICBzdGFydENvdW50ZG93bihtX3RpbWVvdXRQZXJpb2QpOworICAgIGlm
ICgobW9ub3RvbmljVGltZSA8IG1fY3VycmVudE1vbm90b25pY1RpbWVEZWFkbGluZSkKKyAgICAg
ICAgJiYgKG1fY3VycmVudE1vbm90b25pY1RpbWVEZWFkbGluZSA8PSBtb25vdG9uaWNUaW1lRGVh
ZGxpbmUpKSB7CisgICAgICAgIHJldHVybjsgLy8gV2FpdCBmb3IgdGhlIGN1cnJlbnQgYWN0aXZl
IHRpbWVyIHRvIGV4cGlyZSBiZWZvcmUgc3RhcnRpbmcgYSBuZXcgb25lLgogICAgIH0KLX0KIAot
dm9pZCBXYXRjaGRvZzo6c3RhcnRDb3VudGRvd24oc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBs
aW1pdCkKLXsKLSAgICBBU1NFUlQobV9pc1N0b3BwZWQpOwotICAgIG1faXNTdG9wcGVkID0gZmFs
c2U7Ci0gICAgc3RhcnRUaW1lcihsaW1pdCk7CisgICAgLy8gRWxzZSwgdGhlIGN1cnJlbnQgYWN0
aXZlIHRpbWVyIHdvbid0IGZpcmUgc29vbiBlbm91Z2guIFNvLCBzdGFydCBhIG5ldyB0aW1lci4K
KyAgICB0aGlzLT5yZWYoKTsgLy8gbV90aW1lckhhbmRsZXIgd2lsbCBkZXJlZiB0byBtYXRjaCBs
YXRlci4KKyAgICBtX2N1cnJlbnRNb25vdG9uaWNUaW1lRGVhZGxpbmUgPSBtb25vdG9uaWNUaW1l
RGVhZGxpbmU7CisgICAgbV90aW1lckRpZEZpcmUgPSBmYWxzZTsKKworICAgIC8vIFdlIGNsZWFy
IG1fdGltZXJEaWRGaXJlIGJlY2F1c2Ugd2UncmUgc3RhcnRpbmcgYSBuZXcgdGltZXIuIEhvd2V2
ZXIsIHdlIG5lZWQgdG8gbWFrZSBzdXJlCisgICAgLy8gdGhhdCB0aGUgY2xlYXJpbmcgb2NjdXJz
IGJlZm9yZSB0aGUgdGltZXIgdGhyZWFkIGlzIHN0YXJ0ZWQuIFRoZXJlYWZ0ZXIsIG9ubHkgZGlk
RmlyZVNsb3coKQorICAgIC8vIHNob3VsZCBjbGVhciBtX3RpbWVyRGlkRmlyZSAodW5sZXNzIHdl
IHN0YXJ0IHlldCBhbm90aGVyIHRpbWVyKS4gSGVuY2UsIHdlIG5lZWQgYSBzdG9yZVN0b3JlCisg
ICAgLy8gZmVuY2UgaGVyZSB0byBlbnN1cmUgdGhlc2Ugb3BlcmF0aW9ucyBkbyBub3QgZ2V0IHJl
LW9yZGVyZWQuCisgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKKworICAgIG1fdGltZXJRdWV1
ZS0+ZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9ubzo6bmFub3NlY29uZHModGltZW91dCksIG1fdGlt
ZXJIYW5kbGVyKTsKIH0KIAotdm9pZCBXYXRjaGRvZzo6c3RvcENvdW50ZG93bigpCit2b2lkIFdh
dGNoZG9nOjpzdG9wVGltZXIoKQogewotICAgIGlmIChtX2lzU3RvcHBlZCkKLSAgICAgICAgcmV0
dXJuOwotICAgIHN0b3BUaW1lcigpOwotICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKKyAgICBtX2Nw
dVRpbWVEZWFkbGluZSA9IE5PX1RJTUVPVVQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5oCShyZXZpc2lvbiAxODgy
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNiwzMSArMjYsNDAgQEAKICNpZm5kZWYgV2F0Y2hkb2dfaAogI2RlZmluZSBXYXRj
aGRvZ19oCiAKLSNpZiBPUyhEQVJXSU4pCi0jaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4g
ICAgCi0jZW5kaWYKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5j
bHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dvcmtRdWV1
ZS5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgRXhlY1N0YXRlOwogY2xhc3MgVk07CiAK
LWNsYXNzIFdhdGNoZG9nIHsKK2NsYXNzIFdhdGNoZG9nIDogcHVibGljIFdURjo6VGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8V2F0Y2hkb2c+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBjbGFzcyBTY29wZTsKIAogICAgIFdhdGNoZG9nKCk7Ci0gICAgfldhdGNoZG9n
KCk7CiAKICAgICB0eXBlZGVmIGJvb2wgKCpTaG91bGRUZXJtaW5hdGVDYWxsYmFjaykoRXhlY1N0
YXRlKiwgdm9pZCogZGF0YTEsIHZvaWQqIGRhdGEyKTsKICAgICB2b2lkIHNldFRpbWVMaW1pdChW
TSYsIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbGltaXQsIFNob3VsZFRlcm1pbmF0ZUNhbGxi
YWNrID0gMCwgdm9pZCogZGF0YTEgPSAwLCB2b2lkKiBkYXRhMiA9IDApOwogCiAgICAgLy8gVGhp
cyB2ZXJzaW9uIG9mIGRpZEZpcmUoKSB3aWxsIGNoZWNrIHRoZSBlbGFwc2VkIENQVSB0aW1lIGFu
ZCBjYWxsIHRoZQogICAgIC8vIGNhbGxiYWNrIChpZiBuZWVkZWQpIHRvIGRldGVybWluZSBpZiB0
aGUgd2F0Y2hkb2cgc2hvdWxkIGZpcmUuCi0gICAgYm9vbCBkaWRGaXJlKEV4ZWNTdGF0ZSopOwor
ICAgIGJvb2wgZGlkRmlyZShFeGVjU3RhdGUqIGV4ZWMpCisgICAgeworICAgICAgICBpZiAobV9k
aWRGaXJlKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmICghbV90aW1lckRp
ZEZpcmUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBkaWRGaXJl
U2xvdyhleGVjKTsKKyAgICB9CiAKLSAgICBib29sIGlzRW5hYmxlZCgpOworICAgIGJvb2wgaGFz
VGltZUxpbWl0KCk7CisgICAgdm9pZCBlbnRlcmVkVk0oKTsKKyAgICB2b2lkIGV4aXRlZFZNKCk7
CiAKICAgICAvLyBUaGlzIHZlcnNpb24gb2YgZGlkRmlyZSgpIGlzIGEgbW9yZSBlZmZpY2llbnQg
dmVyc2lvbiBmb3Igd2hlbiB3ZSB3YW50CiAgICAgLy8gdG8ga25vdyBpZiB0aGUgd2F0Y2hkb2cg
aGFzIGZpcmVkIGluIHRoZSBwYXN0LCBhbmQgbm90IHdoZXRoZXIgaXQgc2hvdWxkCkBAIC02MCwy
MSArNjksMTcgQEAgcHVibGljOgogCiAgICAgdm9pZCogdGltZXJEaWRGaXJlQWRkcmVzcygpIHsg
cmV0dXJuICZtX3RpbWVyRGlkRmlyZTsgfQogCisgICAgc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25v
OjptaWNyb3NlY29uZHMgTk9fVElNRU9VVDsKKwogcHJpdmF0ZToKLSAgICB2b2lkIGFybSgpOwot
ICAgIHZvaWQgZGlzYXJtKCk7Ci0gICAgdm9pZCBzdGFydENvdW50ZG93bklmTmVlZGVkKCk7Ci0g
ICAgdm9pZCBzdGFydENvdW50ZG93bihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0KTsK
LSAgICB2b2lkIHN0b3BDb3VudGRvd24oKTsKLSAgICBib29sIGlzQXJtZWQoKSB7IHJldHVybiAh
IW1fcmVlbnRyeUNvdW50OyB9Ci0KLSAgICAvLyBQbGF0Zm9ybSBzcGVjaWZpYyB0aW1lciBpbXBs
ZW1lbnRhdGlvbjoKLSAgICB2b2lkIGluaXRUaW1lcigpOwotICAgIHZvaWQgZGVzdHJveVRpbWVy
KCk7Ci0gICAgdm9pZCBzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbGltaXQp
OworICAgIHZvaWQgc3RhcnRUaW1lcihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIHRpbWVvdXQp
OwogICAgIHZvaWQgc3RvcFRpbWVyKCk7CiAKLSAgICAvLyBtX3RpbWVyRGlkRmlyZSAoYWJvdmUp
IGluZGljYXRlcyB3aGV0aGVyIHRoZSB0aW1lciBmaXJlZC4gVGhlIFdhdGNoZG9nCisgICAgaW5s
aW5lIGJvb2wgaGFzU3RhcnRlZFRpbWVyKCk7CisKKyAgICBib29sIGRpZEZpcmVTbG93KEV4ZWNT
dGF0ZSopOworCisgICAgLy8gbV90aW1lckRpZEZpcmUgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRp
bWVyIGZpcmVkLiBUaGUgV2F0Y2hkb2cKICAgICAvLyBzdGlsbCBuZWVkcyB0byBjaGVjayBpZiB0
aGUgYWxsb3dlZCBDUFUgdGltZSBoYXMgZWxhcHNlZC4gSWYgc28sIHRoZW4KICAgICAvLyB0aGUg
V2F0Y2hkb2cgZmlyZXMgYW5kIG1fZGlkRmlyZSB3aWxsIGJlIHNldC4KICAgICAvLyBOT1RFOiBt
X3RpbWVyRGlkRmlyZSBpcyBvbmx5IHNldCBieSB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgdGltZXIK
QEAgLTgzLDQ2ICs4OCwyMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kaWRGaXJlOwogCiAgICAg
c3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBtX3RpbWVvdXRQZXJpb2Q7Ci0gICAgc3RkOjpjaHJv
bm86Om1pY3Jvc2Vjb25kcyBtX3N0YXJ0Q1BVVGltZTsKLSAgICBzdGQ6OmNocm9ubzo6bWljcm9z
ZWNvbmRzIG1fZWxhcHNlZENQVVRpbWU7CiAKLSAgICBpbnQgbV9yZWVudHJ5Q291bnQ7Ci0gICAg
Ym9vbCBtX2lzU3RvcHBlZDsKKyAgICBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIG1fY3B1VGlt
ZURlYWRsaW5lOworICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbV9jdXJyZW50TW9ub3Rv
bmljVGltZURlYWRsaW5lOworCisgICAgYm9vbCBtX2hhc0VudGVyZWRWTSB7IGZhbHNlIH07CiAK
ICAgICBTaG91bGRUZXJtaW5hdGVDYWxsYmFjayBtX2NhbGxiYWNrOwogICAgIHZvaWQqIG1fY2Fs
bGJhY2tEYXRhMTsKICAgICB2b2lkKiBtX2NhbGxiYWNrRGF0YTI7CiAKLSNpZiBPUyhEQVJXSU4p
ICYmICFQTEFURk9STShFRkwpICYmICFQTEFURk9STShHVEspCi0gICAgZGlzcGF0Y2hfcXVldWVf
dCBtX3F1ZXVlOwotICAgIGRpc3BhdGNoX3NvdXJjZV90IG1fdGltZXI7Ci0jZW5kaWYKKyAgICBS
ZWY8V29ya1F1ZXVlPiBtX3RpbWVyUXVldWU7CisgICAgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBt
X3RpbWVySGFuZGxlcjsKIAogICAgIGZyaWVuZCBjbGFzcyBXYXRjaGRvZzo6U2NvcGU7CiAgICAg
ZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIH07CiAKLWNsYXNzIFdhdGNoZG9n
OjpTY29wZSB7Ci1wdWJsaWM6Ci0gICAgU2NvcGUoV2F0Y2hkb2cqIHdhdGNoZG9nKQotICAgICAg
ICA6IG1fd2F0Y2hkb2cod2F0Y2hkb2cpCi0gICAgewotICAgICAgICBpZiAoIXdhdGNoZG9nKQot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX3dhdGNoZG9nLT5hcm0oKTsKLSAgICB9Ci0g
ICAgCi0gICAgflNjb3BlKCkKLSAgICB7Ci0gICAgICAgIGlmICghbV93YXRjaGRvZykKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgbV93YXRjaGRvZy0+ZGlzYXJtKCk7Ci0gICAgfQotCi1w
cml2YXRlOgotICAgIFdhdGNoZG9nKiBtX3dhdGNoZG9nOwotfTsKLQogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKICNlbmRpZiAvLyBXYXRjaGRvZ19oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XYXRjaGRvZ01hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2F0Y2hkb2dNYWMuY3BwCShyZXZpc2lvbiAxODgyMTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ01hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2F0Y2hkb2cuaCIKLQotbmFtZXNw
YWNlIEpTQyB7Ci0KLXZvaWQgV2F0Y2hkb2c6OmluaXRUaW1lcigpCi17Ci0gICAgbV9xdWV1ZSA9
IDA7Ci0gICAgbV90aW1lciA9IDA7Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OmRlc3Ryb3lUaW1lcigp
Ci17Ci0gICAgQVNTRVJUKCFtX3RpbWVyKTsKLSAgICBpZiAobV9xdWV1ZSkKLSAgICAgICAgZGlz
cGF0Y2hfcmVsZWFzZShtX3F1ZXVlKTsKLX0KLQotdm9pZCBXYXRjaGRvZzo6c3RhcnRUaW1lcihz
dGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0KQotewotICAgIEFTU0VSVCghbV90aW1lcik7
Ci0gICAgaWYgKCFtX3F1ZXVlKQotICAgICAgICBtX3F1ZXVlID0gZGlzcGF0Y2hfcXVldWVfY3Jl
YXRlKCJqc2Mud2F0Y2hkb2cucXVldWUiLCAwKTsKLSAgICBtX3RpbWVyID0gZGlzcGF0Y2hfc291
cmNlX2NyZWF0ZShESVNQQVRDSF9TT1VSQ0VfVFlQRV9USU1FUiwgMCwgMCwgbV9xdWV1ZSk7Ci0K
LSAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X3RpbWVyKG1fdGltZXIsCi0gICAgICAgIGRpc3BhdGNo
X3RpbWUoRElTUEFUQ0hfVElNRV9OT1csIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyhsaW1pdCku
Y291bnQoKSksCi0gICAgICAgIERJU1BBVENIX1RJTUVfRk9SRVZFUiwgMCk7Ci0KLSAgICBkaXNw
YXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hhbmRsZXIobV90aW1lciwgXnsKLSAgICAgICAgbV90aW1l
ckRpZEZpcmUgPSB0cnVlOwotICAgIH0pOwotCi0gICAgZGlzcGF0Y2hfcmVzdW1lKG1fdGltZXIp
OwotfQotCi12b2lkIFdhdGNoZG9nOjpzdG9wVGltZXIoKQotewotICAgIEFTU0VSVChtX3F1ZXVl
KTsKLSAgICBkaXNwYXRjaF9zeW5jKG1fcXVldWUsIF57Ci0gICAgICAgIGRpc3BhdGNoX3NvdXJj
ZV9jYW5jZWwobV90aW1lcik7Ci0gICAgfSk7Ci0gICAgZGlzcGF0Y2hfcmVsZWFzZShtX3RpbWVy
KTsKLSAgICBtX3RpbWVyID0gMDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ05vbmUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTm9uZS5jcHAJKHJldmlzaW9u
IDE4ODIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTm9uZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
V2F0Y2hkb2cuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLS8vIFRoaXMgaXMgYSBzdHViIGZvciBw
bGF0Zm9ybXMgdGhhdCBoYXZlIG5vdCBpbXBsZW1lbnRlZCB0aGlzIGZ1bmN0aW9uYWxpdHkuCi0v
LyBJbiB0aGlzIGNhc2UsIHRoZSBwbGF0Zm9ybSB0aW1lciBoZXJlIG5ldmVyIGZpcmVzLgotCi12
b2lkIFdhdGNoZG9nOjppbml0VGltZXIoKQotewotfQotCi12b2lkIFdhdGNoZG9nOjpkZXN0cm95
VGltZXIoKQotewotfQotCi12b2lkIFdhdGNoZG9nOjpzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjpt
aWNyb3NlY29uZHMpCi17Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OnN0b3BUaW1lcigpCi17Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4MjE2KQorKysg
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTUtMDgtMTAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudGF0aW9uIEphdmFTY3JpcHQgd2F0Y2hkb2cgdXNpbmcgV1RGOjpXb3JrUXVldWUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcxMDcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1
c2Ugd2UncmUgbm90IGludHJvZHVjaW5nIGFueSBiZWhhdmlvciBjaGFuZ2UgdG8gV2ViQ29yZSBo
ZXJlLgorICAgICAgICBXZSdyZSBvbmx5ICNpbmNsdWRlJ2luZyBXYXRjaGRvZy5oIGRpcmVjdGx5
IGluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaCBWTS5oLgorCisgICAgICAgICogRm9yd2FyZGluZ0hl
YWRlcnMvcnVudGltZS9XYXRjaGRvZy5oOiBBZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5j
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAg
ICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorCiAyMDE1LTA4LTEwICBKYW1lcyBDcmFpZyAgPGpj
cmFpZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IEFkZHJlc3MgZm9sbG93LXVwIGNvbW1lbnRz
IGluIGJ1ZyAxNDU2ODQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCShyZXZpc2lvbiAx
ODgyMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQkod29ya2luZyBjb3B5
KQpAQCAtMjQsNiArMjQsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgogICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0L2VmbCIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGx1Z2lu
cy9lZmwiCisgICAgIiR7V1RGX0RJUn0vd3RmL2VmbCIKICkKIAogbGlzdChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1l
L1dhdGNoZG9nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvcnVudGltZS9XYXRjaGRvZy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvcnVudGltZS9XYXRjaGRvZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9XYXRjaGRvZ19oCisjZGVmaW5lIFdlYkNvcmVf
RldEX1dhdGNoZG9nX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XYXRjaGRvZy5oPgorI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oJKHJldmlzaW9uIDE4ODIxNCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIwNDM2LDYgKzIwNDM2LDcgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3Ry
dWN0dXJlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lXFN0cnVjdHVyZUNoYWluLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN5bWJvbFRhYmxlLmgiIC8+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFdhdGNoZG9nLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFdl
YWtHQ01hcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZVxXcml0ZUJhcnJpZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XEZvcndhcmRpbmdIZWFkZXJzXHlhcnJcWWFyckpJVC5oIiAvPgpJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwko
cmV2aXNpb24gMTg4MjE0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0xMjE5OCw2ICsxMjE5OCw5IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN5
bWJvbFRhYmxlLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9G
aWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3
YXJkaW5nSGVhZGVyc1xydW50aW1lXFdhdGNoZG9nLmgiPgorICAgICAgPEZpbHRlcj5Gb3J3YXJk
aW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFdlYWtHQ01hcC5oIj4K
ICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3Rl
bmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50
TGlzdGVuZXIuY3BwCShyZXZpc2lvbiAxODgyMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSA8cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9KU0xvY2suaD4KICNpbmNsdWRlIDxydW50aW1lL1ZNRW50cnlTY29wZS5oPgorI2luY2x1ZGUg
PHJ1bnRpbWUvV2F0Y2hkb2cuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMTg4
MjE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlIDxydW50aW1l
L0V4Y2VwdGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL1dhdGNoZG9nLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258632</attachid>
            <date>2015-08-10 12:05:07 -0700</date>
            <delta_ts>2015-08-11 22:49:01 -0700</delta_ts>
            <desc>fix 8: fix style issues.</desc>
            <filename>bug-147107.patch</filename>
            <type>text/plain</type>
            <size>60779</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4MjE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5NyBA
QAorMjAxNS0wOC0xMCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
SW1wbGVtZW50YXRpb24gSmF2YVNjcmlwdCB3YXRjaGRvZyB1c2luZyBXVEY6OldvcmtRdWV1ZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzEwNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhvdyB0aGUg
V2F0Y2hkb2cgd29ya3M/CisgICAgICAgID09PT09PT09PT09PT09PT09PT09PT0KKworICAgICAg
ICAxLiBXaGVuIGRvIHdlIHN0YXJ0IHRoZSBXYXRjaGRvZz8KKyAgICAgICAgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKyAgICAgICAgICAgVGhlIHdhdGNoZG9nIHNob3VsZCBvbmx5
IGJlIHN0YXJ0ZWQgaWYgYm90aCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHRydWU6Cisg
ICAgICAgICAgIDEuIEEgdGltZW91dCBsaW1pdCBoYXMgYmVlbiBzZXQuCisgICAgICAgICAgIDIu
IFdlIGhhdmUgZW50ZXJlZCB0aGUgVk0uCisgCisgICAgICAgIDIuIENQVSB0aW1lIHZzIFdhbGwg
Q2xvY2sgdGltZQorICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAg
ICAgICAgV2h5IGRvIHdlIG5lZWQgMiB0aW1lIGRlYWRsaW5lczogbV9jcHVUaW1lRGVhZGxpbmUg
YW5kIG1fY3VycmVudE1vbm90b25pY1RpbWVEZWFkbGluZT8KKworICAgICAgICAgICBUaGUgd2F0
Y2hkb2cgdXNlcyBXb3JrUXVldWUgZGlzcGF0Y2hBZnRlcigpIHRvIHF1ZXVlIGEgdGltZXIgdG8g
bWVhc3VyZSB0aGUgd2F0Y2hkb2cgdGltZW91dAorICAgICAgICAgICBwZXJpb2QuIFdvcmtRdWV1
ZSB0aW1lcnMgbWVhc3VyZSB0aW1lIGluIG1vdG9uaWMgdGltZS4gIG1fY3VycmVudE1vbm90b25p
Y1RpbWVEZWFkbGluZQorICAgICAgICAgICBpbmRpY2F0ZXMgdGhlIG1vbm90b25pYyB0aW1lIHBv
aW50IHdoZW4gdGhlIFdvcmtRdWV1ZSB0aW1lciBpcyBleHBlY3RlZCB0byBmaXJlLgorCisgICAg
ICAgICAgIFRoZSB0aW1lIGxpbWl0IGZvciB3aGljaCB3ZSBhbGxvdyBKUyBjb2RlIHRvIHJ1biBz
aG91bGQgYmUgbWVhc3VyZWQgaW4gQ1BVIHRpbWUsIHdoaWNoIGNhbgorICAgICAgICAgICBkaWZm
ZXIgZnJvbSBtb25vdG9uaWMgdGltZS4gIG1fY3B1VGltZURlYWRsaW5lIGluZGljYXRlcyB0aGUg
Q1BVIHRpbWUgcG9pbnQgd2hlbiB0aGUgd2F0Y2hkb2cKKyAgICAgICAgICAgc2hvdWxkIGZpcmUu
CisKKyAgICAgICAgICAgTm90ZTogdGhlIHRpbWVyIGZpcmluZyBpcyBub3QgdGhlIHNhbWUgdGhp
bmcgYXMgdGhlIHdhdGNoZG9nIGZpcmluZy4gIFdoZW4gdGhlIHRpbWVyIGZpcmVzLAorICAgICAg
ICAgICB3ZSBuZWVkIHRvIGNoZWNrIGlmIG1fY3B1VGltZURlYWRsaW5lIGhhcyBiZWVuIHJlYWNo
ZWQuCisKKyAgICAgICAgICAgSWYgbV9jcHVUaW1lRGVhZGxpbmUgaGFzIGJlZW4gcmVhY2hlZCwg
dGhlIHdhdGNoZG9nIGlzIGNvbnNpZGVyZWQgdG8gaGF2ZSBmaXJlZC4KKworICAgICAgICAgICBJ
ZiBub3QsIHRoZW4gd2UgaGF2ZSBhIHJlbWFpbmluZyBhbW91bnQgb2YgQ1BVIHRpbWUsIFRyZW1h
aW5kZXIsIHRoYXQgd2Ugc2hvdWxkIGFsbG93IEpTCisgICAgICAgICAgIGNvZGUgdG8gY29udGlu
dWUgdG8gcnVuIGZvci4gIEhlbmNlLCB3ZSBuZWVkIHRvIHN0YXJ0IGEgbmV3IHRpbWVyIHRvIGZp
cmUgYWdhaW4gYWZ0ZXIKKyAgICAgICAgICAgVHJlbWFpbmRlciBtaWNyb3NlY29uZHMuCisgICAg
CisgICAgICAgICAgIFNlZSBXYXRjaGRvZzo6ZGlkRmlyZVNsb3coKS4KKworICAgICAgICAzLiBT
cHVyaW91cyB3YWtlIHVwcworICAgICAgICAgICA9PT09PT09PT09PT09PT09PQorICAgICAgICAg
ICBCZWNhdXNlIHRoZSBXb3JrUXVldWUgdGltZXIgY2Fubm90IGJlIGNhbmNlbGxlZCwgdGhlIHdh
dGNoZG9nIG5lZWRzIHRvIGlnbm9yZSBzdGFsZSB0aW1lcnMuCisgICAgICAgICAgIEl0IGRvZXMg
dGhpcyBieSBjaGVja2luZyB0aGUgbV9jdXJyZW50TW9ub3RvbmljVGltZURlYWRsaW5lLiAgQSB3
YWtldXAgdGhhdCBvY2N1cnMgcmlnaHQKKyAgICAgICAgICAgYWZ0ZXIgbV9jdXJyZW50TW9ub3Rv
bmljVGltZURlYWRsaW5lIGV4cGlyZXMgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgd2FrZXVwIGZv
ciB0aGUgYWN0aXZlCisgICAgICAgICAgIHRpbWVyLiAgQWxsIG90aGVyIHdha2UgdXBzIGlzIGNv
bnNpZGVyZWQgdG8gYmUgc3B1cmlvdXMgYW5kIHdpbGwgYmUgaWdub3JlZC4KKyAKKyAgICAgICAg
ICAgU2VlIFdhdGNoZG9nOjpkaWRGaXJlU2xvdygpLgorIAorICAgICAgICA0LiBNaW5pbWl6aW5n
IFRpbWVyIGNyZWF0aW9uIGNvc3QKKyAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisgICAgICAgICAgIENvbmNlcHR1YWxseSwgd2UgY291bGQgc3RhcnQgYSBuZXcgdGlt
ZXIgZXZlcnkgdGltZSB3ZSBzdGFydCB0aGUgd2F0Y2hkb2cuIEJ1dCB3ZSBjYW4gZG8gYmV0dGVy
CisgICAgICAgICAgIHRoYW4gdGhpcy4KKyAKKyAgICAgICAgICAgSW4gcHJhY3RpY2UsIHRoZSB0
aW1lb3V0IHBlcmlvZCBvZiBhIHdhdGNoZG9nIHRlbmRzIHRvIGJlIGxvbmcsIGFuZCB0aGUgYW1v
dW50IG9mIHRpbWUgYSB3YXRjaGRvZworICAgICAgICAgICBzdGF5cyBhY3RpdmUgdGVuZHMgdG8g
YmUgc2hvcnQgZm9yIHdlbGwtYmVoYXZlZCBKUyBjb2RlLiBUaGUgdXNlciBhbHNvIHRlbmRzIHRv
IHJlLXVzZSB0aGUgc2FtZQorICAgICAgICAgICB0aW1lb3V0IHBlcmlvZC4gQ29uc2lkZXIgdGhl
IGZvbGxvd2luZyBleGFtcGxlOgorIAorICAgICAgICAgICAgICAgfC0tLXwtLS0tLXwtLS18LS0t
LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18CisgICAgICAgICAgICAgICB0MCAgdDEgICAgdDIgIHQz
ICAgICAgICAgICAgdDAgKyBQICAgIHQyICsgUAorCisgICAgICAgICAgICAgICB8PC0tLSBUMSAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0+fAorICAgICAgICAgICAgICAgICAgICAgICAgIHw8LS0tIFQy
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLT58CisgICAgICAgICAgICAgICB8PC0tIFRkIC0+fCAgICAg
ICAgICAgICAgICAgICAgfDwtLSBUZCAtPnwKKworICAgICAgICAgICAxLiBUaGUgdXNlciBpbml0
aWFsaXplcyB0aGUgd2F0Y2hkb2cgd2l0aCB0aW1lb3V0IHBlcmlvZCBQLgorICAgICAgICAgICAy
LiBBdCB0MCwgd2UgZW50ZXIgdGhlIFZNIHRvIGV4ZWN1dGUgSlMgY29kZSwgYW5kIHN0YXJ0cyB0
aGUgd2F0Y2hkb2cgdGltZXIsIFQxLgorICAgICAgICAgICAgICBUaGUgdGltZXIgaXMgc2V0IHRv
IGV4cGlyZSBhdCB0MCArIFAuCisgICAgICAgICAgIDMuIEF0IHQxLCB3ZSBleGl0IHRoZSBWTS4K
KyAgICAgICAgICAgNC4gQXQgdDIsIHdlIGVudGVyIHRoZSBWTSBhZ2FpbiwgYW5kIHdvdWxkIGxp
a2UgdG8gc3RhcnQgYSBuZXcgd2F0Y2hkb2cgdGltZXIsIFQyLgorICAgICAgICAgCisgICAgICAg
ICAgICAgIEhvd2V2ZXIsIHdlIGNhbiBub3RlIHRoYXQgdGhlIGV4cGlyYXRpb24gdGltZSBmb3Ig
VDIgd291bGQgYmUgYWZ0ZXIgdGhlIGV4cGlyYXRpb24gdGltZQorICAgICAgICAgICAgICBvZiBU
MS4gU3BlY2lmaWNhbGx5LCBUMiB3b3VsZCBoYXZlIGV4cGlyZWQgYXQgVGQgYWZ0ZXIgVDEgZXhw
aXJlcy4KKyAgICAgICAgIAorICAgICAgICAgICAgICBIZW5jZSwgd2UgY2FuIGp1c3Qgd2FpdCBm
b3IgVDEgdG8gZXhwaXJlLCBhbmQgdGhlbiBzdGFydCBhIG5ldyB0aW1lciBUMicgYXQgdGltZSB0
MCArIFAKKyAgICAgICAgICAgICAgZm9yIGEgcGVyaW9kIG9yIFRkIGluc3RlYWQuCisKKyAgICAg
ICAgICAgTm90ZSB0aGF0IGRpZEZpcmVTbG93KCkgYWxyZWFkeSBjb21wZW5zYXRlcyBmb3IgdGlt
ZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIG1vbm90b25pYyBhbmQgQ1BVIHRpbWUsCisgICAgICAgICAg
IGFzIHdlbGwgYXMgaGFuZGxlIHNwdXJpb3VzIHdha2UgdXBzIChzZWUgbm90ZSAyIGFuZCAzIGFi
b3ZlKS4gIEFzIGEgcmVzdWx0LCBkaWRGaXJlU2xvdygpIHdpbGwKKyAgICAgICAgICAgYXV0b21h
dGljYWxseSB0YWtlIGNhcmUgb2Ygc3RhcnRpbmcgYSBuZXcgdGltZXIgZm9yIHRoZSBkaWZmZXJl
bmNlIFRkIGluIHRoZSBleGFtcGxlIGFib3ZlLgorICAgICAgICAgICBJbnN0ZWFkIG9mIHN0YXJ0
aW5nIHRoZSBuZXcgdGltZXIgVDIgYW5kIHRpbWUgdDIsIHdlIGp1c3QgdmVyaWZ5IHRoYXQgaWYg
dGhlIGFjdGl2ZSB0aW1lciwgVDEncworICAgICAgICAgICBleHBpcmF0aW9uIGlzIGxlc3MgdGhh
biBUMnMsIHRoZW4gd2UgYXJlIGFscmVhZHkgY292ZXJlZCBieSBUMSBhbmQgdGhlcmUncyBubyBu
ZWVkIHRvIHN0YXJ0IFQyLgorCisgICAgICAgICAgIFRoZSBiZW5lZml0OgorCisgICAgICAgICAg
IDEuIHdlIG1pbmltaXplIHRoZSBudW1iZXIgb2YgdGltZXIgaW5zdGFuY2VzIHdlIGhhdmUgcXVl
dWVkIGluIHRoZSB3b3JrcXVldWUgYXQgdGhlIHNhbWUgdGltZQorICAgICAgICAgICAgICAoaWRl
YWxseSBvbmx5IDEgb3IgMCksIGFuZCB1c2UgbGVzcyBwZWFrIG1lbW9yeSB1c2FnZS4KKworICAg
ICAgICAgICAyLiB3ZSBtaW5pbWl6ZSB0aGUgZnJlcXVlbmN5IG9mIGluc3RhbnRpYXRpbmcgdGlt
ZXIgaW5zdGFuY2VzLiBCeSB3YWl0aW5nIGZvciB0aGUgY3VycmVudAorICAgICAgICAgICAgICBh
Y3RpdmUgdGltZXIgdG8gZXhwaXJlIGZpcnN0LCBvbiBhdmVyYWdlLCB3ZSBnZXQgdG8gc3RhcnQg
b25lIHRpbWVyIHBlciB0aW1lb3V0IHBlcmlvZAorICAgICAgICAgICAgICAod2hpY2ggaXMgaW5m
cmVxdWVudCBiZWNhdXNlIHRpbWVvdXQgcGVyaW9kcyB0ZW5kIHRvIGJlIGxvbmcpIGluc3RlYWQg
b2Ygb25lIHRpbWVyIHBlcgorICAgICAgICAgICAgICBWTSBlbnRyeSAod2hpY2ggdGVuZHMgdG8g
YmUgZnJlcXVlbnQpLgorCisgICAgICAgICAgIFNlZSBXYXRjaGRvZzo6c3RhcnRUaW1lcigpLgor
CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAgIChjcmVhdGVXYXRjaGRv
Z0lmTmVlZGVkKToKKyAgICAgICAgKEpTQ29udGV4dEdyb3VwQ2xlYXJFeGVjdXRpb25UaW1lTGlt
aXQpOgorICAgICAgICAtIE5vIG5lZWQgdG8gY3JlYXRlIHRoZSB3YXRjaGRvZyAoaWYgbm90IGFs
cmVhZHkgY3JlYXRlZCkganVzdCB0byBjbGVhciBpdC4KKyAgICAgICAgICBJZiB0aGUgd2F0Y2hk
b2cgaXMgbm90IGNyZWF0ZWQgeWV0LCB0aGVuIGl0IGlzIGVmZmVjdGl2ZWx5IGNsZWFyZWQuCisK
KyAgICAgICAgKiBBUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHA6CisgICAgICAg
IChjdXJyZW50Q1BVVGltZUFzSlNGdW5jdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKHRlc3RFeGVj
dXRpb25UaW1lTGltaXQpOgorICAgICAgICAoY3VycmVudENQVVRpbWUpOiBEZWxldGVkLgorICAg
ICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmM6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL3Rlc3RhcGkvdGVzdGFwaS52Y3hwcm9qOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2ouZmlsdGVyczoK
KyAgICAgICAgLSBFbmFibGUgd2F0Y2hkb2cgdGVzdHMgZm9yIGFsbCBwbGF0Zm9ybXMuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgLSBSZW1vdmUgbm93IHVubmVl
ZGVkIFdhdGNoZG9nTWFjLmNwcCBhbmQgV2F0Y2hkb2dOb25lLmNwcC4KKworICAgICAgICAqIFBs
YXRmb3JtRWZsLmNtYWtlOgorCisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAg
ICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6
CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50
ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1
dGVDb25zdHJ1Y3QpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX2xvb3BfaGludCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3df
b3BfbG9vcF9oaW50KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAg
ICogbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcDoKKyAgICAgICAgKiBsbGludC9MTElu
dFNsb3dQYXRocy5jcHA6CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIC0gI2lu
Y2x1ZGUgV2F0Y2hkb2cuaCBpbiB0aGVzZSBmaWxlcyBkaXJlY3RseSBpbnN0ZWFkIG9mIGRvaW5n
IGl0IHZpYSBWTS5oLgorICAgICAgICAgIFRoZXNlIHNhdmVzIHVzIGZyb20gaGF2aW5nIHRvIHJl
Y29tcGlsZSB0aGUgd29ybGQgd2hlbiB3ZSBjaGFuZ2UgV2F0Y2hkb2cuaC4KKworICAgICAgICAq
IHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgLSBTZWUgY29tbWVudCBpbiBXYXRjaGRvZzo6c3RhcnRU
aW1lcigpIGJlbG93IGZvciB3aHkgdGhlIFdhdGNoZG9nIG5lZWRzIHRvIGJlCisgICAgICAgICAg
dGhyZWFkLXNhZmUgcmVmIGNvdW50ZWQuCisKKyAgICAgICAgKiBydW50aW1lL1ZNRW50cnlTY29w
ZS5jcHA6CisgICAgICAgIChKU0M6OlZNRW50cnlTY29wZTo6Vk1FbnRyeVNjb3BlKToKKyAgICAg
ICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjp+Vk1FbnRyeVNjb3BlKToKKyAgICAgICAgLSBXZSBoYXZl
IGRvbmUgYXdheSB3aXRoIHRoZSBXYXRjaGRvZ1Njb3BlIGFuZCBhcm1pbmcvZGlzYXJtaW5nIG9m
IHRoZSB3YXRjaGRvZy4KKyAgICAgICAgICBJbnN0ZWFkLCB0aGUgVk1FbnRyeVNjb3BlIHdpbGwg
aW5mb3JtIHRoZSB3YXRjaGRvZyBvZiB3aGVuIHdlIGhhdmUgZW50ZXJlZCBhbmQKKyAgICAgICAg
ICBleGl0ZWQgdGhlIFZNLgorCisgICAgICAgICogcnVudGltZS9XYXRjaGRvZy5jcHA6CisgICAg
ICAgIChKU0M6OmN1cnJlbnRNb25vdG9uaWNUaW1lKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6
OldhdGNoZG9nKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6Omhhc1N0YXJ0ZWRUaW1lcik6Cisg
ICAgICAgIChKU0M6OldhdGNoZG9nOjpzZXRUaW1lTGltaXQpOgorICAgICAgICAoSlNDOjpXYXRj
aGRvZzo6ZGlkRmlyZVNsb3cpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6aGFzVGltZUxpbWl0
KToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmZpcmUpOgorICAgICAgICAoSlNDOjpXYXRjaGRv
Zzo6ZW50ZXJlZFZNKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmV4aXRlZFZNKToKKworICAg
ICAgICAoSlNDOjpXYXRjaGRvZzo6c3RhcnRUaW1lcik6CisgICAgICAgIC0gVGhlIFdhdGNoZG9n
IGlzIG5vdyB0aHJlYWQtc2FmZSByZWYgY291bnRlZCBiZWNhdXNlIHRoZSBXb3JrUXVldWUgbWF5
IGFjY2VzcyBpdAorICAgICAgICAgIChmcm9tIGEgZGlmZmVyZW50IHRocmVhZCkgZXZlbiBhZnRl
ciB0aGUgVk0gc2h1dHMgZG93bi4gIFdlIG5lZWQgdG8ga2VlcCBpdAorICAgICAgICAgIGFsaXZl
IHVudGlsIHRoZSBXb3JrUXVldWUgY2FsbGJhY2sgY29tcGxldGVzLgorCisgICAgICAgICAgSW4g
V2F0Y2hkb2c6OnN0YXJ0VGltZXIoKSwgd2UnbGwgcmVmIHRoZSBXYXRjaGRvZyB0byBrZWVwIGl0
IGFsaXZlIGZvciBlYWNoCisgICAgICAgICAgV29ya1F1ZXVlIGNhbGxiYWNrIHdlIGRpc3BhdGNo
LiAgVGhlIGNhbGxiYWNrIHdpbGwgZGVyZWYgdGhlIFdhdGNoZG9nIGFmdGVyIGl0CisgICAgICAg
ICAgaXMgZG9uZSB3aXRoIGl0LiAgVGhpcyBlbnN1cmVzIHRoYXQgdGhlIFdhdGNoZG9nIGlzIGtl
cHQgYWxpdmUgdW50aWwgYWxsCisgICAgICAgICAgV29ya1F1ZXVlIGNhbGxiYWNrcyBhcmUgZG9u
ZS4KKworICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3RvcFRpbWVyKToKKyAgICAgICAgKEpTQzo6
V2F0Y2hkb2c6On5XYXRjaGRvZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldhdGNoZG9nOjpk
aWRGaXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmlzRW5hYmxlZCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OldhdGNoZG9nOjphcm0pOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpXYXRjaGRvZzo6ZGlzYXJtKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6
OnN0YXJ0Q291bnRkb3duSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRv
Zzo6c3RhcnRDb3VudGRvd24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3Rv
cENvdW50ZG93bik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9XYXRjaGRvZy5oOgorICAg
ICAgICAoSlNDOjpXYXRjaGRvZzo6ZGlkRmlyZSk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjp0
aW1lckRpZEZpcmVBZGRyZXNzKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmlzQXJtZWQpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6U2NvcGU6OlNjb3BlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OlNjb3BlOjp+U2NvcGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvV2F0Y2hkb2dNYWMuY3BwOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6aW5p
dFRpbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmRlc3Ryb3lUaW1lcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldhdGNoZG9nOjpzdGFydFRpbWVyKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnN0b3BUaW1lcik6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9XYXRjaGRvZ05vbmUuY3BwOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6aW5pdFRp
bWVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmRlc3Ryb3lUaW1lcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OldhdGNoZG9nOjpzdGFydFRpbWVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6V2F0Y2hkb2c6OnN0b3BUaW1lcik6IERlbGV0ZWQuCisKIDIwMTUtMDgtMDkg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKHIx
ODgxMDUpOiBTZWVtcyB0byBoYXZlIGNhdXNlZCBjcmFzaGVzIGR1cmluZyBQTFQgb24gc29tZSBp
UGFkcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTg4
MjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC02MTUsNyArNjE1LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1JVTlRJTUVfU09VUkNF
UwogICAgIHJ1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAogICAgIHJ1bnRpbWUvVmFyT2Zmc2V0LmNw
cAogICAgIHJ1bnRpbWUvV2F0Y2hkb2cuY3BwCi0gICAgcnVudGltZS9XYXRjaGRvZ05vbmUuY3Bw
CiAgICAgcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCiAgICAgcnVudGltZS9XZWFrTWFw
RGF0YS5jcHAKICAgICBydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCShyZXZpc2lvbiAxODgyMTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIs
NiArMiw3IEBAIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0lOQ0xVREVfRElSRUMKICAgICAk
e0VDT1JFX0lOQ0xVREVfRElSU30KICAgICAke0VJTkFfSU5DTFVERV9ESVJTfQogICAgICR7RU9f
SU5DTFVERV9ESVJTfQorICAgICIke1dURl9ESVJ9L3d0Zi9lZmwiCiApCiBhZGRfZGVmaW5pdGlv
bnMoLURTVEFUSUNBTExZX0xJTktFRF9XSVRIX1dURikKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAkocmV2aXNpb24gMTg4MjE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIlNvdXJjZVBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RhY2tWaXNpdG9yLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCkBAIC05NCw3ICs5NSw3IEBAIHN0YXRpYyBib29sIGludGVybmFs
U2NyaXB0VGltZW91dENhbGxiYWMKIHN0YXRpYyB2b2lkIGNyZWF0ZVdhdGNoZG9nSWZOZWVkZWQo
Vk0mIHZtKQogewogICAgIGlmICghdm0ud2F0Y2hkb2cpIHsKLSAgICAgICAgdm0ud2F0Y2hkb2cg
PSBzdGQ6Om1ha2VfdW5pcXVlPFdhdGNoZG9nPigpOworICAgICAgICB2bS53YXRjaGRvZyA9IGFk
b3B0UmVmKG5ldyBXYXRjaGRvZygpKTsKIAogICAgICAgICAvLyBUaGUgTExJTlQgcGVla3MgaW50
byB0aGUgV2F0Y2hkb2cgb2JqZWN0IGRpcmVjdGx5LiBJbiBvcmRlciB0byBkbyB0aGF0LAogICAg
ICAgICAvLyB0aGUgTExJTlQgYXNzdW1lcyB0aGF0IHRoZSBpbnRlcm5hbCBzaGFwZSBvZiBhIHN0
ZDo6dW5pcXVlX3B0ciBpcyB0aGUKQEAgLTEyMCw5ICsxMjEsOCBAQCB2b2lkIEpTQ29udGV4dEdy
b3VwQ2xlYXJFeGVjdXRpb25UaW1lTGltCiB7CiAgICAgVk0mIHZtID0gKnRvSlMoZ3JvdXApOwog
ICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJnZtKTsKLSAgICBjcmVhdGVXYXRjaGRvZ0lmTmVlZGVk
KHZtKTsKLSAgICBXYXRjaGRvZyYgd2F0Y2hkb2cgPSAqdm0ud2F0Y2hkb2c7Ci0gICAgd2F0Y2hk
b2cuc2V0VGltZUxpbWl0KHZtLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzOjptYXgoKSk7Cisg
ICAgaWYgKHZtLndhdGNoZG9nKQorICAgICAgICB2bS53YXRjaGRvZy0+c2V0VGltZUxpbWl0KHZt
LCBXYXRjaGRvZzo6Tk9fVElNRU9VVCk7CiB9CiAKIC8vIEZyb20gdGhlIEFQSSdzIHBlcnNwZWN0
aXZlLCBhIGdsb2JhbCBjb250ZXh0IHJlbWFpbnMgYWxpdmUgaWZmIGl0IGhhcyBiZWVuIEpTR2xv
YmFsQ29udGV4dFJldGFpbmVkLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCShyZXZpc2lvbiAx
ODgyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVM
aW1pdFRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwzNCArMjYsMTUgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJFeGVjdXRpb25UaW1lTGltaXRUZXN0LmgiCiAKLSNpZiBP
UyhEQVJXSU4pCi0KICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgiCiAjaW5jbHVkZSAi
SmF2YVNjcmlwdENvcmUuaCIKKyNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAKLSNpbmNsdWRlIDxtYWNoL21hY2guaD4KLSNpbmNsdWRlIDxtYWNoL21hY2hf
dGltZS5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KK3VzaW5n
IG5hbWVzcGFjZSBzdGQ6OmNocm9ubzsKIAogc3RhdGljIEpTR2xvYmFsQ29udGV4dFJlZiBjb250
ZXh0ID0gbnVsbHB0cjsKIAotc3RhdGljIGRvdWJsZSBjdXJyZW50Q1BVVGltZSgpCi17Ci0gICAg
bWFjaF9tc2dfdHlwZV9udW1iZXJfdCBpbmZvQ291bnQgPSBUSFJFQURfQkFTSUNfSU5GT19DT1VO
VDsKLSAgICB0aHJlYWRfYmFzaWNfaW5mb19kYXRhX3QgaW5mbzsKLSAgICAKLSAgICAvKiBHZXQg
dGhyZWFkIGluZm9ybWF0aW9uICovCi0gICAgbWFjaF9wb3J0X3QgdGhyZWFkUG9ydCA9IG1hY2hf
dGhyZWFkX3NlbGYoKTsKLSAgICB0aHJlYWRfaW5mbyh0aHJlYWRQb3J0LCBUSFJFQURfQkFTSUNf
SU5GTywgKHRocmVhZF9pbmZvX3QpKCZpbmZvKSwgJmluZm9Db3VudCk7Ci0gICAgbWFjaF9wb3J0
X2RlYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgdGhyZWFkUG9ydCk7Ci0gICAgCi0gICAgZG91
YmxlIHRpbWUgPSBpbmZvLnVzZXJfdGltZS5zZWNvbmRzICsgaW5mby51c2VyX3RpbWUubWljcm9z
ZWNvbmRzIC8gMTAwMDAwMC47Ci0gICAgdGltZSArPSBpbmZvLnN5c3RlbV90aW1lLnNlY29uZHMg
KyBpbmZvLnN5c3RlbV90aW1lLm1pY3Jvc2Vjb25kcyAvIDEwMDAwMDAuOwotICAgIAotICAgIHJl
dHVybiB0aW1lOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBjdXJyZW50Q1BVVGltZUFzSlNGdW5j
dGlvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uT2JqZWN0
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIFVOVVNF
RF9QQVJBTShmdW5jdGlvbk9iamVjdCk7CkBAIC02Myw3ICs0NCw3IEBAIHN0YXRpYyBKU1ZhbHVl
UmVmIGN1cnJlbnRDUFVUaW1lQXNKU0Z1bmMKICAgICBVTlVTRURfUEFSQU0oZXhjZXB0aW9uKTsK
ICAgICAKICAgICBBU1NFUlQoSlNDb250ZXh0R2V0R2xvYmFsQ29udGV4dChjdHgpID09IGNvbnRl
eHQpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjdHgsIGN1cnJlbnRDUFVUaW1lKCkp
OworICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjdHgsIGN1cnJlbnRDUFVUaW1lKCkuY291
bnQoKSAvIDEwMDAwMDAuKTsKIH0KIAogYm9vbCBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0Nh
bGxlZCA9IGZhbHNlOwpAQCAtMTIwLDE4ICsxMDEsMTYgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1l
TGltaXQoKQogICAgIHsKICAgICAgICAgY29uc3QgY2hhciogbG9vcEZvcmV2ZXJTY3JpcHQgPSAi
dmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHdoaWxlICh0cnVlKSB7IGlmIChjdXJy
ZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gLjE1MCkgYnJlYWs7IH0gIjsKICAgICAgICAgSlNT
dHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobG9vcEZvcmV2
ZXJTY3JpcHQpOwotICAgICAgICBkb3VibGUgc3RhcnRUaW1lOwotICAgICAgICBkb3VibGUgZW5k
VGltZTsKICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKICAgICAgICAgc2hvdWxkVGVybWlu
YXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgc3RhcnRUaW1lID0gY3VycmVu
dENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwog
ICAgICAgICB2ID0gSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51
bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICBlbmRUaW1lID0gY3VycmVudENQVVRpbWUo
KTsKKyAgICAgICAgYXV0byBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgCi0g
ICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MGYpICYmIHNob3VsZFRlcm1p
bmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA8IG1pbGxpc2Vjb25kcygxNTApKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxl
ZCkKICAgICAgICAgICAgIHByaW50ZigiUEFTUzogc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3Rl
ZC5cbiIpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3Rh
cnRUaW1lKSA8IC4xNTBmKSkKKyAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA8IG1pbGxpc2Vjb25kcygxNTApKSkKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6IHNj
cmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIik7CiAgICAgICAgICAgICBpZiAo
IXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgIHByaW50
ZigiRkFJTDogc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iKTsKQEAg
LTE0OSwxNiArMTI4LDE0IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICB7CiAg
ICAgICAgIGNvbnN0IGNoYXIqIGxvb3BGb3JldmVyU2NyaXB0ID0gInZhciBzdGFydFRpbWUgPSBj
dXJyZW50Q1BVVGltZSgpOyB0cnkgeyB3aGlsZSAodHJ1ZSkgeyBpZiAoY3VycmVudENQVVRpbWUo
KSAtIHN0YXJ0VGltZSA+IC4xNTApIGJyZWFrOyB9IH0gY2F0Y2goZSkgeyB9IjsKICAgICAgICAg
SlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobG9vcEZv
cmV2ZXJTY3JpcHQpOwotICAgICAgICBkb3VibGUgc3RhcnRUaW1lOwotICAgICAgICBkb3VibGUg
ZW5kVGltZTsKICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKICAgICAgICAgc2hvdWxkVGVy
bWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgc3RhcnRUaW1lID0gY3Vy
cmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgp
OwogICAgICAgICB2ID0gSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIs
IG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICBlbmRUaW1lID0gY3VycmVudENQVVRp
bWUoKTsKKyAgICAgICAgYXV0byBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAg
Ci0gICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IC4xNTBmKSB8fCAhc2hvdWxk
VGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpIHsKLSAgICAgICAgICAgIGlmICghKChlbmRUaW1l
IC0gc3RhcnRUaW1lKSA8IC4xNTBmKSkKKyAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGlt
ZSkgPj0gbWlsbGlzZWNvbmRzKDE1MCkpIHx8ICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0Nh
bGxlZCkgeworICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgbWlsbGlz
ZWNvbmRzKDE1MCkpKQogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IGRpZCBu
b3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgICAgICAgICAgIGlmICghc2hvdWxkVGVy
bWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBz
Y3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIpOwpAQCAtMTc4LDE3ICsx
NTUsMTUgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgIHsKICAgICAgICAgY29u
c3QgY2hhciogbG9vcEZvcmV2ZXJTY3JpcHQgPSAidmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVU
aW1lKCk7IHdoaWxlICh0cnVlKSB7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4g
LjE1MCkgYnJlYWs7IH0gIjsKICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcobG9vcEZvcmV2ZXJTY3JpcHQpOwotICAgICAgICBkb3VibGUg
c3RhcnRUaW1lOwotICAgICAgICBkb3VibGUgZW5kVGltZTsKICAgICAgICAgZXhjZXB0aW9uID0g
bnVsbHB0cjsKLSAgICAgICAgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAg
YXV0byBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICB2ID0gSlNFdmFsdWF0
ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24p
OwotICAgICAgICBlbmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKKyAgICAgICAgYXV0byBlbmRU
aW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgCi0gICAgICAgIGlmICgoKGVuZFRpbWUg
LSBzdGFydFRpbWUpIDwgLjE1MGYpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVk
KQorICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25kcygxNTAp
KSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKICAgICAgICAgICAgIHByaW50
ZigiUEFTUzogc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlz
IHNwZWNpZmllZC5cbiIpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmICghKChlbmRU
aW1lIC0gc3RhcnRUaW1lKSA8IC4xNTBmKSkKKyAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0g
c3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25kcygxNTApKSkKICAgICAgICAgICAgICAgICBwcmludGYo
IkZBSUw6IHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkIHdoZW4gbm8gY2FsbGJh
Y2sgaXMgc3BlY2lmaWVkLlxuIik7CiAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwogICAgICAg
ICB9CkBAIC0yMDQsMTcgKzE3OSwxNSBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAg
ICAgewogICAgICAgICBjb25zdCBjaGFyKiBsb29wRm9yZXZlclNjcmlwdCA9ICJ2YXIgc3RhcnRU
aW1lID0gY3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUpIHsgaWYgKGN1cnJlbnRDUFVUaW1l
KCkgLSBzdGFydFRpbWUgPiAuMTUwKSBicmVhazsgfSAiOwogICAgICAgICBKU1N0cmluZ1JlZiBz
Y3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsb29wRm9yZXZlclNjcmlwdCk7
Ci0gICAgICAgIGRvdWJsZSBzdGFydFRpbWU7Ci0gICAgICAgIGRvdWJsZSBlbmRUaW1lOwogICAg
ICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICBzdGFydFRpbWUgPSBjdXJyZW50Q1BV
VGltZSgpOworICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAgICAg
ICAgIHYgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0
ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwor
ICAgICAgICBhdXRvIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICAKLSAgICAg
ICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gLjE1MGYpICYmIGNhbmNlbFRlcm1pbmF0
ZUNhbGxiYWNrV2FzQ2FsbGVkICYmICFleGNlcHRpb24pCisgICAgICAgIGlmICgoKGVuZFRpbWUg
LSBzdGFydFRpbWUpID49IG1pbGxpc2Vjb25kcygxNTApKSAmJiBjYW5jZWxUZXJtaW5hdGVDYWxs
YmFja1dhc0NhbGxlZCAmJiAhZXhjZXB0aW9uKQogICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiBz
Y3JpcHQgdGltZW91dCB3YXMgY2FuY2VsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCAuMTUwKSB8fCBl
eGNlcHRpb24pCisgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1pbGxp
c2Vjb25kcygxNTApKSB8fCBleGNlcHRpb24pCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlM
OiBzY3JpcHQgdGltZW91dCB3YXMgbm90IGNhbmNlbGxlZC5cbiIpOwogICAgICAgICAgICAgaWYg
KCFjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKICAgICAgICAgICAgICAgICBwcmlu
dGYoIkZBSUw6IHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIik7CkBA
IC0yMzIsMjEgKzIwNSwxOCBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgewog
ICAgICAgICBjb25zdCBjaGFyKiBsb29wRm9yZXZlclNjcmlwdCA9ICJ2YXIgc3RhcnRUaW1lID0g
Y3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUpIHsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBz
dGFydFRpbWUgPiAuNTAwKSBicmVhazsgfSAiOwogICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQg
PSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsb29wRm9yZXZlclNjcmlwdCk7Ci0gICAg
ICAgIGRvdWJsZSBzdGFydFRpbWU7Ci0gICAgICAgIGRvdWJsZSBlbmRUaW1lOwotICAgICAgICBk
b3VibGUgZGVsdGFUaW1lOwogICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICBz
dGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IGN1
cnJlbnRDUFVUaW1lKCk7CiAgICAgICAgIHYgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNj
cmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgIGVuZFRpbWUg
PSBjdXJyZW50Q1BVVGltZSgpOwotICAgICAgICBkZWx0YVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRU
aW1lOworICAgICAgICBhdXRvIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBh
dXRvIGRlbHRhVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7CiAgICAgICAgIAotICAgICAgICBp
ZiAoKGRlbHRhVGltZSA+PSAuMzAwZikgJiYgKGRlbHRhVGltZSA8IC41MDBmKSAmJiAoZXh0ZW5k
VGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPT0gMikgJiYgZXhjZXB0aW9uKQorICAgICAgICBpZiAo
KGRlbHRhVGltZSA+PSBtaWxsaXNlY29uZHMoMzAwKSkgJiYgKGRlbHRhVGltZSA8IG1pbGxpc2Vj
b25kcyg1MDApKSAmJiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPT0gMikgJiYgZXhj
ZXB0aW9uKQogICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiBzY3JpcHQgdGltZW91dCB3YXMgZXh0
ZW5kZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAo
ZGVsdGFUaW1lIDwgLjIwMGYpCisgICAgICAgICAgICBpZiAoZGVsdGFUaW1lIDwgbWlsbGlzZWNv
bmRzKDIwMCkpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgdGltZW91dCB3
YXMgbm90IGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIik7Ci0gICAgICAgICAgICBlbHNlIGlmIChk
ZWx0YVRpbWUgPj0gLjUwMGYpCisgICAgICAgICAgICBlbHNlIGlmIChkZWx0YVRpbWUgPj0gbWls
bGlzZWNvbmRzKDUwMCkpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgZGlk
IG5vdCB0aW1lb3V0LlxuIik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChleHRlbmRU
ZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDEpCkBAIC0yNjQsNSArMjM0LDMgQEAgaW50IHRlc3RF
eGVjdXRpb25UaW1lTGltaXQoKQogICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoY29udGV4dCk7
CiAgICAgcmV0dXJuIGZhaWxlZDsKIH0KLQotI2VuZGlmIC8vIE9TKERBUldJTikKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCShyZXZpc2lvbiAxODgyMTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwkod29ya2luZyBj
b3B5KQpAQCAtNDMsOSArNDMsNyBAQAogI2luY2x1ZGUgIkN1c3RvbUdsb2JhbE9iamVjdENsYXNz
VGVzdC5oIgogI2luY2x1ZGUgIkdsb2JhbENvbnRleHRXaXRoRmluYWxpemVyVGVzdC5oIgogCi0j
aWYgT1MoREFSV0lOKQogI2luY2x1ZGUgIkV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuaCIKLSNlbmRp
ZgogCiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKIHZvaWQgdGVzdE9iamVjdGl2ZUNBUEkodm9p
ZCk7CkBAIC0xODkzLDkgKzE4OTEsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltd
KQogICAgICAgICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKGNvbnRleHQpOwogICAgIH0KIAotI2lm
IE9TKERBUldJTikKICAgICBmYWlsZWQgPSB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkgfHwgZmFp
bGVkOwotI2VuZGlmIC8qIE9TKERBUldJTikgKi8KICAgICBmYWlsZWQgPSB0ZXN0R2xvYmFsQ29u
dGV4dFdpdGhGaW5hbGl6ZXIoKSB8fCBmYWlsZWQ7CiAKICAgICAvLyBDbGVhciBvdXQgbG9jYWwg
dmFyaWFibGVzIHBvaW50aW5nIGF0IEpTT2JqZWN0UmVmcyB0byBhbGxvdyB0aGVpciB2YWx1ZXMg
dG8gYmUgY29sbGVjdGVkCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2oJKHJldmlzaW9uIDE4ODIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg2
Nyw3ICs4NjcsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxWTUVudHJ5
U2NvcGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxWYXJPZmZz
ZXQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxXYXRjaGRvZy5j
cHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nTm9uZS5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtNYXBDb25zdHJ1
Y3Rvci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtNYXBE
YXRhLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2Vha01hcFBy
b3RvdHlwZS5jcHAiIC8+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxODgyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRl
cnMJKHdvcmtpbmcgY29weSkKQEAgLTkzMCw5ICs5MzAsNiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxXYXRjaGRvZy5jcHAiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9G
aWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50
aW1lXFdhdGNoZG9nTm9uZS5jcHAiPgotICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+Ci0g
ICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx0b29sc1xDb2RlUHJv
ZmlsZS5jcHAiPgogICAgICAgPEZpbHRlcj50b29sczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovdGVz
dGFwaS90ZXN0YXBpLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2oJKHJldmlzaW9u
IDE4ODIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L3Rlc3RhcGkvdGVzdGFwaS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yOTYsNiArMjk2LDgg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xDb21wYXJlQW5kU3dh
cFRlc3QuaCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xDdXN0
b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuYyIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XC4uXEFQSVx0ZXN0c1xDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuaCIgLz4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xFeGVjdXRpb25UaW1lTGltaXRUZXN0LmNw
cCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xFeGVjdXRpb25U
aW1lTGltaXRUZXN0LmgiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxBUElcdGVz
dHNcR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3Qu
aCIgLz4KICAgPC9JdGVtR3JvdXA+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmN4cHJvai90ZXN0YXBpL3Rlc3RhcGkudmN4cHJvai5maWx0ZXJzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL3Rlc3Rh
cGkvdGVzdGFwaS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE4ODIxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL3Rlc3RhcGkvdGVzdGFwaS52Y3hw
cm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTEyLDYgKzEyLDggQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xDb21wYXJlQW5kU3dhcFRlc3QuaCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xDdXN0b21HbG9iYWxPYmplY3RD
bGFzc1Rlc3QuYyIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xD
dXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuaCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXC4uXEFQSVx0ZXN0c1xFeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xFeGVjdXRpb25UaW1lTGltaXRUZXN0Lmgi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxBUElcdGVzdHNcR2xvYmFsQ29udGV4
dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4u
XEFQSVx0ZXN0c1xHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuaCIgLz4KICAgPC9JdGVt
R3JvdXA+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTg4MjE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE3MjIsNyArMTcyMiw2IEBACiAJCUZFRDI4
N0IyMTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExM
SW50T3Bjb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRkVEOTRGMkUxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDk0RjJCMTcxRTNFMjMwMEJF
NzdBNCAvKiBXYXRjaGRvZy5jcHAgKi87IH07CiAJCUZFRDk0RjJGMTcxRTNFMjMwMEJFNzdBNCAv
KiBXYXRjaGRvZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkVEOTRGMkMxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRkVEOTRGMzAxNzFFM0UyMzAwQkU3
N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFRDk0RjJEMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZ01hYy5jcHAg
Ki87IH07CiAJCUZFRjA0MDUxMUFBRTY2MkQwMEJEMjhCMCAvKiBDb21wYXJlQW5kU3dhcFRlc3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVGMDQw
NTAxQUFFNjYyRDAwQkQyOEIwIC8qIENvbXBhcmVBbmRTd2FwVGVzdC5jcHAgKi87IH07CiAJCUZF
RjY4MzVFMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVGNjgzNUExNzQzNDNDQzAwQTMyRTI1IC8q
IEpJVFN0dWJzQVJNLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRkVGNjgzNUYxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNdjcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRjY4MzVCMTc0MzQz
Q0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTXY3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM1NzUsNyArMzU3NCw2IEBACiAJCUZFRDI4N0IxMTVF
QzlBNTcwMERBODE2MSAvKiBMTEludE9wY29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBMTEludE9wY29kZS5oOyBwYXRoID0gbGxpbnQvTExJbnRPcGNvZGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNo
ZG9nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhdGNoZG9nLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEOTRGMkMxNzFFM0UyMzAwQkU3N0E0
IC8qIFdhdGNoZG9nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhdGNoZG9n
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUZFRDk0RjJEMTcxRTNFMjMwMEJFNzdB
NCAvKiBXYXRjaGRvZ01hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXYXRjaGRvZ01hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjA0MDUw
MUFBRTY2MkQwMEJEMjhCMCAvKiBDb21wYXJlQW5kU3dhcFRlc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29tcGFyZUFuZFN3YXBUZXN0LmNwcDsgcGF0aCA9IEFQ
SS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGRUYwNDA1MjFBQUVDNEVEMDBCRDI4QjAgLyogQ29tcGFyZUFuZFN3YXBUZXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbXBhcmVBbmRTd2FwVGVzdC5oOyBwYXRo
ID0gQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGRUY2ODM1QTE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNBUk0uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUU3R1YnNBUk0uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTQ5MDUsNyArNDkwMyw2IEBACiAJCQkJRkU1OTMyQTYxODNDNUEyNjAw
QTFFQ0NDIC8qIFZNRW50cnlTY29wZS5oICovLAogCQkJCUZFRDk0RjJCMTcxRTNFMjMwMEJFNzdB
NCAvKiBXYXRjaGRvZy5jcHAgKi8sCiAJCQkJRkVEOTRGMkMxNzFFM0UyMzAwQkU3N0E0IC8qIFdh
dGNoZG9nLmggKi8sCi0JCQkJRkVEOTRGMkQxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFj
LmNwcCAqLywKIAkJCQkxNEJGQ0U2ODEwQ0RCMUZDMDAzNjRDQ0UgLyogV2Vha0dDTWFwLmggKi8s
CiAJCQkJQUQ4NkE5M0QxQUE0RDg3QzAwMkZFNzdGIC8qIFdlYWtHQ01hcElubGluZXMuaCAqLywK
IAkJCQlBN0NBM0FERDE3REE0MUFFMDA2NTM4QUYgLyogV2Vha01hcENvbnN0cnVjdG9yLmNwcCAq
LywKQEAgLTc4MDksNyArNzgwNiw2IEBACiAJCQkJRTE4RTNBNTkwREY5Mjc4QzAwRDkwQjM0IC8q
IFZNLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFNTkzMkE3MTgzQzVBMjYwMEExRUNDQyAvKiBW
TUVudHJ5U2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVEOTRGMkUxNzFFM0UyMzAwQkU3
N0E0IC8qIFdhdGNoZG9nLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZFRDk0RjMwMTcxRTNFMjMw
MEJFNzdBNCAvKiBXYXRjaGRvZ01hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Qjk4RDEzNjFC
NjBDRDVGMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
OTE5RDI1MTU4NTNDRTAwMDRBNEU3RCAvKiBXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBQ0Y3Mzc3MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovLApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAJKHJldmlzaW9uIDE4ODIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVk
ZSAiUHV0QnlJZFN0YXR1cy5oIgogI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVk
ZSAiU3RyaW5nQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogI2luY2x1ZGUg
PHd0Zi9Db21tYVByaW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CkBAIC00MDIwLDcgKzQwMjEsNyBAQCBib29sIEJ5dGVDb2RlUGFy
c2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkCiAKICAgICAgICAgICAgIGFkZFRvR3JhcGgoTG9vcEhp
bnQpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAobV92bS0+d2F0Y2hkb2cgJiYgbV92
bS0+d2F0Y2hkb2ctPmlzRW5hYmxlZCgpKQorICAgICAgICAgICAgaWYgKG1fdm0tPndhdGNoZG9n
ICYmIG1fdm0tPndhdGNoZG9nLT5oYXNUaW1lTGltaXQoKSkKICAgICAgICAgICAgICAgICBhZGRU
b0dyYXBoKENoZWNrV2F0Y2hkb2dUaW1lcik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIE5F
WFRfT1BDT0RFKG9wX2xvb3BfaGludCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDE4ODIxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiU2V0dXBWYXJhcmdzRnJhbWUuaCIKICNpbmNsdWRlICJUeXBlUHJvZmlsZXJM
b2cuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTg4MjE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiAr
NDQsNyBAQAogI2luY2x1ZGUgIlNldHVwVmFyYXJnc0ZyYW1lLmgiCiAjaW5jbHVkZSAiU3BpbGxS
ZWdpc3RlcnNNb2RlLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCisjaW5jbHVkZSAi
V2F0Y2hkb2cuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJ
KHJldmlzaW9uIDE4ODIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9J
bnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDcgQEAKICNpbmNsdWRl
ICJTeW1ib2wuaCIKICNpbmNsdWRlICJWTUVudHJ5U2NvcGUuaCIKICNpbmNsdWRlICJWaXJ0dWFs
UmVnaXN0ZXIuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogCiAjaW5jbHVkZSA8bGltaXRzLmg+
CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTg4MCw4ICs4ODEsNiBAQCBmYWlsZWRKU09OUDoKICAg
ICBKU1ZhbHVlIHJlc3VsdDsKICAgICB7CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29y
ZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7Ci0gICAgICAgIFdhdGNoZG9nOjpTY29wZSB3
YXRjaGRvZ1Njb3BlKHZtLndhdGNoZG9nLmdldCgpKTsKLQogICAgICAgICByZXN1bHQgPSBwcm9n
cmFtLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOwog
ICAgIH0KIApAQCAtOTQyLDcgKzk0MSw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVD
YWxsKENhbGxGcmEKICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICB7CiAgICAgICAgIFNhbXBsaW5n
VG9vbDo6Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSwgIWlzSlNDYWxsKTsK
LSAgICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cuZ2V0KCkp
OwogCiAgICAgICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6CiAgICAgICAgIGlmIChpc0pTQ2FsbCkK
QEAgLTEwMTMsNyArMTAxMSw2IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0
cnVjdCgKICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICB7CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6
Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSwgIWlzSlNDb25zdHJ1Y3QpOwot
ICAgICAgICBXYXRjaGRvZzo6U2NvcGUgd2F0Y2hkb2dTY29wZSh2bS53YXRjaGRvZy5nZXQoKSk7
CiAKICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZS4KICAgICAgICAgaWYgKGlzSlNDb25zdHJ1
Y3QpCkBAIC0xMDgyLDggKzEwNzksNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKENh
bGxGcmFtZUNsCiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgewogICAgICAgICBTYW1wbGluZ1Rv
b2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkpOwotICAgICAgICBXYXRj
aGRvZzo6U2NvcGUgd2F0Y2hkb2dTY29wZSh2bS53YXRjaGRvZy5nZXQoKSk7Ci0KICAgICAgICAg
cmVzdWx0ID0gY2xvc3VyZS5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JD
YWxsKCktPmV4ZWN1dGUoJnZtLCBjbG9zdXJlLnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKQEAg
LTExNzMsOCArMTE2OCw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1
dGEKICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICB7CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2Fs
bFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7Ci0gICAgICAgIFdhdGNoZG9nOjpT
Y29wZSB3YXRjaGRvZ1Njb3BlKHZtLndhdGNoZG9nLmdldCgpKTsKLQogICAgICAgICByZXN1bHQg
PSBldmFsLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUp
OwogICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
CShyZXZpc2lvbiAxODgyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiVHlwZUxv
Y2F0aW9uLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCiAjaW5jbHVkZSAiVmlydHVh
bFJlZ2lzdGVyLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
QEAgLTkwNSw3ICs5MDYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9sb29wX2hpbnQoSW5zdHJ1Y3Rp
b24qCiAgICAgfQogCiAgICAgLy8gRW1pdCB0aGUgd2F0Y2hkb2cgdGltZXIgY2hlY2s6Ci0gICAg
aWYgKG1fdm0tPndhdGNoZG9nICYmIG1fdm0tPndhdGNoZG9nLT5pc0VuYWJsZWQoKSkKKyAgICBp
ZiAobV92bS0+d2F0Y2hkb2cgJiYgbV92bS0+d2F0Y2hkb2ctPmhhc1RpbWVMaW1pdCgpKQogICAg
ICAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0OChOb25aZXJvLCBBYnNvbHV0ZUFkZHJlc3MobV92
bS0+d2F0Y2hkb2ctPnRpbWVyRGlkRmlyZUFkZHJlc3MoKSkpKTsKIH0KIApAQCAtOTMxLDcgKzkz
Miw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9sb29wX2hpbnQoSW5zdHJ1Y3QKICNlbmRpZgog
CiAgICAgLy8gRW1pdCB0aGUgc2xvdyBwYXRoIG9mIHRoZSB3YXRjaGRvZyB0aW1lciBjaGVjazoK
LSAgICBpZiAobV92bS0+d2F0Y2hkb2cgJiYgbV92bS0+d2F0Y2hkb2ctPmlzRW5hYmxlZCgpKSB7
CisgICAgaWYgKG1fdm0tPndhdGNoZG9nICYmIG1fdm0tPndhdGNoZG9nLT5oYXNUaW1lTGltaXQo
KSkgewogICAgICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uSGFuZGxlV2F0Y2hkb2dUaW1lcik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTg4MjE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIlNjb3BlZEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlRl
c3RSdW5uZXJVdGlscy5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUg
IldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL0lubGluZUFTTS5oPgogCiBuYW1lc3BhY2UgSlND
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9m
ZnNldHNFeHRyYWN0b3IuY3BwCShyZXZpc2lvbiAxODgyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgogI2luY2x1ZGUgIlZN
RW50cnlSZWNvcmQuaCIKICNpbmNsdWRlICJWYWx1ZVByb2ZpbGUuaCIKKyNpbmNsdWRlICJXYXRj
aGRvZy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9u
IDE4ODIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJPYmplY3RDb25z
dHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU3RydWN0
dXJlUmFyZURhdGFJbmxpbmVzLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTElu
dCB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lvbiAxODgy
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg1LDYgKzg1LDcgQEAKICNpbmNsdWRlICJUeXBlUHJvZmlsZXIuaCIKICNpbmNsdWRl
ICJUeXBlUHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgorI2lu
Y2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSAiV2Vha0dDTWFwSW5saW5lcy5oIgogI2luY2x1
ZGUgIldlYWtNYXBEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHJldmlzaW9uIDE4ODIxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDYg
QEAKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJUeXBlZEFycmF5Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIlZNRW50cnlSZWNvcmQuaCIKLSNpbmNsdWRlICJXYXRjaGRv
Zy5oIgogI2luY2x1ZGUgIldhdGNocG9pbnQuaCIKICNpbmNsdWRlICJXZWFrUmFuZG9tLmgiCiAj
aW5jbHVkZSA8d3RmL0JhZy5oPgpAQCAtMTA3LDYgKzEwNiw3IEBAIGNsYXNzIFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlOwogY2xhc3MgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrOwogY2xhc3Mg
VmlydHVhbFJlZ2lzdGVyOwogY2xhc3MgVk1FbnRyeVNjb3BlOworY2xhc3MgV2F0Y2hkb2c7CiBj
bGFzcyBXYXRjaHBvaW50OwogY2xhc3MgV2F0Y2hwb2ludFNldDsKIApAQCAtMjU5LDcgKzI1OSw3
IEBAIHB1YmxpYzoKICAgICBDbGllbnREYXRhKiBjbGllbnREYXRhOwogICAgIFZNRW50cnlGcmFt
ZSogdG9wVk1FbnRyeUZyYW1lOwogICAgIEV4ZWNTdGF0ZSogdG9wQ2FsbEZyYW1lOwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxXYXRjaGRvZz4gd2F0Y2hkb2c7CisgICAgUmVmUHRyPFdhdGNoZG9nPiB3
YXRjaGRvZzsKIAogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHN0cnVjdHVyZVN0cnVjdHVyZTsKICAg
ICBTdHJvbmc8U3RydWN0dXJlPiBzdHJ1Y3R1cmVSYXJlRGF0YVN0cnVjdHVyZTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAkocmV2aXNp
b24gMTg4MjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3Bl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRGVidWdn
ZXIuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKKyNpbmNsdWRlICJX
YXRjaGRvZy5oIgogI2luY2x1ZGUgPHd0Zi9TdGFja0JvdW5kcy5oPgogCiBuYW1lc3BhY2UgSlND
IHsKQEAgLTQ4LDYgKzQ5LDkgQEAgVk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUoVk0mIHZtLCBK
U0dsbwogICAgICAgICAvLyBSZXNldCB0aGUgZGF0ZSBjYWNoZSBiZXR3ZWVuIEpTIGludm9jYXRp
b25zIHRvIGZvcmNlIHRoZSBWTSB0bwogICAgICAgICAvLyBvYnNlcnZlIHRpbWUgeG9uZSBjaGFu
Z2VzLgogICAgICAgICB2bS5yZXNldERhdGVDYWNoZSgpOworCisgICAgICAgIGlmICh2bS53YXRj
aGRvZykKKyAgICAgICAgICAgIHZtLndhdGNoZG9nLT5lbnRlcmVkVk0oKTsKICAgICB9CiAKICAg
ICB2bS5jbGVhckxhc3RFeGNlcHRpb24oKTsKQEAgLTYzLDYgKzY3LDkgQEAgVk1FbnRyeVNjb3Bl
Ojp+Vk1FbnRyeVNjb3BlKCkKICAgICBpZiAobV92bS5lbnRyeVNjb3BlICE9IHRoaXMpCiAgICAg
ICAgIHJldHVybjsKIAorICAgIGlmIChtX3ZtLndhdGNoZG9nKQorICAgICAgICBtX3ZtLndhdGNo
ZG9nLT5leGl0ZWRWTSgpOworCiAgICAgbV92bS5lbnRyeVNjb3BlID0gbnVsbHB0cjsKIAogICAg
IGZvciAoYXV0byYgbGlzdGVuZXIgOiBtX2FsbEVudHJ5U2NvcGVEaWRQb3BMaXN0ZW5lcnMudmFs
dWVzKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3Bw
CShyZXZpc2lvbiAxODgyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRj
aGRvZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDM3ICszMiw0MSBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotI2RlZmluZSBOT19MSU1JVCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzOjptYXgoKQor
Y29uc3Qgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBXYXRjaGRvZzo6Tk9fVElNRU9VVCA9IHN0
ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM6Om1heCgpOworCitzdGF0aWMgc3RkOjpjaHJvbm86Om1p
Y3Jvc2Vjb25kcyBjdXJyZW50TW9ub3RvbmljVGltZSgpCit7CisgICAgYXV0byBzdGVhZHlUaW1l
U2luY2VFcG9jaCA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2Vf
ZXBvY2goKTsKKyAgICByZXR1cm4gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJv
bm86Om1pY3Jvc2Vjb25kcz4oc3RlYWR5VGltZVNpbmNlRXBvY2gpOworfQogCiBXYXRjaGRvZzo6
V2F0Y2hkb2coKQogICAgIDogbV90aW1lckRpZEZpcmUoZmFsc2UpCiAgICAgLCBtX2RpZEZpcmUo
ZmFsc2UpCi0gICAgLCBtX3RpbWVvdXRQZXJpb2QoTk9fTElNSVQpCi0gICAgLCBtX3N0YXJ0Q1BV
VGltZSgwKQotICAgICwgbV9lbGFwc2VkQ1BVVGltZSgwKQotICAgICwgbV9yZWVudHJ5Q291bnQo
MCkKLSAgICAsIG1faXNTdG9wcGVkKHRydWUpCisgICAgLCBtX3RpbWVvdXRQZXJpb2QoTk9fVElN
RU9VVCkKKyAgICAsIG1fY3B1VGltZURlYWRsaW5lKE5PX1RJTUVPVVQpCisgICAgLCBtX2N1cnJl
bnRNb25vdG9uaWNUaW1lRGVhZGxpbmUoTk9fVElNRU9VVCkKICAgICAsIG1fY2FsbGJhY2soMCkK
ICAgICAsIG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwgbV9jYWxsYmFja0RhdGEyKDApCisgICAg
LCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImpzYy53YXRjaGRvZy5xdWV1ZSIsIFdv
cmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCiB7Ci0gICAg
aW5pdFRpbWVyKCk7CisgICAgYXV0byB3YXRjaGRvZyA9IHRoaXM7CisgICAgbV90aW1lckhhbmRs
ZXIgPSBbd2F0Y2hkb2ddIHsKKyAgICAgICAgd2F0Y2hkb2ctPm1fdGltZXJEaWRGaXJlID0gdHJ1
ZTsKKyAgICAgICAgd2F0Y2hkb2ctPmRlcmVmKCk7CisgICAgfTsKIH0KIAotV2F0Y2hkb2c6On5X
YXRjaGRvZygpCitpbmxpbmUgYm9vbCBXYXRjaGRvZzo6aGFzU3RhcnRlZFRpbWVyKCkKIHsKLSAg
ICBBU1NFUlQoIWlzQXJtZWQoKSk7Ci0gICAgc3RvcENvdW50ZG93bigpOwotICAgIGRlc3Ryb3lU
aW1lcigpOworICAgIHJldHVybiBtX2NwdVRpbWVEZWFkbGluZSAhPSBOT19USU1FT1VUOwogfQog
CiB2b2lkIFdhdGNoZG9nOjpzZXRUaW1lTGltaXQoVk0mIHZtLCBzdGQ6OmNocm9ubzo6bWljcm9z
ZWNvbmRzIGxpbWl0LAogICAgIFNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrIGNhbGxiYWNrLCB2b2lk
KiBkYXRhMSwgdm9pZCogZGF0YTIpCiB7Ci0gICAgYm9vbCB3YXNFbmFibGVkID0gaXNFbmFibGVk
KCk7Ci0KLSAgICBpZiAoIW1faXNTdG9wcGVkKQotICAgICAgICBzdG9wQ291bnRkb3duKCk7Cisg
ICAgYm9vbCBoYWRUaW1lTGltaXQgPSBoYXNUaW1lTGltaXQoKTsKIAogICAgIG1fZGlkRmlyZSA9
IGZhbHNlOyAvLyBSZXNldCB0aGUgd2F0Y2hkb2cuCiAKQEAgLTc4LDI5ICs4Miw4NyBAQCB2b2lk
IFdhdGNoZG9nOjpzZXRUaW1lTGltaXQoVk0mIHZtLCBzdGQ6CiAgICAgLy8gSG93ZXZlciwgaWYg
dGhlIHRpbWVvdXQgaXMgYWxyZWFkeSBlbmFibGVkLCBhbmQgd2UncmUganVzdCBjaGFuZ2luZyB0
aGUKICAgICAvLyB0aW1lb3V0IHZhbHVlLCB0aGVuIGFueSBleGlzdGluZyBKSVR0ZWQgY29kZSB3
aWxsIGhhdmUgdGhlIGFwcHJvcHJpYXRlCiAgICAgLy8gcG9sbGluZyBjaGVja3MuIEhlbmNlLCB0
aGVyZSBpcyBubyBuZWVkIHRvIHJlLWRvIHRoaXMgZmx1c2hpbmcuCi0gICAgaWYgKCF3YXNFbmFi
bGVkKSB7CisgICAgaWYgKCFoYWRUaW1lTGltaXQpIHsKICAgICAgICAgLy8gQW5kIGlmIHdlJ3Zl
IHByZXZpb3VzbHkgY29tcGlsZWQgYW55IGZ1bmN0aW9ucywgd2UgbmVlZCB0byByZXZlcnQKICAg
ICAgICAgLy8gdGhlbSBiZWNhdXNlIHRoZXkgZG9uJ3QgaGF2ZSB0aGUgbmVlZGVkIHBvbGxpbmcg
Y2hlY2tzIHlldC4KICAgICAgICAgdm0ucmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoKTsKICAgICB9
CiAKLSAgICBzdGFydENvdW50ZG93bklmTmVlZGVkKCk7CisgICAgaWYgKG1faGFzRW50ZXJlZFZN
ICYmIGhhc1RpbWVMaW1pdCgpKQorICAgICAgICBzdGFydFRpbWVyKG1fdGltZW91dFBlcmlvZCk7
CiB9CiAKLWJvb2wgV2F0Y2hkb2c6OmRpZEZpcmUoRXhlY1N0YXRlKiBleGVjKQorYm9vbCBXYXRj
aGRvZzo6ZGlkRmlyZVNsb3coRXhlY1N0YXRlKiBleGVjKQogewotICAgIGlmIChtX2RpZEZpcmUp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKCFtX3RpbWVyRGlkRmlyZSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIEFTU0VSVChtX3RpbWVyRGlkRmlyZSk7CiAgICAgbV90aW1l
ckRpZEZpcmUgPSBmYWxzZTsKLSAgICBzdG9wQ291bnRkb3duKCk7CiAKLSAgICBhdXRvIGN1cnJl
bnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKLSAgICBhdXRvIGRlbHRhQ1BVVGltZSA9IGN1cnJl
bnRUaW1lIC0gbV9zdGFydENQVVRpbWU7Ci0gICAgYXV0byB0b3RhbEVsYXBzZWRDUFVUaW1lID0g
bV9lbGFwc2VkQ1BVVGltZSArIGRlbHRhQ1BVVGltZTsKLSAgICBpZiAodG90YWxFbGFwc2VkQ1BV
VGltZSA+IG1fdGltZW91dFBlcmlvZCkgeworICAgIC8vIEEgbGVnaXRpbWF0ZSB0aW1lciBpcyB0
aGUgdGltZXIgd2hpY2ggd29rZSB1cCB3YXRjaGRvZyBhbmQgY2FuIGNhdXNlZCBkaWRGaXJlU2xv
dygpIHRvIGJlCisgICAgLy8gY2FsbGVkIGFmdGVyIG1fY3VycmVudE1vbm90b25pY1RpbWVEZWFk
bGluZSBoYXMgZXhwaXJlZC4gQWxsIG90aGVyIHRpbWVycyBhcmUgY29uc2lkZXJlZCB0bworICAg
IC8vIGJlIHN0YWxlLCBhbmQgdGhlaXIgd2FrZSB1cHMgYXJlIGNvbnNpZGVyZWQgdG8gYmUgc3B1
cmlvdXMgYW5kIHNob3VsZCBiZSBpZ25vcmVkLgorICAgIC8vCisgICAgLy8gZGlkRmlyZVNsb3co
KSB3aWxsIHJhY2UgYWdhaW5zdCBtX3RpbWVySGFuZGxlciB0byBjbGVhciBhbmQgc2V0IG1fdGlt
ZXJEaWRGaXJlIHJlc3BlY3RpdmVseS4KKyAgICAvLyBXZSBuZWVkIHRvIGRlYWwgd2l0aCBhIHZh
cmlldHkgb2Ygc2NlbmFyaW9zIHdoZXJlIHdlIGNhbiBoYXZlIHN0YWxlIHRpbWVycyBhbmQgbGVn
aXRpbWF0ZQorICAgIC8vIHRpbWVycyBmaXJpbmcgaW4gY2xvc2UgcHJveGltaXR5IHRvIGVhY2gg
b3RoZXIuCisgICAgLy8KKyAgICAvLyBDb25zaWRlciB0aGUgZm9sbG93aW5nIHNjZW5hcmlvczoK
KyAgICAvLworICAgIC8vIDEuIEEgc3RhbGUgdGltZXIgZmlyZXMgbG9uZyBiZWZvcmUgbV9jdXJy
ZW50TW9ub3RvbmljVGltZURlYWRsaW5lIGV4cGlyZXMuCisgICAgLy8KKyAgICAvLyAgICBJbiB0
aGlzIGNhc2UsIHRoZSBtX2N1cnJlbnRNb25vdG9uaWNUaW1lRGVhZGxpbmUgY2hlY2sgYmVsb3cg
d2lsbCBmYWlsIGFuZCB0aGUgc3RhbGUgdGltZXIKKyAgICAvLyAgICB3aWxsIGJlIGlnbm9yZWQg
YXMgc3B1cmlvdXMuIFdlIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3ZSBjbGVhciBtX3Rp
bWVyRGlkRmlyZSBiZWZvcmUKKyAgICAvLyAgICB3ZSBjaGVjayBtX2N1cnJlbnRNb25vdG9uaWNU
aW1lRGVhZGxpbmUgYW5kIHJldHVybiBiZWxvdy4KKyAgICAvLworICAgIC8vIDIuIEEgc3RhbGUg
dGltZXIgZmlyZXMganVzdCBiZWZvcmUgbV9jdXJyZW50TW9ub3RvbmljVGltZURlYWRsaW5lIGV4
cGlyZXMuCisgICAgLy8gICAgQmVmb3JlIHRoZSB3YXRjaGRvZyBjYW4gZ2V0cyB0byB0aGUgY2xl
YXJpbmcgbV90aW1lckRpZEZpcmUgYWJvdmUsIHRoZSBsZWdpdCB0aW1lciBhbHNvIGZpcmVzLgor
ICAgIC8vCisgICAgLy8gICAgSW4gdGhpcyBjYXNlLCBtX3RpbWVyRGlkRmlyZSB3YXMgc2V0IHR3
aWNlIGJ5IHRoZSAyIHRpbWVycywgYnV0IHdlIG9ubHkgY2xlYXIgbmVlZCB0byBjbGVhcgorICAg
IC8vICAgIGl0IG9uY2UuIFRoZSBtX2N1cnJlbnRNb25vdG9uaWNUaW1lRGVhZGxpbmUgYmVsb3cg
d2lsbCBwYXNzIGFuZCB0aGlzIGludm9jYXRpb24gb2YgZGlkRmlyZVNsb3coKQorICAgIC8vICAg
IHdpbGwgYmUgdHJlYXRlZCBhcyB0aGUgcmVzcG9uc2UgdG8gdGhlIGxlZ2l0IHRpbWVyLiBUaGUg
c3B1cmlvdXMgdGltZXIgaXMgZWZmZWN0aXZlbHkgaWdub3JlZC4KKyAgICAvLworICAgIC8vIDMu
IEEgc3RhdGUgdGltZXIgZmlyZXMganVzdCBiZWZvcmUgbV9jdXJyZW50TW9ub3RvbmljVGltZURl
YWRsaW5lIGV4cGlyZXMuCisgICAgLy8gICAgUmlnaHQgYWZ0ZXIgdGhlIHdhdGNoZG9nIGNsZWFy
cyBtX3RpbWVyRGlkRmlyZSBhYm92ZSwgdGhlIGxlZ2l0IHRpbWVyIGFsc28gZmlyZXMuCisgICAg
Ly8KKyAgICAvLyAgICBUaGUgZmFjdCB0aGF0IHRoZSBsZWdpdCB0aW1lciBmYWlscyBtZWFucyB0
aGF0IHRoZSBtX2N1cnJlbnRNb25vdG9uaWNUaW1lRGVhZGxpbmUgY2hlY2sgd2lsbAorICAgIC8v
ICAgIHBhc3MuIEFzIGxvbmcgYXMgd2UgY2xlYXIgbV90aW1lckRpZEZpcmUgYmVmb3JlIHdlIGRv
IHRoZSBjaGVjaywgd2UgYXJlIHNhZmUuIFRoaXMgaXMgdGhlIHNhbWUKKyAgICAvLyAgICBzY2Vu
YXJpbyBhcyAyIGFib3ZlLgorICAgIC8vCisgICAgLy8gNC4gQSBzdGFsZSB0aW1lciBmaXJlcyBq
dXN0IGJlZm9yZSBtX2N1cnJlbnRNb25vdG9uaWNUaW1lRGVhZGxpbmUgZXhwaXJlcy4KKyAgICAv
LyAgICBSaWdodCBhZnRlciB3ZSBkbyB0aGUgbV9jdXJyZW50TW9ub3RvbmljVGltZURlYWRsaW5l
IGJlbG93LCB0aGUgbGVnaXQgdGltZXIgZmlyZXMuCisgICAgLy8KKyAgICAvLyAgICBUaGUgZmFj
dCB0aGF0IHRoZSBsZWdpdCB0aW1lciBmaXJlcyBhZnRlciB0aGUgbV9jdXJyZW50TW9ub3Rvbmlj
VGltZURlYWRsaW5lIGNoZWNrIG1lYW5zIHRoYXQKKyAgICAvLyAgICB0aGUgbV9jdXJyZW50TW9u
b3RvbmljVGltZURlYWRsaW5lIGNoZWNrIHdpbGwgaGF2ZSBmYWlsZWQuIFRoaXMgaXMgdGhlIHNh
bWUgc2NlbmFyaW8gYXMgMSBhYm92ZS4KKyAgICAvLworICAgIC8vIDUuIEEgbGVnaXQgdGltZXIg
ZmlyZXMuCisgICAgLy8gICAgQSBzdGFsZSB0aW1lciBhbHNvIGZpcmVzIGJlZm9yZSB3ZSBjbGVh
ciBtX3RpbWVyRGlkRmlyZSBhYm92ZS4KKyAgICAvLworICAgIC8vICAgIFRoaXMgaXMgdGhlIHNh
bWUgc2NlbmFyaW8gYXMgMiBhYm92ZS4KKyAgICAvLworICAgIC8vIDYuIEEgbGVnaXQgdGltZXIg
ZmlyZXMuCisgICAgLy8gICAgQSBzdGFsZSB0aW1lciBmaXJlcyByaWdodCBhZnRlciB3ZSBjbGVh
ciBtX3RpbWVyRGlkRmlyZSBhYm92ZS4KKyAgICAvLworICAgIC8vICAgIEluIHRoaXMgY2FzZSwg
dGhlIG1fY3VycmVudE1vbm90b25pY1RpbWVEZWFkbGluZSBjaGVjayB3aWxsIHBhc3MsIGFuZCB3
ZSBmaXJlIHRoZSB3YXRjaGRvZworICAgIC8vICAgIHRob3VnaCBtX3RpbWVyRGlkRmlyZSByZW1h
aW5zIHNldC4gVGhpcyBqdXN0IG1lYW5zIHRoYXQgZGlkRmlyZVNsb3coKSB3aWxsIGJlIGNhbGxl
ZCBhZ2FpbiBkdWUKKyAgICAvLyAgICB0byBtX3RpbWVyRGlkRmlyZSBiZWluZyBzZXQuIFRoZSBz
dWJzZXF1ZW50IGludm9jYXRpb24gb2YgZGlkRmlyZVNsb3coKSB3aWxsIGVuZCB1cCBoYW5kbGlu
ZworICAgIC8vICAgIHRoZSBzdGFsZSB0aW1lciBhbmQgaWdub3JpbmcgaXQuIFRoaXMgaXMgdGhl
IHNhbWUgc2NlbmFyaW8gYXMgMSBhYm92ZS4KKyAgICAvLworICAgIC8vIDcuIEEgbGVnaXQgdGlt
ZXIgZmlyZXMuCisgICAgLy8gICAgQSBzdGFsZSB0aW1lciBmaXJlcyByaWdodCBhZnRlciB3ZSBk
byB0aGUgbV9jdXJyZW50TW9ub3RvbmljVGltZURlYWRsaW5lIGNoZWNrLgorICAgIC8vCisgICAg
Ly8gICAgVGhpcyBpcyB0aGUgc2FtZSBhcyA2LCB3aGljaCBtZWFucyBpdCdzIHRoZSBzYW1lIGFz
IDEgYWJvdmUuCisgICAgLy8KKyAgICAvLyBJbiBhbGwgdGhlc2UgY2FzZXMsIHdlIGp1c3QgbmVl
ZCB0byBlbnN1cmUgdGhhdCB3ZSBjbGVhciBtX3RpbWVyRGlkRmlyZSBiZWZvcmUgd2UgZG8gdGhl
CisgICAgLy8gbV9jdXJyZW50TW9ub3RvbmljVGltZURlYWRsaW5lIGNoZWNrIGJlbG93LiBIZW5j
ZSwgYSBzdG9yZUxvYWQgZmVuY2UgaXMgbmVlZGVkIHRvIGVuc3VyZQorICAgIC8vIHRoYXQgdGhl
c2UgMiBvcGVyYXRpb25zIGRvIG5vdCBnZXQgcmUtb3JkZXJlZC4KKworICAgIFdURjo6c3RvcmVM
b2FkRmVuY2UoKTsKKworICAgIGlmIChjdXJyZW50TW9ub3RvbmljVGltZSgpIDwgbV9jdXJyZW50
TW9ub3RvbmljVGltZURlYWRsaW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7IC8vIEp1c3QgYSBz
dGFsZSB0aW1lciBmaXJpbmcuIE5vdGhpbmcgdG8gZG8uCisKKyAgICBtX2N1cnJlbnRNb25vdG9u
aWNUaW1lRGVhZGxpbmUgPSBOT19USU1FT1VUOworCisgICAgaWYgKGN1cnJlbnRDUFVUaW1lKCkg
Pj0gbV9jcHVUaW1lRGVhZGxpbmUpIHsKICAgICAgICAgLy8gQ2FzZSAxOiB0aGUgYWxsb3dlZCBD
UFUgdGltZSBoYXMgZWxhcHNlZC4KIAogICAgICAgICAvLyBJZiBtX2NhbGxiYWNrIGlzIG5vdCBz
ZXQsIHRoZW4gd2UgdGVybWluYXRlIGJ5IGRlZmF1bHQuCkBAIC0xMTIsMjcgKzE3NCwzMiBAQCBi
b29sIFdhdGNoZG9nOjpkaWRGaXJlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gVGhlIG1fY2FsbGJhY2sgbWF5IGhhdmUg
c2V0IGEgbmV3IGxpbWl0LiBTbywgd2UgbWF5IG5lZWQgdG8gcmVzdGFydAotICAgICAgICAvLyB0
aGUgY291bnRkb3duLgotICAgICAgICBzdGFydENvdW50ZG93bklmTmVlZGVkKCk7CisgICAgICAg
IC8vIElmIHdlIGdldCBoZXJlLCB0aGVuIHRoZSBjYWxsYmFjayBhYm92ZSBkaWQgbm90IHdhbnQg
dG8gdGVybWluYXRlIGV4ZWN1dGlvbi4gQXMgYQorICAgICAgICAvLyByZXN1bHQsIHRoZSBjYWxs
YmFjayBtYXkgaGF2ZSBkb25lIG9uZSBvZiB0aGUgZm9sbG93aW5nOgorICAgICAgICAvLyAgIDEu
IGNsZWFyZWQgdGhlIHRpbWVvdXQgcGVyaW9kIChpLmUuIHdhdGNoZG9nIGlzIGRpc2FibGVkKSwK
KyAgICAgICAgLy8gICAyLiBzZXQgYSBuZXcgdGltZW91dCBwZXJpb2QgdmlhIFdhdGNoZG9nOjpz
ZXRUaW1lTGltaXQoKSwgb3IKKyAgICAgICAgLy8gICAzLiBkaWQgbm90aGluZyAoaS5lLiBhbGxv
dyBhbm90aGVyIGN5Y2xlIG9mIHRoZSBjdXJyZW50IHRpbWVvdXQgcGVyaW9kKS4KKyAgICAgICAg
Ly8KKyAgICAgICAgLy8gSW4gdGhlIGNhc2Ugb2YgMSwgd2UgZG9uJ3QgaGF2ZSB0byBkbyBhbnl0
aGluZy4KKyAgICAgICAgLy8gSW4gdGhlIGNhc2Ugb2YgMiwgV2F0Y2hkb2c6OnNldFRpbWVMaW1p
dCgpIHdvdWxkIGFscmVhZHkgaGF2ZSBzdGFydGVkIHRoZSB0aW1lci4KKyAgICAgICAgLy8gSW4g
dGhlIGNhc2Ugb2YgMywgd2UgbmVlZCB0byByZS1zdGFydCB0aGUgdGltZXIgaGVyZS4KKworICAg
ICAgICBBU1NFUlQobV9oYXNFbnRlcmVkVk0pOworICAgICAgICBpZiAoaGFzVGltZUxpbWl0KCkg
JiYgIWhhc1N0YXJ0ZWRUaW1lcigpKQorICAgICAgICAgICAgc3RhcnRUaW1lcihtX3RpbWVvdXRQ
ZXJpb2QpOwogCiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQ2FzZSAyOiB0aGUgYWxsb3dlZCBD
UFUgdGltZSBoYXMgTk9UIGVsYXBzZWQuCi0KLSAgICAgICAgLy8gVGVsbCB0aGUgdGltZXIgdG8g
YWxhcm0gdXMgYWdhaW4gd2hlbiBpdCB0aGlua3Mgd2UndmUgcmVhY2hlZCB0aGUKLSAgICAgICAg
Ly8gZW5kIG9mIHRoZSBhbGxvd2VkIHRpbWUuCi0gICAgICAgIGF1dG8gcmVtYWluaW5nQ1BVVGlt
ZSA9IG1fdGltZW91dFBlcmlvZCAtIHRvdGFsRWxhcHNlZENQVVRpbWU7Ci0gICAgICAgIG1fZWxh
cHNlZENQVVRpbWUgPSB0b3RhbEVsYXBzZWRDUFVUaW1lOwotICAgICAgICBtX3N0YXJ0Q1BVVGlt
ZSA9IGN1cnJlbnRUaW1lOwotICAgICAgICBzdGFydENvdW50ZG93bihyZW1haW5pbmdDUFVUaW1l
KTsKKyAgICAgICAgYXV0byByZW1haW5pbmdDUFVUaW1lID0gbV9jcHVUaW1lRGVhZGxpbmUgLSBj
dXJyZW50Q1BVVGltZSgpOworICAgICAgICBzdGFydFRpbWVyKHJlbWFpbmluZ0NQVVRpbWUpOwog
ICAgIH0KIAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBXYXRjaGRvZzo6aXNFbmFibGVk
KCkKK2Jvb2wgV2F0Y2hkb2c6Omhhc1RpbWVMaW1pdCgpCiB7Ci0gICAgcmV0dXJuIChtX3RpbWVv
dXRQZXJpb2QgIT0gTk9fTElNSVQpOworICAgIHJldHVybiAobV90aW1lb3V0UGVyaW9kICE9IE5P
X1RJTUVPVVQpOwogfQogCiB2b2lkIFdhdGNoZG9nOjpmaXJlKCkKQEAgLTE0MCw0OSArMjA3LDUx
IEBAIHZvaWQgV2F0Y2hkb2c6OmZpcmUoKQogICAgIG1fZGlkRmlyZSA9IHRydWU7CiB9CiAKLXZv
aWQgV2F0Y2hkb2c6OmFybSgpCit2b2lkIFdhdGNoZG9nOjplbnRlcmVkVk0oKQogewotICAgIG1f
cmVlbnRyeUNvdW50Kys7Ci0gICAgaWYgKG1fcmVlbnRyeUNvdW50ID09IDEpCi0gICAgICAgIHN0
YXJ0Q291bnRkb3duSWZOZWVkZWQoKTsKKyAgICBtX2hhc0VudGVyZWRWTSA9IHRydWU7CisgICAg
aWYgKGhhc1RpbWVMaW1pdCgpKQorICAgICAgICBzdGFydFRpbWVyKG1fdGltZW91dFBlcmlvZCk7
CiB9CiAKLXZvaWQgV2F0Y2hkb2c6OmRpc2FybSgpCit2b2lkIFdhdGNoZG9nOjpleGl0ZWRWTSgp
CiB7Ci0gICAgQVNTRVJUKG1fcmVlbnRyeUNvdW50ID4gMCk7Ci0gICAgaWYgKG1fcmVlbnRyeUNv
dW50ID09IDEpCi0gICAgICAgIHN0b3BDb3VudGRvd24oKTsKLSAgICBtX3JlZW50cnlDb3VudC0t
OworICAgIEFTU0VSVChtX2hhc0VudGVyZWRWTSk7CisgICAgc3RvcFRpbWVyKCk7CisgICAgbV9o
YXNFbnRlcmVkVk0gPSBmYWxzZTsKIH0KIAotdm9pZCBXYXRjaGRvZzo6c3RhcnRDb3VudGRvd25J
Zk5lZWRlZCgpCit2b2lkIFdhdGNoZG9nOjpzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNyb3Nl
Y29uZHMgdGltZW91dCkKIHsKLSAgICBpZiAoIW1faXNTdG9wcGVkKQotICAgICAgICByZXR1cm47
IC8vIEFscmVhZHkgc3RhcnRlZC4KKyAgICBBU1NFUlQobV9oYXNFbnRlcmVkVk0pOworICAgIEFT
U0VSVChoYXNUaW1lTGltaXQoKSk7CiAKLSAgICBpZiAoIWlzQXJtZWQoKSkKLSAgICAgICAgcmV0
dXJuOyAvLyBOb3QgZXhlY3V0aW5nIEpTIHNjcmlwdC4gTm8gbmVlZCB0byBzdGFydC4KKyAgICBt
X2NwdVRpbWVEZWFkbGluZSA9IGN1cnJlbnRDUFVUaW1lKCkgKyB0aW1lb3V0OworICAgIGF1dG8g
bW9ub3RvbmljVGltZSA9IGN1cnJlbnRNb25vdG9uaWNUaW1lKCk7CisgICAgYXV0byBtb25vdG9u
aWNUaW1lRGVhZGxpbmUgPSBtb25vdG9uaWNUaW1lICsgdGltZW91dDsKIAotICAgIGlmIChpc0Vu
YWJsZWQoKSkgewotICAgICAgICBtX2VsYXBzZWRDUFVUaW1lID0gc3RkOjpjaHJvbm86Om1pY3Jv
c2Vjb25kczo6emVybygpOwotICAgICAgICBtX3N0YXJ0Q1BVVGltZSA9IGN1cnJlbnRDUFVUaW1l
KCk7Ci0gICAgICAgIHN0YXJ0Q291bnRkb3duKG1fdGltZW91dFBlcmlvZCk7CisgICAgaWYgKCht
b25vdG9uaWNUaW1lIDwgbV9jdXJyZW50TW9ub3RvbmljVGltZURlYWRsaW5lKQorICAgICAgICAm
JiAobV9jdXJyZW50TW9ub3RvbmljVGltZURlYWRsaW5lIDw9IG1vbm90b25pY1RpbWVEZWFkbGlu
ZSkpIHsKKyAgICAgICAgcmV0dXJuOyAvLyBXYWl0IGZvciB0aGUgY3VycmVudCBhY3RpdmUgdGlt
ZXIgdG8gZXhwaXJlIGJlZm9yZSBzdGFydGluZyBhIG5ldyBvbmUuCiAgICAgfQotfQogCi12b2lk
IFdhdGNoZG9nOjpzdGFydENvdW50ZG93bihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0
KQotewotICAgIEFTU0VSVChtX2lzU3RvcHBlZCk7Ci0gICAgbV9pc1N0b3BwZWQgPSBmYWxzZTsK
LSAgICBzdGFydFRpbWVyKGxpbWl0KTsKKyAgICAvLyBFbHNlLCB0aGUgY3VycmVudCBhY3RpdmUg
dGltZXIgd29uJ3QgZmlyZSBzb29uIGVub3VnaC4gU28sIHN0YXJ0IGEgbmV3IHRpbWVyLgorICAg
IHRoaXMtPnJlZigpOyAvLyBtX3RpbWVySGFuZGxlciB3aWxsIGRlcmVmIHRvIG1hdGNoIGxhdGVy
LgorICAgIG1fY3VycmVudE1vbm90b25pY1RpbWVEZWFkbGluZSA9IG1vbm90b25pY1RpbWVEZWFk
bGluZTsKKyAgICBtX3RpbWVyRGlkRmlyZSA9IGZhbHNlOworCisgICAgLy8gV2UgY2xlYXIgbV90
aW1lckRpZEZpcmUgYmVjYXVzZSB3ZSdyZSBzdGFydGluZyBhIG5ldyB0aW1lci4gSG93ZXZlciwg
d2UgbmVlZCB0byBtYWtlIHN1cmUKKyAgICAvLyB0aGF0IHRoZSBjbGVhcmluZyBvY2N1cnMgYmVm
b3JlIHRoZSB0aW1lciB0aHJlYWQgaXMgc3RhcnRlZC4gVGhlcmVhZnRlciwgb25seSBkaWRGaXJl
U2xvdygpCisgICAgLy8gc2hvdWxkIGNsZWFyIG1fdGltZXJEaWRGaXJlICh1bmxlc3Mgd2Ugc3Rh
cnQgeWV0IGFub3RoZXIgdGltZXIpLiBIZW5jZSwgd2UgbmVlZCBhIHN0b3JlU3RvcmUKKyAgICAv
LyBmZW5jZSBoZXJlIHRvIGVuc3VyZSB0aGVzZSBvcGVyYXRpb25zIGRvIG5vdCBnZXQgcmUtb3Jk
ZXJlZC4KKyAgICBXVEY6OnN0b3JlU3RvcmVGZW5jZSgpOworCisgICAgbV90aW1lclF1ZXVlLT5k
aXNwYXRjaEFmdGVyKHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyh0aW1lb3V0KSwgbV90aW1lckhh
bmRsZXIpOwogfQogCi12b2lkIFdhdGNoZG9nOjpzdG9wQ291bnRkb3duKCkKK3ZvaWQgV2F0Y2hk
b2c6OnN0b3BUaW1lcigpCiB7Ci0gICAgaWYgKG1faXNTdG9wcGVkKQotICAgICAgICByZXR1cm47
Ci0gICAgc3RvcFRpbWVyKCk7Ci0gICAgbV9pc1N0b3BwZWQgPSB0cnVlOworICAgIG1fY3B1VGlt
ZURlYWRsaW5lID0gTk9fVElNRU9VVDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmgJKHJldmlzaW9uIDE4ODIxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI2LDMxICsyNiw0MCBAQAogI2lmbmRlZiBXYXRjaGRvZ19oCiAjZGVmaW5lIFdhdGNoZG9n
X2gKIAotI2lmIE9TKERBUldJTikKLSNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPiAgICAK
LSNlbmRpZgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+
CiAKIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBWTTsKIAotY2xh
c3MgV2F0Y2hkb2cgeworY2xhc3MgV2F0Y2hkb2cgOiBwdWJsaWMgV1RGOjpUaHJlYWRTYWZlUmVm
Q291bnRlZDxXYXRjaGRvZz4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIGNsYXNzIFNjb3BlOwogCiAgICAgV2F0Y2hkb2coKTsKLSAgICB+V2F0Y2hkb2coKTsK
IAogICAgIHR5cGVkZWYgYm9vbCAoKlNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrKShFeGVjU3RhdGUq
LCB2b2lkKiBkYXRhMSwgdm9pZCogZGF0YTIpOwogICAgIHZvaWQgc2V0VGltZUxpbWl0KFZNJiwg
c3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBsaW1pdCwgU2hvdWxkVGVybWluYXRlQ2FsbGJhY2sg
PSAwLCB2b2lkKiBkYXRhMSA9IDAsIHZvaWQqIGRhdGEyID0gMCk7CiAKICAgICAvLyBUaGlzIHZl
cnNpb24gb2YgZGlkRmlyZSgpIHdpbGwgY2hlY2sgdGhlIGVsYXBzZWQgQ1BVIHRpbWUgYW5kIGNh
bGwgdGhlCiAgICAgLy8gY2FsbGJhY2sgKGlmIG5lZWRlZCkgdG8gZGV0ZXJtaW5lIGlmIHRoZSB3
YXRjaGRvZyBzaG91bGQgZmlyZS4KLSAgICBib29sIGRpZEZpcmUoRXhlY1N0YXRlKik7CisgICAg
Ym9vbCBkaWRGaXJlKEV4ZWNTdGF0ZSogZXhlYykKKyAgICB7CisgICAgICAgIGlmIChtX2RpZEZp
cmUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKCFtX3RpbWVyRGlkRmly
ZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGRpZEZpcmVTbG93
KGV4ZWMpOworICAgIH0KIAotICAgIGJvb2wgaXNFbmFibGVkKCk7CisgICAgYm9vbCBoYXNUaW1l
TGltaXQoKTsKKyAgICB2b2lkIGVudGVyZWRWTSgpOworICAgIHZvaWQgZXhpdGVkVk0oKTsKIAog
ICAgIC8vIFRoaXMgdmVyc2lvbiBvZiBkaWRGaXJlKCkgaXMgYSBtb3JlIGVmZmljaWVudCB2ZXJz
aW9uIGZvciB3aGVuIHdlIHdhbnQKICAgICAvLyB0byBrbm93IGlmIHRoZSB3YXRjaGRvZyBoYXMg
ZmlyZWQgaW4gdGhlIHBhc3QsIGFuZCBub3Qgd2hldGhlciBpdCBzaG91bGQKQEAgLTYwLDIxICs2
OSwxNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkKiB0aW1lckRpZEZpcmVBZGRyZXNzKCkgeyByZXR1
cm4gJm1fdGltZXJEaWRGaXJlOyB9CiAKKyAgICBzdGF0aWMgY29uc3Qgc3RkOjpjaHJvbm86Om1p
Y3Jvc2Vjb25kcyBOT19USU1FT1VUOworCiBwcml2YXRlOgotICAgIHZvaWQgYXJtKCk7Ci0gICAg
dm9pZCBkaXNhcm0oKTsKLSAgICB2b2lkIHN0YXJ0Q291bnRkb3duSWZOZWVkZWQoKTsKLSAgICB2
b2lkIHN0YXJ0Q291bnRkb3duKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbGltaXQpOwotICAg
IHZvaWQgc3RvcENvdW50ZG93bigpOwotICAgIGJvb2wgaXNBcm1lZCgpIHsgcmV0dXJuICEhbV9y
ZWVudHJ5Q291bnQ7IH0KLQotICAgIC8vIFBsYXRmb3JtIHNwZWNpZmljIHRpbWVyIGltcGxlbWVu
dGF0aW9uOgotICAgIHZvaWQgaW5pdFRpbWVyKCk7Ci0gICAgdm9pZCBkZXN0cm95VGltZXIoKTsK
LSAgICB2b2lkIHN0YXJ0VGltZXIoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBsaW1pdCk7Cisg
ICAgdm9pZCBzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgdGltZW91dCk7CiAg
ICAgdm9pZCBzdG9wVGltZXIoKTsKIAotICAgIC8vIG1fdGltZXJEaWRGaXJlIChhYm92ZSkgaW5k
aWNhdGVzIHdoZXRoZXIgdGhlIHRpbWVyIGZpcmVkLiBUaGUgV2F0Y2hkb2cKKyAgICBpbmxpbmUg
Ym9vbCBoYXNTdGFydGVkVGltZXIoKTsKKworICAgIGJvb2wgZGlkRmlyZVNsb3coRXhlY1N0YXRl
Kik7CisKKyAgICAvLyBtX3RpbWVyRGlkRmlyZSBpbmRpY2F0ZXMgd2hldGhlciB0aGUgdGltZXIg
ZmlyZWQuIFRoZSBXYXRjaGRvZwogICAgIC8vIHN0aWxsIG5lZWRzIHRvIGNoZWNrIGlmIHRoZSBh
bGxvd2VkIENQVSB0aW1lIGhhcyBlbGFwc2VkLiBJZiBzbywgdGhlbgogICAgIC8vIHRoZSBXYXRj
aGRvZyBmaXJlcyBhbmQgbV9kaWRGaXJlIHdpbGwgYmUgc2V0LgogICAgIC8vIE5PVEU6IG1fdGlt
ZXJEaWRGaXJlIGlzIG9ubHkgc2V0IGJ5IHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyB0aW1lcgpAQCAt
ODMsNDYgKzg4LDIzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RpZEZpcmU7CiAKICAgICBzdGQ6
OmNocm9ubzo6bWljcm9zZWNvbmRzIG1fdGltZW91dFBlcmlvZDsKLSAgICBzdGQ6OmNocm9ubzo6
bWljcm9zZWNvbmRzIG1fc3RhcnRDUFVUaW1lOwotICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29u
ZHMgbV9lbGFwc2VkQ1BVVGltZTsKIAotICAgIGludCBtX3JlZW50cnlDb3VudDsKLSAgICBib29s
IG1faXNTdG9wcGVkOworICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbV9jcHVUaW1lRGVh
ZGxpbmU7CisgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBtX2N1cnJlbnRNb25vdG9uaWNU
aW1lRGVhZGxpbmU7CisKKyAgICBib29sIG1faGFzRW50ZXJlZFZNIHsgZmFsc2UgfTsKIAogICAg
IFNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrIG1fY2FsbGJhY2s7CiAgICAgdm9pZCogbV9jYWxsYmFj
a0RhdGExOwogICAgIHZvaWQqIG1fY2FsbGJhY2tEYXRhMjsKIAotI2lmIE9TKERBUldJTikgJiYg
IVBMQVRGT1JNKEVGTCkgJiYgIVBMQVRGT1JNKEdUSykKLSAgICBkaXNwYXRjaF9xdWV1ZV90IG1f
cXVldWU7Ci0gICAgZGlzcGF0Y2hfc291cmNlX3QgbV90aW1lcjsKLSNlbmRpZgorICAgIFJlZjxX
b3JrUXVldWU+IG1fdGltZXJRdWV1ZTsKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IG1fdGlt
ZXJIYW5kbGVyOwogCiAgICAgZnJpZW5kIGNsYXNzIFdhdGNoZG9nOjpTY29wZTsKICAgICBmcmll
bmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogfTsKIAotY2xhc3MgV2F0Y2hkb2c6OlNj
b3BlIHsKLXB1YmxpYzoKLSAgICBTY29wZShXYXRjaGRvZyogd2F0Y2hkb2cpCi0gICAgICAgIDog
bV93YXRjaGRvZyh3YXRjaGRvZykKLSAgICB7Ci0gICAgICAgIGlmICghd2F0Y2hkb2cpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fd2F0Y2hkb2ctPmFybSgpOwotICAgIH0KLSAgICAK
LSAgICB+U2NvcGUoKQotICAgIHsKLSAgICAgICAgaWYgKCFtX3dhdGNoZG9nKQotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBtX3dhdGNoZG9nLT5kaXNhcm0oKTsKLSAgICB9Ci0KLXByaXZh
dGU6Ci0gICAgV2F0Y2hkb2cqIG1fd2F0Y2hkb2c7Ci19OwotCiB9IC8vIG5hbWVzcGFjZSBKU0MK
IAogI2VuZGlmIC8vIFdhdGNoZG9nX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dhdGNoZG9nTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XYXRjaGRvZ01hYy5jcHAJKHJldmlzaW9uIDE4ODIxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3
MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXYXRjaGRvZy5oIgotCi1uYW1lc3BhY2Ug
SlNDIHsKLQotdm9pZCBXYXRjaGRvZzo6aW5pdFRpbWVyKCkKLXsKLSAgICBtX3F1ZXVlID0gMDsK
LSAgICBtX3RpbWVyID0gMDsKLX0KLQotdm9pZCBXYXRjaGRvZzo6ZGVzdHJveVRpbWVyKCkKLXsK
LSAgICBBU1NFUlQoIW1fdGltZXIpOwotICAgIGlmIChtX3F1ZXVlKQotICAgICAgICBkaXNwYXRj
aF9yZWxlYXNlKG1fcXVldWUpOwotfQotCi12b2lkIFdhdGNoZG9nOjpzdGFydFRpbWVyKHN0ZDo6
Y2hyb25vOjptaWNyb3NlY29uZHMgbGltaXQpCi17Ci0gICAgQVNTRVJUKCFtX3RpbWVyKTsKLSAg
ICBpZiAoIW1fcXVldWUpCi0gICAgICAgIG1fcXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUo
ImpzYy53YXRjaGRvZy5xdWV1ZSIsIDApOwotICAgIG1fdGltZXIgPSBkaXNwYXRjaF9zb3VyY2Vf
Y3JlYXRlKERJU1BBVENIX1NPVVJDRV9UWVBFX1RJTUVSLCAwLCAwLCBtX3F1ZXVlKTsKLQotICAg
IGRpc3BhdGNoX3NvdXJjZV9zZXRfdGltZXIobV90aW1lciwKLSAgICAgICAgZGlzcGF0Y2hfdGlt
ZShESVNQQVRDSF9USU1FX05PVywgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzKGxpbWl0KS5jb3Vu
dCgpKSwKLSAgICAgICAgRElTUEFUQ0hfVElNRV9GT1JFVkVSLCAwKTsKLQotICAgIGRpc3BhdGNo
X3NvdXJjZV9zZXRfZXZlbnRfaGFuZGxlcihtX3RpbWVyLCBeewotICAgICAgICBtX3RpbWVyRGlk
RmlyZSA9IHRydWU7Ci0gICAgfSk7Ci0KLSAgICBkaXNwYXRjaF9yZXN1bWUobV90aW1lcik7Ci19
Ci0KLXZvaWQgV2F0Y2hkb2c6OnN0b3BUaW1lcigpCi17Ci0gICAgQVNTRVJUKG1fcXVldWUpOwot
ICAgIGRpc3BhdGNoX3N5bmMobV9xdWV1ZSwgXnsKLSAgICAgICAgZGlzcGF0Y2hfc291cmNlX2Nh
bmNlbChtX3RpbWVyKTsKLSAgICB9KTsKLSAgICBkaXNwYXRjaF9yZWxlYXNlKG1fdGltZXIpOwot
ICAgIG1fdGltZXIgPSAwOwotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTm9uZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2dOb25lLmNwcAkocmV2aXNpb24gMTg4
MjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2dOb25lLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXYXRj
aGRvZy5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotLy8gVGhpcyBpcyBhIHN0dWIgZm9yIHBsYXRm
b3JtcyB0aGF0IGhhdmUgbm90IGltcGxlbWVudGVkIHRoaXMgZnVuY3Rpb25hbGl0eS4KLS8vIElu
IHRoaXMgY2FzZSwgdGhlIHBsYXRmb3JtIHRpbWVyIGhlcmUgbmV2ZXIgZmlyZXMuCi0KLXZvaWQg
V2F0Y2hkb2c6OmluaXRUaW1lcigpCi17Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OmRlc3Ryb3lUaW1l
cigpCi17Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OnN0YXJ0VGltZXIoc3RkOjpjaHJvbm86Om1pY3Jv
c2Vjb25kcykKLXsKLX0KLQotdm9pZCBXYXRjaGRvZzo6c3RvcFRpbWVyKCkKLXsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODgyMTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAx
NS0wOC0xMCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50YXRpb24gSmF2YVNjcmlwdCB3YXRjaGRvZyB1c2luZyBXVEY6OldvcmtRdWV1ZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzEwNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB3
ZSdyZSBub3QgaW50cm9kdWNpbmcgYW55IGJlaGF2aW9yIGNoYW5nZSB0byBXZWJDb3JlIGhlcmUu
CisgICAgICAgIFdlJ3JlIG9ubHkgI2luY2x1ZGUnaW5nIFdhdGNoZG9nLmggZGlyZWN0bHkgaW5z
dGVhZCBvZiBnb2luZyB0aHJvdWdoIFZNLmguCisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVy
cy9ydW50aW1lL1dhdGNoZG9nLmg6IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtl
OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICog
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0Q29udHJvbGxlci5jcHA6CisKIDIwMTUtMDgtMTAgIEphbWVzIENyYWlnICA8amNyYWln
QGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogQWRkcmVzcyBmb2xsb3ctdXAgY29tbWVudHMgaW4g
YnVnIDE0NTY4NApJbmRleDogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UJKHJldmlzaW9uIDE4ODIx
NCkKKysrIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBA
IC0yNCw2ICsyNCw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL3RleHQvZWZsIgogICAgICIke1dFQkNPUkVfRElSfS9wbHVnaW5zL2Vm
bCIKKyAgICAiJHtXVEZfRElSfS93dGYvZWZsIgogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NP
VVJDRVMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvV2F0
Y2hkb2cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9y
dW50aW1lL1dhdGNoZG9nLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJk
aW5nSGVhZGVycy9ydW50aW1lL1dhdGNoZG9nLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1dhdGNoZG9nX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0Rf
V2F0Y2hkb2dfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1dhdGNoZG9nLmg+CisjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
agkocmV2aXNpb24gMTg4MjE0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjA0MzYsNiArMjA0MzYsNyBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxTdHJ1Y3R1
cmUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1
bnRpbWVcU3RydWN0dXJlQ2hhaW4uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZv
cndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3ltYm9sVGFibGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV2F0Y2hkb2cuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV2Vha0dD
TWFwLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xy
dW50aW1lXFdyaXRlQmFycmllci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNceWFyclxZYXJySklULmgiIC8+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCShyZXZp
c2lvbiAxODgyMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTEyMTk4LDYgKzEyMTk4LDkgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3ltYm9s
VGFibGUuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcV2F0Y2hkb2cuaCI+CisgICAgICA8RmlsdGVyPkZvcndhcmRpbmdI
ZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV2Vha0dDTWFwLmgiPgogICAg
ICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0
ZW5lci5jcHAJKHJldmlzaW9uIDE4ODIxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlIDxydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
TG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvVk1FbnRyeVNjb3BlLmg+CisjaW5jbHVkZSA8cnVu
dGltZS9XYXRjaGRvZy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZExlYWtDb3VudGVyLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxODgyMTQp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvRXhj
ZXB0aW9uSGVscGVycy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvV2F0Y2hkb2cuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAo=
</data>
<flag name="review"
          id="283808"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258806</attachid>
            <date>2015-08-11 22:49:01 -0700</date>
            <delta_ts>2015-08-11 22:51:42 -0700</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-147107b.patch</filename>
            <type>text/plain</type>
            <size>61016</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5NyBA
QAorMjAxNS0wOC0xMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
SW1wbGVtZW50YXRpb24gSmF2YVNjcmlwdCB3YXRjaGRvZyB1c2luZyBXVEY6OldvcmtRdWV1ZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzEwNwor
CisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIEhvdyB0aGUg
V2F0Y2hkb2cgd29ya3M/CisgICAgICAgID09PT09PT09PT09PT09PT09PT09PT0KKworICAgICAg
ICAxLiBXaGVuIGRvIHdlIHN0YXJ0IHRoZSBXYXRjaGRvZz8KKyAgICAgICAgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKyAgICAgICAgICAgVGhlIHdhdGNoZG9nIHNob3VsZCBvbmx5
IGJlIHN0YXJ0ZWQgaWYgYm90aCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHRydWU6Cisg
ICAgICAgICAgIDEuIEEgdGltZW91dCBsaW1pdCBoYXMgYmVlbiBzZXQuCisgICAgICAgICAgIDIu
IFdlIGhhdmUgZW50ZXJlZCB0aGUgVk0uCisgCisgICAgICAgIDIuIENQVSB0aW1lIHZzIFdhbGwg
Q2xvY2sgdGltZQorICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAg
ICAgICAgV2h5IGRvIHdlIG5lZWQgMiB0aW1lIGRlYWRsaW5lczogbV9jcHVEZWFkbGluZSBhbmQg
bV93YWxsQ2xvY2tEZWFkbGluZT8KKworICAgICAgICAgICBUaGUgd2F0Y2hkb2cgdXNlcyBXb3Jr
UXVldWUgZGlzcGF0Y2hBZnRlcigpIHRvIHF1ZXVlIGEgdGltZXIgdG8gbWVhc3VyZSB0aGUgd2F0
Y2hkb2cgdGltZW91dAorICAgICAgICAgICBwZXJpb2QuIFdvcmtRdWV1ZSB0aW1lcnMgbWVhc3Vy
ZSB0aW1lIGluIG1vbm90b25pYyB3YWxsIGNsb2NrIHRpbWUuIG1fd2FsbENsb2NrRGVhZGxpbmUK
KyAgICAgICAgICAgaW5kaWNhdGVzIHRoZSB3YWxsIGNsb2NrIHRpbWUgcG9pbnQgd2hlbiB0aGUg
V29ya1F1ZXVlIHRpbWVyIGlzIGV4cGVjdGVkIHRvIGZpcmUuCisKKyAgICAgICAgICAgVGhlIHRp
bWUgbGltaXQgZm9yIHdoaWNoIHdlIGFsbG93IEpTIGNvZGUgdG8gcnVuIHNob3VsZCBiZSBtZWFz
dXJlZCBpbiBDUFUgdGltZSwgd2hpY2ggY2FuCisgICAgICAgICAgIGRpZmZlciBmcm9tIHdhbGwg
Y2xvY2sgdGltZS4gIG1fY3B1RGVhZGxpbmUgaW5kaWNhdGVzIHRoZSBDUFUgdGltZSBwb2ludCB3
aGVuIHRoZSB3YXRjaGRvZworICAgICAgICAgICBzaG91bGQgZmlyZS4KKworICAgICAgICAgICBO
b3RlOiB0aGUgdGltZXIgZmlyaW5nIGlzIG5vdCB0aGUgc2FtZSB0aGluZyBhcyB0aGUgd2F0Y2hk
b2cgZmlyaW5nLiAgV2hlbiB0aGUgdGltZXIgZmlyZXMsCisgICAgICAgICAgIHdlIG5lZWQgdG8g
Y2hlY2sgaWYgbV9jcHVEZWFkbGluZSBoYXMgYmVlbiByZWFjaGVkLgorCisgICAgICAgICAgIElm
IG1fY3B1RGVhZGxpbmUgaGFzIGJlZW4gcmVhY2hlZCwgdGhlIHdhdGNoZG9nIGlzIGNvbnNpZGVy
ZWQgdG8gaGF2ZSBmaXJlZC4KKworICAgICAgICAgICBJZiBub3QsIHRoZW4gd2UgaGF2ZSBhIHJl
bWFpbmluZyBhbW91bnQgb2YgQ1BVIHRpbWUsIFRyZW1haW5kZXIsIHRoYXQgd2Ugc2hvdWxkIGFs
bG93IEpTCisgICAgICAgICAgIGNvZGUgdG8gY29udGludWUgdG8gcnVuIGZvci4gIEhlbmNlLCB3
ZSBuZWVkIHRvIHN0YXJ0IGEgbmV3IHRpbWVyIHRvIGZpcmUgYWdhaW4gYWZ0ZXIKKyAgICAgICAg
ICAgVHJlbWFpbmRlciBtaWNyb3NlY29uZHMuCisgICAgCisgICAgICAgICAgIFNlZSBXYXRjaGRv
Zzo6ZGlkRmlyZVNsb3coKS4KKworICAgICAgICAzLiBTcHVyaW91cyB3YWtlIHVwcworICAgICAg
ICAgICA9PT09PT09PT09PT09PT09PQorICAgICAgICAgICBCZWNhdXNlIHRoZSBXb3JrUXVldWUg
dGltZXIgY2Fubm90IGJlIGNhbmNlbGxlZCwgdGhlIHdhdGNoZG9nIG5lZWRzIHRvIGlnbm9yZSBz
dGFsZSB0aW1lcnMuCisgICAgICAgICAgIEl0IGRvZXMgdGhpcyBieSBjaGVja2luZyB0aGUgbV93
YWxsQ2xvY2tEZWFkbGluZS4gIEEgd2FrZXVwIHRoYXQgb2NjdXJzIHJpZ2h0IGFmdGVyCisgICAg
ICAgICAgIG1fd2FsbENsb2NrRGVhZGxpbmUgZXhwaXJlcyBpcyBjb25zaWRlcmVkIHRvIGJlIHRo
ZSB3YWtldXAgZm9yIHRoZSBhY3RpdmUgdGltZXIuICBBbGwgb3RoZXIKKyAgICAgICAgICAgd2Fr
ZSB1cHMgYXJlIGNvbnNpZGVyZWQgdG8gYmUgc3B1cmlvdXMgYW5kIHdpbGwgYmUgaWdub3JlZC4K
KyAKKyAgICAgICAgICAgU2VlIFdhdGNoZG9nOjpkaWRGaXJlU2xvdygpLgorIAorICAgICAgICA0
LiBNaW5pbWl6aW5nIFRpbWVyIGNyZWF0aW9uIGNvc3QKKyAgICAgICAgICAgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisgICAgICAgICAgIENvbmNlcHR1YWxseSwgd2UgY291bGQgc3Rh
cnQgYSBuZXcgdGltZXIgZXZlcnkgdGltZSB3ZSBzdGFydCB0aGUgd2F0Y2hkb2cuIEJ1dCB3ZSBj
YW4gZG8gYmV0dGVyCisgICAgICAgICAgIHRoYW4gdGhpcy4KKyAKKyAgICAgICAgICAgSW4gcHJh
Y3RpY2UsIHRoZSB0aW1lIGxpbWl0IG9mIGEgd2F0Y2hkb2cgdGVuZHMgdG8gYmUgbG9uZywgYW5k
IHRoZSBhbW91bnQgb2YgdGltZSBhIHdhdGNoZG9nCisgICAgICAgICAgIHN0YXlzIGFjdGl2ZSB0
ZW5kcyB0byBiZSBzaG9ydCBmb3Igd2VsbC1iZWhhdmVkIEpTIGNvZGUuIFRoZSB1c2VyIGFsc28g
dGVuZHMgdG8gcmUtdXNlIHRoZSBzYW1lCisgICAgICAgICAgIHRpbWUgbGltaXQuIENvbnNpZGVy
IHRoZSBmb2xsb3dpbmcgZXhhbXBsZToKKyAKKyAgICAgICAgICAgICAgIHwtLS18LS0tLS18LS0t
fC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfAorICAgICAgICAgICAgICAgdDAgIHQxICAgIHQy
ICB0MyAgICAgICAgICAgIHQwICsgTCAgICB0MiArIEwgCisKKyAgICAgICAgICAgICAgIHw8LS0t
IFQxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLT58CisgICAgICAgICAgICAgICAgICAgICAgICAgfDwt
LS0gVDIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tPnwKKyAgICAgICAgICAgICAgIHw8LS0gVGQgLT58
ICAgICAgICAgICAgICAgICAgICB8PC0tIFRkIC0+fAorCisgICAgICAgICAgIDEuIFRoZSB1c2Vy
IGluaXRpYWxpemVzIHRoZSB3YXRjaGRvZyB3aXRoIHRpbWUgbGltaXQgTC4KKyAgICAgICAgICAg
Mi4gQXQgdDAsIHdlIGVudGVyIHRoZSBWTSB0byBleGVjdXRlIEpTIGNvZGUsIGFuZCBzdGFydHMg
dGhlIHdhdGNoZG9nIHRpbWVyLCBUMS4KKyAgICAgICAgICAgICAgVGhlIHRpbWVyIGlzIHNldCB0
byBleHBpcmUgYXQgdDAgKyBMLgorICAgICAgICAgICAzLiBBdCB0MSwgd2UgZXhpdCB0aGUgVk0u
CisgICAgICAgICAgIDQuIEF0IHQyLCB3ZSBlbnRlciB0aGUgVk0gYWdhaW4sIGFuZCB3b3VsZCBs
aWtlIHRvIHN0YXJ0IGEgbmV3IHdhdGNoZG9nIHRpbWVyLCBUMi4KKyAgICAgICAgIAorICAgICAg
ICAgICAgICBIb3dldmVyLCB3ZSBjYW4gbm90ZSB0aGF0IHRoZSBleHBpcmF0aW9uIHRpbWUgZm9y
IFQyIHdvdWxkIGJlIGFmdGVyIHRoZSBleHBpcmF0aW9uIHRpbWUKKyAgICAgICAgICAgICAgb2Yg
VDEuIFNwZWNpZmljYWxseSwgVDIgd291bGQgaGF2ZSBleHBpcmVkIGF0IFRkIGFmdGVyIFQxIGV4
cGlyZXMuCisgICAgICAgICAKKyAgICAgICAgICAgICAgSGVuY2UsIHdlIGNhbiBqdXN0IHdhaXQg
Zm9yIFQxIHRvIGV4cGlyZSwgYW5kIHRoZW4gc3RhcnQgYSBuZXcgdGltZXIgVDInIGF0IHRpbWUg
dDAgKyBMCisgICAgICAgICAgICAgIGZvciBhIHBlcmlvZCBvciBUZCBpbnN0ZWFkLgorCisgICAg
ICAgICAgIE5vdGUgdGhhdCBkaWRGaXJlU2xvdygpIGFscmVhZHkgY29tcGVuc2F0ZXMgZm9yIHRp
bWUgZGlmZmVyZW5jZXMgYmV0d2VlbiB3YWxsIGNsb2NrIGFuZCBDUFUgdGltZSwKKyAgICAgICAg
ICAgYXMgd2VsbCBhcyBoYW5kbGUgc3B1cmlvdXMgd2FrZSB1cHMgKHNlZSBub3RlIDIgYW5kIDMg
YWJvdmUpLiAgQXMgYSByZXN1bHQsIGRpZEZpcmVTbG93KCkgd2lsbAorICAgICAgICAgICBhdXRv
bWF0aWNhbGx5IHRha2UgY2FyZSBvZiBzdGFydGluZyBhIG5ldyB0aW1lciBmb3IgdGhlIGRpZmZl
cmVuY2UgVGQgaW4gdGhlIGV4YW1wbGUgYWJvdmUuCisgICAgICAgICAgIEluc3RlYWQgb2Ygc3Rh
cnRpbmcgdGhlIG5ldyB0aW1lciBUMiBhbmQgdGltZSB0Miwgd2UganVzdCB2ZXJpZnkgdGhhdCBp
ZiB0aGUgYWN0aXZlIHRpbWVyLCBUMSdzCisgICAgICAgICAgIGV4cGlyYXRpb24gaXMgbGVzcyB0
aGFuIFQycywgdGhlbiB3ZSBhcmUgYWxyZWFkeSBjb3ZlcmVkIGJ5IFQxIGFuZCB0aGVyZSdzIG5v
IG5lZWQgdG8gc3RhcnQgVDIuCisKKyAgICAgICAgICAgVGhlIGJlbmVmaXQ6CisKKyAgICAgICAg
ICAgMS4gd2UgbWluaW1pemUgdGhlIG51bWJlciBvZiB0aW1lciBpbnN0YW5jZXMgd2UgaGF2ZSBx
dWV1ZWQgaW4gdGhlIHdvcmtxdWV1ZSBhdCB0aGUgc2FtZSB0aW1lCisgICAgICAgICAgICAgIChp
ZGVhbGx5IG9ubHkgMSBvciAwKSwgYW5kIHVzZSBsZXNzIHBlYWsgbWVtb3J5IHVzYWdlLgorCisg
ICAgICAgICAgIDIuIHdlIG1pbmltaXplIHRoZSBmcmVxdWVuY3kgb2YgaW5zdGFudGlhdGluZyB0
aW1lciBpbnN0YW5jZXMuIEJ5IHdhaXRpbmcgZm9yIHRoZSBjdXJyZW50CisgICAgICAgICAgICAg
IGFjdGl2ZSB0aW1lciB0byBleHBpcmUgZmlyc3QsIG9uIGF2ZXJhZ2UsIHdlIGdldCB0byBzdGFy
dCBvbmUgdGltZXIgcGVyIHRpbWVvdXQgcGVyaW9kCisgICAgICAgICAgICAgICh3aGljaCBpcyBp
bmZyZXF1ZW50IGJlY2F1c2UgdGltZW91dCBwZXJpb2RzIHRlbmQgdG8gYmUgbG9uZykgaW5zdGVh
ZCBvZiBvbmUgdGltZXIgcGVyCisgICAgICAgICAgICAgIFZNIGVudHJ5ICh3aGljaCB0ZW5kcyB0
byBiZSBmcmVxdWVudCkuCisKKyAgICAgICAgICAgU2VlIFdhdGNoZG9nOjpzdGFydFRpbWVyKCku
CisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKGNyZWF0ZVdhdGNo
ZG9nSWZOZWVkZWQpOgorICAgICAgICAoSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRpbWVM
aW1pdCk6CisgICAgICAgIC0gTm8gbmVlZCB0byBjcmVhdGUgdGhlIHdhdGNoZG9nIChpZiBub3Qg
YWxyZWFkeSBjcmVhdGVkKSBqdXN0IHRvIGNsZWFyIGl0LgorICAgICAgICAgIElmIHRoZSB3YXRj
aGRvZyBpcyBub3QgY3JlYXRlZCB5ZXQsIHRoZW4gaXQgaXMgZWZmZWN0aXZlbHkgY2xlYXJlZC4K
KworICAgICAgICAqIEFQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoKKyAgICAg
ICAgKGN1cnJlbnRDUFVUaW1lQXNKU0Z1bmN0aW9uQ2FsbGJhY2spOgorICAgICAgICAodGVzdEV4
ZWN1dGlvblRpbWVMaW1pdCk6CisgICAgICAgIChjdXJyZW50Q1BVVGltZSk6IERlbGV0ZWQuCisg
ICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2o6CisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUudmN4cHJvai90ZXN0YXBpL3Rlc3RhcGkudmN4cHJvai5maWx0ZXJz
OgorICAgICAgICAtIEVuYWJsZSB3YXRjaGRvZyB0ZXN0cyBmb3IgYWxsIHBsYXRmb3Jtcy4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAtIFJlbW92ZSBub3cgdW5u
ZWVkZWQgV2F0Y2hkb2dNYWMuY3BwIGFuZCBXYXRjaGRvZ05vbmUuY3BwLgorCisgICAgICAgICog
UGxhdGZvcm1FZmwuY21ha2U6CisKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNw
cDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAoSlNDOjpJ
bnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhl
Y3V0ZUNvbnN0cnVjdCk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfbG9vcF9oaW50KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xv
d19vcF9sb29wX2hpbnQpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKiBsbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwOgorICAgICAgICAqIGxsaW50L0xM
SW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgLSAj
aW5jbHVkZSBXYXRjaGRvZy5oIGluIHRoZXNlIGZpbGVzIGRpcmVjdGx5IGluc3RlYWQgb2YgZG9p
bmcgaXQgdmlhIFZNLmguCisgICAgICAgICAgVGhlc2Ugc2F2ZXMgdXMgZnJvbSBoYXZpbmcgdG8g
cmVjb21waWxlIHRoZSB3b3JsZCB3aGVuIHdlIGNoYW5nZSBXYXRjaGRvZy5oLgorCisgICAgICAg
ICogcnVudGltZS9WTS5oOgorICAgICAgICAtIFNlZSBjb21tZW50IGluIFdhdGNoZG9nOjpzdGFy
dFRpbWVyKCkgYmVsb3cgZm9yIHdoeSB0aGUgV2F0Y2hkb2cgbmVlZHMgdG8gYmUKKyAgICAgICAg
ICB0aHJlYWQtc2FmZSByZWYgY291bnRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvVk1FbnRyeVNj
b3BlLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUpOgorICAg
ICAgICAoSlNDOjpWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUpOgorICAgICAgICAtIFdlIGhh
dmUgZG9uZSBhd2F5IHdpdGggdGhlIFdhdGNoZG9nU2NvcGUgYW5kIGFybWluZy9kaXNhcm1pbmcg
b2YgdGhlIHdhdGNoZG9nLgorICAgICAgICAgIEluc3RlYWQsIHRoZSBWTUVudHJ5U2NvcGUgd2ls
bCBpbmZvcm0gdGhlIHdhdGNoZG9nIG9mIHdoZW4gd2UgaGF2ZSBlbnRlcmVkIGFuZAorICAgICAg
ICAgIGV4aXRlZCB0aGUgVk0uCisKKyAgICAgICAgKiBydW50aW1lL1dhdGNoZG9nLmNwcDoKKyAg
ICAgICAgKEpTQzo6Y3VycmVudFdhbGxDbG9ja1RpbWUpOgorICAgICAgICAoSlNDOjpXYXRjaGRv
Zzo6V2F0Y2hkb2cpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6aGFzU3RhcnRlZFRpbWVyKToK
KyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnNldFRpbWVMaW1pdCk6CisgICAgICAgIChKU0M6Oldh
dGNoZG9nOjpkaWRGaXJlU2xvdyk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpoYXNUaW1lTGlt
aXQpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6ZmlyZSk6CisgICAgICAgIChKU0M6OldhdGNo
ZG9nOjplbnRlcmVkVk0pOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6ZXhpdGVkVk0pOgorCisg
ICAgICAgIChKU0M6OldhdGNoZG9nOjpzdGFydFRpbWVyKToKKyAgICAgICAgLSBUaGUgV2F0Y2hk
b2cgaXMgbm93IHRocmVhZC1zYWZlIHJlZiBjb3VudGVkIGJlY2F1c2UgdGhlIFdvcmtRdWV1ZSBt
YXkgYWNjZXNzIGl0CisgICAgICAgICAgKGZyb20gYSBkaWZmZXJlbnQgdGhyZWFkKSBldmVuIGFm
dGVyIHRoZSBWTSBzaHV0cyBkb3duLiAgV2UgbmVlZCB0byBrZWVwIGl0CisgICAgICAgICAgYWxp
dmUgdW50aWwgdGhlIFdvcmtRdWV1ZSBjYWxsYmFjayBjb21wbGV0ZXMuCisKKyAgICAgICAgICBJ
biBXYXRjaGRvZzo6c3RhcnRUaW1lcigpLCB3ZSdsbCByZWYgdGhlIFdhdGNoZG9nIHRvIGtlZXAg
aXQgYWxpdmUgZm9yIGVhY2gKKyAgICAgICAgICBXb3JrUXVldWUgY2FsbGJhY2sgd2UgZGlzcGF0
Y2guICBUaGUgY2FsbGJhY2sgd2lsbCBkZXJlZiB0aGUgV2F0Y2hkb2cgYWZ0ZXIgaXQKKyAgICAg
ICAgICBpcyBkb25lIHdpdGggaXQuICBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgV2F0Y2hkb2cgaXMg
a2VwdCBhbGl2ZSB1bnRpbCBhbGwKKyAgICAgICAgICBXb3JrUXVldWUgY2FsbGJhY2tzIGFyZSBk
b25lLgorCisgICAgICAgIChKU0M6OldhdGNoZG9nOjpzdG9wVGltZXIpOgorICAgICAgICAoSlND
OjpXYXRjaGRvZzo6fldhdGNoZG9nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6
OmRpZEZpcmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6aXNFbmFibGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmFybSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OldhdGNoZG9nOjpkaXNhcm0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRv
Zzo6c3RhcnRDb3VudGRvd25JZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldhdGNo
ZG9nOjpzdGFydENvdW50ZG93bik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldhdGNoZG9nOjpz
dG9wQ291bnRkb3duKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dhdGNoZG9nLmg6Cisg
ICAgICAgIChKU0M6OldhdGNoZG9nOjpkaWRGaXJlKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6
OnRpbWVyRGlkRmlyZUFkZHJlc3MpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6aXNBcm1lZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldhdGNoZG9nOjpTY29wZTo6U2NvcGUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6U2NvcGU6On5TY29wZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9XYXRjaGRvZ01hYy5jcHA6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpp
bml0VGltZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6ZGVzdHJveVRpbWVy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnN0YXJ0VGltZXIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3RvcFRpbWVyKTogRGVsZXRlZC4KKyAgICAgICAg
KiBydW50aW1lL1dhdGNoZG9nTm9uZS5jcHA6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjppbml0
VGltZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6ZGVzdHJveVRpbWVyKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnN0YXJ0VGltZXIpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3RvcFRpbWVyKTogRGVsZXRlZC4KKwogMjAxNS0wOC0x
MSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFsd2F5cyB1c2Ug
YSBieXRlLXNpemVkIGxvY2sgaW1wbGVtZW50YXRpb24KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjE3LDcgKzYxNyw2IEBAIHNldChK
YXZhU2NyaXB0Q29yZV9SVU5USU1FX1NPVVJDRVMKICAgICBydW50aW1lL1ZNRW50cnlTY29wZS5j
cHAKICAgICBydW50aW1lL1Zhck9mZnNldC5jcHAKICAgICBydW50aW1lL1dhdGNoZG9nLmNwcAot
ICAgIHJ1bnRpbWUvV2F0Y2hkb2dOb25lLmNwcAogICAgIHJ1bnRpbWUvV2Vha01hcENvbnN0cnVj
dG9yLmNwcAogICAgIHJ1bnRpbWUvV2Vha01hcERhdGEuY3BwCiAgICAgcnVudGltZS9XZWFrTWFw
UHJvdG90eXBlLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtRWZsLmNt
YWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUVmbC5jbWFr
ZQkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtRWZs
LmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQCBsaXN0KEFQUEVORCBKYXZhU2Ny
aXB0Q29yZV9JTkNMVURFX0RJUkVDCiAgICAgJHtFQ09SRV9JTkNMVURFX0RJUlN9CiAgICAgJHtF
SU5BX0lOQ0xVREVfRElSU30KICAgICAke0VPX0lOQ0xVREVfRElSU30KKyAgICAiJHtXVEZfRElS
fS93dGYvZWZsIgogKQogYWRkX2RlZmluaXRpb25zKC1EU1RBVElDQUxMWV9MSU5LRURfV0lUSF9X
VEYpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJ
KHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0
UmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkpTQ0lu
bGluZXMuaCIKICNpbmNsdWRlICJTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIlN0YWNrVmlz
aXRvci5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtOTQsNyAr
OTUsNyBAQCBzdGF0aWMgYm9vbCBpbnRlcm5hbFNjcmlwdFRpbWVvdXRDYWxsYmFjCiBzdGF0aWMg
dm9pZCBjcmVhdGVXYXRjaGRvZ0lmTmVlZGVkKFZNJiB2bSkKIHsKICAgICBpZiAoIXZtLndhdGNo
ZG9nKSB7Ci0gICAgICAgIHZtLndhdGNoZG9nID0gc3RkOjptYWtlX3VuaXF1ZTxXYXRjaGRvZz4o
KTsKKyAgICAgICAgdm0ud2F0Y2hkb2cgPSBhZG9wdFJlZihuZXcgV2F0Y2hkb2coKSk7CiAKICAg
ICAgICAgLy8gVGhlIExMSU5UIHBlZWtzIGludG8gdGhlIFdhdGNoZG9nIG9iamVjdCBkaXJlY3Rs
eS4gSW4gb3JkZXIgdG8gZG8gdGhhdCwKICAgICAgICAgLy8gdGhlIExMSU5UIGFzc3VtZXMgdGhh
dCB0aGUgaW50ZXJuYWwgc2hhcGUgb2YgYSBzdGQ6OnVuaXF1ZV9wdHIgaXMgdGhlCkBAIC0xMjAs
OSArMTIxLDggQEAgdm9pZCBKU0NvbnRleHRHcm91cENsZWFyRXhlY3V0aW9uVGltZUxpbQogewog
ICAgIFZNJiB2bSA9ICp0b0pTKGdyb3VwKTsKICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKCZ2bSk7
Ci0gICAgY3JlYXRlV2F0Y2hkb2dJZk5lZWRlZCh2bSk7Ci0gICAgV2F0Y2hkb2cmIHdhdGNoZG9n
ID0gKnZtLndhdGNoZG9nOwotICAgIHdhdGNoZG9nLnNldFRpbWVMaW1pdCh2bSwgc3RkOjpjaHJv
bm86Om1pY3Jvc2Vjb25kczo6bWF4KCkpOworICAgIGlmICh2bS53YXRjaGRvZykKKyAgICAgICAg
dm0ud2F0Y2hkb2ctPnNldFRpbWVMaW1pdCh2bSwgV2F0Y2hkb2c6Om5vVGltZUxpbWl0KTsKIH0K
IAogLy8gRnJvbSB0aGUgQVBJJ3MgcGVyc3BlY3RpdmUsIGEgZ2xvYmFsIGNvbnRleHQgcmVtYWlu
cyBhbGl2ZSBpZmYgaXQgaGFzIGJlZW4gSlNHbG9iYWxDb250ZXh0UmV0YWluZWQuCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9u
VGltZUxpbWl0VGVzdC5jcHAJKHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDM0ICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV4ZWN1
dGlvblRpbWVMaW1pdFRlc3QuaCIKIAotI2lmIE9TKERBUldJTikKLQogI2luY2x1ZGUgIkpTQ29u
dGV4dFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2luY2x1ZGUg
PGNocm9ubz4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAotI2luY2x1ZGUgPG1hY2gv
bWFjaC5oPgotI2luY2x1ZGUgPG1hY2gvbWFjaF90aW1lLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4K
LSNpbmNsdWRlIDxzeXMvdGltZS5oPgordXNpbmcgbmFtZXNwYWNlIHN0ZDo6Y2hyb25vOwogCiBz
dGF0aWMgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQgPSBudWxscHRyOwogCi1zdGF0aWMgZG91
YmxlIGN1cnJlbnRDUFVUaW1lKCkKLXsKLSAgICBtYWNoX21zZ190eXBlX251bWJlcl90IGluZm9D
b3VudCA9IFRIUkVBRF9CQVNJQ19JTkZPX0NPVU5UOwotICAgIHRocmVhZF9iYXNpY19pbmZvX2Rh
dGFfdCBpbmZvOwotICAgIAotICAgIC8qIEdldCB0aHJlYWQgaW5mb3JtYXRpb24gKi8KLSAgICBt
YWNoX3BvcnRfdCB0aHJlYWRQb3J0ID0gbWFjaF90aHJlYWRfc2VsZigpOwotICAgIHRocmVhZF9p
bmZvKHRocmVhZFBvcnQsIFRIUkVBRF9CQVNJQ19JTkZPLCAodGhyZWFkX2luZm9fdCkoJmluZm8p
LCAmaW5mb0NvdW50KTsKLSAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigp
LCB0aHJlYWRQb3J0KTsKLSAgICAKLSAgICBkb3VibGUgdGltZSA9IGluZm8udXNlcl90aW1lLnNl
Y29uZHMgKyBpbmZvLnVzZXJfdGltZS5taWNyb3NlY29uZHMgLyAxMDAwMDAwLjsKLSAgICB0aW1l
ICs9IGluZm8uc3lzdGVtX3RpbWUuc2Vjb25kcyArIGluZm8uc3lzdGVtX3RpbWUubWljcm9zZWNv
bmRzIC8gMTAwMDAwMC47Ci0gICAgCi0gICAgcmV0dXJuIHRpbWU7Ci19Ci0KIHN0YXRpYyBKU1Zh
bHVlUmVmIGN1cnJlbnRDUFVUaW1lQXNKU0Z1bmN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGN0
eCwgSlNPYmplY3RSZWYgZnVuY3Rpb25PYmplY3QsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNp
emVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uT2JqZWN0KTsKQEAg
LTYzLDcgKzQ0LDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgY3VycmVudENQVVRpbWVBc0pTRnVuYwog
ICAgIFVOVVNFRF9QQVJBTShleGNlcHRpb24pOwogICAgIAogICAgIEFTU0VSVChKU0NvbnRleHRH
ZXRHbG9iYWxDb250ZXh0KGN0eCkgPT0gY29udGV4dCk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtl
TnVtYmVyKGN0eCwgY3VycmVudENQVVRpbWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVt
YmVyKGN0eCwgY3VycmVudENQVVRpbWUoKS5jb3VudCgpIC8gMTAwMDAwMC4pOwogfQogCiBib29s
IHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CkBAIC0xMjAsMTggKzEw
MSwxNiBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgewogICAgICAgICBjb25z
dCBjaGFyKiBsb29wRm9yZXZlclNjcmlwdCA9ICJ2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRp
bWUoKTsgd2hpbGUgKHRydWUpIHsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAu
MTUwKSBicmVhazsgfSAiOwogICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhsb29wRm9yZXZlclNjcmlwdCk7Ci0gICAgICAgIGRvdWJsZSBz
dGFydFRpbWU7Ci0gICAgICAgIGRvdWJsZSBlbmRUaW1lOwogICAgICAgICBleGNlcHRpb24gPSBu
dWxscHRyOwogICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNl
OwotICAgICAgICBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIHN0
YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAgICAgICAgIHYgPSBKU0V2YWx1YXRlU2NyaXB0
KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAg
ICAgIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIGVuZFRpbWUgPSBj
dXJyZW50Q1BVVGltZSgpOwogICAgICAgICAKLSAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0
VGltZSkgPCAuMTUwZikgJiYgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAg
ICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1MCkpICYmIHNo
b3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgcHJpbnRmKCJQQVNT
OiBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVkLlxuIik7CiAgICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MGYpKQorICAgICAgICAg
ICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1MCkpKQogICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhw
ZWN0ZWQuXG4iKTsKICAgICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXND
YWxsZWQpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgdGltZW91dCBjYWxs
YmFjayB3YXMgbm90IGNhbGxlZC5cbiIpOwpAQCAtMTQ5LDE2ICsxMjgsMTQgQEAgaW50IHRlc3RF
eGVjdXRpb25UaW1lTGltaXQoKQogICAgIHsKICAgICAgICAgY29uc3QgY2hhciogbG9vcEZvcmV2
ZXJTY3JpcHQgPSAidmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHRyeSB7IHdoaWxl
ICh0cnVlKSB7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gLjE1MCkgYnJlYWs7
IH0gfSBjYXRjaChlKSB7IH0iOwogICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsb29wRm9yZXZlclNjcmlwdCk7Ci0gICAgICAgIGRvdWJs
ZSBzdGFydFRpbWU7Ci0gICAgICAgIGRvdWJsZSBlbmRUaW1lOwogICAgICAgICBleGNlcHRpb24g
PSBudWxscHRyOwogICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZh
bHNlOwotICAgICAgICBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRv
IHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAgICAgICAgIHYgPSBKU0V2YWx1YXRlU2Ny
aXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0g
ICAgICAgIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIGVuZFRpbWUg
PSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICAKLSAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0
YXJ0VGltZSkgPj0gLjE1MGYpIHx8ICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkg
ewotICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MGYpKQorICAg
ICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSBtaWxsaXNlY29uZHMoMTUwKSkgfHwg
IXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKSB7CisgICAgICAgICAgICBpZiAoISgo
ZW5kVGltZSAtIHN0YXJ0VGltZSkgPCBtaWxsaXNlY29uZHMoMTUwKSkpCiAgICAgICAgICAgICAg
ICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIp
OwogICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKICAg
ICAgICAgICAgICAgICBwcmludGYoIkZBSUw6IHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBu
b3QgY2FsbGVkLlxuIik7CkBAIC0xNzgsMTcgKzE1NSwxNSBAQCBpbnQgdGVzdEV4ZWN1dGlvblRp
bWVMaW1pdCgpCiAgICAgewogICAgICAgICBjb25zdCBjaGFyKiBsb29wRm9yZXZlclNjcmlwdCA9
ICJ2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUpIHsgaWYgKGN1
cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAuMTUwKSBicmVhazsgfSAiOwogICAgICAgICBK
U1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsb29wRm9y
ZXZlclNjcmlwdCk7Ci0gICAgICAgIGRvdWJsZSBzdGFydFRpbWU7Ci0gICAgICAgIGRvdWJsZSBl
bmRUaW1lOwogICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICBzdGFydFRpbWUg
PSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVU
aW1lKCk7CiAgICAgICAgIHYgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVs
bHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgIGVuZFRpbWUgPSBjdXJyZW50
Q1BVVGltZSgpOworICAgICAgICBhdXRvIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAg
ICAgICAKLSAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCAuMTUwZikgJiYgc2hv
dWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgIGlmICgoKGVuZFRpbWUgLSBz
dGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1MCkpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNr
V2FzQ2FsbGVkKQogICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiBzY3JpcHQgdGltZWQgb3V0IGFz
IGV4cGVjdGVkIHdoZW4gbm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVkLlxuIik7CiAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MGYpKQor
ICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1
MCkpKQogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IGRpZCBub3QgdGltZSBv
dXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iKTsKICAgICAg
ICAgICAgIGZhaWxlZCA9IHRydWU7CiAgICAgICAgIH0KQEAgLTIwNCwxNyArMTc5LDE1IEBAIGlu
dCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGxv
b3BGb3JldmVyU2NyaXB0ID0gInZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGls
ZSAodHJ1ZSkgeyBpZiAoY3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+IC4xNTApIGJyZWFr
OyB9ICI7CiAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKGxvb3BGb3JldmVyU2NyaXB0KTsKLSAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsK
LSAgICAgICAgZG91YmxlIGVuZFRpbWU7CiAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gc3RhcnRU
aW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgdiA9IEpTRXZhbHVhdGVTY3JpcHQoY29u
dGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAg
ZW5kVGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gZW5kVGltZSA9IGN1cnJl
bnRDUFVUaW1lKCk7CiAgICAgICAgIAotICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA+PSAuMTUwZikgJiYgY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgJiYgIWV4Y2Vw
dGlvbikKKyAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gbWlsbGlzZWNvbmRz
KDE1MCkpICYmIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkICYmICFleGNlcHRpb24p
CiAgICAgICAgICAgICBwcmludGYoIlBBU1M6IHNjcmlwdCB0aW1lb3V0IHdhcyBjYW5jZWxsZWQg
YXMgZXhwZWN0ZWQuXG4iKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoKChlbmRU
aW1lIC0gc3RhcnRUaW1lKSA8IC4xNTApIHx8IGV4Y2VwdGlvbikKKyAgICAgICAgICAgIGlmICgo
KGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1MCkpIHx8IGV4Y2VwdGlvbikK
ICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6IHNjcmlwdCB0aW1lb3V0IHdhcyBub3QgY2Fu
Y2VsbGVkLlxuIik7CiAgICAgICAgICAgICBpZiAoIWNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2Fz
Q2FsbGVkKQogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IHRpbWVvdXQgY2Fs
bGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iKTsKQEAgLTIzMiwyMSArMjA1LDE4IEBAIGludCB0ZXN0
RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGxvb3BGb3Jl
dmVyU2NyaXB0ID0gInZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1
ZSkgeyBpZiAoY3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+IC41MDApIGJyZWFrOyB9ICI7
CiAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKGxvb3BGb3JldmVyU2NyaXB0KTsKLSAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsKLSAgICAg
ICAgZG91YmxlIGVuZFRpbWU7Ci0gICAgICAgIGRvdWJsZSBkZWx0YVRpbWU7CiAgICAgICAgIGV4
Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7
CisgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgdiA9
IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAm
ZXhjZXB0aW9uKTsKLSAgICAgICAgZW5kVGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7Ci0gICAgICAg
IGRlbHRhVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7CisgICAgICAgIGF1dG8gZW5kVGltZSA9
IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0
YXJ0VGltZTsKICAgICAgICAgCi0gICAgICAgIGlmICgoZGVsdGFUaW1lID49IC4zMDBmKSAmJiAo
ZGVsdGFUaW1lIDwgLjUwMGYpICYmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9PSAy
KSAmJiBleGNlcHRpb24pCisgICAgICAgIGlmICgoZGVsdGFUaW1lID49IG1pbGxpc2Vjb25kcygz
MDApKSAmJiAoZGVsdGFUaW1lIDwgbWlsbGlzZWNvbmRzKDUwMCkpICYmIChleHRlbmRUZXJtaW5h
dGVDYWxsYmFja0NhbGxlZCA9PSAyKSAmJiBleGNlcHRpb24pCiAgICAgICAgICAgICBwcmludGYo
IlBBU1M6IHNjcmlwdCB0aW1lb3V0IHdhcyBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIpOwogICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmIChkZWx0YVRpbWUgPCAuMjAwZikKKyAgICAgICAg
ICAgIGlmIChkZWx0YVRpbWUgPCBtaWxsaXNlY29uZHMoMjAwKSkKICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6IHNjcmlwdCB0aW1lb3V0IHdhcyBub3QgZXh0ZW5kZWQgYXMgZXhwZWN0ZWQu
XG4iKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSAuNTAwZikKKyAgICAgICAg
ICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSBtaWxsaXNlY29uZHMoNTAwKSkKICAgICAgICAgICAg
ICAgICBwcmludGYoIkZBSUw6IHNjcmlwdCBkaWQgbm90IHRpbWVvdXQuXG4iKTsKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgaWYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkIDwgMSkK
QEAgLTI2NCw1ICsyMzQsMyBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgSlNH
bG9iYWxDb250ZXh0UmVsZWFzZShjb250ZXh0KTsKICAgICByZXR1cm4gZmFpbGVkOwogfQotCi0j
ZW5kaWYgLy8gT1MoREFSV0lOKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLmMJKHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaS5jCSh3b3JraW5nIGNvcHkpCkBAIC00Myw5ICs0Myw3IEBACiAjaW5j
bHVkZSAiQ3VzdG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmgiCiAjaW5jbHVkZSAiR2xvYmFsQ29u
dGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmgiCiAKLSNpZiBPUyhEQVJXSU4pCiAjaW5jbHVkZSAiRXhl
Y3V0aW9uVGltZUxpbWl0VGVzdC5oIgotI2VuZGlmCiAKICNpZiBKU0NfT0JKQ19BUElfRU5BQkxF
RAogdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSSh2b2lkKTsKQEAgLTE4OTMsOSArMTg5MSw3IEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJl
bGVhc2UoY29udGV4dCk7CiAgICAgfQogCi0jaWYgT1MoREFSV0lOKQogICAgIGZhaWxlZCA9IHRl
c3RFeGVjdXRpb25UaW1lTGltaXQoKSB8fCBmYWlsZWQ7Ci0jZW5kaWYgLyogT1MoREFSV0lOKSAq
LwogICAgIGZhaWxlZCA9IHRlc3RHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplcigpIHx8IGZhaWxl
ZDsKIAogICAgIC8vIENsZWFyIG91dCBsb2NhbCB2YXJpYWJsZXMgcG9pbnRpbmcgYXQgSlNPYmpl
Y3RSZWZzIHRvIGFsbG93IHRoZWlyIHZhbHVlcyB0byBiZSBjb2xsZWN0ZWQKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkocmV2aXNpb24gMTg4MzIzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtODcwLDcgKzg3MCw2IEBACiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxydW50aW1lXFZNRW50cnlTY29wZS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxydW50aW1lXFZhck9mZnNldC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hkb2dOb25lLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcV2Vha01hcENvbnN0cnVjdG9yLmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2Vha01hcERhdGEuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccnVudGltZVxXZWFrTWFwUHJvdG90eXBlLmNwcCIgLz4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9u
IDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtOTM2LDkg
KzkzNiw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nLmNw
cCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hkb2dOb25lLmNwcCI+Ci0gICAg
ICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHRvb2xzXENvZGVQcm9maWxlLmNwcCI+CiAgICAgICA8RmlsdGVyPnRv
b2xzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai90ZXN0YXBpL3Rlc3RhcGkudmN4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai90ZXN0
YXBpL3Rlc3RhcGkudmN4cHJvagkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTI5Nyw2ICsyOTcsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cLi5cQVBJXHRlc3RzXENvbXBhcmVBbmRTd2FwVGVzdC5oIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEN1c3RvbUdsb2JhbE9i
amVjdENsYXNzVGVzdC5oIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRl
c3RzXEV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cLi5cQVBJXHRlc3RzXEV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuaCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0c1xHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXpl
clRlc3QuY3BwIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEds
b2JhbENvbnRleHRXaXRoRmluYWxpemVyVGVzdC5oIiAvPgogICA8L0l0ZW1Hcm91cD4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL3Rlc3RhcGkvdGVz
dGFwaS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2ouZmlsdGVycwko
cmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpA
QCAtMTIsNiArMTIsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3Rz
XENvbXBhcmVBbmRTd2FwVGVzdC5oIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5c
QVBJXHRlc3RzXEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5o
IiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEV4ZWN1dGlvblRp
bWVMaW1pdFRlc3QuY3BwIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRl
c3RzXEV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuaCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXC4uXEFQSVx0ZXN0c1xHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEdsb2JhbENvbnRleHRXaXRo
RmluYWxpemVyVGVzdC5oIiAvPgogICA8L0l0ZW1Hcm91cD4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAxODgzMjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtMTcyOCw3ICsxNzI4LDYgQEAKIAkJRkVEMjg3QjIxNUVDOUE1NzAwREE4MTYxIC8qIExMSW50
T3Bjb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RUQyODdCMTE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3
QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLzsgfTsK
IAkJRkVEOTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQg
LyogV2F0Y2hkb2cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQlGRUQ5NEYzMDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEOTRGMkQxNzFFM0Uy
MzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAqLzsgfTsKIAkJRkVGMDQwNTExQUFFNjYyRDAw
QkQyOEIwIC8qIENvbXBhcmVBbmRTd2FwVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUYwNDA1MDFBQUU2NjJEMDBCRDI4QjAgLyogQ29tcGFy
ZUFuZFN3YXBUZXN0LmNwcCAqLzsgfTsKIAkJRkVGNjgzNUUxNzQzNDNDQzAwQTMyRTI1IC8qIEpJ
VFN0dWJzQVJNLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRUY2ODM1QTE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNBUk0uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUY2ODM1RjE3NDM0M0NDMDBB
MzJFMjUgLyogSklUU3R1YnNBUk12Ny5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkVGNjgzNUIxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNdjcu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzU4
Nyw3ICszNTg2LDYgQEAKIAkJRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50T3Bjb2RlLmg7IHBhdGgg
PSBsbGludC9MTEludE9wY29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQ5
NEYyQjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2F0Y2hkb2cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGRUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2F0Y2hkb2cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJRkVEOTRGMkQxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhdGNoZG9nTWFjLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVGMDQwNTAxQUFFNjYyRDAwQkQyOEIwIC8qIENvbXBhcmVB
bmRTd2FwVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb21w
YXJlQW5kU3dhcFRlc3QuY3BwOyBwYXRoID0gQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjA0MDUyMUFBRUM0RUQwMEJEMjhC
MCAvKiBDb21wYXJlQW5kU3dhcFRlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQ29tcGFyZUFuZFN3YXBUZXN0Lmg7IHBhdGggPSBBUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBU
ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjY4MzVBMTc0MzQzQ0MwMEEz
MkUyNSAvKiBKSVRTdHVic0FSTS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
SVRTdHVic0FSTS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDkyMCw3ICs0OTE4
LDYgQEAKIAkJCQlGRTU5MzJBNjE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggKi8s
CiAJCQkJRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLywKIAkJCQlG
RUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLywKLQkJCQlGRUQ5NEYyRDE3
MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwICovLAogCQkJCTE0QkZDRTY4MTBDREIx
RkMwMDM2NENDRSAvKiBXZWFrR0NNYXAuaCAqLywKIAkJCQlBRDg2QTkzRDFBQTREODdDMDAyRkU3
N0YgLyogV2Vha0dDTWFwSW5saW5lcy5oICovLAogCQkJCUE3Q0EzQUREMTdEQTQxQUUwMDY1MzhB
RiAvKiBXZWFrTWFwQ29uc3RydWN0b3IuY3BwICovLApAQCAtNzgzMyw3ICs3ODMwLDYgQEAKIAkJ
CQlFMThFM0E1OTBERjkyNzhDMDBEOTBCMzQgLyogVk0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkU1OTMyQTcxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRkVEOTRGMzAxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdCOThEMTM2MUI2MENENUYwMDIzQjFBNCAvKiBKU1dBU01Nb2R1
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MTlEMjUxNTg1M0NFMDAwNEE0RTdEIC8qIFdh
dGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDRjczNzcxNzFDQTZGQjAwQzlCQjFF
IC8qIFdlYWsuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTg4MzIzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVk
ZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlICJTdHJpbmdDb25zdHJ1Y3Rvci5oIgorI2lu
Y2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KQEAgLTQwMzAs
NyArNDAzMSw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKIAog
ICAgICAgICAgICAgYWRkVG9HcmFwaChMb29wSGludCk7CiAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIGlmIChtX3ZtLT53YXRjaGRvZyAmJiBtX3ZtLT53YXRjaGRvZy0+aXNFbmFibGVkKCkpCisg
ICAgICAgICAgICBpZiAobV92bS0+d2F0Y2hkb2cgJiYgbV92bS0+d2F0Y2hkb2ctPmhhc1RpbWVM
aW1pdCgpKQogICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tXYXRjaGRvZ1RpbWVyKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfbG9vcF9oaW50KTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQs
NyBAQAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJTZXR1cFZhcmFyZ3NGcmFt
ZS5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgi
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAx
ODgzMjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU2V0dXBWYXJh
cmdzRnJhbWUuaCIKICNpbmNsdWRlICJTcGlsbFJlZ2lzdGVyc01vZGUuaCIKICNpbmNsdWRlICJU
eXBlUHJvZmlsZXJMb2cuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogCiBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1ZGUgIlN5bWJvbC5oIgogI2luY2x1ZGUgIlZNRW50
cnlTY29wZS5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgorI2luY2x1ZGUgIldhdGNo
ZG9nLmgiCiAKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtODgw
LDggKzg4MSw2IEBAIGZhaWxlZEpTT05QOgogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKICAg
ICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgp
KTsKLSAgICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cuZ2V0
KCkpOwotCiAgICAgICAgIHJlc3VsdCA9IHByb2dyYW0tPmdlbmVyYXRlZEpJVENvZGUoKS0+ZXhl
Y3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSk7CiAgICAgfQogCkBAIC05NDIsNyArOTQxLDYgQEAg
SlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYQogICAgIEpTVmFsdWUgcmVz
dWx0OwogICAgIHsKICAgICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQo
bV9zYW1wbGVyLmdldCgpLCAhaXNKU0NhbGwpOwotICAgICAgICBXYXRjaGRvZzo6U2NvcGUgd2F0
Y2hkb2dTY29wZSh2bS53YXRjaGRvZy5nZXQoKSk7CiAKICAgICAgICAgLy8gRXhlY3V0ZSB0aGUg
Y29kZToKICAgICAgICAgaWYgKGlzSlNDYWxsKQpAQCAtMTAxMyw3ICsxMDExLDYgQEAgSlNPYmpl
Y3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KAogICAgIEpTVmFsdWUgcmVzdWx0Owog
ICAgIHsKICAgICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1w
bGVyLmdldCgpLCAhaXNKU0NvbnN0cnVjdCk7Ci0gICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRj
aGRvZ1Njb3BlKHZtLndhdGNoZG9nLmdldCgpKTsKIAogICAgICAgICAvLyBFeGVjdXRlIHRoZSBj
b2RlLgogICAgICAgICBpZiAoaXNKU0NvbnN0cnVjdCkKQEAgLTEwODIsOCArMTA3OSw2IEBAIEpT
VmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2wKICAgICBKU1ZhbHVlIHJlc3Vs
dDsKICAgICB7CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1f
c2FtcGxlci5nZXQoKSk7Ci0gICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRvZ1Njb3BlKHZt
LndhdGNoZG9nLmdldCgpKTsKLQogICAgICAgICByZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhl
Y3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUu
cHJvdG9DYWxsRnJhbWUpOwogICAgIH0KIApAQCAtMTE3Myw4ICsxMTY4LDYgQEAgSlNWYWx1ZSBJ
bnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YQogICAgIEpTVmFsdWUgcmVzdWx0OwogICAg
IHsKICAgICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVy
LmdldCgpKTsKLSAgICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hk
b2cuZ2V0KCkpOwotCiAgICAgICAgIHJlc3VsdCA9IGV2YWwtPmdlbmVyYXRlZEpJVENvZGUoKS0+
ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1
LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJUeXBlTG9jYXRpb24uaCIKICNpbmNsdWRlICJUeXBlUHJv
ZmlsZXJMb2cuaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKKyNpbmNsdWRlICJXYXRj
aGRvZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtOTA1LDcgKzkwNiw3IEBAIHZvaWQgSklU
OjplbWl0X29wX2xvb3BfaGludChJbnN0cnVjdGlvbioKICAgICB9CiAKICAgICAvLyBFbWl0IHRo
ZSB3YXRjaGRvZyB0aW1lciBjaGVjazoKLSAgICBpZiAobV92bS0+d2F0Y2hkb2cgJiYgbV92bS0+
d2F0Y2hkb2ctPmlzRW5hYmxlZCgpKQorICAgIGlmIChtX3ZtLT53YXRjaGRvZyAmJiBtX3ZtLT53
YXRjaGRvZy0+aGFzVGltZUxpbWl0KCkpCiAgICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaFRlc3Q4
KE5vblplcm8sIEFic29sdXRlQWRkcmVzcyhtX3ZtLT53YXRjaGRvZy0+dGltZXJEaWRGaXJlQWRk
cmVzcygpKSkpOwogfQogCkBAIC05MzEsNyArOTMyLDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29w
X2xvb3BfaGludChJbnN0cnVjdAogI2VuZGlmCiAKICAgICAvLyBFbWl0IHRoZSBzbG93IHBhdGgg
b2YgdGhlIHdhdGNoZG9nIHRpbWVyIGNoZWNrOgotICAgIGlmIChtX3ZtLT53YXRjaGRvZyAmJiBt
X3ZtLT53YXRjaGRvZy0+aXNFbmFibGVkKCkpIHsKKyAgICBpZiAobV92bS0+d2F0Y2hkb2cgJiYg
bV92bS0+d2F0Y2hkb2ctPmhhc1RpbWVMaW1pdCgpKSB7CiAgICAgICAgIGxpbmtTbG93Q2FzZShp
dGVyKTsKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25IYW5kbGVXYXRjaGRvZ1RpbWVy
KTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3Bw
CShyZXZpc2lvbiAxODgzMjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSAiU2Nv
cGVkQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiVGVzdFJ1bm5lclV0aWxzLmgiCiAjaW5jbHVkZSAi
VHlwZVByb2ZpbGVyTG9nLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3dGYv
SW5saW5lQVNNLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAJKHJldmlzaW9u
IDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRy
YWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiVHlw
ZVByb2ZpbGVyTG9nLmgiCiAjaW5jbHVkZSAiVk1FbnRyeVJlY29yZC5oIgogI2luY2x1ZGUgIlZh
bHVlUHJvZmlsZS5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nSW1wbC5oPgogCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiAr
NTMsNyBAQAogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUHJvdG9D
YWxsRnJhbWUuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKKyNpbmNs
dWRlICJXYXRjaGRvZy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5jcHAJKHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsNyBAQAogI2luY2x1
ZGUgIlR5cGVQcm9maWxlci5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgogI2luY2x1
ZGUgIlVubGlua2VkQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRl
ICJXZWFrR0NNYXBJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2Vha01hcERhdGEuaCIKICNpbmNsdWRl
IDx3dGYvQ3VycmVudFRpbWUuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAko
cmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAko
d29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNiBAQAogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9y
cy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVk1FbnRy
eVJlY29yZC5oIgotI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSAiV2F0Y2hwb2ludC5o
IgogI2luY2x1ZGUgIldlYWtSYW5kb20uaCIKICNpbmNsdWRlIDx3dGYvQmFnLmg+CkBAIC0xMDcs
NiArMTA2LDcgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU7CiBjbGFzcyBVbmxp
bmtlZFByb2dyYW1Db2RlQmxvY2s7CiBjbGFzcyBWaXJ0dWFsUmVnaXN0ZXI7CiBjbGFzcyBWTUVu
dHJ5U2NvcGU7CitjbGFzcyBXYXRjaGRvZzsKIGNsYXNzIFdhdGNocG9pbnQ7CiBjbGFzcyBXYXRj
aHBvaW50U2V0OwogCkBAIC0yNTksNyArMjU5LDcgQEAgcHVibGljOgogICAgIENsaWVudERhdGEq
IGNsaWVudERhdGE7CiAgICAgVk1FbnRyeUZyYW1lKiB0b3BWTUVudHJ5RnJhbWU7CiAgICAgRXhl
Y1N0YXRlKiB0b3BDYWxsRnJhbWU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdhdGNoZG9nPiB3YXRj
aGRvZzsKKyAgICBSZWZQdHI8V2F0Y2hkb2c+IHdhdGNoZG9nOwogCiAgICAgU3Ryb25nPFN0cnVj
dHVyZT4gc3RydWN0dXJlU3RydWN0dXJlOwogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHN0cnVjdHVy
ZVJhcmVEYXRhU3RydWN0dXJlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk1FbnRyeVNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTUVudHJ5U2NvcGUuY3BwCShyZXZpc2lvbiAxODgzMjMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlICJEZWJ1Z2dlci5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIK
ICNpbmNsdWRlICJWTS5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL1N0
YWNrQm91bmRzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDgsNiArNDksOSBAQCBWTUVudHJ5
U2NvcGU6OlZNRW50cnlTY29wZShWTSYgdm0sIEpTR2xvCiAgICAgICAgIC8vIFJlc2V0IHRoZSBk
YXRlIGNhY2hlIGJldHdlZW4gSlMgaW52b2NhdGlvbnMgdG8gZm9yY2UgdGhlIFZNIHRvCiAgICAg
ICAgIC8vIG9ic2VydmUgdGltZSB4b25lIGNoYW5nZXMuCiAgICAgICAgIHZtLnJlc2V0RGF0ZUNh
Y2hlKCk7CisKKyAgICAgICAgaWYgKHZtLndhdGNoZG9nKQorICAgICAgICAgICAgdm0ud2F0Y2hk
b2ctPmVudGVyZWRWTSgpOwogICAgIH0KIAogICAgIHZtLmNsZWFyTGFzdEV4Y2VwdGlvbigpOwpA
QCAtNjMsNiArNjcsOSBAQCBWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUoKQogICAgIGlmICht
X3ZtLmVudHJ5U2NvcGUgIT0gdGhpcykKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1fdm0u
d2F0Y2hkb2cpCisgICAgICAgIG1fdm0ud2F0Y2hkb2ctPmV4aXRlZFZNKCk7CisKICAgICBtX3Zt
LmVudHJ5U2NvcGUgPSBudWxscHRyOwogCiAgICAgZm9yIChhdXRvJiBsaXN0ZW5lciA6IG1fYWxs
RW50cnlTY29wZURpZFBvcExpc3RlbmVycy52YWx1ZXMoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAJKHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIs
NzUgKzMyLDEzNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2RlZmluZSBOT19MSU1JVCBzdGQ6
OmNocm9ubzo6bWljcm9zZWNvbmRzOjptYXgoKQorY29uc3Qgc3RkOjpjaHJvbm86Om1pY3Jvc2Vj
b25kcyBXYXRjaGRvZzo6bm9UaW1lTGltaXQgPSBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzOjpt
YXgoKTsKKworc3RhdGljIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgY3VycmVudFdhbGxDbG9j
a1RpbWUoKQoreworICAgIGF1dG8gc3RlYWR5VGltZVNpbmNlRXBvY2ggPSBzdGQ6OmNocm9ubzo6
c3RlYWR5X2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCk7CisgICAgcmV0dXJuIHN0ZDo6
Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM+KHN0ZWFkeVRp
bWVTaW5jZUVwb2NoKTsKK30KIAogV2F0Y2hkb2c6OldhdGNoZG9nKCkKICAgICA6IG1fdGltZXJE
aWRGaXJlKGZhbHNlKQogICAgICwgbV9kaWRGaXJlKGZhbHNlKQotICAgICwgbV90aW1lb3V0UGVy
aW9kKE5PX0xJTUlUKQotICAgICwgbV9zdGFydENQVVRpbWUoMCkKLSAgICAsIG1fZWxhcHNlZENQ
VVRpbWUoMCkKLSAgICAsIG1fcmVlbnRyeUNvdW50KDApCi0gICAgLCBtX2lzU3RvcHBlZCh0cnVl
KQorICAgICwgbV90aW1lTGltaXQobm9UaW1lTGltaXQpCisgICAgLCBtX2NwdURlYWRsaW5lKG5v
VGltZUxpbWl0KQorICAgICwgbV93YWxsQ2xvY2tEZWFkbGluZShub1RpbWVMaW1pdCkKICAgICAs
IG1fY2FsbGJhY2soMCkKICAgICAsIG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwgbV9jYWxsYmFj
a0RhdGEyKDApCisgICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImpzYy53YXRj
aGRvZy5xdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRp
bGl0eSkpCiB7Ci0gICAgaW5pdFRpbWVyKCk7CisgICAgbV90aW1lckhhbmRsZXIgPSBbdGhpc10g
eworICAgICAgICB0aGlzLT5tX3RpbWVyRGlkRmlyZSA9IHRydWU7CisgICAgICAgIHRoaXMtPmRl
cmVmKCk7CisgICAgfTsKIH0KIAotV2F0Y2hkb2c6On5XYXRjaGRvZygpCitpbmxpbmUgYm9vbCBX
YXRjaGRvZzo6aGFzU3RhcnRlZFRpbWVyKCkKIHsKLSAgICBBU1NFUlQoIWlzQXJtZWQoKSk7Ci0g
ICAgc3RvcENvdW50ZG93bigpOwotICAgIGRlc3Ryb3lUaW1lcigpOworICAgIHJldHVybiBtX2Nw
dURlYWRsaW5lICE9IG5vVGltZUxpbWl0OwogfQogCiB2b2lkIFdhdGNoZG9nOjpzZXRUaW1lTGlt
aXQoVk0mIHZtLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0LAogICAgIFNob3VsZFRl
cm1pbmF0ZUNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBkYXRhMSwgdm9pZCogZGF0YTIpCiB7Ci0g
ICAgYm9vbCB3YXNFbmFibGVkID0gaXNFbmFibGVkKCk7Ci0KLSAgICBpZiAoIW1faXNTdG9wcGVk
KQotICAgICAgICBzdG9wQ291bnRkb3duKCk7CisgICAgYm9vbCBoYWRUaW1lTGltaXQgPSBoYXNU
aW1lTGltaXQoKTsKIAogICAgIG1fZGlkRmlyZSA9IGZhbHNlOyAvLyBSZXNldCB0aGUgd2F0Y2hk
b2cuCiAKLSAgICBtX3RpbWVvdXRQZXJpb2QgPSBsaW1pdDsKKyAgICBtX3RpbWVMaW1pdCA9IGxp
bWl0OwogICAgIG1fY2FsbGJhY2sgPSBjYWxsYmFjazsKICAgICBtX2NhbGxiYWNrRGF0YTEgPSBk
YXRhMTsKICAgICBtX2NhbGxiYWNrRGF0YTIgPSBkYXRhMjsKIAotICAgIC8vIElmIHRoaXMgaXMg
dGhlIGZpcnN0IHRpbWUgdGhhdCB0aW1lb3V0IGlzIGJlaW5nIGVuYWJsZWQsIHRoZW4gYW55Cisg
ICAgLy8gSWYgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB0aGF0IHRpbWUgbGltaXQgaXMgYmVpbmcg
ZW5hYmxlZCwgdGhlbiBhbnkKICAgICAvLyBwcmV2aW91c2x5IEpJVCBjb21waWxlZCBjb2RlIHdp
bGwgbm90IGhhdmUgdGhlIG5lZWRlZCBwb2xsaW5nIGNoZWNrcy4KICAgICAvLyBIZW5jZSwgd2Ug
bmVlZCB0byBmbHVzaCBhbGwgdGhlIHByZS1leGlzdGluZyBjb21waWxlZCBjb2RlLgogICAgIC8v
Ci0gICAgLy8gSG93ZXZlciwgaWYgdGhlIHRpbWVvdXQgaXMgYWxyZWFkeSBlbmFibGVkLCBhbmQg
d2UncmUganVzdCBjaGFuZ2luZyB0aGUKLSAgICAvLyB0aW1lb3V0IHZhbHVlLCB0aGVuIGFueSBl
eGlzdGluZyBKSVR0ZWQgY29kZSB3aWxsIGhhdmUgdGhlIGFwcHJvcHJpYXRlCisgICAgLy8gSG93
ZXZlciwgaWYgdGhlIHRpbWUgbGltaXQgaXMgYWxyZWFkeSBlbmFibGVkLCBhbmQgd2UncmUganVz
dCBjaGFuZ2luZyB0aGUKKyAgICAvLyB0aW1lIGxpbWl0IHZhbHVlLCB0aGVuIGFueSBleGlzdGlu
ZyBKSVR0ZWQgY29kZSB3aWxsIGhhdmUgdGhlIGFwcHJvcHJpYXRlCiAgICAgLy8gcG9sbGluZyBj
aGVja3MuIEhlbmNlLCB0aGVyZSBpcyBubyBuZWVkIHRvIHJlLWRvIHRoaXMgZmx1c2hpbmcuCi0g
ICAgaWYgKCF3YXNFbmFibGVkKSB7CisgICAgaWYgKCFoYWRUaW1lTGltaXQpIHsKICAgICAgICAg
Ly8gQW5kIGlmIHdlJ3ZlIHByZXZpb3VzbHkgY29tcGlsZWQgYW55IGZ1bmN0aW9ucywgd2UgbmVl
ZCB0byByZXZlcnQKICAgICAgICAgLy8gdGhlbSBiZWNhdXNlIHRoZXkgZG9uJ3QgaGF2ZSB0aGUg
bmVlZGVkIHBvbGxpbmcgY2hlY2tzIHlldC4KICAgICAgICAgdm0ucmVsZWFzZUV4ZWN1dGFibGVN
ZW1vcnkoKTsKICAgICB9CiAKLSAgICBzdGFydENvdW50ZG93bklmTmVlZGVkKCk7CisgICAgaWYg
KG1faGFzRW50ZXJlZFZNICYmIGhhc1RpbWVMaW1pdCgpKQorICAgICAgICBzdGFydFRpbWVyKG1f
dGltZUxpbWl0KTsKIH0KIAotYm9vbCBXYXRjaGRvZzo6ZGlkRmlyZShFeGVjU3RhdGUqIGV4ZWMp
Citib29sIFdhdGNoZG9nOjpkaWRGaXJlU2xvdyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgaWYg
KG1fZGlkRmlyZSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIW1fdGltZXJEaWRG
aXJlKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKG1fdGltZXJEaWRGaXJlKTsK
ICAgICBtX3RpbWVyRGlkRmlyZSA9IGZhbHNlOwotICAgIHN0b3BDb3VudGRvd24oKTsKIAotICAg
IGF1dG8gY3VycmVudFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwotICAgIGF1dG8gZGVsdGFDUFVU
aW1lID0gY3VycmVudFRpbWUgLSBtX3N0YXJ0Q1BVVGltZTsKLSAgICBhdXRvIHRvdGFsRWxhcHNl
ZENQVVRpbWUgPSBtX2VsYXBzZWRDUFVUaW1lICsgZGVsdGFDUFVUaW1lOwotICAgIGlmICh0b3Rh
bEVsYXBzZWRDUFVUaW1lID4gbV90aW1lb3V0UGVyaW9kKSB7CisgICAgLy8gQSBsZWdpdGltYXRl
IHRpbWVyIGlzIHRoZSB0aW1lciB3aGljaCB3b2tlIHVwIHdhdGNoZG9nIGFuZCBjYW4gY2F1c2Vk
IGRpZEZpcmVTbG93KCkgdG8gYmUKKyAgICAvLyBjYWxsZWQgYWZ0ZXIgbV93YWxsQ2xvY2tEZWFk
bGluZSBoYXMgZXhwaXJlZC4gQWxsIG90aGVyIHRpbWVycyBhcmUgY29uc2lkZXJlZCB0byBiZSBz
dGFsZSwKKyAgICAvLyBhbmQgdGhlaXIgd2FrZSB1cHMgYXJlIGNvbnNpZGVyZWQgdG8gYmUgc3B1
cmlvdXMgYW5kIHNob3VsZCBiZSBpZ25vcmVkLgorICAgIC8vCisgICAgLy8gZGlkRmlyZVNsb3co
KSB3aWxsIHJhY2UgYWdhaW5zdCBtX3RpbWVySGFuZGxlciB0byBjbGVhciBhbmQgc2V0IG1fdGlt
ZXJEaWRGaXJlIHJlc3BlY3RpdmVseS4KKyAgICAvLyBXZSBuZWVkIHRvIGRlYWwgd2l0aCBhIHZh
cmlldHkgb2Ygc2NlbmFyaW9zIHdoZXJlIHdlIGNhbiBoYXZlIHN0YWxlIHRpbWVycyBhbmQgbGVn
aXRpbWF0ZQorICAgIC8vIHRpbWVycyBmaXJpbmcgaW4gY2xvc2UgcHJveGltaXR5IHRvIGVhY2gg
b3RoZXIuCisgICAgLy8KKyAgICAvLyBDb25zaWRlciB0aGUgZm9sbG93aW5nIHNjZW5hcmlvczoK
KyAgICAvLworICAgIC8vIDEuIEEgc3RhbGUgdGltZXIgZmlyZXMgbG9uZyBiZWZvcmUgbV93YWxs
Q2xvY2tEZWFkbGluZSBleHBpcmVzLgorICAgIC8vCisgICAgLy8gICAgSW4gdGhpcyBjYXNlLCB0
aGUgbV93YWxsQ2xvY2tEZWFkbGluZSBjaGVjayBiZWxvdyB3aWxsIGZhaWwgYW5kIHRoZSBzdGFs
ZSB0aW1lciB3aWxsIGJlCisgICAgLy8gICAgaWdub3JlZCBhcyBzcHVyaW91cy4gV2UganVzdCBu
ZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGNsZWFyIG1fdGltZXJEaWRGaXJlIGJlZm9yZSB3ZQor
ICAgIC8vICAgIGNoZWNrIG1fd2FsbENsb2NrRGVhZGxpbmUgYW5kIHJldHVybiBiZWxvdy4KKyAg
ICAvLworICAgIC8vIDIuIEEgc3RhbGUgdGltZXIgZmlyZXMganVzdCBiZWZvcmUgbV93YWxsQ2xv
Y2tEZWFkbGluZSBleHBpcmVzLgorICAgIC8vICAgIEJlZm9yZSB0aGUgd2F0Y2hkb2cgY2FuIGdl
dHMgdG8gdGhlIGNsZWFyaW5nIG1fdGltZXJEaWRGaXJlIGFib3ZlLCB0aGUgbGVnaXQgdGltZXIg
YWxzbyBmaXJlcy4KKyAgICAvLworICAgIC8vICAgIEluIHRoaXMgY2FzZSwgbV90aW1lckRpZEZp
cmUgd2FzIHNldCB0d2ljZSBieSB0aGUgMiB0aW1lcnMsIGJ1dCB3ZSBvbmx5IGNsZWFyIG5lZWQg
dG8gY2xlYXIKKyAgICAvLyAgICBpdCBvbmNlLiBUaGUgbV93YWxsQ2xvY2tEZWFkbGluZSBiZWxv
dyB3aWxsIHBhc3MgYW5kIHRoaXMgaW52b2NhdGlvbiBvZiBkaWRGaXJlU2xvdygpIHdpbGwKKyAg
ICAvLyAgICBiZSB0cmVhdGVkIGFzIHRoZSByZXNwb25zZSB0byB0aGUgbGVnaXQgdGltZXIuIFRo
ZSBzcHVyaW91cyB0aW1lciBpcyBlZmZlY3RpdmVseSBpZ25vcmVkLgorICAgIC8vCisgICAgLy8g
My4gQSBzdGF0ZSB0aW1lciBmaXJlcyBqdXN0IGJlZm9yZSBtX3dhbGxDbG9ja0RlYWRsaW5lIGV4
cGlyZXMuCisgICAgLy8gICAgUmlnaHQgYWZ0ZXIgdGhlIHdhdGNoZG9nIGNsZWFycyBtX3RpbWVy
RGlkRmlyZSBhYm92ZSwgdGhlIGxlZ2l0IHRpbWVyIGFsc28gZmlyZXMuCisgICAgLy8KKyAgICAv
LyAgICBUaGUgZmFjdCB0aGF0IHRoZSBsZWdpdCB0aW1lciBmYWlscyBtZWFucyB0aGF0IHRoZSBt
X3dhbGxDbG9ja0RlYWRsaW5lIGNoZWNrIHdpbGwgcGFzcy4KKyAgICAvLyAgICBBcyBsb25nIGFz
IHdlIGNsZWFyIG1fdGltZXJEaWRGaXJlIGJlZm9yZSB3ZSBkbyB0aGUgY2hlY2ssIHdlIGFyZSBz
YWZlLiBUaGlzIGlzIHRoZSBzYW1lCisgICAgLy8gICAgc2NlbmFyaW8gYXMgMiBhYm92ZS4KKyAg
ICAvLworICAgIC8vIDQuIEEgc3RhbGUgdGltZXIgZmlyZXMganVzdCBiZWZvcmUgbV93YWxsQ2xv
Y2tEZWFkbGluZSBleHBpcmVzLgorICAgIC8vICAgIFJpZ2h0IGFmdGVyIHdlIGRvIHRoZSBtX3dh
bGxDbG9ja0RlYWRsaW5lIGNoZWNrIGJlbG93LCB0aGUgbGVnaXQgdGltZXIgZmlyZXMuCisgICAg
Ly8KKyAgICAvLyAgICBUaGUgZmFjdCB0aGF0IHRoZSBsZWdpdCB0aW1lciBmaXJlcyBhZnRlciB0
aGUgbV93YWxsQ2xvY2tEZWFkbGluZSBjaGVjayBtZWFucyB0aGF0CisgICAgLy8gICAgdGhlIG1f
d2FsbENsb2NrRGVhZGxpbmUgY2hlY2sgd2lsbCBoYXZlIGZhaWxlZC4gVGhpcyBpcyB0aGUgc2Ft
ZSBzY2VuYXJpbyBhcyAxIGFib3ZlLgorICAgIC8vCisgICAgLy8gNS4gQSBsZWdpdCB0aW1lciBm
aXJlcy4KKyAgICAvLyAgICBBIHN0YWxlIHRpbWVyIGFsc28gZmlyZXMgYmVmb3JlIHdlIGNsZWFy
IG1fdGltZXJEaWRGaXJlIGFib3ZlLgorICAgIC8vCisgICAgLy8gICAgVGhpcyBpcyB0aGUgc2Ft
ZSBzY2VuYXJpbyBhcyAyIGFib3ZlLgorICAgIC8vCisgICAgLy8gNi4gQSBsZWdpdCB0aW1lciBm
aXJlcy4KKyAgICAvLyAgICBBIHN0YWxlIHRpbWVyIGZpcmVzIHJpZ2h0IGFmdGVyIHdlIGNsZWFy
IG1fdGltZXJEaWRGaXJlIGFib3ZlLgorICAgIC8vCisgICAgLy8gICAgSW4gdGhpcyBjYXNlLCB0
aGUgbV93YWxsQ2xvY2tEZWFkbGluZSBjaGVjayB3aWxsIHBhc3MsIGFuZCB3ZSBmaXJlIHRoZSB3
YXRjaGRvZworICAgIC8vICAgIHRob3VnaCBtX3RpbWVyRGlkRmlyZSByZW1haW5zIHNldC4gVGhp
cyBqdXN0IG1lYW5zIHRoYXQgZGlkRmlyZVNsb3coKSB3aWxsIGJlIGNhbGxlZCBhZ2FpbiBkdWUK
KyAgICAvLyAgICB0byBtX3RpbWVyRGlkRmlyZSBiZWluZyBzZXQuIFRoZSBzdWJzZXF1ZW50IGlu
dm9jYXRpb24gb2YgZGlkRmlyZVNsb3coKSB3aWxsIGVuZCB1cCBoYW5kbGluZworICAgIC8vICAg
IHRoZSBzdGFsZSB0aW1lciBhbmQgaWdub3JpbmcgaXQuIFRoaXMgaXMgdGhlIHNhbWUgc2NlbmFy
aW8gYXMgMSBhYm92ZS4KKyAgICAvLworICAgIC8vIDcuIEEgbGVnaXQgdGltZXIgZmlyZXMuCisg
ICAgLy8gICAgQSBzdGFsZSB0aW1lciBmaXJlcyByaWdodCBhZnRlciB3ZSBkbyB0aGUgbV93YWxs
Q2xvY2tEZWFkbGluZSBjaGVjay4KKyAgICAvLworICAgIC8vICAgIFRoaXMgaXMgdGhlIHNhbWUg
YXMgNiwgd2hpY2ggbWVhbnMgaXQncyB0aGUgc2FtZSBhcyAxIGFib3ZlLgorICAgIC8vCisgICAg
Ly8gSW4gYWxsIHRoZXNlIGNhc2VzLCB3ZSBqdXN0IG5lZWQgdG8gZW5zdXJlIHRoYXQgd2UgY2xl
YXIgbV90aW1lckRpZEZpcmUgYmVmb3JlIHdlIGRvIHRoZQorICAgIC8vIG1fd2FsbENsb2NrRGVh
ZGxpbmUgY2hlY2sgYmVsb3cuIEhlbmNlLCBhIHN0b3JlTG9hZCBmZW5jZSBpcyBuZWVkZWQgdG8g
ZW5zdXJlIHRoYXQgdGhlc2UgMgorICAgIC8vIG9wZXJhdGlvbnMgZG8gbm90IGdldCByZS1vcmRl
cmVkLgorCisgICAgV1RGOjpzdG9yZUxvYWRGZW5jZSgpOworCisgICAgaWYgKGN1cnJlbnRXYWxs
Q2xvY2tUaW1lKCkgPCBtX3dhbGxDbG9ja0RlYWRsaW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7
IC8vIEp1c3QgYSBzdGFsZSB0aW1lciBmaXJpbmcuIE5vdGhpbmcgdG8gZG8uCisKKyAgICBtX3dh
bGxDbG9ja0RlYWRsaW5lID0gbm9UaW1lTGltaXQ7CisKKyAgICBpZiAoY3VycmVudENQVVRpbWUo
KSA+PSBtX2NwdURlYWRsaW5lKSB7CiAgICAgICAgIC8vIENhc2UgMTogdGhlIGFsbG93ZWQgQ1BV
IHRpbWUgaGFzIGVsYXBzZWQuCiAKICAgICAgICAgLy8gSWYgbV9jYWxsYmFjayBpcyBub3Qgc2V0
LCB0aGVuIHdlIHRlcm1pbmF0ZSBieSBkZWZhdWx0LgpAQCAtMTEyLDI3ICsxNzMsMzIgQEAgYm9v
bCBXYXRjaGRvZzo6ZGlkRmlyZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIFRoZSBtX2NhbGxiYWNrIG1heSBoYXZlIHNl
dCBhIG5ldyBsaW1pdC4gU28sIHdlIG1heSBuZWVkIHRvIHJlc3RhcnQKLSAgICAgICAgLy8gdGhl
IGNvdW50ZG93bi4KLSAgICAgICAgc3RhcnRDb3VudGRvd25JZk5lZWRlZCgpOworICAgICAgICAv
LyBJZiB3ZSBnZXQgaGVyZSwgdGhlbiB0aGUgY2FsbGJhY2sgYWJvdmUgZGlkIG5vdCB3YW50IHRv
IHRlcm1pbmF0ZSBleGVjdXRpb24uIEFzIGEKKyAgICAgICAgLy8gcmVzdWx0LCB0aGUgY2FsbGJh
Y2sgbWF5IGhhdmUgZG9uZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgLy8gICAxLiBj
bGVhcmVkIHRoZSB0aW1lIGxpbWl0IChpLmUuIHdhdGNoZG9nIGlzIGRpc2FibGVkKSwKKyAgICAg
ICAgLy8gICAyLiBzZXQgYSBuZXcgdGltZSBsaW1pdCB2aWEgV2F0Y2hkb2c6OnNldFRpbWVMaW1p
dCgpLCBvcgorICAgICAgICAvLyAgIDMuIGRpZCBub3RoaW5nIChpLmUuIGFsbG93IGFub3RoZXIg
Y3ljbGUgb2YgdGhlIGN1cnJlbnQgdGltZSBsaW1pdCkuCisgICAgICAgIC8vCisgICAgICAgIC8v
IEluIHRoZSBjYXNlIG9mIDEsIHdlIGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcuCisgICAgICAg
IC8vIEluIHRoZSBjYXNlIG9mIDIsIFdhdGNoZG9nOjpzZXRUaW1lTGltaXQoKSB3b3VsZCBhbHJl
YWR5IGhhdmUgc3RhcnRlZCB0aGUgdGltZXIuCisgICAgICAgIC8vIEluIHRoZSBjYXNlIG9mIDMs
IHdlIG5lZWQgdG8gcmUtc3RhcnQgdGhlIHRpbWVyIGhlcmUuCisKKyAgICAgICAgQVNTRVJUKG1f
aGFzRW50ZXJlZFZNKTsKKyAgICAgICAgaWYgKGhhc1RpbWVMaW1pdCgpICYmICFoYXNTdGFydGVk
VGltZXIoKSkKKyAgICAgICAgICAgIHN0YXJ0VGltZXIobV90aW1lTGltaXQpOwogCiAgICAgfSBl
bHNlIHsKICAgICAgICAgLy8gQ2FzZSAyOiB0aGUgYWxsb3dlZCBDUFUgdGltZSBoYXMgTk9UIGVs
YXBzZWQuCi0KLSAgICAgICAgLy8gVGVsbCB0aGUgdGltZXIgdG8gYWxhcm0gdXMgYWdhaW4gd2hl
biBpdCB0aGlua3Mgd2UndmUgcmVhY2hlZCB0aGUKLSAgICAgICAgLy8gZW5kIG9mIHRoZSBhbGxv
d2VkIHRpbWUuCi0gICAgICAgIGF1dG8gcmVtYWluaW5nQ1BVVGltZSA9IG1fdGltZW91dFBlcmlv
ZCAtIHRvdGFsRWxhcHNlZENQVVRpbWU7Ci0gICAgICAgIG1fZWxhcHNlZENQVVRpbWUgPSB0b3Rh
bEVsYXBzZWRDUFVUaW1lOwotICAgICAgICBtX3N0YXJ0Q1BVVGltZSA9IGN1cnJlbnRUaW1lOwot
ICAgICAgICBzdGFydENvdW50ZG93bihyZW1haW5pbmdDUFVUaW1lKTsKKyAgICAgICAgYXV0byBy
ZW1haW5pbmdDUFVUaW1lID0gbV9jcHVEZWFkbGluZSAtIGN1cnJlbnRDUFVUaW1lKCk7CisgICAg
ICAgIHN0YXJ0VGltZXIocmVtYWluaW5nQ1BVVGltZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1ib29sIFdhdGNoZG9nOjppc0VuYWJsZWQoKQorYm9vbCBXYXRjaGRvZzo6aGFz
VGltZUxpbWl0KCkKIHsKLSAgICByZXR1cm4gKG1fdGltZW91dFBlcmlvZCAhPSBOT19MSU1JVCk7
CisgICAgcmV0dXJuIChtX3RpbWVMaW1pdCAhPSBub1RpbWVMaW1pdCk7CiB9CiAKIHZvaWQgV2F0
Y2hkb2c6OmZpcmUoKQpAQCAtMTQwLDQ5ICsyMDYsNTEgQEAgdm9pZCBXYXRjaGRvZzo6ZmlyZSgp
CiAgICAgbV9kaWRGaXJlID0gdHJ1ZTsKIH0KIAotdm9pZCBXYXRjaGRvZzo6YXJtKCkKK3ZvaWQg
V2F0Y2hkb2c6OmVudGVyZWRWTSgpCiB7Ci0gICAgbV9yZWVudHJ5Q291bnQrKzsKLSAgICBpZiAo
bV9yZWVudHJ5Q291bnQgPT0gMSkKLSAgICAgICAgc3RhcnRDb3VudGRvd25JZk5lZWRlZCgpOwor
ICAgIG1faGFzRW50ZXJlZFZNID0gdHJ1ZTsKKyAgICBpZiAoaGFzVGltZUxpbWl0KCkpCisgICAg
ICAgIHN0YXJ0VGltZXIobV90aW1lTGltaXQpOwogfQogCi12b2lkIFdhdGNoZG9nOjpkaXNhcm0o
KQordm9pZCBXYXRjaGRvZzo6ZXhpdGVkVk0oKQogewotICAgIEFTU0VSVChtX3JlZW50cnlDb3Vu
dCA+IDApOwotICAgIGlmIChtX3JlZW50cnlDb3VudCA9PSAxKQotICAgICAgICBzdG9wQ291bnRk
b3duKCk7Ci0gICAgbV9yZWVudHJ5Q291bnQtLTsKKyAgICBBU1NFUlQobV9oYXNFbnRlcmVkVk0p
OworICAgIHN0b3BUaW1lcigpOworICAgIG1faGFzRW50ZXJlZFZNID0gZmFsc2U7CiB9CiAKLXZv
aWQgV2F0Y2hkb2c6OnN0YXJ0Q291bnRkb3duSWZOZWVkZWQoKQordm9pZCBXYXRjaGRvZzo6c3Rh
cnRUaW1lcihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIHRpbWVMaW1pdCkKIHsKLSAgICBpZiAo
IW1faXNTdG9wcGVkKQotICAgICAgICByZXR1cm47IC8vIEFscmVhZHkgc3RhcnRlZC4KKyAgICBB
U1NFUlQobV9oYXNFbnRlcmVkVk0pOworICAgIEFTU0VSVChoYXNUaW1lTGltaXQoKSk7CiAKLSAg
ICBpZiAoIWlzQXJtZWQoKSkKLSAgICAgICAgcmV0dXJuOyAvLyBOb3QgZXhlY3V0aW5nIEpTIHNj
cmlwdC4gTm8gbmVlZCB0byBzdGFydC4KKyAgICBtX2NwdURlYWRsaW5lID0gY3VycmVudENQVVRp
bWUoKSArIHRpbWVMaW1pdDsKKyAgICBhdXRvIHdhbGxDbG9ja1RpbWUgPSBjdXJyZW50V2FsbENs
b2NrVGltZSgpOworICAgIGF1dG8gd2FsbENsb2NrRGVhZGxpbmUgPSB3YWxsQ2xvY2tUaW1lICsg
dGltZUxpbWl0OwogCi0gICAgaWYgKGlzRW5hYmxlZCgpKSB7Ci0gICAgICAgIG1fZWxhcHNlZENQ
VVRpbWUgPSBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzOjp6ZXJvKCk7Ci0gICAgICAgIG1fc3Rh
cnRDUFVUaW1lID0gY3VycmVudENQVVRpbWUoKTsKLSAgICAgICAgc3RhcnRDb3VudGRvd24obV90
aW1lb3V0UGVyaW9kKTsKKyAgICBpZiAoKHdhbGxDbG9ja1RpbWUgPCBtX3dhbGxDbG9ja0RlYWRs
aW5lKQorICAgICAgICAmJiAobV93YWxsQ2xvY2tEZWFkbGluZSA8PSB3YWxsQ2xvY2tEZWFkbGlu
ZSkpIHsKKyAgICAgICAgcmV0dXJuOyAvLyBXYWl0IGZvciB0aGUgY3VycmVudCBhY3RpdmUgdGlt
ZXIgdG8gZXhwaXJlIGJlZm9yZSBzdGFydGluZyBhIG5ldyBvbmUuCiAgICAgfQotfQogCi12b2lk
IFdhdGNoZG9nOjpzdGFydENvdW50ZG93bihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0
KQotewotICAgIEFTU0VSVChtX2lzU3RvcHBlZCk7Ci0gICAgbV9pc1N0b3BwZWQgPSBmYWxzZTsK
LSAgICBzdGFydFRpbWVyKGxpbWl0KTsKKyAgICAvLyBFbHNlLCB0aGUgY3VycmVudCBhY3RpdmUg
dGltZXIgd29uJ3QgZmlyZSBzb29uIGVub3VnaC4gU28sIHN0YXJ0IGEgbmV3IHRpbWVyLgorICAg
IHRoaXMtPnJlZigpOyAvLyBtX3RpbWVySGFuZGxlciB3aWxsIGRlcmVmIHRvIG1hdGNoIGxhdGVy
LgorICAgIG1fd2FsbENsb2NrRGVhZGxpbmUgPSB3YWxsQ2xvY2tEZWFkbGluZTsKKyAgICBtX3Rp
bWVyRGlkRmlyZSA9IGZhbHNlOworCisgICAgLy8gV2UgY2xlYXIgbV90aW1lckRpZEZpcmUgYmVj
YXVzZSB3ZSdyZSBzdGFydGluZyBhIG5ldyB0aW1lci4gSG93ZXZlciwgd2UgbmVlZCB0byBtYWtl
IHN1cmUKKyAgICAvLyB0aGF0IHRoZSBjbGVhcmluZyBvY2N1cnMgYmVmb3JlIHRoZSB0aW1lciB0
aHJlYWQgaXMgc3RhcnRlZC4gVGhlcmVhZnRlciwgb25seSBkaWRGaXJlU2xvdygpCisgICAgLy8g
c2hvdWxkIGNsZWFyIG1fdGltZXJEaWRGaXJlICh1bmxlc3Mgd2Ugc3RhcnQgeWV0IGFub3RoZXIg
dGltZXIpLiBIZW5jZSwgd2UgbmVlZCBhIHN0b3JlU3RvcmUKKyAgICAvLyBmZW5jZSBoZXJlIHRv
IGVuc3VyZSB0aGVzZSBvcGVyYXRpb25zIGRvIG5vdCBnZXQgcmUtb3JkZXJlZC4KKyAgICBXVEY6
OnN0b3JlU3RvcmVGZW5jZSgpOworCisgICAgbV90aW1lclF1ZXVlLT5kaXNwYXRjaEFmdGVyKHN0
ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyh0aW1lTGltaXQpLCBtX3RpbWVySGFuZGxlcik7CiB9CiAK
LXZvaWQgV2F0Y2hkb2c6OnN0b3BDb3VudGRvd24oKQordm9pZCBXYXRjaGRvZzo6c3RvcFRpbWVy
KCkKIHsKLSAgICBpZiAobV9pc1N0b3BwZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBzdG9wVGlt
ZXIoKTsKLSAgICBtX2lzU3RvcHBlZCA9IHRydWU7CisgICAgbV9jcHVEZWFkbGluZSA9IG5vVGlt
ZUxpbWl0OwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dhdGNoZG9nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsMzEgKzI2LDQw
IEBACiAjaWZuZGVmIFdhdGNoZG9nX2gKICNkZWZpbmUgV2F0Y2hkb2dfaAogCi0jaWYgT1MoREFS
V0lOKQotI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+ICAgIAotI2VuZGlmCisjaW5jbHVk
ZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KIAogbmFtZXNwYWNlIEpT
QyB7CiAKIGNsYXNzIEV4ZWNTdGF0ZTsKIGNsYXNzIFZNOwogCi1jbGFzcyBXYXRjaGRvZyB7Citj
bGFzcyBXYXRjaGRvZyA6IHB1YmxpYyBXVEY6OlRocmVhZFNhZmVSZWZDb3VudGVkPFdhdGNoZG9n
PiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgY2xhc3MgU2Nv
cGU7CiAKICAgICBXYXRjaGRvZygpOwotICAgIH5XYXRjaGRvZygpOwogCiAgICAgdHlwZWRlZiBi
b29sICgqU2hvdWxkVGVybWluYXRlQ2FsbGJhY2spKEV4ZWNTdGF0ZSosIHZvaWQqIGRhdGExLCB2
b2lkKiBkYXRhMik7CiAgICAgdm9pZCBzZXRUaW1lTGltaXQoVk0mLCBzdGQ6OmNocm9ubzo6bWlj
cm9zZWNvbmRzIGxpbWl0LCBTaG91bGRUZXJtaW5hdGVDYWxsYmFjayA9IDAsIHZvaWQqIGRhdGEx
ID0gMCwgdm9pZCogZGF0YTIgPSAwKTsKIAogICAgIC8vIFRoaXMgdmVyc2lvbiBvZiBkaWRGaXJl
KCkgd2lsbCBjaGVjayB0aGUgZWxhcHNlZCBDUFUgdGltZSBhbmQgY2FsbCB0aGUKICAgICAvLyBj
YWxsYmFjayAoaWYgbmVlZGVkKSB0byBkZXRlcm1pbmUgaWYgdGhlIHdhdGNoZG9nIHNob3VsZCBm
aXJlLgotICAgIGJvb2wgZGlkRmlyZShFeGVjU3RhdGUqKTsKKyAgICBib29sIGRpZEZpcmUoRXhl
Y1N0YXRlKiBleGVjKQorICAgIHsKKyAgICAgICAgaWYgKG1fZGlkRmlyZSkKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICBpZiAoIW1fdGltZXJEaWRGaXJlKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gZGlkRmlyZVNsb3coZXhlYyk7CisgICAgfQog
Ci0gICAgYm9vbCBpc0VuYWJsZWQoKTsKKyAgICBib29sIGhhc1RpbWVMaW1pdCgpOworICAgIHZv
aWQgZW50ZXJlZFZNKCk7CisgICAgdm9pZCBleGl0ZWRWTSgpOwogCiAgICAgLy8gVGhpcyB2ZXJz
aW9uIG9mIGRpZEZpcmUoKSBpcyBhIG1vcmUgZWZmaWNpZW50IHZlcnNpb24gZm9yIHdoZW4gd2Ug
d2FudAogICAgIC8vIHRvIGtub3cgaWYgdGhlIHdhdGNoZG9nIGhhcyBmaXJlZCBpbiB0aGUgcGFz
dCwgYW5kIG5vdCB3aGV0aGVyIGl0IHNob3VsZApAQCAtNjAsMjEgKzY5LDE3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQqIHRpbWVyRGlkRmlyZUFkZHJlc3MoKSB7IHJldHVybiAmbV90aW1lckRpZEZp
cmU7IH0KIAorICAgIHN0YXRpYyBjb25zdCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIG5vVGlt
ZUxpbWl0OworCiBwcml2YXRlOgotICAgIHZvaWQgYXJtKCk7Ci0gICAgdm9pZCBkaXNhcm0oKTsK
LSAgICB2b2lkIHN0YXJ0Q291bnRkb3duSWZOZWVkZWQoKTsKLSAgICB2b2lkIHN0YXJ0Q291bnRk
b3duKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbGltaXQpOwotICAgIHZvaWQgc3RvcENvdW50
ZG93bigpOwotICAgIGJvb2wgaXNBcm1lZCgpIHsgcmV0dXJuICEhbV9yZWVudHJ5Q291bnQ7IH0K
LQotICAgIC8vIFBsYXRmb3JtIHNwZWNpZmljIHRpbWVyIGltcGxlbWVudGF0aW9uOgotICAgIHZv
aWQgaW5pdFRpbWVyKCk7Ci0gICAgdm9pZCBkZXN0cm95VGltZXIoKTsKLSAgICB2b2lkIHN0YXJ0
VGltZXIoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBsaW1pdCk7CisgICAgdm9pZCBzdGFydFRp
bWVyKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgdGltZUxpbWl0KTsKICAgICB2b2lkIHN0b3BU
aW1lcigpOwogCi0gICAgLy8gbV90aW1lckRpZEZpcmUgKGFib3ZlKSBpbmRpY2F0ZXMgd2hldGhl
ciB0aGUgdGltZXIgZmlyZWQuIFRoZSBXYXRjaGRvZworICAgIGlubGluZSBib29sIGhhc1N0YXJ0
ZWRUaW1lcigpOworCisgICAgYm9vbCBkaWRGaXJlU2xvdyhFeGVjU3RhdGUqKTsKKworICAgIC8v
IG1fdGltZXJEaWRGaXJlIGluZGljYXRlcyB3aGV0aGVyIHRoZSB0aW1lciBmaXJlZC4gVGhlIFdh
dGNoZG9nCiAgICAgLy8gc3RpbGwgbmVlZHMgdG8gY2hlY2sgaWYgdGhlIGFsbG93ZWQgQ1BVIHRp
bWUgaGFzIGVsYXBzZWQuIElmIHNvLCB0aGVuCiAgICAgLy8gdGhlIFdhdGNoZG9nIGZpcmVzIGFu
ZCBtX2RpZEZpcmUgd2lsbCBiZSBzZXQuCiAgICAgLy8gTk9URTogbV90aW1lckRpZEZpcmUgaXMg
b25seSBzZXQgYnkgdGhlIHBsYXRmb3JtIHNwZWNpZmljIHRpbWVyCkBAIC04Miw0NyArODcsMjMg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fdGltZXJEaWRGaXJlOwogICAgIGJvb2wgbV9kaWRGaXJl
OwogCi0gICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBtX3RpbWVvdXRQZXJpb2Q7Ci0gICAg
c3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBtX3N0YXJ0Q1BVVGltZTsKLSAgICBzdGQ6OmNocm9u
bzo6bWljcm9zZWNvbmRzIG1fZWxhcHNlZENQVVRpbWU7CisgICAgc3RkOjpjaHJvbm86Om1pY3Jv
c2Vjb25kcyBtX3RpbWVMaW1pdDsKKworICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbV9j
cHVEZWFkbGluZTsKKyAgICBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIG1fd2FsbENsb2NrRGVh
ZGxpbmU7CiAKLSAgICBpbnQgbV9yZWVudHJ5Q291bnQ7Ci0gICAgYm9vbCBtX2lzU3RvcHBlZDsK
KyAgICBib29sIG1faGFzRW50ZXJlZFZNIHsgZmFsc2UgfTsKIAogICAgIFNob3VsZFRlcm1pbmF0
ZUNhbGxiYWNrIG1fY2FsbGJhY2s7CiAgICAgdm9pZCogbV9jYWxsYmFja0RhdGExOwogICAgIHZv
aWQqIG1fY2FsbGJhY2tEYXRhMjsKIAotI2lmIE9TKERBUldJTikgJiYgIVBMQVRGT1JNKEVGTCkg
JiYgIVBMQVRGT1JNKEdUSykKLSAgICBkaXNwYXRjaF9xdWV1ZV90IG1fcXVldWU7Ci0gICAgZGlz
cGF0Y2hfc291cmNlX3QgbV90aW1lcjsKLSNlbmRpZgorICAgIFJlZjxXb3JrUXVldWU+IG1fdGlt
ZXJRdWV1ZTsKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IG1fdGltZXJIYW5kbGVyOwogCi0g
ICAgZnJpZW5kIGNsYXNzIFdhdGNoZG9nOjpTY29wZTsKICAgICBmcmllbmQgY2xhc3MgTExJbnRP
ZmZzZXRzRXh0cmFjdG9yOwogfTsKIAotY2xhc3MgV2F0Y2hkb2c6OlNjb3BlIHsKLXB1YmxpYzoK
LSAgICBTY29wZShXYXRjaGRvZyogd2F0Y2hkb2cpCi0gICAgICAgIDogbV93YXRjaGRvZyh3YXRj
aGRvZykKLSAgICB7Ci0gICAgICAgIGlmICghd2F0Y2hkb2cpCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIG1fd2F0Y2hkb2ctPmFybSgpOwotICAgIH0KLSAgICAKLSAgICB+U2NvcGUoKQot
ICAgIHsKLSAgICAgICAgaWYgKCFtX3dhdGNoZG9nKQotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICBtX3dhdGNoZG9nLT5kaXNhcm0oKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgV2F0Y2hk
b2cqIG1fd2F0Y2hkb2c7Ci19OwotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIFdh
dGNoZG9nX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTWFj
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRv
Z01hYy5jcHAJKHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dhdGNoZG9nTWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3MiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJXYXRjaGRvZy5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotdm9pZCBX
YXRjaGRvZzo6aW5pdFRpbWVyKCkKLXsKLSAgICBtX3F1ZXVlID0gMDsKLSAgICBtX3RpbWVyID0g
MDsKLX0KLQotdm9pZCBXYXRjaGRvZzo6ZGVzdHJveVRpbWVyKCkKLXsKLSAgICBBU1NFUlQoIW1f
dGltZXIpOwotICAgIGlmIChtX3F1ZXVlKQotICAgICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fcXVl
dWUpOwotfQotCi12b2lkIFdhdGNoZG9nOjpzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNyb3Nl
Y29uZHMgbGltaXQpCi17Ci0gICAgQVNTRVJUKCFtX3RpbWVyKTsKLSAgICBpZiAoIW1fcXVldWUp
Ci0gICAgICAgIG1fcXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoImpzYy53YXRjaGRvZy5x
dWV1ZSIsIDApOwotICAgIG1fdGltZXIgPSBkaXNwYXRjaF9zb3VyY2VfY3JlYXRlKERJU1BBVENI
X1NPVVJDRV9UWVBFX1RJTUVSLCAwLCAwLCBtX3F1ZXVlKTsKLQotICAgIGRpc3BhdGNoX3NvdXJj
ZV9zZXRfdGltZXIobV90aW1lciwKLSAgICAgICAgZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1F
X05PVywgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzKGxpbWl0KS5jb3VudCgpKSwKLSAgICAgICAg
RElTUEFUQ0hfVElNRV9GT1JFVkVSLCAwKTsKLQotICAgIGRpc3BhdGNoX3NvdXJjZV9zZXRfZXZl
bnRfaGFuZGxlcihtX3RpbWVyLCBeewotICAgICAgICBtX3RpbWVyRGlkRmlyZSA9IHRydWU7Ci0g
ICAgfSk7Ci0KLSAgICBkaXNwYXRjaF9yZXN1bWUobV90aW1lcik7Ci19Ci0KLXZvaWQgV2F0Y2hk
b2c6OnN0b3BUaW1lcigpCi17Ci0gICAgQVNTRVJUKG1fcXVldWUpOwotICAgIGRpc3BhdGNoX3N5
bmMobV9xdWV1ZSwgXnsKLSAgICAgICAgZGlzcGF0Y2hfc291cmNlX2NhbmNlbChtX3RpbWVyKTsK
LSAgICB9KTsKLSAgICBkaXNwYXRjaF9yZWxlYXNlKG1fdGltZXIpOwotICAgIG1fdGltZXIgPSAw
OwotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dhdGNoZG9nTm9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2F0Y2hkb2dOb25lLmNwcAkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2dOb25lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXYXRjaGRvZy5oIgotCi1uYW1l
c3BhY2UgSlNDIHsKLQotLy8gVGhpcyBpcyBhIHN0dWIgZm9yIHBsYXRmb3JtcyB0aGF0IGhhdmUg
bm90IGltcGxlbWVudGVkIHRoaXMgZnVuY3Rpb25hbGl0eS4KLS8vIEluIHRoaXMgY2FzZSwgdGhl
IHBsYXRmb3JtIHRpbWVyIGhlcmUgbmV2ZXIgZmlyZXMuCi0KLXZvaWQgV2F0Y2hkb2c6OmluaXRU
aW1lcigpCi17Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OmRlc3Ryb3lUaW1lcigpCi17Ci19Ci0KLXZv
aWQgV2F0Y2hkb2c6OnN0YXJ0VGltZXIoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcykKLXsKLX0K
LQotdm9pZCBXYXRjaGRvZzo6c3RvcFRpbWVyKCkKLXsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlND
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODgzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxNS0wOC0xMSAgTWFyayBM
YW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gSmF2YVNj
cmlwdCB3YXRjaGRvZyB1c2luZyBXVEY6OldvcmtRdWV1ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzEwNworCisgICAgICAgIFJldmlld2VkIGJ5
IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHdlJ3JlIG5v
dCBpbnRyb2R1Y2luZyBhbnkgYmVoYXZpb3IgY2hhbmdlIHRvIFdlYkNvcmUgaGVyZS4KKyAgICAg
ICAgV2UncmUgb25seSAjaW5jbHVkZSdpbmcgV2F0Y2hkb2cuaCBkaXJlY3RseSBpbnN0ZWFkIG9m
IGdvaW5nIHRocm91Z2ggVk0uaC4KKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRp
bWUvV2F0Y2hkb2cuaDogQWRkZWQuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAg
ICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmNwcDoKKwogMjAxNS0wOC0xMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIERpc2Nvbm5lY3QgTGF5b3V0U3RhdGVEaXNhYmxlciBsb2dpYyBhbmQg
UmVuZGVyVmlldyBwb2ludGVyLgpJbmRleDogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21h
a2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UJKHJldmlz
aW9uIDE4ODMyMykKKysrIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJF
Q1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvZWZsIgogICAgICIke1dFQkNPUkVfRElSfS9w
bHVnaW5zL2VmbCIKKyAgICAiJHtXVEZfRElSfS93dGYvZWZsIgogKQogCiBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1
bnRpbWUvV2F0Y2hkb2cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy9ydW50aW1lL1dhdGNoZG9nLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL1dhdGNoZG9nLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1dhdGNoZG9nX2gKKyNkZWZpbmUgV2Vi
Q29yZV9GV0RfV2F0Y2hkb2dfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1dhdGNoZG9nLmg+
CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjA0MzYsNiArMjA0MzYs
NyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGlt
ZVxTdHJ1Y3R1cmUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdI
ZWFkZXJzXHJ1bnRpbWVcU3RydWN0dXJlQ2hhaW4uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3ltYm9sVGFibGUuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV2F0Y2hkb2cu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRp
bWVcV2Vha0dDTWFwLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXFdyaXRlQmFycmllci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFyclxZYXJySklULmgiIC8+CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCShyZXZpc2lvbiAxODgzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTEyMTk4LDYgKzEyMTk4
LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRp
bWVcU3ltYm9sVGFibGUuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRp
bWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV2F0Y2hkb2cuaCI+CisgICAgICA8RmlsdGVyPkZv
cndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV2Vha0dDTWFw
LmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50
TGlzdGVuZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvVk1FbnRyeVNjb3BlLmg+CisjaW5j
bHVkZSA8cnVudGltZS9XYXRjaGRvZy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lv
biAxODgzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgPHJ1
bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNp
bmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvV2F0Y2hkb2cuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258807</attachid>
            <date>2015-08-11 22:51:42 -0700</date>
            <delta_ts>2015-08-11 22:51:42 -0700</delta_ts>
            <desc>patch for landing v2: fix up some comments.</desc>
            <filename>bug-147107b.patch</filename>
            <type>text/plain</type>
            <size>61001</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5NyBA
QAorMjAxNS0wOC0xMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
SW1wbGVtZW50YXRpb24gSmF2YVNjcmlwdCB3YXRjaGRvZyB1c2luZyBXVEY6OldvcmtRdWV1ZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzEwNwor
CisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIEhvdyB0aGUg
V2F0Y2hkb2cgd29ya3M/CisgICAgICAgID09PT09PT09PT09PT09PT09PT09PT0KKworICAgICAg
ICAxLiBXaGVuIGRvIHdlIHN0YXJ0IHRoZSBXYXRjaGRvZz8KKyAgICAgICAgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKyAgICAgICAgICAgVGhlIHdhdGNoZG9nIHNob3VsZCBvbmx5
IGJlIHN0YXJ0ZWQgaWYgYm90aCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHRydWU6Cisg
ICAgICAgICAgIDEuIEEgdGltZSBsaW1pdCBoYXMgYmVlbiBzZXQuCisgICAgICAgICAgIDIuIFdl
IGhhdmUgZW50ZXJlZCB0aGUgVk0uCisgCisgICAgICAgIDIuIENQVSB0aW1lIHZzIFdhbGwgQ2xv
Y2sgdGltZQorICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAgICAg
ICAgV2h5IGRvIHdlIG5lZWQgMiB0aW1lIGRlYWRsaW5lczogbV9jcHVEZWFkbGluZSBhbmQgbV93
YWxsQ2xvY2tEZWFkbGluZT8KKworICAgICAgICAgICBUaGUgd2F0Y2hkb2cgdXNlcyBXb3JrUXVl
dWUgZGlzcGF0Y2hBZnRlcigpIHRvIHF1ZXVlIGEgdGltZXIgdG8gbWVhc3VyZSB0aGUgd2F0Y2hk
b2cgdGltZQorICAgICAgICAgICBsaW1pdC4gV29ya1F1ZXVlIHRpbWVycyBtZWFzdXJlIHRpbWUg
aW4gbW9ub3RvbmljIHdhbGwgY2xvY2sgdGltZS4gbV93YWxsQ2xvY2tEZWFkbGluZQorICAgICAg
ICAgICBpbmRpY2F0ZXMgdGhlIHdhbGwgY2xvY2sgdGltZSBwb2ludCB3aGVuIHRoZSBXb3JrUXVl
dWUgdGltZXIgaXMgZXhwZWN0ZWQgdG8gZmlyZS4KKworICAgICAgICAgICBUaGUgdGltZSBsaW1p
dCBmb3Igd2hpY2ggd2UgYWxsb3cgSlMgY29kZSB0byBydW4gc2hvdWxkIGJlIG1lYXN1cmVkIGlu
IENQVSB0aW1lLCB3aGljaCBjYW4KKyAgICAgICAgICAgZGlmZmVyIGZyb20gd2FsbCBjbG9jayB0
aW1lLiAgbV9jcHVEZWFkbGluZSBpbmRpY2F0ZXMgdGhlIENQVSB0aW1lIHBvaW50IHdoZW4gdGhl
IHdhdGNoZG9nCisgICAgICAgICAgIHNob3VsZCBmaXJlLgorCisgICAgICAgICAgIE5vdGU6IHRo
ZSB0aW1lciBmaXJpbmcgaXMgbm90IHRoZSBzYW1lIHRoaW5nIGFzIHRoZSB3YXRjaGRvZyBmaXJp
bmcuICBXaGVuIHRoZSB0aW1lciBmaXJlcywKKyAgICAgICAgICAgd2UgbmVlZCB0byBjaGVjayBp
ZiBtX2NwdURlYWRsaW5lIGhhcyBiZWVuIHJlYWNoZWQuCisKKyAgICAgICAgICAgSWYgbV9jcHVE
ZWFkbGluZSBoYXMgYmVlbiByZWFjaGVkLCB0aGUgd2F0Y2hkb2cgaXMgY29uc2lkZXJlZCB0byBo
YXZlIGZpcmVkLgorCisgICAgICAgICAgIElmIG5vdCwgdGhlbiB3ZSBoYXZlIGEgcmVtYWluaW5n
IGFtb3VudCBvZiBDUFUgdGltZSwgVHJlbWFpbmRlciwgdGhhdCB3ZSBzaG91bGQgYWxsb3cgSlMK
KyAgICAgICAgICAgY29kZSB0byBjb250aW51ZSB0byBydW4gZm9yLiAgSGVuY2UsIHdlIG5lZWQg
dG8gc3RhcnQgYSBuZXcgdGltZXIgdG8gZmlyZSBhZ2FpbiBhZnRlcgorICAgICAgICAgICBUcmVt
YWluZGVyIG1pY3Jvc2Vjb25kcy4KKyAgICAKKyAgICAgICAgICAgU2VlIFdhdGNoZG9nOjpkaWRG
aXJlU2xvdygpLgorCisgICAgICAgIDMuIFNwdXJpb3VzIHdha2UgdXBzCisgICAgICAgICAgID09
PT09PT09PT09PT09PT09CisgICAgICAgICAgIEJlY2F1c2UgdGhlIFdvcmtRdWV1ZSB0aW1lciBj
YW5ub3QgYmUgY2FuY2VsbGVkLCB0aGUgd2F0Y2hkb2cgbmVlZHMgdG8gaWdub3JlIHN0YWxlIHRp
bWVycy4KKyAgICAgICAgICAgSXQgZG9lcyB0aGlzIGJ5IGNoZWNraW5nIHRoZSBtX3dhbGxDbG9j
a0RlYWRsaW5lLiAgQSB3YWtldXAgdGhhdCBvY2N1cnMgcmlnaHQgYWZ0ZXIKKyAgICAgICAgICAg
bV93YWxsQ2xvY2tEZWFkbGluZSBleHBpcmVzIGlzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIHdha2V1
cCBmb3IgdGhlIGFjdGl2ZSB0aW1lci4gIEFsbCBvdGhlcgorICAgICAgICAgICB3YWtlIHVwcyBh
cmUgY29uc2lkZXJlZCB0byBiZSBzcHVyaW91cyBhbmQgd2lsbCBiZSBpZ25vcmVkLgorIAorICAg
ICAgICAgICBTZWUgV2F0Y2hkb2c6OmRpZEZpcmVTbG93KCkuCisgCisgICAgICAgIDQuIE1pbmlt
aXppbmcgVGltZXIgY3JlYXRpb24gY29zdAorICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICAgICAgICAgQ29uY2VwdHVhbGx5LCB3ZSBjb3VsZCBzdGFydCBhIG5l
dyB0aW1lciBldmVyeSB0aW1lIHdlIHN0YXJ0IHRoZSB3YXRjaGRvZy4gQnV0IHdlIGNhbiBkbyBi
ZXR0ZXIKKyAgICAgICAgICAgdGhhbiB0aGlzLgorIAorICAgICAgICAgICBJbiBwcmFjdGljZSwg
dGhlIHRpbWUgbGltaXQgb2YgYSB3YXRjaGRvZyB0ZW5kcyB0byBiZSBsb25nLCBhbmQgdGhlIGFt
b3VudCBvZiB0aW1lIGEgd2F0Y2hkb2cKKyAgICAgICAgICAgc3RheXMgYWN0aXZlIHRlbmRzIHRv
IGJlIHNob3J0IGZvciB3ZWxsLWJlaGF2ZWQgSlMgY29kZS4gVGhlIHVzZXIgYWxzbyB0ZW5kcyB0
byByZS11c2UgdGhlIHNhbWUKKyAgICAgICAgICAgdGltZSBsaW1pdC4gQ29uc2lkZXIgdGhlIGZv
bGxvd2luZyBleGFtcGxlOgorIAorICAgICAgICAgICAgICAgfC0tLXwtLS0tLXwtLS18LS0tLS0t
LS0tLS0tLS0tLXwtLS0tLS0tLS18CisgICAgICAgICAgICAgICB0MCAgdDEgICAgdDIgIHQzICAg
ICAgICAgICAgdDAgKyBMICAgIHQyICsgTCAKKworICAgICAgICAgICAgICAgfDwtLS0gVDEgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tPnwKKyAgICAgICAgICAgICAgICAgICAgICAgICB8PC0tLSBUMiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0+fAorICAgICAgICAgICAgICAgfDwtLSBUZCAtPnwgICAgICAg
ICAgICAgICAgICAgIHw8LS0gVGQgLT58CisKKyAgICAgICAgICAgMS4gVGhlIHVzZXIgaW5pdGlh
bGl6ZXMgdGhlIHdhdGNoZG9nIHdpdGggdGltZSBsaW1pdCBMLgorICAgICAgICAgICAyLiBBdCB0
MCwgd2UgZW50ZXIgdGhlIFZNIHRvIGV4ZWN1dGUgSlMgY29kZSwgYW5kIHN0YXJ0cyB0aGUgd2F0
Y2hkb2cgdGltZXIsIFQxLgorICAgICAgICAgICAgICBUaGUgdGltZXIgaXMgc2V0IHRvIGV4cGly
ZSBhdCB0MCArIEwuCisgICAgICAgICAgIDMuIEF0IHQxLCB3ZSBleGl0IHRoZSBWTS4KKyAgICAg
ICAgICAgNC4gQXQgdDIsIHdlIGVudGVyIHRoZSBWTSBhZ2FpbiwgYW5kIHdvdWxkIGxpa2UgdG8g
c3RhcnQgYSBuZXcgd2F0Y2hkb2cgdGltZXIsIFQyLgorICAgICAgICAgCisgICAgICAgICAgICAg
IEhvd2V2ZXIsIHdlIGNhbiBub3RlIHRoYXQgdGhlIGV4cGlyYXRpb24gdGltZSBmb3IgVDIgd291
bGQgYmUgYWZ0ZXIgdGhlIGV4cGlyYXRpb24gdGltZQorICAgICAgICAgICAgICBvZiBUMS4gU3Bl
Y2lmaWNhbGx5LCBUMiB3b3VsZCBoYXZlIGV4cGlyZWQgYXQgVGQgYWZ0ZXIgVDEgZXhwaXJlcy4K
KyAgICAgICAgIAorICAgICAgICAgICAgICBIZW5jZSwgd2UgY2FuIGp1c3Qgd2FpdCBmb3IgVDEg
dG8gZXhwaXJlLCBhbmQgdGhlbiBzdGFydCBhIG5ldyB0aW1lciBUMicgYXQgdGltZSB0MCArIEwK
KyAgICAgICAgICAgICAgZm9yIGEgcGVyaW9kIG9yIFRkIGluc3RlYWQuCisKKyAgICAgICAgICAg
Tm90ZSB0aGF0IGRpZEZpcmVTbG93KCkgYWxyZWFkeSBjb21wZW5zYXRlcyBmb3IgdGltZSBkaWZm
ZXJlbmNlcyBiZXR3ZWVuIHdhbGwgY2xvY2sgYW5kIENQVSB0aW1lLAorICAgICAgICAgICBhcyB3
ZWxsIGFzIGhhbmRsZSBzcHVyaW91cyB3YWtlIHVwcyAoc2VlIG5vdGUgMiBhbmQgMyBhYm92ZSku
ICBBcyBhIHJlc3VsdCwgZGlkRmlyZVNsb3coKSB3aWxsCisgICAgICAgICAgIGF1dG9tYXRpY2Fs
bHkgdGFrZSBjYXJlIG9mIHN0YXJ0aW5nIGEgbmV3IHRpbWVyIGZvciB0aGUgZGlmZmVyZW5jZSBU
ZCBpbiB0aGUgZXhhbXBsZSBhYm92ZS4KKyAgICAgICAgICAgSW5zdGVhZCBvZiBzdGFydGluZyB0
aGUgbmV3IHRpbWVyIFQyIGFuZCB0aW1lIHQyLCB3ZSBqdXN0IHZlcmlmeSB0aGF0IGlmIHRoZSBh
Y3RpdmUgdGltZXIsIFQxJ3MKKyAgICAgICAgICAgZXhwaXJhdGlvbiBpcyBsZXNzIHRoYW4gVDJz
LCB0aGVuIHdlIGFyZSBhbHJlYWR5IGNvdmVyZWQgYnkgVDEgYW5kIHRoZXJlJ3Mgbm8gbmVlZCB0
byBzdGFydCBUMi4KKworICAgICAgICAgICBUaGUgYmVuZWZpdDoKKworICAgICAgICAgICAxLiB3
ZSBtaW5pbWl6ZSB0aGUgbnVtYmVyIG9mIHRpbWVyIGluc3RhbmNlcyB3ZSBoYXZlIHF1ZXVlZCBp
biB0aGUgd29ya3F1ZXVlIGF0IHRoZSBzYW1lIHRpbWUKKyAgICAgICAgICAgICAgKGlkZWFsbHkg
b25seSAxIG9yIDApLCBhbmQgdXNlIGxlc3MgcGVhayBtZW1vcnkgdXNhZ2UuCisKKyAgICAgICAg
ICAgMi4gd2UgbWluaW1pemUgdGhlIGZyZXF1ZW5jeSBvZiBpbnN0YW50aWF0aW5nIHRpbWVyIGlu
c3RhbmNlcy4gQnkgd2FpdGluZyBmb3IgdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgYWN0aXZl
IHRpbWVyIHRvIGV4cGlyZSBmaXJzdCwgb24gYXZlcmFnZSwgd2UgZ2V0IHRvIHN0YXJ0IG9uZSB0
aW1lciBwZXIgdGltZSBsaW1pdAorICAgICAgICAgICAgICAod2hpY2ggaXMgaW5mcmVxdWVudCBi
ZWNhdXNlIHRpbWUgbGltaXRzIHRlbmQgdG8gYmUgbG9uZykgaW5zdGVhZCBvZiBvbmUgdGltZXIg
cGVyCisgICAgICAgICAgICAgIFZNIGVudHJ5ICh3aGljaCB0ZW5kcyB0byBiZSBmcmVxdWVudCku
CisKKyAgICAgICAgICAgU2VlIFdhdGNoZG9nOjpzdGFydFRpbWVyKCkuCisKKyAgICAgICAgKiBB
UEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKGNyZWF0ZVdhdGNoZG9nSWZOZWVkZWQpOgor
ICAgICAgICAoSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRpbWVMaW1pdCk6CisgICAgICAg
IC0gTm8gbmVlZCB0byBjcmVhdGUgdGhlIHdhdGNoZG9nIChpZiBub3QgYWxyZWFkeSBjcmVhdGVk
KSBqdXN0IHRvIGNsZWFyIGl0LgorICAgICAgICAgIElmIHRoZSB3YXRjaGRvZyBpcyBub3QgY3Jl
YXRlZCB5ZXQsIHRoZW4gaXQgaXMgZWZmZWN0aXZlbHkgY2xlYXJlZC4KKworICAgICAgICAqIEFQ
SS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoKKyAgICAgICAgKGN1cnJlbnRDUFVU
aW1lQXNKU0Z1bmN0aW9uQ2FsbGJhY2spOgorICAgICAgICAodGVzdEV4ZWN1dGlvblRpbWVMaW1p
dCk6CisgICAgICAgIChjdXJyZW50Q1BVVGltZSk6IERlbGV0ZWQuCisgICAgICAgICogQVBJL3Rl
c3RzL3Rlc3RhcGkuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUudmN4cHJvai90ZXN0YXBpL3Rlc3RhcGkudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAtIEVu
YWJsZSB3YXRjaGRvZyB0ZXN0cyBmb3IgYWxsIHBsYXRmb3Jtcy4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAtIFJlbW92ZSBub3cgdW5uZWVkZWQgV2F0Y2hkb2dN
YWMuY3BwIGFuZCBXYXRjaGRvZ05vbmUuY3BwLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21h
a2U6CisKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlND
OjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhl
Y3V0ZUNhbGwpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCk6
CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfbG9vcF9oaW50KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9sb29wX2hpbnQp
OgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBsbGludC9MTElu
dE9mZnNldHNFeHRyYWN0b3IuY3BwOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNw
cDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgLSAjaW5jbHVkZSBXYXRjaGRv
Zy5oIGluIHRoZXNlIGZpbGVzIGRpcmVjdGx5IGluc3RlYWQgb2YgZG9pbmcgaXQgdmlhIFZNLmgu
CisgICAgICAgICAgVGhlc2Ugc2F2ZXMgdXMgZnJvbSBoYXZpbmcgdG8gcmVjb21waWxlIHRoZSB3
b3JsZCB3aGVuIHdlIGNoYW5nZSBXYXRjaGRvZy5oLgorCisgICAgICAgICogcnVudGltZS9WTS5o
OgorICAgICAgICAtIFNlZSBjb21tZW50IGluIFdhdGNoZG9nOjpzdGFydFRpbWVyKCkgYmVsb3cg
Zm9yIHdoeSB0aGUgV2F0Y2hkb2cgbmVlZHMgdG8gYmUKKyAgICAgICAgICB0aHJlYWQtc2FmZSBy
ZWYgY291bnRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcDoKKyAgICAg
ICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUpOgorICAgICAgICAoSlNDOjpWTUVu
dHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUpOgorICAgICAgICAtIFdlIGhhdmUgZG9uZSBhd2F5IHdp
dGggdGhlIFdhdGNoZG9nU2NvcGUgYW5kIGFybWluZy9kaXNhcm1pbmcgb2YgdGhlIHdhdGNoZG9n
LgorICAgICAgICAgIEluc3RlYWQsIHRoZSBWTUVudHJ5U2NvcGUgd2lsbCBpbmZvcm0gdGhlIHdh
dGNoZG9nIG9mIHdoZW4gd2UgaGF2ZSBlbnRlcmVkIGFuZAorICAgICAgICAgIGV4aXRlZCB0aGUg
Vk0uCisKKyAgICAgICAgKiBydW50aW1lL1dhdGNoZG9nLmNwcDoKKyAgICAgICAgKEpTQzo6Y3Vy
cmVudFdhbGxDbG9ja1RpbWUpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6V2F0Y2hkb2cpOgor
ICAgICAgICAoSlNDOjpXYXRjaGRvZzo6aGFzU3RhcnRlZFRpbWVyKToKKyAgICAgICAgKEpTQzo6
V2F0Y2hkb2c6OnNldFRpbWVMaW1pdCk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpkaWRGaXJl
U2xvdyk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpoYXNUaW1lTGltaXQpOgorICAgICAgICAo
SlNDOjpXYXRjaGRvZzo6ZmlyZSk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjplbnRlcmVkVk0p
OgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6ZXhpdGVkVk0pOgorCisgICAgICAgIChKU0M6Oldh
dGNoZG9nOjpzdGFydFRpbWVyKToKKyAgICAgICAgLSBUaGUgV2F0Y2hkb2cgaXMgbm93IHRocmVh
ZC1zYWZlIHJlZiBjb3VudGVkIGJlY2F1c2UgdGhlIFdvcmtRdWV1ZSBtYXkgYWNjZXNzIGl0Cisg
ICAgICAgICAgKGZyb20gYSBkaWZmZXJlbnQgdGhyZWFkKSBldmVuIGFmdGVyIHRoZSBWTSBzaHV0
cyBkb3duLiAgV2UgbmVlZCB0byBrZWVwIGl0CisgICAgICAgICAgYWxpdmUgdW50aWwgdGhlIFdv
cmtRdWV1ZSBjYWxsYmFjayBjb21wbGV0ZXMuCisKKyAgICAgICAgICBJbiBXYXRjaGRvZzo6c3Rh
cnRUaW1lcigpLCB3ZSdsbCByZWYgdGhlIFdhdGNoZG9nIHRvIGtlZXAgaXQgYWxpdmUgZm9yIGVh
Y2gKKyAgICAgICAgICBXb3JrUXVldWUgY2FsbGJhY2sgd2UgZGlzcGF0Y2guICBUaGUgY2FsbGJh
Y2sgd2lsbCBkZXJlZiB0aGUgV2F0Y2hkb2cgYWZ0ZXIgaXQKKyAgICAgICAgICBpcyBkb25lIHdp
dGggaXQuICBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgV2F0Y2hkb2cgaXMga2VwdCBhbGl2ZSB1bnRp
bCBhbGwKKyAgICAgICAgICBXb3JrUXVldWUgY2FsbGJhY2tzIGFyZSBkb25lLgorCisgICAgICAg
IChKU0M6OldhdGNoZG9nOjpzdG9wVGltZXIpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6fldh
dGNoZG9nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OmRpZEZpcmUpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6aXNFbmFibGVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6V2F0Y2hkb2c6OmFybSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldhdGNoZG9n
OjpkaXNhcm0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3RhcnRDb3VudGRv
d25JZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldhdGNoZG9nOjpzdGFydENvdW50
ZG93bik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldhdGNoZG9nOjpzdG9wQ291bnRkb3duKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dhdGNoZG9nLmg6CisgICAgICAgIChKU0M6Oldh
dGNoZG9nOjpkaWRGaXJlKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnRpbWVyRGlkRmlyZUFk
ZHJlc3MpOgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6aXNBcm1lZCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OldhdGNoZG9nOjpTY29wZTo6U2NvcGUpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpXYXRjaGRvZzo6U2NvcGU6On5TY29wZSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9X
YXRjaGRvZ01hYy5jcHA6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjppbml0VGltZXIpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6ZGVzdHJveVRpbWVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6V2F0Y2hkb2c6OnN0YXJ0VGltZXIpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpXYXRjaGRvZzo6c3RvcFRpbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dhdGNo
ZG9nTm9uZS5jcHA6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjppbml0VGltZXIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6ZGVzdHJveVRpbWVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6V2F0Y2hkb2c6OnN0YXJ0VGltZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpX
YXRjaGRvZzo6c3RvcFRpbWVyKTogRGVsZXRlZC4KKwogMjAxNS0wOC0xMSAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFsd2F5cyB1c2UgYSBieXRlLXNpemVkIGxv
Y2sgaW1wbGVtZW50YXRpb24KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtNjE3LDcgKzYxNyw2IEBAIHNldChKYXZhU2NyaXB0Q29yZV9S
VU5USU1FX1NPVVJDRVMKICAgICBydW50aW1lL1ZNRW50cnlTY29wZS5jcHAKICAgICBydW50aW1l
L1Zhck9mZnNldC5jcHAKICAgICBydW50aW1lL1dhdGNoZG9nLmNwcAotICAgIHJ1bnRpbWUvV2F0
Y2hkb2dOb25lLmNwcAogICAgIHJ1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcAogICAgIHJ1
bnRpbWUvV2Vha01hcERhdGEuY3BwCiAgICAgcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZQkocmV2aXNpb24gMTg4
MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC0yLDYgKzIsNyBAQCBsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9JTkNMVURF
X0RJUkVDCiAgICAgJHtFQ09SRV9JTkNMVURFX0RJUlN9CiAgICAgJHtFSU5BX0lOQ0xVREVfRElS
U30KICAgICAke0VPX0lOQ0xVREVfRElSU30KKyAgICAiJHtXVEZfRElSfS93dGYvZWZsIgogKQog
YWRkX2RlZmluaXRpb25zKC1EU1RBVElDQUxMWV9MSU5LRURfV0lUSF9XVEYpCiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHJldmlzaW9uIDE4ODMy
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNs
dWRlICJTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIlN0YWNrVmlzaXRvci5oIgorI2luY2x1
ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtOTQsNyArOTUsNyBAQCBzdGF0aWMg
Ym9vbCBpbnRlcm5hbFNjcmlwdFRpbWVvdXRDYWxsYmFjCiBzdGF0aWMgdm9pZCBjcmVhdGVXYXRj
aGRvZ0lmTmVlZGVkKFZNJiB2bSkKIHsKICAgICBpZiAoIXZtLndhdGNoZG9nKSB7Ci0gICAgICAg
IHZtLndhdGNoZG9nID0gc3RkOjptYWtlX3VuaXF1ZTxXYXRjaGRvZz4oKTsKKyAgICAgICAgdm0u
d2F0Y2hkb2cgPSBhZG9wdFJlZihuZXcgV2F0Y2hkb2coKSk7CiAKICAgICAgICAgLy8gVGhlIExM
SU5UIHBlZWtzIGludG8gdGhlIFdhdGNoZG9nIG9iamVjdCBkaXJlY3RseS4gSW4gb3JkZXIgdG8g
ZG8gdGhhdCwKICAgICAgICAgLy8gdGhlIExMSU5UIGFzc3VtZXMgdGhhdCB0aGUgaW50ZXJuYWwg
c2hhcGUgb2YgYSBzdGQ6OnVuaXF1ZV9wdHIgaXMgdGhlCkBAIC0xMjAsOSArMTIxLDggQEAgdm9p
ZCBKU0NvbnRleHRHcm91cENsZWFyRXhlY3V0aW9uVGltZUxpbQogewogICAgIFZNJiB2bSA9ICp0
b0pTKGdyb3VwKTsKICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKCZ2bSk7Ci0gICAgY3JlYXRlV2F0
Y2hkb2dJZk5lZWRlZCh2bSk7Ci0gICAgV2F0Y2hkb2cmIHdhdGNoZG9nID0gKnZtLndhdGNoZG9n
OwotICAgIHdhdGNoZG9nLnNldFRpbWVMaW1pdCh2bSwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25k
czo6bWF4KCkpOworICAgIGlmICh2bS53YXRjaGRvZykKKyAgICAgICAgdm0ud2F0Y2hkb2ctPnNl
dFRpbWVMaW1pdCh2bSwgV2F0Y2hkb2c6Om5vVGltZUxpbWl0KTsKIH0KIAogLy8gRnJvbSB0aGUg
QVBJJ3MgcGVyc3BlY3RpdmUsIGEgZ2xvYmFsIGNvbnRleHQgcmVtYWlucyBhbGl2ZSBpZmYgaXQg
aGFzIGJlZW4gSlNHbG9iYWxDb250ZXh0UmV0YWluZWQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5j
cHAJKHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
RXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDM0ICsyNiwx
NSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV4ZWN1dGlvblRpbWVMaW1pdFRl
c3QuaCIKIAotI2lmIE9TKERBUldJTikKLQogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZhdGUu
aCIKICNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2luY2x1ZGUgPGNocm9ubz4KKyNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAotI2luY2x1ZGUgPG1hY2gvbWFjaC5oPgotI2luY2x1
ZGUgPG1hY2gvbWFjaF90aW1lLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzeXMv
dGltZS5oPgordXNpbmcgbmFtZXNwYWNlIHN0ZDo6Y2hyb25vOwogCiBzdGF0aWMgSlNHbG9iYWxD
b250ZXh0UmVmIGNvbnRleHQgPSBudWxscHRyOwogCi1zdGF0aWMgZG91YmxlIGN1cnJlbnRDUFVU
aW1lKCkKLXsKLSAgICBtYWNoX21zZ190eXBlX251bWJlcl90IGluZm9Db3VudCA9IFRIUkVBRF9C
QVNJQ19JTkZPX0NPVU5UOwotICAgIHRocmVhZF9iYXNpY19pbmZvX2RhdGFfdCBpbmZvOwotICAg
IAotICAgIC8qIEdldCB0aHJlYWQgaW5mb3JtYXRpb24gKi8KLSAgICBtYWNoX3BvcnRfdCB0aHJl
YWRQb3J0ID0gbWFjaF90aHJlYWRfc2VsZigpOwotICAgIHRocmVhZF9pbmZvKHRocmVhZFBvcnQs
IFRIUkVBRF9CQVNJQ19JTkZPLCAodGhyZWFkX2luZm9fdCkoJmluZm8pLCAmaW5mb0NvdW50KTsK
LSAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCB0aHJlYWRQb3J0KTsK
LSAgICAKLSAgICBkb3VibGUgdGltZSA9IGluZm8udXNlcl90aW1lLnNlY29uZHMgKyBpbmZvLnVz
ZXJfdGltZS5taWNyb3NlY29uZHMgLyAxMDAwMDAwLjsKLSAgICB0aW1lICs9IGluZm8uc3lzdGVt
X3RpbWUuc2Vjb25kcyArIGluZm8uc3lzdGVtX3RpbWUubWljcm9zZWNvbmRzIC8gMTAwMDAwMC47
Ci0gICAgCi0gICAgcmV0dXJuIHRpbWU7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIGN1cnJlbnRD
UFVUaW1lQXNKU0Z1bmN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYg
ZnVuY3Rpb25PYmplY3QsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENv
dW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uT2JqZWN0KTsKQEAgLTYzLDcgKzQ0LDcgQEAg
c3RhdGljIEpTVmFsdWVSZWYgY3VycmVudENQVVRpbWVBc0pTRnVuYwogICAgIFVOVVNFRF9QQVJB
TShleGNlcHRpb24pOwogICAgIAogICAgIEFTU0VSVChKU0NvbnRleHRHZXRHbG9iYWxDb250ZXh0
KGN0eCkgPT0gY29udGV4dCk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGN0eCwgY3Vy
cmVudENQVVRpbWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGN0eCwgY3VycmVu
dENQVVRpbWUoKS5jb3VudCgpIC8gMTAwMDAwMC4pOwogfQogCiBib29sIHNob3VsZFRlcm1pbmF0
ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CkBAIC0xMjAsMTggKzEwMSwxNiBAQCBpbnQgdGVz
dEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgewogICAgICAgICBjb25zdCBjaGFyKiBsb29wRm9y
ZXZlclNjcmlwdCA9ICJ2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRy
dWUpIHsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAuMTUwKSBicmVhazsgfSAi
OwogICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZyhsb29wRm9yZXZlclNjcmlwdCk7Ci0gICAgICAgIGRvdWJsZSBzdGFydFRpbWU7Ci0gICAg
ICAgIGRvdWJsZSBlbmRUaW1lOwogICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwogICAgICAg
ICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwotICAgICAgICBzdGFy
dFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IGN1cnJl
bnRDUFVUaW1lKCk7CiAgICAgICAgIHYgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlw
dCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgIGVuZFRpbWUgPSBj
dXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgp
OwogICAgICAgICAKLSAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCAuMTUwZikg
JiYgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgIGlmICgoKGVuZFRp
bWUgLSBzdGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1MCkpICYmIHNob3VsZFRlcm1pbmF0ZUNh
bGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiBzY3JpcHQgdGltZWQg
b3V0IGFzIGV4cGVjdGVkLlxuIik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKCEo
KGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MGYpKQorICAgICAgICAgICAgaWYgKCEoKGVuZFRp
bWUgLSBzdGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1MCkpKQogICAgICAgICAgICAgICAgIHBy
aW50ZigiRkFJTDogc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iKTsKICAg
ICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCiAgICAgICAg
ICAgICAgICAgcHJpbnRmKCJGQUlMOiBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNh
bGxlZC5cbiIpOwpAQCAtMTQ5LDE2ICsxMjgsMTQgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGlt
aXQoKQogICAgIHsKICAgICAgICAgY29uc3QgY2hhciogbG9vcEZvcmV2ZXJTY3JpcHQgPSAidmFy
IHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHRyeSB7IHdoaWxlICh0cnVlKSB7IGlmIChj
dXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gLjE1MCkgYnJlYWs7IH0gfSBjYXRjaChlKSB7
IH0iOwogICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhsb29wRm9yZXZlclNjcmlwdCk7Ci0gICAgICAgIGRvdWJsZSBzdGFydFRpbWU7Ci0g
ICAgICAgIGRvdWJsZSBlbmRUaW1lOwogICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwogICAg
ICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwotICAgICAgICBz
dGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IGN1
cnJlbnRDUFVUaW1lKCk7CiAgICAgICAgIHYgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNj
cmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgIGVuZFRpbWUg
PSBjdXJyZW50Q1BVVGltZSgpOworICAgICAgICBhdXRvIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGlt
ZSgpOwogICAgICAgICAKLSAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gLjE1
MGYpIHx8ICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkgewotICAgICAgICAgICAg
aWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MGYpKQorICAgICAgICBpZiAoKChlbmRU
aW1lIC0gc3RhcnRUaW1lKSA+PSBtaWxsaXNlY29uZHMoMTUwKSkgfHwgIXNob3VsZFRlcm1pbmF0
ZUNhbGxiYWNrV2FzQ2FsbGVkKSB7CisgICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0
VGltZSkgPCBtaWxsaXNlY29uZHMoMTUwKSkpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlM
OiBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIpOwogICAgICAgICAgICAg
aWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6IHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIik7
CkBAIC0xNzgsMTcgKzE1NSwxNSBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAg
ewogICAgICAgICBjb25zdCBjaGFyKiBsb29wRm9yZXZlclNjcmlwdCA9ICJ2YXIgc3RhcnRUaW1l
ID0gY3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUpIHsgaWYgKGN1cnJlbnRDUFVUaW1lKCkg
LSBzdGFydFRpbWUgPiAuMTUwKSBicmVhazsgfSAiOwogICAgICAgICBKU1N0cmluZ1JlZiBzY3Jp
cHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsb29wRm9yZXZlclNjcmlwdCk7Ci0g
ICAgICAgIGRvdWJsZSBzdGFydFRpbWU7Ci0gICAgICAgIGRvdWJsZSBlbmRUaW1lOwogICAgICAg
ICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGlt
ZSgpOworICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAgICAgICAg
IHYgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwg
MSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOworICAg
ICAgICBhdXRvIGVuZFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICAKLSAgICAgICAg
aWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCAuMTUwZikgJiYgc2hvdWxkVGVybWluYXRlQ2Fs
bGJhY2tXYXNDYWxsZWQpCisgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgbWls
bGlzZWNvbmRzKDE1MCkpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAg
ICAgICAgICAgcHJpbnRmKCJQQVNTOiBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVkIHdoZW4g
bm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVkLlxuIik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgLjE1MGYpKQorICAgICAgICAgICAgaWYg
KCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1MCkpKQogICAgICAgICAg
ICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQg
d2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iKTsKICAgICAgICAgICAgIGZhaWxlZCA9
IHRydWU7CiAgICAgICAgIH0KQEAgLTIwNCwxNyArMTc5LDE1IEBAIGludCB0ZXN0RXhlY3V0aW9u
VGltZUxpbWl0KCkKICAgICB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGxvb3BGb3JldmVyU2NyaXB0
ID0gInZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBpZiAo
Y3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+IC4xNTApIGJyZWFrOyB9ICI7CiAgICAgICAg
IEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGxvb3BG
b3JldmVyU2NyaXB0KTsKLSAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsKLSAgICAgICAgZG91Ymxl
IGVuZFRpbWU7CiAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIHN0YXJ0VGlt
ZSA9IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gY3VycmVudENQ
VVRpbWUoKTsKICAgICAgICAgdiA9IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBu
dWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgZW5kVGltZSA9IGN1cnJl
bnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8gZW5kVGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAg
ICAgICAgIAotICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSAuMTUwZikgJiYg
Y2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgJiYgIWV4Y2VwdGlvbikKKyAgICAgICAg
aWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gbWlsbGlzZWNvbmRzKDE1MCkpICYmIGNhbmNl
bFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkICYmICFleGNlcHRpb24pCiAgICAgICAgICAgICBw
cmludGYoIlBBU1M6IHNjcmlwdCB0aW1lb3V0IHdhcyBjYW5jZWxsZWQgYXMgZXhwZWN0ZWQuXG4i
KTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA8IC4xNTApIHx8IGV4Y2VwdGlvbikKKyAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFy
dFRpbWUpIDwgbWlsbGlzZWNvbmRzKDE1MCkpIHx8IGV4Y2VwdGlvbikKICAgICAgICAgICAgICAg
ICBwcmludGYoIkZBSUw6IHNjcmlwdCB0aW1lb3V0IHdhcyBub3QgY2FuY2VsbGVkLlxuIik7CiAg
ICAgICAgICAgICBpZiAoIWNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAg
ICAgICAgICAgIHByaW50ZigiRkFJTDogc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBj
YWxsZWQuXG4iKTsKQEAgLTIzMiwyMSArMjA1LDE4IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxp
bWl0KCkKICAgICB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGxvb3BGb3JldmVyU2NyaXB0ID0gInZh
ciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBpZiAoY3VycmVu
dENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+IC41MDApIGJyZWFrOyB9ICI7CiAgICAgICAgIEpTU3Ry
aW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGxvb3BGb3JldmVy
U2NyaXB0KTsKLSAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsKLSAgICAgICAgZG91YmxlIGVuZFRp
bWU7Ci0gICAgICAgIGRvdWJsZSBkZWx0YVRpbWU7CiAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxw
dHI7Ci0gICAgICAgIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIGF1dG8g
c3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgdiA9IEpTRXZhbHVhdGVTY3Jp
cHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAg
ICAgICAgZW5kVGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7Ci0gICAgICAgIGRlbHRhVGltZSA9IGVu
ZFRpbWUgLSBzdGFydFRpbWU7CisgICAgICAgIGF1dG8gZW5kVGltZSA9IGN1cnJlbnRDUFVUaW1l
KCk7CisgICAgICAgIGF1dG8gZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTsKICAgICAg
ICAgCi0gICAgICAgIGlmICgoZGVsdGFUaW1lID49IC4zMDBmKSAmJiAoZGVsdGFUaW1lIDwgLjUw
MGYpICYmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9PSAyKSAmJiBleGNlcHRpb24p
CisgICAgICAgIGlmICgoZGVsdGFUaW1lID49IG1pbGxpc2Vjb25kcygzMDApKSAmJiAoZGVsdGFU
aW1lIDwgbWlsbGlzZWNvbmRzKDUwMCkpICYmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxl
ZCA9PSAyKSAmJiBleGNlcHRpb24pCiAgICAgICAgICAgICBwcmludGYoIlBBU1M6IHNjcmlwdCB0
aW1lb3V0IHdhcyBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIpOwogICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgIGlmIChkZWx0YVRpbWUgPCAuMjAwZikKKyAgICAgICAgICAgIGlmIChkZWx0YVRp
bWUgPCBtaWxsaXNlY29uZHMoMjAwKSkKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6IHNj
cmlwdCB0aW1lb3V0IHdhcyBub3QgZXh0ZW5kZWQgYXMgZXhwZWN0ZWQuXG4iKTsKLSAgICAgICAg
ICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSAuNTAwZikKKyAgICAgICAgICAgIGVsc2UgaWYgKGRl
bHRhVGltZSA+PSBtaWxsaXNlY29uZHMoNTAwKSkKICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6IHNjcmlwdCBkaWQgbm90IHRpbWVvdXQuXG4iKTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgaWYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkIDwgMSkKQEAgLTI2NCw1ICsyMzQs
MyBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgSlNHbG9iYWxDb250ZXh0UmVs
ZWFzZShjb250ZXh0KTsKICAgICByZXR1cm4gZmFpbGVkOwogfQotCi0jZW5kaWYgLy8gT1MoREFS
V0lOKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMJKHJl
dmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFw
aS5jCSh3b3JraW5nIGNvcHkpCkBAIC00Myw5ICs0Myw3IEBACiAjaW5jbHVkZSAiQ3VzdG9tR2xv
YmFsT2JqZWN0Q2xhc3NUZXN0LmgiCiAjaW5jbHVkZSAiR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6
ZXJUZXN0LmgiCiAKLSNpZiBPUyhEQVJXSU4pCiAjaW5jbHVkZSAiRXhlY3V0aW9uVGltZUxpbWl0
VGVzdC5oIgotI2VuZGlmCiAKICNpZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogdm9pZCB0ZXN0T2Jq
ZWN0aXZlQ0FQSSh2b2lkKTsKQEAgLTE4OTMsOSArMTg5MSw3IEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyKiBhcmd2W10pCiAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoY29udGV4dCk7
CiAgICAgfQogCi0jaWYgT1MoREFSV0lOKQogICAgIGZhaWxlZCA9IHRlc3RFeGVjdXRpb25UaW1l
TGltaXQoKSB8fCBmYWlsZWQ7Ci0jZW5kaWYgLyogT1MoREFSV0lOKSAqLwogICAgIGZhaWxlZCA9
IHRlc3RHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplcigpIHx8IGZhaWxlZDsKIAogICAgIC8vIENs
ZWFyIG91dCBsb2NhbCB2YXJpYWJsZXMgcG9pbnRpbmcgYXQgSlNPYmplY3RSZWZzIHRvIGFsbG93
IHRoZWlyIHZhbHVlcyB0byBiZSBjb2xsZWN0ZWQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNj
cmlwdENvcmUudmN4cHJvagkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtODcwLDcgKzg3MCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxy
dW50aW1lXFZNRW50cnlTY29wZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxy
dW50aW1lXFZhck9mZnNldC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50
aW1lXFdhdGNoZG9nLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
V2F0Y2hkb2dOb25lLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
V2Vha01hcENvbnN0cnVjdG9yLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1
bnRpbWVcV2Vha01hcERhdGEuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxXZWFrTWFwUHJvdG90eXBlLmNwcCIgLz4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE4ODMyMykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtOTM2LDkgKzkzNiw2IEBACiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFdhdGNoZG9nLmNwcCI+CiAgICAgICA8Rmls
dGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcV2F0Y2hkb2dOb25lLmNwcCI+Ci0gICAgICA8RmlsdGVyPnJ1bnRp
bWU8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHRvb2xzXENvZGVQcm9maWxlLmNwcCI+CiAgICAgICA8RmlsdGVyPnRvb2xzPC9GaWx0ZXI+CiAg
ICAgPC9DbENvbXBpbGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai90ZXN0YXBpL3Rlc3RhcGkudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai90ZXN0YXBpL3Rlc3RhcGkudmN4
cHJvagkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTI5Nyw2ICsyOTcsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3Rz
XENvbXBhcmVBbmRTd2FwVGVzdC5oIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5c
QVBJXHRlc3RzXEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5o
IiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEV4ZWN1dGlvblRp
bWVMaW1pdFRlc3QuY3BwIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRl
c3RzXEV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuaCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXC4uXEFQSVx0ZXN0c1xHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEdsb2JhbENvbnRleHRXaXRo
RmluYWxpemVyVGVzdC5oIiAvPgogICA8L0l0ZW1Hcm91cD4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL3Rlc3RhcGkvdGVzdGFwaS52Y3hwcm9qLmZp
bHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ovdGVzdGFwaS90ZXN0YXBpLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTg4MzIz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovdGVzdGFw
aS90ZXN0YXBpLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtMTIsNiArMTIsOCBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXENvbXBhcmVBbmRTd2Fw
VGVzdC5oIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEN1c3Rv
bUdsb2JhbE9iamVjdENsYXNzVGVzdC5jIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Li5cQVBJXHRlc3RzXEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5oIiAvPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3Bw
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEV4ZWN1dGlvblRp
bWVMaW1pdFRlc3QuaCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXEFQSVx0ZXN0
c1xHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cLi5cQVBJXHRlc3RzXEdsb2JhbENvbnRleHRXaXRoRmluYWxpemVyVGVzdC5o
IiAvPgogICA8L0l0ZW1Hcm91cD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAxODgzMjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTcyOCw3ICsxNzI4
LDYgQEAKIAkJRkVEMjg3QjIxNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQyODdCMTE1RUM5QTU3
MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEOTRG
MkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLzsgfTsKIAkJRkVEOTRGMkYxNzFF
M0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGRUQ5NEYz
MDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEOTRGMkQxNzFFM0UyMzAwQkU3N0E0IC8qIFdh
dGNoZG9nTWFjLmNwcCAqLzsgfTsKIAkJRkVGMDQwNTExQUFFNjYyRDAwQkQyOEIwIC8qIENvbXBh
cmVBbmRTd2FwVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRUYwNDA1MDFBQUU2NjJEMDBCRDI4QjAgLyogQ29tcGFyZUFuZFN3YXBUZXN0LmNw
cCAqLzsgfTsKIAkJRkVGNjgzNUUxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUY2ODM1QTE3NDM0
M0NDMDBBMzJFMjUgLyogSklUU3R1YnNBUk0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUY2ODM1RjE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1
YnNBUk12Ny5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkVGNjgzNUIxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNdjcuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzU4Nyw3ICszNTg2LDYgQEAK
IAkJRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50T3Bjb2RlLmg7IHBhdGggPSBsbGludC9MTEludE9w
Y29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQ5NEYyQjE3MUUzRTIzMDBC
RTc3QTQgLyogV2F0Y2hkb2cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2F0Y2hkb2cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQ5NEYyQzE3
MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2F0Y2hkb2cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkVEOTRGMkQx
NzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdhdGNoZG9nTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRkVGMDQwNTAxQUFFNjYyRDAwQkQyOEIwIC8qIENvbXBhcmVBbmRTd2FwVGVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb21wYXJlQW5kU3dhcFRlc3Qu
Y3BwOyBwYXRoID0gQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUZFRjA0MDUyMUFBRUM0RUQwMEJEMjhCMCAvKiBDb21wYXJlQW5k
U3dhcFRlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29tcGFyZUFuZFN3
YXBUZXN0Lmg7IHBhdGggPSBBUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjY4MzVBMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVi
c0FSTS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRTdHVic0FSTS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDkyMCw3ICs0OTE4LDYgQEAKIAkJCQlGRTU5
MzJBNjE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggKi8sCiAJCQkJRkVEOTRGMkIx
NzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLywKIAkJCQlGRUQ5NEYyQzE3MUUzRTIz
MDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLywKLQkJCQlGRUQ5NEYyRDE3MUUzRTIzMDBCRTc3QTQg
LyogV2F0Y2hkb2dNYWMuY3BwICovLAogCQkJCTE0QkZDRTY4MTBDREIxRkMwMDM2NENDRSAvKiBX
ZWFrR0NNYXAuaCAqLywKIAkJCQlBRDg2QTkzRDFBQTREODdDMDAyRkU3N0YgLyogV2Vha0dDTWFw
SW5saW5lcy5oICovLAogCQkJCUE3Q0EzQUREMTdEQTQxQUUwMDY1MzhBRiAvKiBXZWFrTWFwQ29u
c3RydWN0b3IuY3BwICovLApAQCAtNzgzMyw3ICs3ODMwLDYgQEAKIAkJCQlFMThFM0E1OTBERjky
NzhDMDBEOTBCMzQgLyogVk0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU1OTMyQTcxODNDNUEy
NjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRUQ5NEYy
RTE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkVE
OTRGMzAxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdCOThEMTM2MUI2MENENUYwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY5MTlEMjUxNTg1M0NFMDAwNEE0RTdEIC8qIFdhdGNocG9pbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUFDRjczNzcxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwIGlu
IFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1
LDcgQEAKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1l
bnQuaCIKICNpbmNsdWRlICJTdHJpbmdDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIldhdGNoZG9n
LmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KQEAgLTQwMzAsNyArNDAzMSw3IEBAIGJv
b2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKIAogICAgICAgICAgICAgYWRk
VG9HcmFwaChMb29wSGludCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChtX3ZtLT53
YXRjaGRvZyAmJiBtX3ZtLT53YXRjaGRvZy0+aXNFbmFibGVkKCkpCisgICAgICAgICAgICBpZiAo
bV92bS0+d2F0Y2hkb2cgJiYgbV92bS0+d2F0Y2hkb2ctPmhhc1RpbWVMaW1pdCgpKQogICAgICAg
ICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tXYXRjaGRvZ1RpbWVyKTsKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfbG9vcF9oaW50KTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2
aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUg
IkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJTZXR1cFZhcmFyZ3NGcmFtZS5oIgogI2luY2x1ZGUg
IlR5cGVQcm9maWxlckxvZy5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxODgzMjMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU2V0dXBWYXJhcmdzRnJhbWUuaCIKICNp
bmNsdWRlICJTcGlsbFJlZ2lzdGVyc01vZGUuaCIKICNpbmNsdWRlICJUeXBlUHJvZmlsZXJMb2cu
aCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERG
RyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcAkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEs
NyBAQAogI2luY2x1ZGUgIlN5bWJvbC5oIgogI2luY2x1ZGUgIlZNRW50cnlTY29wZS5oIgogI2lu
Y2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAKICNpbmNs
dWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtODgwLDggKzg4MSw2IEBAIGZh
aWxlZEpTT05QOgogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKICAgICAgICAgU2FtcGxpbmdU
b29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKLSAgICAgICAgV2F0
Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cuZ2V0KCkpOwotCiAgICAgICAg
IHJlc3VsdCA9IHByb2dyYW0tPmdlbmVyYXRlZEpJVENvZGUoKS0+ZXhlY3V0ZSgmdm0sICZwcm90
b0NhbGxGcmFtZSk7CiAgICAgfQogCkBAIC05NDIsNyArOTQxLDYgQEAgSlNWYWx1ZSBJbnRlcnBy
ZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYQogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKICAg
ICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgp
LCAhaXNKU0NhbGwpOwotICAgICAgICBXYXRjaGRvZzo6U2NvcGUgd2F0Y2hkb2dTY29wZSh2bS53
YXRjaGRvZy5nZXQoKSk7CiAKICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKICAgICAgICAg
aWYgKGlzSlNDYWxsKQpAQCAtMTAxMyw3ICsxMDExLDYgQEAgSlNPYmplY3QqIEludGVycHJldGVy
OjpleGVjdXRlQ29uc3RydWN0KAogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKICAgICAgICAg
U2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpLCAhaXNK
U0NvbnN0cnVjdCk7Ci0gICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRvZ1Njb3BlKHZtLndh
dGNoZG9nLmdldCgpKTsKIAogICAgICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlLgogICAgICAgICBp
ZiAoaXNKU0NvbnN0cnVjdCkKQEAgLTEwODIsOCArMTA3OSw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0
ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2wKICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICB7CiAgICAg
ICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7
Ci0gICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRvZ1Njb3BlKHZtLndhdGNoZG9nLmdldCgp
KTsKLQogICAgICAgICByZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJh
dGVkSklUQ29kZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUucHJvdG9DYWxsRnJhbWUp
OwogICAgIH0KIApAQCAtMTE3Myw4ICsxMTY4LDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhl
Y3V0ZShFdmFsRXhlY3V0YQogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKICAgICAgICAgU2Ft
cGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKLSAgICAg
ICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cuZ2V0KCkpOwotCiAg
ICAgICAgIHJlc3VsdCA9IGV2YWwtPmdlbmVyYXRlZEpJVENvZGUoKS0+ZXhlY3V0ZSgmdm0sICZw
cm90b0NhbGxGcmFtZSk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAKICNp
bmNsdWRlICJUeXBlTG9jYXRpb24uaCIKICNpbmNsdWRlICJUeXBlUHJvZmlsZXJMb2cuaCIKICNp
bmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApAQCAtOTA1LDcgKzkwNiw3IEBAIHZvaWQgSklUOjplbWl0X29wX2xvb3Bf
aGludChJbnN0cnVjdGlvbioKICAgICB9CiAKICAgICAvLyBFbWl0IHRoZSB3YXRjaGRvZyB0aW1l
ciBjaGVjazoKLSAgICBpZiAobV92bS0+d2F0Y2hkb2cgJiYgbV92bS0+d2F0Y2hkb2ctPmlzRW5h
YmxlZCgpKQorICAgIGlmIChtX3ZtLT53YXRjaGRvZyAmJiBtX3ZtLT53YXRjaGRvZy0+aGFzVGlt
ZUxpbWl0KCkpCiAgICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaFRlc3Q4KE5vblplcm8sIEFic29s
dXRlQWRkcmVzcyhtX3ZtLT53YXRjaGRvZy0+dGltZXJEaWRGaXJlQWRkcmVzcygpKSkpOwogfQog
CkBAIC05MzEsNyArOTMyLDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2xvb3BfaGludChJbnN0
cnVjdAogI2VuZGlmCiAKICAgICAvLyBFbWl0IHRoZSBzbG93IHBhdGggb2YgdGhlIHdhdGNoZG9n
IHRpbWVyIGNoZWNrOgotICAgIGlmIChtX3ZtLT53YXRjaGRvZyAmJiBtX3ZtLT53YXRjaGRvZy0+
aXNFbmFibGVkKCkpIHsKKyAgICBpZiAobV92bS0+d2F0Y2hkb2cgJiYgbV92bS0+d2F0Y2hkb2ct
Pmhhc1RpbWVMaW1pdCgpKSB7CiAgICAgICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKICAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25IYW5kbGVXYXRjaGRvZ1RpbWVyKTsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxODgz
MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRzLmgi
CiAjaW5jbHVkZSAiVGVzdFJ1bm5lclV0aWxzLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9n
LmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+CiAK
IG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
T2Zmc2V0c0V4dHJhY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAJKHJldmlzaW9uIDE4ODMyMykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgi
CiAjaW5jbHVkZSAiVk1FbnRyeVJlY29yZC5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgor
I2luY2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgog
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcAkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1
ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIKICNp
bmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKKyNpbmNsdWRlICJXYXRjaGRvZy5o
IgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIExMSW50IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJ
KHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsNyBAQAogI2luY2x1ZGUgIlR5cGVQcm9maWxl
ci5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgogI2luY2x1ZGUgIlVubGlua2VkQ29k
ZUJsb2NrLmgiCisjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlICJXZWFrR0NNYXBJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiV2Vha01hcERhdGEuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkocmV2aXNpb24gMTg4MzIz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkod29ya2luZyBjb3B5KQpA
QCAtNTAsNyArNTAsNiBAQAogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1ZGUg
IlR5cGVkQXJyYXlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVk1FbnRyeVJlY29yZC5oIgotI2lu
Y2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSAiV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgIldl
YWtSYW5kb20uaCIKICNpbmNsdWRlIDx3dGYvQmFnLmg+CkBAIC0xMDcsNiArMTA2LDcgQEAgY2xh
c3MgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU7CiBjbGFzcyBVbmxpbmtlZFByb2dyYW1Db2Rl
QmxvY2s7CiBjbGFzcyBWaXJ0dWFsUmVnaXN0ZXI7CiBjbGFzcyBWTUVudHJ5U2NvcGU7CitjbGFz
cyBXYXRjaGRvZzsKIGNsYXNzIFdhdGNocG9pbnQ7CiBjbGFzcyBXYXRjaHBvaW50U2V0OwogCkBA
IC0yNTksNyArMjU5LDcgQEAgcHVibGljOgogICAgIENsaWVudERhdGEqIGNsaWVudERhdGE7CiAg
ICAgVk1FbnRyeUZyYW1lKiB0b3BWTUVudHJ5RnJhbWU7CiAgICAgRXhlY1N0YXRlKiB0b3BDYWxs
RnJhbWU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdhdGNoZG9nPiB3YXRjaGRvZzsKKyAgICBSZWZQ
dHI8V2F0Y2hkb2c+IHdhdGNoZG9nOwogCiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gc3RydWN0dXJl
U3RydWN0dXJlOwogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHN0cnVjdHVyZVJhcmVEYXRhU3RydWN0
dXJlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2Nv
cGUuY3BwCShyZXZpc2lvbiAxODgzMjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTUVudHJ5U2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKICNp
bmNsdWRlICJEZWJ1Z2dlci5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlICJWTS5o
IgorI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL1N0YWNrQm91bmRzLmg+CiAK
IG5hbWVzcGFjZSBKU0MgewpAQCAtNDgsNiArNDksOSBAQCBWTUVudHJ5U2NvcGU6OlZNRW50cnlT
Y29wZShWTSYgdm0sIEpTR2xvCiAgICAgICAgIC8vIFJlc2V0IHRoZSBkYXRlIGNhY2hlIGJldHdl
ZW4gSlMgaW52b2NhdGlvbnMgdG8gZm9yY2UgdGhlIFZNIHRvCiAgICAgICAgIC8vIG9ic2VydmUg
dGltZSB4b25lIGNoYW5nZXMuCiAgICAgICAgIHZtLnJlc2V0RGF0ZUNhY2hlKCk7CisKKyAgICAg
ICAgaWYgKHZtLndhdGNoZG9nKQorICAgICAgICAgICAgdm0ud2F0Y2hkb2ctPmVudGVyZWRWTSgp
OwogICAgIH0KIAogICAgIHZtLmNsZWFyTGFzdEV4Y2VwdGlvbigpOwpAQCAtNjMsNiArNjcsOSBA
QCBWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUoKQogICAgIGlmIChtX3ZtLmVudHJ5U2NvcGUg
IT0gdGhpcykKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1fdm0ud2F0Y2hkb2cpCisgICAg
ICAgIG1fdm0ud2F0Y2hkb2ctPmV4aXRlZFZNKCk7CisKICAgICBtX3ZtLmVudHJ5U2NvcGUgPSBu
dWxscHRyOwogCiAgICAgZm9yIChhdXRvJiBsaXN0ZW5lciA6IG1fYWxsRW50cnlTY29wZURpZFBv
cExpc3RlbmVycy52YWx1ZXMoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dhdGNoZG9nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XYXRjaGRvZy5jcHAJKHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dhdGNoZG9nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNzUgKzMyLDEzNiBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIAotI2RlZmluZSBOT19MSU1JVCBzdGQ6OmNocm9ubzo6bWljcm9z
ZWNvbmRzOjptYXgoKQorY29uc3Qgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBXYXRjaGRvZzo6
bm9UaW1lTGltaXQgPSBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzOjptYXgoKTsKKworc3RhdGlj
IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgY3VycmVudFdhbGxDbG9ja1RpbWUoKQoreworICAg
IGF1dG8gc3RlYWR5VGltZVNpbmNlRXBvY2ggPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpu
b3coKS50aW1lX3NpbmNlX2Vwb2NoKCk7CisgICAgcmV0dXJuIHN0ZDo6Y2hyb25vOjpkdXJhdGlv
bl9jYXN0PHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM+KHN0ZWFkeVRpbWVTaW5jZUVwb2NoKTsK
K30KIAogV2F0Y2hkb2c6OldhdGNoZG9nKCkKICAgICA6IG1fdGltZXJEaWRGaXJlKGZhbHNlKQog
ICAgICwgbV9kaWRGaXJlKGZhbHNlKQotICAgICwgbV90aW1lb3V0UGVyaW9kKE5PX0xJTUlUKQot
ICAgICwgbV9zdGFydENQVVRpbWUoMCkKLSAgICAsIG1fZWxhcHNlZENQVVRpbWUoMCkKLSAgICAs
IG1fcmVlbnRyeUNvdW50KDApCi0gICAgLCBtX2lzU3RvcHBlZCh0cnVlKQorICAgICwgbV90aW1l
TGltaXQobm9UaW1lTGltaXQpCisgICAgLCBtX2NwdURlYWRsaW5lKG5vVGltZUxpbWl0KQorICAg
ICwgbV93YWxsQ2xvY2tEZWFkbGluZShub1RpbWVMaW1pdCkKICAgICAsIG1fY2FsbGJhY2soMCkK
ICAgICAsIG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwgbV9jYWxsYmFja0RhdGEyKDApCisgICAg
LCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImpzYy53YXRjaGRvZy5xdWV1ZSIsIFdv
cmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCiB7Ci0gICAg
aW5pdFRpbWVyKCk7CisgICAgbV90aW1lckhhbmRsZXIgPSBbdGhpc10geworICAgICAgICB0aGlz
LT5tX3RpbWVyRGlkRmlyZSA9IHRydWU7CisgICAgICAgIHRoaXMtPmRlcmVmKCk7CisgICAgfTsK
IH0KIAotV2F0Y2hkb2c6On5XYXRjaGRvZygpCitpbmxpbmUgYm9vbCBXYXRjaGRvZzo6aGFzU3Rh
cnRlZFRpbWVyKCkKIHsKLSAgICBBU1NFUlQoIWlzQXJtZWQoKSk7Ci0gICAgc3RvcENvdW50ZG93
bigpOwotICAgIGRlc3Ryb3lUaW1lcigpOworICAgIHJldHVybiBtX2NwdURlYWRsaW5lICE9IG5v
VGltZUxpbWl0OwogfQogCiB2b2lkIFdhdGNoZG9nOjpzZXRUaW1lTGltaXQoVk0mIHZtLCBzdGQ6
OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0LAogICAgIFNob3VsZFRlcm1pbmF0ZUNhbGxiYWNr
IGNhbGxiYWNrLCB2b2lkKiBkYXRhMSwgdm9pZCogZGF0YTIpCiB7Ci0gICAgYm9vbCB3YXNFbmFi
bGVkID0gaXNFbmFibGVkKCk7Ci0KLSAgICBpZiAoIW1faXNTdG9wcGVkKQotICAgICAgICBzdG9w
Q291bnRkb3duKCk7CisgICAgYm9vbCBoYWRUaW1lTGltaXQgPSBoYXNUaW1lTGltaXQoKTsKIAog
ICAgIG1fZGlkRmlyZSA9IGZhbHNlOyAvLyBSZXNldCB0aGUgd2F0Y2hkb2cuCiAKLSAgICBtX3Rp
bWVvdXRQZXJpb2QgPSBsaW1pdDsKKyAgICBtX3RpbWVMaW1pdCA9IGxpbWl0OwogICAgIG1fY2Fs
bGJhY2sgPSBjYWxsYmFjazsKICAgICBtX2NhbGxiYWNrRGF0YTEgPSBkYXRhMTsKICAgICBtX2Nh
bGxiYWNrRGF0YTIgPSBkYXRhMjsKIAotICAgIC8vIElmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUg
dGhhdCB0aW1lb3V0IGlzIGJlaW5nIGVuYWJsZWQsIHRoZW4gYW55CisgICAgLy8gSWYgdGhpcyBp
cyB0aGUgZmlyc3QgdGltZSB0aGF0IHRpbWUgbGltaXQgaXMgYmVpbmcgZW5hYmxlZCwgdGhlbiBh
bnkKICAgICAvLyBwcmV2aW91c2x5IEpJVCBjb21waWxlZCBjb2RlIHdpbGwgbm90IGhhdmUgdGhl
IG5lZWRlZCBwb2xsaW5nIGNoZWNrcy4KICAgICAvLyBIZW5jZSwgd2UgbmVlZCB0byBmbHVzaCBh
bGwgdGhlIHByZS1leGlzdGluZyBjb21waWxlZCBjb2RlLgogICAgIC8vCi0gICAgLy8gSG93ZXZl
ciwgaWYgdGhlIHRpbWVvdXQgaXMgYWxyZWFkeSBlbmFibGVkLCBhbmQgd2UncmUganVzdCBjaGFu
Z2luZyB0aGUKLSAgICAvLyB0aW1lb3V0IHZhbHVlLCB0aGVuIGFueSBleGlzdGluZyBKSVR0ZWQg
Y29kZSB3aWxsIGhhdmUgdGhlIGFwcHJvcHJpYXRlCisgICAgLy8gSG93ZXZlciwgaWYgdGhlIHRp
bWUgbGltaXQgaXMgYWxyZWFkeSBlbmFibGVkLCBhbmQgd2UncmUganVzdCBjaGFuZ2luZyB0aGUK
KyAgICAvLyB0aW1lIGxpbWl0IHZhbHVlLCB0aGVuIGFueSBleGlzdGluZyBKSVR0ZWQgY29kZSB3
aWxsIGhhdmUgdGhlIGFwcHJvcHJpYXRlCiAgICAgLy8gcG9sbGluZyBjaGVja3MuIEhlbmNlLCB0
aGVyZSBpcyBubyBuZWVkIHRvIHJlLWRvIHRoaXMgZmx1c2hpbmcuCi0gICAgaWYgKCF3YXNFbmFi
bGVkKSB7CisgICAgaWYgKCFoYWRUaW1lTGltaXQpIHsKICAgICAgICAgLy8gQW5kIGlmIHdlJ3Zl
IHByZXZpb3VzbHkgY29tcGlsZWQgYW55IGZ1bmN0aW9ucywgd2UgbmVlZCB0byByZXZlcnQKICAg
ICAgICAgLy8gdGhlbSBiZWNhdXNlIHRoZXkgZG9uJ3QgaGF2ZSB0aGUgbmVlZGVkIHBvbGxpbmcg
Y2hlY2tzIHlldC4KICAgICAgICAgdm0ucmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoKTsKICAgICB9
CiAKLSAgICBzdGFydENvdW50ZG93bklmTmVlZGVkKCk7CisgICAgaWYgKG1faGFzRW50ZXJlZFZN
ICYmIGhhc1RpbWVMaW1pdCgpKQorICAgICAgICBzdGFydFRpbWVyKG1fdGltZUxpbWl0KTsKIH0K
IAotYm9vbCBXYXRjaGRvZzo6ZGlkRmlyZShFeGVjU3RhdGUqIGV4ZWMpCitib29sIFdhdGNoZG9n
OjpkaWRGaXJlU2xvdyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgaWYgKG1fZGlkRmlyZSkKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIW1fdGltZXJEaWRGaXJlKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKG1fdGltZXJEaWRGaXJlKTsKICAgICBtX3RpbWVyRGlk
RmlyZSA9IGZhbHNlOwotICAgIHN0b3BDb3VudGRvd24oKTsKIAotICAgIGF1dG8gY3VycmVudFRp
bWUgPSBjdXJyZW50Q1BVVGltZSgpOwotICAgIGF1dG8gZGVsdGFDUFVUaW1lID0gY3VycmVudFRp
bWUgLSBtX3N0YXJ0Q1BVVGltZTsKLSAgICBhdXRvIHRvdGFsRWxhcHNlZENQVVRpbWUgPSBtX2Vs
YXBzZWRDUFVUaW1lICsgZGVsdGFDUFVUaW1lOwotICAgIGlmICh0b3RhbEVsYXBzZWRDUFVUaW1l
ID4gbV90aW1lb3V0UGVyaW9kKSB7CisgICAgLy8gQSBsZWdpdGltYXRlIHRpbWVyIGlzIHRoZSB0
aW1lciB3aGljaCB3b2tlIHVwIHdhdGNoZG9nIGFuZCBjYW4gY2F1c2VkIGRpZEZpcmVTbG93KCkg
dG8gYmUKKyAgICAvLyBjYWxsZWQgYWZ0ZXIgbV93YWxsQ2xvY2tEZWFkbGluZSBoYXMgZXhwaXJl
ZC4gQWxsIG90aGVyIHRpbWVycyBhcmUgY29uc2lkZXJlZCB0byBiZSBzdGFsZSwKKyAgICAvLyBh
bmQgdGhlaXIgd2FrZSB1cHMgYXJlIGNvbnNpZGVyZWQgdG8gYmUgc3B1cmlvdXMgYW5kIHNob3Vs
ZCBiZSBpZ25vcmVkLgorICAgIC8vCisgICAgLy8gZGlkRmlyZVNsb3coKSB3aWxsIHJhY2UgYWdh
aW5zdCBtX3RpbWVySGFuZGxlciB0byBjbGVhciBhbmQgc2V0IG1fdGltZXJEaWRGaXJlIHJlc3Bl
Y3RpdmVseS4KKyAgICAvLyBXZSBuZWVkIHRvIGRlYWwgd2l0aCBhIHZhcmlldHkgb2Ygc2NlbmFy
aW9zIHdoZXJlIHdlIGNhbiBoYXZlIHN0YWxlIHRpbWVycyBhbmQgbGVnaXRpbWF0ZQorICAgIC8v
IHRpbWVycyBmaXJpbmcgaW4gY2xvc2UgcHJveGltaXR5IHRvIGVhY2ggb3RoZXIuCisgICAgLy8K
KyAgICAvLyBDb25zaWRlciB0aGUgZm9sbG93aW5nIHNjZW5hcmlvczoKKyAgICAvLworICAgIC8v
IDEuIEEgc3RhbGUgdGltZXIgZmlyZXMgbG9uZyBiZWZvcmUgbV93YWxsQ2xvY2tEZWFkbGluZSBl
eHBpcmVzLgorICAgIC8vCisgICAgLy8gICAgSW4gdGhpcyBjYXNlLCB0aGUgbV93YWxsQ2xvY2tE
ZWFkbGluZSBjaGVjayBiZWxvdyB3aWxsIGZhaWwgYW5kIHRoZSBzdGFsZSB0aW1lciB3aWxsIGJl
CisgICAgLy8gICAgaWdub3JlZCBhcyBzcHVyaW91cy4gV2UganVzdCBuZWVkIHRvIG1ha2Ugc3Vy
ZSB0aGF0IHdlIGNsZWFyIG1fdGltZXJEaWRGaXJlIGJlZm9yZSB3ZQorICAgIC8vICAgIGNoZWNr
IG1fd2FsbENsb2NrRGVhZGxpbmUgYW5kIHJldHVybiBiZWxvdy4KKyAgICAvLworICAgIC8vIDIu
IEEgc3RhbGUgdGltZXIgZmlyZXMganVzdCBiZWZvcmUgbV93YWxsQ2xvY2tEZWFkbGluZSBleHBp
cmVzLgorICAgIC8vICAgIEJlZm9yZSB0aGUgd2F0Y2hkb2cgY2FuIGdldHMgdG8gdGhlIGNsZWFy
aW5nIG1fdGltZXJEaWRGaXJlIGFib3ZlLCB0aGUgbGVnaXQgdGltZXIgYWxzbyBmaXJlcy4KKyAg
ICAvLworICAgIC8vICAgIEluIHRoaXMgY2FzZSwgbV90aW1lckRpZEZpcmUgd2FzIHNldCB0d2lj
ZSBieSB0aGUgMiB0aW1lcnMsIGJ1dCB3ZSBvbmx5IGNsZWFyIG5lZWQgdG8gY2xlYXIKKyAgICAv
LyAgICBpdCBvbmNlLiBUaGUgbV93YWxsQ2xvY2tEZWFkbGluZSBiZWxvdyB3aWxsIHBhc3MgYW5k
IHRoaXMgaW52b2NhdGlvbiBvZiBkaWRGaXJlU2xvdygpIHdpbGwKKyAgICAvLyAgICBiZSB0cmVh
dGVkIGFzIHRoZSByZXNwb25zZSB0byB0aGUgbGVnaXQgdGltZXIuIFRoZSBzcHVyaW91cyB0aW1l
ciBpcyBlZmZlY3RpdmVseSBpZ25vcmVkLgorICAgIC8vCisgICAgLy8gMy4gQSBzdGF0ZSB0aW1l
ciBmaXJlcyBqdXN0IGJlZm9yZSBtX3dhbGxDbG9ja0RlYWRsaW5lIGV4cGlyZXMuCisgICAgLy8g
ICAgUmlnaHQgYWZ0ZXIgdGhlIHdhdGNoZG9nIGNsZWFycyBtX3RpbWVyRGlkRmlyZSBhYm92ZSwg
dGhlIGxlZ2l0IHRpbWVyIGFsc28gZmlyZXMuCisgICAgLy8KKyAgICAvLyAgICBUaGUgZmFjdCB0
aGF0IHRoZSBsZWdpdCB0aW1lciBmYWlscyBtZWFucyB0aGF0IHRoZSBtX3dhbGxDbG9ja0RlYWRs
aW5lIGNoZWNrIHdpbGwgcGFzcy4KKyAgICAvLyAgICBBcyBsb25nIGFzIHdlIGNsZWFyIG1fdGlt
ZXJEaWRGaXJlIGJlZm9yZSB3ZSBkbyB0aGUgY2hlY2ssIHdlIGFyZSBzYWZlLiBUaGlzIGlzIHRo
ZSBzYW1lCisgICAgLy8gICAgc2NlbmFyaW8gYXMgMiBhYm92ZS4KKyAgICAvLworICAgIC8vIDQu
IEEgc3RhbGUgdGltZXIgZmlyZXMganVzdCBiZWZvcmUgbV93YWxsQ2xvY2tEZWFkbGluZSBleHBp
cmVzLgorICAgIC8vICAgIFJpZ2h0IGFmdGVyIHdlIGRvIHRoZSBtX3dhbGxDbG9ja0RlYWRsaW5l
IGNoZWNrIGJlbG93LCB0aGUgbGVnaXQgdGltZXIgZmlyZXMuCisgICAgLy8KKyAgICAvLyAgICBU
aGUgZmFjdCB0aGF0IHRoZSBsZWdpdCB0aW1lciBmaXJlcyBhZnRlciB0aGUgbV93YWxsQ2xvY2tE
ZWFkbGluZSBjaGVjayBtZWFucyB0aGF0CisgICAgLy8gICAgdGhlIG1fd2FsbENsb2NrRGVhZGxp
bmUgY2hlY2sgd2lsbCBoYXZlIGZhaWxlZC4gVGhpcyBpcyB0aGUgc2FtZSBzY2VuYXJpbyBhcyAx
IGFib3ZlLgorICAgIC8vCisgICAgLy8gNS4gQSBsZWdpdCB0aW1lciBmaXJlcy4KKyAgICAvLyAg
ICBBIHN0YWxlIHRpbWVyIGFsc28gZmlyZXMgYmVmb3JlIHdlIGNsZWFyIG1fdGltZXJEaWRGaXJl
IGFib3ZlLgorICAgIC8vCisgICAgLy8gICAgVGhpcyBpcyB0aGUgc2FtZSBzY2VuYXJpbyBhcyAy
IGFib3ZlLgorICAgIC8vCisgICAgLy8gNi4gQSBsZWdpdCB0aW1lciBmaXJlcy4KKyAgICAvLyAg
ICBBIHN0YWxlIHRpbWVyIGZpcmVzIHJpZ2h0IGFmdGVyIHdlIGNsZWFyIG1fdGltZXJEaWRGaXJl
IGFib3ZlLgorICAgIC8vCisgICAgLy8gICAgSW4gdGhpcyBjYXNlLCB0aGUgbV93YWxsQ2xvY2tE
ZWFkbGluZSBjaGVjayB3aWxsIHBhc3MsIGFuZCB3ZSBmaXJlIHRoZSB3YXRjaGRvZworICAgIC8v
ICAgIHRob3VnaCBtX3RpbWVyRGlkRmlyZSByZW1haW5zIHNldC4gVGhpcyBqdXN0IG1lYW5zIHRo
YXQgZGlkRmlyZVNsb3coKSB3aWxsIGJlIGNhbGxlZCBhZ2FpbiBkdWUKKyAgICAvLyAgICB0byBt
X3RpbWVyRGlkRmlyZSBiZWluZyBzZXQuIFRoZSBzdWJzZXF1ZW50IGludm9jYXRpb24gb2YgZGlk
RmlyZVNsb3coKSB3aWxsIGVuZCB1cCBoYW5kbGluZworICAgIC8vICAgIHRoZSBzdGFsZSB0aW1l
ciBhbmQgaWdub3JpbmcgaXQuIFRoaXMgaXMgdGhlIHNhbWUgc2NlbmFyaW8gYXMgMSBhYm92ZS4K
KyAgICAvLworICAgIC8vIDcuIEEgbGVnaXQgdGltZXIgZmlyZXMuCisgICAgLy8gICAgQSBzdGFs
ZSB0aW1lciBmaXJlcyByaWdodCBhZnRlciB3ZSBkbyB0aGUgbV93YWxsQ2xvY2tEZWFkbGluZSBj
aGVjay4KKyAgICAvLworICAgIC8vICAgIFRoaXMgaXMgdGhlIHNhbWUgYXMgNiwgd2hpY2ggbWVh
bnMgaXQncyB0aGUgc2FtZSBhcyAxIGFib3ZlLgorICAgIC8vCisgICAgLy8gSW4gYWxsIHRoZXNl
IGNhc2VzLCB3ZSBqdXN0IG5lZWQgdG8gZW5zdXJlIHRoYXQgd2UgY2xlYXIgbV90aW1lckRpZEZp
cmUgYmVmb3JlIHdlIGRvIHRoZQorICAgIC8vIG1fd2FsbENsb2NrRGVhZGxpbmUgY2hlY2sgYmVs
b3cuIEhlbmNlLCBhIHN0b3JlTG9hZCBmZW5jZSBpcyBuZWVkZWQgdG8gZW5zdXJlIHRoYXQgdGhl
c2UgMgorICAgIC8vIG9wZXJhdGlvbnMgZG8gbm90IGdldCByZS1vcmRlcmVkLgorCisgICAgV1RG
OjpzdG9yZUxvYWRGZW5jZSgpOworCisgICAgaWYgKGN1cnJlbnRXYWxsQ2xvY2tUaW1lKCkgPCBt
X3dhbGxDbG9ja0RlYWRsaW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7IC8vIEp1c3QgYSBzdGFs
ZSB0aW1lciBmaXJpbmcuIE5vdGhpbmcgdG8gZG8uCisKKyAgICBtX3dhbGxDbG9ja0RlYWRsaW5l
ID0gbm9UaW1lTGltaXQ7CisKKyAgICBpZiAoY3VycmVudENQVVRpbWUoKSA+PSBtX2NwdURlYWRs
aW5lKSB7CiAgICAgICAgIC8vIENhc2UgMTogdGhlIGFsbG93ZWQgQ1BVIHRpbWUgaGFzIGVsYXBz
ZWQuCiAKICAgICAgICAgLy8gSWYgbV9jYWxsYmFjayBpcyBub3Qgc2V0LCB0aGVuIHdlIHRlcm1p
bmF0ZSBieSBkZWZhdWx0LgpAQCAtMTEyLDI3ICsxNzMsMzIgQEAgYm9vbCBXYXRjaGRvZzo6ZGlk
RmlyZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQogCi0gICAgICAgIC8vIFRoZSBtX2NhbGxiYWNrIG1heSBoYXZlIHNldCBhIG5ldyBsaW1pdC4g
U28sIHdlIG1heSBuZWVkIHRvIHJlc3RhcnQKLSAgICAgICAgLy8gdGhlIGNvdW50ZG93bi4KLSAg
ICAgICAgc3RhcnRDb3VudGRvd25JZk5lZWRlZCgpOworICAgICAgICAvLyBJZiB3ZSBnZXQgaGVy
ZSwgdGhlbiB0aGUgY2FsbGJhY2sgYWJvdmUgZGlkIG5vdCB3YW50IHRvIHRlcm1pbmF0ZSBleGVj
dXRpb24uIEFzIGEKKyAgICAgICAgLy8gcmVzdWx0LCB0aGUgY2FsbGJhY2sgbWF5IGhhdmUgZG9u
ZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgLy8gICAxLiBjbGVhcmVkIHRoZSB0aW1l
IGxpbWl0IChpLmUuIHdhdGNoZG9nIGlzIGRpc2FibGVkKSwKKyAgICAgICAgLy8gICAyLiBzZXQg
YSBuZXcgdGltZSBsaW1pdCB2aWEgV2F0Y2hkb2c6OnNldFRpbWVMaW1pdCgpLCBvcgorICAgICAg
ICAvLyAgIDMuIGRpZCBub3RoaW5nIChpLmUuIGFsbG93IGFub3RoZXIgY3ljbGUgb2YgdGhlIGN1
cnJlbnQgdGltZSBsaW1pdCkuCisgICAgICAgIC8vCisgICAgICAgIC8vIEluIHRoZSBjYXNlIG9m
IDEsIHdlIGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcuCisgICAgICAgIC8vIEluIHRoZSBjYXNl
IG9mIDIsIFdhdGNoZG9nOjpzZXRUaW1lTGltaXQoKSB3b3VsZCBhbHJlYWR5IGhhdmUgc3RhcnRl
ZCB0aGUgdGltZXIuCisgICAgICAgIC8vIEluIHRoZSBjYXNlIG9mIDMsIHdlIG5lZWQgdG8gcmUt
c3RhcnQgdGhlIHRpbWVyIGhlcmUuCisKKyAgICAgICAgQVNTRVJUKG1faGFzRW50ZXJlZFZNKTsK
KyAgICAgICAgaWYgKGhhc1RpbWVMaW1pdCgpICYmICFoYXNTdGFydGVkVGltZXIoKSkKKyAgICAg
ICAgICAgIHN0YXJ0VGltZXIobV90aW1lTGltaXQpOwogCiAgICAgfSBlbHNlIHsKICAgICAgICAg
Ly8gQ2FzZSAyOiB0aGUgYWxsb3dlZCBDUFUgdGltZSBoYXMgTk9UIGVsYXBzZWQuCi0KLSAgICAg
ICAgLy8gVGVsbCB0aGUgdGltZXIgdG8gYWxhcm0gdXMgYWdhaW4gd2hlbiBpdCB0aGlua3Mgd2Un
dmUgcmVhY2hlZCB0aGUKLSAgICAgICAgLy8gZW5kIG9mIHRoZSBhbGxvd2VkIHRpbWUuCi0gICAg
ICAgIGF1dG8gcmVtYWluaW5nQ1BVVGltZSA9IG1fdGltZW91dFBlcmlvZCAtIHRvdGFsRWxhcHNl
ZENQVVRpbWU7Ci0gICAgICAgIG1fZWxhcHNlZENQVVRpbWUgPSB0b3RhbEVsYXBzZWRDUFVUaW1l
OwotICAgICAgICBtX3N0YXJ0Q1BVVGltZSA9IGN1cnJlbnRUaW1lOwotICAgICAgICBzdGFydENv
dW50ZG93bihyZW1haW5pbmdDUFVUaW1lKTsKKyAgICAgICAgYXV0byByZW1haW5pbmdDUFVUaW1l
ID0gbV9jcHVEZWFkbGluZSAtIGN1cnJlbnRDUFVUaW1lKCk7CisgICAgICAgIHN0YXJ0VGltZXIo
cmVtYWluaW5nQ1BVVGltZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29s
IFdhdGNoZG9nOjppc0VuYWJsZWQoKQorYm9vbCBXYXRjaGRvZzo6aGFzVGltZUxpbWl0KCkKIHsK
LSAgICByZXR1cm4gKG1fdGltZW91dFBlcmlvZCAhPSBOT19MSU1JVCk7CisgICAgcmV0dXJuICht
X3RpbWVMaW1pdCAhPSBub1RpbWVMaW1pdCk7CiB9CiAKIHZvaWQgV2F0Y2hkb2c6OmZpcmUoKQpA
QCAtMTQwLDQ5ICsyMDYsNTEgQEAgdm9pZCBXYXRjaGRvZzo6ZmlyZSgpCiAgICAgbV9kaWRGaXJl
ID0gdHJ1ZTsKIH0KIAotdm9pZCBXYXRjaGRvZzo6YXJtKCkKK3ZvaWQgV2F0Y2hkb2c6OmVudGVy
ZWRWTSgpCiB7Ci0gICAgbV9yZWVudHJ5Q291bnQrKzsKLSAgICBpZiAobV9yZWVudHJ5Q291bnQg
PT0gMSkKLSAgICAgICAgc3RhcnRDb3VudGRvd25JZk5lZWRlZCgpOworICAgIG1faGFzRW50ZXJl
ZFZNID0gdHJ1ZTsKKyAgICBpZiAoaGFzVGltZUxpbWl0KCkpCisgICAgICAgIHN0YXJ0VGltZXIo
bV90aW1lTGltaXQpOwogfQogCi12b2lkIFdhdGNoZG9nOjpkaXNhcm0oKQordm9pZCBXYXRjaGRv
Zzo6ZXhpdGVkVk0oKQogewotICAgIEFTU0VSVChtX3JlZW50cnlDb3VudCA+IDApOwotICAgIGlm
IChtX3JlZW50cnlDb3VudCA9PSAxKQotICAgICAgICBzdG9wQ291bnRkb3duKCk7Ci0gICAgbV9y
ZWVudHJ5Q291bnQtLTsKKyAgICBBU1NFUlQobV9oYXNFbnRlcmVkVk0pOworICAgIHN0b3BUaW1l
cigpOworICAgIG1faGFzRW50ZXJlZFZNID0gZmFsc2U7CiB9CiAKLXZvaWQgV2F0Y2hkb2c6OnN0
YXJ0Q291bnRkb3duSWZOZWVkZWQoKQordm9pZCBXYXRjaGRvZzo6c3RhcnRUaW1lcihzdGQ6OmNo
cm9ubzo6bWljcm9zZWNvbmRzIHRpbWVMaW1pdCkKIHsKLSAgICBpZiAoIW1faXNTdG9wcGVkKQot
ICAgICAgICByZXR1cm47IC8vIEFscmVhZHkgc3RhcnRlZC4KKyAgICBBU1NFUlQobV9oYXNFbnRl
cmVkVk0pOworICAgIEFTU0VSVChoYXNUaW1lTGltaXQoKSk7CiAKLSAgICBpZiAoIWlzQXJtZWQo
KSkKLSAgICAgICAgcmV0dXJuOyAvLyBOb3QgZXhlY3V0aW5nIEpTIHNjcmlwdC4gTm8gbmVlZCB0
byBzdGFydC4KKyAgICBtX2NwdURlYWRsaW5lID0gY3VycmVudENQVVRpbWUoKSArIHRpbWVMaW1p
dDsKKyAgICBhdXRvIHdhbGxDbG9ja1RpbWUgPSBjdXJyZW50V2FsbENsb2NrVGltZSgpOworICAg
IGF1dG8gd2FsbENsb2NrRGVhZGxpbmUgPSB3YWxsQ2xvY2tUaW1lICsgdGltZUxpbWl0OwogCi0g
ICAgaWYgKGlzRW5hYmxlZCgpKSB7Ci0gICAgICAgIG1fZWxhcHNlZENQVVRpbWUgPSBzdGQ6OmNo
cm9ubzo6bWljcm9zZWNvbmRzOjp6ZXJvKCk7Ci0gICAgICAgIG1fc3RhcnRDUFVUaW1lID0gY3Vy
cmVudENQVVRpbWUoKTsKLSAgICAgICAgc3RhcnRDb3VudGRvd24obV90aW1lb3V0UGVyaW9kKTsK
KyAgICBpZiAoKHdhbGxDbG9ja1RpbWUgPCBtX3dhbGxDbG9ja0RlYWRsaW5lKQorICAgICAgICAm
JiAobV93YWxsQ2xvY2tEZWFkbGluZSA8PSB3YWxsQ2xvY2tEZWFkbGluZSkpIHsKKyAgICAgICAg
cmV0dXJuOyAvLyBXYWl0IGZvciB0aGUgY3VycmVudCBhY3RpdmUgdGltZXIgdG8gZXhwaXJlIGJl
Zm9yZSBzdGFydGluZyBhIG5ldyBvbmUuCiAgICAgfQotfQogCi12b2lkIFdhdGNoZG9nOjpzdGFy
dENvdW50ZG93bihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0KQotewotICAgIEFTU0VS
VChtX2lzU3RvcHBlZCk7Ci0gICAgbV9pc1N0b3BwZWQgPSBmYWxzZTsKLSAgICBzdGFydFRpbWVy
KGxpbWl0KTsKKyAgICAvLyBFbHNlLCB0aGUgY3VycmVudCBhY3RpdmUgdGltZXIgd29uJ3QgZmly
ZSBzb29uIGVub3VnaC4gU28sIHN0YXJ0IGEgbmV3IHRpbWVyLgorICAgIHRoaXMtPnJlZigpOyAv
LyBtX3RpbWVySGFuZGxlciB3aWxsIGRlcmVmIHRvIG1hdGNoIGxhdGVyLgorICAgIG1fd2FsbENs
b2NrRGVhZGxpbmUgPSB3YWxsQ2xvY2tEZWFkbGluZTsKKyAgICBtX3RpbWVyRGlkRmlyZSA9IGZh
bHNlOworCisgICAgLy8gV2UgY2xlYXIgbV90aW1lckRpZEZpcmUgYmVjYXVzZSB3ZSdyZSBzdGFy
dGluZyBhIG5ldyB0aW1lci4gSG93ZXZlciwgd2UgbmVlZCB0byBtYWtlIHN1cmUKKyAgICAvLyB0
aGF0IHRoZSBjbGVhcmluZyBvY2N1cnMgYmVmb3JlIHRoZSB0aW1lciB0aHJlYWQgaXMgc3RhcnRl
ZC4gVGhlcmVhZnRlciwgb25seSBkaWRGaXJlU2xvdygpCisgICAgLy8gc2hvdWxkIGNsZWFyIG1f
dGltZXJEaWRGaXJlICh1bmxlc3Mgd2Ugc3RhcnQgeWV0IGFub3RoZXIgdGltZXIpLiBIZW5jZSwg
d2UgbmVlZCBhIHN0b3JlU3RvcmUKKyAgICAvLyBmZW5jZSBoZXJlIHRvIGVuc3VyZSB0aGVzZSBv
cGVyYXRpb25zIGRvIG5vdCBnZXQgcmUtb3JkZXJlZC4KKyAgICBXVEY6OnN0b3JlU3RvcmVGZW5j
ZSgpOworCisgICAgbV90aW1lclF1ZXVlLT5kaXNwYXRjaEFmdGVyKHN0ZDo6Y2hyb25vOjpuYW5v
c2Vjb25kcyh0aW1lTGltaXQpLCBtX3RpbWVySGFuZGxlcik7CiB9CiAKLXZvaWQgV2F0Y2hkb2c6
OnN0b3BDb3VudGRvd24oKQordm9pZCBXYXRjaGRvZzo6c3RvcFRpbWVyKCkKIHsKLSAgICBpZiAo
bV9pc1N0b3BwZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBzdG9wVGltZXIoKTsKLSAgICBtX2lz
U3RvcHBlZCA9IHRydWU7CisgICAgbV9jcHVEZWFkbGluZSA9IG5vVGltZUxpbWl0OwogfQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dh
dGNoZG9nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0
Y2hkb2cuaAkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV2F0Y2hkb2cuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsMzEgKzI2LDQwIEBACiAjaWZuZGVmIFdh
dGNoZG9nX2gKICNkZWZpbmUgV2F0Y2hkb2dfaAogCi0jaWYgT1MoREFSV0lOKQotI2luY2x1ZGUg
PGRpc3BhdGNoL2Rpc3BhdGNoLmg+ICAgIAotI2VuZGlmCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEV4
ZWNTdGF0ZTsKIGNsYXNzIFZNOwogCi1jbGFzcyBXYXRjaGRvZyB7CitjbGFzcyBXYXRjaGRvZyA6
IHB1YmxpYyBXVEY6OlRocmVhZFNhZmVSZWZDb3VudGVkPFdhdGNoZG9nPiB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgY2xhc3MgU2NvcGU7CiAKICAgICBXYXRj
aGRvZygpOwotICAgIH5XYXRjaGRvZygpOwogCiAgICAgdHlwZWRlZiBib29sICgqU2hvdWxkVGVy
bWluYXRlQ2FsbGJhY2spKEV4ZWNTdGF0ZSosIHZvaWQqIGRhdGExLCB2b2lkKiBkYXRhMik7CiAg
ICAgdm9pZCBzZXRUaW1lTGltaXQoVk0mLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxpbWl0
LCBTaG91bGRUZXJtaW5hdGVDYWxsYmFjayA9IDAsIHZvaWQqIGRhdGExID0gMCwgdm9pZCogZGF0
YTIgPSAwKTsKIAogICAgIC8vIFRoaXMgdmVyc2lvbiBvZiBkaWRGaXJlKCkgd2lsbCBjaGVjayB0
aGUgZWxhcHNlZCBDUFUgdGltZSBhbmQgY2FsbCB0aGUKICAgICAvLyBjYWxsYmFjayAoaWYgbmVl
ZGVkKSB0byBkZXRlcm1pbmUgaWYgdGhlIHdhdGNoZG9nIHNob3VsZCBmaXJlLgotICAgIGJvb2wg
ZGlkRmlyZShFeGVjU3RhdGUqKTsKKyAgICBib29sIGRpZEZpcmUoRXhlY1N0YXRlKiBleGVjKQor
ICAgIHsKKyAgICAgICAgaWYgKG1fZGlkRmlyZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBpZiAoIW1fdGltZXJEaWRGaXJlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZXR1cm4gZGlkRmlyZVNsb3coZXhlYyk7CisgICAgfQogCi0gICAgYm9vbCBpc0Vu
YWJsZWQoKTsKKyAgICBib29sIGhhc1RpbWVMaW1pdCgpOworICAgIHZvaWQgZW50ZXJlZFZNKCk7
CisgICAgdm9pZCBleGl0ZWRWTSgpOwogCiAgICAgLy8gVGhpcyB2ZXJzaW9uIG9mIGRpZEZpcmUo
KSBpcyBhIG1vcmUgZWZmaWNpZW50IHZlcnNpb24gZm9yIHdoZW4gd2Ugd2FudAogICAgIC8vIHRv
IGtub3cgaWYgdGhlIHdhdGNoZG9nIGhhcyBmaXJlZCBpbiB0aGUgcGFzdCwgYW5kIG5vdCB3aGV0
aGVyIGl0IHNob3VsZApAQCAtNjAsMjEgKzY5LDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQqIHRp
bWVyRGlkRmlyZUFkZHJlc3MoKSB7IHJldHVybiAmbV90aW1lckRpZEZpcmU7IH0KIAorICAgIHN0
YXRpYyBjb25zdCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIG5vVGltZUxpbWl0OworCiBwcml2
YXRlOgotICAgIHZvaWQgYXJtKCk7Ci0gICAgdm9pZCBkaXNhcm0oKTsKLSAgICB2b2lkIHN0YXJ0
Q291bnRkb3duSWZOZWVkZWQoKTsKLSAgICB2b2lkIHN0YXJ0Q291bnRkb3duKHN0ZDo6Y2hyb25v
OjptaWNyb3NlY29uZHMgbGltaXQpOwotICAgIHZvaWQgc3RvcENvdW50ZG93bigpOwotICAgIGJv
b2wgaXNBcm1lZCgpIHsgcmV0dXJuICEhbV9yZWVudHJ5Q291bnQ7IH0KLQotICAgIC8vIFBsYXRm
b3JtIHNwZWNpZmljIHRpbWVyIGltcGxlbWVudGF0aW9uOgotICAgIHZvaWQgaW5pdFRpbWVyKCk7
Ci0gICAgdm9pZCBkZXN0cm95VGltZXIoKTsKLSAgICB2b2lkIHN0YXJ0VGltZXIoc3RkOjpjaHJv
bm86Om1pY3Jvc2Vjb25kcyBsaW1pdCk7CisgICAgdm9pZCBzdGFydFRpbWVyKHN0ZDo6Y2hyb25v
OjptaWNyb3NlY29uZHMgdGltZUxpbWl0KTsKICAgICB2b2lkIHN0b3BUaW1lcigpOwogCi0gICAg
Ly8gbV90aW1lckRpZEZpcmUgKGFib3ZlKSBpbmRpY2F0ZXMgd2hldGhlciB0aGUgdGltZXIgZmly
ZWQuIFRoZSBXYXRjaGRvZworICAgIGlubGluZSBib29sIGhhc1N0YXJ0ZWRUaW1lcigpOworCisg
ICAgYm9vbCBkaWRGaXJlU2xvdyhFeGVjU3RhdGUqKTsKKworICAgIC8vIG1fdGltZXJEaWRGaXJl
IGluZGljYXRlcyB3aGV0aGVyIHRoZSB0aW1lciBmaXJlZC4gVGhlIFdhdGNoZG9nCiAgICAgLy8g
c3RpbGwgbmVlZHMgdG8gY2hlY2sgaWYgdGhlIGFsbG93ZWQgQ1BVIHRpbWUgaGFzIGVsYXBzZWQu
IElmIHNvLCB0aGVuCiAgICAgLy8gdGhlIFdhdGNoZG9nIGZpcmVzIGFuZCBtX2RpZEZpcmUgd2ls
bCBiZSBzZXQuCiAgICAgLy8gTk9URTogbV90aW1lckRpZEZpcmUgaXMgb25seSBzZXQgYnkgdGhl
IHBsYXRmb3JtIHNwZWNpZmljIHRpbWVyCkBAIC04Miw0NyArODcsMjMgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fdGltZXJEaWRGaXJlOwogICAgIGJvb2wgbV9kaWRGaXJlOwogCi0gICAgc3RkOjpj
aHJvbm86Om1pY3Jvc2Vjb25kcyBtX3RpbWVvdXRQZXJpb2Q7Ci0gICAgc3RkOjpjaHJvbm86Om1p
Y3Jvc2Vjb25kcyBtX3N0YXJ0Q1BVVGltZTsKLSAgICBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRz
IG1fZWxhcHNlZENQVVRpbWU7CisgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBtX3RpbWVM
aW1pdDsKKworICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbV9jcHVEZWFkbGluZTsKKyAg
ICBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIG1fd2FsbENsb2NrRGVhZGxpbmU7CiAKLSAgICBp
bnQgbV9yZWVudHJ5Q291bnQ7Ci0gICAgYm9vbCBtX2lzU3RvcHBlZDsKKyAgICBib29sIG1faGFz
RW50ZXJlZFZNIHsgZmFsc2UgfTsKIAogICAgIFNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrIG1fY2Fs
bGJhY2s7CiAgICAgdm9pZCogbV9jYWxsYmFja0RhdGExOwogICAgIHZvaWQqIG1fY2FsbGJhY2tE
YXRhMjsKIAotI2lmIE9TKERBUldJTikgJiYgIVBMQVRGT1JNKEVGTCkgJiYgIVBMQVRGT1JNKEdU
SykKLSAgICBkaXNwYXRjaF9xdWV1ZV90IG1fcXVldWU7Ci0gICAgZGlzcGF0Y2hfc291cmNlX3Qg
bV90aW1lcjsKLSNlbmRpZgorICAgIFJlZjxXb3JrUXVldWU+IG1fdGltZXJRdWV1ZTsKKyAgICBz
dGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IG1fdGltZXJIYW5kbGVyOwogCi0gICAgZnJpZW5kIGNsYXNz
IFdhdGNoZG9nOjpTY29wZTsKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9y
OwogfTsKIAotY2xhc3MgV2F0Y2hkb2c6OlNjb3BlIHsKLXB1YmxpYzoKLSAgICBTY29wZShXYXRj
aGRvZyogd2F0Y2hkb2cpCi0gICAgICAgIDogbV93YXRjaGRvZyh3YXRjaGRvZykKLSAgICB7Ci0g
ICAgICAgIGlmICghd2F0Y2hkb2cpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fd2F0
Y2hkb2ctPmFybSgpOwotICAgIH0KLSAgICAKLSAgICB+U2NvcGUoKQotICAgIHsKLSAgICAgICAg
aWYgKCFtX3dhdGNoZG9nKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX3dhdGNoZG9n
LT5kaXNhcm0oKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgV2F0Y2hkb2cqIG1fd2F0Y2hkb2c7
Ci19OwotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIFdhdGNoZG9nX2gKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTWFjLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZ01hYy5jcHAJKHJldmlz
aW9uIDE4ODMyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nTWFj
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJXYXRjaGRvZy5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotdm9pZCBXYXRjaGRvZzo6aW5pdFRp
bWVyKCkKLXsKLSAgICBtX3F1ZXVlID0gMDsKLSAgICBtX3RpbWVyID0gMDsKLX0KLQotdm9pZCBX
YXRjaGRvZzo6ZGVzdHJveVRpbWVyKCkKLXsKLSAgICBBU1NFUlQoIW1fdGltZXIpOwotICAgIGlm
IChtX3F1ZXVlKQotICAgICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fcXVldWUpOwotfQotCi12b2lk
IFdhdGNoZG9nOjpzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbGltaXQpCi17
Ci0gICAgQVNTRVJUKCFtX3RpbWVyKTsKLSAgICBpZiAoIW1fcXVldWUpCi0gICAgICAgIG1fcXVl
dWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoImpzYy53YXRjaGRvZy5xdWV1ZSIsIDApOwotICAg
IG1fdGltZXIgPSBkaXNwYXRjaF9zb3VyY2VfY3JlYXRlKERJU1BBVENIX1NPVVJDRV9UWVBFX1RJ
TUVSLCAwLCAwLCBtX3F1ZXVlKTsKLQotICAgIGRpc3BhdGNoX3NvdXJjZV9zZXRfdGltZXIobV90
aW1lciwKLSAgICAgICAgZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgc3RkOjpjaHJv
bm86Om5hbm9zZWNvbmRzKGxpbWl0KS5jb3VudCgpKSwKLSAgICAgICAgRElTUEFUQ0hfVElNRV9G
T1JFVkVSLCAwKTsKLQotICAgIGRpc3BhdGNoX3NvdXJjZV9zZXRfZXZlbnRfaGFuZGxlcihtX3Rp
bWVyLCBeewotICAgICAgICBtX3RpbWVyRGlkRmlyZSA9IHRydWU7Ci0gICAgfSk7Ci0KLSAgICBk
aXNwYXRjaF9yZXN1bWUobV90aW1lcik7Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OnN0b3BUaW1lcigp
Ci17Ci0gICAgQVNTRVJUKG1fcXVldWUpOwotICAgIGRpc3BhdGNoX3N5bmMobV9xdWV1ZSwgXnsK
LSAgICAgICAgZGlzcGF0Y2hfc291cmNlX2NhbmNlbChtX3RpbWVyKTsKLSAgICB9KTsKLSAgICBk
aXNwYXRjaF9yZWxlYXNlKG1fdGltZXIpOwotICAgIG1fdGltZXIgPSAwOwotfQotCi19IC8vIG5h
bWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9n
Tm9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0
Y2hkb2dOb25lLmNwcAkocmV2aXNpb24gMTg4MzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV2F0Y2hkb2dOb25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1MCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJXYXRjaGRvZy5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQot
Ly8gVGhpcyBpcyBhIHN0dWIgZm9yIHBsYXRmb3JtcyB0aGF0IGhhdmUgbm90IGltcGxlbWVudGVk
IHRoaXMgZnVuY3Rpb25hbGl0eS4KLS8vIEluIHRoaXMgY2FzZSwgdGhlIHBsYXRmb3JtIHRpbWVy
IGhlcmUgbmV2ZXIgZmlyZXMuCi0KLXZvaWQgV2F0Y2hkb2c6OmluaXRUaW1lcigpCi17Ci19Ci0K
LXZvaWQgV2F0Y2hkb2c6OmRlc3Ryb3lUaW1lcigpCi17Ci19Ci0KLXZvaWQgV2F0Y2hkb2c6OnN0
YXJ0VGltZXIoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcykKLXsKLX0KLQotdm9pZCBXYXRjaGRv
Zzo6c3RvcFRpbWVyKCkKLXsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODgzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxNS0wOC0xMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gSmF2YVNjcmlwdCB3YXRjaGRvZyB1
c2luZyBXVEY6OldvcmtRdWV1ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NzEwNworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVu
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHdlJ3JlIG5vdCBpbnRyb2R1Y2luZyBh
bnkgYmVoYXZpb3IgY2hhbmdlIHRvIFdlYkNvcmUgaGVyZS4KKyAgICAgICAgV2UncmUgb25seSAj
aW5jbHVkZSdpbmcgV2F0Y2hkb2cuaCBkaXJlY3RseSBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2gg
Vk0uaC4KKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvV2F0Y2hkb2cuaDog
QWRkZWQuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVy
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoK
KwogMjAxNS0wOC0xMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IERpc2Nvbm5lY3QgTGF5b3V0U3RhdGVEaXNhYmxlciBsb2dpYyBhbmQgUmVuZGVyVmlldyBwb2lu
dGVyLgpJbmRleDogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UJKHJldmlzaW9uIDE4ODMyMykKKysr
IFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2
ICsyNCw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL3RleHQvZWZsIgogICAgICIke1dFQkNPUkVfRElSfS9wbHVnaW5zL2VmbCIKKyAg
ICAiJHtXVEZfRElSfS93dGYvZWZsIgogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvV2F0Y2hkb2cu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1l
L1dhdGNoZG9nLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL1dhdGNoZG9nLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisj
aWZuZGVmIFdlYkNvcmVfRldEX1dhdGNoZG9nX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfV2F0Y2hk
b2dfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1dhdGNoZG9nLmg+CisjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkocmV2
aXNpb24gMTg4MzIzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjA0MzYsNiArMjA0MzYsNyBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxTdHJ1Y3R1cmUuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVc
U3RydWN0dXJlQ2hhaW4uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcU3ltYm9sVGFibGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV2F0Y2hkb2cuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV2Vha0dDTWFwLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1l
XFdyaXRlQmFycmllci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGlu
Z0hlYWRlcnNceWFyclxZYXJySklULmgiIC8+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAx
ODgzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTEyMTk4LDYgKzEyMTk4LDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3ltYm9sVGFibGUu
aCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWVcV2F0Y2hkb2cuaCI+CisgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJz
XHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcV2Vha0dDTWFwLmgiPgogICAgICAgPEZp
bHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5j
cHAJKHJldmlzaW9uIDE4ODMyMykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRMaXN0ZW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
IDxydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvVk1FbnRyeVNjb3BlLmg+CisjaW5jbHVkZSA8cnVudGltZS9X
YXRjaGRvZy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZExlYWtDb3VudGVyLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxODgzMjMpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvRXhjZXB0aW9u
SGVscGVycy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1l
L0pTTG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvV2F0Y2hkb2cuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>