<?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>95168</bug_id>
          
          <creation_ts>2012-08-27 21:26:08 -0700</creation_ts>
          <short_desc>[Forms] Shift+Tab should focus the last field of multiple fields time input UI</short_desc>
          <delta_ts>2012-08-30 20:48:05 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>95169</dependson>
    
    <dependson>95279</dependson>
    
    <dependson>95280</dependson>
    
    <dependson>95285</dependson>
          <blocked>95434</blocked>
    
    <blocked>95525</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>yosin</reporter>
          <assigned_to>yosin</assigned_to>
          <cc>mifenton</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>706047</commentid>
    <comment_count>0</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-08-27 21:26:08 -0700</bug_when>
    <thetext>Current implementation sets focus on the first field even if moving focus by Shift+Tab.
This behavior is counterintuitive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707060</commentid>
    <comment_count>1</comment_count>
      <attachid>161128</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-28 21:01:43 -0700</bug_when>
    <thetext>Created attachment 161128
Work In Progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708297</commentid>
    <comment_count>2</comment_count>
      <attachid>161399</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-29 22:10:59 -0700</bug_when>
    <thetext>Created attachment 161399
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708298</commentid>
    <comment_count>3</comment_count>
      <attachid>161399</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-29 22:12:14 -0700</bug_when>
    <thetext>Comment on attachment 161399
Patch 1

Could you review this patch?
Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708354</commentid>
    <comment_count>4</comment_count>
      <attachid>161399</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-29 23:54:54 -0700</bug_when>
    <thetext>Comment on attachment 161399
Patch 1

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        current implementation, it is hard to set focus to the last field when
&gt; +        it gets focus, because we don&apos;t know how DateTimeEditElement gets

gets focus by Shift+Tab ?

&gt; Source/WebCore/ChangeLog:19
&gt; +

You should write more details of the behavior. e.g.
 - HTMLInputElement for type=time is not focusable, but has a focus ring by a trick
 - behavior of HTMLInputElement::focus() and blur()
 - How &apos;focus&apos; event and &apos;blur&apos; event work (Also, this needs test!)

&gt; Source/WebCore/ChangeLog:22
&gt; +        This patch also changes handling of Left/Right keys to aware text
&gt; +        direction (&quot;dir&quot; attribute&quot;). Left/Right keys should move focus
&gt; +        physical right/left instead of logical right/left.

This should be done in a separated patch.

&gt; Source/WebCore/html/TimeInputType.cpp:134
&gt; +    m_timeInputType.element()-&gt;setFocus(false);
&gt; +}
&gt; +
&gt; +void TimeInputType::DateTimeEditControlOwnerImpl::didFieldFocus()
&gt; +{
&gt; +    m_timeInputType.element()-&gt;setFocus(true);

I recommend adding comments about reasons why we need to call setFocus() and why they are not focus() and blur().

&gt; Source/WebCore/html/shadow/DateTimeEditElement.h:68
&gt; +    virtual void blur() OVERRIDE FINAL;
&gt;      virtual void defaultEventHandler(Event*) OVERRIDE;
&gt;      void disabledStateChanged();
&gt; +    virtual void focus(bool) OVERRIDE FINAL;

DateTimeEditElement is not focusable. So, overriding blur() and focus() is not reasonable.
They should not be virtual, and we should rename them to blurFromField() and focusOnTheFirstField() or something.

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.cpp:143
&gt; +

Extra blank line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708384</commentid>
    <comment_count>5</comment_count>
      <attachid>161418</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 00:51:19 -0700</bug_when>
    <thetext>Created attachment 161418
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708388</commentid>
    <comment_count>6</comment_count>
      <attachid>161420</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 00:54:48 -0700</bug_when>
    <thetext>Created attachment 161420
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708390</commentid>
    <comment_count>7</comment_count>
      <attachid>161420</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 00:56:39 -0700</bug_when>
    <thetext>Comment on attachment 161420
Patch 3

Could you review this patch?
Thanks in advance.

= Changes since the last review =
* Remove Left/Right keys motion in RTL.
* Rename DateTimeEditElement::blur()/folcus() to blurByOwner()/focusByOwner()
* Add comments to TImeInputType::blur()/focus()
* Add a test file time-multiple-fields-blur-and-focus-events.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708413</commentid>
    <comment_count>8</comment_count>
      <attachid>161420</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-30 01:34:21 -0700</bug_when>
    <thetext>Comment on attachment 161420
Patch 3

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

&gt; Source/WebCore/ChangeLog:72
&gt; +        (WebCore::DateTimeFieldElement::focusOnNextField): Added for moving focus to next field for DateTimeNumbericFieldElment

&quot;Added&quot; looks incorrect.  This already exists.
This function is used only by DateTimeNumericFieldElement. We

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:-237
&gt; -void DateTimeEditElement::focusAndSelectSpinButtonOwner()

Don&apos;t change the function order.  It makes review harder.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:275
&gt; +size_t DateTimeEditElement::focusFieldIndex() const

focusedFieldIndex() is a better name because &apos;focus&apos; looks a verb.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:284
&gt; +DateTimeFieldElement* DateTimeEditElement::focusField() const

ditto.  focusedField() is better

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:383
&gt; +    if (DateTimeFieldElement* field = focusField()) {
&gt; +        field-&gt;defaultEventHandler(event);
&gt; +        if (event-&gt;defaultHandled())
&gt; +            return;
&gt;      }

Do we need this code?

&gt; Source/WebCore/html/shadow/DateTimeEditElement.h:68
&gt; +    void focusByOwner(bool);

The argument should be removed.

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.cpp:85
&gt; +        if (m_fieldOwner) {

nit: we prefer early-return.

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.cpp:93
&gt; +        if (m_fieldOwner) {

ditto.

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.h:54
&gt; +        virtual void didFieldBlur() = 0;
&gt; +        virtual void didFieldFocus() = 0;

should be fieldDidBlur() and fieldDidFocus(), or didBlurFromField() and didFocusOnField() because &apos;did&apos; should prepend to a verb.

&gt; LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-blur-and-focus-events.html:18
&gt; +

Need to check what happens if testInput has focus and TAB is pressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708414</commentid>
    <comment_count>9</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-30 01:35:01 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 161420 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161420&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:72
&gt; &gt; +        (WebCore::DateTimeFieldElement::focusOnNextField): Added for moving focus to next field for DateTimeNumbericFieldElment
&gt; 
&gt; &quot;Added&quot; looks incorrect.  This already exists.
&gt; This function is used only by DateTimeNumericFieldElement. We

We had better move the function to DateTimeNumericFieldElement in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708430</commentid>
    <comment_count>10</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-08-30 01:56:24 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 161420 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161420&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:72
&gt; &gt; &gt; +        (WebCore::DateTimeFieldElement::focusOnNextField): Added for moving focus to next field for DateTimeNumbericFieldElment
&gt; &gt; 
&gt; &gt; &quot;Added&quot; looks incorrect.  This already exists.
&gt; &gt; This function is used only by DateTimeNumericFieldElement. We
&gt; 
&gt; We had better move the function to DateTimeNumericFieldElement in another patch.

We have two option:
1. Having DateTimeFieldElement::focusOnNextField - current implementation
  PROS: Derived classes don&apos;t aware existence of DateTimeFieldOwner class.
  CONS: We need to add functions to DateTimeFieldElement when we have new functions in DateTimeFieldOwner class.
2. Having DateTimeFieldElement::fieldOwner() then DateTimeNumericField calls DateTimeFieldOwner::focusOnNext() via fieldOwner() function.
  PROS: Derived classes can use DateTimeFieldOwner functions without changing DateTimeFieldElement class
  CONS: We may have same code sequence, checking fieldOwner != nullptr then call fieldOwner()-&gt;function, in number of places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708455</commentid>
    <comment_count>11</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-30 02:50:19 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; 1. Having DateTimeFieldElement::focusOnNextField - current implementation
&gt;   PROS: Derived classes don&apos;t aware existence of DateTimeFieldOwner class.

I see. If you think the current structure is simpler, you don&apos;t need to move focusOnNextField().

Also, DateTimeFieldElement::defaultEventHandler() calls m_fieldOwner-&gt;focusOnNextField(*this) in the patch. It would be a justification of DateTimeFieldElement::focusOnNextField() if defaultEventHandler() used it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708472</commentid>
    <comment_count>12</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-08-30 03:42:53 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 161420 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161420&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:383
&gt; &gt; +    if (DateTimeFieldElement* field = focusField()) {
&gt; &gt; +        field-&gt;defaultEventHandler(event);
&gt; &gt; +        if (event-&gt;defaultHandled())
&gt; &gt; +            return;
&gt; &gt;      }
&gt; 
&gt; Do we need this code?

Yes, for dispatching event via &quot;input&quot; element, e.g. input.dispatchEvent(...).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708476</commentid>
    <comment_count>13</comment_count>
      <attachid>161438</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 03:57:33 -0700</bug_when>
    <thetext>Created attachment 161438
Patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708481</commentid>
    <comment_count>14</comment_count>
      <attachid>161439</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 04:06:42 -0700</bug_when>
    <thetext>Created attachment 161439
Patch 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708483</commentid>
    <comment_count>15</comment_count>
      <attachid>161439</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 04:08:53 -0700</bug_when>
    <thetext>Comment on attachment 161439
Patch 5

Could you review this patch?
Thanks in advance.

= Changes since the last review =
* Rename focusXXX functions/variables to focusedXXX.
* Add new test time-multiple-fields-blur-and-focus-events.html
* Update ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709207</commentid>
    <comment_count>16</comment_count>
      <attachid>161439</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-30 18:07:14 -0700</bug_when>
    <thetext>Comment on attachment 161439
Patch 5

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

&gt; Source/WebCore/ChangeLog:49
&gt; +        (WebCore::DateTimeEditElement::didFieldBlur): Added for calling DateTimeEditControlOwner::didFieldBlur().
&gt; +        (WebCore::DateTimeEditElement::didFieldFocus): Added for calling DateTimeEditControlOwner::didFieldFocus().

Need to update the comments.

&gt; Source/WebCore/ChangeLog:65
&gt; +        (EditControlOwner): Added didFieldBlur() and didFieldFocus() function declarations.

Need to update the comment.
Also, you should mention removed functions and their reasons.

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.h:54
&gt; +        virtual void didFocusFromField() = 0;

&quot;focus from field&quot; sounds strange.  It should be didFocusOnField.

&gt; LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-blur-and-focus-events.html:50
&gt; +    shouldBeEqualToString(&apos;keyDown(&quot;\t&quot;); state()&apos;, &apos;blur=0 focus=1&apos;);
&gt; +    shouldBeEqualToString(&apos;keyDown(&quot;\t&quot;); state()&apos;, &apos;blur=0 focus=1&apos;);
&gt; +    shouldBeEqualToString(&apos;keyDown(&quot;\t&quot;); state()&apos;, &apos;blur=0 focus=1&apos;);

Oh, I thought focus and blur were dispatched in a case of focus change between internal fields.  This result is nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709229</commentid>
    <comment_count>17</comment_count>
      <attachid>161600</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 18:43:35 -0700</bug_when>
    <thetext>Created attachment 161600
Patch 6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709232</commentid>
    <comment_count>18</comment_count>
      <attachid>161600</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 18:45:09 -0700</bug_when>
    <thetext>Comment on attachment 161600
Patch 6

Could you review this patch?
Thanks in advance.

= Changes since the last review =
* Rename didFocusFromXXX to didFocusOnXXX
* Mention removed functions in ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709245</commentid>
    <comment_count>19</comment_count>
      <attachid>161600</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-30 19:10:47 -0700</bug_when>
    <thetext>Comment on attachment 161600
Patch 6

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

&gt; Source/WebCore/ChangeLog:88
&gt; +        (WebCore::DateTimeNumericFieldElement::didBlur): Added for resetting type-ahead timer.
&gt; +        (WebCore::DateTimeNumericFieldElement::didFocus): Added for resetting type-ahead timer.

Why do you need to reset it? Is this a behavior change?

&gt; Source/WebCore/html/TimeInputType.cpp:-145
&gt; -void TimeInputType::DateTimeEditControlOwnerImpl::focusAndSelectEditControlOwner()
&gt; +bool TimeInputType::hasCustomFocusLogic() const
&gt;  {
&gt; -    RefPtr&lt;HTMLInputElement&gt; input(m_timeInputType.element());
&gt; -    input-&gt;focus();
&gt; -    input-&gt;select();

Removing focus() and select() looks a behavior change.  But ChangeLog doesn&apos;t mention it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709248</commentid>
    <comment_count>20</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-08-30 19:18:28 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 161600 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161600&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:88
&gt; &gt; +        (WebCore::DateTimeNumericFieldElement::didBlur): Added for resetting type-ahead timer.
&gt; &gt; +        (WebCore::DateTimeNumericFieldElement::didFocus): Added for resetting type-ahead timer.
&gt; 
&gt; Why do you need to reset it? Is this a behavior change?
These changes prevent accumulating digits on following scenario:

1. Type &quot;1&quot; at hour field
2. Type Tab to move minute field
3. Type Shift+Tab to move hour field
4. Type &quot;2&quot; at hour field.

When above sequence occurred in typeahead timeout, 1 sec. We expect the hour field to &quot;2&quot;. Without these changes, the hour field is &quot;12&quot;. This may not be happened by human action. I found this during writing layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709250</commentid>
    <comment_count>21</comment_count>
      <attachid>161605</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 19:21:29 -0700</bug_when>
    <thetext>Created attachment 161605
Patch 7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709251</commentid>
    <comment_count>22</comment_count>
      <attachid>161605</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 19:22:46 -0700</bug_when>
    <thetext>Comment on attachment 161605
Patch 7

Could you review this patch?
Thanks in advance.

= Changes since the last review =
* Mention reason of removal of DateTimeEditControlOwnerImpl::focusAndSelectEditControlOwner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709252</commentid>
    <comment_count>23</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-30 19:23:32 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; &gt; Why do you need to reset it? Is this a behavior change?
&gt; These changes prevent accumulating digits on following scenario:
&gt; 
&gt; 1. Type &quot;1&quot; at hour field
&gt; 2. Type Tab to move minute field
&gt; 3. Type Shift+Tab to move hour field
&gt; 4. Type &quot;2&quot; at hour field.
&gt; 
&gt; When above sequence occurred in typeahead timeout, 1 sec. We expect the hour field to &quot;2&quot;. Without these changes, the hour field is &quot;12&quot;. This may not be happened by human action. I found this during writing layout test.

Does this issue exist in the current code? If so, we should not fix it in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709280</commentid>
    <comment_count>24</comment_count>
      <attachid>161614</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 20:31:00 -0700</bug_when>
    <thetext>Created attachment 161614
Patch 8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709281</commentid>
    <comment_count>25</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-08-30 20:31:48 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #20)
&gt; &gt; &gt; Why do you need to reset it? Is this a behavior change?
&gt; &gt; These changes prevent accumulating digits on following scenario:
&gt; &gt; 
&gt; &gt; 1. Type &quot;1&quot; at hour field
&gt; &gt; 2. Type Tab to move minute field
&gt; &gt; 3. Type Shift+Tab to move hour field
&gt; &gt; 4. Type &quot;2&quot; at hour field.
&gt; &gt; 
&gt; &gt; When above sequence occurred in typeahead timeout, 1 sec. We expect the hour field to &quot;2&quot;. Without these changes, the hour field is &quot;12&quot;. This may not be happened by human action. I found this during writing layout test.
&gt; 
&gt; Does this issue exist in the current code? If so, we should not fix it in this patch.

Yes, this issue exists on the current code. I&apos;ll file another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709282</commentid>
    <comment_count>26</comment_count>
      <attachid>161614</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 20:33:36 -0700</bug_when>
    <thetext>Comment on attachment 161614
Patch 8

Could you review this patch?
Thanks in advance.

= Change since the last patch =
* Remove changes of DateTimeNumericFieldElement =&gt; will be in another patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709284</commentid>
    <comment_count>27</comment_count>
      <attachid>161614</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-30 20:39:30 -0700</bug_when>
    <thetext>Comment on attachment 161614
Patch 8

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

&gt; Source/WebCore/ChangeLog:38
&gt; +        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::focusAndSelectEditControlOwner): Removed. In this patch, settting focus to field is handled by DateTimeEditElement.

How about input-&gt;select() ? It had no effect, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709285</commentid>
    <comment_count>28</comment_count>
      <attachid>161615</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 20:46:41 -0700</bug_when>
    <thetext>Created attachment 161615
Patch 9</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709286</commentid>
    <comment_count>29</comment_count>
      <attachid>161615</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-30 20:47:58 -0700</bug_when>
    <thetext>Comment on attachment 161615
Patch 9

Clearing flags on attachment: 161615

Committed r127226: &lt;http://trac.webkit.org/changeset/127226&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709287</commentid>
    <comment_count>30</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-08-30 20:48:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161128</attachid>
            <date>2012-08-28 21:01:43 -0700</date>
            <delta_ts>2012-08-29 22:10:56 -0700</delta_ts>
            <desc>Work In Progress</desc>
            <filename>bug-95168-20120829130133.patch</filename>
            <type>text/plain</type>
            <size>46734</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2OTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc3NTNlNGZkM2VjNjFk
ZGVmYWIyZjZmNjQ3MjQzMzgyODdiMThiZS4uNDNjMmQ2OTA4Zjg5ODliODhhZjM2NGJlNDYxNjVi
OTg5ODVjYzA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNSBAQAorMjAxMi0wOC0yOCAgWW9z
aGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtGb3Jtc10gU2hp
ZnQrVGFiIHNob3VsZCBmb2N1cyB0aGUgbGFzdCBmaWVsZCBvZiBtdWx0aXBsZSBmaWVsZHMgdGlt
ZSBpbnB1dCBVSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTUxNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXb3JrIEluIFByb2dyZXNzLi4uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgor
CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6Ymx1cik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0Qmx1cik6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0Rm9jdXMpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6Zm9jdXMpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5o
OgorICAgICAgICAoSFRNTElucHV0RWxlbWVudCk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmJs
dXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpmb2N1cyk6CisgICAgICAgICogaHRt
bC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9UaW1l
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OkRhdGVUaW1l
RWRpdENvbnRyb2xPd25lckltcGw6OmRpZEZpZWxkQmx1cik6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25l
ckltcGw6OmRpZEZpZWxkRm9jdXMpOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6
aGFzQ3VzdG9tRm9jdXNMb2dpYyk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpi
bHVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmZvY3VzKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOgorICAgICAgICAo
V2ViQ29yZTo6VGltZUlucHV0VHlwZTo6aXNNb3VzZUZvY3VzYWJsZSk6CisgICAgICAgICogaHRt
bC9UaW1lSW5wdXRUeXBlLmg6CisgICAgICAgIChEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBs
KToKKyAgICAgICAgKFRpbWVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVU
aW1lRWRpdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVu
dDo6RGF0ZVRpbWVFZGl0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRF
bGVtZW50OjpibHVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6ZGlkRmllbGRCbHVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OmRpZEZpZWxkRm9jdXMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVFZGl0RWxlbWVudDo6ZmllbGRJbmRleE9mKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEVsZW1lbnQ6OmZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1l
bnQ6OmZvY3VzRmllbGRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVt
ZW50Ojpmb2N1c0ZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6
OmZvY3VzT25OZXh0RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVu
dDo6Zm9jdXNPblByZXZpb3VzRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0
RWxlbWVudDo6Zm9jdXNBbmRTZWxlY3RTcGluQnV0dG9uT3duZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRWYWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lRWRpdEVsZW1lbnQ6OnJlc2V0TGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6c2hvdWxkU3BpbkJ1dHRvblJlc3BvbmRUb1doZWVsRXZlbnRz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnNwaW5CdXR0b25TdGVw
RG93bik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpzcGluQnV0dG9u
U3RlcFVwKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnVwZGF0ZVVJ
U3RhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaDoKKyAg
ICAgICAgKEVkaXRDb250cm9sT3duZXIpOgorICAgICAgICAoRGF0ZVRpbWVFZGl0RWxlbWVudCk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkZpZWxkT3duZXI6On5GaWVsZE93bmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpEYXRlVGltZUZpZWxk
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6
ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RmllbGRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRmllbGRFbGVtZW50Ojppc0ZvY3VzYWJsZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojppc1JUTCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJsZVZhbHVlKToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oOgorICAgICAgICAoRmllbGRPd25l
cik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6cmVtb3ZlRXZlbnRI
YW5kbGVyKToKKyAgICAgICAgKERhdGVUaW1lRmllbGRFbGVtZW50KToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVBTVBNRmllbGRFbGVtZW50OjpEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50OjpEYXRlVGltZUhvdXJGaWVsZEVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudDo6RGF0
ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTWludXRlRmllbGRFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTWludXRlRmllbGRFbGVtZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU2Vjb25k
RmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU2Vjb25kRmllbGRFbGVt
ZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
cy5oOgorICAgICAgICAoRGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50KToKKyAgICAgICAgKERhdGVU
aW1lSG91ckZpZWxkRWxlbWVudCk6CisgICAgICAgIChEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRF
bGVtZW50KToKKyAgICAgICAgKERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50KToKKyAgICAgICAg
KERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oOgorICAgICAgICAo
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaDoKKyAgICAg
ICAgKERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOgorCiAyMDEyLTA4LTI4ICBUb20gU2Vw
ZXogIDx0c2VwZXpAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENTUCBkb2Vzbid0IHR1cm4gb2Zm
IGV2YWwsIGV0Yy4gaW4gV2ViIFdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCmluZGV4IDQ3OWM5YTVkNWI3MzY4NjcxNzJkMGVlMzc3ZWJiZjNmMjMzODBlNWYu
Ljc1ZWRmMTUyY2RjNDZmZmIyZWZiMmU1ZjYwNzM1NDRjMmNhNTAwNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMzM4LDYgKzMzOCwyNyBAQCB2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OnN0ZXBEb3duKGludCBuLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBt
X2lucHV0VHlwZS0+c3RlcFVwKC1uLCBlYyk7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9U
SU1FX01VTFRJUExFX0ZJRUxEUykKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6Ymx1cigpCit7Cisg
ICAgbV9pbnB1dFR5cGUtPmJsdXIoKTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkZWZh
dWx0Qmx1cigpCit7CisgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmJsdXIoKTsKK30K
Kwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0Rm9jdXMoYm9vbCByZXN0b3JlUHJldmlv
dXNTZWxlY3Rpb24pCit7CisgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzKHJl
c3RvcmVQcmV2aW91c1NlbGVjdGlvbik7Cit9CisKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6Zm9j
dXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pCit7CisgICAgbV9pbnB1dFR5cGUtPmZv
Y3VzKHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbik7Cit9CisjZW5kaWYKIAogYm9vbCBIVE1MSW5w
dXRFbGVtZW50OjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggYjUxMmViZGE3M2IzZWUyZGM4NzZlNTRiM2U5ZjVi
YTdmZDI1MTgzMS4uYjRlNWMyMDJjMTY1ZDNhYmQ4ZGRmNTRiM2E5MTEwZDk4NDEzMWM2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTI3Niw2ICsyNzYsMTMgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0SGVpZ2h0KHVuc2lnbmVkKTsKICAgICB2b2lkIHNldFdpZHRo
KHVuc2lnbmVkKTsKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERT
KQorICAgIHZpcnR1YWwgdm9pZCBibHVyKCkgT1ZFUlJJREU7CisgICAgdm9pZCBkZWZhdWx0Qmx1
cigpOworICAgIHZvaWQgZGVmYXVsdEZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9u
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24g
PSB0cnVlKSBPVkVSUklERTsKKyNlbmRpZgorCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUoKSBjb25zdCBPVkVSUklERTsKIAogICAgIHN0YXRpYyBWZWN0b3I8RmlsZUNob29z
ZXJGaWxlSW5mbz4gZmlsZXNGcm9tRmlsZUlucHV0Rm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3Jt
Q29udHJvbFN0YXRlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZGViZjZlN2U4
OGEyMDBiNzZiN2JlNDc4MWRiZjZiOTU5ZDQzMjcwYS4uZGVjZDNlYmNmOTc4MGI4NDdhY2UwMDNl
NTFiYjA5MmRjYTZhMTBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNDQ4LDYg
KzQ0OCwxOCBAQCBSZW5kZXJPYmplY3QqIElucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEqLCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlck9iamVj
dDo6Y3JlYXRlT2JqZWN0KGVsZW1lbnQoKSwgc3R5bGUpOwogfQogCisjaWYgRU5BQkxFKElOUFVU
X1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCit2b2lkIElucHV0VHlwZTo6Ymx1cigpCit7Cisg
ICAgZWxlbWVudCgpLT5kZWZhdWx0Qmx1cigpOworfQorCit2b2lkIElucHV0VHlwZTo6Zm9jdXMo
Ym9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pCit7CisgICAgZWxlbWVudCgpLT5kZWZhdWx0
Rm9jdXMocmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKTsKK30KKyNlbmRpZgorCiB2b2lkIElucHV0
VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApp
bmRleCBiNTM2OGQxZjJiZjUzYjVjNDg1MDZhYzQ4N2I3OTA1YWY2MDQyYWI0Li5iYzBhYjZlZGIz
MjQ0ZGIxMmY5YzQ2OGIzYTliNmQ4YzUwZTYyMWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgK
QEAgLTIxMyw2ICsyMTMsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNUb3VjaEV2
ZW50SGFuZGxlcigpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1F
X01VTFRJUExFX0ZJRUxEUykKKyAgICB2aXJ0dWFsIHZvaWQgYmx1cigpOworICAgIHZpcnR1YWwg
dm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbik7CisjZW5kaWYKKwogICAg
IC8vIFNoYWRvdyB0cmVlIGhhbmRsaW5nCiAKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93
U3VidHJlZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKaW5kZXggNTg2MTAz
MjMxMTVjYTMxMjRlNTBjZDg4N2VkNzEyYjNhNmM1OWRiOS4uMTg4YjliZWE0NWZkZGQ2OGI4NmJi
YWE0YjQwOTExOWY4YThjN2RiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1l
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3Bw
CkBAIC0xMjQsOSArMTI0LDE0IEBAIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xP
d25lckltcGw6On5EYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKCkKIHsKIH0KIAotdm9pZCBU
aW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjplZGl0Q29udHJvbE1v
dXNlRm9jdXMoKQordm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEJsdXIoKQogewotICAgIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPmZv
Y3VzKCk7CisgICAgbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+c2V0Rm9jdXMoZmFsc2UpOwor
fQorCit2b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmRp
ZEZpZWxkRm9jdXMoKQoreworICAgIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPnNldEZvY3Vz
KHRydWUpOwogfQogCiB2b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25l
ckltcGw6OmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCkKQEAgLTEzOCwxMSArMTQzLDkgQEAgdm9p
ZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjplZGl0Q29udHJv
bFZhbHVlQ2hhbmdlZCgpCiAgICAgaW5wdXQtPmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVu
dCgpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lcklt
cGw6OmZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25lcigpCitib29sIFRpbWVJbnB1dFR5cGU6
Omhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdAogewotICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVt
ZW50PiBpbnB1dChtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpKTsKLSAgICBpbnB1dC0+Zm9jdXMo
KTsKLSAgICBpbnB1dC0+c2VsZWN0KCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIFRp
bWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xP
d25lckRpc2FibGVkKCkgY29uc3QKQEAgLTE1MCwxMSArMTUzLDYgQEAgYm9vbCBUaW1lSW5wdXRU
eXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJEaXNh
YmxlZCgpIGMKICAgICByZXR1cm4gbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+cmVhZE9ubHko
KTsKIH0KIAotYm9vbCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBs
Ojppc0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90aW1l
SW5wdXRUeXBlLmVsZW1lbnQoKS0+Zm9jdXNlZCgpOwotfQotCiBib29sIFRpbWVJbnB1dFR5cGU6
OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+ZGlzYWJs
ZWQoKTsKQEAgLTE3Myw2ICsxNzEsMTIgQEAgVGltZUlucHV0VHlwZTo6flRpbWVJbnB1dFR5cGUo
KQogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnJlbW92ZUVkaXRDb250cm9sT3duZXIo
KTsKIH0KIAordm9pZCBUaW1lSW5wdXRUeXBlOjpibHVyKCkKK3sKKyAgICBpZiAobV9kYXRlVGlt
ZUVkaXRFbGVtZW50KQorICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmJsdXIoKTsKK30K
KwogUmVuZGVyT2JqZWN0KiBUaW1lSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRU
eXBlOjpjcmVhdGVSZW5kZXJlcihhcmVuYSwgc3R5bGUpOwpAQCAtMTk3LDYgKzIwMSwxMiBAQCB2
b2lkIFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKICAgICBCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7CiB9CiAKK3ZvaWQgVGltZUlu
cHV0VHlwZTo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pCit7CisgICAgaWYg
KG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5m
b2N1cyhyZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOworfQorCiB2b2lkIFRpbWVJbnB1dFR5cGU6
OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxl
bWVudCkKQEAgLTIxNCwyNSArMjI0LDE0IEBAIHZvaWQgVGltZUlucHV0VHlwZTo6aGFuZGxlS2V5
ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgIGZvcndhcmRFdmVudChldmVudCk7
CiB9CiAKLXZvaWQgVGltZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCog
ZXZlbnQpCi17Ci0gICAgaWYgKGVsZW1lbnQoKS0+ZGlzYWJsZWQoKSB8fCBlbGVtZW50KCktPnJl
YWRPbmx5KCkgfHwgIWVsZW1lbnQoKS0+cmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVt
ZW50LT5mb2N1cygpOwotCi0gICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci19Ci0KIGJv
b2wgVGltZUlucHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29u
c3QKIHsKLSAgICByZXR1cm4gZWxlbWVudCgpLT5pc1RleHRGb3JtQ29udHJvbEZvY3VzYWJsZSgp
OworICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9j
dXNhYmxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZWxlbWVudCgpLT5pc1RleHRGb3JtQ29udHJv
bEZvY3VzYWJsZSgpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBUaW1lSW5wdXRUeXBl
OjptaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUu
aAppbmRleCBlZTg3N2RjZjFkNmNjY2RmNWIxNzQ1YjExY2NmOTA5OTU5Y2ZlMzQ3Li5hZWI5ZDkw
YjgyNGFmMWNmZjUyYTVlOTZlNDYxMjA3MTY1MzQzZDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJ
bnB1dFR5cGUuaApAQCAtNjgsMTEgKzY4LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwg
fkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBlZGl0Q29udHJvbE1vdXNlRm9jdXMoKSBPVkVSUklERSBGSU5BTDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZEZpZWxkQmx1cigpIE9WRVJSSURFIEZJTkFMOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmllbGRGb2N1cygpIE9WRVJSSURFIEZJTkFMOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25lcigpIE9WRVJS
SURFIEZJTkFMOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyRGlzYWJs
ZWQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICAgICAgdmlydHVhbCBib29sIGlzRWRpdENv
bnRyb2xPd25lckZvY3VzZWQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICAgICAgdmlydHVh
bCBib29sIGlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7
CiAKICAgICAgICAgVGltZUlucHV0VHlwZSYgbV90aW1lSW5wdXRUeXBlOwpAQCAtODEsMTMgKzgw
LDE1IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIERhdGVUaW1lRWRpdENvbnRyb2xPd25l
ckltcGw7CiAKICAgICAvLyBJbnB1dFR5cGUgZnVuY3Rpb25zCisgICAgdmlydHVhbCB2b2lkIGJs
dXIoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURFIEZJTkFMOwog
ICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJREUgRklOQUw7CiAg
ICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJREUgRklOQUw7CiAg
ICAgdmlydHVhbCB2b2lkIGRpc2FibGVkQXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURFIEZJTkFM
OworICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbikg
T1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGZvcndhcmRFdmVudChFdmVudCopIE9W
RVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2
ZW50KikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVu
dChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIGhhc0N1
c3RvbUZvY3VzTG9naWMoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGJvb2wg
aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgT1ZFUlJJREUgRklOQUw7
CiAgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBPVkVSUklERSBGSU5B
TDsKICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5j
cHAKaW5kZXggNDRhMWMyYjBhNTYxZTI2M2JlMDJmZTkwMTBmMTZmY2MyMDQ1OGZjZC4uYTc0ZWRh
MzRlYmM5ZDE5NzY5N2YyMWNkZDUyMWM5NWRmNTVlZWE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKQEAgLTE5NSw3ICsxOTUs
NiBAQCBEYXRlVGltZUVkaXRFbGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KERvY3VtZW50KiBk
b2N1bWVudCwgRWRpdENvbnRyb2xPd25lciYgZQogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFn
LCBkb2N1bWVudCkKICAgICAsIG1fZWRpdENvbnRyb2xPd25lcigmZWRpdENvbnRyb2xPd25lcikK
ICAgICAsIG1fc3BpbkJ1dHRvbigwKQotICAgICwgbV9mb2N1c0ZpZWxkSW5kZXgoaW52YWxpZEZp
ZWxkSW5kZXgpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRhdGVU
aW1lRWRpdFBzZXVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdCIpKTsKICAgICBzZXRTaGFk
b3dQc2V1ZG9JZChkYXRlVGltZUVkaXRQc2V1ZG9JZCk7CkBAIC0yMTgsMTIgKzIxNywzMCBAQCB2
b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmFkZEZpZWxkKFBhc3NSZWZQdHI8RGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ+IGZpZWxkKQogICAgIGFwcGVuZENoaWxkKGZpZWxkKTsKIH0KIAordm9pZCBEYXRl
VGltZUVkaXRFbGVtZW50OjpibHVyKCkKK3sKKyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQq
IGZpZWxkID0gZm9jdXNGaWVsZCgpKQorICAgICAgICBmaWVsZC0+Ymx1cigpOworfQorCiBQYXNz
UmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmNyZWF0ZShE
b2N1bWVudCogZG9jdW1lbnQsIEVkaXRDb250cm9sT3duZXImIGVkaXRDb250cm9sT3duZXIpCiB7
CiAgICAgUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNvbnRhaW5lciA9IGFkb3B0UmVmKG5l
dyBEYXRlVGltZUVkaXRFbGVtZW50KGRvY3VtZW50LCBlZGl0Q29udHJvbE93bmVyKSk7CiAgICAg
cmV0dXJuIGNvbnRhaW5lci5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6ZGlkRmllbGRCbHVyKCkKK3sKKyAgICBpZiAobV9lZGl0Q29udHJvbE93bmVyKQorICAgICAg
ICBtX2VkaXRDb250cm9sT3duZXItPmRpZEZpZWxkQmx1cigpOworfQorCit2b2lkIERhdGVUaW1l
RWRpdEVsZW1lbnQ6OmRpZEZpZWxkRm9jdXMoKQoreworICAgIGlmIChtX2VkaXRDb250cm9sT3du
ZXIpCisgICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZGlkRmllbGRGb2N1cygpOworfQorCiB2
b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRpc2FibGVkU3RhdGVDaGFuZ2VkKCkKIHsKICAgICB1
cGRhdGVVSVN0YXRlKCk7CkBAIC0yMzQsMTA1ICsyNTEsNzggQEAgRGF0ZVRpbWVGaWVsZEVsZW1l
bnQqIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkQXQoc2l6ZV90IGZpZWxkSW5kZXgpIGNvbnN0
CiAgICAgcmV0dXJuIGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCkgPyBtX2ZpZWxkc1tmaWVs
ZEluZGV4XSA6IDA7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNBbmRTZWxl
Y3RTcGluQnV0dG9uT3duZXIoKQorc2l6ZV90IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkSW5k
ZXhPZihjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYgZmllbGQpIGNvbnN0CiB7Ci0gICAgaWYg
KCFtX2VkaXRDb250cm9sT3duZXIpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2VkaXRDb250cm9s
T3duZXItPmZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25lcigpOworICAgIGZvciAoc2l6ZV90
IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5k
ZXgpIHsKKyAgICAgICAgaWYgKG1fZmllbGRzW2ZpZWxkSW5kZXhdID09ICZmaWVsZCkKKyAgICAg
ICAgICAgIHJldHVybiBmaWVsZEluZGV4OworICAgIH0KKyAgICByZXR1cm4gaW52YWxpZEZpZWxk
SW5kZXg7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNGaWVsZEF0KHNpemVf
dCBuZXdGb2N1c0ZpZWxkSW5kZXgpCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzKGJv
b2wpCiB7Ci0gICAgaWYgKG1fZm9jdXNGaWVsZEluZGV4ID09IG5ld0ZvY3VzRmllbGRJbmRleCkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IG5ld0Zv
Y3VzRmllbGQgPSBmaWVsZEF0KG5ld0ZvY3VzRmllbGRJbmRleCk7Ci0gICAgaWYgKG5ld0ZvY3Vz
RmllbGQgJiYgbmV3Rm9jdXNGaWVsZC0+aXNSZWFkT25seSgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgY3VycmVudEZvY3VzRmllbGQgPSBmaWVs
ZEF0KG1fZm9jdXNGaWVsZEluZGV4KTsKLQotICAgIGlmIChjdXJyZW50Rm9jdXNGaWVsZCkKLSAg
ICAgICAgY3VycmVudEZvY3VzRmllbGQtPnNldEZvY3VzKGZhbHNlKTsKLQotICAgIGlmICghbmV3
Rm9jdXNGaWVsZCkgewotICAgICAgICBtX2ZvY3VzRmllbGRJbmRleCA9IGludmFsaWRGaWVsZElu
ZGV4OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9mb2N1c0ZpZWxkSW5kZXggPSBu
ZXdGb2N1c0ZpZWxkSW5kZXg7Ci0gICAgbmV3Rm9jdXNGaWVsZC0+c2V0Rm9jdXModHJ1ZSk7Cisg
ICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9IGZpZWxkQXQoMCkpCisgICAgICAg
IGZpZWxkLT5mb2N1cygpOwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmhhbmRsZUtl
eWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdmVudCkKK3NpemVfdCBEYXRlVGlt
ZUVkaXRFbGVtZW50Ojpmb2N1c0ZpZWxkSW5kZXgoKSBjb25zdAogewotICAgIGlmIChpc0Rpc2Fi
bGVkKCkgfHwgaXNSZWFkT25seSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWZpZWxk
QXQobV9mb2N1c0ZpZWxkSW5kZXgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoa2V5Ym9h
cmRFdmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciA9IGtleWJvYXJkRXZlbnQt
PmtleUlkZW50aWZpZXIoKTsKLQotICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJMZWZ0Iikgewot
ICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgICAgICBjb25z
dCBzaXplX3QgZmllbGRJbmRleCA9IHByZXZpb3VzRmllbGRJbmRleCgpOwotICAgICAgICBpZiAo
ZmllbGRBdChmaWVsZEluZGV4KSkKLSAgICAgICAgICAgIGZvY3VzRmllbGRBdChmaWVsZEluZGV4
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJS
aWdodCIpIHsKLSAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAg
ICAgICAgY29uc3Qgc2l6ZV90IGZpZWxkSW5kZXggPSBuZXh0RmllbGRJbmRleCgpOwotICAgICAg
ICBpZiAoZmllbGRBdChmaWVsZEluZGV4KSkKLSAgICAgICAgICAgIGZvY3VzRmllbGRBdChmaWVs
ZEluZGV4KTsKLSAgICAgICAgcmV0dXJuOworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAw
OyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKKyAgICAgICAg
aWYgKG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5mb2N1c2VkKCkpCisgICAgICAgICAgICByZXR1cm4g
ZmllbGRJbmRleDsKICAgICB9CisgICAgcmV0dXJuIGludmFsaWRGaWVsZEluZGV4OworfQogCi0g
ICAgaWYgKGtleUlkZW50aWZpZXIgPT0gIlUrMDAwOSIpIHsKLSAgICAgICAgY29uc3Qgc2l6ZV90
IGZpZWxkSW5kZXggPSBrZXlib2FyZEV2ZW50LT5nZXRNb2RpZmllclN0YXRlKCJTaGlmdCIpID8g
cHJldmlvdXNGaWVsZEluZGV4KCkgOiBuZXh0RmllbGRJbmRleCgpOwotICAgICAgICBpZiAoZmll
bGRBdChmaWVsZEluZGV4KSkgewotICAgICAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVs
dEhhbmRsZWQoKTsKLSAgICAgICAgICAgIGZvY3VzRmllbGRBdChmaWVsZEluZGV4KTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KK0RhdGVUaW1lRmllbGRFbGVtZW50KiBE
YXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0ZpZWxkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmll
bGRBdChmb2N1c0ZpZWxkSW5kZXgoKSk7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
ZmllbGRWYWx1ZUNoYW5nZWQoKQorYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c09uTmV4
dEZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JiBmaWVsZCkKIHsKLSAgICBpZiAobV9l
ZGl0Q29udHJvbE93bmVyKQotICAgICAgICBtX2VkaXRDb250cm9sT3duZXItPmVkaXRDb250cm9s
VmFsdWVDaGFuZ2VkKCk7CisgICAgY29uc3Qgc2l6ZV90IHN0YXJ0RmllbGRJbmRleCA9IGZpZWxk
SW5kZXhPZihmaWVsZCk7CisgICAgaWYgKHN0YXJ0RmllbGRJbmRleCA9PSBpbnZhbGlkRmllbGRJ
bmRleCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXgg
PSBzdGFydEZpZWxkSW5kZXggKyAxOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2Zp
ZWxkSW5kZXgpIHsKKyAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNSZWFkT25s
eSgpKSB7CisgICAgICAgICAgICBtX2ZpZWxkc1tmaWVsZEluZGV4XS0+Zm9jdXMoKTsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmYWxzZTsK
IH0KIAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKCkKK2Jvb2wg
RGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNPblByZXZpb3VzRmllbGQoY29uc3QgRGF0ZVRpbWVG
aWVsZEVsZW1lbnQmIGZpZWxkKQogewotICAgIGlmIChtX2ZvY3VzRmllbGRJbmRleCAhPSBpbnZh
bGlkRmllbGRJbmRleCkKLSAgICAgICAgZm9jdXNGaWVsZEF0KG5leHRGaWVsZEluZGV4KCkpOwor
ICAgIGNvbnN0IHNpemVfdCBzdGFydEZpZWxkSW5kZXggPSBmaWVsZEluZGV4T2YoZmllbGQpOwor
ICAgIGlmIChzdGFydEZpZWxkSW5kZXggPT0gaW52YWxpZEZpZWxkSW5kZXgpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBzaXplX3QgZmllbGRJbmRleCA9IHN0YXJ0RmllbGRJbmRleDsKKyAg
ICB3aGlsZSAoZmllbGRJbmRleCA+IDApIHsKKyAgICAgICAgLS1maWVsZEluZGV4OworICAgICAg
ICBpZiAoIW1fZmllbGRzW2ZpZWxkSW5kZXhdLT5pc1JlYWRPbmx5KCkpIHsKKyAgICAgICAgICAg
IG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5mb2N1cygpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIERhdGVUaW1l
RWRpdEVsZW1lbnQ6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogbW91c2VFdmVudCkKK3Zv
aWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNBbmRTZWxlY3RTcGluQnV0dG9uT3duZXIoKQog
ewotICAgIGlmIChpc0Rpc2FibGVkKCkgfHwgaXNSZWFkT25seSgpKQorICAgIGlmIChmb2N1c0Zp
ZWxkSW5kZXgoKSAhPSBpbnZhbGlkRmllbGRJbmRleCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKG1vdXNlRXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgfHwg
bW91c2VFdmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbikKLSAgICAgICAgcmV0dXJuOworICAg
IGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmaWVsZEF0KDApKQorICAgICAgICBm
aWVsZC0+Zm9jdXMoKTsKK30KIAotICAgIE5vZGUqIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBtb3Vz
ZUV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7Ci0gICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9
IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkgewotICAgICAg
ICBpZiAobV9maWVsZHNbZmllbGRJbmRleF0gPT0gcmVsYXRlZFRhcmdldCkgewotICAgICAgICAg
ICAgbW91c2VFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgICAgIGZvY3VzRmll
bGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAgICAgIGlmIChtX2VkaXRDb250cm9sT3duZXIpCi0g
ICAgICAgICAgICAgICAgbV9lZGl0Q29udHJvbE93bmVyLT5lZGl0Q29udHJvbE1vdXNlRm9jdXMo
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQordm9pZCBEYXRlVGltZUVk
aXRFbGVtZW50OjpmaWVsZFZhbHVlQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fZWRpdENvbnRyb2xP
d25lcikKKyAgICAgICAgbV9lZGl0Q29udHJvbE93bmVyLT5lZGl0Q29udHJvbFZhbHVlQ2hhbmdl
ZCgpOwogfQogCiBib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmlzRGlzYWJsZWQoKSBjb25zdApA
QCAtMzQ3LDEwICszMzcsOSBAQCBib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmlzUmVhZE9ubHko
KSBjb25zdAogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dChjb25zdCBTdGVwUmFu
Z2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVWYWx1ZSkKIHsKLSAgICBz
aXplX3QgZm9jdXNGaWVsZEluZGV4ID0gbV9mb2N1c0ZpZWxkSW5kZXg7Ci0gICAgRGF0ZVRpbWVG
aWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1fZm9jdXNGaWVsZEluZGV4
KTsKKyAgICBzaXplX3QgZm9jdXNGaWVsZEluZGV4ID0gdGhpcy0+Zm9jdXNGaWVsZEluZGV4KCk7
CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KGZv
Y3VzRmllbGRJbmRleCk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nIGZvY3VzRmllbGRJZCA9IGZv
Y3VzRmllbGQgPyBmb2N1c0ZpZWxkLT5zaGFkb3dQc2V1ZG9JZCgpIDogbnVsbEF0b207Ci0gICAg
Zm9jdXNGaWVsZEF0KGludmFsaWRGaWVsZEluZGV4KTsKIAogICAgIERhdGVUaW1lRWRpdEJ1aWxk
ZXIgYnVpbGRlcigqdGhpcywgc3RlcFJhbmdlLCBkYXRlVmFsdWUpOwogICAgIGNvbnN0IFN0cmlu
ZyBkYXRlVGltZUZvcm1hdCA9IGJ1aWxkZXIubmVlZFNlY29uZEZpZWxkKCkgPyBsb2NhbGl6ZWRU
aW1lRm9ybWF0VGV4dCgpIDogbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpOwpAQCAtMzY4
LDMyICszNTcsMTEgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQoY29uc3QgU3Rl
cFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21wb25lbnQKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBmb2N1c0ZpZWxkQXQoc3Rk
OjptaW4oZm9jdXNGaWVsZEluZGV4LCBtX2ZpZWxkcy5zaXplKCkgLSAxKSk7CisgICAgICAgIGlm
IChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmaWVsZEF0KHN0ZDo6bWluKGZvY3VzRmll
bGRJbmRleCwgbV9maWVsZHMuc2l6ZSgpIC0gMSkpKQorICAgICAgICAgICAgZmllbGQtPmZvY3Vz
KCk7CiAgICAgfQogfQogCi1zaXplX3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6bmV4dEZpZWxkSW5k
ZXgoKSBjb25zdAotewotICAgIEFTU0VSVChtX2ZvY3VzRmllbGRJbmRleCAhPSBpbnZhbGlkRmll
bGRJbmRleCk7Ci0gICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9IG1fZm9jdXNGaWVsZEluZGV4
ICsgMTsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KSB7Ci0gICAg
ICAgIGlmICghbV9maWVsZHNbZmllbGRJbmRleF0tPmlzUmVhZE9ubHkoKSkKLSAgICAgICAgICAg
IHJldHVybiBmaWVsZEluZGV4OwotICAgIH0KLSAgICByZXR1cm4gbV9maWVsZHMuc2l6ZSgpOwot
fQotCi1zaXplX3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6cHJldmlvdXNGaWVsZEluZGV4KCkgY29u
c3QKLXsKLSAgICBBU1NFUlQobV9mb2N1c0ZpZWxkSW5kZXggIT0gaW52YWxpZEZpZWxkSW5kZXgp
OwotICAgIHNpemVfdCBmaWVsZEluZGV4ID0gbV9mb2N1c0ZpZWxkSW5kZXg7Ci0gICAgd2hpbGUg
KGZpZWxkSW5kZXggPiAwKSB7Ci0gICAgICAgIC0tZmllbGRJbmRleDsKLSAgICAgICAgaWYgKCFt
X2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNSZWFkT25seSgpKQotICAgICAgICAgICAgcmV0dXJuIGZp
ZWxkSW5kZXg7Ci0gICAgfQotICAgIHJldHVybiBpbnZhbGlkRmllbGRJbmRleDsKLX0KLQogdm9p
ZCBEYXRlVGltZUVkaXRFbGVtZW50OjpyZWFkT25seVN0YXRlQ2hhbmdlZCgpCiB7CiAgICAgdXBk
YXRlVUlTdGF0ZSgpOwpAQCAtNDAzLDQyICszNzEsMjIgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVt
ZW50OjpyZXNldExheW91dCgpCiB7CiAgICAgbV9maWVsZHMuc2hyaW5rKDApOwogICAgIG1fc3Bp
bkJ1dHRvbiA9IDA7Ci0gICAgbV9mb2N1c0ZpZWxkSW5kZXggPSBpbnZhbGlkRmllbGRJbmRleDsK
ICAgICByZW1vdmVDaGlsZHJlbigpOwogfQogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewotICAgIGlmIChldmVudC0+dHlwZSgp
ID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50KSB7Ci0gICAgICAgIGlmICghaXNEaXNhYmxlZCgp
ICYmICFpc1JlYWRPbmx5KCkgJiYgbV9mb2N1c0ZpZWxkSW5kZXggPT0gaW52YWxpZEZpZWxkSW5k
ZXgpCi0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQoMCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50KSB7Ci0g
ICAgICAgIGZvY3VzRmllbGRBdChpbnZhbGlkRmllbGRJbmRleCk7Ci0gICAgICAgIHJldHVybjsK
KyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkID0gZm9jdXNGaWVsZCgpKSB7Cisg
ICAgICAgIGZpZWxkLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAgICAgaWYgKGV2
ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQorICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKLSAgICAgICAgaGFuZGxlTW91c2VFdmVudChz
dGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpKTsKLSAgICB9IGVsc2UgaWYgKGV2ZW50LT5p
c0tleWJvYXJkRXZlbnQoKSkKLSAgICAgICAgaGFuZGxlS2V5Ym9hcmRFdmVudChzdGF0aWNfY2Fz
dDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpKTsKLQotICAgIGlmIChldmVudC0+ZGVmYXVsdEhhbmRs
ZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0
IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1fZm9jdXNGaWVsZEluZGV4KTsKLSAgICBpZiAoIWZvY3Vz
RmllbGQpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChtX3NwaW5CdXR0b24pIHsKICAgICAg
ICAgbV9zcGluQnV0dG9uLT5mb3J3YXJkRXZlbnQoZXZlbnQpOwogICAgICAgICBpZiAoZXZlbnQt
PmRlZmF1bHRIYW5kbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAgZm9j
dXNGaWVsZC0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNv
bnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQpAQCAtNDY1LDI2ICs0MTMsMjcgQEAgYm9vbCBEYXRl
VGltZUVkaXRFbGVtZW50OjpzaG91bGRTcGluQnV0dG9uUmVzcG9uZFRvV2hlZWxFdmVudHMoKQog
ICAgIGlmICghc2hvdWxkU3BpbkJ1dHRvblJlc3BvbmRUb01vdXNlRXZlbnRzKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiAhbV9lZGl0Q29udHJvbE93bmVyIHx8IG1fZWRp
dENvbnRyb2xPd25lci0+aXNFZGl0Q29udHJvbE93bmVyRm9jdXNlZCgpOworICAgIHJldHVybiBm
b2N1c0ZpZWxkSW5kZXgoKSAhPSBpbnZhbGlkRmllbGRJbmRleDsKIH0KIAogdm9pZCBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcERvd24oKQogewotICAgIGlmIChEYXRlVGltZUZp
ZWxkRWxlbWVudCogY29uc3QgZm9jdXNGaWVsZCA9IGZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgp
KQotICAgICAgICBmb2N1c0ZpZWxkLT5zdGVwRG93bigpOworICAgIGlmIChEYXRlVGltZUZpZWxk
RWxlbWVudCogY29uc3QgZmllbGQgPSBmb2N1c0ZpZWxkKCkpCisgICAgICAgIGZpZWxkLT5zdGVw
RG93bigpOwogfQogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNwaW5CdXR0b25TdGVwVXAo
KQogewotICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZm9jdXNGaWVsZCA9IGZp
ZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpKQotICAgICAgICBmb2N1c0ZpZWxkLT5zdGVwVXAoKTsK
KyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZpZWxkID0gZm9jdXNGaWVsZCgp
KQorICAgICAgICBmaWVsZC0+c3RlcFVwKCk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6dXBkYXRlVUlTdGF0ZSgpCiB7CiAgICAgaWYgKGlzRGlzYWJsZWQoKSB8fCBpc1JlYWRPbmx5
KCkpIHsKICAgICAgICAgbV9zcGluQnV0dG9uLT5yZWxlYXNlQ2FwdHVyZSgpOwotICAgICAgICBm
b2N1c0ZpZWxkQXQoaW52YWxpZEZpZWxkSW5kZXgpOworICAgICAgICBpZiAoRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQqIGZpZWxkID0gZm9jdXNGaWVsZCgpKQorICAgICAgICAgICAgZmllbGQtPmJsdXIo
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lRWRpdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RWRpdEVsZW1lbnQuaAppbmRleCA0NzY3MzY4ZjRmZTQzZjk0M2NkYjY1M2NhOWE5ZWRmNDI3NDcz
MTE4Li5lNjg5MWEwOWIxNTdhMmZkNGNiMGI0ZjY0OGRmYjM3Njg4ZWZhMzI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCkBAIC00Miw3
ICs0Miw3IEBAIGNsYXNzIFN0ZXBSYW5nZTsKIC8vIHJlcHJlc2VudGluZyBkYXRlIGFuZCB0aW1l
LCBzdWNoIGFzCiAvLyAgLSBZZWFyLCBNb250aCwgRGF5IE9mIE1vbnRoCiAvLyAgLSBIb3VyLCBN
aW51dGUsIFNlY29uZCwgTWlsbGlzZWNvbmQsIEFNL1BNCi1jbGFzcyBEYXRlVGltZUVkaXRFbGVt
ZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50LCBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6
OkZpZWxkRXZlbnRIYW5kbGVyLCBwcml2YXRlIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9u
T3duZXIgeworY2xhc3MgRGF0ZVRpbWVFZGl0RWxlbWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVu
dCwgcHVibGljIERhdGVUaW1lRmllbGRFbGVtZW50OjpGaWVsZE93bmVyLCBwcml2YXRlIFNwaW5C
dXR0b25FbGVtZW50OjpTcGluQnV0dG9uT3duZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KERhdGVUaW1lRWRpdEVsZW1lbnQpOwogCiBwdWJsaWM6CkBAIC01MSwxMSArNTEsMTAgQEAgcHVi
bGljOgogICAgIGNsYXNzIEVkaXRDb250cm9sT3duZXIgewogICAgIHB1YmxpYzoKICAgICAgICAg
dmlydHVhbCB+RWRpdENvbnRyb2xPd25lcigpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNB
bmRTZWxlY3RFZGl0Q29udHJvbE93bmVyKCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZWRp
dENvbnRyb2xNb3VzZUZvY3VzKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmllbGRC
bHVyKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmllbGRGb2N1cygpID0gMDsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCkgPSAwOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyRGlzYWJsZWQoKSBjb25zdCA9IDA7Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCkgY29uc3QgPSAw
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25z
dCA9IDA7CiAgICAgfTsKIApAQCAtNjMsOCArNjIsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB+RGF0ZVRpbWVFZGl0RWxlbWVudCgpOwogICAgIHZvaWQgYWRkRmllbGQoUGFzc1JlZlB0cjxE
YXRlVGltZUZpZWxkRWxlbWVudD4pOworICAgIHZpcnR1YWwgdm9pZCBibHVyKCkgT1ZFUlJJREUg
RklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVS
UklERTsKICAgICB2b2lkIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCk7CisgICAgdmlydHVhbCB2b2lk
IGZvY3VzKGJvb2wpIE9WRVJSSURFIEZJTkFMOwogICAgIHZvaWQgcmVhZE9ubHlTdGF0ZUNoYW5n
ZWQoKTsKICAgICB2b2lkIHJlbW92ZUVkaXRDb250cm9sT3duZXIoKSB7IG1fZWRpdENvbnRyb2xP
d25lciA9IDA7IH0KICAgICB2b2lkIHJlc2V0TGF5b3V0KCk7CkBAIC04OSwxOSArOTAsMjAgQEAg
cHJpdmF0ZToKICAgICBEYXRlVGltZUVkaXRFbGVtZW50KERvY3VtZW50KiwgRWRpdENvbnRyb2xP
d25lciYpOwogCiAgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkQXQoc2l6ZV90KSBjb25z
dDsKLSAgICB2b2lkIGZvY3VzRmllbGRBdChzaXplX3QpOwotICAgIHZvaWQgaGFuZGxlS2V5Ym9h
cmRFdmVudChLZXlib2FyZEV2ZW50Kik7Ci0gICAgdm9pZCBoYW5kbGVNb3VzZUV2ZW50KE1vdXNl
RXZlbnQqKTsKKyAgICBzaXplX3QgZmllbGRJbmRleE9mKGNvbnN0IERhdGVUaW1lRmllbGRFbGVt
ZW50JikgY29uc3Q7CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZvY3VzRmllbGQoKSBjb25z
dDsKKyAgICBzaXplX3QgZm9jdXNGaWVsZEluZGV4KCkgY29uc3Q7CiAgICAgYm9vbCBpc0Rpc2Fi
bGVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdm9pZCBsYXlv
dXQoY29uc3QgU3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsKLSAgICBzaXplX3Qg
bmV4dEZpZWxkSW5kZXgoKSBjb25zdDsKLSAgICBzaXplX3QgcHJldmlvdXNGaWVsZEluZGV4KCkg
Y29uc3Q7CiAgICAgdm9pZCB1cGRhdGVVSVN0YXRlKCk7CiAKLSAgICAvLyBEYXRlVGltZUZpZWxk
RWxlbWVudDo6RmllbGRFdmVudEhhbmRsZXIgZnVuY3Rpb25zLgorICAgIC8vIERhdGVUaW1lRmll
bGRFbGVtZW50OjpGaWVsZE93bmVyIGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmll
bGRCbHVyKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpZWxkRm9jdXMo
KSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZmllbGRWYWx1ZUNoYW5nZWQoKSBP
VkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNPbk5leHRGaWVsZCgpIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBmb2N1c09uTmV4dEZpZWxkKGNvbnN0IERhdGVU
aW1lRmllbGRFbGVtZW50JikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIGZvY3Vz
T25QcmV2aW91c0ZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgT1ZFUlJJREUgRklO
QUw7CiAKICAgICAvLyBTcGluQnV0dG9uRWxlbWVudDo6U3BpbkJ1dHRvbk93bmVyIGZ1bmN0aW9u
cy4KICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNBbmRTZWxlY3RTcGluQnV0dG9uT3duZXIoKSBPVkVS
UklERSBGSU5BTDsKQEAgLTExMyw3ICsxMTUsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxEYXRl
VGltZUZpZWxkRWxlbWVudCosIG1heGltdW1OdW1iZXJPZkZpZWxkcz4gbV9maWVsZHM7CiAgICAg
RWRpdENvbnRyb2xPd25lciogbV9lZGl0Q29udHJvbE93bmVyOwogICAgIFNwaW5CdXR0b25FbGVt
ZW50KiBtX3NwaW5CdXR0b247Ci0gICAgc2l6ZV90IG1fZm9jdXNGaWVsZEluZGV4OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwCmluZGV4IGQ1YjE3MzMwMjMxNjQ2MDc0M2M0MDcz
MmFmM2UxYWVlZjM5YTZhZDUuLjZjYzhjMjljNzdkOWEzNmIxOTc0YWVlZWU5NDY5Yjk4ZjdiYTc0
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxk
RWxlbWVudC5jcHAKQEAgLTI4LDI2ICsyOCwzOCBAQAogI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRF
bGVtZW50LmgiCiAKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkZvY3Vz
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIktleWJvYXJk
RXZlbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotRGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OkZpZWxkRXZlbnRIYW5kbGVyOjp+RmllbGRFdmVudEhhbmRsZXIo
KQorRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkZpZWxkT3duZXI6On5GaWVsZE93bmVyKCkKIHsKIH0K
IAotRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50KERvY3VtZW50KiBk
b2N1bWVudCwgRmllbGRFdmVudEhhbmRsZXImIGZpZWxkRXZlbnRIYW5kbGVyKQorRGF0ZVRpbWVG
aWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmll
bGRPd25lciYgZmllbGRPd25lcikKICAgICA6IEhUTUxFbGVtZW50KHNwYW5UYWcsIGRvY3VtZW50
KQotICAgICwgbV9maWVsZEV2ZW50SGFuZGxlcigmZmllbGRFdmVudEhhbmRsZXIpCisgICAgLCBt
X2ZpZWxkT3duZXIoJmZpZWxkT3duZXIpCiB7CiB9CiAKIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogeworICAgIGlmIChldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50KSB7CisgICAgICAgIGlmIChtX2ZpZWxk
T3duZXIpCisgICAgICAgICAgICBtX2ZpZWxkT3duZXItPmRpZEZpZWxkRm9jdXMoKTsKKyAgICB9
CisKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50KSB7Cisg
ICAgICAgIGlmIChtX2ZpZWxkT3duZXIpCisgICAgICAgICAgICBtX2ZpZWxkT3duZXItPmRpZEZp
ZWxkQmx1cigpOworICAgIH0KKwogICAgIGlmIChldmVudC0+aXNLZXlib2FyZEV2ZW50KCkpIHsK
ICAgICAgICAgS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdmVudCA9IHN0YXRpY19jYXN0PEtleWJv
YXJkRXZlbnQqPihldmVudCk7CiAgICAgICAgIGhhbmRsZUtleWJvYXJkRXZlbnQoa2V5Ym9hcmRF
dmVudCk7CkBAIC03NCw2ICs4NiwyMiBAQCB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50OjpkZWZh
dWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdgogICAgICAg
ICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKGtleUlkZW50aWZpZXIgPT0gIkxlZnQiKSB7Cisg
ICAgICAgIGlmIChtX2ZpZWxkT3duZXIpIHsKKyAgICAgICAgICAgIGlmIChpc1JUTCgpID8gbV9m
aWVsZE93bmVyLT5mb2N1c09uTmV4dEZpZWxkKCp0aGlzKSA6IG1fZmllbGRPd25lci0+Zm9jdXNP
blByZXZpb3VzRmllbGQoKnRoaXMpKQorICAgICAgICAgICAgICAgIGtleWJvYXJkRXZlbnQtPnNl
dERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJSaWdodCIpIHsKKyAgICAgICAgaWYgKG1fZmllbGRP
d25lcikgeworICAgICAgICAgICAgaWYgKGlzUlRMKCkgPyBtX2ZpZWxkT3duZXItPmZvY3VzT25Q
cmV2aW91c0ZpZWxkKCp0aGlzKSA6IG1fZmllbGRPd25lci0+Zm9jdXNPbk5leHRGaWVsZCgqdGhp
cykpCisgICAgICAgICAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKGtleUlkZW50aWZp
ZXIgPT0gIlVwIikgewogICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgp
OwogICAgICAgICBzdGVwVXAoKTsKQEAgLTg5LDggKzExNyw5IEBAIHZvaWQgRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBrZXli
b2FyZEV2CiAKIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQoKQog
ewotICAgIGlmIChtX2ZpZWxkRXZlbnRIYW5kbGVyKQotICAgICAgICBtX2ZpZWxkRXZlbnRIYW5k
bGVyLT5mb2N1c09uTmV4dEZpZWxkKCk7CisgICAgaWYgKCFtX2ZpZWxkT3duZXIpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2ZpZWxkT3duZXItPmZvY3VzT25OZXh0RmllbGQoKnRoaXMpOwogfQog
CiB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21pY1N0cmlu
ZyYgc2hhZG93UHNldWRvSWQpCkBAIC05OSwxMSArMTI4LDIyIEBAIHZvaWQgRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCkK
ICAgICBhcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgdmlzaWJsZVZhbHVlKCkp
KTsKIH0KIAorYm9vbCBEYXRlVGltZUZpZWxkRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAor
eworICAgIHJldHVybiAhaXNSZWFkT25seSgpOworfQorCisKIGJvb2wgRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ6OmlzUmVhZE9ubHkoKSBjb25zdAogewogICAgIHJldHVybiBmYXN0SGFzQXR0cmlidXRl
KHJlYWRvbmx5QXR0cik7CiB9CiAKK2Jvb2wgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmlzUlRMKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5zdHlsZSgpLT5k
aXJlY3Rpb24oKSA9PSBSVEw7Cit9CisKIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnNldFJl
YWRPbmx5KCkKIHsKICAgICAvLyBTZXQgSFRNTCBhdHRyaWJ1dGUgcmVhZG9ubHkgdG8gY2hhbmdl
IGFwcGVyYW5jZS4KQEAgLTExMSw2ICsxNTEsMTEgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVu
dDo6c2V0UmVhZE9ubHkoKQogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAorYm9vbCBE
YXRlVGltZUZpZWxkRWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVwZGF0ZVZpc2libGVWYWx1
ZShFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgVGV4dCogY29uc3QgdGV4dE5v
ZGUgPSB0b1RleHQoZmlyc3RDaGlsZCgpKTsKQEAgLTEyMiw4ICsxNjcsOCBAQCB2b2lkIERhdGVU
aW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNpYmxlVmFsdWUoRXZlbnRCZWhhdmlvciBldmVudEJl
aGF2aW9yKQogCiAgICAgdGV4dE5vZGUtPnJlcGxhY2VXaG9sZVRleHQobmV3VmlzaWJsZVZhbHVl
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIGlmIChldmVudEJlaGF2aW9yID09IERpc3Bh
dGNoRXZlbnQgJiYgbV9maWVsZEV2ZW50SGFuZGxlcikKLSAgICAgICAgbV9maWVsZEV2ZW50SGFu
ZGxlci0+ZmllbGRWYWx1ZUNoYW5nZWQoKTsKKyAgICBpZiAoZXZlbnRCZWhhdmlvciA9PSBEaXNw
YXRjaEV2ZW50ICYmIG1fZmllbGRPd25lcikKKyAgICAgICAgbV9maWVsZE93bmVyLT5maWVsZFZh
bHVlQ2hhbmdlZCgpOwogfQogCiBkb3VibGUgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnZhbHVlQXNE
b3VibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RmllbGRFbGVtZW50LmgKaW5kZXggMDY2YjYxZmZhYjA5N2EyMDIyN2JmYmRkODYzYzk0ODgxNTU2
OTc0Ny4uYjk3M2FlOThmYWIxNThlNDk1YzFlMWMwMjQxMmQ3NjE5NDNjZDAwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCkBAIC00
NCwxOSArNDQsMjIgQEAgcHVibGljOgogICAgICAgICBEaXNwYXRjaEV2ZW50LAogICAgIH07CiAK
LSAgICAvLyBGaWVsZEV2ZW50SGFuZGxlciBpbXBsZW1lbnRlciBtdXN0IGNhbGwgcmVtb3ZlRXZl
bnRIYW5kbGVyIHdoZW4KKyAgICAvLyBGaWVsZE93bmVyIGltcGxlbWVudGVyIG11c3QgY2FsbCBy
ZW1vdmVFdmVudEhhbmRsZXIgd2hlbgogICAgIC8vIGl0IGRvZXNuJ3QgaGFuZGxlIGV2ZW50LCBl
LmcuIGF0IGRlc3RydWN0aW9uLgotICAgIGNsYXNzIEZpZWxkRXZlbnRIYW5kbGVyIHsKKyAgICBj
bGFzcyBGaWVsZE93bmVyIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgfkZpZWxkRXZl
bnRIYW5kbGVyKCk7CisgICAgICAgIHZpcnR1YWwgfkZpZWxkT3duZXIoKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIGZpZWxkVmFsdWVDaGFuZ2VkKCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
Zm9jdXNPbk5leHRGaWVsZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpZWxkQmx1
cigpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpZWxkRm9jdXMoKSA9IDA7CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBmb2N1c09uTmV4dEZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVt
ZW50JikgPSAwOworICAgICAgICB2aXJ0dWFsIGJvb2wgZm9jdXNPblByZXZpb3VzRmllbGQoY29u
c3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSA9IDA7CiAgICAgfTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IGhhc1ZhbHVlKCkgY29uc3QgPSAwOwogICAgIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0OwotICAg
IHZvaWQgcmVtb3ZlRXZlbnRIYW5kbGVyKCkgeyBtX2ZpZWxkRXZlbnRIYW5kbGVyID0gMDsgfQor
ICAgIHZvaWQgcmVtb3ZlRXZlbnRIYW5kbGVyKCkgeyBtX2ZpZWxkT3duZXIgPSAwOyB9CiAgICAg
dm9pZCBzZXRSZWFkT25seSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0
IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCwgRXZlbnRCZWhhdmlvciA9IERp
c3BhdGNoTm9FdmVudCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25z
dCBEYXRlQ29tcG9uZW50cyYpID0gMDsKQEAgLTY5LDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0ID0gMDsKIAogcHJvdGVjdGVkOgotICAg
IERhdGVUaW1lRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRFdmVudEhhbmRsZXImKTsKKyAg
ICBEYXRlVGltZUZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3duZXImKTsKICAgICB2b2lk
IGZvY3VzT25OZXh0RmllbGQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVu
dChLZXlib2FyZEV2ZW50KikgPSAwOwogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBBdG9taWNT
dHJpbmcmKTsKQEAgLTc4LDggKzgxLDExIEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2
b2lkIGRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7CisgICAgdmly
dHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICBib29sIGlz
UlRMKCkgY29uc3Q7CiAKLSAgICBGaWVsZEV2ZW50SGFuZGxlciogbV9maWVsZEV2ZW50SGFuZGxl
cjsKKyAgICBGaWVsZE93bmVyKiBtX2ZpZWxkT3duZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZp
ZWxkRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVs
ZEVsZW1lbnRzLmNwcAppbmRleCAxZmY3ZmE1YzdkYTAyODc3ZGU0Y2QxNmEzOTlhZTk4NzkwYjU5
MzJlLi5kOGJjODQ5ZmQwOTdmMDkzMzFmMTcxOTgyNDNmMmZlNThiNmM2ZjFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAK
QEAgLTMyLDE1ICszMiwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURhdGVUaW1lQU1Q
TUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVu
dCwgRmllbGRFdmVudEhhbmRsZXImIGZpZWxkRXZlbnRIYW5kbGVyLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgYW1wbUxhYmVscykKLSAgICA6IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQoZG9j
dW1lbnQsIGZpZWxkRXZlbnRIYW5kbGVyLCBhbXBtTGFiZWxzKQorRGF0ZVRpbWVBTVBNRmllbGRF
bGVtZW50OjpEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVs
ZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYW1wbUxhYmVscykKKyAg
ICA6IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIGFt
cG1MYWJlbHMpCiB7CiB9CiAKLVBhc3NSZWZQdHI8RGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50PiBE
YXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxk
RXZlbnRIYW5kbGVyJiBmaWVsZEV2ZW50SGFuZGxlciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFt
cG1MYWJlbHMpCitQYXNzUmVmUHRyPERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudD4gRGF0ZVRpbWVB
TVBNRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBm
aWVsZE93bmVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYW1wbUxhYmVscykKIHsKICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYW1wbVBzdWVkb0lkLCAoIi13ZWJraXQtZGF0
ZXRpbWUtZWRpdC1hbXBtLWZpZWxkIikpOwotICAgIFJlZlB0cjxEYXRlVGltZUFNUE1GaWVsZEVs
ZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudChkb2N1
bWVudCwgZmllbGRFdmVudEhhbmRsZXIsIGFtcG1MYWJlbHMpKTsKKyAgICBSZWZQdHI8RGF0ZVRp
bWVBTVBNRmllbGRFbGVtZW50PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZUFNUE1GaWVs
ZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIGFtcG1MYWJlbHMpKTsKICAgICBmaWVsZC0+
aW5pdGlhbGl6ZShhbXBtUHN1ZWRvSWQpOwogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CiB9
CkBAIC01NywxNyArNTcsMTcgQEAgZG91YmxlIERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudDo6dW5p
dEluTWlsbGlzZWNvbmQoKSBjb25zdAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLURhdGVUaW1lSG91ckZpZWxkRWxlbWVudDo6RGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50KERv
Y3VtZW50KiBkb2N1bWVudCwgRmllbGRFdmVudEhhbmRsZXImIGZpZWxkRXZlbnRIYW5kbGVyLCBp
bnQgbWluaW11bSwgaW50IG1heGltdW0pCi0gICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQoZG9jdW1lbnQsIGZpZWxkRXZlbnRIYW5kbGVyLCBtaW5pbXVtLCBtYXhpbXVtKQorRGF0ZVRp
bWVIb3VyRmllbGRFbGVtZW50OjpEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRv
Y3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQgbWluaW11bSwgaW50IG1heGltdW0p
CisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIs
IG1pbmltdW0sIG1heGltdW0pCiAgICAgLCBtX2FsaWdubWVudChtYXhpbXVtICsgbWF4aW11bSAl
IDIpCiB7CiAgICAgQVNTRVJUKCghbWluaW11bSAmJiAobWF4aW11bSA9PSAxMSB8fCBtYXhpbXVt
ID09IDIzKSkgfHwgKG1pbmltdW0gPT0gMSAmJiAobWF4aW11bSA9PSAxMiB8fCBtYXhpbXVtID09
IDI0KSkpOwogfQogCi1QYXNzUmVmUHRyPERhdGVUaW1lSG91ckZpZWxkRWxlbWVudD4gRGF0ZVRp
bWVIb3VyRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZEV2ZW50
SGFuZGxlciYgZmllbGRFdmVudEhhbmRsZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSkKK1Bh
c3NSZWZQdHI8RGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50PiBEYXRlVGltZUhvdXJGaWVsZEVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGlu
dCBtaW5pbXVtLCBpbnQgbWF4aW11bSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaG91clBzdWVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1ob3VyLWZpZWxk
IikpOwotICAgIFJlZlB0cjxEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRS
ZWYobmV3IERhdGVUaW1lSG91ckZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRFdmVudEhhbmRs
ZXIsIG1pbmltdW0sIG1heGltdW0pKTsKKyAgICBSZWZQdHI8RGF0ZVRpbWVIb3VyRmllbGRFbGVt
ZW50PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQoZG9jdW1l
bnQsIGZpZWxkT3duZXIsIG1pbmltdW0sIG1heGltdW0pKTsKICAgICBmaWVsZC0+aW5pdGlhbGl6
ZShob3VyUHN1ZWRvSWQpOwogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CiB9CkBAIC05NSwx
NSArOTUsMTUgQEAgaW50IERhdGVUaW1lSG91ckZpZWxkRWxlbWVudDo6dmFsdWVBc0ludGVnZXIo
KSBjb25zdAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLURhdGVUaW1lTWls
bGlzZWNvbmRGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50LCBGaWVsZEV2ZW50SGFuZGxlciYgZmllbGRFdmVudEhhbmRsZXIpCi0g
ICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkRXZlbnRIYW5k
bGVyLCAwLCA5OTkpCitEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50OjpEYXRlVGltZU1p
bGxpc2Vjb25kRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmll
bGRPd25lcikKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmll
bGRPd25lciwgMCwgOTk5KQogewogfQogCi1QYXNzUmVmUHRyPERhdGVUaW1lTWlsbGlzZWNvbmRG
aWVsZEVsZW1lbnQ+IERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCogZG9jdW1lbnQsIEZpZWxkRXZlbnRIYW5kbGVyJiBmaWVsZEV2ZW50SGFuZGxlcikKK1Bh
c3NSZWZQdHI8RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVNaWxsaXNl
Y29uZEZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYg
ZmllbGRPd25lcikKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWls
bGlzZWNvbmRQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtbWlsbGlzZWNvbmQtZmll
bGQiKSk7Ci0gICAgUmVmUHRyPERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ+IGZpZWxk
ID0gYWRvcHRSZWYobmV3IERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQoZG9jdW1lbnQs
IGZpZWxkRXZlbnRIYW5kbGVyKSk7CisgICAgUmVmUHRyPERhdGVUaW1lTWlsbGlzZWNvbmRGaWVs
ZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVs
ZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKICAgICBmaWVsZC0+aW5pdGlhbGl6ZShtaWxs
aXNlY29uZFBzdWVkb0lkKTsKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwogfQpAQCAtMTIw
LDE1ICsxMjAsMTUgQEAgZG91YmxlIERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6OnVu
aXRJbk1pbGxpc2Vjb25kKCkgY29uc3QKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCi1EYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZEV2ZW50SGFuZGxlciYgZmllbGRFdmVudEhhbmRs
ZXIpCi0gICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkRXZl
bnRIYW5kbGVyLCAwLCA1OSkKK0RhdGVUaW1lTWludXRlRmllbGRFbGVtZW50OjpEYXRlVGltZU1p
bnV0ZUZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3du
ZXIpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3du
ZXIsIDAsIDU5KQogewogfQogCi1QYXNzUmVmUHRyPERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50
PiBEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwg
RmllbGRFdmVudEhhbmRsZXImIGZpZWxkRXZlbnRIYW5kbGVyKQorUGFzc1JlZlB0cjxEYXRlVGlt
ZU1pbnV0ZUZpZWxkRWxlbWVudD4gRGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ6OmNyZWF0ZShE
b2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCiB7CiAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1pbnV0ZVBzdWVkb0lkLCAoIi13ZWJraXQtZGF0
ZXRpbWUtZWRpdC1taW51dGUtZmllbGQiKSk7Ci0gICAgUmVmUHRyPERhdGVUaW1lTWludXRlRmll
bGRFbGVtZW50PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVu
dChkb2N1bWVudCwgZmllbGRFdmVudEhhbmRsZXIpKTsKKyAgICBSZWZQdHI8RGF0ZVRpbWVNaW51
dGVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lTWludXRlRmllbGRF
bGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7CiAgICAgZmllbGQtPmluaXRpYWxpemUobWlu
dXRlUHN1ZWRvSWQpOwogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CiB9CkBAIC0xNDUsMTUg
KzE0NSwxNSBAQCBkb3VibGUgRGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ6OnVuaXRJbk1pbGxp
c2Vjb25kKCkgY29uc3QKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1EYXRl
VGltZVNlY29uZEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50LCBGaWVsZEV2ZW50SGFuZGxlciYgZmllbGRFdmVudEhhbmRsZXIpCi0gICAg
OiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkRXZlbnRIYW5kbGVy
LCAwLCA1OSkKK0RhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50OjpEYXRlVGltZVNlY29uZEZpZWxk
RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCisgICAg
OiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIDAsIDU5
KQogewogfQogCi1QYXNzUmVmUHRyPERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50PiBEYXRlVGlt
ZVNlY29uZEZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRFdmVu
dEhhbmRsZXImIGZpZWxkRXZlbnRIYW5kbGVyKQorUGFzc1JlZlB0cjxEYXRlVGltZVNlY29uZEZp
ZWxkRWxlbWVudD4gRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHNlY29uZFBzdWVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRp
dC1zZWNvbmQtZmllbGQiKSk7Ci0gICAgUmVmUHRyPERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50
PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudChkb2N1bWVu
dCwgZmllbGRFdmVudEhhbmRsZXIpKTsKKyAgICBSZWZQdHI8RGF0ZVRpbWVTZWNvbmRGaWVsZEVs
ZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50KGRv
Y3VtZW50LCBmaWVsZE93bmVyKSk7CiAgICAgZmllbGQtPmluaXRpYWxpemUoc2Vjb25kUHN1ZWRv
SWQpOwogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oCmluZGV4IDU3YmMxZWZhNTUy
ZTM0ODA0ZDYzYzM1NDBkZTY2MmEwZWYwNDdiNTIuLmQ3ZjRkOTUzODAzODVlMGNkMmExZTA4MDNh
OWVmZDU4MDg0YTBhODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lRmllbGRFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lRmllbGRFbGVtZW50cy5oCkBAIC0zNiwxMCArMzYsMTAgQEAgY2xhc3MgRGF0ZVRpbWVB
TVBNRmllbGRFbGVtZW50IDogcHVibGljIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudCk7CiAKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCosIEZpZWxkRXZlbnRIYW5kbGVyJiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCosIEZpZWxkT3duZXImLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogCiBwcml2
YXRlOgotICAgIERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkRXZlbnRI
YW5kbGVyJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyAgICBEYXRlVGltZUFNUE1GaWVsZEVs
ZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKIAog
ICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQg
c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERSBGSU5BTDsKQEAg
LTU3LDEwICs1NywxMCBAQCBjbGFzcyBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQgOiBwdWJsaWMg
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShE
YXRlVGltZUhvdXJGaWVsZEVsZW1lbnQpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8RGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZEV2ZW50
SGFuZGxlciYsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSk7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVy
JiwgaW50IG1pbmltdW0sIGludCBtYXhpbXVtKTsKIAogcHJpdmF0ZToKLSAgICBEYXRlVGltZUhv
dXJGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZEV2ZW50SGFuZGxlciYsIGludCBtaW5pbXVt
LCBpbnQgbWF4aW11bSk7CisgICAgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50KERvY3VtZW50Kiwg
RmllbGRPd25lciYsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSk7CiAKICAgICAvLyBEYXRlVGlt
ZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRl
KGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREUgRklOQUw7CkBAIC03NSwxMCArNzUsMTAg
QEAgY2xhc3MgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1l
TWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50KiwgRmll
bGRFdmVudEhhbmRsZXImKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZU1pbGxpc2Vj
b25kRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVyJik7CiAKIHByaXZh
dGU6Ci0gICAgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxk
RXZlbnRIYW5kbGVyJik7CisgICAgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudChEb2N1
bWVudCosIEZpZWxkT3duZXImKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0
aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVu
dHMmKSBPVkVSUklERSBGSU5BTDsKQEAgLTg5LDEwICs4OSwxMCBAQCBjbGFzcyBEYXRlVGltZU1p
bnV0ZUZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50KTsKIAog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50
PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZEV2ZW50SGFuZGxlciYpOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVs
ZE93bmVyJik7CiAKIHByaXZhdGU6Ci0gICAgRGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQoRG9j
dW1lbnQqLCBGaWVsZEV2ZW50SGFuZGxlciYpOworICAgIERhdGVUaW1lTWludXRlRmllbGRFbGVt
ZW50KERvY3VtZW50KiwgRmllbGRPd25lciYpOwogCiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1l
bnQgZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRl
Q29tcG9uZW50cyYpIE9WRVJSSURFIEZJTkFMOwpAQCAtMTAzLDEwICsxMDMsMTAgQEAgY2xhc3Mg
RGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZVNlY29uZEZpZWxkRWxl
bWVudCk7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZVNlY29uZEZp
ZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50KiwgRmllbGRFdmVudEhhbmRsZXImKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50KiwgRmllbGRPd25lciYpOwogCiBwcml2YXRlOgotICAgIERhdGVUaW1lU2Vjb25kRmllbGRF
bGVtZW50KERvY3VtZW50KiwgRmllbGRFdmVudEhhbmRsZXImKTsKKyAgICBEYXRlVGltZVNlY29u
ZEZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3duZXImKTsKIAogICAgIC8vIERhdGVUaW1l
RmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUo
Y29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERSBGSU5BTDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3Bw
CmluZGV4IGQ1MjJlMTU3OWJmNTM1YjUyMDE1MmYwZDkzYWM0Zjg0ZDkyMzY4NWMuLmE0MDUzYjU3
NzVmNGI1YzQwMTE0NTRiODc0MjUxZWUxMTVkZmRmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcApA
QCAtNjMsOCArNjMsOCBAQCBpbnQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5nZTo6
Y2xhbXBWYWx1ZShpbnQgdmFsdWUpIGNvbnN0CiAgICAgcmV0dXJuIHN0ZDo6bWluKHN0ZDo6bWF4
KHZhbHVlLCBtaW5pbXVtKSwgbWF4aW11bSk7CiB9CiAKLURhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudDo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmll
bGRFdmVudEhhbmRsZXImIGZpZWxkRXZlbnRIYW5kbGVyLCBpbnQgbWluaW11bSwgaW50IG1heGlt
dW0pCi0gICAgOiBEYXRlVGltZUZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRFdmVudEhhbmRs
ZXIpCitEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGludCBtaW5p
bXVtLCBpbnQgbWF4aW11bSkKKyAgICA6IERhdGVUaW1lRmllbGRFbGVtZW50KGRvY3VtZW50LCBm
aWVsZE93bmVyKQogICAgICwgbV9sYXN0RGlnaXRDaGFyVGltZSgwKQogICAgICwgbV9yYW5nZSht
aW5pbXVtLCBtYXhpbXVtKQogICAgICwgbV92YWx1ZSgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaAppbmRleCA3
Y2IzOTgyNTBjMjg1MDI5OWM0MTU1YTBlODVlYzhiODE0ZTFkMWZhLi4zNzE5YmMxMzBlMzFiMzc0
NmIzMzlmNzljZDMyMGQ3NWI0M2UxZmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaApAQCAtNTAsNyArNTAs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGludCBtaW5pbXVtOwogICAgIH07CiAKLSAgICBEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZEV2ZW50SGFuZGxlciYsIGlu
dCBtaW5pbXVtLCBpbnQgbWF4aW11bSk7CisgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
KERvY3VtZW50KiwgRmllbGRPd25lciYsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSk7CiAKICAg
ICBpbnQgY2xhbXBWYWx1ZShpbnQgdmFsdWUpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2UuY2xhbXBW
YWx1ZSh2YWx1ZSk7IH0KICAgICBjb25zdCBSYW5nZSYgcmFuZ2UoKSBjb25zdCB7IHJldHVybiBt
X3JhbmdlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCmluZGV4IDA4ZWI1MjIyOWNhYmI5OTllOTY5
NDljYzZmZDU3NWNkYWYyNDg0NmYuLjY5ZmZjMzE1NjY1MmZlNzMzNDdjYjEzNDQ0NTY4N2ZhMzE3
NzJjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCkBAIC0zMiw4ICszMiw4IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkRXZlbnRIYW5kbGVy
JiBmaWVsZEV2ZW50SGFuZGxlciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHN5bWJvbHMpCi0gICAg
OiBEYXRlVGltZUZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRFdmVudEhhbmRsZXIpCitEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KERv
Y3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIHN5bWJvbHMpCisgICAgOiBEYXRlVGltZUZpZWxkRWxlbWVudChkb2N1bWVudCwgZmll
bGRPd25lcikKICAgICAsIG1fc3ltYm9scyhzeW1ib2xzKQogICAgICwgbV9zZWxlY3RlZEluZGV4
KC0xKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oCmluZGV4IDgzMjlkZDExNDE1ZDZiYWIyZTA3ZDAzZjA3
NjUxYWMzNTkyMmFlMGQuLjJlMzFmMzlkZmFjNWM3NzIwNzQzZTExMzcwYTk4OGE4Y2EyZTY4MTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVudCB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk7CiAKIHByb3Rl
Y3RlZDoKLSAgICBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRF
dmVudEhhbmRsZXImLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOworICAgIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0ludGVnZXIoaW50LCBFdmVudEJlaGF2
aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSBPVkVSUklERSBGSU5BTDsKIAogcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161399</attachid>
            <date>2012-08-29 22:10:59 -0700</date>
            <delta_ts>2012-08-30 00:51:16 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>bug-95168-20120830141048.patch</filename>
            <type>text/plain</type>
            <size>34243</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyODk0YzY4YzhmZDM2
M2ZkYTAyNTQzZjljNmMzOWUxZjQ1ODhkNC4uZDVlZmJiNmYyOGM5YzhhNTMzZWIzYjY1NDk4MjJi
NTc5NTg0MjY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTA4LTI5ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBTaGlm
dCtUYWIgc2hvdWxkIGZvY3VzIHRoZSBsYXN0IGZpZWxkIG9mIG11bHRpcGxlIGZpZWxkcyB0aW1l
IGlucHV0IFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NTE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggY2hhbmdlcyBmb2N1cyBoYW5kbGluZyBpbiBEYXRlVGltZUVkaXRFbGVtZW50
IGNsYXNzIGZvcgorICAgICAgICBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAg
ICAgICBDdXJyZW50IGltcGxlbWVudGF0aW9uIGNvbnRyb2xzIGZvY3VzIGluIGZpZWxkcyBieSBE
YXRlVGltZUVkaXRFbGVtZW50CisgICAgICAgIGFuZCBhIGZvY3VzIGZpZWxkIGlzIHRyYWNrZWQg
bV9mb2N1c0ZpZWxkSW5kZXggbWVtYmVyIHZhcmlhYmxlLiBJbgorICAgICAgICBjdXJyZW50IGlt
cGxlbWVudGF0aW9uLCBpdCBpcyBoYXJkIHRvIHNldCBmb2N1cyB0byB0aGUgbGFzdCBmaWVsZCB3
aGVuCisgICAgICAgIGl0IGdldHMgZm9jdXMsIGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyBob3cgRGF0
ZVRpbWVFZGl0RWxlbWVudCBnZXRzCisgICAgICAgIGZvY3VzLgorCisgICAgICAgIEluIHRoaXMg
bmV3IGltcGxlbWVudGF0aW9uLCBEYXRlVGltZUVkaXRFbGVtZW50IGRvZXNuJ3QgY29udHJvbCBm
b2N1cworICAgICAgICByYXRoZXIgRm9jdXNDb250cm9sbGVyIGNsYXNzIGNvbnRyb2xzIGZvY3Vz
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBjaGFuZ2VzIGhhbmRsaW5nIG9mIExlZnQvUmln
aHQga2V5cyB0byBhd2FyZSB0ZXh0CisgICAgICAgIGRpcmVjdGlvbiAoImRpciIgYXR0cmlidXRl
IikuIExlZnQvUmlnaHQga2V5cyBzaG91bGQgbW92ZSBmb2N1cworICAgICAgICBwaHlzaWNhbCBy
aWdodC9sZWZ0IGluc3RlYWQgb2YgbG9naWNhbCByaWdodC9sZWZ0LgorCisgICAgICAgIFRoaXMg
cGF0Y2ggYWZmZWN0cyBvbmx5IHBvcnRzIHdoaWNoIGVuYWJsZSBib3RoIEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUKKyAgICAgICAgYW5kIEVOQUJMRV9JTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklF
TERTLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhpcyBwYXRjaCBhZGRzIG5ldyB0ZXN0IGNh
c2VzIGludG8KKyAgICAgICAgZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11
bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIGh0bWwvVGlt
ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGlt
ZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRGaWVsZEJsdXIpOiBBZGRlZCBmb3IgdGhlIGlucHV0
IGVsZW1lbnQgbm90IHRvIGJlIG1hdGNoZWQgImZvY3VzIiBwc2V1ZG8gY2xhc3MgZm9yIHJlbW92
aW5nIGZvY3VzIHJpbmcuCisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGlt
ZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRGaWVsZEZvY3VzKTogIEFkZGVkIGZvciB0aGUgaW5w
dXQgZWxlbWVudCB0byBiZSBtYXRjaGVkICJmb2N1cyIgcHNldWRvIGNsYXNzIGZvciBhZGRpbmcg
Zm9jdXMgcmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZv
Y3VzTG9naWMpOiBBZGRlZCBmb3IgYXNraW5nIEZvY3VzQ29udHJvbGxlciB0byB3YWxrIGludG8g
c2hhZG93IERPTSB0cmVlIG9uIGlucHV0IHR5cGUgInRpbWUiLgorICAgICAgICAoV2ViQ29yZTo6
VGltZUlucHV0VHlwZTo6Ymx1cik6IEFkZGVkIGZvciBkZWxlZ2F0aW5nIGJsdXIoKSBhY3Rpb24g
dG8gRGF0ZVRpbWVFZGl0RWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6
OmZvY3VzKTogQWRkZWQgZm9yIGRlbGVnYXRpbmcgZm9jdXMoKSBhY3Rpb24gdG8gRGF0ZVRpbWVF
ZGl0RWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRG
b2N1c2FibGUpOiBDaGFuZ2VkIGZvciAiaW5wdXQiIGVsZW1lbnQgbm90IHRvIGhhdmUgZm9jdXMu
CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKTogIENo
YW5nZWQgZm9yICJpbnB1dCIgZWxlbWVudCBub3QgdG8gaGF2ZSBmb2N1cy4KKyAgICAgICAgKiBo
dG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKERhdGVUaW1lRWRpdENvbnRyb2xPd25lcklt
cGwpOiBDaGFuZ2VkIGZvciBuZXcgZGVmaW5pdGlvbiBvZiBEYXRlVGltZUVkaXRDb250cm9sT3du
ZXIuCisgICAgICAgIChUaW1lSW5wdXRUeXBlKTogQ2hhbmdlZCBmb3IgbmV3IGRlZmluaXRpb24g
b2YgRGF0ZVRpbWVFZGl0RWxlbWVudC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OkRh
dGVUaW1lRWRpdEVsZW1lbnQpOiBSZW1vdmVkIGRyb3BwZWQgbWVtYmVyIHZhcmlhYmxlIG1fZm9j
dXNGaWVsZEluZGV4LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6Ymx1
cik6IEFkZGVkIGZvciBpbXBsZW1lbnRhdGlvbiBvZiBibHVyKCkgYmVoYXZpb3Igb2YgRGF0ZVRp
bWVFZGl0RWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmRp
ZEZpZWxkQmx1cik6IEFkZGVkIGZvciBjYWxsaW5nIERhdGVUaW1lRWRpdENvbnRyb2xPd25lcjo6
ZGlkRmllbGRCbHVyKCkuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpk
aWRGaWVsZEZvY3VzKTogQWRkZWQgZm9yIGNhbGxpbmcgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
OjpkaWRGaWVsZEZvY3VzKCkuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50
OjpmaWVsZEluZGV4T2YpOiBBZGRlZCBmb3IgbWFwcGluZyBEYXRlVGltZUZpZWxkRWxlbWVudCB0
byBmaWVsZCBpbmRleC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZv
Y3VzKTogQWRkZWQgZm9yIGltcGxlbWVudGF0aW9uIG9mIGZvY3VzKCkgYmVoYXZpb3Igb2YgRGF0
ZVRpbWVFZGl0RWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6
OmZvY3VzRmllbGRJbmRleCk6IEFkZGVkIGFzIGhlbHBlciBmdW5jdGlvbi4KKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzRmllbGQpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQpOiBBZGRlZCBm
b3IgaW1wbGVtZW50YWluZyBmb2N1cyBuYXZpZ2F0aW9uIGluIERhdGVUaW1lRWRpdEVsZW1lbnQg
Zm9yIExlZnQvUmlnaHQga2V5cy4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1l
bnQ6OmZvY3VzT25QcmV2aW91c0ZpZWxkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50Ojpmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25Pd25lcik6IENoYW5nZWQg
Zm9yIHNldHRpbmcgZm9jdXMgdG8gdGhlIGZpcnN0IGZpZWxkLgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KTogQ2hhbmdlZCB0byB1c2UgZm9jdXNGaWVsZElu
ZGV4KCkgYW5kIERhdGVUaW1lRmllbGRFbGVtZW50Ojpmb2N1cygpLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6cmVzZXRMYXlvdXQpOiBDaGFuZ2VkIHRvIHJlbW92ZSBt
X2ZvY3VzRmllbGRJbmRleCB2YXJpYWJsZSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogQ2hhbmdlZCB0byByZW1v
dmUgZm9jdXMgbmF2aWdhdGlvbiByZWxhdGVkIGV2ZW50cywgYmx1ZS9mb2N1cy9tb3VzZSwgaGFu
ZGxpbmcuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpzaG91bGRTcGlu
QnV0dG9uUmVzcG9uZFRvV2hlZWxFdmVudHMpOiBDaGFuZ2VkIHRvIGNoZWNrIGZvY3VzIGZpZWxk
IGluc3RlYWQgb2YgYXNraW5nIG93bmVyLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0
RWxlbWVudDo6c3BpbkJ1dHRvblN0ZXBEb3duKTogQ2hhbmdlZCB0byB1c2UgZm9jdXNGaWVsZCgp
IGluc3RlYWQgb2YgbV9mb2N1c0ZpZWxkSW5kZXguCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUVkaXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcFVwKTogZGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUVkaXRFbGVtZW50Ojp1cGRhdGVVSVN0YXRlKTogZGl0dG8uCisgICAgICAgICog
aHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oOgorICAgICAgICAoRWRpdENvbnRyb2xP
d25lcik6IEFkZGVkIGRpZEZpZWxkQmx1cigpIGFuZCBkaWRGaWVsZEZvY3VzKCkgZnVuY3Rpb24g
ZGVjbGFyYXRpb25zLgorICAgICAgICAoRGF0ZVRpbWVFZGl0RWxlbWVudCk6CisgICAgICAgICog
aHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBDaGFuZ2VkIHRvIGhh
bmRsZSBibHVyIGFuZCBmb2N1cyBldmVudHMuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZp
ZWxkRWxlbWVudDo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKTogQ2hhbmdlZCB0byBoYW5k
bGUgTGVmdC9SaWdodCBrZXlzLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1l
bnQ6OmRpZEJsdXIpOiBBZGRlZCB0byBjYWxsIEZpZWxkT3duZXI6OmRpZEJsdXIoKSB0byByZW1v
dmUgZm9jdXMgcmluZyBmcm9tIG93bmVyIGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUZpZWxkRWxlbWVudDo6ZGlkRm9jdXMpOiBBZGRlZCB0byBjYWxsIEZpZWxkT3duZXI6OmRp
ZEZvY3VzKCkgIHRvIGFkZCBmb2N1cyByaW5nIHRvIG93bmVyIGVsZW1lbnQuCisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCk6IEFkZGVkIGZv
ciBtb3ZpbmcgZm9jdXMgdG8gbmV4dCBmaWVsZCBmb3IgRGF0ZVRpbWVOdW1iZXJpY0ZpZWxkRWxt
ZW50CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6aXNGb2N1c2FibGUp
OiBBZGRlZCB0byBtYWtlIERhdGVUaW1lRmllbGRFbGVtZW50IGZvY3VzYWJsZS4KKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojppc1JUTCk6IEFkZGVkIGZvciBMZWZ0L1Jp
Z2h0IGtleXMgaGFuZGxpbmcuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVu
dDo6c3VwcG9ydHNGb2N1cyk6ICBBZGRlZCB0byBtYWtlIERhdGVUaW1lRmllbGRFbGVtZW50IGZv
Y3VzYWJsZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oOgor
ICAgICAgICAoRmllbGRPd25lcik6IEFkZGVkIGRlY2xhcmF0aW9ucyBmb3IgZm9jdXNhYmxlIGhh
bmRsaW5nLgorICAgICAgICAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOiBkaXR0by4KKyAgICAgICAg
KiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpkaWRCbHVyKTogQWRkZWQgZm9y
IHJlc2V0dGluZyB0eXBlLWFoZWFkIHRpbWVyLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50OjpkaWRGb2N1cyk6IEFkZGVkIGZvciByZXNldHRpbmcgdHlwZS1h
aGVhZCB0aW1lci4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuaDoKKyAgICAgICAgKERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCk6IEFkZGVkIGRp
ZEJsdXIoKSBhbmQgZGlkRm9jdXMoKSBkZWNsYXJhdGlvbnMuCisKIDIwMTItMDgtMjkgIEFhcm9u
IENvbHdlbGwgIDxhY29sd2VsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIFdlYktpdCBw
cmVmaXggdG8gTWVkaWFTb3VyY2UsIFNvdXJjZUJ1ZmZlciwgJiBTb3VyY2VCdWZmZXJMaXN0IERP
TVdpbmRvdyBjb25zdHJ1Y3RvciBhdHRyaWJ1dGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0
VHlwZS5jcHAKaW5kZXggNTg2MTAzMjMxMTVjYTMxMjRlNTBjZDg4N2VkNzEyYjNhNmM1OWRiOS4u
MTg4YjliZWE0NWZkZGQ2OGI4NmJiYWE0YjQwOTExOWY4YThjN2RiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0xMjQsOSArMTI0LDE0IEBAIFRpbWVJbnB1dFR5cGU6
OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6On5EYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsKCkKIHsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3du
ZXJJbXBsOjplZGl0Q29udHJvbE1vdXNlRm9jdXMoKQordm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRl
VGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRGaWVsZEJsdXIoKQogewotICAgIG1fdGltZUlu
cHV0VHlwZS5lbGVtZW50KCktPmZvY3VzKCk7CisgICAgbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQo
KS0+c2V0Rm9jdXMoZmFsc2UpOworfQorCit2b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRp
dENvbnRyb2xPd25lckltcGw6OmRpZEZpZWxkRm9jdXMoKQoreworICAgIG1fdGltZUlucHV0VHlw
ZS5lbGVtZW50KCktPnNldEZvY3VzKHRydWUpOwogfQogCiB2b2lkIFRpbWVJbnB1dFR5cGU6OkRh
dGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCkKQEAg
LTEzOCwxMSArMTQzLDkgQEAgdm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9s
T3duZXJJbXBsOjplZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpCiAgICAgaW5wdXQtPmRpc3BhdGNo
Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVU
aW1lRWRpdENvbnRyb2xPd25lckltcGw6OmZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25lcigp
Citib29sIFRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdAogewotICAg
IFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgp
KTsKLSAgICBpbnB1dC0+Zm9jdXMoKTsKLSAgICBpbnB1dC0+c2VsZWN0KCk7CisgICAgcmV0dXJu
IGZhbHNlOwogfQogCiBib29sIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25l
ckltcGw6OmlzRWRpdENvbnRyb2xPd25lckRpc2FibGVkKCkgY29uc3QKQEAgLTE1MCwxMSArMTUz
LDYgQEAgYm9vbCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpp
c0VkaXRDb250cm9sT3duZXJEaXNhYmxlZCgpIGMKICAgICByZXR1cm4gbV90aW1lSW5wdXRUeXBl
LmVsZW1lbnQoKS0+cmVhZE9ubHkoKTsKIH0KIAotYm9vbCBUaW1lSW5wdXRUeXBlOjpEYXRlVGlt
ZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+Zm9jdXNlZCgpOwotfQot
CiBib29sIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRp
dENvbnRyb2xPd25lclJlYWRPbmx5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV90aW1lSW5wdXRU
eXBlLmVsZW1lbnQoKS0+ZGlzYWJsZWQoKTsKQEAgLTE3Myw2ICsxNzEsMTIgQEAgVGltZUlucHV0
VHlwZTo6flRpbWVJbnB1dFR5cGUoKQogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnJl
bW92ZUVkaXRDb250cm9sT3duZXIoKTsKIH0KIAordm9pZCBUaW1lSW5wdXRUeXBlOjpibHVyKCkK
K3sKKyAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQorICAgICAgICBtX2RhdGVUaW1lRWRp
dEVsZW1lbnQtPmJsdXIoKTsKK30KKwogUmVuZGVyT2JqZWN0KiBUaW1lSW5wdXRUeXBlOjpjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QK
IHsKICAgICByZXR1cm4gSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihhcmVuYSwgc3R5bGUpOwpA
QCAtMTk3LDYgKzIwMSwxMiBAQCB2b2lkIFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0
cmVlKCkKICAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVl
KCk7CiB9CiAKK3ZvaWQgVGltZUlucHV0VHlwZTo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNT
ZWxlY3Rpb24pCit7CisgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICAgICAgbV9k
YXRlVGltZUVkaXRFbGVtZW50LT5mb2N1cyhyZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOworfQor
CiB2b2lkIFRpbWVJbnB1dFR5cGU6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpCiB7CiAgICAg
aWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKQEAgLTIxNCwyNSArMjI0LDE0IEBAIHZvaWQgVGlt
ZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAg
IGZvcndhcmRFdmVudChldmVudCk7CiB9CiAKLXZvaWQgVGltZUlucHV0VHlwZTo6aGFuZGxlRE9N
QWN0aXZhdGVFdmVudChFdmVudCogZXZlbnQpCi17Ci0gICAgaWYgKGVsZW1lbnQoKS0+ZGlzYWJs
ZWQoKSB8fCBlbGVtZW50KCktPnJlYWRPbmx5KCkgfHwgIWVsZW1lbnQoKS0+cmVuZGVyZXIoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAg
ICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5mb2N1cygpOwotCi0gICAgZXZlbnQtPnNldERlZmF1
bHRIYW5kbGVkKCk7Ci19Ci0KIGJvb2wgVGltZUlucHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJs
ZShLZXlib2FyZEV2ZW50KikgY29uc3QKIHsKLSAgICByZXR1cm4gZWxlbWVudCgpLT5pc1RleHRG
b3JtQ29udHJvbEZvY3VzYWJsZSgpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBUaW1l
SW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZWxlbWVu
dCgpLT5pc1RleHRGb3JtQ29udHJvbEZvY3VzYWJsZSgpOworICAgIHJldHVybiBmYWxzZTsKIH0K
IAogdm9pZCBUaW1lSW5wdXRUeXBlOjptaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RpbWVJbnB1dFR5cGUuaAppbmRleCBlZTg3N2RjZjFkNmNjY2RmNWIxNzQ1YjExY2Nm
OTA5OTU5Y2ZlMzQ3Li5hZWI5ZDkwYjgyNGFmMWNmZjUyYTVlOTZlNDYxMjA3MTY1MzQzZDIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtNjgsMTEgKzY4LDEwIEBAIHByaXZh
dGU6CiAgICAgICAgIHZpcnR1YWwgfkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoKTsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBlZGl0Q29udHJvbE1vdXNlRm9jdXMo
KSBPVkVSUklERSBGSU5BTDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpZWxkQmx1cigpIE9W
RVJSSURFIEZJTkFMOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmllbGRGb2N1cygpIE9WRVJS
SURFIEZJTkFMOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQo
KSBPVkVSUklERSBGSU5BTDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzQW5kU2VsZWN0RWRp
dENvbnRyb2xPd25lcigpIE9WRVJSSURFIEZJTkFMOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNF
ZGl0Q29udHJvbE93bmVyRGlzYWJsZWQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICAgICAg
dmlydHVhbCBib29sIGlzRWRpdENvbnRyb2xPd25lckZvY3VzZWQoKSBjb25zdCBPVkVSUklERSBG
SU5BTDsKICAgICAgICAgdmlydHVhbCBib29sIGlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5KCkg
Y29uc3QgT1ZFUlJJREUgRklOQUw7CiAKICAgICAgICAgVGltZUlucHV0VHlwZSYgbV90aW1lSW5w
dXRUeXBlOwpAQCAtODEsMTMgKzgwLDE1IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIERh
dGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw7CiAKICAgICAvLyBJbnB1dFR5cGUgZnVuY3Rpb25z
CisgICAgdmlydHVhbCB2b2lkIGJsdXIoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIFJl
bmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNv
bnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVl
KCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVl
KCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVkQXR0cmlidXRlQ2hh
bmdlZCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhib29sIHJlc3Rv
cmVQcmV2aW91c1NlbGVjdGlvbikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGZv
cndhcmRFdmVudChFdmVudCopIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2
b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdCBPVkVSUklERSBGSU5B
TDsKICAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50Kikg
Y29uc3QgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUo
KSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0RmllbGQoKSBj
b25zdCBPVkVSUklERSBGSU5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKaW5kZXggNDRhMWMyYjBhNTYxZTI2M2JlMDJmZTkwMTBm
MTZmY2MyMDQ1OGZjZC4uMjZjMWE0Yzc1ZWUwYzliNGE2NWRlY2M3MDU4NDQ4NmE5NjA3Y2Q2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVu
dC5jcHAKQEAgLTE5NSw3ICsxOTUsNiBAQCBEYXRlVGltZUVkaXRFbGVtZW50OjpEYXRlVGltZUVk
aXRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRWRpdENvbnRyb2xPd25lciYgZQogICAgIDog
SFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKICAgICAsIG1fZWRpdENvbnRyb2xPd25l
cigmZWRpdENvbnRyb2xPd25lcikKICAgICAsIG1fc3BpbkJ1dHRvbigwKQotICAgICwgbV9mb2N1
c0ZpZWxkSW5kZXgoaW52YWxpZEZpZWxkSW5kZXgpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGRhdGVUaW1lRWRpdFBzZXVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUt
ZWRpdCIpKTsKICAgICBzZXRTaGFkb3dQc2V1ZG9JZChkYXRlVGltZUVkaXRQc2V1ZG9JZCk7CkBA
IC0yMTgsMTIgKzIxNywzMCBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmFkZEZpZWxkKFBh
c3NSZWZQdHI8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkKQogICAgIGFwcGVuZENoaWxkKGZp
ZWxkKTsKIH0KIAordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpibHVyKCkKK3sKKyAgICBpZiAo
RGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkID0gZm9jdXNGaWVsZCgpKQorICAgICAgICBmaWVs
ZC0+Ymx1cigpOworfQorCiBQYXNzUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IERhdGVUaW1l
RWRpdEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEVkaXRDb250cm9sT3duZXIm
IGVkaXRDb250cm9sT3duZXIpCiB7CiAgICAgUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNv
bnRhaW5lciA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZUVkaXRFbGVtZW50KGRvY3VtZW50LCBlZGl0
Q29udHJvbE93bmVyKSk7CiAgICAgcmV0dXJuIGNvbnRhaW5lci5yZWxlYXNlKCk7CiB9CiAKK3Zv
aWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGlkRmllbGRCbHVyKCkKK3sKKyAgICBpZiAobV9lZGl0
Q29udHJvbE93bmVyKQorICAgICAgICBtX2VkaXRDb250cm9sT3duZXItPmRpZEZpZWxkQmx1cigp
OworfQorCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRpZEZpZWxkRm9jdXMoKQoreworICAg
IGlmIChtX2VkaXRDb250cm9sT3duZXIpCisgICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZGlk
RmllbGRGb2N1cygpOworfQorCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRpc2FibGVkU3Rh
dGVDaGFuZ2VkKCkKIHsKICAgICB1cGRhdGVVSVN0YXRlKCk7CkBAIC0yMzQsMTA1ICsyNTEsNzgg
QEAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkQXQoc2l6
ZV90IGZpZWxkSW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5z
aXplKCkgPyBtX2ZpZWxkc1tmaWVsZEluZGV4XSA6IDA7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6Zm9jdXNBbmRTZWxlY3RTcGluQnV0dG9uT3duZXIoKQorc2l6ZV90IERhdGVUaW1l
RWRpdEVsZW1lbnQ6OmZpZWxkSW5kZXhPZihjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYgZmll
bGQpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2VkaXRDb250cm9sT3duZXIpCi0gICAgICAgIHJldHVy
bjsKLSAgICBtX2VkaXRDb250cm9sT3duZXItPmZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25l
cigpOworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVs
ZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKKyAgICAgICAgaWYgKG1fZmllbGRzW2ZpZWxkSW5k
ZXhdID09ICZmaWVsZCkKKyAgICAgICAgICAgIHJldHVybiBmaWVsZEluZGV4OworICAgIH0KKyAg
ICByZXR1cm4gaW52YWxpZEZpZWxkSW5kZXg7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6Zm9jdXNGaWVsZEF0KHNpemVfdCBuZXdGb2N1c0ZpZWxkSW5kZXgpCit2b2lkIERhdGVUaW1l
RWRpdEVsZW1lbnQ6OmZpZWxkVmFsdWVDaGFuZ2VkKCkKIHsKLSAgICBpZiAobV9mb2N1c0ZpZWxk
SW5kZXggPT0gbmV3Rm9jdXNGaWVsZEluZGV4KQotICAgICAgICByZXR1cm47Ci0KLSAgICBEYXRl
VGltZUZpZWxkRWxlbWVudCogY29uc3QgbmV3Rm9jdXNGaWVsZCA9IGZpZWxkQXQobmV3Rm9jdXNG
aWVsZEluZGV4KTsKLSAgICBpZiAobmV3Rm9jdXNGaWVsZCAmJiBuZXdGb2N1c0ZpZWxkLT5pc1Jl
YWRPbmx5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBj
b25zdCBjdXJyZW50Rm9jdXNGaWVsZCA9IGZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpOwotCi0g
ICAgaWYgKGN1cnJlbnRGb2N1c0ZpZWxkKQotICAgICAgICBjdXJyZW50Rm9jdXNGaWVsZC0+c2V0
Rm9jdXMoZmFsc2UpOwotCi0gICAgaWYgKCFuZXdGb2N1c0ZpZWxkKSB7Ci0gICAgICAgIG1fZm9j
dXNGaWVsZEluZGV4ID0gaW52YWxpZEZpZWxkSW5kZXg7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBtX2ZvY3VzRmllbGRJbmRleCA9IG5ld0ZvY3VzRmllbGRJbmRleDsKLSAgICBuZXdG
b2N1c0ZpZWxkLT5zZXRGb2N1cyh0cnVlKTsKKyAgICBpZiAobV9lZGl0Q29udHJvbE93bmVyKQor
ICAgICAgICBtX2VkaXRDb250cm9sT3duZXItPmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCk7CiB9
CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2Fy
ZEV2ZW50KiBrZXlib2FyZEV2ZW50KQordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1cyhi
b29sKQogewotICAgIGlmIChpc0Rpc2FibGVkKCkgfHwgaXNSZWFkT25seSgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBpZiAoIWZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBpZiAoa2V5Ym9hcmRFdmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5r
ZXlkb3duRXZlbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciA9IGtleWJvYXJkRXZlbnQtPmtleUlkZW50aWZpZXIoKTsKLQotICAgIGlmIChrZXlJ
ZGVudGlmaWVyID09ICJMZWZ0IikgewotICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0
SGFuZGxlZCgpOwotICAgICAgICBjb25zdCBzaXplX3QgZmllbGRJbmRleCA9IHByZXZpb3VzRmll
bGRJbmRleCgpOwotICAgICAgICBpZiAoZmllbGRBdChmaWVsZEluZGV4KSkKLSAgICAgICAgICAg
IGZvY3VzRmllbGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmIChrZXlJZGVudGlmaWVyID09ICJSaWdodCIpIHsKLSAgICAgICAga2V5Ym9hcmRFdmVudC0+
c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgY29uc3Qgc2l6ZV90IGZpZWxkSW5kZXggPSBu
ZXh0RmllbGRJbmRleCgpOwotICAgICAgICBpZiAoZmllbGRBdChmaWVsZEluZGV4KSkKLSAgICAg
ICAgICAgIGZvY3VzRmllbGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
KyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkID0gZmllbGRBdCgwKSkKKyAgICAg
ICAgZmllbGQtPmZvY3VzKCk7Cit9CiAKLSAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiVSswMDA5
IikgewotICAgICAgICBjb25zdCBzaXplX3QgZmllbGRJbmRleCA9IGtleWJvYXJkRXZlbnQtPmdl
dE1vZGlmaWVyU3RhdGUoIlNoaWZ0IikgPyBwcmV2aW91c0ZpZWxkSW5kZXgoKSA6IG5leHRGaWVs
ZEluZGV4KCk7Ci0gICAgICAgIGlmIChmaWVsZEF0KGZpZWxkSW5kZXgpKSB7Ci0gICAgICAgICAg
ICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgICAgICAgICAgZm9jdXNG
aWVsZEF0KGZpZWxkSW5kZXgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CitzaXpl
X3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNGaWVsZEluZGV4KCkgY29uc3QKK3sKKyAgICBm
b3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsg
KytmaWVsZEluZGV4KSB7CisgICAgICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4XS0+Zm9jdXNl
ZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZpZWxkSW5kZXg7CiAgICAgfQorICAgIHJldHVybiBp
bnZhbGlkRmllbGRJbmRleDsKIH0KIAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZFZh
bHVlQ2hhbmdlZCgpCitEYXRlVGltZUZpZWxkRWxlbWVudCogRGF0ZVRpbWVFZGl0RWxlbWVudDo6
Zm9jdXNGaWVsZCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fZWRpdENvbnRyb2xPd25lcikKLSAgICAg
ICAgbV9lZGl0Q29udHJvbE93bmVyLT5lZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpOworICAgIHJl
dHVybiBmaWVsZEF0KGZvY3VzRmllbGRJbmRleCgpKTsKIH0KIAotdm9pZCBEYXRlVGltZUVkaXRF
bGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKCkKK2Jvb2wgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9j
dXNPbk5leHRGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYgZmllbGQpCiB7Ci0gICAg
aWYgKG1fZm9jdXNGaWVsZEluZGV4ICE9IGludmFsaWRGaWVsZEluZGV4KQotICAgICAgICBmb2N1
c0ZpZWxkQXQobmV4dEZpZWxkSW5kZXgoKSk7CisgICAgY29uc3Qgc2l6ZV90IHN0YXJ0RmllbGRJ
bmRleCA9IGZpZWxkSW5kZXhPZihmaWVsZCk7CisgICAgaWYgKHN0YXJ0RmllbGRJbmRleCA9PSBp
bnZhbGlkRmllbGRJbmRleCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAoc2l6ZV90
IGZpZWxkSW5kZXggPSBzdGFydEZpZWxkSW5kZXggKyAxOyBmaWVsZEluZGV4IDwgbV9maWVsZHMu
c2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKKyAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZEluZGV4
XS0+aXNSZWFkT25seSgpKSB7CisgICAgICAgICAgICBtX2ZpZWxkc1tmaWVsZEluZGV4XS0+Zm9j
dXMoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpoYW5kbGVNb3VzZUV2
ZW50KE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQpCitib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZv
Y3VzT25QcmV2aW91c0ZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JiBmaWVsZCkKIHsK
LSAgICBpZiAoaXNEaXNhYmxlZCgpIHx8IGlzUmVhZE9ubHkoKSkKLSAgICAgICAgcmV0dXJuOwor
ICAgIGNvbnN0IHNpemVfdCBzdGFydEZpZWxkSW5kZXggPSBmaWVsZEluZGV4T2YoZmllbGQpOwor
ICAgIGlmIChzdGFydEZpZWxkSW5kZXggPT0gaW52YWxpZEZpZWxkSW5kZXgpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBzaXplX3QgZmllbGRJbmRleCA9IHN0YXJ0RmllbGRJbmRleDsKKyAg
ICB3aGlsZSAoZmllbGRJbmRleCA+IDApIHsKKyAgICAgICAgLS1maWVsZEluZGV4OworICAgICAg
ICBpZiAoIW1fZmllbGRzW2ZpZWxkSW5kZXhdLT5pc1JlYWRPbmx5KCkpIHsKKyAgICAgICAgICAg
IG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5mb2N1cygpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQogCi0gICAgaWYgKG1vdXNl
RXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgfHwgbW91c2VFdmVu
dC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbikKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9j
dXNBbmRTZWxlY3RTcGluQnV0dG9uT3duZXIoKQoreworICAgIGlmIChmb2N1c0ZpZWxkSW5kZXgo
KSAhPSBpbnZhbGlkRmllbGRJbmRleCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTm9kZSogY29u
c3QgcmVsYXRlZFRhcmdldCA9IG1vdXNlRXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKLSAgICBm
b3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsg
KytmaWVsZEluZGV4KSB7Ci0gICAgICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4XSA9PSByZWxh
dGVkVGFyZ2V0KSB7Ci0gICAgICAgICAgICBtb3VzZUV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgp
OwotICAgICAgICAgICAgZm9jdXNGaWVsZEF0KGZpZWxkSW5kZXgpOwotICAgICAgICAgICAgaWYg
KG1fZWRpdENvbnRyb2xPd25lcikKLSAgICAgICAgICAgICAgICBtX2VkaXRDb250cm9sT3duZXIt
PmVkaXRDb250cm9sTW91c2VGb2N1cygpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICB9CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9IGZpZWxkQXQoMCkp
CisgICAgICAgIGZpZWxkLT5mb2N1cygpOwogfQogCiBib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OmlzRGlzYWJsZWQoKSBjb25zdApAQCAtMzQ3LDEwICszMzcsOSBAQCBib29sIERhdGVUaW1lRWRp
dEVsZW1lbnQ6OmlzUmVhZE9ubHkoKSBjb25zdAogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OmxheW91dChjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMm
IGRhdGVWYWx1ZSkKIHsKLSAgICBzaXplX3QgZm9jdXNGaWVsZEluZGV4ID0gbV9mb2N1c0ZpZWxk
SW5kZXg7Ci0gICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVs
ZEF0KG1fZm9jdXNGaWVsZEluZGV4KTsKKyAgICBzaXplX3QgZm9jdXNGaWVsZEluZGV4ID0gdGhp
cy0+Zm9jdXNGaWVsZEluZGV4KCk7CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZv
Y3VzRmllbGQgPSBmaWVsZEF0KGZvY3VzRmllbGRJbmRleCk7CiAgICAgY29uc3QgQXRvbWljU3Ry
aW5nIGZvY3VzRmllbGRJZCA9IGZvY3VzRmllbGQgPyBmb2N1c0ZpZWxkLT5zaGFkb3dQc2V1ZG9J
ZCgpIDogbnVsbEF0b207Ci0gICAgZm9jdXNGaWVsZEF0KGludmFsaWRGaWVsZEluZGV4KTsKIAog
ICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIgYnVpbGRlcigqdGhpcywgc3RlcFJhbmdlLCBkYXRlVmFs
dWUpOwogICAgIGNvbnN0IFN0cmluZyBkYXRlVGltZUZvcm1hdCA9IGJ1aWxkZXIubmVlZFNlY29u
ZEZpZWxkKCkgPyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpIDogbG9jYWxpemVkU2hvcnRUaW1l
Rm9ybWF0VGV4dCgpOwpAQCAtMzY4LDMyICszNTcsMTEgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVt
ZW50OjpsYXlvdXQoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21wb25l
bnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAg
ICAgICBmb2N1c0ZpZWxkQXQoc3RkOjptaW4oZm9jdXNGaWVsZEluZGV4LCBtX2ZpZWxkcy5zaXpl
KCkgLSAxKSk7CisgICAgICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmaWVs
ZEF0KHN0ZDo6bWluKGZvY3VzRmllbGRJbmRleCwgbV9maWVsZHMuc2l6ZSgpIC0gMSkpKQorICAg
ICAgICAgICAgZmllbGQtPmZvY3VzKCk7CiAgICAgfQogfQogCi1zaXplX3QgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6bmV4dEZpZWxkSW5kZXgoKSBjb25zdAotewotICAgIEFTU0VSVChtX2ZvY3VzRmll
bGRJbmRleCAhPSBpbnZhbGlkRmllbGRJbmRleCk7Ci0gICAgZm9yIChzaXplX3QgZmllbGRJbmRl
eCA9IG1fZm9jdXNGaWVsZEluZGV4ICsgMTsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsg
KytmaWVsZEluZGV4KSB7Ci0gICAgICAgIGlmICghbV9maWVsZHNbZmllbGRJbmRleF0tPmlzUmVh
ZE9ubHkoKSkKLSAgICAgICAgICAgIHJldHVybiBmaWVsZEluZGV4OwotICAgIH0KLSAgICByZXR1
cm4gbV9maWVsZHMuc2l6ZSgpOwotfQotCi1zaXplX3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6cHJl
dmlvdXNGaWVsZEluZGV4KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9mb2N1c0ZpZWxkSW5kZXgg
IT0gaW52YWxpZEZpZWxkSW5kZXgpOwotICAgIHNpemVfdCBmaWVsZEluZGV4ID0gbV9mb2N1c0Zp
ZWxkSW5kZXg7Ci0gICAgd2hpbGUgKGZpZWxkSW5kZXggPiAwKSB7Ci0gICAgICAgIC0tZmllbGRJ
bmRleDsKLSAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNSZWFkT25seSgpKQot
ICAgICAgICAgICAgcmV0dXJuIGZpZWxkSW5kZXg7Ci0gICAgfQotICAgIHJldHVybiBpbnZhbGlk
RmllbGRJbmRleDsKLX0KLQogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpyZWFkT25seVN0YXRl
Q2hhbmdlZCgpCiB7CiAgICAgdXBkYXRlVUlTdGF0ZSgpOwpAQCAtNDAzLDQyICszNzEsMjIgQEAg
dm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldExheW91dCgpCiB7CiAgICAgbV9maWVsZHMu
c2hyaW5rKDApOwogICAgIG1fc3BpbkJ1dHRvbiA9IDA7Ci0gICAgbV9mb2N1c0ZpZWxkSW5kZXgg
PSBpbnZhbGlkRmllbGRJbmRleDsKICAgICByZW1vdmVDaGlsZHJlbigpOwogfQogCiB2b2lkIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewot
ICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50KSB7Ci0gICAg
ICAgIGlmICghaXNEaXNhYmxlZCgpICYmICFpc1JlYWRPbmx5KCkgJiYgbV9mb2N1c0ZpZWxkSW5k
ZXggPT0gaW52YWxpZEZpZWxkSW5kZXgpCi0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQoMCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkuYmx1ckV2ZW50KSB7Ci0gICAgICAgIGZvY3VzRmllbGRBdChpbnZhbGlkRmllbGRJbmRl
eCk7Ci0gICAgICAgIHJldHVybjsKKyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxk
ID0gZm9jdXNGaWVsZCgpKSB7CisgICAgICAgIGZpZWxkLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2
ZW50KTsKKyAgICAgICAgaWYgKGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQorICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKLSAgICAg
ICAgaGFuZGxlTW91c2VFdmVudChzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpKTsKLSAg
ICB9IGVsc2UgaWYgKGV2ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkKLSAgICAgICAgaGFuZGxlS2V5
Ym9hcmRFdmVudChzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpKTsKLQotICAgIGlm
IChldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRGF0ZVRp
bWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1fZm9jdXNGaWVsZElu
ZGV4KTsKLSAgICBpZiAoIWZvY3VzRmllbGQpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmICht
X3NwaW5CdXR0b24pIHsKICAgICAgICAgbV9zcGluQnV0dG9uLT5mb3J3YXJkRXZlbnQoZXZlbnQp
OwogICAgICAgICBpZiAoZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgfQotCi0gICAgZm9jdXNGaWVsZC0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7
CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgU3Rl
cFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQpAQCAtNDY1LDI2
ICs0MTMsMjcgQEAgYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50OjpzaG91bGRTcGluQnV0dG9uUmVz
cG9uZFRvV2hlZWxFdmVudHMoKQogICAgIGlmICghc2hvdWxkU3BpbkJ1dHRvblJlc3BvbmRUb01v
dXNlRXZlbnRzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiAhbV9lZGl0
Q29udHJvbE93bmVyIHx8IG1fZWRpdENvbnRyb2xPd25lci0+aXNFZGl0Q29udHJvbE93bmVyRm9j
dXNlZCgpOworICAgIHJldHVybiBmb2N1c0ZpZWxkSW5kZXgoKSAhPSBpbnZhbGlkRmllbGRJbmRl
eDsKIH0KIAogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcERvd24oKQog
ewotICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZm9jdXNGaWVsZCA9IGZpZWxk
QXQobV9mb2N1c0ZpZWxkSW5kZXgpKQotICAgICAgICBmb2N1c0ZpZWxkLT5zdGVwRG93bigpOwor
ICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZmllbGQgPSBmb2N1c0ZpZWxkKCkp
CisgICAgICAgIGZpZWxkLT5zdGVwRG93bigpOwogfQogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1l
bnQ6OnNwaW5CdXR0b25TdGVwVXAoKQogewotICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCog
Y29uc3QgZm9jdXNGaWVsZCA9IGZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpKQotICAgICAgICBm
b2N1c0ZpZWxkLT5zdGVwVXAoKTsKKyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0
IGZpZWxkID0gZm9jdXNGaWVsZCgpKQorICAgICAgICBmaWVsZC0+c3RlcFVwKCk7CiB9CiAKIHZv
aWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6dXBkYXRlVUlTdGF0ZSgpCiB7CiAgICAgaWYgKGlzRGlz
YWJsZWQoKSB8fCBpc1JlYWRPbmx5KCkpIHsKICAgICAgICAgbV9zcGluQnV0dG9uLT5yZWxlYXNl
Q2FwdHVyZSgpOwotICAgICAgICBmb2N1c0ZpZWxkQXQoaW52YWxpZEZpZWxkSW5kZXgpOworICAg
ICAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkID0gZm9jdXNGaWVsZCgpKQorICAg
ICAgICAgICAgZmllbGQtPmJsdXIoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAppbmRleCA4ZDllMDE1YTI2Zjc1MDU4
MWUyMjlmNjllMTM5Mjk3YmY2ZjYwMzUzLi5lNjg5MWEwOWIxNTdhMmZkNGNiMGI0ZjY0OGRmYjM3
Njg4ZWZhMzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUVkaXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVF
ZGl0RWxlbWVudC5oCkBAIC01MSwxMSArNTEsMTAgQEAgcHVibGljOgogICAgIGNsYXNzIEVkaXRD
b250cm9sT3duZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+RWRpdENvbnRyb2xP
d25lcigpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNBbmRTZWxlY3RFZGl0Q29udHJvbE93
bmVyKCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xNb3VzZUZvY3VzKCkg
PSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmllbGRCbHVyKCkgPSAwOworICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmllbGRGb2N1cygpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGVk
aXRDb250cm9sVmFsdWVDaGFuZ2VkKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0
Q29udHJvbE93bmVyRGlzYWJsZWQoKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBp
c0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25zdCA9IDA7CiAgICAgfTsKIApAQCAt
NjMsOCArNjIsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+RGF0ZVRpbWVFZGl0RWxlbWVu
dCgpOwogICAgIHZvaWQgYWRkRmllbGQoUGFzc1JlZlB0cjxEYXRlVGltZUZpZWxkRWxlbWVudD4p
OworICAgIHZpcnR1YWwgdm9pZCBibHVyKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2
b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKICAgICB2b2lkIGRpc2Fi
bGVkU3RhdGVDaGFuZ2VkKCk7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wpIE9WRVJSSURF
IEZJTkFMOwogICAgIHZvaWQgcmVhZE9ubHlTdGF0ZUNoYW5nZWQoKTsKICAgICB2b2lkIHJlbW92
ZUVkaXRDb250cm9sT3duZXIoKSB7IG1fZWRpdENvbnRyb2xPd25lciA9IDA7IH0KICAgICB2b2lk
IHJlc2V0TGF5b3V0KCk7CkBAIC04OSwxOSArOTAsMjAgQEAgcHJpdmF0ZToKICAgICBEYXRlVGlt
ZUVkaXRFbGVtZW50KERvY3VtZW50KiwgRWRpdENvbnRyb2xPd25lciYpOwogCiAgICAgRGF0ZVRp
bWVGaWVsZEVsZW1lbnQqIGZpZWxkQXQoc2l6ZV90KSBjb25zdDsKLSAgICB2b2lkIGZvY3VzRmll
bGRBdChzaXplX3QpOwotICAgIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50
Kik7Ci0gICAgdm9pZCBoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqKTsKKyAgICBzaXplX3Qg
ZmllbGRJbmRleE9mKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgY29uc3Q7CisgICAgRGF0
ZVRpbWVGaWVsZEVsZW1lbnQqIGZvY3VzRmllbGQoKSBjb25zdDsKKyAgICBzaXplX3QgZm9jdXNG
aWVsZEluZGV4KCkgY29uc3Q7CiAgICAgYm9vbCBpc0Rpc2FibGVkKCkgY29uc3Q7CiAgICAgYm9v
bCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdm9pZCBsYXlvdXQoY29uc3QgU3RlcFJhbmdlJiwg
Y29uc3QgRGF0ZUNvbXBvbmVudHMmKTsKLSAgICBzaXplX3QgbmV4dEZpZWxkSW5kZXgoKSBjb25z
dDsKLSAgICBzaXplX3QgcHJldmlvdXNGaWVsZEluZGV4KCkgY29uc3Q7CiAgICAgdm9pZCB1cGRh
dGVVSVN0YXRlKCk7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudDo6RmllbGRPd25lciBm
dW5jdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGRpZEZpZWxkQmx1cigpIE9WRVJSSURFIEZJTkFM
OworICAgIHZpcnR1YWwgdm9pZCBkaWRGaWVsZEZvY3VzKCkgT1ZFUlJJREUgRklOQUw7CiAgICAg
dmlydHVhbCB2b2lkIGZpZWxkVmFsdWVDaGFuZ2VkKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmly
dHVhbCB2b2lkIGZvY3VzT25OZXh0RmllbGQoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFs
IGJvb2wgZm9jdXNPbk5leHRGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYpIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBmb2N1c09uUHJldmlvdXNGaWVsZChjb25zdCBE
YXRlVGltZUZpZWxkRWxlbWVudCYpIE9WRVJSSURFIEZJTkFMOwogCiAgICAgLy8gU3BpbkJ1dHRv
bkVsZW1lbnQ6OlNwaW5CdXR0b25Pd25lciBmdW5jdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIGZv
Y3VzQW5kU2VsZWN0U3BpbkJ1dHRvbk93bmVyKCkgT1ZFUlJJREUgRklOQUw7CkBAIC0xMTMsNyAr
MTE1LDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8RGF0ZVRpbWVGaWVsZEVsZW1lbnQqLCBtYXhp
bXVtTnVtYmVyT2ZGaWVsZHM+IG1fZmllbGRzOwogICAgIEVkaXRDb250cm9sT3duZXIqIG1fZWRp
dENvbnRyb2xPd25lcjsKICAgICBTcGluQnV0dG9uRWxlbWVudCogbV9zcGluQnV0dG9uOwotICAg
IHNpemVfdCBtX2ZvY3VzRmllbGRJbmRleDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
LmNwcAppbmRleCA5ZDU2ZDliZjg3ZTE0NGI4YmQ1ZTU2MjBjMDg3NGMzNWRlMTZiMTQ4Li5jNmU2
MzhkMTcyNGFmNGFiNmU4OWRmNTdhMzc1OGViMmJkNTNkMTY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OCw2ICs0OSwx
MiBAQCBEYXRlVGltZUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZAogCiB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIHsKKyAgICBpZiAoZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50KQorICAgICAgICBkaWRCbHVyKCk7CisKKyAg
ICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZm9jdXNFdmVudCkKKyAgICAgICAg
ZGlkRm9jdXMoKTsKKwogICAgIGlmIChldmVudC0+aXNLZXlib2FyZEV2ZW50KCkpIHsKICAgICAg
ICAgS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdmVudCA9IHN0YXRpY19jYXN0PEtleWJvYXJkRXZl
bnQqPihldmVudCk7CiAgICAgICAgIGhhbmRsZUtleWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVudCk7
CkBAIC03NCw2ICs4MSwyMiBAQCB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50OjpkZWZhdWx0S2V5
Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdgogICAgICAgICByZXR1
cm47CiAgICAgfQogCisgICAgaWYgKGtleUlkZW50aWZpZXIgPT0gIkxlZnQiKSB7CisgICAgICAg
IGlmIChtX2ZpZWxkT3duZXIpIHsKKyAgICAgICAgICAgIGlmIChpc1JUTCgpID8gbV9maWVsZE93
bmVyLT5mb2N1c09uTmV4dEZpZWxkKCp0aGlzKSA6IG1fZmllbGRPd25lci0+Zm9jdXNPblByZXZp
b3VzRmllbGQoKnRoaXMpKQorICAgICAgICAgICAgICAgIGtleWJvYXJkRXZlbnQtPnNldERlZmF1
bHRIYW5kbGVkKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChrZXlJZGVudGlmaWVyID09ICJSaWdodCIpIHsKKyAgICAgICAgaWYgKG1fZmllbGRPd25lcikg
eworICAgICAgICAgICAgaWYgKGlzUlRMKCkgPyBtX2ZpZWxkT3duZXItPmZvY3VzT25QcmV2aW91
c0ZpZWxkKCp0aGlzKSA6IG1fZmllbGRPd25lci0+Zm9jdXNPbk5leHRGaWVsZCgqdGhpcykpCisg
ICAgICAgICAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKGtleUlkZW50aWZpZXIgPT0g
IlVwIikgewogICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogICAg
ICAgICBzdGVwVXAoKTsKQEAgLTg3LDEwICsxMTAsMjMgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxl
bWVudDo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGtleWJvYXJk
RXYKICAgICB9CiB9CiAKLXZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmZvY3VzT25OZXh0Rmll
bGQoKQordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGlkQmx1cigpCiB7CiAgICAgaWYgKG1f
ZmllbGRPd25lcikKLSAgICAgICAgbV9maWVsZE93bmVyLT5mb2N1c09uTmV4dEZpZWxkKCk7Cisg
ICAgICAgIG1fZmllbGRPd25lci0+ZGlkRmllbGRCbHVyKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVG
aWVsZEVsZW1lbnQ6OmRpZEZvY3VzKCkKK3sKKyAgICBpZiAobV9maWVsZE93bmVyKQorICAgICAg
ICBtX2ZpZWxkT3duZXItPmRpZEZpZWxkRm9jdXMoKTsKK30KKwordm9pZCBEYXRlVGltZUZpZWxk
RWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCgpCit7CisgICAgaWYgKCFtX2ZpZWxkT3duZXIpCisg
ICAgICAgIHJldHVybjsKKyAgICBtX2ZpZWxkT3duZXItPmZvY3VzT25OZXh0RmllbGQoKnRoaXMp
OwogfQogCiB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21p
Y1N0cmluZyYgc2hhZG93UHNldWRvSWQpCkBAIC05OSwxMSArMTM1LDIyIEBAIHZvaWQgRGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1
ZG9JZCkKICAgICBhcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgdmlzaWJsZVZh
bHVlKCkpKTsKIH0KIAorYm9vbCBEYXRlVGltZUZpZWxkRWxlbWVudDo6aXNGb2N1c2FibGUoKSBj
b25zdAoreworICAgIHJldHVybiAhaXNSZWFkT25seSgpOworfQorCisKIGJvb2wgRGF0ZVRpbWVG
aWVsZEVsZW1lbnQ6OmlzUmVhZE9ubHkoKSBjb25zdAogewogICAgIHJldHVybiBmYXN0SGFzQXR0
cmlidXRlKHJlYWRvbmx5QXR0cik7CiB9CiAKK2Jvb2wgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6Omlz
UlRMKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5zdHls
ZSgpLT5kaXJlY3Rpb24oKSA9PSBSVEw7Cit9CisKIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6
OnNldFJlYWRPbmx5KCkKIHsKICAgICAvLyBTZXQgSFRNTCBhdHRyaWJ1dGUgcmVhZG9ubHkgdG8g
Y2hhbmdlIGFwcGVyYW5jZS4KQEAgLTExMSw2ICsxNTgsMTEgQEAgdm9pZCBEYXRlVGltZUZpZWxk
RWxlbWVudDo6c2V0UmVhZE9ubHkoKQogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAor
Ym9vbCBEYXRlVGltZUZpZWxkRWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVwZGF0ZVZpc2li
bGVWYWx1ZShFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgVGV4dCogY29uc3Qg
dGV4dE5vZGUgPSB0b1RleHQoZmlyc3RDaGlsZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCmluZGV4IGNkMzllMjhhMzk0NDljYTRi
OGM0NTMwZDZiOWU2NDY2N2RjNGZjNDUuLmIzMDQ0MzkzNzZjZWI1ZGNjODRjZmQ2YmUyYzNkNjE4
OWU1NTg2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RmllbGRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVG
aWVsZEVsZW1lbnQuaApAQCAtNTAsNyArNTAsMTAgQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAg
ICAgICAgdmlydHVhbCB+RmllbGRPd25lcigpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZmllbGRW
YWx1ZUNoYW5nZWQoKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1c09uTmV4dEZpZWxk
KCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmllbGRCbHVyKCkgPSAwOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmllbGRGb2N1cygpID0gMDsKKyAgICAgICAgdmlydHVhbCBib29s
IGZvY3VzT25OZXh0RmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSA9IDA7CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBmb2N1c09uUHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGltZUZpZWxk
RWxlbWVudCYpID0gMDsKICAgICB9OwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQqKSBPVkVSUklERTsKQEAgLTcwLDYgKzczLDggQEAgcHVibGljOgogCiBwcm90
ZWN0ZWQ6CiAgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJik7
CisgICAgdmlydHVhbCB2b2lkIGRpZEJsdXIoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXMo
KTsKICAgICB2b2lkIGZvY3VzT25OZXh0RmllbGQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
S2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KikgPSAwOwogICAgIHZvaWQgaW5pdGlhbGl6ZShj
b25zdCBBdG9taWNTdHJpbmcmKTsKQEAgLTc4LDYgKzgzLDkgQEAgcHJvdGVjdGVkOgogCiBwcml2
YXRlOgogICAgIHZvaWQgZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQq
KTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGb2N1c2FibGUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsK
KyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwor
ICAgIGJvb2wgaXNSVEwoKSBjb25zdDsKIAogICAgIEZpZWxkT3duZXIqIG1fZmllbGRPd25lcjsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50LmNwcAppbmRleCBhNDA1M2I1Nzc1ZjRiNWM0MDExNDU0Yjg3NDI1
MWVlMTE1ZGZkZjBhLi5iYTlmNTI3Njk5NGUzMDkwNjMzZGZhNjZiOTZhZjdiMTBiYWI3NzJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudC5jcHAKQEAgLTcyLDYgKzcyLDE4IEBAIERhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudDo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVu
dCwgRmllCiB7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpkaWRCbHVy
KCkKK3sKKyAgICBtX2xhc3REaWdpdENoYXJUaW1lID0gMDsKKyAgICBEYXRlVGltZUZpZWxkRWxl
bWVudDo6ZGlkQmx1cigpOworfQorCit2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6
ZGlkRm9jdXMoKQoreworICAgIG1fbGFzdERpZ2l0Q2hhclRpbWUgPSAwOworICAgIERhdGVUaW1l
RmllbGRFbGVtZW50OjpkaWRGb2N1cygpOworfQorCiB2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBrZXlib2FyZEV2ZW50
KQogewogICAgIGlmIChpc1JlYWRPbmx5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCmluZGV4IDM3MTliYzEz
MGUzMWIzNzQ2YjMzOWY3OWNkMzIwZDc1YjQzZTFmYjYuLmQ0MWExYzNhYTdlYzkxOTI4MjZlYzM1
YzhhZWU3ODYzZDVmYjNmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCkBAIC02Myw2ICs2Myw4IEBAIHBy
b3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlv
bnMuCisgICAgdmlydHVhbCB2b2lkIGRpZEJsdXIoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRm9jdXMoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmly
dHVhbCB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFk
T25seUZpZWxkLCBFdmVudEJlaGF2aW9yKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZv
aWQgc3RlcERvd24oKSBPVkVSUklERSBGSU5BTDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1ODkzMWJkZDNkZmIzZGZiNTdl
M2NjNjA0YmYyNDM0MTdlNmU1ZjQzLi5mNDAyOTI0OTNjMWJmNjEyODhhZDVlMjA3ZTE1OWE2Zjlj
ZmFlYmJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDgtMzAgIFlvc2hpZnVtaSBJbm91
ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBbRm9ybXNdIFNoaWZ0K1RhYiBzaG91
bGQgZm9jdXMgdGhlIGxhc3QgZmllbGQgb2YgbXVsdGlwbGUgZmllbGRzIHRpbWUgaW5wdXQgVUkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGRzIG5ldyB0ZXN0IGNhc2VzIGZvciBrZXlib2FyZCBvcGVyYXRpb24gb24gbXVsdGlwbGUK
KyAgICAgICAgZmllbGRzIHRpbWUgaW5wdXQgVUk6CisgICAgICAgICAgLSBDaGVja3MgU2hpZnQr
VGFiIG1vdmVzIGZvY3VzIHRvIGxvZ2ljYWwgcHJldmlvdXMgZmllbGQgYW5kIGxvZ2ljYWwKKyAg
ICAgICAgICAgIHByZXZpb3VzIGVsZW1lbnQgd2hlbiB0aGUgZmlyc3QgZmllbGQgZm9jdXNlZC4K
KyAgICAgICAgICAtIENoZWNrcyBMZWZ0L1JpZ2h0IGtleXMgbW92ZSBmb2N1cyB0byBwaHlzaWNh
bCByaWdodC9sZWZ0IGZpZWxkLgorCisgICAgICAgICogZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxl
LWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbDogQWRkZWQg
dGVzdCBjYXNlcyBmb3IgU2hpZnQrVGFiIGFuZCBMZWZ0L1JpZ2h0IGtleXMgb24gZGlyPSJydGwi
LgorCiAyMDEyLTA4LTI5ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW1Rlc3RzXSBBZGQgdGVzdCBjYXNlIGZvciByaWdodC10by1sZWZ0IHJlbmRlcmlu
ZyBvZiBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1r
ZXlib2FyZC1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBs
ZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKaW5kZXgg
N2YzNTIxMmM4MzIzZGNlYmNjYWYzNDk0Mzg0NThiOGNjMDczNGFiNy4uYTkzN2UxYmU1YjYzNzRi
YTkzN2M5MzA0ZjJlNTQ3Mzg1OTM5NDk0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1l
dmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmll
bGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sCkBAIC0xNiw2ICsx
Niw3IEBAIFRlc3QgZm9sbG93aW5nIGtleXM6CiAgICAgPGxpPlRhYiAtIE1vdmUgZm9jdXMgZmll
bGQ8L2xpPgogICAgIDxsaT5CYWNrc3BhY2UgLSBNYWtlIHZhbHVlIGVtcHR5PC9saT4KIDwvdWw+
Cis8aW5wdXQgaWQ9ImJlZm9yZSI+CiA8aW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJ0aW1lIj4KIDxp
bnB1dCBpZD0iYW5vdGhlciI+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KQEAgLTk3LDYgKzk4
LDE4IEBAIGtleURvd24oJ1x0Jyk7CiBrZXlEb3duKCdcdCcpOwogc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkJywgJ2Fub3RoZXInKTsKIAorYmVnaW5UZXN0
KCdTaGZpdCtUYWIga2V5JywgJzAzOjAwJyk7Cithbm90aGVyLmZvY3VzKCk7CitrZXlEb3duKCdc
dCcsIFsnc2hpZnRLZXknXSk7CitrZXlEb3duKCdQJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2lucHV0LnZhbHVlJywgJzE1OjAwJyk7CitrZXlEb3duKCdcdCcsIFsnc2hpZnRLZXknXSk7Citr
ZXlEb3duKCczJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzE1OjAz
Jyk7CitrZXlEb3duKCdcdCcsIFsnc2hpZnRLZXknXSk7CitrZXlEb3duKCdcdCcsIFsnc2hpZnRL
ZXknXSk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQn
LCAnYmVmb3JlJyk7CisKIGJlZ2luVGVzdCgnQmFja3NwYWNlIGtleScsICcxMjozNCcpOwoga2V5
RG93bigiXGIiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnJyk7CkBA
IC0xMDQsNiArMTE3LDE3IEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAn
Jyk7CiBiZWdpblRlc3QoJ0RlbGV0ZSBrZXknLCAnMTI6MzQnKTsKIGtleURvd24oImRlbGV0ZSIp
Owogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcnKTsKKworYmVnaW5UZXN0
KCdSVEwgTGVmdC9SaWdodCBrZXlzJywgJzA0OjU2Jyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoImRp
ciIsICJydGwiKTsKK2tleURvd24oJzEnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQu
dmFsdWUnLCAnMDE6NTYnKTsKK2tleURvd24oJ2xlZnRBcnJvdycpOwora2V5RG93bignMicpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcwMTowMicpOwora2V5RG93bign
cmlnaHRBcnJvdycpOwora2V5RG93bignMycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1
dC52YWx1ZScsICcwMzowMicpOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161418</attachid>
            <date>2012-08-30 00:51:19 -0700</date>
            <delta_ts>2012-08-30 00:54:43 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-95168-20120830165108.patch</filename>
            <type>text/plain</type>
            <size>36875</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyODk0YzY4YzhmZDM2
M2ZkYTAyNTQzZjljNmMzOWUxZjQ1ODhkNC4uMmQ1ZTdmMmFiMTg4MTdkNGE1ZTU3MjEyYzAyNzk3
NTNmYTYwODBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEyLTA4LTI5ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBTaGlm
dCtUYWIgc2hvdWxkIGZvY3VzIHRoZSBsYXN0IGZpZWxkIG9mIG11bHRpcGxlIGZpZWxkcyB0aW1l
IGlucHV0IFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NTE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggY2hhbmdlcyBmb2N1cyBoYW5kbGluZyBpbiBEYXRlVGltZUVkaXRFbGVtZW50
IGNsYXNzIGZvcgorICAgICAgICBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAg
ICAgICBDdXJyZW50IGltcGxlbWVudGF0aW9uIGNvbnRyb2xzIGZvY3VzIGluIGZpZWxkcyBieSBE
YXRlVGltZUVkaXRFbGVtZW50CisgICAgICAgIGFuZCBhIGZvY3VzIGZpZWxkIGlzIHRyYWNrZWQg
bV9mb2N1c0ZpZWxkSW5kZXggbWVtYmVyIHZhcmlhYmxlLiBJbgorICAgICAgICBjdXJyZW50IGlt
cGxlbWVudGF0aW9uLCBpdCBpcyBoYXJkIHRvIHNldCBmb2N1cyB0byB0aGUgbGFzdCBmaWVsZCB3
aGVuCisgICAgICAgIGl0IGdldHMgZm9jdXMgYnkgU2hpZnQrVGFiLCBiZWNhdXNlIHdlIGRvbid0
IGtub3cgaG93IERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgZ2V0cyBmb2N1cy4KKworICAg
ICAgICBJbiB0aGlzIG5ldyBpbXBsZW1lbnRhdGlvbiwgRGF0ZVRpbWVFZGl0RWxlbWVudCBkb2Vz
bid0IGNvbnRyb2wgZm9jdXMKKyAgICAgICAgcmF0aGVyIEZvY3VzQ29udHJvbGxlciBjbGFzcyBj
b250cm9scyBmb2N1czoKKyAgICAgICAgIC0gV2Ugc2V0IGZvY3VzIHRvIERhdGVUaW1lRmllbGRF
bGVtZW50IGluc3RlYWQgb2YgSFRNTElucHV0RWxlbWVudAorICAgICAgICAgICB3aGljaCBpcyBz
aGFkb3cgaG9zdCBvZiBEYXRlVGltZUVkaXRFbGVtZW50IGZvciBjb250cm9sbGluZyBmb2N1cwor
ICAgICAgICAgICBieSBGb2N1c0NvbnRyb2xsZXIuCisgICAgICAgICAtIEZvY3VzL2JsdXIgZXZl
bnRzIGluIERhdGVUaW1lRmllbGRFbGVtZW50IGFyZSByb3V0ZWQgdG8gSFRNTElucHV0RWxlbWVu
dAorICAgICAgICAgICBieSBzaGFkb3cgRE9NIG1lY2hhbmlzbS4KKyAgICAgICAgIC0gVGltZUlu
cHV0VHlwZSBjbGFzcyBvdmVycmlkZXMgSFRNTElOcHV0RWxlbWVudDo6Ymx1cigpIGFuZCBmb2N1
cygpCisgICAgICAgICAgIGZ1bmN0aW9ucyBmb3IgZGVsZWdhdGluZyBibHVyL2ZvY3VzIGJlaGF2
aW9yIHRvIERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgICAgYnkgY2FsbGluZyBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpibHVyQnlPd25lcigpL2ZvY3VzQnlPd25lcigpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggYWZmZWN0cyBvbmx5IHBvcnRzIHdoaWNoIGVuYWJsZSBib3RoIEVOQUJMRV9JTlBV
VF9UWVBFX1RJTUUKKyAgICAgICAgYW5kIEVOQUJMRV9JTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRz
L3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCisgICAgICAg
IFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgbmV3IHRlc3QgY2FzZSBmb3IgU2hpZnQrVGFiIGludG8g
ZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEJsdXIpOiBBZGRlZCBmb3IgdGhlIGlucHV0IGVsZW1lbnQgbm90IHRvIGJl
IG1hdGNoZWQgImZvY3VzIiBwc2V1ZG8gY2xhc3MgZm9yIHJlbW92aW5nIGZvY3VzIHJpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEZvY3VzKTogIEFkZGVkIGZvciB0aGUgaW5wdXQgZWxlbWVudCB0byBiZSBt
YXRjaGVkICJmb2N1cyIgcHNldWRvIGNsYXNzIGZvciBhZGRpbmcgZm9jdXMgcmluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZvY3VzTG9naWMpOiBBZGRlZCBm
b3IgYXNraW5nIEZvY3VzQ29udHJvbGxlciB0byB3YWxrIGludG8gc2hhZG93IERPTSB0cmVlIG9u
IGlucHV0IHR5cGUgInRpbWUiLgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6Ymx1
cik6IEFkZGVkIGZvciBkZWxlZ2F0aW5nIGJsdXIoKSBhY3Rpb24gdG8gRGF0ZVRpbWVFZGl0RWxl
bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmZvY3VzKTogQWRkZWQgZm9y
IGRlbGVnYXRpbmcgZm9jdXMoKSBhY3Rpb24gdG8gRGF0ZVRpbWVFZGl0RWxlbWVudC4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBDaGFuZ2Vk
IGZvciAiaW5wdXQiIGVsZW1lbnQgbm90IHRvIGhhdmUgZm9jdXMuCisgICAgICAgIChXZWJDb3Jl
OjpUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKTogIENoYW5nZWQgZm9yICJpbnB1dCIg
ZWxlbWVudCBub3QgdG8gaGF2ZSBmb2N1cy4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUu
aDoKKyAgICAgICAgKERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwpOiBDaGFuZ2VkIGZvciBu
ZXcgZGVmaW5pdGlvbiBvZiBEYXRlVGltZUVkaXRDb250cm9sT3duZXIuCisgICAgICAgIChUaW1l
SW5wdXRUeXBlKTogQ2hhbmdlZCBmb3IgbmV3IGRlZmluaXRpb24gb2YgRGF0ZVRpbWVFZGl0RWxl
bWVudC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OkRhdGVUaW1lRWRpdEVsZW1lbnQp
OiBSZW1vdmVkIGRyb3BwZWQgbWVtYmVyIHZhcmlhYmxlIG1fZm9jdXNGaWVsZEluZGV4LgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6Ymx1ckJ5T3duZXIpOiBBZGRlZCBm
b3IgYmx1cigpIGFjdGlvbiBhc2VrZCBieSBvd25lci4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OmRpZEZpZWxkQmx1cik6IEFkZGVkIGZvciBjYWxsaW5nIERhdGVUaW1l
RWRpdENvbnRyb2xPd25lcjo6ZGlkRmllbGRCbHVyKCkuCisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpkaWRGaWVsZEZvY3VzKTogQWRkZWQgZm9yIGNhbGxpbmcgRGF0ZVRp
bWVFZGl0Q29udHJvbE93bmVyOjpkaWRGaWVsZEZvY3VzKCkuCisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZEluZGV4T2YpOiBBZGRlZCBmb3IgbWFwcGluZyBEYXRl
VGltZUZpZWxkRWxlbWVudCB0byBmaWVsZCBpbmRleC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OmZvY3VzQnlPd25lcik6IEFkZGVkIGZvciBmb2N1cygpIGFjdGlvbiBh
c2VrZCBieSBvd25lci4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZv
Y3VzRmllbGRJbmRleCk6IEFkZGVkIGFzIGhlbHBlciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzRmllbGQpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQpOiBBZGRlZCBmb3Ig
aW1wbGVtZW50YWluZyBmb2N1cyBuYXZpZ2F0aW9uIGluIERhdGVUaW1lRWRpdEVsZW1lbnQgZm9y
IExlZnQvUmlnaHQga2V5cy4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6
OmZvY3VzT25QcmV2aW91c0ZpZWxkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUVkaXRFbGVtZW50Ojpmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25Pd25lcik6IENoYW5nZWQgZm9y
IHNldHRpbmcgZm9jdXMgdG8gdGhlIGZpcnN0IGZpZWxkLgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KTogQ2hhbmdlZCB0byB1c2UgZm9jdXNGaWVsZEluZGV4
KCkgYW5kIERhdGVUaW1lRmllbGRFbGVtZW50Ojpmb2N1cygpLgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6cmVzZXRMYXlvdXQpOiBDaGFuZ2VkIHRvIHJlbW92ZSBtX2Zv
Y3VzRmllbGRJbmRleCB2YXJpYWJsZSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogQ2hhbmdlZCB0byByZW1vdmUg
Zm9jdXMgbmF2aWdhdGlvbiByZWxhdGVkIGV2ZW50cywgYmx1ZS9mb2N1cy9tb3VzZSwgaGFuZGxp
bmcuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpzaG91bGRTcGluQnV0
dG9uUmVzcG9uZFRvV2hlZWxFdmVudHMpOiBDaGFuZ2VkIHRvIGNoZWNrIGZvY3VzIGZpZWxkIGlu
c3RlYWQgb2YgYXNraW5nIG93bmVyLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxl
bWVudDo6c3BpbkJ1dHRvblN0ZXBEb3duKTogQ2hhbmdlZCB0byB1c2UgZm9jdXNGaWVsZCgpIGlu
c3RlYWQgb2YgbV9mb2N1c0ZpZWxkSW5kZXguCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcFVwKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50Ojp1cGRhdGVVSVN0YXRlKTogZGl0dG8uCisgICAgICAgICogaHRt
bC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oOgorICAgICAgICAoRWRpdENvbnRyb2xPd25l
cik6IEFkZGVkIGRpZEZpZWxkQmx1cigpIGFuZCBkaWRGaWVsZEZvY3VzKCkgZnVuY3Rpb24gZGVj
bGFyYXRpb25zLgorICAgICAgICAoRGF0ZVRpbWVFZGl0RWxlbWVudCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBDaGFuZ2VkIHRvIGhhbmRs
ZSBibHVyIGFuZCBmb2N1cyBldmVudHMuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxk
RWxlbWVudDo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKTogQ2hhbmdlZCB0byBoYW5kbGUg
TGVmdC9SaWdodCBrZXlzLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6
OmRpZEJsdXIpOiBBZGRlZCB0byBjYWxsIEZpZWxkT3duZXI6OmRpZEJsdXIoKSB0byByZW1vdmUg
Zm9jdXMgcmluZyBmcm9tIG93bmVyIGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUZpZWxkRWxlbWVudDo6ZGlkRm9jdXMpOiBBZGRlZCB0byBjYWxsIEZpZWxkT3duZXI6OmRpZEZv
Y3VzKCkgIHRvIGFkZCBmb2N1cyByaW5nIHRvIG93bmVyIGVsZW1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCk6IEFkZGVkIGZvciBt
b3ZpbmcgZm9jdXMgdG8gbmV4dCBmaWVsZCBmb3IgRGF0ZVRpbWVOdW1iZXJpY0ZpZWxkRWxtZW50
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6aXNGb2N1c2FibGUpOiBB
ZGRlZCB0byBtYWtlIERhdGVUaW1lRmllbGRFbGVtZW50IGZvY3VzYWJsZS4KKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKTogIEFkZGVkIHRvIG1h
a2UgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZm9jdXNhYmxlLgorICAgICAgICAqIGh0bWwvc2hhZG93
L0RhdGVUaW1lRmllbGRFbGVtZW50Lmg6CisgICAgICAgIChGaWVsZE93bmVyKTogQWRkZWQgZGVj
bGFyYXRpb25zIGZvciBmb2N1c2FibGUgaGFuZGxpbmcuCisgICAgICAgIChEYXRlVGltZUZpZWxk
RWxlbWVudCk6IGRpdHRvLgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQ6OmRpZEJsdXIpOiBBZGRlZCBmb3IgcmVzZXR0aW5nIHR5cGUtYWhlYWQgdGltZXIuCisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmRpZEZvY3VzKTog
QWRkZWQgZm9yIHJlc2V0dGluZyB0eXBlLWFoZWFkIHRpbWVyLgorICAgICAgICAqIGh0bWwvc2hh
ZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oOgorICAgICAgICAoRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50KTogQWRkZWQgZGlkQmx1cigpIGFuZCBkaWRGb2N1cygpIGRlY2xhcmF0
aW9ucy4KKwogMjAxMi0wOC0yOSAgQWFyb24gQ29sd2VsbCAgPGFjb2x3ZWxsQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBBZGQgV2ViS2l0IHByZWZpeCB0byBNZWRpYVNvdXJjZSwgU291cmNlQnVm
ZmVyLCAmIFNvdXJjZUJ1ZmZlckxpc3QgRE9NV2luZG93IGNvbnN0cnVjdG9yIGF0dHJpYnV0ZXMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCA1ODYxMDMyMzExNWNhMzEy
NGU1MGNkODg3ZWQ3MTJiM2E2YzU5ZGI5Li43NjFkZDc3ODMwYjkxMzc2MjE4ODNmZTk4Yzk4OGZk
ZjBlODE3MWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyNCw5
ICsxMjQsMTggQEAgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6
fkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoKQogewogfQogCi12b2lkIFRpbWVJbnB1dFR5
cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVkaXRDb250cm9sTW91c2VGb2N1cygp
Cit2b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmRpZEZp
ZWxkQmx1cigpCiB7Ci0gICAgbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+Zm9jdXMoKTsKKyAg
ICAvLyBXZSBkb24ndCBuZWVkIHRvIGNhbGwgYmx1cigpLCBiZWNhdXNlIGEgZmllbGQgaGFkIGZv
Y3VzLgorICAgIC8vIFJlbW92ZSBmb2N1cyByaW5nIGJ5IENTUyAiZm9jdXMiIHBzZXVkbyBjbGFz
cy4KKyAgICBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5zZXRGb2N1cyhmYWxzZSk7Cit9CisK
K3ZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6ZGlkRmll
bGRGb2N1cygpCit7CisgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBjYWxsIGZvY3VzKCksIGJlY2F1
c2UgYSBmaWVsZCBoYXMgZm9jdXMuCisgICAgLy8gQWRkIGZvY3VzIHJpbmcgYnkgQ1NTICJmb2N1
cyIgcHNldWRvIGNsYXNzLgorICAgIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPnNldEZvY3Vz
KHRydWUpOwogfQogCiB2b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25l
ckltcGw6OmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCkKQEAgLTEzOCwxMSArMTQ3LDkgQEAgdm9p
ZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjplZGl0Q29udHJv
bFZhbHVlQ2hhbmdlZCgpCiAgICAgaW5wdXQtPmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVu
dCgpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lcklt
cGw6OmZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25lcigpCitib29sIFRpbWVJbnB1dFR5cGU6
Omhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdAogewotICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVt
ZW50PiBpbnB1dChtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpKTsKLSAgICBpbnB1dC0+Zm9jdXMo
KTsKLSAgICBpbnB1dC0+c2VsZWN0KCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIFRp
bWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xP
d25lckRpc2FibGVkKCkgY29uc3QKQEAgLTE1MCwxMSArMTU3LDYgQEAgYm9vbCBUaW1lSW5wdXRU
eXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJEaXNh
YmxlZCgpIGMKICAgICByZXR1cm4gbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+cmVhZE9ubHko
KTsKIH0KIAotYm9vbCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBs
Ojppc0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90aW1l
SW5wdXRUeXBlLmVsZW1lbnQoKS0+Zm9jdXNlZCgpOwotfQotCiBib29sIFRpbWVJbnB1dFR5cGU6
OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+ZGlzYWJs
ZWQoKTsKQEAgLTE3Myw2ICsxNzUsMTIgQEAgVGltZUlucHV0VHlwZTo6flRpbWVJbnB1dFR5cGUo
KQogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnJlbW92ZUVkaXRDb250cm9sT3duZXIo
KTsKIH0KIAordm9pZCBUaW1lSW5wdXRUeXBlOjpibHVyKCkKK3sKKyAgICBpZiAobV9kYXRlVGlt
ZUVkaXRFbGVtZW50KQorICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmJsdXJCeU93bmVy
KCk7Cit9CisKIFJlbmRlck9iamVjdCogVGltZUlucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IElucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoYXJlbmEsIHN0eWxlKTsKQEAgLTE5Nyw2ICsyMDUs
MTIgQEAgdm9pZCBUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiAgICAgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpOwogfQogCit2b2lk
IFRpbWVJbnB1dFR5cGU6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKQorewor
ICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxl
bWVudC0+Zm9jdXNCeU93bmVyKHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbik7Cit9CisKIHZvaWQg
VGltZUlucHV0VHlwZTo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBldmVudCkKIHsKICAgICBpZiAobV9k
YXRlVGltZUVkaXRFbGVtZW50KQpAQCAtMjE0LDI1ICsyMjgsMTQgQEAgdm9pZCBUaW1lSW5wdXRU
eXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgZm9yd2Fy
ZEV2ZW50KGV2ZW50KTsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0
ZUV2ZW50KEV2ZW50KiBldmVudCkKLXsKLSAgICBpZiAoZWxlbWVudCgpLT5kaXNhYmxlZCgpIHx8
IGVsZW1lbnQoKS0+cmVhZE9ubHkoKSB8fCAhZWxlbWVudCgpLT5yZW5kZXJlcigpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQotICAgICAgICBtX2Rh
dGVUaW1lRWRpdEVsZW1lbnQtPmZvY3VzKCk7Ci0KLSAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRs
ZWQoKTsKLX0KLQogYm9vbCBUaW1lSW5wdXRUeXBlOjppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJv
YXJkRXZlbnQqKSBjb25zdAogewotICAgIHJldHVybiBlbGVtZW50KCktPmlzVGV4dEZvcm1Db250
cm9sRm9jdXNhYmxlKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIFRpbWVJbnB1dFR5
cGU6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAogewotICAgIHJldHVybiBlbGVtZW50KCktPmlz
VGV4dEZvcm1Db250cm9sRm9jdXNhYmxlKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lk
IFRpbWVJbnB1dFR5cGU6Om1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGltZUlucHV0VHlwZS5oCmluZGV4IGVlODc3ZGNmMWQ2Y2NjZGY1YjE3NDViMTFjY2Y5MDk5NTlj
ZmUzNDcuLmFlYjlkOTBiODI0YWYxY2ZmNTJhNWU5NmU0NjEyMDcxNjUzNDNkMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC02OCwxMSArNjgsMTAgQEAgcHJpdmF0ZToKICAg
ICAgICAgdmlydHVhbCB+RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCgpOwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgdmlydHVhbCB2b2lkIGVkaXRDb250cm9sTW91c2VGb2N1cygpIE9WRVJS
SURFIEZJTkFMOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmllbGRCbHVyKCkgT1ZFUlJJREUg
RklOQUw7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaWVsZEZvY3VzKCkgT1ZFUlJJREUgRklO
QUw7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBlZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpIE9WRVJS
SURFIEZJTkFMOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNBbmRTZWxlY3RFZGl0Q29udHJv
bE93bmVyKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250
cm9sT3duZXJEaXNhYmxlZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNFZGl0Q29udHJvbE93bmVyRm9jdXNlZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25zdCBP
VkVSUklERSBGSU5BTDsKIAogICAgICAgICBUaW1lSW5wdXRUeXBlJiBtX3RpbWVJbnB1dFR5cGU7
CkBAIC04MSwxMyArODAsMTUgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgRGF0ZVRpbWVF
ZGl0Q29udHJvbE93bmVySW1wbDsKIAogICAgIC8vIElucHV0VHlwZSBmdW5jdGlvbnMKKyAgICB2
aXJ0dWFsIHZvaWQgYmx1cigpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgY29uc3QgT1ZF
UlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveVNoYWRvd1N1YnRyZWUoKSBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkg
T1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZp
b3VzU2VsZWN0aW9uKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZm9yd2FyZEV2
ZW50KEV2ZW50KikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZURPTUFj
dGl2YXRlRXZlbnQoRXZlbnQqKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0
dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAg
IHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBP
VkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0IE9W
RVJSSURFIEZJTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUVkaXRFbGVtZW50LmNwcAppbmRleCA0NGExYzJiMGE1NjFlMjYzYmUwMmZlOTAxMGYxNmZjYzIw
NDU4ZmNkLi5mZGQyYjg3MjdlYTZmOGFmOTlmNDRkMjg1YWI1Nzc4YjYyNWUwNjBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApA
QCAtMTk1LDcgKzE5NSw2IEBAIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkRhdGVUaW1lRWRpdEVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBFZGl0Q29udHJvbE93bmVyJiBlCiAgICAgOiBIVE1MRGl2
RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogICAgICwgbV9lZGl0Q29udHJvbE93bmVyKCZlZGl0
Q29udHJvbE93bmVyKQogICAgICwgbV9zcGluQnV0dG9uKDApCi0gICAgLCBtX2ZvY3VzRmllbGRJ
bmRleChpbnZhbGlkRmllbGRJbmRleCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgZGF0ZVRpbWVFZGl0UHNldWRvSWQsICgiLXdlYmtpdC1kYXRldGltZS1lZGl0Iikp
OwogICAgIHNldFNoYWRvd1BzZXVkb0lkKGRhdGVUaW1lRWRpdFBzZXVkb0lkKTsKQEAgLTIxOCwx
MiArMjE3LDMwIEBAIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6YWRkRmllbGQoUGFzc1JlZlB0
cjxEYXRlVGltZUZpZWxkRWxlbWVudD4gZmllbGQpCiAgICAgYXBwZW5kQ2hpbGQoZmllbGQpOwog
fQogCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmJsdXJCeU93bmVyKCkKK3sKKyAgICBpZiAo
RGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkID0gZm9jdXNGaWVsZCgpKQorICAgICAgICBmaWVs
ZC0+Ymx1cigpOworfQorCiBQYXNzUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IERhdGVUaW1l
RWRpdEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEVkaXRDb250cm9sT3duZXIm
IGVkaXRDb250cm9sT3duZXIpCiB7CiAgICAgUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNv
bnRhaW5lciA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZUVkaXRFbGVtZW50KGRvY3VtZW50LCBlZGl0
Q29udHJvbE93bmVyKSk7CiAgICAgcmV0dXJuIGNvbnRhaW5lci5yZWxlYXNlKCk7CiB9CiAKK3Zv
aWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGlkRmllbGRCbHVyKCkKK3sKKyAgICBpZiAobV9lZGl0
Q29udHJvbE93bmVyKQorICAgICAgICBtX2VkaXRDb250cm9sT3duZXItPmRpZEZpZWxkQmx1cigp
OworfQorCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRpZEZpZWxkRm9jdXMoKQoreworICAg
IGlmIChtX2VkaXRDb250cm9sT3duZXIpCisgICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZGlk
RmllbGRGb2N1cygpOworfQorCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRpc2FibGVkU3Rh
dGVDaGFuZ2VkKCkKIHsKICAgICB1cGRhdGVVSVN0YXRlKCk7CkBAIC0yMzQsMTA1ICsyNTEsNzgg
QEAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkQXQoc2l6
ZV90IGZpZWxkSW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5z
aXplKCkgPyBtX2ZpZWxkc1tmaWVsZEluZGV4XSA6IDA7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6Zm9jdXNBbmRTZWxlY3RTcGluQnV0dG9uT3duZXIoKQorc2l6ZV90IERhdGVUaW1l
RWRpdEVsZW1lbnQ6OmZpZWxkSW5kZXhPZihjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYgZmll
bGQpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2VkaXRDb250cm9sT3duZXIpCi0gICAgICAgIHJldHVy
bjsKLSAgICBtX2VkaXRDb250cm9sT3duZXItPmZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25l
cigpOworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVs
ZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKKyAgICAgICAgaWYgKG1fZmllbGRzW2ZpZWxkSW5k
ZXhdID09ICZmaWVsZCkKKyAgICAgICAgICAgIHJldHVybiBmaWVsZEluZGV4OworICAgIH0KKyAg
ICByZXR1cm4gaW52YWxpZEZpZWxkSW5kZXg7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6Zm9jdXNGaWVsZEF0KHNpemVfdCBuZXdGb2N1c0ZpZWxkSW5kZXgpCit2b2lkIERhdGVUaW1l
RWRpdEVsZW1lbnQ6OmZpZWxkVmFsdWVDaGFuZ2VkKCkKIHsKLSAgICBpZiAobV9mb2N1c0ZpZWxk
SW5kZXggPT0gbmV3Rm9jdXNGaWVsZEluZGV4KQotICAgICAgICByZXR1cm47Ci0KLSAgICBEYXRl
VGltZUZpZWxkRWxlbWVudCogY29uc3QgbmV3Rm9jdXNGaWVsZCA9IGZpZWxkQXQobmV3Rm9jdXNG
aWVsZEluZGV4KTsKLSAgICBpZiAobmV3Rm9jdXNGaWVsZCAmJiBuZXdGb2N1c0ZpZWxkLT5pc1Jl
YWRPbmx5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBj
b25zdCBjdXJyZW50Rm9jdXNGaWVsZCA9IGZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpOwotCi0g
ICAgaWYgKGN1cnJlbnRGb2N1c0ZpZWxkKQotICAgICAgICBjdXJyZW50Rm9jdXNGaWVsZC0+c2V0
Rm9jdXMoZmFsc2UpOwotCi0gICAgaWYgKCFuZXdGb2N1c0ZpZWxkKSB7Ci0gICAgICAgIG1fZm9j
dXNGaWVsZEluZGV4ID0gaW52YWxpZEZpZWxkSW5kZXg7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBtX2ZvY3VzRmllbGRJbmRleCA9IG5ld0ZvY3VzRmllbGRJbmRleDsKLSAgICBuZXdG
b2N1c0ZpZWxkLT5zZXRGb2N1cyh0cnVlKTsKKyAgICBpZiAobV9lZGl0Q29udHJvbE93bmVyKQor
ICAgICAgICBtX2VkaXRDb250cm9sT3duZXItPmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCk7CiB9
CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2Fy
ZEV2ZW50KiBrZXlib2FyZEV2ZW50KQordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0J5
T3duZXIoYm9vbCkKIHsKLSAgICBpZiAoaXNEaXNhYmxlZCgpIHx8IGlzUmVhZE9ubHkoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFmaWVsZEF0KG1fZm9jdXNGaWVsZEluZGV4KSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGtleWJvYXJkRXZlbnQtPnR5cGUoKSAhPSBldmVudE5h
bWVzKCkua2V5ZG93bkV2ZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb25zdCBTdHJpbmcm
IGtleUlkZW50aWZpZXIgPSBrZXlib2FyZEV2ZW50LT5rZXlJZGVudGlmaWVyKCk7Ci0KLSAgICBp
ZiAoa2V5SWRlbnRpZmllciA9PSAiTGVmdCIpIHsKLSAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0
RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgY29uc3Qgc2l6ZV90IGZpZWxkSW5kZXggPSBwcmV2
aW91c0ZpZWxkSW5kZXgoKTsKLSAgICAgICAgaWYgKGZpZWxkQXQoZmllbGRJbmRleCkpCi0gICAg
ICAgICAgICBmb2N1c0ZpZWxkQXQoZmllbGRJbmRleCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiUmlnaHQiKSB7Ci0gICAgICAgIGtleWJvYXJk
RXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBmaWVsZElu
ZGV4ID0gbmV4dEZpZWxkSW5kZXgoKTsKLSAgICAgICAgaWYgKGZpZWxkQXQoZmllbGRJbmRleCkp
Ci0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQoZmllbGRJbmRleCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9IGZpZWxkQXQoMCkp
CisgICAgICAgIGZpZWxkLT5mb2N1cygpOworfQogCi0gICAgaWYgKGtleUlkZW50aWZpZXIgPT0g
IlUrMDAwOSIpIHsKLSAgICAgICAgY29uc3Qgc2l6ZV90IGZpZWxkSW5kZXggPSBrZXlib2FyZEV2
ZW50LT5nZXRNb2RpZmllclN0YXRlKCJTaGlmdCIpID8gcHJldmlvdXNGaWVsZEluZGV4KCkgOiBu
ZXh0RmllbGRJbmRleCgpOwotICAgICAgICBpZiAoZmllbGRBdChmaWVsZEluZGV4KSkgewotICAg
ICAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgICAg
IGZvY3VzRmllbGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQorc2l6ZV90IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzRmllbGRJbmRleCgpIGNvbnN0Cit7
CisgICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5z
aXplKCk7ICsrZmllbGRJbmRleCkgeworICAgICAgICBpZiAobV9maWVsZHNbZmllbGRJbmRleF0t
PmZvY3VzZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBmaWVsZEluZGV4OwogICAgIH0KKyAgICBy
ZXR1cm4gaW52YWxpZEZpZWxkSW5kZXg7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
ZmllbGRWYWx1ZUNoYW5nZWQoKQorRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIERhdGVUaW1lRWRpdEVs
ZW1lbnQ6OmZvY3VzRmllbGQoKSBjb25zdAogewotICAgIGlmIChtX2VkaXRDb250cm9sT3duZXIp
Ci0gICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKTsK
KyAgICByZXR1cm4gZmllbGRBdChmb2N1c0ZpZWxkSW5kZXgoKSk7CiB9CiAKLXZvaWQgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCgpCitib29sIERhdGVUaW1lRWRpdEVsZW1l
bnQ6OmZvY3VzT25OZXh0RmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmIGZpZWxkKQog
ewotICAgIGlmIChtX2ZvY3VzRmllbGRJbmRleCAhPSBpbnZhbGlkRmllbGRJbmRleCkKLSAgICAg
ICAgZm9jdXNGaWVsZEF0KG5leHRGaWVsZEluZGV4KCkpOworICAgIGNvbnN0IHNpemVfdCBzdGFy
dEZpZWxkSW5kZXggPSBmaWVsZEluZGV4T2YoZmllbGQpOworICAgIGlmIChzdGFydEZpZWxkSW5k
ZXggPT0gaW52YWxpZEZpZWxkSW5kZXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmb3Ig
KHNpemVfdCBmaWVsZEluZGV4ID0gc3RhcnRGaWVsZEluZGV4ICsgMTsgZmllbGRJbmRleCA8IG1f
ZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KSB7CisgICAgICAgIGlmICghbV9maWVsZHNbZmll
bGRJbmRleF0tPmlzUmVhZE9ubHkoKSkgeworICAgICAgICAgICAgbV9maWVsZHNbZmllbGRJbmRl
eF0tPmZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6aGFuZGxl
TW91c2VFdmVudChNb3VzZUV2ZW50KiBtb3VzZUV2ZW50KQorYm9vbCBEYXRlVGltZUVkaXRFbGVt
ZW50Ojpmb2N1c09uUHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYgZmll
bGQpCiB7Ci0gICAgaWYgKGlzRGlzYWJsZWQoKSB8fCBpc1JlYWRPbmx5KCkpCi0gICAgICAgIHJl
dHVybjsKKyAgICBjb25zdCBzaXplX3Qgc3RhcnRGaWVsZEluZGV4ID0gZmllbGRJbmRleE9mKGZp
ZWxkKTsKKyAgICBpZiAoc3RhcnRGaWVsZEluZGV4ID09IGludmFsaWRGaWVsZEluZGV4KQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgc2l6ZV90IGZpZWxkSW5kZXggPSBzdGFydEZpZWxkSW5k
ZXg7CisgICAgd2hpbGUgKGZpZWxkSW5kZXggPiAwKSB7CisgICAgICAgIC0tZmllbGRJbmRleDsK
KyAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNSZWFkT25seSgpKSB7CisgICAg
ICAgICAgICBtX2ZpZWxkc1tmaWVsZEluZGV4XS0+Zm9jdXMoKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KIAotICAgIGlm
IChtb3VzZUV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50IHx8IG1v
dXNlRXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0b24pCit2b2lkIERhdGVUaW1lRWRpdEVsZW1l
bnQ6OmZvY3VzQW5kU2VsZWN0U3BpbkJ1dHRvbk93bmVyKCkKK3sKKyAgICBpZiAoZm9jdXNGaWVs
ZEluZGV4KCkgIT0gaW52YWxpZEZpZWxkSW5kZXgpCiAgICAgICAgIHJldHVybjsKIAotICAgIE5v
ZGUqIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBtb3VzZUV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7
Ci0gICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5z
aXplKCk7ICsrZmllbGRJbmRleCkgewotICAgICAgICBpZiAobV9maWVsZHNbZmllbGRJbmRleF0g
PT0gcmVsYXRlZFRhcmdldCkgewotICAgICAgICAgICAgbW91c2VFdmVudC0+c2V0RGVmYXVsdEhh
bmRsZWQoKTsKLSAgICAgICAgICAgIGZvY3VzRmllbGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAg
ICAgIGlmIChtX2VkaXRDb250cm9sT3duZXIpCi0gICAgICAgICAgICAgICAgbV9lZGl0Q29udHJv
bE93bmVyLT5lZGl0Q29udHJvbE1vdXNlRm9jdXMoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgfQorICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmaWVs
ZEF0KDApKQorICAgICAgICBmaWVsZC0+Zm9jdXMoKTsKIH0KIAogYm9vbCBEYXRlVGltZUVkaXRF
bGVtZW50Ojppc0Rpc2FibGVkKCkgY29uc3QKQEAgLTM0NywxMCArMzM3LDkgQEAgYm9vbCBEYXRl
VGltZUVkaXRFbGVtZW50Ojppc1JlYWRPbmx5KCkgY29uc3QKIAogdm9pZCBEYXRlVGltZUVkaXRF
bGVtZW50OjpsYXlvdXQoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21w
b25lbnRzJiBkYXRlVmFsdWUpCiB7Ci0gICAgc2l6ZV90IGZvY3VzRmllbGRJbmRleCA9IG1fZm9j
dXNGaWVsZEluZGV4OwotICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBmb2N1c0ZpZWxk
ID0gZmllbGRBdChtX2ZvY3VzRmllbGRJbmRleCk7CisgICAgc2l6ZV90IGZvY3VzRmllbGRJbmRl
eCA9IHRoaXMtPmZvY3VzRmllbGRJbmRleCgpOworICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBj
b25zdCBmb2N1c0ZpZWxkID0gZmllbGRBdChmb2N1c0ZpZWxkSW5kZXgpOwogICAgIGNvbnN0IEF0
b21pY1N0cmluZyBmb2N1c0ZpZWxkSWQgPSBmb2N1c0ZpZWxkID8gZm9jdXNGaWVsZC0+c2hhZG93
UHNldWRvSWQoKSA6IG51bGxBdG9tOwotICAgIGZvY3VzRmllbGRBdChpbnZhbGlkRmllbGRJbmRl
eCk7CiAKICAgICBEYXRlVGltZUVkaXRCdWlsZGVyIGJ1aWxkZXIoKnRoaXMsIHN0ZXBSYW5nZSwg
ZGF0ZVZhbHVlKTsKICAgICBjb25zdCBTdHJpbmcgZGF0ZVRpbWVGb3JtYXQgPSBidWlsZGVyLm5l
ZWRTZWNvbmRGaWVsZCgpID8gbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKSA6IGxvY2FsaXplZFNo
b3J0VGltZUZvcm1hdFRleHQoKTsKQEAgLTM2OCwzMiArMzU3LDExIEBAIHZvaWQgRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6bGF5b3V0KGNvbnN0IFN0ZXBSYW5nZSYgc3RlcFJhbmdlLCBjb25zdCBEYXRl
Q29tcG9uZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KLSAgICAgICAgZm9jdXNGaWVsZEF0KHN0ZDo6bWluKGZvY3VzRmllbGRJbmRleCwgbV9maWVs
ZHMuc2l6ZSgpIC0gMSkpOworICAgICAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxk
ID0gZmllbGRBdChzdGQ6Om1pbihmb2N1c0ZpZWxkSW5kZXgsIG1fZmllbGRzLnNpemUoKSAtIDEp
KSkKKyAgICAgICAgICAgIGZpZWxkLT5mb2N1cygpOwogICAgIH0KIH0KIAotc2l6ZV90IERhdGVU
aW1lRWRpdEVsZW1lbnQ6Om5leHRGaWVsZEluZGV4KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9m
b2N1c0ZpZWxkSW5kZXggIT0gaW52YWxpZEZpZWxkSW5kZXgpOwotICAgIGZvciAoc2l6ZV90IGZp
ZWxkSW5kZXggPSBtX2ZvY3VzRmllbGRJbmRleCArIDE7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5z
aXplKCk7ICsrZmllbGRJbmRleCkgewotICAgICAgICBpZiAoIW1fZmllbGRzW2ZpZWxkSW5kZXhd
LT5pc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gZmllbGRJbmRleDsKLSAgICB9Ci0g
ICAgcmV0dXJuIG1fZmllbGRzLnNpemUoKTsKLX0KLQotc2l6ZV90IERhdGVUaW1lRWRpdEVsZW1l
bnQ6OnByZXZpb3VzRmllbGRJbmRleCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fZm9jdXNGaWVs
ZEluZGV4ICE9IGludmFsaWRGaWVsZEluZGV4KTsKLSAgICBzaXplX3QgZmllbGRJbmRleCA9IG1f
Zm9jdXNGaWVsZEluZGV4OwotICAgIHdoaWxlIChmaWVsZEluZGV4ID4gMCkgewotICAgICAgICAt
LWZpZWxkSW5kZXg7Ci0gICAgICAgIGlmICghbV9maWVsZHNbZmllbGRJbmRleF0tPmlzUmVhZE9u
bHkoKSkKLSAgICAgICAgICAgIHJldHVybiBmaWVsZEluZGV4OwotICAgIH0KLSAgICByZXR1cm4g
aW52YWxpZEZpZWxkSW5kZXg7Ci19Ci0KIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6cmVhZE9u
bHlTdGF0ZUNoYW5nZWQoKQogewogICAgIHVwZGF0ZVVJU3RhdGUoKTsKQEAgLTQwMyw0MiArMzcx
LDIyIEBAIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6cmVzZXRMYXlvdXQoKQogewogICAgIG1f
ZmllbGRzLnNocmluaygwKTsKICAgICBtX3NwaW5CdXR0b24gPSAwOwotICAgIG1fZm9jdXNGaWVs
ZEluZGV4ID0gaW52YWxpZEZpZWxkSW5kZXg7CiAgICAgcmVtb3ZlQ2hpbGRyZW4oKTsKIH0KIAog
dm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVu
dCkKIHsKLSAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZm9jdXNFdmVudCkg
ewotICAgICAgICBpZiAoIWlzRGlzYWJsZWQoKSAmJiAhaXNSZWFkT25seSgpICYmIG1fZm9jdXNG
aWVsZEluZGV4ID09IGludmFsaWRGaWVsZEluZGV4KQotICAgICAgICAgICAgZm9jdXNGaWVsZEF0
KDApOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmJsdXJFdmVudCkgewotICAgICAgICBmb2N1c0ZpZWxkQXQoaW52YWxpZEZp
ZWxkSW5kZXgpOwotICAgICAgICByZXR1cm47CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50
KiBmaWVsZCA9IGZvY3VzRmllbGQoKSkgeworICAgICAgICBmaWVsZC0+ZGVmYXVsdEV2ZW50SGFu
ZGxlcihldmVudCk7CisgICAgICAgIGlmIChldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKKyAgICAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7
Ci0gICAgICAgIGhhbmRsZU1vdXNlRXZlbnQoc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50
KSk7Ci0gICAgfSBlbHNlIGlmIChldmVudC0+aXNLZXlib2FyZEV2ZW50KCkpCi0gICAgICAgIGhh
bmRsZUtleWJvYXJkRXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7Ci0K
LSAgICBpZiAoZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBmb2N1c0ZpZWxkID0gZmllbGRBdChtX2ZvY3Vz
RmllbGRJbmRleCk7Ci0gICAgaWYgKCFmb2N1c0ZpZWxkKQotICAgICAgICByZXR1cm47Ci0KICAg
ICBpZiAobV9zcGluQnV0dG9uKSB7CiAgICAgICAgIG1fc3BpbkJ1dHRvbi0+Zm9yd2FyZEV2ZW50
KGV2ZW50KTsKICAgICAgICAgaWYgKGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgIH0KLQotICAgIGZvY3VzRmllbGQtPmRlZmF1bHRFdmVudEhhbmRsZXIo
ZXZlbnQpOwogfQogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNv
bnN0IFN0ZXBSYW5nZSYgc3RlcFJhbmdlLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKQEAg
LTQ2NSwyNiArNDEzLDI3IEBAIGJvb2wgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2hvdWxkU3BpbkJ1
dHRvblJlc3BvbmRUb1doZWVsRXZlbnRzKCkKICAgICBpZiAoIXNob3VsZFNwaW5CdXR0b25SZXNw
b25kVG9Nb3VzZUV2ZW50cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4g
IW1fZWRpdENvbnRyb2xPd25lciB8fCBtX2VkaXRDb250cm9sT3duZXItPmlzRWRpdENvbnRyb2xP
d25lckZvY3VzZWQoKTsKKyAgICByZXR1cm4gZm9jdXNGaWVsZEluZGV4KCkgIT0gaW52YWxpZEZp
ZWxkSW5kZXg7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c3BpbkJ1dHRvblN0ZXBE
b3duKCkKIHsKLSAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQg
PSBmaWVsZEF0KG1fZm9jdXNGaWVsZEluZGV4KSkKLSAgICAgICAgZm9jdXNGaWVsZC0+c3RlcERv
d24oKTsKKyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZpZWxkID0gZm9jdXNG
aWVsZCgpKQorICAgICAgICBmaWVsZC0+c3RlcERvd24oKTsKIH0KIAogdm9pZCBEYXRlVGltZUVk
aXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcFVwKCkKIHsKLSAgICBpZiAoRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1fZm9jdXNGaWVsZEluZGV4KSkKLSAg
ICAgICAgZm9jdXNGaWVsZC0+c3RlcFVwKCk7CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50
KiBjb25zdCBmaWVsZCA9IGZvY3VzRmllbGQoKSkKKyAgICAgICAgZmllbGQtPnN0ZXBVcCgpOwog
fQogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnVwZGF0ZVVJU3RhdGUoKQogewogICAgIGlm
IChpc0Rpc2FibGVkKCkgfHwgaXNSZWFkT25seSgpKSB7CiAgICAgICAgIG1fc3BpbkJ1dHRvbi0+
cmVsZWFzZUNhcHR1cmUoKTsKLSAgICAgICAgZm9jdXNGaWVsZEF0KGludmFsaWRGaWVsZEluZGV4
KTsKKyAgICAgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9IGZvY3VzRmllbGQo
KSkKKyAgICAgICAgICAgIGZpZWxkLT5ibHVyKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKaW5kZXggOGQ5ZTAxNWEy
NmY3NTA1ODFlMjI5ZjY5ZTEzOTI5N2JmNmY2MDM1My4uODEzN2M3MmUyNTExNzlmOGFkNjJlZTI2
OGVjZDM3OTkwN2IxN2UwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVFZGl0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lRWRpdEVsZW1lbnQuaApAQCAtNTEsMTEgKzUxLDEwIEBAIHB1YmxpYzoKICAgICBjbGFz
cyBFZGl0Q29udHJvbE93bmVyIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkVkaXRD
b250cm9sT3duZXIoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzQW5kU2VsZWN0RWRpdENv
bnRyb2xPd25lcigpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGVkaXRDb250cm9sTW91c2VG
b2N1cygpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpZWxkQmx1cigpID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZEZpZWxkRm9jdXMoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBlZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpID0gMDsKICAgICAgICAgdmlydHVhbCBib29s
IGlzRWRpdENvbnRyb2xPd25lckRpc2FibGVkKCkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNFZGl0Q29udHJvbE93bmVyRm9jdXNlZCgpIGNvbnN0ID0gMDsKICAgICAgICAgdmly
dHVhbCBib29sIGlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5KCkgY29uc3QgPSAwOwogICAgIH07
CiAKQEAgLTYzLDggKzYyLDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkRhdGVUaW1lRWRp
dEVsZW1lbnQoKTsKICAgICB2b2lkIGFkZEZpZWxkKFBhc3NSZWZQdHI8RGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ+KTsKKyAgICB2b2lkIGJsdXJCeU93bmVyKCk7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKICAgICB2b2lkIGRpc2FibGVkU3RhdGVD
aGFuZ2VkKCk7CisgICAgdm9pZCBmb2N1c0J5T3duZXIoYm9vbCk7CiAgICAgdm9pZCByZWFkT25s
eVN0YXRlQ2hhbmdlZCgpOwogICAgIHZvaWQgcmVtb3ZlRWRpdENvbnRyb2xPd25lcigpIHsgbV9l
ZGl0Q29udHJvbE93bmVyID0gMDsgfQogICAgIHZvaWQgcmVzZXRMYXlvdXQoKTsKQEAgLTg5LDE5
ICs5MCwyMCBAQCBwcml2YXRlOgogICAgIERhdGVUaW1lRWRpdEVsZW1lbnQoRG9jdW1lbnQqLCBF
ZGl0Q29udHJvbE93bmVyJik7CiAKICAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGRBdChz
aXplX3QpIGNvbnN0OwotICAgIHZvaWQgZm9jdXNGaWVsZEF0KHNpemVfdCk7Ci0gICAgdm9pZCBo
YW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqKTsKLSAgICB2b2lkIGhhbmRsZU1vdXNl
RXZlbnQoTW91c2VFdmVudCopOworICAgIHNpemVfdCBmaWVsZEluZGV4T2YoY29uc3QgRGF0ZVRp
bWVGaWVsZEVsZW1lbnQmKSBjb25zdDsKKyAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogZm9jdXNG
aWVsZCgpIGNvbnN0OworICAgIHNpemVfdCBmb2N1c0ZpZWxkSW5kZXgoKSBjb25zdDsKICAgICBi
b29sIGlzRGlzYWJsZWQoKSBjb25zdDsKICAgICBib29sIGlzUmVhZE9ubHkoKSBjb25zdDsKICAg
ICB2b2lkIGxheW91dChjb25zdCBTdGVwUmFuZ2UmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYpOwot
ICAgIHNpemVfdCBuZXh0RmllbGRJbmRleCgpIGNvbnN0OwotICAgIHNpemVfdCBwcmV2aW91c0Zp
ZWxkSW5kZXgoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZVVJU3RhdGUoKTsKIAogICAgIC8vIERh
dGVUaW1lRmllbGRFbGVtZW50OjpGaWVsZE93bmVyIGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmllbGRCbHVyKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGRpZEZp
ZWxkRm9jdXMoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZmllbGRWYWx1ZUNo
YW5nZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNPbk5leHRGaWVs
ZCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBmb2N1c09uTmV4dEZpZWxkKGNv
bnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBi
b29sIGZvY3VzT25QcmV2aW91c0ZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgT1ZF
UlJJREUgRklOQUw7CiAKICAgICAvLyBTcGluQnV0dG9uRWxlbWVudDo6U3BpbkJ1dHRvbk93bmVy
IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNBbmRTZWxlY3RTcGluQnV0dG9uT3du
ZXIoKSBPVkVSUklERSBGSU5BTDsKQEAgLTExMyw3ICsxMTUsNiBAQCBwcml2YXRlOgogICAgIFZl
Y3RvcjxEYXRlVGltZUZpZWxkRWxlbWVudCosIG1heGltdW1OdW1iZXJPZkZpZWxkcz4gbV9maWVs
ZHM7CiAgICAgRWRpdENvbnRyb2xPd25lciogbV9lZGl0Q29udHJvbE93bmVyOwogICAgIFNwaW5C
dXR0b25FbGVtZW50KiBtX3NwaW5CdXR0b247Ci0gICAgc2l6ZV90IG1fZm9jdXNGaWVsZEluZGV4
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwCmluZGV4IDlkNTZkOWJmODdlMTQ0
YjhiZDVlNTYyMGMwODc0YzM1ZGUxNmIxNDguLjkwMmUxOGQxMWNmZGZmYTI2YWI1OGY4M2M3NzY2
ZjVlMjQ3OWFjNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEYXRlQ29t
cG9uZW50cy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZl
bnQuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDYgKzQ5LDEyIEBAIERhdGVUaW1lRmllbGRFbGVtZW50
OjpEYXRlVGltZUZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZp
ZWxkCiAKIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZl
bnQqIGV2ZW50KQogeworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5ibHVy
RXZlbnQpCisgICAgICAgIGRpZEJsdXIoKTsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2
ZW50TmFtZXMoKS5mb2N1c0V2ZW50KQorICAgICAgICBkaWRGb2N1cygpOworCiAgICAgaWYgKGV2
ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkgewogICAgICAgICBLZXlib2FyZEV2ZW50KiBrZXlib2Fy
ZEV2ZW50ID0gc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KTsKICAgICAgICAgaGFu
ZGxlS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50KTsKQEAgLTc0LDYgKzgxLDIyIEBAIHZvaWQg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2Fy
ZEV2ZW50KiBrZXlib2FyZEV2CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoa2V5
SWRlbnRpZmllciA9PSAiTGVmdCIpIHsKKyAgICAgICAgaWYgKG1fZmllbGRPd25lcikgeworICAg
ICAgICAgICAgaWYgKG1fZmllbGRPd25lci0+Zm9jdXNPblByZXZpb3VzRmllbGQoKnRoaXMpKQor
ICAgICAgICAgICAgICAgIGtleWJvYXJkRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChrZXlJZGVudGlmaWVyID09
ICJSaWdodCIpIHsKKyAgICAgICAgaWYgKG1fZmllbGRPd25lcikgeworICAgICAgICAgICAgaWYg
KG1fZmllbGRPd25lci0+Zm9jdXNPbk5leHRGaWVsZCgqdGhpcykpCisgICAgICAgICAgICAgICAg
a2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgaWYgKGtleUlkZW50aWZpZXIgPT0gIlVwIikgewogICAgICAg
ICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogICAgICAgICBzdGVwVXAoKTsK
QEAgLTg3LDEwICsxMTAsMjMgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEtl
eWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGtleWJvYXJkRXYKICAgICB9CiB9CiAK
LXZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQoKQordm9pZCBEYXRl
VGltZUZpZWxkRWxlbWVudDo6ZGlkQmx1cigpCit7CisgICAgaWYgKG1fZmllbGRPd25lcikKKyAg
ICAgICAgbV9maWVsZE93bmVyLT5kaWRGaWVsZEJsdXIoKTsKK30KKwordm9pZCBEYXRlVGltZUZp
ZWxkRWxlbWVudDo6ZGlkRm9jdXMoKQogewogICAgIGlmIChtX2ZpZWxkT3duZXIpCi0gICAgICAg
IG1fZmllbGRPd25lci0+Zm9jdXNPbk5leHRGaWVsZCgpOworICAgICAgICBtX2ZpZWxkT3duZXIt
PmRpZEZpZWxkRm9jdXMoKTsKK30KKwordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6Zm9jdXNP
bk5leHRGaWVsZCgpCit7CisgICAgaWYgKCFtX2ZpZWxkT3duZXIpCisgICAgICAgIHJldHVybjsK
KyAgICBtX2ZpZWxkT3duZXItPmZvY3VzT25OZXh0RmllbGQoKnRoaXMpOwogfQogCiB2b2lkIERh
dGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93
UHNldWRvSWQpCkBAIC05OSw2ICsxMzUsMTEgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6
aW5pdGlhbGl6ZShjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKQogICAgIGFwcGVu
ZENoaWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB2aXNpYmxlVmFsdWUoKSkpOwogfQogCiti
b29sIERhdGVUaW1lRmllbGRFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuICFpc1JlYWRPbmx5KCk7Cit9CisKIGJvb2wgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmlzUmVh
ZE9ubHkoKSBjb25zdAogewogICAgIHJldHVybiBmYXN0SGFzQXR0cmlidXRlKHJlYWRvbmx5QXR0
cik7CkBAIC0xMTEsNiArMTUyLDExIEBAIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnNldFJl
YWRPbmx5KCkKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKK2Jvb2wgRGF0ZVRpbWVG
aWVsZEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOwor
fQorCiB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNpYmxlVmFsdWUoRXZlbnRC
ZWhhdmlvciBldmVudEJlaGF2aW9yKQogewogICAgIFRleHQqIGNvbnN0IHRleHROb2RlID0gdG9U
ZXh0KGZpcnN0Q2hpbGQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZUZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuaAppbmRleCBjZDM5ZTI4YTM5NDQ5Y2E0YjhjNDUzMGQ2YjllNjQ2
NjdkYzRmYzQ1Li5lZWEwYWJjNDlmZjhhYTg4MGIzZjRiMDYwOWI2NTdmODc3Y2U1ZWJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgK
QEAgLTUwLDcgKzUwLDEwIEBAIHB1YmxpYzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwg
fkZpZWxkT3duZXIoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGZpZWxkVmFsdWVDaGFuZ2VkKCkg
PSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNPbk5leHRGaWVsZCgpID0gMDsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZEZpZWxkQmx1cigpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lk
IGRpZEZpZWxkRm9jdXMoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgYm9vbCBmb2N1c09uTmV4dEZp
ZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgPSAwOworICAgICAgICB2aXJ0dWFsIGJv
b2wgZm9jdXNPblByZXZpb3VzRmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSA9IDA7
CiAgICAgfTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikg
T1ZFUlJJREU7CkBAIC03MCw2ICs3Myw4IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIERh
dGVUaW1lRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYpOworICAgIHZpcnR1YWwg
dm9pZCBkaWRCbHVyKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZEZvY3VzKCk7CiAgICAgdm9pZCBm
b2N1c09uTmV4dEZpZWxkKCk7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQo
S2V5Ym9hcmRFdmVudCopID0gMDsKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQXRvbWljU3Ry
aW5nJik7CkBAIC03OCw2ICs4Myw4IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2b2lk
IGRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7CisgICAgdmlydHVh
bCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKIAogICAgIEZpZWxkT3du
ZXIqIG1fZmllbGRPd25lcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcAppbmRleCBhNDA1M2I1Nzc1
ZjRiNWM0MDExNDU0Yjg3NDI1MWVlMTE1ZGZkZjBhLi5iYTlmNTI3Njk5NGUzMDkwNjMzZGZhNjZi
OTZhZjdiMTBiYWI3NzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKQEAgLTcyLDYgKzcyLDE4IEBA
IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCwgRmllCiB7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmll
bGRFbGVtZW50OjpkaWRCbHVyKCkKK3sKKyAgICBtX2xhc3REaWdpdENoYXJUaW1lID0gMDsKKyAg
ICBEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGlkQmx1cigpOworfQorCit2b2lkIERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudDo6ZGlkRm9jdXMoKQoreworICAgIG1fbGFzdERpZ2l0Q2hhclRpbWUg
PSAwOworICAgIERhdGVUaW1lRmllbGRFbGVtZW50OjpkaWRGb2N1cygpOworfQorCiB2b2lkIERh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2
ZW50KiBrZXlib2FyZEV2ZW50KQogewogICAgIGlmIChpc1JlYWRPbmx5KCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dC5oCmluZGV4IDM3MTliYzEzMGUzMWIzNzQ2YjMzOWY3OWNkMzIwZDc1YjQzZTFmYjYuLmQ0MWEx
YzNhYTdlYzkxOTI4MjZlYzM1YzhhZWU3ODYzZDVmYjNmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCkBA
IC02Myw2ICs2Myw4IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICAvLyBEYXRlVGltZUZp
ZWxkRWxlbWVudCBmdW5jdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGRpZEJsdXIoKSBPVkVSUklE
RSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXMoKSBPVkVSUklERSBGSU5BTDsKICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJ
REUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3QgRGF0ZUNvbXBv
bmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkLCBFdmVudEJlaGF2aW9yKSBPVkVSUklERSBGSU5B
TDsKICAgICB2aXJ0dWFsIHZvaWQgc3RlcERvd24oKSBPVkVSUklERSBGSU5BTDsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1
ODkzMWJkZDNkZmIzZGZiNTdlM2NjNjA0YmYyNDM0MTdlNmU1ZjQzLi4yMWQwOTVkNTAzZTE5YjZh
YTI2Mjc4OTNhM2FhYzk2Y2Q0Y2M0NDk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDgt
MzAgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBbRm9y
bXNdIFNoaWZ0K1RhYiBzaG91bGQgZm9jdXMgdGhlIGxhc3QgZmllbGQgb2YgbXVsdGlwbGUgZmll
bGRzIHRpbWUgaW5wdXQgVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk1MTY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGZvY3VzIGFuZCBibHVyIGV2ZW50IGhhbmRsaW5nIHRl
c3QgYW5kIGEgbmV3IHRlc3QgY2FzZQorICAgICAgICBmb3IgU2hpZnQrVGFiIGZvciBtdWx0aXBs
ZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAgICAgICAqIHRpbWUtbXVsdGlwbGUtZmllbGRz
LWJsdXItYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRp
bWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sOiBBZGRlZCBmb3Ig
Ymx1ciBhbmQgZm9jdXMgZXZlbnRzIGhhbmRsaW5nLgorICAgICAgICAqIGZhc3QvZm9ybXMvdGlt
ZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0
bWw6IENoYW5nZWQgdG8gYWRkIGEgdGVzdCBjYXNlcyBmb3IgU2hpZnQrVGFiLgorCiAyMDEyLTA4
LTI5ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Rl
c3RzXSBBZGQgdGVzdCBjYXNlIGZvciByaWdodC10by1sZWZ0IHJlbmRlcmluZyBvZiBtdWx0aXBs
ZSBmaWVsZHMgdGltZSBpbnB1dCBVSQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1
cy1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRp
cGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1ldmVudHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyY2E3N2JkNTdmYmUyN2ZjYWJjNjQ3OGZjYTg3ZmRkZDhi
NWIyY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVs
dGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ2hlY2sgYmx1ciBhbmQgZm9jdXMgZXZlbnRz
IGZvciBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSQorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyB0ZXN0SW5wdXQuZm9jdXMoKTsgc3RhdGUgaXMgImZvY3VzIgorUEFT
UyB0ZXN0SW5wdXQuYmx1cigpOyBzdGF0ZSBpcyAiYmx1ciIKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtYmx1
ci1hbmQtZm9jdXMtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVs
dGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRjNzkxZmJiMzdjMjNlOThjNzJiNjlkMGMzNDZmMzY3Mzc1MTIwMDYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUt
ZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCkBA
IC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ0NoZWNrIGJsdXIgYW5kIGZvY3VzIGV2
ZW50cyBmb3IgbXVsdGlwbGUgZmllbGRzIHRpbWUgaW5wdXQgVUknKTsKK3ZhciB0ZXN0SW5wdXQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwordGVzdElucHV0LnNldEF0dHJpYnV0
ZSgidHlwZSIsICJ0aW1lIik7Cit2YXIgc3RhdGUgPSAiIjsKK3Rlc3RJbnB1dC5hZGRFdmVudExp
c3RlbmVyKCJibHVyIiwgZnVuY3Rpb24gKCkgeyBzdGF0ZSA9ICdibHVyJzsgfSk7Cit0ZXN0SW5w
dXQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCBmdW5jdGlvbiAoKSB7IHN0YXRlID0gJ2ZvY3Vz
JzsgfSk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlc3RJbnB1dCk7CisKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygndGVzdElucHV0LmZvY3VzKCk7IHN0YXRlJywgJ2ZvY3VzJyk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RJbnB1dC5ibHVyKCk7IHN0YXRlJywgJ2JsdXInKTsKKwor
ZGVidWcoJycpOwordGVzdElucHV0LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGVzdElucHV0
KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1r
ZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1l
LW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDYxOGE2OTY4MmNlNjIxZDEzZjFmYmZiNTVmYjAzYTNjMDJiYWUwMzYu
Ljk4ZDIzNjk5ZjlhZGQ1MzliOTI1NTEwMWI5MDJhMTNlYTA4Y2E5ODMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1m
aWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJk
LWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTExLDcgKzExLDcgQEAgTGVmdC9SaWdodCAtIE1vdmUg
Zm9jdXMgZmllbGQgaW5zaWRlIGVsZW1lbnQKIFVwL0Rvd24gLSBJbmNyZW1lbnQvZGVjcmVtZW50
IHZhbHVlIG9mIGZvY3VzIGZpZWxkCiBUYWIgLSBNb3ZlIGZvY3VzIGZpZWxkCiBCYWNrc3BhY2Ug
LSBNYWtlIHZhbHVlIGVtcHR5Ci0gCisgIAogPT0gRGlnaXQga2V5cyA9PQogUEFTUyBpbnB1dC52
YWx1ZSBpcyAiMDc6NTYiCiA9PSBMZWZ0L1JpZ2h0IGtleXMgPT0KQEAgLTI2LDYgKzI2LDEwIEBA
IFBBU1MgaW5wdXQudmFsdWUgaXMgIjE0OjU4IgogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDM6MDUi
CiBQQVNTIGlucHV0LnZhbHVlIGlzICIwNzowNSIKIFBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5pZCBpcyAiYW5vdGhlciIKKz09IFNoZml0K1RhYiBrZXkgPT0KK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjE1OjAwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTU6MDMiCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuaWQgaXMgImJlZm9yZSIKID09IEJhY2tzcGFjZSBrZXkgPT0KIFBBU1MgaW5w
dXQudmFsdWUgaXMgIiIKID09IERlbGV0ZSBrZXkgPT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5
Ym9hcmQtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUt
ZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sCmluZGV4IDdm
MzUyMTJjODMyM2RjZWJjY2FmMzQ5NDM4NDU4YjhjYzA3MzRhYjcuLjFkNThhMTA1YmQ4ZGMzY2E4
MDNhOTgzOTJkNjY1Y2ZhZmMzOTk3ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZl
bnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxk
cy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbApAQCAtMTYsNiArMTYs
NyBAQCBUZXN0IGZvbGxvd2luZyBrZXlzOgogICAgIDxsaT5UYWIgLSBNb3ZlIGZvY3VzIGZpZWxk
PC9saT4KICAgICA8bGk+QmFja3NwYWNlIC0gTWFrZSB2YWx1ZSBlbXB0eTwvbGk+CiA8L3VsPgor
PGlucHV0IGlkPSJiZWZvcmUiPgogPGlucHV0IGlkPSJpbnB1dCIgdHlwZT0idGltZSI+CiA8aW5w
dXQgaWQ9ImFub3RoZXIiPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CkBAIC05Nyw2ICs5OCwx
OCBAQCBrZXlEb3duKCdcdCcpOwoga2V5RG93bignXHQnKTsKIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygnZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCcsICdhbm90aGVyJyk7CiAKK2JlZ2luVGVzdCgn
U2hmaXQrVGFiIGtleScsICcwMzowMCcpOworYW5vdGhlci5mb2N1cygpOwora2V5RG93bignXHQn
LCBbJ3NoaWZ0S2V5J10pOwora2V5RG93bignUCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdp
bnB1dC52YWx1ZScsICcxNTowMCcpOwora2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5J10pOwora2V5
RG93bignMycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcxNTowMycp
Owora2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5J10pOwora2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5
J10pOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkJywg
J2JlZm9yZScpOworCiBiZWdpblRlc3QoJ0JhY2tzcGFjZSBrZXknLCAnMTI6MzQnKTsKIGtleURv
d24oIlxiIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJycpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161420</attachid>
            <date>2012-08-30 00:54:48 -0700</date>
            <delta_ts>2012-08-30 03:57:29 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-95168-20120830165436.patch</filename>
            <type>text/plain</type>
            <size>36934</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyODk0YzY4YzhmZDM2
M2ZkYTAyNTQzZjljNmMzOWUxZjQ1ODhkNC4uMmQ1ZTdmMmFiMTg4MTdkNGE1ZTU3MjEyYzAyNzk3
NTNmYTYwODBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEyLTA4LTI5ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBTaGlm
dCtUYWIgc2hvdWxkIGZvY3VzIHRoZSBsYXN0IGZpZWxkIG9mIG11bHRpcGxlIGZpZWxkcyB0aW1l
IGlucHV0IFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NTE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggY2hhbmdlcyBmb2N1cyBoYW5kbGluZyBpbiBEYXRlVGltZUVkaXRFbGVtZW50
IGNsYXNzIGZvcgorICAgICAgICBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAg
ICAgICBDdXJyZW50IGltcGxlbWVudGF0aW9uIGNvbnRyb2xzIGZvY3VzIGluIGZpZWxkcyBieSBE
YXRlVGltZUVkaXRFbGVtZW50CisgICAgICAgIGFuZCBhIGZvY3VzIGZpZWxkIGlzIHRyYWNrZWQg
bV9mb2N1c0ZpZWxkSW5kZXggbWVtYmVyIHZhcmlhYmxlLiBJbgorICAgICAgICBjdXJyZW50IGlt
cGxlbWVudGF0aW9uLCBpdCBpcyBoYXJkIHRvIHNldCBmb2N1cyB0byB0aGUgbGFzdCBmaWVsZCB3
aGVuCisgICAgICAgIGl0IGdldHMgZm9jdXMgYnkgU2hpZnQrVGFiLCBiZWNhdXNlIHdlIGRvbid0
IGtub3cgaG93IERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgZ2V0cyBmb2N1cy4KKworICAg
ICAgICBJbiB0aGlzIG5ldyBpbXBsZW1lbnRhdGlvbiwgRGF0ZVRpbWVFZGl0RWxlbWVudCBkb2Vz
bid0IGNvbnRyb2wgZm9jdXMKKyAgICAgICAgcmF0aGVyIEZvY3VzQ29udHJvbGxlciBjbGFzcyBj
b250cm9scyBmb2N1czoKKyAgICAgICAgIC0gV2Ugc2V0IGZvY3VzIHRvIERhdGVUaW1lRmllbGRF
bGVtZW50IGluc3RlYWQgb2YgSFRNTElucHV0RWxlbWVudAorICAgICAgICAgICB3aGljaCBpcyBz
aGFkb3cgaG9zdCBvZiBEYXRlVGltZUVkaXRFbGVtZW50IGZvciBjb250cm9sbGluZyBmb2N1cwor
ICAgICAgICAgICBieSBGb2N1c0NvbnRyb2xsZXIuCisgICAgICAgICAtIEZvY3VzL2JsdXIgZXZl
bnRzIGluIERhdGVUaW1lRmllbGRFbGVtZW50IGFyZSByb3V0ZWQgdG8gSFRNTElucHV0RWxlbWVu
dAorICAgICAgICAgICBieSBzaGFkb3cgRE9NIG1lY2hhbmlzbS4KKyAgICAgICAgIC0gVGltZUlu
cHV0VHlwZSBjbGFzcyBvdmVycmlkZXMgSFRNTElOcHV0RWxlbWVudDo6Ymx1cigpIGFuZCBmb2N1
cygpCisgICAgICAgICAgIGZ1bmN0aW9ucyBmb3IgZGVsZWdhdGluZyBibHVyL2ZvY3VzIGJlaGF2
aW9yIHRvIERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgICAgYnkgY2FsbGluZyBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpibHVyQnlPd25lcigpL2ZvY3VzQnlPd25lcigpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggYWZmZWN0cyBvbmx5IHBvcnRzIHdoaWNoIGVuYWJsZSBib3RoIEVOQUJMRV9JTlBV
VF9UWVBFX1RJTUUKKyAgICAgICAgYW5kIEVOQUJMRV9JTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRz
L3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCisgICAgICAg
IFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgbmV3IHRlc3QgY2FzZSBmb3IgU2hpZnQrVGFiIGludG8g
ZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEJsdXIpOiBBZGRlZCBmb3IgdGhlIGlucHV0IGVsZW1lbnQgbm90IHRvIGJl
IG1hdGNoZWQgImZvY3VzIiBwc2V1ZG8gY2xhc3MgZm9yIHJlbW92aW5nIGZvY3VzIHJpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEZvY3VzKTogIEFkZGVkIGZvciB0aGUgaW5wdXQgZWxlbWVudCB0byBiZSBt
YXRjaGVkICJmb2N1cyIgcHNldWRvIGNsYXNzIGZvciBhZGRpbmcgZm9jdXMgcmluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZvY3VzTG9naWMpOiBBZGRlZCBm
b3IgYXNraW5nIEZvY3VzQ29udHJvbGxlciB0byB3YWxrIGludG8gc2hhZG93IERPTSB0cmVlIG9u
IGlucHV0IHR5cGUgInRpbWUiLgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6Ymx1
cik6IEFkZGVkIGZvciBkZWxlZ2F0aW5nIGJsdXIoKSBhY3Rpb24gdG8gRGF0ZVRpbWVFZGl0RWxl
bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmZvY3VzKTogQWRkZWQgZm9y
IGRlbGVnYXRpbmcgZm9jdXMoKSBhY3Rpb24gdG8gRGF0ZVRpbWVFZGl0RWxlbWVudC4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBDaGFuZ2Vk
IGZvciAiaW5wdXQiIGVsZW1lbnQgbm90IHRvIGhhdmUgZm9jdXMuCisgICAgICAgIChXZWJDb3Jl
OjpUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKTogIENoYW5nZWQgZm9yICJpbnB1dCIg
ZWxlbWVudCBub3QgdG8gaGF2ZSBmb2N1cy4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUu
aDoKKyAgICAgICAgKERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwpOiBDaGFuZ2VkIGZvciBu
ZXcgZGVmaW5pdGlvbiBvZiBEYXRlVGltZUVkaXRDb250cm9sT3duZXIuCisgICAgICAgIChUaW1l
SW5wdXRUeXBlKTogQ2hhbmdlZCBmb3IgbmV3IGRlZmluaXRpb24gb2YgRGF0ZVRpbWVFZGl0RWxl
bWVudC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OkRhdGVUaW1lRWRpdEVsZW1lbnQp
OiBSZW1vdmVkIGRyb3BwZWQgbWVtYmVyIHZhcmlhYmxlIG1fZm9jdXNGaWVsZEluZGV4LgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6Ymx1ckJ5T3duZXIpOiBBZGRlZCBm
b3IgYmx1cigpIGFjdGlvbiBhc2VrZCBieSBvd25lci4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OmRpZEZpZWxkQmx1cik6IEFkZGVkIGZvciBjYWxsaW5nIERhdGVUaW1l
RWRpdENvbnRyb2xPd25lcjo6ZGlkRmllbGRCbHVyKCkuCisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpkaWRGaWVsZEZvY3VzKTogQWRkZWQgZm9yIGNhbGxpbmcgRGF0ZVRp
bWVFZGl0Q29udHJvbE93bmVyOjpkaWRGaWVsZEZvY3VzKCkuCisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZEluZGV4T2YpOiBBZGRlZCBmb3IgbWFwcGluZyBEYXRl
VGltZUZpZWxkRWxlbWVudCB0byBmaWVsZCBpbmRleC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OmZvY3VzQnlPd25lcik6IEFkZGVkIGZvciBmb2N1cygpIGFjdGlvbiBh
c2VrZCBieSBvd25lci4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZv
Y3VzRmllbGRJbmRleCk6IEFkZGVkIGFzIGhlbHBlciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzRmllbGQpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQpOiBBZGRlZCBmb3Ig
aW1wbGVtZW50YWluZyBmb2N1cyBuYXZpZ2F0aW9uIGluIERhdGVUaW1lRWRpdEVsZW1lbnQgZm9y
IExlZnQvUmlnaHQga2V5cy4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6
OmZvY3VzT25QcmV2aW91c0ZpZWxkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUVkaXRFbGVtZW50Ojpmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25Pd25lcik6IENoYW5nZWQgZm9y
IHNldHRpbmcgZm9jdXMgdG8gdGhlIGZpcnN0IGZpZWxkLgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KTogQ2hhbmdlZCB0byB1c2UgZm9jdXNGaWVsZEluZGV4
KCkgYW5kIERhdGVUaW1lRmllbGRFbGVtZW50Ojpmb2N1cygpLgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6cmVzZXRMYXlvdXQpOiBDaGFuZ2VkIHRvIHJlbW92ZSBtX2Zv
Y3VzRmllbGRJbmRleCB2YXJpYWJsZSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogQ2hhbmdlZCB0byByZW1vdmUg
Zm9jdXMgbmF2aWdhdGlvbiByZWxhdGVkIGV2ZW50cywgYmx1ZS9mb2N1cy9tb3VzZSwgaGFuZGxp
bmcuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpzaG91bGRTcGluQnV0
dG9uUmVzcG9uZFRvV2hlZWxFdmVudHMpOiBDaGFuZ2VkIHRvIGNoZWNrIGZvY3VzIGZpZWxkIGlu
c3RlYWQgb2YgYXNraW5nIG93bmVyLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxl
bWVudDo6c3BpbkJ1dHRvblN0ZXBEb3duKTogQ2hhbmdlZCB0byB1c2UgZm9jdXNGaWVsZCgpIGlu
c3RlYWQgb2YgbV9mb2N1c0ZpZWxkSW5kZXguCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcFVwKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50Ojp1cGRhdGVVSVN0YXRlKTogZGl0dG8uCisgICAgICAgICogaHRt
bC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oOgorICAgICAgICAoRWRpdENvbnRyb2xPd25l
cik6IEFkZGVkIGRpZEZpZWxkQmx1cigpIGFuZCBkaWRGaWVsZEZvY3VzKCkgZnVuY3Rpb24gZGVj
bGFyYXRpb25zLgorICAgICAgICAoRGF0ZVRpbWVFZGl0RWxlbWVudCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBDaGFuZ2VkIHRvIGhhbmRs
ZSBibHVyIGFuZCBmb2N1cyBldmVudHMuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxk
RWxlbWVudDo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKTogQ2hhbmdlZCB0byBoYW5kbGUg
TGVmdC9SaWdodCBrZXlzLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6
OmRpZEJsdXIpOiBBZGRlZCB0byBjYWxsIEZpZWxkT3duZXI6OmRpZEJsdXIoKSB0byByZW1vdmUg
Zm9jdXMgcmluZyBmcm9tIG93bmVyIGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUZpZWxkRWxlbWVudDo6ZGlkRm9jdXMpOiBBZGRlZCB0byBjYWxsIEZpZWxkT3duZXI6OmRpZEZv
Y3VzKCkgIHRvIGFkZCBmb2N1cyByaW5nIHRvIG93bmVyIGVsZW1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCk6IEFkZGVkIGZvciBt
b3ZpbmcgZm9jdXMgdG8gbmV4dCBmaWVsZCBmb3IgRGF0ZVRpbWVOdW1iZXJpY0ZpZWxkRWxtZW50
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6aXNGb2N1c2FibGUpOiBB
ZGRlZCB0byBtYWtlIERhdGVUaW1lRmllbGRFbGVtZW50IGZvY3VzYWJsZS4KKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKTogIEFkZGVkIHRvIG1h
a2UgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZm9jdXNhYmxlLgorICAgICAgICAqIGh0bWwvc2hhZG93
L0RhdGVUaW1lRmllbGRFbGVtZW50Lmg6CisgICAgICAgIChGaWVsZE93bmVyKTogQWRkZWQgZGVj
bGFyYXRpb25zIGZvciBmb2N1c2FibGUgaGFuZGxpbmcuCisgICAgICAgIChEYXRlVGltZUZpZWxk
RWxlbWVudCk6IGRpdHRvLgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQ6OmRpZEJsdXIpOiBBZGRlZCBmb3IgcmVzZXR0aW5nIHR5cGUtYWhlYWQgdGltZXIuCisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmRpZEZvY3VzKTog
QWRkZWQgZm9yIHJlc2V0dGluZyB0eXBlLWFoZWFkIHRpbWVyLgorICAgICAgICAqIGh0bWwvc2hh
ZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oOgorICAgICAgICAoRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50KTogQWRkZWQgZGlkQmx1cigpIGFuZCBkaWRGb2N1cygpIGRlY2xhcmF0
aW9ucy4KKwogMjAxMi0wOC0yOSAgQWFyb24gQ29sd2VsbCAgPGFjb2x3ZWxsQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBBZGQgV2ViS2l0IHByZWZpeCB0byBNZWRpYVNvdXJjZSwgU291cmNlQnVm
ZmVyLCAmIFNvdXJjZUJ1ZmZlckxpc3QgRE9NV2luZG93IGNvbnN0cnVjdG9yIGF0dHJpYnV0ZXMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCA1ODYxMDMyMzExNWNhMzEy
NGU1MGNkODg3ZWQ3MTJiM2E2YzU5ZGI5Li5iNTJjMWRlNWVkMjU1ZTBmNDk0NjY5NDU0NGYwZTRh
ODdjYmMwMGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyNCw5
ICsxMjQsMjIgQEAgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6
fkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoKQogewogfQogCi12b2lkIFRpbWVJbnB1dFR5
cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVkaXRDb250cm9sTW91c2VGb2N1cygp
Cit2b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmRpZEZp
ZWxkQmx1cigpCiB7Ci0gICAgbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+Zm9jdXMoKTsKKyAg
ICAvLyBXZSBkb24ndCBuZWVkIHRvIGNhbGwgYmx1cigpLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCB3aGVuIGZpZWxkCisgICAgLy8gbG9zdCBmb2N1cy4KKworICAgIC8vIFJlbW92ZSBmb2N1cyBy
aW5nIGJ5IENTUyAiZm9jdXMiIHBzZXVkbyBjbGFzcy4KKyAgICBtX3RpbWVJbnB1dFR5cGUuZWxl
bWVudCgpLT5zZXRGb2N1cyhmYWxzZSk7Cit9CisKK3ZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRp
bWVFZGl0Q29udHJvbE93bmVySW1wbDo6ZGlkRmllbGRGb2N1cygpCit7CisgICAgLy8gV2UgZG9u
J3QgbmVlZCB0byBjYWxsIGZvY3VzKCkuIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gZmll
bGQKKyAgICAvLyBnb3QgZm9jdXMuCisKKyAgICAvLyBBZGQgZm9jdXMgcmluZyBieSBDU1MgImZv
Y3VzIiBwc2V1ZG8gY2xhc3MuCisgICAgbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+c2V0Rm9j
dXModHJ1ZSk7CiB9CiAKIHZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93
bmVySW1wbDo6ZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKQpAQCAtMTM4LDExICsxNTEsOSBAQCB2
b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVkaXRDb250
cm9sVmFsdWVDaGFuZ2VkKCkKICAgICBpbnB1dC0+ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2
ZW50KCk7CiB9CiAKLXZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
SW1wbDo6Zm9jdXNBbmRTZWxlY3RFZGl0Q29udHJvbE93bmVyKCkKK2Jvb2wgVGltZUlucHV0VHlw
ZTo6aGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0CiB7Ci0gICAgUmVmUHRyPEhUTUxJbnB1dEVs
ZW1lbnQ+IGlucHV0KG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCkpOwotICAgIGlucHV0LT5mb2N1
cygpOwotICAgIGlucHV0LT5zZWxlY3QoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wg
VGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6aXNFZGl0Q29udHJv
bE93bmVyRGlzYWJsZWQoKSBjb25zdApAQCAtMTUwLDExICsxNjEsNiBAQCBib29sIFRpbWVJbnB1
dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lckRp
c2FibGVkKCkgYwogICAgIHJldHVybiBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5yZWFkT25s
eSgpOwogfQogCi1ib29sIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lcklt
cGw6OmlzRWRpdENvbnRyb2xPd25lckZvY3VzZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3Rp
bWVJbnB1dFR5cGUuZWxlbWVudCgpLT5mb2N1c2VkKCk7Ci19Ci0KIGJvb2wgVGltZUlucHV0VHlw
ZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6aXNFZGl0Q29udHJvbE93bmVyUmVhZE9u
bHkoKSBjb25zdAogewogICAgIHJldHVybiBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5kaXNh
YmxlZCgpOwpAQCAtMTczLDYgKzE3OSwxMiBAQCBUaW1lSW5wdXRUeXBlOjp+VGltZUlucHV0VHlw
ZSgpCiAgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+cmVtb3ZlRWRpdENvbnRyb2xPd25l
cigpOwogfQogCit2b2lkIFRpbWVJbnB1dFR5cGU6OmJsdXIoKQoreworICAgIGlmIChtX2RhdGVU
aW1lRWRpdEVsZW1lbnQpCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+Ymx1ckJ5T3du
ZXIoKTsKK30KKwogUmVuZGVyT2JqZWN0KiBUaW1lSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsKICAgICByZXR1
cm4gSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihhcmVuYSwgc3R5bGUpOwpAQCAtMTk3LDYgKzIw
OSwxMiBAQCB2b2lkIFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKICAgICBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7CiB9CiAKK3Zv
aWQgVGltZUlucHV0VHlwZTo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pCit7
CisgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICAgICAgbV9kYXRlVGltZUVkaXRF
bGVtZW50LT5mb2N1c0J5T3duZXIocmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKTsKK30KKwogdm9p
ZCBUaW1lSW5wdXRUeXBlOjpmb3J3YXJkRXZlbnQoRXZlbnQqIGV2ZW50KQogewogICAgIGlmICht
X2RhdGVUaW1lRWRpdEVsZW1lbnQpCkBAIC0yMTQsMjUgKzIzMiwxNCBAQCB2b2lkIFRpbWVJbnB1
dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICBmb3J3
YXJkRXZlbnQoZXZlbnQpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2
YXRlRXZlbnQoRXZlbnQqIGV2ZW50KQotewotICAgIGlmIChlbGVtZW50KCktPmRpc2FibGVkKCkg
fHwgZWxlbWVudCgpLT5yZWFkT25seSgpIHx8ICFlbGVtZW50KCktPnJlbmRlcmVyKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCi0gICAgICAgIG1f
ZGF0ZVRpbWVFZGl0RWxlbWVudC0+Zm9jdXMoKTsKLQotICAgIGV2ZW50LT5zZXREZWZhdWx0SGFu
ZGxlZCgpOwotfQotCiBib29sIFRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5
Ym9hcmRFdmVudCopIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVsZW1lbnQoKS0+aXNUZXh0Rm9ybUNv
bnRyb2xGb2N1c2FibGUoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgVGltZUlucHV0
VHlwZTo6aXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVsZW1lbnQoKS0+
aXNUZXh0Rm9ybUNvbnRyb2xGb2N1c2FibGUoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHZv
aWQgVGltZUlucHV0VHlwZTo6bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmgKaW5kZXggZWU4NzdkY2YxZDZjY2NkZjViMTc0NWIxMWNjZjkwOTk1
OWNmZTM0Ny4uYWViOWQ5MGI4MjRhZjFjZmY1MmE1ZTk2ZTQ2MTIwNzE2NTM0M2QyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKQEAgLTY4LDExICs2OCwxMCBAQCBwcml2YXRlOgog
ICAgICAgICB2aXJ0dWFsIH5EYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKCk7CiAKICAgICBw
cml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xNb3VzZUZvY3VzKCkgT1ZF
UlJJREUgRklOQUw7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaWVsZEJsdXIoKSBPVkVSUklE
RSBGSU5BTDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpZWxkRm9jdXMoKSBPVkVSUklERSBG
SU5BTDsKICAgICAgICAgdmlydHVhbCB2b2lkIGVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCkgT1ZF
UlJJREUgRklOQUw7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1c0FuZFNlbGVjdEVkaXRDb250
cm9sT3duZXIoKSBPVkVSUklERSBGSU5BTDsKICAgICAgICAgdmlydHVhbCBib29sIGlzRWRpdENv
bnRyb2xPd25lckRpc2FibGVkKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJSZWFkT25seSgpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOwogCiAgICAgICAgIFRpbWVJbnB1dFR5cGUmIG1fdGltZUlucHV0VHlw
ZTsKQEAgLTgxLDEzICs4MCwxNSBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBEYXRlVGlt
ZUVkaXRDb250cm9sT3duZXJJbXBsOwogCiAgICAgLy8gSW5wdXRUeXBlIGZ1bmN0aW9ucworICAg
IHZpcnR1YWwgdm9pZCBibHVyKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBSZW5kZXJP
YmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBjb25zdCBP
VkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIE9W
RVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U2hhZG93U3VidHJlZSgpIE9W
RVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQo
KSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJl
dmlvdXNTZWxlY3Rpb24pIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBmb3J3YXJk
RXZlbnQoRXZlbnQqKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRE9N
QWN0aXZhdGVFdmVudChFdmVudCopIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBo
YW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFIEZJTkFMOworICAgIHZp
cnR1YWwgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAg
ICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0
IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29u
c3QgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBib29sIGlzVGV4dEZpZWxkKCkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRWRpdEVsZW1lbnQuY3BwCmluZGV4IDQ0YTFjMmIwYTU2MWUyNjNiZTAyZmU5MDEwZjE2ZmNj
MjA0NThmY2QuLmZkZDJiODcyN2VhNmY4YWY5OWY0NGQyODVhYjU3NzhiNjI1ZTA2MGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3Bw
CkBAIC0xOTUsNyArMTk1LDYgQEAgRGF0ZVRpbWVFZGl0RWxlbWVudDo6RGF0ZVRpbWVFZGl0RWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQsIEVkaXRDb250cm9sT3duZXImIGUKICAgICA6IEhUTUxE
aXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCiAgICAgLCBtX2VkaXRDb250cm9sT3duZXIoJmVk
aXRDb250cm9sT3duZXIpCiAgICAgLCBtX3NwaW5CdXR0b24oMCkKLSAgICAsIG1fZm9jdXNGaWVs
ZEluZGV4KGludmFsaWRGaWVsZEluZGV4KQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBkYXRlVGltZUVkaXRQc2V1ZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQi
KSk7CiAgICAgc2V0U2hhZG93UHNldWRvSWQoZGF0ZVRpbWVFZGl0UHNldWRvSWQpOwpAQCAtMjE4
LDEyICsyMTcsMzAgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjphZGRGaWVsZChQYXNzUmVm
UHRyPERhdGVUaW1lRmllbGRFbGVtZW50PiBmaWVsZCkKICAgICBhcHBlbmRDaGlsZChmaWVsZCk7
CiB9CiAKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Ymx1ckJ5T3duZXIoKQoreworICAgIGlm
IChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmb2N1c0ZpZWxkKCkpCisgICAgICAgIGZp
ZWxkLT5ibHVyKCk7Cit9CisKIFBhc3NSZWZQdHI8RGF0ZVRpbWVFZGl0RWxlbWVudD4gRGF0ZVRp
bWVFZGl0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRWRpdENvbnRyb2xPd25l
ciYgZWRpdENvbnRyb2xPd25lcikKIHsKICAgICBSZWZQdHI8RGF0ZVRpbWVFZGl0RWxlbWVudD4g
Y29udGFpbmVyID0gYWRvcHRSZWYobmV3IERhdGVUaW1lRWRpdEVsZW1lbnQoZG9jdW1lbnQsIGVk
aXRDb250cm9sT3duZXIpKTsKICAgICByZXR1cm4gY29udGFpbmVyLnJlbGVhc2UoKTsKIH0KIAor
dm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpkaWRGaWVsZEJsdXIoKQoreworICAgIGlmIChtX2Vk
aXRDb250cm9sT3duZXIpCisgICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZGlkRmllbGRCbHVy
KCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGlkRmllbGRGb2N1cygpCit7Cisg
ICAgaWYgKG1fZWRpdENvbnRyb2xPd25lcikKKyAgICAgICAgbV9lZGl0Q29udHJvbE93bmVyLT5k
aWRGaWVsZEZvY3VzKCk7Cit9CisKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGlzYWJsZWRT
dGF0ZUNoYW5nZWQoKQogewogICAgIHVwZGF0ZVVJU3RhdGUoKTsKQEAgLTIzNCwxMDUgKzI1MSw3
OCBAQCBEYXRlVGltZUZpZWxkRWxlbWVudCogRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRBdChz
aXplX3QgZmllbGRJbmRleCkgY29uc3QKICAgICByZXR1cm4gZmllbGRJbmRleCA8IG1fZmllbGRz
LnNpemUoKSA/IG1fZmllbGRzW2ZpZWxkSW5kZXhdIDogMDsKIH0KIAotdm9pZCBEYXRlVGltZUVk
aXRFbGVtZW50Ojpmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25Pd25lcigpCitzaXplX3QgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6ZmllbGRJbmRleE9mKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JiBm
aWVsZCkgY29uc3QKIHsKLSAgICBpZiAoIW1fZWRpdENvbnRyb2xPd25lcikKLSAgICAgICAgcmV0
dXJuOwotICAgIG1fZWRpdENvbnRyb2xPd25lci0+Zm9jdXNBbmRTZWxlY3RFZGl0Q29udHJvbE93
bmVyKCk7CisgICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBtX2Zp
ZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkgeworICAgICAgICBpZiAobV9maWVsZHNbZmllbGRJ
bmRleF0gPT0gJmZpZWxkKQorICAgICAgICAgICAgcmV0dXJuIGZpZWxkSW5kZXg7CisgICAgfQor
ICAgIHJldHVybiBpbnZhbGlkRmllbGRJbmRleDsKIH0KIAotdm9pZCBEYXRlVGltZUVkaXRFbGVt
ZW50Ojpmb2N1c0ZpZWxkQXQoc2l6ZV90IG5ld0ZvY3VzRmllbGRJbmRleCkKK3ZvaWQgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6ZmllbGRWYWx1ZUNoYW5nZWQoKQogewotICAgIGlmIChtX2ZvY3VzRmll
bGRJbmRleCA9PSBuZXdGb2N1c0ZpZWxkSW5kZXgpCi0gICAgICAgIHJldHVybjsKLQotICAgIERh
dGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBuZXdGb2N1c0ZpZWxkID0gZmllbGRBdChuZXdGb2N1
c0ZpZWxkSW5kZXgpOwotICAgIGlmIChuZXdGb2N1c0ZpZWxkICYmIG5ld0ZvY3VzRmllbGQtPmlz
UmVhZE9ubHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQq
IGNvbnN0IGN1cnJlbnRGb2N1c0ZpZWxkID0gZmllbGRBdChtX2ZvY3VzRmllbGRJbmRleCk7Ci0K
LSAgICBpZiAoY3VycmVudEZvY3VzRmllbGQpCi0gICAgICAgIGN1cnJlbnRGb2N1c0ZpZWxkLT5z
ZXRGb2N1cyhmYWxzZSk7Ci0KLSAgICBpZiAoIW5ld0ZvY3VzRmllbGQpIHsKLSAgICAgICAgbV9m
b2N1c0ZpZWxkSW5kZXggPSBpbnZhbGlkRmllbGRJbmRleDsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIG1fZm9jdXNGaWVsZEluZGV4ID0gbmV3Rm9jdXNGaWVsZEluZGV4OwotICAgIG5l
d0ZvY3VzRmllbGQtPnNldEZvY3VzKHRydWUpOworICAgIGlmIChtX2VkaXRDb250cm9sT3duZXIp
CisgICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKTsK
IH0KIAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJv
YXJkRXZlbnQqIGtleWJvYXJkRXZlbnQpCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3Vz
QnlPd25lcihib29sKQogewotICAgIGlmIChpc0Rpc2FibGVkKCkgfHwgaXNSZWFkT25seSgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoa2V5Ym9hcmRFdmVudC0+dHlwZSgpICE9IGV2ZW50
TmFtZXMoKS5rZXlkb3duRXZlbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvbnN0IFN0cmlu
ZyYga2V5SWRlbnRpZmllciA9IGtleWJvYXJkRXZlbnQtPmtleUlkZW50aWZpZXIoKTsKLQotICAg
IGlmIChrZXlJZGVudGlmaWVyID09ICJMZWZ0IikgewotICAgICAgICBrZXlib2FyZEV2ZW50LT5z
ZXREZWZhdWx0SGFuZGxlZCgpOwotICAgICAgICBjb25zdCBzaXplX3QgZmllbGRJbmRleCA9IHBy
ZXZpb3VzRmllbGRJbmRleCgpOwotICAgICAgICBpZiAoZmllbGRBdChmaWVsZEluZGV4KSkKLSAg
ICAgICAgICAgIGZvY3VzRmllbGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJSaWdodCIpIHsKLSAgICAgICAga2V5Ym9h
cmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgY29uc3Qgc2l6ZV90IGZpZWxk
SW5kZXggPSBuZXh0RmllbGRJbmRleCgpOwotICAgICAgICBpZiAoZmllbGRBdChmaWVsZEluZGV4
KSkKLSAgICAgICAgICAgIGZvY3VzRmllbGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KKyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkID0gZmllbGRBdCgw
KSkKKyAgICAgICAgZmllbGQtPmZvY3VzKCk7Cit9CiAKLSAgICBpZiAoa2V5SWRlbnRpZmllciA9
PSAiVSswMDA5IikgewotICAgICAgICBjb25zdCBzaXplX3QgZmllbGRJbmRleCA9IGtleWJvYXJk
RXZlbnQtPmdldE1vZGlmaWVyU3RhdGUoIlNoaWZ0IikgPyBwcmV2aW91c0ZpZWxkSW5kZXgoKSA6
IG5leHRGaWVsZEluZGV4KCk7Ci0gICAgICAgIGlmIChmaWVsZEF0KGZpZWxkSW5kZXgpKSB7Ci0g
ICAgICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgICAgICAg
ICAgZm9jdXNGaWVsZEF0KGZpZWxkSW5kZXgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9CitzaXplX3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNGaWVsZEluZGV4KCkgY29uc3QK
K3sKKyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRz
LnNpemUoKTsgKytmaWVsZEluZGV4KSB7CisgICAgICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4
XS0+Zm9jdXNlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZpZWxkSW5kZXg7CiAgICAgfQorICAg
IHJldHVybiBpbnZhbGlkRmllbGRJbmRleDsKIH0KIAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50
OjpmaWVsZFZhbHVlQ2hhbmdlZCgpCitEYXRlVGltZUZpZWxkRWxlbWVudCogRGF0ZVRpbWVFZGl0
RWxlbWVudDo6Zm9jdXNGaWVsZCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fZWRpdENvbnRyb2xPd25l
cikKLSAgICAgICAgbV9lZGl0Q29udHJvbE93bmVyLT5lZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgp
OworICAgIHJldHVybiBmaWVsZEF0KGZvY3VzRmllbGRJbmRleCgpKTsKIH0KIAotdm9pZCBEYXRl
VGltZUVkaXRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKCkKK2Jvb2wgRGF0ZVRpbWVFZGl0RWxl
bWVudDo6Zm9jdXNPbk5leHRGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYgZmllbGQp
CiB7Ci0gICAgaWYgKG1fZm9jdXNGaWVsZEluZGV4ICE9IGludmFsaWRGaWVsZEluZGV4KQotICAg
ICAgICBmb2N1c0ZpZWxkQXQobmV4dEZpZWxkSW5kZXgoKSk7CisgICAgY29uc3Qgc2l6ZV90IHN0
YXJ0RmllbGRJbmRleCA9IGZpZWxkSW5kZXhPZihmaWVsZCk7CisgICAgaWYgKHN0YXJ0RmllbGRJ
bmRleCA9PSBpbnZhbGlkRmllbGRJbmRleCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGZv
ciAoc2l6ZV90IGZpZWxkSW5kZXggPSBzdGFydEZpZWxkSW5kZXggKyAxOyBmaWVsZEluZGV4IDwg
bV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKKyAgICAgICAgaWYgKCFtX2ZpZWxkc1tm
aWVsZEluZGV4XS0+aXNSZWFkT25seSgpKSB7CisgICAgICAgICAgICBtX2ZpZWxkc1tmaWVsZElu
ZGV4XS0+Zm9jdXMoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
fQorICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpoYW5k
bGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQpCitib29sIERhdGVUaW1lRWRpdEVs
ZW1lbnQ6OmZvY3VzT25QcmV2aW91c0ZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JiBm
aWVsZCkKIHsKLSAgICBpZiAoaXNEaXNhYmxlZCgpIHx8IGlzUmVhZE9ubHkoKSkKLSAgICAgICAg
cmV0dXJuOworICAgIGNvbnN0IHNpemVfdCBzdGFydEZpZWxkSW5kZXggPSBmaWVsZEluZGV4T2Yo
ZmllbGQpOworICAgIGlmIChzdGFydEZpZWxkSW5kZXggPT0gaW52YWxpZEZpZWxkSW5kZXgpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBzaXplX3QgZmllbGRJbmRleCA9IHN0YXJ0RmllbGRJ
bmRleDsKKyAgICB3aGlsZSAoZmllbGRJbmRleCA+IDApIHsKKyAgICAgICAgLS1maWVsZEluZGV4
OworICAgICAgICBpZiAoIW1fZmllbGRzW2ZpZWxkSW5kZXhdLT5pc1JlYWRPbmx5KCkpIHsKKyAg
ICAgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5mb2N1cygpOworICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQogCi0gICAg
aWYgKG1vdXNlRXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgfHwg
bW91c2VFdmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbikKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxl
bWVudDo6Zm9jdXNBbmRTZWxlY3RTcGluQnV0dG9uT3duZXIoKQoreworICAgIGlmIChmb2N1c0Zp
ZWxkSW5kZXgoKSAhPSBpbnZhbGlkRmllbGRJbmRleCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Tm9kZSogY29uc3QgcmVsYXRlZFRhcmdldCA9IG1vdXNlRXZlbnQtPnRhcmdldCgpLT50b05vZGUo
KTsKLSAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRz
LnNpemUoKTsgKytmaWVsZEluZGV4KSB7Ci0gICAgICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4
XSA9PSByZWxhdGVkVGFyZ2V0KSB7Ci0gICAgICAgICAgICBtb3VzZUV2ZW50LT5zZXREZWZhdWx0
SGFuZGxlZCgpOwotICAgICAgICAgICAgZm9jdXNGaWVsZEF0KGZpZWxkSW5kZXgpOwotICAgICAg
ICAgICAgaWYgKG1fZWRpdENvbnRyb2xPd25lcikKLSAgICAgICAgICAgICAgICBtX2VkaXRDb250
cm9sT3duZXItPmVkaXRDb250cm9sTW91c2VGb2N1cygpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICB9CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9IGZp
ZWxkQXQoMCkpCisgICAgICAgIGZpZWxkLT5mb2N1cygpOwogfQogCiBib29sIERhdGVUaW1lRWRp
dEVsZW1lbnQ6OmlzRGlzYWJsZWQoKSBjb25zdApAQCAtMzQ3LDEwICszMzcsOSBAQCBib29sIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OmlzUmVhZE9ubHkoKSBjb25zdAogCiB2b2lkIERhdGVUaW1lRWRp
dEVsZW1lbnQ6OmxheW91dChjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNv
bXBvbmVudHMmIGRhdGVWYWx1ZSkKIHsKLSAgICBzaXplX3QgZm9jdXNGaWVsZEluZGV4ID0gbV9m
b2N1c0ZpZWxkSW5kZXg7Ci0gICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmll
bGQgPSBmaWVsZEF0KG1fZm9jdXNGaWVsZEluZGV4KTsKKyAgICBzaXplX3QgZm9jdXNGaWVsZElu
ZGV4ID0gdGhpcy0+Zm9jdXNGaWVsZEluZGV4KCk7CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQq
IGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KGZvY3VzRmllbGRJbmRleCk7CiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nIGZvY3VzRmllbGRJZCA9IGZvY3VzRmllbGQgPyBmb2N1c0ZpZWxkLT5zaGFk
b3dQc2V1ZG9JZCgpIDogbnVsbEF0b207Ci0gICAgZm9jdXNGaWVsZEF0KGludmFsaWRGaWVsZElu
ZGV4KTsKIAogICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIgYnVpbGRlcigqdGhpcywgc3RlcFJhbmdl
LCBkYXRlVmFsdWUpOwogICAgIGNvbnN0IFN0cmluZyBkYXRlVGltZUZvcm1hdCA9IGJ1aWxkZXIu
bmVlZFNlY29uZEZpZWxkKCkgPyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpIDogbG9jYWxpemVk
U2hvcnRUaW1lRm9ybWF0VGV4dCgpOwpAQCAtMzY4LDMyICszNTcsMTEgQEAgdm9pZCBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpsYXlvdXQoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERh
dGVDb21wb25lbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQotICAgICAgICBmb2N1c0ZpZWxkQXQoc3RkOjptaW4oZm9jdXNGaWVsZEluZGV4LCBtX2Zp
ZWxkcy5zaXplKCkgLSAxKSk7CisgICAgICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogZmll
bGQgPSBmaWVsZEF0KHN0ZDo6bWluKGZvY3VzRmllbGRJbmRleCwgbV9maWVsZHMuc2l6ZSgpIC0g
MSkpKQorICAgICAgICAgICAgZmllbGQtPmZvY3VzKCk7CiAgICAgfQogfQogCi1zaXplX3QgRGF0
ZVRpbWVFZGl0RWxlbWVudDo6bmV4dEZpZWxkSW5kZXgoKSBjb25zdAotewotICAgIEFTU0VSVCht
X2ZvY3VzRmllbGRJbmRleCAhPSBpbnZhbGlkRmllbGRJbmRleCk7Ci0gICAgZm9yIChzaXplX3Qg
ZmllbGRJbmRleCA9IG1fZm9jdXNGaWVsZEluZGV4ICsgMTsgZmllbGRJbmRleCA8IG1fZmllbGRz
LnNpemUoKTsgKytmaWVsZEluZGV4KSB7Ci0gICAgICAgIGlmICghbV9maWVsZHNbZmllbGRJbmRl
eF0tPmlzUmVhZE9ubHkoKSkKLSAgICAgICAgICAgIHJldHVybiBmaWVsZEluZGV4OwotICAgIH0K
LSAgICByZXR1cm4gbV9maWVsZHMuc2l6ZSgpOwotfQotCi1zaXplX3QgRGF0ZVRpbWVFZGl0RWxl
bWVudDo6cHJldmlvdXNGaWVsZEluZGV4KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9mb2N1c0Zp
ZWxkSW5kZXggIT0gaW52YWxpZEZpZWxkSW5kZXgpOwotICAgIHNpemVfdCBmaWVsZEluZGV4ID0g
bV9mb2N1c0ZpZWxkSW5kZXg7Ci0gICAgd2hpbGUgKGZpZWxkSW5kZXggPiAwKSB7Ci0gICAgICAg
IC0tZmllbGRJbmRleDsKLSAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNSZWFk
T25seSgpKQotICAgICAgICAgICAgcmV0dXJuIGZpZWxkSW5kZXg7Ci0gICAgfQotICAgIHJldHVy
biBpbnZhbGlkRmllbGRJbmRleDsKLX0KLQogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpyZWFk
T25seVN0YXRlQ2hhbmdlZCgpCiB7CiAgICAgdXBkYXRlVUlTdGF0ZSgpOwpAQCAtNDAzLDQyICsz
NzEsMjIgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldExheW91dCgpCiB7CiAgICAg
bV9maWVsZHMuc2hyaW5rKDApOwogICAgIG1fc3BpbkJ1dHRvbiA9IDA7Ci0gICAgbV9mb2N1c0Zp
ZWxkSW5kZXggPSBpbnZhbGlkRmllbGRJbmRleDsKICAgICByZW1vdmVDaGlsZHJlbigpOwogfQog
CiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQogewotICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50
KSB7Ci0gICAgICAgIGlmICghaXNEaXNhYmxlZCgpICYmICFpc1JlYWRPbmx5KCkgJiYgbV9mb2N1
c0ZpZWxkSW5kZXggPT0gaW52YWxpZEZpZWxkSW5kZXgpCi0gICAgICAgICAgICBmb2N1c0ZpZWxk
QXQoMCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50KSB7Ci0gICAgICAgIGZvY3VzRmllbGRBdChpbnZhbGlk
RmllbGRJbmRleCk7Ci0gICAgICAgIHJldHVybjsKKyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1l
bnQqIGZpZWxkID0gZm9jdXNGaWVsZCgpKSB7CisgICAgICAgIGZpZWxkLT5kZWZhdWx0RXZlbnRI
YW5kbGVyKGV2ZW50KTsKKyAgICAgICAgaWYgKGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQorICAg
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkp
IHsKLSAgICAgICAgaGFuZGxlTW91c2VFdmVudChzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZl
bnQpKTsKLSAgICB9IGVsc2UgaWYgKGV2ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkKLSAgICAgICAg
aGFuZGxlS2V5Ym9hcmRFdmVudChzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpKTsK
LQotICAgIGlmIChldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1fZm9j
dXNGaWVsZEluZGV4KTsKLSAgICBpZiAoIWZvY3VzRmllbGQpCi0gICAgICAgIHJldHVybjsKLQog
ICAgIGlmIChtX3NwaW5CdXR0b24pIHsKICAgICAgICAgbV9zcGluQnV0dG9uLT5mb3J3YXJkRXZl
bnQoZXZlbnQpOwogICAgICAgICBpZiAoZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgfQotCi0gICAgZm9jdXNGaWVsZC0+ZGVmYXVsdEV2ZW50SGFuZGxl
cihldmVudCk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUo
Y29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQpA
QCAtNDY1LDI2ICs0MTMsMjcgQEAgYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50OjpzaG91bGRTcGlu
QnV0dG9uUmVzcG9uZFRvV2hlZWxFdmVudHMoKQogICAgIGlmICghc2hvdWxkU3BpbkJ1dHRvblJl
c3BvbmRUb01vdXNlRXZlbnRzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVy
biAhbV9lZGl0Q29udHJvbE93bmVyIHx8IG1fZWRpdENvbnRyb2xPd25lci0+aXNFZGl0Q29udHJv
bE93bmVyRm9jdXNlZCgpOworICAgIHJldHVybiBmb2N1c0ZpZWxkSW5kZXgoKSAhPSBpbnZhbGlk
RmllbGRJbmRleDsKIH0KIAogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzcGluQnV0dG9uU3Rl
cERvd24oKQogewotICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZm9jdXNGaWVs
ZCA9IGZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpKQotICAgICAgICBmb2N1c0ZpZWxkLT5zdGVw
RG93bigpOworICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZmllbGQgPSBmb2N1
c0ZpZWxkKCkpCisgICAgICAgIGZpZWxkLT5zdGVwRG93bigpOwogfQogCiB2b2lkIERhdGVUaW1l
RWRpdEVsZW1lbnQ6OnNwaW5CdXR0b25TdGVwVXAoKQogewotICAgIGlmIChEYXRlVGltZUZpZWxk
RWxlbWVudCogY29uc3QgZm9jdXNGaWVsZCA9IGZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpKQot
ICAgICAgICBmb2N1c0ZpZWxkLT5zdGVwVXAoKTsKKyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1l
bnQqIGNvbnN0IGZpZWxkID0gZm9jdXNGaWVsZCgpKQorICAgICAgICBmaWVsZC0+c3RlcFVwKCk7
CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6dXBkYXRlVUlTdGF0ZSgpCiB7CiAgICAg
aWYgKGlzRGlzYWJsZWQoKSB8fCBpc1JlYWRPbmx5KCkpIHsKICAgICAgICAgbV9zcGluQnV0dG9u
LT5yZWxlYXNlQ2FwdHVyZSgpOwotICAgICAgICBmb2N1c0ZpZWxkQXQoaW52YWxpZEZpZWxkSW5k
ZXgpOworICAgICAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkID0gZm9jdXNGaWVs
ZCgpKQorICAgICAgICAgICAgZmllbGQtPmJsdXIoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAppbmRleCA4ZDllMDE1
YTI2Zjc1MDU4MWUyMjlmNjllMTM5Mjk3YmY2ZjYwMzUzLi44MTM3YzcyZTI1MTE3OWY4YWQ2MmVl
MjY4ZWNkMzc5OTA3YjE3ZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZUVkaXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVFZGl0RWxlbWVudC5oCkBAIC01MSwxMSArNTEsMTAgQEAgcHVibGljOgogICAgIGNs
YXNzIEVkaXRDb250cm9sT3duZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+RWRp
dENvbnRyb2xPd25lcigpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNBbmRTZWxlY3RFZGl0
Q29udHJvbE93bmVyKCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xNb3Vz
ZUZvY3VzKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmllbGRCbHVyKCkgPSAwOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmllbGRGb2N1cygpID0gMDsKICAgICAgICAgdmlydHVh
bCB2b2lkIGVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNFZGl0Q29udHJvbE93bmVyRGlzYWJsZWQoKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCkgY29uc3QgPSAwOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25zdCA9IDA7CiAgICAg
fTsKIApAQCAtNjMsOCArNjIsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+RGF0ZVRpbWVF
ZGl0RWxlbWVudCgpOwogICAgIHZvaWQgYWRkRmllbGQoUGFzc1JlZlB0cjxEYXRlVGltZUZpZWxk
RWxlbWVudD4pOworICAgIHZvaWQgYmx1ckJ5T3duZXIoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURFOwogICAgIHZvaWQgZGlzYWJsZWRTdGF0
ZUNoYW5nZWQoKTsKKyAgICB2b2lkIGZvY3VzQnlPd25lcihib29sKTsKICAgICB2b2lkIHJlYWRP
bmx5U3RhdGVDaGFuZ2VkKCk7CiAgICAgdm9pZCByZW1vdmVFZGl0Q29udHJvbE93bmVyKCkgeyBt
X2VkaXRDb250cm9sT3duZXIgPSAwOyB9CiAgICAgdm9pZCByZXNldExheW91dCgpOwpAQCAtODks
MTkgKzkwLDIwIEBAIHByaXZhdGU6CiAgICAgRGF0ZVRpbWVFZGl0RWxlbWVudChEb2N1bWVudCos
IEVkaXRDb250cm9sT3duZXImKTsKIAogICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZEF0
KHNpemVfdCkgY29uc3Q7Ci0gICAgdm9pZCBmb2N1c0ZpZWxkQXQoc2l6ZV90KTsKLSAgICB2b2lk
IGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCopOwotICAgIHZvaWQgaGFuZGxlTW91
c2VFdmVudChNb3VzZUV2ZW50Kik7CisgICAgc2l6ZV90IGZpZWxkSW5kZXhPZihjb25zdCBEYXRl
VGltZUZpZWxkRWxlbWVudCYpIGNvbnN0OworICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBmb2N1
c0ZpZWxkKCkgY29uc3Q7CisgICAgc2l6ZV90IGZvY3VzRmllbGRJbmRleCgpIGNvbnN0OwogICAg
IGJvb2wgaXNEaXNhYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0Owog
ICAgIHZvaWQgbGF5b3V0KGNvbnN0IFN0ZXBSYW5nZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7
Ci0gICAgc2l6ZV90IG5leHRGaWVsZEluZGV4KCkgY29uc3Q7Ci0gICAgc2l6ZV90IHByZXZpb3Vz
RmllbGRJbmRleCgpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlVUlTdGF0ZSgpOwogCiAgICAgLy8g
RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkZpZWxkT3duZXIgZnVuY3Rpb25zLgorICAgIHZpcnR1YWwg
dm9pZCBkaWRGaWVsZEJsdXIoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmllbGRGb2N1cygpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBmaWVsZFZhbHVl
Q2hhbmdlZCgpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBmb2N1c09uTmV4dEZp
ZWxkKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIGZvY3VzT25OZXh0RmllbGQo
Y29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFs
IGJvb2wgZm9jdXNPblByZXZpb3VzRmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSBP
VkVSUklERSBGSU5BTDsKIAogICAgIC8vIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9uT3du
ZXIgZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25P
d25lcigpIE9WRVJSSURFIEZJTkFMOwpAQCAtMTEzLDcgKzExNSw2IEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPERhdGVUaW1lRmllbGRFbGVtZW50KiwgbWF4aW11bU51bWJlck9mRmllbGRzPiBtX2Zp
ZWxkczsKICAgICBFZGl0Q29udHJvbE93bmVyKiBtX2VkaXRDb250cm9sT3duZXI7CiAgICAgU3Bp
bkJ1dHRvbkVsZW1lbnQqIG1fc3BpbkJ1dHRvbjsKLSAgICBzaXplX3QgbV9mb2N1c0ZpZWxkSW5k
ZXg7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAKaW5kZXggOWQ1NmQ5YmY4N2Ux
NDRiOGJkNWU1NjIwYzA4NzRjMzVkZTE2YjE0OC4uOTAyZTE4ZDExY2ZkZmZhMjZhYjU4ZjgzYzc3
NjZmNWUyNDc5YWM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lRmllbGRFbGVtZW50LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRhdGVD
b21wb25lbnRzLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRF
dmVudC5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNiArNDksMTIgQEAgRGF0ZVRpbWVGaWVsZEVsZW1l
bnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYg
ZmllbGQKIAogdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCogZXZlbnQpCiB7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJs
dXJFdmVudCkKKyAgICAgICAgZGlkQmx1cigpOworCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmZvY3VzRXZlbnQpCisgICAgICAgIGRpZEZvY3VzKCk7CisKICAgICBpZiAo
ZXZlbnQtPmlzS2V5Ym9hcmRFdmVudCgpKSB7CiAgICAgICAgIEtleWJvYXJkRXZlbnQqIGtleWJv
YXJkRXZlbnQgPSBzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpOwogICAgICAgICBo
YW5kbGVLZXlib2FyZEV2ZW50KGtleWJvYXJkRXZlbnQpOwpAQCAtNzQsNiArODEsMjIgQEAgdm9p
ZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJv
YXJkRXZlbnQqIGtleWJvYXJkRXYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChr
ZXlJZGVudGlmaWVyID09ICJMZWZ0IikgeworICAgICAgICBpZiAobV9maWVsZE93bmVyKSB7Cisg
ICAgICAgICAgICBpZiAobV9maWVsZE93bmVyLT5mb2N1c09uUHJldmlvdXNGaWVsZCgqdGhpcykp
CisgICAgICAgICAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGtleUlkZW50aWZpZXIg
PT0gIlJpZ2h0IikgeworICAgICAgICBpZiAobV9maWVsZE93bmVyKSB7CisgICAgICAgICAgICBp
ZiAobV9maWVsZE93bmVyLT5mb2N1c09uTmV4dEZpZWxkKCp0aGlzKSkKKyAgICAgICAgICAgICAg
ICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICB9CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiVXAiKSB7CiAgICAg
ICAgIGtleWJvYXJkRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgIHN0ZXBVcCgp
OwpAQCAtODcsMTAgKzExMCwyMyBAQCB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50OjpkZWZhdWx0
S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdgogICAgIH0KIH0K
IAotdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCgpCit2b2lkIERh
dGVUaW1lRmllbGRFbGVtZW50OjpkaWRCbHVyKCkKK3sKKyAgICBpZiAobV9maWVsZE93bmVyKQor
ICAgICAgICBtX2ZpZWxkT3duZXItPmRpZEZpZWxkQmx1cigpOworfQorCit2b2lkIERhdGVUaW1l
RmllbGRFbGVtZW50OjpkaWRGb2N1cygpCiB7CiAgICAgaWYgKG1fZmllbGRPd25lcikKLSAgICAg
ICAgbV9maWVsZE93bmVyLT5mb2N1c09uTmV4dEZpZWxkKCk7CisgICAgICAgIG1fZmllbGRPd25l
ci0+ZGlkRmllbGRGb2N1cygpOworfQorCit2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojpmb2N1
c09uTmV4dEZpZWxkKCkKK3sKKyAgICBpZiAoIW1fZmllbGRPd25lcikKKyAgICAgICAgcmV0dXJu
OworICAgIG1fZmllbGRPd25lci0+Zm9jdXNPbk5leHRGaWVsZCgqdGhpcyk7CiB9CiAKIHZvaWQg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbWljU3RyaW5nJiBzaGFk
b3dQc2V1ZG9JZCkKQEAgLTk5LDYgKzEzNSwxMSBAQCB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50
Ojppbml0aWFsaXplKGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQpCiAgICAgYXBw
ZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIHZpc2libGVWYWx1ZSgpKSk7CiB9CiAK
K2Jvb2wgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gIWlzUmVhZE9ubHkoKTsKK30KKwogYm9vbCBEYXRlVGltZUZpZWxkRWxlbWVudDo6aXNS
ZWFkT25seSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhc3RIYXNBdHRyaWJ1dGUocmVhZG9ubHlB
dHRyKTsKQEAgLTExMSw2ICsxNTIsMTEgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6c2V0
UmVhZE9ubHkoKQogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAorYm9vbCBEYXRlVGlt
ZUZpZWxkRWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVwZGF0ZVZpc2libGVWYWx1ZShFdmVu
dEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgVGV4dCogY29uc3QgdGV4dE5vZGUgPSB0
b1RleHQoZmlyc3RDaGlsZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudC5oCmluZGV4IGNkMzllMjhhMzk0NDljYTRiOGM0NTMwZDZiOWU2
NDY2N2RjNGZjNDUuLmVlYTBhYmM0OWZmOGFhODgwYjNmNGIwNjA5YjY1N2Y4NzdjZTVlYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQu
aApAQCAtNTAsNyArNTAsMTAgQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVh
bCB+RmllbGRPd25lcigpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZmllbGRWYWx1ZUNoYW5nZWQo
KSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1c09uTmV4dEZpZWxkKCkgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmllbGRCbHVyKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkRmllbGRGb2N1cygpID0gMDsKKyAgICAgICAgdmlydHVhbCBib29sIGZvY3VzT25OZXh0
RmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSA9IDA7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBmb2N1c09uUHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYpID0g
MDsKICAgICB9OwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
KSBPVkVSUklERTsKQEAgLTcwLDYgKzczLDggQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJik7CisgICAgdmlydHVh
bCB2b2lkIGRpZEJsdXIoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXMoKTsKICAgICB2b2lk
IGZvY3VzT25OZXh0RmllbGQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVu
dChLZXlib2FyZEV2ZW50KikgPSAwOwogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBBdG9taWNT
dHJpbmcmKTsKQEAgLTc4LDYgKzgzLDggQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIHZv
aWQgZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNGb2N1c2FibGUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogCiAgICAgRmllbGRP
d25lciogbV9maWVsZE93bmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCmluZGV4IGE0MDUzYjU3
NzVmNGI1YzQwMTE0NTRiODc0MjUxZWUxMTVkZmRmMGEuLmJhOWY1Mjc2OTk0ZTMwOTA2MzNkZmE2
NmI5NmFmN2IxMGJhYjc3MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcApAQCAtNzIsNiArNzIsMTgg
QEAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWUKIHsKIH0KIAordm9pZCBEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQ6OmRpZEJsdXIoKQoreworICAgIG1fbGFzdERpZ2l0Q2hhclRpbWUgPSAwOwor
ICAgIERhdGVUaW1lRmllbGRFbGVtZW50OjpkaWRCbHVyKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50OjpkaWRGb2N1cygpCit7CisgICAgbV9sYXN0RGlnaXRDaGFyVGlt
ZSA9IDA7CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRpZEZvY3VzKCk7Cit9CisKIHZvaWQg
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJk
RXZlbnQqIGtleWJvYXJkRXZlbnQpCiB7CiAgICAgaWYgKGlzUmVhZE9ubHkoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50LmgKaW5kZXggMzcxOWJjMTMwZTMxYjM3NDZiMzM5Zjc5Y2QzMjBkNzViNDNlMWZiNi4uZDQx
YTFjM2FhN2VjOTE5MjgyNmVjMzVjOGFlZTc4NjNkNWZiM2Y1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmgK
QEAgLTYzLDYgKzYzLDggQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIC8vIERhdGVUaW1l
RmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmx1cigpIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBkaWRGb2N1cygpIE9WRVJSSURFIEZJTkFMOwog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RW1wdHlWYWx1ZShjb25zdCBEYXRlQ29t
cG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQsIEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFIEZJ
TkFMOwogICAgIHZpcnR1YWwgdm9pZCBzdGVwRG93bigpIE9WRVJSSURFIEZJTkFMOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDU4OTMxYmRkM2RmYjNkZmI1N2UzY2M2MDRiZjI0MzQxN2U2ZTVmNDMuLjIxZDA5NWQ1MDNlMTli
NmFhMjYyNzg5M2EzYWFjOTZjZDRjYzQ0OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0w
OC0zMCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtG
b3Jtc10gU2hpZnQrVGFiIHNob3VsZCBmb2N1cyB0aGUgbGFzdCBmaWVsZCBvZiBtdWx0aXBsZSBm
aWVsZHMgdGltZSBpbnB1dCBVSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTUxNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgZm9jdXMgYW5kIGJsdXIgZXZlbnQgaGFuZGxpbmcg
dGVzdCBhbmQgYSBuZXcgdGVzdCBjYXNlCisgICAgICAgIGZvciBTaGlmdCtUYWIgZm9yIG11bHRp
cGxlIGZpZWxkcyB0aW1lIGlucHV0IFVJLgorCisgICAgICAgICogdGltZS1tdWx0aXBsZS1maWVs
ZHMtYmx1ci1hbmQtZm9jdXMtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
dGltZS1tdWx0aXBsZS1maWVsZHMtYmx1ci1hbmQtZm9jdXMtZXZlbnRzLmh0bWw6IEFkZGVkIGZv
ciBibHVyIGFuZCBmb2N1cyBldmVudHMgaGFuZGxpbmcuCisgICAgICAgICogZmFzdC9mb3Jtcy90
aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMu
aHRtbDogQ2hhbmdlZCB0byBhZGQgYSB0ZXN0IGNhc2VzIGZvciBTaGlmdCtUYWIuCisKIDIwMTIt
MDgtMjkgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
VGVzdHNdIEFkZCB0ZXN0IGNhc2UgZm9yIHJpZ2h0LXRvLWxlZnQgcmVuZGVyaW5nIG9mIG11bHRp
cGxlIGZpZWxkcyB0aW1lIGlucHV0IFVJCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZv
Y3VzLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVs
dGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJjYTc3YmQ1N2ZiZTI3ZmNhYmM2NDc4ZmNhODdmZGRk
OGI1YjJjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1t
dWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtYmx1ci1hbmQtZm9jdXMtZXZlbnRz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitDaGVjayBibHVyIGFuZCBmb2N1cyBldmVu
dHMgZm9yIG11bHRpcGxlIGZpZWxkcyB0aW1lIGlucHV0IFVJCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHRlc3RJbnB1dC5mb2N1cygpOyBzdGF0ZSBpcyAiZm9jdXMiCitQ
QVNTIHRlc3RJbnB1dC5ibHVyKCk7IHN0YXRlIGlzICJibHVyIgorCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1i
bHVyLWFuZC1mb2N1cy1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1t
dWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtYmx1ci1hbmQtZm9jdXMtZXZlbnRz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGM3OTFmYmIzN2MyM2U5OGM3MmI2OWQwYzM0NmYzNjczNzUxMjAw
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBs
ZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtYmx1ci1hbmQtZm9jdXMtZXZlbnRzLmh0bWwK
QEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignQ2hlY2sgYmx1ciBhbmQgZm9jdXMg
ZXZlbnRzIGZvciBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSScpOwordmFyIHRlc3RJbnB1
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Cit0ZXN0SW5wdXQuc2V0QXR0cmli
dXRlKCJ0eXBlIiwgInRpbWUiKTsKK3ZhciBzdGF0ZSA9ICIiOwordGVzdElucHV0LmFkZEV2ZW50
TGlzdGVuZXIoImJsdXIiLCBmdW5jdGlvbiAoKSB7IHN0YXRlID0gJ2JsdXInOyB9KTsKK3Rlc3RJ
bnB1dC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIGZ1bmN0aW9uICgpIHsgc3RhdGUgPSAnZm9j
dXMnOyB9KTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdElucHV0KTsKKworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0ZXN0SW5wdXQuZm9jdXMoKTsgc3RhdGUnLCAnZm9jdXMnKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygndGVzdElucHV0LmJsdXIoKTsgc3RhdGUnLCAnYmx1cicpOwor
CitkZWJ1ZygnJyk7Cit0ZXN0SW5wdXQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0ZXN0SW5w
dXQpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRz
LWtleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Rp
bWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy1l
eHBlY3RlZC50eHQKaW5kZXggNjE4YTY5NjgyY2U2MjFkMTNmMWZiZmI1NWZiMDNhM2MwMmJhZTAz
Ni4uOThkMjM2OTlmOWFkZDUzOWI5MjU1MTAxYjkwMmExM2VhMDhjYTk4MyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxl
LWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9h
cmQtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMTEsNyArMTEsNyBAQCBMZWZ0L1JpZ2h0IC0gTW92
ZSBmb2N1cyBmaWVsZCBpbnNpZGUgZWxlbWVudAogVXAvRG93biAtIEluY3JlbWVudC9kZWNyZW1l
bnQgdmFsdWUgb2YgZm9jdXMgZmllbGQKIFRhYiAtIE1vdmUgZm9jdXMgZmllbGQKIEJhY2tzcGFj
ZSAtIE1ha2UgdmFsdWUgZW1wdHkKLSAKKyAgCiA9PSBEaWdpdCBrZXlzID09CiBQQVNTIGlucHV0
LnZhbHVlIGlzICIwNzo1NiIKID09IExlZnQvUmlnaHQga2V5cyA9PQpAQCAtMjYsNiArMjYsMTAg
QEAgUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTQ6NTgiCiBQQVNTIGlucHV0LnZhbHVlIGlzICIwMzow
NSIKIFBBU1MgaW5wdXQudmFsdWUgaXMgIjA3OjA1IgogUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmlkIGlzICJhbm90aGVyIgorPT0gU2hmaXQrVGFiIGtleSA9PQorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMTU6MDAiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxNTowMyIKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5pZCBpcyAiYmVmb3JlIgogPT0gQmFja3NwYWNlIGtleSA9PQogUEFTUyBp
bnB1dC52YWx1ZSBpcyAiIgogPT0gRGVsZXRlIGtleSA9PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1r
ZXlib2FyZC1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBs
ZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKaW5kZXgg
N2YzNTIxMmM4MzIzZGNlYmNjYWYzNDk0Mzg0NThiOGNjMDczNGFiNy4uMWQ1OGExMDViZDhkYzNj
YTgwM2E5ODM5MmQ2NjVjZmFmYzM5OTc4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1l
dmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmll
bGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sCkBAIC0xNiw2ICsx
Niw3IEBAIFRlc3QgZm9sbG93aW5nIGtleXM6CiAgICAgPGxpPlRhYiAtIE1vdmUgZm9jdXMgZmll
bGQ8L2xpPgogICAgIDxsaT5CYWNrc3BhY2UgLSBNYWtlIHZhbHVlIGVtcHR5PC9saT4KIDwvdWw+
Cis8aW5wdXQgaWQ9ImJlZm9yZSI+CiA8aW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJ0aW1lIj4KIDxp
bnB1dCBpZD0iYW5vdGhlciI+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KQEAgLTk3LDYgKzk4
LDE4IEBAIGtleURvd24oJ1x0Jyk7CiBrZXlEb3duKCdcdCcpOwogc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkJywgJ2Fub3RoZXInKTsKIAorYmVnaW5UZXN0
KCdTaGZpdCtUYWIga2V5JywgJzAzOjAwJyk7Cithbm90aGVyLmZvY3VzKCk7CitrZXlEb3duKCdc
dCcsIFsnc2hpZnRLZXknXSk7CitrZXlEb3duKCdQJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2lucHV0LnZhbHVlJywgJzE1OjAwJyk7CitrZXlEb3duKCdcdCcsIFsnc2hpZnRLZXknXSk7Citr
ZXlEb3duKCczJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzE1OjAz
Jyk7CitrZXlEb3duKCdcdCcsIFsnc2hpZnRLZXknXSk7CitrZXlEb3duKCdcdCcsIFsnc2hpZnRL
ZXknXSk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQn
LCAnYmVmb3JlJyk7CisKIGJlZ2luVGVzdCgnQmFja3NwYWNlIGtleScsICcxMjozNCcpOwoga2V5
RG93bigiXGIiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161438</attachid>
            <date>2012-08-30 03:57:33 -0700</date>
            <delta_ts>2012-08-30 04:06:37 -0700</delta_ts>
            <desc>Patch 4</desc>
            <filename>bug-95168-20120830195721.patch</filename>
            <type>text/plain</type>
            <size>38806</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyODk0YzY4YzhmZDM2
M2ZkYTAyNTQzZjljNmMzOWUxZjQ1ODhkNC4uMDBmZjA4MzhhNDgxMzc1MzlkMTkyMDYwODI0ZmE3
MThkMDI1YzQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEyLTA4LTI5ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBTaGlm
dCtUYWIgc2hvdWxkIGZvY3VzIHRoZSBsYXN0IGZpZWxkIG9mIG11bHRpcGxlIGZpZWxkcyB0aW1l
IGlucHV0IFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NTE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggY2hhbmdlcyBmb2N1cyBoYW5kbGluZyBpbiBEYXRlVGltZUVkaXRFbGVtZW50
IGNsYXNzIGZvcgorICAgICAgICBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAg
ICAgICBDdXJyZW50IGltcGxlbWVudGF0aW9uIGNvbnRyb2xzIGZvY3VzIGluIGZpZWxkcyBieSBE
YXRlVGltZUVkaXRFbGVtZW50CisgICAgICAgIGFuZCBhIGZvY3VzIGZpZWxkIGlzIHRyYWNrZWQg
bV9mb2N1c0ZpZWxkSW5kZXggbWVtYmVyIHZhcmlhYmxlLiBJbgorICAgICAgICBjdXJyZW50IGlt
cGxlbWVudGF0aW9uLCBpdCBpcyBoYXJkIHRvIHNldCBmb2N1cyB0byB0aGUgbGFzdCBmaWVsZCB3
aGVuCisgICAgICAgIGl0IGdldHMgZm9jdXMgYnkgU2hpZnQrVGFiLCBiZWNhdXNlIHdlIGRvbid0
IGtub3cgaG93IERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgZ2V0cyBmb2N1cy4KKworICAg
ICAgICBJbiB0aGlzIG5ldyBpbXBsZW1lbnRhdGlvbiwgRGF0ZVRpbWVFZGl0RWxlbWVudCBkb2Vz
bid0IGNvbnRyb2wgZm9jdXMKKyAgICAgICAgcmF0aGVyIEZvY3VzQ29udHJvbGxlciBjbGFzcyBj
b250cm9scyBmb2N1czoKKyAgICAgICAgIC0gV2Ugc2V0IGZvY3VzIHRvIERhdGVUaW1lRmllbGRF
bGVtZW50IGluc3RlYWQgb2YgSFRNTElucHV0RWxlbWVudAorICAgICAgICAgICB3aGljaCBpcyBz
aGFkb3cgaG9zdCBvZiBEYXRlVGltZUVkaXRFbGVtZW50IGZvciBjb250cm9sbGluZyBmb2N1cwor
ICAgICAgICAgICBieSBGb2N1c0NvbnRyb2xsZXIuCisgICAgICAgICAtIEZvY3VzL2JsdXIgZXZl
bnRzIGluIERhdGVUaW1lRmllbGRFbGVtZW50IGFyZSByb3V0ZWQgdG8gSFRNTElucHV0RWxlbWVu
dAorICAgICAgICAgICBieSBzaGFkb3cgRE9NIG1lY2hhbmlzbS4KKyAgICAgICAgIC0gVGltZUlu
cHV0VHlwZSBjbGFzcyBvdmVycmlkZXMgSFRNTElOcHV0RWxlbWVudDo6Ymx1cigpIGFuZCBmb2N1
cygpCisgICAgICAgICAgIGZ1bmN0aW9ucyBmb3IgZGVsZWdhdGluZyBibHVyL2ZvY3VzIGJlaGF2
aW9yIHRvIERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgICAgYnkgY2FsbGluZyBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpibHVyQnlPd25lcigpL2ZvY3VzQnlPd25lcigpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggYWZmZWN0cyBvbmx5IHBvcnRzIHdoaWNoIGVuYWJsZSBib3RoIEVOQUJMRV9JTlBV
VF9UWVBFX1RJTUUKKyAgICAgICAgYW5kIEVOQUJMRV9JTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRz
L3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCisgICAgICAg
IFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgbmV3IHRlc3QgY2FzZSBmb3IgU2hpZnQrVGFiIGludG8g
ZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEJsdXIpOiBBZGRlZCBmb3IgdGhlIGlucHV0IGVsZW1lbnQgbm90IHRvIGJl
IG1hdGNoZWQgImZvY3VzIiBwc2V1ZG8gY2xhc3MgZm9yIHJlbW92aW5nIGZvY3VzIHJpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEZvY3VzKTogIEFkZGVkIGZvciB0aGUgaW5wdXQgZWxlbWVudCB0byBiZSBt
YXRjaGVkICJmb2N1cyIgcHNldWRvIGNsYXNzIGZvciBhZGRpbmcgZm9jdXMgcmluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZvY3VzTG9naWMpOiBBZGRlZCBm
b3IgYXNraW5nIEZvY3VzQ29udHJvbGxlciB0byB3YWxrIGludG8gc2hhZG93IERPTSB0cmVlIG9u
IGlucHV0IHR5cGUgInRpbWUiLgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6Ymx1
cik6IEFkZGVkIGZvciBkZWxlZ2F0aW5nIGJsdXIoKSBhY3Rpb24gdG8gRGF0ZVRpbWVFZGl0RWxl
bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmZvY3VzKTogQWRkZWQgZm9y
IGRlbGVnYXRpbmcgZm9jdXMoKSBhY3Rpb24gdG8gRGF0ZVRpbWVFZGl0RWxlbWVudC4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBDaGFuZ2Vk
IGZvciAiaW5wdXQiIGVsZW1lbnQgbm90IHRvIGhhdmUgZm9jdXMuCisgICAgICAgIChXZWJDb3Jl
OjpUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKTogIENoYW5nZWQgZm9yICJpbnB1dCIg
ZWxlbWVudCBub3QgdG8gaGF2ZSBmb2N1cy4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUu
aDoKKyAgICAgICAgKERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwpOiBDaGFuZ2VkIGZvciBu
ZXcgZGVmaW5pdGlvbiBvZiBEYXRlVGltZUVkaXRDb250cm9sT3duZXIuCisgICAgICAgIChUaW1l
SW5wdXRUeXBlKTogQ2hhbmdlZCBmb3IgbmV3IGRlZmluaXRpb24gb2YgRGF0ZVRpbWVFZGl0RWxl
bWVudC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OkRhdGVUaW1lRWRpdEVsZW1lbnQp
OiBSZW1vdmVkIGRyb3BwZWQgbWVtYmVyIHZhcmlhYmxlIG1fZm9jdXNGaWVsZEluZGV4LgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6Ymx1ckJ5T3duZXIpOiBBZGRlZCBm
b3IgYmx1cigpIGFjdGlvbiBhc2VrZCBieSBvd25lci4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OmRpZEZpZWxkQmx1cik6IEFkZGVkIGZvciBjYWxsaW5nIERhdGVUaW1l
RWRpdENvbnRyb2xPd25lcjo6ZGlkRmllbGRCbHVyKCkuCisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpkaWRGaWVsZEZvY3VzKTogQWRkZWQgZm9yIGNhbGxpbmcgRGF0ZVRp
bWVFZGl0Q29udHJvbE93bmVyOjpkaWRGaWVsZEZvY3VzKCkuCisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZEluZGV4T2YpOiBBZGRlZCBmb3IgbWFwcGluZyBEYXRl
VGltZUZpZWxkRWxlbWVudCB0byBmaWVsZCBpbmRleC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OmZvY3VzQnlPd25lcik6IEFkZGVkIGZvciBmb2N1cygpIGFjdGlvbiBh
c2VrZCBieSBvd25lci4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZv
Y3VzRmllbGRJbmRleCk6IEFkZGVkIGFzIGhlbHBlciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzRmllbGQpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQpOiBDaGFuZ2VkIHRv
IHBhc3MgYSBmaWVsZCB0byBmb2N1c09uTmV4dCgpLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVFZGl0RWxlbWVudDo6Zm9jdXNPblByZXZpb3VzRmllbGQpOiBkaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzQW5kU2VsZWN0U3BpbkJ1dHRvbk93bmVy
KTogQ2hhbmdlZCBmb3Igc2V0dGluZyBmb2N1cyB0byB0aGUgZmlyc3QgZmllbGQuCisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQpOiBDaGFuZ2VkIHRvIHVzZSBm
b2N1c0ZpZWxkSW5kZXgoKSBhbmQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmZvY3VzKCkuCisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldExheW91dCk6IENoYW5nZWQg
dG8gcmVtb3ZlIG1fZm9jdXNGaWVsZEluZGV4IHZhcmlhYmxlIHJlZmVyZW5jZS4KKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBDaGFu
Z2VkIHRvIHJlbW92ZSBmb2N1cyBuYXZpZ2F0aW9uIHJlbGF0ZWQgZXZlbnRzLCBibHVlL2ZvY3Vz
L21vdXNlLCBoYW5kbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6
OnNob3VsZFNwaW5CdXR0b25SZXNwb25kVG9XaGVlbEV2ZW50cyk6IENoYW5nZWQgdG8gY2hlY2sg
Zm9jdXMgZmllbGQgaW5zdGVhZCBvZiBhc2tpbmcgb3duZXIuCisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcERvd24pOiBDaGFuZ2VkIHRvIHVzZSBm
b2N1c0ZpZWxkKCkgaW5zdGVhZCBvZiBtX2ZvY3VzRmllbGRJbmRleC4KKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnNwaW5CdXR0b25TdGVwVXApOiBkaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnVwZGF0ZVVJU3RhdGUpOiBkaXR0by4K
KyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50Lmg6CisgICAgICAgIChF
ZGl0Q29udHJvbE93bmVyKTogQWRkZWQgZGlkRmllbGRCbHVyKCkgYW5kIGRpZEZpZWxkRm9jdXMo
KSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCisgICAgICAgIChEYXRlVGltZUVkaXRFbGVtZW50KToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6IENo
YW5nZWQgdG8gaGFuZGxlIGJsdXIgYW5kIGZvY3VzIGV2ZW50cy4KKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lRmllbGRFbGVtZW50OjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIpOiBDaGFu
Z2VkIHRvIGhhbmRsZSBMZWZ0L1JpZ2h0IGtleXMuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUZpZWxkRWxlbWVudDo6ZGlkQmx1cik6IEFkZGVkIHRvIGNhbGwgRmllbGRPd25lcjo6ZGlkQmx1
cigpIHRvIHJlbW92ZSBmb2N1cyByaW5nIGZyb20gb3duZXIgZWxlbWVudC4KKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpkaWRGb2N1cyk6IEFkZGVkIHRvIGNhbGwgRmll
bGRPd25lcjo6ZGlkRm9jdXMoKSAgdG8gYWRkIGZvY3VzIHJpbmcgdG8gb3duZXIgZWxlbWVudC4K
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxk
KTogQWRkZWQgZm9yIG1vdmluZyBmb2N1cyB0byBuZXh0IGZpZWxkIGZvciBEYXRlVGltZU51bWJl
cmljRmllbGRFbG1lbnQKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojpp
c0ZvY3VzYWJsZSk6IEFkZGVkIHRvIG1ha2UgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZm9jdXNhYmxl
LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMp
OiAgQWRkZWQgdG8gbWFrZSBEYXRlVGltZUZpZWxkRWxlbWVudCBmb2N1c2FibGUuCisgICAgICAg
ICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaDoKKyAgICAgICAgKEZpZWxkT3du
ZXIpOiBBZGRlZCBkZWNsYXJhdGlvbnMgZm9yIGZvY3VzYWJsZSBoYW5kbGluZy4KKyAgICAgICAg
KERhdGVUaW1lRmllbGRFbGVtZW50KTogZGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6ZGlkQmx1cik6IEFkZGVkIGZvciByZXNldHRpbmcgdHlwZS1h
aGVhZCB0aW1lci4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dDo6ZGlkRm9jdXMpOiBBZGRlZCBmb3IgcmVzZXR0aW5nIHR5cGUtYWhlYWQgdGltZXIuCisgICAg
ICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Lmg6CisgICAgICAg
IChEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOiBBZGRlZCBkaWRCbHVyKCkgYW5kIGRpZEZv
Y3VzKCkgZGVjbGFyYXRpb25zLgorCiAyMDEyLTA4LTI5ICBBYXJvbiBDb2x3ZWxsICA8YWNvbHdl
bGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBXZWJLaXQgcHJlZml4IHRvIE1lZGlhU291
cmNlLCBTb3VyY2VCdWZmZXIsICYgU291cmNlQnVmZmVyTGlzdCBET01XaW5kb3cgY29uc3RydWN0
b3IgYXR0cmlidXRlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDU4
NjEwMzIzMTE1Y2EzMTI0ZTUwY2Q4ODdlZDcxMmIzYTZjNTlkYjkuLmY5Njk4YjhhN2I1MTY3ODkz
OTYxYjU5N2QwNTU0ZTI0YTJmNzYyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBl
LmNwcApAQCAtMTI0LDkgKzEyNCwyMiBAQCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250
cm9sT3duZXJJbXBsOjp+RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCgpCiB7CiB9CiAKLXZv
aWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6ZWRpdENvbnRy
b2xNb3VzZUZvY3VzKCkKK3ZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93
bmVySW1wbDo6ZGlkQmx1ckZyb21Db250cm9sKCkKIHsKLSAgICBtX3RpbWVJbnB1dFR5cGUuZWxl
bWVudCgpLT5mb2N1cygpOworICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gY2FsbCBibHVyKCkuIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gY29udHJvbAorICAgIC8vIGxvc3QgZm9jdXMuCisK
KyAgICAvLyBSZW1vdmUgZm9jdXMgcmluZyBieSBDU1MgImZvY3VzIiBwc2V1ZG8gY2xhc3MuCisg
ICAgbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+c2V0Rm9jdXMoZmFsc2UpOworfQorCit2b2lk
IFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmRpZEZvY3VzRnJv
bUNvbnRyb2woKQoreworICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gY2FsbCBmb2N1cygpLiBUaGlz
IGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGNvbnRyb2wKKyAgICAvLyBnb3QgZm9jdXMuCisKKyAg
ICAvLyBBZGQgZm9jdXMgcmluZyBieSBDU1MgImZvY3VzIiBwc2V1ZG8gY2xhc3MuCisgICAgbV90
aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+c2V0Rm9jdXModHJ1ZSk7CiB9CiAKIHZvaWQgVGltZUlu
cHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6ZWRpdENvbnRyb2xWYWx1ZUNo
YW5nZWQoKQpAQCAtMTM4LDExICsxNTEsOSBAQCB2b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1l
RWRpdENvbnRyb2xPd25lckltcGw6OmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCkKICAgICBpbnB1
dC0+ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CiB9CiAKLXZvaWQgVGltZUlucHV0
VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6Zm9jdXNBbmRTZWxlY3RFZGl0Q29u
dHJvbE93bmVyKCkKK2Jvb2wgVGltZUlucHV0VHlwZTo6aGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNv
bnN0CiB7Ci0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KG1fdGltZUlucHV0VHlw
ZS5lbGVtZW50KCkpOwotICAgIGlucHV0LT5mb2N1cygpOwotICAgIGlucHV0LT5zZWxlY3QoKTsK
KyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0
Q29udHJvbE93bmVySW1wbDo6aXNFZGl0Q29udHJvbE93bmVyRGlzYWJsZWQoKSBjb25zdApAQCAt
MTUwLDExICsxNjEsNiBAQCBib29sIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xP
d25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lckRpc2FibGVkKCkgYwogICAgIHJldHVybiBtX3Rp
bWVJbnB1dFR5cGUuZWxlbWVudCgpLT5yZWFkT25seSgpOwogfQogCi1ib29sIFRpbWVJbnB1dFR5
cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lckZvY3Vz
ZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5mb2N1
c2VkKCk7Ci19Ci0KIGJvb2wgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
SW1wbDo6aXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25zdAogewogICAgIHJldHVybiBt
X3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5kaXNhYmxlZCgpOwpAQCAtMTczLDYgKzE3OSwxMiBA
QCBUaW1lSW5wdXRUeXBlOjp+VGltZUlucHV0VHlwZSgpCiAgICAgICAgIG1fZGF0ZVRpbWVFZGl0
RWxlbWVudC0+cmVtb3ZlRWRpdENvbnRyb2xPd25lcigpOwogfQogCit2b2lkIFRpbWVJbnB1dFR5
cGU6OmJsdXIoKQoreworICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCisgICAgICAgIG1f
ZGF0ZVRpbWVFZGl0RWxlbWVudC0+Ymx1ckJ5T3duZXIoKTsKK30KKwogUmVuZGVyT2JqZWN0KiBU
aW1lSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0
eWxlKiBzdHlsZSkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJl
cihhcmVuYSwgc3R5bGUpOwpAQCAtMTk3LDYgKzIwOSwxMiBAQCB2b2lkIFRpbWVJbnB1dFR5cGU6
OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKICAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRl
c3Ryb3lTaGFkb3dTdWJ0cmVlKCk7CiB9CiAKK3ZvaWQgVGltZUlucHV0VHlwZTo6Zm9jdXMoYm9v
bCkKK3sKKyAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQorICAgICAgICBtX2RhdGVUaW1l
RWRpdEVsZW1lbnQtPmZvY3VzQnlPd25lcigpOworfQorCiB2b2lkIFRpbWVJbnB1dFR5cGU6OmZv
cndhcmRFdmVudChFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVu
dCkKQEAgLTIxNCwyNSArMjMyLDE0IEBAIHZvaWQgVGltZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93
bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgIGZvcndhcmRFdmVudChldmVudCk7CiB9
CiAKLXZvaWQgVGltZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCogZXZl
bnQpCi17Ci0gICAgaWYgKGVsZW1lbnQoKS0+ZGlzYWJsZWQoKSB8fCBlbGVtZW50KCktPnJlYWRP
bmx5KCkgfHwgIWVsZW1lbnQoKS0+cmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
aWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50
LT5mb2N1cygpOwotCi0gICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci19Ci0KIGJvb2wg
VGltZUlucHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QK
IHsKLSAgICByZXR1cm4gZWxlbWVudCgpLT5pc1RleHRGb3JtQ29udHJvbEZvY3VzYWJsZSgpOwor
ICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNh
YmxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZWxlbWVudCgpLT5pc1RleHRGb3JtQ29udHJvbEZv
Y3VzYWJsZSgpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBUaW1lSW5wdXRUeXBlOjpt
aW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApp
bmRleCBlZTg3N2RjZjFkNmNjY2RmNWIxNzQ1YjExY2NmOTA5OTU5Y2ZlMzQ3Li45ZWVhNWI3Y2Zl
NDRjNzM2N2FiMjUwNDY5OTY0ZmJmZGU5NjFjYjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1
dFR5cGUuaApAQCAtNjgsMTEgKzY4LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgfkRh
dGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBlZGl0Q29udHJvbE1vdXNlRm9jdXMoKSBPVkVSUklERSBGSU5BTDsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZEJsdXJGcm9tQ29udHJvbCgpIE9WRVJSSURFIEZJTkFMOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXNGcm9tQ29udHJvbCgpIE9WRVJSSURFIEZJTkFMOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKSBPVkVSUklERSBG
SU5BTDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25l
cigpIE9WRVJSSURFIEZJTkFMOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93
bmVyRGlzYWJsZWQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICAgICAgdmlydHVhbCBib29s
IGlzRWRpdENvbnRyb2xPd25lckZvY3VzZWQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICAg
ICAgdmlydHVhbCBib29sIGlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5KCkgY29uc3QgT1ZFUlJJ
REUgRklOQUw7CiAKICAgICAgICAgVGltZUlucHV0VHlwZSYgbV90aW1lSW5wdXRUeXBlOwpAQCAt
ODEsMTMgKzgwLDE1IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIERhdGVUaW1lRWRpdENv
bnRyb2xPd25lckltcGw7CiAKICAgICAvLyBJbnB1dFR5cGUgZnVuY3Rpb25zCisgICAgdmlydHVh
bCB2b2lkIGJsdXIoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCog
Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURF
IEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJREUg
RklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJREUg
RklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVkQXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1Nl
bGVjdGlvbikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGZvcndhcmRFdmVudChF
dmVudCopIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVET01BY3RpdmF0
ZUV2ZW50KEV2ZW50KikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtl
eWRvd25FdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBi
b29sIGhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0
dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgT1ZFUlJJ
REUgRklOQUw7CiAgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCBPVkVSUklE
RSBGSU5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RWRpdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0
RWxlbWVudC5jcHAKaW5kZXggNDRhMWMyYjBhNTYxZTI2M2JlMDJmZTkwMTBmMTZmY2MyMDQ1OGZj
ZC4uZTE2NjI4NGU3MDY0ZTk1N2NkMDFhNWI0Njg2MmExMTY4MzUwZmMwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKQEAgLTE5
NSw3ICsxOTUsNiBAQCBEYXRlVGltZUVkaXRFbGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KERv
Y3VtZW50KiBkb2N1bWVudCwgRWRpdENvbnRyb2xPd25lciYgZQogICAgIDogSFRNTERpdkVsZW1l
bnQoZGl2VGFnLCBkb2N1bWVudCkKICAgICAsIG1fZWRpdENvbnRyb2xPd25lcigmZWRpdENvbnRy
b2xPd25lcikKICAgICAsIG1fc3BpbkJ1dHRvbigwKQotICAgICwgbV9mb2N1c0ZpZWxkSW5kZXgo
aW52YWxpZEZpZWxkSW5kZXgpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIGRhdGVUaW1lRWRpdFBzZXVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdCIpKTsKICAg
ICBzZXRTaGFkb3dQc2V1ZG9JZChkYXRlVGltZUVkaXRQc2V1ZG9JZCk7CkBAIC0yMTgsMTIgKzIx
NywzMCBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmFkZEZpZWxkKFBhc3NSZWZQdHI8RGF0
ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkKQogICAgIGFwcGVuZENoaWxkKGZpZWxkKTsKIH0KIAor
dm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpibHVyQnlPd25lcigpCit7CisgICAgaWYgKERhdGVU
aW1lRmllbGRFbGVtZW50KiBmaWVsZCA9IGZvY3VzZWRGaWVsZCgpKQorICAgICAgICBmaWVsZC0+
Ymx1cigpOworfQorCiBQYXNzUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IERhdGVUaW1lRWRp
dEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEVkaXRDb250cm9sT3duZXImIGVk
aXRDb250cm9sT3duZXIpCiB7CiAgICAgUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNvbnRh
aW5lciA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZUVkaXRFbGVtZW50KGRvY3VtZW50LCBlZGl0Q29u
dHJvbE93bmVyKSk7CiAgICAgcmV0dXJuIGNvbnRhaW5lci5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQg
RGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGlkQmx1ckZyb21GaWVsZCgpCit7CisgICAgaWYgKG1fZWRp
dENvbnRyb2xPd25lcikKKyAgICAgICAgbV9lZGl0Q29udHJvbE93bmVyLT5kaWRCbHVyRnJvbUNv
bnRyb2woKTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpkaWRGb2N1c0Zyb21GaWVs
ZCgpCit7CisgICAgaWYgKG1fZWRpdENvbnRyb2xPd25lcikKKyAgICAgICAgbV9lZGl0Q29udHJv
bE93bmVyLT5kaWRGb2N1c0Zyb21Db250cm9sKCk7Cit9CisKIHZvaWQgRGF0ZVRpbWVFZGl0RWxl
bWVudDo6ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKQogewogICAgIHVwZGF0ZVVJU3RhdGUoKTsKQEAg
LTIzNCw3MyArMjUxLDQyIEBAIERhdGVUaW1lRmllbGRFbGVtZW50KiBEYXRlVGltZUVkaXRFbGVt
ZW50OjpmaWVsZEF0KHNpemVfdCBmaWVsZEluZGV4KSBjb25zdAogICAgIHJldHVybiBmaWVsZElu
ZGV4IDwgbV9maWVsZHMuc2l6ZSgpID8gbV9maWVsZHNbZmllbGRJbmRleF0gOiAwOwogfQogCi12
b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzQW5kU2VsZWN0U3BpbkJ1dHRvbk93bmVyKCkK
K3NpemVfdCBEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZEluZGV4T2YoY29uc3QgRGF0ZVRpbWVG
aWVsZEVsZW1lbnQmIGZpZWxkKSBjb25zdAogewotICAgIGlmICghbV9lZGl0Q29udHJvbE93bmVy
KQotICAgICAgICByZXR1cm47Ci0gICAgbV9lZGl0Q29udHJvbE93bmVyLT5mb2N1c0FuZFNlbGVj
dEVkaXRDb250cm9sT3duZXIoKTsKKyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmll
bGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KSB7CisgICAgICAgIGlmICht
X2ZpZWxkc1tmaWVsZEluZGV4XSA9PSAmZmllbGQpCisgICAgICAgICAgICByZXR1cm4gZmllbGRJ
bmRleDsKKyAgICB9CisgICAgcmV0dXJuIGludmFsaWRGaWVsZEluZGV4OwogfQogCi12b2lkIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzRmllbGRBdChzaXplX3QgbmV3Rm9jdXNGaWVsZEluZGV4
KQordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25Pd25l
cigpCiB7Ci0gICAgaWYgKG1fZm9jdXNGaWVsZEluZGV4ID09IG5ld0ZvY3VzRmllbGRJbmRleCkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IG5ld0Zv
Y3VzRmllbGQgPSBmaWVsZEF0KG5ld0ZvY3VzRmllbGRJbmRleCk7Ci0gICAgaWYgKG5ld0ZvY3Vz
RmllbGQgJiYgbmV3Rm9jdXNGaWVsZC0+aXNSZWFkT25seSgpKQorICAgIGlmIChmb2N1c2VkRmll
bGRJbmRleCgpICE9IGludmFsaWRGaWVsZEluZGV4KQogICAgICAgICByZXR1cm47CiAKLSAgICBE
YXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgY3VycmVudEZvY3VzRmllbGQgPSBmaWVsZEF0KG1f
Zm9jdXNGaWVsZEluZGV4KTsKLQotICAgIGlmIChjdXJyZW50Rm9jdXNGaWVsZCkKLSAgICAgICAg
Y3VycmVudEZvY3VzRmllbGQtPnNldEZvY3VzKGZhbHNlKTsKLQotICAgIGlmICghbmV3Rm9jdXNG
aWVsZCkgewotICAgICAgICBtX2ZvY3VzRmllbGRJbmRleCA9IGludmFsaWRGaWVsZEluZGV4Owot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9mb2N1c0ZpZWxkSW5kZXggPSBuZXdGb2N1
c0ZpZWxkSW5kZXg7Ci0gICAgbmV3Rm9jdXNGaWVsZC0+c2V0Rm9jdXModHJ1ZSk7CisgICAgaWYg
KERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9IGZpZWxkQXQoMCkpCisgICAgICAgIGZpZWxk
LT5mb2N1cygpOwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmhhbmRsZUtleWJvYXJk
RXZlbnQoS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdmVudCkKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxl
bWVudDo6Zm9jdXNCeU93bmVyKCkKIHsKLSAgICBpZiAoaXNEaXNhYmxlZCgpIHx8IGlzUmVhZE9u
bHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFmaWVsZEF0KG1fZm9jdXNGaWVsZElu
ZGV4KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGtleWJvYXJkRXZlbnQtPnR5cGUoKSAh
PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb25z
dCBTdHJpbmcmIGtleUlkZW50aWZpZXIgPSBrZXlib2FyZEV2ZW50LT5rZXlJZGVudGlmaWVyKCk7
Ci0KLSAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiTGVmdCIpIHsKLSAgICAgICAga2V5Ym9hcmRF
dmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgY29uc3Qgc2l6ZV90IGZpZWxkSW5k
ZXggPSBwcmV2aW91c0ZpZWxkSW5kZXgoKTsKLSAgICAgICAgaWYgKGZpZWxkQXQoZmllbGRJbmRl
eCkpCi0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQoZmllbGRJbmRleCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9IGZpZWxkQXQo
MCkpCisgICAgICAgIGZpZWxkLT5mb2N1cygpOworfQogCi0gICAgaWYgKGtleUlkZW50aWZpZXIg
PT0gIlJpZ2h0IikgewotICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgp
OwotICAgICAgICBjb25zdCBzaXplX3QgZmllbGRJbmRleCA9IG5leHRGaWVsZEluZGV4KCk7Ci0g
ICAgICAgIGlmIChmaWVsZEF0KGZpZWxkSW5kZXgpKQotICAgICAgICAgICAgZm9jdXNGaWVsZEF0
KGZpZWxkSW5kZXgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorRGF0ZVRpbWVGaWVsZEVsZW1l
bnQqIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzZWRGaWVsZCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGZpZWxkQXQoZm9jdXNlZEZpZWxkSW5kZXgoKSk7Cit9CiAKLSAgICBpZiAoa2V5SWRlbnRp
ZmllciA9PSAiVSswMDA5IikgewotICAgICAgICBjb25zdCBzaXplX3QgZmllbGRJbmRleCA9IGtl
eWJvYXJkRXZlbnQtPmdldE1vZGlmaWVyU3RhdGUoIlNoaWZ0IikgPyBwcmV2aW91c0ZpZWxkSW5k
ZXgoKSA6IG5leHRGaWVsZEluZGV4KCk7Ci0gICAgICAgIGlmIChmaWVsZEF0KGZpZWxkSW5kZXgp
KSB7Ci0gICAgICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAg
ICAgICAgICAgZm9jdXNGaWVsZEF0KGZpZWxkSW5kZXgpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9CitzaXplX3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNlZEZpZWxkSW5kZXgo
KSBjb25zdAoreworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwg
bV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKKyAgICAgICAgaWYgKG1fZmllbGRzW2Zp
ZWxkSW5kZXhdLT5mb2N1c2VkKCkpCisgICAgICAgICAgICByZXR1cm4gZmllbGRJbmRleDsKICAg
ICB9CisgICAgcmV0dXJuIGludmFsaWRGaWVsZEluZGV4OwogfQogCiB2b2lkIERhdGVUaW1lRWRp
dEVsZW1lbnQ6OmZpZWxkVmFsdWVDaGFuZ2VkKCkKQEAgLTMwOSwzMCArMjk1LDM0IEBAIHZvaWQg
RGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRWYWx1ZUNoYW5nZWQoKQogICAgICAgICBtX2VkaXRD
b250cm9sT3duZXItPmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCgpCitib29sIERhdGVUaW1lRWRpdEVsZW1l
bnQ6OmZvY3VzT25OZXh0RmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmIGZpZWxkKQog
ewotICAgIGlmIChtX2ZvY3VzRmllbGRJbmRleCAhPSBpbnZhbGlkRmllbGRJbmRleCkKLSAgICAg
ICAgZm9jdXNGaWVsZEF0KG5leHRGaWVsZEluZGV4KCkpOworICAgIGNvbnN0IHNpemVfdCBzdGFy
dEZpZWxkSW5kZXggPSBmaWVsZEluZGV4T2YoZmllbGQpOworICAgIGlmIChzdGFydEZpZWxkSW5k
ZXggPT0gaW52YWxpZEZpZWxkSW5kZXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmb3Ig
KHNpemVfdCBmaWVsZEluZGV4ID0gc3RhcnRGaWVsZEluZGV4ICsgMTsgZmllbGRJbmRleCA8IG1f
ZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KSB7CisgICAgICAgIGlmICghbV9maWVsZHNbZmll
bGRJbmRleF0tPmlzUmVhZE9ubHkoKSkgeworICAgICAgICAgICAgbV9maWVsZHNbZmllbGRJbmRl
eF0tPmZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6aGFuZGxl
TW91c2VFdmVudChNb3VzZUV2ZW50KiBtb3VzZUV2ZW50KQorYm9vbCBEYXRlVGltZUVkaXRFbGVt
ZW50Ojpmb2N1c09uUHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYgZmll
bGQpCiB7Ci0gICAgaWYgKGlzRGlzYWJsZWQoKSB8fCBpc1JlYWRPbmx5KCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmIChtb3VzZUV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLm1vdXNl
ZG93bkV2ZW50IHx8IG1vdXNlRXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0b24pCi0gICAgICAg
IHJldHVybjsKLQotICAgIE5vZGUqIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBtb3VzZUV2ZW50LT50
YXJnZXQoKS0+dG9Ob2RlKCk7Ci0gICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9IDA7IGZpZWxk
SW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkgewotICAgICAgICBpZiAobV9m
aWVsZHNbZmllbGRJbmRleF0gPT0gcmVsYXRlZFRhcmdldCkgewotICAgICAgICAgICAgbW91c2VF
dmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgICAgIGZvY3VzRmllbGRBdChmaWVs
ZEluZGV4KTsKLSAgICAgICAgICAgIGlmIChtX2VkaXRDb250cm9sT3duZXIpCi0gICAgICAgICAg
ICAgICAgbV9lZGl0Q29udHJvbE93bmVyLT5lZGl0Q29udHJvbE1vdXNlRm9jdXMoKTsKLSAgICAg
ICAgICAgIGJyZWFrOworICAgIGNvbnN0IHNpemVfdCBzdGFydEZpZWxkSW5kZXggPSBmaWVsZElu
ZGV4T2YoZmllbGQpOworICAgIGlmIChzdGFydEZpZWxkSW5kZXggPT0gaW52YWxpZEZpZWxkSW5k
ZXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBzaXplX3QgZmllbGRJbmRleCA9IHN0YXJ0
RmllbGRJbmRleDsKKyAgICB3aGlsZSAoZmllbGRJbmRleCA+IDApIHsKKyAgICAgICAgLS1maWVs
ZEluZGV4OworICAgICAgICBpZiAoIW1fZmllbGRzW2ZpZWxkSW5kZXhdLT5pc1JlYWRPbmx5KCkp
IHsKKyAgICAgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5mb2N1cygpOworICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQog
CiBib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmlzRGlzYWJsZWQoKSBjb25zdApAQCAtMzQ3LDEw
ICszMzcsOSBAQCBib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmlzUmVhZE9ubHkoKSBjb25zdAog
CiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dChjb25zdCBTdGVwUmFuZ2UmIHN0ZXBS
YW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVWYWx1ZSkKIHsKLSAgICBzaXplX3QgZm9j
dXNGaWVsZEluZGV4ID0gbV9mb2N1c0ZpZWxkSW5kZXg7Ci0gICAgRGF0ZVRpbWVGaWVsZEVsZW1l
bnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1fZm9jdXNGaWVsZEluZGV4KTsKLSAgICBj
b25zdCBBdG9taWNTdHJpbmcgZm9jdXNGaWVsZElkID0gZm9jdXNGaWVsZCA/IGZvY3VzRmllbGQt
PnNoYWRvd1BzZXVkb0lkKCkgOiBudWxsQXRvbTsKLSAgICBmb2N1c0ZpZWxkQXQoaW52YWxpZEZp
ZWxkSW5kZXgpOworICAgIHNpemVfdCBmb2N1c2VkRmllbGRJbmRleCA9IHRoaXMtPmZvY3VzZWRG
aWVsZEluZGV4KCk7CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzZWRGaWVs
ZCA9IGZpZWxkQXQoZm9jdXNlZEZpZWxkSW5kZXgpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyBm
b2N1c2VkRmllbGRJZCA9IGZvY3VzZWRGaWVsZCA/IGZvY3VzZWRGaWVsZC0+c2hhZG93UHNldWRv
SWQoKSA6IG51bGxBdG9tOwogCiAgICAgRGF0ZVRpbWVFZGl0QnVpbGRlciBidWlsZGVyKCp0aGlz
LCBzdGVwUmFuZ2UsIGRhdGVWYWx1ZSk7CiAgICAgY29uc3QgU3RyaW5nIGRhdGVUaW1lRm9ybWF0
ID0gYnVpbGRlci5uZWVkU2Vjb25kRmllbGQoKSA/IGxvY2FsaXplZFRpbWVGb3JtYXRUZXh0KCkg
OiBsb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KCk7CkBAIC0zNjEsMzcgKzM1MCwxNiBAQCB2
b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dChjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5n
ZSwgY29uc3QgRGF0ZUNvbXBvbmVudAogICAgIG1fc3BpbkJ1dHRvbiA9IHNwaW5CdXR0b24uZ2V0
KCk7CiAgICAgYXBwZW5kQ2hpbGQoc3BpbkJ1dHRvbik7CiAKLSAgICBpZiAoZm9jdXNGaWVsZElu
ZGV4ICE9IGludmFsaWRGaWVsZEluZGV4KSB7CisgICAgaWYgKGZvY3VzZWRGaWVsZEluZGV4ICE9
IGludmFsaWRGaWVsZEluZGV4KSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAw
OyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKLSAgICAgICAg
ICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4XS0+c2hhZG93UHNldWRvSWQoKSA9PSBmb2N1c0Zp
ZWxkSWQpIHsKLSAgICAgICAgICAgICAgICBmb2N1c0ZpZWxkSW5kZXggPSBmaWVsZEluZGV4Owor
ICAgICAgICAgICAgaWYgKG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5zaGFkb3dQc2V1ZG9JZCgpID09
IGZvY3VzZWRGaWVsZElkKSB7CisgICAgICAgICAgICAgICAgZm9jdXNlZEZpZWxkSW5kZXggPSBm
aWVsZEluZGV4OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAg
ICB9Ci0gICAgICAgIGZvY3VzRmllbGRBdChzdGQ6Om1pbihmb2N1c0ZpZWxkSW5kZXgsIG1fZmll
bGRzLnNpemUoKSAtIDEpKTsKLSAgICB9Ci19Ci0KLXNpemVfdCBEYXRlVGltZUVkaXRFbGVtZW50
OjpuZXh0RmllbGRJbmRleCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fZm9jdXNGaWVsZEluZGV4
ICE9IGludmFsaWRGaWVsZEluZGV4KTsKLSAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gbV9m
b2N1c0ZpZWxkSW5kZXggKyAxOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxk
SW5kZXgpIHsKLSAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNSZWFkT25seSgp
KQotICAgICAgICAgICAgcmV0dXJuIGZpZWxkSW5kZXg7Ci0gICAgfQotICAgIHJldHVybiBtX2Zp
ZWxkcy5zaXplKCk7Ci19Ci0KLXNpemVfdCBEYXRlVGltZUVkaXRFbGVtZW50OjpwcmV2aW91c0Zp
ZWxkSW5kZXgoKSBjb25zdAotewotICAgIEFTU0VSVChtX2ZvY3VzRmllbGRJbmRleCAhPSBpbnZh
bGlkRmllbGRJbmRleCk7Ci0gICAgc2l6ZV90IGZpZWxkSW5kZXggPSBtX2ZvY3VzRmllbGRJbmRl
eDsKLSAgICB3aGlsZSAoZmllbGRJbmRleCA+IDApIHsKLSAgICAgICAgLS1maWVsZEluZGV4Owot
ICAgICAgICBpZiAoIW1fZmllbGRzW2ZpZWxkSW5kZXhdLT5pc1JlYWRPbmx5KCkpCi0gICAgICAg
ICAgICByZXR1cm4gZmllbGRJbmRleDsKKyAgICAgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50
KiBmaWVsZCA9IGZpZWxkQXQoc3RkOjptaW4oZm9jdXNlZEZpZWxkSW5kZXgsIG1fZmllbGRzLnNp
emUoKSAtIDEpKSkKKyAgICAgICAgICAgIGZpZWxkLT5mb2N1cygpOwogICAgIH0KLSAgICByZXR1
cm4gaW52YWxpZEZpZWxkSW5kZXg7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6cmVh
ZE9ubHlTdGF0ZUNoYW5nZWQoKQpAQCAtNDAzLDQyICszNzEsMjYgQEAgdm9pZCBEYXRlVGltZUVk
aXRFbGVtZW50OjpyZXNldExheW91dCgpCiB7CiAgICAgbV9maWVsZHMuc2hyaW5rKDApOwogICAg
IG1fc3BpbkJ1dHRvbiA9IDA7Ci0gICAgbV9mb2N1c0ZpZWxkSW5kZXggPSBpbnZhbGlkRmllbGRJ
bmRleDsKICAgICByZW1vdmVDaGlsZHJlbigpOwogfQogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewotICAgIGlmIChldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50KSB7Ci0gICAgICAgIGlmICghaXNEaXNh
YmxlZCgpICYmICFpc1JlYWRPbmx5KCkgJiYgbV9mb2N1c0ZpZWxkSW5kZXggPT0gaW52YWxpZEZp
ZWxkSW5kZXgpCi0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQoMCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50
KSB7Ci0gICAgICAgIGZvY3VzRmllbGRBdChpbnZhbGlkRmllbGRJbmRleCk7Ci0gICAgICAgIHJl
dHVybjsKKyAgICAvLyBJbiBjYXNlIG9mIGNvbnRyb2wgb3duZXIgZm9yd2FyZCBldmVudCB0byBj
b250cm9sLCBlLmcuIERPTQorICAgIC8vIGRpc3BhdGNoRXZlbnQgbWV0aG9kLgorICAgIGlmIChE
YXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmb2N1c2VkRmllbGQoKSkgeworICAgICAgICBm
aWVsZC0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CisgICAgICAgIGlmIChldmVudC0+ZGVm
YXVsdEhhbmRsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoZXZl
bnQtPmlzTW91c2VFdmVudCgpKSB7Ci0gICAgICAgIGhhbmRsZU1vdXNlRXZlbnQoc3RhdGljX2Nh
c3Q8TW91c2VFdmVudCo+KGV2ZW50KSk7Ci0gICAgfSBlbHNlIGlmIChldmVudC0+aXNLZXlib2Fy
ZEV2ZW50KCkpCi0gICAgICAgIGhhbmRsZUtleWJvYXJkRXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9h
cmRFdmVudCo+KGV2ZW50KSk7Ci0KLSAgICBpZiAoZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBmb2N1c0Zp
ZWxkID0gZmllbGRBdChtX2ZvY3VzRmllbGRJbmRleCk7Ci0gICAgaWYgKCFmb2N1c0ZpZWxkKQot
ICAgICAgICByZXR1cm47Ci0KICAgICBpZiAobV9zcGluQnV0dG9uKSB7CiAgICAgICAgIG1fc3Bp
bkJ1dHRvbi0+Zm9yd2FyZEV2ZW50KGV2ZW50KTsKICAgICAgICAgaWYgKGV2ZW50LT5kZWZhdWx0
SGFuZGxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZvY3VzRmllbGQt
PmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAgIEhUTUxEaXZFbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRW
YWx1ZUFzRGF0ZShjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVu
dHMmIGRhdGUpCkBAIC00NjUsMjYgKzQxNywyNyBAQCBib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OnNob3VsZFNwaW5CdXR0b25SZXNwb25kVG9XaGVlbEV2ZW50cygpCiAgICAgaWYgKCFzaG91bGRT
cGluQnV0dG9uUmVzcG9uZFRvTW91c2VFdmVudHMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgcmV0dXJuICFtX2VkaXRDb250cm9sT3duZXIgfHwgbV9lZGl0Q29udHJvbE93bmVyLT5p
c0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCk7CisgICAgcmV0dXJuIGZvY3VzZWRGaWVsZEluZGV4
KCkgIT0gaW52YWxpZEZpZWxkSW5kZXg7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
c3BpbkJ1dHRvblN0ZXBEb3duKCkKIHsKLSAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNv
bnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1fZm9jdXNGaWVsZEluZGV4KSkKLSAgICAgICAgZm9j
dXNGaWVsZC0+c3RlcERvd24oKTsKKyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0
IGZpZWxkID0gZm9jdXNlZEZpZWxkKCkpCisgICAgICAgIGZpZWxkLT5zdGVwRG93bigpOwogfQog
CiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNwaW5CdXR0b25TdGVwVXAoKQogewotICAgIGlm
IChEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZm9jdXNGaWVsZCA9IGZpZWxkQXQobV9mb2N1
c0ZpZWxkSW5kZXgpKQotICAgICAgICBmb2N1c0ZpZWxkLT5zdGVwVXAoKTsKKyAgICBpZiAoRGF0
ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZpZWxkID0gZm9jdXNlZEZpZWxkKCkpCisgICAgICAg
IGZpZWxkLT5zdGVwVXAoKTsKIH0KIAogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojp1cGRhdGVV
SVN0YXRlKCkKIHsKICAgICBpZiAoaXNEaXNhYmxlZCgpIHx8IGlzUmVhZE9ubHkoKSkgewogICAg
ICAgICBtX3NwaW5CdXR0b24tPnJlbGVhc2VDYXB0dXJlKCk7Ci0gICAgICAgIGZvY3VzRmllbGRB
dChpbnZhbGlkRmllbGRJbmRleCk7CisgICAgICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCog
ZmllbGQgPSBmb2N1c2VkRmllbGQoKSkKKyAgICAgICAgICAgIGZpZWxkLT5ibHVyKCk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmgKaW5kZXggOGQ5ZTAxNWEyNmY3NTA1ODFlMjI5ZjY5ZTEzOTI5N2JmNmY2MDM1My4uYzVh
M2NhMzU2MTU5NDc0YzBjYTg3MzBmYWNlMzllZDFlZGUwODZiYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaApAQCAtNTEsMTEgKzUxLDEw
IEBAIHB1YmxpYzoKICAgICBjbGFzcyBFZGl0Q29udHJvbE93bmVyIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIHZpcnR1YWwgfkVkaXRDb250cm9sT3duZXIoKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IGZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25lcigpID0gMDsKLSAgICAgICAgdmlydHVhbCB2
b2lkIGVkaXRDb250cm9sTW91c2VGb2N1cygpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZEJsdXJGcm9tQ29udHJvbCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZvY3VzRnJv
bUNvbnRyb2woKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBlZGl0Q29udHJvbFZhbHVlQ2hh
bmdlZCgpID0gMDsKICAgICAgICAgdmlydHVhbCBib29sIGlzRWRpdENvbnRyb2xPd25lckRpc2Fi
bGVkKCkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVy
Rm9jdXNlZCgpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBib29sIGlzRWRpdENvbnRyb2xP
d25lclJlYWRPbmx5KCkgY29uc3QgPSAwOwogICAgIH07CiAKQEAgLTYzLDggKzYyLDEwIEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgfkRhdGVUaW1lRWRpdEVsZW1lbnQoKTsKICAgICB2b2lkIGFk
ZEZpZWxkKFBhc3NSZWZQdHI8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+KTsKKyAgICB2b2lkIGJsdXJC
eU93bmVyKCk7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBP
VkVSUklERTsKICAgICB2b2lkIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCk7CisgICAgdm9pZCBmb2N1
c0J5T3duZXIoKTsKICAgICB2b2lkIHJlYWRPbmx5U3RhdGVDaGFuZ2VkKCk7CiAgICAgdm9pZCBy
ZW1vdmVFZGl0Q29udHJvbE93bmVyKCkgeyBtX2VkaXRDb250cm9sT3duZXIgPSAwOyB9CiAgICAg
dm9pZCByZXNldExheW91dCgpOwpAQCAtODksMTkgKzkwLDIwIEBAIHByaXZhdGU6CiAgICAgRGF0
ZVRpbWVFZGl0RWxlbWVudChEb2N1bWVudCosIEVkaXRDb250cm9sT3duZXImKTsKIAogICAgIERh
dGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZEF0KHNpemVfdCkgY29uc3Q7Ci0gICAgdm9pZCBmb2N1
c0ZpZWxkQXQoc2l6ZV90KTsKLSAgICB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRF
dmVudCopOwotICAgIHZvaWQgaGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50Kik7CisgICAgc2l6
ZV90IGZpZWxkSW5kZXhPZihjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYpIGNvbnN0OworICAg
IERhdGVUaW1lRmllbGRFbGVtZW50KiBmb2N1c2VkRmllbGQoKSBjb25zdDsKKyAgICBzaXplX3Qg
Zm9jdXNlZEZpZWxkSW5kZXgoKSBjb25zdDsKICAgICBib29sIGlzRGlzYWJsZWQoKSBjb25zdDsK
ICAgICBib29sIGlzUmVhZE9ubHkoKSBjb25zdDsKICAgICB2b2lkIGxheW91dChjb25zdCBTdGVw
UmFuZ2UmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYpOwotICAgIHNpemVfdCBuZXh0RmllbGRJbmRl
eCgpIGNvbnN0OwotICAgIHNpemVfdCBwcmV2aW91c0ZpZWxkSW5kZXgoKSBjb25zdDsKICAgICB2
b2lkIHVwZGF0ZVVJU3RhdGUoKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50OjpGaWVs
ZE93bmVyIGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmx1ckZyb21GaWVsZCgpIE9W
RVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBkaWRGb2N1c0Zyb21GaWVsZCgpIE9WRVJS
SURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBmaWVsZFZhbHVlQ2hhbmdlZCgpIE9WRVJSSURF
IEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBmb2N1c09uTmV4dEZpZWxkKCkgT1ZFUlJJREUgRklO
QUw7CisgICAgdmlydHVhbCBib29sIGZvY3VzT25OZXh0RmllbGQoY29uc3QgRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgZm9jdXNPblByZXZp
b3VzRmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSBPVkVSUklERSBGSU5BTDsKIAog
ICAgIC8vIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9uT3duZXIgZnVuY3Rpb25zLgogICAg
IHZpcnR1YWwgdm9pZCBmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25Pd25lcigpIE9WRVJSSURFIEZJ
TkFMOwpAQCAtMTEzLDcgKzExNSw2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPERhdGVUaW1lRmll
bGRFbGVtZW50KiwgbWF4aW11bU51bWJlck9mRmllbGRzPiBtX2ZpZWxkczsKICAgICBFZGl0Q29u
dHJvbE93bmVyKiBtX2VkaXRDb250cm9sT3duZXI7CiAgICAgU3BpbkJ1dHRvbkVsZW1lbnQqIG1f
c3BpbkJ1dHRvbjsKLSAgICBzaXplX3QgbV9mb2N1c0ZpZWxkSW5kZXg7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5jcHAKaW5kZXggOWQ1NmQ5YmY4N2UxNDRiOGJkNWU1NjIwYzA4NzRj
MzVkZTE2YjE0OC4uZjliOTg0ZGQwMmE3MWJmMzU3YjBkM2Y5ZjU0MTRlZjZhODdmYTRiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUg
IlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDgsNiArNDksMTIgQEAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRF
bGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGQKIAogdm9pZCBEYXRl
VGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7Cisg
ICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJsdXJFdmVudCkKKyAgICAgICAg
ZGlkQmx1cigpOworCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmZvY3Vz
RXZlbnQpCisgICAgICAgIGRpZEZvY3VzKCk7CisKICAgICBpZiAoZXZlbnQtPmlzS2V5Ym9hcmRF
dmVudCgpKSB7CiAgICAgICAgIEtleWJvYXJkRXZlbnQqIGtleWJvYXJkRXZlbnQgPSBzdGF0aWNf
Y2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpOwogICAgICAgICBoYW5kbGVLZXlib2FyZEV2ZW50
KGtleWJvYXJkRXZlbnQpOwpAQCAtNzQsNiArODEsMjIgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxl
bWVudDo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGtleWJvYXJk
RXYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJM
ZWZ0IikgeworICAgICAgICBpZiAoIW1fZmllbGRPd25lcikKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgaWYgKG1fZmllbGRPd25lci0+Zm9jdXNPblByZXZpb3VzRmllbGQoKnRoaXMpKQor
ICAgICAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJSaWdodCIpIHsKKyAg
ICAgICAgaWYgKCFtX2ZpZWxkT3duZXIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlm
IChtX2ZpZWxkT3duZXItPmZvY3VzT25OZXh0RmllbGQoKnRoaXMpKQorICAgICAgICAgICAga2V5
Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJVcCIpIHsKICAgICAgICAga2V5Ym9hcmRFdmVu
dC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgc3RlcFVwKCk7CkBAIC04NywxMCArMTEw
LDIzIEBAIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFu
ZGxlcihLZXlib2FyZEV2ZW50KiBrZXlib2FyZEV2CiAgICAgfQogfQogCi12b2lkIERhdGVUaW1l
RmllbGRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKCkKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1l
bnQ6OmRpZEJsdXIoKQoreworICAgIGlmIChtX2ZpZWxkT3duZXIpCisgICAgICAgIG1fZmllbGRP
d25lci0+ZGlkQmx1ckZyb21GaWVsZCgpOworfQorCit2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50
OjpkaWRGb2N1cygpCiB7CiAgICAgaWYgKG1fZmllbGRPd25lcikKLSAgICAgICAgbV9maWVsZE93
bmVyLT5mb2N1c09uTmV4dEZpZWxkKCk7CisgICAgICAgIG1fZmllbGRPd25lci0+ZGlkRm9jdXNG
cm9tRmllbGQoKTsKK30KKwordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6Zm9jdXNPbk5leHRG
aWVsZCgpCit7CisgICAgaWYgKCFtX2ZpZWxkT3duZXIpCisgICAgICAgIHJldHVybjsKKyAgICBt
X2ZpZWxkT3duZXItPmZvY3VzT25OZXh0RmllbGQoKnRoaXMpOwogfQogCiB2b2lkIERhdGVUaW1l
RmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRv
SWQpCkBAIC05OSw2ICsxMzUsMTEgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlh
bGl6ZShjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKQogICAgIGFwcGVuZENoaWxk
KFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB2aXNpYmxlVmFsdWUoKSkpOwogfQogCitib29sIERh
dGVUaW1lRmllbGRFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFp
c1JlYWRPbmx5KCk7Cit9CisKIGJvb2wgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmlzUmVhZE9ubHko
KSBjb25zdAogewogICAgIHJldHVybiBmYXN0SGFzQXR0cmlidXRlKHJlYWRvbmx5QXR0cik7CkBA
IC0xMTEsNiArMTUyLDExIEBAIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnNldFJlYWRPbmx5
KCkKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKK2Jvb2wgRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCiB2
b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNpYmxlVmFsdWUoRXZlbnRCZWhhdmlv
ciBldmVudEJlaGF2aW9yKQogewogICAgIFRleHQqIGNvbnN0IHRleHROb2RlID0gdG9UZXh0KGZp
cnN0Q2hpbGQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVG
aWVsZEVsZW1lbnQuaAppbmRleCBjZDM5ZTI4YTM5NDQ5Y2E0YjhjNDUzMGQ2YjllNjQ2NjdkYzRm
YzQ1Li5jMGMzZGRkMTE5YWUxNGM4M2E2ZTQwNzMwNTVkYzgzOTM2ZTc5ZmRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKQEAgLTUw
LDcgKzUwLDEwIEBAIHB1YmxpYzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkZpZWxk
T3duZXIoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGZpZWxkVmFsdWVDaGFuZ2VkKCkgPSAwOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNPbk5leHRGaWVsZCgpID0gMDsKKyAgICAgICAgdmly
dHVhbCB2b2lkIGRpZEJsdXJGcm9tRmllbGQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBk
aWRGb2N1c0Zyb21GaWVsZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCBib29sIGZvY3VzT25OZXh0
RmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSA9IDA7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBmb2N1c09uUHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYpID0g
MDsKICAgICB9OwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
KSBPVkVSUklERTsKQEAgLTcwLDYgKzczLDggQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJik7CisgICAgdmlydHVh
bCB2b2lkIGRpZEJsdXIoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXMoKTsKICAgICB2b2lk
IGZvY3VzT25OZXh0RmllbGQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVu
dChLZXlib2FyZEV2ZW50KikgPSAwOwogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBBdG9taWNT
dHJpbmcmKTsKQEAgLTc4LDYgKzgzLDggQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIHZv
aWQgZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNGb2N1c2FibGUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogCiAgICAgRmllbGRP
d25lciogbV9maWVsZE93bmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCmluZGV4IGE0MDUzYjU3
NzVmNGI1YzQwMTE0NTRiODc0MjUxZWUxMTVkZmRmMGEuLmJhOWY1Mjc2OTk0ZTMwOTA2MzNkZmE2
NmI5NmFmN2IxMGJhYjc3MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcApAQCAtNzIsNiArNzIsMTgg
QEAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWUKIHsKIH0KIAordm9pZCBEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQ6OmRpZEJsdXIoKQoreworICAgIG1fbGFzdERpZ2l0Q2hhclRpbWUgPSAwOwor
ICAgIERhdGVUaW1lRmllbGRFbGVtZW50OjpkaWRCbHVyKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50OjpkaWRGb2N1cygpCit7CisgICAgbV9sYXN0RGlnaXRDaGFyVGlt
ZSA9IDA7CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRpZEZvY3VzKCk7Cit9CisKIHZvaWQg
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJk
RXZlbnQqIGtleWJvYXJkRXZlbnQpCiB7CiAgICAgaWYgKGlzUmVhZE9ubHkoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50LmgKaW5kZXggMzcxOWJjMTMwZTMxYjM3NDZiMzM5Zjc5Y2QzMjBkNzViNDNlMWZiNi4uZDQx
YTFjM2FhN2VjOTE5MjgyNmVjMzVjOGFlZTc4NjNkNWZiM2Y1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmgK
QEAgLTYzLDYgKzYzLDggQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIC8vIERhdGVUaW1l
RmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmx1cigpIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBkaWRGb2N1cygpIE9WRVJSSURFIEZJTkFMOwog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RW1wdHlWYWx1ZShjb25zdCBEYXRlQ29t
cG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQsIEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFIEZJ
TkFMOwogICAgIHZpcnR1YWwgdm9pZCBzdGVwRG93bigpIE9WRVJSSURFIEZJTkFMOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDU4OTMxYmRkM2RmYjNkZmI1N2UzY2M2MDRiZjI0MzQxN2U2ZTVmNDMuLjIxZDA5NWQ1MDNlMTli
NmFhMjYyNzg5M2EzYWFjOTZjZDRjYzQ0OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0w
OC0zMCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtG
b3Jtc10gU2hpZnQrVGFiIHNob3VsZCBmb2N1cyB0aGUgbGFzdCBmaWVsZCBvZiBtdWx0aXBsZSBm
aWVsZHMgdGltZSBpbnB1dCBVSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTUxNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgZm9jdXMgYW5kIGJsdXIgZXZlbnQgaGFuZGxpbmcg
dGVzdCBhbmQgYSBuZXcgdGVzdCBjYXNlCisgICAgICAgIGZvciBTaGlmdCtUYWIgZm9yIG11bHRp
cGxlIGZpZWxkcyB0aW1lIGlucHV0IFVJLgorCisgICAgICAgICogdGltZS1tdWx0aXBsZS1maWVs
ZHMtYmx1ci1hbmQtZm9jdXMtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
dGltZS1tdWx0aXBsZS1maWVsZHMtYmx1ci1hbmQtZm9jdXMtZXZlbnRzLmh0bWw6IEFkZGVkIGZv
ciBibHVyIGFuZCBmb2N1cyBldmVudHMgaGFuZGxpbmcuCisgICAgICAgICogZmFzdC9mb3Jtcy90
aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMu
aHRtbDogQ2hhbmdlZCB0byBhZGQgYSB0ZXN0IGNhc2VzIGZvciBTaGlmdCtUYWIuCisKIDIwMTIt
MDgtMjkgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
VGVzdHNdIEFkZCB0ZXN0IGNhc2UgZm9yIHJpZ2h0LXRvLWxlZnQgcmVuZGVyaW5nIG9mIG11bHRp
cGxlIGZpZWxkcyB0aW1lIGlucHV0IFVJCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZv
Y3VzLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVs
dGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWMyMzkyMTg3YzVlZTBlNjAzNjFiZDE0MWVlYzBjNmZh
NTFmMjExZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1t
dWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtYmx1ci1hbmQtZm9jdXMtZXZlbnRz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitDaGVjayBibHVyIGFuZCBmb2N1cyBldmVu
dHMgZm9yIG11bHRpcGxlIGZpZWxkcyB0aW1lIGlucHV0IFVJCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitmb2N1cygpIGFuZCBibHVyKCkKK1BBU1MgdGVzdElucHV0LmZvY3VzKCk7
IHN0YXRlKCkgaXMgImJsdXI9MCBmb2N1cz0xIgorUEFTUyB0ZXN0SW5wdXQuYmx1cigpOyBzdGF0
ZSgpIGlzICJibHVyPTEgZm9jdXM9MSIKK2ZvY3VzIGFuZCBUYWIga2V5IHRvIGJsdXIKK1BBU1Mg
a2V5RG93bigiCSIpOyBzdGF0ZSgpIGlzICJibHVyPTAgZm9jdXM9MSIKK1BBU1Mga2V5RG93bigi
CSIpOyBzdGF0ZSgpIGlzICJibHVyPTAgZm9jdXM9MSIKK1BBU1Mga2V5RG93bigiCSIpOyBzdGF0
ZSgpIGlzICJibHVyPTAgZm9jdXM9MSIKK1BBU1Mga2V5RG93bigiCSIpOyBzdGF0ZSgpIGlzICJi
bHVyPTEgZm9jdXM9MSIKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0
aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtYmx1ci1hbmQtZm9jdXMtZXZlbnRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVs
dGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YzEx
NzkyNjhiNWMxMTVmMDE1NGEzYmFmZTc2M2M3MTg2MWI1ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUt
ZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJj
b250YWluZXIiPgorPGlucHV0IGlkPSJiZWZvcmUiPgorPGlucHV0IGlkPSJ0ZXN0IiB0eXBlPSJ0
aW1lIiB2YWx1ZT0iMTI6MzQiPgorPGlucHV0IGlkPSJhZnRlciI+Cis8L2Rpdj4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignQ2hlY2sgYmx1ciBhbmQgZm9jdXMgZXZlbnRzIGZvciBtdWx0aXBsZSBm
aWVsZHMgdGltZSBpbnB1dCBVSScpOworCit2YXIgYmx1ckNvdW50ZXIgPSAwOwordmFyIGZvY3Vz
Q291bnRlciA9IDA7CisKK2Z1bmN0aW9uIGtleURvd24oa2V5LCBtb2RpZmllcnMpCit7CisgICAg
aWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKyAgICBldmVudFNlbmRl
ci5rZXlEb3duKGtleSwgbW9kaWZpZXJzKTsKK30KKworZnVuY3Rpb24gc3RhdGUoKQoreworICAg
IHJldHVybiAnYmx1cj0nICsgYmx1ckNvdW50ZXIgKyAnIGZvY3VzPScgKyBmb2N1c0NvdW50ZXI7
Cit9CisKK3ZhciB0ZXN0SW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwor
dGVzdElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlvbiAoKSB7ICsrYmx1ckNv
dW50ZXI7IH0pOwordGVzdElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVuY3Rpb24g
KCkgeyArK2ZvY3VzQ291bnRlcjsgfSk7CisKK2Z1bmN0aW9uIGJlZ2luVGVzdENhc2UodGVzdENh
c2VOYW1lKQoreworICAgIGRlYnVnKHRlc3RDYXNlTmFtZSk7CisgICAgYmx1ckNvdW50ZXIgPSAw
OworICAgIGZvY3VzQ291bnRlciA9IDA7Cit9CisKK2JlZ2luVGVzdENhc2UoJ2ZvY3VzKCkgYW5k
IGJsdXIoKScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0SW5wdXQuZm9jdXMoKTsgc3Rh
dGUoKScsICdibHVyPTAgZm9jdXM9MScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0SW5w
dXQuYmx1cigpOyBzdGF0ZSgpJywgJ2JsdXI9MSBmb2N1cz0xJyk7CisKK2lmICh3aW5kb3cuZXZl
bnRTZW5kZXIpIHsKKyAgICBiZWdpblRlc3RDYXNlKCdmb2N1cyBhbmQgVGFiIGtleSB0byBibHVy
Jyk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJlZm9yZSIpLmZvY3VzKCk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdrZXlEb3duKCJcdCIpOyBzdGF0ZSgpJywgJ2JsdXI9MCBm
b2N1cz0xJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdrZXlEb3duKCJcdCIpOyBzdGF0
ZSgpJywgJ2JsdXI9MCBmb2N1cz0xJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdrZXlE
b3duKCJcdCIpOyBzdGF0ZSgpJywgJ2JsdXI9MCBmb2N1cz0xJyk7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdrZXlEb3duKCJcdCIpOyBzdGF0ZSgpJywgJ2JsdXI9MSBmb2N1cz0xJyk7Cit9
IGVsc2UgeworICAgIGRlYnVnKCdQbGVhc2UgcnVuIGluIER1bXBSZW5kZXJUcmVlIGZvciBmb2N1
cyBhbmQgVGFiLWtleSB0ZXN0IGNhc2UnKTsKK30KKworZGVidWcoJycpOworZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIikpOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJk
LWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlw
bGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50
eHQKaW5kZXggNjE4YTY5NjgyY2U2MjFkMTNmMWZiZmI1NWZiMDNhM2MwMmJhZTAzNi4uOThkMjM2
OTlmOWFkZDUzOWI5MjU1MTAxYjkwMmExM2VhMDhjYTk4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1r
ZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
dGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRz
LWV4cGVjdGVkLnR4dApAQCAtMTEsNyArMTEsNyBAQCBMZWZ0L1JpZ2h0IC0gTW92ZSBmb2N1cyBm
aWVsZCBpbnNpZGUgZWxlbWVudAogVXAvRG93biAtIEluY3JlbWVudC9kZWNyZW1lbnQgdmFsdWUg
b2YgZm9jdXMgZmllbGQKIFRhYiAtIE1vdmUgZm9jdXMgZmllbGQKIEJhY2tzcGFjZSAtIE1ha2Ug
dmFsdWUgZW1wdHkKLSAKKyAgCiA9PSBEaWdpdCBrZXlzID09CiBQQVNTIGlucHV0LnZhbHVlIGlz
ICIwNzo1NiIKID09IExlZnQvUmlnaHQga2V5cyA9PQpAQCAtMjYsNiArMjYsMTAgQEAgUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMTQ6NTgiCiBQQVNTIGlucHV0LnZhbHVlIGlzICIwMzowNSIKIFBBU1Mg
aW5wdXQudmFsdWUgaXMgIjA3OjA1IgogUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIGlz
ICJhbm90aGVyIgorPT0gU2hmaXQrVGFiIGtleSA9PQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTU6
MDAiCitQQVNTIGlucHV0LnZhbHVlIGlzICIxNTowMyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5pZCBpcyAiYmVmb3JlIgogPT0gQmFja3NwYWNlIGtleSA9PQogUEFTUyBpbnB1dC52YWx1
ZSBpcyAiIgogPT0gRGVsZXRlIGtleSA9PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1l
dmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMv
dGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKaW5kZXggN2YzNTIxMmM4
MzIzZGNlYmNjYWYzNDk0Mzg0NThiOGNjMDczNGFiNy4uMWQ1OGExMDViZDhkYzNjYTgwM2E5ODM5
MmQ2NjVjZmFmYzM5OTc4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1l
LW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUt
bXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sCkBAIC0xNiw2ICsxNiw3IEBAIFRl
c3QgZm9sbG93aW5nIGtleXM6CiAgICAgPGxpPlRhYiAtIE1vdmUgZm9jdXMgZmllbGQ8L2xpPgog
ICAgIDxsaT5CYWNrc3BhY2UgLSBNYWtlIHZhbHVlIGVtcHR5PC9saT4KIDwvdWw+Cis8aW5wdXQg
aWQ9ImJlZm9yZSI+CiA8aW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJ0aW1lIj4KIDxpbnB1dCBpZD0i
YW5vdGhlciI+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KQEAgLTk3LDYgKzk4LDE4IEBAIGtl
eURvd24oJ1x0Jyk7CiBrZXlEb3duKCdcdCcpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmlkJywgJ2Fub3RoZXInKTsKIAorYmVnaW5UZXN0KCdTaGZpdCtU
YWIga2V5JywgJzAzOjAwJyk7Cithbm90aGVyLmZvY3VzKCk7CitrZXlEb3duKCdcdCcsIFsnc2hp
ZnRLZXknXSk7CitrZXlEb3duKCdQJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZh
bHVlJywgJzE1OjAwJyk7CitrZXlEb3duKCdcdCcsIFsnc2hpZnRLZXknXSk7CitrZXlEb3duKCcz
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzE1OjAzJyk7CitrZXlE
b3duKCdcdCcsIFsnc2hpZnRLZXknXSk7CitrZXlEb3duKCdcdCcsIFsnc2hpZnRLZXknXSk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQnLCAnYmVmb3Jl
Jyk7CisKIGJlZ2luVGVzdCgnQmFja3NwYWNlIGtleScsICcxMjozNCcpOwoga2V5RG93bigiXGIi
KTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161439</attachid>
            <date>2012-08-30 04:06:42 -0700</date>
            <delta_ts>2012-08-30 18:43:31 -0700</delta_ts>
            <desc>Patch 5</desc>
            <filename>bug-95168-20120830200630.patch</filename>
            <type>text/plain</type>
            <size>38810</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyODk0YzY4YzhmZDM2
M2ZkYTAyNTQzZjljNmMzOWUxZjQ1ODhkNC4uMTAyOWNiZWY2YWQ0NGI2ZjQ1M2M3MmY3MGJjMmJm
NzVmZWIyZGIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEyLTA4LTI5ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBTaGlm
dCtUYWIgc2hvdWxkIGZvY3VzIHRoZSBsYXN0IGZpZWxkIG9mIG11bHRpcGxlIGZpZWxkcyB0aW1l
IGlucHV0IFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NTE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggY2hhbmdlcyBmb2N1cyBoYW5kbGluZyBpbiBEYXRlVGltZUVkaXRFbGVtZW50
IGNsYXNzIGZvcgorICAgICAgICBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAg
ICAgICBDdXJyZW50IGltcGxlbWVudGF0aW9uIGNvbnRyb2xzIGZvY3VzIGluIGZpZWxkcyBieSBE
YXRlVGltZUVkaXRFbGVtZW50CisgICAgICAgIGFuZCBhIGZvY3VzIGZpZWxkIGlzIHRyYWNrZWQg
bV9mb2N1c0ZpZWxkSW5kZXggbWVtYmVyIHZhcmlhYmxlLiBJbgorICAgICAgICBjdXJyZW50IGlt
cGxlbWVudGF0aW9uLCBpdCBpcyBoYXJkIHRvIHNldCBmb2N1cyB0byB0aGUgbGFzdCBmaWVsZCB3
aGVuCisgICAgICAgIGl0IGdldHMgZm9jdXMgYnkgU2hpZnQrVGFiLCBiZWNhdXNlIHdlIGRvbid0
IGtub3cgaG93IERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgZ2V0cyBmb2N1cy4KKworICAg
ICAgICBJbiB0aGlzIG5ldyBpbXBsZW1lbnRhdGlvbiwgRGF0ZVRpbWVFZGl0RWxlbWVudCBkb2Vz
bid0IGNvbnRyb2wgZm9jdXMKKyAgICAgICAgcmF0aGVyIEZvY3VzQ29udHJvbGxlciBjbGFzcyBj
b250cm9scyBmb2N1czoKKyAgICAgICAgIC0gV2Ugc2V0IGZvY3VzIHRvIERhdGVUaW1lRmllbGRF
bGVtZW50IGluc3RlYWQgb2YgSFRNTElucHV0RWxlbWVudAorICAgICAgICAgICB3aGljaCBpcyBz
aGFkb3cgaG9zdCBvZiBEYXRlVGltZUVkaXRFbGVtZW50IGZvciBjb250cm9sbGluZyBmb2N1cwor
ICAgICAgICAgICBieSBGb2N1c0NvbnRyb2xsZXIuCisgICAgICAgICAtIEZvY3VzL2JsdXIgZXZl
bnRzIGluIERhdGVUaW1lRmllbGRFbGVtZW50IGFyZSByb3V0ZWQgdG8gSFRNTElucHV0RWxlbWVu
dAorICAgICAgICAgICBieSBzaGFkb3cgRE9NIG1lY2hhbmlzbS4KKyAgICAgICAgIC0gVGltZUlu
cHV0VHlwZSBjbGFzcyBvdmVycmlkZXMgSFRNTElOcHV0RWxlbWVudDo6Ymx1cigpIGFuZCBmb2N1
cygpCisgICAgICAgICAgIGZ1bmN0aW9ucyBmb3IgZGVsZWdhdGluZyBibHVyL2ZvY3VzIGJlaGF2
aW9yIHRvIERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgICAgYnkgY2FsbGluZyBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpibHVyQnlPd25lcigpL2ZvY3VzQnlPd25lcigpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggYWZmZWN0cyBvbmx5IHBvcnRzIHdoaWNoIGVuYWJsZSBib3RoIEVOQUJMRV9JTlBV
VF9UWVBFX1RJTUUKKyAgICAgICAgYW5kIEVOQUJMRV9JTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRz
L3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCisgICAgICAg
IFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgbmV3IHRlc3QgY2FzZSBmb3IgU2hpZnQrVGFiIGludG8g
ZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEJsdXIpOiBBZGRlZCBmb3IgdGhlIGlucHV0IGVsZW1lbnQgbm90IHRvIGJl
IG1hdGNoZWQgImZvY3VzIiBwc2V1ZG8gY2xhc3MgZm9yIHJlbW92aW5nIGZvY3VzIHJpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEZvY3VzKTogIEFkZGVkIGZvciB0aGUgaW5wdXQgZWxlbWVudCB0byBiZSBt
YXRjaGVkICJmb2N1cyIgcHNldWRvIGNsYXNzIGZvciBhZGRpbmcgZm9jdXMgcmluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZvY3VzTG9naWMpOiBBZGRlZCBm
b3IgYXNraW5nIEZvY3VzQ29udHJvbGxlciB0byB3YWxrIGludG8gc2hhZG93IERPTSB0cmVlIG9u
IGlucHV0IHR5cGUgInRpbWUiLgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6Ymx1
cik6IEFkZGVkIGZvciBkZWxlZ2F0aW5nIGJsdXIoKSBhY3Rpb24gdG8gRGF0ZVRpbWVFZGl0RWxl
bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmZvY3VzKTogQWRkZWQgZm9y
IGRlbGVnYXRpbmcgZm9jdXMoKSBhY3Rpb24gdG8gRGF0ZVRpbWVFZGl0RWxlbWVudC4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBDaGFuZ2Vk
IGZvciAiaW5wdXQiIGVsZW1lbnQgbm90IHRvIGhhdmUgZm9jdXMuCisgICAgICAgIChXZWJDb3Jl
OjpUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKTogIENoYW5nZWQgZm9yICJpbnB1dCIg
ZWxlbWVudCBub3QgdG8gaGF2ZSBmb2N1cy4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUu
aDoKKyAgICAgICAgKERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwpOiBDaGFuZ2VkIGZvciBu
ZXcgZGVmaW5pdGlvbiBvZiBEYXRlVGltZUVkaXRDb250cm9sT3duZXIuCisgICAgICAgIChUaW1l
SW5wdXRUeXBlKTogQ2hhbmdlZCBmb3IgbmV3IGRlZmluaXRpb24gb2YgRGF0ZVRpbWVFZGl0RWxl
bWVudC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OkRhdGVUaW1lRWRpdEVsZW1lbnQp
OiBSZW1vdmVkIGRyb3BwZWQgbWVtYmVyIHZhcmlhYmxlIG1fZm9jdXNGaWVsZEluZGV4LgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6Ymx1ckJ5T3duZXIpOiBBZGRlZCBm
b3IgYmx1cigpIGFjdGlvbiBhc2VrZCBieSBvd25lci4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OmRpZEZpZWxkQmx1cik6IEFkZGVkIGZvciBjYWxsaW5nIERhdGVUaW1l
RWRpdENvbnRyb2xPd25lcjo6ZGlkRmllbGRCbHVyKCkuCisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpkaWRGaWVsZEZvY3VzKTogQWRkZWQgZm9yIGNhbGxpbmcgRGF0ZVRp
bWVFZGl0Q29udHJvbE93bmVyOjpkaWRGaWVsZEZvY3VzKCkuCisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZEluZGV4T2YpOiBBZGRlZCBmb3IgbWFwcGluZyBEYXRl
VGltZUZpZWxkRWxlbWVudCB0byBmaWVsZCBpbmRleC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OmZvY3VzQnlPd25lcik6IEFkZGVkIGZvciBmb2N1cygpIGFjdGlvbiBh
c2VrZCBieSBvd25lci4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZv
Y3VzZWRGaWVsZEluZGV4KTogQWRkZWQgYXMgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNlZEZpZWxkKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKTogQ2hhbmdl
ZCB0byBwYXNzIGEgZmllbGQgdG8gZm9jdXNPbk5leHQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzT25QcmV2aW91c0ZpZWxkKTogZGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25P
d25lcik6IENoYW5nZWQgZm9yIHNldHRpbmcgZm9jdXMgdG8gdGhlIGZpcnN0IGZpZWxkLgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KTogQ2hhbmdlZCB0byB1
c2UgZm9jdXNGaWVsZEluZGV4KCkgYW5kIERhdGVUaW1lRmllbGRFbGVtZW50Ojpmb2N1cygpLgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6cmVzZXRMYXlvdXQpOiBDaGFu
Z2VkIHRvIHJlbW92ZSBtX2ZvY3VzRmllbGRJbmRleCB2YXJpYWJsZSByZWZlcmVuY2UuCisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKTog
Q2hhbmdlZCB0byByZW1vdmUgZm9jdXMgbmF2aWdhdGlvbiByZWxhdGVkIGV2ZW50cywgYmx1ZS9m
b2N1cy9tb3VzZSwgaGFuZGxpbmcuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVt
ZW50OjpzaG91bGRTcGluQnV0dG9uUmVzcG9uZFRvV2hlZWxFdmVudHMpOiBDaGFuZ2VkIHRvIGNo
ZWNrIGZvY3VzIGZpZWxkIGluc3RlYWQgb2YgYXNraW5nIG93bmVyLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6c3BpbkJ1dHRvblN0ZXBEb3duKTogQ2hhbmdlZCB0byB1
c2UgZm9jdXNGaWVsZCgpIGluc3RlYWQgb2YgbV9mb2N1c0ZpZWxkSW5kZXguCisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcFVwKTogZGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojp1cGRhdGVVSVN0YXRlKTogZGl0
dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oOgorICAgICAg
ICAoRWRpdENvbnRyb2xPd25lcik6IEFkZGVkIGRpZEZpZWxkQmx1cigpIGFuZCBkaWRGaWVsZEZv
Y3VzKCkgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgorICAgICAgICAoRGF0ZVRpbWVFZGl0RWxlbWVu
dCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIp
OiBDaGFuZ2VkIHRvIGhhbmRsZSBibHVyIGFuZCBmb2N1cyBldmVudHMuCisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKTog
Q2hhbmdlZCB0byBoYW5kbGUgTGVmdC9SaWdodCBrZXlzLgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OmRpZEJsdXIpOiBBZGRlZCB0byBjYWxsIEZpZWxkT3duZXI6OmRp
ZEJsdXIoKSB0byByZW1vdmUgZm9jdXMgcmluZyBmcm9tIG93bmVyIGVsZW1lbnQuCisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGlkRm9jdXMpOiBBZGRlZCB0byBjYWxs
IEZpZWxkT3duZXI6OmRpZEZvY3VzKCkgIHRvIGFkZCBmb2N1cyByaW5nIHRvIG93bmVyIGVsZW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6Zm9jdXNPbk5leHRG
aWVsZCk6IEFkZGVkIGZvciBtb3ZpbmcgZm9jdXMgdG8gbmV4dCBmaWVsZCBmb3IgRGF0ZVRpbWVO
dW1iZXJpY0ZpZWxkRWxtZW50CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVu
dDo6aXNGb2N1c2FibGUpOiBBZGRlZCB0byBtYWtlIERhdGVUaW1lRmllbGRFbGVtZW50IGZvY3Vz
YWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpzdXBwb3J0c0Zv
Y3VzKTogIEFkZGVkIHRvIG1ha2UgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZm9jdXNhYmxlLgorICAg
ICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50Lmg6CisgICAgICAgIChGaWVs
ZE93bmVyKTogQWRkZWQgZGVjbGFyYXRpb25zIGZvciBmb2N1c2FibGUgaGFuZGxpbmcuCisgICAg
ICAgIChEYXRlVGltZUZpZWxkRWxlbWVudCk6IGRpdHRvLgorICAgICAgICAqIGh0bWwvc2hhZG93
L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmRpZEJsdXIpOiBBZGRlZCBmb3IgcmVzZXR0aW5nIHR5
cGUtYWhlYWQgdGltZXIuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQ6OmRpZEZvY3VzKTogQWRkZWQgZm9yIHJlc2V0dGluZyB0eXBlLWFoZWFkIHRpbWVyLgor
ICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oOgorICAg
ICAgICAoRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KTogQWRkZWQgZGlkQmx1cigpIGFuZCBk
aWRGb2N1cygpIGRlY2xhcmF0aW9ucy4KKwogMjAxMi0wOC0yOSAgQWFyb24gQ29sd2VsbCAgPGFj
b2x3ZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgV2ViS2l0IHByZWZpeCB0byBNZWRp
YVNvdXJjZSwgU291cmNlQnVmZmVyLCAmIFNvdXJjZUJ1ZmZlckxpc3QgRE9NV2luZG93IGNvbnN0
cnVjdG9yIGF0dHJpYnV0ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRl
eCA1ODYxMDMyMzExNWNhMzEyNGU1MGNkODg3ZWQ3MTJiM2E2YzU5ZGI5Li5mOTY5OGI4YTdiNTE2
Nzg5Mzk2MWI1OTdkMDU1NGUyNGEyZjc2MjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0
VHlwZS5jcHAKQEAgLTEyNCw5ICsxMjQsMjIgQEAgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0
Q29udHJvbE93bmVySW1wbDo6fkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoKQogewogfQog
Ci12b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVkaXRD
b250cm9sTW91c2VGb2N1cygpCit2b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRy
b2xPd25lckltcGw6OmRpZEJsdXJGcm9tQ29udHJvbCgpCiB7Ci0gICAgbV90aW1lSW5wdXRUeXBl
LmVsZW1lbnQoKS0+Zm9jdXMoKTsKKyAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGNhbGwgYmx1cigp
LiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGNvbnRyb2wKKyAgICAvLyBsb3N0IGZvY3Vz
LgorCisgICAgLy8gUmVtb3ZlIGZvY3VzIHJpbmcgYnkgQ1NTICJmb2N1cyIgcHNldWRvIGNsYXNz
LgorICAgIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPnNldEZvY3VzKGZhbHNlKTsKK30KKwor
dm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRGb2N1
c0Zyb21Db250cm9sKCkKK3sKKyAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGNhbGwgZm9jdXMoKS4g
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBjb250cm9sCisgICAgLy8gZ290IGZvY3VzLgor
CisgICAgLy8gQWRkIGZvY3VzIHJpbmcgYnkgQ1NTICJmb2N1cyIgcHNldWRvIGNsYXNzLgorICAg
IG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPnNldEZvY3VzKHRydWUpOwogfQogCiB2b2lkIFRp
bWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVkaXRDb250cm9sVmFs
dWVDaGFuZ2VkKCkKQEAgLTEzOCwxMSArMTUxLDkgQEAgdm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRl
VGltZUVkaXRDb250cm9sT3duZXJJbXBsOjplZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpCiAgICAg
aW5wdXQtPmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogfQogCi12b2lkIFRpbWVJ
bnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmZvY3VzQW5kU2VsZWN0RWRp
dENvbnRyb2xPd25lcigpCitib29sIFRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZvY3VzTG9naWMo
KSBjb25zdAogewotICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChtX3RpbWVJbnB1
dFR5cGUuZWxlbWVudCgpKTsKLSAgICBpbnB1dC0+Zm9jdXMoKTsKLSAgICBpbnB1dC0+c2VsZWN0
KCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1l
RWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lckRpc2FibGVkKCkgY29uc3QK
QEAgLTE1MCwxMSArMTYxLDYgQEAgYm9vbCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250
cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJEaXNhYmxlZCgpIGMKICAgICByZXR1cm4g
bV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+cmVhZE9ubHkoKTsKIH0KIAotYm9vbCBUaW1lSW5w
dXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJG
b2N1c2VkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+
Zm9jdXNlZCgpOwotfQotCiBib29sIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xP
d25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5KCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+ZGlzYWJsZWQoKTsKQEAgLTE3Myw2ICsxNzks
MTIgQEAgVGltZUlucHV0VHlwZTo6flRpbWVJbnB1dFR5cGUoKQogICAgICAgICBtX2RhdGVUaW1l
RWRpdEVsZW1lbnQtPnJlbW92ZUVkaXRDb250cm9sT3duZXIoKTsKIH0KIAordm9pZCBUaW1lSW5w
dXRUeXBlOjpibHVyKCkKK3sKKyAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQorICAgICAg
ICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmJsdXJCeU93bmVyKCk7Cit9CisKIFJlbmRlck9iamVj
dCogVGltZUlucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5k
ZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZTo6Y3JlYXRlUmVu
ZGVyZXIoYXJlbmEsIHN0eWxlKTsKQEAgLTE5Nyw2ICsyMDksMTIgQEAgdm9pZCBUaW1lSW5wdXRU
eXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiAgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
OjpkZXN0cm95U2hhZG93U3VidHJlZSgpOwogfQogCit2b2lkIFRpbWVJbnB1dFR5cGU6OmZvY3Vz
KGJvb2wpCit7CisgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICAgICAgbV9kYXRl
VGltZUVkaXRFbGVtZW50LT5mb2N1c0J5T3duZXIoKTsKK30KKwogdm9pZCBUaW1lSW5wdXRUeXBl
Ojpmb3J3YXJkRXZlbnQoRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChtX2RhdGVUaW1lRWRpdEVs
ZW1lbnQpCkBAIC0yMTQsMjUgKzIzMiwxNCBAQCB2b2lkIFRpbWVJbnB1dFR5cGU6OmhhbmRsZUtl
eWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICBmb3J3YXJkRXZlbnQoZXZlbnQp
OwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQq
IGV2ZW50KQotewotICAgIGlmIChlbGVtZW50KCktPmRpc2FibGVkKCkgfHwgZWxlbWVudCgpLT5y
ZWFkT25seSgpIHx8ICFlbGVtZW50KCktPnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCi0gICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxl
bWVudC0+Zm9jdXMoKTsKLQotICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotfQotCiBi
b29sIFRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIGVsZW1lbnQoKS0+aXNUZXh0Rm9ybUNvbnRyb2xGb2N1c2FibGUo
KTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgVGltZUlucHV0VHlwZTo6aXNNb3VzZUZv
Y3VzYWJsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVsZW1lbnQoKS0+aXNUZXh0Rm9ybUNvbnRy
b2xGb2N1c2FibGUoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHZvaWQgVGltZUlucHV0VHlw
ZTo6bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBl
LmgKaW5kZXggZWU4NzdkY2YxZDZjY2NkZjViMTc0NWIxMWNjZjkwOTk1OWNmZTM0Ny4uOWVlYTVi
N2NmZTQ0YzczNjdhYjI1MDQ2OTk2NGZiZmRlOTYxY2I0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1l
SW5wdXRUeXBlLmgKQEAgLTY4LDExICs2OCwxMCBAQCBwcml2YXRlOgogICAgICAgICB2aXJ0dWFs
IH5EYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKCk7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xNb3VzZUZvY3VzKCkgT1ZFUlJJREUgRklOQUw7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRCbHVyRnJvbUNvbnRyb2woKSBPVkVSUklERSBGSU5BTDsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZvY3VzRnJvbUNvbnRyb2woKSBPVkVSUklERSBGSU5B
TDsKICAgICAgICAgdmlydHVhbCB2b2lkIGVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCkgT1ZFUlJJ
REUgRklOQUw7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1c0FuZFNlbGVjdEVkaXRDb250cm9s
T3duZXIoKSBPVkVSUklERSBGSU5BTDsKICAgICAgICAgdmlydHVhbCBib29sIGlzRWRpdENvbnRy
b2xPd25lckRpc2FibGVkKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgICAgIHZpcnR1YWwg
Ym9vbCBpc0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJSZWFkT25seSgpIGNvbnN0IE9W
RVJSSURFIEZJTkFMOwogCiAgICAgICAgIFRpbWVJbnB1dFR5cGUmIG1fdGltZUlucHV0VHlwZTsK
QEAgLTgxLDEzICs4MCwxNSBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBEYXRlVGltZUVk
aXRDb250cm9sT3duZXJJbXBsOwogCiAgICAgLy8gSW5wdXRUeXBlIGZ1bmN0aW9ucworICAgIHZp
cnR1YWwgdm9pZCBibHVyKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBjb25zdCBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIE9WRVJS
SURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U2hhZG93U3VidHJlZSgpIE9WRVJS
SURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBP
VkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlv
dXNTZWxlY3Rpb24pIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBmb3J3YXJkRXZl
bnQoRXZlbnQqKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRE9NQWN0
aXZhdGVFdmVudChFdmVudCopIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1
YWwgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAgICAg
dmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IE9W
RVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBib29sIGlzVGV4dEZpZWxkKCkgY29uc3QgT1ZF
UlJJREUgRklOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUVkaXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RWRpdEVsZW1lbnQuY3BwCmluZGV4IDQ0YTFjMmIwYTU2MWUyNjNiZTAyZmU5MDEwZjE2ZmNjMjA0
NThmY2QuLmUxNjYyODRlNzA2NGU5NTdjZDAxYTViNDY4NjJhMTE2ODM1MGZjMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCkBA
IC0xOTUsNyArMTk1LDYgQEAgRGF0ZVRpbWVFZGl0RWxlbWVudDo6RGF0ZVRpbWVFZGl0RWxlbWVu
dChEb2N1bWVudCogZG9jdW1lbnQsIEVkaXRDb250cm9sT3duZXImIGUKICAgICA6IEhUTUxEaXZF
bGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCiAgICAgLCBtX2VkaXRDb250cm9sT3duZXIoJmVkaXRD
b250cm9sT3duZXIpCiAgICAgLCBtX3NwaW5CdXR0b24oMCkKLSAgICAsIG1fZm9jdXNGaWVsZElu
ZGV4KGludmFsaWRGaWVsZEluZGV4KQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBkYXRlVGltZUVkaXRQc2V1ZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQiKSk7
CiAgICAgc2V0U2hhZG93UHNldWRvSWQoZGF0ZVRpbWVFZGl0UHNldWRvSWQpOwpAQCAtMjE4LDEy
ICsyMTcsMzAgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjphZGRGaWVsZChQYXNzUmVmUHRy
PERhdGVUaW1lRmllbGRFbGVtZW50PiBmaWVsZCkKICAgICBhcHBlbmRDaGlsZChmaWVsZCk7CiB9
CiAKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Ymx1ckJ5T3duZXIoKQoreworICAgIGlmIChE
YXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmb2N1c2VkRmllbGQoKSkKKyAgICAgICAgZmll
bGQtPmJsdXIoKTsKK30KKwogUGFzc1JlZlB0cjxEYXRlVGltZUVkaXRFbGVtZW50PiBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBFZGl0Q29udHJvbE93bmVy
JiBlZGl0Q29udHJvbE93bmVyKQogewogICAgIFJlZlB0cjxEYXRlVGltZUVkaXRFbGVtZW50PiBj
b250YWluZXIgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVFZGl0RWxlbWVudChkb2N1bWVudCwgZWRp
dENvbnRyb2xPd25lcikpOwogICAgIHJldHVybiBjb250YWluZXIucmVsZWFzZSgpOwogfQogCit2
b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRpZEJsdXJGcm9tRmllbGQoKQoreworICAgIGlmICht
X2VkaXRDb250cm9sT3duZXIpCisgICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZGlkQmx1ckZy
b21Db250cm9sKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGlkRm9jdXNGcm9t
RmllbGQoKQoreworICAgIGlmIChtX2VkaXRDb250cm9sT3duZXIpCisgICAgICAgIG1fZWRpdENv
bnRyb2xPd25lci0+ZGlkRm9jdXNGcm9tQ29udHJvbCgpOworfQorCiB2b2lkIERhdGVUaW1lRWRp
dEVsZW1lbnQ6OmRpc2FibGVkU3RhdGVDaGFuZ2VkKCkKIHsKICAgICB1cGRhdGVVSVN0YXRlKCk7
CkBAIC0yMzQsNzMgKzI1MSw0MiBAQCBEYXRlVGltZUZpZWxkRWxlbWVudCogRGF0ZVRpbWVFZGl0
RWxlbWVudDo6ZmllbGRBdChzaXplX3QgZmllbGRJbmRleCkgY29uc3QKICAgICByZXR1cm4gZmll
bGRJbmRleCA8IG1fZmllbGRzLnNpemUoKSA/IG1fZmllbGRzW2ZpZWxkSW5kZXhdIDogMDsKIH0K
IAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25Pd25l
cigpCitzaXplX3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRJbmRleE9mKGNvbnN0IERhdGVU
aW1lRmllbGRFbGVtZW50JiBmaWVsZCkgY29uc3QKIHsKLSAgICBpZiAoIW1fZWRpdENvbnRyb2xP
d25lcikKLSAgICAgICAgcmV0dXJuOwotICAgIG1fZWRpdENvbnRyb2xPd25lci0+Zm9jdXNBbmRT
ZWxlY3RFZGl0Q29udHJvbE93bmVyKCk7CisgICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9IDA7
IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkgeworICAgICAgICBp
ZiAobV9maWVsZHNbZmllbGRJbmRleF0gPT0gJmZpZWxkKQorICAgICAgICAgICAgcmV0dXJuIGZp
ZWxkSW5kZXg7CisgICAgfQorICAgIHJldHVybiBpbnZhbGlkRmllbGRJbmRleDsKIH0KIAotdm9p
ZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0ZpZWxkQXQoc2l6ZV90IG5ld0ZvY3VzRmllbGRJ
bmRleCkKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNBbmRTZWxlY3RTcGluQnV0dG9u
T3duZXIoKQogewotICAgIGlmIChtX2ZvY3VzRmllbGRJbmRleCA9PSBuZXdGb2N1c0ZpZWxkSW5k
ZXgpCi0gICAgICAgIHJldHVybjsKLQotICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBu
ZXdGb2N1c0ZpZWxkID0gZmllbGRBdChuZXdGb2N1c0ZpZWxkSW5kZXgpOwotICAgIGlmIChuZXdG
b2N1c0ZpZWxkICYmIG5ld0ZvY3VzRmllbGQtPmlzUmVhZE9ubHkoKSkKKyAgICBpZiAoZm9jdXNl
ZEZpZWxkSW5kZXgoKSAhPSBpbnZhbGlkRmllbGRJbmRleCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGN1cnJlbnRGb2N1c0ZpZWxkID0gZmllbGRB
dChtX2ZvY3VzRmllbGRJbmRleCk7Ci0KLSAgICBpZiAoY3VycmVudEZvY3VzRmllbGQpCi0gICAg
ICAgIGN1cnJlbnRGb2N1c0ZpZWxkLT5zZXRGb2N1cyhmYWxzZSk7Ci0KLSAgICBpZiAoIW5ld0Zv
Y3VzRmllbGQpIHsKLSAgICAgICAgbV9mb2N1c0ZpZWxkSW5kZXggPSBpbnZhbGlkRmllbGRJbmRl
eDsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fZm9jdXNGaWVsZEluZGV4ID0gbmV3
Rm9jdXNGaWVsZEluZGV4OwotICAgIG5ld0ZvY3VzRmllbGQtPnNldEZvY3VzKHRydWUpOworICAg
IGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmaWVsZEF0KDApKQorICAgICAgICBm
aWVsZC0+Zm9jdXMoKTsKIH0KIAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpoYW5kbGVLZXli
b2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGtleWJvYXJkRXZlbnQpCit2b2lkIERhdGVUaW1lRWRp
dEVsZW1lbnQ6OmZvY3VzQnlPd25lcigpCiB7Ci0gICAgaWYgKGlzRGlzYWJsZWQoKSB8fCBpc1Jl
YWRPbmx5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghZmllbGRBdChtX2ZvY3VzRmll
bGRJbmRleCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChrZXlib2FyZEV2ZW50LT50eXBl
KCkgIT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Y29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyID0ga2V5Ym9hcmRFdmVudC0+a2V5SWRlbnRpZmll
cigpOwotCi0gICAgaWYgKGtleUlkZW50aWZpZXIgPT0gIkxlZnQiKSB7Ci0gICAgICAgIGtleWJv
YXJkRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBmaWVs
ZEluZGV4ID0gcHJldmlvdXNGaWVsZEluZGV4KCk7Ci0gICAgICAgIGlmIChmaWVsZEF0KGZpZWxk
SW5kZXgpKQotICAgICAgICAgICAgZm9jdXNGaWVsZEF0KGZpZWxkSW5kZXgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQorICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmaWVs
ZEF0KDApKQorICAgICAgICBmaWVsZC0+Zm9jdXMoKTsKK30KIAotICAgIGlmIChrZXlJZGVudGlm
aWVyID09ICJSaWdodCIpIHsKLSAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRs
ZWQoKTsKLSAgICAgICAgY29uc3Qgc2l6ZV90IGZpZWxkSW5kZXggPSBuZXh0RmllbGRJbmRleCgp
OwotICAgICAgICBpZiAoZmllbGRBdChmaWVsZEluZGV4KSkKLSAgICAgICAgICAgIGZvY3VzRmll
bGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0RhdGVUaW1lRmllbGRF
bGVtZW50KiBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c2VkRmllbGQoKSBjb25zdAoreworICAg
IHJldHVybiBmaWVsZEF0KGZvY3VzZWRGaWVsZEluZGV4KCkpOworfQogCi0gICAgaWYgKGtleUlk
ZW50aWZpZXIgPT0gIlUrMDAwOSIpIHsKLSAgICAgICAgY29uc3Qgc2l6ZV90IGZpZWxkSW5kZXgg
PSBrZXlib2FyZEV2ZW50LT5nZXRNb2RpZmllclN0YXRlKCJTaGlmdCIpID8gcHJldmlvdXNGaWVs
ZEluZGV4KCkgOiBuZXh0RmllbGRJbmRleCgpOwotICAgICAgICBpZiAoZmllbGRBdChmaWVsZElu
ZGV4KSkgewotICAgICAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsK
LSAgICAgICAgICAgIGZvY3VzRmllbGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQorc2l6ZV90IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzZWRGaWVsZElu
ZGV4KCkgY29uc3QKK3sKKyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRl
eCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KSB7CisgICAgICAgIGlmIChtX2ZpZWxk
c1tmaWVsZEluZGV4XS0+Zm9jdXNlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZpZWxkSW5kZXg7
CiAgICAgfQorICAgIHJldHVybiBpbnZhbGlkRmllbGRJbmRleDsKIH0KIAogdm9pZCBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpmaWVsZFZhbHVlQ2hhbmdlZCgpCkBAIC0zMDksMzAgKzI5NSwzNCBAQCB2
b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkVmFsdWVDaGFuZ2VkKCkKICAgICAgICAgbV9l
ZGl0Q29udHJvbE93bmVyLT5lZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpOwogfQogCi12b2lkIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQoKQorYm9vbCBEYXRlVGltZUVkaXRF
bGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JiBmaWVs
ZCkKIHsKLSAgICBpZiAobV9mb2N1c0ZpZWxkSW5kZXggIT0gaW52YWxpZEZpZWxkSW5kZXgpCi0g
ICAgICAgIGZvY3VzRmllbGRBdChuZXh0RmllbGRJbmRleCgpKTsKKyAgICBjb25zdCBzaXplX3Qg
c3RhcnRGaWVsZEluZGV4ID0gZmllbGRJbmRleE9mKGZpZWxkKTsKKyAgICBpZiAoc3RhcnRGaWVs
ZEluZGV4ID09IGludmFsaWRGaWVsZEluZGV4KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Zm9yIChzaXplX3QgZmllbGRJbmRleCA9IHN0YXJ0RmllbGRJbmRleCArIDE7IGZpZWxkSW5kZXgg
PCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkgeworICAgICAgICBpZiAoIW1fZmllbGRz
W2ZpZWxkSW5kZXhdLT5pc1JlYWRPbmx5KCkpIHsKKyAgICAgICAgICAgIG1fZmllbGRzW2ZpZWxk
SW5kZXhdLT5mb2N1cygpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6Omhh
bmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogbW91c2VFdmVudCkKK2Jvb2wgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6Zm9jdXNPblByZXZpb3VzRmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQm
IGZpZWxkKQogewotICAgIGlmIChpc0Rpc2FibGVkKCkgfHwgaXNSZWFkT25seSgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAobW91c2VFdmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5t
b3VzZWRvd25FdmVudCB8fCBtb3VzZUV2ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9uKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBOb2RlKiBjb25zdCByZWxhdGVkVGFyZ2V0ID0gbW91c2VFdmVu
dC0+dGFyZ2V0KCktPnRvTm9kZSgpOwotICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBm
aWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKLSAgICAgICAgaWYg
KG1fZmllbGRzW2ZpZWxkSW5kZXhdID09IHJlbGF0ZWRUYXJnZXQpIHsKLSAgICAgICAgICAgIG1v
dXNlRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQo
ZmllbGRJbmRleCk7Ci0gICAgICAgICAgICBpZiAobV9lZGl0Q29udHJvbE93bmVyKQotICAgICAg
ICAgICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZWRpdENvbnRyb2xNb3VzZUZvY3VzKCk7Ci0g
ICAgICAgICAgICBicmVhazsKKyAgICBjb25zdCBzaXplX3Qgc3RhcnRGaWVsZEluZGV4ID0gZmll
bGRJbmRleE9mKGZpZWxkKTsKKyAgICBpZiAoc3RhcnRGaWVsZEluZGV4ID09IGludmFsaWRGaWVs
ZEluZGV4KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgc2l6ZV90IGZpZWxkSW5kZXggPSBz
dGFydEZpZWxkSW5kZXg7CisgICAgd2hpbGUgKGZpZWxkSW5kZXggPiAwKSB7CisgICAgICAgIC0t
ZmllbGRJbmRleDsKKyAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNSZWFkT25s
eSgpKSB7CisgICAgICAgICAgICBtX2ZpZWxkc1tmaWVsZEluZGV4XS0+Zm9jdXMoKTsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBmYWxzZTsK
IH0KIAogYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50Ojppc0Rpc2FibGVkKCkgY29uc3QKQEAgLTM0
NywxMCArMzM3LDkgQEAgYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50Ojppc1JlYWRPbmx5KCkgY29u
c3QKIAogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQoY29uc3QgU3RlcFJhbmdlJiBz
dGVwUmFuZ2UsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlVmFsdWUpCiB7Ci0gICAgc2l6ZV90
IGZvY3VzRmllbGRJbmRleCA9IG1fZm9jdXNGaWVsZEluZGV4OwotICAgIERhdGVUaW1lRmllbGRF
bGVtZW50KiBjb25zdCBmb2N1c0ZpZWxkID0gZmllbGRBdChtX2ZvY3VzRmllbGRJbmRleCk7Ci0g
ICAgY29uc3QgQXRvbWljU3RyaW5nIGZvY3VzRmllbGRJZCA9IGZvY3VzRmllbGQgPyBmb2N1c0Zp
ZWxkLT5zaGFkb3dQc2V1ZG9JZCgpIDogbnVsbEF0b207Ci0gICAgZm9jdXNGaWVsZEF0KGludmFs
aWRGaWVsZEluZGV4KTsKKyAgICBzaXplX3QgZm9jdXNlZEZpZWxkSW5kZXggPSB0aGlzLT5mb2N1
c2VkRmllbGRJbmRleCgpOworICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBmb2N1c2Vk
RmllbGQgPSBmaWVsZEF0KGZvY3VzZWRGaWVsZEluZGV4KTsKKyAgICBjb25zdCBBdG9taWNTdHJp
bmcgZm9jdXNlZEZpZWxkSWQgPSBmb2N1c2VkRmllbGQgPyBmb2N1c2VkRmllbGQtPnNoYWRvd1Bz
ZXVkb0lkKCkgOiBudWxsQXRvbTsKIAogICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIgYnVpbGRlcigq
dGhpcywgc3RlcFJhbmdlLCBkYXRlVmFsdWUpOwogICAgIGNvbnN0IFN0cmluZyBkYXRlVGltZUZv
cm1hdCA9IGJ1aWxkZXIubmVlZFNlY29uZEZpZWxkKCkgPyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4
dCgpIDogbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpOwpAQCAtMzYxLDM3ICszNTAsMTYg
QEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQoY29uc3QgU3RlcFJhbmdlJiBzdGVw
UmFuZ2UsIGNvbnN0IERhdGVDb21wb25lbnQKICAgICBtX3NwaW5CdXR0b24gPSBzcGluQnV0dG9u
LmdldCgpOwogICAgIGFwcGVuZENoaWxkKHNwaW5CdXR0b24pOwogCi0gICAgaWYgKGZvY3VzRmll
bGRJbmRleCAhPSBpbnZhbGlkRmllbGRJbmRleCkgeworICAgIGlmIChmb2N1c2VkRmllbGRJbmRl
eCAhPSBpbnZhbGlkRmllbGRJbmRleCkgewogICAgICAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4
ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KSB7Ci0gICAg
ICAgICAgICBpZiAobV9maWVsZHNbZmllbGRJbmRleF0tPnNoYWRvd1BzZXVkb0lkKCkgPT0gZm9j
dXNGaWVsZElkKSB7Ci0gICAgICAgICAgICAgICAgZm9jdXNGaWVsZEluZGV4ID0gZmllbGRJbmRl
eDsKKyAgICAgICAgICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4XS0+c2hhZG93UHNldWRvSWQo
KSA9PSBmb2N1c2VkRmllbGRJZCkgeworICAgICAgICAgICAgICAgIGZvY3VzZWRGaWVsZEluZGV4
ID0gZmllbGRJbmRleDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQotICAgICAgICBmb2N1c0ZpZWxkQXQoc3RkOjptaW4oZm9jdXNGaWVsZEluZGV4LCBt
X2ZpZWxkcy5zaXplKCkgLSAxKSk7Ci0gICAgfQotfQotCi1zaXplX3QgRGF0ZVRpbWVFZGl0RWxl
bWVudDo6bmV4dEZpZWxkSW5kZXgoKSBjb25zdAotewotICAgIEFTU0VSVChtX2ZvY3VzRmllbGRJ
bmRleCAhPSBpbnZhbGlkRmllbGRJbmRleCk7Ci0gICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9
IG1fZm9jdXNGaWVsZEluZGV4ICsgMTsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytm
aWVsZEluZGV4KSB7Ci0gICAgICAgIGlmICghbV9maWVsZHNbZmllbGRJbmRleF0tPmlzUmVhZE9u
bHkoKSkKLSAgICAgICAgICAgIHJldHVybiBmaWVsZEluZGV4OwotICAgIH0KLSAgICByZXR1cm4g
bV9maWVsZHMuc2l6ZSgpOwotfQotCi1zaXplX3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6cHJldmlv
dXNGaWVsZEluZGV4KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9mb2N1c0ZpZWxkSW5kZXggIT0g
aW52YWxpZEZpZWxkSW5kZXgpOwotICAgIHNpemVfdCBmaWVsZEluZGV4ID0gbV9mb2N1c0ZpZWxk
SW5kZXg7Ci0gICAgd2hpbGUgKGZpZWxkSW5kZXggPiAwKSB7Ci0gICAgICAgIC0tZmllbGRJbmRl
eDsKLSAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNSZWFkT25seSgpKQotICAg
ICAgICAgICAgcmV0dXJuIGZpZWxkSW5kZXg7CisgICAgICAgIGlmIChEYXRlVGltZUZpZWxkRWxl
bWVudCogZmllbGQgPSBmaWVsZEF0KHN0ZDo6bWluKGZvY3VzZWRGaWVsZEluZGV4LCBtX2ZpZWxk
cy5zaXplKCkgLSAxKSkpCisgICAgICAgICAgICBmaWVsZC0+Zm9jdXMoKTsKICAgICB9Ci0gICAg
cmV0dXJuIGludmFsaWRGaWVsZEluZGV4OwogfQogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OnJlYWRPbmx5U3RhdGVDaGFuZ2VkKCkKQEAgLTQwMyw0MiArMzcxLDI2IEBAIHZvaWQgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6cmVzZXRMYXlvdXQoKQogewogICAgIG1fZmllbGRzLnNocmluaygwKTsK
ICAgICBtX3NwaW5CdXR0b24gPSAwOwotICAgIG1fZm9jdXNGaWVsZEluZGV4ID0gaW52YWxpZEZp
ZWxkSW5kZXg7CiAgICAgcmVtb3ZlQ2hpbGRyZW4oKTsKIH0KIAogdm9pZCBEYXRlVGltZUVkaXRF
bGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZm9jdXNFdmVudCkgewotICAgICAgICBpZiAoIWlz
RGlzYWJsZWQoKSAmJiAhaXNSZWFkT25seSgpICYmIG1fZm9jdXNGaWVsZEluZGV4ID09IGludmFs
aWRGaWVsZEluZGV4KQotICAgICAgICAgICAgZm9jdXNGaWVsZEF0KDApOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJsdXJF
dmVudCkgewotICAgICAgICBmb2N1c0ZpZWxkQXQoaW52YWxpZEZpZWxkSW5kZXgpOwotICAgICAg
ICByZXR1cm47CisgICAgLy8gSW4gY2FzZSBvZiBjb250cm9sIG93bmVyIGZvcndhcmQgZXZlbnQg
dG8gY29udHJvbCwgZS5nLiBET00KKyAgICAvLyBkaXNwYXRjaEV2ZW50IG1ldGhvZC4KKyAgICBp
ZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkID0gZm9jdXNlZEZpZWxkKCkpIHsKKyAgICAg
ICAgZmllbGQtPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAgICBpZiAoZXZlbnQt
PmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYg
KGV2ZW50LT5pc01vdXNlRXZlbnQoKSkgewotICAgICAgICBoYW5kbGVNb3VzZUV2ZW50KHN0YXRp
Y19jYXN0PE1vdXNlRXZlbnQqPihldmVudCkpOwotICAgIH0gZWxzZSBpZiAoZXZlbnQtPmlzS2V5
Ym9hcmRFdmVudCgpKQotICAgICAgICBoYW5kbGVLZXlib2FyZEV2ZW50KHN0YXRpY19jYXN0PEtl
eWJvYXJkRXZlbnQqPihldmVudCkpOwotCi0gICAgaWYgKGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZm9j
dXNGaWVsZCA9IGZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpOwotICAgIGlmICghZm9jdXNGaWVs
ZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKG1fc3BpbkJ1dHRvbikgewogICAgICAgICBt
X3NwaW5CdXR0b24tPmZvcndhcmRFdmVudChldmVudCk7CiAgICAgICAgIGlmIChldmVudC0+ZGVm
YXVsdEhhbmRsZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmb2N1c0Zp
ZWxkLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICBIVE1MRGl2RWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
c2V0VmFsdWVBc0RhdGUoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21w
b25lbnRzJiBkYXRlKQpAQCAtNDY1LDI2ICs0MTcsMjcgQEAgYm9vbCBEYXRlVGltZUVkaXRFbGVt
ZW50OjpzaG91bGRTcGluQnV0dG9uUmVzcG9uZFRvV2hlZWxFdmVudHMoKQogICAgIGlmICghc2hv
dWxkU3BpbkJ1dHRvblJlc3BvbmRUb01vdXNlRXZlbnRzKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIHJldHVybiAhbV9lZGl0Q29udHJvbE93bmVyIHx8IG1fZWRpdENvbnRyb2xPd25l
ci0+aXNFZGl0Q29udHJvbE93bmVyRm9jdXNlZCgpOworICAgIHJldHVybiBmb2N1c2VkRmllbGRJ
bmRleCgpICE9IGludmFsaWRGaWVsZEluZGV4OwogfQogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1l
bnQ6OnNwaW5CdXR0b25TdGVwRG93bigpCiB7Ci0gICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50
KiBjb25zdCBmb2N1c0ZpZWxkID0gZmllbGRBdChtX2ZvY3VzRmllbGRJbmRleCkpCi0gICAgICAg
IGZvY3VzRmllbGQtPnN0ZXBEb3duKCk7CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBj
b25zdCBmaWVsZCA9IGZvY3VzZWRGaWVsZCgpKQorICAgICAgICBmaWVsZC0+c3RlcERvd24oKTsK
IH0KIAogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcFVwKCkKIHsKLSAg
ICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1f
Zm9jdXNGaWVsZEluZGV4KSkKLSAgICAgICAgZm9jdXNGaWVsZC0+c3RlcFVwKCk7CisgICAgaWYg
KERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBmaWVsZCA9IGZvY3VzZWRGaWVsZCgpKQorICAg
ICAgICBmaWVsZC0+c3RlcFVwKCk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6dXBk
YXRlVUlTdGF0ZSgpCiB7CiAgICAgaWYgKGlzRGlzYWJsZWQoKSB8fCBpc1JlYWRPbmx5KCkpIHsK
ICAgICAgICAgbV9zcGluQnV0dG9uLT5yZWxlYXNlQ2FwdHVyZSgpOwotICAgICAgICBmb2N1c0Zp
ZWxkQXQoaW52YWxpZEZpZWxkSW5kZXgpOworICAgICAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1l
bnQqIGZpZWxkID0gZm9jdXNlZEZpZWxkKCkpCisgICAgICAgICAgICBmaWVsZC0+Ymx1cigpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVFZGl0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0
RWxlbWVudC5oCmluZGV4IDhkOWUwMTVhMjZmNzUwNTgxZTIyOWY2OWUxMzkyOTdiZjZmNjAzNTMu
LmM1YTNjYTM1NjE1OTQ3NGMwY2E4NzMwZmFjZTM5ZWQxZWRlMDg2YmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKQEAgLTUxLDExICs1
MSwxMCBAQCBwdWJsaWM6CiAgICAgY2xhc3MgRWRpdENvbnRyb2xPd25lciB7CiAgICAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIH5FZGl0Q29udHJvbE93bmVyKCk7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCBmb2N1c0FuZFNlbGVjdEVkaXRDb250cm9sT3duZXIoKSA9IDA7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBlZGl0Q29udHJvbE1vdXNlRm9jdXMoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRCbHVyRnJvbUNvbnRyb2woKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGb2N1
c0Zyb21Db250cm9sKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xWYWx1
ZUNoYW5nZWQoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJE
aXNhYmxlZCgpIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIGlzRWRpdENvbnRyb2xP
d25lckZvY3VzZWQoKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250
cm9sT3duZXJSZWFkT25seSgpIGNvbnN0ID0gMDsKICAgICB9OwogCkBAIC02Myw4ICs2MiwxMCBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5EYXRlVGltZUVkaXRFbGVtZW50KCk7CiAgICAgdm9p
ZCBhZGRGaWVsZChQYXNzUmVmUHRyPERhdGVUaW1lRmllbGRFbGVtZW50Pik7CisgICAgdm9pZCBi
bHVyQnlPd25lcigpOwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
KikgT1ZFUlJJREU7CiAgICAgdm9pZCBkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpOworICAgIHZvaWQg
Zm9jdXNCeU93bmVyKCk7CiAgICAgdm9pZCByZWFkT25seVN0YXRlQ2hhbmdlZCgpOwogICAgIHZv
aWQgcmVtb3ZlRWRpdENvbnRyb2xPd25lcigpIHsgbV9lZGl0Q29udHJvbE93bmVyID0gMDsgfQog
ICAgIHZvaWQgcmVzZXRMYXlvdXQoKTsKQEAgLTg5LDE5ICs5MCwyMCBAQCBwcml2YXRlOgogICAg
IERhdGVUaW1lRWRpdEVsZW1lbnQoRG9jdW1lbnQqLCBFZGl0Q29udHJvbE93bmVyJik7CiAKICAg
ICBEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGRBdChzaXplX3QpIGNvbnN0OwotICAgIHZvaWQg
Zm9jdXNGaWVsZEF0KHNpemVfdCk7Ci0gICAgdm9pZCBoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJv
YXJkRXZlbnQqKTsKLSAgICB2b2lkIGhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCopOworICAg
IHNpemVfdCBmaWVsZEluZGV4T2YoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSBjb25zdDsK
KyAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogZm9jdXNlZEZpZWxkKCkgY29uc3Q7CisgICAgc2l6
ZV90IGZvY3VzZWRGaWVsZEluZGV4KCkgY29uc3Q7CiAgICAgYm9vbCBpc0Rpc2FibGVkKCkgY29u
c3Q7CiAgICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdm9pZCBsYXlvdXQoY29uc3Qg
U3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsKLSAgICBzaXplX3QgbmV4dEZpZWxk
SW5kZXgoKSBjb25zdDsKLSAgICBzaXplX3QgcHJldmlvdXNGaWVsZEluZGV4KCkgY29uc3Q7CiAg
ICAgdm9pZCB1cGRhdGVVSVN0YXRlKCk7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudDo6
RmllbGRPd25lciBmdW5jdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGRpZEJsdXJGcm9tRmllbGQo
KSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXNGcm9tRmllbGQoKSBP
VkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZmllbGRWYWx1ZUNoYW5nZWQoKSBPVkVS
UklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNPbk5leHRGaWVsZCgpIE9WRVJSSURF
IEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBmb2N1c09uTmV4dEZpZWxkKGNvbnN0IERhdGVUaW1l
RmllbGRFbGVtZW50JikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIGZvY3VzT25Q
cmV2aW91c0ZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgT1ZFUlJJREUgRklOQUw7
CiAKICAgICAvLyBTcGluQnV0dG9uRWxlbWVudDo6U3BpbkJ1dHRvbk93bmVyIGZ1bmN0aW9ucy4K
ICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNBbmRTZWxlY3RTcGluQnV0dG9uT3duZXIoKSBPVkVSUklE
RSBGSU5BTDsKQEAgLTExMyw3ICsxMTUsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxEYXRlVGlt
ZUZpZWxkRWxlbWVudCosIG1heGltdW1OdW1iZXJPZkZpZWxkcz4gbV9maWVsZHM7CiAgICAgRWRp
dENvbnRyb2xPd25lciogbV9lZGl0Q29udHJvbE93bmVyOwogICAgIFNwaW5CdXR0b25FbGVtZW50
KiBtX3NwaW5CdXR0b247Ci0gICAgc2l6ZV90IG1fZm9jdXNGaWVsZEluZGV4OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwCmluZGV4IDlkNTZkOWJmODdlMTQ0YjhiZDVlNTYyMGMw
ODc0YzM1ZGUxNmIxNDguLmY5Yjk4NGRkMDJhNzFiZjM1N2IwZDNmOWY1NDE0ZWY2YTg3ZmE0YmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxl
bWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNs
dWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTQ4LDYgKzQ5LDEyIEBAIERhdGVUaW1lRmllbGRFbGVtZW50OjpEYXRlVGltZUZp
ZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkCiAKIHZvaWQg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQog
eworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQpCisgICAg
ICAgIGRpZEJsdXIoKTsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5m
b2N1c0V2ZW50KQorICAgICAgICBkaWRGb2N1cygpOworCiAgICAgaWYgKGV2ZW50LT5pc0tleWJv
YXJkRXZlbnQoKSkgewogICAgICAgICBLZXlib2FyZEV2ZW50KiBrZXlib2FyZEV2ZW50ID0gc3Rh
dGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KTsKICAgICAgICAgaGFuZGxlS2V5Ym9hcmRF
dmVudChrZXlib2FyZEV2ZW50KTsKQEAgLTc0LDYgKzgxLDIyIEBAIHZvaWQgRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBrZXli
b2FyZEV2CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoa2V5SWRlbnRpZmllciA9
PSAiTGVmdCIpIHsKKyAgICAgICAgaWYgKCFtX2ZpZWxkT3duZXIpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGlmIChtX2ZpZWxkT3duZXItPmZvY3VzT25QcmV2aW91c0ZpZWxkKCp0aGlz
KSkKKyAgICAgICAgICAgIGtleWJvYXJkRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiUmlnaHQiKSB7
CisgICAgICAgIGlmICghbV9maWVsZE93bmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBpZiAobV9maWVsZE93bmVyLT5mb2N1c09uTmV4dEZpZWxkKCp0aGlzKSkKKyAgICAgICAgICAg
IGtleWJvYXJkRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiVXAiKSB7CiAgICAgICAgIGtleWJvYXJk
RXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgIHN0ZXBVcCgpOwpAQCAtODcsMTAg
KzExMCwyMyBAQCB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50OjpkZWZhdWx0S2V5Ym9hcmRFdmVu
dEhhbmRsZXIoS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdgogICAgIH0KIH0KIAotdm9pZCBEYXRl
VGltZUZpZWxkRWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCgpCit2b2lkIERhdGVUaW1lRmllbGRF
bGVtZW50OjpkaWRCbHVyKCkKK3sKKyAgICBpZiAobV9maWVsZE93bmVyKQorICAgICAgICBtX2Zp
ZWxkT3duZXItPmRpZEJsdXJGcm9tRmllbGQoKTsKK30KKwordm9pZCBEYXRlVGltZUZpZWxkRWxl
bWVudDo6ZGlkRm9jdXMoKQogewogICAgIGlmIChtX2ZpZWxkT3duZXIpCi0gICAgICAgIG1fZmll
bGRPd25lci0+Zm9jdXNPbk5leHRGaWVsZCgpOworICAgICAgICBtX2ZpZWxkT3duZXItPmRpZEZv
Y3VzRnJvbUZpZWxkKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmZvY3VzT25O
ZXh0RmllbGQoKQoreworICAgIGlmICghbV9maWVsZE93bmVyKQorICAgICAgICByZXR1cm47Cisg
ICAgbV9maWVsZE93bmVyLT5mb2N1c09uTmV4dEZpZWxkKCp0aGlzKTsKIH0KIAogdm9pZCBEYXRl
VGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1Bz
ZXVkb0lkKQpAQCAtOTksNiArMTM1LDExIEBAIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6Omlu
aXRpYWxpemUoY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCkKICAgICBhcHBlbmRD
aGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgdmlzaWJsZVZhbHVlKCkpKTsKIH0KIAorYm9v
bCBEYXRlVGltZUZpZWxkRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAoreworICAgIHJldHVy
biAhaXNSZWFkT25seSgpOworfQorCiBib29sIERhdGVUaW1lRmllbGRFbGVtZW50Ojppc1JlYWRP
bmx5KCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFzdEhhc0F0dHJpYnV0ZShyZWFkb25seUF0dHIp
OwpAQCAtMTExLDYgKzE1MiwxMSBAQCB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50OjpzZXRSZWFk
T25seSgpCiAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogfQogCitib29sIERhdGVUaW1lRmll
bGRFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwogdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJsZVZhbHVlKEV2ZW50QmVo
YXZpb3IgZXZlbnRCZWhhdmlvcikKIHsKICAgICBUZXh0KiBjb25zdCB0ZXh0Tm9kZSA9IHRvVGV4
dChmaXJzdENoaWxkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50LmgKaW5kZXggY2QzOWUyOGEzOTQ0OWNhNGI4YzQ1MzBkNmI5ZTY0NjY3
ZGM0ZmM0NS4uYzBjM2RkZDExOWFlMTRjODNhNmU0MDczMDU1ZGM4MzkzNmU3OWZkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCkBA
IC01MCw3ICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5G
aWVsZE93bmVyKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBmaWVsZFZhbHVlQ2hhbmdlZCgpID0g
MDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzT25OZXh0RmllbGQoKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRCbHVyRnJvbUZpZWxkKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkRm9jdXNGcm9tRmllbGQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgYm9vbCBmb2N1c09u
TmV4dEZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgPSAwOworICAgICAgICB2aXJ0
dWFsIGJvb2wgZm9jdXNPblByZXZpb3VzRmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQm
KSA9IDA7CiAgICAgfTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50KikgT1ZFUlJJREU7CkBAIC03MCw2ICs3Myw4IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgog
ICAgIERhdGVUaW1lRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYpOworICAgIHZp
cnR1YWwgdm9pZCBkaWRCbHVyKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZEZvY3VzKCk7CiAgICAg
dm9pZCBmb2N1c09uTmV4dEZpZWxkKCk7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJk
RXZlbnQoS2V5Ym9hcmRFdmVudCopID0gMDsKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQXRv
bWljU3RyaW5nJik7CkBAIC03OCw2ICs4Myw4IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAg
ICB2b2lkIGRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7CisgICAg
dmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKIAogICAgIEZp
ZWxkT3duZXIqIG1fZmllbGRPd25lcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcAppbmRleCBhNDA1
M2I1Nzc1ZjRiNWM0MDExNDU0Yjg3NDI1MWVlMTE1ZGZkZjBhLi5iYTlmNTI3Njk5NGUzMDkwNjMz
ZGZhNjZiOTZhZjdiMTBiYWI3NzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKQEAgLTcyLDYgKzcy
LDE4IEBAIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllCiB7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50OjpkaWRCbHVyKCkKK3sKKyAgICBtX2xhc3REaWdpdENoYXJUaW1lID0g
MDsKKyAgICBEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGlkQmx1cigpOworfQorCit2b2lkIERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6ZGlkRm9jdXMoKQoreworICAgIG1fbGFzdERpZ2l0Q2hh
clRpbWUgPSAwOworICAgIERhdGVUaW1lRmllbGRFbGVtZW50OjpkaWRGb2N1cygpOworfQorCiB2
b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXli
b2FyZEV2ZW50KiBrZXlib2FyZEV2ZW50KQogewogICAgIGlmIChpc1JlYWRPbmx5KCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudC5oCmluZGV4IDM3MTliYzEzMGUzMWIzNzQ2YjMzOWY3OWNkMzIwZDc1YjQzZTFmYjYu
LmQ0MWExYzNhYTdlYzkxOTI4MjZlYzM1YzhhZWU3ODYzZDVmYjNmNWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dC5oCkBAIC02Myw2ICs2Myw4IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICAvLyBEYXRl
VGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGRpZEJsdXIoKSBP
VkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXMoKSBPVkVSUklERSBGSU5B
TDsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50Kikg
T1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkLCBFdmVudEJlaGF2aW9yKSBPVkVSUklE
RSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc3RlcERvd24oKSBPVkVSUklERSBGSU5BTDsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1ODkzMWJkZDNkZmIzZGZiNTdlM2NjNjA0YmYyNDM0MTdlNmU1ZjQzLi4yMWQwOTVkNTAz
ZTE5YjZhYTI2Mjc4OTNhM2FhYzk2Y2Q0Y2M0NDk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTItMDgtMzAgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbRm9ybXNdIFNoaWZ0K1RhYiBzaG91bGQgZm9jdXMgdGhlIGxhc3QgZmllbGQgb2YgbXVsdGlw
bGUgZmllbGRzIHRpbWUgaW5wdXQgVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk1MTY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGZvY3VzIGFuZCBibHVyIGV2ZW50IGhhbmRs
aW5nIHRlc3QgYW5kIGEgbmV3IHRlc3QgY2FzZQorICAgICAgICBmb3IgU2hpZnQrVGFiIGZvciBt
dWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAgICAgICAqIHRpbWUtbXVsdGlwbGUt
ZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHRpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sOiBBZGRl
ZCBmb3IgYmx1ciBhbmQgZm9jdXMgZXZlbnRzIGhhbmRsaW5nLgorICAgICAgICAqIGZhc3QvZm9y
bXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZl
bnRzLmh0bWw6IENoYW5nZWQgdG8gYWRkIGEgdGVzdCBjYXNlcyBmb3IgU2hpZnQrVGFiLgorCiAy
MDEyLTA4LTI5ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW1Rlc3RzXSBBZGQgdGVzdCBjYXNlIGZvciByaWdodC10by1sZWZ0IHJlbmRlcmluZyBvZiBt
dWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1ibHVyLWFu
ZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1l
LW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1ldmVu
dHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMjM5MjE4N2M1ZWUwZTYwMzYxYmQxNDFlZWMw
YzZmYTUxZjIxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Rp
bWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2
ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorQ2hlY2sgYmx1ciBhbmQgZm9jdXMg
ZXZlbnRzIGZvciBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSQorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworZm9jdXMoKSBhbmQgYmx1cigpCitQQVNTIHRlc3RJbnB1dC5mb2N1
cygpOyBzdGF0ZSgpIGlzICJibHVyPTAgZm9jdXM9MSIKK1BBU1MgdGVzdElucHV0LmJsdXIoKTsg
c3RhdGUoKSBpcyAiYmx1cj0xIGZvY3VzPTEiCitmb2N1cyBhbmQgVGFiIGtleSB0byBibHVyCitQ
QVNTIGtleURvd24oIgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0wIGZvY3VzPTEiCitQQVNTIGtleURv
d24oIgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0wIGZvY3VzPTEiCitQQVNTIGtleURvd24oIgkiKTsg
c3RhdGUoKSBpcyAiYmx1cj0wIGZvY3VzPTEiCitQQVNTIGtleURvd24oIgkiKTsgc3RhdGUoKSBp
cyAiYmx1cj0xIGZvY3VzPTEiCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUt
bXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1l
LW11bHRpcGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
N2MxMTc5MjY4YjVjMTE1ZjAxNTRhM2JhZmU3NjNjNzE4NjFiNWY3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRp
cGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1ldmVudHMuaHRtbApAQCAtMCwwICsxLDYxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBp
ZD0iY29udGFpbmVyIj4KKzxpbnB1dCBpZD0iYmVmb3JlIj4KKzxpbnB1dCBpZD0idGVzdCIgdHlw
ZT0idGltZSIgdmFsdWU9IjEyOjM0Ij4KKzxpbnB1dCBpZD0iYWZ0ZXIiPgorPC9kaXY+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oJ0NoZWNrIGJsdXIgYW5kIGZvY3VzIGV2ZW50cyBmb3IgbXVsdGlw
bGUgZmllbGRzIHRpbWUgaW5wdXQgVUknKTsKKwordmFyIGJsdXJDb3VudGVyID0gMDsKK3ZhciBm
b2N1c0NvdW50ZXIgPSAwOworCitmdW5jdGlvbiBrZXlEb3duKGtleSwgbW9kaWZpZXJzKQorewor
ICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICByZXR1cm47CisgICAgZXZlbnRT
ZW5kZXIua2V5RG93bihrZXksIG1vZGlmaWVycyk7Cit9CisKK2Z1bmN0aW9uIHN0YXRlKCkKK3sK
KyAgICByZXR1cm4gJ2JsdXI9JyArIGJsdXJDb3VudGVyICsgJyBmb2N1cz0nICsgZm9jdXNDb3Vu
dGVyOworfQorCit2YXIgdGVzdElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qn
KTsKK3Rlc3RJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgZnVuY3Rpb24gKCkgeyArK2Js
dXJDb3VudGVyOyB9KTsKK3Rlc3RJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0
aW9uICgpIHsgKytmb2N1c0NvdW50ZXI7IH0pOworCitmdW5jdGlvbiBiZWdpblRlc3RDYXNlKHRl
c3RDYXNlTmFtZSkKK3sKKyAgICBkZWJ1Zyh0ZXN0Q2FzZU5hbWUpOworICAgIGJsdXJDb3VudGVy
ID0gMDsKKyAgICBmb2N1c0NvdW50ZXIgPSAwOworfQorCitiZWdpblRlc3RDYXNlKCdmb2N1cygp
IGFuZCBibHVyKCknKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdElucHV0LmZvY3VzKCk7
IHN0YXRlKCknLCAnYmx1cj0wIGZvY3VzPTEnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVz
dElucHV0LmJsdXIoKTsgc3RhdGUoKScsICdibHVyPTEgZm9jdXM9MScpOworCitpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgYmVnaW5UZXN0Q2FzZSgnZm9jdXMgYW5kIFRhYiBrZXkgdG8g
Ymx1cicpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZWZvcmUiKS5mb2N1cygpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygna2V5RG93bigiXHQiKTsgc3RhdGUoKScsICdibHVy
PTAgZm9jdXM9MScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygna2V5RG93bigiXHQiKTsg
c3RhdGUoKScsICdibHVyPTAgZm9jdXM9MScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
a2V5RG93bigiXHQiKTsgc3RhdGUoKScsICdibHVyPTAgZm9jdXM9MScpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygna2V5RG93bigiXHQiKTsgc3RhdGUoKScsICdibHVyPTEgZm9jdXM9MScp
OworfSBlbHNlIHsKKyAgICBkZWJ1ZygnUGxlYXNlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZSBmb3Ig
Zm9jdXMgYW5kIFRhYi1rZXkgdGVzdCBjYXNlJyk7Cit9CisKK2RlYnVnKCcnKTsKK2RvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpKTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11
bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0
ZWQudHh0CmluZGV4IDYxOGE2OTY4MmNlNjIxZDEzZjFmYmZiNTVmYjAzYTNjMDJiYWUwMzYuLjk4
ZDIzNjk5ZjlhZGQ1MzliOTI1NTEwMWI5MDJhMTNlYTA4Y2E5ODMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVs
ZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2
ZW50cy1leHBlY3RlZC50eHQKQEAgLTExLDcgKzExLDcgQEAgTGVmdC9SaWdodCAtIE1vdmUgZm9j
dXMgZmllbGQgaW5zaWRlIGVsZW1lbnQKIFVwL0Rvd24gLSBJbmNyZW1lbnQvZGVjcmVtZW50IHZh
bHVlIG9mIGZvY3VzIGZpZWxkCiBUYWIgLSBNb3ZlIGZvY3VzIGZpZWxkCiBCYWNrc3BhY2UgLSBN
YWtlIHZhbHVlIGVtcHR5Ci0gCisgIAogPT0gRGlnaXQga2V5cyA9PQogUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMDc6NTYiCiA9PSBMZWZ0L1JpZ2h0IGtleXMgPT0KQEAgLTI2LDYgKzI2LDEwIEBAIFBB
U1MgaW5wdXQudmFsdWUgaXMgIjE0OjU4IgogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDM6MDUiCiBQ
QVNTIGlucHV0LnZhbHVlIGlzICIwNzowNSIKIFBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5p
ZCBpcyAiYW5vdGhlciIKKz09IFNoZml0K1RhYiBrZXkgPT0KK1BBU1MgaW5wdXQudmFsdWUgaXMg
IjE1OjAwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTU6MDMiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuaWQgaXMgImJlZm9yZSIKID09IEJhY2tzcGFjZSBrZXkgPT0KIFBBU1MgaW5wdXQu
dmFsdWUgaXMgIiIKID09IERlbGV0ZSBrZXkgPT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9h
cmQtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmll
bGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sCmluZGV4IDdmMzUy
MTJjODMyM2RjZWJjY2FmMzQ5NDM4NDU4YjhjYzA3MzRhYjcuLjFkNThhMTA1YmQ4ZGMzY2E4MDNh
OTgzOTJkNjY1Y2ZhZmMzOTk3ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
dGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90
aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbApAQCAtMTYsNiArMTYsNyBA
QCBUZXN0IGZvbGxvd2luZyBrZXlzOgogICAgIDxsaT5UYWIgLSBNb3ZlIGZvY3VzIGZpZWxkPC9s
aT4KICAgICA8bGk+QmFja3NwYWNlIC0gTWFrZSB2YWx1ZSBlbXB0eTwvbGk+CiA8L3VsPgorPGlu
cHV0IGlkPSJiZWZvcmUiPgogPGlucHV0IGlkPSJpbnB1dCIgdHlwZT0idGltZSI+CiA8aW5wdXQg
aWQ9ImFub3RoZXIiPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CkBAIC05Nyw2ICs5OCwxOCBA
QCBrZXlEb3duKCdcdCcpOwoga2V5RG93bignXHQnKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCcsICdhbm90aGVyJyk7CiAKK2JlZ2luVGVzdCgnU2hm
aXQrVGFiIGtleScsICcwMzowMCcpOworYW5vdGhlci5mb2N1cygpOwora2V5RG93bignXHQnLCBb
J3NoaWZ0S2V5J10pOwora2V5RG93bignUCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1
dC52YWx1ZScsICcxNTowMCcpOwora2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5J10pOwora2V5RG93
bignMycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcxNTowMycpOwor
a2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5J10pOwora2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5J10p
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkJywgJ2Jl
Zm9yZScpOworCiBiZWdpblRlc3QoJ0JhY2tzcGFjZSBrZXknLCAnMTI6MzQnKTsKIGtleURvd24o
IlxiIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJycpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161600</attachid>
            <date>2012-08-30 18:43:35 -0700</date>
            <delta_ts>2012-08-30 19:21:25 -0700</delta_ts>
            <desc>Patch 6</desc>
            <filename>bug-95168-20120831104323.patch</filename>
            <type>text/plain</type>
            <size>40028</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyODk0YzY4YzhmZDM2
M2ZkYTAyNTQzZjljNmMzOWUxZjQ1ODhkNC4uY2NlOTIwN2ZjNWJlOTdiMzdlMjRiYjc0YTYxNGM0
MzhhY2NkNmMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDEyLTA4LTI5ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBTaGlm
dCtUYWIgc2hvdWxkIGZvY3VzIHRoZSBsYXN0IGZpZWxkIG9mIG11bHRpcGxlIGZpZWxkcyB0aW1l
IGlucHV0IFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NTE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggY2hhbmdlcyBmb2N1cyBoYW5kbGluZyBpbiBEYXRlVGltZUVkaXRFbGVtZW50
IGNsYXNzIGZvcgorICAgICAgICBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAg
ICAgICBDdXJyZW50IGltcGxlbWVudGF0aW9uIGNvbnRyb2xzIGZvY3VzIGluIGZpZWxkcyBieSBE
YXRlVGltZUVkaXRFbGVtZW50CisgICAgICAgIGFuZCBhIGZvY3VzIGZpZWxkIGlzIHRyYWNrZWQg
bV9mb2N1c0ZpZWxkSW5kZXggbWVtYmVyIHZhcmlhYmxlLiBJbgorICAgICAgICBjdXJyZW50IGlt
cGxlbWVudGF0aW9uLCBpdCBpcyBoYXJkIHRvIHNldCBmb2N1cyB0byB0aGUgbGFzdCBmaWVsZCB3
aGVuCisgICAgICAgIGl0IGdldHMgZm9jdXMgYnkgU2hpZnQrVGFiLCBiZWNhdXNlIHdlIGRvbid0
IGtub3cgaG93IERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgZ2V0cyBmb2N1cy4KKworICAg
ICAgICBJbiB0aGlzIG5ldyBpbXBsZW1lbnRhdGlvbiwgRGF0ZVRpbWVFZGl0RWxlbWVudCBkb2Vz
bid0IGNvbnRyb2wgZm9jdXMKKyAgICAgICAgcmF0aGVyIEZvY3VzQ29udHJvbGxlciBjbGFzcyBj
b250cm9scyBmb2N1czoKKyAgICAgICAgIC0gV2Ugc2V0IGZvY3VzIHRvIERhdGVUaW1lRmllbGRF
bGVtZW50IGluc3RlYWQgb2YgSFRNTElucHV0RWxlbWVudAorICAgICAgICAgICB3aGljaCBpcyBz
aGFkb3cgaG9zdCBvZiBEYXRlVGltZUVkaXRFbGVtZW50IGZvciBjb250cm9sbGluZyBmb2N1cwor
ICAgICAgICAgICBieSBGb2N1c0NvbnRyb2xsZXIuCisgICAgICAgICAtIEZvY3VzL2JsdXIgZXZl
bnRzIGluIERhdGVUaW1lRmllbGRFbGVtZW50IGFyZSByb3V0ZWQgdG8gSFRNTElucHV0RWxlbWVu
dAorICAgICAgICAgICBieSBzaGFkb3cgRE9NIG1lY2hhbmlzbS4KKyAgICAgICAgIC0gVGltZUlu
cHV0VHlwZSBjbGFzcyBvdmVycmlkZXMgSFRNTElOcHV0RWxlbWVudDo6Ymx1cigpIGFuZCBmb2N1
cygpCisgICAgICAgICAgIGZ1bmN0aW9ucyBmb3IgZGVsZWdhdGluZyBibHVyL2ZvY3VzIGJlaGF2
aW9yIHRvIERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgICAgYnkgY2FsbGluZyBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpibHVyQnlPd25lcigpL2ZvY3VzQnlPd25lcigpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggYWZmZWN0cyBvbmx5IHBvcnRzIHdoaWNoIGVuYWJsZSBib3RoIEVOQUJMRV9JTlBV
VF9UWVBFX1RJTUUKKyAgICAgICAgYW5kIEVOQUJMRV9JTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRz
L3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCisgICAgICAg
IFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgbmV3IHRlc3QgY2FzZSBmb3IgU2hpZnQrVGFiIGludG8g
ZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEJsdXIpOiBBZGRlZCBmb3IgdGhlIGlucHV0IGVsZW1lbnQgbm90IHRvIGJl
IG1hdGNoZWQgImZvY3VzIiBwc2V1ZG8gY2xhc3MgZm9yIHJlbW92aW5nIGZvY3VzIHJpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEZvY3VzKTogIEFkZGVkIGZvciB0aGUgaW5wdXQgZWxlbWVudCB0byBiZSBt
YXRjaGVkICJmb2N1cyIgcHNldWRvIGNsYXNzIGZvciBhZGRpbmcgZm9jdXMgcmluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6
OmVkaXRDb250cm9sTW91c2VGb2N1cyk6IFJlbW92ZWQuIERhdGVUaW1lRWRpdEVsZW1lbnQgbm8g
bG9uZ2VyIHNldCBmb2N1cyB0byBIVE1MSW5wdXRFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6
VGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6aXNFZGl0Q29udHJv
bE93bmVyRm9jdXNlZCk6IFJldm1vZWQuIEZvY3VzQ29udHJvbGxlciBtYW5hZ2VzIGZvY3VzIG5h
dmlnYXRpb24gaW4gZmllbGRzIHJhdGhlciB0aGFuIERhdGVUaW1lRWRpdEVsZW1lbnQuCisgICAg
ICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpibHVyKTogQWRkZWQgZm9yIGRlbGVnYXRpbmcg
Ymx1cigpIGFjdGlvbiB0byBEYXRlVGltZUVkaXRFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6
VGltZUlucHV0VHlwZTo6Zm9jdXMpOiBBZGRlZCBmb3IgZGVsZWdhdGluZyBmb2N1cygpIGFjdGlv
biB0byBEYXRlVGltZUVkaXRFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlw
ZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudCk6IFJlbW92ZWQuIEhUTUxJbnB1dEVsZW1lbnQgZm9y
ICJ0aW1lIiBpbnB1dCB0eXBlIG5vIGxvbmdlciBnZXQgZm9jdXMuCisgICAgICAgIChXZWJDb3Jl
OjpUaW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKTogQWRkZWQgZm9yIGFza2luZyBG
b2N1c0NvbnRyb2xsZXIgdG8gd2FsayBpbnRvIHNoYWRvdyBET00gdHJlZSBvbiBpbnB1dCB0eXBl
ICJ0aW1lIi4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1
c2FibGUpOiBDaGFuZ2VkIGZvciAiaW5wdXQiIGVsZW1lbnQgbm90IHRvIGhhdmUgZm9jdXMuCisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKTogIENoYW5n
ZWQgZm9yICJpbnB1dCIgZWxlbWVudCBub3QgdG8gaGF2ZSBmb2N1cy4KKyAgICAgICAgKiBodG1s
L1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwp
OiBDaGFuZ2VkIGZvciBuZXcgZGVmaW5pdGlvbiBvZiBEYXRlVGltZUVkaXRDb250cm9sT3duZXIu
CisgICAgICAgIChUaW1lSW5wdXRUeXBlKTogQ2hhbmdlZCBmb3IgbmV3IGRlZmluaXRpb24gb2Yg
RGF0ZVRpbWVFZGl0RWxlbWVudC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OkRhdGVU
aW1lRWRpdEVsZW1lbnQpOiBSZW1vdmVkIGRyb3BwZWQgbWVtYmVyIHZhcmlhYmxlIG1fZm9jdXNG
aWVsZEluZGV4LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6Ymx1ckJ5
T3duZXIpOiBBZGRlZCBmb3IgYmx1cigpIGFjdGlvbiBhc2VrZCBieSBvd25lci4KKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmRpZEJsdXJGcm9tRmllbGQpOiBBZGRlZCBm
b3IgY2FsbGluZyBEYXRlVGltZUVkaXRDb250cm9sT3duZXI6OmRpZEJsdXJGcm9tQ29udHJvbCgp
LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGlkRm9jdXNPbkZpZWxk
KTogQWRkZWQgZm9yIGNhbGxpbmcgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVyOjpkaWRGb2N1c09u
Q29udHJvbCgpLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRJ
bmRleE9mKTogQWRkZWQgZm9yIG1hcHBpbmcgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgdG8gZmllbGQg
aW5kZXguCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0J5T3du
ZXIpOiBBZGRlZCBmb3IgZm9jdXMoKSBhY3Rpb24gYXNla2QgYnkgb3duZXIuCisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0ZpZWxkQXQpOiAgUmVtb3ZlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzZWRGaWVsZEluZGV4KTog
QWRkZWQgYXMgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0
RWxlbWVudDo6Zm9jdXNlZEZpZWxkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUVkaXRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKTogQ2hhbmdlZCB0byBwYXNzIGEgZmllbGQg
dG8gZm9jdXNPbk5leHQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6
OmZvY3VzT25QcmV2aW91c0ZpZWxkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUVkaXRFbGVtZW50Ojpmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25Pd25lcik6IENoYW5nZWQgZm9y
IHNldHRpbmcgZm9jdXMgdG8gdGhlIGZpcnN0IGZpZWxkLgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6IFJlbW92ZWQuIE1vdmVkIGhh
bmRsaW5nIG9mIExlZnQvUmlnaHQga2V5cyB0byBEYXRlVGltZUZpZWxkRWxlbWVudC4gUmVtb3Zl
ZCBUYWIta2V5IGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVu
dDo6aGFuZGxlTW91c2VFdmVudCk6IFJlbW92ZWQuIERhdGVUaW1lRWRpdCBkb2Vzbid0IGhhbmRs
ZSBtb3VzZSBjbGljayBzaW5jZSB0aGlzIHBhdGNoLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVFZGl0RWxlbWVudDo6bGF5b3V0KTogQ2hhbmdlZCB0byB1c2UgZm9jdXNGaWVsZEluZGV4KCkg
YW5kIERhdGVUaW1lRmllbGRFbGVtZW50Ojpmb2N1cygpLgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6bmV4dEZpZWxkSW5kZXgpOiBSZW1vdmVkLiBmb2N1c09uTmV4dEZp
ZWxkIGRvZXMgc2FtZXRoaW5nIGFuZCBzZXRzIGZvY3VzLgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6cHJldmlvdXNGaWVsZEluZGV4KTogUmVtb3ZlZC4gZm9jdXNPblBy
ZXZpb3VzRmllbGQgZG9lcyBzYW1ldGhpbmcgYW5kIHNldHMgZm9jdXMuCisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldExheW91dCk6IENoYW5nZWQgdG8gcmVtb3Zl
IG1fZm9jdXNGaWVsZEluZGV4IHZhcmlhYmxlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBDaGFuZ2VkIHRvIHJl
bW92ZSBmb2N1cyBuYXZpZ2F0aW9uIHJlbGF0ZWQgZXZlbnRzLCBibHVlL2ZvY3VzL21vdXNlLCBo
YW5kbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnNob3VsZFNw
aW5CdXR0b25SZXNwb25kVG9XaGVlbEV2ZW50cyk6IENoYW5nZWQgdG8gY2hlY2sgZm9jdXMgZmll
bGQgaW5zdGVhZCBvZiBhc2tpbmcgb3duZXIuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcERvd24pOiBDaGFuZ2VkIHRvIHVzZSBmb2N1c0ZpZWxk
KCkgaW5zdGVhZCBvZiBtX2ZvY3VzRmllbGRJbmRleC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OnNwaW5CdXR0b25TdGVwVXApOiBkaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnVwZGF0ZVVJU3RhdGUpOiBkaXR0by4KKyAgICAgICAg
KiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50Lmg6CisgICAgICAgIChFZGl0Q29udHJv
bE93bmVyKTogQWRkZWQgZGlkQmx1ckZyb21GaWVsZCgpIGFuZCBkaWRGb2N1c09uRmllbGQoKSBm
dW5jdGlvbiBkZWNsYXJhdGlvbnMuIFJlbW92ZWQgZm9jdXNBbmRTZWxlY3RFZGl0Q29udHJvbE93
bmVyLCBpdCB3YXMgdXNlZCBmb3Igc2V0IGZvY3VzIHRvIEhUTUxJbnB1dEVsZW1lbnQsIGFuZCBp
c0VkaXRDb250cm9sT3duZXJGb2N1c2VkLgorICAgICAgICAoRGF0ZVRpbWVFZGl0RWxlbWVudCk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBD
aGFuZ2VkIHRvIGhhbmRsZSBibHVyIGFuZCBmb2N1cyBldmVudHMuCisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKTogQ2hh
bmdlZCB0byBoYW5kbGUgTGVmdC9SaWdodCBrZXlzLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OmRpZEJsdXIpOiBBZGRlZCB0byBjYWxsIEZpZWxkT3duZXI6OmRpZEJs
dXJGcm9tRmllbGQoKSB0byByZW1vdmUgZm9jdXMgcmluZyBmcm9tIG93bmVyIGVsZW1lbnQuCisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGlkRm9jdXMpOiBBZGRlZCB0
byBjYWxsIEZpZWxkT3duZXI6OmRpZEZvY3VzT25GaWVsZCgpICB0byBhZGQgZm9jdXMgcmluZyB0
byBvd25lciBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6
OmZvY3VzT25OZXh0RmllbGQpOiBBZGRlZCBmb3IgbW92aW5nIGZvY3VzIHRvIG5leHQgZmllbGQg
Zm9yIERhdGVUaW1lTnVtYmVyaWNGaWVsZEVsbWVudAorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OmlzRm9jdXNhYmxlKTogQWRkZWQgdG8gbWFrZSBEYXRlVGltZUZpZWxk
RWxlbWVudCBmb2N1c2FibGUuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVu
dDo6c3VwcG9ydHNGb2N1cyk6ICBBZGRlZCB0byBtYWtlIERhdGVUaW1lRmllbGRFbGVtZW50IGZv
Y3VzYWJsZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oOgor
ICAgICAgICAoRmllbGRPd25lcik6IEFkZGVkIGRlY2xhcmF0aW9ucyBmb3IgZm9jdXNhYmxlIGhh
bmRsaW5nLgorICAgICAgICAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOiBkaXR0by4KKyAgICAgICAg
KiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpkaWRCbHVyKTogQWRkZWQgZm9y
IHJlc2V0dGluZyB0eXBlLWFoZWFkIHRpbWVyLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50OjpkaWRGb2N1cyk6IEFkZGVkIGZvciByZXNldHRpbmcgdHlwZS1h
aGVhZCB0aW1lci4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuaDoKKyAgICAgICAgKERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCk6IEFkZGVkIGRp
ZEJsdXIoKSBhbmQgZGlkRm9jdXMoKSBkZWNsYXJhdGlvbnMuCisKIDIwMTItMDgtMjkgIEFhcm9u
IENvbHdlbGwgIDxhY29sd2VsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIFdlYktpdCBw
cmVmaXggdG8gTWVkaWFTb3VyY2UsIFNvdXJjZUJ1ZmZlciwgJiBTb3VyY2VCdWZmZXJMaXN0IERP
TVdpbmRvdyBjb25zdHJ1Y3RvciBhdHRyaWJ1dGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0
VHlwZS5jcHAKaW5kZXggNTg2MTAzMjMxMTVjYTMxMjRlNTBjZDg4N2VkNzEyYjNhNmM1OWRiOS4u
YmJlZWM0MzQzNWE4NzIyMTMyOGFjODYzY2E1YmI3NGIyYTNlMjNiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0xMjQsOSArMTI0LDIyIEBAIFRpbWVJbnB1dFR5cGU6
OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6On5EYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsKCkKIHsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3du
ZXJJbXBsOjplZGl0Q29udHJvbE1vdXNlRm9jdXMoKQordm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRl
VGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRCbHVyRnJvbUNvbnRyb2woKQogewotICAgIG1f
dGltZUlucHV0VHlwZS5lbGVtZW50KCktPmZvY3VzKCk7CisgICAgLy8gV2UgZG9uJ3QgbmVlZCB0
byBjYWxsIGJsdXIoKS4gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBjb250cm9sCisgICAg
Ly8gbG9zdCBmb2N1cy4KKworICAgIC8vIFJlbW92ZSBmb2N1cyByaW5nIGJ5IENTUyAiZm9jdXMi
IHBzZXVkbyBjbGFzcy4KKyAgICBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5zZXRGb2N1cyhm
YWxzZSk7Cit9CisKK3ZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
SW1wbDo6ZGlkRm9jdXNPbkNvbnRyb2woKQoreworICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gY2Fs
bCBmb2N1cygpLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGNvbnRyb2wKKyAgICAvLyBn
b3QgZm9jdXMuCisKKyAgICAvLyBBZGQgZm9jdXMgcmluZyBieSBDU1MgImZvY3VzIiBwc2V1ZG8g
Y2xhc3MuCisgICAgbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+c2V0Rm9jdXModHJ1ZSk7CiB9
CiAKIHZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6ZWRp
dENvbnRyb2xWYWx1ZUNoYW5nZWQoKQpAQCAtMTM4LDExICsxNTEsOSBAQCB2b2lkIFRpbWVJbnB1
dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVkaXRDb250cm9sVmFsdWVDaGFu
Z2VkKCkKICAgICBpbnB1dC0+ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CiB9CiAK
LXZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6Zm9jdXNB
bmRTZWxlY3RFZGl0Q29udHJvbE93bmVyKCkKK2Jvb2wgVGltZUlucHV0VHlwZTo6aGFzQ3VzdG9t
Rm9jdXNMb2dpYygpIGNvbnN0CiB7Ci0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0
KG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCkpOwotICAgIGlucHV0LT5mb2N1cygpOwotICAgIGlu
cHV0LT5zZWxlY3QoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgVGltZUlucHV0VHlw
ZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6aXNFZGl0Q29udHJvbE93bmVyRGlzYWJs
ZWQoKSBjb25zdApAQCAtMTUwLDExICsxNjEsNiBAQCBib29sIFRpbWVJbnB1dFR5cGU6OkRhdGVU
aW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lckRpc2FibGVkKCkgYwog
ICAgIHJldHVybiBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5yZWFkT25seSgpOwogfQogCi1i
b29sIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENv
bnRyb2xPd25lckZvY3VzZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3RpbWVJbnB1dFR5cGUu
ZWxlbWVudCgpLT5mb2N1c2VkKCk7Ci19Ci0KIGJvb2wgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVF
ZGl0Q29udHJvbE93bmVySW1wbDo6aXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25zdAog
ewogICAgIHJldHVybiBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5kaXNhYmxlZCgpOwpAQCAt
MTczLDYgKzE3OSwxMiBAQCBUaW1lSW5wdXRUeXBlOjp+VGltZUlucHV0VHlwZSgpCiAgICAgICAg
IG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+cmVtb3ZlRWRpdENvbnRyb2xPd25lcigpOwogfQogCit2
b2lkIFRpbWVJbnB1dFR5cGU6OmJsdXIoKQoreworICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1l
bnQpCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+Ymx1ckJ5T3duZXIoKTsKK30KKwog
UmVuZGVyT2JqZWN0KiBUaW1lSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSog
YXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBl
OjpjcmVhdGVSZW5kZXJlcihhcmVuYSwgc3R5bGUpOwpAQCAtMTk3LDYgKzIwOSwxMiBAQCB2b2lk
IFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKICAgICBCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7CiB9CiAKK3ZvaWQgVGltZUlucHV0
VHlwZTo6Zm9jdXMoYm9vbCkKK3sKKyAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQorICAg
ICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmZvY3VzQnlPd25lcigpOworfQorCiB2b2lkIFRp
bWVJbnB1dFR5cGU6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKG1fZGF0
ZVRpbWVFZGl0RWxlbWVudCkKQEAgLTIxNCwyNSArMjMyLDE0IEBAIHZvaWQgVGltZUlucHV0VHlw
ZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgIGZvcndhcmRF
dmVudChldmVudCk7CiB9CiAKLXZvaWQgVGltZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVF
dmVudChFdmVudCogZXZlbnQpCi17Ci0gICAgaWYgKGVsZW1lbnQoKS0+ZGlzYWJsZWQoKSB8fCBl
bGVtZW50KCktPnJlYWRPbmx5KCkgfHwgIWVsZW1lbnQoKS0+cmVuZGVyZXIoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRl
VGltZUVkaXRFbGVtZW50LT5mb2N1cygpOwotCi0gICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVk
KCk7Ci19Ci0KIGJvb2wgVGltZUlucHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2Fy
ZEV2ZW50KikgY29uc3QKIHsKLSAgICByZXR1cm4gZWxlbWVudCgpLT5pc1RleHRGb3JtQ29udHJv
bEZvY3VzYWJsZSgpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBUaW1lSW5wdXRUeXBl
Ojppc01vdXNlRm9jdXNhYmxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZWxlbWVudCgpLT5pc1Rl
eHRGb3JtQ29udHJvbEZvY3VzYWJsZSgpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBU
aW1lSW5wdXRUeXBlOjptaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rp
bWVJbnB1dFR5cGUuaAppbmRleCBlZTg3N2RjZjFkNmNjY2RmNWIxNzQ1YjExY2NmOTA5OTU5Y2Zl
MzQ3Li5hY2Q1N2IzNGRlN2MzNzRkNTdlOTliOGJkNTdlZjMyZTFhZTYyOWUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtNjgsMTEgKzY4LDEwIEBAIHByaXZhdGU6CiAgICAg
ICAgIHZpcnR1YWwgfkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoKTsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBlZGl0Q29udHJvbE1vdXNlRm9jdXMoKSBPVkVSUklE
RSBGSU5BTDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEJsdXJGcm9tQ29udHJvbCgpIE9WRVJS
SURFIEZJTkFMOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXNPbkNvbnRyb2woKSBPVkVS
UklERSBGSU5BTDsKICAgICAgICAgdmlydHVhbCB2b2lkIGVkaXRDb250cm9sVmFsdWVDaGFuZ2Vk
KCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1c0FuZFNlbGVjdEVk
aXRDb250cm9sT3duZXIoKSBPVkVSUklERSBGSU5BTDsKICAgICAgICAgdmlydHVhbCBib29sIGlz
RWRpdENvbnRyb2xPd25lckRpc2FibGVkKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgICAg
IHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCkgY29uc3QgT1ZFUlJJREUg
RklOQUw7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJSZWFkT25seSgp
IGNvbnN0IE9WRVJSSURFIEZJTkFMOwogCiAgICAgICAgIFRpbWVJbnB1dFR5cGUmIG1fdGltZUlu
cHV0VHlwZTsKQEAgLTgxLDEzICs4MCwxNSBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBE
YXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOwogCiAgICAgLy8gSW5wdXRUeXBlIGZ1bmN0aW9u
cworICAgIHZpcnR1YWwgdm9pZCBibHVyKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBS
ZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBj
b25zdCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93U3VidHJl
ZSgpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U2hhZG93U3VidHJl
ZSgpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZEF0dHJpYnV0ZUNo
YW5nZWQoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0
b3JlUHJldmlvdXNTZWxlY3Rpb24pIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBm
b3J3YXJkRXZlbnQoRXZlbnQqKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCopIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFIEZJTkFMOwor
ICAgIHZpcnR1YWwgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QgT1ZFUlJJREUgRklO
QUw7CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCop
IGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxl
KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBib29sIGlzVGV4dEZpZWxkKCkg
Y29uc3QgT1ZFUlJJREUgRklOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCmluZGV4IDQ0YTFjMmIwYTU2MWUyNjNiZTAyZmU5MDEw
ZjE2ZmNjMjA0NThmY2QuLjdlZTgyMTZjNzFiNTBmMzhlY2UwNTZlNmRlNWM1Mjc5YTUxODgxNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1l
bnQuY3BwCkBAIC0xOTUsNyArMTk1LDYgQEAgRGF0ZVRpbWVFZGl0RWxlbWVudDo6RGF0ZVRpbWVF
ZGl0RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEVkaXRDb250cm9sT3duZXImIGUKICAgICA6
IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCiAgICAgLCBtX2VkaXRDb250cm9sT3du
ZXIoJmVkaXRDb250cm9sT3duZXIpCiAgICAgLCBtX3NwaW5CdXR0b24oMCkKLSAgICAsIG1fZm9j
dXNGaWVsZEluZGV4KGludmFsaWRGaWVsZEluZGV4KQogewogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBkYXRlVGltZUVkaXRQc2V1ZG9JZCwgKCItd2Via2l0LWRhdGV0aW1l
LWVkaXQiKSk7CiAgICAgc2V0U2hhZG93UHNldWRvSWQoZGF0ZVRpbWVFZGl0UHNldWRvSWQpOwpA
QCAtMjE4LDEyICsyMTcsMzAgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjphZGRGaWVsZChQ
YXNzUmVmUHRyPERhdGVUaW1lRmllbGRFbGVtZW50PiBmaWVsZCkKICAgICBhcHBlbmRDaGlsZChm
aWVsZCk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Ymx1ckJ5T3duZXIoKQorewor
ICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmb2N1c2VkRmllbGQoKSkKKyAg
ICAgICAgZmllbGQtPmJsdXIoKTsKK30KKwogUGFzc1JlZlB0cjxEYXRlVGltZUVkaXRFbGVtZW50
PiBEYXRlVGltZUVkaXRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBFZGl0Q29u
dHJvbE93bmVyJiBlZGl0Q29udHJvbE93bmVyKQogewogICAgIFJlZlB0cjxEYXRlVGltZUVkaXRF
bGVtZW50PiBjb250YWluZXIgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVFZGl0RWxlbWVudChkb2N1
bWVudCwgZWRpdENvbnRyb2xPd25lcikpOwogICAgIHJldHVybiBjb250YWluZXIucmVsZWFzZSgp
OwogfQogCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRpZEJsdXJGcm9tRmllbGQoKQorewor
ICAgIGlmIChtX2VkaXRDb250cm9sT3duZXIpCisgICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+
ZGlkQmx1ckZyb21Db250cm9sKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGlk
Rm9jdXNPbkZpZWxkKCkKK3sKKyAgICBpZiAobV9lZGl0Q29udHJvbE93bmVyKQorICAgICAgICBt
X2VkaXRDb250cm9sT3duZXItPmRpZEZvY3VzT25Db250cm9sKCk7Cit9CisKIHZvaWQgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKQogewogICAgIHVwZGF0ZVVJU3Rh
dGUoKTsKQEAgLTIzNCw3MyArMjUxLDQyIEBAIERhdGVUaW1lRmllbGRFbGVtZW50KiBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpmaWVsZEF0KHNpemVfdCBmaWVsZEluZGV4KSBjb25zdAogICAgIHJldHVy
biBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpID8gbV9maWVsZHNbZmllbGRJbmRleF0gOiAw
OwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzQW5kU2VsZWN0U3BpbkJ1dHRv
bk93bmVyKCkKK3NpemVfdCBEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZEluZGV4T2YoY29uc3Qg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQmIGZpZWxkKSBjb25zdAogewotICAgIGlmICghbV9lZGl0Q29u
dHJvbE93bmVyKQotICAgICAgICByZXR1cm47Ci0gICAgbV9lZGl0Q29udHJvbE93bmVyLT5mb2N1
c0FuZFNlbGVjdEVkaXRDb250cm9sT3duZXIoKTsKKyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4
ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KSB7CisgICAg
ICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4XSA9PSAmZmllbGQpCisgICAgICAgICAgICByZXR1
cm4gZmllbGRJbmRleDsKKyAgICB9CisgICAgcmV0dXJuIGludmFsaWRGaWVsZEluZGV4OwogfQog
Ci12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzRmllbGRBdChzaXplX3QgbmV3Rm9jdXNG
aWVsZEluZGV4KQordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0FuZFNlbGVjdFNwaW5C
dXR0b25Pd25lcigpCiB7Ci0gICAgaWYgKG1fZm9jdXNGaWVsZEluZGV4ID09IG5ld0ZvY3VzRmll
bGRJbmRleCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNv
bnN0IG5ld0ZvY3VzRmllbGQgPSBmaWVsZEF0KG5ld0ZvY3VzRmllbGRJbmRleCk7Ci0gICAgaWYg
KG5ld0ZvY3VzRmllbGQgJiYgbmV3Rm9jdXNGaWVsZC0+aXNSZWFkT25seSgpKQorICAgIGlmIChm
b2N1c2VkRmllbGRJbmRleCgpICE9IGludmFsaWRGaWVsZEluZGV4KQogICAgICAgICByZXR1cm47
CiAKLSAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgY3VycmVudEZvY3VzRmllbGQgPSBm
aWVsZEF0KG1fZm9jdXNGaWVsZEluZGV4KTsKLQotICAgIGlmIChjdXJyZW50Rm9jdXNGaWVsZCkK
LSAgICAgICAgY3VycmVudEZvY3VzRmllbGQtPnNldEZvY3VzKGZhbHNlKTsKLQotICAgIGlmICgh
bmV3Rm9jdXNGaWVsZCkgewotICAgICAgICBtX2ZvY3VzRmllbGRJbmRleCA9IGludmFsaWRGaWVs
ZEluZGV4OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9mb2N1c0ZpZWxkSW5kZXgg
PSBuZXdGb2N1c0ZpZWxkSW5kZXg7Ci0gICAgbmV3Rm9jdXNGaWVsZC0+c2V0Rm9jdXModHJ1ZSk7
CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9IGZpZWxkQXQoMCkpCisgICAg
ICAgIGZpZWxkLT5mb2N1cygpOwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmhhbmRs
ZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdmVudCkKK3ZvaWQgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6Zm9jdXNCeU93bmVyKCkKIHsKLSAgICBpZiAoaXNEaXNhYmxlZCgpIHx8
IGlzUmVhZE9ubHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFmaWVsZEF0KG1fZm9j
dXNGaWVsZEluZGV4KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGtleWJvYXJkRXZlbnQt
PnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KQotICAgICAgICByZXR1cm47Ci0K
LSAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIgPSBrZXlib2FyZEV2ZW50LT5rZXlJZGVu
dGlmaWVyKCk7Ci0KLSAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiTGVmdCIpIHsKLSAgICAgICAg
a2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgY29uc3Qgc2l6ZV90
IGZpZWxkSW5kZXggPSBwcmV2aW91c0ZpZWxkSW5kZXgoKTsKLSAgICAgICAgaWYgKGZpZWxkQXQo
ZmllbGRJbmRleCkpCi0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQoZmllbGRJbmRleCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9
IGZpZWxkQXQoMCkpCisgICAgICAgIGZpZWxkLT5mb2N1cygpOworfQogCi0gICAgaWYgKGtleUlk
ZW50aWZpZXIgPT0gIlJpZ2h0IikgewotICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0
SGFuZGxlZCgpOwotICAgICAgICBjb25zdCBzaXplX3QgZmllbGRJbmRleCA9IG5leHRGaWVsZElu
ZGV4KCk7Ci0gICAgICAgIGlmIChmaWVsZEF0KGZpZWxkSW5kZXgpKQotICAgICAgICAgICAgZm9j
dXNGaWVsZEF0KGZpZWxkSW5kZXgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorRGF0ZVRpbWVG
aWVsZEVsZW1lbnQqIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzZWRGaWVsZCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGZpZWxkQXQoZm9jdXNlZEZpZWxkSW5kZXgoKSk7Cit9CiAKLSAgICBpZiAo
a2V5SWRlbnRpZmllciA9PSAiVSswMDA5IikgewotICAgICAgICBjb25zdCBzaXplX3QgZmllbGRJ
bmRleCA9IGtleWJvYXJkRXZlbnQtPmdldE1vZGlmaWVyU3RhdGUoIlNoaWZ0IikgPyBwcmV2aW91
c0ZpZWxkSW5kZXgoKSA6IG5leHRGaWVsZEluZGV4KCk7Ci0gICAgICAgIGlmIChmaWVsZEF0KGZp
ZWxkSW5kZXgpKSB7Ci0gICAgICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxl
ZCgpOwotICAgICAgICAgICAgZm9jdXNGaWVsZEF0KGZpZWxkSW5kZXgpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9CitzaXplX3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNlZEZp
ZWxkSW5kZXgoKSBjb25zdAoreworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVs
ZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKKyAgICAgICAgaWYgKG1f
ZmllbGRzW2ZpZWxkSW5kZXhdLT5mb2N1c2VkKCkpCisgICAgICAgICAgICByZXR1cm4gZmllbGRJ
bmRleDsKICAgICB9CisgICAgcmV0dXJuIGludmFsaWRGaWVsZEluZGV4OwogfQogCiB2b2lkIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkVmFsdWVDaGFuZ2VkKCkKQEAgLTMwOSwzMCArMjk1LDM0
IEBAIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRWYWx1ZUNoYW5nZWQoKQogICAgICAg
ICBtX2VkaXRDb250cm9sT3duZXItPmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCk7CiB9CiAKLXZv
aWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCgpCitib29sIERhdGVUaW1l
RWRpdEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQm
IGZpZWxkKQogewotICAgIGlmIChtX2ZvY3VzRmllbGRJbmRleCAhPSBpbnZhbGlkRmllbGRJbmRl
eCkKLSAgICAgICAgZm9jdXNGaWVsZEF0KG5leHRGaWVsZEluZGV4KCkpOworICAgIGNvbnN0IHNp
emVfdCBzdGFydEZpZWxkSW5kZXggPSBmaWVsZEluZGV4T2YoZmllbGQpOworICAgIGlmIChzdGFy
dEZpZWxkSW5kZXggPT0gaW52YWxpZEZpZWxkSW5kZXgpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gc3RhcnRGaWVsZEluZGV4ICsgMTsgZmllbGRJ
bmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KSB7CisgICAgICAgIGlmICghbV9m
aWVsZHNbZmllbGRJbmRleF0tPmlzUmVhZE9ubHkoKSkgeworICAgICAgICAgICAgbV9maWVsZHNb
ZmllbGRJbmRleF0tPmZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
fQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBtb3VzZUV2ZW50KQorYm9vbCBEYXRlVGlt
ZUVkaXRFbGVtZW50Ojpmb2N1c09uUHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxl
bWVudCYgZmllbGQpCiB7Ci0gICAgaWYgKGlzRGlzYWJsZWQoKSB8fCBpc1JlYWRPbmx5KCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGlmIChtb3VzZUV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1l
cygpLm1vdXNlZG93bkV2ZW50IHx8IG1vdXNlRXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0b24p
Ci0gICAgICAgIHJldHVybjsKLQotICAgIE5vZGUqIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBtb3Vz
ZUV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7Ci0gICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9
IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkgewotICAgICAg
ICBpZiAobV9maWVsZHNbZmllbGRJbmRleF0gPT0gcmVsYXRlZFRhcmdldCkgewotICAgICAgICAg
ICAgbW91c2VFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgICAgIGZvY3VzRmll
bGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAgICAgIGlmIChtX2VkaXRDb250cm9sT3duZXIpCi0g
ICAgICAgICAgICAgICAgbV9lZGl0Q29udHJvbE93bmVyLT5lZGl0Q29udHJvbE1vdXNlRm9jdXMo
KTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNvbnN0IHNpemVfdCBzdGFydEZpZWxkSW5kZXgg
PSBmaWVsZEluZGV4T2YoZmllbGQpOworICAgIGlmIChzdGFydEZpZWxkSW5kZXggPT0gaW52YWxp
ZEZpZWxkSW5kZXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBzaXplX3QgZmllbGRJbmRl
eCA9IHN0YXJ0RmllbGRJbmRleDsKKyAgICB3aGlsZSAoZmllbGRJbmRleCA+IDApIHsKKyAgICAg
ICAgLS1maWVsZEluZGV4OworICAgICAgICBpZiAoIW1fZmllbGRzW2ZpZWxkSW5kZXhdLT5pc1Jl
YWRPbmx5KCkpIHsKKyAgICAgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5mb2N1cygpOwor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0dXJuIGZh
bHNlOwogfQogCiBib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmlzRGlzYWJsZWQoKSBjb25zdApA
QCAtMzQ3LDEwICszMzcsOSBAQCBib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmlzUmVhZE9ubHko
KSBjb25zdAogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dChjb25zdCBTdGVwUmFu
Z2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVWYWx1ZSkKIHsKLSAgICBz
aXplX3QgZm9jdXNGaWVsZEluZGV4ID0gbV9mb2N1c0ZpZWxkSW5kZXg7Ci0gICAgRGF0ZVRpbWVG
aWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1fZm9jdXNGaWVsZEluZGV4
KTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcgZm9jdXNGaWVsZElkID0gZm9jdXNGaWVsZCA/IGZv
Y3VzRmllbGQtPnNoYWRvd1BzZXVkb0lkKCkgOiBudWxsQXRvbTsKLSAgICBmb2N1c0ZpZWxkQXQo
aW52YWxpZEZpZWxkSW5kZXgpOworICAgIHNpemVfdCBmb2N1c2VkRmllbGRJbmRleCA9IHRoaXMt
PmZvY3VzZWRGaWVsZEluZGV4KCk7CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZv
Y3VzZWRGaWVsZCA9IGZpZWxkQXQoZm9jdXNlZEZpZWxkSW5kZXgpOworICAgIGNvbnN0IEF0b21p
Y1N0cmluZyBmb2N1c2VkRmllbGRJZCA9IGZvY3VzZWRGaWVsZCA/IGZvY3VzZWRGaWVsZC0+c2hh
ZG93UHNldWRvSWQoKSA6IG51bGxBdG9tOwogCiAgICAgRGF0ZVRpbWVFZGl0QnVpbGRlciBidWls
ZGVyKCp0aGlzLCBzdGVwUmFuZ2UsIGRhdGVWYWx1ZSk7CiAgICAgY29uc3QgU3RyaW5nIGRhdGVU
aW1lRm9ybWF0ID0gYnVpbGRlci5uZWVkU2Vjb25kRmllbGQoKSA/IGxvY2FsaXplZFRpbWVGb3Jt
YXRUZXh0KCkgOiBsb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KCk7CkBAIC0zNjEsMzcgKzM1
MCwxNiBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dChjb25zdCBTdGVwUmFuZ2Um
IHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudAogICAgIG1fc3BpbkJ1dHRvbiA9IHNwaW5C
dXR0b24uZ2V0KCk7CiAgICAgYXBwZW5kQ2hpbGQoc3BpbkJ1dHRvbik7CiAKLSAgICBpZiAoZm9j
dXNGaWVsZEluZGV4ICE9IGludmFsaWRGaWVsZEluZGV4KSB7CisgICAgaWYgKGZvY3VzZWRGaWVs
ZEluZGV4ICE9IGludmFsaWRGaWVsZEluZGV4KSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGZpZWxk
SW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsK
LSAgICAgICAgICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4XS0+c2hhZG93UHNldWRvSWQoKSA9
PSBmb2N1c0ZpZWxkSWQpIHsKLSAgICAgICAgICAgICAgICBmb2N1c0ZpZWxkSW5kZXggPSBmaWVs
ZEluZGV4OworICAgICAgICAgICAgaWYgKG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5zaGFkb3dQc2V1
ZG9JZCgpID09IGZvY3VzZWRGaWVsZElkKSB7CisgICAgICAgICAgICAgICAgZm9jdXNlZEZpZWxk
SW5kZXggPSBmaWVsZEluZGV4OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQogICAgICAgICB9Ci0gICAgICAgIGZvY3VzRmllbGRBdChzdGQ6Om1pbihmb2N1c0ZpZWxkSW5k
ZXgsIG1fZmllbGRzLnNpemUoKSAtIDEpKTsKLSAgICB9Ci19Ci0KLXNpemVfdCBEYXRlVGltZUVk
aXRFbGVtZW50OjpuZXh0RmllbGRJbmRleCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fZm9jdXNG
aWVsZEluZGV4ICE9IGludmFsaWRGaWVsZEluZGV4KTsKLSAgICBmb3IgKHNpemVfdCBmaWVsZElu
ZGV4ID0gbV9mb2N1c0ZpZWxkSW5kZXggKyAxOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgp
OyArK2ZpZWxkSW5kZXgpIHsKLSAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNS
ZWFkT25seSgpKQotICAgICAgICAgICAgcmV0dXJuIGZpZWxkSW5kZXg7Ci0gICAgfQotICAgIHJl
dHVybiBtX2ZpZWxkcy5zaXplKCk7Ci19Ci0KLXNpemVfdCBEYXRlVGltZUVkaXRFbGVtZW50Ojpw
cmV2aW91c0ZpZWxkSW5kZXgoKSBjb25zdAotewotICAgIEFTU0VSVChtX2ZvY3VzRmllbGRJbmRl
eCAhPSBpbnZhbGlkRmllbGRJbmRleCk7Ci0gICAgc2l6ZV90IGZpZWxkSW5kZXggPSBtX2ZvY3Vz
RmllbGRJbmRleDsKLSAgICB3aGlsZSAoZmllbGRJbmRleCA+IDApIHsKLSAgICAgICAgLS1maWVs
ZEluZGV4OwotICAgICAgICBpZiAoIW1fZmllbGRzW2ZpZWxkSW5kZXhdLT5pc1JlYWRPbmx5KCkp
Ci0gICAgICAgICAgICByZXR1cm4gZmllbGRJbmRleDsKKyAgICAgICAgaWYgKERhdGVUaW1lRmll
bGRFbGVtZW50KiBmaWVsZCA9IGZpZWxkQXQoc3RkOjptaW4oZm9jdXNlZEZpZWxkSW5kZXgsIG1f
ZmllbGRzLnNpemUoKSAtIDEpKSkKKyAgICAgICAgICAgIGZpZWxkLT5mb2N1cygpOwogICAgIH0K
LSAgICByZXR1cm4gaW52YWxpZEZpZWxkSW5kZXg7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxl
bWVudDo6cmVhZE9ubHlTdGF0ZUNoYW5nZWQoKQpAQCAtNDAzLDQyICszNzEsMjYgQEAgdm9pZCBE
YXRlVGltZUVkaXRFbGVtZW50OjpyZXNldExheW91dCgpCiB7CiAgICAgbV9maWVsZHMuc2hyaW5r
KDApOwogICAgIG1fc3BpbkJ1dHRvbiA9IDA7Ci0gICAgbV9mb2N1c0ZpZWxkSW5kZXggPSBpbnZh
bGlkRmllbGRJbmRleDsKICAgICByZW1vdmVDaGlsZHJlbigpOwogfQogCiB2b2lkIERhdGVUaW1l
RWRpdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewotICAgIGlm
IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50KSB7Ci0gICAgICAgIGlm
ICghaXNEaXNhYmxlZCgpICYmICFpc1JlYWRPbmx5KCkgJiYgbV9mb2N1c0ZpZWxkSW5kZXggPT0g
aW52YWxpZEZpZWxkSW5kZXgpCi0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQoMCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
Ymx1ckV2ZW50KSB7Ci0gICAgICAgIGZvY3VzRmllbGRBdChpbnZhbGlkRmllbGRJbmRleCk7Ci0g
ICAgICAgIHJldHVybjsKKyAgICAvLyBJbiBjYXNlIG9mIGNvbnRyb2wgb3duZXIgZm9yd2FyZCBl
dmVudCB0byBjb250cm9sLCBlLmcuIERPTQorICAgIC8vIGRpc3BhdGNoRXZlbnQgbWV0aG9kLgor
ICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmb2N1c2VkRmllbGQoKSkgewor
ICAgICAgICBmaWVsZC0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CisgICAgICAgIGlmIChl
dmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7Ci0gICAgICAgIGhhbmRsZU1vdXNlRXZlbnQo
c3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KSk7Ci0gICAgfSBlbHNlIGlmIChldmVudC0+
aXNLZXlib2FyZEV2ZW50KCkpCi0gICAgICAgIGhhbmRsZUtleWJvYXJkRXZlbnQoc3RhdGljX2Nh
c3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7Ci0KLSAgICBpZiAoZXZlbnQtPmRlZmF1bHRIYW5k
bGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25z
dCBmb2N1c0ZpZWxkID0gZmllbGRBdChtX2ZvY3VzRmllbGRJbmRleCk7Ci0gICAgaWYgKCFmb2N1
c0ZpZWxkKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAobV9zcGluQnV0dG9uKSB7CiAgICAg
ICAgIG1fc3BpbkJ1dHRvbi0+Zm9yd2FyZEV2ZW50KGV2ZW50KTsKICAgICAgICAgaWYgKGV2ZW50
LT5kZWZhdWx0SGFuZGxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZv
Y3VzRmllbGQtPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAgIEhUTUxEaXZFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAogdm9pZCBEYXRlVGltZUVkaXRFbGVt
ZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGUpCkBAIC00NjUsMjYgKzQxNywyNyBAQCBib29sIERhdGVUaW1lRWRp
dEVsZW1lbnQ6OnNob3VsZFNwaW5CdXR0b25SZXNwb25kVG9XaGVlbEV2ZW50cygpCiAgICAgaWYg
KCFzaG91bGRTcGluQnV0dG9uUmVzcG9uZFRvTW91c2VFdmVudHMoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgcmV0dXJuICFtX2VkaXRDb250cm9sT3duZXIgfHwgbV9lZGl0Q29udHJv
bE93bmVyLT5pc0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCk7CisgICAgcmV0dXJuIGZvY3VzZWRG
aWVsZEluZGV4KCkgIT0gaW52YWxpZEZpZWxkSW5kZXg7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6c3BpbkJ1dHRvblN0ZXBEb3duKCkKIHsKLSAgICBpZiAoRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1fZm9jdXNGaWVsZEluZGV4KSkKLSAg
ICAgICAgZm9jdXNGaWVsZC0+c3RlcERvd24oKTsKKyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1l
bnQqIGNvbnN0IGZpZWxkID0gZm9jdXNlZEZpZWxkKCkpCisgICAgICAgIGZpZWxkLT5zdGVwRG93
bigpOwogfQogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNwaW5CdXR0b25TdGVwVXAoKQog
ewotICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZm9jdXNGaWVsZCA9IGZpZWxk
QXQobV9mb2N1c0ZpZWxkSW5kZXgpKQotICAgICAgICBmb2N1c0ZpZWxkLT5zdGVwVXAoKTsKKyAg
ICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZpZWxkID0gZm9jdXNlZEZpZWxkKCkp
CisgICAgICAgIGZpZWxkLT5zdGVwVXAoKTsKIH0KIAogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50
Ojp1cGRhdGVVSVN0YXRlKCkKIHsKICAgICBpZiAoaXNEaXNhYmxlZCgpIHx8IGlzUmVhZE9ubHko
KSkgewogICAgICAgICBtX3NwaW5CdXR0b24tPnJlbGVhc2VDYXB0dXJlKCk7Ci0gICAgICAgIGZv
Y3VzRmllbGRBdChpbnZhbGlkRmllbGRJbmRleCk7CisgICAgICAgIGlmIChEYXRlVGltZUZpZWxk
RWxlbWVudCogZmllbGQgPSBmb2N1c2VkRmllbGQoKSkKKyAgICAgICAgICAgIGZpZWxkLT5ibHVy
KCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUVkaXRFbGVtZW50LmgKaW5kZXggOGQ5ZTAxNWEyNmY3NTA1ODFlMjI5ZjY5ZTEzOTI5N2JmNmY2
MDM1My4uMTBjNDY2NDg3NjI3ZTRmOGRjYWE4N2E1OWVjNTVkMGM5OWYwZTQ0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaApAQCAtNTEs
MTEgKzUxLDEwIEBAIHB1YmxpYzoKICAgICBjbGFzcyBFZGl0Q29udHJvbE93bmVyIHsKICAgICBw
dWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkVkaXRDb250cm9sT3duZXIoKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25lcigpID0gMDsKLSAgICAgICAg
dmlydHVhbCB2b2lkIGVkaXRDb250cm9sTW91c2VGb2N1cygpID0gMDsKKyAgICAgICAgdmlydHVh
bCB2b2lkIGRpZEJsdXJGcm9tQ29udHJvbCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZEZvY3VzT25Db250cm9sKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xW
YWx1ZUNoYW5nZWQoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3du
ZXJEaXNhYmxlZCgpIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIGlzRWRpdENvbnRy
b2xPd25lckZvY3VzZWQoKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRD
b250cm9sT3duZXJSZWFkT25seSgpIGNvbnN0ID0gMDsKICAgICB9OwogCkBAIC02Myw4ICs2Miwx
MCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5EYXRlVGltZUVkaXRFbGVtZW50KCk7CiAgICAg
dm9pZCBhZGRGaWVsZChQYXNzUmVmUHRyPERhdGVUaW1lRmllbGRFbGVtZW50Pik7CisgICAgdm9p
ZCBibHVyQnlPd25lcigpOwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50KikgT1ZFUlJJREU7CiAgICAgdm9pZCBkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpOworICAgIHZv
aWQgZm9jdXNCeU93bmVyKCk7CiAgICAgdm9pZCByZWFkT25seVN0YXRlQ2hhbmdlZCgpOwogICAg
IHZvaWQgcmVtb3ZlRWRpdENvbnRyb2xPd25lcigpIHsgbV9lZGl0Q29udHJvbE93bmVyID0gMDsg
fQogICAgIHZvaWQgcmVzZXRMYXlvdXQoKTsKQEAgLTg5LDE5ICs5MCwyMCBAQCBwcml2YXRlOgog
ICAgIERhdGVUaW1lRWRpdEVsZW1lbnQoRG9jdW1lbnQqLCBFZGl0Q29udHJvbE93bmVyJik7CiAK
ICAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGRBdChzaXplX3QpIGNvbnN0OwotICAgIHZv
aWQgZm9jdXNGaWVsZEF0KHNpemVfdCk7Ci0gICAgdm9pZCBoYW5kbGVLZXlib2FyZEV2ZW50KEtl
eWJvYXJkRXZlbnQqKTsKLSAgICB2b2lkIGhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCopOwor
ICAgIHNpemVfdCBmaWVsZEluZGV4T2YoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSBjb25z
dDsKKyAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogZm9jdXNlZEZpZWxkKCkgY29uc3Q7CisgICAg
c2l6ZV90IGZvY3VzZWRGaWVsZEluZGV4KCkgY29uc3Q7CiAgICAgYm9vbCBpc0Rpc2FibGVkKCkg
Y29uc3Q7CiAgICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdm9pZCBsYXlvdXQoY29u
c3QgU3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsKLSAgICBzaXplX3QgbmV4dEZp
ZWxkSW5kZXgoKSBjb25zdDsKLSAgICBzaXplX3QgcHJldmlvdXNGaWVsZEluZGV4KCkgY29uc3Q7
CiAgICAgdm9pZCB1cGRhdGVVSVN0YXRlKCk7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVu
dDo6RmllbGRPd25lciBmdW5jdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGRpZEJsdXJGcm9tRmll
bGQoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXNPbkZpZWxkKCkg
T1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGZpZWxkVmFsdWVDaGFuZ2VkKCkgT1ZF
UlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzT25OZXh0RmllbGQoKSBPVkVSUklE
RSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgZm9jdXNPbk5leHRGaWVsZChjb25zdCBEYXRlVGlt
ZUZpZWxkRWxlbWVudCYpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBmb2N1c09u
UHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYpIE9WRVJSSURFIEZJTkFM
OwogCiAgICAgLy8gU3BpbkJ1dHRvbkVsZW1lbnQ6OlNwaW5CdXR0b25Pd25lciBmdW5jdGlvbnMu
CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzQW5kU2VsZWN0U3BpbkJ1dHRvbk93bmVyKCkgT1ZFUlJJ
REUgRklOQUw7CkBAIC0xMTMsNyArMTE1LDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8RGF0ZVRp
bWVGaWVsZEVsZW1lbnQqLCBtYXhpbXVtTnVtYmVyT2ZGaWVsZHM+IG1fZmllbGRzOwogICAgIEVk
aXRDb250cm9sT3duZXIqIG1fZWRpdENvbnRyb2xPd25lcjsKICAgICBTcGluQnV0dG9uRWxlbWVu
dCogbV9zcGluQnV0dG9uOwotICAgIHNpemVfdCBtX2ZvY3VzRmllbGRJbmRleDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcAppbmRleCA5ZDU2ZDliZjg3ZTE0NGI4YmQ1ZTU2MjBj
MDg3NGMzNWRlMTZiMTQ4Li41YjY5NjQ3OGE4OTZkOTYwZmJjMTQwZTcyZmUzMTJkZDM0NDljZWI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC00OCw2ICs0OSwxMiBAQCBEYXRlVGltZUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVG
aWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZAogCiB2b2lk
IERhdGVUaW1lRmllbGRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkK
IHsKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50KQorICAg
ICAgICBkaWRCbHVyKCk7CisKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
Zm9jdXNFdmVudCkKKyAgICAgICAgZGlkRm9jdXMoKTsKKwogICAgIGlmIChldmVudC0+aXNLZXli
b2FyZEV2ZW50KCkpIHsKICAgICAgICAgS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdmVudCA9IHN0
YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCk7CiAgICAgICAgIGhhbmRsZUtleWJvYXJk
RXZlbnQoa2V5Ym9hcmRFdmVudCk7CkBAIC03NCw2ICs4MSwyMiBAQCB2b2lkIERhdGVUaW1lRmll
bGRFbGVtZW50OjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCoga2V5
Ym9hcmRFdgogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKGtleUlkZW50aWZpZXIg
PT0gIkxlZnQiKSB7CisgICAgICAgIGlmICghbV9maWVsZE93bmVyKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBpZiAobV9maWVsZE93bmVyLT5mb2N1c09uUHJldmlvdXNGaWVsZCgqdGhp
cykpCisgICAgICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGtleUlkZW50aWZpZXIgPT0gIlJpZ2h0Iikg
eworICAgICAgICBpZiAoIW1fZmllbGRPd25lcikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgaWYgKG1fZmllbGRPd25lci0+Zm9jdXNPbk5leHRGaWVsZCgqdGhpcykpCisgICAgICAgICAg
ICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgaWYgKGtleUlkZW50aWZpZXIgPT0gIlVwIikgewogICAgICAgICBrZXlib2Fy
ZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogICAgICAgICBzdGVwVXAoKTsKQEAgLTg3LDEw
ICsxMTAsMjMgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEtleWJvYXJkRXZl
bnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGtleWJvYXJkRXYKICAgICB9CiB9CiAKLXZvaWQgRGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQoKQordm9pZCBEYXRlVGltZUZpZWxk
RWxlbWVudDo6ZGlkQmx1cigpCit7CisgICAgaWYgKG1fZmllbGRPd25lcikKKyAgICAgICAgbV9m
aWVsZE93bmVyLT5kaWRCbHVyRnJvbUZpZWxkKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ6OmRpZEZvY3VzKCkKIHsKICAgICBpZiAobV9maWVsZE93bmVyKQotICAgICAgICBtX2Zp
ZWxkT3duZXItPmZvY3VzT25OZXh0RmllbGQoKTsKKyAgICAgICAgbV9maWVsZE93bmVyLT5kaWRG
b2N1c09uRmllbGQoKTsKK30KKwordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6Zm9jdXNPbk5l
eHRGaWVsZCgpCit7CisgICAgaWYgKCFtX2ZpZWxkT3duZXIpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX2ZpZWxkT3duZXItPmZvY3VzT25OZXh0RmllbGQoKnRoaXMpOwogfQogCiB2b2lkIERhdGVU
aW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNl
dWRvSWQpCkBAIC05OSw2ICsxMzUsMTEgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5p
dGlhbGl6ZShjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKQogICAgIGFwcGVuZENo
aWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB2aXNpYmxlVmFsdWUoKSkpOwogfQogCitib29s
IERhdGVUaW1lRmllbGRFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICFpc1JlYWRPbmx5KCk7Cit9CisKIGJvb2wgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmlzUmVhZE9u
bHkoKSBjb25zdAogewogICAgIHJldHVybiBmYXN0SGFzQXR0cmlidXRlKHJlYWRvbmx5QXR0cik7
CkBAIC0xMTEsNiArMTUyLDExIEBAIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnNldFJlYWRP
bmx5KCkKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKK2Jvb2wgRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQor
CiB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNpYmxlVmFsdWUoRXZlbnRCZWhh
dmlvciBldmVudEJlaGF2aW9yKQogewogICAgIFRleHQqIGNvbnN0IHRleHROb2RlID0gdG9UZXh0
KGZpcnN0Q2hpbGQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnQuaAppbmRleCBjZDM5ZTI4YTM5NDQ5Y2E0YjhjNDUzMGQ2YjllNjQ2Njdk
YzRmYzQ1Li4xMzc2YzYyZjQ3OWI0Y2JmMGRmZjE2NDc3MGIzMzIzMWUzY2JhMWRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKQEAg
LTQ5LDggKzQ5LDExIEBAIHB1YmxpYzoKICAgICBjbGFzcyBGaWVsZE93bmVyIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIHZpcnR1YWwgfkZpZWxkT3duZXIoKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IGRpZEJsdXJGcm9tRmllbGQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGb2N1c09u
RmllbGQoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBmaWVsZFZhbHVlQ2hhbmdlZCgpID0g
MDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzT25OZXh0RmllbGQoKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgYm9vbCBmb2N1c09uTmV4dEZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50
JikgPSAwOworICAgICAgICB2aXJ0dWFsIGJvb2wgZm9jdXNPblByZXZpb3VzRmllbGQoY29uc3Qg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSA9IDA7CiAgICAgfTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CkBAIC03MCw2ICs3Myw4IEBAIHB1
YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIERhdGVUaW1lRmllbGRFbGVtZW50KERvY3VtZW50Kiwg
RmllbGRPd25lciYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRCbHVyKCk7CisgICAgdmlydHVhbCB2
b2lkIGRpZEZvY3VzKCk7CiAgICAgdm9pZCBmb2N1c09uTmV4dEZpZWxkKCk7CiAgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCopID0gMDsKICAgICB2b2lk
IGluaXRpYWxpemUoY29uc3QgQXRvbWljU3RyaW5nJik7CkBAIC03OCw2ICs4Myw4IEBAIHByb3Rl
Y3RlZDoKIAogcHJpdmF0ZToKICAgICB2b2lkIGRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihL
ZXlib2FyZEV2ZW50Kik7CisgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZF
UlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBPVkVS
UklERSBGSU5BTDsKIAogICAgIEZpZWxkT3duZXIqIG1fZmllbGRPd25lcjsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50LmNwcAppbmRleCBhNDA1M2I1Nzc1ZjRiNWM0MDExNDU0Yjg3NDI1MWVlMTE1ZGZkZjBh
Li5iYTlmNTI3Njk5NGUzMDkwNjMzZGZhNjZiOTZhZjdiMTBiYWI3NzJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudC5jcHAKQEAgLTcyLDYgKzcyLDE4IEBAIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllCiB7CiB9
CiAKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpkaWRCbHVyKCkKK3sKKyAgICBt
X2xhc3REaWdpdENoYXJUaW1lID0gMDsKKyAgICBEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGlkQmx1
cigpOworfQorCit2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6ZGlkRm9jdXMoKQor
eworICAgIG1fbGFzdERpZ2l0Q2hhclRpbWUgPSAwOworICAgIERhdGVUaW1lRmllbGRFbGVtZW50
OjpkaWRGb2N1cygpOworfQorCiB2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFu
ZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBrZXlib2FyZEV2ZW50KQogewogICAgIGlm
IChpc1JlYWRPbmx5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCmluZGV4IDM3MTliYzEzMGUzMWIzNzQ2YjMz
OWY3OWNkMzIwZDc1YjQzZTFmYjYuLmQ0MWExYzNhYTdlYzkxOTI4MjZlYzM1YzhhZWU3ODYzZDVm
YjNmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCkBAIC02Myw2ICs2Myw4IEBAIHByb3RlY3RlZDoKIAog
cHJpdmF0ZToKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCisgICAgdmly
dHVhbCB2b2lkIGRpZEJsdXIoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
Rm9jdXMoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5Ym9hcmRF
dmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEVtcHR5VmFsdWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkLCBF
dmVudEJlaGF2aW9yKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc3RlcERvd24o
KSBPVkVSUklERSBGSU5BTDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1ODkzMWJkZDNkZmIzZGZiNTdlM2NjNjA0YmYyNDM0
MTdlNmU1ZjQzLi4yMWQwOTVkNTAzZTE5YjZhYTI2Mjc4OTNhM2FhYzk2Y2Q0Y2M0NDk3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDgtMzAgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBbRm9ybXNdIFNoaWZ0K1RhYiBzaG91bGQgZm9jdXMgdGhl
IGxhc3QgZmllbGQgb2YgbXVsdGlwbGUgZmllbGRzIHRpbWUgaW5wdXQgVUkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTY4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGZvY3Vz
IGFuZCBibHVyIGV2ZW50IGhhbmRsaW5nIHRlc3QgYW5kIGEgbmV3IHRlc3QgY2FzZQorICAgICAg
ICBmb3IgU2hpZnQrVGFiIGZvciBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAg
ICAgICAqIHRpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZv
Y3VzLWV2ZW50cy5odG1sOiBBZGRlZCBmb3IgYmx1ciBhbmQgZm9jdXMgZXZlbnRzIGhhbmRsaW5n
LgorICAgICAgICAqIGZhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBs
ZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWw6IENoYW5nZWQgdG8gYWRkIGEgdGVzdCBjYXNl
cyBmb3IgU2hpZnQrVGFiLgorCiAyMDEyLTA4LTI5ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Rlc3RzXSBBZGQgdGVzdCBjYXNlIGZvciByaWdodC10
by1sZWZ0IHJlbmRlcmluZyBvZiBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11
bHRpcGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxk
cy1ibHVyLWFuZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMjM5MjE4
N2M1ZWUwZTYwMzYxYmQxNDFlZWMwYzZmYTUxZjIxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmll
bGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAor
Q2hlY2sgYmx1ciBhbmQgZm9jdXMgZXZlbnRzIGZvciBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1
dCBVSQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworZm9jdXMoKSBhbmQgYmx1cigp
CitQQVNTIHRlc3RJbnB1dC5mb2N1cygpOyBzdGF0ZSgpIGlzICJibHVyPTAgZm9jdXM9MSIKK1BB
U1MgdGVzdElucHV0LmJsdXIoKTsgc3RhdGUoKSBpcyAiYmx1cj0xIGZvY3VzPTEiCitmb2N1cyBh
bmQgVGFiIGtleSB0byBibHVyCitQQVNTIGtleURvd24oIgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0w
IGZvY3VzPTEiCitQQVNTIGtleURvd24oIgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0wIGZvY3VzPTEi
CitQQVNTIGtleURvd24oIgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0wIGZvY3VzPTEiCitQQVNTIGtl
eURvd24oIgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0xIGZvY3VzPTEiCisKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRz
LWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1l
LW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1ldmVu
dHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yN2MxMTc5MjY4YjVjMTE1ZjAxNTRhM2JhZmU3NjNjNzE4NjFi
NWY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRp
cGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1ldmVudHMuaHRt
bApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29udGFpbmVyIj4KKzxpbnB1dCBpZD0iYmVmb3JlIj4K
KzxpbnB1dCBpZD0idGVzdCIgdHlwZT0idGltZSIgdmFsdWU9IjEyOjM0Ij4KKzxpbnB1dCBpZD0i
YWZ0ZXIiPgorPC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ0NoZWNrIGJsdXIgYW5kIGZv
Y3VzIGV2ZW50cyBmb3IgbXVsdGlwbGUgZmllbGRzIHRpbWUgaW5wdXQgVUknKTsKKwordmFyIGJs
dXJDb3VudGVyID0gMDsKK3ZhciBmb2N1c0NvdW50ZXIgPSAwOworCitmdW5jdGlvbiBrZXlEb3du
KGtleSwgbW9kaWZpZXJzKQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAg
ICByZXR1cm47CisgICAgZXZlbnRTZW5kZXIua2V5RG93bihrZXksIG1vZGlmaWVycyk7Cit9CisK
K2Z1bmN0aW9uIHN0YXRlKCkKK3sKKyAgICByZXR1cm4gJ2JsdXI9JyArIGJsdXJDb3VudGVyICsg
JyBmb2N1cz0nICsgZm9jdXNDb3VudGVyOworfQorCit2YXIgdGVzdElucHV0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKK3Rlc3RJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVy
JywgZnVuY3Rpb24gKCkgeyArK2JsdXJDb3VudGVyOyB9KTsKK3Rlc3RJbnB1dC5hZGRFdmVudExp
c3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uICgpIHsgKytmb2N1c0NvdW50ZXI7IH0pOworCitmdW5j
dGlvbiBiZWdpblRlc3RDYXNlKHRlc3RDYXNlTmFtZSkKK3sKKyAgICBkZWJ1Zyh0ZXN0Q2FzZU5h
bWUpOworICAgIGJsdXJDb3VudGVyID0gMDsKKyAgICBmb2N1c0NvdW50ZXIgPSAwOworfQorCiti
ZWdpblRlc3RDYXNlKCdmb2N1cygpIGFuZCBibHVyKCknKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygndGVzdElucHV0LmZvY3VzKCk7IHN0YXRlKCknLCAnYmx1cj0wIGZvY3VzPTEnKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygndGVzdElucHV0LmJsdXIoKTsgc3RhdGUoKScsICdibHVyPTEgZm9j
dXM9MScpOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgYmVnaW5UZXN0Q2FzZSgn
Zm9jdXMgYW5kIFRhYiBrZXkgdG8gYmx1cicpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJiZWZvcmUiKS5mb2N1cygpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygna2V5RG93bigi
XHQiKTsgc3RhdGUoKScsICdibHVyPTAgZm9jdXM9MScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygna2V5RG93bigiXHQiKTsgc3RhdGUoKScsICdibHVyPTAgZm9jdXM9MScpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygna2V5RG93bigiXHQiKTsgc3RhdGUoKScsICdibHVyPTAgZm9j
dXM9MScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygna2V5RG93bigiXHQiKTsgc3RhdGUo
KScsICdibHVyPTEgZm9jdXM9MScpOworfSBlbHNlIHsKKyAgICBkZWJ1ZygnUGxlYXNlIHJ1biBp
biBEdW1wUmVuZGVyVHJlZSBmb3IgZm9jdXMgYW5kIFRhYi1rZXkgdGVzdCBjYXNlJyk7Cit9CisK
K2RlYnVnKCcnKTsKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnRhaW5lciIpKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1l
LW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1r
ZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDYxOGE2OTY4MmNlNjIxZDEzZjFmYmZi
NTVmYjAzYTNjMDJiYWUwMzYuLjk4ZDIzNjk5ZjlhZGQ1MzliOTI1NTEwMWI5MDJhMTNlYTA4Y2E5
ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVs
ZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlw
bGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTExLDcgKzExLDcgQEAg
TGVmdC9SaWdodCAtIE1vdmUgZm9jdXMgZmllbGQgaW5zaWRlIGVsZW1lbnQKIFVwL0Rvd24gLSBJ
bmNyZW1lbnQvZGVjcmVtZW50IHZhbHVlIG9mIGZvY3VzIGZpZWxkCiBUYWIgLSBNb3ZlIGZvY3Vz
IGZpZWxkCiBCYWNrc3BhY2UgLSBNYWtlIHZhbHVlIGVtcHR5Ci0gCisgIAogPT0gRGlnaXQga2V5
cyA9PQogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDc6NTYiCiA9PSBMZWZ0L1JpZ2h0IGtleXMgPT0K
QEAgLTI2LDYgKzI2LDEwIEBAIFBBU1MgaW5wdXQudmFsdWUgaXMgIjE0OjU4IgogUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMDM6MDUiCiBQQVNTIGlucHV0LnZhbHVlIGlzICIwNzowNSIKIFBBU1MgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5pZCBpcyAiYW5vdGhlciIKKz09IFNoZml0K1RhYiBrZXkgPT0K
K1BBU1MgaW5wdXQudmFsdWUgaXMgIjE1OjAwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTU6MDMi
CitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgaXMgImJlZm9yZSIKID09IEJhY2tzcGFj
ZSBrZXkgPT0KIFBBU1MgaW5wdXQudmFsdWUgaXMgIiIKID09IERlbGV0ZSBrZXkgPT0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1t
dWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2
ZW50cy5odG1sCmluZGV4IDdmMzUyMTJjODMyM2RjZWJjY2FmMzQ5NDM4NDU4YjhjYzA3MzRhYjcu
LjFkNThhMTA1YmQ4ZGMzY2E4MDNhOTgzOTJkNjY1Y2ZhZmMzOTk3ODUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1m
aWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90
aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMu
aHRtbApAQCAtMTYsNiArMTYsNyBAQCBUZXN0IGZvbGxvd2luZyBrZXlzOgogICAgIDxsaT5UYWIg
LSBNb3ZlIGZvY3VzIGZpZWxkPC9saT4KICAgICA8bGk+QmFja3NwYWNlIC0gTWFrZSB2YWx1ZSBl
bXB0eTwvbGk+CiA8L3VsPgorPGlucHV0IGlkPSJiZWZvcmUiPgogPGlucHV0IGlkPSJpbnB1dCIg
dHlwZT0idGltZSI+CiA8aW5wdXQgaWQ9ImFub3RoZXIiPgogPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CkBAIC05Nyw2ICs5OCwxOCBAQCBrZXlEb3duKCdcdCcpOwoga2V5RG93bignXHQnKTsKIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCcsICdhbm90aGVy
Jyk7CiAKK2JlZ2luVGVzdCgnU2hmaXQrVGFiIGtleScsICcwMzowMCcpOworYW5vdGhlci5mb2N1
cygpOwora2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5J10pOwora2V5RG93bignUCcpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcxNTowMCcpOwora2V5RG93bignXHQnLCBb
J3NoaWZ0S2V5J10pOwora2V5RG93bignMycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1
dC52YWx1ZScsICcxNTowMycpOwora2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5J10pOwora2V5RG93
bignXHQnLCBbJ3NoaWZ0S2V5J10pOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmlkJywgJ2JlZm9yZScpOworCiBiZWdpblRlc3QoJ0JhY2tzcGFjZSBrZXkn
LCAnMTI6MzQnKTsKIGtleURvd24oIlxiIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0
LnZhbHVlJywgJycpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161605</attachid>
            <date>2012-08-30 19:21:29 -0700</date>
            <delta_ts>2012-08-30 20:30:55 -0700</delta_ts>
            <desc>Patch 7</desc>
            <filename>bug-95168-20120831112117.patch</filename>
            <type>text/plain</type>
            <size>40208</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyODk0YzY4YzhmZDM2
M2ZkYTAyNTQzZjljNmMzOWUxZjQ1ODhkNC4uZTRlYTZmNDFiMjhiZGQ4NDhmYjRkZmEwNDAyNTM0
YTQ0YmU1OWM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDEyLTA4LTI5ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBTaGlm
dCtUYWIgc2hvdWxkIGZvY3VzIHRoZSBsYXN0IGZpZWxkIG9mIG11bHRpcGxlIGZpZWxkcyB0aW1l
IGlucHV0IFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NTE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggY2hhbmdlcyBmb2N1cyBoYW5kbGluZyBpbiBEYXRlVGltZUVkaXRFbGVtZW50
IGNsYXNzIGZvcgorICAgICAgICBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAg
ICAgICBDdXJyZW50IGltcGxlbWVudGF0aW9uIGNvbnRyb2xzIGZvY3VzIGluIGZpZWxkcyBieSBE
YXRlVGltZUVkaXRFbGVtZW50CisgICAgICAgIGFuZCBhIGZvY3VzIGZpZWxkIGlzIHRyYWNrZWQg
bV9mb2N1c0ZpZWxkSW5kZXggbWVtYmVyIHZhcmlhYmxlLiBJbgorICAgICAgICBjdXJyZW50IGlt
cGxlbWVudGF0aW9uLCBpdCBpcyBoYXJkIHRvIHNldCBmb2N1cyB0byB0aGUgbGFzdCBmaWVsZCB3
aGVuCisgICAgICAgIGl0IGdldHMgZm9jdXMgYnkgU2hpZnQrVGFiLCBiZWNhdXNlIHdlIGRvbid0
IGtub3cgaG93IERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgZ2V0cyBmb2N1cy4KKworICAg
ICAgICBJbiB0aGlzIG5ldyBpbXBsZW1lbnRhdGlvbiwgRGF0ZVRpbWVFZGl0RWxlbWVudCBkb2Vz
bid0IGNvbnRyb2wgZm9jdXMKKyAgICAgICAgcmF0aGVyIEZvY3VzQ29udHJvbGxlciBjbGFzcyBj
b250cm9scyBmb2N1czoKKyAgICAgICAgIC0gV2Ugc2V0IGZvY3VzIHRvIERhdGVUaW1lRmllbGRF
bGVtZW50IGluc3RlYWQgb2YgSFRNTElucHV0RWxlbWVudAorICAgICAgICAgICB3aGljaCBpcyBz
aGFkb3cgaG9zdCBvZiBEYXRlVGltZUVkaXRFbGVtZW50IGZvciBjb250cm9sbGluZyBmb2N1cwor
ICAgICAgICAgICBieSBGb2N1c0NvbnRyb2xsZXIuCisgICAgICAgICAtIEZvY3VzL2JsdXIgZXZl
bnRzIGluIERhdGVUaW1lRmllbGRFbGVtZW50IGFyZSByb3V0ZWQgdG8gSFRNTElucHV0RWxlbWVu
dAorICAgICAgICAgICBieSBzaGFkb3cgRE9NIG1lY2hhbmlzbS4KKyAgICAgICAgIC0gVGltZUlu
cHV0VHlwZSBjbGFzcyBvdmVycmlkZXMgSFRNTElOcHV0RWxlbWVudDo6Ymx1cigpIGFuZCBmb2N1
cygpCisgICAgICAgICAgIGZ1bmN0aW9ucyBmb3IgZGVsZWdhdGluZyBibHVyL2ZvY3VzIGJlaGF2
aW9yIHRvIERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgICAgYnkgY2FsbGluZyBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpibHVyQnlPd25lcigpL2ZvY3VzQnlPd25lcigpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggYWZmZWN0cyBvbmx5IHBvcnRzIHdoaWNoIGVuYWJsZSBib3RoIEVOQUJMRV9JTlBV
VF9UWVBFX1RJTUUKKyAgICAgICAgYW5kIEVOQUJMRV9JTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRz
L3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCisgICAgICAg
IFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgbmV3IHRlc3QgY2FzZSBmb3IgU2hpZnQrVGFiIGludG8g
ZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEJsdXIpOiBBZGRlZCBmb3IgdGhlIGlucHV0IGVsZW1lbnQgbm90IHRvIGJl
IG1hdGNoZWQgImZvY3VzIiBwc2V1ZG8gY2xhc3MgZm9yIHJlbW92aW5nIGZvY3VzIHJpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEZvY3VzKTogIEFkZGVkIGZvciB0aGUgaW5wdXQgZWxlbWVudCB0byBiZSBt
YXRjaGVkICJmb2N1cyIgcHNldWRvIGNsYXNzIGZvciBhZGRpbmcgZm9jdXMgcmluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6
OmVkaXRDb250cm9sTW91c2VGb2N1cyk6IFJlbW92ZWQuIERhdGVUaW1lRWRpdEVsZW1lbnQgbm8g
bG9uZ2VyIHNldCBmb2N1cyB0byBIVE1MSW5wdXRFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6
VGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6Zm9jdXNBbmRTZWxl
Y3RFZGl0Q29udHJvbE93bmVyKTogUmVtb3ZlZC4gSW4gdGhpcyBwYXRjaCwgc2V0dHRpbmcgZm9j
dXMgdG8gZmllbGQgaXMgaGFuZGxlZCBieSBEYXRlVGltZUVkaXRFbGVtZW50LgorICAgICAgICAo
V2ViQ29yZTo6VGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6aXNF
ZGl0Q29udHJvbE93bmVyRm9jdXNlZCk6IFJldm1vZWQuIEZvY3VzQ29udHJvbGxlciBtYW5hZ2Vz
IGZvY3VzIG5hdmlnYXRpb24gaW4gZmllbGRzIHJhdGhlciB0aGFuIERhdGVUaW1lRWRpdEVsZW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpibHVyKTogQWRkZWQgZm9yIGRl
bGVnYXRpbmcgYmx1cigpIGFjdGlvbiB0byBEYXRlVGltZUVkaXRFbGVtZW50LgorICAgICAgICAo
V2ViQ29yZTo6VGltZUlucHV0VHlwZTo6Zm9jdXMpOiBBZGRlZCBmb3IgZGVsZWdhdGluZyBmb2N1
cygpIGFjdGlvbiB0byBEYXRlVGltZUVkaXRFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6VGlt
ZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudCk6IFJlbW92ZWQuIEhUTUxJbnB1dEVs
ZW1lbnQgZm9yICJ0aW1lIiBpbnB1dCB0eXBlIG5vIGxvbmdlciBnZXQgZm9jdXMuCisgICAgICAg
IChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKTogQWRkZWQgZm9y
IGFza2luZyBGb2N1c0NvbnRyb2xsZXIgdG8gd2FsayBpbnRvIHNoYWRvdyBET00gdHJlZSBvbiBp
bnB1dCB0eXBlICJ0aW1lIi4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzS2V5
Ym9hcmRGb2N1c2FibGUpOiBDaGFuZ2VkIGZvciAiaW5wdXQiIGVsZW1lbnQgbm90IHRvIGhhdmUg
Zm9jdXMuCisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxl
KTogIENoYW5nZWQgZm9yICJpbnB1dCIgZWxlbWVudCBub3QgdG8gaGF2ZSBmb2N1cy4KKyAgICAg
ICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKERhdGVUaW1lRWRpdENvbnRyb2xP
d25lckltcGwpOiBDaGFuZ2VkIGZvciBuZXcgZGVmaW5pdGlvbiBvZiBEYXRlVGltZUVkaXRDb250
cm9sT3duZXIuCisgICAgICAgIChUaW1lSW5wdXRUeXBlKTogQ2hhbmdlZCBmb3IgbmV3IGRlZmlu
aXRpb24gb2YgRGF0ZVRpbWVFZGl0RWxlbWVudC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1l
bnQ6OkRhdGVUaW1lRWRpdEVsZW1lbnQpOiBSZW1vdmVkIGRyb3BwZWQgbWVtYmVyIHZhcmlhYmxl
IG1fZm9jdXNGaWVsZEluZGV4LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVu
dDo6Ymx1ckJ5T3duZXIpOiBBZGRlZCBmb3IgYmx1cigpIGFjdGlvbiBhc2VrZCBieSBvd25lci4K
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmRpZEJsdXJGcm9tRmllbGQp
OiBBZGRlZCBmb3IgY2FsbGluZyBEYXRlVGltZUVkaXRDb250cm9sT3duZXI6OmRpZEJsdXJGcm9t
Q29udHJvbCgpLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGlkRm9j
dXNPbkZpZWxkKTogQWRkZWQgZm9yIGNhbGxpbmcgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVyOjpk
aWRGb2N1c09uQ29udHJvbCgpLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVu
dDo6ZmllbGRJbmRleE9mKTogQWRkZWQgZm9yIG1hcHBpbmcgRGF0ZVRpbWVGaWVsZEVsZW1lbnQg
dG8gZmllbGQgaW5kZXguCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpm
b2N1c0J5T3duZXIpOiBBZGRlZCBmb3IgZm9jdXMoKSBhY3Rpb24gYXNla2QgYnkgb3duZXIuCisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0ZpZWxkQXQpOiAgUmVt
b3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzZWRGaWVs
ZEluZGV4KTogQWRkZWQgYXMgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNlZEZpZWxkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKTogQ2hhbmdlZCB0byBwYXNz
IGEgZmllbGQgdG8gZm9jdXNPbk5leHQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRp
dEVsZW1lbnQ6OmZvY3VzT25QcmV2aW91c0ZpZWxkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25Pd25lcik6IENo
YW5nZWQgZm9yIHNldHRpbmcgZm9jdXMgdG8gdGhlIGZpcnN0IGZpZWxkLgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6IFJlbW92ZWQu
IE1vdmVkIGhhbmRsaW5nIG9mIExlZnQvUmlnaHQga2V5cyB0byBEYXRlVGltZUZpZWxkRWxlbWVu
dC4gUmVtb3ZlZCBUYWIta2V5IGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVF
ZGl0RWxlbWVudDo6aGFuZGxlTW91c2VFdmVudCk6IFJlbW92ZWQuIERhdGVUaW1lRWRpdCBkb2Vz
bid0IGhhbmRsZSBtb3VzZSBjbGljayBzaW5jZSB0aGlzIHBhdGNoLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KTogQ2hhbmdlZCB0byB1c2UgZm9jdXNGaWVs
ZEluZGV4KCkgYW5kIERhdGVUaW1lRmllbGRFbGVtZW50Ojpmb2N1cygpLgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6bmV4dEZpZWxkSW5kZXgpOiBSZW1vdmVkLiBmb2N1
c09uTmV4dEZpZWxkIGRvZXMgc2FtZXRoaW5nIGFuZCBzZXRzIGZvY3VzLgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6cHJldmlvdXNGaWVsZEluZGV4KTogUmVtb3ZlZC4g
Zm9jdXNPblByZXZpb3VzRmllbGQgZG9lcyBzYW1ldGhpbmcgYW5kIHNldHMgZm9jdXMuCisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldExheW91dCk6IENoYW5nZWQg
dG8gcmVtb3ZlIG1fZm9jdXNGaWVsZEluZGV4IHZhcmlhYmxlIHJlZmVyZW5jZS4KKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBDaGFu
Z2VkIHRvIHJlbW92ZSBmb2N1cyBuYXZpZ2F0aW9uIHJlbGF0ZWQgZXZlbnRzLCBibHVlL2ZvY3Vz
L21vdXNlLCBoYW5kbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6
OnNob3VsZFNwaW5CdXR0b25SZXNwb25kVG9XaGVlbEV2ZW50cyk6IENoYW5nZWQgdG8gY2hlY2sg
Zm9jdXMgZmllbGQgaW5zdGVhZCBvZiBhc2tpbmcgb3duZXIuCisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcERvd24pOiBDaGFuZ2VkIHRvIHVzZSBm
b2N1c0ZpZWxkKCkgaW5zdGVhZCBvZiBtX2ZvY3VzRmllbGRJbmRleC4KKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnNwaW5CdXR0b25TdGVwVXApOiBkaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnVwZGF0ZVVJU3RhdGUpOiBkaXR0by4K
KyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50Lmg6CisgICAgICAgIChF
ZGl0Q29udHJvbE93bmVyKTogQWRkZWQgZGlkQmx1ckZyb21GaWVsZCgpIGFuZCBkaWRGb2N1c09u
RmllbGQoKSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuIFJlbW92ZWQgZm9jdXNBbmRTZWxlY3RFZGl0
Q29udHJvbE93bmVyLCBpdCB3YXMgdXNlZCBmb3Igc2V0IGZvY3VzIHRvIEhUTUxJbnB1dEVsZW1l
bnQsIGFuZCBpc0VkaXRDb250cm9sT3duZXJGb2N1c2VkLgorICAgICAgICAoRGF0ZVRpbWVFZGl0
RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhh
bmRsZXIpOiBDaGFuZ2VkIHRvIGhhbmRsZSBibHVyIGFuZCBmb2N1cyBldmVudHMuCisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5k
bGVyKTogQ2hhbmdlZCB0byBoYW5kbGUgTGVmdC9SaWdodCBrZXlzLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRpZEJsdXIpOiBBZGRlZCB0byBjYWxsIEZpZWxkT3du
ZXI6OmRpZEJsdXJGcm9tRmllbGQoKSB0byByZW1vdmUgZm9jdXMgcmluZyBmcm9tIG93bmVyIGVs
ZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGlkRm9jdXMp
OiBBZGRlZCB0byBjYWxsIEZpZWxkT3duZXI6OmRpZEZvY3VzT25GaWVsZCgpICB0byBhZGQgZm9j
dXMgcmluZyB0byBvd25lciBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQpOiBBZGRlZCBmb3IgbW92aW5nIGZvY3VzIHRvIG5l
eHQgZmllbGQgZm9yIERhdGVUaW1lTnVtYmVyaWNGaWVsZEVsbWVudAorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmlzRm9jdXNhYmxlKTogQWRkZWQgdG8gbWFrZSBEYXRl
VGltZUZpZWxkRWxlbWVudCBmb2N1c2FibGUuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZp
ZWxkRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6ICBBZGRlZCB0byBtYWtlIERhdGVUaW1lRmllbGRF
bGVtZW50IGZvY3VzYWJsZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxl
bWVudC5oOgorICAgICAgICAoRmllbGRPd25lcik6IEFkZGVkIGRlY2xhcmF0aW9ucyBmb3IgZm9j
dXNhYmxlIGhhbmRsaW5nLgorICAgICAgICAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOiBkaXR0by4K
KyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpkaWRCbHVyKTog
QWRkZWQgZm9yIHJlc2V0dGluZyB0eXBlLWFoZWFkIHRpbWVyLgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpkaWRGb2N1cyk6IEFkZGVkIGZvciByZXNldHRp
bmcgdHlwZS1haGVhZCB0aW1lci4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQuaDoKKyAgICAgICAgKERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCk6
IEFkZGVkIGRpZEJsdXIoKSBhbmQgZGlkRm9jdXMoKSBkZWNsYXJhdGlvbnMuCisKIDIwMTItMDgt
MjkgIEFhcm9uIENvbHdlbGwgIDxhY29sd2VsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRk
IFdlYktpdCBwcmVmaXggdG8gTWVkaWFTb3VyY2UsIFNvdXJjZUJ1ZmZlciwgJiBTb3VyY2VCdWZm
ZXJMaXN0IERPTVdpbmRvdyBjb25zdHJ1Y3RvciBhdHRyaWJ1dGVzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGltZUlucHV0VHlwZS5jcHAKaW5kZXggNTg2MTAzMjMxMTVjYTMxMjRlNTBjZDg4N2VkNzEyYjNh
NmM1OWRiOS4uYmJlZWM0MzQzNWE4NzIyMTMyOGFjODYzY2E1YmI3NGIyYTNlMjNiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0xMjQsOSArMTI0LDIyIEBAIFRpbWVJ
bnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6On5EYXRlVGltZUVkaXRDb250
cm9sT3duZXJJbXBsKCkKIHsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRD
b250cm9sT3duZXJJbXBsOjplZGl0Q29udHJvbE1vdXNlRm9jdXMoKQordm9pZCBUaW1lSW5wdXRU
eXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRCbHVyRnJvbUNvbnRyb2woKQog
ewotICAgIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPmZvY3VzKCk7CisgICAgLy8gV2UgZG9u
J3QgbmVlZCB0byBjYWxsIGJsdXIoKS4gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBjb250
cm9sCisgICAgLy8gbG9zdCBmb2N1cy4KKworICAgIC8vIFJlbW92ZSBmb2N1cyByaW5nIGJ5IENT
UyAiZm9jdXMiIHBzZXVkbyBjbGFzcy4KKyAgICBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5z
ZXRGb2N1cyhmYWxzZSk7Cit9CisKK3ZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29u
dHJvbE93bmVySW1wbDo6ZGlkRm9jdXNPbkNvbnRyb2woKQoreworICAgIC8vIFdlIGRvbid0IG5l
ZWQgdG8gY2FsbCBmb2N1cygpLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGNvbnRyb2wK
KyAgICAvLyBnb3QgZm9jdXMuCisKKyAgICAvLyBBZGQgZm9jdXMgcmluZyBieSBDU1MgImZvY3Vz
IiBwc2V1ZG8gY2xhc3MuCisgICAgbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+c2V0Rm9jdXMo
dHJ1ZSk7CiB9CiAKIHZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
SW1wbDo6ZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKQpAQCAtMTM4LDExICsxNTEsOSBAQCB2b2lk
IFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVkaXRDb250cm9s
VmFsdWVDaGFuZ2VkKCkKICAgICBpbnB1dC0+ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50
KCk7CiB9CiAKLXZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1w
bDo6Zm9jdXNBbmRTZWxlY3RFZGl0Q29udHJvbE93bmVyKCkKK2Jvb2wgVGltZUlucHV0VHlwZTo6
aGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0CiB7Ci0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1l
bnQ+IGlucHV0KG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCkpOwotICAgIGlucHV0LT5mb2N1cygp
OwotICAgIGlucHV0LT5zZWxlY3QoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgVGlt
ZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6aXNFZGl0Q29udHJvbE93
bmVyRGlzYWJsZWQoKSBjb25zdApAQCAtMTUwLDExICsxNjEsNiBAQCBib29sIFRpbWVJbnB1dFR5
cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lckRpc2Fi
bGVkKCkgYwogICAgIHJldHVybiBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5yZWFkT25seSgp
OwogfQogCi1ib29sIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6
OmlzRWRpdENvbnRyb2xPd25lckZvY3VzZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3RpbWVJ
bnB1dFR5cGUuZWxlbWVudCgpLT5mb2N1c2VkKCk7Ci19Ci0KIGJvb2wgVGltZUlucHV0VHlwZTo6
RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6aXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHko
KSBjb25zdAogewogICAgIHJldHVybiBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5kaXNhYmxl
ZCgpOwpAQCAtMTczLDYgKzE3OSwxMiBAQCBUaW1lSW5wdXRUeXBlOjp+VGltZUlucHV0VHlwZSgp
CiAgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+cmVtb3ZlRWRpdENvbnRyb2xPd25lcigp
OwogfQogCit2b2lkIFRpbWVJbnB1dFR5cGU6OmJsdXIoKQoreworICAgIGlmIChtX2RhdGVUaW1l
RWRpdEVsZW1lbnQpCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+Ymx1ckJ5T3duZXIo
KTsKK30KKwogUmVuZGVyT2JqZWN0KiBUaW1lSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsKICAgICByZXR1cm4g
SW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihhcmVuYSwgc3R5bGUpOwpAQCAtMTk3LDYgKzIwOSwx
MiBAQCB2b2lkIFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKICAgICBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7CiB9CiAKK3ZvaWQg
VGltZUlucHV0VHlwZTo6Zm9jdXMoYm9vbCkKK3sKKyAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVt
ZW50KQorICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmZvY3VzQnlPd25lcigpOworfQor
CiB2b2lkIFRpbWVJbnB1dFR5cGU6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpCiB7CiAgICAg
aWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKQEAgLTIxNCwyNSArMjMyLDE0IEBAIHZvaWQgVGlt
ZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAg
IGZvcndhcmRFdmVudChldmVudCk7CiB9CiAKLXZvaWQgVGltZUlucHV0VHlwZTo6aGFuZGxlRE9N
QWN0aXZhdGVFdmVudChFdmVudCogZXZlbnQpCi17Ci0gICAgaWYgKGVsZW1lbnQoKS0+ZGlzYWJs
ZWQoKSB8fCBlbGVtZW50KCktPnJlYWRPbmx5KCkgfHwgIWVsZW1lbnQoKS0+cmVuZGVyZXIoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAg
ICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5mb2N1cygpOwotCi0gICAgZXZlbnQtPnNldERlZmF1
bHRIYW5kbGVkKCk7Ci19Ci0KIGJvb2wgVGltZUlucHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJs
ZShLZXlib2FyZEV2ZW50KikgY29uc3QKIHsKLSAgICByZXR1cm4gZWxlbWVudCgpLT5pc1RleHRG
b3JtQ29udHJvbEZvY3VzYWJsZSgpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBUaW1l
SW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZWxlbWVu
dCgpLT5pc1RleHRGb3JtQ29udHJvbEZvY3VzYWJsZSgpOworICAgIHJldHVybiBmYWxzZTsKIH0K
IAogdm9pZCBUaW1lSW5wdXRUeXBlOjptaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RpbWVJbnB1dFR5cGUuaAppbmRleCBlZTg3N2RjZjFkNmNjY2RmNWIxNzQ1YjExY2Nm
OTA5OTU5Y2ZlMzQ3Li5hY2Q1N2IzNGRlN2MzNzRkNTdlOTliOGJkNTdlZjMyZTFhZTYyOWUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtNjgsMTEgKzY4LDEwIEBAIHByaXZh
dGU6CiAgICAgICAgIHZpcnR1YWwgfkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoKTsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBlZGl0Q29udHJvbE1vdXNlRm9jdXMo
KSBPVkVSUklERSBGSU5BTDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEJsdXJGcm9tQ29udHJv
bCgpIE9WRVJSSURFIEZJTkFMOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXNPbkNvbnRy
b2woKSBPVkVSUklERSBGSU5BTDsKICAgICAgICAgdmlydHVhbCB2b2lkIGVkaXRDb250cm9sVmFs
dWVDaGFuZ2VkKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1c0Fu
ZFNlbGVjdEVkaXRDb250cm9sT3duZXIoKSBPVkVSUklERSBGSU5BTDsKICAgICAgICAgdmlydHVh
bCBib29sIGlzRWRpdENvbnRyb2xPd25lckRpc2FibGVkKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJS
ZWFkT25seSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogCiAgICAgICAgIFRpbWVJbnB1dFR5cGUm
IG1fdGltZUlucHV0VHlwZTsKQEAgLTgxLDEzICs4MCwxNSBAQCBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOwogCiAgICAgLy8gSW5wdXRUeXBl
IGZ1bmN0aW9ucworICAgIHZpcnR1YWwgdm9pZCBibHVyKCkgT1ZFUlJJREUgRklOQUw7CiAgICAg
dmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVy
U3R5bGUqKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hh
ZG93U3VidHJlZSgpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U2hh
ZG93U3VidHJlZSgpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZEF0
dHJpYnV0ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMo
Ym9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1
YWwgdm9pZCBmb3J3YXJkRXZlbnQoRXZlbnQqKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCopIE9WRVJSSURFIEZJTkFMOwogICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURF
IEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QgT1ZF
UlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9h
cmRFdmVudCopIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNl
Rm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBib29sIGlzVGV4
dEZpZWxkKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCmluZGV4IDQ0YTFjMmIwYTU2MWUyNjNi
ZTAyZmU5MDEwZjE2ZmNjMjA0NThmY2QuLjdlZTgyMTZjNzFiNTBmMzhlY2UwNTZlNmRlNWM1Mjc5
YTUxODgxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RWRpdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RWRpdEVsZW1lbnQuY3BwCkBAIC0xOTUsNyArMTk1LDYgQEAgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
RGF0ZVRpbWVFZGl0RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEVkaXRDb250cm9sT3duZXIm
IGUKICAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCiAgICAgLCBtX2VkaXRD
b250cm9sT3duZXIoJmVkaXRDb250cm9sT3duZXIpCiAgICAgLCBtX3NwaW5CdXR0b24oMCkKLSAg
ICAsIG1fZm9jdXNGaWVsZEluZGV4KGludmFsaWRGaWVsZEluZGV4KQogewogICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkYXRlVGltZUVkaXRQc2V1ZG9JZCwgKCItd2Via2l0
LWRhdGV0aW1lLWVkaXQiKSk7CiAgICAgc2V0U2hhZG93UHNldWRvSWQoZGF0ZVRpbWVFZGl0UHNl
dWRvSWQpOwpAQCAtMjE4LDEyICsyMTcsMzAgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojph
ZGRGaWVsZChQYXNzUmVmUHRyPERhdGVUaW1lRmllbGRFbGVtZW50PiBmaWVsZCkKICAgICBhcHBl
bmRDaGlsZChmaWVsZCk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Ymx1ckJ5T3du
ZXIoKQoreworICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmb2N1c2VkRmll
bGQoKSkKKyAgICAgICAgZmllbGQtPmJsdXIoKTsKK30KKwogUGFzc1JlZlB0cjxEYXRlVGltZUVk
aXRFbGVtZW50PiBEYXRlVGltZUVkaXRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
LCBFZGl0Q29udHJvbE93bmVyJiBlZGl0Q29udHJvbE93bmVyKQogewogICAgIFJlZlB0cjxEYXRl
VGltZUVkaXRFbGVtZW50PiBjb250YWluZXIgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVFZGl0RWxl
bWVudChkb2N1bWVudCwgZWRpdENvbnRyb2xPd25lcikpOwogICAgIHJldHVybiBjb250YWluZXIu
cmVsZWFzZSgpOwogfQogCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRpZEJsdXJGcm9tRmll
bGQoKQoreworICAgIGlmIChtX2VkaXRDb250cm9sT3duZXIpCisgICAgICAgIG1fZWRpdENvbnRy
b2xPd25lci0+ZGlkQmx1ckZyb21Db250cm9sKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxl
bWVudDo6ZGlkRm9jdXNPbkZpZWxkKCkKK3sKKyAgICBpZiAobV9lZGl0Q29udHJvbE93bmVyKQor
ICAgICAgICBtX2VkaXRDb250cm9sT3duZXItPmRpZEZvY3VzT25Db250cm9sKCk7Cit9CisKIHZv
aWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKQogewogICAgIHVw
ZGF0ZVVJU3RhdGUoKTsKQEAgLTIzNCw3MyArMjUxLDQyIEBAIERhdGVUaW1lRmllbGRFbGVtZW50
KiBEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZEF0KHNpemVfdCBmaWVsZEluZGV4KSBjb25zdAog
ICAgIHJldHVybiBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpID8gbV9maWVsZHNbZmllbGRJ
bmRleF0gOiAwOwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzQW5kU2VsZWN0
U3BpbkJ1dHRvbk93bmVyKCkKK3NpemVfdCBEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZEluZGV4
T2YoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmIGZpZWxkKSBjb25zdAogewotICAgIGlmICgh
bV9lZGl0Q29udHJvbE93bmVyKQotICAgICAgICByZXR1cm47Ci0gICAgbV9lZGl0Q29udHJvbE93
bmVyLT5mb2N1c0FuZFNlbGVjdEVkaXRDb250cm9sT3duZXIoKTsKKyAgICBmb3IgKHNpemVfdCBm
aWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4
KSB7CisgICAgICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4XSA9PSAmZmllbGQpCisgICAgICAg
ICAgICByZXR1cm4gZmllbGRJbmRleDsKKyAgICB9CisgICAgcmV0dXJuIGludmFsaWRGaWVsZElu
ZGV4OwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzRmllbGRBdChzaXplX3Qg
bmV3Rm9jdXNGaWVsZEluZGV4KQordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0FuZFNl
bGVjdFNwaW5CdXR0b25Pd25lcigpCiB7Ci0gICAgaWYgKG1fZm9jdXNGaWVsZEluZGV4ID09IG5l
d0ZvY3VzRmllbGRJbmRleCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQqIGNvbnN0IG5ld0ZvY3VzRmllbGQgPSBmaWVsZEF0KG5ld0ZvY3VzRmllbGRJbmRleCk7
Ci0gICAgaWYgKG5ld0ZvY3VzRmllbGQgJiYgbmV3Rm9jdXNGaWVsZC0+aXNSZWFkT25seSgpKQor
ICAgIGlmIChmb2N1c2VkRmllbGRJbmRleCgpICE9IGludmFsaWRGaWVsZEluZGV4KQogICAgICAg
ICByZXR1cm47CiAKLSAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgY3VycmVudEZvY3Vz
RmllbGQgPSBmaWVsZEF0KG1fZm9jdXNGaWVsZEluZGV4KTsKLQotICAgIGlmIChjdXJyZW50Rm9j
dXNGaWVsZCkKLSAgICAgICAgY3VycmVudEZvY3VzRmllbGQtPnNldEZvY3VzKGZhbHNlKTsKLQot
ICAgIGlmICghbmV3Rm9jdXNGaWVsZCkgewotICAgICAgICBtX2ZvY3VzRmllbGRJbmRleCA9IGlu
dmFsaWRGaWVsZEluZGV4OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9mb2N1c0Zp
ZWxkSW5kZXggPSBuZXdGb2N1c0ZpZWxkSW5kZXg7Ci0gICAgbmV3Rm9jdXNGaWVsZC0+c2V0Rm9j
dXModHJ1ZSk7CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9IGZpZWxkQXQo
MCkpCisgICAgICAgIGZpZWxkLT5mb2N1cygpOwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1l
bnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdmVudCkKK3Zv
aWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNCeU93bmVyKCkKIHsKLSAgICBpZiAoaXNEaXNh
YmxlZCgpIHx8IGlzUmVhZE9ubHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFmaWVs
ZEF0KG1fZm9jdXNGaWVsZEluZGV4KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGtleWJv
YXJkRXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIgPSBrZXlib2FyZEV2ZW50
LT5rZXlJZGVudGlmaWVyKCk7Ci0KLSAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiTGVmdCIpIHsK
LSAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgY29u
c3Qgc2l6ZV90IGZpZWxkSW5kZXggPSBwcmV2aW91c0ZpZWxkSW5kZXgoKTsKLSAgICAgICAgaWYg
KGZpZWxkQXQoZmllbGRJbmRleCkpCi0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQoZmllbGRJbmRl
eCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50
KiBmaWVsZCA9IGZpZWxkQXQoMCkpCisgICAgICAgIGZpZWxkLT5mb2N1cygpOworfQogCi0gICAg
aWYgKGtleUlkZW50aWZpZXIgPT0gIlJpZ2h0IikgewotICAgICAgICBrZXlib2FyZEV2ZW50LT5z
ZXREZWZhdWx0SGFuZGxlZCgpOwotICAgICAgICBjb25zdCBzaXplX3QgZmllbGRJbmRleCA9IG5l
eHRGaWVsZEluZGV4KCk7Ci0gICAgICAgIGlmIChmaWVsZEF0KGZpZWxkSW5kZXgpKQotICAgICAg
ICAgICAgZm9jdXNGaWVsZEF0KGZpZWxkSW5kZXgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQor
RGF0ZVRpbWVGaWVsZEVsZW1lbnQqIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzZWRGaWVsZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGZpZWxkQXQoZm9jdXNlZEZpZWxkSW5kZXgoKSk7Cit9CiAK
LSAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiVSswMDA5IikgewotICAgICAgICBjb25zdCBzaXpl
X3QgZmllbGRJbmRleCA9IGtleWJvYXJkRXZlbnQtPmdldE1vZGlmaWVyU3RhdGUoIlNoaWZ0Iikg
PyBwcmV2aW91c0ZpZWxkSW5kZXgoKSA6IG5leHRGaWVsZEluZGV4KCk7Ci0gICAgICAgIGlmIChm
aWVsZEF0KGZpZWxkSW5kZXgpKSB7Ci0gICAgICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZh
dWx0SGFuZGxlZCgpOwotICAgICAgICAgICAgZm9jdXNGaWVsZEF0KGZpZWxkSW5kZXgpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CitzaXplX3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
Zm9jdXNlZEZpZWxkSW5kZXgoKSBjb25zdAoreworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXgg
PSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKKyAgICAg
ICAgaWYgKG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5mb2N1c2VkKCkpCisgICAgICAgICAgICByZXR1
cm4gZmllbGRJbmRleDsKICAgICB9CisgICAgcmV0dXJuIGludmFsaWRGaWVsZEluZGV4OwogfQog
CiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkVmFsdWVDaGFuZ2VkKCkKQEAgLTMwOSwz
MCArMjk1LDM0IEBAIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRWYWx1ZUNoYW5nZWQo
KQogICAgICAgICBtX2VkaXRDb250cm9sT3duZXItPmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCk7
CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCgpCitib29s
IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQoY29uc3QgRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQmIGZpZWxkKQogewotICAgIGlmIChtX2ZvY3VzRmllbGRJbmRleCAhPSBpbnZhbGlk
RmllbGRJbmRleCkKLSAgICAgICAgZm9jdXNGaWVsZEF0KG5leHRGaWVsZEluZGV4KCkpOworICAg
IGNvbnN0IHNpemVfdCBzdGFydEZpZWxkSW5kZXggPSBmaWVsZEluZGV4T2YoZmllbGQpOworICAg
IGlmIChzdGFydEZpZWxkSW5kZXggPT0gaW52YWxpZEZpZWxkSW5kZXgpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gc3RhcnRGaWVsZEluZGV4ICsg
MTsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KSB7CisgICAgICAg
IGlmICghbV9maWVsZHNbZmllbGRJbmRleF0tPmlzUmVhZE9ubHkoKSkgeworICAgICAgICAgICAg
bV9maWVsZHNbZmllbGRJbmRleF0tPmZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBtb3VzZUV2ZW50KQorYm9v
bCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c09uUHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGlt
ZUZpZWxkRWxlbWVudCYgZmllbGQpCiB7Ci0gICAgaWYgKGlzRGlzYWJsZWQoKSB8fCBpc1JlYWRP
bmx5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtb3VzZUV2ZW50LT50eXBlKCkgIT0g
ZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50IHx8IG1vdXNlRXZlbnQtPmJ1dHRvbigpICE9IExl
ZnRCdXR0b24pCi0gICAgICAgIHJldHVybjsKLQotICAgIE5vZGUqIGNvbnN0IHJlbGF0ZWRUYXJn
ZXQgPSBtb3VzZUV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7Ci0gICAgZm9yIChzaXplX3QgZmll
bGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkg
ewotICAgICAgICBpZiAobV9maWVsZHNbZmllbGRJbmRleF0gPT0gcmVsYXRlZFRhcmdldCkgewot
ICAgICAgICAgICAgbW91c2VFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgICAg
IGZvY3VzRmllbGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAgICAgIGlmIChtX2VkaXRDb250cm9s
T3duZXIpCi0gICAgICAgICAgICAgICAgbV9lZGl0Q29udHJvbE93bmVyLT5lZGl0Q29udHJvbE1v
dXNlRm9jdXMoKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNvbnN0IHNpemVfdCBzdGFydEZp
ZWxkSW5kZXggPSBmaWVsZEluZGV4T2YoZmllbGQpOworICAgIGlmIChzdGFydEZpZWxkSW5kZXgg
PT0gaW52YWxpZEZpZWxkSW5kZXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBzaXplX3Qg
ZmllbGRJbmRleCA9IHN0YXJ0RmllbGRJbmRleDsKKyAgICB3aGlsZSAoZmllbGRJbmRleCA+IDAp
IHsKKyAgICAgICAgLS1maWVsZEluZGV4OworICAgICAgICBpZiAoIW1fZmllbGRzW2ZpZWxkSW5k
ZXhdLT5pc1JlYWRPbmx5KCkpIHsKKyAgICAgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5m
b2N1cygpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CisgICAg
cmV0dXJuIGZhbHNlOwogfQogCiBib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmlzRGlzYWJsZWQo
KSBjb25zdApAQCAtMzQ3LDEwICszMzcsOSBAQCBib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6Omlz
UmVhZE9ubHkoKSBjb25zdAogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dChjb25z
dCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVWYWx1ZSkK
IHsKLSAgICBzaXplX3QgZm9jdXNGaWVsZEluZGV4ID0gbV9mb2N1c0ZpZWxkSW5kZXg7Ci0gICAg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1fZm9jdXNG
aWVsZEluZGV4KTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcgZm9jdXNGaWVsZElkID0gZm9jdXNG
aWVsZCA/IGZvY3VzRmllbGQtPnNoYWRvd1BzZXVkb0lkKCkgOiBudWxsQXRvbTsKLSAgICBmb2N1
c0ZpZWxkQXQoaW52YWxpZEZpZWxkSW5kZXgpOworICAgIHNpemVfdCBmb2N1c2VkRmllbGRJbmRl
eCA9IHRoaXMtPmZvY3VzZWRGaWVsZEluZGV4KCk7CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQq
IGNvbnN0IGZvY3VzZWRGaWVsZCA9IGZpZWxkQXQoZm9jdXNlZEZpZWxkSW5kZXgpOworICAgIGNv
bnN0IEF0b21pY1N0cmluZyBmb2N1c2VkRmllbGRJZCA9IGZvY3VzZWRGaWVsZCA/IGZvY3VzZWRG
aWVsZC0+c2hhZG93UHNldWRvSWQoKSA6IG51bGxBdG9tOwogCiAgICAgRGF0ZVRpbWVFZGl0QnVp
bGRlciBidWlsZGVyKCp0aGlzLCBzdGVwUmFuZ2UsIGRhdGVWYWx1ZSk7CiAgICAgY29uc3QgU3Ry
aW5nIGRhdGVUaW1lRm9ybWF0ID0gYnVpbGRlci5uZWVkU2Vjb25kRmllbGQoKSA/IGxvY2FsaXpl
ZFRpbWVGb3JtYXRUZXh0KCkgOiBsb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KCk7CkBAIC0z
NjEsMzcgKzM1MCwxNiBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dChjb25zdCBT
dGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudAogICAgIG1fc3BpbkJ1dHRv
biA9IHNwaW5CdXR0b24uZ2V0KCk7CiAgICAgYXBwZW5kQ2hpbGQoc3BpbkJ1dHRvbik7CiAKLSAg
ICBpZiAoZm9jdXNGaWVsZEluZGV4ICE9IGludmFsaWRGaWVsZEluZGV4KSB7CisgICAgaWYgKGZv
Y3VzZWRGaWVsZEluZGV4ICE9IGludmFsaWRGaWVsZEluZGV4KSB7CiAgICAgICAgIGZvciAoc2l6
ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxk
SW5kZXgpIHsKLSAgICAgICAgICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4XS0+c2hhZG93UHNl
dWRvSWQoKSA9PSBmb2N1c0ZpZWxkSWQpIHsKLSAgICAgICAgICAgICAgICBmb2N1c0ZpZWxkSW5k
ZXggPSBmaWVsZEluZGV4OworICAgICAgICAgICAgaWYgKG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5z
aGFkb3dQc2V1ZG9JZCgpID09IGZvY3VzZWRGaWVsZElkKSB7CisgICAgICAgICAgICAgICAgZm9j
dXNlZEZpZWxkSW5kZXggPSBmaWVsZEluZGV4OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGZvY3VzRmllbGRBdChzdGQ6Om1pbihmb2N1
c0ZpZWxkSW5kZXgsIG1fZmllbGRzLnNpemUoKSAtIDEpKTsKLSAgICB9Ci19Ci0KLXNpemVfdCBE
YXRlVGltZUVkaXRFbGVtZW50OjpuZXh0RmllbGRJbmRleCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJU
KG1fZm9jdXNGaWVsZEluZGV4ICE9IGludmFsaWRGaWVsZEluZGV4KTsKLSAgICBmb3IgKHNpemVf
dCBmaWVsZEluZGV4ID0gbV9mb2N1c0ZpZWxkSW5kZXggKyAxOyBmaWVsZEluZGV4IDwgbV9maWVs
ZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKLSAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZElu
ZGV4XS0+aXNSZWFkT25seSgpKQotICAgICAgICAgICAgcmV0dXJuIGZpZWxkSW5kZXg7Ci0gICAg
fQotICAgIHJldHVybiBtX2ZpZWxkcy5zaXplKCk7Ci19Ci0KLXNpemVfdCBEYXRlVGltZUVkaXRF
bGVtZW50OjpwcmV2aW91c0ZpZWxkSW5kZXgoKSBjb25zdAotewotICAgIEFTU0VSVChtX2ZvY3Vz
RmllbGRJbmRleCAhPSBpbnZhbGlkRmllbGRJbmRleCk7Ci0gICAgc2l6ZV90IGZpZWxkSW5kZXgg
PSBtX2ZvY3VzRmllbGRJbmRleDsKLSAgICB3aGlsZSAoZmllbGRJbmRleCA+IDApIHsKLSAgICAg
ICAgLS1maWVsZEluZGV4OwotICAgICAgICBpZiAoIW1fZmllbGRzW2ZpZWxkSW5kZXhdLT5pc1Jl
YWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gZmllbGRJbmRleDsKKyAgICAgICAgaWYgKERh
dGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9IGZpZWxkQXQoc3RkOjptaW4oZm9jdXNlZEZpZWxk
SW5kZXgsIG1fZmllbGRzLnNpemUoKSAtIDEpKSkKKyAgICAgICAgICAgIGZpZWxkLT5mb2N1cygp
OwogICAgIH0KLSAgICByZXR1cm4gaW52YWxpZEZpZWxkSW5kZXg7CiB9CiAKIHZvaWQgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6cmVhZE9ubHlTdGF0ZUNoYW5nZWQoKQpAQCAtNDAzLDQyICszNzEsMjYg
QEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldExheW91dCgpCiB7CiAgICAgbV9maWVs
ZHMuc2hyaW5rKDApOwogICAgIG1fc3BpbkJ1dHRvbiA9IDA7Ci0gICAgbV9mb2N1c0ZpZWxkSW5k
ZXggPSBpbnZhbGlkRmllbGRJbmRleDsKICAgICByZW1vdmVDaGlsZHJlbigpOwogfQogCiB2b2lk
IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQog
ewotICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50KSB7Ci0g
ICAgICAgIGlmICghaXNEaXNhYmxlZCgpICYmICFpc1JlYWRPbmx5KCkgJiYgbV9mb2N1c0ZpZWxk
SW5kZXggPT0gaW52YWxpZEZpZWxkSW5kZXgpCi0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQoMCk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkuYmx1ckV2ZW50KSB7Ci0gICAgICAgIGZvY3VzRmllbGRBdChpbnZhbGlkRmllbGRJ
bmRleCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAvLyBJbiBjYXNlIG9mIGNvbnRyb2wgb3duZXIg
Zm9yd2FyZCBldmVudCB0byBjb250cm9sLCBlLmcuIERPTQorICAgIC8vIGRpc3BhdGNoRXZlbnQg
bWV0aG9kLgorICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmb2N1c2VkRmll
bGQoKSkgeworICAgICAgICBmaWVsZC0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CisgICAg
ICAgIGlmIChldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7Ci0gICAgICAgIGhhbmRsZU1v
dXNlRXZlbnQoc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KSk7Ci0gICAgfSBlbHNlIGlm
IChldmVudC0+aXNLZXlib2FyZEV2ZW50KCkpCi0gICAgICAgIGhhbmRsZUtleWJvYXJkRXZlbnQo
c3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7Ci0KLSAgICBpZiAoZXZlbnQtPmRl
ZmF1bHRIYW5kbGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIERhdGVUaW1lRmllbGRFbGVt
ZW50KiBjb25zdCBmb2N1c0ZpZWxkID0gZmllbGRBdChtX2ZvY3VzRmllbGRJbmRleCk7Ci0gICAg
aWYgKCFmb2N1c0ZpZWxkKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAobV9zcGluQnV0dG9u
KSB7CiAgICAgICAgIG1fc3BpbkJ1dHRvbi0+Zm9yd2FyZEV2ZW50KGV2ZW50KTsKICAgICAgICAg
aWYgKGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGZvY3VzRmllbGQtPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAgIEhUTUxE
aXZFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAogdm9pZCBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwg
Y29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCkBAIC00NjUsMjYgKzQxNywyNyBAQCBib29sIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OnNob3VsZFNwaW5CdXR0b25SZXNwb25kVG9XaGVlbEV2ZW50cygp
CiAgICAgaWYgKCFzaG91bGRTcGluQnV0dG9uUmVzcG9uZFRvTW91c2VFdmVudHMoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuICFtX2VkaXRDb250cm9sT3duZXIgfHwgbV9l
ZGl0Q29udHJvbE93bmVyLT5pc0VkaXRDb250cm9sT3duZXJGb2N1c2VkKCk7CisgICAgcmV0dXJu
IGZvY3VzZWRGaWVsZEluZGV4KCkgIT0gaW52YWxpZEZpZWxkSW5kZXg7CiB9CiAKIHZvaWQgRGF0
ZVRpbWVFZGl0RWxlbWVudDo6c3BpbkJ1dHRvblN0ZXBEb3duKCkKIHsKLSAgICBpZiAoRGF0ZVRp
bWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1fZm9jdXNGaWVsZElu
ZGV4KSkKLSAgICAgICAgZm9jdXNGaWVsZC0+c3RlcERvd24oKTsKKyAgICBpZiAoRGF0ZVRpbWVG
aWVsZEVsZW1lbnQqIGNvbnN0IGZpZWxkID0gZm9jdXNlZEZpZWxkKCkpCisgICAgICAgIGZpZWxk
LT5zdGVwRG93bigpOwogfQogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNwaW5CdXR0b25T
dGVwVXAoKQogewotICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZm9jdXNGaWVs
ZCA9IGZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpKQotICAgICAgICBmb2N1c0ZpZWxkLT5zdGVw
VXAoKTsKKyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZpZWxkID0gZm9jdXNl
ZEZpZWxkKCkpCisgICAgICAgIGZpZWxkLT5zdGVwVXAoKTsKIH0KIAogdm9pZCBEYXRlVGltZUVk
aXRFbGVtZW50Ojp1cGRhdGVVSVN0YXRlKCkKIHsKICAgICBpZiAoaXNEaXNhYmxlZCgpIHx8IGlz
UmVhZE9ubHkoKSkgewogICAgICAgICBtX3NwaW5CdXR0b24tPnJlbGVhc2VDYXB0dXJlKCk7Ci0g
ICAgICAgIGZvY3VzRmllbGRBdChpbnZhbGlkRmllbGRJbmRleCk7CisgICAgICAgIGlmIChEYXRl
VGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmb2N1c2VkRmllbGQoKSkKKyAgICAgICAgICAgIGZp
ZWxkLT5ibHVyKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZUVkaXRFbGVtZW50LmgKaW5kZXggOGQ5ZTAxNWEyNmY3NTA1ODFlMjI5ZjY5ZTEz
OTI5N2JmNmY2MDM1My4uMTBjNDY2NDg3NjI3ZTRmOGRjYWE4N2E1OWVjNTVkMGM5OWYwZTQ0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQu
aApAQCAtNTEsMTEgKzUxLDEwIEBAIHB1YmxpYzoKICAgICBjbGFzcyBFZGl0Q29udHJvbE93bmVy
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkVkaXRDb250cm9sT3duZXIoKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25lcigpID0gMDsK
LSAgICAgICAgdmlydHVhbCB2b2lkIGVkaXRDb250cm9sTW91c2VGb2N1cygpID0gMDsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZEJsdXJGcm9tQ29udHJvbCgpID0gMDsKKyAgICAgICAgdmlydHVh
bCB2b2lkIGRpZEZvY3VzT25Db250cm9sKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZWRp
dENvbnRyb2xWYWx1ZUNoYW5nZWQoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRD
b250cm9sT3duZXJEaXNhYmxlZCgpIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIGlz
RWRpdENvbnRyb2xPd25lckZvY3VzZWQoKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBpc0VkaXRDb250cm9sT3duZXJSZWFkT25seSgpIGNvbnN0ID0gMDsKICAgICB9OwogCkBAIC02
Myw4ICs2MiwxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5EYXRlVGltZUVkaXRFbGVtZW50
KCk7CiAgICAgdm9pZCBhZGRGaWVsZChQYXNzUmVmUHRyPERhdGVUaW1lRmllbGRFbGVtZW50Pik7
CisgICAgdm9pZCBibHVyQnlPd25lcigpOwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CiAgICAgdm9pZCBkaXNhYmxlZFN0YXRlQ2hhbmdlZCgp
OworICAgIHZvaWQgZm9jdXNCeU93bmVyKCk7CiAgICAgdm9pZCByZWFkT25seVN0YXRlQ2hhbmdl
ZCgpOwogICAgIHZvaWQgcmVtb3ZlRWRpdENvbnRyb2xPd25lcigpIHsgbV9lZGl0Q29udHJvbE93
bmVyID0gMDsgfQogICAgIHZvaWQgcmVzZXRMYXlvdXQoKTsKQEAgLTg5LDE5ICs5MCwyMCBAQCBw
cml2YXRlOgogICAgIERhdGVUaW1lRWRpdEVsZW1lbnQoRG9jdW1lbnQqLCBFZGl0Q29udHJvbE93
bmVyJik7CiAKICAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGRBdChzaXplX3QpIGNvbnN0
OwotICAgIHZvaWQgZm9jdXNGaWVsZEF0KHNpemVfdCk7Ci0gICAgdm9pZCBoYW5kbGVLZXlib2Fy
ZEV2ZW50KEtleWJvYXJkRXZlbnQqKTsKLSAgICB2b2lkIGhhbmRsZU1vdXNlRXZlbnQoTW91c2VF
dmVudCopOworICAgIHNpemVfdCBmaWVsZEluZGV4T2YoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1l
bnQmKSBjb25zdDsKKyAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogZm9jdXNlZEZpZWxkKCkgY29u
c3Q7CisgICAgc2l6ZV90IGZvY3VzZWRGaWVsZEluZGV4KCkgY29uc3Q7CiAgICAgYm9vbCBpc0Rp
c2FibGVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdm9pZCBs
YXlvdXQoY29uc3QgU3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsKLSAgICBzaXpl
X3QgbmV4dEZpZWxkSW5kZXgoKSBjb25zdDsKLSAgICBzaXplX3QgcHJldmlvdXNGaWVsZEluZGV4
KCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVVSVN0YXRlKCk7CiAKICAgICAvLyBEYXRlVGltZUZp
ZWxkRWxlbWVudDo6RmllbGRPd25lciBmdW5jdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGRpZEJs
dXJGcm9tRmllbGQoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXNP
bkZpZWxkKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGZpZWxkVmFsdWVDaGFu
Z2VkKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzT25OZXh0RmllbGQo
KSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgZm9jdXNPbk5leHRGaWVsZChjb25z
dCBEYXRlVGltZUZpZWxkRWxlbWVudCYpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9v
bCBmb2N1c09uUHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYpIE9WRVJS
SURFIEZJTkFMOwogCiAgICAgLy8gU3BpbkJ1dHRvbkVsZW1lbnQ6OlNwaW5CdXR0b25Pd25lciBm
dW5jdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzQW5kU2VsZWN0U3BpbkJ1dHRvbk93bmVy
KCkgT1ZFUlJJREUgRklOQUw7CkBAIC0xMTMsNyArMTE1LDYgQEAgcHJpdmF0ZToKICAgICBWZWN0
b3I8RGF0ZVRpbWVGaWVsZEVsZW1lbnQqLCBtYXhpbXVtTnVtYmVyT2ZGaWVsZHM+IG1fZmllbGRz
OwogICAgIEVkaXRDb250cm9sT3duZXIqIG1fZWRpdENvbnRyb2xPd25lcjsKICAgICBTcGluQnV0
dG9uRWxlbWVudCogbV9zcGluQnV0dG9uOwotICAgIHNpemVfdCBtX2ZvY3VzRmllbGRJbmRleDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcAppbmRleCA5ZDU2ZDliZjg3ZTE0NGI4
YmQ1ZTU2MjBjMDg3NGMzNWRlMTZiMTQ4Li41YjY5NjQ3OGE4OTZkOTYwZmJjMTQwZTcyZmUzMTJk
ZDM0NDljZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRGF0ZUNvbXBv
bmVudHMuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50
LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00OCw2ICs0OSwxMiBAQCBEYXRlVGltZUZpZWxkRWxlbWVudDo6
RGF0ZVRpbWVGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVs
ZAogCiB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
KiBldmVudCkKIHsKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmx1ckV2
ZW50KQorICAgICAgICBkaWRCbHVyKCk7CisKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkuZm9jdXNFdmVudCkKKyAgICAgICAgZGlkRm9jdXMoKTsKKwogICAgIGlmIChldmVu
dC0+aXNLZXlib2FyZEV2ZW50KCkpIHsKICAgICAgICAgS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRF
dmVudCA9IHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCk7CiAgICAgICAgIGhhbmRs
ZUtleWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVudCk7CkBAIC03NCw2ICs4MSwyMiBAQCB2b2lkIERh
dGVUaW1lRmllbGRFbGVtZW50OjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRF
dmVudCoga2V5Ym9hcmRFdgogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKGtleUlk
ZW50aWZpZXIgPT0gIkxlZnQiKSB7CisgICAgICAgIGlmICghbV9maWVsZE93bmVyKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBpZiAobV9maWVsZE93bmVyLT5mb2N1c09uUHJldmlvdXNG
aWVsZCgqdGhpcykpCisgICAgICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxl
ZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGtleUlkZW50aWZpZXIgPT0g
IlJpZ2h0IikgeworICAgICAgICBpZiAoIW1fZmllbGRPd25lcikKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgaWYgKG1fZmllbGRPd25lci0+Zm9jdXNPbk5leHRGaWVsZCgqdGhpcykpCisg
ICAgICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgaWYgKGtleUlkZW50aWZpZXIgPT0gIlVwIikgewogICAgICAg
ICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogICAgICAgICBzdGVwVXAoKTsK
QEAgLTg3LDEwICsxMTAsMjMgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEtl
eWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGtleWJvYXJkRXYKICAgICB9CiB9CiAK
LXZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQoKQordm9pZCBEYXRl
VGltZUZpZWxkRWxlbWVudDo6ZGlkQmx1cigpCit7CisgICAgaWYgKG1fZmllbGRPd25lcikKKyAg
ICAgICAgbV9maWVsZE93bmVyLT5kaWRCbHVyRnJvbUZpZWxkKCk7Cit9CisKK3ZvaWQgRGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OmRpZEZvY3VzKCkKIHsKICAgICBpZiAobV9maWVsZE93bmVyKQotICAg
ICAgICBtX2ZpZWxkT3duZXItPmZvY3VzT25OZXh0RmllbGQoKTsKKyAgICAgICAgbV9maWVsZE93
bmVyLT5kaWRGb2N1c09uRmllbGQoKTsKK30KKwordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6
Zm9jdXNPbk5leHRGaWVsZCgpCit7CisgICAgaWYgKCFtX2ZpZWxkT3duZXIpCisgICAgICAgIHJl
dHVybjsKKyAgICBtX2ZpZWxkT3duZXItPmZvY3VzT25OZXh0RmllbGQoKnRoaXMpOwogfQogCiB2
b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21pY1N0cmluZyYg
c2hhZG93UHNldWRvSWQpCkBAIC05OSw2ICsxMzUsMTEgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxl
bWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKQogICAg
IGFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB2aXNpYmxlVmFsdWUoKSkpOwog
fQogCitib29sIERhdGVUaW1lRmllbGRFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICFpc1JlYWRPbmx5KCk7Cit9CisKIGJvb2wgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6
OmlzUmVhZE9ubHkoKSBjb25zdAogewogICAgIHJldHVybiBmYXN0SGFzQXR0cmlidXRlKHJlYWRv
bmx5QXR0cik7CkBAIC0xMTEsNiArMTUyLDExIEBAIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6
OnNldFJlYWRPbmx5KCkKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKK2Jvb2wgRGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAoreworICAgIHJldHVybiB0
cnVlOworfQorCiB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNpYmxlVmFsdWUo
RXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewogICAgIFRleHQqIGNvbnN0IHRleHROb2Rl
ID0gdG9UZXh0KGZpcnN0Q2hpbGQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaAppbmRleCBjZDM5ZTI4YTM5NDQ5Y2E0YjhjNDUzMGQ2
YjllNjQ2NjdkYzRmYzQ1Li4xMzc2YzYyZjQ3OWI0Y2JmMGRmZjE2NDc3MGIzMzIzMWUzY2JhMWRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50LmgKQEAgLTQ5LDggKzQ5LDExIEBAIHB1YmxpYzoKICAgICBjbGFzcyBGaWVsZE93bmVyIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkZpZWxkT3duZXIoKTsKKyAgICAgICAgdmly
dHVhbCB2b2lkIGRpZEJsdXJGcm9tRmllbGQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBk
aWRGb2N1c09uRmllbGQoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBmaWVsZFZhbHVlQ2hh
bmdlZCgpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzT25OZXh0RmllbGQoKSA9IDA7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBmb2N1c09uTmV4dEZpZWxkKGNvbnN0IERhdGVUaW1lRmll
bGRFbGVtZW50JikgPSAwOworICAgICAgICB2aXJ0dWFsIGJvb2wgZm9jdXNPblByZXZpb3VzRmll
bGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSA9IDA7CiAgICAgfTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CkBAIC03MCw2ICs3
Myw4IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIERhdGVUaW1lRmllbGRFbGVtZW50KERv
Y3VtZW50KiwgRmllbGRPd25lciYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRCbHVyKCk7CisgICAg
dmlydHVhbCB2b2lkIGRpZEZvY3VzKCk7CiAgICAgdm9pZCBmb2N1c09uTmV4dEZpZWxkKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCopID0gMDsK
ICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQXRvbWljU3RyaW5nJik7CkBAIC03OCw2ICs4Myw4
IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2b2lkIGRlZmF1bHRLZXlib2FyZEV2ZW50
SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7CisgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkg
Y29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBj
b25zdCBPVkVSUklERSBGSU5BTDsKIAogICAgIEZpZWxkT3duZXIqIG1fZmllbGRPd25lcjsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50LmNwcAppbmRleCBhNDA1M2I1Nzc1ZjRiNWM0MDExNDU0Yjg3NDI1MWVl
MTE1ZGZkZjBhLi5iYTlmNTI3Njk5NGUzMDkwNjMzZGZhNjZiOTZhZjdiMTBiYWI3NzJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudC5jcHAKQEAgLTcyLDYgKzcyLDE4IEBAIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwg
RmllCiB7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpkaWRCbHVyKCkK
K3sKKyAgICBtX2xhc3REaWdpdENoYXJUaW1lID0gMDsKKyAgICBEYXRlVGltZUZpZWxkRWxlbWVu
dDo6ZGlkQmx1cigpOworfQorCit2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6ZGlk
Rm9jdXMoKQoreworICAgIG1fbGFzdERpZ2l0Q2hhclRpbWUgPSAwOworICAgIERhdGVUaW1lRmll
bGRFbGVtZW50OjpkaWRGb2N1cygpOworfQorCiB2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBrZXlib2FyZEV2ZW50KQog
ewogICAgIGlmIChpc1JlYWRPbmx5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCmluZGV4IDM3MTliYzEzMGUz
MWIzNzQ2YjMzOWY3OWNkMzIwZDc1YjQzZTFmYjYuLmQ0MWExYzNhYTdlYzkxOTI4MjZlYzM1Yzhh
ZWU3ODYzZDVmYjNmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCkBAIC02Myw2ICs2Myw4IEBAIHByb3Rl
Y3RlZDoKIAogcHJpdmF0ZToKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMu
CisgICAgdmlydHVhbCB2b2lkIGRpZEJsdXIoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkRm9jdXMoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
S2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVh
bCB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25s
eUZpZWxkLCBFdmVudEJlaGF2aW9yKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQg
c3RlcERvd24oKSBPVkVSUklERSBGSU5BTDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1ODkzMWJkZDNkZmIzZGZiNTdlM2Nj
NjA0YmYyNDM0MTdlNmU1ZjQzLi4yMWQwOTVkNTAzZTE5YjZhYTI2Mjc4OTNhM2FhYzk2Y2Q0Y2M0
NDk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDgtMzAgIFlvc2hpZnVtaSBJbm91ZSAg
PHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBbRm9ybXNdIFNoaWZ0K1RhYiBzaG91bGQg
Zm9jdXMgdGhlIGxhc3QgZmllbGQgb2YgbXVsdGlwbGUgZmllbGRzIHRpbWUgaW5wdXQgVUkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTY4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBh
ZGRzIGZvY3VzIGFuZCBibHVyIGV2ZW50IGhhbmRsaW5nIHRlc3QgYW5kIGEgbmV3IHRlc3QgY2Fz
ZQorICAgICAgICBmb3IgU2hpZnQrVGFiIGZvciBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBV
SS4KKworICAgICAgICAqIHRpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRpbWUtbXVsdGlwbGUtZmllbGRzLWJs
dXItYW5kLWZvY3VzLWV2ZW50cy5odG1sOiBBZGRlZCBmb3IgYmx1ciBhbmQgZm9jdXMgZXZlbnRz
IGhhbmRsaW5nLgorICAgICAgICAqIGZhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGlt
ZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWw6IENoYW5nZWQgdG8gYWRkIGEg
dGVzdCBjYXNlcyBmb3IgU2hpZnQrVGFiLgorCiAyMDEyLTA4LTI5ICBZb3NoaWZ1bWkgSW5vdWUg
IDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Rlc3RzXSBBZGQgdGVzdCBjYXNlIGZv
ciByaWdodC10by1sZWZ0IHJlbmRlcmluZyBvZiBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBV
SQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxk
cy90aW1lLW11bHRpcGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRp
cGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVjMjM5MjE4N2M1ZWUwZTYwMzYxYmQxNDFlZWMwYzZmYTUxZjIxMWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVs
dGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxOCBAQAorQ2hlY2sgYmx1ciBhbmQgZm9jdXMgZXZlbnRzIGZvciBtdWx0aXBsZSBmaWVsZHMg
dGltZSBpbnB1dCBVSQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworZm9jdXMoKSBh
bmQgYmx1cigpCitQQVNTIHRlc3RJbnB1dC5mb2N1cygpOyBzdGF0ZSgpIGlzICJibHVyPTAgZm9j
dXM9MSIKK1BBU1MgdGVzdElucHV0LmJsdXIoKTsgc3RhdGUoKSBpcyAiYmx1cj0xIGZvY3VzPTEi
Citmb2N1cyBhbmQgVGFiIGtleSB0byBibHVyCitQQVNTIGtleURvd24oIgkiKTsgc3RhdGUoKSBp
cyAiYmx1cj0wIGZvY3VzPTEiCitQQVNTIGtleURvd24oIgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0w
IGZvY3VzPTEiCitQQVNTIGtleURvd24oIgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0wIGZvY3VzPTEi
CitQQVNTIGtleURvd24oIgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0xIGZvY3VzPTEiCisKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlw
bGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1ibHVyLWFuZC1m
b2N1cy1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2MxMTc5MjY4YjVjMTE1ZjAxNTRhM2JhZmU3
NjNjNzE4NjFiNWY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90
aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1l
dmVudHMuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29udGFpbmVyIj4KKzxpbnB1dCBpZD0i
YmVmb3JlIj4KKzxpbnB1dCBpZD0idGVzdCIgdHlwZT0idGltZSIgdmFsdWU9IjEyOjM0Ij4KKzxp
bnB1dCBpZD0iYWZ0ZXIiPgorPC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ0NoZWNrIGJs
dXIgYW5kIGZvY3VzIGV2ZW50cyBmb3IgbXVsdGlwbGUgZmllbGRzIHRpbWUgaW5wdXQgVUknKTsK
KwordmFyIGJsdXJDb3VudGVyID0gMDsKK3ZhciBmb2N1c0NvdW50ZXIgPSAwOworCitmdW5jdGlv
biBrZXlEb3duKGtleSwgbW9kaWZpZXJzKQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVy
KQorICAgICAgICByZXR1cm47CisgICAgZXZlbnRTZW5kZXIua2V5RG93bihrZXksIG1vZGlmaWVy
cyk7Cit9CisKK2Z1bmN0aW9uIHN0YXRlKCkKK3sKKyAgICByZXR1cm4gJ2JsdXI9JyArIGJsdXJD
b3VudGVyICsgJyBmb2N1cz0nICsgZm9jdXNDb3VudGVyOworfQorCit2YXIgdGVzdElucHV0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKK3Rlc3RJbnB1dC5hZGRFdmVudExpc3Rl
bmVyKCdibHVyJywgZnVuY3Rpb24gKCkgeyArK2JsdXJDb3VudGVyOyB9KTsKK3Rlc3RJbnB1dC5h
ZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uICgpIHsgKytmb2N1c0NvdW50ZXI7IH0p
OworCitmdW5jdGlvbiBiZWdpblRlc3RDYXNlKHRlc3RDYXNlTmFtZSkKK3sKKyAgICBkZWJ1Zyh0
ZXN0Q2FzZU5hbWUpOworICAgIGJsdXJDb3VudGVyID0gMDsKKyAgICBmb2N1c0NvdW50ZXIgPSAw
OworfQorCitiZWdpblRlc3RDYXNlKCdmb2N1cygpIGFuZCBibHVyKCknKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdElucHV0LmZvY3VzKCk7IHN0YXRlKCknLCAnYmx1cj0wIGZvY3VzPTEn
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdElucHV0LmJsdXIoKTsgc3RhdGUoKScsICdi
bHVyPTEgZm9jdXM9MScpOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgYmVnaW5U
ZXN0Q2FzZSgnZm9jdXMgYW5kIFRhYiBrZXkgdG8gYmx1cicpOworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJiZWZvcmUiKS5mb2N1cygpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
a2V5RG93bigiXHQiKTsgc3RhdGUoKScsICdibHVyPTAgZm9jdXM9MScpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygna2V5RG93bigiXHQiKTsgc3RhdGUoKScsICdibHVyPTAgZm9jdXM9MScp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygna2V5RG93bigiXHQiKTsgc3RhdGUoKScsICdi
bHVyPTAgZm9jdXM9MScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygna2V5RG93bigiXHQi
KTsgc3RhdGUoKScsICdibHVyPTEgZm9jdXM9MScpOworfSBlbHNlIHsKKyAgICBkZWJ1ZygnUGxl
YXNlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZSBmb3IgZm9jdXMgYW5kIFRhYi1rZXkgdGVzdCBjYXNl
Jyk7Cit9CisKK2RlYnVnKCcnKTsKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZp
ZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxl
LWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDYxOGE2OTY4MmNlNjIx
ZDEzZjFmYmZiNTVmYjAzYTNjMDJiYWUwMzYuLjk4ZDIzNjk5ZjlhZGQ1MzliOTI1NTEwMWI5MDJh
MTNlYTA4Y2E5ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0
aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3Rp
bWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTExLDcg
KzExLDcgQEAgTGVmdC9SaWdodCAtIE1vdmUgZm9jdXMgZmllbGQgaW5zaWRlIGVsZW1lbnQKIFVw
L0Rvd24gLSBJbmNyZW1lbnQvZGVjcmVtZW50IHZhbHVlIG9mIGZvY3VzIGZpZWxkCiBUYWIgLSBN
b3ZlIGZvY3VzIGZpZWxkCiBCYWNrc3BhY2UgLSBNYWtlIHZhbHVlIGVtcHR5Ci0gCisgIAogPT0g
RGlnaXQga2V5cyA9PQogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDc6NTYiCiA9PSBMZWZ0L1JpZ2h0
IGtleXMgPT0KQEAgLTI2LDYgKzI2LDEwIEBAIFBBU1MgaW5wdXQudmFsdWUgaXMgIjE0OjU4Igog
UEFTUyBpbnB1dC52YWx1ZSBpcyAiMDM6MDUiCiBQQVNTIGlucHV0LnZhbHVlIGlzICIwNzowNSIK
IFBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCBpcyAiYW5vdGhlciIKKz09IFNoZml0K1Rh
YiBrZXkgPT0KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjE1OjAwIgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMTU6MDMiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgaXMgImJlZm9yZSIKID09
IEJhY2tzcGFjZSBrZXkgPT0KIFBBU1MgaW5wdXQudmFsdWUgaXMgIiIKID09IERlbGV0ZSBrZXkg
PT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVs
ZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtl
eWJvYXJkLWV2ZW50cy5odG1sCmluZGV4IDdmMzUyMTJjODMyM2RjZWJjY2FmMzQ5NDM4NDU4Yjhj
YzA3MzRhYjcuLjFkNThhMTA1YmQ4ZGMzY2E4MDNhOTgzOTJkNjY1Y2ZhZmMzOTk3ODUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1t
dWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2Fy
ZC1ldmVudHMuaHRtbApAQCAtMTYsNiArMTYsNyBAQCBUZXN0IGZvbGxvd2luZyBrZXlzOgogICAg
IDxsaT5UYWIgLSBNb3ZlIGZvY3VzIGZpZWxkPC9saT4KICAgICA8bGk+QmFja3NwYWNlIC0gTWFr
ZSB2YWx1ZSBlbXB0eTwvbGk+CiA8L3VsPgorPGlucHV0IGlkPSJiZWZvcmUiPgogPGlucHV0IGlk
PSJpbnB1dCIgdHlwZT0idGltZSI+CiA8aW5wdXQgaWQ9ImFub3RoZXIiPgogPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CkBAIC05Nyw2ICs5OCwxOCBAQCBrZXlEb3duKCdcdCcpOwoga2V5RG93bign
XHQnKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCcs
ICdhbm90aGVyJyk7CiAKK2JlZ2luVGVzdCgnU2hmaXQrVGFiIGtleScsICcwMzowMCcpOworYW5v
dGhlci5mb2N1cygpOwora2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5J10pOwora2V5RG93bignUCcp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcxNTowMCcpOwora2V5RG93
bignXHQnLCBbJ3NoaWZ0S2V5J10pOwora2V5RG93bignMycpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdpbnB1dC52YWx1ZScsICcxNTowMycpOwora2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5J10p
Owora2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5J10pOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdk
b2N1bWVudC5hY3RpdmVFbGVtZW50LmlkJywgJ2JlZm9yZScpOworCiBiZWdpblRlc3QoJ0JhY2tz
cGFjZSBrZXknLCAnMTI6MzQnKTsKIGtleURvd24oIlxiIik7CiBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2lucHV0LnZhbHVlJywgJycpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161614</attachid>
            <date>2012-08-30 20:31:00 -0700</date>
            <delta_ts>2012-08-30 20:46:36 -0700</delta_ts>
            <desc>Patch 8</desc>
            <filename>bug-95168-20120831123047.patch</filename>
            <type>text/plain</type>
            <size>38255</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyODk0YzY4YzhmZDM2
M2ZkYTAyNTQzZjljNmMzOWUxZjQ1ODhkNC4uODY1M2NiYWZlZTBkMGEyMWFlODFkNzUzYzM0ZmIw
NmQ5MTExZWQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDEyLTA4LTI5ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBTaGlm
dCtUYWIgc2hvdWxkIGZvY3VzIHRoZSBsYXN0IGZpZWxkIG9mIG11bHRpcGxlIGZpZWxkcyB0aW1l
IGlucHV0IFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NTE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggY2hhbmdlcyBmb2N1cyBoYW5kbGluZyBpbiBEYXRlVGltZUVkaXRFbGVtZW50
IGNsYXNzIGZvcgorICAgICAgICBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAg
ICAgICBDdXJyZW50IGltcGxlbWVudGF0aW9uIGNvbnRyb2xzIGZvY3VzIGluIGZpZWxkcyBieSBE
YXRlVGltZUVkaXRFbGVtZW50CisgICAgICAgIGFuZCBhIGZvY3VzIGZpZWxkIGlzIHRyYWNrZWQg
bV9mb2N1c0ZpZWxkSW5kZXggbWVtYmVyIHZhcmlhYmxlLiBJbgorICAgICAgICBjdXJyZW50IGlt
cGxlbWVudGF0aW9uLCBpdCBpcyBoYXJkIHRvIHNldCBmb2N1cyB0byB0aGUgbGFzdCBmaWVsZCB3
aGVuCisgICAgICAgIGl0IGdldHMgZm9jdXMgYnkgU2hpZnQrVGFiLCBiZWNhdXNlIHdlIGRvbid0
IGtub3cgaG93IERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgZ2V0cyBmb2N1cy4KKworICAg
ICAgICBJbiB0aGlzIG5ldyBpbXBsZW1lbnRhdGlvbiwgRGF0ZVRpbWVFZGl0RWxlbWVudCBkb2Vz
bid0IGNvbnRyb2wgZm9jdXMKKyAgICAgICAgcmF0aGVyIEZvY3VzQ29udHJvbGxlciBjbGFzcyBj
b250cm9scyBmb2N1czoKKyAgICAgICAgIC0gV2Ugc2V0IGZvY3VzIHRvIERhdGVUaW1lRmllbGRF
bGVtZW50IGluc3RlYWQgb2YgSFRNTElucHV0RWxlbWVudAorICAgICAgICAgICB3aGljaCBpcyBz
aGFkb3cgaG9zdCBvZiBEYXRlVGltZUVkaXRFbGVtZW50IGZvciBjb250cm9sbGluZyBmb2N1cwor
ICAgICAgICAgICBieSBGb2N1c0NvbnRyb2xsZXIuCisgICAgICAgICAtIEZvY3VzL2JsdXIgZXZl
bnRzIGluIERhdGVUaW1lRmllbGRFbGVtZW50IGFyZSByb3V0ZWQgdG8gSFRNTElucHV0RWxlbWVu
dAorICAgICAgICAgICBieSBzaGFkb3cgRE9NIG1lY2hhbmlzbS4KKyAgICAgICAgIC0gVGltZUlu
cHV0VHlwZSBjbGFzcyBvdmVycmlkZXMgSFRNTElOcHV0RWxlbWVudDo6Ymx1cigpIGFuZCBmb2N1
cygpCisgICAgICAgICAgIGZ1bmN0aW9ucyBmb3IgZGVsZWdhdGluZyBibHVyL2ZvY3VzIGJlaGF2
aW9yIHRvIERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgICAgYnkgY2FsbGluZyBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpibHVyQnlPd25lcigpL2ZvY3VzQnlPd25lcigpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggYWZmZWN0cyBvbmx5IHBvcnRzIHdoaWNoIGVuYWJsZSBib3RoIEVOQUJMRV9JTlBV
VF9UWVBFX1RJTUUKKyAgICAgICAgYW5kIEVOQUJMRV9JTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRz
L3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCisgICAgICAg
IFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgbmV3IHRlc3QgY2FzZSBmb3IgU2hpZnQrVGFiIGludG8g
ZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEJsdXIpOiBBZGRlZCBmb3IgdGhlIGlucHV0IGVsZW1lbnQgbm90IHRvIGJl
IG1hdGNoZWQgImZvY3VzIiBwc2V1ZG8gY2xhc3MgZm9yIHJlbW92aW5nIGZvY3VzIHJpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpkaWRGaWVsZEZvY3VzKTogIEFkZGVkIGZvciB0aGUgaW5wdXQgZWxlbWVudCB0byBiZSBt
YXRjaGVkICJmb2N1cyIgcHNldWRvIGNsYXNzIGZvciBhZGRpbmcgZm9jdXMgcmluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6
OmVkaXRDb250cm9sTW91c2VGb2N1cyk6IFJlbW92ZWQuIERhdGVUaW1lRWRpdEVsZW1lbnQgbm8g
bG9uZ2VyIHNldCBmb2N1cyB0byBIVE1MSW5wdXRFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6
VGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6Zm9jdXNBbmRTZWxl
Y3RFZGl0Q29udHJvbE93bmVyKTogUmVtb3ZlZC4gSW4gdGhpcyBwYXRjaCwgc2V0dHRpbmcgZm9j
dXMgdG8gZmllbGQgaXMgaGFuZGxlZCBieSBEYXRlVGltZUVkaXRFbGVtZW50LgorICAgICAgICAo
V2ViQ29yZTo6VGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6aXNF
ZGl0Q29udHJvbE93bmVyRm9jdXNlZCk6IFJldm1vZWQuIEZvY3VzQ29udHJvbGxlciBtYW5hZ2Vz
IGZvY3VzIG5hdmlnYXRpb24gaW4gZmllbGRzIHJhdGhlciB0aGFuIERhdGVUaW1lRWRpdEVsZW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpibHVyKTogQWRkZWQgZm9yIGRl
bGVnYXRpbmcgYmx1cigpIGFjdGlvbiB0byBEYXRlVGltZUVkaXRFbGVtZW50LgorICAgICAgICAo
V2ViQ29yZTo6VGltZUlucHV0VHlwZTo6Zm9jdXMpOiBBZGRlZCBmb3IgZGVsZWdhdGluZyBmb2N1
cygpIGFjdGlvbiB0byBEYXRlVGltZUVkaXRFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6VGlt
ZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudCk6IFJlbW92ZWQuIEhUTUxJbnB1dEVs
ZW1lbnQgZm9yICJ0aW1lIiBpbnB1dCB0eXBlIG5vIGxvbmdlciBnZXQgZm9jdXMuCisgICAgICAg
IChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKTogQWRkZWQgZm9y
IGFza2luZyBGb2N1c0NvbnRyb2xsZXIgdG8gd2FsayBpbnRvIHNoYWRvdyBET00gdHJlZSBvbiBp
bnB1dCB0eXBlICJ0aW1lIi4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzS2V5
Ym9hcmRGb2N1c2FibGUpOiBDaGFuZ2VkIGZvciAiaW5wdXQiIGVsZW1lbnQgbm90IHRvIGhhdmUg
Zm9jdXMuCisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxl
KTogIENoYW5nZWQgZm9yICJpbnB1dCIgZWxlbWVudCBub3QgdG8gaGF2ZSBmb2N1cy4KKyAgICAg
ICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKERhdGVUaW1lRWRpdENvbnRyb2xP
d25lckltcGwpOiBDaGFuZ2VkIGZvciBuZXcgZGVmaW5pdGlvbiBvZiBEYXRlVGltZUVkaXRDb250
cm9sT3duZXIuCisgICAgICAgIChUaW1lSW5wdXRUeXBlKTogQ2hhbmdlZCBmb3IgbmV3IGRlZmlu
aXRpb24gb2YgRGF0ZVRpbWVFZGl0RWxlbWVudC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1l
bnQ6OkRhdGVUaW1lRWRpdEVsZW1lbnQpOiBSZW1vdmVkIGRyb3BwZWQgbWVtYmVyIHZhcmlhYmxl
IG1fZm9jdXNGaWVsZEluZGV4LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVu
dDo6Ymx1ckJ5T3duZXIpOiBBZGRlZCBmb3IgYmx1cigpIGFjdGlvbiBhc2VrZCBieSBvd25lci4K
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmRpZEJsdXJGcm9tRmllbGQp
OiBBZGRlZCBmb3IgY2FsbGluZyBEYXRlVGltZUVkaXRDb250cm9sT3duZXI6OmRpZEJsdXJGcm9t
Q29udHJvbCgpLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGlkRm9j
dXNPbkZpZWxkKTogQWRkZWQgZm9yIGNhbGxpbmcgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVyOjpk
aWRGb2N1c09uQ29udHJvbCgpLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVu
dDo6ZmllbGRJbmRleE9mKTogQWRkZWQgZm9yIG1hcHBpbmcgRGF0ZVRpbWVGaWVsZEVsZW1lbnQg
dG8gZmllbGQgaW5kZXguCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpm
b2N1c0J5T3duZXIpOiBBZGRlZCBmb3IgZm9jdXMoKSBhY3Rpb24gYXNla2QgYnkgb3duZXIuCisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0ZpZWxkQXQpOiAgUmVt
b3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzZWRGaWVs
ZEluZGV4KTogQWRkZWQgYXMgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNlZEZpZWxkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKTogQ2hhbmdlZCB0byBwYXNz
IGEgZmllbGQgdG8gZm9jdXNPbk5leHQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRp
dEVsZW1lbnQ6OmZvY3VzT25QcmV2aW91c0ZpZWxkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25Pd25lcik6IENo
YW5nZWQgZm9yIHNldHRpbmcgZm9jdXMgdG8gdGhlIGZpcnN0IGZpZWxkLgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6IFJlbW92ZWQu
IE1vdmVkIGhhbmRsaW5nIG9mIExlZnQvUmlnaHQga2V5cyB0byBEYXRlVGltZUZpZWxkRWxlbWVu
dC4gUmVtb3ZlZCBUYWIta2V5IGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVF
ZGl0RWxlbWVudDo6aGFuZGxlTW91c2VFdmVudCk6IFJlbW92ZWQuIERhdGVUaW1lRWRpdCBkb2Vz
bid0IGhhbmRsZSBtb3VzZSBjbGljayBzaW5jZSB0aGlzIHBhdGNoLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KTogQ2hhbmdlZCB0byB1c2UgZm9jdXNGaWVs
ZEluZGV4KCkgYW5kIERhdGVUaW1lRmllbGRFbGVtZW50Ojpmb2N1cygpLgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6bmV4dEZpZWxkSW5kZXgpOiBSZW1vdmVkLiBmb2N1
c09uTmV4dEZpZWxkIGRvZXMgc2FtZXRoaW5nIGFuZCBzZXRzIGZvY3VzLgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6cHJldmlvdXNGaWVsZEluZGV4KTogUmVtb3ZlZC4g
Zm9jdXNPblByZXZpb3VzRmllbGQgZG9lcyBzYW1ldGhpbmcgYW5kIHNldHMgZm9jdXMuCisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldExheW91dCk6IENoYW5nZWQg
dG8gcmVtb3ZlIG1fZm9jdXNGaWVsZEluZGV4IHZhcmlhYmxlIHJlZmVyZW5jZS4KKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBDaGFu
Z2VkIHRvIHJlbW92ZSBmb2N1cyBuYXZpZ2F0aW9uIHJlbGF0ZWQgZXZlbnRzLCBibHVlL2ZvY3Vz
L21vdXNlLCBoYW5kbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6
OnNob3VsZFNwaW5CdXR0b25SZXNwb25kVG9XaGVlbEV2ZW50cyk6IENoYW5nZWQgdG8gY2hlY2sg
Zm9jdXMgZmllbGQgaW5zdGVhZCBvZiBhc2tpbmcgb3duZXIuCisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcERvd24pOiBDaGFuZ2VkIHRvIHVzZSBm
b2N1c0ZpZWxkKCkgaW5zdGVhZCBvZiBtX2ZvY3VzRmllbGRJbmRleC4KKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnNwaW5CdXR0b25TdGVwVXApOiBkaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnVwZGF0ZVVJU3RhdGUpOiBkaXR0by4K
KyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50Lmg6CisgICAgICAgIChF
ZGl0Q29udHJvbE93bmVyKTogQWRkZWQgZGlkQmx1ckZyb21GaWVsZCgpIGFuZCBkaWRGb2N1c09u
RmllbGQoKSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuIFJlbW92ZWQgZm9jdXNBbmRTZWxlY3RFZGl0
Q29udHJvbE93bmVyLCBpdCB3YXMgdXNlZCBmb3Igc2V0IGZvY3VzIHRvIEhUTUxJbnB1dEVsZW1l
bnQsIGFuZCBpc0VkaXRDb250cm9sT3duZXJGb2N1c2VkLgorICAgICAgICAoRGF0ZVRpbWVFZGl0
RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhh
bmRsZXIpOiBDaGFuZ2VkIHRvIGhhbmRsZSBibHVyIGFuZCBmb2N1cyBldmVudHMuCisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5k
bGVyKTogQ2hhbmdlZCB0byBoYW5kbGUgTGVmdC9SaWdodCBrZXlzLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRpZEJsdXIpOiBBZGRlZCB0byBjYWxsIEZpZWxkT3du
ZXI6OmRpZEJsdXJGcm9tRmllbGQoKSB0byByZW1vdmUgZm9jdXMgcmluZyBmcm9tIG93bmVyIGVs
ZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGlkRm9jdXMp
OiBBZGRlZCB0byBjYWxsIEZpZWxkT3duZXI6OmRpZEZvY3VzT25GaWVsZCgpICB0byBhZGQgZm9j
dXMgcmluZyB0byBvd25lciBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQpOiBBZGRlZCBmb3IgbW92aW5nIGZvY3VzIHRvIG5l
eHQgZmllbGQgZm9yIERhdGVUaW1lTnVtYmVyaWNGaWVsZEVsbWVudAorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmlzRm9jdXNhYmxlKTogQWRkZWQgdG8gbWFrZSBEYXRl
VGltZUZpZWxkRWxlbWVudCBmb2N1c2FibGUuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZp
ZWxkRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6ICBBZGRlZCB0byBtYWtlIERhdGVUaW1lRmllbGRF
bGVtZW50IGZvY3VzYWJsZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxl
bWVudC5oOgorICAgICAgICAoRmllbGRPd25lcik6IEFkZGVkIGRlY2xhcmF0aW9ucyBmb3IgZm9j
dXNhYmxlIGhhbmRsaW5nLgorICAgICAgICAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOiBkaXR0by4K
KwogMjAxMi0wOC0yOSAgQWFyb24gQ29sd2VsbCAgPGFjb2x3ZWxsQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBBZGQgV2ViS2l0IHByZWZpeCB0byBNZWRpYVNvdXJjZSwgU291cmNlQnVmZmVyLCAm
IFNvdXJjZUJ1ZmZlckxpc3QgRE9NV2luZG93IGNvbnN0cnVjdG9yIGF0dHJpYnV0ZXMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCA1ODYxMDMyMzExNWNhMzEyNGU1MGNk
ODg3ZWQ3MTJiM2E2YzU5ZGI5Li5iYmVlYzQzNDM1YTg3MjIxMzI4YWM4NjNjYTViYjc0YjJhM2Uy
M2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyNCw5ICsxMjQs
MjIgQEAgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6fkRhdGVU
aW1lRWRpdENvbnRyb2xPd25lckltcGwoKQogewogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OkRh
dGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVkaXRDb250cm9sTW91c2VGb2N1cygpCit2b2lk
IFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmRpZEJsdXJGcm9t
Q29udHJvbCgpCiB7Ci0gICAgbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+Zm9jdXMoKTsKKyAg
ICAvLyBXZSBkb24ndCBuZWVkIHRvIGNhbGwgYmx1cigpLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCB3aGVuIGNvbnRyb2wKKyAgICAvLyBsb3N0IGZvY3VzLgorCisgICAgLy8gUmVtb3ZlIGZvY3Vz
IHJpbmcgYnkgQ1NTICJmb2N1cyIgcHNldWRvIGNsYXNzLgorICAgIG1fdGltZUlucHV0VHlwZS5l
bGVtZW50KCktPnNldEZvY3VzKGZhbHNlKTsKK30KKwordm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRl
VGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRGb2N1c09uQ29udHJvbCgpCit7CisgICAgLy8g
V2UgZG9uJ3QgbmVlZCB0byBjYWxsIGZvY3VzKCkuIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdo
ZW4gY29udHJvbAorICAgIC8vIGdvdCBmb2N1cy4KKworICAgIC8vIEFkZCBmb2N1cyByaW5nIGJ5
IENTUyAiZm9jdXMiIHBzZXVkbyBjbGFzcy4KKyAgICBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgp
LT5zZXRGb2N1cyh0cnVlKTsKIH0KIAogdm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRD
b250cm9sT3duZXJJbXBsOjplZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpCkBAIC0xMzgsMTEgKzE1
MSw5IEBAIHZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6
ZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKQogICAgIGlucHV0LT5kaXNwYXRjaEZvcm1Db250cm9s
Q2hhbmdlRXZlbnQoKTsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250
cm9sT3duZXJJbXBsOjpmb2N1c0FuZFNlbGVjdEVkaXRDb250cm9sT3duZXIoKQorYm9vbCBUaW1l
SW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QKIHsKLSAgICBSZWZQdHI8SFRN
TElucHV0RWxlbWVudD4gaW5wdXQobV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKSk7Ci0gICAgaW5w
dXQtPmZvY3VzKCk7Ci0gICAgaW5wdXQtPnNlbGVjdCgpOworICAgIHJldHVybiBmYWxzZTsKIH0K
IAogYm9vbCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0Vk
aXRDb250cm9sT3duZXJEaXNhYmxlZCgpIGNvbnN0CkBAIC0xNTAsMTEgKzE2MSw2IEBAIGJvb2wg
VGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6aXNFZGl0Q29udHJv
bE93bmVyRGlzYWJsZWQoKSBjCiAgICAgcmV0dXJuIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCkt
PnJlYWRPbmx5KCk7CiB9CiAKLWJvb2wgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJv
bE93bmVySW1wbDo6aXNFZGl0Q29udHJvbE93bmVyRm9jdXNlZCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPmZvY3VzZWQoKTsKLX0KLQogYm9vbCBUaW1l
SW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3du
ZXJSZWFkT25seSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdGltZUlucHV0VHlwZS5lbGVtZW50
KCktPmRpc2FibGVkKCk7CkBAIC0xNzMsNiArMTc5LDEyIEBAIFRpbWVJbnB1dFR5cGU6On5UaW1l
SW5wdXRUeXBlKCkKICAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5yZW1vdmVFZGl0Q29u
dHJvbE93bmVyKCk7CiB9CiAKK3ZvaWQgVGltZUlucHV0VHlwZTo6Ymx1cigpCit7CisgICAgaWYg
KG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5i
bHVyQnlPd25lcigpOworfQorCiBSZW5kZXJPYmplY3QqIFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewog
ICAgIHJldHVybiBJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKGFyZW5hLCBzdHlsZSk7CkBAIC0x
OTcsNiArMjA5LDEyIEBAIHZvaWQgVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUo
KQogICAgIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKTsK
IH0KIAordm9pZCBUaW1lSW5wdXRUeXBlOjpmb2N1cyhib29sKQoreworICAgIGlmIChtX2RhdGVU
aW1lRWRpdEVsZW1lbnQpCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+Zm9jdXNCeU93
bmVyKCk7Cit9CisKIHZvaWQgVGltZUlucHV0VHlwZTo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBldmVu
dCkKIHsKICAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQpAQCAtMjE0LDI1ICsyMzIsMTQg
QEAgdm9pZCBUaW1lSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCiAgICAgZm9yd2FyZEV2ZW50KGV2ZW50KTsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBl
OjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KiBldmVudCkKLXsKLSAgICBpZiAoZWxlbWVu
dCgpLT5kaXNhYmxlZCgpIHx8IGVsZW1lbnQoKS0+cmVhZE9ubHkoKSB8fCAhZWxlbWVudCgpLT5y
ZW5kZXJlcigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVt
ZW50KQotICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmZvY3VzKCk7Ci0KLSAgICBldmVu
dC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLX0KLQogYm9vbCBUaW1lSW5wdXRUeXBlOjppc0tleWJv
YXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdAogewotICAgIHJldHVybiBlbGVtZW50
KCktPmlzVGV4dEZvcm1Db250cm9sRm9jdXNhYmxlKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQog
CiBib29sIFRpbWVJbnB1dFR5cGU6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAogewotICAgIHJl
dHVybiBlbGVtZW50KCktPmlzVGV4dEZvcm1Db250cm9sRm9jdXNhYmxlKCk7CisgICAgcmV0dXJu
IGZhbHNlOwogfQogCiB2b2lkIFRpbWVJbnB1dFR5cGU6Om1pbk9yTWF4QXR0cmlidXRlQ2hhbmdl
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IGVlODc3ZGNmMWQ2Y2NjZGY1
YjE3NDViMTFjY2Y5MDk5NTljZmUzNDcuLmFjZDU3YjM0ZGU3YzM3NGQ1N2U5OWI4YmQ1N2VmMzJl
MWFlNjI5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC02OCwxMSArNjgs
MTAgQEAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB+RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
SW1wbCgpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCB2b2lkIGVkaXRDb250cm9s
TW91c2VGb2N1cygpIE9WRVJSSURFIEZJTkFMOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQmx1
ckZyb21Db250cm9sKCkgT1ZFUlJJREUgRklOQUw7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRG
b2N1c09uQ29udHJvbCgpIE9WRVJSSURFIEZJTkFMOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZWRp
dENvbnRyb2xWYWx1ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICAgICAgdmlydHVhbCB2
b2lkIGZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25lcigpIE9WRVJSSURFIEZJTkFMOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyRGlzYWJsZWQoKSBjb25zdCBPVkVS
UklERSBGSU5BTDsKLSAgICAgICAgdmlydHVhbCBib29sIGlzRWRpdENvbnRyb2xPd25lckZvY3Vz
ZWQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICAgICAgdmlydHVhbCBib29sIGlzRWRpdENv
bnRyb2xPd25lclJlYWRPbmx5KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAKICAgICAgICAgVGlt
ZUlucHV0VHlwZSYgbV90aW1lSW5wdXRUeXBlOwpAQCAtODEsMTMgKzgwLDE1IEBAIHByaXZhdGU6
CiAgICAgZnJpZW5kIGNsYXNzIERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw7CiAKICAgICAv
LyBJbnB1dFR5cGUgZnVuY3Rpb25zCisgICAgdmlydHVhbCB2b2lkIGJsdXIoKSBPVkVSUklERSBG
SU5BTDsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9p
ZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lk
IGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lk
IGRpc2FibGVkQXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwg
dm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbikgT1ZFUlJJREUgRklOQUw7
CiAgICAgdmlydHVhbCB2b2lkIGZvcndhcmRFdmVudChFdmVudCopIE9WRVJSSURFIEZJTkFMOwot
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KikgT1ZFUlJJREUg
RklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50
KikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMo
KSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3Vz
YWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBi
b29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFs
IGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKaW5kZXggNDRhMWMy
YjBhNTYxZTI2M2JlMDJmZTkwMTBmMTZmY2MyMDQ1OGZjZC4uN2VlODIxNmM3MWI1MGYzOGVjZTA1
NmU2ZGU1YzUyNzlhNTE4ODE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKQEAgLTE5NSw3ICsxOTUsNiBAQCBEYXRlVGltZUVk
aXRFbGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRWRpdENv
bnRyb2xPd25lciYgZQogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKICAg
ICAsIG1fZWRpdENvbnRyb2xPd25lcigmZWRpdENvbnRyb2xPd25lcikKICAgICAsIG1fc3BpbkJ1
dHRvbigwKQotICAgICwgbV9mb2N1c0ZpZWxkSW5kZXgoaW52YWxpZEZpZWxkSW5kZXgpCiB7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRhdGVUaW1lRWRpdFBzZXVkb0lk
LCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdCIpKTsKICAgICBzZXRTaGFkb3dQc2V1ZG9JZChkYXRl
VGltZUVkaXRQc2V1ZG9JZCk7CkBAIC0yMTgsMTIgKzIxNywzMCBAQCB2b2lkIERhdGVUaW1lRWRp
dEVsZW1lbnQ6OmFkZEZpZWxkKFBhc3NSZWZQdHI8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxk
KQogICAgIGFwcGVuZENoaWxkKGZpZWxkKTsKIH0KIAordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50
OjpibHVyQnlPd25lcigpCit7CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9
IGZvY3VzZWRGaWVsZCgpKQorICAgICAgICBmaWVsZC0+Ymx1cigpOworfQorCiBQYXNzUmVmUHRy
PERhdGVUaW1lRWRpdEVsZW1lbnQ+IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVu
dCogZG9jdW1lbnQsIEVkaXRDb250cm9sT3duZXImIGVkaXRDb250cm9sT3duZXIpCiB7CiAgICAg
UmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNvbnRhaW5lciA9IGFkb3B0UmVmKG5ldyBEYXRl
VGltZUVkaXRFbGVtZW50KGRvY3VtZW50LCBlZGl0Q29udHJvbE93bmVyKSk7CiAgICAgcmV0dXJu
IGNvbnRhaW5lci5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGlk
Qmx1ckZyb21GaWVsZCgpCit7CisgICAgaWYgKG1fZWRpdENvbnRyb2xPd25lcikKKyAgICAgICAg
bV9lZGl0Q29udHJvbE93bmVyLT5kaWRCbHVyRnJvbUNvbnRyb2woKTsKK30KKwordm9pZCBEYXRl
VGltZUVkaXRFbGVtZW50OjpkaWRGb2N1c09uRmllbGQoKQoreworICAgIGlmIChtX2VkaXRDb250
cm9sT3duZXIpCisgICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZGlkRm9jdXNPbkNvbnRyb2wo
KTsKK30KKwogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpkaXNhYmxlZFN0YXRlQ2hhbmdlZCgp
CiB7CiAgICAgdXBkYXRlVUlTdGF0ZSgpOwpAQCAtMjM0LDczICsyNTEsNDIgQEAgRGF0ZVRpbWVG
aWVsZEVsZW1lbnQqIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkQXQoc2l6ZV90IGZpZWxkSW5k
ZXgpIGNvbnN0CiAgICAgcmV0dXJuIGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCkgPyBtX2Zp
ZWxkc1tmaWVsZEluZGV4XSA6IDA7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9j
dXNBbmRTZWxlY3RTcGluQnV0dG9uT3duZXIoKQorc2l6ZV90IERhdGVUaW1lRWRpdEVsZW1lbnQ6
OmZpZWxkSW5kZXhPZihjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYgZmllbGQpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX2VkaXRDb250cm9sT3duZXIpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2Vk
aXRDb250cm9sT3duZXItPmZvY3VzQW5kU2VsZWN0RWRpdENvbnRyb2xPd25lcigpOworICAgIGZv
ciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyAr
K2ZpZWxkSW5kZXgpIHsKKyAgICAgICAgaWYgKG1fZmllbGRzW2ZpZWxkSW5kZXhdID09ICZmaWVs
ZCkKKyAgICAgICAgICAgIHJldHVybiBmaWVsZEluZGV4OworICAgIH0KKyAgICByZXR1cm4gaW52
YWxpZEZpZWxkSW5kZXg7CiB9CiAKLXZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNGaWVs
ZEF0KHNpemVfdCBuZXdGb2N1c0ZpZWxkSW5kZXgpCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OmZvY3VzQW5kU2VsZWN0U3BpbkJ1dHRvbk93bmVyKCkKIHsKLSAgICBpZiAobV9mb2N1c0ZpZWxk
SW5kZXggPT0gbmV3Rm9jdXNGaWVsZEluZGV4KQotICAgICAgICByZXR1cm47Ci0KLSAgICBEYXRl
VGltZUZpZWxkRWxlbWVudCogY29uc3QgbmV3Rm9jdXNGaWVsZCA9IGZpZWxkQXQobmV3Rm9jdXNG
aWVsZEluZGV4KTsKLSAgICBpZiAobmV3Rm9jdXNGaWVsZCAmJiBuZXdGb2N1c0ZpZWxkLT5pc1Jl
YWRPbmx5KCkpCisgICAgaWYgKGZvY3VzZWRGaWVsZEluZGV4KCkgIT0gaW52YWxpZEZpZWxkSW5k
ZXgpCiAgICAgICAgIHJldHVybjsKIAotICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBj
dXJyZW50Rm9jdXNGaWVsZCA9IGZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpOwotCi0gICAgaWYg
KGN1cnJlbnRGb2N1c0ZpZWxkKQotICAgICAgICBjdXJyZW50Rm9jdXNGaWVsZC0+c2V0Rm9jdXMo
ZmFsc2UpOwotCi0gICAgaWYgKCFuZXdGb2N1c0ZpZWxkKSB7Ci0gICAgICAgIG1fZm9jdXNGaWVs
ZEluZGV4ID0gaW52YWxpZEZpZWxkSW5kZXg7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBtX2ZvY3VzRmllbGRJbmRleCA9IG5ld0ZvY3VzRmllbGRJbmRleDsKLSAgICBuZXdGb2N1c0Zp
ZWxkLT5zZXRGb2N1cyh0cnVlKTsKKyAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxk
ID0gZmllbGRBdCgwKSkKKyAgICAgICAgZmllbGQtPmZvY3VzKCk7CiB9CiAKLXZvaWQgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBrZXlib2Fy
ZEV2ZW50KQordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0J5T3duZXIoKQogewotICAg
IGlmIChpc0Rpc2FibGVkKCkgfHwgaXNSZWFkT25seSgpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpZiAoIWZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpZiAoa2V5Ym9hcmRFdmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciA9IGtl
eWJvYXJkRXZlbnQtPmtleUlkZW50aWZpZXIoKTsKLQotICAgIGlmIChrZXlJZGVudGlmaWVyID09
ICJMZWZ0IikgewotICAgICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwot
ICAgICAgICBjb25zdCBzaXplX3QgZmllbGRJbmRleCA9IHByZXZpb3VzRmllbGRJbmRleCgpOwot
ICAgICAgICBpZiAoZmllbGRBdChmaWVsZEluZGV4KSkKLSAgICAgICAgICAgIGZvY3VzRmllbGRB
dChmaWVsZEluZGV4KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAoRGF0ZVRpbWVG
aWVsZEVsZW1lbnQqIGZpZWxkID0gZmllbGRBdCgwKSkKKyAgICAgICAgZmllbGQtPmZvY3VzKCk7
Cit9CiAKLSAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiUmlnaHQiKSB7Ci0gICAgICAgIGtleWJv
YXJkRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBmaWVs
ZEluZGV4ID0gbmV4dEZpZWxkSW5kZXgoKTsKLSAgICAgICAgaWYgKGZpZWxkQXQoZmllbGRJbmRl
eCkpCi0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQoZmllbGRJbmRleCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9CitEYXRlVGltZUZpZWxkRWxlbWVudCogRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9j
dXNlZEZpZWxkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmllbGRBdChmb2N1c2VkRmllbGRJbmRl
eCgpKTsKK30KIAotICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJVKzAwMDkiKSB7Ci0gICAgICAg
IGNvbnN0IHNpemVfdCBmaWVsZEluZGV4ID0ga2V5Ym9hcmRFdmVudC0+Z2V0TW9kaWZpZXJTdGF0
ZSgiU2hpZnQiKSA/IHByZXZpb3VzRmllbGRJbmRleCgpIDogbmV4dEZpZWxkSW5kZXgoKTsKLSAg
ICAgICAgaWYgKGZpZWxkQXQoZmllbGRJbmRleCkpIHsKLSAgICAgICAgICAgIGtleWJvYXJkRXZl
bnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQoZmllbGRJ
bmRleCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KK3NpemVfdCBEYXRlVGltZUVk
aXRFbGVtZW50Ojpmb2N1c2VkRmllbGRJbmRleCgpIGNvbnN0Cit7CisgICAgZm9yIChzaXplX3Qg
ZmllbGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRl
eCkgeworICAgICAgICBpZiAobV9maWVsZHNbZmllbGRJbmRleF0tPmZvY3VzZWQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmaWVsZEluZGV4OwogICAgIH0KKyAgICByZXR1cm4gaW52YWxpZEZpZWxk
SW5kZXg7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRWYWx1ZUNoYW5nZWQo
KQpAQCAtMzA5LDMwICsyOTUsMzQgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZFZh
bHVlQ2hhbmdlZCgpCiAgICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZWRpdENvbnRyb2xWYWx1
ZUNoYW5nZWQoKTsKIH0KIAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c09uTmV4dEZp
ZWxkKCkKK2Jvb2wgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZChjb25zdCBE
YXRlVGltZUZpZWxkRWxlbWVudCYgZmllbGQpCiB7Ci0gICAgaWYgKG1fZm9jdXNGaWVsZEluZGV4
ICE9IGludmFsaWRGaWVsZEluZGV4KQotICAgICAgICBmb2N1c0ZpZWxkQXQobmV4dEZpZWxkSW5k
ZXgoKSk7CisgICAgY29uc3Qgc2l6ZV90IHN0YXJ0RmllbGRJbmRleCA9IGZpZWxkSW5kZXhPZihm
aWVsZCk7CisgICAgaWYgKHN0YXJ0RmllbGRJbmRleCA9PSBpbnZhbGlkRmllbGRJbmRleCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSBzdGFydEZp
ZWxkSW5kZXggKyAxOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgp
IHsKKyAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNSZWFkT25seSgpKSB7Cisg
ICAgICAgICAgICBtX2ZpZWxkc1tmaWVsZEluZGV4XS0+Zm9jdXMoKTsKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBEYXRlVGltZUVkaXRFbGVtZW50OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqIG1vdXNl
RXZlbnQpCitib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzT25QcmV2aW91c0ZpZWxkKGNv
bnN0IERhdGVUaW1lRmllbGRFbGVtZW50JiBmaWVsZCkKIHsKLSAgICBpZiAoaXNEaXNhYmxlZCgp
IHx8IGlzUmVhZE9ubHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1vdXNlRXZlbnQt
PnR5cGUoKSAhPSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgfHwgbW91c2VFdmVudC0+YnV0
dG9uKCkgIT0gTGVmdEJ1dHRvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTm9kZSogY29uc3Qg
cmVsYXRlZFRhcmdldCA9IG1vdXNlRXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKLSAgICBmb3Ig
KHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytm
aWVsZEluZGV4KSB7Ci0gICAgICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4XSA9PSByZWxhdGVk
VGFyZ2V0KSB7Ci0gICAgICAgICAgICBtb3VzZUV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwot
ICAgICAgICAgICAgZm9jdXNGaWVsZEF0KGZpZWxkSW5kZXgpOwotICAgICAgICAgICAgaWYgKG1f
ZWRpdENvbnRyb2xPd25lcikKLSAgICAgICAgICAgICAgICBtX2VkaXRDb250cm9sT3duZXItPmVk
aXRDb250cm9sTW91c2VGb2N1cygpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY29uc3Qgc2l6
ZV90IHN0YXJ0RmllbGRJbmRleCA9IGZpZWxkSW5kZXhPZihmaWVsZCk7CisgICAgaWYgKHN0YXJ0
RmllbGRJbmRleCA9PSBpbnZhbGlkRmllbGRJbmRleCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHNpemVfdCBmaWVsZEluZGV4ID0gc3RhcnRGaWVsZEluZGV4OworICAgIHdoaWxlIChmaWVs
ZEluZGV4ID4gMCkgeworICAgICAgICAtLWZpZWxkSW5kZXg7CisgICAgICAgIGlmICghbV9maWVs
ZHNbZmllbGRJbmRleF0tPmlzUmVhZE9ubHkoKSkgeworICAgICAgICAgICAgbV9maWVsZHNbZmll
bGRJbmRleF0tPmZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQog
ICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
aXNEaXNhYmxlZCgpIGNvbnN0CkBAIC0zNDcsMTAgKzMzNyw5IEBAIGJvb2wgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6aXNSZWFkT25seSgpIGNvbnN0CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
bGF5b3V0KGNvbnN0IFN0ZXBSYW5nZSYgc3RlcFJhbmdlLCBjb25zdCBEYXRlQ29tcG9uZW50cyYg
ZGF0ZVZhbHVlKQogewotICAgIHNpemVfdCBmb2N1c0ZpZWxkSW5kZXggPSBtX2ZvY3VzRmllbGRJ
bmRleDsKLSAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZm9jdXNGaWVsZCA9IGZpZWxk
QXQobV9mb2N1c0ZpZWxkSW5kZXgpOwotICAgIGNvbnN0IEF0b21pY1N0cmluZyBmb2N1c0ZpZWxk
SWQgPSBmb2N1c0ZpZWxkID8gZm9jdXNGaWVsZC0+c2hhZG93UHNldWRvSWQoKSA6IG51bGxBdG9t
OwotICAgIGZvY3VzRmllbGRBdChpbnZhbGlkRmllbGRJbmRleCk7CisgICAgc2l6ZV90IGZvY3Vz
ZWRGaWVsZEluZGV4ID0gdGhpcy0+Zm9jdXNlZEZpZWxkSW5kZXgoKTsKKyAgICBEYXRlVGltZUZp
ZWxkRWxlbWVudCogY29uc3QgZm9jdXNlZEZpZWxkID0gZmllbGRBdChmb2N1c2VkRmllbGRJbmRl
eCk7CisgICAgY29uc3QgQXRvbWljU3RyaW5nIGZvY3VzZWRGaWVsZElkID0gZm9jdXNlZEZpZWxk
ID8gZm9jdXNlZEZpZWxkLT5zaGFkb3dQc2V1ZG9JZCgpIDogbnVsbEF0b207CiAKICAgICBEYXRl
VGltZUVkaXRCdWlsZGVyIGJ1aWxkZXIoKnRoaXMsIHN0ZXBSYW5nZSwgZGF0ZVZhbHVlKTsKICAg
ICBjb25zdCBTdHJpbmcgZGF0ZVRpbWVGb3JtYXQgPSBidWlsZGVyLm5lZWRTZWNvbmRGaWVsZCgp
ID8gbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKSA6IGxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRl
eHQoKTsKQEAgLTM2MSwzNyArMzUwLDE2IEBAIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5
b3V0KGNvbnN0IFN0ZXBSYW5nZSYgc3RlcFJhbmdlLCBjb25zdCBEYXRlQ29tcG9uZW50CiAgICAg
bV9zcGluQnV0dG9uID0gc3BpbkJ1dHRvbi5nZXQoKTsKICAgICBhcHBlbmRDaGlsZChzcGluQnV0
dG9uKTsKIAotICAgIGlmIChmb2N1c0ZpZWxkSW5kZXggIT0gaW52YWxpZEZpZWxkSW5kZXgpIHsK
KyAgICBpZiAoZm9jdXNlZEZpZWxkSW5kZXggIT0gaW52YWxpZEZpZWxkSW5kZXgpIHsKICAgICAg
ICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXpl
KCk7ICsrZmllbGRJbmRleCkgewotICAgICAgICAgICAgaWYgKG1fZmllbGRzW2ZpZWxkSW5kZXhd
LT5zaGFkb3dQc2V1ZG9JZCgpID09IGZvY3VzRmllbGRJZCkgewotICAgICAgICAgICAgICAgIGZv
Y3VzRmllbGRJbmRleCA9IGZpZWxkSW5kZXg7CisgICAgICAgICAgICBpZiAobV9maWVsZHNbZmll
bGRJbmRleF0tPnNoYWRvd1BzZXVkb0lkKCkgPT0gZm9jdXNlZEZpZWxkSWQpIHsKKyAgICAgICAg
ICAgICAgICBmb2N1c2VkRmllbGRJbmRleCA9IGZpZWxkSW5kZXg7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgZm9jdXNGaWVsZEF0KHN0
ZDo6bWluKGZvY3VzRmllbGRJbmRleCwgbV9maWVsZHMuc2l6ZSgpIC0gMSkpOwotICAgIH0KLX0K
LQotc2l6ZV90IERhdGVUaW1lRWRpdEVsZW1lbnQ6Om5leHRGaWVsZEluZGV4KCkgY29uc3QKLXsK
LSAgICBBU1NFUlQobV9mb2N1c0ZpZWxkSW5kZXggIT0gaW52YWxpZEZpZWxkSW5kZXgpOwotICAg
IGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSBtX2ZvY3VzRmllbGRJbmRleCArIDE7IGZpZWxkSW5k
ZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkgewotICAgICAgICBpZiAoIW1fZmll
bGRzW2ZpZWxkSW5kZXhdLT5pc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gZmllbGRJ
bmRleDsKLSAgICB9Ci0gICAgcmV0dXJuIG1fZmllbGRzLnNpemUoKTsKLX0KLQotc2l6ZV90IERh
dGVUaW1lRWRpdEVsZW1lbnQ6OnByZXZpb3VzRmllbGRJbmRleCgpIGNvbnN0Ci17Ci0gICAgQVNT
RVJUKG1fZm9jdXNGaWVsZEluZGV4ICE9IGludmFsaWRGaWVsZEluZGV4KTsKLSAgICBzaXplX3Qg
ZmllbGRJbmRleCA9IG1fZm9jdXNGaWVsZEluZGV4OwotICAgIHdoaWxlIChmaWVsZEluZGV4ID4g
MCkgewotICAgICAgICAtLWZpZWxkSW5kZXg7Ci0gICAgICAgIGlmICghbV9maWVsZHNbZmllbGRJ
bmRleF0tPmlzUmVhZE9ubHkoKSkKLSAgICAgICAgICAgIHJldHVybiBmaWVsZEluZGV4OworICAg
ICAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkID0gZmllbGRBdChzdGQ6Om1pbihm
b2N1c2VkRmllbGRJbmRleCwgbV9maWVsZHMuc2l6ZSgpIC0gMSkpKQorICAgICAgICAgICAgZmll
bGQtPmZvY3VzKCk7CiAgICAgfQotICAgIHJldHVybiBpbnZhbGlkRmllbGRJbmRleDsKIH0KIAog
dm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpyZWFkT25seVN0YXRlQ2hhbmdlZCgpCkBAIC00MDMs
NDIgKzM3MSwyNiBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnJlc2V0TGF5b3V0KCkKIHsK
ICAgICBtX2ZpZWxkcy5zaHJpbmsoMCk7CiAgICAgbV9zcGluQnV0dG9uID0gMDsKLSAgICBtX2Zv
Y3VzRmllbGRJbmRleCA9IGludmFsaWRGaWVsZEluZGV4OwogICAgIHJlbW92ZUNoaWxkcmVuKCk7
CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCogZXZlbnQpCiB7Ci0gICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmZvY3Vz
RXZlbnQpIHsKLSAgICAgICAgaWYgKCFpc0Rpc2FibGVkKCkgJiYgIWlzUmVhZE9ubHkoKSAmJiBt
X2ZvY3VzRmllbGRJbmRleCA9PSBpbnZhbGlkRmllbGRJbmRleCkKLSAgICAgICAgICAgIGZvY3Vz
RmllbGRBdCgwKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQpIHsKLSAgICAgICAgZm9jdXNGaWVsZEF0KGlu
dmFsaWRGaWVsZEluZGV4KTsKLSAgICAgICAgcmV0dXJuOworICAgIC8vIEluIGNhc2Ugb2YgY29u
dHJvbCBvd25lciBmb3J3YXJkIGV2ZW50IHRvIGNvbnRyb2wsIGUuZy4gRE9NCisgICAgLy8gZGlz
cGF0Y2hFdmVudCBtZXRob2QuCisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9
IGZvY3VzZWRGaWVsZCgpKSB7CisgICAgICAgIGZpZWxkLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2
ZW50KTsKKyAgICAgICAgaWYgKGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQorICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKLSAgICAg
ICAgaGFuZGxlTW91c2VFdmVudChzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpKTsKLSAg
ICB9IGVsc2UgaWYgKGV2ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkKLSAgICAgICAgaGFuZGxlS2V5
Ym9hcmRFdmVudChzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpKTsKLQotICAgIGlm
IChldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRGF0ZVRp
bWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1fZm9jdXNGaWVsZElu
ZGV4KTsKLSAgICBpZiAoIWZvY3VzRmllbGQpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmICht
X3NwaW5CdXR0b24pIHsKICAgICAgICAgbV9zcGluQnV0dG9uLT5mb3J3YXJkRXZlbnQoZXZlbnQp
OwogICAgICAgICBpZiAoZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgZm9jdXNGaWVsZC0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7
CisgICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogfQogCiB2
b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IFN0ZXBSYW5nZSYg
c3RlcFJhbmdlLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKQEAgLTQ2NSwyNiArNDE3LDI3
IEBAIGJvb2wgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2hvdWxkU3BpbkJ1dHRvblJlc3BvbmRUb1do
ZWVsRXZlbnRzKCkKICAgICBpZiAoIXNob3VsZFNwaW5CdXR0b25SZXNwb25kVG9Nb3VzZUV2ZW50
cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gIW1fZWRpdENvbnRyb2xP
d25lciB8fCBtX2VkaXRDb250cm9sT3duZXItPmlzRWRpdENvbnRyb2xPd25lckZvY3VzZWQoKTsK
KyAgICByZXR1cm4gZm9jdXNlZEZpZWxkSW5kZXgoKSAhPSBpbnZhbGlkRmllbGRJbmRleDsKIH0K
IAogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcERvd24oKQogewotICAg
IGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZm9jdXNGaWVsZCA9IGZpZWxkQXQobV9m
b2N1c0ZpZWxkSW5kZXgpKQotICAgICAgICBmb2N1c0ZpZWxkLT5zdGVwRG93bigpOworICAgIGlm
IChEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZmllbGQgPSBmb2N1c2VkRmllbGQoKSkKKyAg
ICAgICAgZmllbGQtPnN0ZXBEb3duKCk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
c3BpbkJ1dHRvblN0ZXBVcCgpCiB7Ci0gICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25z
dCBmb2N1c0ZpZWxkID0gZmllbGRBdChtX2ZvY3VzRmllbGRJbmRleCkpCi0gICAgICAgIGZvY3Vz
RmllbGQtPnN0ZXBVcCgpOworICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZmll
bGQgPSBmb2N1c2VkRmllbGQoKSkKKyAgICAgICAgZmllbGQtPnN0ZXBVcCgpOwogfQogCiB2b2lk
IERhdGVUaW1lRWRpdEVsZW1lbnQ6OnVwZGF0ZVVJU3RhdGUoKQogewogICAgIGlmIChpc0Rpc2Fi
bGVkKCkgfHwgaXNSZWFkT25seSgpKSB7CiAgICAgICAgIG1fc3BpbkJ1dHRvbi0+cmVsZWFzZUNh
cHR1cmUoKTsKLSAgICAgICAgZm9jdXNGaWVsZEF0KGludmFsaWRGaWVsZEluZGV4KTsKKyAgICAg
ICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZCA9IGZvY3VzZWRGaWVsZCgpKQorICAg
ICAgICAgICAgZmllbGQtPmJsdXIoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAppbmRleCA4ZDllMDE1YTI2Zjc1MDU4
MWUyMjlmNjllMTM5Mjk3YmY2ZjYwMzUzLi4xMGM0NjY0ODc2MjdlNGY4ZGNhYTg3YTU5ZWM1NWQw
Yzk5ZjBlNDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUVkaXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVF
ZGl0RWxlbWVudC5oCkBAIC01MSwxMSArNTEsMTAgQEAgcHVibGljOgogICAgIGNsYXNzIEVkaXRD
b250cm9sT3duZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+RWRpdENvbnRyb2xP
d25lcigpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNBbmRTZWxlY3RFZGl0Q29udHJvbE93
bmVyKCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xNb3VzZUZvY3VzKCkg
PSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQmx1ckZyb21Db250cm9sKCkgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXNPbkNvbnRyb2woKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBlZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpID0gMDsKICAgICAgICAgdmlydHVhbCBi
b29sIGlzRWRpdENvbnRyb2xPd25lckRpc2FibGVkKCkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyRm9jdXNlZCgpIGNvbnN0ID0gMDsKICAgICAgICAg
dmlydHVhbCBib29sIGlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5KCkgY29uc3QgPSAwOwogICAg
IH07CiAKQEAgLTYzLDggKzYyLDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkRhdGVUaW1l
RWRpdEVsZW1lbnQoKTsKICAgICB2b2lkIGFkZEZpZWxkKFBhc3NSZWZQdHI8RGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ+KTsKKyAgICB2b2lkIGJsdXJCeU93bmVyKCk7CiAgICAgdmlydHVhbCB2b2lkIGRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKICAgICB2b2lkIGRpc2FibGVkU3Rh
dGVDaGFuZ2VkKCk7CisgICAgdm9pZCBmb2N1c0J5T3duZXIoKTsKICAgICB2b2lkIHJlYWRPbmx5
U3RhdGVDaGFuZ2VkKCk7CiAgICAgdm9pZCByZW1vdmVFZGl0Q29udHJvbE93bmVyKCkgeyBtX2Vk
aXRDb250cm9sT3duZXIgPSAwOyB9CiAgICAgdm9pZCByZXNldExheW91dCgpOwpAQCAtODksMTkg
KzkwLDIwIEBAIHByaXZhdGU6CiAgICAgRGF0ZVRpbWVFZGl0RWxlbWVudChEb2N1bWVudCosIEVk
aXRDb250cm9sT3duZXImKTsKIAogICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBmaWVsZEF0KHNp
emVfdCkgY29uc3Q7Ci0gICAgdm9pZCBmb2N1c0ZpZWxkQXQoc2l6ZV90KTsKLSAgICB2b2lkIGhh
bmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCopOwotICAgIHZvaWQgaGFuZGxlTW91c2VF
dmVudChNb3VzZUV2ZW50Kik7CisgICAgc2l6ZV90IGZpZWxkSW5kZXhPZihjb25zdCBEYXRlVGlt
ZUZpZWxkRWxlbWVudCYpIGNvbnN0OworICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBmb2N1c2Vk
RmllbGQoKSBjb25zdDsKKyAgICBzaXplX3QgZm9jdXNlZEZpZWxkSW5kZXgoKSBjb25zdDsKICAg
ICBib29sIGlzRGlzYWJsZWQoKSBjb25zdDsKICAgICBib29sIGlzUmVhZE9ubHkoKSBjb25zdDsK
ICAgICB2b2lkIGxheW91dChjb25zdCBTdGVwUmFuZ2UmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYp
OwotICAgIHNpemVfdCBuZXh0RmllbGRJbmRleCgpIGNvbnN0OwotICAgIHNpemVfdCBwcmV2aW91
c0ZpZWxkSW5kZXgoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZVVJU3RhdGUoKTsKIAogICAgIC8v
IERhdGVUaW1lRmllbGRFbGVtZW50OjpGaWVsZE93bmVyIGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkQmx1ckZyb21GaWVsZCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRGb2N1c09uRmllbGQoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZmll
bGRWYWx1ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNP
bk5leHRGaWVsZCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBmb2N1c09uTmV4
dEZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgT1ZFUlJJREUgRklOQUw7CisgICAg
dmlydHVhbCBib29sIGZvY3VzT25QcmV2aW91c0ZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVt
ZW50JikgT1ZFUlJJREUgRklOQUw7CiAKICAgICAvLyBTcGluQnV0dG9uRWxlbWVudDo6U3BpbkJ1
dHRvbk93bmVyIGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNBbmRTZWxlY3RTcGlu
QnV0dG9uT3duZXIoKSBPVkVSUklERSBGSU5BTDsKQEAgLTExMyw3ICsxMTUsNiBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxEYXRlVGltZUZpZWxkRWxlbWVudCosIG1heGltdW1OdW1iZXJPZkZpZWxk
cz4gbV9maWVsZHM7CiAgICAgRWRpdENvbnRyb2xPd25lciogbV9lZGl0Q29udHJvbE93bmVyOwog
ICAgIFNwaW5CdXR0b25FbGVtZW50KiBtX3NwaW5CdXR0b247Ci0gICAgc2l6ZV90IG1fZm9jdXNG
aWVsZEluZGV4OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwCmluZGV4IDlkNTZk
OWJmODdlMTQ0YjhiZDVlNTYyMGMwODc0YzM1ZGUxNmIxNDguLjViNjk2NDc4YTg5NmQ5NjBmYmMx
NDBlNzJmZTMxMmRkMzQ0OWNlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJUZXh0
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDYgKzQ5LDEyIEBAIERhdGVUaW1lRmll
bGRFbGVtZW50OjpEYXRlVGltZUZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxk
T3duZXImIGZpZWxkCiAKIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQqIGV2ZW50KQogeworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5ibHVyRXZlbnQpCisgICAgICAgIGRpZEJsdXIoKTsKKworICAgIGlmIChldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50KQorICAgICAgICBkaWRGb2N1cygpOworCiAg
ICAgaWYgKGV2ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkgewogICAgICAgICBLZXlib2FyZEV2ZW50
KiBrZXlib2FyZEV2ZW50ID0gc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KTsKICAg
ICAgICAgaGFuZGxlS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50KTsKQEAgLTc0LDYgKzgxLDIy
IEBAIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxl
cihLZXlib2FyZEV2ZW50KiBrZXlib2FyZEV2CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAg
ICBpZiAoa2V5SWRlbnRpZmllciA9PSAiTGVmdCIpIHsKKyAgICAgICAgaWYgKCFtX2ZpZWxkT3du
ZXIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChtX2ZpZWxkT3duZXItPmZvY3Vz
T25QcmV2aW91c0ZpZWxkKCp0aGlzKSkKKyAgICAgICAgICAgIGtleWJvYXJkRXZlbnQtPnNldERl
ZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoa2V5SWRl
bnRpZmllciA9PSAiUmlnaHQiKSB7CisgICAgICAgIGlmICghbV9maWVsZE93bmVyKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBpZiAobV9maWVsZE93bmVyLT5mb2N1c09uTmV4dEZpZWxk
KCp0aGlzKSkKKyAgICAgICAgICAgIGtleWJvYXJkRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiVXAi
KSB7CiAgICAgICAgIGtleWJvYXJkRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAg
IHN0ZXBVcCgpOwpAQCAtODcsMTAgKzExMCwyMyBAQCB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50
OjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdgog
ICAgIH0KIH0KIAotdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCgp
Cit2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50OjpkaWRCbHVyKCkKK3sKKyAgICBpZiAobV9maWVs
ZE93bmVyKQorICAgICAgICBtX2ZpZWxkT3duZXItPmRpZEJsdXJGcm9tRmllbGQoKTsKK30KKwor
dm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGlkRm9jdXMoKQogewogICAgIGlmIChtX2ZpZWxk
T3duZXIpCi0gICAgICAgIG1fZmllbGRPd25lci0+Zm9jdXNPbk5leHRGaWVsZCgpOworICAgICAg
ICBtX2ZpZWxkT3duZXItPmRpZEZvY3VzT25GaWVsZCgpOworfQorCit2b2lkIERhdGVUaW1lRmll
bGRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKCkKK3sKKyAgICBpZiAoIW1fZmllbGRPd25lcikK
KyAgICAgICAgcmV0dXJuOworICAgIG1fZmllbGRPd25lci0+Zm9jdXNPbk5leHRGaWVsZCgqdGhp
cyk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRv
bWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCkKQEAgLTk5LDYgKzEzNSwxMSBAQCB2b2lkIERhdGVU
aW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNl
dWRvSWQpCiAgICAgYXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIHZpc2libGVW
YWx1ZSgpKSk7CiB9CiAKK2Jvb2wgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gIWlzUmVhZE9ubHkoKTsKK30KKwogYm9vbCBEYXRlVGltZUZp
ZWxkRWxlbWVudDo6aXNSZWFkT25seSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhc3RIYXNBdHRy
aWJ1dGUocmVhZG9ubHlBdHRyKTsKQEAgLTExMSw2ICsxNTIsMTEgQEAgdm9pZCBEYXRlVGltZUZp
ZWxkRWxlbWVudDo6c2V0UmVhZE9ubHkoKQogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0K
IAorYm9vbCBEYXRlVGltZUZpZWxkRWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVwZGF0ZVZp
c2libGVWYWx1ZShFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgVGV4dCogY29u
c3QgdGV4dE5vZGUgPSB0b1RleHQoZmlyc3RDaGlsZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCmluZGV4IGNkMzllMjhhMzk0NDlj
YTRiOGM0NTMwZDZiOWU2NDY2N2RjNGZjNDUuLjEzNzZjNjJmNDc5YjRjYmYwZGZmMTY0NzcwYjMz
MjMxZTNjYmExZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnQuaApAQCAtNDksOCArNDksMTEgQEAgcHVibGljOgogICAgIGNsYXNzIEZp
ZWxkT3duZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+RmllbGRPd25lcigpOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQmx1ckZyb21GaWVsZCgpID0gMDsKKyAgICAgICAgdmly
dHVhbCB2b2lkIGRpZEZvY3VzT25GaWVsZCgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGZp
ZWxkVmFsdWVDaGFuZ2VkKCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNPbk5leHRG
aWVsZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCBib29sIGZvY3VzT25OZXh0RmllbGQoY29uc3Qg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgYm9vbCBmb2N1c09u
UHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYpID0gMDsKICAgICB9Owog
CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsK
QEAgLTcwLDYgKzczLDggQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJik7CisgICAgdmlydHVhbCB2b2lkIGRpZEJs
dXIoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXMoKTsKICAgICB2b2lkIGZvY3VzT25OZXh0
RmllbGQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2
ZW50KikgPSAwOwogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKQEAg
LTc4LDYgKzgzLDggQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIHZvaWQgZGVmYXVsdEtl
eWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNG
b2N1c2FibGUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogCiAgICAgRmllbGRPd25lciogbV9maWVs
ZE93bmVyOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA1ODkzMWJkZDNkZmIzZGZiNTdlM2NjNjA0YmYyNDM0MTdlNmU1
ZjQzLi4yMWQwOTVkNTAzZTE5YjZhYTI2Mjc4OTNhM2FhYzk2Y2Q0Y2M0NDk3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTItMDgtMzAgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBbRm9ybXNdIFNoaWZ0K1RhYiBzaG91bGQgZm9jdXMgdGhlIGxhc3Qg
ZmllbGQgb2YgbXVsdGlwbGUgZmllbGRzIHRpbWUgaW5wdXQgVUkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTY4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGZvY3VzIGFuZCBi
bHVyIGV2ZW50IGhhbmRsaW5nIHRlc3QgYW5kIGEgbmV3IHRlc3QgY2FzZQorICAgICAgICBmb3Ig
U2hpZnQrVGFiIGZvciBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAgICAgICAq
IHRpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHRpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2
ZW50cy5odG1sOiBBZGRlZCBmb3IgYmx1ciBhbmQgZm9jdXMgZXZlbnRzIGhhbmRsaW5nLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVs
ZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWw6IENoYW5nZWQgdG8gYWRkIGEgdGVzdCBjYXNlcyBmb3Ig
U2hpZnQrVGFiLgorCiAyMDEyLTA4LTI5ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW1Rlc3RzXSBBZGQgdGVzdCBjYXNlIGZvciByaWdodC10by1sZWZ0
IHJlbmRlcmluZyBvZiBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxl
LWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1ibHVy
LWFuZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMjM5MjE4N2M1ZWUw
ZTYwMzYxYmQxNDFlZWMwYzZmYTUxZjIxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJs
dXItYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorQ2hlY2sg
Ymx1ciBhbmQgZm9jdXMgZXZlbnRzIGZvciBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSQor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworZm9jdXMoKSBhbmQgYmx1cigpCitQQVNT
IHRlc3RJbnB1dC5mb2N1cygpOyBzdGF0ZSgpIGlzICJibHVyPTAgZm9jdXM9MSIKK1BBU1MgdGVz
dElucHV0LmJsdXIoKTsgc3RhdGUoKSBpcyAiYmx1cj0xIGZvY3VzPTEiCitmb2N1cyBhbmQgVGFi
IGtleSB0byBibHVyCitQQVNTIGtleURvd24oIgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0wIGZvY3Vz
PTEiCitQQVNTIGtleURvd24oIgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0wIGZvY3VzPTEiCitQQVNT
IGtleURvd24oIgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0wIGZvY3VzPTEiCitQQVNTIGtleURvd24o
IgkiKTsgc3RhdGUoKSBpcyAiYmx1cj0xIGZvY3VzPTEiCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXIt
YW5kLWZvY3VzLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRp
cGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1ldmVudHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yN2MxMTc5MjY4YjVjMTE1ZjAxNTRhM2JhZmU3NjNjNzE4NjFiNWY3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZp
ZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1ibHVyLWFuZC1mb2N1cy1ldmVudHMuaHRtbApAQCAt
MCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iY29udGFpbmVyIj4KKzxpbnB1dCBpZD0iYmVmb3JlIj4KKzxpbnB1
dCBpZD0idGVzdCIgdHlwZT0idGltZSIgdmFsdWU9IjEyOjM0Ij4KKzxpbnB1dCBpZD0iYWZ0ZXIi
PgorPC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ0NoZWNrIGJsdXIgYW5kIGZvY3VzIGV2
ZW50cyBmb3IgbXVsdGlwbGUgZmllbGRzIHRpbWUgaW5wdXQgVUknKTsKKwordmFyIGJsdXJDb3Vu
dGVyID0gMDsKK3ZhciBmb2N1c0NvdW50ZXIgPSAwOworCitmdW5jdGlvbiBrZXlEb3duKGtleSwg
bW9kaWZpZXJzKQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICByZXR1
cm47CisgICAgZXZlbnRTZW5kZXIua2V5RG93bihrZXksIG1vZGlmaWVycyk7Cit9CisKK2Z1bmN0
aW9uIHN0YXRlKCkKK3sKKyAgICByZXR1cm4gJ2JsdXI9JyArIGJsdXJDb3VudGVyICsgJyBmb2N1
cz0nICsgZm9jdXNDb3VudGVyOworfQorCit2YXIgdGVzdElucHV0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3QnKTsKK3Rlc3RJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgZnVu
Y3Rpb24gKCkgeyArK2JsdXJDb3VudGVyOyB9KTsKK3Rlc3RJbnB1dC5hZGRFdmVudExpc3RlbmVy
KCdmb2N1cycsIGZ1bmN0aW9uICgpIHsgKytmb2N1c0NvdW50ZXI7IH0pOworCitmdW5jdGlvbiBi
ZWdpblRlc3RDYXNlKHRlc3RDYXNlTmFtZSkKK3sKKyAgICBkZWJ1Zyh0ZXN0Q2FzZU5hbWUpOwor
ICAgIGJsdXJDb3VudGVyID0gMDsKKyAgICBmb2N1c0NvdW50ZXIgPSAwOworfQorCitiZWdpblRl
c3RDYXNlKCdmb2N1cygpIGFuZCBibHVyKCknKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVz
dElucHV0LmZvY3VzKCk7IHN0YXRlKCknLCAnYmx1cj0wIGZvY3VzPTEnKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygndGVzdElucHV0LmJsdXIoKTsgc3RhdGUoKScsICdibHVyPTEgZm9jdXM9MScp
OworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgYmVnaW5UZXN0Q2FzZSgnZm9jdXMg
YW5kIFRhYiBrZXkgdG8gYmx1cicpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZWZv
cmUiKS5mb2N1cygpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygna2V5RG93bigiXHQiKTsg
c3RhdGUoKScsICdibHVyPTAgZm9jdXM9MScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
a2V5RG93bigiXHQiKTsgc3RhdGUoKScsICdibHVyPTAgZm9jdXM9MScpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygna2V5RG93bigiXHQiKTsgc3RhdGUoKScsICdibHVyPTAgZm9jdXM9MScp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygna2V5RG93bigiXHQiKTsgc3RhdGUoKScsICdi
bHVyPTEgZm9jdXM9MScpOworfSBlbHNlIHsKKyAgICBkZWJ1ZygnUGxlYXNlIHJ1biBpbiBEdW1w
UmVuZGVyVHJlZSBmb3IgZm9jdXMgYW5kIFRhYi1rZXkgdGVzdCBjYXNlJyk7Cit9CisKK2RlYnVn
KCcnKTsKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnRhaW5lciIpKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRp
cGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2Fy
ZC1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDYxOGE2OTY4MmNlNjIxZDEzZjFmYmZiNTVmYjAz
YTNjMDJiYWUwMzYuLjk4ZDIzNjk5ZjlhZGQ1MzliOTI1NTEwMWI5MDJhMTNlYTA4Y2E5ODMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGlt
ZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmll
bGRzLWtleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTExLDcgKzExLDcgQEAgTGVmdC9S
aWdodCAtIE1vdmUgZm9jdXMgZmllbGQgaW5zaWRlIGVsZW1lbnQKIFVwL0Rvd24gLSBJbmNyZW1l
bnQvZGVjcmVtZW50IHZhbHVlIG9mIGZvY3VzIGZpZWxkCiBUYWIgLSBNb3ZlIGZvY3VzIGZpZWxk
CiBCYWNrc3BhY2UgLSBNYWtlIHZhbHVlIGVtcHR5Ci0gCisgIAogPT0gRGlnaXQga2V5cyA9PQog
UEFTUyBpbnB1dC52YWx1ZSBpcyAiMDc6NTYiCiA9PSBMZWZ0L1JpZ2h0IGtleXMgPT0KQEAgLTI2
LDYgKzI2LDEwIEBAIFBBU1MgaW5wdXQudmFsdWUgaXMgIjE0OjU4IgogUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMDM6MDUiCiBQQVNTIGlucHV0LnZhbHVlIGlzICIwNzowNSIKIFBBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5pZCBpcyAiYW5vdGhlciIKKz09IFNoZml0K1RhYiBrZXkgPT0KK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjE1OjAwIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTU6MDMiCitQQVNT
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgaXMgImJlZm9yZSIKID09IEJhY2tzcGFjZSBrZXkg
PT0KIFBBU1MgaW5wdXQudmFsdWUgaXMgIiIKID09IERlbGV0ZSBrZXkgPT0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBs
ZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Rp
bWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5o
dG1sCmluZGV4IDdmMzUyMTJjODMyM2RjZWJjY2FmMzQ5NDM4NDU4YjhjYzA3MzRhYjcuLjFkNThh
MTA1YmQ4ZGMzY2E4MDNhOTgzOTJkNjY1Y2ZhZmMzOTk3ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMt
a2V5Ym9hcmQtZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11
bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbApA
QCAtMTYsNiArMTYsNyBAQCBUZXN0IGZvbGxvd2luZyBrZXlzOgogICAgIDxsaT5UYWIgLSBNb3Zl
IGZvY3VzIGZpZWxkPC9saT4KICAgICA8bGk+QmFja3NwYWNlIC0gTWFrZSB2YWx1ZSBlbXB0eTwv
bGk+CiA8L3VsPgorPGlucHV0IGlkPSJiZWZvcmUiPgogPGlucHV0IGlkPSJpbnB1dCIgdHlwZT0i
dGltZSI+CiA8aW5wdXQgaWQ9ImFub3RoZXIiPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CkBA
IC05Nyw2ICs5OCwxOCBAQCBrZXlEb3duKCdcdCcpOwoga2V5RG93bignXHQnKTsKIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCcsICdhbm90aGVyJyk7CiAK
K2JlZ2luVGVzdCgnU2hmaXQrVGFiIGtleScsICcwMzowMCcpOworYW5vdGhlci5mb2N1cygpOwor
a2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5J10pOwora2V5RG93bignUCcpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcxNTowMCcpOwora2V5RG93bignXHQnLCBbJ3NoaWZ0
S2V5J10pOwora2V5RG93bignMycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1
ZScsICcxNTowMycpOwora2V5RG93bignXHQnLCBbJ3NoaWZ0S2V5J10pOwora2V5RG93bignXHQn
LCBbJ3NoaWZ0S2V5J10pOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmlkJywgJ2JlZm9yZScpOworCiBiZWdpblRlc3QoJ0JhY2tzcGFjZSBrZXknLCAnMTI6
MzQnKTsKIGtleURvd24oIlxiIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVl
JywgJycpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161615</attachid>
            <date>2012-08-30 20:46:41 -0700</date>
            <delta_ts>2012-08-30 20:47:58 -0700</delta_ts>
            <desc>Patch 9</desc>
            <filename>bug-95168-20120831124628.patch</filename>
            <type>text/plain</type>
            <size>38341</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyODk0YzY4YzhmZDM2
M2ZkYTAyNTQzZjljNmMzOWUxZjQ1ODhkNC4uN2U3ODJkMjNhNTg5MDdjYWQ5M2Y0ZDIxYzljOWJk
OTE4NjZjZTFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDEyLTA4LTI5ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBTaGlm
dCtUYWIgc2hvdWxkIGZvY3VzIHRoZSBsYXN0IGZpZWxkIG9mIG11bHRpcGxlIGZpZWxkcyB0aW1l
IGlucHV0IFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NTE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggY2hhbmdlcyBmb2N1cyBoYW5kbGluZyBpbiBEYXRlVGltZUVkaXRFbGVtZW50IGNs
YXNzIGZvcgorICAgICAgICBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSS4KKworICAgICAg
ICBDdXJyZW50IGltcGxlbWVudGF0aW9uIGNvbnRyb2xzIGZvY3VzIGluIGZpZWxkcyBieSBEYXRl
VGltZUVkaXRFbGVtZW50CisgICAgICAgIGFuZCBhIGZvY3VzIGZpZWxkIGlzIHRyYWNrZWQgbV9m
b2N1c0ZpZWxkSW5kZXggbWVtYmVyIHZhcmlhYmxlLiBJbgorICAgICAgICBjdXJyZW50IGltcGxl
bWVudGF0aW9uLCBpdCBpcyBoYXJkIHRvIHNldCBmb2N1cyB0byB0aGUgbGFzdCBmaWVsZCB3aGVu
CisgICAgICAgIGl0IGdldHMgZm9jdXMgYnkgU2hpZnQrVGFiLCBiZWNhdXNlIHdlIGRvbid0IGtu
b3cgaG93IERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgZ2V0cyBmb2N1cy4KKworICAgICAg
ICBJbiB0aGlzIG5ldyBpbXBsZW1lbnRhdGlvbiwgRGF0ZVRpbWVFZGl0RWxlbWVudCBkb2Vzbid0
IGNvbnRyb2wgZm9jdXMKKyAgICAgICAgcmF0aGVyIEZvY3VzQ29udHJvbGxlciBjbGFzcyBjb250
cm9scyBmb2N1czoKKyAgICAgICAgIC0gV2Ugc2V0IGZvY3VzIHRvIERhdGVUaW1lRmllbGRFbGVt
ZW50IGluc3RlYWQgb2YgSFRNTElucHV0RWxlbWVudAorICAgICAgICAgICB3aGljaCBpcyBzaGFk
b3cgaG9zdCBvZiBEYXRlVGltZUVkaXRFbGVtZW50IGZvciBjb250cm9sbGluZyBmb2N1cworICAg
ICAgICAgICBieSBGb2N1c0NvbnRyb2xsZXIuCisgICAgICAgICAtIEZvY3VzL2JsdXIgZXZlbnRz
IGluIERhdGVUaW1lRmllbGRFbGVtZW50IGFyZSByb3V0ZWQgdG8gSFRNTElucHV0RWxlbWVudAor
ICAgICAgICAgICBieSBzaGFkb3cgRE9NIG1lY2hhbmlzbS4KKyAgICAgICAgIC0gVGltZUlucHV0
VHlwZSBjbGFzcyBvdmVycmlkZXMgSFRNTElOcHV0RWxlbWVudDo6Ymx1cigpIGFuZCBmb2N1cygp
CisgICAgICAgICAgIGZ1bmN0aW9ucyBmb3IgZGVsZWdhdGluZyBibHVyL2ZvY3VzIGJlaGF2aW9y
IHRvIERhdGVUaW1lRWRpdEVsZW1lbnQKKyAgICAgICAgICAgYnkgY2FsbGluZyBEYXRlVGltZUVk
aXRFbGVtZW50OjpibHVyQnlPd25lcigpL2ZvY3VzQnlPd25lcigpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggYWZmZWN0cyBvbmx5IHBvcnRzIHdoaWNoIGVuYWJsZSBib3RoIEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUKKyAgICAgICAgYW5kIEVOQUJMRV9JTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklF
TERTLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3Rp
bWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCisgICAgICAgIFRo
aXMgcGF0Y2ggYWxzbyBhZGRzIGEgbmV3IHRlc3QgY2FzZSBmb3IgU2hpZnQrVGFiIGludG8gZmFz
dC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2Fy
ZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBs
OjpkaWRGaWVsZEJsdXIpOiBBZGRlZCBmb3IgdGhlIGlucHV0IGVsZW1lbnQgbm90IHRvIGJlIG1h
dGNoZWQgImZvY3VzIiBwc2V1ZG8gY2xhc3MgZm9yIHJlbW92aW5nIGZvY3VzIHJpbmcuCisgICAg
ICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBs
OjpkaWRGaWVsZEZvY3VzKTogIEFkZGVkIGZvciB0aGUgaW5wdXQgZWxlbWVudCB0byBiZSBtYXRj
aGVkICJmb2N1cyIgcHNldWRvIGNsYXNzIGZvciBhZGRpbmcgZm9jdXMgcmluZy4KKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVk
aXRDb250cm9sTW91c2VGb2N1cyk6IFJlbW92ZWQuIERhdGVUaW1lRWRpdEVsZW1lbnQgbm8gbG9u
Z2VyIHNldCBmb2N1cyB0byBIVE1MSW5wdXRFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6VGlt
ZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6Zm9jdXNBbmRTZWxlY3RF
ZGl0Q29udHJvbE93bmVyKTogUmVtb3ZlZC4gSW4gdGhpcyBwYXRjaCwgc2V0dHRpbmcgZm9jdXMg
dG8gZmllbGQgaXMgaGFuZGxlZCBieSBEYXRlVGltZUVkaXRFbGVtZW50LiBXZSBkb24ndCBuZWVk
IHRvIGNhbGwgSFRNTElucHV0RWxlbWVudDo6c2VsZWN0KCkgd2hpY2ggaGFzIG5vIGVmZmVjdCBm
b3IgInRpbWUiIGlucHV0IHR5cGUuCisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpE
YXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJGb2N1c2VkKTog
UmV2bW9lZC4gRm9jdXNDb250cm9sbGVyIG1hbmFnZXMgZm9jdXMgbmF2aWdhdGlvbiBpbiBmaWVs
ZHMgcmF0aGVyIHRoYW4gRGF0ZVRpbWVFZGl0RWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRp
bWVJbnB1dFR5cGU6OmJsdXIpOiBBZGRlZCBmb3IgZGVsZWdhdGluZyBibHVyKCkgYWN0aW9uIHRv
IERhdGVUaW1lRWRpdEVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpm
b2N1cyk6IEFkZGVkIGZvciBkZWxlZ2F0aW5nIGZvY3VzKCkgYWN0aW9uIHRvIERhdGVUaW1lRWRp
dEVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3Rp
dmF0ZUV2ZW50KTogUmVtb3ZlZC4gSFRNTElucHV0RWxlbWVudCBmb3IgInRpbWUiIGlucHV0IHR5
cGUgbm8gbG9uZ2VyIGdldCBmb2N1cy4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6
Omhhc0N1c3RvbUZvY3VzTG9naWMpOiBBZGRlZCBmb3IgYXNraW5nIEZvY3VzQ29udHJvbGxlciB0
byB3YWxrIGludG8gc2hhZG93IERPTSB0cmVlIG9uIGlucHV0IHR5cGUgInRpbWUiLgorICAgICAg
ICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJsZSk6IENoYW5nZWQg
Zm9yICJpbnB1dCIgZWxlbWVudCBub3QgdG8gaGF2ZSBmb2N1cy4KKyAgICAgICAgKFdlYkNvcmU6
OlRpbWVJbnB1dFR5cGU6OmlzTW91c2VGb2N1c2FibGUpOiAgQ2hhbmdlZCBmb3IgImlucHV0IiBl
bGVtZW50IG5vdCB0byBoYXZlIGZvY3VzLgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5o
OgorICAgICAgICAoRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCk6IENoYW5nZWQgZm9yIG5l
dyBkZWZpbml0aW9uIG9mIERhdGVUaW1lRWRpdENvbnRyb2xPd25lci4KKyAgICAgICAgKFRpbWVJ
bnB1dFR5cGUpOiBDaGFuZ2VkIGZvciBuZXcgZGVmaW5pdGlvbiBvZiBEYXRlVGltZUVkaXRFbGVt
ZW50LgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6RGF0ZVRpbWVFZGl0RWxlbWVudCk6
IFJlbW92ZWQgZHJvcHBlZCBtZW1iZXIgdmFyaWFibGUgbV9mb2N1c0ZpZWxkSW5kZXguCisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpibHVyQnlPd25lcik6IEFkZGVkIGZv
ciBibHVyKCkgYWN0aW9uIGFzZWtkIGJ5IG93bmVyLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVFZGl0RWxlbWVudDo6ZGlkQmx1ckZyb21GaWVsZCk6IEFkZGVkIGZvciBjYWxsaW5nIERhdGVU
aW1lRWRpdENvbnRyb2xPd25lcjo6ZGlkQmx1ckZyb21Db250cm9sKCkuCisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpkaWRGb2N1c09uRmllbGQpOiBBZGRlZCBmb3IgY2Fs
bGluZyBEYXRlVGltZUVkaXRDb250cm9sT3duZXI6OmRpZEZvY3VzT25Db250cm9sKCkuCisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZEluZGV4T2YpOiBBZGRlZCBm
b3IgbWFwcGluZyBEYXRlVGltZUZpZWxkRWxlbWVudCB0byBmaWVsZCBpbmRleC4KKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzQnlPd25lcik6IEFkZGVkIGZvciBm
b2N1cygpIGFjdGlvbiBhc2VrZCBieSBvd25lci4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEVsZW1lbnQ6OmZvY3VzRmllbGRBdCk6ICBSZW1vdmVkLgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNlZEZpZWxkSW5kZXgpOiBBZGRlZCBhcyBoZWxwZXIg
ZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c2Vk
RmllbGQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZv
Y3VzT25OZXh0RmllbGQpOiBDaGFuZ2VkIHRvIHBhc3MgYSBmaWVsZCB0byBmb2N1c09uTmV4dCgp
LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNPblByZXZpb3Vz
RmllbGQpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZv
Y3VzQW5kU2VsZWN0U3BpbkJ1dHRvbk93bmVyKTogQ2hhbmdlZCBmb3Igc2V0dGluZyBmb2N1cyB0
byB0aGUgZmlyc3QgZmllbGQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50
OjpoYW5kbGVLZXlib2FyZEV2ZW50KTogUmVtb3ZlZC4gTW92ZWQgaGFuZGxpbmcgb2YgTGVmdC9S
aWdodCBrZXlzIHRvIERhdGVUaW1lRmllbGRFbGVtZW50LiBSZW1vdmVkIFRhYi1rZXkgaGFuZGxp
bmcuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpoYW5kbGVNb3VzZUV2
ZW50KTogUmVtb3ZlZC4gRGF0ZVRpbWVFZGl0IGRvZXNuJ3QgaGFuZGxlIG1vdXNlIGNsaWNrIHNp
bmNlIHRoaXMgcGF0Y2guCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojps
YXlvdXQpOiBDaGFuZ2VkIHRvIHVzZSBmb2N1c0ZpZWxkSW5kZXgoKSBhbmQgRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ6OmZvY3VzKCkuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50
OjpuZXh0RmllbGRJbmRleCk6IFJlbW92ZWQuIGZvY3VzT25OZXh0RmllbGQgZG9lcyBzYW1ldGhp
bmcgYW5kIHNldHMgZm9jdXMuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50
OjpwcmV2aW91c0ZpZWxkSW5kZXgpOiBSZW1vdmVkLiBmb2N1c09uUHJldmlvdXNGaWVsZCBkb2Vz
IHNhbWV0aGluZyBhbmQgc2V0cyBmb2N1cy4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRp
dEVsZW1lbnQ6OnJlc2V0TGF5b3V0KTogQ2hhbmdlZCB0byByZW1vdmUgbV9mb2N1c0ZpZWxkSW5k
ZXggdmFyaWFibGUgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6IENoYW5nZWQgdG8gcmVtb3ZlIGZvY3VzIG5hdmln
YXRpb24gcmVsYXRlZCBldmVudHMsIGJsdWUvZm9jdXMvbW91c2UsIGhhbmRsaW5nLgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6c2hvdWxkU3BpbkJ1dHRvblJlc3BvbmRU
b1doZWVsRXZlbnRzKTogQ2hhbmdlZCB0byBjaGVjayBmb2N1cyBmaWVsZCBpbnN0ZWFkIG9mIGFz
a2luZyBvd25lci4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnNwaW5C
dXR0b25TdGVwRG93bik6IENoYW5nZWQgdG8gdXNlIGZvY3VzRmllbGQoKSBpbnN0ZWFkIG9mIG1f
Zm9jdXNGaWVsZEluZGV4LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6
c3BpbkJ1dHRvblN0ZXBVcCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0
RWxlbWVudDo6dXBkYXRlVUlTdGF0ZSk6IGRpdHRvLgorICAgICAgICAqIGh0bWwvc2hhZG93L0Rh
dGVUaW1lRWRpdEVsZW1lbnQuaDoKKyAgICAgICAgKEVkaXRDb250cm9sT3duZXIpOiBBZGRlZCBk
aWRCbHVyRnJvbUZpZWxkKCkgYW5kIGRpZEZvY3VzT25GaWVsZCgpIGZ1bmN0aW9uIGRlY2xhcmF0
aW9ucy4gUmVtb3ZlZCBmb2N1c0FuZFNlbGVjdEVkaXRDb250cm9sT3duZXIsIGl0IHdhcyB1c2Vk
IGZvciBzZXQgZm9jdXMgdG8gSFRNTElucHV0RWxlbWVudCwgYW5kIGlzRWRpdENvbnRyb2xPd25l
ckZvY3VzZWQuCisgICAgICAgIChEYXRlVGltZUVkaXRFbGVtZW50KToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6IENoYW5nZWQgdG8gaGFuZGxl
IGJsdXIgYW5kIGZvY3VzIGV2ZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRF
bGVtZW50OjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIpOiBDaGFuZ2VkIHRvIGhhbmRsZSBM
ZWZ0L1JpZ2h0IGtleXMuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6
ZGlkQmx1cik6IEFkZGVkIHRvIGNhbGwgRmllbGRPd25lcjo6ZGlkQmx1ckZyb21GaWVsZCgpIHRv
IHJlbW92ZSBmb2N1cyByaW5nIGZyb20gb3duZXIgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lRmllbGRFbGVtZW50OjpkaWRGb2N1cyk6IEFkZGVkIHRvIGNhbGwgRmllbGRPd25l
cjo6ZGlkRm9jdXNPbkZpZWxkKCkgIHRvIGFkZCBmb2N1cyByaW5nIHRvIG93bmVyIGVsZW1lbnQu
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6Zm9jdXNPbk5leHRGaWVs
ZCk6IEFkZGVkIGZvciBtb3ZpbmcgZm9jdXMgdG8gbmV4dCBmaWVsZCBmb3IgRGF0ZVRpbWVOdW1i
ZXJpY0ZpZWxkRWxtZW50CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6
aXNGb2N1c2FibGUpOiBBZGRlZCB0byBtYWtlIERhdGVUaW1lRmllbGRFbGVtZW50IGZvY3VzYWJs
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpzdXBwb3J0c0ZvY3Vz
KTogIEFkZGVkIHRvIG1ha2UgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZm9jdXNhYmxlLgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50Lmg6CisgICAgICAgIChGaWVsZE93
bmVyKTogQWRkZWQgZGVjbGFyYXRpb25zIGZvciBmb2N1c2FibGUgaGFuZGxpbmcuCisgICAgICAg
IChEYXRlVGltZUZpZWxkRWxlbWVudCk6IGRpdHRvLgorCiAyMDEyLTA4LTI5ICBBYXJvbiBDb2x3
ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBXZWJLaXQgcHJlZml4
IHRvIE1lZGlhU291cmNlLCBTb3VyY2VCdWZmZXIsICYgU291cmNlQnVmZmVyTGlzdCBET01XaW5k
b3cgY29uc3RydWN0b3IgYXR0cmlidXRlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUu
Y3BwCmluZGV4IDU4NjEwMzIzMTE1Y2EzMTI0ZTUwY2Q4ODdlZDcxMmIzYTZjNTlkYjkuLmJiZWVj
NDM0MzVhODcyMjEzMjhhYzg2M2NhNWJiNzRiMmEzZTIzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
aW1lSW5wdXRUeXBlLmNwcApAQCAtMTI0LDkgKzEyNCwyMiBAQCBUaW1lSW5wdXRUeXBlOjpEYXRl
VGltZUVkaXRDb250cm9sT3duZXJJbXBsOjp+RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCgp
CiB7CiB9CiAKLXZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1w
bDo6ZWRpdENvbnRyb2xNb3VzZUZvY3VzKCkKK3ZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVF
ZGl0Q29udHJvbE93bmVySW1wbDo6ZGlkQmx1ckZyb21Db250cm9sKCkKIHsKLSAgICBtX3RpbWVJ
bnB1dFR5cGUuZWxlbWVudCgpLT5mb2N1cygpOworICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gY2Fs
bCBibHVyKCkuIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gY29udHJvbAorICAgIC8vIGxv
c3QgZm9jdXMuCisKKyAgICAvLyBSZW1vdmUgZm9jdXMgcmluZyBieSBDU1MgImZvY3VzIiBwc2V1
ZG8gY2xhc3MuCisgICAgbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+c2V0Rm9jdXMoZmFsc2Up
OworfQorCit2b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6
OmRpZEZvY3VzT25Db250cm9sKCkKK3sKKyAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGNhbGwgZm9j
dXMoKS4gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBjb250cm9sCisgICAgLy8gZ290IGZv
Y3VzLgorCisgICAgLy8gQWRkIGZvY3VzIHJpbmcgYnkgQ1NTICJmb2N1cyIgcHNldWRvIGNsYXNz
LgorICAgIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPnNldEZvY3VzKHRydWUpOwogfQogCiB2
b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVkaXRDb250
cm9sVmFsdWVDaGFuZ2VkKCkKQEAgLTEzOCwxMSArMTUxLDkgQEAgdm9pZCBUaW1lSW5wdXRUeXBl
OjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjplZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgp
CiAgICAgaW5wdXQtPmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogfQogCi12b2lk
IFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmZvY3VzQW5kU2Vs
ZWN0RWRpdENvbnRyb2xPd25lcigpCitib29sIFRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZvY3Vz
TG9naWMoKSBjb25zdAogewotICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChtX3Rp
bWVJbnB1dFR5cGUuZWxlbWVudCgpKTsKLSAgICBpbnB1dC0+Zm9jdXMoKTsKLSAgICBpbnB1dC0+
c2VsZWN0KCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIFRpbWVJbnB1dFR5cGU6OkRh
dGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lckRpc2FibGVkKCkg
Y29uc3QKQEAgLTE1MCwxMSArMTYxLDYgQEAgYm9vbCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVk
aXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJEaXNhYmxlZCgpIGMKICAgICBy
ZXR1cm4gbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+cmVhZE9ubHkoKTsKIH0KIAotYm9vbCBU
aW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9s
T3duZXJGb2N1c2VkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90aW1lSW5wdXRUeXBlLmVsZW1l
bnQoKS0+Zm9jdXNlZCgpOwotfQotCiBib29sIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENv
bnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+ZGlzYWJsZWQoKTsKQEAgLTE3Myw2
ICsxNzksMTIgQEAgVGltZUlucHV0VHlwZTo6flRpbWVJbnB1dFR5cGUoKQogICAgICAgICBtX2Rh
dGVUaW1lRWRpdEVsZW1lbnQtPnJlbW92ZUVkaXRDb250cm9sT3duZXIoKTsKIH0KIAordm9pZCBU
aW1lSW5wdXRUeXBlOjpibHVyKCkKK3sKKyAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQor
ICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmJsdXJCeU93bmVyKCk7Cit9CisKIFJlbmRl
ck9iamVjdCogVGltZUlucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5h
LCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZTo6Y3Jl
YXRlUmVuZGVyZXIoYXJlbmEsIHN0eWxlKTsKQEAgLTE5Nyw2ICsyMDksMTIgQEAgdm9pZCBUaW1l
SW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiAgICAgQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpOwogfQogCit2b2lkIFRpbWVJbnB1dFR5cGU6
OmZvY3VzKGJvb2wpCit7CisgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICAgICAg
bV9kYXRlVGltZUVkaXRFbGVtZW50LT5mb2N1c0J5T3duZXIoKTsKK30KKwogdm9pZCBUaW1lSW5w
dXRUeXBlOjpmb3J3YXJkRXZlbnQoRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChtX2RhdGVUaW1l
RWRpdEVsZW1lbnQpCkBAIC0yMTQsMjUgKzIzMiwxNCBAQCB2b2lkIFRpbWVJbnB1dFR5cGU6Omhh
bmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICBmb3J3YXJkRXZlbnQo
ZXZlbnQpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQo
RXZlbnQqIGV2ZW50KQotewotICAgIGlmIChlbGVtZW50KCktPmRpc2FibGVkKCkgfHwgZWxlbWVu
dCgpLT5yZWFkT25seSgpIHx8ICFlbGVtZW50KCktPnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCi0gICAgICAgIG1fZGF0ZVRpbWVF
ZGl0RWxlbWVudC0+Zm9jdXMoKTsKLQotICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwot
fQotCiBib29sIFRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVu
dCopIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVsZW1lbnQoKS0+aXNUZXh0Rm9ybUNvbnRyb2xGb2N1
c2FibGUoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgVGltZUlucHV0VHlwZTo6aXNN
b3VzZUZvY3VzYWJsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVsZW1lbnQoKS0+aXNUZXh0Rm9y
bUNvbnRyb2xGb2N1c2FibGUoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHZvaWQgVGltZUlu
cHV0VHlwZTo6bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5w
dXRUeXBlLmgKaW5kZXggZWU4NzdkY2YxZDZjY2NkZjViMTc0NWIxMWNjZjkwOTk1OWNmZTM0Ny4u
YWNkNTdiMzRkZTdjMzc0ZDU3ZTk5YjhiZDU3ZWYzMmUxYWU2MjllMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmgKQEAgLTY4LDExICs2OCwxMCBAQCBwcml2YXRlOgogICAgICAgICB2
aXJ0dWFsIH5EYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKCk7CiAKICAgICBwcml2YXRlOgot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xNb3VzZUZvY3VzKCkgT1ZFUlJJREUgRklO
QUw7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRCbHVyRnJvbUNvbnRyb2woKSBPVkVSUklERSBG
SU5BTDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZvY3VzT25Db250cm9sKCkgT1ZFUlJJREUg
RklOQUw7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBlZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpIE9W
RVJSSURFIEZJTkFMOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNBbmRTZWxlY3RFZGl0Q29u
dHJvbE93bmVyKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRD
b250cm9sT3duZXJEaXNhYmxlZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyRm9jdXNlZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFM
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25z
dCBPVkVSUklERSBGSU5BTDsKIAogICAgICAgICBUaW1lSW5wdXRUeXBlJiBtX3RpbWVJbnB1dFR5
cGU7CkBAIC04MSwxMyArODAsMTUgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgRGF0ZVRp
bWVFZGl0Q29udHJvbE93bmVySW1wbDsKIAogICAgIC8vIElucHV0VHlwZSBmdW5jdGlvbnMKKyAg
ICB2aXJ0dWFsIHZvaWQgYmx1cigpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgUmVuZGVy
T2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgY29uc3Qg
T1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBP
VkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveVNoYWRvd1N1YnRyZWUoKSBP
VkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2Vk
KCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVBy
ZXZpb3VzU2VsZWN0aW9uKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZm9yd2Fy
ZEV2ZW50KEV2ZW50KikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZURP
TUFjdGl2YXRlRXZlbnQoRXZlbnQqKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVSUklERSBGSU5BTDsKKyAgICB2
aXJ0dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwog
ICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25z
dCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNv
bnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUVkaXRFbGVtZW50LmNwcAppbmRleCA0NGExYzJiMGE1NjFlMjYzYmUwMmZlOTAxMGYxNmZj
YzIwNDU4ZmNkLi43ZWU4MjE2YzcxYjUwZjM4ZWNlMDU2ZTZkZTVjNTI3OWE1MTg4MTU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNw
cApAQCAtMTk1LDcgKzE5NSw2IEBAIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkRhdGVUaW1lRWRpdEVs
ZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBFZGl0Q29udHJvbE93bmVyJiBlCiAgICAgOiBIVE1M
RGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogICAgICwgbV9lZGl0Q29udHJvbE93bmVyKCZl
ZGl0Q29udHJvbE93bmVyKQogICAgICwgbV9zcGluQnV0dG9uKDApCi0gICAgLCBtX2ZvY3VzRmll
bGRJbmRleChpbnZhbGlkRmllbGRJbmRleCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgZGF0ZVRpbWVFZGl0UHNldWRvSWQsICgiLXdlYmtpdC1kYXRldGltZS1lZGl0
IikpOwogICAgIHNldFNoYWRvd1BzZXVkb0lkKGRhdGVUaW1lRWRpdFBzZXVkb0lkKTsKQEAgLTIx
OCwxMiArMjE3LDMwIEBAIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6YWRkRmllbGQoUGFzc1Jl
ZlB0cjxEYXRlVGltZUZpZWxkRWxlbWVudD4gZmllbGQpCiAgICAgYXBwZW5kQ2hpbGQoZmllbGQp
OwogfQogCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmJsdXJCeU93bmVyKCkKK3sKKyAgICBp
ZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkID0gZm9jdXNlZEZpZWxkKCkpCisgICAgICAg
IGZpZWxkLT5ibHVyKCk7Cit9CisKIFBhc3NSZWZQdHI8RGF0ZVRpbWVFZGl0RWxlbWVudD4gRGF0
ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRWRpdENvbnRyb2xP
d25lciYgZWRpdENvbnRyb2xPd25lcikKIHsKICAgICBSZWZQdHI8RGF0ZVRpbWVFZGl0RWxlbWVu
dD4gY29udGFpbmVyID0gYWRvcHRSZWYobmV3IERhdGVUaW1lRWRpdEVsZW1lbnQoZG9jdW1lbnQs
IGVkaXRDb250cm9sT3duZXIpKTsKICAgICByZXR1cm4gY29udGFpbmVyLnJlbGVhc2UoKTsKIH0K
IAordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpkaWRCbHVyRnJvbUZpZWxkKCkKK3sKKyAgICBp
ZiAobV9lZGl0Q29udHJvbE93bmVyKQorICAgICAgICBtX2VkaXRDb250cm9sT3duZXItPmRpZEJs
dXJGcm9tQ29udHJvbCgpOworfQorCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRpZEZvY3Vz
T25GaWVsZCgpCit7CisgICAgaWYgKG1fZWRpdENvbnRyb2xPd25lcikKKyAgICAgICAgbV9lZGl0
Q29udHJvbE93bmVyLT5kaWRGb2N1c09uQ29udHJvbCgpOworfQorCiB2b2lkIERhdGVUaW1lRWRp
dEVsZW1lbnQ6OmRpc2FibGVkU3RhdGVDaGFuZ2VkKCkKIHsKICAgICB1cGRhdGVVSVN0YXRlKCk7
CkBAIC0yMzQsNzMgKzI1MSw0MiBAQCBEYXRlVGltZUZpZWxkRWxlbWVudCogRGF0ZVRpbWVFZGl0
RWxlbWVudDo6ZmllbGRBdChzaXplX3QgZmllbGRJbmRleCkgY29uc3QKICAgICByZXR1cm4gZmll
bGRJbmRleCA8IG1fZmllbGRzLnNpemUoKSA/IG1fZmllbGRzW2ZpZWxkSW5kZXhdIDogMDsKIH0K
IAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25Pd25l
cigpCitzaXplX3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRJbmRleE9mKGNvbnN0IERhdGVU
aW1lRmllbGRFbGVtZW50JiBmaWVsZCkgY29uc3QKIHsKLSAgICBpZiAoIW1fZWRpdENvbnRyb2xP
d25lcikKLSAgICAgICAgcmV0dXJuOwotICAgIG1fZWRpdENvbnRyb2xPd25lci0+Zm9jdXNBbmRT
ZWxlY3RFZGl0Q29udHJvbE93bmVyKCk7CisgICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9IDA7
IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkgeworICAgICAgICBp
ZiAobV9maWVsZHNbZmllbGRJbmRleF0gPT0gJmZpZWxkKQorICAgICAgICAgICAgcmV0dXJuIGZp
ZWxkSW5kZXg7CisgICAgfQorICAgIHJldHVybiBpbnZhbGlkRmllbGRJbmRleDsKIH0KIAotdm9p
ZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0ZpZWxkQXQoc2l6ZV90IG5ld0ZvY3VzRmllbGRJ
bmRleCkKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNBbmRTZWxlY3RTcGluQnV0dG9u
T3duZXIoKQogewotICAgIGlmIChtX2ZvY3VzRmllbGRJbmRleCA9PSBuZXdGb2N1c0ZpZWxkSW5k
ZXgpCi0gICAgICAgIHJldHVybjsKLQotICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBu
ZXdGb2N1c0ZpZWxkID0gZmllbGRBdChuZXdGb2N1c0ZpZWxkSW5kZXgpOwotICAgIGlmIChuZXdG
b2N1c0ZpZWxkICYmIG5ld0ZvY3VzRmllbGQtPmlzUmVhZE9ubHkoKSkKKyAgICBpZiAoZm9jdXNl
ZEZpZWxkSW5kZXgoKSAhPSBpbnZhbGlkRmllbGRJbmRleCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGN1cnJlbnRGb2N1c0ZpZWxkID0gZmllbGRB
dChtX2ZvY3VzRmllbGRJbmRleCk7Ci0KLSAgICBpZiAoY3VycmVudEZvY3VzRmllbGQpCi0gICAg
ICAgIGN1cnJlbnRGb2N1c0ZpZWxkLT5zZXRGb2N1cyhmYWxzZSk7Ci0KLSAgICBpZiAoIW5ld0Zv
Y3VzRmllbGQpIHsKLSAgICAgICAgbV9mb2N1c0ZpZWxkSW5kZXggPSBpbnZhbGlkRmllbGRJbmRl
eDsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fZm9jdXNGaWVsZEluZGV4ID0gbmV3
Rm9jdXNGaWVsZEluZGV4OwotICAgIG5ld0ZvY3VzRmllbGQtPnNldEZvY3VzKHRydWUpOworICAg
IGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmaWVsZEF0KDApKQorICAgICAgICBm
aWVsZC0+Zm9jdXMoKTsKIH0KIAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpoYW5kbGVLZXli
b2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGtleWJvYXJkRXZlbnQpCit2b2lkIERhdGVUaW1lRWRp
dEVsZW1lbnQ6OmZvY3VzQnlPd25lcigpCiB7Ci0gICAgaWYgKGlzRGlzYWJsZWQoKSB8fCBpc1Jl
YWRPbmx5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghZmllbGRBdChtX2ZvY3VzRmll
bGRJbmRleCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChrZXlib2FyZEV2ZW50LT50eXBl
KCkgIT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Y29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyID0ga2V5Ym9hcmRFdmVudC0+a2V5SWRlbnRpZmll
cigpOwotCi0gICAgaWYgKGtleUlkZW50aWZpZXIgPT0gIkxlZnQiKSB7Ci0gICAgICAgIGtleWJv
YXJkRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBmaWVs
ZEluZGV4ID0gcHJldmlvdXNGaWVsZEluZGV4KCk7Ci0gICAgICAgIGlmIChmaWVsZEF0KGZpZWxk
SW5kZXgpKQotICAgICAgICAgICAgZm9jdXNGaWVsZEF0KGZpZWxkSW5kZXgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQorICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogZmllbGQgPSBmaWVs
ZEF0KDApKQorICAgICAgICBmaWVsZC0+Zm9jdXMoKTsKK30KIAotICAgIGlmIChrZXlJZGVudGlm
aWVyID09ICJSaWdodCIpIHsKLSAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRs
ZWQoKTsKLSAgICAgICAgY29uc3Qgc2l6ZV90IGZpZWxkSW5kZXggPSBuZXh0RmllbGRJbmRleCgp
OwotICAgICAgICBpZiAoZmllbGRBdChmaWVsZEluZGV4KSkKLSAgICAgICAgICAgIGZvY3VzRmll
bGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0RhdGVUaW1lRmllbGRF
bGVtZW50KiBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c2VkRmllbGQoKSBjb25zdAoreworICAg
IHJldHVybiBmaWVsZEF0KGZvY3VzZWRGaWVsZEluZGV4KCkpOworfQogCi0gICAgaWYgKGtleUlk
ZW50aWZpZXIgPT0gIlUrMDAwOSIpIHsKLSAgICAgICAgY29uc3Qgc2l6ZV90IGZpZWxkSW5kZXgg
PSBrZXlib2FyZEV2ZW50LT5nZXRNb2RpZmllclN0YXRlKCJTaGlmdCIpID8gcHJldmlvdXNGaWVs
ZEluZGV4KCkgOiBuZXh0RmllbGRJbmRleCgpOwotICAgICAgICBpZiAoZmllbGRBdChmaWVsZElu
ZGV4KSkgewotICAgICAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsK
LSAgICAgICAgICAgIGZvY3VzRmllbGRBdChmaWVsZEluZGV4KTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQorc2l6ZV90IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzZWRGaWVsZElu
ZGV4KCkgY29uc3QKK3sKKyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRl
eCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KSB7CisgICAgICAgIGlmIChtX2ZpZWxk
c1tmaWVsZEluZGV4XS0+Zm9jdXNlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZpZWxkSW5kZXg7
CiAgICAgfQorICAgIHJldHVybiBpbnZhbGlkRmllbGRJbmRleDsKIH0KIAogdm9pZCBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpmaWVsZFZhbHVlQ2hhbmdlZCgpCkBAIC0zMDksMzAgKzI5NSwzNCBAQCB2
b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkVmFsdWVDaGFuZ2VkKCkKICAgICAgICAgbV9l
ZGl0Q29udHJvbE93bmVyLT5lZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpOwogfQogCi12b2lkIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzT25OZXh0RmllbGQoKQorYm9vbCBEYXRlVGltZUVkaXRF
bGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JiBmaWVs
ZCkKIHsKLSAgICBpZiAobV9mb2N1c0ZpZWxkSW5kZXggIT0gaW52YWxpZEZpZWxkSW5kZXgpCi0g
ICAgICAgIGZvY3VzRmllbGRBdChuZXh0RmllbGRJbmRleCgpKTsKKyAgICBjb25zdCBzaXplX3Qg
c3RhcnRGaWVsZEluZGV4ID0gZmllbGRJbmRleE9mKGZpZWxkKTsKKyAgICBpZiAoc3RhcnRGaWVs
ZEluZGV4ID09IGludmFsaWRGaWVsZEluZGV4KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Zm9yIChzaXplX3QgZmllbGRJbmRleCA9IHN0YXJ0RmllbGRJbmRleCArIDE7IGZpZWxkSW5kZXgg
PCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkgeworICAgICAgICBpZiAoIW1fZmllbGRz
W2ZpZWxkSW5kZXhdLT5pc1JlYWRPbmx5KCkpIHsKKyAgICAgICAgICAgIG1fZmllbGRzW2ZpZWxk
SW5kZXhdLT5mb2N1cygpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6Omhh
bmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogbW91c2VFdmVudCkKK2Jvb2wgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6Zm9jdXNPblByZXZpb3VzRmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQm
IGZpZWxkKQogewotICAgIGlmIChpc0Rpc2FibGVkKCkgfHwgaXNSZWFkT25seSgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAobW91c2VFdmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5t
b3VzZWRvd25FdmVudCB8fCBtb3VzZUV2ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9uKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBOb2RlKiBjb25zdCByZWxhdGVkVGFyZ2V0ID0gbW91c2VFdmVu
dC0+dGFyZ2V0KCktPnRvTm9kZSgpOwotICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBm
aWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKLSAgICAgICAgaWYg
KG1fZmllbGRzW2ZpZWxkSW5kZXhdID09IHJlbGF0ZWRUYXJnZXQpIHsKLSAgICAgICAgICAgIG1v
dXNlRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgICAgICAgICBmb2N1c0ZpZWxkQXQo
ZmllbGRJbmRleCk7Ci0gICAgICAgICAgICBpZiAobV9lZGl0Q29udHJvbE93bmVyKQotICAgICAg
ICAgICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZWRpdENvbnRyb2xNb3VzZUZvY3VzKCk7Ci0g
ICAgICAgICAgICBicmVhazsKKyAgICBjb25zdCBzaXplX3Qgc3RhcnRGaWVsZEluZGV4ID0gZmll
bGRJbmRleE9mKGZpZWxkKTsKKyAgICBpZiAoc3RhcnRGaWVsZEluZGV4ID09IGludmFsaWRGaWVs
ZEluZGV4KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgc2l6ZV90IGZpZWxkSW5kZXggPSBz
dGFydEZpZWxkSW5kZXg7CisgICAgd2hpbGUgKGZpZWxkSW5kZXggPiAwKSB7CisgICAgICAgIC0t
ZmllbGRJbmRleDsKKyAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNSZWFkT25s
eSgpKSB7CisgICAgICAgICAgICBtX2ZpZWxkc1tmaWVsZEluZGV4XS0+Zm9jdXMoKTsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBmYWxzZTsK
IH0KIAogYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50Ojppc0Rpc2FibGVkKCkgY29uc3QKQEAgLTM0
NywxMCArMzM3LDkgQEAgYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50Ojppc1JlYWRPbmx5KCkgY29u
c3QKIAogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQoY29uc3QgU3RlcFJhbmdlJiBz
dGVwUmFuZ2UsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlVmFsdWUpCiB7Ci0gICAgc2l6ZV90
IGZvY3VzRmllbGRJbmRleCA9IG1fZm9jdXNGaWVsZEluZGV4OwotICAgIERhdGVUaW1lRmllbGRF
bGVtZW50KiBjb25zdCBmb2N1c0ZpZWxkID0gZmllbGRBdChtX2ZvY3VzRmllbGRJbmRleCk7Ci0g
ICAgY29uc3QgQXRvbWljU3RyaW5nIGZvY3VzRmllbGRJZCA9IGZvY3VzRmllbGQgPyBmb2N1c0Zp
ZWxkLT5zaGFkb3dQc2V1ZG9JZCgpIDogbnVsbEF0b207Ci0gICAgZm9jdXNGaWVsZEF0KGludmFs
aWRGaWVsZEluZGV4KTsKKyAgICBzaXplX3QgZm9jdXNlZEZpZWxkSW5kZXggPSB0aGlzLT5mb2N1
c2VkRmllbGRJbmRleCgpOworICAgIERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBmb2N1c2Vk
RmllbGQgPSBmaWVsZEF0KGZvY3VzZWRGaWVsZEluZGV4KTsKKyAgICBjb25zdCBBdG9taWNTdHJp
bmcgZm9jdXNlZEZpZWxkSWQgPSBmb2N1c2VkRmllbGQgPyBmb2N1c2VkRmllbGQtPnNoYWRvd1Bz
ZXVkb0lkKCkgOiBudWxsQXRvbTsKIAogICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIgYnVpbGRlcigq
dGhpcywgc3RlcFJhbmdlLCBkYXRlVmFsdWUpOwogICAgIGNvbnN0IFN0cmluZyBkYXRlVGltZUZv
cm1hdCA9IGJ1aWxkZXIubmVlZFNlY29uZEZpZWxkKCkgPyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4
dCgpIDogbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpOwpAQCAtMzYxLDM3ICszNTAsMTYg
QEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQoY29uc3QgU3RlcFJhbmdlJiBzdGVw
UmFuZ2UsIGNvbnN0IERhdGVDb21wb25lbnQKICAgICBtX3NwaW5CdXR0b24gPSBzcGluQnV0dG9u
LmdldCgpOwogICAgIGFwcGVuZENoaWxkKHNwaW5CdXR0b24pOwogCi0gICAgaWYgKGZvY3VzRmll
bGRJbmRleCAhPSBpbnZhbGlkRmllbGRJbmRleCkgeworICAgIGlmIChmb2N1c2VkRmllbGRJbmRl
eCAhPSBpbnZhbGlkRmllbGRJbmRleCkgewogICAgICAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4
ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KSB7Ci0gICAg
ICAgICAgICBpZiAobV9maWVsZHNbZmllbGRJbmRleF0tPnNoYWRvd1BzZXVkb0lkKCkgPT0gZm9j
dXNGaWVsZElkKSB7Ci0gICAgICAgICAgICAgICAgZm9jdXNGaWVsZEluZGV4ID0gZmllbGRJbmRl
eDsKKyAgICAgICAgICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4XS0+c2hhZG93UHNldWRvSWQo
KSA9PSBmb2N1c2VkRmllbGRJZCkgeworICAgICAgICAgICAgICAgIGZvY3VzZWRGaWVsZEluZGV4
ID0gZmllbGRJbmRleDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQotICAgICAgICBmb2N1c0ZpZWxkQXQoc3RkOjptaW4oZm9jdXNGaWVsZEluZGV4LCBt
X2ZpZWxkcy5zaXplKCkgLSAxKSk7Ci0gICAgfQotfQotCi1zaXplX3QgRGF0ZVRpbWVFZGl0RWxl
bWVudDo6bmV4dEZpZWxkSW5kZXgoKSBjb25zdAotewotICAgIEFTU0VSVChtX2ZvY3VzRmllbGRJ
bmRleCAhPSBpbnZhbGlkRmllbGRJbmRleCk7Ci0gICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9
IG1fZm9jdXNGaWVsZEluZGV4ICsgMTsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytm
aWVsZEluZGV4KSB7Ci0gICAgICAgIGlmICghbV9maWVsZHNbZmllbGRJbmRleF0tPmlzUmVhZE9u
bHkoKSkKLSAgICAgICAgICAgIHJldHVybiBmaWVsZEluZGV4OwotICAgIH0KLSAgICByZXR1cm4g
bV9maWVsZHMuc2l6ZSgpOwotfQotCi1zaXplX3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6cHJldmlv
dXNGaWVsZEluZGV4KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9mb2N1c0ZpZWxkSW5kZXggIT0g
aW52YWxpZEZpZWxkSW5kZXgpOwotICAgIHNpemVfdCBmaWVsZEluZGV4ID0gbV9mb2N1c0ZpZWxk
SW5kZXg7Ci0gICAgd2hpbGUgKGZpZWxkSW5kZXggPiAwKSB7Ci0gICAgICAgIC0tZmllbGRJbmRl
eDsKLSAgICAgICAgaWYgKCFtX2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNSZWFkT25seSgpKQotICAg
ICAgICAgICAgcmV0dXJuIGZpZWxkSW5kZXg7CisgICAgICAgIGlmIChEYXRlVGltZUZpZWxkRWxl
bWVudCogZmllbGQgPSBmaWVsZEF0KHN0ZDo6bWluKGZvY3VzZWRGaWVsZEluZGV4LCBtX2ZpZWxk
cy5zaXplKCkgLSAxKSkpCisgICAgICAgICAgICBmaWVsZC0+Zm9jdXMoKTsKICAgICB9Ci0gICAg
cmV0dXJuIGludmFsaWRGaWVsZEluZGV4OwogfQogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OnJlYWRPbmx5U3RhdGVDaGFuZ2VkKCkKQEAgLTQwMyw0MiArMzcxLDI2IEBAIHZvaWQgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6cmVzZXRMYXlvdXQoKQogewogICAgIG1fZmllbGRzLnNocmluaygwKTsK
ICAgICBtX3NwaW5CdXR0b24gPSAwOwotICAgIG1fZm9jdXNGaWVsZEluZGV4ID0gaW52YWxpZEZp
ZWxkSW5kZXg7CiAgICAgcmVtb3ZlQ2hpbGRyZW4oKTsKIH0KIAogdm9pZCBEYXRlVGltZUVkaXRF
bGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZm9jdXNFdmVudCkgewotICAgICAgICBpZiAoIWlz
RGlzYWJsZWQoKSAmJiAhaXNSZWFkT25seSgpICYmIG1fZm9jdXNGaWVsZEluZGV4ID09IGludmFs
aWRGaWVsZEluZGV4KQotICAgICAgICAgICAgZm9jdXNGaWVsZEF0KDApOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJsdXJF
dmVudCkgewotICAgICAgICBmb2N1c0ZpZWxkQXQoaW52YWxpZEZpZWxkSW5kZXgpOwotICAgICAg
ICByZXR1cm47CisgICAgLy8gSW4gY2FzZSBvZiBjb250cm9sIG93bmVyIGZvcndhcmQgZXZlbnQg
dG8gY29udHJvbCwgZS5nLiBET00KKyAgICAvLyBkaXNwYXRjaEV2ZW50IG1ldGhvZC4KKyAgICBp
ZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkID0gZm9jdXNlZEZpZWxkKCkpIHsKKyAgICAg
ICAgZmllbGQtPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAgICBpZiAoZXZlbnQt
PmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYg
KGV2ZW50LT5pc01vdXNlRXZlbnQoKSkgewotICAgICAgICBoYW5kbGVNb3VzZUV2ZW50KHN0YXRp
Y19jYXN0PE1vdXNlRXZlbnQqPihldmVudCkpOwotICAgIH0gZWxzZSBpZiAoZXZlbnQtPmlzS2V5
Ym9hcmRFdmVudCgpKQotICAgICAgICBoYW5kbGVLZXlib2FyZEV2ZW50KHN0YXRpY19jYXN0PEtl
eWJvYXJkRXZlbnQqPihldmVudCkpOwotCi0gICAgaWYgKGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZm9j
dXNGaWVsZCA9IGZpZWxkQXQobV9mb2N1c0ZpZWxkSW5kZXgpOwotICAgIGlmICghZm9jdXNGaWVs
ZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKG1fc3BpbkJ1dHRvbikgewogICAgICAgICBt
X3NwaW5CdXR0b24tPmZvcndhcmRFdmVudChldmVudCk7CiAgICAgICAgIGlmIChldmVudC0+ZGVm
YXVsdEhhbmRsZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmb2N1c0Zp
ZWxkLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICBIVE1MRGl2RWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
c2V0VmFsdWVBc0RhdGUoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21w
b25lbnRzJiBkYXRlKQpAQCAtNDY1LDI2ICs0MTcsMjcgQEAgYm9vbCBEYXRlVGltZUVkaXRFbGVt
ZW50OjpzaG91bGRTcGluQnV0dG9uUmVzcG9uZFRvV2hlZWxFdmVudHMoKQogICAgIGlmICghc2hv
dWxkU3BpbkJ1dHRvblJlc3BvbmRUb01vdXNlRXZlbnRzKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIHJldHVybiAhbV9lZGl0Q29udHJvbE93bmVyIHx8IG1fZWRpdENvbnRyb2xPd25l
ci0+aXNFZGl0Q29udHJvbE93bmVyRm9jdXNlZCgpOworICAgIHJldHVybiBmb2N1c2VkRmllbGRJ
bmRleCgpICE9IGludmFsaWRGaWVsZEluZGV4OwogfQogCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1l
bnQ6OnNwaW5CdXR0b25TdGVwRG93bigpCiB7Ci0gICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50
KiBjb25zdCBmb2N1c0ZpZWxkID0gZmllbGRBdChtX2ZvY3VzRmllbGRJbmRleCkpCi0gICAgICAg
IGZvY3VzRmllbGQtPnN0ZXBEb3duKCk7CisgICAgaWYgKERhdGVUaW1lRmllbGRFbGVtZW50KiBj
b25zdCBmaWVsZCA9IGZvY3VzZWRGaWVsZCgpKQorICAgICAgICBmaWVsZC0+c3RlcERvd24oKTsK
IH0KIAogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzcGluQnV0dG9uU3RlcFVwKCkKIHsKLSAg
ICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGNvbnN0IGZvY3VzRmllbGQgPSBmaWVsZEF0KG1f
Zm9jdXNGaWVsZEluZGV4KSkKLSAgICAgICAgZm9jdXNGaWVsZC0+c3RlcFVwKCk7CisgICAgaWYg
KERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBmaWVsZCA9IGZvY3VzZWRGaWVsZCgpKQorICAg
ICAgICBmaWVsZC0+c3RlcFVwKCk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6dXBk
YXRlVUlTdGF0ZSgpCiB7CiAgICAgaWYgKGlzRGlzYWJsZWQoKSB8fCBpc1JlYWRPbmx5KCkpIHsK
ICAgICAgICAgbV9zcGluQnV0dG9uLT5yZWxlYXNlQ2FwdHVyZSgpOwotICAgICAgICBmb2N1c0Zp
ZWxkQXQoaW52YWxpZEZpZWxkSW5kZXgpOworICAgICAgICBpZiAoRGF0ZVRpbWVGaWVsZEVsZW1l
bnQqIGZpZWxkID0gZm9jdXNlZEZpZWxkKCkpCisgICAgICAgICAgICBmaWVsZC0+Ymx1cigpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVFZGl0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0
RWxlbWVudC5oCmluZGV4IDhkOWUwMTVhMjZmNzUwNTgxZTIyOWY2OWUxMzkyOTdiZjZmNjAzNTMu
LjEwYzQ2NjQ4NzYyN2U0ZjhkY2FhODdhNTllYzU1ZDBjOTlmMGU0NGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKQEAgLTUxLDExICs1
MSwxMCBAQCBwdWJsaWM6CiAgICAgY2xhc3MgRWRpdENvbnRyb2xPd25lciB7CiAgICAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIH5FZGl0Q29udHJvbE93bmVyKCk7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCBmb2N1c0FuZFNlbGVjdEVkaXRDb250cm9sT3duZXIoKSA9IDA7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBlZGl0Q29udHJvbE1vdXNlRm9jdXMoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRCbHVyRnJvbUNvbnRyb2woKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGb2N1
c09uQ29udHJvbCgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGVkaXRDb250cm9sVmFsdWVD
aGFuZ2VkKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyRGlz
YWJsZWQoKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3du
ZXJGb2N1c2VkKCkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJv
bE93bmVyUmVhZE9ubHkoKSBjb25zdCA9IDA7CiAgICAgfTsKIApAQCAtNjMsOCArNjIsMTAgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB+RGF0ZVRpbWVFZGl0RWxlbWVudCgpOwogICAgIHZvaWQg
YWRkRmllbGQoUGFzc1JlZlB0cjxEYXRlVGltZUZpZWxkRWxlbWVudD4pOworICAgIHZvaWQgYmx1
ckJ5T3duZXIoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCop
IE9WRVJSSURFOwogICAgIHZvaWQgZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKTsKKyAgICB2b2lkIGZv
Y3VzQnlPd25lcigpOwogICAgIHZvaWQgcmVhZE9ubHlTdGF0ZUNoYW5nZWQoKTsKICAgICB2b2lk
IHJlbW92ZUVkaXRDb250cm9sT3duZXIoKSB7IG1fZWRpdENvbnRyb2xPd25lciA9IDA7IH0KICAg
ICB2b2lkIHJlc2V0TGF5b3V0KCk7CkBAIC04OSwxOSArOTAsMjAgQEAgcHJpdmF0ZToKICAgICBE
YXRlVGltZUVkaXRFbGVtZW50KERvY3VtZW50KiwgRWRpdENvbnRyb2xPd25lciYpOwogCiAgICAg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZpZWxkQXQoc2l6ZV90KSBjb25zdDsKLSAgICB2b2lkIGZv
Y3VzRmllbGRBdChzaXplX3QpOwotICAgIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2Fy
ZEV2ZW50Kik7Ci0gICAgdm9pZCBoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqKTsKKyAgICBz
aXplX3QgZmllbGRJbmRleE9mKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgY29uc3Q7Cisg
ICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQqIGZvY3VzZWRGaWVsZCgpIGNvbnN0OworICAgIHNpemVf
dCBmb2N1c2VkRmllbGRJbmRleCgpIGNvbnN0OwogICAgIGJvb2wgaXNEaXNhYmxlZCgpIGNvbnN0
OwogICAgIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0OwogICAgIHZvaWQgbGF5b3V0KGNvbnN0IFN0
ZXBSYW5nZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7Ci0gICAgc2l6ZV90IG5leHRGaWVsZElu
ZGV4KCkgY29uc3Q7Ci0gICAgc2l6ZV90IHByZXZpb3VzRmllbGRJbmRleCgpIGNvbnN0OwogICAg
IHZvaWQgdXBkYXRlVUlTdGF0ZSgpOwogCiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkZp
ZWxkT3duZXIgZnVuY3Rpb25zLgorICAgIHZpcnR1YWwgdm9pZCBkaWRCbHVyRnJvbUZpZWxkKCkg
T1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGRpZEZvY3VzT25GaWVsZCgpIE9WRVJS
SURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBmaWVsZFZhbHVlQ2hhbmdlZCgpIE9WRVJSSURF
IEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBmb2N1c09uTmV4dEZpZWxkKCkgT1ZFUlJJREUgRklO
QUw7CisgICAgdmlydHVhbCBib29sIGZvY3VzT25OZXh0RmllbGQoY29uc3QgRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgZm9jdXNPblByZXZp
b3VzRmllbGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSBPVkVSUklERSBGSU5BTDsKIAog
ICAgIC8vIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9uT3duZXIgZnVuY3Rpb25zLgogICAg
IHZpcnR1YWwgdm9pZCBmb2N1c0FuZFNlbGVjdFNwaW5CdXR0b25Pd25lcigpIE9WRVJSSURFIEZJ
TkFMOwpAQCAtMTEzLDcgKzExNSw2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPERhdGVUaW1lRmll
bGRFbGVtZW50KiwgbWF4aW11bU51bWJlck9mRmllbGRzPiBtX2ZpZWxkczsKICAgICBFZGl0Q29u
dHJvbE93bmVyKiBtX2VkaXRDb250cm9sT3duZXI7CiAgICAgU3BpbkJ1dHRvbkVsZW1lbnQqIG1f
c3BpbkJ1dHRvbjsKLSAgICBzaXplX3QgbV9mb2N1c0ZpZWxkSW5kZXg7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5jcHAKaW5kZXggOWQ1NmQ5YmY4N2UxNDRiOGJkNWU1NjIwYzA4NzRj
MzVkZTE2YjE0OC4uNWI2OTY0NzhhODk2ZDk2MGZiYzE0MGU3MmZlMzEyZGQzNDQ5Y2ViNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUg
IlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDgsNiArNDksMTIgQEAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRF
bGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGQKIAogdm9pZCBEYXRl
VGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7Cisg
ICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJsdXJFdmVudCkKKyAgICAgICAg
ZGlkQmx1cigpOworCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmZvY3Vz
RXZlbnQpCisgICAgICAgIGRpZEZvY3VzKCk7CisKICAgICBpZiAoZXZlbnQtPmlzS2V5Ym9hcmRF
dmVudCgpKSB7CiAgICAgICAgIEtleWJvYXJkRXZlbnQqIGtleWJvYXJkRXZlbnQgPSBzdGF0aWNf
Y2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpOwogICAgICAgICBoYW5kbGVLZXlib2FyZEV2ZW50
KGtleWJvYXJkRXZlbnQpOwpAQCAtNzQsNiArODEsMjIgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxl
bWVudDo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGtleWJvYXJk
RXYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJM
ZWZ0IikgeworICAgICAgICBpZiAoIW1fZmllbGRPd25lcikKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgaWYgKG1fZmllbGRPd25lci0+Zm9jdXNPblByZXZpb3VzRmllbGQoKnRoaXMpKQor
ICAgICAgICAgICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJSaWdodCIpIHsKKyAg
ICAgICAgaWYgKCFtX2ZpZWxkT3duZXIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlm
IChtX2ZpZWxkT3duZXItPmZvY3VzT25OZXh0RmllbGQoKnRoaXMpKQorICAgICAgICAgICAga2V5
Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJVcCIpIHsKICAgICAgICAga2V5Ym9hcmRFdmVu
dC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgc3RlcFVwKCk7CkBAIC04NywxMCArMTEw
LDIzIEBAIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFu
ZGxlcihLZXlib2FyZEV2ZW50KiBrZXlib2FyZEV2CiAgICAgfQogfQogCi12b2lkIERhdGVUaW1l
RmllbGRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKCkKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1l
bnQ6OmRpZEJsdXIoKQoreworICAgIGlmIChtX2ZpZWxkT3duZXIpCisgICAgICAgIG1fZmllbGRP
d25lci0+ZGlkQmx1ckZyb21GaWVsZCgpOworfQorCit2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50
OjpkaWRGb2N1cygpCiB7CiAgICAgaWYgKG1fZmllbGRPd25lcikKLSAgICAgICAgbV9maWVsZE93
bmVyLT5mb2N1c09uTmV4dEZpZWxkKCk7CisgICAgICAgIG1fZmllbGRPd25lci0+ZGlkRm9jdXNP
bkZpZWxkKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmZvY3VzT25OZXh0Rmll
bGQoKQoreworICAgIGlmICghbV9maWVsZE93bmVyKQorICAgICAgICByZXR1cm47CisgICAgbV9m
aWVsZE93bmVyLT5mb2N1c09uTmV4dEZpZWxkKCp0aGlzKTsKIH0KIAogdm9pZCBEYXRlVGltZUZp
ZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lk
KQpAQCAtOTksNiArMTM1LDExIEBAIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxp
emUoY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCkKICAgICBhcHBlbmRDaGlsZChU
ZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgdmlzaWJsZVZhbHVlKCkpKTsKIH0KIAorYm9vbCBEYXRl
VGltZUZpZWxkRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAoreworICAgIHJldHVybiAhaXNS
ZWFkT25seSgpOworfQorCiBib29sIERhdGVUaW1lRmllbGRFbGVtZW50Ojppc1JlYWRPbmx5KCkg
Y29uc3QKIHsKICAgICByZXR1cm4gZmFzdEhhc0F0dHJpYnV0ZShyZWFkb25seUF0dHIpOwpAQCAt
MTExLDYgKzE1MiwxMSBAQCB2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50OjpzZXRSZWFkT25seSgp
CiAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogfQogCitib29sIERhdGVUaW1lRmllbGRFbGVt
ZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9p
ZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJsZVZhbHVlKEV2ZW50QmVoYXZpb3Ig
ZXZlbnRCZWhhdmlvcikKIHsKICAgICBUZXh0KiBjb25zdCB0ZXh0Tm9kZSA9IHRvVGV4dChmaXJz
dENoaWxkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmll
bGRFbGVtZW50LmgKaW5kZXggY2QzOWUyOGEzOTQ0OWNhNGI4YzQ1MzBkNmI5ZTY0NjY3ZGM0ZmM0
NS4uMTM3NmM2MmY0NzliNGNiZjBkZmYxNjQ3NzBiMzMyMzFlM2NiYTFkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCkBAIC00OSw4
ICs0OSwxMSBAQCBwdWJsaWM6CiAgICAgY2xhc3MgRmllbGRPd25lciB7CiAgICAgcHVibGljOgog
ICAgICAgICB2aXJ0dWFsIH5GaWVsZE93bmVyKCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRC
bHVyRnJvbUZpZWxkKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXNPbkZpZWxk
KCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZmllbGRWYWx1ZUNoYW5nZWQoKSA9IDA7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1c09uTmV4dEZpZWxkKCkgPSAwOworICAgICAgICB2aXJ0
dWFsIGJvb2wgZm9jdXNPbk5leHRGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYpID0g
MDsKKyAgICAgICAgdmlydHVhbCBib29sIGZvY3VzT25QcmV2aW91c0ZpZWxkKGNvbnN0IERhdGVU
aW1lRmllbGRFbGVtZW50JikgPSAwOwogICAgIH07CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURFOwpAQCAtNzAsNiArNzMsOCBAQCBwdWJsaWM6
CiAKIHByb3RlY3RlZDoKICAgICBEYXRlVGltZUZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxk
T3duZXImKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmx1cigpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRGb2N1cygpOwogICAgIHZvaWQgZm9jdXNPbk5leHRGaWVsZCgpOwogICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqKSA9IDA7CiAgICAgdm9pZCBpbml0
aWFsaXplKGNvbnN0IEF0b21pY1N0cmluZyYpOwpAQCAtNzgsNiArODMsOCBAQCBwcm90ZWN0ZWQ6
CiAKIHByaXZhdGU6CiAgICAgdm9pZCBkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9h
cmRFdmVudCopOworICAgIHZpcnR1YWwgYm9vbCBpc0ZvY3VzYWJsZSgpIGNvbnN0IE9WRVJSSURF
IEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREUg
RklOQUw7CiAKICAgICBGaWVsZE93bmVyKiBtX2ZpZWxkT3duZXI7CiB9OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU4OTMx
YmRkM2RmYjNkZmI1N2UzY2M2MDRiZjI0MzQxN2U2ZTVmNDMuLjczOWNjNjEwOWI0MGUwZjkyZTY2
ZjBmZjgyMjQ4MTQ4NmYwYTdmYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wOC0zMCAg
WW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtGb3Jtc10g
U2hpZnQrVGFiIHNob3VsZCBmb2N1cyB0aGUgbGFzdCBmaWVsZCBvZiBtdWx0aXBsZSBmaWVsZHMg
dGltZSBpbnB1dCBVSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTUxNjgKKworICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGFkZHMgZm9jdXMgYW5kIGJsdXIgZXZlbnQgaGFuZGxpbmcgdGVzdCBhbmQg
YSBuZXcgdGVzdCBjYXNlCisgICAgICAgIGZvciBTaGlmdCtUYWIgZm9yIG11bHRpcGxlIGZpZWxk
cyB0aW1lIGlucHV0IFVJLgorCisgICAgICAgICogdGltZS1tdWx0aXBsZS1maWVsZHMtYmx1ci1h
bmQtZm9jdXMtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdGltZS1tdWx0
aXBsZS1maWVsZHMtYmx1ci1hbmQtZm9jdXMtZXZlbnRzLmh0bWw6IEFkZGVkIGZvciBibHVyIGFu
ZCBmb2N1cyBldmVudHMgaGFuZGxpbmcuCisgICAgICAgICogZmFzdC9mb3Jtcy90aW1lLW11bHRp
cGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbDogQ2hh
bmdlZCB0byBhZGQgYSB0ZXN0IGNhc2VzIGZvciBTaGlmdCtUYWIuCisKIDIwMTItMDgtMjkgIFlv
c2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVGVzdHNdIEFk
ZCB0ZXN0IGNhc2UgZm9yIHJpZ2h0LXRvLWxlZnQgcmVuZGVyaW5nIG9mIG11bHRpcGxlIGZpZWxk
cyB0aW1lIGlucHV0IFVJCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUt
bXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmll
bGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWMyMzkyMTg3YzVlZTBlNjAzNjFiZDE0MWVlYzBjNmZhNTFmMjExZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1m
aWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtYmx1ci1hbmQtZm9jdXMtZXZlbnRzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE4IEBACitDaGVjayBibHVyIGFuZCBmb2N1cyBldmVudHMgZm9yIG11
bHRpcGxlIGZpZWxkcyB0aW1lIGlucHV0IFVJCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitmb2N1cygpIGFuZCBibHVyKCkKK1BBU1MgdGVzdElucHV0LmZvY3VzKCk7IHN0YXRlKCkg
aXMgImJsdXI9MCBmb2N1cz0xIgorUEFTUyB0ZXN0SW5wdXQuYmx1cigpOyBzdGF0ZSgpIGlzICJi
bHVyPTEgZm9jdXM9MSIKK2ZvY3VzIGFuZCBUYWIga2V5IHRvIGJsdXIKK1BBU1Mga2V5RG93bigi
CSIpOyBzdGF0ZSgpIGlzICJibHVyPTAgZm9jdXM9MSIKK1BBU1Mga2V5RG93bigiCSIpOyBzdGF0
ZSgpIGlzICJibHVyPTAgZm9jdXM9MSIKK1BBU1Mga2V5RG93bigiCSIpOyBzdGF0ZSgpIGlzICJi
bHVyPTAgZm9jdXM9MSIKK1BBU1Mga2V5RG93bigiCSIpOyBzdGF0ZSgpIGlzICJibHVyPTEgZm9j
dXM9MSIKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVs
ZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtYmx1ci1hbmQtZm9jdXMtZXZlbnRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmll
bGRzLWJsdXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YzExNzkyNjhiNWMx
MTVmMDE1NGEzYmFmZTc2M2M3MTg2MWI1ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWJs
dXItYW5kLWZvY3VzLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb250YWluZXIi
PgorPGlucHV0IGlkPSJiZWZvcmUiPgorPGlucHV0IGlkPSJ0ZXN0IiB0eXBlPSJ0aW1lIiB2YWx1
ZT0iMTI6MzQiPgorPGlucHV0IGlkPSJhZnRlciI+Cis8L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbignQ2hlY2sgYmx1ciBhbmQgZm9jdXMgZXZlbnRzIGZvciBtdWx0aXBsZSBmaWVsZHMgdGlt
ZSBpbnB1dCBVSScpOworCit2YXIgYmx1ckNvdW50ZXIgPSAwOwordmFyIGZvY3VzQ291bnRlciA9
IDA7CisKK2Z1bmN0aW9uIGtleURvd24oa2V5LCBtb2RpZmllcnMpCit7CisgICAgaWYgKCF3aW5k
b3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKyAgICBldmVudFNlbmRlci5rZXlEb3du
KGtleSwgbW9kaWZpZXJzKTsKK30KKworZnVuY3Rpb24gc3RhdGUoKQoreworICAgIHJldHVybiAn
Ymx1cj0nICsgYmx1ckNvdW50ZXIgKyAnIGZvY3VzPScgKyBmb2N1c0NvdW50ZXI7Cit9CisKK3Zh
ciB0ZXN0SW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwordGVzdElucHV0
LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlvbiAoKSB7ICsrYmx1ckNvdW50ZXI7IH0p
OwordGVzdElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVuY3Rpb24gKCkgeyArK2Zv
Y3VzQ291bnRlcjsgfSk7CisKK2Z1bmN0aW9uIGJlZ2luVGVzdENhc2UodGVzdENhc2VOYW1lKQor
eworICAgIGRlYnVnKHRlc3RDYXNlTmFtZSk7CisgICAgYmx1ckNvdW50ZXIgPSAwOworICAgIGZv
Y3VzQ291bnRlciA9IDA7Cit9CisKK2JlZ2luVGVzdENhc2UoJ2ZvY3VzKCkgYW5kIGJsdXIoKScp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0SW5wdXQuZm9jdXMoKTsgc3RhdGUoKScsICdi
bHVyPTAgZm9jdXM9MScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0SW5wdXQuYmx1cigp
OyBzdGF0ZSgpJywgJ2JsdXI9MSBmb2N1cz0xJyk7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIp
IHsKKyAgICBiZWdpblRlc3RDYXNlKCdmb2N1cyBhbmQgVGFiIGtleSB0byBibHVyJyk7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJlZm9yZSIpLmZvY3VzKCk7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdrZXlEb3duKCJcdCIpOyBzdGF0ZSgpJywgJ2JsdXI9MCBmb2N1cz0xJyk7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdrZXlEb3duKCJcdCIpOyBzdGF0ZSgpJywgJ2Js
dXI9MCBmb2N1cz0xJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdrZXlEb3duKCJcdCIp
OyBzdGF0ZSgpJywgJ2JsdXI9MCBmb2N1cz0xJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdrZXlEb3duKCJcdCIpOyBzdGF0ZSgpJywgJ2JsdXI9MSBmb2N1cz0xJyk7Cit9IGVsc2Ugewor
ICAgIGRlYnVnKCdQbGVhc2UgcnVuIGluIER1bXBSZW5kZXJUcmVlIGZvciBmb2N1cyBhbmQgVGFi
LWtleSB0ZXN0IGNhc2UnKTsKK30KKworZGVidWcoJycpOworZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIikpOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Rp
bWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRz
L3RpbWUtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXgg
NjE4YTY5NjgyY2U2MjFkMTNmMWZiZmI1NWZiMDNhM2MwMmJhZTAzNi4uOThkMjM2OTlmOWFkZDUz
OWI5MjU1MTAxYjkwMmExM2VhMDhjYTk4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1l
dmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0
aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVk
LnR4dApAQCAtMTEsNyArMTEsNyBAQCBMZWZ0L1JpZ2h0IC0gTW92ZSBmb2N1cyBmaWVsZCBpbnNp
ZGUgZWxlbWVudAogVXAvRG93biAtIEluY3JlbWVudC9kZWNyZW1lbnQgdmFsdWUgb2YgZm9jdXMg
ZmllbGQKIFRhYiAtIE1vdmUgZm9jdXMgZmllbGQKIEJhY2tzcGFjZSAtIE1ha2UgdmFsdWUgZW1w
dHkKLSAKKyAgCiA9PSBEaWdpdCBrZXlzID09CiBQQVNTIGlucHV0LnZhbHVlIGlzICIwNzo1NiIK
ID09IExlZnQvUmlnaHQga2V5cyA9PQpAQCAtMjYsNiArMjYsMTAgQEAgUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMTQ6NTgiCiBQQVNTIGlucHV0LnZhbHVlIGlzICIwMzowNSIKIFBBU1MgaW5wdXQudmFs
dWUgaXMgIjA3OjA1IgogUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIGlzICJhbm90aGVy
IgorPT0gU2hmaXQrVGFiIGtleSA9PQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTU6MDAiCitQQVNT
IGlucHV0LnZhbHVlIGlzICIxNTowMyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCBp
cyAiYmVmb3JlIgogPT0gQmFja3NwYWNlIGtleSA9PQogUEFTUyBpbnB1dC52YWx1ZSBpcyAiIgog
PT0gRGVsZXRlIGtleSA9PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1l
LW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0
aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKaW5kZXggN2YzNTIxMmM4MzIzZGNlYmNj
YWYzNDk0Mzg0NThiOGNjMDczNGFiNy4uMWQ1OGExMDViZDhkYzNjYTgwM2E5ODM5MmQ2NjVjZmFm
YzM5OTc4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxl
LWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUt
ZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sCkBAIC0xNiw2ICsxNiw3IEBAIFRlc3QgZm9sbG93
aW5nIGtleXM6CiAgICAgPGxpPlRhYiAtIE1vdmUgZm9jdXMgZmllbGQ8L2xpPgogICAgIDxsaT5C
YWNrc3BhY2UgLSBNYWtlIHZhbHVlIGVtcHR5PC9saT4KIDwvdWw+Cis8aW5wdXQgaWQ9ImJlZm9y
ZSI+CiA8aW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJ0aW1lIj4KIDxpbnB1dCBpZD0iYW5vdGhlciI+
CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KQEAgLTk3LDYgKzk4LDE4IEBAIGtleURvd24oJ1x0
Jyk7CiBrZXlEb3duKCdcdCcpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmlkJywgJ2Fub3RoZXInKTsKIAorYmVnaW5UZXN0KCdTaGZpdCtUYWIga2V5Jywg
JzAzOjAwJyk7Cithbm90aGVyLmZvY3VzKCk7CitrZXlEb3duKCdcdCcsIFsnc2hpZnRLZXknXSk7
CitrZXlEb3duKCdQJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzE1
OjAwJyk7CitrZXlEb3duKCdcdCcsIFsnc2hpZnRLZXknXSk7CitrZXlEb3duKCczJyk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzE1OjAzJyk7CitrZXlEb3duKCdcdCcs
IFsnc2hpZnRLZXknXSk7CitrZXlEb3duKCdcdCcsIFsnc2hpZnRLZXknXSk7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQnLCAnYmVmb3JlJyk7CisKIGJl
Z2luVGVzdCgnQmFja3NwYWNlIGtleScsICcxMjozNCcpOwoga2V5RG93bigiXGIiKTsKIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnJyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>