<?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>51272</bug_id>
          
          <creation_ts>2010-12-17 12:56:05 -0800</creation_ts>
          <short_desc>commit-queue will report constant failures as flaky if other tests flake</short_desc>
          <delta_ts>2010-12-21 04:56:09 -0800</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>PC</rep_platform>
          <op_sys>OS X 10.5</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>50263</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>caseq</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koz</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>323947</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-17 12:56:05 -0800</bug_when>
    <thetext>commit-queue will report constant failures as flaky if other tests flake

See https://bugs.webkit.org/show_bug.cgi?id=51236#c9

        first_failing_tests = self._failing_tests_from_last_run()
        if self._test():
            self._report_flaky_tests(first_failing_tests)
            return True

        second_failing_tests = self._failing_tests_from_last_run()
        if first_failing_tests != second_failing_tests:
            self._report_flaky_tests(first_failing_tests + second_failing_tests)
            return False

Notice how if second_failing_tests is different from first_failing_tests, all of them get reported.  What should happen is only the differences between first and second should be reported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323949</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-17 12:56:58 -0800</bug_when>
    <thetext>Fixing this may also fix bug 50263</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323952</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-17 13:02:28 -0800</bug_when>
    <thetext>We can look at the test ordering and only report a flaky if we get further the second time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323957</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-17 13:11:30 -0800</bug_when>
    <thetext>Oh, I wasn&apos;t even considering that.  I figured we&apos;d just intersect the failure lists.  But you&apos;re right, it&apos;s possible we&apos;d still report a &quot;late&quot; constant failure as flaky if an earlier test flaked the second time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324098</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-17 23:49:03 -0800</bug_when>
    <thetext>How would you suggest we look at the test ordering?  I&apos;m not sure we have a class to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324099</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-17 23:49:46 -0800</bug_when>
    <thetext>Eh, we can write an approximate sort function.  I&apos;ll take a whack at this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324744</commentid>
    <comment_count>6</comment_count>
      <attachid>77078</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-20 20:14:10 -0800</bug_when>
    <thetext>Created attachment 77078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324751</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-20 20:35:00 -0800</bug_when>
    <thetext>*** Bug 50263 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324761</commentid>
    <comment_count>8</comment_count>
      <attachid>77078</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-20 21:00:28 -0800</bug_when>
    <thetext>Comment on attachment 77078
Patch

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

The test ordering code is too fragile.  As the project evolves, its going to be subtly wrong.

&gt; Tools/Scripts/webkitpy/common/net/layouttestresults.py:99
&gt; +    # This is intended to match run-webkit-tests behavior.
&gt; +    @classmethod
&gt; +    def test_order_compare(cls, test1, test2):

Really?  I don&apos;t think this function is right.  What about WebSocket tests?

&gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask.py:181
&gt; +        compare_result = LayoutTestResults.test_order_compare(first_failures[-1], second_failures[-1])
&gt; +        if compare_result &lt; 0:  # First run was shorter
&gt; +            return different_failures.difference(second_failures)
&gt; +        elif compare_result &gt; 0:
&gt; +            return different_failures.difference(first_failures)

I don&apos;t know about this design.  You didn&apos;t like the idea of only reporting a flak if the second run was all-success?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324774</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-20 21:26:30 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 77078 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=77078&amp;action=review
&gt; 
&gt; The test ordering code is too fragile.  As the project evolves, its going to be subtly wrong.

I agree, that&apos;s a risk.  However, if we shared this code with NRWT it would be fine. :)

&gt; &gt; Tools/Scripts/webkitpy/common/net/layouttestresults.py:99
&gt; &gt; +    # This is intended to match run-webkit-tests behavior.
&gt; &gt; +    @classmethod
&gt; &gt; +    def test_order_compare(cls, test1, test2):
&gt; 
&gt; Really?  I don&apos;t think this function is right.  What about WebSocket tests?

Again, should be shared if we&apos;re going to go this way.

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask.py:181
&gt; &gt; +        compare_result = LayoutTestResults.test_order_compare(first_failures[-1], second_failures[-1])
&gt; &gt; +        if compare_result &lt; 0:  # First run was shorter
&gt; &gt; +            return different_failures.difference(second_failures)
&gt; &gt; +        elif compare_result &gt; 0:
&gt; &gt; +            return different_failures.difference(first_failures)
&gt; 
&gt; I don&apos;t know about this design.  You didn&apos;t like the idea of only reporting a flak if the second run was all-success?

Oh, that&apos;s fine.  Certainly simpler.  It just produces this state where we retry w/o reporting any flaky tests which is OK just less than idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324775</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-20 21:30:38 -0800</bug_when>
    <thetext>&gt; Oh, that&apos;s fine.  Certainly simpler.  It just produces this state where we retry w/o reporting any flaky tests which is OK just less than idea.

It generates this strange response curve where if things are really really flaky, we never file bugs, but if things are just a bit flaky, then we&apos;ll be good at detecting them and filing bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324776</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-20 21:34:39 -0800</bug_when>
    <thetext>Basically, I ended up writing the test sorting function first, and then fleshed out the other details.  The other details ended up rather complicated. :)

This is certainly not a simple solution.  Then again, flaky tests are not simple to deal with. :)  But I think I&apos;ll write a new (much much simpler) patch which just removes the attempt flaky tests when we have a double-flake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324786</commentid>
    <comment_count>12</comment_count>
      <attachid>77084</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-20 22:19:07 -0800</bug_when>
    <thetext>Created attachment 77084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324788</commentid>
    <comment_count>13</comment_count>
      <attachid>77084</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-20 22:20:32 -0800</bug_when>
    <thetext>Comment on attachment 77084
Patch

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324883</commentid>
    <comment_count>14</comment_count>
      <attachid>77084</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-21 00:06:31 -0800</bug_when>
    <thetext>Comment on attachment 77084
Patch

Rejecting attachment 77084 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;build-and-test&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--test&apos;, &apos;--non-interactive&apos;]&quot; exit_code: 2
Last 500 characters of output:
t/webkit-commit-queue/Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py&quot;, line 114, in test_update_failure
    self._run_through_task(commit_queue, expected_stderr)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py&quot;, line 76, in _run_through_task
    self.assertEqual(success, not expect_retry)
AssertionError: False != True

----------------------------------------------------------------------
Ran 755 tests in 19.168s

FAILED (failures=2)

Full output: http://queues.webkit.org/results/7304078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324887</commentid>
    <comment_count>15</comment_count>
      <attachid>77090</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-21 00:21:24 -0800</bug_when>
    <thetext>Created attachment 77090
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324921</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-21 01:38:20 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 77090:

fast/preloader/script.html bug 50879 (author: abarth@webkit.org)
animations/play-state-suspend.html bug 50959 (author: cmarrin@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324945</commentid>
    <comment_count>17</comment_count>
      <attachid>77090</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-21 04:56:00 -0800</bug_when>
    <thetext>Comment on attachment 77090
Patch for landing

Clearing flags on attachment: 77090

Committed r74408: &lt;http://trac.webkit.org/changeset/74408&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324946</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-21 04:56:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77078</attachid>
            <date>2010-12-20 20:14:10 -0800</date>
            <delta_ts>2010-12-20 22:19:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51272-20101220221408.patch</filename>
            <type>text/plain</type>
            <size>7904</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiNjRi
YjA1NDU3NjYyYTJmMjM3Y2NhZGVjNWIxZDhiNWVlZWQ3N2ZiLi5iZTdjNDhlMzgxMmMyNmE5Y2Nh
ZGYxM2YyN2NjMGY5N2JjNTkzMDU0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTItMjAgIEVyaWMgU2VpZGVs
ICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGNvbW1pdC1xdWV1ZSB3aWxsIHJlcG9ydCBjb25zdGFudCBmYWlsdXJlcyBh
cyBmbGFreSBpZiBvdGhlciB0ZXN0cyBmbGFrZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEyNzIKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2sucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHk6CisK
IDIwMTAtMTItMjAgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLiBBZGRpbmcgbXlzZWxmIHRvIHRoZSBsaXN0IG9mIGNvbW1pdHRlcnMuCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJl
c3VsdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJl
c3VsdHMucHkKaW5kZXggMTVlOTVjZWFjMjVlNDI2YWY2NTJmODY5ZmMwY2E3OTlmMDY4ZTcxNC4u
YWZhNjhkYWQ3YjFlYzU1MDZiMmIwZDc0YjE1MjQ2YTFjMzVmMGVlMSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weQpA
QCAtOTAsMyArOTAsMTggQEAgY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHMob2JqZWN0KToKIAogICAg
IGRlZiBmYWlsaW5nX3Rlc3RzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHRzX21h
dGNoaW5nX2tleXMoW3NlbGYuZmFpbF9rZXksIHNlbGYuY3Jhc2hfa2V5LCBzZWxmLnRpbWVvdXRf
a2V5XSkKKworICAgIGRlZiBzb3J0X3Rlc3RzKHNlbGYsIHRlc3RzKToKKyAgICAgICAgcmV0dXJu
IHNvcnRlZCh0ZXN0cywgc2VsZi50ZXN0X29yZGVyX2NvbXBhcmUpCisKKyAgICAjIFRoaXMgaXMg
aW50ZW5kZWQgdG8gbWF0Y2ggcnVuLXdlYmtpdC10ZXN0cyBiZWhhdmlvci4KKyAgICBAY2xhc3Nt
ZXRob2QKKyAgICBkZWYgdGVzdF9vcmRlcl9jb21wYXJlKGNscywgdGVzdDEsIHRlc3QyKToKKyAg
ICAgICAgdGVzdDFfaXNfaHR0cCA9IHRlc3QxLnN0YXJ0c3dpdGgoJ2h0dHAvJykKKyAgICAgICAg
dGVzdDJfaXNfaHR0cCA9IHRlc3QyLnN0YXJ0c3dpdGgoJ2h0dHAvJykKKyAgICAgICAgIyBJZiBv
bmUgaXMgYW4gaHR0cCB0ZXN0IGFuZCB0aGUgb3RoZXIgaXNuJ3QKKyAgICAgICAgIyB0aGVuIHRo
ZSBodHRwIHRlc3Qgc2hvdWxkIGFsd2F5cyBiZSBsYXN0LgorICAgICAgICBpZiB0ZXN0MV9pc19o
dHRwICE9IHRlc3QyX2lzX2h0dHA6CisgICAgICAgICAgICByZXR1cm4gY21wKHRlc3QxX2lzX2h0
dHAsIHRlc3QyX2lzX2h0dHApCisgICAgICAgICMgT3RoZXJ3aXNlIHRlc3RzIGFyZSBydW4gaW4g
YWxwaGFiZXRpY2FsIG9yZGVyLgorICAgICAgICByZXR1cm4gY21wKHRlc3QxLCB0ZXN0MikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVz
dWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlv
dXR0ZXN0cmVzdWx0c191bml0dGVzdC5weQppbmRleCA4NDkwZWFlM2ZiNTJiNzgzN2U2NDBmODM5
ZjE2ZmMyYjZjODhlNzQ1Li43MjQ3MjM0MDhhMjQ2OTA1OTI2NTA0YmRmYjE1MDlhMDkwZDk2ZjBj
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVz
dHJlc3VsdHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2xheW91dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC03NSwzICs3NSwxMiBAQCBjbGFz
cyBMYXlvdXRUZXN0UmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKExheW91dFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoIiIpLCBO
b25lKQogICAgICAgICByZXN1bHRzID0gTGF5b3V0VGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0
cmluZyhzZWxmLl9leGFtcGxlX3Jlc3VsdHNfaHRtbCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChsZW4ocmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpLCAwKQorCisgICAgZGVmIF9hc3NlcnRfdGVz
dF9zb3J0KHNlbGYsIHRlc3RzLCBleHBlY3RlZF9vcmRlcik6CisgICAgICAgIHJlc3VsdHMgPSBM
YXlvdXRUZXN0UmVzdWx0cyhOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdHMu
c29ydF90ZXN0cyh0ZXN0cyksIGV4cGVjdGVkX29yZGVyKQorCisgICAgZGVmIHRlc3Rfc29ydF90
ZXN0cyhzZWxmKToKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3Rlc3Rfc29ydChbJ2ZvbycsICdiYXIn
XSwgWydiYXInLCAnZm9vJ10pCisgICAgICAgIHNlbGYuX2Fzc2VydF90ZXN0X3NvcnQoWyd6YXon
LCAnaHR0cC9iYXInXSwgWyd6YXonLCAnaHR0cC9iYXInXSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0
X3Rlc3Rfc29ydChbJ2h0dHAvZm9vJywgJ3JhcicsICdodHRwL2JhciddLCBbJ3JhcicsICdodHRw
L2JhcicsICdodHRwL2ZvbyddKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9jb21taXRxdWV1ZXRhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2NvbW1pdHF1ZXVldGFzay5weQppbmRleCBlMjE4N2YxNjRkYTMwNThmODEwYWQ2MzQ3ZGNk
NjJjZWRkZDhlNGU0Li4wNmQyYzczYzIwZTJjMGFhNjcyZjUwMzEzMGY0OTMwYjgwMTBhYTJiIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFz
ay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFz
ay5weQpAQCAtMTQwLDYgKzE0MCw4IEBAIGNsYXNzIENvbW1pdFF1ZXVlVGFzayhvYmplY3QpOgog
ICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLAogICAgICAgICAiVW5h
YmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCAodHJlZSBpcyByZWQ/KSIpCiAKKyAgICAj
IFRoaXMgc2hvdWxkIHJldHVybiBUZXN0UmVzdWx0IG9iamVjdHMgd2hpY2ggaW5jbHVkZSB0aGUK
KyAgICAjIHRlc3QgbmFtZSBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlIHR5cGUgYW5kIHRoZSBmdWxs
IHJlc3VsdCBmaWxlIGNvbnRlbnRzLgogICAgIGRlZiBfZmFpbGluZ190ZXN0c19mcm9tX2xhc3Rf
cnVuKHNlbGYpOgogICAgICAgICByZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUubGF5b3V0X3Rlc3Rf
cmVzdWx0cygpCiAgICAgICAgIGlmIG5vdCByZXN1bHRzOgpAQCAtMTYyLDIwICsxNjQsNDYgQEAg
Y2xhc3MgQ29tbWl0UXVldWVUYXNrKG9iamVjdCk6CiAgICAgZGVmIF9yZXBvcnRfZmxha3lfdGVz
dHMoc2VsZiwgZmxha3lfdGVzdHMpOgogICAgICAgICBzZWxmLl9kZWxlZ2F0ZS5yZXBvcnRfZmxh
a3lfdGVzdHMoc2VsZi5fcGF0Y2gsIGZsYWt5X3Rlc3RzKQogCisgICAgZGVmIF9mbGFreV90ZXN0
c19mcm9tX3J1bnMoc2VsZiwgZmlyc3RfZmFpbHVyZXMsIHNlY29uZF9mYWlsdXJlcyk6CisgICAg
ICAgIGlmIG5vdCBmaXJzdF9mYWlsdXJlcyBvciBub3Qgc2Vjb25kX2ZhaWx1cmVzOgorICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgIyBXZSBjdXJyZW50bHkgcnVuIHRlc3RzIHdpdGgg
LS1leGl0LWFmdGVyLU4tZmFpbHVyZXM9MSwgc28gdGhpcyBzb3J0IGlzIHJlZHVuZGFudC4KKyAg
ICAgICAgZmlyc3RfZmFpbHVyZXMuc29ydChMYXlvdXRUZXN0UmVzdWx0cy50ZXN0X29yZGVyX2Nv
bXBhcmUpCisgICAgICAgIHNlY29uZF9mYWlsdXJlcy5zb3J0KExheW91dFRlc3RSZXN1bHRzLnRl
c3Rfb3JkZXJfY29tcGFyZSkKKworICAgICAgICBkaWZmZXJlbnRfZmFpbHVyZXMgPSBzZXQoZmly
c3RfZmFpbHVyZXMpLnN5bW1ldHJpY19kaWZmZXJlbmNlKHNlY29uZF9mYWlsdXJlcykKKworICAg
ICAgICAjIEJlY2F1c2Ugd2UgdXNlIC0tZXhpdC1hZnRlci1OLWZhaWx1cmVzLCBvbmx5IGZhaWx1
cmVzIGluIHRoZSBzaG9ydGVyIHJ1biBjYW4gYmUgdHJ1c3RlZC4KKyAgICAgICAgY29tcGFyZV9y
ZXN1bHQgPSBMYXlvdXRUZXN0UmVzdWx0cy50ZXN0X29yZGVyX2NvbXBhcmUoZmlyc3RfZmFpbHVy
ZXNbLTFdLCBzZWNvbmRfZmFpbHVyZXNbLTFdKQorICAgICAgICBpZiBjb21wYXJlX3Jlc3VsdCA8
IDA6ICAjIEZpcnN0IHJ1biB3YXMgc2hvcnRlcgorICAgICAgICAgICAgcmV0dXJuIGRpZmZlcmVu
dF9mYWlsdXJlcy5kaWZmZXJlbmNlKHNlY29uZF9mYWlsdXJlcykKKyAgICAgICAgZWxpZiBjb21w
YXJlX3Jlc3VsdCA+IDA6CisgICAgICAgICAgICByZXR1cm4gZGlmZmVyZW50X2ZhaWx1cmVzLmRp
ZmZlcmVuY2UoZmlyc3RfZmFpbHVyZXMpCisKKyAgICAgICAgIyBJZiBib3RoIHJ1bnMgc3RvcHBl
ZCBhdCB0aGUgc2FtZSB0ZXN0LCBhbnkgbm9uLXNoYXJlZCBiZXNpZGVzIHRoZSBsYXN0LCBjYW4g
YmUgYXNzdW1lZCBmbGFreS4KKyAgICAgICAgcmV0dXJuIGRpZmZlcmVudF9mYWlsdXJlcworCiAg
ICAgZGVmIF90ZXN0X3BhdGNoKHNlbGYpOgogICAgICAgICBpZiBzZWxmLl9wYXRjaC5pc19yb2xs
b3V0KCk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICBpZiBzZWxmLl90ZXN0KCk6
CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBp
ZGVhbGx5IHNhdmUgb2ZmIHRoZSByZXN1bHRzIGRpcmVjdG9yeSBiZWZvcmUgcnVubmluZworICAg
ICAgICAjIGFnYWluIHNvIHRoYXQgd2UgaGF2ZSB0aGUgLWRpZmZzLnR4dCBmaWxlcywgZXRjLiBm
b3IgZmxha3kgdGVzdCByZXBvcnRpbmcuCisgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUxMzcxCiAgICAgICAgIGZpcnN0X2ZhaWxpbmdfdGVzdHMgPSBz
ZWxmLl9mYWlsaW5nX3Rlc3RzX2Zyb21fbGFzdF9ydW4oKQogICAgICAgICBpZiBzZWxmLl90ZXN0
KCk6CiAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfZmFpbGluZ190
ZXN0cykKICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICAgICAgc2Vjb25kX2ZhaWxpbmdf
dGVzdHMgPSBzZWxmLl9mYWlsaW5nX3Rlc3RzX2Zyb21fbGFzdF9ydW4oKQorICAgICAgICAjIElm
IHRoZSByZXN1bHRzIGFyZSBub3QgaWRlbnRpY2FsLCB3ZSBtYXkgYmUgZGVhaWxpbmcgd2l0aCBm
bGFreSB0ZXN0cyBhbmQgbXVzdCByZXRyeSB0aGUgcGF0Y2guCiAgICAgICAgIGlmIGZpcnN0X2Zh
aWxpbmdfdGVzdHMgIT0gc2Vjb25kX2ZhaWxpbmdfdGVzdHM6Ci0gICAgICAgICAgICBzZWxmLl9y
ZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfZmFpbGluZ190ZXN0cyArIHNlY29uZF9mYWlsaW5nX3Rl
c3RzKQorICAgICAgICAgICAgIyBFeGFtaW5lIHRoZSByZXN1bHRzIHRvIHNlZSBpZiB3ZSBoYXZl
IGFueSB0ZXN0cyB3ZSBjYW4gY29uZmlkZW50bHkgcmVwb3J0IGFzIGZsYWt5LgorICAgICAgICAg
ICAgZmxha3lfdGVzdHMgPSBzZWxmLl9mbGFreV90ZXN0c19mcm9tX3J1bnMoc2VsZiwgZmlyc3Rf
ZmFpbGluZ190ZXN0cywgc2Vjb25kX2ZhaWxpbmdfdGVzdHMpCisgICAgICAgICAgICBpZiBmbGFr
eV90ZXN0czoKKyAgICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmxha3lf
dGVzdHMpCiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgICAgICBpZiBzZWxmLl9idWls
ZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CmluZGV4IDkx
NDI0NTE1NzVlNGQ1NTZlOTE1MTk3ZWE5NWJmNjY5NWQ3M2I2ZDcuLjM3NDQ0OWJkMjUyNjVkYTdi
NDI5MzU1MzE5ZWU1ZWQ3MTRhYzk2NjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CkBAIC0yMzQs
MyArMjM0LDIxIEBAIHJ1bl93ZWJraXRfcGF0Y2g6IFsnbGFuZC1hdHRhY2htZW50JywgJy0tZm9y
Y2UtY2xlYW4nLCAnLS1pZ25vcmUtYnVpbGRlcnMnLCAnLS1uCiBjb21tYW5kX2ZhaWxlZDogZmFp
bHVyZV9tZXNzYWdlPSdVbmFibGUgdG8gbGFuZCBwYXRjaCcgc2NyaXB0X2Vycm9yPSdNT0NLIGxh
bmQgZmFpbHVyZScgcGF0Y2g9JzE5NycKICIiIgogICAgICAgICBzZWxmLl9ydW5fdGhyb3VnaF90
YXNrKGNvbW1pdF9xdWV1ZSwgZXhwZWN0ZWRfc3RkZXJyLCBTY3JpcHRFcnJvcikKKworICAgIGRl
ZiBfYXNzZXJ0X2ZsYWtlc19mcm9tX3J1bnMoc2VsZiwgcnVuMSwgcnVuMiwgZXhwZWN0ZWRfZmxh
a2VzKToKKyAgICAgICAgdGFzayA9IENvbW1pdFF1ZXVlVGFzayhOb25lLCBOb25lKQorICAgICAg
ICBpZiBleHBlY3RlZF9mbGFrZXMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBleHBlY3RlZF9m
bGFrZXMgPSBzZXQoZXhwZWN0ZWRfZmxha2VzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0
YXNrLl9mbGFreV90ZXN0c19mcm9tX3J1bnMocnVuMSwgcnVuMiksIGV4cGVjdGVkX2ZsYWtlcykK
KworICAgIGRlZiB0ZXN0X2ZsYWt5X3Rlc3RzX2Zyb21fcnVucyhzZWxmKToKKyAgICAgICAgc2Vs
Zi5fYXNzZXJ0X2ZsYWtlc19mcm9tX3J1bnMoW10sIFtdLCBOb25lKQorICAgICAgICBzZWxmLl9h
c3NlcnRfZmxha2VzX2Zyb21fcnVucyhbJ2ZvbyddLCBbXSwgTm9uZSkKKyAgICAgICAgc2VsZi5f
YXNzZXJ0X2ZsYWtlc19mcm9tX3J1bnMoWydmb28nXSwgWydiYXInXSwgWydiYXInXSkKKyAgICAg
ICAgc2VsZi5fYXNzZXJ0X2ZsYWtlc19mcm9tX3J1bnMoWydmb28nLCAnYmFyJ10sIFsnYmFyJ10s
IFtdKQorICAgICAgICBzZWxmLl9hc3NlcnRfZmxha2VzX2Zyb21fcnVucyhbJ2ZvbycsICdiYXIn
XSwgWydiYXInLCAnYWJjJ10sIFsnYWJjJ10pCisgICAgICAgIHNlbGYuX2Fzc2VydF9mbGFrZXNf
ZnJvbV9ydW5zKFsnaHR0cC9iYXInXSwgWydmb28nXSwgWydmb28nXSkKKyAgICAgICAgc2VsZi5f
YXNzZXJ0X2ZsYWtlc19mcm9tX3J1bnMoWydmb28nLCAnYmFyJ10sIFsnYmF6JywgJ2NhciddLCBb
J2JheicsICdjYXInXSkKKworICAgICAgICAjIFdlIHRlY2huaWNhbGx5IGNvdWxkIHJldHVybiBb
J2FiYycsICdhYWEnXSwgYnV0IF9mbGFreV90ZXN0c19mcm9tX3J1bnMgaXMgbm90IHRoYXQgc21h
cnQgeWV0LgorICAgICAgICBzZWxmLl9hc3NlcnRfZmxha2VzX2Zyb21fcnVucyhbJ2ZvbycsICdi
YXInLCAnYWFhJ10sIFsnYmFyJywgJ2FiYyddLCBbJ2FiYyddKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77084</attachid>
            <date>2010-12-20 22:19:07 -0800</date>
            <delta_ts>2010-12-21 00:21:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51272-20101221001905.patch</filename>
            <type>text/plain</type>
            <size>8645</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiNjRi
YjA1NDU3NjYyYTJmMjM3Y2NhZGVjNWIxZDhiNWVlZWQ3N2ZiLi41MmZkOGFiNDcwOWFjODg0ZGQ2
ZmUxYWRjZTJmMDcyMDM3M2Q0OWVmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMTItMjAgIEVyaWMgU2VpZGVs
ICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGNvbW1pdC1xdWV1ZSB3aWxsIHJlcG9ydCBjb25zdGFudCBmYWlsdXJlcyBh
cyBmbGFreSBpZiBvdGhlciB0ZXN0cyBmbGFrZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEyNzIKKworICAgICAgICBUaGlzIHBhdGNoIGp1c3QgcmVt
b3ZlcyBmdW5jdGlvbmFsaXR5IGFuZCBhZGRzIHRlc3RpbmcuCisgICAgICAgIFByZXZpb3VzbHkg
d2UgYXR0ZW1wdGVkIHRvIHJlcG9ydCBmbGFreSB0ZXN0cyB3aGVuIHdlIGhhZAorICAgICAgICB0
d28gZGlmZmVyZW50IHRlc3RzIGZhaWwgaW4gYSByb3cuICBIb3dldmVyLCBzaW5jZSB3ZSBzdG9w
CisgICAgICAgIHJ1bm5pbmcgdGhlIHRlc3RzIGF0IHRoZSBmaXJzdCBmYWlsdXJlLCBvdXIgY29k
ZSB3YXMgd3JvbmcgaW4KKyAgICAgICAgdHJ5aW5nIHRvIGRldGVybWluZSBmbGFraW5lc3MgZnJv
bSB0aGUgaW5jb21wbGV0ZSBydW5zLgorCisgICAgICAgIE9yaWdpbmFsbHkgSSBwb3N0ZWQgYW4g
YWx0ZXJuYXRlIHBhdGNoOgorICAgICAgICBodHRwczovL2J1Zy01MTI3Mi1hdHRhY2htZW50cy53
ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTc3MDc4CisgICAgICAgIHdoaWNoIGZpeGVkIG91
ciBmbGFreSBsb2dpYyBpbiB0aGlzIGNhc2UsIGhvd2V2ZXIgaXQgd2FzIGRlY2lkZWQKKyAgICAg
ICAgdGhhdCB0aGF0IHBhdGNoIHdvdWxkIGJlIHRvbyBkaWZmaWN1bHQgdG8gbWFpbnRhaW4sIHNv
IG5vdworICAgICAgICBJJ20ganVzdCByZW1vdmluZyB0aGUgYnJva2VuIGxvZ2ljLgorCisgICAg
ICAgIFRoaXMgd2lsbCBkcmFtYXRpY2FsbHkgY3V0LWRvd24gb24gb3VyIGZsYWt5LXRlc3QgZmFs
c2UgcG9zaXRpdmVzCisgICAgICAgIGF0IHRoZSAoc21hbGwpIGNvc3Qgb2YgdGhlIHF1ZXVlcyBi
ZWluZyB1bmFibGUgdG8gcmVwb3J0CisgICAgICAgIGFueSBmbGFraW5lc3MgaWYgdGhlIHRyZWUg
aXMgdmVyeSBmbGFreS4gIChXaXRoIGF0IGxlYXN0IG9uZSB0ZXN0CisgICAgICAgIGZsYWtpbmcg
b24gZXZlcnkgcnVuLCB3ZSdsbCBuZXZlciByZXBvcnQgZmFpbHVyZXMgYW55bW9yZS4pICBJIHRo
aW5rCisgICAgICAgIHRoaXMgaXMgYSB0cmFkZW9mZiB3b3J0aCBtYWtpbmcuCisKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFzay5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weToK
KwogMjAxMC0xMi0yMCAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIEFkZGluZyBteXNlbGYgdG8gdGhlIGxpc3Qgb2YgY29tbWl0dGVycy4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0
YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2su
cHkKaW5kZXggZTIxODdmMTY0ZGEzMDU4ZjgxMGFkNjM0N2RjZDYyY2VkZGQ4ZTRlNC4uYzZhOTlm
MWJmOTY5MDVlMjgyNWVhODM4NTBlZTA4ZWMwN2EzMTZjMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2sucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2sucHkKQEAgLTE3NSw3ICsxNzUs
MTEgQEAgY2xhc3MgQ29tbWl0UXVldWVUYXNrKG9iamVjdCk6CiAKICAgICAgICAgc2Vjb25kX2Zh
aWxpbmdfdGVzdHMgPSBzZWxmLl9mYWlsaW5nX3Rlc3RzX2Zyb21fbGFzdF9ydW4oKQogICAgICAg
ICBpZiBmaXJzdF9mYWlsaW5nX3Rlc3RzICE9IHNlY29uZF9mYWlsaW5nX3Rlc3RzOgotICAgICAg
ICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKGZpcnN0X2ZhaWxpbmdfdGVzdHMgKyBzZWNv
bmRfZmFpbGluZ190ZXN0cykKKyAgICAgICAgICAgICMgV2UgY291bGQgcmVwb3J0IGZsYWt5IHRl
c3RzIGhlcmUsIGJ1dCBzaW5jZSBydW4td2Via2l0LXRlc3RzCisgICAgICAgICAgICAjIGlzIHJ1
biB3aXRoIC0tZXhpdC1hZnRlci1OLWZhaWx1cmVzPTEsIHdlIHdvdWxkIG5lZWQgdG8KKyAgICAg
ICAgICAgICMgYmUgY2FyZWZ1bCBub3QgdG8gcmVwb3J0IGNvbnN0YW50IGZhaWx1cmVzIGFzIGZs
YWt5IGR1ZSB0byBlYXJsaWVyCisgICAgICAgICAgICAjIGZsYWt5IHRlc3QgbWFraW5nIHRoZW0g
bm90IGZhaWwgKG5vIHJlc3VsdHMpIGluIG9uZSBvZiB0aGUgcnVucy4KKyAgICAgICAgICAgICMg
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTI3MgogICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICAgICAgaWYgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0
aG91dF9wYXRjaCgpOgpAQCAtMTk5LDYgKzIwMyw3IEBAIGNsYXNzIENvbW1pdFF1ZXVlVGFzayhv
YmplY3QpOgogICAgICAgICAjIG5vIG9uZSBoYXMgc2V0IGNvbW1pdC1xdWV1ZS0gc2luY2Ugd2Ug
c3RhcnRlZCB3b3JraW5nIG9uIHRoZSBwYXRjaC4pCiAgICAgICAgIGlmIG5vdCBzZWxmLl92YWxp
ZGF0ZSgpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICMgRklYTUU6IFdlIHNo
b3VsZCB1bmRlcnN0YW5kIHdoeSB0aGUgbGFuZCBmYWlsdXJlIG9jY3VyZWQgYW5kIHJldHJ5IGlm
IHBvc3NpYmxlLgogICAgICAgICBpZiBub3Qgc2VsZi5fbGFuZCgpOgogICAgICAgICAgICAgcmFp
c2Ugc2VsZi5fc2NyaXB0X2Vycm9yCiAgICAgICAgIHJldHVybiBUcnVlCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0
ZXN0LnB5CmluZGV4IDkxNDI0NTE1NzVlNGQ1NTZlOTE1MTk3ZWE5NWJmNjY5NWQ3M2I2ZDcuLmYz
MTZiYjIxMWMwNTI5NzhmNzg2Yjc0NzdjN2E0NzQ2ZDVkOGMwZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0
ZXN0LnB5CkBAIC02NywxMSArNjcsMTMgQEAgY2xhc3MgTW9ja0NvbW1pdFF1ZXVlKENvbW1pdFF1
ZXVlVGFza0RlbGVnYXRlKToKIAogCiBjbGFzcyBDb21taXRRdWV1ZVRhc2tUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKLSAgICBkZWYgX3J1bl90aHJvdWdoX3Rhc2soc2VsZiwgY29tbWl0X3F1ZXVl
LCBleHBlY3RlZF9zdGRlcnIsIGV4cGVjdGVkX2V4Y2VwdGlvbj1Ob25lKToKKyAgICBkZWYgX3J1
bl90aHJvdWdoX3Rhc2soc2VsZiwgY29tbWl0X3F1ZXVlLCBleHBlY3RlZF9zdGRlcnIsIGV4cGVj
dGVkX2V4Y2VwdGlvbj1Ob25lLCBleHBlY3RfcmV0cnk9RmFsc2UpOgogICAgICAgICB0b29sID0g
TW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQogICAgICAgICBwYXRjaCA9IHRvb2wuYnVncy5m
ZXRjaF9hdHRhY2htZW50KDE5NykKICAgICAgICAgdGFzayA9IENvbW1pdFF1ZXVlVGFzayhjb21t
aXRfcXVldWUsIHBhdGNoKQotICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMo
c2VsZiwgdGFzay5ydW4sIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIsIGV4cGVjdGVk
X2V4Y2VwdGlvbj1leHBlY3RlZF9leGNlcHRpb24pCisgICAgICAgIHN1Y2Nlc3MgPSBPdXRwdXRD
YXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgdGFzay5ydW4sIGV4cGVjdGVkX3N0ZGVycj1l
eHBlY3RlZF9zdGRlcnIsIGV4cGVjdGVkX2V4Y2VwdGlvbj1leHBlY3RlZF9leGNlcHRpb24pCisg
ICAgICAgIGlmIG5vdCBleHBlY3RlZF9leGNlcHRpb246CisgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHN1Y2Nlc3MsIG5vdCBleHBlY3RfcmV0cnkpCiAKICAgICBkZWYgdGVzdF9zdWNjZXNz
X2Nhc2Uoc2VsZik6CiAgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tDb21taXRRdWV1ZShbXSkK
QEAgLTk1LDcgKzk3LDcgQEAgY29tbWFuZF9wYXNzZWQ6IHN1Y2Nlc3NfbWVzc2FnZT0nTGFuZGVk
IHBhdGNoJyBwYXRjaD0nMTk3JwogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiIiJydW5fd2Vi
a2l0X3BhdGNoOiBbJ2NsZWFuJ10KIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJlX21lc3NhZ2U9J1Vu
YWJsZSB0byBjbGVhbiB3b3JraW5nIGRpcmVjdG9yeScgc2NyaXB0X2Vycm9yPSdNT0NLIGNsZWFu
IGZhaWx1cmUnIHBhdGNoPScxOTcnCiAiIiIKLSAgICAgICAgc2VsZi5fcnVuX3Rocm91Z2hfdGFz
ayhjb21taXRfcXVldWUsIGV4cGVjdGVkX3N0ZGVycikKKyAgICAgICAgc2VsZi5fcnVuX3Rocm91
Z2hfdGFzayhjb21taXRfcXVldWUsIGV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0X3JldHJ5PVRydWUp
CiAKICAgICBkZWYgdGVzdF9hcHBseV9mYWlsdXJlKHNlbGYpOgogICAgICAgICBjb21taXRfcXVl
dWUgPSBNb2NrQ29tbWl0UXVldWUoWwpAQCAtMTQyLDcgKzE0NCw3IEBAIGNvbW1hbmRfZmFpbGVk
OiBmYWlsdXJlX21lc3NhZ2U9J1BhdGNoIGRvZXMgbm90IGJ1aWxkJyBzY3JpcHRfZXJyb3I9J01P
Q0sgYnVpbGQKIHJ1bl93ZWJraXRfcGF0Y2g6IFsnYnVpbGQnLCAnLS1mb3JjZS1jbGVhbicsICct
LW5vLXVwZGF0ZScsICctLWJ1aWxkLXN0eWxlPWJvdGgnXQogY29tbWFuZF9mYWlsZWQ6IGZhaWx1
cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2gnIHNjcmlwdF9lcnJvcj0n
TU9DSyBjbGVhbiBidWlsZCBmYWlsdXJlJyBwYXRjaD0nMTk3JwogIiIiCi0gICAgICAgIHNlbGYu
X3J1bl90aHJvdWdoX3Rhc2soY29tbWl0X3F1ZXVlLCBleHBlY3RlZF9zdGRlcnIpCisgICAgICAg
IHNlbGYuX3J1bl90aHJvdWdoX3Rhc2soY29tbWl0X3F1ZXVlLCBleHBlY3RlZF9zdGRlcnIsIGV4
cGVjdF9yZXRyeT1UcnVlKQogCiAgICAgZGVmIHRlc3RfZmxha3lfdGVzdF9mYWlsdXJlKHNlbGYp
OgogICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrQ29tbWl0UXVldWUoWwpAQCAtMTY3LDYgKzE2
OSw0NSBAQCBjb21tYW5kX3Bhc3NlZDogc3VjY2Vzc19tZXNzYWdlPSdMYW5kZWQgcGF0Y2gnIHBh
dGNoPScxOTcnCiAiIiIKICAgICAgICAgc2VsZi5fcnVuX3Rocm91Z2hfdGFzayhjb21taXRfcXVl
dWUsIGV4cGVjdGVkX3N0ZGVycikKIAorICAgIF9kb3VibGVfZmxha3lfdGVzdF9jb3VudGVyID0g
MAorCisgICAgZGVmIHRlc3RfZG91YmxlX2ZsYWt5X3Rlc3RfZmFpbHVyZShzZWxmKToKKyAgICAg
ICAgY29tbWl0X3F1ZXVlID0gTW9ja0NvbW1pdFF1ZXVlKFsKKyAgICAgICAgICAgIE5vbmUsCisg
ICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgIFNjcmlwdEVy
cm9yKCJNT0NLIHRlc3QgZmFpbHVyZSIpLAorICAgICAgICAgICAgU2NyaXB0RXJyb3IoIk1PQ0sg
dGVzdCBmYWlsdXJlIGFnYWluIiksCisgICAgICAgIF0pCisgICAgICAgICMgVGhlIChzdWJ0bGUp
IHBvaW50IG9mIHRoaXMgdGVzdCBpcyB0aGF0IHJlcG9ydF9mbGFreV90ZXN0cyBkb2VzIG5vdCBh
cHBlYXIKKyAgICAgICAgIyBpbiB0aGUgZXhwZWN0ZWRfc3RkZXJyIGZvciB0aGlzIHJ1bi4KKyAg
ICAgICAgIyBOb3RlIGFsc28gdGhhdCB0aGVyZSBpcyBubyBhdHRlbXB0IHRvIHJ1biB0aGUgdGVz
dHMgdy9vIHRoZSBwYXRjaC4KKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIiIicnVuX3dlYmtp
dF9wYXRjaDogWydjbGVhbiddCitjb21tYW5kX3Bhc3NlZDogc3VjY2Vzc19tZXNzYWdlPSdDbGVh
bmVkIHdvcmtpbmcgZGlyZWN0b3J5JyBwYXRjaD0nMTk3JworcnVuX3dlYmtpdF9wYXRjaDogWydh
cHBseS1hdHRhY2htZW50JywgJy0tbm9uLWludGVyYWN0aXZlJywgMTk3XQorY29tbWFuZF9wYXNz
ZWQ6IHN1Y2Nlc3NfbWVzc2FnZT0nQXBwbGllZCBwYXRjaCcgcGF0Y2g9JzE5NycKK3J1bl93ZWJr
aXRfcGF0Y2g6IFsnYnVpbGQnLCAnLS1uby1jbGVhbicsICctLW5vLXVwZGF0ZScsICctLWJ1aWxk
LXN0eWxlPWJvdGgnXQorY29tbWFuZF9wYXNzZWQ6IHN1Y2Nlc3NfbWVzc2FnZT0nQnVpbHQgcGF0
Y2gnIHBhdGNoPScxOTcnCitydW5fd2Via2l0X3BhdGNoOiBbJ2J1aWxkLWFuZC10ZXN0JywgJy0t
bm8tY2xlYW4nLCAnLS1uby11cGRhdGUnLCAnLS10ZXN0JywgJy0tbm9uLWludGVyYWN0aXZlJ10K
K2NvbW1hbmRfZmFpbGVkOiBmYWlsdXJlX21lc3NhZ2U9J1BhdGNoIGRvZXMgbm90IHBhc3MgdGVz
dHMnIHNjcmlwdF9lcnJvcj0nTU9DSyB0ZXN0IGZhaWx1cmUnIHBhdGNoPScxOTcnCitydW5fd2Vi
a2l0X3BhdGNoOiBbJ2J1aWxkLWFuZC10ZXN0JywgJy0tbm8tY2xlYW4nLCAnLS1uby11cGRhdGUn
LCAnLS10ZXN0JywgJy0tbm9uLWludGVyYWN0aXZlJ10KK2NvbW1hbmRfZmFpbGVkOiBmYWlsdXJl
X21lc3NhZ2U9J1BhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMnIHNjcmlwdF9lcnJvcj0nTU9DSyB0
ZXN0IGZhaWx1cmUgYWdhaW4nIHBhdGNoPScxOTcnCisiIiIKKyAgICAgICAgdG9vbCA9IE1vY2tU
b29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgcGF0Y2ggPSB0b29sLmJ1Z3MuZmV0Y2hf
YXR0YWNobWVudCgxOTcpCisgICAgICAgIHRhc2sgPSBDb21taXRRdWV1ZVRhc2soY29tbWl0X3F1
ZXVlLCBwYXRjaCkKKyAgICAgICAgc2VsZi5fZG91YmxlX2ZsYWt5X3Rlc3RfY291bnRlciA9IDAK
KworICAgICAgICBkZWYgbW9ja19mYWlsaW5nX3Rlc3RzX2Zyb21fbGFzdF9ydW4oKToKKyAgICAg
ICAgICAgIENvbW1pdFF1ZXVlVGFza1Rlc3QuX2RvdWJsZV9mbGFreV90ZXN0X2NvdW50ZXIgKz0g
MQorICAgICAgICAgICAgaWYgQ29tbWl0UXVldWVUYXNrVGVzdC5fZG91YmxlX2ZsYWt5X3Rlc3Rf
Y291bnRlciAlIDI6CisgICAgICAgICAgICAgICAgcmV0dXJuIFsnZm9vLmh0bWwnXQorICAgICAg
ICAgICAgcmV0dXJuIFsnYmFyLmh0bWwnXQorCisgICAgICAgIHRhc2suX2ZhaWxpbmdfdGVzdHNf
ZnJvbV9sYXN0X3J1biA9IG1vY2tfZmFpbGluZ190ZXN0c19mcm9tX2xhc3RfcnVuCisgICAgICAg
IHN1Y2Nlc3MgPSBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgdGFzay5ydW4s
IGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc3VjY2VzcywgRmFsc2UpCisKICAgICBkZWYgdGVzdF90ZXN0X2ZhaWx1cmUoc2VsZik6CiAg
ICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tDb21taXRRdWV1ZShbCiAgICAgICAgICAgICBOb25l
LApAQCAtMjEyLDcgKzI1Myw3IEBAIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJlX21lc3NhZ2U9J1Bh
dGNoIGRvZXMgbm90IHBhc3MgdGVzdHMnIHNjcmlwdF9lcnJvcj0nTU9DSyB0CiBydW5fd2Via2l0
X3BhdGNoOiBbJ2J1aWxkLWFuZC10ZXN0JywgJy0tZm9yY2UtY2xlYW4nLCAnLS1uby11cGRhdGUn
LCAnLS1idWlsZCcsICctLXRlc3QnLCAnLS1ub24taW50ZXJhY3RpdmUnXQogY29tbWFuZF9mYWls
ZWQ6IGZhaWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCAo
dHJlZSBpcyByZWQ/KScgc2NyaXB0X2Vycm9yPSdNT0NLIGNsZWFuIHRlc3QgZmFpbHVyZScgcGF0
Y2g9JzE5NycKICIiIgotICAgICAgICBzZWxmLl9ydW5fdGhyb3VnaF90YXNrKGNvbW1pdF9xdWV1
ZSwgZXhwZWN0ZWRfc3RkZXJyKQorICAgICAgICBzZWxmLl9ydW5fdGhyb3VnaF90YXNrKGNvbW1p
dF9xdWV1ZSwgZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RfcmV0cnk9VHJ1ZSkKIAogICAgIGRlZiB0
ZXN0X2xhbmRfZmFpbHVyZShzZWxmKToKICAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja0NvbW1p
dFF1ZXVlKFsKQEAgLTIzMyw0ICsyNzQsNSBAQCBjb21tYW5kX3Bhc3NlZDogc3VjY2Vzc19tZXNz
YWdlPSdQYXNzZWQgdGVzdHMnIHBhdGNoPScxOTcnCiBydW5fd2Via2l0X3BhdGNoOiBbJ2xhbmQt
YXR0YWNobWVudCcsICctLWZvcmNlLWNsZWFuJywgJy0taWdub3JlLWJ1aWxkZXJzJywgJy0tbm9u
LWludGVyYWN0aXZlJywgJy0tcGFyZW50LWNvbW1hbmQ9Y29tbWl0LXF1ZXVlJywgMTk3XQogY29t
bWFuZF9mYWlsZWQ6IGZhaWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGxhbmQgcGF0Y2gnIHNjcmlw
dF9lcnJvcj0nTU9DSyBsYW5kIGZhaWx1cmUnIHBhdGNoPScxOTcnCiAiIiIKKyAgICAgICAgIyBG
SVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJlIGV4cGVjdF9yZXRyeT1UcnVlIGZvciBhIGJldHRl
ciB1c2VyIGV4cGVyaWFuY2UuCiAgICAgICAgIHNlbGYuX3J1bl90aHJvdWdoX3Rhc2soY29tbWl0
X3F1ZXVlLCBleHBlY3RlZF9zdGRlcnIsIFNjcmlwdEVycm9yKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77090</attachid>
            <date>2010-12-21 00:21:24 -0800</date>
            <delta_ts>2010-12-21 04:56:00 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-51272-20101221022123.patch</filename>
            <type>text/plain</type>
            <size>9214</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyZjNi
ODQzZjAxZjk2ZTBiZGM4MjcyMDY0M2E2MjkxNTFiNmYyZDhmLi5jOTQ5YjIxMmU5MmI0NDk1OGY0
NjJlZTQ2NTZjMTIxZGMwYTZhYTMzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMTItMjEgIEVyaWMgU2VpZGVs
ICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisK
KyAgICAgICAgY29tbWl0LXF1ZXVlIHdpbGwgcmVwb3J0IGNvbnN0YW50IGZhaWx1cmVzIGFzIGZs
YWt5IGlmIG90aGVyIHRlc3RzIGZsYWtlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MTI3MgorCisgICAgICAgIFRoaXMgcGF0Y2gganVzdCByZW1vdmVz
IGZ1bmN0aW9uYWxpdHkgYW5kIGFkZHMgdGVzdGluZy4KKyAgICAgICAgUHJldmlvdXNseSB3ZSBh
dHRlbXB0ZWQgdG8gcmVwb3J0IGZsYWt5IHRlc3RzIHdoZW4gd2UgaGFkCisgICAgICAgIHR3byBk
aWZmZXJlbnQgdGVzdHMgZmFpbCBpbiBhIHJvdy4gIEhvd2V2ZXIsIHNpbmNlIHdlIHN0b3AKKyAg
ICAgICAgcnVubmluZyB0aGUgdGVzdHMgYXQgdGhlIGZpcnN0IGZhaWx1cmUsIG91ciBjb2RlIHdh
cyB3cm9uZyBpbgorICAgICAgICB0cnlpbmcgdG8gZGV0ZXJtaW5lIGZsYWtpbmVzcyBmcm9tIHRo
ZSBpbmNvbXBsZXRlIHJ1bnMuCisKKyAgICAgICAgT3JpZ2luYWxseSBJIHBvc3RlZCBhbiBhbHRl
cm5hdGUgcGF0Y2g6CisgICAgICAgIGh0dHBzOi8vYnVnLTUxMjcyLWF0dGFjaG1lbnRzLndlYmtp
dC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9NzcwNzgKKyAgICAgICAgd2hpY2ggZml4ZWQgb3VyIGZs
YWt5IGxvZ2ljIGluIHRoaXMgY2FzZSwgaG93ZXZlciBpdCB3YXMgZGVjaWRlZAorICAgICAgICB0
aGF0IHRoYXQgcGF0Y2ggd291bGQgYmUgdG9vIGRpZmZpY3VsdCB0byBtYWludGFpbiwgc28gbm93
CisgICAgICAgIEknbSBqdXN0IHJlbW92aW5nIHRoZSBicm9rZW4gbG9naWMuCisKKyAgICAgICAg
VGhpcyB3aWxsIGRyYW1hdGljYWxseSBjdXQtZG93biBvbiBvdXIgZmxha3ktdGVzdCBmYWxzZSBw
b3NpdGl2ZXMKKyAgICAgICAgYXQgdGhlIChzbWFsbCkgY29zdCBvZiB0aGUgcXVldWVzIGJlaW5n
IHVuYWJsZSB0byByZXBvcnQKKyAgICAgICAgYW55IGZsYWtpbmVzcyBpZiB0aGUgdHJlZSBpcyB2
ZXJ5IGZsYWt5LiAgKFdpdGggYXQgbGVhc3Qgb25lIHRlc3QKKyAgICAgICAgZmxha2luZyBvbiBl
dmVyeSBydW4sIHdlJ2xsIG5ldmVyIHJlcG9ydCBmYWlsdXJlcyBhbnltb3JlLikgIEkgdGhpbmsK
KyAgICAgICAgdGhpcyBpcyBhIHRyYWRlb2ZmIHdvcnRoIG1ha2luZy4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5OgorCiAy
MDEwLTEyLTIwICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9jb21taXRxdWV1ZXRhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2NvbW1pdHF1ZXVldGFzay5weQppbmRleCA2YTgzOGU4YzFhNzA1MmM0NzQwY2Q2ZTRiMDA5
MzM2MGFiMGRmZjNlLi4xZDgyZWE4OTkxZjllOTJmMGI2YjNmZTVkZTE5ZTlmMzMyMzYxMDA0IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFz
ay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFz
ay5weQpAQCAtMTg0LDcgKzE4NCwxMSBAQCBjbGFzcyBDb21taXRRdWV1ZVRhc2sob2JqZWN0KToK
IAogICAgICAgICBzZWNvbmRfZmFpbGluZ190ZXN0cyA9IHNlbGYuX2ZhaWxpbmdfdGVzdHNfZnJv
bV9sYXN0X3J1bigpCiAgICAgICAgIGlmIGZpcnN0X2ZhaWxpbmdfdGVzdHMgIT0gc2Vjb25kX2Zh
aWxpbmdfdGVzdHM6Ci0gICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3Rf
ZmFpbGluZ190ZXN0cyArIHNlY29uZF9mYWlsaW5nX3Rlc3RzKQorICAgICAgICAgICAgIyBXZSBj
b3VsZCByZXBvcnQgZmxha3kgdGVzdHMgaGVyZSwgYnV0IHNpbmNlIHJ1bi13ZWJraXQtdGVzdHMK
KyAgICAgICAgICAgICMgaXMgcnVuIHdpdGggLS1leGl0LWFmdGVyLU4tZmFpbHVyZXM9MSwgd2Ug
d291bGQgbmVlZCB0bworICAgICAgICAgICAgIyBiZSBjYXJlZnVsIG5vdCB0byByZXBvcnQgY29u
c3RhbnQgZmFpbHVyZXMgYXMgZmxha3kgZHVlIHRvIGVhcmxpZXIKKyAgICAgICAgICAgICMgZmxh
a3kgdGVzdCBtYWtpbmcgdGhlbSBub3QgZmFpbCAobm8gcmVzdWx0cykgaW4gb25lIG9mIHRoZSBy
dW5zLgorICAgICAgICAgICAgIyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUxMjcyCiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgICAgICBpZiBzZWxm
Ll9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCk6CkBAIC0yMTAsNiArMjE0LDcgQEAgY2xh
c3MgQ29tbWl0UXVldWVUYXNrKG9iamVjdCk6CiAgICAgICAgICMgbm8gb25lIGhhcyBzZXQgY29t
bWl0LXF1ZXVlLSBzaW5jZSB3ZSBzdGFydGVkIHdvcmtpbmcgb24gdGhlIHBhdGNoLikKICAgICAg
ICAgaWYgbm90IHNlbGYuX3ZhbGlkYXRlKCk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIHVuZGVyc3RhbmQgd2h5IHRoZSBsYW5kIGZhaWx1cmUg
b2NjdXJlZCBhbmQgcmV0cnkgaWYgcG9zc2libGUuCiAgICAgICAgIGlmIG5vdCBzZWxmLl9sYW5k
KCk6CiAgICAgICAgICAgICByYWlzZSBzZWxmLl9zY3JpcHRfZXJyb3IKICAgICAgICAgcmV0dXJu
IFRydWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0
cXVldWV0YXNrX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9j
b21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkKaW5kZXggZmVkN2ZhOTc4NTg2OGRhODE1MDlkZjk1
ZjlkYWFkYTcyNmQzM2RkMS4uMzc2ZjQwNzAzODJiNmFlNGQzYjk5YjIzMmZmZmIyMTY4YTgzNjMw
NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1
ZXRhc2tfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9j
b21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkKQEAgLTY3LDExICs2NywxMyBAQCBjbGFzcyBNb2Nr
Q29tbWl0UXVldWUoQ29tbWl0UXVldWVUYXNrRGVsZWdhdGUpOgogCiAKIGNsYXNzIENvbW1pdFF1
ZXVlVGFza1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGRlZiBfcnVuX3Rocm91Z2hfdGFz
ayhzZWxmLCBjb21taXRfcXVldWUsIGV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZXhjZXB0aW9u
PU5vbmUpOgorICAgIGRlZiBfcnVuX3Rocm91Z2hfdGFzayhzZWxmLCBjb21taXRfcXVldWUsIGV4
cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZXhjZXB0aW9uPU5vbmUsIGV4cGVjdF9yZXRyeT1GYWxz
ZSk6CiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCiAgICAgICAg
IHBhdGNoID0gdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTk3KQogICAgICAgICB0YXNrID0g
Q29tbWl0UXVldWVUYXNrKGNvbW1pdF9xdWV1ZSwgcGF0Y2gpCi0gICAgICAgIE91dHB1dENhcHR1
cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCB0YXNrLnJ1biwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVj
dGVkX3N0ZGVyciwgZXhwZWN0ZWRfZXhjZXB0aW9uPWV4cGVjdGVkX2V4Y2VwdGlvbikKKyAgICAg
ICAgc3VjY2VzcyA9IE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCB0YXNrLnJ1
biwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZXhjZXB0aW9uPWV4
cGVjdGVkX2V4Y2VwdGlvbikKKyAgICAgICAgaWYgbm90IGV4cGVjdGVkX2V4Y2VwdGlvbjoKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3VjY2Vzcywgbm90IGV4cGVjdF9yZXRyeSkKIAog
ICAgIGRlZiB0ZXN0X3N1Y2Nlc3NfY2FzZShzZWxmKToKICAgICAgICAgY29tbWl0X3F1ZXVlID0g
TW9ja0NvbW1pdFF1ZXVlKFtdKQpAQCAtOTcsNyArOTksNyBAQCBjb21tYW5kX3Bhc3NlZDogc3Vj
Y2Vzc19tZXNzYWdlPSdMYW5kZWQgcGF0Y2gnIHBhdGNoPScxOTcnCiAgICAgICAgIGV4cGVjdGVk
X3N0ZGVyciA9ICIiInJ1bl93ZWJraXRfcGF0Y2g6IFsnY2xlYW4nXQogY29tbWFuZF9mYWlsZWQ6
IGZhaWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGNsZWFuIHdvcmtpbmcgZGlyZWN0b3J5JyBzY3Jp
cHRfZXJyb3I9J01PQ0sgY2xlYW4gZmFpbHVyZScgcGF0Y2g9JzE5NycKICIiIgotICAgICAgICBz
ZWxmLl9ydW5fdGhyb3VnaF90YXNrKGNvbW1pdF9xdWV1ZSwgZXhwZWN0ZWRfc3RkZXJyKQorICAg
ICAgICBzZWxmLl9ydW5fdGhyb3VnaF90YXNrKGNvbW1pdF9xdWV1ZSwgZXhwZWN0ZWRfc3RkZXJy
LCBleHBlY3RfcmV0cnk9VHJ1ZSkKIAogICAgIGRlZiB0ZXN0X3VwZGF0ZV9mYWlsdXJlKHNlbGYp
OgogICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrQ29tbWl0UXVldWUoWwpAQCAtMTA5LDcgKzEx
MSw3IEBAIGNvbW1hbmRfcGFzc2VkOiBzdWNjZXNzX21lc3NhZ2U9J0NsZWFuZWQgd29ya2luZyBk
aXJlY3RvcnknIHBhdGNoPScxOTcnCiBydW5fd2Via2l0X3BhdGNoOiBbJ3VwZGF0ZSddCiBjb21t
YW5kX2ZhaWxlZDogZmFpbHVyZV9tZXNzYWdlPSdVbmFibGUgdG8gdXBkYXRlIHdvcmtpbmcgZGly
ZWN0b3J5JyBzY3JpcHRfZXJyb3I9J01PQ0sgdXBkYXRlIGZhaWx1cmUnIHBhdGNoPScxOTcnCiAi
IiIKLSAgICAgICAgc2VsZi5fcnVuX3Rocm91Z2hfdGFzayhjb21taXRfcXVldWUsIGV4cGVjdGVk
X3N0ZGVycikKKyAgICAgICAgc2VsZi5fcnVuX3Rocm91Z2hfdGFzayhjb21taXRfcXVldWUsIGV4
cGVjdGVkX3N0ZGVyciwgZXhwZWN0X3JldHJ5PVRydWUpCiAKICAgICBkZWYgdGVzdF9hcHBseV9m
YWlsdXJlKHNlbGYpOgogICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrQ29tbWl0UXVldWUoWwpA
QCAtMTY1LDcgKzE2Nyw3IEBAIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJlX21lc3NhZ2U9J1BhdGNo
IGRvZXMgbm90IGJ1aWxkJyBzY3JpcHRfZXJyb3I9J01PQ0sgYnVpbGQKIHJ1bl93ZWJraXRfcGF0
Y2g6IFsnYnVpbGQnLCAnLS1mb3JjZS1jbGVhbicsICctLW5vLXVwZGF0ZScsICctLWJ1aWxkLXN0
eWxlPWJvdGgnXQogY29tbWFuZF9mYWlsZWQ6IGZhaWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGJ1
aWxkIHdpdGhvdXQgcGF0Y2gnIHNjcmlwdF9lcnJvcj0nTU9DSyBjbGVhbiBidWlsZCBmYWlsdXJl
JyBwYXRjaD0nMTk3JwogIiIiCi0gICAgICAgIHNlbGYuX3J1bl90aHJvdWdoX3Rhc2soY29tbWl0
X3F1ZXVlLCBleHBlY3RlZF9zdGRlcnIpCisgICAgICAgIHNlbGYuX3J1bl90aHJvdWdoX3Rhc2so
Y29tbWl0X3F1ZXVlLCBleHBlY3RlZF9zdGRlcnIsIGV4cGVjdF9yZXRyeT1UcnVlKQogCiAgICAg
ZGVmIHRlc3RfZmxha3lfdGVzdF9mYWlsdXJlKHNlbGYpOgogICAgICAgICBjb21taXRfcXVldWUg
PSBNb2NrQ29tbWl0UXVldWUoWwpAQCAtMTkzLDYgKzE5NSw0OCBAQCBjb21tYW5kX3Bhc3NlZDog
c3VjY2Vzc19tZXNzYWdlPSdMYW5kZWQgcGF0Y2gnIHBhdGNoPScxOTcnCiAiIiIKICAgICAgICAg
c2VsZi5fcnVuX3Rocm91Z2hfdGFzayhjb21taXRfcXVldWUsIGV4cGVjdGVkX3N0ZGVycikKIAor
ICAgIF9kb3VibGVfZmxha3lfdGVzdF9jb3VudGVyID0gMAorCisgICAgZGVmIHRlc3RfZG91Ymxl
X2ZsYWt5X3Rlc3RfZmFpbHVyZShzZWxmKToKKyAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja0Nv
bW1pdFF1ZXVlKFsKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBOb25lLAorICAgICAg
ICAgICAgTm9uZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBTY3JpcHRFcnJvcigi
TU9DSyB0ZXN0IGZhaWx1cmUiKSwKKyAgICAgICAgICAgIFNjcmlwdEVycm9yKCJNT0NLIHRlc3Qg
ZmFpbHVyZSBhZ2FpbiIpLAorICAgICAgICBdKQorICAgICAgICAjIFRoZSAoc3VidGxlKSBwb2lu
dCBvZiB0aGlzIHRlc3QgaXMgdGhhdCByZXBvcnRfZmxha3lfdGVzdHMgZG9lcyBub3QgYXBwZWFy
CisgICAgICAgICMgaW4gdGhlIGV4cGVjdGVkX3N0ZGVyciBmb3IgdGhpcyBydW4uCisgICAgICAg
ICMgTm90ZSBhbHNvIHRoYXQgdGhlcmUgaXMgbm8gYXR0ZW1wdCB0byBydW4gdGhlIHRlc3RzIHcv
byB0aGUgcGF0Y2guCisgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICIiInJ1bl93ZWJraXRfcGF0
Y2g6IFsnY2xlYW4nXQorY29tbWFuZF9wYXNzZWQ6IHN1Y2Nlc3NfbWVzc2FnZT0nQ2xlYW5lZCB3
b3JraW5nIGRpcmVjdG9yeScgcGF0Y2g9JzE5NycKK3J1bl93ZWJraXRfcGF0Y2g6IFsndXBkYXRl
J10KK2NvbW1hbmRfcGFzc2VkOiBzdWNjZXNzX21lc3NhZ2U9J1VwZGF0ZWQgd29ya2luZyBkaXJl
Y3RvcnknIHBhdGNoPScxOTcnCitydW5fd2Via2l0X3BhdGNoOiBbJ2FwcGx5LWF0dGFjaG1lbnQn
LCAnLS1uby11cGRhdGUnLCAnLS1ub24taW50ZXJhY3RpdmUnLCAxOTddCitjb21tYW5kX3Bhc3Nl
ZDogc3VjY2Vzc19tZXNzYWdlPSdBcHBsaWVkIHBhdGNoJyBwYXRjaD0nMTk3JworcnVuX3dlYmtp
dF9wYXRjaDogWydidWlsZCcsICctLW5vLWNsZWFuJywgJy0tbm8tdXBkYXRlJywgJy0tYnVpbGQt
c3R5bGU9Ym90aCddCitjb21tYW5kX3Bhc3NlZDogc3VjY2Vzc19tZXNzYWdlPSdCdWlsdCBwYXRj
aCcgcGF0Y2g9JzE5NycKK3J1bl93ZWJraXRfcGF0Y2g6IFsnYnVpbGQtYW5kLXRlc3QnLCAnLS1u
by1jbGVhbicsICctLW5vLXVwZGF0ZScsICctLXRlc3QnLCAnLS1ub24taW50ZXJhY3RpdmUnXQor
Y29tbWFuZF9mYWlsZWQ6IGZhaWx1cmVfbWVzc2FnZT0nUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0
cycgc2NyaXB0X2Vycm9yPSdNT0NLIHRlc3QgZmFpbHVyZScgcGF0Y2g9JzE5NycKK3J1bl93ZWJr
aXRfcGF0Y2g6IFsnYnVpbGQtYW5kLXRlc3QnLCAnLS1uby1jbGVhbicsICctLW5vLXVwZGF0ZScs
ICctLXRlc3QnLCAnLS1ub24taW50ZXJhY3RpdmUnXQorY29tbWFuZF9mYWlsZWQ6IGZhaWx1cmVf
bWVzc2FnZT0nUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0cycgc2NyaXB0X2Vycm9yPSdNT0NLIHRl
c3QgZmFpbHVyZSBhZ2FpbicgcGF0Y2g9JzE5NycKKyIiIgorICAgICAgICB0b29sID0gTW9ja1Rv
b2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICBwYXRjaCA9IHRvb2wuYnVncy5mZXRjaF9h
dHRhY2htZW50KDE5NykKKyAgICAgICAgdGFzayA9IENvbW1pdFF1ZXVlVGFzayhjb21taXRfcXVl
dWUsIHBhdGNoKQorICAgICAgICBzZWxmLl9kb3VibGVfZmxha3lfdGVzdF9jb3VudGVyID0gMAor
CisgICAgICAgIGRlZiBtb2NrX2ZhaWxpbmdfdGVzdHNfZnJvbV9sYXN0X3J1bigpOgorICAgICAg
ICAgICAgQ29tbWl0UXVldWVUYXNrVGVzdC5fZG91YmxlX2ZsYWt5X3Rlc3RfY291bnRlciArPSAx
CisgICAgICAgICAgICBpZiBDb21taXRRdWV1ZVRhc2tUZXN0Ll9kb3VibGVfZmxha3lfdGVzdF9j
b3VudGVyICUgMjoKKyAgICAgICAgICAgICAgICByZXR1cm4gWydmb28uaHRtbCddCisgICAgICAg
ICAgICByZXR1cm4gWydiYXIuaHRtbCddCisKKyAgICAgICAgdGFzay5fZmFpbGluZ190ZXN0c19m
cm9tX2xhc3RfcnVuID0gbW9ja19mYWlsaW5nX3Rlc3RzX2Zyb21fbGFzdF9ydW4KKyAgICAgICAg
c3VjY2VzcyA9IE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCB0YXNrLnJ1biwg
ZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzdWNjZXNzLCBGYWxzZSkKKwogICAgIGRlZiB0ZXN0X3Rlc3RfZmFpbHVyZShzZWxmKToKICAg
ICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja0NvbW1pdFF1ZXVlKFsKICAgICAgICAgICAgIE5vbmUs
CkBAIC0yNDQsNyArMjg4LDcgQEAgY29tbWFuZF9mYWlsZWQ6IGZhaWx1cmVfbWVzc2FnZT0nUGF0
Y2ggZG9lcyBub3QgcGFzcyB0ZXN0cycgc2NyaXB0X2Vycm9yPSdNT0NLIHQKIHJ1bl93ZWJraXRf
cGF0Y2g6IFsnYnVpbGQtYW5kLXRlc3QnLCAnLS1mb3JjZS1jbGVhbicsICctLW5vLXVwZGF0ZScs
ICctLWJ1aWxkJywgJy0tdGVzdCcsICctLW5vbi1pbnRlcmFjdGl2ZSddCiBjb21tYW5kX2ZhaWxl
ZDogZmFpbHVyZV9tZXNzYWdlPSdVbmFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoICh0
cmVlIGlzIHJlZD8pJyBzY3JpcHRfZXJyb3I9J01PQ0sgY2xlYW4gdGVzdCBmYWlsdXJlJyBwYXRj
aD0nMTk3JwogIiIiCi0gICAgICAgIHNlbGYuX3J1bl90aHJvdWdoX3Rhc2soY29tbWl0X3F1ZXVl
LCBleHBlY3RlZF9zdGRlcnIpCisgICAgICAgIHNlbGYuX3J1bl90aHJvdWdoX3Rhc2soY29tbWl0
X3F1ZXVlLCBleHBlY3RlZF9zdGRlcnIsIGV4cGVjdF9yZXRyeT1UcnVlKQogCiAgICAgZGVmIHRl
c3RfbGFuZF9mYWlsdXJlKHNlbGYpOgogICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrQ29tbWl0
UXVldWUoWwpAQCAtMjY4LDQgKzMxMiw1IEBAIGNvbW1hbmRfcGFzc2VkOiBzdWNjZXNzX21lc3Nh
Z2U9J1Bhc3NlZCB0ZXN0cycgcGF0Y2g9JzE5NycKIHJ1bl93ZWJraXRfcGF0Y2g6IFsnbGFuZC1h
dHRhY2htZW50JywgJy0tZm9yY2UtY2xlYW4nLCAnLS1pZ25vcmUtYnVpbGRlcnMnLCAnLS1ub24t
aW50ZXJhY3RpdmUnLCAnLS1wYXJlbnQtY29tbWFuZD1jb21taXQtcXVldWUnLCAxOTddCiBjb21t
YW5kX2ZhaWxlZDogZmFpbHVyZV9tZXNzYWdlPSdVbmFibGUgdG8gbGFuZCBwYXRjaCcgc2NyaXB0
X2Vycm9yPSdNT0NLIGxhbmQgZmFpbHVyZScgcGF0Y2g9JzE5NycKICIiIgorICAgICAgICAjIEZJ
WE1FOiBUaGlzIHNob3VsZCByZWFsbHkgYmUgZXhwZWN0X3JldHJ5PVRydWUgZm9yIGEgYmV0dGVy
IHVzZXIgZXhwZXJpYW5jZS4KICAgICAgICAgc2VsZi5fcnVuX3Rocm91Z2hfdGFzayhjb21taXRf
cXVldWUsIGV4cGVjdGVkX3N0ZGVyciwgU2NyaXB0RXJyb3IpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>