<?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>69750</bug_id>
          
          <creation_ts>2011-10-10 03:21:48 -0700</creation_ts>
          <short_desc>NRWT should handle duplicated expectations</short_desc>
          <delta_ts>2011-12-05 01:49:03 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>64491</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Kristóf Kosztyó">kkristof</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>galpeter</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>480902</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-10-10 03:21:48 -0700</bug_when>
    <thetext>Now NRWT exits before testing if a test is in the Skipped file
and somebody add an entry for it into test_expectations.py:

http://build.webkit.org/builders/Qt%20Linux%20Release/builds/38286:
2011-10-07 10:47:22,765 24230 test_expectations.py:914 ERROR Line:167 Duplicate or ambiguous expectation. fast/forms/input-disabled-color.html

Skipped file entry must be stronger than an entry in test_expectations.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483059</commentid>
    <comment_count>1</comment_count>
      <attachid>110811</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-10-13 01:45:49 -0700</bug_when>
    <thetext>Created attachment 110811
draft patch

It is working fine in local but do you have any idea in connection with this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483112</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2011-10-13 04:20:21 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=110811&amp;action=review

Some notes regarding the code:

&gt; Tools/Scripts/webkitpy/layout_tests/port/webkit.py:347
&gt; +        index = 0;
&gt; +        for line in expectations.split(&apos;\n&apos;):

you should use enumerate(expectations.split(&apos;\n&apos;)) that will give an additional index value also (http://docs.python.org/library/functions.html#enumerate), so you can ditch the previous index initialization and the index +=1 below. (just a side note: you don&apos;t need the semicolon :))

&gt; Tools/Scripts/webkitpy/layout_tests/port/webkit.py:354
&gt; +            if match and match.group(&apos;TEST&apos;) not in tests.keys():
&gt; +                tests[match.group(&apos;TEST&apos;)] = index
&gt; +            elif match and &apos;SKIP&apos; in match.group(&apos;MODIFIER&apos;):
&gt; +                _log.warn(&apos;The %s test from test_expectations.txt in line %d is also in Skipped!&apos; %
&gt; +                         (match.group(&apos;TEST&apos;),tests[match.group(&apos;TEST&apos;)] + 1))
&gt; +                tests[match.group(&apos;TEST&apos;)] = index

something feels weird here but I don&apos;t know yet what..

&gt; Tools/Scripts/webkitpy/layout_tests/port/webkit.py:359
&gt; +        tests_list = tests.values().sort()
&gt; +        for line in sorted(tests.values()):
&gt; +            result += (expectations.split(&apos;\n&apos;)[line]) + &apos;\n&apos;
&gt; +        return result

Is it necessary to sourt the test.values() twice?
Also you preform a split on the expectations on each iteration, you could move the split out of the for loop.

A better solution would be:
result_list = [expectations_list[line] for line in sorted(test.values())]
return &apos;\n&apos;.join(result_list)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486755</commentid>
    <comment_count>3</comment_count>
      <attachid>111611</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-10-19 07:06:55 -0700</bug_when>
    <thetext>Created attachment 111611
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486947</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-19 13:26:57 -0700</bug_when>
    <thetext>I suspect we don&apos;t want to make this change, but I&apos;ve CCed the experts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486950</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-10-19 13:30:28 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I suspect we don&apos;t want to make this change, but I&apos;ve CCed the experts.

We do want, because Qt layout testing is regularly broken when somebody add 
a test to test_expectations.txt when a test is in the Skipped list already.

Skipped list entry must be stronger than test_expectations.txt entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487015</commentid>
    <comment_count>6</comment_count>
      <attachid>111611</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-10-19 14:37:30 -0700</bug_when>
    <thetext>Comment on attachment 111611
proposed fix

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/webkit.py:350
&gt; +                _log.warn(&apos;The %s test from test_expectations.txt in line %d is also in Skipped!&apos; %

If I&apos;m following this patch correctly, the expectations that are passed in contain the concatenation of the contents of the Skipped files *and* the contents of the test_expectations.txt file, which means that (a) your line numbers are wrong, (b) you will fail if the test is mentioned multiple times in the Skipped files, (c) you will fail if the test is mentioned multiple times in the test_expectations.txt file.

This patch should have tests for all of these cases - I&apos;m r-&apos;ing this patch for this reason at least.

In addition, I *really* don&apos;t like embedding knowledge of the syntax of the expectations file into the port/* classes; it&apos;s a layering violation and may make it harder to evolve things in the future. The whole concept of handling Skipped files this way in the first place was supposed to be a temporary hack until we could transition everyone to test_expectations.txt files. Now, I realize that we probably don&apos;t have consensus over whether we even want to do that, or how, but we should probably fix that instead of continuing to work around it here. At the very least, I would be inclined to change the code so that the port object can return a list of tests to skip, and the generic code can decide how to merge the skip lists with any test_expectations.

All that said, I don&apos;t think I even agree with the basic premise. I believe that it should be an error if the test is mentioned in both a Skipped file and the test_expectations.txt file, because such a situation indicates that you don&apos;t have a consistent view of what you expect the tests to do.

So perhaps I&apos;m not following what situation you are trying to handle? 

Sorry! I&apos;m sure if I can get a better understanding of what you&apos;re trying to fix / workaround we can figure out a way to make it work that I&apos;ll be happy with.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487708</commentid>
    <comment_count>7</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-10-20 10:58:44 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 111611 [details]) View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=111611&amp;action=review
&gt;
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/webkit.py:350
&gt; &gt; +                _log.warn(&apos;The %s test from test_expectations.txt in line %d is also in Skipped!&apos; %
&gt;
&gt; If I&apos;m following this patch correctly, the expectations that are passed in contain the concatenation of the contents of the Skipped files *and* th$
(a) the line number is good because the list from the Skipped files is appended at the end of the expectations string
    expectations = self._filesystem.read_text_file(expectations_path) + expectations
(b) the list from the Skipped files is came as a set
    skipped_layout_tests()
(c) the warn is written in multiple times in that case. I thought it is better than if I write it once.
&gt;
&gt; This patch should have tests for all of these cases - I&apos;m r-&apos;ing this patch for this reason at least.
&gt;
&gt; In addition, I *really* don&apos;t like embedding knowledge of the syntax of the expectations file into the port/* classes; it&apos;s a layering violation a$
I agree with your opinion, thank you for the r-, it needs a sophisticated solution.
I think the merging should be in the test_expectations.py, what do you think?
&gt;
&gt; All that said, I don&apos;t think I even agree with the basic premise. I believe that it should be an error if the test is mentioned in both a Skipped $
&gt;
&gt; So perhaps I&apos;m not following what situation you are trying to handle?
&gt;
we can&apos;t use test_expectations at now because some qt port still have to be run with orwt so we have a great list in the Skipped files, if a careless gardener use that it can broke the nrwt
other example the test_expectations doesn&apos;t support the different qt versions so we need to use their Skipped if some test start to fail with it (qt-4.8, qt-5.0)
&gt; Sorry! I&apos;m sure if I can get a better understanding of what you&apos;re trying to fix / workaround we can figure out a way to make it work that I&apos;ll be$</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488101</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-10-20 19:42:27 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 111611 [details] [details]) View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=111611&amp;action=review
&gt; &gt;
&gt; &gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/webkit.py:350
&gt; &gt; &gt; +                _log.warn(&apos;The %s test from test_expectations.txt in line %d is also in Skipped!&apos; %
&gt; &gt;
&gt; &gt; If I&apos;m following this patch correctly, the expectations that are passed in contain the concatenation of the contents of the Skipped files *and* th$
&gt; (a) the line number is good because the list from the Skipped files is appended at the end of the expectations string
&gt;     expectations = self._filesystem.read_text_file(expectations_path) + expectations

Ah, right.

&gt; (b) the list from the Skipped files is came as a set
&gt;     skipped_layout_tests()

Okay.

&gt; (c) the warn is written in multiple times in that case. I thought it is better than if I write it once.

That&apos;s probably okay.

&gt; &gt;
&gt; &gt; This patch should have tests for all of these cases - I&apos;m r-&apos;ing this patch for this reason at least.
&gt; &gt;
&gt; &gt; In addition, I *really* don&apos;t like embedding knowledge of the syntax of the expectations file into the port/* classes; it&apos;s a layering violation a$
&gt; I agree with your opinion, thank you for the r-, it needs a sophisticated solution.
&gt; I think the merging should be in the test_expectations.py, what do you think?

Yes, that would be the right place for it.

&gt; &gt;
&gt; &gt; All that said, I don&apos;t think I even agree with the basic premise. I believe that it should be an error if the test is mentioned in both a Skipped $
&gt; &gt;
&gt; &gt; So perhaps I&apos;m not following what situation you are trying to handle?
&gt; &gt;
&gt; we can&apos;t use test_expectations at now because some qt port still have to be run with orwt so we have a great list in the Skipped files, if a careless gardener use that it can broke the nrwt

The gardener should run new-run-webkit-tests --lint-test-files in order to ensure that it doesn&apos;t break; this is no different from handling any other typo or duplicate. If there is a conflict in the test_expectations.txt file, the gardener should be able to comment out or remove the line at that point.

&gt; other example the test_expectations doesn&apos;t support the different qt versions so we need to use their Skipped if some test start to fail with it (qt-4.8, qt-5.0)

In this case, we should just add support for the qt versions to your port&apos;s implementation in NRWT. That should be very easy to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491531</commentid>
    <comment_count>9</comment_count>
      <attachid>112675</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-10-27 06:44:12 -0700</bug_when>
    <thetext>Created attachment 112675
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491533</commentid>
    <comment_count>10</comment_count>
      <attachid>112675</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-10-27 06:49:49 -0700</bug_when>
    <thetext>Comment on attachment 112675
proposed fix

I forgot to run the test_webkitpy, and I broke that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494525</commentid>
    <comment_count>11</comment_count>
      <attachid>113296</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-11-02 02:51:58 -0700</bug_when>
    <thetext>Created attachment 113296
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494531</commentid>
    <comment_count>12</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2011-11-02 03:27:36 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=113296) [details]
&gt; proposed fix

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/webkit.py:362
&gt; +    def skipped_test(self):
&gt; +        return skipped_layout_tests

Where does this &apos;skipped_layout_tests&apos; comes from?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494538</commentid>
    <comment_count>13</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-11-02 03:47:31 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; Created an attachment (id=113296) [details] [details]
&gt; &gt; proposed fix
&gt; 
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113296&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/webkit.py:362
&gt; &gt; +    def skipped_test(self):
&gt; &gt; +        return skipped_layout_tests
&gt; 
&gt; Where does this &apos;skipped_layout_tests&apos; comes from?

On WebKitPort based ports the skipped_layout_tests() return with a set of the skipped tests, but in the Chromium this method use a test_expectation object, but I want to use this set in the test_expectation&apos;s constructor to add skipped lines
so I have to make a new method in the webkit.py what only return with the set of skipped tests to make the unittest happy, and don&apos;t kill the nrwt when it run chromium</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494544</commentid>
    <comment_count>14</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2011-11-02 04:10:22 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; Created an attachment (id=113296) [details] [details] [details]
&gt; &gt; &gt; proposed fix
&gt; &gt; 
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113296&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/webkit.py:362
&gt; &gt; &gt; +    def skipped_test(self):
&gt; &gt; &gt; +        return skipped_layout_tests
&gt; &gt; 
&gt; &gt; Where does this &apos;skipped_layout_tests&apos; comes from?
&gt; 
&gt; On WebKitPort based ports the skipped_layout_tests() return with a set of the skipped tests, but in the Chromium this method use a test_expectation object, but I want to use this set in the test_expectation&apos;s constructor to add skipped lines
&gt; so I have to make a new method in the webkit.py what only return with the set of skipped tests to make the unittest happy, and don&apos;t kill the nrwt when it run chromium

But this is not a method call, also if that&apos;s the case the it should be &apos;self.skipped_layout_tests()&apos;, or am I missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494557</commentid>
    <comment_count>15</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-11-02 05:00:18 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; But this is not a method call, also if that&apos;s the case the it should be &apos;self.skipped_layout_tests()&apos;, or am I missing something?

Indeed I was wrong, but strange it didn&apos;t throw any exception</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494562</commentid>
    <comment_count>16</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-11-02 05:29:25 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; But this is not a method call, also if that&apos;s the case the it should be &apos;self.skipped_layout_tests()&apos;, or am I missing something?
&gt; 
&gt; Indeed I was wrong, but strange it didn&apos;t throw any exception

Now I got it why didn&apos;t throw anything, I&apos;am fixing it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494566</commentid>
    <comment_count>17</comment_count>
      <attachid>113305</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-11-02 05:45:08 -0700</bug_when>
    <thetext>Created attachment 113305
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495973</commentid>
    <comment_count>18</comment_count>
      <attachid>113305</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-11-03 18:29:16 -0700</bug_when>
    <thetext>Comment on attachment 113305
proposed fix

This is definitely getting closer ...

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

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:703
&gt; +        self._add_skipped_tests(port.skipped_tests())

Can&apos;t we just use port.skipped_layout_tests() here and not have to add a separate function?

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:836
&gt; +                _log.warn(&apos;The %s test from test_expectations.txt in line %d is also in Skipped!&apos; %

As per earlier discussion, I think this should probably be an error, not a warning.

Also, can you add some unit tests to the test_expectations_unittest.py class?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496180</commentid>
    <comment_count>19</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-11-04 06:23:43 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 113305 [details])
&gt; This is definitely getting closer ...
&gt; 
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113305&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:703
&gt; &gt; +        self._add_skipped_tests(port.skipped_tests())
&gt; 
&gt; Can&apos;t we just use port.skipped_layout_tests() here and not have to add a separate function?

In the chromium port the skipped_layout_tests() use a TestExpectation object so it fall in infinite recursive loop

&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:836
&gt; &gt; +                _log.warn(&apos;The %s test from test_expectations.txt in line %d is also in Skipped!&apos; %
&gt; 
&gt; As per earlier discussion, I think this should probably be an error, not a warning.
&gt; 

Ok, then it will be an error.

&gt; Also, can you add some unit tests to the test_expectations_unittest.py class?

Sure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496589</commentid>
    <comment_count>20</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-11-04 17:34:52 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; &gt; &gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:703
&gt; &gt; &gt; +        self._add_skipped_tests(port.skipped_tests())
&gt; &gt; 
&gt; &gt; Can&apos;t we just use port.skipped_layout_tests() here and not have to add a separate function?
&gt; 
&gt; In the chromium port the skipped_layout_tests() use a TestExpectation object so it fall in infinite recursive loop
&gt; 

Oh yeah, that call returns the list of skipped tests including the tests skipped in test_expectations.txt; that call shouldn&apos;t be on the port object at all. Oh well, that&apos;s a separate bug. Your solution is fine for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498700</commentid>
    <comment_count>21</comment_count>
      <attachid>114218</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-11-09 00:34:08 -0800</bug_when>
    <thetext>Created attachment 114218
proposed fix with unit test

I made a unit test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506826</commentid>
    <comment_count>22</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-21 02:58:29 -0800</bug_when>
    <thetext>ping for review. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507137</commentid>
    <comment_count>23</comment_count>
      <attachid>114218</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-11-21 12:44:17 -0800</bug_when>
    <thetext>Comment on attachment 114218
proposed fix with unit test

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

Sorry, I&apos;m not sure how this fell off of my plate.

Almost there, I would just simplify the unit test a bit.

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:269
&gt; +        self.assertEqual(logs_string, &apos;The fast/foo/bar.html test from test_expectations.txt in line 2 is also in Skipped!\n&apos;)

I don&apos;t usually test for exact string matches on the error messages; that makes the tests fragile. I would just test that parsing the expectations raises a ParseError, as in test_overrides__duplicate on line 226.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509372</commentid>
    <comment_count>24</comment_count>
      <attachid>116659</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-11-26 10:06:54 -0800</bug_when>
    <thetext>Created attachment 116659
proposed fix

Hi
I simplified the unit test a little,
but it doesn&apos;t throw any exception just log it as error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510254</commentid>
    <comment_count>25</comment_count>
      <attachid>116659</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-11-28 15:13:18 -0800</bug_when>
    <thetext>Comment on attachment 116659
proposed fix

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

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:837
&gt; +                            (test.name, index))

This needs to add an error to a list of errors, not call _log.error(); that way it can be included in the total list of errors during the call to _report_errors. That&apos;s why a ParseError() isn&apos;t getting raised. 

Unfortunately, the refactoring of this class has made adding an error harder than it used to be, as there isn&apos;t a global list-of-errors object. maybe create a self.skipped_tests_errors, and check that in self._report_errors()?

Also, if these are truly errors (and not warnings), you should probably not be adding them to the model.

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:263
&gt; +        self._exp = TestExpectations(port, &apos;failures/expected/text.html\n&apos;, &apos;BUGX : failures/expected/text.html = text\n&apos;, None)

This should be raising a ParseError; see comments above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510776</commentid>
    <comment_count>26</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-11-29 08:07:46 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 116659 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=116659&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:837
&gt; &gt; +                            (test.name, index))
&gt; 
&gt; This needs to add an error to a list of errors, not call _log.error(); that way it can be included in the total list of errors during the call to _report_errors. That&apos;s why a ParseError() isn&apos;t getting raised. 
&gt; 
&gt; Unfortunately, the refactoring of this class has made adding an error harder than it used to be, as there isn&apos;t a global list-of-errors object. maybe create a self.skipped_tests_errors, and check that in self._report_errors()?
&gt; 

Ok, I see

&gt; Also, if these are truly errors (and not warnings), you should probably not be adding them to the model.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:263
&gt; &gt; +        self._exp = TestExpectations(port, &apos;failures/expected/text.html\n&apos;, &apos;BUGX : failures/expected/text.html = text\n&apos;, None)
&gt; 
&gt; This should be raising a ParseError; see comments above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513565</commentid>
    <comment_count>27</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-12-01 23:47:09 -0800</bug_when>
    <thetext>One more accident why we really need this change as soon as possible:
http://trac.webkit.org/changeset/101745

Kristóf, could you speed up fixing this bug, please? Maybe it would be more effective if you guys continue reviewing/fixing this patch with IRC talking instead of waiting days for each other. Thanks your work in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513935</commentid>
    <comment_count>28</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-12-02 11:01:19 -0800</bug_when>
    <thetext>I can see if I can post a patch in the next day or two that addresses my last concerns, if Kristóf doesn&apos;t get to it first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513986</commentid>
    <comment_count>29</comment_count>
      <attachid>117663</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-12-02 11:45:00 -0800</bug_when>
    <thetext>Created attachment 117663
proposed fix

Now it raise a ParseError if it is run in lint mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514203</commentid>
    <comment_count>30</comment_count>
      <attachid>117663</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-12-02 14:58:22 -0800</bug_when>
    <thetext>Comment on attachment 117663
proposed fix

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

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:791
&gt; +

Minor nit ... _is_lint_mode makes warnings errors. If you want these to fail only in lint mode, I&apos;d just change these to _skipped_tests_warnings and append them to the warnings list. CQ-&apos;ing just for that.

There is actually a separate discussion about making the expectations errors less fatal going on in https://bugs.webkit.org/show_bug.cgi?id=73603 ; fixing that bug might&apos;ve made this bug unnecessary, but I think there&apos;s good work in this patch to clean up our handling of skipped files regardless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514974</commentid>
    <comment_count>31</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-12-05 01:39:13 -0800</bug_when>
    <thetext>I changed the name of the list

patch landed in: http://trac.webkit.org/changeset/101979</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110811</attachid>
            <date>2011-10-13 01:45:49 -0700</date>
            <delta_ts>2011-10-19 07:06:55 -0700</delta_ts>
            <desc>draft patch</desc>
            <filename>wp.patch</filename>
            <type>text/plain</type>
            <size>1734</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
a2l0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQu
cHkKaW5kZXggNDRlODVhZS4uZGUxYzE4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKQEAgLTMzNyw4ICszMzcsMjcgQEAgY2xh
c3MgV2ViS2l0UG9ydChQb3J0KToKICAgICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMo
ZXhwZWN0YXRpb25zX3BhdGgpOgogICAgICAgICAgICAgX2xvZy5kZWJ1ZygiVXNpbmcgdGVzdF9l
eHBlY3RhdGlvbnMudHh0OiAlcyIgJSBleHBlY3RhdGlvbnNfcGF0aCkKICAgICAgICAgICAgIGV4
cGVjdGF0aW9ucyA9IHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUoZXhwZWN0YXRpb25z
X3BhdGgpICsgZXhwZWN0YXRpb25zCisgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX2RlZHVw
bGljYXRlZF9za2lwcGVkX2V4cGVjdGF0aW9ucyhleHBlY3RhdGlvbnMpCiAgICAgICAgIHJldHVy
biBleHBlY3RhdGlvbnMKIAorICAgIGRlZiBfZGVkdXBsaWNhdGVkX3NraXBwZWRfZXhwZWN0YXRp
b25zKHNlbGYsIGV4cGVjdGF0aW9ucyk6CisgICAgICAgIHJlc3VsdCA9ICcnCisgICAgICAgIHRl
c3RzID0ge30KKyAgICAgICAgaW5kZXggPSAwOworICAgICAgICBmb3IgbGluZSBpbiBleHBlY3Rh
dGlvbnMuc3BsaXQoJ1xuJyk6CisgICAgICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaCgnKD9QPE1P
RElGSUVSPi4qKTpccyooP1A8VEVTVD5bXlxzXSopXHMqPSg/UDxFWFBFQ1RBVElPTj5bXi9dKiko
KC8vKSg/UDxDT01NRU5UPi4qKSk/JywgbGluZSkKKyAgICAgICAgICAgIGlmIG1hdGNoIGFuZCBt
YXRjaC5ncm91cCgnVEVTVCcpIG5vdCBpbiB0ZXN0cy5rZXlzKCk6CisgICAgICAgICAgICAgICAg
dGVzdHNbbWF0Y2guZ3JvdXAoJ1RFU1QnKV0gPSBpbmRleAorICAgICAgICAgICAgZWxpZiBtYXRj
aCBhbmQgJ1NLSVAnIGluIG1hdGNoLmdyb3VwKCdNT0RJRklFUicpOgorICAgICAgICAgICAgICAg
IF9sb2cud2FybignVGhlICVzIHRlc3QgZnJvbSB0ZXN0X2V4cGVjdGF0aW9ucy50eHQgaW4gbGlu
ZSAlZCBpcyBhbHNvIGluIFNraXBwZWQhJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgKG1h
dGNoLmdyb3VwKCdURVNUJyksdGVzdHNbbWF0Y2guZ3JvdXAoJ1RFU1QnKV0gKyAxKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0c1ttYXRjaC5ncm91cCgnVEVTVCcpXSA9IGluZGV4CisgICAgICAgICAg
ICBpbmRleCArPSAxCisgICAgICAgIHRlc3RzX2xpc3QgPSB0ZXN0cy52YWx1ZXMoKS5zb3J0KCkK
KyAgICAgICAgZm9yIGxpbmUgaW4gc29ydGVkKHRlc3RzLnZhbHVlcygpKToKKyAgICAgICAgICAg
IHJlc3VsdCArPSAoZXhwZWN0YXRpb25zLnNwbGl0KCdcbicpW2xpbmVdKSArICdcbicKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdAorCiAgICAgZGVmIF9za2lwcGVkX2xpc3RfYXNfZXhwZWN0YXRpb25z
KHNlbGYpOgogICAgICAgICAjIEVhY2ggU2tpcHBlZCBmaWxlIGNvbnRhaW5zIGEgbGlzdCBvZiBm
aWxlcwogICAgICAgICAjIG9yIGRpcmVjdG9yaWVzIHRvIGJlIHNraXBwZWQgZHVyaW5nIHRoZSB0
ZXN0IHJ1bi4gVGhlIHRvdGFsIGxpc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111611</attachid>
            <date>2011-10-19 07:06:55 -0700</date>
            <delta_ts>2011-10-27 06:44:12 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>19.patch</filename>
            <type>text/plain</type>
            <size>2213</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzODU0
MDhjLi43MDhiOWJhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMTAtMTkgIEtyaXN0w7NmIEtvc3p0ecOzICA8
a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIE5SV1Qgc2hvdWxkIGhhbmRsZSBk
dXBsaWNhdGVkIGV4cGVjdGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njk3NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0
LnB5OgorCiAyMDExLTEwLTE4ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICB3YXRjaGxpc3Q6IFNob3VsZCB0cnkgdG8gcnVuIGlmIGl0IGNhbiBhbmQgbm90IHRo
cm93IG9uIG1pc3Rha2VzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC93ZWJraXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3dlYmtpdC5weQppbmRleCAzNDk4MDdmLi5lMzU4OTU4IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQpAQCAtMzM2
LDggKzMzNiwyMyBAQCBjbGFzcyBXZWJLaXRQb3J0KFBvcnQpOgogICAgICAgICBpZiBzZWxmLl9m
aWxlc3lzdGVtLmV4aXN0cyhleHBlY3RhdGlvbnNfcGF0aCk6CiAgICAgICAgICAgICBfbG9nLmRl
YnVnKCJVc2luZyB0ZXN0X2V4cGVjdGF0aW9ucy50eHQ6ICVzIiAlIGV4cGVjdGF0aW9uc19wYXRo
KQogICAgICAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fZmlsZXN5c3RlbS5yZWFkX3RleHRf
ZmlsZShleHBlY3RhdGlvbnNfcGF0aCkgKyBleHBlY3RhdGlvbnMKKyAgICAgICAgZXhwZWN0YXRp
b25zID0gc2VsZi5fZGVkdXBsaWNhdGVkX3NraXBwZWRfZXhwZWN0YXRpb25zKGV4cGVjdGF0aW9u
cykKICAgICAgICAgcmV0dXJuIGV4cGVjdGF0aW9ucwogCisgICAgZGVmIF9kZWR1cGxpY2F0ZWRf
c2tpcHBlZF9leHBlY3RhdGlvbnMoc2VsZiwgZXhwZWN0YXRpb25zKToKKyAgICAgICAgdGVzdHMg
PSB7fQorICAgICAgICBleHBlY3RhdGlvbnNfbGlzdCA9IGV4cGVjdGF0aW9ucy5zcGxpdCgnXG4n
KQorICAgICAgICBmb3IgaW5kZXgsIGxpbmUgaW4gZW51bWVyYXRlKGV4cGVjdGF0aW9uc19saXN0
KToKKyAgICAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKCcoP1A8TU9ESUZJRVI+LiopOlxzKig/
UDxURVNUPlteXHNdKilccyo9KD9QPEVYUEVDVEFUSU9OPlteL10qKSgoLy8pKD9QPENPTU1FTlQ+
LiopKT8nLCBsaW5lKQorICAgICAgICAgICAgaWYgbWF0Y2ggYW5kIG1hdGNoLmdyb3VwKCdURVNU
Jykgbm90IGluIHRlc3RzLmtleXMoKToKKyAgICAgICAgICAgICAgICB0ZXN0c1ttYXRjaC5ncm91
cCgnVEVTVCcpXSA9IGluZGV4CisgICAgICAgICAgICBlbGlmIG1hdGNoIGFuZCAnU0tJUCcgaW4g
bWF0Y2guZ3JvdXAoJ01PRElGSUVSJyk6CisgICAgICAgICAgICAgICAgX2xvZy53YXJuKCdUaGUg
JXMgdGVzdCBmcm9tIHRlc3RfZXhwZWN0YXRpb25zLnR4dCBpbiBsaW5lICVkIGlzIGFsc28gaW4g
U2tpcHBlZCEnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2guZ3JvdXAoJ1RFU1Qn
KSwgdGVzdHNbbWF0Y2guZ3JvdXAoJ1RFU1QnKV0gKyAxKSkKKyAgICAgICAgICAgICAgICB0ZXN0
c1ttYXRjaC5ncm91cCgnVEVTVCcpXSA9IGluZGV4CisgICAgICAgIHJlc3VsdF9saXN0ID0gW2V4
cGVjdGF0aW9uc19saXN0W2xpbmVdIGZvciBsaW5lIGluIHNvcnRlZCh0ZXN0cy52YWx1ZXMoKSld
CisgICAgICAgIHJldHVybiAnXG4nLmpvaW4ocmVzdWx0X2xpc3QpCisKICAgICBkZWYgX3NraXBw
ZWRfbGlzdF9hc19leHBlY3RhdGlvbnMoc2VsZik6CiAgICAgICAgICMgRWFjaCBTa2lwcGVkIGZp
bGUgY29udGFpbnMgYSBsaXN0IG9mIGZpbGVzCiAgICAgICAgICMgb3IgZGlyZWN0b3JpZXMgdG8g
YmUgc2tpcHBlZCBkdXJpbmcgdGhlIHRlc3QgcnVuLiBUaGUgdG90YWwgbGlzdAo=
</data>
<flag name="review"
          id="109480"
          type_id="1"
          status="-"
          setter="dpranke"
    />
    <flag name="commit-queue"
          id="109481"
          type_id="3"
          status="-"
          setter="dpranke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112675</attachid>
            <date>2011-10-27 06:44:12 -0700</date>
            <delta_ts>2011-11-02 02:51:58 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>27.patch</filename>
            <type>text/plain</type>
            <size>3984</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNzli
NWYzLi5hNzIzMTgzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMjcgIEtyaXN0w7NmIEtvc3p0ecOzICA8
a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIE5SV1Qgc2hvdWxkIGhhbmRsZSBk
dXBsaWNhdGVkIGV4cGVjdGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njk3NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3dlYmtpdC5weToKKwogMjAxMS0xMC0yNyAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90
dGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEFsbG93IERSVCB0byBiZSBi
dWlsdCB3aXRob3V0IG5vdGlmaWNhdGlvbnMgZW5hYmxlZC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0
aW9ucy5weQppbmRleCA3NWJmNjg4Li5hNDI1ZDdjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRp
b25zLnB5CkBAIC02OTksNiArNjk5LDcgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9ucyhvYmplY3Qp
OgogCiAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9ucyA9IFRlc3RFeHBlY3RhdGlvblBhcnNlci50
b2tlbml6ZV9saXN0KGV4cGVjdGF0aW9ucykKICAgICAgICAgc2VsZi5fYWRkX2V4cGVjdGF0aW9u
cyhzZWxmLl9leHBlY3RhdGlvbnMsIG92ZXJyaWRlc19hbGxvd2VkPUZhbHNlKQorICAgICAgICBz
ZWxmLl9hZGRfc2tpcHBlZF90ZXN0cyhwb3J0LnNraXBwZWRfbGF5b3V0X3Rlc3RzKCkpCiAKICAg
ICAgICAgaWYgb3ZlcnJpZGVzOgogICAgICAgICAgICAgb3ZlcnJpZGVzX2V4cGVjdGF0aW9ucyA9
IFRlc3RFeHBlY3RhdGlvblBhcnNlci50b2tlbml6ZV9saXN0KG92ZXJyaWRlcykKQEAgLTgyMSwz
ICs4MjIsMTQgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9ucyhvYmplY3QpOgogICAgICAgICAgICAg
c2VsZi5fcGFyc2VyLnBhcnNlKGV4cGVjdGF0aW9uX2xpbmUpCiAgICAgICAgICAgICBpZiBzZWxm
Ll90ZXN0X2NvbmZpZyBpbiBleHBlY3RhdGlvbl9saW5lLm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25z
OgogICAgICAgICAgICAgICAgIHNlbGYuX21vZGVsLmFkZF9leHBlY3RhdGlvbl9saW5lKGV4cGVj
dGF0aW9uX2xpbmUsIG92ZXJyaWRlc19hbGxvd2VkKQorCisgICAgZGVmIF9hZGRfc2tpcHBlZF90
ZXN0cyhzZWxmLCB0ZXN0c190b19za2lwKToKKyAgICAgICAgZm9yIGluZGV4LCB0ZXN0IGluIGVu
dW1lcmF0ZShzZWxmLl9leHBlY3RhdGlvbnMsIHN0YXJ0PTEpOgorICAgICAgICAgICAgaWYgdGVz
dC5uYW1lIGluIHRlc3RzX3RvX3NraXA6CisgICAgICAgICAgICAgICAgX2xvZy53YXJuKCdUaGUg
JXMgdGVzdCBmcm9tIHRlc3RfZXhwZWN0YXRpb25zLnR4dCBpbiBsaW5lICVkIGlzIGFsc28gaW4g
U2tpcHBlZCEnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGVzdC5uYW1lLCBpbmRl
eCkpCisKKyAgICAgICAgc2tpcHBlZF90ZXN0cyA9ICdcbicuam9pbihtYXAobGFtYmRhIHRlc3Rf
cGF0aDogJ0JVR19TS0lQUEVEIFNLSVAgOiAlcyA9IEZBSUwnICUgdGVzdF9wYXRoLCB0ZXN0c190
b19za2lwKSkKKyAgICAgICAgZm9yIHRlc3QgaW4gVGVzdEV4cGVjdGF0aW9uUGFyc2VyLnRva2Vu
aXplX2xpc3Qoc2tpcHBlZF90ZXN0cyk6CisgICAgICAgICAgICBzZWxmLl9wYXJzZXIucGFyc2Uo
dGVzdCkKKyAgICAgICAgICAgIHNlbGYuX21vZGVsLmFkZF9leHBlY3RhdGlvbl9saW5lKHRlc3Qs
IG92ZXJyaWRlc19hbGxvd2VkPVRydWUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CmluZGV4IDI0OGI0MzAuLjNiY2RlODMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5
CkBAIC0zNDQsMjYgKzM0NCwxMyBAQCBjbGFzcyBXZWJLaXRQb3J0KFBvcnQpOgogCiAgICAgZGVm
IHRlc3RfZXhwZWN0YXRpb25zKHNlbGYpOgogICAgICAgICAjIFRoaXMgYWxsb3dzIHBvcnRzIHRv
IHVzZSBhIGNvbWJpbmF0aW9uIG9mIHRlc3RfZXhwZWN0YXRpb25zLnR4dCBmaWxlcyBhbmQgU2tp
cHBlZCBsaXN0cy4KLSAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fc2tpcHBlZF9saXN0X2Fz
X2V4cGVjdGF0aW9ucygpCisgICAgICAgIGV4cGVjdGF0aW9ucyA9ICcnCiAgICAgICAgIGV4cGVj
dGF0aW9uc19wYXRoID0gc2VsZi5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKQogICAg
ICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhleHBlY3RhdGlvbnNfcGF0aCk6CiAgICAg
ICAgICAgICBfbG9nLmRlYnVnKCJVc2luZyB0ZXN0X2V4cGVjdGF0aW9ucy50eHQ6ICVzIiAlIGV4
cGVjdGF0aW9uc19wYXRoKQotICAgICAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fZmlsZXN5
c3RlbS5yZWFkX3RleHRfZmlsZShleHBlY3RhdGlvbnNfcGF0aCkgKyBleHBlY3RhdGlvbnMKKyAg
ICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUo
ZXhwZWN0YXRpb25zX3BhdGgpCiAgICAgICAgIHJldHVybiBleHBlY3RhdGlvbnMKIAotICAgIGRl
ZiBfc2tpcHBlZF9saXN0X2FzX2V4cGVjdGF0aW9ucyhzZWxmKToKLSAgICAgICAgIyBFYWNoIFNr
aXBwZWQgZmlsZSBjb250YWlucyBhIGxpc3Qgb2YgZmlsZXMKLSAgICAgICAgIyBvciBkaXJlY3Rv
cmllcyB0byBiZSBza2lwcGVkIGR1cmluZyB0aGUgdGVzdCBydW4uIFRoZSB0b3RhbCBsaXN0Ci0g
ICAgICAgICMgb2YgdGVzdHMgdG8gc2tpcHBlZCBpcyBnaXZlbiBieSB0aGUgY29udGVudHMgb2Yg
dGhlIGdlbmVyaWMKLSAgICAgICAgIyBTa2lwcGVkIGZpbGUgZm91bmQgaW4gcGxhdGZvcm0vWCBw
bHVzIGEgdmVyc2lvbi1zcGVjaWZpYyBmaWxlCi0gICAgICAgICMgZm91bmQgaW4gcGxhdGZvcm0v
WC12ZXJzaW9uLiBEdXBsaWNhdGUgZW50cmllcyBhcmUgYWxsb3dlZC4KLSAgICAgICAgIyBUaGlz
IHJvdXRpbmUgcmVhZHMgdGhvc2UgZmlsZXMgYW5kIHR1cm5zIGNvbnRlbnRzIGludG8gdGhlCi0g
ICAgICAgICMgZm9ybWF0IGV4cGVjdGVkIGJ5IHRlc3RfZXhwZWN0YXRpb25zLgotCi0gICAgICAg
IHRlc3RzX3RvX3NraXAgPSBzZWxmLnNraXBwZWRfbGF5b3V0X3Rlc3RzKCkKLSAgICAgICAgc2tp
cF9saW5lcyA9IG1hcChsYW1iZGEgdGVzdF9wYXRoOiAiQlVHX1NLSVBQRUQgU0tJUCA6ICVzID0g
RkFJTCIgJSB0ZXN0X3BhdGgsIHRlc3RzX3RvX3NraXApCi0gICAgICAgIHJldHVybiAiXG4iLmpv
aW4oc2tpcF9saW5lcykKLQogICAgIGRlZiBza2lwcGVkX2xheW91dF90ZXN0cyhzZWxmKToKICAg
ICAgICAgIyBVc2UgYSBzZXQgdG8gYWxsb3cgZHVwbGljYXRlcwogICAgICAgICB0ZXN0c190b19z
a2lwID0gc2V0KHNlbGYuX2V4cGVjdGF0aW9uc19mcm9tX3NraXBwZWRfZmlsZXMoKSkK
</data>
<flag name="review"
          id="110787"
          type_id="1"
          status="-"
          setter="kkristof"
    />
    <flag name="commit-queue"
          id="110788"
          type_id="3"
          status="-"
          setter="kkristof"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>113296</attachid>
            <date>2011-11-02 02:51:58 -0700</date>
            <delta_ts>2011-11-02 05:03:41 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>1102.patch</filename>
            <type>text/plain</type>
            <size>6529</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmY2I4
MjJjLi5mMTc5ODU0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTEtMDIgIEtyaXN0w7NmIEtvc3p0ecOzICA8
a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIE5SV1Qgc2hvdWxkIGhhbmRsZSBk
dXBsaWNhdGVkIGV4cGVjdGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njk3NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Jhc2UucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93ZWJraXQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93ZWJraXRfdW5pdHRlc3QucHk6CisKIDIwMTEtMTEtMDEgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICByZXNvbHZlLUNoYW5nZUxvZ3MgLS1oZWxwIHNob3VsZCBi
ZSBmYXN0ZXIuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKaW5kZXggNTNiM2Q3Ny4uODM2
ODc1MSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9k
ZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAtNzAwLDYgKzcwMCw3IEBA
IGNsYXNzIFRlc3RFeHBlY3RhdGlvbnMob2JqZWN0KToKIAogICAgICAgICBzZWxmLl9leHBlY3Rh
dGlvbnMgPSBUZXN0RXhwZWN0YXRpb25QYXJzZXIudG9rZW5pemVfbGlzdChleHBlY3RhdGlvbnMp
CiAgICAgICAgIHNlbGYuX2FkZF9leHBlY3RhdGlvbnMoc2VsZi5fZXhwZWN0YXRpb25zLCBvdmVy
cmlkZXNfYWxsb3dlZD1GYWxzZSkKKyAgICAgICAgc2VsZi5fYWRkX3NraXBwZWRfdGVzdHMocG9y
dC5za2lwcGVkX3Rlc3RzKCkpCiAKICAgICAgICAgaWYgb3ZlcnJpZGVzOgogICAgICAgICAgICAg
b3ZlcnJpZGVzX2V4cGVjdGF0aW9ucyA9IFRlc3RFeHBlY3RhdGlvblBhcnNlci50b2tlbml6ZV9s
aXN0KG92ZXJyaWRlcykKQEAgLTgyNiwzICs4MjcsMTYgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9u
cyhvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5fcGFyc2VyLnBhcnNlKGV4cGVjdGF0aW9uX2xp
bmUpCiAgICAgICAgICAgICBpZiBzZWxmLl90ZXN0X2NvbmZpZyBpbiBleHBlY3RhdGlvbl9saW5l
Lm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25zOgogICAgICAgICAgICAgICAgIHNlbGYuX21vZGVsLmFk
ZF9leHBlY3RhdGlvbl9saW5lKGV4cGVjdGF0aW9uX2xpbmUsIG92ZXJyaWRlc19hbGxvd2VkKQor
CisgICAgZGVmIF9hZGRfc2tpcHBlZF90ZXN0cyhzZWxmLCB0ZXN0c190b19za2lwKToKKyAgICAg
ICAgaWYgbm90IHRlc3RzX3RvX3NraXA6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZm9y
IGluZGV4LCB0ZXN0IGluIGVudW1lcmF0ZShzZWxmLl9leHBlY3RhdGlvbnMsIHN0YXJ0PTEpOgor
ICAgICAgICAgICAgaWYgdGVzdC5uYW1lIGluIHRlc3RzX3RvX3NraXA6CisgICAgICAgICAgICAg
ICAgX2xvZy53YXJuKCdUaGUgJXMgdGVzdCBmcm9tIHRlc3RfZXhwZWN0YXRpb25zLnR4dCBpbiBs
aW5lICVkIGlzIGFsc28gaW4gU2tpcHBlZCEnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAodGVzdC5uYW1lLCBpbmRleCkpCisKKyAgICAgICAgc2tpcHBlZF90ZXN0cyA9ICJcbiIuam9p
bihtYXAobGFtYmRhIHRlc3RfcGF0aDogIkJVR19TS0lQUEVEIFNLSVAgOiAlcyA9IEZBSUwiICUg
dGVzdF9wYXRoLCB0ZXN0c190b19za2lwKSkKKyAgICAgICAgZm9yIHRlc3QgaW4gVGVzdEV4cGVj
dGF0aW9uUGFyc2VyLnRva2VuaXplX2xpc3Qoc2tpcHBlZF90ZXN0cyk6CisgICAgICAgICAgICBz
ZWxmLl9wYXJzZXIucGFyc2UodGVzdCkKKyAgICAgICAgICAgIHNlbGYuX21vZGVsLmFkZF9leHBl
Y3RhdGlvbl9saW5lKHRlc3QsIG92ZXJyaWRlc19hbGxvd2VkPVRydWUpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggMmU0OWE2Ni4u
MjE0NDRiNyAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZS5weQpAQCAtNTQ2LDYgKzU0Niw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICBk
ZWYgc2tpcHBlZF9sYXlvdXRfdGVzdHMoc2VsZik6CiAgICAgICAgIHJldHVybiBbXQogCisgICAg
ZGVmIHNraXBwZWRfdGVzdHMoc2VsZik6CisgICAgICAgIHJldHVybiBbXQorCiAgICAgZGVmIHNr
aXBzX2xheW91dF90ZXN0KHNlbGYsIHRlc3RfbmFtZSk6CiAgICAgICAgICIiIkZpZ3VyZXMgb3V0
IGlmIHRoZSBnaXZlbnQgdGVzdCBpcyBiZWluZyBza2lwcGVkIG9yIG5vdC4KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQppbmRleCAy
NDhiNDMwLi4xNDg1MjgzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3dlYmtpdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3dlYmtpdC5weQpAQCAtMzQ0LDI2ICszNDQsMTMgQEAgY2xhc3MgV2ViS2l0
UG9ydChQb3J0KToKIAogICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAg
IyBUaGlzIGFsbG93cyBwb3J0cyB0byB1c2UgYSBjb21iaW5hdGlvbiBvZiB0ZXN0X2V4cGVjdGF0
aW9ucy50eHQgZmlsZXMgYW5kIFNraXBwZWQgbGlzdHMuCi0gICAgICAgIGV4cGVjdGF0aW9ucyA9
IHNlbGYuX3NraXBwZWRfbGlzdF9hc19leHBlY3RhdGlvbnMoKQorICAgICAgICBleHBlY3RhdGlv
bnMgPSAnJwogICAgICAgICBleHBlY3RhdGlvbnNfcGF0aCA9IHNlbGYucGF0aF90b190ZXN0X2V4
cGVjdGF0aW9uc19maWxlKCkKICAgICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMoZXhw
ZWN0YXRpb25zX3BhdGgpOgogICAgICAgICAgICAgX2xvZy5kZWJ1ZygiVXNpbmcgdGVzdF9leHBl
Y3RhdGlvbnMudHh0OiAlcyIgJSBleHBlY3RhdGlvbnNfcGF0aCkKLSAgICAgICAgICAgIGV4cGVj
dGF0aW9ucyA9IHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUoZXhwZWN0YXRpb25zX3Bh
dGgpICsgZXhwZWN0YXRpb25zCisgICAgICAgICAgICBleHBlY3RhdGlvbnMgPSBzZWxmLl9maWxl
c3lzdGVtLnJlYWRfdGV4dF9maWxlKGV4cGVjdGF0aW9uc19wYXRoKQogICAgICAgICByZXR1cm4g
ZXhwZWN0YXRpb25zCiAKLSAgICBkZWYgX3NraXBwZWRfbGlzdF9hc19leHBlY3RhdGlvbnMoc2Vs
Zik6Ci0gICAgICAgICMgRWFjaCBTa2lwcGVkIGZpbGUgY29udGFpbnMgYSBsaXN0IG9mIGZpbGVz
Ci0gICAgICAgICMgb3IgZGlyZWN0b3JpZXMgdG8gYmUgc2tpcHBlZCBkdXJpbmcgdGhlIHRlc3Qg
cnVuLiBUaGUgdG90YWwgbGlzdAotICAgICAgICAjIG9mIHRlc3RzIHRvIHNraXBwZWQgaXMgZ2l2
ZW4gYnkgdGhlIGNvbnRlbnRzIG9mIHRoZSBnZW5lcmljCi0gICAgICAgICMgU2tpcHBlZCBmaWxl
IGZvdW5kIGluIHBsYXRmb3JtL1ggcGx1cyBhIHZlcnNpb24tc3BlY2lmaWMgZmlsZQotICAgICAg
ICAjIGZvdW5kIGluIHBsYXRmb3JtL1gtdmVyc2lvbi4gRHVwbGljYXRlIGVudHJpZXMgYXJlIGFs
bG93ZWQuCi0gICAgICAgICMgVGhpcyByb3V0aW5lIHJlYWRzIHRob3NlIGZpbGVzIGFuZCB0dXJu
cyBjb250ZW50cyBpbnRvIHRoZQotICAgICAgICAjIGZvcm1hdCBleHBlY3RlZCBieSB0ZXN0X2V4
cGVjdGF0aW9ucy4KLQotICAgICAgICB0ZXN0c190b19za2lwID0gc2VsZi5za2lwcGVkX2xheW91
dF90ZXN0cygpCi0gICAgICAgIHNraXBfbGluZXMgPSBtYXAobGFtYmRhIHRlc3RfcGF0aDogIkJV
R19TS0lQUEVEIFNLSVAgOiAlcyA9IEZBSUwiICUgdGVzdF9wYXRoLCB0ZXN0c190b19za2lwKQot
ICAgICAgICByZXR1cm4gIlxuIi5qb2luKHNraXBfbGluZXMpCi0KICAgICBkZWYgc2tpcHBlZF9s
YXlvdXRfdGVzdHMoc2VsZik6CiAgICAgICAgICMgVXNlIGEgc2V0IHRvIGFsbG93IGR1cGxpY2F0
ZXMKICAgICAgICAgdGVzdHNfdG9fc2tpcCA9IHNldChzZWxmLl9leHBlY3RhdGlvbnNfZnJvbV9z
a2lwcGVkX2ZpbGVzKCkpCkBAIC0zNzEsNiArMzU4LDkgQEAgY2xhc3MgV2ViS2l0UG9ydChQb3J0
KToKICAgICAgICAgdGVzdHNfdG9fc2tpcC51cGRhdGUoc2VsZi5fc2tpcHBlZF90ZXN0c19mb3Jf
dW5zdXBwb3J0ZWRfZmVhdHVyZXMoKSkKICAgICAgICAgcmV0dXJuIHRlc3RzX3RvX3NraXAKIAor
ICAgIGRlZiBza2lwcGVkX3Rlc3Qoc2VsZik6CisgICAgICAgIHJldHVybiBza2lwcGVkX2xheW91
dF90ZXN0cworCiAgICAgZGVmIF9idWlsZF9wYXRoKHNlbGYsICpjb21wcyk6CiAgICAgICAgICMg
LS1yb290IGlzIHVzZWQgZm9yIHJ1bm5pbmcgd2l0aCBhIHByZS1idWlsdCByb290IChsaWtlIGZy
b20gYSBuaWdodGx5IHppcCkuCiAgICAgICAgIGJ1aWxkX2RpcmVjdG9yeSA9IHNlbGYuZ2V0X29w
dGlvbigncm9vdCcpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3dlYmtpdF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvd2Via2l0X3VuaXR0ZXN0LnB5CmluZGV4IGIxYjk4NGYuLjU1NzRmMGIg
MTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
a2l0X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvd2Via2l0X3VuaXR0ZXN0LnB5CkBAIC0xMzEsMTggKzEzMSwxNSBAQCBjbGFzcyBXZWJL
aXRQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC5fcGF0aF90b19kcml2ZXIoKSwgIi9mb28vRHVtcFJlbmRlclRyZWUiKQog
CiAgICAgZGVmIHRlc3RfdGVzdF9leHBlY3RhdGlvbnMoc2VsZik6Ci0gICAgICAgICMgQ2hlY2sg
dGhhdCB3ZSByZWFkIGJvdGggdGhlIGV4cGVjdGF0aW9ucyBmaWxlIGFuZCBhbnl0aGluZyBpbiBh
Ci0gICAgICAgICMgU2tpcHBlZCBmaWxlLCBhbmQgdGhhdCB3ZSBpbmNsdWRlIHRoZSBmZWF0dXJl
IGFuZCBwbGF0Zm9ybSBjaGVja3MuCisgICAgICAgICMgQ2hlY2sgdGhhdCB3ZSByZWFkIHRoZSBl
eHBlY3RhdGlvbnMgZmlsZQorICAgICAgICAjIGFuZCB0aGF0IHdlIGluY2x1ZGUgdGhlIGZlYXR1
cmUgYW5kIHBsYXRmb3JtIGNoZWNrcy4KICAgICAgICAgZmlsZXMgPSB7CiAgICAgICAgICAgICAn
L21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdHdlYmtpdHBvcnQvdGVzdF9l
eHBlY3RhdGlvbnMudHh0JzogJ0JVR19URVNURVhQRUNUQVRJT05TIFNLSVAgOiBmYXN0L2h0bWwv
YXJ0aWNsZS1lbGVtZW50Lmh0bWwgPSBGQUlMXG4nLAotICAgICAgICAgICAgJy9tb2NrLWNoZWNr
b3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3R3ZWJraXRwb3J0L1NraXBwZWQnOiAnZmFzdC9o
dG1sL2tleWdlbi5odG1sJywKICAgICAgICAgfQogICAgICAgICBtb2NrX2ZzID0gTW9ja0ZpbGVT
eXN0ZW0oZmlsZXMpCiAgICAgICAgIHBvcnQgPSBUZXN0V2ViS2l0UG9ydChmaWxlc3lzdGVtPW1v
Y2tfZnMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC50ZXN0X2V4cGVjdGF0aW9ucygp
LAotICAgICAgICAiIiJCVUdfVEVTVEVYUEVDVEFUSU9OUyBTS0lQIDogZmFzdC9odG1sL2FydGlj
bGUtZWxlbWVudC5odG1sID0gRkFJTAotQlVHX1NLSVBQRUQgU0tJUCA6IGZhc3QvaHRtbC9rZXln
ZW4uaHRtbCA9IEZBSUwKLUJVR19TS0lQUEVEIFNLSVAgOiBtZWRpYSA9IEZBSUwiIiIpCisgICAg
ICAgICdCVUdfVEVTVEVYUEVDVEFUSU9OUyBTS0lQIDogZmFzdC9odG1sL2FydGljbGUtZWxlbWVu
dC5odG1sID0gRkFJTFxuJykKIAogICAgIGRlZiB0ZXN0X2J1aWxkX2RyaXZlcihzZWxmKToKICAg
ICAgICAgb3V0cHV0ID0gT3V0cHV0Q2FwdHVyZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113305</attachid>
            <date>2011-11-02 05:45:08 -0700</date>
            <delta_ts>2011-11-09 00:34:08 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>1102a.patch</filename>
            <type>text/plain</type>
            <size>6573</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NjBi
ZmFmLi5lYjkzNWUxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTEtMDIgIEtyaXN0w7NmIEtvc3p0ecOzICA8
a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIE5SV1Qgc2hvdWxkIGhhbmRsZSBk
dXBsaWNhdGVkIGV4cGVjdGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njk3NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Jhc2UucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93ZWJraXQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93ZWJraXRfdW5pdHRlc3QucHk6CisKIDIwMTEtMTEtMDIgIFNpbW9uIEhhdXNtYW5uICA8
c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF1bV0syXSBBZGQgc3VwcG9y
dCBmb3IgdG91Y2ggZXZlbnQgdGVzdGluZyB0byBXZWJLaXRUZXN0UnVubmVyCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3Rh
dGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9leHBlY3RhdGlvbnMucHkKaW5kZXggNTNiM2Q3Ny4uODM2ODc1MSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25z
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9ucy5weQpAQCAtNzAwLDYgKzcwMCw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlv
bnMob2JqZWN0KToKIAogICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnMgPSBUZXN0RXhwZWN0YXRp
b25QYXJzZXIudG9rZW5pemVfbGlzdChleHBlY3RhdGlvbnMpCiAgICAgICAgIHNlbGYuX2FkZF9l
eHBlY3RhdGlvbnMoc2VsZi5fZXhwZWN0YXRpb25zLCBvdmVycmlkZXNfYWxsb3dlZD1GYWxzZSkK
KyAgICAgICAgc2VsZi5fYWRkX3NraXBwZWRfdGVzdHMocG9ydC5za2lwcGVkX3Rlc3RzKCkpCiAK
ICAgICAgICAgaWYgb3ZlcnJpZGVzOgogICAgICAgICAgICAgb3ZlcnJpZGVzX2V4cGVjdGF0aW9u
cyA9IFRlc3RFeHBlY3RhdGlvblBhcnNlci50b2tlbml6ZV9saXN0KG92ZXJyaWRlcykKQEAgLTgy
NiwzICs4MjcsMTYgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9ucyhvYmplY3QpOgogICAgICAgICAg
ICAgc2VsZi5fcGFyc2VyLnBhcnNlKGV4cGVjdGF0aW9uX2xpbmUpCiAgICAgICAgICAgICBpZiBz
ZWxmLl90ZXN0X2NvbmZpZyBpbiBleHBlY3RhdGlvbl9saW5lLm1hdGNoaW5nX2NvbmZpZ3VyYXRp
b25zOgogICAgICAgICAgICAgICAgIHNlbGYuX21vZGVsLmFkZF9leHBlY3RhdGlvbl9saW5lKGV4
cGVjdGF0aW9uX2xpbmUsIG92ZXJyaWRlc19hbGxvd2VkKQorCisgICAgZGVmIF9hZGRfc2tpcHBl
ZF90ZXN0cyhzZWxmLCB0ZXN0c190b19za2lwKToKKyAgICAgICAgaWYgbm90IHRlc3RzX3RvX3Nr
aXA6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZm9yIGluZGV4LCB0ZXN0IGluIGVudW1l
cmF0ZShzZWxmLl9leHBlY3RhdGlvbnMsIHN0YXJ0PTEpOgorICAgICAgICAgICAgaWYgdGVzdC5u
YW1lIGluIHRlc3RzX3RvX3NraXA6CisgICAgICAgICAgICAgICAgX2xvZy53YXJuKCdUaGUgJXMg
dGVzdCBmcm9tIHRlc3RfZXhwZWN0YXRpb25zLnR4dCBpbiBsaW5lICVkIGlzIGFsc28gaW4gU2tp
cHBlZCEnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGVzdC5uYW1lLCBpbmRleCkp
CisKKyAgICAgICAgc2tpcHBlZF90ZXN0cyA9ICJcbiIuam9pbihtYXAobGFtYmRhIHRlc3RfcGF0
aDogIkJVR19TS0lQUEVEIFNLSVAgOiAlcyA9IEZBSUwiICUgdGVzdF9wYXRoLCB0ZXN0c190b19z
a2lwKSkKKyAgICAgICAgZm9yIHRlc3QgaW4gVGVzdEV4cGVjdGF0aW9uUGFyc2VyLnRva2VuaXpl
X2xpc3Qoc2tpcHBlZF90ZXN0cyk6CisgICAgICAgICAgICBzZWxmLl9wYXJzZXIucGFyc2UodGVz
dCkKKyAgICAgICAgICAgIHNlbGYuX21vZGVsLmFkZF9leHBlY3RhdGlvbl9saW5lKHRlc3QsIG92
ZXJyaWRlc19hbGxvd2VkPVRydWUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggMmU0OWE2Ni4uMjE0NDRiNyAxMDA3NTUKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpAQCAtNTQ2LDYg
KzU0Niw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICBkZWYgc2tpcHBlZF9sYXlvdXRfdGVz
dHMoc2VsZik6CiAgICAgICAgIHJldHVybiBbXQogCisgICAgZGVmIHNraXBwZWRfdGVzdHMoc2Vs
Zik6CisgICAgICAgIHJldHVybiBbXQorCiAgICAgZGVmIHNraXBzX2xheW91dF90ZXN0KHNlbGYs
IHRlc3RfbmFtZSk6CiAgICAgICAgICIiIkZpZ3VyZXMgb3V0IGlmIHRoZSBnaXZlbnQgdGVzdCBp
cyBiZWluZyBza2lwcGVkIG9yIG5vdC4KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQppbmRleCAyNDhiNDMwLi40MDFmZDNiIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5w
eQpAQCAtMzQ0LDI2ICszNDQsMTMgQEAgY2xhc3MgV2ViS2l0UG9ydChQb3J0KToKIAogICAgIGRl
ZiB0ZXN0X2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgIyBUaGlzIGFsbG93cyBwb3J0cyB0
byB1c2UgYSBjb21iaW5hdGlvbiBvZiB0ZXN0X2V4cGVjdGF0aW9ucy50eHQgZmlsZXMgYW5kIFNr
aXBwZWQgbGlzdHMuCi0gICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX3NraXBwZWRfbGlzdF9h
c19leHBlY3RhdGlvbnMoKQorICAgICAgICBleHBlY3RhdGlvbnMgPSAnJwogICAgICAgICBleHBl
Y3RhdGlvbnNfcGF0aCA9IHNlbGYucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkKICAg
ICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMoZXhwZWN0YXRpb25zX3BhdGgpOgogICAg
ICAgICAgICAgX2xvZy5kZWJ1ZygiVXNpbmcgdGVzdF9leHBlY3RhdGlvbnMudHh0OiAlcyIgJSBl
eHBlY3RhdGlvbnNfcGF0aCkKLSAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX2ZpbGVz
eXN0ZW0ucmVhZF90ZXh0X2ZpbGUoZXhwZWN0YXRpb25zX3BhdGgpICsgZXhwZWN0YXRpb25zCisg
ICAgICAgICAgICBleHBlY3RhdGlvbnMgPSBzZWxmLl9maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxl
KGV4cGVjdGF0aW9uc19wYXRoKQogICAgICAgICByZXR1cm4gZXhwZWN0YXRpb25zCiAKLSAgICBk
ZWYgX3NraXBwZWRfbGlzdF9hc19leHBlY3RhdGlvbnMoc2VsZik6Ci0gICAgICAgICMgRWFjaCBT
a2lwcGVkIGZpbGUgY29udGFpbnMgYSBsaXN0IG9mIGZpbGVzCi0gICAgICAgICMgb3IgZGlyZWN0
b3JpZXMgdG8gYmUgc2tpcHBlZCBkdXJpbmcgdGhlIHRlc3QgcnVuLiBUaGUgdG90YWwgbGlzdAot
ICAgICAgICAjIG9mIHRlc3RzIHRvIHNraXBwZWQgaXMgZ2l2ZW4gYnkgdGhlIGNvbnRlbnRzIG9m
IHRoZSBnZW5lcmljCi0gICAgICAgICMgU2tpcHBlZCBmaWxlIGZvdW5kIGluIHBsYXRmb3JtL1gg
cGx1cyBhIHZlcnNpb24tc3BlY2lmaWMgZmlsZQotICAgICAgICAjIGZvdW5kIGluIHBsYXRmb3Jt
L1gtdmVyc2lvbi4gRHVwbGljYXRlIGVudHJpZXMgYXJlIGFsbG93ZWQuCi0gICAgICAgICMgVGhp
cyByb3V0aW5lIHJlYWRzIHRob3NlIGZpbGVzIGFuZCB0dXJucyBjb250ZW50cyBpbnRvIHRoZQot
ICAgICAgICAjIGZvcm1hdCBleHBlY3RlZCBieSB0ZXN0X2V4cGVjdGF0aW9ucy4KLQotICAgICAg
ICB0ZXN0c190b19za2lwID0gc2VsZi5za2lwcGVkX2xheW91dF90ZXN0cygpCi0gICAgICAgIHNr
aXBfbGluZXMgPSBtYXAobGFtYmRhIHRlc3RfcGF0aDogIkJVR19TS0lQUEVEIFNLSVAgOiAlcyA9
IEZBSUwiICUgdGVzdF9wYXRoLCB0ZXN0c190b19za2lwKQotICAgICAgICByZXR1cm4gIlxuIi5q
b2luKHNraXBfbGluZXMpCi0KICAgICBkZWYgc2tpcHBlZF9sYXlvdXRfdGVzdHMoc2VsZik6CiAg
ICAgICAgICMgVXNlIGEgc2V0IHRvIGFsbG93IGR1cGxpY2F0ZXMKICAgICAgICAgdGVzdHNfdG9f
c2tpcCA9IHNldChzZWxmLl9leHBlY3RhdGlvbnNfZnJvbV9za2lwcGVkX2ZpbGVzKCkpCkBAIC0z
NzEsNiArMzU4LDkgQEAgY2xhc3MgV2ViS2l0UG9ydChQb3J0KToKICAgICAgICAgdGVzdHNfdG9f
c2tpcC51cGRhdGUoc2VsZi5fc2tpcHBlZF90ZXN0c19mb3JfdW5zdXBwb3J0ZWRfZmVhdHVyZXMo
KSkKICAgICAgICAgcmV0dXJuIHRlc3RzX3RvX3NraXAKIAorICAgIGRlZiBza2lwcGVkX3Rlc3Rz
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5za2lwcGVkX2xheW91dF90ZXN0cygpCisKICAg
ICBkZWYgX2J1aWxkX3BhdGgoc2VsZiwgKmNvbXBzKToKICAgICAgICAgIyAtLXJvb3QgaXMgdXNl
ZCBmb3IgcnVubmluZyB3aXRoIGEgcHJlLWJ1aWx0IHJvb3QgKGxpa2UgZnJvbSBhIG5pZ2h0bHkg
emlwKS4KICAgICAgICAgYnVpbGRfZGlyZWN0b3J5ID0gc2VsZi5nZXRfb3B0aW9uKCdyb290JykK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
a2l0X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC93ZWJraXRfdW5pdHRlc3QucHkKaW5kZXggYjFiOTg0Zi4uNTU3NGYwYiAxMDA3NTUKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXRfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXRf
dW5pdHRlc3QucHkKQEAgLTEzMSwxOCArMTMxLDE1IEBAIGNsYXNzIFdlYktpdFBvcnRUZXN0KHBv
cnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0
Ll9wYXRoX3RvX2RyaXZlcigpLCAiL2Zvby9EdW1wUmVuZGVyVHJlZSIpCiAKICAgICBkZWYgdGVz
dF90ZXN0X2V4cGVjdGF0aW9ucyhzZWxmKToKLSAgICAgICAgIyBDaGVjayB0aGF0IHdlIHJlYWQg
Ym90aCB0aGUgZXhwZWN0YXRpb25zIGZpbGUgYW5kIGFueXRoaW5nIGluIGEKLSAgICAgICAgIyBT
a2lwcGVkIGZpbGUsIGFuZCB0aGF0IHdlIGluY2x1ZGUgdGhlIGZlYXR1cmUgYW5kIHBsYXRmb3Jt
IGNoZWNrcy4KKyAgICAgICAgIyBDaGVjayB0aGF0IHdlIHJlYWQgdGhlIGV4cGVjdGF0aW9ucyBm
aWxlCisgICAgICAgICMgYW5kIHRoYXQgd2UgaW5jbHVkZSB0aGUgZmVhdHVyZSBhbmQgcGxhdGZv
cm0gY2hlY2tzLgogICAgICAgICBmaWxlcyA9IHsKICAgICAgICAgICAgICcvbW9jay1jaGVja291
dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0d2Via2l0cG9ydC90ZXN0X2V4cGVjdGF0aW9ucy50
eHQnOiAnQlVHX1RFU1RFWFBFQ1RBVElPTlMgU0tJUCA6IGZhc3QvaHRtbC9hcnRpY2xlLWVsZW1l
bnQuaHRtbCA9IEZBSUxcbicsCi0gICAgICAgICAgICAnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vdGVzdHdlYmtpdHBvcnQvU2tpcHBlZCc6ICdmYXN0L2h0bWwva2V5Z2VuLmh0
bWwnLAogICAgICAgICB9CiAgICAgICAgIG1vY2tfZnMgPSBNb2NrRmlsZVN5c3RlbShmaWxlcykK
ICAgICAgICAgcG9ydCA9IFRlc3RXZWJLaXRQb3J0KGZpbGVzeXN0ZW09bW9ja19mcykKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnRlc3RfZXhwZWN0YXRpb25zKCksCi0gICAgICAgICIi
IkJVR19URVNURVhQRUNUQVRJT05TIFNLSVAgOiBmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0
bWwgPSBGQUlMCi1CVUdfU0tJUFBFRCBTS0lQIDogZmFzdC9odG1sL2tleWdlbi5odG1sID0gRkFJ
TAotQlVHX1NLSVBQRUQgU0tJUCA6IG1lZGlhID0gRkFJTCIiIikKKyAgICAgICAgJ0JVR19URVNU
RVhQRUNUQVRJT05TIFNLSVAgOiBmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwgPSBGQUlM
XG4nKQogCiAgICAgZGVmIHRlc3RfYnVpbGRfZHJpdmVyKHNlbGYpOgogICAgICAgICBvdXRwdXQg
PSBPdXRwdXRDYXB0dXJlKCkK
</data>
<flag name="review"
          id="111627"
          type_id="1"
          status="-"
          setter="dpranke"
    />
    <flag name="commit-queue"
          id="111628"
          type_id="3"
          status="-"
          setter="dpranke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114218</attachid>
            <date>2011-11-09 00:34:08 -0800</date>
            <delta_ts>2011-11-26 10:06:54 -0800</delta_ts>
            <desc>proposed fix with unit test</desc>
            <filename>1109.patch</filename>
            <type>text/plain</type>
            <size>8869</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxOWZm
YmU2Li5hYzk3ODQzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMDkgIEtyaXN0w7NmIEtvc3p0ecOzICA8
a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIE5SV1Qgc2hvdWxkIGhhbmRsZSBk
dXBsaWNhdGVkIGV4cGVjdGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njk3NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0X3VuaXR0ZXN0LnB5OgorCiAyMDExLTEx
LTA4ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbTlJXVF0g
TWFrZSBzaW5nbGVfdGVzdF9ydW5uZXIgYXdhcmUgb2YgcmVmZXJlbmNlIGZpbGVuYW1lIG9mIHRl
c3RfaW5wdXQuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKaW5kZXggNTNiM2Q3Ny4uM2Fi
ZTljMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9k
ZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAtNzAwLDYgKzcwMCw3IEBA
IGNsYXNzIFRlc3RFeHBlY3RhdGlvbnMob2JqZWN0KToKIAogICAgICAgICBzZWxmLl9leHBlY3Rh
dGlvbnMgPSBUZXN0RXhwZWN0YXRpb25QYXJzZXIudG9rZW5pemVfbGlzdChleHBlY3RhdGlvbnMp
CiAgICAgICAgIHNlbGYuX2FkZF9leHBlY3RhdGlvbnMoc2VsZi5fZXhwZWN0YXRpb25zLCBvdmVy
cmlkZXNfYWxsb3dlZD1GYWxzZSkKKyAgICAgICAgc2VsZi5fYWRkX3NraXBwZWRfdGVzdHMocG9y
dC5za2lwcGVkX3Rlc3RzKCkpCiAKICAgICAgICAgaWYgb3ZlcnJpZGVzOgogICAgICAgICAgICAg
b3ZlcnJpZGVzX2V4cGVjdGF0aW9ucyA9IFRlc3RFeHBlY3RhdGlvblBhcnNlci50b2tlbml6ZV9s
aXN0KG92ZXJyaWRlcykKQEAgLTgyNiwzICs4MjcsMTYgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9u
cyhvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5fcGFyc2VyLnBhcnNlKGV4cGVjdGF0aW9uX2xp
bmUpCiAgICAgICAgICAgICBpZiBzZWxmLl90ZXN0X2NvbmZpZyBpbiBleHBlY3RhdGlvbl9saW5l
Lm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25zOgogICAgICAgICAgICAgICAgIHNlbGYuX21vZGVsLmFk
ZF9leHBlY3RhdGlvbl9saW5lKGV4cGVjdGF0aW9uX2xpbmUsIG92ZXJyaWRlc19hbGxvd2VkKQor
CisgICAgZGVmIF9hZGRfc2tpcHBlZF90ZXN0cyhzZWxmLCB0ZXN0c190b19za2lwKToKKyAgICAg
ICAgaWYgbm90IHRlc3RzX3RvX3NraXA6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZm9y
IGluZGV4LCB0ZXN0IGluIGVudW1lcmF0ZShzZWxmLl9leHBlY3RhdGlvbnMsIHN0YXJ0PTEpOgor
ICAgICAgICAgICAgaWYgdGVzdC5uYW1lIGFuZCB0ZXN0Lm5hbWUgaW4gdGVzdHNfdG9fc2tpcDoK
KyAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCdUaGUgJXMgdGVzdCBmcm9tIHRlc3RfZXhwZWN0
YXRpb25zLnR4dCBpbiBsaW5lICVkIGlzIGFsc28gaW4gU2tpcHBlZCEnICUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAodGVzdC5uYW1lLCBpbmRleCkpCisKKyAgICAgICAgc2tpcHBlZF90
ZXN0cyA9ICJcbiIuam9pbihtYXAobGFtYmRhIHRlc3RfcGF0aDogIkJVR19TS0lQUEVEIFNLSVAg
OiAlcyA9IEZBSUwiICUgdGVzdF9wYXRoLCB0ZXN0c190b19za2lwKSkKKyAgICAgICAgZm9yIHRl
c3QgaW4gVGVzdEV4cGVjdGF0aW9uUGFyc2VyLnRva2VuaXplX2xpc3Qoc2tpcHBlZF90ZXN0cyk6
CisgICAgICAgICAgICBzZWxmLl9wYXJzZXIucGFyc2UodGVzdCkKKyAgICAgICAgICAgIHNlbGYu
X21vZGVsLmFkZF9leHBlY3RhdGlvbl9saW5lKHRlc3QsIG92ZXJyaWRlc19hbGxvd2VkPVRydWUp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMv
dGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKaW5kZXggMWE2
NGYyMS4uOWZiNWUwYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0
dGVzdC5weQpAQCAtMzAsNiArMzAsNyBAQAogaW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0
cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKK2Zyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiAKIGZyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0ICoKIGZyb20g
d2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2V4cGVjdGF0aW9ucyBpbXBvcnQgKgpA
QCAtMjU2LDYgKzI1NywxNyBAQCBCVUdfT1ZFUlJJREUgOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0
Lmh0bWwgPSBDUkFTSAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJykgaW4KICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9leHAuZ2V0X3Rlc3RzX3dpdGhfcmVzdWx0X3R5cGUoU0tJUCkp
CiAKKyAgICBkZWYgdGVzdF9hZGRfc2tpcHBlZF90ZXN0cyhzZWxmKToKKyAgICAgICAgb3V0cHV0
ID0gT3V0cHV0Q2FwdHVyZSgpCisgICAgICAgIHBvcnQgPSBNb2NrSG9zdCgpLnBvcnRfZmFjdG9y
eS5nZXQoKQorICAgICAgICB0ZXN0cyA9ICdmb28vYmFyL2Jhei5odG1sXG5mYXN0L2Zvby9iYXIu
aHRtbFxuJworICAgICAgICBleHBlY3RhdGlvbnMgPSAnQlVHX0ZPTyA6IGZhc3QvZm9vL2JhcjIu
aHRtbCA9IEZBSUxcbkJVR19GT08gU0tJUCA6IGZhc3QvZm9vL2Jhci5odG1sID0gRkFJTFxuJwor
ICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucyA9IFRlc3RFeHBlY3RhdGlvbnMocG9ydCwgdGVzdHMs
IGV4cGVjdGF0aW9ucywgJycpCisgICAgICAgIG91dHB1dC5jYXB0dXJlX291dHB1dCgpCisgICAg
ICAgIHRlc3RfZXhwZWN0YXRpb25zLl9hZGRfc2tpcHBlZF90ZXN0cygnZmFzdC9mb28vYmFyLmh0
bWwnKQorICAgICAgICBsb2dzX3N0cmluZyA9IG91dHB1dC5yZXN0b3JlX291dHB1dCgpWzJdCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9nc19zdHJpbmcsICdUaGUgZmFzdC9mb28vYmFyLmh0
bWwgdGVzdCBmcm9tIHRlc3RfZXhwZWN0YXRpb25zLnR4dCBpbiBsaW5lIDIgaXMgYWxzbyBpbiBT
a2lwcGVkIVxuJykKKwogY2xhc3MgRXhwZWN0YXRpb25TeW50YXhUZXN0cyhCYXNlKToKICAgICBk
ZWYgdGVzdF9taXNzaW5nX2V4cGVjdGF0aW9uKHNlbGYpOgogICAgICAgICAjIFRoaXMgaXMgbWlz
c2luZyB0aGUgZXhwZWN0YXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggMmU0OWE2Ni4uMjE0NDRiNyAxMDA3NTUKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpAQCAtNTQ2LDYg
KzU0Niw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICBkZWYgc2tpcHBlZF9sYXlvdXRfdGVz
dHMoc2VsZik6CiAgICAgICAgIHJldHVybiBbXQogCisgICAgZGVmIHNraXBwZWRfdGVzdHMoc2Vs
Zik6CisgICAgICAgIHJldHVybiBbXQorCiAgICAgZGVmIHNraXBzX2xheW91dF90ZXN0KHNlbGYs
IHRlc3RfbmFtZSk6CiAgICAgICAgICIiIkZpZ3VyZXMgb3V0IGlmIHRoZSBnaXZlbnQgdGVzdCBp
cyBiZWluZyBza2lwcGVkIG9yIG5vdC4KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQppbmRleCAzMDI0ODgxLi4xNGMzY2M2IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5w
eQpAQCAtMzUyLDI2ICszNTIsMTMgQEAgY2xhc3MgV2ViS2l0UG9ydChQb3J0KToKIAogICAgIGRl
ZiB0ZXN0X2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgIyBUaGlzIGFsbG93cyBwb3J0cyB0
byB1c2UgYSBjb21iaW5hdGlvbiBvZiB0ZXN0X2V4cGVjdGF0aW9ucy50eHQgZmlsZXMgYW5kIFNr
aXBwZWQgbGlzdHMuCi0gICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX3NraXBwZWRfbGlzdF9h
c19leHBlY3RhdGlvbnMoKQorICAgICAgICBleHBlY3RhdGlvbnMgPSAnJwogICAgICAgICBleHBl
Y3RhdGlvbnNfcGF0aCA9IHNlbGYucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkKICAg
ICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMoZXhwZWN0YXRpb25zX3BhdGgpOgogICAg
ICAgICAgICAgX2xvZy5kZWJ1ZygiVXNpbmcgdGVzdF9leHBlY3RhdGlvbnMudHh0OiAlcyIgJSBl
eHBlY3RhdGlvbnNfcGF0aCkKLSAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX2ZpbGVz
eXN0ZW0ucmVhZF90ZXh0X2ZpbGUoZXhwZWN0YXRpb25zX3BhdGgpICsgJ1xuJyArIGV4cGVjdGF0
aW9ucworICAgICAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fZmlsZXN5c3RlbS5yZWFkX3Rl
eHRfZmlsZShleHBlY3RhdGlvbnNfcGF0aCkKICAgICAgICAgcmV0dXJuIGV4cGVjdGF0aW9ucwog
Ci0gICAgZGVmIF9za2lwcGVkX2xpc3RfYXNfZXhwZWN0YXRpb25zKHNlbGYpOgotICAgICAgICAj
IEVhY2ggU2tpcHBlZCBmaWxlIGNvbnRhaW5zIGEgbGlzdCBvZiBmaWxlcwotICAgICAgICAjIG9y
IGRpcmVjdG9yaWVzIHRvIGJlIHNraXBwZWQgZHVyaW5nIHRoZSB0ZXN0IHJ1bi4gVGhlIHRvdGFs
IGxpc3QKLSAgICAgICAgIyBvZiB0ZXN0cyB0byBza2lwcGVkIGlzIGdpdmVuIGJ5IHRoZSBjb250
ZW50cyBvZiB0aGUgZ2VuZXJpYwotICAgICAgICAjIFNraXBwZWQgZmlsZSBmb3VuZCBpbiBwbGF0
Zm9ybS9YIHBsdXMgYSB2ZXJzaW9uLXNwZWNpZmljIGZpbGUKLSAgICAgICAgIyBmb3VuZCBpbiBw
bGF0Zm9ybS9YLXZlcnNpb24uIER1cGxpY2F0ZSBlbnRyaWVzIGFyZSBhbGxvd2VkLgotICAgICAg
ICAjIFRoaXMgcm91dGluZSByZWFkcyB0aG9zZSBmaWxlcyBhbmQgdHVybnMgY29udGVudHMgaW50
byB0aGUKLSAgICAgICAgIyBmb3JtYXQgZXhwZWN0ZWQgYnkgdGVzdF9leHBlY3RhdGlvbnMuCi0K
LSAgICAgICAgdGVzdHNfdG9fc2tpcCA9IHNlbGYuc2tpcHBlZF9sYXlvdXRfdGVzdHMoKQotICAg
ICAgICBza2lwX2xpbmVzID0gbWFwKGxhbWJkYSB0ZXN0X3BhdGg6ICJCVUdfU0tJUFBFRCBTS0lQ
IDogJXMgPSBGQUlMIiAlIHRlc3RfcGF0aCwgdGVzdHNfdG9fc2tpcCkKLSAgICAgICAgcmV0dXJu
ICJcbiIuam9pbihza2lwX2xpbmVzKQotCiAgICAgZGVmIHNraXBwZWRfbGF5b3V0X3Rlc3RzKHNl
bGYpOgogICAgICAgICAjIFVzZSBhIHNldCB0byBhbGxvdyBkdXBsaWNhdGVzCiAgICAgICAgIHRl
c3RzX3RvX3NraXAgPSBzZXQoc2VsZi5fZXhwZWN0YXRpb25zX2Zyb21fc2tpcHBlZF9maWxlcygp
KQpAQCAtMzc5LDYgKzM2Niw5IEBAIGNsYXNzIFdlYktpdFBvcnQoUG9ydCk6CiAgICAgICAgIHRl
c3RzX3RvX3NraXAudXBkYXRlKHNlbGYuX3NraXBwZWRfdGVzdHNfZm9yX3Vuc3VwcG9ydGVkX2Zl
YXR1cmVzKCkpCiAgICAgICAgIHJldHVybiB0ZXN0c190b19za2lwCiAKKyAgICBkZWYgc2tpcHBl
ZF90ZXN0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2tpcHBlZF9sYXlvdXRfdGVzdHMo
KQorCiAgICAgZGVmIF9idWlsZF9wYXRoKHNlbGYsICpjb21wcyk6CiAgICAgICAgICMgLS1yb290
IGlzIHVzZWQgZm9yIHJ1bm5pbmcgd2l0aCBhIHByZS1idWlsdCByb290IChsaWtlIGZyb20gYSBu
aWdodGx5IHppcCkuCiAgICAgICAgIGJ1aWxkX2RpcmVjdG9yeSA9IHNlbGYuZ2V0X29wdGlvbign
cm9vdCcpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3dlYmtpdF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvd2Via2l0X3VuaXR0ZXN0LnB5CmluZGV4IGEyNjZjYWIuLmNkZjVjZGEgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0X3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
d2Via2l0X3VuaXR0ZXN0LnB5CkBAIC0xNTQsMjkgKzE1NCwxMyBAQCBjbGFzcyBXZWJLaXRQb3J0
VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocG9ydC5fcGF0aF90b19kcml2ZXIoKSwgIi9mb28vRHVtcFJlbmRlclRyZWUiKQogCiAgICAg
ZGVmIHRlc3RfdGVzdF9leHBlY3RhdGlvbnMoc2VsZik6Ci0gICAgICAgICMgQ2hlY2sgdGhhdCB3
ZSByZWFkIGJvdGggdGhlIGV4cGVjdGF0aW9ucyBmaWxlIGFuZCBhbnl0aGluZyBpbiBhCi0gICAg
ICAgICMgU2tpcHBlZCBmaWxlLCBhbmQgdGhhdCB3ZSBpbmNsdWRlIHRoZSBmZWF0dXJlIGFuZCBw
bGF0Zm9ybSBjaGVja3MuCisgICAgICAgICMgQ2hlY2sgdGhhdCB3ZSByZWFkIHRoZSBleHBlY3Rh
dGlvbnMgZmlsZQogICAgICAgICBmaWxlcyA9IHsKICAgICAgICAgICAgICcvbW9jay1jaGVja291
dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0d2Via2l0cG9ydC90ZXN0X2V4cGVjdGF0aW9ucy50
eHQnOiAnQlVHX1RFU1RFWFBFQ1RBVElPTlMgU0tJUCA6IGZhc3QvaHRtbC9hcnRpY2xlLWVsZW1l
bnQuaHRtbCA9IEZBSUxcbicsCi0gICAgICAgICAgICAnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vdGVzdHdlYmtpdHBvcnQvU2tpcHBlZCc6ICdmYXN0L2h0bWwva2V5Z2VuLmh0
bWwnLAogICAgICAgICB9CiAgICAgICAgIG1vY2tfZnMgPSBNb2NrRmlsZVN5c3RlbShmaWxlcykK
ICAgICAgICAgcG9ydCA9IFRlc3RXZWJLaXRQb3J0KGZpbGVzeXN0ZW09bW9ja19mcykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnRlc3RfZXhwZWN0YXRpb25zKCksCi0gICAgICAgICIi
IkJVR19URVNURVhQRUNUQVRJT05TIFNLSVAgOiBmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0
bWwgPSBGQUlMXG4KLUJVR19TS0lQUEVEIFNLSVAgOiBmYXN0L2h0bWwva2V5Z2VuLmh0bWwgPSBG
QUlMCi1CVUdfU0tJUFBFRCBTS0lQIDogbWVkaWEgPSBGQUlMIiIiKQotICAgICAgICBmaWxlcyA9
IHsKLSAgICAgICAgICAgICcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0
d2Via2l0cG9ydC90ZXN0X2V4cGVjdGF0aW9ucy50eHQnOiAnQlVHX1RFU1RFWFBFQ1RBVElPTlMg
U0tJUCA6IGZhc3QvaHRtbC9hcnRpY2xlLWVsZW1lbnQuaHRtbCA9IEZBSUwnLAotICAgICAgICAg
ICAgJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3R3ZWJraXRwb3J0L1Nr
aXBwZWQnOiAnZmFzdC9odG1sL2tleWdlbi5odG1sJywKLSAgICAgICAgfQotICAgICAgICBtb2Nr
X2ZzID0gTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpCi0gICAgICAgIHBvcnQgPSBUZXN0V2ViS2l0UG9y
dChmaWxlc3lzdGVtPW1vY2tfZnMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC50ZXN0
X2V4cGVjdGF0aW9ucygpLAotICAgICAgICAiIiJCVUdfVEVTVEVYUEVDVEFUSU9OUyBTS0lQIDog
ZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1sID0gRkFJTAotQlVHX1NLSVBQRUQgU0tJUCA6
IGZhc3QvaHRtbC9rZXlnZW4uaHRtbCA9IEZBSUwKLUJVR19TS0lQUEVEIFNLSVAgOiBtZWRpYSA9
IEZBSUwiIiIpCi0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnRlc3RfZXhwZWN0YXRp
b25zKCksICdCVUdfVEVTVEVYUEVDVEFUSU9OUyBTS0lQIDogZmFzdC9odG1sL2FydGljbGUtZWxl
bWVudC5odG1sID0gRkFJTFxuJykKIAogICAgIGRlZiB0ZXN0X2J1aWxkX2RyaXZlcihzZWxmKToK
ICAgICAgICAgb3V0cHV0ID0gT3V0cHV0Q2FwdHVyZSgpCg==
</data>
<flag name="review"
          id="112812"
          type_id="1"
          status="-"
          setter="dpranke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116659</attachid>
            <date>2011-11-26 10:06:54 -0800</date>
            <delta_ts>2011-12-02 11:45:00 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>1126.patch</filename>
            <type>text/plain</type>
            <size>8764</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4ZjE5
YWU4Li4zMGM1ZDUyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMTEtMjYgIEtyaXN0w7NmIEtvc3p0ecOzICA8
a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIE5SV1Qgc2hvdWxkIGhhbmRsZSBk
dXBsaWNhdGVkIGV4cGVjdGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njk3NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnMuX19pbml0X18pOgor
ICAgICAgICAoVGVzdEV4cGVjdGF0aW9ucy5fYWRkX2V4cGVjdGF0aW9ucyk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAodGVzdF9hZGRfc2tpcHBlZF90ZXN0cyk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9y
dC5za2lwcGVkX3Rlc3RzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3dlYmtpdC5weToKKyAgICAgICAgKFdlYktpdFBvcnQudGVzdF9leHBlY3RhdGlvbnMp
OgorICAgICAgICAoV2ViS2l0UG9ydC5za2lwcGVkX3Rlc3RzKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0dGVzdC5weToKKyAgICAgICAg
KHRlc3RfdGVzdF9leHBlY3RhdGlvbnMpOgorCiAyMDExLTExLTI2ICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IHRoZSBidWlsZCBh
ZnRlciByMTAxMTc0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CmluZGV4IDUzYjNkNzcu
LjdmNGE3MTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKQEAgLTcwMCw2ICs3MDAs
NyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zKG9iamVjdCk6CiAKICAgICAgICAgc2VsZi5fZXhw
ZWN0YXRpb25zID0gVGVzdEV4cGVjdGF0aW9uUGFyc2VyLnRva2VuaXplX2xpc3QoZXhwZWN0YXRp
b25zKQogICAgICAgICBzZWxmLl9hZGRfZXhwZWN0YXRpb25zKHNlbGYuX2V4cGVjdGF0aW9ucywg
b3ZlcnJpZGVzX2FsbG93ZWQ9RmFsc2UpCisgICAgICAgIHNlbGYuX2FkZF9za2lwcGVkX3Rlc3Rz
KHBvcnQuc2tpcHBlZF90ZXN0cygpKQogCiAgICAgICAgIGlmIG92ZXJyaWRlczoKICAgICAgICAg
ICAgIG92ZXJyaWRlc19leHBlY3RhdGlvbnMgPSBUZXN0RXhwZWN0YXRpb25QYXJzZXIudG9rZW5p
emVfbGlzdChvdmVycmlkZXMpCkBAIC04MjYsMyArODI3LDE1IEBAIGNsYXNzIFRlc3RFeHBlY3Rh
dGlvbnMob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuX3BhcnNlci5wYXJzZShleHBlY3RhdGlv
bl9saW5lKQogICAgICAgICAgICAgaWYgc2VsZi5fdGVzdF9jb25maWcgaW4gZXhwZWN0YXRpb25f
bGluZS5tYXRjaGluZ19jb25maWd1cmF0aW9uczoKICAgICAgICAgICAgICAgICBzZWxmLl9tb2Rl
bC5hZGRfZXhwZWN0YXRpb25fbGluZShleHBlY3RhdGlvbl9saW5lLCBvdmVycmlkZXNfYWxsb3dl
ZCkKKworICAgIGRlZiBfYWRkX3NraXBwZWRfdGVzdHMoc2VsZiwgdGVzdHNfdG9fc2tpcCk6Cisg
ICAgICAgIGlmIG5vdCB0ZXN0c190b19za2lwOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
IGZvciBpbmRleCwgdGVzdCBpbiBlbnVtZXJhdGUoc2VsZi5fZXhwZWN0YXRpb25zLCBzdGFydD0x
KToKKyAgICAgICAgICAgIGlmIHRlc3QubmFtZSBhbmQgdGVzdC5uYW1lIGluIHRlc3RzX3RvX3Nr
aXA6CisgICAgICAgICAgICAgICAgX2xvZy5lcnJvcignVGhlICVzIHRlc3QgZnJvbSB0ZXN0X2V4
cGVjdGF0aW9ucy50eHQgaW4gbGluZSAlZCBpcyBhbHNvIGluIFNraXBwZWQhJyAlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHRlc3QubmFtZSwgaW5kZXgpKQorICAgICAgICBza2lwcGVk
X3Rlc3RzID0gJ1xuJy5qb2luKG1hcChsYW1iZGEgdGVzdF9wYXRoOiAnQlVHX1NLSVBQRUQgU0tJ
UCA6ICVzID0gRkFJTCcgJSB0ZXN0X3BhdGgsIHRlc3RzX3RvX3NraXApKQorICAgICAgICBmb3Ig
dGVzdCBpbiBUZXN0RXhwZWN0YXRpb25QYXJzZXIudG9rZW5pemVfbGlzdChza2lwcGVkX3Rlc3Rz
KToKKyAgICAgICAgICAgIHNlbGYuX3BhcnNlci5wYXJzZSh0ZXN0KQorICAgICAgICAgICAgc2Vs
Zi5fbW9kZWwuYWRkX2V4cGVjdGF0aW9uX2xpbmUodGVzdCwgb3ZlcnJpZGVzX2FsbG93ZWQ9VHJ1
ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVs
cy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQppbmRleCAx
YTY0ZjIxLi4yNzg4ZjhlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3Vu
aXR0ZXN0LnB5CkBAIC0yNTYsNiArMjU2LDE0IEBAIEJVR19PVkVSUklERSA6IGZhaWx1cmVzL2V4
cGVjdGVkL3RleHQuaHRtbCA9IENSQVNICiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnKSBpbgog
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2V4cC5nZXRfdGVzdHNfd2l0aF9yZXN1bHRf
dHlwZShTS0lQKSkKIAorICAgIGRlZiB0ZXN0X2FkZF9za2lwcGVkX3Rlc3RzKHNlbGYpOgorICAg
ICAgICBwb3J0ID0gTW9ja0hvc3QoKS5wb3J0X2ZhY3RvcnkuZ2V0KCdxdCcpCisgICAgICAgIHBv
cnQuX2ZpbGVzeXN0ZW0uZmlsZXNbcG9ydC5fZmlsZXN5c3RlbS5qb2luKHBvcnQubGF5b3V0X3Rl
c3RzX2RpcigpLCAncGxhdGZvcm0vcXQvU2tpcHBlZCcpXSA9ICdmYWlsdXJlcy9leHBlY3RlZC90
ZXh0Lmh0bWwnCisgICAgICAgIHBvcnQuX2ZpbGVzeXN0ZW0uZmlsZXNbcG9ydC5fZmlsZXN5c3Rl
bS5qb2luKHBvcnQubGF5b3V0X3Rlc3RzX2RpcigpLCAnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5o
dG1sJyldID0gJ2ZvbycKKyAgICAgICAgc2VsZi5fZXhwID0gVGVzdEV4cGVjdGF0aW9ucyhwb3J0
LCAnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sXG4nLCAnQlVHWCA6IGZhaWx1cmVzL2V4cGVj
dGVkL3RleHQuaHRtbCA9IHRleHRcbicsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgn
ZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJyBpbiBzZWxmLl9leHAuZ2V0X3Rlc3RzX3dpdGhf
cmVzdWx0X3R5cGUoU0tJUCkpCisKKwogY2xhc3MgRXhwZWN0YXRpb25TeW50YXhUZXN0cyhCYXNl
KToKICAgICBkZWYgdGVzdF9taXNzaW5nX2V4cGVjdGF0aW9uKHNlbGYpOgogICAgICAgICAjIFRo
aXMgaXMgbWlzc2luZyB0aGUgZXhwZWN0YXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggNGMxYmJlOC4uMDNiYzBiZCAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpA
QCAtNTQ4LDYgKzU0OCw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICBkZWYgc2tpcHBlZF9s
YXlvdXRfdGVzdHMoc2VsZik6CiAgICAgICAgIHJldHVybiBbXQogCisgICAgZGVmIHNraXBwZWRf
dGVzdHMoc2VsZik6CisgICAgICAgIHJldHVybiBbXQorCiAgICAgZGVmIHNraXBzX2xheW91dF90
ZXN0KHNlbGYsIHRlc3RfbmFtZSk6CiAgICAgICAgICIiIkZpZ3VyZXMgb3V0IGlmIHRoZSBnaXZl
bnQgdGVzdCBpcyBiZWluZyBza2lwcGVkIG9yIG5vdC4KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQppbmRleCAwMWRmOGE0Li45ZDM5
Njk5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3dlYmtpdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3dlYmtpdC5weQpAQCAtMzU3LDI2ICszNTcsMTMgQEAgY2xhc3MgV2ViS2l0UG9ydChQb3J0KToK
IAogICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgIyBUaGlzIGFsbG93
cyBwb3J0cyB0byB1c2UgYSBjb21iaW5hdGlvbiBvZiB0ZXN0X2V4cGVjdGF0aW9ucy50eHQgZmls
ZXMgYW5kIFNraXBwZWQgbGlzdHMuCi0gICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX3NraXBw
ZWRfbGlzdF9hc19leHBlY3RhdGlvbnMoKQorICAgICAgICBleHBlY3RhdGlvbnMgPSAnJwogICAg
ICAgICBleHBlY3RhdGlvbnNfcGF0aCA9IHNlbGYucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19m
aWxlKCkKICAgICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMoZXhwZWN0YXRpb25zX3Bh
dGgpOgogICAgICAgICAgICAgX2xvZy5kZWJ1ZygiVXNpbmcgdGVzdF9leHBlY3RhdGlvbnMudHh0
OiAlcyIgJSBleHBlY3RhdGlvbnNfcGF0aCkKLSAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNl
bGYuX2ZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUoZXhwZWN0YXRpb25zX3BhdGgpICsgJ1xuJyAr
IGV4cGVjdGF0aW9ucworICAgICAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fZmlsZXN5c3Rl
bS5yZWFkX3RleHRfZmlsZShleHBlY3RhdGlvbnNfcGF0aCkKICAgICAgICAgcmV0dXJuIGV4cGVj
dGF0aW9ucwogCi0gICAgZGVmIF9za2lwcGVkX2xpc3RfYXNfZXhwZWN0YXRpb25zKHNlbGYpOgot
ICAgICAgICAjIEVhY2ggU2tpcHBlZCBmaWxlIGNvbnRhaW5zIGEgbGlzdCBvZiBmaWxlcwotICAg
ICAgICAjIG9yIGRpcmVjdG9yaWVzIHRvIGJlIHNraXBwZWQgZHVyaW5nIHRoZSB0ZXN0IHJ1bi4g
VGhlIHRvdGFsIGxpc3QKLSAgICAgICAgIyBvZiB0ZXN0cyB0byBza2lwcGVkIGlzIGdpdmVuIGJ5
IHRoZSBjb250ZW50cyBvZiB0aGUgZ2VuZXJpYwotICAgICAgICAjIFNraXBwZWQgZmlsZSBmb3Vu
ZCBpbiBwbGF0Zm9ybS9YIHBsdXMgYSB2ZXJzaW9uLXNwZWNpZmljIGZpbGUKLSAgICAgICAgIyBm
b3VuZCBpbiBwbGF0Zm9ybS9YLXZlcnNpb24uIER1cGxpY2F0ZSBlbnRyaWVzIGFyZSBhbGxvd2Vk
LgotICAgICAgICAjIFRoaXMgcm91dGluZSByZWFkcyB0aG9zZSBmaWxlcyBhbmQgdHVybnMgY29u
dGVudHMgaW50byB0aGUKLSAgICAgICAgIyBmb3JtYXQgZXhwZWN0ZWQgYnkgdGVzdF9leHBlY3Rh
dGlvbnMuCi0KLSAgICAgICAgdGVzdHNfdG9fc2tpcCA9IHNlbGYuc2tpcHBlZF9sYXlvdXRfdGVz
dHMoKQotICAgICAgICBza2lwX2xpbmVzID0gbWFwKGxhbWJkYSB0ZXN0X3BhdGg6ICJCVUdfU0tJ
UFBFRCBTS0lQIDogJXMgPSBGQUlMIiAlIHRlc3RfcGF0aCwgdGVzdHNfdG9fc2tpcCkKLSAgICAg
ICAgcmV0dXJuICJcbiIuam9pbihza2lwX2xpbmVzKQotCiAgICAgZGVmIHNraXBwZWRfbGF5b3V0
X3Rlc3RzKHNlbGYpOgogICAgICAgICAjIFVzZSBhIHNldCB0byBhbGxvdyBkdXBsaWNhdGVzCiAg
ICAgICAgIHRlc3RzX3RvX3NraXAgPSBzZXQoc2VsZi5fZXhwZWN0YXRpb25zX2Zyb21fc2tpcHBl
ZF9maWxlcygpKQpAQCAtMzg0LDYgKzM3MSw5IEBAIGNsYXNzIFdlYktpdFBvcnQoUG9ydCk6CiAg
ICAgICAgIHRlc3RzX3RvX3NraXAudXBkYXRlKHNlbGYuX3NraXBwZWRfdGVzdHNfZm9yX3Vuc3Vw
cG9ydGVkX2ZlYXR1cmVzKCkpCiAgICAgICAgIHJldHVybiB0ZXN0c190b19za2lwCiAKKyAgICBk
ZWYgc2tpcHBlZF90ZXN0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2tpcHBlZF9sYXlv
dXRfdGVzdHMoKQorCiAgICAgZGVmIF9idWlsZF9wYXRoKHNlbGYsICpjb21wcyk6CiAgICAgICAg
ICMgLS1yb290IGlzIHVzZWQgZm9yIHJ1bm5pbmcgd2l0aCBhIHByZS1idWlsdCByb290IChsaWtl
IGZyb20gYSBuaWdodGx5IHppcCkuCiAgICAgICAgIGJ1aWxkX2RpcmVjdG9yeSA9IHNlbGYuZ2V0
X29wdGlvbigncm9vdCcpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0X3VuaXR0ZXN0LnB5CmluZGV4IDllMzc4Y2UuLmE5NDVj
NTkgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
d2Via2l0X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvd2Via2l0X3VuaXR0ZXN0LnB5CkBAIC0xNDcsMjkgKzE0NywxMyBAQCBjbGFzcyBX
ZWJLaXRQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocG9ydC5fcGF0aF90b19kcml2ZXIoKSwgIi9mb28vRHVtcFJlbmRlclRyZWUi
KQogCiAgICAgZGVmIHRlc3RfdGVzdF9leHBlY3RhdGlvbnMoc2VsZik6Ci0gICAgICAgICMgQ2hl
Y2sgdGhhdCB3ZSByZWFkIGJvdGggdGhlIGV4cGVjdGF0aW9ucyBmaWxlIGFuZCBhbnl0aGluZyBp
biBhCi0gICAgICAgICMgU2tpcHBlZCBmaWxlLCBhbmQgdGhhdCB3ZSBpbmNsdWRlIHRoZSBmZWF0
dXJlIGFuZCBwbGF0Zm9ybSBjaGVja3MuCisgICAgICAgICMgQ2hlY2sgdGhhdCB3ZSByZWFkIHRo
ZSBleHBlY3RhdGlvbnMgZmlsZQogICAgICAgICBmaWxlcyA9IHsKICAgICAgICAgICAgICcvbW9j
ay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0d2Via2l0cG9ydC90ZXN0X2V4cGVj
dGF0aW9ucy50eHQnOiAnQlVHX1RFU1RFWFBFQ1RBVElPTlMgU0tJUCA6IGZhc3QvaHRtbC9hcnRp
Y2xlLWVsZW1lbnQuaHRtbCA9IEZBSUxcbicsCi0gICAgICAgICAgICAnL21vY2stY2hlY2tvdXQv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdHdlYmtpdHBvcnQvU2tpcHBlZCc6ICdmYXN0L2h0bWwv
a2V5Z2VuLmh0bWwnLAogICAgICAgICB9CiAgICAgICAgIG1vY2tfZnMgPSBNb2NrRmlsZVN5c3Rl
bShmaWxlcykKICAgICAgICAgcG9ydCA9IFRlc3RXZWJLaXRQb3J0KGZpbGVzeXN0ZW09bW9ja19m
cykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnRlc3RfZXhwZWN0YXRpb25zKCksCi0g
ICAgICAgICIiIkJVR19URVNURVhQRUNUQVRJT05TIFNLSVAgOiBmYXN0L2h0bWwvYXJ0aWNsZS1l
bGVtZW50Lmh0bWwgPSBGQUlMXG4KLUJVR19TS0lQUEVEIFNLSVAgOiBmYXN0L2h0bWwva2V5Z2Vu
Lmh0bWwgPSBGQUlMCi1CVUdfU0tJUFBFRCBTS0lQIDogbWVkaWEgPSBGQUlMIiIiKQotICAgICAg
ICBmaWxlcyA9IHsKLSAgICAgICAgICAgICcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS90ZXN0d2Via2l0cG9ydC90ZXN0X2V4cGVjdGF0aW9ucy50eHQnOiAnQlVHX1RFU1RFWFBF
Q1RBVElPTlMgU0tJUCA6IGZhc3QvaHRtbC9hcnRpY2xlLWVsZW1lbnQuaHRtbCA9IEZBSUwnLAot
ICAgICAgICAgICAgJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3R3ZWJr
aXRwb3J0L1NraXBwZWQnOiAnZmFzdC9odG1sL2tleWdlbi5odG1sJywKLSAgICAgICAgfQotICAg
ICAgICBtb2NrX2ZzID0gTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpCi0gICAgICAgIHBvcnQgPSBUZXN0
V2ViS2l0UG9ydChmaWxlc3lzdGVtPW1vY2tfZnMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cG9ydC50ZXN0X2V4cGVjdGF0aW9ucygpLAotICAgICAgICAiIiJCVUdfVEVTVEVYUEVDVEFUSU9O
UyBTS0lQIDogZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1sID0gRkFJTAotQlVHX1NLSVBQ
RUQgU0tJUCA6IGZhc3QvaHRtbC9rZXlnZW4uaHRtbCA9IEZBSUwKLUJVR19TS0lQUEVEIFNLSVAg
OiBtZWRpYSA9IEZBSUwiIiIpCi0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnRlc3Rf
ZXhwZWN0YXRpb25zKCksICdCVUdfVEVTVEVYUEVDVEFUSU9OUyBTS0lQIDogZmFzdC9odG1sL2Fy
dGljbGUtZWxlbWVudC5odG1sID0gRkFJTFxuJykKIAogICAgIGRlZiB0ZXN0X2J1aWxkX2RyaXZl
cihzZWxmKToKICAgICAgICAgb3V0cHV0ID0gT3V0cHV0Q2FwdHVyZSgpCg==
</data>
<flag name="review"
          id="115881"
          type_id="1"
          status="-"
          setter="dpranke"
    />
    <flag name="commit-queue"
          id="115882"
          type_id="3"
          status="-"
          setter="dpranke"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117663</attachid>
            <date>2011-12-02 11:45:00 -0800</date>
            <delta_ts>2011-12-02 14:58:22 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>1202.patch</filename>
            <type>text/plain</type>
            <size>9637</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkYmIw
YjU4Li4wZGNlZDM2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTItMDIgIEtyaXN0w7NmIEtvc3p0ecOzICA8
a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIE5SV1Qgc2hvdWxkIGhhbmRsZSBk
dXBsaWNhdGVkIGV4cGVjdGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njk3NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnMuX19pbml0X18pOgor
ICAgICAgICAoVGVzdEV4cGVjdGF0aW9ucy5fcmVwb3J0X2Vycm9ycyk6CisgICAgICAgIChUZXN0
RXhwZWN0YXRpb25zLl9hZGRfZXhwZWN0YXRpb25zKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHk6Cisg
ICAgICAgICh0ZXN0X2FkZF9za2lwcGVkX3Rlc3RzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHk6CisgICAgICAgIChQb3J0LnNraXBwZWRfdGVz
dHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0
LnB5OgorICAgICAgICAoV2ViS2l0UG9ydC50ZXN0X2V4cGVjdGF0aW9ucyk6CisgICAgICAgIChX
ZWJLaXRQb3J0LnNraXBwZWRfdGVzdHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvd2Via2l0X3VuaXR0ZXN0LnB5OgorICAgICAgICAodGVzdF90ZXN0X2V4
cGVjdGF0aW9ucyk6CisKIDIwMTEtMTItMDIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bn
bm9tZS5vcmc+CiAKICAgICAgICAgQnVpbGQgbGlic291cCB3aXRob3V0IGdub21lIGRlcGVuZGVu
Y2llcyAobGlrZSBrZXlyaW5nKS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCA1
M2IzZDc3Li5kMjg4NjkxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CkBAIC02OTcs
OSArNjk3LDExIEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnMob2JqZWN0KToKICAgICAgICAgc2Vs
Zi5fcGFyc2VyID0gVGVzdEV4cGVjdGF0aW9uUGFyc2VyKHBvcnQsIHRlc3RzLCBpc19saW50X21v
ZGUpCiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CiAgICAgICAgIHNlbGYuX3Rlc3RfY29uZmln
dXJhdGlvbl9jb252ZXJ0ZXIgPSBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlcihwb3J0LmFsbF90
ZXN0X2NvbmZpZ3VyYXRpb25zKCksIHBvcnQuY29uZmlndXJhdGlvbl9zcGVjaWZpZXJfbWFjcm9z
KCkpCisgICAgICAgIHNlbGYuX3NraXBwZWRfdGVzdHNfZXJyb3JzID0gW10KIAogICAgICAgICBz
ZWxmLl9leHBlY3RhdGlvbnMgPSBUZXN0RXhwZWN0YXRpb25QYXJzZXIudG9rZW5pemVfbGlzdChl
eHBlY3RhdGlvbnMpCiAgICAgICAgIHNlbGYuX2FkZF9leHBlY3RhdGlvbnMoc2VsZi5fZXhwZWN0
YXRpb25zLCBvdmVycmlkZXNfYWxsb3dlZD1GYWxzZSkKKyAgICAgICAgc2VsZi5fYWRkX3NraXBw
ZWRfdGVzdHMocG9ydC5za2lwcGVkX3Rlc3RzKCkpCiAKICAgICAgICAgaWYgb3ZlcnJpZGVzOgog
ICAgICAgICAgICAgb3ZlcnJpZGVzX2V4cGVjdGF0aW9ucyA9IFRlc3RFeHBlY3RhdGlvblBhcnNl
ci50b2tlbml6ZV9saXN0KG92ZXJyaWRlcykKQEAgLTc4Myw2ICs3ODUsMTAgQEAgY2xhc3MgVGVz
dEV4cGVjdGF0aW9ucyhvYmplY3QpOgogICAgICAgICAgICAgZm9yIHdhcm5pbmcgaW4gZXhwZWN0
YXRpb24ud2FybmluZ3M6CiAgICAgICAgICAgICAgICAgd2FybmluZ3MuYXBwZW5kKCJMaW5lOiVz
ICVzICVzIiAlIChleHBlY3RhdGlvbi5saW5lX251bWJlciwgd2FybmluZywgZXhwZWN0YXRpb24u
bmFtZSBpZiBleHBlY3RhdGlvbi5leHBlY3RhdGlvbnMgZWxzZSBleHBlY3RhdGlvbi5vcmlnaW5h
bF9zdHJpbmcpKQogCisgICAgICAgIGlmIHNlbGYuX2lzX2xpbnRfbW9kZToKKyAgICAgICAgICAg
IGZvciBlcnJvciBpbiBzZWxmLl9za2lwcGVkX3Rlc3RzX2Vycm9yczoKKyAgICAgICAgICAgICAg
ICBlcnJvcnMuYXBwZW5kKGVycm9yKQorCiAgICAgICAgIGlmIGxlbihlcnJvcnMpIG9yIGxlbih3
YXJuaW5ncyk6CiAgICAgICAgICAgICB3ZWJraXRfYmFzZV9wYXRoID0gc2VsZi5fcG9ydC53ZWJr
aXRfYmFzZSgpCiAgICAgICAgICAgICB0ZXN0X2V4cGVjdGF0aW9uX3BhdGggPSBzZWxmLl9wb3J0
LnBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZSgpCkBAIC04MjYsMyArODMyLDE1IEBAIGNs
YXNzIFRlc3RFeHBlY3RhdGlvbnMob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuX3BhcnNlci5w
YXJzZShleHBlY3RhdGlvbl9saW5lKQogICAgICAgICAgICAgaWYgc2VsZi5fdGVzdF9jb25maWcg
aW4gZXhwZWN0YXRpb25fbGluZS5tYXRjaGluZ19jb25maWd1cmF0aW9uczoKICAgICAgICAgICAg
ICAgICBzZWxmLl9tb2RlbC5hZGRfZXhwZWN0YXRpb25fbGluZShleHBlY3RhdGlvbl9saW5lLCBv
dmVycmlkZXNfYWxsb3dlZCkKKworICAgIGRlZiBfYWRkX3NraXBwZWRfdGVzdHMoc2VsZiwgdGVz
dHNfdG9fc2tpcCk6CisgICAgICAgIGlmIG5vdCB0ZXN0c190b19za2lwOgorICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgIGZvciBpbmRleCwgdGVzdCBpbiBlbnVtZXJhdGUoc2VsZi5fZXhwZWN0
YXRpb25zLCBzdGFydD0xKToKKyAgICAgICAgICAgIGlmIHRlc3QubmFtZSBhbmQgdGVzdC5uYW1l
IGluIHRlc3RzX3RvX3NraXA6CisgICAgICAgICAgICAgICAgc2VsZi5fc2tpcHBlZF90ZXN0c19l
cnJvcnMuYXBwZW5kKCdUaGUgJXMgdGVzdCBmcm9tIHRlc3RfZXhwZWN0YXRpb25zLnR4dCBpbiBs
aW5lICVkIGlzIGFsc28gaW4gU2tpcHBlZCEnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAodGVzdC5uYW1lLCBpbmRleCkpCisgICAgICAgIHNraXBwZWRfdGVzdHMgPSAnXG4nLmpvaW4o
bWFwKGxhbWJkYSB0ZXN0X3BhdGg6ICdCVUdfU0tJUFBFRCBTS0lQIDogJXMgPSBGQUlMJyAlIHRl
c3RfcGF0aCwgdGVzdHNfdG9fc2tpcCkpCisgICAgICAgIGZvciB0ZXN0IGluIFRlc3RFeHBlY3Rh
dGlvblBhcnNlci50b2tlbml6ZV9saXN0KHNraXBwZWRfdGVzdHMpOgorICAgICAgICAgICAgc2Vs
Zi5fcGFyc2VyLnBhcnNlKHRlc3QpCisgICAgICAgICAgICBzZWxmLl9tb2RlbC5hZGRfZXhwZWN0
YXRpb25fbGluZSh0ZXN0LCBvdmVycmlkZXNfYWxsb3dlZD1UcnVlKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25z
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxz
L3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CmluZGV4IDFhNjRmMjEuLjc4ZGE3NDAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKQEAgLTI1Niw2
ICsyNTYsMTMgQEAgQlVHX09WRVJSSURFIDogZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sID0g
Q1JBU0gKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcpIGluCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fZXhwLmdldF90ZXN0c193aXRoX3Jlc3VsdF90eXBlKFNLSVApKQogCisgICAg
ZGVmIHRlc3RfYWRkX3NraXBwZWRfdGVzdHMoc2VsZik6CisgICAgICAgIHBvcnQgPSBNb2NrSG9z
dCgpLnBvcnRfZmFjdG9yeS5nZXQoJ3F0JykKKyAgICAgICAgcG9ydC5fZmlsZXN5c3RlbS5maWxl
c1twb3J0Ll9maWxlc3lzdGVtLmpvaW4ocG9ydC5sYXlvdXRfdGVzdHNfZGlyKCksICdwbGF0Zm9y
bS9xdC9Ta2lwcGVkJyldID0gJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcKKyAgICAgICAg
cG9ydC5fZmlsZXN5c3RlbS5maWxlc1twb3J0Ll9maWxlc3lzdGVtLmpvaW4ocG9ydC5sYXlvdXRf
dGVzdHNfZGlyKCksICdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnKV0gPSAnZm9vJworICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhQYXJzZUVycm9yLCBUZXN0RXhwZWN0YXRpb25zLCBwb3J0
LCAnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sXG4nLCAnQlVHWCA6IGZhaWx1cmVzL2V4cGVj
dGVkL3RleHQuaHRtbCA9IHRleHRcbicsIE5vbmUsIFRydWUpCisKKwogY2xhc3MgRXhwZWN0YXRp
b25TeW50YXhUZXN0cyhCYXNlKToKICAgICBkZWYgdGVzdF9taXNzaW5nX2V4cGVjdGF0aW9uKHNl
bGYpOgogICAgICAgICAjIFRoaXMgaXMgbWlzc2luZyB0aGUgZXhwZWN0YXRpb24uCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggZTQw
ZWJlNi4uMTVkZTk5OCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvYmFzZS5weQpAQCAtNjIwLDYgKzYyMCw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToK
ICAgICBkZWYgc2tpcHBlZF9sYXlvdXRfdGVzdHMoc2VsZik6CiAgICAgICAgIHJldHVybiBbXQog
CisgICAgZGVmIHNraXBwZWRfdGVzdHMoc2VsZik6CisgICAgICAgIHJldHVybiBbXQorCiAgICAg
ZGVmIHNraXBzX2xheW91dF90ZXN0KHNlbGYsIHRlc3RfbmFtZSk6CiAgICAgICAgICIiIkZpZ3Vy
ZXMgb3V0IGlmIHRoZSBnaXZlbnQgdGVzdCBpcyBiZWluZyBza2lwcGVkIG9yIG5vdC4KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQpp
bmRleCBjZTZiYzI5Li41OGY1NDlhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQpAQCAtMzYwLDI2ICszNjAsMTMgQEAgY2xhc3Mg
V2ViS2l0UG9ydChQb3J0KToKIAogICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9ucyhzZWxmKToKICAg
ICAgICAgIyBUaGlzIGFsbG93cyBwb3J0cyB0byB1c2UgYSBjb21iaW5hdGlvbiBvZiB0ZXN0X2V4
cGVjdGF0aW9ucy50eHQgZmlsZXMgYW5kIFNraXBwZWQgbGlzdHMuCi0gICAgICAgIGV4cGVjdGF0
aW9ucyA9IHNlbGYuX3NraXBwZWRfbGlzdF9hc19leHBlY3RhdGlvbnMoKQorICAgICAgICBleHBl
Y3RhdGlvbnMgPSAnJwogICAgICAgICBleHBlY3RhdGlvbnNfcGF0aCA9IHNlbGYucGF0aF90b190
ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkKICAgICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlz
dHMoZXhwZWN0YXRpb25zX3BhdGgpOgogICAgICAgICAgICAgX2xvZy5kZWJ1ZygiVXNpbmcgdGVz
dF9leHBlY3RhdGlvbnMudHh0OiAlcyIgJSBleHBlY3RhdGlvbnNfcGF0aCkKLSAgICAgICAgICAg
IGV4cGVjdGF0aW9ucyA9IHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUoZXhwZWN0YXRp
b25zX3BhdGgpICsgJ1xuJyArIGV4cGVjdGF0aW9ucworICAgICAgICAgICAgZXhwZWN0YXRpb25z
ID0gc2VsZi5fZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShleHBlY3RhdGlvbnNfcGF0aCkKICAg
ICAgICAgcmV0dXJuIGV4cGVjdGF0aW9ucwogCi0gICAgZGVmIF9za2lwcGVkX2xpc3RfYXNfZXhw
ZWN0YXRpb25zKHNlbGYpOgotICAgICAgICAjIEVhY2ggU2tpcHBlZCBmaWxlIGNvbnRhaW5zIGEg
bGlzdCBvZiBmaWxlcwotICAgICAgICAjIG9yIGRpcmVjdG9yaWVzIHRvIGJlIHNraXBwZWQgZHVy
aW5nIHRoZSB0ZXN0IHJ1bi4gVGhlIHRvdGFsIGxpc3QKLSAgICAgICAgIyBvZiB0ZXN0cyB0byBz
a2lwcGVkIGlzIGdpdmVuIGJ5IHRoZSBjb250ZW50cyBvZiB0aGUgZ2VuZXJpYwotICAgICAgICAj
IFNraXBwZWQgZmlsZSBmb3VuZCBpbiBwbGF0Zm9ybS9YIHBsdXMgYSB2ZXJzaW9uLXNwZWNpZmlj
IGZpbGUKLSAgICAgICAgIyBmb3VuZCBpbiBwbGF0Zm9ybS9YLXZlcnNpb24uIER1cGxpY2F0ZSBl
bnRyaWVzIGFyZSBhbGxvd2VkLgotICAgICAgICAjIFRoaXMgcm91dGluZSByZWFkcyB0aG9zZSBm
aWxlcyBhbmQgdHVybnMgY29udGVudHMgaW50byB0aGUKLSAgICAgICAgIyBmb3JtYXQgZXhwZWN0
ZWQgYnkgdGVzdF9leHBlY3RhdGlvbnMuCi0KLSAgICAgICAgdGVzdHNfdG9fc2tpcCA9IHNlbGYu
c2tpcHBlZF9sYXlvdXRfdGVzdHMoKQotICAgICAgICBza2lwX2xpbmVzID0gbWFwKGxhbWJkYSB0
ZXN0X3BhdGg6ICJCVUdfU0tJUFBFRCBTS0lQIDogJXMgPSBGQUlMIiAlIHRlc3RfcGF0aCwgdGVz
dHNfdG9fc2tpcCkKLSAgICAgICAgcmV0dXJuICJcbiIuam9pbihza2lwX2xpbmVzKQotCiAgICAg
ZGVmIHNraXBwZWRfbGF5b3V0X3Rlc3RzKHNlbGYpOgogICAgICAgICAjIFVzZSBhIHNldCB0byBh
bGxvdyBkdXBsaWNhdGVzCiAgICAgICAgIHRlc3RzX3RvX3NraXAgPSBzZXQoc2VsZi5fZXhwZWN0
YXRpb25zX2Zyb21fc2tpcHBlZF9maWxlcygpKQpAQCAtMzg3LDYgKzM3NCw5IEBAIGNsYXNzIFdl
YktpdFBvcnQoUG9ydCk6CiAgICAgICAgIHRlc3RzX3RvX3NraXAudXBkYXRlKHNlbGYuX3NraXBw
ZWRfdGVzdHNfZm9yX3Vuc3VwcG9ydGVkX2ZlYXR1cmVzKCkpCiAgICAgICAgIHJldHVybiB0ZXN0
c190b19za2lwCiAKKyAgICBkZWYgc2tpcHBlZF90ZXN0cyhzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuc2tpcHBlZF9sYXlvdXRfdGVzdHMoKQorCiAgICAgZGVmIF9idWlsZF9wYXRoKHNlbGYs
ICpjb21wcyk6CiAgICAgICAgICMgLS1yb290IGlzIHVzZWQgZm9yIHJ1bm5pbmcgd2l0aCBhIHBy
ZS1idWlsdCByb290IChsaWtlIGZyb20gYSBuaWdodGx5IHppcCkuCiAgICAgICAgIGJ1aWxkX2Rp
cmVjdG9yeSA9IHNlbGYuZ2V0X29wdGlvbigncm9vdCcpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0X3VuaXR0ZXN0LnB5Cmlu
ZGV4IDkxMDU1OWEuLmNjOGZmODMgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0X3VuaXR0ZXN0LnB5CkBAIC0xNDgsMjkg
KzE0OCwxMyBAQCBjbGFzcyBXZWJLaXRQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2Fz
ZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5fcGF0aF90b19kcml2ZXIoKSwgIi9m
b28vRHVtcFJlbmRlclRyZWUiKQogCiAgICAgZGVmIHRlc3RfdGVzdF9leHBlY3RhdGlvbnMoc2Vs
Zik6Ci0gICAgICAgICMgQ2hlY2sgdGhhdCB3ZSByZWFkIGJvdGggdGhlIGV4cGVjdGF0aW9ucyBm
aWxlIGFuZCBhbnl0aGluZyBpbiBhCi0gICAgICAgICMgU2tpcHBlZCBmaWxlLCBhbmQgdGhhdCB3
ZSBpbmNsdWRlIHRoZSBmZWF0dXJlIGFuZCBwbGF0Zm9ybSBjaGVja3MuCisgICAgICAgICMgQ2hl
Y2sgdGhhdCB3ZSByZWFkIHRoZSBleHBlY3RhdGlvbnMgZmlsZQogICAgICAgICBmaWxlcyA9IHsK
ICAgICAgICAgICAgICcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0d2Vi
a2l0cG9ydC90ZXN0X2V4cGVjdGF0aW9ucy50eHQnOiAnQlVHX1RFU1RFWFBFQ1RBVElPTlMgU0tJ
UCA6IGZhc3QvaHRtbC9hcnRpY2xlLWVsZW1lbnQuaHRtbCA9IEZBSUxcbicsCi0gICAgICAgICAg
ICAnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdHdlYmtpdHBvcnQvU2tp
cHBlZCc6ICdmYXN0L2h0bWwva2V5Z2VuLmh0bWwnLAogICAgICAgICB9CiAgICAgICAgIG1vY2tf
ZnMgPSBNb2NrRmlsZVN5c3RlbShmaWxlcykKICAgICAgICAgcG9ydCA9IFRlc3RXZWJLaXRQb3J0
KGZpbGVzeXN0ZW09bW9ja19mcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnRlc3Rf
ZXhwZWN0YXRpb25zKCksCi0gICAgICAgICIiIkJVR19URVNURVhQRUNUQVRJT05TIFNLSVAgOiBm
YXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwgPSBGQUlMXG4KLUJVR19TS0lQUEVEIFNLSVAg
OiBmYXN0L2h0bWwva2V5Z2VuLmh0bWwgPSBGQUlMCi1CVUdfU0tJUFBFRCBTS0lQIDogbWVkaWEg
PSBGQUlMIiIiKQotICAgICAgICBmaWxlcyA9IHsKLSAgICAgICAgICAgICcvbW9jay1jaGVja291
dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0d2Via2l0cG9ydC90ZXN0X2V4cGVjdGF0aW9ucy50
eHQnOiAnQlVHX1RFU1RFWFBFQ1RBVElPTlMgU0tJUCA6IGZhc3QvaHRtbC9hcnRpY2xlLWVsZW1l
bnQuaHRtbCA9IEZBSUwnLAotICAgICAgICAgICAgJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3Rz
L3BsYXRmb3JtL3Rlc3R3ZWJraXRwb3J0L1NraXBwZWQnOiAnZmFzdC9odG1sL2tleWdlbi5odG1s
JywKLSAgICAgICAgfQotICAgICAgICBtb2NrX2ZzID0gTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpCi0g
ICAgICAgIHBvcnQgPSBUZXN0V2ViS2l0UG9ydChmaWxlc3lzdGVtPW1vY2tfZnMpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocG9ydC50ZXN0X2V4cGVjdGF0aW9ucygpLAotICAgICAgICAiIiJC
VUdfVEVTVEVYUEVDVEFUSU9OUyBTS0lQIDogZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1s
ID0gRkFJTAotQlVHX1NLSVBQRUQgU0tJUCA6IGZhc3QvaHRtbC9rZXlnZW4uaHRtbCA9IEZBSUwK
LUJVR19TS0lQUEVEIFNLSVAgOiBtZWRpYSA9IEZBSUwiIiIpCi0KKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwb3J0LnRlc3RfZXhwZWN0YXRpb25zKCksICdCVUdfVEVTVEVYUEVDVEFUSU9OUyBT
S0lQIDogZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1sID0gRkFJTFxuJykKIAogICAgIGRl
ZiB0ZXN0X2J1aWxkX2RyaXZlcihzZWxmKToKICAgICAgICAgb3V0cHV0ID0gT3V0cHV0Q2FwdHVy
ZSgpCg==
</data>
<flag name="review"
          id="117167"
          type_id="1"
          status="+"
          setter="dpranke"
    />
    <flag name="commit-queue"
          id="117168"
          type_id="3"
          status="-"
          setter="dpranke"
    />
          </attachment>
      

    </bug>

</bugzilla>