<?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>90872</bug_id>
          
          <creation_ts>2012-07-10 05:20:47 -0700</creation_ts>
          <short_desc>nrwt crashes saving the output for a platform-specific expected test reference</short_desc>
          <delta_ts>2012-07-12 14:22:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>hayato</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>665673</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-07-10 05:20:47 -0700</bug_when>
    <thetext>Ensure that test_result_writer.copy_file creates the correct directories</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665674</commentid>
    <comment_count>1</comment_count>
      <attachid>151442</attachid>
    <who name="">jochen</who>
    <bug_when>2012-07-10 05:23:51 -0700</bug_when>
    <thetext>Created attachment 151442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666149</commentid>
    <comment_count>2</comment_count>
      <attachid>151442</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-07-10 16:31:50 -0700</bug_when>
    <thetext>Comment on attachment 151442
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py:70
&gt; +        except Exception, e:

Should we catch an exception here?
If a test_function throws Exception, the unit test framework treats that as a failure (or an error) of the test case automatically, doesn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666526</commentid>
    <comment_count>3</comment_count>
      <attachid>151649</attachid>
    <who name="">jochen</who>
    <bug_when>2012-07-11 01:58:17 -0700</bug_when>
    <thetext>Created attachment 151649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666528</commentid>
    <comment_count>4</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-07-11 01:58:43 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 151442 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151442&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py:70
&gt; &gt; +        except Exception, e:
&gt; 
&gt; Should we catch an exception here?
&gt; If a test_function throws Exception, the unit test framework treats that as a failure (or an error) of the test case automatically, doesn&apos;t it?

Right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666928</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-11 11:56:17 -0700</bug_when>
    <thetext>@ojan or @dpranke: Thoughts on this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666934</commentid>
    <comment_count>6</comment_count>
      <attachid>151649</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-07-11 12:05:58 -0700</bug_when>
    <thetext>Comment on attachment 151649
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:270
&gt; +        fs.maybe_make_directory(fs.dirname(dst_filepath))

Do we not need this in the other places in this file where we call make_output_directory? Do write_text_file/write_binary_file create the directory for you?

I suppose there&apos;s already a test that shows the write_binary_file codepath works correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666941</commentid>
    <comment_count>7</comment_count>
      <attachid>151649</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-11 12:16:27 -0700</bug_when>
    <thetext>Comment on attachment 151649
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:270
&gt;&gt; +        fs.maybe_make_directory(fs.dirname(dst_filepath))
&gt; 
&gt; Do we not need this in the other places in this file where we call make_output_directory? Do write_text_file/write_binary_file create the directory for you?
&gt; 
&gt; I suppose there&apos;s already a test that shows the write_binary_file codepath works correctly.

This is basically duplicating the logic in self._make_output_directory(), except that we&apos;re using src_filepath instead of self._test_name). We should just modify _make_output_directory() to take the filename as input.

It&apos;s also not clear to me why the output_directory isn&apos;t already created, since we tend to create pretty early on in most of the code paths through this class, so I&apos;m concerned that there&apos;s some other bug or inconsistency this is papering over. What test was failing because of this? I&apos;d like to see what code was executing ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666950</commentid>
    <comment_count>8</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-07-11 12:27:05 -0700</bug_when>
    <thetext>I ran across the problem with content_shell. It doesn&apos;t reproduce with DRT, as DRT matches the expectation, so no output is written...

Here&apos;s the command line:

DISPLAY=:4 new-run-webkit-tests --chromium --debug --clobber-old-results fast/regions/region-style-rule-specificity.html --driver-name=content_shell --additional-drt-flag=--dump-render-tree


and here&apos;s the stack trace

    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 297, in run
      self._worker_connection.run_message_loop()
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 251, in run_message_loop
      self._broker.run_message_loop(self._run_topic, self._client, delay_secs)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 183, in run_message_loop
      self._run_loop(topic_name, client, block=True, delay_secs=delay_secs)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 197, in _run_loop
      self._dispatch_message(msg, client)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 206, in _dispatch_message
      message_handler(message.src, *optargs)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 320, in handle_test_list
      self.worker.handle(&apos;test_list&apos;, source, list_name, test_list)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py&quot;, line 82, in handle
      self._run_test(test_input)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py&quot;, line 106, in _run_test
      result = self.run_test_with_timeout(test_input, test_timeout_sec)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py&quot;, line 148, in run_test_with_timeout
      return self._run_test_in_this_thread(test_input)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py&quot;, line 233, in _run_test_in_this_thread
      return self.run_single_test(self._driver, test_input)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py&quot;, line 237, in run_single_test
      test_input, driver, self._name)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py&quot;, line 46, in run_single_test
      return runner.run()
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py&quot;, line 102, in run
      return self._run_reftest()
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py&quot;, line 301, in _run_reftest
      test_result_writer.write_test_result(self._filesystem, self._port, self._test_name, test_output, reference_output, test_result.failures)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer.py&quot;, line 77, in write_test_result
      writer.copy_file(failure.reference_filename)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer.py&quot;, line 271, in copy_file
      fs.copyfile(src_filepath, dst_filepath)
    File &quot;/WebKit/Tools/Scripts/webkitpy/common/system/filesystem.py&quot;, line 76, in copyfile
      shutil.copyfile(source, destination)
    File &quot;/usr/lib/python2.6/shutil.py&quot;, line 53, in copyfile
      fdst = open(dst, &apos;wb&apos;)
Exception raised, exiting
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py&quot;, line 129, in run
      unexpected_result_count = manager.run()
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py&quot;, line 910, in run
      interrupted, keyboard_interrupted, thread_timings, test_timings, individual_test_timings = self._run_tests(self._test_files_list, result_summary, int(self._options.child_processes))
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py&quot;, line 802, in _run_tests
      manager_connection.run_message_loop(delay_secs=1.0)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 358, in run_message_loop
      self._inline_worker.run()
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 454, in run
      self._client.run(self._host)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 306, in run
      self._worker_connection.raise_exception(sys.exc_info())
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 297, in run
      self._worker_connection.run_message_loop()
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 251, in run_message_loop
      self._broker.run_message_loop(self._run_topic, self._client, delay_secs)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 183, in run_message_loop
      self._run_loop(topic_name, client, block=True, delay_secs=delay_secs)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 197, in _run_loop
      self._dispatch_message(msg, client)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 206, in _dispatch_message
      message_handler(message.src, *optargs)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py&quot;, line 320, in handle_test_list
      self.worker.handle(&apos;test_list&apos;, source, list_name, test_list)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py&quot;, line 82, in handle
      self._run_test(test_input)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py&quot;, line 106, in _run_test
      result = self.run_test_with_timeout(test_input, test_timeout_sec)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py&quot;, line 148, in run_test_with_timeout
      return self._run_test_in_this_thread(test_input)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py&quot;, line 233, in _run_test_in_this_thread
      return self.run_single_test(self._driver, test_input)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py&quot;, line 237, in run_single_test
      test_input, driver, self._name)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py&quot;, line 46, in run_single_test
      return runner.run()
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py&quot;, line 102, in run
      return self._run_reftest()
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py&quot;, line 301, in _run_reftest
      test_result_writer.write_test_result(self._filesystem, self._port, self._test_name, test_output, reference_output, test_result.failures)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer.py&quot;, line 77, in write_test_result
      writer.copy_file(failure.reference_filename)
    File &quot;/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer.py&quot;, line 271, in copy_file
      fs.copyfile(src_filepath, dst_filepath)
    File &quot;/WebKit/Tools/Scripts/webkitpy/common/system/filesystem.py&quot;, line 76, in copyfile
      shutil.copyfile(source, destination)
    File &quot;/usr/lib/python2.6/shutil.py&quot;, line 53, in copyfile
      fdst = open(dst, &apos;wb&apos;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666951</commentid>
    <comment_count>9</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-07-11 12:28:45 -0700</bug_when>
    <thetext>The problem seems to be that the test is not platform specific, but _make_output_dir makes the directory based on the test name. The expectation, however, is platform specific, and there&apos;s nothing in the writer that would create the platform specific dir.

Also, the _make_output_dir function is only invoked in a few places, many places directly invoke fs.maybe_make_directoriy :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666956</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-11 12:30:32 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; The problem seems to be that the test is not platform specific, but _make_output_dir makes the directory based on the test name. The expectation, however, is platform specific, and there&apos;s nothing in the writer that would create the platform specific dir.

the files in the results directory are always supposed to be next to the test, not put in a platform-specific directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666959</commentid>
    <comment_count>11</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-07-11 12:36:05 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; The problem seems to be that the test is not platform specific, but _make_output_dir makes the directory based on the test name. The expectation, however, is platform specific, and there&apos;s nothing in the writer that would create the platform specific dir.
&gt; 
&gt; the files in the results directory are always supposed to be next to the test, not put in a platform-specific directory.

ok - that&apos;s however not what the code does. E.g. the results.html will include a to the -expected.html file in the platform directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666963</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-11 12:41:29 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; The problem seems to be that the test is not platform specific, but _make_output_dir makes the directory based on the test name. The expectation, however, is platform specific, and there&apos;s nothing in the writer that would create the platform specific dir.
&gt; &gt; 
&gt; &gt; the files in the results directory are always supposed to be next to the test, not put in a platform-specific directory.
&gt; 
&gt; ok - that&apos;s however not what the code does. E.g. the results.html will include a to the -expected.html file in the platform directory.

Hm. Maybe my memory is bad, then, and it&apos;s only the -actual files that are supposed to be next to the tests, although that seems like it would be annoying. At any rate, I&apos;ll dig through it shortly so hopefully this  is only a minor delay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667003</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-11 13:19:14 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; ok - that&apos;s however not what the code does. E.g. the results.html will include a to the -expected.html file in the platform directory.

I see, this is a problem with reftests; all of the other files are placed next to the test itself. I will fix that and post a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667138</commentid>
    <comment_count>14</comment_count>
      <attachid>151803</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-11 15:31:09 -0700</bug_when>
    <thetext>Created attachment 151803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667145</commentid>
    <comment_count>15</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-11 15:36:13 -0700</bug_when>
    <thetext>Okay, it turns out that for ref tests we actually left the -expected file in its (relative) original place in the tree, so if we had foo/bar.html and platform/mac/foo/bar-expected.txt, it would get copied next to bar.html, but if we had platform/mac/foo/bar-expected.html, it would get copied to platform/mac/foo.

Except of course, the latter code path didn&apos;t actually work since the directory might not exist :)

It seems bad to me to put these files in two different places. Putting the output next to the test is definitely convenient, but I can also see the argument for leaving the output in the original location since it&apos;s clearer which file is being compared against. 

The patch I just posted changes where we store reftests so that they are stored next to the test. This makes the code simpler, but does lose some information.

rniwa, hayato, what do you think?

We could also copy the reference output next to the test, but leave the ref_file input in the JSON so at least the information is kept in case we decide to use it somewhere/sometime. It might be nice to also set &apos;ref_file&apos; for txt and pixel paths in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667146</commentid>
    <comment_count>16</comment_count>
      <attachid>151803</attachid>
    <who name="">jochen</who>
    <bug_when>2012-07-11 15:36:46 -0700</bug_when>
    <thetext>Comment on attachment 151803
Patch

Just some nits. I have too little insight into this to actually review the code changes

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

&gt; Tools/ChangeLog:3
&gt; +        Ensure that test_result_writer.copy_file creates the correct directories

now that you actually remove copy_file, this doesn&apos;t make sense anymore

&gt; Tools/ChangeLog:10
&gt; +        foo/bar-expected.txt sits alongside foo/bar-expected.html even

just foo/bar.html ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667152</commentid>
    <comment_count>17</comment_count>
      <attachid>151803</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-07-11 15:40:28 -0700</bug_when>
    <thetext>Comment on attachment 151803
Patch

Much simpler IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667165</commentid>
    <comment_count>18</comment_count>
      <attachid>151803</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-11 15:53:31 -0700</bug_when>
    <thetext>Comment on attachment 151803
Patch

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

&gt;&gt; Tools/ChangeLog:3
&gt;&gt; +        Ensure that test_result_writer.copy_file creates the correct directories
&gt; 
&gt; now that you actually remove copy_file, this doesn&apos;t make sense anymore

true. will update the bug subject.

&gt;&gt; Tools/ChangeLog:10
&gt;&gt; +        foo/bar-expected.txt sits alongside foo/bar-expected.html even
&gt; 
&gt; just foo/bar.html ?

will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667181</commentid>
    <comment_count>19</comment_count>
      <attachid>151810</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-11 16:04:05 -0700</bug_when>
    <thetext>Created attachment 151810
update ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667455</commentid>
    <comment_count>20</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-07-12 00:28:00 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Created an attachment (id=151810) [details]
&gt; update ChangeLog

looks good, thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668154</commentid>
    <comment_count>21</comment_count>
      <attachid>151810</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-12 13:24:27 -0700</bug_when>
    <thetext>Comment on attachment 151810
update ChangeLog

The change looks reasonable to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668210</commentid>
    <comment_count>22</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-12 14:22:23 -0700</bug_when>
    <thetext>Committed r122505: &lt;http://trac.webkit.org/changeset/122505&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151442</attachid>
            <date>2012-07-10 05:23:51 -0700</date>
            <delta_ts>2012-07-11 01:58:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90872-20120710142349.patch</filename>
            <type>text/plain</type>
            <size>4722</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMjA3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzcwNTU4MTRhN2NiODRjZmQ4MDcxNGFiNmM2NWZkOGJm
OGM1NjMyNi4uZDZiOTIwZTE5MzY0MzRkYTZjMGQyMDliZTliZDJlZmRhOGVhMjY0NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDEyLTA3LTEwICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEVuc3VyZSB0aGF0IHRlc3RfcmVzdWx0X3dyaXRlci5jb3B5X2ZpbGUgY3JlYXRl
cyB0aGUgY29ycmVjdCBkaXJlY3RvcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTA4NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJZiB0aGVyZSdzIGEgcG9ydCBzcGVjaWZpYyBiYXNlbGluZSwgd2Ug
bmVlZCB0byBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgcGxhdGZvcm0gZGlyZWN0
b3J5IGJlZm9yZSB3ZSBjYW4gY29weSB0aGUgZXhwZWN0YXRpb25zLgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVy
LnB5OgorICAgICAgICAoY29weV9maWxlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHk6Cisg
ICAgICAgIChUZXN0UmVzdWx0V3JpdGVyVGVzdC50ZXN0X2NvcHlfZmlsZSk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5OgorCiAyMDEyLTA3LTEw
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydCBzaG91bGQgbW92ZSB0byBJbnRl
cm5hbHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dyaXRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dyaXRlci5weQppbmRleCA2MmQy
MTRlZTlmMzQ4ZjgwYWZiMDcyYTM4N2IzZTliY2ExYjUwNjMwLi5kZTBjOGIwNjA5MmU5NGM0ZjVi
ZTgyNTI0MGJlZGVjZTRhY2RjMzQ3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXIucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRf
d3JpdGVyLnB5CkBAIC0yNjcsNSArMjY3LDUgQEAgRGlmZmVyZW5jZSBiZXR3ZWVuIGltYWdlczog
PGEgaHJlZj0iJShkaWZmX2ZpbGVuYW1lKXMiPmRpZmY8L2E+PGJyPgogICAgICAgICBmcyA9IHNl
bGYuX2ZpbGVzeXN0ZW0KICAgICAgICAgYXNzZXJ0IGZzLmV4aXN0cyhzcmNfZmlsZXBhdGgpLCAn
c3JjX2ZpbGVwYXRoOiAlcycgJSBzcmNfZmlsZXBhdGgKICAgICAgICAgZHN0X2ZpbGVwYXRoID0g
ZnMuam9pbihzZWxmLl9yb290X291dHB1dF9kaXIsIHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9m
aWxlbmFtZShzcmNfZmlsZXBhdGgpKQotICAgICAgICBzZWxmLl9tYWtlX291dHB1dF9kaXJlY3Rv
cnkoKQorICAgICAgICBmcy5tYXliZV9tYWtlX2RpcmVjdG9yeShmcy5kaXJuYW1lKGRzdF9maWxl
cGF0aCkpCiAgICAgICAgIGZzLmNvcHlmaWxlKHNyY19maWxlcGF0aCwgZHN0X2ZpbGVwYXRoKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxl
cnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5
CmluZGV4IDNiOWI1MjJhZDlkY2I3NDY5YjcwNzBmNTkwZDFmYTNhMWIxNmNjZmQuLjIzNDBlOTRm
YjNlMjQ4ODcxYjNmNDg3N2IxYjZhY2UxZTZkYmMyM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dyaXRlcl91
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHkKQEAgLTU1LDYgKzU1LDIxIEBA
IGNsYXNzIFRlc3RSZXN1bHRXcml0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyaXZlcl9vdXRwdXQxLCBkcml2
ZXJfb3V0cHV0MiwgZmFpbHVyZXMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWzBdLCB1c2Vk
X3RvbGVyYW5jZV92YWx1ZXMpCiAKKyAgICBkZWYgdGVzdF9jb3B5X2ZpbGUoc2VsZik6CisgICAg
ICAgICIiIlRlc3QgdGhhdCB0ZXN0X3Jlc3VsdF93cml0ZXIuY29weV9maWxlIGNyZWF0ZXMgdGhl
IGNvcnJlY3Qgb3V0cHV0IGRpcmVjdG9yeS4iIiIKKyAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkK
KyAgICAgICAgcG9ydCA9IFRlc3RQb3J0KGhvc3QpCisgICAgICAgIHRlc3RfbmFtZSA9ICdmYWls
dXJlcy91bmV4cGVjdGVkL3JlZnRlc3QtcGxhdGZvcm0uaHRtbCcKKyAgICAgICAgdGVzdF9yZWZl
cmVuY2VfZmlsZSA9IGhvc3QuZmlsZXN5c3RlbS5qb2luKHBvcnQuYmFzZWxpbmVfcGxhdGZvcm1f
ZGlyKCksICdmYWlsdXJlcy91bmV4cGVjdGVkL3JlZnRlc3QtcGxhdGZvcm0tZXhwZWN0ZWQuaHRt
bCcpCisgICAgICAgIGRyaXZlcl9vdXRwdXQxID0gRHJpdmVyT3V0cHV0KCd0ZXh0MScsICdpbWFn
ZTEnLCAnaW1hZ2VoYXNoMScsICdhdWRpbzEnKQorICAgICAgICBkcml2ZXJfb3V0cHV0MiA9IERy
aXZlck91dHB1dCgndGV4dDInLCAnaW1hZ2UyJywgJ2ltYWdlaGFzaDInLCAnYXVkaW8yJykKKyAg
ICAgICAgZmFpbHVyZXMgPSBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoKHRl
c3RfcmVmZXJlbmNlX2ZpbGUpXQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0ZXN0X3Jlc3Vs
dF93cml0ZXIud3JpdGVfdGVzdF9yZXN1bHQoaG9zdC5maWxlc3lzdGVtLCBwb3J0LCB0ZXN0X25h
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJp
dmVyX291dHB1dDEsIGRyaXZlcl9vdXRwdXQyLCBmYWlsdXJlcykKKyAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHNlbGYuZmFpbChzdHIoZSkpCisKIAogaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQppbmRleCA5Y2Y5OGRlNzQ4ODU5
ODZlZjExODQzNjVjYzBlYmZkZjI3ODYxYjFkLi40NDVjMTAyMmFkNWFmNmVmM2ZlOWI2ZjU4NmJl
Y2Y3Yzg5NTkxY2M0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3Rlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC90ZXN0LnB5CkBAIC0xOTQsNiArMTk0LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4MzQKICAgICB0ZXN0cy5hZGRfcmVmdGVzdCgnZmFpbHVyZXMvZXhwZWN0ZWQvcmVmdGVzdC5o
dG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL3JlZnRlc3QtZXhwZWN0ZWQuaHRtbCcsIHNhbWVfaW1h
Z2U9RmFsc2UpCiAgICAgdGVzdHMuYWRkX3JlZnRlc3QoJ2ZhaWx1cmVzL2V4cGVjdGVkL21pc21h
dGNoLmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvbWlzbWF0Y2gtZXhwZWN0ZWQtbWlzbWF0Y2gu
aHRtbCcsIHNhbWVfaW1hZ2U9VHJ1ZSkKICAgICB0ZXN0cy5hZGRfcmVmdGVzdCgnZmFpbHVyZXMv
dW5leHBlY3RlZC9yZWZ0ZXN0Lmh0bWwnLCAnZmFpbHVyZXMvdW5leHBlY3RlZC9yZWZ0ZXN0LWV4
cGVjdGVkLmh0bWwnLCBzYW1lX2ltYWdlPUZhbHNlKQorICAgIHRlc3RzLmFkZF9yZWZ0ZXN0KCdm
YWlsdXJlcy91bmV4cGVjdGVkL3JlZnRlc3QtcGxhdGZvcm0uaHRtbCcsICdwbGF0Zm9ybS90ZXN0
L2ZhaWx1cmVzL3VuZXhwZWN0ZWQvcmVmdGVzdC1wbGF0Zm9ybS1leHBlY3RlZC5odG1sJywgc2Ft
ZV9pbWFnZT1GYWxzZSkKICAgICB0ZXN0cy5hZGRfcmVmdGVzdCgnZmFpbHVyZXMvdW5leHBlY3Rl
ZC9taXNtYXRjaC5odG1sJywgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvbWlzbWF0Y2gtZXhwZWN0ZWQt
bWlzbWF0Y2guaHRtbCcsIHNhbWVfaW1hZ2U9VHJ1ZSkKICAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVz
L3VuZXhwZWN0ZWQvcmVmdGVzdC1ub3BpeGVsLmh0bWwnLCBhY3R1YWxfY2hlY2tzdW09Tm9uZSwg
YWN0dWFsX2ltYWdlPU5vbmUsIGlzX3JlZnRlc3Q9VHJ1ZSkKICAgICB0ZXN0cy5hZGQoJ2ZhaWx1
cmVzL3VuZXhwZWN0ZWQvcmVmdGVzdC1ub3BpeGVsLWV4cGVjdGVkLmh0bWwnLCBhY3R1YWxfY2hl
Y2tzdW09Tm9uZSwgYWN0dWFsX2ltYWdlPU5vbmUsIGlzX3JlZnRlc3Q9VHJ1ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151649</attachid>
            <date>2012-07-11 01:58:17 -0700</date>
            <delta_ts>2012-07-11 15:31:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90872-20120711105815.patch</filename>
            <type>text/plain</type>
            <size>4639</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMjA3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzcwNTU4MTRhN2NiODRjZmQ4MDcxNGFiNmM2NWZkOGJm
OGM1NjMyNi4uZDZiOTIwZTE5MzY0MzRkYTZjMGQyMDliZTliZDJlZmRhOGVhMjY0NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDEyLTA3LTEwICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEVuc3VyZSB0aGF0IHRlc3RfcmVzdWx0X3dyaXRlci5jb3B5X2ZpbGUgY3JlYXRl
cyB0aGUgY29ycmVjdCBkaXJlY3RvcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTA4NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJZiB0aGVyZSdzIGEgcG9ydCBzcGVjaWZpYyBiYXNlbGluZSwgd2Ug
bmVlZCB0byBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgcGxhdGZvcm0gZGlyZWN0
b3J5IGJlZm9yZSB3ZSBjYW4gY29weSB0aGUgZXhwZWN0YXRpb25zLgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVy
LnB5OgorICAgICAgICAoY29weV9maWxlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHk6Cisg
ICAgICAgIChUZXN0UmVzdWx0V3JpdGVyVGVzdC50ZXN0X2NvcHlfZmlsZSk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5OgorCiAyMDEyLTA3LTEw
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydCBzaG91bGQgbW92ZSB0byBJbnRl
cm5hbHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dyaXRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dyaXRlci5weQppbmRleCA2MmQy
MTRlZTlmMzQ4ZjgwYWZiMDcyYTM4N2IzZTliY2ExYjUwNjMwLi5kZTBjOGIwNjA5MmU5NGM0ZjVi
ZTgyNTI0MGJlZGVjZTRhY2RjMzQ3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXIucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRf
d3JpdGVyLnB5CkBAIC0yNjcsNSArMjY3LDUgQEAgRGlmZmVyZW5jZSBiZXR3ZWVuIGltYWdlczog
PGEgaHJlZj0iJShkaWZmX2ZpbGVuYW1lKXMiPmRpZmY8L2E+PGJyPgogICAgICAgICBmcyA9IHNl
bGYuX2ZpbGVzeXN0ZW0KICAgICAgICAgYXNzZXJ0IGZzLmV4aXN0cyhzcmNfZmlsZXBhdGgpLCAn
c3JjX2ZpbGVwYXRoOiAlcycgJSBzcmNfZmlsZXBhdGgKICAgICAgICAgZHN0X2ZpbGVwYXRoID0g
ZnMuam9pbihzZWxmLl9yb290X291dHB1dF9kaXIsIHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9m
aWxlbmFtZShzcmNfZmlsZXBhdGgpKQotICAgICAgICBzZWxmLl9tYWtlX291dHB1dF9kaXJlY3Rv
cnkoKQorICAgICAgICBmcy5tYXliZV9tYWtlX2RpcmVjdG9yeShmcy5kaXJuYW1lKGRzdF9maWxl
cGF0aCkpCiAgICAgICAgIGZzLmNvcHlmaWxlKHNyY19maWxlcGF0aCwgZHN0X2ZpbGVwYXRoKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxl
cnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5
CmluZGV4IDNiOWI1MjJhZDlkY2I3NDY5YjcwNzBmNTkwZDFmYTNhMWIxNmNjZmQuLmU2MzFhNWU3
OGY1YjI0ZjJjNDk1MjEyZmYyMGE2MTk3ZmE2Y2E2MzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dyaXRlcl91
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHkKQEAgLTU1LDYgKzU1LDE4IEBA
IGNsYXNzIFRlc3RSZXN1bHRXcml0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyaXZlcl9vdXRwdXQxLCBkcml2
ZXJfb3V0cHV0MiwgZmFpbHVyZXMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWzBdLCB1c2Vk
X3RvbGVyYW5jZV92YWx1ZXMpCiAKKyAgICBkZWYgdGVzdF9jb3B5X2ZpbGUoc2VsZik6CisgICAg
ICAgICIiIlRlc3QgdGhhdCB0ZXN0X3Jlc3VsdF93cml0ZXIuY29weV9maWxlIGNyZWF0ZXMgdGhl
IGNvcnJlY3Qgb3V0cHV0IGRpcmVjdG9yeS4iIiIKKyAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkK
KyAgICAgICAgcG9ydCA9IFRlc3RQb3J0KGhvc3QpCisgICAgICAgIHRlc3RfbmFtZSA9ICdmYWls
dXJlcy91bmV4cGVjdGVkL3JlZnRlc3QtcGxhdGZvcm0uaHRtbCcKKyAgICAgICAgdGVzdF9yZWZl
cmVuY2VfZmlsZSA9IGhvc3QuZmlsZXN5c3RlbS5qb2luKHBvcnQuYmFzZWxpbmVfcGxhdGZvcm1f
ZGlyKCksICdmYWlsdXJlcy91bmV4cGVjdGVkL3JlZnRlc3QtcGxhdGZvcm0tZXhwZWN0ZWQuaHRt
bCcpCisgICAgICAgIGRyaXZlcl9vdXRwdXQxID0gRHJpdmVyT3V0cHV0KCd0ZXh0MScsICdpbWFn
ZTEnLCAnaW1hZ2VoYXNoMScsICdhdWRpbzEnKQorICAgICAgICBkcml2ZXJfb3V0cHV0MiA9IERy
aXZlck91dHB1dCgndGV4dDInLCAnaW1hZ2UyJywgJ2ltYWdlaGFzaDInLCAnYXVkaW8yJykKKyAg
ICAgICAgZmFpbHVyZXMgPSBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoKHRl
c3RfcmVmZXJlbmNlX2ZpbGUpXQorICAgICAgICB0ZXN0X3Jlc3VsdF93cml0ZXIud3JpdGVfdGVz
dF9yZXN1bHQoaG9zdC5maWxlc3lzdGVtLCBwb3J0LCB0ZXN0X25hbWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcml2ZXJfb3V0cHV0MSwgZHJpdmVyX291
dHB1dDIsIGZhaWx1cmVzKQorCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgdW5p
dHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3Rlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3Rlc3QucHkKaW5kZXggOWNmOThkZTc0ODg1OTg2ZWYxMTg0MzY1Y2MwZWJmZGYyNzg2MWIx
ZC4uNDQ1YzEwMjJhZDVhZjZlZjNmZTliNmY1ODZiZWNmN2M4OTU5MWNjNCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtMTk0LDYg
KzE5NCw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDM0CiAgICAgdGVzdHMuYWRkX3JlZnRl
c3QoJ2ZhaWx1cmVzL2V4cGVjdGVkL3JlZnRlc3QuaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC9y
ZWZ0ZXN0LWV4cGVjdGVkLmh0bWwnLCBzYW1lX2ltYWdlPUZhbHNlKQogICAgIHRlc3RzLmFkZF9y
ZWZ0ZXN0KCdmYWlsdXJlcy9leHBlY3RlZC9taXNtYXRjaC5odG1sJywgJ2ZhaWx1cmVzL2V4cGVj
dGVkL21pc21hdGNoLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwnLCBzYW1lX2ltYWdlPVRydWUpCiAg
ICAgdGVzdHMuYWRkX3JlZnRlc3QoJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvcmVmdGVzdC5odG1sJywg
J2ZhaWx1cmVzL3VuZXhwZWN0ZWQvcmVmdGVzdC1leHBlY3RlZC5odG1sJywgc2FtZV9pbWFnZT1G
YWxzZSkKKyAgICB0ZXN0cy5hZGRfcmVmdGVzdCgnZmFpbHVyZXMvdW5leHBlY3RlZC9yZWZ0ZXN0
LXBsYXRmb3JtLmh0bWwnLCAncGxhdGZvcm0vdGVzdC9mYWlsdXJlcy91bmV4cGVjdGVkL3JlZnRl
c3QtcGxhdGZvcm0tZXhwZWN0ZWQuaHRtbCcsIHNhbWVfaW1hZ2U9RmFsc2UpCiAgICAgdGVzdHMu
YWRkX3JlZnRlc3QoJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvbWlzbWF0Y2guaHRtbCcsICdmYWlsdXJl
cy91bmV4cGVjdGVkL21pc21hdGNoLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwnLCBzYW1lX2ltYWdl
PVRydWUpCiAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy91bmV4cGVjdGVkL3JlZnRlc3Qtbm9waXhl
bC5odG1sJywgYWN0dWFsX2NoZWNrc3VtPU5vbmUsIGFjdHVhbF9pbWFnZT1Ob25lLCBpc19yZWZ0
ZXN0PVRydWUpCiAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy91bmV4cGVjdGVkL3JlZnRlc3Qtbm9w
aXhlbC1leHBlY3RlZC5odG1sJywgYWN0dWFsX2NoZWNrc3VtPU5vbmUsIGFjdHVhbF9pbWFnZT1O
b25lLCBpc19yZWZ0ZXN0PVRydWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151803</attachid>
            <date>2012-07-11 15:31:09 -0700</date>
            <delta_ts>2012-07-11 16:04:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90872-20120711153108.patch</filename>
            <type>text/plain</type>
            <size>18619</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMzY2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTAzOTgxNWVjYTFlN2FkNWU1ZGY2ZTI5ZDBjZDgwOTMz
MWQxMGZkOS4uYjVkNGJiYzM0ZTBjMmE0Zjk3YjI1NjYwMDFhMmMyNzM3NTQ2MDI3MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0
IEBACisyMDEyLTA3LTExICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIEVuc3VyZSB0aGF0IHRlc3RfcmVzdWx0X3dyaXRlci5jb3B5X2ZpbGUgY3JlYXRlcyB0
aGUgY29ycmVjdCBkaXJlY3RvcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTA4NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBhIHRlc3QgaXMgY29waWVkIGFs
b25nc2lkZSB0aGUgdGVzdAorICAgICAgICBpdHNlbGYgaW4gdGhlIGxheW91dC10ZXN0LXJlc3Vs
dHMgZGlyZWN0b3J5OyBpbiBvdGhlciB3b3JkcywgZm9yCisgICAgICAgIGZvby9iYXItZXhwZWN0
ZWQudHh0IHNpdHMgYWxvbmdzaWRlIGZvby9iYXItZXhwZWN0ZWQuaHRtbCBldmVuCisgICAgICAg
IGlmIHdlJ3JlIGFjdHVhbGx5IHVzaW5nIHBsYXRmb3JtL21hYy9mb28vYmFyLWV4cGVjdGVkLnR4
dC4KKworICAgICAgICBVbmxlc3MgdGhlIHRlc3QgaXMgYSByZWZ0ZXN0LCBpbiB3aGljaCBjYXNl
IHdlIHdvdWxkIGNvcHkgdGhlCisgICAgICAgIG91dHB1dCB0byBwbGF0Zm9ybS9tYWMvZm9vL2Jh
ci1leHBlY3RlZC5odG1sIGFuZCBzZXQgYQorICAgICAgICAncmVmX2ZpbGUnIHBhcmFtZXRlciBp
biByZXN1bHRzLmpzb24gdG8gaW5kaWNhdGUgdGhlIHBhdGguIFRoaXMKKyAgICAgICAgY2FuIGJl
IHVzZWZ1bCBpbiB0aGUgY2FzZXMgd2hlcmUgd2UgaGF2ZSBtdWx0aXBsZSByZWZlcmVuY2VzIGZv
cgorICAgICAgICBhIHNpbmdsZSB0ZXN0IG9yIHdoZW4gbXVsdGlwbGUgdGVzdHMgc2hhcmUgdGhl
IHNhbWUgcmVmZXJlbmNlLgorCisgICAgICAgIFdlIGZvdW5kIGEgYnVnIHdoZXJlIHdlIHdlcmVu
J3QgY3JlYXRpbmcgcGxhdGZvcm0vbWFjL2ZvbyB1bmRlcgorICAgICAgICB0aGUgcmVzdWx0cyBk
aXJlY3RvcnksIGFuZCBzbyB0aGlzIHdhc24ndCBhY3R1YWxseSB3b3JraW5nLgorICAgICAgICBI
b3dldmVyLCB0cmVhdGluZyByZWZ0ZXN0cyBkaWZmZXJlbnRseSBzZWVtcyBsaWtlIGEgYmFkIHRo
aW5nLAorICAgICAgICBzbyB3ZSBzaG91bGQgcHJvYmFibHkgYmUgY29uc2lzdGVudC4gVGhpcyBj
aGFuZ2UgcHV0cyB0aGUKKyAgICAgICAgLWV4cGVjdGVkLmh0bWwgbmV4dCB0byB0aGUgdGVzdCwg
YW5kIHJld29ya3MgdGVzdF9yZXN1bHRfd3JpdGVyCisgICAgICAgIHNvIHRoYXQgd2UgY3JlYXRl
IGRpcmVjdG9yaWVzIHVuaWZvcm1seSBhbmQgY29uc2lzdGVudGx5LgorCisgICAgICAgIE5vdGUg
dGhhdCB3ZSB3ZXJlbid0IGNhdGNoaW5nIHRoaXMgcHJvYmxlbSBpbiB1bml0IHRlc3RzIGJlY2F1
c2UKKyAgICAgICAgdGhlIE1vY2tGaWxlU3lzdGVtIGNyZWF0ZXMgYSBkaXJlY3RvcnkgYXV0b21h
dGljYWxseSBpZiBpdAorICAgICAgICBkb2Vzbid0IGV4aXN0OyB0aGlzIHdhcyBkb25lIGludGVu
dGlvbmFsbHkgZm9yIGNvbnZlbmllbmNlLCBidXQKKyAgICAgICAgaXMgcmVhbGx5IGEgYnVnIGFu
ZCBzaG91bGQgYmUgZml4ZWQ7IHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTEwMjguCisKKyAgICAgICAgSSBoYXZlIG5vdCBhZGRlZCBhZGRpdGlvbmFsIHRlc3Rz
IGhlcmUgc2luY2UgZml4aW5nIHRoYXQgYnVnCisgICAgICAgIHNob3VsZCBiZSBzdWZmaWNpZW50
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMv
bWFuYWdlci5weToKKyAgICAgICAgKGludGVycHJldF90ZXN0X2ZhaWx1cmVzKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0
ZXN0LnB5OgorICAgICAgICAoUmVzdWx0U3VtbWFyeVRlc3QudGVzdF9pbnRlcnByZXRfdGVzdF9m
YWlsdXJlcyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJv
bGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyLnB5OgorICAgICAgICAod3JpdGVfdGVzdF9yZXN1bHQp
OgorICAgICAgICAoVGVzdFJlc3VsdFdyaXRlci5fd3JpdGVfYmluYXJ5X2ZpbGUpOgorICAgICAg
ICAoVGVzdFJlc3VsdFdyaXRlcik6CisgICAgICAgIChUZXN0UmVzdWx0V3JpdGVyLl93cml0ZV90
ZXh0X2ZpbGUpOgorICAgICAgICAoVGVzdFJlc3VsdFdyaXRlci53cml0ZV9vdXRwdXRfZmlsZXMp
OgorICAgICAgICAoVGVzdFJlc3VsdFdyaXRlci53cml0ZV9zdGRlcnIpOgorICAgICAgICAoVGVz
dFJlc3VsdFdyaXRlci53cml0ZV9jcmFzaF9sb2cpOgorICAgICAgICAoVGVzdFJlc3VsdFdyaXRl
ci5jcmVhdGVfdGV4dF9kaWZmX2FuZF93cml0ZV9yZXN1bHQpOgorICAgICAgICAoVGVzdFJlc3Vs
dFdyaXRlci53cml0ZV9pbWFnZV9kaWZmX2ZpbGVzKToKKyAgICAgICAgKHdyaXRlX3JlZnRlc3Qp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVz
dHNfaW50ZWdyYXRpb250ZXN0LnB5OgorICAgICAgICAoRW5kVG9FbmRUZXN0LnRlc3RfcmVmdGVz
dF93aXRoX3R3b19ub3RyZWZzKToKKwogMjAxMi0wNy0xMSAgS2V2aW4gT2xsaXZpZXIgIDxrZXZp
bm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBbd3hdIFVucmV2aWV3ZWQgYnVpbGQgZml4
LiBBZGQgbmV3IGRpcmVjdG9yaWVzIGFuZCBhIG5ldyBMYXlvdXRUZXN0Q29udHJvbGxlciBtZXRo
b2QuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
Y29udHJvbGxlcnMvbWFuYWdlci5weQppbmRleCBmMmZlZDNmNGE2MTNjYTEwY2NhMzhjZDdiZTkx
ODczMDBmYzdlNmNjLi45ZjA3ZDYyMGY5YjZmMTIzZDFiMjIxZjE0MjZmZDhkYzE5ZjZlNTY3IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL21hbmFnZXIucHkKQEAgLTg4LDExICs4OCw5IEBAIGRlZiBpbnRlcnByZXRfdGVz
dF9mYWlsdXJlcyhwb3J0LCB0ZXN0X25hbWUsIGZhaWx1cmVzKToKICAgICAgICAgICAgIHRlc3Rf
ZGljdFsnaW1hZ2VfZGlmZl9wZXJjZW50J10gPSBmYWlsdXJlLmRpZmZfcGVyY2VudAogICAgICAg
ICBlbGlmIGlzaW5zdGFuY2UoZmFpbHVyZSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVmdGVzdE1p
c21hdGNoKToKICAgICAgICAgICAgIHRlc3RfZGljdFsnaXNfcmVmdGVzdCddID0gVHJ1ZQotICAg
ICAgICAgICAgdGVzdF9kaWN0WydyZWZfZmlsZSddID0gcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVu
YW1lKGZhaWx1cmUucmVmZXJlbmNlX2ZpbGVuYW1lKQogICAgICAgICAgICAgdGVzdF9kaWN0Wydp
bWFnZV9kaWZmX3BlcmNlbnQnXSA9IGZhaWx1cmUuZGlmZl9wZXJjZW50CiAgICAgICAgIGVsaWYg
aXNpbnN0YW5jZShmYWlsdXJlLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2hE
aWROb3RPY2N1cik6CiAgICAgICAgICAgICB0ZXN0X2RpY3RbJ2lzX21pc21hdGNoX3JlZnRlc3Qn
XSA9IFRydWUKLSAgICAgICAgICAgIHRlc3RfZGljdFsncmVmX2ZpbGUnXSA9IHBvcnQucmVsYXRp
dmVfdGVzdF9maWxlbmFtZShmYWlsdXJlLnJlZmVyZW5jZV9maWxlbmFtZSkKIAogICAgIGlmIHRl
c3RfZmFpbHVyZXMuRmFpbHVyZU1pc3NpbmdSZXN1bHQgaW4gZmFpbHVyZV90eXBlczoKICAgICAg
ICAgdGVzdF9kaWN0Wydpc19taXNzaW5nX3RleHQnXSA9IFRydWUKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9t
YW5hZ2VyX3VuaXR0ZXN0LnB5CmluZGV4IDM0OTYzMjJhOTcyZGNkODZjNTI5MjFiNjI0OTA2MGU1
YmYwNDEzNzAuLjI3ZjA2YTcwZTFiYWNkNmQxZjc0MjUyZmVkODJhYzk5OTIxOTg3ODEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21h
bmFnZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQpAQCAtNDUyLDcgKzQ1Miw2IEBAIGNs
YXNzIFJlc3VsdFN1bW1hcnlUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIFt0
ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2goc2VsZi5wb3J0LmFic3BhdGhfZm9y
X3Rlc3QoJ2Zvby9jb21tb24uaHRtbCcpKV0pCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnaXNf
cmVmdGVzdCcgaW4gdGVzdF9kaWN0KQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdpc19taXNt
YXRjaF9yZWZ0ZXN0JyBpbiB0ZXN0X2RpY3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVz
dF9kaWN0WydyZWZfZmlsZSddLCAnZm9vL2NvbW1vbi5odG1sJykKIAogICAgICAgICB0ZXN0X2Rp
Y3QgPSBpbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhzZWxmLnBvcnQsICdmb28vcmVmdGVzdC5odG1s
JywKICAgICAgICAgICAgIFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2hEaWRO
b3RPY2N1cihzZWxmLnBvcnQuYWJzcGF0aF9mb3JfdGVzdCgnZm9vL3JlZnRlc3QtZXhwZWN0ZWQt
bWlzbWF0Y2guaHRtbCcpKV0pCkBAIC00NjMsNyArNDYyLDYgQEAgY2xhc3MgUmVzdWx0U3VtbWFy
eVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgW3Rlc3RfZmFpbHVyZXMuRmFp
bHVyZVJlZnRlc3RNaXNtYXRjaERpZE5vdE9jY3VyKHNlbGYucG9ydC5hYnNwYXRoX2Zvcl90ZXN0
KCdmb28vY29tbW9uLmh0bWwnKSldKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdpc19yZWZ0
ZXN0JyBpbiB0ZXN0X2RpY3QpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0ZXN0X2RpY3RbJ2lz
X21pc21hdGNoX3JlZnRlc3QnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0X2RpY3Rb
J3JlZl9maWxlJ10sICdmb28vY29tbW9uLmh0bWwnKQogCiAgICAgZGVmIGdldF9yZXN1bHQoc2Vs
ZiwgdGVzdF9uYW1lLCByZXN1bHRfdHlwZT10ZXN0X2V4cGVjdGF0aW9ucy5QQVNTLCBydW5fdGlt
ZT0wKToKICAgICAgICAgZmFpbHVyZXMgPSBbXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1
bHRfd3JpdGVyLnB5CmluZGV4IDYyZDIxNGVlOWYzNDhmODBhZmIwNzJhMzg3YjNlOWJjYTFiNTA2
MzAuLmUxMjAxYWNmNjI1NTRiZGNjNDYwNzM1NWQ2ZGViYTA4MGQ3NjY4OWQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfcmVz
dWx0X3dyaXRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXIucHkKQEAgLTQwLDYgKzQwLDcgQEAgZGVmIHdy
aXRlX3Rlc3RfcmVzdWx0KGZpbGVzeXN0ZW0sIHBvcnQsIHRlc3RfbmFtZSwgZHJpdmVyX291dHB1
dCwKICAgICAiIiJXcml0ZSB0aGUgdGVzdCByZXN1bHQgdG8gdGhlIHJlc3VsdCBvdXRwdXQgZGly
ZWN0b3J5LiIiIgogICAgIHJvb3Rfb3V0cHV0X2RpciA9IHBvcnQucmVzdWx0c19kaXJlY3Rvcnko
KQogICAgIHdyaXRlciA9IFRlc3RSZXN1bHRXcml0ZXIoZmlsZXN5c3RlbSwgcG9ydCwgcm9vdF9v
dXRwdXRfZGlyLCB0ZXN0X25hbWUpCisKICAgICBpZiBkcml2ZXJfb3V0cHV0LmVycm9yOgogICAg
ICAgICB3cml0ZXIud3JpdGVfc3RkZXJyKGRyaXZlcl9vdXRwdXQuZXJyb3IpCiAKQEAgLTc0LDEw
ICs3NSwxMCBAQCBkZWYgd3JpdGVfdGVzdF9yZXN1bHQoZmlsZXN5c3RlbSwgcG9ydCwgdGVzdF9u
YW1lLCBkcml2ZXJfb3V0cHV0LAogICAgICAgICAgICAgICAgICAgICBmYWlsdXJlLmRpZmZfcGVy
Y2VudCA9IGRpZmZfcGVyY2VudAogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAg
ICAgICAgIF9sb2cud2FybignQ2FuIG5vdCBnZXQgaW1hZ2UgZGlmZi4gSW1hZ2VEaWZmIHByb2dy
YW0gbWlnaHQgbm90IHdvcmsgY29ycmVjdGx5LicpCi0gICAgICAgICAgICB3cml0ZXIuY29weV9m
aWxlKGZhaWx1cmUucmVmZXJlbmNlX2ZpbGVuYW1lKQorICAgICAgICAgICAgd3JpdGVyLndyaXRl
X3JlZnRlc3QoZmFpbHVyZS5yZWZlcmVuY2VfZmlsZW5hbWUpCiAgICAgICAgIGVsaWYgaXNpbnN0
YW5jZShmYWlsdXJlLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2hEaWROb3RP
Y2N1cik6CiAgICAgICAgICAgICB3cml0ZXIud3JpdGVfaW1hZ2VfZmlsZXMoZHJpdmVyX291dHB1
dC5pbWFnZSwgZXhwZWN0ZWRfaW1hZ2U9Tm9uZSkKLSAgICAgICAgICAgIHdyaXRlci5jb3B5X2Zp
bGUoZmFpbHVyZS5yZWZlcmVuY2VfZmlsZW5hbWUpCisgICAgICAgICAgICB3cml0ZXIud3JpdGVf
cmVmdGVzdChmYWlsdXJlLnJlZmVyZW5jZV9maWxlbmFtZSkKICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGZhaWx1cmUsICh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVU
aW1lb3V0LCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0Tm9JbWFnZXNHZW5lcmF0ZWQpKQog
CkBAIC0xMjQsNiArMTI1LDE2IEBAIGNsYXNzIFRlc3RSZXN1bHRXcml0ZXIob2JqZWN0KToKICAg
ICAgICAgb3V0cHV0X2ZpbGVuYW1lID0gZnMuam9pbihzZWxmLl9yb290X291dHB1dF9kaXIsIHNl
bGYuX3Rlc3RfbmFtZSkKICAgICAgICAgcmV0dXJuIGZzLnNwbGl0ZXh0KG91dHB1dF9maWxlbmFt
ZSlbMF0gKyBtb2RpZmllcgogCisgICAgZGVmIF93cml0ZV9iaW5hcnlfZmlsZShzZWxmLCBwYXRo
LCBjb250ZW50cyk6CisgICAgICAgIGlmIGNvbnRlbnRzIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgc2VsZi5fbWFrZV9vdXRwdXRfZGlyZWN0b3J5KCkKKyAgICAgICAgICAgIHNlbGYuX2ZpbGVz
eXN0ZW0ud3JpdGVfYmluYXJ5X2ZpbGUocGF0aCwgY29udGVudHMpCisKKyAgICBkZWYgX3dyaXRl
X3RleHRfZmlsZShzZWxmLCBwYXRoLCBjb250ZW50cyk6CisgICAgICAgIGlmIGNvbnRlbnRzIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5fbWFrZV9vdXRwdXRfZGlyZWN0b3J5KCkKKyAg
ICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKHBhdGgsIGNvbnRlbnRz
KQorCiAgICAgZGVmIF9vdXRwdXRfdGVzdG5hbWUoc2VsZiwgbW9kaWZpZXIpOgogICAgICAgICBm
cyA9IHNlbGYuX2ZpbGVzeXN0ZW0KICAgICAgICAgcmV0dXJuIGZzLnNwbGl0ZXh0KGZzLmJhc2Vu
YW1lKHNlbGYuX3Rlc3RfbmFtZSkpWzBdICsgbW9kaWZpZXIKQEAgLTE0MSwyOCArMTUyLDE5IEBA
IGNsYXNzIFRlc3RSZXN1bHRXcml0ZXIob2JqZWN0KToKICAgICAgICAgICBvdXRwdXQ6IEEgc3Ry
aW5nIGNvbnRhaW5pbmcgdGhlIHRlc3Qgb3V0cHV0CiAgICAgICAgICAgZXhwZWN0ZWQ6IEEgc3Ry
aW5nIGNvbnRhaW5pbmcgdGhlIGV4cGVjdGVkIHRlc3Qgb3V0cHV0CiAgICAgICAgICIiIgotICAg
ICAgICBzZWxmLl9tYWtlX291dHB1dF9kaXJlY3RvcnkoKQogICAgICAgICBhY3R1YWxfZmlsZW5h
bWUgPSBzZWxmLm91dHB1dF9maWxlbmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJWF9BQ1RVQUwgKyBm
aWxlX3R5cGUpCiAgICAgICAgIGV4cGVjdGVkX2ZpbGVuYW1lID0gc2VsZi5vdXRwdXRfZmlsZW5h
bWUoc2VsZi5GSUxFTkFNRV9TVUZGSVhfRVhQRUNURUQgKyBmaWxlX3R5cGUpCiAKLSAgICAgICAg
ZnMgPSBzZWxmLl9maWxlc3lzdGVtCi0gICAgICAgIGlmIG91dHB1dCBpcyBub3QgTm9uZToKLSAg
ICAgICAgICAgIGZzLndyaXRlX2JpbmFyeV9maWxlKGFjdHVhbF9maWxlbmFtZSwgb3V0cHV0KQot
ICAgICAgICBpZiBleHBlY3RlZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZzLndyaXRlX2Jp
bmFyeV9maWxlKGV4cGVjdGVkX2ZpbGVuYW1lLCBleHBlY3RlZCkKKyAgICAgICAgc2VsZi5fd3Jp
dGVfYmluYXJ5X2ZpbGUoYWN0dWFsX2ZpbGVuYW1lLCBvdXRwdXQpCisgICAgICAgIHNlbGYuX3dy
aXRlX2JpbmFyeV9maWxlKGV4cGVjdGVkX2ZpbGVuYW1lLCBleHBlY3RlZCkKIAogICAgIGRlZiB3
cml0ZV9zdGRlcnIoc2VsZiwgZXJyb3IpOgotICAgICAgICBmcyA9IHNlbGYuX2ZpbGVzeXN0ZW0K
ICAgICAgICAgZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9maWxlbmFtZShzZWxmLkZJTEVOQU1FX1NV
RkZJWF9TVERFUlIgKyAiLnR4dCIpCi0gICAgICAgIGZzLm1heWJlX21ha2VfZGlyZWN0b3J5KGZz
LmRpcm5hbWUoZmlsZW5hbWUpKQotICAgICAgICBmcy53cml0ZV9iaW5hcnlfZmlsZShmaWxlbmFt
ZSwgZXJyb3IpCisgICAgICAgIHNlbGYuX3dyaXRlX3RleHRfZmlsZShmaWxlbmFtZSwgZXJyb3Ip
CiAKICAgICBkZWYgd3JpdGVfY3Jhc2hfbG9nKHNlbGYsIGNyYXNoX2xvZyk6Ci0gICAgICAgIGZz
ID0gc2VsZi5fZmlsZXN5c3RlbQogICAgICAgICBmaWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVu
YW1lKHNlbGYuRklMRU5BTUVfU1VGRklYX0NSQVNIX0xPRyArICIudHh0IikKLSAgICAgICAgZnMu
bWF5YmVfbWFrZV9kaXJlY3RvcnkoZnMuZGlybmFtZShmaWxlbmFtZSkpCi0gICAgICAgIGlmIGNy
YXNoX2xvZyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZzLndyaXRlX3RleHRfZmlsZShmaWxl
bmFtZSwgY3Jhc2hfbG9nKQorICAgICAgICBzZWxmLl93cml0ZV90ZXh0X2ZpbGUoZmlsZW5hbWUs
IGNyYXNoX2xvZykKIAogICAgIGRlZiB3cml0ZV90ZXh0X2ZpbGVzKHNlbGYsIGFjdHVhbF90ZXh0
LCBleHBlY3RlZF90ZXh0KToKICAgICAgICAgc2VsZi53cml0ZV9vdXRwdXRfZmlsZXMoIi50eHQi
LCBhY3R1YWxfdGV4dCwgZXhwZWN0ZWRfdGV4dCkKQEAgLTE3MywyOCArMTc1LDI2IEBAIGNsYXNz
IFRlc3RSZXN1bHRXcml0ZXIob2JqZWN0KToKICAgICAgICAgaWYgbm90IGFjdHVhbF90ZXh0IG9y
IG5vdCBleHBlY3RlZF90ZXh0OgogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgc2VsZi5f
bWFrZV9vdXRwdXRfZGlyZWN0b3J5KCkKICAgICAgICAgZmlsZV90eXBlID0gJy50eHQnCiAgICAg
ICAgIGFjdHVhbF9maWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVuYW1lKHNlbGYuRklMRU5BTUVf
U1VGRklYX0FDVFVBTCArIGZpbGVfdHlwZSkKICAgICAgICAgZXhwZWN0ZWRfZmlsZW5hbWUgPSBz
ZWxmLm91dHB1dF9maWxlbmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJWF9FWFBFQ1RFRCArIGZpbGVf
dHlwZSkKLSAgICAgICAgZnMgPSBzZWxmLl9maWxlc3lzdGVtCiAgICAgICAgICMgV2UgdHJlYXQg
ZGlmZiBvdXRwdXQgYXMgYmluYXJ5LiBEaWZmIG91dHB1dCBtYXkgY29udGFpbiBtdWx0aXBsZSBm
aWxlcwogICAgICAgICAjIGluIGNvbmZsaWN0aW5nIGVuY29kaW5ncy4KICAgICAgICAgZGlmZiA9
IHNlbGYuX3BvcnQuZGlmZl90ZXh0KGV4cGVjdGVkX3RleHQsIGFjdHVhbF90ZXh0LCBleHBlY3Rl
ZF9maWxlbmFtZSwgYWN0dWFsX2ZpbGVuYW1lKQogICAgICAgICBkaWZmX2ZpbGVuYW1lID0gc2Vs
Zi5vdXRwdXRfZmlsZW5hbWUoc2VsZi5GSUxFTkFNRV9TVUZGSVhfRElGRiArIGZpbGVfdHlwZSkK
LSAgICAgICAgZnMud3JpdGVfYmluYXJ5X2ZpbGUoZGlmZl9maWxlbmFtZSwgZGlmZikKKyAgICAg
ICAgc2VsZi5fd3JpdGVfYmluYXJ5X2ZpbGUoZGlmZl9maWxlbmFtZSwgZGlmZikKIAogICAgICAg
ICAjIFNoZWxsIG91dCB0byB3ZGlmZiB0byBnZXQgY29sb3JlZCBpbmxpbmUgZGlmZnMuCiAgICAg
ICAgIGlmIHNlbGYuX3BvcnQud2RpZmZfYXZhaWxhYmxlKCk6CiAgICAgICAgICAgICB3ZGlmZiA9
IHNlbGYuX3BvcnQud2RpZmZfdGV4dChleHBlY3RlZF9maWxlbmFtZSwgYWN0dWFsX2ZpbGVuYW1l
KQogICAgICAgICAgICAgd2RpZmZfZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9maWxlbmFtZShzZWxm
LkZJTEVOQU1FX1NVRkZJWF9XRElGRikKLSAgICAgICAgICAgIGZzLndyaXRlX2JpbmFyeV9maWxl
KHdkaWZmX2ZpbGVuYW1lLCB3ZGlmZikKKyAgICAgICAgICAgIHNlbGYuX3dyaXRlX2JpbmFyeV9m
aWxlKHdkaWZmX2ZpbGVuYW1lLCB3ZGlmZikKIAogICAgICAgICAjIFVzZSBXZWJLaXQncyBQcmV0
dHlQYXRjaC5yYiB0byBnZXQgYW4gSFRNTCBkaWZmLgogICAgICAgICBpZiBzZWxmLl9wb3J0LnBy
ZXR0eV9wYXRjaF9hdmFpbGFibGUoKToKICAgICAgICAgICAgIHByZXR0eV9wYXRjaCA9IHNlbGYu
X3BvcnQucHJldHR5X3BhdGNoX3RleHQoZGlmZl9maWxlbmFtZSkKICAgICAgICAgICAgIHByZXR0
eV9wYXRjaF9maWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVuYW1lKHNlbGYuRklMRU5BTUVfU1VG
RklYX1BSRVRUWV9QQVRDSCkKLSAgICAgICAgICAgIGZzLndyaXRlX2JpbmFyeV9maWxlKHByZXR0
eV9wYXRjaF9maWxlbmFtZSwgcHJldHR5X3BhdGNoKQorICAgICAgICAgICAgc2VsZi5fd3JpdGVf
YmluYXJ5X2ZpbGUocHJldHR5X3BhdGNoX2ZpbGVuYW1lLCBwcmV0dHlfcGF0Y2gpCiAKICAgICBk
ZWYgd3JpdGVfYXVkaW9fZmlsZXMoc2VsZiwgYWN0dWFsX2F1ZGlvLCBleHBlY3RlZF9hdWRpbyk6
CiAgICAgICAgIHNlbGYud3JpdGVfb3V0cHV0X2ZpbGVzKCcud2F2JywgYWN0dWFsX2F1ZGlvLCBl
eHBlY3RlZF9hdWRpbykKQEAgLTIwNCw4ICsyMDQsNyBAQCBjbGFzcyBUZXN0UmVzdWx0V3JpdGVy
KG9iamVjdCk6CiAKICAgICBkZWYgd3JpdGVfaW1hZ2VfZGlmZl9maWxlcyhzZWxmLCBpbWFnZV9k
aWZmKToKICAgICAgICAgZGlmZl9maWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVuYW1lKHNlbGYu
RklMRU5BTUVfU1VGRklYX0lNQUdFX0RJRkYpCi0gICAgICAgIGZzID0gc2VsZi5fZmlsZXN5c3Rl
bQotICAgICAgICBmcy53cml0ZV9iaW5hcnlfZmlsZShkaWZmX2ZpbGVuYW1lLCBpbWFnZV9kaWZm
KQorICAgICAgICBzZWxmLl93cml0ZV9iaW5hcnlfZmlsZShkaWZmX2ZpbGVuYW1lLCBpbWFnZV9k
aWZmKQogCiAgICAgICAgIGRpZmZzX2h0bWxfZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9maWxlbmFt
ZShzZWxmLkZJTEVOQU1FX1NVRkZJWF9JTUFHRV9ESUZGU19IVE1MKQogICAgICAgICAjIEZJWE1F
OiBvbGQtcnVuLXdlYmtpdC10ZXN0cyBzaG93cyB0aGUgZGlmZiBwZXJjZW50YWdlIGFzIHRoZSB0
ZXh0IGNvbnRlbnRzIG9mIHRoZSAiZGlmZiIgbGluay4KQEAgLTI2Myw5ICsyNjIsOCBAQCBEaWZm
ZXJlbmNlIGJldHdlZW4gaW1hZ2VzOiA8YSBocmVmPSIlKGRpZmZfZmlsZW5hbWUpcyI+ZGlmZjwv
YT48YnI+CiAgICAgICAgIH0KICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS53cml0ZV90ZXh0X2Zp
bGUoZGlmZnNfaHRtbF9maWxlbmFtZSwgaHRtbCkKIAotICAgIGRlZiBjb3B5X2ZpbGUoc2VsZiwg
c3JjX2ZpbGVwYXRoKToKKyAgICBkZWYgd3JpdGVfcmVmdGVzdChzZWxmLCBzcmNfZmlsZXBhdGgp
OgogICAgICAgICBmcyA9IHNlbGYuX2ZpbGVzeXN0ZW0KLSAgICAgICAgYXNzZXJ0IGZzLmV4aXN0
cyhzcmNfZmlsZXBhdGgpLCAnc3JjX2ZpbGVwYXRoOiAlcycgJSBzcmNfZmlsZXBhdGgKLSAgICAg
ICAgZHN0X2ZpbGVwYXRoID0gZnMuam9pbihzZWxmLl9yb290X291dHB1dF9kaXIsIHNlbGYuX3Bv
cnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShzcmNfZmlsZXBhdGgpKQotICAgICAgICBzZWxmLl9t
YWtlX291dHB1dF9kaXJlY3RvcnkoKQotICAgICAgICBmcy5jb3B5ZmlsZShzcmNfZmlsZXBhdGgs
IGRzdF9maWxlcGF0aCkKKyAgICAgICAgZHN0X2RpciA9IGZzLmRpcm5hbWUoZnMuam9pbihzZWxm
Ll9yb290X291dHB1dF9kaXIsIHNlbGYuX3Rlc3RfbmFtZSkpCisgICAgICAgIGRzdF9maWxlcGF0
aCA9IGZzLmpvaW4oZHN0X2RpciwgZnMuYmFzZW5hbWUoc3JjX2ZpbGVwYXRoKSkKKyAgICAgICAg
c2VsZi5fd3JpdGVfdGV4dF9maWxlKGRzdF9maWxlcGF0aCwgZnMucmVhZF90ZXh0X2ZpbGUoc3Jj
X2ZpbGVwYXRoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkK
aW5kZXggYzEwNmZiZjQ3ZGNkMDk4MzE5MjJmNTA4YWE0MDZkMmNlMTk3MTZlOS4uOTljNjIwZDNi
NzJmMzY5ZGViODczOGI0YWI3YzQ3N2I3MWYwZDExYiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90
ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkKQEAgLTk1MSwxMSArOTUxLDExIEBAIGNsYXNzIEVuZFRv
RW5kVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgibXVs
dGlwbGUtbWlzbWF0Y2gtc3VjY2Vzcy5odG1sIiBub3QgaW4ganNvblsidGVzdHMiXVsicmVmdGVz
dHMiXVsiZm9vIl0pCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgibXVsdGlwbGUtYm90aC1zdWNj
ZXNzLmh0bWwiIG5vdCBpbiBqc29uWyJ0ZXN0cyJdWyJyZWZ0ZXN0cyJdWyJmb28iXSkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChqc29uWyJ0ZXN0cyJdWyJyZWZ0ZXN0cyJdWyJmb28iXVsibXVs
dGlwbGUtbWF0Y2gtZmFpbHVyZS5odG1sIl0sCi0gICAgICAgICAgICB7ImV4cGVjdGVkIjogIlBB
U1MiLCAicmVmX2ZpbGUiOiAicmVmdGVzdHMvZm9vL3NlY29uZC1taXNtYXRjaGluZy1yZWYuaHRt
bCIsICJhY3R1YWwiOiAiSU1BR0UiLCAiaW1hZ2VfZGlmZl9wZXJjZW50IjogMSwgJ2lzX3JlZnRl
c3QnOiBUcnVlfSkKKyAgICAgICAgICAgIHsiZXhwZWN0ZWQiOiAiUEFTUyIsICJhY3R1YWwiOiAi
SU1BR0UiLCAiaW1hZ2VfZGlmZl9wZXJjZW50IjogMSwgJ2lzX3JlZnRlc3QnOiBUcnVlfSkKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChqc29uWyJ0ZXN0cyJdWyJyZWZ0ZXN0cyJdWyJmb28iXVsi
bXVsdGlwbGUtbWlzbWF0Y2gtZmFpbHVyZS5odG1sIl0sCi0gICAgICAgICAgICB7ImV4cGVjdGVk
IjogIlBBU1MiLCAicmVmX2ZpbGUiOiAicmVmdGVzdHMvZm9vL21hdGNoaW5nLXJlZi5odG1sIiwg
ImFjdHVhbCI6ICJJTUFHRSIsICJpc19taXNtYXRjaF9yZWZ0ZXN0IjogVHJ1ZX0pCisgICAgICAg
ICAgICB7ImV4cGVjdGVkIjogIlBBU1MiLCAiYWN0dWFsIjogIklNQUdFIiwgImlzX21pc21hdGNo
X3JlZnRlc3QiOiBUcnVlfSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChqc29uWyJ0ZXN0cyJd
WyJyZWZ0ZXN0cyJdWyJmb28iXVsibXVsdGlwbGUtYm90aC1mYWlsdXJlLmh0bWwiXSwKLSAgICAg
ICAgICAgIHsiZXhwZWN0ZWQiOiAiUEFTUyIsICJyZWZfZmlsZSI6ICJyZWZ0ZXN0cy9mb28vbWF0
Y2hpbmctcmVmLmh0bWwiLCAiYWN0dWFsIjogIklNQUdFIiwgImlzX21pc21hdGNoX3JlZnRlc3Qi
OiBUcnVlfSkKKyAgICAgICAgICAgIHsiZXhwZWN0ZWQiOiAiUEFTUyIsICJhY3R1YWwiOiAiSU1B
R0UiLCAiaXNfbWlzbWF0Y2hfcmVmdGVzdCI6IFRydWV9KQogCiAKIGNsYXNzIFJlYmFzZWxpbmVU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNmYzJm
NmMxNmI5ZmI3YzQ4NDFjYjQ0NWRjYmExNzRlMDRlMzQ4MzQuLmZkMmUwNzI3YTM2NmYxYTQ0YWIy
ODlmYzA4NTc2YWRjYTEwNmY0ZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNy0xMSAg
RGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKworICAgICAgICBFbnN1cmUgdGhh
dCB0ZXN0X3Jlc3VsdF93cml0ZXIuY29weV9maWxlIGNyZWF0ZXMgdGhlIGNvcnJlY3QgZGlyZWN0
b3JpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkw
ODcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIHRlc3RzIGZvciB0aGUgJ3JlZl9maWxlJyBwYXJhbWV0ZXIgaW4gcmVzdWx0cy5qc29uCisg
ICAgICAgIGVudHJpZXMuCisKKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvcmVzb3VyY2VzL3Jlc3Vs
dHMtdGVzdC5qczoKKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvcmVzdWx0cy5odG1sOgorCiAyMDEy
LTA3LTExICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBFbmFibGUgTEVHQUNZX1ZJRVdQT1JUX0FEQVBUSU9OCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2hhcm5lc3MvcmVzb3VyY2VzL3Jlc3VsdHMtdGVzdC5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvaGFybmVzcy9yZXNvdXJjZXMvcmVzdWx0cy10ZXN0LmpzCmluZGV4IGUxNDU3YmQxMzE5
YzNhMDlkZGFlZGM2Y2E2NGZiYmM4MWQ3MjliMTkuLjUzYWZkZmI0OThjMzM0ZDNmMTA5ZTBlYTEz
N2Q4YjczYjMyNGNlYTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9yZXNv
dXJjZXMvcmVzdWx0cy10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9yZXNv
dXJjZXMvcmVzdWx0cy10ZXN0LmpzCkBAIC04LDcgKzgsNyBAQCB0ZXN0U3R5bGVzLmlubmVyVGV4
dCA9ICIudGVzdC1wYXNzIHsgY29sb3I6IGdyZWVuOyB9IC50ZXN0LWZhaWwgeyBjb2xvcjogcmVk
OyB9IgogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCcpLmFwcGVuZENoaWxkKHRlc3RTdHls
ZXMpOwogCiB2YXIgZ190ZXN0SW5kZXggPSAwOwotdmFyIGdfbG9nID0gWyJZb3Ugc2hvdWxkIHNl
ZSBhIHNlcmlvcyBvZiBQQVNTIGxpbmVzLiJdOwordmFyIGdfbG9nID0gWyJZb3Ugc2hvdWxkIHNl
ZSBhIHNlcmllcyBvZiBQQVNTIGxpbmVzLiJdOwogCiAvLyBNYWtlIGFzeW5jIGFjdHVhbGx5IGJl
IHN5bmMgZm9yIHRoZSBzYWtlIG9mIHNpbXBsZXIgdGVzdGluZy4KIGZ1bmN0aW9uIGFzeW5jKGZ1
bmMsIGFyZ3MpCkBAIC0yNzQsMjMgKzI3NCw2IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICBy
ZXN1bHRzLnRlc3RzWydiYXItcmVmdGVzdC1taXNtYXRjaC5odG1sJ10uaXNfbWlzbWF0Y2hfcmVm
dGVzdCA9IHRydWU7CiAgICAgcnVuU2luZ2xlUm93VGVzdChyZXN1bHRzLCBmYWxzZSwgJycsICdy
ZWYgbWlzbWF0Y2ggaHRtbCBhY3R1YWwgJyk7CiAKLSAgICByZXN1bHRzID0gbW9ja1Jlc3VsdHMo
KTsKLSAgICByZXN1bHRzLnRlc3RzWydiYXItcmVmdGVzdC5odG1sJ10gPSBtb2NrRXhwZWN0YXRp
b24oJ1BBU1MnLCAnSU1BR0UnLCAxKTsKLSAgICByZXN1bHRzLnRlc3RzWydiYXItcmVmdGVzdC5o
dG1sJ10uaXNfcmVmdGVzdCA9IHRydWU7Ci0gICAgcmVzdWx0cy50ZXN0c1snYmFyLXJlZnRlc3Qu
aHRtbCddLnJlZl9maWxlID0gJ2NvbW1vbi5odG1sJzsKLSAgICBydW5TaW5nbGVSb3dUZXN0KHJl
c3VsdHMsIGZhbHNlLCAnJywgJ3JlZiBodG1sIGltYWdlcyBkaWZmICgxJSkgJyk7Ci0gICAgcnVu
VGVzdChyZXN1bHRzLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVudC5n
ZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdyZXN1bHQtbGluaycpWzBdLmdldEF0dHJpYnV0ZSgnaHJl
ZicpID09ICdjb21tb24uaHRtbCcpOwotICAgIH0pOwotCi0gICAgcmVzdWx0cyA9IG1vY2tSZXN1
bHRzKCk7Ci0gICAgcmVzdWx0cy50ZXN0c1snYmFyLXJlZnRlc3QuaHRtbCddID0gbW9ja0V4cGVj
dGF0aW9uKCdQQVNTJywgJ0lNQUdFJyk7Ci0gICAgcmVzdWx0cy50ZXN0c1snYmFyLXJlZnRlc3Qu
aHRtbCddLmlzX21pc21hdGNoX3JlZnRlc3QgPSB0cnVlOwotICAgIHJlc3VsdHMudGVzdHNbJ2Jh
ci1yZWZ0ZXN0Lmh0bWwnXS5yZWZfZmlsZSA9ICdjb21tb24uaHRtbCc7Ci0gICAgcnVuU2luZ2xl
Um93VGVzdChyZXN1bHRzLCBmYWxzZSwgJycsICdyZWYgbWlzbWF0Y2ggaHRtbCBhY3R1YWwgJyk7
Ci0gICAgcnVuVGVzdChyZXN1bHRzLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0VHJ1ZShk
b2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdyZXN1bHQtbGluaycpWzBdLmdldEF0dHJp
YnV0ZSgnaHJlZicpID09ICdjb21tb24uaHRtbCcpOwotICAgIH0pOwogCiAgICAgcmVzdWx0cyA9
IG1vY2tSZXN1bHRzKCk7CiAgICAgdmFyIHN1YnRyZWUgPSByZXN1bHRzLnRlc3RzWydmb28nXSA9
IHt9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcmVzdWx0cy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc3VsdHMuaHRtbAppbmRleCBkNTMyMjAwOGZkYjk4
YmFkZGUwYzFhMGI4OTcxNGMwZWYwMWRhMjhkLi5jYjU1ZTNhYjNmOTQzYjc0NGFmOWU1N2NmYjE5
ZmI1OTU5NmI4ZDc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcmVzdWx0
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9yZXN1bHRzLmh0bWwKQEAgLTQz
NSwxMiArNDM1LDcgQEAgZnVuY3Rpb24gdGVzdExpbmtXaXRoRXhwYW5kQnV0dG9uKHRlc3QpCiAK
IGZ1bmN0aW9uIHJlc3VsdExpbmsodGVzdFByZWZpeCwgc3VmZml4LCBjb250ZW50cykKIHsKLSAg
ICByZXR1cm4gcmVmZXJlbmNlTGluayh0ZXN0UHJlZml4LCB0ZXN0UHJlZml4ICsgc3VmZml4LCBj
b250ZW50cyk7Ci19Ci0KLWZ1bmN0aW9uIHJlZmVyZW5jZUxpbmsodGVzdFByZWZpeCwgcmVmZXJl
bmNlX2ZpbGVuYW1lLCBjb250ZW50cykKLXsKLSAgICByZXR1cm4gJzxhIGNsYXNzPXJlc3VsdC1s
aW5rIGhyZWY9IicgKyByZWZlcmVuY2VfZmlsZW5hbWUgKyAnIiBkYXRhLXByZWZpeD0iJyArIHRl
c3RQcmVmaXggKyAnIj4nICsgY29udGVudHMgKyAnPC9hPiAnOworICAgIHJldHVybiAnPGEgY2xh
c3M9cmVzdWx0LWxpbmsgaHJlZj0iJyArIHRlc3RQcmVmaXggKyBzdWZmaXggKyAnIiBkYXRhLXBy
ZWZpeD0iJyArIHRlc3RQcmVmaXggKyAnIj4nICsgY29udGVudHMgKyAnPC9hPiAnOwogfQogCiBm
dW5jdGlvbiBpc0ZhaWx1cmVFeHBlY3RlZChleHBlY3RlZCwgYWN0dWFsKQpAQCAtNTc3LDE3ICs1
NzIsMTEgQEAgZnVuY3Rpb24gdGFibGVSb3codGVzdE9iamVjdCkKICAgICAgICAgZ2xvYmFsU3Rh
dGUoKS5oYXNJbWFnZUZhaWx1cmVzID0gdHJ1ZTsKIAogICAgICAgICBpZiAodGVzdE9iamVjdC5p
c19taXNtYXRjaF9yZWZ0ZXN0KSB7Ci0gICAgICAgICAgICBpZiAodGVzdE9iamVjdC5yZWZfZmls
ZSkKLSAgICAgICAgICAgICAgICByb3cgKz0gcmVmZXJlbmNlTGluayh0ZXN0X3ByZWZpeCwgdGVz
dE9iamVjdC5yZWZfZmlsZSwgJ3JlZiBtaXNtYXRjaCBodG1sJyk7Ci0gICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgcm93ICs9IHJlc3VsdExpbmsodGVzdF9wcmVmaXgsICctZXhwZWN0
ZWQtbWlzbWF0Y2guaHRtbCcsICdyZWYgbWlzbWF0Y2ggaHRtbCcpOworICAgICAgICAgICAgcm93
ICs9IHJlc3VsdExpbmsodGVzdF9wcmVmaXgsICctZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCcsICdy
ZWYgbWlzbWF0Y2ggaHRtbCcpOwogICAgICAgICAgICAgcm93ICs9IHJlc3VsdExpbmsodGVzdF9w
cmVmaXgsICctYWN0dWFsLnBuZycsICdhY3R1YWwnKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIGlmICh0ZXN0T2JqZWN0LmlzX3JlZnRlc3QpIHsKLSAgICAgICAgICAgICAgICBpZiAo
dGVzdE9iamVjdC5yZWZfZmlsZSkKLSAgICAgICAgICAgICAgICAgICAgcm93ICs9IHJlZmVyZW5j
ZUxpbmsodGVzdF9wcmVmaXgsIHRlc3RPYmplY3QucmVmX2ZpbGUsICdyZWYgaHRtbCcpOwotICAg
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcm93ICs9IHJlc3VsdExpbmso
dGVzdF9wcmVmaXgsICctZXhwZWN0ZWQuaHRtbCcsICdyZWYgaHRtbCcpOworICAgICAgICAgICAg
ICAgIHJvdyArPSByZXN1bHRMaW5rKHRlc3RfcHJlZml4LCAnLWV4cGVjdGVkLmh0bWwnLCAncmVm
IGh0bWwnKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChnbG9iYWxTdGF0ZSgpLnNo
b3VsZFRvZ2dsZUltYWdlcykgewogICAgICAgICAgICAgICAgIHJvdyArPSByZXN1bHRMaW5rKHRl
c3RfcHJlZml4LCAnLWRpZmZzLmh0bWwnLCAnaW1hZ2VzJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151810</attachid>
            <date>2012-07-11 16:04:05 -0700</date>
            <delta_ts>2012-07-12 13:24:27 -0700</delta_ts>
            <desc>update ChangeLog</desc>
            <filename>bug-90872-20120711160405.patch</filename>
            <type>text/plain</type>
            <size>18622</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMzY2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTAzOTgxNWVjYTFlN2FkNWU1ZGY2ZTI5ZDBjZDgwOTMz
MWQxMGZkOS4uY2M0NzY1OTBjOWNhZGM2OTE0ODFhZjBmYzdjMGMzOTFmN2Q4Yjc5YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0
IEBACisyMDEyLTA3LTExICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIG5yd3QgY3Jhc2hlcyBzYXZpbmcgdGhlIG91dHB1dCBmb3IgYSBwbGF0Zm9ybS1zcGVj
aWZpYyBleHBlY3RlZCB0ZXN0IHJlZmVyZW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA4NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBhIHRlc3QgaXMgY29w
aWVkIGFsb25nc2lkZSB0aGUgdGVzdAorICAgICAgICBpdHNlbGYgaW4gdGhlIGxheW91dC10ZXN0
LXJlc3VsdHMgZGlyZWN0b3J5OyBpbiBvdGhlciB3b3JkcywgZm9yCisgICAgICAgIGZvby9iYXIt
ZXhwZWN0ZWQudHh0IHNpdHMgYWxvbmdzaWRlIGZvby9iYXIuaHRtbCBldmVuIGlmIHdlJ3JlCisg
ICAgICAgIGFjdHVhbGx5IHVzaW5nIHBsYXRmb3JtL21hYy9mb28vYmFyLWV4cGVjdGVkLnR4dC4K
KworICAgICAgICBVbmxlc3MgdGhlIHRlc3QgaXMgYSByZWZ0ZXN0LCBpbiB3aGljaCBjYXNlIHdl
IHdvdWxkIGNvcHkgdGhlCisgICAgICAgIG91dHB1dCB0byBwbGF0Zm9ybS9tYWMvZm9vL2Jhci1l
eHBlY3RlZC5odG1sIGFuZCBzZXQgYQorICAgICAgICAncmVmX2ZpbGUnIHBhcmFtZXRlciBpbiBy
ZXN1bHRzLmpzb24gdG8gaW5kaWNhdGUgdGhlIHBhdGguIFRoaXMKKyAgICAgICAgY2FuIGJlIHVz
ZWZ1bCBpbiB0aGUgY2FzZXMgd2hlcmUgd2UgaGF2ZSBtdWx0aXBsZSByZWZlcmVuY2VzIGZvcgor
ICAgICAgICBhIHNpbmdsZSB0ZXN0IG9yIHdoZW4gbXVsdGlwbGUgdGVzdHMgc2hhcmUgdGhlIHNh
bWUgcmVmZXJlbmNlLgorCisgICAgICAgIFdlIGZvdW5kIGEgYnVnIHdoZXJlIHdlIHdlcmVuJ3Qg
Y3JlYXRpbmcgcGxhdGZvcm0vbWFjL2ZvbyB1bmRlcgorICAgICAgICB0aGUgcmVzdWx0cyBkaXJl
Y3RvcnksIGFuZCBzbyB0aGlzIHdhc24ndCBhY3R1YWxseSB3b3JraW5nLgorICAgICAgICBIb3dl
dmVyLCB0cmVhdGluZyByZWZ0ZXN0cyBkaWZmZXJlbnRseSBzZWVtcyBsaWtlIGEgYmFkIHRoaW5n
LAorICAgICAgICBzbyB3ZSBzaG91bGQgcHJvYmFibHkgYmUgY29uc2lzdGVudC4gVGhpcyBjaGFu
Z2UgcHV0cyB0aGUKKyAgICAgICAgLWV4cGVjdGVkLmh0bWwgbmV4dCB0byB0aGUgdGVzdCwgYW5k
IHJld29ya3MgdGVzdF9yZXN1bHRfd3JpdGVyCisgICAgICAgIHNvIHRoYXQgd2UgY3JlYXRlIGRp
cmVjdG9yaWVzIHVuaWZvcm1seSBhbmQgY29uc2lzdGVudGx5LgorCisgICAgICAgIE5vdGUgdGhh
dCB3ZSB3ZXJlbid0IGNhdGNoaW5nIHRoaXMgcHJvYmxlbSBpbiB1bml0IHRlc3RzIGJlY2F1c2UK
KyAgICAgICAgdGhlIE1vY2tGaWxlU3lzdGVtIGNyZWF0ZXMgYSBkaXJlY3RvcnkgYXV0b21hdGlj
YWxseSBpZiBpdAorICAgICAgICBkb2Vzbid0IGV4aXN0OyB0aGlzIHdhcyBkb25lIGludGVudGlv
bmFsbHkgZm9yIGNvbnZlbmllbmNlLCBidXQKKyAgICAgICAgaXMgcmVhbGx5IGEgYnVnIGFuZCBz
aG91bGQgYmUgZml4ZWQ7IHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTEwMjguCisKKyAgICAgICAgSSBoYXZlIG5vdCBhZGRlZCBhZGRpdGlvbmFsIHRlc3RzIGhl
cmUgc2luY2UgZml4aW5nIHRoYXQgYnVnCisgICAgICAgIHNob3VsZCBiZSBzdWZmaWNpZW50Lgor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFu
YWdlci5weToKKyAgICAgICAgKGludGVycHJldF90ZXN0X2ZhaWx1cmVzKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0
LnB5OgorICAgICAgICAoUmVzdWx0U3VtbWFyeVRlc3QudGVzdF9pbnRlcnByZXRfdGVzdF9mYWls
dXJlcyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxl
cnMvdGVzdF9yZXN1bHRfd3JpdGVyLnB5OgorICAgICAgICAod3JpdGVfdGVzdF9yZXN1bHQpOgor
ICAgICAgICAoVGVzdFJlc3VsdFdyaXRlci5fd3JpdGVfYmluYXJ5X2ZpbGUpOgorICAgICAgICAo
VGVzdFJlc3VsdFdyaXRlcik6CisgICAgICAgIChUZXN0UmVzdWx0V3JpdGVyLl93cml0ZV90ZXh0
X2ZpbGUpOgorICAgICAgICAoVGVzdFJlc3VsdFdyaXRlci53cml0ZV9vdXRwdXRfZmlsZXMpOgor
ICAgICAgICAoVGVzdFJlc3VsdFdyaXRlci53cml0ZV9zdGRlcnIpOgorICAgICAgICAoVGVzdFJl
c3VsdFdyaXRlci53cml0ZV9jcmFzaF9sb2cpOgorICAgICAgICAoVGVzdFJlc3VsdFdyaXRlci5j
cmVhdGVfdGV4dF9kaWZmX2FuZF93cml0ZV9yZXN1bHQpOgorICAgICAgICAoVGVzdFJlc3VsdFdy
aXRlci53cml0ZV9pbWFnZV9kaWZmX2ZpbGVzKToKKyAgICAgICAgKHdyaXRlX3JlZnRlc3QpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNf
aW50ZWdyYXRpb250ZXN0LnB5OgorICAgICAgICAoRW5kVG9FbmRUZXN0LnRlc3RfcmVmdGVzdF93
aXRoX3R3b19ub3RyZWZzKToKKwogMjAxMi0wNy0xMSAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9A
dGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBbd3hdIFVucmV2aWV3ZWQgYnVpbGQgZml4LiBB
ZGQgbmV3IGRpcmVjdG9yaWVzIGFuZCBhIG5ldyBMYXlvdXRUZXN0Q29udHJvbGxlciBtZXRob2Qu
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvbWFuYWdlci5weQppbmRleCBmMmZlZDNmNGE2MTNjYTEwY2NhMzhjZDdiZTkxODcz
MDBmYzdlNmNjLi45ZjA3ZDYyMGY5YjZmMTIzZDFiMjIxZjE0MjZmZDhkYzE5ZjZlNTY3IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9t
YW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRy
b2xsZXJzL21hbmFnZXIucHkKQEAgLTg4LDExICs4OCw5IEBAIGRlZiBpbnRlcnByZXRfdGVzdF9m
YWlsdXJlcyhwb3J0LCB0ZXN0X25hbWUsIGZhaWx1cmVzKToKICAgICAgICAgICAgIHRlc3RfZGlj
dFsnaW1hZ2VfZGlmZl9wZXJjZW50J10gPSBmYWlsdXJlLmRpZmZfcGVyY2VudAogICAgICAgICBl
bGlmIGlzaW5zdGFuY2UoZmFpbHVyZSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVmdGVzdE1pc21h
dGNoKToKICAgICAgICAgICAgIHRlc3RfZGljdFsnaXNfcmVmdGVzdCddID0gVHJ1ZQotICAgICAg
ICAgICAgdGVzdF9kaWN0WydyZWZfZmlsZSddID0gcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1l
KGZhaWx1cmUucmVmZXJlbmNlX2ZpbGVuYW1lKQogICAgICAgICAgICAgdGVzdF9kaWN0WydpbWFn
ZV9kaWZmX3BlcmNlbnQnXSA9IGZhaWx1cmUuZGlmZl9wZXJjZW50CiAgICAgICAgIGVsaWYgaXNp
bnN0YW5jZShmYWlsdXJlLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2hEaWRO
b3RPY2N1cik6CiAgICAgICAgICAgICB0ZXN0X2RpY3RbJ2lzX21pc21hdGNoX3JlZnRlc3QnXSA9
IFRydWUKLSAgICAgICAgICAgIHRlc3RfZGljdFsncmVmX2ZpbGUnXSA9IHBvcnQucmVsYXRpdmVf
dGVzdF9maWxlbmFtZShmYWlsdXJlLnJlZmVyZW5jZV9maWxlbmFtZSkKIAogICAgIGlmIHRlc3Rf
ZmFpbHVyZXMuRmFpbHVyZU1pc3NpbmdSZXN1bHQgaW4gZmFpbHVyZV90eXBlczoKICAgICAgICAg
dGVzdF9kaWN0Wydpc19taXNzaW5nX3RleHQnXSA9IFRydWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5h
Z2VyX3VuaXR0ZXN0LnB5CmluZGV4IDM0OTYzMjJhOTcyZGNkODZjNTI5MjFiNjI0OTA2MGU1YmYw
NDEzNzAuLjI3ZjA2YTcwZTFiYWNkNmQxZjc0MjUyZmVkODJhYzk5OTIxOTg3ODEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFn
ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
Y29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQpAQCAtNDUyLDcgKzQ1Miw2IEBAIGNsYXNz
IFJlc3VsdFN1bW1hcnlUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIFt0ZXN0
X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2goc2VsZi5wb3J0LmFic3BhdGhfZm9yX3Rl
c3QoJ2Zvby9jb21tb24uaHRtbCcpKV0pCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnaXNfcmVm
dGVzdCcgaW4gdGVzdF9kaWN0KQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdpc19taXNtYXRj
aF9yZWZ0ZXN0JyBpbiB0ZXN0X2RpY3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdF9k
aWN0WydyZWZfZmlsZSddLCAnZm9vL2NvbW1vbi5odG1sJykKIAogICAgICAgICB0ZXN0X2RpY3Qg
PSBpbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhzZWxmLnBvcnQsICdmb28vcmVmdGVzdC5odG1sJywK
ICAgICAgICAgICAgIFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2hEaWROb3RP
Y2N1cihzZWxmLnBvcnQuYWJzcGF0aF9mb3JfdGVzdCgnZm9vL3JlZnRlc3QtZXhwZWN0ZWQtbWlz
bWF0Y2guaHRtbCcpKV0pCkBAIC00NjMsNyArNDYyLDYgQEAgY2xhc3MgUmVzdWx0U3VtbWFyeVRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgW3Rlc3RfZmFpbHVyZXMuRmFpbHVy
ZVJlZnRlc3RNaXNtYXRjaERpZE5vdE9jY3VyKHNlbGYucG9ydC5hYnNwYXRoX2Zvcl90ZXN0KCdm
b28vY29tbW9uLmh0bWwnKSldKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdpc19yZWZ0ZXN0
JyBpbiB0ZXN0X2RpY3QpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0ZXN0X2RpY3RbJ2lzX21p
c21hdGNoX3JlZnRlc3QnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0X2RpY3RbJ3Jl
Zl9maWxlJ10sICdmb28vY29tbW9uLmh0bWwnKQogCiAgICAgZGVmIGdldF9yZXN1bHQoc2VsZiwg
dGVzdF9uYW1lLCByZXN1bHRfdHlwZT10ZXN0X2V4cGVjdGF0aW9ucy5QQVNTLCBydW5fdGltZT0w
KToKICAgICAgICAgZmFpbHVyZXMgPSBbXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRf
d3JpdGVyLnB5CmluZGV4IDYyZDIxNGVlOWYzNDhmODBhZmIwNzJhMzg3YjNlOWJjYTFiNTA2MzAu
LmUxMjAxYWNmNjI1NTRiZGNjNDYwNzM1NWQ2ZGViYTA4MGQ3NjY4OWQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfcmVzdWx0
X3dyaXRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXIucHkKQEAgLTQwLDYgKzQwLDcgQEAgZGVmIHdyaXRl
X3Rlc3RfcmVzdWx0KGZpbGVzeXN0ZW0sIHBvcnQsIHRlc3RfbmFtZSwgZHJpdmVyX291dHB1dCwK
ICAgICAiIiJXcml0ZSB0aGUgdGVzdCByZXN1bHQgdG8gdGhlIHJlc3VsdCBvdXRwdXQgZGlyZWN0
b3J5LiIiIgogICAgIHJvb3Rfb3V0cHV0X2RpciA9IHBvcnQucmVzdWx0c19kaXJlY3RvcnkoKQog
ICAgIHdyaXRlciA9IFRlc3RSZXN1bHRXcml0ZXIoZmlsZXN5c3RlbSwgcG9ydCwgcm9vdF9vdXRw
dXRfZGlyLCB0ZXN0X25hbWUpCisKICAgICBpZiBkcml2ZXJfb3V0cHV0LmVycm9yOgogICAgICAg
ICB3cml0ZXIud3JpdGVfc3RkZXJyKGRyaXZlcl9vdXRwdXQuZXJyb3IpCiAKQEAgLTc0LDEwICs3
NSwxMCBAQCBkZWYgd3JpdGVfdGVzdF9yZXN1bHQoZmlsZXN5c3RlbSwgcG9ydCwgdGVzdF9uYW1l
LCBkcml2ZXJfb3V0cHV0LAogICAgICAgICAgICAgICAgICAgICBmYWlsdXJlLmRpZmZfcGVyY2Vu
dCA9IGRpZmZfcGVyY2VudAogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAg
ICAgIF9sb2cud2FybignQ2FuIG5vdCBnZXQgaW1hZ2UgZGlmZi4gSW1hZ2VEaWZmIHByb2dyYW0g
bWlnaHQgbm90IHdvcmsgY29ycmVjdGx5LicpCi0gICAgICAgICAgICB3cml0ZXIuY29weV9maWxl
KGZhaWx1cmUucmVmZXJlbmNlX2ZpbGVuYW1lKQorICAgICAgICAgICAgd3JpdGVyLndyaXRlX3Jl
ZnRlc3QoZmFpbHVyZS5yZWZlcmVuY2VfZmlsZW5hbWUpCiAgICAgICAgIGVsaWYgaXNpbnN0YW5j
ZShmYWlsdXJlLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2hEaWROb3RPY2N1
cik6CiAgICAgICAgICAgICB3cml0ZXIud3JpdGVfaW1hZ2VfZmlsZXMoZHJpdmVyX291dHB1dC5p
bWFnZSwgZXhwZWN0ZWRfaW1hZ2U9Tm9uZSkKLSAgICAgICAgICAgIHdyaXRlci5jb3B5X2ZpbGUo
ZmFpbHVyZS5yZWZlcmVuY2VfZmlsZW5hbWUpCisgICAgICAgICAgICB3cml0ZXIud3JpdGVfcmVm
dGVzdChmYWlsdXJlLnJlZmVyZW5jZV9maWxlbmFtZSkKICAgICAgICAgZWxzZToKICAgICAgICAg
ICAgIGFzc2VydCBpc2luc3RhbmNlKGZhaWx1cmUsICh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUaW1l
b3V0LCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0Tm9JbWFnZXNHZW5lcmF0ZWQpKQogCkBA
IC0xMjQsNiArMTI1LDE2IEBAIGNsYXNzIFRlc3RSZXN1bHRXcml0ZXIob2JqZWN0KToKICAgICAg
ICAgb3V0cHV0X2ZpbGVuYW1lID0gZnMuam9pbihzZWxmLl9yb290X291dHB1dF9kaXIsIHNlbGYu
X3Rlc3RfbmFtZSkKICAgICAgICAgcmV0dXJuIGZzLnNwbGl0ZXh0KG91dHB1dF9maWxlbmFtZSlb
MF0gKyBtb2RpZmllcgogCisgICAgZGVmIF93cml0ZV9iaW5hcnlfZmlsZShzZWxmLCBwYXRoLCBj
b250ZW50cyk6CisgICAgICAgIGlmIGNvbnRlbnRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
c2VsZi5fbWFrZV9vdXRwdXRfZGlyZWN0b3J5KCkKKyAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0
ZW0ud3JpdGVfYmluYXJ5X2ZpbGUocGF0aCwgY29udGVudHMpCisKKyAgICBkZWYgX3dyaXRlX3Rl
eHRfZmlsZShzZWxmLCBwYXRoLCBjb250ZW50cyk6CisgICAgICAgIGlmIGNvbnRlbnRzIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgc2VsZi5fbWFrZV9vdXRwdXRfZGlyZWN0b3J5KCkKKyAgICAg
ICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKHBhdGgsIGNvbnRlbnRzKQor
CiAgICAgZGVmIF9vdXRwdXRfdGVzdG5hbWUoc2VsZiwgbW9kaWZpZXIpOgogICAgICAgICBmcyA9
IHNlbGYuX2ZpbGVzeXN0ZW0KICAgICAgICAgcmV0dXJuIGZzLnNwbGl0ZXh0KGZzLmJhc2VuYW1l
KHNlbGYuX3Rlc3RfbmFtZSkpWzBdICsgbW9kaWZpZXIKQEAgLTE0MSwyOCArMTUyLDE5IEBAIGNs
YXNzIFRlc3RSZXN1bHRXcml0ZXIob2JqZWN0KToKICAgICAgICAgICBvdXRwdXQ6IEEgc3RyaW5n
IGNvbnRhaW5pbmcgdGhlIHRlc3Qgb3V0cHV0CiAgICAgICAgICAgZXhwZWN0ZWQ6IEEgc3RyaW5n
IGNvbnRhaW5pbmcgdGhlIGV4cGVjdGVkIHRlc3Qgb3V0cHV0CiAgICAgICAgICIiIgotICAgICAg
ICBzZWxmLl9tYWtlX291dHB1dF9kaXJlY3RvcnkoKQogICAgICAgICBhY3R1YWxfZmlsZW5hbWUg
PSBzZWxmLm91dHB1dF9maWxlbmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJWF9BQ1RVQUwgKyBmaWxl
X3R5cGUpCiAgICAgICAgIGV4cGVjdGVkX2ZpbGVuYW1lID0gc2VsZi5vdXRwdXRfZmlsZW5hbWUo
c2VsZi5GSUxFTkFNRV9TVUZGSVhfRVhQRUNURUQgKyBmaWxlX3R5cGUpCiAKLSAgICAgICAgZnMg
PSBzZWxmLl9maWxlc3lzdGVtCi0gICAgICAgIGlmIG91dHB1dCBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgIGZzLndyaXRlX2JpbmFyeV9maWxlKGFjdHVhbF9maWxlbmFtZSwgb3V0cHV0KQotICAg
ICAgICBpZiBleHBlY3RlZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZzLndyaXRlX2JpbmFy
eV9maWxlKGV4cGVjdGVkX2ZpbGVuYW1lLCBleHBlY3RlZCkKKyAgICAgICAgc2VsZi5fd3JpdGVf
YmluYXJ5X2ZpbGUoYWN0dWFsX2ZpbGVuYW1lLCBvdXRwdXQpCisgICAgICAgIHNlbGYuX3dyaXRl
X2JpbmFyeV9maWxlKGV4cGVjdGVkX2ZpbGVuYW1lLCBleHBlY3RlZCkKIAogICAgIGRlZiB3cml0
ZV9zdGRlcnIoc2VsZiwgZXJyb3IpOgotICAgICAgICBmcyA9IHNlbGYuX2ZpbGVzeXN0ZW0KICAg
ICAgICAgZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9maWxlbmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJ
WF9TVERFUlIgKyAiLnR4dCIpCi0gICAgICAgIGZzLm1heWJlX21ha2VfZGlyZWN0b3J5KGZzLmRp
cm5hbWUoZmlsZW5hbWUpKQotICAgICAgICBmcy53cml0ZV9iaW5hcnlfZmlsZShmaWxlbmFtZSwg
ZXJyb3IpCisgICAgICAgIHNlbGYuX3dyaXRlX3RleHRfZmlsZShmaWxlbmFtZSwgZXJyb3IpCiAK
ICAgICBkZWYgd3JpdGVfY3Jhc2hfbG9nKHNlbGYsIGNyYXNoX2xvZyk6Ci0gICAgICAgIGZzID0g
c2VsZi5fZmlsZXN5c3RlbQogICAgICAgICBmaWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVuYW1l
KHNlbGYuRklMRU5BTUVfU1VGRklYX0NSQVNIX0xPRyArICIudHh0IikKLSAgICAgICAgZnMubWF5
YmVfbWFrZV9kaXJlY3RvcnkoZnMuZGlybmFtZShmaWxlbmFtZSkpCi0gICAgICAgIGlmIGNyYXNo
X2xvZyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZzLndyaXRlX3RleHRfZmlsZShmaWxlbmFt
ZSwgY3Jhc2hfbG9nKQorICAgICAgICBzZWxmLl93cml0ZV90ZXh0X2ZpbGUoZmlsZW5hbWUsIGNy
YXNoX2xvZykKIAogICAgIGRlZiB3cml0ZV90ZXh0X2ZpbGVzKHNlbGYsIGFjdHVhbF90ZXh0LCBl
eHBlY3RlZF90ZXh0KToKICAgICAgICAgc2VsZi53cml0ZV9vdXRwdXRfZmlsZXMoIi50eHQiLCBh
Y3R1YWxfdGV4dCwgZXhwZWN0ZWRfdGV4dCkKQEAgLTE3MywyOCArMTc1LDI2IEBAIGNsYXNzIFRl
c3RSZXN1bHRXcml0ZXIob2JqZWN0KToKICAgICAgICAgaWYgbm90IGFjdHVhbF90ZXh0IG9yIG5v
dCBleHBlY3RlZF90ZXh0OgogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgc2VsZi5fbWFr
ZV9vdXRwdXRfZGlyZWN0b3J5KCkKICAgICAgICAgZmlsZV90eXBlID0gJy50eHQnCiAgICAgICAg
IGFjdHVhbF9maWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVuYW1lKHNlbGYuRklMRU5BTUVfU1VG
RklYX0FDVFVBTCArIGZpbGVfdHlwZSkKICAgICAgICAgZXhwZWN0ZWRfZmlsZW5hbWUgPSBzZWxm
Lm91dHB1dF9maWxlbmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJWF9FWFBFQ1RFRCArIGZpbGVfdHlw
ZSkKLSAgICAgICAgZnMgPSBzZWxmLl9maWxlc3lzdGVtCiAgICAgICAgICMgV2UgdHJlYXQgZGlm
ZiBvdXRwdXQgYXMgYmluYXJ5LiBEaWZmIG91dHB1dCBtYXkgY29udGFpbiBtdWx0aXBsZSBmaWxl
cwogICAgICAgICAjIGluIGNvbmZsaWN0aW5nIGVuY29kaW5ncy4KICAgICAgICAgZGlmZiA9IHNl
bGYuX3BvcnQuZGlmZl90ZXh0KGV4cGVjdGVkX3RleHQsIGFjdHVhbF90ZXh0LCBleHBlY3RlZF9m
aWxlbmFtZSwgYWN0dWFsX2ZpbGVuYW1lKQogICAgICAgICBkaWZmX2ZpbGVuYW1lID0gc2VsZi5v
dXRwdXRfZmlsZW5hbWUoc2VsZi5GSUxFTkFNRV9TVUZGSVhfRElGRiArIGZpbGVfdHlwZSkKLSAg
ICAgICAgZnMud3JpdGVfYmluYXJ5X2ZpbGUoZGlmZl9maWxlbmFtZSwgZGlmZikKKyAgICAgICAg
c2VsZi5fd3JpdGVfYmluYXJ5X2ZpbGUoZGlmZl9maWxlbmFtZSwgZGlmZikKIAogICAgICAgICAj
IFNoZWxsIG91dCB0byB3ZGlmZiB0byBnZXQgY29sb3JlZCBpbmxpbmUgZGlmZnMuCiAgICAgICAg
IGlmIHNlbGYuX3BvcnQud2RpZmZfYXZhaWxhYmxlKCk6CiAgICAgICAgICAgICB3ZGlmZiA9IHNl
bGYuX3BvcnQud2RpZmZfdGV4dChleHBlY3RlZF9maWxlbmFtZSwgYWN0dWFsX2ZpbGVuYW1lKQog
ICAgICAgICAgICAgd2RpZmZfZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9maWxlbmFtZShzZWxmLkZJ
TEVOQU1FX1NVRkZJWF9XRElGRikKLSAgICAgICAgICAgIGZzLndyaXRlX2JpbmFyeV9maWxlKHdk
aWZmX2ZpbGVuYW1lLCB3ZGlmZikKKyAgICAgICAgICAgIHNlbGYuX3dyaXRlX2JpbmFyeV9maWxl
KHdkaWZmX2ZpbGVuYW1lLCB3ZGlmZikKIAogICAgICAgICAjIFVzZSBXZWJLaXQncyBQcmV0dHlQ
YXRjaC5yYiB0byBnZXQgYW4gSFRNTCBkaWZmLgogICAgICAgICBpZiBzZWxmLl9wb3J0LnByZXR0
eV9wYXRjaF9hdmFpbGFibGUoKToKICAgICAgICAgICAgIHByZXR0eV9wYXRjaCA9IHNlbGYuX3Bv
cnQucHJldHR5X3BhdGNoX3RleHQoZGlmZl9maWxlbmFtZSkKICAgICAgICAgICAgIHByZXR0eV9w
YXRjaF9maWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVuYW1lKHNlbGYuRklMRU5BTUVfU1VGRklY
X1BSRVRUWV9QQVRDSCkKLSAgICAgICAgICAgIGZzLndyaXRlX2JpbmFyeV9maWxlKHByZXR0eV9w
YXRjaF9maWxlbmFtZSwgcHJldHR5X3BhdGNoKQorICAgICAgICAgICAgc2VsZi5fd3JpdGVfYmlu
YXJ5X2ZpbGUocHJldHR5X3BhdGNoX2ZpbGVuYW1lLCBwcmV0dHlfcGF0Y2gpCiAKICAgICBkZWYg
d3JpdGVfYXVkaW9fZmlsZXMoc2VsZiwgYWN0dWFsX2F1ZGlvLCBleHBlY3RlZF9hdWRpbyk6CiAg
ICAgICAgIHNlbGYud3JpdGVfb3V0cHV0X2ZpbGVzKCcud2F2JywgYWN0dWFsX2F1ZGlvLCBleHBl
Y3RlZF9hdWRpbykKQEAgLTIwNCw4ICsyMDQsNyBAQCBjbGFzcyBUZXN0UmVzdWx0V3JpdGVyKG9i
amVjdCk6CiAKICAgICBkZWYgd3JpdGVfaW1hZ2VfZGlmZl9maWxlcyhzZWxmLCBpbWFnZV9kaWZm
KToKICAgICAgICAgZGlmZl9maWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVuYW1lKHNlbGYuRklM
RU5BTUVfU1VGRklYX0lNQUdFX0RJRkYpCi0gICAgICAgIGZzID0gc2VsZi5fZmlsZXN5c3RlbQot
ICAgICAgICBmcy53cml0ZV9iaW5hcnlfZmlsZShkaWZmX2ZpbGVuYW1lLCBpbWFnZV9kaWZmKQor
ICAgICAgICBzZWxmLl93cml0ZV9iaW5hcnlfZmlsZShkaWZmX2ZpbGVuYW1lLCBpbWFnZV9kaWZm
KQogCiAgICAgICAgIGRpZmZzX2h0bWxfZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9maWxlbmFtZShz
ZWxmLkZJTEVOQU1FX1NVRkZJWF9JTUFHRV9ESUZGU19IVE1MKQogICAgICAgICAjIEZJWE1FOiBv
bGQtcnVuLXdlYmtpdC10ZXN0cyBzaG93cyB0aGUgZGlmZiBwZXJjZW50YWdlIGFzIHRoZSB0ZXh0
IGNvbnRlbnRzIG9mIHRoZSAiZGlmZiIgbGluay4KQEAgLTI2Myw5ICsyNjIsOCBAQCBEaWZmZXJl
bmNlIGJldHdlZW4gaW1hZ2VzOiA8YSBocmVmPSIlKGRpZmZfZmlsZW5hbWUpcyI+ZGlmZjwvYT48
YnI+CiAgICAgICAgIH0KICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUo
ZGlmZnNfaHRtbF9maWxlbmFtZSwgaHRtbCkKIAotICAgIGRlZiBjb3B5X2ZpbGUoc2VsZiwgc3Jj
X2ZpbGVwYXRoKToKKyAgICBkZWYgd3JpdGVfcmVmdGVzdChzZWxmLCBzcmNfZmlsZXBhdGgpOgog
ICAgICAgICBmcyA9IHNlbGYuX2ZpbGVzeXN0ZW0KLSAgICAgICAgYXNzZXJ0IGZzLmV4aXN0cyhz
cmNfZmlsZXBhdGgpLCAnc3JjX2ZpbGVwYXRoOiAlcycgJSBzcmNfZmlsZXBhdGgKLSAgICAgICAg
ZHN0X2ZpbGVwYXRoID0gZnMuam9pbihzZWxmLl9yb290X291dHB1dF9kaXIsIHNlbGYuX3BvcnQu
cmVsYXRpdmVfdGVzdF9maWxlbmFtZShzcmNfZmlsZXBhdGgpKQotICAgICAgICBzZWxmLl9tYWtl
X291dHB1dF9kaXJlY3RvcnkoKQotICAgICAgICBmcy5jb3B5ZmlsZShzcmNfZmlsZXBhdGgsIGRz
dF9maWxlcGF0aCkKKyAgICAgICAgZHN0X2RpciA9IGZzLmRpcm5hbWUoZnMuam9pbihzZWxmLl9y
b290X291dHB1dF9kaXIsIHNlbGYuX3Rlc3RfbmFtZSkpCisgICAgICAgIGRzdF9maWxlcGF0aCA9
IGZzLmpvaW4oZHN0X2RpciwgZnMuYmFzZW5hbWUoc3JjX2ZpbGVwYXRoKSkKKyAgICAgICAgc2Vs
Zi5fd3JpdGVfdGV4dF9maWxlKGRzdF9maWxlcGF0aCwgZnMucmVhZF90ZXh0X2ZpbGUoc3JjX2Zp
bGVwYXRoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkKaW5k
ZXggYzEwNmZiZjQ3ZGNkMDk4MzE5MjJmNTA4YWE0MDZkMmNlMTk3MTZlOS4uOTljNjIwZDNiNzJm
MzY5ZGViODczOGI0YWI3YzQ3N2I3MWYwZDExYiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0
c19pbnRlZ3JhdGlvbnRlc3QucHkKQEAgLTk1MSwxMSArOTUxLDExIEBAIGNsYXNzIEVuZFRvRW5k
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgibXVsdGlw
bGUtbWlzbWF0Y2gtc3VjY2Vzcy5odG1sIiBub3QgaW4ganNvblsidGVzdHMiXVsicmVmdGVzdHMi
XVsiZm9vIl0pCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgibXVsdGlwbGUtYm90aC1zdWNjZXNz
Lmh0bWwiIG5vdCBpbiBqc29uWyJ0ZXN0cyJdWyJyZWZ0ZXN0cyJdWyJmb28iXSkKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChqc29uWyJ0ZXN0cyJdWyJyZWZ0ZXN0cyJdWyJmb28iXVsibXVsdGlw
bGUtbWF0Y2gtZmFpbHVyZS5odG1sIl0sCi0gICAgICAgICAgICB7ImV4cGVjdGVkIjogIlBBU1Mi
LCAicmVmX2ZpbGUiOiAicmVmdGVzdHMvZm9vL3NlY29uZC1taXNtYXRjaGluZy1yZWYuaHRtbCIs
ICJhY3R1YWwiOiAiSU1BR0UiLCAiaW1hZ2VfZGlmZl9wZXJjZW50IjogMSwgJ2lzX3JlZnRlc3Qn
OiBUcnVlfSkKKyAgICAgICAgICAgIHsiZXhwZWN0ZWQiOiAiUEFTUyIsICJhY3R1YWwiOiAiSU1B
R0UiLCAiaW1hZ2VfZGlmZl9wZXJjZW50IjogMSwgJ2lzX3JlZnRlc3QnOiBUcnVlfSkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChqc29uWyJ0ZXN0cyJdWyJyZWZ0ZXN0cyJdWyJmb28iXVsibXVs
dGlwbGUtbWlzbWF0Y2gtZmFpbHVyZS5odG1sIl0sCi0gICAgICAgICAgICB7ImV4cGVjdGVkIjog
IlBBU1MiLCAicmVmX2ZpbGUiOiAicmVmdGVzdHMvZm9vL21hdGNoaW5nLXJlZi5odG1sIiwgImFj
dHVhbCI6ICJJTUFHRSIsICJpc19taXNtYXRjaF9yZWZ0ZXN0IjogVHJ1ZX0pCisgICAgICAgICAg
ICB7ImV4cGVjdGVkIjogIlBBU1MiLCAiYWN0dWFsIjogIklNQUdFIiwgImlzX21pc21hdGNoX3Jl
ZnRlc3QiOiBUcnVlfSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChqc29uWyJ0ZXN0cyJdWyJy
ZWZ0ZXN0cyJdWyJmb28iXVsibXVsdGlwbGUtYm90aC1mYWlsdXJlLmh0bWwiXSwKLSAgICAgICAg
ICAgIHsiZXhwZWN0ZWQiOiAiUEFTUyIsICJyZWZfZmlsZSI6ICJyZWZ0ZXN0cy9mb28vbWF0Y2hp
bmctcmVmLmh0bWwiLCAiYWN0dWFsIjogIklNQUdFIiwgImlzX21pc21hdGNoX3JlZnRlc3QiOiBU
cnVlfSkKKyAgICAgICAgICAgIHsiZXhwZWN0ZWQiOiAiUEFTUyIsICJhY3R1YWwiOiAiSU1BR0Ui
LCAiaXNfbWlzbWF0Y2hfcmVmdGVzdCI6IFRydWV9KQogCiAKIGNsYXNzIFJlYmFzZWxpbmVUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNmYzJmNmMx
NmI5ZmI3YzQ4NDFjYjQ0NWRjYmExNzRlMDRlMzQ4MzQuLjUzMThhZGVmYThiMGU4YTdiZTBmYjM0
MTUwZmEwZGUxZjg4OGE1MDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNy0xMSAgRGly
ayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKworICAgICAgICBucnd0IGNyYXNoZXMg
c2F2aW5nIHRoZSBvdXRwdXQgZm9yIGEgcGxhdGZvcm0tc3BlY2lmaWMgZXhwZWN0ZWQgdGVzdCBy
ZWZlcmVuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkwODcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIHRlc3RzIGZvciB0aGUgJ3JlZl9maWxlJyBwYXJhbWV0ZXIgaW4gcmVzdWx0cy5qc29u
CisgICAgICAgIGVudHJpZXMuCisKKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvcmVzb3VyY2VzL3Jl
c3VsdHMtdGVzdC5qczoKKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvcmVzdWx0cy5odG1sOgorCiAy
MDEyLTA3LTExICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0No
cm9taXVtXSBFbmFibGUgTEVHQUNZX1ZJRVdQT1JUX0FEQVBUSU9OCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2hhcm5lc3MvcmVzb3VyY2VzL3Jlc3VsdHMtdGVzdC5qcyBiL0xheW91dFRl
c3RzL2Zhc3QvaGFybmVzcy9yZXNvdXJjZXMvcmVzdWx0cy10ZXN0LmpzCmluZGV4IGUxNDU3YmQx
MzE5YzNhMDlkZGFlZGM2Y2E2NGZiYmM4MWQ3MjliMTkuLjUzYWZkZmI0OThjMzM0ZDNmMTA5ZTBl
YTEzN2Q4YjczYjMyNGNlYTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9y
ZXNvdXJjZXMvcmVzdWx0cy10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9y
ZXNvdXJjZXMvcmVzdWx0cy10ZXN0LmpzCkBAIC04LDcgKzgsNyBAQCB0ZXN0U3R5bGVzLmlubmVy
VGV4dCA9ICIudGVzdC1wYXNzIHsgY29sb3I6IGdyZWVuOyB9IC50ZXN0LWZhaWwgeyBjb2xvcjog
cmVkOyB9IgogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCcpLmFwcGVuZENoaWxkKHRlc3RT
dHlsZXMpOwogCiB2YXIgZ190ZXN0SW5kZXggPSAwOwotdmFyIGdfbG9nID0gWyJZb3Ugc2hvdWxk
IHNlZSBhIHNlcmlvcyBvZiBQQVNTIGxpbmVzLiJdOwordmFyIGdfbG9nID0gWyJZb3Ugc2hvdWxk
IHNlZSBhIHNlcmllcyBvZiBQQVNTIGxpbmVzLiJdOwogCiAvLyBNYWtlIGFzeW5jIGFjdHVhbGx5
IGJlIHN5bmMgZm9yIHRoZSBzYWtlIG9mIHNpbXBsZXIgdGVzdGluZy4KIGZ1bmN0aW9uIGFzeW5j
KGZ1bmMsIGFyZ3MpCkBAIC0yNzQsMjMgKzI3NCw2IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAg
ICByZXN1bHRzLnRlc3RzWydiYXItcmVmdGVzdC1taXNtYXRjaC5odG1sJ10uaXNfbWlzbWF0Y2hf
cmVmdGVzdCA9IHRydWU7CiAgICAgcnVuU2luZ2xlUm93VGVzdChyZXN1bHRzLCBmYWxzZSwgJycs
ICdyZWYgbWlzbWF0Y2ggaHRtbCBhY3R1YWwgJyk7CiAKLSAgICByZXN1bHRzID0gbW9ja1Jlc3Vs
dHMoKTsKLSAgICByZXN1bHRzLnRlc3RzWydiYXItcmVmdGVzdC5odG1sJ10gPSBtb2NrRXhwZWN0
YXRpb24oJ1BBU1MnLCAnSU1BR0UnLCAxKTsKLSAgICByZXN1bHRzLnRlc3RzWydiYXItcmVmdGVz
dC5odG1sJ10uaXNfcmVmdGVzdCA9IHRydWU7Ci0gICAgcmVzdWx0cy50ZXN0c1snYmFyLXJlZnRl
c3QuaHRtbCddLnJlZl9maWxlID0gJ2NvbW1vbi5odG1sJzsKLSAgICBydW5TaW5nbGVSb3dUZXN0
KHJlc3VsdHMsIGZhbHNlLCAnJywgJ3JlZiBodG1sIGltYWdlcyBkaWZmICgxJSkgJyk7Ci0gICAg
cnVuVGVzdChyZXN1bHRzLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0VHJ1ZShkb2N1bWVu
dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdyZXN1bHQtbGluaycpWzBdLmdldEF0dHJpYnV0ZSgn
aHJlZicpID09ICdjb21tb24uaHRtbCcpOwotICAgIH0pOwotCi0gICAgcmVzdWx0cyA9IG1vY2tS
ZXN1bHRzKCk7Ci0gICAgcmVzdWx0cy50ZXN0c1snYmFyLXJlZnRlc3QuaHRtbCddID0gbW9ja0V4
cGVjdGF0aW9uKCdQQVNTJywgJ0lNQUdFJyk7Ci0gICAgcmVzdWx0cy50ZXN0c1snYmFyLXJlZnRl
c3QuaHRtbCddLmlzX21pc21hdGNoX3JlZnRlc3QgPSB0cnVlOwotICAgIHJlc3VsdHMudGVzdHNb
J2Jhci1yZWZ0ZXN0Lmh0bWwnXS5yZWZfZmlsZSA9ICdjb21tb24uaHRtbCc7Ci0gICAgcnVuU2lu
Z2xlUm93VGVzdChyZXN1bHRzLCBmYWxzZSwgJycsICdyZWYgbWlzbWF0Y2ggaHRtbCBhY3R1YWwg
Jyk7Ci0gICAgcnVuVGVzdChyZXN1bHRzLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0VHJ1
ZShkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdyZXN1bHQtbGluaycpWzBdLmdldEF0
dHJpYnV0ZSgnaHJlZicpID09ICdjb21tb24uaHRtbCcpOwotICAgIH0pOwogCiAgICAgcmVzdWx0
cyA9IG1vY2tSZXN1bHRzKCk7CiAgICAgdmFyIHN1YnRyZWUgPSByZXN1bHRzLnRlc3RzWydmb28n
XSA9IHt9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcmVzdWx0cy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc3VsdHMuaHRtbAppbmRleCBkNTMyMjAwOGZk
Yjk4YmFkZGUwYzFhMGI4OTcxNGMwZWYwMWRhMjhkLi5jYjU1ZTNhYjNmOTQzYjc0NGFmOWU1N2Nm
YjE5ZmI1OTU5NmI4ZDc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcmVz
dWx0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9yZXN1bHRzLmh0bWwKQEAg
LTQzNSwxMiArNDM1LDcgQEAgZnVuY3Rpb24gdGVzdExpbmtXaXRoRXhwYW5kQnV0dG9uKHRlc3Qp
CiAKIGZ1bmN0aW9uIHJlc3VsdExpbmsodGVzdFByZWZpeCwgc3VmZml4LCBjb250ZW50cykKIHsK
LSAgICByZXR1cm4gcmVmZXJlbmNlTGluayh0ZXN0UHJlZml4LCB0ZXN0UHJlZml4ICsgc3VmZml4
LCBjb250ZW50cyk7Ci19Ci0KLWZ1bmN0aW9uIHJlZmVyZW5jZUxpbmsodGVzdFByZWZpeCwgcmVm
ZXJlbmNlX2ZpbGVuYW1lLCBjb250ZW50cykKLXsKLSAgICByZXR1cm4gJzxhIGNsYXNzPXJlc3Vs
dC1saW5rIGhyZWY9IicgKyByZWZlcmVuY2VfZmlsZW5hbWUgKyAnIiBkYXRhLXByZWZpeD0iJyAr
IHRlc3RQcmVmaXggKyAnIj4nICsgY29udGVudHMgKyAnPC9hPiAnOworICAgIHJldHVybiAnPGEg
Y2xhc3M9cmVzdWx0LWxpbmsgaHJlZj0iJyArIHRlc3RQcmVmaXggKyBzdWZmaXggKyAnIiBkYXRh
LXByZWZpeD0iJyArIHRlc3RQcmVmaXggKyAnIj4nICsgY29udGVudHMgKyAnPC9hPiAnOwogfQog
CiBmdW5jdGlvbiBpc0ZhaWx1cmVFeHBlY3RlZChleHBlY3RlZCwgYWN0dWFsKQpAQCAtNTc3LDE3
ICs1NzIsMTEgQEAgZnVuY3Rpb24gdGFibGVSb3codGVzdE9iamVjdCkKICAgICAgICAgZ2xvYmFs
U3RhdGUoKS5oYXNJbWFnZUZhaWx1cmVzID0gdHJ1ZTsKIAogICAgICAgICBpZiAodGVzdE9iamVj
dC5pc19taXNtYXRjaF9yZWZ0ZXN0KSB7Ci0gICAgICAgICAgICBpZiAodGVzdE9iamVjdC5yZWZf
ZmlsZSkKLSAgICAgICAgICAgICAgICByb3cgKz0gcmVmZXJlbmNlTGluayh0ZXN0X3ByZWZpeCwg
dGVzdE9iamVjdC5yZWZfZmlsZSwgJ3JlZiBtaXNtYXRjaCBodG1sJyk7Ci0gICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgcm93ICs9IHJlc3VsdExpbmsodGVzdF9wcmVmaXgsICctZXhw
ZWN0ZWQtbWlzbWF0Y2guaHRtbCcsICdyZWYgbWlzbWF0Y2ggaHRtbCcpOworICAgICAgICAgICAg
cm93ICs9IHJlc3VsdExpbmsodGVzdF9wcmVmaXgsICctZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCcs
ICdyZWYgbWlzbWF0Y2ggaHRtbCcpOwogICAgICAgICAgICAgcm93ICs9IHJlc3VsdExpbmsodGVz
dF9wcmVmaXgsICctYWN0dWFsLnBuZycsICdhY3R1YWwnKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIGlmICh0ZXN0T2JqZWN0LmlzX3JlZnRlc3QpIHsKLSAgICAgICAgICAgICAgICBp
ZiAodGVzdE9iamVjdC5yZWZfZmlsZSkKLSAgICAgICAgICAgICAgICAgICAgcm93ICs9IHJlZmVy
ZW5jZUxpbmsodGVzdF9wcmVmaXgsIHRlc3RPYmplY3QucmVmX2ZpbGUsICdyZWYgaHRtbCcpOwot
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcm93ICs9IHJlc3VsdExp
bmsodGVzdF9wcmVmaXgsICctZXhwZWN0ZWQuaHRtbCcsICdyZWYgaHRtbCcpOworICAgICAgICAg
ICAgICAgIHJvdyArPSByZXN1bHRMaW5rKHRlc3RfcHJlZml4LCAnLWV4cGVjdGVkLmh0bWwnLCAn
cmVmIGh0bWwnKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChnbG9iYWxTdGF0ZSgp
LnNob3VsZFRvZ2dsZUltYWdlcykgewogICAgICAgICAgICAgICAgIHJvdyArPSByZXN1bHRMaW5r
KHRlc3RfcHJlZml4LCAnLWRpZmZzLmh0bWwnLCAnaW1hZ2VzJyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>