<?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>108088</bug_id>
          
          <creation_ts>2013-01-28 09:27:27 -0800</creation_ts>
          <short_desc>[GStreamer] webkitwebsrc is exposed to application-side</short_desc>
          <delta_ts>2017-07-10 07:49:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=152043</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=163166</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>109279</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>andrunko</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cturner</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gustavo</cc>
    
    <cc>ht990332</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rohan16garg</cc>
    
    <cc>slomo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>817807</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-01-28 09:27:27 -0800</bug_when>
    <thetext>See https://bugs.kde.org/show_bug.cgi?id=310763 and https://projects.kde.org/projects/kdesupport/phonon/phonon-gstreamer/repository/revisions/master/entry/gstreamer/pipeline.cpp#L859

We call gst_element_register() to register our http source element and it seems that applications using webkit (for UI I guess) and gst playbin to play some http media get webkitwebsrc auto-plugged.

Webkitwebsrc should remain private to our media player and not &quot;leak out&quot; like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817824</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-01-28 09:53:32 -0800</bug_when>
    <thetext>Well... maybe it&apos;s time to move to a decodebin-based pipeline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821276</commentid>
    <comment_count>2</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2013-01-31 02:20:05 -0800</bug_when>
    <thetext>I only see the following options here
a) Make it possible for applications to use webkitwebsrc too
b) Use a different URI protocol (e.g. http+webkit://)
c) Make webkitwebsrc private and stop using playbin2.


c) is not really a great option, you&apos;ll lose all the multi-stream handling (e.g. multiple audio streams), the handling of multiple &quot;groups&quot; (e.g. fragments in HLS or chained oggs), clever sink selection and a convenient API. IMHO only a) and b) should be considered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821277</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-01-31 02:23:35 -0800</bug_when>
    <thetext>The b) option would be interesting to explore I think.
a) doesn&apos;t make much sense to me, webkitwebsrc uses some rather internal WebCore APIs, I&apos;m not sure we can&apos;t guarantee they&apos;d work out of WebKit&apos;s context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821287</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-01-31 02:32:38 -0800</bug_when>
    <thetext>If we go for option b) nothing prevents people to use the element from their app but they&apos;ll be warned :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822702</commentid>
    <comment_count>5</comment_count>
      <attachid>186028</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-01 06:12:26 -0800</bug_when>
    <thetext>Created attachment 186028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822835</commentid>
    <comment_count>6</comment_count>
      <attachid>186028</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-01 09:01:28 -0800</bug_when>
    <thetext>Comment on attachment 186028
Patch

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

Looks good, but I think it could use a teensy bit of cleanup.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:307
&gt; +void MediaPlayerPrivateGStreamer::setPlaybinURL(KURL url)

This should likely accept a const KURL&amp; url to avoid a copy.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:335
&gt; +    // Clean out everything after file:// url path.
&gt; +    if (kurl.isLocalFile())
&gt; +        cleanUrl = cleanUrl.substring(0, kurl.pathEnd());

kurl.removeFragmentIdentifier() ? Probably better to put this into setPlaybinURL.

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:579
&gt; +    ASSERT(url.protocol().substring(0, 7) == &quot;webkit+&quot;);
&gt; +    url.setProtocol(url.protocol().substring(7));

You should probably make a getPlaybinURL method.

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:598
&gt; -    static gchar* protocols[] = {(gchar*) &quot;http&quot;, (gchar*) &quot;https&quot;, 0 };
&gt; +    static gchar* protocols[] = {(gchar*) &quot;webkit+http&quot;, (gchar*) &quot;webkit+https&quot;, 0 };

So do we even support file URLs? I&apos;m pretty sure you don&apos;t need these casts here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822848</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-01 09:14:22 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 186028 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186028&amp;action=review
&gt; 
&gt; Looks good, but I think it could use a teensy bit of cleanup.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:307
&gt; &gt; +void MediaPlayerPrivateGStreamer::setPlaybinURL(KURL url)
&gt; 
&gt; This should likely accept a const KURL&amp; url to avoid a copy.
&gt; 

I tried that when writing the initial patch but it didn&apos;t work out, will give it another chance.

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:335
&gt; &gt; +    // Clean out everything after file:// url path.
&gt; &gt; +    if (kurl.isLocalFile())
&gt; &gt; +        cleanUrl = cleanUrl.substring(0, kurl.pathEnd());
&gt; 
&gt; kurl.removeFragmentIdentifier() ? Probably better to put this into setPlaybinURL.

Well this code is shuffled around, I didn&apos;t mean to modify it but I guess I can give this a try :)

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:579
&gt; &gt; +    ASSERT(url.protocol().substring(0, 7) == &quot;webkit+&quot;);
&gt; &gt; +    url.setProtocol(url.protocol().substring(7));
&gt; 
&gt; You should probably make a getPlaybinURL method.
&gt; 

Hum but the element has no access to the player.

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:598
&gt; &gt; -    static gchar* protocols[] = {(gchar*) &quot;http&quot;, (gchar*) &quot;https&quot;, 0 };
&gt; &gt; +    static gchar* protocols[] = {(gchar*) &quot;webkit+http&quot;, (gchar*) &quot;webkit+https&quot;, 0 };
&gt; 
&gt; So do we even support file URLs? I&apos;m pretty sure you don&apos;t need these casts here.

file URLs are supported via the gst filesrc element.
IIRC the casts were needed when I did the initial port but I&apos;ll check it again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822859</commentid>
    <comment_count>8</comment_count>
      <attachid>186028</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-01 09:25:01 -0800</bug_when>
    <thetext>Comment on attachment 186028
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:579
&gt;&gt;&gt; +    url.setProtocol(url.protocol().substring(7));
&gt;&gt; 
&gt;&gt; You should probably make a getPlaybinURL method.
&gt; 
&gt; Hum but the element has no access to the player.

Hrm. Maybe a static method just for converting then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822879</commentid>
    <comment_count>9</comment_count>
      <attachid>186065</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-01 09:37:09 -0800</bug_when>
    <thetext>Created attachment 186065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822892</commentid>
    <comment_count>10</comment_count>
      <attachid>186065</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-01 09:49:10 -0800</bug_when>
    <thetext>Comment on attachment 186065
Patch

Attachment 186065 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16301849</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822893</commentid>
    <comment_count>11</comment_count>
      <attachid>186067</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-01 09:49:45 -0800</bug_when>
    <thetext>Created attachment 186067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822896</commentid>
    <comment_count>12</comment_count>
      <attachid>186069</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-01 09:52:25 -0800</bug_when>
    <thetext>Created attachment 186069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822899</commentid>
    <comment_count>13</comment_count>
      <attachid>186069</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-01 09:54:38 -0800</bug_when>
    <thetext>Comment on attachment 186069
Patch

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

Thanks!

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:343
&gt; +    // Clean out everything after file:// url path.
&gt; +    if (kurl.isLocalFile())
&gt; +        kurl.removeFragmentIdentifier();

Mind moving this into MediaPlayerPrivateGStreamer::setPlaybinURL?

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:142
&gt; +            static KURL getPlaybinURL(const gchar* uri);

Probably should be called convertPlaybinURL since it&apos;s not a getter.

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:596
&gt; -    static gchar* protocols[] = {(gchar*) &quot;http&quot;, (gchar*) &quot;https&quot;, 0 };
&gt; +    static gchar* protocols[] = {&quot;webkit+http&quot;, &quot;webkit+https&quot;, 0 };

I guess you need  const here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822904</commentid>
    <comment_count>14</comment_count>
      <attachid>186069</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-01 10:00:02 -0800</bug_when>
    <thetext>Comment on attachment 186069
Patch

Attachment 186069 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16302835</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822905</commentid>
    <comment_count>15</comment_count>
      <attachid>186069</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-01 10:00:38 -0800</bug_when>
    <thetext>Comment on attachment 186069
Patch

Attachment 186069 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16307852</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823656</commentid>
    <comment_count>16</comment_count>
      <attachid>186230</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-02 07:31:29 -0800</bug_when>
    <thetext>Created attachment 186230
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823658</commentid>
    <comment_count>17</comment_count>
      <attachid>186230</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-02 07:38:10 -0800</bug_when>
    <thetext>Comment on attachment 186230
Patch for landing

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:343
&gt; +    // Clean out everything after file:// url path.
&gt; +    if (kurl.isLocalFile())
&gt; +        kurl.removeFragmentIdentifier();

I think it makes a lot of sense to move this into MediaPlayerPrivateGStreamer::setPlaybinURL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823660</commentid>
    <comment_count>18</comment_count>
      <attachid>186230</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-02 07:39:48 -0800</bug_when>
    <thetext>Comment on attachment 186230
Patch for landing

Attachment 186230 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16338836</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823661</commentid>
    <comment_count>19</comment_count>
      <attachid>186231</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-02 07:45:41 -0800</bug_when>
    <thetext>Created attachment 186231
Patch for landing #2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823663</commentid>
    <comment_count>20</comment_count>
      <attachid>186231</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-02 07:55:52 -0800</bug_when>
    <thetext>Comment on attachment 186231
Patch for landing #2

Attachment 186231 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16342829</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823664</commentid>
    <comment_count>21</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-02 08:03:02 -0800</bug_when>
    <thetext>Committed r141695: &lt;http://trac.webkit.org/changeset/141695&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828378</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-08 03:12:26 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 109279</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828537</commentid>
    <comment_count>23</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-08 06:56:15 -0800</bug_when>
    <thetext>Special attention should be directed to the http/tests/media/video-play-stall.html test when this patch is revised.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829045</commentid>
    <comment_count>24</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-09 09:41:19 -0800</bug_when>
    <thetext>Well this patch can land again once those 2 GStreamer bugs are fixed:
https://bugzilla.gnome.org/show_bug.cgi?id=638749
https://bugzilla.gnome.org/show_bug.cgi?id=693484

I checked the media and http/tests/media tests pass and that on-disk buffering still works :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829054</commentid>
    <comment_count>25</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-09 10:09:12 -0800</bug_when>
    <thetext>Is WebKit broken without the new versions of GStreamer? If so we need to update the versions in configure.ac. Either way the patch needs to bump the version in the jhbuild, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829062</commentid>
    <comment_count>26</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-09 10:21:50 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; Is WebKit broken without the new versions of GStreamer?

No it&apos;s not, we rolled out the patch for now, so no functionality is broken. We still expose webkitwebsrc to apps but this has been so for 3 years already.

&gt; If so we need to update the versions in configure.ac. Either way the patch needs to bump the version in the jhbuild, right?

We&apos;ll need to bump the gst versions in jhbuild yes. 1.0.6 is supposed to be released soon but I&apos;m not sure my patches will land on time for that release :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829064</commentid>
    <comment_count>27</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-09 10:24:36 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; &gt; Is WebKit broken without the new versions of GStreamer?
&gt; 
&gt; No it&apos;s not, we rolled out the patch for now, so no functionality is broken. We still expose webkitwebsrc to apps but this has been so for 3 years already.

Oh, I mean when we land the patch again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829068</commentid>
    <comment_count>28</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-09 10:35:47 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; &gt; (In reply to comment #25)
&gt; &gt; &gt; Is WebKit broken without the new versions of GStreamer?
&gt; &gt; 
&gt; &gt; No it&apos;s not, we rolled out the patch for now, so no functionality is broken. We still expose webkitwebsrc to apps but this has been so for 3 years already.
&gt; 
&gt; Oh, I mean when we land the patch again.

Ok so yes, for sure we can&apos;t land this again without bumping our gst requirements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845295</commentid>
    <comment_count>29</comment_count>
      <attachid>186069</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-01 10:39:51 -0800</bug_when>
    <thetext>Comment on attachment 186069
Patch

Cleared Martin Robinson&apos;s review+ from obsolete attachment 186069 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877126</commentid>
    <comment_count>30</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-04-17 05:46:57 -0700</bug_when>
    <thetext>We need a new patch doing something simirlar to http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=d975a70f12d13ea057de1ef760a79108ead43990

with ifdefs for GStreamer 1.1.x I suppose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877127</commentid>
    <comment_count>31</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-04-17 05:52:34 -0700</bug_when>
    <thetext>I&apos;ll have a look at this as soon as I have a moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880648</commentid>
    <comment_count>32</comment_count>
      <attachid>199490</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-04-24 08:58:01 -0700</bug_when>
    <thetext>Created attachment 199490
Patch

Rebased and added the scheduling flag support to the gstreamer source.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880676</commentid>
    <comment_count>33</comment_count>
      <attachid>199490</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-04-24 09:51:15 -0700</bug_when>
    <thetext>Comment on attachment 199490
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:645
&gt; -    static gchar* protocols[] = {(gchar*) &quot;http&quot;, (gchar*) &quot;https&quot;, 0 };
&gt; +    static gchar* const protocols[] = {(gchar*) &quot;webkit+http&quot;, (gchar*) &quot;webkit+https&quot;, 0 };

This is the 0.10 code path, right? If so, please revert this.

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:670
&gt; -    KURL url(KURL(), uri);
&gt; +    KURL url = WebCore::MediaPlayerPrivateGStreamer::convertPlaybinURL(uri);

Ditto!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881165</commentid>
    <comment_count>34</comment_count>
      <attachid>199641</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-04-25 02:24:08 -0700</bug_when>
    <thetext>Created attachment 199641
Patch

Fixed issues with the scheduling flag and the 0.10 codepath. We need to wait for next GStreamer release before finishing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881769</commentid>
    <comment_count>35</comment_count>
      <attachid>199641</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-04-26 02:00:14 -0700</bug_when>
    <thetext>Comment on attachment 199641
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:557
&gt; +        gst_query_parse_scheduling(query, &amp;flags, &amp;minSize, &amp;maxSize, &amp;align);

I&apos;m not sure any element answers the query before us so I suspect the query is empty so no parsing would be needed. For min/max/align you could use the default values I suppose.

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:558
&gt; +        flags = static_cast&lt;GstSchedulingFlags&gt;(static_cast&lt;unsigned&gt;(flags) | GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED);

Why all the casts? flags |= GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED; not sufficient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881781</commentid>
    <comment_count>36</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-04-26 02:30:33 -0700</bug_when>
    <thetext>Ok, I&apos;ll fix this when we have GStreamer release and we can push this.

(In reply to comment #35)
&gt; (From update of attachment 199641 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=199641&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:557
&gt; &gt; +        gst_query_parse_scheduling(query, &amp;flags, &amp;minSize, &amp;maxSize, &amp;align);
&gt; 
&gt; I&apos;m not sure any element answers the query before us so I suspect the query is empty so no parsing would be needed. For min/max/align you could use the default values I suppose.

Ok.

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:558
&gt; &gt; +        flags = static_cast&lt;GstSchedulingFlags&gt;(static_cast&lt;unsigned&gt;(flags) | GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED);
&gt; 
&gt; Why all the casts? flags |= GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED; not sufficient?

No, typing problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881946</commentid>
    <comment_count>37</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-04-26 10:33:14 -0700</bug_when>
    <thetext>It seems that https://bugzilla.gnome.org/show_bug.cgi?id=693484 didn&apos;t make it for the release. We&apos;ll have to wait for what comes next after 1.0.7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882497</commentid>
    <comment_count>38</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-04-29 01:33:08 -0700</bug_when>
    <thetext>(In reply to comment #37)
&gt; It seems that https://bugzilla.gnome.org/show_bug.cgi?id=693484 didn&apos;t make it for the release. We&apos;ll have to wait for what comes next after 1.0.7.

It will be shipped in 1.1.x/1.2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901335</commentid>
    <comment_count>39</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-06-18 03:39:19 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; It will be shipped in 1.1.x/1.2.

Adding dependency to the bug about bumping the gst version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908362</commentid>
    <comment_count>40</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-07-15 04:24:40 -0700</bug_when>
    <thetext>(In reply to comment #39)
&gt; (In reply to comment #38)
&gt; &gt; It will be shipped in 1.1.x/1.2.
&gt; 
&gt; Adding dependency to the bug about bumping the gst version.

Removing dependency as fixes needed in GStreamer for this didn&apos;t make it to 1.0.8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917371</commentid>
    <comment_count>41</comment_count>
    <who name="Andre Moreira Magalhaes">andrunko</who>
    <bug_when>2013-08-14 17:54:19 -0700</bug_when>
    <thetext>As discussed on IRC, this patch would break the use case where a gstreamer plugin uses the webkit gst source internally to download data (through gst_element_make_from_uri) which is the case for DASH/MSS and others.

In this case, if using the proposed patch, the DASH plugin for example would use the webkit src to download the main manifest file (playlist) and souphttpsrc or any other available source to download the fragments internally which is undesirable.

The bug is still valid though as we may want to allow apps to opt not to use the webkit src explicitly (see https://bugzilla.gnome.org/show_bug.cgi?id=705976).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035713</commentid>
    <comment_count>42</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-09-17 08:19:24 -0700</bug_when>
    <thetext>(In reply to comment #41)
&gt; As discussed on IRC, this patch would break the use case where a gstreamer plugin uses the webkit gst source internally to download data (through gst_element_make_from_uri) which is the case for DASH/MSS and others.
&gt; 
&gt; In this case, if using the proposed patch, the DASH plugin for example would use the webkit src to download the main manifest file (playlist) and souphttpsrc or any other available source to download the fragments internally which is undesirable.
&gt; 

I&apos;ve been wondering if it&apos;d be possible for the demuxer to reuse the same src element instead of creating a new one for each fragment. Is that technically possible?

If we could do that, the fragments would be downloaded using the src element (or new instances of it) that was used to fetch the main playlist.

&gt; The bug is still valid though as we may want to allow apps to opt not to use the webkit src explicitly (see https://bugzilla.gnome.org/show_bug.cgi?id=705976).

Yes :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035882</commentid>
    <comment_count>43</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2014-09-18 02:31:43 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; (In reply to comment #41)
&gt; &gt; As discussed on IRC, this patch would break the use case where a gstreamer plugin uses the webkit gst source internally to download data (through gst_element_make_from_uri) which is the case for DASH/MSS and others.
&gt; &gt; 
&gt; &gt; In this case, if using the proposed patch, the DASH plugin for example would use the webkit src to download the main manifest file (playlist) and souphttpsrc or any other available source to download the fragments internally which is undesirable.
&gt; &gt; 
&gt; 
&gt; I&apos;ve been wondering if it&apos;d be possible for the demuxer to reuse the same src element instead of creating a new one for each fragment. Is that technically possible?
&gt; 
&gt; If we could do that, the fragments would be downloaded using the src element (or new instances of it) that was used to fetch the main playlist.

It should already use the same source element for all the fragments, but a different one than for the main playlist.

Using the same one also for the main playlist will be very tricky and so far I only know a workaround that can make this possible. Problem here is that you would need to re-use the source element of the pipeline inside some element in the middle of the pipeline.

A workaround here would be to implement the source as a GstBin that includes the actual source element... and then on EOS (of the playlist) make the actual source element available in some kind of free-list, where it then would be taken by the adaptive streaming demuxer. This however will only work for adaptive streaming formats and must not be done for anything else, it will break otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051090</commentid>
    <comment_count>44</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-26 07:17:51 -0800</bug_when>
    <thetext>I&apos;ll move the SCHEDULING query support to a separate patch, we need that for HLS on gst 1.4.x.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053094</commentid>
    <comment_count>45</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2014-12-07 01:15:33 -0800</bug_when>
    <thetext>Is there a plan here now?

I think the main problem that is left to be solved is that GStreamer elements instantiated by the playbin inside WebKit would want to use the webkitwebsrc for http/https URIs (hlsdemux!). So we need to have it available with highest rank inside webkit pipelines, and only hide it in external pipelines.

This is currently not possible with GStreamer, elements are registered globally and have a global rank. To make this possible will need to make these things configurable somehow. Maybe with a per-thread setting (think g_main_context_push_thread_default() / pop_thread_default()) and have elements inherit it from the threads where they&apos;re created.

Better ideas? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122513</commentid>
    <comment_count>46</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-09-01 03:00:54 -0700</bug_when>
    <thetext>I think we can actually land the original patch again.

Why is it an issue anyway to download the playlist/manifest with webkitwebsrc and the fragments with souphttpsrc? Both elements now behave equally from the point of view of adaptivedemux, the important properties adaptivedemux/uridownloader uses are correctly exposed on both src elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122514</commentid>
    <comment_count>47</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2015-09-01 03:06:23 -0700</bug_when>
    <thetext>Cookies and authentication</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137102</commentid>
    <comment_count>48</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-10-28 04:34:39 -0700</bug_when>
    <thetext>(In reply to comment #47)
&gt; Cookies and authentication

Ok that can be fixed if the HTTP context sharing goes through :)
https://bugzilla.gnome.org/show_bug.cgi?id=726314</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326975</commentid>
    <comment_count>49</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-10 05:43:59 -0700</bug_when>
    <thetext>Can we close this now after r219252?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326999</commentid>
    <comment_count>50</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-07-10 07:45:04 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #49)
&gt; Can we close this now after r219252?

I think so, but I leave Charlie to have the final word.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327000</commentid>
    <comment_count>51</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2017-07-10 07:49:25 -0700</bug_when>
    <thetext>It&apos;s not leaking out anymore, but the best approach would be to solve https://bugzilla.gnome.org/show_bug.cgi?id=705976 instead of using this workaround, but as of today there&apos;s no better alternative.

I&apos;ll close.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186028</attachid>
            <date>2013-02-01 06:12:26 -0800</date>
            <delta_ts>2013-02-01 09:37:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>7473</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAwNWNjMTg1MmNjODgwYTk0NTJjNWQ0ZTM5ZmNlNjkzMzI4ODFhYWJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDEgRmViIDIwMTMgMTU6MDg6MjcgKzAxMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMjMgKysrKysrKysrKysKIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcCAgICAgIHwgICA0MCArKysrKysrKysrLS0tLS0tLS0tLQogLi4uL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCAgICAgICAgfCAgICAxICsKIC4uLi9n
c3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCAgICAgICAgIHwgICAxMCArKysr
LQogNCBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZWE5ZjQxYS4uOWNmZTgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBA
CisyMDEzLTAyLTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbR1N0cmVhbWVyXSB3ZWJraXR3ZWJzcmMgaXMgZXhwb3NlZCB0byBhcHBsaWNhdGlv
bi1zaWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDgwODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
d2l0Y2ggdGhlIHdlYmtpdHdlYnNyYyB0byBoYW5kbGUgd2Via2l0K2h0dHAocykgdXJpcyBzbyBp
dCBpcyBub3cKKyAgICAgICAgZXhwbGljaXQgdGhhdCB0aGlzIGVsZW1lbnQgaXMgbWVhbnQgdG8g
YmUgdXNlZCBwcmVmZXJyYWJseSBpbnNpZGUKKyAgICAgICAgV2ViS2l0LiBUaGlzIGNoYW5nZSBp
cyBpbnRlcm5hbCB0byB0aGUgcGxheWVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJl
ZCBieSBleGlzdGluZyBodHRwL3Rlc3RzL21lZGlhIHRlc3RzLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFBsYXliaW5V
UkwpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmxvYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJTcmNHZXRQ
cm90b2NvbHMpOgorICAgICAgICAod2ViS2l0V2ViU3JjU2V0VXJpKToKKwogMjAxMy0wMi0wMSAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGb2xsb3cgdXAgdG8gcjE0MTI2MDogZml4aW5nIHJlbmFtZWQgc3R5bGUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGE3N2U2
NmEuLmQ0ZmQxMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcApAQCAtMzA0LDE4ICszMDQsMjIgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCkKICAgICAgICAgZ19zb3VyY2VfcmVt
b3ZlKG1fYXVkaW9UaW1lckhhbmRsZXIpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6c2V0UGxheWJpblVSTChLVVJMIHVybCkKK3sKKyAgICBtX3VybCA9IHVybDsKKwor
ICAgIGlmICh1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQorICAgICAgICB1cmwuc2V0UHJv
dG9jb2woIndlYmtpdCsiICsgdXJsLnByb3RvY29sKCkpOworCisgICAgU3RyaW5nIHVybFN0cmlu
ZyA9IHVybC5zdHJpbmcoKTsKKyAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLmdldCgpLCAidXJp
IiwgdXJsU3RyaW5nLnV0ZjgoKS5kYXRhKCksIE5VTEwpOworfQorCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBpZiAoIWlu
aXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIEtVUkwga3VybChLVVJMKCksIHVybCk7Ci0gICAgU3RyaW5nIGNsZWFuVXJs
KHVybCk7Ci0KLSAgICAvLyBDbGVhbiBvdXQgZXZlcnl0aGluZyBhZnRlciBmaWxlOi8vIHVybCBw
YXRoLgotICAgIGlmIChrdXJsLmlzTG9jYWxGaWxlKCkpCi0gICAgICAgIGNsZWFuVXJsID0gY2xl
YW5Vcmwuc3Vic3RyaW5nKDAsIGt1cmwucGF0aEVuZCgpKTsKLQogICAgIGlmICghbV9wbGF5Qmlu
KSB7CiAgICAgICAgIGNyZWF0ZUdTVFBsYXlCaW4oKTsKICAgICAgICAgc2V0RG93bmxvYWRCdWZm
ZXJpbmcoKTsKQEAgLTMyMyw5ICszMjcsMTQgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCiAKICAgICBBU1NFUlQobV9wbGF5QmluKTsK
IAotICAgIG1fdXJsID0gS1VSTChLVVJMKCksIGNsZWFuVXJsKTsKLSAgICBnX29iamVjdF9zZXQo
bV9wbGF5QmluLmdldCgpLCAidXJpIiwgY2xlYW5VcmwudXRmOCgpLmRhdGEoKSwgTlVMTCk7Cisg
ICAgS1VSTCBrdXJsKEtVUkwoKSwgdXJsKTsKKyAgICBTdHJpbmcgY2xlYW5VcmwodXJsKTsKKwor
ICAgIC8vIENsZWFuIG91dCBldmVyeXRoaW5nIGFmdGVyIGZpbGU6Ly8gdXJsIHBhdGguCisgICAg
aWYgKGt1cmwuaXNMb2NhbEZpbGUoKSkKKyAgICAgICAgY2xlYW5VcmwgPSBjbGVhblVybC5zdWJz
dHJpbmcoMCwga3VybC5wYXRoRW5kKCkpOwogCisgICAgc2V0UGxheWJpblVSTChLVVJMKEtVUkwo
KSwgY2xlYW5VcmwpKTsKICAgICBMT0dfTUVESUFfTUVTU0FHRSgiTG9hZCAlcyIsIGNsZWFuVXJs
LnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgaWYgKG1fcHJlbG9hZCA9PSBNZWRpYVBsYXllcjo6Tm9u
ZSkgewpAQCAtMTQxNSwyMCArMTQyNCwxMyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAgICAgICAgIC8vIHRob3VnaC4gV2UgbmVlZCB0byB0
YWtlIHRoZSBiYXNlIG9mIHRoZSBjdXJyZW50IHVybCBhbmQKICAgICAgICAgLy8gYXBwZW5kIHRo
ZSB2YWx1ZSBvZiBuZXctbG9jYXRpb24gdG8gaXQuCiAKLSAgICAgICAgZ2NoYXIqIGN1cnJlbnRM
b2NhdGlvbiA9IDA7Ci0gICAgICAgIGdfb2JqZWN0X2dldChtX3BsYXlCaW4uZ2V0KCksICJ1cmki
LCAmY3VycmVudExvY2F0aW9uLCBOVUxMKTsKLQotICAgICAgICBLVVJMIGN1cnJlbnRVcmwoS1VS
TCgpLCBjdXJyZW50TG9jYXRpb24pOwotICAgICAgICBnX2ZyZWUoY3VycmVudExvY2F0aW9uKTsK
LQogICAgICAgICBLVVJMIG5ld1VybDsKLQogICAgICAgICBpZiAoZ3N0X3VyaV9pc192YWxpZChu
ZXdMb2NhdGlvbikpCiAgICAgICAgICAgICBuZXdVcmwgPSBLVVJMKEtVUkwoKSwgbmV3TG9jYXRp
b24pOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBuZXdVcmwgPSBLVVJMKEtVUkwoKSwgY3Vy
cmVudFVybC5iYXNlQXNTdHJpbmcoKSArIG5ld0xvY2F0aW9uKTsKKyAgICAgICAgICAgIG5ld1Vy
bCA9IEtVUkwoS1VSTCgpLCBtX3VybC5iYXNlQXNTdHJpbmcoKSArIG5ld0xvY2F0aW9uKTsKIAot
ICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZShjdXJyZW50VXJsKTsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiBzZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwpOwogICAgICAg
ICBpZiAoc2VjdXJpdHlPcmlnaW4tPmNhblJlcXVlc3QobmV3VXJsKSkgewogICAgICAgICAgICAg
TE9HX01FRElBX01FU1NBR0UoIk5ldyBtZWRpYSB1cmw6ICVzIiwgbmV3VXJsLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCkBAIC0xNDQ2LDcgKzE0NDgsNyBAQCBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAgICAgICAgICAgICBnc3RfZWxlbWVu
dF9nZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCAmc3RhdGUsIDAsIDApOwogICAgICAgICAgICAg
aWYgKHN0YXRlIDw9IEdTVF9TVEFURV9SRUFEWSkgewogICAgICAgICAgICAgICAgIC8vIFNldCB0
aGUgbmV3IHVyaSBhbmQgc3RhcnQgcGxheWluZy4KLSAgICAgICAgICAgICAgICBnX29iamVjdF9z
ZXQobV9wbGF5QmluLmdldCgpLCAidXJpIiwgbmV3VXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCks
IE5VTEwpOworICAgICAgICAgICAgICAgIHNldFBsYXliaW5VUkwobmV3VXJsKTsKICAgICAgICAg
ICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCBHU1RfU1RBVEVf
UExBWUlORyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggN2VhYTA1
Yi4uNjliZjUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaApAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIg
OiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIGJvb2wg
aGFzVmlkZW8oKSBjb25zdCB7IHJldHVybiBtX2hhc1ZpZGVvOyB9CiAgICAgICAgICAgICBib29s
IGhhc0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9oYXNBdWRpbzsgfQogCisgICAgICAgICAgICB2
b2lkIHNldFBsYXliaW5VUkwoS1VSTCk7CiAgICAgICAgICAgICB2b2lkIGxvYWQoY29uc3QgU3Ry
aW5nICZ1cmwpOwogICAgICAgICAgICAgdm9pZCBjb21taXRMb2FkKCk7CiAgICAgICAgICAgICB2
b2lkIGNhbmNlbExvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKaW5kZXggZjgwNGQxZi4uOTUwZjNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdl
YlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU0OCw3ICs1NDgsNyBAQCBzdGF0aWMgR3N0VVJJVHlw
ZSB3ZWJLaXRXZWJTcmNVcmlHZXRUeXBlKEdUeXBlKQogCiBjb25zdCBnY2hhciogY29uc3QqIHdl
YktpdFdlYlNyY0dldFByb3RvY29scyhHVHlwZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgY2hhciog
cHJvdG9jb2xzW10gPSB7Imh0dHAiLCAiaHR0cHMiLCAwIH07CisgICAgc3RhdGljIGNvbnN0IGNo
YXIqIHByb3RvY29sc1tdID0geyJ3ZWJraXQraHR0cCIsICJ3ZWJraXQraHR0cHMiLCAwIH07CiAg
ICAgcmV0dXJuIHByb3RvY29sczsKIH0KIApAQCAtNTc1LDYgKzU3NSw5IEBAIHN0YXRpYyBnYm9v
bGVhbiB3ZWJLaXRXZWJTcmNTZXRVcmkoR3N0VVJJSGFuZGxlciogaGFuZGxlciwgY29uc3QgZ2No
YXIqIHVyaSwgR0VyCiAKICAgICBLVVJMIHVybChLVVJMKCksIHVyaSk7CiAKKyAgICBBU1NFUlQo
dXJsLnByb3RvY29sKCkuc3Vic3RyaW5nKDAsIDcpID09ICJ3ZWJraXQrIik7CisgICAgdXJsLnNl
dFByb3RvY29sKHVybC5wcm90b2NvbCgpLnN1YnN0cmluZyg3KSk7CisKICAgICBpZiAoIXVybC5p
c1ZhbGlkKCkgfHwgIXVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKICAgICAgICAgZ19z
ZXRfZXJyb3IoZXJyb3IsIEdTVF9VUklfRVJST1IsIEdTVF9VUklfRVJST1JfQkFEX1VSSSwgIklu
dmFsaWQgVVJJICclcyciLCB1cmkpOwogICAgICAgICByZXR1cm4gRkFMU0U7CkBAIC01OTIsNyAr
NTk1LDcgQEAgc3RhdGljIEdzdFVSSVR5cGUgd2ViS2l0V2ViU3JjVXJpR2V0VHlwZSh2b2lkKQog
CiBzdGF0aWMgZ2NoYXIqKiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHModm9pZCkKIHsKLSAgICBz
dGF0aWMgZ2NoYXIqIHByb3RvY29sc1tdID0geyhnY2hhciopICJodHRwIiwgKGdjaGFyKikgImh0
dHBzIiwgMCB9OworICAgIHN0YXRpYyBnY2hhciogcHJvdG9jb2xzW10gPSB7KGdjaGFyKikgIndl
YmtpdCtodHRwIiwgKGdjaGFyKikgIndlYmtpdCtodHRwcyIsIDAgfTsKICAgICByZXR1cm4gcHJv
dG9jb2xzOwogfQogCkBAIC02MTksNiArNjIyLDkgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdl
YlNyY1NldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyLCBjb25zdCBnY2hhciogdXJpKQogCiAg
ICAgS1VSTCB1cmwoS1VSTCgpLCB1cmkpOwogCisgICAgQVNTRVJUKHVybC5wcm90b2NvbCgpLnN1
YnN0cmluZygwLCA3KSA9PSAid2Via2l0KyIpOworICAgIHVybC5zZXRQcm90b2NvbCh1cmwucHJv
dG9jb2woKS5zdWJzdHJpbmcoNykpOworCiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpIHx8ICF1cmwu
cHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CiAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3Jj
LCAiSW52YWxpZCBVUkkgJyVzJyIsIHVyaSk7CiAgICAgICAgIHJldHVybiBGQUxTRTsKLS0gCjEu
Ny4xMC40
</data>
<flag name="review"
          id="205312"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186065</attachid>
            <date>2013-02-01 09:37:09 -0800</date>
            <delta_ts>2013-02-01 09:49:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>7494</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBhMTllY2ZiMWIyMWYwODU2ZTlhZDQyMjE2NTU2MzYwNGI5OTMxMzljIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDEgRmViIDIwMTMgMTU6MDg6MjcgKzAxMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMjMgKysrKysrKysrKysKIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcCAgICAgIHwgICA0MCArKysrKysrKysrLS0tLS0tLS0tLQogLi4uL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCAgICAgICAgfCAgICAyICsKIC4uLi9n
c3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCAgICAgICAgIHwgICAxMCArKysr
LQogNCBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZTU4ZWZiOC4uZmMwZjQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBA
CisyMDEzLTAyLTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbR1N0cmVhbWVyXSB3ZWJraXR3ZWJzcmMgaXMgZXhwb3NlZCB0byBhcHBsaWNhdGlv
bi1zaWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDgwODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
d2l0Y2ggdGhlIHdlYmtpdHdlYnNyYyB0byBoYW5kbGUgd2Via2l0K2h0dHAocykgdXJpcyBzbyBp
dCBpcyBub3cKKyAgICAgICAgZXhwbGljaXQgdGhhdCB0aGlzIGVsZW1lbnQgaXMgbWVhbnQgdG8g
YmUgdXNlZCBwcmVmZXJyYWJseSBpbnNpZGUKKyAgICAgICAgV2ViS2l0LiBUaGlzIGNoYW5nZSBp
cyBpbnRlcm5hbCB0byB0aGUgcGxheWVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJl
ZCBieSBleGlzdGluZyBodHRwL3Rlc3RzL21lZGlhIHRlc3RzLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFBsYXliaW5V
UkwpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmxvYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJTcmNHZXRQ
cm90b2NvbHMpOgorICAgICAgICAod2ViS2l0V2ViU3JjU2V0VXJpKToKKwogMjAxMy0wMi0wMSAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiByZWxheCBnb3RvIGZpbGUgbWF0Y2hpbmcgYWdhaW4uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGE3N2U2NmEuLjNjMDE3Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBA
IC0zMDQsMTggKzMwNCwyMiBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6On5NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIoKQogICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV9hdWRpb1Rp
bWVySGFuZGxlcik7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQ
bGF5YmluVVJMKEtVUkwmIHVybCkKK3sKKyAgICBtX3VybCA9IHVybDsKKworICAgIGlmICh1cmwu
cHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQorICAgICAgICB1cmwuc2V0UHJvdG9jb2woIndlYmtp
dCsiICsgdXJsLnByb3RvY29sKCkpOworCisgICAgTE9HX01FRElBX01FU1NBR0UoIkxvYWQgJXMi
LCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJp
bi5nZXQoKSwgInVyaSIsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBOVUxMKTsKK30KKwog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwp
CiB7CiAgICAgaWYgKCFpbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50
cygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBLVVJMIGt1cmwoS1VSTCgpLCB1cmwpOwotICAg
IFN0cmluZyBjbGVhblVybCh1cmwpOwotCi0gICAgLy8gQ2xlYW4gb3V0IGV2ZXJ5dGhpbmcgYWZ0
ZXIgZmlsZTovLyB1cmwgcGF0aC4KLSAgICBpZiAoa3VybC5pc0xvY2FsRmlsZSgpKQotICAgICAg
ICBjbGVhblVybCA9IGNsZWFuVXJsLnN1YnN0cmluZygwLCBrdXJsLnBhdGhFbmQoKSk7Ci0KICAg
ICBpZiAoIW1fcGxheUJpbikgewogICAgICAgICBjcmVhdGVHU1RQbGF5QmluKCk7CiAgICAgICAg
IHNldERvd25sb2FkQnVmZmVyaW5nKCk7CkBAIC0zMjMsMTAgKzMyNywxMyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkKIAogICAgIEFT
U0VSVChtX3BsYXlCaW4pOwogCi0gICAgbV91cmwgPSBLVVJMKEtVUkwoKSwgY2xlYW5VcmwpOwot
ICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4uZ2V0KCksICJ1cmkiLCBjbGVhblVybC51dGY4KCku
ZGF0YSgpLCBOVUxMKTsKKyAgICBLVVJMIGt1cmwoS1VSTCgpLCB1cmwpOworCisgICAgLy8gQ2xl
YW4gb3V0IGV2ZXJ5dGhpbmcgYWZ0ZXIgZmlsZTovLyB1cmwgcGF0aC4KKyAgICBpZiAoa3VybC5p
c0xvY2FsRmlsZSgpKQorICAgICAgICBrdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOwog
Ci0gICAgTE9HX01FRElBX01FU1NBR0UoIkxvYWQgJXMiLCBjbGVhblVybC51dGY4KCkuZGF0YSgp
KTsKKyAgICBzZXRQbGF5YmluVVJMKGt1cmwpOwogCiAgICAgaWYgKG1fcHJlbG9hZCA9PSBNZWRp
YVBsYXllcjo6Tm9uZSkgewogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiRGVsYXlpbmcgbG9h
ZC4iKTsKQEAgLTE0MTUsMjAgKzE0MjIsMTMgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogCi0gICAgICAgIGdjaGFyKiBjdXJyZW50
TG9jYXRpb24gPSAwOwotICAgICAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLmdldCgpLCAidXJp
IiwgJmN1cnJlbnRMb2NhdGlvbiwgTlVMTCk7Ci0KLSAgICAgICAgS1VSTCBjdXJyZW50VXJsKEtV
UkwoKSwgY3VycmVudExvY2F0aW9uKTsKLSAgICAgICAgZ19mcmVlKGN1cnJlbnRMb2NhdGlvbik7
Ci0KICAgICAgICAgS1VSTCBuZXdVcmw7Ci0KICAgICAgICAgaWYgKGdzdF91cmlfaXNfdmFsaWQo
bmV3TG9jYXRpb24pKQogICAgICAgICAgICAgbmV3VXJsID0gS1VSTChLVVJMKCksIG5ld0xvY2F0
aW9uKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbmV3VXJsID0gS1VSTChLVVJMKCksIGN1
cnJlbnRVcmwuYmFzZUFzU3RyaW5nKCkgKyBuZXdMb2NhdGlvbik7CisgICAgICAgICAgICBuZXdV
cmwgPSBLVVJMKEtVUkwoKSwgbV91cmwuYmFzZUFzU3RyaW5nKCkgKyBuZXdMb2NhdGlvbik7CiAK
LSAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUoY3VycmVudFVybCk7CisgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fdXJsKTsKICAgICAg
ICAgaWYgKHNlY3VyaXR5T3JpZ2luLT5jYW5SZXF1ZXN0KG5ld1VybCkpIHsKICAgICAgICAgICAg
IExPR19NRURJQV9NRVNTQUdFKCJOZXcgbWVkaWEgdXJsOiAlcyIsIG5ld1VybC5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKIApAQCAtMTQ0Niw3ICsxNDQ2LDcgQEAgYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAgICAgZ3N0X2VsZW1l
bnRfZ2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgJnN0YXRlLCAwLCAwKTsKICAgICAgICAgICAg
IGlmIChzdGF0ZSA8PSBHU1RfU1RBVEVfUkVBRFkpIHsKICAgICAgICAgICAgICAgICAvLyBTZXQg
dGhlIG5ldyB1cmkgYW5kIHN0YXJ0IHBsYXlpbmcuCi0gICAgICAgICAgICAgICAgZ19vYmplY3Rf
c2V0KG1fcGxheUJpbi5nZXQoKSwgInVyaSIsIG5ld1VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCBOVUxMKTsKKyAgICAgICAgICAgICAgICBzZXRQbGF5YmluVVJMKG5ld1VybCk7CiAgICAgICAg
ICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgR1NUX1NUQVRF
X1BMQVlJTkcpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDdlYWEw
NWIuLjBjNmI5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmgKQEAgLTE0Nyw2ICsxNDcsOCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIHN0
YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwogICAgICAgICAg
ICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKTsKIAorICAgICAg
ICAgICAgdm9pZCBzZXRQbGF5YmluVVJMKEtVUkwmKTsKKwogICAgICAgICAgICAgc3RhdGljIGJv
b2wgaXNBdmFpbGFibGUoKTsKIAogICAgICAgICAgICAgdm9pZCB1cGRhdGVBdWRpb1NpbmsoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggZjgwNGQx
Zi4uMzQxMDgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5j
cHAKQEAgLTU0OCw3ICs1NDgsNyBAQCBzdGF0aWMgR3N0VVJJVHlwZSB3ZWJLaXRXZWJTcmNVcmlH
ZXRUeXBlKEdUeXBlKQogCiBjb25zdCBnY2hhciogY29uc3QqIHdlYktpdFdlYlNyY0dldFByb3Rv
Y29scyhHVHlwZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcHJvdG9jb2xzW10gPSB7Imh0
dHAiLCAiaHR0cHMiLCAwIH07CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHByb3RvY29sc1tdID0g
eyJ3ZWJraXQraHR0cCIsICJ3ZWJraXQraHR0cHMiLCAwIH07CiAgICAgcmV0dXJuIHByb3RvY29s
czsKIH0KIApAQCAtNTc1LDYgKzU3NSw5IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNT
ZXRVcmkoR3N0VVJJSGFuZGxlciogaGFuZGxlciwgY29uc3QgZ2NoYXIqIHVyaSwgR0VyCiAKICAg
ICBLVVJMIHVybChLVVJMKCksIHVyaSk7CiAKKyAgICBBU1NFUlQodXJsLnByb3RvY29sKCkuc3Vi
c3RyaW5nKDAsIDcpID09ICJ3ZWJraXQrIik7CisgICAgdXJsLnNldFByb3RvY29sKHVybC5wcm90
b2NvbCgpLnN1YnN0cmluZyg3KSk7CisKICAgICBpZiAoIXVybC5pc1ZhbGlkKCkgfHwgIXVybC5w
cm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKICAgICAgICAgZ19zZXRfZXJyb3IoZXJyb3IsIEdT
VF9VUklfRVJST1IsIEdTVF9VUklfRVJST1JfQkFEX1VSSSwgIkludmFsaWQgVVJJICclcyciLCB1
cmkpOwogICAgICAgICByZXR1cm4gRkFMU0U7CkBAIC01OTIsNyArNTk1LDcgQEAgc3RhdGljIEdz
dFVSSVR5cGUgd2ViS2l0V2ViU3JjVXJpR2V0VHlwZSh2b2lkKQogCiBzdGF0aWMgZ2NoYXIqKiB3
ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHModm9pZCkKIHsKLSAgICBzdGF0aWMgZ2NoYXIqIHByb3Rv
Y29sc1tdID0geyhnY2hhciopICJodHRwIiwgKGdjaGFyKikgImh0dHBzIiwgMCB9OworICAgIHN0
YXRpYyBnY2hhciogcHJvdG9jb2xzW10gPSB7IndlYmtpdCtodHRwIiwgIndlYmtpdCtodHRwcyIs
IDAgfTsKICAgICByZXR1cm4gcHJvdG9jb2xzOwogfQogCkBAIC02MTksNiArNjIyLDkgQEAgc3Rh
dGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyLCBj
b25zdCBnY2hhciogdXJpKQogCiAgICAgS1VSTCB1cmwoS1VSTCgpLCB1cmkpOwogCisgICAgQVNT
RVJUKHVybC5wcm90b2NvbCgpLnN1YnN0cmluZygwLCA3KSA9PSAid2Via2l0KyIpOworICAgIHVy
bC5zZXRQcm90b2NvbCh1cmwucHJvdG9jb2woKS5zdWJzdHJpbmcoNykpOworCiAgICAgaWYgKCF1
cmwuaXNWYWxpZCgpIHx8ICF1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CiAgICAgICAg
IEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiSW52YWxpZCBVUkkgJyVzJyIsIHVyaSk7CiAgICAgICAg
IHJldHVybiBGQUxTRTsKLS0gCjEuNy4xMC40
</data>
<flag name="commit-queue"
          id="205366"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186067</attachid>
            <date>2013-02-01 09:49:45 -0800</date>
            <delta_ts>2013-02-01 09:52:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>8224</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAwNGQ0MTU3MDY0MmJhZGUzZjdhYjg3NDc2MWM0MTE4ZjI3OTc3YmUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDEgRmViIDIwMTMgMTU6MDg6MjcgKzAxMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMjMgKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgICAgICB8ICAgNDkgKysrKysrKysrKysrLS0tLS0tLS0KIC4uLi9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggICAgICAgIHwgICAgNCArKwogLi4uL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwICAgICAgICAgfCAgICA5ICsrLS0K
IDQgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGU1OGVmYjguLmZjMGY0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAor
MjAxMy0wMi0wMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0dTdHJlYW1lcl0gd2Via2l0d2Vic3JjIGlzIGV4cG9zZWQgdG8gYXBwbGljYXRpb24t
c2lkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4
MDg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3dp
dGNoIHRoZSB3ZWJraXR3ZWJzcmMgdG8gaGFuZGxlIHdlYmtpdCtodHRwKHMpIHVyaXMgc28gaXQg
aXMgbm93CisgICAgICAgIGV4cGxpY2l0IHRoYXQgdGhpcyBlbGVtZW50IGlzIG1lYW50IHRvIGJl
IHVzZWQgcHJlZmVycmFibHkgaW5zaWRlCisgICAgICAgIFdlYktpdC4gVGhpcyBjaGFuZ2UgaXMg
aW50ZXJuYWwgdG8gdGhlIHBsYXllci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQg
YnkgZXhpc3RpbmcgaHR0cC90ZXN0cy9tZWRpYSB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQbGF5YmluVVJM
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0V2ViU3JjR2V0UHJv
dG9jb2xzKToKKyAgICAgICAgKHdlYktpdFdlYlNyY1NldFVyaSk6CisKIDIwMTMtMDItMDEgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogcmVsYXggZ290byBmaWxlIG1hdGNoaW5nIGFnYWluLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBhNzdlNjZhLi41ZmFlOGFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MzA0LDE4ICszMDQsMzEgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyKCkKICAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fYXVkaW9UaW1l
ckhhbmRsZXIpOwogfQogCitLVVJMIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Z2V0UGxh
eWJpblVSTChjb25zdCBnY2hhciogdXJpKQoreworICAgIEtVUkwgdXJsKEtVUkwoKSwgdXJpKTsK
KworICAgIEFTU0VSVCh1cmwucHJvdG9jb2woKS5zdWJzdHJpbmcoMCwgNykgPT0gIndlYmtpdCsi
KTsKKyAgICB1cmwuc2V0UHJvdG9jb2wodXJsLnByb3RvY29sKCkuc3Vic3RyaW5nKDcpKTsKKyAg
ICByZXR1cm4gdXJsOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0
UGxheWJpblVSTChLVVJMJiB1cmwpCit7CisgICAgbV91cmwgPSB1cmw7CisKKyAgICBpZiAodXJs
LnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkKKyAgICAgICAgdXJsLnNldFByb3RvY29sKCJ3ZWJr
aXQrIiArIHVybC5wcm90b2NvbCgpKTsKKworICAgIExPR19NRURJQV9NRVNTQUdFKCJMb2FkICVz
IiwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGdfb2JqZWN0X3NldChtX3BsYXlC
aW4uZ2V0KCksICJ1cmkiLCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgTlVMTCk7Cit9CisK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJs
KQogewogICAgIGlmICghaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVu
dHMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgS1VSTCBrdXJsKEtVUkwoKSwgdXJsKTsKLSAg
ICBTdHJpbmcgY2xlYW5VcmwodXJsKTsKLQotICAgIC8vIENsZWFuIG91dCBldmVyeXRoaW5nIGFm
dGVyIGZpbGU6Ly8gdXJsIHBhdGguCi0gICAgaWYgKGt1cmwuaXNMb2NhbEZpbGUoKSkKLSAgICAg
ICAgY2xlYW5VcmwgPSBjbGVhblVybC5zdWJzdHJpbmcoMCwga3VybC5wYXRoRW5kKCkpOwotCiAg
ICAgaWYgKCFtX3BsYXlCaW4pIHsKICAgICAgICAgY3JlYXRlR1NUUGxheUJpbigpOwogICAgICAg
ICBzZXREb3dubG9hZEJ1ZmZlcmluZygpOwpAQCAtMzIzLDEwICszMzYsMTMgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCiAKICAgICBB
U1NFUlQobV9wbGF5QmluKTsKIAotICAgIG1fdXJsID0gS1VSTChLVVJMKCksIGNsZWFuVXJsKTsK
LSAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLmdldCgpLCAidXJpIiwgY2xlYW5VcmwudXRmOCgp
LmRhdGEoKSwgTlVMTCk7CisgICAgS1VSTCBrdXJsKEtVUkwoKSwgdXJsKTsKKworICAgIC8vIENs
ZWFuIG91dCBldmVyeXRoaW5nIGFmdGVyIGZpbGU6Ly8gdXJsIHBhdGguCisgICAgaWYgKGt1cmwu
aXNMb2NhbEZpbGUoKSkKKyAgICAgICAga3VybC5yZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsK
IAotICAgIExPR19NRURJQV9NRVNTQUdFKCJMb2FkICVzIiwgY2xlYW5VcmwudXRmOCgpLmRhdGEo
KSk7CisgICAgc2V0UGxheWJpblVSTChrdXJsKTsKIAogICAgIGlmIChtX3ByZWxvYWQgPT0gTWVk
aWFQbGF5ZXI6Ok5vbmUpIHsKICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkRlbGF5aW5nIGxv
YWQuIik7CkBAIC0xNDE1LDIwICsxNDMxLDEzIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpsb2FkTmV4dExvY2F0aW9uKCkKICAgICAgICAgLy8gdGhvdWdoLiBXZSBuZWVkIHRv
IHRha2UgdGhlIGJhc2Ugb2YgdGhlIGN1cnJlbnQgdXJsIGFuZAogICAgICAgICAvLyBhcHBlbmQg
dGhlIHZhbHVlIG9mIG5ldy1sb2NhdGlvbiB0byBpdC4KIAotICAgICAgICBnY2hhciogY3VycmVu
dExvY2F0aW9uID0gMDsKLSAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbi5nZXQoKSwgInVy
aSIsICZjdXJyZW50TG9jYXRpb24sIE5VTEwpOwotCi0gICAgICAgIEtVUkwgY3VycmVudFVybChL
VVJMKCksIGN1cnJlbnRMb2NhdGlvbik7Ci0gICAgICAgIGdfZnJlZShjdXJyZW50TG9jYXRpb24p
OwotCiAgICAgICAgIEtVUkwgbmV3VXJsOwotCiAgICAgICAgIGlmIChnc3RfdXJpX2lzX3ZhbGlk
KG5ld0xvY2F0aW9uKSkKICAgICAgICAgICAgIG5ld1VybCA9IEtVUkwoS1VSTCgpLCBuZXdMb2Nh
dGlvbik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ld1VybCA9IEtVUkwoS1VSTCgpLCBj
dXJyZW50VXJsLmJhc2VBc1N0cmluZygpICsgbmV3TG9jYXRpb24pOworICAgICAgICAgICAgbmV3
VXJsID0gS1VSTChLVVJMKCksIG1fdXJsLmJhc2VBc1N0cmluZygpICsgbmV3TG9jYXRpb24pOwog
Ci0gICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKGN1cnJlbnRVcmwpOworICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IHNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCk7CiAgICAg
ICAgIGlmIChzZWN1cml0eU9yaWdpbi0+Y2FuUmVxdWVzdChuZXdVcmwpKSB7CiAgICAgICAgICAg
ICBMT0dfTUVESUFfTUVTU0FHRSgiTmV3IG1lZGlhIHVybDogJXMiLCBuZXdVcmwuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAKQEAgLTE0NDYsNyArMTQ1NSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExvY2F0aW9uKCkKICAgICAgICAgICAgIGdzdF9lbGVt
ZW50X2dldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksICZzdGF0ZSwgMCwgMCk7CiAgICAgICAgICAg
ICBpZiAoc3RhdGUgPD0gR1NUX1NUQVRFX1JFQURZKSB7CiAgICAgICAgICAgICAgICAgLy8gU2V0
IHRoZSBuZXcgdXJpIGFuZCBzdGFydCBwbGF5aW5nLgotICAgICAgICAgICAgICAgIGdfb2JqZWN0
X3NldChtX3BsYXlCaW4uZ2V0KCksICJ1cmkiLCBuZXdVcmwuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgTlVMTCk7CisgICAgICAgICAgICAgICAgc2V0UGxheWJpblVSTChuZXdVcmwpOwogICAgICAg
ICAgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksIEdTVF9TVEFU
RV9QTEFZSU5HKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA3ZWFh
MDViLi5kYzg2OTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oCkBAIC0xMzksNiArMTM5LDggQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAKICAgICAgICAgICAg
IE1lZGlhUGxheWVyKiBtZWRpYVBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyOyB9CiAK
KyAgICAgICAgICAgIHN0YXRpYyBLVVJMIGdldFBsYXliaW5VUkwoY29uc3QgZ2NoYXIqIHVyaSk7
CisKICAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcihNZWRpYVBsYXllciopOwogCkBAIC0xNDcsNiArMTQ5LDggQEAgY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CiAgICAgICAgICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mKTsKICAgICAgICAgICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBv
cnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBL
VVJMJik7CiAKKyAgICAgICAgICAgIHZvaWQgc2V0UGxheWJpblVSTChLVVJMJik7CisKICAgICAg
ICAgICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICAgICAgICAgICAgIHZvaWQgdXBk
YXRlQXVkaW9TaW5rKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwCmluZGV4IGY4MDRkMWYuLmJlMDdhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJT
b3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiR1JlZlB0ckdT
dHJlYW1lci5oIgogI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXllci5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIgog
I2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgpAQCAtNTQ4LDcgKzU0OSw3IEBA
IHN0YXRpYyBHc3RVUklUeXBlIHdlYktpdFdlYlNyY1VyaUdldFR5cGUoR1R5cGUpCiAKIGNvbnN0
IGdjaGFyKiBjb25zdCogd2ViS2l0V2ViU3JjR2V0UHJvdG9jb2xzKEdUeXBlKQogewotICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBwcm90b2NvbHNbXSA9IHsiaHR0cCIsICJodHRwcyIsIDAgfTsKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogcHJvdG9jb2xzW10gPSB7IndlYmtpdCtodHRwIiwgIndlYmtp
dCtodHRwcyIsIDAgfTsKICAgICByZXR1cm4gcHJvdG9jb2xzOwogfQogCkBAIC01NzMsNyArNTc0
LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NldFVyaShHc3RVUklIYW5kbGVyKiBo
YW5kbGVyLCBjb25zdCBnY2hhciogdXJpLCBHRXIKICAgICBpZiAoIXVyaSkKICAgICAgICAgcmV0
dXJuIFRSVUU7CiAKLSAgICBLVVJMIHVybChLVVJMKCksIHVyaSk7CisgICAgS1VSTCB1cmwgPSBX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmdldFBsYXliaW5VUkwodXJpKTsK
IAogICAgIGlmICghdXJsLmlzVmFsaWQoKSB8fCAhdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHko
KSkgewogICAgICAgICBnX3NldF9lcnJvcihlcnJvciwgR1NUX1VSSV9FUlJPUiwgR1NUX1VSSV9F
UlJPUl9CQURfVVJJLCAiSW52YWxpZCBVUkkgJyVzJyIsIHVyaSk7CkBAIC01OTIsNyArNTkzLDcg
QEAgc3RhdGljIEdzdFVSSVR5cGUgd2ViS2l0V2ViU3JjVXJpR2V0VHlwZSh2b2lkKQogCiBzdGF0
aWMgZ2NoYXIqKiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHModm9pZCkKIHsKLSAgICBzdGF0aWMg
Z2NoYXIqIHByb3RvY29sc1tdID0geyhnY2hhciopICJodHRwIiwgKGdjaGFyKikgImh0dHBzIiwg
MCB9OworICAgIHN0YXRpYyBnY2hhciogcHJvdG9jb2xzW10gPSB7IndlYmtpdCtodHRwIiwgIndl
YmtpdCtodHRwcyIsIDAgfTsKICAgICByZXR1cm4gcHJvdG9jb2xzOwogfQogCkBAIC02MTcsNyAr
NjE4LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NldFVyaShHc3RVUklIYW5kbGVy
KiBoYW5kbGVyLCBjb25zdCBnY2hhciogdXJpKQogICAgIGlmICghdXJpKQogICAgICAgICByZXR1
cm4gVFJVRTsKIAotICAgIEtVUkwgdXJsKEtVUkwoKSwgdXJpKTsKKyAgICBLVVJMIHVybCA9IFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Z2V0UGxheWJpblVSTCh1cmkpOwog
CiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpIHx8ICF1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgp
KSB7CiAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiSW52YWxpZCBVUkkgJyVzJyIsIHVy
aSk7Ci0tIAoxLjcuMTAuNA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186069</attachid>
            <date>2013-02-01 09:52:25 -0800</date>
            <delta_ts>2013-03-01 10:39:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>8230</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA3NThmYzQ3ZWY3YjJkY2NjNDcxMDVhNzkwMWVlYzJiN2JhMjYxZGQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDEgRmViIDIwMTMgMTU6MDg6MjcgKzAxMDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMjMgKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgICAgICB8ICAgNDkgKysrKysrKysrKysrLS0tLS0tLS0KIC4uLi9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggICAgICAgIHwgICAgNCArKwogLi4uL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwICAgICAgICAgfCAgICA5ICsrLS0K
IDQgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGU1OGVmYjguLmZjMGY0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAor
MjAxMy0wMi0wMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0dTdHJlYW1lcl0gd2Via2l0d2Vic3JjIGlzIGV4cG9zZWQgdG8gYXBwbGljYXRpb24t
c2lkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4
MDg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3dp
dGNoIHRoZSB3ZWJraXR3ZWJzcmMgdG8gaGFuZGxlIHdlYmtpdCtodHRwKHMpIHVyaXMgc28gaXQg
aXMgbm93CisgICAgICAgIGV4cGxpY2l0IHRoYXQgdGhpcyBlbGVtZW50IGlzIG1lYW50IHRvIGJl
IHVzZWQgcHJlZmVycmFibHkgaW5zaWRlCisgICAgICAgIFdlYktpdC4gVGhpcyBjaGFuZ2UgaXMg
aW50ZXJuYWwgdG8gdGhlIHBsYXllci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQg
YnkgZXhpc3RpbmcgaHR0cC90ZXN0cy9tZWRpYSB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQbGF5YmluVVJM
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0V2ViU3JjR2V0UHJv
dG9jb2xzKToKKyAgICAgICAgKHdlYktpdFdlYlNyY1NldFVyaSk6CisKIDIwMTMtMDItMDEgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogcmVsYXggZ290byBmaWxlIG1hdGNoaW5nIGFnYWluLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBhNzdlNjZhLi41ZmFlOGFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MzA0LDE4ICszMDQsMzEgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyKCkKICAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fYXVkaW9UaW1l
ckhhbmRsZXIpOwogfQogCitLVVJMIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Z2V0UGxh
eWJpblVSTChjb25zdCBnY2hhciogdXJpKQoreworICAgIEtVUkwgdXJsKEtVUkwoKSwgdXJpKTsK
KworICAgIEFTU0VSVCh1cmwucHJvdG9jb2woKS5zdWJzdHJpbmcoMCwgNykgPT0gIndlYmtpdCsi
KTsKKyAgICB1cmwuc2V0UHJvdG9jb2wodXJsLnByb3RvY29sKCkuc3Vic3RyaW5nKDcpKTsKKyAg
ICByZXR1cm4gdXJsOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0
UGxheWJpblVSTChLVVJMJiB1cmwpCit7CisgICAgbV91cmwgPSB1cmw7CisKKyAgICBpZiAodXJs
LnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkKKyAgICAgICAgdXJsLnNldFByb3RvY29sKCJ3ZWJr
aXQrIiArIHVybC5wcm90b2NvbCgpKTsKKworICAgIExPR19NRURJQV9NRVNTQUdFKCJMb2FkICVz
IiwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGdfb2JqZWN0X3NldChtX3BsYXlC
aW4uZ2V0KCksICJ1cmkiLCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgTlVMTCk7Cit9CisK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJs
KQogewogICAgIGlmICghaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVu
dHMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgS1VSTCBrdXJsKEtVUkwoKSwgdXJsKTsKLSAg
ICBTdHJpbmcgY2xlYW5VcmwodXJsKTsKLQotICAgIC8vIENsZWFuIG91dCBldmVyeXRoaW5nIGFm
dGVyIGZpbGU6Ly8gdXJsIHBhdGguCi0gICAgaWYgKGt1cmwuaXNMb2NhbEZpbGUoKSkKLSAgICAg
ICAgY2xlYW5VcmwgPSBjbGVhblVybC5zdWJzdHJpbmcoMCwga3VybC5wYXRoRW5kKCkpOwotCiAg
ICAgaWYgKCFtX3BsYXlCaW4pIHsKICAgICAgICAgY3JlYXRlR1NUUGxheUJpbigpOwogICAgICAg
ICBzZXREb3dubG9hZEJ1ZmZlcmluZygpOwpAQCAtMzIzLDEwICszMzYsMTMgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCiAKICAgICBB
U1NFUlQobV9wbGF5QmluKTsKIAotICAgIG1fdXJsID0gS1VSTChLVVJMKCksIGNsZWFuVXJsKTsK
LSAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLmdldCgpLCAidXJpIiwgY2xlYW5VcmwudXRmOCgp
LmRhdGEoKSwgTlVMTCk7CisgICAgS1VSTCBrdXJsKEtVUkwoKSwgdXJsKTsKKworICAgIC8vIENs
ZWFuIG91dCBldmVyeXRoaW5nIGFmdGVyIGZpbGU6Ly8gdXJsIHBhdGguCisgICAgaWYgKGt1cmwu
aXNMb2NhbEZpbGUoKSkKKyAgICAgICAga3VybC5yZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsK
IAotICAgIExPR19NRURJQV9NRVNTQUdFKCJMb2FkICVzIiwgY2xlYW5VcmwudXRmOCgpLmRhdGEo
KSk7CisgICAgc2V0UGxheWJpblVSTChrdXJsKTsKIAogICAgIGlmIChtX3ByZWxvYWQgPT0gTWVk
aWFQbGF5ZXI6Ok5vbmUpIHsKICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkRlbGF5aW5nIGxv
YWQuIik7CkBAIC0xNDE1LDIwICsxNDMxLDEzIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpsb2FkTmV4dExvY2F0aW9uKCkKICAgICAgICAgLy8gdGhvdWdoLiBXZSBuZWVkIHRv
IHRha2UgdGhlIGJhc2Ugb2YgdGhlIGN1cnJlbnQgdXJsIGFuZAogICAgICAgICAvLyBhcHBlbmQg
dGhlIHZhbHVlIG9mIG5ldy1sb2NhdGlvbiB0byBpdC4KIAotICAgICAgICBnY2hhciogY3VycmVu
dExvY2F0aW9uID0gMDsKLSAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbi5nZXQoKSwgInVy
aSIsICZjdXJyZW50TG9jYXRpb24sIE5VTEwpOwotCi0gICAgICAgIEtVUkwgY3VycmVudFVybChL
VVJMKCksIGN1cnJlbnRMb2NhdGlvbik7Ci0gICAgICAgIGdfZnJlZShjdXJyZW50TG9jYXRpb24p
OwotCiAgICAgICAgIEtVUkwgbmV3VXJsOwotCiAgICAgICAgIGlmIChnc3RfdXJpX2lzX3ZhbGlk
KG5ld0xvY2F0aW9uKSkKICAgICAgICAgICAgIG5ld1VybCA9IEtVUkwoS1VSTCgpLCBuZXdMb2Nh
dGlvbik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ld1VybCA9IEtVUkwoS1VSTCgpLCBj
dXJyZW50VXJsLmJhc2VBc1N0cmluZygpICsgbmV3TG9jYXRpb24pOworICAgICAgICAgICAgbmV3
VXJsID0gS1VSTChLVVJMKCksIG1fdXJsLmJhc2VBc1N0cmluZygpICsgbmV3TG9jYXRpb24pOwog
Ci0gICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKGN1cnJlbnRVcmwpOworICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IHNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCk7CiAgICAg
ICAgIGlmIChzZWN1cml0eU9yaWdpbi0+Y2FuUmVxdWVzdChuZXdVcmwpKSB7CiAgICAgICAgICAg
ICBMT0dfTUVESUFfTUVTU0FHRSgiTmV3IG1lZGlhIHVybDogJXMiLCBuZXdVcmwuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAKQEAgLTE0NDYsNyArMTQ1NSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExvY2F0aW9uKCkKICAgICAgICAgICAgIGdzdF9lbGVt
ZW50X2dldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksICZzdGF0ZSwgMCwgMCk7CiAgICAgICAgICAg
ICBpZiAoc3RhdGUgPD0gR1NUX1NUQVRFX1JFQURZKSB7CiAgICAgICAgICAgICAgICAgLy8gU2V0
IHRoZSBuZXcgdXJpIGFuZCBzdGFydCBwbGF5aW5nLgotICAgICAgICAgICAgICAgIGdfb2JqZWN0
X3NldChtX3BsYXlCaW4uZ2V0KCksICJ1cmkiLCBuZXdVcmwuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgTlVMTCk7CisgICAgICAgICAgICAgICAgc2V0UGxheWJpblVSTChuZXdVcmwpOwogICAgICAg
ICAgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksIEdTVF9TVEFU
RV9QTEFZSU5HKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA3ZWFh
MDViLi5kYzg2OTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oCkBAIC0xMzksNiArMTM5LDggQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAKICAgICAgICAgICAg
IE1lZGlhUGxheWVyKiBtZWRpYVBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyOyB9CiAK
KyAgICAgICAgICAgIHN0YXRpYyBLVVJMIGdldFBsYXliaW5VUkwoY29uc3QgZ2NoYXIqIHVyaSk7
CisKICAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcihNZWRpYVBsYXllciopOwogCkBAIC0xNDcsNiArMTQ5LDggQEAgY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CiAgICAgICAgICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mKTsKICAgICAgICAgICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBv
cnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgY29kZWNzLCBjb25zdCBL
VVJMJik7CiAKKyAgICAgICAgICAgIHZvaWQgc2V0UGxheWJpblVSTChLVVJMJik7CisKICAgICAg
ICAgICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKICAgICAgICAgICAgIHZvaWQgdXBk
YXRlQXVkaW9TaW5rKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwCmluZGV4IGY4MDRkMWYuLmRiNzQ0ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJT
b3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiR1JlZlB0ckdT
dHJlYW1lci5oIgogI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXllci5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIgog
I2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgpAQCAtNTQ4LDcgKzU0OSw3IEBA
IHN0YXRpYyBHc3RVUklUeXBlIHdlYktpdFdlYlNyY1VyaUdldFR5cGUoR1R5cGUpCiAKIGNvbnN0
IGdjaGFyKiBjb25zdCogd2ViS2l0V2ViU3JjR2V0UHJvdG9jb2xzKEdUeXBlKQogewotICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBwcm90b2NvbHNbXSA9IHsiaHR0cCIsICJodHRwcyIsIDAgfTsKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgcHJvdG9jb2xzW10gPSB7IndlYmtpdCtodHRwIiwg
IndlYmtpdCtodHRwcyIsIDAgfTsKICAgICByZXR1cm4gcHJvdG9jb2xzOwogfQogCkBAIC01NzMs
NyArNTc0LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NldFVyaShHc3RVUklIYW5k
bGVyKiBoYW5kbGVyLCBjb25zdCBnY2hhciogdXJpLCBHRXIKICAgICBpZiAoIXVyaSkKICAgICAg
ICAgcmV0dXJuIFRSVUU7CiAKLSAgICBLVVJMIHVybChLVVJMKCksIHVyaSk7CisgICAgS1VSTCB1
cmwgPSBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmdldFBsYXliaW5VUkwo
dXJpKTsKIAogICAgIGlmICghdXJsLmlzVmFsaWQoKSB8fCAhdXJsLnByb3RvY29sSXNJbkhUVFBG
YW1pbHkoKSkgewogICAgICAgICBnX3NldF9lcnJvcihlcnJvciwgR1NUX1VSSV9FUlJPUiwgR1NU
X1VSSV9FUlJPUl9CQURfVVJJLCAiSW52YWxpZCBVUkkgJyVzJyIsIHVyaSk7CkBAIC01OTIsNyAr
NTkzLDcgQEAgc3RhdGljIEdzdFVSSVR5cGUgd2ViS2l0V2ViU3JjVXJpR2V0VHlwZSh2b2lkKQog
CiBzdGF0aWMgZ2NoYXIqKiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHModm9pZCkKIHsKLSAgICBz
dGF0aWMgZ2NoYXIqIHByb3RvY29sc1tdID0geyhnY2hhciopICJodHRwIiwgKGdjaGFyKikgImh0
dHBzIiwgMCB9OworICAgIHN0YXRpYyBnY2hhciogcHJvdG9jb2xzW10gPSB7IndlYmtpdCtodHRw
IiwgIndlYmtpdCtodHRwcyIsIDAgfTsKICAgICByZXR1cm4gcHJvdG9jb2xzOwogfQogCkBAIC02
MTcsNyArNjE4LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NldFVyaShHc3RVUklI
YW5kbGVyKiBoYW5kbGVyLCBjb25zdCBnY2hhciogdXJpKQogICAgIGlmICghdXJpKQogICAgICAg
ICByZXR1cm4gVFJVRTsKIAotICAgIEtVUkwgdXJsKEtVUkwoKSwgdXJpKTsKKyAgICBLVVJMIHVy
bCA9IFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Z2V0UGxheWJpblVSTCh1
cmkpOwogCiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpIHx8ICF1cmwucHJvdG9jb2xJc0luSFRUUEZh
bWlseSgpKSB7CiAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiSW52YWxpZCBVUkkgJyVz
JyIsIHVyaSk7Ci0tIAoxLjcuMTAuNA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186230</attachid>
            <date>2013-02-02 07:31:29 -0800</date>
            <delta_ts>2013-02-02 07:45:41 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>GStreamer-webkitwebsrc-is-exposed-to-application-s.patch</filename>
            <type>text/plain</type>
            <size>9014</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA0YzMwZGFhOWUwNDhmYTdiZTMwMzc1OWE5OTQ1YWMxNTY2YmFiMDJkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBTYXQsIDIgRmViIDIwMTMgMTY6Mjc6MzEgKzAxMDAKU3ViamVjdDogW1BBVENIXSBb
R1N0cmVhbWVyXSB3ZWJraXR3ZWJzcmMgaXMgZXhwb3NlZCB0byBhcHBsaWNhdGlvbi1zaWRlCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MDg4CgpSZXZpZXdlZCBi
eSBNYXJ0aW4gUm9iaW5zb24uCgpTd2l0Y2ggdGhlIHdlYmtpdHdlYnNyYyB0byBoYW5kbGUgd2Vi
a2l0K2h0dHAocykgdXJpcyBzbyBpdCBpcyBub3cKZXhwbGljaXQgdGhhdCB0aGlzIGVsZW1lbnQg
aXMgbWVhbnQgdG8gYmUgdXNlZCBwcmVmZXJyYWJseSBpbnNpZGUKV2ViS2l0LiBUaGlzIGNoYW5n
ZSBpcyBpbnRlcm5hbCB0byB0aGUgcGxheWVyLgoKTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4
aXN0aW5nIGh0dHAvdGVzdHMvbWVkaWEgdGVzdHMuCgoqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgooV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQbGF5YmluVVJMKToKKFdlYkNvcmUpOgooV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKToKKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CihNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIpOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3Vy
Y2VHU3RyZWFtZXIuY3BwOgood2ViS2l0V2ViU3JjR2V0UHJvdG9jb2xzKToKKHdlYktpdFdlYlNy
Y1NldFVyaSk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDIzICsrKysrKysrKwogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwICAgICAgfCAgIDQ5ICsrKysrKysrKysrKy0tLS0tLS0tCiAuLi4vZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oICAgICAgICB8ICAgIDQgKysKIC4u
Li9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCAgICAgICAgIHwgICAgOSAr
Ky0tCiA0IGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlZmFhZjljLi4zZTFhMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTMtMDItMDEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHU3RyZWFtZXJdIHdlYmtpdHdlYnNyYyBpcyBleHBvc2VkIHRvIGFwcGxpY2F0
aW9uLXNpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODA4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KKworICAgICAg
ICBTd2l0Y2ggdGhlIHdlYmtpdHdlYnNyYyB0byBoYW5kbGUgd2Via2l0K2h0dHAocykgdXJpcyBz
byBpdCBpcyBub3cKKyAgICAgICAgZXhwbGljaXQgdGhhdCB0aGlzIGVsZW1lbnQgaXMgbWVhbnQg
dG8gYmUgdXNlZCBwcmVmZXJyYWJseSBpbnNpZGUKKyAgICAgICAgV2ViS2l0LiBUaGlzIGNoYW5n
ZSBpcyBpbnRlcm5hbCB0byB0aGUgcGxheWVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292
ZXJlZCBieSBleGlzdGluZyBodHRwL3Rlc3RzL21lZGlhIHRlc3RzLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFBsYXli
aW5VUkwpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJTcmNH
ZXRQcm90b2NvbHMpOgorICAgICAgICAod2ViS2l0V2ViU3JjU2V0VXJpKToKKwogMjAxMy0wMi0w
MiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBkaWdpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCB0cml2aWFsIHByb3NwZWN0aXZlIGJ1aWxkIGZpeCBmb3IgQTE3biBkaXNhYmxl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRl
eCBhNzdlNjZhLi5mNjFhYWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcApAQCAtMzA0LDE4ICszMDQsMzEgQEAgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCkKICAgICAgICAgZ19zb3Vy
Y2VfcmVtb3ZlKG1fYXVkaW9UaW1lckhhbmRsZXIpOwogfQogCitLVVJMIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6Y29udmVydFBsYXliaW5VUkwoY29uc3QgZ2NoYXIqIHVyaSkKK3sKKyAg
ICBLVVJMIHVybChLVVJMKCksIHVyaSk7CisKKyAgICBBU1NFUlQodXJsLnByb3RvY29sKCkuc3Vi
c3RyaW5nKDAsIDcpID09ICJ3ZWJraXQrIik7CisgICAgdXJsLnNldFByb3RvY29sKHVybC5wcm90
b2NvbCgpLnN1YnN0cmluZyg3KSk7CisgICAgcmV0dXJuIHVybDsKK30KKwordm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnNldFBsYXliaW5VUkwoS1VSTCYgdXJsKQoreworICAgIG1f
dXJsID0gdXJsOworCisgICAgaWYgKHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpCisgICAg
ICAgIHVybC5zZXRQcm90b2NvbCgid2Via2l0KyIgKyB1cmwucHJvdG9jb2woKSk7CisKKyAgICBM
T0dfTUVESUFfTUVTU0FHRSgiTG9hZCAlcyIsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
KyAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLmdldCgpLCAidXJpIiwgdXJsLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCksIE5VTEwpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBpZiAoIWluaXRpYWxpemVHU3RyZWFt
ZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEtV
Ukwga3VybChLVVJMKCksIHVybCk7Ci0gICAgU3RyaW5nIGNsZWFuVXJsKHVybCk7Ci0KLSAgICAv
LyBDbGVhbiBvdXQgZXZlcnl0aGluZyBhZnRlciBmaWxlOi8vIHVybCBwYXRoLgotICAgIGlmIChr
dXJsLmlzTG9jYWxGaWxlKCkpCi0gICAgICAgIGNsZWFuVXJsID0gY2xlYW5Vcmwuc3Vic3RyaW5n
KDAsIGt1cmwucGF0aEVuZCgpKTsKLQogICAgIGlmICghbV9wbGF5QmluKSB7CiAgICAgICAgIGNy
ZWF0ZUdTVFBsYXlCaW4oKTsKICAgICAgICAgc2V0RG93bmxvYWRCdWZmZXJpbmcoKTsKQEAgLTMy
MywxMCArMzM2LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNv
bnN0IFN0cmluZyYgdXJsKQogCiAgICAgQVNTRVJUKG1fcGxheUJpbik7CiAKLSAgICBtX3VybCA9
IEtVUkwoS1VSTCgpLCBjbGVhblVybCk7Ci0gICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbi5nZXQo
KSwgInVyaSIsIGNsZWFuVXJsLnV0ZjgoKS5kYXRhKCksIE5VTEwpOworICAgIEtVUkwga3VybChL
VVJMKCksIHVybCk7CisKKyAgICAvLyBDbGVhbiBvdXQgZXZlcnl0aGluZyBhZnRlciBmaWxlOi8v
IHVybCBwYXRoLgorICAgIGlmIChrdXJsLmlzTG9jYWxGaWxlKCkpCisgICAgICAgIGt1cmwucmVt
b3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7CiAKLSAgICBMT0dfTUVESUFfTUVTU0FHRSgiTG9hZCAl
cyIsIGNsZWFuVXJsLnV0ZjgoKS5kYXRhKCkpOworICAgIHNldFBsYXliaW5VUkwoa3VybCk7CiAK
ICAgICBpZiAobV9wcmVsb2FkID09IE1lZGlhUGxheWVyOjpOb25lKSB7CiAgICAgICAgIExPR19N
RURJQV9NRVNTQUdFKCJEZWxheWluZyBsb2FkLiIpOwpAQCAtMTQxNSwyMCArMTQzMSwxMyBAQCBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAgICAg
ICAgIC8vIHRob3VnaC4gV2UgbmVlZCB0byB0YWtlIHRoZSBiYXNlIG9mIHRoZSBjdXJyZW50IHVy
bCBhbmQKICAgICAgICAgLy8gYXBwZW5kIHRoZSB2YWx1ZSBvZiBuZXctbG9jYXRpb24gdG8gaXQu
CiAKLSAgICAgICAgZ2NoYXIqIGN1cnJlbnRMb2NhdGlvbiA9IDA7Ci0gICAgICAgIGdfb2JqZWN0
X2dldChtX3BsYXlCaW4uZ2V0KCksICJ1cmkiLCAmY3VycmVudExvY2F0aW9uLCBOVUxMKTsKLQot
ICAgICAgICBLVVJMIGN1cnJlbnRVcmwoS1VSTCgpLCBjdXJyZW50TG9jYXRpb24pOwotICAgICAg
ICBnX2ZyZWUoY3VycmVudExvY2F0aW9uKTsKLQogICAgICAgICBLVVJMIG5ld1VybDsKLQogICAg
ICAgICBpZiAoZ3N0X3VyaV9pc192YWxpZChuZXdMb2NhdGlvbikpCiAgICAgICAgICAgICBuZXdV
cmwgPSBLVVJMKEtVUkwoKSwgbmV3TG9jYXRpb24pOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBuZXdVcmwgPSBLVVJMKEtVUkwoKSwgY3VycmVudFVybC5iYXNlQXNTdHJpbmcoKSArIG5ld0xv
Y2F0aW9uKTsKKyAgICAgICAgICAgIG5ld1VybCA9IEtVUkwoS1VSTCgpLCBtX3VybC5iYXNlQXNT
dHJpbmcoKSArIG5ld0xvY2F0aW9uKTsKIAotICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShjdXJyZW50VXJsKTsKKyAg
ICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGUobV91cmwpOwogICAgICAgICBpZiAoc2VjdXJpdHlPcmlnaW4tPmNhblJlcXVl
c3QobmV3VXJsKSkgewogICAgICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIk5ldyBtZWRpYSB1
cmw6ICVzIiwgbmV3VXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC0xNDQ2LDcgKzE0
NTUsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2NhdGlv
bigpCiAgICAgICAgICAgICBnc3RfZWxlbWVudF9nZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCAm
c3RhdGUsIDAsIDApOwogICAgICAgICAgICAgaWYgKHN0YXRlIDw9IEdTVF9TVEFURV9SRUFEWSkg
ewogICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgbmV3IHVyaSBhbmQgc3RhcnQgcGxheWluZy4K
LSAgICAgICAgICAgICAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLmdldCgpLCAidXJpIiwgbmV3
VXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIE5VTEwpOworICAgICAgICAgICAgICAgIHNldFBs
YXliaW5VUkwobmV3VXJsKTsKICAgICAgICAgICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUo
bV9wbGF5QmluLmdldCgpLCBHU1RfU1RBVEVfUExBWUlORyk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKaW5kZXggN2VhYTA1Yi4uZmQzN2Q4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTM5LDYgKzEzOSw4IEBAIGNsYXNz
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2UgewogCiAgICAgICAgICAgICBNZWRpYVBsYXllciogbWVkaWFQbGF5ZXIoKSBjb25z
dCB7IHJldHVybiBtX3BsYXllcjsgfQogCisgICAgICAgICAgICBzdGF0aWMgS1VSTCBjb252ZXJ0
UGxheWJpblVSTChjb25zdCBnY2hhciogdXJpKTsKKwogICAgICAgICBwcml2YXRlOgogICAgICAg
ICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKik7CiAKQEAgLTE0
Nyw2ICsxNDksOCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMg
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIHN0YXRpYyB2b2lkIGdl
dFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwogICAgICAgICAgICAgc3RhdGljIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwg
Y29uc3QgU3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKTsKIAorICAgICAgICAgICAgdm9pZCBz
ZXRQbGF5YmluVVJMKEtVUkwmKTsKKwogICAgICAgICAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFi
bGUoKTsKIAogICAgICAgICAgICAgdm9pZCB1cGRhdGVBdWRpb1NpbmsoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3Vy
Y2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggZjgwNGQxZi4uOTcwYjJmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dl
YktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiR1N0cmVh
bWVyVmVyc2lvbmluZy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxl
Q2xpZW50LmgiCkBAIC01NDgsNyArNTQ5LDcgQEAgc3RhdGljIEdzdFVSSVR5cGUgd2ViS2l0V2Vi
U3JjVXJpR2V0VHlwZShHVHlwZSkKIAogY29uc3QgZ2NoYXIqIGNvbnN0KiB3ZWJLaXRXZWJTcmNH
ZXRQcm90b2NvbHMoR1R5cGUpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHByb3RvY29sc1td
ID0geyJodHRwIiwgImh0dHBzIiwgMCB9OworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBw
cm90b2NvbHNbXSA9IHsid2Via2l0K2h0dHAiLCAid2Via2l0K2h0dHBzIiwgMCB9OwogICAgIHJl
dHVybiBwcm90b2NvbHM7CiB9CiAKQEAgLTU3Myw3ICs1NzQsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4g
d2ViS2l0V2ViU3JjU2V0VXJpKEdzdFVSSUhhbmRsZXIqIGhhbmRsZXIsIGNvbnN0IGdjaGFyKiB1
cmksIEdFcgogICAgIGlmICghdXJpKQogICAgICAgICByZXR1cm4gVFJVRTsKIAotICAgIEtVUkwg
dXJsKEtVUkwoKSwgdXJpKTsKKyAgICBLVVJMIHVybCA9IFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6Y29udmVydFBsYXliaW5VUkwodXJpKTsKIAogICAgIGlmICghdXJsLmlz
VmFsaWQoKSB8fCAhdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewogICAgICAgICBnX3Nl
dF9lcnJvcihlcnJvciwgR1NUX1VSSV9FUlJPUiwgR1NUX1VSSV9FUlJPUl9CQURfVVJJLCAiSW52
YWxpZCBVUkkgJyVzJyIsIHVyaSk7CkBAIC01OTIsNyArNTkzLDcgQEAgc3RhdGljIEdzdFVSSVR5
cGUgd2ViS2l0V2ViU3JjVXJpR2V0VHlwZSh2b2lkKQogCiBzdGF0aWMgZ2NoYXIqKiB3ZWJLaXRX
ZWJTcmNHZXRQcm90b2NvbHModm9pZCkKIHsKLSAgICBzdGF0aWMgZ2NoYXIqIHByb3RvY29sc1td
ID0geyhnY2hhciopICJodHRwIiwgKGdjaGFyKikgImh0dHBzIiwgMCB9OworICAgIHN0YXRpYyBn
Y2hhciogY29uc3QgcHJvdG9jb2xzW10gPSB7IndlYmtpdCtodHRwIiwgIndlYmtpdCtodHRwcyIs
IDAgfTsKICAgICByZXR1cm4gcHJvdG9jb2xzOwogfQogCkBAIC02MTcsNyArNjE4LDcgQEAgc3Rh
dGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyLCBj
b25zdCBnY2hhciogdXJpKQogICAgIGlmICghdXJpKQogICAgICAgICByZXR1cm4gVFJVRTsKIAot
ICAgIEtVUkwgdXJsKEtVUkwoKSwgdXJpKTsKKyAgICBLVVJMIHVybCA9IFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29udmVydFBsYXliaW5VUkwodXJpKTsKIAogICAgIGlm
ICghdXJsLmlzVmFsaWQoKSB8fCAhdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewogICAg
ICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkludmFsaWQgVVJJICclcyciLCB1cmkpOwotLSAK
MS43LjEwLjQ=
</data>
<flag name="commit-queue"
          id="205591"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186231</attachid>
            <date>2013-02-02 07:45:41 -0800</date>
            <delta_ts>2013-02-08 03:19:12 -0800</delta_ts>
            <desc>Patch for landing #2</desc>
            <filename>GStreamer-webkitwebsrc-is-exposed-to-application-s.patch</filename>
            <type>text/plain</type>
            <size>9073</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA0ZDg2M2UxZWU2ZDRiMDhmOTMyODhkY2RkOGY2YTk1NTM4NTRhZTI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBTYXQsIDIgRmViIDIwMTMgMTY6Mjc6MzEgKzAxMDAKU3ViamVjdDogW1BBVENIXSBb
R1N0cmVhbWVyXSB3ZWJraXR3ZWJzcmMgaXMgZXhwb3NlZCB0byBhcHBsaWNhdGlvbi1zaWRlCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MDg4CgpSZXZpZXdlZCBi
eSBNYXJ0aW4gUm9iaW5zb24uCgpTd2l0Y2ggdGhlIHdlYmtpdHdlYnNyYyB0byBoYW5kbGUgd2Vi
a2l0K2h0dHAocykgdXJpcyBzbyBpdCBpcyBub3cKZXhwbGljaXQgdGhhdCB0aGlzIGVsZW1lbnQg
aXMgbWVhbnQgdG8gYmUgdXNlZCBwcmVmZXJyYWJseSBpbnNpZGUKV2ViS2l0LiBUaGlzIGNoYW5n
ZSBpcyBpbnRlcm5hbCB0byB0aGUgcGxheWVyLgoKTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4
aXN0aW5nIGh0dHAvdGVzdHMvbWVkaWEgdGVzdHMuCgoqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgooV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQbGF5YmluVVJMKToKKFdlYkNvcmUpOgooV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKToKKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CihNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIpOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3Vy
Y2VHU3RyZWFtZXIuY3BwOgood2ViS2l0V2ViU3JjR2V0UHJvdG9jb2xzKToKKHdlYktpdFdlYlNy
Y1NldFVyaSk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDIzICsrKysrKysrKwogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwICAgICAgfCAgIDUwICsrKysrKysrKysrKy0tLS0tLS0tCiAuLi4vZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oICAgICAgICB8ICAgIDQgKysKIC4u
Li9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCAgICAgICAgIHwgICAgOSAr
Ky0tCiA0IGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlZmFhZjljLi4zZTFhMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTMtMDItMDEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHU3RyZWFtZXJdIHdlYmtpdHdlYnNyYyBpcyBleHBvc2VkIHRvIGFwcGxpY2F0
aW9uLXNpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODA4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KKworICAgICAg
ICBTd2l0Y2ggdGhlIHdlYmtpdHdlYnNyYyB0byBoYW5kbGUgd2Via2l0K2h0dHAocykgdXJpcyBz
byBpdCBpcyBub3cKKyAgICAgICAgZXhwbGljaXQgdGhhdCB0aGlzIGVsZW1lbnQgaXMgbWVhbnQg
dG8gYmUgdXNlZCBwcmVmZXJyYWJseSBpbnNpZGUKKyAgICAgICAgV2ViS2l0LiBUaGlzIGNoYW5n
ZSBpcyBpbnRlcm5hbCB0byB0aGUgcGxheWVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292
ZXJlZCBieSBleGlzdGluZyBodHRwL3Rlc3RzL21lZGlhIHRlc3RzLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFBsYXli
aW5VUkwpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJTcmNH
ZXRQcm90b2NvbHMpOgorICAgICAgICAod2ViS2l0V2ViU3JjU2V0VXJpKToKKwogMjAxMy0wMi0w
MiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBkaWdpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCB0cml2aWFsIHByb3NwZWN0aXZlIGJ1aWxkIGZpeCBmb3IgQTE3biBkaXNhYmxl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRl
eCBhNzdlNjZhLi4zOTEzNjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcApAQCAtMzA0LDE3ICszMDQsMzQgQEAgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCkKICAgICAgICAgZ19zb3Vy
Y2VfcmVtb3ZlKG1fYXVkaW9UaW1lckhhbmRsZXIpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkKK0tVUkwgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpjb252ZXJ0UGxheWJpblVSTChjb25zdCBnY2hhciogdXJpKQogewot
ICAgIGlmICghaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKSkK
LSAgICAgICAgcmV0dXJuOworICAgIEtVUkwgdXJsKEtVUkwoKSwgdXJpKTsKIAotICAgIEtVUkwg
a3VybChLVVJMKCksIHVybCk7Ci0gICAgU3RyaW5nIGNsZWFuVXJsKHVybCk7CisgICAgQVNTRVJU
KHVybC5wcm90b2NvbCgpLnN1YnN0cmluZygwLCA3KSA9PSAid2Via2l0KyIpOworICAgIHVybC5z
ZXRQcm90b2NvbCh1cmwucHJvdG9jb2woKS5zdWJzdHJpbmcoNykpOworICAgIHJldHVybiB1cmw7
Cit9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQbGF5YmluVVJMKEtV
UkwmIHVybCkKK3sKICAgICAvLyBDbGVhbiBvdXQgZXZlcnl0aGluZyBhZnRlciBmaWxlOi8vIHVy
bCBwYXRoLgotICAgIGlmIChrdXJsLmlzTG9jYWxGaWxlKCkpCi0gICAgICAgIGNsZWFuVXJsID0g
Y2xlYW5Vcmwuc3Vic3RyaW5nKDAsIGt1cmwucGF0aEVuZCgpKTsKKyAgICBpZiAodXJsLmlzTG9j
YWxGaWxlKCkpCisgICAgICAgIHVybC5yZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsKKworICAg
IG1fdXJsID0gdXJsOworCisgICAgaWYgKHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpCisg
ICAgICAgIHVybC5zZXRQcm90b2NvbCgid2Via2l0KyIgKyB1cmwucHJvdG9jb2woKSk7CisKKyAg
ICBMT0dfTUVESUFfTUVTU0FHRSgiTG9hZCAlcyIsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKKyAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLmdldCgpLCAidXJpIiwgdXJsLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksIE5VTEwpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBpZiAoIWluaXRpYWxpemVHU3Ry
ZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkpCisgICAgICAgIHJldHVybjsKIAogICAg
IGlmICghbV9wbGF5QmluKSB7CiAgICAgICAgIGNyZWF0ZUdTVFBsYXlCaW4oKTsKQEAgLTMyMywx
MCArMzQwLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3Qg
U3RyaW5nJiB1cmwpCiAKICAgICBBU1NFUlQobV9wbGF5QmluKTsKIAotICAgIG1fdXJsID0gS1VS
TChLVVJMKCksIGNsZWFuVXJsKTsKLSAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLmdldCgpLCAi
dXJpIiwgY2xlYW5VcmwudXRmOCgpLmRhdGEoKSwgTlVMTCk7Ci0KLSAgICBMT0dfTUVESUFfTUVT
U0FHRSgiTG9hZCAlcyIsIGNsZWFuVXJsLnV0ZjgoKS5kYXRhKCkpOworICAgIEtVUkwga3VybChL
VVJMKCksIHVybCk7CisgICAgc2V0UGxheWJpblVSTChrdXJsKTsKIAogICAgIGlmIChtX3ByZWxv
YWQgPT0gTWVkaWFQbGF5ZXI6Ok5vbmUpIHsKICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkRl
bGF5aW5nIGxvYWQuIik7CkBAIC0xNDE1LDIwICsxNDMwLDEzIEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExvY2F0aW9uKCkKICAgICAgICAgLy8gdGhvdWdoLiBX
ZSBuZWVkIHRvIHRha2UgdGhlIGJhc2Ugb2YgdGhlIGN1cnJlbnQgdXJsIGFuZAogICAgICAgICAv
LyBhcHBlbmQgdGhlIHZhbHVlIG9mIG5ldy1sb2NhdGlvbiB0byBpdC4KIAotICAgICAgICBnY2hh
ciogY3VycmVudExvY2F0aW9uID0gMDsKLSAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbi5n
ZXQoKSwgInVyaSIsICZjdXJyZW50TG9jYXRpb24sIE5VTEwpOwotCi0gICAgICAgIEtVUkwgY3Vy
cmVudFVybChLVVJMKCksIGN1cnJlbnRMb2NhdGlvbik7Ci0gICAgICAgIGdfZnJlZShjdXJyZW50
TG9jYXRpb24pOwotCiAgICAgICAgIEtVUkwgbmV3VXJsOwotCiAgICAgICAgIGlmIChnc3RfdXJp
X2lzX3ZhbGlkKG5ld0xvY2F0aW9uKSkKICAgICAgICAgICAgIG5ld1VybCA9IEtVUkwoS1VSTCgp
LCBuZXdMb2NhdGlvbik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ld1VybCA9IEtVUkwo
S1VSTCgpLCBjdXJyZW50VXJsLmJhc2VBc1N0cmluZygpICsgbmV3TG9jYXRpb24pOworICAgICAg
ICAgICAgbmV3VXJsID0gS1VSTChLVVJMKCksIG1fdXJsLmJhc2VBc1N0cmluZygpICsgbmV3TG9j
YXRpb24pOwogCi0gICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4g
PSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGN1cnJlbnRVcmwpOworICAgICAgICBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3Vy
bCk7CiAgICAgICAgIGlmIChzZWN1cml0eU9yaWdpbi0+Y2FuUmVxdWVzdChuZXdVcmwpKSB7CiAg
ICAgICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiTmV3IG1lZGlhIHVybDogJXMiLCBuZXdVcmwu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTE0NDYsNyArMTQ1NCw3IEBAIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExvY2F0aW9uKCkKICAgICAgICAgICAg
IGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksICZzdGF0ZSwgMCwgMCk7CiAg
ICAgICAgICAgICBpZiAoc3RhdGUgPD0gR1NUX1NUQVRFX1JFQURZKSB7CiAgICAgICAgICAgICAg
ICAgLy8gU2V0IHRoZSBuZXcgdXJpIGFuZCBzdGFydCBwbGF5aW5nLgotICAgICAgICAgICAgICAg
IGdfb2JqZWN0X3NldChtX3BsYXlCaW4uZ2V0KCksICJ1cmkiLCBuZXdVcmwuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSwgTlVMTCk7CisgICAgICAgICAgICAgICAgc2V0UGxheWJpblVSTChuZXdVcmwp
OwogICAgICAgICAgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCks
IEdTVF9TVEFURV9QTEFZSU5HKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApp
bmRleCA3ZWFhMDViLi5mZDM3ZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5oCkBAIC0xMzksNiArMTM5LDggQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAKICAg
ICAgICAgICAgIE1lZGlhUGxheWVyKiBtZWRpYVBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxh
eWVyOyB9CiAKKyAgICAgICAgICAgIHN0YXRpYyBLVVJMIGNvbnZlcnRQbGF5YmluVVJMKGNvbnN0
IGdjaGFyKiB1cmkpOworCiAgICAgICAgIHByaXZhdGU6CiAgICAgICAgICAgICBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKIApAQCAtMTQ3LDYgKzE0OSw4IEBAIGNs
YXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2UgewogICAgICAgICAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMo
SGFzaFNldDxTdHJpbmc+Jik7CiAgICAgICAgICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNv
ZGVjcywgY29uc3QgS1VSTCYpOwogCisgICAgICAgICAgICB2b2lkIHNldFBsYXliaW5VUkwoS1VS
TCYpOworCiAgICAgICAgICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgICAg
ICAgICB2b2lkIHVwZGF0ZUF1ZGlvU2luaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291
cmNlR1N0cmVhbWVyLmNwcAppbmRleCBmODA0ZDFmLi43NDg3NmUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJHU3RyZWFtZXJWZXJzaW9uaW5nLmgi
CiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaCIKICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKQEAgLTU0
OCw3ICs1NDksNyBAQCBzdGF0aWMgR3N0VVJJVHlwZSB3ZWJLaXRXZWJTcmNVcmlHZXRUeXBlKEdU
eXBlKQogCiBjb25zdCBnY2hhciogY29uc3QqIHdlYktpdFdlYlNyY0dldFByb3RvY29scyhHVHlw
ZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcHJvdG9jb2xzW10gPSB7Imh0dHAiLCAiaHR0
cHMiLCAwIH07CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHByb3RvY29sc1tdID0geyJ3
ZWJraXQraHR0cCIsICJ3ZWJraXQraHR0cHMiLCAwIH07CiAgICAgcmV0dXJuIHByb3RvY29sczsK
IH0KIApAQCAtNTczLDcgKzU3NCw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZXRV
cmkoR3N0VVJJSGFuZGxlciogaGFuZGxlciwgY29uc3QgZ2NoYXIqIHVyaSwgR0VyCiAgICAgaWYg
KCF1cmkpCiAgICAgICAgIHJldHVybiBUUlVFOwogCi0gICAgS1VSTCB1cmwoS1VSTCgpLCB1cmkp
OworICAgIEtVUkwgdXJsID0gV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpj
b252ZXJ0UGxheWJpblVSTCh1cmkpOwogCiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpIHx8ICF1cmwu
cHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CiAgICAgICAgIGdfc2V0X2Vycm9yKGVycm9yLCBH
U1RfVVJJX0VSUk9SLCBHU1RfVVJJX0VSUk9SX0JBRF9VUkksICJJbnZhbGlkIFVSSSAnJXMnIiwg
dXJpKTsKQEAgLTU5Miw3ICs1OTMsNyBAQCBzdGF0aWMgR3N0VVJJVHlwZSB3ZWJLaXRXZWJTcmNV
cmlHZXRUeXBlKHZvaWQpCiAKIHN0YXRpYyBnY2hhcioqIHdlYktpdFdlYlNyY0dldFByb3RvY29s
cyh2b2lkKQogewotICAgIHN0YXRpYyBnY2hhciogcHJvdG9jb2xzW10gPSB7KGdjaGFyKikgImh0
dHAiLCAoZ2NoYXIqKSAiaHR0cHMiLCAwIH07CisgICAgc3RhdGljIGdjaGFyKiBjb25zdCBwcm90
b2NvbHNbXSA9IHsoZ2NoYXIqKSAid2Via2l0K2h0dHAiLCAoZ2NoYXIqKSAid2Via2l0K2h0dHBz
IiwgMCB9OwogICAgIHJldHVybiBwcm90b2NvbHM7CiB9CiAKQEAgLTYxNyw3ICs2MTgsNyBAQCBz
dGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU2V0VXJpKEdzdFVSSUhhbmRsZXIqIGhhbmRsZXIs
IGNvbnN0IGdjaGFyKiB1cmkpCiAgICAgaWYgKCF1cmkpCiAgICAgICAgIHJldHVybiBUUlVFOwog
Ci0gICAgS1VSTCB1cmwoS1VSTCgpLCB1cmkpOworICAgIEtVUkwgdXJsID0gV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjb252ZXJ0UGxheWJpblVSTCh1cmkpOwogCiAgICAg
aWYgKCF1cmwuaXNWYWxpZCgpIHx8ICF1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CiAg
ICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiSW52YWxpZCBVUkkgJyVzJyIsIHVyaSk7Ci0t
IAoxLjcuMTAuNA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199490</attachid>
            <date>2013-04-24 08:58:01 -0700</date>
            <delta_ts>2013-04-25 02:24:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>108088.patch</filename>
            <type>text/plain</type>
            <size>8108</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MGE3MGQ4Li41ZWY5ZmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTMtMDQtMjIgIFhhYmllciBSb2Ryw61ndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxp
YS5jb20+ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1N0cmVhbWVyXSB3ZWJraXR3ZWJzcmMgaXMgZXhwb3NlZCB0byBhcHBsaWNhdGlvbi1zaWRl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgwODgK
KworICAgICAgICBTd2l0Y2ggdGhlIHdlYmtpdHdlYnNyYyB0byBoYW5kbGUgd2Via2l0K2h0dHAo
cykgdXJpcyBzbyBpdCBpcyBub3cKKyAgICAgICAgZXhwbGljaXQgdGhhdCB0aGlzIGVsZW1lbnQg
aXMgbWVhbnQgdG8gYmUgdXNlZCBwcmVmZXJyYWJseSBpbnNpZGUKKyAgICAgICAgV2ViS2l0LiBU
aGlzIGNoYW5nZSBpcyBpbnRlcm5hbCB0byB0aGUgcGxheWVyLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyBodHRwL3Rlc3RzL21lZGlhIHRlc3RzLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnNldFBsYXliaW5VUkwpOiBDbGVhbnMgdGhlCisgICAgICAgIFVSTCBmcm9tIHRoZSBxdWVyeSBh
bmQgYWRkcyB0aGUgd2Via2l0KyBwcmVmaXggcHJpb3IgdG8gc2V0IHRoZQorICAgICAgICBVUkwg
dG8gdGhlIHBpcGVsaW5lLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjb252ZXJ0UGxheWJpblVSTCk6IFJlbW92ZXMKKyAgICAgICAgdGhlIHdlYmtpdCsg
cHJlZml4IGZyb20gdGhlIHBsYXliaW4gVVJMIGFuZCByZXR1cm5zIHRoZQorICAgICAgICBjb3Jy
ZXNwb25kaW5nIEtVUkwuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWQpOiBTZXRzIHRoZSB1cmwgdG8gdGhlCisgICAgICAgIHBpcGVsaW5lIHRocm91
Z2ggc2V0UGxheWJpblVSTC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbik6IFNldHMgdGhlCisgICAgICAgIHVybCB0byB0aGUg
cGlwZWxpbmUgdGhyb3VnaCBzZXRQbGF5YmluVVJMLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6IERlY2xhcmVzIHNldFBsYXliaW5VUkwgYW5kCisg
ICAgICAgIGNvbnZlcnRQbGF5YmluVVJMLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0V2Vi
U3JjR2V0UHJvdG9jb2xzKTogUmV0dXJucyB3ZWJraXQraHR0cFtzXSBhcyBoYW5kbGVkCisgICAg
ICAgIHByb3RvY29scy4KKyAgICAgICAgKHdlYktpdFdlYlNyY1NldFVyaSk6IFRha2VzIFVSTCBm
cm9tIHRoZSBwbGF5YmluLgorCiAyMDEzLTA0LTI0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2guZHVt
ZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCB3aXRo
IGdzdHJlYW1lciAwLjEwLnggYWZ0ZXIgcjE0NzU1NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggOTQwZmY4NS4uZjY3NmJlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI2Miwx
NyArMjYyLDM0IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcigpCiAgICAgICAgIGdfc291cmNlX3JlbW92ZShtX2F1ZGlvVGltZXJIYW5k
bGVyKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3Qg
U3RyaW5nJiB1cmwpCitLVVJMIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29udmVydFBs
YXliaW5VUkwoY29uc3QgZ2NoYXIqIHVyaSkKIHsKLSAgICBpZiAoIWluaXRpYWxpemVHU3RyZWFt
ZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBLVVJM
IHVybChLVVJMKCksIHVyaSk7CiAKLSAgICBLVVJMIGt1cmwoS1VSTCgpLCB1cmwpOwotICAgIFN0
cmluZyBjbGVhblVybCh1cmwpOworICAgIEFTU0VSVCh1cmwucHJvdG9jb2woKS5zdWJzdHJpbmco
MCwgNykgPT0gIndlYmtpdCsiKTsKKyAgICB1cmwuc2V0UHJvdG9jb2wodXJsLnByb3RvY29sKCku
c3Vic3RyaW5nKDcpKTsKKyAgICByZXR1cm4gdXJsOworfQogCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6c2V0UGxheWJpblVSTChLVVJMJiB1cmwpCit7CiAgICAgLy8gQ2xlYW4g
b3V0IGV2ZXJ5dGhpbmcgYWZ0ZXIgZmlsZTovLyB1cmwgcGF0aC4KLSAgICBpZiAoa3VybC5pc0xv
Y2FsRmlsZSgpKQotICAgICAgICBjbGVhblVybCA9IGNsZWFuVXJsLnN1YnN0cmluZygwLCBrdXJs
LnBhdGhFbmQoKSk7CisgICAgaWYgKHVybC5pc0xvY2FsRmlsZSgpKQorICAgICAgICB1cmwuc2V0
UXVlcnkoU3RyaW5nKCkpOworCisgICAgbV91cmwgPSB1cmw7CisKKyAgICBpZiAodXJsLnByb3Rv
Y29sSXNJbkhUVFBGYW1pbHkoKSkKKyAgICAgICAgdXJsLnNldFByb3RvY29sKCJ3ZWJraXQrIiAr
IHVybC5wcm90b2NvbCgpKTsKKworICAgIExPR19NRURJQV9NRVNTQUdFKCJMb2FkICVzIiwgdXJs
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4uZ2V0
KCksICJ1cmkiLCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgTlVMTCk7Cit9CisKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsKQorewor
ICAgIGlmICghaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKSkK
KyAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX3BsYXlCaW4pIHsKICAgICAgICAgY3JlYXRl
R1NUUGxheUJpbigpOwpAQCAtMjgxLDEwICsyOTgsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkKIAogICAgIEFTU0VSVChtX3BsYXlC
aW4pOwogCi0gICAgbV91cmwgPSBLVVJMKEtVUkwoKSwgY2xlYW5VcmwpOwotICAgIGdfb2JqZWN0
X3NldChtX3BsYXlCaW4uZ2V0KCksICJ1cmkiLCBjbGVhblVybC51dGY4KCkuZGF0YSgpLCBOVUxM
KTsKLQotICAgIExPR19NRURJQV9NRVNTQUdFKCJMb2FkICVzIiwgY2xlYW5VcmwudXRmOCgpLmRh
dGEoKSk7CisgICAgS1VSTCBrdXJsKEtVUkwoKSwgdXJsKTsKKyAgICBzZXRQbGF5YmluVVJMKGt1
cmwpOwogCiAgICAgaWYgKG1fcHJlbG9hZCA9PSBNZWRpYVBsYXllcjo6Tm9uZSkgewogICAgICAg
ICBMT0dfTUVESUFfTUVTU0FHRSgiRGVsYXlpbmcgbG9hZC4iKTsKQEAgLTEzMDgsNyArMTMyMyw3
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExvY2F0aW9uKCkK
ICAgICAgICAgICAgIGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksICZzdGF0
ZSwgMCwgMCk7CiAgICAgICAgICAgICBpZiAoc3RhdGUgPD0gR1NUX1NUQVRFX1JFQURZKSB7CiAg
ICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBuZXcgdXJpIGFuZCBzdGFydCBwbGF5aW5nLgotICAg
ICAgICAgICAgICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4uZ2V0KCksICJ1cmkiLCBuZXdVcmwu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgTlVMTCk7CisgICAgICAgICAgICAgICAgc2V0UGxheWJp
blVSTChuZXdVcmwpOwogICAgICAgICAgICAgICAgIG1fdXJsID0gbmV3VXJsOwogICAgICAgICAg
ICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksIEdTVF9TVEFURV9Q
TEFZSU5HKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA4YmRhNTBkLi5kY2M0Mzg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC05Nyw2ICs5
Nyw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpOwog
CisgICAgc3RhdGljIEtVUkwgY29udmVydFBsYXliaW5VUkwoY29uc3QgZ2NoYXIqIHVyaSk7CisK
IHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKik7
CiAKQEAgLTEwNSw2ICsxMDcsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBv
cnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
Y29kZWNzLCBjb25zdCBLVVJMJik7CiAKKyAgICB2b2lkIHNldFBsYXliaW5VUkwoS1VSTCYpOwor
CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAogICAgIHZvaWQgdXBkYXRlQXVkaW9T
aW5rKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4
IDViMmFkZjIuLjEwMWFkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5o
IgogI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJNZWRpYVBsYXll
ci5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgpAQCAtNTY1LDcgKzU2NiwyNSBAQCBzdGF0aWMg
Z2Jvb2xlYW4gd2ViS2l0V2ViU3JjUXVlcnlXaXRoUGFyZW50KEdzdFBhZCogcGFkLCBHc3RPYmpl
Y3QqIHBhcmVudCwgR3N0UQogc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1F1ZXJ5KEdzdFBh
ZCogcGFkLCBHc3RRdWVyeSogcXVlcnkpCiB7CiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBzcmMg
PSBhZG9wdEdSZWYoZ3N0X3BhZF9nZXRfcGFyZW50X2VsZW1lbnQocGFkKSk7Ci0gICAgcmV0dXJu
IHdlYktpdFdlYlNyY1F1ZXJ5V2l0aFBhcmVudChwYWQsIEdTVF9PQkpFQ1Qoc3JjLmdldCgpKSwg
cXVlcnkpOworICAgIGdib29sZWFuIHJlc3VsdCA9IEZBTFNFOworCisgICAgc3dpdGNoIChHU1Rf
UVVFUllfVFlQRShxdWVyeSkpIHsKKyAgICBjYXNlIEdTVF9RVUVSWV9TQ0hFRFVMSU5HOiB7Cisg
ICAgICAgIEdzdFNjaGVkdWxpbmdGbGFncyBmbGFnczsKKyAgICAgICAgZ2ludCBtaW5TaXplLCBt
YXhTaXplLCBhbGlnbjsKKworICAgICAgICBnc3RfcXVlcnlfcGFyc2Vfc2NoZWR1bGluZyAocXVl
cnksICZmbGFncywgJm1pblNpemUsICZtYXhTaXplLCAmYWxpZ24pOworICAgICAgICBmbGFncyB8
PSBHU1RfU0NIRURVTElOR19GTEFHX0JBTkRXSURUSF9MSU1JVEVEOworICAgICAgICBnc3RfcXVl
cnlfc2V0X3NjaGVkdWxpbmcgKHF1ZXJ5LCBmbGFncywgbWluU2l6ZSwgbWF4U2l6ZSwgYWxpZ24p
OworCisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICByZXN1bHQg
PSB3ZWJLaXRXZWJTcmNRdWVyeVdpdGhQYXJlbnQocGFkLCBHU1RfT0JKRUNUKHNyYy5nZXQoKSks
IHF1ZXJ5KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKIH0K
ICNlbmRpZgogCkBAIC01NzksNyArNTk4LDcgQEAgc3RhdGljIEdzdFVSSVR5cGUgd2ViS2l0V2Vi
U3JjVXJpR2V0VHlwZShHVHlwZSkKIAogY29uc3QgZ2NoYXIqIGNvbnN0KiB3ZWJLaXRXZWJTcmNH
ZXRQcm90b2NvbHMoR1R5cGUpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHByb3RvY29sc1td
ID0geyJodHRwIiwgImh0dHBzIiwgMCB9OworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBw
cm90b2NvbHNbXSA9IHsid2Via2l0K2h0dHAiLCAid2Via2l0K2h0dHBzIiwgMCB9OwogICAgIHJl
dHVybiBwcm90b2NvbHM7CiB9CiAKQEAgLTYwNCw3ICs2MjMsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4g
d2ViS2l0V2ViU3JjU2V0VXJpKEdzdFVSSUhhbmRsZXIqIGhhbmRsZXIsIGNvbnN0IGdjaGFyKiB1
cmksIEdFcgogICAgIGlmICghdXJpKQogICAgICAgICByZXR1cm4gVFJVRTsKIAotICAgIEtVUkwg
dXJsKEtVUkwoKSwgdXJpKTsKKyAgICBLVVJMIHVybCA9IFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6Y29udmVydFBsYXliaW5VUkwodXJpKTsKIAogICAgIGlmICghdXJsLmlz
VmFsaWQoKSB8fCAhdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewogICAgICAgICBnX3Nl
dF9lcnJvcihlcnJvciwgR1NUX1VSSV9FUlJPUiwgR1NUX1VSSV9FUlJPUl9CQURfVVJJLCAiSW52
YWxpZCBVUkkgJyVzJyIsIHVyaSk7CkBAIC02MjMsNyArNjQyLDcgQEAgc3RhdGljIEdzdFVSSVR5
cGUgd2ViS2l0V2ViU3JjVXJpR2V0VHlwZSh2b2lkKQogCiBzdGF0aWMgZ2NoYXIqKiB3ZWJLaXRX
ZWJTcmNHZXRQcm90b2NvbHModm9pZCkKIHsKLSAgICBzdGF0aWMgZ2NoYXIqIHByb3RvY29sc1td
ID0geyhnY2hhciopICJodHRwIiwgKGdjaGFyKikgImh0dHBzIiwgMCB9OworICAgIHN0YXRpYyBn
Y2hhciogY29uc3QgcHJvdG9jb2xzW10gPSB7KGdjaGFyKikgIndlYmtpdCtodHRwIiwgKGdjaGFy
KikgIndlYmtpdCtodHRwcyIsIDAgfTsKICAgICByZXR1cm4gcHJvdG9jb2xzOwogfQogCkBAIC02
NDgsNyArNjY3LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NldFVyaShHc3RVUklI
YW5kbGVyKiBoYW5kbGVyLCBjb25zdCBnY2hhciogdXJpKQogICAgIGlmICghdXJpKQogICAgICAg
ICByZXR1cm4gVFJVRTsKIAotICAgIEtVUkwgdXJsKEtVUkwoKSwgdXJpKTsKKyAgICBLVVJMIHVy
bCA9IFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29udmVydFBsYXliaW5V
UkwodXJpKTsKIAogICAgIGlmICghdXJsLmlzVmFsaWQoKSB8fCAhdXJsLnByb3RvY29sSXNJbkhU
VFBGYW1pbHkoKSkgewogICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkludmFsaWQgVVJJ
ICclcyciLCB1cmkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199641</attachid>
            <date>2013-04-25 02:24:08 -0700</date>
            <delta_ts>2013-04-26 02:00:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108088-20130425112329.patch</filename>
            <type>text/plain</type>
            <size>7742</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5MDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBhNzBkODU4NWVmMmJi
YTU3ZGRhMWZkNjU3M2Y2OGI2ZDJlZTY1Yi4uM2E2YjRhMWExNThlZjQxOThiYzdlNzg4YjFkN2Vl
ZWY3NzkyMGVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTA0LTI1ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+ICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSB3ZWJraXR3
ZWJzcmMgaXMgZXhwb3NlZCB0byBhcHBsaWNhdGlvbi1zaWRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgwODgKKworICAgICAgICBTd2l0Y2ggdGhl
IHdlYmtpdHdlYnNyYyB0byBoYW5kbGUgd2Via2l0K2h0dHAocykgdXJpcyBzbyBpdCBpcyBub3cK
KyAgICAgICAgZXhwbGljaXQgdGhhdCB0aGlzIGVsZW1lbnQgaXMgbWVhbnQgdG8gYmUgdXNlZCBw
cmVmZXJyYWJseSBpbnNpZGUKKyAgICAgICAgV2ViS2l0LiBUaGlzIGNoYW5nZSBpcyBpbnRlcm5h
bCB0byB0aGUgcGxheWVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlz
dGluZyBodHRwL3Rlc3RzL21lZGlhIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFBsYXliaW5VUkwpOiBDbGVh
bnMgdGhlCisgICAgICAgIFVSTCBmcm9tIHRoZSBxdWVyeSBhbmQgYWRkcyB0aGUgd2Via2l0KyBw
cmVmaXggcHJpb3IgdG8gc2V0IHRoZQorICAgICAgICBVUkwgdG8gdGhlIHBpcGVsaW5lLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjb252ZXJ0UGxheWJp
blVSTCk6IFJlbW92ZXMKKyAgICAgICAgdGhlIHdlYmtpdCsgcHJlZml4IGZyb20gdGhlIHBsYXli
aW4gVVJMIGFuZCByZXR1cm5zIHRoZQorICAgICAgICBjb3JyZXNwb25kaW5nIEtVUkwuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQpOiBTZXRzIHRo
ZSB1cmwgdG8gdGhlCisgICAgICAgIHBpcGVsaW5lIHRocm91Z2ggc2V0UGxheWJpblVSTC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2Nh
dGlvbik6IFNldHMgdGhlCisgICAgICAgIHVybCB0byB0aGUgcGlwZWxpbmUgdGhyb3VnaCBzZXRQ
bGF5YmluVVJMLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcik6IERlY2xhcmVzIHNldFBsYXliaW5VUkwgYW5kCisgICAgICAgIGNvbnZlcnRQbGF5Ymlu
VVJMLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3Vy
Y2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0V2ViU3JjR2V0UHJvdG9jb2xzKTogUmV0
dXJucyB3ZWJraXQraHR0cFtzXSBhcyBoYW5kbGVkCisgICAgICAgIHByb3RvY29scy4KKyAgICAg
ICAgKHdlYktpdFdlYlNyY1NldFVyaSk6IFRha2VzIFVSTCBmcm9tIHRoZSBwbGF5YmluLgorICAg
ICAgICAod2ViS2l0V2ViU3JjUXVlcnlXaXRoUGFyZW50KTogQW5zd2VycyBzY2hlZHVsaW5nIHF1
ZXJ5IGFuZCBzZXRzCisgICAgICAgIHRoZSBfQkFORFdJRFRIX0xJTUlURUQgZmxhZy4KKwogMjAx
My0wNC0yNCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggd2l0aCBnc3RyZWFtZXIgMC4xMC54IGFmdGVy
IHIxNDc1NTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IDk0MGZmODU0NDU2YTFiMWIyMTAxNzE1N2QyNTY2NzI3ODgzNzE1N2EuLjljNWNk
MDdmMzM5NzYxYjY3OTdiOWIzYTVjZWNiNGY4MDdiZjU1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yNjIsMTcgKzI2MiwzOSBAQCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIo
KQogICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV9hdWRpb1RpbWVySGFuZGxlcik7CiB9CiAKLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsKQor
S1VSTCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvbnZlcnRQbGF5YmluVVJMKGNvbnN0
IGdjaGFyKiB1cmkpCiB7Ci0gICAgaWYgKCFpbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJX
ZWJLaXRFbGVtZW50cygpKQotICAgICAgICByZXR1cm47CisgICAgS1VSTCB1cmwoS1VSTCgpLCB1
cmkpOwogCi0gICAgS1VSTCBrdXJsKEtVUkwoKSwgdXJsKTsKLSAgICBTdHJpbmcgY2xlYW5Vcmwo
dXJsKTsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIEFTU0VSVCh1cmwucHJvdG9jb2wo
KS5zdWJzdHJpbmcoMCwgNykgPT0gIndlYmtpdCsiKTsKKyAgICB1cmwuc2V0UHJvdG9jb2wodXJs
LnByb3RvY29sKCkuc3Vic3RyaW5nKDcpKTsKKyNlbmRpZgogCisgICAgcmV0dXJuIHVybDsKK30K
Kwordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFBsYXliaW5VUkwoS1VSTCYg
dXJsKQorewogICAgIC8vIENsZWFuIG91dCBldmVyeXRoaW5nIGFmdGVyIGZpbGU6Ly8gdXJsIHBh
dGguCi0gICAgaWYgKGt1cmwuaXNMb2NhbEZpbGUoKSkKLSAgICAgICAgY2xlYW5VcmwgPSBjbGVh
blVybC5zdWJzdHJpbmcoMCwga3VybC5wYXRoRW5kKCkpOworICAgIGlmICh1cmwuaXNMb2NhbEZp
bGUoKSkKKyAgICAgICAgdXJsLnNldFF1ZXJ5KFN0cmluZygpKTsKKworICAgIG1fdXJsID0gdXJs
OworCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBpZiAodXJsLnByb3RvY29sSXNJbkhU
VFBGYW1pbHkoKSkKKyAgICAgICAgdXJsLnNldFByb3RvY29sKCJ3ZWJraXQrIiArIHVybC5wcm90
b2NvbCgpKTsKKyNlbmRpZgorCisgICAgTE9HX01FRElBX01FU1NBR0UoIkxvYWQgJXMiLCB1cmwu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbi5nZXQo
KSwgInVyaSIsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBOVUxMKTsKK30KKwordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCit7Cisg
ICAgaWYgKCFpbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpKQor
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fcGxheUJpbikgewogICAgICAgICBjcmVhdGVH
U1RQbGF5QmluKCk7CkBAIC0yODEsMTAgKzMwMyw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsKQogCiAgICAgQVNTRVJUKG1fcGxheUJp
bik7CiAKLSAgICBtX3VybCA9IEtVUkwoS1VSTCgpLCBjbGVhblVybCk7Ci0gICAgZ19vYmplY3Rf
c2V0KG1fcGxheUJpbi5nZXQoKSwgInVyaSIsIGNsZWFuVXJsLnV0ZjgoKS5kYXRhKCksIE5VTEwp
OwotCi0gICAgTE9HX01FRElBX01FU1NBR0UoIkxvYWQgJXMiLCBjbGVhblVybC51dGY4KCkuZGF0
YSgpKTsKKyAgICBLVVJMIGt1cmwoS1VSTCgpLCB1cmwpOworICAgIHNldFBsYXliaW5VUkwoa3Vy
bCk7CiAKICAgICBpZiAobV9wcmVsb2FkID09IE1lZGlhUGxheWVyOjpOb25lKSB7CiAgICAgICAg
IExPR19NRURJQV9NRVNTQUdFKCJEZWxheWluZyBsb2FkLiIpOwpAQCAtMTMwOCw3ICsxMzI4LDcg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQog
ICAgICAgICAgICAgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgJnN0YXRl
LCAwLCAwKTsKICAgICAgICAgICAgIGlmIChzdGF0ZSA8PSBHU1RfU1RBVEVfUkVBRFkpIHsKICAg
ICAgICAgICAgICAgICAvLyBTZXQgdGhlIG5ldyB1cmkgYW5kIHN0YXJ0IHBsYXlpbmcuCi0gICAg
ICAgICAgICAgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbi5nZXQoKSwgInVyaSIsIG5ld1VybC5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCBOVUxMKTsKKyAgICAgICAgICAgICAgICBzZXRQbGF5Ymlu
VVJMKG5ld1VybCk7CiAgICAgICAgICAgICAgICAgbV91cmwgPSBuZXdVcmw7CiAgICAgICAgICAg
ICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgR1NUX1NUQVRFX1BM
QVlJTkcpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDhiZGE1MGQ3OWViNTg2ZjJkMmM5OGZl
ODJjMGEzYjI2NzZmODkxZDguLmRjYzQzODllMjQ4ZjdmOTdmNjIxNDI0MjY2MmI5NGU1ZmFjMjU3
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAg
LTk3LDYgKzk3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzaW11bGF0ZUF1ZGlvSW50ZXJydXB0
aW9uKCk7CiAKKyAgICBzdGF0aWMgS1VSTCBjb252ZXJ0UGxheWJpblVSTChjb25zdCBnY2hhciog
dXJpKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQ
bGF5ZXIqKTsKIApAQCAtMTA1LDYgKzEwNyw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQg
Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7CiAgICAgc3RhdGljIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBjb2RlY3MsIGNvbnN0IEtVUkwmKTsKIAorICAgIHZvaWQgc2V0UGxheWJpblVSTChL
VVJMJik7CisKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgdm9pZCB1cGRh
dGVBdWRpb1NpbmsoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5j
cHAKaW5kZXggNWIyYWRmMjk0ZDQ5ZTQyNjQxMmU5MzgxMDJkNWNiZmVkMTVlMDUzMC4uNzBlMzMw
YWM5MmMyNzQzYWNjYmNmNWNjNjQ3NTQyMjBlYWNhZTE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dl
YktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJH
UmVmUHRyR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiR1N0cmVhbWVyVmVyc2lvbmluZy5oIgogI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCkBAIC01NDgsNiAr
NTQ5LDE5IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNRdWVyeVdpdGhQYXJlbnQoR3N0
UGFkKiBwYWQsIEdzdE9iamVjdCogcGFyZW50LCBHc3RRCiAgICAgICAgIHJlc3VsdCA9IFRSVUU7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIGNh
c2UgR1NUX1FVRVJZX1NDSEVEVUxJTkc6IHsKKyAgICAgICAgR3N0U2NoZWR1bGluZ0ZsYWdzIGZs
YWdzOworICAgICAgICBnaW50IG1pblNpemUsIG1heFNpemUsIGFsaWduOworCisgICAgICAgIGdz
dF9xdWVyeV9wYXJzZV9zY2hlZHVsaW5nKHF1ZXJ5LCAmZmxhZ3MsICZtaW5TaXplLCAmbWF4U2l6
ZSwgJmFsaWduKTsKKyAgICAgICAgZmxhZ3MgPSBzdGF0aWNfY2FzdDxHc3RTY2hlZHVsaW5nRmxh
Z3M+KHN0YXRpY19jYXN0PHVuc2lnbmVkPihmbGFncykgfCBHU1RfU0NIRURVTElOR19GTEFHX0JB
TkRXSURUSF9MSU1JVEVEKTsKKyAgICAgICAgZ3N0X3F1ZXJ5X3NldF9zY2hlZHVsaW5nKHF1ZXJ5
LCBmbGFncywgbWluU2l6ZSwgbWF4U2l6ZSwgYWxpZ24pOworICAgICAgICByZXN1bHQgPSBUUlVF
OworCisgICAgICAgIGJyZWFrOworICAgIH0KKyNlbmRpZgogICAgIGRlZmF1bHQ6IHsKICAgICAg
ICAgR1JlZlB0cjxHc3RQYWQ+IHRhcmdldCA9IGFkb3B0R1JlZihnc3RfZ2hvc3RfcGFkX2dldF90
YXJnZXQoR1NUX0dIT1NUX1BBRF9DQVNUKHBhZCkpKTsKIApAQCAtNTc5LDcgKzU5Myw3IEBAIHN0
YXRpYyBHc3RVUklUeXBlIHdlYktpdFdlYlNyY1VyaUdldFR5cGUoR1R5cGUpCiAKIGNvbnN0IGdj
aGFyKiBjb25zdCogd2ViS2l0V2ViU3JjR2V0UHJvdG9jb2xzKEdUeXBlKQogewotICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBwcm90b2NvbHNbXSA9IHsiaHR0cCIsICJodHRwcyIsIDAgfTsKKyAgICBz
dGF0aWMgY29uc3QgY2hhciogY29uc3QgcHJvdG9jb2xzW10gPSB7IndlYmtpdCtodHRwIiwgIndl
YmtpdCtodHRwcyIsIDAgfTsKICAgICByZXR1cm4gcHJvdG9jb2xzOwogfQogCkBAIC02MDQsNyAr
NjE4LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NldFVyaShHc3RVUklIYW5kbGVy
KiBoYW5kbGVyLCBjb25zdCBnY2hhciogdXJpLCBHRXIKICAgICBpZiAoIXVyaSkKICAgICAgICAg
cmV0dXJuIFRSVUU7CiAKLSAgICBLVVJMIHVybChLVVJMKCksIHVyaSk7CisgICAgS1VSTCB1cmwg
PSBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvbnZlcnRQbGF5YmluVVJM
KHVyaSk7CiAKICAgICBpZiAoIXVybC5pc1ZhbGlkKCkgfHwgIXVybC5wcm90b2NvbElzSW5IVFRQ
RmFtaWx5KCkpIHsKICAgICAgICAgZ19zZXRfZXJyb3IoZXJyb3IsIEdTVF9VUklfRVJST1IsIEdT
VF9VUklfRVJST1JfQkFEX1VSSSwgIkludmFsaWQgVVJJICclcyciLCB1cmkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>