<?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>31586</bug_id>
          
          <creation_ts>2009-11-17 07:24:35 -0800</creation_ts>
          <short_desc>[GTK] set playbin mute property depending on volume value</short_desc>
          <delta_ts>2010-02-01 08:23:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>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="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>164229</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-11-17 07:24:35 -0800</bug_when>
    <thetext>If user mutes the volume, the HTMLMediaElement calls MediaPlayer::setVolume(0). OTOH if the user mutes the volume with PulseAudio, PA sets the playbin::mute property to true. So in some cases we can end up with volume being muted but reported as unmuted in the audio/video controls (and vice-versa).

One proposal is to set the mute property depending on the volume value in our PrivatePlayer, so we remain coherent with both PA and HTMLMediaElement behavior. We also need to correctly react on the notify::mute playbin2 signal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166484</commentid>
    <comment_count>1</comment_count>
      <attachid>43852</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-11-25 09:21:08 -0800</bug_when>
    <thetext>Created attachment 43852
2009-11-25  Philippe Normand  &lt;pnormand@igalia.com&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167362</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-30 12:40:47 -0800</bug_when>
    <thetext>Attachment 43852 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
Done processing WebCore/platform/graphics/MediaPlayer.h
Done processing WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.h
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:421:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:699:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:904:  Use 0 instead of NULL.  [readability/null] [5]
Done processing WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp
Total errors found: 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171163</commentid>
    <comment_count>3</comment_count>
      <attachid>43852</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-12-12 22:16:37 -0800</bug_when>
    <thetext>Comment on attachment 43852
2009-11-25  Philippe Normand  &lt;pnormand@igalia.com&gt;

Who would/should implement setMuted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171312</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-12-14 00:26:42 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 43852 [details])
&gt; Who would/should implement setMuted?

I don&apos;t know. I added it in the Client interface because I needed to call it from the media player when we receive a notification that sound has been muted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172672</commentid>
    <comment_count>5</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-17 01:23:31 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 43852 [details] [details])
&gt; &gt; Who would/should implement setMuted?
&gt; 
&gt; I don&apos;t know. I added it in the Client interface because I needed to call it
&gt; from the media player when we receive a notification that sound has been muted.

Why exactly do you need to call it? It doesn&apos;t seem to do anything at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172673</commentid>
    <comment_count>6</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-17 01:25:24 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; (From update of attachment 43852 [details] [details] [details])
&gt; &gt; &gt; Who would/should implement setMuted?
&gt; &gt; 
&gt; &gt; I don&apos;t know. I added it in the Client interface because I needed to call it
&gt; &gt; from the media player when we receive a notification that sound has been muted.
&gt; 
&gt; Why exactly do you need to call it? It doesn&apos;t seem to do anything at all.

I see it now. That interface is implemented by HTMLMediaElement. So the response to Holger&apos;s question is HTMLMediaElement is the implementor of that interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172675</commentid>
    <comment_count>7</comment_count>
      <attachid>43852</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-17 01:30:41 -0800</bug_when>
    <thetext>Comment on attachment 43852
2009-11-25  Philippe Normand  &lt;pnormand@igalia.com&gt;

&gt; +static gboolean notify_mute_idle_cb(gpointer data)
&gt; +{
&gt; +    MediaPlayerPrivate* mp = reinterpret_cast&lt;MediaPlayerPrivate*&gt;(data);
&gt; +    mp-&gt;muteChanged();
&gt; +    return FALSE;
&gt; +}
&gt; +
[...]
&gt; +void MediaPlayerPrivate::muteChanged()
&gt; +{
&gt; +    // Some application (PulseAudio for instance) changed the mute
&gt; +    // playbin property. Propagate the change to the player&apos;s client,
&gt; +    // the HTMLMediaElement.
&gt; +    gboolean mute;
&gt; +    g_object_get(G_OBJECT(m_playBin), &quot;mute&quot;, &amp;mute, NULL);
&gt; +    m_player-&gt;mediaPlayerClient()-&gt;setMuted(static_cast&lt;bool&gt;(mute));
&gt; +}
&gt; +

I don&apos;t think adding muteChanged to the MediaPlayerPrivate gains us anything. You can do all the work that you are doing in MediaPlayerPrivate::muteChanged in the callback function.

&gt;      int width = 0, height = 0;
&gt; -    GstCaps *caps = gst_buffer_get_caps(m_buffer);
&gt; +    GstCaps* caps = gst_buffer_get_caps(m_buffer);
&gt;      GstVideoFormat format;

Commit this separately, please! r=me on this change alone.

&gt; -    g_object_set(G_OBJECT(m_playBin), &quot;uri&quot;, url.utf8().data(),
&gt; -        &quot;volume&quot;, static_cast&lt;double&gt;(m_player-&gt;volume()), NULL);
&gt; +    g_signal_connect(G_OBJECT(m_playBin), &quot;notify::mute&quot;, G_CALLBACK(mediaPlayerPrivateMuteCallback), this);
&gt; +
&gt; +    g_object_set(G_OBJECT(m_playBin), &quot;uri&quot;, url.utf8().data(), NULL);
&gt; +
&gt;  
&gt;      m_videoSink = webkit_video_sink_new();

You&apos;re adding a blank line unnecessarily here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172718</commentid>
    <comment_count>8</comment_count>
      <attachid>45053</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-12-17 04:44:43 -0800</bug_when>
    <thetext>Created attachment 45053
2009-11-25  Philippe Normand  &lt;pnormand@igalia.com&gt;

renamed the mute_idle callback and removed the already applied coding
style fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172720</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 04:47:50 -0800</bug_when>
    <thetext>Attachment 45053 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:443:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:731:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:949:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172811</commentid>
    <comment_count>10</comment_count>
      <attachid>45077</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-12-17 09:27:56 -0800</bug_when>
    <thetext>Created attachment 45077
2009-11-25  Philippe Normand  &lt;pnormand@igalia.com&gt;

I removed the un-needed calls to the G_OBJECT() macro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172815</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 09:32:24 -0800</bug_when>
    <thetext>Attachment 45077 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:449:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:737:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:955:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173526</commentid>
    <comment_count>12</comment_count>
      <attachid>45077</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-12-19 09:19:46 -0800</bug_when>
    <thetext>Comment on attachment 45077
2009-11-25  Philippe Normand  &lt;pnormand@igalia.com&gt;

This patch needs more work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173713</commentid>
    <comment_count>13</comment_count>
      <attachid>45270</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-12-20 04:39:25 -0800</bug_when>
    <thetext>Created attachment 45270
new API in MediaPlayer for mute control and mute control in MediaPlayerPrivateGStreamer

I also added support for it in the MediaPlayerPrivateGStreamer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173714</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-20 04:41:21 -0800</bug_when>
    <thetext>Attachment 45270 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:454:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:460:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:752:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:758:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:986:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173716</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-20 04:44:33 -0800</bug_when>
    <thetext>Attachment 45270 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/137052</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173719</commentid>
    <comment_count>16</comment_count>
      <attachid>45270</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-12-20 05:46:13 -0800</bug_when>
    <thetext>Comment on attachment 45270
new API in MediaPlayer for mute control and mute control in MediaPlayerPrivateGStreamer

Will upload new version, the MediaPlayerPrivate subclasses need to be updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173726</commentid>
    <comment_count>17</comment_count>
      <attachid>45274</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-12-20 06:35:51 -0800</bug_when>
    <thetext>Created attachment 45274
new API in MediaPlayer for mute control and mute control in MediaPlayerPrivateGStreamer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173727</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-20 06:39:13 -0800</bug_when>
    <thetext>Attachment 45274 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:454:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:460:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:752:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:758:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:986:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173778</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-20 10:29:43 -0800</bug_when>
    <thetext>Please file a bug about the style false positives if they are indeed false positives and you don&apos;t intend to fix them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173779</commentid>
    <comment_count>20</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-12-20 10:32:12 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; Please file a bug about the style false positives if they are indeed false
&gt; positives and you don&apos;t intend to fix them.

Maybe someone could review https://bugs.webkit.org/show_bug.cgi?id=32661 ?
and then I can update this patch if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175654</commentid>
    <comment_count>21</comment_count>
      <attachid>45274</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-29 11:29:10 -0800</bug_when>
    <thetext>Comment on attachment 45274
new API in MediaPlayer for mute control and mute control in MediaPlayerPrivateGStreamer

WebCore/ChangeLog

 1 2009-12-20  Philippe Normand  &lt;pnormand@igalia.com&gt;
 2 
 3         Reviewed by NOBODY (OOPS!).
 4 
 5         [GTK] set playbin mute property depending on volume value
 6         https://bugs.webkit.org/show_bug.cgi?id=31586
 7 
 8         Adapted the other MediaPlayer implementations.,

You should write only 1 ChangeLog entry for the full change.

@@ void HTMLMediaElement::mediaPlayerTimeChanged(MediaPlayer*)
14101415 void HTMLMediaElement::mediaPlayerVolumeChanged(MediaPlayer*)
14111416 {
14121417     beginProcessingMediaPlayerCallback();
 1418     if (m_player)
 1419         m_volume = m_player-&gt;volume();
14131420     updateVolume();
14141421     endProcessingMediaPlayerCallback();

This looks wrong. Why are you changing this behavior?

 1424 void HTMLMediaElement::mediaPlayerMuteChanged(MediaPlayer*)
 1425 {
 1426     beginProcessingMediaPlayerCallback();
 1427     if (m_player)
 1428         m_muted = m_player-&gt;muted();
 1429     if (renderer())
 1430         renderer()-&gt;updateFromElement();
 1431     endProcessingMediaPlayerCallback();
 1432 }

I don&apos;t think you should duplicate this code here. Make a setMuted call, and make it behave like updateVolume does (checking if it is handling a player notification, and treating it specially).

 79     virtual bool supportsMuting() { return false; }
 80     virtual void setMuted(bool) = 0;

supportsMuting should be have the const qualifier, like hasClosedCaptions.

 457 void MediaPlayerPrivate::volumeChangedCallback()
 458 {
 459     double volume;
 460     g_object_get(m_playBin, &quot;volume&quot;, &amp;volume, NULL);
 461     m_player-&gt;volumeChanged(static_cast&lt;float&gt;(volume));

I think you are mixing unrelated changes in this patch. And this looks a bit weird. Shouldn&apos;t you just set the volume?

I believe it would be a good idea to grab Eric Carlson and ask him about the layering, and where you want to insert this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178157</commentid>
    <comment_count>22</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-01-07 05:46:25 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 45274 [details])
&gt; WebCore/ChangeLog
&gt; 
&gt;  1 2009-12-20  Philippe Normand  &lt;pnormand@igalia.com&gt;
&gt;  2 
&gt;  3         Reviewed by NOBODY (OOPS!).
&gt;  4 
&gt;  5         [GTK] set playbin mute property depending on volume value
&gt;  6         https://bugs.webkit.org/show_bug.cgi?id=31586
&gt;  7 
&gt;  8         Adapted the other MediaPlayer implementations.,
&gt; 
&gt; You should write only 1 ChangeLog entry for the full change.
&gt; 

Ok sorry, I did 3 commits for that in my branch, that&apos;s why there were 3 entries, I will merge them then.

&gt; @@ void HTMLMediaElement::mediaPlayerTimeChanged(MediaPlayer*)
&gt; 14101415 void HTMLMediaElement::mediaPlayerVolumeChanged(MediaPlayer*)
&gt; 14111416 {
&gt; 14121417     beginProcessingMediaPlayerCallback();
&gt;  1418     if (m_player)
&gt;  1419         m_volume = m_player-&gt;volume();
&gt; 14131420     updateVolume();
&gt; 14141421     endProcessingMediaPlayerCallback();
&gt; 
&gt; This looks wrong. Why are you changing this behavior?
&gt; 

MediaPlayer received a volume notification from its &quot;private player&quot; instance so m_volume needs to be updated to reflect the change downstream. Maybe I can move that to updateVolume(), I don&apos;t know... 

&gt;  1424 void HTMLMediaElement::mediaPlayerMuteChanged(MediaPlayer*)
&gt;  1425 {
&gt;  1426     beginProcessingMediaPlayerCallback();
&gt;  1427     if (m_player)
&gt;  1428         m_muted = m_player-&gt;muted();
&gt;  1429     if (renderer())
&gt;  1430         renderer()-&gt;updateFromElement();
&gt;  1431     endProcessingMediaPlayerCallback();
&gt;  1432 }
&gt; 
&gt; I don&apos;t think you should duplicate this code here. Make a setMuted call, and
&gt; make it behave like updateVolume does (checking if it is handling a player
&gt; notification, and treating it specially).
&gt; 

ok :)

&gt;  79     virtual bool supportsMuting() { return false; }
&gt;  80     virtual void setMuted(bool) = 0;
&gt; 
&gt; supportsMuting should be have the const qualifier, like hasClosedCaptions.
&gt; 

ok 

&gt;  457 void MediaPlayerPrivate::volumeChangedCallback()
&gt;  458 {
&gt;  459     double volume;
&gt;  460     g_object_get(m_playBin, &quot;volume&quot;, &amp;volume, NULL);
&gt;  461     m_player-&gt;volumeChanged(static_cast&lt;float&gt;(volume));
&gt; 
&gt; I think you are mixing unrelated changes in this patch. And this looks a bit
&gt; weird. Shouldn&apos;t you just set the volume?
&gt; 

I need to get the new volume value because we received a notify::volume signal.

&gt; I believe it would be a good idea to grab Eric Carlson and ask him about the
&gt; layering, and where you want to insert this.

Once we found an agreement on all the issues above I can send a new patch and we can discuss with Eric. Ok? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183137</commentid>
    <comment_count>23</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-01-21 01:47:45 -0800</bug_when>
    <thetext>Ping Gustavo? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185056</commentid>
    <comment_count>24</comment_count>
      <attachid>47522</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-01-27 05:52:56 -0800</bug_when>
    <thetext>Created attachment 47522
new API in MediaPlayer for mute control</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185057</commentid>
    <comment_count>25</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-27 05:58:09 -0800</bug_when>
    <thetext>Attachment 47522 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/214963</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185062</commentid>
    <comment_count>26</comment_count>
      <attachid>47524</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-01-27 06:11:14 -0800</bug_when>
    <thetext>Created attachment 47524
new API in MediaPlayer for mute control</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185068</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-27 06:19:45 -0800</bug_when>
    <thetext>Attachment 47522 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/215072</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185072</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-27 06:31:25 -0800</bug_when>
    <thetext>Attachment 47524 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/215078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185077</commentid>
    <comment_count>29</comment_count>
      <attachid>47527</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-01-27 06:52:42 -0800</bug_when>
    <thetext>Created attachment 47527
new API in MediaPlayer for mute control</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185090</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-27 07:34:35 -0800</bug_when>
    <thetext>Attachment 47527 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/216010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185094</commentid>
    <comment_count>31</comment_count>
      <attachid>47533</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-01-27 07:43:55 -0800</bug_when>
    <thetext>Created attachment 47533
new API in MediaPlayer for mute control

should now build on chromium too, sorry for the noise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185255</commentid>
    <comment_count>32</comment_count>
      <attachid>47533</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-01-27 15:52:45 -0800</bug_when>
    <thetext>Comment on attachment 47533
new API in MediaPlayer for mute control

&gt; +    virtual bool supportsMuting() const { return false; }
&gt; +    virtual void setMuted(bool) { }
&gt; 
These methods are unnecessary because MediaPlayerPrivateInterface has default implementations. I know that many other methods in NullMediaPlayerPrivate use this pattern, but we should change the pattern (and come back and clean this up).

&gt; diff --git a/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h 
&gt; diff --git a/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm 
&gt; diff --git a/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp 
&gt; diff --git a/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.h 
&gt; diff --git a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp 
&gt; diff --git a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h 
&gt; diff --git a/WebCore/platform/graphics/wince/MediaPlayerPrivateWince.h 
&gt; diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
&gt; diff --git a/WebKit/chromium/public/WebMediaPlayerClient.h 
&gt; diff --git a/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp 
&gt; diff --git a/WebKit/chromium/src/WebMediaPlayerClientImpl.h 
None of these is necessary as each media engine subclasses MediaPlayerPrivateInterface, which has default implementation for both methods. I would prefer that we leave them out for now and add them when a port adds the functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185772</commentid>
    <comment_count>33</comment_count>
      <attachid>47688</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-01-29 00:52:20 -0800</bug_when>
    <thetext>Created attachment 47688
new API in MediaPlayer for mute control

Removed the not-needed platform-specific changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185870</commentid>
    <comment_count>34</comment_count>
      <attachid>47688</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-01-29 07:51:35 -0800</bug_when>
    <thetext>Comment on attachment 47688
new API in MediaPlayer for mute control

&gt; +++ b/WebCore/html/HTMLMediaElement.cpp
&gt; @@ -1235,8 +1235,16 @@ void HTMLMediaElement::setMuted(bool muted)
&gt;  {
&gt;      if (m_muted != muted) {
&gt;          m_muted = muted;
&gt; -        updateVolume();
&gt; -        scheduleEvent(eventNames().volumechangeEvent);
&gt; +        // Avoid recursion when the player reports volume changes.
&gt; +        if (!processingMediaPlayerCallback()) {
&gt; +            if (m_player &amp;&amp; m_player-&gt;supportsMuting()) {
&gt; +                m_player-&gt;setMuted(m_muted);
&gt; +                if (renderer())
&gt; +                    renderer()-&gt;updateFromElement();
&gt; +            } else
&gt; +                updateVolume();
&gt; +            scheduleEvent(eventNames().volumechangeEvent);
&gt; +        }
&gt;      }
&gt;  }
&gt;  
If a media engine&apos;s muted property changes without HTMLMediaElement knowing about it, we won&apos;t post a &apos;volumechanged&apos; notification because processingMediaPlayerCallback() will be true. 


&gt; @@ -275,6 +291,7 @@ MediaPlayerPrivate::MediaPlayerPrivate(MediaPlayer* player)
&gt;      , m_errorOccured(false)
&gt;      , m_volumeIdleId(-1)
&gt;      , m_mediaDuration(0.0)
&gt; +    , m_muteIdleId(-1)
&gt;  {
&gt;      doGstInit();
&gt;  }
&gt; @@ -286,6 +303,11 @@ MediaPlayerPrivate::~MediaPlayerPrivate()
&gt;          m_volumeIdleId = -1;
&gt;      }
&gt;  
&gt; +    if (m_muteIdleId) {
&gt; +        g_source_remove(m_muteIdleId);
&gt; +        m_muteIdleId = -1;
&gt; +    }
&gt; +
Why are m_muteIdleId and m_volumeIdleId set to -1 when the source is invalid, but &quot;!=0&quot; is the test for validity? Shouldn&apos;t you set them to 0 when invalid?

Sorry I missed both of these the last time around!

r- for the missing notification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186326</commentid>
    <comment_count>35</comment_count>
      <attachid>47819</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-02-01 01:03:12 -0800</bug_when>
    <thetext>Created attachment 47819
new API in MediaPlayer for mute control</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186327</commentid>
    <comment_count>36</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-02-01 01:06:47 -0800</bug_when>
    <thetext>BTW this patch can be manually tested on linux (or any PulseAudio enabled OS) like this:

- open the volume control applet, go in the &quot;Applications&quot; tab
- open GtkLauncher http://people.mozilla.com/~prouget/demos/simpleVideo/video.html
- start playback

- if you mute GtkLauncher volume from the applet you should be able to unmute it from GtkLauncher
- if you mute GtkLauncher volume you should see the &quot;muted&quot; checkbox ticked in the volume applet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186413</commentid>
    <comment_count>37</comment_count>
      <attachid>47819</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-02-01 07:35:31 -0800</bug_when>
    <thetext>Comment on attachment 47819
new API in MediaPlayer for mute control

Thanks!

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186435</commentid>
    <comment_count>38</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-02-01 08:23:31 -0800</bug_when>
    <thetext>Landed in r54136. Thanks for the review and patience! :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43852</attachid>
            <date>2009-11-25 09:21:08 -0800</date>
            <delta_ts>2009-12-17 04:44:43 -0800</delta_ts>
            <desc>2009-11-25  Philippe Normand  &lt;pnormand@igalia.com&gt;</desc>
            <filename>2009-11-25-Philippe-Normand-pnormandigaliacom.patch</filename>
            <type>text/plain</type>
            <size>6351</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA2NzQ3YTU4Yzk3YTc0YmExZTQ1ZjBhMTczMWRlYzAzZGUyMzRjYmY1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDE5IE5vdiAyMDA5IDE0OjI3OjIxICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
MjAwOS0xMS0yNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CgogICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR1RLXSBzZXQgcGxheWJp
biBtdXRlIHByb3BlcnR5IGRlcGVuZGluZyBvbiB2b2x1bWUgdmFsdWUKICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1ODYKCiAgICAgICAgU3VwcG9ydCBm
b3Igbm90aWZ5OjptdXRlIHBsYXliaW4yIHNpZ25hbCwgZWFzaW5nIGludGVncmF0aW9uIHdpdGgK
ICAgICAgICBQdWxzZUF1ZGlvLgoKICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmg6CiAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjpzZXRNdXRlZCk6CiAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcDoKICAgICAgICAoV2ViQ29yZTo6bm90aWZ5X211dGVfaWRsZV9jYik6CiAgICAgICAgKFdl
YkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZU11dGVDYWxsYmFjayk6CiAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0Vm9sdW1lKToKICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlOjptdXRlQ2hhbmdlZCk6CiAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZTo6cGFpbnQpOgogICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OmNy
ZWF0ZUdTVFBsYXlCaW4pOgogICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oICAgICAgICAgICAgfCAgICAyICsKIC4uLi9ncmFwaGlj
cy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgIHwgICAzNyArKysrKysrKysr
KysrKysrKy0tCiAuLi4vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
ICAgICB8ICAgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCA0IGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggMTk5NjAzYy4uOThiMjhjMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAwOS0xMS0yNSAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gc2V0IHBsYXliaW4gbXV0ZSBwcm9w
ZXJ0eSBkZXBlbmRpbmcgb24gdm9sdW1lIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTU4NgorCisgICAgICAgIFN1cHBvcnQgZm9yIG5vdGlm
eTo6bXV0ZSBwbGF5YmluMiBzaWduYWwsIGVhc2luZyBpbnRlZ3JhdGlvbiB3aXRoCisgICAgICAg
IFB1bHNlQXVkaW8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6OnNldE11dGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeV9tdXRlX2lkbGVfY2IpOgorICAgICAgICAoV2Vi
Q29yZTo6bWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0Vm9sdW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6
OmNyZWF0ZUdTVFBsYXlCaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKwogMjAwOS0xMS0yNSAgQW5kcmVpIFBvcGVzY3Ug
IDxhbmRyZWlwQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6
a292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGVjOGFjMzMu
LjJlYjgzNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTk4
LDYgKzk4LDggQEAgcHVibGljOgogICAgIC8vIGVsZW1lbnQgdG8gYW4gPGVtYmVkPiBpbiBzdGFu
ZGFsb25lIGRvY3VtZW50cwogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclNhd1Vuc3VwcG9y
dGVkVHJhY2tzKE1lZGlhUGxheWVyKikgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TXV0ZWQo
Ym9vbCkgeyB9CisKIC8vIFByZXNlbnRhdGlvbi1yZWxhdGVkIG1ldGhvZHMKICAgICAvLyBhIG5l
dyBmcmFtZSBvZiB2aWRlbyBpcyBhdmFpbGFibGUKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5
ZXJSZXBhaW50KE1lZGlhUGxheWVyKikgeyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRl
eCBjMDI0MmExLi5jMDc3NjkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTk5LDYg
Kzk5LDE4IEBAIGdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZU1lc3NhZ2VDYWxsYmFjayhHc3RC
dXMqIGJ1cywgR3N0TWVzc2FnZSogbWVzc2FnZSwgZ3BvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
K3N0YXRpYyBnYm9vbGVhbiBub3RpZnlfbXV0ZV9pZGxlX2NiKGdwb2ludGVyIGRhdGEpCit7Cisg
ICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQ
cml2YXRlKj4oZGF0YSk7CisgICAgbXAtPm11dGVDaGFuZ2VkKCk7CisgICAgcmV0dXJuIEZBTFNF
OworfQorCitzdGF0aWMgdm9pZCBtZWRpYVBsYXllclByaXZhdGVNdXRlQ2FsbGJhY2soR09iamVj
dCAqZWxlbWVudCwgR1BhcmFtU3BlYyAqcHNwZWMsIE1lZGlhUGxheWVyUHJpdmF0ZSogbXApCit7
CisgICAgZ19pZGxlX2FkZCgoR1NvdXJjZUZ1bmMpIG5vdGlmeV9tdXRlX2lkbGVfY2IsIG1wKTsK
K30KKwogc3RhdGljIGZsb2F0IHBsYXliYWNrUG9zaXRpb24oR3N0RWxlbWVudCogcGxheWJpbikK
IHsKIApAQCAtNDAxLDcgKzQxMywxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0Vm9s
dW1lKGZsb2F0IHZvbHVtZSkKICAgICBpZiAoIW1fcGxheUJpbikKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKG1fcGxheUJpbiksICJ2b2x1bWUiLCBzdGF0aWNf
Y2FzdDxkb3VibGU+KHZvbHVtZSksIE5VTEwpOworICAgIC8vIFNldCBwbGF5YmluJ3MgbXV0ZSBw
cm9wZXJ0eSBkZXBlbmRpbmcgb24gdm9sdW1lIHZhbHVlLiBUaGlzIGlzCisgICAgLy8gZG9uZSBs
aWtlIHRoaXMgdG8gcmVtYWluIGNvaGVyZW50IHdpdGggSFRNTE1lZGlhRWxlbWVudAorICAgIC8v
IGJlaGF2aW9yLgorICAgIGJvb2wgbXV0ZSA9IHZvbHVtZSA8PSAwOworICAgIGdfb2JqZWN0X3Nl
dChHX09CSkVDVChtX3BsYXlCaW4pLCAidm9sdW1lIiwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2b2x1
bWUpLAorICAgICAgICAgICAgICAgICAibXV0ZSIsIG11dGUsIE5VTEwpOwogfQogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZTo6c2V0UmF0ZShmbG9hdCByYXRlKQpAQCAtNjczLDYgKzY5MCwxNiBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6ZGlkRW5kKCkKICAgICB0aW1lQ2hhbmdlZCgpOwog
fQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWQoKQoreworICAgIC8vIFNv
bWUgYXBwbGljYXRpb24gKFB1bHNlQXVkaW8gZm9yIGluc3RhbmNlKSBjaGFuZ2VkIHRoZSBtdXRl
CisgICAgLy8gcGxheWJpbiBwcm9wZXJ0eS4gUHJvcGFnYXRlIHRoZSBjaGFuZ2UgdG8gdGhlIHBs
YXllcidzIGNsaWVudCwKKyAgICAvLyB0aGUgSFRNTE1lZGlhRWxlbWVudC4KKyAgICBnYm9vbGVh
biBtdXRlOworICAgIGdfb2JqZWN0X2dldChHX09CSkVDVChtX3BsYXlCaW4pLCAibXV0ZSIsICZt
dXRlLCBOVUxMKTsKKyAgICBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+c2V0TXV0ZWQo
c3RhdGljX2Nhc3Q8Ym9vbD4obXV0ZSkpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6
bG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIGVycm9yKQogewogICAgIG1f
ZXJyb3JPY2N1cmVkID0gdHJ1ZTsKQEAgLTcxMSw3ICs3MzgsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQogICAgICAgICByZXR1cm47CiAKICAgICBpbnQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwot
ICAgIEdzdENhcHMgKmNhcHMgPSBnc3RfYnVmZmVyX2dldF9jYXBzKG1fYnVmZmVyKTsKKyAgICBH
c3RDYXBzKiBjYXBzID0gZ3N0X2J1ZmZlcl9nZXRfY2FwcyhtX2J1ZmZlcik7CiAgICAgR3N0Vmlk
ZW9Gb3JtYXQgZm9ybWF0OwogCiAgICAgaWYgKCFnc3RfdmlkZW9fZm9ybWF0X3BhcnNlX2NhcHMo
Y2FwcywgJmZvcm1hdCwgJndpZHRoLCAmaGVpZ2h0KSkgewpAQCAtODcyLDggKzg5OSwxMCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6Y3JlYXRlR1NUUGxheUJpbihTdHJpbmcgdXJsKQogICAg
IGdfc2lnbmFsX2Nvbm5lY3QoYnVzLCAibWVzc2FnZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQ
cml2YXRlTWVzc2FnZUNhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ3N0X29iamVjdF91bnJlZihidXMp
OwogCi0gICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKG1fcGxheUJpbiksICJ1cmkiLCB1cmwudXRm
OCgpLmRhdGEoKSwKLSAgICAgICAgInZvbHVtZSIsIHN0YXRpY19jYXN0PGRvdWJsZT4obV9wbGF5
ZXItPnZvbHVtZSgpKSwgTlVMTCk7CisgICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChtX3Bs
YXlCaW4pLCAibm90aWZ5OjptdXRlIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVNdXRl
Q2FsbGJhY2spLCB0aGlzKTsKKworICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChtX3BsYXlCaW4p
LCAidXJpIiwgdXJsLnV0ZjgoKS5kYXRhKCksIE5VTEwpOworCiAKICAgICBtX3ZpZGVvU2luayA9
IHdlYmtpdF92aWRlb19zaW5rX25ldygpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDZh
YjhlZGIuLmU3YzI2YjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC05NCw2ICs5NCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIHZvaWQgdGltZUNoYW5nZWQoKTsKICAg
ICAgICAgICAgIHZvaWQgdm9sdW1lQ2hhbmdlZCgpOwogICAgICAgICAgICAgdm9pZCBkaWRFbmQo
KTsKKyAgICAgICAgICAgIHZvaWQgbXV0ZUNoYW5nZWQoKTsKICAgICAgICAgICAgIHZvaWQgbG9h
ZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlKTsKIAogICAgICAgICAgICAgdm9p
ZCByZXBhaW50KCk7Ci0tIAoxLjYuMy4z
</data>
<flag name="review"
          id="25596"
          type_id="1"
          status="-"
          setter="gustavo"
    />
    <flag name="commit-queue"
          id="26999"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45053</attachid>
            <date>2009-12-17 04:44:43 -0800</date>
            <delta_ts>2009-12-17 09:27:56 -0800</delta_ts>
            <desc>2009-11-25  Philippe Normand  &lt;pnormand@igalia.com&gt;</desc>
            <filename>2009-11-25-Philippe-Normand-pnormandigaliacom.patch</filename>
            <type>text/plain</type>
            <size>6043</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA0MzdkMDQwMzYzMWE1NTBlODVlMWM3OWZhZWVkNjQ1OWIxOGI1ODA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDE5IE5vdiAyMDA5IDE0OjI3OjIxICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
MjAwOS0xMS0yNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CgogICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR1RLXSBzZXQgcGxheWJp
biBtdXRlIHByb3BlcnR5IGRlcGVuZGluZyBvbiB2b2x1bWUgdmFsdWUKICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1ODYKCiAgICAgICAgU3VwcG9ydCBm
b3Igbm90aWZ5OjptdXRlIHBsYXliaW4yIHNpZ25hbCwgZWFzaW5nIGludGVncmF0aW9uIHdpdGgK
ICAgICAgICBQdWxzZUF1ZGlvLgoKICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmg6CiAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjpzZXRNdXRlZCk6CiAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcDoKICAgICAgICAoV2ViQ29yZTo6bm90aWZ5TXV0ZUlkbGVDYWxsYmFjayk6CiAgICAgICAg
KFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZU11dGVDYWxsYmFjayk6CiAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0Vm9sdW1lKToKICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlOjptdXRlQ2hhbmdlZCk6CiAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZTo6Y3JlYXRlR1NUUGxheUJpbik6CiAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6Ci0tLQogV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrKysrKwog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oICAgICAgICAgICAgfCAgICAy
ICsKIC4uLi9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgIHwg
ICAzMyArKysrKysrKysrKysrKysrKystLQogLi4uL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaCAgICAgfCAgICAxICsKIDQgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0
aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQzOWFjNmYuLmI5ZjMxZDMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMDktMTEtMjUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIHNldCBw
bGF5YmluIG11dGUgcHJvcGVydHkgZGVwZW5kaW5nIG9uIHZvbHVtZSB2YWx1ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1ODYKKworICAgICAgICBT
dXBwb3J0IGZvciBub3RpZnk6Om11dGUgcGxheWJpbjIgc2lnbmFsLCBlYXNpbmcgaW50ZWdyYXRp
b24gd2l0aAorICAgICAgICBQdWxzZUF1ZGlvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50Ojpz
ZXRNdXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpub3RpZnlNdXRlSWRsZUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZU11dGVDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnNldFZvbHVtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om11dGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6Y3JlYXRlR1NUUGxheUJpbik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgor
CiAyMDA5LTEyLTE3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29s
bGFib3JhLmNvLnVrPgogCiAgICAgICAgIExhbmRpbmcgZmlsZXMgSSBmb3Jnb3QgdG8gYWRkID0o
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGVjOGFjMzMuLjJl
YjgzNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTk4LDYg
Kzk4LDggQEAgcHVibGljOgogICAgIC8vIGVsZW1lbnQgdG8gYW4gPGVtYmVkPiBpbiBzdGFuZGFs
b25lIGRvY3VtZW50cwogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclNhd1Vuc3VwcG9ydGVk
VHJhY2tzKE1lZGlhUGxheWVyKikgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TXV0ZWQoYm9v
bCkgeyB9CisKIC8vIFByZXNlbnRhdGlvbi1yZWxhdGVkIG1ldGhvZHMKICAgICAvLyBhIG5ldyBm
cmFtZSBvZiB2aWRlbyBpcyBhdmFpbGFibGUKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJS
ZXBhaW50KE1lZGlhUGxheWVyKikgeyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAz
MTU3YzYzLi5iZDEzMjZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0
ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTExNSw2ICsx
MTUsMTggQEAgZ2Jvb2xlYW4gbm90aWZ5Vm9sdW1lSWRsZUNhbGxiYWNrKE1lZGlhUGxheWVyKiBt
cCkKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKK2dib29sZWFuIG5vdGlmeU11dGVJZGxlQ2FsbGJh
Y2soZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBNZWRpYVBsYXllclByaXZhdGUqIG1wID0gcmVpbnRl
cnByZXRfY2FzdDxNZWRpYVBsYXllclByaXZhdGUqPihkYXRhKTsKKyAgICBtcC0+bXV0ZUNoYW5n
ZWQoKTsKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKK3ZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlTXV0
ZUNhbGxiYWNrKEdPYmplY3QgKmVsZW1lbnQsIEdQYXJhbVNwZWMgKnBzcGVjLCBNZWRpYVBsYXll
clByaXZhdGUqIG1wKQoreworICAgIGdfaWRsZV9hZGQoKEdTb3VyY2VGdW5jKSBub3RpZnlNdXRl
SWRsZUNhbGxiYWNrLCBtcCk7Cit9CisKIHN0YXRpYyBmbG9hdCBwbGF5YmFja1Bvc2l0aW9uKEdz
dEVsZW1lbnQqIHBsYXliaW4pCiB7CiAKQEAgLTQyMyw3ICs0MzUsMTIgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGU6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgaWYgKCFtX3BsYXlCaW4p
CiAgICAgICAgIHJldHVybjsKIAotICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChtX3BsYXlCaW4p
LCAidm9sdW1lIiwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2b2x1bWUpLCBOVUxMKTsKKyAgICAvLyBT
ZXQgcGxheWJpbidzIG11dGUgcHJvcGVydHkgZGVwZW5kaW5nIG9uIHZvbHVtZSB2YWx1ZS4gVGhp
cyBpcworICAgIC8vIGRvbmUgbGlrZSB0aGlzIHRvIHJlbWFpbiBjb2hlcmVudCB3aXRoIEhUTUxN
ZWRpYUVsZW1lbnQKKyAgICAvLyBiZWhhdmlvci4KKyAgICBib29sIG11dGUgPSB2b2x1bWUgPD0g
MDsKKyAgICBnX29iamVjdF9zZXQoR19PQkpFQ1QobV9wbGF5QmluKSwgInZvbHVtZSIsIHN0YXRp
Y19jYXN0PGRvdWJsZT4odm9sdW1lKSwKKyAgICAgICAgICAgICAgICAgIm11dGUiLCBtdXRlLCBO
VUxMKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnZvbHVtZUNoYW5nZWQoKQpAQCAt
NzA1LDYgKzcyMiwxNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6ZHVyYXRpb25DaGFuZ2Vk
KCkKICAgICBtX3BsYXllci0+ZHVyYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlOjptdXRlQ2hhbmdlZCgpCit7CisgICAgLy8gU29tZSBhcHBsaWNhdGlvbiAoUHVs
c2VBdWRpbyBmb3IgaW5zdGFuY2UpIGNoYW5nZWQgdGhlIG11dGUKKyAgICAvLyBwbGF5YmluIHBy
b3BlcnR5LiBQcm9wYWdhdGUgdGhlIGNoYW5nZSB0byB0aGUgcGxheWVyJ3MgY2xpZW50LAorICAg
IC8vIHRoZSBIVE1MTWVkaWFFbGVtZW50LgorICAgIGdib29sZWFuIG11dGU7CisgICAgZ19vYmpl
Y3RfZ2V0KEdfT0JKRUNUKG1fcGxheUJpbiksICJtdXRlIiwgJm11dGUsIE5VTEwpOworICAgIG1f
cGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5zZXRNdXRlZChzdGF0aWNfY2FzdDxib29sPiht
dXRlKSk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpsb2FkaW5nRmFpbGVkKE1lZGlh
UGxheWVyOjpOZXR3b3JrU3RhdGUgZXJyb3IpCiB7CiAgICAgbV9lcnJvck9jY3VyZWQgPSB0cnVl
OwpAQCAtOTE5LDEwICs5NDYsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmNyZWF0ZUdT
VFBsYXlCaW4oU3RyaW5nIHVybCkKICAgICBnX3NpZ25hbF9jb25uZWN0KGJ1cywgIm1lc3NhZ2Ui
LCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZU1lc3NhZ2VDYWxsYmFjayksIHRoaXMpOwog
ICAgIGdzdF9vYmplY3RfdW5yZWYoYnVzKTsKIAotICAgIGdfb2JqZWN0X3NldChHX09CSkVDVCht
X3BsYXlCaW4pLCAidXJpIiwgdXJsLnV0ZjgoKS5kYXRhKCksCi0gICAgICAgICAgICAgICAgIE5V
TEwpOworICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChtX3BsYXlCaW4pLCAidXJpIiwgdXJsLnV0
ZjgoKS5kYXRhKCksIE5VTEwpOwogCiAgICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChtX3Bs
YXlCaW4pLCAibm90aWZ5Ojp2b2x1bWUiLCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZVZv
bHVtZUNoYW5nZWRDYWxsYmFjayksIHRoaXMpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpF
Q1QobV9wbGF5QmluKSwgIm5vdGlmeTo6bXV0ZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2
YXRlTXV0ZUNhbGxiYWNrKSwgdGhpcyk7CiAKICAgICBtX3ZpZGVvU2luayA9IHdlYmtpdF92aWRl
b19zaW5rX25ldygpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0
ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDRlMTIxYjYuLjhjZWNi
ZTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC05Niw2ICs5Niw3IEBAIGNsYXNzIE1lZGlh
UGxheWVyUHJpdmF0ZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogICAg
ICAgICAgICAgdm9pZCB0aW1lQ2hhbmdlZCgpOwogICAgICAgICAgICAgdm9pZCBkaWRFbmQoKTsK
ICAgICAgICAgICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKCk7CisgICAgICAgICAgICB2b2lkIG11
dGVDaGFuZ2VkKCk7CiAgICAgICAgICAgICB2b2lkIGxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6
Ok5ldHdvcmtTdGF0ZSk7CiAKICAgICAgICAgICAgIHZvaWQgcmVwYWludCgpOwotLSAKMS42LjMu
Mw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45077</attachid>
            <date>2009-12-17 09:27:56 -0800</date>
            <delta_ts>2009-12-20 04:39:25 -0800</delta_ts>
            <desc>2009-11-25  Philippe Normand  &lt;pnormand@igalia.com&gt;</desc>
            <filename>2009-11-25-Philippe-Normand-pnormandigaliacom.patch</filename>
            <type>text/plain</type>
            <size>6000</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBhNDk1OTY3OTY0Zjg1NGI3MjYyM2M5ZmU2NjI4NTBjM2VlNmM4ZTljIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDE5IE5vdiAyMDA5IDE0OjI3OjIxICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
MjAwOS0xMS0yNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CgogICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR1RLXSBzZXQgcGxheWJp
biBtdXRlIHByb3BlcnR5IGRlcGVuZGluZyBvbiB2b2x1bWUgdmFsdWUKICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1ODYKCiAgICAgICAgU3VwcG9ydCBm
b3Igbm90aWZ5OjptdXRlIHBsYXliaW4yIHNpZ25hbCwgZWFzaW5nIGludGVncmF0aW9uIHdpdGgK
ICAgICAgICBQdWxzZUF1ZGlvLgoKICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmg6CiAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjpzZXRNdXRlZCk6CiAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcDoKICAgICAgICAoV2ViQ29yZTo6bm90aWZ5TXV0ZUlkbGVDYWxsYmFjayk6CiAgICAgICAg
KFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZU11dGVDYWxsYmFjayk6CiAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0Vm9sdW1lKToKICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlOjptdXRlQ2hhbmdlZCk6CiAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZTo6Y3JlYXRlR1NUUGxheUJpbik6CiAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6Ci0tLQogV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrKysrKwog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oICAgICAgICAgICAgfCAgICAy
ICsKIC4uLi9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgIHwg
ICAzMyArKysrKysrKysrKysrKysrKystLQogLi4uL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaCAgICAgfCAgICAxICsKIDQgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0
aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk3NWJjOTYuLmU3MWE2NzAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMDktMTEtMjUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIHNldCBw
bGF5YmluIG11dGUgcHJvcGVydHkgZGVwZW5kaW5nIG9uIHZvbHVtZSB2YWx1ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1ODYKKworICAgICAgICBT
dXBwb3J0IGZvciBub3RpZnk6Om11dGUgcGxheWJpbjIgc2lnbmFsLCBlYXNpbmcgaW50ZWdyYXRp
b24gd2l0aAorICAgICAgICBQdWxzZUF1ZGlvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50Ojpz
ZXRNdXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpub3RpZnlNdXRlSWRsZUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZU11dGVDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnNldFZvbHVtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om11dGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6Y3JlYXRlR1NUUGxheUJpbik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgor
CiAyMDA5LTEyLTE3ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaAppbmRleCBlYzhhYzMzLi4yZWI4MzRkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC05OCw2ICs5OCw4IEBAIHB1YmxpYzoKICAgICAv
LyBlbGVtZW50IHRvIGFuIDxlbWJlZD4gaW4gc3RhbmRhbG9uZSBkb2N1bWVudHMKICAgICB2aXJ0
dWFsIHZvaWQgbWVkaWFQbGF5ZXJTYXdVbnN1cHBvcnRlZFRyYWNrcyhNZWRpYVBsYXllciopIHsg
fQogCisgICAgdmlydHVhbCB2b2lkIHNldE11dGVkKGJvb2wpIHsgfQorCiAvLyBQcmVzZW50YXRp
b24tcmVsYXRlZCBtZXRob2RzCiAgICAgLy8gYSBuZXcgZnJhbWUgb2YgdmlkZW8gaXMgYXZhaWxh
YmxlCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmVwYWludChNZWRpYVBsYXllciopIHsg
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggNDlmNmM4Ni4uM2M5NDg1OCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xMTUsNiArMTE1LDE4IEBAIGdib29sZWFuIG5vdGlm
eVZvbHVtZUlkbGVDYWxsYmFjayhNZWRpYVBsYXllciogbXApCiAgICAgcmV0dXJuIEZBTFNFOwog
fQogCitnYm9vbGVhbiBub3RpZnlNdXRlSWRsZUNhbGxiYWNrKGdwb2ludGVyIGRhdGEpCit7Cisg
ICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQ
cml2YXRlKj4oZGF0YSk7CisgICAgbXAtPm11dGVDaGFuZ2VkKCk7CisgICAgcmV0dXJuIEZBTFNF
OworfQorCit2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZU11dGVDYWxsYmFjayhHT2JqZWN0ICplbGVt
ZW50LCBHUGFyYW1TcGVjICpwc3BlYywgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCkKK3sKKyAgICBn
X2lkbGVfYWRkKChHU291cmNlRnVuYykgbm90aWZ5TXV0ZUlkbGVDYWxsYmFjaywgbXApOworfQor
CiBzdGF0aWMgZmxvYXQgcGxheWJhY2tQb3NpdGlvbihHc3RFbGVtZW50KiBwbGF5YmluKQogewog
CkBAIC00MjksNyArNDQxLDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRWb2x1bWUo
ZmxvYXQgdm9sdW1lKQogICAgIGlmICghbV9wbGF5QmluKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBnX29iamVjdF9zZXQoR19PQkpFQ1QobV9wbGF5QmluKSwgInZvbHVtZSIsIHN0YXRpY19jYXN0
PGRvdWJsZT4odm9sdW1lKSwgTlVMTCk7CisgICAgLy8gU2V0IHBsYXliaW4ncyBtdXRlIHByb3Bl
cnR5IGRlcGVuZGluZyBvbiB2b2x1bWUgdmFsdWUuIFRoaXMgaXMKKyAgICAvLyBkb25lIGxpa2Ug
dGhpcyB0byByZW1haW4gY29oZXJlbnQgd2l0aCBIVE1MTWVkaWFFbGVtZW50CisgICAgLy8gYmVo
YXZpb3IuCisgICAgYm9vbCBtdXRlID0gdm9sdW1lIDw9IDA7CisgICAgZ19vYmplY3Rfc2V0KEdf
T0JKRUNUKG1fcGxheUJpbiksICJ2b2x1bWUiLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZvbHVtZSks
CisgICAgICAgICAgICAgICAgICJtdXRlIiwgbXV0ZSwgTlVMTCk7CiB9CiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFuZ2VkKCkKQEAgLTcxMSw2ICs3MjgsMTYgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGU6OmR1cmF0aW9uQ2hhbmdlZCgpCiAgICAgbV9wbGF5ZXItPmR1cmF0
aW9uQ2hhbmdlZCgpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWQo
KQoreworICAgIC8vIFNvbWUgYXBwbGljYXRpb24gKFB1bHNlQXVkaW8gZm9yIGluc3RhbmNlKSBj
aGFuZ2VkIHRoZSBtdXRlCisgICAgLy8gcGxheWJpbiBwcm9wZXJ0eS4gUHJvcGFnYXRlIHRoZSBj
aGFuZ2UgdG8gdGhlIHBsYXllcidzIGNsaWVudCwKKyAgICAvLyB0aGUgSFRNTE1lZGlhRWxlbWVu
dC4KKyAgICBnYm9vbGVhbiBtdXRlOworICAgIGdfb2JqZWN0X2dldChtX3BsYXlCaW4sICJtdXRl
IiwgJm11dGUsIE5VTEwpOworICAgIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5zZXRN
dXRlZChzdGF0aWNfY2FzdDxib29sPihtdXRlKSk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlOjpsb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgZXJyb3IpCiB7CiAg
ICAgbV9lcnJvck9jY3VyZWQgPSB0cnVlOwpAQCAtOTI1LDEwICs5NTIsMTAgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGU6OmNyZWF0ZUdTVFBsYXlCaW4oU3RyaW5nIHVybCkKICAgICBnX3NpZ25h
bF9jb25uZWN0KGJ1cywgIm1lc3NhZ2UiLCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZU1l
c3NhZ2VDYWxsYmFjayksIHRoaXMpOwogICAgIGdzdF9vYmplY3RfdW5yZWYoYnVzKTsKIAotICAg
IGdfb2JqZWN0X3NldChHX09CSkVDVChtX3BsYXlCaW4pLCAidXJpIiwgdXJsLnV0ZjgoKS5kYXRh
KCksCi0gICAgICAgICAgICAgICAgIE5VTEwpOworICAgIGdfb2JqZWN0X3NldChHX09CSkVDVCht
X3BsYXlCaW4pLCAidXJpIiwgdXJsLnV0ZjgoKS5kYXRhKCksIE5VTEwpOwogCiAgICAgZ19zaWdu
YWxfY29ubmVjdChHX09CSkVDVChtX3BsYXlCaW4pLCAibm90aWZ5Ojp2b2x1bWUiLCBHX0NBTExC
QUNLKG1lZGlhUGxheWVyUHJpdmF0ZVZvbHVtZUNoYW5nZWRDYWxsYmFjayksIHRoaXMpOworICAg
IGdfc2lnbmFsX2Nvbm5lY3QobV9wbGF5QmluLCAibm90aWZ5OjptdXRlIiwgR19DQUxMQkFDSyht
ZWRpYVBsYXllclByaXZhdGVNdXRlQ2FsbGJhY2spLCB0aGlzKTsKIAogICAgIG1fdmlkZW9TaW5r
ID0gd2Via2l0X3ZpZGVvX3NpbmtfbmV3KCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXgg
NDcxNzk5OS4uMDYwZTRiYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTk2LDYgKzk2LDcg
QEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZSB7CiAgICAgICAgICAgICB2b2lkIHRpbWVDaGFuZ2VkKCk7CiAgICAgICAgICAgICB2
b2lkIGRpZEVuZCgpOwogICAgICAgICAgICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoKTsKKyAgICAg
ICAgICAgIHZvaWQgbXV0ZUNoYW5nZWQoKTsKICAgICAgICAgICAgIHZvaWQgbG9hZGluZ0ZhaWxl
ZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlKTsKIAogICAgICAgICAgICAgdm9pZCByZXBhaW50
KCk7Ci0tIAoxLjYuMy4z
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45270</attachid>
            <date>2009-12-20 04:39:25 -0800</date>
            <delta_ts>2009-12-20 06:35:51 -0800</delta_ts>
            <desc>new API in MediaPlayer for mute control and mute control in MediaPlayerPrivateGStreamer</desc>
            <filename>new-API-in-MediaPlayer-for-mute-control-and-mute-c.patch</filename>
            <type>text/plain</type>
            <size>14571</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA3ODljNWMxZTY0ZTcwMDBmNDM3YmVjY2QxOTViNjI1OTFlZDFiZTU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBTdW4sIDIwIERlYyAyMDA5IDEzOjI5OjA0ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
bmV3IEFQSSBpbiBNZWRpYVBsYXllciBmb3IgbXV0ZSBjb250cm9sIGFuZCBtdXRlIGNvbnRyb2wg
aW4KIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcgoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTYgKysrKysrKysrKysrKysrCiBX
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgICAgICAgICAgICAgICAgICB8ICAgMTkg
KysrKystCiBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oICAgICAgICAgICAgICAgICAg
ICB8ICAgIDEgKwogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgICAg
ICAgICAgfCAgIDMwICsrKysrKysrLQogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oICAgICAgICAgICAgfCAgIDEzICsrKy0KIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmggICAgIHwgICAgMyArCiAuLi4vZ3JhcGhpY3MvZ3RrL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgICB8ICAgNzIgKysrKysrKysrKysrKysrKysrLS0K
IC4uLi9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggICAgIHwgICAg
OCArKwogOCBmaWxlcyBjaGFuZ2VkLCAxOTEgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBlMDRmNjM4Li5kZTRkNDdjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDA5LTEyLTIwICBQaGlsaXBwZSBO
b3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBzZXQgcGxheWJpbiBtdXRlIHByb3BlcnR5IGRl
cGVuZGluZyBvbiB2b2x1bWUgdmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxNTg2CisKKyAgICAgICAgTXV0ZSBjb250cm9sIGluIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptZWRpYVBs
YXllclByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6bm90
aWZ5Vm9sdW1lSWRsZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUGxheWVyUHJp
dmF0ZU11dGVDaGFuZ2VkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6bm90aWZ5TXV0ZUlk
bGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Ok1lZGlh
UGxheWVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6On5N
ZWRpYVBsYXllclByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
OjpzZXRWb2x1bWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjp2b2x1
bWVDaGFuZ2VkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
Ojp2b2x1bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6
c3VwcG9ydHNNdXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpz
ZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om11dGVDaGFu
Z2VkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjptdXRl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OmNyZWF0ZUdT
VFBsYXlCaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaDoKKworMjAwOS0xMi0yMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3Jt
YW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW0dUS10gc2V0IHBsYXliaW4gbXV0ZSBwcm9wZXJ0eSBkZXBlbmRpbmcgb24gdm9s
dW1lIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMTU4NgorCisgICAgICAgIE5ldyBBUEkgaW4gTWVkaWFQbGF5ZXIgZm9yIG11dGUgY29udHJv
bC4gUGxheWVyIGltcGxlbWVudGF0aW9ucworICAgICAgICBzdXBwb3J0aW5nIG11dGUgY29udHJv
bCAoYnkgbm90IHNldHRpbmcgdm9sdW1lIHRvIDApIHNob3VsZAorICAgICAgICBpbXBsZW1lbnQg
c3VwcG9ydHNNdXRpbmcoKSBhbmQgc2V0TXV0ZWQoKS4KKworICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRN
dXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclZv
bHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJNdXRlQ2hhbmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNNdXRpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjptdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c3VwcG9ydHNN
dXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldE11dGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp2b2x1bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyOjptdXRlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50Ojpt
ZWRpYVBsYXllck11dGVDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZTo6c3VwcG9ydHNNdXRpbmcpOgorCiAyMDA5LTEyLTIwICBBbmRyZWkgUG9wZXNjdSAg
PGFuZHJlaXBAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGYyYTExNzguLjY1MzYyMWYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTEyMDQsNyArMTIwNCwxMiBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnNldE11dGVkKGJvb2wgbXV0ZWQpCiB7CiAgICAgaWYgKG1fbXV0ZWQgIT0gbXV0
ZWQpIHsKICAgICAgICAgbV9tdXRlZCA9IG11dGVkOwotICAgICAgICB1cGRhdGVWb2x1bWUoKTsK
KyAgICAgICAgaWYgKG1fcGxheWVyICYmIG1fcGxheWVyLT5zdXBwb3J0c011dGluZygpKSB7Cisg
ICAgICAgICAgICBtX3BsYXllci0+c2V0TXV0ZWQobV9tdXRlZCk7CisgICAgICAgICAgICBpZiAo
cmVuZGVyZXIoKSkKKyAgICAgICAgICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVu
dCgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHVwZGF0ZVZvbHVtZSgpOwogICAgICAg
ICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS52b2x1bWVjaGFuZ2VFdmVudCk7CiAgICAgfQog
fQpAQCAtMTQxMCwxMCArMTQxNSwyMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxh
eWVyVGltZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllclZvbHVtZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogewogICAgIGJlZ2luUHJvY2Vzc2lu
Z01lZGlhUGxheWVyQ2FsbGJhY2soKTsKKyAgICBpZiAobV9wbGF5ZXIpCisgICAgICAgIG1fdm9s
dW1lID0gbV9wbGF5ZXItPnZvbHVtZSgpOwogICAgIHVwZGF0ZVZvbHVtZSgpOwogICAgIGVuZFBy
b2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZChNZWRpYVBsYXllciopCit7CisgICAgYmVnaW5Qcm9j
ZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOworICAgIGlmIChtX3BsYXllcikKKyAgICAgICAg
bV9tdXRlZCA9IG1fcGxheWVyLT5tdXRlZCgpOworICAgIGlmIChyZW5kZXJlcigpKQorICAgICAg
ICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOworICAgIGVuZFByb2Nlc3NpbmdNZWRp
YVBsYXllckNhbGxiYWNrKCk7Cit9CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5
ZXJEdXJhdGlvbkNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogewogICAgIGJlZ2luUHJvY2Vzc2luZ01l
ZGlhUGxheWVyQ2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGJjMzlkZDcu
LjcxN2I4MzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTkzLDYgKzE5Myw3IEBAIHBy
aXZhdGU6IC8vIE1lZGlhUGxheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVy
UmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQ
bGF5ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBs
YXllclZvbHVtZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQ
bGF5ZXJNdXRlQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBs
YXllckR1cmF0aW9uQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBtZWRp
YVBsYXllclJhdGVDaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIG1lZGlh
UGxheWVyU2F3VW5zdXBwb3J0ZWRUcmFja3MoTWVkaWFQbGF5ZXIqKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggNzhkNzY2My4uMWYxYzg1NyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTg5LDYgKzg5LDkgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldFZvbHVtZShmbG9hdCkgeyB9CiAKKyAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgdm9pZCBzZXRNdXRlZChib29sKSB7IH0KKwogICAgIHZpcnR1YWwgYm9vbCBoYXNDbG9zZWRD
YXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldENs
b3NlZENhcHRpb25zVmlzaWJsZShib29sKSB7IH07CiAKQEAgLTE5OCw2ICsyMDEsNyBAQCBNZWRp
YVBsYXllcjo6TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1f
dmlzaWJsZShmYWxzZSkKICAgICAsIG1fcmF0ZSgxLjBmKQogICAgICwgbV92b2x1bWUoMS4wZikK
KyAgICAsIG1fbXV0ZWQoZmFsc2UpCiAgICAgLCBtX3ByZXNlcnZlc1BpdGNoKHRydWUpCiAgICAg
LCBtX2F1dG9idWZmZXIoZmFsc2UpCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8p
CkBAIC0zNzgsNiArMzgyLDIyIEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnNldFZvbHVtZShmbG9hdCB2
b2x1bWUpCiAgICAgbV9wcml2YXRlLT5zZXRWb2x1bWUodm9sdW1lKTsgICAKIH0KIAorYm9vbCBN
ZWRpYVBsYXllcjo6bXV0ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX211dGVkOworfQorCiti
b29sIE1lZGlhUGxheWVyOjpzdXBwb3J0c011dGluZygpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0
ZS0+c3VwcG9ydHNNdXRpbmcoKTsKK30KKwordm9pZCBNZWRpYVBsYXllcjo6c2V0TXV0ZWQoYm9v
bCBtdXRlZCkKK3sKKyAgICBtX211dGVkID0gbXV0ZWQ7CisgICAgbV9wcml2YXRlLT5zZXRNdXRl
ZChtdXRlZCk7Cit9CisKIGJvb2wgTWVkaWFQbGF5ZXI6Omhhc0Nsb3NlZENhcHRpb25zKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5oYXNDbG9zZWRDYXB0aW9ucygpOwpAQCAtNTYx
LDEyICs1ODEsMjAgQEAgdm9pZCBNZWRpYVBsYXllcjo6cmVhZHlTdGF0ZUNoYW5nZWQoKQogICAg
ICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclJlYWR5U3RhdGVDaGFuZ2VkKHRo
aXMpOwogfQogCi12b2lkIE1lZGlhUGxheWVyOjp2b2x1bWVDaGFuZ2VkKCkKK3ZvaWQgTWVkaWFQ
bGF5ZXI6OnZvbHVtZUNoYW5nZWQoZmxvYXQgbmV3Vm9sdW1lKQogeworICAgIG1fdm9sdW1lID0g
bmV3Vm9sdW1lOwogICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KQogICAgICAgICBtX21lZGlh
UGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclZvbHVtZUNoYW5nZWQodGhpcyk7CiB9CiAKK3ZvaWQg
TWVkaWFQbGF5ZXI6Om11dGVDaGFuZ2VkKGJvb2wgbmV3TXV0ZWQpCit7CisgICAgbV9tdXRlZCA9
IG5ld011dGVkOworICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KQorICAgICAgICBtX21lZGlh
UGxheWVyQ2xpZW50LT5tZWRpYVBsYXllck11dGVDaGFuZ2VkKHRoaXMpOworfQorCiB2b2lkIE1l
ZGlhUGxheWVyOjp0aW1lQ2hhbmdlZCgpCiB7CiAgICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQp
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggZWM4YWMzMy4uMDk2
N2IxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtODEsOSAr
ODEsMTIgQEAgcHVibGljOgogICAgIC8vIHRoZSByZWFkeSBzdGF0ZSBoYXMgY2hhbmdlZAogICAg
IHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyKikg
eyB9CiAKLSAgICAvLyB0aGUgdm9sdW1lIG9yIG11dGVkIHN0YXRlIGhhcyBjaGFuZ2VkCisgICAg
Ly8gdGhlIHZvbHVtZSBzdGF0ZSBoYXMgY2hhbmdlZAogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBs
YXllclZvbHVtZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKSB7IH0KIAorICAgIC8vIHRoZSBtdXRlIHN0
YXRlIGhhcyBjaGFuZ2VkCisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyTXV0ZUNoYW5nZWQo
TWVkaWFQbGF5ZXIqKSB7IH0KKwogICAgIC8vIHRpbWUgaGFzIGp1bXBlZCwgZWcuIG5vdCBhcyBh
IHJlc3VsdCBvZiBub3JtYWwgcGxheWJhY2sKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJU
aW1lQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQogICAgIApAQCAtMTgxLDYgKzE4NCwxMCBAQCBw
dWJsaWM6CiAgICAgZmxvYXQgdm9sdW1lKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxv
YXQpOwogCisgICAgYm9vbCBzdXBwb3J0c011dGluZygpOworICAgIGJvb2wgbXV0ZWQoKSBjb25z
dDsKKyAgICB2b2lkIHNldE11dGVkKGJvb2wpOworCiAgICAgYm9vbCBoYXNDbG9zZWRDYXB0aW9u
cygpIGNvbnN0OwogICAgIHZvaWQgc2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wgY2xvc2Vk
Q2FwdGlvbnNWaXNpYmxlKTsKIApAQCAtMjAzLDcgKzIxMCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpOwogICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoKTsK
LSAgICB2b2lkIHZvbHVtZUNoYW5nZWQoKTsKKyAgICB2b2lkIHZvbHVtZUNoYW5nZWQoZmxvYXQp
OworICAgIHZvaWQgbXV0ZUNoYW5nZWQoYm9vbCk7CiAgICAgdm9pZCB0aW1lQ2hhbmdlZCgpOwog
ICAgIHZvaWQgc2l6ZUNoYW5nZWQoKTsKICAgICB2b2lkIHJhdGVDaGFuZ2VkKCk7CkBAIC0yNDMs
NiArMjUxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdmlzaWJsZTsKICAgICBmbG9hdCBtX3Jh
dGU7CiAgICAgZmxvYXQgbV92b2x1bWU7CisgICAgYm9vbCBtX211dGVkOwogICAgIGJvb2wgbV9w
cmVzZXJ2ZXNQaXRjaDsKICAgICBib29sIG1fYXV0b2J1ZmZlcjsKICNpZiBFTkFCTEUoUExVR0lO
X1BST1hZX0ZPUl9WSURFTykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oCmluZGV4IDAzOTA2YmQuLmQ4MjJiMTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtNzYsNiArNzYsOSBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSA9IDA7CiAKKyAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
dm9pZCBzZXRNdXRlZChib29sKSA9IDA7CisKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ2xvc2VkQ2Fw
dGlvbnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfSAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wpIHsgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAppbmRleCA0OWY2Yzg2Li5mMTdhMTA2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAg
LTEwNSwxMyArMTA1LDI5IEBAIGdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZU1lc3NhZ2VDYWxs
YmFjayhHc3RCdXMqIGJ1cywgR3N0TWVzc2FnZSogbWVzc2FnZSwgZ3BvCiAKIHZvaWQgbWVkaWFQ
bGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKmVsZW1lbnQsIEdQYXJh
bVNwZWMgKnBzcGVjLCBncG9pbnRlciBkYXRhKQogeworICAgIC8vIFRoaXMgaXMgY2FsbGVkIHdo
ZW4gcGxheWJpbiByZWNlaXZlcyB0aGUgbm90aWZ5Ojp2b2x1bWUgc2lnbmFsLgogICAgIE1lZGlh
UGxheWVyUHJpdmF0ZSogbXAgPSByZWludGVycHJldF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZSo+
KGRhdGEpOwogICAgIG1wLT52b2x1bWVDaGFuZ2VkKCk7CiB9CiAKLWdib29sZWFuIG5vdGlmeVZv
bHVtZUlkbGVDYWxsYmFjayhNZWRpYVBsYXllciogbXApCitnYm9vbGVhbiBub3RpZnlWb2x1bWVJ
ZGxlQ2FsbGJhY2soZ3BvaW50ZXIgZGF0YSkKIHsKLSAgICBtcC0+dm9sdW1lQ2hhbmdlZCgpOwor
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZSogbXAgPSByZWludGVycHJldF9jYXN0PE1lZGlhUGxheWVy
UHJpdmF0ZSo+KGRhdGEpOworICAgIG1wLT52b2x1bWVDaGFuZ2VkQ2FsbGJhY2soKTsKKyAgICBy
ZXR1cm4gRkFMU0U7Cit9CisKK3ZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZWRDYWxs
YmFjayhHT2JqZWN0ICplbGVtZW50LCBHUGFyYW1TcGVjICpwc3BlYywgZ3BvaW50ZXIgZGF0YSkK
K3sKKyAgICAvLyBUaGlzIGlzIGNhbGxlZCB3aGVuIHBsYXliaW4gcmVjZWl2ZXMgdGhlIG5vdGlm
eTo6bXV0ZSBzaWduYWwuCisgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7CisgICAgbXAtPm11dGVDaGFuZ2VkKCk7
Cit9CisKK2dib29sZWFuIG5vdGlmeU11dGVJZGxlQ2FsbGJhY2soZ3BvaW50ZXIgZGF0YSkKK3sK
KyAgICBNZWRpYVBsYXllclByaXZhdGUqIG1wID0gcmVpbnRlcnByZXRfY2FzdDxNZWRpYVBsYXll
clByaXZhdGUqPihkYXRhKTsKKyAgICBtcC0+bXV0ZUNoYW5nZWRDYWxsYmFjaygpOwogICAgIHJl
dHVybiBGQUxTRTsKIH0KIApAQCAtMjExLDYgKzIyNyw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZTo6
TWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX3NlZWtpbmco
ZmFsc2UpCiAgICAgLCBtX2Vycm9yT2NjdXJlZChmYWxzZSkKICAgICAsIG1fdm9sdW1lSWRsZUlk
KC0xKQorICAgICwgbV9tdXRlSWRsZUlkKC0xKQogewogICAgIGRvR3N0SW5pdCgpOwogfQpAQCAt
MjIyLDYgKzIzOSwxMSBAQCBNZWRpYVBsYXllclByaXZhdGU6On5NZWRpYVBsYXllclByaXZhdGUo
KQogICAgICAgICBtX3ZvbHVtZUlkbGVJZCA9IC0xOwogICAgIH0KIAorICAgIGlmIChtX211dGVJ
ZGxlSWQpIHsKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fbXV0ZUlkbGVJZCk7CisgICAgICAg
IG1fbXV0ZUlkbGVJZCA9IC0xOworICAgIH0KKwogICAgIGlmIChtX2J1ZmZlcikKICAgICAgICAg
Z3N0X2J1ZmZlcl91bnJlZihtX2J1ZmZlcik7CiAgICAgbV9idWZmZXIgPSAwOwpAQCAtNDI5LDcg
KzQ1MSwxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVt
ZSkKICAgICBpZiAoIW1fcGxheUJpbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgZ19vYmplY3Rf
c2V0KEdfT0JKRUNUKG1fcGxheUJpbiksICJ2b2x1bWUiLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZv
bHVtZSksIE5VTEwpOworICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4sICJ2b2x1bWUiLCBzdGF0
aWNfY2FzdDxkb3VibGU+KHZvbHVtZSksIE5VTEwpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZTo6dm9sdW1lQ2hhbmdlZENhbGxiYWNrKCkKK3sKKyAgICBkb3VibGUgdm9sdW1lOworICAg
IGdfb2JqZWN0X2dldChtX3BsYXlCaW4sICJ2b2x1bWUiLCAmdm9sdW1lLCBOVUxMKTsKKyAgICBt
X3BsYXllci0+dm9sdW1lQ2hhbmdlZChzdGF0aWNfY2FzdDxmbG9hdD4odm9sdW1lKSk7CiB9CiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFuZ2VkKCkKQEAgLTQzOCwxMCArNDY3
LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnZvbHVtZUNoYW5nZWQoKQogICAgICAgICBn
X3NvdXJjZV9yZW1vdmUobV92b2x1bWVJZGxlSWQpOwogICAgICAgICBtX3ZvbHVtZUlkbGVJZCA9
IC0xOwogICAgIH0KLSAgICBtX3ZvbHVtZUlkbGVJZCA9IGdfaWRsZV9hZGQoKEdTb3VyY2VGdW5j
KSBub3RpZnlWb2x1bWVJZGxlQ2FsbGJhY2ssIG1fcGxheWVyKTsKKyAgICBtX3ZvbHVtZUlkbGVJ
ZCA9IGdfaWRsZV9hZGQoKEdTb3VyY2VGdW5jKSBub3RpZnlWb2x1bWVJZGxlQ2FsbGJhY2ssIHRo
aXMpOwogfQogCi0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRSYXRlKGZsb2F0IHJhdGUp
CiB7CiAgICAgR3N0U3RhdGUgc3RhdGU7CkBAIC03MTEsNiArNzM5LDM2IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlOjpkdXJhdGlvbkNoYW5nZWQoKQogICAgIG1fcGxheWVyLT5kdXJhdGlvbkNo
YW5nZWQoKTsKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKCkK
K3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldE11
dGVkKGJvb2wgbXV0ZWQpCit7CisgICAgaWYgKCFtX3BsYXlCaW4pCisgICAgICAgIHJldHVybjsK
KworICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4sICJtdXRlIiwgbXV0ZWQsIE5VTEwpOworfQor
Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWRDYWxsYmFjaygpCit7CisgICAg
Z2Jvb2xlYW4gbXV0ZWQ7CisgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbiwgIm11dGUiLCAmbXV0
ZWQsIE5VTEwpOworICAgIG1fcGxheWVyLT5tdXRlQ2hhbmdlZChzdGF0aWNfY2FzdDxib29sPiht
dXRlZCkpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWQoKQorewor
ICAgIGlmIChtX211dGVJZGxlSWQpIHsKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fbXV0ZUlk
bGVJZCk7CisgICAgICAgIG1fbXV0ZUlkbGVJZCA9IC0xOworICAgIH0KKworICAgIG1fbXV0ZUlk
bGVJZCA9IGdfaWRsZV9hZGQoKEdTb3VyY2VGdW5jKSBub3RpZnlNdXRlSWRsZUNhbGxiYWNrLCB0
aGlzKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmxvYWRpbmdGYWlsZWQoTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZSBlcnJvcikKIHsKICAgICBtX2Vycm9yT2NjdXJlZCA9IHRydWU7
CkBAIC05MjUsMTAgKzk4MywxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6Y3JlYXRlR1NU
UGxheUJpbihTdHJpbmcgdXJsKQogICAgIGdfc2lnbmFsX2Nvbm5lY3QoYnVzLCAibWVzc2FnZSIs
IEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlTWVzc2FnZUNhbGxiYWNrKSwgdGhpcyk7CiAg
ICAgZ3N0X29iamVjdF91bnJlZihidXMpOwogCi0gICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKG1f
cGxheUJpbiksICJ1cmkiLCB1cmwudXRmOCgpLmRhdGEoKSwKLSAgICAgICAgICAgICAgICAgTlVM
TCk7CisgICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKG1fcGxheUJpbiksICJ1cmkiLCB1cmwudXRm
OCgpLmRhdGEoKSwgTlVMTCk7CiAKICAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKG1fcGxh
eUJpbiksICJub3RpZnk6OnZvbHVtZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlVm9s
dW1lQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CisgICAgZ19zaWduYWxfY29ubmVjdChtX3BsYXlC
aW4sICJub3RpZnk6Om11dGUiLCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFu
Z2VkQ2FsbGJhY2spLCB0aGlzKTsKIAogICAgIG1fdmlkZW9TaW5rID0gd2Via2l0X3ZpZGVvX3Np
bmtfbmV3KCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggNDcxNzk5OS4uN2I3NGYxOSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTc0LDggKzc0LDE1IEBAIGNsYXNzIE1lZGlhUGxh
eWVyUHJpdmF0ZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogICAgICAg
ICAgICAgdm9pZCBzZXRFbmRUaW1lKGZsb2F0KTsKIAogICAgICAgICAgICAgdm9pZCBzZXRSYXRl
KGZsb2F0KTsKKwogICAgICAgICAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOwogICAgICAgICAg
ICAgdm9pZCB2b2x1bWVDaGFuZ2VkKCk7CisgICAgICAgICAgICB2b2lkIHZvbHVtZUNoYW5nZWRD
YWxsYmFjaygpOworCisgICAgICAgICAgICBib29sIHN1cHBvcnRzTXV0aW5nKCk7CisgICAgICAg
ICAgICB2b2lkIHNldE11dGVkKGJvb2wpOworICAgICAgICAgICAgdm9pZCBtdXRlQ2hhbmdlZCgp
OworICAgICAgICAgICAgdm9pZCBtdXRlQ2hhbmdlZENhbGxiYWNrKCk7CiAKICAgICAgICAgICAg
IGludCBkYXRhUmF0ZSgpIGNvbnN0OwogCkBAIC0xNDIsNiArMTQ5LDcgQEAgY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAgICAg
ICAgICAgICBib29sIG1fc2Vla2luZzsKICAgICAgICAgICAgIGJvb2wgbV9lcnJvck9jY3VyZWQ7
CiAgICAgICAgICAgICBndWludCBtX3ZvbHVtZUlkbGVJZDsKKyAgICAgICAgICAgIGd1aW50IG1f
bXV0ZUlkbGVJZDsKICAgICB9OwogfQogCi0tIAoxLjYuMy4z
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45274</attachid>
            <date>2009-12-20 06:35:51 -0800</date>
            <delta_ts>2010-01-27 05:52:56 -0800</delta_ts>
            <desc>new API in MediaPlayer for mute control and mute control in MediaPlayerPrivateGStreamer</desc>
            <filename>new-API-in-MediaPlayer-for-mute-control-and-mute-c.patch</filename>
            <type>text/plain</type>
            <size>23489</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA4NGZhOTNmODE3NjBkMDVmMTU3YzJhNTE3Y2QwMGRkNGY2OGExZGE0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBTdW4sIDIwIERlYyAyMDA5IDE1OjM0OjA1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
bmV3IEFQSSBpbiBNZWRpYVBsYXllciBmb3IgbXV0ZSBjb250cm9sIGFuZCBtdXRlIGNvbnRyb2wg
aW4KIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcgoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgODAgKysrKysrKysrKysrKysrKysr
KysKIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCAgICAgICAgICAgICAgICAgIHwg
ICAxOSArKysrKy0KIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggICAgICAgICAgICAg
ICAgICAgIHwgICAgMSArCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cCAgICAgICAgICB8ICAgMzAgKysrKysrKy0KIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaCAgICAgICAgICAgIHwgICAxMyArKystCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oICAgICB8ICAgIDMgKwogLi4uL2dyYXBoaWNzL2d0ay9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwICAgfCAgIDcyICsrKysrKysrKysrKysrKyst
LQogLi4uL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCAgICAgfCAg
ICA4ICsrCiAuLi4vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggICAgICAg
ICB8ICAgIDIgKwogLi4uL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSAg
ICAgICAgfCAgICA0ICsKIC4uLi9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24u
Y3BwICAgICAgIHwgICAgNCArCiAuLi4vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhv
bm9uLmggICAgICAgICB8ICAgIDIgKwogLi4uL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1Rp
bWVXaW4uY3BwICAgICAgICAgfCAgICA0ICsKIC4uLi9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQ
cml2YXRlUXVpY2tUaW1lV2luLmggIHwgICAgNCArLQogLi4uL2dyYXBoaWNzL3dpbmNlL01lZGlh
UGxheWVyUHJpdmF0ZVdpbmNlLmggICAgICAgfCAgICAyICsKIFdlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArKysrCiBXZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmggICAgICB8ICAgIDMgKy0KIFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCAgIHwgICAxMCArKy0KIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmggICAgIHwgICAgNiAr
LQogMTkgZmlsZXMgY2hhbmdlZCwgMjY3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZGQ3MWZhZi4uYmUwZmNlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MyBAQAorMjAwOS0xMi0yMCAgUGhpbGlwcGUgTm9y
bWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW0dUS10gc2V0IHBsYXliaW4gbXV0ZSBwcm9wZXJ0eSBkZXBl
bmRpbmcgb24gdm9sdW1lIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMTU4NgorCisgICAgICAgIEFkYXB0ZWQgdGhlIG90aGVyIE1lZGlhUGxh
eWVyIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlOjpzdXBwb3J0c011dGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlOjpzZXRNdXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVk
aWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZTo6c2V0TXV0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlh
UGxheWVyUHJpdmF0ZVBob25vbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlOjpzdXBwb3J0c011dGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGU6OnNldE11dGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmg6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5jZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c011dGluZyk6CisKKzIwMDktMTItMjAgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIHNldCBwbGF5YmluIG11dGUgcHJv
cGVydHkgZGVwZW5kaW5nIG9uIHZvbHVtZSB2YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1ODYKKworICAgICAgICBOZXcgQVBJIGluIE1lZGlh
UGxheWVyIGZvciBtdXRlIGNvbnRyb2wuIFBsYXllciBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAg
c3VwcG9ydGluZyBtdXRlIGNvbnRyb2wgKGJ5IG5vdCBzZXR0aW5nIHZvbHVtZSB0byAwKSBzaG91
bGQKKyAgICAgICAgaW1wbGVtZW50IHN1cHBvcnRzTXV0aW5nKCkgYW5kIHNldE11dGVkKCkuCisK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6bWVkaWFQbGF5ZXJWb2x1bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyTXV0ZUNoYW5nZWQpOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6OnN1cHBv
cnRzTXV0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6OnNl
dE11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpNZWRpYVBsYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6bXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6dm9sdW1lQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6bXV0ZUNoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllckNsaWVudDo6bWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnN1cHBvcnRzTXV0aW5nKToKKworMjAwOS0x
Mi0yMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gc2V0IHBsYXliaW4g
bXV0ZSBwcm9wZXJ0eSBkZXBlbmRpbmcgb24gdm9sdW1lIHZhbHVlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTU4NgorCisgICAgICAgIE11dGUgY29u
dHJvbCBpbiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIKKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6bWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6Om5vdGlmeVZvbHVtZUlkbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjptZWRpYVBsYXllclByaXZhdGVNdXRlQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6Om5vdGlmeU11dGVJZGxlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlOjpNZWRpYVBsYXllclByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlOjp+TWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZTo6c2V0Vm9sdW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZTo6dm9sdW1lQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZTo6dm9sdW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlOjptdXRlQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlOjpjcmVhdGVHU1RQbGF5QmluKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
dGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisKIDIwMDktMTItMjAgIFBhdmVsIEZl
bGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAg
Yi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZjJhMTE3OC4uNjUzNjIx
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTIwNCw3ICsxMjA0LDEyIEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKIHsKICAgICBpZiAobV9t
dXRlZCAhPSBtdXRlZCkgewogICAgICAgICBtX211dGVkID0gbXV0ZWQ7Ci0gICAgICAgIHVwZGF0
ZVZvbHVtZSgpOworICAgICAgICBpZiAobV9wbGF5ZXIgJiYgbV9wbGF5ZXItPnN1cHBvcnRzTXV0
aW5nKCkpIHsKKyAgICAgICAgICAgIG1fcGxheWVyLT5zZXRNdXRlZChtX211dGVkKTsKKyAgICAg
ICAgICAgIGlmIChyZW5kZXJlcigpKQorICAgICAgICAgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0
ZUZyb21FbGVtZW50KCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdXBkYXRlVm9sdW1l
KCk7CiAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnZvbHVtZWNoYW5nZUV2ZW50
KTsKICAgICB9CiB9CkBAIC0xNDEwLDEwICsxNDE1LDIyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXllciopCiB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopCiB7CiAgICAgYmVn
aW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOworICAgIGlmIChtX3BsYXllcikKKyAg
ICAgICAgbV92b2x1bWUgPSBtX3BsYXllci0+dm9sdW1lKCk7CiAgICAgdXBkYXRlVm9sdW1lKCk7
CiAgICAgZW5kUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKIH0KIAordm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYVBsYXllck11dGVDaGFuZ2VkKE1lZGlhUGxheWVyKikKK3sKKyAg
ICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CisgICAgaWYgKG1fcGxheWVy
KQorICAgICAgICBtX211dGVkID0gbV9wbGF5ZXItPm11dGVkKCk7CisgICAgaWYgKHJlbmRlcmVy
KCkpCisgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgZW5kUHJv
Y2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVBsYXllckR1cmF0aW9uQ2hhbmdlZChNZWRpYVBsYXllciopCiB7CiAgICAgYmVnaW5Q
cm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5k
ZXggYmMzOWRkNy4uNzE3YjgzNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xOTMsNiAr
MTkzLDcgQEAgcHJpdmF0ZTogLy8gTWVkaWFQbGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQg
bWVkaWFQbGF5ZXJSZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwg
dm9pZCBtZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2
b2lkIG1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopOworICAgIHZpcnR1YWwg
dm9pZCBtZWRpYVBsYXllck11dGVDaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2
b2lkIG1lZGlhUGxheWVyRHVyYXRpb25DaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVh
bCB2b2lkIG1lZGlhUGxheWVyUmF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFs
IHZvaWQgbWVkaWFQbGF5ZXJTYXdVbnN1cHBvcnRlZFRyYWNrcyhNZWRpYVBsYXllciopOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA3OGQ3NjYzLi4xZjFj
ODU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtODks
NiArODksOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSB7
IH0KIAorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c011dGluZygpIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCB2b2lkIHNldE11dGVkKGJvb2wpIHsgfQorCiAgICAgdmlydHVhbCBib29s
IGhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wpIHsgfTsKIApAQCAtMTk4LDYgKzIw
MSw3IEBAIE1lZGlhUGxheWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCogY2xpZW50
KQogICAgICwgbV92aXNpYmxlKGZhbHNlKQogICAgICwgbV9yYXRlKDEuMGYpCiAgICAgLCBtX3Zv
bHVtZSgxLjBmKQorICAgICwgbV9tdXRlZChmYWxzZSkKICAgICAsIG1fcHJlc2VydmVzUGl0Y2go
dHJ1ZSkKICAgICAsIG1fYXV0b2J1ZmZlcihmYWxzZSkKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZ
X0ZPUl9WSURFTykKQEAgLTM3OCw2ICszODIsMjIgQEAgdm9pZCBNZWRpYVBsYXllcjo6c2V0Vm9s
dW1lKGZsb2F0IHZvbHVtZSkKICAgICBtX3ByaXZhdGUtPnNldFZvbHVtZSh2b2x1bWUpOyAgIAog
fQogCitib29sIE1lZGlhUGxheWVyOjptdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbXV0
ZWQ7Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzTXV0aW5nKCkKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5zdXBwb3J0c011dGluZygpOworfQorCit2b2lkIE1lZGlhUGxheWVyOjpz
ZXRNdXRlZChib29sIG11dGVkKQoreworICAgIG1fbXV0ZWQgPSBtdXRlZDsKKyAgICBtX3ByaXZh
dGUtPnNldE11dGVkKG11dGVkKTsKK30KKwogYm9vbCBNZWRpYVBsYXllcjo6aGFzQ2xvc2VkQ2Fw
dGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZhdGUtPmhhc0Nsb3NlZENhcHRpb25z
KCk7CkBAIC01NjEsMTIgKzU4MSwyMCBAQCB2b2lkIE1lZGlhUGxheWVyOjpyZWFkeVN0YXRlQ2hh
bmdlZCgpCiAgICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyUmVhZHlTdGF0
ZUNoYW5nZWQodGhpcyk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXI6OnZvbHVtZUNoYW5nZWQoKQor
dm9pZCBNZWRpYVBsYXllcjo6dm9sdW1lQ2hhbmdlZChmbG9hdCBuZXdWb2x1bWUpCiB7CisgICAg
bV92b2x1bWUgPSBuZXdWb2x1bWU7CiAgICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCiAgICAg
ICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZCh0aGlzKTsK
IH0KIAordm9pZCBNZWRpYVBsYXllcjo6bXV0ZUNoYW5nZWQoYm9vbCBuZXdNdXRlZCkKK3sKKyAg
ICBtX211dGVkID0gbmV3TXV0ZWQ7CisgICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCisgICAg
ICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyTXV0ZUNoYW5nZWQodGhpcyk7Cit9
CisKIHZvaWQgTWVkaWFQbGF5ZXI6OnRpbWVDaGFuZ2VkKCkKIHsKICAgICBpZiAobV9tZWRpYVBs
YXllckNsaWVudCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBl
YzhhYzMzLi4wOTY3YjE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
CkBAIC04MSw5ICs4MSwxMiBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIHJlYWR5IHN0YXRlIGhhcyBj
aGFuZ2VkCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmVhZHlTdGF0ZUNoYW5nZWQoTWVk
aWFQbGF5ZXIqKSB7IH0KIAotICAgIC8vIHRoZSB2b2x1bWUgb3IgbXV0ZWQgc3RhdGUgaGFzIGNo
YW5nZWQKKyAgICAvLyB0aGUgdm9sdW1lIHN0YXRlIGhhcyBjaGFuZ2VkCiAgICAgdmlydHVhbCB2
b2lkIG1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQogCisgICAgLy8g
dGhlIG11dGUgc3RhdGUgaGFzIGNoYW5nZWQKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJN
dXRlQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQorCiAgICAgLy8gdGltZSBoYXMganVtcGVkLCBl
Zy4gbm90IGFzIGEgcmVzdWx0IG9mIG5vcm1hbCBwbGF5YmFjawogICAgIHZpcnR1YWwgdm9pZCBt
ZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxheWVyKikgeyB9CiAgICAgCkBAIC0xODEsNiAr
MTg0LDEwIEBAIHB1YmxpYzoKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKICAgICB2b2lkIHNl
dFZvbHVtZShmbG9hdCk7CiAKKyAgICBib29sIHN1cHBvcnRzTXV0aW5nKCk7CisgICAgYm9vbCBt
dXRlZCgpIGNvbnN0OworICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisKICAgICBib29sIGhhc0Ns
b3NlZENhcHRpb25zKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUo
Ym9vbCBjbG9zZWRDYXB0aW9uc1Zpc2libGUpOwogCkBAIC0yMDMsNyArMjEwLDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiAgICAgdm9pZCByZWFkeVN0YXRl
Q2hhbmdlZCgpOwotICAgIHZvaWQgdm9sdW1lQ2hhbmdlZCgpOworICAgIHZvaWQgdm9sdW1lQ2hh
bmdlZChmbG9hdCk7CisgICAgdm9pZCBtdXRlQ2hhbmdlZChib29sKTsKICAgICB2b2lkIHRpbWVD
aGFuZ2VkKCk7CiAgICAgdm9pZCBzaXplQ2hhbmdlZCgpOwogICAgIHZvaWQgcmF0ZUNoYW5nZWQo
KTsKQEAgLTI0Myw2ICsyNTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92aXNpYmxlOwogICAg
IGZsb2F0IG1fcmF0ZTsKICAgICBmbG9hdCBtX3ZvbHVtZTsKKyAgICBib29sIG1fbXV0ZWQ7CiAg
ICAgYm9vbCBtX3ByZXNlcnZlc1BpdGNoOwogICAgIGJvb2wgbV9hdXRvYnVmZmVyOwogI2lmIEVO
QUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggMDM5MDZiZC4uZDgyMmIxMyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC03Niw2ICs3
Niw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRWb2x1bWUoZmxvYXQpID0gMDsK
IAorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c011dGluZygpIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCB2b2lkIHNldE11dGVkKGJvb2wpID0gMDsKKwogICAgIHZpcnR1YWwgYm9vbCBo
YXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9ICAgIAogICAgIHZpcnR1
YWwgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkgeyB9CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCmluZGV4IDQ5ZjZjODYuLmYxN2ExMDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtMTA1LDEzICsxMDUsMjkgQEAgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRl
TWVzc2FnZUNhbGxiYWNrKEdzdEJ1cyogYnVzLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBncG8KIAog
dm9pZCBtZWRpYVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCAqZWxl
bWVudCwgR1BhcmFtU3BlYyAqcHNwZWMsIGdwb2ludGVyIGRhdGEpCiB7CisgICAgLy8gVGhpcyBp
cyBjYWxsZWQgd2hlbiBwbGF5YmluIHJlY2VpdmVzIHRoZSBub3RpZnk6OnZvbHVtZSBzaWduYWwu
CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5
ZXJQcml2YXRlKj4oZGF0YSk7CiAgICAgbXAtPnZvbHVtZUNoYW5nZWQoKTsKIH0KIAotZ2Jvb2xl
YW4gbm90aWZ5Vm9sdW1lSWRsZUNhbGxiYWNrKE1lZGlhUGxheWVyKiBtcCkKK2dib29sZWFuIG5v
dGlmeVZvbHVtZUlkbGVDYWxsYmFjayhncG9pbnRlciBkYXRhKQogewotICAgIG1wLT52b2x1bWVD
aGFuZ2VkKCk7CisgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7CisgICAgbXAtPnZvbHVtZUNoYW5nZWRDYWxsYmFj
aygpOworICAgIHJldHVybiBGQUxTRTsKK30KKwordm9pZCBtZWRpYVBsYXllclByaXZhdGVNdXRl
Q2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKmVsZW1lbnQsIEdQYXJhbVNwZWMgKnBzcGVjLCBncG9p
bnRlciBkYXRhKQoreworICAgIC8vIFRoaXMgaXMgY2FsbGVkIHdoZW4gcGxheWJpbiByZWNlaXZl
cyB0aGUgbm90aWZ5OjptdXRlIHNpZ25hbC4KKyAgICBNZWRpYVBsYXllclByaXZhdGUqIG1wID0g
cmVpbnRlcnByZXRfY2FzdDxNZWRpYVBsYXllclByaXZhdGUqPihkYXRhKTsKKyAgICBtcC0+bXV0
ZUNoYW5nZWQoKTsKK30KKworZ2Jvb2xlYW4gbm90aWZ5TXV0ZUlkbGVDYWxsYmFjayhncG9pbnRl
ciBkYXRhKQoreworICAgIE1lZGlhUGxheWVyUHJpdmF0ZSogbXAgPSByZWludGVycHJldF9jYXN0
PE1lZGlhUGxheWVyUHJpdmF0ZSo+KGRhdGEpOworICAgIG1wLT5tdXRlQ2hhbmdlZENhbGxiYWNr
KCk7CiAgICAgcmV0dXJuIEZBTFNFOwogfQogCkBAIC0yMTEsNiArMjI3LDcgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlOjpNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAs
IG1fc2Vla2luZyhmYWxzZSkKICAgICAsIG1fZXJyb3JPY2N1cmVkKGZhbHNlKQogICAgICwgbV92
b2x1bWVJZGxlSWQoLTEpCisgICAgLCBtX211dGVJZGxlSWQoLTEpCiB7CiAgICAgZG9Hc3RJbml0
KCk7CiB9CkBAIC0yMjIsNiArMjM5LDExIEBAIE1lZGlhUGxheWVyUHJpdmF0ZTo6fk1lZGlhUGxh
eWVyUHJpdmF0ZSgpCiAgICAgICAgIG1fdm9sdW1lSWRsZUlkID0gLTE7CiAgICAgfQogCisgICAg
aWYgKG1fbXV0ZUlkbGVJZCkgeworICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV9tdXRlSWRsZUlk
KTsKKyAgICAgICAgbV9tdXRlSWRsZUlkID0gLTE7CisgICAgfQorCiAgICAgaWYgKG1fYnVmZmVy
KQogICAgICAgICBnc3RfYnVmZmVyX3VucmVmKG1fYnVmZmVyKTsKICAgICBtX2J1ZmZlciA9IDA7
CkBAIC00MjksNyArNDUxLDE0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRWb2x1bWUo
ZmxvYXQgdm9sdW1lKQogICAgIGlmICghbV9wbGF5QmluKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBnX29iamVjdF9zZXQoR19PQkpFQ1QobV9wbGF5QmluKSwgInZvbHVtZSIsIHN0YXRpY19jYXN0
PGRvdWJsZT4odm9sdW1lKSwgTlVMTCk7CisgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbiwgInZv
bHVtZSIsIHN0YXRpY19jYXN0PGRvdWJsZT4odm9sdW1lKSwgTlVMTCk7Cit9CisKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFuZ2VkQ2FsbGJhY2soKQoreworICAgIGRvdWJsZSB2
b2x1bWU7CisgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbiwgInZvbHVtZSIsICZ2b2x1bWUsIE5V
TEwpOworICAgIG1fcGxheWVyLT52b2x1bWVDaGFuZ2VkKHN0YXRpY19jYXN0PGZsb2F0Pih2b2x1
bWUpKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnZvbHVtZUNoYW5nZWQoKQpAQCAt
NDM4LDEwICs0NjcsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6dm9sdW1lQ2hhbmdlZCgp
CiAgICAgICAgIGdfc291cmNlX3JlbW92ZShtX3ZvbHVtZUlkbGVJZCk7CiAgICAgICAgIG1fdm9s
dW1lSWRsZUlkID0gLTE7CiAgICAgfQotICAgIG1fdm9sdW1lSWRsZUlkID0gZ19pZGxlX2FkZCgo
R1NvdXJjZUZ1bmMpIG5vdGlmeVZvbHVtZUlkbGVDYWxsYmFjaywgbV9wbGF5ZXIpOworICAgIG1f
dm9sdW1lSWRsZUlkID0gZ19pZGxlX2FkZCgoR1NvdXJjZUZ1bmMpIG5vdGlmeVZvbHVtZUlkbGVD
YWxsYmFjaywgdGhpcyk7CiB9CiAKLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldFJhdGUo
ZmxvYXQgcmF0ZSkKIHsKICAgICBHc3RTdGF0ZSBzdGF0ZTsKQEAgLTcxMSw2ICs3MzksMzYgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmR1cmF0aW9uQ2hhbmdlZCgpCiAgICAgbV9wbGF5ZXIt
PmR1cmF0aW9uQ2hhbmdlZCgpOwogfQogCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9y
dHNNdXRpbmcoKQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBpZiAoIW1fcGxheUJpbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbiwgIm11dGUiLCBtdXRlZCwg
TlVMTCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjptdXRlQ2hhbmdlZENhbGxiYWNr
KCkKK3sKKyAgICBnYm9vbGVhbiBtdXRlZDsKKyAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLCAi
bXV0ZSIsICZtdXRlZCwgTlVMTCk7CisgICAgbV9wbGF5ZXItPm11dGVDaGFuZ2VkKHN0YXRpY19j
YXN0PGJvb2w+KG11dGVkKSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjptdXRlQ2hh
bmdlZCgpCit7CisgICAgaWYgKG1fbXV0ZUlkbGVJZCkgeworICAgICAgICBnX3NvdXJjZV9yZW1v
dmUobV9tdXRlSWRsZUlkKTsKKyAgICAgICAgbV9tdXRlSWRsZUlkID0gLTE7CisgICAgfQorCisg
ICAgbV9tdXRlSWRsZUlkID0gZ19pZGxlX2FkZCgoR1NvdXJjZUZ1bmMpIG5vdGlmeU11dGVJZGxl
Q2FsbGJhY2ssIHRoaXMpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bG9hZGluZ0Zh
aWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIGVycm9yKQogewogICAgIG1fZXJyb3JPY2N1
cmVkID0gdHJ1ZTsKQEAgLTkyNSwxMCArOTgzLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
OjpjcmVhdGVHU1RQbGF5QmluKFN0cmluZyB1cmwpCiAgICAgZ19zaWduYWxfY29ubmVjdChidXMs
ICJtZXNzYWdlIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVNZXNzYWdlQ2FsbGJhY2sp
LCB0aGlzKTsKICAgICBnc3Rfb2JqZWN0X3VucmVmKGJ1cyk7CiAKLSAgICBnX29iamVjdF9zZXQo
R19PQkpFQ1QobV9wbGF5QmluKSwgInVyaSIsIHVybC51dGY4KCkuZGF0YSgpLAotICAgICAgICAg
ICAgICAgICBOVUxMKTsKKyAgICBnX29iamVjdF9zZXQoR19PQkpFQ1QobV9wbGF5QmluKSwgInVy
aSIsIHVybC51dGY4KCkuZGF0YSgpLCBOVUxMKTsKIAogICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19P
QkpFQ1QobV9wbGF5QmluKSwgIm5vdGlmeTo6dm9sdW1lIiwgR19DQUxMQkFDSyhtZWRpYVBsYXll
clByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25u
ZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6bXV0ZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2
YXRlTXV0ZUNoYW5nZWRDYWxsYmFjayksIHRoaXMpOwogCiAgICAgbV92aWRlb1NpbmsgPSB3ZWJr
aXRfdmlkZW9fc2lua19uZXcoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA0NzE3OTk5
Li43Yjc0ZjE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNzQsOCArNzQsMTUgQEAgY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZSB7CiAgICAgICAgICAgICB2b2lkIHNldEVuZFRpbWUoZmxvYXQpOwogCiAgICAgICAgICAgICB2
b2lkIHNldFJhdGUoZmxvYXQpOworCiAgICAgICAgICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7
CiAgICAgICAgICAgICB2b2lkIHZvbHVtZUNoYW5nZWQoKTsKKyAgICAgICAgICAgIHZvaWQgdm9s
dW1lQ2hhbmdlZENhbGxiYWNrKCk7CisKKyAgICAgICAgICAgIGJvb2wgc3VwcG9ydHNNdXRpbmco
KTsKKyAgICAgICAgICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisgICAgICAgICAgICB2b2lkIG11
dGVDaGFuZ2VkKCk7CisgICAgICAgICAgICB2b2lkIG11dGVDaGFuZ2VkQ2FsbGJhY2soKTsKIAog
ICAgICAgICAgICAgaW50IGRhdGFSYXRlKCkgY29uc3Q7CiAKQEAgLTE0Miw2ICsxNDksNyBAQCBj
bGFzcyBNZWRpYVBsYXllclByaXZhdGUgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlIHsKICAgICAgICAgICAgIGJvb2wgbV9zZWVraW5nOwogICAgICAgICAgICAgYm9vbCBtX2Vy
cm9yT2NjdXJlZDsKICAgICAgICAgICAgIGd1aW50IG1fdm9sdW1lSWRsZUlkOworICAgICAgICAg
ICAgZ3VpbnQgbV9tdXRlSWRsZUlkOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCmluZGV4IDdh
YWY5NWQuLmY2YmE2ZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtMTAwLDYgKzEwMCw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZXRSYXRlKGZsb2F0KTsKICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7
CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXNQaXRjaChib29sKTsKKyAgICBib29sIHN1cHBvcnRzTXV0
aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIHNldE11dGVkKGJvb2wpOwogCiAgICAg
Ym9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0OwogICAgIHZvaWQgc2V0Q2xvc2VkQ2FwdGlv
bnNWaXNpYmxlKGJvb2wpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCBkZmI1OTU4Li5lNzFmMTBkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZh
dGVRVEtpdC5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5tbQpAQCAtNzk2LDYgKzc5NiwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZTo6c2V0UHJlc2VydmVzUGl0Y2goYm9vbCBwcmVzZXJ2ZXNQaXRjaCkKICAgICBjcmVhdGVR
VE1vdmllKFttb3ZpZUF0dHJpYnV0ZXMgdmFsdWVGb3JLZXk6UVRNb3ZpZVVSTEF0dHJpYnV0ZV0s
IG1vdmllQXR0cmlidXRlcyk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRNdXRl
ZChib29sKQoreworfQorCiBpbnQgTWVkaWFQbGF5ZXJQcml2YXRlOjpkYXRhUmF0ZSgpIGNvbnN0
CiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uY3BwCmluZGV4
IGY0NDY3NTUuLjFjM2RiNDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5jcHAKQEAgLTMwOCw2ICszMDgsMTAg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKGJvb2wgbXV0ZWQpCiAgICAgbV9h
dWRpb091dHB1dC0+c2V0TXV0ZWQobXV0ZWQpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZTo6c2V0TXV0ZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQogCiBpbnQgTWVk
aWFQbGF5ZXJQcml2YXRlOjpkYXRhUmF0ZSgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5oIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uaAppbmRleCBl
MTE5M2I2Li4xNTA2MDQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmgKQEAgLTk5LDYgKzk5LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFJhdGUoZmxvYXQpOwogICAgICAgICB2b2lk
IHNldFZvbHVtZShmbG9hdCk7CiAgICAgICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisgICAgICAg
IGJvb2wgc3VwcG9ydHNNdXRpbmcoKSB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2b2lkIHNl
dE11dGVkKGJvb2wpOwogCiAgICAgICAgIGludCBkYXRhUmF0ZSgpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlj
a1RpbWVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQ
cml2YXRlUXVpY2tUaW1lV2luLmNwcAppbmRleCBhNWJlZWExLi44NmUyYTJlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1Rp
bWVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAKQEAgLTMxOCw2ICszMTgsMTAgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGU6OnNldFByZXNlcnZlc1BpdGNoKGJvb2wgcHJlc2VydmVzUGl0Y2gpCiAgICAg
bV9xdE1vdmllLT5zZXRQcmVzZXJ2ZXNQaXRjaChwcmVzZXJ2ZXNQaXRjaCk7CiB9CiAKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRNdXRlZChib29sKQoreworfQorCiBib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZTo6aGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdAogewogICAgIGlmICghbV9xdE1v
dmllKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlUXVpY2tUaW1lV2luLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaAppbmRleCAyYmNjYmJmLi5lNWQ3MmQ2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZh
dGVRdWlja1RpbWVXaW4uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRp
YVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaApAQCAtNzQsNyArNzQsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc2V0UmF0ZShmbG9hdCk7CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOwogICAg
IHZvaWQgc2V0UHJlc2VydmVzUGl0Y2goYm9vbCk7Ci0gICAgCisgICAgYm9vbCBzdXBwb3J0c011
dGluZygpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9pZCBzZXRNdXRlZChib29sKTsKKwogICAg
IGludCBkYXRhUmF0ZSgpIGNvbnN0OwogICAgIAogICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3Rh
dGUgbmV0d29ya1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRl
V2luY2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2
YXRlV2luY2UuaAppbmRleCAyZDZjMzU4Li5kYTJlNjM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5jZS5oCkBA
IC02NSw2ICs2NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHNldFJh
dGUoZmxvYXQpOwogICAgICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7CisgICAgICAgIGJvb2wg
c3VwcG9ydHNNdXRpbmcoKSB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2b2lkIHNldE11dGVk
KGJvb2wpOwogCiAgICAgICAgIGludCBkYXRhUmF0ZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCAyZDNlODhlLi40YjQ2NjZjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAwOS0x
Mi0yMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gc2V0IHBsYXliaW4g
bXV0ZSBwcm9wZXJ0eSBkZXBlbmRpbmcgb24gdm9sdW1lIHZhbHVlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTU4NgorCisgICAgICAgIEFkYXB0ZWQg
dGhlIE1lZGlhUGxheWVyIGltcGxlbWVudGF0aW9uIChBUEkgY2hhbmdlcykuCisKKyAgICAgICAg
KiBwdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaDoKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsOjp2b2x1bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjptdXRlQ2hhbmdlZCk6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1
cHBvcnRzTXV0aW5nKToKKwogMjAwOS0xMi0xOCAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oIGIvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oCmluZGV4IDU1OGZiNGEuLjQ3Y2U2
NGUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGll
bnQuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgK
QEAgLTQwLDcgKzQwLDggQEAgY2xhc3MgV2ViTWVkaWFQbGF5ZXJDbGllbnQgewogcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCByZWFkeVN0YXRlQ2hhbmdlZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdm9sdW1lQ2hh
bmdlZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdm9sdW1lQ2hhbmdlZChmbG9hdCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBtdXRlQ2hhbmdlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHRpbWVDaGFuZ2VkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkdXJhdGlvbkNoYW5nZWQoKSA9IDA7CmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKaW5kZXggYzJhMzUzNS4uYjFmMWYw
MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudElt
cGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
LmNwcApAQCAtODUsMTAgKzg1LDE2IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpy
ZWFkeVN0YXRlQ2hhbmdlZCgpCiAgICAgbV9tZWRpYVBsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQo
KTsKIH0KIAotdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnZvbHVtZUNoYW5nZWQoKQor
dm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnZvbHVtZUNoYW5nZWQoZmxvYXQgbmV3Vm9s
dW1lKQogewogICAgIEFTU0VSVChtX21lZGlhUGxheWVyKTsKLSAgICBtX21lZGlhUGxheWVyLT52
b2x1bWVDaGFuZ2VkKCk7CisgICAgbV9tZWRpYVBsYXllci0+dm9sdW1lQ2hhbmdlZChuZXdWb2x1
bWUpOworfQorCit2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bXV0ZUNoYW5nZWQoYm9v
bCBuZXdNdXRlKQoreworICAgIEFTU0VSVChtX21lZGlhUGxheWVyKTsKKyAgICBtX21lZGlhUGxh
eWVyLT5tdXRlQ2hhbmdlZChuZXdNdXRlKTsKIH0KIAogdm9pZCBXZWJNZWRpYVBsYXllckNsaWVu
dEltcGw6OnRpbWVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5oCmluZGV4IDdmMDg3ZDAuLmIxOTFmMTYgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtNTMsNyArNTMsOCBAQCBw
dWJsaWM6CiAgICAgLy8gV2ViTWVkaWFQbGF5ZXJDbGllbnQgbWV0aG9kczoKICAgICB2aXJ0dWFs
IHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRl
Q2hhbmdlZCgpOwotICAgIHZpcnR1YWwgdm9pZCB2b2x1bWVDaGFuZ2VkKCk7CisgICAgdmlydHVh
bCB2b2lkIHZvbHVtZUNoYW5nZWQoZmxvYXQpOworICAgIHZpcnR1YWwgdm9pZCBtdXRlQ2hhbmdl
ZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgdGltZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVwYWludCgpOwogICAgIHZpcnR1YWwgdm9pZCBkdXJhdGlvbkNoYW5nZWQoKTsKQEAgLTgw
LDYgKzgxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGZsb2F0KTsKICAg
ICB2aXJ0dWFsIGJvb2wgcGF1c2VkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFZvbHVt
ZShmbG9hdCk7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTXV0aW5nKCkgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisKICAgICB2aXJ0dWFsIFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBmbG9hdCBtYXhUaW1lU2Vla2FibGUoKSBjb25zdDsKLS0gCjEu
Ni4zLjM=
</data>
<flag name="review"
          id="27281"
          type_id="1"
          status="-"
          setter="gustavo"
    />
    <flag name="commit-queue"
          id="27695"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47522</attachid>
            <date>2010-01-27 05:52:56 -0800</date>
            <delta_ts>2010-01-27 06:11:14 -0800</delta_ts>
            <desc>new API in MediaPlayer for mute control</desc>
            <filename>new-API-in-MediaPlayer-for-mute-control.patch</filename>
            <type>text/plain</type>
            <size>23753</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA2Y2I1N2U0MDQxODRhMGNmZmQ5OTI4MThlZjRjMzE3YWE2MGJkNDY3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDI3IEphbiAyMDEwIDE0OjEyOjE5ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
bmV3IEFQSSBpbiBNZWRpYVBsYXllciBmb3IgbXV0ZSBjb250cm9sCgotLS0KIFdlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2OSArKysrKysrKysr
KysrKysrKysrKwogV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwICAgICAgICAgICAg
ICAgICAgfCAgIDIyICsrKysrKy0KIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggICAg
ICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcCAgICAgICAgICB8ICAgMzAgKysrKysrKystCiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmggICAgICAgICAgICB8ICAgMTMgKysrLQogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCAgICAgfCAgICAzICsKIC4uLi9ncmFw
aGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgIHwgICA2NyArKysrKysr
KysrKysrKysrKystCiAuLi4vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oICAgICB8ICAgIDggKysKIC4uLi9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQuaCAgICAgICAgIHwgICAgMiArCiAuLi4vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Lm1tICAgICAgICB8ICAgMTEgKysrCiAuLi4vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQ
cml2YXRlUGhvbm9uLmNwcCAgICAgICB8ICAgIDUgKysKIC4uLi9ncmFwaGljcy9xdC9NZWRpYVBs
YXllclByaXZhdGVQaG9ub24uaCAgICAgICAgIHwgICAgMiArCiAuLi4vd2luL01lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAgICAgICAgICB8ICAgIDQgKwogLi4uL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaCAgfCAgICAyICsKIC4uLi9ncmFwaGlj
cy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5jZS5oICAgICAgIHwgICAgMiArCiBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysrKysK
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaCAgICAgIHwgICAg
MyArLQogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwICAg
fCAgIDEwICsrLQogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwu
aCAgICAgfCAgICA2ICsrLQogMTkgZmlsZXMgY2hhbmdlZCwgMjYzIGluc2VydGlvbnMoKyksIDEz
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNGFmODVmMC4uMTIyZDcyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxMC0wMS0y
NyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gc2V0IHBsYXliaW4gbXV0
ZSBwcm9wZXJ0eSBkZXBlbmRpbmcgb24gdm9sdW1lIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTU4NgorCisgICAgICAgIE5ldyBBUEkgaW4g
TWVkaWFQbGF5ZXIgZm9yIG11dGUgY29udHJvbC4gMyBuZXcgbWV0aG9kcyBhcmUKKyAgICAgICAg
aW50cm9kdWNlZDoKKworICAgICAgICAtIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdDsKKyAg
ICAgICAgLSBib29sIG11dGVkKCkgY29uc3Q7CisgICAgICAgIC0gdm9pZCBzZXRNdXRlZChib29s
KTsKKworICAgICAgICBQbGF0Zm9ybSBNZWRpYVBsYXllciBpbXBsZW1lbnRhdGlvbnMgY2FuIHN1
cHBvcnQgaXQgZWFzaWx5IGlmIHRoZQorICAgICAgICB1bmRlcmx5aW5nIHNvdW5kIGRhZW1vbi9B
UEkgc3VwcG9ydHMgbXV0aW5nIChlZy4gbm90IG9ubHkgc2V0dGluZworICAgICAgICB2b2x1bWUg
dG8gMCkgbGlrZSBQdWxzZUF1ZGlvIGZvciBpbnN0YW5jZSBvbiBMaW51eC4gQXQgdGhlIG1vbWVu
dAorICAgICAgICB0aGUgb25seSBwbGF5ZXIgc3VwcG9ydGluZyB0aGlzIG5ldyBBUEkgaXMgdGhl
CisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci4KKworICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllclZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNNdXRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjptdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c3Vw
cG9ydHNNdXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldE11dGVkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp2b2x1bWVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjptdXRlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xp
ZW50OjptZWRpYVBsYXllck11dGVDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZTo6c3VwcG9ydHNNdXRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6bWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6Om5vdGlmeVZvbHVtZUlkbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjptZWRp
YVBsYXllclByaXZhdGVNdXRlQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om5v
dGlmeU11dGVJZGxlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlOjpNZWRpYVBsYXllclByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlOjp+TWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZTo6dm9sdW1lQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZTo6dm9sdW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlOjptdXRlQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlOjpjcmVhdGVHU1RQbGF5QmluKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
dGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZTo6ZGF0YVJhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0
L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OnNldE11dGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9N
ZWRpYVBsYXllclByaXZhdGVQaG9ub24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZTo6c3VwcG9ydHNNdXRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRNdXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c011dGluZyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNNdXRpbmcpOgorCiAyMDEwLTAxLTI3
ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydCBy
NTM4OTkgKEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIFZhbHVlPiBrZXkgY2hlY2tzKSBhbmQg
c3Vic2VxdWVudCBidWlsZCBmaXhlcywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA1
Y2QwMTU3Li43MGIwMDBlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMjM1LDgg
KzEyMzUsMTYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRNdXRlZChib29sIG11dGVkKQog
ewogICAgIGlmIChtX211dGVkICE9IG11dGVkKSB7CiAgICAgICAgIG1fbXV0ZWQgPSBtdXRlZDsK
LSAgICAgICAgdXBkYXRlVm9sdW1lKCk7Ci0gICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1l
cygpLnZvbHVtZWNoYW5nZUV2ZW50KTsKKyAgICAgICAgLy8gQXZvaWQgcmVjdXJzaW9uIHdoZW4g
dGhlIHBsYXllciByZXBvcnRzIHZvbHVtZSBjaGFuZ2VzLgorICAgICAgICBpZiAoIXByb2Nlc3Np
bmdNZWRpYVBsYXllckNhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgIGlmIChtX3BsYXllciAmJiBt
X3BsYXllci0+c3VwcG9ydHNNdXRpbmcoKSkgeworICAgICAgICAgICAgICAgIG1fcGxheWVyLT5z
ZXRNdXRlZChtX211dGVkKTsKKyAgICAgICAgICAgICAgICBpZiAocmVuZGVyZXIoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHVwZGF0ZVZvbHVtZSgpOworICAgICAgICAgICAg
c2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkudm9sdW1lY2hhbmdlRXZlbnQpOworICAgICAgICB9
CiAgICAgfQogfQogCkBAIC0xNDQ0LDEwICsxNDUyLDIwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXllciopCiB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopCiB7CiAgICAgYmVn
aW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOworICAgIGlmIChtX3BsYXllcikKKyAg
ICAgICAgbV92b2x1bWUgPSBtX3BsYXllci0+dm9sdW1lKCk7CiAgICAgdXBkYXRlVm9sdW1lKCk7
CiAgICAgZW5kUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKIH0KIAordm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYVBsYXllck11dGVDaGFuZ2VkKE1lZGlhUGxheWVyKikKK3sKKyAg
ICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CisgICAgaWYgKG1fcGxheWVy
KQorICAgICAgICBzZXRNdXRlZChtX3BsYXllci0+bXV0ZWQoKSk7CisgICAgZW5kUHJvY2Vzc2lu
Z01lZGlhUGxheWVyQ2FsbGJhY2soKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckR1cmF0aW9uQ2hhbmdlZChNZWRpYVBsYXllciopCiB7CiAgICAgYmVnaW5Qcm9jZXNz
aW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggOWVl
MmMyNS4uNjhiN2NlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xOTYsNiArMTk2LDcg
QEAgcHJpdmF0ZTogLy8gTWVkaWFQbGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQ
bGF5ZXJSZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBt
ZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIG1l
ZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopOworICAgIHZpcnR1YWwgdm9pZCBt
ZWRpYVBsYXllck11dGVDaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIG1l
ZGlhUGxheWVyRHVyYXRpb25DaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lk
IG1lZGlhUGxheWVyUmF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQg
bWVkaWFQbGF5ZXJTYXdVbnN1cHBvcnRlZFRyYWNrcyhNZWRpYVBsYXllciopOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA5OTRjN2I2Li4wYWYwOGZlIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtODcsNiArODcs
OSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSB7IH0KIAor
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c011dGluZygpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCB2b2lkIHNldE11dGVkKGJvb2wpIHsgfQorCiAgICAgdmlydHVhbCBib29sIGhhc0Ns
b3NlZENhcHRpb25zKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wpIHsgfTsKIApAQCAtMTkzLDYgKzE5Niw3IEBA
IE1lZGlhUGxheWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCogY2xpZW50KQogICAg
ICwgbV92aXNpYmxlKGZhbHNlKQogICAgICwgbV9yYXRlKDEuMGYpCiAgICAgLCBtX3ZvbHVtZSgx
LjBmKQorICAgICwgbV9tdXRlZChmYWxzZSkKICAgICAsIG1fcHJlc2VydmVzUGl0Y2godHJ1ZSkK
ICAgICAsIG1fYXV0b2J1ZmZlcihmYWxzZSkKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9W
SURFTykKQEAgLTM3OSw2ICszODMsMjIgQEAgdm9pZCBNZWRpYVBsYXllcjo6c2V0Vm9sdW1lKGZs
b2F0IHZvbHVtZSkKICAgICBtX3ByaXZhdGUtPnNldFZvbHVtZSh2b2x1bWUpOyAgIAogfQogCiti
b29sIE1lZGlhUGxheWVyOjptdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbXV0ZWQ7Cit9
CisKK2Jvb2wgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzTXV0aW5nKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5zdXBwb3J0c011dGluZygpOworfQorCit2b2lkIE1lZGlhUGxheWVyOjpz
ZXRNdXRlZChib29sIG11dGVkKQoreworICAgIG1fbXV0ZWQgPSBtdXRlZDsKKyAgICBtX3ByaXZh
dGUtPnNldE11dGVkKG11dGVkKTsKK30KKwogYm9vbCBNZWRpYVBsYXllcjo6aGFzQ2xvc2VkQ2Fw
dGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZhdGUtPmhhc0Nsb3NlZENhcHRpb25z
KCk7CkBAIC01NDIsMTIgKzU2MiwyMCBAQCB2b2lkIE1lZGlhUGxheWVyOjpyZWFkeVN0YXRlQ2hh
bmdlZCgpCiAgICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyUmVhZHlTdGF0
ZUNoYW5nZWQodGhpcyk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXI6OnZvbHVtZUNoYW5nZWQoKQor
dm9pZCBNZWRpYVBsYXllcjo6dm9sdW1lQ2hhbmdlZChmbG9hdCBuZXdWb2x1bWUpCiB7CisgICAg
bV92b2x1bWUgPSBuZXdWb2x1bWU7CiAgICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCiAgICAg
ICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZCh0aGlzKTsK
IH0KIAordm9pZCBNZWRpYVBsYXllcjo6bXV0ZUNoYW5nZWQoYm9vbCBuZXdNdXRlZCkKK3sKKyAg
ICBtX211dGVkID0gbmV3TXV0ZWQ7CisgICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCisgICAg
ICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyTXV0ZUNoYW5nZWQodGhpcyk7Cit9
CisKIHZvaWQgTWVkaWFQbGF5ZXI6OnRpbWVDaGFuZ2VkKCkKIHsKICAgICBpZiAobV9tZWRpYVBs
YXllckNsaWVudCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBm
YTg1Y2ZkLi40MGVkOGFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
CkBAIC04MSw5ICs4MSwxMiBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIHJlYWR5IHN0YXRlIGhhcyBj
aGFuZ2VkCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmVhZHlTdGF0ZUNoYW5nZWQoTWVk
aWFQbGF5ZXIqKSB7IH0KIAotICAgIC8vIHRoZSB2b2x1bWUgb3IgbXV0ZWQgc3RhdGUgaGFzIGNo
YW5nZWQKKyAgICAvLyB0aGUgdm9sdW1lIHN0YXRlIGhhcyBjaGFuZ2VkCiAgICAgdmlydHVhbCB2
b2lkIG1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQogCisgICAgLy8g
dGhlIG11dGUgc3RhdGUgaGFzIGNoYW5nZWQKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJN
dXRlQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQorCiAgICAgLy8gdGltZSBoYXMganVtcGVkLCBl
Zy4gbm90IGFzIGEgcmVzdWx0IG9mIG5vcm1hbCBwbGF5YmFjawogICAgIHZpcnR1YWwgdm9pZCBt
ZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxheWVyKikgeyB9CiAgICAgCkBAIC0xNzcsNiAr
MTgwLDEwIEBAIHB1YmxpYzoKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKICAgICB2b2lkIHNl
dFZvbHVtZShmbG9hdCk7CiAKKyAgICBib29sIHN1cHBvcnRzTXV0aW5nKCkgY29uc3Q7CisgICAg
Ym9vbCBtdXRlZCgpIGNvbnN0OworICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisKICAgICBib29s
IGhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zp
c2libGUoYm9vbCBjbG9zZWRDYXB0aW9uc1Zpc2libGUpOwogCkBAIC0xOTcsNyArMjA0LDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiAgICAgdm9pZCByZWFk
eVN0YXRlQ2hhbmdlZCgpOwotICAgIHZvaWQgdm9sdW1lQ2hhbmdlZCgpOworICAgIHZvaWQgdm9s
dW1lQ2hhbmdlZChmbG9hdCk7CisgICAgdm9pZCBtdXRlQ2hhbmdlZChib29sKTsKICAgICB2b2lk
IHRpbWVDaGFuZ2VkKCk7CiAgICAgdm9pZCBzaXplQ2hhbmdlZCgpOwogICAgIHZvaWQgcmF0ZUNo
YW5nZWQoKTsKQEAgLTIzOSw2ICsyNDcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92aXNpYmxl
OwogICAgIGZsb2F0IG1fcmF0ZTsKICAgICBmbG9hdCBtX3ZvbHVtZTsKKyAgICBib29sIG1fbXV0
ZWQ7CiAgICAgYm9vbCBtX3ByZXNlcnZlc1BpdGNoOwogICAgIGJvb2wgbV9hdXRvYnVmZmVyOwog
I2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggNmNmMTJiYS4uZTE0Yzg2ZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC03
NCw2ICs3NCw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRWb2x1bWUoZmxvYXQp
ID0gMDsKIAorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHNldE11dGVkKGJvb2wpID0gMDsKKwogICAgIHZp
cnR1YWwgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9ICAg
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkgeyB9CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGVhMzUxOTYuLmIxMzU5NjMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTM2LDEzICsxMzYsMjkgQEAgdm9pZCBtZWRpYVBsYXll
clByaXZhdGVTb3VyY2VDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCAqb2JqZWN0LCBHUGFyYW1TcGVj
ICpwc3BlYywKIAogdm9pZCBtZWRpYVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2so
R09iamVjdCAqZWxlbWVudCwgR1BhcmFtU3BlYyAqcHNwZWMsIGdwb2ludGVyIGRhdGEpCiB7Cisg
ICAgLy8gVGhpcyBpcyBjYWxsZWQgd2hlbiBwbGF5YmluIHJlY2VpdmVzIHRoZSBub3RpZnk6OnZv
bHVtZSBzaWduYWwuCiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7CiAgICAgbXAtPnZvbHVtZUNoYW5nZWQoKTsK
IH0KIAotZ2Jvb2xlYW4gbm90aWZ5Vm9sdW1lSWRsZUNhbGxiYWNrKE1lZGlhUGxheWVyKiBtcCkK
K2dib29sZWFuIG5vdGlmeVZvbHVtZUlkbGVDYWxsYmFjayhncG9pbnRlciBkYXRhKQogewotICAg
IG1wLT52b2x1bWVDaGFuZ2VkKCk7CisgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7CisgICAgbXAtPnZvbHVtZUNo
YW5nZWRDYWxsYmFjaygpOworICAgIHJldHVybiBGQUxTRTsKK30KKwordm9pZCBtZWRpYVBsYXll
clByaXZhdGVNdXRlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKmVsZW1lbnQsIEdQYXJhbVNwZWMg
KnBzcGVjLCBncG9pbnRlciBkYXRhKQoreworICAgIC8vIFRoaXMgaXMgY2FsbGVkIHdoZW4gcGxh
eWJpbiByZWNlaXZlcyB0aGUgbm90aWZ5OjptdXRlIHNpZ25hbC4KKyAgICBNZWRpYVBsYXllclBy
aXZhdGUqIG1wID0gcmVpbnRlcnByZXRfY2FzdDxNZWRpYVBsYXllclByaXZhdGUqPihkYXRhKTsK
KyAgICBtcC0+bXV0ZUNoYW5nZWQoKTsKK30KKworZ2Jvb2xlYW4gbm90aWZ5TXV0ZUlkbGVDYWxs
YmFjayhncG9pbnRlciBkYXRhKQoreworICAgIE1lZGlhUGxheWVyUHJpdmF0ZSogbXAgPSByZWlu
dGVycHJldF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZSo+KGRhdGEpOworICAgIG1wLT5tdXRlQ2hh
bmdlZENhbGxiYWNrKCk7CiAgICAgcmV0dXJuIEZBTFNFOwogfQogCkBAIC0yNDgsNiArMjY0LDcg
QEAgTWVkaWFQbGF5ZXJQcml2YXRlOjpNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqIHBs
YXllcikKICAgICAsIG1fZXJyb3JPY2N1cmVkKGZhbHNlKQogICAgICwgbV92b2x1bWVJZGxlSWQo
LTEpCiAgICAgLCBtX21lZGlhRHVyYXRpb24oMC4wKQorICAgICwgbV9tdXRlSWRsZUlkKC0xKQog
ewogICAgIGRvR3N0SW5pdCgpOwogfQpAQCAtMjU5LDYgKzI3NiwxMSBAQCBNZWRpYVBsYXllclBy
aXZhdGU6On5NZWRpYVBsYXllclByaXZhdGUoKQogICAgICAgICBtX3ZvbHVtZUlkbGVJZCA9IC0x
OwogICAgIH0KIAorICAgIGlmIChtX211dGVJZGxlSWQpIHsKKyAgICAgICAgZ19zb3VyY2VfcmVt
b3ZlKG1fbXV0ZUlkbGVJZCk7CisgICAgICAgIG1fbXV0ZUlkbGVJZCA9IC0xOworICAgIH0KKwog
ICAgIGlmIChtX2J1ZmZlcikKICAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZihtX2J1ZmZlcik7CiAg
ICAgbV9idWZmZXIgPSAwOwpAQCAtNDg3LDE2ICs1MDksMjIgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGU6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJp
biwgInZvbHVtZSIsIHN0YXRpY19jYXN0PGRvdWJsZT4odm9sdW1lKSwgTlVMTCk7CiB9CiAKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFuZ2VkQ2FsbGJhY2soKQoreworICAgIGRv
dWJsZSB2b2x1bWU7CisgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbiwgInZvbHVtZSIsICZ2b2x1
bWUsIFNFTlRJTkVMKTsKKyAgICBtX3BsYXllci0+dm9sdW1lQ2hhbmdlZChzdGF0aWNfY2FzdDxm
bG9hdD4odm9sdW1lKSk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFu
Z2VkKCkKIHsKICAgICBpZiAobV92b2x1bWVJZGxlSWQpIHsKICAgICAgICAgZ19zb3VyY2VfcmVt
b3ZlKG1fdm9sdW1lSWRsZUlkKTsKICAgICAgICAgbV92b2x1bWVJZGxlSWQgPSAtMTsKICAgICB9
Ci0gICAgbV92b2x1bWVJZGxlSWQgPSBnX2lkbGVfYWRkKChHU291cmNlRnVuYykgbm90aWZ5Vm9s
dW1lSWRsZUNhbGxiYWNrLCBtX3BsYXllcik7CisgICAgbV92b2x1bWVJZGxlSWQgPSBnX2lkbGVf
YWRkKChHU291cmNlRnVuYykgbm90aWZ5Vm9sdW1lSWRsZUNhbGxiYWNrLCB0aGlzKTsKIH0KIAot
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0UmF0ZShmbG9hdCByYXRlKQogewogICAgIC8v
IEF2b2lkIHVzZWxlc3MgcGxheWJhY2sgcmF0ZSB1cGRhdGUuCkBAIC04NzcsNiArOTA1LDM2IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpkdXJhdGlvbkNoYW5nZWQoKQogICAgIG1fcGxheWVy
LT5kdXJhdGlvbkNoYW5nZWQoKTsKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGU6OnN1cHBv
cnRzTXV0aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVBs
YXllclByaXZhdGU6OnNldE11dGVkKGJvb2wgbXV0ZWQpCit7CisgICAgaWYgKCFtX3BsYXlCaW4p
CisgICAgICAgIHJldHVybjsKKworICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4sICJtdXRlIiwg
bXV0ZWQsIFNFTlRJTkVMKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGU6Om11dGVDaGFu
Z2VkQ2FsbGJhY2soKQoreworICAgIGdib29sZWFuIG11dGVkOworICAgIGdfb2JqZWN0X2dldCht
X3BsYXlCaW4sICJtdXRlIiwgJm11dGVkLCBTRU5USU5FTCk7CisgICAgbV9wbGF5ZXItPm11dGVD
aGFuZ2VkKHN0YXRpY19jYXN0PGJvb2w+KG11dGVkKSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlOjptdXRlQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fbXV0ZUlkbGVJZCkgeworICAgICAg
ICBnX3NvdXJjZV9yZW1vdmUobV9tdXRlSWRsZUlkKTsKKyAgICAgICAgbV9tdXRlSWRsZUlkID0g
LTE7CisgICAgfQorCisgICAgbV9tdXRlSWRsZUlkID0gZ19pZGxlX2FkZCgoR1NvdXJjZUZ1bmMp
IG5vdGlmeU11dGVJZGxlQ2FsbGJhY2ssIHRoaXMpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZTo6bG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIGVycm9yKQogewog
ICAgIG1fZXJyb3JPY2N1cmVkID0gdHJ1ZTsKQEAgLTEwOTUsNiArMTE1Myw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlOjpjcmVhdGVHU1RQbGF5QmluKFN0cmluZyB1cmwpCiAKICAgICBnX3Np
Z25hbF9jb25uZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6dm9sdW1lIiwgR19DQUxMQkFDSyhtZWRp
YVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25h
bF9jb25uZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6c291cmNlIiwgR19DQUxMQkFDSyhtZWRpYVBs
YXllclByaXZhdGVTb3VyY2VDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9j
b25uZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6bXV0ZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQ
cml2YXRlTXV0ZUNoYW5nZWRDYWxsYmFjayksIHRoaXMpOwogCiAgICAgbV92aWRlb1NpbmsgPSB3
ZWJraXRfdmlkZW9fc2lua19uZXcoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCBlYzU1
YjI5Li4zNDI1N2NhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNzYsOCArNzYsMTUgQEAg
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZSB7CiAgICAgICAgICAgICB2b2lkIHNlZWsoZmxvYXQpOwogCiAgICAgICAgICAgICB2b2lk
IHNldFJhdGUoZmxvYXQpOworCiAgICAgICAgICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAg
ICAgICAgICAgICB2b2lkIHZvbHVtZUNoYW5nZWQoKTsKKyAgICAgICAgICAgIHZvaWQgdm9sdW1l
Q2hhbmdlZENhbGxiYWNrKCk7CisKKyAgICAgICAgICAgIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBj
b25zdDsKKyAgICAgICAgICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisgICAgICAgICAgICB2b2lk
IG11dGVDaGFuZ2VkKCk7CisgICAgICAgICAgICB2b2lkIG11dGVDaGFuZ2VkQ2FsbGJhY2soKTsK
IAogICAgICAgICAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBj
b25zdDsKICAgICAgICAgICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBj
b25zdDsKQEAgLTE0OSw2ICsxNTYsNyBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGUgOiBwdWJs
aWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIGJvb2wgbV9lcnJv
ck9jY3VyZWQ7CiAgICAgICAgICAgICBndWludCBtX3ZvbHVtZUlkbGVJZDsKICAgICAgICAgICAg
IGdmbG9hdCBtX21lZGlhRHVyYXRpb247CisgICAgICAgICAgICBndWludCBtX211dGVJZGxlSWQ7
CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKaW5kZXggZTlmNjRiZS4uZTEzYzZhMCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZh
dGVRVEtpdC5oCkBAIC0xMDAsNiArMTAwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFJhdGUo
ZmxvYXQpOwogICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKICAgICB2b2lkIHNldFByZXNlcnZl
c1BpdGNoKGJvb2wpOworICAgIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CiAKICAgICBib29sIGhhc0Nsb3NlZENhcHRpb25z
KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Lm1tCmluZGV4IGRkODdiYjUuLmNkNWM2ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC03
OTcsNiArNzk3LDE3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRQcmVzZXJ2ZXNQaXRj
aChib29sIHByZXNlcnZlc1BpdGNoKQogICAgIGNyZWF0ZVFUTW92aWUoW21vdmllQXR0cmlidXRl
cyB2YWx1ZUZvcktleTpRVE1vdmllVVJMQXR0cmlidXRlXSwgbW92aWVBdHRyaWJ1dGVzKTsKIH0K
IAordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKGJvb2wpIGNvbnN0Cit7Cit9CisK
K2ludCBNZWRpYVBsYXllclByaXZhdGU6OmRhdGFSYXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1l
dGFEYXRhQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiB3a1FUTW92
aWVEYXRhUmF0ZShtX3F0TW92aWUuZ2V0KCkpOyAKK30KKwogUGFzc1JlZlB0cjxUaW1lUmFuZ2Vz
PiBNZWRpYVBsYXllclByaXZhdGU6OmJ1ZmZlcmVkKCkgY29uc3QKIHsKICAgICBSZWZQdHI8VGlt
ZVJhbmdlcz4gdGltZVJhbmdlcyA9IFRpbWVSYW5nZXM6OmNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24u
Y3BwCmluZGV4IDMyNzRkYjUuLjBlM2JjYTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5jcHAKQEAgLTI5OCw2
ICsyOTgsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKGJvb2wgbXV0ZWQp
CiAgICAgbV9hdWRpb091dHB1dC0+c2V0TXV0ZWQobXV0ZWQpOwogfQogCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZTo6c2V0TXV0ZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CiBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIE1lZGlhUGxheWVyUHJpdmF0ZTo6bmV0d29ya1N0
YXRlKCkgY29uc3QKIHsKICAgICBjb25zdCBRTWV0YU9iamVjdCogbWV0YU9iaiA9IHRoaXMtPm1l
dGFPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVk
aWFQbGF5ZXJQcml2YXRlUGhvbm9uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01l
ZGlhUGxheWVyUHJpdmF0ZVBob25vbi5oCmluZGV4IGU3NjMwYTEuLjYzZTJiZmMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9u
LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQ
aG9ub24uaApAQCAtOTgsNiArOTgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZv
aWQgc2V0UmF0ZShmbG9hdCk7CiAgICAgICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKICAgICAg
ICAgdm9pZCBzZXRNdXRlZChib29sKTsKKyAgICAgICAgYm9vbCBzdXBwb3J0c011dGluZygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CiAKICAg
ICAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdDsKICAg
ICAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAKaW5kZXggYjJmZTA2OS4uZmE2NzdmYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tU
aW1lV2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVRdWlja1RpbWVXaW4uY3BwCkBAIC0zMzMsNiArMzMzLDEwIEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlOjpzZXRQcmVzZXJ2ZXNQaXRjaChib29sIHByZXNlcnZlc1BpdGNoKQogICAg
IG1fcXRNb3ZpZS0+c2V0UHJlc2VydmVzUGl0Y2gocHJlc2VydmVzUGl0Y2gpOwogfQogCit2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQoYm9vbCkKK3sKK30KKwogYm9vbCBNZWRpYVBs
YXllclByaXZhdGU6Omhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcXRN
b3ZpZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxh
eWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmgKaW5kZXggZDU4ZjQ0Zi4uZmMwZThhZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2
YXRlUXVpY2tUaW1lV2luLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmgKQEAgLTk3LDYgKzk3LDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldFJhdGUoZmxvYXQpOwogICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKICAg
ICB2b2lkIHNldFByZXNlcnZlc1BpdGNoKGJvb2wpOworICAgIGJvb2wgc3VwcG9ydHNNdXRpbmco
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CiAgICAg
CiAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCB7IHJl
dHVybiBtX25ldHdvcmtTdGF0ZTsgfQogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5
U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7IH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaCBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaApp
bmRleCBhNjU3ZTNlLi5mMTRkMDdhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5jZS5oCkBAIC02NCw2ICs2NCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHNldFJhdGUoZmxvYXQpOwog
ICAgICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7CisgICAgICAgIGJvb2wgc3VwcG9ydHNNdXRp
bmcoKSB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2b2lkIHNldE11dGVkKGJvb2wpOwogCiAg
ICAgICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0KICAgICAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUg
cmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsgfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggYmQyMGJhNy4uYmQxZDQ5NyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAt
MDEtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIHNldCBwbGF5Ymlu
IG11dGUgcHJvcGVydHkgZGVwZW5kaW5nIG9uIHZvbHVtZSB2YWx1ZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1ODYKKworICAgICAgICBNZWRpYVBs
YXllciBNdXRpbmcgQVBJIHN0dWJzLgorCisgICAgICAgICogcHVibGljL1dlYk1lZGlhUGxheWVy
Q2xpZW50Lmg6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6dm9sdW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bXV0ZUNoYW5nZWQp
OgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0c011dGluZyk6CisKIDIwMTAt
MDEtMjYgIFlhYXIgU2Nobml0bWFuICA8eWFhckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJNZWRpYVBsYXllckNsaWVudC5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRp
YVBsYXllckNsaWVudC5oCmluZGV4IDU1OGZiNGEuLjQ3Y2U2NGUgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaAorKysgYi9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgKQEAgLTQwLDcgKzQwLDggQEAgY2xh
c3MgV2ViTWVkaWFQbGF5ZXJDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBuZXR3
b3JrU3RhdGVDaGFuZ2VkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRlQ2hhbmdl
ZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdm9sdW1lQ2hhbmdlZCgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgdm9sdW1lQ2hhbmdlZChmbG9hdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBtdXRl
Q2hhbmdlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRpbWVDaGFuZ2VkKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkdXJhdGlv
bkNoYW5nZWQoKSA9IDA7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5jcHAKaW5kZXggYzJhMzUzNS4uYjFmMWYwMyAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcApAQCAtODUsMTAgKzg1LDE2
IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpyZWFkeVN0YXRlQ2hhbmdlZCgpCiAg
ICAgbV9tZWRpYVBsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsKIH0KIAotdm9pZCBXZWJNZWRp
YVBsYXllckNsaWVudEltcGw6OnZvbHVtZUNoYW5nZWQoKQordm9pZCBXZWJNZWRpYVBsYXllckNs
aWVudEltcGw6OnZvbHVtZUNoYW5nZWQoZmxvYXQgbmV3Vm9sdW1lKQogewogICAgIEFTU0VSVCht
X21lZGlhUGxheWVyKTsKLSAgICBtX21lZGlhUGxheWVyLT52b2x1bWVDaGFuZ2VkKCk7CisgICAg
bV9tZWRpYVBsYXllci0+dm9sdW1lQ2hhbmdlZChuZXdWb2x1bWUpOworfQorCit2b2lkIFdlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbDo6bXV0ZUNoYW5nZWQoYm9vbCBuZXdNdXRlKQoreworICAgIEFT
U0VSVChtX21lZGlhUGxheWVyKTsKKyAgICBtX21lZGlhUGxheWVyLT5tdXRlQ2hhbmdlZChuZXdN
dXRlKTsKIH0KIAogdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnRpbWVDaGFuZ2VkKCkK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCmluZGV4
IDdmMDg3ZDAuLmIxOTFmMTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBs
YXllckNsaWVudEltcGwuaApAQCAtNTMsNyArNTMsOCBAQCBwdWJsaWM6CiAgICAgLy8gV2ViTWVk
aWFQbGF5ZXJDbGllbnQgbWV0aG9kczoKICAgICB2aXJ0dWFsIHZvaWQgbmV0d29ya1N0YXRlQ2hh
bmdlZCgpOwogICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZCgpOwotICAgIHZpcnR1
YWwgdm9pZCB2b2x1bWVDaGFuZ2VkKCk7CisgICAgdmlydHVhbCB2b2lkIHZvbHVtZUNoYW5nZWQo
ZmxvYXQpOworICAgIHZpcnR1YWwgdm9pZCBtdXRlQ2hhbmdlZChib29sKTsKICAgICB2aXJ0dWFs
IHZvaWQgdGltZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgpOwogICAgIHZp
cnR1YWwgdm9pZCBkdXJhdGlvbkNoYW5nZWQoKTsKQEAgLTgwLDYgKzgxLDkgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGZsb2F0KTsKICAgICB2aXJ0dWFsIGJvb2wgcGF1c2Vk
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFZvbHVtZShmbG9hdCk7CisgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzTXV0aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgc2V0TXV0ZWQoYm9vbCk7CisKICAgICB2aXJ0dWFsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpO
ZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBm
bG9hdCBtYXhUaW1lU2Vla2FibGUoKSBjb25zdDsKLS0gCjEuNi4zLjM=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47524</attachid>
            <date>2010-01-27 06:11:14 -0800</date>
            <delta_ts>2010-01-27 06:52:42 -0800</delta_ts>
            <desc>new API in MediaPlayer for mute control</desc>
            <filename>new-API-in-MediaPlayer-for-mute-control.patch</filename>
            <type>text/plain</type>
            <size>23602</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBjOWY5NmU5NzBmODZlOGQwM2YyOTAxMDhkZDkyMzRmYzA4YzNiMDAyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDI3IEphbiAyMDEwIDE0OjEyOjE5ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
bmV3IEFQSSBpbiBNZWRpYVBsYXllciBmb3IgbXV0ZSBjb250cm9sCgotLS0KIFdlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2OSArKysrKysrKysr
KysrKysrKysrKwogV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwICAgICAgICAgICAg
ICAgICAgfCAgIDIyICsrKysrKy0KIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggICAg
ICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcCAgICAgICAgICB8ICAgMzAgKysrKysrKystCiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmggICAgICAgICAgICB8ICAgMTMgKysrLQogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCAgICAgfCAgICAzICsKIC4uLi9ncmFw
aGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgIHwgICA2NyArKysrKysr
KysrKysrKysrKystCiAuLi4vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oICAgICB8ICAgIDggKysKIC4uLi9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQuaCAgICAgICAgIHwgICAgMiArCiAuLi4vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Lm1tICAgICAgICB8ICAgIDQgKwogLi4uL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJp
dmF0ZVBob25vbi5jcHAgICAgICAgfCAgICA1ICsrCiAuLi4vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5
ZXJQcml2YXRlUGhvbm9uLmggICAgICAgICB8ICAgIDIgKwogLi4uL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVRdWlja1RpbWVXaW4uY3BwICAgICAgICAgfCAgICA0ICsKIC4uLi9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmggIHwgICAgMiArCiAuLi4vZ3JhcGhpY3Mv
d2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaCAgICAgICB8ICAgIDIgKwogV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrKysrCiBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmggICAgICB8ICAgIDMg
Ky0KIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCAgIHwg
ICAxMCArKy0KIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgg
ICAgIHwgICAgNiArKy0KIDE5IGZpbGVzIGNoYW5nZWQsIDI1NiBpbnNlcnRpb25zKCspLCAxMyBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDRhZjg1ZjAuLjEyMmQ3MjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTAtMDEtMjcg
IFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIHNldCBwbGF5YmluIG11dGUg
cHJvcGVydHkgZGVwZW5kaW5nIG9uIHZvbHVtZSB2YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1ODYKKworICAgICAgICBOZXcgQVBJIGluIE1l
ZGlhUGxheWVyIGZvciBtdXRlIGNvbnRyb2wuIDMgbmV3IG1ldGhvZHMgYXJlCisgICAgICAgIGlu
dHJvZHVjZWQ6CisKKyAgICAgICAgLSBib29sIHN1cHBvcnRzTXV0aW5nKCkgY29uc3Q7CisgICAg
ICAgIC0gYm9vbCBtdXRlZCgpIGNvbnN0OworICAgICAgICAtIHZvaWQgc2V0TXV0ZWQoYm9vbCk7
CisKKyAgICAgICAgUGxhdGZvcm0gTWVkaWFQbGF5ZXIgaW1wbGVtZW50YXRpb25zIGNhbiBzdXBw
b3J0IGl0IGVhc2lseSBpZiB0aGUKKyAgICAgICAgdW5kZXJseWluZyBzb3VuZCBkYWVtb24vQVBJ
IHN1cHBvcnRzIG11dGluZyAoZWcuIG5vdCBvbmx5IHNldHRpbmcKKyAgICAgICAgdm9sdW1lIHRv
IDApIGxpa2UgUHVsc2VBdWRpbyBmb3IgaW5zdGFuY2Ugb24gTGludXguIEF0IHRoZSBtb21lbnQK
KyAgICAgICAgdGhlIG9ubHkgcGxheWVyIHN1cHBvcnRpbmcgdGhpcyBuZXcgQVBJIGlzIHRoZQor
ICAgICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuCisKKyAgICAgICAgKiBodG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
c2V0TXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5
ZXJWb2x1bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyTXV0ZUNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpNZWRpYVBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6bXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnN1cHBv
cnRzTXV0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpzZXRNdXRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6dm9sdW1lQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6bXV0ZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVu
dDo6bWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om1lZGlhUGxheWVyUHJpdmF0ZVZvbHVtZUNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpub3RpZnlWb2x1bWVJZGxlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFQ
bGF5ZXJQcml2YXRlTXV0ZUNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpub3Rp
ZnlNdXRlSWRsZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGU6OnZvbHVtZUNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGU6OnZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlOjpzdXBwb3J0c011dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OnNldE11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZTo6bXV0ZUNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGU6Om11dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZTo6Y3JlYXRlR1NUUGxheUJpbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c011dGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OmRhdGFSYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9N
ZWRpYVBsYXllclByaXZhdGVQaG9ub24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlOjpzZXRNdXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVk
aWFQbGF5ZXJQcml2YXRlUGhvbm9uLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGU6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNNdXRpbmcpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmg6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKToKKwogMjAxMC0wMS0yNyAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjUz
ODk5IChIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBWYWx1ZT4ga2V5IGNoZWNrcykgYW5kIHN1
YnNlcXVlbnQgYnVpbGQgZml4ZXMsCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNWNk
MDE1Ny4uNzBiMDAwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTIzNSw4ICsx
MjM1LDE2IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKIHsK
ICAgICBpZiAobV9tdXRlZCAhPSBtdXRlZCkgewogICAgICAgICBtX211dGVkID0gbXV0ZWQ7Ci0g
ICAgICAgIHVwZGF0ZVZvbHVtZSgpOwotICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMo
KS52b2x1bWVjaGFuZ2VFdmVudCk7CisgICAgICAgIC8vIEF2b2lkIHJlY3Vyc2lvbiB3aGVuIHRo
ZSBwbGF5ZXIgcmVwb3J0cyB2b2x1bWUgY2hhbmdlcy4KKyAgICAgICAgaWYgKCFwcm9jZXNzaW5n
TWVkaWFQbGF5ZXJDYWxsYmFjaygpKSB7CisgICAgICAgICAgICBpZiAobV9wbGF5ZXIgJiYgbV9w
bGF5ZXItPnN1cHBvcnRzTXV0aW5nKCkpIHsKKyAgICAgICAgICAgICAgICBtX3BsYXllci0+c2V0
TXV0ZWQobV9tdXRlZCk7CisgICAgICAgICAgICAgICAgaWYgKHJlbmRlcmVyKCkpCisgICAgICAg
ICAgICAgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB1cGRhdGVWb2x1bWUoKTsKKyAgICAgICAgICAgIHNj
aGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnZvbHVtZWNoYW5nZUV2ZW50KTsKKyAgICAgICAgfQog
ICAgIH0KIH0KIApAQCAtMTQ0NCwxMCArMTQ1MiwyMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
Om1lZGlhUGxheWVyVGltZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllclZvbHVtZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogewogICAgIGJlZ2lu
UHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKKyAgICBpZiAobV9wbGF5ZXIpCisgICAg
ICAgIG1fdm9sdW1lID0gbV9wbGF5ZXItPnZvbHVtZSgpOwogICAgIHVwZGF0ZVZvbHVtZSgpOwog
ICAgIGVuZFByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiB9CiAKK3ZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZChNZWRpYVBsYXllciopCit7CisgICAg
YmVnaW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOworICAgIGlmIChtX3BsYXllcikK
KyAgICAgICAgc2V0TXV0ZWQobV9wbGF5ZXItPm11dGVkKCkpOworICAgIGVuZFByb2Nlc3NpbmdN
ZWRpYVBsYXllckNhbGxiYWNrKCk7Cit9CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJEdXJhdGlvbkNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogewogICAgIGJlZ2luUHJvY2Vzc2lu
Z01lZGlhUGxheWVyQ2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDllZTJj
MjUuLjY4YjdjZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTk2LDYgKzE5Niw3IEBA
IHByaXZhdGU6IC8vIE1lZGlhUGxheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxh
eWVyUmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgbWVk
aWFQbGF5ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBtZWRp
YVBsYXllclZvbHVtZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbWVk
aWFQbGF5ZXJNdXRlQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBtZWRp
YVBsYXllckR1cmF0aW9uQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBt
ZWRpYVBsYXllclJhdGVDaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIG1l
ZGlhUGxheWVyU2F3VW5zdXBwb3J0ZWRUcmFja3MoTWVkaWFQbGF5ZXIqKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggOTk0YzdiNi4uMzU1YjEyNyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTg3LDYgKzg3LDkg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldFZvbHVtZShmbG9hdCkgeyB9CiAKKyAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzZXRNdXRlZChib29sKSB7IH0KKwogICAgIHZpcnR1YWwgYm9vbCBo
YXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldENsb3NlZENhcHRpb25zVmlzaWJsZShib29sKSB7IH07CiAKQEAgLTE5Myw2ICsxOTYs
NyBAQCBNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQqIGNsaWVudCkK
ICAgICAsIG1fdmlzaWJsZShmYWxzZSkKICAgICAsIG1fcmF0ZSgxLjBmKQogICAgICwgbV92b2x1
bWUoMS4wZikKKyAgICAsIG1fbXV0ZWQoZmFsc2UpCiAgICAgLCBtX3ByZXNlcnZlc1BpdGNoKHRy
dWUpCiAgICAgLCBtX2F1dG9idWZmZXIoZmFsc2UpCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9G
T1JfVklERU8pCkBAIC0zNzksNiArMzgzLDIyIEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnNldFZvbHVt
ZShmbG9hdCB2b2x1bWUpCiAgICAgbV9wcml2YXRlLT5zZXRWb2x1bWUodm9sdW1lKTsgICAKIH0K
IAorYm9vbCBNZWRpYVBsYXllcjo6bXV0ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX211dGVk
OworfQorCitib29sIE1lZGlhUGxheWVyOjpzdXBwb3J0c011dGluZygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+c3VwcG9ydHNNdXRpbmcoKTsKK30KKwordm9pZCBNZWRpYVBsYXll
cjo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBtX211dGVkID0gbXV0ZWQ7CisgICAgbV9w
cml2YXRlLT5zZXRNdXRlZChtdXRlZCk7Cit9CisKIGJvb2wgTWVkaWFQbGF5ZXI6Omhhc0Nsb3Nl
ZENhcHRpb25zKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5oYXNDbG9zZWRDYXB0
aW9ucygpOwpAQCAtNTQyLDEyICs1NjIsMjAgQEAgdm9pZCBNZWRpYVBsYXllcjo6cmVhZHlTdGF0
ZUNoYW5nZWQoKQogICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclJlYWR5
U3RhdGVDaGFuZ2VkKHRoaXMpOwogfQogCi12b2lkIE1lZGlhUGxheWVyOjp2b2x1bWVDaGFuZ2Vk
KCkKK3ZvaWQgTWVkaWFQbGF5ZXI6OnZvbHVtZUNoYW5nZWQoZmxvYXQgbmV3Vm9sdW1lKQogewor
ICAgIG1fdm9sdW1lID0gbmV3Vm9sdW1lOwogICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KQog
ICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclZvbHVtZUNoYW5nZWQodGhp
cyk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6Om11dGVDaGFuZ2VkKGJvb2wgbmV3TXV0ZWQpCit7
CisgICAgbV9tdXRlZCA9IG5ld011dGVkOworICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KQor
ICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllck11dGVDaGFuZ2VkKHRoaXMp
OworfQorCiB2b2lkIE1lZGlhUGxheWVyOjp0aW1lQ2hhbmdlZCgpCiB7CiAgICAgaWYgKG1fbWVk
aWFQbGF5ZXJDbGllbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5k
ZXggZmE4NWNmZC4uNDBlZDhhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaApAQCAtODEsOSArODEsMTIgQEAgcHVibGljOgogICAgIC8vIHRoZSByZWFkeSBzdGF0ZSBo
YXMgY2hhbmdlZAogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclJlYWR5U3RhdGVDaGFuZ2Vk
KE1lZGlhUGxheWVyKikgeyB9CiAKLSAgICAvLyB0aGUgdm9sdW1lIG9yIG11dGVkIHN0YXRlIGhh
cyBjaGFuZ2VkCisgICAgLy8gdGhlIHZvbHVtZSBzdGF0ZSBoYXMgY2hhbmdlZAogICAgIHZpcnR1
YWwgdm9pZCBtZWRpYVBsYXllclZvbHVtZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKSB7IH0KIAorICAg
IC8vIHRoZSBtdXRlIHN0YXRlIGhhcyBjaGFuZ2VkCisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxh
eWVyTXV0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKSB7IH0KKwogICAgIC8vIHRpbWUgaGFzIGp1bXBl
ZCwgZWcuIG5vdCBhcyBhIHJlc3VsdCBvZiBub3JtYWwgcGxheWJhY2sKICAgICB2aXJ0dWFsIHZv
aWQgbWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQogICAgIApAQCAtMTc3
LDYgKzE4MCwxMCBAQCBwdWJsaWM6CiAgICAgZmxvYXQgdm9sdW1lKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRWb2x1bWUoZmxvYXQpOwogCisgICAgYm9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0Owor
ICAgIGJvb2wgbXV0ZWQoKSBjb25zdDsKKyAgICB2b2lkIHNldE11dGVkKGJvb2wpOworCiAgICAg
Ym9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0OwogICAgIHZvaWQgc2V0Q2xvc2VkQ2FwdGlv
bnNWaXNpYmxlKGJvb2wgY2xvc2VkQ2FwdGlvbnNWaXNpYmxlKTsKIApAQCAtMTk3LDcgKzIwNCw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpOwogICAgIHZvaWQg
cmVhZHlTdGF0ZUNoYW5nZWQoKTsKLSAgICB2b2lkIHZvbHVtZUNoYW5nZWQoKTsKKyAgICB2b2lk
IHZvbHVtZUNoYW5nZWQoZmxvYXQpOworICAgIHZvaWQgbXV0ZUNoYW5nZWQoYm9vbCk7CiAgICAg
dm9pZCB0aW1lQ2hhbmdlZCgpOwogICAgIHZvaWQgc2l6ZUNoYW5nZWQoKTsKICAgICB2b2lkIHJh
dGVDaGFuZ2VkKCk7CkBAIC0yMzksNiArMjQ3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdmlz
aWJsZTsKICAgICBmbG9hdCBtX3JhdGU7CiAgICAgZmxvYXQgbV92b2x1bWU7CisgICAgYm9vbCBt
X211dGVkOwogICAgIGJvb2wgbV9wcmVzZXJ2ZXNQaXRjaDsKICAgICBib29sIG1fYXV0b2J1ZmZl
cjsKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDZjZjEyYmEuLmUxNGM4NmUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApA
QCAtNzQsNiArNzQsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZs
b2F0KSA9IDA7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNdXRlZChib29sKSA9IDA7CisKICAg
ICB2aXJ0dWFsIGJvb2wgaGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fSAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wpIHsg
fQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBlYTM1MTk2Li4xMTA5ZGY5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTEzNiwxMyArMTM2LDI5IEBAIHZvaWQgbWVkaWFQ
bGF5ZXJQcml2YXRlU291cmNlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKm9iamVjdCwgR1BhcmFt
U3BlYyAqcHNwZWMsCiAKIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENhbGxi
YWNrKEdPYmplY3QgKmVsZW1lbnQsIEdQYXJhbVNwZWMgKnBzcGVjLCBncG9pbnRlciBkYXRhKQog
eworICAgIC8vIFRoaXMgaXMgY2FsbGVkIHdoZW4gcGxheWJpbiByZWNlaXZlcyB0aGUgbm90aWZ5
Ojp2b2x1bWUgc2lnbmFsLgogICAgIE1lZGlhUGxheWVyUHJpdmF0ZSogbXAgPSByZWludGVycHJl
dF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZSo+KGRhdGEpOwogICAgIG1wLT52b2x1bWVDaGFuZ2Vk
KCk7CiB9CiAKLWdib29sZWFuIG5vdGlmeVZvbHVtZUlkbGVDYWxsYmFjayhNZWRpYVBsYXllciog
bXApCitnYm9vbGVhbiBub3RpZnlWb2x1bWVJZGxlQ2FsbGJhY2soZ3BvaW50ZXIgZGF0YSkKIHsK
LSAgICBtcC0+dm9sdW1lQ2hhbmdlZCgpOworICAgIE1lZGlhUGxheWVyUHJpdmF0ZSogbXAgPSBy
ZWludGVycHJldF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZSo+KGRhdGEpOworICAgIG1wLT52b2x1
bWVDaGFuZ2VkQ2FsbGJhY2soKTsKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKK3ZvaWQgbWVkaWFQ
bGF5ZXJQcml2YXRlTXV0ZUNoYW5nZWRDYWxsYmFjayhHT2JqZWN0ICplbGVtZW50LCBHUGFyYW1T
cGVjICpwc3BlYywgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICAvLyBUaGlzIGlzIGNhbGxlZCB3aGVu
IHBsYXliaW4gcmVjZWl2ZXMgdGhlIG5vdGlmeTo6bXV0ZSBzaWduYWwuCisgICAgTWVkaWFQbGF5
ZXJQcml2YXRlKiBtcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0
YSk7CisgICAgbXAtPm11dGVDaGFuZ2VkKCk7Cit9CisKK2dib29sZWFuIG5vdGlmeU11dGVJZGxl
Q2FsbGJhY2soZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBNZWRpYVBsYXllclByaXZhdGUqIG1wID0g
cmVpbnRlcnByZXRfY2FzdDxNZWRpYVBsYXllclByaXZhdGUqPihkYXRhKTsKKyAgICBtcC0+bXV0
ZUNoYW5nZWRDYWxsYmFjaygpOwogICAgIHJldHVybiBGQUxTRTsKIH0KIApAQCAtMjQ4LDYgKzI2
NCw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCiAgICAgLCBtX2Vycm9yT2NjdXJlZChmYWxzZSkKICAgICAsIG1fdm9sdW1lSWRs
ZUlkKC0xKQogICAgICwgbV9tZWRpYUR1cmF0aW9uKDAuMCkKKyAgICAsIG1fbXV0ZUlkbGVJZCgt
MSkKIHsKICAgICBkb0dzdEluaXQoKTsKIH0KQEAgLTI1OSw2ICsyNzYsMTEgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlOjp+TWVkaWFQbGF5ZXJQcml2YXRlKCkKICAgICAgICAgbV92b2x1bWVJZGxlSWQg
PSAtMTsKICAgICB9CiAKKyAgICBpZiAobV9tdXRlSWRsZUlkKSB7CisgICAgICAgIGdfc291cmNl
X3JlbW92ZShtX211dGVJZGxlSWQpOworICAgICAgICBtX211dGVJZGxlSWQgPSAtMTsKKyAgICB9
CisKICAgICBpZiAobV9idWZmZXIpCiAgICAgICAgIGdzdF9idWZmZXJfdW5yZWYobV9idWZmZXIp
OwogICAgIG1fYnVmZmVyID0gMDsKQEAgLTQ4NywxNiArNTA5LDIyIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIGdfb2JqZWN0X3NldChtX3Bs
YXlCaW4sICJ2b2x1bWUiLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZvbHVtZSksIE5VTEwpOwogfQog
Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6dm9sdW1lQ2hhbmdlZENhbGxiYWNrKCkKK3sKKyAg
ICBkb3VibGUgdm9sdW1lOworICAgIGdfb2JqZWN0X2dldChtX3BsYXlCaW4sICJ2b2x1bWUiLCAm
dm9sdW1lLCBOVUxMKTsKKyAgICBtX3BsYXllci0+dm9sdW1lQ2hhbmdlZChzdGF0aWNfY2FzdDxm
bG9hdD4odm9sdW1lKSk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFu
Z2VkKCkKIHsKICAgICBpZiAobV92b2x1bWVJZGxlSWQpIHsKICAgICAgICAgZ19zb3VyY2VfcmVt
b3ZlKG1fdm9sdW1lSWRsZUlkKTsKICAgICAgICAgbV92b2x1bWVJZGxlSWQgPSAtMTsKICAgICB9
Ci0gICAgbV92b2x1bWVJZGxlSWQgPSBnX2lkbGVfYWRkKChHU291cmNlRnVuYykgbm90aWZ5Vm9s
dW1lSWRsZUNhbGxiYWNrLCBtX3BsYXllcik7CisgICAgbV92b2x1bWVJZGxlSWQgPSBnX2lkbGVf
YWRkKChHU291cmNlRnVuYykgbm90aWZ5Vm9sdW1lSWRsZUNhbGxiYWNrLCB0aGlzKTsKIH0KIAot
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0UmF0ZShmbG9hdCByYXRlKQogewogICAgIC8v
IEF2b2lkIHVzZWxlc3MgcGxheWJhY2sgcmF0ZSB1cGRhdGUuCkBAIC04NzcsNiArOTA1LDM2IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpkdXJhdGlvbkNoYW5nZWQoKQogICAgIG1fcGxheWVy
LT5kdXJhdGlvbkNoYW5nZWQoKTsKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGU6OnN1cHBv
cnRzTXV0aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVBs
YXllclByaXZhdGU6OnNldE11dGVkKGJvb2wgbXV0ZWQpCit7CisgICAgaWYgKCFtX3BsYXlCaW4p
CisgICAgICAgIHJldHVybjsKKworICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4sICJtdXRlIiwg
bXV0ZWQsIE5VTEwpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWRD
YWxsYmFjaygpCit7CisgICAgZ2Jvb2xlYW4gbXV0ZWQ7CisgICAgZ19vYmplY3RfZ2V0KG1fcGxh
eUJpbiwgIm11dGUiLCAmbXV0ZWQsIE5VTEwpOworICAgIG1fcGxheWVyLT5tdXRlQ2hhbmdlZChz
dGF0aWNfY2FzdDxib29sPihtdXRlZCkpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6
bXV0ZUNoYW5nZWQoKQoreworICAgIGlmIChtX211dGVJZGxlSWQpIHsKKyAgICAgICAgZ19zb3Vy
Y2VfcmVtb3ZlKG1fbXV0ZUlkbGVJZCk7CisgICAgICAgIG1fbXV0ZUlkbGVJZCA9IC0xOworICAg
IH0KKworICAgIG1fbXV0ZUlkbGVJZCA9IGdfaWRsZV9hZGQoKEdTb3VyY2VGdW5jKSBub3RpZnlN
dXRlSWRsZUNhbGxiYWNrLCB0aGlzKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGU6Omxv
YWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBlcnJvcikKIHsKICAgICBtX2Vy
cm9yT2NjdXJlZCA9IHRydWU7CkBAIC0xMDk1LDYgKzExNTMsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZTo6Y3JlYXRlR1NUUGxheUJpbihTdHJpbmcgdXJsKQogCiAgICAgZ19zaWduYWxfY29u
bmVjdChtX3BsYXlCaW4sICJub3RpZnk6OnZvbHVtZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQ
cml2YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVj
dChtX3BsYXlCaW4sICJub3RpZnk6OnNvdXJjZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2
YXRlU291cmNlQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CisgICAgZ19zaWduYWxfY29ubmVjdCht
X3BsYXlCaW4sICJub3RpZnk6Om11dGUiLCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZU11
dGVDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKIAogICAgIG1fdmlkZW9TaW5rID0gd2Via2l0X3Zp
ZGVvX3NpbmtfbmV3KCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggZWM1NWIyOS4uMzQy
NTdjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTc2LDggKzc2LDE1IEBAIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2Ugewog
ICAgICAgICAgICAgdm9pZCBzZWVrKGZsb2F0KTsKIAogICAgICAgICAgICAgdm9pZCBzZXRSYXRl
KGZsb2F0KTsKKwogICAgICAgICAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOwogICAgICAgICAg
ICAgdm9pZCB2b2x1bWVDaGFuZ2VkKCk7CisgICAgICAgICAgICB2b2lkIHZvbHVtZUNoYW5nZWRD
YWxsYmFjaygpOworCisgICAgICAgICAgICBib29sIHN1cHBvcnRzTXV0aW5nKCkgY29uc3Q7Cisg
ICAgICAgICAgICB2b2lkIHNldE11dGVkKGJvb2wpOworICAgICAgICAgICAgdm9pZCBtdXRlQ2hh
bmdlZCgpOworICAgICAgICAgICAgdm9pZCBtdXRlQ2hhbmdlZENhbGxiYWNrKCk7CiAKICAgICAg
ICAgICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Q7CiAg
ICAgICAgICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CkBA
IC0xNDksNiArMTU2LDcgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAgICAgICAgICAgICBib29sIG1fZXJyb3JPY2N1cmVk
OwogICAgICAgICAgICAgZ3VpbnQgbV92b2x1bWVJZGxlSWQ7CiAgICAgICAgICAgICBnZmxvYXQg
bV9tZWRpYUR1cmF0aW9uOworICAgICAgICAgICAgZ3VpbnQgbV9tdXRlSWRsZUlkOwogICAgIH07
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5oCmluZGV4IGU5ZjY0YmUuLjMxYjg3M2QgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQu
aApAQCAtMTAwLDYgKzEwMCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRSYXRlKGZsb2F0KTsK
ICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXNQaXRjaChi
b29sKTsKKyAgICBib29sIHN1cHBvcnRzTXV0aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2b2lkIHNldE11dGVkKGJvb2wpOwogCiAgICAgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygp
IGNvbnN0OwogICAgIHZvaWQgc2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQubW0gYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5tbQppbmRleCBkZDg3YmI1Li44ZjI5OTY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtNzk3
LDYgKzc5NywxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0UHJlc2VydmVzUGl0Y2go
Ym9vbCBwcmVzZXJ2ZXNQaXRjaCkKICAgICBjcmVhdGVRVE1vdmllKFttb3ZpZUF0dHJpYnV0ZXMg
dmFsdWVGb3JLZXk6UVRNb3ZpZVVSTEF0dHJpYnV0ZV0sIG1vdmllQXR0cmlidXRlcyk7CiB9CiAK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRNdXRlZChib29sKQoreworfQorCiBQYXNzUmVm
UHRyPFRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZTo6YnVmZmVyZWQoKSBjb25zdAogewog
ICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiB0aW1lUmFuZ2VzID0gVGltZVJhbmdlczo6Y3JlYXRlKCk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJp
dmF0ZVBob25vbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVBob25vbi5jcHAKaW5kZXggMzI3NGRiNS4uMGUzYmNhOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9u
LmNwcApAQCAtMjk4LDYgKzI5OCwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0TXV0
ZWQoYm9vbCBtdXRlZCkKICAgICBtX2F1ZGlvT3V0cHV0LT5zZXRNdXRlZChtdXRlZCk7CiB9CiAK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRNdXRlZChib29sKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgTWVkaWFQbGF5ZXJQcml2
YXRlOjpuZXR3b3JrU3RhdGUoKSBjb25zdAogewogICAgIGNvbnN0IFFNZXRhT2JqZWN0KiBtZXRh
T2JqID0gdGhpcy0+bWV0YU9iamVjdCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uaCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmgKaW5kZXggZTc2MzBhMS4uNjNl
MmJmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXll
clByaXZhdGVQaG9ub24uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlh
UGxheWVyUHJpdmF0ZVBob25vbi5oCkBAIC05OCw2ICs5OCw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdm9pZCBzZXRSYXRlKGZsb2F0KTsKICAgICAgICAgdm9pZCBzZXRWb2x1bWUo
ZmxvYXQpOwogICAgICAgICB2b2lkIHNldE11dGVkKGJvb2wpOworICAgICAgICBib29sIHN1cHBv
cnRzTXV0aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgdm9pZCBzZXRNdXRl
ZChib29sKTsKIAogICAgICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0
ZSgpIGNvbnN0OwogICAgICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBs
YXllclByaXZhdGVRdWlja1RpbWVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmNwcAppbmRleCBiMmZlMDY5Li5mYTY3
N2ZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVRdWlja1RpbWVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAKQEAgLTMzMyw2ICszMzMsMTAg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldFByZXNlcnZlc1BpdGNoKGJvb2wgcHJlc2Vy
dmVzUGl0Y2gpCiAgICAgbV9xdE1vdmllLT5zZXRQcmVzZXJ2ZXNQaXRjaChwcmVzZXJ2ZXNQaXRj
aCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRNdXRlZChib29sKQoreworfQor
CiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZTo6aGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdAogewog
ICAgIGlmICghbV9xdE1vdmllKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaAppbmRleCBkNThm
NDRmLi5mYzBlOGFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaApAQCAtOTcsNiArOTcs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0UmF0ZShmbG9hdCk7CiAgICAgdm9pZCBzZXRWb2x1
bWUoZmxvYXQpOwogICAgIHZvaWQgc2V0UHJlc2VydmVzUGl0Y2goYm9vbCk7CisgICAgYm9vbCBz
dXBwb3J0c011dGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9pZCBzZXRNdXRl
ZChib29sKTsKICAgICAKICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya1N0YXRlOyB9CiAgICAgTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsgfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZh
dGVXaW5jZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclBy
aXZhdGVXaW5jZS5oCmluZGV4IGE2NTdlM2UuLmYxNGQwN2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmgK
QEAgLTY0LDYgKzY0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgc2V0
UmF0ZShmbG9hdCk7CiAgICAgICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKKyAgICAgICAgYm9v
bCBzdXBwb3J0c011dGluZygpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIHZvaWQgc2V0TXV0
ZWQoYm9vbCk7CiAKICAgICAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtTdGF0ZTsgfQogICAgICAgICBNZWRpYVBsYXll
cjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBiZDIwYmE3Li5iZDFkNDk3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOSBAQAorMjAxMC0wMS0yNyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dU
S10gc2V0IHBsYXliaW4gbXV0ZSBwcm9wZXJ0eSBkZXBlbmRpbmcgb24gdm9sdW1lIHZhbHVlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTU4NgorCisg
ICAgICAgIE1lZGlhUGxheWVyIE11dGluZyBBUEkgc3R1YnMuCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViTWVkaWFQbGF5ZXJDbGllbnQuaDoKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp2
b2x1bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
OjptdXRlQ2hhbmdlZCk6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1cHBvcnRzTXV0
aW5nKToKKwogMjAxMC0wMS0yNiAgWWFhciBTY2huaXRtYW4gIDx5YWFyQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmggYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgKaW5kZXggNTU4ZmI0YS4uNDdjZTY0ZSAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaApAQCAtNDAs
NyArNDAsOCBAQCBjbGFzcyBXZWJNZWRpYVBsYXllckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJl
YWR5U3RhdGVDaGFuZ2VkKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB2b2x1bWVDaGFuZ2VkKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCB2b2x1bWVDaGFuZ2VkKGZsb2F0KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIG11dGVDaGFuZ2VkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGltZUNo
YW5nZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGR1cmF0aW9uQ2hhbmdlZCgpID0gMDsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCBjMmEzNTM1Li5iMWYxZjAzIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCkBA
IC04NSwxMCArODUsMTYgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnJlYWR5U3Rh
dGVDaGFuZ2VkKCkKICAgICBtX21lZGlhUGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZCgpOwogfQog
Ci12b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6dm9sdW1lQ2hhbmdlZCgpCit2b2lkIFdl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6dm9sdW1lQ2hhbmdlZChmbG9hdCBuZXdWb2x1bWUpCiB7
CiAgICAgQVNTRVJUKG1fbWVkaWFQbGF5ZXIpOwotICAgIG1fbWVkaWFQbGF5ZXItPnZvbHVtZUNo
YW5nZWQoKTsKKyAgICBtX21lZGlhUGxheWVyLT52b2x1bWVDaGFuZ2VkKG5ld1ZvbHVtZSk7Cit9
CisKK3ZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjptdXRlQ2hhbmdlZChib29sIG5ld011
dGUpCit7CisgICAgQVNTRVJUKG1fbWVkaWFQbGF5ZXIpOworICAgIG1fbWVkaWFQbGF5ZXItPm11
dGVDaGFuZ2VkKG5ld011dGUpOwogfQogCiB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6
dGltZUNoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBs
YXllckNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsLmgKaW5kZXggN2YwODdkMC4uM2I5MTI4YyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCkBAIC01Myw3ICs1Myw4IEBAIHB1YmxpYzoK
ICAgICAvLyBXZWJNZWRpYVBsYXllckNsaWVudCBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9pZCBu
ZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2Vk
KCk7Ci0gICAgdmlydHVhbCB2b2lkIHZvbHVtZUNoYW5nZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
dm9sdW1lQ2hhbmdlZChmbG9hdCk7CisgICAgdmlydHVhbCB2b2lkIG11dGVDaGFuZ2VkKGJvb2wp
OwogICAgIHZpcnR1YWwgdm9pZCB0aW1lQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgdm9pZCByZXBh
aW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGR1cmF0aW9uQ2hhbmdlZCgpOwpAQCAtODAsNiArODEs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJhdGUoZmxvYXQpOwogICAgIHZpcnR1
YWwgYm9vbCBwYXVzZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0
KTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNdXRlZChib29sKTsKKwogICAgIHZpcnR1YWwgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBj
b25zdDsKICAgICB2aXJ0dWFsIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwotLSAKMS42
LjMuMw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47527</attachid>
            <date>2010-01-27 06:52:42 -0800</date>
            <delta_ts>2010-01-27 07:43:55 -0800</delta_ts>
            <desc>new API in MediaPlayer for mute control</desc>
            <filename>new-API-in-MediaPlayer-for-mute-control.patch</filename>
            <type>text/plain</type>
            <size>23567</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAzNzk2YjcwNDRlMWEyNTVhYzE4ZmNhMTQ5ZjJlYTE0Njc2MjJiOTU5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDI3IEphbiAyMDEwIDE0OjEyOjE5ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
bmV3IEFQSSBpbiBNZWRpYVBsYXllciBmb3IgbXV0ZSBjb250cm9sCgotLS0KIFdlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2OSArKysrKysrKysr
KysrKysrKysrKwogV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwICAgICAgICAgICAg
ICAgICAgfCAgIDIyICsrKysrKy0KIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggICAg
ICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcCAgICAgICAgICB8ICAgMzAgKysrKysrKystCiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmggICAgICAgICAgICB8ICAgMTMgKysrLQogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCAgICAgfCAgICAzICsKIC4uLi9ncmFw
aGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgIHwgICA2NyArKysrKysr
KysrKysrKysrKystCiAuLi4vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oICAgICB8ICAgIDggKysKIC4uLi9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQuaCAgICAgICAgIHwgICAgMiArCiAuLi4vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Lm1tICAgICAgICB8ICAgIDQgKwogLi4uL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJp
dmF0ZVBob25vbi5jcHAgICAgICAgfCAgICA1ICsrCiAuLi4vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5
ZXJQcml2YXRlUGhvbm9uLmggICAgICAgICB8ICAgIDIgKwogLi4uL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVRdWlja1RpbWVXaW4uY3BwICAgICAgICAgfCAgICA0ICsKIC4uLi9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmggIHwgICAgMiArCiAuLi4vZ3JhcGhpY3Mv
d2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaCAgICAgICB8ICAgIDIgKwogV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrKysrCiBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmggICAgICB8ICAgIDMg
Ky0KIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCAgIHwg
ICAxMCArKy0KIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgg
ICAgIHwgICAgNSArLQogMTkgZmlsZXMgY2hhbmdlZCwgMjU1IGluc2VydGlvbnMoKyksIDEzIGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNGFmODVmMC4uMTIyZDcyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxMC0wMS0yNyAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gc2V0IHBsYXliaW4gbXV0ZSBw
cm9wZXJ0eSBkZXBlbmRpbmcgb24gdm9sdW1lIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTU4NgorCisgICAgICAgIE5ldyBBUEkgaW4gTWVk
aWFQbGF5ZXIgZm9yIG11dGUgY29udHJvbC4gMyBuZXcgbWV0aG9kcyBhcmUKKyAgICAgICAgaW50
cm9kdWNlZDoKKworICAgICAgICAtIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdDsKKyAgICAg
ICAgLSBib29sIG11dGVkKCkgY29uc3Q7CisgICAgICAgIC0gdm9pZCBzZXRNdXRlZChib29sKTsK
KworICAgICAgICBQbGF0Zm9ybSBNZWRpYVBsYXllciBpbXBsZW1lbnRhdGlvbnMgY2FuIHN1cHBv
cnQgaXQgZWFzaWx5IGlmIHRoZQorICAgICAgICB1bmRlcmx5aW5nIHNvdW5kIGRhZW1vbi9BUEkg
c3VwcG9ydHMgbXV0aW5nIChlZy4gbm90IG9ubHkgc2V0dGluZworICAgICAgICB2b2x1bWUgdG8g
MCkgbGlrZSBQdWxzZUF1ZGlvIGZvciBpbnN0YW5jZSBvbiBMaW51eC4gQXQgdGhlIG1vbWVudAor
ICAgICAgICB0aGUgb25seSBwbGF5ZXIgc3VwcG9ydGluZyB0aGlzIG5ldyBBUEkgaXMgdGhlCisg
ICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci4KKworICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpz
ZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
clZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVk
aWFQbGF5ZXJNdXRlQ2hhbmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNNdXRpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyOjptdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c3VwcG9y
dHNNdXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldE11dGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp2b2x1bWVDaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjptdXRlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50
OjptZWRpYVBsYXllck11dGVDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZTo6c3VwcG9ydHNNdXRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6Om5vdGlmeVZvbHVtZUlkbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjptZWRpYVBs
YXllclByaXZhdGVNdXRlQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlm
eU11dGVJZGxlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
OjpNZWRpYVBsYXllclByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlOjp+TWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZTo6dm9sdW1lQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZTo6dm9sdW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlOjptdXRlQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZTo6bXV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlOjpjcmVhdGVHU1RQbGF5QmluKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZTo6ZGF0YVJhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01l
ZGlhUGxheWVyUHJpdmF0ZVBob25vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGU6OnNldE11dGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRp
YVBsYXllclByaXZhdGVQaG9ub24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZTo6c3VwcG9ydHNNdXRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlOjpzZXRNdXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c011dGluZyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNNdXRpbmcpOgorCiAyMDEwLTAxLTI3ICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydCByNTM4
OTkgKEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIFZhbHVlPiBrZXkgY2hlY2tzKSBhbmQgc3Vi
c2VxdWVudCBidWlsZCBmaXhlcywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA1Y2Qw
MTU3Li43MGIwMDBlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMjM1LDggKzEy
MzUsMTYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRNdXRlZChib29sIG11dGVkKQogewog
ICAgIGlmIChtX211dGVkICE9IG11dGVkKSB7CiAgICAgICAgIG1fbXV0ZWQgPSBtdXRlZDsKLSAg
ICAgICAgdXBkYXRlVm9sdW1lKCk7Ci0gICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygp
LnZvbHVtZWNoYW5nZUV2ZW50KTsKKyAgICAgICAgLy8gQXZvaWQgcmVjdXJzaW9uIHdoZW4gdGhl
IHBsYXllciByZXBvcnRzIHZvbHVtZSBjaGFuZ2VzLgorICAgICAgICBpZiAoIXByb2Nlc3NpbmdN
ZWRpYVBsYXllckNhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgIGlmIChtX3BsYXllciAmJiBtX3Bs
YXllci0+c3VwcG9ydHNNdXRpbmcoKSkgeworICAgICAgICAgICAgICAgIG1fcGxheWVyLT5zZXRN
dXRlZChtX211dGVkKTsKKyAgICAgICAgICAgICAgICBpZiAocmVuZGVyZXIoKSkKKyAgICAgICAg
ICAgICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIHVwZGF0ZVZvbHVtZSgpOworICAgICAgICAgICAgc2No
ZWR1bGVFdmVudChldmVudE5hbWVzKCkudm9sdW1lY2hhbmdlRXZlbnQpOworICAgICAgICB9CiAg
ICAgfQogfQogCkBAIC0xNDQ0LDEwICsxNDUyLDIwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXllciopCiB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopCiB7CiAgICAgYmVnaW5Q
cm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOworICAgIGlmIChtX3BsYXllcikKKyAgICAg
ICAgbV92b2x1bWUgPSBtX3BsYXllci0+dm9sdW1lKCk7CiAgICAgdXBkYXRlVm9sdW1lKCk7CiAg
ICAgZW5kUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKIH0KIAordm9pZCBIVE1MTWVk
aWFFbGVtZW50OjptZWRpYVBsYXllck11dGVDaGFuZ2VkKE1lZGlhUGxheWVyKikKK3sKKyAgICBi
ZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CisgICAgaWYgKG1fcGxheWVyKQor
ICAgICAgICBzZXRNdXRlZChtX3BsYXllci0+bXV0ZWQoKSk7CisgICAgZW5kUHJvY2Vzc2luZ01l
ZGlhUGxheWVyQ2FsbGJhY2soKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllckR1cmF0aW9uQ2hhbmdlZChNZWRpYVBsYXllciopCiB7CiAgICAgYmVnaW5Qcm9jZXNzaW5n
TWVkaWFQbGF5ZXJDYWxsYmFjaygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggOWVlMmMy
NS4uNjhiN2NlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xOTYsNiArMTk2LDcgQEAg
cHJpdmF0ZTogLy8gTWVkaWFQbGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5
ZXJSZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBtZWRp
YVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIG1lZGlh
UGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopOworICAgIHZpcnR1YWwgdm9pZCBtZWRp
YVBsYXllck11dGVDaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIG1lZGlh
UGxheWVyRHVyYXRpb25DaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIG1l
ZGlhUGxheWVyUmF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgbWVk
aWFQbGF5ZXJTYXdVbnN1cHBvcnRlZFRyYWNrcyhNZWRpYVBsYXllciopOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA5OTRjN2I2Li4zNTViMTI3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtODcsNiArODcsOSBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSB7IH0KIAorICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCB2b2lkIHNldE11dGVkKGJvb2wpIHsgfQorCiAgICAgdmlydHVhbCBib29sIGhh
c0Nsb3NlZENhcHRpb25zKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wpIHsgfTsKIApAQCAtMTkzLDYgKzE5Niw3
IEBAIE1lZGlhUGxheWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCogY2xpZW50KQog
ICAgICwgbV92aXNpYmxlKGZhbHNlKQogICAgICwgbV9yYXRlKDEuMGYpCiAgICAgLCBtX3ZvbHVt
ZSgxLjBmKQorICAgICwgbV9tdXRlZChmYWxzZSkKICAgICAsIG1fcHJlc2VydmVzUGl0Y2godHJ1
ZSkKICAgICAsIG1fYXV0b2J1ZmZlcihmYWxzZSkKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZP
Ul9WSURFTykKQEAgLTM3OSw2ICszODMsMjIgQEAgdm9pZCBNZWRpYVBsYXllcjo6c2V0Vm9sdW1l
KGZsb2F0IHZvbHVtZSkKICAgICBtX3ByaXZhdGUtPnNldFZvbHVtZSh2b2x1bWUpOyAgIAogfQog
Citib29sIE1lZGlhUGxheWVyOjptdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbXV0ZWQ7
Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzTXV0aW5nKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9wcml2YXRlLT5zdXBwb3J0c011dGluZygpOworfQorCit2b2lkIE1lZGlhUGxheWVy
OjpzZXRNdXRlZChib29sIG11dGVkKQoreworICAgIG1fbXV0ZWQgPSBtdXRlZDsKKyAgICBtX3By
aXZhdGUtPnNldE11dGVkKG11dGVkKTsKK30KKwogYm9vbCBNZWRpYVBsYXllcjo6aGFzQ2xvc2Vk
Q2FwdGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZhdGUtPmhhc0Nsb3NlZENhcHRp
b25zKCk7CkBAIC01NDIsMTIgKzU2MiwyMCBAQCB2b2lkIE1lZGlhUGxheWVyOjpyZWFkeVN0YXRl
Q2hhbmdlZCgpCiAgICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyUmVhZHlT
dGF0ZUNoYW5nZWQodGhpcyk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXI6OnZvbHVtZUNoYW5nZWQo
KQordm9pZCBNZWRpYVBsYXllcjo6dm9sdW1lQ2hhbmdlZChmbG9hdCBuZXdWb2x1bWUpCiB7Cisg
ICAgbV92b2x1bWUgPSBuZXdWb2x1bWU7CiAgICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCiAg
ICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZCh0aGlz
KTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6bXV0ZUNoYW5nZWQoYm9vbCBuZXdNdXRlZCkKK3sK
KyAgICBtX211dGVkID0gbmV3TXV0ZWQ7CisgICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCisg
ICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyTXV0ZUNoYW5nZWQodGhpcyk7
Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXI6OnRpbWVDaGFuZ2VkKCkKIHsKICAgICBpZiAobV9tZWRp
YVBsYXllckNsaWVudCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRl
eCBmYTg1Y2ZkLi40MGVkOGFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCkBAIC04MSw5ICs4MSwxMiBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIHJlYWR5IHN0YXRlIGhh
cyBjaGFuZ2VkCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmVhZHlTdGF0ZUNoYW5nZWQo
TWVkaWFQbGF5ZXIqKSB7IH0KIAotICAgIC8vIHRoZSB2b2x1bWUgb3IgbXV0ZWQgc3RhdGUgaGFz
IGNoYW5nZWQKKyAgICAvLyB0aGUgdm9sdW1lIHN0YXRlIGhhcyBjaGFuZ2VkCiAgICAgdmlydHVh
bCB2b2lkIG1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQogCisgICAg
Ly8gdGhlIG11dGUgc3RhdGUgaGFzIGNoYW5nZWQKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5
ZXJNdXRlQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQorCiAgICAgLy8gdGltZSBoYXMganVtcGVk
LCBlZy4gbm90IGFzIGEgcmVzdWx0IG9mIG5vcm1hbCBwbGF5YmFjawogICAgIHZpcnR1YWwgdm9p
ZCBtZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxheWVyKikgeyB9CiAgICAgCkBAIC0xNzcs
NiArMTgwLDEwIEBAIHB1YmxpYzoKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKICAgICB2b2lk
IHNldFZvbHVtZShmbG9hdCk7CiAKKyAgICBib29sIHN1cHBvcnRzTXV0aW5nKCkgY29uc3Q7Cisg
ICAgYm9vbCBtdXRlZCgpIGNvbnN0OworICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisKICAgICBi
b29sIGhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDbG9zZWRDYXB0aW9u
c1Zpc2libGUoYm9vbCBjbG9zZWRDYXB0aW9uc1Zpc2libGUpOwogCkBAIC0xOTcsNyArMjA0LDgg
QEAgcHVibGljOgogCiAgICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiAgICAgdm9pZCBy
ZWFkeVN0YXRlQ2hhbmdlZCgpOwotICAgIHZvaWQgdm9sdW1lQ2hhbmdlZCgpOworICAgIHZvaWQg
dm9sdW1lQ2hhbmdlZChmbG9hdCk7CisgICAgdm9pZCBtdXRlQ2hhbmdlZChib29sKTsKICAgICB2
b2lkIHRpbWVDaGFuZ2VkKCk7CiAgICAgdm9pZCBzaXplQ2hhbmdlZCgpOwogICAgIHZvaWQgcmF0
ZUNoYW5nZWQoKTsKQEAgLTIzOSw2ICsyNDcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92aXNp
YmxlOwogICAgIGZsb2F0IG1fcmF0ZTsKICAgICBmbG9hdCBtX3ZvbHVtZTsKKyAgICBib29sIG1f
bXV0ZWQ7CiAgICAgYm9vbCBtX3ByZXNlcnZlc1BpdGNoOwogICAgIGJvb2wgbV9hdXRvYnVmZmVy
OwogI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggNmNmMTJiYS4uZTE0Yzg2ZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBA
IC03NCw2ICs3NCw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRWb2x1bWUoZmxv
YXQpID0gMDsKIAorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHNldE11dGVkKGJvb2wpID0gMDsKKwogICAg
IHZpcnR1YWwgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
ICAgIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkgeyB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGVhMzUxOTYuLjExMDlkZjkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTM2LDEzICsxMzYsMjkgQEAgdm9pZCBtZWRpYVBs
YXllclByaXZhdGVTb3VyY2VDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCAqb2JqZWN0LCBHUGFyYW1T
cGVjICpwc3BlYywKIAogdm9pZCBtZWRpYVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJh
Y2soR09iamVjdCAqZWxlbWVudCwgR1BhcmFtU3BlYyAqcHNwZWMsIGdwb2ludGVyIGRhdGEpCiB7
CisgICAgLy8gVGhpcyBpcyBjYWxsZWQgd2hlbiBwbGF5YmluIHJlY2VpdmVzIHRoZSBub3RpZnk6
OnZvbHVtZSBzaWduYWwuCiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7CiAgICAgbXAtPnZvbHVtZUNoYW5nZWQo
KTsKIH0KIAotZ2Jvb2xlYW4gbm90aWZ5Vm9sdW1lSWRsZUNhbGxiYWNrKE1lZGlhUGxheWVyKiBt
cCkKK2dib29sZWFuIG5vdGlmeVZvbHVtZUlkbGVDYWxsYmFjayhncG9pbnRlciBkYXRhKQogewot
ICAgIG1wLT52b2x1bWVDaGFuZ2VkKCk7CisgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7CisgICAgbXAtPnZvbHVt
ZUNoYW5nZWRDYWxsYmFjaygpOworICAgIHJldHVybiBGQUxTRTsKK30KKwordm9pZCBtZWRpYVBs
YXllclByaXZhdGVNdXRlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKmVsZW1lbnQsIEdQYXJhbVNw
ZWMgKnBzcGVjLCBncG9pbnRlciBkYXRhKQoreworICAgIC8vIFRoaXMgaXMgY2FsbGVkIHdoZW4g
cGxheWJpbiByZWNlaXZlcyB0aGUgbm90aWZ5OjptdXRlIHNpZ25hbC4KKyAgICBNZWRpYVBsYXll
clByaXZhdGUqIG1wID0gcmVpbnRlcnByZXRfY2FzdDxNZWRpYVBsYXllclByaXZhdGUqPihkYXRh
KTsKKyAgICBtcC0+bXV0ZUNoYW5nZWQoKTsKK30KKworZ2Jvb2xlYW4gbm90aWZ5TXV0ZUlkbGVD
YWxsYmFjayhncG9pbnRlciBkYXRhKQoreworICAgIE1lZGlhUGxheWVyUHJpdmF0ZSogbXAgPSBy
ZWludGVycHJldF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZSo+KGRhdGEpOworICAgIG1wLT5tdXRl
Q2hhbmdlZENhbGxiYWNrKCk7CiAgICAgcmV0dXJuIEZBTFNFOwogfQogCkBAIC0yNDgsNiArMjY0
LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlOjpNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIq
IHBsYXllcikKICAgICAsIG1fZXJyb3JPY2N1cmVkKGZhbHNlKQogICAgICwgbV92b2x1bWVJZGxl
SWQoLTEpCiAgICAgLCBtX21lZGlhRHVyYXRpb24oMC4wKQorICAgICwgbV9tdXRlSWRsZUlkKC0x
KQogewogICAgIGRvR3N0SW5pdCgpOwogfQpAQCAtMjU5LDYgKzI3NiwxMSBAQCBNZWRpYVBsYXll
clByaXZhdGU6On5NZWRpYVBsYXllclByaXZhdGUoKQogICAgICAgICBtX3ZvbHVtZUlkbGVJZCA9
IC0xOwogICAgIH0KIAorICAgIGlmIChtX211dGVJZGxlSWQpIHsKKyAgICAgICAgZ19zb3VyY2Vf
cmVtb3ZlKG1fbXV0ZUlkbGVJZCk7CisgICAgICAgIG1fbXV0ZUlkbGVJZCA9IC0xOworICAgIH0K
KwogICAgIGlmIChtX2J1ZmZlcikKICAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZihtX2J1ZmZlcik7
CiAgICAgbV9idWZmZXIgPSAwOwpAQCAtNDg3LDE2ICs1MDksMjIgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGU6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgZ19vYmplY3Rfc2V0KG1fcGxh
eUJpbiwgInZvbHVtZSIsIHN0YXRpY19jYXN0PGRvdWJsZT4odm9sdW1lKSwgTlVMTCk7CiB9CiAK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFuZ2VkQ2FsbGJhY2soKQoreworICAg
IGRvdWJsZSB2b2x1bWU7CisgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbiwgInZvbHVtZSIsICZ2
b2x1bWUsIE5VTEwpOworICAgIG1fcGxheWVyLT52b2x1bWVDaGFuZ2VkKHN0YXRpY19jYXN0PGZs
b2F0Pih2b2x1bWUpKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnZvbHVtZUNoYW5n
ZWQoKQogewogICAgIGlmIChtX3ZvbHVtZUlkbGVJZCkgewogICAgICAgICBnX3NvdXJjZV9yZW1v
dmUobV92b2x1bWVJZGxlSWQpOwogICAgICAgICBtX3ZvbHVtZUlkbGVJZCA9IC0xOwogICAgIH0K
LSAgICBtX3ZvbHVtZUlkbGVJZCA9IGdfaWRsZV9hZGQoKEdTb3VyY2VGdW5jKSBub3RpZnlWb2x1
bWVJZGxlQ2FsbGJhY2ssIG1fcGxheWVyKTsKKyAgICBtX3ZvbHVtZUlkbGVJZCA9IGdfaWRsZV9h
ZGQoKEdTb3VyY2VGdW5jKSBub3RpZnlWb2x1bWVJZGxlQ2FsbGJhY2ssIHRoaXMpOwogfQogCi0K
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRSYXRlKGZsb2F0IHJhdGUpCiB7CiAgICAgLy8g
QXZvaWQgdXNlbGVzcyBwbGF5YmFjayByYXRlIHVwZGF0ZS4KQEAgLTg3Nyw2ICs5MDUsMzYgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmR1cmF0aW9uQ2hhbmdlZCgpCiAgICAgbV9wbGF5ZXIt
PmR1cmF0aW9uQ2hhbmdlZCgpOwogfQogCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9y
dHNNdXRpbmcoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBpZiAoIW1fcGxheUJpbikK
KyAgICAgICAgcmV0dXJuOworCisgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbiwgIm11dGUiLCBt
dXRlZCwgTlVMTCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjptdXRlQ2hhbmdlZENh
bGxiYWNrKCkKK3sKKyAgICBnYm9vbGVhbiBtdXRlZDsKKyAgICBnX29iamVjdF9nZXQobV9wbGF5
QmluLCAibXV0ZSIsICZtdXRlZCwgTlVMTCk7CisgICAgbV9wbGF5ZXItPm11dGVDaGFuZ2VkKHN0
YXRpY19jYXN0PGJvb2w+KG11dGVkKSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpt
dXRlQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fbXV0ZUlkbGVJZCkgeworICAgICAgICBnX3NvdXJj
ZV9yZW1vdmUobV9tdXRlSWRsZUlkKTsKKyAgICAgICAgbV9tdXRlSWRsZUlkID0gLTE7CisgICAg
fQorCisgICAgbV9tdXRlSWRsZUlkID0gZ19pZGxlX2FkZCgoR1NvdXJjZUZ1bmMpIG5vdGlmeU11
dGVJZGxlQ2FsbGJhY2ssIHRoaXMpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bG9h
ZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIGVycm9yKQogewogICAgIG1fZXJy
b3JPY2N1cmVkID0gdHJ1ZTsKQEAgLTEwOTUsNiArMTE1Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlOjpjcmVhdGVHU1RQbGF5QmluKFN0cmluZyB1cmwpCiAKICAgICBnX3NpZ25hbF9jb25u
ZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6dm9sdW1lIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclBy
aXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0
KG1fcGxheUJpbiwgIm5vdGlmeTo6c291cmNlIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZh
dGVTb3VyY2VDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1f
cGxheUJpbiwgIm5vdGlmeTo6bXV0ZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlTXV0
ZUNoYW5nZWRDYWxsYmFjayksIHRoaXMpOwogCiAgICAgbV92aWRlb1NpbmsgPSB3ZWJraXRfdmlk
ZW9fc2lua19uZXcoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCBlYzU1YjI5Li4zNDI1
N2NhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNzYsOCArNzYsMTUgQEAgY2xhc3MgTWVk
aWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAg
ICAgICAgICAgICB2b2lkIHNlZWsoZmxvYXQpOwogCiAgICAgICAgICAgICB2b2lkIHNldFJhdGUo
ZmxvYXQpOworCiAgICAgICAgICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAgICAgICAgICAg
ICB2b2lkIHZvbHVtZUNoYW5nZWQoKTsKKyAgICAgICAgICAgIHZvaWQgdm9sdW1lQ2hhbmdlZENh
bGxiYWNrKCk7CisKKyAgICAgICAgICAgIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdDsKKyAg
ICAgICAgICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisgICAgICAgICAgICB2b2lkIG11dGVDaGFu
Z2VkKCk7CisgICAgICAgICAgICB2b2lkIG11dGVDaGFuZ2VkQ2FsbGJhY2soKTsKIAogICAgICAg
ICAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdDsKICAg
ICAgICAgICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKQEAg
LTE0OSw2ICsxNTYsNyBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGUgOiBwdWJsaWMgTWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIGJvb2wgbV9lcnJvck9jY3VyZWQ7
CiAgICAgICAgICAgICBndWludCBtX3ZvbHVtZUlkbGVJZDsKICAgICAgICAgICAgIGdmbG9hdCBt
X21lZGlhRHVyYXRpb247CisgICAgICAgICAgICBndWludCBtX211dGVJZGxlSWQ7CiAgICAgfTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0LmgKaW5kZXggZTlmNjRiZS4uMzFiODczZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5o
CkBAIC0xMDAsNiArMTAwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFJhdGUoZmxvYXQpOwog
ICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKICAgICB2b2lkIHNldFByZXNlcnZlc1BpdGNoKGJv
b2wpOworICAgIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CiAKICAgICBib29sIGhhc0Nsb3NlZENhcHRpb25zKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0Lm1tCmluZGV4IGRkODdiYjUuLjhmMjk5NjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC03OTcs
NiArNzk3LDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRQcmVzZXJ2ZXNQaXRjaChi
b29sIHByZXNlcnZlc1BpdGNoKQogICAgIGNyZWF0ZVFUTW92aWUoW21vdmllQXR0cmlidXRlcyB2
YWx1ZUZvcktleTpRVE1vdmllVVJMQXR0cmlidXRlXSwgbW92aWVBdHRyaWJ1dGVzKTsKIH0KIAor
dm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKGJvb2wpCit7Cit9CisKIFBhc3NSZWZQ
dHI8VGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCgpIGNvbnN0CiB7CiAg
ICAgUmVmUHRyPFRpbWVSYW5nZXM+IHRpbWVSYW5nZXMgPSBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2
YXRlUGhvbm9uLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQ
cml2YXRlUGhvbm9uLmNwcAppbmRleCAzMjc0ZGI1Li4wZTNiY2E4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24u
Y3BwCkBAIC0yOTgsNiArMjk4LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRNdXRl
ZChib29sIG11dGVkKQogICAgIG1fYXVkaW9PdXRwdXQtPnNldE11dGVkKG11dGVkKTsKIH0KIAor
dm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwogTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBNZWRpYVBsYXllclByaXZh
dGU6Om5ldHdvcmtTdGF0ZSgpIGNvbnN0CiB7CiAgICAgY29uc3QgUU1ldGFPYmplY3QqIG1ldGFP
YmogPSB0aGlzLT5tZXRhT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uaAppbmRleCBlNzYzMGExLi42M2Uy
YmZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVBob25vbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQ
bGF5ZXJQcml2YXRlUGhvbm9uLmgKQEAgLTk4LDYgKzk4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIHNldFJhdGUoZmxvYXQpOwogICAgICAgICB2b2lkIHNldFZvbHVtZShm
bG9hdCk7CiAgICAgICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisgICAgICAgIGJvb2wgc3VwcG9y
dHNNdXRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2b2lkIHNldE11dGVk
KGJvb2wpOwogCiAgICAgICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRl
KCkgY29uc3Q7CiAgICAgICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxh
eWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uY3BwCmluZGV4IGIyZmUwNjkuLmZhNjc3
ZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmNwcApAQCAtMzMzLDYgKzMzMywxMCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0UHJlc2VydmVzUGl0Y2goYm9vbCBwcmVzZXJ2
ZXNQaXRjaCkKICAgICBtX3F0TW92aWUtPnNldFByZXNlcnZlc1BpdGNoKHByZXNlcnZlc1BpdGNo
KTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKGJvb2wpCit7Cit9CisK
IGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX3F0TW92aWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oCmluZGV4IGQ1OGY0
NGYuLmZjMGU4YWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oCkBAIC05Nyw2ICs5Nyw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRSYXRlKGZsb2F0KTsKICAgICB2b2lkIHNldFZvbHVt
ZShmbG9hdCk7CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXNQaXRjaChib29sKTsKKyAgICBib29sIHN1
cHBvcnRzTXV0aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIHNldE11dGVk
KGJvb2wpOwogICAgIAogICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRl
KCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0KICAgICBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0
ZVdpbmNlLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJp
dmF0ZVdpbmNlLmgKaW5kZXggYTY1N2UzZS4uZjE0ZDA3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5jZS5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaApA
QCAtNjQsNiArNjQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBzZXRS
YXRlKGZsb2F0KTsKICAgICAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOworICAgICAgICBib29s
IHN1cHBvcnRzTXV0aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgdm9pZCBzZXRNdXRl
ZChib29sKTsKIAogICAgICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya1N0YXRlOyB9CiAgICAgICAgIE1lZGlhUGxheWVy
OjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7IH0K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGJkMjBiYTcuLmJkMWQ0OTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDEwLTAxLTI3ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RL
XSBzZXQgcGxheWJpbiBtdXRlIHByb3BlcnR5IGRlcGVuZGluZyBvbiB2b2x1bWUgdmFsdWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNTg2CisKKyAg
ICAgICAgTWVkaWFQbGF5ZXIgTXV0aW5nIEFQSSBzdHVicy4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJNZWRpYVBsYXllckNsaWVudC5oOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnZv
bHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6
Om11dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNNdXRp
bmcpOgorCiAyMDEwLTAxLTI2ICBZYWFyIFNjaG5pdG1hbiAgPHlhYXJAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaAppbmRleCA1NThmYjRhLi40N2NlNjRlIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oCkBAIC00MCw3
ICs0MCw4IEBAIGNsYXNzIFdlYk1lZGlhUGxheWVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVh
ZHlTdGF0ZUNoYW5nZWQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHZvbHVtZUNoYW5nZWQoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHZvbHVtZUNoYW5nZWQoZmxvYXQpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgbXV0ZUNoYW5nZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0aW1lQ2hh
bmdlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZHVyYXRpb25DaGFuZ2VkKCkgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IGMyYTM1MzUuLmIxZjFmMDMgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAg
LTg1LDEwICs4NSwxNiBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cmVhZHlTdGF0
ZUNoYW5nZWQoKQogICAgIG1fbWVkaWFQbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7CiB9CiAK
LXZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp2b2x1bWVDaGFuZ2VkKCkKK3ZvaWQgV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp2b2x1bWVDaGFuZ2VkKGZsb2F0IG5ld1ZvbHVtZSkKIHsK
ICAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7Ci0gICAgbV9tZWRpYVBsYXllci0+dm9sdW1lQ2hh
bmdlZCgpOworICAgIG1fbWVkaWFQbGF5ZXItPnZvbHVtZUNoYW5nZWQobmV3Vm9sdW1lKTsKK30K
Kwordm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Om11dGVDaGFuZ2VkKGJvb2wgbmV3TXV0
ZSkKK3sKKyAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7CisgICAgbV9tZWRpYVBsYXllci0+bXV0
ZUNoYW5nZWQobmV3TXV0ZSk7CiB9CiAKIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp0
aW1lQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuaAppbmRleCA3ZjA4N2QwLi43MjJmOGE0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKQEAgLTUzLDcgKzUzLDggQEAgcHVibGljOgog
ICAgIC8vIFdlYk1lZGlhUGxheWVyQ2xpZW50IG1ldGhvZHM6CiAgICAgdmlydHVhbCB2b2lkIG5l
dHdvcmtTdGF0ZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgdm9sdW1lQ2hhbmdlZCgpOworICAgIHZpcnR1YWwgdm9pZCB2
b2x1bWVDaGFuZ2VkKGZsb2F0KTsKKyAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNoYW5nZWQoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHRpbWVDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlcGFp
bnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZHVyYXRpb25DaGFuZ2VkKCk7CkBAIC04MCw2ICs4MSw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmF0ZShmbG9hdCk7CiAgICAgdmlydHVh
bCBib29sIHBhdXNlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRWb2x1bWUoZmxvYXQp
OworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisKICAgICB2aXJ0dWFsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0
d29ya1N0YXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBmbG9hdCBtYXhUaW1lU2Vl
a2FibGUoKSBjb25zdDsKLS0gCjEuNi4zLjM=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47533</attachid>
            <date>2010-01-27 07:43:55 -0800</date>
            <delta_ts>2010-01-29 00:52:20 -0800</delta_ts>
            <desc>new API in MediaPlayer for mute control</desc>
            <filename>new-API-in-MediaPlayer-for-mute-control.patch</filename>
            <type>text/plain</type>
            <size>23896</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBjMGVjYWMxMzdiMmU2NDZmMGM0YzYzZTFiNTI5NGM0MWVlNzM0MjhlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDI3IEphbiAyMDEwIDE0OjEyOjE5ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
bmV3IEFQSSBpbiBNZWRpYVBsYXllciBmb3IgbXV0ZSBjb250cm9sCgotLS0KIFdlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2OSArKysrKysrKysr
KysrKysrKysrKwogV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwICAgICAgICAgICAg
ICAgICAgfCAgIDIyICsrKysrKy0KIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggICAg
ICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcCAgICAgICAgICB8ICAgMzAgKysrKysrKystCiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmggICAgICAgICAgICB8ICAgMTMgKysrLQogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCAgICAgfCAgICAzICsKIC4uLi9ncmFw
aGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgIHwgICA2NyArKysrKysr
KysrKysrKysrKystCiAuLi4vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oICAgICB8ICAgIDggKysKIC4uLi9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQuaCAgICAgICAgIHwgICAgMiArCiAuLi4vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Lm1tICAgICAgICB8ICAgIDQgKwogLi4uL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJp
dmF0ZVBob25vbi5jcHAgICAgICAgfCAgICA1ICsrCiAuLi4vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5
ZXJQcml2YXRlUGhvbm9uLmggICAgICAgICB8ICAgIDIgKwogLi4uL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVRdWlja1RpbWVXaW4uY3BwICAgICAgICAgfCAgICA0ICsKIC4uLi9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmggIHwgICAgMiArCiAuLi4vZ3JhcGhpY3Mv
d2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaCAgICAgICB8ICAgIDIgKwogV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrKysrCiBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmggICAgICB8ICAgIDMg
Ky0KIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCAgIHwg
ICAxNCArKysrLQogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwu
aCAgICAgfCAgICA2ICsrLQogMTkgZmlsZXMgY2hhbmdlZCwgMjYwIGluc2VydGlvbnMoKyksIDEz
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNGFmODVmMC4uMTIyZDcyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxMC0wMS0y
NyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gc2V0IHBsYXliaW4gbXV0
ZSBwcm9wZXJ0eSBkZXBlbmRpbmcgb24gdm9sdW1lIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTU4NgorCisgICAgICAgIE5ldyBBUEkgaW4g
TWVkaWFQbGF5ZXIgZm9yIG11dGUgY29udHJvbC4gMyBuZXcgbWV0aG9kcyBhcmUKKyAgICAgICAg
aW50cm9kdWNlZDoKKworICAgICAgICAtIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdDsKKyAg
ICAgICAgLSBib29sIG11dGVkKCkgY29uc3Q7CisgICAgICAgIC0gdm9pZCBzZXRNdXRlZChib29s
KTsKKworICAgICAgICBQbGF0Zm9ybSBNZWRpYVBsYXllciBpbXBsZW1lbnRhdGlvbnMgY2FuIHN1
cHBvcnQgaXQgZWFzaWx5IGlmIHRoZQorICAgICAgICB1bmRlcmx5aW5nIHNvdW5kIGRhZW1vbi9B
UEkgc3VwcG9ydHMgbXV0aW5nIChlZy4gbm90IG9ubHkgc2V0dGluZworICAgICAgICB2b2x1bWUg
dG8gMCkgbGlrZSBQdWxzZUF1ZGlvIGZvciBpbnN0YW5jZSBvbiBMaW51eC4gQXQgdGhlIG1vbWVu
dAorICAgICAgICB0aGUgb25seSBwbGF5ZXIgc3VwcG9ydGluZyB0aGlzIG5ldyBBUEkgaXMgdGhl
CisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci4KKworICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllclZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNNdXRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjptdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c3Vw
cG9ydHNNdXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldE11dGVkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp2b2x1bWVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjptdXRlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xp
ZW50OjptZWRpYVBsYXllck11dGVDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZTo6c3VwcG9ydHNNdXRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6bWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6Om5vdGlmeVZvbHVtZUlkbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjptZWRp
YVBsYXllclByaXZhdGVNdXRlQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om5v
dGlmeU11dGVJZGxlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlOjpNZWRpYVBsYXllclByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlOjp+TWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZTo6dm9sdW1lQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZTo6dm9sdW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlOjptdXRlQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlOjpjcmVhdGVHU1RQbGF5QmluKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
dGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZTo6ZGF0YVJhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0
L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OnNldE11dGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9N
ZWRpYVBsYXllclByaXZhdGVQaG9ub24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZTo6c3VwcG9ydHNNdXRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRNdXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c011dGluZyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNNdXRpbmcpOgorCiAyMDEwLTAxLTI3
ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydCBy
NTM4OTkgKEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIFZhbHVlPiBrZXkgY2hlY2tzKSBhbmQg
c3Vic2VxdWVudCBidWlsZCBmaXhlcywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA1
Y2QwMTU3Li43MGIwMDBlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMjM1LDgg
KzEyMzUsMTYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRNdXRlZChib29sIG11dGVkKQog
ewogICAgIGlmIChtX211dGVkICE9IG11dGVkKSB7CiAgICAgICAgIG1fbXV0ZWQgPSBtdXRlZDsK
LSAgICAgICAgdXBkYXRlVm9sdW1lKCk7Ci0gICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1l
cygpLnZvbHVtZWNoYW5nZUV2ZW50KTsKKyAgICAgICAgLy8gQXZvaWQgcmVjdXJzaW9uIHdoZW4g
dGhlIHBsYXllciByZXBvcnRzIHZvbHVtZSBjaGFuZ2VzLgorICAgICAgICBpZiAoIXByb2Nlc3Np
bmdNZWRpYVBsYXllckNhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgIGlmIChtX3BsYXllciAmJiBt
X3BsYXllci0+c3VwcG9ydHNNdXRpbmcoKSkgeworICAgICAgICAgICAgICAgIG1fcGxheWVyLT5z
ZXRNdXRlZChtX211dGVkKTsKKyAgICAgICAgICAgICAgICBpZiAocmVuZGVyZXIoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHVwZGF0ZVZvbHVtZSgpOworICAgICAgICAgICAg
c2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkudm9sdW1lY2hhbmdlRXZlbnQpOworICAgICAgICB9
CiAgICAgfQogfQogCkBAIC0xNDQ0LDEwICsxNDUyLDIwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXllciopCiB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopCiB7CiAgICAgYmVn
aW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOworICAgIGlmIChtX3BsYXllcikKKyAg
ICAgICAgbV92b2x1bWUgPSBtX3BsYXllci0+dm9sdW1lKCk7CiAgICAgdXBkYXRlVm9sdW1lKCk7
CiAgICAgZW5kUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKIH0KIAordm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYVBsYXllck11dGVDaGFuZ2VkKE1lZGlhUGxheWVyKikKK3sKKyAg
ICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CisgICAgaWYgKG1fcGxheWVy
KQorICAgICAgICBzZXRNdXRlZChtX3BsYXllci0+bXV0ZWQoKSk7CisgICAgZW5kUHJvY2Vzc2lu
Z01lZGlhUGxheWVyQ2FsbGJhY2soKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckR1cmF0aW9uQ2hhbmdlZChNZWRpYVBsYXllciopCiB7CiAgICAgYmVnaW5Qcm9jZXNz
aW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggOWVl
MmMyNS4uNjhiN2NlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xOTYsNiArMTk2LDcg
QEAgcHJpdmF0ZTogLy8gTWVkaWFQbGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQ
bGF5ZXJSZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBt
ZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIG1l
ZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopOworICAgIHZpcnR1YWwgdm9pZCBt
ZWRpYVBsYXllck11dGVDaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIG1l
ZGlhUGxheWVyRHVyYXRpb25DaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lk
IG1lZGlhUGxheWVyUmF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQg
bWVkaWFQbGF5ZXJTYXdVbnN1cHBvcnRlZFRyYWNrcyhNZWRpYVBsYXllciopOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA5OTRjN2I2Li4zNTViMTI3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtODcsNiArODcs
OSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSB7IH0KIAor
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCB2b2lkIHNldE11dGVkKGJvb2wpIHsgfQorCiAgICAgdmlydHVhbCBib29s
IGhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wpIHsgfTsKIApAQCAtMTkzLDYgKzE5
Niw3IEBAIE1lZGlhUGxheWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCogY2xpZW50
KQogICAgICwgbV92aXNpYmxlKGZhbHNlKQogICAgICwgbV9yYXRlKDEuMGYpCiAgICAgLCBtX3Zv
bHVtZSgxLjBmKQorICAgICwgbV9tdXRlZChmYWxzZSkKICAgICAsIG1fcHJlc2VydmVzUGl0Y2go
dHJ1ZSkKICAgICAsIG1fYXV0b2J1ZmZlcihmYWxzZSkKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZ
X0ZPUl9WSURFTykKQEAgLTM3OSw2ICszODMsMjIgQEAgdm9pZCBNZWRpYVBsYXllcjo6c2V0Vm9s
dW1lKGZsb2F0IHZvbHVtZSkKICAgICBtX3ByaXZhdGUtPnNldFZvbHVtZSh2b2x1bWUpOyAgIAog
fQogCitib29sIE1lZGlhUGxheWVyOjptdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbXV0
ZWQ7Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzTXV0aW5nKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9wcml2YXRlLT5zdXBwb3J0c011dGluZygpOworfQorCit2b2lkIE1lZGlhUGxh
eWVyOjpzZXRNdXRlZChib29sIG11dGVkKQoreworICAgIG1fbXV0ZWQgPSBtdXRlZDsKKyAgICBt
X3ByaXZhdGUtPnNldE11dGVkKG11dGVkKTsKK30KKwogYm9vbCBNZWRpYVBsYXllcjo6aGFzQ2xv
c2VkQ2FwdGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZhdGUtPmhhc0Nsb3NlZENh
cHRpb25zKCk7CkBAIC01NDIsMTIgKzU2MiwyMCBAQCB2b2lkIE1lZGlhUGxheWVyOjpyZWFkeVN0
YXRlQ2hhbmdlZCgpCiAgICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyUmVh
ZHlTdGF0ZUNoYW5nZWQodGhpcyk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXI6OnZvbHVtZUNoYW5n
ZWQoKQordm9pZCBNZWRpYVBsYXllcjo6dm9sdW1lQ2hhbmdlZChmbG9hdCBuZXdWb2x1bWUpCiB7
CisgICAgbV92b2x1bWUgPSBuZXdWb2x1bWU7CiAgICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQp
CiAgICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZCh0
aGlzKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6bXV0ZUNoYW5nZWQoYm9vbCBuZXdNdXRlZCkK
K3sKKyAgICBtX211dGVkID0gbmV3TXV0ZWQ7CisgICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQp
CisgICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyTXV0ZUNoYW5nZWQodGhp
cyk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXI6OnRpbWVDaGFuZ2VkKCkKIHsKICAgICBpZiAobV9t
ZWRpYVBsYXllckNsaWVudCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApp
bmRleCBmYTg1Y2ZkLi40MGVkOGFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCkBAIC04MSw5ICs4MSwxMiBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIHJlYWR5IHN0YXRl
IGhhcyBjaGFuZ2VkCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmVhZHlTdGF0ZUNoYW5n
ZWQoTWVkaWFQbGF5ZXIqKSB7IH0KIAotICAgIC8vIHRoZSB2b2x1bWUgb3IgbXV0ZWQgc3RhdGUg
aGFzIGNoYW5nZWQKKyAgICAvLyB0aGUgdm9sdW1lIHN0YXRlIGhhcyBjaGFuZ2VkCiAgICAgdmly
dHVhbCB2b2lkIG1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQogCisg
ICAgLy8gdGhlIG11dGUgc3RhdGUgaGFzIGNoYW5nZWQKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQ
bGF5ZXJNdXRlQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQorCiAgICAgLy8gdGltZSBoYXMganVt
cGVkLCBlZy4gbm90IGFzIGEgcmVzdWx0IG9mIG5vcm1hbCBwbGF5YmFjawogICAgIHZpcnR1YWwg
dm9pZCBtZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxheWVyKikgeyB9CiAgICAgCkBAIC0x
NzcsNiArMTgwLDEwIEBAIHB1YmxpYzoKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKICAgICB2
b2lkIHNldFZvbHVtZShmbG9hdCk7CiAKKyAgICBib29sIHN1cHBvcnRzTXV0aW5nKCkgY29uc3Q7
CisgICAgYm9vbCBtdXRlZCgpIGNvbnN0OworICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisKICAg
ICBib29sIGhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDbG9zZWRDYXB0
aW9uc1Zpc2libGUoYm9vbCBjbG9zZWRDYXB0aW9uc1Zpc2libGUpOwogCkBAIC0xOTcsNyArMjA0
LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiAgICAgdm9p
ZCByZWFkeVN0YXRlQ2hhbmdlZCgpOwotICAgIHZvaWQgdm9sdW1lQ2hhbmdlZCgpOworICAgIHZv
aWQgdm9sdW1lQ2hhbmdlZChmbG9hdCk7CisgICAgdm9pZCBtdXRlQ2hhbmdlZChib29sKTsKICAg
ICB2b2lkIHRpbWVDaGFuZ2VkKCk7CiAgICAgdm9pZCBzaXplQ2hhbmdlZCgpOwogICAgIHZvaWQg
cmF0ZUNoYW5nZWQoKTsKQEAgLTIzOSw2ICsyNDcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92
aXNpYmxlOwogICAgIGZsb2F0IG1fcmF0ZTsKICAgICBmbG9hdCBtX3ZvbHVtZTsKKyAgICBib29s
IG1fbXV0ZWQ7CiAgICAgYm9vbCBtX3ByZXNlcnZlc1BpdGNoOwogICAgIGJvb2wgbV9hdXRvYnVm
ZmVyOwogI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggNmNmMTJiYS4uZTE0Yzg2
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
CkBAIC03NCw2ICs3NCw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRWb2x1bWUo
ZmxvYXQpID0gMDsKIAorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHNldE11dGVkKGJvb2wpID0gMDsKKwog
ICAgIHZpcnR1YWwgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9ICAgIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkg
eyB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGVhMzUxOTYuLjExMDlkZjkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTM2LDEzICsxMzYsMjkgQEAgdm9pZCBtZWRp
YVBsYXllclByaXZhdGVTb3VyY2VDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCAqb2JqZWN0LCBHUGFy
YW1TcGVjICpwc3BlYywKIAogdm9pZCBtZWRpYVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2VkQ2Fs
bGJhY2soR09iamVjdCAqZWxlbWVudCwgR1BhcmFtU3BlYyAqcHNwZWMsIGdwb2ludGVyIGRhdGEp
CiB7CisgICAgLy8gVGhpcyBpcyBjYWxsZWQgd2hlbiBwbGF5YmluIHJlY2VpdmVzIHRoZSBub3Rp
Znk6OnZvbHVtZSBzaWduYWwuCiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7CiAgICAgbXAtPnZvbHVtZUNoYW5n
ZWQoKTsKIH0KIAotZ2Jvb2xlYW4gbm90aWZ5Vm9sdW1lSWRsZUNhbGxiYWNrKE1lZGlhUGxheWVy
KiBtcCkKK2dib29sZWFuIG5vdGlmeVZvbHVtZUlkbGVDYWxsYmFjayhncG9pbnRlciBkYXRhKQog
ewotICAgIG1wLT52b2x1bWVDaGFuZ2VkKCk7CisgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7CisgICAgbXAtPnZv
bHVtZUNoYW5nZWRDYWxsYmFjaygpOworICAgIHJldHVybiBGQUxTRTsKK30KKwordm9pZCBtZWRp
YVBsYXllclByaXZhdGVNdXRlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKmVsZW1lbnQsIEdQYXJh
bVNwZWMgKnBzcGVjLCBncG9pbnRlciBkYXRhKQoreworICAgIC8vIFRoaXMgaXMgY2FsbGVkIHdo
ZW4gcGxheWJpbiByZWNlaXZlcyB0aGUgbm90aWZ5OjptdXRlIHNpZ25hbC4KKyAgICBNZWRpYVBs
YXllclByaXZhdGUqIG1wID0gcmVpbnRlcnByZXRfY2FzdDxNZWRpYVBsYXllclByaXZhdGUqPihk
YXRhKTsKKyAgICBtcC0+bXV0ZUNoYW5nZWQoKTsKK30KKworZ2Jvb2xlYW4gbm90aWZ5TXV0ZUlk
bGVDYWxsYmFjayhncG9pbnRlciBkYXRhKQoreworICAgIE1lZGlhUGxheWVyUHJpdmF0ZSogbXAg
PSByZWludGVycHJldF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZSo+KGRhdGEpOworICAgIG1wLT5t
dXRlQ2hhbmdlZENhbGxiYWNrKCk7CiAgICAgcmV0dXJuIEZBTFNFOwogfQogCkBAIC0yNDgsNiAr
MjY0LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlOjpNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5
ZXIqIHBsYXllcikKICAgICAsIG1fZXJyb3JPY2N1cmVkKGZhbHNlKQogICAgICwgbV92b2x1bWVJ
ZGxlSWQoLTEpCiAgICAgLCBtX21lZGlhRHVyYXRpb24oMC4wKQorICAgICwgbV9tdXRlSWRsZUlk
KC0xKQogewogICAgIGRvR3N0SW5pdCgpOwogfQpAQCAtMjU5LDYgKzI3NiwxMSBAQCBNZWRpYVBs
YXllclByaXZhdGU6On5NZWRpYVBsYXllclByaXZhdGUoKQogICAgICAgICBtX3ZvbHVtZUlkbGVJ
ZCA9IC0xOwogICAgIH0KIAorICAgIGlmIChtX211dGVJZGxlSWQpIHsKKyAgICAgICAgZ19zb3Vy
Y2VfcmVtb3ZlKG1fbXV0ZUlkbGVJZCk7CisgICAgICAgIG1fbXV0ZUlkbGVJZCA9IC0xOworICAg
IH0KKwogICAgIGlmIChtX2J1ZmZlcikKICAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZihtX2J1ZmZl
cik7CiAgICAgbV9idWZmZXIgPSAwOwpAQCAtNDg3LDE2ICs1MDksMjIgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGU6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgZ19vYmplY3Rfc2V0KG1f
cGxheUJpbiwgInZvbHVtZSIsIHN0YXRpY19jYXN0PGRvdWJsZT4odm9sdW1lKSwgTlVMTCk7CiB9
CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFuZ2VkQ2FsbGJhY2soKQorewor
ICAgIGRvdWJsZSB2b2x1bWU7CisgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbiwgInZvbHVtZSIs
ICZ2b2x1bWUsIE5VTEwpOworICAgIG1fcGxheWVyLT52b2x1bWVDaGFuZ2VkKHN0YXRpY19jYXN0
PGZsb2F0Pih2b2x1bWUpKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnZvbHVtZUNo
YW5nZWQoKQogewogICAgIGlmIChtX3ZvbHVtZUlkbGVJZCkgewogICAgICAgICBnX3NvdXJjZV9y
ZW1vdmUobV92b2x1bWVJZGxlSWQpOwogICAgICAgICBtX3ZvbHVtZUlkbGVJZCA9IC0xOwogICAg
IH0KLSAgICBtX3ZvbHVtZUlkbGVJZCA9IGdfaWRsZV9hZGQoKEdTb3VyY2VGdW5jKSBub3RpZnlW
b2x1bWVJZGxlQ2FsbGJhY2ssIG1fcGxheWVyKTsKKyAgICBtX3ZvbHVtZUlkbGVJZCA9IGdfaWRs
ZV9hZGQoKEdTb3VyY2VGdW5jKSBub3RpZnlWb2x1bWVJZGxlQ2FsbGJhY2ssIHRoaXMpOwogfQog
Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRSYXRlKGZsb2F0IHJhdGUpCiB7CiAgICAg
Ly8gQXZvaWQgdXNlbGVzcyBwbGF5YmFjayByYXRlIHVwZGF0ZS4KQEAgLTg3Nyw2ICs5MDUsMzYg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmR1cmF0aW9uQ2hhbmdlZCgpCiAgICAgbV9wbGF5
ZXItPmR1cmF0aW9uQ2hhbmdlZCgpOwogfQogCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZTo6c3Vw
cG9ydHNNdXRpbmcoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBpZiAoIW1fcGxheUJp
bikKKyAgICAgICAgcmV0dXJuOworCisgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbiwgIm11dGUi
LCBtdXRlZCwgTlVMTCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjptdXRlQ2hhbmdl
ZENhbGxiYWNrKCkKK3sKKyAgICBnYm9vbGVhbiBtdXRlZDsKKyAgICBnX29iamVjdF9nZXQobV9w
bGF5QmluLCAibXV0ZSIsICZtdXRlZCwgTlVMTCk7CisgICAgbV9wbGF5ZXItPm11dGVDaGFuZ2Vk
KHN0YXRpY19jYXN0PGJvb2w+KG11dGVkKSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
OjptdXRlQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fbXV0ZUlkbGVJZCkgeworICAgICAgICBnX3Nv
dXJjZV9yZW1vdmUobV9tdXRlSWRsZUlkKTsKKyAgICAgICAgbV9tdXRlSWRsZUlkID0gLTE7Cisg
ICAgfQorCisgICAgbV9tdXRlSWRsZUlkID0gZ19pZGxlX2FkZCgoR1NvdXJjZUZ1bmMpIG5vdGlm
eU11dGVJZGxlQ2FsbGJhY2ssIHRoaXMpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6
bG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIGVycm9yKQogewogICAgIG1f
ZXJyb3JPY2N1cmVkID0gdHJ1ZTsKQEAgLTEwOTUsNiArMTE1Myw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlOjpjcmVhdGVHU1RQbGF5QmluKFN0cmluZyB1cmwpCiAKICAgICBnX3NpZ25hbF9j
b25uZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6dm9sdW1lIiwgR19DQUxMQkFDSyhtZWRpYVBsYXll
clByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25u
ZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6c291cmNlIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclBy
aXZhdGVTb3VyY2VDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0
KG1fcGxheUJpbiwgIm5vdGlmeTo6bXV0ZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRl
TXV0ZUNoYW5nZWRDYWxsYmFjayksIHRoaXMpOwogCiAgICAgbV92aWRlb1NpbmsgPSB3ZWJraXRf
dmlkZW9fc2lua19uZXcoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCBlYzU1YjI5Li4z
NDI1N2NhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0
ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNzYsOCArNzYsMTUgQEAgY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CiAgICAgICAgICAgICB2b2lkIHNlZWsoZmxvYXQpOwogCiAgICAgICAgICAgICB2b2lkIHNldFJh
dGUoZmxvYXQpOworCiAgICAgICAgICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAgICAgICAg
ICAgICB2b2lkIHZvbHVtZUNoYW5nZWQoKTsKKyAgICAgICAgICAgIHZvaWQgdm9sdW1lQ2hhbmdl
ZENhbGxiYWNrKCk7CisKKyAgICAgICAgICAgIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdDsK
KyAgICAgICAgICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisgICAgICAgICAgICB2b2lkIG11dGVD
aGFuZ2VkKCk7CisgICAgICAgICAgICB2b2lkIG11dGVDaGFuZ2VkQ2FsbGJhY2soKTsKIAogICAg
ICAgICAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdDsK
ICAgICAgICAgICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsK
QEAgLTE0OSw2ICsxNTYsNyBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGUgOiBwdWJsaWMgTWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIGJvb2wgbV9lcnJvck9jY3Vy
ZWQ7CiAgICAgICAgICAgICBndWludCBtX3ZvbHVtZUlkbGVJZDsKICAgICAgICAgICAgIGdmbG9h
dCBtX21lZGlhRHVyYXRpb247CisgICAgICAgICAgICBndWludCBtX211dGVJZGxlSWQ7CiAgICAg
fTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0LmgKaW5kZXggZTlmNjRiZS4uMzFiODczZCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5oCkBAIC0xMDAsNiArMTAwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFJhdGUoZmxvYXQp
OwogICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKICAgICB2b2lkIHNldFByZXNlcnZlc1BpdGNo
KGJvb2wpOworICAgIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CiAKICAgICBib29sIGhhc0Nsb3NlZENhcHRpb25z
KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Lm1tCmluZGV4IGRkODdiYjUuLjhmMjk5NjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC03
OTcsNiArNzk3LDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRQcmVzZXJ2ZXNQaXRj
aChib29sIHByZXNlcnZlc1BpdGNoKQogICAgIGNyZWF0ZVFUTW92aWUoW21vdmllQXR0cmlidXRl
cyB2YWx1ZUZvcktleTpRVE1vdmllVVJMQXR0cmlidXRlXSwgbW92aWVBdHRyaWJ1dGVzKTsKIH0K
IAordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKGJvb2wpCit7Cit9CisKIFBhc3NS
ZWZQdHI8VGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCgpIGNvbnN0CiB7
CiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IHRpbWVSYW5nZXMgPSBUaW1lUmFuZ2VzOjpjcmVhdGUo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQ
cml2YXRlUGhvbm9uLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5
ZXJQcml2YXRlUGhvbm9uLmNwcAppbmRleCAzMjc0ZGI1Li4wZTNiY2E4IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9u
b24uY3BwCkBAIC0yOTgsNiArMjk4LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRN
dXRlZChib29sIG11dGVkKQogICAgIG1fYXVkaW9PdXRwdXQtPnNldE11dGVkKG11dGVkKTsKIH0K
IAordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKGJvb2wpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwogTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBNZWRpYVBsYXllclBy
aXZhdGU6Om5ldHdvcmtTdGF0ZSgpIGNvbnN0CiB7CiAgICAgY29uc3QgUU1ldGFPYmplY3QqIG1l
dGFPYmogPSB0aGlzLT5tZXRhT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uaAppbmRleCBlNzYzMGExLi42
M2UyYmZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxh
eWVyUHJpdmF0ZVBob25vbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVk
aWFQbGF5ZXJQcml2YXRlUGhvbm9uLmgKQEAgLTk4LDYgKzk4LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIHNldFJhdGUoZmxvYXQpOwogICAgICAgICB2b2lkIHNldFZvbHVt
ZShmbG9hdCk7CiAgICAgICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisgICAgICAgIGJvb2wgc3Vw
cG9ydHNNdXRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2b2lkIHNldE11
dGVkKGJvb2wpOwogCiAgICAgICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0
YXRlKCkgY29uc3Q7CiAgICAgICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlh
UGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uY3BwCmluZGV4IGIyZmUwNjkuLmZh
Njc3ZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxh
eWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmNwcApAQCAtMzMzLDYgKzMzMywx
MCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0UHJlc2VydmVzUGl0Y2goYm9vbCBwcmVz
ZXJ2ZXNQaXRjaCkKICAgICBtX3F0TW92aWUtPnNldFByZXNlcnZlc1BpdGNoKHByZXNlcnZlc1Bp
dGNoKTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKGJvb2wpCit7Cit9
CisKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX3F0TW92aWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oCmluZGV4IGQ1
OGY0NGYuLmZjMGU4YWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oCkBAIC05Nyw2ICs5
Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRSYXRlKGZsb2F0KTsKICAgICB2b2lkIHNldFZv
bHVtZShmbG9hdCk7CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXNQaXRjaChib29sKTsKKyAgICBib29s
IHN1cHBvcnRzTXV0aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIHNldE11
dGVkKGJvb2wpOwogICAgIAogICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0KICAgICBNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJp
dmF0ZVdpbmNlLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVy
UHJpdmF0ZVdpbmNlLmgKaW5kZXggYTY1N2UzZS4uZjE0ZDA3YSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5jZS5oCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2Uu
aApAQCAtNjQsNiArNjQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBz
ZXRSYXRlKGZsb2F0KTsKICAgICAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOworICAgICAgICBi
b29sIHN1cHBvcnRzTXV0aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgdm9pZCBzZXRN
dXRlZChib29sKTsKIAogICAgICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya1N0YXRlOyB9CiAgICAgICAgIE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7
IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IGJkMjBiYTcuLmJkMWQ0OTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDEwLTAxLTI3ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
R1RLXSBzZXQgcGxheWJpbiBtdXRlIHByb3BlcnR5IGRlcGVuZGluZyBvbiB2b2x1bWUgdmFsdWUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNTg2CisK
KyAgICAgICAgTWVkaWFQbGF5ZXIgTXV0aW5nIEFQSSBzdHVicy4KKworICAgICAgICAqIHB1Ymxp
Yy9XZWJNZWRpYVBsYXllckNsaWVudC5oOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6
OnZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudElt
cGw6Om11dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNN
dXRpbmcpOgorCiAyMDEwLTAxLTI2ICBZYWFyIFNjaG5pdG1hbiAgPHlhYXJAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaCBiL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaAppbmRleCA1NThmYjRhLi40N2NlNjRlIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oCkBAIC00
MCw3ICs0MCw4IEBAIGNsYXNzIFdlYk1lZGlhUGxheWVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
cmVhZHlTdGF0ZUNoYW5nZWQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHZvbHVtZUNoYW5nZWQo
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZvbHVtZUNoYW5nZWQoZmxvYXQpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgbXV0ZUNoYW5nZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0aW1l
Q2hhbmdlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZHVyYXRpb25DaGFuZ2VkKCkgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IGMyYTM1MzUuLjdkMjRhOTIgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNw
cAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAK
QEAgLTg1LDEwICs4NSwxNiBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cmVhZHlT
dGF0ZUNoYW5nZWQoKQogICAgIG1fbWVkaWFQbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7CiB9
CiAKLXZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp2b2x1bWVDaGFuZ2VkKCkKK3ZvaWQg
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp2b2x1bWVDaGFuZ2VkKGZsb2F0IG5ld1ZvbHVtZSkK
IHsKICAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7Ci0gICAgbV9tZWRpYVBsYXllci0+dm9sdW1l
Q2hhbmdlZCgpOworICAgIG1fbWVkaWFQbGF5ZXItPnZvbHVtZUNoYW5nZWQobmV3Vm9sdW1lKTsK
K30KKwordm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Om11dGVDaGFuZ2VkKGJvb2wgbmV3
TXV0ZSkKK3sKKyAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7CisgICAgbV9tZWRpYVBsYXllci0+
bXV0ZUNoYW5nZWQobmV3TXV0ZSk7CiB9CiAKIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
Ojp0aW1lQ2hhbmdlZCgpCkBAIC0yNDksNiArMjU1LDEwIEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgICAgICBtX3dlYk1lZGlhUGxh
eWVyLT5zZXRWb2x1bWUodm9sdW1lKTsKIH0KIAordm9pZCBXZWJNZWRpYVBsYXllckNsaWVudElt
cGw6OnNldE11dGVkKGJvb2wpCit7Cit9CisKIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpuZXR3b3JrU3RhdGUoKSBjb25zdAogewogICAgIGlmICht
X3dlYk1lZGlhUGxheWVyLmdldCgpKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsLmgKaW5kZXggN2YwODdkMC4uM2I5MTI4YyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCkBAIC01Myw3ICs1Myw4IEBA
IHB1YmxpYzoKICAgICAvLyBXZWJNZWRpYVBsYXllckNsaWVudCBtZXRob2RzOgogICAgIHZpcnR1
YWwgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlYWR5U3Rh
dGVDaGFuZ2VkKCk7Ci0gICAgdmlydHVhbCB2b2lkIHZvbHVtZUNoYW5nZWQoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgdm9sdW1lQ2hhbmdlZChmbG9hdCk7CisgICAgdmlydHVhbCB2b2lkIG11dGVDaGFu
Z2VkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCB0aW1lQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwg
dm9pZCByZXBhaW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGR1cmF0aW9uQ2hhbmdlZCgpOwpAQCAt
ODAsNiArODEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJhdGUoZmxvYXQpOwog
ICAgIHZpcnR1YWwgYm9vbCBwYXVzZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9s
dW1lKGZsb2F0KTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNdXRlZChib29sKTsKKwogICAgIHZp
cnR1YWwgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBj
b25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5
U3RhdGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0
OwotLSAKMS42LjMuMw==
</data>
<flag name="review"
          id="29989"
          type_id="1"
          status="-"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47688</attachid>
            <date>2010-01-29 00:52:20 -0800</date>
            <delta_ts>2010-02-01 01:03:12 -0800</delta_ts>
            <desc>new API in MediaPlayer for mute control</desc>
            <filename>new-API-in-MediaPlayer-for-mute-control.patch</filename>
            <type>text/plain</type>
            <size>17583</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyYzc3YTNkYzJiMWE3ZWNiYWUzNWVkMjkxNzVhNzc2YTk3YWNiNzgzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDI3IEphbiAyMDEwIDE0OjEyOjE5ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
bmV3IEFQSSBpbiBNZWRpYVBsYXllciBmb3IgbXV0ZSBjb250cm9sCgotLS0KIFdlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1NSArKysrKysrKysr
KysrKysrCiBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgICAgICAgICAgICAgICAg
ICB8ICAgMjIgKysrKysrLQogV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCAgICAgICAg
ICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwICAgICAgICAgIHwgICAzMCArKysrKysrKystCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmggICAgICAgICAgICB8ICAgMTMgKysrLQogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCAgICAgfCAgICAzICsKIC4uLi9ncmFwaGlj
cy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgIHwgICA2NyArKysrKysrKysr
KysrKysrKystCiAuLi4vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
ICAgICB8ICAgIDggKysrCiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTUgKysrKysKIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnQuaCAgICAgIHwgICAgMyArLQogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRp
YVBsYXllckNsaWVudEltcGwuY3BwICAgfCAgIDEwICsrKy0KIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmggICAgIHwgICAgMyArLQogMTIgZmlsZXMgY2hhbmdl
ZCwgMjE3IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNiMTVhMC4uNTdjM2U1OCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw1OCBAQAorMjAxMC0wMS0yOSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGln
YWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW0dUS10gc2V0IHBsYXliaW4gbXV0ZSBwcm9wZXJ0eSBkZXBlbmRpbmcgb24gdm9sdW1lIHZh
bHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTU4
NgorCisgICAgICAgIE5ldyBBUEkgaW4gTWVkaWFQbGF5ZXIgZm9yIG11dGUgY29udHJvbC4gMyBu
ZXcgbWV0aG9kcyBhcmUKKyAgICAgICAgaW50cm9kdWNlZDoKKworICAgICAgICAtIGJvb2wgc3Vw
cG9ydHNNdXRpbmcoKSBjb25zdDsKKyAgICAgICAgLSBib29sIG11dGVkKCkgY29uc3Q7CisgICAg
ICAgIC0gdm9pZCBzZXRNdXRlZChib29sKTsKKworICAgICAgICBQbGF0Zm9ybSBNZWRpYVBsYXll
ciBpbXBsZW1lbnRhdGlvbnMgY2FuIHN1cHBvcnQgaXQgZWFzaWx5IGlmIHRoZQorICAgICAgICB1
bmRlcmx5aW5nIHNvdW5kIGRhZW1vbi9BUEkgc3VwcG9ydHMgbXV0aW5nIChlZy4gbm90IG9ubHkg
c2V0dGluZworICAgICAgICB2b2x1bWUgdG8gMCkgbGlrZSBQdWxzZUF1ZGlvIGZvciBpbnN0YW5j
ZSBvbiBMaW51eC4gQXQgdGhlIG1vbWVudAorICAgICAgICB0aGUgb25seSBwbGF5ZXIgc3VwcG9y
dGluZyB0aGlzIG5ldyBBUEkgaXMgdGhlCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZCk6CisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0
ZTo6c3VwcG9ydHNNdXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJp
dmF0ZTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjptdXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6c3VwcG9ydHNNdXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OnNldE11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp2
b2x1bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjptdXRlQ2hhbmdl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjptZWRpYVBsYXllck11dGVDaGFuZ2VkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6c3VwcG9ydHNNdXRpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRNdXRlZCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptZWRpYVBsYXllclByaXZhdGVWb2x1bWVDaGFu
Z2VkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6bm90aWZ5Vm9sdW1lSWRsZUNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFuZ2VkQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6bm90aWZ5TXV0ZUlkbGVDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6On5NZWRpYVBsYXllclByaXZhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFuZ2VkQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNNdXRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRNdXRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om11dGVDaGFuZ2VkQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjptdXRlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OmNyZWF0ZUdTVFBsYXlCaW4pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
aDoKKwogMjAxMC0wMS0yOCAgTmljaG9sYXMgWW91bmcgIDxuaWNob2xhcy55b3VuZ0Bub2tpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCmluZGV4IDVjZDAxNTcuLjcwYjAwMGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKQEAgLTEyMzUsOCArMTIzNSwxNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldE11
dGVkKGJvb2wgbXV0ZWQpCiB7CiAgICAgaWYgKG1fbXV0ZWQgIT0gbXV0ZWQpIHsKICAgICAgICAg
bV9tdXRlZCA9IG11dGVkOwotICAgICAgICB1cGRhdGVWb2x1bWUoKTsKLSAgICAgICAgc2NoZWR1
bGVFdmVudChldmVudE5hbWVzKCkudm9sdW1lY2hhbmdlRXZlbnQpOworICAgICAgICAvLyBBdm9p
ZCByZWN1cnNpb24gd2hlbiB0aGUgcGxheWVyIHJlcG9ydHMgdm9sdW1lIGNoYW5nZXMuCisgICAg
ICAgIGlmICghcHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKSkgeworICAgICAgICAgICAg
aWYgKG1fcGxheWVyICYmIG1fcGxheWVyLT5zdXBwb3J0c011dGluZygpKSB7CisgICAgICAgICAg
ICAgICAgbV9wbGF5ZXItPnNldE11dGVkKG1fbXV0ZWQpOworICAgICAgICAgICAgICAgIGlmIChy
ZW5kZXJlcigpKQorICAgICAgICAgICAgICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxl
bWVudCgpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdXBkYXRlVm9sdW1l
KCk7CisgICAgICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS52b2x1bWVjaGFuZ2VF
dmVudCk7CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTE0NDQsMTAgKzE0NTIsMjAgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxheWVyKikK
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJWb2x1bWVDaGFuZ2VkKE1lZGlhUGxh
eWVyKikKIHsKICAgICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CisgICAg
aWYgKG1fcGxheWVyKQorICAgICAgICBtX3ZvbHVtZSA9IG1fcGxheWVyLT52b2x1bWUoKTsKICAg
ICB1cGRhdGVWb2x1bWUoKTsKICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygp
OwogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyTXV0ZUNoYW5nZWQoTWVk
aWFQbGF5ZXIqKQoreworICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsK
KyAgICBpZiAobV9wbGF5ZXIpCisgICAgICAgIHNldE11dGVkKG1fcGxheWVyLT5tdXRlZCgpKTsK
KyAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOworfQorCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRHVyYXRpb25DaGFuZ2VkKE1lZGlhUGxheWVyKikKIHsK
ICAgICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaAppbmRleCA5ZWUyYzI1Li42OGI3Y2U0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
QEAgLTE5Niw2ICsxOTYsNyBAQCBwcml2YXRlOiAvLyBNZWRpYVBsYXllckNsaWVudAogICAgIHZp
cnR1YWwgdm9pZCBtZWRpYVBsYXllclJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAg
ICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyVGltZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJWb2x1bWVDaGFuZ2VkKE1lZGlhUGxheWVyKik7Cisg
ICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyTXV0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJEdXJhdGlvbkNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsK
ICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJSYXRlQ2hhbmdlZChNZWRpYVBsYXllciopOwog
ICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclNhd1Vuc3VwcG9ydGVkVHJhY2tzKE1lZGlhUGxh
eWVyKik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDk5
NGM3YjYuLjM1NWIxMjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCkBAIC04Nyw2ICs4Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRWb2x1
bWUoZmxvYXQpIHsgfQogCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTXV0aW5nKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TXV0ZWQoYm9vbCkgeyB9CisK
ICAgICB2aXJ0dWFsIGJvb2wgaGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkgeyB9
OwogCkBAIC0xOTMsNiArMTk2LDcgQEAgTWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX3Zpc2libGUoZmFsc2UpCiAgICAgLCBtX3JhdGUo
MS4wZikKICAgICAsIG1fdm9sdW1lKDEuMGYpCisgICAgLCBtX211dGVkKGZhbHNlKQogICAgICwg
bV9wcmVzZXJ2ZXNQaXRjaCh0cnVlKQogICAgICwgbV9hdXRvYnVmZmVyKGZhbHNlKQogI2lmIEVO
QUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQpAQCAtMzc5LDYgKzM4MywyMiBAQCB2b2lkIE1l
ZGlhUGxheWVyOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIG1fcHJpdmF0ZS0+c2V0Vm9s
dW1lKHZvbHVtZSk7ICAgCiB9CiAKK2Jvb2wgTWVkaWFQbGF5ZXI6Om11dGVkKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9tdXRlZDsKK30KKworYm9vbCBNZWRpYVBsYXllcjo6c3VwcG9ydHNNdXRp
bmcoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnN1cHBvcnRzTXV0aW5nKCk7Cit9
CisKK3ZvaWQgTWVkaWFQbGF5ZXI6OnNldE11dGVkKGJvb2wgbXV0ZWQpCit7CisgICAgbV9tdXRl
ZCA9IG11dGVkOworICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQobXV0ZWQpOworfQorCiBib29sIE1l
ZGlhUGxheWVyOjpoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJp
dmF0ZS0+aGFzQ2xvc2VkQ2FwdGlvbnMoKTsKQEAgLTU0MiwxMiArNTYyLDIwIEBAIHZvaWQgTWVk
aWFQbGF5ZXI6OnJlYWR5U3RhdGVDaGFuZ2VkKCkKICAgICAgICAgbV9tZWRpYVBsYXllckNsaWVu
dC0+bWVkaWFQbGF5ZXJSZWFkeVN0YXRlQ2hhbmdlZCh0aGlzKTsKIH0KIAotdm9pZCBNZWRpYVBs
YXllcjo6dm9sdW1lQ2hhbmdlZCgpCit2b2lkIE1lZGlhUGxheWVyOjp2b2x1bWVDaGFuZ2VkKGZs
b2F0IG5ld1ZvbHVtZSkKIHsKKyAgICBtX3ZvbHVtZSA9IG5ld1ZvbHVtZTsKICAgICBpZiAobV9t
ZWRpYVBsYXllckNsaWVudCkKICAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5
ZXJWb2x1bWVDaGFuZ2VkKHRoaXMpOwogfQogCit2b2lkIE1lZGlhUGxheWVyOjptdXRlQ2hhbmdl
ZChib29sIG5ld011dGVkKQoreworICAgIG1fbXV0ZWQgPSBuZXdNdXRlZDsKKyAgICBpZiAobV9t
ZWRpYVBsYXllckNsaWVudCkKKyAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5
ZXJNdXRlQ2hhbmdlZCh0aGlzKTsKK30KKwogdm9pZCBNZWRpYVBsYXllcjo6dGltZUNoYW5nZWQo
KQogewogICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oCmluZGV4IGZhODVjZmQuLjQwZWQ4YWUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTgxLDkgKzgxLDEyIEBAIHB1YmxpYzoKICAgICAv
LyB0aGUgcmVhZHkgc3RhdGUgaGFzIGNoYW5nZWQKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5
ZXJSZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQogCi0gICAgLy8gdGhlIHZvbHVt
ZSBvciBtdXRlZCBzdGF0ZSBoYXMgY2hhbmdlZAorICAgIC8vIHRoZSB2b2x1bWUgc3RhdGUgaGFz
IGNoYW5nZWQKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJWb2x1bWVDaGFuZ2VkKE1lZGlh
UGxheWVyKikgeyB9CiAKKyAgICAvLyB0aGUgbXV0ZSBzdGF0ZSBoYXMgY2hhbmdlZAorICAgIHZp
cnR1YWwgdm9pZCBtZWRpYVBsYXllck11dGVDaGFuZ2VkKE1lZGlhUGxheWVyKikgeyB9CisKICAg
ICAvLyB0aW1lIGhhcyBqdW1wZWQsIGVnLiBub3QgYXMgYSByZXN1bHQgb2Ygbm9ybWFsIHBsYXli
YWNrCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyVGltZUNoYW5nZWQoTWVkaWFQbGF5ZXIq
KSB7IH0KICAgICAKQEAgLTE3Nyw2ICsxODAsMTAgQEAgcHVibGljOgogICAgIGZsb2F0IHZvbHVt
ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKIAorICAgIGJvb2wgc3VwcG9y
dHNNdXRpbmcoKSBjb25zdDsKKyAgICBib29sIG11dGVkKCkgY29uc3Q7CisgICAgdm9pZCBzZXRN
dXRlZChib29sKTsKKwogICAgIGJvb2wgaGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdDsKICAgICB2
b2lkIHNldENsb3NlZENhcHRpb25zVmlzaWJsZShib29sIGNsb3NlZENhcHRpb25zVmlzaWJsZSk7
CiAKQEAgLTE5Nyw3ICsyMDQsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG5ldHdvcmtTdGF0ZUNo
YW5nZWQoKTsKICAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKCk7Ci0gICAgdm9pZCB2b2x1bWVD
aGFuZ2VkKCk7CisgICAgdm9pZCB2b2x1bWVDaGFuZ2VkKGZsb2F0KTsKKyAgICB2b2lkIG11dGVD
aGFuZ2VkKGJvb2wpOwogICAgIHZvaWQgdGltZUNoYW5nZWQoKTsKICAgICB2b2lkIHNpemVDaGFu
Z2VkKCk7CiAgICAgdm9pZCByYXRlQ2hhbmdlZCgpOwpAQCAtMjM5LDYgKzI0Nyw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3Zpc2libGU7CiAgICAgZmxvYXQgbV9yYXRlOwogICAgIGZsb2F0IG1f
dm9sdW1lOworICAgIGJvb2wgbV9tdXRlZDsKICAgICBib29sIG1fcHJlc2VydmVzUGl0Y2g7CiAg
ICAgYm9vbCBtX2F1dG9idWZmZXI7CiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8p
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRl
eCA2Y2YxMmJhLi4zYjdjNGQ0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmgKQEAgLTc0LDYgKzc0LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB2b2lkIHNldFZvbHVtZShmbG9hdCkgPSAwOwogCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
TXV0aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TXV0
ZWQoYm9vbCkgeyB9CisKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfSAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xvc2VkQ2FwdGlv
bnNWaXNpYmxlKGJvb2wpIHsgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBlMjRh
ZDg5Li5mYzYwMzEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTE2MywxMyArMTYz
LDI5IEBAIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlU291cmNlQ2hhbmdlZENhbGxiYWNrKEdPYmpl
Y3QgKm9iamVjdCwgR1BhcmFtU3BlYyAqcHNwZWMsCiAKIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRl
Vm9sdW1lQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKmVsZW1lbnQsIEdQYXJhbVNwZWMgKnBzcGVj
LCBncG9pbnRlciBkYXRhKQogeworICAgIC8vIFRoaXMgaXMgY2FsbGVkIHdoZW4gcGxheWJpbiBy
ZWNlaXZlcyB0aGUgbm90aWZ5Ojp2b2x1bWUgc2lnbmFsLgogICAgIE1lZGlhUGxheWVyUHJpdmF0
ZSogbXAgPSByZWludGVycHJldF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZSo+KGRhdGEpOwogICAg
IG1wLT52b2x1bWVDaGFuZ2VkKCk7CiB9CiAKLWdib29sZWFuIG5vdGlmeVZvbHVtZUlkbGVDYWxs
YmFjayhNZWRpYVBsYXllciogbXApCitnYm9vbGVhbiBub3RpZnlWb2x1bWVJZGxlQ2FsbGJhY2so
Z3BvaW50ZXIgZGF0YSkKIHsKLSAgICBtcC0+dm9sdW1lQ2hhbmdlZCgpOworICAgIE1lZGlhUGxh
eWVyUHJpdmF0ZSogbXAgPSByZWludGVycHJldF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZSo+KGRh
dGEpOworICAgIG1wLT52b2x1bWVDaGFuZ2VkQ2FsbGJhY2soKTsKKyAgICByZXR1cm4gRkFMU0U7
Cit9CisKK3ZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZWRDYWxsYmFjayhHT2JqZWN0
ICplbGVtZW50LCBHUGFyYW1TcGVjICpwc3BlYywgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICAvLyBU
aGlzIGlzIGNhbGxlZCB3aGVuIHBsYXliaW4gcmVjZWl2ZXMgdGhlIG5vdGlmeTo6bXV0ZSBzaWdu
YWwuCisgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFQ
bGF5ZXJQcml2YXRlKj4oZGF0YSk7CisgICAgbXAtPm11dGVDaGFuZ2VkKCk7Cit9CisKK2dib29s
ZWFuIG5vdGlmeU11dGVJZGxlQ2FsbGJhY2soZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBNZWRpYVBs
YXllclByaXZhdGUqIG1wID0gcmVpbnRlcnByZXRfY2FzdDxNZWRpYVBsYXllclByaXZhdGUqPihk
YXRhKTsKKyAgICBtcC0+bXV0ZUNoYW5nZWRDYWxsYmFjaygpOwogICAgIHJldHVybiBGQUxTRTsK
IH0KIApAQCAtMjc1LDYgKzI5MSw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX2Vycm9yT2NjdXJlZChmYWxzZSkK
ICAgICAsIG1fdm9sdW1lSWRsZUlkKC0xKQogICAgICwgbV9tZWRpYUR1cmF0aW9uKDAuMCkKKyAg
ICAsIG1fbXV0ZUlkbGVJZCgtMSkKIHsKICAgICBkb0dzdEluaXQoKTsKIH0KQEAgLTI4Niw2ICsz
MDMsMTEgQEAgTWVkaWFQbGF5ZXJQcml2YXRlOjp+TWVkaWFQbGF5ZXJQcml2YXRlKCkKICAgICAg
ICAgbV92b2x1bWVJZGxlSWQgPSAtMTsKICAgICB9CiAKKyAgICBpZiAobV9tdXRlSWRsZUlkKSB7
CisgICAgICAgIGdfc291cmNlX3JlbW92ZShtX211dGVJZGxlSWQpOworICAgICAgICBtX211dGVJ
ZGxlSWQgPSAtMTsKKyAgICB9CisKICAgICBpZiAobV9idWZmZXIpCiAgICAgICAgIGdzdF9idWZm
ZXJfdW5yZWYobV9idWZmZXIpOwogICAgIG1fYnVmZmVyID0gMDsKQEAgLTUxNCwxNiArNTM2LDIy
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAg
IGdfb2JqZWN0X3NldChtX3BsYXlCaW4sICJ2b2x1bWUiLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZv
bHVtZSksIE5VTEwpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6dm9sdW1lQ2hhbmdl
ZENhbGxiYWNrKCkKK3sKKyAgICBkb3VibGUgdm9sdW1lOworICAgIGdfb2JqZWN0X2dldChtX3Bs
YXlCaW4sICJ2b2x1bWUiLCAmdm9sdW1lLCBOVUxMKTsKKyAgICBtX3BsYXllci0+dm9sdW1lQ2hh
bmdlZChzdGF0aWNfY2FzdDxmbG9hdD4odm9sdW1lKSk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlOjp2b2x1bWVDaGFuZ2VkKCkKIHsKICAgICBpZiAobV92b2x1bWVJZGxlSWQpIHsKICAg
ICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fdm9sdW1lSWRsZUlkKTsKICAgICAgICAgbV92b2x1bWVJ
ZGxlSWQgPSAtMTsKICAgICB9Ci0gICAgbV92b2x1bWVJZGxlSWQgPSBnX2lkbGVfYWRkKChHU291
cmNlRnVuYykgbm90aWZ5Vm9sdW1lSWRsZUNhbGxiYWNrLCBtX3BsYXllcik7CisgICAgbV92b2x1
bWVJZGxlSWQgPSBnX2lkbGVfYWRkKChHU291cmNlRnVuYykgbm90aWZ5Vm9sdW1lSWRsZUNhbGxi
YWNrLCB0aGlzKTsKIH0KIAotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0UmF0ZShmbG9h
dCByYXRlKQogewogICAgIC8vIEF2b2lkIHVzZWxlc3MgcGxheWJhY2sgcmF0ZSB1cGRhdGUuCkBA
IC05MDQsNiArOTMyLDM2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpkdXJhdGlvbkNoYW5n
ZWQoKQogICAgIG1fcGxheWVyLT5kdXJhdGlvbkNoYW5nZWQoKTsKIH0KIAorYm9vbCBNZWRpYVBs
YXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVkKGJvb2wgbXV0ZWQpCit7Cisg
ICAgaWYgKCFtX3BsYXlCaW4pCisgICAgICAgIHJldHVybjsKKworICAgIGdfb2JqZWN0X3NldCht
X3BsYXlCaW4sICJtdXRlIiwgbXV0ZWQsIE5VTEwpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZTo6bXV0ZUNoYW5nZWRDYWxsYmFjaygpCit7CisgICAgZ2Jvb2xlYW4gbXV0ZWQ7CisgICAg
Z19vYmplY3RfZ2V0KG1fcGxheUJpbiwgIm11dGUiLCAmbXV0ZWQsIE5VTEwpOworICAgIG1fcGxh
eWVyLT5tdXRlQ2hhbmdlZChzdGF0aWNfY2FzdDxib29sPihtdXRlZCkpOworfQorCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWQoKQoreworICAgIGlmIChtX211dGVJZGxlSWQp
IHsKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fbXV0ZUlkbGVJZCk7CisgICAgICAgIG1fbXV0
ZUlkbGVJZCA9IC0xOworICAgIH0KKworICAgIG1fbXV0ZUlkbGVJZCA9IGdfaWRsZV9hZGQoKEdT
b3VyY2VGdW5jKSBub3RpZnlNdXRlSWRsZUNhbGxiYWNrLCB0aGlzKTsKK30KKwogdm9pZCBNZWRp
YVBsYXllclByaXZhdGU6OmxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBl
cnJvcikKIHsKICAgICBtX2Vycm9yT2NjdXJlZCA9IHRydWU7CkBAIC0xMTIyLDYgKzExODAsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6Y3JlYXRlR1NUUGxheUJpbihTdHJpbmcgdXJsKQog
CiAgICAgZ19zaWduYWxfY29ubmVjdChtX3BsYXlCaW4sICJub3RpZnk6OnZvbHVtZSIsIEdfQ0FM
TEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CiAg
ICAgZ19zaWduYWxfY29ubmVjdChtX3BsYXlCaW4sICJub3RpZnk6OnNvdXJjZSIsIEdfQ0FMTEJB
Q0sobWVkaWFQbGF5ZXJQcml2YXRlU291cmNlQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CisgICAg
Z19zaWduYWxfY29ubmVjdChtX3BsYXlCaW4sICJub3RpZnk6Om11dGUiLCBHX0NBTExCQUNLKG1l
ZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKIAogICAgIG1fdmlk
ZW9TaW5rID0gd2Via2l0X3ZpZGVvX3NpbmtfbmV3KCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgK
aW5kZXggZWM1NWIyOS4uMzQyNTdjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTc2LDgg
Kzc2LDE1IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZSA6IHB1YmxpYyBNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2UgewogICAgICAgICAgICAgdm9pZCBzZWVrKGZsb2F0KTsKIAogICAgICAg
ICAgICAgdm9pZCBzZXRSYXRlKGZsb2F0KTsKKwogICAgICAgICAgICAgdm9pZCBzZXRWb2x1bWUo
ZmxvYXQpOwogICAgICAgICAgICAgdm9pZCB2b2x1bWVDaGFuZ2VkKCk7CisgICAgICAgICAgICB2
b2lkIHZvbHVtZUNoYW5nZWRDYWxsYmFjaygpOworCisgICAgICAgICAgICBib29sIHN1cHBvcnRz
TXV0aW5nKCkgY29uc3Q7CisgICAgICAgICAgICB2b2lkIHNldE11dGVkKGJvb2wpOworICAgICAg
ICAgICAgdm9pZCBtdXRlQ2hhbmdlZCgpOworICAgICAgICAgICAgdm9pZCBtdXRlQ2hhbmdlZENh
bGxiYWNrKCk7CiAKICAgICAgICAgICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29y
a1N0YXRlKCkgY29uc3Q7CiAgICAgICAgICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFk
eVN0YXRlKCkgY29uc3Q7CkBAIC0xNDksNiArMTU2LDcgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2
YXRlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAgICAgICAgICAgICBi
b29sIG1fZXJyb3JPY2N1cmVkOwogICAgICAgICAgICAgZ3VpbnQgbV92b2x1bWVJZGxlSWQ7CiAg
ICAgICAgICAgICBnZmxvYXQgbV9tZWRpYUR1cmF0aW9uOworICAgICAgICAgICAgZ3VpbnQgbV9t
dXRlSWRsZUlkOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDc5MWI5MzMuLmYxMzYwMzIg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTAxLTI5ICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbR1RLXSBzZXQgcGxheWJpbiBtdXRlIHByb3BlcnR5IGRlcGVu
ZGluZyBvbiB2b2x1bWUgdmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMxNTg2CisKKyAgICAgICAgTmV3IEFQSSBpbiBNZWRpYVBsYXllciBmb3Ig
bXV0ZSBjb250cm9sCisKKyAgICAgICAgKiBwdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaDoK
KyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp2b2x1bWVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjptdXRlQ2hhbmdlZCk6CisgICAgICAg
ICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oOgorCiAyMDEwLTAxLTI4ICBKZXJlbXkg
T3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5
ZXJDbGllbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQu
aAppbmRleCA1NThmYjRhLi40N2NlNjRlIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJNZWRpYVBsYXllckNsaWVudC5oCkBAIC00MCw3ICs0MCw4IEBAIGNsYXNzIFdlYk1lZGlhUGxh
eWVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdl
ZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHZvbHVtZUNoYW5nZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZvbHVt
ZUNoYW5nZWQoZmxvYXQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNoYW5nZWQoYm9vbCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCB0aW1lQ2hhbmdlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVwYWludCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHVyYXRpb25DaGFuZ2VkKCkgPSAw
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudElt
cGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3Bw
CmluZGV4IGMyYTM1MzUuLmIxZjFmMDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTg1LDEwICs4NSwxNiBAQCB2b2lkIFdlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbDo6cmVhZHlTdGF0ZUNoYW5nZWQoKQogICAgIG1fbWVkaWFQbGF5
ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsOjp2b2x1bWVDaGFuZ2VkKCkKK3ZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp2b2x1
bWVDaGFuZ2VkKGZsb2F0IG5ld1ZvbHVtZSkKIHsKICAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7
Ci0gICAgbV9tZWRpYVBsYXllci0+dm9sdW1lQ2hhbmdlZCgpOworICAgIG1fbWVkaWFQbGF5ZXIt
PnZvbHVtZUNoYW5nZWQobmV3Vm9sdW1lKTsKK30KKwordm9pZCBXZWJNZWRpYVBsYXllckNsaWVu
dEltcGw6Om11dGVDaGFuZ2VkKGJvb2wgbmV3TXV0ZSkKK3sKKyAgICBBU1NFUlQobV9tZWRpYVBs
YXllcik7CisgICAgbV9tZWRpYVBsYXllci0+bXV0ZUNoYW5nZWQobmV3TXV0ZSk7CiB9CiAKIHZv
aWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp0aW1lQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAppbmRleCA3ZjA4N2QwLi40YWRi
ZWQyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
LmgKQEAgLTUzLDcgKzUzLDggQEAgcHVibGljOgogICAgIC8vIFdlYk1lZGlhUGxheWVyQ2xpZW50
IG1ldGhvZHM6CiAgICAgdmlydHVhbCB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdm9sdW1l
Q2hhbmdlZCgpOworICAgIHZpcnR1YWwgdm9pZCB2b2x1bWVDaGFuZ2VkKGZsb2F0KTsKKyAgICB2
aXJ0dWFsIHZvaWQgbXV0ZUNoYW5nZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHRpbWVDaGFu
Z2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZHVy
YXRpb25DaGFuZ2VkKCk7Ci0tIAoxLjYuMy4z
</data>
<flag name="review"
          id="30202"
          type_id="1"
          status="-"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47819</attachid>
            <date>2010-02-01 01:03:12 -0800</date>
            <delta_ts>2010-02-01 07:35:30 -0800</delta_ts>
            <desc>new API in MediaPlayer for mute control</desc>
            <filename>new-API-in-MediaPlayer-for-mute-control.patch</filename>
            <type>text/plain</type>
            <size>17619</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA3ZDNiMTFiOGQ4MmIzMmQ5MDZhYmRkNzY5ZGVlZmI3NmViOWJhM2VmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDI3IEphbiAyMDEwIDE0OjEyOjE5ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
bmV3IEFQSSBpbiBNZWRpYVBsYXllciBmb3IgbXV0ZSBjb250cm9sCgotLS0KIFdlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1NSArKysrKysrKysr
KysrKysKIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCAgICAgICAgICAgICAgICAg
IHwgICAyMCArKysrKy0KIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggICAgICAgICAg
ICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcCAgICAgICAgICB8ICAgMzAgKysrKysrKystCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmggICAgICAgICAgICB8ICAgMTMgKysrLQogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCAgICAgfCAgICAzICsKIC4uLi9ncmFwaGljcy9n
dGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgIHwgICA3MyArKysrKysrKysrKysr
KysrKy0tLQogLi4uL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCAg
ICAgfCAgICA4ICsrCiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTUgKysrKwogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXll
ckNsaWVudC5oICAgICAgfCAgICAzICstCiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5jcHAgICB8ICAgMTAgKystCiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbC5oICAgICB8ICAgIDMgKy0KIDEyIGZpbGVzIGNoYW5nZWQsIDIx
NyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ0ZmYzOTYuLjJkNmViYTkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTggQEAKKzIwMTAtMDEtMjkgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtH
VEtdIHNldCBwbGF5YmluIG11dGUgcHJvcGVydHkgZGVwZW5kaW5nIG9uIHZvbHVtZSB2YWx1ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1ODYKKwor
ICAgICAgICBOZXcgQVBJIGluIE1lZGlhUGxheWVyIGZvciBtdXRlIGNvbnRyb2wuIDMgbmV3IG1l
dGhvZHMgYXJlCisgICAgICAgIGludHJvZHVjZWQ6CisKKyAgICAgICAgLSBib29sIHN1cHBvcnRz
TXV0aW5nKCkgY29uc3Q7CisgICAgICAgIC0gYm9vbCBtdXRlZCgpIGNvbnN0OworICAgICAgICAt
IHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisKKyAgICAgICAgUGxhdGZvcm0gTWVkaWFQbGF5ZXIgaW1w
bGVtZW50YXRpb25zIGNhbiBzdXBwb3J0IGl0IGVhc2lseSBpZiB0aGUKKyAgICAgICAgdW5kZXJs
eWluZyBzb3VuZCBkYWVtb24vQVBJIHN1cHBvcnRzIG11dGluZyAoZWcuIG5vdCBvbmx5IHNldHRp
bmcKKyAgICAgICAgdm9sdW1lIHRvIDApIGxpa2UgUHVsc2VBdWRpbyBmb3IgaW5zdGFuY2Ugb24g
TGludXguIEF0IHRoZSBtb21lbnQKKyAgICAgICAgdGhlIG9ubHkgcGxheWVyIHN1cHBvcnRpbmcg
dGhpcyBuZXcgQVBJIGlzIHRoZQorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
CisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJWb2x1bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyTXV0ZUNoYW5nZWQpOgorICAgICAgICAqIGh0
bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6OnN1
cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6
OnNldE11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpNZWRpYVBsYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6bXV0ZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXI6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6dm9sdW1l
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6bXV0ZUNoYW5nZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllckNsaWVudDo6bWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnN1cHBvcnRzTXV0aW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6c2V0TXV0ZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeVZvbHVtZUlkbGVDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjptZWRpYVBsYXllclByaXZhdGVNdXRlQ2hhbmdlZENhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeU11dGVJZGxlQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpNZWRpYVBsYXllclByaXZhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjp+TWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6dm9sdW1lQ2hhbmdlZENhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6dm9sdW1lQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjptdXRlQ2hhbmdlZENhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpjcmVhdGVHU1RQbGF5QmluKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisK
IDIwMTAtMDItMDEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAppbmRleCA1Y2QwMTU3Li5mYmQ4OGQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC0xMjM1LDcgKzEyMzUsMTUgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRNdXRlZChi
b29sIG11dGVkKQogewogICAgIGlmIChtX211dGVkICE9IG11dGVkKSB7CiAgICAgICAgIG1fbXV0
ZWQgPSBtdXRlZDsKLSAgICAgICAgdXBkYXRlVm9sdW1lKCk7CisgICAgICAgIC8vIEF2b2lkIHJl
Y3Vyc2lvbiB3aGVuIHRoZSBwbGF5ZXIgcmVwb3J0cyB2b2x1bWUgY2hhbmdlcy4KKyAgICAgICAg
aWYgKCFwcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpKSB7CisgICAgICAgICAgICBpZiAo
bV9wbGF5ZXIgJiYgbV9wbGF5ZXItPnN1cHBvcnRzTXV0aW5nKCkpIHsKKyAgICAgICAgICAgICAg
ICBtX3BsYXllci0+c2V0TXV0ZWQobV9tdXRlZCk7CisgICAgICAgICAgICAgICAgaWYgKHJlbmRl
cmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50
KCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB1cGRhdGVWb2x1bWUoKTsK
KyAgICAgICAgfQogICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS52b2x1bWVjaGFu
Z2VFdmVudCk7CiAgICAgfQogfQpAQCAtMTQ0NCwxMCArMTQ1MiwyMCBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYVBsYXllclZvbHVtZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogewog
ICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKKyAgICBpZiAobV9wbGF5
ZXIpCisgICAgICAgIG1fdm9sdW1lID0gbV9wbGF5ZXItPnZvbHVtZSgpOwogICAgIHVwZGF0ZVZv
bHVtZSgpOwogICAgIGVuZFByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiB9CiAKK3Zv
aWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZChNZWRpYVBsYXllciop
Cit7CisgICAgYmVnaW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOworICAgIGlmICht
X3BsYXllcikKKyAgICAgICAgc2V0TXV0ZWQobV9wbGF5ZXItPm11dGVkKCkpOworICAgIGVuZFBy
b2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7Cit9CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJEdXJhdGlvbkNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogewogICAgIGJlZ2lu
UHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmlu
ZGV4IDllZTJjMjUuLjY4YjdjZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTk2LDYg
KzE5Niw3IEBAIHByaXZhdGU6IC8vIE1lZGlhUGxheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lk
IG1lZGlhUGxheWVyUmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFs
IHZvaWQgbWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwg
dm9pZCBtZWRpYVBsYXllclZvbHVtZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgbWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwg
dm9pZCBtZWRpYVBsYXllckR1cmF0aW9uQ2hhbmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1
YWwgdm9pZCBtZWRpYVBsYXllclJhdGVDaGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVh
bCB2b2lkIG1lZGlhUGxheWVyU2F3VW5zdXBwb3J0ZWRUcmFja3MoTWVkaWFQbGF5ZXIqKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggOTk0YzdiNi4uMzU1
YjEyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTg3
LDYgKzg3LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldFZvbHVtZShmbG9hdCkg
eyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNdXRlZChib29sKSB7IH0KKwogICAgIHZpcnR1
YWwgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCB2b2lkIHNldENsb3NlZENhcHRpb25zVmlzaWJsZShib29sKSB7IH07CiAKQEAgLTE5
Myw2ICsxOTYsNyBAQCBNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQq
IGNsaWVudCkKICAgICAsIG1fdmlzaWJsZShmYWxzZSkKICAgICAsIG1fcmF0ZSgxLjBmKQogICAg
ICwgbV92b2x1bWUoMS4wZikKKyAgICAsIG1fbXV0ZWQoZmFsc2UpCiAgICAgLCBtX3ByZXNlcnZl
c1BpdGNoKHRydWUpCiAgICAgLCBtX2F1dG9idWZmZXIoZmFsc2UpCiAjaWYgRU5BQkxFKFBMVUdJ
Tl9QUk9YWV9GT1JfVklERU8pCkBAIC0zNzksNiArMzgzLDIyIEBAIHZvaWQgTWVkaWFQbGF5ZXI6
OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgbV9wcml2YXRlLT5zZXRWb2x1bWUodm9sdW1l
KTsgICAKIH0KIAorYm9vbCBNZWRpYVBsYXllcjo6bXV0ZWQoKSBjb25zdAoreworICAgIHJldHVy
biBtX211dGVkOworfQorCitib29sIE1lZGlhUGxheWVyOjpzdXBwb3J0c011dGluZygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c3VwcG9ydHNNdXRpbmcoKTsKK30KKwordm9pZCBN
ZWRpYVBsYXllcjo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBtX211dGVkID0gbXV0ZWQ7
CisgICAgbV9wcml2YXRlLT5zZXRNdXRlZChtdXRlZCk7Cit9CisKIGJvb2wgTWVkaWFQbGF5ZXI6
Omhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5oYXND
bG9zZWRDYXB0aW9ucygpOwpAQCAtNTQyLDEyICs1NjIsMjAgQEAgdm9pZCBNZWRpYVBsYXllcjo6
cmVhZHlTdGF0ZUNoYW5nZWQoKQogICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBs
YXllclJlYWR5U3RhdGVDaGFuZ2VkKHRoaXMpOwogfQogCi12b2lkIE1lZGlhUGxheWVyOjp2b2x1
bWVDaGFuZ2VkKCkKK3ZvaWQgTWVkaWFQbGF5ZXI6OnZvbHVtZUNoYW5nZWQoZmxvYXQgbmV3Vm9s
dW1lKQogeworICAgIG1fdm9sdW1lID0gbmV3Vm9sdW1lOwogICAgIGlmIChtX21lZGlhUGxheWVy
Q2xpZW50KQogICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclZvbHVtZUNo
YW5nZWQodGhpcyk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6Om11dGVDaGFuZ2VkKGJvb2wgbmV3
TXV0ZWQpCit7CisgICAgbV9tdXRlZCA9IG5ld011dGVkOworICAgIGlmIChtX21lZGlhUGxheWVy
Q2xpZW50KQorICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllck11dGVDaGFu
Z2VkKHRoaXMpOworfQorCiB2b2lkIE1lZGlhUGxheWVyOjp0aW1lQ2hhbmdlZCgpCiB7CiAgICAg
aWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKaW5kZXggZmE4NWNmZC4uNDBlZDhhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaApAQCAtODEsOSArODEsMTIgQEAgcHVibGljOgogICAgIC8vIHRoZSByZWFk
eSBzdGF0ZSBoYXMgY2hhbmdlZAogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclJlYWR5U3Rh
dGVDaGFuZ2VkKE1lZGlhUGxheWVyKikgeyB9CiAKLSAgICAvLyB0aGUgdm9sdW1lIG9yIG11dGVk
IHN0YXRlIGhhcyBjaGFuZ2VkCisgICAgLy8gdGhlIHZvbHVtZSBzdGF0ZSBoYXMgY2hhbmdlZAog
ICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclZvbHVtZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKSB7
IH0KIAorICAgIC8vIHRoZSBtdXRlIHN0YXRlIGhhcyBjaGFuZ2VkCisgICAgdmlydHVhbCB2b2lk
IG1lZGlhUGxheWVyTXV0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKSB7IH0KKwogICAgIC8vIHRpbWUg
aGFzIGp1bXBlZCwgZWcuIG5vdCBhcyBhIHJlc3VsdCBvZiBub3JtYWwgcGxheWJhY2sKICAgICB2
aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQogICAg
IApAQCAtMTc3LDYgKzE4MCwxMCBAQCBwdWJsaWM6CiAgICAgZmxvYXQgdm9sdW1lKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOwogCisgICAgYm9vbCBzdXBwb3J0c011dGluZygp
IGNvbnN0OworICAgIGJvb2wgbXV0ZWQoKSBjb25zdDsKKyAgICB2b2lkIHNldE11dGVkKGJvb2wp
OworCiAgICAgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0OwogICAgIHZvaWQgc2V0Q2xv
c2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wgY2xvc2VkQ2FwdGlvbnNWaXNpYmxlKTsKIApAQCAtMTk3
LDcgKzIwNCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpOwog
ICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoKTsKLSAgICB2b2lkIHZvbHVtZUNoYW5nZWQoKTsK
KyAgICB2b2lkIHZvbHVtZUNoYW5nZWQoZmxvYXQpOworICAgIHZvaWQgbXV0ZUNoYW5nZWQoYm9v
bCk7CiAgICAgdm9pZCB0aW1lQ2hhbmdlZCgpOwogICAgIHZvaWQgc2l6ZUNoYW5nZWQoKTsKICAg
ICB2b2lkIHJhdGVDaGFuZ2VkKCk7CkBAIC0yMzksNiArMjQ3LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fdmlzaWJsZTsKICAgICBmbG9hdCBtX3JhdGU7CiAgICAgZmxvYXQgbV92b2x1bWU7Cisg
ICAgYm9vbCBtX211dGVkOwogICAgIGJvb2wgbV9wcmVzZXJ2ZXNQaXRjaDsKICAgICBib29sIG1f
YXV0b2J1ZmZlcjsKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDZjZjEyYmEu
LjNiN2M0ZDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXJQcml2YXRlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaApAQCAtNzQsNiArNzQsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Vm9sdW1lKGZsb2F0KSA9IDA7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNdXRlZChib29sKSB7
IH0KKwogICAgIHZpcnR1YWwgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9ICAgIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUo
Ym9vbCkgeyB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDQxZjkwZjAuLmQ5NmMx
ZTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTgxLDEzICsxODEsMjkgQEAgdm9p
ZCBtZWRpYVBsYXllclByaXZhdGVTb3VyY2VDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCAqb2JqZWN0
LCBHUGFyYW1TcGVjICpwc3BlYywKIAogdm9pZCBtZWRpYVBsYXllclByaXZhdGVWb2x1bWVDaGFu
Z2VkQ2FsbGJhY2soR09iamVjdCAqZWxlbWVudCwgR1BhcmFtU3BlYyAqcHNwZWMsIGdwb2ludGVy
IGRhdGEpCiB7CisgICAgLy8gVGhpcyBpcyBjYWxsZWQgd2hlbiBwbGF5YmluIHJlY2VpdmVzIHRo
ZSBub3RpZnk6OnZvbHVtZSBzaWduYWwuCiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlKiBtcCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7CiAgICAgbXAtPnZvbHVt
ZUNoYW5nZWQoKTsKIH0KIAotZ2Jvb2xlYW4gbm90aWZ5Vm9sdW1lSWRsZUNhbGxiYWNrKE1lZGlh
UGxheWVyKiBtcCkKK2dib29sZWFuIG5vdGlmeVZvbHVtZUlkbGVDYWxsYmFjayhncG9pbnRlciBk
YXRhKQogewotICAgIG1wLT52b2x1bWVDaGFuZ2VkKCk7CisgICAgTWVkaWFQbGF5ZXJQcml2YXRl
KiBtcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4oZGF0YSk7CisgICAg
bXAtPnZvbHVtZUNoYW5nZWRDYWxsYmFjaygpOworICAgIHJldHVybiBGQUxTRTsKK30KKwordm9p
ZCBtZWRpYVBsYXllclByaXZhdGVNdXRlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKmVsZW1lbnQs
IEdQYXJhbVNwZWMgKnBzcGVjLCBncG9pbnRlciBkYXRhKQoreworICAgIC8vIFRoaXMgaXMgY2Fs
bGVkIHdoZW4gcGxheWJpbiByZWNlaXZlcyB0aGUgbm90aWZ5OjptdXRlIHNpZ25hbC4KKyAgICBN
ZWRpYVBsYXllclByaXZhdGUqIG1wID0gcmVpbnRlcnByZXRfY2FzdDxNZWRpYVBsYXllclByaXZh
dGUqPihkYXRhKTsKKyAgICBtcC0+bXV0ZUNoYW5nZWQoKTsKK30KKworZ2Jvb2xlYW4gbm90aWZ5
TXV0ZUlkbGVDYWxsYmFjayhncG9pbnRlciBkYXRhKQoreworICAgIE1lZGlhUGxheWVyUHJpdmF0
ZSogbXAgPSByZWludGVycHJldF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZSo+KGRhdGEpOworICAg
IG1wLT5tdXRlQ2hhbmdlZENhbGxiYWNrKCk7CiAgICAgcmV0dXJuIEZBTFNFOwogfQogCkBAIC0y
OTEsOCArMzA3LDkgQEAgTWVkaWFQbGF5ZXJQcml2YXRlOjpNZWRpYVBsYXllclByaXZhdGUoTWVk
aWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fc2Vla2luZyhmYWxzZSkKICAgICAsIG1fcGxheWJh
Y2tSYXRlKDEpCiAgICAgLCBtX2Vycm9yT2NjdXJlZChmYWxzZSkKLSAgICAsIG1fdm9sdW1lSWRs
ZUlkKC0xKQorICAgICwgbV92b2x1bWVJZGxlSWQoMCkKICAgICAsIG1fbWVkaWFEdXJhdGlvbigw
LjApCisgICAgLCBtX211dGVJZGxlSWQoMCkKIHsKICAgICBkb0dzdEluaXQoKTsKIH0KQEAgLTMw
MSw3ICszMTgsMTIgQEAgTWVkaWFQbGF5ZXJQcml2YXRlOjp+TWVkaWFQbGF5ZXJQcml2YXRlKCkK
IHsKICAgICBpZiAobV92b2x1bWVJZGxlSWQpIHsKICAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1f
dm9sdW1lSWRsZUlkKTsKLSAgICAgICAgbV92b2x1bWVJZGxlSWQgPSAtMTsKKyAgICAgICAgbV92
b2x1bWVJZGxlSWQgPSAwOworICAgIH0KKworICAgIGlmIChtX211dGVJZGxlSWQpIHsKKyAgICAg
ICAgZ19zb3VyY2VfcmVtb3ZlKG1fbXV0ZUlkbGVJZCk7CisgICAgICAgIG1fbXV0ZUlkbGVJZCA9
IDA7CiAgICAgfQogCiAgICAgaWYgKG1fYnVmZmVyKQpAQCAtNTMyLDE2ICs1NTQsMjAgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGU6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgZ19vYmpl
Y3Rfc2V0KG1fcGxheUJpbiwgInZvbHVtZSIsIHN0YXRpY19jYXN0PGRvdWJsZT4odm9sdW1lKSwg
TlVMTCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFuZ2VkQ2FsbGJh
Y2soKQoreworICAgIGRvdWJsZSB2b2x1bWU7CisgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbiwg
InZvbHVtZSIsICZ2b2x1bWUsIE5VTEwpOworICAgIG1fcGxheWVyLT52b2x1bWVDaGFuZ2VkKHN0
YXRpY19jYXN0PGZsb2F0Pih2b2x1bWUpKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGU6
OnZvbHVtZUNoYW5nZWQoKQogewotICAgIGlmIChtX3ZvbHVtZUlkbGVJZCkgeworICAgIGlmICht
X3ZvbHVtZUlkbGVJZCkKICAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fdm9sdW1lSWRsZUlkKTsK
LSAgICAgICAgbV92b2x1bWVJZGxlSWQgPSAtMTsKLSAgICB9Ci0gICAgbV92b2x1bWVJZGxlSWQg
PSBnX2lkbGVfYWRkKChHU291cmNlRnVuYykgbm90aWZ5Vm9sdW1lSWRsZUNhbGxiYWNrLCBtX3Bs
YXllcik7CisgICAgbV92b2x1bWVJZGxlSWQgPSBnX2lkbGVfYWRkKChHU291cmNlRnVuYykgbm90
aWZ5Vm9sdW1lSWRsZUNhbGxiYWNrLCB0aGlzKTsKIH0KIAotCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZTo6c2V0UmF0ZShmbG9hdCByYXRlKQogewogICAgIC8vIEF2b2lkIHVzZWxlc3MgcGxheWJh
Y2sgcmF0ZSB1cGRhdGUuCkBAIC05MjIsNiArOTQ4LDM0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlOjpkdXJhdGlvbkNoYW5nZWQoKQogICAgIG1fcGxheWVyLT5kdXJhdGlvbkNoYW5nZWQoKTsK
IH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzTXV0aW5nKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldE11dGVk
KGJvb2wgbXV0ZWQpCit7CisgICAgaWYgKCFtX3BsYXlCaW4pCisgICAgICAgIHJldHVybjsKKwor
ICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4sICJtdXRlIiwgbXV0ZWQsIE5VTEwpOworfQorCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWRDYWxsYmFjaygpCit7CisgICAgZ2Jv
b2xlYW4gbXV0ZWQ7CisgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbiwgIm11dGUiLCAmbXV0ZWQs
IE5VTEwpOworICAgIG1fcGxheWVyLT5tdXRlQ2hhbmdlZChzdGF0aWNfY2FzdDxib29sPihtdXRl
ZCkpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bXV0ZUNoYW5nZWQoKQoreworICAg
IGlmIChtX211dGVJZGxlSWQpCisgICAgICAgIGdfc291cmNlX3JlbW92ZShtX211dGVJZGxlSWQp
OworCisgICAgbV9tdXRlSWRsZUlkID0gZ19pZGxlX2FkZCgoR1NvdXJjZUZ1bmMpIG5vdGlmeU11
dGVJZGxlQ2FsbGJhY2ssIHRoaXMpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bG9h
ZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIGVycm9yKQogewogICAgIG1fZXJy
b3JPY2N1cmVkID0gdHJ1ZTsKQEAgLTExNDAsNiArMTE5NCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlOjpjcmVhdGVHU1RQbGF5QmluKFN0cmluZyB1cmwpCiAKICAgICBnX3NpZ25hbF9jb25u
ZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6dm9sdW1lIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclBy
aXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0
KG1fcGxheUJpbiwgIm5vdGlmeTo6c291cmNlIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZh
dGVTb3VyY2VDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1f
cGxheUJpbiwgIm5vdGlmeTo6bXV0ZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlTXV0
ZUNoYW5nZWRDYWxsYmFjayksIHRoaXMpOwogCiAgICAgbV92aWRlb1NpbmsgPSB3ZWJraXRfdmlk
ZW9fc2lua19uZXcoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCBlYzU1YjI5Li4zNDI1
N2NhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNzYsOCArNzYsMTUgQEAgY2xhc3MgTWVk
aWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAg
ICAgICAgICAgICB2b2lkIHNlZWsoZmxvYXQpOwogCiAgICAgICAgICAgICB2b2lkIHNldFJhdGUo
ZmxvYXQpOworCiAgICAgICAgICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAgICAgICAgICAg
ICB2b2lkIHZvbHVtZUNoYW5nZWQoKTsKKyAgICAgICAgICAgIHZvaWQgdm9sdW1lQ2hhbmdlZENh
bGxiYWNrKCk7CisKKyAgICAgICAgICAgIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdDsKKyAg
ICAgICAgICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CisgICAgICAgICAgICB2b2lkIG11dGVDaGFu
Z2VkKCk7CisgICAgICAgICAgICB2b2lkIG11dGVDaGFuZ2VkQ2FsbGJhY2soKTsKIAogICAgICAg
ICAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdDsKICAg
ICAgICAgICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKQEAg
LTE0OSw2ICsxNTYsNyBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGUgOiBwdWJsaWMgTWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIGJvb2wgbV9lcnJvck9jY3VyZWQ7
CiAgICAgICAgICAgICBndWludCBtX3ZvbHVtZUlkbGVJZDsKICAgICAgICAgICAgIGdmbG9hdCBt
X21lZGlhRHVyYXRpb247CisgICAgICAgICAgICBndWludCBtX211dGVJZGxlSWQ7CiAgICAgfTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggNmE4ZTc2YS4uNjhmNTFmZSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTAtMDEtMjkgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtHVEtdIHNldCBwbGF5YmluIG11dGUgcHJvcGVydHkgZGVwZW5kaW5nIG9uIHZvbHVtZSB2YWx1
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1ODYK
KworICAgICAgICBOZXcgQVBJIGluIE1lZGlhUGxheWVyIGZvciBtdXRlIGNvbnRyb2wKKworICAg
ICAgICAqIHB1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oOgorICAgICAgICAqIHNyYy9XZWJN
ZWRpYVBsYXllckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw6OnZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBs
YXllckNsaWVudEltcGw6Om11dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsLmg6CisKIDIwMTAtMDEtMzEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaCBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaAppbmRleCA1NThmYjRhLi40N2Nl
NjRlIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xp
ZW50LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5o
CkBAIC00MCw3ICs0MCw4IEBAIGNsYXNzIFdlYk1lZGlhUGxheWVyQ2xpZW50IHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHZvbHVtZUNo
YW5nZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZvbHVtZUNoYW5nZWQoZmxvYXQpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNoYW5nZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCB0aW1lQ2hhbmdlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZHVyYXRpb25DaGFuZ2VkKCkgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IGMyYTM1MzUuLmIxZjFm
MDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bC5jcHAKQEAgLTg1LDEwICs4NSwxNiBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6
cmVhZHlTdGF0ZUNoYW5nZWQoKQogICAgIG1fbWVkaWFQbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2Vk
KCk7CiB9CiAKLXZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp2b2x1bWVDaGFuZ2VkKCkK
K3ZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp2b2x1bWVDaGFuZ2VkKGZsb2F0IG5ld1Zv
bHVtZSkKIHsKICAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7Ci0gICAgbV9tZWRpYVBsYXllci0+
dm9sdW1lQ2hhbmdlZCgpOworICAgIG1fbWVkaWFQbGF5ZXItPnZvbHVtZUNoYW5nZWQobmV3Vm9s
dW1lKTsKK30KKwordm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Om11dGVDaGFuZ2VkKGJv
b2wgbmV3TXV0ZSkKK3sKKyAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7CisgICAgbV9tZWRpYVBs
YXllci0+bXV0ZUNoYW5nZWQobmV3TXV0ZSk7CiB9CiAKIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsOjp0aW1lQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBs
YXllckNsaWVudEltcGwuaAppbmRleCA3ZjA4N2QwLi40YWRiZWQyIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKQEAgLTUzLDcgKzUzLDggQEAg
cHVibGljOgogICAgIC8vIFdlYk1lZGlhUGxheWVyQ2xpZW50IG1ldGhvZHM6CiAgICAgdmlydHVh
bCB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0
ZUNoYW5nZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdm9sdW1lQ2hhbmdlZCgpOworICAgIHZpcnR1
YWwgdm9pZCB2b2x1bWVDaGFuZ2VkKGZsb2F0KTsKKyAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNoYW5n
ZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHRpbWVDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCB2
b2lkIHJlcGFpbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZHVyYXRpb25DaGFuZ2VkKCk7Ci0tIAox
LjYuMy4z
</data>
<flag name="review"
          id="30360"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>