<?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>100029</bug_id>
          
          <creation_ts>2012-10-22 14:08:54 -0700</creation_ts>
          <short_desc>Add measurePageLoadTime function to PerfTestRunner</short_desc>
          <delta_ts>2012-10-23 23:20:34 -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>Tools / Tests</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>
          
          <blocked>78984</blocked>
    
    <blocked>99899</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zoltan Horvath">zoltan</reporter>
          <assigned_to name="Zoltan Horvath">zoltan</assigned_to>
          <cc>ossy</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>747869</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-10-22 14:08:54 -0700</bug_when>
    <thetext>Adopt chunk based loading logic from html5-full-render.html into measurePageLoadTime function, this is needed to measure the performance and the memory consumption of the PageLoadTests as we do it for all other performancetests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747872</commentid>
    <comment_count>1</comment_count>
      <attachid>169983</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-10-22 14:11:56 -0700</bug_when>
    <thetext>Created attachment 169983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747873</commentid>
    <comment_count>2</comment_count>
      <attachid>169983</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-22 14:14:29 -0700</bug_when>
    <thetext>Comment on attachment 169983
Patch

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

&gt; PerformanceTests/ChangeLog:10
&gt; +        Adopt chunk based loading logic from html5-full-render.html into measurePageLoadTime function,
&gt; +        this is needed to measure the performance and the memory consumption of the PageLoadTests as
&gt; +        we do it for all other performancetests.

You should remove the duplicated code in html5-full-render to ensure the added code works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747946</commentid>
    <comment_count>3</comment_count>
      <attachid>169997</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-10-22 15:13:52 -0700</bug_when>
    <thetext>Created attachment 169997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747949</commentid>
    <comment_count>4</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-10-22 15:15:09 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; You should remove the duplicated code in html5-full-render to ensure the added code works.

Done and uploaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747974</commentid>
    <comment_count>5</comment_count>
      <attachid>169997</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-22 15:38:17 -0700</bug_when>
    <thetext>Comment on attachment 169997
Patch

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

&gt; PerformanceTests/Parser/html5-full-render.html:5
&gt;  var spec = PerfTestRunner.loadFile(&quot;resources/html5.html&quot;);

It seems silly to call loadFile separately. I would have merged this into measurePageLoadTime.

&gt; PerformanceTests/Parser/html5-full-render.html:11
&gt; +    var chunkSize = 500000; // 6.09mb / 500k = approx 13 chunks (thus 13 forced layouts/style resolves).
&gt; +    var runs = 5; // Depending on the chosen chunk size, iterations can take over 60s to run on a fast machine, so we only run 5.
&gt; +    PerfTestRunner.measurePageLoadTime(spec, chunkSize, runs);

I&apos;d prefer using JSON object to pass in arguments as in:
PerfTestRunner.measurePageLoadTime({path: &quot;resources/html5.html&quot;,
    chunkSize: 50000,
    runCount: 5});
I also think 50,000 bytes chunk size should be default.

&gt; PerformanceTests/resources/runner.js:308
&gt; +        PerfTestRunner.unit = &quot;ms&quot;;

Why are you manually testing the unit instead of just calling measureTime?

&gt; PerformanceTests/resources/runner.js:309
&gt; +        start({run: function() {

Please use measureTime instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747982</commentid>
    <comment_count>6</comment_count>
      <attachid>169997</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-22 15:41:41 -0700</bug_when>
    <thetext>Comment on attachment 169997
Patch

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

&gt;&gt; PerformanceTests/resources/runner.js:309
&gt;&gt; +        start({run: function() {
&gt; 
&gt; Please use measureTime instead.

Also, it&apos;s not great to create the test object here. If we had gotten the test object from caller, we wouldn&apos;t need to pass in runCount and other values as it&apos;ll be done so automatically.

&gt; PerformanceTests/resources/runner.js:330
&gt; +            // Note: We&apos;ve inlined the stylesheets in html5.html.  Before we did that, it seemed to be
&gt; +            // random as to whether style resolution would show up at all in the samples.
&gt; +            // Talking with Hyatt and jamesr we believe this may be the ignorePendingStylesheets
&gt; +            // logic which is triggered off of a timer which is fired after the load completes.
&gt; +            // By inlining the stylesheets we&apos;re avoiding this race condition.

This comment doesn&apos;t belong here.

&gt; PerformanceTests/resources/runner.js:343
&gt; +                // Note that we won&apos;t cause a style resolve until we&apos;ve encountered the &lt;body&gt; element.
&gt; +                // Thus the number of chunks counted above is not exactly equal to the number of style resolves.
&gt; +                if (iframe.contentDocument.body)
&gt; +                    iframe.contentDocument.body.clientHeight; // Force a full layout/style-resolve.
&gt; +                if (iframe.contentDocument.documentElement)
&gt; +                    iframe.contentDocument.documentElement.offsetWidth; // Force the painting.

This is not going to work since a HTML document without a body element will still have the document element. You need to check whether the document is a HTML document or not, and if it is, then don&apos;t force paint until we find body.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747985</commentid>
    <comment_count>7</comment_count>
      <attachid>169997</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-22 15:42:16 -0700</bug_when>
    <thetext>Comment on attachment 169997
Patch

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

&gt;&gt; PerformanceTests/resources/runner.js:343
&gt;&gt; +                    iframe.contentDocument.documentElement.offsetWidth; // Force the painting.
&gt; 
&gt; This is not going to work since a HTML document without a body element will still have the document element. You need to check whether the document is a HTML document or not, and if it is, then don&apos;t force paint until we find body.

In fact, r- because of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748715</commentid>
    <comment_count>8</comment_count>
      <attachid>170180</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-10-23 09:23:20 -0700</bug_when>
    <thetext>Created attachment 170180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748717</commentid>
    <comment_count>9</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-10-23 09:24:23 -0700</bug_when>
    <thetext>I addressed the comments in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748973</commentid>
    <comment_count>10</comment_count>
      <attachid>170180</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-23 14:10:06 -0700</bug_when>
    <thetext>Comment on attachment 170180
Patch

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

&gt; PerformanceTests/Parser/html5-full-render.html:8
&gt; +    chunkSize: 500000, // 6.09mb / 500k = approx 13 chunks (thus 13 forced layouts/style resolves).

No need to pass in 50,000 here since it&apos;s the default value.

&gt; PerformanceTests/resources/runner.js:307
&gt; +    PerfTestRunner.measurePageLoadTime = function(parameters) {

This argument should just be test.

&gt; PerformanceTests/resources/runner.js:338
&gt; +                if (iframe.contentDocument.body &amp;&amp; iframe.contentDocument.documentElement.nodeName == &quot;HTML&quot;)
&gt; +                    iframe.contentDocument.documentElement.offsetWidth; // Force the painting.

This won&apos;t work for SVG files since they obviously would not have the body element.
What you need to check is that:
else if (document.documentElement.namespaceURI.indexOf(&apos;html&apos;) &gt; 0)
or
else if (document.documentElement.localName == &apos;html&apos;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748989</commentid>
    <comment_count>11</comment_count>
      <attachid>170236</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-10-23 14:32:08 -0700</bug_when>
    <thetext>Created attachment 170236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748992</commentid>
    <comment_count>12</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-10-23 14:33:50 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 170180 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170180&amp;action=review
&gt; 
&gt; &gt; PerformanceTests/Parser/html5-full-render.html:8
&gt; &gt; +    chunkSize: 500000, // 6.09mb / 500k = approx 13 chunks (thus 13 forced layouts/style resolves).
&gt; 
&gt; No need to pass in 50,000 here since it&apos;s the default value.

It&apos;s 500,000. We need that for html5-full-render parser. By default I set it to 50,000 since in the most cases it&apos;s more appropriate.

&gt; &gt; PerformanceTests/resources/runner.js:307
&gt; &gt; +    PerfTestRunner.measurePageLoadTime = function(parameters) {
&gt; 
&gt; This argument should just be test.

True. Modified.

&gt; &gt; PerformanceTests/resources/runner.js:338
&gt; &gt; +                if (iframe.contentDocument.body &amp;&amp; iframe.contentDocument.documentElement.nodeName == &quot;HTML&quot;)
&gt; &gt; +                    iframe.contentDocument.documentElement.offsetWidth; // Force the painting.
&gt; 
&gt; This won&apos;t work for SVG files since they obviously would not have the body element.
&gt; What you need to check is that:
&gt; else if (document.documentElement.namespaceURI.indexOf(&apos;html&apos;) &gt; 0)
&gt; or
&gt; else if (document.documentElement.localName == &apos;html&apos;)

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749033</commentid>
    <comment_count>13</comment_count>
      <attachid>170236</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-10-23 15:03:59 -0700</bug_when>
    <thetext>Comment on attachment 170236
Patch

Clearing flags on attachment: 170236

Committed r132273: &lt;http://trac.webkit.org/changeset/132273&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749034</commentid>
    <comment_count>14</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-10-23 15:04:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749369</commentid>
    <comment_count>15</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-10-23 22:52:08 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 170236 [details])
&gt; Clearing flags on attachment: 170236
&gt; 
&gt; Committed r132273: &lt;http://trac.webkit.org/changeset/132273&gt;

It broke the Parser/html5-full-render.html. Haven&apos;t you run test
before landing?

Qt error:
----------
Running Parser/html5-full-render.html (93 of 105)
Got an exception while running test.run with name=TypeError, message=&apos;undefined&apos; is not an object (evaluating &apos;this.file.length&apos;)
values  ms
median NaN ms
min undefined ms
max undefined ms
FAILED
Finished: 0.583329 s

Chromium error:
----------------
Running Parser/html5-full-render.html (93 of 105)
Got an exception while running test.run with name=TypeError, message=Cannot read property &apos;length&apos; of undefined
values  ms
median NaN ms
min undefined ms
max undefined ms
FAILED
Finished: 0.199509 s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749382</commentid>
    <comment_count>16</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-10-23 23:20:34 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #13)
&gt; &gt; (From update of attachment 170236 [details] [details])
&gt; &gt; Clearing flags on attachment: 170236
&gt; &gt; 
&gt; &gt; Committed r132273: &lt;http://trac.webkit.org/changeset/132273&gt;
&gt; 
&gt; It broke the Parser/html5-full-render.html. Haven&apos;t you run test
&gt; before landing?
&gt; 
&gt; Qt error:
&gt; ----------
&gt; Running Parser/html5-full-render.html (93 of 105)
&gt; Got an exception while running test.run with name=TypeError, message=&apos;undefined&apos; is not an object (evaluating &apos;this.file.length&apos;)
&gt; values  ms
&gt; median NaN ms
&gt; min undefined ms
&gt; max undefined ms
&gt; FAILED
&gt; Finished: 0.583329 s
&gt; 
&gt; Chromium error:
&gt; ----------------
&gt; Running Parser/html5-full-render.html (93 of 105)
&gt; Got an exception while running test.run with name=TypeError, message=Cannot read property &apos;length&apos; of undefined
&gt; values  ms
&gt; median NaN ms
&gt; min undefined ms
&gt; max undefined ms
&gt; FAILED
&gt; Finished: 0.199509 s

The fix is staying here:
https://bugs.webkit.org/show_bug.cgi?id=100172</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169983</attachid>
            <date>2012-10-22 14:11:56 -0700</date>
            <delta_ts>2012-10-22 15:13:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100029-20121022141035.patch</filename>
            <type>text/plain</type>
            <size>3608</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTMzCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU3MGU0OWY2NzU5
NjlmZjhkNWQ0ODNhN2FiYTNhMzI4NWQzNTVhMjMuLmEwNDdlY2ExYzUzYmQ3ZjRkM2E0NzgxYjFk
ZTRmYTBkOTAzMWNjMWIgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTAt
MjIgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIG1l
YXN1cmVQYWdlTG9hZFRpbWUgZnVuY3Rpb24gdG8gUGVyZlRlc3RSdW5uZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDAyOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkb3B0IGNodW5rIGJhc2VkIGxv
YWRpbmcgbG9naWMgZnJvbSBodG1sNS1mdWxsLXJlbmRlci5odG1sIGludG8gbWVhc3VyZVBhZ2VM
b2FkVGltZSBmdW5jdGlvbiwKKyAgICAgICAgdGhpcyBpcyBuZWVkZWQgdG8gbWVhc3VyZSB0aGUg
cGVyZm9ybWFuY2UgYW5kIHRoZSBtZW1vcnkgY29uc3VtcHRpb24gb2YgdGhlIFBhZ2VMb2FkVGVz
dHMgYXMKKyAgICAgICAgd2UgZG8gaXQgZm9yIGFsbCBvdGhlciBwZXJmb3JtYW5jZXRlc3RzLgor
CisgICAgICAgICogcmVzb3VyY2VzL3J1bm5lci5qczoKKyAgICAgICAgKC4pOiBBZGQgbWVhc3Vy
ZVBhZ2VMb2FkVGltZSBmdW5jdGlvbi4KKwogMjAxMi0xMC0yMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtWOF0gVmFzdGx5IHNpbXBsaWZ5IFY4R0NDb250cm9s
bGVyJ3MgTm9kZVZpc2l0b3IKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2Vz
L3J1bm5lci5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5qcwppbmRleCAx
NWFjNDg4NjA4MDIwYjkzZWQzYThlZTU4MGU0NDBkYjJkYzYwOTFhLi5lMjhlOGM1ZmQ4YzMyOWQ3
NGQxZTM1ZjViZGUwM2Y4NTE1ZTFlNDYyIDEwMDc1NQotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL3Jl
c291cmNlcy9ydW5uZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVy
LmpzCkBAIC0zMDMsNSArMzAzLDQyIEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAg
ICByZXR1cm4gUGVyZlRlc3RSdW5uZXIubm93KCkgLSBzdGFydFRpbWU7CiAgICAgfQogCisgICAg
UGVyZlRlc3RSdW5uZXIubWVhc3VyZVBhZ2VMb2FkVGltZSA9IGZ1bmN0aW9uKGZpbGUpIHsKKyAg
ICAgICAgUGVyZlRlc3RSdW5uZXIudW5pdCA9ICJtcyI7CisgICAgICAgIHN0YXJ0KHtydW46IGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIGNodW5rcyA9IFtdOworICAgICAgICAgICAgLy8g
VGhlIHNtYWxsZXIgdGhlIGNodW5rcyB0aGUgbW9yZSBzdHlsZSByZXNvbHZlcyB3ZSBkby4KKyAg
ICAgICAgICAgIC8vIFNtYWxsZXIgY2h1bmsgc2l6ZXMgd2lsbCBzaG93IG1vcmUgc2FtcGxlcyBp
biBzdHlsZSByZXNvbHV0aW9uLgorICAgICAgICAgICAgLy8gTGFyZ2VyIGNodW5rIHNpemVzIHdp
bGwgc2hvdyBtb3JlIHNhbXBsZXMgaW4gbGluZSBsYXlvdXQuCisgICAgICAgICAgICAvLyBTbWFs
bGVyIGNodW5rIHNpemVzIHJ1biBzbG93ZXIgb3ZlcmFsbCwgYXMgdGhlIHBlci1jaHVuayBvdmVy
aGVhZCBpcyBoaWdoLgorICAgICAgICAgICAgdmFyIGNodW5rU2l6ZSA9IDU1NTAwOyAvLyBDdXJy
ZW50bHkgdGhlIGF2ZXJhZ2UgZmlsZSBzaXplIGlzIGFyb3VuZCA1NTUwMDAgLyA1NTUwMCA9IGFw
cHJveCAxMCBjaHVua3MgKHRodXMgYXBwcm94IDEwIGZvcmNlZCBsYXlvdXRzL3N0eWxlIHJlc29s
dmVzKS4KKyAgICAgICAgICAgIHZhciBjaHVua0NvdW50ID0gTWF0aC5jZWlsKGZpbGUubGVuZ3Ro
IC8gY2h1bmtTaXplKTsKKyAgICAgICAgICAgIGZvciAodmFyIGNodW5rSW5kZXggPSAwOyBjaHVu
a0luZGV4IDwgY2h1bmtDb3VudDsgY2h1bmtJbmRleCsrKSB7CisgICAgICAgICAgICAgICAgdmFy
IGNodW5rID0gZmlsZS5zdWJzdHIoY2h1bmtJbmRleCAqIGNodW5rU2l6ZSwgY2h1bmtTaXplKTsK
KyAgICAgICAgICAgICAgICBjaHVua3MucHVzaChjaHVuayk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBQZXJmVGVzdFJ1bm5lci5sb2dJbmZvKCJUZXN0aW5nICIgKyBmaWxlLmxlbmd0aCAr
ICIgYnl0ZSBkb2N1bWVudCBpbiAiICsgY2h1bmtDb3VudCArICIgIiArIGNodW5rU2l6ZSArICIg
Ynl0ZSBjaHVua3MuIik7CisKKyAgICAgICAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoaWZyYW1lKTsKKyAgICAgICAgICAgIGlmcmFtZS5zYW5kYm94ID0gJyc7ICAvLyBQcmV2ZW50
IGV4dGVybmFsIGxvYWRzIHdoaWNoIGNvdWxkIGNhdXNlIHdyaXRlKCkgdG8gcmV0dXJuIGJlZm9y
ZSBjb21wbGV0aW5nIHRoZSBwYXJzZS4KKyAgICAgICAgICAgIGlmcmFtZS5zdHlsZS53aWR0aCA9
ICI2MDBweCI7IC8vIEhhdmUgYSByZWFzb25hYmxlIHNpemUgc28gd2UncmUgbm90IGxpbmUtYnJl
YWtpbmcgb24gZXZlcnkgY2hhcmFjdGVyLgorICAgICAgICAgICAgaWZyYW1lLnN0eWxlLmhlaWdo
dCA9ICI4MDBweCI7CisgICAgICAgICAgICBpZnJhbWUuY29udGVudERvY3VtZW50Lm9wZW4oKTsK
KworICAgICAgICAgICAgZm9yICh2YXIgY2h1bmtJbmRleCA9IDA7IGNodW5rSW5kZXggPCBjaHVu
a3MubGVuZ3RoOyBjaHVua0luZGV4KyspIHsKKyAgICAgICAgICAgICAgICBpZnJhbWUuY29udGVu
dERvY3VtZW50LndyaXRlKGNodW5rc1tjaHVua0luZGV4XSk7CisgICAgICAgICAgICAgICAgLy8g
Tm90ZSB0aGF0IHdlIHdvbid0IGNhdXNlIGEgc3R5bGUgcmVzb2x2ZSB1bnRpbCB3ZSd2ZSBlbmNv
dW50ZXJlZCB0aGUgPGJvZHk+IGVsZW1lbnQuCisgICAgICAgICAgICAgICAgLy8gVGh1cyB0aGUg
bnVtYmVyIG9mIGNodW5rcyBjb3VudGVkIGFib3ZlIGlzIG5vdCBleGFjdGx5IGVxdWFsIHRvIHRo
ZSBudW1iZXIgb2Ygc3R5bGUgcmVzb2x2ZXMuCisgICAgICAgICAgICAgICAgaWYgKGlmcmFtZS5j
b250ZW50RG9jdW1lbnQuYm9keSkKKyAgICAgICAgICAgICAgICAgICAgaWZyYW1lLmNvbnRlbnRE
b2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDsgLy8gRm9yY2UgYSBmdWxsIGxheW91dC9zdHlsZS1y
ZXNvbHZlLgorICAgICAgICAgICAgICAgIGlmcmFtZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50Lm9mZnNldFdpZHRoOyAvLyBGb3JjZSB0aGUgcGFpbnRpbmcuCisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGlmcmFtZS5jb250ZW50RG9jdW1lbnQuY2xvc2UoKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTsKKyAgICAgICAgfX0sIG1lYXN1
cmVUaW1lT25jZSk7CisgICAgfQorCiAgICAgd2luZG93LlBlcmZUZXN0UnVubmVyID0gUGVyZlRl
c3RSdW5uZXI7CiB9KSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169997</attachid>
            <date>2012-10-22 15:13:52 -0700</date>
            <delta_ts>2012-10-23 09:23:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100029-20121022151231.patch</filename>
            <type>text/plain</type>
            <size>7468</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTMzCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU3MGU0OWY2NzU5
NjlmZjhkNWQ0ODNhN2FiYTNhMzI4NWQzNTVhMjMuLjc0YmM2NzI3OTFjZDZjYmUxMDYzZmUwMTZk
NzE3NzZmMmViMzkyMGQgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAt
MjIgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIG1l
YXN1cmVQYWdlTG9hZFRpbWUgZnVuY3Rpb24gdG8gUGVyZlRlc3RSdW5uZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDAyOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkb3B0IGNodW5rIGJhc2VkIGxv
YWRpbmcgbG9naWMgZnJvbSBodG1sNS1mdWxsLXJlbmRlci5odG1sIGludG8gbWVhc3VyZVBhZ2VM
b2FkVGltZSBmdW5jdGlvbiwKKyAgICAgICAgdGhpcyBpcyBuZWVkZWQgdG8gbWVhc3VyZSB0aGUg
cGVyZm9ybWFuY2UgYW5kIHRoZSBtZW1vcnkgY29uc3VtcHRpb24gb2YgdGhlIFBhZ2VMb2FkVGVz
dHMgYXMKKyAgICAgICAgd2UgZG8gaXQgZm9yIGFsbCBvdGhlciBwZXJmb3JtYW5jZXRlc3RzLgor
CisgICAgICAgICogUGFyc2VyL2h0bWw1LWZ1bGwtcmVuZGVyLmh0bWw6IE1vdmUgdGhlIGJlaGF2
aW9yIHRvIHJ1bm5lci5qcy4KKyAgICAgICAgKiByZXNvdXJjZXMvcnVubmVyLmpzOgorICAgICAg
ICAoLik6IEFkZCBtZWFzdXJlUGFnZUxvYWRUaW1lIGZ1bmN0aW9uLgorCiAyMDEyLTEwLTIyICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1Y4XSBWYXN0bHkgc2lt
cGxpZnkgVjhHQ0NvbnRyb2xsZXIncyBOb2RlVmlzaXRvcgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9QYXJzZXIvaHRtbDUtZnVsbC1yZW5kZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMv
UGFyc2VyL2h0bWw1LWZ1bGwtcmVuZGVyLmh0bWwKaW5kZXggMDI2YjdmNTBkZDhiNTEzMjM0YmNi
NTY4YWQ1NjAzYTNiOGFiNmFmNy4uMGJiOGQ4NWU4ZTMxNmVjNTc0MWQ4NWYwNjk4MGZjYmYxMmE4
ODlkOCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9QYXJzZXIvaHRtbDUtZnVsbC1yZW5k
ZXIuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL1BhcnNlci9odG1sNS1mdWxsLXJlbmRlci5o
dG1sCkBAIC00LDUyICs0LDExIEBACiA8c2NyaXB0PgogdmFyIHNwZWMgPSBQZXJmVGVzdFJ1bm5l
ci5sb2FkRmlsZSgicmVzb3VyY2VzL2h0bWw1Lmh0bWwiKTsKIAotdmFyIGNodW5rcyA9IFtdOwot
Ly8gVGhlIHNtYWxsZXIgdGhlIGNodW5rcyB0aGUgbW9yZSBzdHlsZSByZXNvbHZlcyB3ZSBkby4K
LS8vIFNtYWxsZXIgY2h1bmsgc2l6ZXMgd2lsbCBzaG93IG1vcmUgc2FtcGxlcyBpbiBzdHlsZSBy
ZXNvbHV0aW9uLgotLy8gTGFyZ2VyIGNodW5rIHNpemVzIHdpbGwgc2hvdyBtb3JlIHNhbXBsZXMg
aW4gbGluZSBsYXlvdXQuCi0vLyBTbWFsbGVyIGNodW5rIHNpemVzIHJ1biBzbG93ZXIgb3ZlcmFs
bCwgYXMgdGhlIHBlci1jaHVuayBvdmVyaGVhZCBpcyBoaWdoLgotLy8gVGVzdGluZyBvbiBteSBt
YWNoaW5lIGhhcyBzaG93biB0aGF0IHdlIG5lZWQgMTAtMTUgY2h1bmtzIGJlZm9yZSBzdHlsZSBy
ZXNvbHV0aW9uIGlzIGFsd2F5cyB0aGUgdG9wIHNhbXBsZS4KLXZhciBjaHVua1NpemUgPSA1MDAw
MDA7IC8vIDYuMDltYiAvIDUwMGsgPSBhcHByb3ggMTMgY2h1bmtzICh0aHVzIDEzIGZvcmNlZCBs
YXlvdXRzL3N0eWxlIHJlc29sdmVzKS4KLXZhciBjaHVua0NvdW50ID0gTWF0aC5jZWlsKHNwZWMu
bGVuZ3RoIC8gY2h1bmtTaXplKTsKLWZvciAodmFyIGNodW5rSW5kZXggPSAwOyBjaHVua0luZGV4
IDwgY2h1bmtDb3VudDsgY2h1bmtJbmRleCsrKSB7Ci0gICAgdmFyIGNodW5rID0gc3BlYy5zdWJz
dHIoY2h1bmtJbmRleCAqIGNodW5rU2l6ZSwgY2h1bmtTaXplKTsKLSAgICBjaHVua3MucHVzaChj
aHVuayk7Ci19Ci0KLVBlcmZUZXN0UnVubmVyLmxvZ0luZm8oIlRlc3RpbmcgIiArIHNwZWMubGVu
Z3RoICsgIiBieXRlIGRvY3VtZW50IGluICIgKyBjaHVua0NvdW50ICsgIiAiICsgY2h1bmtTaXpl
ICsgIiBieXRlIGNodW5rcy4iKTsKLQotZnVuY3Rpb24gbG9hZENodW5rZWRTcGVjSW50b0lmcmFt
ZShpZnJhbWUpIHsKLSAgICAvLyBOb3RlOiBXZSd2ZSBpbmxpbmVkIHRoZSBzdHlsZXNoZWV0cyBp
biBodG1sNS5odG1sLiAgQmVmb3JlIHdlIGRpZCB0aGF0LCBpdCBzZWVtZWQgdG8gYmUKLSAgICAv
LyByYW5kb20gYXMgdG8gd2hldGhlciBzdHlsZSByZXNvbHV0aW9uIHdvdWxkIHNob3cgdXAgYXQg
YWxsIGluIHRoZSBzYW1wbGVzLgotICAgIC8vIFRhbGtpbmcgd2l0aCBIeWF0dCBhbmQgamFtZXNy
IHdlIGJlbGlldmUgdGhpcyBtYXkgYmUgdGhlIGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cwotICAg
IC8vIGxvZ2ljIHdoaWNoIGlzIHRyaWdnZXJlZCBvZmYgb2YgYSB0aW1lciB3aGljaCBpcyBmaXJl
ZCBhZnRlciB0aGUgbG9hZCBjb21wbGV0ZXMuCi0gICAgLy8gQnkgaW5saW5pbmcgdGhlIHN0eWxl
c2hlZXRzIHdlJ3JlIGF2b2lkaW5nIHRoaXMgcmFjZSBjb25kaXRpb24uCi0gICAgaWZyYW1lLnNh
bmRib3ggPSAnJzsgIC8vIFByZXZlbnQgZXh0ZXJuYWwgbG9hZHMgd2hpY2ggY291bGQgY2F1c2Ug
d3JpdGUoKSB0byByZXR1cm4gYmVmb3JlIGNvbXBsZXRpbmcgdGhlIHBhcnNlLgotICAgIGlmcmFt
ZS5zdHlsZS53aWR0aCA9ICI2MDBweCI7IC8vIEhhdmUgYSByZWFzb25hYmxlIHNpemUgc28gd2Un
cmUgbm90IGxpbmUtYnJlYWtpbmcgb24gZXZlcnkgY2hhcmFjdGVyLgotICAgIGlmcmFtZS5zdHls
ZS5oZWlnaHQgPSAiODAwcHgiOwotICAgIGlmcmFtZS5jb250ZW50RG9jdW1lbnQub3BlbigpOwot
Ci0gICAgZm9yICh2YXIgY2h1bmtJbmRleCA9IDA7IGNodW5rSW5kZXggPCBjaHVua3MubGVuZ3Ro
OyBjaHVua0luZGV4KyspIHsKLSAgICAgICAgaWZyYW1lLmNvbnRlbnREb2N1bWVudC53cml0ZShj
aHVua3NbY2h1bmtJbmRleF0pOwotICAgICAgICAvLyBOb3RlIHRoYXQgd2Ugd29uJ3QgY2F1c2Ug
YSBzdHlsZSByZXNvbHZlIHVudGlsIHdlJ3ZlIGVuY291bnRlcmVkIHRoZSA8Ym9keT4gZWxlbWVu
dC4KLSAgICAgICAgLy8gVGh1cyB0aGUgbnVtYmVyIG9mIGNodW5rcyBjb3VudGVkIGFib3ZlIGlz
IG5vdCBleGFjdGx5IGVxdWFsIHRvIHRoZSBudW1iZXIgb2Ygc3R5bGUgcmVzb2x2ZXMuCi0gICAg
ICAgIGlmIChpZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkpCi0gICAgICAgICAgICBpZnJhbWUu
Y29udGVudERvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0OyAvLyBGb3JjZSBhIGZ1bGwgbGF5b3V0
L3N0eWxlLXJlc29sdmUuCi0gICAgfQotCi0gICAgaWZyYW1lLmNvbnRlbnREb2N1bWVudC5jbG9z
ZSgpOwotfQotCiAvLyBSdW5uaW5nIGZyb20gdGhlIG9ubG9hZCBjYWxsYmFjayBqdXN0IG1ha2Vz
IHRoZSBVSSBuaWNlciBhcyBpdCBzaG93cyB0aGUgbG9ncyBiZWZvcmUgc3RhcnRpbmcgdGhlIHRl
c3QuCiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgLy8gRGVwZW5kaW5nIG9uIHRo
ZSBjaG9zZW4gY2h1bmsgc2l6ZSwgaXRlcmF0aW9ucyBjYW4gdGFrZSBvdmVyIDYwcyB0byBydW4g
b24gYSBmYXN0IG1hY2hpbmUsIHNvIHdlIG9ubHkgcnVuIDIuCi0gICAgUGVyZlRlc3RSdW5uZXIu
bWVhc3VyZVRpbWUoe3J1bjogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBpZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChpZnJhbWUpOwotICAgICAgICBsb2FkQ2h1bmtlZFNwZWNJbnRvSWZyYW1lKGlmcmFt
ZSk7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTsKLSAgICB9LCBy
dW5Db3VudDogNX0pOworICAgIHZhciBjaHVua1NpemUgPSA1MDAwMDA7IC8vIDYuMDltYiAvIDUw
MGsgPSBhcHByb3ggMTMgY2h1bmtzICh0aHVzIDEzIGZvcmNlZCBsYXlvdXRzL3N0eWxlIHJlc29s
dmVzKS4KKyAgICB2YXIgcnVucyA9IDU7IC8vIERlcGVuZGluZyBvbiB0aGUgY2hvc2VuIGNodW5r
IHNpemUsIGl0ZXJhdGlvbnMgY2FuIHRha2Ugb3ZlciA2MHMgdG8gcnVuIG9uIGEgZmFzdCBtYWNo
aW5lLCBzbyB3ZSBvbmx5IHJ1biA1LgorICAgIFBlcmZUZXN0UnVubmVyLm1lYXN1cmVQYWdlTG9h
ZFRpbWUoc3BlYywgY2h1bmtTaXplLCBydW5zKTsKIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5uZXIuanMgYi9QZXJmb3JtYW5jZVRlc3Rz
L3Jlc291cmNlcy9ydW5uZXIuanMKaW5kZXggMTVhYzQ4ODYwODAyMGI5M2VkM2E4ZWU1ODBlNDQw
ZGIyZGM2MDkxYS4uMjkxNjM4NDBmNDdiODYwMTIwNTZiN2U5OWQ2MjRiZWE5YTI1MWExNCAxMDA3
NTUKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5qcwpAQCAtMzAzLDUgKzMwMyw1MCBAQCBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgcmV0dXJuIFBlcmZUZXN0UnVubmVyLm5vdygp
IC0gc3RhcnRUaW1lOwogICAgIH0KIAorCisgICAgUGVyZlRlc3RSdW5uZXIubWVhc3VyZVBhZ2VM
b2FkVGltZSA9IGZ1bmN0aW9uKGZpbGUsIGNodW5rU2l6ZSwgcnVucykgeworICAgICAgICBQZXJm
VGVzdFJ1bm5lci51bml0ID0gIm1zIjsKKyAgICAgICAgc3RhcnQoe3J1bjogZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB2YXIgY2h1bmtzID0gW107CisgICAgICAgICAgICAvLyBUaGUgc21hbGxl
ciB0aGUgY2h1bmtzIHRoZSBtb3JlIHN0eWxlIHJlc29sdmVzIHdlIGRvLgorICAgICAgICAgICAg
Ly8gU21hbGxlciBjaHVuayBzaXplcyB3aWxsIHNob3cgbW9yZSBzYW1wbGVzIGluIHN0eWxlIHJl
c29sdXRpb24uCisgICAgICAgICAgICAvLyBMYXJnZXIgY2h1bmsgc2l6ZXMgd2lsbCBzaG93IG1v
cmUgc2FtcGxlcyBpbiBsaW5lIGxheW91dC4KKyAgICAgICAgICAgIC8vIFNtYWxsZXIgY2h1bmsg
c2l6ZXMgcnVuIHNsb3dlciBvdmVyYWxsLCBhcyB0aGUgcGVyLWNodW5rIG92ZXJoZWFkIGlzIGhp
Z2guCisgICAgICAgICAgICB2YXIgY2h1bmtDb3VudCA9IE1hdGguY2VpbChmaWxlLmxlbmd0aCAv
IGNodW5rU2l6ZSk7CisgICAgICAgICAgICBmb3IgKHZhciBjaHVua0luZGV4ID0gMDsgY2h1bmtJ
bmRleCA8IGNodW5rQ291bnQ7IGNodW5rSW5kZXgrKykgeworICAgICAgICAgICAgICAgIHZhciBj
aHVuayA9IGZpbGUuc3Vic3RyKGNodW5rSW5kZXggKiBjaHVua1NpemUsIGNodW5rU2l6ZSk7Cisg
ICAgICAgICAgICAgICAgY2h1bmtzLnB1c2goY2h1bmspOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBQZXJmVGVzdFJ1bm5lci5sb2dJbmZvKCJUZXN0aW5nICIgKyBmaWxlLmxlbmd0aCAr
ICIgYnl0ZSBkb2N1bWVudCBpbiAiICsgY2h1bmtDb3VudCArICIgIiArIGNodW5rU2l6ZSArICIg
Ynl0ZSBjaHVua3MuIik7CisKKyAgICAgICAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoaWZyYW1lKTsKKworICAgICAgICAgICAgLy8gTm90ZTogV2UndmUgaW5saW5lZCB0aGUgc3R5
bGVzaGVldHMgaW4gaHRtbDUuaHRtbC4gIEJlZm9yZSB3ZSBkaWQgdGhhdCwgaXQgc2VlbWVkIHRv
IGJlCisgICAgICAgICAgICAvLyByYW5kb20gYXMgdG8gd2hldGhlciBzdHlsZSByZXNvbHV0aW9u
IHdvdWxkIHNob3cgdXAgYXQgYWxsIGluIHRoZSBzYW1wbGVzLgorICAgICAgICAgICAgLy8gVGFs
a2luZyB3aXRoIEh5YXR0IGFuZCBqYW1lc3Igd2UgYmVsaWV2ZSB0aGlzIG1heSBiZSB0aGUgaWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzCisgICAgICAgICAgICAvLyBsb2dpYyB3aGljaCBpcyB0cmln
Z2VyZWQgb2ZmIG9mIGEgdGltZXIgd2hpY2ggaXMgZmlyZWQgYWZ0ZXIgdGhlIGxvYWQgY29tcGxl
dGVzLgorICAgICAgICAgICAgLy8gQnkgaW5saW5pbmcgdGhlIHN0eWxlc2hlZXRzIHdlJ3JlIGF2
b2lkaW5nIHRoaXMgcmFjZSBjb25kaXRpb24uCisgICAgICAgICAgICBpZnJhbWUuc2FuZGJveCA9
ICcnOyAgLy8gUHJldmVudCBleHRlcm5hbCBsb2FkcyB3aGljaCBjb3VsZCBjYXVzZSB3cml0ZSgp
IHRvIHJldHVybiBiZWZvcmUgY29tcGxldGluZyB0aGUgcGFyc2UuCisgICAgICAgICAgICBpZnJh
bWUuc3R5bGUud2lkdGggPSAiNjAwcHgiOyAvLyBIYXZlIGEgcmVhc29uYWJsZSBzaXplIHNvIHdl
J3JlIG5vdCBsaW5lLWJyZWFraW5nIG9uIGV2ZXJ5IGNoYXJhY3Rlci4KKyAgICAgICAgICAgIGlm
cmFtZS5zdHlsZS5oZWlnaHQgPSAiODAwcHgiOworICAgICAgICAgICAgaWZyYW1lLmNvbnRlbnRE
b2N1bWVudC5vcGVuKCk7CisKKyAgICAgICAgICAgIGZvciAodmFyIGNodW5rSW5kZXggPSAwOyBj
aHVua0luZGV4IDwgY2h1bmtzLmxlbmd0aDsgY2h1bmtJbmRleCsrKSB7CisgICAgICAgICAgICAg
ICAgaWZyYW1lLmNvbnRlbnREb2N1bWVudC53cml0ZShjaHVua3NbY2h1bmtJbmRleF0pOworICAg
ICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSB3b24ndCBjYXVzZSBhIHN0eWxlIHJlc29sdmUg
dW50aWwgd2UndmUgZW5jb3VudGVyZWQgdGhlIDxib2R5PiBlbGVtZW50LgorICAgICAgICAgICAg
ICAgIC8vIFRodXMgdGhlIG51bWJlciBvZiBjaHVua3MgY291bnRlZCBhYm92ZSBpcyBub3QgZXhh
Y3RseSBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIHN0eWxlIHJlc29sdmVzLgorICAgICAgICAgICAg
ICAgIGlmIChpZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkpCisgICAgICAgICAgICAgICAgICAg
IGlmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7IC8vIEZvcmNlIGEgZnVs
bCBsYXlvdXQvc3R5bGUtcmVzb2x2ZS4KKyAgICAgICAgICAgICAgICBpZiAoaWZyYW1lLmNvbnRl
bnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpCisgICAgICAgICAgICAgICAgICAgIGlmcmFtZS5j
b250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldFdpZHRoOyAvLyBGb3JjZSB0aGUg
cGFpbnRpbmcuCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmcmFtZS5jb250ZW50RG9j
dW1lbnQuY2xvc2UoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZy
YW1lKTsKKyAgICAgICAgfSwgcnVuQ291bnQ6IHJ1bnMgfSwgbWVhc3VyZVRpbWVPbmNlKTsKKyAg
ICB9CisKICAgICB3aW5kb3cuUGVyZlRlc3RSdW5uZXIgPSBQZXJmVGVzdFJ1bm5lcjsKIH0pKCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170180</attachid>
            <date>2012-10-23 09:23:20 -0700</date>
            <delta_ts>2012-10-23 14:32:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100029-20121023092157.patch</filename>
            <type>text/plain</type>
            <size>7331</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMjMxCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU3MGU0OWY2NzU5
NjlmZjhkNWQ0ODNhN2FiYTNhMzI4NWQzNTVhMjMuLjcxOGFiNzUxMTY4ZDBkMmJkZDNhMTI4MGMz
MThiMzUxM2I0NjE4MDcgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAt
MjMgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIG1l
YXN1cmVQYWdlTG9hZFRpbWUgZnVuY3Rpb24gdG8gUGVyZlRlc3RSdW5uZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDAyOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkb3B0IGNodW5rIGJhc2VkIGxv
YWRpbmcgbG9naWMgZnJvbSBodG1sNS1mdWxsLXJlbmRlci5odG1sIGludG8gbWVhc3VyZVBhZ2VM
b2FkVGltZSBmdW5jdGlvbiwKKyAgICAgICAgdGhpcyBpcyBuZWVkZWQgdG8gbWVhc3VyZSB0aGUg
cGVyZm9ybWFuY2UgYW5kIHRoZSBtZW1vcnkgY29uc3VtcHRpb24gb2YgdGhlIFBhZ2VMb2FkVGVz
dHMgYXMKKyAgICAgICAgd2UgZG8gaXQgZm9yIGFsbCBvdGhlciBwZXJmb3JtYW5jZXRlc3RzLgor
CisgICAgICAgICogUGFyc2VyL2h0bWw1LWZ1bGwtcmVuZGVyLmh0bWw6IE1vdmUgdGhlIGJlaGF2
aW9yIHRvIHJ1bm5lci5qcy4KKyAgICAgICAgKiByZXNvdXJjZXMvcnVubmVyLmpzOgorICAgICAg
ICAoLik6IEFkZCBtZWFzdXJlUGFnZUxvYWRUaW1lIGZ1bmN0aW9uLgorCiAyMDEyLTEwLTIyICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1Y4XSBWYXN0bHkgc2lt
cGxpZnkgVjhHQ0NvbnRyb2xsZXIncyBOb2RlVmlzaXRvcgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9QYXJzZXIvaHRtbDUtZnVsbC1yZW5kZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMv
UGFyc2VyL2h0bWw1LWZ1bGwtcmVuZGVyLmh0bWwKaW5kZXggMDI2YjdmNTBkZDhiNTEzMjM0YmNi
NTY4YWQ1NjAzYTNiOGFiNmFmNy4uNWI3Y2NhZDdlNjZkMTY1ZWZjOTQ2NjI2MTQxYTlmZmIyNWE3
NWIzYyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9QYXJzZXIvaHRtbDUtZnVsbC1yZW5k
ZXIuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL1BhcnNlci9odG1sNS1mdWxsLXJlbmRlci5o
dG1sCkBAIC0yLDU0ICsyLDExIEBACiA8Ym9keT4KIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
cnVubmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci12YXIgc3BlYyA9IFBlcmZUZXN0UnVubmVy
LmxvYWRGaWxlKCJyZXNvdXJjZXMvaHRtbDUuaHRtbCIpOwotCi12YXIgY2h1bmtzID0gW107Ci0v
LyBUaGUgc21hbGxlciB0aGUgY2h1bmtzIHRoZSBtb3JlIHN0eWxlIHJlc29sdmVzIHdlIGRvLgot
Ly8gU21hbGxlciBjaHVuayBzaXplcyB3aWxsIHNob3cgbW9yZSBzYW1wbGVzIGluIHN0eWxlIHJl
c29sdXRpb24uCi0vLyBMYXJnZXIgY2h1bmsgc2l6ZXMgd2lsbCBzaG93IG1vcmUgc2FtcGxlcyBp
biBsaW5lIGxheW91dC4KLS8vIFNtYWxsZXIgY2h1bmsgc2l6ZXMgcnVuIHNsb3dlciBvdmVyYWxs
LCBhcyB0aGUgcGVyLWNodW5rIG92ZXJoZWFkIGlzIGhpZ2guCi0vLyBUZXN0aW5nIG9uIG15IG1h
Y2hpbmUgaGFzIHNob3duIHRoYXQgd2UgbmVlZCAxMC0xNSBjaHVua3MgYmVmb3JlIHN0eWxlIHJl
c29sdXRpb24gaXMgYWx3YXlzIHRoZSB0b3Agc2FtcGxlLgotdmFyIGNodW5rU2l6ZSA9IDUwMDAw
MDsgLy8gNi4wOW1iIC8gNTAwayA9IGFwcHJveCAxMyBjaHVua3MgKHRodXMgMTMgZm9yY2VkIGxh
eW91dHMvc3R5bGUgcmVzb2x2ZXMpLgotdmFyIGNodW5rQ291bnQgPSBNYXRoLmNlaWwoc3BlYy5s
ZW5ndGggLyBjaHVua1NpemUpOwotZm9yICh2YXIgY2h1bmtJbmRleCA9IDA7IGNodW5rSW5kZXgg
PCBjaHVua0NvdW50OyBjaHVua0luZGV4KyspIHsKLSAgICB2YXIgY2h1bmsgPSBzcGVjLnN1YnN0
cihjaHVua0luZGV4ICogY2h1bmtTaXplLCBjaHVua1NpemUpOwotICAgIGNodW5rcy5wdXNoKGNo
dW5rKTsKLX0KLQotUGVyZlRlc3RSdW5uZXIubG9nSW5mbygiVGVzdGluZyAiICsgc3BlYy5sZW5n
dGggKyAiIGJ5dGUgZG9jdW1lbnQgaW4gIiArIGNodW5rQ291bnQgKyAiICIgKyBjaHVua1NpemUg
KyAiIGJ5dGUgY2h1bmtzLiIpOwotCi1mdW5jdGlvbiBsb2FkQ2h1bmtlZFNwZWNJbnRvSWZyYW1l
KGlmcmFtZSkgewotICAgIC8vIE5vdGU6IFdlJ3ZlIGlubGluZWQgdGhlIHN0eWxlc2hlZXRzIGlu
IGh0bWw1Lmh0bWwuICBCZWZvcmUgd2UgZGlkIHRoYXQsIGl0IHNlZW1lZCB0byBiZQotICAgIC8v
IHJhbmRvbSBhcyB0byB3aGV0aGVyIHN0eWxlIHJlc29sdXRpb24gd291bGQgc2hvdyB1cCBhdCBh
bGwgaW4gdGhlIHNhbXBsZXMuCi0gICAgLy8gVGFsa2luZyB3aXRoIEh5YXR0IGFuZCBqYW1lc3Ig
d2UgYmVsaWV2ZSB0aGlzIG1heSBiZSB0aGUgaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzCi0gICAg
Ly8gbG9naWMgd2hpY2ggaXMgdHJpZ2dlcmVkIG9mZiBvZiBhIHRpbWVyIHdoaWNoIGlzIGZpcmVk
IGFmdGVyIHRoZSBsb2FkIGNvbXBsZXRlcy4KLSAgICAvLyBCeSBpbmxpbmluZyB0aGUgc3R5bGVz
aGVldHMgd2UncmUgYXZvaWRpbmcgdGhpcyByYWNlIGNvbmRpdGlvbi4KLSAgICBpZnJhbWUuc2Fu
ZGJveCA9ICcnOyAgLy8gUHJldmVudCBleHRlcm5hbCBsb2FkcyB3aGljaCBjb3VsZCBjYXVzZSB3
cml0ZSgpIHRvIHJldHVybiBiZWZvcmUgY29tcGxldGluZyB0aGUgcGFyc2UuCi0gICAgaWZyYW1l
LnN0eWxlLndpZHRoID0gIjYwMHB4IjsgLy8gSGF2ZSBhIHJlYXNvbmFibGUgc2l6ZSBzbyB3ZSdy
ZSBub3QgbGluZS1icmVha2luZyBvbiBldmVyeSBjaGFyYWN0ZXIuCi0gICAgaWZyYW1lLnN0eWxl
LmhlaWdodCA9ICI4MDBweCI7Ci0gICAgaWZyYW1lLmNvbnRlbnREb2N1bWVudC5vcGVuKCk7Ci0K
LSAgICBmb3IgKHZhciBjaHVua0luZGV4ID0gMDsgY2h1bmtJbmRleCA8IGNodW5rcy5sZW5ndGg7
IGNodW5rSW5kZXgrKykgewotICAgICAgICBpZnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKGNo
dW5rc1tjaHVua0luZGV4XSk7Ci0gICAgICAgIC8vIE5vdGUgdGhhdCB3ZSB3b24ndCBjYXVzZSBh
IHN0eWxlIHJlc29sdmUgdW50aWwgd2UndmUgZW5jb3VudGVyZWQgdGhlIDxib2R5PiBlbGVtZW50
LgotICAgICAgICAvLyBUaHVzIHRoZSBudW1iZXIgb2YgY2h1bmtzIGNvdW50ZWQgYWJvdmUgaXMg
bm90IGV4YWN0bHkgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBzdHlsZSByZXNvbHZlcy4KLSAgICAg
ICAgaWYgKGlmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keSkKLSAgICAgICAgICAgIGlmcmFtZS5j
b250ZW50RG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7IC8vIEZvcmNlIGEgZnVsbCBsYXlvdXQv
c3R5bGUtcmVzb2x2ZS4KLSAgICB9Ci0KLSAgICBpZnJhbWUuY29udGVudERvY3VtZW50LmNsb3Nl
KCk7Ci19Ci0KIC8vIFJ1bm5pbmcgZnJvbSB0aGUgb25sb2FkIGNhbGxiYWNrIGp1c3QgbWFrZXMg
dGhlIFVJIG5pY2VyIGFzIGl0IHNob3dzIHRoZSBsb2dzIGJlZm9yZSBzdGFydGluZyB0aGUgdGVz
dC4KIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAvLyBEZXBlbmRpbmcgb24gdGhl
IGNob3NlbiBjaHVuayBzaXplLCBpdGVyYXRpb25zIGNhbiB0YWtlIG92ZXIgNjBzIHRvIHJ1biBv
biBhIGZhc3QgbWFjaGluZSwgc28gd2Ugb25seSBydW4gMi4KLSAgICBQZXJmVGVzdFJ1bm5lci5t
ZWFzdXJlVGltZSh7cnVuOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGlmcmFtZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlmcmFtZSk7Ci0gICAgICAgIGxvYWRDaHVua2VkU3BlY0ludG9JZnJhbWUoaWZyYW1l
KTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpZnJhbWUpOwotICAgIH0sIHJ1
bkNvdW50OiA1fSk7CisgICAgUGVyZlRlc3RSdW5uZXIubWVhc3VyZVBhZ2VMb2FkVGltZSh7cGF0
aDogInJlc291cmNlcy9odG1sNS5odG1sIiwKKyAgICBjaHVua1NpemU6IDUwMDAwMCwgLy8gNi4w
OW1iIC8gNTAwayA9IGFwcHJveCAxMyBjaHVua3MgKHRodXMgMTMgZm9yY2VkIGxheW91dHMvc3R5
bGUgcmVzb2x2ZXMpLgorICAgIHJ1bkNvdW50OiA1IH0pOyAvLyBEZXBlbmRpbmcgb24gdGhlIGNo
b3NlbiBjaHVuayBzaXplLCBpdGVyYXRpb25zIGNhbiB0YWtlIG92ZXIgNjBzIHRvIHJ1biBvbiBh
IGZhc3QgbWFjaGluZSwgc28gd2Ugb25seSBydW4gNS4KIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5uZXIuanMgYi9QZXJmb3JtYW5jZVRl
c3RzL3Jlc291cmNlcy9ydW5uZXIuanMKaW5kZXggMTVhYzQ4ODYwODAyMGI5M2VkM2E4ZWU1ODBl
NDQwZGIyZGM2MDkxYS4uOTA2YzQ4MDAzNTBhZjZmNzQ4ZmU3MTI2YjQ1ODcwZDM1MzBhMmExZiAx
MDA3NTUKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5qcwpAQCAtMzAzLDUgKzMwMyw1MSBAQCBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgcmV0dXJuIFBlcmZUZXN0UnVubmVyLm5v
dygpIC0gc3RhcnRUaW1lOwogICAgIH0KIAorCisgICAgUGVyZlRlc3RSdW5uZXIubWVhc3VyZVBh
Z2VMb2FkVGltZSA9IGZ1bmN0aW9uKHBhcmFtZXRlcnMpIHsKKyAgICAgICAgdmFyIHRlc3QgPSB7
fTsKKyAgICAgICAgdGVzdC5ydW4gPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBjaHVu
a3MgPSBbXTsKKyAgICAgICAgICAgIC8vIFRoZSBzbWFsbGVyIHRoZSBjaHVua3MgdGhlIG1vcmUg
c3R5bGUgcmVzb2x2ZXMgd2UgZG8uCisgICAgICAgICAgICAvLyBTbWFsbGVyIGNodW5rIHNpemVz
IHdpbGwgc2hvdyBtb3JlIHNhbXBsZXMgaW4gc3R5bGUgcmVzb2x1dGlvbi4KKyAgICAgICAgICAg
IC8vIExhcmdlciBjaHVuayBzaXplcyB3aWxsIHNob3cgbW9yZSBzYW1wbGVzIGluIGxpbmUgbGF5
b3V0LgorICAgICAgICAgICAgLy8gU21hbGxlciBjaHVuayBzaXplcyBydW4gc2xvd2VyIG92ZXJh
bGwsIGFzIHRoZSBwZXItY2h1bmsgb3ZlcmhlYWQgaXMgaGlnaC4KKyAgICAgICAgICAgIHZhciBj
aHVua0NvdW50ID0gTWF0aC5jZWlsKHRoaXMuZmlsZS5sZW5ndGggLyB0aGlzLmNodW5rU2l6ZSk7
CisgICAgICAgICAgICBmb3IgKHZhciBjaHVua0luZGV4ID0gMDsgY2h1bmtJbmRleCA8IGNodW5r
Q291bnQ7IGNodW5rSW5kZXgrKykgeworICAgICAgICAgICAgICAgIHZhciBjaHVuayA9IHRoaXMu
ZmlsZS5zdWJzdHIoY2h1bmtJbmRleCAqIHRoaXMuY2h1bmtTaXplLCB0aGlzLmNodW5rU2l6ZSk7
CisgICAgICAgICAgICAgICAgY2h1bmtzLnB1c2goY2h1bmspOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBQZXJmVGVzdFJ1bm5lci5sb2dJbmZvKCJUZXN0aW5nICIgKyB0aGlzLmZpbGUu
bGVuZ3RoICsgIiBieXRlIGRvY3VtZW50IGluICIgKyBjaHVua0NvdW50ICsgIiAiICsgdGhpcy5j
aHVua1NpemUgKyAiIGJ5dGUgY2h1bmtzLiIpOworCisgICAgICAgICAgICB2YXIgaWZyYW1lID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisKKyAgICAgICAgICAgIGlmcmFtZS5zYW5kYm94ID0g
Jyc7ICAvLyBQcmV2ZW50IGV4dGVybmFsIGxvYWRzIHdoaWNoIGNvdWxkIGNhdXNlIHdyaXRlKCkg
dG8gcmV0dXJuIGJlZm9yZSBjb21wbGV0aW5nIHRoZSBwYXJzZS4KKyAgICAgICAgICAgIGlmcmFt
ZS5zdHlsZS53aWR0aCA9ICI2MDBweCI7IC8vIEhhdmUgYSByZWFzb25hYmxlIHNpemUgc28gd2Un
cmUgbm90IGxpbmUtYnJlYWtpbmcgb24gZXZlcnkgY2hhcmFjdGVyLgorICAgICAgICAgICAgaWZy
YW1lLnN0eWxlLmhlaWdodCA9ICI4MDBweCI7CisgICAgICAgICAgICBpZnJhbWUuY29udGVudERv
Y3VtZW50Lm9wZW4oKTsKKworICAgICAgICAgICAgZm9yICh2YXIgY2h1bmtJbmRleCA9IDA7IGNo
dW5rSW5kZXggPCBjaHVua3MubGVuZ3RoOyBjaHVua0luZGV4KyspIHsKKyAgICAgICAgICAgICAg
ICBpZnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKGNodW5rc1tjaHVua0luZGV4XSk7CisgICAg
ICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHdlIHdvbid0IGNhdXNlIGEgc3R5bGUgcmVzb2x2ZSB1
bnRpbCB3ZSd2ZSBlbmNvdW50ZXJlZCB0aGUgPGJvZHk+IGVsZW1lbnQuCisgICAgICAgICAgICAg
ICAgLy8gVGh1cyB0aGUgbnVtYmVyIG9mIGNodW5rcyBjb3VudGVkIGFib3ZlIGlzIG5vdCBleGFj
dGx5IGVxdWFsIHRvIHRoZSBudW1iZXIgb2Ygc3R5bGUgcmVzb2x2ZXMuCisgICAgICAgICAgICAg
ICAgaWYgKGlmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keSkKKyAgICAgICAgICAgICAgICAgICAg
aWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDsgLy8gRm9yY2UgYSBmdWxs
IGxheW91dC9zdHlsZS1yZXNvbHZlLgorICAgICAgICAgICAgICAgIGlmIChpZnJhbWUuY29udGVu
dERvY3VtZW50LmJvZHkgJiYgaWZyYW1lLmNvbnRlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQu
bm9kZU5hbWUgPT0gIkhUTUwiKQorICAgICAgICAgICAgICAgICAgICBpZnJhbWUuY29udGVudERv
Y3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aDsgLy8gRm9yY2UgdGhlIHBhaW50aW5n
LgorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZnJhbWUuY29udGVudERvY3VtZW50LmNs
b3NlKCk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlmcmFtZSk7Cisg
ICAgICAgIH07CisgICAgICAgIHRlc3QuZmlsZSA9IFBlcmZUZXN0UnVubmVyLmxvYWRGaWxlKHBh
cmFtZXRlcnMucGF0aCk7CisgICAgICAgIHRlc3QuY2h1bmtTaXplID0gcGFyYW1ldGVycy5jaHVu
a1NpemUgfHwgNTAwMDA7CisgICAgICAgIGlmIChwYXJhbWV0ZXJzLnJ1bkNvdW50KQorICAgICAg
ICAgICAgdGVzdC5ydW5Db3VudCA9IHBhcmFtZXRlcnMucnVuQ291bnQ7CisKKyAgICAgICAgUGVy
ZlRlc3RSdW5uZXIubWVhc3VyZVRpbWUodGVzdCk7CisgICAgfQorCiAgICAgd2luZG93LlBlcmZU
ZXN0UnVubmVyID0gUGVyZlRlc3RSdW5uZXI7CiB9KSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170236</attachid>
            <date>2012-10-23 14:32:08 -0700</date>
            <delta_ts>2012-10-23 15:03:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100029-20121023143045.patch</filename>
            <type>text/plain</type>
            <size>7192</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODEyCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkxZjBjMTc3ZTRh
NjA1YzM2NzBkOGEwZTA2YzMyZTVjM2M5NzFjNjUuLmY4NDRlMzUzZmY3MTMwOGUxN2E3ZTNlNTFh
MTllM2FiMjhmYTVjNTIgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAt
MjMgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIG1l
YXN1cmVQYWdlTG9hZFRpbWUgZnVuY3Rpb24gdG8gUGVyZlRlc3RSdW5uZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDAyOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkb3B0IGNodW5rIGJhc2VkIGxv
YWRpbmcgbG9naWMgZnJvbSBodG1sNS1mdWxsLXJlbmRlci5odG1sIGludG8gbWVhc3VyZVBhZ2VM
b2FkVGltZSBmdW5jdGlvbiwKKyAgICAgICAgdGhpcyBpcyBuZWVkZWQgdG8gbWVhc3VyZSB0aGUg
cGVyZm9ybWFuY2UgYW5kIHRoZSBtZW1vcnkgY29uc3VtcHRpb24gb2YgdGhlIFBhZ2VMb2FkVGVz
dHMgYXMKKyAgICAgICAgd2UgZG8gaXQgZm9yIGFsbCBvdGhlciBwZXJmb3JtYW5jZXRlc3RzLgor
CisgICAgICAgICogUGFyc2VyL2h0bWw1LWZ1bGwtcmVuZGVyLmh0bWw6IE1vdmUgdGhlIGJlaGF2
aW9yIHRvIHJ1bm5lci5qcy4KKyAgICAgICAgKiByZXNvdXJjZXMvcnVubmVyLmpzOgorICAgICAg
ICAoLik6IEFkZCBtZWFzdXJlUGFnZUxvYWRUaW1lIGZ1bmN0aW9uLgorCiAyMDEyLTEwLTE3ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEJ1bXAgdXAgdGhlIG51
bWJlciBvZiBpdGVyYXRpb25zIG9mIGh0bWw1LWZ1bGwtcmVuZGVyIHRvIDUKZGlmZiAtLWdpdCBh
L1BlcmZvcm1hbmNlVGVzdHMvUGFyc2VyL2h0bWw1LWZ1bGwtcmVuZGVyLmh0bWwgYi9QZXJmb3Jt
YW5jZVRlc3RzL1BhcnNlci9odG1sNS1mdWxsLXJlbmRlci5odG1sCmluZGV4IDAyNmI3ZjUwZGQ4
YjUxMzIzNGJjYjU2OGFkNTYwM2EzYjhhYjZhZjcuLjViN2NjYWQ3ZTY2ZDE2NWVmYzk0NjYyNjE0
MWE5ZmZiMjVhNzViM2MgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvUGFyc2VyL2h0bWw1
LWZ1bGwtcmVuZGVyLmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9QYXJzZXIvaHRtbDUtZnVs
bC1yZW5kZXIuaHRtbApAQCAtMiw1NCArMiwxMSBAQAogPGJvZHk+CiA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotdmFyIHNwZWMgPSBQZXJm
VGVzdFJ1bm5lci5sb2FkRmlsZSgicmVzb3VyY2VzL2h0bWw1Lmh0bWwiKTsKLQotdmFyIGNodW5r
cyA9IFtdOwotLy8gVGhlIHNtYWxsZXIgdGhlIGNodW5rcyB0aGUgbW9yZSBzdHlsZSByZXNvbHZl
cyB3ZSBkby4KLS8vIFNtYWxsZXIgY2h1bmsgc2l6ZXMgd2lsbCBzaG93IG1vcmUgc2FtcGxlcyBp
biBzdHlsZSByZXNvbHV0aW9uLgotLy8gTGFyZ2VyIGNodW5rIHNpemVzIHdpbGwgc2hvdyBtb3Jl
IHNhbXBsZXMgaW4gbGluZSBsYXlvdXQuCi0vLyBTbWFsbGVyIGNodW5rIHNpemVzIHJ1biBzbG93
ZXIgb3ZlcmFsbCwgYXMgdGhlIHBlci1jaHVuayBvdmVyaGVhZCBpcyBoaWdoLgotLy8gVGVzdGlu
ZyBvbiBteSBtYWNoaW5lIGhhcyBzaG93biB0aGF0IHdlIG5lZWQgMTAtMTUgY2h1bmtzIGJlZm9y
ZSBzdHlsZSByZXNvbHV0aW9uIGlzIGFsd2F5cyB0aGUgdG9wIHNhbXBsZS4KLXZhciBjaHVua1Np
emUgPSA1MDAwMDA7IC8vIDYuMDltYiAvIDUwMGsgPSBhcHByb3ggMTMgY2h1bmtzICh0aHVzIDEz
IGZvcmNlZCBsYXlvdXRzL3N0eWxlIHJlc29sdmVzKS4KLXZhciBjaHVua0NvdW50ID0gTWF0aC5j
ZWlsKHNwZWMubGVuZ3RoIC8gY2h1bmtTaXplKTsKLWZvciAodmFyIGNodW5rSW5kZXggPSAwOyBj
aHVua0luZGV4IDwgY2h1bmtDb3VudDsgY2h1bmtJbmRleCsrKSB7Ci0gICAgdmFyIGNodW5rID0g
c3BlYy5zdWJzdHIoY2h1bmtJbmRleCAqIGNodW5rU2l6ZSwgY2h1bmtTaXplKTsKLSAgICBjaHVu
a3MucHVzaChjaHVuayk7Ci19Ci0KLVBlcmZUZXN0UnVubmVyLmxvZ0luZm8oIlRlc3RpbmcgIiAr
IHNwZWMubGVuZ3RoICsgIiBieXRlIGRvY3VtZW50IGluICIgKyBjaHVua0NvdW50ICsgIiAiICsg
Y2h1bmtTaXplICsgIiBieXRlIGNodW5rcy4iKTsKLQotZnVuY3Rpb24gbG9hZENodW5rZWRTcGVj
SW50b0lmcmFtZShpZnJhbWUpIHsKLSAgICAvLyBOb3RlOiBXZSd2ZSBpbmxpbmVkIHRoZSBzdHls
ZXNoZWV0cyBpbiBodG1sNS5odG1sLiAgQmVmb3JlIHdlIGRpZCB0aGF0LCBpdCBzZWVtZWQgdG8g
YmUKLSAgICAvLyByYW5kb20gYXMgdG8gd2hldGhlciBzdHlsZSByZXNvbHV0aW9uIHdvdWxkIHNo
b3cgdXAgYXQgYWxsIGluIHRoZSBzYW1wbGVzLgotICAgIC8vIFRhbGtpbmcgd2l0aCBIeWF0dCBh
bmQgamFtZXNyIHdlIGJlbGlldmUgdGhpcyBtYXkgYmUgdGhlIGlnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cwotICAgIC8vIGxvZ2ljIHdoaWNoIGlzIHRyaWdnZXJlZCBvZmYgb2YgYSB0aW1lciB3aGlj
aCBpcyBmaXJlZCBhZnRlciB0aGUgbG9hZCBjb21wbGV0ZXMuCi0gICAgLy8gQnkgaW5saW5pbmcg
dGhlIHN0eWxlc2hlZXRzIHdlJ3JlIGF2b2lkaW5nIHRoaXMgcmFjZSBjb25kaXRpb24uCi0gICAg
aWZyYW1lLnNhbmRib3ggPSAnJzsgIC8vIFByZXZlbnQgZXh0ZXJuYWwgbG9hZHMgd2hpY2ggY291
bGQgY2F1c2Ugd3JpdGUoKSB0byByZXR1cm4gYmVmb3JlIGNvbXBsZXRpbmcgdGhlIHBhcnNlLgot
ICAgIGlmcmFtZS5zdHlsZS53aWR0aCA9ICI2MDBweCI7IC8vIEhhdmUgYSByZWFzb25hYmxlIHNp
emUgc28gd2UncmUgbm90IGxpbmUtYnJlYWtpbmcgb24gZXZlcnkgY2hhcmFjdGVyLgotICAgIGlm
cmFtZS5zdHlsZS5oZWlnaHQgPSAiODAwcHgiOwotICAgIGlmcmFtZS5jb250ZW50RG9jdW1lbnQu
b3BlbigpOwotCi0gICAgZm9yICh2YXIgY2h1bmtJbmRleCA9IDA7IGNodW5rSW5kZXggPCBjaHVu
a3MubGVuZ3RoOyBjaHVua0luZGV4KyspIHsKLSAgICAgICAgaWZyYW1lLmNvbnRlbnREb2N1bWVu
dC53cml0ZShjaHVua3NbY2h1bmtJbmRleF0pOwotICAgICAgICAvLyBOb3RlIHRoYXQgd2Ugd29u
J3QgY2F1c2UgYSBzdHlsZSByZXNvbHZlIHVudGlsIHdlJ3ZlIGVuY291bnRlcmVkIHRoZSA8Ym9k
eT4gZWxlbWVudC4KLSAgICAgICAgLy8gVGh1cyB0aGUgbnVtYmVyIG9mIGNodW5rcyBjb3VudGVk
IGFib3ZlIGlzIG5vdCBleGFjdGx5IGVxdWFsIHRvIHRoZSBudW1iZXIgb2Ygc3R5bGUgcmVzb2x2
ZXMuCi0gICAgICAgIGlmIChpZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkpCi0gICAgICAgICAg
ICBpZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0OyAvLyBGb3JjZSBhIGZ1
bGwgbGF5b3V0L3N0eWxlLXJlc29sdmUuCi0gICAgfQotCi0gICAgaWZyYW1lLmNvbnRlbnREb2N1
bWVudC5jbG9zZSgpOwotfQotCiAvLyBSdW5uaW5nIGZyb20gdGhlIG9ubG9hZCBjYWxsYmFjayBq
dXN0IG1ha2VzIHRoZSBVSSBuaWNlciBhcyBpdCBzaG93cyB0aGUgbG9ncyBiZWZvcmUgc3RhcnRp
bmcgdGhlIHRlc3QuCiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgLy8gRGVwZW5k
aW5nIG9uIHRoZSBjaG9zZW4gY2h1bmsgc2l6ZSwgaXRlcmF0aW9ucyBjYW4gdGFrZSBvdmVyIDYw
cyB0byBydW4gb24gYSBmYXN0IG1hY2hpbmUsIHNvIHdlIG9ubHkgcnVuIDIuCi0gICAgUGVyZlRl
c3RSdW5uZXIubWVhc3VyZVRpbWUoe3J1bjogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBpZnJh
bWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwotICAgICAgICBsb2FkQ2h1bmtlZFNwZWNJbnRvSWZy
YW1lKGlmcmFtZSk7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTsK
LSAgICB9LCBydW5Db3VudDogNX0pOworICAgIFBlcmZUZXN0UnVubmVyLm1lYXN1cmVQYWdlTG9h
ZFRpbWUoe3BhdGg6ICJyZXNvdXJjZXMvaHRtbDUuaHRtbCIsCisgICAgY2h1bmtTaXplOiA1MDAw
MDAsIC8vIDYuMDltYiAvIDUwMGsgPSBhcHByb3ggMTMgY2h1bmtzICh0aHVzIDEzIGZvcmNlZCBs
YXlvdXRzL3N0eWxlIHJlc29sdmVzKS4KKyAgICBydW5Db3VudDogNSB9KTsgLy8gRGVwZW5kaW5n
IG9uIHRoZSBjaG9zZW4gY2h1bmsgc2l6ZSwgaXRlcmF0aW9ucyBjYW4gdGFrZSBvdmVyIDYwcyB0
byBydW4gb24gYSBmYXN0IG1hY2hpbmUsIHNvIHdlIG9ubHkgcnVuIDUuCiB9CiAKIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzIGIvUGVy
Zm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCmluZGV4IDE1YWM0ODg2MDgwMjBiOTNl
ZDNhOGVlNTgwZTQ0MGRiMmRjNjA5MWEuLjZkZjNiOWY3YmFhZjQ2ZmQzODRkNWMzMjgzMDc0ODZj
NzI0YWIxZDEgMTAwNzU1Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5q
cworKysgYi9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5uZXIuanMKQEAgLTMwMyw1ICsz
MDMsNTAgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHJldHVybiBQZXJmVGVz
dFJ1bm5lci5ub3coKSAtIHN0YXJ0VGltZTsKICAgICB9CiAKKworICAgIFBlcmZUZXN0UnVubmVy
Lm1lYXN1cmVQYWdlTG9hZFRpbWUgPSBmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgIHRlc3QucnVu
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgY2h1bmtzID0gW107CisgICAgICAgICAg
ICAvLyBUaGUgc21hbGxlciB0aGUgY2h1bmtzIHRoZSBtb3JlIHN0eWxlIHJlc29sdmVzIHdlIGRv
LgorICAgICAgICAgICAgLy8gU21hbGxlciBjaHVuayBzaXplcyB3aWxsIHNob3cgbW9yZSBzYW1w
bGVzIGluIHN0eWxlIHJlc29sdXRpb24uCisgICAgICAgICAgICAvLyBMYXJnZXIgY2h1bmsgc2l6
ZXMgd2lsbCBzaG93IG1vcmUgc2FtcGxlcyBpbiBsaW5lIGxheW91dC4KKyAgICAgICAgICAgIC8v
IFNtYWxsZXIgY2h1bmsgc2l6ZXMgcnVuIHNsb3dlciBvdmVyYWxsLCBhcyB0aGUgcGVyLWNodW5r
IG92ZXJoZWFkIGlzIGhpZ2guCisgICAgICAgICAgICB2YXIgY2h1bmtDb3VudCA9IE1hdGguY2Vp
bCh0aGlzLmZpbGUubGVuZ3RoIC8gdGhpcy5jaHVua1NpemUpOworICAgICAgICAgICAgZm9yICh2
YXIgY2h1bmtJbmRleCA9IDA7IGNodW5rSW5kZXggPCBjaHVua0NvdW50OyBjaHVua0luZGV4Kysp
IHsKKyAgICAgICAgICAgICAgICB2YXIgY2h1bmsgPSB0aGlzLmZpbGUuc3Vic3RyKGNodW5rSW5k
ZXggKiB0aGlzLmNodW5rU2l6ZSwgdGhpcy5jaHVua1NpemUpOworICAgICAgICAgICAgICAgIGNo
dW5rcy5wdXNoKGNodW5rKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgUGVyZlRlc3RS
dW5uZXIubG9nSW5mbygiVGVzdGluZyAiICsgdGhpcy5maWxlLmxlbmd0aCArICIgYnl0ZSBkb2N1
bWVudCBpbiAiICsgY2h1bmtDb3VudCArICIgIiArIHRoaXMuY2h1bmtTaXplICsgIiBieXRlIGNo
dW5rcy4iKTsKKworICAgICAgICAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlmcmFtZSIpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJh
bWUpOworCisgICAgICAgICAgICBpZnJhbWUuc2FuZGJveCA9ICcnOyAgLy8gUHJldmVudCBleHRl
cm5hbCBsb2FkcyB3aGljaCBjb3VsZCBjYXVzZSB3cml0ZSgpIHRvIHJldHVybiBiZWZvcmUgY29t
cGxldGluZyB0aGUgcGFyc2UuCisgICAgICAgICAgICBpZnJhbWUuc3R5bGUud2lkdGggPSAiNjAw
cHgiOyAvLyBIYXZlIGEgcmVhc29uYWJsZSBzaXplIHNvIHdlJ3JlIG5vdCBsaW5lLWJyZWFraW5n
IG9uIGV2ZXJ5IGNoYXJhY3Rlci4KKyAgICAgICAgICAgIGlmcmFtZS5zdHlsZS5oZWlnaHQgPSAi
ODAwcHgiOworICAgICAgICAgICAgaWZyYW1lLmNvbnRlbnREb2N1bWVudC5vcGVuKCk7CisKKyAg
ICAgICAgICAgIGZvciAodmFyIGNodW5rSW5kZXggPSAwOyBjaHVua0luZGV4IDwgY2h1bmtzLmxl
bmd0aDsgY2h1bmtJbmRleCsrKSB7CisgICAgICAgICAgICAgICAgaWZyYW1lLmNvbnRlbnREb2N1
bWVudC53cml0ZShjaHVua3NbY2h1bmtJbmRleF0pOworICAgICAgICAgICAgICAgIC8vIE5vdGUg
dGhhdCB3ZSB3b24ndCBjYXVzZSBhIHN0eWxlIHJlc29sdmUgdW50aWwgd2UndmUgZW5jb3VudGVy
ZWQgdGhlIDxib2R5PiBlbGVtZW50LgorICAgICAgICAgICAgICAgIC8vIFRodXMgdGhlIG51bWJl
ciBvZiBjaHVua3MgY291bnRlZCBhYm92ZSBpcyBub3QgZXhhY3RseSBlcXVhbCB0byB0aGUgbnVt
YmVyIG9mIHN0eWxlIHJlc29sdmVzLgorICAgICAgICAgICAgICAgIGlmIChpZnJhbWUuY29udGVu
dERvY3VtZW50LmJvZHkpCisgICAgICAgICAgICAgICAgICAgIGlmcmFtZS5jb250ZW50RG9jdW1l
bnQuYm9keS5jbGllbnRIZWlnaHQ7IC8vIEZvcmNlIGEgZnVsbCBsYXlvdXQvc3R5bGUtcmVzb2x2
ZS4KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChpZnJhbWUuZG9jdW1lbnRFbGVtZW50LmxvY2Fs
TmFtZSA9PSAnaHRtbCcpCisgICAgICAgICAgICAgICAgICAgIGlmcmFtZS5jb250ZW50RG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldFdpZHRoOyAvLyBGb3JjZSB0aGUgcGFpbnRpbmcuCisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmcmFtZS5jb250ZW50RG9jdW1lbnQuY2xvc2Uo
KTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTsKKyAgICAg
ICAgfTsKKworICAgICAgICB0aGlzLmZpbGUgPSBQZXJmVGVzdFJ1bm5lci5sb2FkRmlsZSh0ZXN0
LnBhdGgpOworICAgICAgICBpZiAoIXRlc3QuY2h1bmtTaXplKQorICAgICAgICAgICAgdGhpcy5j
aHVua1NpemUgPSA1MDAwMDsKKworICAgICAgICBQZXJmVGVzdFJ1bm5lci5tZWFzdXJlVGltZSh0
ZXN0KTsKKyAgICB9CisKICAgICB3aW5kb3cuUGVyZlRlc3RSdW5uZXIgPSBQZXJmVGVzdFJ1bm5l
cjsKIH0pKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>