<?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>37664</bug_id>
          
          <creation_ts>2010-04-15 11:23:59 -0700</creation_ts>
          <short_desc>Chromium: Add --chromium option to new-run-webkit-websocketserver</short_desc>
          <delta_ts>2010-05-20 02:08:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fumitoshi Ukai">ukai</reporter>
          <assigned_to name="Fumitoshi Ukai">ukai</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>212943</commentid>
    <comment_count>0</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-04-15 11:23:59 -0700</bug_when>
    <thetext>webkitpy.layout_tets.ports.websocket_server will use port_obj.path_from_chromium_base(), but this method is available only for chromium port obj.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212949</commentid>
    <comment_count>1</comment_count>
      <attachid>53456</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-04-15 11:27:58 -0700</bug_when>
    <thetext>Created attachment 53456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213659</commentid>
    <comment_count>2</comment_count>
      <attachid>53456</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-17 13:32:06 -0700</bug_when>
    <thetext>Comment on attachment 53456
Patch

Ok...

+ if self._chromium and sys.platform in (&apos;cygwin&apos;, &apos;win32&apos;):

All of these lines are wrong.  Knowledge of chromium should be confined to the chromium port classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213663</commentid>
    <comment_count>3</comment_count>
      <attachid>53456</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-17 13:51:03 -0700</bug_when>
    <thetext>Comment on attachment 53456
Patch

Oops.  Misclick.  This code is improperly factored. websocket_server.py should have no knowledge of chromium or path_from_chromium_base.  All that knowledge needs to be moved into files with the word &quot;chromium&quot; in their names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214490</commentid>
    <comment_count>4</comment_count>
      <attachid>53773</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-04-19 23:04:04 -0700</bug_when>
    <thetext>Created attachment 53773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215791</commentid>
    <comment_count>5</comment_count>
      <attachid>53773</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-22 02:21:32 -0700</bug_when>
    <thetext>Comment on attachment 53773
Patch

This looks great!  What is self._chromium used for?  I don&apos;t see it anywhere...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215792</commentid>
    <comment_count>6</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-04-22 02:32:42 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 53773 [details])
&gt; This looks great!  What is self._chromium used for?  I don&apos;t see it anywhere...

Oh, unnecessary. I&apos;ll remove self._chromium from websocket_server.PyWebSocket.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215793</commentid>
    <comment_count>7</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-04-22 02:34:32 -0700</bug_when>
    <thetext>Committed r58077: &lt;http://trac.webkit.org/changeset/58077&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215801</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-22 03:13:37 -0700</bug_when>
    <thetext>Clearly we need better unit testing since this took 3 clean-up patches. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215802</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-22 03:14:59 -0700</bug_when>
    <thetext>Thank you for doing this fix.  This will make running new-run-webkit-tests on Apple Windows much easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216103</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-22 15:21:08 -0700</bug_when>
    <thetext>Actually it took 5 cleanup patches, and it&apos;s still wrong.  This broke rebaseline-chromium-webkit-tests:
http://paste.lisp.org/display/98166

We shouldnt&apos; be doing this CYGWIN stuff in __init__ but rather in some other explicit method call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216104</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-22 15:22:28 -0700</bug_when>
    <thetext>We need to get better about requiring unit testing for every python change.  We were good about it at the beginning of webkitpy, but have slacked with the addition of all this untested chromium py code. :(

I&apos;ve been bad about it too.  See my 12 commits to try and get the unicode() stuff working yesterday (which is still broken).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216113</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-22 15:42:16 -0700</bug_when>
    <thetext>Okiedokes.  All future changes much have unit tests.  You heard it here first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216136</commentid>
    <comment_count>13</comment_count>
      <attachid>54103</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-22 16:12:08 -0700</bug_when>
    <thetext>Created attachment 54103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216137</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-22 16:13:01 -0700</bug_when>
    <thetext>Patch up to revert this and all the follow-ups.  rebaseline-chromium-webkit-test is still broken.  Please re-land after this code has some testing (at least manual tests before landing).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216145</commentid>
    <comment_count>15</comment_count>
      <attachid>54103</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-22 16:22:17 -0700</bug_when>
    <thetext>Comment on attachment 54103
Patch

Sad, but ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216178</commentid>
    <comment_count>16</comment_count>
      <attachid>54103</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-04-22 17:30:29 -0700</bug_when>
    <thetext>Comment on attachment 54103
Patch

&gt; @@ -230,7 +246,7 @@ class PyWebSocket(http_server.Lighttpd):
&gt;             pid = self._process.pid
&gt;         elif self._pidfile:
&gt;              with codecs.open(self._pidfile, &quot;r&quot;, &quot;ascii&quot;) as file:
&gt; -                pid = int(file.read().strip())
&gt; +                pid = int(f.read().strip())
&gt; 
&gt;         if not pid:
&gt;             raise PyWebSocketNotFound(

Don&apos;t revert here!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216186</commentid>
    <comment_count>17</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-04-22 17:43:53 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Actually it took 5 cleanup patches, and it&apos;s still wrong.  This broke
&gt; rebaseline-chromium-webkit-tests:
&gt; http://paste.lisp.org/display/98166
&gt; 
&gt; We shouldnt&apos; be doing this CYGWIN stuff in __init__ but rather in some other
&gt; explicit method call.

It looks rebaseline_chromium_webkit_tests.py assumes chromium port, but the log looks didn&apos;t run in chromium tree.  So, usage error?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216187</commentid>
    <comment_count>18</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-22 17:45:50 -0700</bug_when>
    <thetext>Before this set of patches, I could run rebaseline-chromium-webkit-tests just fine from a pure WebKit checkout.  Breaking that behavior would be a regression.  Regardless, it&apos;s pretty obvious from the stack that the script is attempting to run windows-specific logic on a mac, which won&apos;t work from a WebKit or a chromium checkout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216188</commentid>
    <comment_count>19</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-22 17:48:21 -0700</bug_when>
    <thetext>Log:


100422 17:47:47 rebaseline_chromium_webkit_tests.py:151 INFO ----------------------------- Rebaseline done: mac -----------------------------
Traceback (most recent call last):
  File &quot;./WebKitTools/Scripts/rebaseline-chromium-webkit-tests&quot;, line 44, in &lt;module&gt;
    rebaseline_chromium_webkit_tests.main()
  File &quot;/usr/local/home/jamesr/WebKit_svn/WebKitTools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py&quot;, line 1069, in main
    rebaseliner = Rebaseliner(port_obj, target_port_obj, platform, options)
  File &quot;/usr/local/home/jamesr/WebKit_svn/WebKitTools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py&quot;, line 224, in __init__
    self._target_port.test_platform_name_to_name(platform), options)
  File &quot;/usr/local/home/jamesr/WebKit_svn/WebKitTools/Scripts/webkitpy/layout_tests/port/factory.py&quot;, line 85, in get
    return chromium_win.ChromiumWinPort(port_name, options)
  File &quot;/usr/local/home/jamesr/WebKit_svn/WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_win.py&quot;, line 56, in __init__
    self.path_from_chromium_base(&apos;third_party&apos;, &apos;cygwin&apos;, &apos;bin&apos;),
  File &quot;/usr/local/home/jamesr/WebKit_svn/WebKitTools/Scripts/webkitpy/layout_tests/port/chromium.py&quot;, line 148, in path_from_chromium_base
    abspath)
AssertionError: could not find Chromium base dir from /usr/local/home/jamesr/WebKit_svn/WebKitTools/Scripts/webkitpy/layout_tests/port/chromium.pyc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216189</commentid>
    <comment_count>20</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-04-22 17:49:33 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Before this set of patches, I could run rebaseline-chromium-webkit-tests just
&gt; fine from a pure WebKit checkout.  Breaking that behavior would be a
&gt; regression.  Regardless, it&apos;s pretty obvious from the stack that the script is
&gt; attempting to run windows-specific logic on a mac, which won&apos;t work from a
&gt; WebKit or a chromium checkout.

Then, it should be a bug of webkitpy.layout_tests.port.factory.  It got wrong port object?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216192</commentid>
    <comment_count>21</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-22 17:53:19 -0700</bug_when>
    <thetext>I don&apos;t know what the exact problem is.  I know that it used to work, then a bunch of patches landed, and now it doesn&apos;t work.  I would much rather get back to the state where it worked and then have folks figure out what the bug is without checking it back in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216211</commentid>
    <comment_count>22</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-22 18:43:14 -0700</bug_when>
    <thetext>reopening</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216262</commentid>
    <comment_count>23</comment_count>
      <attachid>54103</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-22 21:29:13 -0700</bug_when>
    <thetext>Comment on attachment 54103
Patch

Clearing flags on attachment: 54103

Committed r58146: &lt;http://trac.webkit.org/changeset/58146&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216263</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-22 21:29:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216266</commentid>
    <comment_count>25</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-04-22 21:34:48 -0700</bug_when>
    <thetext>revert was landed. So reopen this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216276</commentid>
    <comment_count>26</comment_count>
      <attachid>54130</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-04-22 22:00:34 -0700</bug_when>
    <thetext>Created attachment 54130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216309</commentid>
    <comment_count>27</comment_count>
      <attachid>54130</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-23 00:31:16 -0700</bug_when>
    <thetext>Comment on attachment 54130
Patch

What&apos;s different this time?  There&apos;s also the question of when we&apos;re going to start requiring tests for this stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216313</commentid>
    <comment_count>28</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-04-23 00:37:03 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 54130 [details])
&gt; What&apos;s different this time?  There&apos;s also the question of when we&apos;re going to
&gt; start requiring tests for this stuff.

Extracted code using path_from_chromium_base() into setup_environ_for_server() from constructor.
Since chromium port object might be constructed in non-chromium tree (e.g rebaseline tool), we couldn&apos;t use path_from_chromium_base() in constructor even if it is in chromium port object.
So, move such code to setup_environ_for_server() and this method is called at original location.

I&apos;m not sure what kind of tests would be ok.. because it depends on mostly platform, so simple test would run on some platform, but may not on other.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216946</commentid>
    <comment_count>29</comment_count>
      <attachid>54267</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-04-26 01:59:00 -0700</bug_when>
    <thetext>Created attachment 54267
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219394</commentid>
    <comment_count>30</comment_count>
      <attachid>54267</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-30 00:46:59 -0700</bug_when>
    <thetext>Comment on attachment 54267
Patch

(In reply to comment #29)
&gt; Created an attachment (id=54267) [details]

I notice several style improvements that can be made to this patch.  Some
of these improvements may be judgment calls while others are more clearly
spelled out by PEP8.  I&apos;m including all of them for future guidance and consideration, etc.

I will let another reviewer review the substantive elements of this patch, as I haven&apos;t studied this particular area of code much.

&gt; +++ b/WebKitTools/ChangeLog
&gt; +        env setup and setup_mount for cygwin is moved in ChromiumWinPort.setup_environ_for_server.
&gt; +
&gt; +        * Scripts/webkitpy/layout_tests/port/http_server.py:
&gt; +          remove register_cygwin parameter
&gt; +          call setup_environ_for_server()
&gt; +        * Scripts/webkitpy/layout_tests/port/websocket_server.py:
&gt; +          remove register_cygwin parameter
&gt; +          call setup_environ_for_server()

The sentences in the ChangeLog comments would be more readable if they
began with a capital letter and ended in a period as proper sentences do.

&gt; +++ b/WebKitTools/Scripts/new-run-webkit-websocketserver
&gt; @@ -55,6 +55,10 @@ def main():
&gt;                               default=&apos;&apos;, help=&apos;TLS private key file.&apos;)
&gt;      option_parser.add_option(&apos;-c&apos;, &apos;--certificate&apos;, dest=&apos;certificate&apos;,
&gt;                               default=&apos;&apos;, help=&apos;TLS certificate file.&apos;)
&gt; +    option_parser.add_option(&apos;--chromium&apos;, action=&apos;store_true&apos;,
&gt; +                             dest=&apos;chromium&apos;,
&gt; +                             default=False,
&gt; +                             help=&apos;use the Chromium port&apos;)

The formatting of the help text should be consistent with the formatting
of the texts of the other help options for this command.  Does the prevailing
formatting for these options begin with a capital letter?  Does the
prevailing format give the texts an ending period or not?

&gt; +++ b/WebKitTools/Scripts/webkitpy/layout_tests/port/base.py
&gt; @@ -419,7 +419,12 @@ class Port(object):
&gt;  
&gt;      def setup_test_run(self):
&gt;          &quot;&quot;&quot;This routine can be overridden to perform any port-specific
&gt; -        work that shouuld be done at the beginning of a test run.&quot;&quot;&quot;
&gt; +        work that should be done at the beginning of a test run.&quot;&quot;&quot;
&gt; +        pass
&gt; +
&gt; +    def setup_environ_for_server(self):
&gt; +        &quot;&quot;&quot;This routine can be overridden to perform any port-specific
&gt; +        work that should be done at the beginning of a server launch.&quot;&quot;&quot;

PEP8 describes specific style rules that doc strings should follow.
In particular--

(1) The first sentence should fit on one line (under 80 characters).
(2) The first sentence should read as a command (e.g. &quot;Set up a test run.&quot;).
(3) The closing triple quotes should be on a line by themselves and be
    preceded by a blank line.
    
For example--

&gt;      def setup_test_run(self):
&gt;          &quot;&quot;&quot;Perform port-specific work at the beginning of a test run.
&gt;
&gt;          You can override this routine if necessary.
&gt;
&gt;          &quot;&quot;&quot;

&gt; +++ b/WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_win.py
&gt; +        # Put the cygwin directory first in the path to find cygwin1.dll

PEP8 says that, generally speaking, Python comments should be written
as a complete sentence and end in a period.

&gt; +        # Put the cygwin directory so that pywebsocket finds proper python
&gt; +        # executable to run cgi program.

Do you mean to say, &quot;Configure the cygwin directory so that...&quot;?

&gt; +        if sys.platform == &apos;win32&apos; and self._options and \
&gt; +                hasattr(self._options, &apos;register_cygwin&apos;) and \
&gt; +                self._options.register_cygwin:

PEP8 says that the preferred way to wrap long lines is to use implied
line continuation rather than a trailing backslash.  This will also
make it clearer where to indent on the second and subsequent lines, e.g.

&gt; +        if (sys.platform == &apos;win32&apos; and self._options and
&gt; +            hasattr(self._options, &apos;register_cygwin&apos;) and
&gt; +            self._options.register_cygwin):


&gt; +            setup_mount = self.path_from_chromium_base(
&gt; +                &apos;third_party&apos;, &apos;cygwin&apos;, &apos;setup_mount.bat&apos;)

This may read better as--

&gt; +            setup_mount = self.path_from_chromium_base(&apos;third_party&apos;,
&gt; +                                                       &apos;cygwin&apos;,
&gt; +                                                       &apos;setup_mount.bat&apos;)

&gt; +++ b/WebKitTools/Scripts/webkitpy/layout_tests/port/factory_unittest.py
&gt; +import unittest
&gt; +import chromium_linux
&gt; +import chromium_mac
&gt; +import chromium_win
&gt; +import dryrun
&gt; +import factory
&gt; +import gtk
&gt; +import mac
&gt; +import qt
&gt; +import sys
&gt; +import test
&gt; +import win

PEP8 says to group import statements in the following order and separate
the groups by a blank line: (1) standard library, (2) third party, and 
(3) local library.  For example--

import sys
import unittest

import chromium_...
...

&gt; +class FactoryTest(unittest.TestCase):
&gt; +    &quot;&quot;&quot;Tests factory can create proper port object from port_name,
&gt; +    sys.platform and options.
&gt; +    &quot;&quot;&quot;

Docstring styling as above.

&gt; +    class WebKitOptions(object):
&gt; +        &quot;&quot;&quot;Mimimum options for WebKit port.&quot;&quot;&quot;

Minimum.  Also, you may want to say, &quot;Represents the minimum options...
.&quot;

&gt; +    class ChromiumOptions(WebKitOptions):
&gt; +        &quot;&quot;&quot;Mimimum options for Chromium port.&quot;&quot;&quot;

Minimum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221561</commentid>
    <comment_count>31</comment_count>
      <attachid>55213</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-05-06 01:31:24 -0700</bug_when>
    <thetext>Created attachment 55213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223067</commentid>
    <comment_count>32</comment_count>
      <attachid>55213</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-09 13:59:29 -0700</bug_when>
    <thetext>Comment on attachment 55213
Patch

+        You can override this routine if necessary.

doesn&apos;t seem to add any clarity and should likely be removed.

Seems:
 201         self._port_obj.setup_environ_for_server()

Should return an env.  Then you don&apos;t ever need to modify os.environ.

this should be some sort of helper assert:
124         sys.platform = &apos;cygwin&apos;
 125         self.assertTrue(isinstance(factory.get(options=self.chromium_options),
 126                                    chromium_win.ChromiumWinPort))
self.assert_port(&quot;cygwin&quot;, chromium.ChromiumWinPort, self.chromium_options)
or similar.

That would get rid of a bunch of copy/paste code in your test file.

r- for the environ modification and the copy/paste code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223152</commentid>
    <comment_count>33</comment_count>
      <attachid>55520</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-05-09 22:21:45 -0700</bug_when>
    <thetext>Created attachment 55520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226001</commentid>
    <comment_count>34</comment_count>
      <attachid>55520</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-14 14:23:56 -0700</bug_when>
    <thetext>Comment on attachment 55520
Patch

WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_win.py:52
 +          chromium.ChromiumPort.setup_environ_for_server(self)
This is wrong.  I know it doesn&apos;t do anyting yet, but I Think you meant env = chromium.ChromiumPort.setup_environ_for_server, no?

WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_win.py:54
 +          env = os.environ
This line wouldn&apos;t be needed if the above was fixed.

WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_win.py:55
 +          env[&apos;PATH&apos;] = &apos;%s;%s&apos; % (
Not a big deal at all, but I think the conciseness was to standardize on &quot; over &apos;.   I don&apos;t really care which we use so long as we try to pick one. :)

WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_win.py:62
 +          if (sys.platform == &apos;win32&apos; and self._options and
We need to move away from this hasattr pattern and towards one where the options are closer to the code at hand.  A genric &quot;options&quot; element is a bad design.  Code which uses certain optiosn should always require those to be passed.

WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_win.py:68
 +              subprocess.Popen(setup_mount).wait()
Why not Executive.run_command()?

WebKitTools/Scripts/webkitpy/layout_tests/port/factory_unittest.py:51
 +      class WebKitOptions(object):
The ports themselves should expose what options they require.  But we&apos;ll fix that globally at some later date.

WebKitTools/Scripts/webkitpy/layout_tests/port/factory_unittest.py:139
 +  if __name__ == &apos;__main__&apos;:
I don&apos;t think these are generally used in our unittest setup.

Certainly looks better than the code that was there before.  r- for the env = chromium.ChromiumPort.setup_environ_for_server() issue, all the rest are nits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226616</commentid>
    <comment_count>35</comment_count>
      <attachid>56210</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-05-16 22:10:21 -0700</bug_when>
    <thetext>Created attachment 56210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226634</commentid>
    <comment_count>36</comment_count>
      <attachid>56210</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-16 23:59:52 -0700</bug_when>
    <thetext>Comment on attachment 56210
Patch

I&apos;m uncertain if we should be returning a copy of os.environ or not.
 426         return os.environ

Your change does not change behavior though, so it&apos;s fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226635</commentid>
    <comment_count>37</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-05-17 00:07:10 -0700</bug_when>
    <thetext>Committed r59595: &lt;http://trac.webkit.org/changeset/59595&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226944</commentid>
    <comment_count>38</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-17 15:33:37 -0700</bug_when>
    <thetext>Looks like there are some WebSocket test failures on Windows:
http://build.webkit.org/results/Windows%20Release%20(Tests)/r59626%20(12752)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228230</commentid>
    <comment_count>39</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-05-20 00:39:31 -0700</bug_when>
    <thetext>It doesn&apos;t pass options to factory.get()), so it gets WinPort even if --chromium flag is used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228231</commentid>
    <comment_count>40</comment_count>
      <attachid>56569</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-05-20 00:39:56 -0700</bug_when>
    <thetext>Created attachment 56569
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228236</commentid>
    <comment_count>41</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-05-20 00:46:15 -0700</bug_when>
    <thetext>Committed r59823: &lt;http://trac.webkit.org/changeset/59823&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228265</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-20 01:22:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59823 might have broken SnowLeopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228266</commentid>
    <comment_count>43</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-20 01:23:24 -0700</bug_when>
    <thetext>The latest change broke websocket tests on all platforms.  Please fix or rollout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228281</commentid>
    <comment_count>44</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-05-20 02:08:16 -0700</bug_when>
    <thetext>(In reply to comment #43)
&gt; The latest change broke websocket tests on all platforms.  Please fix or rollout.

Sorry.
Fixed by r59824: &lt;http://trac.webkit.org/changeset/59824&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53456</attachid>
            <date>2010-04-15 11:27:58 -0700</date>
            <delta_ts>2010-04-19 23:03:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37664-20100416032756.patch</filename>
            <type>text/plain</type>
            <size>3909</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwMmMzNTI1Li45MTAwNDI4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDQt
MTUgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW06IEFkZCAtLWNocm9taXVt
IG9wdGlvbiB0byBuZXctcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NjY0CisKKyAgICAgICAgKiBTY3Jp
cHRzL25ldy1ydW4td2Via2l0LXdlYnNvY2tldHNlcnZlcjoKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHk6CisKIDIwMTAtMDQt
MTQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXct
cnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIgYi9XZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4t
d2Via2l0LXdlYnNvY2tldHNlcnZlcgpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1Cmlu
ZGV4IDExOWY2ZTMuLjAwY2E2ZmEKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdl
YmtpdC13ZWJzb2NrZXRzZXJ2ZXIKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdl
YmtpdC13ZWJzb2NrZXRzZXJ2ZXIKQEAgLTU0LDYgKzU0LDEwIEBAIGRlZiBtYWluKCk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J1RMUyBwcml2YXRlIGtl
eSBmaWxlLicpCiAgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctYycsICctLWNlcnRpZmlj
YXRlJywgZGVzdD0nY2VydGlmaWNhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0PScnLCBoZWxwPSdUTFMgY2VydGlmaWNhdGUgZmlsZS4nKQorICAgIG9wdGlvbl9wYXJz
ZXIuYWRkX29wdGlvbignLS1jaHJvbWl1bScsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2Nocm9taXVtJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0ndXNlIHRoZSBDaHJvbWl1bSBwb3J0JykKICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRp
b24oJy0tcmVnaXN0ZXJfY3lnd2luJywgYWN0aW9uPSJzdG9yZV90cnVlIiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVzdD0icmVnaXN0ZXJfY3lnd2luIiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVscD0nUmVnaXN0ZXIgQ3lnd2luIHBhdGhzIChvbiBXaW4gdHJ5IGJv
dHMpJykKQEAgLTc4LDggKzgyLDEwIEBAIGRlZiBtYWluKCk6CiAgICAga3dkc1sncmVnaXN0ZXJf
Y3lnd2luJ10gPSBvcHRpb25zLnJlZ2lzdGVyX2N5Z3dpbgogICAgIGlmIG9wdGlvbnMucGlkZmls
ZToKICAgICAgICAga3dkc1sncGlkZmlsZSddID0gb3B0aW9ucy5waWRmaWxlCisgICAgaWYgb3B0
aW9ucy5jaHJvbWl1bToKKyAgICAgICAga3dkc1snY2hyb21pdW0nXSA9IG9wdGlvbnMuY2hyb21p
dW0KIAotICAgIHBvcnRfb2JqID0gZmFjdG9yeS5nZXQoKQorICAgIHBvcnRfb2JqID0gZmFjdG9y
eS5nZXQob3B0aW9ucz1vcHRpb25zKQogICAgIHB5d2Vic29ja2V0ID0gd2Vic29ja2V0X3NlcnZl
ci5QeVdlYlNvY2tldChwb3J0X29iaiwgdGVtcGZpbGUuZ2V0dGVtcGRpcigpLCAqKmt3ZHMpCiAK
ICAgICBpZiAnc3RhcnQnID09IG9wdGlvbnMuc2VydmVyOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2Nr
ZXRfc2VydmVyLnB5CmluZGV4IDczOTkwM2YuLjE0ODg0NWIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dl
YnNvY2tldF9zZXJ2ZXIucHkKQEAgLTkyLDYgKzkyLDcgQEAgY2xhc3MgUHlXZWJTb2NrZXQoaHR0
cF9zZXJ2ZXIuTGlnaHR0cGQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X29iaiwgb3V0
cHV0X2RpciwgcG9ydD1fREVGQVVMVF9XU19QT1JULAogICAgICAgICAgICAgICAgICByb290PU5v
bmUsIHVzZV90bHM9RmFsc2UsCiAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX2N5Z3dpbj1UcnVl
LAorICAgICAgICAgICAgICAgICBjaHJvbWl1bT1GYWxzZSwKICAgICAgICAgICAgICAgICAgcGlk
ZmlsZT1Ob25lKToKICAgICAgICAgIiIiQXJnczoKICAgICAgICAgICBvdXRwdXRfZGlyOiB0aGUg
YWJzb2x1dGUgcGF0aCB0byB0aGUgbGF5b3V0IHRlc3QgcmVzdWx0IGRpcmVjdG9yeQpAQCAtMTE0
LDYgKzExNSw3IEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0dHBfc2VydmVyLkxpZ2h0dHBkKToKICAg
ICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuX3NlcnZlcl9uYW1lID0gJ1B5V2ViU29ja2V0
JwogICAgICAgICBzZWxmLl9waWRmaWxlID0gcGlkZmlsZQorICAgICAgICBzZWxmLl9jaHJvbWl1
bSA9IGNocm9taXVtCiAgICAgICAgIHNlbGYuX3dzb3V0ID0gTm9uZQogCiAgICAgICAgICMgV2Vi
a2l0IHRlc3RzCkBAIC0xODMsNyArMTg1LDcgQEAgY2xhc3MgUHlXZWJTb2NrZXQoaHR0cF9zZXJ2
ZXIuTGlnaHR0cGQpOgogCiAgICAgICAgICMgUHV0IHRoZSBjeWd3aW4gZGlyZWN0b3J5IGZpcnN0
IGluIHRoZSBwYXRoIHRvIGZpbmQgY3lnd2luMS5kbGwKICAgICAgICAgZW52ID0gb3MuZW52aXJv
bgotICAgICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCdjeWd3aW4nLCAnd2luMzInKToKKyAgICAg
ICAgaWYgc2VsZi5fY2hyb21pdW0gYW5kIHN5cy5wbGF0Zm9ybSBpbiAoJ2N5Z3dpbicsICd3aW4z
MicpOgogICAgICAgICAgICAgZW52WydQQVRIJ10gPSAnJXM7JXMnICUgKAogICAgICAgICAgICAg
ICAgIHNlbGYuX3BvcnRfb2JqLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCd0aGlyZF9wYXJ0eScs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2N5Z3dpbicsICdiaW4nKSwKQEAgLTE5MSw3ICsxOTMsOCBAQCBjbGFzcyBQeVdlYlNvY2tldCho
dHRwX3NlcnZlci5MaWdodHRwZCk6CiAgICAgICAgICAgICBlbnZbJ0NZR1dJTl9QQVRIJ10gPSBz
ZWxmLl9wb3J0X29iai5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgKICAgICAgICAgICAgICAgICAn
dGhpcmRfcGFydHknLCAnY3lnd2luJywgJ2JpbicpCiAKLSAgICAgICAgaWYgc3lzLnBsYXRmb3Jt
ID09ICd3aW4zMicgYW5kIHNlbGYuX3JlZ2lzdGVyX2N5Z3dpbjoKKyAgICAgICAgaWYgc2VsZi5f
Y2hyb21pdW0gYW5kIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIGFuZCBcCisgICAgICAgICAgICAg
ICAgc2VsZi5fcmVnaXN0ZXJfY3lnd2luOgogICAgICAgICAgICAgc2V0dXBfbW91bnQgPSBzZWxm
Ll9wb3J0X29iai5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgKICAgICAgICAgICAgICAgICAndGhp
cmRfcGFydHknLCAnY3lnd2luJywgJ3NldHVwX21vdW50LmJhdCcpCiAgICAgICAgICAgICBzdWJw
cm9jZXNzLlBvcGVuKHNldHVwX21vdW50KS53YWl0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53773</attachid>
            <date>2010-04-19 23:04:04 -0700</date>
            <delta_ts>2010-04-22 16:12:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37664-20100420150402.patch</filename>
            <type>text/plain</type>
            <size>8598</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjYTYwOTgzLi4yZTY4OGE4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDQt
MTkgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW06IEFkZCAtLWNocm9taXVt
IG9wdGlvbiB0byBuZXctcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NjY0CisKKyAgICAgICAgTW92ZSBj
eWd3aW4gc2V0dXAgbG9naWMgaW4gY2hyb21pdW1fd2luLnB5LgorCisgICAgICAgICogU2NyaXB0
cy9uZXctcnVuLXdlYmtpdC1odHRwZDogcmVtb3ZlIHJlZ2lzdGVyX2N5Z3dpbiBwYXJhbWV0ZXIg
dG8gcGFzcyBodHRwX3NlcnZlci4KKyAgICAgICAgKiBTY3JpcHRzL25ldy1ydW4td2Via2l0LXdl
YnNvY2tldHNlcnZlcjogYWRkIC0tY2hyb21pdW0gZmxhZworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luLnB5OiBzZXR1cCBmb3IgY3lnd2lu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZl
ci5weTogcmVtb3ZlIGN5Z3dpbiBzZXR1cCBsb2dpYworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weTogcmVtb3ZlIGN5Z3dpbiBz
ZXR1cCBsb2dpYworCiAyMDEwLTA0LTE5ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4K
IAogICAgICAgICBObyByZXZpZXcsIHJvbGxpbmcgb3V0IDU3ODY4LgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC1odHRwZCBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQKaW5kZXggODhhZTg0ZS4uZjZlYzE2NCAxMDA3NTUKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC1odHRwZAorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LWh0dHBkCkBAIC02NSw3ICs2NSw2IEBAIGRlZiBy
dW4ob3B0aW9ucyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGZp
bGUuZ2V0dGVtcGRpcigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBv
cnQ9b3B0aW9ucy5wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJv
b3Q9b3B0aW9ucy5yb290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
Z2lzdGVyX2N5Z3dpbj1vcHRpb25zLnJlZ2lzdGVyX2N5Z3dpbiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5fYmFja2dyb3VuZD1vcHRpb25zLnJ1bl9iYWNrZ3JvdW5k
KQogICAgICAgICBpZiBvcHRpb25zLnNlcnZlciA9PSAnc3RhcnQnOgogICAgICAgICAgICAgaHR0
cGQuc3RhcnQoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtp
dC13ZWJzb2NrZXRzZXJ2ZXIgYi9XZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LXdl
YnNvY2tldHNlcnZlcgpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDhlNGFl
YWEuLjhhMTA3ZTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC13ZWJz
b2NrZXRzZXJ2ZXIKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC13ZWJz
b2NrZXRzZXJ2ZXIKQEAgLTU1LDYgKzU1LDEwIEBAIGRlZiBtYWluKCk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J1RMUyBwcml2YXRlIGtleSBmaWxlLicp
CiAgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctYycsICctLWNlcnRpZmljYXRlJywgZGVz
dD0nY2VydGlmaWNhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScn
LCBoZWxwPSdUTFMgY2VydGlmaWNhdGUgZmlsZS4nKQorICAgIG9wdGlvbl9wYXJzZXIuYWRkX29w
dGlvbignLS1jaHJvbWl1bScsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlc3Q9J2Nocm9taXVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ndXNl
IHRoZSBDaHJvbWl1bSBwb3J0JykKICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy0tcmVn
aXN0ZXJfY3lnd2luJywgYWN0aW9uPSJzdG9yZV90cnVlIiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVzdD0icmVnaXN0ZXJfY3lnd2luIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0nUmVnaXN0ZXIgQ3lnd2luIHBhdGhzIChvbiBXaW4gdHJ5IGJvdHMpJykKQEAg
LTgyLDcgKzg2LDcgQEAgZGVmIG1haW4oKToKICAgICBpZiBvcHRpb25zLnBpZGZpbGU6CiAgICAg
ICAgIGt3ZHNbJ3BpZGZpbGUnXSA9IG9wdGlvbnMucGlkZmlsZQogCi0gICAgcG9ydF9vYmogPSBm
YWN0b3J5LmdldCgpCisgICAgcG9ydF9vYmogPSBmYWN0b3J5LmdldChvcHRpb25zPW9wdGlvbnMp
CiAgICAgcHl3ZWJzb2NrZXQgPSB3ZWJzb2NrZXRfc2VydmVyLlB5V2ViU29ja2V0KHBvcnRfb2Jq
LCB0ZW1wZmlsZS5nZXR0ZW1wZGlyKCksICoqa3dkcykKIAogICAgIGxvZ19sZXZlbCA9IGxvZ2dp
bmcuV0FSTgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQppbmRleCAyZTNkZTg1Li5hNDNmN2Q3
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtX3dpbi5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQpAQCAtNTAsNiArNTAsMjEgQEAgY2xhc3Mg
Q2hyb21pdW1XaW5Qb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgIGlmIG9wdGlv
bnMgYW5kIG5vdCBoYXNhdHRyKG9wdGlvbnMsICdjb25maWd1cmF0aW9uJyk6CiAgICAgICAgICAg
ICBvcHRpb25zLmNvbmZpZ3VyYXRpb24gPSAnUmVsZWFzZScKICAgICAgICAgY2hyb21pdW0uQ2hy
b21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZSwgb3B0aW9ucykKKyAgICAgICAgIyBQ
dXQgdGhlIGN5Z3dpbiBkaXJlY3RvcnkgZmlyc3QgaW4gdGhlIHBhdGggdG8gZmluZCBjeWd3aW4x
LmRsbAorICAgICAgICBlbnYgPSBvcy5lbnZpcm9uCisgICAgICAgIGVudlsnUEFUSCddID0gJyVz
OyVzJyAlICgKKyAgICAgICAgICAgIHNlbGYucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoJ3RoaXJk
X3BhcnR5JywgJ2N5Z3dpbicsICdiaW4nKSwKKyAgICAgICAgICAgIGVudlsnUEFUSCddKQorICAg
ICAgICAjIFB1dCB0aGUgY3lnd2luIGRpcmVjdG9yeSBzbyB0aGF0IHB5d2Vic29ja2V0IGZpbmRz
IHByb3BlciBweXRob24KKyAgICAgICAgIyBleGVjdXRhYmxlIHRvIHJ1biBjZ2kgcHJvZ3JhbS4K
KyAgICAgICAgZW52WydDWUdXSU5fUEFUSCddID0gc2VsZi5wYXRoX2Zyb21fY2hyb21pdW1fYmFz
ZSgKKyAgICAgICAgICAgICd0aGlyZF9wYXJ0eScsICdjeWd3aW4nLCAnYmluJykKKyAgICAgICAg
aWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMicgYW5kIG9wdGlvbnMgYW5kIFwKKyAgICAgICAgICAg
ICAgICBoYXNhdHRyKG9wdGlvbnMsICdyZWdpc3Rlcl9jeWd3aW4nKSBhbmQgXAorICAgICAgICAg
ICAgICAgIG9wdGlvbnMucmVnaXN0ZXJfY3lnd2luOgorICAgICAgICAgICAgc2V0dXBfbW91bnQg
PSBzZWxmLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKAorICAgICAgICAgICAgICAgICd0aGlyZF9w
YXJ0eScsICdjeWd3aW4nLCAnc2V0dXBfbW91bnQuYmF0JykKKyAgICAgICAgICAgIHN1YnByb2Nl
c3MuUG9wZW4oc2V0dXBfbW91bnQpLndhaXQoKQogCiAgICAgZGVmIGJhc2VsaW5lX3NlYXJjaF9w
YXRoKHNlbGYpOgogICAgICAgICBkaXJzID0gW10KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2ZXIucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5Cmlu
ZGV4IGNjNDM0YmMuLjI0NWYwZWYgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2ZXIucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZlci5weQpAQCAtNTMs
NyArNTMsNyBAQCBjbGFzcyBIdHRwZE5vdFN0YXJ0ZWQoRXhjZXB0aW9uKToKIGNsYXNzIExpZ2h0
dHBkKGh0dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnZlckJhc2UpOgogCiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHBvcnRfb2JqLCBvdXRwdXRfZGlyLCBiYWNrZ3JvdW5kPUZhbHNlLCBwb3J0PU5vbmUs
Ci0gICAgICAgICAgICAgICAgIHJvb3Q9Tm9uZSwgcmVnaXN0ZXJfY3lnd2luPU5vbmUsIHJ1bl9i
YWNrZ3JvdW5kPU5vbmUpOgorICAgICAgICAgICAgICAgICByb290PU5vbmUsIHJ1bl9iYWNrZ3Jv
dW5kPU5vbmUpOgogICAgICAgICAiIiJBcmdzOgogICAgICAgICAgIG91dHB1dF9kaXI6IHRoZSBh
YnNvbHV0ZSBwYXRoIHRvIHRoZSBsYXlvdXQgdGVzdCByZXN1bHQgZGlyZWN0b3J5CiAgICAgICAg
ICIiIgpAQCAtNjMsNyArNjMsNiBAQCBjbGFzcyBMaWdodHRwZChodHRwX3NlcnZlcl9iYXNlLkh0
dHBTZXJ2ZXJCYXNlKToKICAgICAgICAgc2VsZi5fcHJvY2VzcyA9IE5vbmUKICAgICAgICAgc2Vs
Zi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fcm9vdCA9IHJvb3QKLSAgICAgICAgc2VsZi5f
cmVnaXN0ZXJfY3lnd2luID0gcmVnaXN0ZXJfY3lnd2luCiAgICAgICAgIHNlbGYuX3J1bl9iYWNr
Z3JvdW5kID0gcnVuX2JhY2tncm91bmQKICAgICAgICAgaWYgc2VsZi5fcG9ydDoKICAgICAgICAg
ICAgIHNlbGYuX3BvcnQgPSBpbnQoc2VsZi5fcG9ydCkKQEAgLTE5NCwxOSArMTkzLDYgQEAgY2xh
c3MgTGlnaHR0cGQoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRwU2VydmVyQmFzZSk6CiAgICAgICAgICAg
ICBzaHV0aWwuY29weWZpbGUob3MucGF0aC5qb2luKG1vZHVsZV9wYXRoLCBsaWJfZmlsZSksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKHRtcF9tb2R1bGVfcGF0aCwg
bGliX2ZpbGUpKQogCi0gICAgICAgICMgUHV0IHRoZSBjeWd3aW4gZGlyZWN0b3J5IGZpcnN0IGlu
IHRoZSBwYXRoIHRvIGZpbmQgY3lnd2luMS5kbGwKLSAgICAgICAgZW52ID0gb3MuZW52aXJvbgot
ICAgICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCdjeWd3aW4nLCAnd2luMzInKToKLSAgICAgICAg
ICAgIGVudlsnUEFUSCddID0gJyVzOyVzJyAlICgKLSAgICAgICAgICAgICAgICBzZWxmLl9wb3J0
X29iai5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgndGhpcmRfcGFydHknLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjeWd3aW4nLCAnYmlu
JyksCi0gICAgICAgICAgICAgICAgZW52WydQQVRIJ10pCi0KLSAgICAgICAgaWYgc3lzLnBsYXRm
b3JtID09ICd3aW4zMicgYW5kIHNlbGYuX3JlZ2lzdGVyX2N5Z3dpbjoKLSAgICAgICAgICAgIHNl
dHVwX21vdW50ID0gc2VsZi5fcG9ydF9vYmoucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoJ3RoaXJk
X3BhcnR5JywKLSAgICAgICAgICAgICAgICAnY3lnd2luJywgJ3NldHVwX21vdW50LmJhdCcpCi0g
ICAgICAgICAgICBzdWJwcm9jZXNzLlBvcGVuKHNldHVwX21vdW50KS53YWl0KCkKLQogICAgICAg
ICBfbG9nLmRlYnVnKCdTdGFydGluZyBodHRwIHNlcnZlcicpCiAgICAgICAgIHNlbGYuX3Byb2Nl
c3MgPSBzdWJwcm9jZXNzLlBvcGVuKHN0YXJ0X2NtZCwgZW52PWVudikKIApkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRf
c2VydmVyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC93ZWJzb2NrZXRfc2VydmVyLnB5CmluZGV4IDAzYjQ5NDguLmJiNGUzMDEgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0
X3NlcnZlci5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkKQEAgLTkxLDE1ICs5MSwxNCBAQCBjbGFzcyBQeVdl
YlNvY2tldChodHRwX3NlcnZlci5MaWdodHRwZCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwg
cG9ydF9vYmosIG91dHB1dF9kaXIsIHBvcnQ9X0RFRkFVTFRfV1NfUE9SVCwKICAgICAgICAgICAg
ICAgICAgcm9vdD1Ob25lLCB1c2VfdGxzPUZhbHNlLAotICAgICAgICAgICAgICAgICByZWdpc3Rl
cl9jeWd3aW49VHJ1ZSwKKyAgICAgICAgICAgICAgICAgY2hyb21pdW09RmFsc2UsCiAgICAgICAg
ICAgICAgICAgIHBpZGZpbGU9Tm9uZSk6CiAgICAgICAgICIiIkFyZ3M6CiAgICAgICAgICAgb3V0
cHV0X2RpcjogdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGxheW91dCB0ZXN0IHJlc3VsdCBkaXJl
Y3RvcnkKICAgICAgICAgIiIiCiAgICAgICAgIGh0dHBfc2VydmVyLkxpZ2h0dHBkLl9faW5pdF9f
KHNlbGYsIHBvcnRfb2JqLCBvdXRwdXRfZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwb3J0PV9ERUZBVUxUX1dTX1BPUlQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJvb3Q9cm9vdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVnaXN0ZXJfY3lnd2luPXJlZ2lzdGVyX2N5Z3dpbikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcm9vdD1yb290KQogICAgICAgICBzZWxmLl9vdXRwdXRf
ZGlyID0gb3V0cHV0X2RpcgogICAgICAgICBzZWxmLl9wcm9jZXNzID0gTm9uZQogICAgICAgICBz
ZWxmLl9wb3J0ID0gcG9ydApAQCAtMTE0LDYgKzExMyw3IEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0
dHBfc2VydmVyLkxpZ2h0dHBkKToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuX3Nl
cnZlcl9uYW1lID0gJ1B5V2ViU29ja2V0JwogICAgICAgICBzZWxmLl9waWRmaWxlID0gcGlkZmls
ZQorICAgICAgICBzZWxmLl9jaHJvbWl1bSA9IGNocm9taXVtCiAgICAgICAgIHNlbGYuX3dzb3V0
ID0gTm9uZQogCiAgICAgICAgICMgV2Via2l0IHRlc3RzCkBAIC0xODEsMjEgKzE4MSw2IEBAIGNs
YXNzIFB5V2ViU29ja2V0KGh0dHBfc2VydmVyLkxpZ2h0dHBkKToKICAgICAgICAgICAgIHN0YXJ0
X2NtZC5leHRlbmQoWyctdCcsICctaycsIHNlbGYuX3ByaXZhdGVfa2V5LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJy1jJywgc2VsZi5fY2VydGlmaWNhdGVdKQogCi0gICAgICAgICMg
UHV0IHRoZSBjeWd3aW4gZGlyZWN0b3J5IGZpcnN0IGluIHRoZSBwYXRoIHRvIGZpbmQgY3lnd2lu
MS5kbGwKLSAgICAgICAgZW52ID0gb3MuZW52aXJvbgotICAgICAgICBpZiBzeXMucGxhdGZvcm0g
aW4gKCdjeWd3aW4nLCAnd2luMzInKToKLSAgICAgICAgICAgIGVudlsnUEFUSCddID0gJyVzOyVz
JyAlICgKLSAgICAgICAgICAgICAgICBzZWxmLl9wb3J0X29iai5wYXRoX2Zyb21fY2hyb21pdW1f
YmFzZSgndGhpcmRfcGFydHknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdjeWd3aW4nLCAnYmluJyksCi0gICAgICAgICAgICAgICAgZW52
WydQQVRIJ10pCi0gICAgICAgICAgICBlbnZbJ0NZR1dJTl9QQVRIJ10gPSBzZWxmLl9wb3J0X29i
ai5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgKLSAgICAgICAgICAgICAgICAndGhpcmRfcGFydHkn
LCAnY3lnd2luJywgJ2JpbicpCi0KLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMicg
YW5kIHNlbGYuX3JlZ2lzdGVyX2N5Z3dpbjoKLSAgICAgICAgICAgIHNldHVwX21vdW50ID0gc2Vs
Zi5fcG9ydF9vYmoucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoCi0gICAgICAgICAgICAgICAgJ3Ro
aXJkX3BhcnR5JywgJ2N5Z3dpbicsICdzZXR1cF9tb3VudC5iYXQnKQotICAgICAgICAgICAgc3Vi
cHJvY2Vzcy5Qb3BlbihzZXR1cF9tb3VudCkud2FpdCgpCi0KICAgICAgICAgZW52WydQWVRIT05Q
QVRIJ10gPSAocHl3ZWJzb2NrZXRfYmFzZSArIG9zLnBhdGgucGF0aHNlcCArCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVudi5nZXQoJ1BZVEhPTlBBVEgnLCAnJykpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54103</attachid>
            <date>2010-04-22 16:12:08 -0700</date>
            <delta_ts>2010-04-22 22:00:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37664-20100422161206.patch</filename>
            <type>text/plain</type>
            <size>8751</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjZmE3ZjBkLi40ODgwZWM5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDQt
MjIgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXZlcnQgNTgwNzcgYW5kIGZvbGxv
dy11cHMuICBJdCdzIGJyb2tlbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM3NjY0CisKKyAgICAgICAgKiBTY3JpcHRzL25ldy1ydW4td2Via2l0LWh0
dHBkOgorICAgICAgICAqIFNjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vic29ja2V0c2VydmVyOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2lu
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9z
ZXJ2ZXIucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93
ZWJzb2NrZXRfc2VydmVyLnB5OgorCiAyMDEwLTA0LTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC1odHRwZCBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQKaW5kZXggZjZlYzE2NC4uODhhZTg0ZSAxMDA3
NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC1odHRwZAorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LWh0dHBkCkBAIC02NSw2ICs2NSw3IEBA
IGRlZiBydW4ob3B0aW9ucyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGVtcGZpbGUuZ2V0dGVtcGRpcigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBvcnQ9b3B0aW9ucy5wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJvb3Q9b3B0aW9ucy5yb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlZ2lzdGVyX2N5Z3dpbj1vcHRpb25zLnJlZ2lzdGVyX2N5Z3dpbiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBydW5fYmFja2dyb3VuZD1vcHRpb25zLnJ1bl9iYWNr
Z3JvdW5kKQogICAgICAgICBpZiBvcHRpb25zLnNlcnZlciA9PSAnc3RhcnQnOgogICAgICAgICAg
ICAgaHR0cGQuc3RhcnQoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVu
LXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIgYi9XZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Vi
a2l0LXdlYnNvY2tldHNlcnZlcgppbmRleCBlNmI4NDcxLi44ZTRhZWFhIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LXdlYnNvY2tldHNlcnZlcgorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LXdlYnNvY2tldHNlcnZlcgpAQCAtNTUs
MTAgKzU1LDYgQEAgZGVmIG1haW4oKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD0nJywgaGVscD0nVExTIHByaXZhdGUga2V5IGZpbGUuJykKICAgICBvcHRpb25fcGFyc2Vy
LmFkZF9vcHRpb24oJy1jJywgJy0tY2VydGlmaWNhdGUnLCBkZXN0PSdjZXJ0aWZpY2F0ZScsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J1RMUyBjZXJ0aWZp
Y2F0ZSBmaWxlLicpCi0gICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctLWNocm9taXVtJywg
YWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0n
Y2hyb21pdW0nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSd1c2UgdGhlIENocm9taXVtIHBvcnQn
KQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLS1yZWdpc3Rlcl9jeWd3aW4nLCBhY3Rp
b249InN0b3JlX3RydWUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0PSJyZWdp
c3Rlcl9jeWd3aW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdSZWdpc3Rl
ciBDeWd3aW4gcGF0aHMgKG9uIFdpbiB0cnkgYm90cyknKQpAQCAtODIsMTAgKzc4LDExIEBAIGRl
ZiBtYWluKCk6CiAgICAgICAgIGt3ZHNbJ3ByaXZhdGVfa2V5J10gPSBvcHRpb25zLnByaXZhdGVf
a2V5CiAgICAgaWYgb3B0aW9ucy5jZXJ0aWZpY2F0ZToKICAgICAgICAga3dkc1snY2VydGlmaWNh
dGUnXSA9IG9wdGlvbnMuY2VydGlmaWNhdGUKKyAgICBrd2RzWydyZWdpc3Rlcl9jeWd3aW4nXSA9
IG9wdGlvbnMucmVnaXN0ZXJfY3lnd2luCiAgICAgaWYgb3B0aW9ucy5waWRmaWxlOgogICAgICAg
ICBrd2RzWydwaWRmaWxlJ10gPSBvcHRpb25zLnBpZGZpbGUKIAotICAgIHBvcnRfb2JqID0gZmFj
dG9yeS5nZXQob3B0aW9ucz1vcHRpb25zKQorICAgIHBvcnRfb2JqID0gZmFjdG9yeS5nZXQoKQog
ICAgIHB5d2Vic29ja2V0ID0gd2Vic29ja2V0X3NlcnZlci5QeVdlYlNvY2tldChwb3J0X29iaiwg
dGVtcGZpbGUuZ2V0dGVtcGRpcigpLCAqKmt3ZHMpCiAKICAgICBsb2dfbGV2ZWwgPSBsb2dnaW5n
LldBUk4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fd2luLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKaW5kZXggYTQzZjdkNy4uMmUzZGU4NSAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bV93aW4ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKQEAgLTUwLDIxICs1MCw2IEBAIGNsYXNzIENo
cm9taXVtV2luUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICBpZiBvcHRpb25z
IGFuZCBub3QgaGFzYXR0cihvcHRpb25zLCAnY29uZmlndXJhdGlvbicpOgogICAgICAgICAgICAg
b3B0aW9ucy5jb25maWd1cmF0aW9uID0gJ1JlbGVhc2UnCiAgICAgICAgIGNocm9taXVtLkNocm9t
aXVtUG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWUsIG9wdGlvbnMpCi0gICAgICAgICMgUHV0
IHRoZSBjeWd3aW4gZGlyZWN0b3J5IGZpcnN0IGluIHRoZSBwYXRoIHRvIGZpbmQgY3lnd2luMS5k
bGwKLSAgICAgICAgZW52ID0gb3MuZW52aXJvbgotICAgICAgICBlbnZbJ1BBVEgnXSA9ICclczsl
cycgJSAoCi0gICAgICAgICAgICBzZWxmLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCd0aGlyZF9w
YXJ0eScsICdjeWd3aW4nLCAnYmluJyksCi0gICAgICAgICAgICBlbnZbJ1BBVEgnXSkKLSAgICAg
ICAgIyBQdXQgdGhlIGN5Z3dpbiBkaXJlY3Rvcnkgc28gdGhhdCBweXdlYnNvY2tldCBmaW5kcyBw
cm9wZXIgcHl0aG9uCi0gICAgICAgICMgZXhlY3V0YWJsZSB0byBydW4gY2dpIHByb2dyYW0uCi0g
ICAgICAgIGVudlsnQ1lHV0lOX1BBVEgnXSA9IHNlbGYucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2Uo
Ci0gICAgICAgICAgICAndGhpcmRfcGFydHknLCAnY3lnd2luJywgJ2JpbicpCi0gICAgICAgIGlm
IHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIGFuZCBvcHRpb25zIGFuZCBcCi0gICAgICAgICAgICAg
ICAgaGFzYXR0cihvcHRpb25zLCAncmVnaXN0ZXJfY3lnd2luJykgYW5kIFwKLSAgICAgICAgICAg
ICAgICBvcHRpb25zLnJlZ2lzdGVyX2N5Z3dpbjoKLSAgICAgICAgICAgIHNldHVwX21vdW50ID0g
c2VsZi5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgKLSAgICAgICAgICAgICAgICAndGhpcmRfcGFy
dHknLCAnY3lnd2luJywgJ3NldHVwX21vdW50LmJhdCcpCi0gICAgICAgICAgICBzdWJwcm9jZXNz
LlBvcGVuKHNldHVwX21vdW50KS53YWl0KCkKIAogICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0
aChzZWxmKToKICAgICAgICAgZGlycyA9IFtdCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZlci5weQppbmRl
eCAyYmYyNDVhLi41OTQzYzY4IDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2ZXIucHkKQEAgLTU1LDcg
KzU1LDcgQEAgY2xhc3MgSHR0cGROb3RTdGFydGVkKEV4Y2VwdGlvbik6CiBjbGFzcyBMaWdodHRw
ZChodHRwX3NlcnZlcl9iYXNlLkh0dHBTZXJ2ZXJCYXNlKToKIAogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwb3J0X29iaiwgb3V0cHV0X2RpciwgYmFja2dyb3VuZD1GYWxzZSwgcG9ydD1Ob25lLAot
ICAgICAgICAgICAgICAgICByb290PU5vbmUsIHJ1bl9iYWNrZ3JvdW5kPU5vbmUpOgorICAgICAg
ICAgICAgICAgICByb290PU5vbmUsIHJlZ2lzdGVyX2N5Z3dpbj1Ob25lLCBydW5fYmFja2dyb3Vu
ZD1Ob25lKToKICAgICAgICAgIiIiQXJnczoKICAgICAgICAgICBvdXRwdXRfZGlyOiB0aGUgYWJz
b2x1dGUgcGF0aCB0byB0aGUgbGF5b3V0IHRlc3QgcmVzdWx0IGRpcmVjdG9yeQogICAgICAgICAi
IiIKQEAgLTY1LDYgKzY1LDcgQEAgY2xhc3MgTGlnaHR0cGQoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRw
U2VydmVyQmFzZSk6CiAgICAgICAgIHNlbGYuX3Byb2Nlc3MgPSBOb25lCiAgICAgICAgIHNlbGYu
X3BvcnQgPSBwb3J0CiAgICAgICAgIHNlbGYuX3Jvb3QgPSByb290CisgICAgICAgIHNlbGYuX3Jl
Z2lzdGVyX2N5Z3dpbiA9IHJlZ2lzdGVyX2N5Z3dpbgogICAgICAgICBzZWxmLl9ydW5fYmFja2dy
b3VuZCA9IHJ1bl9iYWNrZ3JvdW5kCiAgICAgICAgIGlmIHNlbGYuX3BvcnQ6CiAgICAgICAgICAg
ICBzZWxmLl9wb3J0ID0gaW50KHNlbGYuX3BvcnQpCkBAIC0xOTgsOCArMTk5LDIxIEBAIGNsYXNz
IExpZ2h0dHBkKGh0dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnZlckJhc2UpOgogICAgICAgICAgICAg
c2h1dGlsLmNvcHlmaWxlKG9zLnBhdGguam9pbihtb2R1bGVfcGF0aCwgbGliX2ZpbGUpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbih0bXBfbW9kdWxlX3BhdGgsIGxp
Yl9maWxlKSkKIAorICAgICAgICAjIFB1dCB0aGUgY3lnd2luIGRpcmVjdG9yeSBmaXJzdCBpbiB0
aGUgcGF0aCB0byBmaW5kIGN5Z3dpbjEuZGxsCisgICAgICAgIGVudiA9IG9zLmVudmlyb24KKyAg
ICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnY3lnd2luJywgJ3dpbjMyJyk6CisgICAgICAgICAg
ICBlbnZbJ1BBVEgnXSA9ICclczslcycgJSAoCisgICAgICAgICAgICAgICAgc2VsZi5fcG9ydF9v
YmoucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoJ3RoaXJkX3BhcnR5JywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3lnd2luJywgJ2Jpbicp
LAorICAgICAgICAgICAgICAgIGVudlsnUEFUSCddKQorCisgICAgICAgIGlmIHN5cy5wbGF0Zm9y
bSA9PSAnd2luMzInIGFuZCBzZWxmLl9yZWdpc3Rlcl9jeWd3aW46CisgICAgICAgICAgICBzZXR1
cF9tb3VudCA9IHNlbGYuX3BvcnRfb2JqLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCd0aGlyZF9w
YXJ0eScsCisgICAgICAgICAgICAgICAgJ2N5Z3dpbicsICdzZXR1cF9tb3VudC5iYXQnKQorICAg
ICAgICAgICAgc3VicHJvY2Vzcy5Qb3BlbihzZXR1cF9tb3VudCkud2FpdCgpCisKICAgICAgICAg
X2xvZy5kZWJ1ZygnU3RhcnRpbmcgaHR0cCBzZXJ2ZXInKQotICAgICAgICBzZWxmLl9wcm9jZXNz
ID0gc3VicHJvY2Vzcy5Qb3BlbihzdGFydF9jbWQsIGVudj1vcy5lbnZpcm9uKQorICAgICAgICBz
ZWxmLl9wcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihzdGFydF9jbWQsIGVudj1lbnYpCiAKICAg
ICAgICAgIyBXYWl0IGZvciBzZXJ2ZXIgdG8gc3RhcnQuCiAgICAgICAgIHNlbGYubWFwcGluZ3Mg
PSBtYXBwaW5ncwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5CmluZGV4IDFhNDJi
M2YuLmE5ZWFiNWUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkKQEAgLTk1
LDEzICs5NSwxNSBAQCBjbGFzcyBQeVdlYlNvY2tldChodHRwX3NlcnZlci5MaWdodHRwZCk6CiAK
ICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9vYmosIG91dHB1dF9kaXIsIHBvcnQ9X0RFRkFV
TFRfV1NfUE9SVCwKICAgICAgICAgICAgICAgICAgcm9vdD1Ob25lLCB1c2VfdGxzPUZhbHNlLAor
ICAgICAgICAgICAgICAgICByZWdpc3Rlcl9jeWd3aW49VHJ1ZSwKICAgICAgICAgICAgICAgICAg
cGlkZmlsZT1Ob25lKToKICAgICAgICAgIiIiQXJnczoKICAgICAgICAgICBvdXRwdXRfZGlyOiB0
aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgbGF5b3V0IHRlc3QgcmVzdWx0IGRpcmVjdG9yeQogICAg
ICAgICAiIiIKICAgICAgICAgaHR0cF9zZXJ2ZXIuTGlnaHR0cGQuX19pbml0X18oc2VsZiwgcG9y
dF9vYmosIG91dHB1dF9kaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBvcnQ9X0RFRkFVTFRfV1NfUE9SVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcm9vdD1yb290KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
b290PXJvb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVy
X2N5Z3dpbj1yZWdpc3Rlcl9jeWd3aW4pCiAgICAgICAgIHNlbGYuX291dHB1dF9kaXIgPSBvdXRw
dXRfZGlyCiAgICAgICAgIHNlbGYuX3Byb2Nlc3MgPSBOb25lCiAgICAgICAgIHNlbGYuX3BvcnQg
PSBwb3J0CkBAIC0xODMsNyArMTg1LDIxIEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0dHBfc2VydmVy
LkxpZ2h0dHBkKToKICAgICAgICAgICAgIHN0YXJ0X2NtZC5leHRlbmQoWyctdCcsICctaycsIHNl
bGYuX3ByaXZhdGVfa2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1jJywgc2Vs
Zi5fY2VydGlmaWNhdGVdKQogCisgICAgICAgICMgUHV0IHRoZSBjeWd3aW4gZGlyZWN0b3J5IGZp
cnN0IGluIHRoZSBwYXRoIHRvIGZpbmQgY3lnd2luMS5kbGwKICAgICAgICAgZW52ID0gb3MuZW52
aXJvbgorICAgICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCdjeWd3aW4nLCAnd2luMzInKToKKyAg
ICAgICAgICAgIGVudlsnUEFUSCddID0gJyVzOyVzJyAlICgKKyAgICAgICAgICAgICAgICBzZWxm
Ll9wb3J0X29iai5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgndGhpcmRfcGFydHknLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjeWd3aW4n
LCAnYmluJyksCisgICAgICAgICAgICAgICAgZW52WydQQVRIJ10pCisgICAgICAgICAgICBlbnZb
J0NZR1dJTl9QQVRIJ10gPSBzZWxmLl9wb3J0X29iai5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgK
KyAgICAgICAgICAgICAgICAndGhpcmRfcGFydHknLCAnY3lnd2luJywgJ2JpbicpCisKKyAgICAg
ICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMicgYW5kIHNlbGYuX3JlZ2lzdGVyX2N5Z3dpbjoK
KyAgICAgICAgICAgIHNldHVwX21vdW50ID0gc2VsZi5fcG9ydF9vYmoucGF0aF9mcm9tX2Nocm9t
aXVtX2Jhc2UoCisgICAgICAgICAgICAgICAgJ3RoaXJkX3BhcnR5JywgJ2N5Z3dpbicsICdzZXR1
cF9tb3VudC5iYXQnKQorICAgICAgICAgICAgc3VicHJvY2Vzcy5Qb3BlbihzZXR1cF9tb3VudCku
d2FpdCgpCisKICAgICAgICAgZW52WydQWVRIT05QQVRIJ10gPSAocHl3ZWJzb2NrZXRfYmFzZSAr
IG9zLnBhdGgucGF0aHNlcCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudi5nZXQo
J1BZVEhPTlBBVEgnLCAnJykpCiAKQEAgLTIzMCw3ICsyNDYsNyBAQCBjbGFzcyBQeVdlYlNvY2tl
dChodHRwX3NlcnZlci5MaWdodHRwZCk6CiAgICAgICAgICAgICBwaWQgPSBzZWxmLl9wcm9jZXNz
LnBpZAogICAgICAgICBlbGlmIHNlbGYuX3BpZGZpbGU6CiAgICAgICAgICAgICB3aXRoIGNvZGVj
cy5vcGVuKHNlbGYuX3BpZGZpbGUsICJyIiwgImFzY2lpIikgYXMgZmlsZToKLSAgICAgICAgICAg
ICAgICBwaWQgPSBpbnQoZmlsZS5yZWFkKCkuc3RyaXAoKSkKKyAgICAgICAgICAgICAgICBwaWQg
PSBpbnQoZi5yZWFkKCkuc3RyaXAoKSkKIAogICAgICAgICBpZiBub3QgcGlkOgogICAgICAgICAg
ICAgcmFpc2UgUHlXZWJTb2NrZXROb3RGb3VuZCgK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54130</attachid>
            <date>2010-04-22 22:00:34 -0700</date>
            <delta_ts>2010-04-26 01:58:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37664-20100423140032.patch</filename>
            <type>text/plain</type>
            <size>10221</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBkMjk3YjgzLi4yM2ViZWQ1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzEgQEAKIDIwMTAtMDQt
MjIgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW06IEFkZCAtLWNocm9taXVt
IG9wdGlvbiB0byBuZXctcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NjY0CisKKyAgICAgICAgZW52IHNl
dHVwIGFuZCBzZXR1cF9tb3VudCBmb3IgY3lnd2luIGlzIHB1dCBpbiBDaHJvbWl1bVdpblBvcnQu
c2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyLCByYXRoZXIgdGhhbiBjb25zdHJ1Y3RvciBvZiBDaHJv
bWl1bVdpblBvcnQuCisKKyAgICAgICAgKiBTY3JpcHRzL25ldy1ydW4td2Via2l0LWh0dHBkOgor
ICAgICAgICAgIHJlbW92ZSBwYXNzaW5nIHJlZ2lzdGVyX2N5Z3dpbgorICAgICAgICAqIFNjcmlw
dHMvbmV3LXJ1bi13ZWJraXQtd2Vic29ja2V0c2VydmVyOgorICAgICAgICAgIGFkZCAtLWNocm9t
aXVtIGZsYWcuCisgICAgICAgICAgcmVtb3ZlIHBhc3NpbmcgcmVnaXN0ZXJfY3lnd2luLgorICAg
ICAgICAgIGNyZWF0ZSBwb3J0IG9iamVjdCB1c2luZyBvcHRpb25zLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weToKKyAgICAgICAgICBhZGQgc2V0
dXBfZW52aXJvbl9mb3Jfc2VydmVyKCkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHk6CisgICAgICAgICAgYWRkIHNldHVwX2Vudmly
b25fZm9yX3NlcnZlcigpCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9odHRwX3NlcnZlci5weToKKyAgICAgICAgICByZW1vdmUgcmVnaXN0ZXJfY3lnd2luIHBh
cmFtZXRlcgorICAgICAgICAgIGNhbGwgc2V0dXBfZW52cmlvbl9mb3Jfc2VydmVyKCkKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIu
cHk6CisgICAgICAgICAgcmVtb3ZlIHJlZ2lzdGVyX2N5Z3dpbiBwYXJhbWV0ZXIKKyAgICAgICAg
ICBjYWxsIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcigpCisKKzIwMTAtMDQtMjIgIEZ1bWl0b3No
aSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgVW5yZXZpZXdlZCBmaXguCiAK
ICAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9z
ZXJ2ZXIucHk6IGZpeCBOYW1lRXJyb3I6IGdsb2JhbCBuYW1lICdmJyBpcyBub3QgZGVmaW5lZC4K
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LWh0dHBkCmluZGV4IDg4YWU4NGUuLmY2
ZWMxNjQgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtaHR0
cGQKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC1odHRwZApAQCAtNjUs
NyArNjUsNiBAQCBkZWYgcnVuKG9wdGlvbnMpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlbXBmaWxlLmdldHRlbXBkaXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwb3J0PW9wdGlvbnMucG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByb290PW9wdGlvbnMucm9vdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWdpc3Rlcl9jeWd3aW49b3B0aW9ucy5yZWdpc3Rlcl9jeWd3aW4sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2JhY2tncm91bmQ9b3B0aW9u
cy5ydW5fYmFja2dyb3VuZCkKICAgICAgICAgaWYgb3B0aW9ucy5zZXJ2ZXIgPT0gJ3N0YXJ0JzoK
ICAgICAgICAgICAgIGh0dHBkLnN0YXJ0KCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvbmV3LXJ1bi13ZWJraXQtd2Vic29ja2V0c2VydmVyIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9u
ZXctcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEw
MDc1NQppbmRleCA4ZTRhZWFhLi5lNmI4NDcxCi0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3
LXJ1bi13ZWJraXQtd2Vic29ja2V0c2VydmVyCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3
LXJ1bi13ZWJraXQtd2Vic29ja2V0c2VydmVyCkBAIC01NSw2ICs1NSwxMCBAQCBkZWYgbWFpbigp
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScnLCBoZWxwPSdUTFMgcHJp
dmF0ZSBrZXkgZmlsZS4nKQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLWMnLCAnLS1j
ZXJ0aWZpY2F0ZScsIGRlc3Q9J2NlcnRpZmljYXRlJywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdD0nJywgaGVscD0nVExTIGNlcnRpZmljYXRlIGZpbGUuJykKKyAgICBvcHRp
b25fcGFyc2VyLmFkZF9vcHRpb24oJy0tY2hyb21pdW0nLCBhY3Rpb249J3N0b3JlX3RydWUnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdjaHJvbWl1bScsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9J3VzZSB0aGUgQ2hyb21pdW0gcG9ydCcpCiAgICAgb3B0aW9uX3BhcnNlci5h
ZGRfb3B0aW9uKCctLXJlZ2lzdGVyX2N5Z3dpbicsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9InJlZ2lzdGVyX2N5Z3dpbiIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1JlZ2lzdGVyIEN5Z3dpbiBwYXRocyAob24gV2lu
IHRyeSBib3RzKScpCkBAIC03OCwxMSArODIsMTAgQEAgZGVmIG1haW4oKToKICAgICAgICAga3dk
c1sncHJpdmF0ZV9rZXknXSA9IG9wdGlvbnMucHJpdmF0ZV9rZXkKICAgICBpZiBvcHRpb25zLmNl
cnRpZmljYXRlOgogICAgICAgICBrd2RzWydjZXJ0aWZpY2F0ZSddID0gb3B0aW9ucy5jZXJ0aWZp
Y2F0ZQotICAgIGt3ZHNbJ3JlZ2lzdGVyX2N5Z3dpbiddID0gb3B0aW9ucy5yZWdpc3Rlcl9jeWd3
aW4KICAgICBpZiBvcHRpb25zLnBpZGZpbGU6CiAgICAgICAgIGt3ZHNbJ3BpZGZpbGUnXSA9IG9w
dGlvbnMucGlkZmlsZQogCi0gICAgcG9ydF9vYmogPSBmYWN0b3J5LmdldCgpCisgICAgcG9ydF9v
YmogPSBmYWN0b3J5LmdldChvcHRpb25zPW9wdGlvbnMpCiAgICAgcHl3ZWJzb2NrZXQgPSB3ZWJz
b2NrZXRfc2VydmVyLlB5V2ViU29ja2V0KHBvcnRfb2JqLCB0ZW1wZmlsZS5nZXR0ZW1wZGlyKCks
ICoqa3dkcykKIAogICAgIGxvZ19sZXZlbCA9IGxvZ2dpbmcuV0FSTgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CmluZGV4
IGI3YTQ1MjguLjc2M2ViYzEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTQxOSw3ICs0MTksMTIgQEAgY2xh
c3MgUG9ydChvYmplY3QpOgogCiAgICAgZGVmIHNldHVwX3Rlc3RfcnVuKHNlbGYpOgogICAgICAg
ICAiIiJUaGlzIHJvdXRpbmUgY2FuIGJlIG92ZXJyaWRkZW4gdG8gcGVyZm9ybSBhbnkgcG9ydC1z
cGVjaWZpYwotICAgICAgICB3b3JrIHRoYXQgc2hvdXVsZCBiZSBkb25lIGF0IHRoZSBiZWdpbm5p
bmcgb2YgYSB0ZXN0IHJ1bi4iIiIKKyAgICAgICAgd29yayB0aGF0IHNob3VsZCBiZSBkb25lIGF0
IHRoZSBiZWdpbm5pbmcgb2YgYSB0ZXN0IHJ1bi4iIiIKKyAgICAgICAgcGFzcworCisgICAgZGVm
IHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxmKToKKyAgICAgICAgIiIiVGhpcyByb3V0aW5l
IGNhbiBiZSBvdmVycmlkZGVuIHRvIHBlcmZvcm0gYW55IHBvcnQtc3BlY2lmaWMKKyAgICAgICAg
d29yayB0aGF0IHNob3VsZCBiZSBkb25lIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBzZXJ2ZXIgbGF1
bmNoLiIiIgogICAgICAgICBwYXNzCiAKICAgICBkZWYgc2hvd19odG1sX3Jlc3VsdHNfZmlsZShz
ZWxmLCByZXN1bHRzX2ZpbGVuYW1lKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luLnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKaW5kZXgg
MmUzZGU4NS4uZjcxNDhjNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKQEAgLTUxLDYg
KzUxLDI0IEBAIGNsYXNzIENocm9taXVtV2luUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgog
ICAgICAgICAgICAgb3B0aW9ucy5jb25maWd1cmF0aW9uID0gJ1JlbGVhc2UnCiAgICAgICAgIGNo
cm9taXVtLkNocm9taXVtUG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWUsIG9wdGlvbnMpCiAK
KyAgICBkZWYgc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlbGYpOgorICAgICAgICBjaHJvbWl1
bS5DaHJvbWl1bVBvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlbGYpCisgICAgICAgICMg
UHV0IHRoZSBjeWd3aW4gZGlyZWN0b3J5IGZpcnN0IGluIHRoZSBwYXRoIHRvIGZpbmQgY3lnd2lu
MS5kbGwKKyAgICAgICAgZW52ID0gb3MuZW52aXJvbgorICAgICAgICBlbnZbJ1BBVEgnXSA9ICcl
czslcycgJSAoCisgICAgICAgICAgICBzZWxmLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCd0aGly
ZF9wYXJ0eScsICdjeWd3aW4nLCAnYmluJyksCisgICAgICAgICAgICBlbnZbJ1BBVEgnXSkKKyAg
ICAgICAgIyBQdXQgdGhlIGN5Z3dpbiBkaXJlY3Rvcnkgc28gdGhhdCBweXdlYnNvY2tldCBmaW5k
cyBwcm9wZXIgcHl0aG9uCisgICAgICAgICMgZXhlY3V0YWJsZSB0byBydW4gY2dpIHByb2dyYW0u
CisgICAgICAgIGVudlsnQ1lHV0lOX1BBVEgnXSA9IHNlbGYucGF0aF9mcm9tX2Nocm9taXVtX2Jh
c2UoCisgICAgICAgICAgICAndGhpcmRfcGFydHknLCAnY3lnd2luJywgJ2JpbicpCisgICAgICAg
IGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIGFuZCBzZWxmLl9vcHRpb25zIGFuZCBcCisgICAg
ICAgICAgICAgICAgaGFzYXR0cihzZWxmLl9vcHRpb25zLCAncmVnaXN0ZXJfY3lnd2luJykgYW5k
IFwKKyAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnJlZ2lzdGVyX2N5Z3dpbjoKKyAgICAg
ICAgICAgIHNldHVwX21vdW50ID0gc2VsZi5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgKKyAgICAg
ICAgICAgICAgICAndGhpcmRfcGFydHknLCAnY3lnd2luJywgJ3NldHVwX21vdW50LmJhdCcpCisg
ICAgICAgICAgICBzdWJwcm9jZXNzLlBvcGVuKHNldHVwX21vdW50KS53YWl0KCkKKwogICAgIGRl
ZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKICAgICAgICAgZGlycyA9IFtdCiAgICAgICAg
IGlmIHNlbGYuX25hbWUgPT0gJ2Nocm9taXVtLXdpbi14cCc6CmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZl
ci5weQppbmRleCA1OTQzYzY4Li5hYzU2MTg3IDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2ZXIucHkK
QEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgSHR0cGROb3RTdGFydGVkKEV4Y2VwdGlvbik6CiBjbGFz
cyBMaWdodHRwZChodHRwX3NlcnZlcl9iYXNlLkh0dHBTZXJ2ZXJCYXNlKToKIAogICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwb3J0X29iaiwgb3V0cHV0X2RpciwgYmFja2dyb3VuZD1GYWxzZSwgcG9y
dD1Ob25lLAotICAgICAgICAgICAgICAgICByb290PU5vbmUsIHJlZ2lzdGVyX2N5Z3dpbj1Ob25l
LCBydW5fYmFja2dyb3VuZD1Ob25lKToKKyAgICAgICAgICAgICAgICAgcm9vdD1Ob25lLCBydW5f
YmFja2dyb3VuZD1Ob25lKToKICAgICAgICAgIiIiQXJnczoKICAgICAgICAgICBvdXRwdXRfZGly
OiB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgbGF5b3V0IHRlc3QgcmVzdWx0IGRpcmVjdG9yeQog
ICAgICAgICAiIiIKQEAgLTY1LDcgKzY1LDYgQEAgY2xhc3MgTGlnaHR0cGQoaHR0cF9zZXJ2ZXJf
YmFzZS5IdHRwU2VydmVyQmFzZSk6CiAgICAgICAgIHNlbGYuX3Byb2Nlc3MgPSBOb25lCiAgICAg
ICAgIHNlbGYuX3BvcnQgPSBwb3J0CiAgICAgICAgIHNlbGYuX3Jvb3QgPSByb290Ci0gICAgICAg
IHNlbGYuX3JlZ2lzdGVyX2N5Z3dpbiA9IHJlZ2lzdGVyX2N5Z3dpbgogICAgICAgICBzZWxmLl9y
dW5fYmFja2dyb3VuZCA9IHJ1bl9iYWNrZ3JvdW5kCiAgICAgICAgIGlmIHNlbGYuX3BvcnQ6CiAg
ICAgICAgICAgICBzZWxmLl9wb3J0ID0gaW50KHNlbGYuX3BvcnQpCkBAIC0xOTksMjEgKzE5OCw5
IEBAIGNsYXNzIExpZ2h0dHBkKGh0dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnZlckJhc2UpOgogICAg
ICAgICAgICAgc2h1dGlsLmNvcHlmaWxlKG9zLnBhdGguam9pbihtb2R1bGVfcGF0aCwgbGliX2Zp
bGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbih0bXBfbW9kdWxl
X3BhdGgsIGxpYl9maWxlKSkKIAotICAgICAgICAjIFB1dCB0aGUgY3lnd2luIGRpcmVjdG9yeSBm
aXJzdCBpbiB0aGUgcGF0aCB0byBmaW5kIGN5Z3dpbjEuZGxsCi0gICAgICAgIGVudiA9IG9zLmVu
dmlyb24KLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnY3lnd2luJywgJ3dpbjMyJyk6Ci0g
ICAgICAgICAgICBlbnZbJ1BBVEgnXSA9ICclczslcycgJSAoCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fcG9ydF9vYmoucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoJ3RoaXJkX3BhcnR5JywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3lnd2lu
JywgJ2JpbicpLAotICAgICAgICAgICAgICAgIGVudlsnUEFUSCddKQotCi0gICAgICAgIGlmIHN5
cy5wbGF0Zm9ybSA9PSAnd2luMzInIGFuZCBzZWxmLl9yZWdpc3Rlcl9jeWd3aW46Ci0gICAgICAg
ICAgICBzZXR1cF9tb3VudCA9IHNlbGYuX3BvcnRfb2JqLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNl
KCd0aGlyZF9wYXJ0eScsCi0gICAgICAgICAgICAgICAgJ2N5Z3dpbicsICdzZXR1cF9tb3VudC5i
YXQnKQotICAgICAgICAgICAgc3VicHJvY2Vzcy5Qb3BlbihzZXR1cF9tb3VudCkud2FpdCgpCi0K
KyAgICAgICAgc2VsZi5fcG9ydF9vYmouc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKCkKICAgICAg
ICAgX2xvZy5kZWJ1ZygnU3RhcnRpbmcgaHR0cCBzZXJ2ZXInKQotICAgICAgICBzZWxmLl9wcm9j
ZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihzdGFydF9jbWQsIGVudj1lbnYpCisgICAgICAgIHNlbGYu
X3Byb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKHN0YXJ0X2NtZCwgZW52PW9zLmVudmlyb24pCiAK
ICAgICAgICAgIyBXYWl0IGZvciBzZXJ2ZXIgdG8gc3RhcnQuCiAgICAgICAgIHNlbGYubWFwcGlu
Z3MgPSBtYXBwaW5ncwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5CmluZGV4IGVk
NmQ4NzEuLmQ5OTIxNGYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkKQEAg
LTk1LDE1ICs5NSwxMyBAQCBjbGFzcyBQeVdlYlNvY2tldChodHRwX3NlcnZlci5MaWdodHRwZCk6
CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9vYmosIG91dHB1dF9kaXIsIHBvcnQ9X0RF
RkFVTFRfV1NfUE9SVCwKICAgICAgICAgICAgICAgICAgcm9vdD1Ob25lLCB1c2VfdGxzPUZhbHNl
LAotICAgICAgICAgICAgICAgICByZWdpc3Rlcl9jeWd3aW49VHJ1ZSwKICAgICAgICAgICAgICAg
ICAgcGlkZmlsZT1Ob25lKToKICAgICAgICAgIiIiQXJnczoKICAgICAgICAgICBvdXRwdXRfZGly
OiB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgbGF5b3V0IHRlc3QgcmVzdWx0IGRpcmVjdG9yeQog
ICAgICAgICAiIiIKICAgICAgICAgaHR0cF9zZXJ2ZXIuTGlnaHR0cGQuX19pbml0X18oc2VsZiwg
cG9ydF9vYmosIG91dHB1dF9kaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBvcnQ9X0RFRkFVTFRfV1NfUE9SVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcm9vdD1yb290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWdpc3Rlcl9jeWd3aW49cmVnaXN0ZXJfY3lnd2luKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByb290PXJvb3QpCiAgICAgICAgIHNlbGYuX291dHB1dF9kaXIgPSBv
dXRwdXRfZGlyCiAgICAgICAgIHNlbGYuX3Byb2Nlc3MgPSBOb25lCiAgICAgICAgIHNlbGYuX3Bv
cnQgPSBwb3J0CkBAIC0xODUsMjEgKzE4Myw4IEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0dHBfc2Vy
dmVyLkxpZ2h0dHBkKToKICAgICAgICAgICAgIHN0YXJ0X2NtZC5leHRlbmQoWyctdCcsICctaycs
IHNlbGYuX3ByaXZhdGVfa2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1jJywg
c2VsZi5fY2VydGlmaWNhdGVdKQogCi0gICAgICAgICMgUHV0IHRoZSBjeWd3aW4gZGlyZWN0b3J5
IGZpcnN0IGluIHRoZSBwYXRoIHRvIGZpbmQgY3lnd2luMS5kbGwKKyAgICAgICAgc2VsZi5fcG9y
dF9vYmouc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKCkKICAgICAgICAgZW52ID0gb3MuZW52aXJv
bgotICAgICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCdjeWd3aW4nLCAnd2luMzInKToKLSAgICAg
ICAgICAgIGVudlsnUEFUSCddID0gJyVzOyVzJyAlICgKLSAgICAgICAgICAgICAgICBzZWxmLl9w
b3J0X29iai5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgndGhpcmRfcGFydHknLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjeWd3aW4nLCAn
YmluJyksCi0gICAgICAgICAgICAgICAgZW52WydQQVRIJ10pCi0gICAgICAgICAgICBlbnZbJ0NZ
R1dJTl9QQVRIJ10gPSBzZWxmLl9wb3J0X29iai5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgKLSAg
ICAgICAgICAgICAgICAndGhpcmRfcGFydHknLCAnY3lnd2luJywgJ2JpbicpCi0KLSAgICAgICAg
aWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMicgYW5kIHNlbGYuX3JlZ2lzdGVyX2N5Z3dpbjoKLSAg
ICAgICAgICAgIHNldHVwX21vdW50ID0gc2VsZi5fcG9ydF9vYmoucGF0aF9mcm9tX2Nocm9taXVt
X2Jhc2UoCi0gICAgICAgICAgICAgICAgJ3RoaXJkX3BhcnR5JywgJ2N5Z3dpbicsICdzZXR1cF9t
b3VudC5iYXQnKQotICAgICAgICAgICAgc3VicHJvY2Vzcy5Qb3BlbihzZXR1cF9tb3VudCkud2Fp
dCgpCi0KICAgICAgICAgZW52WydQWVRIT05QQVRIJ10gPSAocHl3ZWJzb2NrZXRfYmFzZSArIG9z
LnBhdGgucGF0aHNlcCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudi5nZXQoJ1BZ
VEhPTlBBVEgnLCAnJykpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54267</attachid>
            <date>2010-04-26 01:59:00 -0700</date>
            <delta_ts>2010-05-06 01:31:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37664-20100426175858.patch</filename>
            <type>text/plain</type>
            <size>15823</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4Njc5ZjMyLi4wNzU4NGM0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMDQt
MjYgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW06IEFkZCAtLWNocm9taXVt
IG9wdGlvbiB0byBuZXctcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NjY0CisKKyAgICAgICAgZW52IHNl
dHVwIGFuZCBzZXR1cF9tb3VudCBmb3IgY3lnd2luIGlzIG1vdmVkIGluIENocm9taXVtV2luUG9y
dC5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL25ldy1ydW4t
d2Via2l0LWh0dHBkOgorICAgICAgICAgIHJlbW92ZSBwYXNzaW5nIHJlZ2lzdGVyX2N5Z3dpbi4K
KyAgICAgICAgKiBTY3JpcHRzL25ldy1ydW4td2Via2l0LXdlYnNvY2tldHNlcnZlcjoKKyAgICAg
ICAgICBhZGQgLS1jaHJvbWl1bSBmbGFnLgorICAgICAgICAgIHJlbW92ZSBwYXNzaW5nIHJlZ2lz
dGVyX2N5Z3dpbi4KKyAgICAgICAgICBjcmVhdGUgcG9ydCBvYmplY3QgdXNpbmcgb3B0aW9ucy4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHk6Cisg
ICAgICAgICAgYWRkIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcigpLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luLnB5OgorICAgICAgICAg
IGFkZCBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoKS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2ZXIucHk6Cisg
ICAgICAgICAgcmVtb3ZlIHJlZ2lzdGVyX2N5Z3dpbiBwYXJhbWV0ZXIKKyAgICAgICAgICBjYWxs
IHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcigpCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5OgorICAgICAgICAgIHJlbW92ZSBy
ZWdpc3Rlcl9jeWd3aW4gcGFyYW1ldGVyCisgICAgICAgICAgY2FsbCBzZXR1cF9lbnZpcm9uX2Zv
cl9zZXJ2ZXIoKQorCiAyMDEwLTA0LTIwICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL25ldy1ydW4td2Via2l0LWh0dHBkCmluZGV4IDg4YWU4NGUuLmY2ZWMxNjQgMTAwNzU1Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC1odHRwZApAQCAtNjUsNyArNjUsNiBAQCBkZWYg
cnVuKG9wdGlvbnMpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBm
aWxlLmdldHRlbXBkaXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
b3J0PW9wdGlvbnMucG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
b290PW9wdGlvbnMucm9vdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWdpc3Rlcl9jeWd3aW49b3B0aW9ucy5yZWdpc3Rlcl9jeWd3aW4sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnVuX2JhY2tncm91bmQ9b3B0aW9ucy5ydW5fYmFja2dyb3Vu
ZCkKICAgICAgICAgaWYgb3B0aW9ucy5zZXJ2ZXIgPT0gJ3N0YXJ0JzoKICAgICAgICAgICAgIGh0
dHBkLnN0YXJ0KCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJr
aXQtd2Vic29ja2V0c2VydmVyIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC13
ZWJzb2NrZXRzZXJ2ZXIKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA4ZTRh
ZWFhLi5lNmI4NDcxCi0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vi
c29ja2V0c2VydmVyCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vi
c29ja2V0c2VydmVyCkBAIC01NSw2ICs1NSwxMCBAQCBkZWYgbWFpbigpOgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0PScnLCBoZWxwPSdUTFMgcHJpdmF0ZSBrZXkgZmlsZS4n
KQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLWMnLCAnLS1jZXJ0aWZpY2F0ZScsIGRl
c3Q9J2NlcnRpZmljYXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0n
JywgaGVscD0nVExTIGNlcnRpZmljYXRlIGZpbGUuJykKKyAgICBvcHRpb25fcGFyc2VyLmFkZF9v
cHRpb24oJy0tY2hyb21pdW0nLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZXN0PSdjaHJvbWl1bScsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3Vz
ZSB0aGUgQ2hyb21pdW0gcG9ydCcpCiAgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctLXJl
Z2lzdGVyX2N5Z3dpbicsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9InJlZ2lzdGVyX2N5Z3dpbiIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9J1JlZ2lzdGVyIEN5Z3dpbiBwYXRocyAob24gV2luIHRyeSBib3RzKScpCkBA
IC03OCwxMSArODIsMTAgQEAgZGVmIG1haW4oKToKICAgICAgICAga3dkc1sncHJpdmF0ZV9rZXkn
XSA9IG9wdGlvbnMucHJpdmF0ZV9rZXkKICAgICBpZiBvcHRpb25zLmNlcnRpZmljYXRlOgogICAg
ICAgICBrd2RzWydjZXJ0aWZpY2F0ZSddID0gb3B0aW9ucy5jZXJ0aWZpY2F0ZQotICAgIGt3ZHNb
J3JlZ2lzdGVyX2N5Z3dpbiddID0gb3B0aW9ucy5yZWdpc3Rlcl9jeWd3aW4KICAgICBpZiBvcHRp
b25zLnBpZGZpbGU6CiAgICAgICAgIGt3ZHNbJ3BpZGZpbGUnXSA9IG9wdGlvbnMucGlkZmlsZQog
Ci0gICAgcG9ydF9vYmogPSBmYWN0b3J5LmdldCgpCisgICAgcG9ydF9vYmogPSBmYWN0b3J5Lmdl
dChvcHRpb25zPW9wdGlvbnMpCiAgICAgcHl3ZWJzb2NrZXQgPSB3ZWJzb2NrZXRfc2VydmVyLlB5
V2ViU29ja2V0KHBvcnRfb2JqLCB0ZW1wZmlsZS5nZXR0ZW1wZGlyKCksICoqa3dkcykKIAogICAg
IGxvZ19sZXZlbCA9IGxvZ2dpbmcuV0FSTgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CmluZGV4IGI3YTQ1MjguLjc2M2Vi
YzEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvYmFzZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTQxOSw3ICs0MTksMTIgQEAgY2xhc3MgUG9ydChvYmplY3Qp
OgogCiAgICAgZGVmIHNldHVwX3Rlc3RfcnVuKHNlbGYpOgogICAgICAgICAiIiJUaGlzIHJvdXRp
bmUgY2FuIGJlIG92ZXJyaWRkZW4gdG8gcGVyZm9ybSBhbnkgcG9ydC1zcGVjaWZpYwotICAgICAg
ICB3b3JrIHRoYXQgc2hvdXVsZCBiZSBkb25lIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSB0ZXN0IHJ1
bi4iIiIKKyAgICAgICAgd29yayB0aGF0IHNob3VsZCBiZSBkb25lIGF0IHRoZSBiZWdpbm5pbmcg
b2YgYSB0ZXN0IHJ1bi4iIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIHNldHVwX2Vudmlyb25f
Zm9yX3NlcnZlcihzZWxmKToKKyAgICAgICAgIiIiVGhpcyByb3V0aW5lIGNhbiBiZSBvdmVycmlk
ZGVuIHRvIHBlcmZvcm0gYW55IHBvcnQtc3BlY2lmaWMKKyAgICAgICAgd29yayB0aGF0IHNob3Vs
ZCBiZSBkb25lIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBzZXJ2ZXIgbGF1bmNoLiIiIgogICAgICAg
ICBwYXNzCiAKICAgICBkZWYgc2hvd19odG1sX3Jlc3VsdHNfZmlsZShzZWxmLCByZXN1bHRzX2Zp
bGVuYW1lKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKaW5kZXggMmUzZGU4NS4uZjcxNDhj
NSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV93aW4ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKQEAgLTUxLDYgKzUxLDI0IEBAIGNsYXNz
IENocm9taXVtV2luUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICAgICAgb3B0
aW9ucy5jb25maWd1cmF0aW9uID0gJ1JlbGVhc2UnCiAgICAgICAgIGNocm9taXVtLkNocm9taXVt
UG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWUsIG9wdGlvbnMpCiAKKyAgICBkZWYgc2V0dXBf
ZW52aXJvbl9mb3Jfc2VydmVyKHNlbGYpOgorICAgICAgICBjaHJvbWl1bS5DaHJvbWl1bVBvcnQu
c2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlbGYpCisgICAgICAgICMgUHV0IHRoZSBjeWd3aW4g
ZGlyZWN0b3J5IGZpcnN0IGluIHRoZSBwYXRoIHRvIGZpbmQgY3lnd2luMS5kbGwKKyAgICAgICAg
ZW52ID0gb3MuZW52aXJvbgorICAgICAgICBlbnZbJ1BBVEgnXSA9ICclczslcycgJSAoCisgICAg
ICAgICAgICBzZWxmLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCd0aGlyZF9wYXJ0eScsICdjeWd3
aW4nLCAnYmluJyksCisgICAgICAgICAgICBlbnZbJ1BBVEgnXSkKKyAgICAgICAgIyBQdXQgdGhl
IGN5Z3dpbiBkaXJlY3Rvcnkgc28gdGhhdCBweXdlYnNvY2tldCBmaW5kcyBwcm9wZXIgcHl0aG9u
CisgICAgICAgICMgZXhlY3V0YWJsZSB0byBydW4gY2dpIHByb2dyYW0uCisgICAgICAgIGVudlsn
Q1lHV0lOX1BBVEgnXSA9IHNlbGYucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoCisgICAgICAgICAg
ICAndGhpcmRfcGFydHknLCAnY3lnd2luJywgJ2JpbicpCisgICAgICAgIGlmIHN5cy5wbGF0Zm9y
bSA9PSAnd2luMzInIGFuZCBzZWxmLl9vcHRpb25zIGFuZCBcCisgICAgICAgICAgICAgICAgaGFz
YXR0cihzZWxmLl9vcHRpb25zLCAncmVnaXN0ZXJfY3lnd2luJykgYW5kIFwKKyAgICAgICAgICAg
ICAgICBzZWxmLl9vcHRpb25zLnJlZ2lzdGVyX2N5Z3dpbjoKKyAgICAgICAgICAgIHNldHVwX21v
dW50ID0gc2VsZi5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgKKyAgICAgICAgICAgICAgICAndGhp
cmRfcGFydHknLCAnY3lnd2luJywgJ3NldHVwX21vdW50LmJhdCcpCisgICAgICAgICAgICBzdWJw
cm9jZXNzLlBvcGVuKHNldHVwX21vdW50KS53YWl0KCkKKwogICAgIGRlZiBiYXNlbGluZV9zZWFy
Y2hfcGF0aChzZWxmKToKICAgICAgICAgZGlycyA9IFtdCiAgICAgICAgIGlmIHNlbGYuX25hbWUg
PT0gJ2Nocm9taXVtLXdpbi14cCc6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY4ZDVkOAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFj
dG9yeV91bml0dGVzdC5weQpAQCAtMCwwICsxLDEyNyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9y
dCB1bml0dGVzdAoraW1wb3J0IGNocm9taXVtX2xpbnV4CitpbXBvcnQgY2hyb21pdW1fbWFjCitp
bXBvcnQgY2hyb21pdW1fd2luCitpbXBvcnQgZHJ5cnVuCitpbXBvcnQgZmFjdG9yeQoraW1wb3J0
IGd0aworaW1wb3J0IG1hYworaW1wb3J0IHF0CitpbXBvcnQgc3lzCitpbXBvcnQgdGVzdAoraW1w
b3J0IHdpbgorCisKK2NsYXNzIEZhY3RvcnlUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAi
IiJUZXN0cyBmYWN0b3J5IGNhbiBjcmVhdGUgcHJvcGVyIHBvcnQgb2JqZWN0IGZyb20gcG9ydF9u
YW1lLAorICAgIHN5cy5wbGF0Zm9ybSBhbmQgb3B0aW9ucy4KKyAgICAiIiIKKworICAgIGNsYXNz
IFdlYktpdE9wdGlvbnMob2JqZWN0KToKKyAgICAgICAgIiIiTWltaW11bSBvcHRpb25zIGZvciBX
ZWJLaXQgcG9ydC4iIiIKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAg
c2VsZi5waXhlbF90ZXN0cyA9IEZhbHNlCisKKyAgICBjbGFzcyBDaHJvbWl1bU9wdGlvbnMoV2Vi
S2l0T3B0aW9ucyk6CisgICAgICAgICIiIk1pbWltdW0gb3B0aW9ucyBmb3IgQ2hyb21pdW0gcG9y
dC4iIiIKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgRmFjdG9yeVRl
c3QuV2ViS2l0T3B0aW9ucy5fX2luaXRfXyhzZWxmKQorICAgICAgICAgICAgc2VsZi5jaHJvbWl1
bSA9IFRydWUKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5yZWFsX3N5c19w
bGF0Zm9ybSA9IHN5cy5wbGF0Zm9ybQorICAgICAgICBzZWxmLndlYmtpdF9vcHRpb25zID0gRmFj
dG9yeVRlc3QuV2ViS2l0T3B0aW9ucygpCisgICAgICAgIHNlbGYuY2hyb21pdW1fb3B0aW9ucyA9
IEZhY3RvcnlUZXN0LkNocm9taXVtT3B0aW9ucygpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6
CisgICAgICAgIHN5cy5wbGF0Zm9ybSA9IHNlbGYucmVhbF9zeXNfcGxhdGZvcm0KKworICAgIGRl
ZiB0ZXN0X3Rlc3Qoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGZh
Y3RvcnkuZ2V0KHBvcnRfbmFtZT0ndGVzdCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0LlRlc3RQb3J0KSkKKworICAgIGRlZiB0ZXN0X2RyeXJ1bihzZWxmKToKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZmFjdG9yeS5nZXQocG9ydF9uYW1lPSdk
cnlydW4tdGVzdCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcnlydW4u
RHJ5UnVuUG9ydCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGZhY3Rvcnku
Z2V0KHBvcnRfbmFtZT0nZHJ5cnVuLW1hYycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkcnlydW4uRHJ5UnVuUG9ydCkpCisKKyAgICBkZWYgdGVzdF9tYWMoc2VsZik6Cisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGZhY3RvcnkuZ2V0KHBvcnRfbmFtZT0n
bWFjJyksIG1hYy5NYWNQb3J0KSkKKyAgICAgICAgc3lzLnBsYXRmb3JtID0gJ2RhcndpbicKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZmFjdG9yeS5nZXQoKSwgbWFjLk1hY1Bv
cnQpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShmYWN0b3J5LmdldChvcHRp
b25zPXNlbGYud2Via2l0X29wdGlvbnMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtYWMuTWFjUG9ydCkpCisKKyAgICBkZWYgdGVzdF93aW4oc2VsZik6CisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGZhY3RvcnkuZ2V0KHBvcnRfbmFtZT0nd2luJyksIHdp
bi5XaW5Qb3J0KSkKKyAgICAgICAgc3lzLnBsYXRmb3JtID0gJ3dpbjMyJworICAgICAgICBzZWxm
LmFzc2VydFRydWUoaXNpbnN0YW5jZShmYWN0b3J5LmdldCgpLCB3aW4uV2luUG9ydCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGZhY3RvcnkuZ2V0KG9wdGlvbnM9c2VsZi53
ZWJraXRfb3B0aW9ucyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbi5X
aW5Qb3J0KSkKKyAgICAgICAgc3lzLnBsYXRmb3JtID0gJ2N5Z3dpbicKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGlzaW5zdGFuY2UoZmFjdG9yeS5nZXQoKSwgd2luLldpblBvcnQpKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShmYWN0b3J5LmdldChvcHRpb25zPXNlbGYud2Vi
a2l0X29wdGlvbnMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW4uV2lu
UG9ydCkpCisKKyAgICBkZWYgdGVzdF9ndGsoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShpc2luc3RhbmNlKGZhY3RvcnkuZ2V0KHBvcnRfbmFtZT0nZ3RrJyksIGd0ay5HdGtQb3J0KSkK
KworICAgIGRlZiB0ZXN0X3F0KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0
YW5jZShmYWN0b3J5LmdldChwb3J0X25hbWU9J3F0JyksIHF0LlF0UG9ydCkpCisKKyAgICBkZWYg
dGVzdF9jaHJvbWl1bV9tYWMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3Rh
bmNlKGZhY3RvcnkuZ2V0KHBvcnRfbmFtZT0nY2hyb21pdW0tbWFjJyksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQpKQorICAg
ICAgICBzeXMucGxhdGZvcm0gPSAnZGFyd2luJworICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNp
bnN0YW5jZShmYWN0b3J5LmdldChvcHRpb25zPXNlbGYuY2hyb21pdW1fb3B0aW9ucyksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1Bv
cnQpKQorCisgICAgZGVmIHRlc3RfY2hyb21pdW1fbGludXgoc2VsZik6CisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGZhY3RvcnkuZ2V0KHBvcnRfbmFtZT0nY2hyb21pdW0tbGlu
dXgnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hyb21pdW1fbGludXgu
Q2hyb21pdW1MaW51eFBvcnQpKQorICAgICAgICBzeXMucGxhdGZvcm0gPSAnbGludXgyJworICAg
ICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShmYWN0b3J5LmdldChvcHRpb25zPXNlbGYu
Y2hyb21pdW1fb3B0aW9ucyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo
cm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0KSkKKworICAgIGRlZiB0ZXN0X2Nocm9taXVt
X3dpbihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZmFjdG9yeS5n
ZXQocG9ydF9uYW1lPSdjaHJvbWl1bS13aW4nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCkpCisgICAgICAgIHN5cy5wbGF0
Zm9ybSA9ICd3aW4zMicKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZmFjdG9y
eS5nZXQob3B0aW9ucz1zZWxmLmNocm9taXVtX29wdGlvbnMpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KSkKKyAgICAgICAg
c3lzLnBsYXRmb3JtID0gJ2N5Z3dpbicKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFu
Y2UoZmFjdG9yeS5nZXQob3B0aW9ucz1zZWxmLmNocm9taXVtX29wdGlvbnMpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KSkK
KworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9o
dHRwX3NlcnZlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvaHR0cF9zZXJ2ZXIucHkKaW5kZXggNTk0M2M2OC4uYWM1NjE4NyAxMDA3NTUKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZl
ci5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2h0dHBfc2VydmVyLnB5CkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIEh0dHBkTm90U3RhcnRlZChF
eGNlcHRpb24pOgogY2xhc3MgTGlnaHR0cGQoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRwU2VydmVyQmFz
ZSk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9vYmosIG91dHB1dF9kaXIsIGJhY2tn
cm91bmQ9RmFsc2UsIHBvcnQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgcm9vdD1Ob25lLCByZWdp
c3Rlcl9jeWd3aW49Tm9uZSwgcnVuX2JhY2tncm91bmQ9Tm9uZSk6CisgICAgICAgICAgICAgICAg
IHJvb3Q9Tm9uZSwgcnVuX2JhY2tncm91bmQ9Tm9uZSk6CiAgICAgICAgICIiIkFyZ3M6CiAgICAg
ICAgICAgb3V0cHV0X2RpcjogdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGxheW91dCB0ZXN0IHJl
c3VsdCBkaXJlY3RvcnkKICAgICAgICAgIiIiCkBAIC02NSw3ICs2NSw2IEBAIGNsYXNzIExpZ2h0
dHBkKGh0dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnZlckJhc2UpOgogICAgICAgICBzZWxmLl9wcm9j
ZXNzID0gTm9uZQogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAogICAgICAgICBzZWxmLl9yb290
ID0gcm9vdAotICAgICAgICBzZWxmLl9yZWdpc3Rlcl9jeWd3aW4gPSByZWdpc3Rlcl9jeWd3aW4K
ICAgICAgICAgc2VsZi5fcnVuX2JhY2tncm91bmQgPSBydW5fYmFja2dyb3VuZAogICAgICAgICBp
ZiBzZWxmLl9wb3J0OgogICAgICAgICAgICAgc2VsZi5fcG9ydCA9IGludChzZWxmLl9wb3J0KQpA
QCAtMTk5LDIxICsxOTgsOSBAQCBjbGFzcyBMaWdodHRwZChodHRwX3NlcnZlcl9iYXNlLkh0dHBT
ZXJ2ZXJCYXNlKToKICAgICAgICAgICAgIHNodXRpbC5jb3B5ZmlsZShvcy5wYXRoLmpvaW4obW9k
dWxlX3BhdGgsIGxpYl9maWxlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRo
LmpvaW4odG1wX21vZHVsZV9wYXRoLCBsaWJfZmlsZSkpCiAKLSAgICAgICAgIyBQdXQgdGhlIGN5
Z3dpbiBkaXJlY3RvcnkgZmlyc3QgaW4gdGhlIHBhdGggdG8gZmluZCBjeWd3aW4xLmRsbAotICAg
ICAgICBlbnYgPSBvcy5lbnZpcm9uCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ2N5Z3dp
bicsICd3aW4zMicpOgotICAgICAgICAgICAgZW52WydQQVRIJ10gPSAnJXM7JXMnICUgKAotICAg
ICAgICAgICAgICAgIHNlbGYuX3BvcnRfb2JqLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCd0aGly
ZF9wYXJ0eScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2N5Z3dpbicsICdiaW4nKSwKLSAgICAgICAgICAgICAgICBlbnZbJ1BBVEgnXSkK
LQotICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyBhbmQgc2VsZi5fcmVnaXN0ZXJf
Y3lnd2luOgotICAgICAgICAgICAgc2V0dXBfbW91bnQgPSBzZWxmLl9wb3J0X29iai5wYXRoX2Zy
b21fY2hyb21pdW1fYmFzZSgndGhpcmRfcGFydHknLAotICAgICAgICAgICAgICAgICdjeWd3aW4n
LCAnc2V0dXBfbW91bnQuYmF0JykKLSAgICAgICAgICAgIHN1YnByb2Nlc3MuUG9wZW4oc2V0dXBf
bW91bnQpLndhaXQoKQotCisgICAgICAgIHNlbGYuX3BvcnRfb2JqLnNldHVwX2Vudmlyb25fZm9y
X3NlcnZlcigpCiAgICAgICAgIF9sb2cuZGVidWcoJ1N0YXJ0aW5nIGh0dHAgc2VydmVyJykKLSAg
ICAgICAgc2VsZi5fcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oc3RhcnRfY21kLCBlbnY9ZW52
KQorICAgICAgICBzZWxmLl9wcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihzdGFydF9jbWQsIGVu
dj1vcy5lbnZpcm9uKQogCiAgICAgICAgICMgV2FpdCBmb3Igc2VydmVyIHRvIHN0YXJ0LgogICAg
ICAgICBzZWxmLm1hcHBpbmdzID0gbWFwcGluZ3MKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3Nl
cnZlci5weQppbmRleCBlZDZkODcxLi5kOTkyMTRmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2Nr
ZXRfc2VydmVyLnB5CkBAIC05NSwxNSArOTUsMTMgQEAgY2xhc3MgUHlXZWJTb2NrZXQoaHR0cF9z
ZXJ2ZXIuTGlnaHR0cGQpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfb2JqLCBvdXRw
dXRfZGlyLCBwb3J0PV9ERUZBVUxUX1dTX1BPUlQsCiAgICAgICAgICAgICAgICAgIHJvb3Q9Tm9u
ZSwgdXNlX3Rscz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfY3lnd2luPVRydWUs
CiAgICAgICAgICAgICAgICAgIHBpZGZpbGU9Tm9uZSk6CiAgICAgICAgICIiIkFyZ3M6CiAgICAg
ICAgICAgb3V0cHV0X2RpcjogdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGxheW91dCB0ZXN0IHJl
c3VsdCBkaXJlY3RvcnkKICAgICAgICAgIiIiCiAgICAgICAgIGh0dHBfc2VydmVyLkxpZ2h0dHBk
Ll9faW5pdF9fKHNlbGYsIHBvcnRfb2JqLCBvdXRwdXRfZGlyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwb3J0PV9ERUZBVUxUX1dTX1BPUlQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3Q9cm9vdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfY3lnd2luPXJlZ2lzdGVyX2N5Z3dpbikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdD1yb290KQogICAgICAgICBzZWxm
Ll9vdXRwdXRfZGlyID0gb3V0cHV0X2RpcgogICAgICAgICBzZWxmLl9wcm9jZXNzID0gTm9uZQog
ICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydApAQCAtMTg1LDIxICsxODMsOCBAQCBjbGFzcyBQeVdl
YlNvY2tldChodHRwX3NlcnZlci5MaWdodHRwZCk6CiAgICAgICAgICAgICBzdGFydF9jbWQuZXh0
ZW5kKFsnLXQnLCAnLWsnLCBzZWxmLl9wcml2YXRlX2tleSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICctYycsIHNlbGYuX2NlcnRpZmljYXRlXSkKIAotICAgICAgICAjIFB1dCB0aGUg
Y3lnd2luIGRpcmVjdG9yeSBmaXJzdCBpbiB0aGUgcGF0aCB0byBmaW5kIGN5Z3dpbjEuZGxsCisg
ICAgICAgIHNlbGYuX3BvcnRfb2JqLnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcigpCiAgICAgICAg
IGVudiA9IG9zLmVudmlyb24KLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnY3lnd2luJywg
J3dpbjMyJyk6Ci0gICAgICAgICAgICBlbnZbJ1BBVEgnXSA9ICclczslcycgJSAoCi0gICAgICAg
ICAgICAgICAgc2VsZi5fcG9ydF9vYmoucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoJ3RoaXJkX3Bh
cnR5JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnY3lnd2luJywgJ2JpbicpLAotICAgICAgICAgICAgICAgIGVudlsnUEFUSCddKQotICAg
ICAgICAgICAgZW52WydDWUdXSU5fUEFUSCddID0gc2VsZi5fcG9ydF9vYmoucGF0aF9mcm9tX2No
cm9taXVtX2Jhc2UoCi0gICAgICAgICAgICAgICAgJ3RoaXJkX3BhcnR5JywgJ2N5Z3dpbicsICdi
aW4nKQotCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIGFuZCBzZWxmLl9yZWdp
c3Rlcl9jeWd3aW46Ci0gICAgICAgICAgICBzZXR1cF9tb3VudCA9IHNlbGYuX3BvcnRfb2JqLnBh
dGhfZnJvbV9jaHJvbWl1bV9iYXNlKAotICAgICAgICAgICAgICAgICd0aGlyZF9wYXJ0eScsICdj
eWd3aW4nLCAnc2V0dXBfbW91bnQuYmF0JykKLSAgICAgICAgICAgIHN1YnByb2Nlc3MuUG9wZW4o
c2V0dXBfbW91bnQpLndhaXQoKQotCiAgICAgICAgIGVudlsnUFlUSE9OUEFUSCddID0gKHB5d2Vi
c29ja2V0X2Jhc2UgKyBvcy5wYXRoLnBhdGhzZXAgKwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbnYuZ2V0KCdQWVRIT05QQVRIJywgJycpKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55213</attachid>
            <date>2010-05-06 01:31:24 -0700</date>
            <delta_ts>2010-05-09 22:21:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37664-20100506173122.patch</filename>
            <type>text/plain</type>
            <size>18227</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjZWRmNzYwOWNiYTY4OGE0MDhlZTM4OTc1MjNkZGI5ZWJkNzc2NWEyLi4xNTZkYjJm
MWZhMjc3MTMxNzQwZGQzZjdmZmIyNjRkZWM0MDQ0MGE1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTAtMDUtMDYgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW06IEFkZCAt
LWNocm9taXVtIG9wdGlvbiB0byBuZXctcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NjY0CisKKyAgICAg
ICAgb3MuZW52aXJvbiBzZXR1cCBhbmQgc2V0dXBfbW91bnQgZm9yIGN5Z3dpbiBhcmUgbW92ZWQg
aW4gQ2hyb21pdW1XaW5Qb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlci4KKworICAgICAgICAq
IFNjcmlwdHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQ6CisgICAgICAgICAgUmVtb3ZlIHBhc3Npbmcg
cmVnaXN0ZXJfY3lnd2luLgorICAgICAgICAqIFNjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vic29j
a2V0c2VydmVyOgorICAgICAgICAgIEFkZCAtLWNocm9taXVtIGZsYWcuCisgICAgICAgICAgUmVt
b3ZlIHBhc3NpbmcgcmVnaXN0ZXJfY3lnd2luLgorICAgICAgICAgIENyZWF0ZSBwb3J0IG9iamVj
dCB1c2luZyBvcHRpb25zLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvYmFzZS5weToKKyAgICAgICAgICBBZGQgc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKCku
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93
aW4ucHk6CisgICAgICAgICAgRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5OgorICAgICAgICAg
IFJlbW92ZSByZWdpc3Rlcl9jeWd3aW4gcGFyYW1ldGVyLgorICAgICAgICAgIENhbGwgc2V0dXBf
ZW52aXJvbl9mb3Jfc2VydmVyKCkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5OgorICAgICAgICAgIERpdHRvLgorCiAyMDEw
LTA1LTA1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9u
ZXctcnVuLXdlYmtpdC1odHRwZCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQt
aHR0cGQKaW5kZXggODhhZTg0ZWIwNDFkZDJkNTJiYTY1N2M4MDhlNzgzMzdjYWZhZjExMi4uZjZl
YzE2NDgyODE2ZDEzYjMyNzc1MDJiZDJiMzgwNzc2Y2I4MmI0MyAxMDA3NTUKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC1odHRwZAorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL25ldy1ydW4td2Via2l0LWh0dHBkCkBAIC02NSw3ICs2NSw2IEBAIGRlZiBydW4ob3B0aW9u
cyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGZpbGUuZ2V0dGVt
cGRpcigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9b3B0aW9u
cy5wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3Q9b3B0aW9u
cy5yb290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX2N5
Z3dpbj1vcHRpb25zLnJlZ2lzdGVyX2N5Z3dpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBydW5fYmFja2dyb3VuZD1vcHRpb25zLnJ1bl9iYWNrZ3JvdW5kKQogICAgICAg
ICBpZiBvcHRpb25zLnNlcnZlciA9PSAnc3RhcnQnOgogICAgICAgICAgICAgaHR0cGQuc3RhcnQo
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC13ZWJzb2Nr
ZXRzZXJ2ZXIgYi9XZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LXdlYnNvY2tldHNl
cnZlcgpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDhlNGFlYWFjODJjYTk2
YWM0NTljNjliNWQ5MzFiNzMwOWQ4MmQyZjMuLjc2ZWU1NGFlNWVjY2EzNmU2YzdmNzQxNDA2OTMx
OGI1YjI5YjE4NzIKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC13ZWJz
b2NrZXRzZXJ2ZXIKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC13ZWJz
b2NrZXRzZXJ2ZXIKQEAgLTQyLDI1ICs0MiwzMCBAQCBkZWYgbWFpbigpOgogICAgIG9wdGlvbl9w
YXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29w
dGlvbignLS1zZXJ2ZXInLCB0eXBlPSdjaG9pY2UnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaG9pY2VzPVsnc3RhcnQnLCAnc3RvcCddLCBkZWZhdWx0PSdzdGFydCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1NlcnZlciBhY3Rpb24gKHN0YXJ0fHN0b3ApJykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nU2VydmVyIGFjdGlvbiAoc3RhcnR8
c3RvcCkuJykKICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy1wJywgJy0tcG9ydCcsIGRl
c3Q9J3BvcnQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsIGhl
bHA9J1BvcnQgdG8gbGlzdGVuIG9uJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD1Ob25lLCBoZWxwPSdQb3J0IHRvIGxpc3RlbiBvbi4nKQogICAgIG9wdGlvbl9wYXJzZXIu
YWRkX29wdGlvbignLXInLCAnLS1yb290JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0nQWJzb2x1dGUgcGF0aCB0byBEb2N1bWVudFJvb3QgJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICcob3ZlcnJpZGVzIGxheW91dCB0ZXN0IHJvb3RzKScpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhvdmVycmlkZXMgbGF5b3V0IHRlc3Qgcm9vdHMp
LicpCiAgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctdCcsICctLXRscycsIGRlc3Q9J3Vz
ZV90bHMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSd1c2Ug
VExTICh3c3M6Ly8pJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxz
ZSwgaGVscD0ndXNlIFRMUyAod3NzOi8vKS4nKQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlv
bignLWsnLCAnLS1wcml2YXRlX2tleScsIGRlc3Q9J3ByaXZhdGVfa2V5JywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVscD0nVExTIHByaXZhdGUga2V5IGZpbGUu
JykKICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy1jJywgJy0tY2VydGlmaWNhdGUnLCBk
ZXN0PSdjZXJ0aWZpY2F0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9
JycsIGhlbHA9J1RMUyBjZXJ0aWZpY2F0ZSBmaWxlLicpCisgICAgb3B0aW9uX3BhcnNlci5hZGRf
b3B0aW9uKCctLWNocm9taXVtJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVzdD0nY2hyb21pdW0nLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdV
c2UgdGhlIENocm9taXVtIHBvcnQuJykKICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy0t
cmVnaXN0ZXJfY3lnd2luJywgYWN0aW9uPSJzdG9yZV90cnVlIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVzdD0icmVnaXN0ZXJfY3lnd2luIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaGVscD0nUmVnaXN0ZXIgQ3lnd2luIHBhdGhzIChvbiBXaW4gdHJ5IGJvdHMpJykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nUmVnaXN0ZXIgQ3lnd2luIHBhdGhz
IChvbiBXaW4gdHJ5IGJvdHMpLicpCiAgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctLXBp
ZGZpbGUnLCBoZWxwPSdwYXRoIHRvIHBpZCBmaWxlLicpCiAgICAgb3B0aW9uX3BhcnNlci5hZGRf
b3B0aW9uKCctdicsICctLXZlcmJvc2UnLCBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSdpbmNsdWRlIGRlYnVnLWxl
dmVsIGxvZ2dpbmcnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdJbmNsdWRlIGRlYnVnLWxldmVs
IGxvZ2dpbmcuJykKICAgICBvcHRpb25zLCBhcmdzID0gb3B0aW9uX3BhcnNlci5wYXJzZV9hcmdz
KCkKIAogICAgIGlmIG5vdCBvcHRpb25zLnBvcnQ6CkBAIC03OCwxMSArODMsMTAgQEAgZGVmIG1h
aW4oKToKICAgICAgICAga3dkc1sncHJpdmF0ZV9rZXknXSA9IG9wdGlvbnMucHJpdmF0ZV9rZXkK
ICAgICBpZiBvcHRpb25zLmNlcnRpZmljYXRlOgogICAgICAgICBrd2RzWydjZXJ0aWZpY2F0ZSdd
ID0gb3B0aW9ucy5jZXJ0aWZpY2F0ZQotICAgIGt3ZHNbJ3JlZ2lzdGVyX2N5Z3dpbiddID0gb3B0
aW9ucy5yZWdpc3Rlcl9jeWd3aW4KICAgICBpZiBvcHRpb25zLnBpZGZpbGU6CiAgICAgICAgIGt3
ZHNbJ3BpZGZpbGUnXSA9IG9wdGlvbnMucGlkZmlsZQogCi0gICAgcG9ydF9vYmogPSBmYWN0b3J5
LmdldCgpCisgICAgcG9ydF9vYmogPSBmYWN0b3J5LmdldChvcHRpb25zPW9wdGlvbnMpCiAgICAg
cHl3ZWJzb2NrZXQgPSB3ZWJzb2NrZXRfc2VydmVyLlB5V2ViU29ja2V0KHBvcnRfb2JqLCB0ZW1w
ZmlsZS5nZXR0ZW1wZGlyKCksICoqa3dkcykKIAogICAgIGxvZ19sZXZlbCA9IGxvZ2dpbmcuV0FS
TgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9iYXNlLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9iYXNlLnB5CmluZGV4IDI1OTQ2YWYxYWJjY2VmNjM1M2QzNmQxMmJiODg2Yjk5Zjg0NzU1
ODYuLmM1N2Q5Yjg2Y2NmMzllNTQxNGJhZjE2OTgzNGFhODg4Yzg1NmY5YzggMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2Uu
cHkKQEAgLTQxNCw4ICs0MTQsMTkgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZCgnUG9ydC5yZXN1bHRzX2RpcmVjdG9yeScpCiAKICAgICBkZWYgc2V0
dXBfdGVzdF9ydW4oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgcm91dGluZSBjYW4gYmUgb3ZlcnJp
ZGRlbiB0byBwZXJmb3JtIGFueSBwb3J0LXNwZWNpZmljCi0gICAgICAgIHdvcmsgdGhhdCBzaG91
dWxkIGJlIGRvbmUgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHRlc3QgcnVuLiIiIgorICAgICAgICAi
IiJQZXJmb3JtIHBvcnQtc3BlY2lmaWMgd29yayBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgdGVzdCBy
dW4uCisKKyAgICAgICAgWW91IGNhbiBvdmVycmlkZSB0aGlzIHJvdXRpbmUgaWYgbmVjZXNzYXJ5
LgorCisgICAgICAgICIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgc2V0dXBfZW52aXJvbl9m
b3Jfc2VydmVyKHNlbGYpOgorICAgICAgICAiIiJQZXJmb3JtIHBvcnQtc3BlY2lmaWMgd29yayBh
dCB0aGUgYmVnaW5uaW5nIG9mIGEgc2VydmVyIGxhdW5jaC4KKworICAgICAgICBZb3UgY2FuIG92
ZXJyaWRlIHRoaXMgcm91dGluZSBpZiBuZWNlc3NhcnkuCisKKyAgICAgICAgIiIiCiAgICAgICAg
IHBhc3MKIAogICAgIGRlZiBzaG93X2h0bWxfcmVzdWx0c19maWxlKHNlbGYsIHJlc3VsdHNfZmls
ZW5hbWUpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQppbmRleCAzMDJhZjg2YjgxNjVhZjNm
MDFiNzMwZTAxMGViY2RkOGU5MmUyNGZhLi45NGU0YTEzMmVjY2YyNzNiY2IzMTdhNDhiNjYwNzJl
ZDRjMjZkMzA3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQpAQCAtNDgsNiArNDgsMjUg
QEAgY2xhc3MgQ2hyb21pdW1XaW5Qb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAg
ICAgICBvcHRpb25zLmNvbmZpZ3VyYXRpb24gPSAnUmVsZWFzZScKICAgICAgICAgY2hyb21pdW0u
Q2hyb21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZSwgb3B0aW9ucykKIAorICAgIGRl
ZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZik6CisgICAgICAgIGNocm9taXVtLkNocm9t
aXVtUG9ydC5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZikKKyAgICAgICAgIyBQdXQgdGhl
IGN5Z3dpbiBkaXJlY3RvcnkgZmlyc3QgaW4gdGhlIHBhdGggdG8gZmluZCBjeWd3aW4xLmRsbC4K
KyAgICAgICAgZW52ID0gb3MuZW52aXJvbgorICAgICAgICBlbnZbJ1BBVEgnXSA9ICclczslcycg
JSAoCisgICAgICAgICAgICBzZWxmLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCd0aGlyZF9wYXJ0
eScsICdjeWd3aW4nLCAnYmluJyksCisgICAgICAgICAgICBlbnZbJ1BBVEgnXSkKKyAgICAgICAg
IyBDb25maWd1cmUgdGhlIGN5Z3dpbiBkaXJlY3Rvcnkgc28gdGhhdCBweXdlYnNvY2tldCBmaW5k
cyBwcm9wZXIKKyAgICAgICAgIyBweXRob24gZXhlY3V0YWJsZSB0byBydW4gY2dpIHByb2dyYW0u
CisgICAgICAgIGVudlsnQ1lHV0lOX1BBVEgnXSA9IHNlbGYucGF0aF9mcm9tX2Nocm9taXVtX2Jh
c2UoCisgICAgICAgICAgICAndGhpcmRfcGFydHknLCAnY3lnd2luJywgJ2JpbicpCisgICAgICAg
IGlmIChzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyBhbmQgc2VsZi5fb3B0aW9ucyBhbmQKKyAgICAg
ICAgICAgIGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgJ3JlZ2lzdGVyX2N5Z3dpbicpIGFuZAorICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy5yZWdpc3Rlcl9jeWd3aW4pOgorICAgICAgICAgICAgc2V0
dXBfbW91bnQgPSBzZWxmLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCd0aGlyZF9wYXJ0eScsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N5
Z3dpbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ3NldHVwX21vdW50LmJhdCcpCisgICAgICAgICAgICBzdWJwcm9jZXNzLlBvcGVuKHNl
dHVwX21vdW50KS53YWl0KCkKKwogICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToK
ICAgICAgICAgZGlycyA9IFtdCiAgICAgICAgIGlmIHNlbGYuX25hbWUgPT0gJ2Nocm9taXVtLXdp
bi14cCc6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgz
Y2Q5YjBjZDI1OThiOWZmNmU5MTZiNTA0N2RkYmJiMDQwNzg3MQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeV91
bml0dGVzdC5weQpAQCAtMCwwICsxLDEzMCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyMgbWV0OgorIworIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisj
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBzeXMK
K2ltcG9ydCB1bml0dGVzdAorCitpbXBvcnQgY2hyb21pdW1fbGludXgKK2ltcG9ydCBjaHJvbWl1
bV9tYWMKK2ltcG9ydCBjaHJvbWl1bV93aW4KK2ltcG9ydCBkcnlydW4KK2ltcG9ydCBmYWN0b3J5
CitpbXBvcnQgZ3RrCitpbXBvcnQgbWFjCitpbXBvcnQgcXQKK2ltcG9ydCB0ZXN0CitpbXBvcnQg
d2luCisKKworY2xhc3MgRmFjdG9yeVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIlRl
c3QgZmFjdG9yeSBjcmVhdGVzIHByb3BlciBwb3J0IG9iamVjdCBmb3IgdGhlIHRhcmdldC4KKwor
ICAgIFRhcmdldCBpcyBzcGVjaWZpZWQgYnkgcG9ydF9uYW1lLCBzeXMucGxhdGZvcm0gYW5kIG9w
dGlvbnMuCisKKyAgICAiIiIKKworICAgIGNsYXNzIFdlYktpdE9wdGlvbnMob2JqZWN0KToKKyAg
ICAgICAgIiIiUmVwcmVzZW50cyB0aGUgbWluaW11bSBvcHRpb25zIGZvciBXZWJLaXQgcG9ydC4i
IiIKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5waXhlbF90
ZXN0cyA9IEZhbHNlCisKKyAgICBjbGFzcyBDaHJvbWl1bU9wdGlvbnMoV2ViS2l0T3B0aW9ucyk6
CisgICAgICAgICIiIlJlcHJlc2VudHMgbWluaW11bSBvcHRpb25zIGZvciBDaHJvbWl1bSBwb3J0
LiIiIgorICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICBGYWN0b3J5VGVz
dC5XZWJLaXRPcHRpb25zLl9faW5pdF9fKHNlbGYpCisgICAgICAgICAgICBzZWxmLmNocm9taXVt
ID0gVHJ1ZQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLnJlYWxfc3lzX3Bs
YXRmb3JtID0gc3lzLnBsYXRmb3JtCisgICAgICAgIHNlbGYud2Via2l0X29wdGlvbnMgPSBGYWN0
b3J5VGVzdC5XZWJLaXRPcHRpb25zKCkKKyAgICAgICAgc2VsZi5jaHJvbWl1bV9vcHRpb25zID0g
RmFjdG9yeVRlc3QuQ2hyb21pdW1PcHRpb25zKCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToK
KyAgICAgICAgc3lzLnBsYXRmb3JtID0gc2VsZi5yZWFsX3N5c19wbGF0Zm9ybQorCisgICAgZGVm
IHRlc3RfdGVzdChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZmFj
dG9yeS5nZXQocG9ydF9uYW1lPSd0ZXN0JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3QuVGVzdFBvcnQpKQorCisgICAgZGVmIHRlc3RfZHJ5cnVuKHNlbGYpOgorICAg
ICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShmYWN0b3J5LmdldChwb3J0X25hbWU9J2Ry
eXJ1bi10ZXN0JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyeXJ1bi5E
cnlSdW5Qb3J0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZmFjdG9yeS5n
ZXQocG9ydF9uYW1lPSdkcnlydW4tbWFjJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRyeXJ1bi5EcnlSdW5Qb3J0KSkKKworICAgIGRlZiB0ZXN0X21hYyhzZWxmKToKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZmFjdG9yeS5nZXQocG9ydF9uYW1lPSdt
YWMnKSwgbWFjLk1hY1BvcnQpKQorICAgICAgICBzeXMucGxhdGZvcm0gPSAnZGFyd2luJworICAg
ICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShmYWN0b3J5LmdldCgpLCBtYWMuTWFjUG9y
dCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGZhY3RvcnkuZ2V0KG9wdGlv
bnM9c2VsZi53ZWJraXRfb3B0aW9ucyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1hYy5NYWNQb3J0KSkKKworICAgIGRlZiB0ZXN0X3dpbihzZWxmKToKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZmFjdG9yeS5nZXQocG9ydF9uYW1lPSd3aW4nKSwgd2lu
LldpblBvcnQpKQorICAgICAgICBzeXMucGxhdGZvcm0gPSAnd2luMzInCisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGZhY3RvcnkuZ2V0KCksIHdpbi5XaW5Qb3J0KSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZmFjdG9yeS5nZXQob3B0aW9ucz1zZWxmLndl
YmtpdF9vcHRpb25zKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luLldp
blBvcnQpKQorICAgICAgICBzeXMucGxhdGZvcm0gPSAnY3lnd2luJworICAgICAgICBzZWxmLmFz
c2VydFRydWUoaXNpbnN0YW5jZShmYWN0b3J5LmdldCgpLCB3aW4uV2luUG9ydCkpCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGZhY3RvcnkuZ2V0KG9wdGlvbnM9c2VsZi53ZWJr
aXRfb3B0aW9ucyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbi5XaW5Q
b3J0KSkKKworICAgIGRlZiB0ZXN0X2d0ayhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KGlzaW5zdGFuY2UoZmFjdG9yeS5nZXQocG9ydF9uYW1lPSdndGsnKSwgZ3RrLkd0a1BvcnQpKQor
CisgICAgZGVmIHRlc3RfcXQoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3Rh
bmNlKGZhY3RvcnkuZ2V0KHBvcnRfbmFtZT0ncXQnKSwgcXQuUXRQb3J0KSkKKworICAgIGRlZiB0
ZXN0X2Nocm9taXVtX21hYyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFu
Y2UoZmFjdG9yeS5nZXQocG9ydF9uYW1lPSdjaHJvbWl1bS1tYWMnKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9ydCkpCisgICAg
ICAgIHN5cy5wbGF0Zm9ybSA9ICdkYXJ3aW4nCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2lu
c3RhbmNlKGZhY3RvcnkuZ2V0KG9wdGlvbnM9c2VsZi5jaHJvbWl1bV9vcHRpb25zKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9y
dCkpCisKKyAgICBkZWYgdGVzdF9jaHJvbWl1bV9saW51eChzZWxmKToKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGlzaW5zdGFuY2UoZmFjdG9yeS5nZXQocG9ydF9uYW1lPSdjaHJvbWl1bS1saW51
eCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHJvbWl1bV9saW51eC5D
aHJvbWl1bUxpbnV4UG9ydCkpCisgICAgICAgIHN5cy5wbGF0Zm9ybSA9ICdsaW51eDInCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGZhY3RvcnkuZ2V0KG9wdGlvbnM9c2VsZi5j
aHJvbWl1bV9vcHRpb25zKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hy
b21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQpKQorCisgICAgZGVmIHRlc3RfY2hyb21pdW1f
d2luKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShmYWN0b3J5Lmdl
dChwb3J0X25hbWU9J2Nocm9taXVtLXdpbicpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KSkKKyAgICAgICAgc3lzLnBsYXRm
b3JtID0gJ3dpbjMyJworICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShmYWN0b3J5
LmdldChvcHRpb25zPXNlbGYuY2hyb21pdW1fb3B0aW9ucyksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQpKQorICAgICAgICBz
eXMucGxhdGZvcm0gPSAnY3lnd2luJworICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5j
ZShmYWN0b3J5LmdldChvcHRpb25zPXNlbGYuY2hyb21pdW1fb3B0aW9ucyksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQpKQor
CisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0
dHBfc2VydmVyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9odHRwX3NlcnZlci5weQppbmRleCBmYmU0N2UzYzhjZWJmM2RjYTYyNDk4MzQwMGQ4YTFj
YTA4ZDk5MGIwLi4zYWEzYjdlYjYxMzYyMmNjMzE4ZTNkN2M5MGJiYWI4NjVmMzFkMDM3IDEwMDc1
NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0
dHBfc2VydmVyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvaHR0cF9zZXJ2ZXIucHkKQEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgSHR0cGROb3RT
dGFydGVkKEV4Y2VwdGlvbik6CiBjbGFzcyBMaWdodHRwZChodHRwX3NlcnZlcl9iYXNlLkh0dHBT
ZXJ2ZXJCYXNlKToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X29iaiwgb3V0cHV0X2Rp
ciwgYmFja2dyb3VuZD1GYWxzZSwgcG9ydD1Ob25lLAotICAgICAgICAgICAgICAgICByb290PU5v
bmUsIHJlZ2lzdGVyX2N5Z3dpbj1Ob25lLCBydW5fYmFja2dyb3VuZD1Ob25lKToKKyAgICAgICAg
ICAgICAgICAgcm9vdD1Ob25lLCBydW5fYmFja2dyb3VuZD1Ob25lKToKICAgICAgICAgIiIiQXJn
czoKICAgICAgICAgICBvdXRwdXRfZGlyOiB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgbGF5b3V0
IHRlc3QgcmVzdWx0IGRpcmVjdG9yeQogICAgICAgICAiIiIKQEAgLTY1LDcgKzY1LDYgQEAgY2xh
c3MgTGlnaHR0cGQoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRwU2VydmVyQmFzZSk6CiAgICAgICAgIHNl
bGYuX3Byb2Nlc3MgPSBOb25lCiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CiAgICAgICAgIHNl
bGYuX3Jvb3QgPSByb290Ci0gICAgICAgIHNlbGYuX3JlZ2lzdGVyX2N5Z3dpbiA9IHJlZ2lzdGVy
X2N5Z3dpbgogICAgICAgICBzZWxmLl9ydW5fYmFja2dyb3VuZCA9IHJ1bl9iYWNrZ3JvdW5kCiAg
ICAgICAgIGlmIHNlbGYuX3BvcnQ6CiAgICAgICAgICAgICBzZWxmLl9wb3J0ID0gaW50KHNlbGYu
X3BvcnQpCkBAIC0xOTksMjMgKzE5OCwxMCBAQCBjbGFzcyBMaWdodHRwZChodHRwX3NlcnZlcl9i
YXNlLkh0dHBTZXJ2ZXJCYXNlKToKICAgICAgICAgICAgIHNodXRpbC5jb3B5ZmlsZShvcy5wYXRo
LmpvaW4obW9kdWxlX3BhdGgsIGxpYl9maWxlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcy5wYXRoLmpvaW4odG1wX21vZHVsZV9wYXRoLCBsaWJfZmlsZSkpCiAKLSAgICAgICAgIyBQ
dXQgdGhlIGN5Z3dpbiBkaXJlY3RvcnkgZmlyc3QgaW4gdGhlIHBhdGggdG8gZmluZCBjeWd3aW4x
LmRsbAotICAgICAgICBlbnYgPSBvcy5lbnZpcm9uCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBp
biAoJ2N5Z3dpbicsICd3aW4zMicpOgotICAgICAgICAgICAgZW52WydQQVRIJ10gPSAnJXM7JXMn
ICUgKAotICAgICAgICAgICAgICAgIHNlbGYuX3BvcnRfb2JqLnBhdGhfZnJvbV9jaHJvbWl1bV9i
YXNlKCd0aGlyZF9wYXJ0eScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2N5Z3dpbicsICdiaW4nKSwKLSAgICAgICAgICAgICAgICBlbnZb
J1BBVEgnXSkKLQotICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyBhbmQgc2VsZi5f
cmVnaXN0ZXJfY3lnd2luOgotICAgICAgICAgICAgc2V0dXBfbW91bnQgPSBzZWxmLl9wb3J0X29i
ai5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgndGhpcmRfcGFydHknLAotICAgICAgICAgICAgICAg
ICdjeWd3aW4nLCAnc2V0dXBfbW91bnQuYmF0JykKLSAgICAgICAgICAgICMgRklYTUU6IFNob3Vs
ZCB1c2UgRXhlY3V0aXZlLnJ1bl9jb21tYW5kCi0gICAgICAgICAgICBzdWJwcm9jZXNzLlBvcGVu
KHNldHVwX21vdW50KS53YWl0KCkKLQorICAgICAgICBzZWxmLl9wb3J0X29iai5zZXR1cF9lbnZp
cm9uX2Zvcl9zZXJ2ZXIoKQogICAgICAgICBfbG9nLmRlYnVnKCdTdGFydGluZyBodHRwIHNlcnZl
cicpCiAgICAgICAgICMgRklYTUU6IFNob3VsZCB1c2UgRXhlY3V0aXZlLnJ1bl9jb21tYW5kCi0g
ICAgICAgIHNlbGYuX3Byb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKHN0YXJ0X2NtZCwgZW52PWVu
dikKKyAgICAgICAgc2VsZi5fcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oc3RhcnRfY21kLCBl
bnY9b3MuZW52aXJvbikKIAogICAgICAgICAjIFdhaXQgZm9yIHNlcnZlciB0byBzdGFydC4KICAg
ICAgICAgc2VsZi5tYXBwaW5ncyA9IG1hcHBpbmdzCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9z
ZXJ2ZXIucHkKaW5kZXggYWQ1NTdiZGU5Y2ZiZDljY2VkMDczOTJjMmEwNWJmNGMyNzE0MzMyYS4u
N2ViZWMwYmQxNDU3ODQ4MjA5YmVkNDhmYTMxZTRmM2U4ZmYyYzZhNiAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2Vy
dmVyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2Vic29ja2V0X3NlcnZlci5weQpAQCAtOTUsMTUgKzk1LDEzIEBAIGNsYXNzIFB5V2ViU29j
a2V0KGh0dHBfc2VydmVyLkxpZ2h0dHBkKToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0
X29iaiwgb3V0cHV0X2RpciwgcG9ydD1fREVGQVVMVF9XU19QT1JULAogICAgICAgICAgICAgICAg
ICByb290PU5vbmUsIHVzZV90bHM9RmFsc2UsCi0gICAgICAgICAgICAgICAgIHJlZ2lzdGVyX2N5
Z3dpbj1UcnVlLAogICAgICAgICAgICAgICAgICBwaWRmaWxlPU5vbmUpOgogICAgICAgICAiIiJB
cmdzOgogICAgICAgICAgIG91dHB1dF9kaXI6IHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBsYXlv
dXQgdGVzdCByZXN1bHQgZGlyZWN0b3J5CiAgICAgICAgICIiIgogICAgICAgICBodHRwX3NlcnZl
ci5MaWdodHRwZC5fX2luaXRfXyhzZWxmLCBwb3J0X29iaiwgb3V0cHV0X2RpciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1fREVGQVVMVF9XU19QT1JULAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290PXJvb3QsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX2N5Z3dpbj1yZWdpc3Rlcl9jeWd3
aW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3Q9cm9vdCkKICAg
ICAgICAgc2VsZi5fb3V0cHV0X2RpciA9IG91dHB1dF9kaXIKICAgICAgICAgc2VsZi5fcHJvY2Vz
cyA9IE5vbmUKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKQEAgLTE4NSwyMSArMTgzLDggQEAg
Y2xhc3MgUHlXZWJTb2NrZXQoaHR0cF9zZXJ2ZXIuTGlnaHR0cGQpOgogICAgICAgICAgICAgc3Rh
cnRfY21kLmV4dGVuZChbJy10JywgJy1rJywgc2VsZi5fcHJpdmF0ZV9rZXksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnLWMnLCBzZWxmLl9jZXJ0aWZpY2F0ZV0pCiAKLSAgICAgICAg
IyBQdXQgdGhlIGN5Z3dpbiBkaXJlY3RvcnkgZmlyc3QgaW4gdGhlIHBhdGggdG8gZmluZCBjeWd3
aW4xLmRsbAorICAgICAgICBzZWxmLl9wb3J0X29iai5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIo
KQogICAgICAgICBlbnYgPSBvcy5lbnZpcm9uCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAo
J2N5Z3dpbicsICd3aW4zMicpOgotICAgICAgICAgICAgZW52WydQQVRIJ10gPSAnJXM7JXMnICUg
KAotICAgICAgICAgICAgICAgIHNlbGYuX3BvcnRfb2JqLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNl
KCd0aGlyZF9wYXJ0eScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2N5Z3dpbicsICdiaW4nKSwKLSAgICAgICAgICAgICAgICBlbnZbJ1BB
VEgnXSkKLSAgICAgICAgICAgIGVudlsnQ1lHV0lOX1BBVEgnXSA9IHNlbGYuX3BvcnRfb2JqLnBh
dGhfZnJvbV9jaHJvbWl1bV9iYXNlKAotICAgICAgICAgICAgICAgICd0aGlyZF9wYXJ0eScsICdj
eWd3aW4nLCAnYmluJykKLQotICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyBhbmQg
c2VsZi5fcmVnaXN0ZXJfY3lnd2luOgotICAgICAgICAgICAgc2V0dXBfbW91bnQgPSBzZWxmLl9w
b3J0X29iai5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgKLSAgICAgICAgICAgICAgICAndGhpcmRf
cGFydHknLCAnY3lnd2luJywgJ3NldHVwX21vdW50LmJhdCcpCi0gICAgICAgICAgICBzdWJwcm9j
ZXNzLlBvcGVuKHNldHVwX21vdW50KS53YWl0KCkKLQogICAgICAgICBlbnZbJ1BZVEhPTlBBVEgn
XSA9IChweXdlYnNvY2tldF9iYXNlICsgb3MucGF0aC5wYXRoc2VwICsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZW52LmdldCgnUFlUSE9OUEFUSCcsICcnKSkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55520</attachid>
            <date>2010-05-09 22:21:45 -0700</date>
            <delta_ts>2010-05-16 22:10:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37664-20100509222143.patch</filename>
            <type>text/plain</type>
            <size>18082</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA0ZTQ4YjM2NGE0YzEyMjY5MDc0ZGFmYWYyNmI0YjRkMzAzMTI5NTJmLi4xMzgyOThm
OTk5YTI0MGMxMTg3MmVlYTJhNmE3M2IxYjZjY2M1YWJmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTAtMDUtMDkgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW06IEFkZCAt
LWNocm9taXVtIG9wdGlvbiB0byBuZXctcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NjY0CisKKyAgICAg
ICAgb3MuZW52aXJvbiBzZXR1cCBhbmQgc2V0dXBfbW91bnQgZm9yIGN5Z3dpbiBhcmUgbW92ZWQg
aW4gQ2hyb21pdW1XaW5Qb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlci4KKworICAgICAgICAq
IFNjcmlwdHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQ6CisgICAgICAgICAgUmVtb3ZlIHBhc3Npbmcg
cmVnaXN0ZXJfY3lnd2luLgorICAgICAgICAqIFNjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vic29j
a2V0c2VydmVyOgorICAgICAgICAgIEFkZCAtLWNocm9taXVtIGZsYWcuCisgICAgICAgICAgUmVt
b3ZlIHBhc3NpbmcgcmVnaXN0ZXJfY3lnd2luLgorICAgICAgICAgIENyZWF0ZSBwb3J0IG9iamVj
dCB1c2luZyBvcHRpb25zLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvYmFzZS5weToKKyAgICAgICAgICBBZGQgc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKCku
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93
aW4ucHk6CisgICAgICAgICAgRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5OgorICAgICAgICAg
IFJlbW92ZSByZWdpc3Rlcl9jeWd3aW5fcGFyYW1ldGVyLgorICAgICAgICAgIENhbGwgc2V0dXBf
ZW52aXJvbl9mb3Jfc2VydmVyKCkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5OgorICAgICAgICAgIERpdHRvLgorCiAyMDEw
LTA1LTA5ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBDaHJpcyBKZXJkb25lay4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3
LXJ1bi13ZWJraXQtaHR0cGQgYi9XZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LWh0
dHBkCmluZGV4IDg4YWU4NGViMDQxZGQyZDUyYmE2NTdjODA4ZTc4MzM3Y2FmYWYxMTIuLmY2ZWMx
NjQ4MjgxNmQxM2IzMjc3NTAyYmQyYjM4MDc3NmNiODJiNDMgMTAwNzU1Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy9uZXctcnVuLXdlYmtpdC1odHRwZApAQCAtNjUsNyArNjUsNiBAQCBkZWYgcnVuKG9wdGlvbnMp
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBmaWxlLmdldHRlbXBk
aXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0PW9wdGlvbnMu
cG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290PW9wdGlvbnMu
cm9vdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3Rlcl9jeWd3
aW49b3B0aW9ucy5yZWdpc3Rlcl9jeWd3aW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcnVuX2JhY2tncm91bmQ9b3B0aW9ucy5ydW5fYmFja2dyb3VuZCkKICAgICAgICAg
aWYgb3B0aW9ucy5zZXJ2ZXIgPT0gJ3N0YXJ0JzoKICAgICAgICAgICAgIGh0dHBkLnN0YXJ0KCkK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vic29ja2V0
c2VydmVyIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2
ZXIKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA4ZTRhZWFhYzgyY2E5NmFj
NDU5YzY5YjVkOTMxYjczMDlkODJkMmYzLi43NmVlNTRhZTVlY2NhMzZlNmM3Zjc0MTQwNjkzMThi
NWIyOWIxODcyCi0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vic29j
a2V0c2VydmVyCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vic29j
a2V0c2VydmVyCkBAIC00MiwyNSArNDIsMzAgQEAgZGVmIG1haW4oKToKICAgICBvcHRpb25fcGFy
c2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRp
b24oJy0tc2VydmVyJywgdHlwZT0nY2hvaWNlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hvaWNlcz1bJ3N0YXJ0JywgJ3N0b3AnXSwgZGVmYXVsdD0nc3RhcnQnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSdTZXJ2ZXIgYWN0aW9uIChzdGFydHxzdG9wKScpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1NlcnZlciBhY3Rpb24gKHN0YXJ0fHN0
b3ApLicpCiAgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXBvcnQnLCBkZXN0
PSdwb3J0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLCBoZWxw
PSdQb3J0IHRvIGxpc3RlbiBvbicpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ9Tm9uZSwgaGVscD0nUG9ydCB0byBsaXN0ZW4gb24uJykKICAgICBvcHRpb25fcGFyc2VyLmFk
ZF9vcHRpb24oJy1yJywgJy0tcm9vdCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J0Fic29sdXRlIHBhdGggdG8gRG9jdW1lbnRSb290ICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnKG92ZXJyaWRlcyBsYXlvdXQgdGVzdCByb290cyknKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcob3ZlcnJpZGVzIGxheW91dCB0ZXN0IHJvb3RzKS4n
KQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLXQnLCAnLS10bHMnLCBkZXN0PSd1c2Vf
dGxzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0ndXNlIFRM
UyAod3NzOi8vKScpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2Us
IGhlbHA9J3VzZSBUTFMgKHdzczovLykuJykKICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24o
Jy1rJywgJy0tcHJpdmF0ZV9rZXknLCBkZXN0PSdwcml2YXRlX2tleScsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J1RMUyBwcml2YXRlIGtleSBmaWxlLicp
CiAgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctYycsICctLWNlcnRpZmljYXRlJywgZGVz
dD0nY2VydGlmaWNhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScn
LCBoZWxwPSdUTFMgY2VydGlmaWNhdGUgZmlsZS4nKQorICAgIG9wdGlvbl9wYXJzZXIuYWRkX29w
dGlvbignLS1jaHJvbWl1bScsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlc3Q9J2Nocm9taXVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNl
IHRoZSBDaHJvbWl1bSBwb3J0LicpCiAgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctLXJl
Z2lzdGVyX2N5Z3dpbicsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9InJlZ2lzdGVyX2N5Z3dpbiIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9J1JlZ2lzdGVyIEN5Z3dpbiBwYXRocyAob24gV2luIHRyeSBib3RzKScpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1JlZ2lzdGVyIEN5Z3dpbiBwYXRocyAo
b24gV2luIHRyeSBib3RzKS4nKQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLS1waWRm
aWxlJywgaGVscD0ncGF0aCB0byBwaWQgZmlsZS4nKQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29w
dGlvbignLXYnLCAnLS12ZXJib3NlJywgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0naW5jbHVkZSBkZWJ1Zy1sZXZl
bCBsb2dnaW5nJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nSW5jbHVkZSBkZWJ1Zy1sZXZlbCBs
b2dnaW5nLicpCiAgICAgb3B0aW9ucywgYXJncyA9IG9wdGlvbl9wYXJzZXIucGFyc2VfYXJncygp
CiAKICAgICBpZiBub3Qgb3B0aW9ucy5wb3J0OgpAQCAtNzgsMTEgKzgzLDEwIEBAIGRlZiBtYWlu
KCk6CiAgICAgICAgIGt3ZHNbJ3ByaXZhdGVfa2V5J10gPSBvcHRpb25zLnByaXZhdGVfa2V5CiAg
ICAgaWYgb3B0aW9ucy5jZXJ0aWZpY2F0ZToKICAgICAgICAga3dkc1snY2VydGlmaWNhdGUnXSA9
IG9wdGlvbnMuY2VydGlmaWNhdGUKLSAgICBrd2RzWydyZWdpc3Rlcl9jeWd3aW4nXSA9IG9wdGlv
bnMucmVnaXN0ZXJfY3lnd2luCiAgICAgaWYgb3B0aW9ucy5waWRmaWxlOgogICAgICAgICBrd2Rz
WydwaWRmaWxlJ10gPSBvcHRpb25zLnBpZGZpbGUKIAotICAgIHBvcnRfb2JqID0gZmFjdG9yeS5n
ZXQoKQorICAgIHBvcnRfb2JqID0gZmFjdG9yeS5nZXQob3B0aW9ucz1vcHRpb25zKQogICAgIHB5
d2Vic29ja2V0ID0gd2Vic29ja2V0X3NlcnZlci5QeVdlYlNvY2tldChwb3J0X29iaiwgdGVtcGZp
bGUuZ2V0dGVtcGRpcigpLCAqKmt3ZHMpCiAKICAgICBsb2dfbGV2ZWwgPSBsb2dnaW5nLldBUk4K
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZS5weQppbmRleCAyNTk0NmFmMWFiY2NlZjYzNTNkMzZkMTJiYjg4NmI5OWY4NDc1NTg2
Li5hNGNiZTQyYTNiNGViMzVlYzU1NmE2YmY2NWE4NmZkMGE3M2NiMmUwIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5
CkBAIC00MTQsMTAgKzQxNCwxNyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIHJhaXNl
IE5vdEltcGxlbWVudGVkKCdQb3J0LnJlc3VsdHNfZGlyZWN0b3J5JykKIAogICAgIGRlZiBzZXR1
cF90ZXN0X3J1bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyByb3V0aW5lIGNhbiBiZSBvdmVycmlk
ZGVuIHRvIHBlcmZvcm0gYW55IHBvcnQtc3BlY2lmaWMKLSAgICAgICAgd29yayB0aGF0IHNob3V1
bGQgYmUgZG9uZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgdGVzdCBydW4uIiIiCisgICAgICAgICIi
IlBlcmZvcm0gcG9ydC1zcGVjaWZpYyB3b3JrIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSB0ZXN0IHJ1
bi4iIiIKICAgICAgICAgcGFzcwogCisgICAgZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihz
ZWxmKToKKyAgICAgICAgIiIiUGVyZm9ybSBwb3J0LXNwZWNpZmljIHdvcmsgYXQgdGhlIGJlZ2lu
bmluZyBvZiBhIHNlcnZlciBsYXVuY2guCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAg
T3BlcmF0aW5nLXN5c3RlbSdzIGVudmlyb25tZW50LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0
dXJuIG9zLmVudmlyb24KKwogICAgIGRlZiBzaG93X2h0bWxfcmVzdWx0c19maWxlKHNlbGYsIHJl
c3VsdHNfZmlsZW5hbWUpOgogICAgICAgICAiIiJUaGlzIHJvdXRpbmUgc2hvdWxkIGRpc3BsYXkg
dGhlIEhUTUwgZmlsZSBwb2ludGVkIGF0IGJ5CiAgICAgICAgIHJlc3VsdHNfZmlsZW5hbWUgaW4g
YSB1c2VycycgYnJvd3Nlci4iIiIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luLnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKaW5kZXggNjVj
NDJiYjRmMDk2Y2MwZDQzMDRjYmMwNDk1MDhmNzYyZjE2ZmZlOC4uYjIyYzJlYmZjNGE5NjMzYTMz
YjkzZjdhOGEzMWQzOTdkYzkzNGY4MiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKQEAg
LTQ4LDYgKzQ4LDI2IEBAIGNsYXNzIENocm9taXVtV2luUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBv
cnQpOgogICAgICAgICAgICAgb3B0aW9ucy5jb25maWd1cmF0aW9uID0gJ1JlbGVhc2UnCiAgICAg
ICAgIGNocm9taXVtLkNocm9taXVtUG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWUsIG9wdGlv
bnMpCiAKKyAgICBkZWYgc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlbGYpOgorICAgICAgICBj
aHJvbWl1bS5DaHJvbWl1bVBvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlbGYpCisgICAg
ICAgICMgUHV0IHRoZSBjeWd3aW4gZGlyZWN0b3J5IGZpcnN0IGluIHRoZSBwYXRoIHRvIGZpbmQg
Y3lnd2luMS5kbGwuCisgICAgICAgIGVudiA9IG9zLmVudmlyb24KKyAgICAgICAgZW52WydQQVRI
J10gPSAnJXM7JXMnICUgKAorICAgICAgICAgICAgc2VsZi5wYXRoX2Zyb21fY2hyb21pdW1fYmFz
ZSgndGhpcmRfcGFydHknLCAnY3lnd2luJywgJ2JpbicpLAorICAgICAgICAgICAgZW52WydQQVRI
J10pCisgICAgICAgICMgQ29uZmlndXJlIHRoZSBjeWd3aW4gZGlyZWN0b3J5IHNvIHRoYXQgcHl3
ZWJzb2NrZXQgZmluZHMgcHJvcGVyCisgICAgICAgICMgcHl0aG9uIGV4ZWN1dGFibGUgdG8gcnVu
IGNnaSBwcm9ncmFtLgorICAgICAgICBlbnZbJ0NZR1dJTl9QQVRIJ10gPSBzZWxmLnBhdGhfZnJv
bV9jaHJvbWl1bV9iYXNlKAorICAgICAgICAgICAgJ3RoaXJkX3BhcnR5JywgJ2N5Z3dpbicsICdi
aW4nKQorICAgICAgICBpZiAoc3lzLnBsYXRmb3JtID09ICd3aW4zMicgYW5kIHNlbGYuX29wdGlv
bnMgYW5kCisgICAgICAgICAgICBoYXNhdHRyKHNlbGYuX29wdGlvbnMsICdyZWdpc3Rlcl9jeWd3
aW4nKSBhbmQKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMucmVnaXN0ZXJfY3lnd2luKToKKyAg
ICAgICAgICAgIHNldHVwX21vdW50ID0gc2VsZi5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgndGhp
cmRfcGFydHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdjeWd3aW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdzZXR1cF9tb3VudC5iYXQnKQorICAgICAgICAgICAgc3VicHJv
Y2Vzcy5Qb3BlbihzZXR1cF9tb3VudCkud2FpdCgpCisgICAgICAgIHJldHVybiBlbnYKKwogICAg
IGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKICAgICAgICAgcG9ydF9uYW1lcyA9IFtd
CiAgICAgICAgIGlmIHNlbGYuX25hbWUgPT0gJ2Nocm9taXVtLXdpbi14cCc6CmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3Rvcnlf
dW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2ZhY3RvcnlfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY3ZTk4YjkyYmViN2MxZTQ5OGQ1
YWE0YzA1NTRiMjc3NDU3ZmVhMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeV91bml0dGVzdC5weQpAQCAtMCww
ICsxLDE0MCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0
cmlidXRpb24uCisjICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBzeXMKK2ltcG9ydCB1bml0dGVzdAor
CitpbXBvcnQgY2hyb21pdW1fbGludXgKK2ltcG9ydCBjaHJvbWl1bV9tYWMKK2ltcG9ydCBjaHJv
bWl1bV93aW4KK2ltcG9ydCBkcnlydW4KK2ltcG9ydCBmYWN0b3J5CitpbXBvcnQgZ3RrCitpbXBv
cnQgbWFjCitpbXBvcnQgcXQKK2ltcG9ydCB0ZXN0CitpbXBvcnQgd2luCisKKworY2xhc3MgRmFj
dG9yeVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIlRlc3QgZmFjdG9yeSBjcmVhdGVz
IHByb3BlciBwb3J0IG9iamVjdCBmb3IgdGhlIHRhcmdldC4KKworICAgIFRhcmdldCBpcyBzcGVj
aWZpZWQgYnkgcG9ydF9uYW1lLCBzeXMucGxhdGZvcm0gYW5kIG9wdGlvbnMuCisKKyAgICAiIiIK
KworICAgIGNsYXNzIFdlYktpdE9wdGlvbnMob2JqZWN0KToKKyAgICAgICAgIiIiUmVwcmVzZW50
cyB0aGUgbWluaW11bSBvcHRpb25zIGZvciBXZWJLaXQgcG9ydC4iIiIKKyAgICAgICAgZGVmIF9f
aW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5waXhlbF90ZXN0cyA9IEZhbHNlCisKKyAg
ICBjbGFzcyBDaHJvbWl1bU9wdGlvbnMoV2ViS2l0T3B0aW9ucyk6CisgICAgICAgICIiIlJlcHJl
c2VudHMgbWluaW11bSBvcHRpb25zIGZvciBDaHJvbWl1bSBwb3J0LiIiIgorICAgICAgICBkZWYg
X19pbml0X18oc2VsZik6CisgICAgICAgICAgICBGYWN0b3J5VGVzdC5XZWJLaXRPcHRpb25zLl9f
aW5pdF9fKHNlbGYpCisgICAgICAgICAgICBzZWxmLmNocm9taXVtID0gVHJ1ZQorCisgICAgZGVm
IHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLnJlYWxfc3lzX3BsYXRmb3JtID0gc3lzLnBsYXRm
b3JtCisgICAgICAgIHNlbGYud2Via2l0X29wdGlvbnMgPSBGYWN0b3J5VGVzdC5XZWJLaXRPcHRp
b25zKCkKKyAgICAgICAgc2VsZi5jaHJvbWl1bV9vcHRpb25zID0gRmFjdG9yeVRlc3QuQ2hyb21p
dW1PcHRpb25zKCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgc3lzLnBsYXRm
b3JtID0gc2VsZi5yZWFsX3N5c19wbGF0Zm9ybQorCisgICAgZGVmIGFzc2VydF9wb3J0KHNlbGYs
IHBvcnRfbmFtZSwgZXhwZWN0ZWRfcG9ydCk6CisgICAgICAgICIiIkhlbHBlciBhc3NlcnQgZm9y
IHBvcnRfbmFtZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIHBvcnRfbmFtZTogcG9ydCBu
YW1lIHRvIGdldCBwb3J0IG9iamVjdC4KKyAgICAgICAgICBleHBlY3RlZF9wb3J0OiBjbGFzcyBv
ZiBleHBlY3RlZCBwb3J0IG9iamVjdC4KKworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGlzaW5zdGFuY2UoZmFjdG9yeS5nZXQocG9ydF9uYW1lPXBvcnRfbmFtZSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3BvcnQpKQorCisgICAgZGVm
IGFzc2VydF9wbGF0Zm9ybV9wb3J0KHNlbGYsIHBsYXRmb3JtLCBvcHRpb25zLCBleHBlY3RlZF9w
b3J0KToKKyAgICAgICAgIiIiSGVscGVyIGFzc2VydCBmb3IgcGxhdGZvcm0gYW5kIG9wdGlvbnMu
CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICBwbGF0Zm9ybTogc3lzLnBsYXRmb3JtLgorICAg
ICAgICAgIG9wdGlvbnM6IG9wdGlvbnMgdG8gZ2V0IHBvcnQgb2JqZWN0LgorICAgICAgICAgIGV4
cGVjdGVkX3BvcnQ6IGNsYXNzIG9mIGV4cGVjdGVkIHBvcnQgb2JqZWN0LgorCisgICAgICAgICIi
IgorICAgICAgICBvcmlnX3BsYXRmb3JtID0gc3lzLnBsYXRmb3JtCisgICAgICAgIHN5cy5wbGF0
Zm9ybSA9IHBsYXRmb3JtCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGZhY3Rv
cnkuZ2V0KG9wdGlvbnM9b3B0aW9ucyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV4cGVjdGVkX3BvcnQpKQorICAgICAgICBzeXMucGxhdGZvcm0gPSBvcmlnX3BsYXRmb3Jt
CisKKyAgICBkZWYgdGVzdF90ZXN0KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCd0
ZXN0JywgdGVzdC5UZXN0UG9ydCkKKworICAgIGRlZiB0ZXN0X2RyeXJ1bihzZWxmKToKKyAgICAg
ICAgc2VsZi5hc3NlcnRfcG9ydCgnZHJ5cnVuLXRlc3QnLCBkcnlydW4uRHJ5UnVuUG9ydCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRfcG9ydCgnZHJ5cnVuLW1hYycsIGRyeXJ1bi5EcnlSdW5Qb3J0KQor
CisgICAgZGVmIHRlc3RfbWFjKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCdtYWMn
LCBtYWMuTWFjUG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRfcGxhdGZvcm1fcG9ydCgnZGFyd2lu
JywgTm9uZSwgbWFjLk1hY1BvcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0X3BsYXRmb3JtX3BvcnQo
J2RhcndpbicsIHNlbGYud2Via2l0X29wdGlvbnMsIG1hYy5NYWNQb3J0KQorCisgICAgZGVmIHRl
c3Rfd2luKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCd3aW4nLCB3aW4uV2luUG9y
dCkKKyAgICAgICAgc2VsZi5hc3NlcnRfcGxhdGZvcm1fcG9ydCgnd2luMzInLCBOb25lLCB3aW4u
V2luUG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRfcGxhdGZvcm1fcG9ydCgnd2luMzInLCBzZWxm
LndlYmtpdF9vcHRpb25zLCB3aW4uV2luUG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRfcGxhdGZv
cm1fcG9ydCgnY3lnd2luJywgTm9uZSwgd2luLldpblBvcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0
X3BsYXRmb3JtX3BvcnQoJ2N5Z3dpbicsIHNlbGYud2Via2l0X29wdGlvbnMsIHdpbi5XaW5Qb3J0
KQorCisgICAgZGVmIHRlc3RfZ3RrKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCdn
dGsnLCBndGsuR3RrUG9ydCkKKworICAgIGRlZiB0ZXN0X3F0KHNlbGYpOgorICAgICAgICBzZWxm
LmFzc2VydF9wb3J0KCdxdCcsIHF0LlF0UG9ydCkKKworICAgIGRlZiB0ZXN0X2Nocm9taXVtX21h
YyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgnY2hyb21pdW0tbWFjJywgY2hyb21p
dW1fbWFjLkNocm9taXVtTWFjUG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRfcGxhdGZvcm1fcG9y
dCgnZGFyd2luJywgc2VsZi5jaHJvbWl1bV9vcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQpCisKKyAgICBkZWYgdGVz
dF9jaHJvbWl1bV9saW51eChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgnY2hyb21p
dW0tbGludXgnLCBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRfcGxhdGZvcm1fcG9ydCgnbGludXgyJywgc2VsZi5jaHJvbWl1bV9vcHRpb25zLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNocm9taXVtX2xpbnV4LkNocm9taXVt
TGludXhQb3J0KQorCisgICAgZGVmIHRlc3RfY2hyb21pdW1fd2luKHNlbGYpOgorICAgICAgICBz
ZWxmLmFzc2VydF9wb3J0KCdjaHJvbWl1bS13aW4nLCBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Q
b3J0KQorICAgICAgICBzZWxmLmFzc2VydF9wbGF0Zm9ybV9wb3J0KCd3aW4zMicsIHNlbGYuY2hy
b21pdW1fb3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHJvbWl1
bV93aW4uQ2hyb21pdW1XaW5Qb3J0KQorICAgICAgICBzZWxmLmFzc2VydF9wbGF0Zm9ybV9wb3J0
KCdjeWd3aW4nLCBzZWxmLmNocm9taXVtX29wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCkKKworCitpZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZlci5weSBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2
ZXIucHkKaW5kZXggZmJlNDdlM2M4Y2ViZjNkY2E2MjQ5ODM0MDBkOGExY2EwOGQ5OTBiMC4uMGY4
YTIxZTdjOWQxZDMyMTUyZGE4NjlhOTA2NDNjODVhYmJjNWJmYyAxMDA3NTUKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZlci5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBf
c2VydmVyLnB5CkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIEh0dHBkTm90U3RhcnRlZChFeGNlcHRp
b24pOgogY2xhc3MgTGlnaHR0cGQoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRwU2VydmVyQmFzZSk6CiAK
ICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9vYmosIG91dHB1dF9kaXIsIGJhY2tncm91bmQ9
RmFsc2UsIHBvcnQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgcm9vdD1Ob25lLCByZWdpc3Rlcl9j
eWd3aW49Tm9uZSwgcnVuX2JhY2tncm91bmQ9Tm9uZSk6CisgICAgICAgICAgICAgICAgIHJvb3Q9
Tm9uZSwgcnVuX2JhY2tncm91bmQ9Tm9uZSk6CiAgICAgICAgICIiIkFyZ3M6CiAgICAgICAgICAg
b3V0cHV0X2RpcjogdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGxheW91dCB0ZXN0IHJlc3VsdCBk
aXJlY3RvcnkKICAgICAgICAgIiIiCkBAIC02NSw3ICs2NSw2IEBAIGNsYXNzIExpZ2h0dHBkKGh0
dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnZlckJhc2UpOgogICAgICAgICBzZWxmLl9wcm9jZXNzID0g
Tm9uZQogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAogICAgICAgICBzZWxmLl9yb290ID0gcm9v
dAotICAgICAgICBzZWxmLl9yZWdpc3Rlcl9jeWd3aW4gPSByZWdpc3Rlcl9jeWd3aW4KICAgICAg
ICAgc2VsZi5fcnVuX2JhY2tncm91bmQgPSBydW5fYmFja2dyb3VuZAogICAgICAgICBpZiBzZWxm
Ll9wb3J0OgogICAgICAgICAgICAgc2VsZi5fcG9ydCA9IGludChzZWxmLl9wb3J0KQpAQCAtMTk5
LDIwICsxOTgsNyBAQCBjbGFzcyBMaWdodHRwZChodHRwX3NlcnZlcl9iYXNlLkh0dHBTZXJ2ZXJC
YXNlKToKICAgICAgICAgICAgIHNodXRpbC5jb3B5ZmlsZShvcy5wYXRoLmpvaW4obW9kdWxlX3Bh
dGgsIGxpYl9maWxlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4o
dG1wX21vZHVsZV9wYXRoLCBsaWJfZmlsZSkpCiAKLSAgICAgICAgIyBQdXQgdGhlIGN5Z3dpbiBk
aXJlY3RvcnkgZmlyc3QgaW4gdGhlIHBhdGggdG8gZmluZCBjeWd3aW4xLmRsbAotICAgICAgICBl
bnYgPSBvcy5lbnZpcm9uCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ2N5Z3dpbicsICd3
aW4zMicpOgotICAgICAgICAgICAgZW52WydQQVRIJ10gPSAnJXM7JXMnICUgKAotICAgICAgICAg
ICAgICAgIHNlbGYuX3BvcnRfb2JqLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCd0aGlyZF9wYXJ0
eScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2N5Z3dpbicsICdiaW4nKSwKLSAgICAgICAgICAgICAgICBlbnZbJ1BBVEgnXSkKLQotICAg
ICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyBhbmQgc2VsZi5fcmVnaXN0ZXJfY3lnd2lu
OgotICAgICAgICAgICAgc2V0dXBfbW91bnQgPSBzZWxmLl9wb3J0X29iai5wYXRoX2Zyb21fY2hy
b21pdW1fYmFzZSgndGhpcmRfcGFydHknLAotICAgICAgICAgICAgICAgICdjeWd3aW4nLCAnc2V0
dXBfbW91bnQuYmF0JykKLSAgICAgICAgICAgICMgRklYTUU6IFNob3VsZCB1c2UgRXhlY3V0aXZl
LnJ1bl9jb21tYW5kCi0gICAgICAgICAgICBzdWJwcm9jZXNzLlBvcGVuKHNldHVwX21vdW50KS53
YWl0KCkKLQorICAgICAgICBlbnYgPSBzZWxmLl9wb3J0X29iai5zZXR1cF9lbnZpcm9uX2Zvcl9z
ZXJ2ZXIoKQogICAgICAgICBfbG9nLmRlYnVnKCdTdGFydGluZyBodHRwIHNlcnZlcicpCiAgICAg
ICAgICMgRklYTUU6IFNob3VsZCB1c2UgRXhlY3V0aXZlLnJ1bl9jb21tYW5kCiAgICAgICAgIHNl
bGYuX3Byb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKHN0YXJ0X2NtZCwgZW52PWVudikKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
c29ja2V0X3NlcnZlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weQppbmRleCBhZDU1N2JkZTljZmJkOWNjZWQwNzM5
MmMyYTA1YmY0YzI3MTQzMzJhLi43NjU1MzMwN2I1YWFmYzNiOGUzYTI2MTY5ZjY3MjMwMDBjNzVk
NGZiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5CkBAIC05NSwxNSArOTUs
MTMgQEAgY2xhc3MgUHlXZWJTb2NrZXQoaHR0cF9zZXJ2ZXIuTGlnaHR0cGQpOgogCiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHBvcnRfb2JqLCBvdXRwdXRfZGlyLCBwb3J0PV9ERUZBVUxUX1dTX1BP
UlQsCiAgICAgICAgICAgICAgICAgIHJvb3Q9Tm9uZSwgdXNlX3Rscz1GYWxzZSwKLSAgICAgICAg
ICAgICAgICAgcmVnaXN0ZXJfY3lnd2luPVRydWUsCiAgICAgICAgICAgICAgICAgIHBpZGZpbGU9
Tm9uZSk6CiAgICAgICAgICIiIkFyZ3M6CiAgICAgICAgICAgb3V0cHV0X2RpcjogdGhlIGFic29s
dXRlIHBhdGggdG8gdGhlIGxheW91dCB0ZXN0IHJlc3VsdCBkaXJlY3RvcnkKICAgICAgICAgIiIi
CiAgICAgICAgIGh0dHBfc2VydmVyLkxpZ2h0dHBkLl9faW5pdF9fKHNlbGYsIHBvcnRfb2JqLCBv
dXRwdXRfZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0PV9E
RUZBVUxUX1dTX1BPUlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJv
b3Q9cm9vdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJf
Y3lnd2luPXJlZ2lzdGVyX2N5Z3dpbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcm9vdD1yb290KQogICAgICAgICBzZWxmLl9vdXRwdXRfZGlyID0gb3V0cHV0X2Rpcgog
ICAgICAgICBzZWxmLl9wcm9jZXNzID0gTm9uZQogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydApA
QCAtMTg1LDIxICsxODMsNyBAQCBjbGFzcyBQeVdlYlNvY2tldChodHRwX3NlcnZlci5MaWdodHRw
ZCk6CiAgICAgICAgICAgICBzdGFydF9jbWQuZXh0ZW5kKFsnLXQnLCAnLWsnLCBzZWxmLl9wcml2
YXRlX2tleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctYycsIHNlbGYuX2NlcnRp
ZmljYXRlXSkKIAotICAgICAgICAjIFB1dCB0aGUgY3lnd2luIGRpcmVjdG9yeSBmaXJzdCBpbiB0
aGUgcGF0aCB0byBmaW5kIGN5Z3dpbjEuZGxsCi0gICAgICAgIGVudiA9IG9zLmVudmlyb24KLSAg
ICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnY3lnd2luJywgJ3dpbjMyJyk6Ci0gICAgICAgICAg
ICBlbnZbJ1BBVEgnXSA9ICclczslcycgJSAoCi0gICAgICAgICAgICAgICAgc2VsZi5fcG9ydF9v
YmoucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoJ3RoaXJkX3BhcnR5JywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3lnd2luJywgJ2Jpbicp
LAotICAgICAgICAgICAgICAgIGVudlsnUEFUSCddKQotICAgICAgICAgICAgZW52WydDWUdXSU5f
UEFUSCddID0gc2VsZi5fcG9ydF9vYmoucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoCi0gICAgICAg
ICAgICAgICAgJ3RoaXJkX3BhcnR5JywgJ2N5Z3dpbicsICdiaW4nKQotCi0gICAgICAgIGlmIHN5
cy5wbGF0Zm9ybSA9PSAnd2luMzInIGFuZCBzZWxmLl9yZWdpc3Rlcl9jeWd3aW46Ci0gICAgICAg
ICAgICBzZXR1cF9tb3VudCA9IHNlbGYuX3BvcnRfb2JqLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNl
KAotICAgICAgICAgICAgICAgICd0aGlyZF9wYXJ0eScsICdjeWd3aW4nLCAnc2V0dXBfbW91bnQu
YmF0JykKLSAgICAgICAgICAgIHN1YnByb2Nlc3MuUG9wZW4oc2V0dXBfbW91bnQpLndhaXQoKQot
CisgICAgICAgIGVudiA9IHNlbGYuX3BvcnRfb2JqLnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcigp
CiAgICAgICAgIGVudlsnUFlUSE9OUEFUSCddID0gKHB5d2Vic29ja2V0X2Jhc2UgKyBvcy5wYXRo
LnBhdGhzZXAgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnYuZ2V0KCdQWVRIT05Q
QVRIJywgJycpKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56210</attachid>
            <date>2010-05-16 22:10:21 -0700</date>
            <delta_ts>2010-05-16 23:59:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37664-20100516221018.patch</filename>
            <type>text/plain</type>
            <size>18454</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA0MmE4MGEyMjk4NzgzODYxZjU1OGQ0OWQ1NzRlODI5NmY5NzA3OTRjLi5lN2VjMjI4
ZjJiZDUxYzBmNGQ4NjgyNzI0MTM1MGU5ZjAwZjMwYzQ3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTAtMDUtMDkgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW06IEFkZCAt
LWNocm9taXVtIG9wdGlvbiB0byBuZXctcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NjY0CisKKyAgICAg
ICAgb3MuZW52aXJvbiBzZXR1cCBhbmQgc2V0dXBfbW91bnQgZm9yIGN5Z3dpbiBhcmUgbW92ZWQg
aW4gQ2hyb21pdW1XaW5Qb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlci4KKworICAgICAgICAq
IFNjcmlwdHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQ6CisgICAgICAgICAgUmVtb3ZlIHBhc3Npbmcg
cmVnaXN0ZXJfY3lnd2luLgorICAgICAgICAqIFNjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vic29j
a2V0c2VydmVyOgorICAgICAgICAgIEFkZCAtLWNocm9taXVtIGZsYWcuCisgICAgICAgICAgUmVt
b3ZlIHBhc3NpbmcgcmVnaXN0ZXJfY3lnd2luLgorICAgICAgICAgIENyZWF0ZSBwb3J0IG9iamVj
dCB1c2luZyBvcHRpb25zLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvYmFzZS5weToKKyAgICAgICAgICBBZGQgc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKCku
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93
aW4ucHk6CisgICAgICAgICAgRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5OgorICAgICAgICAg
IFJlbW92ZSByZWdpc3Rlcl9jeWd3aW5fcGFyYW1ldGVyLgorICAgICAgICAgIENhbGwgc2V0dXBf
ZW52aXJvbl9mb3Jfc2VydmVyKCkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5OgorICAgICAgICAgIERpdHRvLgorCiAyMDEw
LTA1LTE2ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJl
dmlld2VkLCBmaXhpbmcgbGF5b3V0IHRlc3QuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL25ldy1ydW4td2Via2l0LWh0dHBkIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9uZXctcnVuLXdl
YmtpdC1odHRwZAppbmRleCA4OGFlODRlYjA0MWRkMmQ1MmJhNjU3YzgwOGU3ODMzN2NhZmFmMTEy
Li5mNmVjMTY0ODI4MTZkMTNiMzI3NzUwMmJkMmIzODA3NzZjYjgyYjQzIDEwMDc1NQotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LWh0dHBkCisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQKQEAgLTY1LDcgKzY1LDYgQEAgZGVmIHJ1bihv
cHRpb25zKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wZmlsZS5n
ZXR0ZW1wZGlyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1v
cHRpb25zLnBvcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdD1v
cHRpb25zLnJvb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0
ZXJfY3lnd2luPW9wdGlvbnMucmVnaXN0ZXJfY3lnd2luLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1bl9iYWNrZ3JvdW5kPW9wdGlvbnMucnVuX2JhY2tncm91bmQpCiAg
ICAgICAgIGlmIG9wdGlvbnMuc2VydmVyID09ICdzdGFydCc6CiAgICAgICAgICAgICBodHRwZC5z
dGFydCgpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LXdl
YnNvY2tldHNlcnZlciBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vic29j
a2V0c2VydmVyCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggZTQzYWJhYjk0
OGExMjJlZGIxNTY5YmMzYTg0MjViY2JhZDZlOGE1ZS4uNGY2ZGVhYTMzYzc0MzQ2OWQ1NDU1ZDEw
M2ZjNzJiMmU4MTEyNDM4MQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0
LXdlYnNvY2tldHNlcnZlcgorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0
LXdlYnNvY2tldHNlcnZlcgpAQCAtNDIsMjcgKzQyLDMyIEBAIGRlZiBtYWluKCk6CiAgICAgb3B0
aW9uX3BhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCiAgICAgb3B0aW9uX3BhcnNlci5h
ZGRfb3B0aW9uKCctLXNlcnZlcicsIHR5cGU9J2Nob2ljZScsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNob2ljZXM9WydzdGFydCcsICdzdG9wJ10sIGRlZmF1bHQ9J3N0YXJ0JywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nU2VydmVyIGFjdGlvbiAoc3RhcnR8c3Rv
cCknKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdTZXJ2ZXIgYWN0aW9uIChz
dGFydHxzdG9wKS4nKQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLXAnLCAnLS1wb3J0
JywgZGVzdD0ncG9ydCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9u
ZSwgaGVscD0nUG9ydCB0byBsaXN0ZW4gb24nKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0PU5vbmUsIGhlbHA9J1BvcnQgdG8gbGlzdGVuIG9uLicpCiAgICAgb3B0aW9uX3Bh
cnNlci5hZGRfb3B0aW9uKCctcicsICctLXJvb3QnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSdBYnNvbHV0ZSBwYXRoIHRvIERvY3VtZW50Um9vdCAnCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJyhvdmVycmlkZXMgbGF5b3V0IHRlc3Qgcm9vdHMpJykKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKG92ZXJyaWRlcyBsYXlvdXQgdGVzdCBy
b290cykuJykKICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy10JywgJy0tdGxzJywgZGVz
dD0ndXNlX3RscycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVf
dHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9
J3VzZSBUTFMgKHdzczovLyknKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
PUZhbHNlLCBoZWxwPSd1c2UgVExTICh3c3M6Ly8pLicpCiAgICAgb3B0aW9uX3BhcnNlci5hZGRf
b3B0aW9uKCctaycsICctLXByaXZhdGVfa2V5JywgZGVzdD0ncHJpdmF0ZV9rZXknLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScnLCBoZWxwPSdUTFMgcHJpdmF0ZSBrZXkg
ZmlsZS4nKQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLWMnLCAnLS1jZXJ0aWZpY2F0
ZScsIGRlc3Q9J2NlcnRpZmljYXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD0nJywgaGVscD0nVExTIGNlcnRpZmljYXRlIGZpbGUuJykKKyAgICBvcHRpb25fcGFyc2Vy
LmFkZF9vcHRpb24oJy0tY2hyb21pdW0nLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZXN0PSdjaHJvbWl1bScsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J1VzZSB0aGUgQ2hyb21pdW0gcG9ydC4nKQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlv
bignLS1yZWdpc3Rlcl9jeWd3aW4nLCBhY3Rpb249InN0b3JlX3RydWUiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkZXN0PSJyZWdpc3Rlcl9jeWd3aW4iLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSdSZWdpc3RlciBDeWd3aW4gcGF0aHMgKG9uIFdpbiB0cnkgYm90
cyknKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdSZWdpc3RlciBDeWd3aW4g
cGF0aHMgKG9uIFdpbiB0cnkgYm90cykuJykKICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24o
Jy0tcGlkZmlsZScsIGhlbHA9J3BhdGggdG8gcGlkIGZpbGUuJykKICAgICBvcHRpb25fcGFyc2Vy
LmFkZF9vcHRpb24oJy0tb3V0cHV0LWRpcicsIGRlc3Q9J291dHB1dF9kaXInLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsIGhlbHA9J291dHB1dCBkaXJlY3Rvcnku
JykKICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy12JywgJy0tdmVyYm9zZScsIGFjdGlv
bj0nc3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFs
c2UsIGhlbHA9J2luY2x1ZGUgZGVidWctbGV2ZWwgbG9nZ2luZycpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9J0luY2x1ZGUgZGVidWctbGV2ZWwgbG9nZ2luZy4nKQogICAgIG9wdGlvbnMsIGFyZ3Mg
PSBvcHRpb25fcGFyc2VyLnBhcnNlX2FyZ3MoKQogCiAgICAgaWYgbm90IG9wdGlvbnMucG9ydDoK
QEAgLTgzLDcgKzg4LDYgQEAgZGVmIG1haW4oKToKICAgICAgICAga3dkc1sncHJpdmF0ZV9rZXkn
XSA9IG9wdGlvbnMucHJpdmF0ZV9rZXkKICAgICBpZiBvcHRpb25zLmNlcnRpZmljYXRlOgogICAg
ICAgICBrd2RzWydjZXJ0aWZpY2F0ZSddID0gb3B0aW9ucy5jZXJ0aWZpY2F0ZQotICAgIGt3ZHNb
J3JlZ2lzdGVyX2N5Z3dpbiddID0gb3B0aW9ucy5yZWdpc3Rlcl9jeWd3aW4KICAgICBpZiBvcHRp
b25zLnBpZGZpbGU6CiAgICAgICAgIGt3ZHNbJ3BpZGZpbGUnXSA9IG9wdGlvbnMucGlkZmlsZQog
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Jhc2UucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Jhc2UucHkKaW5kZXggMjU5NDZhZjFhYmNjZWY2MzUzZDM2ZDEyYmI4ODZiOTlmODQ3NTU4
Ni4uYTRjYmU0MmEzYjRlYjM1ZWM1NTZhNmJmNjVhODZmZDBhNzNjYjJlMCAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5w
eQpAQCAtNDE0LDEwICs0MTQsMTcgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZCgnUG9ydC5yZXN1bHRzX2RpcmVjdG9yeScpCiAKICAgICBkZWYgc2V0
dXBfdGVzdF9ydW4oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgcm91dGluZSBjYW4gYmUgb3ZlcnJp
ZGRlbiB0byBwZXJmb3JtIGFueSBwb3J0LXNwZWNpZmljCi0gICAgICAgIHdvcmsgdGhhdCBzaG91
dWxkIGJlIGRvbmUgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHRlc3QgcnVuLiIiIgorICAgICAgICAi
IiJQZXJmb3JtIHBvcnQtc3BlY2lmaWMgd29yayBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgdGVzdCBy
dW4uIiIiCiAgICAgICAgIHBhc3MKIAorICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIo
c2VsZik6CisgICAgICAgICIiIlBlcmZvcm0gcG9ydC1zcGVjaWZpYyB3b3JrIGF0IHRoZSBiZWdp
bm5pbmcgb2YgYSBzZXJ2ZXIgbGF1bmNoLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAg
IE9wZXJhdGluZy1zeXN0ZW0ncyBlbnZpcm9ubWVudC4KKyAgICAgICAgIiIiCisgICAgICAgIHJl
dHVybiBvcy5lbnZpcm9uCisKICAgICBkZWYgc2hvd19odG1sX3Jlc3VsdHNfZmlsZShzZWxmLCBy
ZXN1bHRzX2ZpbGVuYW1lKToKICAgICAgICAgIiIiVGhpcyByb3V0aW5lIHNob3VsZCBkaXNwbGF5
IHRoZSBIVE1MIGZpbGUgcG9pbnRlZCBhdCBieQogICAgICAgICByZXN1bHRzX2ZpbGVuYW1lIGlu
IGEgdXNlcnMnIGJyb3dzZXIuIiIiCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luLnB5CmluZGV4IDY1
YzQyYmI0ZjA5NmNjMGQ0MzA0Y2JjMDQ5NTA4Zjc2MmYxNmZmZTguLmFkNzhlNjE3NjViNDNmYzFh
OGU0NmE2NGRhMjI3YTZmZmViNTc2NzQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luLnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luLnB5CkBA
IC00MywxMSArNDMsMzAgQEAgY2xhc3MgQ2hyb21pdW1XaW5Qb3J0KGNocm9taXVtLkNocm9taXVt
UG9ydCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsIG9wdGlvbnM9
Tm9uZSk6CiAgICAgICAgIGlmIHBvcnRfbmFtZSBpcyBOb25lOgotICAgICAgICAgICAgcG9ydF9u
YW1lID0gJ2Nocm9taXVtLXdpbicgKyBzZWxmLnZlcnNpb24oKQotICAgICAgICBpZiBvcHRpb25z
IGFuZCBub3QgaGFzYXR0cihvcHRpb25zLCAnY29uZmlndXJhdGlvbicpOgotICAgICAgICAgICAg
b3B0aW9ucy5jb25maWd1cmF0aW9uID0gJ1JlbGVhc2UnCisgICAgICAgICAgICBwb3J0X25hbWUg
PSAiY2hyb21pdW0td2luIiArIHNlbGYudmVyc2lvbigpCisgICAgICAgIGlmIG9wdGlvbnMgYW5k
IG5vdCBoYXNhdHRyKG9wdGlvbnMsICJjb25maWd1cmF0aW9uIik6CisgICAgICAgICAgICBvcHRp
b25zLmNvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKICAgICAgICAgY2hyb21pdW0uQ2hyb21pdW1Q
b3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZSwgb3B0aW9ucykKIAorICAgIGRlZiBzZXR1cF9l
bnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZik6CisgICAgICAgIGVudiA9IGNocm9taXVtLkNocm9taXVt
UG9ydC5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZikKKyAgICAgICAgIyBQdXQgdGhlIGN5
Z3dpbiBkaXJlY3RvcnkgZmlyc3QgaW4gdGhlIHBhdGggdG8gZmluZCBjeWd3aW4xLmRsbC4KKyAg
ICAgICAgZW52WyJQQVRIIl0gPSAiJXM7JXMiICUgKAorICAgICAgICAgICAgc2VsZi5wYXRoX2Zy
b21fY2hyb21pdW1fYmFzZSgidGhpcmRfcGFydHkiLCAiY3lnd2luIiwgImJpbiIpLAorICAgICAg
ICAgICAgZW52WyJQQVRIIl0pCisgICAgICAgICMgQ29uZmlndXJlIHRoZSBjeWd3aW4gZGlyZWN0
b3J5IHNvIHRoYXQgcHl3ZWJzb2NrZXQgZmluZHMgcHJvcGVyCisgICAgICAgICMgcHl0aG9uIGV4
ZWN1dGFibGUgdG8gcnVuIGNnaSBwcm9ncmFtLgorICAgICAgICBlbnZbIkNZR1dJTl9QQVRIIl0g
PSBzZWxmLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKAorICAgICAgICAgICAgInRoaXJkX3BhcnR5
IiwgImN5Z3dpbiIsICJiaW4iKQorICAgICAgICBpZiAoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIg
YW5kIHNlbGYuX29wdGlvbnMgYW5kCisgICAgICAgICAgICBoYXNhdHRyKHNlbGYuX29wdGlvbnMs
ICJyZWdpc3Rlcl9jeWd3aW4iKSBhbmQKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMucmVnaXN0
ZXJfY3lnd2luKToKKyAgICAgICAgICAgIHNldHVwX21vdW50ID0gc2VsZi5wYXRoX2Zyb21fY2hy
b21pdW1fYmFzZSgidGhpcmRfcGFydHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJjeWd3aW4iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXR1cF9tb3VudC5iYXQiKQorICAg
ICAgICAgICAgc2VsZi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKHNldHVwX21vdW50KQorICAgICAg
ICByZXR1cm4gZW52CisKICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6CiAgICAg
ICAgIHBvcnRfbmFtZXMgPSBbXQogICAgICAgICBpZiBzZWxmLl9uYW1lID09ICdjaHJvbWl1bS13
aW4teHAnOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4
ZGZmZGZjNWIyM2RlNjMzYjVhMzg0ZjI1OTI1ODgyNzI4NDFiY2UKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3Rvcnlf
dW5pdHRlc3QucHkKQEAgLTAsMCArMSwxMzggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisjIG1ldDoKKyMKKyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgc3lz
CitpbXBvcnQgdW5pdHRlc3QKKworaW1wb3J0IGNocm9taXVtX2xpbnV4CitpbXBvcnQgY2hyb21p
dW1fbWFjCitpbXBvcnQgY2hyb21pdW1fd2luCitpbXBvcnQgZHJ5cnVuCitpbXBvcnQgZmFjdG9y
eQoraW1wb3J0IGd0aworaW1wb3J0IG1hYworaW1wb3J0IHF0CitpbXBvcnQgdGVzdAoraW1wb3J0
IHdpbgorCisKK2NsYXNzIEZhY3RvcnlUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJU
ZXN0IGZhY3RvcnkgY3JlYXRlcyBwcm9wZXIgcG9ydCBvYmplY3QgZm9yIHRoZSB0YXJnZXQuCisK
KyAgICBUYXJnZXQgaXMgc3BlY2lmaWVkIGJ5IHBvcnRfbmFtZSwgc3lzLnBsYXRmb3JtIGFuZCBv
cHRpb25zLgorCisgICAgIiIiCisgICAgIyBGSVhNRTogVGhlIHBvcnRzIHRoZW1zZWx2ZXMgc2hv
dWxkIGV4cG9zZSB3aGF0IG9wdGlvbnMgdGhleSByZXF1aXJlLAorICAgICMgaW5zdGVhZCBvZiBw
YXNzaW5nIGdlbmVyaWMgIm9wdGlvbnMiLgorCisgICAgY2xhc3MgV2ViS2l0T3B0aW9ucyhvYmpl
Y3QpOgorICAgICAgICAiIiJSZXByZXNlbnRzIHRoZSBtaW5pbXVtIG9wdGlvbnMgZm9yIFdlYktp
dCBwb3J0LiIiIgorICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICBzZWxm
LnBpeGVsX3Rlc3RzID0gRmFsc2UKKworICAgIGNsYXNzIENocm9taXVtT3B0aW9ucyhXZWJLaXRP
cHRpb25zKToKKyAgICAgICAgIiIiUmVwcmVzZW50cyBtaW5pbXVtIG9wdGlvbnMgZm9yIENocm9t
aXVtIHBvcnQuIiIiCisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgIEZh
Y3RvcnlUZXN0LldlYktpdE9wdGlvbnMuX19pbml0X18oc2VsZikKKyAgICAgICAgICAgIHNlbGYu
Y2hyb21pdW0gPSBUcnVlCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYucmVh
bF9zeXNfcGxhdGZvcm0gPSBzeXMucGxhdGZvcm0KKyAgICAgICAgc2VsZi53ZWJraXRfb3B0aW9u
cyA9IEZhY3RvcnlUZXN0LldlYktpdE9wdGlvbnMoKQorICAgICAgICBzZWxmLmNocm9taXVtX29w
dGlvbnMgPSBGYWN0b3J5VGVzdC5DaHJvbWl1bU9wdGlvbnMoKQorCisgICAgZGVmIHRlYXJEb3du
KHNlbGYpOgorICAgICAgICBzeXMucGxhdGZvcm0gPSBzZWxmLnJlYWxfc3lzX3BsYXRmb3JtCisK
KyAgICBkZWYgYXNzZXJ0X3BvcnQoc2VsZiwgcG9ydF9uYW1lLCBleHBlY3RlZF9wb3J0KToKKyAg
ICAgICAgIiIiSGVscGVyIGFzc2VydCBmb3IgcG9ydF9uYW1lLgorCisgICAgICAgIEFyZ3M6Cisg
ICAgICAgICAgcG9ydF9uYW1lOiBwb3J0IG5hbWUgdG8gZ2V0IHBvcnQgb2JqZWN0LgorICAgICAg
ICAgIGV4cGVjdGVkX3BvcnQ6IGNsYXNzIG9mIGV4cGVjdGVkIHBvcnQgb2JqZWN0LgorCisgICAg
ICAgICIiIgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShmYWN0b3J5LmdldChw
b3J0X25hbWU9cG9ydF9uYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXhwZWN0ZWRfcG9ydCkpCisKKyAgICBkZWYgYXNzZXJ0X3BsYXRmb3JtX3BvcnQoc2VsZiwgcGxh
dGZvcm0sIG9wdGlvbnMsIGV4cGVjdGVkX3BvcnQpOgorICAgICAgICAiIiJIZWxwZXIgYXNzZXJ0
IGZvciBwbGF0Zm9ybSBhbmQgb3B0aW9ucy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIHBs
YXRmb3JtOiBzeXMucGxhdGZvcm0uCisgICAgICAgICAgb3B0aW9uczogb3B0aW9ucyB0byBnZXQg
cG9ydCBvYmplY3QuCisgICAgICAgICAgZXhwZWN0ZWRfcG9ydDogY2xhc3Mgb2YgZXhwZWN0ZWQg
cG9ydCBvYmplY3QuCisKKyAgICAgICAgIiIiCisgICAgICAgIG9yaWdfcGxhdGZvcm0gPSBzeXMu
cGxhdGZvcm0KKyAgICAgICAgc3lzLnBsYXRmb3JtID0gcGxhdGZvcm0KKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGlzaW5zdGFuY2UoZmFjdG9yeS5nZXQob3B0aW9ucz1vcHRpb25zKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcG9ydCkpCisgICAgICAgIHN5
cy5wbGF0Zm9ybSA9IG9yaWdfcGxhdGZvcm0KKworICAgIGRlZiB0ZXN0X3Rlc3Qoc2VsZik6Cisg
ICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoInRlc3QiLCB0ZXN0LlRlc3RQb3J0KQorCisgICAgZGVm
IHRlc3RfZHJ5cnVuKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJkcnlydW4tdGVz
dCIsIGRyeXJ1bi5EcnlSdW5Qb3J0KQorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJkcnlydW4t
bWFjIiwgZHJ5cnVuLkRyeVJ1blBvcnQpCisKKyAgICBkZWYgdGVzdF9tYWMoc2VsZik6CisgICAg
ICAgIHNlbGYuYXNzZXJ0X3BvcnQoIm1hYyIsIG1hYy5NYWNQb3J0KQorICAgICAgICBzZWxmLmFz
c2VydF9wbGF0Zm9ybV9wb3J0KCJkYXJ3aW4iLCBOb25lLCBtYWMuTWFjUG9ydCkKKyAgICAgICAg
c2VsZi5hc3NlcnRfcGxhdGZvcm1fcG9ydCgiZGFyd2luIiwgc2VsZi53ZWJraXRfb3B0aW9ucywg
bWFjLk1hY1BvcnQpCisKKyAgICBkZWYgdGVzdF93aW4oc2VsZik6CisgICAgICAgIHNlbGYuYXNz
ZXJ0X3BvcnQoIndpbiIsIHdpbi5XaW5Qb3J0KQorICAgICAgICBzZWxmLmFzc2VydF9wbGF0Zm9y
bV9wb3J0KCJ3aW4zMiIsIE5vbmUsIHdpbi5XaW5Qb3J0KQorICAgICAgICBzZWxmLmFzc2VydF9w
bGF0Zm9ybV9wb3J0KCJ3aW4zMiIsIHNlbGYud2Via2l0X29wdGlvbnMsIHdpbi5XaW5Qb3J0KQor
ICAgICAgICBzZWxmLmFzc2VydF9wbGF0Zm9ybV9wb3J0KCJjeWd3aW4iLCBOb25lLCB3aW4uV2lu
UG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRfcGxhdGZvcm1fcG9ydCgiY3lnd2luIiwgc2VsZi53
ZWJraXRfb3B0aW9ucywgd2luLldpblBvcnQpCisKKyAgICBkZWYgdGVzdF9ndGsoc2VsZik6Cisg
ICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoImd0ayIsIGd0ay5HdGtQb3J0KQorCisgICAgZGVmIHRl
c3RfcXQoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoInF0IiwgcXQuUXRQb3J0KQor
CisgICAgZGVmIHRlc3RfY2hyb21pdW1fbWFjKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF9w
b3J0KCJjaHJvbWl1bS1tYWMiLCBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KQorICAgICAg
ICBzZWxmLmFzc2VydF9wbGF0Zm9ybV9wb3J0KCJkYXJ3aW4iLCBzZWxmLmNocm9taXVtX29wdGlv
bnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hyb21pdW1fbWFjLkNocm9t
aXVtTWFjUG9ydCkKKworICAgIGRlZiB0ZXN0X2Nocm9taXVtX2xpbnV4KHNlbGYpOgorICAgICAg
ICBzZWxmLmFzc2VydF9wb3J0KCJjaHJvbWl1bS1saW51eCIsIGNocm9taXVtX2xpbnV4LkNocm9t
aXVtTGludXhQb3J0KQorICAgICAgICBzZWxmLmFzc2VydF9wbGF0Zm9ybV9wb3J0KCJsaW51eDIi
LCBzZWxmLmNocm9taXVtX29wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQpCisKKyAgICBkZWYgdGVzdF9jaHJv
bWl1bV93aW4oc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoImNocm9taXVtLXdpbiIs
IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0X3BsYXRm
b3JtX3BvcnQoIndpbjMyIiwgc2VsZi5jaHJvbWl1bV9vcHRpb25zLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQpCisgICAgICAg
IHNlbGYuYXNzZXJ0X3BsYXRmb3JtX3BvcnQoImN5Z3dpbiIsIHNlbGYuY2hyb21pdW1fb3B0aW9u
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHJvbWl1bV93aW4uQ2hyb21p
dW1XaW5Qb3J0KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9odHRwX3NlcnZlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2ZXIucHkKaW5kZXggZmJlNDdlM2M4Y2ViZjNk
Y2E2MjQ5ODM0MDBkOGExY2EwOGQ5OTBiMC4uMGY4YTIxZTdjOWQxZDMyMTUyZGE4NjlhOTA2NDNj
ODVhYmJjNWJmYyAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9odHRwX3NlcnZlci5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5CkBAIC01NSw3ICs1NSw3IEBA
IGNsYXNzIEh0dHBkTm90U3RhcnRlZChFeGNlcHRpb24pOgogY2xhc3MgTGlnaHR0cGQoaHR0cF9z
ZXJ2ZXJfYmFzZS5IdHRwU2VydmVyQmFzZSk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9y
dF9vYmosIG91dHB1dF9kaXIsIGJhY2tncm91bmQ9RmFsc2UsIHBvcnQ9Tm9uZSwKLSAgICAgICAg
ICAgICAgICAgcm9vdD1Ob25lLCByZWdpc3Rlcl9jeWd3aW49Tm9uZSwgcnVuX2JhY2tncm91bmQ9
Tm9uZSk6CisgICAgICAgICAgICAgICAgIHJvb3Q9Tm9uZSwgcnVuX2JhY2tncm91bmQ9Tm9uZSk6
CiAgICAgICAgICIiIkFyZ3M6CiAgICAgICAgICAgb3V0cHV0X2RpcjogdGhlIGFic29sdXRlIHBh
dGggdG8gdGhlIGxheW91dCB0ZXN0IHJlc3VsdCBkaXJlY3RvcnkKICAgICAgICAgIiIiCkBAIC02
NSw3ICs2NSw2IEBAIGNsYXNzIExpZ2h0dHBkKGh0dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnZlckJh
c2UpOgogICAgICAgICBzZWxmLl9wcm9jZXNzID0gTm9uZQogICAgICAgICBzZWxmLl9wb3J0ID0g
cG9ydAogICAgICAgICBzZWxmLl9yb290ID0gcm9vdAotICAgICAgICBzZWxmLl9yZWdpc3Rlcl9j
eWd3aW4gPSByZWdpc3Rlcl9jeWd3aW4KICAgICAgICAgc2VsZi5fcnVuX2JhY2tncm91bmQgPSBy
dW5fYmFja2dyb3VuZAogICAgICAgICBpZiBzZWxmLl9wb3J0OgogICAgICAgICAgICAgc2VsZi5f
cG9ydCA9IGludChzZWxmLl9wb3J0KQpAQCAtMTk5LDIwICsxOTgsNyBAQCBjbGFzcyBMaWdodHRw
ZChodHRwX3NlcnZlcl9iYXNlLkh0dHBTZXJ2ZXJCYXNlKToKICAgICAgICAgICAgIHNodXRpbC5j
b3B5ZmlsZShvcy5wYXRoLmpvaW4obW9kdWxlX3BhdGgsIGxpYl9maWxlKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4odG1wX21vZHVsZV9wYXRoLCBsaWJfZmlsZSkp
CiAKLSAgICAgICAgIyBQdXQgdGhlIGN5Z3dpbiBkaXJlY3RvcnkgZmlyc3QgaW4gdGhlIHBhdGgg
dG8gZmluZCBjeWd3aW4xLmRsbAotICAgICAgICBlbnYgPSBvcy5lbnZpcm9uCi0gICAgICAgIGlm
IHN5cy5wbGF0Zm9ybSBpbiAoJ2N5Z3dpbicsICd3aW4zMicpOgotICAgICAgICAgICAgZW52WydQ
QVRIJ10gPSAnJXM7JXMnICUgKAotICAgICAgICAgICAgICAgIHNlbGYuX3BvcnRfb2JqLnBhdGhf
ZnJvbV9jaHJvbWl1bV9iYXNlKCd0aGlyZF9wYXJ0eScsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N5Z3dpbicsICdiaW4nKSwKLSAgICAg
ICAgICAgICAgICBlbnZbJ1BBVEgnXSkKLQotICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dp
bjMyJyBhbmQgc2VsZi5fcmVnaXN0ZXJfY3lnd2luOgotICAgICAgICAgICAgc2V0dXBfbW91bnQg
PSBzZWxmLl9wb3J0X29iai5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgndGhpcmRfcGFydHknLAot
ICAgICAgICAgICAgICAgICdjeWd3aW4nLCAnc2V0dXBfbW91bnQuYmF0JykKLSAgICAgICAgICAg
ICMgRklYTUU6IFNob3VsZCB1c2UgRXhlY3V0aXZlLnJ1bl9jb21tYW5kCi0gICAgICAgICAgICBz
dWJwcm9jZXNzLlBvcGVuKHNldHVwX21vdW50KS53YWl0KCkKLQorICAgICAgICBlbnYgPSBzZWxm
Ll9wb3J0X29iai5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoKQogICAgICAgICBfbG9nLmRlYnVn
KCdTdGFydGluZyBodHRwIHNlcnZlcicpCiAgICAgICAgICMgRklYTUU6IFNob3VsZCB1c2UgRXhl
Y3V0aXZlLnJ1bl9jb21tYW5kCiAgICAgICAgIHNlbGYuX3Byb2Nlc3MgPSBzdWJwcm9jZXNzLlBv
cGVuKHN0YXJ0X2NtZCwgZW52PWVudikKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5w
eQppbmRleCA1NTg2OGZhZWMyNmJiYjM0YzVjYzA4NTdlYTI4YTFiMDNiNDhmZDY3Li4yMmFlNzgw
MWQzMmIyOWVhNmE1NDZkOGVlMDI5NDY3NTk5YTAzZmUzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJz
b2NrZXRfc2VydmVyLnB5CkBAIC05NywxNSArOTcsMTMgQEAgY2xhc3MgUHlXZWJTb2NrZXQoaHR0
cF9zZXJ2ZXIuTGlnaHR0cGQpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfb2JqLCBv
dXRwdXRfZGlyLCBwb3J0PV9ERUZBVUxUX1dTX1BPUlQsCiAgICAgICAgICAgICAgICAgIHJvb3Q9
Tm9uZSwgdXNlX3Rscz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfY3lnd2luPVRy
dWUsCiAgICAgICAgICAgICAgICAgIHBpZGZpbGU9Tm9uZSk6CiAgICAgICAgICIiIkFyZ3M6CiAg
ICAgICAgICAgb3V0cHV0X2RpcjogdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGxheW91dCB0ZXN0
IHJlc3VsdCBkaXJlY3RvcnkKICAgICAgICAgIiIiCiAgICAgICAgIGh0dHBfc2VydmVyLkxpZ2h0
dHBkLl9faW5pdF9fKHNlbGYsIHBvcnRfb2JqLCBvdXRwdXRfZGlyLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwb3J0PV9ERUZBVUxUX1dTX1BPUlQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3Q9cm9vdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfY3lnd2luPXJlZ2lzdGVyX2N5Z3dpbikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdD1yb290KQogICAgICAgICBz
ZWxmLl9vdXRwdXRfZGlyID0gb3V0cHV0X2RpcgogICAgICAgICBzZWxmLl9wcm9jZXNzID0gTm9u
ZQogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydApAQCAtMTg4LDIxICsxODYsNyBAQCBjbGFzcyBQ
eVdlYlNvY2tldChodHRwX3NlcnZlci5MaWdodHRwZCk6CiAgICAgICAgICAgICBzdGFydF9jbWQu
ZXh0ZW5kKFsnLXQnLCAnLWsnLCBzZWxmLl9wcml2YXRlX2tleSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICctYycsIHNlbGYuX2NlcnRpZmljYXRlXSkKIAotICAgICAgICAjIFB1dCB0
aGUgY3lnd2luIGRpcmVjdG9yeSBmaXJzdCBpbiB0aGUgcGF0aCB0byBmaW5kIGN5Z3dpbjEuZGxs
Ci0gICAgICAgIGVudiA9IG9zLmVudmlyb24KLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgn
Y3lnd2luJywgJ3dpbjMyJyk6Ci0gICAgICAgICAgICBlbnZbJ1BBVEgnXSA9ICclczslcycgJSAo
Ci0gICAgICAgICAgICAgICAgc2VsZi5fcG9ydF9vYmoucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2Uo
J3RoaXJkX3BhcnR5JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnY3lnd2luJywgJ2JpbicpLAotICAgICAgICAgICAgICAgIGVudlsnUEFU
SCddKQotICAgICAgICAgICAgZW52WydDWUdXSU5fUEFUSCddID0gc2VsZi5fcG9ydF9vYmoucGF0
aF9mcm9tX2Nocm9taXVtX2Jhc2UoCi0gICAgICAgICAgICAgICAgJ3RoaXJkX3BhcnR5JywgJ2N5
Z3dpbicsICdiaW4nKQotCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIGFuZCBz
ZWxmLl9yZWdpc3Rlcl9jeWd3aW46Ci0gICAgICAgICAgICBzZXR1cF9tb3VudCA9IHNlbGYuX3Bv
cnRfb2JqLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKAotICAgICAgICAgICAgICAgICd0aGlyZF9w
YXJ0eScsICdjeWd3aW4nLCAnc2V0dXBfbW91bnQuYmF0JykKLSAgICAgICAgICAgIHN1YnByb2Nl
c3MuUG9wZW4oc2V0dXBfbW91bnQpLndhaXQoKQotCisgICAgICAgIGVudiA9IHNlbGYuX3BvcnRf
b2JqLnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcigpCiAgICAgICAgIGVudlsnUFlUSE9OUEFUSCdd
ID0gKHB5d2Vic29ja2V0X2Jhc2UgKyBvcy5wYXRoLnBhdGhzZXAgKwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbnYuZ2V0KCdQWVRIT05QQVRIJywgJycpKQogCg==
</data>
<flag name="review"
          id="40603"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56569</attachid>
            <date>2010-05-20 00:39:56 -0700</date>
            <delta_ts>2010-05-20 00:41:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37664-20100520003954.patch</filename>
            <type>text/plain</type>
            <size>1297</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA0NzgyOTU2YWU3MzIzOGQ3ZGI3OGJkMTI0OGJlOGNlYjNmMDY2OGNkLi4xNTBjZTkz
ZWUwYjdkMGNmODRhOWZlOTEwYzAxNWY2NGRmOGUyYTE4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDUtMjAgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW06IEFkZCAt
LWNocm9taXVtIG9wdGlvbiB0byBuZXctcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NjY0CisKKyAgICAg
ICAgTWlzc2VkIHRvIHBhc3Mgb3B0aW9ucyB0byBmYWN0b3J5LmdldCgpIGluIHI1OTU5NQorCisg
ICAgICAgICogU2NyaXB0cy9uZXctcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXI6CisgICAgICAg
ICAgUGFzcyBvcHRpb25zIHRvIGZhY3RvcnkuZ2V0KCkuCisKIDIwMTAtMDUtMTkgIEVyaWMgU2Vp
ZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4u
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LXdlYnNvY2tl
dHNlcnZlciBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vic29ja2V0c2Vy
dmVyCmluZGV4IDRmNmRlYWEzM2M3NDM0NjlkNTQ1NWQxMDNmYzcyYjJlODExMjQzODEuLmI3YmVh
MmZiZmViNmNiNmFkMzViYjlhNGIzNmE2MzQ2YjRlMTdkYWMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vic29ja2V0c2VydmVyCisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vic29ja2V0c2VydmVyCkBAIC05MSw3ICs5MSw3
IEBAIGRlZiBtYWluKCk6CiAgICAgaWYgb3B0aW9ucy5waWRmaWxlOgogICAgICAgICBrd2RzWydw
aWRmaWxlJ10gPSBvcHRpb25zLnBpZGZpbGUKIAotICAgIHBvcnRfb2JqID0gZmFjdG9yeS5nZXQo
KQorICAgIHBvcnRfb2JqID0gZmFjdG9yeS5nZXQob3B0aW9ucykKICAgICBweXdlYnNvY2tldCA9
IHdlYnNvY2tldF9zZXJ2ZXIuUHlXZWJTb2NrZXQocG9ydF9vYmosIG9wdGlvbnMub3V0cHV0X2Rp
ciwgKiprd2RzKQogCiAgICAgbG9nX2xldmVsID0gbG9nZ2luZy5XQVJOCg==
</data>
<flag name="review"
          id="41019"
          type_id="1"
          status="+"
          setter="hamaji"
    />
          </attachment>
      

    </bug>

</bugzilla>