<?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>28241</bug_id>
          
          <creation_ts>2009-08-12 17:33:29 -0700</creation_ts>
          <short_desc>Media controls panel does not have a volume control slider</short_desc>
          <delta_ts>2009-08-25 05:04:35 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Hin-Chung Lam">hclam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>scherkus</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>139677</commentid>
    <comment_count>0</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-12 17:33:29 -0700</bug_when>
    <thetext>Open a page with &lt;video controls&gt;&lt;/video&gt; in WebKit, there should be a volume control slider. It may not need to be turned on by default since WebKit mac port uses the quick time layout, but it should be at least configurable via css.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141784</commentid>
    <comment_count>1</comment_count>
      <attachid>38358</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-20 22:38:09 -0700</bug_when>
    <thetext>Created attachment 38358
implemented the control, css style, logic for showing but no appearance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141793</commentid>
    <comment_count>2</comment_count>
      <attachid>38360</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-20 22:42:58 -0700</bug_when>
    <thetext>Created attachment 38360
added controls, style and implementation of controls but no theme</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141965</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-08-21 13:58:49 -0700</bug_when>
    <thetext>&gt; +void RenderMedia::updateVolumeSliderContainer(bool visible) {

Brace should be on a new line


&gt; +    } else if (!visible) {
&gt; +        m_volumeSliderContainer-&gt;setVisible(false);
&gt; +        m_volumeSlider-&gt;update();
&gt; +    }

Why call setVisible(false) if it is already not visible?


&gt;  void RenderMedia::forwardEvent(Event* event)
&gt;  {
&gt;      if (event-&gt;isMouseEvent() &amp;&amp; m_controlsShadowRoot) {
&gt;          MouseEvent* mouseEvent = static_cast&lt;MouseEvent*&gt;(event);
&gt;          IntPoint point(mouseEvent-&gt;absoluteLocation());
&gt; -        if (m_muteButton &amp;&amp; m_muteButton-&gt;hitTest(point))
&gt; +        bool showVolumeSlider = false;

This breaks the current mute button. Why don&apos;t you use a compile switch
for the new code so ports can opt into when they are ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141975</commentid>
    <comment_count>4</comment_count>
      <attachid>38395</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-21 14:18:32 -0700</bug_when>
    <thetext>Created attachment 38395
added controls, style and implementation of controls but no theme</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141977</commentid>
    <comment_count>5</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-21 14:23:00 -0700</bug_when>
    <thetext>I have updated the patch addressing Eric&apos;s comments. About the comments that mute button will break, the line &quot;if (m_muteButton &amp;&amp; m_muteButton-&gt;hitTest(point))&quot; is moved to line 525. I tested this on a mac and the mute button works fine.

The volume slider is shown above or below the mute button (depending on the position of the mute button in the frame). It doesn&apos;t overlay on top. And if the port doesn&apos;t implement the appearance of the volume slider, that this patch doesn&apos;t include. The slider won&apos;t be shown at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142109</commentid>
    <comment_count>6</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-22 01:55:20 -0700</bug_when>
    <thetext>To add a bit more about the behavior of the volume slider:

- When mouse over the mute button
- Volume slider is shown either above the mute button or below the mute button (They will not overlap)
- When mouse out of the volume slider or mute button, the volume slider will disappear

The behavior of the volume slider will be similar to youtube.

Also in this patch I don&apos;t include any theme implementation and by default -webkit-media-controls-volume-slider-container and -webkit-media-controls-volume-slider don&apos;t have renderers unless they are defined in css with a &quot;display&quot; value so they won&apos;t affect layout tests nor shown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142124</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-08-22 09:15:01 -0700</bug_when>
    <thetext>This looks great to me, thanks Alpha!

I think this is ready to land, but I won&apos;t r+ it as I am not a reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142127</commentid>
    <comment_count>8</comment_count>
      <attachid>38395</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-22 09:41:31 -0700</bug_when>
    <thetext>Comment on attachment 38395
added controls, style and implementation of controls but no theme

Strange to have WebCore:: on one and not the other:
03     if (m_isVisible)
 204         style-&gt;setVisibility(VISIBLE);
 205     else
 206         style-&gt;setVisibility(WebCore::HIDDEN);

I might have even written that style-&gt;setVisibility(m_visible ? VISIBLE : HIDDEN)

Same in the next function below.

Don&apos;t we only need to clone styles when they&apos;re not already shared?
1     RefPtr&lt;RenderStyle&gt; style = RenderStyle::clone(renderer()-&gt;style());
 222     if (visible)
 223         style-&gt;setVisibility(VISIBLE);
 224     else
 225         style-&gt;setVisibility(WebCore::HIDDEN);
Or maybe clone() is smart enough to do that.

I don&apos;t understand this comment:
216     // This function is used during the RenderMedia::layout()
 217     // call, where we cannot change the renderer at this time.
 218     if (!renderer() || !renderer()-&gt;style())
 219         return;

We should figure out if we always need to be cloning, or if there is a similar &quot;make sure this style is not shared&quot; method:
 236     RefPtr&lt;RenderStyle&gt; style = RenderStyle::clone(renderer()-&gt;style());

Why not just &quot;1&quot;?
 598     setAttribute(maxAttr, String::number(1));

Sometimes we have exception ignoring versions of dom methods which are only used internally:
614         ExceptionCode ec;
 615         m_mediaElement-&gt;setVolume(volume, ec);
I&apos;m surprise we don&apos;t have one here.
Do we need to ASSERT(!ec)?

Isn&apos;t this doing a bunch of extra checks?
21     return MediaControlInputElement::rendererIsNeeded(style) &amp;&amp; parent() &amp;&amp; parent()-&gt;renderer() &amp;&amp; parent()-&gt;renderer()-&gt;style()-&gt;visibility() == VISIBLE;
RenderObject::rendererIsNeeded() takes care of all of that, no?  Why do you need to override?

Its a little sad that we have so many classes in these files.

I&apos;m not sure I fully understand:
 494 void RenderMedia::updateVolumeSliderContainer(bool visible)
Seems like a lot of code. ;)

In general this looks fine, but there are a couple unanswered questions above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142128</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-22 09:42:08 -0700</bug_when>
    <thetext>I&apos;m most concerned with the rendererIsNeeded implementation, and the possibly unecessary clone() calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142133</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-08-22 10:59:13 -0700</bug_when>
    <thetext>&gt; I don&apos;t understand this comment:
&gt;  216     // This function is used during the RenderMedia::layout()
&gt;  217     // call, where we cannot change the renderer at this time.
&gt;  218     if (!renderer() || !renderer()-&gt;style())
&gt;  219         return;

Looks like the comment was copy/pasted from MediaControlTimeDisplayElement::setVisible and isn&apos;t relevant here.


&gt; Isn&apos;t this doing a bunch of extra checks?
&gt; 21     return MediaControlInputElement::rendererIsNeeded(style) &amp;&amp; parent() &amp;&amp;
&gt; parent()-&gt;renderer() &amp;&amp; parent()-&gt;renderer()-&gt;style()-&gt;visibility() == VISIBLE;
&gt; RenderObject::rendererIsNeeded() takes care of all of that, no?  Why do you
&gt; need to override?

I don&apos;t see RenderObject::rendererIsNeeded? MediaControlInputElement::rendererIsNeeded does check &quot;parent() &amp;&amp; parent()-&gt;renderer()&quot; so those aren&apos;t needed, but it doesn&apos;t check the visibility of the parent (the slider container). The question about  whether or not this is needed at all is a fair one though. The other media control elements that override rendererIsNeeded do so because we want to force a re-layout when they appear/disappear, which is not the case with the volume slider since it is position absolute.


&gt; Sometimes we have exception ignoring versions of dom methods which are only
&gt; used internally:
&gt;  614         ExceptionCode ec;
&gt;  615         m_mediaElement-&gt;setVolume(volume, ec);
&gt; I&apos;m surprise we don&apos;t have one here.

This is the first internal use of setVolume, it seems a bit heavyweight to add a convenience method just yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142436</commentid>
    <comment_count>11</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-24 16:16:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 38395 [details])
&gt; Strange to have WebCore:: on one and not the other:
&gt; 03     if (m_isVisible)
&gt;  204         style-&gt;setVisibility(VISIBLE);
&gt;  205     else
&gt;  206         style-&gt;setVisibility(WebCore::HIDDEN);
&gt; 
&gt; I might have even written that style-&gt;setVisibility(m_visible ? VISIBLE :
&gt; HIDDEN)
&gt; 
&gt; Same in the next function below.

Will change this.

&gt; 
&gt; Don&apos;t we only need to clone styles when they&apos;re not already shared?
&gt; 1     RefPtr&lt;RenderStyle&gt; style = RenderStyle::clone(renderer()-&gt;style());
&gt;  222     if (visible)
&gt;  223         style-&gt;setVisibility(VISIBLE);
&gt;  224     else
&gt;  225         style-&gt;setVisibility(WebCore::HIDDEN);
&gt; Or maybe clone() is smart enough to do that.

I&apos;ll take out the extra clone()s.

&gt; 
&gt; I don&apos;t understand this comment:
&gt; 216     // This function is used during the RenderMedia::layout()
&gt;  217     // call, where we cannot change the renderer at this time.
&gt;  218     if (!renderer() || !renderer()-&gt;style())
&gt;  219         return;
&gt; 
&gt; We should figure out if we always need to be cloning, or if there is a similar
&gt; &quot;make sure this style is not shared&quot; method:
&gt;  236     RefPtr&lt;RenderStyle&gt; style = RenderStyle::clone(renderer()-&gt;style());
&gt; 
&gt; Why not just &quot;1&quot;?
&gt;  598     setAttribute(maxAttr, String::number(1));
&gt; 
&gt; Sometimes we have exception ignoring versions of dom methods which are only
&gt; used internally:
&gt; 614         ExceptionCode ec;
&gt;  615         m_mediaElement-&gt;setVolume(volume, ec);
&gt; I&apos;m surprise we don&apos;t have one here.
&gt; Do we need to ASSERT(!ec)?
&gt; 
&gt; Isn&apos;t this doing a bunch of extra checks?
&gt; 21     return MediaControlInputElement::rendererIsNeeded(style) &amp;&amp; parent() &amp;&amp;
&gt; parent()-&gt;renderer() &amp;&amp; parent()-&gt;renderer()-&gt;style()-&gt;visibility() == VISIBLE;
&gt; RenderObject::rendererIsNeeded() takes care of all of that, no?  Why do you
&gt; need to override?

The reason was that after the volume container goes away, the slider is still shown. Instead of changing the visiblity of also the slider I took out it&apos;s renderer. But this is not needed any more, I&apos;ll makes its parent goes away instead so both of them would have renderer.

&gt; 
&gt; Its a little sad that we have so many classes in these files.
&gt; 
&gt; I&apos;m not sure I fully understand:
&gt;  494 void RenderMedia::updateVolumeSliderContainer(bool visible)
&gt; Seems like a lot of code. ;)
&gt; 
&gt; In general this looks fine, but there are a couple unanswered questions above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142437</commentid>
    <comment_count>12</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-24 16:19:50 -0700</bug_when>
    <thetext>Thanks for the review!

(In reply to comment #10)
&gt; &gt; I don&apos;t understand this comment:
&gt; &gt;  216     // This function is used during the RenderMedia::layout()
&gt; &gt;  217     // call, where we cannot change the renderer at this time.
&gt; &gt;  218     if (!renderer() || !renderer()-&gt;style())
&gt; &gt;  219         return;
&gt; 
&gt; Looks like the comment was copy/pasted from
&gt; MediaControlTimeDisplayElement::setVisible and isn&apos;t relevant here.
&gt; 
&gt; 
&gt; &gt; Isn&apos;t this doing a bunch of extra checks?
&gt; &gt; 21     return MediaControlInputElement::rendererIsNeeded(style) &amp;&amp; parent() &amp;&amp;
&gt; &gt; parent()-&gt;renderer() &amp;&amp; parent()-&gt;renderer()-&gt;style()-&gt;visibility() == VISIBLE;
&gt; &gt; RenderObject::rendererIsNeeded() takes care of all of that, no?  Why do you
&gt; &gt; need to override?
&gt; 
&gt; I don&apos;t see RenderObject::rendererIsNeeded?
&gt; MediaControlInputElement::rendererIsNeeded does check &quot;parent() &amp;&amp;
&gt; parent()-&gt;renderer()&quot; so those aren&apos;t needed, but it doesn&apos;t check the
&gt; visibility of the parent (the slider container). The question about  whether or
&gt; not this is needed at all is a fair one though. The other media control
&gt; elements that override rendererIsNeeded do so because we want to force a
&gt; re-layout when they appear/disappear, which is not the case with the volume
&gt; slider since it is position absolute.
&gt; 

The volume slider container is absolute positioned, so does the volume slider, so simply setting the visibility of the container won&apos;t make the slider goes away. It was to make the renderer of the volume slider goes away when the container is not visible. I&apos;ll now change this so that the volume container&apos;s renderer would go away, and thus volume slider&apos;s renderer would be detached too.

&gt; 
&gt; &gt; Sometimes we have exception ignoring versions of dom methods which are only
&gt; &gt; used internally:
&gt; &gt;  614         ExceptionCode ec;
&gt; &gt;  615         m_mediaElement-&gt;setVolume(volume, ec);
&gt; &gt; I&apos;m surprise we don&apos;t have one here.
&gt; 
&gt; This is the first internal use of setVolume, it seems a bit heavyweight to add
&gt; a convenience method just yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142459</commentid>
    <comment_count>13</comment_count>
      <attachid>38512</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-24 16:50:41 -0700</bug_when>
    <thetext>Created attachment 38512
controls implementation without theme</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142463</commentid>
    <comment_count>14</comment_count>
      <attachid>38513</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-24 17:02:57 -0700</bug_when>
    <thetext>Created attachment 38513
volume slider theme implementation for chromium port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142475</commentid>
    <comment_count>15</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-24 17:35:31 -0700</bug_when>
    <thetext>Updated implementations in MediaControlElements.cpp to get rid of RenderStyle::Clone() and removed MediaControlVolumeSliderContainerElement::rendererIsNeeded().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142485</commentid>
    <comment_count>16</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-08-24 17:53:52 -0700</bug_when>
    <thetext>&gt; diff --git a/WebCore/rendering/RenderThemeChromiumSkia.cpp b/WebCore/rendering/RenderThemeChromiumSkia.cpp
&gt; index c8875dc..d66a4af 100644
&gt; --- a/WebCore/rendering/RenderThemeChromiumSkia.cpp
&gt; +++ b/WebCore/rendering/RenderThemeChromiumSkia.cpp
&gt; @@ -571,6 +571,28 @@ bool RenderThemeChromiumSkia::paintMediaSliderTrack(RenderObject* object, const
&gt;  #endif
&gt;  }
&gt;  
&gt; +bool RenderThemeChromiumSkia::paintMediaVolumeSliderTrack(RenderObject* object, const RenderObject::PaintInfo&amp; paintInfo, const IntRect&amp; rect)
&gt; +{
&gt; +#if ENABLE(VIDEO)
&gt; +    HTMLMediaElement* mediaElement = mediaElementParent(object-&gt;node());
&gt; +    if (!mediaElement)
&gt; +        return false;

You should probably check hasAudio() here unless you can guarantee this is never called if/when hasAudio() is false</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142487</commentid>
    <comment_count>17</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-24 18:09:35 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; diff --git a/WebCore/rendering/RenderThemeChromiumSkia.cpp b/WebCore/rendering/RenderThemeChromiumSkia.cpp
&gt; &gt; index c8875dc..d66a4af 100644
&gt; &gt; --- a/WebCore/rendering/RenderThemeChromiumSkia.cpp
&gt; &gt; +++ b/WebCore/rendering/RenderThemeChromiumSkia.cpp
&gt; &gt; @@ -571,6 +571,28 @@ bool RenderThemeChromiumSkia::paintMediaSliderTrack(RenderObject* object, const
&gt; &gt;  #endif
&gt; &gt;  }
&gt; &gt;  
&gt; &gt; +bool RenderThemeChromiumSkia::paintMediaVolumeSliderTrack(RenderObject* object, const RenderObject::PaintInfo&amp; paintInfo, const IntRect&amp; rect)
&gt; &gt; +{
&gt; &gt; +#if ENABLE(VIDEO)
&gt; &gt; +    HTMLMediaElement* mediaElement = mediaElementParent(object-&gt;node());
&gt; &gt; +    if (!mediaElement)
&gt; &gt; +        return false;
&gt; 
&gt; You should probably check hasAudio() here unless you can guarantee this is
&gt; never called if/when hasAudio() is false

This check should go into MediaControlElements.cpp, I&apos;ll include the change in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142488</commentid>
    <comment_count>18</comment_count>
      <attachid>38512</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-24 18:32:34 -0700</bug_when>
    <thetext>Comment on attachment 38512
controls implementation without theme

&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog

Your changelog is out of date with your changes.  I found at least one function mentioned in it that is no longer changed.
Also the changelog doesn&apos;t help me understand why functions were changed like they were.  It is best if you describe this in the change log especially with a a more complicated/bigger change like this. (See change log entries by others like Darin Adler for example.)




&gt; diff --git a/WebCore/rendering/MediaControlElements.cpp b/WebCore/rendering/MediaControlElements.cpp
&gt;  PassRefPtr&lt;RenderStyle&gt; MediaControlInputElement::styleForElement()
&gt;  {
&gt; -    return m_mediaElement-&gt;renderer()-&gt;getCachedPseudoStyle(m_pseudoStyleId);
&gt; +    PassRefPtr&lt;RenderStyle&gt; style = m_mediaElement-&gt;renderer()-&gt;getCachedPseudoStyle(m_pseudoStyleId);
&gt; +    return style;

Why is this being done?
PassRefPtr isn&apos;t suppose to be used as a local variable like this.  It would be easiest to change the code back to what it was.


&gt; +void MediaControlVolumeSliderElement::defaultEventHandler(Event* event)
&gt; +{
...
&gt; +    float volume = narrowPrecisionToFloat(value().toDouble());
&gt; +    if (volume != m_mediaElement-&gt;volume()) {
&gt; +        ExceptionCode ec;
&gt; +        m_mediaElement-&gt;setVolume(volume, ec);

As Eric Seidel suggested: &quot;Do we need to ASSERT(!ec)?&quot;


&gt; diff --git a/WebCore/rendering/RenderMediaControls.cpp b/WebCore/rendering/RenderMediaControls.cpp
&gt; index 06d901a..d9de8aa 100644
&gt; --- a/WebCore/rendering/RenderMediaControls.cpp
&gt; +++ b/WebCore/rendering/RenderMediaControls.cpp
&gt; @@ -128,6 +128,18 @@ bool RenderMediaControls::paintMediaControlsPart(MediaControlElementType part, R
&gt;          case MediaSliderThumb:
&gt;              paintThemePart(SafariTheme::MediaSliderThumbPart, paintInfo.context-&gt;platformContext(), r, NSRegularControlSize, determineState(o));
&gt;              break;
&gt; +        case MediaVolumeSliderContainer:
&gt; +            // FIXME: Implemnt volume slider.

typo: Implemnt (several places)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142489</commentid>
    <comment_count>19</comment_count>
      <attachid>38513</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-24 18:33:48 -0700</bug_when>
    <thetext>Comment on attachment 38513
volume slider theme implementation for chromium port

Per Andrew&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142501</commentid>
    <comment_count>20</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-24 21:36:36 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 38513 [details])
&gt; Per Andrew&apos;s comment.

The issue Andrew pointed out should be addressed in RenderMedia.cpp rather than in the theme implementation of chromium port. I&apos;ll include the fix in RenderMedia.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142502</commentid>
    <comment_count>21</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-24 21:39:45 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 38512 [details])
&gt; &gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
&gt; 
&gt; Your changelog is out of date with your changes.  I found at least one function
&gt; mentioned in it that is no longer changed.
&gt; Also the changelog doesn&apos;t help me understand why functions were changed like
&gt; they were.  It is best if you describe this in the change log especially with a
&gt; a more complicated/bigger change like this. (See change log entries by others
&gt; like Darin Adler for example.)
&gt; 
&gt; 

I think a bunch of them not useful because of the empty spaces I removed, I&apos;ll remove those cleanup and will add some comments to the change log.

&gt; 
&gt; 
&gt; &gt; diff --git a/WebCore/rendering/MediaControlElements.cpp b/WebCore/rendering/MediaControlElements.cpp
&gt; &gt;  PassRefPtr&lt;RenderStyle&gt; MediaControlInputElement::styleForElement()
&gt; &gt;  {
&gt; &gt; -    return m_mediaElement-&gt;renderer()-&gt;getCachedPseudoStyle(m_pseudoStyleId);
&gt; &gt; +    PassRefPtr&lt;RenderStyle&gt; style = m_mediaElement-&gt;renderer()-&gt;getCachedPseudoStyle(m_pseudoStyleId);
&gt; &gt; +    return style;
&gt; 
&gt; Why is this being done?
&gt; PassRefPtr isn&apos;t suppose to be used as a local variable like this.  It would be
&gt; easiest to change the code back to what it was.
&gt; 

Will revert this.

&gt; 
&gt; &gt; +void MediaControlVolumeSliderElement::defaultEventHandler(Event* event)
&gt; &gt; +{
&gt; ...
&gt; &gt; +    float volume = narrowPrecisionToFloat(value().toDouble());
&gt; &gt; +    if (volume != m_mediaElement-&gt;volume()) {
&gt; &gt; +        ExceptionCode ec;
&gt; &gt; +        m_mediaElement-&gt;setVolume(volume, ec);
&gt; 
&gt; As Eric Seidel suggested: &quot;Do we need to ASSERT(!ec)?&quot;
&gt; 

Will add this back.

&gt; 
&gt; &gt; diff --git a/WebCore/rendering/RenderMediaControls.cpp b/WebCore/rendering/RenderMediaControls.cpp
&gt; &gt; index 06d901a..d9de8aa 100644
&gt; &gt; --- a/WebCore/rendering/RenderMediaControls.cpp
&gt; &gt; +++ b/WebCore/rendering/RenderMediaControls.cpp
&gt; &gt; @@ -128,6 +128,18 @@ bool RenderMediaControls::paintMediaControlsPart(MediaControlElementType part, R
&gt; &gt;          case MediaSliderThumb:
&gt; &gt;              paintThemePart(SafariTheme::MediaSliderThumbPart, paintInfo.context-&gt;platformContext(), r, NSRegularControlSize, determineState(o));
&gt; &gt;              break;
&gt; &gt; +        case MediaVolumeSliderContainer:
&gt; &gt; +            // FIXME: Implemnt volume slider.
&gt; 
&gt; typo: Implemnt (several places)

Will also correct this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142517</commentid>
    <comment_count>22</comment_count>
      <attachid>38529</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-24 23:13:07 -0700</bug_when>
    <thetext>Created attachment 38529
volume controls implementation without theme</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142519</commentid>
    <comment_count>23</comment_count>
      <attachid>38530</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-24 23:14:18 -0700</bug_when>
    <thetext>Created attachment 38530
volume controls implementation without theme</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142520</commentid>
    <comment_count>24</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-24 23:16:43 -0700</bug_when>
    <thetext>Updated the patch for basic implementation of volume slider control.

Re-activate the patch for chromium port&apos;s theme implementation since Andrew&apos;s comment is address in above patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142522</commentid>
    <comment_count>25</comment_count>
      <attachid>38531</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-08-24 23:24:09 -0700</bug_when>
    <thetext>Created attachment 38531
volume controls implementation without theme</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142524</commentid>
    <comment_count>26</comment_count>
      <attachid>38513</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-24 23:35:23 -0700</bug_when>
    <thetext>Comment on attachment 38513
volume slider theme implementation for chromium port

As discussed the duplicate
  static Image* mediaVolumeSliderThumb = Image::loadPlatformResource(&quot;mediaVolumeSliderThumb&quot;).releaseRef();
is unfortunate.  Please correct this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142525</commentid>
    <comment_count>27</comment_count>
      <attachid>38531</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-24 23:36:41 -0700</bug_when>
    <thetext>Comment on attachment 38531
volume controls implementation without theme

Looks fine to me and it addresses the comments given by the two Eric&apos;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142537</commentid>
    <comment_count>28</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-25 00:27:35 -0700</bug_when>
    <thetext>Sorry the commit-queue had a hiccup this evening.  It&apos;s back up now and your patch will land as soon as the builders turn green again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142561</commentid>
    <comment_count>29</comment_count>
      <attachid>38531</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-25 05:04:32 -0700</bug_when>
    <thetext>Comment on attachment 38531
volume controls implementation without theme

Clearing flags on attachment: 38531

Committed r47744: &lt;http://trac.webkit.org/changeset/47744&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142562</commentid>
    <comment_count>30</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-25 05:04:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38358</attachid>
            <date>2009-08-20 22:38:09 -0700</date>
            <delta_ts>2009-08-20 22:43:21 -0700</delta_ts>
            <desc>implemented the control, css style, logic for showing but no appearance</desc>
            <filename>webkit-add-volume-slider.patch</filename>
            <type>text/plain</type>
            <size>54855</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">G1sxbWRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nG1tt
ChtbMW1pbmRleCAyNTM3NTIyLi5iNDA4ZjE2IDEwMDY0NBtbbQobWzFtLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cbW20KG1sxbSsrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nG1ttChtbMzZtQEAgLTEsMyAr
MSw4MyBAQBtbbQobWzMybSsbW20bWzMybTIwMDktMDgtMjAgIEFscGhhIExhbSAgPGhjbGFtQGNo
cm9taXVtLm9yZz4bW20KG1szMm0rG1ttChtbMzJtKxtbbRtbMzJtICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4bW20KG1szMm0rG1ttChtbMzJtKxtbbRtbMzJtICAgICAgICBNZWRp
YSBjb250cm9scyBwYW5lbCBkb2VzIG5vdCBoYXZlIGEgdm9sdW1lIGNvbnRyb2wgc2xpZGVyG1tt
ChtbMzJtKxtbbRtbMzJtICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjgyNDEbW20KG1szMm0rG1ttChtbMzJtKxtbbRtbMzJtICAgICAgICBJbnRyb2R1Y2Vk
ICItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIiIGFuZBtbbQobWzMybSsbW20b
WzMybSAgICAgICAgIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWlu
ZXIiIGFuZCB0aGUgc3VwcG9ydGluZxtbbQobWzMybSsbW20bWzMybSAgICAgICAgaW1wbGVtZW50
YXRpb25zLiBBbHNvIGFkZGVkIGFwcGVhcmFuY2VzIG9mICJtZWRpYS12b2x1bWUtc2xpZGVyIiwb
W20KG1szMm0rG1ttG1szMm0gICAgICAgICJtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciIu
G1ttChtbMzJtKxtbbQobWzMybSsbW20bWzMybSAgICAgICAgVGhlIGltcGxlbWVudGF0aW9ucyBv
ZiB0aGUgY29udHJvbHMgYXJlIGluIFdlYkNvcmU6Ok1lZGlhQ29udHJvbEVsZW1lbnRzLhtbbQob
WzMybSsbW20bWzMybSAgICAgICAgQW5kIGxvZ2ljIHRvIHRyaWdnZXIgdGhlIGRpc3BsYXkgb2Yg
dGhlIHZvbHVtZSBjb250cm9scyBhcmUgaW4gV2ViQ29yZTo6UmVuZGVyTWVkaWEuG1ttChtbMzJt
KxtbbQobWzMybSsbW20bWzMybSAgICAgICAgTm8gdGVzdCBiZWNhdXNlIHRoZSB2b2x1bWUgc2xp
ZGVyIGNvbnRyb2wgaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0IGFuZBtbbQobWzMybSsbW20bWzMy
bSAgICAgICAgdGhlcmUgaXMgbm8gaW1wbGVtZW50YXRpb24gb2YgdGhlIGFwcGVhcmFuY2VzIHBy
b3ZpZGVkLhtbbQobWzMybSsbW20KG1szMm0rG1ttG1szMm0gICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcDobW20KG1szMm0rG1ttG1szMm0gICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5U2xpZGVyOjpvcmllbnRhdGlvbik6G1ttChtbMzJtKxtbbRtbMzJt
ICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6G1ttChtbMzJtKxtbbRtb
MzJtICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KTobW20KG1szMm0rG1ttG1szMm0gICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDobW20KG1sz
Mm0rG1ttG1szMm0gICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5
cGUpOhtbbQobWzMybSsbW20bWzMybSAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDobW20KG1sz
Mm0rG1ttG1szMm0gICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6KTobW20KG1szMm0rG1tt
G1szMm0gICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOhtbbQobWzMybSsbW20bWzMy
bSAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hl
Y2tPbmVTZWxlY3Rvcik6G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAqIGNzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluOhtbbQobWzMybSsbW20bWzMybSAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5j
c3M6G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMuaDobW20K
G1szMm0rG1ttG1szMm0gICAgICAgIChXZWJDb3JlOjopOhtbbQobWzMybSsbW20bWzMybSAgICAg
ICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOhtbbQobWzMybSsbW20bWzMy
bSAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1l
bnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQpOhtbbQobWzMybSsb
W20bWzMybSAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5l
ckVsZW1lbnQ6OnN0eWxlRm9yRWxlbWVudCk6G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2V0VmlzaWJs
ZSk6G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2V0UG9zaXRpb24pOhtbbQobWzMybSsbW20bWzMybSAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6
OmhpdFRlc3QpOhtbbQobWzMybSsbW20bWzMybSAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bElucHV0RWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KTobW20KG1szMm0rG1ttG1szMm0gICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJFbGVtZW50KTobW20KG1szMm0rG1ttG1szMm0gICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKTobW20K
G1szMm0rG1ttG1szMm0gICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJF
bGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKTobW20KG1szMm0rG1ttG1szMm0gICAgICAgICogcmVu
ZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmg6G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAo
V2ViQ29yZTo6KTobW20KG1szMm0rG1ttG1szMm0gICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50Ojppc1Zpc2libGUpOhtbbQobWzMybSsbW20b
WzMybSAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwOhtbbQobWzMybSsbW20bWzMy
bSAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjpzdHlsZURpZENoYW5nZSk6G1ttChtbMzJt
KxtbbRtbMzJtICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OmNyZWF0ZVZvbHVtZVNsaWRl
ckNvbnRhaW5lcik6G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVk
aWE6OmNyZWF0ZVZvbHVtZVNsaWRlcik6G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTWVkaWE6OnVwZGF0ZUNvbnRyb2xzKTobW20KG1szMm0rG1ttG1szMm0gICAgICAg
IChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6Zm9ybWF0VGltZSk6G1ttChtbMzJtKxtbbRtbMzJtICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OnVwZGF0ZVRpbWVEaXNwbGF5KTobW20KG1szMm0r
G1ttG1szMm0gICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbFZpc2li
aWxpdHkpOhtbbQobWzMybSsbW20bWzMybSAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjpj
aGFuZ2VPcGFjaXR5KTobW20KG1szMm0rG1ttG1szMm0gICAgICAgIChXZWJDb3JlOjpSZW5kZXJN
ZWRpYTo6dXBkYXRlVm9sdW1lU2xpZGVyQ29udGFpbmVyKTobW20KG1szMm0rG1ttG1szMm0gICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6Zm9yd2FyZEV2ZW50KTobW20KG1szMm0rG1ttG1sz
Mm0gICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6bG93ZXN0UG9zaXRpb24pOhtbbQobWzMy
bSsbW20bWzMybSAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjpyaWdodG1vc3RQb3NpdGlv
bik6G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OmxlZnRt
b3N0UG9zaXRpb24pOhtbbQobWzMybSsbW20bWzMybSAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TWVkaWEuaDobW20KG1szMm0rG1ttG1szMm0gICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlh
Q29udHJvbHMuY3BwOhtbbQobWzMybSsbW20bWzMybSAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
ZGlhQ29udHJvbHM6OnBhaW50TWVkaWFDb250cm9sc1BhcnQpOhtbbQobWzMybSsbW20bWzMybSAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcDobW20KG1szMm0rG1ttG1szMm0gICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmNyZWF0ZVRodW1iU3R5bGUpOhtbbQobWzMybSsb
W20bWzMybSAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6dGh1bWJSZWN0KTobW20KG1sz
Mm0rG1ttG1szMm0gICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6Om1vdXNlRXZlbnRJc0lu
VGh1bWIpOhtbbQobWzMybSsbW20bWzMybSAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6
c2V0VmFsdWVGb3JQb3NpdGlvbik6G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU2xpZGVyOjpwb3NpdGlvbkZvck9mZnNldCk6G1ttChtbMzJtKxtbbRtbMzJtICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpjdXJyZW50UG9zaXRpb24pOhtbbQobWzMybSsbW20b
WzMybSAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6dHJhY2tTaXplKTobW20KG1szMm0r
G1ttG1szMm0gICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDobW20KG1szMm0rG1tt
G1szMm0gICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUpOhtbbQobWzMy
bSsbW20bWzMybSAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludCk6G1ttChtbMzJt
KxtbbRtbMzJtICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5oOhtbbQobWzMybSsbW20b
WzMybSAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludE1lZGlhVm9sdW1lU2xpZGVy
Q29udGFpbmVyKTobW20KG1szMm0rG1ttG1szMm0gICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKTobW20KG1szMm0rG1ttG1szMm0gICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKTobW20K
G1szMm0rG1ttG1szMm0gICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3Rh
bnRzLmg6G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAoV2ViQ29yZTo6KTobW20KG1szMm0rG1tt
CiAyMDA5LTA4LTIwICBDaHJpc3RpYW4gUGxlc25lciBIYW5zZW4gIDxjaHJpc3RpYW4ucGxlc25l
ci5oYW5zZW5AZ21haWwuY29tPhtbbQogG1ttCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExl
dmluLhtbbQobWzFtZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U2xpZGVyLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVy
LmNwcBtbbQobWzFtaW5kZXggZTNhNjU0Yi4uZWRlOWRjZiAxMDA2NDQbW20KG1sxbS0tLSBhL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcBtbbQobWzFtKysrIGIv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwG1ttChtbMzZtQEAg
LTc1LDYgKzc1LDcgQEAgQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIEFjY2Vzc2liaWxpdHlTbGlk
ZXI6Om9yaWVudGF0aW9uKCkgY29uc3QbW20KICAgICAgICAgG1ttCiAgICAgICAgIGNhc2UgU2xp
ZGVyVGh1bWJWZXJ0aWNhbFBhcnQ6IBtbbQogICAgICAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFy
dDobW20KG1szMm0rG1ttG1szMm0gICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0Ohtb
bQogICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlPcmllbnRhdGlvblZlcnRpY2FsOxtb
bQogICAgICAgICAgICAgG1ttCiAgICAgICAgIGRlZmF1bHQ6G1ttChtbMW1kaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oG1ttChtbMW1pbmRleCBiZTk2NDA3Li4xNzg2YzFjIDEw
MDY0NBtbbQobWzFtLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
G1ttChtbMW0rKysgYi9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgbW20K
G1szNm1AQCAtMjI4LDYgKzIyOCwxNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkbW20KICAgICAgICAgY2FzZSBN
ZWRpYVNsaWRlclRodW1iUGFydDobW20KICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZU1lZGlhU2xpZGVydGh1bWI7G1ttCiAgICAgICAgICAgICBicmVhazsbW20KG1szMm0rG1tt
G1szMm0gICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXJQYXJ0OhtbbQobWzMy
bSsbW20bWzMybSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1l
U2xpZGVyQ29udGFpbmVyOxtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAgIGJyZWFrOxtbbQob
WzMybSsbW20bWzMybSAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6G1ttChtbMzJt
KxtbbRtbMzJtICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFWb2x1bWVT
bGlkZXI7G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAgICAgYnJlYWs7G1ttChtbMzJtKxtbbRtb
MzJtICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OhtbbQobWzMybSsbW20b
WzMybSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVy
dGh1bWI7G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAgICAgYnJlYWs7G1ttCiAgICAgICAgIGNh
c2UgTWVkaWFDb250cm9sc0JhY2tncm91bmRQYXJ0OhtbbQogICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlTWVkaWFDb250cm9sc0JhY2tncm91bmQ7G1ttCiAgICAgICAgICAgICBi
cmVhazsbW20KG1sxbWRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAbW20KG1sxbWluZGV4IGE3ZjcwMzQuLjlkOWRkMWIg
MTAwNjQ0G1ttChtbMW0tLS0gYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAbW20KG1sxbSsr
KyBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcBtbbQobWzM2bUBAIC0xMDgsNiArMTA4LDcg
QEAgdm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdBtbbQogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzTXV0ZUJ1dHRvbiwg
KCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uIikpOxtbbQogICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzUGxheUJ1dHRvbiwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIikpOxtbbQogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzVGltZWxpbmUsICgiLXdlYmtpdC1tZWRp
YS1jb250cm9scy10aW1lbGluZSIpKTsbW20KG1szMm0rG1ttG1szMm0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXIsICgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyIikpOxtbbQogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzU2Vla0JhY2tCdXR0b24sICgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uIikpOxtbbQogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzU2Vla0ZvcndhcmRCdXR0b24sICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uIikpOxtbbQogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzUmV3aW5kQnV0dG9u
LCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV3aW5kLWJ1dHRvbiIpKTsbW20KG1szNm1AQCAt
MTE1LDYgKzExNiw3IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29u
c3QbW20KICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9s
c1N0YXR1c0Rpc3BsYXksICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1zdGF0dXMtZGlzcGxheSIp
KTsbW20KICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9s
c0Z1bGxzY3JlZW5CdXR0b24sICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1
dHRvbiIpKTsbW20KICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFD
b250cm9sc1RpbWVsaW5lQ29udGFpbmVyLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxp
bmUtY29udGFpbmVyIikpOxtbbQobWzMybSsbW20bWzMybSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1ZvbHVtZVNsaWRlckNvbnRhaW5lciwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIikpOxtbbQogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzQ3VycmVudFRpbWVE
aXNwbGF5LCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXkiKSk7
G1ttCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJvbHNU
aW1lUmVtYWluaW5nRGlzcGxheSwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWlu
aW5nLWRpc3BsYXkiKSk7G1ttCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IG5vdFN0ciwgKCJub3QoIikpOxtbbQobWzM2bUBAIC0yNDQsNiArMjQ2LDkgQEAgdm9pZCBDU1NT
ZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdBtbbQogICAgIH0gZWxzZSBpZiAobV92
YWx1ZSA9PSBtZWRpYUNvbnRyb2xzVGltZWxpbmUpIHsbW20KICAgICAgICAgbV9wc2V1ZG9UeXBl
ID0gUHNldWRvTWVkaWFDb250cm9sc1RpbWVsaW5lOxtbbQogICAgICAgICBlbGVtZW50ID0gdHJ1
ZTsbW20KG1szMm0rG1ttG1szMm0gICAgfSBlbHNlIGlmIChtX3ZhbHVlID09IG1lZGlhQ29udHJv
bHNWb2x1bWVTbGlkZXIpIHsbW20KG1szMm0rG1ttG1szMm0gICAgICAgIG1fcHNldWRvVHlwZSA9
IFBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXI7G1ttChtbMzJtKxtbbRtbMzJtICAgICAg
ICBlbGVtZW50ID0gdHJ1ZTsbW20KICAgICB9IGVsc2UgaWYgKG1fdmFsdWUgPT0gbWVkaWFDb250
cm9sc1NlZWtCYWNrQnV0dG9uKSB7G1ttCiAgICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb01l
ZGlhQ29udHJvbHNTZWVrQmFja0J1dHRvbjsbW20KICAgICAgICAgZWxlbWVudCA9IHRydWU7G1tt
ChtbMzZtQEAgLTI2NSw2ICsyNzAsOSBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRv
VHlwZSgpIGNvbnN0G1ttCiAgICAgfSBlbHNlIGlmIChtX3ZhbHVlID09IG1lZGlhQ29udHJvbHNU
aW1lbGluZUNvbnRhaW5lcikgextbbQogICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9NZWRp
YUNvbnRyb2xzVGltZWxpbmVDb250YWluZXI7G1ttCiAgICAgICAgIGVsZW1lbnQgPSB0cnVlOxtb
bQobWzMybSsbW20bWzMybSAgICB9IGVsc2UgaWYgKG1fdmFsdWUgPT0gbWVkaWFDb250cm9sc1Zv
bHVtZVNsaWRlckNvbnRhaW5lcikgextbbQobWzMybSsbW20bWzMybSAgICAgICAgbV9wc2V1ZG9U
eXBlID0gUHNldWRvTWVkaWFDb250cm9sc1ZvbHVtZVNsaWRlckNvbnRhaW5lcjsbW20KG1szMm0r
G1ttG1szMm0gICAgICAgIGVsZW1lbnQgPSB0cnVlOxtbbQogICAgIH0gZWxzZSBpZiAobV92YWx1
ZSA9PSBub3RTdHIpG1ttCiAgICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb05vdDsbW20KICAg
ICBlbHNlIGlmIChtX3ZhbHVlID09IG50aENoaWxkKRtbbQobWzFtZGlmZiAtLWdpdCBhL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmggYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oG1ttChtbMW1p
bmRleCBhZmQwYTZmLi43ODM2MTM2IDEwMDY0NBtbbQobWzFtLS0tIGEvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuaBtbbQobWzFtKysrIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaBtbbQobWzM2
bUBAIC0xNzMsOSArMTczLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsbW20KICAgICAgICAgICAg
IFBzZXVkb01lZGlhQ29udHJvbHNNdXRlQnV0dG9uLBtbbQogICAgICAgICAgICAgUHNldWRvTWVk
aWFDb250cm9sc1BsYXlCdXR0b24sG1ttCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xz
VGltZWxpbmVDb250YWluZXIsG1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAgICAgUHNldWRvTWVk
aWFDb250cm9sc1ZvbHVtZVNsaWRlckNvbnRhaW5lciwbW20KICAgICAgICAgICAgIFBzZXVkb01l
ZGlhQ29udHJvbHNDdXJyZW50VGltZURpc3BsYXksG1ttCiAgICAgICAgICAgICBQc2V1ZG9NZWRp
YUNvbnRyb2xzVGltZVJlbWFpbmluZ0Rpc3BsYXksG1ttCiAgICAgICAgICAgICBQc2V1ZG9NZWRp
YUNvbnRyb2xzVGltZWxpbmUsG1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAgICAgUHNldWRvTWVk
aWFDb250cm9sc1ZvbHVtZVNsaWRlciwbW20KICAgICAgICAgICAgIFBzZXVkb01lZGlhQ29udHJv
bHNTZWVrQmFja0J1dHRvbiwbW20KICAgICAgICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNTZWVr
Rm9yd2FyZEJ1dHRvbiwbW20KICAgICAgICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNSZXdpbmRC
dXR0b24sG1ttChtbMW1kaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcBtbbQobWzFtaW5kZXggMWRlZGU0
OS4uYmVjOTFjNCAxMDA2NDQbW20KG1sxbS0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwG1ttChtbMW0rKysgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcBtbbQob
WzM2bUBAIC0yNTA3LDcgKzI1MDcsMTAgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpTZWxlY3Rv
ckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbCwgRWxlbWUbW20KICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsbW20KICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb01lZGlhQ29udHJvbHNUaW1lbGluZUNvbnRhaW5lcjobW20KICAgICAgICAgICAg
ICAgICBkeW5hbWljUHNldWRvID0gTUVESUFfQ09OVFJPTFNfVElNRUxJTkVfQ09OVEFJTkVSOxtb
bQobWzMxbS0gICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOxtbbQobWzMybSsbW20bWzMybSAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsbW20KG1szMm0rG1ttG1szMm0gICAgICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyQ29udGFpbmVy
OhtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAgICAgICBkeW5hbWljUHNldWRvID0gTUVESUFf
Q09OVFJPTFNfVk9MVU1FX1NMSURFUl9DT05UQUlORVI7G1ttChtbMzJtKxtbbRtbMzJtICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOxtbbQogICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvTWVkaWFDb250cm9sc0N1cnJlbnRUaW1lRGlzcGxheTobW20KICAgICAgICAgICAgICAg
ICBkeW5hbWljUHNldWRvID0gTUVESUFfQ09OVFJPTFNfQ1VSUkVOVF9USU1FX0RJU1BMQVk7G1tt
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7G1ttChtbMzZtQEAgLTI1MTcsNiArMjUyMCw5
IEBAIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVj
dG9yKENTU1NlbGVjdG9yKiBzZWwsIEVsZW1lG1ttCiAgICAgICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmU6G1ttCiAgICAgICAgICAgICAgICAgZHlu
YW1pY1BzZXVkbyA9IE1FRElBX0NPTlRST0xTX1RJTUVMSU5FOxtbbQogICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOxtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXI6G1ttChtbMzJtKxtbbRtbMzJtICAg
ICAgICAgICAgICAgIGR5bmFtaWNQc2V1ZG8gPSBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVS
OxtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsbW20KICAgICAg
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb01lZGlhQ29udHJvbHNTZWVrQmFja0J1dHRv
bjobW20KICAgICAgICAgICAgICAgICBkeW5hbWljUHNldWRvID0gTUVESUFfQ09OVFJPTFNfU0VF
S19CQUNLX0JVVFRPTjsbW20KICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsbW20KG1sxbWRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbhtbbQobWzFtaW5kZXggNjIxMjc2Yi4uNTNjNjY5MCAxMDA2NDQb
W20KG1sxbS0tLSBhL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4bW20KG1sxbSsrKyBi
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4bW20KG1szNm1AQCAtNTEwLDYgKzUxMCw5
IEBAIG1lZGlhLXJld2luZC1idXR0b24bW20KIG1lZGlhLXJldHVybi10by1yZWFsdGltZS1idXR0
b24bW20KIG1lZGlhLXNsaWRlchtbbQogbWVkaWEtc2xpZGVydGh1bWIbW20KG1szMm0rG1ttG1sz
Mm1tZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lchtbbQobWzMybSsbW20bWzMybW1lZGlhLXZv
bHVtZS1zbGlkZXIbW20KG1szMm0rG1ttG1szMm1tZWRpYS12b2x1bWUtc2xpZGVydGh1bWIbW20K
IG1lZGlhLWNvbnRyb2xzLWJhY2tncm91bmQbW20KIG1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5
G1ttCiBtZWRpYS10aW1lLXJlbWFpbmluZy1kaXNwbGF5G1ttChtbMW1kaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MgYi9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNz
cxtbbQobWzFtaW5kZXggZjk2OTRmOC4uZDBlYzkwZCAxMDA2NDQbW20KG1sxbS0tLSBhL1dlYkNv
cmUvY3NzL21lZGlhQ29udHJvbHMuY3NzG1ttChtbMW0rKysgYi9XZWJDb3JlL2Nzcy9tZWRpYUNv
bnRyb2xzLmNzcxtbbQobWzM2bUBAIC04OCw2ICs4OCwxNCBAQCBhdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy10aW1lbGluZSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxp
bmUgextbbQogICAgIHBhZGRpbmc6IDBweCAycHg7G1ttCiB9G1ttCiAbW20KG1szMm0rG1ttG1sz
Mm1hdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciwg
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIgextb
bQobWzMybSsbW20bWzMybSAgICBkaXNwbGF5OiBub25lOxtbbQobWzMybSsbW20bWzMybX0bW20K
G1szMm0rG1ttChtbMzJtKxtbbRtbMzJtYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9s
dW1lLXNsaWRlciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciB7
G1ttChtbMzJtKxtbbRtbMzJtICAgIGRpc3BsYXk6IG5vbmU7G1ttChtbMzJtKxtbbRtbMzJtfRtb
bQobWzMybSsbW20KIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0
b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24gextbbQog
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2Vlay1iYWNrLWJ1dHRvbjsbW20KICAgICBk
aXNwbGF5OiAtd2Via2l0LWJveDsbW20KG1sxbWRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9tZWRp
YUNvbnRyb2xzQ2hyb21pdW0uY3NzIGIvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVt
LmNzcxtbbQobWzFtaW5kZXggNmZkYTYxYy4uY2EzNTQxNSAxMDA2NDQbW20KG1sxbS0tLSBhL1dl
YkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MbW20KG1sxbSsrKyBiL1dlYkNvcmUv
Y3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MbW20KG1szNm1AQCAtMzcsNiArMzcsNyBAQCBh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCwgdmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtcGFuZWwgextbbQogICAgIHdpZHRoOiAxMDAlOxtbbQogICAgIGhlaWdodDogMzJw
eDsbW20KICAgICB6LWluZGV4OiAwOxtbbQobWzMybSsbW20bWzMybSAgICBvdmVyZmxvdzogdmlz
aWJsZTsbW20KICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7G1ttCiB9
G1ttCiAbW20KG1szNm1AQCAtNDYsNyArNDcsNiBAQCB2aWRlbzotd2Via2l0LWZ1bGwtcGFnZS1t
ZWRpYTo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCB7G1ttCiAbW20KIGF1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1tdXRlLWJ1dHRvbiB7G1ttCiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1tdXRl
LWJ1dHRvbjsbW20KG1szMW0tG1ttCiAgICAgcG9zaXRpb246IGFic29sdXRlOxtbbQogICAgIHRv
cDogYXV0bzsbW20KICAgICBib3R0b206IDA7G1ttChtbMzZtQEAgLTE2NywzICsxNjcsMjggQEAg
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24sIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWYbW20KICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlh
LWZ1bGxzY3JlZW4tYnV0dG9uOxtbbQogICAgIGRpc3BsYXk6IG5vbmU7G1ttCiB9G1ttChtbMzJt
KxtbbQobWzMybSsbW20bWzMybWF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1z
bGlkZXItY29udGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xp
ZGVyLWNvbnRhaW5lciB7G1ttChtbMzJtKxtbbRtbMzJtICAgIC13ZWJraXQtYXBwZWFyYW5jZTog
bWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXI7G1ttChtbMzJtKxtbbRtbMzJtICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsbW20KG1szMm0rG1ttG1szMm0gICAgZGlzcGxheTogYmxvY2s7G1ttChtb
MzJtKxtbbQobWzMybSsbW20bWzMybSAgICB3aWR0aDogMzRweDsbW20KG1szMm0rG1ttG1szMm0g
ICAgaGVpZ2h0OiAxMDBweDsbW20KG1szMm0rG1ttChtbMzJtKxtbbRtbMzJtICAgIGJhY2tncm91
bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsbW20KG1szMm0rG1ttG1szMm19G1ttChtbMzJt
KxtbbQobWzMybSsbW20bWzMybWF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1z
bGlkZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIgextbbQob
WzMybSsbW20bWzMybSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlkZXI7
G1ttChtbMzJtKxtbbRtbMzJtICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsbW20KG1szMm0rG1ttG1sz
Mm0gICAgZGlzcGxheTogaW5saW5lOxtbbQobWzMybSsbW20KG1szMm0rG1ttG1szMm0gICAgdG9w
OiAxMHB4OxtbbQobWzMybSsbW20bWzMybSAgICBib3R0b206IGF1dG87G1ttChtbMzJtKxtbbRtb
MzJtICAgIGxlZnQ6IDEycHg7G1ttChtbMzJtKxtbbRtbMzJtICAgIHJpZ2h0OiBhdXRvOxtbbRtb
NDFtICAgG1ttChtbMzJtKxtbbQobWzMybSsbW20bWzMybSAgICB3aWR0aDogMTBweDsbW20KG1sz
Mm0rG1ttG1szMm0gICAgaGVpZ2h0OiA4MHB4OxtbbQobWzMybSsbW20bWzMybX0bW20KG1sxbWRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vVGhlbWVUeXBlcy5oG1ttChtbMW1pbmRleCBiNzYzNjc1Li4zYWI0MWRkIDEwMDY0NBtbbQob
WzFtLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgbW20KG1sxbSsrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oG1ttChtbMzZtQEAgLTQ5LDkgKzQ5LDggQEAgZW51bSBD
b250cm9sUGFydCB7G1ttCiAgICAgQnV0dG9uQmV2ZWxQYXJ0LCBEZWZhdWx0QnV0dG9uUGFydCwg
TGlzdGJveFBhcnQsIExpc3RJdGVtUGFydCwgG1ttCiAgICAgTWVkaWFGdWxsc2NyZWVuQnV0dG9u
UGFydCwgTWVkaWFNdXRlQnV0dG9uUGFydCwgTWVkaWFQbGF5QnV0dG9uUGFydCwgTWVkaWFTZWVr
QmFja0J1dHRvblBhcnQsIBtbbQogICAgIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0LCBNZWRp
YVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQsG1ttChtb
MzFtLSAgICBNZWRpYVNsaWRlclBhcnQsG1ttChtbMzFtLSAgICBNZWRpYVNsaWRlclRodW1iUGFy
dCwgTWVkaWFDb250cm9sc0JhY2tncm91bmRQYXJ0LBtbbQobWzMxbS0gICAgTWVkaWFDdXJyZW50
VGltZVBhcnQsIE1lZGlhVGltZVJlbWFpbmluZ1BhcnQsG1ttChtbMzJtKxtbbRtbMzJtICAgIE1l
ZGlhU2xpZGVyUGFydCwgTWVkaWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyQ29u
dGFpbmVyUGFydCwgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclRodW1i
UGFydCwbW20KG1szMm0rG1ttG1szMm0gICAgTWVkaWFDb250cm9sc0JhY2tncm91bmRQYXJ0LCBN
ZWRpYUN1cnJlbnRUaW1lUGFydCwgTWVkaWFUaW1lUmVtYWluaW5nUGFydCwbW20KICAgICBNZW51
bGlzdFBhcnQsIE1lbnVsaXN0QnV0dG9uUGFydCwgTWVudWxpc3RUZXh0UGFydCwgTWVudWxpc3RU
ZXh0RmllbGRQYXJ0LBtbbQogICAgIFNsaWRlckhvcml6b250YWxQYXJ0LCBTbGlkZXJWZXJ0aWNh
bFBhcnQsIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQsG1ttCiAgICAgU2xpZGVyVGh1bWJWZXJ0
aWNhbFBhcnQsIENhcmV0UGFydCwgU2VhcmNoRmllbGRQYXJ0LCBTZWFyY2hGaWVsZERlY29yYXRp
b25QYXJ0LBtbbQobWzFtZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cBtbbQobWzFtaW5kZXggMGU1ODg0Yi4uOWY4NmZkOCAxMDA2NDQbW20KG1sxbS0tLSBhL1dlYkNv
cmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcBtbbQobWzFtKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwG1ttChtbMzZtQEAgLTE4Myw3ICsx
ODMsNzAgQEAgYm9vbCBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OnJlbmRl
cmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxlKRtbbQogICAgIHJldHVybiAhaXNuYW4oZHVy
YXRpb24pICYmICFpc2luZihkdXJhdGlvbik7G1ttCiB9G1ttCiAbW20KG1szMW0tICAgIBtbbQob
WzMybSsbW20bWzMybS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0bW20KG1szMm0rG1tt
ChtbMzJtKxtbbRtbMzJtTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCogZG9jLCBI
VE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KRtbbQobWzMybSsbW20bWzMybSAgICA6IE1lZGlhQ29u
dHJvbEVsZW1lbnQoZG9jLCBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSX0NPTlRBSU5FUiwg
ZWxlbWVudCkbW20KG1szMm0rG1ttG1szMm0gICAgLCBtX2lzVmlzaWJsZShmYWxzZSkbW20KG1sz
Mm0rG1ttG1szMm0gICAgLCBtX3goMCkbW20KG1szMm0rG1ttG1szMm0gICAgLCBtX3koMCkbW20K
G1szMm0rG1ttG1szMm17G1ttChtbMzJtKxtbbRtbMzJtfRtbbQobWzMybSsbW20KG1szMm0rG1tt
G1szMm1QYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250
YWluZXJFbGVtZW50OjpzdHlsZUZvckVsZW1lbnQoKRtbbQobWzMybSsbW20bWzMybXsbW20KG1sz
Mm0rG1ttG1szMm0gICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IE1lZGlhQ29udHJvbEVs
ZW1lbnQ6OnN0eWxlRm9yRWxlbWVudCgpOxtbbQobWzMybSsbW20bWzMybSAgICBzdHlsZS0+c2V0
UG9zaXRpb24oQWJzb2x1dGVQb3NpdGlvbik7G1ttChtbMzJtKxtbbRtbMzJtICAgIHN0eWxlLT5z
ZXRMZWZ0KExlbmd0aChtX3gsIEZpeGVkKSk7G1ttChtbMzJtKxtbbRtbMzJtICAgIHN0eWxlLT5z
ZXRUb3AoTGVuZ3RoKG1feSwgRml4ZWQpKTsbW20KG1szMm0rG1ttChtbMzJtKxtbbRtbMzJtICAg
IGlmIChtX2lzVmlzaWJsZSkbW20KG1szMm0rG1ttG1szMm0gICAgICAgIHN0eWxlLT5zZXRWaXNp
YmlsaXR5KFZJU0lCTEUpOxtbbQobWzMybSsbW20bWzMybSAgICBlbHNlG1ttChtbMzJtKxtbbRtb
MzJtICAgICAgICBzdHlsZS0+c2V0VmlzaWJpbGl0eShXZWJDb3JlOjpISURERU4pOxtbbQobWzMy
bSsbW20bWzMybSAgICByZXR1cm4gc3R5bGU7G1ttChtbMzJtKxtbbRtbMzJtfRtbbQobWzMybSsb
W20KG1szMm0rG1ttG1szMm12b2lkIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ6OnNldFZpc2libGUoYm9vbCB2aXNpYmxlKRtbbQobWzMybSsbW20bWzMybXsbW20KG1sz
Mm0rG1ttG1szMm0gICAgaWYgKHZpc2libGUgPT0gbV9pc1Zpc2libGUpG1ttChtbMzJtKxtbbRtb
MzJtICAgICAgICByZXR1cm47G1ttChtbMzJtKxtbbRtbMzJtICAgIG1faXNWaXNpYmxlID0gdmlz
aWJsZTsbW20KG1szMm0rG1ttChtbMzJtKxtbbRtbMzJtICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMg
dXNlZCBkdXJpbmcgdGhlIFJlbmRlck1lZGlhOjpsYXlvdXQoKRtbbQobWzMybSsbW20bWzMybSAg
ICAvLyBjYWxsLCB3aGVyZSB3ZSBjYW5ub3QgY2hhbmdlIHRoZSByZW5kZXJlciBhdCB0aGlzIHRp
bWUuG1ttChtbMzJtKxtbbRtbMzJtICAgIGlmICghcmVuZGVyZXIoKSB8fCAhcmVuZGVyZXIoKS0+
c3R5bGUoKSkbW20KG1szMm0rG1ttG1szMm0gICAgICAgIHJldHVybjsbW20KG1szMm0rG1ttChtb
MzJtKxtbbRtbMzJtICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHlsZTo6
Y2xvbmUocmVuZGVyZXIoKS0+c3R5bGUoKSk7G1ttChtbMzJtKxtbbRtbMzJtICAgIGlmICh2aXNp
YmxlKRtbbQobWzMybSsbW20bWzMybSAgICAgICAgc3R5bGUtPnNldFZpc2liaWxpdHkoVklTSUJM
RSk7G1ttChtbMzJtKxtbbRtbMzJtICAgIGVsc2UbW20KG1szMm0rG1ttG1szMm0gICAgICAgIHN0
eWxlLT5zZXRWaXNpYmlsaXR5KFdlYkNvcmU6OkhJRERFTik7G1ttChtbMzJtKxtbbRtbMzJtICAg
IHJlbmRlcmVyKCktPnNldFN0eWxlKHN0eWxlLmdldCgpKTsbW20KG1szMm0rG1ttG1szMm19G1tt
ChtbMzJtKxtbbQobWzMybSsbW20bWzMybXZvaWQgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29u
dGFpbmVyRWxlbWVudDo6c2V0UG9zaXRpb24oaW50IHgsIGludCB5KRtbbQobWzMybSsbW20bWzMy
bXsbW20KG1szMm0rG1ttG1szMm0gICAgaWYgKHggPT0gbV94ICYmIHkgPT0gbV95KRtbbQobWzMy
bSsbW20bWzMybSAgICAgICAgcmV0dXJuOxtbbQobWzMybSsbW20bWzMybSAgICBtX3ggPSB4Oxtb
bQobWzMybSsbW20bWzMybSAgICBtX3kgPSB5OxtbbQobWzMybSsbW20KG1szMm0rG1ttG1szMm0g
ICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJl
cigpLT5zdHlsZSgpKTsbW20KG1szMm0rG1ttG1szMm0gICAgc3R5bGUtPnNldExlZnQoTGVuZ3Ro
KHgsIEZpeGVkKSk7G1ttChtbMzJtKxtbbRtbMzJtICAgIHN0eWxlLT5zZXRUb3AoTGVuZ3RoKHks
IEZpeGVkKSk7G1ttChtbMzJtKxtbbRtbMzJtICAgIHJlbmRlcmVyKCktPnNldFN0eWxlKHN0eWxl
LmdldCgpKTsbW20KG1szMm0rG1ttG1szMm19G1ttChtbMzJtKxtbbQobWzMybSsbW20bWzMybWJv
b2wgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6aGl0VGVzdChjb25z
dCBJbnRQb2ludCYgYWJzUG9pbnQpG1ttChtbMzJtKxtbbRtbMzJtextbbQobWzMybSsbW20bWzMy
bSAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNBcHBlYXJhbmNl
KCkpG1ttChtbMzJtKxtbbRtbMzJtICAgICAgICByZXR1cm4gcmVuZGVyZXIoKS0+dGhlbWUoKS0+
aGl0VGVzdE1lZGlhQ29udHJvbFBhcnQocmVuZGVyZXIoKSwgYWJzUG9pbnQpOxtbbQobWzMybSsb
W20KG1szMm0rG1ttG1szMm0gICAgcmV0dXJuIGZhbHNlOxtbbQobWzMybSsbW20bWzMybX0bW20K
G1szMm0rG1ttCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tG1ttCiAbW20KIE1lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQpG1ttChtb
MzZtQEAgLTI1OCw3ICszMjEsOCBAQCB2b2lkIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6dXBk
YXRlKCkbW20KIBtbbQogUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTWVkaWFDb250cm9sSW5wdXRF
bGVtZW50OjpzdHlsZUZvckVsZW1lbnQoKRtbbQogextbbQobWzMxbS0gICAgcmV0dXJuIG1fbWVk
aWFFbGVtZW50LT5yZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShtX3BzZXVkb1N0eWxl
SWQpOxtbbQobWzMybSsbW20bWzMybSAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9
IG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShtX3BzZXVk
b1N0eWxlSWQpOxtbbQobWzMybSsbW20bWzMybSAgICByZXR1cm4gc3R5bGU7G1ttCiB9G1ttCiAb
W20KIGJvb2wgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRl
clN0eWxlKiBzdHlsZSkbW20KG1szNm1AQCAtNTI4LDYgKzU5MiwzNyBAQCB2b2lkIE1lZGlhQ29u
dHJvbFRpbWVsaW5lRWxlbWVudDo6dXBkYXRlKGJvb2wgdXBkYXRlRHVyYXRpb24pG1ttCiAbW20K
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0bW20KIBtbbQobWzMybSsbW20bWzMybU1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVs
ZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KRtbbQob
WzMybSsbW20bWzMybSAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgTUVE
SUFfQ09OVFJPTFNfVk9MVU1FX1NMSURFUiwgInJhbmdlIiwgZWxlbWVudCwgTWVkaWFWb2x1bWVT
bGlkZXIpG1ttChtbMzJtKxtbbRtbMzJtextbbQobWzMybSsbW20bWzMybSAgICBzZXRBdHRyaWJ1
dGUobWF4QXR0ciwgU3RyaW5nOjpudW1iZXIoMSkpOxtbbQobWzMybSsbW20bWzMybX0bW20KG1sz
Mm0rG1ttChtbMzJtKxtbbRtbMzJtdm9pZCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkbW20KG1szMm0rG1ttG1szMm17G1tt
ChtbMzJtKxtbbRtbMzJtICAgIC8vIExlZnQgYnV0dG9uIGlzIDAuIFJlamVjdHMgbW91c2UgZXZl
bnRzIG5vdCBmcm9tIGxlZnQgYnV0dG9uLhtbbQobWzMybSsbW20bWzMybSAgICBpZiAoZXZlbnQt
PmlzTW91c2VFdmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRv
bigpKRtbbQobWzMybSsbW20bWzMybSAgICAgICAgcmV0dXJuOxtbbQobWzMybSsbW20KG1szMm0r
G1ttG1szMm0gICAgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVy
KGV2ZW50KTsbW20KG1szMm0rG1ttChtbMzJtKxtbbRtbMzJtICAgIGlmIChldmVudC0+dHlwZSgp
ID09IGV2ZW50TmFtZXMoKS5tb3VzZW92ZXJFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5tb3VzZW91dEV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1v
dXNlbW92ZUV2ZW50KRtbbQobWzMybSsbW20bWzMybSAgICAgICAgcmV0dXJuOxtbbQobWzMybSsb
W20KG1szMm0rG1ttG1szMm0gICAgZmxvYXQgdm9sdW1lID0gbmFycm93UHJlY2lzaW9uVG9GbG9h
dCh2YWx1ZSgpLnRvRG91YmxlKCkpOxtbbQobWzMybSsbW20bWzMybSAgICBpZiAodm9sdW1lICE9
IG1fbWVkaWFFbGVtZW50LT52b2x1bWUoKSkgextbbQobWzMybSsbW20bWzMybSAgICAgICAgRXhj
ZXB0aW9uQ29kZSBlYzsbW20KG1szMm0rG1ttG1szMm0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5z
ZXRWb2x1bWUodm9sdW1lLCBlYyk7G1ttChtbMzJtKxtbbRtbMzJtICAgIH0bW20KG1szMm0rG1tt
G1szMm19G1ttChtbMzJtKxtbbQobWzMybSsbW20bWzMybWJvb2wgTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSogc3R5bGUpG1ttChtb
MzJtKxtbbRtbMzJtextbbQobWzMybSsbW20bWzMybSAgICByZXR1cm4gTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKSAmJiBwYXJlbnQoKSAmJiBwYXJlbnQo
KS0+cmVuZGVyZXIoKSAmJiBwYXJlbnQoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+dmlzaWJpbGl0
eSgpID09IFZJU0lCTEU7G1ttChtbMzJtKxtbbRtbMzJtfRtbbQobWzMybSsbW20KG1szMm0rG1tt
G1szMm0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tG1ttChtbMzJtKxtbbQogTWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0
b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCkb
W20KICAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgTUVESUFfQ09OVFJP
TFNfRlVMTFNDUkVFTl9CVVRUT04sICJidXR0b24iLCBlbGVtZW50LCBNZWRpYUZ1bGxzY3JlZW5C
dXR0b24pG1ttCiB7G1ttChtbMzZtQEAgLTU4MCw2ICs2NzUsNSBAQCB2b2lkIE1lZGlhQ29udHJv
bFRpbWVEaXNwbGF5RWxlbWVudDo6c2V0VmlzaWJsZShib29sIHZpc2libGUpG1ttCiAgICAgcmVu
ZGVyZXIoKS0+c2V0U3R5bGUoc3R5bGUuZ2V0KCkpOxtbbQogfRtbbQogG1ttChtbMzFtLRtbbQog
fSAvL25hbWVzcGFjZSBXZWJDb3JlG1ttCiAjZW5kaWYgLy8gZW5hYmxlKHZpZGVvKRtbbQobWzFt
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmggYi9X
ZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oG1ttChtbMW1pbmRleCA5NTM0
OGIyLi44NjNjYWVhIDEwMDY0NBtbbQobWzFtLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFD
b250cm9sRWxlbWVudHMuaBtbbQobWzFtKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250
cm9sRWxlbWVudHMuaBtbbQobWzM2bUBAIC01NywxMCArNTcsMTMgQEAgZW51bSBNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZSB7G1ttCiAgICAgTWVkaWFVbk11dGVCdXR0b24sG1ttCiAgICAgTWVkaWFQ
YXVzZUJ1dHRvbiwbW20KICAgICBNZWRpYVRpbWVsaW5lQ29udGFpbmVyLBtbbQobWzMxbS0gICAg
TWVkaWFDdXJyZW50VGltZURpc3BsYXksIBtbbQobWzMybSsbW20bWzMybSAgICBNZWRpYUN1cnJl
bnRUaW1lRGlzcGxheSwbW20KICAgICBNZWRpYVRpbWVSZW1haW5pbmdEaXNwbGF5LBtbbQogICAg
IE1lZGlhU3RhdHVzRGlzcGxheSwbW20KG1szMW0tICAgIE1lZGlhQ29udHJvbHNQYW5lbBtbbQob
WzMybSsbW20bWzMybSAgICBNZWRpYUNvbnRyb2xzUGFuZWwsG1ttChtbMzJtKxtbbRtbMzJtICAg
IE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyLBtbbQobWzMybSsbW20bWzMybSAgICBNZWRpYVZv
bHVtZVNsaWRlciwbW20KG1szMm0rG1ttG1szMm0gICAgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYhtb
bQogfTsbW20KIBtbbQogY2xhc3MgTWVkaWFDb250cm9sU2hhZG93Um9vdEVsZW1lbnQgOiBwdWJs
aWMgSFRNTERpdkVsZW1lbnQgextbbQobWzM2bUBAIC0xMDQsNiArMTA3LDIyIEBAIHB1YmxpYzob
W20KIBtbbQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLRtbbQogG1ttChtbMzJtKxtb
bRtbMzJtY2xhc3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudCA6IHB1
YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50IHsbW20KG1szMm0rG1ttG1szMm1wdWJsaWM6G1ttChtb
MzJtKxtbbRtbMzJtICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQo
RG9jdW1lbnQqLCBIVE1MTWVkaWFFbGVtZW50Kik7G1ttChtbMzJtKxtbbRtbMzJtICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JFbGVtZW50KCk7G1ttChtbMzJtKxtb
bRtbMzJtICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsbW20KG1szMm0rG1ttG1szMm0gICAgYm9v
bCBpc1Zpc2libGUoKSB7IHJldHVybiBtX2lzVmlzaWJsZTsgfRtbbQobWzMybSsbW20bWzMybSAg
ICB2b2lkIHNldFBvc2l0aW9uKGludCB4LCBpbnQgeSk7G1ttChtbMzJtKxtbbRtbMzJtICAgIGJv
b2wgaGl0VGVzdChjb25zdCBJbnRQb2ludCYgYWJzUG9pbnQpOxtbbQobWzMybSsbW20KG1szMm0r
G1ttG1szMm1wcml2YXRlOhtbbQobWzMybSsbW20bWzMybSAgICBib29sIG1faXNWaXNpYmxlOxtb
bQobWzMybSsbW20bWzMybSAgICBpbnQgbV94LCBtX3k7G1ttChtbMzJtKxtbbRtbMzJtfTsbW20K
G1szMm0rG1ttChtbMzJtKxtbbRtbMzJtLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLRtb
bQobWzMybSsbW20KIGNsYXNzIE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50IDogcHVi
bGljIE1lZGlhQ29udHJvbEVsZW1lbnQgextbbQogcHVibGljOhtbbQogICAgIE1lZGlhQ29udHJv
bFN0YXR1c0Rpc3BsYXlFbGVtZW50KERvY3VtZW50KiwgSFRNTE1lZGlhRWxlbWVudCopOxtbbQob
WzM2bUBAIC0yMDcsNiArMjI2LDE1IEBAIHB1YmxpYzobW20KIBtbbQogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLRtbbQogG1ttChtbMzJtKxtbbRtbMzJtY2xhc3MgTWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgextb
bQobWzMybSsbW20bWzMybXB1YmxpYzobW20KG1szMm0rG1ttG1szMm0gICAgTWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyRWxlbWVudChEb2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQqKTsbW20KG1sz
Mm0rG1ttG1szMm0gICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsb
W20KG1szMm0rG1ttG1szMm0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVy
U3R5bGUqKTsbW20KG1szMm0rG1ttG1szMm19OxtbbQobWzMybSsbW20KG1szMm0rG1ttG1szMm0v
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tG1ttChtbMzJtKxtbbQogY2xhc3MgTWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRF
bGVtZW50IHsbW20KIHB1YmxpYzobW20KICAgICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9u
RWxlbWVudChEb2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQqKTsbW20KG1sxbWRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZWRpYS5jcHAbW20KG1sxbWluZGV4IGI4N2U5OWQuLmJkYWI1MWMgMTAwNjQ0G1ttChtb
MW0tLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAbW20KG1sxbSsrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcBtbbQobWzM2bUBAIC0zMyw2ICszMyw3IEBA
G1ttCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiG1ttCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sRWxl
bWVudHMuaCIbW20KICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiG1ttChtbMzJtKxtbbRtbMzJtI2lu
Y2x1ZGUgIlJlbmRlclRoZW1lLmgiG1ttCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+G1tt
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4bW20KIBtbbQobWzM2bUBAIC0xMzIsNiArMTMz
LDEwIEBAIHZvaWQgUmVuZGVyTWVkaWE6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBk
aWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5G1ttCiAgICAgICAgICAgICBtX2N1cnJlbnRU
aW1lRGlzcGxheS0+dXBkYXRlU3R5bGUoKTsbW20KICAgICAgICAgaWYgKG1fdGltZVJlbWFpbmlu
Z0Rpc3BsYXkpG1ttCiAgICAgICAgICAgICBtX3RpbWVSZW1haW5pbmdEaXNwbGF5LT51cGRhdGVT
dHlsZSgpOxtbbQobWzMybSsbW20bWzMybSAgICAgICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29udGFp
bmVyKRtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVy
LT51cGRhdGVTdHlsZSgpOxtbbQobWzMybSsbW20bWzMybSAgICAgICAgaWYgKG1fdm9sdW1lU2xp
ZGVyKRtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAgIG1fdm9sdW1lU2xpZGVyLT51cGRhdGVT
dHlsZSgpOxtbbQogICAgIH0bW20KIH0bW20KIBtbbQobWzM2bUBAIC0yNDAsNiArMjQ1LDIxIEBA
IHZvaWQgUmVuZGVyTWVkaWE6OmNyZWF0ZVRpbWVsaW5lKCkbW20KICAgICBtX3RpbWVsaW5lLT5h
dHRhY2hUb1BhcmVudChtX3RpbWVsaW5lQ29udGFpbmVyLmdldCgpKTsbW20KIH0bW20KIBtbbQob
WzMybSsbW20bWzMybXZvaWQgUmVuZGVyTWVkaWE6OmNyZWF0ZVZvbHVtZVNsaWRlckNvbnRhaW5l
cigpG1ttChtbMzJtKxtbbRtbMzJtextbbQobWzMybSsbW20bWzMybSAgICBBU1NFUlQoIW1fdm9s
dW1lU2xpZGVyQ29udGFpbmVyKTsbW20KG1szMm0rG1ttG1szMm0gICAgbV92b2x1bWVTbGlkZXJD
b250YWluZXIgPSBuZXcgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudChk
b2N1bWVudCgpLCBtZWRpYUVsZW1lbnQoKSk7G1ttChtbMzJtKxtbbRtbMzJtICAgIG1fdm9sdW1l
U2xpZGVyQ29udGFpbmVyLT5hdHRhY2hUb1BhcmVudChtX3BhbmVsLmdldCgpKTsbW20KG1szMm0r
G1ttG1szMm19G1ttChtbMzJtKxtbbQobWzMybSsbW20bWzMybXZvaWQgUmVuZGVyTWVkaWE6OmNy
ZWF0ZVZvbHVtZVNsaWRlcigpG1ttChtbMzJtKxtbbRtbMzJtextbbQobWzMybSsbW20bWzMybSAg
ICBBU1NFUlQoIW1fdm9sdW1lU2xpZGVyKTsbW20KG1szMm0rG1ttG1szMm0gICAgbV92b2x1bWVT
bGlkZXIgPSBuZXcgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudChkb2N1bWVudCgpLCBt
ZWRpYUVsZW1lbnQoKSk7G1ttChtbMzJtKxtbbRtbMzJtICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRB
dHRyaWJ1dGUocHJlY2lzaW9uQXR0ciwgImZsb2F0Iik7G1ttChtbMzJtKxtbbRtbMzJtICAgIG1f
dm9sdW1lU2xpZGVyLT5hdHRhY2hUb1BhcmVudChtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci5nZXQo
KSk7G1ttChtbMzJtKxtbbRtbMzJtfRtbbQobWzMybSsbW20KIHZvaWQgUmVuZGVyTWVkaWE6OmNy
ZWF0ZUN1cnJlbnRUaW1lRGlzcGxheSgpG1ttCiB7G1ttCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRU
aW1lRGlzcGxheSk7G1ttChtbMzZtQEAgLTI2MCwxMiArMjgwLDEyIEBAIHZvaWQgUmVuZGVyTWVk
aWE6OmNyZWF0ZUZ1bGxzY3JlZW5CdXR0b24oKRtbbQogICAgIG1fZnVsbHNjcmVlbkJ1dHRvbiA9
IG5ldyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudChkb2N1bWVudCgpLCBtZWRp
YUVsZW1lbnQoKSk7G1ttCiAgICAgbV9mdWxsc2NyZWVuQnV0dG9uLT5hdHRhY2hUb1BhcmVudCht
X3BhbmVsLmdldCgpKTsbW20KIH0bW20KG1szMW0tICAgIBtbbQobWzMybSsbW20KIHZvaWQgUmVu
ZGVyTWVkaWE6OnVwZGF0ZUZyb21FbGVtZW50KCkbW20KIHsbW20KICAgICB1cGRhdGVDb250cm9s
cygpOxtbbQogfRtbbQobWzMxbS0gICAgICAgICAgICAbW20KG1szMm0rG1ttCiB2b2lkIFJlbmRl
ck1lZGlhOjp1cGRhdGVDb250cm9scygpG1ttCiB7G1ttCiAgICAgSFRNTE1lZGlhRWxlbWVudCog
bWVkaWEgPSBtZWRpYUVsZW1lbnQoKTsbW20KG1szNm1AQCAtMjg1LDYgKzMwNSw4IEBAIHZvaWQg
UmVuZGVyTWVkaWE6OnVwZGF0ZUNvbnRyb2xzKCkbW20KICAgICAgICAgICAgIG1fY3VycmVudFRp
bWVEaXNwbGF5ID0gMDsbW20KICAgICAgICAgICAgIG1fdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSAw
OxtbbQogICAgICAgICAgICAgbV9mdWxsc2NyZWVuQnV0dG9uID0gMDsbW20KG1szMm0rG1ttG1sz
Mm0gICAgICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9IDA7G1ttChtbMzJtKxtbbRtb
MzJtICAgICAgICAgICAgbV92b2x1bWVTbGlkZXIgPSAwOxtbbQogICAgICAgICAgICAgbV9jb250
cm9sc1NoYWRvd1Jvb3QgPSAwOxtbbQogICAgICAgICB9G1ttCiAgICAgICAgIG1fb3BhY2l0eUFu
aW1hdGlvblRvID0gMS4wZjsbW20KG1szNm1AQCAtMjkyLDcgKzMxNCw3IEBAIHZvaWQgUmVuZGVy
TWVkaWE6OnVwZGF0ZUNvbnRyb2xzKCkbW20KICAgICAgICAgbV90aW1lVXBkYXRlVGltZXIuc3Rv
cCgpOxtbbQogICAgICAgICByZXR1cm47G1ttCiAgICAgfRtbbQobWzMxbS0gICAgG1ttChtbMzJt
KxtbbQogICAgIGlmICghbV9jb250cm9sc1NoYWRvd1Jvb3QpIHsbW20KICAgICAgICAgY3JlYXRl
Q29udHJvbHNTaGFkb3dSb290KCk7G1ttCiAgICAgICAgIGNyZWF0ZVBhbmVsKCk7G1ttChtbMzZt
QEAgLTMwMyw5ICszMjUsMTIgQEAgdm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbHMoKRtb
bQogICAgICAgICAgICAgY3JlYXRlUmV0dXJuVG9SZWFsdGltZUJ1dHRvbigpOxtbbQogICAgICAg
ICAgICAgY3JlYXRlU3RhdHVzRGlzcGxheSgpOxtbbQogICAgICAgICAgICAgY3JlYXRlVGltZWxp
bmVDb250YWluZXIoKTsbW20KG1szMm0rG1ttG1szMm0gICAgICAgICAgICBjcmVhdGVWb2x1bWVT
bGlkZXJDb250YWluZXIoKTsbW20KICAgICAgICAgICAgIGNyZWF0ZVNlZWtCYWNrQnV0dG9uKCk7
G1ttCiAgICAgICAgICAgICBjcmVhdGVTZWVrRm9yd2FyZEJ1dHRvbigpOxtbbQogICAgICAgICAg
ICAgY3JlYXRlRnVsbHNjcmVlbkJ1dHRvbigpOxtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAg
IGlmIChtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcikbW20KG1szMm0rG1ttG1szMm0gICAgICAgICAg
ICAgICAgY3JlYXRlVm9sdW1lU2xpZGVyKCk7G1ttCiAgICAgICAgICAgICBpZiAobV90aW1lbGlu
ZUNvbnRhaW5lcikgextbbQogICAgICAgICAgICAgICAgIGNyZWF0ZUN1cnJlbnRUaW1lRGlzcGxh
eSgpOxtbbQogICAgICAgICAgICAgICAgIGNyZWF0ZVRpbWVsaW5lKCk7G1ttChtbMzZtQEAgLTMy
Miw3ICszNDcsNiBAQCB2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9scygpG1ttCiAgICAg
ICAgIG1fdGltZVVwZGF0ZVRpbWVyLnN0YXJ0UmVwZWF0aW5nKGNUaW1lVXBkYXRlUmVwZWF0RGVs
YXkpOxtbbQogICAgIH0bW20KIBtbbQobWzMxbS0gICAgG1ttCiAgICAgaWYgKG1fcGFuZWwpIHsb
W20KICAgICAgICAgLy8gdXBkYXRlKCkgbWlnaHQgYWx0ZXIgdGhlIG9wYWNpdHkgb2YgdGhlIGVs
ZW1lbnQsIGVzcGVjaWFsbHkgaWYgd2UgYXJlIGluIHRoZSBtaWRkbGUbW20KICAgICAgICAgLy8g
b2YgYW4gYW5pbWF0aW9uLiBUaGlzIGlzIHRoZSBvbmx5IGVsZW1lbnQgY29uY2VybmVkIGFzIHdl
IGFuaW1hdGUgb25seSB0aGlzIGVsZW1lbnQuG1ttChtbMzZtQEAgLTMzNiw2ICszNjAsOCBAQCB2
b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9scygpG1ttCiAgICAgICAgIG1fcGxheUJ1dHRv
bi0+dXBkYXRlKCk7G1ttCiAgICAgaWYgKG1fdGltZWxpbmVDb250YWluZXIpG1ttCiAgICAgICAg
IG1fdGltZWxpbmVDb250YWluZXItPnVwZGF0ZSgpOxtbbQobWzMybSsbW20bWzMybSAgICBpZiAo
bV92b2x1bWVTbGlkZXJDb250YWluZXIpG1ttChtbMzJtKxtbbRtbMzJtICAgICAgICBtX3ZvbHVt
ZVNsaWRlckNvbnRhaW5lci0+dXBkYXRlKCk7G1ttCiAgICAgaWYgKG1fdGltZWxpbmUpG1ttCiAg
ICAgICAgIG1fdGltZWxpbmUtPnVwZGF0ZSgpOxtbbQogICAgIGlmIChtX2N1cnJlbnRUaW1lRGlz
cGxheSkbW20KG1szNm1AQCAtMzU0LDYgKzM4MCw4IEBAIHZvaWQgUmVuZGVyTWVkaWE6OnVwZGF0
ZUNvbnRyb2xzKCkbW20KICAgICAgICAgbV9zdGF0dXNEaXNwbGF5LT51cGRhdGUoKTsbW20KICAg
ICBpZiAobV9mdWxsc2NyZWVuQnV0dG9uKRtbbQogICAgICAgICBtX2Z1bGxzY3JlZW5CdXR0b24t
PnVwZGF0ZSgpOxtbbQobWzMybSsbW20bWzMybSAgICBpZiAobV92b2x1bWVTbGlkZXIpG1ttChtb
MzJtKxtbbRtbMzJtICAgICAgICBtX3ZvbHVtZVNsaWRlci0+dXBkYXRlKCk7G1ttCiAbW20KICAg
ICB1cGRhdGVUaW1lRGlzcGxheSgpOxtbbQogICAgIHVwZGF0ZUNvbnRyb2xWaXNpYmlsaXR5KCk7
G1ttChtbMzZtQEAgLTM2NSwxMiArMzkzLDEyIEBAIHZvaWQgUmVuZGVyTWVkaWE6OnRpbWVVcGRh
dGVUaW1lckZpcmVkKFRpbWVyPFJlbmRlck1lZGlhPiopG1ttCiAgICAgICAgIG1fdGltZWxpbmUt
PnVwZGF0ZShmYWxzZSk7G1ttCiAgICAgdXBkYXRlVGltZURpc3BsYXkoKTsbW20KIH0bW20KG1sz
MW0tICAgIBtbbQobWzMybSsbW20KIFN0cmluZyBSZW5kZXJNZWRpYTo6Zm9ybWF0VGltZShmbG9h
dCB0aW1lKRtbbQogextbbQogICAgIGlmICghaXNmaW5pdGUodGltZSkpG1ttCiAgICAgICAgIHRp
bWUgPSAwOxtbbQobWzMxbS0gICAgaW50IHNlY29uZHMgPSAoaW50KWZhYnNmKHRpbWUpOyAbW20K
G1szMm0rG1ttG1szMm0gICAgaW50IHNlY29uZHMgPSAoaW50KWZhYnNmKHRpbWUpOxtbbQogICAg
IGludCBob3VycyA9IHNlY29uZHMgLyAoNjAgKiA2MCk7G1ttCiAgICAgaW50IG1pbnV0ZXMgPSAo
c2Vjb25kcyAvIDYwKSAlIDYwOxtbbQogICAgIHNlY29uZHMgJT0gNjA7G1ttChtbMzZtQEAgLTM5
NCwxMiArNDIyLDEyIEBAIHZvaWQgUmVuZGVyTWVkaWE6OnVwZGF0ZVRpbWVEaXNwbGF5KCkbW20K
ICAgICBTdHJpbmcgdGltZVN0cmluZyA9IGZvcm1hdFRpbWUobm93KTsbW20KICAgICBFeGNlcHRp
b25Db2RlIGVjOxtbbQogICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zZXRJbm5lclRleHQodGlt
ZVN0cmluZywgZWMpOxtbbQobWzMxbS0gICAgG1ttChtbMzJtKxtbbQogICAgIHRpbWVTdHJpbmcg
PSBmb3JtYXRUaW1lKG5vdyAtIGR1cmF0aW9uKTsbW20KICAgICBtX3RpbWVSZW1haW5pbmdEaXNw
bGF5LT5zZXRJbm5lclRleHQodGltZVN0cmluZywgZWMpOxtbbQogfRtbbQogG1ttChtbMzFtLXZv
aWQgUmVuZGVyTWVkaWE6OnVwZGF0ZUNvbnRyb2xWaXNpYmlsaXR5KCkgG1ttChtbMzJtKxtbbRtb
MzJtdm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbFZpc2liaWxpdHkoKRtbbQogextbbQog
ICAgIGlmICghbV9wYW5lbCB8fCAhbV9wYW5lbC0+cmVuZGVyZXIoKSkbW20KICAgICAgICAgcmV0
dXJuOxtbbQobWzM2bUBAIC00MTIsNyArNDQwLDcgQEAgdm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRl
Q29udHJvbFZpc2liaWxpdHkoKRtbbQogICAgIC8vIERvbid0IGZhZGUgaWYgdGhlIG1lZGlhIGVs
ZW1lbnQgaXMgbm90IHZpc2libGUbW20KICAgICBpZiAoc3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9
IFZJU0lCTEUpG1ttCiAgICAgICAgIHJldHVybjsbW20KG1szMW0tICAgIBtbbQobWzMybSsbW20K
ICAgICBib29sIHNob3VsZEhpZGVDb250cm9sbGVyID0gIW1fbW91c2VPdmVyICYmICFtZWRpYS0+
Y2FuUGxheSgpOxtbbQogG1ttCiAgICAgLy8gRG8gZmFkaW5nIG1hbnVhbGx5LCBjc3MgYW5pbWF0
aW9ucyBkb24ndCB3b3JrIHdpdGggc2hhZG93IHRyZWVzG1ttChtbMzZtQEAgLTQ0MCw4ICs0Njgs
OCBAQCB2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9sVmlzaWJpbGl0eSgpG1ttCiAgICAg
bV9vcGFjaXR5QW5pbWF0aW9uU3RhcnRUaW1lID0gY3VycmVudFRpbWUoKTsbW20KICAgICBtX29w
YWNpdHlBbmltYXRpb25UaW1lci5zdGFydFJlcGVhdGluZyhjT3BhY2l0eUFuaW1hdGlvblJlcGVh
dERlbGF5KTsbW20KIH0bW20KG1szMW0tICAgIBtbbQobWzMxbS12b2lkIFJlbmRlck1lZGlhOjpj
aGFuZ2VPcGFjaXR5KEhUTUxFbGVtZW50KiBlLCBmbG9hdCBvcGFjaXR5KSAbW20KG1szMm0rG1tt
ChtbMzJtKxtbbRtbMzJtdm9pZCBSZW5kZXJNZWRpYTo6Y2hhbmdlT3BhY2l0eShIVE1MRWxlbWVu
dCogZSwgZmxvYXQgb3BhY2l0eSkbW20KIHsbW20KICAgICBpZiAoIWUgfHwgIWUtPnJlbmRlcmVy
KCkgfHwgIWUtPnJlbmRlcmVyKCktPnN0eWxlKCkpG1ttCiAgICAgICAgIHJldHVybjsbW20KG1sz
Nm1AQCAtNDUxLDcgKzQ3OSw3IEBAIHZvaWQgUmVuZGVyTWVkaWE6OmNoYW5nZU9wYWNpdHkoSFRN
TEVsZW1lbnQqIGUsIGZsb2F0IG9wYWNpdHkpG1ttCiAgICAgcy0+c2V0WkluZGV4KDApOxtbbQog
ICAgIGUtPnJlbmRlcmVyKCktPnNldFN0eWxlKHMucmVsZWFzZSgpKTsbW20KIH0bW20KG1szMW0t
ICAgIBtbbQobWzMybSsbW20KIHZvaWQgUmVuZGVyTWVkaWE6Om9wYWNpdHlBbmltYXRpb25UaW1l
ckZpcmVkKFRpbWVyPFJlbmRlck1lZGlhPiopG1ttCiB7G1ttCiAgICAgZG91YmxlIHRpbWUgPSBj
dXJyZW50VGltZSgpIC0gbV9vcGFjaXR5QW5pbWF0aW9uU3RhcnRUaW1lOxtbbQobWzM2bUBAIC00
NjMsMTMgKzQ5MSw1MSBAQCB2b2lkIFJlbmRlck1lZGlhOjpvcGFjaXR5QW5pbWF0aW9uVGltZXJG
aXJlZChUaW1lcjxSZW5kZXJNZWRpYT4qKRtbbQogICAgIGNoYW5nZU9wYWNpdHkobV9wYW5lbC5n
ZXQoKSwgb3BhY2l0eSk7G1ttCiB9G1ttCiAbW20KG1szMm0rG1ttG1szMm12b2lkIFJlbmRlck1l
ZGlhOjp1cGRhdGVWb2x1bWVTbGlkZXJDb250YWluZXIoYm9vbCB2aXNpYmxlKSB7G1ttChtbMzJt
KxtbbRtbMzJtICAgIGlmICghbV92b2x1bWVTbGlkZXJDb250YWluZXIgfHwgIW1fdm9sdW1lU2xp
ZGVyQ29udGFpbmVyLT5yZW5kZXJlcigpIHx8IG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5yZW5k
ZXJlcigpLT5zdHlsZSgpLT5kaXNwbGF5KCkgPT0gTk9ORSkbW20KG1szMm0rG1ttG1szMm0gICAg
ICAgIHJldHVybjsbW20KG1szMm0rG1ttChtbMzJtKxtbbRtbMzJtICAgIGlmICh2aXNpYmxlICYm
ICFtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aXNWaXNpYmxlKCkpIHsbW20KG1szMm0rG1ttG1sz
Mm0gICAgICAgIGlmICghbV9tdXRlQnV0dG9uIHx8ICFtX211dGVCdXR0b24tPnJlbmRlcmVyKCkg
fHwgIW1fbXV0ZUJ1dHRvbi0+cmVuZGVyQm94KCkgfHwgIW1fdm9sdW1lU2xpZGVyQ29udGFpbmVy
LT5yZW5kZXJCb3goKSkbW20KG1szMm0rG1ttG1szMm0gICAgICAgICAgICByZXR1cm47G1ttChtb
MzJtKxtbbQobWzMybSsbW20bWzMybSAgICAgICAgaW50IHggPSBtX211dGVCdXR0b24tPnJlbmRl
ckJveCgpLT5vZmZzZXRMZWZ0KCk7G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICBpbnQgeSA9IG1f
bXV0ZUJ1dHRvbi0+cmVuZGVyQm94KCktPm9mZnNldFRvcCgpIC0gbV92b2x1bWVTbGlkZXJDb250
YWluZXItPnJlbmRlckJveCgpLT5oZWlnaHQoKTsbW20KG1szMm0rG1ttG1szMm0gICAgICAgIEZs
b2F0UG9pbnQgYWJzUG9pbnQgPSBtX211dGVCdXR0b24tPnJlbmRlcmVyKCktPmxvY2FsVG9BYnNv
bHV0ZShGbG9hdFBvaW50KHgsIHkpLCB0cnVlLCB0cnVlKTsbW20KG1szMm0rG1ttG1szMm0gICAg
ICAgIGlmIChhYnNQb2ludC55KCkgPCAwKRtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAgIHkg
PSBtX211dGVCdXR0b24tPnJlbmRlckJveCgpLT5vZmZzZXRUb3AoKSArIG1fbXV0ZUJ1dHRvbi0+
cmVuZGVyQm94KCktPmhlaWdodCgpOxtbbQobWzMybSsbW20bWzMybSAgICAgICAgbV92b2x1bWVT
bGlkZXJDb250YWluZXItPnNldFZpc2libGUodHJ1ZSk7G1ttChtbMzJtKxtbbRtbMzJtICAgICAg
ICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+c2V0UG9zaXRpb24oeCwgeSk7G1ttChtbMzJtKxtb
bRtbMzJtICAgICAgICBtX3ZvbHVtZVNsaWRlci0+dXBkYXRlU3R5bGUoKTsbW20KG1szMm0rG1tt
G1szMm0gICAgICAgIGlmIChtX3ZvbHVtZVNsaWRlci0+cmVuZGVyZXIoKSkbW20KG1szMm0rG1tt
G1szMm0gICAgICAgICAgICBtX3ZvbHVtZVNsaWRlci0+cmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVs
ZW1lbnQoKTsbW20KG1szMm0rG1ttG1szMm0gICAgfSBlbHNlIGlmICghdmlzaWJsZSkgextbbQob
WzMybSsbW20bWzMybSAgICAgICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPnNldFZpc2libGUo
ZmFsc2UpOxtbbQobWzMybSsbW20bWzMybSAgICAgICAgbV92b2x1bWVTbGlkZXItPnVwZGF0ZSgp
OxtbbQobWzMybSsbW20bWzMybSAgICB9G1ttChtbMzJtKxtbbRtbMzJtfRtbbQobWzMybSsbW20K
IHZvaWQgUmVuZGVyTWVkaWE6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpG1ttCiB7G1ttCiAg
ICAgaWYgKGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBtX2NvbnRyb2xzU2hhZG93Um9vdCkgextb
bQogICAgICAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVu
dCo+KGV2ZW50KTsbW20KICAgICAgICAgSW50UG9pbnQgcG9pbnQobW91c2VFdmVudC0+YWJzb2x1
dGVMb2NhdGlvbigpKTsbW20KG1szMW0tICAgICAgICBpZiAobV9tdXRlQnV0dG9uICYmIG1fbXV0
ZUJ1dHRvbi0+aGl0VGVzdChwb2ludCkpG1ttChtbMzJtKxtbbRtbMzJtICAgICAgICBib29sIHNo
b3dWb2x1bWVTbGlkZXIgPSBmYWxzZTsbW20KG1szMm0rG1ttG1szMm0gICAgICAgIGlmIChtX211
dGVCdXR0b24gJiYgbV9tdXRlQnV0dG9uLT5oaXRUZXN0KHBvaW50KSkgextbbQogICAgICAgICAg
ICAgbV9tdXRlQnV0dG9uLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsbW20KG1szMm0rG1tt
G1szMm0gICAgICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkubW91c2Vv
dXRFdmVudCkbW20KG1szMm0rG1ttG1szMm0gICAgICAgICAgICAgICAgc2hvd1ZvbHVtZVNsaWRl
ciA9IHRydWU7G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICB9G1ttChtbMzJtKxtbbQobWzMybSsb
W20bWzMybSAgICAgICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyICYmIG1fdm9sdW1lU2xp
ZGVyQ29udGFpbmVyLT5oaXRUZXN0KHBvaW50KSkbW20KG1szMm0rG1ttG1szMm0gICAgICAgICAg
ICBzaG93Vm9sdW1lU2xpZGVyID0gdHJ1ZTsbW20KG1szMm0rG1ttChtbMzJtKxtbbRtbMzJtICAg
ICAgICBpZiAobV92b2x1bWVTbGlkZXIgJiYgbV92b2x1bWVTbGlkZXItPmhpdFRlc3QocG9pbnQp
KSB7G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAgICAgbV92b2x1bWVTbGlkZXItPmRlZmF1bHRF
dmVudEhhbmRsZXIoZXZlbnQpOxtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAgIHNob3dWb2x1
bWVTbGlkZXIgPSB0cnVlOxtbbQobWzMybSsbW20bWzMybSAgICAgICAgfRtbbQobWzMybSsbW20K
G1szMm0rG1ttG1szMm0gICAgICAgIHVwZGF0ZVZvbHVtZVNsaWRlckNvbnRhaW5lcihzaG93Vm9s
dW1lU2xpZGVyKTsbW20KIBtbbQogICAgICAgICBpZiAobV9wbGF5QnV0dG9uICYmIG1fcGxheUJ1
dHRvbi0+aGl0VGVzdChwb2ludCkpG1ttCiAgICAgICAgICAgICBtX3BsYXlCdXR0b24tPmRlZmF1
bHRFdmVudEhhbmRsZXIoZXZlbnQpOxtbbQobWzM2bUBAIC00OTEsNyArNTU3LDcgQEAgdm9pZCBS
ZW5kZXJNZWRpYTo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBldmVudCkbW20KIBtbbQogICAgICAgICBp
ZiAobV9mdWxsc2NyZWVuQnV0dG9uICYmIG1fZnVsbHNjcmVlbkJ1dHRvbi0+aGl0VGVzdChwb2lu
dCkpG1ttCiAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5CdXR0b24tPmRlZmF1bHRFdmVudEhhbmRs
ZXIoZXZlbnQpOxtbbQobWzMxbS0gICAgICAgIBtbbQobWzMybSsbW20KICAgICAgICAgaWYgKGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50KSB7G1ttCiAgICAgICAg
ICAgICBtX21vdXNlT3ZlciA9IHRydWU7G1ttCiAgICAgICAgICAgICB1cGRhdGVDb250cm9sVmlz
aWJpbGl0eSgpOxtbbQobWzM2bUBAIC01MTEsNyArNTc3LDcgQEAgaW50IFJlbmRlck1lZGlhOjps
b3dlc3RQb3NpdGlvbihib29sIGluY2x1ZGVPdmVyZmxvd0ludGVyaW9yLCBib29sIGluY2x1ZGVT
ZWxmKRtbbQogICAgIGludCBib3R0b20gPSBSZW5kZXJSZXBsYWNlZDo6bG93ZXN0UG9zaXRpb24o
aW5jbHVkZU92ZXJmbG93SW50ZXJpb3IsIGluY2x1ZGVTZWxmKTsbW20KICAgICBpZiAoIW1fY29u
dHJvbHNTaGFkb3dSb290IHx8ICFtX2NvbnRyb2xzU2hhZG93Um9vdC0+cmVuZGVyZXIoKSkbW20K
ICAgICAgICAgcmV0dXJuIGJvdHRvbTsbW20KG1szMW0tICAgIBtbbQobWzMybSsbW20KICAgICBy
ZXR1cm4gbWF4KGJvdHRvbSwgIG1fY29udHJvbHNTaGFkb3dSb290LT5yZW5kZXJCb3goKS0+eSgp
ICsgbV9jb250cm9sc1NoYWRvd1Jvb3QtPnJlbmRlckJveCgpLT5sb3dlc3RQb3NpdGlvbihpbmNs
dWRlT3ZlcmZsb3dJbnRlcmlvciwgaW5jbHVkZVNlbGYpKTsbW20KIH0bW20KIBtbbQobWzM2bUBA
IC01MjAsNyArNTg2LDcgQEAgaW50IFJlbmRlck1lZGlhOjpyaWdodG1vc3RQb3NpdGlvbihib29s
IGluY2x1ZGVPdmVyZmxvd0ludGVyaW9yLCBib29sIGluY2x1ZGVTZWwbW20KICAgICBpbnQgcmln
aHQgPSBSZW5kZXJSZXBsYWNlZDo6cmlnaHRtb3N0UG9zaXRpb24oaW5jbHVkZU92ZXJmbG93SW50
ZXJpb3IsIGluY2x1ZGVTZWxmKTsbW20KICAgICBpZiAoIW1fY29udHJvbHNTaGFkb3dSb290IHx8
ICFtX2NvbnRyb2xzU2hhZG93Um9vdC0+cmVuZGVyZXIoKSkbW20KICAgICAgICAgcmV0dXJuIHJp
Z2h0OxtbbQobWzMxbS0gICAgG1ttChtbMzJtKxtbbQogICAgIHJldHVybiBtYXgocmlnaHQsIG1f
Y29udHJvbHNTaGFkb3dSb290LT5yZW5kZXJCb3goKS0+eCgpICsgbV9jb250cm9sc1NoYWRvd1Jv
b3QtPnJlbmRlckJveCgpLT5yaWdodG1vc3RQb3NpdGlvbihpbmNsdWRlT3ZlcmZsb3dJbnRlcmlv
ciwgaW5jbHVkZVNlbGYpKTsbW20KIH0bW20KIBtbbQobWzM2bUBAIC01MjksNyArNTk1LDcgQEAg
aW50IFJlbmRlck1lZGlhOjpsZWZ0bW9zdFBvc2l0aW9uKGJvb2wgaW5jbHVkZU92ZXJmbG93SW50
ZXJpb3IsIGJvb2wgaW5jbHVkZVNlbGYbW20KICAgICBpbnQgbGVmdCA9IFJlbmRlclJlcGxhY2Vk
OjpsZWZ0bW9zdFBvc2l0aW9uKGluY2x1ZGVPdmVyZmxvd0ludGVyaW9yLCBpbmNsdWRlU2VsZik7
G1ttCiAgICAgaWYgKCFtX2NvbnRyb2xzU2hhZG93Um9vdCB8fCAhbV9jb250cm9sc1NoYWRvd1Jv
b3QtPnJlbmRlcmVyKCkpG1ttCiAgICAgICAgIHJldHVybiBsZWZ0OxtbbQobWzMxbS0gICAgG1tt
ChtbMzJtKxtbbQogICAgIHJldHVybiBtaW4obGVmdCwgbV9jb250cm9sc1NoYWRvd1Jvb3QtPnJl
bmRlckJveCgpLT54KCkgKyAgbV9jb250cm9sc1NoYWRvd1Jvb3QtPnJlbmRlckJveCgpLT5sZWZ0
bW9zdFBvc2l0aW9uKGluY2x1ZGVPdmVyZmxvd0ludGVyaW9yLCBpbmNsdWRlU2VsZikpOxtbbQog
fRtbbQogG1ttChtbMW1kaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmgbW20KG1sxbWluZGV4IDU2OTdiZGEu
LjJjZTgwYzcgMTAwNjQ0G1ttChtbMW0tLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRp
YS5oG1ttChtbMW0rKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5oG1ttChtbMzZt
QEAgLTQxLDEwICs0MSwxMiBAQCBjbGFzcyBNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudDsb
W20KIGNsYXNzIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ7G1ttCiBjbGFzcyBNZWRp
YUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDsbW20KIGNsYXNzIE1lZGlhQ29u
dHJvbFRpbWVsaW5lRWxlbWVudDsbW20KG1szMm0rG1ttG1szMm1jbGFzcyBNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJFbGVtZW50OxtbbQogY2xhc3MgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRv
bkVsZW1lbnQ7G1ttCiBjbGFzcyBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQ7G1ttCiBj
bGFzcyBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDsbW20KIGNsYXNzIE1lZGlhQ29u
dHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDsbW20KG1szMm0rG1ttG1szMm1jbGFzcyBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OxtbbQogY2xhc3MgTWVkaWFDb250
cm9sRWxlbWVudDsbW20KIGNsYXNzIE1lZGlhUGxheWVyOxtbbQogG1ttChtbMzZtQEAgLTk5LDYg
KzEwMSw4IEBAIHByaXZhdGU6G1ttCiAgICAgdm9pZCBjcmVhdGVTdGF0dXNEaXNwbGF5KCk7G1tt
CiAgICAgdm9pZCBjcmVhdGVUaW1lbGluZUNvbnRhaW5lcigpOxtbbQogICAgIHZvaWQgY3JlYXRl
VGltZWxpbmUoKTsbW20KG1szMm0rG1ttG1szMm0gICAgdm9pZCBjcmVhdGVWb2x1bWVTbGlkZXJD
b250YWluZXIoKTsbW20KG1szMm0rG1ttG1szMm0gICAgdm9pZCBjcmVhdGVWb2x1bWVTbGlkZXIo
KTsbW20KICAgICB2b2lkIGNyZWF0ZUN1cnJlbnRUaW1lRGlzcGxheSgpOxtbbQogICAgIHZvaWQg
Y3JlYXRlVGltZVJlbWFpbmluZ0Rpc3BsYXkoKTsbW20KICAgICB2b2lkIGNyZWF0ZUZ1bGxzY3Jl
ZW5CdXR0b24oKTsbW20KG1szNm1AQCAtMTA5LDYgKzExMyw4IEBAIHByaXZhdGU6G1ttCiAgICAg
dm9pZCBjaGFuZ2VPcGFjaXR5KEhUTUxFbGVtZW50KiwgZmxvYXQgb3BhY2l0eSk7G1ttCiAgICAg
dm9pZCBvcGFjaXR5QW5pbWF0aW9uVGltZXJGaXJlZChUaW1lcjxSZW5kZXJNZWRpYT4qKTsbW20K
IBtbbQobWzMybSsbW20bWzMybSAgICB2b2lkIHVwZGF0ZVZvbHVtZVNsaWRlckNvbnRhaW5lcihi
b29sIHZpc2libGUpOxtbbQobWzMybSsbW20KICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFu
Z2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOxtbbQogG1tt
CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2NvbnRyb2xzU2hhZG93Um9vdDsbW20KG1szNm1A
QCAtMTIwLDggKzEyNiwxMCBAQCBwcml2YXRlOhtbbQogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xS
ZXdpbmRCdXR0b25FbGVtZW50PiBtX3Jld2luZEJ1dHRvbjsbW20KICAgICBSZWZQdHI8TWVkaWFD
b250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IG1fcmV0dXJuVG9SZWFsdGltZUJ1
dHRvbjsbW20KICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiBtX3RpbWVs
aW5lOxtbbQobWzMybSsbW20bWzMybSAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
RWxlbWVudD4gbV92b2x1bWVTbGlkZXI7G1ttCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5CdXR0b25FbGVtZW50PiBtX2Z1bGxzY3JlZW5CdXR0b247G1ttCiAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gbV90aW1lbGluZUNvbnRhaW5lcjsb
W20KG1szMm0rG1ttG1szMm0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRh
aW5lckVsZW1lbnQ+IG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyOxtbbQogICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQ+IG1fY3VycmVudFRpbWVEaXNwbGF5OxtbbQogICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQ+IG1fdGltZVJlbWFpbmluZ0Rp
c3BsYXk7G1ttCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBt
X3N0YXR1c0Rpc3BsYXk7G1ttChtbMW1kaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9scy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRy
b2xzLmNwcBtbbQobWzFtaW5kZXggMDZkOTAxYS4uZDlkZThhYSAxMDA2NDQbW20KG1sxbS0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3BwG1ttChtbMW0rKysgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcBtbbQobWzM2bUBAIC0xMjgs
NiArMTI4LDE4IEBAIGJvb2wgUmVuZGVyTWVkaWFDb250cm9sczo6cGFpbnRNZWRpYUNvbnRyb2xz
UGFydChNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBwYXJ0LCBSG1ttCiAgICAgICAgIGNhc2UgTWVk
aWFTbGlkZXJUaHVtYjobW20KICAgICAgICAgICAgIHBhaW50VGhlbWVQYXJ0KFNhZmFyaVRoZW1l
OjpNZWRpYVNsaWRlclRodW1iUGFydCwgcGFpbnRJbmZvLmNvbnRleHQtPnBsYXRmb3JtQ29udGV4
dCgpLCByLCBOU1JlZ3VsYXJDb250cm9sU2l6ZSwgZGV0ZXJtaW5lU3RhdGUobykpOxtbbQogICAg
ICAgICAgICAgYnJlYWs7G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICBjYXNlIE1lZGlhVm9sdW1l
U2xpZGVyQ29udGFpbmVyOhtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAgIC8vIEZJWE1FOiBJ
bXBsZW1udCB2b2x1bWUgc2xpZGVyLhtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOxtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAgIGJyZWFrOxtbbQob
WzMybSsbW20bWzMybSAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlcjobW20KG1szMm0rG1tt
G1szMm0gICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtbnQgdm9sdW1lIHNsaWRlci4bW20KG1sz
Mm0rG1ttG1szMm0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsbW20KG1szMm0rG1tt
G1szMm0gICAgICAgICAgICBicmVhazsbW20KG1szMm0rG1ttG1szMm0gICAgICAgIGNhc2UgTWVk
aWFWb2x1bWVTbGlkZXJUaHVtYjobW20KG1szMm0rG1ttG1szMm0gICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtbnQgdm9sdW1lIHNsaWRlci4bW20KG1szMm0rG1ttG1szMm0gICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsbW20KG1szMm0rG1ttG1szMm0gICAgICAgICAgICBicmVhazsb
W20KICAgICAgICAgY2FzZSBNZWRpYVRpbWVsaW5lQ29udGFpbmVyOhtbbQogICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7G1ttCiAgICAgICAgICAgICBicmVhazsbW20KG1szNm1AQCAt
MTQ3LDQgKzE1OSwzIEBAIGJvb2wgUmVuZGVyTWVkaWFDb250cm9sczo6cGFpbnRNZWRpYUNvbnRy
b2xzUGFydChNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBwYXJ0LCBSG1ttCiAjZW5kaWYgIC8vICNp
ZiBFTkFCTEUoVklERU8pG1ttCiAbW20KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUbW20KG1szMW0t
G1ttChtbMW1kaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAbW20KG1sxbWluZGV4IDRkMTQxYjcu
LjI0N2FjZGEgMTAwNjQ0G1ttChtbMW0tLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlk
ZXIuY3BwG1ttChtbMW0rKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwG1tt
ChtbMzZtQEAgLTI4MSw2ICsyODEsOCBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBSZW5kZXJT
bGlkZXI6OmNyZWF0ZVRodW1iU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudBtbbQogICAg
ICAgICBzdHlsZS0+c2V0QXBwZWFyYW5jZShTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KTsbW20K
ICAgICBlbHNlIGlmIChwYXJlbnRTdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyUGFy
dCkbW20KICAgICAgICAgc3R5bGUtPnNldEFwcGVhcmFuY2UoTWVkaWFTbGlkZXJUaHVtYlBhcnQp
OxtbbQobWzMybSsbW20bWzMybSAgICBlbHNlIGlmIChwYXJlbnRTdHlsZS0+YXBwZWFyYW5jZSgp
ID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCkbW20KG1szMm0rG1ttG1szMm0gICAgICAgIHN0eWxl
LT5zZXRBcHBlYXJhbmNlKE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0KTsbW20KIBtbbQogICAg
IHJldHVybiBzdHlsZS5yZWxlYXNlKCk7G1ttCiB9G1ttChtbMzZtQEAgLTI5OCw3ICszMDAsNyBA
QCBJbnRSZWN0IFJlbmRlclNsaWRlcjo6dGh1bWJSZWN0KCkbW20KIBtbbQogICAgIGRvdWJsZSBm
cmFjdGlvbiA9IHNsaWRlclBvc2l0aW9uKHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihu
b2RlKCkpKTsbW20KICAgICBJbnRSZWN0IGNvbnRlbnRSZWN0ID0gY29udGVudEJveFJlY3QoKTsb
W20KG1szMW0tICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQ
YXJ0KSB7G1ttChtbMzJtKxtbbRtbMzJtICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0g
U2xpZGVyVmVydGljYWxQYXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVt
ZVNsaWRlclBhcnQpIHsbW20KICAgICAgICAgdGh1bWJSZWN0LnNldFgoY29udGVudFJlY3QueCgp
ICsgKGNvbnRlbnRSZWN0LndpZHRoKCkgLSB0aHVtYlJlY3Qud2lkdGgoKSkgLyAyKTsbW20KICAg
ICAgICAgdGh1bWJSZWN0LnNldFkoY29udGVudFJlY3QueSgpICsgc3RhdGljX2Nhc3Q8aW50Pihu
ZXh0YWZ0ZXIoKGNvbnRlbnRSZWN0LmhlaWdodCgpIC0gdGh1bWJSZWN0LmhlaWdodCgpKSArIDEs
IDApICogKDEgLSBmcmFjdGlvbikpKTsbW20KICAgICB9IGVsc2UgextbbQobWzM2bUBAIC0zOTEs
NyArMzkzLDcgQEAgYm9vbCBSZW5kZXJTbGlkZXI6Om1vdXNlRXZlbnRJc0luVGh1bWIoTW91c2VF
dmVudCogZXZ0KRtbbQogICAgICAgICByZXR1cm4gZmFsc2U7G1ttCiAbW20KICNpZiBFTkFCTEUo
VklERU8pG1ttChtbMzFtLSAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xp
ZGVyUGFydCkgextbbQobWzMybSsbW20bWzMybSAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgp
ID09IE1lZGlhU2xpZGVyUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1
bWVTbGlkZXJQYXJ0KSB7G1ttCiAgICAgICAgIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCAqc2xp
ZGVyVGh1bWIgPSBzdGF0aWNfY2FzdDxNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQqPihtX3RodW1i
LT5yZW5kZXJlcigpLT5ub2RlKCkpOxtbbQogICAgICAgICByZXR1cm4gc2xpZGVyVGh1bWItPmhp
dFRlc3QoZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOxtbbQogICAgIH0bW20KG1szNm1AQCAtNDIz
LDcgKzQyNSw3IEBAIHZvaWQgUmVuZGVyU2xpZGVyOjpzZXRWYWx1ZUZvclBvc2l0aW9uKGludCBw
b3NpdGlvbikbW20KICAgICAvLyBDYWxjdWxhdGUgdGhlIG5ldyB2YWx1ZSBiYXNlZCBvbiB0aGUg
cG9zaXRpb24sIGFuZCBzZW5kIGl0IHRvIHRoZSBlbGVtZW50LhtbbQogICAgIFNsaWRlclJhbmdl
IHJhbmdlKGVsZW1lbnQpOxtbbQogICAgIGRvdWJsZSBmcmFjdGlvbiA9IHN0YXRpY19jYXN0PGRv
dWJsZT4ocG9zaXRpb24pIC8gdHJhY2tTaXplKCk7G1ttChtbMzFtLSAgICBpZiAoc3R5bGUoKS0+
YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCkbW20KG1szMm0rG1ttG1szMm0gICAg
aWYgKHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQgfHwgc3R5bGUo
KS0+YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCkbW20KICAgICAgICAgZnJh
Y3Rpb24gPSAxIC0gZnJhY3Rpb247G1ttCiAgICAgZG91YmxlIHZhbHVlID0gcmFuZ2UuY2xhbXBW
YWx1ZShyYW5nZS52YWx1ZUZyb21Qcm9wb3J0aW9uKGZyYWN0aW9uKSk7G1ttCiAgICAgZWxlbWVu
dC0+c2V0VmFsdWVGcm9tUmVuZGVyZXIoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsbW20KG1szNm1A
QCAtNDQ0LDcgKzQ0Niw3IEBAIGludCBSZW5kZXJTbGlkZXI6OnBvc2l0aW9uRm9yT2Zmc2V0KGNv
bnN0IEludFBvaW50JiBwKRtbbQogICAgICAgICByZXR1cm4gMDsbW20KIBtbbQogICAgIGludCBw
b3NpdGlvbjsbW20KG1szMW0tICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVy
VmVydGljYWxQYXJ0KRtbbQobWzMybSsbW20bWzMybSAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5j
ZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVk
aWFWb2x1bWVTbGlkZXJQYXJ0KRtbbQogICAgICAgICBwb3NpdGlvbiA9IHAueSgpIC0gbV90aHVt
Yi0+cmVuZGVyQm94KCktPmhlaWdodCgpIC8gMjsbW20KICAgICBlbHNlG1ttCiAgICAgICAgIHBv
c2l0aW9uID0gcC54KCkgLSBtX3RodW1iLT5yZW5kZXJCb3goKS0+d2lkdGgoKSAvIDI7G1ttChtb
MzZtQEAgLTQ1Nyw3ICs0NTksNyBAQCBpbnQgUmVuZGVyU2xpZGVyOjpjdXJyZW50UG9zaXRpb24o
KRtbbQogICAgIEFTU0VSVChtX3RodW1iKTsbW20KICAgICBBU1NFUlQobV90aHVtYi0+cmVuZGVy
ZXIoKSk7G1ttCiAbW20KG1szMW0tICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xp
ZGVyVmVydGljYWxQYXJ0KRtbbQobWzMybSsbW20bWzMybSAgICBpZiAoc3R5bGUoKS0+YXBwZWFy
YW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0g
TWVkaWFWb2x1bWVTbGlkZXJQYXJ0KRtbbQogICAgICAgICByZXR1cm4gdG9SZW5kZXJCb3gobV90
aHVtYi0+cmVuZGVyZXIoKSktPnkoKSAtIGNvbnRlbnRCb3hSZWN0KCkueSgpOxtbbQogICAgIHJl
dHVybiB0b1JlbmRlckJveChtX3RodW1iLT5yZW5kZXJlcigpKS0+eCgpIC0gY29udGVudEJveFJl
Y3QoKS54KCk7G1ttCiB9G1ttChtbMzZtQEAgLTQ2Nyw3ICs0NjksNyBAQCBpbnQgUmVuZGVyU2xp
ZGVyOjp0cmFja1NpemUoKRtbbQogICAgIEFTU0VSVChtX3RodW1iKTsbW20KICAgICBBU1NFUlQo
bV90aHVtYi0+cmVuZGVyZXIoKSk7G1ttCiAbW20KG1szMW0tICAgIGlmIChzdHlsZSgpLT5hcHBl
YXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0KRtbbQobWzMybSsbW20bWzMybSAgICBpZiAo
c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5h
cHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KRtbbQogICAgICAgICByZXR1cm4g
Y29udGVudEhlaWdodCgpIC0gbV90aHVtYi0+cmVuZGVyQm94KCktPmhlaWdodCgpOxtbbQogICAg
IHJldHVybiBjb250ZW50V2lkdGgoKSAtIG1fdGh1bWItPnJlbmRlckJveCgpLT53aWR0aCgpOxtb
bQogfRtbbQobWzFtZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNw
cCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcBtbbQobWzFtaW5kZXggZDQ4NjUy
Zi4uN2I0ZGZlMyAxMDA2NDQbW20KG1sxbS0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmNwcBtbbQobWzFtKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwG1tt
ChtbMzZtQEAgLTE4Myw2ICsxODMsNyBAQCB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZShD
U1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbBtbbQogICAg
ICAgICBjYXNlIE1lbnVsaXN0QnV0dG9uUGFydDobW20KICAgICAgICAgICAgIHJldHVybiBhZGp1
c3RNZW51TGlzdEJ1dHRvblN0eWxlKHNlbGVjdG9yLCBzdHlsZSwgZSk7G1ttCiAgICAgICAgIGNh
c2UgTWVkaWFTbGlkZXJQYXJ0OhtbbQobWzMybSsbW20bWzMybSAgICAgICAgY2FzZSBNZWRpYVZv
bHVtZVNsaWRlclBhcnQ6G1ttCiAgICAgICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6G1tt
CiAgICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQYXJ0OhtbbQogICAgICAgICAgICAgcmV0dXJu
IGFkanVzdFNsaWRlclRyYWNrU3R5bGUoc2VsZWN0b3IsIHN0eWxlLCBlKTsbW20KG1szNm1AQCAt
Mjc4LDYgKzI3OSwxNCBAQCBib29sIFJlbmRlclRoZW1lOjpwYWludChSZW5kZXJPYmplY3QqIG8s
IGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBwYWludEluZhtbbQogICAgICAgICAgICAg
aWYgKG8tPnBhcmVudCgpLT5pc1NsaWRlcigpKRtbbQogICAgICAgICAgICAgICAgIHJldHVybiBw
YWludE1lZGlhU2xpZGVyVGh1bWIobywgcGFpbnRJbmZvLCByKTsbW20KICAgICAgICAgICAgIGJy
ZWFrOxtbbQobWzMybSsbW20bWzMybSAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlckNvbnRh
aW5lclBhcnQ6G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFW
b2x1bWVTbGlkZXJDb250YWluZXIobywgcGFpbnRJbmZvLCByKTsbW20KG1szMm0rG1ttG1szMm0g
ICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0OhtbbQobWzMybSsbW20bWzMybSAgICAg
ICAgICAgIHJldHVybiBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2sobywgcGFpbnRJbmZvLCBy
KTsbW20KG1szMm0rG1ttG1szMm0gICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBh
cnQ6G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICAgICAgaWYgKG8tPnBhcmVudCgpLT5pc1NsaWRl
cigpKRtbbQobWzMybSsbW20bWzMybSAgICAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVZv
bHVtZVNsaWRlclRodW1iKG8sIHBhaW50SW5mbywgcik7G1ttChtbMzJtKxtbbRtbMzJtICAgICAg
ICAgICAgYnJlYWs7G1ttCiAgICAgICAgIGNhc2UgTWVkaWFUaW1lUmVtYWluaW5nUGFydDobW20K
ICAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlhVGltZVJlbWFpbmluZyhvLCBwYWludEluZm8s
IHIpOxtbbQogICAgICAgICBjYXNlIE1lZGlhQ3VycmVudFRpbWVQYXJ0OhtbbQobWzFtZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5oG1ttChtbMW1pbmRleCA3OTVkYWEyLi5jMDBjMmViIDEwMDY0NBtbbQob
WzFtLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaBtbbQobWzFtKysrIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaBtbbQobWzM2bUBAIC0yNDQsNiArMjQ0LDkgQEAg
cHJvdGVjdGVkOhtbbQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2Vla0ZvcndhcmRCdXR0
b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJ
bnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfRtbbQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlh
U2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfRtbbQogICAgIHZpcnR1YWwgYm9vbCBw
YWludE1lZGlhU2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfRtbbQobWzMybSsbW20b
WzMybSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcihSZW5k
ZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3Qm
KSB7IHJldHVybiB0cnVlOyB9G1ttChtbMzJtKxtbbRtbMzJtICAgIHZpcnR1YWwgYm9vbCBwYWlu
dE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0
OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfRtbbQobWzMybSsb
W20bWzMybSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKFJlbmRl
ck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYp
IHsgcmV0dXJuIHRydWU7IH0bW20KICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVJld2luZEJ1
dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0
IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9G1ttCiAgICAgdmlydHVhbCBib29sIHBhaW50TWVk
aWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVj
dDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0bW20KICAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzQmFja2dyb3VuZChSZW5kZXJPYmplY3QqLCBj
b25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0
cnVlOyB9G1ttChtbMW1kaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNr
aWEuY3BwG1ttChtbMW1pbmRleCBjODg3NWRjLi5kNjZhNGFmIDEwMDY0NBtbbQobWzFtLS0tIGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwG1ttChtbMW0rKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAbW20KG1szNm1A
QCAtNTcxLDYgKzU3MSwyOCBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludE1l
ZGlhU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0G1ttCiAjZW5kaWYbW20K
IH0bW20KIBtbbQobWzMybSsbW20bWzMybWJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBh
aW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVu
ZGVyT2JqZWN0OjpQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkbW20K
G1szMm0rG1ttG1szMm17G1ttChtbMzJtKxtbbRtbMzJtI2lmIEVOQUJMRShWSURFTykbW20KG1sz
Mm0rG1ttG1szMm0gICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gbWVkaWFFbGVt
ZW50UGFyZW50KG9iamVjdC0+bm9kZSgpKTsbW20KG1szMm0rG1ttG1szMm0gICAgaWYgKCFtZWRp
YUVsZW1lbnQpG1ttChtbMzJtKxtbbRtbMzJtICAgICAgICByZXR1cm4gZmFsc2U7G1ttChtbMzJt
KxtbbQobWzMybSsbW20bWzMybSAgICBTa0NhbnZhcyogY2FudmFzID0gcGFpbnRJbmZvLmNvbnRl
eHQtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsbW20KG1szMm0rG1ttG1szMm0gICAgU2tQ
YWludCBwYWludDsbW20KG1szMm0rG1ttG1szMm0gICAgcGFpbnQuc2V0QVJHQigweGZmLCAweGZm
LCAweGZmLCAweGZmKTsbW20KG1szMm0rG1ttChtbMzJtKxtbbRtbMzJtICAgIGludCB4ID0gcmVj
dC54KCkgKyByZWN0LndpZHRoKCkgLyAyOxtbbQobWzMybSsbW20bWzMybSAgICBjYW52YXMtPmRy
YXdMaW5lKHgsIHJlY3QueSgpLCB4LCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCksIHBhaW50KTsb
W20KG1szMm0rG1ttG1szMm0gICAgcmV0dXJuIHRydWU7G1ttChtbMzJtKxtbbRtbMzJtI2Vsc2Ub
W20KG1szMm0rG1ttG1szMm0gICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7G1ttChtbMzJtKxtbbRtb
MzJtICAgIFVOVVNFRF9QQVJBTShwYWludEluZm8pOxtbbQobWzMybSsbW20bWzMybSAgICBVTlVT
RURfUEFSQU0ocmVjdCk7G1ttChtbMzJtKxtbbRtbMzJtICAgIHJldHVybiBmYWxzZTsbW20KG1sz
Mm0rG1ttG1szMm0jZW5kaWYbW20KG1szMm0rG1ttG1szMm19G1ttChtbMzJtKxtbbQogdm9pZCBS
ZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVj
dCogb2JqZWN0KSBjb25zdCB7G1ttCiAjaWYgRU5BQkxFKFZJREVPKRtbbQogICAgIGlmIChvYmpl
Y3QtPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVNsaWRlclRodW1iUGFydCkgextbbQob
WzM2bUBAIC01NzgsNiArNjAwLDExIEBAIHZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmFk
anVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG9iamVjdCkgY29uc3QbW20KIBtbbQog
ICAgICAgICBvYmplY3QtPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChtZWRpYVNsaWRlclRodW1i
LT53aWR0aCgpLCBGaXhlZCkpOxtbbQogICAgICAgICBvYmplY3QtPnN0eWxlKCktPnNldEhlaWdo
dChMZW5ndGgobWVkaWFTbGlkZXJUaHVtYi0+aGVpZ2h0KCksIEZpeGVkKSk7G1ttChtbMzJtKxtb
bRtbMzJtICAgIH0gZWxzZSBpZiAob2JqZWN0LT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVk
aWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQpIHsbW20KG1szMm0rG1ttG1szMm0gICAgICAgIHN0YXRp
YyBJbWFnZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNv
dXJjZSgibWVkaWFWb2x1bWVTbGlkZXJUaHVtYiIpLnJlbGVhc2VSZWYoKTsbW20KG1szMm0rG1tt
ChtbMzJtKxtbbRtbMzJtICAgICAgICBvYmplY3QtPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aCht
ZWRpYVZvbHVtZVNsaWRlclRodW1iLT53aWR0aCgpLCBGaXhlZCkpOxtbbQobWzMybSsbW20bWzMy
bSAgICAgICAgb2JqZWN0LT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKG1lZGlhVm9sdW1lU2xp
ZGVyVGh1bWItPmhlaWdodCgpLCBGaXhlZCkpOxtbbQogICAgIH0bW20KICNlbHNlG1ttCiAgICAg
VU5VU0VEX1BBUkFNKG9iamVjdCk7G1ttChtbMzZtQEAgLTYwMSw2ICs2MjgsMjMgQEAgYm9vbCBS
ZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6cGFpbnRNZWRpYVNsaWRlclRodW1iKFJlbmRlck9iamVj
dCogb2JqZWN0LCBjb25zdBtbbQogI2VuZGlmG1ttCiB9G1ttCiAbW20KG1szMm0rG1ttG1szMm1i
b29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIo
UmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpG1ttChtbMzJtKxtbbRtbMzJtextbbQobWzMybSsb
W20bWzMybSNpZiBFTkFCTEUoVklERU8pG1ttChtbMzJtKxtbbRtbMzJtICAgIGlmICghb2JqZWN0
LT5wYXJlbnQoKS0+aXNTbGlkZXIoKSkbW20KG1szMm0rG1ttG1szMm0gICAgICAgIHJldHVybiBm
YWxzZTsbW20KG1szMm0rG1ttChtbMzJtKxtbbRtbMzJtICAgIHN0YXRpYyBJbWFnZSogbWVkaWFW
b2x1bWVTbGlkZXJUaHVtYiA9IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSgibWVkaWFWb2x1
bWVTbGlkZXJUaHVtYiIpLnJlbGVhc2VSZWYoKTsbW20KG1szMm0rG1ttChtbMzJtKxtbbRtbMzJt
ICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uSW50ZXJuYWwocGFpbnRJbmZvLmNvbnRleHQsIHJl
Y3QsIG1lZGlhVm9sdW1lU2xpZGVyVGh1bWIpOxtbbQobWzMybSsbW20bWzMybSNlbHNlG1ttChtb
MzJtKxtbbRtbMzJtICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOxtbbQobWzMybSsbW20bWzMybSAg
ICBVTlVTRURfUEFSQU0ocGFpbnRJbmZvKTsbW20KG1szMm0rG1ttG1szMm0gICAgVU5VU0VEX1BB
UkFNKHJlY3QpOxtbbQobWzMybSsbW20bWzMybSAgICByZXR1cm4gZmFsc2U7G1ttChtbMzJtKxtb
bRtbMzJtI2VuZGlmG1ttChtbMzJtKxtbbRtbMzJtfRtbbQobWzMybSsbW20KIGJvb2wgUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWE6OnBhaW50TWVkaWFQbGF5QnV0dG9uKFJlbmRlck9iamVjdCogb2Jq
ZWN0LCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRS
ZWN0JiByZWN0KRtbbQogextbbQogI2lmIEVOQUJMRShWSURFTykbW20KG1sxbWRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaBtbbQobWzFtaW5kZXggNzU0NGMyMi4u
NTM0YTlkNiAxMDA2NDQbW20KG1sxbS0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1Ta2lhLmgbW20KG1sxbSsrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1Ta2lhLmgbW20KG1szNm1AQCAtOTEsOCArOTEsMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgextbbQogG1ttCiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhQ29udHJvbHNCYWNr
Z3JvdW5kKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29u
c3QgSW50UmVjdCYpOxtbbQogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNsaWRlclRy
YWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3Qg
SW50UmVjdCYpOxtbbQobWzMybSsbW20bWzMybSAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVk
aWFWb2x1bWVTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsbW20KICAgICAgICAgdmlydHVhbCB2b2lkIGFkanVz
dFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqKSBjb25zdDsbW20KICAgICAgICAgdmlydHVh
bCBib29sIHBhaW50TWVkaWFTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJP
YmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsbW20KG1szMm0rG1ttG1szMm0gICAg
ICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0
KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7G1ttCiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBj
b25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsbW20KICAgICAg
ICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0
IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOxtbbQogG1ttChtbMW1k
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgbW20KG1sx
bWluZGV4IDAxM2QzMzUuLmY1N2EyY2MgMTAwNjQ0G1ttChtbMW0tLS0gYS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oG1ttChtbMW0rKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oG1ttChtbMzZtQEAgLTY5LDEwICs2
OSw5IEBAIGVudW0gUHNldWRvSWQgextbbQogICAgIE5PUFNFVURPLCBGSVJTVF9MSU5FLCBGSVJT
VF9MRVRURVIsIEJFRk9SRSwgQUZURVIsIFNFTEVDVElPTiwgRklSU1RfTElORV9JTkhFUklURUQs
IFNDUk9MTEJBUiwgRklMRV9VUExPQURfQlVUVE9OLCBJTlBVVF9QTEFDRUhPTERFUiwbW20KICAg
ICBTTElERVJfVEhVTUIsIFNFQVJDSF9DQU5DRUxfQlVUVE9OLCBTRUFSQ0hfREVDT1JBVElPTiwg
U0VBUkNIX1JFU1VMVFNfREVDT1JBVElPTiwgU0VBUkNIX1JFU1VMVFNfQlVUVE9OLCBNRURJQV9D
T05UUk9MU19QQU5FTCwbW20KICAgICBNRURJQV9DT05UUk9MU19QTEFZX0JVVFRPTiwgTUVESUFf
Q09OVFJPTFNfTVVURV9CVVRUT04sIE1FRElBX0NPTlRST0xTX1RJTUVMSU5FLCBNRURJQV9DT05U
Uk9MU19USU1FTElORV9DT05UQUlORVIsG1ttChtbMzFtLSAgICBNRURJQV9DT05UUk9MU19DVVJS
RU5UX1RJTUVfRElTUExBWSwgTUVESUFfQ09OVFJPTFNfVElNRV9SRU1BSU5JTkdfRElTUExBWSwg
TUVESUFfQ09OVFJPTFNfU0VFS19CQUNLX0JVVFRPTiwgG1ttChtbMzFtLSAgICBNRURJQV9DT05U
Uk9MU19TRUVLX0ZPUldBUkRfQlVUVE9OLCBNRURJQV9DT05UUk9MU19GVUxMU0NSRUVOX0JVVFRP
TiwgTUVESUFfQ09OVFJPTFNfUkVXSU5EX0JVVFRPTiwbW20KG1szMW0tICAgIE1FRElBX0NPTlRS
T0xTX1JFVFVSTl9UT19SRUFMVElNRV9CVVRUT04sIE1FRElBX0NPTlRST0xTX1NUQVRVU19ESVNQ
TEFZLBtbbQobWzMxbS0gICAgU0NST0xMQkFSX1RIVU1CLCBTQ1JPTExCQVJfQlVUVE9OLCBTQ1JP
TExCQVJfVFJBQ0ssIFNDUk9MTEJBUl9UUkFDS19QSUVDRSwgU0NST0xMQkFSX0NPUk5FUiwgUkVT
SVpFUiwbW20KG1szMm0rG1ttG1szMm0gICAgTUVESUFfQ09OVFJPTFNfVk9MVU1FX1NMSURFUiwg
TUVESUFfQ09OVFJPTFNfVk9MVU1FX1NMSURFUl9DT05UQUlORVIsIE1FRElBX0NPTlRST0xTX0NV
UlJFTlRfVElNRV9ESVNQTEFZLCBNRURJQV9DT05UUk9MU19USU1FX1JFTUFJTklOR19ESVNQTEFZ
LCBNRURJQV9DT05UUk9MU19TRUVLX0JBQ0tfQlVUVE9OLBtbbQobWzMybSsbW20bWzMybSAgICBN
RURJQV9DT05UUk9MU19TRUVLX0ZPUldBUkRfQlVUVE9OLCBNRURJQV9DT05UUk9MU19GVUxMU0NS
RUVOX0JVVFRPTiwgTUVESUFfQ09OVFJPTFNfUkVXSU5EX0JVVFRPTiwgTUVESUFfQ09OVFJPTFNf
UkVUVVJOX1RPX1JFQUxUSU1FX0JVVFRPTiwbW20KG1szMm0rG1ttG1szMm0gICAgTUVESUFfQ09O
VFJPTFNfU1RBVFVTX0RJU1BMQVksIFNDUk9MTEJBUl9USFVNQiwgU0NST0xMQkFSX0JVVFRPTiwg
U0NST0xMQkFSX1RSQUNLLCBTQ1JPTExCQVJfVFJBQ0tfUElFQ0UsIFNDUk9MTEJBUl9DT1JORVIs
IFJFU0laRVIsG1ttCiAbW20KICAgICBGSVJTVF9JTlRFUk5BTF9QU0VVRE9JRCA9IEZJTEVfVVBM
T0FEX0JVVFRPThtbbQogfTsbW20K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38360</attachid>
            <date>2009-08-20 22:42:58 -0700</date>
            <delta_ts>2009-08-21 14:18:32 -0700</delta_ts>
            <desc>added controls, style and implementation of controls but no theme</desc>
            <filename>webkit-add-volume-slider.patch</filename>
            <type>text/plain</type>
            <size>40330</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjUzNzUyMi4uYjQwOGYxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MyBAQAorMjAwOS0wOC0yMCAgQWxwaGEgTGFtICA8
aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIHBhbmVsIGRvZXMgbm90IGhhdmUgYSB2b2x1bWUg
Y29udHJvbCBzbGlkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MjQxCisKKyAgICAgICAgSW50cm9kdWNlZCAiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyIiBhbmQKKyAgICAgICAgIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9s
dW1lLXNsaWRlci1jb250YWluZXIiIGFuZCB0aGUgc3VwcG9ydGluZworICAgICAgICBpbXBsZW1l
bnRhdGlvbnMuIEFsc28gYWRkZWQgYXBwZWFyYW5jZXMgb2YgIm1lZGlhLXZvbHVtZS1zbGlkZXIi
LAorICAgICAgICAibWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXIiLgorCisgICAgICAgIFRo
ZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGNvbnRyb2xzIGFyZSBpbiBXZWJDb3JlOjpNZWRpYUNv
bnRyb2xFbGVtZW50cy4KKyAgICAgICAgQW5kIGxvZ2ljIHRvIHRyaWdnZXIgdGhlIGRpc3BsYXkg
b2YgdGhlIHZvbHVtZSBjb250cm9scyBhcmUgaW4gV2ViQ29yZTo6UmVuZGVyTWVkaWEuCisKKyAg
ICAgICAgTm8gdGVzdCBiZWNhdXNlIHRoZSB2b2x1bWUgc2xpZGVyIGNvbnRyb2wgaXMgdHVybmVk
IG9mZiBieSBkZWZhdWx0IGFuZAorICAgICAgICB0aGVyZSBpcyBubyBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgYXBwZWFyYW5jZXMgcHJvdmlkZWQuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNs
aWRlcjo6b3JpZW50YXRpb24pOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOgorICAgICAgICAqIGNzcy9DU1NTZWxl
Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6Oik6CisgICAgICAgICogY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rv
cjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5jc3M6CisgICAg
ICAgICogcGxhdGZvcm0vVGhlbWVUeXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpzdHlsZUZvckVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6
c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJD
b250YWluZXJFbGVtZW50OjpzZXRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpoaXRUZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaDoKKyAgICAgICAgKFdlYkNv
cmU6Oik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWlu
ZXJFbGVtZW50Ojppc1Zpc2libGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6c3R5bGVEaWRDaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OmNyZWF0ZVZvbHVtZVNsaWRlckNvbnRhaW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6Y3JlYXRlVm9sdW1lU2xpZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9scyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJNZWRpYTo6Zm9ybWF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJNZWRpYTo6dXBkYXRlVGltZURpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVk
aWE6OnVwZGF0ZUNvbnRyb2xWaXNpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
ZGlhOjpjaGFuZ2VPcGFjaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjp1cGRh
dGVWb2x1bWVTbGlkZXJDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6
OmZvcndhcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6bG93ZXN0UG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OnJpZ2h0bW9zdFBvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjpsZWZ0bW9zdFBvc2l0aW9uKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVkaWEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNvbnRy
b2xzOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6Y3JlYXRlVGh1bWJT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OnRodW1iUmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6Om1vdXNlRXZlbnRJc0luVGh1bWIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpzZXRWYWx1ZUZvclBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6cG9zaXRpb25Gb3JPZmZzZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU2xpZGVyOjpjdXJyZW50UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU2xpZGVyOjp0cmFja1NpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludE1lZGlh
Vm9sdW1lU2xpZGVyQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpw
YWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYik6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorCiAyMDA5
LTA4LTIwICBDaHJpc3RpYW4gUGxlc25lciBIYW5zZW4gIDxjaHJpc3RpYW4ucGxlc25lci5oYW5z
ZW5AZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwIGIvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCmluZGV4IGUzYTY1NGIu
LmVkZTlkY2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U2xpZGVyLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRl
ci5jcHAKQEAgLTc1LDYgKzc1LDcgQEAgQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIEFjY2Vzc2li
aWxpdHlTbGlkZXI6Om9yaWVudGF0aW9uKCkgY29uc3QKICAgICAgICAgCiAgICAgICAgIGNhc2Ug
U2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQ6IAogICAgICAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFy
dDoKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6CiAgICAgICAgICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uVmVydGljYWw7CiAgICAgICAgICAgICAKICAgICAg
ICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaCBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBi
ZTk2NDA3Li4xNzg2YzFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZU1hcHBpbmdzLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CkBAIC0yMjgsNiArMjI4LDE1IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShDb250cm9sUGFydCBlKQogICAgICAgICBjYXNlIE1lZGlhU2xp
ZGVyVGh1bWJQYXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFT
bGlkZXJ0aHVtYjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1l
U2xpZGVyQ29udGFpbmVyUGFydDoKKyAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZU1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVydGh1bWI7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBNZWRpYUNvbnRyb2xzQmFja2dyb3VuZFBhcnQ6CiAgICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYUNvbnRyb2xzQmFja2dyb3VuZDsKICAgICAgICAg
ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IGE3ZjcwMzQuLjlkOWRkMWIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvci5jcHAKQEAgLTEwOCw2ICsxMDgsNyBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNl
dWRvVHlwZSgpIGNvbnN0CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1l
ZGlhQ29udHJvbHNNdXRlQnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0
b24iKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJv
bHNQbGF5QnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24iKSk7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJvbHNUaW1lbGlu
ZSwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciIpKTsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1NlZWtCYWNrQnV0dG9uLCAoIi13ZWJraXQt
bWVkaWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1NlZWtGb3J3YXJkQnV0dG9uLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtc2Vlay1mb3J3YXJkLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1Jld2luZEJ1dHRvbiwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24iKSk7CkBAIC0xMTUsNiArMTE2LDcgQEAg
dm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzU3RhdHVzRGlzcGxheSwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXN0YXR1cy1kaXNwbGF5IikpOwogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzRnVsbHNjcmVlbkJ1dHRvbiwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uIikpOwogICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzVGltZWxpbmVDb250YWluZXIs
ICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIiKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXJD
b250YWluZXIsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5l
ciIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9s
c0N1cnJlbnRUaW1lRGlzcGxheSwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGlt
ZS1kaXNwbGF5IikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRp
YUNvbnRyb2xzVGltZVJlbWFpbmluZ0Rpc3BsYXksICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10
aW1lLXJlbWFpbmluZy1kaXNwbGF5IikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBub3RTdHIsICgibm90KCIpKTsKQEAgLTI0NCw2ICsyNDYsOSBAQCB2b2lkIENTU1Nl
bGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAgfSBlbHNlIGlmIChtX3ZhbHVl
ID09IG1lZGlhQ29udHJvbHNUaW1lbGluZSkgewogICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1
ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmU7CiAgICAgICAgIGVsZW1lbnQgPSB0cnVlOworICAgIH0g
ZWxzZSBpZiAobV92YWx1ZSA9PSBtZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyKSB7CisgICAgICAg
IG1fcHNldWRvVHlwZSA9IFBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXI7CisgICAgICAg
IGVsZW1lbnQgPSB0cnVlOwogICAgIH0gZWxzZSBpZiAobV92YWx1ZSA9PSBtZWRpYUNvbnRyb2xz
U2Vla0JhY2tCdXR0b24pIHsKICAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvTWVkaWFDb250
cm9sc1NlZWtCYWNrQnV0dG9uOwogICAgICAgICBlbGVtZW50ID0gdHJ1ZTsKQEAgLTI2NSw2ICsy
NzAsOSBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAg
fSBlbHNlIGlmIChtX3ZhbHVlID09IG1lZGlhQ29udHJvbHNUaW1lbGluZUNvbnRhaW5lcikgewog
ICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmVDb250YWlu
ZXI7CiAgICAgICAgIGVsZW1lbnQgPSB0cnVlOworICAgIH0gZWxzZSBpZiAobV92YWx1ZSA9PSBt
ZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyQ29udGFpbmVyKSB7CisgICAgICAgIG1fcHNldWRvVHlw
ZSA9IFBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXJDb250YWluZXI7CisgICAgICAgIGVs
ZW1lbnQgPSB0cnVlOwogICAgIH0gZWxzZSBpZiAobV92YWx1ZSA9PSBub3RTdHIpCiAgICAgICAg
IG1fcHNldWRvVHlwZSA9IFBzZXVkb05vdDsKICAgICBlbHNlIGlmIChtX3ZhbHVlID09IG50aENo
aWxkKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmgKaW5kZXggYWZkMGE2Zi4uNzgzNjEzNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0x
NzMsOSArMTczLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFBzZXVkb01l
ZGlhQ29udHJvbHNNdXRlQnV0dG9uLAogICAgICAgICAgICAgUHNldWRvTWVkaWFDb250cm9sc1Bs
YXlCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmVDb250YWlu
ZXIsCisgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyQ29udGFpbmVy
LAogICAgICAgICAgICAgUHNldWRvTWVkaWFDb250cm9sc0N1cnJlbnRUaW1lRGlzcGxheSwKICAg
ICAgICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNUaW1lUmVtYWluaW5nRGlzcGxheSwKICAgICAg
ICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNUaW1lbGluZSwKKyAgICAgICAgICAgIFBzZXVkb01l
ZGlhQ29udHJvbHNWb2x1bWVTbGlkZXIsCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xz
U2Vla0JhY2tCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzU2Vla0Zvcndh
cmRCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzUmV3aW5kQnV0dG9uLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nz
cy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCAxZGVkZTQ5Li5iZWM5MWM0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcApAQCAtMjUwNyw3ICsyNTA3LDEwIEBAIGJvb2wgQ1NTU3R5bGVTZWxl
Y3Rvcjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWws
IEVsZW1lCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmVDb250YWluZXI6CiAgICAgICAg
ICAgICAgICAgZHluYW1pY1BzZXVkbyA9IE1FRElBX0NPTlRST0xTX1RJTUVMSU5FX0NPTlRBSU5F
UjsKLSAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xz
Vm9sdW1lU2xpZGVyQ29udGFpbmVyOgorICAgICAgICAgICAgICAgIGR5bmFtaWNQc2V1ZG8gPSBN
RURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSX0NPTlRBSU5FUjsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb01lZGlhQ29u
dHJvbHNDdXJyZW50VGltZURpc3BsYXk6CiAgICAgICAgICAgICAgICAgZHluYW1pY1BzZXVkbyA9
IE1FRElBX0NPTlRST0xTX0NVUlJFTlRfVElNRV9ESVNQTEFZOwogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwpAQCAtMjUxNyw2ICsyNTIwLDkgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpT
ZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbCwgRWxlbWUK
ICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb01lZGlhQ29udHJvbHNUaW1lbGlu
ZToKICAgICAgICAgICAgICAgICBkeW5hbWljUHNldWRvID0gTUVESUFfQ09OVFJPTFNfVElNRUxJ
TkU7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyOgorICAgICAgICAgICAgICAg
IGR5bmFtaWNQc2V1ZG8gPSBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSOworICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
TWVkaWFDb250cm9sc1NlZWtCYWNrQnV0dG9uOgogICAgICAgICAgICAgICAgIGR5bmFtaWNQc2V1
ZG8gPSBNRURJQV9DT05UUk9MU19TRUVLX0JBQ0tfQlVUVE9OOwogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBi
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNjIxMjc2Yi4uNTNjNjY5MCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC01MTAsNiArNTEwLDkgQEAgbWVkaWEtcmV3aW5k
LWJ1dHRvbgogbWVkaWEtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbgogbWVkaWEtc2xpZGVyCiBt
ZWRpYS1zbGlkZXJ0aHVtYgorbWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXIKK21lZGlhLXZv
bHVtZS1zbGlkZXIKK21lZGlhLXZvbHVtZS1zbGlkZXJ0aHVtYgogbWVkaWEtY29udHJvbHMtYmFj
a2dyb3VuZAogbWVkaWEtY3VycmVudC10aW1lLWRpc3BsYXkKIG1lZGlhLXRpbWUtcmVtYWluaW5n
LWRpc3BsYXkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzIGIvV2Vi
Q29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKaW5kZXggZjk2OTRmOC4uZDBlYzkwZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvV2ViQ29yZS9jc3MvbWVk
aWFDb250cm9scy5jc3MKQEAgLTg4LDYgKzg4LDE0IEBAIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRpbWVsaW5lLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSB7
CiAgICAgcGFkZGluZzogMHB4IDJweDsKIH0KIAorYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXZvbHVtZS1zbGlkZXItY29udGFpbmVyIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCithdWRp
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCiBh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uIHsKICAgICAtd2Via2l0LWFwcGVh
cmFuY2U6IG1lZGlhLXNlZWstYmFjay1idXR0b247CiAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vVGhlbWVUeXBlcy5oCmluZGV4IGI3NjM2NzUuLjNhYjQxZGQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVU
eXBlcy5oCkBAIC00OSw5ICs0OSw4IEBAIGVudW0gQ29udHJvbFBhcnQgewogICAgIEJ1dHRvbkJl
dmVsUGFydCwgRGVmYXVsdEJ1dHRvblBhcnQsIExpc3Rib3hQYXJ0LCBMaXN0SXRlbVBhcnQsIAog
ICAgIE1lZGlhRnVsbHNjcmVlbkJ1dHRvblBhcnQsIE1lZGlhTXV0ZUJ1dHRvblBhcnQsIE1lZGlh
UGxheUJ1dHRvblBhcnQsIE1lZGlhU2Vla0JhY2tCdXR0b25QYXJ0LCAKICAgICBNZWRpYVNlZWtG
b3J3YXJkQnV0dG9uUGFydCwgTWVkaWFSZXdpbmRCdXR0b25QYXJ0LCBNZWRpYVJldHVyblRvUmVh
bHRpbWVCdXR0b25QYXJ0LAotICAgIE1lZGlhU2xpZGVyUGFydCwKLSAgICBNZWRpYVNsaWRlclRo
dW1iUGFydCwgTWVkaWFDb250cm9sc0JhY2tncm91bmRQYXJ0LAotICAgIE1lZGlhQ3VycmVudFRp
bWVQYXJ0LCBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0LAorICAgIE1lZGlhU2xpZGVyUGFydCwgTWVk
aWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyUGFydCwgTWVkaWFW
b2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCwKKyAgICBNZWRpYUNv
bnRyb2xzQmFja2dyb3VuZFBhcnQsIE1lZGlhQ3VycmVudFRpbWVQYXJ0LCBNZWRpYVRpbWVSZW1h
aW5pbmdQYXJ0LAogICAgIE1lbnVsaXN0UGFydCwgTWVudWxpc3RCdXR0b25QYXJ0LCBNZW51bGlz
dFRleHRQYXJ0LCBNZW51bGlzdFRleHRGaWVsZFBhcnQsCiAgICAgU2xpZGVySG9yaXpvbnRhbFBh
cnQsIFNsaWRlclZlcnRpY2FsUGFydCwgU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCwKICAgICBT
bGlkZXJUaHVtYlZlcnRpY2FsUGFydCwgQ2FyZXRQYXJ0LCBTZWFyY2hGaWVsZFBhcnQsIFNlYXJj
aEZpZWxkRGVjb3JhdGlvblBhcnQsCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAKaW5kZXggMGU1ODg0Yi4uOWY4NmZkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMTgzLDcgKzE4Myw3MCBAQCBib29sIE1lZGlhQ29u
dHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHls
ZSogc3R5bGUpCiAgICAgcmV0dXJuICFpc25hbihkdXJhdGlvbikgJiYgIWlzaW5mKGR1cmF0aW9u
KTsKIH0KIAotICAgIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJDb250YWluZXJFbGVtZW50KERvY3VtZW50KiBkb2MsIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1l
bnQpCisgICAgOiBNZWRpYUNvbnRyb2xFbGVtZW50KGRvYywgTUVESUFfQ09OVFJPTFNfVk9MVU1F
X1NMSURFUl9DT05UQUlORVIsIGVsZW1lbnQpCisgICAgLCBtX2lzVmlzaWJsZShmYWxzZSkKKyAg
ICAsIG1feCgwKQorICAgICwgbV95KDApCit7Cit9CisKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnN0eWxlRm9yRWxlbWVu
dCgpCit7CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IE1lZGlhQ29udHJvbEVsZW1l
bnQ6OnN0eWxlRm9yRWxlbWVudCgpOworICAgIHN0eWxlLT5zZXRQb3NpdGlvbihBYnNvbHV0ZVBv
c2l0aW9uKTsKKyAgICBzdHlsZS0+c2V0TGVmdChMZW5ndGgobV94LCBGaXhlZCkpOworICAgIHN0
eWxlLT5zZXRUb3AoTGVuZ3RoKG1feSwgRml4ZWQpKTsKKworICAgIGlmIChtX2lzVmlzaWJsZSkK
KyAgICAgICAgc3R5bGUtPnNldFZpc2liaWxpdHkoVklTSUJMRSk7CisgICAgZWxzZQorICAgICAg
ICBzdHlsZS0+c2V0VmlzaWJpbGl0eShXZWJDb3JlOjpISURERU4pOworICAgIHJldHVybiBzdHls
ZTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50Ojpz
ZXRWaXNpYmxlKGJvb2wgdmlzaWJsZSkKK3sKKyAgICBpZiAodmlzaWJsZSA9PSBtX2lzVmlzaWJs
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1faXNWaXNpYmxlID0gdmlzaWJsZTsKKworICAgIC8v
IFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBkdXJpbmcgdGhlIFJlbmRlck1lZGlhOjpsYXlvdXQoKQor
ICAgIC8vIGNhbGwsIHdoZXJlIHdlIGNhbm5vdCBjaGFuZ2UgdGhlIHJlbmRlcmVyIGF0IHRoaXMg
dGltZS4KKyAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIXJlbmRlcmVyKCktPnN0eWxlKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHls
ZTo6Y2xvbmUocmVuZGVyZXIoKS0+c3R5bGUoKSk7CisgICAgaWYgKHZpc2libGUpCisgICAgICAg
IHN0eWxlLT5zZXRWaXNpYmlsaXR5KFZJU0lCTEUpOworICAgIGVsc2UKKyAgICAgICAgc3R5bGUt
PnNldFZpc2liaWxpdHkoV2ViQ29yZTo6SElEREVOKTsKKyAgICByZW5kZXJlcigpLT5zZXRTdHls
ZShzdHlsZS5nZXQoKSk7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFp
bmVyRWxlbWVudDo6c2V0UG9zaXRpb24oaW50IHgsIGludCB5KQoreworICAgIGlmICh4ID09IG1f
eCAmJiB5ID09IG1feSkKKyAgICAgICAgcmV0dXJuOworICAgIG1feCA9IHg7CisgICAgbV95ID0g
eTsKKworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUo
cmVuZGVyZXIoKS0+c3R5bGUoKSk7CisgICAgc3R5bGUtPnNldExlZnQoTGVuZ3RoKHgsIEZpeGVk
KSk7CisgICAgc3R5bGUtPnNldFRvcChMZW5ndGgoeSwgRml4ZWQpKTsKKyAgICByZW5kZXJlcigp
LT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7Cit9CisKK2Jvb2wgTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6aGl0VGVzdChjb25zdCBJbnRQb2ludCYgYWJzUG9pbnQpCit7
CisgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzQXBwZWFyYW5j
ZSgpKQorICAgICAgICByZXR1cm4gcmVuZGVyZXIoKS0+dGhlbWUoKS0+aGl0VGVzdE1lZGlhQ29u
dHJvbFBhcnQocmVuZGVyZXIoKSwgYWJzUG9pbnQpOworCisgICAgcmV0dXJuIGZhbHNlOworfQor
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIE1lZGlhQ29udHJvbFN0YXR1c0Rp
c3BsYXlFbGVtZW50OjpNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudChEb2N1bWVudCog
ZG9jdW1lbnQsIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQpCkBAIC0yNTgsNyArMzIxLDggQEAg
dm9pZCBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnVwZGF0ZSgpCiAKIFBhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KCkKIHsK
LSAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCktPmdldENhY2hlZFBzZXVkb1N0
eWxlKG1fcHNldWRvU3R5bGVJZCk7CisgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUg
PSBtX21lZGlhRWxlbWVudC0+cmVuZGVyZXIoKS0+Z2V0Q2FjaGVkUHNldWRvU3R5bGUobV9wc2V1
ZG9TdHlsZUlkKTsKKyAgICByZXR1cm4gc3R5bGU7CiB9CiAKIGJvb2wgTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHlsZSkKQEAgLTUyOCw2
ICs1OTIsMzcgQEAgdm9pZCBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OnVwZGF0ZShib29s
IHVwZGF0ZUR1cmF0aW9uKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK01l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVs
ZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KQorICAg
IDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNRURJQV9DT05UUk9MU19WT0xV
TUVfU0xJREVSLCAicmFuZ2UiLCBlbGVtZW50LCBNZWRpYVZvbHVtZVNsaWRlcikKK3sKKyAgICBz
ZXRBdHRyaWJ1dGUobWF4QXR0ciwgU3RyaW5nOjpudW1iZXIoMSkpOworfQorCit2b2lkIE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQoreworICAgIC8vIExlZnQgYnV0dG9uIGlzIDAuIFJlamVjdHMgbW91c2UgZXZlbnRzIG5v
dCBmcm9tIGxlZnQgYnV0dG9uLgorICAgIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkgJiYgc3Rh
dGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YnV0dG9uKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVu
dCk7CisKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdmVyRXZl
bnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCB8fCBldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW1vdmVFdmVudCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgZmxvYXQgdm9sdW1lID0gbmFycm93UHJlY2lzaW9uVG9GbG9hdCh2YWx1ZSgpLnRv
RG91YmxlKCkpOworICAgIGlmICh2b2x1bWUgIT0gbV9tZWRpYUVsZW1lbnQtPnZvbHVtZSgpKSB7
CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAgICAgIG1fbWVkaWFFbGVtZW50LT5zZXRW
b2x1bWUodm9sdW1lLCBlYyk7CisgICAgfQorfQorCitib29sIE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAg
IHJldHVybiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUp
ICYmIHBhcmVudCgpICYmIHBhcmVudCgpLT5yZW5kZXJlcigpICYmIHBhcmVudCgpLT5yZW5kZXJl
cigpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRTsKK30KKworLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVu
dDo6TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50
LCBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KQogICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVt
ZW50KGRvY3VtZW50LCBNRURJQV9DT05UUk9MU19GVUxMU0NSRUVOX0JVVFRPTiwgImJ1dHRvbiIs
IGVsZW1lbnQsIE1lZGlhRnVsbHNjcmVlbkJ1dHRvbikKIHsKQEAgLTU4MCw2ICs2NzUsNSBAQCB2
b2lkIE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDo6c2V0VmlzaWJsZShib29sIHZpc2li
bGUpCiAgICAgcmVuZGVyZXIoKS0+c2V0U3R5bGUoc3R5bGUuZ2V0KCkpOwogfQogCi0KIH0gLy9u
YW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmIC8vIGVuYWJsZSh2aWRlbykKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCmluZGV4IDk1MzQ4YjIuLjg2M2NhZWEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmgKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaApAQCAtNTcsMTAgKzU3LDEzIEBAIGVu
dW0gTWVkaWFDb250cm9sRWxlbWVudFR5cGUgewogICAgIE1lZGlhVW5NdXRlQnV0dG9uLAogICAg
IE1lZGlhUGF1c2VCdXR0b24sCiAgICAgTWVkaWFUaW1lbGluZUNvbnRhaW5lciwKLSAgICBNZWRp
YUN1cnJlbnRUaW1lRGlzcGxheSwgCisgICAgTWVkaWFDdXJyZW50VGltZURpc3BsYXksCiAgICAg
TWVkaWFUaW1lUmVtYWluaW5nRGlzcGxheSwKICAgICBNZWRpYVN0YXR1c0Rpc3BsYXksCi0gICAg
TWVkaWFDb250cm9sc1BhbmVsCisgICAgTWVkaWFDb250cm9sc1BhbmVsLAorICAgIE1lZGlhVm9s
dW1lU2xpZGVyQ29udGFpbmVyLAorICAgIE1lZGlhVm9sdW1lU2xpZGVyLAorICAgIE1lZGlhVm9s
dW1lU2xpZGVyVGh1bWIKIH07CiAKIGNsYXNzIE1lZGlhQ29udHJvbFNoYWRvd1Jvb3RFbGVtZW50
IDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKQEAgLTEwNCw2ICsxMDcsMjIgQEAgcHVibGljOgog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2NsYXNzIE1lZGlhQ29udHJvbFZv
bHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sRWxlbWVudCB7
CitwdWJsaWM6CisgICAgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudChE
b2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IHN0eWxlRm9yRWxlbWVudCgpOworICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsK
KyAgICBib29sIGlzVmlzaWJsZSgpIHsgcmV0dXJuIG1faXNWaXNpYmxlOyB9CisgICAgdm9pZCBz
ZXRQb3NpdGlvbihpbnQgeCwgaW50IHkpOworICAgIGJvb2wgaGl0VGVzdChjb25zdCBJbnRQb2lu
dCYgYWJzUG9pbnQpOworCitwcml2YXRlOgorICAgIGJvb2wgbV9pc1Zpc2libGU7CisgICAgaW50
IG1feCwgbV95OworfTsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiBjbGFz
cyBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xF
bGVtZW50IHsKIHB1YmxpYzoKICAgICBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudChE
b2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQqKTsKQEAgLTIwNyw2ICsyMjYsMTUgQEAgcHVibGlj
OgogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2NsYXNzIE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsK
K3B1YmxpYzoKKyAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50Kiwg
SFRNTE1lZGlhRWxlbWVudCopOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50Kik7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUq
KTsKK307CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogY2xhc3MgTWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRF
bGVtZW50IHsKIHB1YmxpYzoKICAgICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVu
dChEb2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lZGlhLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNw
cAppbmRleCBiODdlOTlkLi5iZGFiNTFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZWRpYS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFD
b250cm9sRWxlbWVudHMuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUmVu
ZGVyVGhlbWUuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
TWF0aEV4dHJhcy5oPgogCkBAIC0xMzIsNiArMTMzLDEwIEBAIHZvaWQgUmVuZGVyTWVkaWE6OnN0
eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3R5CiAgICAgICAgICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+dXBkYXRlU3R5bGUoKTsKICAg
ICAgICAgaWYgKG1fdGltZVJlbWFpbmluZ0Rpc3BsYXkpCiAgICAgICAgICAgICBtX3RpbWVSZW1h
aW5pbmdEaXNwbGF5LT51cGRhdGVTdHlsZSgpOworICAgICAgICBpZiAobV92b2x1bWVTbGlkZXJD
b250YWluZXIpCisgICAgICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+dXBkYXRlU3R5
bGUoKTsKKyAgICAgICAgaWYgKG1fdm9sdW1lU2xpZGVyKQorICAgICAgICAgICAgbV92b2x1bWVT
bGlkZXItPnVwZGF0ZVN0eWxlKCk7CiAgICAgfQogfQogCkBAIC0yNDAsNiArMjQ1LDIxIEBAIHZv
aWQgUmVuZGVyTWVkaWE6OmNyZWF0ZVRpbWVsaW5lKCkKICAgICBtX3RpbWVsaW5lLT5hdHRhY2hU
b1BhcmVudChtX3RpbWVsaW5lQ29udGFpbmVyLmdldCgpKTsKIH0KIAordm9pZCBSZW5kZXJNZWRp
YTo6Y3JlYXRlVm9sdW1lU2xpZGVyQ29udGFpbmVyKCkKK3sKKyAgICBBU1NFUlQoIW1fdm9sdW1l
U2xpZGVyQ29udGFpbmVyKTsKKyAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9IG5ldyBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50KGRvY3VtZW50KCksIG1lZGlhRWxl
bWVudCgpKTsKKyAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXR0YWNoVG9QYXJlbnQobV9w
YW5lbC5nZXQoKSk7Cit9CisKK3ZvaWQgUmVuZGVyTWVkaWE6OmNyZWF0ZVZvbHVtZVNsaWRlcigp
Cit7CisgICAgQVNTRVJUKCFtX3ZvbHVtZVNsaWRlcik7CisgICAgbV92b2x1bWVTbGlkZXIgPSBu
ZXcgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudChkb2N1bWVudCgpLCBtZWRpYUVsZW1l
bnQoKSk7CisgICAgbV92b2x1bWVTbGlkZXItPnNldEF0dHJpYnV0ZShwcmVjaXNpb25BdHRyLCAi
ZmxvYXQiKTsKKyAgICBtX3ZvbHVtZVNsaWRlci0+YXR0YWNoVG9QYXJlbnQobV92b2x1bWVTbGlk
ZXJDb250YWluZXIuZ2V0KCkpOworfQorCiB2b2lkIFJlbmRlck1lZGlhOjpjcmVhdGVDdXJyZW50
VGltZURpc3BsYXkoKQogewogICAgIEFTU0VSVCghbV9jdXJyZW50VGltZURpc3BsYXkpOwpAQCAt
MjYwLDEyICsyODAsMTIgQEAgdm9pZCBSZW5kZXJNZWRpYTo6Y3JlYXRlRnVsbHNjcmVlbkJ1dHRv
bigpCiAgICAgbV9mdWxsc2NyZWVuQnV0dG9uID0gbmV3IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5C
dXR0b25FbGVtZW50KGRvY3VtZW50KCksIG1lZGlhRWxlbWVudCgpKTsKICAgICBtX2Z1bGxzY3Jl
ZW5CdXR0b24tPmF0dGFjaFRvUGFyZW50KG1fcGFuZWwuZ2V0KCkpOwogfQotICAgIAorCiB2b2lk
IFJlbmRlck1lZGlhOjp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiAgICAgdXBkYXRlQ29udHJvbHMo
KTsKIH0KLSAgICAgICAgICAgIAorCiB2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9scygp
CiB7CiAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWEgPSBtZWRpYUVsZW1lbnQoKTsKQEAgLTI4
NSw2ICszMDUsOCBAQCB2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9scygpCiAgICAgICAg
ICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheSA9IDA7CiAgICAgICAgICAgICBtX3RpbWVSZW1haW5p
bmdEaXNwbGF5ID0gMDsKICAgICAgICAgICAgIG1fZnVsbHNjcmVlbkJ1dHRvbiA9IDA7CisgICAg
ICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9IDA7CisgICAgICAgICAgICBtX3ZvbHVt
ZVNsaWRlciA9IDA7CiAgICAgICAgICAgICBtX2NvbnRyb2xzU2hhZG93Um9vdCA9IDA7CiAgICAg
ICAgIH0KICAgICAgICAgbV9vcGFjaXR5QW5pbWF0aW9uVG8gPSAxLjBmOwpAQCAtMjkyLDcgKzMx
NCw3IEBAIHZvaWQgUmVuZGVyTWVkaWE6OnVwZGF0ZUNvbnRyb2xzKCkKICAgICAgICAgbV90aW1l
VXBkYXRlVGltZXIuc3RvcCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAorCiAgICAg
aWYgKCFtX2NvbnRyb2xzU2hhZG93Um9vdCkgewogICAgICAgICBjcmVhdGVDb250cm9sc1NoYWRv
d1Jvb3QoKTsKICAgICAgICAgY3JlYXRlUGFuZWwoKTsKQEAgLTMwMyw5ICszMjUsMTIgQEAgdm9p
ZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbHMoKQogICAgICAgICAgICAgY3JlYXRlUmV0dXJu
VG9SZWFsdGltZUJ1dHRvbigpOwogICAgICAgICAgICAgY3JlYXRlU3RhdHVzRGlzcGxheSgpOwog
ICAgICAgICAgICAgY3JlYXRlVGltZWxpbmVDb250YWluZXIoKTsKKyAgICAgICAgICAgIGNyZWF0
ZVZvbHVtZVNsaWRlckNvbnRhaW5lcigpOwogICAgICAgICAgICAgY3JlYXRlU2Vla0JhY2tCdXR0
b24oKTsKICAgICAgICAgICAgIGNyZWF0ZVNlZWtGb3J3YXJkQnV0dG9uKCk7CiAgICAgICAgICAg
ICBjcmVhdGVGdWxsc2NyZWVuQnV0dG9uKCk7CisgICAgICAgICAgICBpZiAobV92b2x1bWVTbGlk
ZXJDb250YWluZXIpCisgICAgICAgICAgICAgICAgY3JlYXRlVm9sdW1lU2xpZGVyKCk7CiAgICAg
ICAgICAgICBpZiAobV90aW1lbGluZUNvbnRhaW5lcikgewogICAgICAgICAgICAgICAgIGNyZWF0
ZUN1cnJlbnRUaW1lRGlzcGxheSgpOwogICAgICAgICAgICAgICAgIGNyZWF0ZVRpbWVsaW5lKCk7
CkBAIC0zMjIsNyArMzQ3LDYgQEAgdm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbHMoKQog
ICAgICAgICBtX3RpbWVVcGRhdGVUaW1lci5zdGFydFJlcGVhdGluZyhjVGltZVVwZGF0ZVJlcGVh
dERlbGF5KTsKICAgICB9CiAKLSAgICAKICAgICBpZiAobV9wYW5lbCkgewogICAgICAgICAvLyB1
cGRhdGUoKSBtaWdodCBhbHRlciB0aGUgb3BhY2l0eSBvZiB0aGUgZWxlbWVudCwgZXNwZWNpYWxs
eSBpZiB3ZSBhcmUgaW4gdGhlIG1pZGRsZQogICAgICAgICAvLyBvZiBhbiBhbmltYXRpb24uIFRo
aXMgaXMgdGhlIG9ubHkgZWxlbWVudCBjb25jZXJuZWQgYXMgd2UgYW5pbWF0ZSBvbmx5IHRoaXMg
ZWxlbWVudC4KQEAgLTMzNiw2ICszNjAsOCBAQCB2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVDb250
cm9scygpCiAgICAgICAgIG1fcGxheUJ1dHRvbi0+dXBkYXRlKCk7CiAgICAgaWYgKG1fdGltZWxp
bmVDb250YWluZXIpCiAgICAgICAgIG1fdGltZWxpbmVDb250YWluZXItPnVwZGF0ZSgpOworICAg
IGlmIChtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcikKKyAgICAgICAgbV92b2x1bWVTbGlkZXJDb250
YWluZXItPnVwZGF0ZSgpOwogICAgIGlmIChtX3RpbWVsaW5lKQogICAgICAgICBtX3RpbWVsaW5l
LT51cGRhdGUoKTsKICAgICBpZiAobV9jdXJyZW50VGltZURpc3BsYXkpCkBAIC0zNTQsNiArMzgw
LDggQEAgdm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbHMoKQogICAgICAgICBtX3N0YXR1
c0Rpc3BsYXktPnVwZGF0ZSgpOwogICAgIGlmIChtX2Z1bGxzY3JlZW5CdXR0b24pCiAgICAgICAg
IG1fZnVsbHNjcmVlbkJ1dHRvbi0+dXBkYXRlKCk7CisgICAgaWYgKG1fdm9sdW1lU2xpZGVyKQor
ICAgICAgICBtX3ZvbHVtZVNsaWRlci0+dXBkYXRlKCk7CiAKICAgICB1cGRhdGVUaW1lRGlzcGxh
eSgpOwogICAgIHVwZGF0ZUNvbnRyb2xWaXNpYmlsaXR5KCk7CkBAIC0zNjUsMTIgKzM5MywxMiBA
QCB2b2lkIFJlbmRlck1lZGlhOjp0aW1lVXBkYXRlVGltZXJGaXJlZChUaW1lcjxSZW5kZXJNZWRp
YT4qKQogICAgICAgICBtX3RpbWVsaW5lLT51cGRhdGUoZmFsc2UpOwogICAgIHVwZGF0ZVRpbWVE
aXNwbGF5KCk7CiB9Ci0gICAgCisKIFN0cmluZyBSZW5kZXJNZWRpYTo6Zm9ybWF0VGltZShmbG9h
dCB0aW1lKQogewogICAgIGlmICghaXNmaW5pdGUodGltZSkpCiAgICAgICAgIHRpbWUgPSAwOwot
ICAgIGludCBzZWNvbmRzID0gKGludClmYWJzZih0aW1lKTsgCisgICAgaW50IHNlY29uZHMgPSAo
aW50KWZhYnNmKHRpbWUpOwogICAgIGludCBob3VycyA9IHNlY29uZHMgLyAoNjAgKiA2MCk7CiAg
ICAgaW50IG1pbnV0ZXMgPSAoc2Vjb25kcyAvIDYwKSAlIDYwOwogICAgIHNlY29uZHMgJT0gNjA7
CkBAIC0zOTQsMTIgKzQyMiwxMiBAQCB2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVUaW1lRGlzcGxh
eSgpCiAgICAgU3RyaW5nIHRpbWVTdHJpbmcgPSBmb3JtYXRUaW1lKG5vdyk7CiAgICAgRXhjZXB0
aW9uQ29kZSBlYzsKICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+c2V0SW5uZXJUZXh0KHRpbWVT
dHJpbmcsIGVjKTsKLSAgICAKKwogICAgIHRpbWVTdHJpbmcgPSBmb3JtYXRUaW1lKG5vdyAtIGR1
cmF0aW9uKTsKICAgICBtX3RpbWVSZW1haW5pbmdEaXNwbGF5LT5zZXRJbm5lclRleHQodGltZVN0
cmluZywgZWMpOwogfQogCi12b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9sVmlzaWJpbGl0
eSgpIAordm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbFZpc2liaWxpdHkoKQogewogICAg
IGlmICghbV9wYW5lbCB8fCAhbV9wYW5lbC0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNDEyLDcgKzQ0MCw3IEBAIHZvaWQgUmVuZGVyTWVkaWE6OnVwZGF0ZUNvbnRyb2xWaXNpYmls
aXR5KCkKICAgICAvLyBEb24ndCBmYWRlIGlmIHRoZSBtZWRpYSBlbGVtZW50IGlzIG5vdCB2aXNp
YmxlCiAgICAgaWYgKHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQogICAgICAgICBy
ZXR1cm47Ci0gICAgCisKICAgICBib29sIHNob3VsZEhpZGVDb250cm9sbGVyID0gIW1fbW91c2VP
dmVyICYmICFtZWRpYS0+Y2FuUGxheSgpOwogCiAgICAgLy8gRG8gZmFkaW5nIG1hbnVhbGx5LCBj
c3MgYW5pbWF0aW9ucyBkb24ndCB3b3JrIHdpdGggc2hhZG93IHRyZWVzCkBAIC00NDAsOCArNDY4
LDggQEAgdm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbFZpc2liaWxpdHkoKQogICAgIG1f
b3BhY2l0eUFuaW1hdGlvblN0YXJ0VGltZSA9IGN1cnJlbnRUaW1lKCk7CiAgICAgbV9vcGFjaXR5
QW5pbWF0aW9uVGltZXIuc3RhcnRSZXBlYXRpbmcoY09wYWNpdHlBbmltYXRpb25SZXBlYXREZWxh
eSk7CiB9Ci0gICAgCi12b2lkIFJlbmRlck1lZGlhOjpjaGFuZ2VPcGFjaXR5KEhUTUxFbGVtZW50
KiBlLCBmbG9hdCBvcGFjaXR5KSAKKwordm9pZCBSZW5kZXJNZWRpYTo6Y2hhbmdlT3BhY2l0eShI
VE1MRWxlbWVudCogZSwgZmxvYXQgb3BhY2l0eSkKIHsKICAgICBpZiAoIWUgfHwgIWUtPnJlbmRl
cmVyKCkgfHwgIWUtPnJlbmRlcmVyKCktPnN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQ1
MSw3ICs0NzksNyBAQCB2b2lkIFJlbmRlck1lZGlhOjpjaGFuZ2VPcGFjaXR5KEhUTUxFbGVtZW50
KiBlLCBmbG9hdCBvcGFjaXR5KQogICAgIHMtPnNldFpJbmRleCgwKTsKICAgICBlLT5yZW5kZXJl
cigpLT5zZXRTdHlsZShzLnJlbGVhc2UoKSk7CiB9Ci0gICAgCisKIHZvaWQgUmVuZGVyTWVkaWE6
Om9wYWNpdHlBbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFJlbmRlck1lZGlhPiopCiB7CiAgICAg
ZG91YmxlIHRpbWUgPSBjdXJyZW50VGltZSgpIC0gbV9vcGFjaXR5QW5pbWF0aW9uU3RhcnRUaW1l
OwpAQCAtNDYzLDEzICs0OTEsNTEgQEAgdm9pZCBSZW5kZXJNZWRpYTo6b3BhY2l0eUFuaW1hdGlv
blRpbWVyRmlyZWQoVGltZXI8UmVuZGVyTWVkaWE+KikKICAgICBjaGFuZ2VPcGFjaXR5KG1fcGFu
ZWwuZ2V0KCksIG9wYWNpdHkpOwogfQogCit2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVWb2x1bWVT
bGlkZXJDb250YWluZXIoYm9vbCB2aXNpYmxlKSB7CisgICAgaWYgKCFtX3ZvbHVtZVNsaWRlckNv
bnRhaW5lciB8fCAhbV92b2x1bWVTbGlkZXJDb250YWluZXItPnJlbmRlcmVyKCkgfHwgbV92b2x1
bWVTbGlkZXJDb250YWluZXItPnJlbmRlcmVyKCktPnN0eWxlKCktPmRpc3BsYXkoKSA9PSBOT05F
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAodmlzaWJsZSAmJiAhbV92b2x1bWVTbGlkZXJD
b250YWluZXItPmlzVmlzaWJsZSgpKSB7CisgICAgICAgIGlmICghbV9tdXRlQnV0dG9uIHx8ICFt
X211dGVCdXR0b24tPnJlbmRlcmVyKCkgfHwgIW1fbXV0ZUJ1dHRvbi0+cmVuZGVyQm94KCkgfHwg
IW1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5yZW5kZXJCb3goKSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBpbnQgeCA9IG1fbXV0ZUJ1dHRvbi0+cmVuZGVyQm94KCktPm9mZnNldExl
ZnQoKTsKKyAgICAgICAgaW50IHkgPSBtX211dGVCdXR0b24tPnJlbmRlckJveCgpLT5vZmZzZXRU
b3AoKSAtIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5yZW5kZXJCb3goKS0+aGVpZ2h0KCk7Cisg
ICAgICAgIEZsb2F0UG9pbnQgYWJzUG9pbnQgPSBtX211dGVCdXR0b24tPnJlbmRlcmVyKCktPmxv
Y2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KHgsIHkpLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgaWYg
KGFic1BvaW50LnkoKSA8IDApCisgICAgICAgICAgICB5ID0gbV9tdXRlQnV0dG9uLT5yZW5kZXJC
b3goKS0+b2Zmc2V0VG9wKCkgKyBtX211dGVCdXR0b24tPnJlbmRlckJveCgpLT5oZWlnaHQoKTsK
KyAgICAgICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPnNldFZpc2libGUodHJ1ZSk7CisgICAg
ICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5zZXRQb3NpdGlvbih4LCB5KTsKKyAgICAgICAg
bV92b2x1bWVTbGlkZXItPnVwZGF0ZVN0eWxlKCk7CisgICAgICAgIGlmIChtX3ZvbHVtZVNsaWRl
ci0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIG1fdm9sdW1lU2xpZGVyLT5yZW5kZXJlcigpLT51
cGRhdGVGcm9tRWxlbWVudCgpOworICAgIH0gZWxzZSBpZiAoIXZpc2libGUpIHsKKyAgICAgICAg
bV92b2x1bWVTbGlkZXJDb250YWluZXItPnNldFZpc2libGUoZmFsc2UpOworICAgICAgICBtX3Zv
bHVtZVNsaWRlci0+dXBkYXRlKCk7CisgICAgfQorfQorCiB2b2lkIFJlbmRlck1lZGlhOjpmb3J3
YXJkRXZlbnQoRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkg
JiYgbV9jb250cm9sc1NoYWRvd1Jvb3QpIHsKICAgICAgICAgTW91c2VFdmVudCogbW91c2VFdmVu
dCA9IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCk7CiAgICAgICAgIEludFBvaW50IHBv
aW50KG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSk7Ci0gICAgICAgIGlmIChtX211dGVC
dXR0b24gJiYgbV9tdXRlQnV0dG9uLT5oaXRUZXN0KHBvaW50KSkKKyAgICAgICAgYm9vbCBzaG93
Vm9sdW1lU2xpZGVyID0gZmFsc2U7CisgICAgICAgIGlmIChtX211dGVCdXR0b24gJiYgbV9tdXRl
QnV0dG9uLT5oaXRUZXN0KHBvaW50KSkgewogICAgICAgICAgICAgbV9tdXRlQnV0dG9uLT5kZWZh
dWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAgICAgICAgIGlmIChldmVudC0+dHlwZSgpICE9
IGV2ZW50TmFtZXMoKS5tb3VzZW91dEV2ZW50KQorICAgICAgICAgICAgICAgIHNob3dWb2x1bWVT
bGlkZXIgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29u
dGFpbmVyICYmIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5oaXRUZXN0KHBvaW50KSkKKyAgICAg
ICAgICAgIHNob3dWb2x1bWVTbGlkZXIgPSB0cnVlOworCisgICAgICAgIGlmIChtX3ZvbHVtZVNs
aWRlciAmJiBtX3ZvbHVtZVNsaWRlci0+aGl0VGVzdChwb2ludCkpIHsKKyAgICAgICAgICAgIG1f
dm9sdW1lU2xpZGVyLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAgICAgICAgIHNo
b3dWb2x1bWVTbGlkZXIgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgdXBkYXRlVm9sdW1l
U2xpZGVyQ29udGFpbmVyKHNob3dWb2x1bWVTbGlkZXIpOwogCiAgICAgICAgIGlmIChtX3BsYXlC
dXR0b24gJiYgbV9wbGF5QnV0dG9uLT5oaXRUZXN0KHBvaW50KSkKICAgICAgICAgICAgIG1fcGxh
eUJ1dHRvbi0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CkBAIC00OTEsNyArNTU3LDcgQEAg
dm9pZCBSZW5kZXJNZWRpYTo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBldmVudCkKIAogICAgICAgICBp
ZiAobV9mdWxsc2NyZWVuQnV0dG9uICYmIG1fZnVsbHNjcmVlbkJ1dHRvbi0+aGl0VGVzdChwb2lu
dCkpCiAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5CdXR0b24tPmRlZmF1bHRFdmVudEhhbmRsZXIo
ZXZlbnQpOwotICAgICAgICAKKwogICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkubW91c2VvdmVyRXZlbnQpIHsKICAgICAgICAgICAgIG1fbW91c2VPdmVyID0gdHJ1ZTsK
ICAgICAgICAgICAgIHVwZGF0ZUNvbnRyb2xWaXNpYmlsaXR5KCk7CkBAIC01MTEsNyArNTc3LDcg
QEAgaW50IFJlbmRlck1lZGlhOjpsb3dlc3RQb3NpdGlvbihib29sIGluY2x1ZGVPdmVyZmxvd0lu
dGVyaW9yLCBib29sIGluY2x1ZGVTZWxmKQogICAgIGludCBib3R0b20gPSBSZW5kZXJSZXBsYWNl
ZDo6bG93ZXN0UG9zaXRpb24oaW5jbHVkZU92ZXJmbG93SW50ZXJpb3IsIGluY2x1ZGVTZWxmKTsK
ICAgICBpZiAoIW1fY29udHJvbHNTaGFkb3dSb290IHx8ICFtX2NvbnRyb2xzU2hhZG93Um9vdC0+
cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIGJvdHRvbTsKLSAgICAKKwogICAgIHJldHVybiBt
YXgoYm90dG9tLCAgbV9jb250cm9sc1NoYWRvd1Jvb3QtPnJlbmRlckJveCgpLT55KCkgKyBtX2Nv
bnRyb2xzU2hhZG93Um9vdC0+cmVuZGVyQm94KCktPmxvd2VzdFBvc2l0aW9uKGluY2x1ZGVPdmVy
Zmxvd0ludGVyaW9yLCBpbmNsdWRlU2VsZikpOwogfQogCkBAIC01MjAsNyArNTg2LDcgQEAgaW50
IFJlbmRlck1lZGlhOjpyaWdodG1vc3RQb3NpdGlvbihib29sIGluY2x1ZGVPdmVyZmxvd0ludGVy
aW9yLCBib29sIGluY2x1ZGVTZWwKICAgICBpbnQgcmlnaHQgPSBSZW5kZXJSZXBsYWNlZDo6cmln
aHRtb3N0UG9zaXRpb24oaW5jbHVkZU92ZXJmbG93SW50ZXJpb3IsIGluY2x1ZGVTZWxmKTsKICAg
ICBpZiAoIW1fY29udHJvbHNTaGFkb3dSb290IHx8ICFtX2NvbnRyb2xzU2hhZG93Um9vdC0+cmVu
ZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIHJpZ2h0OwotICAgIAorCiAgICAgcmV0dXJuIG1heChy
aWdodCwgbV9jb250cm9sc1NoYWRvd1Jvb3QtPnJlbmRlckJveCgpLT54KCkgKyBtX2NvbnRyb2xz
U2hhZG93Um9vdC0+cmVuZGVyQm94KCktPnJpZ2h0bW9zdFBvc2l0aW9uKGluY2x1ZGVPdmVyZmxv
d0ludGVyaW9yLCBpbmNsdWRlU2VsZikpOwogfQogCkBAIC01MjksNyArNTk1LDcgQEAgaW50IFJl
bmRlck1lZGlhOjpsZWZ0bW9zdFBvc2l0aW9uKGJvb2wgaW5jbHVkZU92ZXJmbG93SW50ZXJpb3Is
IGJvb2wgaW5jbHVkZVNlbGYKICAgICBpbnQgbGVmdCA9IFJlbmRlclJlcGxhY2VkOjpsZWZ0bW9z
dFBvc2l0aW9uKGluY2x1ZGVPdmVyZmxvd0ludGVyaW9yLCBpbmNsdWRlU2VsZik7CiAgICAgaWYg
KCFtX2NvbnRyb2xzU2hhZG93Um9vdCB8fCAhbV9jb250cm9sc1NoYWRvd1Jvb3QtPnJlbmRlcmVy
KCkpCiAgICAgICAgIHJldHVybiBsZWZ0OwotICAgIAorCiAgICAgcmV0dXJuIG1pbihsZWZ0LCBt
X2NvbnRyb2xzU2hhZG93Um9vdC0+cmVuZGVyQm94KCktPngoKSArICBtX2NvbnRyb2xzU2hhZG93
Um9vdC0+cmVuZGVyQm94KCktPmxlZnRtb3N0UG9zaXRpb24oaW5jbHVkZU92ZXJmbG93SW50ZXJp
b3IsIGluY2x1ZGVTZWxmKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lZGlhLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5oCmluZGV4IDU2OTdi
ZGEuLjJjZTgwYzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmgK
KysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaApAQCAtNDEsMTAgKzQxLDEyIEBA
IGNsYXNzIE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9s
UmV3aW5kQnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVC
dXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OworY2xhc3Mg
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5CdXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50
OwogY2xhc3MgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNv
bnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ7CitjbGFzcyBNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJDb250YWluZXJFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sRWxlbWVudDsKIGNsYXNz
IE1lZGlhUGxheWVyOwogCkBAIC05OSw2ICsxMDEsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY3Jl
YXRlU3RhdHVzRGlzcGxheSgpOwogICAgIHZvaWQgY3JlYXRlVGltZWxpbmVDb250YWluZXIoKTsK
ICAgICB2b2lkIGNyZWF0ZVRpbWVsaW5lKCk7CisgICAgdm9pZCBjcmVhdGVWb2x1bWVTbGlkZXJD
b250YWluZXIoKTsKKyAgICB2b2lkIGNyZWF0ZVZvbHVtZVNsaWRlcigpOwogICAgIHZvaWQgY3Jl
YXRlQ3VycmVudFRpbWVEaXNwbGF5KCk7CiAgICAgdm9pZCBjcmVhdGVUaW1lUmVtYWluaW5nRGlz
cGxheSgpOwogICAgIHZvaWQgY3JlYXRlRnVsbHNjcmVlbkJ1dHRvbigpOwpAQCAtMTA5LDYgKzEx
Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGFuZ2VPcGFjaXR5KEhUTUxFbGVtZW50KiwgZmxv
YXQgb3BhY2l0eSk7CiAgICAgdm9pZCBvcGFjaXR5QW5pbWF0aW9uVGltZXJGaXJlZChUaW1lcjxS
ZW5kZXJNZWRpYT4qKTsKIAorICAgIHZvaWQgdXBkYXRlVm9sdW1lU2xpZGVyQ29udGFpbmVyKGJv
b2wgdmlzaWJsZSk7CisKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogCiAgICAgUmVmUHRyPEhUTUxF
bGVtZW50PiBtX2NvbnRyb2xzU2hhZG93Um9vdDsKQEAgLTEyMCw4ICsxMjYsMTAgQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gbV9yZXdpbmRC
dXR0b247CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVt
ZW50PiBtX3JldHVyblRvUmVhbHRpbWVCdXR0b247CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRp
bWVsaW5lRWxlbWVudD4gbV90aW1lbGluZTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyRWxlbWVudD4gbV92b2x1bWVTbGlkZXI7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5CdXR0b25FbGVtZW50PiBtX2Z1bGxzY3JlZW5CdXR0b247CiAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gbV90aW1lbGluZUNvbnRhaW5lcjsK
KyAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gbV92
b2x1bWVTbGlkZXJDb250YWluZXI7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5
RWxlbWVudD4gbV9jdXJyZW50VGltZURpc3BsYXk7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRp
bWVEaXNwbGF5RWxlbWVudD4gbV90aW1lUmVtYWluaW5nRGlzcGxheTsKICAgICBSZWZQdHI8TWVk
aWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ+IG1fc3RhdHVzRGlzcGxheTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3BwIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAKaW5kZXggMDZkOTAxYS4uZDlkZThhYSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAKKysr
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAKQEAgLTEyOCw2ICsx
MjgsMTggQEAgYm9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0
KE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIHBhcnQsIFIKICAgICAgICAgY2FzZSBNZWRpYVNsaWRl
clRodW1iOgogICAgICAgICAgICAgcGFpbnRUaGVtZVBhcnQoU2FmYXJpVGhlbWU6Ok1lZGlhU2xp
ZGVyVGh1bWJQYXJ0LCBwYWludEluZm8uY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIHIsIE5T
UmVndWxhckNvbnRyb2xTaXplLCBkZXRlcm1pbmVTdGF0ZShvKSk7CiAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcjoKKyAgICAgICAgICAg
IC8vIEZJWE1FOiBJbXBsZW1udCB2b2x1bWUgc2xpZGVyLgorICAgICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVt
ZVNsaWRlcjoKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1udCB2b2x1bWUgc2xpZGVyLgor
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iOgorICAgICAgICAgICAgLy8gRklYTUU6
IEltcGxlbW50IHZvbHVtZSBzbGlkZXIuCisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1lZGlhVGltZWxpbmVDb250YWlu
ZXI6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMTQ3LDQgKzE1OSwzIEBAIGJvb2wgUmVuZGVyTWVkaWFDb250cm9sczo6cGFpbnRNZWRp
YUNvbnRyb2xzUGFydChNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBwYXJ0LCBSCiAjZW5kaWYgIC8v
ICNpZiBFTkFCTEUoVklERU8pCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNsaWRlci5jcHAKaW5kZXggNGQxNDFiNy4uMjQ3YWNkYSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbGlkZXIuY3BwCkBAIC0yODEsNiArMjgxLDggQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gUmVuZGVyU2xpZGVyOjpjcmVhdGVUaHVtYlN0eWxlKGNvbnN0IFJlbmRlclN0eWxlKiBwYXJl
bnQKICAgICAgICAgc3R5bGUtPnNldEFwcGVhcmFuY2UoU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFy
dCk7CiAgICAgZWxzZSBpZiAocGFyZW50U3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVNsaWRl
clBhcnQpCiAgICAgICAgIHN0eWxlLT5zZXRBcHBlYXJhbmNlKE1lZGlhU2xpZGVyVGh1bWJQYXJ0
KTsKKyAgICBlbHNlIGlmIChwYXJlbnRTdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1l
U2xpZGVyUGFydCkKKyAgICAgICAgc3R5bGUtPnNldEFwcGVhcmFuY2UoTWVkaWFWb2x1bWVTbGlk
ZXJUaHVtYlBhcnQpOwogCiAgICAgcmV0dXJuIHN0eWxlLnJlbGVhc2UoKTsKIH0KQEAgLTI5OCw3
ICszMDAsNyBAQCBJbnRSZWN0IFJlbmRlclNsaWRlcjo6dGh1bWJSZWN0KCkKIAogICAgIGRvdWJs
ZSBmcmFjdGlvbiA9IHNsaWRlclBvc2l0aW9uKHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
Pihub2RlKCkpKTsKICAgICBJbnRSZWN0IGNvbnRlbnRSZWN0ID0gY29udGVudEJveFJlY3QoKTsK
LSAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCkgewor
ICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0IHx8IHN0
eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQpIHsKICAgICAgICAg
dGh1bWJSZWN0LnNldFgoY29udGVudFJlY3QueCgpICsgKGNvbnRlbnRSZWN0LndpZHRoKCkgLSB0
aHVtYlJlY3Qud2lkdGgoKSkgLyAyKTsKICAgICAgICAgdGh1bWJSZWN0LnNldFkoY29udGVudFJl
Y3QueSgpICsgc3RhdGljX2Nhc3Q8aW50PihuZXh0YWZ0ZXIoKGNvbnRlbnRSZWN0LmhlaWdodCgp
IC0gdGh1bWJSZWN0LmhlaWdodCgpKSArIDEsIDApICogKDEgLSBmcmFjdGlvbikpKTsKICAgICB9
IGVsc2UgewpAQCAtMzkxLDcgKzM5Myw3IEBAIGJvb2wgUmVuZGVyU2xpZGVyOjptb3VzZUV2ZW50
SXNJblRodW1iKE1vdXNlRXZlbnQqIGV2dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYg
RU5BQkxFKFZJREVPKQotICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFTbGlk
ZXJQYXJ0KSB7CisgICAgaWYgKHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVNsaWRlclBh
cnQgfHwgc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCkgewog
ICAgICAgICBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgKnNsaWRlclRodW1iID0gc3RhdGljX2Nh
c3Q8TWVkaWFDb250cm9sSW5wdXRFbGVtZW50Kj4obV90aHVtYi0+cmVuZGVyZXIoKS0+bm9kZSgp
KTsKICAgICAgICAgcmV0dXJuIHNsaWRlclRodW1iLT5oaXRUZXN0KGV2dC0+YWJzb2x1dGVMb2Nh
dGlvbigpKTsKICAgICB9CkBAIC00MjMsNyArNDI1LDcgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OnNl
dFZhbHVlRm9yUG9zaXRpb24oaW50IHBvc2l0aW9uKQogICAgIC8vIENhbGN1bGF0ZSB0aGUgbmV3
IHZhbHVlIGJhc2VkIG9uIHRoZSBwb3NpdGlvbiwgYW5kIHNlbmQgaXQgdG8gdGhlIGVsZW1lbnQu
CiAgICAgU2xpZGVyUmFuZ2UgcmFuZ2UoZWxlbWVudCk7CiAgICAgZG91YmxlIGZyYWN0aW9uID0g
c3RhdGljX2Nhc3Q8ZG91YmxlPihwb3NpdGlvbikgLyB0cmFja1NpemUoKTsKLSAgICBpZiAoc3R5
bGUoKS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCkKKyAgICBpZiAoc3R5bGUo
KS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJh
bmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KQogICAgICAgICBmcmFjdGlvbiA9IDEgLSBm
cmFjdGlvbjsKICAgICBkb3VibGUgdmFsdWUgPSByYW5nZS5jbGFtcFZhbHVlKHJhbmdlLnZhbHVl
RnJvbVByb3BvcnRpb24oZnJhY3Rpb24pKTsKICAgICBlbGVtZW50LT5zZXRWYWx1ZUZyb21SZW5k
ZXJlcihTdHJpbmc6Om51bWJlcih2YWx1ZSkpOwpAQCAtNDQ0LDcgKzQ0Niw3IEBAIGludCBSZW5k
ZXJTbGlkZXI6OnBvc2l0aW9uRm9yT2Zmc2V0KGNvbnN0IEludFBvaW50JiBwKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIGludCBwb3NpdGlvbjsKLSAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5j
ZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCkKKyAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgp
ID09IFNsaWRlclZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFW
b2x1bWVTbGlkZXJQYXJ0KQogICAgICAgICBwb3NpdGlvbiA9IHAueSgpIC0gbV90aHVtYi0+cmVu
ZGVyQm94KCktPmhlaWdodCgpIC8gMjsKICAgICBlbHNlCiAgICAgICAgIHBvc2l0aW9uID0gcC54
KCkgLSBtX3RodW1iLT5yZW5kZXJCb3goKS0+d2lkdGgoKSAvIDI7CkBAIC00NTcsNyArNDU5LDcg
QEAgaW50IFJlbmRlclNsaWRlcjo6Y3VycmVudFBvc2l0aW9uKCkKICAgICBBU1NFUlQobV90aHVt
Yik7CiAgICAgQVNTRVJUKG1fdGh1bWItPnJlbmRlcmVyKCkpOwogCi0gICAgaWYgKHN0eWxlKCkt
PmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQpCisgICAgaWYgKHN0eWxlKCktPmFw
cGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQgfHwgc3R5bGUoKS0+YXBwZWFyYW5jZSgp
ID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCkKICAgICAgICAgcmV0dXJuIHRvUmVuZGVyQm94KG1f
dGh1bWItPnJlbmRlcmVyKCkpLT55KCkgLSBjb250ZW50Qm94UmVjdCgpLnkoKTsKICAgICByZXR1
cm4gdG9SZW5kZXJCb3gobV90aHVtYi0+cmVuZGVyZXIoKSktPngoKSAtIGNvbnRlbnRCb3hSZWN0
KCkueCgpOwogfQpAQCAtNDY3LDcgKzQ2OSw3IEBAIGludCBSZW5kZXJTbGlkZXI6OnRyYWNrU2l6
ZSgpCiAgICAgQVNTRVJUKG1fdGh1bWIpOwogICAgIEFTU0VSVChtX3RodW1iLT5yZW5kZXJlcigp
KTsKIAotICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0
KQorICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0IHx8
IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQpCiAgICAgICAg
IHJldHVybiBjb250ZW50SGVpZ2h0KCkgLSBtX3RodW1iLT5yZW5kZXJCb3goKS0+aGVpZ2h0KCk7
CiAgICAgcmV0dXJuIGNvbnRlbnRXaWR0aCgpIC0gbV90aHVtYi0+cmVuZGVyQm94KCktPndpZHRo
KCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggZDQ4NjUyZi4uN2I0ZGZlMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMTgzLDYgKzE4Myw3IEBAIHZvaWQgUmVu
ZGVyVGhlbWU6OmFkanVzdFN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJT
dHlsZSogc3R5bGUsIEVsCiAgICAgICAgIGNhc2UgTWVudWxpc3RCdXR0b25QYXJ0OgogICAgICAg
ICAgICAgcmV0dXJuIGFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoc2VsZWN0b3IsIHN0eWxlLCBl
KTsKICAgICAgICAgY2FzZSBNZWRpYVNsaWRlclBhcnQ6CisgICAgICAgIGNhc2UgTWVkaWFWb2x1
bWVTbGlkZXJQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlckhvcml6b250YWxQYXJ0OgogICAgICAg
ICBjYXNlIFNsaWRlclZlcnRpY2FsUGFydDoKICAgICAgICAgICAgIHJldHVybiBhZGp1c3RTbGlk
ZXJUcmFja1N0eWxlKHNlbGVjdG9yLCBzdHlsZSwgZSk7CkBAIC0yNzgsNiArMjc5LDE0IEBAIGJv
b2wgUmVuZGVyVGhlbWU6OnBhaW50KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0
OjpQYWludEluZm8mIHBhaW50SW5mCiAgICAgICAgICAgICBpZiAoby0+cGFyZW50KCktPmlzU2xp
ZGVyKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFTbGlkZXJUaHVtYihvLCBw
YWludEluZm8sIHIpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFWb2x1
bWVTbGlkZXJDb250YWluZXJQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFWb2x1
bWVTbGlkZXJDb250YWluZXIobywgcGFpbnRJbmZvLCByKTsKKyAgICAgICAgY2FzZSBNZWRpYVZv
bHVtZVNsaWRlclBhcnQ6CisgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVZvbHVtZVNsaWRl
clRyYWNrKG8sIHBhaW50SW5mbywgcik7CisgICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJU
aHVtYlBhcnQ6CisgICAgICAgICAgICBpZiAoby0+cGFyZW50KCktPmlzU2xpZGVyKCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihvLCBwYWludElu
Zm8sIHIpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWVkaWFUaW1lUmVtYWlu
aW5nUGFydDoKICAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlhVGltZVJlbWFpbmluZyhvLCBw
YWludEluZm8sIHIpOwogICAgICAgICBjYXNlIE1lZGlhQ3VycmVudFRpbWVQYXJ0OgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgKaW5kZXggNzk1ZGFhMi4uYzAwYzJlYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5oCkBAIC0yNDQsNiArMjQ0LDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBw
YWludE1lZGlhU2Vla0ZvcndhcmRCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2Jq
ZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBwYWludE1lZGlhU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVu
ZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiwgY29u
c3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyKFJl
bmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVj
dCYpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNs
aWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRN
ZWRpYVZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFs
IGJvb2wgcGFpbnRNZWRpYVJld2luZEJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJP
YmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAg
dmlydHVhbCBib29sIHBhaW50TWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uKFJlbmRlck9iamVj
dCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0
dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzQmFja2dyb3Vu
ZChSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCAwMTNkMzM1Li5mNTdhMmNjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTY5LDEwICs2OSw5
IEBAIGVudW0gUHNldWRvSWQgewogICAgIE5PUFNFVURPLCBGSVJTVF9MSU5FLCBGSVJTVF9MRVRU
RVIsIEJFRk9SRSwgQUZURVIsIFNFTEVDVElPTiwgRklSU1RfTElORV9JTkhFUklURUQsIFNDUk9M
TEJBUiwgRklMRV9VUExPQURfQlVUVE9OLCBJTlBVVF9QTEFDRUhPTERFUiwKICAgICBTTElERVJf
VEhVTUIsIFNFQVJDSF9DQU5DRUxfQlVUVE9OLCBTRUFSQ0hfREVDT1JBVElPTiwgU0VBUkNIX1JF
U1VMVFNfREVDT1JBVElPTiwgU0VBUkNIX1JFU1VMVFNfQlVUVE9OLCBNRURJQV9DT05UUk9MU19Q
QU5FTCwKICAgICBNRURJQV9DT05UUk9MU19QTEFZX0JVVFRPTiwgTUVESUFfQ09OVFJPTFNfTVVU
RV9CVVRUT04sIE1FRElBX0NPTlRST0xTX1RJTUVMSU5FLCBNRURJQV9DT05UUk9MU19USU1FTElO
RV9DT05UQUlORVIsCi0gICAgTUVESUFfQ09OVFJPTFNfQ1VSUkVOVF9USU1FX0RJU1BMQVksIE1F
RElBX0NPTlRST0xTX1RJTUVfUkVNQUlOSU5HX0RJU1BMQVksIE1FRElBX0NPTlRST0xTX1NFRUtf
QkFDS19CVVRUT04sIAotICAgIE1FRElBX0NPTlRST0xTX1NFRUtfRk9SV0FSRF9CVVRUT04sIE1F
RElBX0NPTlRST0xTX0ZVTExTQ1JFRU5fQlVUVE9OLCBNRURJQV9DT05UUk9MU19SRVdJTkRfQlVU
VE9OLAotICAgIE1FRElBX0NPTlRST0xTX1JFVFVSTl9UT19SRUFMVElNRV9CVVRUT04sIE1FRElB
X0NPTlRST0xTX1NUQVRVU19ESVNQTEFZLAotICAgIFNDUk9MTEJBUl9USFVNQiwgU0NST0xMQkFS
X0JVVFRPTiwgU0NST0xMQkFSX1RSQUNLLCBTQ1JPTExCQVJfVFJBQ0tfUElFQ0UsIFNDUk9MTEJB
Ul9DT1JORVIsIFJFU0laRVIsCisgICAgTUVESUFfQ09OVFJPTFNfVk9MVU1FX1NMSURFUiwgTUVE
SUFfQ09OVFJPTFNfVk9MVU1FX1NMSURFUl9DT05UQUlORVIsIE1FRElBX0NPTlRST0xTX0NVUlJF
TlRfVElNRV9ESVNQTEFZLCBNRURJQV9DT05UUk9MU19USU1FX1JFTUFJTklOR19ESVNQTEFZLCBN
RURJQV9DT05UUk9MU19TRUVLX0JBQ0tfQlVUVE9OLAorICAgIE1FRElBX0NPTlRST0xTX1NFRUtf
Rk9SV0FSRF9CVVRUT04sIE1FRElBX0NPTlRST0xTX0ZVTExTQ1JFRU5fQlVUVE9OLCBNRURJQV9D
T05UUk9MU19SRVdJTkRfQlVUVE9OLCBNRURJQV9DT05UUk9MU19SRVRVUk5fVE9fUkVBTFRJTUVf
QlVUVE9OLAorICAgIE1FRElBX0NPTlRST0xTX1NUQVRVU19ESVNQTEFZLCBTQ1JPTExCQVJfVEhV
TUIsIFNDUk9MTEJBUl9CVVRUT04sIFNDUk9MTEJBUl9UUkFDSywgU0NST0xMQkFSX1RSQUNLX1BJ
RUNFLCBTQ1JPTExCQVJfQ09STkVSLCBSRVNJWkVSLAogCiAgICAgRklSU1RfSU5URVJOQUxfUFNF
VURPSUQgPSBGSUxFX1VQTE9BRF9CVVRUT04KIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38395</attachid>
            <date>2009-08-21 14:18:32 -0700</date>
            <delta_ts>2009-08-24 16:50:41 -0700</delta_ts>
            <desc>added controls, style and implementation of controls but no theme</desc>
            <filename>webkit-add-volume-slider.patch</filename>
            <type>text/plain</type>
            <size>40371</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjUzNzUyMi4uYjQwOGYxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MyBAQAorMjAwOS0wOC0yMCAgQWxwaGEgTGFtICA8
aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIHBhbmVsIGRvZXMgbm90IGhhdmUgYSB2b2x1bWUg
Y29udHJvbCBzbGlkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MjQxCisKKyAgICAgICAgSW50cm9kdWNlZCAiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyIiBhbmQKKyAgICAgICAgIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9s
dW1lLXNsaWRlci1jb250YWluZXIiIGFuZCB0aGUgc3VwcG9ydGluZworICAgICAgICBpbXBsZW1l
bnRhdGlvbnMuIEFsc28gYWRkZWQgYXBwZWFyYW5jZXMgb2YgIm1lZGlhLXZvbHVtZS1zbGlkZXIi
LAorICAgICAgICAibWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXIiLgorCisgICAgICAgIFRo
ZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGNvbnRyb2xzIGFyZSBpbiBXZWJDb3JlOjpNZWRpYUNv
bnRyb2xFbGVtZW50cy4KKyAgICAgICAgQW5kIGxvZ2ljIHRvIHRyaWdnZXIgdGhlIGRpc3BsYXkg
b2YgdGhlIHZvbHVtZSBjb250cm9scyBhcmUgaW4gV2ViQ29yZTo6UmVuZGVyTWVkaWEuCisKKyAg
ICAgICAgTm8gdGVzdCBiZWNhdXNlIHRoZSB2b2x1bWUgc2xpZGVyIGNvbnRyb2wgaXMgdHVybmVk
IG9mZiBieSBkZWZhdWx0IGFuZAorICAgICAgICB0aGVyZSBpcyBubyBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgYXBwZWFyYW5jZXMgcHJvdmlkZWQuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNs
aWRlcjo6b3JpZW50YXRpb24pOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOgorICAgICAgICAqIGNzcy9DU1NTZWxl
Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6Oik6CisgICAgICAgICogY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rv
cjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5jc3M6CisgICAg
ICAgICogcGxhdGZvcm0vVGhlbWVUeXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpzdHlsZUZvckVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6
c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJD
b250YWluZXJFbGVtZW50OjpzZXRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpoaXRUZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaDoKKyAgICAgICAgKFdlYkNv
cmU6Oik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWlu
ZXJFbGVtZW50Ojppc1Zpc2libGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6c3R5bGVEaWRDaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OmNyZWF0ZVZvbHVtZVNsaWRlckNvbnRhaW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6Y3JlYXRlVm9sdW1lU2xpZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9scyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJNZWRpYTo6Zm9ybWF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJNZWRpYTo6dXBkYXRlVGltZURpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVk
aWE6OnVwZGF0ZUNvbnRyb2xWaXNpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
ZGlhOjpjaGFuZ2VPcGFjaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjp1cGRh
dGVWb2x1bWVTbGlkZXJDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6
OmZvcndhcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6bG93ZXN0UG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OnJpZ2h0bW9zdFBvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjpsZWZ0bW9zdFBvc2l0aW9uKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVkaWEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNvbnRy
b2xzOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6Y3JlYXRlVGh1bWJT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OnRodW1iUmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6Om1vdXNlRXZlbnRJc0luVGh1bWIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpzZXRWYWx1ZUZvclBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6cG9zaXRpb25Gb3JPZmZzZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU2xpZGVyOjpjdXJyZW50UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU2xpZGVyOjp0cmFja1NpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludE1lZGlh
Vm9sdW1lU2xpZGVyQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpw
YWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYik6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorCiAyMDA5
LTA4LTIwICBDaHJpc3RpYW4gUGxlc25lciBIYW5zZW4gIDxjaHJpc3RpYW4ucGxlc25lci5oYW5z
ZW5AZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwIGIvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCmluZGV4IGUzYTY1NGIu
LmVkZTlkY2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U2xpZGVyLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRl
ci5jcHAKQEAgLTc1LDYgKzc1LDcgQEAgQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIEFjY2Vzc2li
aWxpdHlTbGlkZXI6Om9yaWVudGF0aW9uKCkgY29uc3QKICAgICAgICAgCiAgICAgICAgIGNhc2Ug
U2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQ6IAogICAgICAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFy
dDoKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6CiAgICAgICAgICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uVmVydGljYWw7CiAgICAgICAgICAgICAKICAgICAg
ICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaCBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBi
ZTk2NDA3Li4xNzg2YzFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZU1hcHBpbmdzLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CkBAIC0yMjgsNiArMjI4LDE1IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShDb250cm9sUGFydCBlKQogICAgICAgICBjYXNlIE1lZGlhU2xp
ZGVyVGh1bWJQYXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFT
bGlkZXJ0aHVtYjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1l
U2xpZGVyQ29udGFpbmVyUGFydDoKKyAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZU1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVydGh1bWI7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBNZWRpYUNvbnRyb2xzQmFja2dyb3VuZFBhcnQ6CiAgICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYUNvbnRyb2xzQmFja2dyb3VuZDsKICAgICAgICAg
ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IGE3ZjcwMzQuLjlkOWRkMWIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvci5jcHAKQEAgLTEwOCw2ICsxMDgsNyBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNl
dWRvVHlwZSgpIGNvbnN0CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1l
ZGlhQ29udHJvbHNNdXRlQnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0
b24iKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJv
bHNQbGF5QnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24iKSk7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJvbHNUaW1lbGlu
ZSwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciIpKTsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1NlZWtCYWNrQnV0dG9uLCAoIi13ZWJraXQt
bWVkaWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1NlZWtGb3J3YXJkQnV0dG9uLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtc2Vlay1mb3J3YXJkLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1Jld2luZEJ1dHRvbiwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24iKSk7CkBAIC0xMTUsNiArMTE2LDcgQEAg
dm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzU3RhdHVzRGlzcGxheSwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXN0YXR1cy1kaXNwbGF5IikpOwogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzRnVsbHNjcmVlbkJ1dHRvbiwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uIikpOwogICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzVGltZWxpbmVDb250YWluZXIs
ICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIiKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXJD
b250YWluZXIsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5l
ciIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9s
c0N1cnJlbnRUaW1lRGlzcGxheSwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGlt
ZS1kaXNwbGF5IikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRp
YUNvbnRyb2xzVGltZVJlbWFpbmluZ0Rpc3BsYXksICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10
aW1lLXJlbWFpbmluZy1kaXNwbGF5IikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBub3RTdHIsICgibm90KCIpKTsKQEAgLTI0NCw2ICsyNDYsOSBAQCB2b2lkIENTU1Nl
bGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAgfSBlbHNlIGlmIChtX3ZhbHVl
ID09IG1lZGlhQ29udHJvbHNUaW1lbGluZSkgewogICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1
ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmU7CiAgICAgICAgIGVsZW1lbnQgPSB0cnVlOworICAgIH0g
ZWxzZSBpZiAobV92YWx1ZSA9PSBtZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyKSB7CisgICAgICAg
IG1fcHNldWRvVHlwZSA9IFBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXI7CisgICAgICAg
IGVsZW1lbnQgPSB0cnVlOwogICAgIH0gZWxzZSBpZiAobV92YWx1ZSA9PSBtZWRpYUNvbnRyb2xz
U2Vla0JhY2tCdXR0b24pIHsKICAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvTWVkaWFDb250
cm9sc1NlZWtCYWNrQnV0dG9uOwogICAgICAgICBlbGVtZW50ID0gdHJ1ZTsKQEAgLTI2NSw2ICsy
NzAsOSBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAg
fSBlbHNlIGlmIChtX3ZhbHVlID09IG1lZGlhQ29udHJvbHNUaW1lbGluZUNvbnRhaW5lcikgewog
ICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmVDb250YWlu
ZXI7CiAgICAgICAgIGVsZW1lbnQgPSB0cnVlOworICAgIH0gZWxzZSBpZiAobV92YWx1ZSA9PSBt
ZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyQ29udGFpbmVyKSB7CisgICAgICAgIG1fcHNldWRvVHlw
ZSA9IFBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXJDb250YWluZXI7CisgICAgICAgIGVs
ZW1lbnQgPSB0cnVlOwogICAgIH0gZWxzZSBpZiAobV92YWx1ZSA9PSBub3RTdHIpCiAgICAgICAg
IG1fcHNldWRvVHlwZSA9IFBzZXVkb05vdDsKICAgICBlbHNlIGlmIChtX3ZhbHVlID09IG50aENo
aWxkKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmgKaW5kZXggYWZkMGE2Zi4uNzgzNjEzNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0x
NzMsOSArMTczLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFBzZXVkb01l
ZGlhQ29udHJvbHNNdXRlQnV0dG9uLAogICAgICAgICAgICAgUHNldWRvTWVkaWFDb250cm9sc1Bs
YXlCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmVDb250YWlu
ZXIsCisgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyQ29udGFpbmVy
LAogICAgICAgICAgICAgUHNldWRvTWVkaWFDb250cm9sc0N1cnJlbnRUaW1lRGlzcGxheSwKICAg
ICAgICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNUaW1lUmVtYWluaW5nRGlzcGxheSwKICAgICAg
ICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNUaW1lbGluZSwKKyAgICAgICAgICAgIFBzZXVkb01l
ZGlhQ29udHJvbHNWb2x1bWVTbGlkZXIsCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xz
U2Vla0JhY2tCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzU2Vla0Zvcndh
cmRCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzUmV3aW5kQnV0dG9uLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nz
cy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCAxZGVkZTQ5Li5iZWM5MWM0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcApAQCAtMjUwNyw3ICsyNTA3LDEwIEBAIGJvb2wgQ1NTU3R5bGVTZWxl
Y3Rvcjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWws
IEVsZW1lCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmVDb250YWluZXI6CiAgICAgICAg
ICAgICAgICAgZHluYW1pY1BzZXVkbyA9IE1FRElBX0NPTlRST0xTX1RJTUVMSU5FX0NPTlRBSU5F
UjsKLSAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xz
Vm9sdW1lU2xpZGVyQ29udGFpbmVyOgorICAgICAgICAgICAgICAgIGR5bmFtaWNQc2V1ZG8gPSBN
RURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSX0NPTlRBSU5FUjsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb01lZGlhQ29u
dHJvbHNDdXJyZW50VGltZURpc3BsYXk6CiAgICAgICAgICAgICAgICAgZHluYW1pY1BzZXVkbyA9
IE1FRElBX0NPTlRST0xTX0NVUlJFTlRfVElNRV9ESVNQTEFZOwogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwpAQCAtMjUxNyw2ICsyNTIwLDkgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpT
ZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbCwgRWxlbWUK
ICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb01lZGlhQ29udHJvbHNUaW1lbGlu
ZToKICAgICAgICAgICAgICAgICBkeW5hbWljUHNldWRvID0gTUVESUFfQ09OVFJPTFNfVElNRUxJ
TkU7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyOgorICAgICAgICAgICAgICAg
IGR5bmFtaWNQc2V1ZG8gPSBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSOworICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
TWVkaWFDb250cm9sc1NlZWtCYWNrQnV0dG9uOgogICAgICAgICAgICAgICAgIGR5bmFtaWNQc2V1
ZG8gPSBNRURJQV9DT05UUk9MU19TRUVLX0JBQ0tfQlVUVE9OOwogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBi
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNjIxMjc2Yi4uNTNjNjY5MCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC01MTAsNiArNTEwLDkgQEAgbWVkaWEtcmV3aW5k
LWJ1dHRvbgogbWVkaWEtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbgogbWVkaWEtc2xpZGVyCiBt
ZWRpYS1zbGlkZXJ0aHVtYgorbWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXIKK21lZGlhLXZv
bHVtZS1zbGlkZXIKK21lZGlhLXZvbHVtZS1zbGlkZXJ0aHVtYgogbWVkaWEtY29udHJvbHMtYmFj
a2dyb3VuZAogbWVkaWEtY3VycmVudC10aW1lLWRpc3BsYXkKIG1lZGlhLXRpbWUtcmVtYWluaW5n
LWRpc3BsYXkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzIGIvV2Vi
Q29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKaW5kZXggZjk2OTRmOC4uZDBlYzkwZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvV2ViQ29yZS9jc3MvbWVk
aWFDb250cm9scy5jc3MKQEAgLTg4LDYgKzg4LDE0IEBAIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRpbWVsaW5lLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSB7
CiAgICAgcGFkZGluZzogMHB4IDJweDsKIH0KIAorYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXZvbHVtZS1zbGlkZXItY29udGFpbmVyIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCithdWRp
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCiBh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uIHsKICAgICAtd2Via2l0LWFwcGVh
cmFuY2U6IG1lZGlhLXNlZWstYmFjay1idXR0b247CiAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vVGhlbWVUeXBlcy5oCmluZGV4IGI3NjM2NzUuLjNhYjQxZGQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVU
eXBlcy5oCkBAIC00OSw5ICs0OSw4IEBAIGVudW0gQ29udHJvbFBhcnQgewogICAgIEJ1dHRvbkJl
dmVsUGFydCwgRGVmYXVsdEJ1dHRvblBhcnQsIExpc3Rib3hQYXJ0LCBMaXN0SXRlbVBhcnQsIAog
ICAgIE1lZGlhRnVsbHNjcmVlbkJ1dHRvblBhcnQsIE1lZGlhTXV0ZUJ1dHRvblBhcnQsIE1lZGlh
UGxheUJ1dHRvblBhcnQsIE1lZGlhU2Vla0JhY2tCdXR0b25QYXJ0LCAKICAgICBNZWRpYVNlZWtG
b3J3YXJkQnV0dG9uUGFydCwgTWVkaWFSZXdpbmRCdXR0b25QYXJ0LCBNZWRpYVJldHVyblRvUmVh
bHRpbWVCdXR0b25QYXJ0LAotICAgIE1lZGlhU2xpZGVyUGFydCwKLSAgICBNZWRpYVNsaWRlclRo
dW1iUGFydCwgTWVkaWFDb250cm9sc0JhY2tncm91bmRQYXJ0LAotICAgIE1lZGlhQ3VycmVudFRp
bWVQYXJ0LCBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0LAorICAgIE1lZGlhU2xpZGVyUGFydCwgTWVk
aWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyUGFydCwgTWVkaWFW
b2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCwKKyAgICBNZWRpYUNv
bnRyb2xzQmFja2dyb3VuZFBhcnQsIE1lZGlhQ3VycmVudFRpbWVQYXJ0LCBNZWRpYVRpbWVSZW1h
aW5pbmdQYXJ0LAogICAgIE1lbnVsaXN0UGFydCwgTWVudWxpc3RCdXR0b25QYXJ0LCBNZW51bGlz
dFRleHRQYXJ0LCBNZW51bGlzdFRleHRGaWVsZFBhcnQsCiAgICAgU2xpZGVySG9yaXpvbnRhbFBh
cnQsIFNsaWRlclZlcnRpY2FsUGFydCwgU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCwKICAgICBT
bGlkZXJUaHVtYlZlcnRpY2FsUGFydCwgQ2FyZXRQYXJ0LCBTZWFyY2hGaWVsZFBhcnQsIFNlYXJj
aEZpZWxkRGVjb3JhdGlvblBhcnQsCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAKaW5kZXggMGU1ODg0Yi4uOWY4NmZkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMTgzLDcgKzE4Myw3MCBAQCBib29sIE1lZGlhQ29u
dHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHls
ZSogc3R5bGUpCiAgICAgcmV0dXJuICFpc25hbihkdXJhdGlvbikgJiYgIWlzaW5mKGR1cmF0aW9u
KTsKIH0KIAotICAgIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJDb250YWluZXJFbGVtZW50KERvY3VtZW50KiBkb2MsIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1l
bnQpCisgICAgOiBNZWRpYUNvbnRyb2xFbGVtZW50KGRvYywgTUVESUFfQ09OVFJPTFNfVk9MVU1F
X1NMSURFUl9DT05UQUlORVIsIGVsZW1lbnQpCisgICAgLCBtX2lzVmlzaWJsZShmYWxzZSkKKyAg
ICAsIG1feCgwKQorICAgICwgbV95KDApCit7Cit9CisKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnN0eWxlRm9yRWxlbWVu
dCgpCit7CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IE1lZGlhQ29udHJvbEVsZW1l
bnQ6OnN0eWxlRm9yRWxlbWVudCgpOworICAgIHN0eWxlLT5zZXRQb3NpdGlvbihBYnNvbHV0ZVBv
c2l0aW9uKTsKKyAgICBzdHlsZS0+c2V0TGVmdChMZW5ndGgobV94LCBGaXhlZCkpOworICAgIHN0
eWxlLT5zZXRUb3AoTGVuZ3RoKG1feSwgRml4ZWQpKTsKKworICAgIGlmIChtX2lzVmlzaWJsZSkK
KyAgICAgICAgc3R5bGUtPnNldFZpc2liaWxpdHkoVklTSUJMRSk7CisgICAgZWxzZQorICAgICAg
ICBzdHlsZS0+c2V0VmlzaWJpbGl0eShXZWJDb3JlOjpISURERU4pOworICAgIHJldHVybiBzdHls
ZTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50Ojpz
ZXRWaXNpYmxlKGJvb2wgdmlzaWJsZSkKK3sKKyAgICBpZiAodmlzaWJsZSA9PSBtX2lzVmlzaWJs
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1faXNWaXNpYmxlID0gdmlzaWJsZTsKKworICAgIC8v
IFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBkdXJpbmcgdGhlIFJlbmRlck1lZGlhOjpsYXlvdXQoKQor
ICAgIC8vIGNhbGwsIHdoZXJlIHdlIGNhbm5vdCBjaGFuZ2UgdGhlIHJlbmRlcmVyIGF0IHRoaXMg
dGltZS4KKyAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIXJlbmRlcmVyKCktPnN0eWxlKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHls
ZTo6Y2xvbmUocmVuZGVyZXIoKS0+c3R5bGUoKSk7CisgICAgaWYgKHZpc2libGUpCisgICAgICAg
IHN0eWxlLT5zZXRWaXNpYmlsaXR5KFZJU0lCTEUpOworICAgIGVsc2UKKyAgICAgICAgc3R5bGUt
PnNldFZpc2liaWxpdHkoV2ViQ29yZTo6SElEREVOKTsKKyAgICByZW5kZXJlcigpLT5zZXRTdHls
ZShzdHlsZS5nZXQoKSk7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFp
bmVyRWxlbWVudDo6c2V0UG9zaXRpb24oaW50IHgsIGludCB5KQoreworICAgIGlmICh4ID09IG1f
eCAmJiB5ID09IG1feSkKKyAgICAgICAgcmV0dXJuOworICAgIG1feCA9IHg7CisgICAgbV95ID0g
eTsKKworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUo
cmVuZGVyZXIoKS0+c3R5bGUoKSk7CisgICAgc3R5bGUtPnNldExlZnQoTGVuZ3RoKHgsIEZpeGVk
KSk7CisgICAgc3R5bGUtPnNldFRvcChMZW5ndGgoeSwgRml4ZWQpKTsKKyAgICByZW5kZXJlcigp
LT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7Cit9CisKK2Jvb2wgTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6aGl0VGVzdChjb25zdCBJbnRQb2ludCYgYWJzUG9pbnQpCit7
CisgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzQXBwZWFyYW5j
ZSgpKQorICAgICAgICByZXR1cm4gcmVuZGVyZXIoKS0+dGhlbWUoKS0+aGl0VGVzdE1lZGlhQ29u
dHJvbFBhcnQocmVuZGVyZXIoKSwgYWJzUG9pbnQpOworCisgICAgcmV0dXJuIGZhbHNlOworfQor
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIE1lZGlhQ29udHJvbFN0YXR1c0Rp
c3BsYXlFbGVtZW50OjpNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudChEb2N1bWVudCog
ZG9jdW1lbnQsIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQpCkBAIC0yNTgsNyArMzIxLDggQEAg
dm9pZCBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnVwZGF0ZSgpCiAKIFBhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KCkKIHsK
LSAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCktPmdldENhY2hlZFBzZXVkb1N0
eWxlKG1fcHNldWRvU3R5bGVJZCk7CisgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUg
PSBtX21lZGlhRWxlbWVudC0+cmVuZGVyZXIoKS0+Z2V0Q2FjaGVkUHNldWRvU3R5bGUobV9wc2V1
ZG9TdHlsZUlkKTsKKyAgICByZXR1cm4gc3R5bGU7CiB9CiAKIGJvb2wgTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHlsZSkKQEAgLTUyOCw2
ICs1OTIsMzcgQEAgdm9pZCBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OnVwZGF0ZShib29s
IHVwZGF0ZUR1cmF0aW9uKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK01l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVs
ZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KQorICAg
IDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNRURJQV9DT05UUk9MU19WT0xV
TUVfU0xJREVSLCAicmFuZ2UiLCBlbGVtZW50LCBNZWRpYVZvbHVtZVNsaWRlcikKK3sKKyAgICBz
ZXRBdHRyaWJ1dGUobWF4QXR0ciwgU3RyaW5nOjpudW1iZXIoMSkpOworfQorCit2b2lkIE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQoreworICAgIC8vIExlZnQgYnV0dG9uIGlzIDAuIFJlamVjdHMgbW91c2UgZXZlbnRzIG5v
dCBmcm9tIGxlZnQgYnV0dG9uLgorICAgIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkgJiYgc3Rh
dGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YnV0dG9uKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVu
dCk7CisKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdmVyRXZl
bnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCB8fCBldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW1vdmVFdmVudCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgZmxvYXQgdm9sdW1lID0gbmFycm93UHJlY2lzaW9uVG9GbG9hdCh2YWx1ZSgpLnRv
RG91YmxlKCkpOworICAgIGlmICh2b2x1bWUgIT0gbV9tZWRpYUVsZW1lbnQtPnZvbHVtZSgpKSB7
CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAgICAgIG1fbWVkaWFFbGVtZW50LT5zZXRW
b2x1bWUodm9sdW1lLCBlYyk7CisgICAgfQorfQorCitib29sIE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAg
IHJldHVybiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUp
ICYmIHBhcmVudCgpICYmIHBhcmVudCgpLT5yZW5kZXJlcigpICYmIHBhcmVudCgpLT5yZW5kZXJl
cigpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRTsKK30KKworLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVu
dDo6TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50
LCBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KQogICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVt
ZW50KGRvY3VtZW50LCBNRURJQV9DT05UUk9MU19GVUxMU0NSRUVOX0JVVFRPTiwgImJ1dHRvbiIs
IGVsZW1lbnQsIE1lZGlhRnVsbHNjcmVlbkJ1dHRvbikKIHsKQEAgLTU4MCw2ICs2NzUsNSBAQCB2
b2lkIE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDo6c2V0VmlzaWJsZShib29sIHZpc2li
bGUpCiAgICAgcmVuZGVyZXIoKS0+c2V0U3R5bGUoc3R5bGUuZ2V0KCkpOwogfQogCi0KIH0gLy9u
YW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmIC8vIGVuYWJsZSh2aWRlbykKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCmluZGV4IDk1MzQ4YjIuLjg2M2NhZWEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmgKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaApAQCAtNTcsMTAgKzU3LDEzIEBAIGVu
dW0gTWVkaWFDb250cm9sRWxlbWVudFR5cGUgewogICAgIE1lZGlhVW5NdXRlQnV0dG9uLAogICAg
IE1lZGlhUGF1c2VCdXR0b24sCiAgICAgTWVkaWFUaW1lbGluZUNvbnRhaW5lciwKLSAgICBNZWRp
YUN1cnJlbnRUaW1lRGlzcGxheSwgCisgICAgTWVkaWFDdXJyZW50VGltZURpc3BsYXksCiAgICAg
TWVkaWFUaW1lUmVtYWluaW5nRGlzcGxheSwKICAgICBNZWRpYVN0YXR1c0Rpc3BsYXksCi0gICAg
TWVkaWFDb250cm9sc1BhbmVsCisgICAgTWVkaWFDb250cm9sc1BhbmVsLAorICAgIE1lZGlhVm9s
dW1lU2xpZGVyQ29udGFpbmVyLAorICAgIE1lZGlhVm9sdW1lU2xpZGVyLAorICAgIE1lZGlhVm9s
dW1lU2xpZGVyVGh1bWIKIH07CiAKIGNsYXNzIE1lZGlhQ29udHJvbFNoYWRvd1Jvb3RFbGVtZW50
IDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKQEAgLTEwNCw2ICsxMDcsMjIgQEAgcHVibGljOgog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2NsYXNzIE1lZGlhQ29udHJvbFZv
bHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sRWxlbWVudCB7
CitwdWJsaWM6CisgICAgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudChE
b2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IHN0eWxlRm9yRWxlbWVudCgpOworICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsK
KyAgICBib29sIGlzVmlzaWJsZSgpIHsgcmV0dXJuIG1faXNWaXNpYmxlOyB9CisgICAgdm9pZCBz
ZXRQb3NpdGlvbihpbnQgeCwgaW50IHkpOworICAgIGJvb2wgaGl0VGVzdChjb25zdCBJbnRQb2lu
dCYgYWJzUG9pbnQpOworCitwcml2YXRlOgorICAgIGJvb2wgbV9pc1Zpc2libGU7CisgICAgaW50
IG1feCwgbV95OworfTsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiBjbGFz
cyBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xF
bGVtZW50IHsKIHB1YmxpYzoKICAgICBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudChE
b2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQqKTsKQEAgLTIwNyw2ICsyMjYsMTUgQEAgcHVibGlj
OgogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2NsYXNzIE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsK
K3B1YmxpYzoKKyAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50Kiwg
SFRNTE1lZGlhRWxlbWVudCopOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50Kik7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUq
KTsKK307CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogY2xhc3MgTWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRF
bGVtZW50IHsKIHB1YmxpYzoKICAgICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVu
dChEb2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lZGlhLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNw
cAppbmRleCBiODdlOTlkLi40NDNmOTA0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZWRpYS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFD
b250cm9sRWxlbWVudHMuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUmVu
ZGVyVGhlbWUuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
TWF0aEV4dHJhcy5oPgogCkBAIC0xMzIsNiArMTMzLDEwIEBAIHZvaWQgUmVuZGVyTWVkaWE6OnN0
eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3R5CiAgICAgICAgICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+dXBkYXRlU3R5bGUoKTsKICAg
ICAgICAgaWYgKG1fdGltZVJlbWFpbmluZ0Rpc3BsYXkpCiAgICAgICAgICAgICBtX3RpbWVSZW1h
aW5pbmdEaXNwbGF5LT51cGRhdGVTdHlsZSgpOworICAgICAgICBpZiAobV92b2x1bWVTbGlkZXJD
b250YWluZXIpCisgICAgICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+dXBkYXRlU3R5
bGUoKTsKKyAgICAgICAgaWYgKG1fdm9sdW1lU2xpZGVyKQorICAgICAgICAgICAgbV92b2x1bWVT
bGlkZXItPnVwZGF0ZVN0eWxlKCk7CiAgICAgfQogfQogCkBAIC0yNDAsNiArMjQ1LDIxIEBAIHZv
aWQgUmVuZGVyTWVkaWE6OmNyZWF0ZVRpbWVsaW5lKCkKICAgICBtX3RpbWVsaW5lLT5hdHRhY2hU
b1BhcmVudChtX3RpbWVsaW5lQ29udGFpbmVyLmdldCgpKTsKIH0KIAordm9pZCBSZW5kZXJNZWRp
YTo6Y3JlYXRlVm9sdW1lU2xpZGVyQ29udGFpbmVyKCkKK3sKKyAgICBBU1NFUlQoIW1fdm9sdW1l
U2xpZGVyQ29udGFpbmVyKTsKKyAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9IG5ldyBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50KGRvY3VtZW50KCksIG1lZGlhRWxl
bWVudCgpKTsKKyAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXR0YWNoVG9QYXJlbnQobV9w
YW5lbC5nZXQoKSk7Cit9CisKK3ZvaWQgUmVuZGVyTWVkaWE6OmNyZWF0ZVZvbHVtZVNsaWRlcigp
Cit7CisgICAgQVNTRVJUKCFtX3ZvbHVtZVNsaWRlcik7CisgICAgbV92b2x1bWVTbGlkZXIgPSBu
ZXcgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudChkb2N1bWVudCgpLCBtZWRpYUVsZW1l
bnQoKSk7CisgICAgbV92b2x1bWVTbGlkZXItPnNldEF0dHJpYnV0ZShwcmVjaXNpb25BdHRyLCAi
ZmxvYXQiKTsKKyAgICBtX3ZvbHVtZVNsaWRlci0+YXR0YWNoVG9QYXJlbnQobV92b2x1bWVTbGlk
ZXJDb250YWluZXIuZ2V0KCkpOworfQorCiB2b2lkIFJlbmRlck1lZGlhOjpjcmVhdGVDdXJyZW50
VGltZURpc3BsYXkoKQogewogICAgIEFTU0VSVCghbV9jdXJyZW50VGltZURpc3BsYXkpOwpAQCAt
MjYwLDEyICsyODAsMTIgQEAgdm9pZCBSZW5kZXJNZWRpYTo6Y3JlYXRlRnVsbHNjcmVlbkJ1dHRv
bigpCiAgICAgbV9mdWxsc2NyZWVuQnV0dG9uID0gbmV3IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5C
dXR0b25FbGVtZW50KGRvY3VtZW50KCksIG1lZGlhRWxlbWVudCgpKTsKICAgICBtX2Z1bGxzY3Jl
ZW5CdXR0b24tPmF0dGFjaFRvUGFyZW50KG1fcGFuZWwuZ2V0KCkpOwogfQotICAgIAorCiB2b2lk
IFJlbmRlck1lZGlhOjp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiAgICAgdXBkYXRlQ29udHJvbHMo
KTsKIH0KLSAgICAgICAgICAgIAorCiB2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9scygp
CiB7CiAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWEgPSBtZWRpYUVsZW1lbnQoKTsKQEAgLTI4
NSw2ICszMDUsOCBAQCB2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9scygpCiAgICAgICAg
ICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheSA9IDA7CiAgICAgICAgICAgICBtX3RpbWVSZW1haW5p
bmdEaXNwbGF5ID0gMDsKICAgICAgICAgICAgIG1fZnVsbHNjcmVlbkJ1dHRvbiA9IDA7CisgICAg
ICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9IDA7CisgICAgICAgICAgICBtX3ZvbHVt
ZVNsaWRlciA9IDA7CiAgICAgICAgICAgICBtX2NvbnRyb2xzU2hhZG93Um9vdCA9IDA7CiAgICAg
ICAgIH0KICAgICAgICAgbV9vcGFjaXR5QW5pbWF0aW9uVG8gPSAxLjBmOwpAQCAtMjkyLDcgKzMx
NCw3IEBAIHZvaWQgUmVuZGVyTWVkaWE6OnVwZGF0ZUNvbnRyb2xzKCkKICAgICAgICAgbV90aW1l
VXBkYXRlVGltZXIuc3RvcCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAorCiAgICAg
aWYgKCFtX2NvbnRyb2xzU2hhZG93Um9vdCkgewogICAgICAgICBjcmVhdGVDb250cm9sc1NoYWRv
d1Jvb3QoKTsKICAgICAgICAgY3JlYXRlUGFuZWwoKTsKQEAgLTMwMyw5ICszMjUsMTIgQEAgdm9p
ZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbHMoKQogICAgICAgICAgICAgY3JlYXRlUmV0dXJu
VG9SZWFsdGltZUJ1dHRvbigpOwogICAgICAgICAgICAgY3JlYXRlU3RhdHVzRGlzcGxheSgpOwog
ICAgICAgICAgICAgY3JlYXRlVGltZWxpbmVDb250YWluZXIoKTsKKyAgICAgICAgICAgIGNyZWF0
ZVZvbHVtZVNsaWRlckNvbnRhaW5lcigpOwogICAgICAgICAgICAgY3JlYXRlU2Vla0JhY2tCdXR0
b24oKTsKICAgICAgICAgICAgIGNyZWF0ZVNlZWtGb3J3YXJkQnV0dG9uKCk7CiAgICAgICAgICAg
ICBjcmVhdGVGdWxsc2NyZWVuQnV0dG9uKCk7CisgICAgICAgICAgICBpZiAobV92b2x1bWVTbGlk
ZXJDb250YWluZXIpCisgICAgICAgICAgICAgICAgY3JlYXRlVm9sdW1lU2xpZGVyKCk7CiAgICAg
ICAgICAgICBpZiAobV90aW1lbGluZUNvbnRhaW5lcikgewogICAgICAgICAgICAgICAgIGNyZWF0
ZUN1cnJlbnRUaW1lRGlzcGxheSgpOwogICAgICAgICAgICAgICAgIGNyZWF0ZVRpbWVsaW5lKCk7
CkBAIC0zMjIsNyArMzQ3LDYgQEAgdm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbHMoKQog
ICAgICAgICBtX3RpbWVVcGRhdGVUaW1lci5zdGFydFJlcGVhdGluZyhjVGltZVVwZGF0ZVJlcGVh
dERlbGF5KTsKICAgICB9CiAKLSAgICAKICAgICBpZiAobV9wYW5lbCkgewogICAgICAgICAvLyB1
cGRhdGUoKSBtaWdodCBhbHRlciB0aGUgb3BhY2l0eSBvZiB0aGUgZWxlbWVudCwgZXNwZWNpYWxs
eSBpZiB3ZSBhcmUgaW4gdGhlIG1pZGRsZQogICAgICAgICAvLyBvZiBhbiBhbmltYXRpb24uIFRo
aXMgaXMgdGhlIG9ubHkgZWxlbWVudCBjb25jZXJuZWQgYXMgd2UgYW5pbWF0ZSBvbmx5IHRoaXMg
ZWxlbWVudC4KQEAgLTMzNiw2ICszNjAsOCBAQCB2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVDb250
cm9scygpCiAgICAgICAgIG1fcGxheUJ1dHRvbi0+dXBkYXRlKCk7CiAgICAgaWYgKG1fdGltZWxp
bmVDb250YWluZXIpCiAgICAgICAgIG1fdGltZWxpbmVDb250YWluZXItPnVwZGF0ZSgpOworICAg
IGlmIChtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcikKKyAgICAgICAgbV92b2x1bWVTbGlkZXJDb250
YWluZXItPnVwZGF0ZSgpOwogICAgIGlmIChtX3RpbWVsaW5lKQogICAgICAgICBtX3RpbWVsaW5l
LT51cGRhdGUoKTsKICAgICBpZiAobV9jdXJyZW50VGltZURpc3BsYXkpCkBAIC0zNTQsNiArMzgw
LDggQEAgdm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbHMoKQogICAgICAgICBtX3N0YXR1
c0Rpc3BsYXktPnVwZGF0ZSgpOwogICAgIGlmIChtX2Z1bGxzY3JlZW5CdXR0b24pCiAgICAgICAg
IG1fZnVsbHNjcmVlbkJ1dHRvbi0+dXBkYXRlKCk7CisgICAgaWYgKG1fdm9sdW1lU2xpZGVyKQor
ICAgICAgICBtX3ZvbHVtZVNsaWRlci0+dXBkYXRlKCk7CiAKICAgICB1cGRhdGVUaW1lRGlzcGxh
eSgpOwogICAgIHVwZGF0ZUNvbnRyb2xWaXNpYmlsaXR5KCk7CkBAIC0zNjUsMTIgKzM5MywxMiBA
QCB2b2lkIFJlbmRlck1lZGlhOjp0aW1lVXBkYXRlVGltZXJGaXJlZChUaW1lcjxSZW5kZXJNZWRp
YT4qKQogICAgICAgICBtX3RpbWVsaW5lLT51cGRhdGUoZmFsc2UpOwogICAgIHVwZGF0ZVRpbWVE
aXNwbGF5KCk7CiB9Ci0gICAgCisKIFN0cmluZyBSZW5kZXJNZWRpYTo6Zm9ybWF0VGltZShmbG9h
dCB0aW1lKQogewogICAgIGlmICghaXNmaW5pdGUodGltZSkpCiAgICAgICAgIHRpbWUgPSAwOwot
ICAgIGludCBzZWNvbmRzID0gKGludClmYWJzZih0aW1lKTsgCisgICAgaW50IHNlY29uZHMgPSAo
aW50KWZhYnNmKHRpbWUpOwogICAgIGludCBob3VycyA9IHNlY29uZHMgLyAoNjAgKiA2MCk7CiAg
ICAgaW50IG1pbnV0ZXMgPSAoc2Vjb25kcyAvIDYwKSAlIDYwOwogICAgIHNlY29uZHMgJT0gNjA7
CkBAIC0zOTQsMTIgKzQyMiwxMiBAQCB2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVUaW1lRGlzcGxh
eSgpCiAgICAgU3RyaW5nIHRpbWVTdHJpbmcgPSBmb3JtYXRUaW1lKG5vdyk7CiAgICAgRXhjZXB0
aW9uQ29kZSBlYzsKICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+c2V0SW5uZXJUZXh0KHRpbWVT
dHJpbmcsIGVjKTsKLSAgICAKKwogICAgIHRpbWVTdHJpbmcgPSBmb3JtYXRUaW1lKG5vdyAtIGR1
cmF0aW9uKTsKICAgICBtX3RpbWVSZW1haW5pbmdEaXNwbGF5LT5zZXRJbm5lclRleHQodGltZVN0
cmluZywgZWMpOwogfQogCi12b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9sVmlzaWJpbGl0
eSgpIAordm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbFZpc2liaWxpdHkoKQogewogICAg
IGlmICghbV9wYW5lbCB8fCAhbV9wYW5lbC0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNDEyLDcgKzQ0MCw3IEBAIHZvaWQgUmVuZGVyTWVkaWE6OnVwZGF0ZUNvbnRyb2xWaXNpYmls
aXR5KCkKICAgICAvLyBEb24ndCBmYWRlIGlmIHRoZSBtZWRpYSBlbGVtZW50IGlzIG5vdCB2aXNp
YmxlCiAgICAgaWYgKHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQogICAgICAgICBy
ZXR1cm47Ci0gICAgCisKICAgICBib29sIHNob3VsZEhpZGVDb250cm9sbGVyID0gIW1fbW91c2VP
dmVyICYmICFtZWRpYS0+Y2FuUGxheSgpOwogCiAgICAgLy8gRG8gZmFkaW5nIG1hbnVhbGx5LCBj
c3MgYW5pbWF0aW9ucyBkb24ndCB3b3JrIHdpdGggc2hhZG93IHRyZWVzCkBAIC00NDAsOCArNDY4
LDggQEAgdm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbFZpc2liaWxpdHkoKQogICAgIG1f
b3BhY2l0eUFuaW1hdGlvblN0YXJ0VGltZSA9IGN1cnJlbnRUaW1lKCk7CiAgICAgbV9vcGFjaXR5
QW5pbWF0aW9uVGltZXIuc3RhcnRSZXBlYXRpbmcoY09wYWNpdHlBbmltYXRpb25SZXBlYXREZWxh
eSk7CiB9Ci0gICAgCi12b2lkIFJlbmRlck1lZGlhOjpjaGFuZ2VPcGFjaXR5KEhUTUxFbGVtZW50
KiBlLCBmbG9hdCBvcGFjaXR5KSAKKwordm9pZCBSZW5kZXJNZWRpYTo6Y2hhbmdlT3BhY2l0eShI
VE1MRWxlbWVudCogZSwgZmxvYXQgb3BhY2l0eSkKIHsKICAgICBpZiAoIWUgfHwgIWUtPnJlbmRl
cmVyKCkgfHwgIWUtPnJlbmRlcmVyKCktPnN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQ1
MSw3ICs0NzksNyBAQCB2b2lkIFJlbmRlck1lZGlhOjpjaGFuZ2VPcGFjaXR5KEhUTUxFbGVtZW50
KiBlLCBmbG9hdCBvcGFjaXR5KQogICAgIHMtPnNldFpJbmRleCgwKTsKICAgICBlLT5yZW5kZXJl
cigpLT5zZXRTdHlsZShzLnJlbGVhc2UoKSk7CiB9Ci0gICAgCisKIHZvaWQgUmVuZGVyTWVkaWE6
Om9wYWNpdHlBbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFJlbmRlck1lZGlhPiopCiB7CiAgICAg
ZG91YmxlIHRpbWUgPSBjdXJyZW50VGltZSgpIC0gbV9vcGFjaXR5QW5pbWF0aW9uU3RhcnRUaW1l
OwpAQCAtNDYzLDEzICs0OTEsNTIgQEAgdm9pZCBSZW5kZXJNZWRpYTo6b3BhY2l0eUFuaW1hdGlv
blRpbWVyRmlyZWQoVGltZXI8UmVuZGVyTWVkaWE+KikKICAgICBjaGFuZ2VPcGFjaXR5KG1fcGFu
ZWwuZ2V0KCksIG9wYWNpdHkpOwogfQogCit2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVWb2x1bWVT
bGlkZXJDb250YWluZXIoYm9vbCB2aXNpYmxlKQoreworICAgIGlmICghbV92b2x1bWVTbGlkZXJD
b250YWluZXIgfHwgIW1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5yZW5kZXJlcigpIHx8IG1fdm9s
dW1lU2xpZGVyQ29udGFpbmVyLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5kaXNwbGF5KCkgPT0gTk9O
RSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHZpc2libGUgJiYgIW1fdm9sdW1lU2xpZGVy
Q29udGFpbmVyLT5pc1Zpc2libGUoKSkgeworICAgICAgICBpZiAoIW1fbXV0ZUJ1dHRvbiB8fCAh
bV9tdXRlQnV0dG9uLT5yZW5kZXJlcigpIHx8ICFtX211dGVCdXR0b24tPnJlbmRlckJveCgpIHx8
ICFtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+cmVuZGVyQm94KCkpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgaW50IHggPSBtX211dGVCdXR0b24tPnJlbmRlckJveCgpLT5vZmZzZXRM
ZWZ0KCk7CisgICAgICAgIGludCB5ID0gbV9tdXRlQnV0dG9uLT5yZW5kZXJCb3goKS0+b2Zmc2V0
VG9wKCkgLSBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+cmVuZGVyQm94KCktPmhlaWdodCgpOwor
ICAgICAgICBGbG9hdFBvaW50IGFic1BvaW50ID0gbV9tdXRlQnV0dG9uLT5yZW5kZXJlcigpLT5s
b2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCh4LCB5KSwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgIGlm
IChhYnNQb2ludC55KCkgPCAwKQorICAgICAgICAgICAgeSA9IG1fbXV0ZUJ1dHRvbi0+cmVuZGVy
Qm94KCktPm9mZnNldFRvcCgpICsgbV9tdXRlQnV0dG9uLT5yZW5kZXJCb3goKS0+aGVpZ2h0KCk7
CisgICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5zZXRWaXNpYmxlKHRydWUpOworICAg
ICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+c2V0UG9zaXRpb24oeCwgeSk7CisgICAgICAg
IG1fdm9sdW1lU2xpZGVyLT51cGRhdGVTdHlsZSgpOworICAgICAgICBpZiAobV92b2x1bWVTbGlk
ZXItPnJlbmRlcmVyKCkpCisgICAgICAgICAgICBtX3ZvbHVtZVNsaWRlci0+cmVuZGVyZXIoKS0+
dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB9IGVsc2UgaWYgKCF2aXNpYmxlICYmIG1fdm9sdW1l
U2xpZGVyQ29udGFpbmVyLT5pc1Zpc2libGUoKSkgeworICAgICAgICBtX3ZvbHVtZVNsaWRlckNv
bnRhaW5lci0+c2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgIG1fdm9sdW1lU2xpZGVyLT51cGRh
dGUoKTsKKyAgICB9Cit9CisKIHZvaWQgUmVuZGVyTWVkaWE6OmZvcndhcmRFdmVudChFdmVudCog
ZXZlbnQpCiB7CiAgICAgaWYgKGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBtX2NvbnRyb2xzU2hh
ZG93Um9vdCkgewogICAgICAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8
TW91c2VFdmVudCo+KGV2ZW50KTsKICAgICAgICAgSW50UG9pbnQgcG9pbnQobW91c2VFdmVudC0+
YWJzb2x1dGVMb2NhdGlvbigpKTsKLSAgICAgICAgaWYgKG1fbXV0ZUJ1dHRvbiAmJiBtX211dGVC
dXR0b24tPmhpdFRlc3QocG9pbnQpKQorICAgICAgICBib29sIHNob3dWb2x1bWVTbGlkZXIgPSBm
YWxzZTsKKyAgICAgICAgaWYgKG1fbXV0ZUJ1dHRvbiAmJiBtX211dGVCdXR0b24tPmhpdFRlc3Qo
cG9pbnQpKSB7CiAgICAgICAgICAgICBtX211dGVCdXR0b24tPmRlZmF1bHRFdmVudEhhbmRsZXIo
ZXZlbnQpOworICAgICAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLm1v
dXNlb3V0RXZlbnQpCisgICAgICAgICAgICAgICAgc2hvd1ZvbHVtZVNsaWRlciA9IHRydWU7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAobV92b2x1bWVTbGlkZXJDb250YWluZXIgJiYgbV92b2x1
bWVTbGlkZXJDb250YWluZXItPmhpdFRlc3QocG9pbnQpKQorICAgICAgICAgICAgc2hvd1ZvbHVt
ZVNsaWRlciA9IHRydWU7CisKKyAgICAgICAgaWYgKG1fdm9sdW1lU2xpZGVyICYmIG1fdm9sdW1l
U2xpZGVyLT5oaXRUZXN0KHBvaW50KSkgeworICAgICAgICAgICAgbV92b2x1bWVTbGlkZXItPmRl
ZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAgICAgICAgc2hvd1ZvbHVtZVNsaWRlciA9
IHRydWU7CisgICAgICAgIH0KKworICAgICAgICB1cGRhdGVWb2x1bWVTbGlkZXJDb250YWluZXIo
c2hvd1ZvbHVtZVNsaWRlcik7CiAKICAgICAgICAgaWYgKG1fcGxheUJ1dHRvbiAmJiBtX3BsYXlC
dXR0b24tPmhpdFRlc3QocG9pbnQpKQogICAgICAgICAgICAgbV9wbGF5QnV0dG9uLT5kZWZhdWx0
RXZlbnRIYW5kbGVyKGV2ZW50KTsKQEAgLTQ5MSw3ICs1NTgsNyBAQCB2b2lkIFJlbmRlck1lZGlh
Ojpmb3J3YXJkRXZlbnQoRXZlbnQqIGV2ZW50KQogCiAgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5C
dXR0b24gJiYgbV9mdWxsc2NyZWVuQnV0dG9uLT5oaXRUZXN0KHBvaW50KSkKICAgICAgICAgICAg
IG1fZnVsbHNjcmVlbkJ1dHRvbi0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7Ci0gICAgICAg
IAorCiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW92ZXJF
dmVudCkgewogICAgICAgICAgICAgbV9tb3VzZU92ZXIgPSB0cnVlOwogICAgICAgICAgICAgdXBk
YXRlQ29udHJvbFZpc2liaWxpdHkoKTsKQEAgLTUxMSw3ICs1NzgsNyBAQCBpbnQgUmVuZGVyTWVk
aWE6Omxvd2VzdFBvc2l0aW9uKGJvb2wgaW5jbHVkZU92ZXJmbG93SW50ZXJpb3IsIGJvb2wgaW5j
bHVkZVNlbGYpCiAgICAgaW50IGJvdHRvbSA9IFJlbmRlclJlcGxhY2VkOjpsb3dlc3RQb3NpdGlv
bihpbmNsdWRlT3ZlcmZsb3dJbnRlcmlvciwgaW5jbHVkZVNlbGYpOwogICAgIGlmICghbV9jb250
cm9sc1NoYWRvd1Jvb3QgfHwgIW1fY29udHJvbHNTaGFkb3dSb290LT5yZW5kZXJlcigpKQogICAg
ICAgICByZXR1cm4gYm90dG9tOwotICAgIAorCiAgICAgcmV0dXJuIG1heChib3R0b20sICBtX2Nv
bnRyb2xzU2hhZG93Um9vdC0+cmVuZGVyQm94KCktPnkoKSArIG1fY29udHJvbHNTaGFkb3dSb290
LT5yZW5kZXJCb3goKS0+bG93ZXN0UG9zaXRpb24oaW5jbHVkZU92ZXJmbG93SW50ZXJpb3IsIGlu
Y2x1ZGVTZWxmKSk7CiB9CiAKQEAgLTUyMCw3ICs1ODcsNyBAQCBpbnQgUmVuZGVyTWVkaWE6OnJp
Z2h0bW9zdFBvc2l0aW9uKGJvb2wgaW5jbHVkZU92ZXJmbG93SW50ZXJpb3IsIGJvb2wgaW5jbHVk
ZVNlbAogICAgIGludCByaWdodCA9IFJlbmRlclJlcGxhY2VkOjpyaWdodG1vc3RQb3NpdGlvbihp
bmNsdWRlT3ZlcmZsb3dJbnRlcmlvciwgaW5jbHVkZVNlbGYpOwogICAgIGlmICghbV9jb250cm9s
c1NoYWRvd1Jvb3QgfHwgIW1fY29udHJvbHNTaGFkb3dSb290LT5yZW5kZXJlcigpKQogICAgICAg
ICByZXR1cm4gcmlnaHQ7Ci0gICAgCisKICAgICByZXR1cm4gbWF4KHJpZ2h0LCBtX2NvbnRyb2xz
U2hhZG93Um9vdC0+cmVuZGVyQm94KCktPngoKSArIG1fY29udHJvbHNTaGFkb3dSb290LT5yZW5k
ZXJCb3goKS0+cmlnaHRtb3N0UG9zaXRpb24oaW5jbHVkZU92ZXJmbG93SW50ZXJpb3IsIGluY2x1
ZGVTZWxmKSk7CiB9CiAKQEAgLTUyOSw3ICs1OTYsNyBAQCBpbnQgUmVuZGVyTWVkaWE6OmxlZnRt
b3N0UG9zaXRpb24oYm9vbCBpbmNsdWRlT3ZlcmZsb3dJbnRlcmlvciwgYm9vbCBpbmNsdWRlU2Vs
ZgogICAgIGludCBsZWZ0ID0gUmVuZGVyUmVwbGFjZWQ6OmxlZnRtb3N0UG9zaXRpb24oaW5jbHVk
ZU92ZXJmbG93SW50ZXJpb3IsIGluY2x1ZGVTZWxmKTsKICAgICBpZiAoIW1fY29udHJvbHNTaGFk
b3dSb290IHx8ICFtX2NvbnRyb2xzU2hhZG93Um9vdC0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0
dXJuIGxlZnQ7Ci0gICAgCisKICAgICByZXR1cm4gbWluKGxlZnQsIG1fY29udHJvbHNTaGFkb3dS
b290LT5yZW5kZXJCb3goKS0+eCgpICsgIG1fY29udHJvbHNTaGFkb3dSb290LT5yZW5kZXJCb3go
KS0+bGVmdG1vc3RQb3NpdGlvbihpbmNsdWRlT3ZlcmZsb3dJbnRlcmlvciwgaW5jbHVkZVNlbGYp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaCBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmgKaW5kZXggNTY5N2JkYS4uMmNlODBjNyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZWRpYS5oCkBAIC00MSwxMCArNDEsMTIgQEAgY2xhc3MgTWVkaWFDb250
cm9sU2Vla0J1dHRvbkVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVt
ZW50OwogY2xhc3MgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ7CiBj
bGFzcyBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ7CitjbGFzcyBNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXJFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1l
bnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNv
bnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29u
dGFpbmVyRWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xFbGVtZW50OwogY2xhc3MgTWVkaWFQbGF5ZXI7CiAK
QEAgLTk5LDYgKzEwMSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVTdGF0dXNEaXNwbGF5
KCk7CiAgICAgdm9pZCBjcmVhdGVUaW1lbGluZUNvbnRhaW5lcigpOwogICAgIHZvaWQgY3JlYXRl
VGltZWxpbmUoKTsKKyAgICB2b2lkIGNyZWF0ZVZvbHVtZVNsaWRlckNvbnRhaW5lcigpOworICAg
IHZvaWQgY3JlYXRlVm9sdW1lU2xpZGVyKCk7CiAgICAgdm9pZCBjcmVhdGVDdXJyZW50VGltZURp
c3BsYXkoKTsKICAgICB2b2lkIGNyZWF0ZVRpbWVSZW1haW5pbmdEaXNwbGF5KCk7CiAgICAgdm9p
ZCBjcmVhdGVGdWxsc2NyZWVuQnV0dG9uKCk7CkBAIC0xMDksNiArMTEzLDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGNoYW5nZU9wYWNpdHkoSFRNTEVsZW1lbnQqLCBmbG9hdCBvcGFjaXR5KTsKICAg
ICB2b2lkIG9wYWNpdHlBbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFJlbmRlck1lZGlhPiopOwog
CisgICAgdm9pZCB1cGRhdGVWb2x1bWVTbGlkZXJDb250YWluZXIoYm9vbCB2aXNpYmxlKTsKKwog
ICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1fY29udHJv
bHNTaGFkb3dSb290OwpAQCAtMTIwLDggKzEyNiwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBtX3Jld2luZEJ1dHRvbjsKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IG1fcmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbjsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiBt
X3RpbWVsaW5lOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50PiBt
X3ZvbHVtZVNsaWRlcjsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVs
ZW1lbnQ+IG1fZnVsbHNjcmVlbkJ1dHRvbjsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxp
bmVDb250YWluZXJFbGVtZW50PiBtX3RpbWVsaW5lQ29udGFpbmVyOworICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50PiBtX3ZvbHVtZVNsaWRlckNvbnRh
aW5lcjsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50PiBtX2N1cnJl
bnRUaW1lRGlzcGxheTsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50
PiBtX3RpbWVSZW1haW5pbmdEaXNwbGF5OwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNE
aXNwbGF5RWxlbWVudD4gbV9zdGF0dXNEaXNwbGF5OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZWRpYUNvbnRyb2xzLmNwcAppbmRleCAwNmQ5MDFhLi5kOWRlOGFhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcApAQCAtMTI4LDYgKzEyOCwxOCBAQCBib29sIFJl
bmRlck1lZGlhQ29udHJvbHM6OnBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9sRWxl
bWVudFR5cGUgcGFydCwgUgogICAgICAgICBjYXNlIE1lZGlhU2xpZGVyVGh1bWI6CiAgICAgICAg
ICAgICBwYWludFRoZW1lUGFydChTYWZhcmlUaGVtZTo6TWVkaWFTbGlkZXJUaHVtYlBhcnQsIHBh
aW50SW5mby5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgciwgTlNSZWd1bGFyQ29udHJvbFNp
emUsIGRldGVybWluZVN0YXRlKG8pKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyOgorICAgICAgICAgICAgLy8gRklYTUU6IEltcGxl
bW50IHZvbHVtZSBzbGlkZXIuCisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyOgorICAgICAg
ICAgICAgLy8gRklYTUU6IEltcGxlbW50IHZvbHVtZSBzbGlkZXIuCisgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlh
Vm9sdW1lU2xpZGVyVGh1bWI6CisgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtbnQgdm9sdW1l
IHNsaWRlci4KKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgTWVkaWFUaW1lbGluZUNvbnRhaW5lcjoKICAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xNDcsNCArMTU5
LDMgQEAgYm9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1l
ZGlhQ29udHJvbEVsZW1lbnRUeXBlIHBhcnQsIFIKICNlbmRpZiAgLy8gI2lmIEVOQUJMRShWSURF
TykKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNw
cAppbmRleCA0ZDE0MWI3Li4yNDdhY2RhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbGlkZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAK
QEAgLTI4MSw2ICsyODEsOCBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBSZW5kZXJTbGlkZXI6
OmNyZWF0ZVRodW1iU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudAogICAgICAgICBzdHls
ZS0+c2V0QXBwZWFyYW5jZShTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KTsKICAgICBlbHNlIGlm
IChwYXJlbnRTdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyUGFydCkKICAgICAgICAg
c3R5bGUtPnNldEFwcGVhcmFuY2UoTWVkaWFTbGlkZXJUaHVtYlBhcnQpOworICAgIGVsc2UgaWYg
KHBhcmVudFN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KQorICAg
ICAgICBzdHlsZS0+c2V0QXBwZWFyYW5jZShNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCk7CiAK
ICAgICByZXR1cm4gc3R5bGUucmVsZWFzZSgpOwogfQpAQCAtMjk4LDcgKzMwMCw3IEBAIEludFJl
Y3QgUmVuZGVyU2xpZGVyOjp0aHVtYlJlY3QoKQogCiAgICAgZG91YmxlIGZyYWN0aW9uID0gc2xp
ZGVyUG9zaXRpb24oc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSkpOwogICAg
IEludFJlY3QgY29udGVudFJlY3QgPSBjb250ZW50Qm94UmVjdCgpOwotICAgIGlmIChzdHlsZSgp
LT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0KSB7CisgICAgaWYgKHN0eWxlKCkt
PmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQgfHwgc3R5bGUoKS0+YXBwZWFyYW5j
ZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCkgewogICAgICAgICB0aHVtYlJlY3Quc2V0WChj
b250ZW50UmVjdC54KCkgKyAoY29udGVudFJlY3Qud2lkdGgoKSAtIHRodW1iUmVjdC53aWR0aCgp
KSAvIDIpOwogICAgICAgICB0aHVtYlJlY3Quc2V0WShjb250ZW50UmVjdC55KCkgKyBzdGF0aWNf
Y2FzdDxpbnQ+KG5leHRhZnRlcigoY29udGVudFJlY3QuaGVpZ2h0KCkgLSB0aHVtYlJlY3QuaGVp
Z2h0KCkpICsgMSwgMCkgKiAoMSAtIGZyYWN0aW9uKSkpOwogICAgIH0gZWxzZSB7CkBAIC0zOTEs
NyArMzkzLDcgQEAgYm9vbCBSZW5kZXJTbGlkZXI6Om1vdXNlRXZlbnRJc0luVGh1bWIoTW91c2VF
dmVudCogZXZ0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBFTkFCTEUoVklERU8pCi0g
ICAgaWYgKHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVNsaWRlclBhcnQpIHsKKyAgICBp
ZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyUGFydCB8fCBzdHlsZSgpLT5h
cHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KSB7CiAgICAgICAgIE1lZGlhQ29u
dHJvbElucHV0RWxlbWVudCAqc2xpZGVyVGh1bWIgPSBzdGF0aWNfY2FzdDxNZWRpYUNvbnRyb2xJ
bnB1dEVsZW1lbnQqPihtX3RodW1iLT5yZW5kZXJlcigpLT5ub2RlKCkpOwogICAgICAgICByZXR1
cm4gc2xpZGVyVGh1bWItPmhpdFRlc3QoZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOwogICAgIH0K
QEAgLTQyMyw3ICs0MjUsNyBAQCB2b2lkIFJlbmRlclNsaWRlcjo6c2V0VmFsdWVGb3JQb3NpdGlv
bihpbnQgcG9zaXRpb24pCiAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXcgdmFsdWUgYmFzZWQgb24g
dGhlIHBvc2l0aW9uLCBhbmQgc2VuZCBpdCB0byB0aGUgZWxlbWVudC4KICAgICBTbGlkZXJSYW5n
ZSByYW5nZShlbGVtZW50KTsKICAgICBkb3VibGUgZnJhY3Rpb24gPSBzdGF0aWNfY2FzdDxkb3Vi
bGU+KHBvc2l0aW9uKSAvIHRyYWNrU2l6ZSgpOwotICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNl
KCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0KQorICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkg
PT0gU2xpZGVyVmVydGljYWxQYXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZv
bHVtZVNsaWRlclBhcnQpCiAgICAgICAgIGZyYWN0aW9uID0gMSAtIGZyYWN0aW9uOwogICAgIGRv
dWJsZSB2YWx1ZSA9IHJhbmdlLmNsYW1wVmFsdWUocmFuZ2UudmFsdWVGcm9tUHJvcG9ydGlvbihm
cmFjdGlvbikpOwogICAgIGVsZW1lbnQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKFN0cmluZzo6bnVt
YmVyKHZhbHVlKSk7CkBAIC00NDQsNyArNDQ2LDcgQEAgaW50IFJlbmRlclNsaWRlcjo6cG9zaXRp
b25Gb3JPZmZzZXQoY29uc3QgSW50UG9pbnQmIHApCiAgICAgICAgIHJldHVybiAwOwogCiAgICAg
aW50IHBvc2l0aW9uOwotICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVy
dGljYWxQYXJ0KQorICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGlj
YWxQYXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQp
CiAgICAgICAgIHBvc2l0aW9uID0gcC55KCkgLSBtX3RodW1iLT5yZW5kZXJCb3goKS0+aGVpZ2h0
KCkgLyAyOwogICAgIGVsc2UKICAgICAgICAgcG9zaXRpb24gPSBwLngoKSAtIG1fdGh1bWItPnJl
bmRlckJveCgpLT53aWR0aCgpIC8gMjsKQEAgLTQ1Nyw3ICs0NTksNyBAQCBpbnQgUmVuZGVyU2xp
ZGVyOjpjdXJyZW50UG9zaXRpb24oKQogICAgIEFTU0VSVChtX3RodW1iKTsKICAgICBBU1NFUlQo
bV90aHVtYi0+cmVuZGVyZXIoKSk7CiAKLSAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09
IFNsaWRlclZlcnRpY2FsUGFydCkKKyAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNs
aWRlclZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVT
bGlkZXJQYXJ0KQogICAgICAgICByZXR1cm4gdG9SZW5kZXJCb3gobV90aHVtYi0+cmVuZGVyZXIo
KSktPnkoKSAtIGNvbnRlbnRCb3hSZWN0KCkueSgpOwogICAgIHJldHVybiB0b1JlbmRlckJveCht
X3RodW1iLT5yZW5kZXJlcigpKS0+eCgpIC0gY29udGVudEJveFJlY3QoKS54KCk7CiB9CkBAIC00
NjcsNyArNDY5LDcgQEAgaW50IFJlbmRlclNsaWRlcjo6dHJhY2tTaXplKCkKICAgICBBU1NFUlQo
bV90aHVtYik7CiAgICAgQVNTRVJUKG1fdGh1bWItPnJlbmRlcmVyKCkpOwogCi0gICAgaWYgKHN0
eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQpCisgICAgaWYgKHN0eWxl
KCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQgfHwgc3R5bGUoKS0+YXBwZWFy
YW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCkKICAgICAgICAgcmV0dXJuIGNvbnRlbnRI
ZWlnaHQoKSAtIG1fdGh1bWItPnJlbmRlckJveCgpLT5oZWlnaHQoKTsKICAgICByZXR1cm4gY29u
dGVudFdpZHRoKCkgLSBtX3RodW1iLT5yZW5kZXJCb3goKS0+d2lkdGgoKTsKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmNwcAppbmRleCBkNDg2NTJmLi43YjRkZmUzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwCkBAIC0xODMsNiArMTgzLDcgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0
U3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWwK
ICAgICAgICAgY2FzZSBNZW51bGlzdEJ1dHRvblBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gYWRq
dXN0TWVudUxpc3RCdXR0b25TdHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOwogICAgICAgICBjYXNl
IE1lZGlhU2xpZGVyUGFydDoKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6CiAg
ICAgICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVyVmVy
dGljYWxQYXJ0OgogICAgICAgICAgICAgcmV0dXJuIGFkanVzdFNsaWRlclRyYWNrU3R5bGUoc2Vs
ZWN0b3IsIHN0eWxlLCBlKTsKQEAgLTI3OCw2ICsyNzksMTQgQEAgYm9vbCBSZW5kZXJUaGVtZTo6
cGFpbnQoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgcGFp
bnRJbmYKICAgICAgICAgICAgIGlmIChvLT5wYXJlbnQoKS0+aXNTbGlkZXIoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVNsaWRlclRodW1iKG8sIHBhaW50SW5mbywgcik7CiAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
clBhcnQ6CisgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
cihvLCBwYWludEluZm8sIHIpOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFydDoK
KyAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2sobywgcGFpbnRJ
bmZvLCByKTsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICAg
ICAgICAgIGlmIChvLT5wYXJlbnQoKS0+aXNTbGlkZXIoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKG8sIHBhaW50SW5mbywgcik7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0OgogICAgICAg
ICAgICAgcmV0dXJuIHBhaW50TWVkaWFUaW1lUmVtYWluaW5nKG8sIHBhaW50SW5mbywgcik7CiAg
ICAgICAgIGNhc2UgTWVkaWFDdXJyZW50VGltZVBhcnQ6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApp
bmRleCA3OTVkYWEyLi5jMDBjMmViIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTI0NCw2
ICsyNDQsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFTZWVrRm9y
d2FyZEJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50
TWVkaWFTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29s
IHBhaW50TWVkaWFTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6
OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXIoUmVuZGVyT2JqZWN0KiwgY29u
c3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soUmVuZGVy
T2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVy
VGh1bWIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlh
UmV3aW5kQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVy
T2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBwYWludE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kKFJlbmRlck9iamVjdCos
IGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJu
IHRydWU7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmggYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oCmluZGV4IDAxM2QzMzUuLmY1N2EyY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNjksMTAgKzY5LDkgQEAgZW51bSBQc2V1ZG9J
ZCB7CiAgICAgTk9QU0VVRE8sIEZJUlNUX0xJTkUsIEZJUlNUX0xFVFRFUiwgQkVGT1JFLCBBRlRF
UiwgU0VMRUNUSU9OLCBGSVJTVF9MSU5FX0lOSEVSSVRFRCwgU0NST0xMQkFSLCBGSUxFX1VQTE9B
RF9CVVRUT04sIElOUFVUX1BMQUNFSE9MREVSLAogICAgIFNMSURFUl9USFVNQiwgU0VBUkNIX0NB
TkNFTF9CVVRUT04sIFNFQVJDSF9ERUNPUkFUSU9OLCBTRUFSQ0hfUkVTVUxUU19ERUNPUkFUSU9O
LCBTRUFSQ0hfUkVTVUxUU19CVVRUT04sIE1FRElBX0NPTlRST0xTX1BBTkVMLAogICAgIE1FRElB
X0NPTlRST0xTX1BMQVlfQlVUVE9OLCBNRURJQV9DT05UUk9MU19NVVRFX0JVVFRPTiwgTUVESUFf
Q09OVFJPTFNfVElNRUxJTkUsIE1FRElBX0NPTlRST0xTX1RJTUVMSU5FX0NPTlRBSU5FUiwKLSAg
ICBNRURJQV9DT05UUk9MU19DVVJSRU5UX1RJTUVfRElTUExBWSwgTUVESUFfQ09OVFJPTFNfVElN
RV9SRU1BSU5JTkdfRElTUExBWSwgTUVESUFfQ09OVFJPTFNfU0VFS19CQUNLX0JVVFRPTiwgCi0g
ICAgTUVESUFfQ09OVFJPTFNfU0VFS19GT1JXQVJEX0JVVFRPTiwgTUVESUFfQ09OVFJPTFNfRlVM
TFNDUkVFTl9CVVRUT04sIE1FRElBX0NPTlRST0xTX1JFV0lORF9CVVRUT04sCi0gICAgTUVESUFf
Q09OVFJPTFNfUkVUVVJOX1RPX1JFQUxUSU1FX0JVVFRPTiwgTUVESUFfQ09OVFJPTFNfU1RBVFVT
X0RJU1BMQVksCi0gICAgU0NST0xMQkFSX1RIVU1CLCBTQ1JPTExCQVJfQlVUVE9OLCBTQ1JPTExC
QVJfVFJBQ0ssIFNDUk9MTEJBUl9UUkFDS19QSUVDRSwgU0NST0xMQkFSX0NPUk5FUiwgUkVTSVpF
UiwKKyAgICBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSLCBNRURJQV9DT05UUk9MU19WT0xV
TUVfU0xJREVSX0NPTlRBSU5FUiwgTUVESUFfQ09OVFJPTFNfQ1VSUkVOVF9USU1FX0RJU1BMQVks
IE1FRElBX0NPTlRST0xTX1RJTUVfUkVNQUlOSU5HX0RJU1BMQVksIE1FRElBX0NPTlRST0xTX1NF
RUtfQkFDS19CVVRUT04sCisgICAgTUVESUFfQ09OVFJPTFNfU0VFS19GT1JXQVJEX0JVVFRPTiwg
TUVESUFfQ09OVFJPTFNfRlVMTFNDUkVFTl9CVVRUT04sIE1FRElBX0NPTlRST0xTX1JFV0lORF9C
VVRUT04sIE1FRElBX0NPTlRST0xTX1JFVFVSTl9UT19SRUFMVElNRV9CVVRUT04sCisgICAgTUVE
SUFfQ09OVFJPTFNfU1RBVFVTX0RJU1BMQVksIFNDUk9MTEJBUl9USFVNQiwgU0NST0xMQkFSX0JV
VFRPTiwgU0NST0xMQkFSX1RSQUNLLCBTQ1JPTExCQVJfVFJBQ0tfUElFQ0UsIFNDUk9MTEJBUl9D
T1JORVIsIFJFU0laRVIsCiAKICAgICBGSVJTVF9JTlRFUk5BTF9QU0VVRE9JRCA9IEZJTEVfVVBM
T0FEX0JVVFRPTgogfTsK
</data>
<flag name="review"
          id="19431"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38512</attachid>
            <date>2009-08-24 16:50:41 -0700</date>
            <delta_ts>2009-08-24 23:13:07 -0700</delta_ts>
            <desc>controls implementation without theme</desc>
            <filename>webkit-add-volume-slider.patch</filename>
            <type>text/plain</type>
            <size>39310</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjUzNzUyMi4uYjQwOGYxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MyBAQAorMjAwOS0wOC0yMCAgQWxwaGEgTGFtICA8
aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIHBhbmVsIGRvZXMgbm90IGhhdmUgYSB2b2x1bWUg
Y29udHJvbCBzbGlkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MjQxCisKKyAgICAgICAgSW50cm9kdWNlZCAiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyIiBhbmQKKyAgICAgICAgIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9s
dW1lLXNsaWRlci1jb250YWluZXIiIGFuZCB0aGUgc3VwcG9ydGluZworICAgICAgICBpbXBsZW1l
bnRhdGlvbnMuIEFsc28gYWRkZWQgYXBwZWFyYW5jZXMgb2YgIm1lZGlhLXZvbHVtZS1zbGlkZXIi
LAorICAgICAgICAibWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXIiLgorCisgICAgICAgIFRo
ZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGNvbnRyb2xzIGFyZSBpbiBXZWJDb3JlOjpNZWRpYUNv
bnRyb2xFbGVtZW50cy4KKyAgICAgICAgQW5kIGxvZ2ljIHRvIHRyaWdnZXIgdGhlIGRpc3BsYXkg
b2YgdGhlIHZvbHVtZSBjb250cm9scyBhcmUgaW4gV2ViQ29yZTo6UmVuZGVyTWVkaWEuCisKKyAg
ICAgICAgTm8gdGVzdCBiZWNhdXNlIHRoZSB2b2x1bWUgc2xpZGVyIGNvbnRyb2wgaXMgdHVybmVk
IG9mZiBieSBkZWZhdWx0IGFuZAorICAgICAgICB0aGVyZSBpcyBubyBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgYXBwZWFyYW5jZXMgcHJvdmlkZWQuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNs
aWRlcjo6b3JpZW50YXRpb24pOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOgorICAgICAgICAqIGNzcy9DU1NTZWxl
Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6Oik6CisgICAgICAgICogY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rv
cjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5jc3M6CisgICAg
ICAgICogcGxhdGZvcm0vVGhlbWVUeXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpzdHlsZUZvckVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6
c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJD
b250YWluZXJFbGVtZW50OjpzZXRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpoaXRUZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaDoKKyAgICAgICAgKFdlYkNv
cmU6Oik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWlu
ZXJFbGVtZW50Ojppc1Zpc2libGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6c3R5bGVEaWRDaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OmNyZWF0ZVZvbHVtZVNsaWRlckNvbnRhaW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6Y3JlYXRlVm9sdW1lU2xpZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9scyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJNZWRpYTo6Zm9ybWF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJNZWRpYTo6dXBkYXRlVGltZURpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVk
aWE6OnVwZGF0ZUNvbnRyb2xWaXNpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
ZGlhOjpjaGFuZ2VPcGFjaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjp1cGRh
dGVWb2x1bWVTbGlkZXJDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6
OmZvcndhcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6bG93ZXN0UG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OnJpZ2h0bW9zdFBvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjpsZWZ0bW9zdFBvc2l0aW9uKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVkaWEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNvbnRy
b2xzOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6Y3JlYXRlVGh1bWJT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OnRodW1iUmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6Om1vdXNlRXZlbnRJc0luVGh1bWIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpzZXRWYWx1ZUZvclBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6cG9zaXRpb25Gb3JPZmZzZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU2xpZGVyOjpjdXJyZW50UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU2xpZGVyOjp0cmFja1NpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludE1lZGlh
Vm9sdW1lU2xpZGVyQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpw
YWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYik6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorCiAyMDA5
LTA4LTIwICBDaHJpc3RpYW4gUGxlc25lciBIYW5zZW4gIDxjaHJpc3RpYW4ucGxlc25lci5oYW5z
ZW5AZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwIGIvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCmluZGV4IGUzYTY1NGIu
LmVkZTlkY2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U2xpZGVyLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRl
ci5jcHAKQEAgLTc1LDYgKzc1LDcgQEAgQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIEFjY2Vzc2li
aWxpdHlTbGlkZXI6Om9yaWVudGF0aW9uKCkgY29uc3QKICAgICAgICAgCiAgICAgICAgIGNhc2Ug
U2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQ6IAogICAgICAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFy
dDoKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6CiAgICAgICAgICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uVmVydGljYWw7CiAgICAgICAgICAgICAKICAgICAg
ICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaCBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBi
ZTk2NDA3Li4xNzg2YzFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZU1hcHBpbmdzLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CkBAIC0yMjgsNiArMjI4LDE1IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShDb250cm9sUGFydCBlKQogICAgICAgICBjYXNlIE1lZGlhU2xp
ZGVyVGh1bWJQYXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFT
bGlkZXJ0aHVtYjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1l
U2xpZGVyQ29udGFpbmVyUGFydDoKKyAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZU1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVydGh1bWI7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBNZWRpYUNvbnRyb2xzQmFja2dyb3VuZFBhcnQ6CiAgICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYUNvbnRyb2xzQmFja2dyb3VuZDsKICAgICAgICAg
ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IGE3ZjcwMzQuLjlkOWRkMWIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvci5jcHAKQEAgLTEwOCw2ICsxMDgsNyBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNl
dWRvVHlwZSgpIGNvbnN0CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1l
ZGlhQ29udHJvbHNNdXRlQnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0
b24iKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJv
bHNQbGF5QnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24iKSk7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJvbHNUaW1lbGlu
ZSwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciIpKTsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1NlZWtCYWNrQnV0dG9uLCAoIi13ZWJraXQt
bWVkaWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1NlZWtGb3J3YXJkQnV0dG9uLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtc2Vlay1mb3J3YXJkLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1Jld2luZEJ1dHRvbiwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24iKSk7CkBAIC0xMTUsNiArMTE2LDcgQEAg
dm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzU3RhdHVzRGlzcGxheSwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXN0YXR1cy1kaXNwbGF5IikpOwogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzRnVsbHNjcmVlbkJ1dHRvbiwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uIikpOwogICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzVGltZWxpbmVDb250YWluZXIs
ICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIiKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXJD
b250YWluZXIsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5l
ciIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9s
c0N1cnJlbnRUaW1lRGlzcGxheSwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGlt
ZS1kaXNwbGF5IikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRp
YUNvbnRyb2xzVGltZVJlbWFpbmluZ0Rpc3BsYXksICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10
aW1lLXJlbWFpbmluZy1kaXNwbGF5IikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBub3RTdHIsICgibm90KCIpKTsKQEAgLTI0NCw2ICsyNDYsOSBAQCB2b2lkIENTU1Nl
bGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAgfSBlbHNlIGlmIChtX3ZhbHVl
ID09IG1lZGlhQ29udHJvbHNUaW1lbGluZSkgewogICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1
ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmU7CiAgICAgICAgIGVsZW1lbnQgPSB0cnVlOworICAgIH0g
ZWxzZSBpZiAobV92YWx1ZSA9PSBtZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyKSB7CisgICAgICAg
IG1fcHNldWRvVHlwZSA9IFBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXI7CisgICAgICAg
IGVsZW1lbnQgPSB0cnVlOwogICAgIH0gZWxzZSBpZiAobV92YWx1ZSA9PSBtZWRpYUNvbnRyb2xz
U2Vla0JhY2tCdXR0b24pIHsKICAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvTWVkaWFDb250
cm9sc1NlZWtCYWNrQnV0dG9uOwogICAgICAgICBlbGVtZW50ID0gdHJ1ZTsKQEAgLTI2NSw2ICsy
NzAsOSBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAg
fSBlbHNlIGlmIChtX3ZhbHVlID09IG1lZGlhQ29udHJvbHNUaW1lbGluZUNvbnRhaW5lcikgewog
ICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmVDb250YWlu
ZXI7CiAgICAgICAgIGVsZW1lbnQgPSB0cnVlOworICAgIH0gZWxzZSBpZiAobV92YWx1ZSA9PSBt
ZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyQ29udGFpbmVyKSB7CisgICAgICAgIG1fcHNldWRvVHlw
ZSA9IFBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXJDb250YWluZXI7CisgICAgICAgIGVs
ZW1lbnQgPSB0cnVlOwogICAgIH0gZWxzZSBpZiAobV92YWx1ZSA9PSBub3RTdHIpCiAgICAgICAg
IG1fcHNldWRvVHlwZSA9IFBzZXVkb05vdDsKICAgICBlbHNlIGlmIChtX3ZhbHVlID09IG50aENo
aWxkKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmgKaW5kZXggYWZkMGE2Zi4uNzgzNjEzNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0x
NzMsOSArMTczLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFBzZXVkb01l
ZGlhQ29udHJvbHNNdXRlQnV0dG9uLAogICAgICAgICAgICAgUHNldWRvTWVkaWFDb250cm9sc1Bs
YXlCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmVDb250YWlu
ZXIsCisgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyQ29udGFpbmVy
LAogICAgICAgICAgICAgUHNldWRvTWVkaWFDb250cm9sc0N1cnJlbnRUaW1lRGlzcGxheSwKICAg
ICAgICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNUaW1lUmVtYWluaW5nRGlzcGxheSwKICAgICAg
ICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNUaW1lbGluZSwKKyAgICAgICAgICAgIFBzZXVkb01l
ZGlhQ29udHJvbHNWb2x1bWVTbGlkZXIsCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xz
U2Vla0JhY2tCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzU2Vla0Zvcndh
cmRCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzUmV3aW5kQnV0dG9uLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nz
cy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCAxZGVkZTQ5Li5iZWM5MWM0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcApAQCAtMjUwNyw3ICsyNTA3LDEwIEBAIGJvb2wgQ1NTU3R5bGVTZWxl
Y3Rvcjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWws
IEVsZW1lCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmVDb250YWluZXI6CiAgICAgICAg
ICAgICAgICAgZHluYW1pY1BzZXVkbyA9IE1FRElBX0NPTlRST0xTX1RJTUVMSU5FX0NPTlRBSU5F
UjsKLSAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xz
Vm9sdW1lU2xpZGVyQ29udGFpbmVyOgorICAgICAgICAgICAgICAgIGR5bmFtaWNQc2V1ZG8gPSBN
RURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSX0NPTlRBSU5FUjsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb01lZGlhQ29u
dHJvbHNDdXJyZW50VGltZURpc3BsYXk6CiAgICAgICAgICAgICAgICAgZHluYW1pY1BzZXVkbyA9
IE1FRElBX0NPTlRST0xTX0NVUlJFTlRfVElNRV9ESVNQTEFZOwogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwpAQCAtMjUxNyw2ICsyNTIwLDkgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpT
ZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbCwgRWxlbWUK
ICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb01lZGlhQ29udHJvbHNUaW1lbGlu
ZToKICAgICAgICAgICAgICAgICBkeW5hbWljUHNldWRvID0gTUVESUFfQ09OVFJPTFNfVElNRUxJ
TkU7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyOgorICAgICAgICAgICAgICAg
IGR5bmFtaWNQc2V1ZG8gPSBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSOworICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
TWVkaWFDb250cm9sc1NlZWtCYWNrQnV0dG9uOgogICAgICAgICAgICAgICAgIGR5bmFtaWNQc2V1
ZG8gPSBNRURJQV9DT05UUk9MU19TRUVLX0JBQ0tfQlVUVE9OOwogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBi
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNjIxMjc2Yi4uNTNjNjY5MCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC01MTAsNiArNTEwLDkgQEAgbWVkaWEtcmV3aW5k
LWJ1dHRvbgogbWVkaWEtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbgogbWVkaWEtc2xpZGVyCiBt
ZWRpYS1zbGlkZXJ0aHVtYgorbWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXIKK21lZGlhLXZv
bHVtZS1zbGlkZXIKK21lZGlhLXZvbHVtZS1zbGlkZXJ0aHVtYgogbWVkaWEtY29udHJvbHMtYmFj
a2dyb3VuZAogbWVkaWEtY3VycmVudC10aW1lLWRpc3BsYXkKIG1lZGlhLXRpbWUtcmVtYWluaW5n
LWRpc3BsYXkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzIGIvV2Vi
Q29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKaW5kZXggZjk2OTRmOC4uZDBlYzkwZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvV2ViQ29yZS9jc3MvbWVk
aWFDb250cm9scy5jc3MKQEAgLTg4LDYgKzg4LDE0IEBAIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRpbWVsaW5lLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSB7
CiAgICAgcGFkZGluZzogMHB4IDJweDsKIH0KIAorYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXZvbHVtZS1zbGlkZXItY29udGFpbmVyIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCithdWRp
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCiBh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uIHsKICAgICAtd2Via2l0LWFwcGVh
cmFuY2U6IG1lZGlhLXNlZWstYmFjay1idXR0b247CiAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vVGhlbWVUeXBlcy5oCmluZGV4IGI3NjM2NzUuLjNhYjQxZGQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVU
eXBlcy5oCkBAIC00OSw5ICs0OSw4IEBAIGVudW0gQ29udHJvbFBhcnQgewogICAgIEJ1dHRvbkJl
dmVsUGFydCwgRGVmYXVsdEJ1dHRvblBhcnQsIExpc3Rib3hQYXJ0LCBMaXN0SXRlbVBhcnQsIAog
ICAgIE1lZGlhRnVsbHNjcmVlbkJ1dHRvblBhcnQsIE1lZGlhTXV0ZUJ1dHRvblBhcnQsIE1lZGlh
UGxheUJ1dHRvblBhcnQsIE1lZGlhU2Vla0JhY2tCdXR0b25QYXJ0LCAKICAgICBNZWRpYVNlZWtG
b3J3YXJkQnV0dG9uUGFydCwgTWVkaWFSZXdpbmRCdXR0b25QYXJ0LCBNZWRpYVJldHVyblRvUmVh
bHRpbWVCdXR0b25QYXJ0LAotICAgIE1lZGlhU2xpZGVyUGFydCwKLSAgICBNZWRpYVNsaWRlclRo
dW1iUGFydCwgTWVkaWFDb250cm9sc0JhY2tncm91bmRQYXJ0LAotICAgIE1lZGlhQ3VycmVudFRp
bWVQYXJ0LCBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0LAorICAgIE1lZGlhU2xpZGVyUGFydCwgTWVk
aWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyUGFydCwgTWVkaWFW
b2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCwKKyAgICBNZWRpYUNv
bnRyb2xzQmFja2dyb3VuZFBhcnQsIE1lZGlhQ3VycmVudFRpbWVQYXJ0LCBNZWRpYVRpbWVSZW1h
aW5pbmdQYXJ0LAogICAgIE1lbnVsaXN0UGFydCwgTWVudWxpc3RCdXR0b25QYXJ0LCBNZW51bGlz
dFRleHRQYXJ0LCBNZW51bGlzdFRleHRGaWVsZFBhcnQsCiAgICAgU2xpZGVySG9yaXpvbnRhbFBh
cnQsIFNsaWRlclZlcnRpY2FsUGFydCwgU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCwKICAgICBT
bGlkZXJUaHVtYlZlcnRpY2FsUGFydCwgQ2FyZXRQYXJ0LCBTZWFyY2hGaWVsZFBhcnQsIFNlYXJj
aEZpZWxkRGVjb3JhdGlvblBhcnQsCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAKaW5kZXggMGU1ODg0Yi4uZWU3NjgxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMTgzLDcgKzE4Myw0OSBAQCBib29sIE1lZGlhQ29u
dHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHls
ZSogc3R5bGUpCiAgICAgcmV0dXJuICFpc25hbihkdXJhdGlvbikgJiYgIWlzaW5mKGR1cmF0aW9u
KTsKIH0KIAotICAgIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJDb250YWluZXJFbGVtZW50KERvY3VtZW50KiBkb2MsIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1l
bnQpCisgICAgOiBNZWRpYUNvbnRyb2xFbGVtZW50KGRvYywgTUVESUFfQ09OVFJPTFNfVk9MVU1F
X1NMSURFUl9DT05UQUlORVIsIGVsZW1lbnQpCisgICAgLCBtX2lzVmlzaWJsZShmYWxzZSkKKyAg
ICAsIG1feCgwKQorICAgICwgbV95KDApCit7Cit9CisKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnN0eWxlRm9yRWxlbWVu
dCgpCit7CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IE1lZGlhQ29udHJvbEVsZW1l
bnQ6OnN0eWxlRm9yRWxlbWVudCgpOworICAgIHN0eWxlLT5zZXRQb3NpdGlvbihBYnNvbHV0ZVBv
c2l0aW9uKTsKKyAgICBzdHlsZS0+c2V0TGVmdChMZW5ndGgobV94LCBGaXhlZCkpOworICAgIHN0
eWxlLT5zZXRUb3AoTGVuZ3RoKG1feSwgRml4ZWQpKTsKKyAgICBzdHlsZS0+c2V0RGlzcGxheSht
X2lzVmlzaWJsZSA/IEJMT0NLIDogTk9ORSk7CisgICAgcmV0dXJuIHN0eWxlOworfQorCit2b2lk
IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNldFZpc2libGUoYm9v
bCB2aXNpYmxlKQoreworICAgIGlmICh2aXNpYmxlID09IG1faXNWaXNpYmxlKQorICAgICAgICBy
ZXR1cm47CisgICAgbV9pc1Zpc2libGUgPSB2aXNpYmxlOworfQorCit2b2lkIE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNldFBvc2l0aW9uKGludCB4LCBpbnQgeSkK
K3sKKyAgICBpZiAoeCA9PSBtX3ggJiYgeSA9PSBtX3kpCisgICAgICAgIHJldHVybjsKKyAgICBt
X3ggPSB4OworICAgIG1feSA9IHk7Cit9CisKK2Jvb2wgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
Q29udGFpbmVyRWxlbWVudDo6aGl0VGVzdChjb25zdCBJbnRQb2ludCYgYWJzUG9pbnQpCit7Cisg
ICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgp
KQorICAgICAgICByZXR1cm4gcmVuZGVyZXIoKS0+dGhlbWUoKS0+aGl0VGVzdE1lZGlhQ29udHJv
bFBhcnQocmVuZGVyZXIoKSwgYWJzUG9pbnQpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIE1lZGlhQ29udHJvbFN0YXR1c0Rpc3Bs
YXlFbGVtZW50OjpNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudChEb2N1bWVudCogZG9j
dW1lbnQsIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQpCkBAIC0yNTgsNyArMzAwLDggQEAgdm9p
ZCBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnVwZGF0ZSgpCiAKIFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KCkKIHsKLSAg
ICByZXR1cm4gbV9tZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCktPmdldENhY2hlZFBzZXVkb1N0eWxl
KG1fcHNldWRvU3R5bGVJZCk7CisgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBt
X21lZGlhRWxlbWVudC0+cmVuZGVyZXIoKS0+Z2V0Q2FjaGVkUHNldWRvU3R5bGUobV9wc2V1ZG9T
dHlsZUlkKTsKKyAgICByZXR1cm4gc3R5bGU7CiB9CiAKIGJvb2wgTWVkaWFDb250cm9sSW5wdXRF
bGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHlsZSkKQEAgLTUyOCw2ICs1
NzEsMzIgQEAgdm9pZCBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OnVwZGF0ZShib29sIHVw
ZGF0ZUR1cmF0aW9uKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK01lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KQorICAgIDog
TWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNRURJQV9DT05UUk9MU19WT0xVTUVf
U0xJREVSLCAicmFuZ2UiLCBlbGVtZW50LCBNZWRpYVZvbHVtZVNsaWRlcikKK3sKKyAgICBzZXRB
dHRyaWJ1dGUobWF4QXR0ciwgIjEiKTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKK3sKKyAgICAvLyBM
ZWZ0IGJ1dHRvbiBpcyAwLiBSZWplY3RzIG1vdXNlIGV2ZW50cyBub3QgZnJvbSBsZWZ0IGJ1dHRv
bi4KKyAgICBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZl
bnQqPihldmVudCktPmJ1dHRvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBNZWRpYUNvbnRy
b2xJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworCisgICAgaWYgKGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50IHx8IGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0RXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGZsb2F0IHZv
bHVtZSA9IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodmFsdWUoKS50b0RvdWJsZSgpKTsKKyAgICBp
ZiAodm9sdW1lICE9IG1fbWVkaWFFbGVtZW50LT52b2x1bWUoKSkgeworICAgICAgICBFeGNlcHRp
b25Db2RlIGVjOworICAgICAgICBtX21lZGlhRWxlbWVudC0+c2V0Vm9sdW1lKHZvbHVtZSwgZWMp
OworICAgIH0KK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiBNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRv
bkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KQog
ICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNRURJQV9DT05UUk9MU19G
VUxMU0NSRUVOX0JVVFRPTiwgImJ1dHRvbiIsIGVsZW1lbnQsIE1lZGlhRnVsbHNjcmVlbkJ1dHRv
bikKIHsKQEAgLTU4MCw2ICs2NDksNSBAQCB2b2lkIE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxl
bWVudDo6c2V0VmlzaWJsZShib29sIHZpc2libGUpCiAgICAgcmVuZGVyZXIoKS0+c2V0U3R5bGUo
c3R5bGUuZ2V0KCkpOwogfQogCi0KIH0gLy9uYW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmIC8vIGVu
YWJsZSh2aWRlbykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVs
ZW1lbnRzLmggYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCmluZGV4
IDk1MzQ4YjIuLmQ5Y2RlMWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29u
dHJvbEVsZW1lbnRzLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVu
dHMuaApAQCAtNTcsMTAgKzU3LDEzIEBAIGVudW0gTWVkaWFDb250cm9sRWxlbWVudFR5cGUgewog
ICAgIE1lZGlhVW5NdXRlQnV0dG9uLAogICAgIE1lZGlhUGF1c2VCdXR0b24sCiAgICAgTWVkaWFU
aW1lbGluZUNvbnRhaW5lciwKLSAgICBNZWRpYUN1cnJlbnRUaW1lRGlzcGxheSwgCisgICAgTWVk
aWFDdXJyZW50VGltZURpc3BsYXksCiAgICAgTWVkaWFUaW1lUmVtYWluaW5nRGlzcGxheSwKICAg
ICBNZWRpYVN0YXR1c0Rpc3BsYXksCi0gICAgTWVkaWFDb250cm9sc1BhbmVsCisgICAgTWVkaWFD
b250cm9sc1BhbmVsLAorICAgIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyLAorICAgIE1lZGlh
Vm9sdW1lU2xpZGVyLAorICAgIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIKIH07CiAKIGNsYXNzIE1l
ZGlhQ29udHJvbFNoYWRvd1Jvb3RFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKQEAg
LTEwNCw2ICsxMDcsMjIgQEAgcHVibGljOgogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKK2NsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQgOiBw
dWJsaWMgTWVkaWFDb250cm9sRWxlbWVudCB7CitwdWJsaWM6CisgICAgTWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQqKTsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yRWxlbWVudCgpOwor
ICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKKyAgICBib29sIGlzVmlzaWJsZSgpIHsgcmV0dXJu
IG1faXNWaXNpYmxlOyB9CisgICAgdm9pZCBzZXRQb3NpdGlvbihpbnQgeCwgaW50IHkpOworICAg
IGJvb2wgaGl0VGVzdChjb25zdCBJbnRQb2ludCYgYWJzUG9pbnQpOworCitwcml2YXRlOgorICAg
IGJvb2wgbV9pc1Zpc2libGU7CisgICAgaW50IG1feCwgbV95OworfTsKKworLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCiBjbGFzcyBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxl
bWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50IHsKIHB1YmxpYzoKICAgICBNZWRpYUNv
bnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudChEb2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQqKTsK
QEAgLTIwNyw2ICsyMjYsMTQgQEAgcHVibGljOgogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKK2NsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQgOiBwdWJsaWMg
TWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXJFbGVtZW50KERvY3VtZW50KiwgSFRNTE1lZGlhRWxlbWVudCopOworICAgIHZpcnR1
YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7Cit9OworCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKIGNsYXNzIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25F
bGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBwdWJsaWM6CiAgICAg
TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqLCBIVE1MTWVkaWFF
bGVtZW50Kik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAKaW5kZXggYjg3ZTk5ZC4uOTQ4YWJk
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW5j
bHVkZSAiTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApAQCAtMTMy
LDYgKzEzMywxMCBAQCB2b2lkIFJlbmRlck1lZGlhOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZl
cmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eQogICAgICAgICAgICAgbV9jdXJy
ZW50VGltZURpc3BsYXktPnVwZGF0ZVN0eWxlKCk7CiAgICAgICAgIGlmIChtX3RpbWVSZW1haW5p
bmdEaXNwbGF5KQogICAgICAgICAgICAgbV90aW1lUmVtYWluaW5nRGlzcGxheS0+dXBkYXRlU3R5
bGUoKTsKKyAgICAgICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKQorICAgICAgICAgICAg
bV92b2x1bWVTbGlkZXJDb250YWluZXItPnVwZGF0ZVN0eWxlKCk7CisgICAgICAgIGlmIChtX3Zv
bHVtZVNsaWRlcikKKyAgICAgICAgICAgIG1fdm9sdW1lU2xpZGVyLT51cGRhdGVTdHlsZSgpOwog
ICAgIH0KIH0KIApAQCAtMjQwLDYgKzI0NSwyMSBAQCB2b2lkIFJlbmRlck1lZGlhOjpjcmVhdGVU
aW1lbGluZSgpCiAgICAgbV90aW1lbGluZS0+YXR0YWNoVG9QYXJlbnQobV90aW1lbGluZUNvbnRh
aW5lci5nZXQoKSk7CiB9CiAKK3ZvaWQgUmVuZGVyTWVkaWE6OmNyZWF0ZVZvbHVtZVNsaWRlckNv
bnRhaW5lcigpCit7CisgICAgQVNTRVJUKCFtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcik7CisgICAg
bV92b2x1bWVTbGlkZXJDb250YWluZXIgPSBuZXcgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29u
dGFpbmVyRWxlbWVudChkb2N1bWVudCgpLCBtZWRpYUVsZW1lbnQoKSk7CisgICAgbV92b2x1bWVT
bGlkZXJDb250YWluZXItPmF0dGFjaFRvUGFyZW50KG1fcGFuZWwuZ2V0KCkpOworfQorCit2b2lk
IFJlbmRlck1lZGlhOjpjcmVhdGVWb2x1bWVTbGlkZXIoKQoreworICAgIEFTU0VSVCghbV92b2x1
bWVTbGlkZXIpOworICAgIG1fdm9sdW1lU2xpZGVyID0gbmV3IE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckVsZW1lbnQoZG9jdW1lbnQoKSwgbWVkaWFFbGVtZW50KCkpOworICAgIG1fdm9sdW1lU2xp
ZGVyLT5zZXRBdHRyaWJ1dGUocHJlY2lzaW9uQXR0ciwgImZsb2F0Iik7CisgICAgbV92b2x1bWVT
bGlkZXItPmF0dGFjaFRvUGFyZW50KG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLmdldCgpKTsKK30K
Kwogdm9pZCBSZW5kZXJNZWRpYTo6Y3JlYXRlQ3VycmVudFRpbWVEaXNwbGF5KCkKIHsKICAgICBB
U1NFUlQoIW1fY3VycmVudFRpbWVEaXNwbGF5KTsKQEAgLTI2MCwxMiArMjgwLDEyIEBAIHZvaWQg
UmVuZGVyTWVkaWE6OmNyZWF0ZUZ1bGxzY3JlZW5CdXR0b24oKQogICAgIG1fZnVsbHNjcmVlbkJ1
dHRvbiA9IG5ldyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudChkb2N1bWVudCgp
LCBtZWRpYUVsZW1lbnQoKSk7CiAgICAgbV9mdWxsc2NyZWVuQnV0dG9uLT5hdHRhY2hUb1BhcmVu
dChtX3BhbmVsLmdldCgpKTsKIH0KLSAgICAKKwogdm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlRnJv
bUVsZW1lbnQoKQogewogICAgIHVwZGF0ZUNvbnRyb2xzKCk7CiB9Ci0gICAgICAgICAgICAKKwog
dm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbHMoKQogewogICAgIEhUTUxNZWRpYUVsZW1l
bnQqIG1lZGlhID0gbWVkaWFFbGVtZW50KCk7CkBAIC0yODUsNiArMzA1LDggQEAgdm9pZCBSZW5k
ZXJNZWRpYTo6dXBkYXRlQ29udHJvbHMoKQogICAgICAgICAgICAgbV9jdXJyZW50VGltZURpc3Bs
YXkgPSAwOwogICAgICAgICAgICAgbV90aW1lUmVtYWluaW5nRGlzcGxheSA9IDA7CiAgICAgICAg
ICAgICBtX2Z1bGxzY3JlZW5CdXR0b24gPSAwOworICAgICAgICAgICAgbV92b2x1bWVTbGlkZXJD
b250YWluZXIgPSAwOworICAgICAgICAgICAgbV92b2x1bWVTbGlkZXIgPSAwOwogICAgICAgICAg
ICAgbV9jb250cm9sc1NoYWRvd1Jvb3QgPSAwOwogICAgICAgICB9CiAgICAgICAgIG1fb3BhY2l0
eUFuaW1hdGlvblRvID0gMS4wZjsKQEAgLTI5Miw3ICszMTQsNyBAQCB2b2lkIFJlbmRlck1lZGlh
Ojp1cGRhdGVDb250cm9scygpCiAgICAgICAgIG1fdGltZVVwZGF0ZVRpbWVyLnN0b3AoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKKwogICAgIGlmICghbV9jb250cm9sc1NoYWRvd1Jv
b3QpIHsKICAgICAgICAgY3JlYXRlQ29udHJvbHNTaGFkb3dSb290KCk7CiAgICAgICAgIGNyZWF0
ZVBhbmVsKCk7CkBAIC0zMDMsOSArMzI1LDEyIEBAIHZvaWQgUmVuZGVyTWVkaWE6OnVwZGF0ZUNv
bnRyb2xzKCkKICAgICAgICAgICAgIGNyZWF0ZVJldHVyblRvUmVhbHRpbWVCdXR0b24oKTsKICAg
ICAgICAgICAgIGNyZWF0ZVN0YXR1c0Rpc3BsYXkoKTsKICAgICAgICAgICAgIGNyZWF0ZVRpbWVs
aW5lQ29udGFpbmVyKCk7CisgICAgICAgICAgICBjcmVhdGVWb2x1bWVTbGlkZXJDb250YWluZXIo
KTsKICAgICAgICAgICAgIGNyZWF0ZVNlZWtCYWNrQnV0dG9uKCk7CiAgICAgICAgICAgICBjcmVh
dGVTZWVrRm9yd2FyZEJ1dHRvbigpOwogICAgICAgICAgICAgY3JlYXRlRnVsbHNjcmVlbkJ1dHRv
bigpOworICAgICAgICAgICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKQorICAgICAgICAg
ICAgICAgIGNyZWF0ZVZvbHVtZVNsaWRlcigpOwogICAgICAgICAgICAgaWYgKG1fdGltZWxpbmVD
b250YWluZXIpIHsKICAgICAgICAgICAgICAgICBjcmVhdGVDdXJyZW50VGltZURpc3BsYXkoKTsK
ICAgICAgICAgICAgICAgICBjcmVhdGVUaW1lbGluZSgpOwpAQCAtMzIyLDcgKzM0Nyw2IEBAIHZv
aWQgUmVuZGVyTWVkaWE6OnVwZGF0ZUNvbnRyb2xzKCkKICAgICAgICAgbV90aW1lVXBkYXRlVGlt
ZXIuc3RhcnRSZXBlYXRpbmcoY1RpbWVVcGRhdGVSZXBlYXREZWxheSk7CiAgICAgfQogCi0gICAg
CiAgICAgaWYgKG1fcGFuZWwpIHsKICAgICAgICAgLy8gdXBkYXRlKCkgbWlnaHQgYWx0ZXIgdGhl
IG9wYWNpdHkgb2YgdGhlIGVsZW1lbnQsIGVzcGVjaWFsbHkgaWYgd2UgYXJlIGluIHRoZSBtaWRk
bGUKICAgICAgICAgLy8gb2YgYW4gYW5pbWF0aW9uLiBUaGlzIGlzIHRoZSBvbmx5IGVsZW1lbnQg
Y29uY2VybmVkIGFzIHdlIGFuaW1hdGUgb25seSB0aGlzIGVsZW1lbnQuCkBAIC0zMzYsNiArMzYw
LDggQEAgdm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbHMoKQogICAgICAgICBtX3BsYXlC
dXR0b24tPnVwZGF0ZSgpOwogICAgIGlmIChtX3RpbWVsaW5lQ29udGFpbmVyKQogICAgICAgICBt
X3RpbWVsaW5lQ29udGFpbmVyLT51cGRhdGUoKTsKKyAgICBpZiAobV92b2x1bWVTbGlkZXJDb250
YWluZXIpCisgICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT51cGRhdGUoKTsKICAgICBp
ZiAobV90aW1lbGluZSkKICAgICAgICAgbV90aW1lbGluZS0+dXBkYXRlKCk7CiAgICAgaWYgKG1f
Y3VycmVudFRpbWVEaXNwbGF5KQpAQCAtMzU0LDYgKzM4MCw4IEBAIHZvaWQgUmVuZGVyTWVkaWE6
OnVwZGF0ZUNvbnRyb2xzKCkKICAgICAgICAgbV9zdGF0dXNEaXNwbGF5LT51cGRhdGUoKTsKICAg
ICBpZiAobV9mdWxsc2NyZWVuQnV0dG9uKQogICAgICAgICBtX2Z1bGxzY3JlZW5CdXR0b24tPnVw
ZGF0ZSgpOworICAgIGlmIChtX3ZvbHVtZVNsaWRlcikKKyAgICAgICAgbV92b2x1bWVTbGlkZXIt
PnVwZGF0ZSgpOwogCiAgICAgdXBkYXRlVGltZURpc3BsYXkoKTsKICAgICB1cGRhdGVDb250cm9s
VmlzaWJpbGl0eSgpOwpAQCAtMzY1LDEyICszOTMsMTIgQEAgdm9pZCBSZW5kZXJNZWRpYTo6dGlt
ZVVwZGF0ZVRpbWVyRmlyZWQoVGltZXI8UmVuZGVyTWVkaWE+KikKICAgICAgICAgbV90aW1lbGlu
ZS0+dXBkYXRlKGZhbHNlKTsKICAgICB1cGRhdGVUaW1lRGlzcGxheSgpOwogfQotICAgIAorCiBT
dHJpbmcgUmVuZGVyTWVkaWE6OmZvcm1hdFRpbWUoZmxvYXQgdGltZSkKIHsKICAgICBpZiAoIWlz
ZmluaXRlKHRpbWUpKQogICAgICAgICB0aW1lID0gMDsKLSAgICBpbnQgc2Vjb25kcyA9IChpbnQp
ZmFic2YodGltZSk7IAorICAgIGludCBzZWNvbmRzID0gKGludClmYWJzZih0aW1lKTsKICAgICBp
bnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOwogICAgIGludCBtaW51dGVzID0gKHNlY29u
ZHMgLyA2MCkgJSA2MDsKICAgICBzZWNvbmRzICU9IDYwOwpAQCAtMzk0LDEyICs0MjIsMTIgQEAg
dm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlVGltZURpc3BsYXkoKQogICAgIFN0cmluZyB0aW1lU3Ry
aW5nID0gZm9ybWF0VGltZShub3cpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAgICAgbV9jdXJy
ZW50VGltZURpc3BsYXktPnNldElubmVyVGV4dCh0aW1lU3RyaW5nLCBlYyk7Ci0gICAgCisKICAg
ICB0aW1lU3RyaW5nID0gZm9ybWF0VGltZShub3cgLSBkdXJhdGlvbik7CiAgICAgbV90aW1lUmVt
YWluaW5nRGlzcGxheS0+c2V0SW5uZXJUZXh0KHRpbWVTdHJpbmcsIGVjKTsKIH0KIAotdm9pZCBS
ZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbFZpc2liaWxpdHkoKSAKK3ZvaWQgUmVuZGVyTWVkaWE6
OnVwZGF0ZUNvbnRyb2xWaXNpYmlsaXR5KCkKIHsKICAgICBpZiAoIW1fcGFuZWwgfHwgIW1fcGFu
ZWwtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQxMiw3ICs0NDAsNyBAQCB2b2lk
IFJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9sVmlzaWJpbGl0eSgpCiAgICAgLy8gRG9uJ3QgZmFk
ZSBpZiB0aGUgbWVkaWEgZWxlbWVudCBpcyBub3QgdmlzaWJsZQogICAgIGlmIChzdHlsZSgpLT52
aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgYm9v
bCBzaG91bGRIaWRlQ29udHJvbGxlciA9ICFtX21vdXNlT3ZlciAmJiAhbWVkaWEtPmNhblBsYXko
KTsKIAogICAgIC8vIERvIGZhZGluZyBtYW51YWxseSwgY3NzIGFuaW1hdGlvbnMgZG9uJ3Qgd29y
ayB3aXRoIHNoYWRvdyB0cmVlcwpAQCAtNDQwLDggKzQ2OCw4IEBAIHZvaWQgUmVuZGVyTWVkaWE6
OnVwZGF0ZUNvbnRyb2xWaXNpYmlsaXR5KCkKICAgICBtX29wYWNpdHlBbmltYXRpb25TdGFydFRp
bWUgPSBjdXJyZW50VGltZSgpOwogICAgIG1fb3BhY2l0eUFuaW1hdGlvblRpbWVyLnN0YXJ0UmVw
ZWF0aW5nKGNPcGFjaXR5QW5pbWF0aW9uUmVwZWF0RGVsYXkpOwogfQotICAgIAotdm9pZCBSZW5k
ZXJNZWRpYTo6Y2hhbmdlT3BhY2l0eShIVE1MRWxlbWVudCogZSwgZmxvYXQgb3BhY2l0eSkgCisK
K3ZvaWQgUmVuZGVyTWVkaWE6OmNoYW5nZU9wYWNpdHkoSFRNTEVsZW1lbnQqIGUsIGZsb2F0IG9w
YWNpdHkpCiB7CiAgICAgaWYgKCFlIHx8ICFlLT5yZW5kZXJlcigpIHx8ICFlLT5yZW5kZXJlcigp
LT5zdHlsZSgpKQogICAgICAgICByZXR1cm47CkBAIC00NTEsNyArNDc5LDcgQEAgdm9pZCBSZW5k
ZXJNZWRpYTo6Y2hhbmdlT3BhY2l0eShIVE1MRWxlbWVudCogZSwgZmxvYXQgb3BhY2l0eSkKICAg
ICBzLT5zZXRaSW5kZXgoMCk7CiAgICAgZS0+cmVuZGVyZXIoKS0+c2V0U3R5bGUocy5yZWxlYXNl
KCkpOwogfQotICAgIAorCiB2b2lkIFJlbmRlck1lZGlhOjpvcGFjaXR5QW5pbWF0aW9uVGltZXJG
aXJlZChUaW1lcjxSZW5kZXJNZWRpYT4qKQogewogICAgIGRvdWJsZSB0aW1lID0gY3VycmVudFRp
bWUoKSAtIG1fb3BhY2l0eUFuaW1hdGlvblN0YXJ0VGltZTsKQEAgLTQ2MywxMyArNDkxLDUzIEBA
IHZvaWQgUmVuZGVyTWVkaWE6Om9wYWNpdHlBbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFJlbmRl
ck1lZGlhPiopCiAgICAgY2hhbmdlT3BhY2l0eShtX3BhbmVsLmdldCgpLCBvcGFjaXR5KTsKIH0K
IAordm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlVm9sdW1lU2xpZGVyQ29udGFpbmVyKGJvb2wgdmlz
aWJsZSkKK3sKKyAgICBpZiAoIW1fdm9sdW1lU2xpZGVyQ29udGFpbmVyIHx8ICFtX3ZvbHVtZVNs
aWRlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHZpc2libGUgJiYgIW1fdm9sdW1lU2xp
ZGVyQ29udGFpbmVyLT5pc1Zpc2libGUoKSkgeworICAgICAgICBpZiAoIW1fbXV0ZUJ1dHRvbiB8
fCAhbV9tdXRlQnV0dG9uLT5yZW5kZXJlcigpIHx8ICFtX211dGVCdXR0b24tPnJlbmRlckJveCgp
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gcyA9
IG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5zdHlsZUZvckVsZW1lbnQoKTsKKyAgICAgICAgaW50
IGhlaWdodCA9IHMtPmhlaWdodCgpLmlzUGVyY2VudCgpID8gMCA6IHMtPmhlaWdodCgpLnZhbHVl
KCk7CisgICAgICAgIGludCB4ID0gbV9tdXRlQnV0dG9uLT5yZW5kZXJCb3goKS0+b2Zmc2V0TGVm
dCgpOworICAgICAgICBpbnQgeSA9IG1fbXV0ZUJ1dHRvbi0+cmVuZGVyQm94KCktPm9mZnNldFRv
cCgpIC0gaGVpZ2h0OworICAgICAgICBGbG9hdFBvaW50IGFic1BvaW50ID0gbV9tdXRlQnV0dG9u
LT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCh4LCB5KSwgdHJ1ZSwgdHJ1
ZSk7CisgICAgICAgIGlmIChhYnNQb2ludC55KCkgPCAwKQorICAgICAgICAgICAgeSA9IG1fbXV0
ZUJ1dHRvbi0+cmVuZGVyQm94KCktPm9mZnNldFRvcCgpICsgbV9tdXRlQnV0dG9uLT5yZW5kZXJC
b3goKS0+aGVpZ2h0KCk7CisgICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5zZXRWaXNp
YmxlKHRydWUpOworICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+c2V0UG9zaXRpb24o
eCwgeSk7CisgICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT51cGRhdGUoKTsKKyAgICAg
ICAgbV92b2x1bWVTbGlkZXItPnVwZGF0ZSgpOworICAgIH0gZWxzZSBpZiAoIXZpc2libGUgJiYg
bV92b2x1bWVTbGlkZXJDb250YWluZXItPmlzVmlzaWJsZSgpKSB7CisgICAgICAgIG1fdm9sdW1l
U2xpZGVyQ29udGFpbmVyLT5zZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgbV92b2x1bWVTbGlk
ZXJDb250YWluZXItPnVwZGF0ZVN0eWxlKCk7CisgICAgfQorfQorCiB2b2lkIFJlbmRlck1lZGlh
Ojpmb3J3YXJkRXZlbnQoRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChldmVudC0+aXNNb3VzZUV2
ZW50KCkgJiYgbV9jb250cm9sc1NoYWRvd1Jvb3QpIHsKICAgICAgICAgTW91c2VFdmVudCogbW91
c2VFdmVudCA9IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCk7CiAgICAgICAgIEludFBv
aW50IHBvaW50KG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSk7Ci0gICAgICAgIGlmICht
X211dGVCdXR0b24gJiYgbV9tdXRlQnV0dG9uLT5oaXRUZXN0KHBvaW50KSkKKyAgICAgICAgYm9v
bCBzaG93Vm9sdW1lU2xpZGVyID0gZmFsc2U7CisgICAgICAgIGlmIChtX211dGVCdXR0b24gJiYg
bV9tdXRlQnV0dG9uLT5oaXRUZXN0KHBvaW50KSkgewogICAgICAgICAgICAgbV9tdXRlQnV0dG9u
LT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAgICAgICAgIGlmIChldmVudC0+dHlw
ZSgpICE9IGV2ZW50TmFtZXMoKS5tb3VzZW91dEV2ZW50KQorICAgICAgICAgICAgICAgIHNob3dW
b2x1bWVTbGlkZXIgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fdm9sdW1lU2xp
ZGVyQ29udGFpbmVyICYmIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5oaXRUZXN0KHBvaW50KSkK
KyAgICAgICAgICAgIHNob3dWb2x1bWVTbGlkZXIgPSB0cnVlOworCisgICAgICAgIGlmIChtX3Zv
bHVtZVNsaWRlciAmJiBtX3ZvbHVtZVNsaWRlci0+aGl0VGVzdChwb2ludCkpIHsKKyAgICAgICAg
ICAgIG1fdm9sdW1lU2xpZGVyLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAgICAg
ICAgIHNob3dWb2x1bWVTbGlkZXIgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgdXBkYXRl
Vm9sdW1lU2xpZGVyQ29udGFpbmVyKHNob3dWb2x1bWVTbGlkZXIpOwogCiAgICAgICAgIGlmICht
X3BsYXlCdXR0b24gJiYgbV9wbGF5QnV0dG9uLT5oaXRUZXN0KHBvaW50KSkKICAgICAgICAgICAg
IG1fcGxheUJ1dHRvbi0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CkBAIC00OTEsNyArNTU5
LDcgQEAgdm9pZCBSZW5kZXJNZWRpYTo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBldmVudCkKIAogICAg
ICAgICBpZiAobV9mdWxsc2NyZWVuQnV0dG9uICYmIG1fZnVsbHNjcmVlbkJ1dHRvbi0+aGl0VGVz
dChwb2ludCkpCiAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5CdXR0b24tPmRlZmF1bHRFdmVudEhh
bmRsZXIoZXZlbnQpOwotICAgICAgICAKKwogICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkubW91c2VvdmVyRXZlbnQpIHsKICAgICAgICAgICAgIG1fbW91c2VPdmVyID0g
dHJ1ZTsKICAgICAgICAgICAgIHVwZGF0ZUNvbnRyb2xWaXNpYmlsaXR5KCk7CkBAIC01MTEsNyAr
NTc5LDcgQEAgaW50IFJlbmRlck1lZGlhOjpsb3dlc3RQb3NpdGlvbihib29sIGluY2x1ZGVPdmVy
Zmxvd0ludGVyaW9yLCBib29sIGluY2x1ZGVTZWxmKQogICAgIGludCBib3R0b20gPSBSZW5kZXJS
ZXBsYWNlZDo6bG93ZXN0UG9zaXRpb24oaW5jbHVkZU92ZXJmbG93SW50ZXJpb3IsIGluY2x1ZGVT
ZWxmKTsKICAgICBpZiAoIW1fY29udHJvbHNTaGFkb3dSb290IHx8ICFtX2NvbnRyb2xzU2hhZG93
Um9vdC0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIGJvdHRvbTsKLSAgICAKKwogICAgIHJl
dHVybiBtYXgoYm90dG9tLCAgbV9jb250cm9sc1NoYWRvd1Jvb3QtPnJlbmRlckJveCgpLT55KCkg
KyBtX2NvbnRyb2xzU2hhZG93Um9vdC0+cmVuZGVyQm94KCktPmxvd2VzdFBvc2l0aW9uKGluY2x1
ZGVPdmVyZmxvd0ludGVyaW9yLCBpbmNsdWRlU2VsZikpOwogfQogCkBAIC01MjAsNyArNTg4LDcg
QEAgaW50IFJlbmRlck1lZGlhOjpyaWdodG1vc3RQb3NpdGlvbihib29sIGluY2x1ZGVPdmVyZmxv
d0ludGVyaW9yLCBib29sIGluY2x1ZGVTZWwKICAgICBpbnQgcmlnaHQgPSBSZW5kZXJSZXBsYWNl
ZDo6cmlnaHRtb3N0UG9zaXRpb24oaW5jbHVkZU92ZXJmbG93SW50ZXJpb3IsIGluY2x1ZGVTZWxm
KTsKICAgICBpZiAoIW1fY29udHJvbHNTaGFkb3dSb290IHx8ICFtX2NvbnRyb2xzU2hhZG93Um9v
dC0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIHJpZ2h0OwotICAgIAorCiAgICAgcmV0dXJu
IG1heChyaWdodCwgbV9jb250cm9sc1NoYWRvd1Jvb3QtPnJlbmRlckJveCgpLT54KCkgKyBtX2Nv
bnRyb2xzU2hhZG93Um9vdC0+cmVuZGVyQm94KCktPnJpZ2h0bW9zdFBvc2l0aW9uKGluY2x1ZGVP
dmVyZmxvd0ludGVyaW9yLCBpbmNsdWRlU2VsZikpOwogfQogCkBAIC01MjksNyArNTk3LDcgQEAg
aW50IFJlbmRlck1lZGlhOjpsZWZ0bW9zdFBvc2l0aW9uKGJvb2wgaW5jbHVkZU92ZXJmbG93SW50
ZXJpb3IsIGJvb2wgaW5jbHVkZVNlbGYKICAgICBpbnQgbGVmdCA9IFJlbmRlclJlcGxhY2VkOjps
ZWZ0bW9zdFBvc2l0aW9uKGluY2x1ZGVPdmVyZmxvd0ludGVyaW9yLCBpbmNsdWRlU2VsZik7CiAg
ICAgaWYgKCFtX2NvbnRyb2xzU2hhZG93Um9vdCB8fCAhbV9jb250cm9sc1NoYWRvd1Jvb3QtPnJl
bmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBsZWZ0OwotICAgIAorCiAgICAgcmV0dXJuIG1pbihs
ZWZ0LCBtX2NvbnRyb2xzU2hhZG93Um9vdC0+cmVuZGVyQm94KCktPngoKSArICBtX2NvbnRyb2xz
U2hhZG93Um9vdC0+cmVuZGVyQm94KCktPmxlZnRtb3N0UG9zaXRpb24oaW5jbHVkZU92ZXJmbG93
SW50ZXJpb3IsIGluY2x1ZGVTZWxmKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lZGlhLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5oCmluZGV4
IDU2OTdiZGEuLjJjZTgwYzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaApAQCAtNDEsMTAgKzQx
LDEyIEBAIGNsYXNzIE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFD
b250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFJldHVyblRvUmVh
bHRpbWVCdXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50Owor
Y2xhc3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sVGltZURpc3BsYXlF
bGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ7CiBjbGFzcyBN
ZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ7CitjbGFzcyBNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sRWxlbWVudDsK
IGNsYXNzIE1lZGlhUGxheWVyOwogCkBAIC05OSw2ICsxMDEsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgY3JlYXRlU3RhdHVzRGlzcGxheSgpOwogICAgIHZvaWQgY3JlYXRlVGltZWxpbmVDb250YWlu
ZXIoKTsKICAgICB2b2lkIGNyZWF0ZVRpbWVsaW5lKCk7CisgICAgdm9pZCBjcmVhdGVWb2x1bWVT
bGlkZXJDb250YWluZXIoKTsKKyAgICB2b2lkIGNyZWF0ZVZvbHVtZVNsaWRlcigpOwogICAgIHZv
aWQgY3JlYXRlQ3VycmVudFRpbWVEaXNwbGF5KCk7CiAgICAgdm9pZCBjcmVhdGVUaW1lUmVtYWlu
aW5nRGlzcGxheSgpOwogICAgIHZvaWQgY3JlYXRlRnVsbHNjcmVlbkJ1dHRvbigpOwpAQCAtMTA5
LDYgKzExMyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGFuZ2VPcGFjaXR5KEhUTUxFbGVtZW50
KiwgZmxvYXQgb3BhY2l0eSk7CiAgICAgdm9pZCBvcGFjaXR5QW5pbWF0aW9uVGltZXJGaXJlZChU
aW1lcjxSZW5kZXJNZWRpYT4qKTsKIAorICAgIHZvaWQgdXBkYXRlVm9sdW1lU2xpZGVyQ29udGFp
bmVyKGJvb2wgdmlzaWJsZSk7CisKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogCiAgICAgUmVmUHRy
PEhUTUxFbGVtZW50PiBtX2NvbnRyb2xzU2hhZG93Um9vdDsKQEAgLTEyMCw4ICsxMjYsMTAgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gbV9y
ZXdpbmRCdXR0b247CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0
b25FbGVtZW50PiBtX3JldHVyblRvUmVhbHRpbWVCdXR0b247CiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFRpbWVsaW5lRWxlbWVudD4gbV90aW1lbGluZTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyRWxlbWVudD4gbV92b2x1bWVTbGlkZXI7CiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBtX2Z1bGxzY3JlZW5CdXR0b247CiAgICAgUmVm
UHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gbV90aW1lbGluZUNvbnRh
aW5lcjsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVu
dD4gbV92b2x1bWVTbGlkZXJDb250YWluZXI7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVE
aXNwbGF5RWxlbWVudD4gbV9jdXJyZW50VGltZURpc3BsYXk7CiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFRpbWVEaXNwbGF5RWxlbWVudD4gbV90aW1lUmVtYWluaW5nRGlzcGxheTsKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ+IG1fc3RhdHVzRGlzcGxheTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3BwIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAKaW5kZXggMDZkOTAxYS4uZDlk
ZThhYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5j
cHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAKQEAgLTEy
OCw2ICsxMjgsMTggQEAgYm9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzOjpwYWludE1lZGlhQ29udHJv
bHNQYXJ0KE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIHBhcnQsIFIKICAgICAgICAgY2FzZSBNZWRp
YVNsaWRlclRodW1iOgogICAgICAgICAgICAgcGFpbnRUaGVtZVBhcnQoU2FmYXJpVGhlbWU6Ok1l
ZGlhU2xpZGVyVGh1bWJQYXJ0LCBwYWludEluZm8uY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCks
IHIsIE5TUmVndWxhckNvbnRyb2xTaXplLCBkZXRlcm1pbmVTdGF0ZShvKSk7CiAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcjoKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBJbXBsZW1udCB2b2x1bWUgc2xpZGVyLgorICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRp
YVZvbHVtZVNsaWRlcjoKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1udCB2b2x1bWUgc2xp
ZGVyLgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iOgorICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbW50IHZvbHVtZSBzbGlkZXIuCisgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1lZGlhVGltZWxpbmVD
b250YWluZXI6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAg
IGJyZWFrOwpAQCAtMTQ3LDQgKzE1OSwzIEBAIGJvb2wgUmVuZGVyTWVkaWFDb250cm9sczo6cGFp
bnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBwYXJ0LCBSCiAjZW5k
aWYgIC8vICNpZiBFTkFCTEUoVklERU8pCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBiL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKaW5kZXggNGQxNDFiNy4uMjQ3YWNkYSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC0yODEsNiArMjgxLDggQEAgUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4gUmVuZGVyU2xpZGVyOjpjcmVhdGVUaHVtYlN0eWxlKGNvbnN0IFJlbmRlclN0eWxl
KiBwYXJlbnQKICAgICAgICAgc3R5bGUtPnNldEFwcGVhcmFuY2UoU2xpZGVyVGh1bWJIb3Jpem9u
dGFsUGFydCk7CiAgICAgZWxzZSBpZiAocGFyZW50U3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRp
YVNsaWRlclBhcnQpCiAgICAgICAgIHN0eWxlLT5zZXRBcHBlYXJhbmNlKE1lZGlhU2xpZGVyVGh1
bWJQYXJ0KTsKKyAgICBlbHNlIGlmIChwYXJlbnRTdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlh
Vm9sdW1lU2xpZGVyUGFydCkKKyAgICAgICAgc3R5bGUtPnNldEFwcGVhcmFuY2UoTWVkaWFWb2x1
bWVTbGlkZXJUaHVtYlBhcnQpOwogCiAgICAgcmV0dXJuIHN0eWxlLnJlbGVhc2UoKTsKIH0KQEAg
LTI5OCw3ICszMDAsNyBAQCBJbnRSZWN0IFJlbmRlclNsaWRlcjo6dGh1bWJSZWN0KCkKIAogICAg
IGRvdWJsZSBmcmFjdGlvbiA9IHNsaWRlclBvc2l0aW9uKHN0YXRpY19jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQqPihub2RlKCkpKTsKICAgICBJbnRSZWN0IGNvbnRlbnRSZWN0ID0gY29udGVudEJveFJl
Y3QoKTsKLSAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFy
dCkgeworICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0
IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQpIHsKICAg
ICAgICAgdGh1bWJSZWN0LnNldFgoY29udGVudFJlY3QueCgpICsgKGNvbnRlbnRSZWN0LndpZHRo
KCkgLSB0aHVtYlJlY3Qud2lkdGgoKSkgLyAyKTsKICAgICAgICAgdGh1bWJSZWN0LnNldFkoY29u
dGVudFJlY3QueSgpICsgc3RhdGljX2Nhc3Q8aW50PihuZXh0YWZ0ZXIoKGNvbnRlbnRSZWN0Lmhl
aWdodCgpIC0gdGh1bWJSZWN0LmhlaWdodCgpKSArIDEsIDApICogKDEgLSBmcmFjdGlvbikpKTsK
ICAgICB9IGVsc2UgewpAQCAtMzkxLDcgKzM5Myw3IEBAIGJvb2wgUmVuZGVyU2xpZGVyOjptb3Vz
ZUV2ZW50SXNJblRodW1iKE1vdXNlRXZlbnQqIGV2dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAjaWYgRU5BQkxFKFZJREVPKQotICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVk
aWFTbGlkZXJQYXJ0KSB7CisgICAgaWYgKHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVNs
aWRlclBhcnQgfHwgc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFy
dCkgewogICAgICAgICBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgKnNsaWRlclRodW1iID0gc3Rh
dGljX2Nhc3Q8TWVkaWFDb250cm9sSW5wdXRFbGVtZW50Kj4obV90aHVtYi0+cmVuZGVyZXIoKS0+
bm9kZSgpKTsKICAgICAgICAgcmV0dXJuIHNsaWRlclRodW1iLT5oaXRUZXN0KGV2dC0+YWJzb2x1
dGVMb2NhdGlvbigpKTsKICAgICB9CkBAIC00MjMsNyArNDI1LDcgQEAgdm9pZCBSZW5kZXJTbGlk
ZXI6OnNldFZhbHVlRm9yUG9zaXRpb24oaW50IHBvc2l0aW9uKQogICAgIC8vIENhbGN1bGF0ZSB0
aGUgbmV3IHZhbHVlIGJhc2VkIG9uIHRoZSBwb3NpdGlvbiwgYW5kIHNlbmQgaXQgdG8gdGhlIGVs
ZW1lbnQuCiAgICAgU2xpZGVyUmFuZ2UgcmFuZ2UoZWxlbWVudCk7CiAgICAgZG91YmxlIGZyYWN0
aW9uID0gc3RhdGljX2Nhc3Q8ZG91YmxlPihwb3NpdGlvbikgLyB0cmFja1NpemUoKTsKLSAgICBp
ZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCkKKyAgICBpZiAo
c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5h
cHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KQogICAgICAgICBmcmFjdGlvbiA9
IDEgLSBmcmFjdGlvbjsKICAgICBkb3VibGUgdmFsdWUgPSByYW5nZS5jbGFtcFZhbHVlKHJhbmdl
LnZhbHVlRnJvbVByb3BvcnRpb24oZnJhY3Rpb24pKTsKICAgICBlbGVtZW50LT5zZXRWYWx1ZUZy
b21SZW5kZXJlcihTdHJpbmc6Om51bWJlcih2YWx1ZSkpOwpAQCAtNDQ0LDcgKzQ0Niw3IEBAIGlu
dCBSZW5kZXJTbGlkZXI6OnBvc2l0aW9uRm9yT2Zmc2V0KGNvbnN0IEludFBvaW50JiBwKQogICAg
ICAgICByZXR1cm4gMDsKIAogICAgIGludCBwb3NpdGlvbjsKLSAgICBpZiAoc3R5bGUoKS0+YXBw
ZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCkKKyAgICBpZiAoc3R5bGUoKS0+YXBwZWFy
YW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0g
TWVkaWFWb2x1bWVTbGlkZXJQYXJ0KQogICAgICAgICBwb3NpdGlvbiA9IHAueSgpIC0gbV90aHVt
Yi0+cmVuZGVyQm94KCktPmhlaWdodCgpIC8gMjsKICAgICBlbHNlCiAgICAgICAgIHBvc2l0aW9u
ID0gcC54KCkgLSBtX3RodW1iLT5yZW5kZXJCb3goKS0+d2lkdGgoKSAvIDI7CkBAIC00NTcsNyAr
NDU5LDcgQEAgaW50IFJlbmRlclNsaWRlcjo6Y3VycmVudFBvc2l0aW9uKCkKICAgICBBU1NFUlQo
bV90aHVtYik7CiAgICAgQVNTRVJUKG1fdGh1bWItPnJlbmRlcmVyKCkpOwogCi0gICAgaWYgKHN0
eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQpCisgICAgaWYgKHN0eWxl
KCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQgfHwgc3R5bGUoKS0+YXBwZWFy
YW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCkKICAgICAgICAgcmV0dXJuIHRvUmVuZGVy
Qm94KG1fdGh1bWItPnJlbmRlcmVyKCkpLT55KCkgLSBjb250ZW50Qm94UmVjdCgpLnkoKTsKICAg
ICByZXR1cm4gdG9SZW5kZXJCb3gobV90aHVtYi0+cmVuZGVyZXIoKSktPngoKSAtIGNvbnRlbnRC
b3hSZWN0KCkueCgpOwogfQpAQCAtNDY3LDcgKzQ2OSw3IEBAIGludCBSZW5kZXJTbGlkZXI6OnRy
YWNrU2l6ZSgpCiAgICAgQVNTRVJUKG1fdGh1bWIpOwogICAgIEFTU0VSVChtX3RodW1iLT5yZW5k
ZXJlcigpKTsKIAotICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGlj
YWxQYXJ0KQorICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQ
YXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQpCiAg
ICAgICAgIHJldHVybiBjb250ZW50SGVpZ2h0KCkgLSBtX3RodW1iLT5yZW5kZXJCb3goKS0+aGVp
Z2h0KCk7CiAgICAgcmV0dXJuIGNvbnRlbnRXaWR0aCgpIC0gbV90aHVtYi0+cmVuZGVyQm94KCkt
PndpZHRoKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5j
cHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggZDQ4NjUyZi4uN2I0
ZGZlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMTgzLDYgKzE4Myw3IEBAIHZv
aWQgUmVuZGVyVGhlbWU6OmFkanVzdFN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBS
ZW5kZXJTdHlsZSogc3R5bGUsIEVsCiAgICAgICAgIGNhc2UgTWVudWxpc3RCdXR0b25QYXJ0Ogog
ICAgICAgICAgICAgcmV0dXJuIGFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoc2VsZWN0b3IsIHN0
eWxlLCBlKTsKICAgICAgICAgY2FzZSBNZWRpYVNsaWRlclBhcnQ6CisgICAgICAgIGNhc2UgTWVk
aWFWb2x1bWVTbGlkZXJQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlckhvcml6b250YWxQYXJ0Ogog
ICAgICAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFydDoKICAgICAgICAgICAgIHJldHVybiBhZGp1
c3RTbGlkZXJUcmFja1N0eWxlKHNlbGVjdG9yLCBzdHlsZSwgZSk7CkBAIC0yNzgsNiArMjc5LDE0
IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVy
T2JqZWN0OjpQYWludEluZm8mIHBhaW50SW5mCiAgICAgICAgICAgICBpZiAoby0+cGFyZW50KCkt
PmlzU2xpZGVyKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFTbGlkZXJUaHVt
YihvLCBwYWludEluZm8sIHIpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVk
aWFWb2x1bWVTbGlkZXJDb250YWluZXJQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVk
aWFWb2x1bWVTbGlkZXJDb250YWluZXIobywgcGFpbnRJbmZvLCByKTsKKyAgICAgICAgY2FzZSBN
ZWRpYVZvbHVtZVNsaWRlclBhcnQ6CisgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVZvbHVt
ZVNsaWRlclRyYWNrKG8sIHBhaW50SW5mbywgcik7CisgICAgICAgIGNhc2UgTWVkaWFWb2x1bWVT
bGlkZXJUaHVtYlBhcnQ6CisgICAgICAgICAgICBpZiAoby0+cGFyZW50KCktPmlzU2xpZGVyKCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihvLCBw
YWludEluZm8sIHIpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWVkaWFUaW1l
UmVtYWluaW5nUGFydDoKICAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlhVGltZVJlbWFpbmlu
ZyhvLCBwYWludEluZm8sIHIpOwogICAgICAgICBjYXNlIE1lZGlhQ3VycmVudFRpbWVQYXJ0Ogpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggNzk1ZGFhMi4uYzAwYzJlYiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5oCkBAIC0yNDQsNiArMjQ0LDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
Ym9vbCBwYWludE1lZGlhU2Vla0ZvcndhcmRCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVu
ZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29u
c3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0
KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyQ29udGFp
bmVyKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3Qg
SW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVZv
bHVtZVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9i
amVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVJld2luZEJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBS
ZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9
CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uKFJlbmRl
ck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYp
IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzQmFj
a2dyb3VuZChSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCAwMTNkMzM1Li5mNTdhMmNjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBi
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTY5LDEw
ICs2OSw5IEBAIGVudW0gUHNldWRvSWQgewogICAgIE5PUFNFVURPLCBGSVJTVF9MSU5FLCBGSVJT
VF9MRVRURVIsIEJFRk9SRSwgQUZURVIsIFNFTEVDVElPTiwgRklSU1RfTElORV9JTkhFUklURUQs
IFNDUk9MTEJBUiwgRklMRV9VUExPQURfQlVUVE9OLCBJTlBVVF9QTEFDRUhPTERFUiwKICAgICBT
TElERVJfVEhVTUIsIFNFQVJDSF9DQU5DRUxfQlVUVE9OLCBTRUFSQ0hfREVDT1JBVElPTiwgU0VB
UkNIX1JFU1VMVFNfREVDT1JBVElPTiwgU0VBUkNIX1JFU1VMVFNfQlVUVE9OLCBNRURJQV9DT05U
Uk9MU19QQU5FTCwKICAgICBNRURJQV9DT05UUk9MU19QTEFZX0JVVFRPTiwgTUVESUFfQ09OVFJP
TFNfTVVURV9CVVRUT04sIE1FRElBX0NPTlRST0xTX1RJTUVMSU5FLCBNRURJQV9DT05UUk9MU19U
SU1FTElORV9DT05UQUlORVIsCi0gICAgTUVESUFfQ09OVFJPTFNfQ1VSUkVOVF9USU1FX0RJU1BM
QVksIE1FRElBX0NPTlRST0xTX1RJTUVfUkVNQUlOSU5HX0RJU1BMQVksIE1FRElBX0NPTlRST0xT
X1NFRUtfQkFDS19CVVRUT04sIAotICAgIE1FRElBX0NPTlRST0xTX1NFRUtfRk9SV0FSRF9CVVRU
T04sIE1FRElBX0NPTlRST0xTX0ZVTExTQ1JFRU5fQlVUVE9OLCBNRURJQV9DT05UUk9MU19SRVdJ
TkRfQlVUVE9OLAotICAgIE1FRElBX0NPTlRST0xTX1JFVFVSTl9UT19SRUFMVElNRV9CVVRUT04s
IE1FRElBX0NPTlRST0xTX1NUQVRVU19ESVNQTEFZLAotICAgIFNDUk9MTEJBUl9USFVNQiwgU0NS
T0xMQkFSX0JVVFRPTiwgU0NST0xMQkFSX1RSQUNLLCBTQ1JPTExCQVJfVFJBQ0tfUElFQ0UsIFND
Uk9MTEJBUl9DT1JORVIsIFJFU0laRVIsCisgICAgTUVESUFfQ09OVFJPTFNfVk9MVU1FX1NMSURF
UiwgTUVESUFfQ09OVFJPTFNfVk9MVU1FX1NMSURFUl9DT05UQUlORVIsIE1FRElBX0NPTlRST0xT
X0NVUlJFTlRfVElNRV9ESVNQTEFZLCBNRURJQV9DT05UUk9MU19USU1FX1JFTUFJTklOR19ESVNQ
TEFZLCBNRURJQV9DT05UUk9MU19TRUVLX0JBQ0tfQlVUVE9OLAorICAgIE1FRElBX0NPTlRST0xT
X1NFRUtfRk9SV0FSRF9CVVRUT04sIE1FRElBX0NPTlRST0xTX0ZVTExTQ1JFRU5fQlVUVE9OLCBN
RURJQV9DT05UUk9MU19SRVdJTkRfQlVUVE9OLCBNRURJQV9DT05UUk9MU19SRVRVUk5fVE9fUkVB
TFRJTUVfQlVUVE9OLAorICAgIE1FRElBX0NPTlRST0xTX1NUQVRVU19ESVNQTEFZLCBTQ1JPTExC
QVJfVEhVTUIsIFNDUk9MTEJBUl9CVVRUT04sIFNDUk9MTEJBUl9UUkFDSywgU0NST0xMQkFSX1RS
QUNLX1BJRUNFLCBTQ1JPTExCQVJfQ09STkVSLCBSRVNJWkVSLAogCiAgICAgRklSU1RfSU5URVJO
QUxfUFNFVURPSUQgPSBGSUxFX1VQTE9BRF9CVVRUT04KIH07Cg==
</data>
<flag name="review"
          id="19526"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38513</attachid>
            <date>2009-08-24 17:02:57 -0700</date>
            <delta_ts>2009-08-24 23:35:23 -0700</delta_ts>
            <desc>volume slider theme implementation for chromium port</desc>
            <filename>webkit-chromium-volume-slider.patch</filename>
            <type>text/plain</type>
            <size>6221</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjQwOGYxNi4uMjk3ZmQ2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0wOC0yNCAgQWxwaGEgTGFtICA8
aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIHBhbmVsIGRvZXMgbm90IGhhdmUgYSB2b2x1bWUg
Y29udHJvbCBzbGlkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MjQxCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgdGhlIHRoZW1lIGZvciB2
b2x1bWUgc2xpZGVyIGFuZCBpdHMgY29udGFpbmVyIGZvcgorICAgICAgICBjaHJvbWl1bSBwb3J0
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0IGJlY2F1c2UgdGhpcyBpcyBjb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3M6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludE1lZGlhVm9sdW1lU2xpZGVy
VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmFkanVz
dFNsaWRlclRodW1iU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVt
U2tpYTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaDoKKwogMjAwOS0wOC0yMCAgQWxwaGEgTGFtICA8aGNs
YW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcyBiL1dlYkNv
cmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MKaW5kZXggNmZkYTYxYy4uMGMwMWRhMiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcworKysgYi9X
ZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzCkBAIC0zMyw2ICszMyw3IEBAIGF1
ZGlvIHsKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLCB2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy1wYW5lbCB7CiAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsK
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgYm90
dG9tOiAwOwogICAgIHdpZHRoOiAxMDAlOwogICAgIGhlaWdodDogMzJweDsKQEAgLTQ2LDcgKzQ3
LDYgQEAgdmlkZW86LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtcGFuZWwgewogCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwg
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24gewogICAgIC13ZWJraXQt
YXBwZWFyYW5jZTogbWVkaWEtbXV0ZS1idXR0b247Ci0KICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CiAgICAgdG9wOiBhdXRvOwogICAgIGJvdHRvbTogMDsKQEAgLTE2NywzICsxNjcsMjUgQEAgYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24sIHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWYKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWZ1bGxz
Y3JlZW4tYnV0dG9uOwogICAgIGRpc3BsYXk6IG5vbmU7CiB9CisKK2F1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciB7CisgICAgLXdlYmtpdC1hcHBlYXJh
bmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lcjsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisKKyAgICB3aWR0aDogMzRweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworCisgICAgYmFja2dy
b3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12
b2x1bWUtc2xpZGVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlk
ZXI7CisgICAgZGlzcGxheTogaW5saW5lOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKworICAg
IHRvcDogMTBweDsKKyAgICBsZWZ0OiAxMnB4OworCisgICAgd2lkdGg6IDEwcHg7CisgICAgaGVp
Z2h0OiA4MHB4OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNr
aWEuY3BwCmluZGV4IGM4ODc1ZGMuLmQ2NmE0YWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKQEAgLTU3MSw2ICs1NzEsMjggQEAgYm9vbCBSZW5k
ZXJUaGVtZUNocm9taXVtU2tpYTo6cGFpbnRNZWRpYVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCog
b2JqZWN0LCBjb25zdAogI2VuZGlmCiB9CiAKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6
OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3Qg
UmVuZGVyT2JqZWN0OjpQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkK
K3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50
ID0gbWVkaWFFbGVtZW50UGFyZW50KG9iamVjdC0+bm9kZSgpKTsKKyAgICBpZiAoIW1lZGlhRWxl
bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU2tDYW52YXMqIGNhbnZhcyA9IHBh
aW50SW5mby5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCk7CisgICAgU2tQYWlu
dCBwYWludDsKKyAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYpOworCisg
ICAgaW50IHggPSByZWN0LngoKSArIHJlY3Qud2lkdGgoKSAvIDI7CisgICAgY2FudmFzLT5kcmF3
TGluZSh4LCByZWN0LnkoKSwgeCwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpLCBwYWludCk7Cisg
ICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOworICAgIFVO
VVNFRF9QQVJBTShwYWludEluZm8pOworICAgIFVOVVNFRF9QQVJBTShyZWN0KTsKKyAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKK30KKwogdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6YWRq
dXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogb2JqZWN0KSBjb25zdCB7CiAjaWYgRU5B
QkxFKFZJREVPKQogICAgIGlmIChvYmplY3QtPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRp
YVNsaWRlclRodW1iUGFydCkgewpAQCAtNTc4LDYgKzYwMCwxMSBAQCB2b2lkIFJlbmRlclRoZW1l
Q2hyb21pdW1Ta2lhOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvYmplY3Qp
IGNvbnN0CiAKICAgICAgICAgb2JqZWN0LT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgobWVkaWFT
bGlkZXJUaHVtYi0+d2lkdGgoKSwgRml4ZWQpKTsKICAgICAgICAgb2JqZWN0LT5zdHlsZSgpLT5z
ZXRIZWlnaHQoTGVuZ3RoKG1lZGlhU2xpZGVyVGh1bWItPmhlaWdodCgpLCBGaXhlZCkpOworICAg
IH0gZWxzZSBpZiAob2JqZWN0LT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVT
bGlkZXJUaHVtYlBhcnQpIHsKKyAgICAgICAgc3RhdGljIEltYWdlKiBtZWRpYVZvbHVtZVNsaWRl
clRodW1iID0gSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJtZWRpYVZvbHVtZVNsaWRlclRo
dW1iIikucmVsZWFzZVJlZigpOworCisgICAgICAgIG9iamVjdC0+c3R5bGUoKS0+c2V0V2lkdGgo
TGVuZ3RoKG1lZGlhVm9sdW1lU2xpZGVyVGh1bWItPndpZHRoKCksIEZpeGVkKSk7CisgICAgICAg
IG9iamVjdC0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChtZWRpYVZvbHVtZVNsaWRlclRodW1i
LT5oZWlnaHQoKSwgRml4ZWQpKTsKICAgICB9CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvYmpl
Y3QpOwpAQCAtNjAxLDYgKzYyOCwyMyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpw
YWludE1lZGlhU2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0CiAjZW5kaWYK
IH0KIAorYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRl
clRodW1iKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworI2lmIEVOQUJMRShWSURFTykK
KyAgICBpZiAoIW9iamVjdC0+cGFyZW50KCktPmlzU2xpZGVyKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHN0YXRpYyBJbWFnZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IEltYWdl
Ojpsb2FkUGxhdGZvcm1SZXNvdXJjZSgibWVkaWFWb2x1bWVTbGlkZXJUaHVtYiIpLnJlbGVhc2VS
ZWYoKTsKKworICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uSW50ZXJuYWwocGFpbnRJbmZvLmNv
bnRleHQsIHJlY3QsIG1lZGlhVm9sdW1lU2xpZGVyVGh1bWIpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0ob2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0ocGFpbnRJbmZvKTsKKyAgICBVTlVTRURf
UEFSQU0ocmVjdCk7CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIGJvb2wgUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWE6OnBhaW50TWVkaWFQbGF5QnV0dG9uKFJlbmRlck9iamVjdCogb2Jq
ZWN0LCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRS
ZWN0JiByZWN0KQogewogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtU2tpYS5oCmluZGV4IDc1NDRjMjIuLjUzNGE5ZDYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaApAQCAtOTEsOCArOTEsMTAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhQ29u
dHJvbHNCYWNrZ3JvdW5kKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNs
aWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNs
aWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJT
aXplKFJlbmRlck9iamVjdCopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRp
YVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVZvbHVt
ZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVBsYXlC
dXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhTXV0ZUJ1dHRvbihS
ZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJl
Y3QmKTsKIAo=
</data>
<flag name="review"
          id="19528"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38529</attachid>
            <date>2009-08-24 23:13:07 -0700</date>
            <delta_ts>2009-08-24 23:14:18 -0700</delta_ts>
            <desc>volume controls implementation without theme</desc>
            <filename>webkit-chromium-volume-slider.patch</filename>
            <type>text/plain</type>
            <size>6221</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjQwOGYxNi4uMjk3ZmQ2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0wOC0yNCAgQWxwaGEgTGFtICA8
aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIHBhbmVsIGRvZXMgbm90IGhhdmUgYSB2b2x1bWUg
Y29udHJvbCBzbGlkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MjQxCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgdGhlIHRoZW1lIGZvciB2
b2x1bWUgc2xpZGVyIGFuZCBpdHMgY29udGFpbmVyIGZvcgorICAgICAgICBjaHJvbWl1bSBwb3J0
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0IGJlY2F1c2UgdGhpcyBpcyBjb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3M6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludE1lZGlhVm9sdW1lU2xpZGVy
VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmFkanVz
dFNsaWRlclRodW1iU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVt
U2tpYTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaDoKKwogMjAwOS0wOC0yMCAgQWxwaGEgTGFtICA8aGNs
YW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcyBiL1dlYkNv
cmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MKaW5kZXggNmZkYTYxYy4uMGMwMWRhMiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcworKysgYi9X
ZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzCkBAIC0zMyw2ICszMyw3IEBAIGF1
ZGlvIHsKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLCB2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy1wYW5lbCB7CiAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsK
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgYm90
dG9tOiAwOwogICAgIHdpZHRoOiAxMDAlOwogICAgIGhlaWdodDogMzJweDsKQEAgLTQ2LDcgKzQ3
LDYgQEAgdmlkZW86LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtcGFuZWwgewogCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwg
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24gewogICAgIC13ZWJraXQt
YXBwZWFyYW5jZTogbWVkaWEtbXV0ZS1idXR0b247Ci0KICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CiAgICAgdG9wOiBhdXRvOwogICAgIGJvdHRvbTogMDsKQEAgLTE2NywzICsxNjcsMjUgQEAgYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24sIHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWYKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWZ1bGxz
Y3JlZW4tYnV0dG9uOwogICAgIGRpc3BsYXk6IG5vbmU7CiB9CisKK2F1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciB7CisgICAgLXdlYmtpdC1hcHBlYXJh
bmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lcjsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisKKyAgICB3aWR0aDogMzRweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworCisgICAgYmFja2dy
b3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12
b2x1bWUtc2xpZGVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlk
ZXI7CisgICAgZGlzcGxheTogaW5saW5lOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKworICAg
IHRvcDogMTBweDsKKyAgICBsZWZ0OiAxMnB4OworCisgICAgd2lkdGg6IDEwcHg7CisgICAgaGVp
Z2h0OiA4MHB4OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNr
aWEuY3BwCmluZGV4IGM4ODc1ZGMuLmQ2NmE0YWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKQEAgLTU3MSw2ICs1NzEsMjggQEAgYm9vbCBSZW5k
ZXJUaGVtZUNocm9taXVtU2tpYTo6cGFpbnRNZWRpYVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCog
b2JqZWN0LCBjb25zdAogI2VuZGlmCiB9CiAKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6
OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3Qg
UmVuZGVyT2JqZWN0OjpQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkK
K3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50
ID0gbWVkaWFFbGVtZW50UGFyZW50KG9iamVjdC0+bm9kZSgpKTsKKyAgICBpZiAoIW1lZGlhRWxl
bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU2tDYW52YXMqIGNhbnZhcyA9IHBh
aW50SW5mby5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCk7CisgICAgU2tQYWlu
dCBwYWludDsKKyAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYpOworCisg
ICAgaW50IHggPSByZWN0LngoKSArIHJlY3Qud2lkdGgoKSAvIDI7CisgICAgY2FudmFzLT5kcmF3
TGluZSh4LCByZWN0LnkoKSwgeCwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpLCBwYWludCk7Cisg
ICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOworICAgIFVO
VVNFRF9QQVJBTShwYWludEluZm8pOworICAgIFVOVVNFRF9QQVJBTShyZWN0KTsKKyAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKK30KKwogdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6YWRq
dXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogb2JqZWN0KSBjb25zdCB7CiAjaWYgRU5B
QkxFKFZJREVPKQogICAgIGlmIChvYmplY3QtPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRp
YVNsaWRlclRodW1iUGFydCkgewpAQCAtNTc4LDYgKzYwMCwxMSBAQCB2b2lkIFJlbmRlclRoZW1l
Q2hyb21pdW1Ta2lhOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvYmplY3Qp
IGNvbnN0CiAKICAgICAgICAgb2JqZWN0LT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgobWVkaWFT
bGlkZXJUaHVtYi0+d2lkdGgoKSwgRml4ZWQpKTsKICAgICAgICAgb2JqZWN0LT5zdHlsZSgpLT5z
ZXRIZWlnaHQoTGVuZ3RoKG1lZGlhU2xpZGVyVGh1bWItPmhlaWdodCgpLCBGaXhlZCkpOworICAg
IH0gZWxzZSBpZiAob2JqZWN0LT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVT
bGlkZXJUaHVtYlBhcnQpIHsKKyAgICAgICAgc3RhdGljIEltYWdlKiBtZWRpYVZvbHVtZVNsaWRl
clRodW1iID0gSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJtZWRpYVZvbHVtZVNsaWRlclRo
dW1iIikucmVsZWFzZVJlZigpOworCisgICAgICAgIG9iamVjdC0+c3R5bGUoKS0+c2V0V2lkdGgo
TGVuZ3RoKG1lZGlhVm9sdW1lU2xpZGVyVGh1bWItPndpZHRoKCksIEZpeGVkKSk7CisgICAgICAg
IG9iamVjdC0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChtZWRpYVZvbHVtZVNsaWRlclRodW1i
LT5oZWlnaHQoKSwgRml4ZWQpKTsKICAgICB9CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvYmpl
Y3QpOwpAQCAtNjAxLDYgKzYyOCwyMyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpw
YWludE1lZGlhU2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0CiAjZW5kaWYK
IH0KIAorYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRl
clRodW1iKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworI2lmIEVOQUJMRShWSURFTykK
KyAgICBpZiAoIW9iamVjdC0+cGFyZW50KCktPmlzU2xpZGVyKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHN0YXRpYyBJbWFnZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IEltYWdl
Ojpsb2FkUGxhdGZvcm1SZXNvdXJjZSgibWVkaWFWb2x1bWVTbGlkZXJUaHVtYiIpLnJlbGVhc2VS
ZWYoKTsKKworICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uSW50ZXJuYWwocGFpbnRJbmZvLmNv
bnRleHQsIHJlY3QsIG1lZGlhVm9sdW1lU2xpZGVyVGh1bWIpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0ob2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0ocGFpbnRJbmZvKTsKKyAgICBVTlVTRURf
UEFSQU0ocmVjdCk7CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIGJvb2wgUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWE6OnBhaW50TWVkaWFQbGF5QnV0dG9uKFJlbmRlck9iamVjdCogb2Jq
ZWN0LCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRS
ZWN0JiByZWN0KQogewogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtU2tpYS5oCmluZGV4IDc1NDRjMjIuLjUzNGE5ZDYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaApAQCAtOTEsOCArOTEsMTAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhQ29u
dHJvbHNCYWNrZ3JvdW5kKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNs
aWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNs
aWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJT
aXplKFJlbmRlck9iamVjdCopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRp
YVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVZvbHVt
ZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVBsYXlC
dXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhTXV0ZUJ1dHRvbihS
ZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJl
Y3QmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38530</attachid>
            <date>2009-08-24 23:14:18 -0700</date>
            <delta_ts>2009-08-24 23:24:09 -0700</delta_ts>
            <desc>volume controls implementation without theme</desc>
            <filename>webkit-add-volume-slider.patch</filename>
            <type>text/plain</type>
            <size>34842</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWJiMTU2MS4uOWQyYWFlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAwOS0wOC0yNCAgQWxwaGEgTGFtICA8
aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIHBhbmVsIGRvZXMgbm90IGhhdmUgYSB2b2x1bWUg
Y29udHJvbCBzbGlkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MjQxCisKKyAgICAgICAgSW50cm9kdWNlZCAiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyIiwKKyAgICAgICAgIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1l
LXNsaWRlci1jb250YWluZXIiIGFuZCB0aGUgc3VwcG9ydGluZworICAgICAgICBpbXBsZW1lbnRh
dGlvbi4gQWxzbyBhZGRlZCBhcHBlYXJhbmNlcyBvZiAibWVkaWEtdm9sdW1lLXNsaWRlciIgYW5k
CisgICAgICAgICJtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciIuCisKKyAgICAgICAgVGhl
IGltcGxlbWVudGF0aW9uIG9mIHRoZSBjb250cm9scyBhcmUgaW4gV2ViQ29yZTo6TWVkaWFDb250
cm9sRWxlbWVudHMuCisgICAgICAgIExvZ2ljIHRvIHRyaWdnZXIgdGhlIGRpc3BsYXkgb2YgdGhl
IHZvbHVtZSBjb250cm9scyBhcmUgaW4gV2ViQ29yZTo6UmVuZGVyTWVkaWEuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIHNpbmNlIHRoaXMgY2hhbmdlIGRvZXNuJ3QgaGF2ZSB0aGVtZSBpbXBsZW1l
bnRhdGlvbiBhbmQgdGhlCisgICAgICAgIHZvbHVtZSBzbGlkZXIgaXMgZGlzYWJsZWQgYnkgZGVm
YXVsdC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2xpZGVyOjpvcmllbnRhdGlvbik6IE1h
cmtzIHRoYXQgdm9sdW1lIHNsaWRlciBpcyB2ZXJ0aWNhbC4KKyAgICAgICAgKiBjc3MvQ1NTUHJp
bWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKTogQWRkZWQgY29ycmVzcG9uZGluZyBDU1MgdmFsdWVzLgor
ICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxl
Y3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOiBkaXR0by4KKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjopOiBkaXR0by4KKyAgICAgICAg
KiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNl
bGVjdG9yOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IpOiBkaXR0by4KKyAgICAg
ICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjogZGl0dG8uCisgICAgICAgICogY3NzL21lZGlh
Q29udHJvbHMuY3NzOiBNYWtlcyB0aGUgdm9sdW1lIHNsaWRlciBkaXNhYmxlZCBieSBkZWZhdWx0
LgorICAgICAgICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMuaDogRGVmaW5lcyB0aGVtZSBwYXJ0cyBm
b3Igdm9sdW1lIHNsaWRlciBhbmQgaXRzIGNvbnRhaW5lci4KKyAgICAgICAgKFdlYkNvcmU6Oik6
CisgICAgICAgICogcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c3R5bGVGb3JFbGVtZW50
KToKKyAgICAgICAgQWRqdXN0IHRoZSBDU1MgdmFsdWVzIGZvciAiZGlzcGFseSIsICJwb3N0aW9u
IiwgImxlZnQiIGFuZCAidG9wIiBhY2NvcmRpbmcgdG8gbWVtYmVyIHZhcmlhYmxlcy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNl
dFZpc2libGUpOiBBZmZlY3RzIHRoZSAiZGlzcGxheSIgQ1NTIHZhbHVlLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2V0UG9zaXRp
b24pOiBBZmZlY3RzIHRoZSAibGVmdCIgYW5kICJ0b3AiIENTUyB2YWx1ZXMuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpoaXRUZXN0
KTogSGl0IHRlc3RpbmcgdGhpcyBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpkZWZh
dWx0RXZlbnRIYW5kbGVyKTogTW9kaWZpZXMgdGhlIHZvbHVtZSB1c2luZyB0aGUgc2xpZGVyIHZh
bHVlLCBhbGxvd3MgZHJhZ2dpbmcuCisgICAgICAgICogcmVuZGVyaW5nL01lZGlhQ29udHJvbEVs
ZW1lbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjopOiBBZGRlZCBkZWZpbml0aW9uIGZvciBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50IGFuZCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJD
b250YWluZXJFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6aXNWaXNpYmxlKTogSW5saW5lIGdldHRlci4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVk
aWE6OnN0eWxlRGlkQ2hhbmdlKTogVXBkYXRlcyBzdHlsZXMgZm9yIHZvbHVtZSBjb250YWluZXIg
YW5kIHZvbHVtZSBzbGlkZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6Y3JlYXRl
Vm9sdW1lU2xpZGVyQ29udGFpbmVyKTogQ3JlYXRlcyB2b2x1bWUgc2xpZGVyIGNvbnRhaW5lciBh
bmQgYXR0YWNoIHRvIHBhbmVsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OmNyZWF0
ZVZvbHVtZVNsaWRlcik6IENyZWF0ZXMgdm9sdW1lIHNsaWRlciBhbmQgYXR0YWNoIHRvIHZvbHVt
ZSBzbGlkZXIgY29udGFpbmVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OnVwZGF0
ZUNvbnRyb2xzKTogVXBkYXRlcyB2b2x1bWUgY29udGFpbmVyIGFuZCB2b2x1bWUgc2xpZGVyLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OnVwZGF0ZVZvbHVtZVNsaWRlckNvbnRhaW5l
cik6IFNldHMgdGhlIHZpc2liaWxpdHkgYW5kIHBvc2l0aW9uIG9mIHZvbHVtZSBzbGlkZXIgY29u
dGFpbmVyIGFuZCBpdHMgY2hpbGQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6Zm9y
d2FyZEV2ZW50KToKKyAgICAgICAgSGl0IHRlc3RpbmcgdGhlIHZvbHVtZSBzbGlkZXIgY29udGFp
bmVyIGFuZCB2b2x1bWUgc2xpZGVyIHRvIHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBhbmQgZm9yd2Fy
ZCBldmVudHMgdG8gc2xpZGVyLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5oOgor
ICAgICAgICBBZGRlZCBkZWZpbml0aW9uIGZvciBSZW5kZXJNZWRpYTo6dXBkYXRlVm9sdW1lU2xp
ZGVyQ29udGFpbmVyKCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sczo6cGFpbnRNZWRpYUNv
bnRyb2xzUGFydCk6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6Y3JlYXRlVGh1bWJT
dHlsZSk6IE1ha2VzIHZvbHVtZSBzbGlkZXIgdmVydGljYWwuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTbGlkZXI6OnRodW1iUmVjdCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U2xpZGVyOjptb3VzZUV2ZW50SXNJblRodW1iKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTbGlkZXI6OnNldFZhbHVlRm9yUG9zaXRpb24pOiBkaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNsaWRlcjo6cG9zaXRpb25Gb3JPZmZzZXQpOiBkaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNsaWRlcjo6Y3VycmVudFBvc2l0aW9uKTogZGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTbGlkZXI6OnRyYWNrU2l6ZSk6IGRpdHRvLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRq
dXN0U3R5bGUpOiBBZGp1c3Qgc3R5bGUgZm9yIHZvbHVtZSBzbGlkZXIgdGh1bWIuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOiBQYWludHMgdm9sdW1lIGNvbnRyb2wgcGFy
dHMgdXNpbmcgdGhlbWUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
cik6IE5haXZlIGltcGxlbWVudGF0aW9uIHRvIGJlIG92ZXJyaWRkZW4uCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKTogZGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1i
KTogZGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
Lmg6CisgICAgICAgIChXZWJDb3JlOjopOiBDb25zdGFudHMgZm9yIHZvbHVtZSBjb250cm9sIHBh
cnRzLgorCiAyMDA5LTA4LTI0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKaW5kZXggZTNhNjU0Yi4uZWRlOWRjZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCisrKyBi
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcApAQCAtNzUsNiAr
NzUsNyBAQCBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb24gQWNjZXNzaWJpbGl0eVNsaWRlcjo6b3Jp
ZW50YXRpb24oKSBjb25zdAogICAgICAgICAKICAgICAgICAgY2FzZSBTbGlkZXJUaHVtYlZlcnRp
Y2FsUGFydDogCiAgICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQYXJ0OgorICAgICAgICBjYXNl
IE1lZGlhVm9sdW1lU2xpZGVyUGFydDoKICAgICAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
T3JpZW50YXRpb25WZXJ0aWNhbDsKICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IDNmNzAxMWEuLjBhNGE5ZTIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysg
Yi9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTIyOCw2ICsyMjgs
MTUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKENvbnRyb2xQYXJ0IGUpCiAgICAgICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6CiAg
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVNsaWRlcnRodW1iOwogICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXJQ
YXJ0OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlk
ZXJDb250YWluZXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVt
ZVNsaWRlclBhcnQ6CisgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVZv
bHVtZVNsaWRlcjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1l
U2xpZGVyVGh1bWJQYXJ0OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVk
aWFWb2x1bWVTbGlkZXJ0aHVtYjsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1l
ZGlhQ29udHJvbHNCYWNrZ3JvdW5kUGFydDoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZU1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvci5jcHAKaW5kZXggYTdmNzAzNC4uOWQ5ZGQxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtMTA4
LDYgKzEwOCw3IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QK
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc011dGVC
dXR0b24sICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiIpKTsKICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1BsYXlCdXR0b24sICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1RpbWVsaW5lLCAoIi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdGltZWxpbmUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG1lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXIsICgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBtZWRpYUNvbnRyb2xzU2Vla0JhY2tCdXR0b24sICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1z
ZWVrLWJhY2stYnV0dG9uIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBtZWRpYUNvbnRyb2xzU2Vla0ZvcndhcmRCdXR0b24sICgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy1zZWVrLWZvcndhcmQtYnV0dG9uIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBtZWRpYUNvbnRyb2xzUmV3aW5kQnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtcmV3aW5kLWJ1dHRvbiIpKTsKQEAgLTExNSw2ICsxMTYsNyBAQCB2b2lkIENTU1NlbGVjdG9y
OjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG1lZGlhQ29udHJvbHNTdGF0dXNEaXNwbGF5LCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtc3RhdHVzLWRpc3BsYXkiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG1lZGlhQ29udHJvbHNGdWxsc2NyZWVuQnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtZnVsbHNjcmVlbi1idXR0b24iKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG1lZGlhQ29udHJvbHNUaW1lbGluZUNvbnRhaW5lciwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1ZvbHVtZVNsaWRlckNvbnRhaW5lciwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIikpOwogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzQ3VycmVudFRpbWVEaXNw
bGF5LCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXkiKSk7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJvbHNUaW1lUmVt
YWluaW5nRGlzcGxheSwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRp
c3BsYXkiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5vdFN0ciwg
KCJub3QoIikpOwpAQCAtMjQ0LDYgKzI0Niw5IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQ
c2V1ZG9UeXBlKCkgY29uc3QKICAgICB9IGVsc2UgaWYgKG1fdmFsdWUgPT0gbWVkaWFDb250cm9s
c1RpbWVsaW5lKSB7CiAgICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb01lZGlhQ29udHJvbHNU
aW1lbGluZTsKICAgICAgICAgZWxlbWVudCA9IHRydWU7CisgICAgfSBlbHNlIGlmIChtX3ZhbHVl
ID09IG1lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXIpIHsKKyAgICAgICAgbV9wc2V1ZG9UeXBlID0g
UHNldWRvTWVkaWFDb250cm9sc1ZvbHVtZVNsaWRlcjsKKyAgICAgICAgZWxlbWVudCA9IHRydWU7
CiAgICAgfSBlbHNlIGlmIChtX3ZhbHVlID09IG1lZGlhQ29udHJvbHNTZWVrQmFja0J1dHRvbikg
ewogICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9NZWRpYUNvbnRyb2xzU2Vla0JhY2tCdXR0
b247CiAgICAgICAgIGVsZW1lbnQgPSB0cnVlOwpAQCAtMjY1LDYgKzI3MCw5IEBAIHZvaWQgQ1NT
U2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QKICAgICB9IGVsc2UgaWYgKG1fdmFs
dWUgPT0gbWVkaWFDb250cm9sc1RpbWVsaW5lQ29udGFpbmVyKSB7CiAgICAgICAgIG1fcHNldWRv
VHlwZSA9IFBzZXVkb01lZGlhQ29udHJvbHNUaW1lbGluZUNvbnRhaW5lcjsKICAgICAgICAgZWxl
bWVudCA9IHRydWU7CisgICAgfSBlbHNlIGlmIChtX3ZhbHVlID09IG1lZGlhQ29udHJvbHNWb2x1
bWVTbGlkZXJDb250YWluZXIpIHsKKyAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvTWVkaWFD
b250cm9sc1ZvbHVtZVNsaWRlckNvbnRhaW5lcjsKKyAgICAgICAgZWxlbWVudCA9IHRydWU7CiAg
ICAgfSBlbHNlIGlmIChtX3ZhbHVlID09IG5vdFN0cikKICAgICAgICAgbV9wc2V1ZG9UeXBlID0g
UHNldWRvTm90OwogICAgIGVsc2UgaWYgKG1fdmFsdWUgPT0gbnRoQ2hpbGQpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApp
bmRleCBhZmQwYTZmLi43ODM2MTM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKQEAgLTE3Myw5ICsxNzMsMTEgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgUHNldWRvTWVkaWFDb250cm9sc011dGVC
dXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzUGxheUJ1dHRvbiwKICAgICAg
ICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNUaW1lbGluZUNvbnRhaW5lciwKKyAgICAgICAgICAg
IFBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXJDb250YWluZXIsCiAgICAgICAgICAgICBQ
c2V1ZG9NZWRpYUNvbnRyb2xzQ3VycmVudFRpbWVEaXNwbGF5LAogICAgICAgICAgICAgUHNldWRv
TWVkaWFDb250cm9sc1RpbWVSZW1haW5pbmdEaXNwbGF5LAogICAgICAgICAgICAgUHNldWRvTWVk
aWFDb250cm9sc1RpbWVsaW5lLAorICAgICAgICAgICAgUHNldWRvTWVkaWFDb250cm9sc1ZvbHVt
ZVNsaWRlciwKICAgICAgICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNTZWVrQmFja0J1dHRvbiwK
ICAgICAgICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNTZWVrRm9yd2FyZEJ1dHRvbiwKICAgICAg
ICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNSZXdpbmRCdXR0b24sCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCmluZGV4IDhhNzg2ODUuLmU1YTc2MzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3Bw
CkBAIC0yNTA3LDcgKzI1MDcsMTAgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpTZWxlY3RvckNo
ZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbCwgRWxlbWUKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b01lZGlhQ29udHJvbHNUaW1lbGluZUNvbnRhaW5lcjoKICAgICAgICAgICAgICAgICBkeW5hbWlj
UHNldWRvID0gTUVESUFfQ09OVFJPTFNfVElNRUxJTkVfQ09OVEFJTkVSOwotICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXJDb250
YWluZXI6CisgICAgICAgICAgICAgICAgZHluYW1pY1BzZXVkbyA9IE1FRElBX0NPTlRST0xTX1ZP
TFVNRV9TTElERVJfQ09OVEFJTkVSOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTWVkaWFDb250cm9sc0N1cnJlbnRUaW1l
RGlzcGxheToKICAgICAgICAgICAgICAgICBkeW5hbWljUHNldWRvID0gTUVESUFfQ09OVFJPTFNf
Q1VSUkVOVF9USU1FX0RJU1BMQVk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0y
NTE3LDYgKzI1MjAsOSBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6OlNlbGVjdG9yQ2hlY2tlcjo6
Y2hlY2tPbmVTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsLCBFbGVtZQogICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvTWVkaWFDb250cm9sc1RpbWVsaW5lOgogICAgICAgICAgICAg
ICAgIGR5bmFtaWNQc2V1ZG8gPSBNRURJQV9DT05UUk9MU19USU1FTElORTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb01l
ZGlhQ29udHJvbHNWb2x1bWVTbGlkZXI6CisgICAgICAgICAgICAgICAgZHluYW1pY1BzZXVkbyA9
IE1FRElBX0NPTlRST0xTX1ZPTFVNRV9TTElERVI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzU2Vl
a0JhY2tCdXR0b246CiAgICAgICAgICAgICAgICAgZHluYW1pY1BzZXVkbyA9IE1FRElBX0NPTlRS
T0xTX1NFRUtfQkFDS19CVVRUT047CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgppbmRleCAwMTNiNjcxLi44MjRiYTVkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KQEAgLTUxMiw2ICs1MTIsOSBAQCBtZWRpYS1yZXdpbmQtYnV0dG9uCiBtZWRpYS1y
ZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uCiBtZWRpYS1zbGlkZXIKIG1lZGlhLXNsaWRlcnRodW1i
CittZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lcgorbWVkaWEtdm9sdW1lLXNsaWRlcgorbWVk
aWEtdm9sdW1lLXNsaWRlcnRodW1iCiBtZWRpYS1jb250cm9scy1iYWNrZ3JvdW5kCiBtZWRpYS1j
dXJyZW50LXRpbWUtZGlzcGxheQogbWVkaWEtdGltZS1yZW1haW5pbmctZGlzcGxheQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MgYi9XZWJDb3JlL2Nzcy9tZWRpYUNv
bnRyb2xzLmNzcwppbmRleCBmOTY5NGY4Li5kMGVjOTBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9tZWRpYUNvbnRyb2xzLmNzcworKysgYi9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwpA
QCAtODgsNiArODgsMTQgQEAgYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUs
IHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIHsKICAgICBwYWRkaW5nOiAw
cHggMnB4OwogfQogCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVy
LWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1j
b250YWluZXIgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZv
bHVtZS1zbGlkZXIgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKIGF1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXNlZWstYmFjay1idXR0b24gewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2Vl
ay1iYWNrLWJ1dHRvbjsKICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVz
LmgKaW5kZXggYjc2MzY3NS4uM2FiNDFkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9U
aGVtZVR5cGVzLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKQEAgLTQ5LDkg
KzQ5LDggQEAgZW51bSBDb250cm9sUGFydCB7CiAgICAgQnV0dG9uQmV2ZWxQYXJ0LCBEZWZhdWx0
QnV0dG9uUGFydCwgTGlzdGJveFBhcnQsIExpc3RJdGVtUGFydCwgCiAgICAgTWVkaWFGdWxsc2Ny
ZWVuQnV0dG9uUGFydCwgTWVkaWFNdXRlQnV0dG9uUGFydCwgTWVkaWFQbGF5QnV0dG9uUGFydCwg
TWVkaWFTZWVrQmFja0J1dHRvblBhcnQsIAogICAgIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0
LCBNZWRpYVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQs
Ci0gICAgTWVkaWFTbGlkZXJQYXJ0LAotICAgIE1lZGlhU2xpZGVyVGh1bWJQYXJ0LCBNZWRpYUNv
bnRyb2xzQmFja2dyb3VuZFBhcnQsCi0gICAgTWVkaWFDdXJyZW50VGltZVBhcnQsIE1lZGlhVGlt
ZVJlbWFpbmluZ1BhcnQsCisgICAgTWVkaWFTbGlkZXJQYXJ0LCBNZWRpYVNsaWRlclRodW1iUGFy
dCwgTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclBhcnQs
IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0LAorICAgIE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5k
UGFydCwgTWVkaWFDdXJyZW50VGltZVBhcnQsIE1lZGlhVGltZVJlbWFpbmluZ1BhcnQsCiAgICAg
TWVudWxpc3RQYXJ0LCBNZW51bGlzdEJ1dHRvblBhcnQsIE1lbnVsaXN0VGV4dFBhcnQsIE1lbnVs
aXN0VGV4dEZpZWxkUGFydCwKICAgICBTbGlkZXJIb3Jpem9udGFsUGFydCwgU2xpZGVyVmVydGlj
YWxQYXJ0LCBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0LAogICAgIFNsaWRlclRodW1iVmVydGlj
YWxQYXJ0LCBDYXJldFBhcnQsIFNlYXJjaEZpZWxkUGFydCwgU2VhcmNoRmllbGREZWNvcmF0aW9u
UGFydCwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRz
LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCAw
ZTU4ODRiLi4zN2NlOTYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVu
dHMuY3BwCkBAIC0xODMsNyArMTgzLDQ5IEBAIGJvb2wgTWVkaWFDb250cm9sVGltZWxpbmVDb250
YWluZXJFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICBy
ZXR1cm4gIWlzbmFuKGR1cmF0aW9uKSAmJiAhaXNpbmYoZHVyYXRpb24pOwogfQogCi0gICAgCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK01lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ckNvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1l
bnQoRG9jdW1lbnQqIGRvYywgSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCkKKyAgICA6IE1lZGlh
Q29udHJvbEVsZW1lbnQoZG9jLCBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSX0NPTlRBSU5F
UiwgZWxlbWVudCkKKyAgICAsIG1faXNWaXNpYmxlKGZhbHNlKQorICAgICwgbV94KDApCisgICAg
LCBtX3koMCkKK3sKK30KKworUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KCkKK3sKKyAgICBSZWZQ
dHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gTWVkaWFDb250cm9sRWxlbWVudDo6c3R5bGVGb3JFbGVt
ZW50KCk7CisgICAgc3R5bGUtPnNldFBvc2l0aW9uKEFic29sdXRlUG9zaXRpb24pOworICAgIHN0
eWxlLT5zZXRMZWZ0KExlbmd0aChtX3gsIEZpeGVkKSk7CisgICAgc3R5bGUtPnNldFRvcChMZW5n
dGgobV95LCBGaXhlZCkpOworICAgIHN0eWxlLT5zZXREaXNwbGF5KG1faXNWaXNpYmxlID8gQkxP
Q0sgOiBOT05FKTsKKyAgICByZXR1cm4gc3R5bGU7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2V0VmlzaWJsZShib29sIHZpc2libGUpCit7Cisg
ICAgaWYgKHZpc2libGUgPT0gbV9pc1Zpc2libGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX2lz
VmlzaWJsZSA9IHZpc2libGU7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29u
dGFpbmVyRWxlbWVudDo6c2V0UG9zaXRpb24oaW50IHgsIGludCB5KQoreworICAgIGlmICh4ID09
IG1feCAmJiB5ID09IG1feSkKKyAgICAgICAgcmV0dXJuOworICAgIG1feCA9IHg7CisgICAgbV95
ID0geTsKK30KKworYm9vbCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50
OjpoaXRUZXN0KGNvbnN0IEludFBvaW50JiBhYnNQb2ludCkKK3sKKyAgICBpZiAocmVuZGVyZXIo
KSAmJiByZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkpCisgICAgICAgIHJldHVy
biByZW5kZXJlcigpLT50aGVtZSgpLT5oaXRUZXN0TWVkaWFDb250cm9sUGFydChyZW5kZXJlcigp
LCBhYnNQb2ludCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAogTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgSFRNTE1lZGlh
RWxlbWVudCogZWxlbWVudCkKQEAgLTUyOCw2ICs1NzAsMzMgQEAgdm9pZCBNZWRpYUNvbnRyb2xU
aW1lbGluZUVsZW1lbnQ6OnVwZGF0ZShib29sIHVwZGF0ZUR1cmF0aW9uKQogCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK01lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6
Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1M
TWVkaWFFbGVtZW50KiBlbGVtZW50KQorICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRv
Y3VtZW50LCBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSLCAicmFuZ2UiLCBlbGVtZW50LCBN
ZWRpYVZvbHVtZVNsaWRlcikKK3sKKyAgICBzZXRBdHRyaWJ1dGUobWF4QXR0ciwgIjEiKTsKK30K
Kwordm9pZCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50KiBldmVudCkKK3sKKyAgICAvLyBMZWZ0IGJ1dHRvbiBpcyAwLiBSZWplY3RzIG1v
dXNlIGV2ZW50cyBub3QgZnJvbSBsZWZ0IGJ1dHRvbi4KKyAgICBpZiAoZXZlbnQtPmlzTW91c2VF
dmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoZXZlbnQpOworCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
Lm1vdXNlb3ZlckV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0
RXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQpCisg
ICAgICAgIHJldHVybjsKKworICAgIGZsb2F0IHZvbHVtZSA9IG5hcnJvd1ByZWNpc2lvblRvRmxv
YXQodmFsdWUoKS50b0RvdWJsZSgpKTsKKyAgICBpZiAodm9sdW1lICE9IG1fbWVkaWFFbGVtZW50
LT52b2x1bWUoKSkgeworICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAgICAgbV9t
ZWRpYUVsZW1lbnQtPnNldFZvbHVtZSh2b2x1bWUsIGVjKTsKKyAgICAgICAgQVNTRVJUKCFlYyk7
CisgICAgfQorfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9u
RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQpCiAg
ICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoZG9jdW1lbnQsIE1FRElBX0NPTlRST0xTX0ZV
TExTQ1JFRU5fQlVUVE9OLCAiYnV0dG9uIiwgZWxlbWVudCwgTWVkaWFGdWxsc2NyZWVuQnV0dG9u
KQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggOTUzNDhi
Mi4uZDljZGUxZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxl
bWVudHMuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBA
IC01NywxMCArNTcsMTMgQEAgZW51bSBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSB7CiAgICAgTWVk
aWFVbk11dGVCdXR0b24sCiAgICAgTWVkaWFQYXVzZUJ1dHRvbiwKICAgICBNZWRpYVRpbWVsaW5l
Q29udGFpbmVyLAotICAgIE1lZGlhQ3VycmVudFRpbWVEaXNwbGF5LCAKKyAgICBNZWRpYUN1cnJl
bnRUaW1lRGlzcGxheSwKICAgICBNZWRpYVRpbWVSZW1haW5pbmdEaXNwbGF5LAogICAgIE1lZGlh
U3RhdHVzRGlzcGxheSwKLSAgICBNZWRpYUNvbnRyb2xzUGFuZWwKKyAgICBNZWRpYUNvbnRyb2xz
UGFuZWwsCisgICAgTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXIsCisgICAgTWVkaWFWb2x1bWVT
bGlkZXIsCisgICAgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYgogfTsKIAogY2xhc3MgTWVkaWFDb250
cm9sU2hhZG93Um9vdEVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewpAQCAtMTA0LDYg
KzEwNywyMiBAQCBwdWJsaWM6CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAor
Y2xhc3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudCA6IHB1YmxpYyBN
ZWRpYUNvbnRyb2xFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJDb250YWluZXJFbGVtZW50KERvY3VtZW50KiwgSFRNTE1lZGlhRWxlbWVudCopOworICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JFbGVtZW50KCk7CisgICAgdm9p
ZCBzZXRWaXNpYmxlKGJvb2wpOworICAgIGJvb2wgaXNWaXNpYmxlKCkgeyByZXR1cm4gbV9pc1Zp
c2libGU7IH0KKyAgICB2b2lkIHNldFBvc2l0aW9uKGludCB4LCBpbnQgeSk7CisgICAgYm9vbCBo
aXRUZXN0KGNvbnN0IEludFBvaW50JiBhYnNQb2ludCk7CisKK3ByaXZhdGU6CisgICAgYm9vbCBt
X2lzVmlzaWJsZTsKKyAgICBpbnQgbV94LCBtX3k7Cit9OworCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKIGNsYXNzIE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50IDog
cHVibGljIE1lZGlhQ29udHJvbEVsZW1lbnQgewogcHVibGljOgogICAgIE1lZGlhQ29udHJvbFN0
YXR1c0Rpc3BsYXlFbGVtZW50KERvY3VtZW50KiwgSFRNTE1lZGlhRWxlbWVudCopOwpAQCAtMjA3
LDYgKzIyNiwxNCBAQCBwdWJsaWM6CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAorY2xhc3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNv
bnRyb2xJbnB1dEVsZW1lbnQgeworcHVibGljOgorICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ckVsZW1lbnQoRG9jdW1lbnQqLCBIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lk
IGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKK307CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKwogY2xhc3MgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQg
OiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudChEb2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQq
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcAppbmRleCBiODdlOTlkLi43OGFlMDZhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKICNpbmNsdWRlICJN
b3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkBAIC0xMzIsNiArMTMz
LDEwIEBAIHZvaWQgUmVuZGVyTWVkaWE6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBk
aWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5CiAgICAgICAgICAgICBtX2N1cnJlbnRUaW1l
RGlzcGxheS0+dXBkYXRlU3R5bGUoKTsKICAgICAgICAgaWYgKG1fdGltZVJlbWFpbmluZ0Rpc3Bs
YXkpCiAgICAgICAgICAgICBtX3RpbWVSZW1haW5pbmdEaXNwbGF5LT51cGRhdGVTdHlsZSgpOwor
ICAgICAgICBpZiAobV92b2x1bWVTbGlkZXJDb250YWluZXIpCisgICAgICAgICAgICBtX3ZvbHVt
ZVNsaWRlckNvbnRhaW5lci0+dXBkYXRlU3R5bGUoKTsKKyAgICAgICAgaWYgKG1fdm9sdW1lU2xp
ZGVyKQorICAgICAgICAgICAgbV92b2x1bWVTbGlkZXItPnVwZGF0ZVN0eWxlKCk7CiAgICAgfQog
fQogCkBAIC0yNDAsNiArMjQ1LDIxIEBAIHZvaWQgUmVuZGVyTWVkaWE6OmNyZWF0ZVRpbWVsaW5l
KCkKICAgICBtX3RpbWVsaW5lLT5hdHRhY2hUb1BhcmVudChtX3RpbWVsaW5lQ29udGFpbmVyLmdl
dCgpKTsKIH0KIAordm9pZCBSZW5kZXJNZWRpYTo6Y3JlYXRlVm9sdW1lU2xpZGVyQ29udGFpbmVy
KCkKK3sKKyAgICBBU1NFUlQoIW1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKTsKKyAgICBtX3ZvbHVt
ZVNsaWRlckNvbnRhaW5lciA9IG5ldyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJF
bGVtZW50KGRvY3VtZW50KCksIG1lZGlhRWxlbWVudCgpKTsKKyAgICBtX3ZvbHVtZVNsaWRlckNv
bnRhaW5lci0+YXR0YWNoVG9QYXJlbnQobV9wYW5lbC5nZXQoKSk7Cit9CisKK3ZvaWQgUmVuZGVy
TWVkaWE6OmNyZWF0ZVZvbHVtZVNsaWRlcigpCit7CisgICAgQVNTRVJUKCFtX3ZvbHVtZVNsaWRl
cik7CisgICAgbV92b2x1bWVTbGlkZXIgPSBuZXcgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxl
bWVudChkb2N1bWVudCgpLCBtZWRpYUVsZW1lbnQoKSk7CisgICAgbV92b2x1bWVTbGlkZXItPnNl
dEF0dHJpYnV0ZShwcmVjaXNpb25BdHRyLCAiZmxvYXQiKTsKKyAgICBtX3ZvbHVtZVNsaWRlci0+
YXR0YWNoVG9QYXJlbnQobV92b2x1bWVTbGlkZXJDb250YWluZXIuZ2V0KCkpOworfQorCiB2b2lk
IFJlbmRlck1lZGlhOjpjcmVhdGVDdXJyZW50VGltZURpc3BsYXkoKQogewogICAgIEFTU0VSVCgh
bV9jdXJyZW50VGltZURpc3BsYXkpOwpAQCAtMjg1LDYgKzMwNSw4IEBAIHZvaWQgUmVuZGVyTWVk
aWE6OnVwZGF0ZUNvbnRyb2xzKCkKICAgICAgICAgICAgIG1fY3VycmVudFRpbWVEaXNwbGF5ID0g
MDsKICAgICAgICAgICAgIG1fdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSAwOwogICAgICAgICAgICAg
bV9mdWxsc2NyZWVuQnV0dG9uID0gMDsKKyAgICAgICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFp
bmVyID0gMDsKKyAgICAgICAgICAgIG1fdm9sdW1lU2xpZGVyID0gMDsKICAgICAgICAgICAgIG1f
Y29udHJvbHNTaGFkb3dSb290ID0gMDsKICAgICAgICAgfQogICAgICAgICBtX29wYWNpdHlBbmlt
YXRpb25UbyA9IDEuMGY7CkBAIC0zMDMsOSArMzI1LDEyIEBAIHZvaWQgUmVuZGVyTWVkaWE6OnVw
ZGF0ZUNvbnRyb2xzKCkKICAgICAgICAgICAgIGNyZWF0ZVJldHVyblRvUmVhbHRpbWVCdXR0b24o
KTsKICAgICAgICAgICAgIGNyZWF0ZVN0YXR1c0Rpc3BsYXkoKTsKICAgICAgICAgICAgIGNyZWF0
ZVRpbWVsaW5lQ29udGFpbmVyKCk7CisgICAgICAgICAgICBjcmVhdGVWb2x1bWVTbGlkZXJDb250
YWluZXIoKTsKICAgICAgICAgICAgIGNyZWF0ZVNlZWtCYWNrQnV0dG9uKCk7CiAgICAgICAgICAg
ICBjcmVhdGVTZWVrRm9yd2FyZEJ1dHRvbigpOwogICAgICAgICAgICAgY3JlYXRlRnVsbHNjcmVl
bkJ1dHRvbigpOworICAgICAgICAgICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKQorICAg
ICAgICAgICAgICAgIGNyZWF0ZVZvbHVtZVNsaWRlcigpOwogICAgICAgICAgICAgaWYgKG1fdGlt
ZWxpbmVDb250YWluZXIpIHsKICAgICAgICAgICAgICAgICBjcmVhdGVDdXJyZW50VGltZURpc3Bs
YXkoKTsKICAgICAgICAgICAgICAgICBjcmVhdGVUaW1lbGluZSgpOwpAQCAtMzM2LDYgKzM2MSw4
IEBAIHZvaWQgUmVuZGVyTWVkaWE6OnVwZGF0ZUNvbnRyb2xzKCkKICAgICAgICAgbV9wbGF5QnV0
dG9uLT51cGRhdGUoKTsKICAgICBpZiAobV90aW1lbGluZUNvbnRhaW5lcikKICAgICAgICAgbV90
aW1lbGluZUNvbnRhaW5lci0+dXBkYXRlKCk7CisgICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29udGFp
bmVyKQorICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+dXBkYXRlKCk7CiAgICAgaWYg
KG1fdGltZWxpbmUpCiAgICAgICAgIG1fdGltZWxpbmUtPnVwZGF0ZSgpOwogICAgIGlmIChtX2N1
cnJlbnRUaW1lRGlzcGxheSkKQEAgLTM1NCw2ICszODEsOCBAQCB2b2lkIFJlbmRlck1lZGlhOjp1
cGRhdGVDb250cm9scygpCiAgICAgICAgIG1fc3RhdHVzRGlzcGxheS0+dXBkYXRlKCk7CiAgICAg
aWYgKG1fZnVsbHNjcmVlbkJ1dHRvbikKICAgICAgICAgbV9mdWxsc2NyZWVuQnV0dG9uLT51cGRh
dGUoKTsKKyAgICBpZiAobV92b2x1bWVTbGlkZXIpCisgICAgICAgIG1fdm9sdW1lU2xpZGVyLT51
cGRhdGUoKTsKIAogICAgIHVwZGF0ZVRpbWVEaXNwbGF5KCk7CiAgICAgdXBkYXRlQ29udHJvbFZp
c2liaWxpdHkoKTsKQEAgLTQ2MywxMyArNDkyLDUzIEBAIHZvaWQgUmVuZGVyTWVkaWE6Om9wYWNp
dHlBbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFJlbmRlck1lZGlhPiopCiAgICAgY2hhbmdlT3Bh
Y2l0eShtX3BhbmVsLmdldCgpLCBvcGFjaXR5KTsKIH0KIAordm9pZCBSZW5kZXJNZWRpYTo6dXBk
YXRlVm9sdW1lU2xpZGVyQ29udGFpbmVyKGJvb2wgdmlzaWJsZSkKK3sKKyAgICBpZiAoIW1lZGlh
RWxlbWVudCgpLT5oYXNBdWRpbygpIHx8ICFtX3ZvbHVtZVNsaWRlckNvbnRhaW5lciB8fCAhbV92
b2x1bWVTbGlkZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh2aXNpYmxlICYmICFtX3Zv
bHVtZVNsaWRlckNvbnRhaW5lci0+aXNWaXNpYmxlKCkpIHsKKyAgICAgICAgaWYgKCFtX211dGVC
dXR0b24gfHwgIW1fbXV0ZUJ1dHRvbi0+cmVuZGVyZXIoKSB8fCAhbV9tdXRlQnV0dG9uLT5yZW5k
ZXJCb3goKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBSZWZQdHI8UmVuZGVyU3R5
bGU+IHMgPSBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+c3R5bGVGb3JFbGVtZW50KCk7CisgICAg
ICAgIGludCBoZWlnaHQgPSBzLT5oZWlnaHQoKS5pc1BlcmNlbnQoKSA/IDAgOiBzLT5oZWlnaHQo
KS52YWx1ZSgpOworICAgICAgICBpbnQgeCA9IG1fbXV0ZUJ1dHRvbi0+cmVuZGVyQm94KCktPm9m
ZnNldExlZnQoKTsKKyAgICAgICAgaW50IHkgPSBtX211dGVCdXR0b24tPnJlbmRlckJveCgpLT5v
ZmZzZXRUb3AoKSAtIGhlaWdodDsKKyAgICAgICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG1fbXV0
ZUJ1dHRvbi0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoeCwgeSksIHRy
dWUsIHRydWUpOworICAgICAgICBpZiAoYWJzUG9pbnQueSgpIDwgMCkKKyAgICAgICAgICAgIHkg
PSBtX211dGVCdXR0b24tPnJlbmRlckJveCgpLT5vZmZzZXRUb3AoKSArIG1fbXV0ZUJ1dHRvbi0+
cmVuZGVyQm94KCktPmhlaWdodCgpOworICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+
c2V0VmlzaWJsZSh0cnVlKTsKKyAgICAgICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPnNldFBv
c2l0aW9uKHgsIHkpOworICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+dXBkYXRlKCk7
CisgICAgICAgIG1fdm9sdW1lU2xpZGVyLT51cGRhdGUoKTsKKyAgICB9IGVsc2UgaWYgKCF2aXNp
YmxlICYmIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5pc1Zpc2libGUoKSkgeworICAgICAgICBt
X3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+c2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgIG1fdm9s
dW1lU2xpZGVyQ29udGFpbmVyLT51cGRhdGVTdHlsZSgpOworICAgIH0KK30KKwogdm9pZCBSZW5k
ZXJNZWRpYTo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBldmVudCkKIHsKICAgICBpZiAoZXZlbnQtPmlz
TW91c2VFdmVudCgpICYmIG1fY29udHJvbHNTaGFkb3dSb290KSB7CiAgICAgICAgIE1vdXNlRXZl
bnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpOwogICAgICAg
ICBJbnRQb2ludCBwb2ludChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOwotICAgICAg
ICBpZiAobV9tdXRlQnV0dG9uICYmIG1fbXV0ZUJ1dHRvbi0+aGl0VGVzdChwb2ludCkpCisgICAg
ICAgIGJvb2wgc2hvd1ZvbHVtZVNsaWRlciA9IGZhbHNlOworICAgICAgICBpZiAobV9tdXRlQnV0
dG9uICYmIG1fbXV0ZUJ1dHRvbi0+aGl0VGVzdChwb2ludCkpIHsKICAgICAgICAgICAgIG1fbXV0
ZUJ1dHRvbi0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CisgICAgICAgICAgICBpZiAoZXZl
bnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCkKKyAgICAgICAgICAgICAg
ICBzaG93Vm9sdW1lU2xpZGVyID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX3Zv
bHVtZVNsaWRlckNvbnRhaW5lciAmJiBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGl0VGVzdChw
b2ludCkpCisgICAgICAgICAgICBzaG93Vm9sdW1lU2xpZGVyID0gdHJ1ZTsKKworICAgICAgICBp
ZiAobV92b2x1bWVTbGlkZXIgJiYgbV92b2x1bWVTbGlkZXItPmhpdFRlc3QocG9pbnQpKSB7Cisg
ICAgICAgICAgICBtX3ZvbHVtZVNsaWRlci0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7Cisg
ICAgICAgICAgICBzaG93Vm9sdW1lU2xpZGVyID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAg
IHVwZGF0ZVZvbHVtZVNsaWRlckNvbnRhaW5lcihzaG93Vm9sdW1lU2xpZGVyKTsKIAogICAgICAg
ICBpZiAobV9wbGF5QnV0dG9uICYmIG1fcGxheUJ1dHRvbi0+aGl0VGVzdChwb2ludCkpCiAgICAg
ICAgICAgICBtX3BsYXlCdXR0b24tPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lZGlhLmgKaW5kZXggNTY5N2JkYS4uMmNlODBjNyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZWRpYS5oCkBAIC00MSwxMCArNDEsMTIgQEAgY2xhc3MgTWVkaWFDb250cm9sU2Vla0J1dHRvbkVs
ZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OwogY2xhc3MgTWVk
aWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQ7CitjbGFzcyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50
OwogY2xhc3MgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBNZWRp
YUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xTdGF0dXNEaXNw
bGF5RWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDsK
K2NsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ7CiBjbGFzcyBN
ZWRpYUNvbnRyb2xFbGVtZW50OwogY2xhc3MgTWVkaWFQbGF5ZXI7CiAKQEAgLTk5LDYgKzEwMSw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVTdGF0dXNEaXNwbGF5KCk7CiAgICAgdm9pZCBj
cmVhdGVUaW1lbGluZUNvbnRhaW5lcigpOwogICAgIHZvaWQgY3JlYXRlVGltZWxpbmUoKTsKKyAg
ICB2b2lkIGNyZWF0ZVZvbHVtZVNsaWRlckNvbnRhaW5lcigpOworICAgIHZvaWQgY3JlYXRlVm9s
dW1lU2xpZGVyKCk7CiAgICAgdm9pZCBjcmVhdGVDdXJyZW50VGltZURpc3BsYXkoKTsKICAgICB2
b2lkIGNyZWF0ZVRpbWVSZW1haW5pbmdEaXNwbGF5KCk7CiAgICAgdm9pZCBjcmVhdGVGdWxsc2Ny
ZWVuQnV0dG9uKCk7CkBAIC0xMDksNiArMTEzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNoYW5n
ZU9wYWNpdHkoSFRNTEVsZW1lbnQqLCBmbG9hdCBvcGFjaXR5KTsKICAgICB2b2lkIG9wYWNpdHlB
bmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFJlbmRlck1lZGlhPiopOwogCisgICAgdm9pZCB1cGRh
dGVWb2x1bWVTbGlkZXJDb250YWluZXIoYm9vbCB2aXNpYmxlKTsKKwogICAgIHZpcnR1YWwgdm9p
ZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRT
dHlsZSk7CiAKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1fY29udHJvbHNTaGFkb3dSb290OwpA
QCAtMTIwLDggKzEyNiwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50PiBtX3Jld2luZEJ1dHRvbjsKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
UmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IG1fcmV0dXJuVG9SZWFsdGltZUJ1dHRvbjsK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiBtX3RpbWVsaW5lOworICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50PiBtX3ZvbHVtZVNsaWRlcjsK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IG1fZnVsbHNj
cmVlbkJ1dHRvbjsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVt
ZW50PiBtX3RpbWVsaW5lQ29udGFpbmVyOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJDb250YWluZXJFbGVtZW50PiBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcjsKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50PiBtX2N1cnJlbnRUaW1lRGlzcGxheTsK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50PiBtX3RpbWVSZW1haW5p
bmdEaXNwbGF5OwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4g
bV9zdGF0dXNEaXNwbGF5OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVk
aWFDb250cm9scy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNw
cAppbmRleCAwNmQ5MDFhLi4zYzZjNTZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRp
YUNvbnRyb2xzLmNwcApAQCAtMTI4LDYgKzEyOCwxOCBAQCBib29sIFJlbmRlck1lZGlhQ29udHJv
bHM6OnBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUgcGFydCwg
UgogICAgICAgICBjYXNlIE1lZGlhU2xpZGVyVGh1bWI6CiAgICAgICAgICAgICBwYWludFRoZW1l
UGFydChTYWZhcmlUaGVtZTo6TWVkaWFTbGlkZXJUaHVtYlBhcnQsIHBhaW50SW5mby5jb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKSwgciwgTlNSZWd1bGFyQ29udHJvbFNpemUsIGRldGVybWluZVN0
YXRlKG8pKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xp
ZGVyQ29udGFpbmVyOgorICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB2b2x1bWUgc2xp
ZGVyLgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlcjoKKyAgICAgICAgICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgdm9sdW1lIHNsaWRlci4KKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJU
aHVtYjoKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdm9sdW1lIHNsaWRlci4KKyAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgTWVkaWFUaW1lbGluZUNvbnRhaW5lcjoKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNw
cAppbmRleCA0ZDE0MWI3Li4yNDdhY2RhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbGlkZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAK
QEAgLTI4MSw2ICsyODEsOCBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBSZW5kZXJTbGlkZXI6
OmNyZWF0ZVRodW1iU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudAogICAgICAgICBzdHls
ZS0+c2V0QXBwZWFyYW5jZShTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KTsKICAgICBlbHNlIGlm
IChwYXJlbnRTdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyUGFydCkKICAgICAgICAg
c3R5bGUtPnNldEFwcGVhcmFuY2UoTWVkaWFTbGlkZXJUaHVtYlBhcnQpOworICAgIGVsc2UgaWYg
KHBhcmVudFN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KQorICAg
ICAgICBzdHlsZS0+c2V0QXBwZWFyYW5jZShNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCk7CiAK
ICAgICByZXR1cm4gc3R5bGUucmVsZWFzZSgpOwogfQpAQCAtMjk4LDcgKzMwMCw3IEBAIEludFJl
Y3QgUmVuZGVyU2xpZGVyOjp0aHVtYlJlY3QoKQogCiAgICAgZG91YmxlIGZyYWN0aW9uID0gc2xp
ZGVyUG9zaXRpb24oc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSkpOwogICAg
IEludFJlY3QgY29udGVudFJlY3QgPSBjb250ZW50Qm94UmVjdCgpOwotICAgIGlmIChzdHlsZSgp
LT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0KSB7CisgICAgaWYgKHN0eWxlKCkt
PmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQgfHwgc3R5bGUoKS0+YXBwZWFyYW5j
ZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCkgewogICAgICAgICB0aHVtYlJlY3Quc2V0WChj
b250ZW50UmVjdC54KCkgKyAoY29udGVudFJlY3Qud2lkdGgoKSAtIHRodW1iUmVjdC53aWR0aCgp
KSAvIDIpOwogICAgICAgICB0aHVtYlJlY3Quc2V0WShjb250ZW50UmVjdC55KCkgKyBzdGF0aWNf
Y2FzdDxpbnQ+KG5leHRhZnRlcigoY29udGVudFJlY3QuaGVpZ2h0KCkgLSB0aHVtYlJlY3QuaGVp
Z2h0KCkpICsgMSwgMCkgKiAoMSAtIGZyYWN0aW9uKSkpOwogICAgIH0gZWxzZSB7CkBAIC0zOTEs
NyArMzkzLDcgQEAgYm9vbCBSZW5kZXJTbGlkZXI6Om1vdXNlRXZlbnRJc0luVGh1bWIoTW91c2VF
dmVudCogZXZ0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBFTkFCTEUoVklERU8pCi0g
ICAgaWYgKHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVNsaWRlclBhcnQpIHsKKyAgICBp
ZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyUGFydCB8fCBzdHlsZSgpLT5h
cHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KSB7CiAgICAgICAgIE1lZGlhQ29u
dHJvbElucHV0RWxlbWVudCAqc2xpZGVyVGh1bWIgPSBzdGF0aWNfY2FzdDxNZWRpYUNvbnRyb2xJ
bnB1dEVsZW1lbnQqPihtX3RodW1iLT5yZW5kZXJlcigpLT5ub2RlKCkpOwogICAgICAgICByZXR1
cm4gc2xpZGVyVGh1bWItPmhpdFRlc3QoZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOwogICAgIH0K
QEAgLTQyMyw3ICs0MjUsNyBAQCB2b2lkIFJlbmRlclNsaWRlcjo6c2V0VmFsdWVGb3JQb3NpdGlv
bihpbnQgcG9zaXRpb24pCiAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXcgdmFsdWUgYmFzZWQgb24g
dGhlIHBvc2l0aW9uLCBhbmQgc2VuZCBpdCB0byB0aGUgZWxlbWVudC4KICAgICBTbGlkZXJSYW5n
ZSByYW5nZShlbGVtZW50KTsKICAgICBkb3VibGUgZnJhY3Rpb24gPSBzdGF0aWNfY2FzdDxkb3Vi
bGU+KHBvc2l0aW9uKSAvIHRyYWNrU2l6ZSgpOwotICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNl
KCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0KQorICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkg
PT0gU2xpZGVyVmVydGljYWxQYXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZv
bHVtZVNsaWRlclBhcnQpCiAgICAgICAgIGZyYWN0aW9uID0gMSAtIGZyYWN0aW9uOwogICAgIGRv
dWJsZSB2YWx1ZSA9IHJhbmdlLmNsYW1wVmFsdWUocmFuZ2UudmFsdWVGcm9tUHJvcG9ydGlvbihm
cmFjdGlvbikpOwogICAgIGVsZW1lbnQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKFN0cmluZzo6bnVt
YmVyKHZhbHVlKSk7CkBAIC00NDQsNyArNDQ2LDcgQEAgaW50IFJlbmRlclNsaWRlcjo6cG9zaXRp
b25Gb3JPZmZzZXQoY29uc3QgSW50UG9pbnQmIHApCiAgICAgICAgIHJldHVybiAwOwogCiAgICAg
aW50IHBvc2l0aW9uOwotICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVy
dGljYWxQYXJ0KQorICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGlj
YWxQYXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQp
CiAgICAgICAgIHBvc2l0aW9uID0gcC55KCkgLSBtX3RodW1iLT5yZW5kZXJCb3goKS0+aGVpZ2h0
KCkgLyAyOwogICAgIGVsc2UKICAgICAgICAgcG9zaXRpb24gPSBwLngoKSAtIG1fdGh1bWItPnJl
bmRlckJveCgpLT53aWR0aCgpIC8gMjsKQEAgLTQ1Nyw3ICs0NTksNyBAQCBpbnQgUmVuZGVyU2xp
ZGVyOjpjdXJyZW50UG9zaXRpb24oKQogICAgIEFTU0VSVChtX3RodW1iKTsKICAgICBBU1NFUlQo
bV90aHVtYi0+cmVuZGVyZXIoKSk7CiAKLSAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09
IFNsaWRlclZlcnRpY2FsUGFydCkKKyAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNs
aWRlclZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVT
bGlkZXJQYXJ0KQogICAgICAgICByZXR1cm4gdG9SZW5kZXJCb3gobV90aHVtYi0+cmVuZGVyZXIo
KSktPnkoKSAtIGNvbnRlbnRCb3hSZWN0KCkueSgpOwogICAgIHJldHVybiB0b1JlbmRlckJveCht
X3RodW1iLT5yZW5kZXJlcigpKS0+eCgpIC0gY29udGVudEJveFJlY3QoKS54KCk7CiB9CkBAIC00
NjcsNyArNDY5LDcgQEAgaW50IFJlbmRlclNsaWRlcjo6dHJhY2tTaXplKCkKICAgICBBU1NFUlQo
bV90aHVtYik7CiAgICAgQVNTRVJUKG1fdGh1bWItPnJlbmRlcmVyKCkpOwogCi0gICAgaWYgKHN0
eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQpCisgICAgaWYgKHN0eWxl
KCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQgfHwgc3R5bGUoKS0+YXBwZWFy
YW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCkKICAgICAgICAgcmV0dXJuIGNvbnRlbnRI
ZWlnaHQoKSAtIG1fdGh1bWItPnJlbmRlckJveCgpLT5oZWlnaHQoKTsKICAgICByZXR1cm4gY29u
dGVudFdpZHRoKCkgLSBtX3RodW1iLT5yZW5kZXJCb3goKS0+d2lkdGgoKTsKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmNwcAppbmRleCBkNDg2NTJmLi43YjRkZmUzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwCkBAIC0xODMsNiArMTgzLDcgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0
U3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWwK
ICAgICAgICAgY2FzZSBNZW51bGlzdEJ1dHRvblBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gYWRq
dXN0TWVudUxpc3RCdXR0b25TdHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOwogICAgICAgICBjYXNl
IE1lZGlhU2xpZGVyUGFydDoKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6CiAg
ICAgICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVyVmVy
dGljYWxQYXJ0OgogICAgICAgICAgICAgcmV0dXJuIGFkanVzdFNsaWRlclRyYWNrU3R5bGUoc2Vs
ZWN0b3IsIHN0eWxlLCBlKTsKQEAgLTI3OCw2ICsyNzksMTQgQEAgYm9vbCBSZW5kZXJUaGVtZTo6
cGFpbnQoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgcGFp
bnRJbmYKICAgICAgICAgICAgIGlmIChvLT5wYXJlbnQoKS0+aXNTbGlkZXIoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVNsaWRlclRodW1iKG8sIHBhaW50SW5mbywgcik7CiAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
clBhcnQ6CisgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
cihvLCBwYWludEluZm8sIHIpOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFydDoK
KyAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2sobywgcGFpbnRJ
bmZvLCByKTsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICAg
ICAgICAgIGlmIChvLT5wYXJlbnQoKS0+aXNTbGlkZXIoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKG8sIHBhaW50SW5mbywgcik7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0OgogICAgICAg
ICAgICAgcmV0dXJuIHBhaW50TWVkaWFUaW1lUmVtYWluaW5nKG8sIHBhaW50SW5mbywgcik7CiAg
ICAgICAgIGNhc2UgTWVkaWFDdXJyZW50VGltZVBhcnQ6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApp
bmRleCA3OTVkYWEyLi5jMDBjMmViIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTI0NCw2
ICsyNDQsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFTZWVrRm9y
d2FyZEJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50
TWVkaWFTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29s
IHBhaW50TWVkaWFTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6
OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXIoUmVuZGVyT2JqZWN0KiwgY29u
c3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soUmVuZGVy
T2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVy
VGh1bWIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlh
UmV3aW5kQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVy
T2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBwYWludE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kKFJlbmRlck9iamVjdCos
IGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJu
IHRydWU7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmggYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oCmluZGV4IDYwNzZkNTIuLjJmYzc3YWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNjksMTAgKzY5LDkgQEAgZW51bSBQc2V1ZG9J
ZCB7CiAgICAgTk9QU0VVRE8sIEZJUlNUX0xJTkUsIEZJUlNUX0xFVFRFUiwgQkVGT1JFLCBBRlRF
UiwgU0VMRUNUSU9OLCBGSVJTVF9MSU5FX0lOSEVSSVRFRCwgU0NST0xMQkFSLCBGSUxFX1VQTE9B
RF9CVVRUT04sIElOUFVUX1BMQUNFSE9MREVSLAogICAgIFNMSURFUl9USFVNQiwgU0VBUkNIX0NB
TkNFTF9CVVRUT04sIFNFQVJDSF9ERUNPUkFUSU9OLCBTRUFSQ0hfUkVTVUxUU19ERUNPUkFUSU9O
LCBTRUFSQ0hfUkVTVUxUU19CVVRUT04sIE1FRElBX0NPTlRST0xTX1BBTkVMLAogICAgIE1FRElB
X0NPTlRST0xTX1BMQVlfQlVUVE9OLCBNRURJQV9DT05UUk9MU19NVVRFX0JVVFRPTiwgTUVESUFf
Q09OVFJPTFNfVElNRUxJTkUsIE1FRElBX0NPTlRST0xTX1RJTUVMSU5FX0NPTlRBSU5FUiwKLSAg
ICBNRURJQV9DT05UUk9MU19DVVJSRU5UX1RJTUVfRElTUExBWSwgTUVESUFfQ09OVFJPTFNfVElN
RV9SRU1BSU5JTkdfRElTUExBWSwgTUVESUFfQ09OVFJPTFNfU0VFS19CQUNLX0JVVFRPTiwgCi0g
ICAgTUVESUFfQ09OVFJPTFNfU0VFS19GT1JXQVJEX0JVVFRPTiwgTUVESUFfQ09OVFJPTFNfRlVM
TFNDUkVFTl9CVVRUT04sIE1FRElBX0NPTlRST0xTX1JFV0lORF9CVVRUT04sCi0gICAgTUVESUFf
Q09OVFJPTFNfUkVUVVJOX1RPX1JFQUxUSU1FX0JVVFRPTiwgTUVESUFfQ09OVFJPTFNfU1RBVFVT
X0RJU1BMQVksCi0gICAgU0NST0xMQkFSX1RIVU1CLCBTQ1JPTExCQVJfQlVUVE9OLCBTQ1JPTExC
QVJfVFJBQ0ssIFNDUk9MTEJBUl9UUkFDS19QSUVDRSwgU0NST0xMQkFSX0NPUk5FUiwgUkVTSVpF
UiwKKyAgICBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSLCBNRURJQV9DT05UUk9MU19WT0xV
TUVfU0xJREVSX0NPTlRBSU5FUiwgTUVESUFfQ09OVFJPTFNfQ1VSUkVOVF9USU1FX0RJU1BMQVks
IE1FRElBX0NPTlRST0xTX1RJTUVfUkVNQUlOSU5HX0RJU1BMQVksIE1FRElBX0NPTlRST0xTX1NF
RUtfQkFDS19CVVRUT04sCisgICAgTUVESUFfQ09OVFJPTFNfU0VFS19GT1JXQVJEX0JVVFRPTiwg
TUVESUFfQ09OVFJPTFNfRlVMTFNDUkVFTl9CVVRUT04sIE1FRElBX0NPTlRST0xTX1JFV0lORF9C
VVRUT04sIE1FRElBX0NPTlRST0xTX1JFVFVSTl9UT19SRUFMVElNRV9CVVRUT04sCisgICAgTUVE
SUFfQ09OVFJPTFNfU1RBVFVTX0RJU1BMQVksIFNDUk9MTEJBUl9USFVNQiwgU0NST0xMQkFSX0JV
VFRPTiwgU0NST0xMQkFSX1RSQUNLLCBTQ1JPTExCQVJfVFJBQ0tfUElFQ0UsIFNDUk9MTEJBUl9D
T1JORVIsIFJFU0laRVIsCiAKICAgICBGSVJTVF9JTlRFUk5BTF9QU0VVRE9JRCA9IEZJTEVfVVBM
T0FEX0JVVFRPTgogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38531</attachid>
            <date>2009-08-24 23:24:09 -0700</date>
            <delta_ts>2009-08-25 05:04:32 -0700</delta_ts>
            <desc>volume controls implementation without theme</desc>
            <filename>webkit-add-volume-slider.patch</filename>
            <type>text/plain</type>
            <size>34842</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWJiMTU2MS4uNGMwNTBmOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAwOS0wOC0yNCAgQWxwaGEgTGFtICA8
aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIHBhbmVsIGRvZXMgbm90IGhhdmUgYSB2b2x1bWUg
Y29udHJvbCBzbGlkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MjQxCisKKyAgICAgICAgSW50cm9kdWNlZCAiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyIiwKKyAgICAgICAgIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1l
LXNsaWRlci1jb250YWluZXIiIGFuZCB0aGUgc3VwcG9ydGluZworICAgICAgICBpbXBsZW1lbnRh
dGlvbi4gQWxzbyBhZGRlZCBhcHBlYXJhbmNlcyBvZiAibWVkaWEtdm9sdW1lLXNsaWRlciIgYW5k
CisgICAgICAgICJtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciIuCisKKyAgICAgICAgVGhl
IGltcGxlbWVudGF0aW9uIG9mIHRoZSBjb250cm9scyBhcmUgaW4gV2ViQ29yZTo6TWVkaWFDb250
cm9sRWxlbWVudHMuCisgICAgICAgIExvZ2ljIHRvIHRyaWdnZXIgdGhlIGRpc3BsYXkgb2YgdGhl
IHZvbHVtZSBjb250cm9scyBhcmUgaW4gV2ViQ29yZTo6UmVuZGVyTWVkaWEuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIHNpbmNlIHRoaXMgY2hhbmdlIGRvZXNuJ3QgaGF2ZSB0aGVtZSBpbXBsZW1l
bnRhdGlvbiBhbmQgdGhlCisgICAgICAgIHZvbHVtZSBzbGlkZXIgaXMgZGlzYWJsZWQgYnkgZGVm
YXVsdC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2xpZGVyOjpvcmllbnRhdGlvbik6IE1h
cmtzIHRoYXQgdm9sdW1lIHNsaWRlciBpcyB2ZXJ0aWNhbC4KKyAgICAgICAgKiBjc3MvQ1NTUHJp
bWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKTogQWRkZWQgY29ycmVzcG9uZGluZyBDU1MgdmFsdWVzLgor
ICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxl
Y3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOiBkaXR0by4KKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjopOiBkaXR0by4KKyAgICAgICAg
KiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNl
bGVjdG9yOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IpOiBkaXR0by4KKyAgICAg
ICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjogZGl0dG8uCisgICAgICAgICogY3NzL21lZGlh
Q29udHJvbHMuY3NzOiBNYWtlcyB0aGUgdm9sdW1lIHNsaWRlciBkaXNhYmxlZCBieSBkZWZhdWx0
LgorICAgICAgICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMuaDogRGVmaW5lcyB0aGVtZSBwYXJ0cyBm
b3Igdm9sdW1lIHNsaWRlciBhbmQgaXRzIGNvbnRhaW5lci4KKyAgICAgICAgKFdlYkNvcmU6Oik6
CisgICAgICAgICogcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c3R5bGVGb3JFbGVtZW50
KToKKyAgICAgICAgQWRqdXN0IHRoZSBDU1MgdmFsdWVzIGZvciAiZGlzcGxheSIsICJwb3N0aW9u
IiwgImxlZnQiIGFuZCAidG9wIiBhY2NvcmRpbmcgdG8gbWVtYmVyIHZhcmlhYmxlcy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNl
dFZpc2libGUpOiBBZmZlY3RzIHRoZSAiZGlzcGxheSIgQ1NTIHZhbHVlLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2V0UG9zaXRp
b24pOiBBZmZlY3RzIHRoZSAibGVmdCIgYW5kICJ0b3AiIENTUyB2YWx1ZXMuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpoaXRUZXN0
KTogSGl0IHRlc3RpbmcgdGhpcyBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpkZWZh
dWx0RXZlbnRIYW5kbGVyKTogTW9kaWZpZXMgdGhlIHZvbHVtZSB1c2luZyB0aGUgc2xpZGVyIHZh
bHVlLCBhbGxvd3MgZHJhZ2dpbmcuCisgICAgICAgICogcmVuZGVyaW5nL01lZGlhQ29udHJvbEVs
ZW1lbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjopOiBBZGRlZCBkZWZpbml0aW9uIGZvciBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50IGFuZCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJD
b250YWluZXJFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6aXNWaXNpYmxlKTogSW5saW5lIGdldHRlci4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVk
aWE6OnN0eWxlRGlkQ2hhbmdlKTogVXBkYXRlcyBzdHlsZXMgZm9yIHZvbHVtZSBjb250YWluZXIg
YW5kIHZvbHVtZSBzbGlkZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6Y3JlYXRl
Vm9sdW1lU2xpZGVyQ29udGFpbmVyKTogQ3JlYXRlcyB2b2x1bWUgc2xpZGVyIGNvbnRhaW5lciBh
bmQgYXR0YWNoIHRvIHBhbmVsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OmNyZWF0
ZVZvbHVtZVNsaWRlcik6IENyZWF0ZXMgdm9sdW1lIHNsaWRlciBhbmQgYXR0YWNoIHRvIHZvbHVt
ZSBzbGlkZXIgY29udGFpbmVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OnVwZGF0
ZUNvbnRyb2xzKTogVXBkYXRlcyB2b2x1bWUgY29udGFpbmVyIGFuZCB2b2x1bWUgc2xpZGVyLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OnVwZGF0ZVZvbHVtZVNsaWRlckNvbnRhaW5l
cik6IFNldHMgdGhlIHZpc2liaWxpdHkgYW5kIHBvc2l0aW9uIG9mIHZvbHVtZSBzbGlkZXIgY29u
dGFpbmVyIGFuZCBpdHMgY2hpbGQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6Zm9y
d2FyZEV2ZW50KToKKyAgICAgICAgSGl0IHRlc3RpbmcgdGhlIHZvbHVtZSBzbGlkZXIgY29udGFp
bmVyIGFuZCB2b2x1bWUgc2xpZGVyIHRvIHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBhbmQgZm9yd2Fy
ZCBldmVudHMgdG8gc2xpZGVyLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5oOgor
ICAgICAgICBBZGRlZCBkZWZpbml0aW9uIGZvciBSZW5kZXJNZWRpYTo6dXBkYXRlVm9sdW1lU2xp
ZGVyQ29udGFpbmVyKCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sczo6cGFpbnRNZWRpYUNv
bnRyb2xzUGFydCk6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6Y3JlYXRlVGh1bWJT
dHlsZSk6IE1ha2VzIHZvbHVtZSBzbGlkZXIgdmVydGljYWwuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTbGlkZXI6OnRodW1iUmVjdCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U2xpZGVyOjptb3VzZUV2ZW50SXNJblRodW1iKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTbGlkZXI6OnNldFZhbHVlRm9yUG9zaXRpb24pOiBkaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNsaWRlcjo6cG9zaXRpb25Gb3JPZmZzZXQpOiBkaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNsaWRlcjo6Y3VycmVudFBvc2l0aW9uKTogZGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTbGlkZXI6OnRyYWNrU2l6ZSk6IGRpdHRvLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRq
dXN0U3R5bGUpOiBBZGp1c3Qgc3R5bGUgZm9yIHZvbHVtZSBzbGlkZXIgdGh1bWIuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOiBQYWludHMgdm9sdW1lIGNvbnRyb2wgcGFy
dHMgdXNpbmcgdGhlbWUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
cik6IE5haXZlIGltcGxlbWVudGF0aW9uIHRvIGJlIG92ZXJyaWRkZW4uCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKTogZGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1i
KTogZGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
Lmg6CisgICAgICAgIChXZWJDb3JlOjopOiBDb25zdGFudHMgZm9yIHZvbHVtZSBjb250cm9sIHBh
cnRzLgorCiAyMDA5LTA4LTI0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKaW5kZXggZTNhNjU0Yi4uZWRlOWRjZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCisrKyBi
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcApAQCAtNzUsNiAr
NzUsNyBAQCBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb24gQWNjZXNzaWJpbGl0eVNsaWRlcjo6b3Jp
ZW50YXRpb24oKSBjb25zdAogICAgICAgICAKICAgICAgICAgY2FzZSBTbGlkZXJUaHVtYlZlcnRp
Y2FsUGFydDogCiAgICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQYXJ0OgorICAgICAgICBjYXNl
IE1lZGlhVm9sdW1lU2xpZGVyUGFydDoKICAgICAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
T3JpZW50YXRpb25WZXJ0aWNhbDsKICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IDNmNzAxMWEuLjBhNGE5ZTIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysg
Yi9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTIyOCw2ICsyMjgs
MTUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKENvbnRyb2xQYXJ0IGUpCiAgICAgICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6CiAg
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVNsaWRlcnRodW1iOwogICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXJQ
YXJ0OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlk
ZXJDb250YWluZXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVt
ZVNsaWRlclBhcnQ6CisgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVZv
bHVtZVNsaWRlcjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1l
U2xpZGVyVGh1bWJQYXJ0OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVk
aWFWb2x1bWVTbGlkZXJ0aHVtYjsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1l
ZGlhQ29udHJvbHNCYWNrZ3JvdW5kUGFydDoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZU1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvci5jcHAKaW5kZXggYTdmNzAzNC4uOWQ5ZGQxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtMTA4
LDYgKzEwOCw3IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QK
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc011dGVC
dXR0b24sICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiIpKTsKICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1BsYXlCdXR0b24sICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1RpbWVsaW5lLCAoIi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdGltZWxpbmUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG1lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXIsICgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBtZWRpYUNvbnRyb2xzU2Vla0JhY2tCdXR0b24sICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1z
ZWVrLWJhY2stYnV0dG9uIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBtZWRpYUNvbnRyb2xzU2Vla0ZvcndhcmRCdXR0b24sICgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy1zZWVrLWZvcndhcmQtYnV0dG9uIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBtZWRpYUNvbnRyb2xzUmV3aW5kQnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtcmV3aW5kLWJ1dHRvbiIpKTsKQEAgLTExNSw2ICsxMTYsNyBAQCB2b2lkIENTU1NlbGVjdG9y
OjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG1lZGlhQ29udHJvbHNTdGF0dXNEaXNwbGF5LCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtc3RhdHVzLWRpc3BsYXkiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG1lZGlhQ29udHJvbHNGdWxsc2NyZWVuQnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtZnVsbHNjcmVlbi1idXR0b24iKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG1lZGlhQ29udHJvbHNUaW1lbGluZUNvbnRhaW5lciwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgbWVkaWFDb250cm9sc1ZvbHVtZVNsaWRlckNvbnRhaW5lciwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIikpOwogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzQ3VycmVudFRpbWVEaXNw
bGF5LCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXkiKSk7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJvbHNUaW1lUmVt
YWluaW5nRGlzcGxheSwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRp
c3BsYXkiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5vdFN0ciwg
KCJub3QoIikpOwpAQCAtMjQ0LDYgKzI0Niw5IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQ
c2V1ZG9UeXBlKCkgY29uc3QKICAgICB9IGVsc2UgaWYgKG1fdmFsdWUgPT0gbWVkaWFDb250cm9s
c1RpbWVsaW5lKSB7CiAgICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb01lZGlhQ29udHJvbHNU
aW1lbGluZTsKICAgICAgICAgZWxlbWVudCA9IHRydWU7CisgICAgfSBlbHNlIGlmIChtX3ZhbHVl
ID09IG1lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXIpIHsKKyAgICAgICAgbV9wc2V1ZG9UeXBlID0g
UHNldWRvTWVkaWFDb250cm9sc1ZvbHVtZVNsaWRlcjsKKyAgICAgICAgZWxlbWVudCA9IHRydWU7
CiAgICAgfSBlbHNlIGlmIChtX3ZhbHVlID09IG1lZGlhQ29udHJvbHNTZWVrQmFja0J1dHRvbikg
ewogICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9NZWRpYUNvbnRyb2xzU2Vla0JhY2tCdXR0
b247CiAgICAgICAgIGVsZW1lbnQgPSB0cnVlOwpAQCAtMjY1LDYgKzI3MCw5IEBAIHZvaWQgQ1NT
U2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QKICAgICB9IGVsc2UgaWYgKG1fdmFs
dWUgPT0gbWVkaWFDb250cm9sc1RpbWVsaW5lQ29udGFpbmVyKSB7CiAgICAgICAgIG1fcHNldWRv
VHlwZSA9IFBzZXVkb01lZGlhQ29udHJvbHNUaW1lbGluZUNvbnRhaW5lcjsKICAgICAgICAgZWxl
bWVudCA9IHRydWU7CisgICAgfSBlbHNlIGlmIChtX3ZhbHVlID09IG1lZGlhQ29udHJvbHNWb2x1
bWVTbGlkZXJDb250YWluZXIpIHsKKyAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvTWVkaWFD
b250cm9sc1ZvbHVtZVNsaWRlckNvbnRhaW5lcjsKKyAgICAgICAgZWxlbWVudCA9IHRydWU7CiAg
ICAgfSBlbHNlIGlmIChtX3ZhbHVlID09IG5vdFN0cikKICAgICAgICAgbV9wc2V1ZG9UeXBlID0g
UHNldWRvTm90OwogICAgIGVsc2UgaWYgKG1fdmFsdWUgPT0gbnRoQ2hpbGQpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApp
bmRleCBhZmQwYTZmLi43ODM2MTM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKQEAgLTE3Myw5ICsxNzMsMTEgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgUHNldWRvTWVkaWFDb250cm9sc011dGVC
dXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9NZWRpYUNvbnRyb2xzUGxheUJ1dHRvbiwKICAgICAg
ICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNUaW1lbGluZUNvbnRhaW5lciwKKyAgICAgICAgICAg
IFBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXJDb250YWluZXIsCiAgICAgICAgICAgICBQ
c2V1ZG9NZWRpYUNvbnRyb2xzQ3VycmVudFRpbWVEaXNwbGF5LAogICAgICAgICAgICAgUHNldWRv
TWVkaWFDb250cm9sc1RpbWVSZW1haW5pbmdEaXNwbGF5LAogICAgICAgICAgICAgUHNldWRvTWVk
aWFDb250cm9sc1RpbWVsaW5lLAorICAgICAgICAgICAgUHNldWRvTWVkaWFDb250cm9sc1ZvbHVt
ZVNsaWRlciwKICAgICAgICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNTZWVrQmFja0J1dHRvbiwK
ICAgICAgICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNTZWVrRm9yd2FyZEJ1dHRvbiwKICAgICAg
ICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNSZXdpbmRCdXR0b24sCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCmluZGV4IDhhNzg2ODUuLmU1YTc2MzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3Bw
CkBAIC0yNTA3LDcgKzI1MDcsMTAgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpTZWxlY3RvckNo
ZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbCwgRWxlbWUKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b01lZGlhQ29udHJvbHNUaW1lbGluZUNvbnRhaW5lcjoKICAgICAgICAgICAgICAgICBkeW5hbWlj
UHNldWRvID0gTUVESUFfQ09OVFJPTFNfVElNRUxJTkVfQ09OVEFJTkVSOwotICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXJDb250
YWluZXI6CisgICAgICAgICAgICAgICAgZHluYW1pY1BzZXVkbyA9IE1FRElBX0NPTlRST0xTX1ZP
TFVNRV9TTElERVJfQ09OVEFJTkVSOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTWVkaWFDb250cm9sc0N1cnJlbnRUaW1l
RGlzcGxheToKICAgICAgICAgICAgICAgICBkeW5hbWljUHNldWRvID0gTUVESUFfQ09OVFJPTFNf
Q1VSUkVOVF9USU1FX0RJU1BMQVk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0y
NTE3LDYgKzI1MjAsOSBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6OlNlbGVjdG9yQ2hlY2tlcjo6
Y2hlY2tPbmVTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsLCBFbGVtZQogICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvTWVkaWFDb250cm9sc1RpbWVsaW5lOgogICAgICAgICAgICAg
ICAgIGR5bmFtaWNQc2V1ZG8gPSBNRURJQV9DT05UUk9MU19USU1FTElORTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb01l
ZGlhQ29udHJvbHNWb2x1bWVTbGlkZXI6CisgICAgICAgICAgICAgICAgZHluYW1pY1BzZXVkbyA9
IE1FRElBX0NPTlRST0xTX1ZPTFVNRV9TTElERVI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzU2Vl
a0JhY2tCdXR0b246CiAgICAgICAgICAgICAgICAgZHluYW1pY1BzZXVkbyA9IE1FRElBX0NPTlRS
T0xTX1NFRUtfQkFDS19CVVRUT047CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgppbmRleCAwMTNiNjcxLi44MjRiYTVkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KQEAgLTUxMiw2ICs1MTIsOSBAQCBtZWRpYS1yZXdpbmQtYnV0dG9uCiBtZWRpYS1y
ZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uCiBtZWRpYS1zbGlkZXIKIG1lZGlhLXNsaWRlcnRodW1i
CittZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lcgorbWVkaWEtdm9sdW1lLXNsaWRlcgorbWVk
aWEtdm9sdW1lLXNsaWRlcnRodW1iCiBtZWRpYS1jb250cm9scy1iYWNrZ3JvdW5kCiBtZWRpYS1j
dXJyZW50LXRpbWUtZGlzcGxheQogbWVkaWEtdGltZS1yZW1haW5pbmctZGlzcGxheQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MgYi9XZWJDb3JlL2Nzcy9tZWRpYUNv
bnRyb2xzLmNzcwppbmRleCBmOTY5NGY4Li5kMGVjOTBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9tZWRpYUNvbnRyb2xzLmNzcworKysgYi9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwpA
QCAtODgsNiArODgsMTQgQEAgYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUs
IHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIHsKICAgICBwYWRkaW5nOiAw
cHggMnB4OwogfQogCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVy
LWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1j
b250YWluZXIgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZv
bHVtZS1zbGlkZXIgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKIGF1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXNlZWstYmFjay1idXR0b24gewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2Vl
ay1iYWNrLWJ1dHRvbjsKICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVz
LmgKaW5kZXggYjc2MzY3NS4uM2FiNDFkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9U
aGVtZVR5cGVzLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKQEAgLTQ5LDkg
KzQ5LDggQEAgZW51bSBDb250cm9sUGFydCB7CiAgICAgQnV0dG9uQmV2ZWxQYXJ0LCBEZWZhdWx0
QnV0dG9uUGFydCwgTGlzdGJveFBhcnQsIExpc3RJdGVtUGFydCwgCiAgICAgTWVkaWFGdWxsc2Ny
ZWVuQnV0dG9uUGFydCwgTWVkaWFNdXRlQnV0dG9uUGFydCwgTWVkaWFQbGF5QnV0dG9uUGFydCwg
TWVkaWFTZWVrQmFja0J1dHRvblBhcnQsIAogICAgIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0
LCBNZWRpYVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQs
Ci0gICAgTWVkaWFTbGlkZXJQYXJ0LAotICAgIE1lZGlhU2xpZGVyVGh1bWJQYXJ0LCBNZWRpYUNv
bnRyb2xzQmFja2dyb3VuZFBhcnQsCi0gICAgTWVkaWFDdXJyZW50VGltZVBhcnQsIE1lZGlhVGlt
ZVJlbWFpbmluZ1BhcnQsCisgICAgTWVkaWFTbGlkZXJQYXJ0LCBNZWRpYVNsaWRlclRodW1iUGFy
dCwgTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclBhcnQs
IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0LAorICAgIE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5k
UGFydCwgTWVkaWFDdXJyZW50VGltZVBhcnQsIE1lZGlhVGltZVJlbWFpbmluZ1BhcnQsCiAgICAg
TWVudWxpc3RQYXJ0LCBNZW51bGlzdEJ1dHRvblBhcnQsIE1lbnVsaXN0VGV4dFBhcnQsIE1lbnVs
aXN0VGV4dEZpZWxkUGFydCwKICAgICBTbGlkZXJIb3Jpem9udGFsUGFydCwgU2xpZGVyVmVydGlj
YWxQYXJ0LCBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0LAogICAgIFNsaWRlclRodW1iVmVydGlj
YWxQYXJ0LCBDYXJldFBhcnQsIFNlYXJjaEZpZWxkUGFydCwgU2VhcmNoRmllbGREZWNvcmF0aW9u
UGFydCwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRz
LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCAw
ZTU4ODRiLi4zN2NlOTYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVu
dHMuY3BwCkBAIC0xODMsNyArMTgzLDQ5IEBAIGJvb2wgTWVkaWFDb250cm9sVGltZWxpbmVDb250
YWluZXJFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICBy
ZXR1cm4gIWlzbmFuKGR1cmF0aW9uKSAmJiAhaXNpbmYoZHVyYXRpb24pOwogfQogCi0gICAgCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK01lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ckNvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1l
bnQoRG9jdW1lbnQqIGRvYywgSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCkKKyAgICA6IE1lZGlh
Q29udHJvbEVsZW1lbnQoZG9jLCBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSX0NPTlRBSU5F
UiwgZWxlbWVudCkKKyAgICAsIG1faXNWaXNpYmxlKGZhbHNlKQorICAgICwgbV94KDApCisgICAg
LCBtX3koMCkKK3sKK30KKworUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KCkKK3sKKyAgICBSZWZQ
dHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gTWVkaWFDb250cm9sRWxlbWVudDo6c3R5bGVGb3JFbGVt
ZW50KCk7CisgICAgc3R5bGUtPnNldFBvc2l0aW9uKEFic29sdXRlUG9zaXRpb24pOworICAgIHN0
eWxlLT5zZXRMZWZ0KExlbmd0aChtX3gsIEZpeGVkKSk7CisgICAgc3R5bGUtPnNldFRvcChMZW5n
dGgobV95LCBGaXhlZCkpOworICAgIHN0eWxlLT5zZXREaXNwbGF5KG1faXNWaXNpYmxlID8gQkxP
Q0sgOiBOT05FKTsKKyAgICByZXR1cm4gc3R5bGU7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2V0VmlzaWJsZShib29sIHZpc2libGUpCit7Cisg
ICAgaWYgKHZpc2libGUgPT0gbV9pc1Zpc2libGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX2lz
VmlzaWJsZSA9IHZpc2libGU7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29u
dGFpbmVyRWxlbWVudDo6c2V0UG9zaXRpb24oaW50IHgsIGludCB5KQoreworICAgIGlmICh4ID09
IG1feCAmJiB5ID09IG1feSkKKyAgICAgICAgcmV0dXJuOworICAgIG1feCA9IHg7CisgICAgbV95
ID0geTsKK30KKworYm9vbCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50
OjpoaXRUZXN0KGNvbnN0IEludFBvaW50JiBhYnNQb2ludCkKK3sKKyAgICBpZiAocmVuZGVyZXIo
KSAmJiByZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkpCisgICAgICAgIHJldHVy
biByZW5kZXJlcigpLT50aGVtZSgpLT5oaXRUZXN0TWVkaWFDb250cm9sUGFydChyZW5kZXJlcigp
LCBhYnNQb2ludCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAogTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgSFRNTE1lZGlh
RWxlbWVudCogZWxlbWVudCkKQEAgLTUyOCw2ICs1NzAsMzMgQEAgdm9pZCBNZWRpYUNvbnRyb2xU
aW1lbGluZUVsZW1lbnQ6OnVwZGF0ZShib29sIHVwZGF0ZUR1cmF0aW9uKQogCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK01lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6
Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1M
TWVkaWFFbGVtZW50KiBlbGVtZW50KQorICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRv
Y3VtZW50LCBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSLCAicmFuZ2UiLCBlbGVtZW50LCBN
ZWRpYVZvbHVtZVNsaWRlcikKK3sKKyAgICBzZXRBdHRyaWJ1dGUobWF4QXR0ciwgIjEiKTsKK30K
Kwordm9pZCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50KiBldmVudCkKK3sKKyAgICAvLyBMZWZ0IGJ1dHRvbiBpcyAwLiBSZWplY3RzIG1v
dXNlIGV2ZW50cyBub3QgZnJvbSBsZWZ0IGJ1dHRvbi4KKyAgICBpZiAoZXZlbnQtPmlzTW91c2VF
dmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoZXZlbnQpOworCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
Lm1vdXNlb3ZlckV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0
RXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQpCisg
ICAgICAgIHJldHVybjsKKworICAgIGZsb2F0IHZvbHVtZSA9IG5hcnJvd1ByZWNpc2lvblRvRmxv
YXQodmFsdWUoKS50b0RvdWJsZSgpKTsKKyAgICBpZiAodm9sdW1lICE9IG1fbWVkaWFFbGVtZW50
LT52b2x1bWUoKSkgeworICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAgICAgbV9t
ZWRpYUVsZW1lbnQtPnNldFZvbHVtZSh2b2x1bWUsIGVjKTsKKyAgICAgICAgQVNTRVJUKCFlYyk7
CisgICAgfQorfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9u
RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQpCiAg
ICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoZG9jdW1lbnQsIE1FRElBX0NPTlRST0xTX0ZV
TExTQ1JFRU5fQlVUVE9OLCAiYnV0dG9uIiwgZWxlbWVudCwgTWVkaWFGdWxsc2NyZWVuQnV0dG9u
KQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggOTUzNDhi
Mi4uZDljZGUxZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxl
bWVudHMuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBA
IC01NywxMCArNTcsMTMgQEAgZW51bSBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSB7CiAgICAgTWVk
aWFVbk11dGVCdXR0b24sCiAgICAgTWVkaWFQYXVzZUJ1dHRvbiwKICAgICBNZWRpYVRpbWVsaW5l
Q29udGFpbmVyLAotICAgIE1lZGlhQ3VycmVudFRpbWVEaXNwbGF5LCAKKyAgICBNZWRpYUN1cnJl
bnRUaW1lRGlzcGxheSwKICAgICBNZWRpYVRpbWVSZW1haW5pbmdEaXNwbGF5LAogICAgIE1lZGlh
U3RhdHVzRGlzcGxheSwKLSAgICBNZWRpYUNvbnRyb2xzUGFuZWwKKyAgICBNZWRpYUNvbnRyb2xz
UGFuZWwsCisgICAgTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXIsCisgICAgTWVkaWFWb2x1bWVT
bGlkZXIsCisgICAgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYgogfTsKIAogY2xhc3MgTWVkaWFDb250
cm9sU2hhZG93Um9vdEVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewpAQCAtMTA0LDYg
KzEwNywyMiBAQCBwdWJsaWM6CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAor
Y2xhc3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudCA6IHB1YmxpYyBN
ZWRpYUNvbnRyb2xFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJDb250YWluZXJFbGVtZW50KERvY3VtZW50KiwgSFRNTE1lZGlhRWxlbWVudCopOworICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JFbGVtZW50KCk7CisgICAgdm9p
ZCBzZXRWaXNpYmxlKGJvb2wpOworICAgIGJvb2wgaXNWaXNpYmxlKCkgeyByZXR1cm4gbV9pc1Zp
c2libGU7IH0KKyAgICB2b2lkIHNldFBvc2l0aW9uKGludCB4LCBpbnQgeSk7CisgICAgYm9vbCBo
aXRUZXN0KGNvbnN0IEludFBvaW50JiBhYnNQb2ludCk7CisKK3ByaXZhdGU6CisgICAgYm9vbCBt
X2lzVmlzaWJsZTsKKyAgICBpbnQgbV94LCBtX3k7Cit9OworCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKIGNsYXNzIE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50IDog
cHVibGljIE1lZGlhQ29udHJvbEVsZW1lbnQgewogcHVibGljOgogICAgIE1lZGlhQ29udHJvbFN0
YXR1c0Rpc3BsYXlFbGVtZW50KERvY3VtZW50KiwgSFRNTE1lZGlhRWxlbWVudCopOwpAQCAtMjA3
LDYgKzIyNiwxNCBAQCBwdWJsaWM6CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAorY2xhc3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNv
bnRyb2xJbnB1dEVsZW1lbnQgeworcHVibGljOgorICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ckVsZW1lbnQoRG9jdW1lbnQqLCBIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lk
IGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKK307CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKwogY2xhc3MgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQg
OiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudChEb2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQq
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcAppbmRleCBiODdlOTlkLi43OGFlMDZhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKICNpbmNsdWRlICJN
b3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkBAIC0xMzIsNiArMTMz
LDEwIEBAIHZvaWQgUmVuZGVyTWVkaWE6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBk
aWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5CiAgICAgICAgICAgICBtX2N1cnJlbnRUaW1l
RGlzcGxheS0+dXBkYXRlU3R5bGUoKTsKICAgICAgICAgaWYgKG1fdGltZVJlbWFpbmluZ0Rpc3Bs
YXkpCiAgICAgICAgICAgICBtX3RpbWVSZW1haW5pbmdEaXNwbGF5LT51cGRhdGVTdHlsZSgpOwor
ICAgICAgICBpZiAobV92b2x1bWVTbGlkZXJDb250YWluZXIpCisgICAgICAgICAgICBtX3ZvbHVt
ZVNsaWRlckNvbnRhaW5lci0+dXBkYXRlU3R5bGUoKTsKKyAgICAgICAgaWYgKG1fdm9sdW1lU2xp
ZGVyKQorICAgICAgICAgICAgbV92b2x1bWVTbGlkZXItPnVwZGF0ZVN0eWxlKCk7CiAgICAgfQog
fQogCkBAIC0yNDAsNiArMjQ1LDIxIEBAIHZvaWQgUmVuZGVyTWVkaWE6OmNyZWF0ZVRpbWVsaW5l
KCkKICAgICBtX3RpbWVsaW5lLT5hdHRhY2hUb1BhcmVudChtX3RpbWVsaW5lQ29udGFpbmVyLmdl
dCgpKTsKIH0KIAordm9pZCBSZW5kZXJNZWRpYTo6Y3JlYXRlVm9sdW1lU2xpZGVyQ29udGFpbmVy
KCkKK3sKKyAgICBBU1NFUlQoIW1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKTsKKyAgICBtX3ZvbHVt
ZVNsaWRlckNvbnRhaW5lciA9IG5ldyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJF
bGVtZW50KGRvY3VtZW50KCksIG1lZGlhRWxlbWVudCgpKTsKKyAgICBtX3ZvbHVtZVNsaWRlckNv
bnRhaW5lci0+YXR0YWNoVG9QYXJlbnQobV9wYW5lbC5nZXQoKSk7Cit9CisKK3ZvaWQgUmVuZGVy
TWVkaWE6OmNyZWF0ZVZvbHVtZVNsaWRlcigpCit7CisgICAgQVNTRVJUKCFtX3ZvbHVtZVNsaWRl
cik7CisgICAgbV92b2x1bWVTbGlkZXIgPSBuZXcgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxl
bWVudChkb2N1bWVudCgpLCBtZWRpYUVsZW1lbnQoKSk7CisgICAgbV92b2x1bWVTbGlkZXItPnNl
dEF0dHJpYnV0ZShwcmVjaXNpb25BdHRyLCAiZmxvYXQiKTsKKyAgICBtX3ZvbHVtZVNsaWRlci0+
YXR0YWNoVG9QYXJlbnQobV92b2x1bWVTbGlkZXJDb250YWluZXIuZ2V0KCkpOworfQorCiB2b2lk
IFJlbmRlck1lZGlhOjpjcmVhdGVDdXJyZW50VGltZURpc3BsYXkoKQogewogICAgIEFTU0VSVCgh
bV9jdXJyZW50VGltZURpc3BsYXkpOwpAQCAtMjg1LDYgKzMwNSw4IEBAIHZvaWQgUmVuZGVyTWVk
aWE6OnVwZGF0ZUNvbnRyb2xzKCkKICAgICAgICAgICAgIG1fY3VycmVudFRpbWVEaXNwbGF5ID0g
MDsKICAgICAgICAgICAgIG1fdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSAwOwogICAgICAgICAgICAg
bV9mdWxsc2NyZWVuQnV0dG9uID0gMDsKKyAgICAgICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFp
bmVyID0gMDsKKyAgICAgICAgICAgIG1fdm9sdW1lU2xpZGVyID0gMDsKICAgICAgICAgICAgIG1f
Y29udHJvbHNTaGFkb3dSb290ID0gMDsKICAgICAgICAgfQogICAgICAgICBtX29wYWNpdHlBbmlt
YXRpb25UbyA9IDEuMGY7CkBAIC0zMDMsOSArMzI1LDEyIEBAIHZvaWQgUmVuZGVyTWVkaWE6OnVw
ZGF0ZUNvbnRyb2xzKCkKICAgICAgICAgICAgIGNyZWF0ZVJldHVyblRvUmVhbHRpbWVCdXR0b24o
KTsKICAgICAgICAgICAgIGNyZWF0ZVN0YXR1c0Rpc3BsYXkoKTsKICAgICAgICAgICAgIGNyZWF0
ZVRpbWVsaW5lQ29udGFpbmVyKCk7CisgICAgICAgICAgICBjcmVhdGVWb2x1bWVTbGlkZXJDb250
YWluZXIoKTsKICAgICAgICAgICAgIGNyZWF0ZVNlZWtCYWNrQnV0dG9uKCk7CiAgICAgICAgICAg
ICBjcmVhdGVTZWVrRm9yd2FyZEJ1dHRvbigpOwogICAgICAgICAgICAgY3JlYXRlRnVsbHNjcmVl
bkJ1dHRvbigpOworICAgICAgICAgICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKQorICAg
ICAgICAgICAgICAgIGNyZWF0ZVZvbHVtZVNsaWRlcigpOwogICAgICAgICAgICAgaWYgKG1fdGlt
ZWxpbmVDb250YWluZXIpIHsKICAgICAgICAgICAgICAgICBjcmVhdGVDdXJyZW50VGltZURpc3Bs
YXkoKTsKICAgICAgICAgICAgICAgICBjcmVhdGVUaW1lbGluZSgpOwpAQCAtMzM2LDYgKzM2MSw4
IEBAIHZvaWQgUmVuZGVyTWVkaWE6OnVwZGF0ZUNvbnRyb2xzKCkKICAgICAgICAgbV9wbGF5QnV0
dG9uLT51cGRhdGUoKTsKICAgICBpZiAobV90aW1lbGluZUNvbnRhaW5lcikKICAgICAgICAgbV90
aW1lbGluZUNvbnRhaW5lci0+dXBkYXRlKCk7CisgICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29udGFp
bmVyKQorICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+dXBkYXRlKCk7CiAgICAgaWYg
KG1fdGltZWxpbmUpCiAgICAgICAgIG1fdGltZWxpbmUtPnVwZGF0ZSgpOwogICAgIGlmIChtX2N1
cnJlbnRUaW1lRGlzcGxheSkKQEAgLTM1NCw2ICszODEsOCBAQCB2b2lkIFJlbmRlck1lZGlhOjp1
cGRhdGVDb250cm9scygpCiAgICAgICAgIG1fc3RhdHVzRGlzcGxheS0+dXBkYXRlKCk7CiAgICAg
aWYgKG1fZnVsbHNjcmVlbkJ1dHRvbikKICAgICAgICAgbV9mdWxsc2NyZWVuQnV0dG9uLT51cGRh
dGUoKTsKKyAgICBpZiAobV92b2x1bWVTbGlkZXIpCisgICAgICAgIG1fdm9sdW1lU2xpZGVyLT51
cGRhdGUoKTsKIAogICAgIHVwZGF0ZVRpbWVEaXNwbGF5KCk7CiAgICAgdXBkYXRlQ29udHJvbFZp
c2liaWxpdHkoKTsKQEAgLTQ2MywxMyArNDkyLDUzIEBAIHZvaWQgUmVuZGVyTWVkaWE6Om9wYWNp
dHlBbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFJlbmRlck1lZGlhPiopCiAgICAgY2hhbmdlT3Bh
Y2l0eShtX3BhbmVsLmdldCgpLCBvcGFjaXR5KTsKIH0KIAordm9pZCBSZW5kZXJNZWRpYTo6dXBk
YXRlVm9sdW1lU2xpZGVyQ29udGFpbmVyKGJvb2wgdmlzaWJsZSkKK3sKKyAgICBpZiAoIW1lZGlh
RWxlbWVudCgpLT5oYXNBdWRpbygpIHx8ICFtX3ZvbHVtZVNsaWRlckNvbnRhaW5lciB8fCAhbV92
b2x1bWVTbGlkZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh2aXNpYmxlICYmICFtX3Zv
bHVtZVNsaWRlckNvbnRhaW5lci0+aXNWaXNpYmxlKCkpIHsKKyAgICAgICAgaWYgKCFtX211dGVC
dXR0b24gfHwgIW1fbXV0ZUJ1dHRvbi0+cmVuZGVyZXIoKSB8fCAhbV9tdXRlQnV0dG9uLT5yZW5k
ZXJCb3goKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBSZWZQdHI8UmVuZGVyU3R5
bGU+IHMgPSBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+c3R5bGVGb3JFbGVtZW50KCk7CisgICAg
ICAgIGludCBoZWlnaHQgPSBzLT5oZWlnaHQoKS5pc1BlcmNlbnQoKSA/IDAgOiBzLT5oZWlnaHQo
KS52YWx1ZSgpOworICAgICAgICBpbnQgeCA9IG1fbXV0ZUJ1dHRvbi0+cmVuZGVyQm94KCktPm9m
ZnNldExlZnQoKTsKKyAgICAgICAgaW50IHkgPSBtX211dGVCdXR0b24tPnJlbmRlckJveCgpLT5v
ZmZzZXRUb3AoKSAtIGhlaWdodDsKKyAgICAgICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG1fbXV0
ZUJ1dHRvbi0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoeCwgeSksIHRy
dWUsIHRydWUpOworICAgICAgICBpZiAoYWJzUG9pbnQueSgpIDwgMCkKKyAgICAgICAgICAgIHkg
PSBtX211dGVCdXR0b24tPnJlbmRlckJveCgpLT5vZmZzZXRUb3AoKSArIG1fbXV0ZUJ1dHRvbi0+
cmVuZGVyQm94KCktPmhlaWdodCgpOworICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+
c2V0VmlzaWJsZSh0cnVlKTsKKyAgICAgICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPnNldFBv
c2l0aW9uKHgsIHkpOworICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+dXBkYXRlKCk7
CisgICAgICAgIG1fdm9sdW1lU2xpZGVyLT51cGRhdGUoKTsKKyAgICB9IGVsc2UgaWYgKCF2aXNp
YmxlICYmIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5pc1Zpc2libGUoKSkgeworICAgICAgICBt
X3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+c2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgIG1fdm9s
dW1lU2xpZGVyQ29udGFpbmVyLT51cGRhdGVTdHlsZSgpOworICAgIH0KK30KKwogdm9pZCBSZW5k
ZXJNZWRpYTo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBldmVudCkKIHsKICAgICBpZiAoZXZlbnQtPmlz
TW91c2VFdmVudCgpICYmIG1fY29udHJvbHNTaGFkb3dSb290KSB7CiAgICAgICAgIE1vdXNlRXZl
bnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpOwogICAgICAg
ICBJbnRQb2ludCBwb2ludChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOwotICAgICAg
ICBpZiAobV9tdXRlQnV0dG9uICYmIG1fbXV0ZUJ1dHRvbi0+aGl0VGVzdChwb2ludCkpCisgICAg
ICAgIGJvb2wgc2hvd1ZvbHVtZVNsaWRlciA9IGZhbHNlOworICAgICAgICBpZiAobV9tdXRlQnV0
dG9uICYmIG1fbXV0ZUJ1dHRvbi0+aGl0VGVzdChwb2ludCkpIHsKICAgICAgICAgICAgIG1fbXV0
ZUJ1dHRvbi0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CisgICAgICAgICAgICBpZiAoZXZl
bnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCkKKyAgICAgICAgICAgICAg
ICBzaG93Vm9sdW1lU2xpZGVyID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX3Zv
bHVtZVNsaWRlckNvbnRhaW5lciAmJiBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGl0VGVzdChw
b2ludCkpCisgICAgICAgICAgICBzaG93Vm9sdW1lU2xpZGVyID0gdHJ1ZTsKKworICAgICAgICBp
ZiAobV92b2x1bWVTbGlkZXIgJiYgbV92b2x1bWVTbGlkZXItPmhpdFRlc3QocG9pbnQpKSB7Cisg
ICAgICAgICAgICBtX3ZvbHVtZVNsaWRlci0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7Cisg
ICAgICAgICAgICBzaG93Vm9sdW1lU2xpZGVyID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAg
IHVwZGF0ZVZvbHVtZVNsaWRlckNvbnRhaW5lcihzaG93Vm9sdW1lU2xpZGVyKTsKIAogICAgICAg
ICBpZiAobV9wbGF5QnV0dG9uICYmIG1fcGxheUJ1dHRvbi0+aGl0VGVzdChwb2ludCkpCiAgICAg
ICAgICAgICBtX3BsYXlCdXR0b24tPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lZGlhLmgKaW5kZXggNTY5N2JkYS4uMmNlODBjNyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZWRpYS5oCkBAIC00MSwxMCArNDEsMTIgQEAgY2xhc3MgTWVkaWFDb250cm9sU2Vla0J1dHRvbkVs
ZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OwogY2xhc3MgTWVk
aWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQ7CitjbGFzcyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50
OwogY2xhc3MgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBNZWRp
YUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xTdGF0dXNEaXNw
bGF5RWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDsK
K2NsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ7CiBjbGFzcyBN
ZWRpYUNvbnRyb2xFbGVtZW50OwogY2xhc3MgTWVkaWFQbGF5ZXI7CiAKQEAgLTk5LDYgKzEwMSw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVTdGF0dXNEaXNwbGF5KCk7CiAgICAgdm9pZCBj
cmVhdGVUaW1lbGluZUNvbnRhaW5lcigpOwogICAgIHZvaWQgY3JlYXRlVGltZWxpbmUoKTsKKyAg
ICB2b2lkIGNyZWF0ZVZvbHVtZVNsaWRlckNvbnRhaW5lcigpOworICAgIHZvaWQgY3JlYXRlVm9s
dW1lU2xpZGVyKCk7CiAgICAgdm9pZCBjcmVhdGVDdXJyZW50VGltZURpc3BsYXkoKTsKICAgICB2
b2lkIGNyZWF0ZVRpbWVSZW1haW5pbmdEaXNwbGF5KCk7CiAgICAgdm9pZCBjcmVhdGVGdWxsc2Ny
ZWVuQnV0dG9uKCk7CkBAIC0xMDksNiArMTEzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNoYW5n
ZU9wYWNpdHkoSFRNTEVsZW1lbnQqLCBmbG9hdCBvcGFjaXR5KTsKICAgICB2b2lkIG9wYWNpdHlB
bmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFJlbmRlck1lZGlhPiopOwogCisgICAgdm9pZCB1cGRh
dGVWb2x1bWVTbGlkZXJDb250YWluZXIoYm9vbCB2aXNpYmxlKTsKKwogICAgIHZpcnR1YWwgdm9p
ZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRT
dHlsZSk7CiAKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1fY29udHJvbHNTaGFkb3dSb290OwpA
QCAtMTIwLDggKzEyNiwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50PiBtX3Jld2luZEJ1dHRvbjsKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
UmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IG1fcmV0dXJuVG9SZWFsdGltZUJ1dHRvbjsK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiBtX3RpbWVsaW5lOworICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50PiBtX3ZvbHVtZVNsaWRlcjsK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IG1fZnVsbHNj
cmVlbkJ1dHRvbjsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVt
ZW50PiBtX3RpbWVsaW5lQ29udGFpbmVyOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJDb250YWluZXJFbGVtZW50PiBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcjsKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50PiBtX2N1cnJlbnRUaW1lRGlzcGxheTsK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50PiBtX3RpbWVSZW1haW5p
bmdEaXNwbGF5OwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4g
bV9zdGF0dXNEaXNwbGF5OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVk
aWFDb250cm9scy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNw
cAppbmRleCAwNmQ5MDFhLi4zYzZjNTZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRp
YUNvbnRyb2xzLmNwcApAQCAtMTI4LDYgKzEyOCwxOCBAQCBib29sIFJlbmRlck1lZGlhQ29udHJv
bHM6OnBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUgcGFydCwg
UgogICAgICAgICBjYXNlIE1lZGlhU2xpZGVyVGh1bWI6CiAgICAgICAgICAgICBwYWludFRoZW1l
UGFydChTYWZhcmlUaGVtZTo6TWVkaWFTbGlkZXJUaHVtYlBhcnQsIHBhaW50SW5mby5jb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKSwgciwgTlNSZWd1bGFyQ29udHJvbFNpemUsIGRldGVybWluZVN0
YXRlKG8pKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xp
ZGVyQ29udGFpbmVyOgorICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB2b2x1bWUgc2xp
ZGVyLgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlcjoKKyAgICAgICAgICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgdm9sdW1lIHNsaWRlci4KKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJU
aHVtYjoKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdm9sdW1lIHNsaWRlci4KKyAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgTWVkaWFUaW1lbGluZUNvbnRhaW5lcjoKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNw
cAppbmRleCA0ZDE0MWI3Li4yNDdhY2RhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbGlkZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAK
QEAgLTI4MSw2ICsyODEsOCBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBSZW5kZXJTbGlkZXI6
OmNyZWF0ZVRodW1iU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudAogICAgICAgICBzdHls
ZS0+c2V0QXBwZWFyYW5jZShTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KTsKICAgICBlbHNlIGlm
IChwYXJlbnRTdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyUGFydCkKICAgICAgICAg
c3R5bGUtPnNldEFwcGVhcmFuY2UoTWVkaWFTbGlkZXJUaHVtYlBhcnQpOworICAgIGVsc2UgaWYg
KHBhcmVudFN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KQorICAg
ICAgICBzdHlsZS0+c2V0QXBwZWFyYW5jZShNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCk7CiAK
ICAgICByZXR1cm4gc3R5bGUucmVsZWFzZSgpOwogfQpAQCAtMjk4LDcgKzMwMCw3IEBAIEludFJl
Y3QgUmVuZGVyU2xpZGVyOjp0aHVtYlJlY3QoKQogCiAgICAgZG91YmxlIGZyYWN0aW9uID0gc2xp
ZGVyUG9zaXRpb24oc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSkpOwogICAg
IEludFJlY3QgY29udGVudFJlY3QgPSBjb250ZW50Qm94UmVjdCgpOwotICAgIGlmIChzdHlsZSgp
LT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0KSB7CisgICAgaWYgKHN0eWxlKCkt
PmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQgfHwgc3R5bGUoKS0+YXBwZWFyYW5j
ZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCkgewogICAgICAgICB0aHVtYlJlY3Quc2V0WChj
b250ZW50UmVjdC54KCkgKyAoY29udGVudFJlY3Qud2lkdGgoKSAtIHRodW1iUmVjdC53aWR0aCgp
KSAvIDIpOwogICAgICAgICB0aHVtYlJlY3Quc2V0WShjb250ZW50UmVjdC55KCkgKyBzdGF0aWNf
Y2FzdDxpbnQ+KG5leHRhZnRlcigoY29udGVudFJlY3QuaGVpZ2h0KCkgLSB0aHVtYlJlY3QuaGVp
Z2h0KCkpICsgMSwgMCkgKiAoMSAtIGZyYWN0aW9uKSkpOwogICAgIH0gZWxzZSB7CkBAIC0zOTEs
NyArMzkzLDcgQEAgYm9vbCBSZW5kZXJTbGlkZXI6Om1vdXNlRXZlbnRJc0luVGh1bWIoTW91c2VF
dmVudCogZXZ0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBFTkFCTEUoVklERU8pCi0g
ICAgaWYgKHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVNsaWRlclBhcnQpIHsKKyAgICBp
ZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyUGFydCB8fCBzdHlsZSgpLT5h
cHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KSB7CiAgICAgICAgIE1lZGlhQ29u
dHJvbElucHV0RWxlbWVudCAqc2xpZGVyVGh1bWIgPSBzdGF0aWNfY2FzdDxNZWRpYUNvbnRyb2xJ
bnB1dEVsZW1lbnQqPihtX3RodW1iLT5yZW5kZXJlcigpLT5ub2RlKCkpOwogICAgICAgICByZXR1
cm4gc2xpZGVyVGh1bWItPmhpdFRlc3QoZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOwogICAgIH0K
QEAgLTQyMyw3ICs0MjUsNyBAQCB2b2lkIFJlbmRlclNsaWRlcjo6c2V0VmFsdWVGb3JQb3NpdGlv
bihpbnQgcG9zaXRpb24pCiAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXcgdmFsdWUgYmFzZWQgb24g
dGhlIHBvc2l0aW9uLCBhbmQgc2VuZCBpdCB0byB0aGUgZWxlbWVudC4KICAgICBTbGlkZXJSYW5n
ZSByYW5nZShlbGVtZW50KTsKICAgICBkb3VibGUgZnJhY3Rpb24gPSBzdGF0aWNfY2FzdDxkb3Vi
bGU+KHBvc2l0aW9uKSAvIHRyYWNrU2l6ZSgpOwotICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNl
KCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0KQorICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkg
PT0gU2xpZGVyVmVydGljYWxQYXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZv
bHVtZVNsaWRlclBhcnQpCiAgICAgICAgIGZyYWN0aW9uID0gMSAtIGZyYWN0aW9uOwogICAgIGRv
dWJsZSB2YWx1ZSA9IHJhbmdlLmNsYW1wVmFsdWUocmFuZ2UudmFsdWVGcm9tUHJvcG9ydGlvbihm
cmFjdGlvbikpOwogICAgIGVsZW1lbnQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKFN0cmluZzo6bnVt
YmVyKHZhbHVlKSk7CkBAIC00NDQsNyArNDQ2LDcgQEAgaW50IFJlbmRlclNsaWRlcjo6cG9zaXRp
b25Gb3JPZmZzZXQoY29uc3QgSW50UG9pbnQmIHApCiAgICAgICAgIHJldHVybiAwOwogCiAgICAg
aW50IHBvc2l0aW9uOwotICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVy
dGljYWxQYXJ0KQorICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGlj
YWxQYXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQp
CiAgICAgICAgIHBvc2l0aW9uID0gcC55KCkgLSBtX3RodW1iLT5yZW5kZXJCb3goKS0+aGVpZ2h0
KCkgLyAyOwogICAgIGVsc2UKICAgICAgICAgcG9zaXRpb24gPSBwLngoKSAtIG1fdGh1bWItPnJl
bmRlckJveCgpLT53aWR0aCgpIC8gMjsKQEAgLTQ1Nyw3ICs0NTksNyBAQCBpbnQgUmVuZGVyU2xp
ZGVyOjpjdXJyZW50UG9zaXRpb24oKQogICAgIEFTU0VSVChtX3RodW1iKTsKICAgICBBU1NFUlQo
bV90aHVtYi0+cmVuZGVyZXIoKSk7CiAKLSAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09
IFNsaWRlclZlcnRpY2FsUGFydCkKKyAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNs
aWRlclZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVT
bGlkZXJQYXJ0KQogICAgICAgICByZXR1cm4gdG9SZW5kZXJCb3gobV90aHVtYi0+cmVuZGVyZXIo
KSktPnkoKSAtIGNvbnRlbnRCb3hSZWN0KCkueSgpOwogICAgIHJldHVybiB0b1JlbmRlckJveCht
X3RodW1iLT5yZW5kZXJlcigpKS0+eCgpIC0gY29udGVudEJveFJlY3QoKS54KCk7CiB9CkBAIC00
NjcsNyArNDY5LDcgQEAgaW50IFJlbmRlclNsaWRlcjo6dHJhY2tTaXplKCkKICAgICBBU1NFUlQo
bV90aHVtYik7CiAgICAgQVNTRVJUKG1fdGh1bWItPnJlbmRlcmVyKCkpOwogCi0gICAgaWYgKHN0
eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQpCisgICAgaWYgKHN0eWxl
KCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQgfHwgc3R5bGUoKS0+YXBwZWFy
YW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCkKICAgICAgICAgcmV0dXJuIGNvbnRlbnRI
ZWlnaHQoKSAtIG1fdGh1bWItPnJlbmRlckJveCgpLT5oZWlnaHQoKTsKICAgICByZXR1cm4gY29u
dGVudFdpZHRoKCkgLSBtX3RodW1iLT5yZW5kZXJCb3goKS0+d2lkdGgoKTsKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmNwcAppbmRleCBkNDg2NTJmLi43YjRkZmUzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwCkBAIC0xODMsNiArMTgzLDcgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0
U3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWwK
ICAgICAgICAgY2FzZSBNZW51bGlzdEJ1dHRvblBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gYWRq
dXN0TWVudUxpc3RCdXR0b25TdHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOwogICAgICAgICBjYXNl
IE1lZGlhU2xpZGVyUGFydDoKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6CiAg
ICAgICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVyVmVy
dGljYWxQYXJ0OgogICAgICAgICAgICAgcmV0dXJuIGFkanVzdFNsaWRlclRyYWNrU3R5bGUoc2Vs
ZWN0b3IsIHN0eWxlLCBlKTsKQEAgLTI3OCw2ICsyNzksMTQgQEAgYm9vbCBSZW5kZXJUaGVtZTo6
cGFpbnQoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgcGFp
bnRJbmYKICAgICAgICAgICAgIGlmIChvLT5wYXJlbnQoKS0+aXNTbGlkZXIoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVNsaWRlclRodW1iKG8sIHBhaW50SW5mbywgcik7CiAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
clBhcnQ6CisgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
cihvLCBwYWludEluZm8sIHIpOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFydDoK
KyAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2sobywgcGFpbnRJ
bmZvLCByKTsKKyAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICAg
ICAgICAgIGlmIChvLT5wYXJlbnQoKS0+aXNTbGlkZXIoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKG8sIHBhaW50SW5mbywgcik7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0OgogICAgICAg
ICAgICAgcmV0dXJuIHBhaW50TWVkaWFUaW1lUmVtYWluaW5nKG8sIHBhaW50SW5mbywgcik7CiAg
ICAgICAgIGNhc2UgTWVkaWFDdXJyZW50VGltZVBhcnQ6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApp
bmRleCA3OTVkYWEyLi5jMDBjMmViIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTI0NCw2
ICsyNDQsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFTZWVrRm9y
d2FyZEJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50
TWVkaWFTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29s
IHBhaW50TWVkaWFTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6
OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXIoUmVuZGVyT2JqZWN0KiwgY29u
c3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soUmVuZGVy
T2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVy
VGh1bWIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlh
UmV3aW5kQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVy
T2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBwYWludE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kKFJlbmRlck9iamVjdCos
IGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJu
IHRydWU7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmggYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oCmluZGV4IDYwNzZkNTIuLjJmYzc3YWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNjksMTAgKzY5LDkgQEAgZW51bSBQc2V1ZG9J
ZCB7CiAgICAgTk9QU0VVRE8sIEZJUlNUX0xJTkUsIEZJUlNUX0xFVFRFUiwgQkVGT1JFLCBBRlRF
UiwgU0VMRUNUSU9OLCBGSVJTVF9MSU5FX0lOSEVSSVRFRCwgU0NST0xMQkFSLCBGSUxFX1VQTE9B
RF9CVVRUT04sIElOUFVUX1BMQUNFSE9MREVSLAogICAgIFNMSURFUl9USFVNQiwgU0VBUkNIX0NB
TkNFTF9CVVRUT04sIFNFQVJDSF9ERUNPUkFUSU9OLCBTRUFSQ0hfUkVTVUxUU19ERUNPUkFUSU9O
LCBTRUFSQ0hfUkVTVUxUU19CVVRUT04sIE1FRElBX0NPTlRST0xTX1BBTkVMLAogICAgIE1FRElB
X0NPTlRST0xTX1BMQVlfQlVUVE9OLCBNRURJQV9DT05UUk9MU19NVVRFX0JVVFRPTiwgTUVESUFf
Q09OVFJPTFNfVElNRUxJTkUsIE1FRElBX0NPTlRST0xTX1RJTUVMSU5FX0NPTlRBSU5FUiwKLSAg
ICBNRURJQV9DT05UUk9MU19DVVJSRU5UX1RJTUVfRElTUExBWSwgTUVESUFfQ09OVFJPTFNfVElN
RV9SRU1BSU5JTkdfRElTUExBWSwgTUVESUFfQ09OVFJPTFNfU0VFS19CQUNLX0JVVFRPTiwgCi0g
ICAgTUVESUFfQ09OVFJPTFNfU0VFS19GT1JXQVJEX0JVVFRPTiwgTUVESUFfQ09OVFJPTFNfRlVM
TFNDUkVFTl9CVVRUT04sIE1FRElBX0NPTlRST0xTX1JFV0lORF9CVVRUT04sCi0gICAgTUVESUFf
Q09OVFJPTFNfUkVUVVJOX1RPX1JFQUxUSU1FX0JVVFRPTiwgTUVESUFfQ09OVFJPTFNfU1RBVFVT
X0RJU1BMQVksCi0gICAgU0NST0xMQkFSX1RIVU1CLCBTQ1JPTExCQVJfQlVUVE9OLCBTQ1JPTExC
QVJfVFJBQ0ssIFNDUk9MTEJBUl9UUkFDS19QSUVDRSwgU0NST0xMQkFSX0NPUk5FUiwgUkVTSVpF
UiwKKyAgICBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSLCBNRURJQV9DT05UUk9MU19WT0xV
TUVfU0xJREVSX0NPTlRBSU5FUiwgTUVESUFfQ09OVFJPTFNfQ1VSUkVOVF9USU1FX0RJU1BMQVks
IE1FRElBX0NPTlRST0xTX1RJTUVfUkVNQUlOSU5HX0RJU1BMQVksIE1FRElBX0NPTlRST0xTX1NF
RUtfQkFDS19CVVRUT04sCisgICAgTUVESUFfQ09OVFJPTFNfU0VFS19GT1JXQVJEX0JVVFRPTiwg
TUVESUFfQ09OVFJPTFNfRlVMTFNDUkVFTl9CVVRUT04sIE1FRElBX0NPTlRST0xTX1JFV0lORF9C
VVRUT04sIE1FRElBX0NPTlRST0xTX1JFVFVSTl9UT19SRUFMVElNRV9CVVRUT04sCisgICAgTUVE
SUFfQ09OVFJPTFNfU1RBVFVTX0RJU1BMQVksIFNDUk9MTEJBUl9USFVNQiwgU0NST0xMQkFSX0JV
VFRPTiwgU0NST0xMQkFSX1RSQUNLLCBTQ1JPTExCQVJfVFJBQ0tfUElFQ0UsIFNDUk9MTEJBUl9D
T1JORVIsIFJFU0laRVIsCiAKICAgICBGSVJTVF9JTlRFUk5BTF9QU0VVRE9JRCA9IEZJTEVfVVBM
T0FEX0JVVFRPTgogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>