<?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>35490</bug_id>
          
          <creation_ts>2010-02-28 00:07:08 -0800</creation_ts>
          <short_desc>check-webkit-style: Refactor StyleChecker._process_file()</short_desc>
          <delta_ts>2010-03-02 09:27:23 -0800</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>194560</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-28 00:07:08 -0800</bug_when>
    <thetext>The _process_file() method of webkitpy.style.StyleChecker currently does a few different things, including:

(1) Parsing the lines out of a file
(2) Logging if a file is not present
(3) Handling trailing carriage returns in lines.

Refactoring different file-processing functionality into appropriate methods will make it easier to incorporate other types of file-processing into check-webkit-style, for example processing licenses:

https://bugs.webkit.org/show_bug.cgi?id=35465</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194562</commentid>
    <comment_count>1</comment_count>
      <attachid>49695</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-28 00:20:37 -0800</bug_when>
    <thetext>Created attachment 49695
Proposed patch

cq- since this patch depends on the patch for the following report being committed:

https://bugs.webkit.org/show_bug.cgi?id=35484</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194653</commentid>
    <comment_count>2</comment_count>
      <attachid>49695</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-03-01 02:08:15 -0800</bug_when>
    <thetext>Comment on attachment 49695
Proposed patch

Looks good except for style nitpicks.

&gt; +            self._handle_style_error(line_number + 1,  # Correct for offset.

I think we have only one space before a comment in new code (maybe because we are using this style in C++ code). Note that the code of style checker (especially cpp.py) may have 2 spaces because they are from Google.

&gt; +        if error_lines:
&gt; +            expected_errors = [(line_number, self._category,
&gt; +                                self._confidence, self._expected_message)
&gt; +                               for line_number in error_lines]
&gt;              self.assertEquals(self._style_errors, expected_errors)
&gt;          else:
&gt;              self.assertEquals(self._style_errors, [])

I guess we don&apos;t need &quot;if&quot; and &quot;else&quot; here?

&gt; +    def test_two_lines(self):
&gt; +        # The CarriageReturnProcessor checks only the final character
&gt; +        # of each line.
&gt; +        self.assert_carriage_return([&quot;line1&quot;, &quot;line2\r&quot;],
&gt; +                                    [&quot;line1&quot;, &quot;line2&quot;],
&gt; +                                    [2])

What happens if we provide multiple &apos;\r&apos;s ? I guess multiple error lines will appear because the mock error handler doesn&apos;t know about suppression? Anyway, I think it&apos;s worth adding a case for multiple &apos;\r&apos;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194950</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-01 22:40:26 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 49695 [details])
&gt; Looks good except for style nitpicks.
&gt; 
&gt; &gt; +            self._handle_style_error(line_number + 1,  # Correct for offset.
&gt; 
&gt; I think we have only one space before a comment in new code (maybe because we
&gt; are using this style in C++ code). Note that the code of style checker
&gt; (especially cpp.py) may have 2 spaces because they are from Google.

I did that because PEP8 requires at least two spaces for inline comments.

I will also address the other comments.  Good eye on the if-else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195069</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-02 09:27:23 -0800</bug_when>
    <thetext>Manually committed (via &quot;git svn dcommit&quot;):

http://trac.webkit.org/changeset/55411</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49695</attachid>
            <date>2010-02-28 00:20:37 -0800</date>
            <delta_ts>2010-03-01 02:08:15 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-35490-1.diff</filename>
            <type>text/plain</type>
            <size>12914</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwYmZhZDI3Li4xZGUzNTcwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDIt
MjggIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JlZCB0aGUgU3R5bGVD
aGVja2VyIGNsYXNzJ3MgZmlsZS1wcm9jZXNzaW5nIG1ldGhvZAorICAgICAgICBfcHJvY2Vzc19m
aWxlKCkuICBUaGlzIHdpbGwgbWFrZSBpdCBlYXNpZXIgdG8gYWRkIG5ldworICAgICAgICBmaWxl
LXByb2Nlc3NpbmcgY2FwYWJpbGl0aWVzIHRvIGNoZWNrLXdlYmtpdC1zdHlsZS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU0OTAKKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weToKKyAgICAgICAgICAtIEFkZGVk
IGEgX3JlYWRfbGluZXMoKSBtZXRob2QgdG8gdGhlIFN0eWxlQ2hlY2tlciBjbGFzcworICAgICAg
ICAgICAgdGhhdCBleHRyYWN0cyB0aGUgbGluZXMgZnJvbSBhIGZpbGUuCisgICAgICAgICAgLSBS
ZXBsYWNlZCBwYXJ0IG9mIF9wcm9jZXNzX2ZpbGUoKSB3aXRoIGEgY2FsbCB0byB0aGUgbmV3Cisg
ICAgICAgICAgICBfcmVhZF9saW5lcygpIG1ldGhvZC4KKyAgICAgICAgICAtIFJlcGxhY2VkIGFu
b3RoZXIgcGFydCBvZiBfcHJvY2Vzc19maWxlKCkgd2l0aCBhIGNhbGwKKyAgICAgICAgICAgIHRv
IHRoZSBuZXcgQ2FycmlhZ2VSZXR1cm5Qcm9jZXNzb3IucHJvY2VzcygpIG1ldGhvZC4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9jb21tb24ucHk6CisgICAg
ICAgICAgLSBSZXBsYWNlZCB0aGUgY2hlY2tfbm9fY2FycmlhZ2VfcmV0dXJuKCkgZnVuY3Rpb24g
d2l0aCBhCisgICAgICAgICAgICBuZXcgQ2FycmlhZ2VSZXR1cm5Qcm9jZXNzb3IgY2xhc3MuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3Byb2Nlc3NvcnMvY29tbW9uX3VuaXR0
ZXN0LnB5OgorICAgICAgICAgIC0gUmVuYW1lZCB0aGUgQ2FycmlhZ2VSZXR1cm5UZXN0IGNsYXNz
IHRvCisgICAgICAgICAgICBDYXJyaWFnZVJldHVyblByb2Nlc3NvclRlc3QgYW5kIHVwZGF0ZWQg
aXQgYXMgbmVjZXNzYXJ5LgorCiAyMDEwLTAyLTI3ICBDaHJpcyBKZXJkb25layAgPGNqZXJkb25l
a0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IGMzNmZh
ZTQuLmMwMGU3OWYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlci5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2No
ZWNrZXIucHkKQEAgLTQwLDggKzQwLDggQEAgZnJvbSBlcnJvcl9oYW5kbGVycyBpbXBvcnQgUGF0
Y2hTdHlsZUVycm9ySGFuZGxlcgogZnJvbSBmaWx0ZXIgaW1wb3J0IEZpbHRlckNvbmZpZ3VyYXRp
b24KIGZyb20gb3B0cGFyc2VyIGltcG9ydCBBcmd1bWVudFBhcnNlcgogZnJvbSBvcHRwYXJzZXIg
aW1wb3J0IERlZmF1bHRDb21tYW5kT3B0aW9uVmFsdWVzCi1mcm9tIHByb2Nlc3NvcnMuY29tbW9u
IGltcG9ydCBjaGVja19ub19jYXJyaWFnZV9yZXR1cm4KIGZyb20gcHJvY2Vzc29ycy5jb21tb24g
aW1wb3J0IGNhdGVnb3JpZXMgYXMgQ29tbW9uQ2F0ZWdvcmllcworZnJvbSBwcm9jZXNzb3JzLmNv
bW1vbiBpbXBvcnQgQ2FycmlhZ2VSZXR1cm5Qcm9jZXNzb3IKIGZyb20gcHJvY2Vzc29ycy5jcHAg
aW1wb3J0IENwcFByb2Nlc3NvcgogZnJvbSBwcm9jZXNzb3JzLnB5dGhvbiBpbXBvcnQgUHl0aG9u
UHJvY2Vzc29yCiBmcm9tIHByb2Nlc3NvcnMudGV4dCBpbXBvcnQgVGV4dFByb2Nlc3NvcgpAQCAt
NTEyLDUxICs1MTIsNDggQEAgY2xhc3MgU3R5bGVDaGVja2VyKG9iamVjdCk6CiAgICAgICAgICIi
IkluY3JlbWVudCB0aGUgdG90YWwgY291bnQgb2YgcmVwb3J0ZWQgZXJyb3JzLiIiIgogICAgICAg
ICBzZWxmLmVycm9yX2NvdW50ICs9IDEKIAorICAgIGRlZiBfcmVhZF9saW5lcyhzZWxmLCBmaWxl
X3BhdGgpOgorICAgICAgICAiIiJSZWFkIHRoZSBmaWxlIGF0IGEgcGF0aCwgYW5kIHJldHVybiBp
dHMgbGluZXMuCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgIElPRXJyb3I6IGlmIHRoZSBm
aWxlIGRvZXMgbm90IGV4aXN0IG9yIGNhbm5vdCBiZSByZWFkLgorCisgICAgICAgICIiIgorICAg
ICAgICAjIFN1cHBvcnQgdGhlIFVOSVggY29udmVudGlvbiBvZiB1c2luZyAiLSIgZm9yIHN0ZGlu
LgorICAgICAgICBpZiBmaWxlX3BhdGggPT0gJy0nOgorICAgICAgICAgICAgZmlsZSA9IGNvZGVj
cy5TdHJlYW1SZWFkZXJXcml0ZXIoc3lzLnN0ZGluLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29kZWNzLmdldHJlYWRlcigndXRmOCcpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZWNzLmdldHdyaXRlcigndXRm
OCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlcGxh
Y2UnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBXZSBkbyBub3Qgb3BlbiB0aGUgZmls
ZSB3aXRoIHVuaXZlcnNhbCBuZXdsaW5lIHN1cHBvcnQKKyAgICAgICAgICAgICMgKGNvZGVjcyBk
b2VzIG5vdCBzdXBwb3J0IGl0IGFueXdheSksIHNvIHRoZSByZXN1bHRpbmcKKyAgICAgICAgICAg
ICMgbGluZXMgY29udGFpbiB0cmFpbGluZyAiXHIiIGNoYXJhY3RlcnMgaWYgd2UgYXJlIHJlYWRp
bmcKKyAgICAgICAgICAgICMgYSBmaWxlIHdpdGggQ1JMRiBlbmRpbmdzLgorICAgICAgICAgICAg
ZmlsZSA9IGNvZGVjcy5vcGVuKGZpbGVfcGF0aCwgJ3InLCAndXRmOCcsICdyZXBsYWNlJykKKwor
ICAgICAgICBjb250ZW50cyA9IGZpbGUucmVhZCgpCisKKyAgICAgICAgbGluZXMgPSBjb250ZW50
cy5zcGxpdCgiXG4iKQorICAgICAgICByZXR1cm4gbGluZXMKKwogICAgIGRlZiBfcHJvY2Vzc19m
aWxlKHNlbGYsIHByb2Nlc3NvciwgZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3IpOgotICAg
ICAgICAiIiJQcm9jZXNzIHRoZSBmaWxlIHVzaW5nIHRoZSBnaXZlbiBwcm9jZXNzb3IuIiIiCisg
ICAgICAgICIiIlByb2Nlc3MgdGhlIGZpbGUgdXNpbmcgdGhlIGdpdmVuIHN0eWxlIHByb2Nlc3Nv
ci4iIiIKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBTdXBwb3J0IHRoZSBVTklYIGNvbnZl
bnRpb24gb2YgdXNpbmcgIi0iIGZvciBzdGRpbi4gIE5vdGUgdGhhdAotICAgICAgICAgICAgIyB3
ZSBhcmUgbm90IG9wZW5pbmcgdGhlIGZpbGUgd2l0aCB1bml2ZXJzYWwgbmV3bGluZSBzdXBwb3J0
Ci0gICAgICAgICAgICAjICh3aGljaCBjb2RlY3MgZG9lc24ndCBzdXBwb3J0IGFueXdheSksIHNv
IHRoZSByZXN1bHRpbmcgbGluZXMgZG8KLSAgICAgICAgICAgICMgY29udGFpbiB0cmFpbGluZyAn
XHInIGNoYXJhY3RlcnMgaWYgd2UgYXJlIHJlYWRpbmcgYSBmaWxlIHRoYXQKLSAgICAgICAgICAg
ICMgaGFzIENSTEYgZW5kaW5ncy4KLSAgICAgICAgICAgICMgSWYgYWZ0ZXIgdGhlIHNwbGl0IGEg
dHJhaWxpbmcgJ1xyJyBpcyBwcmVzZW50LCBpdCBpcyByZW1vdmVkCi0gICAgICAgICAgICAjIGJl
bG93LiBJZiBpdCBpcyBub3QgZXhwZWN0ZWQgdG8gYmUgcHJlc2VudCAoaS5lLiBvcy5saW5lc2Vw
ICE9Ci0gICAgICAgICAgICAjICdcclxuJyBhcyBpbiBXaW5kb3dzKSwgYSB3YXJuaW5nIGlzIGlz
c3VlZCBiZWxvdyBpZiB0aGlzIGZpbGUKLSAgICAgICAgICAgICMgaXMgcHJvY2Vzc2VkLgotICAg
ICAgICAgICAgaWYgZmlsZV9wYXRoID09ICctJzoKLSAgICAgICAgICAgICAgICBmaWxlID0gY29k
ZWNzLlN0cmVhbVJlYWRlcldyaXRlcihzeXMuc3RkaW4sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZWNzLmdldHJlYWRlcigndXRmOCcpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVjcy5nZXR3
cml0ZXIoJ3V0ZjgnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAncmVwbGFjZScpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGZp
bGUgPSBjb2RlY3Mub3BlbihmaWxlX3BhdGgsICdyJywgJ3V0ZjgnLCAncmVwbGFjZScpCi0KLSAg
ICAgICAgICAgIGNvbnRlbnRzID0gZmlsZS5yZWFkKCkKLQorICAgICAgICAgICAgbGluZXMgPSBz
ZWxmLl9yZWFkX2xpbmVzKGZpbGVfcGF0aCkKICAgICAgICAgZXhjZXB0IElPRXJyb3I6CiAgICAg
ICAgICAgICBtZXNzYWdlID0gJ0NvdWxkIG5vdCByZWFkIGZpbGUuIFNraXBwaW5nOiAiJXMiJyAl
IGZpbGVfcGF0aAogICAgICAgICAgICAgX2xvZy53YXJuKG1lc3NhZ2UpCiAgICAgICAgICAgICBy
ZXR1cm4KIAotICAgICAgICBsaW5lcyA9IGNvbnRlbnRzLnNwbGl0KCJcbiIpCi0KLSAgICAgICAg
IyBGSVhNRTogTWFrZSBhIENhcnJpYWdlUmV0dXJuUHJvY2Vzc29yIGZvciB0aGlzIGxvZ2ljLCBh
bmQgcHV0Ci0gICAgICAgICMgICAgICAgIGl0IGluIHByb2Nlc3NvcnMuY29tbW9uLiAgVGhlIHBy
b2Nlc3MoKSBtZXRob2Qgc2hvdWxkCi0gICAgICAgICMgICAgICAgIHJldHVybiB0aGUgbGluZXMg
d2l0aCB0aGUgY2FycmlhZ2UgcmV0dXJucyBzdHJpcHBlZC4KLSAgICAgICAgZm9yIGxpbmVfbnVt
YmVyIGluIHJhbmdlKGxlbihsaW5lcykpOgotICAgICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxk
IHByb2JhYmx5IHVzZSB0aGUgU1ZOICJlb2wtc3R5bGUiIHByb3BlcnR5Ci0gICAgICAgICAgICAj
ICAgICAgICBvciBhIHdoaXRlIGxpc3QgdG8gZGVjaWRlIHdoZXRoZXIgb3Igbm90IHRvIGRvCi0g
ICAgICAgICAgICAjICAgICAgICB0aGUgY2FycmlhZ2UtcmV0dXJuIGNoZWNrLiBPcmlnaW5hbGx5
LCB3ZSBkaWQgdGhlCi0gICAgICAgICAgICAjICAgICAgICBjaGVjayBvbmx5IGlmIChvcy5saW5l
c2VwICE9ICdcclxuJykuCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIEZJWE1FOiBBcyBh
IG1pbm9yIG9wdGltaXphdGlvbiwgd2UgY2FuIGhhdmUKLSAgICAgICAgICAgICMgICAgICAgIGNo
ZWNrX25vX2NhcnJpYWdlX3JldHVybigpIHJldHVybiB3aGV0aGVyCi0gICAgICAgICAgICAjICAg
ICAgICB0aGUgbGluZSBlbmRzIHdpdGggIlxyIi4KLSAgICAgICAgICAgIGNoZWNrX25vX2NhcnJp
YWdlX3JldHVybihsaW5lc1tsaW5lX251bWJlcl0sIGxpbmVfbnVtYmVyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9zdHlsZV9lcnJvcikKLSAgICAgICAgICAg
IGlmIGxpbmVzW2xpbmVfbnVtYmVyXS5lbmRzd2l0aCgiXHIiKToKLSAgICAgICAgICAgICAgICBs
aW5lc1tsaW5lX251bWJlcl0gPSBsaW5lc1tsaW5lX251bWJlcl0ucnN0cmlwKCJcciIpCisgICAg
ICAgICMgQ2hlY2sgZm9yIGFuZCByZW1vdmUgdHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJucyAoIlxy
IikuCisgICAgICAgICMKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IHVzZSB0
aGUgU1ZOICJlb2wtc3R5bGUiIHByb3BlcnR5CisgICAgICAgICMgICAgICAgIG9yIGEgd2hpdGUg
bGlzdCB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdG8gZG8KKyAgICAgICAgIyAgICAgICAgdGhl
IGNhcnJpYWdlLXJldHVybiBjaGVjay4gT3JpZ2luYWxseSwgd2UgZGlkIHRoZQorICAgICAgICAj
ICAgICAgICBjaGVjayBvbmx5IGlmIChvcy5saW5lc2VwICE9ICdcclxuJykuCisgICAgICAgIGNh
cnJpYWdlX3JldHVybl9wcm9jZXNzb3IgPSBDYXJyaWFnZVJldHVyblByb2Nlc3NvcihoYW5kbGVf
c3R5bGVfZXJyb3IpCisgICAgICAgIGxpbmVzID0gY2FycmlhZ2VfcmV0dXJuX3Byb2Nlc3Nvci5w
cm9jZXNzKGxpbmVzKQogCiAgICAgICAgIHByb2Nlc3Nvci5wcm9jZXNzKGxpbmVzKQogCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3Byb2Nlc3NvcnMvY29t
bW9uLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9wcm9jZXNzb3JzL2Nv
bW1vbi5weQppbmRleCBkYmY0YmVhLi4zMGI4ZmVkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL3Byb2Nlc3NvcnMvY29tbW9uLnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9jb21tb24ucHkKQEAgLTIwLDcg
KzIwLDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKICMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSIiIlN1cHBvcnRzIHN0
eWxlIGNoZWNraW5nIG5vdCBzcGVjaWZpYyB0byBhbnkgb25lIHByb2Nlc3Nvci4iIiIKKyIiIlN1
cHBvcnRzIHN0eWxlIGNoZWNraW5nIG5vdCBzcGVjaWZpYyB0byBhbnkgb25lIGZpbGUgdHlwZS4i
IiIKIAogCiAjIEZJWE1FOiBUZXN0IHRoaXMgbGlzdCBpbiB0aGUgc2FtZSB3YXkgdGhhdCB0aGUg
bGlzdCBvZiBDcHBQcm9jZXNzb3IKQEAgLTMzLDI3ICszMywyNSBAQCBjYXRlZ29yaWVzID0gc2V0
KFsKIF0pCiAKIAotZGVmIGNoZWNrX25vX2NhcnJpYWdlX3JldHVybihsaW5lLCBsaW5lX251bWJl
ciwgZXJyb3IpOgotICAgICIiIkNoZWNrIHRoYXQgYSBsaW5lIGRvZXMgbm90IGVuZCB3aXRoIGEg
Y2FycmlhZ2UgcmV0dXJuLgorY2xhc3MgQ2FycmlhZ2VSZXR1cm5Qcm9jZXNzb3Iob2JqZWN0KToK
IAotICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hlY2sgaXMgc3VjY2Vzc2Z1bCAoaS5lLiBpZiB0
aGUgbGluZSBkb2VzIG5vdAotICAgIGVuZCB3aXRoIGEgY2FycmlhZ2UgcmV0dXJuKSwgYW5kIGZh
bHNlIG90aGVyd2lzZS4KKyAgICAiIiJTdXBwb3J0cyBjaGVja2luZyBmb3IgYW5kIGhhbmRsaW5n
IGNhcnJpYWdlIHJldHVybnMuIiIiCiAKLSAgICBBcmdzOgotICAgICAgbGluZTogQSBzdHJpbmcg
dGhhdCBpcyB0aGUgbGluZSB0byBjaGVjay4KLSAgICAgIGxpbmVfbnVtYmVyOiBUaGUgbGluZSBu
dW1iZXIuCi0gICAgICBlcnJvcjogVGhlIGZ1bmN0aW9uIHRvIGNhbGwgd2l0aCBhbnkgZXJyb3Jz
IGZvdW5kLgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBoYW5kbGVfc3R5bGVfZXJyb3IpOgorICAg
ICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IgPSBoYW5kbGVfc3R5bGVfZXJyb3IKIAotICAg
ICIiIgorICAgIGRlZiBwcm9jZXNzKHNlbGYsIGxpbmVzKToKKyAgICAgICAgIiIiQ2hlY2sgZm9y
IGFuZCBzdHJpcCB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm5zIGZyb20gbGluZXMuIiIiCisgICAg
ICAgIGZvciBsaW5lX251bWJlciBpbiByYW5nZShsZW4obGluZXMpKToKKyAgICAgICAgICAgIGlm
IG5vdCBsaW5lc1tsaW5lX251bWJlcl0uZW5kc3dpdGgoIlxyIik6CisgICAgICAgICAgICAgICAg
Y29udGludWUKIAotICAgIGlmIGxpbmUuZW5kc3dpdGgoIlxyIik6Ci0gICAgICAgIGVycm9yKGxp
bmVfbnVtYmVyLAotICAgICAgICAgICAgICAid2hpdGVzcGFjZS9jYXJyaWFnZV9yZXR1cm4iLAot
ICAgICAgICAgICAgICAxLAotICAgICAgICAgICAgICAiT25lIG9yIG1vcmUgdW5leHBlY3RlZCBc
XHIgKF5NKSBmb3VuZDsgIgotICAgICAgICAgICAgICAiYmV0dGVyIHRvIHVzZSBvbmx5IGEgXFxu
IikKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAg
c2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKGxpbmVfbnVtYmVyICsgMSwgICMgQ29ycmVjdCBmb3Ig
b2Zmc2V0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGl0ZXNwYWNl
L2NhcnJpYWdlX3JldHVybiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT25lIG9yIG1vcmUgdW5l
eHBlY3RlZCBcXHIgKF5NKSBmb3VuZDsgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJiZXR0ZXIgdG8gdXNlIG9ubHkgYSBcXG4iKQogCisgICAgICAgICAgICBsaW5lc1ts
aW5lX251bWJlcl0gPSBsaW5lc1tsaW5lX251bWJlcl0ucnN0cmlwKCJcciIpCiAKKyAgICAgICAg
cmV0dXJuIGxpbmVzCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL3Byb2Nlc3NvcnMvY29tbW9uX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9wcm9jZXNzb3JzL2NvbW1vbl91bml0dGVzdC5weQppbmRleCA5MzYyYjY1
Li4yNGIzYzI3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L3Byb2Nlc3NvcnMvY29tbW9uX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9jb21tb25fdW5pdHRlc3QucHkKQEAgLTIyLDEwICsy
Miw5IEBACiAKICIiIlVuaXQgdGVzdHMgZm9yIGNvbW1vbi5weS4iIiIKIAotCiBpbXBvcnQgdW5p
dHRlc3QKIAotZnJvbSBjb21tb24gaW1wb3J0IGNoZWNrX25vX2NhcnJpYWdlX3JldHVybgorZnJv
bSBjb21tb24gaW1wb3J0IENhcnJpYWdlUmV0dXJuUHJvY2Vzc29yCiAKIAogIyBGSVhNRTogVGhl
IHVuaXQgdGVzdHMgZm9yIHRoZSBjcHAsIHRleHQsIGFuZCBjb21tb24gcHJvY2Vzc29ycyBzaG91
bGQKQEAgLTMzLDEzICszMiwxNSBAQCBmcm9tIGNvbW1vbiBpbXBvcnQgY2hlY2tfbm9fY2Fycmlh
Z2VfcmV0dXJuCiAjICAgICAgICBtb2NrIHN0eWxlIGVycm9yIGhhbmRsaW5nIGNvZGUgYW5kIHRo
ZSBjb2RlIHRvIGNoZWNrIHRoYXQgYWxsCiAjICAgICAgICBvZiBhIHByb2Nlc3NvcidzIGNhdGVn
b3JpZXMgYXJlIGNvdmVyZWQgYnkgdGhlIHVuaXQgdGVzdHMuCiAjICAgICAgICBTdWNoIHNoYXJl
ZCBjb2RlIGNhbiBiZSBsb2NhdGVkIGluIGEgc2hhcmVkIHRlc3QgZmlsZSwgcGVyaGFwcwotIyAg
ICAgICAgaWxrZSB0aGlzIG9uZS4KLWNsYXNzIENhcnJpYWdlUmV0dXJuVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CisjICAgICAgICBldmVuIHRoaXMgZmlsZS4KK2NsYXNzIENhcnJpYWdlUmV0dXJu
UHJvY2Vzc29yVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAiIiJUZXN0cyBjaGVja19u
b19jYXJyaWFnZV9yZXR1cm4oKS4iIiIKIAogICAgIF9jYXRlZ29yeSA9ICJ3aGl0ZXNwYWNlL2Nh
cnJpYWdlX3JldHVybiIKICAgICBfY29uZmlkZW5jZSA9IDEKKyAgICBfZXhwZWN0ZWRfbWVzc2Fn
ZSA9ICgiT25lIG9yIG1vcmUgdW5leHBlY3RlZCBcXHIgKF5NKSBmb3VuZDsgIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICJiZXR0ZXIgdG8gdXNlIG9ubHkgYSBcXG4iKQogCiAgICAgZGVmIHNl
dFVwKHNlbGYpOgogICAgICAgICBzZWxmLl9zdHlsZV9lcnJvcnMgPSBbXSAjIFRoZSBsaXN0IG9m
IGFjY3VtdWxhdGVkIHN0eWxlIGVycm9ycy4KQEAgLTUwLDMzICs1MSw0OSBAQCBjbGFzcyBDYXJy
aWFnZVJldHVyblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBlcnJvciA9IChsaW5l
X251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpCiAgICAgICAgIHNlbGYuX3N0
eWxlX2Vycm9ycy5hcHBlbmQoZXJyb3IpCiAKLSAgICBkZWYgYXNzZXJ0X2NhcnJpYWdlX3JldHVy
bihzZWxmLCBsaW5lLCBpc19lcnJvcik6Ci0gICAgICAgICIiIkNhbGwgY2hlY2tfbm9fY2Fycmlh
Z2VfcmV0dXJuKCkgYW5kIGFzc2VydCB0aGUgcmVzdWx0LiIiIgotICAgICAgICBsaW5lX251bWJl
ciA9IDEwMAorICAgIGRlZiBhc3NlcnRfY2FycmlhZ2VfcmV0dXJuKHNlbGYsIGlucHV0X2xpbmVz
LCBleHBlY3RlZF9saW5lcywgZXJyb3JfbGluZXMpOgorICAgICAgICAiIiJQcm9jZXNzIHRoZSBn
aXZlbiBsaW5lIGFuZCBhc3NlcnQgdGhhdCB0aGUgcmVzdWx0IGlzIGNvcnJlY3QuIiIiCiAgICAg
ICAgIGhhbmRsZV9zdHlsZV9lcnJvciA9IHNlbGYuX21vY2tfc3R5bGVfZXJyb3JfaGFuZGxlcgog
Ci0gICAgICAgIGNoZWNrX25vX2NhcnJpYWdlX3JldHVybihsaW5lLCBsaW5lX251bWJlciwgaGFu
ZGxlX3N0eWxlX2Vycm9yKQorICAgICAgICBwcm9jZXNzb3IgPSBDYXJyaWFnZVJldHVyblByb2Nl
c3NvcihoYW5kbGVfc3R5bGVfZXJyb3IpCisgICAgICAgIG91dHB1dF9saW5lcyA9IHByb2Nlc3Nv
ci5wcm9jZXNzKGlucHV0X2xpbmVzKQogCi0gICAgICAgIGV4cGVjdGVkX21lc3NhZ2UgPSAoIk9u
ZSBvciBtb3JlIHVuZXhwZWN0ZWQgXFxyICheTSkgZm91bmQ7ICIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYmV0dGVyIHRvIHVzZSBvbmx5IGEgXFxuIikKKyAgICAgICAgIyBDaGVjayBi
b3RoIHRoZSByZXR1cm4gdmFsdWUgYW5kIGVycm9yIG1lc3NhZ2VzLgorICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhvdXRwdXRfbGluZXMsIGV4cGVjdGVkX2xpbmVzKQogCi0gICAgICAgIGlmIGlz
X2Vycm9yOgotICAgICAgICAgICAgZXhwZWN0ZWRfZXJyb3JzID0gWyhsaW5lX251bWJlciwgc2Vs
Zi5fY2F0ZWdvcnksIHNlbGYuX2NvbmZpZGVuY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4cGVjdGVkX21lc3NhZ2UpXQorICAgICAgICBpZiBlcnJvcl9saW5lczoKKyAgICAg
ICAgICAgIGV4cGVjdGVkX2Vycm9ycyA9IFsobGluZV9udW1iZXIsIHNlbGYuX2NhdGVnb3J5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9jb25maWRlbmNlLCBzZWxmLl9l
eHBlY3RlZF9tZXNzYWdlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBsaW5l
X251bWJlciBpbiBlcnJvcl9saW5lc10KICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNl
bGYuX3N0eWxlX2Vycm9ycywgZXhwZWN0ZWRfZXJyb3JzKQogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fc3R5bGVfZXJyb3JzLCBbXSkKIAogICAgIGRl
ZiB0ZXN0X2VuZHNfd2l0aF9jYXJyaWFnZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRfY2Fy
cmlhZ2VfcmV0dXJuKCJjYXJyaWFnZSByZXR1cm5cciIsIGlzX2Vycm9yPVRydWUpCisgICAgICAg
IHNlbGYuYXNzZXJ0X2NhcnJpYWdlX3JldHVybihbImNhcnJpYWdlIHJldHVyblxyIl0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImNhcnJpYWdlIHJldHVybiJdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzFdKQogCiAgICAgZGVmIHRlc3RfZW5k
c193aXRoX25vdGhpbmcoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0X2NhcnJpYWdlX3JldHVy
bigibm8gY2FycmlhZ2UgcmV0dXJuIiwgaXNfZXJyb3I9RmFsc2UpCisgICAgICAgIHNlbGYuYXNz
ZXJ0X2NhcnJpYWdlX3JldHVybihbIm5vIGNhcnJpYWdlIHJldHVybiJdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWyJubyBjYXJyaWFnZSByZXR1cm4iXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdKQogCiAgICAgZGVmIHRlc3RfZW5kc193aXRo
X25ld2xpbmUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0X2NhcnJpYWdlX3JldHVybigibm8g
Y2FycmlhZ2UgcmV0dXJuXG4iLCBpc19lcnJvcj1GYWxzZSkKLQotICAgIGRlZiB0ZXN0X2VuZHNf
d2l0aF9jYXJyaWFnZV9uZXdsaW5lKHNlbGYpOgotICAgICAgICAjIENoZWNrX25vX2NhcnJpYWdl
X3JldHVybiBvbmx5KCkgY2hlY2tzIHRoZSBmaW5hbCBjaGFyYWN0ZXIuCi0gICAgICAgIHNlbGYu
YXNzZXJ0X2NhcnJpYWdlX3JldHVybigiY2FycmlhZ2VcciBpbiBhIHN0cmluZyIsIGlzX2Vycm9y
PUZhbHNlKQotCisgICAgICAgIHNlbGYuYXNzZXJ0X2NhcnJpYWdlX3JldHVybihbIm5vIGNhcnJp
YWdlIHJldHVyblxuIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIm5v
IGNhcnJpYWdlIHJldHVyblxuIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbXSkKKworICAgIGRlZiB0ZXN0X2NhcnJpYWdlX2luX21pZGRsZShzZWxmKToKKyAgICAgICAg
IyBUaGUgQ2FycmlhZ2VSZXR1cm5Qcm9jZXNzb3IgY2hlY2tzIG9ubHkgdGhlIGZpbmFsIGNoYXJh
Y3RlcgorICAgICAgICAjIG9mIGVhY2ggbGluZS4KKyAgICAgICAgc2VsZi5hc3NlcnRfY2Fycmlh
Z2VfcmV0dXJuKFsiY2FycmlhZ2VcciBpbiBhIHN0cmluZyJdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWyJjYXJyaWFnZVxyIGluIGEgc3RyaW5nIl0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbXSkKKworICAgIGRlZiB0ZXN0X3R3b19saW5lcyhz
ZWxmKToKKyAgICAgICAgIyBUaGUgQ2FycmlhZ2VSZXR1cm5Qcm9jZXNzb3IgY2hlY2tzIG9ubHkg
dGhlIGZpbmFsIGNoYXJhY3RlcgorICAgICAgICAjIG9mIGVhY2ggbGluZS4KKyAgICAgICAgc2Vs
Zi5hc3NlcnRfY2FycmlhZ2VfcmV0dXJuKFsibGluZTEiLCAibGluZTJcciJdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJsaW5lMSIsICJsaW5lMiJdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWzJdKQo=
</data>
<flag name="review"
          id="32635"
          type_id="1"
          status="+"
          setter="hamaji"
    />
    <flag name="commit-queue"
          id="32636"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
      

    </bug>

</bugzilla>