<?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>58295</bug_id>
          
          <creation_ts>2011-04-11 18:53:16 -0700</creation_ts>
          <short_desc>new-run-webkit-tests: suppress extraneous pretty patch warnings</short_desc>
          <delta_ts>2011-04-13 13:58:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>mihaip</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>383754</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-11 18:53:16 -0700</bug_when>
    <thetext>new-run-webkit-tests: suppress extraneous pretty patch warnings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383756</commentid>
    <comment_count>1</comment_count>
      <attachid>89144</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-11 18:55:04 -0700</bug_when>
    <thetext>Created attachment 89144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384162</commentid>
    <comment_count>2</comment_count>
      <attachid>89144</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-12 11:00:43 -0700</bug_when>
    <thetext>Comment on attachment 89144
Patch

Doesn&apos;t python logging already have built in ways to filter based on where the messages came from?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384182</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-12 11:28:27 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 89144 [details])
&gt; Doesn&apos;t python logging already have built in ways to filter based on where the messages came from?

Yeah, but the messages are being logged in the same place in both cases, so I&apos;m not sure how that would help?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384965</commentid>
    <comment_count>4</comment_count>
      <attachid>89144</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-04-13 09:56:57 -0700</bug_when>
    <thetext>Comment on attachment 89144
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/base.py:178
&gt; +    def check_pretty_patch(self, logger=None):

It seems wrong that we&apos;re calling this method multiple times. How about making a pretty_patch_available method for pretty_patch_text and check_pretty_patch to call?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385128</commentid>
    <comment_count>5</comment_count>
      <attachid>89431</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-13 12:17:03 -0700</bug_when>
    <thetext>Created attachment 89431
revise check_pretty_patch() to return a list of error strings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385152</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-13 12:40:25 -0700</bug_when>
    <thetext>So, the latest patch revises check_pretty_patch() to return a list of strings to log if prettypatch is not available, and an empty list == success. This works okay in this case, although the naming and return value is a little weird, since you have:

 self._pretty_patch_available = not bool(self._check_pretty_patch()).

There are several other check_XX() routines in the port interface. check_image_diff() takes a flag indicating whether or not to log messages, and returns a bool. check_sys_deps() and check_build() unconditionally call log() internally as they see fit.

It seems like all of the check_* methods should behave similarly. This is complicated by the fact that some of the routines log and fail, and some (like check_build()) might log warnings or informational messages but not fail.

Extending all of these routines so that they return (error_messages, warning_messages, info_messages, sucess_or_failure) gets increasingly wonky. I feel like I&apos;m inventing monads :)

Alternatively, we can pass in a log object (like the first patch did). Or we can pass a flag (like check_image_diff() currently does, in the chromium port). Or we can provide two methods, one that logs, and one that doesn&apos;t, for both pretty_patch and image_diff.

Further thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385181</commentid>
    <comment_count>7</comment_count>
      <attachid>89446</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-13 13:46:18 -0700</bug_when>
    <thetext>Created attachment 89446
version using a boolean flag param</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385189</commentid>
    <comment_count>8</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-04-13 13:50:00 -0700</bug_when>
    <thetext>I was suggesting something more like:
def _pretty_patch_error_message(self):
   try:
       result = self._executive.run_command([&apos;ruby&apos;, &apos;--version&apos;])
   except OSError, e:
       if e.errno in [errno.ENOENT, errno.EACCES, errno.ECHILD]:
           return &quot;Ruby is not installed; can&apos;t generate pretty patches.&quot;)
   
   if not self.path_exists(self._pretty_patch_path):
       return &apos;Unable to find %s . Can&apos;t generate pretty patches.&apos; % self._pretty_patch_path)
   
   return None
   
def check_pretty_patch(self):
   error_message = _pretty_patch_error_message(self)
   if (error_message):
       _log.error(error_message)
       return False
   return True
   
def pretty_patch_available(self):
   return not _pretty_patch_error_message(self)

But whatever, using a bool is good enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385191</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-13 13:53:47 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I was suggesting something more like:
&gt; def _pretty_patch_error_message(self):
&gt;    try:
&gt;        result = self._executive.run_command([&apos;ruby&apos;, &apos;--version&apos;])
&gt;    except OSError, e:
&gt;        if e.errno in [errno.ENOENT, errno.EACCES, errno.ECHILD]:
&gt;            return &quot;Ruby is not installed; can&apos;t generate pretty patches.&quot;)
&gt; 
&gt;    if not self.path_exists(self._pretty_patch_path):
&gt;        return &apos;Unable to find %s . Can&apos;t generate pretty patches.&apos; % self._pretty_patch_path)
&gt; 
&gt;    return None
&gt; 
&gt; def check_pretty_patch(self):
&gt;    error_message = _pretty_patch_error_message(self)
&gt;    if (error_message):
&gt;        _log.error(error_message)
&gt;        return False
&gt;    return True
&gt; 
&gt; def pretty_patch_available(self):
&gt;    return not _pretty_patch_error_message(self)
&gt; 
&gt; But whatever, using a bool is good enough.

Ah, that&apos;s definitely more readable than my second version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385195</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-13 13:57:46 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=89446) [details]
&gt; version using a boolean flag param

Note that this version should have check_pretty_patch(logging=False) on line 759 (fixed during the commit).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385196</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-13 13:58:23 -0700</bug_when>
    <thetext>Committed r83759: &lt;http://trac.webkit.org/changeset/83759&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89144</attachid>
            <date>2011-04-11 18:55:04 -0700</date>
            <delta_ts>2011-04-13 12:17:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58295-20110411185503.patch</filename>
            <type>text/plain</type>
            <size>5346</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM0NzcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3OTdmZWRhNWFiOWZlODU4MjFlMGM0NzI3NjcwNTE2YjMx
ZDNjMzg1Li4yYTU5ZjczYjU4NTQ4OWNjOGNjOWI5OTRhOWFmMGViN2M5MmMxMzAxIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEg
QEAKIDIwMTEtMDQtMTEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJr
aXQtdGVzdHM6IHN1cHByZXNzIGV4dHJhbmVvdXMgcHJldHR5IHBhdGNoIHdhcm5pbmdzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODI5NQorCisgICAg
ICAgIE5SV1Qgd2Fzbid0IGJlaW5nIGNhcmVmdWwgYWJvdXQgd2hlbiBpdCBsb2dnZWQgbWVzc2Fn
ZXMgZnJvbQorICAgICAgICBQcmV0dHlQYXRjaCBub3QgYmVpbmcgYXZhaWxhYmxlOyBpdCBzaG91
bGQgb25seSBsb2cgZHVyaW5nCisgICAgICAgIGNoZWNrX2J1aWxkKCksIGFuZCBiZSBzaWxlbnQg
b3RoZXJ3aXNlLiBUaGlzIHdhcyBjYXVzaW5nIHVzIHRvCisgICAgICAgIGdldCBtdWx0aXBsZSBl
cnJvcnMgYXQgcnVudGltZSwgd2hpY2ggd2FzIGNvbmZ1c2luZy4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weToKKworMjAxMS0w
NC0xMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKwogICAgICAgICBSZXZp
ZXdlZCBieSBBZGFtIFJvYmVuLgogCiAgICAgICAgIG5ldy1ydW4td2Via2l0LXRlc3RzOiBmaXgg
Y3Jhc2ggd2hlbiBydW5uaW5nIHVuZGVyIHdpbmRvd3MgY21kLmV4ZQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5Cm9sZCBtb2RlIDEwMDY0NApu
ZXcgbW9kZSAxMDA3NTUKaW5kZXggN2EyZTI0ZmE4MDA0NTU5NDcyZDE4YjM2MjI0MGQ4MjBhOThm
NjUzOC4uYWViZDc1NzgzZWVmN2Q0MGI0ODg0ZjgwY2I0NzI4NDMwMmQ4Y2RjZQotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0xMzEsMTAgKzEz
MSw4IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKIAogICAgICAgICBzZWxmLl9wcmV0dHlfcGF0Y2hf
cGF0aCA9IHNlbGYucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCJXZWJzaXRlcyIsCiAgICAgICAgICAg
ICAiYnVncy53ZWJraXQub3JnIiwgIlByZXR0eVBhdGNoIiwgInByZXR0aWZ5LnJiIikKLSAgICAg
ICAgIyBJZiB3ZSdyZSBydW5uaW5nIG9uIGEgbW9ja2VkLW91dCBmaWxlc3lzdGVtLCB0aGlzIGZp
bGUgYWxtb3N0Ci0gICAgICAgICMgY2VydGFpbmx5IHdvbid0IGJlIGF2YWlsYWJsZSwgc28gaXQn
cyBhIGdvb2QgdGVzdCB0byBrZWVwIHVzCi0gICAgICAgICMgZnJvbSBlcnJvcmluZyBvdXQgbGF0
ZXIuCi0gICAgICAgIHNlbGYuX3ByZXR0eV9wYXRjaF9hdmFpbGFibGUgPSBzZWxmLl9maWxlc3lz
dGVtLmV4aXN0cyhzZWxmLl9wcmV0dHlfcGF0Y2hfcGF0aCkKKyAgICAgICAgc2VsZi5fcHJldHR5
X3BhdGNoX2F2YWlsYWJsZSA9IE5vbmUKKwogICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLl9v
cHRpb25zLCAnY29uZmlndXJhdGlvbicpIG9yIHNlbGYuX29wdGlvbnMuY29uZmlndXJhdGlvbiBp
cyBOb25lOgogICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5jb25maWd1cmF0aW9uID0gc2VsZi5k
ZWZhdWx0X2NvbmZpZ3VyYXRpb24oKQogICAgICAgICBzZWxmLl90ZXN0X2NvbmZpZ3VyYXRpb24g
PSBOb25lCkBAIC0xNzcsMjMgKzE3NSwyMyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAg
ICIiIlRoaXMgcm91dGluZSBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgaW1hZ2VfZGlmZiBiaW5h
cnkgZXhpc3RzLiIiIgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0LmNo
ZWNrX2ltYWdlX2RpZmYnKQogCi0gICAgZGVmIGNoZWNrX3ByZXR0eV9wYXRjaChzZWxmKToKKyAg
ICBkZWYgY2hlY2tfcHJldHR5X3BhdGNoKHNlbGYsIGxvZ2dlcj1Ob25lKToKICAgICAgICAgIiIi
Q2hlY2tzIHdoZXRoZXIgd2UgY2FuIHVzZSB0aGUgUHJldHR5UGF0Y2ggcnVieSBzY3JpcHQuIiIi
CisgICAgICAgIGxvZ2dlciA9IGxvZ2dlciBvciAobGFtYmRhIHg6IE5vbmUpCiAKICAgICAgICAg
IyBjaGVjayBpZiBSdWJ5IGlzIGluc3RhbGxlZAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBy
ZXN1bHQgPSBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWydydWJ5JywgJy0tdmVyc2lvbidd
KQogICAgICAgICBleGNlcHQgT1NFcnJvciwgZToKICAgICAgICAgICAgIGlmIGUuZXJybm8gaW4g
W2Vycm5vLkVOT0VOVCwgZXJybm8uRUFDQ0VTLCBlcnJuby5FQ0hJTERdOgotICAgICAgICAgICAg
ICAgIF9sb2cuZXJyb3IoIlJ1YnkgaXMgbm90IGluc3RhbGxlZDsgIgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImNhbid0IGdlbmVyYXRlIHByZXR0eSBwYXRjaGVzLiIpCi0gICAgICAgICAg
ICAgICAgX2xvZy5lcnJvcignJykKKyAgICAgICAgICAgICAgICBsb2dnZXIoIlJ1YnkgaXMgbm90
IGluc3RhbGxlZDsgY2FuJ3QgZ2VuZXJhdGUgcHJldHR5IHBhdGNoZXMuIikKKyAgICAgICAgICAg
ICAgICBsb2dnZXIoJycpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICAgICAg
aWYgbm90IHNlbGYucGF0aF9leGlzdHMoc2VsZi5fcHJldHR5X3BhdGNoX3BhdGgpOgotICAgICAg
ICAgICAgX2xvZy5lcnJvcignVW5hYmxlIHRvIGZpbmQgJXMgLicgJSBzZWxmLl9wcmV0dHlfcGF0
Y2hfcGF0aCkKLSAgICAgICAgICAgIF9sb2cuZXJyb3IoIkNhbid0IGdlbmVyYXRlIHByZXR0eSBw
YXRjaGVzLiIpCi0gICAgICAgICAgICBfbG9nLmVycm9yKCcnKQorICAgICAgICAgICAgbG9nZ2Vy
KCdVbmFibGUgdG8gZmluZCAlcyAuJyAlIHNlbGYuX3ByZXR0eV9wYXRjaF9wYXRoKQorICAgICAg
ICAgICAgbG9nZ2VyKCJDYW4ndCBnZW5lcmF0ZSBwcmV0dHkgcGF0Y2hlcy4iKQorICAgICAgICAg
ICAgbG9nZ2VyKCcnKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICAgICAgcmV0dXJu
IFRydWUKQEAgLTc1MSw2ICs3NDksOCBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgX3ByZXR0
eV9wYXRjaF9lcnJvcl9odG1sID0gIkZhaWxlZCB0byBydW4gUHJldHR5UGF0Y2gsIHNlZSBlcnJv
ciBsb2cuIgogCiAgICAgZGVmIHByZXR0eV9wYXRjaF90ZXh0KHNlbGYsIGRpZmZfcGF0aCk6Cisg
ICAgICAgIGlmIHNlbGYuX3ByZXR0eV9wYXRjaF9hdmFpbGFibGUgaXMgTm9uZToKKyAgICAgICAg
ICAgIHNlbGYuX3ByZXR0eV9wYXRjaF9hdmFpbGFibGUgPSBzZWxmLmNoZWNrX3ByZXR0eV9wYXRj
aCgpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9wcmV0dHlfcGF0Y2hfYXZhaWxhYmxlOgogICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX3ByZXR0eV9wYXRjaF9lcnJvcl9odG1sCiAgICAgICAgIGNvbW1h
bmQgPSAoInJ1YnkiLCAiLUkiLCBzZWxmLl9maWxlc3lzdGVtLmRpcm5hbWUoc2VsZi5fcHJldHR5
X3BhdGNoX3BhdGgpLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CmluZGV4IDM3N2RiYThhZjNjZjE2Y2U0N2Qz
NDMyMGNhMWU3OWU0YTFiZTI1NjAuLmJjMGRmNTg5NTk1MWI0Yzk3YjgzODk3YmM2YzliZTY5MTZj
N2FiNjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkKQEAgLTg2LDggKzg2LDggQEAgY2xhc3MgUG9ydFRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfcHJldHR5X3BhdGNoX3Njcmlw
dF9lcnJvcihzZWxmKToKICAgICAgICAgIyBGSVhNRTogVGhpcyBpcyBzb21lIHVnbHkgd2hpdGUt
Ym94IHRlc3QgaGFja2luZyAuLi4KLSAgICAgICAgYmFzZS5fcHJldHR5X3BhdGNoX2F2YWlsYWJs
ZSA9IFRydWUKICAgICAgICAgcG9ydCA9IGJhc2UuUG9ydChleGVjdXRpdmU9ZXhlY3V0aXZlX21v
Y2suTW9ja0V4ZWN1dGl2ZTIoZXhjZXB0aW9uPVNjcmlwdEVycm9yKSkKKyAgICAgICAgcG9ydC5f
cHJldHR5X3BhdGNoX2F2YWlsYWJsZSA9IFRydWUKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
b3J0LnByZXR0eV9wYXRjaF90ZXh0KCJwYXRjaC50eHQiKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICBwb3J0Ll9wcmV0dHlfcGF0Y2hfZXJyb3JfaHRtbCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKaW5kZXggNTgyNTAx
MzBkMmQ4MGU4NTJkMjQ5YmNlMzRjNmYyNzE2MmIxN2UyNS4uYWUyYzIyYjM5Mzg0NTY4NGVhZTMy
ZmU3MmNlMWFkNGVjMTJkYjlmMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CkBAIC0xMDgsNyArMTA4LDcgQEAgY2xhc3Mg
Q2hyb21pdW1Qb3J0KGJhc2UuUG9ydCk6CiAKICAgICAgICAgIyBJdCdzIG9rYXkgaWYgcHJldHR5
IHBhdGNoIGlzbid0IGF2YWlsYWJsZSwgYnV0IHdlIHdpbGwgYXQKICAgICAgICAgIyBsZWFzdCBs
b2cgYSBtZXNzYWdlLgotICAgICAgICBzZWxmLmNoZWNrX3ByZXR0eV9wYXRjaCgpCisgICAgICAg
IHNlbGYuX3ByZXR0eV9wYXRjaF9hdmFpbGFibGUgPSBzZWxmLmNoZWNrX3ByZXR0eV9wYXRjaChs
b2dnZXI9X2xvZy5lcnJvcikKIAogICAgICAgICByZXR1cm4gcmVzdWx0CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89431</attachid>
            <date>2011-04-13 12:17:03 -0700</date>
            <delta_ts>2011-04-13 13:46:15 -0700</delta_ts>
            <desc>revise check_pretty_patch() to return a list of error strings</desc>
            <filename>bug-58295-20110413121702.patch</filename>
            <type>text/plain</type>
            <size>6307</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM3NTIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzNzE1N2FiMGEwYjYzYjk3MmY3YjJhYjE5ODQ3NWY4NGU3
MzA0NzllLi5mNzY2MDczNDgwNmZjODIwZjFlNWZlYWU4Y2JkMzAxMWRkYThkYjg4IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTEtMDQtMTEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJr
aXQtdGVzdHM6IHN1cHByZXNzIGV4dHJhbmVvdXMgcHJldHR5IHBhdGNoIHdhcm5pbmdzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODI5NQorCisgICAg
ICAgIE5SV1Qgd2Fzbid0IGJlaW5nIGNhcmVmdWwgYWJvdXQgd2hlbiBpdCBsb2dnZWQgbWVzc2Fn
ZXMgZnJvbQorICAgICAgICBQcmV0dHlQYXRjaCBub3QgYmVpbmcgYXZhaWxhYmxlOyBpdCBzaG91
bGQgb25seSBsb2cgZHVyaW5nCisgICAgICAgIGNoZWNrX2J1aWxkKCksIGFuZCBiZSBzaWxlbnQg
b3RoZXJ3aXNlLiBUaGlzIHdhcyBjYXVzaW5nIHVzIHRvCisgICAgICAgIGdldCBtdWx0aXBsZSBl
cnJvcnMgYXQgcnVudGltZSwgd2hpY2ggd2FzIGNvbmZ1c2luZy4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weToKKwogMjAxMS0w
NC0xMyAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBKaWFuIExpLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9iYXNlLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMjMx
Y2U4YmM1ZmFjZTRlMzZlMWRmODY0NjYzZGQwNzllY2I4YjFlMS4uYzFmYzkwMGEzOWJlN2I0MGZl
NTcwNjQ2NWIzYjQyMWI5ZDg5ZTBlMwotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0xMzIsMTAgKzEzMiw4IEBAIGNsYXNzIFBvcnQob2JqZWN0
KToKICAgICAgICAgIyBGSVhNRTogcHJldHR5cGF0Y2gucHkga25vd3MgdGhpcyBwYXRoLCB3aHkg
aXMgaXQgY29waWVkIGhlcmU/CiAgICAgICAgIHNlbGYuX3ByZXR0eV9wYXRjaF9wYXRoID0gc2Vs
Zi5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoIldlYnNpdGVzIiwKICAgICAgICAgICAgICJidWdzLndl
YmtpdC5vcmciLCAiUHJldHR5UGF0Y2giLCAicHJldHRpZnkucmIiKQotICAgICAgICAjIElmIHdl
J3JlIHJ1bm5pbmcgb24gYSBtb2NrZWQtb3V0IGZpbGVzeXN0ZW0sIHRoaXMgZmlsZSBhbG1vc3QK
LSAgICAgICAgIyBjZXJ0YWlubHkgd29uJ3QgYmUgYXZhaWxhYmxlLCBzbyBpdCdzIGEgZ29vZCB0
ZXN0IHRvIGtlZXAgdXMKLSAgICAgICAgIyBmcm9tIGVycm9yaW5nIG91dCBsYXRlci4KLSAgICAg
ICAgc2VsZi5fcHJldHR5X3BhdGNoX2F2YWlsYWJsZSA9IHNlbGYuX2ZpbGVzeXN0ZW0uZXhpc3Rz
KHNlbGYuX3ByZXR0eV9wYXRjaF9wYXRoKQorICAgICAgICBzZWxmLl9wcmV0dHlfcGF0Y2hfYXZh
aWxhYmxlID0gTm9uZQorCiAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYuX29wdGlvbnMsICdj
b25maWd1cmF0aW9uJykgb3Igc2VsZi5fb3B0aW9ucy5jb25maWd1cmF0aW9uIGlzIE5vbmU6CiAg
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLmNvbmZpZ3VyYXRpb24gPSBzZWxmLmRlZmF1bHRfY29u
ZmlndXJhdGlvbigpCiAgICAgICAgIHNlbGYuX3Rlc3RfY29uZmlndXJhdGlvbiA9IE5vbmUKQEAg
LTE3NywyOCArMTc1LDI1IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKIAogICAgIGRlZiBjaGVja19p
bWFnZV9kaWZmKHNlbGYsIG92ZXJyaWRlX3N0ZXA9Tm9uZSwgbG9nZ2luZz1UcnVlKToKICAgICAg
ICAgIiIiVGhpcyByb3V0aW5lIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciBpbWFnZV9kaWZmIGJp
bmFyeSBleGlzdHMuIiIiCisgICAgICAgICMgRklYTUU6IFJldHVybiBhIHN0cmluZyB0byBsb2cg
b24gZXJyb3IgaW5zdGVhZCwgbGlrZSBwcmV0dHlfcGF0Y2guCiAgICAgICAgIHJhaXNlIE5vdElt
cGxlbWVudGVkRXJyb3IoJ1BvcnQuY2hlY2tfaW1hZ2VfZGlmZicpCiAKICAgICBkZWYgY2hlY2tf
cHJldHR5X3BhdGNoKHNlbGYpOgotICAgICAgICAiIiJDaGVja3Mgd2hldGhlciB3ZSBjYW4gdXNl
IHRoZSBQcmV0dHlQYXRjaCBydWJ5IHNjcmlwdC4iIiIKKyAgICAgICAgIiIiQ2hlY2tzIHdoZXRo
ZXIgd2UgY2FuIHVzZSB0aGUgUHJldHR5UGF0Y2ggcnVieSBzY3JpcHQuCiAKLSAgICAgICAgIyBj
aGVjayBpZiBSdWJ5IGlzIGluc3RhbGxlZAorICAgICAgICBSZXR1cm5zIGEgbGlzdCBvZiBzdHJp
bmdzIHRvIGxvZyBvbiBlcnJvci4gSWYgdGhlIGxpc3QgaXMgZW1wdHksCisgICAgICAgIHdlIGNh
biBydW4gdGhlIHNjcmlwdC4iIiIKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmVzdWx0ID0g
c2VsZi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsncnVieScsICctLXZlcnNpb24nXSkKICAgICAg
ICAgZXhjZXB0IE9TRXJyb3IsIGU6CiAgICAgICAgICAgICBpZiBlLmVycm5vIGluIFtlcnJuby5F
Tk9FTlQsIGVycm5vLkVBQ0NFUywgZXJybm8uRUNISUxEXToKLSAgICAgICAgICAgICAgICBfbG9n
LmVycm9yKCJSdWJ5IGlzIG5vdCBpbnN0YWxsZWQ7ICIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJjYW4ndCBnZW5lcmF0ZSBwcmV0dHkgcGF0Y2hlcy4iKQotICAgICAgICAgICAgICAgIF9s
b2cuZXJyb3IoJycpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAg
ICAgcmV0dXJuIFsiUnVieSBpcyBub3QgaW5zdGFsbGVkOyBjYW4ndCBnZW5lcmF0ZSBwcmV0dHkg
cGF0Y2hlcy4iXQogCiAgICAgICAgIGlmIG5vdCBzZWxmLnBhdGhfZXhpc3RzKHNlbGYuX3ByZXR0
eV9wYXRjaF9wYXRoKToKLSAgICAgICAgICAgIF9sb2cuZXJyb3IoJ1VuYWJsZSB0byBmaW5kICVz
IC4nICUgc2VsZi5fcHJldHR5X3BhdGNoX3BhdGgpCi0gICAgICAgICAgICBfbG9nLmVycm9yKCJD
YW4ndCBnZW5lcmF0ZSBwcmV0dHkgcGF0Y2hlcy4iKQotICAgICAgICAgICAgX2xvZy5lcnJvcign
JykKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgcmV0dXJuIFsiVW5hYmxl
IHRvIGZpbmQgJXMgLiIgJSBzZWxmLl9wcmV0dHlfcGF0Y2hfcGF0aCwKKyAgICAgICAgICAgICAg
ICAgICAgIkNhbid0IGdlbmVyYXRlIHByZXR0eSBwYXRjaGVzLiJdCiAKLSAgICAgICAgcmV0dXJu
IFRydWUKKyAgICAgICAgcmV0dXJuIFtdCiAKICAgICBkZWYgY29tcGFyZV90ZXh0KHNlbGYsIGV4
cGVjdGVkX3RleHQsIGFjdHVhbF90ZXh0KToKICAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgb3Ig
bm90IHRoZSB0d28gc3RyaW5ncyBhcmUgKm5vdCogZXF1YWwuIFRoaXMKQEAgLTc1OCw2ICs3NTMs
OCBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgX3ByZXR0eV9wYXRjaF9lcnJvcl9odG1sID0g
IkZhaWxlZCB0byBydW4gUHJldHR5UGF0Y2gsIHNlZSBlcnJvciBsb2cuIgogCiAgICAgZGVmIHBy
ZXR0eV9wYXRjaF90ZXh0KHNlbGYsIGRpZmZfcGF0aCk6CisgICAgICAgIGlmIHNlbGYuX3ByZXR0
eV9wYXRjaF9hdmFpbGFibGUgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX3ByZXR0eV9wYXRj
aF9hdmFpbGFibGUgPSBub3QgYm9vbChzZWxmLmNoZWNrX3ByZXR0eV9wYXRjaCgpKQogICAgICAg
ICBpZiBub3Qgc2VsZi5fcHJldHR5X3BhdGNoX2F2YWlsYWJsZToKICAgICAgICAgICAgIHJldHVy
biBzZWxmLl9wcmV0dHlfcGF0Y2hfZXJyb3JfaHRtbAogICAgICAgICBjb21tYW5kID0gKCJydWJ5
IiwgIi1JIiwgc2VsZi5fZmlsZXN5c3RlbS5kaXJuYW1lKHNlbGYuX3ByZXR0eV9wYXRjaF9wYXRo
KSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
YmFzZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZV91bml0dGVzdC5weQppbmRleCA2YzU3Y2YzOGUyNTE4OTFiOTg4YThjYzZjZGVhNTlm
YzliZjE0MGE0Li44NTg1NmJkMDQ5OWYzYTZiNjM1MDcxYTg4NjJlMWE3MmVkNDgwZTg0IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9i
YXNlX3VuaXR0ZXN0LnB5CkBAIC04Niw4ICs4Niw4IEBAIGNsYXNzIFBvcnRUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X3ByZXR0eV9wYXRjaF9zY3JpcHRfZXJyb3Ioc2Vs
Zik6CiAgICAgICAgICMgRklYTUU6IFRoaXMgaXMgc29tZSB1Z2x5IHdoaXRlLWJveCB0ZXN0IGhh
Y2tpbmcgLi4uCi0gICAgICAgIGJhc2UuX3ByZXR0eV9wYXRjaF9hdmFpbGFibGUgPSBUcnVlCiAg
ICAgICAgIHBvcnQgPSBiYXNlLlBvcnQoZXhlY3V0aXZlPWV4ZWN1dGl2ZV9tb2NrLk1vY2tFeGVj
dXRpdmUyKGV4Y2VwdGlvbj1TY3JpcHRFcnJvcikpCisgICAgICAgIHBvcnQuX3ByZXR0eV9wYXRj
aF9hdmFpbGFibGUgPSBUcnVlCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5wcmV0dHlf
cGF0Y2hfdGV4dCgicGF0Y2gudHh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydC5f
cHJldHR5X3BhdGNoX2Vycm9yX2h0bWwpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CmluZGV4IDQ2ZjMzNTc4ZTM2YWRiZjhh
YzhmYTBhM2I3OWM1ZmZjZWNmNjZlZjUuLjZjNWJmYmZmMGMxNjVmYjJiMWIwMTcwNmMxNTQyOWY0
MWIzNjBlZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bS5weQpAQCAtMTA4LDcgKzEwOCwxNCBAQCBjbGFzcyBDaHJvbWl1bVBv
cnQoYmFzZS5Qb3J0KToKIAogICAgICAgICAjIEl0J3Mgb2theSBpZiBwcmV0dHkgcGF0Y2ggaXNu
J3QgYXZhaWxhYmxlLCBidXQgd2Ugd2lsbCBhdAogICAgICAgICAjIGxlYXN0IGxvZyBhIG1lc3Nh
Z2UuCi0gICAgICAgIHNlbGYuY2hlY2tfcHJldHR5X3BhdGNoKCkKKyAgICAgICAgcHJldHR5X3Bh
dGNoX2Vycm9ycyA9IHNlbGYuY2hlY2tfcHJldHR5X3BhdGNoKCkKKyAgICAgICAgaWYgcHJldHR5
X3BhdGNoX2Vycm9yczoKKyAgICAgICAgICAgIGZvciBtZXNzYWdlIGluIHByZXR0eV9wYXRjaF9l
cnJvcnM6CisgICAgICAgICAgICAgICAgX2xvZy5lcnJvcihtZXNzYWdlKQorICAgICAgICAgICAg
X2xvZy5lcnJvcignJykKKyAgICAgICAgICAgIHNlbGYuX3ByZXR0eV9wYXRjaF9hdmFpbGFibGUg
PSBGYWxzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fcHJldHR5X3BhdGNoX2F2
YWlsYWJsZSA9IFRydWUKIAogICAgICAgICByZXR1cm4gcmVzdWx0CiAKQEAgLTEzMCw2ICsxMzcs
NyBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0KToKICAgICAgICAgcmV0dXJuIFRydWUK
IAogICAgIGRlZiBjaGVja19pbWFnZV9kaWZmKHNlbGYsIG92ZXJyaWRlX3N0ZXA9Tm9uZSwgbG9n
Z2luZz1UcnVlKToKKyAgICAgICAgIyBGSVhNRTogQ2hhbmdlIHRvIHJldHVybiBhIGxpc3Qgb2Yg
ZXJyb3JzIHRvIGxvZz8KICAgICAgICAgaW1hZ2VfZGlmZl9wYXRoID0gc2VsZi5fcGF0aF90b19p
bWFnZV9kaWZmKCkKICAgICAgICAgcmV0dXJuIHNlbGYuX2NoZWNrX2ZpbGVfZXhpc3RzKGltYWdl
X2RpZmZfcGF0aCwgJ2ltYWdlIGRpZmYgZXhlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG92ZXJyaWRlX3N0ZXAsIGxvZ2dpbmcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89446</attachid>
            <date>2011-04-13 13:46:18 -0700</date>
            <delta_ts>2011-04-13 13:50:10 -0700</delta_ts>
            <desc>version using a boolean flag param</desc>
            <filename>bug-58295-20110413134617.patch</filename>
            <type>text/plain</type>
            <size>5337</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM3NTIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzNzE1N2FiMGEwYjYzYjk3MmY3YjJhYjE5ODQ3NWY4NGU3
MzA0NzllLi5mNzY2MDczNDgwNmZjODIwZjFlNWZlYWU4Y2JkMzAxMWRkYThkYjg4IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTEtMDQtMTEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJr
aXQtdGVzdHM6IHN1cHByZXNzIGV4dHJhbmVvdXMgcHJldHR5IHBhdGNoIHdhcm5pbmdzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODI5NQorCisgICAg
ICAgIE5SV1Qgd2Fzbid0IGJlaW5nIGNhcmVmdWwgYWJvdXQgd2hlbiBpdCBsb2dnZWQgbWVzc2Fn
ZXMgZnJvbQorICAgICAgICBQcmV0dHlQYXRjaCBub3QgYmVpbmcgYXZhaWxhYmxlOyBpdCBzaG91
bGQgb25seSBsb2cgZHVyaW5nCisgICAgICAgIGNoZWNrX2J1aWxkKCksIGFuZCBiZSBzaWxlbnQg
b3RoZXJ3aXNlLiBUaGlzIHdhcyBjYXVzaW5nIHVzIHRvCisgICAgICAgIGdldCBtdWx0aXBsZSBl
cnJvcnMgYXQgcnVudGltZSwgd2hpY2ggd2FzIGNvbmZ1c2luZy4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weToKKwogMjAxMS0w
NC0xMyAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBKaWFuIExpLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9iYXNlLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMjMx
Y2U4YmM1ZmFjZTRlMzZlMWRmODY0NjYzZGQwNzllY2I4YjFlMS4uZTg5NTlmMjQ5Yzk2YzQxOGYw
YzQwODBiYzYxMzRkYWQ2N2JhNjY5NwotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0xMzIsMTAgKzEzMiw4IEBAIGNsYXNzIFBvcnQob2JqZWN0
KToKICAgICAgICAgIyBGSVhNRTogcHJldHR5cGF0Y2gucHkga25vd3MgdGhpcyBwYXRoLCB3aHkg
aXMgaXQgY29waWVkIGhlcmU/CiAgICAgICAgIHNlbGYuX3ByZXR0eV9wYXRjaF9wYXRoID0gc2Vs
Zi5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoIldlYnNpdGVzIiwKICAgICAgICAgICAgICJidWdzLndl
YmtpdC5vcmciLCAiUHJldHR5UGF0Y2giLCAicHJldHRpZnkucmIiKQotICAgICAgICAjIElmIHdl
J3JlIHJ1bm5pbmcgb24gYSBtb2NrZWQtb3V0IGZpbGVzeXN0ZW0sIHRoaXMgZmlsZSBhbG1vc3QK
LSAgICAgICAgIyBjZXJ0YWlubHkgd29uJ3QgYmUgYXZhaWxhYmxlLCBzbyBpdCdzIGEgZ29vZCB0
ZXN0IHRvIGtlZXAgdXMKLSAgICAgICAgIyBmcm9tIGVycm9yaW5nIG91dCBsYXRlci4KLSAgICAg
ICAgc2VsZi5fcHJldHR5X3BhdGNoX2F2YWlsYWJsZSA9IHNlbGYuX2ZpbGVzeXN0ZW0uZXhpc3Rz
KHNlbGYuX3ByZXR0eV9wYXRjaF9wYXRoKQorICAgICAgICBzZWxmLl9wcmV0dHlfcGF0Y2hfYXZh
aWxhYmxlID0gTm9uZQorCiAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYuX29wdGlvbnMsICdj
b25maWd1cmF0aW9uJykgb3Igc2VsZi5fb3B0aW9ucy5jb25maWd1cmF0aW9uIGlzIE5vbmU6CiAg
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLmNvbmZpZ3VyYXRpb24gPSBzZWxmLmRlZmF1bHRfY29u
ZmlndXJhdGlvbigpCiAgICAgICAgIHNlbGYuX3Rlc3RfY29uZmlndXJhdGlvbiA9IE5vbmUKQEAg
LTE3OSwyMyArMTc3LDIyIEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgIiIiVGhpcyBy
b3V0aW5lIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciBpbWFnZV9kaWZmIGJpbmFyeSBleGlzdHMu
IiIiCiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQuY2hlY2tfaW1hZ2Vf
ZGlmZicpCiAKLSAgICBkZWYgY2hlY2tfcHJldHR5X3BhdGNoKHNlbGYpOgorICAgIGRlZiBjaGVj
a19wcmV0dHlfcGF0Y2goc2VsZiwgbG9nZ2luZz1UcnVlKToKICAgICAgICAgIiIiQ2hlY2tzIHdo
ZXRoZXIgd2UgY2FuIHVzZSB0aGUgUHJldHR5UGF0Y2ggcnVieSBzY3JpcHQuIiIiCi0KICAgICAg
ICAgIyBjaGVjayBpZiBSdWJ5IGlzIGluc3RhbGxlZAogICAgICAgICB0cnk6CiAgICAgICAgICAg
ICByZXN1bHQgPSBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWydydWJ5JywgJy0tdmVyc2lv
biddKQogICAgICAgICBleGNlcHQgT1NFcnJvciwgZToKICAgICAgICAgICAgIGlmIGUuZXJybm8g
aW4gW2Vycm5vLkVOT0VOVCwgZXJybm8uRUFDQ0VTLCBlcnJuby5FQ0hJTERdOgotICAgICAgICAg
ICAgICAgIF9sb2cuZXJyb3IoIlJ1YnkgaXMgbm90IGluc3RhbGxlZDsgIgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImNhbid0IGdlbmVyYXRlIHByZXR0eSBwYXRjaGVzLiIpCi0gICAgICAg
ICAgICAgICAgX2xvZy5lcnJvcignJykKKyAgICAgICAgICAgICAgICBpZiBsb2dnaW5nOgorICAg
ICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCJSdWJ5IGlzIG5vdCBpbnN0YWxsZWQ7IGNhbid0
IGdlbmVyYXRlIHByZXR0eSBwYXRjaGVzLiIpCisgICAgICAgICAgICAgICAgICAgIF9sb2cuZXJy
b3IoJycpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICAgICAgaWYgbm90IHNl
bGYucGF0aF9leGlzdHMoc2VsZi5fcHJldHR5X3BhdGNoX3BhdGgpOgotICAgICAgICAgICAgX2xv
Zy5lcnJvcignVW5hYmxlIHRvIGZpbmQgJXMgLicgJSBzZWxmLl9wcmV0dHlfcGF0Y2hfcGF0aCkK
LSAgICAgICAgICAgIF9sb2cuZXJyb3IoIkNhbid0IGdlbmVyYXRlIHByZXR0eSBwYXRjaGVzLiIp
Ci0gICAgICAgICAgICBfbG9nLmVycm9yKCcnKQorICAgICAgICAgICAgaWYgbG9nZ2luZzoKKyAg
ICAgICAgICAgICAgICBfbG9nLmVycm9yKCJVbmFibGUgdG8gZmluZCAlczsgY2FuJ3QgZ2VuZXJh
dGUgcHJldHR5IHBhdGNoZXMuIiAlIHNlbGYuX3ByZXR0eV9wYXRjaF9wYXRoKQorICAgICAgICAg
ICAgICAgIF9sb2cuZXJyb3IoJycpCiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgICAg
ICByZXR1cm4gVHJ1ZQpAQCAtNzU4LDYgKzc1NSw4IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAg
ICBfcHJldHR5X3BhdGNoX2Vycm9yX2h0bWwgPSAiRmFpbGVkIHRvIHJ1biBQcmV0dHlQYXRjaCwg
c2VlIGVycm9yIGxvZy4iCiAKICAgICBkZWYgcHJldHR5X3BhdGNoX3RleHQoc2VsZiwgZGlmZl9w
YXRoKToKKyAgICAgICAgaWYgc2VsZi5fcHJldHR5X3BhdGNoX2F2YWlsYWJsZSBpcyBOb25lOgor
ICAgICAgICAgICAgc2VsZi5fcHJldHR5X3BhdGNoX2F2YWlsYWJsZSA9IHNlbGYuY2hlY2tfcHJl
dHR5X3BhdGNoKCkKICAgICAgICAgaWYgbm90IHNlbGYuX3ByZXR0eV9wYXRjaF9hdmFpbGFibGU6
CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJldHR5X3BhdGNoX2Vycm9yX2h0bWwKICAgICAg
ICAgY29tbWFuZCA9ICgicnVieSIsICItSSIsIHNlbGYuX2ZpbGVzeXN0ZW0uZGlybmFtZShzZWxm
Ll9wcmV0dHlfcGF0Y2hfcGF0aCksCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkKaW5kZXggNmM1N2NmMzhlMjUx
ODkxYjk4OGE4Y2M2Y2RlYTU5ZmM5YmYxNDBhNC4uODU4NTZiZDA0OTlmM2E2YjYzNTA3MWE4ODYy
ZTFhNzJlZDQ4MGU4NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weQpAQCAtODYsOCArODYsOCBAQCBjbGFz
cyBQb3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9wcmV0dHlfcGF0
Y2hfc2NyaXB0X2Vycm9yKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIHNvbWUgdWds
eSB3aGl0ZS1ib3ggdGVzdCBoYWNraW5nIC4uLgotICAgICAgICBiYXNlLl9wcmV0dHlfcGF0Y2hf
YXZhaWxhYmxlID0gVHJ1ZQogICAgICAgICBwb3J0ID0gYmFzZS5Qb3J0KGV4ZWN1dGl2ZT1leGVj
dXRpdmVfbW9jay5Nb2NrRXhlY3V0aXZlMihleGNlcHRpb249U2NyaXB0RXJyb3IpKQorICAgICAg
ICBwb3J0Ll9wcmV0dHlfcGF0Y2hfYXZhaWxhYmxlID0gVHJ1ZQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHBvcnQucHJldHR5X3BhdGNoX3RleHQoInBhdGNoLnR4dCIpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgIHBvcnQuX3ByZXR0eV9wYXRjaF9lcnJvcl9odG1sKQogCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRl
eCA0NmYzMzU3OGUzNmFkYmY4YWM4ZmEwYTNiNzljNWZmY2VjZjY2ZWY1Li5lYjEwYTliZDE0ZDg4
YzNhMTZhNWZhODMxODQ5M2ZjYjAyMDIwYjkzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKQEAgLTEwOCw3ICsxMDgsNyBA
QCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0KToKIAogICAgICAgICAjIEl0J3Mgb2theSBp
ZiBwcmV0dHkgcGF0Y2ggaXNuJ3QgYXZhaWxhYmxlLCBidXQgd2Ugd2lsbCBhdAogICAgICAgICAj
IGxlYXN0IGxvZyBhIG1lc3NhZ2UuCi0gICAgICAgIHNlbGYuY2hlY2tfcHJldHR5X3BhdGNoKCkK
KyAgICAgICAgc2VsZi5fcHJldHR5X3BhdGNoX2F2YWlsYWJsZSA9IHNlbGYuY2hlY2tfcHJldHR5
X3BhdGNoKCkKIAogICAgICAgICByZXR1cm4gcmVzdWx0CiAK
</data>
<flag name="review"
          id="82119"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>