<?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>28220</bug_id>
          
          <creation_ts>2009-08-12 11:27:53 -0700</creation_ts>
          <short_desc>Layout tests shouldn&apos;t have to hard code media controller element locations</short_desc>
          <delta_ts>2011-05-06 02:15:04 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>60034</dependson>
          <blocked>28221</blocked>
    
    <blocked>60055</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>abarth</cc>
    
    <cc>alex</cc>
    
    <cc>eric</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>139445</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-08-12 11:27:53 -0700</bug_when>
    <thetext>A number of media layout tests simulate clicks in the controller. These tests have to change every time we change the controller layout and we now have different layouts on different platforms, so we should have a way for tests to query the location of each element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397030</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-03 03:44:18 -0700</bug_when>
    <thetext>*** Bug 30680 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397031</commentid>
    <comment_count>2</comment_count>
      <attachid>92058</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-03 03:48:01 -0700</bug_when>
    <thetext>Created attachment 92058
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397104</commentid>
    <comment_count>3</comment_count>
      <attachid>92058</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-05-03 08:57:00 -0700</bug_when>
    <thetext>Comment on attachment 92058
proposed patch

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

Did you mean to flag this for review?

&gt; LayoutTests/media/video-controls-zoomed.html:28
&gt; +            // Find the play button and click the middle of its bounding box.
&gt; +            var playCoords = mediaControlsButtonCoordinates(video, &quot;play&quot;);
&gt; +            var clickX = playCoords[0];
&gt; +            var clickY = playCoords[1];
&gt; +            clickX = clickX * 1.5;
&gt; +            clickY = clickY * 1.5;
&gt; +            eventSender.mouseMoveTo(clickX, clickY);

Why can&apos;t you use the coordinates returned from mediaControlsButtonCoordinates() directly?

&gt; LayoutTests/media/video-test.js:252
&gt; +    if (!button) {
&gt; +        failTest(&quot;Failed to find &quot; + id + &quot; button.&quot;);
&gt; +    }

You don&apos;t need the braces here.

&gt; LayoutTests/media/video-test.js:260
&gt; +    var result = new Array();
&gt; +    result[0] = x;
&gt; +    result[1] = y;
&gt; +    return result;

You could use &quot;return new Array(x, y)&quot; to shorten this up slightly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397119</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-03 09:24:25 -0700</bug_when>
    <thetext>Thanks for the review Eric. I unmarked it previously because the bug this one depends on needs more work actually.

(In reply to comment #3)
&gt; (From update of attachment 92058 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=92058&amp;action=review
&gt; 
&gt; Did you mean to flag this for review?
&gt; 
&gt; &gt; LayoutTests/media/video-controls-zoomed.html:28
&gt; &gt; +            // Find the play button and click the middle of its bounding box.
&gt; &gt; +            var playCoords = mediaControlsButtonCoordinates(video, &quot;play&quot;);
&gt; &gt; +            var clickX = playCoords[0];
&gt; &gt; +            var clickY = playCoords[1];
&gt; &gt; +            clickX = clickX * 1.5;
&gt; &gt; +            clickY = clickY * 1.5;
&gt; &gt; +            eventSender.mouseMoveTo(clickX, clickY);
&gt; 
&gt; Why can&apos;t you use the coordinates returned from mediaControlsButtonCoordinates() directly?
&gt; 

Without this the test failed on GTK. Could it be a bug in the port then? I thought applying the zoom to the coordinates here would be ok.

&gt; &gt; LayoutTests/media/video-test.js:252
&gt; &gt; +    if (!button) {
&gt; &gt; +        failTest(&quot;Failed to find &quot; + id + &quot; button.&quot;);
&gt; &gt; +    }
&gt; 
&gt; You don&apos;t need the braces here.
&gt; 
&gt; &gt; LayoutTests/media/video-test.js:260
&gt; &gt; +    var result = new Array();
&gt; &gt; +    result[0] = x;
&gt; &gt; +    result[1] = y;
&gt; &gt; +    return result;
&gt; 
&gt; You could use &quot;return new Array(x, y)&quot; to shorten this up slightly.

Right, will do for next iteration!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397125</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-05-03 09:32:42 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; &gt; LayoutTests/media/video-controls-zoomed.html:28
&gt; &gt; &gt; +            // Find the play button and click the middle of its bounding box.
&gt; &gt; &gt; +            var playCoords = mediaControlsButtonCoordinates(video, &quot;play&quot;);
&gt; &gt; &gt; +            var clickX = playCoords[0];
&gt; &gt; &gt; +            var clickY = playCoords[1];
&gt; &gt; &gt; +            clickX = clickX * 1.5;
&gt; &gt; &gt; +            clickY = clickY * 1.5;
&gt; &gt; &gt; +            eventSender.mouseMoveTo(clickX, clickY);
&gt; &gt; 
&gt; &gt; Why can&apos;t you use the coordinates returned from mediaControlsButtonCoordinates() directly?
&gt; &gt; 
&gt; 
&gt; Without this the test failed on GTK. Could it be a bug in the port then? I thought applying the zoom to the coordinates here would be ok.
&gt; 

  Oh, I guess it make sense that the coordinates returned are untransformed. A comment in the test explaining why you are transforming them here would be helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398677</commentid>
    <comment_count>6</comment_count>
      <attachid>92405</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-05 05:53:03 -0700</bug_when>
    <thetext>Created attachment 92405
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398680</commentid>
    <comment_count>7</comment_count>
      <attachid>92407</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-05 06:03:19 -0700</bug_when>
    <thetext>Created attachment 92407
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398681</commentid>
    <comment_count>8</comment_count>
      <attachid>92408</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-05 06:06:18 -0700</bug_when>
    <thetext>Created attachment 92408
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398728</commentid>
    <comment_count>9</comment_count>
      <attachid>92408</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-05 08:30:15 -0700</bug_when>
    <thetext>Comment on attachment 92408
proposed patch

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

Excellent work!

&gt; LayoutTests/media/video-test.js:248
&gt; +    var button;
&gt; +    var controlsShadow = layoutTestController.shadowRoot(element).firstChild.firstChild;
&gt; +    for (child = controlsShadow.firstChild; child; child = child.nextSibling) {
&gt; +        if (layoutTestController.shadowPseudoId(child) == &quot;-webkit-media-controls-&quot; + id) {
&gt; +            button = child;
&gt; +            break;
&gt; +        }
&gt; +    }

It&apos;s not possible to do something like getElementById on the shadow root?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398739</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-05 08:46:44 -0700</bug_when>
    <thetext>I can land this after patch for bug 60034 is in the tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399408</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-06 01:02:21 -0700</bug_when>
    <thetext>Committed r85934: &lt;http://trac.webkit.org/changeset/85934&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399437</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-06 01:59:12 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/85934 might have broken Windows 7 Release (Tests)
The following tests are not passing:
media/video-controls-visible-audio-only.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399439</commentid>
    <comment_count>13</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-06 02:15:04 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; http://trac.webkit.org/changeset/85934 might have broken Windows 7 Release (Tests)
&gt; The following tests are not passing:
&gt; media/video-controls-visible-audio-only.html

See bug 59081
Will skip this test on win.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92058</attachid>
            <date>2011-05-03 03:48:01 -0700</date>
            <delta_ts>2011-05-05 05:53:03 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>7592</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAxZmQ4Y2I3NDI1YzQ2ZjI4NzM2NmRlNDk0MDQzMWY4ZmExMGU0OTA4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDMgTWF5IDIwMTEgMTI6NDk6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMjAgKysrKysrKysrKysrKysrKwogLi4uL2F1ZGlvLWRlbGV0ZS13
aGlsZS1zdGVwLWJ1dHRvbi1jbGlja2VkLmh0bWwgICAgfCAgICA5ICsrKy0tLS0KIExheW91dFRl
c3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXRyYW5zZm9ybWVkLmh0bWwgIHwgICAxOCArKy0tLS0t
LS0tLS0tLQogTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtem9vbWVkLmh0bWwgICAg
ICAgfCAgIDE3ICsrKysrKysrKystLS0KIExheW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMg
ICAgICAgICAgICAgICAgICAgIHwgICAyNCArKysrKysrKysrKysrKysrKysrKwogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICA0IC0tLQogNiBm
aWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ODk1ZTFlNC4uOTlhYWFlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMiw2ICsyLDI2IEBACiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAgICAgICAgTGF5b3V0IHRlc3RzIHNob3VsZG4ndCBo
YXZlIHRvIGhhcmQgY29kZSBtZWRpYSBjb250cm9sbGVyIGVsZW1lbnQgbG9jYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODIyMAorCisgICAg
ICAgIE5ldyBtZWRpYUNvbnRyb2xzQnV0dG9uQ29vcmRpbmF0ZXMoKSBmdW5jdGlvbiB0byBnZXQg
dGhlIG1pZGRsZQorICAgICAgICBjb29yZGluYXRlcyBvZiBhIG1lZGlhIGNvbnRyb2xzIGJ1dHRv
bi4gVGhpcyBhdm9pZHMgaGFyZGNvZGluZworICAgICAgICBwb3NpdGlvbnMgaW4gdGhlIHRlc3Rz
LgorCisgICAgICAgIEFsc28gdW5za2lwcGVkIHRoZSBhZmZlY3RlZCBHVEsgbWVkaWEgdGVzdHMg
bm93IHBhc3NpbmcuCisKKyAgICAgICAgKiBtZWRpYS9hdWRpby1kZWxldGUtd2hpbGUtc3RlcC1i
dXR0b24tY2xpY2tlZC5odG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLXRyYW5z
Zm9ybWVkLmh0bWw6CisgICAgICAgICogbWVkaWEvdmlkZW8tY29udHJvbHMtem9vbWVkLmh0bWw6
CisgICAgICAgICogbWVkaWEvdmlkZW8tdGVzdC5qczoKKyAgICAgICAgKG1lZGlhQ29udHJvbHNC
dXR0b25Db29yZGluYXRlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisKKzIw
MTEtMDUtMDMgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIEV4cG9zZSBzaGFkb3dQ
c2V1ZG9JZCBwcm9wZXJ0eSB0byBzY3JpcHQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU4NTg0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L2F1ZGlvLWRlbGV0ZS13aGlsZS1zdGVwLWJ1dHRvbi1jbGlja2VkLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9hdWRpby1kZWxldGUtd2hpbGUtc3RlcC1idXR0b24tY2xpY2tlZC5odG1sCmluZGV4
IGQwODdkNWMuLjU5MTNhYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLWRl
bGV0ZS13aGlsZS1zdGVwLWJ1dHRvbi1jbGlja2VkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvYXVkaW8tZGVsZXRlLXdoaWxlLXN0ZXAtYnV0dG9uLWNsaWNrZWQuaHRtbApAQCAtMiw2ICsy
LDcgQEAKIDxodG1sPgogICAgIDxoZWFkPgogICAgICAgICA8c2NyaXB0IHNyYz1tZWRpYS1maWxl
LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0
PgogICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewogICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKQEAgLTUwLDExICs1MSw5IEBACiAKICAgICAgICAgICAgICAgICB2YXIgYXVkaW8gPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXVkaW8nKTsKIAotICAgICAgICAgICAgICAgIHZhciBy
aWdodCA9IGF1ZGlvLm9mZnNldExlZnQgKyBhdWRpby5vZmZzZXRXaWR0aDsKLSAgICAgICAgICAg
ICAgICB2YXIgYm90dG9tID0gYXVkaW8ub2Zmc2V0VG9wICsgYXVkaW8ub2Zmc2V0SGVpZ2h0Owot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHZhciB4ID0gcmlnaHQgLSA4OwotICAg
ICAgICAgICAgICAgIHZhciB5ID0gYm90dG9tIC0gODsKKyAgICAgICAgICAgICAgICB2YXIgc2Vl
a0Nvb3JkcyA9IG1lZGlhQ29udHJvbHNCdXR0b25Db29yZGluYXRlcyhhdWRpbywgInNlZWstZm9y
d2FyZCIpOworICAgICAgICAgICAgICAgIHZhciB4ID0gc2Vla0Nvb3Jkc1swXTsKKyAgICAgICAg
ICAgICAgICB2YXIgeSA9IHNlZWtDb29yZHNbMV07CiAKICAgICAgICAgICAgICAgICAvLyBzdGVw
IGZvcndhcmQsIHNob3VsZCBnZW5lcmF0ZSBhIHRpbWV1cGRhdGUgZXZlbnQKICAgICAgICAgICAg
ICAgICBsb2coImNsaWNraW5nIHN0ZXAgZm9yd2FyZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvdmlkZW8tY29udHJvbHMtdHJhbnNmb3JtZWQuaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLWNvbnRyb2xzLXRyYW5zZm9ybWVkLmh0bWwKaW5kZXggOGQ5OWIyYS4uNzI5ZmZl
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtdHJhbnNmb3Jt
ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy10cmFuc2Zvcm1l
ZC5odG1sCkBAIC0xOSwyMSArMTksOSBAQAogICAgICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBsYXl0
aHJvdWdoJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRl
cikgewogICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIHBsYXkgYnV0dG9uIGFuZCBjbGljayB0
aGUgbWlkZGxlIG9mIGl0cyBib3VuZGluZyBib3guCi0gICAgICAgICAgICAgICAgdmFyIHBsYXlC
dXR0b247Ci0gICAgICAgICAgICAgICAgdmFyIGNvbnRyb2xzU2hhZG93ID0gbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2hhZG93Um9vdCh2aWRlbykuZmlyc3RDaGlsZC5maXJzdENoaWxkOwotICAgICAg
ICAgICAgICAgIGZvciAoY2hpbGQgPSBjb250cm9sc1NoYWRvdy5maXJzdENoaWxkOyBjaGlsZDsg
Y2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykgewotICAgICAgICAgICAgICAgICAgICAgaWYgKGNo
aWxkLnNoYWRvd1BzZXVkb0lkID09ICItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9u
IikgewotICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlCdXR0b24gPSBjaGlsZDsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAoIXBsYXlCdXR0b24pIHsKLSAgICAg
ICAgICAgICAgICAgICAgZmFpbFRlc3QoIkZhaWxlZCB0byBmaW5kIHBsYXkvcGF1c2UgYnV0dG9u
LiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB2YXIgcGxheUJ1dHRvbkJv
dW5kaW5nUmVjdCA9IHBsYXlCdXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAg
ICAgICAgICAgdmFyIGNsaWNrWCA9IHBsYXlCdXR0b25Cb3VuZGluZ1JlY3QubGVmdCArIHBsYXlC
dXR0b25Cb3VuZGluZ1JlY3Qud2lkdGggLyAyOwotICAgICAgICAgICAgICAgIHZhciBjbGlja1kg
PSBwbGF5QnV0dG9uQm91bmRpbmdSZWN0LnRvcCArIHBsYXlCdXR0b25Cb3VuZGluZ1JlY3QuaGVp
Z2h0IC8gMjsKKyAgICAgICAgICAgICAgICB2YXIgcGxheUNvb3JkcyA9IG1lZGlhQ29udHJvbHNC
dXR0b25Db29yZGluYXRlcyh2aWRlbywgInBsYXkiKTsKKyAgICAgICAgICAgICAgICB2YXIgY2xp
Y2tYID0gcGxheUNvb3Jkc1swXTsKKyAgICAgICAgICAgICAgICB2YXIgY2xpY2tZID0gcGxheUNv
b3Jkc1sxXTsKICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjbGlja1gs
IGNsaWNrWSk7CiAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CiAgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvdmlkZW8tY29udHJvbHMtem9vbWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby1jb250cm9scy16b29tZWQuaHRtbAppbmRleCA1MzI1MjQ4Li5mMWE2OGU5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy16b29tZWQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy16b29tZWQuaHRtbApAQCAtMTIsMTQgKzEy
LDIzIEBACiAgICAgewogICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAg
ICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS56b29tID0gJzE1MCUnOwotICAgICAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSAKKyAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5l
cigicGxheWluZyIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRl
by5wYXVzZWQiLCBmYWxzZSk7CisgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgIH0pOwor
CisgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEyMCw0MzIpOyAvLyBvdmVyIHBsYXkgYnV0dG9uCisg
ICAgICAgICAgICAvLyBGaW5kIHRoZSBwbGF5IGJ1dHRvbiBhbmQgY2xpY2sgdGhlIG1pZGRsZSBv
ZiBpdHMgYm91bmRpbmcgYm94LgorICAgICAgICAgICAgdmFyIHBsYXlDb29yZHMgPSBtZWRpYUNv
bnRyb2xzQnV0dG9uQ29vcmRpbmF0ZXModmlkZW8sICJwbGF5Iik7CisgICAgICAgICAgICB2YXIg
Y2xpY2tYID0gcGxheUNvb3Jkc1swXTsKKyAgICAgICAgICAgIHZhciBjbGlja1kgPSBwbGF5Q29v
cmRzWzFdOworICAgICAgICAgICAgY2xpY2tYID0gY2xpY2tYICogMS41OworICAgICAgICAgICAg
Y2xpY2tZID0gY2xpY2tZICogMS41OworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oY2xpY2tYLCBjbGlja1kpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7
CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgICAgIH0KLSAgICAgICAg
dGVzdEV4cGVjdGVkKCJ2aWRlby5wYXVzZWQiLCBmYWxzZSk7Ci0gICAgICAgIGVuZFRlc3QoKTsK
ICAgICAgIH0sIDUwKTsKICAgICB9CiAgIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvdmlkZW8tdGVzdC5qcyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMK
aW5kZXggNDAxZjJjZi4uOTkxNjRjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzCkBAIC0yMzUs
MyArMjM1LDI3IEBAIGZ1bmN0aW9uIGlzSW5UaW1lUmFuZ2VzKHJhbmdlcywgdGltZSkKICAgICB9
CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCitmdW5jdGlvbiBtZWRpYUNvbnRyb2xzQnV0dG9uQ29v
cmRpbmF0ZXMoZWxlbWVudCwgaWQpCit7CisgICAgdmFyIGJ1dHRvbjsKKyAgICB2YXIgY29udHJv
bHNTaGFkb3cgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KGVsZW1lbnQpLmZpcnN0
Q2hpbGQuZmlyc3RDaGlsZDsKKyAgICBmb3IgKGNoaWxkID0gY29udHJvbHNTaGFkb3cuZmlyc3RD
aGlsZDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmcpIHsKKyAgICAgICAgaWYgKGNo
aWxkLnNoYWRvd1BzZXVkb0lkID09ICItd2Via2l0LW1lZGlhLWNvbnRyb2xzLSIgKyBpZCArICIt
YnV0dG9uIikgeworICAgICAgICAgICAgYnV0dG9uID0gY2hpbGQ7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghYnV0dG9uKSB7CisgICAgICAgIGZhaWxU
ZXN0KCJGYWlsZWQgdG8gZmluZCAiICsgaWQgKyAiIGJ1dHRvbi4iKTsKKyAgICB9CisKKyAgICB2
YXIgYnV0dG9uQm91bmRpbmdSZWN0ID0gYnV0dG9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
ICAgIHZhciB4ID0gYnV0dG9uQm91bmRpbmdSZWN0LmxlZnQgKyBidXR0b25Cb3VuZGluZ1JlY3Qu
d2lkdGggLyAyOworICAgIHZhciB5ID0gYnV0dG9uQm91bmRpbmdSZWN0LnRvcCArIGJ1dHRvbkJv
dW5kaW5nUmVjdC5oZWlnaHQgLyAyOworICAgIHZhciByZXN1bHQgPSBuZXcgQXJyYXkoKTsKKyAg
ICByZXN1bHRbMF0gPSB4OworICAgIHJlc3VsdFsxXSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMmRmMDQzZS4uY2E4MzY0YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTU1Nyw3ICs1NTcsNiBAQCBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWNvbnRlbnR0eXBlLWVtcHR5Lmh0bWwKIAogIyBUZXN0
cyBpbiBtZWRpYS8gZGlyZWN0b3J5CiAjICAgVGVzdHMgZmFpbGluZwotbWVkaWEvdmlkZW8tY29u
dHJvbHMtem9vbWVkLmh0bWwKIG1lZGlhL3ZpZGVvLXNpemUtaW50cmluc2ljLXNjYWxlLmh0bWwK
IG1lZGlhL3ZpZGVvLXNlZWstcGFzdC1lbmQtcGxheWluZy5odG1sCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDE5OApAQCAtNjMzLDkgKzYzMiw2IEBAIGVkaXRp
bmcvc2VsZWN0aW9uL21vdmUtbGVmdC1yaWdodC5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L21p
eGVkQ29udGVudC9pbnNlY3VyZS1wbHVnaW4taW4taWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvbG9h
ZGluZy9iYXNpYy1hdXRoLXJlc2VuZC13cm9uZy1jcmVkZW50aWFscy5odG1sIAogCi0jIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDY4MAotbWVkaWEvYXVkaW8tZGVs
ZXRlLXdoaWxlLXN0ZXAtYnV0dG9uLWNsaWNrZWQuaHRtbAotCiAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDYyMAogZmFzdC94c2wvc29ydC1sb2NhbGUueG1sCiAK
LS0gCjEuNy40LjQ=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92405</attachid>
            <date>2011-05-05 05:53:03 -0700</date>
            <delta_ts>2011-05-05 06:03:19 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>9205</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA1MmQ5YjE1NDFlMjYxMmE1MDNjZGY3YmEyYjc2MDdiY2IzOWE0Y2IwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDMgTWF5IDIwMTEgMTI6NDk6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMjAgKysrKysrKysrKysrKysrKysrCiAuLi4vYXVkaW8tZGVsZXRl
LXdoaWxlLXN0ZXAtYnV0dG9uLWNsaWNrZWQuaHRtbCAgICB8ICAgIDkgKysrLS0tLQogTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtdHJhbnNmb3JtZWQuaHRtbCAgfCAgIDE4ICsrLS0t
LS0tLS0tLS0tLQogLi4uL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXZpc2libGUtYXVkaW8tb25seS5o
dG1sICAgfCAgICA4ICsrKystLQogTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtem9v
bWVkLmh0bWwgICAgICAgfCAgIDIyICsrKysrKysrKysrKysrKystLS0KIExheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLXRlc3QuanMgICAgICAgICAgICAgICAgICAgIHwgICAyMCArKysrKysrKysrKysr
KysrKysKIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkICAgICAgICAgICAgICAgICAg
IHwgICAgNCAtLS0KIDcgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDY1ZTQwODQuLmE4ZmRjMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxMS0wNS0wMyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGF5b3V0IHRlc3Rz
IHNob3VsZG4ndCBoYXZlIHRvIGhhcmQgY29kZSBtZWRpYSBjb250cm9sbGVyIGVsZW1lbnQgbG9j
YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
ODIyMAorCisgICAgICAgIE5ldyBtZWRpYUNvbnRyb2xzQnV0dG9uQ29vcmRpbmF0ZXMoKSBmdW5j
dGlvbiB0byBnZXQgdGhlIG1pZGRsZQorICAgICAgICBjb29yZGluYXRlcyBvZiBhIG1lZGlhIGNv
bnRyb2xzIGJ1dHRvbi4gVGhpcyBhdm9pZHMgaGFyZGNvZGluZworICAgICAgICBwb3NpdGlvbnMg
aW4gdGhlIHRlc3RzLgorCisgICAgICAgIEFsc28gdW5za2lwcGVkIHRoZSBhZmZlY3RlZCBHVEsg
bWVkaWEgdGVzdHMgbm93IHBhc3NpbmcuCisKKyAgICAgICAgKiBtZWRpYS9hdWRpby1kZWxldGUt
d2hpbGUtc3RlcC1idXR0b24tY2xpY2tlZC5odG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWNv
bnRyb2xzLXRyYW5zZm9ybWVkLmh0bWw6CisgICAgICAgICogbWVkaWEvdmlkZW8tY29udHJvbHMt
em9vbWVkLmh0bWw6CisgICAgICAgICogbWVkaWEvdmlkZW8tdGVzdC5qczoKKyAgICAgICAgKG1l
ZGlhQ29udHJvbHNCdXR0b25Db29yZGluYXRlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQ6CisKIDIwMTEtMDUtMDQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tZGVsZXRlLXdoaWxlLXN0ZXAtYnV0dG9uLWNsaWNrZWQu
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLWRlbGV0ZS13aGlsZS1zdGVwLWJ1dHRvbi1j
bGlja2VkLmh0bWwKaW5kZXggZDA4N2Q1Yy4uNTkxM2FiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvYXVkaW8tZGVsZXRlLXdoaWxlLXN0ZXAtYnV0dG9uLWNsaWNrZWQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1kZWxldGUtd2hpbGUtc3RlcC1idXR0b24tY2xpY2tl
ZC5odG1sCkBAIC0yLDYgKzIsNyBAQAogPGh0bWw+CiAgICAgPGhlYWQ+CiAgICAgICAgIDxzY3Jp
cHQgc3JjPW1lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPXZpZGVv
LXRlc3QuanM+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwpAQCAtNTAsMTEgKzUxLDkgQEAKIAogICAgICAgICAgICAg
ICAgIHZhciBhdWRpbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdWRpbycpOwogCi0gICAg
ICAgICAgICAgICAgdmFyIHJpZ2h0ID0gYXVkaW8ub2Zmc2V0TGVmdCArIGF1ZGlvLm9mZnNldFdp
ZHRoOwotICAgICAgICAgICAgICAgIHZhciBib3R0b20gPSBhdWRpby5vZmZzZXRUb3AgKyBhdWRp
by5vZmZzZXRIZWlnaHQ7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgdmFyIHgg
PSByaWdodCAtIDg7Ci0gICAgICAgICAgICAgICAgdmFyIHkgPSBib3R0b20gLSA4OworICAgICAg
ICAgICAgICAgIHZhciBzZWVrQ29vcmRzID0gbWVkaWFDb250cm9sc0J1dHRvbkNvb3JkaW5hdGVz
KGF1ZGlvLCAic2Vlay1mb3J3YXJkIik7CisgICAgICAgICAgICAgICAgdmFyIHggPSBzZWVrQ29v
cmRzWzBdOworICAgICAgICAgICAgICAgIHZhciB5ID0gc2Vla0Nvb3Jkc1sxXTsKIAogICAgICAg
ICAgICAgICAgIC8vIHN0ZXAgZm9yd2FyZCwgc2hvdWxkIGdlbmVyYXRlIGEgdGltZXVwZGF0ZSBl
dmVudAogICAgICAgICAgICAgICAgIGxvZygiY2xpY2tpbmcgc3RlcCBmb3J3YXJkIik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy10cmFuc2Zvcm1lZC5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtdHJhbnNmb3JtZWQuaHRtbAppbmRl
eCAwMjBjZTBjLi43MjlmZmVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1j
b250cm9scy10cmFuc2Zvcm1lZC5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNv
bnRyb2xzLXRyYW5zZm9ybWVkLmh0bWwKQEAgLTE5LDIxICsxOSw5IEBACiAgICAgICAgIHdhaXRG
b3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgICAgICAgICAgICAgLy8gRmluZCB0aGUgcGxheSBi
dXR0b24gYW5kIGNsaWNrIHRoZSBtaWRkbGUgb2YgaXRzIGJvdW5kaW5nIGJveC4KLSAgICAgICAg
ICAgICAgICB2YXIgcGxheUJ1dHRvbjsKLSAgICAgICAgICAgICAgICB2YXIgY29udHJvbHNTaGFk
b3cgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHZpZGVvKS5maXJzdENoaWxkLmZp
cnN0Q2hpbGQ7Ci0gICAgICAgICAgICAgICAgZm9yIChjaGlsZCA9IGNvbnRyb2xzU2hhZG93LmZp
cnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQoY2hpbGQp
ID09ICItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIikgewotICAgICAgICAgICAg
ICAgICAgICAgICAgIHBsYXlCdXR0b24gPSBjaGlsZDsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgICAgICBpZiAoIXBsYXlCdXR0b24pIHsKLSAgICAgICAgICAgICAgICAgICAgZmFp
bFRlc3QoIkZhaWxlZCB0byBmaW5kIHBsYXkvcGF1c2UgYnV0dG9uLiIpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICB2YXIgcGxheUJ1dHRvbkJvdW5kaW5nUmVjdCA9IHBsYXlC
dXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICAgICAgdmFyIGNsaWNr
WCA9IHBsYXlCdXR0b25Cb3VuZGluZ1JlY3QubGVmdCArIHBsYXlCdXR0b25Cb3VuZGluZ1JlY3Qu
d2lkdGggLyAyOwotICAgICAgICAgICAgICAgIHZhciBjbGlja1kgPSBwbGF5QnV0dG9uQm91bmRp
bmdSZWN0LnRvcCArIHBsYXlCdXR0b25Cb3VuZGluZ1JlY3QuaGVpZ2h0IC8gMjsKKyAgICAgICAg
ICAgICAgICB2YXIgcGxheUNvb3JkcyA9IG1lZGlhQ29udHJvbHNCdXR0b25Db29yZGluYXRlcyh2
aWRlbywgInBsYXkiKTsKKyAgICAgICAgICAgICAgICB2YXIgY2xpY2tYID0gcGxheUNvb3Jkc1sw
XTsKKyAgICAgICAgICAgICAgICB2YXIgY2xpY2tZID0gcGxheUNvb3Jkc1sxXTsKICAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjbGlja1gsIGNsaWNrWSk7CiAgICAgICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CiAgICAgICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29u
dHJvbHMtdmlzaWJsZS1hdWRpby1vbmx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1j
b250cm9scy12aXNpYmxlLWF1ZGlvLW9ubHkuaHRtbAppbmRleCA4MjZkMzU5Li5iMzIzZDk5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy12aXNpYmxlLWF1ZGlv
LW9ubHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy12aXNpYmxl
LWF1ZGlvLW9ubHkuaHRtbApAQCAtNiw2ICs2LDcgQEAKICAgICAgICAgICAgICNtb3VzZS1wYXJr
aW5nOmhvdmVyIHsgcGFkZGluZzo4OyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9CiAgICAgICAg
IDwvc3R5bGU+CiAgICAgICAgIDxzY3JpcHQgc3JjPW1lZGlhLWZpbGUuanM+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3Jp
cHQ+CiAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwpAQCAtMzEsMTUg
KzMyLDE2IEBACiAgICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm8tdmlkZW8t
bWVkaWEiKTsKLSAgICAgICAgICAgICAgICB2YXIgbGVmdCA9IHZpZGVvLm9mZnNldExlZnQ7Ci0g
ICAgICAgICAgICAgICAgdmFyIGJvdHRvbSA9IHZpZGVvLm9mZnNldFRvcCArIHZpZGVvLm9mZnNl
dEhlaWdodDsKIAogICAgICAgICAgICAgICAgIHRlc3Rjb25kaXRpb24oInZpZGVvLnBhdXNlZCIp
OwogICAgICAgICAgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgICAgICAvLyBzdGFydCBwbGF5
YmFjawotICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGxlZnQgKyA4LCBi
b3R0b20gLSA4KTsKKyAgICAgICAgICAgICAgICB2YXIgcGxheUNvb3JkcyA9IG1lZGlhQ29udHJv
bHNCdXR0b25Db29yZGluYXRlcyh2aWRlbywgInBsYXkiKTsKKyAgICAgICAgICAgICAgICB2YXIg
Y2xpY2tYID0gcGxheUNvb3Jkc1swXTsKKyAgICAgICAgICAgICAgICB2YXIgY2xpY2tZID0gcGxh
eUNvb3Jkc1sxXTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjbGlj
a1gsIGNsaWNrWSk7CiAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CiAg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwogICAgICAgICAgICAgICAgIHRl
c3Rjb25kaXRpb24oIiF2aWRlby5wYXVzZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21lZC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
Y29udHJvbHMtem9vbWVkLmh0bWwKaW5kZXggNTMyNTI0OC4uYTY3MmJlZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtem9vbWVkLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtem9vbWVkLmh0bWwKQEAgLTEyLDE0ICsxMiwyOCBA
QAogICAgIHsKICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICBk
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuem9vbSA9ICcxNTAlJzsKLSAgICAgICAgaWYg
KHdpbmRvdy5ldmVudFNlbmRlcikgCisgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoInBs
YXlpbmciLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1
c2VkIiwgZmFsc2UpOworICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICB9KTsKKworICAg
ICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbygxMjAsNDMyKTsgLy8gb3ZlciBwbGF5IGJ1dHRvbgorICAgICAg
ICAgICAgLy8gRmluZCB0aGUgcGxheSBidXR0b24gYW5kIGNsaWNrIHRoZSBtaWRkbGUgb2YgaXRz
IGJvdW5kaW5nIGJveC4KKyAgICAgICAgICAgIHZhciBwbGF5Q29vcmRzID0gbWVkaWFDb250cm9s
c0J1dHRvbkNvb3JkaW5hdGVzKHZpZGVvLCAicGxheSIpOworICAgICAgICAgICAgdmFyIGNsaWNr
WCA9IHBsYXlDb29yZHNbMF07CisgICAgICAgICAgICB2YXIgY2xpY2tZID0gcGxheUNvb3Jkc1sx
XTsKKworICAgICAgICAgICAgLy8gQXBwbHkgdGhlIHBhZ2Ugem9vbSB2YWx1ZSB0byB0aGUgY29v
cmRpbmF0ZXMgYmVjYXVzZQorICAgICAgICAgICAgLy8gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkg
dXNlZCBpbgorICAgICAgICAgICAgLy8gbWVkaWFDb250cm9sc0J1dHRvbkNvb3JkaW5hdGVzKCkg
ZG9lc24ndCBkbyBpdC4KKyAgICAgICAgICAgIGNsaWNrWCA9IGNsaWNrWCAqIDEuNTsKKyAgICAg
ICAgICAgIGNsaWNrWSA9IGNsaWNrWSAqIDEuNTsKKworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oY2xpY2tYLCBjbGlja1kpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VEb3duKCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgICAgIH0K
LSAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5wYXVzZWQiLCBmYWxzZSk7Ci0gICAgICAgIGVu
ZFRlc3QoKTsKICAgICAgIH0sIDUwKTsKICAgICB9CiAgIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVv
LXRlc3QuanMKaW5kZXggNDAxZjJjZi4uNTEyZWU0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvdmlkZW8tdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0Lmpz
CkBAIC0yMzUsMyArMjM1LDIzIEBAIGZ1bmN0aW9uIGlzSW5UaW1lUmFuZ2VzKHJhbmdlcywgdGlt
ZSkKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCitmdW5jdGlvbiBtZWRpYUNvbnRyb2xz
QnV0dG9uQ29vcmRpbmF0ZXMoZWxlbWVudCwgaWQpCit7CisgICAgdmFyIGJ1dHRvbjsKKyAgICB2
YXIgY29udHJvbHNTaGFkb3cgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KGVsZW1l
bnQpLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDsKKyAgICBmb3IgKGNoaWxkID0gY29udHJvbHNTaGFk
b3cuZmlyc3RDaGlsZDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmcpIHsKKyAgICAg
ICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNoaWxkKSA9PSAiLXdl
YmtpdC1tZWRpYS1jb250cm9scy0iICsgaWQgKyAiLWJ1dHRvbiIpIHsKKyAgICAgICAgICAgIGJ1
dHRvbiA9IGNoaWxkOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBpZiAoIWJ1dHRvbikKKyAgICAgICAgZmFpbFRlc3QoIkZhaWxlZCB0byBmaW5kICIgKyBpZCAr
ICIgYnV0dG9uLiIpOworCisgICAgdmFyIGJ1dHRvbkJvdW5kaW5nUmVjdCA9IGJ1dHRvbi5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICB2YXIgeCA9IGJ1dHRvbkJvdW5kaW5nUmVjdC5sZWZ0
ICsgYnV0dG9uQm91bmRpbmdSZWN0LndpZHRoIC8gMjsKKyAgICB2YXIgeSA9IGJ1dHRvbkJvdW5k
aW5nUmVjdC50b3AgKyBidXR0b25Cb3VuZGluZ1JlY3QuaGVpZ2h0IC8gMjsKKyAgICByZXR1cm4g
bmV3IEFycmF5KHgsIHkpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCBhYTIxYTc0
Li44MmZjZWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNTY0LDcgKzU2NCw2IEBA
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtY29udGVudHR5cGUtZW1w
dHkuaHRtbAogCiAjIFRlc3RzIGluIG1lZGlhLyBkaXJlY3RvcnkKICMgICBUZXN0cyBmYWlsaW5n
Ci1tZWRpYS92aWRlby1jb250cm9scy16b29tZWQuaHRtbAogbWVkaWEvdmlkZW8tc2l6ZS1pbnRy
aW5zaWMtc2NhbGUuaHRtbAogbWVkaWEvdmlkZW8tc2Vlay1wYXN0LWVuZC1wbGF5aW5nLmh0bWwK
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMTk4CkBAIC02NDAs
OSArNjM5LDYgQEAgZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1sZWZ0LXJpZ2h0Lmh0bWwKIGh0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXBsdWdpbi1pbi1pZnJhbWUuaHRt
bAogaHR0cC90ZXN0cy9sb2FkaW5nL2Jhc2ljLWF1dGgtcmVzZW5kLXdyb25nLWNyZWRlbnRpYWxz
Lmh0bWwgCiAKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNjgw
Ci1tZWRpYS9hdWRpby1kZWxldGUtd2hpbGUtc3RlcC1idXR0b24tY2xpY2tlZC5odG1sCi0KICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNjIwCiBmYXN0L3hzbC9z
b3J0LWxvY2FsZS54bWwKIAotLSAKMS43LjQuNA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92407</attachid>
            <date>2011-05-05 06:03:19 -0700</date>
            <delta_ts>2011-05-05 06:06:18 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>9282</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBmNGUwNWVmNmQ3MDVkMTBhNTU1MjFhYzVkMGNkYWQ3ZWZiMGZmNDYyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDMgTWF5IDIwMTEgMTI6NDk6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMjAgKysrKysrKysrKysrKysrKysrCiAuLi4vYXVkaW8tZGVsZXRl
LXdoaWxlLXN0ZXAtYnV0dG9uLWNsaWNrZWQuaHRtbCAgICB8ICAgIDkgKysrLS0tLQogTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtdHJhbnNmb3JtZWQuaHRtbCAgfCAgIDE4ICsrLS0t
LS0tLS0tLS0tLQogLi4uL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXZpc2libGUtYXVkaW8tb25seS5o
dG1sICAgfCAgICA4ICsrKystLQogTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtem9v
bWVkLmh0bWwgICAgICAgfCAgIDIyICsrKysrKysrKysrKysrKystLS0KIExheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLXRlc3QuanMgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysr
KysrKysrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAgICAgICAg
ICB8ICAgIDQgLS0tCiA3IGZpbGVzIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDMxIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA2NWU0MDg0Li5hOGZkYzExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTEtMDUtMDMgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExheW91dCB0ZXN0
cyBzaG91bGRuJ3QgaGF2ZSB0byBoYXJkIGNvZGUgbWVkaWEgY29udHJvbGxlciBlbGVtZW50IGxv
Y2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjgyMjAKKworICAgICAgICBOZXcgbWVkaWFDb250cm9sc0J1dHRvbkNvb3JkaW5hdGVzKCkgZnVu
Y3Rpb24gdG8gZ2V0IHRoZSBtaWRkbGUKKyAgICAgICAgY29vcmRpbmF0ZXMgb2YgYSBtZWRpYSBj
b250cm9scyBidXR0b24uIFRoaXMgYXZvaWRzIGhhcmRjb2RpbmcKKyAgICAgICAgcG9zaXRpb25z
IGluIHRoZSB0ZXN0cy4KKworICAgICAgICBBbHNvIHVuc2tpcHBlZCB0aGUgYWZmZWN0ZWQgR1RL
IG1lZGlhIHRlc3RzIG5vdyBwYXNzaW5nLgorCisgICAgICAgICogbWVkaWEvYXVkaW8tZGVsZXRl
LXdoaWxlLXN0ZXAtYnV0dG9uLWNsaWNrZWQuaHRtbDoKKyAgICAgICAgKiBtZWRpYS92aWRlby1j
b250cm9scy10cmFuc2Zvcm1lZC5odG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWNvbnRyb2xz
LXpvb21lZC5odG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXRlc3QuanM6CisgICAgICAgICht
ZWRpYUNvbnRyb2xzQnV0dG9uQ29vcmRpbmF0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9T
a2lwcGVkOgorCiAyMDExLTA1LTA0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLWRlbGV0ZS13aGlsZS1zdGVwLWJ1dHRvbi1jbGlja2Vk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1kZWxldGUtd2hpbGUtc3RlcC1idXR0b24t
Y2xpY2tlZC5odG1sCmluZGV4IGQwODdkNWMuLjk3YmYyZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL21lZGlhL2F1ZGlvLWRlbGV0ZS13aGlsZS1zdGVwLWJ1dHRvbi1jbGlja2VkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tZGVsZXRlLXdoaWxlLXN0ZXAtYnV0dG9uLWNsaWNr
ZWQuaHRtbApAQCAtMiw2ICsyLDcgQEAKIDxodG1sPgogICAgIDxoZWFkPgogICAgICAgICA8c2Ny
aXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz12aWRl
by10ZXN0LmpzPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKQEAgLTUwLDExICs1MSw5IEBACiAKICAgICAgICAgICAg
ICAgICB2YXIgYXVkaW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXVkaW8nKTsKIAotICAg
ICAgICAgICAgICAgIHZhciByaWdodCA9IGF1ZGlvLm9mZnNldExlZnQgKyBhdWRpby5vZmZzZXRX
aWR0aDsKLSAgICAgICAgICAgICAgICB2YXIgYm90dG9tID0gYXVkaW8ub2Zmc2V0VG9wICsgYXVk
aW8ub2Zmc2V0SGVpZ2h0OwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHZhciB4
ID0gcmlnaHQgLSA4OwotICAgICAgICAgICAgICAgIHZhciB5ID0gYm90dG9tIC0gODsKKyAgICAg
ICAgICAgICAgICB2YXIgc2Vla0Nvb3JkcyA9IG1lZGlhQ29udHJvbHNCdXR0b25Db29yZGluYXRl
cyhhdWRpbywgInNlZWstZm9yd2FyZC1idXR0b24iKTsKKyAgICAgICAgICAgICAgICB2YXIgeCA9
IHNlZWtDb29yZHNbMF07CisgICAgICAgICAgICAgICAgdmFyIHkgPSBzZWVrQ29vcmRzWzFdOwog
CiAgICAgICAgICAgICAgICAgLy8gc3RlcCBmb3J3YXJkLCBzaG91bGQgZ2VuZXJhdGUgYSB0aW1l
dXBkYXRlIGV2ZW50CiAgICAgICAgICAgICAgICAgbG9nKCJjbGlja2luZyBzdGVwIGZvcndhcmQi
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXRyYW5zZm9y
bWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy10cmFuc2Zvcm1lZC5o
dG1sCmluZGV4IDAyMGNlMGMuLjcxNTViM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlh
L3ZpZGVvLWNvbnRyb2xzLXRyYW5zZm9ybWVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
dmlkZW8tY29udHJvbHMtdHJhbnNmb3JtZWQuaHRtbApAQCAtMTksMjEgKzE5LDkgQEAKICAgICAg
ICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKICAgICAgICAgICAgICAgICAvLyBGaW5kIHRo
ZSBwbGF5IGJ1dHRvbiBhbmQgY2xpY2sgdGhlIG1pZGRsZSBvZiBpdHMgYm91bmRpbmcgYm94Lgot
ICAgICAgICAgICAgICAgIHZhciBwbGF5QnV0dG9uOwotICAgICAgICAgICAgICAgIHZhciBjb250
cm9sc1NoYWRvdyA9IGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3QodmlkZW8pLmZpcnN0
Q2hpbGQuZmlyc3RDaGlsZDsKLSAgICAgICAgICAgICAgICBmb3IgKGNoaWxkID0gY29udHJvbHNT
aGFkb3cuZmlyc3RDaGlsZDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmcpIHsKLSAg
ICAgICAgICAgICAgICAgICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9J
ZChjaGlsZCkgPT0gIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24iKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgcGxheUJ1dHRvbiA9IGNoaWxkOwotICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICAgIGlmICghcGxheUJ1dHRvbikgewotICAgICAgICAgICAgICAg
ICAgICBmYWlsVGVzdCgiRmFpbGVkIHRvIGZpbmQgcGxheS9wYXVzZSBidXR0b24uIik7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHZhciBwbGF5QnV0dG9uQm91bmRpbmdSZWN0
ID0gcGxheUJ1dHRvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgICAgICAgICB2
YXIgY2xpY2tYID0gcGxheUJ1dHRvbkJvdW5kaW5nUmVjdC5sZWZ0ICsgcGxheUJ1dHRvbkJvdW5k
aW5nUmVjdC53aWR0aCAvIDI7Ci0gICAgICAgICAgICAgICAgdmFyIGNsaWNrWSA9IHBsYXlCdXR0
b25Cb3VuZGluZ1JlY3QudG9wICsgcGxheUJ1dHRvbkJvdW5kaW5nUmVjdC5oZWlnaHQgLyAyOwor
ICAgICAgICAgICAgICAgIHZhciBwbGF5Q29vcmRzID0gbWVkaWFDb250cm9sc0J1dHRvbkNvb3Jk
aW5hdGVzKHZpZGVvLCAicGxheS1idXR0b24iKTsKKyAgICAgICAgICAgICAgICB2YXIgY2xpY2tY
ID0gcGxheUNvb3Jkc1swXTsKKyAgICAgICAgICAgICAgICB2YXIgY2xpY2tZID0gcGxheUNvb3Jk
c1sxXTsKICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjbGlja1gsIGNs
aWNrWSk7CiAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CiAgICAgICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvdmlkZW8tY29udHJvbHMtdmlzaWJsZS1hdWRpby1vbmx5Lmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS92aWRlby1jb250cm9scy12aXNpYmxlLWF1ZGlvLW9ubHkuaHRtbAppbmRleCA4MjZk
MzU5Li5mZWY4MjNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9s
cy12aXNpYmxlLWF1ZGlvLW9ubHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1j
b250cm9scy12aXNpYmxlLWF1ZGlvLW9ubHkuaHRtbApAQCAtNiw2ICs2LDcgQEAKICAgICAgICAg
ICAgICNtb3VzZS1wYXJraW5nOmhvdmVyIHsgcGFkZGluZzo4OyBiYWNrZ3JvdW5kLWNvbG9yOiBi
bHVlOyB9CiAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgIDxzY3JpcHQgc3JjPW1lZGlhLWZpbGUu
anM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+
CiAgICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwpAQCAtMzEsMTUgKzMyLDE2IEBACiAgICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpCiAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibm8tdmlkZW8tbWVkaWEiKTsKLSAgICAgICAgICAgICAgICB2YXIgbGVmdCA9IHZpZGVv
Lm9mZnNldExlZnQ7Ci0gICAgICAgICAgICAgICAgdmFyIGJvdHRvbSA9IHZpZGVvLm9mZnNldFRv
cCArIHZpZGVvLm9mZnNldEhlaWdodDsKIAogICAgICAgICAgICAgICAgIHRlc3Rjb25kaXRpb24o
InZpZGVvLnBhdXNlZCIpOwogICAgICAgICAgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgICAg
ICAvLyBzdGFydCBwbGF5YmFjawotICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKGxlZnQgKyA4LCBib3R0b20gLSA4KTsKKyAgICAgICAgICAgICAgICB2YXIgcGxheUNvb3Jk
cyA9IG1lZGlhQ29udHJvbHNCdXR0b25Db29yZGluYXRlcyh2aWRlbywgInBsYXktYnV0dG9uIik7
CisgICAgICAgICAgICAgICAgdmFyIGNsaWNrWCA9IHBsYXlDb29yZHNbMF07CisgICAgICAgICAg
ICAgICAgdmFyIGNsaWNrWSA9IHBsYXlDb29yZHNbMV07CisgICAgICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oY2xpY2tYLCBjbGlja1kpOwogICAgICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOwogICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKICAgICAgICAgICAgICAgICB0ZXN0Y29uZGl0aW9uKCIhdmlkZW8ucGF1c2VkIik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy16b29tZWQuaHRtbCBiL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21lZC5odG1sCmluZGV4IDUzMjUyNDgu
LmM5MGY0YjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXpv
b21lZC5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21lZC5o
dG1sCkBAIC0xMiwxNCArMTIsMjggQEAKICAgICB7CiAgICAgICB3aW5kb3cuc2V0VGltZW91dChm
dW5jdGlvbigpIHsKICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnpvb20g
PSAnMTUwJSc7Ci0gICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIAorICAgICAgICB2aWRl
by5hZGRFdmVudExpc3RlbmVyKCJwbGF5aW5nIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIGZhbHNlKTsKKyAgICAgICAgICAgIGVuZFRlc3Qo
KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKICAgICAg
ICAgewotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTIwLDQzMik7IC8vIG92
ZXIgcGxheSBidXR0b24KKyAgICAgICAgICAgIC8vIEZpbmQgdGhlIHBsYXkgYnV0dG9uIGFuZCBj
bGljayB0aGUgbWlkZGxlIG9mIGl0cyBib3VuZGluZyBib3guCisgICAgICAgICAgICB2YXIgcGxh
eUNvb3JkcyA9IG1lZGlhQ29udHJvbHNCdXR0b25Db29yZGluYXRlcyh2aWRlbywgInBsYXktYnV0
dG9uIik7CisgICAgICAgICAgICB2YXIgY2xpY2tYID0gcGxheUNvb3Jkc1swXTsKKyAgICAgICAg
ICAgIHZhciBjbGlja1kgPSBwbGF5Q29vcmRzWzFdOworCisgICAgICAgICAgICAvLyBBcHBseSB0
aGUgcGFnZSB6b29tIHZhbHVlIHRvIHRoZSBjb29yZGluYXRlcyBiZWNhdXNlCisgICAgICAgICAg
ICAvLyBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSB1c2VkIGluCisgICAgICAgICAgICAvLyBtZWRp
YUNvbnRyb2xzQnV0dG9uQ29vcmRpbmF0ZXMoKSBkb2Vzbid0IGRvIGl0LgorICAgICAgICAgICAg
Y2xpY2tYID0gY2xpY2tYICogMS41OworICAgICAgICAgICAgY2xpY2tZID0gY2xpY2tZICogMS41
OworCisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjbGlja1gsIGNsaWNrWSk7
CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKICAgICAgICAgfQotICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVv
LnBhdXNlZCIsIGZhbHNlKTsKLSAgICAgICAgZW5kVGVzdCgpOwogICAgICAgfSwgNTApOwogICAg
IH0KICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0
LmpzIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcwppbmRleCA0MDFmMmNmLi4wYjJj
NGM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMKQEAgLTIzNSwzICsyMzUsMjQgQEAgZnVuY3Rp
b24gaXNJblRpbWVSYW5nZXMocmFuZ2VzLCB0aW1lKQogICAgIH0KICAgICByZXR1cm4gZmFsc2U7
CiB9CisKK2Z1bmN0aW9uIG1lZGlhQ29udHJvbHNCdXR0b25Db29yZGluYXRlcyhlbGVtZW50LCBp
ZCkKK3sKKyAgICB2YXIgYnV0dG9uOworICAgIHZhciBjb250cm9sc1NoYWRvdyA9IGxheW91dFRl
c3RDb250cm9sbGVyLnNoYWRvd1Jvb3QoZWxlbWVudCkuZmlyc3RDaGlsZC5maXJzdENoaWxkOwor
ICAgIGZvciAoY2hpbGQgPSBjb250cm9sc1NoYWRvdy5maXJzdENoaWxkOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC5uZXh0U2libGluZykgeworICAgICAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIu
c2hhZG93UHNldWRvSWQoY2hpbGQpID09ICItd2Via2l0LW1lZGlhLWNvbnRyb2xzLSIgKyBpZCkg
eworICAgICAgICAgICAgYnV0dG9uID0gY2hpbGQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorCWNvbnNvbGVXcml0ZShsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChj
aGlsZCkpOworICAgIH0KKworICAgIGlmICghYnV0dG9uKQorICAgICAgICBmYWlsVGVzdCgiRmFp
bGVkIHRvIGZpbmQgIiArIGlkICsgIiBidXR0b24uIik7CisKKyAgICB2YXIgYnV0dG9uQm91bmRp
bmdSZWN0ID0gYnV0dG9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIHZhciB4ID0gYnV0
dG9uQm91bmRpbmdSZWN0LmxlZnQgKyBidXR0b25Cb3VuZGluZ1JlY3Qud2lkdGggLyAyOworICAg
IHZhciB5ID0gYnV0dG9uQm91bmRpbmdSZWN0LnRvcCArIGJ1dHRvbkJvdW5kaW5nUmVjdC5oZWln
aHQgLyAyOworICAgIHJldHVybiBuZXcgQXJyYXkoeCwgeSk7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkCmluZGV4IGFhMjFhNzQuLjgyZmNlZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
CkBAIC01NjQsNyArNTY0LDYgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVx
dWVzdC1jb250ZW50dHlwZS1lbXB0eS5odG1sCiAKICMgVGVzdHMgaW4gbWVkaWEvIGRpcmVjdG9y
eQogIyAgIFRlc3RzIGZhaWxpbmcKLW1lZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21lZC5odG1sCiBt
ZWRpYS92aWRlby1zaXplLWludHJpbnNpYy1zY2FsZS5odG1sCiBtZWRpYS92aWRlby1zZWVrLXBh
c3QtZW5kLXBsYXlpbmcuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzAxOTgKQEAgLTY0MCw5ICs2MzksNiBAQCBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWxl
ZnQtcmlnaHQuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUt
cGx1Z2luLWluLWlmcmFtZS5odG1sCiBodHRwL3Rlc3RzL2xvYWRpbmcvYmFzaWMtYXV0aC1yZXNl
bmQtd3JvbmctY3JlZGVudGlhbHMuaHRtbCAKIAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzA2ODAKLW1lZGlhL2F1ZGlvLWRlbGV0ZS13aGlsZS1zdGVwLWJ1dHRv
bi1jbGlja2VkLmh0bWwKLQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzA2MjAKIGZhc3QveHNsL3NvcnQtbG9jYWxlLnhtbAogCi0tIAoxLjcuNC40
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92408</attachid>
            <date>2011-05-05 06:06:18 -0700</date>
            <delta_ts>2011-05-05 08:30:15 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>9221</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyZGQ3ZGU0YTEyYjYzYjgwNTM0MzMzOGViYWM2MjM0ZThkM2VlNzczIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDMgTWF5IDIwMTEgMTI6NDk6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMjAgKysrKysrKysrKysrKysrKysrCiAuLi4vYXVkaW8tZGVsZXRl
LXdoaWxlLXN0ZXAtYnV0dG9uLWNsaWNrZWQuaHRtbCAgICB8ICAgIDkgKysrLS0tLQogTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtdHJhbnNmb3JtZWQuaHRtbCAgfCAgIDE4ICsrLS0t
LS0tLS0tLS0tLQogLi4uL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXZpc2libGUtYXVkaW8tb25seS5o
dG1sICAgfCAgICA4ICsrKystLQogTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtem9v
bWVkLmh0bWwgICAgICAgfCAgIDIyICsrKysrKysrKysrKysrKystLS0KIExheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLXRlc3QuanMgICAgICAgICAgICAgICAgICAgIHwgICAyMCArKysrKysrKysrKysr
KysrKysKIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkICAgICAgICAgICAgICAgICAg
IHwgICAgNCAtLS0KIDcgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDY1ZTQwODQuLmE4ZmRjMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxMS0wNS0wMyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGF5b3V0IHRlc3Rz
IHNob3VsZG4ndCBoYXZlIHRvIGhhcmQgY29kZSBtZWRpYSBjb250cm9sbGVyIGVsZW1lbnQgbG9j
YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
ODIyMAorCisgICAgICAgIE5ldyBtZWRpYUNvbnRyb2xzQnV0dG9uQ29vcmRpbmF0ZXMoKSBmdW5j
dGlvbiB0byBnZXQgdGhlIG1pZGRsZQorICAgICAgICBjb29yZGluYXRlcyBvZiBhIG1lZGlhIGNv
bnRyb2xzIGJ1dHRvbi4gVGhpcyBhdm9pZHMgaGFyZGNvZGluZworICAgICAgICBwb3NpdGlvbnMg
aW4gdGhlIHRlc3RzLgorCisgICAgICAgIEFsc28gdW5za2lwcGVkIHRoZSBhZmZlY3RlZCBHVEsg
bWVkaWEgdGVzdHMgbm93IHBhc3NpbmcuCisKKyAgICAgICAgKiBtZWRpYS9hdWRpby1kZWxldGUt
d2hpbGUtc3RlcC1idXR0b24tY2xpY2tlZC5odG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWNv
bnRyb2xzLXRyYW5zZm9ybWVkLmh0bWw6CisgICAgICAgICogbWVkaWEvdmlkZW8tY29udHJvbHMt
em9vbWVkLmh0bWw6CisgICAgICAgICogbWVkaWEvdmlkZW8tdGVzdC5qczoKKyAgICAgICAgKG1l
ZGlhQ29udHJvbHNCdXR0b25Db29yZGluYXRlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQ6CisKIDIwMTEtMDUtMDQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tZGVsZXRlLXdoaWxlLXN0ZXAtYnV0dG9uLWNsaWNrZWQu
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLWRlbGV0ZS13aGlsZS1zdGVwLWJ1dHRvbi1j
bGlja2VkLmh0bWwKaW5kZXggZDA4N2Q1Yy4uOTdiZjJmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvYXVkaW8tZGVsZXRlLXdoaWxlLXN0ZXAtYnV0dG9uLWNsaWNrZWQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1kZWxldGUtd2hpbGUtc3RlcC1idXR0b24tY2xpY2tl
ZC5odG1sCkBAIC0yLDYgKzIsNyBAQAogPGh0bWw+CiAgICAgPGhlYWQ+CiAgICAgICAgIDxzY3Jp
cHQgc3JjPW1lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPXZpZGVv
LXRlc3QuanM+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwpAQCAtNTAsMTEgKzUxLDkgQEAKIAogICAgICAgICAgICAg
ICAgIHZhciBhdWRpbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdWRpbycpOwogCi0gICAg
ICAgICAgICAgICAgdmFyIHJpZ2h0ID0gYXVkaW8ub2Zmc2V0TGVmdCArIGF1ZGlvLm9mZnNldFdp
ZHRoOwotICAgICAgICAgICAgICAgIHZhciBib3R0b20gPSBhdWRpby5vZmZzZXRUb3AgKyBhdWRp
by5vZmZzZXRIZWlnaHQ7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgdmFyIHgg
PSByaWdodCAtIDg7Ci0gICAgICAgICAgICAgICAgdmFyIHkgPSBib3R0b20gLSA4OworICAgICAg
ICAgICAgICAgIHZhciBzZWVrQ29vcmRzID0gbWVkaWFDb250cm9sc0J1dHRvbkNvb3JkaW5hdGVz
KGF1ZGlvLCAic2Vlay1mb3J3YXJkLWJ1dHRvbiIpOworICAgICAgICAgICAgICAgIHZhciB4ID0g
c2Vla0Nvb3Jkc1swXTsKKyAgICAgICAgICAgICAgICB2YXIgeSA9IHNlZWtDb29yZHNbMV07CiAK
ICAgICAgICAgICAgICAgICAvLyBzdGVwIGZvcndhcmQsIHNob3VsZCBnZW5lcmF0ZSBhIHRpbWV1
cGRhdGUgZXZlbnQKICAgICAgICAgICAgICAgICBsb2coImNsaWNraW5nIHN0ZXAgZm9yd2FyZCIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtdHJhbnNmb3Jt
ZWQuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXRyYW5zZm9ybWVkLmh0
bWwKaW5kZXggMDIwY2UwYy4uNzE1NWIzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
dmlkZW8tY29udHJvbHMtdHJhbnNmb3JtZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby1jb250cm9scy10cmFuc2Zvcm1lZC5odG1sCkBAIC0xOSwyMSArMTksOSBAQAogICAgICAg
ICB3YWl0Rm9yRXZlbnQoJ2NhbnBsYXl0aHJvdWdoJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhl
IHBsYXkgYnV0dG9uIGFuZCBjbGljayB0aGUgbWlkZGxlIG9mIGl0cyBib3VuZGluZyBib3guCi0g
ICAgICAgICAgICAgICAgdmFyIHBsYXlCdXR0b247Ci0gICAgICAgICAgICAgICAgdmFyIGNvbnRy
b2xzU2hhZG93ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdCh2aWRlbykuZmlyc3RD
aGlsZC5maXJzdENoaWxkOwotICAgICAgICAgICAgICAgIGZvciAoY2hpbGQgPSBjb250cm9sc1No
YWRvdy5maXJzdENoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykgewotICAg
ICAgICAgICAgICAgICAgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lk
KGNoaWxkKSA9PSAiLXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiIpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBwbGF5QnV0dG9uID0gY2hpbGQ7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgaWYgKCFwbGF5QnV0dG9uKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGZhaWxUZXN0KCJGYWlsZWQgdG8gZmluZCBwbGF5L3BhdXNlIGJ1dHRvbi4iKTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFyIHBsYXlCdXR0b25Cb3VuZGluZ1JlY3Qg
PSBwbGF5QnV0dG9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgICAgIHZh
ciBjbGlja1ggPSBwbGF5QnV0dG9uQm91bmRpbmdSZWN0LmxlZnQgKyBwbGF5QnV0dG9uQm91bmRp
bmdSZWN0LndpZHRoIC8gMjsKLSAgICAgICAgICAgICAgICB2YXIgY2xpY2tZID0gcGxheUJ1dHRv
bkJvdW5kaW5nUmVjdC50b3AgKyBwbGF5QnV0dG9uQm91bmRpbmdSZWN0LmhlaWdodCAvIDI7Cisg
ICAgICAgICAgICAgICAgdmFyIHBsYXlDb29yZHMgPSBtZWRpYUNvbnRyb2xzQnV0dG9uQ29vcmRp
bmF0ZXModmlkZW8sICJwbGF5LWJ1dHRvbiIpOworICAgICAgICAgICAgICAgIHZhciBjbGlja1gg
PSBwbGF5Q29vcmRzWzBdOworICAgICAgICAgICAgICAgIHZhciBjbGlja1kgPSBwbGF5Q29vcmRz
WzFdOwogICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNsaWNrWCwgY2xp
Y2tZKTsKICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKICAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS92aWRlby1jb250cm9scy12aXNpYmxlLWF1ZGlvLW9ubHkuaHRtbCBiL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLWNvbnRyb2xzLXZpc2libGUtYXVkaW8tb25seS5odG1sCmluZGV4IDgyNmQz
NTkuLmZlZjgyM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xz
LXZpc2libGUtYXVkaW8tb25seS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNv
bnRyb2xzLXZpc2libGUtYXVkaW8tb25seS5odG1sCkBAIC02LDYgKzYsNyBAQAogICAgICAgICAg
ICAgI21vdXNlLXBhcmtpbmc6aG92ZXIgeyBwYWRkaW5nOjg7IGJhY2tncm91bmQtY29sb3I6IGJs
dWU7IH0KICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5q
cz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4K
ICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CkBAIC0zMSwxNSArMzIsMTYgQEAKICAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJuby12aWRlby1tZWRpYSIpOwotICAgICAgICAgICAgICAgIHZhciBsZWZ0ID0gdmlkZW8u
b2Zmc2V0TGVmdDsKLSAgICAgICAgICAgICAgICB2YXIgYm90dG9tID0gdmlkZW8ub2Zmc2V0VG9w
ICsgdmlkZW8ub2Zmc2V0SGVpZ2h0OwogCiAgICAgICAgICAgICAgICAgdGVzdGNvbmRpdGlvbigi
dmlkZW8ucGF1c2VkIik7CiAgICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgICAg
IC8vIHN0YXJ0IHBsYXliYWNrCi0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8obGVmdCArIDgsIGJvdHRvbSAtIDgpOworICAgICAgICAgICAgICAgIHZhciBwbGF5Q29vcmRz
ID0gbWVkaWFDb250cm9sc0J1dHRvbkNvb3JkaW5hdGVzKHZpZGVvLCAicGxheS1idXR0b24iKTsK
KyAgICAgICAgICAgICAgICB2YXIgY2xpY2tYID0gcGxheUNvb3Jkc1swXTsKKyAgICAgICAgICAg
ICAgICB2YXIgY2xpY2tZID0gcGxheUNvb3Jkc1sxXTsKKyAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyhjbGlja1gsIGNsaWNrWSk7CiAgICAgICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VEb3duKCk7CiAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgp
OwogICAgICAgICAgICAgICAgIHRlc3Rjb25kaXRpb24oIiF2aWRlby5wYXVzZWQiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21lZC5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtem9vbWVkLmh0bWwKaW5kZXggNTMyNTI0OC4u
YzkwZjRiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtem9v
bWVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtem9vbWVkLmh0
bWwKQEAgLTEyLDE0ICsxMiwyOCBAQAogICAgIHsKICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewogICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuem9vbSA9
ICcxNTAlJzsKLSAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgCisgICAgICAgIHZpZGVv
LmFkZEV2ZW50TGlzdGVuZXIoInBsYXlpbmciLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgidmlkZW8ucGF1c2VkIiwgZmFsc2UpOworICAgICAgICAgICAgZW5kVGVzdCgp
OworICAgICAgICB9KTsKKworICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQogICAgICAg
ICB7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMjAsNDMyKTsgLy8gb3Zl
ciBwbGF5IGJ1dHRvbgorICAgICAgICAgICAgLy8gRmluZCB0aGUgcGxheSBidXR0b24gYW5kIGNs
aWNrIHRoZSBtaWRkbGUgb2YgaXRzIGJvdW5kaW5nIGJveC4KKyAgICAgICAgICAgIHZhciBwbGF5
Q29vcmRzID0gbWVkaWFDb250cm9sc0J1dHRvbkNvb3JkaW5hdGVzKHZpZGVvLCAicGxheS1idXR0
b24iKTsKKyAgICAgICAgICAgIHZhciBjbGlja1ggPSBwbGF5Q29vcmRzWzBdOworICAgICAgICAg
ICAgdmFyIGNsaWNrWSA9IHBsYXlDb29yZHNbMV07CisKKyAgICAgICAgICAgIC8vIEFwcGx5IHRo
ZSBwYWdlIHpvb20gdmFsdWUgdG8gdGhlIGNvb3JkaW5hdGVzIGJlY2F1c2UKKyAgICAgICAgICAg
IC8vIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHVzZWQgaW4KKyAgICAgICAgICAgIC8vIG1lZGlh
Q29udHJvbHNCdXR0b25Db29yZGluYXRlcygpIGRvZXNuJ3QgZG8gaXQuCisgICAgICAgICAgICBj
bGlja1ggPSBjbGlja1ggKiAxLjU7CisgICAgICAgICAgICBjbGlja1kgPSBjbGlja1kgKiAxLjU7
CisKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNsaWNrWCwgY2xpY2tZKTsK
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwogICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOwogICAgICAgICB9Ci0gICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8u
cGF1c2VkIiwgZmFsc2UpOwotICAgICAgICBlbmRUZXN0KCk7CiAgICAgICB9LCA1MCk7CiAgICAg
fQogICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3Qu
anMgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzCmluZGV4IDQwMWYyY2YuLjA3N2Ix
N2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcwpAQCAtMjM1LDMgKzIzNSwyMyBAQCBmdW5jdGlv
biBpc0luVGltZVJhbmdlcyhyYW5nZXMsIHRpbWUpCiAgICAgfQogICAgIHJldHVybiBmYWxzZTsK
IH0KKworZnVuY3Rpb24gbWVkaWFDb250cm9sc0J1dHRvbkNvb3JkaW5hdGVzKGVsZW1lbnQsIGlk
KQoreworICAgIHZhciBidXR0b247CisgICAgdmFyIGNvbnRyb2xzU2hhZG93ID0gbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2hhZG93Um9vdChlbGVtZW50KS5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7Cisg
ICAgZm9yIChjaGlsZCA9IGNvbnRyb2xzU2hhZG93LmZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLm5leHRTaWJsaW5nKSB7CisgICAgICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci5z
aGFkb3dQc2V1ZG9JZChjaGlsZCkgPT0gIi13ZWJraXQtbWVkaWEtY29udHJvbHMtIiArIGlkKSB7
CisgICAgICAgICAgICBidXR0b24gPSBjaGlsZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKCFidXR0b24pCisgICAgICAgIGZhaWxUZXN0KCJGYWlsZWQg
dG8gZmluZCAiICsgaWQgKyAiIGJ1dHRvbi4iKTsKKworICAgIHZhciBidXR0b25Cb3VuZGluZ1Jl
Y3QgPSBidXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgdmFyIHggPSBidXR0b25C
b3VuZGluZ1JlY3QubGVmdCArIGJ1dHRvbkJvdW5kaW5nUmVjdC53aWR0aCAvIDI7CisgICAgdmFy
IHkgPSBidXR0b25Cb3VuZGluZ1JlY3QudG9wICsgYnV0dG9uQm91bmRpbmdSZWN0LmhlaWdodCAv
IDI7CisgICAgcmV0dXJuIG5ldyBBcnJheSh4LCB5KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKaW5kZXggYWEyMWE3NC4uODJmY2VmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAg
LTU2NCw3ICs1NjQsNiBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0
LWNvbnRlbnR0eXBlLWVtcHR5Lmh0bWwKIAogIyBUZXN0cyBpbiBtZWRpYS8gZGlyZWN0b3J5CiAj
ICAgVGVzdHMgZmFpbGluZwotbWVkaWEvdmlkZW8tY29udHJvbHMtem9vbWVkLmh0bWwKIG1lZGlh
L3ZpZGVvLXNpemUtaW50cmluc2ljLXNjYWxlLmh0bWwKIG1lZGlhL3ZpZGVvLXNlZWstcGFzdC1l
bmQtcGxheWluZy5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMDE5OApAQCAtNjQwLDkgKzYzOSw2IEBAIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtbGVmdC1y
aWdodC5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1wbHVn
aW4taW4taWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvbG9hZGluZy9iYXNpYy1hdXRoLXJlc2VuZC13
cm9uZy1jcmVkZW50aWFscy5odG1sIAogCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMDY4MAotbWVkaWEvYXVkaW8tZGVsZXRlLXdoaWxlLXN0ZXAtYnV0dG9uLWNs
aWNrZWQuaHRtbAotCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MDYyMAogZmFzdC94c2wvc29ydC1sb2NhbGUueG1sCiAKLS0gCjEuNy40LjQ=
</data>
<flag name="review"
          id="85378"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>