<?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>100315</bug_id>
          
          <creation_ts>2012-10-24 17:56:22 -0700</creation_ts>
          <short_desc>rwt --lint-test-files doesn&apos;t handle the cascade properly</short_desc>
          <delta_ts>2012-10-25 13:51:37 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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>levin</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>750260</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-24 17:56:22 -0700</bug_when>
    <thetext>rwt --lint-test-files doesn&apos;t handle the cascade properly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750261</commentid>
    <comment_count>1</comment_count>
      <attachid>170526</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-24 17:58:11 -0700</bug_when>
    <thetext>Created attachment 170526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750277</commentid>
    <comment_count>2</comment_count>
      <attachid>170526</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-24 18:26:40 -0700</bug_when>
    <thetext>Comment on attachment 170526
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:78
&gt; +                port_to_lint.expectations_dict = lambda: {expectations_file: expectations_dict[expectations_file]}
&gt; +                test_expectations.TestExpectations(port_to_lint, is_lint_mode=True)

This is kind of gross. It at least deserves a comment about why we&apos;re overwriting this function.

What if, we instead had TestExpectations do this looping over the expectations_dict when is_lint_mode==true? It just needs to create a new parser and parse separately for each entry, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750281</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-24 18:36:12 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 170526 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170526&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:78
&gt; &gt; +                port_to_lint.expectations_dict = lambda: {expectations_file: expectations_dict[expectations_file]}
&gt; &gt; +                test_expectations.TestExpectations(port_to_lint, is_lint_mode=True)
&gt; 
&gt; This is kind of gross. It at least deserves a comment about why we&apos;re overwriting this function.
&gt; 
&gt; What if, we instead had TestExpectations do this looping over the expectations_dict when is_lint_mode==true? It just needs to create a new parser and parse separately for each entry, right?

It&apos;s not quite that simple; the parser itself only does syntactic checking and doesn&apos;t confirm that all the modifiers are legit or detect inter-line erors (like duplicate lines); the TestExpectations object itself does that.

That said, it wouldn&apos;t be hard to refactor the code to provide a cleaner way of doing this. I figured since the existing code was already stubbing out one function, stubbing out another might be okay, but I definitely agree that it&apos;s gross :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751083</commentid>
    <comment_count>4</comment_count>
      <attachid>170705</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-25 12:00:02 -0700</bug_when>
    <thetext>Created attachment 170705
push more linting logic directly into the test_expectations module</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751182</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-25 13:51:37 -0700</bug_when>
    <thetext>Committed r132530: &lt;http://trac.webkit.org/changeset/132530&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170526</attachid>
            <date>2012-10-24 17:58:11 -0700</date>
            <delta_ts>2012-10-25 12:00:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100315-20121024175646.patch</filename>
            <type>text/plain</type>
            <size>4929</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDIzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzIyNzhjNzY0NDc5YThjZDM3NDEwYjRkZDg0ZThjMzhk
Yjk1OWM2ZC4uMzgzMjk1MTNlZGY5ODhhOTkxODk2YmU2ZGIxYTFjYWEwOTcyYmU4ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIy
IEBACiAyMDEyLTEwLTI0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIHJ3dCAtLWxpbnQtdGVzdC1maWxlcyBkb2Vzbid0IGhhbmRsZSB0aGUgY2FzY2FkZSBw
cm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAwMzE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SXQgd2FzIG9ubHkgbG9va2luZyBhdCB0aGUgZmlyc3QgZW50cnkgaW4gZWFjaCBwb3J0J3MgbGlz
dAorICAgICAgICBvZiBUZXN0RXhwZWN0YXRpb25zIGZpbGVzLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKGxp
bnQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRf
dGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5OgorICAgICAgICAoTGludFRlc3QudGVzdF9hbGxfY29u
ZmlndXJhdGlvbnMuRmFrZVBvcnQuX19pbml0X18pOgorICAgICAgICAoTGludFRlc3QudGVzdF9h
bGxfY29uZmlndXJhdGlvbnMpOgorICAgICAgICAoTGludFRlc3QudGVzdF9saW50X3Rlc3RfZmls
ZXNfX2Vycm9ycyk6CisKKzIwMTItMTAtMjQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1
bS5vcmc+CisKICAgICAgICAgbnJ3dDogdHJ1bmNhdGUgbWV0ZXIgbGluZXMgcHJvcGVybHkgb24g
d2luZG93cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAwMDYyCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3J1bl93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDg5NTIyMDc5YzUwNGU5Y2JlYmNhNDZiMjk1OWRl
NmQ5OGFjODdkNTUuLmM4MmU0MjY5Y2UyYWQwZDZiYmY4ZTUwYzcyZDMyZmE4YWRhYjlkYzcgMTAw
NzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRf
dGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dl
YmtpdF90ZXN0cy5weQpAQCAtNjcsMTkgKzY3LDI0IEBAIGRlZiBsaW50KHBvcnQsIG9wdGlvbnMp
OgogICAgIGxpbnRfZmFpbGVkID0gRmFsc2UKIAogICAgIGZvciBwb3J0X3RvX2xpbnQgaW4gcG9y
dHNfdG9fbGludDoKLSAgICAgICAgZXhwZWN0YXRpb25zX2ZpbGUgPSBwb3J0X3RvX2xpbnQucGF0
aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkKLSAgICAgICAgaWYgZXhwZWN0YXRpb25zX2Zp
bGUgaW4gZmlsZXNfbGludGVkOgotICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0YXRpb25zKHBvcnRfdG9f
bGludCwgaXNfbGludF9tb2RlPVRydWUpCi0gICAgICAgIGV4Y2VwdCB0ZXN0X2V4cGVjdGF0aW9u
cy5QYXJzZUVycm9yLCBlOgotICAgICAgICAgICAgbGludF9mYWlsZWQgPSBUcnVlCi0gICAgICAg
ICAgICBfbG9nLmVycm9yKCcnKQotICAgICAgICAgICAgZm9yIHdhcm5pbmcgaW4gZS53YXJuaW5n
czoKLSAgICAgICAgICAgICAgICBfbG9nLmVycm9yKHdhcm5pbmcpCi0gICAgICAgICAgICBfbG9n
LmVycm9yKCcnKQotICAgICAgICBmaWxlc19saW50ZWQuYWRkKGV4cGVjdGF0aW9uc19maWxlKQor
ICAgICAgICBvcmlnaW5hbF9leHBlY3RhdGlvbnNfZGljdF9mdW5jdGlvbiA9IHBvcnRfdG9fbGlu
dC5leHBlY3RhdGlvbnNfZGljdAorICAgICAgICBleHBlY3RhdGlvbnNfZGljdCA9IG9yaWdpbmFs
X2V4cGVjdGF0aW9uc19kaWN0X2Z1bmN0aW9uKCkKKyAgICAgICAgZm9yIGV4cGVjdGF0aW9uc19m
aWxlIGluIGV4cGVjdGF0aW9uc19kaWN0LmtleXMoKToKKyAgICAgICAgICAgIGlmIGV4cGVjdGF0
aW9uc19maWxlIGluIGZpbGVzX2xpbnRlZDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisg
ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcG9ydF90b19saW50LmV4cGVjdGF0aW9u
c19kaWN0ID0gbGFtYmRhOiB7ZXhwZWN0YXRpb25zX2ZpbGU6IGV4cGVjdGF0aW9uc19kaWN0W2V4
cGVjdGF0aW9uc19maWxlXX0KKyAgICAgICAgICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0
RXhwZWN0YXRpb25zKHBvcnRfdG9fbGludCwgaXNfbGludF9tb2RlPVRydWUpCisgICAgICAgICAg
ICBleGNlcHQgdGVzdF9leHBlY3RhdGlvbnMuUGFyc2VFcnJvciwgZToKKyAgICAgICAgICAgICAg
ICBsaW50X2ZhaWxlZCA9IFRydWUKKyAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCcnKQorICAg
ICAgICAgICAgICAgIGZvciB3YXJuaW5nIGluIGUud2FybmluZ3M6CisgICAgICAgICAgICAgICAg
ICAgIF9sb2cuZXJyb3Iod2FybmluZykKKyAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCcnKQor
ICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBwb3J0X3RvX2xpbnQuZXhwZWN0
YXRpb25zX2RpY3QgPSBvcmlnaW5hbF9leHBlY3RhdGlvbnNfZGljdF9mdW5jdGlvbgorICAgICAg
ICAgICAgZmlsZXNfbGludGVkLmFkZChleHBlY3RhdGlvbnNfZmlsZSkKIAogICAgIGlmIGxpbnRf
ZmFpbGVkOgogICAgICAgICBfbG9nLmVycm9yKCdMaW50IGZhaWxlZC4nKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRl
Z3JhdGlvbnRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5f
d2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQppbmRleCA4NTQzNzQ0OWI0M2U3ZDE3OTky
MmI2MTgzODcwY2IwOGM0NmRlMDk3Li5kNTcxM2EwYjkzYWExMmRlOGEzNTU2NGUxYjE0MjM4MTVk
YzY5OTI2IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQpA
QCAtMTk5LDkgKzE5OSw2IEBAIGNsYXNzIExpbnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJl
YW1UZXN0aW5nTWl4aW4pOgogICAgICAgICAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKICAgICAg
ICAgICAgICAgICBzZWxmLnBhdGggPSBwYXRoCiAKLSAgICAgICAgICAgIGRlZiBwYXRoX3RvX3Rl
c3RfZXhwZWN0YXRpb25zX2ZpbGUoc2VsZik6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYu
cGF0aAotCiAgICAgICAgICAgICBkZWYgdGVzdF9jb25maWd1cmF0aW9uKHNlbGYpOgogICAgICAg
ICAgICAgICAgIHJldHVybiBOb25lCiAKQEAgLTI0NCw3ICsyNDEsNyBAQCBjbGFzcyBMaW50VGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFrZVBvcnQoaG9zdCwgJ2Itd2luJywg
J3BhdGgtdG8tYicpKSkKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhydW5fd2Via2l0X3Rl
c3RzLmxpbnQoaG9zdC5wb3J0X2ZhY3RvcnkucG9ydHNbJ2EnXSwgTW9ja09wdGlvbnMocGxhdGZv
cm09Tm9uZSkpLCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhob3N0LnBvcnRzX3BhcnNl
ZCwgWydhJywgJ2InXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoaG9zdC5wb3J0c19wYXJz
ZWQsIFsnYScsICdiJywgJ2Itd2luJ10pCiAKICAgICAgICAgaG9zdC5wb3J0c19wYXJzZWQgPSBb
XQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhydW5fd2Via2l0X3Rlc3RzLmxpbnQoaG9zdC5w
b3J0X2ZhY3RvcnkucG9ydHNbJ2EnXSwgTW9ja09wdGlvbnMocGxhdGZvcm09J2EnKSksIDApCkBA
IC0yNjcsNiArMjY0LDE1IEBAIGNsYXNzIExpbnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJl
YW1UZXN0aW5nTWl4aW4pOgogICAgICAgICBzZWxmLmFzc2VydEVtcHR5KG91dCkKICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGFueShbJ0xpbnQgZmFpbGVkJyBpbiBtc2cgZm9yIG1zZyBpbiBlcnIu
YnVmbGlzdF0pKQogCisgICAgICAgICMgZW5zdXJlIHdlIGxpbnQgKmFsbCogb2YgdGhlIGZpbGVz
IGluIHRoZSBjYXNjYWRlLgorICAgICAgICBwb3J0X29iai5leHBlY3RhdGlvbnNfZGljdCA9IGxh
bWJkYTogeydmb28nOiAnLS0gc3ludGF4IGVycm9yMScsICdiYXInOiAnLS0gc3ludGF4IGVycm9y
Mid9CisgICAgICAgIHJlcywgb3V0LCBlcnIgPSBydW5fYW5kX2NhcHR1cmUocG9ydF9vYmosIG9w
dGlvbnMsIHBhcnNlZF9hcmdzKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAtMSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShvdXQpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShh
bnkoWydmb286MScgaW4gbXNnIGZvciBtc2cgaW4gZXJyLmJ1Zmxpc3RdKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGFueShbJ2JhcjoxJyBpbiBtc2cgZm9yIG1zZyBpbiBlcnIuYnVmbGlzdF0p
KQorCiAKIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4
aW4pOgogICAgIGRlZiBzZXRVcChzZWxmKToK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170705</attachid>
            <date>2012-10-25 12:00:02 -0700</date>
            <delta_ts>2012-10-25 12:04:43 -0700</delta_ts>
            <desc>push more linting logic directly into the test_expectations module</desc>
            <filename>bug-100315-20121025115835.patch</filename>
            <type>text/plain</type>
            <size>9444</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDIzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzIyNzhjNzY0NDc5YThjZDM3NDEwYjRkZDg0ZThjMzhk
Yjk1OWM2ZC4uZmViZmE2M2Y5Mjg1NDgwMzk3ZWQ5N2I3OTdhOGQ2ZjVjYTY0NmMxYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDEyLTEwLTI1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHJ3dCAtLWxpbnQtdGVzdC1maWxlcyBkb2Vzbid0IGhhbmRsZSB0aGUgY2FzY2FkZSBw
cm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAwMzE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugd2VyZSBvbmx5IGxpbnRpbmcgdGhlIGZpcnN0IGZpbGUgaW4gZWFjaCBwb3J0J3MgbGlzdCBv
ZgorICAgICAgICBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcHVzaGVzIG1v
cmUgb2YgdGhlIGxvZ2ljIGZvciBsaW50aW5nIGZpbGVzIGludG8KKyAgICAgICAgdGhlIFRlc3RF
eHBlY3RhdGlvbnMgY2xhc3NlcyB0aGVtc2VsdmVzLCBidXQgaXQncyBzdGlsbCBhIGJpdCBvZgor
ICAgICAgICBhIGhhY2suIEEgYmV0dGVyIHNvbHV0aW9uIHdpbGwgcmVxdWlyZSBzcGxpdHRpbmcg
b3V0IHRoZSBhY3R1YWwKKyAgICAgICAgcGFyc2luZyBvZiB0aGUgZmlsZXMgZnJvbSB0aGUgVGVz
dEV4cGVjdGF0aW9ucyBjb25zdHJ1Y3Rvci4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKFRlc3RF
eHBlY3RhdGlvbnMpOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9ucy5fX2luaXRfXyk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRp
b25zX3VuaXR0ZXN0LnB5OgorICAgICAgICAocGFyc2VfZXhwKToKKyAgICAgICAgKFNraXBwZWRU
ZXN0cy5jaGVjayk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVu
X3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKGxpbnQpOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5Ogor
ICAgICAgICAoTGludFRlc3QudGVzdF9hbGxfY29uZmlndXJhdGlvbnMuRmFrZVBvcnQuX19pbml0
X18pOgorICAgICAgICAoTGludFRlc3QudGVzdF9hbGxfY29uZmlndXJhdGlvbnMpOgorICAgICAg
ICAoTGludFRlc3QudGVzdF9saW50X3Rlc3RfZmlsZXNfX2Vycm9ycyk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAg
ICAgKFRlc3RFeHBlY3RhdGlvbnNDaGVja2VyLmNoZWNrX3Rlc3RfZXhwZWN0YXRpb25zKToKKwog
MjAxMi0xMC0yNCAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBucnd0OiB0cnVuY2F0ZSBtZXRlciBsaW5lcyBwcm9wZXJseSBvbiB3aW5kb3dzCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBl
Y3RhdGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMv
dGVzdF9leHBlY3RhdGlvbnMucHkKaW5kZXggYjQ4YzViOTMzY2QzNWJkM2E0NDlmZDc2YmNiNjZk
N2YyMjg5ZDg5YS4uMTQzMjFiYjE0ZDA5Y2E1ZTMyYzM3MzM4OWNhNzYyN2RlYjc3ODBjMSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3Rf
ZXhwZWN0YXRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAtODM3LDE2ICs4MzcsMTkgQEAgY2xhc3Mg
VGVzdEV4cGVjdGF0aW9ucyhvYmplY3QpOgogICAgICAgICAgICAgc3VmZml4ZXMuYWRkKCd3YXYn
KQogICAgICAgICByZXR1cm4gc2V0KHN1ZmZpeGVzKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBvcnQsIHRlc3RzPU5vbmUsIGlzX2xpbnRfbW9kZT1GYWxzZSwgaW5jbHVkZV9vdmVycmlkZXM9
VHJ1ZSk6CisgICAgIyBGSVhNRTogVGhpcyBjb25zdHJ1Y3RvciBkb2VzIHRvbyBtdWNoIHdvcmsu
IFdlIHNob3VsZCBtb3ZlIHRoZSBhY3R1YWwgcGFyc2luZyBvZgorICAgICMgdGhlIGV4cGVjdGF0
aW9ucyBpbnRvIHNlcGFyYXRlIHJvdXRpbmVzIHNvIHRoYXQgbGludGluZyBhbmQgaGFuZGxpbmcg
b3ZlcnJpZGVzCisgICAgIyBjYW4gYmUgY29udHJvbGxlZCBzZXBhcmF0ZWx5LCBhbmQgdGhlIGNv
bnN0cnVjdG9yIGNhbiBiZSBtb3JlIG9mIGEgbm8tb3AuCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBvcnQsIHRlc3RzPU5vbmUsIGluY2x1ZGVfb3ZlcnJpZGVzPVRydWUsIGV4cGVjdGF0aW9uc190
b19saW50PU5vbmUpOgogICAgICAgICBzZWxmLl9mdWxsX3Rlc3RfbGlzdCA9IHRlc3RzCiAgICAg
ICAgIHNlbGYuX3Rlc3RfY29uZmlnID0gcG9ydC50ZXN0X2NvbmZpZ3VyYXRpb24oKQotICAgICAg
ICBzZWxmLl9pc19saW50X21vZGUgPSBpc19saW50X21vZGUKKyAgICAgICAgc2VsZi5faXNfbGlu
dF9tb2RlID0gZXhwZWN0YXRpb25zX3RvX2xpbnQgaXMgbm90IE5vbmUKICAgICAgICAgc2VsZi5f
bW9kZWwgPSBUZXN0RXhwZWN0YXRpb25zTW9kZWwoc2VsZi5fc2hvcnRlbl9maWxlbmFtZSkKLSAg
ICAgICAgc2VsZi5fcGFyc2VyID0gVGVzdEV4cGVjdGF0aW9uUGFyc2VyKHBvcnQsIHRlc3RzLCBp
c19saW50X21vZGUpCisgICAgICAgIHNlbGYuX3BhcnNlciA9IFRlc3RFeHBlY3RhdGlvblBhcnNl
cihwb3J0LCB0ZXN0cywgc2VsZi5faXNfbGludF9tb2RlKQogICAgICAgICBzZWxmLl9wb3J0ID0g
cG9ydAogICAgICAgICBzZWxmLl9za2lwcGVkX3Rlc3RzX3dhcm5pbmdzID0gW10KIAotICAgICAg
ICBleHBlY3RhdGlvbnNfZGljdCA9IHBvcnQuZXhwZWN0YXRpb25zX2RpY3QoKQorICAgICAgICBl
eHBlY3RhdGlvbnNfZGljdCA9IGV4cGVjdGF0aW9uc190b19saW50IG9yIHBvcnQuZXhwZWN0YXRp
b25zX2RpY3QoKQogICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnMgPSBzZWxmLl9wYXJzZXIucGFy
c2UoZXhwZWN0YXRpb25zX2RpY3Qua2V5cygpWzBdLCBleHBlY3RhdGlvbnNfZGljdC52YWx1ZXMo
KVswXSkKICAgICAgICAgc2VsZi5fYWRkX2V4cGVjdGF0aW9ucyhzZWxmLl9leHBlY3RhdGlvbnMp
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVs
cy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQppbmRleCBj
M2ZjMDI2NTgxMDg1OTQzNDU4NTJmZGM3YzJlNTRmOTNhNjE0MjYyLi44YjQwYWNiYzMzNmVhN2E5
ZjY4ZmViZTRlZmE4MWViNzRjYjM0NjBhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0
YXRpb25zX3VuaXR0ZXN0LnB5CkBAIC04MCw3ICs4MCw4IEBAIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9l
eHBlY3RlZC9pbWFnZS5odG1sIFsgV29udEZpeCBNYWMgXQogICAgICAgICBpZiBvdmVycmlkZXM6
CiAgICAgICAgICAgICBleHBlY3RhdGlvbnNfZGljdFsnb3ZlcnJpZGVzJ10gPSBvdmVycmlkZXMK
ICAgICAgICAgc2VsZi5fcG9ydC5leHBlY3RhdGlvbnNfZGljdCA9IGxhbWJkYTogZXhwZWN0YXRp
b25zX2RpY3QKLSAgICAgICAgc2VsZi5fZXhwID0gVGVzdEV4cGVjdGF0aW9ucyhzZWxmLl9wb3J0
LCBzZWxmLmdldF9iYXNpY190ZXN0cygpLCBpc19saW50X21vZGUpCisgICAgICAgIGV4cGVjdGF0
aW9uc190b19saW50ID0gZXhwZWN0YXRpb25zX2RpY3QgaWYgaXNfbGludF9tb2RlIGVsc2UgTm9u
ZQorICAgICAgICBzZWxmLl9leHAgPSBUZXN0RXhwZWN0YXRpb25zKHNlbGYuX3BvcnQsIHNlbGYu
Z2V0X2Jhc2ljX3Rlc3RzKCksIGV4cGVjdGF0aW9uc190b19saW50PWV4cGVjdGF0aW9uc190b19s
aW50KQogCiAgICAgZGVmIGFzc2VydF9leHAoc2VsZiwgdGVzdCwgcmVzdWx0KToKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fZXhwLmdldF9leHBlY3RhdGlvbnMoc2VsZi5nZXRfdGVz
dCh0ZXN0KSksCkBAIC0yNDcsNyArMjQ4LDggQEAgY2xhc3MgU2tpcHBlZFRlc3RzKEJhc2UpOgog
ICAgICAgICAgICAgZXhwZWN0YXRpb25zX2RpY3RbJ292ZXJyaWRlcyddID0gb3ZlcnJpZGVzCiAg
ICAgICAgIHBvcnQuZXhwZWN0YXRpb25zX2RpY3QgPSBsYW1iZGE6IGV4cGVjdGF0aW9uc19kaWN0
CiAgICAgICAgIHBvcnQuc2tpcHBlZF9sYXlvdXRfdGVzdHMgPSBsYW1iZGEgdGVzdHM6IHNldChz
a2lwcykKLSAgICAgICAgZXhwID0gVGVzdEV4cGVjdGF0aW9ucyhwb3J0LCBbJ2ZhaWx1cmVzL2V4
cGVjdGVkL3RleHQuaHRtbCddLCBsaW50KQorICAgICAgICBleHBlY3RhdGlvbnNfdG9fbGludCA9
IGV4cGVjdGF0aW9uc19kaWN0IGlmIGxpbnQgZWxzZSBOb25lCisgICAgICAgIGV4cCA9IFRlc3RF
eHBlY3RhdGlvbnMocG9ydCwgWydmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnXSwgZXhwZWN0
YXRpb25zX3RvX2xpbnQ9ZXhwZWN0YXRpb25zX3RvX2xpbnQpCiAKICAgICAgICAgIyBDaGVjayB0
aGF0IHRoZSBleHBlY3RhdGlvbiBpcyBmb3IgQlVHX0RVTU1ZIFNLSVAgOiAuLi4gWyBQYXNzIF0K
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwLmdldF9tb2RpZmllcnMoJ2ZhaWx1cmVzL2V4
cGVjdGVkL3RleHQuaHRtbCcpLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXggODk1MjIwNzljNTA0ZTljYmVi
Y2E0NmIyOTU5ZGU2ZDk4YWM4N2Q1NS4uNDUwMGJhMGM3ZjdiOTIxYTVmMjVjNGI1MGVlYTZhYWFi
Mjc3YTY2ZSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CkBAIC02NywxOSArNjcsMjAgQEAgZGVmIGxpbnQocG9y
dCwgb3B0aW9ucyk6CiAgICAgbGludF9mYWlsZWQgPSBGYWxzZQogCiAgICAgZm9yIHBvcnRfdG9f
bGludCBpbiBwb3J0c190b19saW50OgotICAgICAgICBleHBlY3RhdGlvbnNfZmlsZSA9IHBvcnRf
dG9fbGludC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKQotICAgICAgICBpZiBleHBl
Y3RhdGlvbnNfZmlsZSBpbiBmaWxlc19saW50ZWQ6Ci0gICAgICAgICAgICBjb250aW51ZQotCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlv
bnMocG9ydF90b19saW50LCBpc19saW50X21vZGU9VHJ1ZSkKLSAgICAgICAgZXhjZXB0IHRlc3Rf
ZXhwZWN0YXRpb25zLlBhcnNlRXJyb3IsIGU6Ci0gICAgICAgICAgICBsaW50X2ZhaWxlZCA9IFRy
dWUKLSAgICAgICAgICAgIF9sb2cuZXJyb3IoJycpCi0gICAgICAgICAgICBmb3Igd2FybmluZyBp
biBlLndhcm5pbmdzOgotICAgICAgICAgICAgICAgIF9sb2cuZXJyb3Iod2FybmluZykKLSAgICAg
ICAgICAgIF9sb2cuZXJyb3IoJycpCi0gICAgICAgIGZpbGVzX2xpbnRlZC5hZGQoZXhwZWN0YXRp
b25zX2ZpbGUpCisgICAgICAgIGV4cGVjdGF0aW9uc19kaWN0ID0gcG9ydF90b19saW50LmV4cGVj
dGF0aW9uc19kaWN0KCkKKyAgICAgICAgZm9yIGV4cGVjdGF0aW9uc19maWxlIGluIGV4cGVjdGF0
aW9uc19kaWN0LmtleXMoKToKKyAgICAgICAgICAgIGlmIGV4cGVjdGF0aW9uc19maWxlIGluIGZp
bGVzX2xpbnRlZDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9ucyhwb3J0
X3RvX2xpbnQsIGV4cGVjdGF0aW9uc190b19saW50PXtleHBlY3RhdGlvbnNfZmlsZTogZXhwZWN0
YXRpb25zX2RpY3RbZXhwZWN0YXRpb25zX2ZpbGVdfSkKKyAgICAgICAgICAgIGV4Y2VwdCB0ZXN0
X2V4cGVjdGF0aW9ucy5QYXJzZUVycm9yLCBlOgorICAgICAgICAgICAgICAgIGxpbnRfZmFpbGVk
ID0gVHJ1ZQorICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJycpCisgICAgICAgICAgICAgICAg
Zm9yIHdhcm5pbmcgaW4gZS53YXJuaW5nczoKKyAgICAgICAgICAgICAgICAgICAgX2xvZy5lcnJv
cih3YXJuaW5nKQorICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJycpCisgICAgICAgICAgICBm
aWxlc19saW50ZWQuYWRkKGV4cGVjdGF0aW9uc19maWxlKQogCiAgICAgaWYgbGludF9mYWlsZWQ6
CiAgICAgICAgIF9sb2cuZXJyb3IoJ0xpbnQgZmFpbGVkLicpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9u
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRf
dGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CmluZGV4IDg1NDM3NDQ5YjQzZTdkMTc5OTIyYjYxODM4
NzBjYjA4YzQ2ZGUwOTcuLmQ1NzEzYTBiOTNhYTEyZGU4YTM1NTY0ZTFiMTQyMzgxNWRjNjk5MjYg
MTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJr
aXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CkBAIC0xOTks
OSArMTk5LDYgQEAgY2xhc3MgTGludFRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3Rp
bmdNaXhpbik6CiAgICAgICAgICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogICAgICAgICAgICAg
ICAgIHNlbGYucGF0aCA9IHBhdGgKIAotICAgICAgICAgICAgZGVmIHBhdGhfdG9fdGVzdF9leHBl
Y3RhdGlvbnNfZmlsZShzZWxmKToKLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXRoCi0K
ICAgICAgICAgICAgIGRlZiB0ZXN0X2NvbmZpZ3VyYXRpb24oc2VsZik6CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKIApAQCAtMjQ0LDcgKzI0MSw3IEBAIGNsYXNzIExpbnRUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBGYWtlUG9ydChob3N0LCAnYi13aW4nLCAncGF0aC10
by1iJykpKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJ1bl93ZWJraXRfdGVzdHMubGlu
dChob3N0LnBvcnRfZmFjdG9yeS5wb3J0c1snYSddLCBNb2NrT3B0aW9ucyhwbGF0Zm9ybT1Ob25l
KSksIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGhvc3QucG9ydHNfcGFyc2VkLCBbJ2En
LCAnYiddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhob3N0LnBvcnRzX3BhcnNlZCwgWydh
JywgJ2InLCAnYi13aW4nXSkKIAogICAgICAgICBob3N0LnBvcnRzX3BhcnNlZCA9IFtdCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJ1bl93ZWJraXRfdGVzdHMubGludChob3N0LnBvcnRfZmFj
dG9yeS5wb3J0c1snYSddLCBNb2NrT3B0aW9ucyhwbGF0Zm9ybT0nYScpKSwgMCkKQEAgLTI2Nyw2
ICsyNjQsMTUgQEAgY2xhc3MgTGludFRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3Rp
bmdNaXhpbik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkob3V0KQogICAgICAgICBzZWxmLmFz
c2VydFRydWUoYW55KFsnTGludCBmYWlsZWQnIGluIG1zZyBmb3IgbXNnIGluIGVyci5idWZsaXN0
XSkpCiAKKyAgICAgICAgIyBlbnN1cmUgd2UgbGludCAqYWxsKiBvZiB0aGUgZmlsZXMgaW4gdGhl
IGNhc2NhZGUuCisgICAgICAgIHBvcnRfb2JqLmV4cGVjdGF0aW9uc19kaWN0ID0gbGFtYmRhOiB7
J2Zvbyc6ICctLSBzeW50YXggZXJyb3IxJywgJ2Jhcic6ICctLSBzeW50YXggZXJyb3IyJ30KKyAg
ICAgICAgcmVzLCBvdXQsIGVyciA9IHJ1bl9hbmRfY2FwdHVyZShwb3J0X29iaiwgb3B0aW9ucywg
cGFyc2VkX2FyZ3MpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIC0xKQorICAgICAg
ICBzZWxmLmFzc2VydEVtcHR5KG91dCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGFueShbJ2Zv
bzoxJyBpbiBtc2cgZm9yIG1zZyBpbiBlcnIuYnVmbGlzdF0pKQorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoYW55KFsnYmFyOjEnIGluIG1zZyBmb3IgbXNnIGluIGVyci5idWZsaXN0XSkpCisKIAog
Y2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAg
ICAgZGVmIHNldFVwKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMvdGVzdF9leHBlY3RhdGlvbnMucHkKaW5kZXggMWNlNDBjZDM5ZTJi
ZWVjZGEwYWQxOTk4NTVlYmFiMzVjZmIzNzVjMi4uNTFiOTdiZWM1OTBlZTRjMTQyZWY4M2RmYjY4
ZWZkMWM3YzcwYWQ1MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy90ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CkBAIC03OSw3ICs3OSw3IEBAIGNs
YXNzIFRlc3RFeHBlY3RhdGlvbnNDaGVja2VyKG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAogICAg
IGRlZiBjaGVja190ZXN0X2V4cGVjdGF0aW9ucyhzZWxmLCBleHBlY3RhdGlvbnNfc3RyLCB0ZXN0
cz1Ob25lKToKLSAgICAgICAgcGFyc2VyID0gVGVzdEV4cGVjdGF0aW9uUGFyc2VyKHNlbGYuX3Bv
cnRfb2JqLCB0ZXN0cywgRmFsc2UpCisgICAgICAgIHBhcnNlciA9IFRlc3RFeHBlY3RhdGlvblBh
cnNlcihzZWxmLl9wb3J0X29iaiwgdGVzdHMsIGFsbG93X3JlYmFzZWxpbmVfbW9kaWZpZXI9RmFs
c2UpCiAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHBhcnNlci5wYXJzZSgnZXhwZWN0YXRpb25zJywg
ZXhwZWN0YXRpb25zX3N0cikKIAogICAgICAgICBsZXZlbCA9IDUK
</data>
<flag name="review"
          id="184389"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>