<?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>37393</bug_id>
          
          <creation_ts>2010-04-10 16:12:57 -0700</creation_ts>
          <short_desc>Sketch out the win port for new-run-webkit-tests</short_desc>
          <delta_ts>2010-04-10 17:25:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>211206</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-10 16:12:57 -0700</bug_when>
    <thetext>Sketch out the win port for new-run-webkit-tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211208</commentid>
    <comment_count>1</comment_count>
      <attachid>53056</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-10 16:14:08 -0700</bug_when>
    <thetext>Created attachment 53056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211209</commentid>
    <comment_count>2</comment_count>
      <attachid>53057</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-10 16:15:32 -0700</bug_when>
    <thetext>Created attachment 53057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211213</commentid>
    <comment_count>3</comment_count>
      <attachid>53057</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-10 16:31:21 -0700</bug_when>
    <thetext>Comment on attachment 53057
Patch

 43             if options and hasattr(options, &apos;chromium&apos;) and options.chromium:

should just be options.chromium, no?

What&apos;s this used for?
190191     def test_base_platform_names(self):

are you sure it shoudl return &quot;win&quot; as well as mac?

God I had 80c wrap:
245         return [os.path.join(self._webkit_baseline_path(self._name,
 246                                                             &apos;Skipped&apos;))]

What&apos;s this used for?  Is this right?
84     def test_platform_name(self):
280          raise NotImplementedError(&apos;WebKitPort.test_platform_name&apos;)
 285         return self._name + self.version()

Why?
48     def version(self):
 49         return &apos;&apos;

Portname override is lame:
43     def __init__(self, port_name=None, options=None):
 44         if port_name is None:
 45             port_name = &apos;win&apos;

 63     def _tests_for_disabled_features(self):
 is a copy/paste disaster.  Can&apos;t that be pushed into WebKitPort?

Please respond to the comments.  Otherwise this looks like an OK first start.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211215</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-10 16:38:19 -0700</bug_when>
    <thetext>I accept all of your comments.  I will fix them in followup patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211216</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-10 16:38:36 -0700</bug_when>
    <thetext>Well, except the 80c thing.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211217</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-10 16:39:51 -0700</bug_when>
    <thetext>Committed r57425: &lt;http://trac.webkit.org/changeset/57425&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211227</commentid>
    <comment_count>7</comment_count>
      <attachid>53057</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-04-10 17:04:12 -0700</bug_when>
    <thetext>Comment on attachment 53057
Patch

&gt; diff --git a/WebKitTools/Scripts/webkitpy/layout_tests/port/webkit.py b/WebKitTools/Scripts/webkitpy/layout_tests/port/webkit.py
&gt; index f4c2433..a943b77 100644
&gt; --- a/WebKitTools/Scripts/webkitpy/layout_tests/port/webkit.py
&gt; +++ b/WebKitTools/Scripts/webkitpy/layout_tests/port/webkit.py
&gt; @@ -65,7 +65,11 @@ class WebKitPort(base.Port):
&gt;          return self._webkit_baseline_path(self._name)
&gt;  
&gt;      def baseline_search_path(self):
&gt; -        raise NotImplementedError(&apos;WebKitPort.baseline_search_path&apos;)
&gt; +        return [self._webkit_baseline_path(self._name)]
&gt; +
&gt; +    def path_to_test_expectations_file(self):
&gt; +        return os.path.join(self._webkit_baseline_path(self._name),
&gt; +                            &apos;test_expectations.txt&apos;)

Note that this&apos;ll put the test_expectations.txt file in LayoutTests/platform/{win,mac}, instead
of having a common one shared by all of the WebKit variations. Are you sure you want this? If you
do, you probably don&apos;t want to return multiple test_base_platform_names().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211229</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-04-10 17:13:03 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 53057 [details])
&gt;  43             if options and hasattr(options, &apos;chromium&apos;) and
&gt; options.chromium:
&gt;
&gt; should just be options.chromium, no?

No. options.chromium isn&apos;t guaranteed to be set, so you need the extra tests.

&gt;
&gt; What&apos;s this used for?
&gt; 190191     def test_base_platform_names(self):

See the comments in base.py.

&gt; 84     def test_platform_name(self):
&gt; 280          raise NotImplementedError(&apos;WebKitPort.test_platform_name&apos;)
&gt;  285         return self._name + self.version()
&gt;

Yes, it&apos;s as good a thing to return as any. Again, see the comments in the base class for what the function does.

&gt; Why?
&gt; 48     def version(self):
&gt;  49         return &apos;&apos;

WebKit doesn&apos;t keep different versions of the baselines for different versions of windows, so there&apos;s no need for a version string here (just like chromium on the mac doesn&apos;t version, but webkit mac does).


(In reply to comment #3)
&gt; (From update of attachment 53057 [details])
&gt;  43             if options and hasattr(options, &apos;chromium&apos;) and
&gt; options.chromium:
&gt; 
&gt; should just be options.chromium, no?
&gt; 
&gt; What&apos;s this used for?
&gt; 190191     def test_base_platform_names(self):
&gt; 
&gt; are you sure it shoudl return &quot;win&quot; as well as mac?
&gt; 
&gt; God I had 80c wrap:
&gt; 245         return [os.path.join(self._webkit_baseline_path(self._name,
&gt;  246                                                             &apos;Skipped&apos;))]
&gt; 
&gt; What&apos;s this used for?  Is this right?
&gt; 84     def test_platform_name(self):
&gt; 280          raise NotImplementedError(&apos;WebKitPort.test_platform_name&apos;)
&gt;  285         return self._name + self.version()
&gt; 
&gt; Why?
&gt; 48     def version(self):
&gt;  49         return &apos;&apos;
&gt; 
&gt; Portname override is lame:
&gt; 43     def __init__(self, port_name=None, options=None):
&gt;  44         if port_name is None:
&gt;  45             port_name = &apos;win&apos;
&gt; 
&gt;  63     def _tests_for_disabled_features(self):
&gt;  is a copy/paste disaster.  Can&apos;t that be pushed into WebKitPort?
&gt; 
&gt; Please respond to the comments.  Otherwise this looks like an OK first start.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211230</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-10 17:15:31 -0700</bug_when>
    <thetext>&gt; Note that this&apos;ll put the test_expectations.txt file in
&gt; LayoutTests/platform/{win,mac}, instead
&gt; of having a common one shared by all of the WebKit variations. Are you sure you
&gt; want this? If you
&gt; do, you probably don&apos;t want to return multiple test_base_platform_names().

I&apos;m not sure what we want to do here.  Currently the test_expectation.txt file is in LayoutTests/platform/mac, so I went with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211235</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-04-10 17:25:29 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; Note that this&apos;ll put the test_expectations.txt file in
&gt; &gt; LayoutTests/platform/{win,mac}, instead
&gt; &gt; of having a common one shared by all of the WebKit variations. Are you sure you
&gt; &gt; want this? If you
&gt; &gt; do, you probably don&apos;t want to return multiple test_base_platform_names().
&gt; 
&gt; I&apos;m not sure what we want to do here.  Currently the test_expectation.txt file
&gt; is in LayoutTests/platform/mac, so I went with that.

Maybe I&apos;m not following you, but the code now will return platform/mac/test_expectations.txt when running on a mac, and platform/win/test_expectations.txt when running on windows. I.e., you&apos;ll have two files to update, which defeats the point a bit. 

Perhaps we should put the &quot;base&quot; version in LayoutTests/test_expectations.txt and the various ports can decide if they want to pile into the base version or use their own like Chromium does.

Alternatively, we could have a &quot;platform/webkit&quot; directory for this file and any baselines that produce webkit-specific output (e.g., for text errors specific to JSC, etc.).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53056</attachid>
            <date>2010-04-10 16:14:08 -0700</date>
            <delta_ts>2010-04-10 16:15:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37393-20100410161406.patch</filename>
            <type>text/plain</type>
            <size>9057</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlOWU4NDEzLi4yY2Y5OTE5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQt
MTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTa2V0Y2ggb3V0IHRoZSB3aW4gcG9ydCBmb3Ig
bmV3LXJ1bi13ZWJraXQtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM3MzkzCisKKyAgICAgICAgSSBoYXZlbid0IHRyaWVkIHJ1bm5pbmcgdGhp
cyB5ZXQsIGJ1dCB3ZSd2ZSBnb3QgdG8gc3RhcnQgc29tZXdoZXJlLgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5LnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5OiBBZGRlZC4KKwogMjAxMC0wNC0x
MCAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHkKaW5kZXggY2JlNjFlNC4uZDlmMDVkNiAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9m
YWN0b3J5LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvZmFjdG9yeS5weQpAQCAtNDAsNyArNDAsMTAgQEAgZGVmIGdldChwb3J0X25hbWU9Tm9u
ZSwgb3B0aW9ucz1Ob25lKToKICAgICBwb3J0X3RvX3VzZSA9IHBvcnRfbmFtZQogICAgIGlmIHBv
cnRfdG9fdXNlIGlzIE5vbmU6CiAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgot
ICAgICAgICAgICAgcG9ydF90b191c2UgPSAnY2hyb21pdW0td2luJworICAgICAgICAgICAgaWYg
b3B0aW9ucyBhbmQgaGFzYXR0cihvcHRpb25zLCAnY2hyb21pdW0nKSBhbmQgb3B0aW9ucy5jaHJv
bWl1bToKKyAgICAgICAgICAgICAgICBwb3J0X3RvX3VzZSA9ICdjaHJvbWl1bS13aW4nCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBvcnRfdG9fdXNlID0gJ3dpbicKICAgICAg
ICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gJ2xpbnV4Mic6CiAgICAgICAgICAgICBwb3J0X3RvX3Vz
ZSA9ICdjaHJvbWl1bS1saW51eCcKICAgICAgICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gJ2Rhcndp
bic6CkBAIC02Miw2ICs2NSw5IEBAIGRlZiBnZXQocG9ydF9uYW1lPU5vbmUsIG9wdGlvbnM9Tm9u
ZSk6CiAgICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdtYWMnKToKICAgICAgICAgaW1w
b3J0IG1hYwogICAgICAgICByZXR1cm4gbWFjLk1hY1BvcnQocG9ydF9uYW1lLCBvcHRpb25zKQor
ICAgIGVsaWYgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgnd2luJyk6CisgICAgICAgIGltcG9ydCB3
aW4KKyAgICAgICAgcmV0dXJuIHdpbi5XaW5Qb3J0KHBvcnRfbmFtZSwgb3B0aW9ucykKICAgICBl
bGlmIHBvcnRfdG9fdXNlLnN0YXJ0c3dpdGgoJ2Nocm9taXVtLW1hYycpOgogICAgICAgICBpbXBv
cnQgY2hyb21pdW1fbWFjCiAgICAgICAgIHJldHVybiBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQ
b3J0KHBvcnRfbmFtZSwgb3B0aW9ucykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKaW5kZXggNGVmNTYwZS4uMmE1NGFlNCAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9tYWMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9tYWMucHkKQEAgLTEsNCArMSwzIEBACi0jIS91c3IvYmluL2VudiBweXRob24KICMgQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC93ZWJraXQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3dlYmtpdC5weQppbmRleCBmNGMyNDMzLi5lMjg2ZmI3IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dl
YmtpdC5weQpAQCAtNjUsNyArNjUsMTEgQEAgY2xhc3MgV2ViS2l0UG9ydChiYXNlLlBvcnQpOgog
ICAgICAgICByZXR1cm4gc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoc2VsZi5fbmFtZSkKIAog
ICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKLSAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcignV2ViS2l0UG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCcpCisgICAgICAg
IHJldHVybiBbc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoc2VsZi5fbmFtZSldCisKKyAgICBk
ZWYgcGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKHNlbGYpOgorICAgICAgICByZXR1cm4g
b3MucGF0aC5qb2luKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKHNlbGYuX25hbWUpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0X2V4cGVjdGF0aW9ucy50eHQnKQogCiAgICAg
ZGVmIF9idWlsZF9kcml2ZXIoc2VsZik6CiAgICAgICAgIHJldHVybiBub3Qgc2VsZi5fZXhlY3V0
aXZlLnJ1bl9jb21tYW5kKFsKQEAgLTE2Nyw5ICsxNzEsNiBAQCBjbGFzcyBXZWJLaXRQb3J0KGJh
c2UuUG9ydCk6CiAgICAgICAgIHNwLnN0b3AoKQogICAgICAgICByZXR1cm4gcmVzdWx0CiAKLSAg
ICBkZWYgcGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKHNlbGYpOgotICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdXZWJLaXRQb3J0LnBhdGhfdG9fdGVzdF9leHBlY3RhdGlv
bnNfZmlsZScpCi0KICAgICBkZWYgcmVzdWx0c19kaXJlY3Rvcnkoc2VsZik6CiAgICAgICAgICMg
RklYTUU6IFdoeSBkbyB3ZSBzYXkgY2hyb21pdW0gaGVyZT8gIE1heWJlICJuZXctcnVuLXdlYmtp
dC10ZXN0cy0iPwogICAgICAgICByZXR1cm4gKCcvdG1wL3J1bi1jaHJvbWl1bS13ZWJraXQtdGVz
dHMtJyArCkBAIC0xOTAsNyArMTkxLDcgQEAgY2xhc3MgV2ViS2l0UG9ydChiYXNlLlBvcnQpOgog
ICAgIGRlZiB0ZXN0X2Jhc2VfcGxhdGZvcm1fbmFtZXMoc2VsZik6CiAgICAgICAgICMgQXQgdGhl
IG1vbWVudCB3ZSBkb24ndCB1c2UgdGVzdCBwbGF0Zm9ybSBuYW1lcywgYnV0IHdlIGhhdmUKICAg
ICAgICAgIyB0byByZXR1cm4gc29tZXRoaW5nLgotICAgICAgICByZXR1cm4gKCdtYWMnLCkKKyAg
ICAgICAgcmV0dXJuICgnbWFjJywgJ3dpbicpCiAKICAgICBkZWYgX3Rlc3RzX2Zvcl9vdGhlcl9w
bGF0Zm9ybXMoc2VsZik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1dlYktp
dFBvcnQuX3Rlc3RzX2Zvcl9vdGhlcl9wbGF0Zm9ybXMnKQpAQCAtMjQwLDYgKzI0MSwxMCBAQCBj
bGFzcyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICAgICB0ZXN0c190b19za2lwLmFw
cGVuZChsaW5lKQogICAgICAgICByZXR1cm4gdGVzdHNfdG9fc2tpcAogCisgICAgZGVmIF9za2lw
cGVkX2ZpbGVfcGF0aHMoc2VsZik6CisgICAgICAgIHJldHVybiBbb3MucGF0aC5qb2luKHNlbGYu
X3dlYmtpdF9iYXNlbGluZV9wYXRoKHNlbGYuX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU2tpcHBlZCcpXQorCiAgICAg
ZGVmIF9leHBlY3RhdGlvbnNfZnJvbV9za2lwcGVkX2ZpbGVzKHNlbGYpOgogICAgICAgICB0ZXN0
c190b19za2lwID0gW10KICAgICAgICAgZm9yIGZpbGVuYW1lIGluIHNlbGYuX3NraXBwZWRfZmls
ZV9wYXRocygpOgpAQCAtMjc3LDcgKzI4Miw3IEBAIGNsYXNzIFdlYktpdFBvcnQoYmFzZS5Qb3J0
KToKICAgICAgICAgcmV0dXJuICJcbiIuam9pbihza2lwX2xpbmVzKQogCiAgICAgZGVmIHRlc3Rf
cGxhdGZvcm1fbmFtZShzZWxmKToKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcign
V2ViS2l0UG9ydC50ZXN0X3BsYXRmb3JtX25hbWUnKQorICAgICAgICByZXR1cm4gc2VsZi5fbmFt
ZSArIHNlbGYudmVyc2lvbigpCiAKICAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToK
ICAgICAgICAgcmV0dXJuIHNlbGYudGVzdF9iYXNlX3BsYXRmb3JtX25hbWVzKCkgKyAoCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dp
bi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2lu
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiNGQ2ZGMKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3dpbi5weQpAQCAtMCwwICsxLDEwNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgR29vZ2xlIG5h
bWUgbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisiIiJXZWJLaXQgV2luIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBQb3J0IGludGVyZmFjZS4iIiIKKworaW1wb3J0IGxvZ2dpbmcKK2lt
cG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKKworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMu
cG9ydC53ZWJraXQgaW1wb3J0IFdlYktpdFBvcnQKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KCJ3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC53aW4iKQorCisKK2NsYXNzIFdpblBvcnQoV2Vi
S2l0UG9ydCk6CisgICAgIiIiV2ViS2l0IFdpbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUG9ydCBj
bGFzcy4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgb3B0aW9u
cz1Ob25lKToKKyAgICAgICAgaWYgcG9ydF9uYW1lIGlzIE5vbmU6CisgICAgICAgICAgICBwb3J0
X25hbWUgPSAnd2luJworICAgICAgICBXZWJLaXRQb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFt
ZSwgb3B0aW9ucykKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gJycK
KworICAgIGRlZiBfdGVzdHNfZm9yX290aGVyX3BsYXRmb3JtcyhzZWxmKToKKyAgICAgICAgIyBG
SVhNRTogVGhpcyBsaXN0IGNvdWxkIGJlIGR5bmFtaWMgYmFzZWQgb24gcGxhdGZvcm0gbmFtZSBh
bmQKKyAgICAgICAgIyBwdXNoZWQgaW50byBiYXNlLlBvcnQuCisgICAgICAgICMgVGhpcyByZWFs
bHkgbmVlZCB0byBiZSBhdXRvbWF0ZWQuCisgICAgICAgIHJldHVybiBbCisgICAgICAgICAgICAi
cGxhdGZvcm0vY2hyb21pdW0iLAorICAgICAgICAgICAgInBsYXRmb3JtL2d0ayIsCisgICAgICAg
ICAgICAicGxhdGZvcm0vcXQiLAorICAgICAgICAgICAgInBsYXRmb3JtL21hYyIsCisgICAgICAg
IF0KKworICAgICMgRklYTUU6IFZhbGlkYXRlIHRoaXMgbGlzdC4KKyAgICBkZWYgX3Rlc3RzX2Zv
cl9kaXNhYmxlZF9mZWF0dXJlcyhzZWxmKToKKyAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQg
dXNlIHRoZSBmZWF0dXJlIGRldGVjdGlvbiBmcm9tCisgICAgICAgICMgd2Via2l0cGVybC9mZWF0
dXJlcy5wbSB0byBtYXRjaCBydW4td2Via2l0LXRlc3RzLgorICAgICAgICAjIEZvciBub3cgd2Ug
aGFyZC1jb2RlIGEgbGlzdCBvZiBmZWF0dXJlcyBrbm93biB0byBiZSBkaXNhYmxlZCBvbgorICAg
ICAgICAjIHRoZSBXaW4gcGxhdGZvcm0uCisgICAgICAgIGRpc2FibGVkX2ZlYXR1cmVfdGVzdHMg
PSBbCisgICAgICAgICAgICAiZmFzdC94aHRtbG1wIiwKKyAgICAgICAgICAgICJodHRwL3Rlc3Rz
L3dtbCIsCisgICAgICAgICAgICAibWF0aG1sIiwKKyAgICAgICAgICAgICJ3bWwiLAorICAgICAg
ICBdCisgICAgICAgICMgRklYTUU6IHdlYmFyY2hpdmUgdGVzdHMgZXhwZWN0IHRvIHJlYWQtd3Jp
dGUgZnJvbQorICAgICAgICAjIC1leHBlY3RlZC53ZWJhcmNoaXZlIGZpbGVzIGluc3RlYWQgb2Yg
LnR4dCBmaWxlcy4KKyAgICAgICAgIyBUaGlzIHNjcmlwdCBkb2Vzbid0IGtub3cgaG93IHRvIGRv
IHRoYXQgeWV0LCBzbyBwcmV0ZW5kIHRoZXkncmUKKyAgICAgICAgIyBqdXN0ICJkaXNhYmxlZCIu
CisgICAgICAgIHdlYmFyY2hpdmVfdGVzdHMgPSBbCisgICAgICAgICAgICAid2ViYXJjaGl2ZSIs
CisgICAgICAgICAgICAic3ZnL3dlYmFyY2hpdmUiLAorICAgICAgICAgICAgImh0dHAvdGVzdHMv
d2ViYXJjaGl2ZSIsCisgICAgICAgICAgICAic3ZnL2N1c3RvbS9pbWFnZS13aXRoLXByZWZpeC1p
bi13ZWJhcmNoaXZlLnN2ZyIsCisgICAgICAgIF0KKyAgICAgICAgcmV0dXJuIGRpc2FibGVkX2Zl
YXR1cmVfdGVzdHMgKyB3ZWJhcmNoaXZlX3Rlc3RzCisKKyAgICAjIEZJWE1FOiBUaGlzIGRvZXNu
J3QgaGF2ZSBhbnl0aGluZyB0byBkbyB3aXRoIFdlYktpdC4KKyAgICAjIEZJWE1FOiBDb3B5L3Bh
c3RlZCBmcm9tIGNocm9taXVtLXdpbgorICAgIGRlZiBfa2lsbF9wcm9jZXNzKHNlbGYsIHBpZCk6
CisgICAgICAgICIiIkZvcmNlZnVsbHkga2lsbCB0aGUgcHJvY2Vzcy4KKworICAgICAgICBBcmdz
OgorICAgICAgICBwaWQ6IFRoZSBpZCBvZiB0aGUgcHJvY2VzcyB0byBiZSBraWxsZWQuCisgICAg
ICAgICIiIgorICAgICAgICBzdWJwcm9jZXNzLmNhbGwoKCd0YXNra2lsbC5leGUnLCAnL2YnLCAn
L3BpZCcsIHN0cihwaWQpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGluPW9wZW4ob3Mu
ZGV2bnVsbCwgJ3InKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNz
LlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQor
CisgICAgZGVmIF9wYXRoX3RvX2FwYWNoZShzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWQKKworICAgIGRlZiBfcGF0aF90b19hcGFjaGVfY29uZmlnX2ZpbGUoc2VsZik6CisgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkCisKKyAgICBkZWYgX3NodXRfZG93bl9odHRwX3NlcnZl
cihzZWxmLCBzZXJ2ZXJfcGlkKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53057</attachid>
            <date>2010-04-10 16:15:32 -0700</date>
            <delta_ts>2010-04-10 17:04:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37393-20100410161530.patch</filename>
            <type>text/plain</type>
            <size>9058</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlOWU4NDEzLi4yY2Y5OTE5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQt
MTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTa2V0Y2ggb3V0IHRoZSB3aW4gcG9ydCBmb3Ig
bmV3LXJ1bi13ZWJraXQtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM3MzkzCisKKyAgICAgICAgSSBoYXZlbid0IHRyaWVkIHJ1bm5pbmcgdGhp
cyB5ZXQsIGJ1dCB3ZSd2ZSBnb3QgdG8gc3RhcnQgc29tZXdoZXJlLgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5LnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5OiBBZGRlZC4KKwogMjAxMC0wNC0x
MCAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHkKaW5kZXggY2JlNjFlNC4uZDlmMDVkNiAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9m
YWN0b3J5LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvZmFjdG9yeS5weQpAQCAtNDAsNyArNDAsMTAgQEAgZGVmIGdldChwb3J0X25hbWU9Tm9u
ZSwgb3B0aW9ucz1Ob25lKToKICAgICBwb3J0X3RvX3VzZSA9IHBvcnRfbmFtZQogICAgIGlmIHBv
cnRfdG9fdXNlIGlzIE5vbmU6CiAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgot
ICAgICAgICAgICAgcG9ydF90b191c2UgPSAnY2hyb21pdW0td2luJworICAgICAgICAgICAgaWYg
b3B0aW9ucyBhbmQgaGFzYXR0cihvcHRpb25zLCAnY2hyb21pdW0nKSBhbmQgb3B0aW9ucy5jaHJv
bWl1bToKKyAgICAgICAgICAgICAgICBwb3J0X3RvX3VzZSA9ICdjaHJvbWl1bS13aW4nCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBvcnRfdG9fdXNlID0gJ3dpbicKICAgICAg
ICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gJ2xpbnV4Mic6CiAgICAgICAgICAgICBwb3J0X3RvX3Vz
ZSA9ICdjaHJvbWl1bS1saW51eCcKICAgICAgICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gJ2Rhcndp
bic6CkBAIC02Miw2ICs2NSw5IEBAIGRlZiBnZXQocG9ydF9uYW1lPU5vbmUsIG9wdGlvbnM9Tm9u
ZSk6CiAgICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdtYWMnKToKICAgICAgICAgaW1w
b3J0IG1hYwogICAgICAgICByZXR1cm4gbWFjLk1hY1BvcnQocG9ydF9uYW1lLCBvcHRpb25zKQor
ICAgIGVsaWYgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgnd2luJyk6CisgICAgICAgIGltcG9ydCB3
aW4KKyAgICAgICAgcmV0dXJuIHdpbi5XaW5Qb3J0KHBvcnRfbmFtZSwgb3B0aW9ucykKICAgICBl
bGlmIHBvcnRfdG9fdXNlLnN0YXJ0c3dpdGgoJ2Nocm9taXVtLW1hYycpOgogICAgICAgICBpbXBv
cnQgY2hyb21pdW1fbWFjCiAgICAgICAgIHJldHVybiBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQ
b3J0KHBvcnRfbmFtZSwgb3B0aW9ucykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKaW5kZXggNGVmNTYwZS4uMmE1NGFlNCAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9tYWMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9tYWMucHkKQEAgLTEsNCArMSwzIEBACi0jIS91c3IvYmluL2VudiBweXRob24KICMgQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC93ZWJraXQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3dlYmtpdC5weQppbmRleCBmNGMyNDMzLi5hOTQzYjc3IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dl
YmtpdC5weQpAQCAtNjUsNyArNjUsMTEgQEAgY2xhc3MgV2ViS2l0UG9ydChiYXNlLlBvcnQpOgog
ICAgICAgICByZXR1cm4gc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoc2VsZi5fbmFtZSkKIAog
ICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKLSAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcignV2ViS2l0UG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCcpCisgICAgICAg
IHJldHVybiBbc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoc2VsZi5fbmFtZSldCisKKyAgICBk
ZWYgcGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKHNlbGYpOgorICAgICAgICByZXR1cm4g
b3MucGF0aC5qb2luKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKHNlbGYuX25hbWUpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0X2V4cGVjdGF0aW9ucy50eHQnKQogCiAgICAg
ZGVmIF9idWlsZF9kcml2ZXIoc2VsZik6CiAgICAgICAgIHJldHVybiBub3Qgc2VsZi5fZXhlY3V0
aXZlLnJ1bl9jb21tYW5kKFsKQEAgLTE2Nyw5ICsxNzEsNiBAQCBjbGFzcyBXZWJLaXRQb3J0KGJh
c2UuUG9ydCk6CiAgICAgICAgIHNwLnN0b3AoKQogICAgICAgICByZXR1cm4gcmVzdWx0CiAKLSAg
ICBkZWYgcGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKHNlbGYpOgotICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdXZWJLaXRQb3J0LnBhdGhfdG9fdGVzdF9leHBlY3RhdGlv
bnNfZmlsZScpCi0KICAgICBkZWYgcmVzdWx0c19kaXJlY3Rvcnkoc2VsZik6CiAgICAgICAgICMg
RklYTUU6IFdoeSBkbyB3ZSBzYXkgY2hyb21pdW0gaGVyZT8gIE1heWJlICJuZXctcnVuLXdlYmtp
dC10ZXN0cy0iPwogICAgICAgICByZXR1cm4gKCcvdG1wL3J1bi1jaHJvbWl1bS13ZWJraXQtdGVz
dHMtJyArCkBAIC0xOTAsNyArMTkxLDcgQEAgY2xhc3MgV2ViS2l0UG9ydChiYXNlLlBvcnQpOgog
ICAgIGRlZiB0ZXN0X2Jhc2VfcGxhdGZvcm1fbmFtZXMoc2VsZik6CiAgICAgICAgICMgQXQgdGhl
IG1vbWVudCB3ZSBkb24ndCB1c2UgdGVzdCBwbGF0Zm9ybSBuYW1lcywgYnV0IHdlIGhhdmUKICAg
ICAgICAgIyB0byByZXR1cm4gc29tZXRoaW5nLgotICAgICAgICByZXR1cm4gKCdtYWMnLCkKKyAg
ICAgICAgcmV0dXJuICgnbWFjJywgJ3dpbicpCiAKICAgICBkZWYgX3Rlc3RzX2Zvcl9vdGhlcl9w
bGF0Zm9ybXMoc2VsZik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1dlYktp
dFBvcnQuX3Rlc3RzX2Zvcl9vdGhlcl9wbGF0Zm9ybXMnKQpAQCAtMjQwLDYgKzI0MSwxMCBAQCBj
bGFzcyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICAgICB0ZXN0c190b19za2lwLmFw
cGVuZChsaW5lKQogICAgICAgICByZXR1cm4gdGVzdHNfdG9fc2tpcAogCisgICAgZGVmIF9za2lw
cGVkX2ZpbGVfcGF0aHMoc2VsZik6CisgICAgICAgIHJldHVybiBbb3MucGF0aC5qb2luKHNlbGYu
X3dlYmtpdF9iYXNlbGluZV9wYXRoKHNlbGYuX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU2tpcHBlZCcpKV0KKwogICAg
IGRlZiBfZXhwZWN0YXRpb25zX2Zyb21fc2tpcHBlZF9maWxlcyhzZWxmKToKICAgICAgICAgdGVz
dHNfdG9fc2tpcCA9IFtdCiAgICAgICAgIGZvciBmaWxlbmFtZSBpbiBzZWxmLl9za2lwcGVkX2Zp
bGVfcGF0aHMoKToKQEAgLTI3Nyw3ICsyODIsNyBAQCBjbGFzcyBXZWJLaXRQb3J0KGJhc2UuUG9y
dCk6CiAgICAgICAgIHJldHVybiAiXG4iLmpvaW4oc2tpcF9saW5lcykKIAogICAgIGRlZiB0ZXN0
X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3Io
J1dlYktpdFBvcnQudGVzdF9wbGF0Zm9ybV9uYW1lJykKKyAgICAgICAgcmV0dXJuIHNlbGYuX25h
bWUgKyBzZWxmLnZlcnNpb24oKQogCiAgICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZik6
CiAgICAgICAgIHJldHVybiBzZWxmLnRlc3RfYmFzZV9wbGF0Zm9ybV9uYW1lcygpICsgKApkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93
aW4ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dp
bi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjRkNmRjCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC93aW4ucHkKQEAgLTAsMCArMSwxMDYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIEdvb2dsZSBu
YW1lIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIiIiV2ViS2l0IFdpbiBpbXBs
ZW1lbnRhdGlvbiBvZiB0aGUgUG9ydCBpbnRlcmZhY2UuIiIiCisKK2ltcG9ydCBsb2dnaW5nCitp
bXBvcnQgb3MKK2ltcG9ydCBzdWJwcm9jZXNzCisKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
LnBvcnQud2Via2l0IGltcG9ydCBXZWJLaXRQb3J0CisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dl
cigid2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQud2luIikKKworCitjbGFzcyBXaW5Qb3J0KFdl
YktpdFBvcnQpOgorICAgICIiIldlYktpdCBXaW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFBvcnQg
Y2xhc3MuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsIG9wdGlv
bnM9Tm9uZSk6CisgICAgICAgIGlmIHBvcnRfbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgcG9y
dF9uYW1lID0gJ3dpbicKKyAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25h
bWUsIG9wdGlvbnMpCisKKyAgICBkZWYgdmVyc2lvbihzZWxmKToKKyAgICAgICAgcmV0dXJuICcn
CisKKyAgICBkZWYgX3Rlc3RzX2Zvcl9vdGhlcl9wbGF0Zm9ybXMoc2VsZik6CisgICAgICAgICMg
RklYTUU6IFRoaXMgbGlzdCBjb3VsZCBiZSBkeW5hbWljIGJhc2VkIG9uIHBsYXRmb3JtIG5hbWUg
YW5kCisgICAgICAgICMgcHVzaGVkIGludG8gYmFzZS5Qb3J0LgorICAgICAgICAjIFRoaXMgcmVh
bGx5IG5lZWQgdG8gYmUgYXV0b21hdGVkLgorICAgICAgICByZXR1cm4gWworICAgICAgICAgICAg
InBsYXRmb3JtL2Nocm9taXVtIiwKKyAgICAgICAgICAgICJwbGF0Zm9ybS9ndGsiLAorICAgICAg
ICAgICAgInBsYXRmb3JtL3F0IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybS9tYWMiLAorICAgICAg
ICBdCisKKyAgICAjIEZJWE1FOiBWYWxpZGF0ZSB0aGlzIGxpc3QuCisgICAgZGVmIF90ZXN0c19m
b3JfZGlzYWJsZWRfZmVhdHVyZXMoc2VsZik6CisgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxk
IHVzZSB0aGUgZmVhdHVyZSBkZXRlY3Rpb24gZnJvbQorICAgICAgICAjIHdlYmtpdHBlcmwvZmVh
dHVyZXMucG0gdG8gbWF0Y2ggcnVuLXdlYmtpdC10ZXN0cy4KKyAgICAgICAgIyBGb3Igbm93IHdl
IGhhcmQtY29kZSBhIGxpc3Qgb2YgZmVhdHVyZXMga25vd24gdG8gYmUgZGlzYWJsZWQgb24KKyAg
ICAgICAgIyB0aGUgV2luIHBsYXRmb3JtLgorICAgICAgICBkaXNhYmxlZF9mZWF0dXJlX3Rlc3Rz
ID0gWworICAgICAgICAgICAgImZhc3QveGh0bWxtcCIsCisgICAgICAgICAgICAiaHR0cC90ZXN0
cy93bWwiLAorICAgICAgICAgICAgIm1hdGhtbCIsCisgICAgICAgICAgICAid21sIiwKKyAgICAg
ICAgXQorICAgICAgICAjIEZJWE1FOiB3ZWJhcmNoaXZlIHRlc3RzIGV4cGVjdCB0byByZWFkLXdy
aXRlIGZyb20KKyAgICAgICAgIyAtZXhwZWN0ZWQud2ViYXJjaGl2ZSBmaWxlcyBpbnN0ZWFkIG9m
IC50eHQgZmlsZXMuCisgICAgICAgICMgVGhpcyBzY3JpcHQgZG9lc24ndCBrbm93IGhvdyB0byBk
byB0aGF0IHlldCwgc28gcHJldGVuZCB0aGV5J3JlCisgICAgICAgICMganVzdCAiZGlzYWJsZWQi
LgorICAgICAgICB3ZWJhcmNoaXZlX3Rlc3RzID0gWworICAgICAgICAgICAgIndlYmFyY2hpdmUi
LAorICAgICAgICAgICAgInN2Zy93ZWJhcmNoaXZlIiwKKyAgICAgICAgICAgICJodHRwL3Rlc3Rz
L3dlYmFyY2hpdmUiLAorICAgICAgICAgICAgInN2Zy9jdXN0b20vaW1hZ2Utd2l0aC1wcmVmaXgt
aW4td2ViYXJjaGl2ZS5zdmciLAorICAgICAgICBdCisgICAgICAgIHJldHVybiBkaXNhYmxlZF9m
ZWF0dXJlX3Rlc3RzICsgd2ViYXJjaGl2ZV90ZXN0cworCisgICAgIyBGSVhNRTogVGhpcyBkb2Vz
bid0IGhhdmUgYW55dGhpbmcgdG8gZG8gd2l0aCBXZWJLaXQuCisgICAgIyBGSVhNRTogQ29weS9w
YXN0ZWQgZnJvbSBjaHJvbWl1bS13aW4KKyAgICBkZWYgX2tpbGxfcHJvY2VzcyhzZWxmLCBwaWQp
OgorICAgICAgICAiIiJGb3JjZWZ1bGx5IGtpbGwgdGhlIHByb2Nlc3MuCisKKyAgICAgICAgQXJn
czoKKyAgICAgICAgcGlkOiBUaGUgaWQgb2YgdGhlIHByb2Nlc3MgdG8gYmUga2lsbGVkLgorICAg
ICAgICAiIiIKKyAgICAgICAgc3VicHJvY2Vzcy5jYWxsKCgndGFza2tpbGwuZXhlJywgJy9mJywg
Jy9waWQnLCBzdHIocGlkKSksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1vcGVuKG9z
LmRldm51bGwsICdyJyksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vz
cy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkK
KworICAgIGRlZiBfcGF0aF90b19hcGFjaGUoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkCisKKyAgICBkZWYgX3BhdGhfdG9fYXBhY2hlX2NvbmZpZ19maWxlKHNlbGYpOgorICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZAorCisgICAgZGVmIF9zaHV0X2Rvd25faHR0cF9zZXJ2
ZXIoc2VsZiwgc2VydmVyX3BpZCk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkCg==
</data>
<flag name="review"
          id="36703"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>