<?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>44709</bug_id>
          
          <creation_ts>2010-08-26 12:48:25 -0700</creation_ts>
          <short_desc>deduplicate-tests should be runnable from any WebKit directory</short_desc>
          <delta_ts>2010-09-15 17:40:33 -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="Tony Chang">tony</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>270049</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-08-26 12:48:25 -0700</bug_when>
    <thetext>Currently, you have to run it from the root of the checkout.  Otherwise, the following is raised:

  File &quot;/src/WebKit/WebKitTools/Scripts/deduplicate-tests&quot;, line 84, in &lt;module&gt;
    main()
  File &quot;/src/WebKit/WebKitTools/Scripts/deduplicate-tests&quot;, line 80, in main
    run(options)
  File &quot;/src/WebKit/WebKitTools/Scripts/deduplicate-tests&quot;, line 74, in run
    for dupe in deduplicate_tests.deduplicate(options.glob_pattern):
  File &quot;/src/chrome/src/third_party/WebKit.git/WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py&quot;, line 195, in deduplicate
    fallbacks = port_fallbacks()
  File &quot;/src/chrome/src/third_party/WebKit.git/WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py&quot;, line 55, in port_fallbacks
    for port_name in os.listdir(os.path.join(&apos;LayoutTests&apos;, &apos;platform&apos;)):
OSError: [Errno 2] No such file or directory: &apos;LayoutTests/platform&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276841</commentid>
    <comment_count>1</comment_count>
      <attachid>67116</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-09 16:37:16 -0700</bug_when>
    <thetext>Created attachment 67116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276843</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-09 16:39:26 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=67116) [details]
&gt; Patch

This allows deduplicate-tests to be run from any directory in the checkout and will output relative paths so the results can be piped to rm.

Also, if you run it in a subdir of LayoutTests, it only outputs files under where you run it from.  E.g., if I run the tool while I&apos;m in LayoutTests/win/, I&apos;ll only tell me about dupes in LayoutTests/win/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276860</commentid>
    <comment_count>3</comment_count>
      <attachid>67116</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-09-09 17:07:33 -0700</bug_when>
    <thetext>Comment on attachment 67116
Patch

&gt; diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
&gt; index 1807a838c1a39f7b97f4e184509935cc548d7e37..0d9653bc8c75eb021d002ffc84d9d35386e06d78 100644
&gt; --- a/WebKitTools/ChangeLog
&gt; +++ b/WebKitTools/ChangeLog
&gt; @@ -1,3 +1,13 @@
&gt; +2010-09-09  Tony Chang  &lt;tony@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        deduplicate-tests should be runnable from any WebKit directory
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=44709
&gt; +
&gt; +        * Scripts/webkitpy/layout_tests/deduplicate_tests.py:
&gt; +        * Scripts/webkitpy/layout_tests/deduplicate_tests_unittest.py:
&gt; +
&gt;  2010-09-09  Mihai Parparita  &lt;mihaip@chromium.org&gt;
&gt;  
&gt;          Reviewed by Tony Chang.
&gt; diff --git a/WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py b/WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py
&gt; index c543d9183a406e78714202e83c99565452357409..beeb680650070a12e0f0f07d8ba80cb9d7860740 100644
&gt; --- a/WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py
&gt; +++ b/WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py
&gt; @@ -36,6 +36,7 @@ import os
&gt;  import subprocess
&gt;  import sys
&gt;  import re
&gt; +import webkitpy.common.checkout.scm as scm
&gt;  import webkitpy.common.system.executive as executive
&gt;  import webkitpy.common.system.logutils as logutils
&gt;  import webkitpy.layout_tests.port.factory as port_factory
&gt; @@ -56,7 +57,8 @@ def port_fallbacks():
&gt;          try:
&gt;              platforms = port_factory.get(port_name).baseline_search_path()
&gt;          except NotImplementedError:
&gt; -            _log.error(&quot;&apos;%s&apos; lacks baseline_search_path(), please fix.&quot; % port_name)
&gt; +            _log.error(&quot;&apos;%s&apos; lacks baseline_search_path(), please fix.&quot;
&gt; +                       % port_name)

We don&apos;t actually require 80 char lines, but I won&apos;t complain if you&apos;re 
trying to maintain them anyway (I do).

&gt;              fallbacks[port_name] = [_BASE_PLATFORM]
&gt;              continue
&gt;          fallbacks[port_name] = [os.path.basename(p) for p in platforms][1:]
&gt; @@ -156,11 +158,35 @@ def has_intermediate_results(test, fallbacks, matching_platform,
&gt;      return False
&gt;  
&gt;  
&gt; -def find_dups(hashes, port_fallbacks):
&gt; +def get_relative_test_path(filename, relative_to):
&gt; +    &quot;&quot;&quot;Constructs a relative path to |filename| from |relative_to|.  Also, if
&gt; +    |relative_to| is a sub directory of the layout test directory and
&gt; +    |filename| is not in |relative_to|, return None.  This lets us filter
&gt; +    the results to only show results that are under where the script was run
&gt; +    from.
&gt; +    Args:
&gt; +        filename: The test file we&apos;re trying to get a relative path to.
&gt; +        relative_to: The path we&apos;re relative to.

Nit: I might note that relative_to needs to be an absolute path.

Otherwise, LGTM although I&apos;m not a reviewer.

-- Dirk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276861</commentid>
    <comment_count>4</comment_count>
      <attachid>67120</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-09 17:09:44 -0700</bug_when>
    <thetext>Created attachment 67120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277310</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 11:11:11 -0700</bug_when>
    <thetext>Committed r67216: &lt;http://trac.webkit.org/changeset/67216&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277325</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 11:31:47 -0700</bug_when>
    <thetext>Reverted r67216 for reason:

Broke

Committed r67218: &lt;http://trac.webkit.org/changeset/67218&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277331</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 11:38:00 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Reverted r67216 for reason:
&gt; 
&gt; Broke
&gt; 
&gt; Committed r67218: &lt;http://trac.webkit.org/changeset/67218&gt;

Err, the reason got truncated.  The reason was that relpath is a python2.6+ feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277334</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-10 11:42:38 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67216 might have broken Chromium Mac Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/67216
http://trac.webkit.org/changeset/67215
http://trac.webkit.org/changeset/67205
http://trac.webkit.org/changeset/67206
http://trac.webkit.org/changeset/67207</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277468</commentid>
    <comment_count>9</comment_count>
      <attachid>67245</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 15:12:25 -0700</bug_when>
    <thetext>Created attachment 67245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277469</commentid>
    <comment_count>10</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 15:13:04 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=67245) [details]
&gt; Patch

Same as before except I rolled my own relpath.  I tested on Win and Linux and it seems to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277471</commentid>
    <comment_count>11</comment_count>
      <attachid>67245</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-10 15:15:21 -0700</bug_when>
    <thetext>Comment on attachment 67245
Patch

This seems wrong.

Did you just want this?
http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/common/system/ospath.py

Why not use absolute paths?

See how scm.py solves the run-from-anywhere problem by passing a cwd to executive.py:

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/common/checkout/scm.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277474</commentid>
    <comment_count>12</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 15:16:24 -0700</bug_when>
    <thetext>Committed r67241: &lt;http://trac.webkit.org/changeset/67241&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277475</commentid>
    <comment_count>13</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 15:17:15 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Committed r67241: &lt;http://trac.webkit.org/changeset/67241&gt;

Sorry, manual error of webkit-patch.  Reverting . . .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277477</commentid>
    <comment_count>14</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 15:24:13 -0700</bug_when>
    <thetext>Reverted r67241 for reason:

Accidentally committed

Committed r67242: &lt;http://trac.webkit.org/changeset/67242&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277488</commentid>
    <comment_count>15</comment_count>
      <attachid>67250</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 15:44:11 -0700</bug_when>
    <thetext>Created attachment 67250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277490</commentid>
    <comment_count>16</comment_count>
      <attachid>67251</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 15:48:06 -0700</bug_when>
    <thetext>Created attachment 67251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277493</commentid>
    <comment_count>17</comment_count>
      <attachid>67251</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-10 15:53:28 -0700</bug_when>
    <thetext>Comment on attachment 67251
Patch

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

Looks fine.  The attempts to wrap this to 80c make it harder to read than necessary.

&gt; WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py:61
&gt; +            _log.error(&quot;&apos;%s&apos; lacks baseline_search_path(), please fix.&quot;
80c does not help readability in all cases.  But I think I lost that battle long ago.  Cant remember. :)

&gt; WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py:173
&gt; +    &quot;&quot;&quot;Constructs a relative path to |filename| from |relative_to|.  Also, if
&gt; +    |relative_to| is a sub directory of the layout test directory and
&gt; +    |filename| is not in |relative_to|, return None.  This lets us filter
&gt; +    the results to only show results that are under where the script was run
&gt; +    from.
&gt; +    Args:
&gt; +        filename: The test file we&apos;re trying to get a relative path to.
&gt; +        relative_to: The absolute path we&apos;re relative to.
&gt; +    Returns:
&gt; +        A relative path to filename or None.
&gt; +    &quot;&quot;&quot;
This very long docstring ends up basically saying the same thing 3 times.  Especially with the comment about ospath.relpath below it too. :(

&gt; WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py:180
&gt; +    path = ospath.relpath(os.path.normpath(abs_path),
&gt; +                          os.path.normpath(relative_to))
&gt; +    return path
Just return the result directly, no?

&gt; WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py:218
&gt; +                yield {&apos;test&apos;: test, &apos;platform&apos;: platform,
&gt; +                       &apos;fallback&apos;: fallback, &apos;path&apos;: path}
I would have written this as one per line:

yield {
  &apos;test&apos;: foo,
   &apos;bar: bar,
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277495</commentid>
    <comment_count>18</comment_count>
      <attachid>67253</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 15:59:29 -0700</bug_when>
    <thetext>Created attachment 67253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277501</commentid>
    <comment_count>19</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 16:04:24 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 67245 [details])
&gt; Did you just want this?
&gt; http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/common/system/ospath.py

Switched to using ospath.relpath, but the description is wrong.  It&apos;s like python2.6&apos;s os.path.relpath, but it returns None if |path| is outside |start_path|.  os.path.relpath is smart enough to put ../ in the returned value.  This is good enough for this script, which will now print nothing if you try to run it from, e.g., WebCore or WebKitTools.

&gt; Why not use absolute paths?

Mainly because it&apos;s harder to read and these are really long path names.

&gt; See how scm.py solves the run-from-anywhere problem by passing a cwd to executive.py:

Good idea, I switch to passing the cwd to run_command and using an absolute path the other place it mattered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277521</commentid>
    <comment_count>20</comment_count>
      <attachid>67259</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 16:25:13 -0700</bug_when>
    <thetext>Created attachment 67259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277523</commentid>
    <comment_count>21</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 16:25:56 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 67251 [details])
&gt; This very long docstring ends up basically saying the same thing 3 times.  Especially with the comment about ospath.relpath below it too. :(

Shorted and removed the redundant comment.

&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py:180
&gt; &gt; +    path = ospath.relpath(os.path.normpath(abs_path),
&gt; &gt; +                          os.path.normpath(relative_to))
&gt; &gt; +    return path
&gt; Just return the result directly, no?

Done.

&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py:218
&gt; &gt; +                yield {&apos;test&apos;: test, &apos;platform&apos;: platform,
&gt; &gt; +                       &apos;fallback&apos;: fallback, &apos;path&apos;: path}
&gt; I would have written this as one per line:
&gt; 
&gt; yield {
&gt;   &apos;test&apos;: foo,
&gt;    &apos;bar: bar,
&gt; }

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279842</commentid>
    <comment_count>22</comment_count>
      <attachid>67259</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-15 17:17:32 -0700</bug_when>
    <thetext>Comment on attachment 67259
Patch

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

Looks fine, but I think you want to cache find_checkout_root()

&gt; WebKitTools/Scripts/webkitpy/layout_tests/deduplicate_tests.py:111
&gt; +            cwd=scm.find_checkout_root())
find_checkout_root is kinda expensive (hits the disk).  Maybe your object shoudl cache it somewhere?  If this was an actual Command object with a tool.scm, you would just grab tool.scm.checkout_root. :(   Bug 45838 is kinda blocking nice non-webkit-patch webkitpy development in this way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279850</commentid>
    <comment_count>23</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-15 17:40:33 -0700</bug_when>
    <thetext>Committed r67588: &lt;http://trac.webkit.org/changeset/67588&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67116</attachid>
            <date>2010-09-09 16:37:16 -0700</date>
            <delta_ts>2010-09-09 17:09:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44709-20100909163514.patch</filename>
            <type>text/plain</type>
            <size>7257</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxODA3YTgzOGMxYTM5ZjdiOTdmNGUxODQ1MDk5MzVjYzU0OGQ3ZTM3Li4wZDk2NTNi
YzhjNzVlYjAyMWQwMDJmZmM4NGQ5ZDM1Mzg2ZTA2ZDc4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMDktMDkgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkZWR1cGxpY2F0ZS10ZXN0cyBz
aG91bGQgYmUgcnVubmFibGUgZnJvbSBhbnkgV2ViS2l0IGRpcmVjdG9yeQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MDkKKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0
ZXN0LnB5OgorCiAyMDEwLTA5LTA5ICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0cy5w
eSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRl
X3Rlc3RzLnB5CmluZGV4IGM1NDNkOTE4M2E0MDZlNzg3MTQyMDJlODNjOTk1NjU0NTIzNTc0MDku
LmJlZWI2ODA2NTAwNzBhMTJlMGYwZjA3ZDhiYTgwY2I5ZDc4NjA3NDAgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3Rz
LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVw
bGljYXRlX3Rlc3RzLnB5CkBAIC0zNiw2ICszNiw3IEBAIGltcG9ydCBvcwogaW1wb3J0IHN1YnBy
b2Nlc3MKIGltcG9ydCBzeXMKIGltcG9ydCByZQoraW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5jaGVj
a291dC5zY20gYXMgc2NtCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUg
YXMgZXhlY3V0aXZlCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d1dGlscyBhcyBs
b2d1dGlscwogaW1wb3J0IHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgYXMgcG9y
dF9mYWN0b3J5CkBAIC01Niw3ICs1Nyw4IEBAIGRlZiBwb3J0X2ZhbGxiYWNrcygpOgogICAgICAg
ICB0cnk6CiAgICAgICAgICAgICBwbGF0Zm9ybXMgPSBwb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFt
ZSkuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKQogICAgICAgICBleGNlcHQgTm90SW1wbGVtZW50ZWRF
cnJvcjoKLSAgICAgICAgICAgIF9sb2cuZXJyb3IoIiclcycgbGFja3MgYmFzZWxpbmVfc2VhcmNo
X3BhdGgoKSwgcGxlYXNlIGZpeC4iICUgcG9ydF9uYW1lKQorICAgICAgICAgICAgX2xvZy5lcnJv
cigiJyVzJyBsYWNrcyBiYXNlbGluZV9zZWFyY2hfcGF0aCgpLCBwbGVhc2UgZml4LiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgJSBwb3J0X25hbWUpCiAgICAgICAgICAgICBmYWxsYmFja3NbcG9y
dF9uYW1lXSA9IFtfQkFTRV9QTEFURk9STV0KICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAg
IGZhbGxiYWNrc1twb3J0X25hbWVdID0gW29zLnBhdGguYmFzZW5hbWUocCkgZm9yIHAgaW4gcGxh
dGZvcm1zXVsxOl0KQEAgLTE1NiwxMSArMTU4LDM1IEBAIGRlZiBoYXNfaW50ZXJtZWRpYXRlX3Jl
c3VsdHModGVzdCwgZmFsbGJhY2tzLCBtYXRjaGluZ19wbGF0Zm9ybSwKICAgICByZXR1cm4gRmFs
c2UKIAogCi1kZWYgZmluZF9kdXBzKGhhc2hlcywgcG9ydF9mYWxsYmFja3MpOgorZGVmIGdldF9y
ZWxhdGl2ZV90ZXN0X3BhdGgoZmlsZW5hbWUsIHJlbGF0aXZlX3RvKToKKyAgICAiIiJDb25zdHJ1
Y3RzIGEgcmVsYXRpdmUgcGF0aCB0byB8ZmlsZW5hbWV8IGZyb20gfHJlbGF0aXZlX3RvfC4gIEFs
c28sIGlmCisgICAgfHJlbGF0aXZlX3RvfCBpcyBhIHN1YiBkaXJlY3Rvcnkgb2YgdGhlIGxheW91
dCB0ZXN0IGRpcmVjdG9yeSBhbmQKKyAgICB8ZmlsZW5hbWV8IGlzIG5vdCBpbiB8cmVsYXRpdmVf
dG98LCByZXR1cm4gTm9uZS4gIFRoaXMgbGV0cyB1cyBmaWx0ZXIKKyAgICB0aGUgcmVzdWx0cyB0
byBvbmx5IHNob3cgcmVzdWx0cyB0aGF0IGFyZSB1bmRlciB3aGVyZSB0aGUgc2NyaXB0IHdhcyBy
dW4KKyAgICBmcm9tLgorICAgIEFyZ3M6CisgICAgICAgIGZpbGVuYW1lOiBUaGUgdGVzdCBmaWxl
IHdlJ3JlIHRyeWluZyB0byBnZXQgYSByZWxhdGl2ZSBwYXRoIHRvLgorICAgICAgICByZWxhdGl2
ZV90bzogVGhlIHBhdGggd2UncmUgcmVsYXRpdmUgdG8uCisgICAgUmV0dXJuczoKKyAgICAgICAg
QSByZWxhdGl2ZSBwYXRoIHRvIGZpbGVuYW1lIG9yIE5vbmUuCisgICAgIiIiCisgICAgbGF5b3V0
X3Rlc3RfZGlyID0gb3MucGF0aC5qb2luKHNjbS5maW5kX2NoZWNrb3V0X3Jvb3QoKSwgJ0xheW91
dFRlc3RzJykKKyAgICBhYnNfcGF0aCA9IG9zLnBhdGguam9pbihsYXlvdXRfdGVzdF9kaXIsIGZp
bGVuYW1lKQorICAgIHBhdGggPSBvcy5wYXRoLnJlbHBhdGgoYWJzX3BhdGgsIHJlbGF0aXZlX3Rv
KQorICAgICMgSWYgd2UncmUgaW4gdGhlIGxheW91dCB0ZXN0IGRpcmVjdG9yeSwgb25seSByZXR1
cm4gcmVzdWx0cyB0aGF0IGFyZSBiZWxvdworICAgICMgd2hlcmUgdGhlIHRvb2wgd2FzIHJ1biBm
cm9tLgorICAgIGlmIChyZWxhdGl2ZV90by5zdGFydHN3aXRoKGxheW91dF90ZXN0X2RpcikgYW5k
IHBhdGguc3RhcnRzd2l0aCgnLi4nKSk6CisgICAgICAgIHJldHVybiBOb25lCisgICAgcmV0dXJu
IHBhdGgKKworCitkZWYgZmluZF9kdXBzKGhhc2hlcywgcG9ydF9mYWxsYmFja3MsIHJlbGF0aXZl
X3RvKToKICAgICAiIiJZaWVsZHMgaW5mbyBhYm91dCByZWR1bmRhbnQgdGVzdCBleHBlY3RhdGlv
bnMuCiAgICAgQXJnczoKICAgICAgICAgaGFzaGVzOiBhIGxpc3Qgb2YgaGFzaGVzIGFzIHJldHVy
bmVkIGJ5IGNsdXN0ZXJfZmlsZV9oYXNoZXMuCi0gICAgICAgIHBvcnRfZmFsbGJhY2tzOiBhIGxp
c3Qgb2YgZmFsbGJhY2sgaW5mb3JtYXRpb24gYXMgcmV0dXJuZWQgYnkgZ2V0X3BvcnRfZmFsbGJh
Y2tzLgorICAgICAgICBwb3J0X2ZhbGxiYWNrczogYSBsaXN0IG9mIGZhbGxiYWNrIGluZm9ybWF0
aW9uIGFzIHJldHVybmVkIGJ5CisgICAgICAgICAgICBnZXRfcG9ydF9mYWxsYmFja3MuCisgICAg
ICAgIHJlbGF0aXZlX3RvOiB0aGUgZGlyZWN0b3J5IHRoYXQgd2Ugd2FudCB0aGUgcmVzdWx0cyBy
ZWxhdGl2ZSB0bwogICAgIFJldHVybnM6CiAgICAgICAgIGEgdHVwbGUgY29udGFpbmluZyAodGVz
dCwgcGxhdGZvcm0sIGZhbGxiYWNrLCBwbGF0Zm9ybXMpCiAgICAgIiIiCkBAIC0xNzYsMTMgKzIw
MiwyMCBAQCBkZWYgZmluZF9kdXBzKGhhc2hlcywgcG9ydF9mYWxsYmFja3MpOgogICAgICAgICAj
IFNlZSBpZiBhbnkgb2YgdGhlIHBsYXRmb3JtcyBhcmUgcmVkdW5kYW50IHdpdGggZWFjaCBvdGhl
ci4KICAgICAgICAgZm9yIHBsYXRmb3JtIGluIHBsYXRmb3Jtcy5rZXlzKCk6CiAgICAgICAgICAg
ICBmb3IgZmFsbGJhY2sgaW4gcG9ydF9mYWxsYmFja3NbcGxhdGZvcm1dOgotICAgICAgICAgICAg
ICAgIGlmIGZhbGxiYWNrIGluIHBsYXRmb3Jtcy5rZXlzKCk6Ci0gICAgICAgICAgICAgICAgICAg
ICMgV2UgaGF2ZSB0byB2ZXJpZnkgdGhhdCB0aGVyZSBpc24ndCBhbiBpbnRlcm1lZGlhdGUgcmVz
dWx0Ci0gICAgICAgICAgICAgICAgICAgICMgdGhhdCBjYXVzZXMgdGhpcyBkdXBsaWNhdGUgaGFz
aCB0byBleGlzdC4KLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IGhhc19pbnRlcm1lZGlhdGVf
cmVzdWx0cyh0ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRfZmFsbGJhY2tz
W3BsYXRmb3JtXSwgZmFsbGJhY2spOgotICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCA9IG9z
LnBhdGguam9pbignTGF5b3V0VGVzdHMnLCBwbGF0Zm9ybXNbcGxhdGZvcm1dKQotICAgICAgICAg
ICAgICAgICAgICAgICAgeWllbGQgdGVzdCwgcGxhdGZvcm0sIGZhbGxiYWNrLCBwYXRoCisgICAg
ICAgICAgICAgICAgaWYgZmFsbGJhY2sgbm90IGluIHBsYXRmb3Jtcy5rZXlzKCk6CisgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgIyBXZSBoYXZlIHRvIHZlcmlm
eSB0aGF0IHRoZXJlIGlzbid0IGFuIGludGVybWVkaWF0ZSByZXN1bHQKKyAgICAgICAgICAgICAg
ICAjIHRoYXQgY2F1c2VzIHRoaXMgZHVwbGljYXRlIGhhc2ggdG8gZXhpc3QuCisgICAgICAgICAg
ICAgICAgaWYgaGFzX2ludGVybWVkaWF0ZV9yZXN1bHRzKHRlc3QsIHBvcnRfZmFsbGJhY2tzW3Bs
YXRmb3JtXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFs
bGJhY2spOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICMg
V2UgcHJpbnQgdGhlIHJlbGF0aXZlIHBhdGggc28gaXQncyBlYXN5IHRvIHBpcGUgdGhlIHJlc3Vs
dHMKKyAgICAgICAgICAgICAgICAjIHRvIHhhcmdzIHJtLgorICAgICAgICAgICAgICAgIHBhdGgg
PSBnZXRfcmVsYXRpdmVfdGVzdF9wYXRoKHBsYXRmb3Jtc1twbGF0Zm9ybV0sIHJlbGF0aXZlX3Rv
KQorICAgICAgICAgICAgICAgIGlmIG5vdCBwYXRoOgorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZQorICAgICAgICAgICAgICAgIHlpZWxkIHsndGVzdCc6IHRlc3QsICdwbGF0Zm9ybSc6IHBs
YXRmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAnZmFsbGJhY2snOiBmYWxsYmFjaywgJ3Bh
dGgnOiBwYXRofQogCiAKIGRlZiBkZWR1cGxpY2F0ZShnbG9iX3BhdHRlcm4pOgpAQCAtMTkyLDcg
KzIyNSwxMSBAQCBkZWYgZGVkdXBsaWNhdGUoZ2xvYl9wYXR0ZXJuKToKICAgICBSZXR1cm5zOgog
ICAgICAgICBhIGRpY3Rpb25hcnkgY29udGFpbmluZyB0ZXN0LCBwYXRoLCBwbGF0Zm9ybSBhbmQg
ZmFsbGJhY2suCiAgICAgIiIiCi0gICAgZmFsbGJhY2tzID0gcG9ydF9mYWxsYmFja3MoKQotICAg
IGhhc2hlcyA9IGNsdXN0ZXJfZmlsZV9oYXNoZXMoZ2xvYl9wYXR0ZXJuKQotICAgIHJldHVybiBb
eyd0ZXN0JzogdGVzdCwgJ3BhdGgnOiBwYXRoLCAncGxhdGZvcm0nOiBwbGF0Zm9ybSwgJ2ZhbGxi
YWNrJzogZmFsbGJhY2t9Ci0gICAgICAgICAgICAgZm9yIHRlc3QsIHBsYXRmb3JtLCBmYWxsYmFj
aywgcGF0aCBpbiBmaW5kX2R1cHMoaGFzaGVzLCBmYWxsYmFja3MpXQorICAgIGN1cnJlbnRfZGly
ID0gb3MuZ2V0Y3dkKCkKKyAgICB0cnk6CisgICAgICAgIG9zLmNoZGlyKHNjbS5maW5kX2NoZWNr
b3V0X3Jvb3QoKSkKKyAgICAgICAgZmFsbGJhY2tzID0gcG9ydF9mYWxsYmFja3MoKQorICAgICAg
ICBoYXNoZXMgPSBjbHVzdGVyX2ZpbGVfaGFzaGVzKGdsb2JfcGF0dGVybikKKyAgICAgICAgcmV0
dXJuIGxpc3QoZmluZF9kdXBzKGhhc2hlcywgZmFsbGJhY2tzLCBjdXJyZW50X2RpcikpCisgICAg
ZmluYWxseToKKyAgICAgICAgb3MuY2hkaXIoY3VycmVudF9kaXIpCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0c191
bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Rl
ZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5CmluZGV4IGJlMmUzODEyZWM5MWY4NzI5M2EwNGM1
ODQ0NzE0YzcyMWNhODA5NTYuLjMwNDQ0ODcxYjljMmQwNDQxZTUzOWY3NGIwN2IxZDE4MzFlYTk2
NWIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5CkBAIC0x
ODYsMyArMTg2LDIyIEBAIGNsYXNzIExpc3REdXBsaWNhdGVzVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFsbGJhY2snOiAnY2hyb21pdW0td2lu
JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybSc6ICdjaHJvbWl1bS1saW51
eCd9LAogICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbMF0pCisKKyAgICBkZWYgdGVz
dF9nZXRfcmVsYXRpdmVfdGVzdF9wYXRoKHNlbGYpOgorICAgICAgICBjaGVja291dF9yb290ID0g
c2NtLmZpbmRfY2hlY2tvdXRfcm9vdCgpCisgICAgICAgIGxheW91dF90ZXN0X2RpciA9IG9zLnBh
dGguam9pbihjaGVja291dF9yb290LCAnTGF5b3V0VGVzdHMnKQorICAgICAgICB0ZXN0X2Nhc2Vz
ID0gKAorICAgICAgICAgICAgKCdwbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywKKyAgICAgICAgICAg
ICAoJ3BsYXRmb3JtL21hYy90ZXN0Lmh0bWwnLCBsYXlvdXRfdGVzdF9kaXIpKSwKKyAgICAgICAg
ICAgICgnTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3Rlc3QuaHRtbCcsCisgICAgICAgICAgICAg
KCdwbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywgY2hlY2tvdXRfcm9vdCkpLAorICAgICAgICAgICAg
KCcuLi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywKKyAgICAgICAgICAgICAo
J3BsYXRmb3JtL21hYy90ZXN0Lmh0bWwnLCBvcy5wYXRoLmpvaW4oY2hlY2tvdXRfcm9vdCwgJ1dl
YkNvcmUnKSkpLAorICAgICAgICAgICAgKCd0ZXN0Lmh0bWwnLAorICAgICAgICAgICAgICgncGxh
dGZvcm0vbWFjL3Rlc3QuaHRtbCcsIG9zLnBhdGguam9pbihsYXlvdXRfdGVzdF9kaXIsICdwbGF0
Zm9ybS9tYWMnKSkpLAorICAgICAgICAgICAgKE5vbmUsCisgICAgICAgICAgICAgKCdwbGF0Zm9y
bS9tYWMvdGVzdC5odG1sJywgb3MucGF0aC5qb2luKGxheW91dF90ZXN0X2RpciwgJ3BsYXRmb3Jt
L3dpbicpKSksCisgICAgICAgICkKKyAgICAgICAgZm9yIGV4cGVjdGVkLCBpbnB1dHMgaW4gdGVz
dF9jYXNlczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVkdXBsaWNhdGVfdGVzdHMuZ2V0X3JlbGF0aXZlX3Rl
c3RfcGF0aCgqaW5wdXRzKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67120</attachid>
            <date>2010-09-09 17:09:44 -0700</date>
            <delta_ts>2010-09-10 15:12:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44709-20100909170742.patch</filename>
            <type>text/plain</type>
            <size>7266</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxODA3YTgzOGMxYTM5ZjdiOTdmNGUxODQ1MDk5MzVjYzU0OGQ3ZTM3Li4wZDk2NTNi
YzhjNzVlYjAyMWQwMDJmZmM4NGQ5ZDM1Mzg2ZTA2ZDc4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMDktMDkgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkZWR1cGxpY2F0ZS10ZXN0cyBz
aG91bGQgYmUgcnVubmFibGUgZnJvbSBhbnkgV2ViS2l0IGRpcmVjdG9yeQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MDkKKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0
ZXN0LnB5OgorCiAyMDEwLTA5LTA5ICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0cy5w
eSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRl
X3Rlc3RzLnB5CmluZGV4IGM1NDNkOTE4M2E0MDZlNzg3MTQyMDJlODNjOTk1NjU0NTIzNTc0MDku
LjM5Yjk0MzEzYzBmMGQ5ZTE1YjIwNzczOWQ3ZTZiZmZjMWU0MGI0NzYgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3Rz
LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVw
bGljYXRlX3Rlc3RzLnB5CkBAIC0zNiw2ICszNiw3IEBAIGltcG9ydCBvcwogaW1wb3J0IHN1YnBy
b2Nlc3MKIGltcG9ydCBzeXMKIGltcG9ydCByZQoraW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5jaGVj
a291dC5zY20gYXMgc2NtCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUg
YXMgZXhlY3V0aXZlCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d1dGlscyBhcyBs
b2d1dGlscwogaW1wb3J0IHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgYXMgcG9y
dF9mYWN0b3J5CkBAIC01Niw3ICs1Nyw4IEBAIGRlZiBwb3J0X2ZhbGxiYWNrcygpOgogICAgICAg
ICB0cnk6CiAgICAgICAgICAgICBwbGF0Zm9ybXMgPSBwb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFt
ZSkuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKQogICAgICAgICBleGNlcHQgTm90SW1wbGVtZW50ZWRF
cnJvcjoKLSAgICAgICAgICAgIF9sb2cuZXJyb3IoIiclcycgbGFja3MgYmFzZWxpbmVfc2VhcmNo
X3BhdGgoKSwgcGxlYXNlIGZpeC4iICUgcG9ydF9uYW1lKQorICAgICAgICAgICAgX2xvZy5lcnJv
cigiJyVzJyBsYWNrcyBiYXNlbGluZV9zZWFyY2hfcGF0aCgpLCBwbGVhc2UgZml4LiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgJSBwb3J0X25hbWUpCiAgICAgICAgICAgICBmYWxsYmFja3NbcG9y
dF9uYW1lXSA9IFtfQkFTRV9QTEFURk9STV0KICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAg
IGZhbGxiYWNrc1twb3J0X25hbWVdID0gW29zLnBhdGguYmFzZW5hbWUocCkgZm9yIHAgaW4gcGxh
dGZvcm1zXVsxOl0KQEAgLTE1NiwxMSArMTU4LDM1IEBAIGRlZiBoYXNfaW50ZXJtZWRpYXRlX3Jl
c3VsdHModGVzdCwgZmFsbGJhY2tzLCBtYXRjaGluZ19wbGF0Zm9ybSwKICAgICByZXR1cm4gRmFs
c2UKIAogCi1kZWYgZmluZF9kdXBzKGhhc2hlcywgcG9ydF9mYWxsYmFja3MpOgorZGVmIGdldF9y
ZWxhdGl2ZV90ZXN0X3BhdGgoZmlsZW5hbWUsIHJlbGF0aXZlX3RvKToKKyAgICAiIiJDb25zdHJ1
Y3RzIGEgcmVsYXRpdmUgcGF0aCB0byB8ZmlsZW5hbWV8IGZyb20gfHJlbGF0aXZlX3RvfC4gIEFs
c28sIGlmCisgICAgfHJlbGF0aXZlX3RvfCBpcyBhIHN1YiBkaXJlY3Rvcnkgb2YgdGhlIGxheW91
dCB0ZXN0IGRpcmVjdG9yeSBhbmQKKyAgICB8ZmlsZW5hbWV8IGlzIG5vdCBpbiB8cmVsYXRpdmVf
dG98LCByZXR1cm4gTm9uZS4gIFRoaXMgbGV0cyB1cyBmaWx0ZXIKKyAgICB0aGUgcmVzdWx0cyB0
byBvbmx5IHNob3cgcmVzdWx0cyB0aGF0IGFyZSB1bmRlciB3aGVyZSB0aGUgc2NyaXB0IHdhcyBy
dW4KKyAgICBmcm9tLgorICAgIEFyZ3M6CisgICAgICAgIGZpbGVuYW1lOiBUaGUgdGVzdCBmaWxl
IHdlJ3JlIHRyeWluZyB0byBnZXQgYSByZWxhdGl2ZSBwYXRoIHRvLgorICAgICAgICByZWxhdGl2
ZV90bzogVGhlIGFic29sdXRlIHBhdGggd2UncmUgcmVsYXRpdmUgdG8uCisgICAgUmV0dXJuczoK
KyAgICAgICAgQSByZWxhdGl2ZSBwYXRoIHRvIGZpbGVuYW1lIG9yIE5vbmUuCisgICAgIiIiCisg
ICAgbGF5b3V0X3Rlc3RfZGlyID0gb3MucGF0aC5qb2luKHNjbS5maW5kX2NoZWNrb3V0X3Jvb3Qo
KSwgJ0xheW91dFRlc3RzJykKKyAgICBhYnNfcGF0aCA9IG9zLnBhdGguam9pbihsYXlvdXRfdGVz
dF9kaXIsIGZpbGVuYW1lKQorICAgIHBhdGggPSBvcy5wYXRoLnJlbHBhdGgoYWJzX3BhdGgsIHJl
bGF0aXZlX3RvKQorICAgICMgSWYgd2UncmUgaW4gdGhlIGxheW91dCB0ZXN0IGRpcmVjdG9yeSwg
b25seSByZXR1cm4gcmVzdWx0cyB0aGF0IGFyZSBiZWxvdworICAgICMgd2hlcmUgdGhlIHRvb2wg
d2FzIHJ1biBmcm9tLgorICAgIGlmIChyZWxhdGl2ZV90by5zdGFydHN3aXRoKGxheW91dF90ZXN0
X2RpcikgYW5kIHBhdGguc3RhcnRzd2l0aCgnLi4nKSk6CisgICAgICAgIHJldHVybiBOb25lCisg
ICAgcmV0dXJuIHBhdGgKKworCitkZWYgZmluZF9kdXBzKGhhc2hlcywgcG9ydF9mYWxsYmFja3Ms
IHJlbGF0aXZlX3RvKToKICAgICAiIiJZaWVsZHMgaW5mbyBhYm91dCByZWR1bmRhbnQgdGVzdCBl
eHBlY3RhdGlvbnMuCiAgICAgQXJnczoKICAgICAgICAgaGFzaGVzOiBhIGxpc3Qgb2YgaGFzaGVz
IGFzIHJldHVybmVkIGJ5IGNsdXN0ZXJfZmlsZV9oYXNoZXMuCi0gICAgICAgIHBvcnRfZmFsbGJh
Y2tzOiBhIGxpc3Qgb2YgZmFsbGJhY2sgaW5mb3JtYXRpb24gYXMgcmV0dXJuZWQgYnkgZ2V0X3Bv
cnRfZmFsbGJhY2tzLgorICAgICAgICBwb3J0X2ZhbGxiYWNrczogYSBsaXN0IG9mIGZhbGxiYWNr
IGluZm9ybWF0aW9uIGFzIHJldHVybmVkIGJ5CisgICAgICAgICAgICBnZXRfcG9ydF9mYWxsYmFj
a3MuCisgICAgICAgIHJlbGF0aXZlX3RvOiB0aGUgZGlyZWN0b3J5IHRoYXQgd2Ugd2FudCB0aGUg
cmVzdWx0cyByZWxhdGl2ZSB0bwogICAgIFJldHVybnM6CiAgICAgICAgIGEgdHVwbGUgY29udGFp
bmluZyAodGVzdCwgcGxhdGZvcm0sIGZhbGxiYWNrLCBwbGF0Zm9ybXMpCiAgICAgIiIiCkBAIC0x
NzYsMTMgKzIwMiwyMCBAQCBkZWYgZmluZF9kdXBzKGhhc2hlcywgcG9ydF9mYWxsYmFja3MpOgog
ICAgICAgICAjIFNlZSBpZiBhbnkgb2YgdGhlIHBsYXRmb3JtcyBhcmUgcmVkdW5kYW50IHdpdGgg
ZWFjaCBvdGhlci4KICAgICAgICAgZm9yIHBsYXRmb3JtIGluIHBsYXRmb3Jtcy5rZXlzKCk6CiAg
ICAgICAgICAgICBmb3IgZmFsbGJhY2sgaW4gcG9ydF9mYWxsYmFja3NbcGxhdGZvcm1dOgotICAg
ICAgICAgICAgICAgIGlmIGZhbGxiYWNrIGluIHBsYXRmb3Jtcy5rZXlzKCk6Ci0gICAgICAgICAg
ICAgICAgICAgICMgV2UgaGF2ZSB0byB2ZXJpZnkgdGhhdCB0aGVyZSBpc24ndCBhbiBpbnRlcm1l
ZGlhdGUgcmVzdWx0Ci0gICAgICAgICAgICAgICAgICAgICMgdGhhdCBjYXVzZXMgdGhpcyBkdXBs
aWNhdGUgaGFzaCB0byBleGlzdC4KLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IGhhc19pbnRl
cm1lZGlhdGVfcmVzdWx0cyh0ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRf
ZmFsbGJhY2tzW3BsYXRmb3JtXSwgZmFsbGJhY2spOgotICAgICAgICAgICAgICAgICAgICAgICAg
cGF0aCA9IG9zLnBhdGguam9pbignTGF5b3V0VGVzdHMnLCBwbGF0Zm9ybXNbcGxhdGZvcm1dKQot
ICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGVzdCwgcGxhdGZvcm0sIGZhbGxiYWNrLCBw
YXRoCisgICAgICAgICAgICAgICAgaWYgZmFsbGJhY2sgbm90IGluIHBsYXRmb3Jtcy5rZXlzKCk6
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgIyBXZSBoYXZl
IHRvIHZlcmlmeSB0aGF0IHRoZXJlIGlzbid0IGFuIGludGVybWVkaWF0ZSByZXN1bHQKKyAgICAg
ICAgICAgICAgICAjIHRoYXQgY2F1c2VzIHRoaXMgZHVwbGljYXRlIGhhc2ggdG8gZXhpc3QuCisg
ICAgICAgICAgICAgICAgaWYgaGFzX2ludGVybWVkaWF0ZV9yZXN1bHRzKHRlc3QsIHBvcnRfZmFs
bGJhY2tzW3BsYXRmb3JtXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmFsbGJhY2spOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAg
ICAgICAgICMgV2UgcHJpbnQgdGhlIHJlbGF0aXZlIHBhdGggc28gaXQncyBlYXN5IHRvIHBpcGUg
dGhlIHJlc3VsdHMKKyAgICAgICAgICAgICAgICAjIHRvIHhhcmdzIHJtLgorICAgICAgICAgICAg
ICAgIHBhdGggPSBnZXRfcmVsYXRpdmVfdGVzdF9wYXRoKHBsYXRmb3Jtc1twbGF0Zm9ybV0sIHJl
bGF0aXZlX3RvKQorICAgICAgICAgICAgICAgIGlmIG5vdCBwYXRoOgorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHlpZWxkIHsndGVzdCc6IHRlc3QsICdwbGF0
Zm9ybSc6IHBsYXRmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAnZmFsbGJhY2snOiBmYWxs
YmFjaywgJ3BhdGgnOiBwYXRofQogCiAKIGRlZiBkZWR1cGxpY2F0ZShnbG9iX3BhdHRlcm4pOgpA
QCAtMTkyLDcgKzIyNSwxMSBAQCBkZWYgZGVkdXBsaWNhdGUoZ2xvYl9wYXR0ZXJuKToKICAgICBS
ZXR1cm5zOgogICAgICAgICBhIGRpY3Rpb25hcnkgY29udGFpbmluZyB0ZXN0LCBwYXRoLCBwbGF0
Zm9ybSBhbmQgZmFsbGJhY2suCiAgICAgIiIiCi0gICAgZmFsbGJhY2tzID0gcG9ydF9mYWxsYmFj
a3MoKQotICAgIGhhc2hlcyA9IGNsdXN0ZXJfZmlsZV9oYXNoZXMoZ2xvYl9wYXR0ZXJuKQotICAg
IHJldHVybiBbeyd0ZXN0JzogdGVzdCwgJ3BhdGgnOiBwYXRoLCAncGxhdGZvcm0nOiBwbGF0Zm9y
bSwgJ2ZhbGxiYWNrJzogZmFsbGJhY2t9Ci0gICAgICAgICAgICAgZm9yIHRlc3QsIHBsYXRmb3Jt
LCBmYWxsYmFjaywgcGF0aCBpbiBmaW5kX2R1cHMoaGFzaGVzLCBmYWxsYmFja3MpXQorICAgIGN1
cnJlbnRfZGlyID0gb3MuZ2V0Y3dkKCkKKyAgICB0cnk6CisgICAgICAgIG9zLmNoZGlyKHNjbS5m
aW5kX2NoZWNrb3V0X3Jvb3QoKSkKKyAgICAgICAgZmFsbGJhY2tzID0gcG9ydF9mYWxsYmFja3Mo
KQorICAgICAgICBoYXNoZXMgPSBjbHVzdGVyX2ZpbGVfaGFzaGVzKGdsb2JfcGF0dGVybikKKyAg
ICAgICAgcmV0dXJuIGxpc3QoZmluZF9kdXBzKGhhc2hlcywgZmFsbGJhY2tzLCBjdXJyZW50X2Rp
cikpCisgICAgZmluYWxseToKKyAgICAgICAgb3MuY2hkaXIoY3VycmVudF9kaXIpCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0
ZV90ZXN0c191bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5CmluZGV4IGJlMmUzODEyZWM5MWY4
NzI5M2EwNGM1ODQ0NzE0YzcyMWNhODA5NTYuLjMwNDQ0ODcxYjljMmQwNDQxZTUzOWY3NGIwN2Ix
ZDE4MzFlYTk2NWIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0
LnB5CkBAIC0xODYsMyArMTg2LDIyIEBAIGNsYXNzIExpc3REdXBsaWNhdGVzVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFsbGJhY2snOiAnY2hy
b21pdW0td2luJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybSc6ICdjaHJv
bWl1bS1saW51eCd9LAogICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbMF0pCisKKyAg
ICBkZWYgdGVzdF9nZXRfcmVsYXRpdmVfdGVzdF9wYXRoKHNlbGYpOgorICAgICAgICBjaGVja291
dF9yb290ID0gc2NtLmZpbmRfY2hlY2tvdXRfcm9vdCgpCisgICAgICAgIGxheW91dF90ZXN0X2Rp
ciA9IG9zLnBhdGguam9pbihjaGVja291dF9yb290LCAnTGF5b3V0VGVzdHMnKQorICAgICAgICB0
ZXN0X2Nhc2VzID0gKAorICAgICAgICAgICAgKCdwbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywKKyAg
ICAgICAgICAgICAoJ3BsYXRmb3JtL21hYy90ZXN0Lmh0bWwnLCBsYXlvdXRfdGVzdF9kaXIpKSwK
KyAgICAgICAgICAgICgnTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3Rlc3QuaHRtbCcsCisgICAg
ICAgICAgICAgKCdwbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywgY2hlY2tvdXRfcm9vdCkpLAorICAg
ICAgICAgICAgKCcuLi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywKKyAgICAg
ICAgICAgICAoJ3BsYXRmb3JtL21hYy90ZXN0Lmh0bWwnLCBvcy5wYXRoLmpvaW4oY2hlY2tvdXRf
cm9vdCwgJ1dlYkNvcmUnKSkpLAorICAgICAgICAgICAgKCd0ZXN0Lmh0bWwnLAorICAgICAgICAg
ICAgICgncGxhdGZvcm0vbWFjL3Rlc3QuaHRtbCcsIG9zLnBhdGguam9pbihsYXlvdXRfdGVzdF9k
aXIsICdwbGF0Zm9ybS9tYWMnKSkpLAorICAgICAgICAgICAgKE5vbmUsCisgICAgICAgICAgICAg
KCdwbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywgb3MucGF0aC5qb2luKGxheW91dF90ZXN0X2Rpciwg
J3BsYXRmb3JtL3dpbicpKSksCisgICAgICAgICkKKyAgICAgICAgZm9yIGV4cGVjdGVkLCBpbnB1
dHMgaW4gdGVzdF9jYXNlczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVkdXBsaWNhdGVfdGVzdHMuZ2V0X3Jl
bGF0aXZlX3Rlc3RfcGF0aCgqaW5wdXRzKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67245</attachid>
            <date>2010-09-10 15:12:25 -0700</date>
            <delta_ts>2010-09-10 15:44:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44709-20100910151017.patch</filename>
            <type>text/plain</type>
            <size>8292</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4MzI2YjgzN2JkZTA5MzFiMzQ0NWM0MWNkZGRiNjBlODI4NTMwZWRhLi5mNjJmODdl
N2I5Y2VmNmU4ZDllNWMyNDFhODY2MjA5NmRmOTNmMjE1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAK
IDIwMTAtMDktMTAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAorICAgICAgICBS
ZXZpZXdlZCBieSBPamFuIFZhZmFpLgorCisgICAgICAgIGRlZHVwbGljYXRlLXRlc3RzIHNob3Vs
ZCBiZSBydW5uYWJsZSBmcm9tIGFueSBXZWJLaXQgZGlyZWN0b3J5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcwOQorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHMucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHNfdW5pdHRlc3Qu
cHk6CisKKzIwMTAtMDktMTAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKwogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjcyMTYuCiAgICAgICAgIGh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzY3MjE2CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NDcwOQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHMucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0cy5weQppbmRl
eCBjNTQzZDkxODNhNDA2ZTc4NzE0MjAyZTgzYzk5NTY1NDUyMzU3NDA5Li4yNGJjYzJmMjBkMGNm
ZjMwZDk4ZTBkNDk4YmE2YWI0MGQ5MWU5ZmY4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0cy5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0cy5w
eQpAQCAtMzYsNiArMzYsNyBAQCBpbXBvcnQgb3MKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQg
c3lzCiBpbXBvcnQgcmUKK2ltcG9ydCB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtIGFzIHNj
bQogaW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGFzIGV4ZWN1dGl2ZQog
aW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ubG9ndXRpbHMgYXMgbG9ndXRpbHMKIGltcG9y
dCB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC5mYWN0b3J5IGFzIHBvcnRfZmFjdG9yeQpAQCAt
NDUsNiArNDYsMjQgQEAgX2xvZyA9IGxvZ3V0aWxzLmdldF9sb2dnZXIoX19maWxlX18pCiBfQkFT
RV9QTEFURk9STSA9ICdiYXNlJwogCiAKK2RlZiByZWxwYXRoKGFic19wYXRoLCByZWxhdGl2ZV90
byk6CisgICAgIiIiQ3JlYXRlIGEgcmVsYXRpdmUgcGF0aCBmcm9tIHJlbGF0aXZlX3RvIHRvIGFi
c19wYXRoLgorICAgIEFyZ3M6CisgICAgICAgIGFic19wYXRoOiBUaGUgdGFyZ2V0IGZpbGUgKG11
c3QgYmUgYW4gYWJzb2x1dGUgcGF0aCkuCisgICAgICAgIHJlbGF0aXZlX3RvOiBUaGUgZGlyZWN0
b3J5IHRvIGJlIHJlbGF0aXZlIHRvIChtdXN0IGFsc28gYmUgYW4gYWJzb2x1dGUKKyAgICAgICAg
ICAgIHBhdGgpLgorICAgIFJldHVybnM6CisgICAgICAgIEEgcmVsYXRpdmUgcGF0aCB0byBhYnNf
cGF0aC4iIiIKKyAgICBhYnNfcGF0aF90b2tlbnMgPSBvcy5wYXRoLm5vcm1wYXRoKGFic19wYXRo
KS5zcGxpdChvcy5wYXRoLnNlcCkKKyAgICByZWxhdGl2ZV90b190b2tlbnMgPSBvcy5wYXRoLm5v
cm1wYXRoKHJlbGF0aXZlX3RvKS5zcGxpdChvcy5wYXRoLnNlcCkKKyAgICB3aGlsZSAoYWJzX3Bh
dGhfdG9rZW5zIGFuZCByZWxhdGl2ZV90b190b2tlbnMgYW5kCisgICAgICAgICAgIGFic19wYXRo
X3Rva2Vuc1swXSA9PSByZWxhdGl2ZV90b190b2tlbnNbMF0pOgorICAgICAgICBhYnNfcGF0aF90
b2tlbnMucG9wKDApCisgICAgICAgIHJlbGF0aXZlX3RvX3Rva2Vucy5wb3AoMCkKKyAgICByZXN1
bHRfcGF0aCA9IChsZW4ocmVsYXRpdmVfdG9fdG9rZW5zKSAqIFsiLi4iXSkgKyBhYnNfcGF0aF90
b2tlbnMKKyAgICByZXR1cm4gb3MucGF0aC5zZXAuam9pbihyZXN1bHRfcGF0aCkKKworCiBkZWYg
cG9ydF9mYWxsYmFja3MoKToKICAgICAiIiJHZXQgdGhlIHBvcnQgZmFsbGJhY2sgaW5mb3JtYXRp
b24uCiAgICAgUmV0dXJuczoKQEAgLTU2LDcgKzc1LDggQEAgZGVmIHBvcnRfZmFsbGJhY2tzKCk6
CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHBsYXRmb3JtcyA9IHBvcnRfZmFjdG9yeS5nZXQo
cG9ydF9uYW1lKS5iYXNlbGluZV9zZWFyY2hfcGF0aCgpCiAgICAgICAgIGV4Y2VwdCBOb3RJbXBs
ZW1lbnRlZEVycm9yOgotICAgICAgICAgICAgX2xvZy5lcnJvcigiJyVzJyBsYWNrcyBiYXNlbGlu
ZV9zZWFyY2hfcGF0aCgpLCBwbGVhc2UgZml4LiIgJSBwb3J0X25hbWUpCisgICAgICAgICAgICBf
bG9nLmVycm9yKCInJXMnIGxhY2tzIGJhc2VsaW5lX3NlYXJjaF9wYXRoKCksIHBsZWFzZSBmaXgu
IgorICAgICAgICAgICAgICAgICAgICAgICAlIHBvcnRfbmFtZSkKICAgICAgICAgICAgIGZhbGxi
YWNrc1twb3J0X25hbWVdID0gW19CQVNFX1BMQVRGT1JNXQogICAgICAgICAgICAgY29udGludWUK
ICAgICAgICAgZmFsbGJhY2tzW3BvcnRfbmFtZV0gPSBbb3MucGF0aC5iYXNlbmFtZShwKSBmb3Ig
cCBpbiBwbGF0Zm9ybXNdWzE6XQpAQCAtMTU2LDExICsxNzYsMzUgQEAgZGVmIGhhc19pbnRlcm1l
ZGlhdGVfcmVzdWx0cyh0ZXN0LCBmYWxsYmFja3MsIG1hdGNoaW5nX3BsYXRmb3JtLAogICAgIHJl
dHVybiBGYWxzZQogCiAKLWRlZiBmaW5kX2R1cHMoaGFzaGVzLCBwb3J0X2ZhbGxiYWNrcyk6Citk
ZWYgZ2V0X3JlbGF0aXZlX3Rlc3RfcGF0aChmaWxlbmFtZSwgcmVsYXRpdmVfdG8pOgorICAgICIi
IkNvbnN0cnVjdHMgYSByZWxhdGl2ZSBwYXRoIHRvIHxmaWxlbmFtZXwgZnJvbSB8cmVsYXRpdmVf
dG98LiAgQWxzbywgaWYKKyAgICB8cmVsYXRpdmVfdG98IGlzIGEgc3ViIGRpcmVjdG9yeSBvZiB0
aGUgbGF5b3V0IHRlc3QgZGlyZWN0b3J5IGFuZAorICAgIHxmaWxlbmFtZXwgaXMgbm90IGluIHxy
ZWxhdGl2ZV90b3wsIHJldHVybiBOb25lLiAgVGhpcyBsZXRzIHVzIGZpbHRlcgorICAgIHRoZSBy
ZXN1bHRzIHRvIG9ubHkgc2hvdyByZXN1bHRzIHRoYXQgYXJlIHVuZGVyIHdoZXJlIHRoZSBzY3Jp
cHQgd2FzIHJ1bgorICAgIGZyb20uCisgICAgQXJnczoKKyAgICAgICAgZmlsZW5hbWU6IFRoZSB0
ZXN0IGZpbGUgd2UncmUgdHJ5aW5nIHRvIGdldCBhIHJlbGF0aXZlIHBhdGggdG8uCisgICAgICAg
IHJlbGF0aXZlX3RvOiBUaGUgYWJzb2x1dGUgcGF0aCB3ZSdyZSByZWxhdGl2ZSB0by4KKyAgICBS
ZXR1cm5zOgorICAgICAgICBBIHJlbGF0aXZlIHBhdGggdG8gZmlsZW5hbWUgb3IgTm9uZS4KKyAg
ICAiIiIKKyAgICBsYXlvdXRfdGVzdF9kaXIgPSBvcy5wYXRoLmpvaW4oc2NtLmZpbmRfY2hlY2tv
dXRfcm9vdCgpLCAnTGF5b3V0VGVzdHMnKQorICAgIGFic19wYXRoID0gb3MucGF0aC5qb2luKGxh
eW91dF90ZXN0X2RpciwgZmlsZW5hbWUpCisgICAgcGF0aCA9IHJlbHBhdGgoYWJzX3BhdGgsIHJl
bGF0aXZlX3RvKQorICAgICMgSWYgd2UncmUgaW4gdGhlIGxheW91dCB0ZXN0IGRpcmVjdG9yeSwg
b25seSByZXR1cm4gcmVzdWx0cyB0aGF0IGFyZSBiZWxvdworICAgICMgd2hlcmUgdGhlIHRvb2wg
d2FzIHJ1biBmcm9tLgorICAgIGlmIChyZWxhdGl2ZV90by5zdGFydHN3aXRoKGxheW91dF90ZXN0
X2RpcikgYW5kIHBhdGguc3RhcnRzd2l0aCgnLi4nKSk6CisgICAgICAgIHJldHVybiBOb25lCisg
ICAgcmV0dXJuIHBhdGgKKworCitkZWYgZmluZF9kdXBzKGhhc2hlcywgcG9ydF9mYWxsYmFja3Ms
IHJlbGF0aXZlX3RvKToKICAgICAiIiJZaWVsZHMgaW5mbyBhYm91dCByZWR1bmRhbnQgdGVzdCBl
eHBlY3RhdGlvbnMuCiAgICAgQXJnczoKICAgICAgICAgaGFzaGVzOiBhIGxpc3Qgb2YgaGFzaGVz
IGFzIHJldHVybmVkIGJ5IGNsdXN0ZXJfZmlsZV9oYXNoZXMuCi0gICAgICAgIHBvcnRfZmFsbGJh
Y2tzOiBhIGxpc3Qgb2YgZmFsbGJhY2sgaW5mb3JtYXRpb24gYXMgcmV0dXJuZWQgYnkgZ2V0X3Bv
cnRfZmFsbGJhY2tzLgorICAgICAgICBwb3J0X2ZhbGxiYWNrczogYSBsaXN0IG9mIGZhbGxiYWNr
IGluZm9ybWF0aW9uIGFzIHJldHVybmVkIGJ5CisgICAgICAgICAgICBnZXRfcG9ydF9mYWxsYmFj
a3MuCisgICAgICAgIHJlbGF0aXZlX3RvOiB0aGUgZGlyZWN0b3J5IHRoYXQgd2Ugd2FudCB0aGUg
cmVzdWx0cyByZWxhdGl2ZSB0bwogICAgIFJldHVybnM6CiAgICAgICAgIGEgdHVwbGUgY29udGFp
bmluZyAodGVzdCwgcGxhdGZvcm0sIGZhbGxiYWNrLCBwbGF0Zm9ybXMpCiAgICAgIiIiCkBAIC0x
NzYsMTMgKzIyMCwyMCBAQCBkZWYgZmluZF9kdXBzKGhhc2hlcywgcG9ydF9mYWxsYmFja3MpOgog
ICAgICAgICAjIFNlZSBpZiBhbnkgb2YgdGhlIHBsYXRmb3JtcyBhcmUgcmVkdW5kYW50IHdpdGgg
ZWFjaCBvdGhlci4KICAgICAgICAgZm9yIHBsYXRmb3JtIGluIHBsYXRmb3Jtcy5rZXlzKCk6CiAg
ICAgICAgICAgICBmb3IgZmFsbGJhY2sgaW4gcG9ydF9mYWxsYmFja3NbcGxhdGZvcm1dOgotICAg
ICAgICAgICAgICAgIGlmIGZhbGxiYWNrIGluIHBsYXRmb3Jtcy5rZXlzKCk6Ci0gICAgICAgICAg
ICAgICAgICAgICMgV2UgaGF2ZSB0byB2ZXJpZnkgdGhhdCB0aGVyZSBpc24ndCBhbiBpbnRlcm1l
ZGlhdGUgcmVzdWx0Ci0gICAgICAgICAgICAgICAgICAgICMgdGhhdCBjYXVzZXMgdGhpcyBkdXBs
aWNhdGUgaGFzaCB0byBleGlzdC4KLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IGhhc19pbnRl
cm1lZGlhdGVfcmVzdWx0cyh0ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRf
ZmFsbGJhY2tzW3BsYXRmb3JtXSwgZmFsbGJhY2spOgotICAgICAgICAgICAgICAgICAgICAgICAg
cGF0aCA9IG9zLnBhdGguam9pbignTGF5b3V0VGVzdHMnLCBwbGF0Zm9ybXNbcGxhdGZvcm1dKQot
ICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGVzdCwgcGxhdGZvcm0sIGZhbGxiYWNrLCBw
YXRoCisgICAgICAgICAgICAgICAgaWYgZmFsbGJhY2sgbm90IGluIHBsYXRmb3Jtcy5rZXlzKCk6
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgIyBXZSBoYXZl
IHRvIHZlcmlmeSB0aGF0IHRoZXJlIGlzbid0IGFuIGludGVybWVkaWF0ZSByZXN1bHQKKyAgICAg
ICAgICAgICAgICAjIHRoYXQgY2F1c2VzIHRoaXMgZHVwbGljYXRlIGhhc2ggdG8gZXhpc3QuCisg
ICAgICAgICAgICAgICAgaWYgaGFzX2ludGVybWVkaWF0ZV9yZXN1bHRzKHRlc3QsIHBvcnRfZmFs
bGJhY2tzW3BsYXRmb3JtXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmFsbGJhY2spOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAg
ICAgICAgICMgV2UgcHJpbnQgdGhlIHJlbGF0aXZlIHBhdGggc28gaXQncyBlYXN5IHRvIHBpcGUg
dGhlIHJlc3VsdHMKKyAgICAgICAgICAgICAgICAjIHRvIHhhcmdzIHJtLgorICAgICAgICAgICAg
ICAgIHBhdGggPSBnZXRfcmVsYXRpdmVfdGVzdF9wYXRoKHBsYXRmb3Jtc1twbGF0Zm9ybV0sIHJl
bGF0aXZlX3RvKQorICAgICAgICAgICAgICAgIGlmIG5vdCBwYXRoOgorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHlpZWxkIHsndGVzdCc6IHRlc3QsICdwbGF0
Zm9ybSc6IHBsYXRmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAnZmFsbGJhY2snOiBmYWxs
YmFjaywgJ3BhdGgnOiBwYXRofQogCiAKIGRlZiBkZWR1cGxpY2F0ZShnbG9iX3BhdHRlcm4pOgpA
QCAtMTkyLDcgKzI0MywxMSBAQCBkZWYgZGVkdXBsaWNhdGUoZ2xvYl9wYXR0ZXJuKToKICAgICBS
ZXR1cm5zOgogICAgICAgICBhIGRpY3Rpb25hcnkgY29udGFpbmluZyB0ZXN0LCBwYXRoLCBwbGF0
Zm9ybSBhbmQgZmFsbGJhY2suCiAgICAgIiIiCi0gICAgZmFsbGJhY2tzID0gcG9ydF9mYWxsYmFj
a3MoKQotICAgIGhhc2hlcyA9IGNsdXN0ZXJfZmlsZV9oYXNoZXMoZ2xvYl9wYXR0ZXJuKQotICAg
IHJldHVybiBbeyd0ZXN0JzogdGVzdCwgJ3BhdGgnOiBwYXRoLCAncGxhdGZvcm0nOiBwbGF0Zm9y
bSwgJ2ZhbGxiYWNrJzogZmFsbGJhY2t9Ci0gICAgICAgICAgICAgZm9yIHRlc3QsIHBsYXRmb3Jt
LCBmYWxsYmFjaywgcGF0aCBpbiBmaW5kX2R1cHMoaGFzaGVzLCBmYWxsYmFja3MpXQorICAgIGN1
cnJlbnRfZGlyID0gb3MuZ2V0Y3dkKCkKKyAgICB0cnk6CisgICAgICAgIG9zLmNoZGlyKHNjbS5m
aW5kX2NoZWNrb3V0X3Jvb3QoKSkKKyAgICAgICAgZmFsbGJhY2tzID0gcG9ydF9mYWxsYmFja3Mo
KQorICAgICAgICBoYXNoZXMgPSBjbHVzdGVyX2ZpbGVfaGFzaGVzKGdsb2JfcGF0dGVybikKKyAg
ICAgICAgcmV0dXJuIGxpc3QoZmluZF9kdXBzKGhhc2hlcywgZmFsbGJhY2tzLCBjdXJyZW50X2Rp
cikpCisgICAgZmluYWxseToKKyAgICAgICAgb3MuY2hkaXIoY3VycmVudF9kaXIpCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0
ZV90ZXN0c191bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5CmluZGV4IGJlMmUzODEyZWM5MWY4
NzI5M2EwNGM1ODQ0NzE0YzcyMWNhODA5NTYuLjMwNDQ0ODcxYjljMmQwNDQxZTUzOWY3NGIwN2Ix
ZDE4MzFlYTk2NWIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0
LnB5CkBAIC0xODYsMyArMTg2LDIyIEBAIGNsYXNzIExpc3REdXBsaWNhdGVzVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFsbGJhY2snOiAnY2hy
b21pdW0td2luJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybSc6ICdjaHJv
bWl1bS1saW51eCd9LAogICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbMF0pCisKKyAg
ICBkZWYgdGVzdF9nZXRfcmVsYXRpdmVfdGVzdF9wYXRoKHNlbGYpOgorICAgICAgICBjaGVja291
dF9yb290ID0gc2NtLmZpbmRfY2hlY2tvdXRfcm9vdCgpCisgICAgICAgIGxheW91dF90ZXN0X2Rp
ciA9IG9zLnBhdGguam9pbihjaGVja291dF9yb290LCAnTGF5b3V0VGVzdHMnKQorICAgICAgICB0
ZXN0X2Nhc2VzID0gKAorICAgICAgICAgICAgKCdwbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywKKyAg
ICAgICAgICAgICAoJ3BsYXRmb3JtL21hYy90ZXN0Lmh0bWwnLCBsYXlvdXRfdGVzdF9kaXIpKSwK
KyAgICAgICAgICAgICgnTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3Rlc3QuaHRtbCcsCisgICAg
ICAgICAgICAgKCdwbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywgY2hlY2tvdXRfcm9vdCkpLAorICAg
ICAgICAgICAgKCcuLi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywKKyAgICAg
ICAgICAgICAoJ3BsYXRmb3JtL21hYy90ZXN0Lmh0bWwnLCBvcy5wYXRoLmpvaW4oY2hlY2tvdXRf
cm9vdCwgJ1dlYkNvcmUnKSkpLAorICAgICAgICAgICAgKCd0ZXN0Lmh0bWwnLAorICAgICAgICAg
ICAgICgncGxhdGZvcm0vbWFjL3Rlc3QuaHRtbCcsIG9zLnBhdGguam9pbihsYXlvdXRfdGVzdF9k
aXIsICdwbGF0Zm9ybS9tYWMnKSkpLAorICAgICAgICAgICAgKE5vbmUsCisgICAgICAgICAgICAg
KCdwbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywgb3MucGF0aC5qb2luKGxheW91dF90ZXN0X2Rpciwg
J3BsYXRmb3JtL3dpbicpKSksCisgICAgICAgICkKKyAgICAgICAgZm9yIGV4cGVjdGVkLCBpbnB1
dHMgaW4gdGVzdF9jYXNlczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVkdXBsaWNhdGVfdGVzdHMuZ2V0X3Jl
bGF0aXZlX3Rlc3RfcGF0aCgqaW5wdXRzKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67250</attachid>
            <date>2010-09-10 15:44:11 -0700</date>
            <delta_ts>2010-09-10 15:48:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44709-20100910154203.patch</filename>
            <type>text/plain</type>
            <size>4420</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmNjJmODdlN2I5Y2VmNmU4ZDllNWMyNDFhODY2MjA5NmRmOTNmMjE1Li5jOGM2ODY4
Njg2MWIxNjgzNzlmZTQyY2E5YTY3OTg1NDBlMmRiZTVmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjYgQEAK
IDIwMTAtMDktMTAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkZWR1cGxpY2F0ZS10ZXN0cyBz
aG91bGQgYmUgcnVubmFibGUgZnJvbSBhbnkgV2ViS2l0IGRpcmVjdG9yeQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MDkKKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0
ZXN0LnB5OgorCisyMDEwLTA5LTEwICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY3MjQxLgorICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82NzI0MQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MDkKKworICAgICAgICBBY2NpZGVudGFsbHkgY29t
bWl0dGVkLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBs
aWNhdGVfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
ZGVkdXBsaWNhdGVfdGVzdHNfdW5pdHRlc3QucHk6CisKKzIwMTAtMDktMTAgIFRvbnkgQ2hhbmcg
IDx0b255QGNocm9taXVtLm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgog
CiAgICAgICAgIGRlZHVwbGljYXRlLXRlc3RzIHNob3VsZCBiZSBydW5uYWJsZSBmcm9tIGFueSBX
ZWJLaXQgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0cy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5CmluZGV4IDI0YmNjMmYy
MGQwY2ZmMzBkOThlMGQ0OThiYTZhYjQwZDkxZTlmZjguLjU1NDdhYTFiZDY5ZTUyNTk4MDNiZGFi
YzdkODMyYWNiMjdhODM0MWMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5CkBAIC0zOSw2
ICszOSw3IEBAIGltcG9ydCByZQogaW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20g
YXMgc2NtCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgYXMgZXhlY3V0
aXZlCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d1dGlscyBhcyBsb2d1dGlscwor
aW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3NwYXRoIGFzIG9zcGF0aAogaW1wb3J0IHdl
YmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgYXMgcG9ydF9mYWN0b3J5CiAKIF9sb2cg
PSBsb2d1dGlscy5nZXRfbG9nZ2VyKF9fZmlsZV9fKQpAQCAtNDYsMjQgKzQ3LDYgQEAgX2xvZyA9
IGxvZ3V0aWxzLmdldF9sb2dnZXIoX19maWxlX18pCiBfQkFTRV9QTEFURk9STSA9ICdiYXNlJwog
CiAKLWRlZiByZWxwYXRoKGFic19wYXRoLCByZWxhdGl2ZV90byk6Ci0gICAgIiIiQ3JlYXRlIGEg
cmVsYXRpdmUgcGF0aCBmcm9tIHJlbGF0aXZlX3RvIHRvIGFic19wYXRoLgotICAgIEFyZ3M6Ci0g
ICAgICAgIGFic19wYXRoOiBUaGUgdGFyZ2V0IGZpbGUgKG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0
aCkuCi0gICAgICAgIHJlbGF0aXZlX3RvOiBUaGUgZGlyZWN0b3J5IHRvIGJlIHJlbGF0aXZlIHRv
IChtdXN0IGFsc28gYmUgYW4gYWJzb2x1dGUKLSAgICAgICAgICAgIHBhdGgpLgotICAgIFJldHVy
bnM6Ci0gICAgICAgIEEgcmVsYXRpdmUgcGF0aCB0byBhYnNfcGF0aC4iIiIKLSAgICBhYnNfcGF0
aF90b2tlbnMgPSBvcy5wYXRoLm5vcm1wYXRoKGFic19wYXRoKS5zcGxpdChvcy5wYXRoLnNlcCkK
LSAgICByZWxhdGl2ZV90b190b2tlbnMgPSBvcy5wYXRoLm5vcm1wYXRoKHJlbGF0aXZlX3RvKS5z
cGxpdChvcy5wYXRoLnNlcCkKLSAgICB3aGlsZSAoYWJzX3BhdGhfdG9rZW5zIGFuZCByZWxhdGl2
ZV90b190b2tlbnMgYW5kCi0gICAgICAgICAgIGFic19wYXRoX3Rva2Vuc1swXSA9PSByZWxhdGl2
ZV90b190b2tlbnNbMF0pOgotICAgICAgICBhYnNfcGF0aF90b2tlbnMucG9wKDApCi0gICAgICAg
IHJlbGF0aXZlX3RvX3Rva2Vucy5wb3AoMCkKLSAgICByZXN1bHRfcGF0aCA9IChsZW4ocmVsYXRp
dmVfdG9fdG9rZW5zKSAqIFsiLi4iXSkgKyBhYnNfcGF0aF90b2tlbnMKLSAgICByZXR1cm4gb3Mu
cGF0aC5zZXAuam9pbihyZXN1bHRfcGF0aCkKLQotCiBkZWYgcG9ydF9mYWxsYmFja3MoKToKICAg
ICAiIiJHZXQgdGhlIHBvcnQgZmFsbGJhY2sgaW5mb3JtYXRpb24uCiAgICAgUmV0dXJuczoKQEAg
LTE5MCwxMSArMTczLDEwIEBAIGRlZiBnZXRfcmVsYXRpdmVfdGVzdF9wYXRoKGZpbGVuYW1lLCBy
ZWxhdGl2ZV90byk6CiAgICAgIiIiCiAgICAgbGF5b3V0X3Rlc3RfZGlyID0gb3MucGF0aC5qb2lu
KHNjbS5maW5kX2NoZWNrb3V0X3Jvb3QoKSwgJ0xheW91dFRlc3RzJykKICAgICBhYnNfcGF0aCA9
IG9zLnBhdGguam9pbihsYXlvdXRfdGVzdF9kaXIsIGZpbGVuYW1lKQotICAgIHBhdGggPSByZWxw
YXRoKGFic19wYXRoLCByZWxhdGl2ZV90bykKLSAgICAjIElmIHdlJ3JlIGluIHRoZSBsYXlvdXQg
dGVzdCBkaXJlY3RvcnksIG9ubHkgcmV0dXJuIHJlc3VsdHMgdGhhdCBhcmUgYmVsb3cKLSAgICAj
IHdoZXJlIHRoZSB0b29sIHdhcyBydW4gZnJvbS4KLSAgICBpZiAocmVsYXRpdmVfdG8uc3RhcnRz
d2l0aChsYXlvdXRfdGVzdF9kaXIpIGFuZCBwYXRoLnN0YXJ0c3dpdGgoJy4uJykpOgotICAgICAg
ICByZXR1cm4gTm9uZQorICAgICMgb3NwYXRoLnJlbHBhdGggcmV0dXJucyBOb25lIGlmIGFic19w
YXRoIGlzIG5vdCBiZWxvdyByZWxhdGl2ZV90by4gIFRoaXMKKyAgICAjIG1lYW5zIHdlIG9ubHkg
cmV0dXJuIHJlc3VsdHMgdGhhdCBhcmUgYmVsb3cgd2hlcmUgdGhlIHRvb2wgd2FzIHJ1biBmcm9t
LgorICAgIHBhdGggPSBvc3BhdGgucmVscGF0aChvcy5wYXRoLm5vcm1wYXRoKGFic19wYXRoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5ub3JtcGF0aChyZWxhdGl2ZV90bykp
CiAgICAgcmV0dXJuIHBhdGgKIAogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0c191bml0dGVzdC5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3Vu
aXR0ZXN0LnB5CmluZGV4IDMwNDQ0ODcxYjljMmQwNDQxZTUzOWY3NGIwN2IxZDE4MzFlYTk2NWIu
LmJiOTYwNGY1YzUwMmJhYmY3MTMyYjAwMDcwOTkyMzhlZjU1OThhOWEgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3Rz
X3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5CkBAIC0xOTUsNyArMTk1LDcgQEAgY2xh
c3MgTGlzdER1cGxpY2F0ZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAo
J3BsYXRmb3JtL21hYy90ZXN0Lmh0bWwnLCBsYXlvdXRfdGVzdF9kaXIpKSwKICAgICAgICAgICAg
ICgnTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3Rlc3QuaHRtbCcsCiAgICAgICAgICAgICAgKCdw
bGF0Zm9ybS9tYWMvdGVzdC5odG1sJywgY2hlY2tvdXRfcm9vdCkpLAotICAgICAgICAgICAgKCcu
Li9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywKKyAgICAgICAgICAgIChOb25l
LAogICAgICAgICAgICAgICgncGxhdGZvcm0vbWFjL3Rlc3QuaHRtbCcsIG9zLnBhdGguam9pbihj
aGVja291dF9yb290LCAnV2ViQ29yZScpKSksCiAgICAgICAgICAgICAoJ3Rlc3QuaHRtbCcsCiAg
ICAgICAgICAgICAgKCdwbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywgb3MucGF0aC5qb2luKGxheW91
dF90ZXN0X2RpciwgJ3BsYXRmb3JtL21hYycpKSksCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67251</attachid>
            <date>2010-09-10 15:48:06 -0700</date>
            <delta_ts>2010-09-10 15:59:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44709-20100910154557.patch</filename>
            <type>text/plain</type>
            <size>7430</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxMWY4N2M5OWEwM2ZjMzY2MWVkMTU2NmM4MjUwZDA3ZDFmMjExYjdiLi5jOGM2ODY4
Njg2MWIxNjgzNzlmZTQyY2E5YTY3OTg1NDBlMmRiZTVmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAK
IDIwMTAtMDktMTAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkZWR1cGxpY2F0ZS10ZXN0cyBz
aG91bGQgYmUgcnVubmFibGUgZnJvbSBhbnkgV2ViS2l0IGRpcmVjdG9yeQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MDkKKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0
ZXN0LnB5OgorCisyMDEwLTA5LTEwICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY3MjQxLgogICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82NzI0MQogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MDkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHMucHkK
aW5kZXggYzU0M2Q5MTgzYTQwNmU3ODcxNDIwMmU4M2M5OTU2NTQ1MjM1NzQwOS4uNTU0N2FhMWJk
NjllNTI1OTgwM2JkYWJjN2Q4MzJhY2IyN2E4MzQxYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHMucHkKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVz
dHMucHkKQEAgLTM2LDggKzM2LDEwIEBAIGltcG9ydCBvcwogaW1wb3J0IHN1YnByb2Nlc3MKIGlt
cG9ydCBzeXMKIGltcG9ydCByZQoraW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20g
YXMgc2NtCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgYXMgZXhlY3V0
aXZlCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d1dGlscyBhcyBsb2d1dGlscwor
aW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3NwYXRoIGFzIG9zcGF0aAogaW1wb3J0IHdl
YmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgYXMgcG9ydF9mYWN0b3J5CiAKIF9sb2cg
PSBsb2d1dGlscy5nZXRfbG9nZ2VyKF9fZmlsZV9fKQpAQCAtNTYsNyArNTgsOCBAQCBkZWYgcG9y
dF9mYWxsYmFja3MoKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcGxhdGZvcm1zID0gcG9y
dF9mYWN0b3J5LmdldChwb3J0X25hbWUpLmJhc2VsaW5lX3NlYXJjaF9wYXRoKCkKICAgICAgICAg
ZXhjZXB0IE5vdEltcGxlbWVudGVkRXJyb3I6Ci0gICAgICAgICAgICBfbG9nLmVycm9yKCInJXMn
IGxhY2tzIGJhc2VsaW5lX3NlYXJjaF9wYXRoKCksIHBsZWFzZSBmaXguIiAlIHBvcnRfbmFtZSkK
KyAgICAgICAgICAgIF9sb2cuZXJyb3IoIiclcycgbGFja3MgYmFzZWxpbmVfc2VhcmNoX3BhdGgo
KSwgcGxlYXNlIGZpeC4iCisgICAgICAgICAgICAgICAgICAgICAgICUgcG9ydF9uYW1lKQogICAg
ICAgICAgICAgZmFsbGJhY2tzW3BvcnRfbmFtZV0gPSBbX0JBU0VfUExBVEZPUk1dCiAgICAgICAg
ICAgICBjb250aW51ZQogICAgICAgICBmYWxsYmFja3NbcG9ydF9uYW1lXSA9IFtvcy5wYXRoLmJh
c2VuYW1lKHApIGZvciBwIGluIHBsYXRmb3Jtc11bMTpdCkBAIC0xNTYsMTEgKzE1OSwzNCBAQCBk
ZWYgaGFzX2ludGVybWVkaWF0ZV9yZXN1bHRzKHRlc3QsIGZhbGxiYWNrcywgbWF0Y2hpbmdfcGxh
dGZvcm0sCiAgICAgcmV0dXJuIEZhbHNlCiAKIAotZGVmIGZpbmRfZHVwcyhoYXNoZXMsIHBvcnRf
ZmFsbGJhY2tzKToKK2RlZiBnZXRfcmVsYXRpdmVfdGVzdF9wYXRoKGZpbGVuYW1lLCByZWxhdGl2
ZV90byk6CisgICAgIiIiQ29uc3RydWN0cyBhIHJlbGF0aXZlIHBhdGggdG8gfGZpbGVuYW1lfCBm
cm9tIHxyZWxhdGl2ZV90b3wuICBBbHNvLCBpZgorICAgIHxyZWxhdGl2ZV90b3wgaXMgYSBzdWIg
ZGlyZWN0b3J5IG9mIHRoZSBsYXlvdXQgdGVzdCBkaXJlY3RvcnkgYW5kCisgICAgfGZpbGVuYW1l
fCBpcyBub3QgaW4gfHJlbGF0aXZlX3RvfCwgcmV0dXJuIE5vbmUuICBUaGlzIGxldHMgdXMgZmls
dGVyCisgICAgdGhlIHJlc3VsdHMgdG8gb25seSBzaG93IHJlc3VsdHMgdGhhdCBhcmUgdW5kZXIg
d2hlcmUgdGhlIHNjcmlwdCB3YXMgcnVuCisgICAgZnJvbS4KKyAgICBBcmdzOgorICAgICAgICBm
aWxlbmFtZTogVGhlIHRlc3QgZmlsZSB3ZSdyZSB0cnlpbmcgdG8gZ2V0IGEgcmVsYXRpdmUgcGF0
aCB0by4KKyAgICAgICAgcmVsYXRpdmVfdG86IFRoZSBhYnNvbHV0ZSBwYXRoIHdlJ3JlIHJlbGF0
aXZlIHRvLgorICAgIFJldHVybnM6CisgICAgICAgIEEgcmVsYXRpdmUgcGF0aCB0byBmaWxlbmFt
ZSBvciBOb25lLgorICAgICIiIgorICAgIGxheW91dF90ZXN0X2RpciA9IG9zLnBhdGguam9pbihz
Y20uZmluZF9jaGVja291dF9yb290KCksICdMYXlvdXRUZXN0cycpCisgICAgYWJzX3BhdGggPSBv
cy5wYXRoLmpvaW4obGF5b3V0X3Rlc3RfZGlyLCBmaWxlbmFtZSkKKyAgICAjIG9zcGF0aC5yZWxw
YXRoIHJldHVybnMgTm9uZSBpZiBhYnNfcGF0aCBpcyBub3QgYmVsb3cgcmVsYXRpdmVfdG8uICBU
aGlzCisgICAgIyBtZWFucyB3ZSBvbmx5IHJldHVybiByZXN1bHRzIHRoYXQgYXJlIGJlbG93IHdo
ZXJlIHRoZSB0b29sIHdhcyBydW4gZnJvbS4KKyAgICBwYXRoID0gb3NwYXRoLnJlbHBhdGgob3Mu
cGF0aC5ub3JtcGF0aChhYnNfcGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBh
dGgubm9ybXBhdGgocmVsYXRpdmVfdG8pKQorICAgIHJldHVybiBwYXRoCisKKworZGVmIGZpbmRf
ZHVwcyhoYXNoZXMsIHBvcnRfZmFsbGJhY2tzLCByZWxhdGl2ZV90byk6CiAgICAgIiIiWWllbGRz
IGluZm8gYWJvdXQgcmVkdW5kYW50IHRlc3QgZXhwZWN0YXRpb25zLgogICAgIEFyZ3M6CiAgICAg
ICAgIGhhc2hlczogYSBsaXN0IG9mIGhhc2hlcyBhcyByZXR1cm5lZCBieSBjbHVzdGVyX2ZpbGVf
aGFzaGVzLgotICAgICAgICBwb3J0X2ZhbGxiYWNrczogYSBsaXN0IG9mIGZhbGxiYWNrIGluZm9y
bWF0aW9uIGFzIHJldHVybmVkIGJ5IGdldF9wb3J0X2ZhbGxiYWNrcy4KKyAgICAgICAgcG9ydF9m
YWxsYmFja3M6IGEgbGlzdCBvZiBmYWxsYmFjayBpbmZvcm1hdGlvbiBhcyByZXR1cm5lZCBieQor
ICAgICAgICAgICAgZ2V0X3BvcnRfZmFsbGJhY2tzLgorICAgICAgICByZWxhdGl2ZV90bzogdGhl
IGRpcmVjdG9yeSB0aGF0IHdlIHdhbnQgdGhlIHJlc3VsdHMgcmVsYXRpdmUgdG8KICAgICBSZXR1
cm5zOgogICAgICAgICBhIHR1cGxlIGNvbnRhaW5pbmcgKHRlc3QsIHBsYXRmb3JtLCBmYWxsYmFj
aywgcGxhdGZvcm1zKQogICAgICIiIgpAQCAtMTc2LDEzICsyMDIsMjAgQEAgZGVmIGZpbmRfZHVw
cyhoYXNoZXMsIHBvcnRfZmFsbGJhY2tzKToKICAgICAgICAgIyBTZWUgaWYgYW55IG9mIHRoZSBw
bGF0Zm9ybXMgYXJlIHJlZHVuZGFudCB3aXRoIGVhY2ggb3RoZXIuCiAgICAgICAgIGZvciBwbGF0
Zm9ybSBpbiBwbGF0Zm9ybXMua2V5cygpOgogICAgICAgICAgICAgZm9yIGZhbGxiYWNrIGluIHBv
cnRfZmFsbGJhY2tzW3BsYXRmb3JtXToKLSAgICAgICAgICAgICAgICBpZiBmYWxsYmFjayBpbiBw
bGF0Zm9ybXMua2V5cygpOgotICAgICAgICAgICAgICAgICAgICAjIFdlIGhhdmUgdG8gdmVyaWZ5
IHRoYXQgdGhlcmUgaXNuJ3QgYW4gaW50ZXJtZWRpYXRlIHJlc3VsdAotICAgICAgICAgICAgICAg
ICAgICAjIHRoYXQgY2F1c2VzIHRoaXMgZHVwbGljYXRlIGhhc2ggdG8gZXhpc3QuCi0gICAgICAg
ICAgICAgICAgICAgIGlmIG5vdCBoYXNfaW50ZXJtZWRpYXRlX3Jlc3VsdHModGVzdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwb3J0X2ZhbGxiYWNrc1twbGF0Zm9ybV0sIGZhbGxiYWNr
KToKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oJ0xheW91dFRl
c3RzJywgcGxhdGZvcm1zW3BsYXRmb3JtXSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxk
IHRlc3QsIHBsYXRmb3JtLCBmYWxsYmFjaywgcGF0aAorICAgICAgICAgICAgICAgIGlmIGZhbGxi
YWNrIG5vdCBpbiBwbGF0Zm9ybXMua2V5cygpOgorICAgICAgICAgICAgICAgICAgICBjb250aW51
ZQorICAgICAgICAgICAgICAgICMgV2UgaGF2ZSB0byB2ZXJpZnkgdGhhdCB0aGVyZSBpc24ndCBh
biBpbnRlcm1lZGlhdGUgcmVzdWx0CisgICAgICAgICAgICAgICAgIyB0aGF0IGNhdXNlcyB0aGlz
IGR1cGxpY2F0ZSBoYXNoIHRvIGV4aXN0LgorICAgICAgICAgICAgICAgIGlmIGhhc19pbnRlcm1l
ZGlhdGVfcmVzdWx0cyh0ZXN0LCBwb3J0X2ZhbGxiYWNrc1twbGF0Zm9ybV0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrKToKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAjIFdlIHByaW50IHRoZSByZWxhdGl2
ZSBwYXRoIHNvIGl0J3MgZWFzeSB0byBwaXBlIHRoZSByZXN1bHRzCisgICAgICAgICAgICAgICAg
IyB0byB4YXJncyBybS4KKyAgICAgICAgICAgICAgICBwYXRoID0gZ2V0X3JlbGF0aXZlX3Rlc3Rf
cGF0aChwbGF0Zm9ybXNbcGxhdGZvcm1dLCByZWxhdGl2ZV90bykKKyAgICAgICAgICAgICAgICBp
ZiBub3QgcGF0aDoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAg
ICB5aWVsZCB7J3Rlc3QnOiB0ZXN0LCAncGxhdGZvcm0nOiBwbGF0Zm9ybSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgJ2ZhbGxiYWNrJzogZmFsbGJhY2ssICdwYXRoJzogcGF0aH0KIAogCiBkZWYg
ZGVkdXBsaWNhdGUoZ2xvYl9wYXR0ZXJuKToKQEAgLTE5Miw3ICsyMjUsMTEgQEAgZGVmIGRlZHVw
bGljYXRlKGdsb2JfcGF0dGVybik6CiAgICAgUmV0dXJuczoKICAgICAgICAgYSBkaWN0aW9uYXJ5
IGNvbnRhaW5pbmcgdGVzdCwgcGF0aCwgcGxhdGZvcm0gYW5kIGZhbGxiYWNrLgogICAgICIiIgot
ICAgIGZhbGxiYWNrcyA9IHBvcnRfZmFsbGJhY2tzKCkKLSAgICBoYXNoZXMgPSBjbHVzdGVyX2Zp
bGVfaGFzaGVzKGdsb2JfcGF0dGVybikKLSAgICByZXR1cm4gW3sndGVzdCc6IHRlc3QsICdwYXRo
JzogcGF0aCwgJ3BsYXRmb3JtJzogcGxhdGZvcm0sICdmYWxsYmFjayc6IGZhbGxiYWNrfQotICAg
ICAgICAgICAgIGZvciB0ZXN0LCBwbGF0Zm9ybSwgZmFsbGJhY2ssIHBhdGggaW4gZmluZF9kdXBz
KGhhc2hlcywgZmFsbGJhY2tzKV0KKyAgICBjdXJyZW50X2RpciA9IG9zLmdldGN3ZCgpCisgICAg
dHJ5OgorICAgICAgICBvcy5jaGRpcihzY20uZmluZF9jaGVja291dF9yb290KCkpCisgICAgICAg
IGZhbGxiYWNrcyA9IHBvcnRfZmFsbGJhY2tzKCkKKyAgICAgICAgaGFzaGVzID0gY2x1c3Rlcl9m
aWxlX2hhc2hlcyhnbG9iX3BhdHRlcm4pCisgICAgICAgIHJldHVybiBsaXN0KGZpbmRfZHVwcyho
YXNoZXMsIGZhbGxiYWNrcywgY3VycmVudF9kaXIpKQorICAgIGZpbmFsbHk6CisgICAgICAgIG9z
LmNoZGlyKGN1cnJlbnRfZGlyKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHNfdW5pdHRlc3QucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0c191bml0
dGVzdC5weQppbmRleCBiZTJlMzgxMmVjOTFmODcyOTNhMDRjNTg0NDcxNGM3MjFjYTgwOTU2Li5i
Yjk2MDRmNWM1MDJiYWJmNzEzMmIwMDA3MDk5MjM4ZWY1NTk4YTlhIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0c191
bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9kZWR1cGxpY2F0ZV90ZXN0c191bml0dGVzdC5weQpAQCAtMTg2LDMgKzE4NiwyMiBAQCBjbGFz
cyBMaXN0RHVwbGljYXRlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ2ZhbGxiYWNrJzogJ2Nocm9taXVtLXdpbicsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAncGxhdGZvcm0nOiAnY2hyb21pdW0tbGludXgnfSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0WzBdKQorCisgICAgZGVmIHRlc3RfZ2V0X3JlbGF0aXZlX3Rlc3Rf
cGF0aChzZWxmKToKKyAgICAgICAgY2hlY2tvdXRfcm9vdCA9IHNjbS5maW5kX2NoZWNrb3V0X3Jv
b3QoKQorICAgICAgICBsYXlvdXRfdGVzdF9kaXIgPSBvcy5wYXRoLmpvaW4oY2hlY2tvdXRfcm9v
dCwgJ0xheW91dFRlc3RzJykKKyAgICAgICAgdGVzdF9jYXNlcyA9ICgKKyAgICAgICAgICAgICgn
cGxhdGZvcm0vbWFjL3Rlc3QuaHRtbCcsCisgICAgICAgICAgICAgKCdwbGF0Zm9ybS9tYWMvdGVz
dC5odG1sJywgbGF5b3V0X3Rlc3RfZGlyKSksCisgICAgICAgICAgICAoJ0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy90ZXN0Lmh0bWwnLAorICAgICAgICAgICAgICgncGxhdGZvcm0vbWFjL3Rlc3Qu
aHRtbCcsIGNoZWNrb3V0X3Jvb3QpKSwKKyAgICAgICAgICAgIChOb25lLAorICAgICAgICAgICAg
ICgncGxhdGZvcm0vbWFjL3Rlc3QuaHRtbCcsIG9zLnBhdGguam9pbihjaGVja291dF9yb290LCAn
V2ViQ29yZScpKSksCisgICAgICAgICAgICAoJ3Rlc3QuaHRtbCcsCisgICAgICAgICAgICAgKCdw
bGF0Zm9ybS9tYWMvdGVzdC5odG1sJywgb3MucGF0aC5qb2luKGxheW91dF90ZXN0X2RpciwgJ3Bs
YXRmb3JtL21hYycpKSksCisgICAgICAgICAgICAoTm9uZSwKKyAgICAgICAgICAgICAoJ3BsYXRm
b3JtL21hYy90ZXN0Lmh0bWwnLCBvcy5wYXRoLmpvaW4obGF5b3V0X3Rlc3RfZGlyLCAncGxhdGZv
cm0vd2luJykpKSwKKyAgICAgICAgKQorICAgICAgICBmb3IgZXhwZWN0ZWQsIGlucHV0cyBpbiB0
ZXN0X2Nhc2VzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWR1cGxpY2F0ZV90ZXN0cy5nZXRfcmVsYXRpdmVf
dGVzdF9wYXRoKCppbnB1dHMpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67253</attachid>
            <date>2010-09-10 15:59:29 -0700</date>
            <delta_ts>2010-09-10 16:25:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44709-20100910155720.patch</filename>
            <type>text/plain</type>
            <size>7932</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxMWY4N2M5OWEwM2ZjMzY2MWVkMTU2NmM4MjUwZDA3ZDFmMjExYjdiLi5jOGM2ODY4
Njg2MWIxNjgzNzlmZTQyY2E5YTY3OTg1NDBlMmRiZTVmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAK
IDIwMTAtMDktMTAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkZWR1cGxpY2F0ZS10ZXN0cyBz
aG91bGQgYmUgcnVubmFibGUgZnJvbSBhbnkgV2ViS2l0IGRpcmVjdG9yeQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MDkKKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0
ZXN0LnB5OgorCisyMDEwLTA5LTEwICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY3MjQxLgogICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82NzI0MQogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MDkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHMucHkK
aW5kZXggYzU0M2Q5MTgzYTQwNmU3ODcxNDIwMmU4M2M5OTU2NTQ1MjM1NzQwOS4uMmYxMGU0NjM2
OGJiNTJkN2UyMmNhYjM0ZGIyNmVlMDdiYzVkZjA3MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHMucHkKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVz
dHMucHkKQEAgLTM2LDggKzM2LDEwIEBAIGltcG9ydCBvcwogaW1wb3J0IHN1YnByb2Nlc3MKIGlt
cG9ydCBzeXMKIGltcG9ydCByZQoraW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20g
YXMgc2NtCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgYXMgZXhlY3V0
aXZlCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d1dGlscyBhcyBsb2d1dGlscwor
aW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3NwYXRoIGFzIG9zcGF0aAogaW1wb3J0IHdl
YmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgYXMgcG9ydF9mYWN0b3J5CiAKIF9sb2cg
PSBsb2d1dGlscy5nZXRfbG9nZ2VyKF9fZmlsZV9fKQpAQCAtNTIsMTEgKzU0LDE0IEBAIGRlZiBw
b3J0X2ZhbGxiYWNrcygpOgogICAgICAgICBiYWNrIG9uLiAgQWxsIHBsYXRmb3JtcyBmYWxsIGJh
Y2sgb24gJ2Jhc2UnLgogICAgICIiIgogICAgIGZhbGxiYWNrcyA9IHtfQkFTRV9QTEFURk9STTog
W119Ci0gICAgZm9yIHBvcnRfbmFtZSBpbiBvcy5saXN0ZGlyKG9zLnBhdGguam9pbignTGF5b3V0
VGVzdHMnLCAncGxhdGZvcm0nKSk6CisgICAgcGxhdGZvcm1fZGlyID0gb3MucGF0aC5qb2luKHNj
bS5maW5kX2NoZWNrb3V0X3Jvb3QoKSwgJ0xheW91dFRlc3RzJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3BsYXRmb3JtJykKKyAgICBmb3IgcG9ydF9uYW1lIGluIG9zLmxpc3Rk
aXIocGxhdGZvcm1fZGlyKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcGxhdGZvcm1zID0g
cG9ydF9mYWN0b3J5LmdldChwb3J0X25hbWUpLmJhc2VsaW5lX3NlYXJjaF9wYXRoKCkKICAgICAg
ICAgZXhjZXB0IE5vdEltcGxlbWVudGVkRXJyb3I6Ci0gICAgICAgICAgICBfbG9nLmVycm9yKCIn
JXMnIGxhY2tzIGJhc2VsaW5lX3NlYXJjaF9wYXRoKCksIHBsZWFzZSBmaXguIiAlIHBvcnRfbmFt
ZSkKKyAgICAgICAgICAgIF9sb2cuZXJyb3IoIiclcycgbGFja3MgYmFzZWxpbmVfc2VhcmNoX3Bh
dGgoKSwgcGxlYXNlIGZpeC4iCisgICAgICAgICAgICAgICAgICAgICAgICUgcG9ydF9uYW1lKQog
ICAgICAgICAgICAgZmFsbGJhY2tzW3BvcnRfbmFtZV0gPSBbX0JBU0VfUExBVEZPUk1dCiAgICAg
ICAgICAgICBjb250aW51ZQogICAgICAgICBmYWxsYmFja3NbcG9ydF9uYW1lXSA9IFtvcy5wYXRo
LmJhc2VuYW1lKHApIGZvciBwIGluIHBsYXRmb3Jtc11bMTpdCkBAIC0xMDIsNyArMTA3LDggQEAg
ZGVmIGNsdXN0ZXJfZmlsZV9oYXNoZXMoZ2xvYl9wYXR0ZXJuKToKICAgICAjIEZpbGwgaW4gdGhl
IG1hcC4KICAgICBjbWQgPSAoJ2dpdCcsICdscy10cmVlJywgJy1yJywgJ0hFQUQnLCAnTGF5b3V0
VGVzdHMnKQogICAgIHRyeToKLSAgICAgICAgZ2l0X291dHB1dCA9IGV4ZWN1dGl2ZS5FeGVjdXRp
dmUoKS5ydW5fY29tbWFuZChjbWQpCisgICAgICAgIGdpdF9vdXRwdXQgPSBleGVjdXRpdmUuRXhl
Y3V0aXZlKCkucnVuX2NvbW1hbmQoY21kLAorICAgICAgICAgICAgY3dkPXNjbS5maW5kX2NoZWNr
b3V0X3Jvb3QoKSkKICAgICBleGNlcHQgT1NFcnJvciwgZToKICAgICAgICAgaWYgZS5lcnJubyA9
PSAyOiAgIyBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5LgogICAgICAgICAgICAgX2xvZy5lcnJv
cigiRXJyb3I6ICdObyBzdWNoIGZpbGUnIHdoZW4gcnVubmluZyBnaXQuIikKQEAgLTE1NiwxMSAr
MTYyLDM0IEBAIGRlZiBoYXNfaW50ZXJtZWRpYXRlX3Jlc3VsdHModGVzdCwgZmFsbGJhY2tzLCBt
YXRjaGluZ19wbGF0Zm9ybSwKICAgICByZXR1cm4gRmFsc2UKIAogCi1kZWYgZmluZF9kdXBzKGhh
c2hlcywgcG9ydF9mYWxsYmFja3MpOgorZGVmIGdldF9yZWxhdGl2ZV90ZXN0X3BhdGgoZmlsZW5h
bWUsIHJlbGF0aXZlX3RvKToKKyAgICAiIiJDb25zdHJ1Y3RzIGEgcmVsYXRpdmUgcGF0aCB0byB8
ZmlsZW5hbWV8IGZyb20gfHJlbGF0aXZlX3RvfC4gIEFsc28sIGlmCisgICAgfHJlbGF0aXZlX3Rv
fCBpcyBhIHN1YiBkaXJlY3Rvcnkgb2YgdGhlIGxheW91dCB0ZXN0IGRpcmVjdG9yeSBhbmQKKyAg
ICB8ZmlsZW5hbWV8IGlzIG5vdCBpbiB8cmVsYXRpdmVfdG98LCByZXR1cm4gTm9uZS4gIFRoaXMg
bGV0cyB1cyBmaWx0ZXIKKyAgICB0aGUgcmVzdWx0cyB0byBvbmx5IHNob3cgcmVzdWx0cyB0aGF0
IGFyZSB1bmRlciB3aGVyZSB0aGUgc2NyaXB0IHdhcyBydW4KKyAgICBmcm9tLgorICAgIEFyZ3M6
CisgICAgICAgIGZpbGVuYW1lOiBUaGUgdGVzdCBmaWxlIHdlJ3JlIHRyeWluZyB0byBnZXQgYSBy
ZWxhdGl2ZSBwYXRoIHRvLgorICAgICAgICByZWxhdGl2ZV90bzogVGhlIGFic29sdXRlIHBhdGgg
d2UncmUgcmVsYXRpdmUgdG8uCisgICAgUmV0dXJuczoKKyAgICAgICAgQSByZWxhdGl2ZSBwYXRo
IHRvIGZpbGVuYW1lIG9yIE5vbmUuCisgICAgIiIiCisgICAgbGF5b3V0X3Rlc3RfZGlyID0gb3Mu
cGF0aC5qb2luKHNjbS5maW5kX2NoZWNrb3V0X3Jvb3QoKSwgJ0xheW91dFRlc3RzJykKKyAgICBh
YnNfcGF0aCA9IG9zLnBhdGguam9pbihsYXlvdXRfdGVzdF9kaXIsIGZpbGVuYW1lKQorICAgICMg
b3NwYXRoLnJlbHBhdGggcmV0dXJucyBOb25lIGlmIGFic19wYXRoIGlzIG5vdCBiZWxvdyByZWxh
dGl2ZV90by4gIFRoaXMKKyAgICAjIG1lYW5zIHdlIG9ubHkgcmV0dXJuIHJlc3VsdHMgdGhhdCBh
cmUgYmVsb3cgd2hlcmUgdGhlIHRvb2wgd2FzIHJ1biBmcm9tLgorICAgIHBhdGggPSBvc3BhdGgu
cmVscGF0aChvcy5wYXRoLm5vcm1wYXRoKGFic19wYXRoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3MucGF0aC5ub3JtcGF0aChyZWxhdGl2ZV90bykpCisgICAgcmV0dXJuIHBhdGgKKwor
CitkZWYgZmluZF9kdXBzKGhhc2hlcywgcG9ydF9mYWxsYmFja3MsIHJlbGF0aXZlX3RvKToKICAg
ICAiIiJZaWVsZHMgaW5mbyBhYm91dCByZWR1bmRhbnQgdGVzdCBleHBlY3RhdGlvbnMuCiAgICAg
QXJnczoKICAgICAgICAgaGFzaGVzOiBhIGxpc3Qgb2YgaGFzaGVzIGFzIHJldHVybmVkIGJ5IGNs
dXN0ZXJfZmlsZV9oYXNoZXMuCi0gICAgICAgIHBvcnRfZmFsbGJhY2tzOiBhIGxpc3Qgb2YgZmFs
bGJhY2sgaW5mb3JtYXRpb24gYXMgcmV0dXJuZWQgYnkgZ2V0X3BvcnRfZmFsbGJhY2tzLgorICAg
ICAgICBwb3J0X2ZhbGxiYWNrczogYSBsaXN0IG9mIGZhbGxiYWNrIGluZm9ybWF0aW9uIGFzIHJl
dHVybmVkIGJ5CisgICAgICAgICAgICBnZXRfcG9ydF9mYWxsYmFja3MuCisgICAgICAgIHJlbGF0
aXZlX3RvOiB0aGUgZGlyZWN0b3J5IHRoYXQgd2Ugd2FudCB0aGUgcmVzdWx0cyByZWxhdGl2ZSB0
bwogICAgIFJldHVybnM6CiAgICAgICAgIGEgdHVwbGUgY29udGFpbmluZyAodGVzdCwgcGxhdGZv
cm0sIGZhbGxiYWNrLCBwbGF0Zm9ybXMpCiAgICAgIiIiCkBAIC0xNzYsMTMgKzIwNSwyMCBAQCBk
ZWYgZmluZF9kdXBzKGhhc2hlcywgcG9ydF9mYWxsYmFja3MpOgogICAgICAgICAjIFNlZSBpZiBh
bnkgb2YgdGhlIHBsYXRmb3JtcyBhcmUgcmVkdW5kYW50IHdpdGggZWFjaCBvdGhlci4KICAgICAg
ICAgZm9yIHBsYXRmb3JtIGluIHBsYXRmb3Jtcy5rZXlzKCk6CiAgICAgICAgICAgICBmb3IgZmFs
bGJhY2sgaW4gcG9ydF9mYWxsYmFja3NbcGxhdGZvcm1dOgotICAgICAgICAgICAgICAgIGlmIGZh
bGxiYWNrIGluIHBsYXRmb3Jtcy5rZXlzKCk6Ci0gICAgICAgICAgICAgICAgICAgICMgV2UgaGF2
ZSB0byB2ZXJpZnkgdGhhdCB0aGVyZSBpc24ndCBhbiBpbnRlcm1lZGlhdGUgcmVzdWx0Ci0gICAg
ICAgICAgICAgICAgICAgICMgdGhhdCBjYXVzZXMgdGhpcyBkdXBsaWNhdGUgaGFzaCB0byBleGlz
dC4KLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IGhhc19pbnRlcm1lZGlhdGVfcmVzdWx0cyh0
ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRfZmFsbGJhY2tzW3BsYXRmb3Jt
XSwgZmFsbGJhY2spOgotICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguam9p
bignTGF5b3V0VGVzdHMnLCBwbGF0Zm9ybXNbcGxhdGZvcm1dKQotICAgICAgICAgICAgICAgICAg
ICAgICAgeWllbGQgdGVzdCwgcGxhdGZvcm0sIGZhbGxiYWNrLCBwYXRoCisgICAgICAgICAgICAg
ICAgaWYgZmFsbGJhY2sgbm90IGluIHBsYXRmb3Jtcy5rZXlzKCk6CisgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgIyBXZSBoYXZlIHRvIHZlcmlmeSB0aGF0IHRo
ZXJlIGlzbid0IGFuIGludGVybWVkaWF0ZSByZXN1bHQKKyAgICAgICAgICAgICAgICAjIHRoYXQg
Y2F1c2VzIHRoaXMgZHVwbGljYXRlIGhhc2ggdG8gZXhpc3QuCisgICAgICAgICAgICAgICAgaWYg
aGFzX2ludGVybWVkaWF0ZV9yZXN1bHRzKHRlc3QsIHBvcnRfZmFsbGJhY2tzW3BsYXRmb3JtXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2spOgor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICMgV2UgcHJpbnQg
dGhlIHJlbGF0aXZlIHBhdGggc28gaXQncyBlYXN5IHRvIHBpcGUgdGhlIHJlc3VsdHMKKyAgICAg
ICAgICAgICAgICAjIHRvIHhhcmdzIHJtLgorICAgICAgICAgICAgICAgIHBhdGggPSBnZXRfcmVs
YXRpdmVfdGVzdF9wYXRoKHBsYXRmb3Jtc1twbGF0Zm9ybV0sIHJlbGF0aXZlX3RvKQorICAgICAg
ICAgICAgICAgIGlmIG5vdCBwYXRoOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAg
ICAgICAgICAgICAgIHlpZWxkIHsndGVzdCc6IHRlc3QsICdwbGF0Zm9ybSc6IHBsYXRmb3JtLAor
ICAgICAgICAgICAgICAgICAgICAgICAnZmFsbGJhY2snOiBmYWxsYmFjaywgJ3BhdGgnOiBwYXRo
fQogCiAKIGRlZiBkZWR1cGxpY2F0ZShnbG9iX3BhdHRlcm4pOgpAQCAtMTk0LDUgKzIzMCw0IEBA
IGRlZiBkZWR1cGxpY2F0ZShnbG9iX3BhdHRlcm4pOgogICAgICIiIgogICAgIGZhbGxiYWNrcyA9
IHBvcnRfZmFsbGJhY2tzKCkKICAgICBoYXNoZXMgPSBjbHVzdGVyX2ZpbGVfaGFzaGVzKGdsb2Jf
cGF0dGVybikKLSAgICByZXR1cm4gW3sndGVzdCc6IHRlc3QsICdwYXRoJzogcGF0aCwgJ3BsYXRm
b3JtJzogcGxhdGZvcm0sICdmYWxsYmFjayc6IGZhbGxiYWNrfQotICAgICAgICAgICAgIGZvciB0
ZXN0LCBwbGF0Zm9ybSwgZmFsbGJhY2ssIHBhdGggaW4gZmluZF9kdXBzKGhhc2hlcywgZmFsbGJh
Y2tzKV0KKyAgICByZXR1cm4gbGlzdChmaW5kX2R1cHMoaGFzaGVzLCBmYWxsYmFja3MsIG9zLmdl
dGN3ZCgpKSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHNfdW5pdHRlc3QucHkKaW5k
ZXggYmUyZTM4MTJlYzkxZjg3MjkzYTA0YzU4NDQ3MTRjNzIxY2E4MDk1Ni4uYmI5NjA0ZjVjNTAy
YmFiZjcxMzJiMDAwNzA5OTIzOGVmNTU5OGE5YSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHNfdW5pdHRlc3QucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNh
dGVfdGVzdHNfdW5pdHRlc3QucHkKQEAgLTE4NiwzICsxODYsMjIgQEAgY2xhc3MgTGlzdER1cGxp
Y2F0ZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdmYWxsYmFjayc6ICdjaHJvbWl1bS13aW4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3BsYXRmb3JtJzogJ2Nocm9taXVtLWxpbnV4J30sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdFswXSkKKworICAgIGRlZiB0ZXN0X2dldF9yZWxhdGl2ZV90ZXN0X3BhdGgoc2VsZik6
CisgICAgICAgIGNoZWNrb3V0X3Jvb3QgPSBzY20uZmluZF9jaGVja291dF9yb290KCkKKyAgICAg
ICAgbGF5b3V0X3Rlc3RfZGlyID0gb3MucGF0aC5qb2luKGNoZWNrb3V0X3Jvb3QsICdMYXlvdXRU
ZXN0cycpCisgICAgICAgIHRlc3RfY2FzZXMgPSAoCisgICAgICAgICAgICAoJ3BsYXRmb3JtL21h
Yy90ZXN0Lmh0bWwnLAorICAgICAgICAgICAgICgncGxhdGZvcm0vbWFjL3Rlc3QuaHRtbCcsIGxh
eW91dF90ZXN0X2RpcikpLAorICAgICAgICAgICAgKCdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
dGVzdC5odG1sJywKKyAgICAgICAgICAgICAoJ3BsYXRmb3JtL21hYy90ZXN0Lmh0bWwnLCBjaGVj
a291dF9yb290KSksCisgICAgICAgICAgICAoTm9uZSwKKyAgICAgICAgICAgICAoJ3BsYXRmb3Jt
L21hYy90ZXN0Lmh0bWwnLCBvcy5wYXRoLmpvaW4oY2hlY2tvdXRfcm9vdCwgJ1dlYkNvcmUnKSkp
LAorICAgICAgICAgICAgKCd0ZXN0Lmh0bWwnLAorICAgICAgICAgICAgICgncGxhdGZvcm0vbWFj
L3Rlc3QuaHRtbCcsIG9zLnBhdGguam9pbihsYXlvdXRfdGVzdF9kaXIsICdwbGF0Zm9ybS9tYWMn
KSkpLAorICAgICAgICAgICAgKE5vbmUsCisgICAgICAgICAgICAgKCdwbGF0Zm9ybS9tYWMvdGVz
dC5odG1sJywgb3MucGF0aC5qb2luKGxheW91dF90ZXN0X2RpciwgJ3BsYXRmb3JtL3dpbicpKSks
CisgICAgICAgICkKKyAgICAgICAgZm9yIGV4cGVjdGVkLCBpbnB1dHMgaW4gdGVzdF9jYXNlczoK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVkdXBsaWNhdGVfdGVzdHMuZ2V0X3JlbGF0aXZlX3Rlc3RfcGF0aCgq
aW5wdXRzKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67259</attachid>
            <date>2010-09-10 16:25:13 -0700</date>
            <delta_ts>2010-09-15 17:17:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44709-20100910162304.patch</filename>
            <type>text/plain</type>
            <size>7578</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxMWY4N2M5OWEwM2ZjMzY2MWVkMTU2NmM4MjUwZDA3ZDFmMjExYjdiLi5jOGM2ODY4
Njg2MWIxNjgzNzlmZTQyY2E5YTY3OTg1NDBlMmRiZTVmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAK
IDIwMTAtMDktMTAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkZWR1cGxpY2F0ZS10ZXN0cyBz
aG91bGQgYmUgcnVubmFibGUgZnJvbSBhbnkgV2ViS2l0IGRpcmVjdG9yeQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MDkKKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0
ZXN0LnB5OgorCisyMDEwLTA5LTEwICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY3MjQxLgogICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82NzI0MQogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MDkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHMucHkK
aW5kZXggYzU0M2Q5MTgzYTQwNmU3ODcxNDIwMmU4M2M5OTU2NTQ1MjM1NzQwOS4uMGI0Y2U0MGU1
NmQ4YTRlMDkxYjAyYTIwMWJjNzJjZTBmMjBiZWY3ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHMucHkKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVz
dHMucHkKQEAgLTM2LDggKzM2LDEwIEBAIGltcG9ydCBvcwogaW1wb3J0IHN1YnByb2Nlc3MKIGlt
cG9ydCBzeXMKIGltcG9ydCByZQoraW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20g
YXMgc2NtCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgYXMgZXhlY3V0
aXZlCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d1dGlscyBhcyBsb2d1dGlscwor
aW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3NwYXRoIGFzIG9zcGF0aAogaW1wb3J0IHdl
YmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgYXMgcG9ydF9mYWN0b3J5CiAKIF9sb2cg
PSBsb2d1dGlscy5nZXRfbG9nZ2VyKF9fZmlsZV9fKQpAQCAtNTIsMTEgKzU0LDE0IEBAIGRlZiBw
b3J0X2ZhbGxiYWNrcygpOgogICAgICAgICBiYWNrIG9uLiAgQWxsIHBsYXRmb3JtcyBmYWxsIGJh
Y2sgb24gJ2Jhc2UnLgogICAgICIiIgogICAgIGZhbGxiYWNrcyA9IHtfQkFTRV9QTEFURk9STTog
W119Ci0gICAgZm9yIHBvcnRfbmFtZSBpbiBvcy5saXN0ZGlyKG9zLnBhdGguam9pbignTGF5b3V0
VGVzdHMnLCAncGxhdGZvcm0nKSk6CisgICAgcGxhdGZvcm1fZGlyID0gb3MucGF0aC5qb2luKHNj
bS5maW5kX2NoZWNrb3V0X3Jvb3QoKSwgJ0xheW91dFRlc3RzJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3BsYXRmb3JtJykKKyAgICBmb3IgcG9ydF9uYW1lIGluIG9zLmxpc3Rk
aXIocGxhdGZvcm1fZGlyKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcGxhdGZvcm1zID0g
cG9ydF9mYWN0b3J5LmdldChwb3J0X25hbWUpLmJhc2VsaW5lX3NlYXJjaF9wYXRoKCkKICAgICAg
ICAgZXhjZXB0IE5vdEltcGxlbWVudGVkRXJyb3I6Ci0gICAgICAgICAgICBfbG9nLmVycm9yKCIn
JXMnIGxhY2tzIGJhc2VsaW5lX3NlYXJjaF9wYXRoKCksIHBsZWFzZSBmaXguIiAlIHBvcnRfbmFt
ZSkKKyAgICAgICAgICAgIF9sb2cuZXJyb3IoIiclcycgbGFja3MgYmFzZWxpbmVfc2VhcmNoX3Bh
dGgoKSwgcGxlYXNlIGZpeC4iCisgICAgICAgICAgICAgICAgICAgICAgICUgcG9ydF9uYW1lKQog
ICAgICAgICAgICAgZmFsbGJhY2tzW3BvcnRfbmFtZV0gPSBbX0JBU0VfUExBVEZPUk1dCiAgICAg
ICAgICAgICBjb250aW51ZQogICAgICAgICBmYWxsYmFja3NbcG9ydF9uYW1lXSA9IFtvcy5wYXRo
LmJhc2VuYW1lKHApIGZvciBwIGluIHBsYXRmb3Jtc11bMTpdCkBAIC0xMDIsNyArMTA3LDggQEAg
ZGVmIGNsdXN0ZXJfZmlsZV9oYXNoZXMoZ2xvYl9wYXR0ZXJuKToKICAgICAjIEZpbGwgaW4gdGhl
IG1hcC4KICAgICBjbWQgPSAoJ2dpdCcsICdscy10cmVlJywgJy1yJywgJ0hFQUQnLCAnTGF5b3V0
VGVzdHMnKQogICAgIHRyeToKLSAgICAgICAgZ2l0X291dHB1dCA9IGV4ZWN1dGl2ZS5FeGVjdXRp
dmUoKS5ydW5fY29tbWFuZChjbWQpCisgICAgICAgIGdpdF9vdXRwdXQgPSBleGVjdXRpdmUuRXhl
Y3V0aXZlKCkucnVuX2NvbW1hbmQoY21kLAorICAgICAgICAgICAgY3dkPXNjbS5maW5kX2NoZWNr
b3V0X3Jvb3QoKSkKICAgICBleGNlcHQgT1NFcnJvciwgZToKICAgICAgICAgaWYgZS5lcnJubyA9
PSAyOiAgIyBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5LgogICAgICAgICAgICAgX2xvZy5lcnJv
cigiRXJyb3I6ICdObyBzdWNoIGZpbGUnIHdoZW4gcnVubmluZyBnaXQuIikKQEAgLTE1NiwxMSAr
MTYyLDI3IEBAIGRlZiBoYXNfaW50ZXJtZWRpYXRlX3Jlc3VsdHModGVzdCwgZmFsbGJhY2tzLCBt
YXRjaGluZ19wbGF0Zm9ybSwKICAgICByZXR1cm4gRmFsc2UKIAogCi1kZWYgZmluZF9kdXBzKGhh
c2hlcywgcG9ydF9mYWxsYmFja3MpOgorZGVmIGdldF9yZWxhdGl2ZV90ZXN0X3BhdGgoZmlsZW5h
bWUsIHJlbGF0aXZlX3RvKToKKyAgICAiIiJDb25zdHJ1Y3RzIGEgcmVsYXRpdmUgcGF0aCB0byB8
ZmlsZW5hbWV8IGZyb20gfHJlbGF0aXZlX3RvfC4KKyAgICBBcmdzOgorICAgICAgICBmaWxlbmFt
ZTogVGhlIHRlc3QgZmlsZSB3ZSdyZSB0cnlpbmcgdG8gZ2V0IGEgcmVsYXRpdmUgcGF0aCB0by4K
KyAgICAgICAgcmVsYXRpdmVfdG86IFRoZSBhYnNvbHV0ZSBwYXRoIHdlJ3JlIHJlbGF0aXZlIHRv
LgorICAgIFJldHVybnM6CisgICAgICAgIEEgcmVsYXRpdmUgcGF0aCB0byBmaWxlbmFtZSBvciBO
b25lIGlmIHxmaWxlbmFtZXwgaXMgbm90IGJlbG93CisgICAgICAgIHxyZWxhdGl2ZV90b3wuCisg
ICAgIiIiCisgICAgbGF5b3V0X3Rlc3RfZGlyID0gb3MucGF0aC5qb2luKHNjbS5maW5kX2NoZWNr
b3V0X3Jvb3QoKSwgJ0xheW91dFRlc3RzJykKKyAgICBhYnNfcGF0aCA9IG9zLnBhdGguam9pbihs
YXlvdXRfdGVzdF9kaXIsIGZpbGVuYW1lKQorICAgIHJldHVybiBvc3BhdGgucmVscGF0aChhYnNf
cGF0aCwgcmVsYXRpdmVfdG8pCisKKworZGVmIGZpbmRfZHVwcyhoYXNoZXMsIHBvcnRfZmFsbGJh
Y2tzLCByZWxhdGl2ZV90byk6CiAgICAgIiIiWWllbGRzIGluZm8gYWJvdXQgcmVkdW5kYW50IHRl
c3QgZXhwZWN0YXRpb25zLgogICAgIEFyZ3M6CiAgICAgICAgIGhhc2hlczogYSBsaXN0IG9mIGhh
c2hlcyBhcyByZXR1cm5lZCBieSBjbHVzdGVyX2ZpbGVfaGFzaGVzLgotICAgICAgICBwb3J0X2Zh
bGxiYWNrczogYSBsaXN0IG9mIGZhbGxiYWNrIGluZm9ybWF0aW9uIGFzIHJldHVybmVkIGJ5IGdl
dF9wb3J0X2ZhbGxiYWNrcy4KKyAgICAgICAgcG9ydF9mYWxsYmFja3M6IGEgbGlzdCBvZiBmYWxs
YmFjayBpbmZvcm1hdGlvbiBhcyByZXR1cm5lZCBieQorICAgICAgICAgICAgZ2V0X3BvcnRfZmFs
bGJhY2tzLgorICAgICAgICByZWxhdGl2ZV90bzogdGhlIGRpcmVjdG9yeSB0aGF0IHdlIHdhbnQg
dGhlIHJlc3VsdHMgcmVsYXRpdmUgdG8KICAgICBSZXR1cm5zOgogICAgICAgICBhIHR1cGxlIGNv
bnRhaW5pbmcgKHRlc3QsIHBsYXRmb3JtLCBmYWxsYmFjaywgcGxhdGZvcm1zKQogICAgICIiIgpA
QCAtMTc2LDEzICsxOTgsMjQgQEAgZGVmIGZpbmRfZHVwcyhoYXNoZXMsIHBvcnRfZmFsbGJhY2tz
KToKICAgICAgICAgIyBTZWUgaWYgYW55IG9mIHRoZSBwbGF0Zm9ybXMgYXJlIHJlZHVuZGFudCB3
aXRoIGVhY2ggb3RoZXIuCiAgICAgICAgIGZvciBwbGF0Zm9ybSBpbiBwbGF0Zm9ybXMua2V5cygp
OgogICAgICAgICAgICAgZm9yIGZhbGxiYWNrIGluIHBvcnRfZmFsbGJhY2tzW3BsYXRmb3JtXToK
LSAgICAgICAgICAgICAgICBpZiBmYWxsYmFjayBpbiBwbGF0Zm9ybXMua2V5cygpOgotICAgICAg
ICAgICAgICAgICAgICAjIFdlIGhhdmUgdG8gdmVyaWZ5IHRoYXQgdGhlcmUgaXNuJ3QgYW4gaW50
ZXJtZWRpYXRlIHJlc3VsdAotICAgICAgICAgICAgICAgICAgICAjIHRoYXQgY2F1c2VzIHRoaXMg
ZHVwbGljYXRlIGhhc2ggdG8gZXhpc3QuCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBoYXNf
aW50ZXJtZWRpYXRlX3Jlc3VsdHModGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
b3J0X2ZhbGxiYWNrc1twbGF0Zm9ybV0sIGZhbGxiYWNrKToKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oJ0xheW91dFRlc3RzJywgcGxhdGZvcm1zW3BsYXRmb3Jt
XSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRlc3QsIHBsYXRmb3JtLCBmYWxsYmFj
aywgcGF0aAorICAgICAgICAgICAgICAgIGlmIGZhbGxiYWNrIG5vdCBpbiBwbGF0Zm9ybXMua2V5
cygpOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICMgV2Ug
aGF2ZSB0byB2ZXJpZnkgdGhhdCB0aGVyZSBpc24ndCBhbiBpbnRlcm1lZGlhdGUgcmVzdWx0Cisg
ICAgICAgICAgICAgICAgIyB0aGF0IGNhdXNlcyB0aGlzIGR1cGxpY2F0ZSBoYXNoIHRvIGV4aXN0
LgorICAgICAgICAgICAgICAgIGlmIGhhc19pbnRlcm1lZGlhdGVfcmVzdWx0cyh0ZXN0LCBwb3J0
X2ZhbGxiYWNrc1twbGF0Zm9ybV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZhbGxiYWNrKToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAg
ICAgICAgICAgICAjIFdlIHByaW50IHRoZSByZWxhdGl2ZSBwYXRoIHNvIGl0J3MgZWFzeSB0byBw
aXBlIHRoZSByZXN1bHRzCisgICAgICAgICAgICAgICAgIyB0byB4YXJncyBybS4KKyAgICAgICAg
ICAgICAgICBwYXRoID0gZ2V0X3JlbGF0aXZlX3Rlc3RfcGF0aChwbGF0Zm9ybXNbcGxhdGZvcm1d
LCByZWxhdGl2ZV90bykKKyAgICAgICAgICAgICAgICBpZiBub3QgcGF0aDoKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICB5aWVsZCB7CisgICAgICAgICAgICAg
ICAgICAgICd0ZXN0JzogdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtJzogcGxh
dGZvcm0sCisgICAgICAgICAgICAgICAgICAgICdmYWxsYmFjayc6IGZhbGxiYWNrLAorICAgICAg
ICAgICAgICAgICAgICAncGF0aCc6IHBhdGgsCisgICAgICAgICAgICAgICAgfQogCiAKIGRlZiBk
ZWR1cGxpY2F0ZShnbG9iX3BhdHRlcm4pOgpAQCAtMTk0LDUgKzIyNyw0IEBAIGRlZiBkZWR1cGxp
Y2F0ZShnbG9iX3BhdHRlcm4pOgogICAgICIiIgogICAgIGZhbGxiYWNrcyA9IHBvcnRfZmFsbGJh
Y2tzKCkKICAgICBoYXNoZXMgPSBjbHVzdGVyX2ZpbGVfaGFzaGVzKGdsb2JfcGF0dGVybikKLSAg
ICByZXR1cm4gW3sndGVzdCc6IHRlc3QsICdwYXRoJzogcGF0aCwgJ3BsYXRmb3JtJzogcGxhdGZv
cm0sICdmYWxsYmFjayc6IGZhbGxiYWNrfQotICAgICAgICAgICAgIGZvciB0ZXN0LCBwbGF0Zm9y
bSwgZmFsbGJhY2ssIHBhdGggaW4gZmluZF9kdXBzKGhhc2hlcywgZmFsbGJhY2tzKV0KKyAgICBy
ZXR1cm4gbGlzdChmaW5kX2R1cHMoaGFzaGVzLCBmYWxsYmFja3MsIG9zLmdldGN3ZCgpKSkKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVw
bGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHNfdW5pdHRlc3QucHkKaW5kZXggYmUyZTM4MTJl
YzkxZjg3MjkzYTA0YzU4NDQ3MTRjNzIxY2E4MDk1Ni4uYmI5NjA0ZjVjNTAyYmFiZjcxMzJiMDAw
NzA5OTIzOGVmNTU5OGE5YSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHNfdW5p
dHRlc3QucHkKQEAgLTE4NiwzICsxODYsMjIgQEAgY2xhc3MgTGlzdER1cGxpY2F0ZXNUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmYWxsYmFjayc6
ICdjaHJvbWl1bS13aW4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtJzog
J2Nocm9taXVtLWxpbnV4J30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFswXSkK
KworICAgIGRlZiB0ZXN0X2dldF9yZWxhdGl2ZV90ZXN0X3BhdGgoc2VsZik6CisgICAgICAgIGNo
ZWNrb3V0X3Jvb3QgPSBzY20uZmluZF9jaGVja291dF9yb290KCkKKyAgICAgICAgbGF5b3V0X3Rl
c3RfZGlyID0gb3MucGF0aC5qb2luKGNoZWNrb3V0X3Jvb3QsICdMYXlvdXRUZXN0cycpCisgICAg
ICAgIHRlc3RfY2FzZXMgPSAoCisgICAgICAgICAgICAoJ3BsYXRmb3JtL21hYy90ZXN0Lmh0bWwn
LAorICAgICAgICAgICAgICgncGxhdGZvcm0vbWFjL3Rlc3QuaHRtbCcsIGxheW91dF90ZXN0X2Rp
cikpLAorICAgICAgICAgICAgKCdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywK
KyAgICAgICAgICAgICAoJ3BsYXRmb3JtL21hYy90ZXN0Lmh0bWwnLCBjaGVja291dF9yb290KSks
CisgICAgICAgICAgICAoTm9uZSwKKyAgICAgICAgICAgICAoJ3BsYXRmb3JtL21hYy90ZXN0Lmh0
bWwnLCBvcy5wYXRoLmpvaW4oY2hlY2tvdXRfcm9vdCwgJ1dlYkNvcmUnKSkpLAorICAgICAgICAg
ICAgKCd0ZXN0Lmh0bWwnLAorICAgICAgICAgICAgICgncGxhdGZvcm0vbWFjL3Rlc3QuaHRtbCcs
IG9zLnBhdGguam9pbihsYXlvdXRfdGVzdF9kaXIsICdwbGF0Zm9ybS9tYWMnKSkpLAorICAgICAg
ICAgICAgKE5vbmUsCisgICAgICAgICAgICAgKCdwbGF0Zm9ybS9tYWMvdGVzdC5odG1sJywgb3Mu
cGF0aC5qb2luKGxheW91dF90ZXN0X2RpciwgJ3BsYXRmb3JtL3dpbicpKSksCisgICAgICAgICkK
KyAgICAgICAgZm9yIGV4cGVjdGVkLCBpbnB1dHMgaW4gdGVzdF9jYXNlczoKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVkdXBsaWNhdGVfdGVzdHMuZ2V0X3JlbGF0aXZlX3Rlc3RfcGF0aCgqaW5wdXRzKSkK
</data>
<flag name="review"
          id="56518"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>