<?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>80355</bug_id>
          
          <creation_ts>2012-03-05 17:02:07 -0800</creation_ts>
          <short_desc>Add a mechanism to rebaseline new ports</short_desc>
          <delta_ts>2012-03-06 12:19:40 -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>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="Ojan Vafai">ojan</reporter>
          <assigned_to name="Ojan Vafai">ojan</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>571209</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-05 17:02:07 -0800</bug_when>
    <thetext>Add a mechanism to rebaseline new ports</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571214</commentid>
    <comment_count>1</comment_count>
      <attachid>130238</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-05 17:03:51 -0800</bug_when>
    <thetext>Created attachment 130238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571299</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-05 17:56:29 -0800</bug_when>
    <thetext>Interesting approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571308</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-05 18:01:11 -0800</bug_when>
    <thetext>Ojan, I looked for you in #webkit, but it looks like you might have left for the day.  My understanding of what you&apos;re doing in this patch is that you&apos;re marking a port as in the process of being &quot;brought up&quot;, which changes the default behavior for incorporating new baselines.  Presumably, we&apos;d remove the &quot;new_port_fallback_port_name&quot; attribute when we&apos;re done bringing up the port.

Generally, I like the approach, but I&apos;d like to bikeshed about some of the names, if you&apos;ll indulge me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571314</commentid>
    <comment_count>4</comment_count>
      <attachid>130238</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-05 18:08:35 -0800</bug_when>
    <thetext>Comment on attachment 130238
Patch

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

I&apos;m not sure whether these new names are any better.  I think these things are just hard to name.  :(

&gt; Tools/Scripts/webkitpy/layout_tests/port/builders.py:53
&gt; +    &quot;Webkit Mac10.7&quot;: {&quot;port_name&quot;: &quot;chromium-mac-lion&quot;, &quot;specifiers&quot;: set([&quot;lion&quot;]), &quot;new_port_fallback_port_name&quot;: &quot;chromium-mac-snowleopard&quot;},

Maybe new_port_fallback_port_name -&gt; move_overwritten_baselines_to ?  It&apos;s slightly hard to convey what this property does succinctly.

&gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:59
&gt; +    argument_names = &quot;BUILDER_NAME TEST_NAME [EXISTING_BASELINE_MOVE_TO_DIRECTORY]&quot;

EXISTING_BASELINE_MOVE_TO_DIRECTORY =&gt; PLATFORM_TO_MOVE_EXISTING_BASELINES_TO ?  Arg.  These are hard things to name.  This is a port, not a directory name, right?

&gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:70
&gt; +    def _copy_existing_baseline(self, baseline_move_to_directory, test_name, suffix):

baseline_move_to_directory -&gt; platform_to_move_existing_baselines_to

&gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:77
&gt; +        new_baseline = os.path.join(port.baseline_path(), self._file_name_for_expected_result(test_name, suffix))

_tool.filesystem.join (we do this to make testing easier on Windows)

&gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:84
&gt; +            if not self._tool.scm().exists(new_baseline):
&gt; +                self._tool.scm().add(new_baseline)

We should make sure this works if we&apos;re creating a new subdirectory for new_baseline.  I think SCM.add does this properly, but we should check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572039</commentid>
    <comment_count>5</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-06 11:56:34 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Ojan, I looked for you in #webkit, but it looks like you might have left for the day. 

Yup. Had to leave right after posting this.

&gt; My understanding of what you&apos;re doing in this patch is that you&apos;re marking a port as in the process of being &quot;brought up&quot;, which changes the default behavior for incorporating new baselines.  Presumably, we&apos;d remove the &quot;new_port_fallback_port_name&quot; attribute when we&apos;re done bringing up the port.

Correct. I cribbed this idea from the rebaseline server.

&gt; Generally, I like the approach, but I&apos;d like to bikeshed about some of the names, if you&apos;ll indulge me.

I&apos;m fine with your renames. They&apos;re not clearly better to me, but they&apos;re not worse either. :)

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572046</commentid>
    <comment_count>6</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-06 12:05:33 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 130238 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130238&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:84
&gt; &gt; +            if not self._tool.scm().exists(new_baseline):
&gt; &gt; +                self._tool.scm().add(new_baseline)
&gt; 
&gt; We should make sure this works if we&apos;re creating a new subdirectory for new_baseline.  I think SCM.add does this properly, but we should check.

Double-checked. It does add new parent directories.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572049</commentid>
    <comment_count>7</comment_count>
      <attachid>130238</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-06 12:11:52 -0800</bug_when>
    <thetext>Comment on attachment 130238
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:59
&gt;&gt; +    argument_names = &quot;BUILDER_NAME TEST_NAME [EXISTING_BASELINE_MOVE_TO_DIRECTORY]&quot;
&gt; 
&gt; EXISTING_BASELINE_MOVE_TO_DIRECTORY =&gt; PLATFORM_TO_MOVE_EXISTING_BASELINES_TO ?  Arg.  These are hard things to name.  This is a port, not a directory name, right?

In one sense, it seems like we should be able to derive what directory to use by looking for all the ports that have port.baseline_path() in their fallback path, and using the directory that comes *before* that. However, that won&apos;t work if we have ports that fall back from win -&gt; mac, and you&apos;d have to specify which port to use, which is what you&apos;ve done. 

Also, at some point this feels like overdesigning a problem that comes up rarely if you try to make it work with ports and not directories. So I guess this is a long-winded way of saying make this a directory, not a port :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572053</commentid>
    <comment_count>8</comment_count>
      <attachid>130238</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-06 12:15:43 -0800</bug_when>
    <thetext>Comment on attachment 130238
Patch

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

&gt;&gt;&gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:59
&gt;&gt;&gt; +    argument_names = &quot;BUILDER_NAME TEST_NAME [EXISTING_BASELINE_MOVE_TO_DIRECTORY]&quot;
&gt;&gt; 
&gt;&gt; EXISTING_BASELINE_MOVE_TO_DIRECTORY =&gt; PLATFORM_TO_MOVE_EXISTING_BASELINES_TO ?  Arg.  These are hard things to name.  This is a port, not a directory name, right?
&gt; 
&gt; In one sense, it seems like we should be able to derive what directory to use by looking for all the ports that have port.baseline_path() in their fallback path, and using the directory that comes *before* that. However, that won&apos;t work if we have ports that fall back from win -&gt; mac, and you&apos;d have to specify which port to use, which is what you&apos;ve done. 
&gt; 
&gt; Also, at some point this feels like overdesigning a problem that comes up rarely if you try to make it work with ports and not directories. So I guess this is a long-winded way of saying make this a directory, not a port :).

In practice, it&apos;s the port-name. As you said, this is rare enough that hard-coding which port is being replaced is a good enough solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572059</commentid>
    <comment_count>9</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-06 12:19:40 -0800</bug_when>
    <thetext>Committed r109945: &lt;http://trac.webkit.org/changeset/109945&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130238</attachid>
            <date>2012-03-05 17:03:51 -0800</date>
            <delta_ts>2012-03-06 12:15:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80355-20120305170349.patch</filename>
            <type>text/plain</type>
            <size>16087</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NjEzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzAxNzU4ZTZjNzMyOWYxMzJhYjI3NDlkMDgxMTRmNTEz
ZTNjMWM1ZC4uNmM5NWJiMGRmZDg0ZjFmNDg5YmVjNjllNDlkY2IwODgwZjcxYWMwOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQx
IEBACisyMDEyLTAzLTA1ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgQWRkIGEgbWVjaGFuaXNtIHRvIHJlYmFzZWxpbmUgbmV3IHBvcnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDM1NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBhIHRlc3QgdGhhdCdzIG9ubHkg
ZmFpbGluZyBvbiBhIG5ldyBwb3J0LCB3ZSB3YW50CisgICAgICAgIHRvIGZpcnN0IGNvcHkgdGhl
IGV4aXN0aW5nIHJlc3VsdCBpbnRvIHRoZSBsb2NhdGlvbiBmb3IgdGhlCisgICAgICAgIHBvcnQg
aXQncyByZXBsYWNpbmcgaW4gb3JkZXIgdG8gbm90IGJyZWFrIHRoYXQgcG9ydC4KKworICAgICAg
ICBGb3IgZXhhbXBsZSwgYnJpbmdpbmcgdXAgdGhlIGNocm9taXVtLWxpb24gcG9ydCwgaWYgd2Ug
anVzdAorICAgICAgICBzdGljayB0aGUgcmVzdWx0cyBpbiB0aGUgY2hyb21pdW0tbWFjIGRpcmVj
dG9yeSwgdGhlIHNub3cgbGVvcGFyZAorICAgICAgICB3aWxsIHN0YXJ0IGZhaWxpbmcuIEluc3Rl
YWQsIHdlIGZpcnN0IGNvcHkgdGhlIGV4aXN0aW5nIHJlc3VsdAorICAgICAgICB0byB0aGUgY2hy
b21pdW0tbWFjLXNub3dsZW9wYXJkIGRpcmVjdG9yeS4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYnVpbGRlcnMucHk6CisgICAgICAgIChidWlsZGVyX3Bh
dGhfZm9yX3BvcnRfbmFtZSk6CisgICAgICAgIChmYWxsYmFja19wb3J0X25hbWVfZm9yX25ld19w
b3J0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGlu
ZS5weToKKyAgICAgICAgKFJlYmFzZWxpbmVUZXN0KToKKyAgICAgICAgKFJlYmFzZWxpbmVUZXN0
Ll9jb3B5X2V4aXN0aW5nX2Jhc2VsaW5lKToKKyAgICAgICAgKFJlYmFzZWxpbmVUZXN0Ll9yZWJh
c2VsaW5lX3Rlc3QpOgorICAgICAgICAoUmViYXNlbGluZVRlc3QuZXhlY3V0ZSk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmVfdW5pdHRlc3QucHk6
CisgICAgICAgIChUZXN0UmViYXNlbGluZS50ZXN0X3JlYmFzZWxpbmVfdGVzdCk6CisgICAgICAg
IChUZXN0UmViYXNlbGluZSk6CisgICAgICAgIChUZXN0UmViYXNlbGluZS50ZXN0X3JlYmFzZWxp
bmVfYW5kX2NvcHlfdGVzdCk6CisgICAgICAgICh0ZXN0X3JlYmFzZWxpbmVfYW5kX2NvcHlfdGVz
dF9ub19leGlzdGluZ19yZXN1bHQpOgorICAgICAgICAodGVzdF9yZWJhc2VsaW5lX2FuZF9jb3B5
X3Rlc3Rfd2l0aF9saW9uX3Jlc3VsdCk6CisgICAgICAgICh0ZXN0X3JlYmFzZWxpbmVfYW5kX2Nv
cHlfbm9fb3ZlcndyaXRlX3Rlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9z
ZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlci5weToKKyAgICAgICAgKEdhcmRlbmluZ0hUVFBSZXF1ZXN0
SGFuZGxlci5yZWJhc2VsaW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2Vy
dmVycy9nYXJkZW5pbmdzZXJ2ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChHYXJkZW5pbmdTZXJ2
ZXJUZXN0LnRlc3RfcmViYXNlbGluZSk6CisgICAgICAgIChHYXJkZW5pbmdTZXJ2ZXJUZXN0KToK
KyAgICAgICAgKEdhcmRlbmluZ1NlcnZlclRlc3QudGVzdF9yZWJhc2VsaW5lX25ld19wb3J0KToK
KwogMjAxMi0wMy0wMiAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IEFkZCB0aGUgQ2hyb21pdW0gTGlvbiBjYW5hcnkgYm90IHRvIHRoZSBmbGFraW5lc3MgZGFzaGJv
YXJkLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9idWlsZGVycy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
YnVpbGRlcnMucHkKaW5kZXggM2Y3ZTQxM2NlOWJlN2ZkNjVhOGEwMmZmMWNhMWIxZWY3ZGJlMmFj
Yi4uMzg4YzBlYzVmNzQyZGI5NzhhYjJmOTg5NmJhYzI4MmIzMmU0ZTYzMyAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9idWlsZGVycy5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2J1aWxkZXJzLnB5CkBA
IC01MCw2ICs1MCw3IEBAIF9leGFjdF9tYXRjaGVzID0gewogICAgICJXZWJraXQgTWFjMTAuNSAo
ZGJnKSgyKSI6IHsicG9ydF9uYW1lIjogImNocm9taXVtLW1hYy1sZW9wYXJkIiwgInNwZWNpZmll
cnMiOiBzZXQoWyJsZW9wYXJkIiwgImRlYnVnIl0pfSwKICAgICAiV2Via2l0IE1hYzEwLjYiOiB7
InBvcnRfbmFtZSI6ICJjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQiLCAic3BlY2lmaWVycyI6IHNl
dChbInNub3dsZW9wYXJkIl0pfSwKICAgICAiV2Via2l0IE1hYzEwLjYgKGRiZykiOiB7InBvcnRf
bmFtZSI6ICJjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQiLCAic3BlY2lmaWVycyI6IHNldChbInNu
b3dsZW9wYXJkIiwgImRlYnVnIl0pfSwKKyAgICAiV2Via2l0IE1hYzEwLjciOiB7InBvcnRfbmFt
ZSI6ICJjaHJvbWl1bS1tYWMtbGlvbiIsICJzcGVjaWZpZXJzIjogc2V0KFsibGlvbiJdKSwgIm5l
d19wb3J0X2ZhbGxiYWNrX3BvcnRfbmFtZSI6ICJjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQifSwK
ICAgICAiV2Via2l0IFdpbiAtIEdQVSI6IHsicG9ydF9uYW1lIjogImNocm9taXVtLWdwdS13aW4t
eHAiLCAic3BlY2lmaWVycyI6IHNldChbInhwIiwgInJlbGVhc2UiLCAiZ3B1Il0pfSwKICAgICAi
V2Via2l0IFdpbjcgLSBHUFUiOiB7InBvcnRfbmFtZSI6ICJjaHJvbWl1bS1ncHUtd2luLXdpbjci
LCAic3BlY2lmaWVycyI6IHNldChbIndpbjciLCAidmlzdGEiLCAicmVsZWFzZSIsICJncHUiXSl9
LAogICAgICMgRklYTUU6IEZvciBzb21lIHJlYXNvbiwgdGhlc2UgcG9ydCBuYW1lcyBkb24ndCB3
b3JrIGNvcnJlY3RseS4KQEAgLTEzMCwzICsxMzEsNyBAQCBkZWYgYnVpbGRlcl9uYW1lX2Zvcl9w
b3J0X25hbWUodGFyZ2V0X3BvcnRfbmFtZSk6CiAKIGRlZiBidWlsZGVyX3BhdGhfZm9yX3BvcnRf
bmFtZShwb3J0X25hbWUpOgogICAgIGJ1aWxkZXJfcGF0aF9mcm9tX25hbWUoYnVpbGRlcl9uYW1l
X2Zvcl9wb3J0X25hbWUocG9ydF9uYW1lKSkKKworCitkZWYgZmFsbGJhY2tfcG9ydF9uYW1lX2Zv
cl9uZXdfcG9ydChidWlsZGVyX25hbWUpOgorICAgIHJldHVybiBfZXhhY3RfbWF0Y2hlc1tidWls
ZGVyX25hbWVdLmdldCgibmV3X3BvcnRfZmFsbGJhY2tfcG9ydF9uYW1lIikKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKaW5kZXggNTE1
ZmY3ZGZhNTgxZDE3YjQ5Njk5NTMxYjcwZDVlMWFiNGYxNDZlNC4uM2YwNDFlZjA4YWUzODc3MDg0
ODJiYjZmOGZiZDJkZDdjN2IxOWI1NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKQEAgLTU2LDcgKzU2LDcgQEAgZGVmIF9iYXNl
bGluZV9uYW1lKGZzLCB0ZXN0X25hbWUsIHN1ZmZpeCk6CiBjbGFzcyBSZWJhc2VsaW5lVGVzdChB
YnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJyZWJhc2VsaW5lLXRlc3Qi
CiAgICAgaGVscF90ZXh0ID0gIlJlYmFzZWxpbmUgYSBzaW5nbGUgdGVzdCBmcm9tIGEgYnVpbGRi
b3QuICAoQ3VycmVudGx5IHdvcmtzIG9ubHkgd2l0aCBidWlsZC5jaHJvbWl1bS5vcmcgYnVpbGRi
b3RzLikiCi0gICAgYXJndW1lbnRfbmFtZXMgPSAiQlVJTERFUl9OQU1FIFRFU1RfTkFNRSIKKyAg
ICBhcmd1bWVudF9uYW1lcyA9ICJCVUlMREVSX05BTUUgVEVTVF9OQU1FIFtFWElTVElOR19CQVNF
TElORV9NT1ZFX1RPX0RJUkVDVE9SWV0iCiAKICAgICBkZWYgX3Jlc3VsdHNfdXJsKHNlbGYsIGJ1
aWxkZXJfbmFtZSk6CiAgICAgICAgICMgRklYTUU6IEdlbmVyYWxpemUgdGhpcyBjb21tYW5kIHRv
IHdvcmsgd2l0aCBub24tYnVpbGQuY2hyb21pdW0ub3JnIGJ1aWxkZXJzLgpAQCAtNjcsNiArNjcs
MjIgQEAgY2xhc3MgUmViYXNlbGluZVRlc3QoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgog
ICAgICAgICBwb3J0ID0gc2VsZi5fdG9vbC5wb3J0X2ZhY3RvcnkuZ2V0X2Zyb21fYnVpbGRlcl9u
YW1lKGJ1aWxkZXJfbmFtZSkKICAgICAgICAgcmV0dXJuIHBvcnQuYmFzZWxpbmVfcGF0aCgpCiAK
KyAgICBkZWYgX2NvcHlfZXhpc3RpbmdfYmFzZWxpbmUoc2VsZiwgYmFzZWxpbmVfbW92ZV90b19k
aXJlY3RvcnksIHRlc3RfbmFtZSwgc3VmZml4KToKKyAgICAgICAgcG9ydCA9IHNlbGYuX3Rvb2wu
cG9ydF9mYWN0b3J5LmdldChiYXNlbGluZV9tb3ZlX3RvX2RpcmVjdG9yeSkKKyAgICAgICAgb2xk
X2Jhc2VsaW5lID0gcG9ydC5leHBlY3RlZF9maWxlbmFtZSh0ZXN0X25hbWUsICIuIiArIHN1ZmZp
eCkKKyAgICAgICAgaWYgbm90IHNlbGYuX3Rvb2wuZmlsZXN5c3RlbS5leGlzdHMob2xkX2Jhc2Vs
aW5lKToKKyAgICAgICAgICAgIHByaW50KCJObyBleGlzdGluZyBiYXNlbGluZSBmb3IgJXMuIiAl
IHRlc3RfbmFtZSkKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIG5ld19iYXNlbGluZSA9
IG9zLnBhdGguam9pbihwb3J0LmJhc2VsaW5lX3BhdGgoKSwgc2VsZi5fZmlsZV9uYW1lX2Zvcl9l
eHBlY3RlZF9yZXN1bHQodGVzdF9uYW1lLCBzdWZmaXgpKQorICAgICAgICBpZiBzZWxmLl90b29s
LmZpbGVzeXN0ZW0uZXhpc3RzKG5ld19iYXNlbGluZSk6CisgICAgICAgICAgICBwcmludCgiRXhp
c3RpbmcgYmFzZWxpbmUgYXQgJXMsIG5vdCBjb3B5aW5nIG92ZXIgaXQuIiAlIG5ld19iYXNlbGlu
ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50KCJDb3B5aW5nIGJhc2VsaW5lIGZy
b20gJXMgdG8gJXMuIiAlIChvbGRfYmFzZWxpbmUsIG5ld19iYXNlbGluZSkpCisgICAgICAgICAg
ICBzZWxmLl90b29sLmZpbGVzeXN0ZW0uY29weWZpbGUob2xkX2Jhc2VsaW5lLCBuZXdfYmFzZWxp
bmUpCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC5zY20oKS5leGlzdHMobmV3X2Jhc2Vs
aW5lKToKKyAgICAgICAgICAgICAgICBzZWxmLl90b29sLnNjbSgpLmFkZChuZXdfYmFzZWxpbmUp
CisKICAgICBkZWYgX3NhdmVfYmFzZWxpbmUoc2VsZiwgZGF0YSwgdGFyZ2V0X2Jhc2VsaW5lKToK
ICAgICAgICAgaWYgbm90IGRhdGE6CiAgICAgICAgICAgICByZXR1cm4KQEAgLTg1LDE5ICsxMDEs
MjcgQEAgY2xhc3MgUmViYXNlbGluZVRlc3QoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgog
ICAgIGRlZiBfZmlsZV9uYW1lX2Zvcl9leHBlY3RlZF9yZXN1bHQoc2VsZiwgdGVzdF9uYW1lLCBz
dWZmaXgpOgogICAgICAgICByZXR1cm4gIiVzLWV4cGVjdGVkLiVzIiAlIChzZWxmLl90ZXN0X3Jv
b3QodGVzdF9uYW1lKSwgc3VmZml4KQogCi0gICAgZGVmIF9yZWJhc2VsaW5lX3Rlc3Qoc2VsZiwg
YnVpbGRlcl9uYW1lLCB0ZXN0X25hbWUsIHN1ZmZpeCk6CisgICAgZGVmIF9yZWJhc2VsaW5lX3Rl
c3Qoc2VsZiwgYnVpbGRlcl9uYW1lLCB0ZXN0X25hbWUsIGJhc2VsaW5lX21vdmVfdG9fZGlyZWN0
b3J5LCBzdWZmaXgpOgogICAgICAgICByZXN1bHRzX3VybCA9IHNlbGYuX3Jlc3VsdHNfdXJsKGJ1
aWxkZXJfbmFtZSkKICAgICAgICAgYmFzZWxpbmVfZGlyZWN0b3J5ID0gc2VsZi5fYmFzZWxpbmVf
ZGlyZWN0b3J5KGJ1aWxkZXJfbmFtZSkKIAogICAgICAgICBzb3VyY2VfYmFzZWxpbmUgPSAiJXMv
JXMiICUgKHJlc3VsdHNfdXJsLCBzZWxmLl9maWxlX25hbWVfZm9yX2FjdHVhbF9yZXN1bHQodGVz
dF9uYW1lLCBzdWZmaXgpKQogICAgICAgICB0YXJnZXRfYmFzZWxpbmUgPSBvcy5wYXRoLmpvaW4o
YmFzZWxpbmVfZGlyZWN0b3J5LCBzZWxmLl9maWxlX25hbWVfZm9yX2V4cGVjdGVkX3Jlc3VsdCh0
ZXN0X25hbWUsIHN1ZmZpeCkpCiAKKyAgICAgICAgaWYgYmFzZWxpbmVfbW92ZV90b19kaXJlY3Rv
cnk6CisgICAgICAgICAgICBzZWxmLl9jb3B5X2V4aXN0aW5nX2Jhc2VsaW5lKGJhc2VsaW5lX21v
dmVfdG9fZGlyZWN0b3J5LCB0ZXN0X25hbWUsIHN1ZmZpeCkKKwogICAgICAgICBwcmludCAiUmV0
cmlldmluZyAlcy4iICUgc291cmNlX2Jhc2VsaW5lCiAgICAgICAgIHNlbGYuX3NhdmVfYmFzZWxp
bmUoc2VsZi5fdG9vbC53ZWIuZ2V0X2JpbmFyeShzb3VyY2VfYmFzZWxpbmUsIGNvbnZlcnRfNDA0
X3RvX05vbmU9VHJ1ZSksIHRhcmdldF9iYXNlbGluZSkKIAogICAgIGRlZiBleGVjdXRlKHNlbGYs
IG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgogICAgICAgICBmb3Igc3VmZml4IGluIF9iYXNlbGluZV9z
dWZmaXhfbGlzdDoKLSAgICAgICAgICAgIHNlbGYuX3JlYmFzZWxpbmVfdGVzdChhcmdzWzBdLCBh
cmdzWzFdLCBzdWZmaXgpCisgICAgICAgICAgICBpZiBsZW4oYXJncykgPiAyOgorICAgICAgICAg
ICAgICAgIGJhc2VsaW5lX21vdmVfdG9fZGlyZWN0b3J5ID0gYXJnc1syXQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICBiYXNlbGluZV9tb3ZlX3RvX2RpcmVjdG9yeSA9IE5vbmUK
KworICAgICAgICAgICAgc2VsZi5fcmViYXNlbGluZV90ZXN0KGFyZ3NbMF0sIGFyZ3NbMV0sIGJh
c2VsaW5lX21vdmVfdG9fZGlyZWN0b3J5LCBzdWZmaXgpCiAKIAogY2xhc3MgT3B0aW1pemVCYXNl
bGluZXMoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmVfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZV91bml0dGVzdC5weQpp
bmRleCA1MjcyNDMwOGRjMGM3YTdhM2ViNDMwNTZmYzAyNjgzZjg2ZDQyMGY2Li5iNzFjYWE1Y2Ri
NDU0ZTdhNzJiODJiZDc2NjZjNzg3OTgxZTliMGQxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZV91bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZV91bml0dGVzdC5weQpA
QCAtNDYsNyArNDYsNTkgQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmUodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBjb21tYW5kID0gUmViYXNlbGluZVRlc3QoKQogICAgICAgICBjb21tYW5kLmJp
bmRfdG9fdG9vbChNb2NrVG9vbCgpKQogICAgICAgICBleHBlY3RlZF9zdGRvdXQgPSAiUmV0cmll
dmluZyBodHRwOi8vZXhhbXBsZS5jb20vZi9idWlsZGVycy9XZWJraXQgTGludXgvcmVzdWx0cy9s
YXlvdXQtdGVzdC1yZXN1bHRzL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwudHh0Llxu
IgotICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgY29tbWFuZC5f
cmViYXNlbGluZV90ZXN0LCBbIldlYmtpdCBMaW51eCIsICJ1c2Vyc2NyaXB0cy9hbm90aGVyLXRl
c3QuaHRtbCIsICJ0eHQiXSwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCkKKyAgICAg
ICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGNvbW1hbmQuX3JlYmFzZWxp
bmVfdGVzdCwgWyJXZWJraXQgTGludXgiLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwi
LCBOb25lLCAidHh0Il0sIGV4cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9zdGRvdXQpCisKKyAgICBk
ZWYgdGVzdF9yZWJhc2VsaW5lX2FuZF9jb3B5X3Rlc3Qoc2VsZik6CisgICAgICAgIGNvbW1hbmQg
PSBSZWJhc2VsaW5lVGVzdCgpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCisgICAgICAgIGNv
bW1hbmQuYmluZF90b190b29sKHRvb2wpCisKKyAgICAgICAgbGlvbl9wb3J0ID0gdG9vbC5wb3J0
X2ZhY3RvcnkuZ2V0X2Zyb21fYnVpbGRlcl9uYW1lKCJXZWJraXQgTWFjMTAuNyIpCisgICAgICAg
IHRvb2wuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUob3MucGF0aC5qb2luKGxpb25fcG9ydC5s
YXlvdXRfdGVzdHNfZGlyKCksICJ1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0
IiksICJEdW1teSBleHBlY3RlZCByZXN1bHQiKQorCisgICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9
ICIiIkNvcHlpbmcgYmFzZWxpbmUgZnJvbSAvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy91c2Vy
c2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0IHRvIC9tb2NrLWNoZWNrb3V0L0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLW1hYy1zbm93bGVvcGFyZC91c2Vyc2NyaXB0cy9hbm90
aGVyLXRlc3QtZXhwZWN0ZWQudHh0LgorUmV0cmlldmluZyBodHRwOi8vZXhhbXBsZS5jb20vZi9i
dWlsZGVycy9XZWJraXQgTWFjMTAuNy9yZXN1bHRzL2xheW91dC10ZXN0LXJlc3VsdHMvdXNlcnNj
cmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC50eHQuCisiIiIKKyAgICAgICAgT3V0cHV0Q2FwdHVy
ZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGNvbW1hbmQuX3JlYmFzZWxpbmVfdGVzdCwgWyJXZWJr
aXQgTWFjMTAuNyIsICJ1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCIsICJjaHJvbWl1bS1t
YWMtc25vd2xlb3BhcmQiLCAidHh0Il0sIGV4cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9zdGRvdXQp
CisKKyAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX2FuZF9jb3B5X3Rlc3Rfbm9fZXhpc3RpbmdfcmVz
dWx0KHNlbGYpOgorICAgICAgICBjb21tYW5kID0gUmViYXNlbGluZVRlc3QoKQorICAgICAgICB0
b29sID0gTW9ja1Rvb2woKQorICAgICAgICBjb21tYW5kLmJpbmRfdG9fdG9vbCh0b29sKQorCisg
ICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9ICIiIk5vIGV4aXN0aW5nIGJhc2VsaW5lIGZvciB1c2Vy
c2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbC4KK1JldHJpZXZpbmcgaHR0cDovL2V4YW1wbGUuY29t
L2YvYnVpbGRlcnMvV2Via2l0IE1hYzEwLjcvcmVzdWx0cy9sYXlvdXQtdGVzdC1yZXN1bHRzL3Vz
ZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwudHh0LgorIiIiCisgICAgICAgIE91dHB1dENh
cHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBjb21tYW5kLl9yZWJhc2VsaW5lX3Rlc3QsIFsi
V2Via2l0IE1hYzEwLjciLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiLCAiY2hyb21p
dW0tbWFjLXNub3dsZW9wYXJkIiwgInR4dCJdLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rk
b3V0KQorCisgICAgZGVmIHRlc3RfcmViYXNlbGluZV9hbmRfY29weV90ZXN0X3dpdGhfbGlvbl9y
ZXN1bHQoc2VsZik6CisgICAgICAgIGNvbW1hbmQgPSBSZWJhc2VsaW5lVGVzdCgpCisgICAgICAg
IHRvb2wgPSBNb2NrVG9vbCgpCisgICAgICAgIGNvbW1hbmQuYmluZF90b190b29sKHRvb2wpCisK
KyAgICAgICAgbGlvbl9wb3J0ID0gdG9vbC5wb3J0X2ZhY3RvcnkuZ2V0X2Zyb21fYnVpbGRlcl9u
YW1lKCJXZWJraXQgTWFjMTAuNyIpCisgICAgICAgIHRvb2wuZmlsZXN5c3RlbS53cml0ZV90ZXh0
X2ZpbGUob3MucGF0aC5qb2luKGxpb25fcG9ydC5iYXNlbGluZV9wYXRoKCksICJ1c2Vyc2NyaXB0
cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0IiksICJEdW1teSBleHBlY3RlZCByZXN1bHQiKQor
CisgICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9ICIiIkNvcHlpbmcgYmFzZWxpbmUgZnJvbSAvbW9j
ay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvdXNlcnNjcmlwdHMv
YW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dCB0byAvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0
LWV4cGVjdGVkLnR4dC4KK1JldHJpZXZpbmcgaHR0cDovL2V4YW1wbGUuY29tL2YvYnVpbGRlcnMv
V2Via2l0IE1hYzEwLjcvcmVzdWx0cy9sYXlvdXQtdGVzdC1yZXN1bHRzL3VzZXJzY3JpcHRzL2Fu
b3RoZXItdGVzdC1hY3R1YWwudHh0LgorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3Nl
cnRfb3V0cHV0cyhzZWxmLCBjb21tYW5kLl9yZWJhc2VsaW5lX3Rlc3QsIFsiV2Via2l0IE1hYzEw
LjciLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiLCAiY2hyb21pdW0tbWFjLXNub3ds
ZW9wYXJkIiwgInR4dCJdLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0KQorCisgICAg
ZGVmIHRlc3RfcmViYXNlbGluZV9hbmRfY29weV9ub19vdmVyd3JpdGVfdGVzdChzZWxmKToKKyAg
ICAgICAgY29tbWFuZCA9IFJlYmFzZWxpbmVUZXN0KCkKKyAgICAgICAgdG9vbCA9IE1vY2tUb29s
KCkKKyAgICAgICAgY29tbWFuZC5iaW5kX3RvX3Rvb2wodG9vbCkKKworICAgICAgICBsaW9uX3Bv
cnQgPSB0b29sLnBvcnRfZmFjdG9yeS5nZXRfZnJvbV9idWlsZGVyX25hbWUoIldlYmtpdCBNYWMx
MC43IikKKyAgICAgICAgdG9vbC5maWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShvcy5wYXRoLmpv
aW4obGlvbl9wb3J0LmJhc2VsaW5lX3BhdGgoKSwgInVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1l
eHBlY3RlZC50eHQiKSwgIkR1bW15IGV4cGVjdGVkIHJlc3VsdCIpCisKKyAgICAgICAgc25vd2xl
b3BhcmRfcG9ydCA9IHRvb2wucG9ydF9mYWN0b3J5LmdldF9mcm9tX2J1aWxkZXJfbmFtZSgiV2Vi
a2l0IE1hYzEwLjYiKQorICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKG9z
LnBhdGguam9pbihzbm93bGVvcGFyZF9wb3J0LmJhc2VsaW5lX3BhdGgoKSwgInVzZXJzY3JpcHRz
L2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQiKSwgIkR1bW15IGV4cGVjdGVkIHJlc3VsdCIpCisK
KyAgICAgICAgZXhwZWN0ZWRfc3Rkb3V0ID0gIiIiRXhpc3RpbmcgYmFzZWxpbmUgYXQgL21vY2st
Y2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkL3Vz
ZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQsIG5vdCBjb3B5aW5nIG92ZXIgaXQu
CitSZXRyaWV2aW5nIGh0dHA6Ly9leGFtcGxlLmNvbS9mL2J1aWxkZXJzL1dlYmtpdCBNYWMxMC43
L3Jlc3VsdHMvbGF5b3V0LXRlc3QtcmVzdWx0cy91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtYWN0
dWFsLnR4dC4KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2Vs
ZiwgY29tbWFuZC5fcmViYXNlbGluZV90ZXN0LCBbIldlYmtpdCBNYWMxMC43IiwgInVzZXJzY3Jp
cHRzL2Fub3RoZXItdGVzdC5odG1sIiwgImNocm9taXVtLW1hYy1zbm93bGVvcGFyZCIsICJ0eHQi
XSwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCkKIAogICAgIGRlZiB0ZXN0X3JlYmFz
ZWxpbmVfZXhwZWN0YXRpb25zKHNlbGYpOgogICAgICAgICBjb21tYW5kID0gUmViYXNlbGluZUV4
cGVjdGF0aW9ucygpCkBAIC03Miw2ICsxMjQsOSBAQCBSZXRyaWV2aW5nIHJlc3VsdHMgZm9yIGNo
cm9taXVtLWxpbnV4LXg4Nl82NCBmcm9tIFdlYmtpdCBMaW51eC4KIFJldHJpZXZpbmcgcmVzdWx0
cyBmb3IgY2hyb21pdW0tbWFjLWxlb3BhcmQgZnJvbSBXZWJraXQgTWFjMTAuNS4KICAgICB1c2Vy
c2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbAogICAgIHVzZXJzY3JpcHRzL2ltYWdlcy5zdmcKK1Jl
dHJpZXZpbmcgcmVzdWx0cyBmb3IgY2hyb21pdW0tbWFjLWxpb24gZnJvbSBXZWJraXQgTWFjMTAu
Ny4KKyAgICB1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbAorICAgIHVzZXJzY3JpcHRzL2lt
YWdlcy5zdmcKIFJldHJpZXZpbmcgcmVzdWx0cyBmb3IgY2hyb21pdW0tbWFjLXNub3dsZW9wYXJk
IGZyb20gV2Via2l0IE1hYzEwLjYuCiAgICAgdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwK
ICAgICB1c2Vyc2NyaXB0cy9pbWFnZXMuc3ZnCkBAIC05Myw2ICsxNDgsOCBAQCBNT0NLIHJ1bl9j
b21tYW5kOiBbJ2VjaG8nLCAncmViYXNlbGluZS10ZXN0JywgJ1dlYmtpdCBMaW51eCcsICd1c2Vy
c2NyaXB0cy9hbm90aAogTU9DSyBydW5fY29tbWFuZDogWydlY2hvJywgJ3JlYmFzZWxpbmUtdGVz
dCcsICdXZWJraXQgTGludXgnLCAndXNlcnNjcmlwdHMvaW1hZ2VzLnN2ZyddLCBjd2Q9L21vY2st
Y2hlY2tvdXQKIE1PQ0sgcnVuX2NvbW1hbmQ6IFsnZWNobycsICdyZWJhc2VsaW5lLXRlc3QnLCAn
V2Via2l0IE1hYzEwLjUnLCAndXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwnXSwgY3dkPS9t
b2NrLWNoZWNrb3V0CiBNT0NLIHJ1bl9jb21tYW5kOiBbJ2VjaG8nLCAncmViYXNlbGluZS10ZXN0
JywgJ1dlYmtpdCBNYWMxMC41JywgJ3VzZXJzY3JpcHRzL2ltYWdlcy5zdmcnXSwgY3dkPS9tb2Nr
LWNoZWNrb3V0CitNT0NLIHJ1bl9jb21tYW5kOiBbJ2VjaG8nLCAncmViYXNlbGluZS10ZXN0Jywg
J1dlYmtpdCBNYWMxMC43JywgJ3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJ10sIGN3ZD0v
bW9jay1jaGVja291dAorTU9DSyBydW5fY29tbWFuZDogWydlY2hvJywgJ3JlYmFzZWxpbmUtdGVz
dCcsICdXZWJraXQgTWFjMTAuNycsICd1c2Vyc2NyaXB0cy9pbWFnZXMuc3ZnJ10sIGN3ZD0vbW9j
ay1jaGVja291dAogTU9DSyBydW5fY29tbWFuZDogWydlY2hvJywgJ3JlYmFzZWxpbmUtdGVzdCcs
ICdXZWJraXQgTWFjMTAuNicsICd1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCddLCBjd2Q9
L21vY2stY2hlY2tvdXQKIE1PQ0sgcnVuX2NvbW1hbmQ6IFsnZWNobycsICdyZWJhc2VsaW5lLXRl
c3QnLCAnV2Via2l0IE1hYzEwLjYnLCAndXNlcnNjcmlwdHMvaW1hZ2VzLnN2ZyddLCBjd2Q9L21v
Y2stY2hlY2tvdXQKIE1PQ0sgcnVuX2NvbW1hbmQ6IFsnZWNobycsICdyZWJhc2VsaW5lLXRlc3Qn
LCAnV2Via2l0IFZpc3RhJywgJ3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJ10sIGN3ZD0v
bW9jay1jaGVja291dApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvZ2FyZGVuaW5nc2VydmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvZ2FyZGVuaW5nc2VydmVyLnB5CmluZGV4IGIwOTBhZjkxMjg0YTg5NzM3MGNiYmE2NzU4
Mzg3NjdjNjQxYjRiOWYuLmMzNDA3NWRkODE2ZmMxODcwODQ0MzVjZjkwZjcyODAyM2E1YzdkYmIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmlu
Z3NlcnZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJk
ZW5pbmdzZXJ2ZXIucHkKQEAgLTE0Miw2ICsxNDIsNyBAQCBjbGFzcyBHYXJkZW5pbmdIVFRQUmVx
dWVzdEhhbmRsZXIoUmVmbGVjdGlvbkhhbmRsZXIpOgogICAgICAgICAgICAgJ3JlYmFzZWxpbmUt
dGVzdCcsCiAgICAgICAgICAgICBidWlsZGVyLAogICAgICAgICAgICAgdGVzdCwKKyAgICAgICAg
ICAgIGJ1aWxkZXJzLmZhbGxiYWNrX3BvcnRfbmFtZV9mb3JfbmV3X3BvcnQoYnVpbGRlciksCiAg
ICAgICAgIF0pCiAgICAgICAgIHNlbGYuX3NlcnZlX3RleHQoJ3N1Y2Nlc3MnKQogCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXJf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5p
bmdzZXJ2ZXJfdW5pdHRlc3QucHkKaW5kZXggOWQ5OTgzNWYxMDUwMDMwYjUyODEzZWNmNWE5OGRk
YWM3YzNmMThlZS4uOTJhNDIxYWM3ZjZkZGJjNGYxYmE5YTI3OWE5YzgwNGU1OTRhZjhhZCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2Vy
dmVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJz
L2dhcmRlbmluZ3NlcnZlcl91bml0dGVzdC5weQpAQCAtMzEsNiArMzEsNyBAQCBpbXBvcnQgdW5p
dHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0
IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2Nv
bmZpZ3VyYXRpb24gaW1wb3J0ICoKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1w
b3J0IGJ1aWxkZXJzCiBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkubW9jayBpbXBvcnQgTW9jawog
ZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrVG9vbAogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlCkBAIC0x
ODIsNyArMTgzLDE0IEBAIGNsYXNzIEdhcmRlbmluZ1NlcnZlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICBzZWxmLl9wb3N0X3RvX3BhdGgoIi9yb2xsb3V0P3JldmlzaW9uPTIzMTQm
cmVhc29uPU1PQ0srcm9sbG91dCtyZWFzb24iLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3Rk
ZXJyLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0KQogCiAgICAgZGVmIHRlc3RfcmVi
YXNlbGluZShzZWxmKToKLSAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0sgcnVuX2NvbW1h
bmQ6IFsnZWNobycsICdyZWJhc2VsaW5lLXRlc3QnLCAnTU9DSyBidWlsZGVyJywgJ3VzZXItc2Ny
aXB0cy9hbm90aGVyLXRlc3QuaHRtbCddLCBjd2Q9L21vY2stY2hlY2tvdXRcbiIKKyAgICAgICAg
YnVpbGRlcnMuX2V4YWN0X21hdGNoZXMgPSB7Ik1PQ0sgYnVpbGRlciI6IHsicG9ydF9uYW1lIjog
Im1vY2stcG9ydC1uYW1lIiwgInNwZWNpZmllcnMiOiBzZXQoWyJtb2NrLXNwZWNpZmllciJdKX19
CisgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJNT0NLIHJ1bl9jb21tYW5kOiBbJ2VjaG8nLCAn
cmViYXNlbGluZS10ZXN0JywgJ01PQ0sgYnVpbGRlcicsICd1c2VyLXNjcmlwdHMvYW5vdGhlci10
ZXN0Lmh0bWwnLCBOb25lXSwgY3dkPS9tb2NrLWNoZWNrb3V0XG4iCisgICAgICAgIGV4cGVjdGVk
X3N0ZG91dCA9ICI9PSBCZWdpbiBSZXNwb25zZSA9PVxuc3VjY2Vzc1xuPT0gRW5kIFJlc3BvbnNl
ID09XG4iCisgICAgICAgIHNlbGYuX3Bvc3RfdG9fcGF0aCgiL3JlYmFzZWxpbmU/YnVpbGRlcj1N
T0NLK2J1aWxkZXImdGVzdD11c2VyLXNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiLCBleHBlY3Rl
ZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0
KQorCisgICAgZGVmIHRlc3RfcmViYXNlbGluZV9uZXdfcG9ydChzZWxmKToKKyAgICAgICAgYnVp
bGRlcnMuX2V4YWN0X21hdGNoZXMgPSB7Ik1PQ0sgYnVpbGRlciI6IHsicG9ydF9uYW1lIjogIm1v
Y2stcG9ydC1uYW1lIiwgInNwZWNpZmllcnMiOiBzZXQoWyJtb2NrLXNwZWNpZmllciJdKSwgIm5l
d19wb3J0X2ZhbGxiYWNrX3BvcnRfbmFtZSI6ICJtb2NrLXBvcnQtZmFsbGJhY2sifX0KKyAgICAg
ICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0sgcnVuX2NvbW1hbmQ6IFsnZWNobycsICdyZWJhc2Vs
aW5lLXRlc3QnLCAnTU9DSyBidWlsZGVyJywgJ3VzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRt
bCcsICdtb2NrLXBvcnQtZmFsbGJhY2snXSwgY3dkPS9tb2NrLWNoZWNrb3V0XG4iCiAgICAgICAg
IGV4cGVjdGVkX3N0ZG91dCA9ICI9PSBCZWdpbiBSZXNwb25zZSA9PVxuc3VjY2Vzc1xuPT0gRW5k
IFJlc3BvbnNlID09XG4iCiAgICAgICAgIHNlbGYuX3Bvc3RfdG9fcGF0aCgiL3JlYmFzZWxpbmU/
YnVpbGRlcj1NT0NLK2J1aWxkZXImdGVzdD11c2VyLXNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwi
LCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0
ZWRfc3Rkb3V0KQogCg==
</data>
<flag name="review"
          id="133183"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>