<?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>71662</bug_id>
          
          <creation_ts>2011-11-07 04:26:32 -0800</creation_ts>
          <short_desc>[GTK] media/event-attributes.html fails</short_desc>
          <delta_ts>2012-04-11 04:58:14 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gustavo</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ojan</cc>
    
    <cc>spena</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>497061</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-11-07 04:26:32 -0800</bug_when>
    <thetext>It&apos;s currently skipped in GTK anyway but here&apos;s the diff:

--- /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/layout-test-results/media/event-attributes-expected.txt
+++ /home/phil/gst/jhbuild/build/WebKit/WebKitBuild/Release/layout-test-results/media/event-attributes-actual.txt
@@ -13,14 +13,14 @@
 
 *** changing playback rate
 RUN(video.playbackRate = 2)
+EVENT(volumechange)
+
+*** pausing playback
+RUN(video.pause())
 EVENT(ratechange)
 
 *** setting volume
 RUN(video.volume = 0.5)
-EVENT(volumechange)
-
-*** pausing playback
-RUN(video.pause())
 EVENT(pause)
 
 *** seeking
@@ -32,6 +32,7 @@
 RUN(video.play())
 EVENT(play)
 EVENT(playing)
+EVENT(durationchange)
 EVENT(pause)
 EVENT(ended)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594460</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Pena">spena</who>
    <bug_when>2012-04-03 07:22:29 -0700</bug_when>
    <thetext>This seems to be failing now only after seeking:

--- /home/spenap/workspace/WebKit/WebKitBuild/Release/layout-test-results/media/event-attributes-expected.txt
+++ /home/spenap/workspace/WebKit/WebKitBuild/Release/layout-test-results/media/event-attributes-actual.txt
@@ -32,6 +32,7 @@
 RUN(video.play())
 EVENT(play)
 EVENT(playing)
+EVENT(durationchange)
 EVENT(pause)
 EVENT(ended)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594467</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-03 07:31:41 -0700</bug_when>
    <thetext>Maybe the duration event is wrongly emitted from MediaPlayerPrivateGStreamer::didEnd ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594468</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-03 07:32:53 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Maybe the duration event is wrongly emitted from MediaPlayerPrivateGStreamer::didEnd ?

Might be worth debugging ::durationChanged as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594470</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Pena">spena</who>
    <bug_when>2012-04-03 07:35:51 -0700</bug_when>
    <thetext>Cool, I&apos;ll take a look into that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595467</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Pena">spena</who>
    <bug_when>2012-04-04 06:04:11 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Cool, I&apos;ll take a look into that.

OK, there were several things here. First, about my comment #1.
EVENT(durationchange) was indeed emitted from ::didEnd (as you said in
comment #3)

The comment in MediaPlayerPrivateGStreamer::didEnd there explained that
durationChange was emitted in case it was reverse playback. Checking for
m_playbackRate &lt; 0 is enough to avoid wrongly emitting that signal.

But, as soon as I fixed that, I got the other issues in the diff in comment #0.
It turned out that pulseaudio was saving the volume setting of the testrunner
between different test runs.

I will update the gtk.py script so module-stream-restore (the pulseaudio module
responsible for saving and restoring the volume settings) is unloaded for the
test run.

Also, if someone is interested in testing this earlier, it&apos;s possible to access
pulseaudio&apos;s database:

$tdbtool ~/.pulse/*-stream-volumes.tdb

And remove the offending entry:

tdb&gt; delete sink-input-by-application-name:DumpRenderTree

Then, killing pulseaudio will make it re-load the database, where the setting
for the testrunner won&apos;t be found.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595608</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-04 09:27:03 -0700</bug_when>
    <thetext>(In reply to comment #5)

&gt; But, as soon as I fixed that, I got the other issues in the diff in comment #0.
&gt; It turned out that pulseaudio was saving the volume setting of the testrunner
&gt; between different test runs.

Wow! Great catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595614</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-04 09:31:41 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; 
&gt; &gt; But, as soon as I fixed that, I got the other issues in the diff in comment #0.
&gt; &gt; It turned out that pulseaudio was saving the volume setting of the testrunner
&gt; &gt; between different test runs.
&gt; 
&gt; Wow! Great catch.

Yes indeed, well done Simón :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599196</commentid>
    <comment_count>8</comment_count>
      <attachid>136439</attachid>
    <who name="Simon Pena">spena</who>
    <bug_when>2012-04-10 05:53:35 -0700</bug_when>
    <thetext>Created attachment 136439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599207</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Pena">spena</who>
    <bug_when>2012-04-10 06:03:29 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=136439) [details]
&gt; Patch

I&apos;d be happy to get feedback on the Python part: I don&apos;t like my current approach too much, since relying on the _worker_number is a workaround to avoid different workers messing with each other (without that check, a worker could find itself running with the offending PulseAudio module just restored by another worker).

dpranke, I&apos;m CCing you since Phil mentioned you could point out how to improve that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599215</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-10 06:26:31 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Created an attachment (id=136439) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; I&apos;d be happy to get feedback on the Python part: I don&apos;t like my current approach too much, since relying on the _worker_number is a workaround to avoid different workers messing with each other (without that check, a worker could find itself running with the offending PulseAudio module just restored by another worker).
&gt; 

Maybe it&apos;d be better to extend Port&apos;s constructor to unload the module and __del__ to unload the module?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599220</commentid>
    <comment_count>11</comment_count>
      <attachid>136439</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-10 06:39:30 -0700</bug_when>
    <thetext>Comment on attachment 136439
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/gtk.py:65
&gt; +            for module in modules_list.split(&apos;\n&apos;):

Please use splitlines()

&gt; Tools/Scripts/webkitpy/layout_tests/port/gtk.py:70
&gt; +                subprocess.Popen([&quot;pactl&quot;, &quot;unload-module&quot;, self._module_index], stdout=None, stderr=None)

stdout and stderr are None by default, I think. So no need to set them here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599274</commentid>
    <comment_count>12</comment_count>
      <attachid>136439</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-10 08:05:23 -0700</bug_when>
    <thetext>Comment on attachment 136439
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/gtk.py:65
&gt;&gt; +        # We want to unload pulseaudio&apos;s module-stream-restore, since it
&gt;&gt; +        # remembers volume settings from different runs, and could affect
&gt;&gt; +        # multimedia tests results
&gt;&gt; +        if self._worker_number == 0:
&gt;&gt; +            with open(os.devnull, &apos;w&apos;) as devnull:
&gt;&gt; +                pactl_process = subprocess.Popen([&quot;pactl&quot;, &quot;list&quot;, &quot;short&quot;, &quot;modules&quot;], stdout=subprocess.PIPE, stderr=devnull)
&gt;&gt; +            modules_list = pactl_process.communicate()[0]
&gt;&gt; +            self._module_index = -1
&gt;&gt; +            for module in modules_list.split(&apos;\n&apos;):
&gt; 
&gt; Please use splitlines()

It makese sense to split this off into a helper method.

&gt; Tools/Scripts/webkitpy/layout_tests/port/gtk.py:81
&gt; +        # If pulseaudio&apos;s module-stream-restore was previously loaded, we
&gt; +        # restore it here.
&gt; +        if self._worker_number == 0 and self._module_index != -1:
&gt; +            with open(os.devnull, &apos;w&apos;) as devnull:
&gt; +                subprocess.Popen([&quot;pactl&quot;, &quot;load-module&quot;, &quot;module-stream-restore&quot;], stdout=devnull, stderr=devnull)

Is there a way to disable this for a single process only, so we can avoid putting the system in a bad state if the process crashes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599275</commentid>
    <comment_count>13</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-10 08:06:10 -0700</bug_when>
    <thetext>(In reply to comment #10)

&gt; Maybe it&apos;d be better to extend Port&apos;s constructor to unload the module and __del__ to unload the module?

The constructor sound like a good idea, but doesn&apos;t __del__ fire at some random time depending on garbage collection?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599786</commentid>
    <comment_count>14</comment_count>
      <attachid>136439</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-04-10 16:37:14 -0700</bug_when>
    <thetext>Comment on attachment 136439
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/gtk.py:60
&gt; +        if self._worker_number == 0:

Why are you doing this change here at all, and why checking if _worker_number == 0? 

If you want this to happen before *any* tests are run (and reset after *all* of them have run), you should do this work in GtkPort.setup_test_run (and it looks like there isn&apos;t a corresponding clean_up_test_run(), so we should probably add that and add the call in Manager._clean_up_run in manager.py.

On the other hand, if you want to do this for each individual test, it&apos;s not clear to me how this would work when running multiple DRTs simultaneously?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600131</commentid>
    <comment_count>15</comment_count>
      <attachid>136439</attachid>
    <who name="Simon Pena">spena</who>
    <bug_when>2012-04-11 01:34:10 -0700</bug_when>
    <thetext>Comment on attachment 136439
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/gtk.py:60
&gt;&gt; +        if self._worker_number == 0:
&gt; 
&gt; Why are you doing this change here at all, and why checking if _worker_number == 0? 
&gt; 
&gt; If you want this to happen before *any* tests are run (and reset after *all* of them have run), you should do this work in GtkPort.setup_test_run (and it looks like there isn&apos;t a corresponding clean_up_test_run(), so we should probably add that and add the call in Manager._clean_up_run in manager.py.
&gt; 
&gt; On the other hand, if you want to do this for each individual test, it&apos;s not clear to me how this would work when running multiple DRTs simultaneously?

Thanks! I wanted that to happen before tests were run, so setup_test_run and clean_up_test_run seem the way to go. I&apos;ll update the patch accordingly.

I&apos;ll Also follow Martin and Philippe comments regarding to code.

&gt;&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/gtk.py:65
&gt;&gt;&gt; +            for module in modules_list.split(&apos;\n&apos;):
&gt;&gt; 
&gt;&gt; Please use splitlines()
&gt; 
&gt; It makese sense to split this off into a helper method.

I&apos;ll fix this in the new version of this patch.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/gtk.py:70
&gt;&gt; +                subprocess.Popen([&quot;pactl&quot;, &quot;unload-module&quot;, self._module_index], stdout=None, stderr=None)
&gt; 
&gt; stdout and stderr are None by default, I think. So no need to set them here.

OK, I&apos;ll get that fixed in the next version.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/gtk.py:81
&gt;&gt; +                subprocess.Popen([&quot;pactl&quot;, &quot;load-module&quot;, &quot;module-stream-restore&quot;], stdout=devnull, stderr=devnull)
&gt; 
&gt; Is there a way to disable this for a single process only, so we can avoid putting the system in a bad state if the process crashes?

Dirk comment explained me how to do it, so I&apos;ll get it fixed in the next version of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600186</commentid>
    <comment_count>16</comment_count>
      <attachid>136654</attachid>
    <who name="Simon Pena">spena</who>
    <bug_when>2012-04-11 03:49:03 -0700</bug_when>
    <thetext>Created attachment 136654
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600191</commentid>
    <comment_count>17</comment_count>
      <attachid>136654</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-11 04:03:20 -0700</bug_when>
    <thetext>Comment on attachment 136654
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600201</commentid>
    <comment_count>18</comment_count>
      <attachid>136654</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-11 04:58:08 -0700</bug_when>
    <thetext>Comment on attachment 136654
Patch

Clearing flags on attachment: 136654

Committed r113849: &lt;http://trac.webkit.org/changeset/113849&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600202</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-11 04:58:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136439</attachid>
            <date>2012-04-10 05:53:35 -0700</date>
            <delta_ts>2012-04-11 03:48:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71662-20120410145333.patch</filename>
            <type>text/plain</type>
            <size>7663</size>
            <attacher name="Simon Pena">spena</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzNzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAzYzQ2ZDI3YzEzZWMx
YmYxNzEwNzY0ZjYyMjgwNDc5MjFlYTJkNS4uMmRiYmQzMTcxYmQwYTA1MGIxNGFiZWRmYmEwZmY1
NmI3NDBjMDNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA0LTEwICBTaW1v
biBQZW5hICA8c3BlbmFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBtZWRpYS9ldmVudC1h
dHRyaWJ1dGVzLmh0bWwgZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcxNjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRFbmQsIHdoZW4g
RU9TIGlzIHJlYWNoZWQsIGRvbid0CisgICAgICAgIHN5bmNocm9uaXplIHBvc2l0aW9uIGFuZCBk
dXJhdGlvbiBvbiByZWd1bGFyIHBsYXliYWNrLiBUaGF0IGlzOgorICAgICAgICBzeW5jaHJvbml6
ZSBpdCAoYW5kIGZpcmUgdGhlIGR1cmF0aW9uQ2hhbmdlIHNpZ25hbCkgb25seSBvbiByZXZlcnNl
CisgICAgICAgIHBsYXliYWNrLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIG1lZGlhL2V2
ZW50LWF0dHJpYnV0ZXMuaHRtbCBwYXNzLiBJdCB3YXMKKyAgICAgICAgcHJldmlvdXNseSBmYWls
aW5nIGJlY2F1c2UgYW4gYWRkaXRpb25hbCBkdXJhdGlvbkNoYW5nZSBzaWduYWwgd2FzCisgICAg
ICAgIGVtaXR0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDogQXZvaWQKKyAgICAgICAgc2VuZGluZyBkdXJh
dGlvbkNoYW5nZSBzaWduYWwgb24gcmVndWxhciBwbGF5YmFjay4KKwogMjAxMi0wNC0wOSAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBzZWFyY2hpbmcgZG9jdW1lbnQgd2l0aCBubyBkb2N1bWVudEVsZW1lbnQgcmVzdWx0cyBp
biAweDAgYWNjZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAppbmRleCA2YTY0M2M4ZDEyZTBmNDExZmUzZDkwZTIyMDY5M2Y0ODgzYWVmMzkyLi5l
YTQ5ZDBlMTc5NGY2NDIxZWE0NmVkYTk3M2Q5YmU0MDRjYTk2NWNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTM2NiwxMCArMTM2Niwx
MCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dGltZUNoYW5nZWQoKQogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZEVuZCgpCiB7CiAgICAgLy8gRU9TIHdh
cyByZWFjaGVkIGJ1dCBpbiBjYXNlIG9mIHJldmVyc2UgcGxheWJhY2sgdGhlIHBvc2l0aW9uIGlz
Ci0gICAgLy8gbm90IGFsd2F5cyAwLiBTbyB0byBub3QgY29uZnVzZSB0aGUgSFRNTE1lZGlhRWxl
bWVudCB3ZQotICAgIC8vIHN5bmNocm9uaXplIHBvc2l0aW9uIGFuZCBkdXJhdGlvbiB2YWx1ZXMu
CisgICAgLy8gbm90IGFsd2F5cyAwLiBTbyB0byBub3QgY29uZnVzZSB0aGUgSFRNTE1lZGlhRWxl
bWVudCwgaWYgd2UncmUKKyAgICAvLyBkb2luZyByZXZlcnNlIHBsYXliYWNrLCB3ZSBzeW5jaHJv
bml6ZSBwb3NpdGlvbiBhbmQgZHVyYXRpb24gdmFsdWVzLgogICAgIGZsb2F0IG5vdyA9IGN1cnJl
bnRUaW1lKCk7Ci0gICAgaWYgKG5vdyA+IDApIHsKKyAgICBpZiAobm93ID4gMCAmJiBtX3BsYXli
YWNrUmF0ZSA8IDApIHsKICAgICAgICAgbV9tZWRpYUR1cmF0aW9uID0gbm93OwogICAgICAgICBt
X21lZGlhRHVyYXRpb25Lbm93biA9IHRydWU7CiAgICAgICAgIG1fcGxheWVyLT5kdXJhdGlvbkNo
YW5nZWQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBmMDBkN2Q4YTMwNThkYTE5ZDdkZmY0NjcyYjFlMWRiOWU4ZTE0ODEzLi4wNmY1YmI0YmI3
MTJjYTY4M2EwZWQ3ZGY2OTkwYTNhMDIxZTM1NDcxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDQtMTAgIFNp
bW9uIFBlbmEgIDxzcGVuYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIG1lZGlhL2V2ZW50
LWF0dHJpYnV0ZXMuaHRtbCBmYWlscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzE2NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQdWxzZUF1ZGlvJ3MgbW9kdWxlICJtb2R1bGUtc3RyZWFtLXJlc3RvcmUi
IGFsbG93cyBzYXZpbmcgdGhlIHZvbHVtZQorICAgICAgICBvZiBhIHN0cmVhbSwgcmVzdG9yaW5n
IGl0IHRoZSBuZXh0IHRpbWUgaXQgcnVucy4gVGhpcyBhZmZlY3RzIHRoZQorICAgICAgICB0ZXN0
cywgc2luY2UgRHVtcFJlbmRlclRyZWUncyB2b2x1bWUgc2V0dGluZ3MgYXJlIHNhdmVkIGJldHdl
ZW4gdGVzdAorICAgICAgICBydW5zLCBhbmQgdGVzdHMgcmVseWluZyBvbiBzcGVjaWZpYyB2b2x1
bWUgdmFsdWVzIHdvdWxkIG1pc3Mgc29tZQorICAgICAgICB2b2x1bWVDaGFuZ2UgZXZlbnRzIChv
ciBnZXQgYWRkaXRpb25hbCBvbmVzKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBjaGVja3MgaWYg
UHVsc2VBdWRpbydzIGN1cnJlbnQgbW9kdWxlcyBpbmNsdWRlIHRoYXQgb25lLgorICAgICAgICBJ
ZiBmb3VuZCwgdGhleSB1bmxvYWQgaXQgZHVyaW5nIHRoZSB0ZXN0IHJ1biwgbG9hZGluZyBpdCBi
YWNrIGFmdGVyCisgICAgICAgIGl0IGZpbmlzaGVkLiBEb2luZyB0aGF0LCB0aGUgdGVzdCBjb25m
aWd1cmF0aW9uIGlzIG5vdCBhZmZlY3RlZCBieQorICAgICAgICBQdWxzZUF1ZGlvLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9ndGsucHk6CisgICAgICAg
IChHdGtEcml2ZXIuX3N0YXJ0KTogVW5sb2FkICJtb2R1bGUtc3RyZWFtLXJlc3RvcmUiLCBpZiBm
b3VuZCBpbgorICAgICAgICBQdWxzZUF1ZGlvJ3MgbG9hZGVkIG1vZHVsZXMgbGlzdC4KKyAgICAg
ICAgKEd0a0RyaXZlci5zdG9wKTogTG9hZCBpdCBiYWNrLCBpZiBpdCB3YXMgdGhlcmUgcHJldmlv
dXNseS4KKwogMjAxMi0wNC0xMCAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW1F0XVtXSzJdIFRlc3ROZXRzY2FwZVBsdWdpbiBpcyBicm9rZW4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9ndGsucHkKaW5kZXggNmZm
M2QzOGNiZmNlMmExZWJlNTdjZDBkYjgyYzc3Y2JiMzlkNGZjZS4uMTUzNmU1YTlkMGJkNTRjZGJl
M2JlZDgwYjQ4NjU5ZWIzZjEyOWMwMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9ndGsucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9ndGsucHkKQEAgLTU0LDEyICs1NCwzMSBAQCBjbGFzcyBHdGtEcml2
ZXIoV2ViS2l0RHJpdmVyKToKICAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxmLl9wb3J0LnNldHVw
X2Vudmlyb25fZm9yX3NlcnZlcihzZXJ2ZXJfbmFtZSkKICAgICAgICAgIyBXZSBtdXN0IGRvIHRo
aXMgaGVyZSBiZWNhdXNlIHRoZSBESVNQTEFZIG51bWJlciBkZXBlbmRzIG9uIF93b3JrZXJfbnVt
YmVyCiAgICAgICAgIGVudmlyb25tZW50WydESVNQTEFZJ10gPSAiOiVkIiAlIChkaXNwbGF5X2lk
KQorICAgICAgICAjIFdlIHdhbnQgdG8gdW5sb2FkIHB1bHNlYXVkaW8ncyBtb2R1bGUtc3RyZWFt
LXJlc3RvcmUsIHNpbmNlIGl0CisgICAgICAgICMgcmVtZW1iZXJzIHZvbHVtZSBzZXR0aW5ncyBm
cm9tIGRpZmZlcmVudCBydW5zLCBhbmQgY291bGQgYWZmZWN0CisgICAgICAgICMgbXVsdGltZWRp
YSB0ZXN0cyByZXN1bHRzCisgICAgICAgIGlmIHNlbGYuX3dvcmtlcl9udW1iZXIgPT0gMDoKKyAg
ICAgICAgICAgIHdpdGggb3Blbihvcy5kZXZudWxsLCAndycpIGFzIGRldm51bGw6CisgICAgICAg
ICAgICAgICAgcGFjdGxfcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWyJwYWN0bCIsICJsaXN0
IiwgInNob3J0IiwgIm1vZHVsZXMiXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPWRl
dm51bGwpCisgICAgICAgICAgICBtb2R1bGVzX2xpc3QgPSBwYWN0bF9wcm9jZXNzLmNvbW11bmlj
YXRlKClbMF0KKyAgICAgICAgICAgIHNlbGYuX21vZHVsZV9pbmRleCA9IC0xCisgICAgICAgICAg
ICBmb3IgbW9kdWxlIGluIG1vZHVsZXNfbGlzdC5zcGxpdCgnXG4nKToKKyAgICAgICAgICAgICAg
ICBpZiBtb2R1bGUuZmluZCgibW9kdWxlLXN0cmVhbS1yZXN0b3JlIikgPj0gMDoKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fbW9kdWxlX2luZGV4ID0gbW9kdWxlLnNwbGl0KCdcdCcpWzBdCisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpZiBpbnQoc2VsZi5fbW9kdWxl
X2luZGV4KSAhPSAtMToKKyAgICAgICAgICAgICAgICBzdWJwcm9jZXNzLlBvcGVuKFsicGFjdGwi
LCAidW5sb2FkLW1vZHVsZSIsIHNlbGYuX21vZHVsZV9pbmRleF0sIHN0ZG91dD1Ob25lLCBzdGRl
cnI9Tm9uZSkKICAgICAgICAgc2VsZi5fY3Jhc2hlZF9wcm9jZXNzX25hbWUgPSBOb25lCiAgICAg
ICAgIHNlbGYuX2NyYXNoZWRfcGlkID0gTm9uZQogICAgICAgICBzZWxmLl9zZXJ2ZXJfcHJvY2Vz
cyA9IFNlcnZlclByb2Nlc3Moc2VsZi5fcG9ydCwgc2VydmVyX25hbWUsIHNlbGYuY21kX2xpbmUo
cGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpLCBlbnZpcm9ubWVudCkKIAogICAgIGRlZiBzdG9w
KHNlbGYpOgogICAgICAgICBXZWJLaXREcml2ZXIuc3RvcChzZWxmKQorICAgICAgICAjIElmIHB1
bHNlYXVkaW8ncyBtb2R1bGUtc3RyZWFtLXJlc3RvcmUgd2FzIHByZXZpb3VzbHkgbG9hZGVkLCB3
ZQorICAgICAgICAjIHJlc3RvcmUgaXQgaGVyZS4KKyAgICAgICAgaWYgc2VsZi5fd29ya2VyX251
bWJlciA9PSAwIGFuZCBzZWxmLl9tb2R1bGVfaW5kZXggIT0gLTE6CisgICAgICAgICAgICB3aXRo
IG9wZW4ob3MuZGV2bnVsbCwgJ3cnKSBhcyBkZXZudWxsOgorICAgICAgICAgICAgICAgIHN1YnBy
b2Nlc3MuUG9wZW4oWyJwYWN0bCIsICJsb2FkLW1vZHVsZSIsICJtb2R1bGUtc3RyZWFtLXJlc3Rv
cmUiXSwgc3Rkb3V0PWRldm51bGwsIHN0ZGVycj1kZXZudWxsKQogICAgICAgICBpZiBnZXRhdHRy
KHNlbGYsICdfeHZmYl9wcm9jZXNzJywgTm9uZSk6CiAgICAgICAgICAgICAjIEZJWE1FOiBUaGlz
IHNob3VsZCB1c2UgRXhlY3V0aXZlLmtpbGxfcHJvY2VzcwogICAgICAgICAgICAgb3Mua2lsbChz
ZWxmLl94dmZiX3Byb2Nlc3MucGlkLCBzaWduYWwuU0lHVEVSTSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYmEyNjgxM2Qx
ZDVmOTYzZDJhM2RlNTY5OWFlOGQxNzIxNWZmYjlkLi5lMDU1OGI5M2YwZTIzZDcwNmQzNWFhNmM5
ZTA3ZGJmMjg0ZjljMTkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDQtMTAgIFNpbW9u
IFBlbmEgIDxzcGVuYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIG1lZGlhL2V2ZW50LWF0
dHJpYnV0ZXMuaHRtbCBmYWlscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzE2NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVbnNraXAgdGVzdHMgbWVkaWEvdmlkZW8tc2Vlay1wYXN0LWVuZC1wbGF5aW5n
IGFuZAorICAgICAgICBtZWRpYS9zb3VyY2VzLWZhbGxiYWNrLWNvZGVjcywgd2hpY2ggbm8gbG9u
Z2VyIGZhaWwsIGFuZAorICAgICAgICBtZWRpYS9ldmVudC1hdHRyaWJ1dGVzLCB3aGljaCBpcyBm
aXhlZCB3aXRoIHRoaXMgcGF0Y2guCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDog
VW5za2lwIG1lZGlhL3ZpZGVvLXNlZWstcGFzdC1lbmQtcGxheWluZywKKyAgICAgICAgbWVkaWEv
c291cmNlcy1mYWxsYmFjay1jb2RlY3MgYW5kIGVkaWEvZXZlbnQtYXR0cmlidXRlcworCiAyMDEy
LTA0LTEwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCBza2lwIGEgZmFpbGluZyB0ZXN0IGFuZCByZWJhc2VsaW5lIGFub3RoZXIg
b25lIGFmdGVyIHIxMTM2MTEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDc4NGI3NjNm
OWUwNzAxMWQ3MDg0NTg3Yzc3NTU0Nzg5NmJiMjRkNTkuLmZmYmY5YzRmMTE4NjJlMzkwZDMwY2Qx
Yjk2ZWNkODAwZGU3NjI4NzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC02MzgsOCAr
NjM4LDYgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jb250ZW50
dHlwZS1lbXB0eS5odG1sCiAjIFRlc3RzIGluIG1lZGlhLyBkaXJlY3RvcnkKICMgICBUZXN0cyBm
YWlsaW5nCiBtZWRpYS92aWRlby1zaXplLWludHJpbnNpYy1zY2FsZS5odG1sCi1tZWRpYS92aWRl
by1zZWVrLXBhc3QtZW5kLXBsYXlpbmcuaHRtbAotbWVkaWEvc291cmNlcy1mYWxsYmFjay1jb2Rl
Y3MuaHRtbAogCiAjIFRlc3RzIGluIHBsdWdpbnMvIGRpcmVjdG9yeQogIyAgIFRlc3RzIGZhaWxp
bmcsIG5lZWQgdG8gaW1wbGVtZW50IE5QUF9IYW5kbGVFdmVudCgpIGluIFRlc3ROZXRzY2FwZVBs
dWdpbgpAQCAtMTE2Niw5ICsxMTY0LDYgQEAgZmFzdC9jYW52YXMvcmdiYS1wYXJzaW5nLmh0bWwK
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNDQxCiBtZWRpYS9j
b250cm9scy1kcmFnLXRpbWViYXIuaHRtbAogCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTY2MgotbWVkaWEvZXZlbnQtYXR0cmlidXRlcy5odG1sCi0KICMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNzQwCiBlZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136654</attachid>
            <date>2012-04-11 03:49:03 -0700</date>
            <delta_ts>2012-04-11 04:58:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71662-20120411124901.patch</filename>
            <type>text/plain</type>
            <size>9453</size>
            <attacher name="Simon Pena">spena</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzNzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAzYzQ2ZDI3YzEzZWMx
YmYxNzEwNzY0ZjYyMjgwNDc5MjFlYTJkNS4uNTQ3M2U0YjU1Zjc4NTZkNmJkODg0MmU1M2NhYTA0
NWU5ODNhOTE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA0LTExICBTaW1v
biBQZW5hICA8c3BlbmFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBtZWRpYS9ldmVudC1h
dHRyaWJ1dGVzLmh0bWwgZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcxNjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRFbmQsIHdoZW4g
RU9TIGlzIHJlYWNoZWQsIGRvbid0CisgICAgICAgIHN5bmNocm9uaXplIHBvc2l0aW9uIGFuZCBk
dXJhdGlvbiBvbiByZWd1bGFyIHBsYXliYWNrLiBUaGF0IGlzOgorICAgICAgICBzeW5jaHJvbml6
ZSBpdCAoYW5kIGZpcmUgdGhlIGR1cmF0aW9uQ2hhbmdlIHNpZ25hbCkgb25seSBvbiByZXZlcnNl
CisgICAgICAgIHBsYXliYWNrLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIG1lZGlhL2V2
ZW50LWF0dHJpYnV0ZXMuaHRtbCBwYXNzLiBJdCB3YXMKKyAgICAgICAgcHJldmlvdXNseSBmYWls
aW5nIGJlY2F1c2UgYW4gYWRkaXRpb25hbCBkdXJhdGlvbkNoYW5nZSBzaWduYWwgd2FzCisgICAg
ICAgIGVtaXR0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDogQXZvaWQKKyAgICAgICAgc2VuZGluZyBkdXJh
dGlvbkNoYW5nZSBzaWduYWwgb24gcmVndWxhciBwbGF5YmFjay4KKwogMjAxMi0wNC0wOSAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBzZWFyY2hpbmcgZG9jdW1lbnQgd2l0aCBubyBkb2N1bWVudEVsZW1lbnQgcmVzdWx0cyBp
biAweDAgYWNjZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAppbmRleCA2YTY0M2M4ZDEyZTBmNDExZmUzZDkwZTIyMDY5M2Y0ODgzYWVmMzkyLi5l
YTQ5ZDBlMTc5NGY2NDIxZWE0NmVkYTk3M2Q5YmU0MDRjYTk2NWNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTM2NiwxMCArMTM2Niwx
MCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dGltZUNoYW5nZWQoKQogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZEVuZCgpCiB7CiAgICAgLy8gRU9TIHdh
cyByZWFjaGVkIGJ1dCBpbiBjYXNlIG9mIHJldmVyc2UgcGxheWJhY2sgdGhlIHBvc2l0aW9uIGlz
Ci0gICAgLy8gbm90IGFsd2F5cyAwLiBTbyB0byBub3QgY29uZnVzZSB0aGUgSFRNTE1lZGlhRWxl
bWVudCB3ZQotICAgIC8vIHN5bmNocm9uaXplIHBvc2l0aW9uIGFuZCBkdXJhdGlvbiB2YWx1ZXMu
CisgICAgLy8gbm90IGFsd2F5cyAwLiBTbyB0byBub3QgY29uZnVzZSB0aGUgSFRNTE1lZGlhRWxl
bWVudCwgaWYgd2UncmUKKyAgICAvLyBkb2luZyByZXZlcnNlIHBsYXliYWNrLCB3ZSBzeW5jaHJv
bml6ZSBwb3NpdGlvbiBhbmQgZHVyYXRpb24gdmFsdWVzLgogICAgIGZsb2F0IG5vdyA9IGN1cnJl
bnRUaW1lKCk7Ci0gICAgaWYgKG5vdyA+IDApIHsKKyAgICBpZiAobm93ID4gMCAmJiBtX3BsYXli
YWNrUmF0ZSA8IDApIHsKICAgICAgICAgbV9tZWRpYUR1cmF0aW9uID0gbm93OwogICAgICAgICBt
X21lZGlhRHVyYXRpb25Lbm93biA9IHRydWU7CiAgICAgICAgIG1fcGxheWVyLT5kdXJhdGlvbkNo
YW5nZWQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBmMDBkN2Q4YTMwNThkYTE5ZDdkZmY0NjcyYjFlMWRiOWU4ZTE0ODEzLi40MWU0MDNmOWJh
YzhkNzFkZGI0OWUzYTAwYjI5OWRjYzEyYWNhM2ZlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTItMDQtMTEgIFNp
bW9uIFBlbmEgIDxzcGVuYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIG1lZGlhL2V2ZW50
LWF0dHJpYnV0ZXMuaHRtbCBmYWlscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzE2NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQdWxzZUF1ZGlvJ3MgbW9kdWxlICJtb2R1bGUtc3RyZWFtLXJlc3RvcmUi
IGFsbG93cyBzYXZpbmcgdGhlIHZvbHVtZQorICAgICAgICBvZiBhIHN0cmVhbSwgcmVzdG9yaW5n
IGl0IHRoZSBuZXh0IHRpbWUgaXQgcnVucy4KKyAgICAgICAgVGhpcyBhZmZlY3RzIHRoZSB0ZXN0
cywgc2luY2UgRHVtcFJlbmRlclRyZWUncyB2b2x1bWUgc2V0dGluZ3MgYXJlCisgICAgICAgIHNh
dmVkIGJldHdlZW4gdGVzdCBydW5zLCBhbmQgdGVzdHMgcmVseWluZyBvbiBzcGVjaWZpYyB2b2x1
bWUgdmFsdWVzCisgICAgICAgIHdvdWxkIG1pc3Mgc29tZSB2b2x1bWVDaGFuZ2UgZXZlbnRzIChv
ciBnZXQgYWRkaXRpb25hbCBvbmVzKS4KKworICAgICAgICBUaGlzIHBhdGNoIGhvb2tzIG9uIHRo
ZSBleGlzdGluZyBHdGtQb3J0IHNldHVwX3Rlc3RfcnVuIG1ldGhvZCBhbmQKKyAgICAgICAgY3Jl
YXRlcyBhIG5ldyBjbGVhbl91cF90ZXN0X3J1biBtZXRob2QsIHNvIFB1bHNlQXVkaW8ncyBtb2R1
bGUgaXMKKyAgICAgICAgdW5sb2FkZWQgKGlmIGZvdW5kKSBiZWZvcmUgcnVubmluZyB0aGUgdGVz
dHMsIGFuZCByZXN0b3JlZCAoaWYgaXQKKyAgICAgICAgd2FzIHRoZXJlIHByZXZpb3VzbHkpIGFm
dGVyIHRoZXkgZmluaXNoZWQsIGVuc3VyaW5nIHRoZSB0ZXN0cyBydW4gaW4KKyAgICAgICAgdGhl
IHJpZ2h0IGVudmlyb25tZW50LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKE1hbmFnZXIuX2NsZWFuX3Vw
X3J1bik6IEludm9rZSB0aGUgcG9ydCBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAgICBjbGVhbl91
cF90ZXN0X3J1bi4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Jhc2UucHk6CisgICAgICAgIChQb3J0LmNsZWFuX3VwX3Rlc3RfcnVuKTogQWRkIGFuIGVtcHR5
IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIGNsZWFuX3VwX3Rlc3RfcnVuLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrLnB5OgorICAgICAgICAoR3Rr
UG9ydC5fdW5sb2FkX3B1bHNlYXVkaW9fbW9kdWxlKTogVW5sb2FkcyB0aGUgb2ZmZW5kaW5nCisg
ICAgICAgIHB1bHNlYXVkaW8gbW9kdWxlLCBpZiBmb3VuZC4KKyAgICAgICAgKEd0a1BvcnQpOgor
ICAgICAgICAoR3RrUG9ydC5fcmVzdG9yZV9wdWxzZWF1ZGlvX21vZHVsZSk6IFJlc3RvcmVzIHRo
ZSBvZmZlbmRpbmcKKyAgICAgICAgcHVsc2VhdWRpbyBtb2R1bGUsIGlmIGl0IHdhcyB0aGVyZSBw
cmV2aW91c2x5LgorICAgICAgICAoR3RrUG9ydC5zZXR1cF90ZXN0X3J1bik6IENhbGxzIF91bmxv
YWRfcHVsc2VhdWRpb19tb2R1bGUuCisgICAgICAgIChHdGtQb3J0LmNsZWFuX3VwX3Rlc3RfcnVu
KTogQ2FsbHMgX3Jlc3RvcmVfcHVsc2VhdWRpb19tb2R1bGUuCisKIDIwMTItMDQtMTAgIEJhbGF6
cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBUZXN0
TmV0c2NhcGVQbHVnaW4gaXMgYnJva2VuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQppbmRleCA1NmQ0Mjgz
NmNlY2ZjNzBhZmY5NWViYTdhMzQ5YjY2Y2MyMDdmNjdlLi4xMzYwNDQyZWU1MmJkZGUwODAxMDNl
MGI0OWJjMjc2OGQ2NDg3ODVkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKQEAgLTk3MCw2ICs5NzAs
OCBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHN5cy5zdGRlcnIuZmx1c2goKQog
ICAgICAgICBfbG9nLmRlYnVnKCJzdG9wcGluZyBoZWxwZXIiKQogICAgICAgICBzZWxmLl9wb3J0
LnN0b3BfaGVscGVyKCkKKyAgICAgICAgX2xvZy5kZWJ1ZygiY2xlYW5pbmcgdXAgcG9ydCIpCisg
ICAgICAgIHNlbGYuX3BvcnQuY2xlYW5fdXBfdGVzdF9ydW4oKQogCiAgICAgZGVmIHVwZGF0ZV9z
dW1tYXJ5KHNlbGYsIHJlc3VsdF9zdW1tYXJ5KToKICAgICAgICAgIiIiVXBkYXRlIHRoZSBzdW1t
YXJ5IGFuZCBwcmludCByZXN1bHRzIHdpdGggYW55IGNvbXBsZXRlZCB0ZXN0cy4iIiIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQppbmRleCBm
YTRmYTcxMGNlMmYwMTE4OGFmZDAzNTY5MjIwODAzYzJkM2UxOTFjLi5mOTQwYTEwMzY5NGQwNjUz
YWE1MTc2YTVkNDI4ZDZmNzI3MGMxYjYxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CkBAIC03MjgsNiArNzI4LDEwIEBAIGNsYXNzIFBv
cnQob2JqZWN0KToKICAgICAgICAgIiIiUGVyZm9ybSBwb3J0LXNwZWNpZmljIHdvcmsgYXQgdGhl
IGJlZ2lubmluZyBvZiBhIHRlc3QgcnVuLiIiIgogICAgICAgICBwYXNzCiAKKyAgICBkZWYgY2xl
YW5fdXBfdGVzdF9ydW4oc2VsZik6CisgICAgICAgICIiIlBlcmZvcm0gcG9ydC1zcGVjaWZpYyB3
b3JrIGF0IHRoZSBlbmQgb2YgYSB0ZXN0IHJ1bi4iIiIKKyAgICAgICAgcGFzcworCiAgICAgIyBG
SVhNRTogb3MuZW52aXJvbiBhY2Nlc3Mgc2hvdWxkIGJlIG1vdmVkIHRvIG9udG8gYSBjb21tb24v
c3lzdGVtIGNsYXNzIHRvIGJlIG1vcmUgZWFzaWx5IG1vY2thYmxlLgogICAgIGRlZiBfdmFsdWVf
b3JfZGVmYXVsdF9mcm9tX2Vudmlyb24oc2VsZiwgbmFtZSwgZGVmYXVsdD1Ob25lKToKICAgICAg
ICAgaWYgbmFtZSBpbiBvcy5lbnZpcm9uOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9ndGsucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2d0ay5weQppbmRleCA2ZmYzZDM4Y2JmY2UyYTFlYmU1N2NkMGRiODJj
NzdjYmIzOWQ0ZmNlLi5kYTEwOGQwZDRkNDhlMWYwMWIyZWUxNDQ3N2EzMDk4OTMzY2M4OTBhIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2d0ay5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2d0ay5weQpA
QCAtNzYsNiArNzYsMzQgQEAgY2xhc3MgR3RrUG9ydChXZWJLaXRQb3J0KToKICAgICBkZWYgX2Ry
aXZlcl9jbGFzcyhzZWxmKToKICAgICAgICAgcmV0dXJuIEd0a0RyaXZlcgogCisgICAgZGVmIF91
bmxvYWRfcHVsc2VhdWRpb19tb2R1bGUoc2VsZik6CisgICAgICAgICMgVW5sb2FkIHB1bHNlYXVk
aW8ncyBtb2R1bGUtc3RyZWFtLXJlc3RvcmUsIHNpbmNlIGl0IHJlbWVtYmVycworICAgICAgICAj
IHZvbHVtZSBzZXR0aW5ncyBmcm9tIGRpZmZlcmVudCBydW5zLCBhbmQgY291bGQgYWZmZWN0Cisg
ICAgICAgICMgbXVsdGltZWRpYSB0ZXN0cyByZXN1bHRzCisgICAgICAgIHdpdGggb3Blbihvcy5k
ZXZudWxsLCAndycpIGFzIGRldm51bGw6CisgICAgICAgICAgICBwYWN0bF9wcm9jZXNzID0gc3Vi
cHJvY2Vzcy5Qb3BlbihbInBhY3RsIiwgImxpc3QiLCAic2hvcnQiLCAibW9kdWxlcyJdLCBzdGRv
dXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9ZGV2bnVsbCkKKyAgICAgICAgbW9kdWxlc19saXN0
ID0gcGFjdGxfcHJvY2Vzcy5jb21tdW5pY2F0ZSgpWzBdCisgICAgICAgIHNlbGYuX3BhX21vZHVs
ZV9pbmRleCA9IC0xCisgICAgICAgIGZvciBtb2R1bGUgaW4gbW9kdWxlc19saXN0LnNwbGl0bGlu
ZXMoKToKKyAgICAgICAgICAgIGlmIG1vZHVsZS5maW5kKCJtb2R1bGUtc3RyZWFtLXJlc3RvcmUi
KSA+PSAwOgorICAgICAgICAgICAgICAgIHNlbGYuX3BhX21vZHVsZV9pbmRleCA9IG1vZHVsZS5z
cGxpdCgnXHQnKVswXQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGlmIGludChzZWxm
Ll9wYV9tb2R1bGVfaW5kZXgpICE9IC0xOgorICAgICAgICAgICAgc3VicHJvY2Vzcy5Qb3Blbihb
InBhY3RsIiwgInVubG9hZC1tb2R1bGUiLCBzZWxmLl9wYV9tb2R1bGVfaW5kZXhdKQorCisgICAg
ZGVmIF9yZXN0b3JlX3B1bHNlYXVkaW9fbW9kdWxlKHNlbGYpOgorICAgICAgICAjIElmIHB1bHNl
YXVkaW8ncyBtb2R1bGUtc3RyZWFtLXJlc3RvcmUgd2FzIHByZXZpb3VzbHkgdW5sb2FkZWQsCisg
ICAgICAgICMgcmVzdG9yZSBpdCBiYWNrLgorICAgICAgICBpZiBzZWxmLl9wYV9tb2R1bGVfaW5k
ZXggIT0gLTE6CisgICAgICAgICAgICB3aXRoIG9wZW4ob3MuZGV2bnVsbCwgJ3cnKSBhcyBkZXZu
dWxsOgorICAgICAgICAgICAgICAgIHN1YnByb2Nlc3MuUG9wZW4oWyJwYWN0bCIsICJsb2FkLW1v
ZHVsZSIsICJtb2R1bGUtc3RyZWFtLXJlc3RvcmUiXSwgc3Rkb3V0PWRldm51bGwsIHN0ZGVycj1k
ZXZudWxsKQorCisgICAgZGVmIHNldHVwX3Rlc3RfcnVuKHNlbGYpOgorICAgICAgICBzZWxmLl91
bmxvYWRfcHVsc2VhdWRpb19tb2R1bGUoKQorCisgICAgZGVmIGNsZWFuX3VwX3Rlc3RfcnVuKHNl
bGYpOgorICAgICAgICBzZWxmLl9yZXN0b3JlX3B1bHNlYXVkaW9fbW9kdWxlKCkKKwogICAgIGRl
ZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZiwgc2VydmVyX25hbWU9Tm9uZSk6CiAgICAg
ICAgIGVudmlyb25tZW50ID0gV2ViS2l0UG9ydC5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2Vs
Ziwgc2VydmVyX25hbWUpCiAgICAgICAgIGVudmlyb25tZW50WydHVEtfTU9EVUxFUyddID0gJ2dh
aWwnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZmJhMjY4MTNkMWQ1Zjk2M2QyYTNkZTU2OTlhZThkMTcyMTVmZmI5ZC4uNGIw
NTcxMWZjYzg4MTg3MTUyOWJlMWU2N2M2ZTdjODRkMTZiZjUzOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDEyLTA0LTExICBTaW1vbiBQZW5hICA8c3BlbmFAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1RLXSBtZWRpYS9ldmVudC1hdHRyaWJ1dGVzLmh0bWwgZmFpbHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNjYyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5za2lwIHRlc3RzIG1lZGlhL3ZpZGVv
LXNlZWstcGFzdC1lbmQtcGxheWluZyBhbmQKKyAgICAgICAgbWVkaWEvc291cmNlcy1mYWxsYmFj
ay1jb2RlY3MsIHdoaWNoIG5vIGxvbmdlciBmYWlsLCBhbmQKKyAgICAgICAgbWVkaWEvZXZlbnQt
YXR0cmlidXRlcywgd2hpY2ggaXMgZml4ZWQgd2l0aCB0aGlzIHBhdGNoLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1NraXBwZWQ6IFVuc2tpcCBtZWRpYS92aWRlby1zZWVrLXBhc3QtZW5kLXBs
YXlpbmcsCisgICAgICAgIG1lZGlhL3NvdXJjZXMtZmFsbGJhY2stY29kZWNzIGFuZCBtZWRpYS9l
dmVudC1hdHRyaWJ1dGVzCisKIDIwMTItMDQtMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFu
ZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAgYSBmYWlsaW5nIHRlc3Qg
YW5kIHJlYmFzZWxpbmUgYW5vdGhlciBvbmUgYWZ0ZXIgcjExMzYxMS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQKaW5kZXggNzg0Yjc2M2Y5ZTA3MDExZDcwODQ1ODdjNzc1NTQ3ODk2YmIyNGQ1OS4u
ZmZiZjljNGYxMTg2MmUzOTBkMzBjZDFiOTZlY2Q4MDBkZTc2Mjg3OCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQKQEAgLTYzOCw4ICs2MzgsNiBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3htbGh0dHByZXF1ZXN0LWNvbnRlbnR0eXBlLWVtcHR5Lmh0bWwKICMgVGVzdHMgaW4gbWVkaWEv
IGRpcmVjdG9yeQogIyAgIFRlc3RzIGZhaWxpbmcKIG1lZGlhL3ZpZGVvLXNpemUtaW50cmluc2lj
LXNjYWxlLmh0bWwKLW1lZGlhL3ZpZGVvLXNlZWstcGFzdC1lbmQtcGxheWluZy5odG1sCi1tZWRp
YS9zb3VyY2VzLWZhbGxiYWNrLWNvZGVjcy5odG1sCiAKICMgVGVzdHMgaW4gcGx1Z2lucy8gZGly
ZWN0b3J5CiAjICAgVGVzdHMgZmFpbGluZywgbmVlZCB0byBpbXBsZW1lbnQgTlBQX0hhbmRsZUV2
ZW50KCkgaW4gVGVzdE5ldHNjYXBlUGx1Z2luCkBAIC0xMTY2LDkgKzExNjQsNiBAQCBmYXN0L2Nh
bnZhcy9yZ2JhLXBhcnNpbmcuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTA0NDEKIG1lZGlhL2NvbnRyb2xzLWRyYWctdGltZWJhci5odG1sCiAKLSMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNjYyCi1tZWRpYS9ldmVudC1h
dHRyaWJ1dGVzLmh0bWwKLQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTA3NDAKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGlu
ZXMuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwK
</data>

          </attachment>
      

    </bug>

</bugzilla>