<?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>35234</bug_id>
          
          <creation_ts>2010-02-22 04:42:43 -0800</creation_ts>
          <short_desc>check-webkit-style: Make it possible to scan directories</short_desc>
          <delta_ts>2010-03-28 08:06:56 -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>All</rep_platform>
          <op_sys>All</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Leandro Pereira">leandro</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>cjerdonek</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>192419</commentid>
    <comment_count>0</comment_count>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2010-02-22 04:42:43 -0800</bug_when>
    <thetext>The forthcoming patch adds the ability to check-webkit-style scan directories instead of single files/file lists.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192420</commentid>
    <comment_count>1</comment_count>
      <attachid>49203</attachid>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2010-02-22 04:45:05 -0800</bug_when>
    <thetext>Created attachment 49203
Add the ability to check directories in addition to a list of files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192639</commentid>
    <comment_count>2</comment_count>
      <attachid>49203</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-22 14:37:30 -0800</bug_when>
    <thetext>Comment on attachment 49203
Add the ability to check directories in addition to a list of files

The purple bubbles mean that this patch fails to apply. Click on any one of them to see the error messages.  If it fails to apply it can&apos;t be commit-queue&apos;d.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192810</commentid>
    <comment_count>3</comment_count>
      <attachid>49203</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-02-23 00:34:29 -0800</bug_when>
    <thetext>Comment on attachment 49203
Add the ability to check directories in addition to a list of files

Thanks for this patch! I think this feature is useful. r- for style issues below.

&gt; +        &quot;&quot;&quot; Returns a list of files from path, recursively. &quot;&quot;&quot;

Unnecessary whitespace between &quot;&quot;&quot; and Returns. By the way, I think we don&apos;t need this function. Please see the comment below.

&gt; +        l = []

Please use more descriptive name. Maybe file_list?

&gt; +    def check_files(self, files, *args, **kwargs):

I&apos;m not sure why we need *args and **kwargs.

It would be better to rename &quot;files&quot; to &quot;file_paths&quot; or something like this.

&gt; +        &quot;&quot;&quot;Check style in the given files. If files contains a directory,
&gt; +        check it recursively.

The first line of docstrings should be one-line summary. Maybe

&quot;&quot;&quot;Check style in the given files. If files contains a directory,

check it recursively.
...


See http://www.python.org/dev/peps/pep-0257/ for detail.

&gt; +          file_path: A list of strings that contains the the path of the
&gt; +                     files to process.

The name is inconsistent with the actual parameter name.

&gt; +        for filename in files:

I&apos;d like to renmae filename to file_path or something.

&gt; +            if os.path.isdir(filename):
&gt; +                self.check_files(self._listdir_recursive(filename), *args, **kwargs)

I believe we don&apos;t need _listdir_recursive.

self.check_files([os.path.join(filename, p) for p in os.listdir(filename)])

should work (again, we need better name).

Also this line has more than 80 characters. Recently, we are trying to avoid &gt;80 cols lines.


I think we need a unittest for check_files. You may be able to mock check_file function to test check_files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193117</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-23 13:59:04 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=49203) [details]
&gt; Add the ability to check directories in addition to a list of files

You may want to consider a simpler, non-recursive approach using os.walk.

For example, I came across the following method in pep8.py (which we will be using) which seems to do the same thing:

def input_dir(dirname):
    &quot;&quot;&quot;
    Check all Python source files in this directory and all subdirectories.
    &quot;&quot;&quot;
    dirname = dirname.rstrip(&apos;/&apos;)
    if excluded(dirname):
        return
    for root, dirs, files in os.walk(dirname):
        if options.verbose:
            message(&apos;directory &apos; + root)
        options.counters[&apos;directories&apos;] = \
            options.counters.get(&apos;directories&apos;, 0) + 1
        dirs.sort()
        for subdir in dirs:
            if excluded(subdir):
                dirs.remove(subdir)
        files.sort()
        for filename in files:
            if filename_match(filename):
                input_file(os.path.join(root, filename))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193365</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-24 08:18:09 -0800</bug_when>
    <thetext>Retitling.  Brackets are usually reserved for port-specific reports like [Qt}, [GTK], etc and not feature-specific reports.  See here, for example--

https://lists.webkit.org/pipermail/webkit-dev/2010-January/011374.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193391</commentid>
    <comment_count>6</comment_count>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2010-02-24 09:35:18 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; 
&gt; You may want to consider a simpler, non-recursive approach using os.walk.
&gt;

Nice. I only knew about os.path.walk, which requires some additional code. I&apos;ll rewrite my code to use os.walk, then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205092</commentid>
    <comment_count>7</comment_count>
      <attachid>51849</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-27 20:35:15 -0700</bug_when>
    <thetext>Created attachment 51849
Proposed patch

Submitting a patch because this is useful for something I&apos;ll be working on soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205148</commentid>
    <comment_count>8</comment_count>
      <attachid>51849</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-03-28 04:26:56 -0700</bug_when>
    <thetext>Comment on attachment 51849
Proposed patch

Looks good. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205150</commentid>
    <comment_count>9</comment_count>
      <attachid>51849</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-28 04:37:53 -0700</bug_when>
    <thetext>Comment on attachment 51849
Proposed patch

Rejecting patch 51849 from commit-queue.

Failed to run &quot;[&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, &apos;--reviewer&apos;, &apos;Shinichiro Hamaji&apos;, &apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
ebKitTools/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file WebKitTools/Scripts/check-webkit-style
Hunk #1 FAILED at 87.
1 out of 1 hunk FAILED -- saving rejects to file WebKitTools/Scripts/check-webkit-style.rej
patching file WebKitTools/Scripts/webkitpy/style/checker.py
patching file WebKitTools/Scripts/webkitpy/style/checker_unittest.py
Hunk #2 succeeded at 647 (offset 2 lines).
patching file WebKitTools/Scripts/webkitpy/style/optparser.py
Hunk #1 succeeded at 42 (offset 3 lines).

Full output: http://webkit-commit-queue.appspot.com/results/1626033</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205167</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-28 07:53:35 -0700</bug_when>
    <thetext>Thanks for the weekend review!

Manually committed after rebasing and resolving the conflict:

http://trac.webkit.org/changeset/56690</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205168</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-28 08:06:56 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Thanks for the weekend review!
&gt; 
&gt; Manually committed after rebasing and resolving the conflict:
&gt; 
&gt; http://trac.webkit.org/changeset/56690

Fixed this commit:

http://trac.webkit.org/changeset/56691</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49203</attachid>
            <date>2010-02-22 04:45:05 -0800</date>
            <delta_ts>2010-03-27 20:35:15 -0700</delta_ts>
            <desc>Add the ability to check directories in addition to a list of files</desc>
            <filename>check_files.diff</filename>
            <type>text/plain</type>
            <size>4072</size>
            <attacher name="Leandro Pereira">leandro</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU1MDc3KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMTAtMDItMjIgIExlYW5kcm8gUGVyZWlyYSAg
PGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZLgor
CisgICAgICAgIEFkZCB0aGUgYWJpbGl0eSB0byBjaGVjayBkaXJlY3RvcmllcyB3aXRoIGNoZWNr
LXdlYmtpdC1zdHlsZS4KKyAgICAgICAgaHR0cDovL3dlYmtpdC5vcmcvYi8zNTIzNAorCisgICAg
ICAgICogV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5OgorICAg
ICAgICAqIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvb3B0cGFyc2VyLnB5Ogor
ICAgICAgICAqIFdlYktpdFRvb2xzL1NjcmlwdHMvY2hlY2std2Via2l0LXN0eWxlOgorCiAyMDEw
LTAyLTIwICBDaHJpcyBKZXJkb25layAgPGNqZXJkb25la0B3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CShyZXZpc2lvbiA1NTA3NykKKysrIFdlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDYgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAxMCBDaHJpcyBKZXJkb25layAoY2hyaXMuamVyZG9u
ZWtAZ21haWwuY29tKQorIyBDb3B5cmlnaHQgKEMpIDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5
c3RlbXMKICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ2MSw2ICs0NjQsNDQg
QEAKIAogICAgICAgICBwcm9jZXNzb3IucHJvY2VzcyhsaW5lcykKIAorICAgIGRlZiBfbGlzdGRp
cl9yZWN1cnNpdmUoc2VsZiwgcGF0aCk6CisgICAgICAgICIiIiBSZXR1cm5zIGEgbGlzdCBvZiBm
aWxlcyBmcm9tIHBhdGgsIHJlY3Vyc2l2ZWx5LiAiIiIKKyAgICAgICAgbCA9IFtdCisKKyAgICAg
ICAgZGVmIF9fbGlzdGRpcl9yZWN1cnNpdmUocGF0aCwgZmlsZV9saXN0KToKKyAgICAgICAgICAg
IGZvciBmaWxlbmFtZSBpbiBvcy5saXN0ZGlyKHBhdGgpOgorICAgICAgICAgICAgICAgIGZpbGVu
YW1lID0gb3MucGF0aC5qb2luKHBhdGgsIGZpbGVuYW1lKQorCisgICAgICAgICAgICAgICAgaWYg
b3MucGF0aC5pc2RpcihmaWxlbmFtZSk6CisgICAgICAgICAgICAgICAgICAgIF9fbGlzdGRpcl9y
ZWN1cnNpdmUoZmlsZW5hbWUsIGZpbGVfbGlzdCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgICAgICBmaWxlX2xpc3QuYXBwZW5kKGZpbGVuYW1lKQorCisgICAgICAgIF9f
bGlzdGRpcl9yZWN1cnNpdmUocGF0aCwgbCkKKworICAgICAgICByZXR1cm4gbAorCisgICAgZGVm
IGNoZWNrX2ZpbGVzKHNlbGYsIGZpbGVzLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiJD
aGVjayBzdHlsZSBpbiB0aGUgZ2l2ZW4gZmlsZXMuIElmIGZpbGVzIGNvbnRhaW5zIGEgZGlyZWN0
b3J5LAorICAgICAgICBjaGVjayBpdCByZWN1cnNpdmVseS4KKyAgICAgICAgCisgICAgICAgIEFy
Z3M6CisgICAgICAgICAgZmlsZV9wYXRoOiBBIGxpc3Qgb2Ygc3RyaW5ncyB0aGF0IGNvbnRhaW5z
IHRoZSB0aGUgcGF0aCBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgIGZpbGVzIHRvIHByb2Nl
c3MuCisgICAgICAgICAgaGFuZGxlX3N0eWxlX2Vycm9yOiBUaGUgZnVuY3Rpb24gdG8gY2FsbCB3
aGVuIGEgc3R5bGUgZXJyb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9jY3Vycy4g
VGhpcyBwYXJhbWV0ZXIgaXMgbWVhbnQgZm9yIGludGVybmFsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1c2Ugd2l0aGluIHRoaXMgY2xhc3MuIERlZmF1bHRzIHRvIGEKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRTdHlsZUVycm9ySGFuZGxlciBpbnN0YW5jZS4K
KyAgICAgICAgICBwcm9jZXNzX2ZpbGU6IFRoZSBmdW5jdGlvbiB0byBjYWxsIHRvIHByb2Nlc3Mg
dGhlIGZpbGUuIFRoaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlciBzaG91bGQg
YmUgdXNlZCBvbmx5IGZvciB1bml0IHRlc3RzLgorICAgICAgICAgICAgICAgICAgICAgICAgRGVm
YXVsdHMgdG8gdGhlIGZpbGUgcHJvY2Vzc2luZyBtZXRob2Qgb2YgdGhpcyBjbGFzcy4KKyAgICAg
ICAgIiIiCisgICAgICAgIGZvciBmaWxlbmFtZSBpbiBmaWxlczoKKyAgICAgICAgICAgIGlmIG9z
LnBhdGguaXNkaXIoZmlsZW5hbWUpOgorICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tfZmlsZXMo
c2VsZi5fbGlzdGRpcl9yZWN1cnNpdmUoZmlsZW5hbWUpLCAqYXJncywgKiprd2FyZ3MpCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tfZmlsZShmaWxlbmFtZSwg
KmFyZ3MsICoqa3dhcmdzKQorCiAgICAgZGVmIGNoZWNrX2ZpbGUoc2VsZiwgZmlsZV9wYXRoLCBo
YW5kbGVfc3R5bGVfZXJyb3I9Tm9uZSwgcHJvY2Vzc19maWxlPU5vbmUpOgogICAgICAgICAiIiJD
aGVjayBzdHlsZSBpbiB0aGUgZ2l2ZW4gZmlsZS4KIApJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0
cy9jaGVjay13ZWJraXQtc3R5bGUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy9j
aGVjay13ZWJraXQtc3R5bGUJKHJldmlzaW9uIDU1MDc3KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0
cy9jaGVjay13ZWJraXQtc3R5bGUJKHdvcmtpbmcgY29weSkKQEAgLTY0LDkgKzY0LDcgQEAKICAg
ICBzdHlsZV9jaGVja2VyID0gY2hlY2tlci5TdHlsZUNoZWNrZXIoY29uZmlndXJhdGlvbikKIAog
ICAgIGlmIGZpbGVzOgotICAgICAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZXM6Ci0gICAgICAgICAg
ICBzdHlsZV9jaGVja2VyLmNoZWNrX2ZpbGUoZmlsZW5hbWUpCi0KKyAgICAgICAgc3R5bGVfY2hl
Y2tlci5jaGVja19maWxlcyhmaWxlcykKICAgICBlbHNlOgogICAgICAgICBzY20gPSBTaW1wbGVT
Y20oKQogCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL29wdHBhcnNl
ci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL29w
dHBhcnNlci5weQkocmV2aXNpb24gNTUwNzcpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL29wdHBhcnNlci5weQkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQAog
ICAgICIiIgogICAgIHVzYWdlID0gIiIiCiBTeW50YXg6ICUocHJvZ3JhbV9uYW1lKXMgWy0tdmVy
Ym9zZT0jXSBbLS1naXQtY29tbWl0PTxTaW5nbGVDb21taXQ+XSBbLS1vdXRwdXQ9dnM3XQotICAg
ICAgICBbLS1maWx0ZXI9LXgsK3ksLi4uXSBbZmlsZV0gLi4uCisgICAgICAgIFstLWZpbHRlcj0t
eCwreSwuLi5dIFtmaWxlIG9yIGRpcmVjdG9yeV0gLi4uCiAKICAgVGhlIHN0eWxlIGd1aWRlbGlu
ZXMgdGhpcyB0cmllcyB0byBmb2xsb3cgYXJlIGhlcmU6CiAgICAgaHR0cDovL3dlYmtpdC5vcmcv
Y29kaW5nL2NvZGluZy1zdHlsZS5odG1sCg==
</data>
<flag name="review"
          id="31992"
          type_id="1"
          status="-"
          setter="hamaji"
    />
    <flag name="commit-queue"
          id="31993"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51849</attachid>
            <date>2010-03-27 20:35:15 -0700</date>
            <delta_ts>2010-03-28 04:37:53 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-35234-1.diff</filename>
            <type>text/plain</type>
            <size>6648</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5MjQyNDZiLi44OGJjYzcwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDMt
MjcgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRvIGNoZWNrLXdlYmtpdC1z
dHlsZSBzdXBwb3J0IGZvciBjaGVja2luZyBkaXJlY3Rvcmllcy4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUyMzQKKworICAgICAgICAqIFNjcmlw
dHMvY2hlY2std2Via2l0LXN0eWxlOgorICAgICAgICAgIC0gUmVwbGFjZWQgdGhlIGNhbGwgdG8g
Y2hlY2tfZmlsZSgpIHdpdGggYSBjYWxsIHRvIGNoZWNrX3BhdGhzKCkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAgICAgLSBJbiB0aGUgU3R5
bGVDaGVja2VyIGNsYXNzOgorICAgICAgICAgICAgLSBBZGRlZCBhIGNoZWNrX3BhdGhzKCkgbWV0
aG9kIHRoYXQgYWNjZXB0cyBhIGxpc3Qgb2YgcGF0aHMKKyAgICAgICAgICAgICAgdG8gZmlsZXMg
YW5kIGRpcmVjdG9yaWVzLgorICAgICAgICAgICAgLSBBZGRlZCBhIF9jaGVja19kaXJlY3Rvcnko
KSBtZXRob2QgdGhhdCBjaGVja3MgdGhlIGZpbGVzCisgICAgICAgICAgICAgIGluIGEgZGlyZWN0
b3J5LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0
LnB5OgorICAgICAgICAgIC0gQWRkZWQgYSBTdHlsZUNoZWNrZXJDaGVja1BhdGhzVGVzdCB0byB1
bml0LXRlc3QgdGhlIG5ldworICAgICAgICAgICAgY2hlY2tfcGF0aHMoKSBtZXRob2QuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL29wdHBhcnNlci5weToKKyAgICAgICAgICAt
IFVwZGF0ZWQgdGhlIHVzYWdlIHN0cmluZy4KKwogMjAxMC0wMy0yNyAgUm9iZXJ0IEhvZ2FuICA8
cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9jaGVjay13ZWJraXQtc3R5bGUgYi9XZWJL
aXRUb29scy9TY3JpcHRzL2NoZWNrLXdlYmtpdC1zdHlsZQppbmRleCBkNDdkYzNiLi4xYzAzNDBj
IDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL2NoZWNrLXdlYmtpdC1zdHlsZQorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL2NoZWNrLXdlYmtpdC1zdHlsZQpAQCAtODcsOSArODcsNyBA
QCBkZWYgbWFpbigpOgogICAgIHN0eWxlX2NoZWNrZXIgPSBjaGVja2VyLlN0eWxlQ2hlY2tlcihj
b25maWd1cmF0aW9uKQogCiAgICAgaWYgZmlsZXM6Ci0gICAgICAgIGZvciBmaWxlbmFtZSBpbiBm
aWxlczoKLSAgICAgICAgICAgIHN0eWxlX2NoZWNrZXIuY2hlY2tfZmlsZShmaWxlbmFtZSkKLQor
ICAgICAgICBzdHlsZV9jaGVja2VyLmNoZWNrX3BhdGhzKGZpbGVzKQogICAgIGVsc2U6CiAgICAg
ICAgIHNjbSA9IFNpbXBsZVNjbSgpCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlci5weQppbmRleCAzZTY5Zjk2Li4wODY0MDQ0IDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC0xLDUgKzEsNiBAQAogIyBD
b3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29w
eXJpZ2h0IChDKSAyMDEwIENocmlzIEplcmRvbmVrIChjaHJpcy5qZXJkb25la0BnbWFpbC5jb20p
CisjIENvcHlyaWdodCAoQykgMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwogIwogIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTgyLDYgKzU4Myw0MyBAQCBjbGFzcyBTdHls
ZUNoZWNrZXIob2JqZWN0KToKIAogICAgICAgICBwcm9jZXNzb3IucHJvY2VzcyhsaW5lcykKIAor
ICAgIGRlZiBjaGVja19wYXRocyhzZWxmLCBwYXRocywgbW9ja19jaGVja19maWxlPU5vbmUsIG1v
Y2tfb3M9Tm9uZSk6CisgICAgICAgICIiIkNoZWNrIHN0eWxlIGluIHRoZSBnaXZlbiBmaWxlcyBv
ciBkaXJlY3Rvcmllcy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIHBhdGhzOiBBIGxpc3Qg
b2YgZmlsZSBwYXRocyBhbmQgZGlyZWN0b3J5IHBhdGhzLgorICAgICAgICAgIG1vY2tfY2hlY2tf
ZmlsZTogQSBtb2NrIG9mIHNlbGYuY2hlY2tfZmlsZSBmb3IgdW5pdCB0ZXN0aW5nLgorICAgICAg
ICAgIG1vY2tfb3M6IEEgbW9jayBvcyBmb3IgdW5pdCB0ZXN0aW5nLgorCisgICAgICAgICIiIgor
ICAgICAgICBjaGVja19maWxlID0gc2VsZi5jaGVja19maWxlIGlmIG1vY2tfY2hlY2tfZmlsZSBp
cyBOb25lIGVsc2UgXAorICAgICAgICAgICAgICAgICAgICAgbW9ja19jaGVja19maWxlCisgICAg
ICAgIG9zX21vZHVsZSA9IG9zIGlmIG1vY2tfb3MgaXMgTm9uZSBlbHNlIG1vY2tfb3MKKworICAg
ICAgICBmb3IgcGF0aCBpbiBwYXRoczoKKyAgICAgICAgICAgIGlmIG9zX21vZHVsZS5wYXRoLmlz
ZGlyKHBhdGgpOgorICAgICAgICAgICAgICAgIHNlbGYuX2NoZWNrX2RpcmVjdG9yeShkaXJlY3Rv
cnk9cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfZmls
ZT1jaGVja19maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2Nr
X29zX3dhbGs9b3NfbW9kdWxlLndhbGspCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIGNoZWNrX2ZpbGUocGF0aCkKKworICAgIGRlZiBfY2hlY2tfZGlyZWN0b3J5KHNlbGYsIGRp
cmVjdG9yeSwgY2hlY2tfZmlsZSwgbW9ja19vc193YWxrPU5vbmUpOgorICAgICAgICAiIiJDaGVj
ayBzdHlsZSBpbiBhbGwgZmlsZXMgaW4gYSBkaXJlY3RvcnksIHJlY3Vyc2l2ZWx5LgorCisgICAg
ICAgIEFyZ3M6CisgICAgICAgICAgZGlyZWN0b3J5OiBBIHBhdGggdG8gYSBkaXJlY3RvcnkuCisg
ICAgICAgICAgY2hlY2tfZmlsZTogVGhlIGZ1bmN0aW9uIHRvIHVzZSBpbiBwbGFjZSBvZiBzZWxm
LmNoZWNrX2ZpbGUoKS4KKyAgICAgICAgICBtb2NrX29zX3dhbGs6IEEgbW9jayBvcy53YWxrIGZv
ciB1bml0IHRlc3RpbmcuCisKKyAgICAgICAgIiIiCisgICAgICAgIG9zX3dhbGsgPSBvcy53YWxr
IGlmIG1vY2tfb3Nfd2FsayBpcyBOb25lIGVsc2UgbW9ja19vc193YWxrCisKKyAgICAgICAgZm9y
IGRpcl9wYXRoLCBkaXJfbmFtZXMsIGZpbGVfbmFtZXMgaW4gb3Nfd2FsayhkaXJlY3RvcnkpOgor
ICAgICAgICAgICAgZm9yIGZpbGVfbmFtZSBpbiBmaWxlX25hbWVzOgorICAgICAgICAgICAgICAg
IGZpbGVfcGF0aCA9IG9zLnBhdGguam9pbihkaXJfcGF0aCwgZmlsZV9uYW1lKQorICAgICAgICAg
ICAgICAgIGNoZWNrX2ZpbGUoZmlsZV9wYXRoKQorCiAgICAgZGVmIGNoZWNrX2ZpbGUoc2VsZiwg
ZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3I9Tm9uZSwgcHJvY2Vzc19maWxlPU5vbmUpOgog
ICAgICAgICAiIiJDaGVjayBzdHlsZSBpbiB0aGUgZ2l2ZW4gZmlsZS4KIApkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5Cmlu
ZGV4IGE1NjZhMTguLjdkN2M1ZDggMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKQEAgLTM1LDYgKzM1LDcgQEAKICIi
IlVuaXQgdGVzdHMgZm9yIHN0eWxlLnB5LiIiIgogCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9z
CiBpbXBvcnQgdW5pdHRlc3QKIAogaW1wb3J0IGNoZWNrZXIgYXMgc3R5bGUKQEAgLTY0NCw2ICs2
NDUsNTQgQEAgY2xhc3MgU3R5bGVDaGVja2VyQ2hlY2tGaWxlVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIpCiAKIAorY2xhc3MgU3R5bGVD
aGVja2VyQ2hlY2tQYXRoc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgIiIiVGVzdCB0
aGUgY2hlY2tfcGF0aHMoKSBtZXRob2Qgb2YgdGhlIFN0eWxlQ2hlY2tlciBjbGFzcy4iIiIKKwor
ICAgIGNsYXNzIE1vY2tPcyhvYmplY3QpOgorCisgICAgICAgIGNsYXNzIE1vY2tQYXRoKG9iamVj
dCk6CisKKyAgICAgICAgICAgICIiIkEgbW9jayBvcy5wYXRoLiIiIgorCisgICAgICAgICAgICBk
ZWYgaXNkaXIoc2VsZiwgcGF0aCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHBhdGggPT0gImRp
cmVjdG9yeSIKKworICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICBzZWxm
LnBhdGggPSBzZWxmLk1vY2tQYXRoKCkKKworICAgICAgICBkZWYgd2FsayhzZWxmLCBkaXJlY3Rv
cnkpOgorICAgICAgICAgICAgIiIiQSBtb2NrIG9mIG9zLndhbGsuIiIiCisgICAgICAgICAgICBp
ZiBkaXJlY3RvcnkgPT0gImRpcmVjdG9yeSI6CisgICAgICAgICAgICAgICAgZGlycyA9IFsoImRp
cl9wYXRoMSIsIFtdLCBbImZpbGUxIiwgImZpbGUyIl0pLAorICAgICAgICAgICAgICAgICAgICAg
ICAgKCJkaXJfcGF0aDIiLCBbXSwgWyJmaWxlMyJdKV0KKyAgICAgICAgICAgICAgICByZXR1cm4g
ZGlycworICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAg
ICAgICAgc2VsZi5fY2hlY2tlZF9maWxlcyA9IFtdCisKKyAgICBkZWYgX21vY2tfY2hlY2tfZmls
ZShzZWxmLCBmaWxlKToKKyAgICAgICAgc2VsZi5fY2hlY2tlZF9maWxlcy5hcHBlbmQoZmlsZSkK
KworICAgIGRlZiB0ZXN0X2NoZWNrX3BhdGhzKHNlbGYpOgorICAgICAgICAiIiJUZXN0IFN0eWxl
Q2hlY2tlci5jaGVja19wYXRocygpLiIiIgorICAgICAgICBjaGVja2VyID0gU3R5bGVDaGVja2Vy
KGNvbmZpZ3VyYXRpb249Tm9uZSkKKyAgICAgICAgbW9ja19jaGVja19maWxlID0gc2VsZi5fbW9j
a19jaGVja19maWxlCisgICAgICAgIG1vY2tfb3MgPSBzZWxmLk1vY2tPcygpCisKKyAgICAgICAg
IyBDb25maXJtIHRoYXQgY2hlY2tlZCBmaWxlcyBpcyBlbXB0eSBhdCB0aGUgb3V0c2V0LgorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9jaGVja2VkX2ZpbGVzLCBbXSkKKyAgICAgICAg
Y2hlY2tlci5jaGVja19wYXRocyhbInBhdGgxIiwgImRpcmVjdG9yeSJdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1vY2tfY2hlY2tfZmlsZT1tb2NrX2NoZWNrX2ZpbGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbW9ja19vcz1tb2NrX29zKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhzZWxmLl9jaGVja2VkX2ZpbGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBb
InBhdGgxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbigiZGlyX3Bh
dGgxIiwgImZpbGUxIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4o
ImRpcl9wYXRoMSIsICJmaWxlMiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0
aC5qb2luKCJkaXJfcGF0aDIiLCAiZmlsZTMiKV0pCisKKwogaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKICAgICBpbXBvcnQgc3lzCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvb3B0cGFyc2VyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9vcHRwYXJzZXIucHkKaW5kZXggZmM0MGE0My4uOGFjODM3NyAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9vcHRwYXJzZXIucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9vcHRwYXJzZXIucHkKQEAgLTM5LDcgKzM5
LDcgQEAgZGVmIF9jcmVhdGVfdXNhZ2UoZGVmYXVsdF9vcHRpb25zKToKICAgICAiIiIKICAgICB1
c2FnZSA9ICIiIgogU3ludGF4OiAlKHByb2dyYW1fbmFtZSlzIFstLWRlYnVnXSBbLS12ZXJib3Nl
PSNdIFstLWdpdC1jb21taXQ9PFNpbmdsZUNvbW1pdD5dCi0gICAgICAgIFstLW91dHB1dD12czdd
IFstLWZpbHRlcj0teCwreSwuLi5dIFtmaWxlXSAuLi4KKyAgICAgICAgWy0tb3V0cHV0PXZzN10g
Wy0tZmlsdGVyPS14LCt5LC4uLl0gW2ZpbGUgb3IgZGlyZWN0b3J5XSAuLi4KIAogICBUaGUgc3R5
bGUgZ3VpZGVsaW5lcyB0aGlzIHRyaWVzIHRvIGZvbGxvdyBhcmUgaGVyZToKICAgICBodHRwOi8v
d2Via2l0Lm9yZy9jb2RpbmcvY29kaW5nLXN0eWxlLmh0bWwK
</data>
<flag name="review"
          id="35205"
          type_id="1"
          status="+"
          setter="hamaji"
    />
    <flag name="commit-queue"
          id="35206"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>