<?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>85849</bug_id>
          
          <creation_ts>2012-05-07 17:53:12 -0700</creation_ts>
          <short_desc>Incorrect rect-based hit-test result for culled-inline elements</short_desc>
          <delta_ts>2012-08-01 12:05:11 -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>WebKit Misc.</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="Raymes Khoury">raymes</reporter>
          <assigned_to name="Raymes Khoury">raymes</assigned_to>
          <cc>abarth</cc>
    
    <cc>bdakin</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>klobag</cc>
    
    <cc>leviw</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>618178</commentid>
    <comment_count>0</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-07 17:53:12 -0700</bug_when>
    <thetext>Attached is an example which is causing incorrect rect-based hit tests for us. When performing a rect-based hit-test anywhere on the &lt;img&gt;, the enclosing span is also included in the hit-test result and this seems incorrect to me. The code causing this to occur was added as part of a CL implementing line box culling: https://bugs.webkit.org/show_bug.cgi?id=57916. In particular the following lines of HitTestResult.cpp:

 if (node-&gt;renderer()-&gt;isInline()) {
       for (RenderObject* curr = node-&gt;renderer()-&gt;parent(); curr; curr = curr-&gt;parent()) {
           if (!curr-&gt;isRenderInline())
               break;
           
           // We need to make sure the nodes for culled inlines get included.
           RenderInline* currInline = toRenderInline(curr);
           if (currInline-&gt;alwaysCreateLineBoxes())
               break;
           
           if (currInline-&gt;visibleToHitTesting() &amp;&amp; currInline-&gt;node())
               mutableRectBasedTestResult().add(currInline-&gt;node()-&gt;shadowAncestorNode());
       }
   }

I&apos;m not sure why this code is necessary or how to properly fix the observed problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618179</commentid>
    <comment_count>1</comment_count>
      <attachid>140640</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-07 17:54:19 -0700</bug_when>
    <thetext>Created attachment 140640
example</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621991</commentid>
    <comment_count>2</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-11 14:51:32 -0700</bug_when>
    <thetext>The fix is needed for pepper flash (which uses rect-based hit tests for checking whether the flash settings dialogue is visible to the user). This is blocking http://code.google.com/p/chromium/issues/detail?id=127185</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621994</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-11 14:55:34 -0700</bug_when>
    <thetext>My understanding is that rect-based hit testing was added by the Qt folks for their mobile port.  I don&apos;t know if any other port uses it.  (But my understanding could be wrong!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623054</commentid>
    <comment_count>4</comment_count>
      <attachid>141745</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-14 09:57:15 -0700</bug_when>
    <thetext>Created attachment 141745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623056</commentid>
    <comment_count>5</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-14 10:01:18 -0700</bug_when>
    <thetext>Attached is a layout test which currently fails. Also a patch which &quot;fixes&quot; the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623164</commentid>
    <comment_count>6</comment_count>
      <attachid>141745</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-05-14 11:52:53 -0700</bug_when>
    <thetext>Comment on attachment 141745
Patch

Although blindly adding is wrong, not adding the inlines at all is also wrong. In the common case of text inside culled line boxes, the right thing is happening currently, and this patch will break text in order to get replaced elements like images (that jut out of the inline) working.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623173</commentid>
    <comment_count>7</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-14 11:56:58 -0700</bug_when>
    <thetext>Is it possible and sufficient to check whether the node is a text node before examining parents?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623359</commentid>
    <comment_count>8</comment_count>
      <attachid>141795</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-14 14:47:59 -0700</bug_when>
    <thetext>Created attachment 141795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623364</commentid>
    <comment_count>9</comment_count>
      <attachid>141795</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-14 14:53:33 -0700</bug_when>
    <thetext>Comment on attachment 141795
Patch

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

&gt; Source/WebCore/ChangeLog:4
&gt; +        Modified code which blindly adds culled inlines to rect-based hit-test
&gt; +        results so that it only does so for text nodes.

This should appear below &quot;Reviewed by&quot; line followed by a blank line.
And this line should be replaced by the actual bug title.

&gt; LayoutTests/ChangeLog:7
&gt; +        Added 2 tests for rect-based hit-tests which test:
&gt; +        1) The case when a replaced element within a culled inline is in the
&gt; +        hit-test result.
&gt; +        2) The case when a text node within a culled inline is in the hit-test
&gt; +        result.

Again, this long description should appear below &quot;Reviewed by&quot; line followed by a blank line,
and this line should be replaced by the bug title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623368</commentid>
    <comment_count>10</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-14 14:59:14 -0700</bug_when>
    <thetext>Uploaded a second patch which only adds parent elements if the the node is text, as well as another layout test.

Why is it that when adding a text node, we want to add ancestors which are culled inlines? My best guess is it&apos;s because if we are doing a hit-test which includes text then it will usually cover a portion of the background of that text. But that would lead to two questions: 1) Why do we only do this for culled inlines? 2) Why do we examine all ancestors that are culled inlines, and not just the parent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623370</commentid>
    <comment_count>11</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-14 14:59:32 -0700</bug_when>
    <thetext>@rniwa: Thanks. I&apos;m assuming the patch will need some further changes so I will include those changes in the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623404</commentid>
    <comment_count>12</comment_count>
      <attachid>141795</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-14 16:03:22 -0700</bug_when>
    <thetext>Comment on attachment 141795
Patch

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

&gt; Source/WebCore/rendering/HitTestResult.cpp:585
&gt; +    if (node-&gt;renderer()-&gt;isInline() &amp;&amp; node-&gt;renderer()-&gt;isText()) {

Why keep the check for isInline? All text will be inline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623470</commentid>
    <comment_count>13</comment_count>
      <attachid>141817</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-14 17:06:29 -0700</bug_when>
    <thetext>Created attachment 141817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623471</commentid>
    <comment_count>14</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-14 17:07:57 -0700</bug_when>
    <thetext>Thanks. Addressed #9 and #12.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625498</commentid>
    <comment_count>15</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-16 08:52:57 -0700</bug_when>
    <thetext>Ping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626175</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-16 20:09:22 -0700</bug_when>
    <thetext>&gt; Ping

Unfortunately, I don&apos;t know enough about hit testing to review this patch.  It&apos;s probably better for Eric or dhyatt to review your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627818</commentid>
    <comment_count>17</comment_count>
      <attachid>141817</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-05-18 11:03:20 -0700</bug_when>
    <thetext>Comment on attachment 141817
Patch

This patch is closer, but now it will do the wrong thing with images/plug-ins, etc. when the mouse actually is inside where the enclosing inlines would be.

This is a performance optimization essentially to avoid creating line boxes for inline flows that are detected to match some enclosing parent. What this means is the answer you give on a hit test has to be identical to the answer that would have been given if the performance optimization were not in effect.

What is checked in currently is wrong, and all the patches that have been produced are also wrong. However, the latest patch is probably the &quot;least wrong&quot; of all of them, so in that sense it&apos;s an improvement. I don&apos;t mind landing this change, but it needs to be accompanied by a follow-up bug and FIXMEs in the code, so that we can actually fix this the right way in the future.

The right way to fix the bug is that you have to actually determine where the culled inline is (we have code elsewhere that does this sort of thing, e.g.,the rect/quad collection methods in RenderInline) and do an accurate test for intersection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629719</commentid>
    <comment_count>18</comment_count>
      <attachid>143135</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-21 16:54:08 -0700</bug_when>
    <thetext>Created attachment 143135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629730</commentid>
    <comment_count>19</comment_count>
      <attachid>143139</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-21 16:59:43 -0700</bug_when>
    <thetext>Created attachment 143139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629733</commentid>
    <comment_count>20</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-21 17:03:18 -0700</bug_when>
    <thetext>Thanks David. 

Note that rect-based hit-testing should halt/return when a node fills the entire hit-test region. Child nodes are searched before parents. Hence the code here which adds culled inlines to the test result is wrong for several reasons:
1) It assumes ancestor culled-inline nodes satisfy the hit-test condition (that is, they are greater than or equal to the size of the node being added to the hit-test result) which AFAICT is not necessarily true.
2) It adds all culled-inline ancestors, even when one of these might fill the entire hit-test region and hence stop the hit-test.

I updated the patch to partially address (2). If the node being added to the hit-test result fills the entire hit-test region, then we don&apos;t add any culled inline ancestors, otherwise we add them all. This fixes the particular case that we care about for pepper flash.

I briefly looked into exactly what would be required for a real fix but I&apos;m still not certain where the change should be made and it seems it would require some refactoring effort. It&apos;s probably better left for someone who better understands the hit-test code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631714</commentid>
    <comment_count>21</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-23 09:04:32 -0700</bug_when>
    <thetext>Ping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633089</commentid>
    <comment_count>22</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-05-24 13:02:56 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Thanks David. 
&gt; 
&gt; Note that rect-based hit-testing should halt/return when a node fills the entire hit-test region. Child nodes are searched before parents. Hence the code here which adds culled inlines to the test result is wrong for several reasons:
&gt; 1) It assumes ancestor culled-inline nodes satisfy the hit-test condition (that is, they are greater than or equal to the size of the node being added to the hit-test result) which AFAICT is not necessarily true.

&lt;!doctype html&gt;
&lt;span style=&quot;font-size:36px;background-color:yellow;&quot;&gt;&lt;img height=100 width=100 style=&quot;background-color:black&quot;&gt;&lt;/span&gt;

I put backgrounds in so you can see that an ancestor inline can in fact occupy an area that does not overlap with the image. It is possible for the hit test region to contain both nodes.

&gt; 2) It adds all culled-inline ancestors, even when one of these might fill the entire hit-test region and hence stop the hit-test.
&gt; 

This is true. In fact if you&apos;re culled by definition, any ancestors will occupy the same range, so at most you would only be including one culled inline ancestor, and the only reason you would include it would be because of the descender. To find out the dimensions of this descent you could just crawl up to the first ancestor that is not culled (typically the root line box) and then compare the placement/dimensions of that box.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633091</commentid>
    <comment_count>23</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-05-24 13:04:07 -0700</bug_when>
    <thetext>The ascent can stick out as well of course, e.g.,


&lt;!doctype html&gt;
&lt;span style=&quot;font-size:36px;background-color:yellow;&quot;&gt;&lt;img height=20 width=20 style=&quot;background-color:black&quot;&gt;&lt;/span&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633360</commentid>
    <comment_count>24</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-05-24 16:40:10 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #20)
&gt; &gt; Thanks David. 
&gt; &gt; 
&gt; &gt; Note that rect-based hit-testing should halt/return when a node fills the entire hit-test region. Child nodes are searched before parents. Hence the code here which adds culled inlines to the test result is wrong for several reasons:
&gt; &gt; 1) It assumes ancestor culled-inline nodes satisfy the hit-test condition (that is, they are greater than or equal to the size of the node being added to the hit-test result) which AFAICT is not necessarily true.
&gt; 
&gt; &lt;!doctype html&gt;
&gt; &lt;span style=&quot;font-size:36px;background-color:yellow;&quot;&gt;&lt;img height=100 width=100 style=&quot;background-color:black&quot;&gt;&lt;/span&gt;
&gt; 
&gt; I put backgrounds in so you can see that an ancestor inline can in fact occupy an area that does not overlap with the image. It is possible for the hit test region to contain both nodes.

I agree. But in this case, the hit-test will only contain (&lt;span&gt;, &lt;img&gt;) if the hit-test rect extends over the yellow region. If the black region completely covers the hit-test rect then only the &lt;img&gt; will be returned in the results. 
When the &lt;span&gt; is culled (e.g. by removing the bg color) the current behavior is for it to be added to the test result as well (regardless of the hit-test rect) which is wrong. My patch fixes this particular case.

&gt; 
&gt; &gt; 2) It adds all culled-inline ancestors, even when one of these might fill the entire hit-test region and hence stop the hit-test.
&gt; &gt; 
&gt; 
&gt; This is true. In fact if you&apos;re culled by definition, any ancestors will occupy the same range, so at most you would only be including one culled inline ancestor, and the only reason you would include it would be because of the descender. To find out the dimensions of this descent you could just crawl up to the first ancestor that is not culled (typically the root line box) and then compare the placement/dimensions of that box.

I believe you are saying that a full fix to the problem could work as follows:
1) First check if the node currently being added to the test result completely fills the hit-test rect. If it does, then we are done (this is my current patch).
2) If not, traverse up the tree to the first non-culled ancestor.
3) Check whether that ancestor intersects the hit-test region. If so, add the deepest culled inline to the hit-test result and we are done. (I guess do the intersection testing using the approach here http://code.google.com/searchframe#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/rendering/RenderLineBoxList.cpp&amp;exact_package=chromium&amp;q=RenderLineBoxList%20hitTest&amp;type=cs&amp;l=277)

However, I&apos;m worried about the side-effects of implementing (3) in addNodeToRectBasedHitTestResult. For example, addNodeToRectBasedHitTestResult is supposed to return false if the node being added fully intersects the hit test rectangle (signalling the stop condition). This assumption would be altered if it returned false when the node /or one of its ancestors/ filled the region. There are other subtleties that I&apos;m unsure of.

My preference would be to commit my current patch and defer the full fix to someone who understands the implications. But let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640989</commentid>
    <comment_count>25</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-06-04 16:41:43 -0700</bug_when>
    <thetext>It sounds like we can agree that this is an improvement over the current logic. I&apos;d love to see the cases that Hyatt mentioned also put in as test cases and a bug filed to track the work towards getting this code fully fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642013</commentid>
    <comment_count>26</comment_count>
      <attachid>145896</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-06-05 16:52:17 -0700</bug_when>
    <thetext>Created attachment 145896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642015</commentid>
    <comment_count>27</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-06-05 16:54:08 -0700</bug_when>
    <thetext>I integrated in the test cases suggested by Hyatt. There is one case that currently fails due to the bug, which I have commented out. I filed https://bugs.webkit.org/show_bug.cgi?id=88376 for a full fix to the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642020</commentid>
    <comment_count>28</comment_count>
      <attachid>145896</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-06-05 17:07:14 -0700</bug_when>
    <thetext>Comment on attachment 145896
Patch

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

I think this is an improvement over the current behavior. r=me if you change the test as I&apos;ve suggested.

&gt; Source/WebCore/rendering/HitTestResult.cpp:662
&gt; -    if (node-&gt;renderer()-&gt;isInline()) {
&gt; +    bool regionFilled = rect.contains(rectForPoint(pointInContainer));
&gt; +    // FIXME: This code (incorrectly) attempts to correct for culled inline nodes. See https://bugs.webkit.org/show_bug.cgi?id=85849.
&gt; +    if (node-&gt;renderer()-&gt;isInline() &amp;&amp; !regionFilled) {

It&apos;s sad to see this code duplication :( Any reason the IntRect version can&apos;t just call the FloatRect one?

&gt; LayoutTests/fast/dom/nodesFromRect-culled-inlines.html:36
&gt; +      /* FIXME: This fails due to: https://bugs.webkit.org/show_bug.cgi?id=88376
&gt; +      /* check(0, 98, 0, 1, 2, 0, [e.img, e.span]); */

This will probably just get forgotten if it&apos;s commented out. I&apos;d much rather see the test go in enabled but failing with a comment in the LayoutTests ChangeLog about how its expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642535</commentid>
    <comment_count>29</comment_count>
      <attachid>146044</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-06-06 09:24:55 -0700</bug_when>
    <thetext>Created attachment 146044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643639</commentid>
    <comment_count>30</comment_count>
      <attachid>146044</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-06-07 09:53:25 -0700</bug_when>
    <thetext>Comment on attachment 146044
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643649</commentid>
    <comment_count>31</comment_count>
      <attachid>146044</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 10:02:34 -0700</bug_when>
    <thetext>Comment on attachment 146044
Patch

Clearing flags on attachment: 146044

Committed r119733: &lt;http://trac.webkit.org/changeset/119733&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643650</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 10:02:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684428</commentid>
    <comment_count>33</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-01 12:02:25 -0700</bug_when>
    <thetext>please next time CC me on bugs changing the rect-based hit testing system. Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684437</commentid>
    <comment_count>34</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-01 12:05:11 -0700</bug_when>
    <thetext>&gt; please next time CC me on bugs changing the rect-based hit testing system. Thanks

You might be able to configure a watchlist regular expression to get CCed automagically:

http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/watchlist</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>140640</attachid>
            <date>2012-05-07 17:54:19 -0700</date>
            <delta_ts>2012-05-07 17:54:19 -0700</delta_ts>
            <desc>example</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>188</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5Pgo8c3BhbiB3aWR0aD0iMzgwIiBoZWlnaHQ9IjUxMCIgc3R5bGU9InZpc2li
aWxpdHk6IHZpc2libGU7Ij4KICA8aW1nIHdpZHRoPSIzODAiIGhlaWdodD0iNTEwIiBzdHlsZT0i
dmlzaWJpbGl0eTogdmlzaWJsZTsgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7IiAvPgo8L3NwYW4+
CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141745</attachid>
            <date>2012-05-14 09:57:15 -0700</date>
            <delta_ts>2012-05-14 14:47:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85849-20120514095745.patch</filename>
            <type>text/plain</type>
            <size>5640</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhmMTU3NGQ3Yjk2OGQx
MDg2OGU1MjEwOTkwYWFlZDFmNWRmZDU5Ny4uZTJkNjMyYTdhZmZmZTc2ZWYzNWYwZTUyZTQwYWNl
ZTU5ZDQyOWI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA1LTE0ICBSYXlt
ZXMgS2hvdXJ5ICA8cmF5bWVzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmVkIGNvZGUg
d2hpY2ggYmxpbmRseSBhZGRzIGN1bGxlZCBpbmxpbmVzIHRvIHJlY3QtYmFzZWQgaGl0LXRlc3QK
KyAgICAgICAgcmVzdWx0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODU4NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubGluZS1ib3guaHRtbAorCisg
ICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdCk6CisKIDIwMTItMDUt
MTAgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENoYW5n
ZSB0aGUgcmV0dXJuIHR5cGUgb2YgRW50cnkudG9VUkwoKSBiYWNrIHRvIFN0cmluZyBmcm9tIEtV
UkwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAppbmRleCBjMTlm
MTIyMmY5ZjlmMTU2ZWUyYTljZjg1ZjIxYzVlOTVkNjBlMTYxLi4wMzc1NmJjMzM1ODZlZjNjM2I5
ZmU0YmE5MGJlODRmZTVkYWVhYjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRl
c3RSZXN1bHQuY3BwCkBAIC01ODIsMjAgKzU4Miw2IEBAIGJvb2wgSGl0VGVzdFJlc3VsdDo6YWRk
Tm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiBub2RlLCBjb25zdCBMYXlvdXRQb2ludCYK
IAogICAgIG11dGFibGVSZWN0QmFzZWRUZXN0UmVzdWx0KCkuYWRkKG5vZGUpOwogCi0gICAgaWYg
KG5vZGUtPnJlbmRlcmVyKCktPmlzSW5saW5lKCkpIHsKLSAgICAgICAgZm9yIChSZW5kZXJPYmpl
Y3QqIGN1cnIgPSBub2RlLT5yZW5kZXJlcigpLT5wYXJlbnQoKTsgY3VycjsgY3VyciA9IGN1cnIt
PnBhcmVudCgpKSB7Ci0gICAgICAgICAgICBpZiAoIWN1cnItPmlzUmVuZGVySW5saW5lKCkpCi0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIFdlIG5l
ZWQgdG8gbWFrZSBzdXJlIHRoZSBub2RlcyBmb3IgY3VsbGVkIGlubGluZXMgZ2V0IGluY2x1ZGVk
LgotICAgICAgICAgICAgUmVuZGVySW5saW5lKiBjdXJySW5saW5lID0gdG9SZW5kZXJJbmxpbmUo
Y3Vycik7Ci0gICAgICAgICAgICBpZiAoY3VycklubGluZS0+YWx3YXlzQ3JlYXRlTGluZUJveGVz
KCkpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlm
IChjdXJySW5saW5lLT52aXNpYmxlVG9IaXRUZXN0aW5nKCkgJiYgY3VycklubGluZS0+bm9kZSgp
KQotICAgICAgICAgICAgICAgIG11dGFibGVSZWN0QmFzZWRUZXN0UmVzdWx0KCkuYWRkKGN1cnJJ
bmxpbmUtPm5vZGUoKS0+c2hhZG93QW5jZXN0b3JOb2RlKCkpOwotICAgICAgICB9Ci0gICAgfQog
ICAgIHJldHVybiAhcmVjdC5jb250YWlucyhyZWN0Rm9yUG9pbnQocG9pbnRJbkNvbnRhaW5lcikp
OwogfQogCkBAIC02MTUsMjAgKzYwMSw2IEBAIGJvb2wgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRv
UmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiBub2RlLCBjb25zdCBMYXlvdXRQb2ludCYKIAogICAg
IG11dGFibGVSZWN0QmFzZWRUZXN0UmVzdWx0KCkuYWRkKG5vZGUpOwogCi0gICAgaWYgKG5vZGUt
PnJlbmRlcmVyKCktPmlzSW5saW5lKCkpIHsKLSAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1
cnIgPSBub2RlLT5yZW5kZXJlcigpLT5wYXJlbnQoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVu
dCgpKSB7Ci0gICAgICAgICAgICBpZiAoIWN1cnItPmlzUmVuZGVySW5saW5lKCkpCi0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8g
bWFrZSBzdXJlIHRoZSBub2RlcyBmb3IgY3VsbGVkIGlubGluZXMgZ2V0IGluY2x1ZGVkLgotICAg
ICAgICAgICAgUmVuZGVySW5saW5lKiBjdXJySW5saW5lID0gdG9SZW5kZXJJbmxpbmUoY3Vycik7
Ci0gICAgICAgICAgICBpZiAoY3VycklubGluZS0+YWx3YXlzQ3JlYXRlTGluZUJveGVzKCkpCi0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChjdXJy
SW5saW5lLT52aXNpYmxlVG9IaXRUZXN0aW5nKCkgJiYgY3VycklubGluZS0+bm9kZSgpKQotICAg
ICAgICAgICAgICAgIG11dGFibGVSZWN0QmFzZWRUZXN0UmVzdWx0KCkuYWRkKGN1cnJJbmxpbmUt
Pm5vZGUoKS0+c2hhZG93QW5jZXN0b3JOb2RlKCkpOwotICAgICAgICB9Ci0gICAgfQogICAgIHJl
dHVybiAhcmVjdC5jb250YWlucyhyZWN0Rm9yUG9pbnQocG9pbnRJbkNvbnRhaW5lcikpOwogfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNWEyZGEwM2NjOGIxZWRiMjc4NDQwNjY0Yjc4NzI1YjYyZDBjODQxYi4uMjcxZjA1
ZTNlZmJiNzgwYzgzZTE1YTYzYTgxODU2MDA5ZmVlMWU5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTA1LTE0ICBSYXltZXMgS2hvdXJ5ICA8cmF5bWVzQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBBZGRlZCB0ZXN0IGZvciByZWN0LWJhc2VkIGhpdC10ZXN0IHdoaWNoIHRlc3RzIHRoZSBj
YXNlIHdoZW4gYW4gaW5saW5lCisgICAgICAgIHdpdGhpbiBhIGN1bGxlZCBpbmxpbmUgaXMgaW4g
dGhlIGhpdC10ZXN0IHJlc3VsdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg1ODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubGluZS1ib3gtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubGluZS1ib3gu
aHRtbDogQWRkZWQuCisKIDIwMTItMDUtMTAgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwu
cG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bRFJUXSBmYXN0L2V2ZW50cy9q
cy1rZXlib2FyZC1ldmVudC1jcmVhdGlvbi5odG1sIG5lZWRzIHJlYmFzZWxpbmluZwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbmxpbmUtYm94LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5saW5lLWJveC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzExYzdjZDRmNWE1MzJmYWE4MzczNGRhNjJjMjc3MGM3
MjVlYWNiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJv
bVJlY3QtaW5saW5lLWJveC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisgIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBBbGwgY29ycmVj
dCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3Ig
cmVjdAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlu
bGluZS1ib3guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5saW5l
LWJveC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiNjcwMjAyOGNmYmNlYmY4YWY1ZWQxNDY1Y2RiYmVhZjk1
ODU4OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21S
ZWN0LWlubGluZS1ib3guaHRtbApAQCAtMCwwICsxLDQzIEBACis8aHRtbD4KKzxoZWFkPgorICA8
dGl0bGU+RG9jdW1lbnQ6Om5vZGVzRnJvbVJlY3QgdGVzdCAtIGJ1ZyA4NTg0OTwvdGl0bGU+Cisg
IDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMiPjwvc2NyaXB0PgorICA8
c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICB9CisKKyAgICAgIHZhciBlID0g
e307CisKKyAgICAgIC8vIFNldCB1cCBzaG9ydGN1dCBhY2Nlc3MgdG8gZWxlbWVudHMKKyAgICAg
IGVbJ2h0bWwnXSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIilbMF07Cisg
ICAgICBbJ2JvZHknLCAnc3BhbicsICdpbWcnXS5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKKyAgICAg
ICAgZVthXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpOworICAgICAgfSk7CisKKyAgICAg
IHdpbmRvdy5zY3JvbGxUbygwLCAwKTsKKworICAgICAgY2hlY2soMjAsIDIwLCAwLCAwLCAwLCAw
LCBbZS5pbWddKTsKKyAgICAgIGNoZWNrKDIwLCAyMCwgNSwgNSwgNSwgNSwgW2UuaW1nXSk7CisK
KyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0g
cnVuVGVzdDsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgc3R5bGU9InBh
ZGRpbmc6IDA7IG1hcmdpbjogMDsiPgorICA8c3BhbiBpZD0ic3BhbiIgc3R5bGU9Im1hcmdpbjog
MDsgcGFkZGluZzogMDsiPgorICAgIDxpbWcgaWQ9ImltZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIx
MDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgbWFyZ2luOiAwOyBwYWRkaW5nOiAw
OyIgLz4KKyAgPC9zcGFuPgorCisgIDxzcGFuIGlkPSJjb25zb2xlIiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyB0b3A6IDE1MHB4OyI+PC9zcGFuPgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141795</attachid>
            <date>2012-05-14 14:47:59 -0700</date>
            <delta_ts>2012-05-14 17:06:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85849-20120514144830.patch</filename>
            <type>text/plain</type>
            <size>8043</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhmMTU3NGQ3Yjk2OGQx
MDg2OGU1MjEwOTkwYWFlZDFmNWRmZDU5Ny4uZjQ5NmM2M2RmYTc0MGIxZDJhZmRlMGRiNzA5ZGIx
NmRiOWQyZGQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA1LTE0ICBSYXlt
ZXMgS2hvdXJ5ICA8cmF5bWVzQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb2RpZmllZCBjb2Rl
IHdoaWNoIGJsaW5kbHkgYWRkcyBjdWxsZWQgaW5saW5lcyB0byByZWN0LWJhc2VkIGhpdC10ZXN0
CisgICAgICAgIHJlc3VsdHMgc28gdGhhdCBpdCBvbmx5IGRvZXMgc28gZm9yIHRleHQgbm9kZXMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTg0OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZh
c3QvZG9tL25vZGVzRnJvbVJlY3QtaW5saW5lLWJveC5odG1sCisKKyAgICAgICAgKiByZW5kZXJp
bmcvSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojph
ZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KToKKwogMjAxMi0wNS0xMCAgS2ludWtvIFlhc3Vk
YSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2hhbmdlIHRoZSByZXR1cm4gdHlw
ZSBvZiBFbnRyeS50b1VSTCgpIGJhY2sgdG8gU3RyaW5nIGZyb20gS1VSTApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCmluZGV4IGMxOWYxMjIyZjlmOWYxNTZlZTJh
OWNmODVmMjFjNWU5NWQ2MGUxNjEuLjk0MWEzODJiMjk1YTYyZDJlODhiYWIyOGJjZDdiNTY5OTRm
OGUzMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAg
LTU4MiwxNiArNTgyLDE2IEBAIGJvb2wgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRvUmVjdEJhc2Vk
VGVzdFJlc3VsdChOb2RlKiBub2RlLCBjb25zdCBMYXlvdXRQb2ludCYKIAogICAgIG11dGFibGVS
ZWN0QmFzZWRUZXN0UmVzdWx0KCkuYWRkKG5vZGUpOwogCi0gICAgaWYgKG5vZGUtPnJlbmRlcmVy
KCktPmlzSW5saW5lKCkpIHsKKyAgICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+aXNJbmxpbmUoKSAm
JiBub2RlLT5yZW5kZXJlcigpLT5pc1RleHQoKSkgewogICAgICAgICBmb3IgKFJlbmRlck9iamVj
dCogY3VyciA9IG5vZGUtPnJlbmRlcmVyKCktPnBhcmVudCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+
cGFyZW50KCkpIHsKICAgICAgICAgICAgIGlmICghY3Vyci0+aXNSZW5kZXJJbmxpbmUoKSkKICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICAvLyBXZSBu
ZWVkIHRvIG1ha2Ugc3VyZSB0aGUgbm9kZXMgZm9yIGN1bGxlZCBpbmxpbmVzIGdldCBpbmNsdWRl
ZC4KICAgICAgICAgICAgIFJlbmRlcklubGluZSogY3VycklubGluZSA9IHRvUmVuZGVySW5saW5l
KGN1cnIpOwogICAgICAgICAgICAgaWYgKGN1cnJJbmxpbmUtPmFsd2F5c0NyZWF0ZUxpbmVCb3hl
cygpKQogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCisKICAgICAgICAgICAg
IGlmIChjdXJySW5saW5lLT52aXNpYmxlVG9IaXRUZXN0aW5nKCkgJiYgY3VycklubGluZS0+bm9k
ZSgpKQogICAgICAgICAgICAgICAgIG11dGFibGVSZWN0QmFzZWRUZXN0UmVzdWx0KCkuYWRkKGN1
cnJJbmxpbmUtPm5vZGUoKS0+c2hhZG93QW5jZXN0b3JOb2RlKCkpOwogICAgICAgICB9CkBAIC02
MTUsMTYgKzYxNSwxNiBAQCBib29sIEhpdFRlc3RSZXN1bHQ6OmFkZE5vZGVUb1JlY3RCYXNlZFRl
c3RSZXN1bHQoTm9kZSogbm9kZSwgY29uc3QgTGF5b3V0UG9pbnQmCiAKICAgICBtdXRhYmxlUmVj
dEJhc2VkVGVzdFJlc3VsdCgpLmFkZChub2RlKTsKIAotICAgIGlmIChub2RlLT5yZW5kZXJlcigp
LT5pc0lubGluZSgpKSB7CisgICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzSW5saW5lKCkgJiYg
bm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0KCkpIHsKICAgICAgICAgZm9yIChSZW5kZXJPYmplY3Qq
IGN1cnIgPSBub2RlLT5yZW5kZXJlcigpLT5wYXJlbnQoKTsgY3VycjsgY3VyciA9IGN1cnItPnBh
cmVudCgpKSB7CiAgICAgICAgICAgICBpZiAoIWN1cnItPmlzUmVuZGVySW5saW5lKCkpCiAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgLy8gV2UgbmVl
ZCB0byBtYWtlIHN1cmUgdGhlIG5vZGVzIGZvciBjdWxsZWQgaW5saW5lcyBnZXQgaW5jbHVkZWQu
CiAgICAgICAgICAgICBSZW5kZXJJbmxpbmUqIGN1cnJJbmxpbmUgPSB0b1JlbmRlcklubGluZShj
dXJyKTsKICAgICAgICAgICAgIGlmIChjdXJySW5saW5lLT5hbHdheXNDcmVhdGVMaW5lQm94ZXMo
KSkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBp
ZiAoY3VycklubGluZS0+dmlzaWJsZVRvSGl0VGVzdGluZygpICYmIGN1cnJJbmxpbmUtPm5vZGUo
KSkKICAgICAgICAgICAgICAgICBtdXRhYmxlUmVjdEJhc2VkVGVzdFJlc3VsdCgpLmFkZChjdXJy
SW5saW5lLT5ub2RlKCktPnNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDVhMmRhMDNjYzhiMWVkYjI3ODQ0MDY2NGI3ODcyNWI2MmQwYzg0MWIuLjJiZTFjZTZlZDYyOTkx
ZjgxOGI0NWUxMWRkZmZlZTM5YmE0ZGNiZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0w
NS0xNCAgUmF5bWVzIEtob3VyeSAgPHJheW1lc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRk
ZWQgMiB0ZXN0cyBmb3IgcmVjdC1iYXNlZCBoaXQtdGVzdHMgd2hpY2ggdGVzdDoKKyAgICAgICAg
MSkgVGhlIGNhc2Ugd2hlbiBhIHJlcGxhY2VkIGVsZW1lbnQgd2l0aGluIGEgY3VsbGVkIGlubGlu
ZSBpcyBpbiB0aGUKKyAgICAgICAgaGl0LXRlc3QgcmVzdWx0LgorICAgICAgICAyKSBUaGUgY2Fz
ZSB3aGVuIGEgdGV4dCBub2RlIHdpdGhpbiBhIGN1bGxlZCBpbmxpbmUgaXMgaW4gdGhlIGhpdC10
ZXN0CisgICAgICAgIHJlc3VsdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg1ODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubGluZS1yZXBsYWNlZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5saW5l
LXJlcGxhY2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL25vZGVzRnJvbVJlY3Qt
aW5saW5lLXRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9ub2Rl
c0Zyb21SZWN0LWlubGluZS10ZXh0Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTA1LTEwICBNaWtoYWls
IFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFtF
RkxdW0RSVF0gZmFzdC9ldmVudHMvanMta2V5Ym9hcmQtZXZlbnQtY3JlYXRpb24uaHRtbCBuZWVk
cyByZWJhc2VsaW5pbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJv
bVJlY3QtaW5saW5lLXJlcGxhY2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L25vZGVzRnJvbVJlY3QtaW5saW5lLXJlcGxhY2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
MTFjN2NkNGY1YTUzMmZhYTgzNzM0ZGE2MmMyNzcwYzcyNWVhY2JiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbmxpbmUtcmVwbGFjZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorICBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJl
Y3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbmxpbmUtcmVwbGFjZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5saW5lLXJlcGxhY2VkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2I2NzAyMDI4Y2ZiY2ViZjhhZjVlZDE0NjVjZGJiZWFmOTU4NTg5OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5saW5l
LXJlcGxhY2VkLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxl
PkRvY3VtZW50Ojpub2Rlc0Zyb21SZWN0IHRlc3QgLSBidWcgODU4NDk8L3RpdGxlPgorICA8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy9ub2Rlc0Zyb21SZWN0LmpzIj48L3NjcmlwdD4KKyAgPHNjcmlw
dCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKyAgICBmdW5jdGlvbiBydW5UZXN0KCkK
KyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgfQorCisgICAgICB2YXIgZSA9IHt9Owor
CisgICAgICAvLyBTZXQgdXAgc2hvcnRjdXQgYWNjZXNzIHRvIGVsZW1lbnRzCisgICAgICBlWydo
dG1sJ10gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpWzBdOworICAgICAg
Wydib2R5JywgJ3NwYW4nLCAnaW1nJ10uZm9yRWFjaChmdW5jdGlvbihhKSB7CisgICAgICAgIGVb
YV0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKTsKKyAgICAgIH0pOworCisgICAgICB3aW5k
b3cuc2Nyb2xsVG8oMCwgMCk7CisKKyAgICAgIGNoZWNrKDIwLCAyMCwgMCwgMCwgMCwgMCwgW2Uu
aW1nXSk7CisgICAgICBjaGVjaygyMCwgMjAsIDUsIDUsIDUsIDUsIFtlLmltZ10pOworCisgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRl
c3Q7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiIHN0eWxlPSJwYWRkaW5n
OiAwOyBtYXJnaW46IDA7Ij4KKyAgPHNwYW4gaWQ9InNwYW4iIHN0eWxlPSJtYXJnaW46IDA7IHBh
ZGRpbmc6IDA7Ij4KKyAgICA8aW1nIGlkPSJpbWciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBz
dHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7IG1hcmdpbjogMDsgcGFkZGluZzogMDsiIC8+
CisgIDwvc3Bhbj4KKworICA8c3BhbiBpZD0iY29uc29sZSIgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgdG9wOiAxNTBweDsiPjwvc3Bhbj4KKyAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubGluZS10ZXh0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5saW5lLXRleHQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwMDMzMmM0MThjZTc5ZDlhOTBiMTUzNDdiZjIxYTc5
N2FkMzU1MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zy
b21SZWN0LWlubGluZS10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1RoaXMgaXMg
YSBsaW5lIG9mIHRleHQgd2l0aGluIGEgc3Bhbi4gUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciBy
ZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5saW5lLXRleHQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5saW5lLXRleHQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lMTlmNTUyODc4MjNhYTlmMzlmZTM5NDk3NDA1NDFhZWFkYzAyM2ViCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbmxpbmUtdGV4dC5o
dG1sCkBAIC0wLDAgKzEsNDMgQEAKKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5Eb2N1bWVudDo6
bm9kZXNGcm9tUmVjdCB0ZXN0IC0gYnVnIDg1ODQ5PC90aXRsZT4KKyAgPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0iYXBw
bGljYXRpb24vamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgIH0KKworICAgICAgdmFyIGUgPSB7fTsKKworICAgICAgLy8g
U2V0IHVwIHNob3J0Y3V0IGFjY2VzcyB0byBlbGVtZW50cworICAgICAgZVsnaHRtbCddID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKVswXTsKKyAgICAgIFsnYm9keScsICdz
cGFuJywgJ2ltZyddLmZvckVhY2goZnVuY3Rpb24oYSkgeworICAgICAgICBlW2FdID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoYSk7CisgICAgICB9KTsKKworICAgICAgd2luZG93LnNjcm9sbFRv
KDAsIDApOworCisgICAgICBjaGVjaygxMCwgMTAsIDAsIDAsIDAsIDAsIFtlLnNwYW4uZmlyc3RD
aGlsZF0pOworICAgICAgY2hlY2soMTAsIDEwLCAxLCAxLCAwLCAwLCBbZS5zcGFuLmZpcnN0Q2hp
bGQsIGUuc3Bhbl0pOworCisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAg
d2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9
ImJvZHkiIHN0eWxlPSJwYWRkaW5nOiAwOyBtYXJnaW46IDA7Ij4KKyAgPHNwYW4gaWQ9InNwYW4i
IHN0eWxlPSJtYXJnaW46IDA7IHBhZGRpbmc6IDA7Ij4KK1RoaXMgaXMgYSBsaW5lIG9mIHRleHQg
d2l0aGluIGEgc3Bhbi4KKyAgPC9zcGFuPgorCisgIDxzcGFuIGlkPSJjb25zb2xlIiBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE1MHB4OyI+PC9zcGFuPgorICA8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141817</attachid>
            <date>2012-05-14 17:06:29 -0700</date>
            <delta_ts>2012-05-21 16:53:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85849-20120514170700.patch</filename>
            <type>text/plain</type>
            <size>8119</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhmMTU3NGQ3Yjk2OGQx
MDg2OGU1MjEwOTkwYWFlZDFmNWRmZDU5Ny4uYWNkNmQwYmMzOTNjZGQ1MWNmNWFkNGU0MDg0N2Uz
NTA2MTg0NGM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA1LTE0ICBSYXlt
ZXMgS2hvdXJ5ICA8cmF5bWVzQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmNvcnJlY3QgcmVj
dC1iYXNlZCBoaXQtdGVzdCByZXN1bHQgZm9yIHJlcGxhY2VkIGVsZW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTg0OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vZGlmaWVkIGNvZGUgd2hpY2gg
YmxpbmRseSBhZGRzIGN1bGxlZCBpbmxpbmVzIHRvIHJlY3QtYmFzZWQgaGl0LXRlc3QKKyAgICAg
ICAgcmVzdWx0cyBzbyB0aGF0IGl0IG9ubHkgZG9lcyBzbyBmb3IgdGV4dCBub2Rlcy4KKworICAg
ICAgICBUZXN0OiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubGluZS1ib3guaHRtbAorCisgICAg
ICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGl0
VGVzdFJlc3VsdDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdCk6CisKIDIwMTItMDUtMTAg
IEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENoYW5nZSB0
aGUgcmV0dXJuIHR5cGUgb2YgRW50cnkudG9VUkwoKSBiYWNrIHRvIFN0cmluZyBmcm9tIEtVUkwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAppbmRleCBjMTlmMTIy
MmY5ZjlmMTU2ZWUyYTljZjg1ZjIxYzVlOTVkNjBlMTYxLi41YzhlMDlhMWI1ZmM2OWZmN2M2NzY1
YjJiMDUzYTg3NmUxMzdkNDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RS
ZXN1bHQuY3BwCkBAIC01ODIsMTYgKzU4MiwxNiBAQCBib29sIEhpdFRlc3RSZXN1bHQ6OmFkZE5v
ZGVUb1JlY3RCYXNlZFRlc3RSZXN1bHQoTm9kZSogbm9kZSwgY29uc3QgTGF5b3V0UG9pbnQmCiAK
ICAgICBtdXRhYmxlUmVjdEJhc2VkVGVzdFJlc3VsdCgpLmFkZChub2RlKTsKIAotICAgIGlmIChu
b2RlLT5yZW5kZXJlcigpLT5pc0lubGluZSgpKSB7CisgICAgaWYgKG5vZGUtPnJlbmRlcmVyKCkt
PmlzVGV4dCgpKSB7CiAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJyID0gbm9kZS0+cmVu
ZGVyZXIoKS0+cGFyZW50KCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnQoKSkgewogICAgICAg
ICAgICAgaWYgKCFjdXJyLT5pc1JlbmRlcklubGluZSgpKQogICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRo
ZSBub2RlcyBmb3IgY3VsbGVkIGlubGluZXMgZ2V0IGluY2x1ZGVkLgogICAgICAgICAgICAgUmVu
ZGVySW5saW5lKiBjdXJySW5saW5lID0gdG9SZW5kZXJJbmxpbmUoY3Vycik7CiAgICAgICAgICAg
ICBpZiAoY3VycklubGluZS0+YWx3YXlzQ3JlYXRlTGluZUJveGVzKCkpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgaWYgKGN1cnJJbmxpbmUtPnZp
c2libGVUb0hpdFRlc3RpbmcoKSAmJiBjdXJySW5saW5lLT5ub2RlKCkpCiAgICAgICAgICAgICAg
ICAgbXV0YWJsZVJlY3RCYXNlZFRlc3RSZXN1bHQoKS5hZGQoY3VycklubGluZS0+bm9kZSgpLT5z
aGFkb3dBbmNlc3Rvck5vZGUoKSk7CiAgICAgICAgIH0KQEAgLTYxNSwxNiArNjE1LDE2IEBAIGJv
b2wgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiBub2Rl
LCBjb25zdCBMYXlvdXRQb2ludCYKIAogICAgIG11dGFibGVSZWN0QmFzZWRUZXN0UmVzdWx0KCku
YWRkKG5vZGUpOwogCi0gICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzSW5saW5lKCkpIHsKKyAg
ICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0KCkpIHsKICAgICAgICAgZm9yIChSZW5kZXJP
YmplY3QqIGN1cnIgPSBub2RlLT5yZW5kZXJlcigpLT5wYXJlbnQoKTsgY3VycjsgY3VyciA9IGN1
cnItPnBhcmVudCgpKSB7CiAgICAgICAgICAgICBpZiAoIWN1cnItPmlzUmVuZGVySW5saW5lKCkp
CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgLy8g
V2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIG5vZGVzIGZvciBjdWxsZWQgaW5saW5lcyBnZXQgaW5j
bHVkZWQuCiAgICAgICAgICAgICBSZW5kZXJJbmxpbmUqIGN1cnJJbmxpbmUgPSB0b1JlbmRlcklu
bGluZShjdXJyKTsKICAgICAgICAgICAgIGlmIChjdXJySW5saW5lLT5hbHdheXNDcmVhdGVMaW5l
Qm94ZXMoKSkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAorCiAgICAgICAg
ICAgICBpZiAoY3VycklubGluZS0+dmlzaWJsZVRvSGl0VGVzdGluZygpICYmIGN1cnJJbmxpbmUt
Pm5vZGUoKSkKICAgICAgICAgICAgICAgICBtdXRhYmxlUmVjdEJhc2VkVGVzdFJlc3VsdCgpLmFk
ZChjdXJySW5saW5lLT5ub2RlKCktPnNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDVhMmRhMDNjYzhiMWVkYjI3ODQ0MDY2NGI3ODcyNWI2MmQwYzg0MWIuLjkyMzIwMzhi
MzE3YjdhNmNhODA5NzQwZjFmMzc1ZjYwOGNlNWY2MzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxMi0wNS0xNCAgUmF5bWVzIEtob3VyeSAgPHJheW1lc0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgSW5jb3JyZWN0IHJlY3QtYmFzZWQgaGl0LXRlc3QgcmVzdWx0IGZvciByZXBsYWNlZCBlbGVt
ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU4
NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCAyIHRlc3RzIGZvciByZWN0LWJhc2VkIGhpdC10ZXN0cyB3aGljaCB0ZXN0OgorICAgICAgICAx
KSBUaGUgY2FzZSB3aGVuIGEgcmVwbGFjZWQgZWxlbWVudCB3aXRoaW4gYSBjdWxsZWQgaW5saW5l
IGlzIGluIHRoZQorICAgICAgICBoaXQtdGVzdCByZXN1bHQuCisgICAgICAgIDIpIFRoZSBjYXNl
IHdoZW4gYSB0ZXh0IG5vZGUgd2l0aGluIGEgY3VsbGVkIGlubGluZSBpcyBpbiB0aGUgaGl0LXRl
c3QKKyAgICAgICAgcmVzdWx0LgorCisgICAgICAgICogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1p
bmxpbmUtcmVwbGFjZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9u
b2Rlc0Zyb21SZWN0LWlubGluZS1yZXBsYWNlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9ub2Rlc0Zyb21SZWN0LWlubGluZS10ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbmxpbmUtdGV4dC5odG1sOiBBZGRlZC4KKwog
MjAxMi0wNS0xMCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVs
LmNvbT4KIAogICAgICAgICBbRUZMXVtEUlRdIGZhc3QvZXZlbnRzL2pzLWtleWJvYXJkLWV2ZW50
LWNyZWF0aW9uLmh0bWwgbmVlZHMgcmViYXNlbGluaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubGluZS1yZXBsYWNlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubGluZS1yZXBsYWNlZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzExYzdjZDRmNWE1MzJmYWE4MzczNGRhNjJjMjc3MGM3MjVlYWNi
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3Qt
aW5saW5lLXJlcGxhY2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKyAgUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEFsbCBjb3JyZWN0
IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciBy
ZWN0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5s
aW5lLXJlcGxhY2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlu
bGluZS1yZXBsYWNlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiNjcwMjAyOGNmYmNlYmY4YWY1ZWQxNDY1
Y2RiYmVhZjk1ODU4OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9u
b2Rlc0Zyb21SZWN0LWlubGluZS1yZXBsYWNlZC5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzxodG1s
PgorPGhlYWQ+CisgIDx0aXRsZT5Eb2N1bWVudDo6bm9kZXNGcm9tUmVjdCB0ZXN0IC0gYnVnIDg1
ODQ5PC90aXRsZT4KKyAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcyI+
PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgIH0KKwor
ICAgICAgdmFyIGUgPSB7fTsKKworICAgICAgLy8gU2V0IHVwIHNob3J0Y3V0IGFjY2VzcyB0byBl
bGVtZW50cworICAgICAgZVsnaHRtbCddID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
Imh0bWwiKVswXTsKKyAgICAgIFsnYm9keScsICdzcGFuJywgJ2ltZyddLmZvckVhY2goZnVuY3Rp
b24oYSkgeworICAgICAgICBlW2FdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSk7CisgICAg
ICB9KTsKKworICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDApOworCisgICAgICBjaGVjaygyMCwg
MjAsIDAsIDAsIDAsIDAsIFtlLmltZ10pOworICAgICAgY2hlY2soMjAsIDIwLCA1LCA1LCA1LCA1
LCBbZS5pbWddKTsKKworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdp
bmRvdy5vbmxvYWQgPSBydW5UZXN0OworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJi
b2R5IiBzdHlsZT0icGFkZGluZzogMDsgbWFyZ2luOiAwOyI+CisgIDxzcGFuIGlkPSJzcGFuIiBz
dHlsZT0ibWFyZ2luOiAwOyBwYWRkaW5nOiAwOyI+CisgICAgPGltZyBpZD0iaW1nIiB3aWR0aD0i
MTAwIiBoZWlnaHQ9IjEwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsYWNrOyBtYXJnaW46
IDA7IHBhZGRpbmc6IDA7IiAvPgorICA8L3NwYW4+CisKKyAgPHNwYW4gaWQ9ImNvbnNvbGUiIHN0
eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTUwcHg7Ij48L3NwYW4+CisgIDxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVj
dC1pbmxpbmUtdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zy
b21SZWN0LWlubGluZS10ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDAzMzJjNDE4Y2U3
OWQ5YTkwYjE1MzQ3YmYyMWE3OTdhZDM1NTI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbmxpbmUtdGV4dC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2IEBACitUaGlzIGlzIGEgbGluZSBvZiB0ZXh0IHdpdGhpbiBhIHNwYW4uIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBBbGwgY29ycmVj
dCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3Ig
cmVjdAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlu
bGluZS10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubGlu
ZS10ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE5ZjU1Mjg3ODIzYWE5ZjM5ZmUzOTQ5NzQwNTQxYWVh
ZGMwMjNlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJv
bVJlY3QtaW5saW5lLXRleHQuaHRtbApAQCAtMCwwICsxLDQzIEBACis8aHRtbD4KKzxoZWFkPgor
ICA8dGl0bGU+RG9jdW1lbnQ6Om5vZGVzRnJvbVJlY3QgdGVzdCAtIGJ1ZyA4NTg0OTwvdGl0bGU+
CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMiPjwvc2NyaXB0Pgor
ICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICB9CisKKyAgICAgIHZhciBl
ID0ge307CisKKyAgICAgIC8vIFNldCB1cCBzaG9ydGN1dCBhY2Nlc3MgdG8gZWxlbWVudHMKKyAg
ICAgIGVbJ2h0bWwnXSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIilbMF07
CisgICAgICBbJ2JvZHknLCAnc3BhbicsICdpbWcnXS5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKKyAg
ICAgICAgZVthXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpOworICAgICAgfSk7CisKKyAg
ICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTsKKworICAgICAgY2hlY2soMTAsIDEwLCAwLCAwLCAw
LCAwLCBbZS5zcGFuLmZpcnN0Q2hpbGRdKTsKKyAgICAgIGNoZWNrKDEwLCAxMCwgMSwgMSwgMCwg
MCwgW2Uuc3Bhbi5maXJzdENoaWxkLCBlLnNwYW5dKTsKKworICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IGlkPSJib2R5IiBzdHlsZT0icGFkZGluZzogMDsgbWFyZ2luOiAwOyI+
CisgIDxzcGFuIGlkPSJzcGFuIiBzdHlsZT0ibWFyZ2luOiAwOyBwYWRkaW5nOiAwOyI+CitUaGlz
IGlzIGEgbGluZSBvZiB0ZXh0IHdpdGhpbiBhIHNwYW4uCisgIDwvc3Bhbj4KKworICA8c3BhbiBp
ZD0iY29uc29sZSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNTBweDsiPjwvc3Bh
bj4KKyAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143135</attachid>
            <date>2012-05-21 16:54:08 -0700</date>
            <delta_ts>2012-05-21 16:59:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85849-20120521165225.patch</filename>
            <type>text/plain</type>
            <size>7694</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAzZDU2Y2IwYjEwNzQ3
YjBmZDVkMzNjMWQ2OWU5NjliNDc2M2E0ZC4uNTI4NDU5YTQ5NjBmMmNiZWJjNDBkYjM5MTkzNTgz
ODRkNTA1YWIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA1LTE0ICBSYXlt
ZXMgS2hvdXJ5ICA8cmF5bWVzQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmNvcnJlY3QgcmVj
dC1iYXNlZCBoaXQtdGVzdCByZXN1bHQgZm9yIGN1bGxlZC1pbmxpbmUgZWxlbWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1ODQ5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZpZWQgY29kZSB3
aGljaCBibGluZGx5IGFkZHMgY3VsbGVkIGlubGluZXMgdG8gcmVjdC1iYXNlZCBoaXQtdGVzdAor
ICAgICAgICByZXN1bHRzIHNvIHRoYXQgaXQgb25seSBkb2VzIHNvIGlmIHRoZSBjaGlsZCBub2Rl
IGRvZXMgbm90IGZ1bGx5IGNvdmVyCisgICAgICAgIHRoZSBoaXQtdGVzdCByZWdpb24uCisKKyAg
ICAgICAgVGVzdDogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1jdWxsZWQtaW5saW5lLmh0bWwKKwor
ICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhpdFRlc3RSZXN1bHQ6OmFkZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1bHQpOgorCiAyMDEyLTA1
LTE4ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogZW1wdHkgQ1NTIERlY2xhcmF0aW9uIGlzIGdlbmVyYXRlZCBieSBjbGlj
a2luZyB0aGUgbGVmdCBzcGFjZSBvZiAndXNlciBhZ2VudCBzdHlsZXNoZWV0JyBvbiBTdHlsZXMg
c2lkZWJhciBvZiBFbGVtZW50cyBwYW5lbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRl
c3RSZXN1bHQuY3BwCmluZGV4IDY2ZTFkYTk2Yjk4MTU3NWFjMTIwOTc4MTJlMzUyNWQzMGEyNTdl
MzguLmI0YjVlZGUxMDBhYTdlNGUzMDVlZTlmOTVlYjM4MGNmZjNmNWFmM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTYyMiwyMSArNjIyLDIzIEBA
IGJvb2wgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiBu
b2RlLCBjb25zdCBMYXlvdXRQb2ludCYKIAogICAgIG11dGFibGVSZWN0QmFzZWRUZXN0UmVzdWx0
KCkuYWRkKG5vZGUpOwogCi0gICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzSW5saW5lKCkpIHsK
KyAgICBib29sIHJlZ2lvbkZpbGxlZCA9IHJlY3QuY29udGFpbnMocmVjdEZvclBvaW50KHBvaW50
SW5Db250YWluZXIpKTsKKyAgICAvLyBGSVhNRTogVGhpcyBjb2RlIChpbmNvcnJlY3RseSkgYXR0
ZW1wdHMgdG8gY29ycmVjdCBmb3IgY3VsbGVkIGlubGluZSBub2Rlcy4gU2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTg0OS4KKyAgICBpZiAoIXJlZ2lvbkZpbGxl
ZCkgewogICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY3VyciA9IG5vZGUtPnJlbmRlcmVyKCkt
PnBhcmVudCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKICAgICAgICAgICAgIGlm
ICghY3Vyci0+aXNSZW5kZXJJbmxpbmUoKSkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIAorCiAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgbm9kZXMg
Zm9yIGN1bGxlZCBpbmxpbmVzIGdldCBpbmNsdWRlZC4KICAgICAgICAgICAgIFJlbmRlcklubGlu
ZSogY3VycklubGluZSA9IHRvUmVuZGVySW5saW5lKGN1cnIpOwogICAgICAgICAgICAgaWYgKGN1
cnJJbmxpbmUtPmFsd2F5c0NyZWF0ZUxpbmVCb3hlcygpKQogICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGlmIChjdXJySW5saW5lLT52aXNpYmxlVG9I
aXRUZXN0aW5nKCkgJiYgY3VycklubGluZS0+bm9kZSgpKQogICAgICAgICAgICAgICAgIG11dGFi
bGVSZWN0QmFzZWRUZXN0UmVzdWx0KCkuYWRkKGN1cnJJbmxpbmUtPm5vZGUoKS0+c2hhZG93QW5j
ZXN0b3JOb2RlKCkpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiAhcmVjdC5jb250YWlu
cyhyZWN0Rm9yUG9pbnQocG9pbnRJbkNvbnRhaW5lcikpOworICAgIHJldHVybiAhcmVnaW9uRmls
bGVkOwogfQogCiBib29sIEhpdFRlc3RSZXN1bHQ6OmFkZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1
bHQoTm9kZSogbm9kZSwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKQEAgLTY1NSwyMSArNjU3LDIzIEBAIGJvb2wgSGl0VGVzdFJlc3Vs
dDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiBub2RlLCBjb25zdCBMYXlvdXRQ
b2ludCYKIAogICAgIG11dGFibGVSZWN0QmFzZWRUZXN0UmVzdWx0KCkuYWRkKG5vZGUpOwogCi0g
ICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzSW5saW5lKCkpIHsKKyAgICBib29sIHJlZ2lvbkZp
bGxlZCA9IHJlY3QuY29udGFpbnMocmVjdEZvclBvaW50KHBvaW50SW5Db250YWluZXIpKTsKKyAg
ICAvLyBGSVhNRTogVGhpcyBjb2RlIChpbmNvcnJlY3RseSkgYXR0ZW1wdHMgdG8gY29ycmVjdCBm
b3IgY3VsbGVkIGlubGluZSBub2Rlcy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NTg0OS4KKyAgICBpZiAoIXJlZ2lvbkZpbGxlZCkgewogICAgICAgICBmb3Ig
KFJlbmRlck9iamVjdCogY3VyciA9IG5vZGUtPnJlbmRlcmVyKCktPnBhcmVudCgpOyBjdXJyOyBj
dXJyID0gY3Vyci0+cGFyZW50KCkpIHsKICAgICAgICAgICAgIGlmICghY3Vyci0+aXNSZW5kZXJJ
bmxpbmUoKSkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAorCiAgICAgICAg
ICAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgbm9kZXMgZm9yIGN1bGxlZCBpbmxpbmVz
IGdldCBpbmNsdWRlZC4KICAgICAgICAgICAgIFJlbmRlcklubGluZSogY3VycklubGluZSA9IHRv
UmVuZGVySW5saW5lKGN1cnIpOwogICAgICAgICAgICAgaWYgKGN1cnJJbmxpbmUtPmFsd2F5c0Ny
ZWF0ZUxpbmVCb3hlcygpKQogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCisK
ICAgICAgICAgICAgIGlmIChjdXJySW5saW5lLT52aXNpYmxlVG9IaXRUZXN0aW5nKCkgJiYgY3Vy
cklubGluZS0+bm9kZSgpKQogICAgICAgICAgICAgICAgIG11dGFibGVSZWN0QmFzZWRUZXN0UmVz
dWx0KCkuYWRkKGN1cnJJbmxpbmUtPm5vZGUoKS0+c2hhZG93QW5jZXN0b3JOb2RlKCkpOwogICAg
ICAgICB9CiAgICAgfQotICAgIHJldHVybiAhcmVjdC5jb250YWlucyhyZWN0Rm9yUG9pbnQocG9p
bnRJbkNvbnRhaW5lcikpOworICAgIHJldHVybiAhcmVnaW9uRmlsbGVkOwogfQogCiB2b2lkIEhp
dFRlc3RSZXN1bHQ6OmFwcGVuZChjb25zdCBIaXRUZXN0UmVzdWx0JiBvdGhlcikKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0
NjZmMDliNjgwMDNlMTk3YzQzZjE1YTZjM2Q1MzliNjhkN2JiZTY4Li40ZjQ3M2Q4NGFkODQ3NmM2
ZTIyZDE2ZmY2ZTdjMTBiNDdjMTQ1ZTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUt
MTQgIFJheW1lcyBLaG91cnkgIDxyYXltZXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluY29y
cmVjdCByZWN0LWJhc2VkIGhpdC10ZXN0IHJlc3VsdCBmb3IgY3VsbGVkLWlubGluZSBlbGVtZW50
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU4NDkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBh
IHJlY3QtYmFzZWQgaGl0LXRlc3Qgd2hpY2ggdGVzdHMgdGhlIGNhc2Ugd2hlbiB0aGUgY2hpbGQg
b2YgYQorICAgICAgICBjdWxsZWQgaW5saW5lIGVsZW1lbnQgaXMgaW4gdGhlIGhpdC10ZXN0IHJl
c3VsdC4KKworICAgICAgICAqIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtY3VsbGVkLWlubGluZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtY3Vs
bGVkLWlubGluZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0xOCAgQ3NhYmEgT3N6dHJvZ29uw6Fj
ICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcs
IHNraXBwZWQgbGlzdCBjbGVhbnVwLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
bm9kZXNGcm9tUmVjdC1jdWxsZWQtaW5saW5lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWN1bGxlZC1pbmxpbmVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zMTFjN2NkNGY1YTUzMmZhYTgzNzM0ZGE2MmMyNzcwYzcyNWVhY2JiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1jdWxsZWQtaW5saW5l
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisgIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBm
b3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWN1bGxlZC1pbmxpbmVzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWN1bGxlZC1pbmxpbmVzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2I2NzAyMDI4Y2ZiY2ViZjhhZjVlZDE0NjVjZGJiZWFmOTU4NTg5OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtY3Vs
bGVkLWlubGluZXMuaHRtbApAQCAtMCwwICsxLDQzIEBACis8aHRtbD4KKzxoZWFkPgorICA8dGl0
bGU+RG9jdW1lbnQ6Om5vZGVzRnJvbVJlY3QgdGVzdCAtIGJ1ZyA4NTg0OTwvdGl0bGU+CisgIDxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMiPjwvc2NyaXB0PgorICA8c2Ny
aXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICB9CisKKyAgICAgIHZhciBlID0ge307
CisKKyAgICAgIC8vIFNldCB1cCBzaG9ydGN1dCBhY2Nlc3MgdG8gZWxlbWVudHMKKyAgICAgIGVb
J2h0bWwnXSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIilbMF07CisgICAg
ICBbJ2JvZHknLCAnc3BhbicsICdpbWcnXS5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKKyAgICAgICAg
ZVthXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpOworICAgICAgfSk7CisKKyAgICAgIHdp
bmRvdy5zY3JvbGxUbygwLCAwKTsKKworICAgICAgY2hlY2soMjAsIDIwLCAwLCAwLCAwLCAwLCBb
ZS5pbWddKTsKKyAgICAgIGNoZWNrKDIwLCAyMCwgNSwgNSwgNSwgNSwgW2UuaW1nXSk7CisKKyAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVu
VGVzdDsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgc3R5bGU9InBhZGRp
bmc6IDA7IG1hcmdpbjogMDsiPgorICA8c3BhbiBpZD0ic3BhbiIgc3R5bGU9Im1hcmdpbjogMDsg
cGFkZGluZzogMDsiPgorICAgIDxpbWcgaWQ9ImltZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAi
IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyIg
Lz4KKyAgPC9zcGFuPgorCisgIDxzcGFuIGlkPSJjb25zb2xlIiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyB0b3A6IDE1MHB4OyI+PC9zcGFuPgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy9ub2Rlc0Zyb21SZWN0LmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMKaW5kZXggMmU4
M2E3NTY3YWEwYTYxMzg0YjM0YjEzMjI4MDA5YzIzZjAxNzdlMS4uY2YyYmU1Mzc0YzQ3MmM1OTkx
NmRkZDFiZGM4MjI1OTNkMDViZTkxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
cmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVz
b3VyY2VzL25vZGVzRnJvbVJlY3QuanMKQEAgLTE2LDExICsxNiwxNyBAQCBmdW5jdGlvbiBjaGVj
ayh4LCB5LCB0b3BQYWRkaW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRk
aW5nLCBsaXN0LAogICAgIHJldHVybjsKIAogICBpZiAobm9kZXMubGVuZ3RoICE9IGxpc3QubGVu
Z3RoKSB7Ci0gICAgdGVzdEZhaWxlZCgiRGlmZmVyZW50IG51bWJlciBvZiBub2RlcyBmb3IgcmVj
dCIgKworICAgdmFyIG5vZGVzdHJpbmcgPSAiIgorICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rl
cy5sZW5ndGg7IGkrKykgeworICAgICBub2Rlc3RyaW5nICs9IG5vZGVzW2ldLm5vZGVOYW1lICsg
IiAiOworICAgfQorICAgdGVzdEZhaWxlZCgiRGlmZmVyZW50IG51bWJlciBvZiBub2RlcyBmb3Ig
cmVjdCIgKwogICAgICAgICAgICAgICAiWyIgKyB4ICsgIiwiICsgeSArICJdLCAiICsKICAgICAg
ICAgICAgICAgIlsiICsgdG9wUGFkZGluZyArICIsIiArIHJpZ2h0UGFkZGluZyArCiAgICAgICAg
ICAgICAgICIsIiArIGJvdHRvbVBhZGRpbmcgKyAiLCIgKyBsZWZ0UGFkZGluZyArCi0gICAgICAg
ICAgICAgICJdOiAnIiArIGxpc3QubGVuZ3RoICsgIicgdnMgJyIgKyBub2Rlcy5sZW5ndGggKyAi
JyIpOworICAgICAgICAgICAgICAiXTogJyIgKyBsaXN0Lmxlbmd0aCArICInIHZzICciICsgbm9k
ZXMubGVuZ3RoICsgIicgIiArIG5vZGVzdHJpbmcpOworCisKICAgICByZXR1cm47CiAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143139</attachid>
            <date>2012-05-21 16:59:43 -0700</date>
            <delta_ts>2012-06-05 16:52:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85849-20120521165759.patch</filename>
            <type>text/plain</type>
            <size>6727</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAzZDU2Y2IwYjEwNzQ3
YjBmZDVkMzNjMWQ2OWU5NjliNDc2M2E0ZC4uNTI4NDU5YTQ5NjBmMmNiZWJjNDBkYjM5MTkzNTgz
ODRkNTA1YWIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA1LTE0ICBSYXlt
ZXMgS2hvdXJ5ICA8cmF5bWVzQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmNvcnJlY3QgcmVj
dC1iYXNlZCBoaXQtdGVzdCByZXN1bHQgZm9yIGN1bGxlZC1pbmxpbmUgZWxlbWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1ODQ5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZpZWQgY29kZSB3
aGljaCBibGluZGx5IGFkZHMgY3VsbGVkIGlubGluZXMgdG8gcmVjdC1iYXNlZCBoaXQtdGVzdAor
ICAgICAgICByZXN1bHRzIHNvIHRoYXQgaXQgb25seSBkb2VzIHNvIGlmIHRoZSBjaGlsZCBub2Rl
IGRvZXMgbm90IGZ1bGx5IGNvdmVyCisgICAgICAgIHRoZSBoaXQtdGVzdCByZWdpb24uCisKKyAg
ICAgICAgVGVzdDogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1jdWxsZWQtaW5saW5lLmh0bWwKKwor
ICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhpdFRlc3RSZXN1bHQ6OmFkZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1bHQpOgorCiAyMDEyLTA1
LTE4ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogZW1wdHkgQ1NTIERlY2xhcmF0aW9uIGlzIGdlbmVyYXRlZCBieSBjbGlj
a2luZyB0aGUgbGVmdCBzcGFjZSBvZiAndXNlciBhZ2VudCBzdHlsZXNoZWV0JyBvbiBTdHlsZXMg
c2lkZWJhciBvZiBFbGVtZW50cyBwYW5lbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRl
c3RSZXN1bHQuY3BwCmluZGV4IDY2ZTFkYTk2Yjk4MTU3NWFjMTIwOTc4MTJlMzUyNWQzMGEyNTdl
MzguLjRlM2Y2YmRjYjI5NTAxOWI1ZTcyMGI0YzIwZTVhYzNlYjIyYTc0NzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTYyMiwyMSArNjIyLDIzIEBA
IGJvb2wgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiBu
b2RlLCBjb25zdCBMYXlvdXRQb2ludCYKIAogICAgIG11dGFibGVSZWN0QmFzZWRUZXN0UmVzdWx0
KCkuYWRkKG5vZGUpOwogCi0gICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzSW5saW5lKCkpIHsK
KyAgICBib29sIHJlZ2lvbkZpbGxlZCA9IHJlY3QuY29udGFpbnMocmVjdEZvclBvaW50KHBvaW50
SW5Db250YWluZXIpKTsKKyAgICAvLyBGSVhNRTogVGhpcyBjb2RlIChpbmNvcnJlY3RseSkgYXR0
ZW1wdHMgdG8gY29ycmVjdCBmb3IgY3VsbGVkIGlubGluZSBub2Rlcy4gU2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTg0OS4KKyAgICBpZiAobm9kZS0+cmVuZGVy
ZXIoKS0+aXNJbmxpbmUoKSAmJiAhcmVnaW9uRmlsbGVkKSB7CiAgICAgICAgIGZvciAoUmVuZGVy
T2JqZWN0KiBjdXJyID0gbm9kZS0+cmVuZGVyZXIoKS0+cGFyZW50KCk7IGN1cnI7IGN1cnIgPSBj
dXJyLT5wYXJlbnQoKSkgewogICAgICAgICAgICAgaWYgKCFjdXJyLT5pc1JlbmRlcklubGluZSgp
KQogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIC8v
IFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBub2RlcyBmb3IgY3VsbGVkIGlubGluZXMgZ2V0IGlu
Y2x1ZGVkLgogICAgICAgICAgICAgUmVuZGVySW5saW5lKiBjdXJySW5saW5lID0gdG9SZW5kZXJJ
bmxpbmUoY3Vycik7CiAgICAgICAgICAgICBpZiAoY3VycklubGluZS0+YWx3YXlzQ3JlYXRlTGlu
ZUJveGVzKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKKwogICAgICAg
ICAgICAgaWYgKGN1cnJJbmxpbmUtPnZpc2libGVUb0hpdFRlc3RpbmcoKSAmJiBjdXJySW5saW5l
LT5ub2RlKCkpCiAgICAgICAgICAgICAgICAgbXV0YWJsZVJlY3RCYXNlZFRlc3RSZXN1bHQoKS5h
ZGQoY3VycklubGluZS0+bm9kZSgpLT5zaGFkb3dBbmNlc3Rvck5vZGUoKSk7CiAgICAgICAgIH0K
ICAgICB9Ci0gICAgcmV0dXJuICFyZWN0LmNvbnRhaW5zKHJlY3RGb3JQb2ludChwb2ludEluQ29u
dGFpbmVyKSk7CisgICAgcmV0dXJuICFyZWdpb25GaWxsZWQ7CiB9CiAKIGJvb2wgSGl0VGVzdFJl
c3VsdDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiBub2RlLCBjb25zdCBMYXlv
dXRQb2ludCYgcG9pbnRJbkNvbnRhaW5lciwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQpAQCAtNjU1
LDIxICs2NTcsMjMgQEAgYm9vbCBIaXRUZXN0UmVzdWx0OjphZGROb2RlVG9SZWN0QmFzZWRUZXN0
UmVzdWx0KE5vZGUqIG5vZGUsIGNvbnN0IExheW91dFBvaW50JgogCiAgICAgbXV0YWJsZVJlY3RC
YXNlZFRlc3RSZXN1bHQoKS5hZGQobm9kZSk7CiAKLSAgICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+
aXNJbmxpbmUoKSkgeworICAgIGJvb2wgcmVnaW9uRmlsbGVkID0gcmVjdC5jb250YWlucyhyZWN0
Rm9yUG9pbnQocG9pbnRJbkNvbnRhaW5lcikpOworICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgKGlu
Y29ycmVjdGx5KSBhdHRlbXB0cyB0byBjb3JyZWN0IGZvciBjdWxsZWQgaW5saW5lIG5vZGVzLiBT
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1ODQ5LgorICAgIGlm
IChub2RlLT5yZW5kZXJlcigpLT5pc0lubGluZSgpICYmICFyZWdpb25GaWxsZWQpIHsKICAgICAg
ICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnIgPSBub2RlLT5yZW5kZXJlcigpLT5wYXJlbnQoKTsg
Y3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7CiAgICAgICAgICAgICBpZiAoIWN1cnItPmlz
UmVuZGVySW5saW5lKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKKwog
ICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIG5vZGVzIGZvciBjdWxsZWQg
aW5saW5lcyBnZXQgaW5jbHVkZWQuCiAgICAgICAgICAgICBSZW5kZXJJbmxpbmUqIGN1cnJJbmxp
bmUgPSB0b1JlbmRlcklubGluZShjdXJyKTsKICAgICAgICAgICAgIGlmIChjdXJySW5saW5lLT5h
bHdheXNDcmVhdGVMaW5lQm94ZXMoKSkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIAorCiAgICAgICAgICAgICBpZiAoY3VycklubGluZS0+dmlzaWJsZVRvSGl0VGVzdGluZygp
ICYmIGN1cnJJbmxpbmUtPm5vZGUoKSkKICAgICAgICAgICAgICAgICBtdXRhYmxlUmVjdEJhc2Vk
VGVzdFJlc3VsdCgpLmFkZChjdXJySW5saW5lLT5ub2RlKCktPnNoYWRvd0FuY2VzdG9yTm9kZSgp
KTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gIXJlY3QuY29udGFpbnMocmVjdEZvclBv
aW50KHBvaW50SW5Db250YWluZXIpKTsKKyAgICByZXR1cm4gIXJlZ2lvbkZpbGxlZDsKIH0KIAog
dm9pZCBIaXRUZXN0UmVzdWx0OjphcHBlbmQoY29uc3QgSGl0VGVzdFJlc3VsdCYgb3RoZXIpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggNDY2ZjA5YjY4MDAzZTE5N2M0M2YxNWE2YzNkNTM5YjY4ZDdiYmU2OC4uNGY0NzNkODRh
ZDg0NzZjNmUyMmQxNmZmNmU3YzEwYjQ3YzE0NWU1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDEyLTA1LTE0ICBSYXltZXMgS2hvdXJ5ICA8cmF5bWVzQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBJbmNvcnJlY3QgcmVjdC1iYXNlZCBoaXQtdGVzdCByZXN1bHQgZm9yIGN1bGxlZC1pbmxpbmUg
ZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1ODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgYSByZWN0LWJhc2VkIGhpdC10ZXN0IHdoaWNoIHRlc3RzIHRoZSBjYXNlIHdoZW4gdGhl
IGNoaWxkIG9mIGEKKyAgICAgICAgY3VsbGVkIGlubGluZSBlbGVtZW50IGlzIGluIHRoZSBoaXQt
dGVzdCByZXN1bHQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWN1bGxlZC1p
bmxpbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9ub2Rlc0Zyb21S
ZWN0LWN1bGxlZC1pbmxpbmUuaHRtbDogQWRkZWQuCisKIDIwMTItMDUtMTggIENzYWJhIE9zenRy
b2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2Fy
ZGVuaW5nLCBza2lwcGVkIGxpc3QgY2xlYW51cC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL25vZGVzRnJvbVJlY3QtY3VsbGVkLWlubGluZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1jdWxsZWQtaW5saW5lcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzExYzdjZDRmNWE1MzJmYWE4MzczNGRhNjJjMjc3MGM3MjVlYWNiYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtY3VsbGVk
LWlubGluZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorICBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMg
Zm91bmQgZm9yIHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1jdWxsZWQtaW5s
aW5lcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1jdWxsZWQtaW5s
aW5lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiNjcwMjAyOGNmYmNlYmY4YWY1ZWQxNDY1Y2RiYmVhZjk1
ODU4OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21S
ZWN0LWN1bGxlZC1pbmxpbmVzLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPGh0bWw+Cis8aGVhZD4K
KyAgPHRpdGxlPkRvY3VtZW50Ojpub2Rlc0Zyb21SZWN0IHRlc3QgLSBidWcgODU4NDk8L3RpdGxl
PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ub2Rlc0Zyb21SZWN0LmpzIj48L3NjcmlwdD4K
KyAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgfQorCisgICAgICB2YXIg
ZSA9IHt9OworCisgICAgICAvLyBTZXQgdXAgc2hvcnRjdXQgYWNjZXNzIHRvIGVsZW1lbnRzCisg
ICAgICBlWydodG1sJ10gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpWzBd
OworICAgICAgWydib2R5JywgJ3NwYW4nLCAnaW1nJ10uZm9yRWFjaChmdW5jdGlvbihhKSB7Cisg
ICAgICAgIGVbYV0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKTsKKyAgICAgIH0pOworCisg
ICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7CisKKyAgICAgIGNoZWNrKDIwLCAyMCwgMCwgMCwg
MCwgMCwgW2UuaW1nXSk7CisgICAgICBjaGVjaygyMCwgMjAsIDUsIDUsIDUsIDUsIFtlLmltZ10p
OworCisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9h
ZCA9IHJ1blRlc3Q7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiIHN0eWxl
PSJwYWRkaW5nOiAwOyBtYXJnaW46IDA7Ij4KKyAgPHNwYW4gaWQ9InNwYW4iIHN0eWxlPSJtYXJn
aW46IDA7IHBhZGRpbmc6IDA7Ij4KKyAgICA8aW1nIGlkPSJpbWciIHdpZHRoPSIxMDAiIGhlaWdo
dD0iMTAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7IG1hcmdpbjogMDsgcGFkZGlu
ZzogMDsiIC8+CisgIDwvc3Bhbj4KKworICA8c3BhbiBpZD0iY29uc29sZSIgc3R5bGU9InBvc2l0
aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNTBweDsiPjwvc3Bhbj4KKyAgPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgor
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145896</attachid>
            <date>2012-06-05 16:52:17 -0700</date>
            <delta_ts>2012-06-06 09:24:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85849-20120605165216.patch</filename>
            <type>text/plain</type>
            <size>7497</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4YThjZGE2MWI3ZDNm
NTI5NzY2NDY3MTNkY2Y4NGNjM2Y5NTNhZC4uN2YwNjllNjRmODExYmIyMWU0NzRmNGQ4YzI2NGJi
OTY2YTRiMmNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA1LTE0ICBSYXlt
ZXMgS2hvdXJ5ICA8cmF5bWVzQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmNvcnJlY3QgcmVj
dC1iYXNlZCBoaXQtdGVzdCByZXN1bHQgZm9yIGN1bGxlZC1pbmxpbmUgZWxlbWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1ODQ5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZpZWQgY29kZSB3
aGljaCBibGluZGx5IGFkZHMgY3VsbGVkIGlubGluZXMgdG8gcmVjdC1iYXNlZCBoaXQtdGVzdAor
ICAgICAgICByZXN1bHRzIHNvIHRoYXQgaXQgb25seSBkb2VzIHNvIGlmIHRoZSBjaGlsZCBub2Rl
IGRvZXMgbm90IGZ1bGx5IGNvdmVyCisgICAgICAgIHRoZSBoaXQtdGVzdCByZWdpb24uCisKKyAg
ICAgICAgVGVzdDogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1jdWxsZWQtaW5saW5lLmh0bWwKKwor
ICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhpdFRlc3RSZXN1bHQ6OmFkZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1bHQpOgorCiAyMDEyLTA2
LTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIExl
YWtpbmcgQ2xpcFJlY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0
VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5j
cHAKaW5kZXggNjZlMWRhOTZiOTgxNTc1YWMxMjA5NzgxMmUzNTI1ZDMwYTI1N2UzOC4uNGUzZjZi
ZGNiMjk1MDE5YjVlNzIwYjRjMjBlNWFjM2ViMjJhNzQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcApAQCAtNjIyLDIxICs2MjIsMjMgQEAgYm9vbCBIaXRU
ZXN0UmVzdWx0OjphZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KE5vZGUqIG5vZGUsIGNvbnN0
IExheW91dFBvaW50JgogCiAgICAgbXV0YWJsZVJlY3RCYXNlZFRlc3RSZXN1bHQoKS5hZGQobm9k
ZSk7CiAKLSAgICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+aXNJbmxpbmUoKSkgeworICAgIGJvb2wg
cmVnaW9uRmlsbGVkID0gcmVjdC5jb250YWlucyhyZWN0Rm9yUG9pbnQocG9pbnRJbkNvbnRhaW5l
cikpOworICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgKGluY29ycmVjdGx5KSBhdHRlbXB0cyB0byBj
b3JyZWN0IGZvciBjdWxsZWQgaW5saW5lIG5vZGVzLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg1ODQ5LgorICAgIGlmIChub2RlLT5yZW5kZXJlcigpLT5pc0lu
bGluZSgpICYmICFyZWdpb25GaWxsZWQpIHsKICAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1
cnIgPSBub2RlLT5yZW5kZXJlcigpLT5wYXJlbnQoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVu
dCgpKSB7CiAgICAgICAgICAgICBpZiAoIWN1cnItPmlzUmVuZGVySW5saW5lKCkpCiAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgLy8gV2UgbmVlZCB0
byBtYWtlIHN1cmUgdGhlIG5vZGVzIGZvciBjdWxsZWQgaW5saW5lcyBnZXQgaW5jbHVkZWQuCiAg
ICAgICAgICAgICBSZW5kZXJJbmxpbmUqIGN1cnJJbmxpbmUgPSB0b1JlbmRlcklubGluZShjdXJy
KTsKICAgICAgICAgICAgIGlmIChjdXJySW5saW5lLT5hbHdheXNDcmVhdGVMaW5lQm94ZXMoKSkK
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBpZiAo
Y3VycklubGluZS0+dmlzaWJsZVRvSGl0VGVzdGluZygpICYmIGN1cnJJbmxpbmUtPm5vZGUoKSkK
ICAgICAgICAgICAgICAgICBtdXRhYmxlUmVjdEJhc2VkVGVzdFJlc3VsdCgpLmFkZChjdXJySW5s
aW5lLT5ub2RlKCktPnNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKICAgICAgICAgfQogICAgIH0KLSAg
ICByZXR1cm4gIXJlY3QuY29udGFpbnMocmVjdEZvclBvaW50KHBvaW50SW5Db250YWluZXIpKTsK
KyAgICByZXR1cm4gIXJlZ2lvbkZpbGxlZDsKIH0KIAogYm9vbCBIaXRUZXN0UmVzdWx0OjphZGRO
b2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KE5vZGUqIG5vZGUsIGNvbnN0IExheW91dFBvaW50JiBw
b2ludEluQ29udGFpbmVyLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCkBAIC02NTUsMjEgKzY1Nywy
MyBAQCBib29sIEhpdFRlc3RSZXN1bHQ6OmFkZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1bHQoTm9k
ZSogbm9kZSwgY29uc3QgTGF5b3V0UG9pbnQmCiAKICAgICBtdXRhYmxlUmVjdEJhc2VkVGVzdFJl
c3VsdCgpLmFkZChub2RlKTsKIAotICAgIGlmIChub2RlLT5yZW5kZXJlcigpLT5pc0lubGluZSgp
KSB7CisgICAgYm9vbCByZWdpb25GaWxsZWQgPSByZWN0LmNvbnRhaW5zKHJlY3RGb3JQb2ludChw
b2ludEluQ29udGFpbmVyKSk7CisgICAgLy8gRklYTUU6IFRoaXMgY29kZSAoaW5jb3JyZWN0bHkp
IGF0dGVtcHRzIHRvIGNvcnJlY3QgZm9yIGN1bGxlZCBpbmxpbmUgbm9kZXMuIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU4NDkuCisgICAgaWYgKG5vZGUtPnJl
bmRlcmVyKCktPmlzSW5saW5lKCkgJiYgIXJlZ2lvbkZpbGxlZCkgewogICAgICAgICBmb3IgKFJl
bmRlck9iamVjdCogY3VyciA9IG5vZGUtPnJlbmRlcmVyKCktPnBhcmVudCgpOyBjdXJyOyBjdXJy
ID0gY3Vyci0+cGFyZW50KCkpIHsKICAgICAgICAgICAgIGlmICghY3Vyci0+aXNSZW5kZXJJbmxp
bmUoKSkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAg
ICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgbm9kZXMgZm9yIGN1bGxlZCBpbmxpbmVzIGdl
dCBpbmNsdWRlZC4KICAgICAgICAgICAgIFJlbmRlcklubGluZSogY3VycklubGluZSA9IHRvUmVu
ZGVySW5saW5lKGN1cnIpOwogICAgICAgICAgICAgaWYgKGN1cnJJbmxpbmUtPmFsd2F5c0NyZWF0
ZUxpbmVCb3hlcygpKQogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCisKICAg
ICAgICAgICAgIGlmIChjdXJySW5saW5lLT52aXNpYmxlVG9IaXRUZXN0aW5nKCkgJiYgY3Vycklu
bGluZS0+bm9kZSgpKQogICAgICAgICAgICAgICAgIG11dGFibGVSZWN0QmFzZWRUZXN0UmVzdWx0
KCkuYWRkKGN1cnJJbmxpbmUtPm5vZGUoKS0+c2hhZG93QW5jZXN0b3JOb2RlKCkpOwogICAgICAg
ICB9CiAgICAgfQotICAgIHJldHVybiAhcmVjdC5jb250YWlucyhyZWN0Rm9yUG9pbnQocG9pbnRJ
bkNvbnRhaW5lcikpOworICAgIHJldHVybiAhcmVnaW9uRmlsbGVkOwogfQogCiB2b2lkIEhpdFRl
c3RSZXN1bHQ6OmFwcGVuZChjb25zdCBIaXRUZXN0UmVzdWx0JiBvdGhlcikKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZDcw
N2QwOTM5MzkzYTZlN2JmYmIzOWE2NGRhNDU1OGEyMmQzM2Q1Li4wYmIyM2FiZTFjMTM2YjNiNDk5
M2E3NDc3N2Y1MWRkYTBjZTVlMDZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMTQg
IFJheW1lcyBLaG91cnkgIDxyYXltZXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluY29ycmVj
dCByZWN0LWJhc2VkIGhpdC10ZXN0IHJlc3VsdCBmb3IgY3VsbGVkLWlubGluZSBlbGVtZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU4NDkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHJl
Y3QtYmFzZWQgaGl0LXRlc3Qgd2hpY2ggdGVzdHMgdGhlIGNhc2Ugd2hlbiB0aGUgY2hpbGQgb2Yg
YQorICAgICAgICBjdWxsZWQgaW5saW5lIGVsZW1lbnQgaXMgaW4gdGhlIGhpdC10ZXN0IHJlc3Vs
dC4KKworICAgICAgICAqIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtY3VsbGVkLWlubGluZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtY3VsbGVk
LWlubGluZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wNi0wNCAgRW1pbCBBIEVrbHVuZCAgPGVhZUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSB3aW5kb3dzIHJlYmFz
ZWxpbmUgZm9yIHIxMTk0NTYuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rl
c0Zyb21SZWN0LWN1bGxlZC1pbmxpbmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL25vZGVzRnJvbVJlY3QtY3VsbGVkLWlubGluZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY3OTc0MjAzNjI4MTNmZGVhNjRhMTFjMTNkN2EwMDIzN2ZlYzcxMDIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWN1bGxlZC1pbmxpbmVzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKyAgUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciBy
ZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3Jy
ZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZv
ciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtY3VsbGVkLWlubGluZXMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtY3VsbGVkLWlubGluZXMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wOWRkMGI2ZTU5ZjIyZDliOTk1ODZhMTY1NWYxMjQxNjA3ODU1MDM0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1jdWxs
ZWQtaW5saW5lcy5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzxodG1sPgorPGhlYWQ+CisgIDx0aXRs
ZT5Eb2N1bWVudDo6bm9kZXNGcm9tUmVjdCB0ZXN0IC0gYnVnIDg1ODQ5PC90aXRsZT4KKyAgPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcyI+PC9zY3JpcHQ+CisgIDxzY3Jp
cHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gcnVuVGVzdCgp
CisgICAgeworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgIH0KKworICAgICAgdmFyIGUgPSB7fTsK
KworICAgICAgLy8gU2V0IHVwIHNob3J0Y3V0IGFjY2VzcyB0byBlbGVtZW50cworICAgICAgZVsn
aHRtbCddID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKVswXTsKKyAgICAg
IFsnYm9keScsICdzcGFuJywgJ2ltZyddLmZvckVhY2goZnVuY3Rpb24oYSkgeworICAgICAgICBl
W2FdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSk7CisgICAgICB9KTsKKworICAgICAgd2lu
ZG93LnNjcm9sbFRvKDAsIDApOworCisgICAgICAvKiBQb2ludCBiYXNlZCB0ZXN0IG92ZXIgdGhl
IGltZyBvbmx5LiAqLworICAgICAgY2hlY2soMjAsIDIwLCAwLCAwLCAwLCAwLCBbZS5pbWddKTsK
KyAgICAgIC8qIFJlY3QgYmFzZWQgdGVzdCBvdmVyIHRoZSBpbWcgb25seS4gKi8KKyAgICAgIGNo
ZWNrKDIwLCAyMCwgNSwgNSwgNSwgNSwgW2UuaW1nXSk7CisKKyAgICAgIC8qIE5vdGUgdGhhdCBm
b3IgdGhlIHRlc3RzIGJlbG93LCB0aGUgaW1nIGJvdW5kcyBhcmUgY29uc2lkZXJlZCB0byBiZSAo
OTksIDk5KS4gKi8KKyAgICAgIC8qIFBvaW50IGJhc2VkIHRlc3Qgb3ZlciB0aGUgaW1nIGFuZCB0
aGUgc3Bhbi4gKi8KKyAgICAgIGNoZWNrKDAsIDk5LCAwLCAwLCAwLCAwLCBbZS5pbWddKTsKKyAg
ICAgIC8qIFJlY3QgYmFzZWQgdGVzdCBvdmVyIHRoZSBpbWcgYW5kIHRoZSBzcGFuIHdpdGggdGhl
IGltZyBmdWxseSBjb3ZlcmluZyB0aGUgaGl0IHJlZ2lvbi4gKi8KKyAgICAgIGNoZWNrKDAsIDk4
LCAwLCAxLCAxLCAwLCBbZS5pbWddKTsKKyAgICAgIC8qIFJlY3QgYmFzZWQgdGVzdCBvdmVyIHRo
ZSBpbWcgYW5kIHRoZSBzcGFuIHdpdGggdGhlIGltZyBub3QgZnVsbHkgY292ZXJpbmcgdGhlIGhp
dCByZWdpb24uICovCisgICAgICAvKiBGSVhNRTogVGhpcyBmYWlscyBkdWUgdG86IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODM3NgorICAgICAgLyogY2hlY2soMCwg
OTgsIDAsIDEsIDIsIDAsIFtlLmltZywgZS5zcGFuXSk7ICovCisgICAgICAvKiBSZWN0IGJhc2Vk
IHRlc3Qgb3ZlciB0aGUgZW50aXJlIGltZy4gKi8KKyAgICAgIGNoZWNrKDAsIDAsIDAsIDk5LCA5
OSwgMCwgW2UuaW1nXSk7CisKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAg
ICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBp
ZD0iYm9keSIgc3R5bGU9InBhZGRpbmc6IDA7IG1hcmdpbjogMDsiPgorICA8c3BhbiBpZD0ic3Bh
biIgc3R5bGU9Im1hcmdpbjogMDsgcGFkZGluZzogMDsgZm9udC1zaXplOjM2cHgiPgorICAgIDxp
bWcgaWQ9ImltZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNv
bG9yOiBibGFjazsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyIgLz4KKyAgPC9zcGFuPgorCisgIDxz
cGFuIGlkPSJjb25zb2xlIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE1MHB4OyI+
PC9zcGFuPgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146044</attachid>
            <date>2012-06-06 09:24:55 -0700</date>
            <delta_ts>2012-06-07 10:02:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85849-20120606092454.patch</filename>
            <type>text/plain</type>
            <size>7670</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4YThjZGE2MWI3ZDNm
NTI5NzY2NDY3MTNkY2Y4NGNjM2Y5NTNhZC4uN2YwNjllNjRmODExYmIyMWU0NzRmNGQ4YzI2NGJi
OTY2YTRiMmNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA1LTE0ICBSYXlt
ZXMgS2hvdXJ5ICA8cmF5bWVzQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmNvcnJlY3QgcmVj
dC1iYXNlZCBoaXQtdGVzdCByZXN1bHQgZm9yIGN1bGxlZC1pbmxpbmUgZWxlbWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1ODQ5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZpZWQgY29kZSB3
aGljaCBibGluZGx5IGFkZHMgY3VsbGVkIGlubGluZXMgdG8gcmVjdC1iYXNlZCBoaXQtdGVzdAor
ICAgICAgICByZXN1bHRzIHNvIHRoYXQgaXQgb25seSBkb2VzIHNvIGlmIHRoZSBjaGlsZCBub2Rl
IGRvZXMgbm90IGZ1bGx5IGNvdmVyCisgICAgICAgIHRoZSBoaXQtdGVzdCByZWdpb24uCisKKyAg
ICAgICAgVGVzdDogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1jdWxsZWQtaW5saW5lLmh0bWwKKwor
ICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhpdFRlc3RSZXN1bHQ6OmFkZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1bHQpOgorCiAyMDEyLTA2
LTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIExl
YWtpbmcgQ2xpcFJlY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0
VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5j
cHAKaW5kZXggNjZlMWRhOTZiOTgxNTc1YWMxMjA5NzgxMmUzNTI1ZDMwYTI1N2UzOC4uNGUzZjZi
ZGNiMjk1MDE5YjVlNzIwYjRjMjBlNWFjM2ViMjJhNzQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcApAQCAtNjIyLDIxICs2MjIsMjMgQEAgYm9vbCBIaXRU
ZXN0UmVzdWx0OjphZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KE5vZGUqIG5vZGUsIGNvbnN0
IExheW91dFBvaW50JgogCiAgICAgbXV0YWJsZVJlY3RCYXNlZFRlc3RSZXN1bHQoKS5hZGQobm9k
ZSk7CiAKLSAgICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+aXNJbmxpbmUoKSkgeworICAgIGJvb2wg
cmVnaW9uRmlsbGVkID0gcmVjdC5jb250YWlucyhyZWN0Rm9yUG9pbnQocG9pbnRJbkNvbnRhaW5l
cikpOworICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgKGluY29ycmVjdGx5KSBhdHRlbXB0cyB0byBj
b3JyZWN0IGZvciBjdWxsZWQgaW5saW5lIG5vZGVzLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg1ODQ5LgorICAgIGlmIChub2RlLT5yZW5kZXJlcigpLT5pc0lu
bGluZSgpICYmICFyZWdpb25GaWxsZWQpIHsKICAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1
cnIgPSBub2RlLT5yZW5kZXJlcigpLT5wYXJlbnQoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVu
dCgpKSB7CiAgICAgICAgICAgICBpZiAoIWN1cnItPmlzUmVuZGVySW5saW5lKCkpCiAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgLy8gV2UgbmVlZCB0
byBtYWtlIHN1cmUgdGhlIG5vZGVzIGZvciBjdWxsZWQgaW5saW5lcyBnZXQgaW5jbHVkZWQuCiAg
ICAgICAgICAgICBSZW5kZXJJbmxpbmUqIGN1cnJJbmxpbmUgPSB0b1JlbmRlcklubGluZShjdXJy
KTsKICAgICAgICAgICAgIGlmIChjdXJySW5saW5lLT5hbHdheXNDcmVhdGVMaW5lQm94ZXMoKSkK
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBpZiAo
Y3VycklubGluZS0+dmlzaWJsZVRvSGl0VGVzdGluZygpICYmIGN1cnJJbmxpbmUtPm5vZGUoKSkK
ICAgICAgICAgICAgICAgICBtdXRhYmxlUmVjdEJhc2VkVGVzdFJlc3VsdCgpLmFkZChjdXJySW5s
aW5lLT5ub2RlKCktPnNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKICAgICAgICAgfQogICAgIH0KLSAg
ICByZXR1cm4gIXJlY3QuY29udGFpbnMocmVjdEZvclBvaW50KHBvaW50SW5Db250YWluZXIpKTsK
KyAgICByZXR1cm4gIXJlZ2lvbkZpbGxlZDsKIH0KIAogYm9vbCBIaXRUZXN0UmVzdWx0OjphZGRO
b2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KE5vZGUqIG5vZGUsIGNvbnN0IExheW91dFBvaW50JiBw
b2ludEluQ29udGFpbmVyLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCkBAIC02NTUsMjEgKzY1Nywy
MyBAQCBib29sIEhpdFRlc3RSZXN1bHQ6OmFkZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1bHQoTm9k
ZSogbm9kZSwgY29uc3QgTGF5b3V0UG9pbnQmCiAKICAgICBtdXRhYmxlUmVjdEJhc2VkVGVzdFJl
c3VsdCgpLmFkZChub2RlKTsKIAotICAgIGlmIChub2RlLT5yZW5kZXJlcigpLT5pc0lubGluZSgp
KSB7CisgICAgYm9vbCByZWdpb25GaWxsZWQgPSByZWN0LmNvbnRhaW5zKHJlY3RGb3JQb2ludChw
b2ludEluQ29udGFpbmVyKSk7CisgICAgLy8gRklYTUU6IFRoaXMgY29kZSAoaW5jb3JyZWN0bHkp
IGF0dGVtcHRzIHRvIGNvcnJlY3QgZm9yIGN1bGxlZCBpbmxpbmUgbm9kZXMuIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU4NDkuCisgICAgaWYgKG5vZGUtPnJl
bmRlcmVyKCktPmlzSW5saW5lKCkgJiYgIXJlZ2lvbkZpbGxlZCkgewogICAgICAgICBmb3IgKFJl
bmRlck9iamVjdCogY3VyciA9IG5vZGUtPnJlbmRlcmVyKCktPnBhcmVudCgpOyBjdXJyOyBjdXJy
ID0gY3Vyci0+cGFyZW50KCkpIHsKICAgICAgICAgICAgIGlmICghY3Vyci0+aXNSZW5kZXJJbmxp
bmUoKSkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAg
ICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgbm9kZXMgZm9yIGN1bGxlZCBpbmxpbmVzIGdl
dCBpbmNsdWRlZC4KICAgICAgICAgICAgIFJlbmRlcklubGluZSogY3VycklubGluZSA9IHRvUmVu
ZGVySW5saW5lKGN1cnIpOwogICAgICAgICAgICAgaWYgKGN1cnJJbmxpbmUtPmFsd2F5c0NyZWF0
ZUxpbmVCb3hlcygpKQogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCisKICAg
ICAgICAgICAgIGlmIChjdXJySW5saW5lLT52aXNpYmxlVG9IaXRUZXN0aW5nKCkgJiYgY3Vycklu
bGluZS0+bm9kZSgpKQogICAgICAgICAgICAgICAgIG11dGFibGVSZWN0QmFzZWRUZXN0UmVzdWx0
KCkuYWRkKGN1cnJJbmxpbmUtPm5vZGUoKS0+c2hhZG93QW5jZXN0b3JOb2RlKCkpOwogICAgICAg
ICB9CiAgICAgfQotICAgIHJldHVybiAhcmVjdC5jb250YWlucyhyZWN0Rm9yUG9pbnQocG9pbnRJ
bkNvbnRhaW5lcikpOworICAgIHJldHVybiAhcmVnaW9uRmlsbGVkOwogfQogCiB2b2lkIEhpdFRl
c3RSZXN1bHQ6OmFwcGVuZChjb25zdCBIaXRUZXN0UmVzdWx0JiBvdGhlcikKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZDcw
N2QwOTM5MzkzYTZlN2JmYmIzOWE2NGRhNDU1OGEyMmQzM2Q1Li44ODg4Y2E5Zjc0NDFlNjE3MzI4
Zjg3MDc2YzRkYzgyOTliZDBiMWJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDUtMTQg
IFJheW1lcyBLaG91cnkgIDxyYXltZXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluY29ycmVj
dCByZWN0LWJhc2VkIGhpdC10ZXN0IHJlc3VsdCBmb3IgY3VsbGVkLWlubGluZSBlbGVtZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU4NDkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0
cyBmb3IgcmVjdC1iYXNlZCBoaXQtdGVzdGluZyBmb3IgdGhlIGNhc2Ugd2hlbiB0aGUgY2hpbGQg
b2YgYQorICAgICAgICBjdWxsZWQgaW5saW5lIGVsZW1lbnQgaXMgaW4gdGhlIGhpdC10ZXN0IHJl
c3VsdC4gT25lIG9mIHRoZXNlIHRlc3RzIGlzCisgICAgICAgIGV4cGVjdGVkIHRvIGZhaWwgZHVl
IHRvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODM3Ni4KKworICAg
ICAgICAqIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtY3VsbGVkLWlubGluZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtY3VsbGVkLWlubGluZS5o
dG1sOiBBZGRlZC4KKwogMjAxMi0wNi0wNCAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSB3aW5kb3dzIHJlYmFzZWxpbmUgZm9y
IHIxMTk0NTYuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0
LWN1bGxlZC1pbmxpbmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVz
RnJvbVJlY3QtY3VsbGVkLWlubGluZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0M2NhOTJk
YzAwMDgyYzdiZWUwNWYxZDU5Yjc3NWY5NWNkZDI5ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWN1bGxlZC1pbmxpbmVzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACisgIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFT
UyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2Rl
cyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAor
RkFJTCBEaWZmZXJlbnQgbnVtYmVyIG9mIG5vZGVzIGZvciByZWN0WzAsOThdLCBbMCwxLDIsMF06
ICcyJyB2cyAnMycKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1jdWxsZWQtaW5saW5l
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1jdWxsZWQtaW5saW5l
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNjYzNkYWVhZjAzOTI1OWJjNDE3NmI2M2JmYzhiOTM0YWMzOTc4
YzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0
LWN1bGxlZC1pbmxpbmVzLmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPGh0bWw+Cis8aGVhZD4KKyAg
PHRpdGxlPkRvY3VtZW50Ojpub2Rlc0Zyb21SZWN0IHRlc3QgLSBidWcgODU4NDk8L3RpdGxlPgor
ICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KyAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ub2Rlc0Zyb21SZWN0LmpzIj48L3NjcmlwdD4KKyAg
PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgfQorCisgICAgICB2YXIgZSA9
IHt9OworCisgICAgICAvLyBTZXQgdXAgc2hvcnRjdXQgYWNjZXNzIHRvIGVsZW1lbnRzCisgICAg
ICBlWydodG1sJ10gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpWzBdOwor
ICAgICAgWydib2R5JywgJ3NwYW4nLCAnaW1nJ10uZm9yRWFjaChmdW5jdGlvbihhKSB7CisgICAg
ICAgIGVbYV0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKTsKKyAgICAgIH0pOworCisgICAg
ICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7CisKKyAgICAgIC8qIFBvaW50IGJhc2VkIHRlc3Qgb3Zl
ciB0aGUgaW1nIG9ubHkuICovCisgICAgICBjaGVjaygyMCwgMjAsIDAsIDAsIDAsIDAsIFtlLmlt
Z10pOworICAgICAgLyogUmVjdCBiYXNlZCB0ZXN0IG92ZXIgdGhlIGltZyBvbmx5LiAqLworICAg
ICAgY2hlY2soMjAsIDIwLCA1LCA1LCA1LCA1LCBbZS5pbWddKTsKKworICAgICAgLyogTm90ZSB0
aGF0IGZvciB0aGUgdGVzdHMgYmVsb3csIHRoZSBpbWcgYm91bmRzIGFyZSBjb25zaWRlcmVkIHRv
IGJlICg5OSwgOTkpLiAqLworICAgICAgLyogUG9pbnQgYmFzZWQgdGVzdCBvdmVyIHRoZSBpbWcg
YW5kIHRoZSBzcGFuLiAqLworICAgICAgY2hlY2soMCwgOTksIDAsIDAsIDAsIDAsIFtlLmltZ10p
OworICAgICAgLyogUmVjdCBiYXNlZCB0ZXN0IG92ZXIgdGhlIGltZyBhbmQgdGhlIHNwYW4gd2l0
aCB0aGUgaW1nIGZ1bGx5IGNvdmVyaW5nIHRoZSBoaXQgcmVnaW9uLiAqLworICAgICAgY2hlY2so
MCwgOTgsIDAsIDEsIDEsIDAsIFtlLmltZ10pOworICAgICAgLyogUmVjdCBiYXNlZCB0ZXN0IG92
ZXIgdGhlIGltZyBhbmQgdGhlIHNwYW4gd2l0aCB0aGUgaW1nIG5vdCBmdWxseSBjb3ZlcmluZyB0
aGUgaGl0IHJlZ2lvbi4gKi8KKyAgICAgIC8qIEZJWE1FOiBUaGlzIGZhaWxzIGR1ZSB0bzogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4Mzc2ICovCisgICAgICBjaGVj
aygwLCA5OCwgMCwgMSwgMiwgMCwgW2UuaW1nLCBlLnNwYW5dKTsKKyAgICAgIC8qIFJlY3QgYmFz
ZWQgdGVzdCBvdmVyIHRoZSBlbnRpcmUgaW1nLiAqLworICAgICAgY2hlY2soMCwgMCwgMCwgOTks
IDk5LCAwLCBbZS5pbWddKTsKKworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKwor
ICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IGlkPSJib2R5IiBzdHlsZT0icGFkZGluZzogMDsgbWFyZ2luOiAwOyI+CisgIDxzcGFuIGlkPSJz
cGFuIiBzdHlsZT0ibWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBmb250LXNpemU6MzZweCI+CisgICAg
PGltZyBpZD0iaW1nIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgc3R5bGU9ImJhY2tncm91bmQt
Y29sb3I6IGJsYWNrOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IiAvPgorICA8L3NwYW4+CisKKyAg
PHNwYW4gaWQ9ImNvbnNvbGUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTUwcHg7
Ij48L3NwYW4+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>