<?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>50043</bug_id>
          
          <creation_ts>2010-11-24 15:05:19 -0800</creation_ts>
          <short_desc>new-run-webkit-tests: use port_testcase in more port tests</short_desc>
          <delta_ts>2011-04-11 13:22:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>48095</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>313488</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-24 15:05:19 -0800</bug_when>
    <thetext>new-run-webkit-tests: use port_testcase in more port tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313489</commentid>
    <comment_count>1</comment_count>
      <attachid>74800</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-24 15:08:40 -0800</bug_when>
    <thetext>Created attachment 74800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313498</commentid>
    <comment_count>2</comment_count>
      <attachid>74800</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-24 15:36:29 -0800</bug_when>
    <thetext>Comment on attachment 74800
Patch

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

I guess we only run the test if the platform matches, right?  How much time does this add to the tests on cygwin and mac (where we&apos;re running 2 tests of tests)?

&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/base.py:530
&gt; +        if self.get_option(&apos;use_apache&apos;) == False:

Why is switching this if/else better?

Anyway, it should be &quot;if not self....&quot;

&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/test_unittest.py:31
&gt; +import test

test seems like an unfortunate name for this file.

&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/test_unittest.py:35
&gt; +class TestTest(port_testcase.PortTestCase):

TestTest seems like an even more unfortunate name.  Maybe TestPortTest or TestTestPort or TestForTestPort?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313505</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-24 15:50:50 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 74800 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74800&amp;action=review
&gt; 
&gt; I guess we only run the test if the platform matches, right?  How much time does this add to the tests on cygwin and mac (where we&apos;re running 2 tests of tests)?
&gt; 

We only run the test if the platform matches and the build is up to date (i.e., the binaries exist). This is to avoid trying to run Chromium tests in a non-Chromium checkout (or similar). The tests are slowish, and take a few seconds per file. Ideally they get turned on in &quot;integration&quot; mode when I am able to land that particular patch.
 
Dunno. Haven&apos;t actually actually run this on 
&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/port/base.py:530
&gt; &gt; +        if self.get_option(&apos;use_apache&apos;) == False:
&gt; 
&gt; Why is switching this if/else better?
&gt; 

It changes the processing of &apos;use_apache&apos; is not set (i.e., None). The old code would default to LigHTTPd, which is the wrong default for everyone but Chromium Win.

A better fix would be to actually pick up useful defaults; that fix falls in as part of bug 48095 .

&gt; Anyway, it should be &quot;if not self....&quot;
&gt; 

No, it shouldn&apos;t, it needs to be explicitly testing against False so that None is treated the same way as True. Arguably this could be written as if X is None or X is True, or we could use self.set_option_default(True).

&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/port/test_unittest.py:31
&gt; &gt; +import test
&gt; 
&gt; test seems like an unfortunate name for this file.
&gt;

Perhaps, but it has been named that way for quite some time. It is what you get if you say --platform test, so there it follows the convention all the the other files follow.
 
&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/port/test_unittest.py:35
&gt; &gt; +class TestTest(port_testcase.PortTestCase):
&gt; 
&gt; TestTest seems like an even more unfortunate name.  Maybe TestPortTest or TestTestPort or TestForTestPort?

Sure, I can change this to TestPortTest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313509</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-24 15:58:37 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 74800 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74800&amp;action=review
&gt; &gt; 
&gt; It changes the processing of &apos;use_apache&apos; is not set (i.e., None). The old code would default to LigHTTPd, which is the wrong default for everyone but Chromium Win.
&gt; 
&gt; A better fix would be to actually pick up useful defaults; that fix falls in as part of bug 48095 .

Let&apos;s fix that bug first.  Or more specifically, make the option value always True or False (can&apos;t we use store_result for this?)  Testing with == False seems fragile and non-obvious to anyone reading the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313510</commentid>
    <comment_count>5</comment_count>
      <attachid>74804</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-24 15:59:32 -0800</bug_when>
    <thetext>Created attachment 74804
rename TestTest to TestPortTest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313513</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-24 16:07:39 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (From update of attachment 74800 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74800&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; It changes the processing of &apos;use_apache&apos; is not set (i.e., None). The old code would default to LigHTTPd, which is the wrong default for everyone but Chromium Win.
&gt; &gt; 
&gt; &gt; A better fix would be to actually pick up useful defaults; that fix falls in as part of bug 48095 .
&gt; 
&gt; Let&apos;s fix that bug first.  Or more specifically, make the option value always True or False (can&apos;t we use store_result for this?)  Testing with == False seems fragile and non-obvious to anyone reading the code.

We can&apos;t use store_result, because we can&apos;t assume that the option was actually declared at all (that&apos;s part of the problem). 

I am fine w/ waiting on fixing 48095 if you are. I agree that testing specifically against False is somewhat fragile, especially if you are hard-wired to think that None and False are the same thing ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383428</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-11 13:22:27 -0700</bug_when>
    <thetext>Closing this ... we now use PortTestCase on all of the ports, and this patch is long-since obsolete.

There are still issues with the code and how we get default values, but those are tracked separately.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74800</attachid>
            <date>2010-11-24 15:08:40 -0800</date>
            <delta_ts>2010-11-24 15:59:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50043-20101124150838.patch</filename>
            <type>text/plain</type>
            <size>17418</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3YTg5ZjMzYzk5MDY3ZDJmZmQ4MWZjNDhlMjU5ODg2NjAxYmIzYWQwLi41MDU4OTY5
ODQ4ZThiZThiMTcwYTA1YjQyZjgyMTllNTRiYzY2N2QzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzQgQEAK
IDIwMTAtMTEtMjQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQt
dGVzdHM6IHVzZSBwb3J0X3Rlc3RjYXNlIGluIG1vcmUgcG9ydCB0ZXN0cworCisgICAgICAgIFRo
aXMgY2hhbmdlIG1vZGlmaWVzIG1vc3Qgb2YgdGhlIHBvcnQgaW1wbGVtZW50YXRpb25zIHRvIGRl
cml2ZQorICAgICAgICBmcm9tIHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlIHNvIHRoYXQgdGhl
eSBhbGwgc2hhcmUgdGhlIHNhbWUKKyAgICAgICAgdGVzdHMgKHdoaWNoIHRlc3QgdGhlIFBvcnQg
aW50ZXJmYWNlIGNvbnRyYWN0KS4gVGhpcyBjaGFuZ2UgZGlkCisgICAgICAgIG5vdCBtb2RpZnkg
dGhlIHF0IG9yIGd0ayBwb3J0cyBiZWNhdXNlIEknbSB1bnN1cmUgaWYgdGhvc2UgZXZlbgorICAg
ICAgICB3b3JrLgorICAgICAgICAKKyAgICAgICAgTm90ZSB0aGF0IHRoZXNlIHRlc3RzIGFyZSBt
b3N0bHkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdAorICAgICAgICB1bml0dGVzdHM7IHRoZXkgcG9r
ZSBhdCB0aGUgZmlsZSBzeXN0ZW0sIHN0YXJ0IGFuZCBzdG9wIHNlcnZlcnMsCisgICAgICAgIGV0
Yy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAw
NDMKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5w
eToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fbGludXhfdW5pdHRlc3QucHk6IENvcGllZCBmcm9tIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5LgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0
ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fd2luX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0X3VuaXR0ZXN0LnB5OiBDb3BpZWQgZnJvbSBXZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hY191
bml0dGVzdC5weS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3dpbl91bml0dGVzdC5weTogQ29waWVkIGZyb20gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHkuCisKKzIwMTAtMTEt
MjQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmV2aWV3
ZWQgYnkgVG9ueSBDaGFuZy4KIAogICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGZp
cnN0IHBhcnQgb2YgdGhlIG1hbmFnZXIgc2lkZSBvZiB0aGUKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQppbmRleCAzZmIw
ZDhlYzc2NzdmYzUzYmRhYWQxY2YzMTRlMzc2YTgyYmVmNGYyLi45MGNkMjAxZmM1ZDczYTVkYTFm
MzAzOTQzN2RiYzQ2ZGVlMjA2MzIzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0xMTgsNiArMTE4LDcgQEAg
Y2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICBzZWxmLl9wcmV0dHlfcGF0Y2hfcGF0aCA9IHNl
bGYucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCJCdWdzU2l0ZSIsCiAgICAgICAgICAgICAiUHJldHR5
UGF0Y2giLCAicHJldHRpZnkucmIiKQogICAgICAgICBzZWxmLl9wcmV0dHlfcGF0Y2hfYXZhaWxh
YmxlID0gVHJ1ZQorCiAgICAgICAgIHNlbGYuc2V0X29wdGlvbl9kZWZhdWx0KCdjb25maWd1cmF0
aW9uJywgTm9uZSkKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5jb25maWd1cmF0aW9uIGlzIE5v
bmU6CiAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLmNvbmZpZ3VyYXRpb24gPSBzZWxmLmRlZmF1
bHRfY29uZmlndXJhdGlvbigpCkBAIC01MjYsMTEgKzUyNywxMSBAQCBjbGFzcyBQb3J0KG9iamVj
dCk6CiAgICAgICAgICIiIlN0YXJ0IGEgd2ViIHNlcnZlciBpZiBpdCBpcyBhdmFpbGFibGUuIERv
IG5vdGhpbmcgaWYKICAgICAgICAgaXQgaXNuJ3QuIFRoaXMgcm91dGluZSBpcyBhbGxvd2VkIHRv
IChhbmQgbWF5KSBmYWlsIGlmIGEgc2VydmVyCiAgICAgICAgIGlzIGFscmVhZHkgcnVubmluZy4i
IiIKLSAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd1c2VfYXBhY2hlJyk6Ci0gICAgICAgICAg
ICBzZWxmLl9odHRwX3NlcnZlciA9IGFwYWNoZV9odHRwX3NlcnZlci5MYXlvdXRUZXN0QXBhY2hl
SHR0cGQoc2VsZiwKKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd1c2VfYXBhY2hlJykgPT0g
RmFsc2U6CisgICAgICAgICAgICBzZWxmLl9odHRwX3NlcnZlciA9IGh0dHBfc2VydmVyLkxpZ2h0
dHBkKHNlbGYsCiAgICAgICAgICAgICAgICAgc2VsZi5nZXRfb3B0aW9uKCdyZXN1bHRzX2RpcmVj
dG9yeScpKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5faHR0cF9zZXJ2ZXIgPSBo
dHRwX3NlcnZlci5MaWdodHRwZChzZWxmLAorICAgICAgICAgICAgc2VsZi5faHR0cF9zZXJ2ZXIg
PSBhcGFjaGVfaHR0cF9zZXJ2ZXIuTGF5b3V0VGVzdEFwYWNoZUh0dHBkKHNlbGYsCiAgICAgICAg
ICAgICAgICAgc2VsZi5nZXRfb3B0aW9uKCdyZXN1bHRzX2RpcmVjdG9yeScpKQogICAgICAgICBz
ZWxmLl9odHRwX3NlcnZlci5zdGFydCgpCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CmluZGV4IDI1YzE4
Y2IyMTZmNzNkNmE2M2JkYzljZDM4ZDgyNDQ5YWRiYmEwOGMuLjJiMDEwMGY5MWNhODI5ZGY1NjA5
YzQ3MGMzZTVhM2QyMWViYjMwNzcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQpAQCAtMTAxLDggKzEw
MSw2IEBAIGNsYXNzIENocm9taXVtUG9ydChiYXNlLlBvcnQpOgogICAgICAgICBpZiByZXN1bHQg
YW5kIHNlbGYuZ2V0X29wdGlvbignYnVpbGQnKToKICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYu
X2NoZWNrX2RyaXZlcl9idWlsZF91cF90b19kYXRlKAogICAgICAgICAgICAgICAgIHNlbGYuZ2V0
X29wdGlvbignY29uZmlndXJhdGlvbicpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgX2xv
Zy5lcnJvcignJykKIAogICAgICAgICBoZWxwZXJfcGF0aCA9IHNlbGYuX3BhdGhfdG9faGVscGVy
KCkKICAgICAgICAgaWYgaGVscGVyX3BhdGg6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9saW51eF91bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDhhY2MyOThjNzI2N2Q2Y2U0M2RlMGEy
Y2MyMDAyNDk0NGM5ZTQzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eF91bml0dGVzdC5weQpAQCAt
MCwwICsxLDQzIEBACisjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisj
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRp
c3RyaWJ1dGlvbi4KKyMgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2ltcG9ydCBw
b3J0X3Rlc3RjYXNlCitpbXBvcnQgY2hyb21pdW1fbGludXgKKworCitjbGFzcyBDaHJvbWl1bUxp
bnV4UG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgorICAgIGRlZiBtYWtlX3Bv
cnQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9tYWtlX3BvcnRfb25fcGxhdGZvcm1zKCgn
bGludXgyJywpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdXNlX2FwYWNoZT1UcnVlKQorCisKK2lmIF9fbmFtZV9fID09
ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hY191bml0dGVz
dC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fbWFjX3VuaXR0ZXN0LnB5CmluZGV4IGQ2M2ZhYTAwYjk2ZDc3ZjU0MTUzZDg4YmE5OWM3
MDY2M2FiZTk1ZWUuLjA1OTVmNmM2N2M1YWQ4ZGRmOTZhYzM5OTU5OGQ3ZWE2NGMxYzU5Y2QgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5CkBAIC0yNSwxNiAr
MjUsMjIgQEAKICMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
aW1wb3J0IGNocm9taXVtX21hYwogaW1wb3J0IHVuaXR0ZXN0CiAKLWZyb20gd2Via2l0cHkudGhp
cmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCitpbXBvcnQgY2hyb21pdW1fbWFjCitpbXBvcnQgcG9y
dF90ZXN0Y2FzZQogCiAKLWNsYXNzIENocm9taXVtTWFjUG9ydFRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgorY2xhc3MgQ2hyb21pdW1NYWNQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2Fz
ZSk6CisgICAgZGVmIG1ha2VfcG9ydChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX21ha2Vf
cG9ydF9vbl9wbGF0Zm9ybXMoKCdkYXJ3aW4nLCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9hcGFjaGU9VHJ1ZSkKIAog
ICAgIGRlZiB0ZXN0X2NoZWNrX3dkaWZmX2luc3RhbGwoc2VsZik6CiAgICAgICAgIHBvcnQgPSBj
aHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KCkKICAgICAgICAgIyBDdXJyZW50bHkgaXMgYWx3
YXlzIHRydWUsIGp1c3QgbG9ncyBpZiBtaXNzaW5nLgogICAgICAgICBzZWxmLmFzc2VydFRydWUo
cG9ydC5fY2hlY2tfd2RpZmZfaW5zdGFsbCgpKQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18n
OgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91
bml0dGVzdC5weQppbmRleCAzNmYzYzZiMjQyODBlYzg0MmQyZTUwOTBlNzQ0NmNlY2E2ZDUwY2U5
Li45OGNiOGRmOTk4YzZhNzI2NTYxNzA1ZGJiMjYyMjBiZGEwMGJiNmYyIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dp
bl91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVzdC5weQpAQCAtMjksMTIgKzI5LDE4IEBACiBp
bXBvcnQgb3MKIGltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVzdAotaW1wb3J0IGNocm9taXVtX3dp
bgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBvdXRwdXRjYXB0dXJlCiBmcm9t
IHdlYmtpdHB5LnRvb2wgaW1wb3J0IG1vY2t0b29sCiAKK2ltcG9ydCBjaHJvbWl1bV93aW4KK2lt
cG9ydCBwb3J0X3Rlc3RjYXNlCisKIAotY2xhc3MgQ2hyb21pdW1XaW5UZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKK2NsYXNzIENocm9taXVtV2luVGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2Fz
ZSk6CisgICAgZGVmIG1ha2VfcG9ydChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX21ha2Vf
cG9ydF9vbl9wbGF0Zm9ybXMoKCdjeWd3aW4nLCAnd2luMzInKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX2FwYWNoZT1G
YWxzZSkKIAogICAgIGNsYXNzIFJlZ2lzdGVyQ3lnd2luT3B0aW9uKG9iamVjdCk6CiAgICAgICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKQEAgLTcyLDMgKzc4LDYgQEAgY2xhc3MgQ2hyb21pdW1XaW5U
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgb3V0cHV0ID0gb3V0cHV0Y2FwdHVyZS5P
dXRwdXRDYXB0dXJlKCkKICAgICAgICAgb3V0cHV0LmFzc2VydF9vdXRwdXRzKHNlbGYsIHBvcnQu
c2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKworaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKaW5k
ZXggZDM4M2E0Y2Q4ODM3ZTU5Y2E1NGNkYWU5Nzk2MWE0YTU1YjFmNDAwNC4uZWZiN2E2MDQyNzBh
MTg3MDEwODFmOWVjNjMyNzk5NTQxYWRhZTA1NyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3Qu
cHkKQEAgLTM1LDEzICszNSw4IEBAIGltcG9ydCBwb3J0X3Rlc3RjYXNlCiAKIAogY2xhc3MgTWFj
VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6Ci0gICAgZGVmIG1ha2VfcG9ydChzZWxm
LCBvcHRpb25zPXBvcnRfdGVzdGNhc2UubW9ja19vcHRpb25zKToKLSAgICAgICAgaWYgc3lzLnBs
YXRmb3JtICE9ICdkYXJ3aW4nOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcG9y
dF9vYmogPSBtYWMuTWFjUG9ydChvcHRpb25zPW9wdGlvbnMpCi0gICAgICAgIHBvcnRfb2JqLl9v
cHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5ID0gcG9ydF9vYmoucmVzdWx0c19kaXJlY3RvcnkoKQot
ICAgICAgICBwb3J0X29iai5fb3B0aW9ucy5jb25maWd1cmF0aW9uID0gJ1JlbGVhc2UnCi0gICAg
ICAgIHJldHVybiBwb3J0X29iagorICAgIGRlZiBtYWtlX3BvcnQoc2VsZik6CisgICAgICAgIHJl
dHVybiAgc2VsZi5fbWFrZV9wb3J0X29uX3BsYXRmb3JtcygoJ2RhcndpbicsKSwgbWFjLk1hY1Bv
cnQpCiAKICAgICBkZWYgdGVzdF9za2lwcGVkX2ZpbGVfcGF0aHMoc2VsZik6CiAgICAgICAgIHBv
cnQgPSBzZWxmLm1ha2VfcG9ydCgpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkKaW5kZXgg
MDRhZGE1MDAwZTNiMzUzODJjM2M5NjA5MjJlMjhjNTUzYzNmNDA0ZS4uMzBhZWJmMDkzNDYyNDI3
OWYwZjU1MzQ2ZWUwMjE3NGUwZWJlYTM4NCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5w
eQpAQCAtMjYsMjQgKzI2LDM3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0i
IiJVbml0IHRlc3RpbmcgYmFzZSBjbGFzcyBmb3IgUG9ydCBpbXBsZW1lbnRhdGlvbnMuIiIiCisi
IiJUZXN0aW5nIGJhc2UgY2xhc3MgZm9yIFBvcnQgaW1wbGVtZW50YXRpb25zLiIiIgogCiBpbXBv
cnQgb3MKK2ltcG9ydCBzeXMKIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHVuaXR0ZXN0CiAKIGZy
b20gd2Via2l0cHkudG9vbCBpbXBvcnQgbW9ja3Rvb2wKLW1vY2tfb3B0aW9ucyA9IG1vY2t0b29s
Lk1vY2tPcHRpb25zKHJlc3VsdHNfZGlyZWN0b3J5PSdsYXlvdXQtdGVzdC1yZXN1bHRzJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9hcGFjaGU9VHJ1ZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKQot
CiAKIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgIiIiVGVzdHMg
dGhlIFdlYktpdCBwb3J0IGltcGxlbWVudGF0aW9uLiIiIgotICAgIGRlZiBtYWtlX3BvcnQoc2Vs
Ziwgb3B0aW9ucz1tb2NrX29wdGlvbnMpOgorICAgIGRlZiBtYWtlX3BvcnQoc2VsZik6CiAgICAg
ICAgICIiIk92ZXJyaWRlIGluIHN1YmNsYXNzLiIiIgogICAgICAgICByYWlzZSBOb3RJbXBsZW1l
bnRlZEVycm9yKCkKIAorICAgIGRlZiBfbWFrZV9wb3J0X29uX3BsYXRmb3JtcyhzZWxmLCBwbGF0
Zm9ybXMsIGtsYXNzLCAqKmt3YXJncyk6CisgICAgICAgIGlmIHBsYXRmb3JtcyBhbmQgc3lzLnBs
YXRmb3JtIG5vdCBpbiBwbGF0Zm9ybXM6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAg
ICAgICMgRklYTUU6IFBvcnQuX19pbml0X18gc2hvdWxkIGhhbmRsZSBzZXR0aW5nIHJlc3VsdHNf
ZGlyZWN0b3J5LAorICAgICAgICAjIG5vdCB0aGlzIHJvdXRpbmUuCisgICAgICAgIGlmICdyZXN1
bHRzX2RpcmVjdG9yeScgbm90IGluIGt3YXJnczoKKyAgICAgICAgICAgIGt3YXJnc1sncmVzdWx0
c19kaXJlY3RvcnknXSA9ICdsYXlvdXQtdGVzdC1yZXN1bHRzJworICAgICAgICBtb2NrX29wdGlv
bnMgPSBtb2NrdG9vbC5Nb2NrT3B0aW9ucygqKmt3YXJncykKKworICAgICAgICBwb3J0X29iaiA9
IGtsYXNzKG9wdGlvbnM9bW9ja19vcHRpb25zKQorICAgICAgICBpZiBub3QgcG9ydF9vYmouY2hl
Y2tfYnVpbGQoVHJ1ZSkgb3Igbm90IHBvcnRfb2JqLmNoZWNrX3N5c19kZXBzKFRydWUpOgorICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcG9ydF9vYmouX29wdGlvbnMucmVzdWx0c19k
aXJlY3RvcnkgPSBwb3J0X29iai5yZXN1bHRzX2RpcmVjdG9yeSgpCisgICAgICAgIHJldHVybiBw
b3J0X29iagorCiAgICAgZGVmIHRlc3RfaHR0cF9zZXJ2ZXIoc2VsZik6CiAgICAgICAgIHBvcnQg
PSBzZWxmLm1ha2VfcG9ydCgpCiAgICAgICAgIGlmIG5vdCBwb3J0OgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CmluZGV4
IGRkOGY2MThhOGVhOWVjZGQyZjYxNTE0YWUwYzAzYTE2YzFhNjZjNTIuLmUyMTk5NDFlYmM2Yzcw
Njg3YmJkMWQwMTdhNmVjNTMyOGRmNTc1MjQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKQEAgLTEzOCw2ICsxMzgs
OSBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgIGRlZiBjaGVja19idWlsZChzZWxm
LCBuZWVkc19odHRwKToKICAgICAgICAgcmV0dXJuIFRydWUKIAorICAgIGRlZiBjaGVja19pbWFn
ZV9kaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCiAgICAgZGVmIGRpZmZfaW1hZ2Uo
c2VsZiwgZXhwZWN0ZWRfY29udGVudHMsIGFjdHVhbF9jb250ZW50cywKICAgICAgICAgICAgICAg
ICAgICBkaWZmX2ZpbGVuYW1lPU5vbmUpOgogICAgICAgICBkaWZmZWQgPSBhY3R1YWxfY29udGVu
dHMgIT0gZXhwZWN0ZWRfY29udGVudHMKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdF91bml0dGVzdC5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdF91bml0dGVzdC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zMDg2YmVjN2QwM2VjNTAwYTAyNjM2ZmM4OWFmYTZhNmVlNzUyYWE3Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC90ZXN0X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNDkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQgdW5pdHRlc3QKKworaW1wb3J0IHRlc3QKK2ltcG9ydCBwb3J0X3Rlc3RjYXNlCisKKworY2xh
c3MgVGVzdFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgorICAgIGRlZiBtYWtlX3Bv
cnQoc2VsZik6CisgICAgICAgIHJldHVybiAgc2VsZi5fbWFrZV9wb3J0X29uX3BsYXRmb3JtcyhO
b25lLCB0ZXN0LlRlc3RQb3J0KQorCisgICAgZGVmIHRlc3RfaW1hZ2VfZGlmZihzZWxmKToKKyAg
ICAgICAgIyBXZSBvdmVycmlkZSB0aGlzIHRlc3QgYmVjYXVzZSBpdCBkZXBlbmRzIG9uIHRoZSBm
aWxlcyBpbiB0aGUgdHJlZSwKKyAgICAgICAgIyB3aGljaCB0aGUgVGVzdCBmaWxlc3lzdGVtIGRv
ZXNuJ3QgdXNlLgorICAgICAgICAjCisgICAgICAgICMgT2YgY291cnNlLCB3ZSBkb24ndCBkbyBy
ZWFsIGltYWdlIGRpZmZzIGluIHRoZSBUZXN0IHBvcnQgYW55d2F5LCBzbworICAgICAgICAjIHdl
J3JlIG5vdCBtaXNzaW5nIG11Y2guCisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0LmNoZWNrX2ltYWdlX2RpZmYoKSkKKworaWYgX19u
YW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luX3VuaXR0ZXN0
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW5f
dW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIwYmNkODZhNDNmMGY0NDFlNzQ4MDdkNWU5YWJhZjAz
NDk2ZjE2ZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvd2luX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNDEgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCitpbXBvcnQgdW5pdHRlc3QKKworaW1wb3J0IHBvcnRfdGVzdGNhc2UKK2ltcG9y
dCB3aW4KKworCitjbGFzcyBXaW5UZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKKyAg
ICBkZWYgbWFrZV9wb3J0KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fbWFrZV9wb3J0X29u
X3BsYXRmb3JtcygoJ2N5Z3dpbicsKSwgd2luLldpblBvcnQpCisKKworaWYgX19uYW1lX18gPT0g
J19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74804</attachid>
            <date>2010-11-24 15:59:32 -0800</date>
            <delta_ts>2011-04-11 13:22:11 -0700</delta_ts>
            <desc>rename TestTest to TestPortTest</desc>
            <filename>bug-50043-20101124155931.patch</filename>
            <type>text/plain</type>
            <size>17422</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3YTg5ZjMzYzk5MDY3ZDJmZmQ4MWZjNDhlMjU5ODg2NjAxYmIzYWQwLi41MDU4OTY5
ODQ4ZThiZThiMTcwYTA1YjQyZjgyMTllNTRiYzY2N2QzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzQgQEAK
IDIwMTAtMTEtMjQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQt
dGVzdHM6IHVzZSBwb3J0X3Rlc3RjYXNlIGluIG1vcmUgcG9ydCB0ZXN0cworCisgICAgICAgIFRo
aXMgY2hhbmdlIG1vZGlmaWVzIG1vc3Qgb2YgdGhlIHBvcnQgaW1wbGVtZW50YXRpb25zIHRvIGRl
cml2ZQorICAgICAgICBmcm9tIHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlIHNvIHRoYXQgdGhl
eSBhbGwgc2hhcmUgdGhlIHNhbWUKKyAgICAgICAgdGVzdHMgKHdoaWNoIHRlc3QgdGhlIFBvcnQg
aW50ZXJmYWNlIGNvbnRyYWN0KS4gVGhpcyBjaGFuZ2UgZGlkCisgICAgICAgIG5vdCBtb2RpZnkg
dGhlIHF0IG9yIGd0ayBwb3J0cyBiZWNhdXNlIEknbSB1bnN1cmUgaWYgdGhvc2UgZXZlbgorICAg
ICAgICB3b3JrLgorICAgICAgICAKKyAgICAgICAgTm90ZSB0aGF0IHRoZXNlIHRlc3RzIGFyZSBt
b3N0bHkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdAorICAgICAgICB1bml0dGVzdHM7IHRoZXkgcG9r
ZSBhdCB0aGUgZmlsZSBzeXN0ZW0sIHN0YXJ0IGFuZCBzdG9wIHNlcnZlcnMsCisgICAgICAgIGV0
Yy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAw
NDMKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5w
eToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fbGludXhfdW5pdHRlc3QucHk6IENvcGllZCBmcm9tIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5LgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0
ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fd2luX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0X3VuaXR0ZXN0LnB5OiBDb3BpZWQgZnJvbSBXZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hY191
bml0dGVzdC5weS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3dpbl91bml0dGVzdC5weTogQ29waWVkIGZyb20gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHkuCisKKzIwMTAtMTEt
MjQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmV2aWV3
ZWQgYnkgVG9ueSBDaGFuZy4KIAogICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGZp
cnN0IHBhcnQgb2YgdGhlIG1hbmFnZXIgc2lkZSBvZiB0aGUKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQppbmRleCAzZmIw
ZDhlYzc2NzdmYzUzYmRhYWQxY2YzMTRlMzc2YTgyYmVmNGYyLi45MGNkMjAxZmM1ZDczYTVkYTFm
MzAzOTQzN2RiYzQ2ZGVlMjA2MzIzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0xMTgsNiArMTE4LDcgQEAg
Y2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICBzZWxmLl9wcmV0dHlfcGF0Y2hfcGF0aCA9IHNl
bGYucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCJCdWdzU2l0ZSIsCiAgICAgICAgICAgICAiUHJldHR5
UGF0Y2giLCAicHJldHRpZnkucmIiKQogICAgICAgICBzZWxmLl9wcmV0dHlfcGF0Y2hfYXZhaWxh
YmxlID0gVHJ1ZQorCiAgICAgICAgIHNlbGYuc2V0X29wdGlvbl9kZWZhdWx0KCdjb25maWd1cmF0
aW9uJywgTm9uZSkKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5jb25maWd1cmF0aW9uIGlzIE5v
bmU6CiAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLmNvbmZpZ3VyYXRpb24gPSBzZWxmLmRlZmF1
bHRfY29uZmlndXJhdGlvbigpCkBAIC01MjYsMTEgKzUyNywxMSBAQCBjbGFzcyBQb3J0KG9iamVj
dCk6CiAgICAgICAgICIiIlN0YXJ0IGEgd2ViIHNlcnZlciBpZiBpdCBpcyBhdmFpbGFibGUuIERv
IG5vdGhpbmcgaWYKICAgICAgICAgaXQgaXNuJ3QuIFRoaXMgcm91dGluZSBpcyBhbGxvd2VkIHRv
IChhbmQgbWF5KSBmYWlsIGlmIGEgc2VydmVyCiAgICAgICAgIGlzIGFscmVhZHkgcnVubmluZy4i
IiIKLSAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd1c2VfYXBhY2hlJyk6Ci0gICAgICAgICAg
ICBzZWxmLl9odHRwX3NlcnZlciA9IGFwYWNoZV9odHRwX3NlcnZlci5MYXlvdXRUZXN0QXBhY2hl
SHR0cGQoc2VsZiwKKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd1c2VfYXBhY2hlJykgPT0g
RmFsc2U6CisgICAgICAgICAgICBzZWxmLl9odHRwX3NlcnZlciA9IGh0dHBfc2VydmVyLkxpZ2h0
dHBkKHNlbGYsCiAgICAgICAgICAgICAgICAgc2VsZi5nZXRfb3B0aW9uKCdyZXN1bHRzX2RpcmVj
dG9yeScpKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5faHR0cF9zZXJ2ZXIgPSBo
dHRwX3NlcnZlci5MaWdodHRwZChzZWxmLAorICAgICAgICAgICAgc2VsZi5faHR0cF9zZXJ2ZXIg
PSBhcGFjaGVfaHR0cF9zZXJ2ZXIuTGF5b3V0VGVzdEFwYWNoZUh0dHBkKHNlbGYsCiAgICAgICAg
ICAgICAgICAgc2VsZi5nZXRfb3B0aW9uKCdyZXN1bHRzX2RpcmVjdG9yeScpKQogICAgICAgICBz
ZWxmLl9odHRwX3NlcnZlci5zdGFydCgpCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CmluZGV4IDI1YzE4
Y2IyMTZmNzNkNmE2M2JkYzljZDM4ZDgyNDQ5YWRiYmEwOGMuLjJiMDEwMGY5MWNhODI5ZGY1NjA5
YzQ3MGMzZTVhM2QyMWViYjMwNzcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQpAQCAtMTAxLDggKzEw
MSw2IEBAIGNsYXNzIENocm9taXVtUG9ydChiYXNlLlBvcnQpOgogICAgICAgICBpZiByZXN1bHQg
YW5kIHNlbGYuZ2V0X29wdGlvbignYnVpbGQnKToKICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYu
X2NoZWNrX2RyaXZlcl9idWlsZF91cF90b19kYXRlKAogICAgICAgICAgICAgICAgIHNlbGYuZ2V0
X29wdGlvbignY29uZmlndXJhdGlvbicpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgX2xv
Zy5lcnJvcignJykKIAogICAgICAgICBoZWxwZXJfcGF0aCA9IHNlbGYuX3BhdGhfdG9faGVscGVy
KCkKICAgICAgICAgaWYgaGVscGVyX3BhdGg6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9saW51eF91bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDhhY2MyOThjNzI2N2Q2Y2U0M2RlMGEy
Y2MyMDAyNDk0NGM5ZTQzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eF91bml0dGVzdC5weQpAQCAt
MCwwICsxLDQzIEBACisjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisj
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRp
c3RyaWJ1dGlvbi4KKyMgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2ltcG9ydCBw
b3J0X3Rlc3RjYXNlCitpbXBvcnQgY2hyb21pdW1fbGludXgKKworCitjbGFzcyBDaHJvbWl1bUxp
bnV4UG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgorICAgIGRlZiBtYWtlX3Bv
cnQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9tYWtlX3BvcnRfb25fcGxhdGZvcm1zKCgn
bGludXgyJywpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdXNlX2FwYWNoZT1UcnVlKQorCisKK2lmIF9fbmFtZV9fID09
ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hY191bml0dGVz
dC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fbWFjX3VuaXR0ZXN0LnB5CmluZGV4IGQ2M2ZhYTAwYjk2ZDc3ZjU0MTUzZDg4YmE5OWM3
MDY2M2FiZTk1ZWUuLjA1OTVmNmM2N2M1YWQ4ZGRmOTZhYzM5OTU5OGQ3ZWE2NGMxYzU5Y2QgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5CkBAIC0yNSwxNiAr
MjUsMjIgQEAKICMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
aW1wb3J0IGNocm9taXVtX21hYwogaW1wb3J0IHVuaXR0ZXN0CiAKLWZyb20gd2Via2l0cHkudGhp
cmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCitpbXBvcnQgY2hyb21pdW1fbWFjCitpbXBvcnQgcG9y
dF90ZXN0Y2FzZQogCiAKLWNsYXNzIENocm9taXVtTWFjUG9ydFRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgorY2xhc3MgQ2hyb21pdW1NYWNQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2Fz
ZSk6CisgICAgZGVmIG1ha2VfcG9ydChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX21ha2Vf
cG9ydF9vbl9wbGF0Zm9ybXMoKCdkYXJ3aW4nLCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9hcGFjaGU9VHJ1ZSkKIAog
ICAgIGRlZiB0ZXN0X2NoZWNrX3dkaWZmX2luc3RhbGwoc2VsZik6CiAgICAgICAgIHBvcnQgPSBj
aHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KCkKICAgICAgICAgIyBDdXJyZW50bHkgaXMgYWx3
YXlzIHRydWUsIGp1c3QgbG9ncyBpZiBtaXNzaW5nLgogICAgICAgICBzZWxmLmFzc2VydFRydWUo
cG9ydC5fY2hlY2tfd2RpZmZfaW5zdGFsbCgpKQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18n
OgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91
bml0dGVzdC5weQppbmRleCAzNmYzYzZiMjQyODBlYzg0MmQyZTUwOTBlNzQ0NmNlY2E2ZDUwY2U5
Li45OGNiOGRmOTk4YzZhNzI2NTYxNzA1ZGJiMjYyMjBiZGEwMGJiNmYyIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dp
bl91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVzdC5weQpAQCAtMjksMTIgKzI5LDE4IEBACiBp
bXBvcnQgb3MKIGltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVzdAotaW1wb3J0IGNocm9taXVtX3dp
bgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBvdXRwdXRjYXB0dXJlCiBmcm9t
IHdlYmtpdHB5LnRvb2wgaW1wb3J0IG1vY2t0b29sCiAKK2ltcG9ydCBjaHJvbWl1bV93aW4KK2lt
cG9ydCBwb3J0X3Rlc3RjYXNlCisKIAotY2xhc3MgQ2hyb21pdW1XaW5UZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKK2NsYXNzIENocm9taXVtV2luVGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2Fz
ZSk6CisgICAgZGVmIG1ha2VfcG9ydChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX21ha2Vf
cG9ydF9vbl9wbGF0Zm9ybXMoKCdjeWd3aW4nLCAnd2luMzInKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX2FwYWNoZT1G
YWxzZSkKIAogICAgIGNsYXNzIFJlZ2lzdGVyQ3lnd2luT3B0aW9uKG9iamVjdCk6CiAgICAgICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKQEAgLTcyLDMgKzc4LDYgQEAgY2xhc3MgQ2hyb21pdW1XaW5U
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgb3V0cHV0ID0gb3V0cHV0Y2FwdHVyZS5P
dXRwdXRDYXB0dXJlKCkKICAgICAgICAgb3V0cHV0LmFzc2VydF9vdXRwdXRzKHNlbGYsIHBvcnQu
c2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKworaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKaW5k
ZXggZDM4M2E0Y2Q4ODM3ZTU5Y2E1NGNkYWU5Nzk2MWE0YTU1YjFmNDAwNC4uZWZiN2E2MDQyNzBh
MTg3MDEwODFmOWVjNjMyNzk5NTQxYWRhZTA1NyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3Qu
cHkKQEAgLTM1LDEzICszNSw4IEBAIGltcG9ydCBwb3J0X3Rlc3RjYXNlCiAKIAogY2xhc3MgTWFj
VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6Ci0gICAgZGVmIG1ha2VfcG9ydChzZWxm
LCBvcHRpb25zPXBvcnRfdGVzdGNhc2UubW9ja19vcHRpb25zKToKLSAgICAgICAgaWYgc3lzLnBs
YXRmb3JtICE9ICdkYXJ3aW4nOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcG9y
dF9vYmogPSBtYWMuTWFjUG9ydChvcHRpb25zPW9wdGlvbnMpCi0gICAgICAgIHBvcnRfb2JqLl9v
cHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5ID0gcG9ydF9vYmoucmVzdWx0c19kaXJlY3RvcnkoKQot
ICAgICAgICBwb3J0X29iai5fb3B0aW9ucy5jb25maWd1cmF0aW9uID0gJ1JlbGVhc2UnCi0gICAg
ICAgIHJldHVybiBwb3J0X29iagorICAgIGRlZiBtYWtlX3BvcnQoc2VsZik6CisgICAgICAgIHJl
dHVybiAgc2VsZi5fbWFrZV9wb3J0X29uX3BsYXRmb3JtcygoJ2RhcndpbicsKSwgbWFjLk1hY1Bv
cnQpCiAKICAgICBkZWYgdGVzdF9za2lwcGVkX2ZpbGVfcGF0aHMoc2VsZik6CiAgICAgICAgIHBv
cnQgPSBzZWxmLm1ha2VfcG9ydCgpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkKaW5kZXgg
MDRhZGE1MDAwZTNiMzUzODJjM2M5NjA5MjJlMjhjNTUzYzNmNDA0ZS4uMzBhZWJmMDkzNDYyNDI3
OWYwZjU1MzQ2ZWUwMjE3NGUwZWJlYTM4NCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5w
eQpAQCAtMjYsMjQgKzI2LDM3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0i
IiJVbml0IHRlc3RpbmcgYmFzZSBjbGFzcyBmb3IgUG9ydCBpbXBsZW1lbnRhdGlvbnMuIiIiCisi
IiJUZXN0aW5nIGJhc2UgY2xhc3MgZm9yIFBvcnQgaW1wbGVtZW50YXRpb25zLiIiIgogCiBpbXBv
cnQgb3MKK2ltcG9ydCBzeXMKIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHVuaXR0ZXN0CiAKIGZy
b20gd2Via2l0cHkudG9vbCBpbXBvcnQgbW9ja3Rvb2wKLW1vY2tfb3B0aW9ucyA9IG1vY2t0b29s
Lk1vY2tPcHRpb25zKHJlc3VsdHNfZGlyZWN0b3J5PSdsYXlvdXQtdGVzdC1yZXN1bHRzJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9hcGFjaGU9VHJ1ZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKQot
CiAKIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgIiIiVGVzdHMg
dGhlIFdlYktpdCBwb3J0IGltcGxlbWVudGF0aW9uLiIiIgotICAgIGRlZiBtYWtlX3BvcnQoc2Vs
Ziwgb3B0aW9ucz1tb2NrX29wdGlvbnMpOgorICAgIGRlZiBtYWtlX3BvcnQoc2VsZik6CiAgICAg
ICAgICIiIk92ZXJyaWRlIGluIHN1YmNsYXNzLiIiIgogICAgICAgICByYWlzZSBOb3RJbXBsZW1l
bnRlZEVycm9yKCkKIAorICAgIGRlZiBfbWFrZV9wb3J0X29uX3BsYXRmb3JtcyhzZWxmLCBwbGF0
Zm9ybXMsIGtsYXNzLCAqKmt3YXJncyk6CisgICAgICAgIGlmIHBsYXRmb3JtcyBhbmQgc3lzLnBs
YXRmb3JtIG5vdCBpbiBwbGF0Zm9ybXM6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAg
ICAgICMgRklYTUU6IFBvcnQuX19pbml0X18gc2hvdWxkIGhhbmRsZSBzZXR0aW5nIHJlc3VsdHNf
ZGlyZWN0b3J5LAorICAgICAgICAjIG5vdCB0aGlzIHJvdXRpbmUuCisgICAgICAgIGlmICdyZXN1
bHRzX2RpcmVjdG9yeScgbm90IGluIGt3YXJnczoKKyAgICAgICAgICAgIGt3YXJnc1sncmVzdWx0
c19kaXJlY3RvcnknXSA9ICdsYXlvdXQtdGVzdC1yZXN1bHRzJworICAgICAgICBtb2NrX29wdGlv
bnMgPSBtb2NrdG9vbC5Nb2NrT3B0aW9ucygqKmt3YXJncykKKworICAgICAgICBwb3J0X29iaiA9
IGtsYXNzKG9wdGlvbnM9bW9ja19vcHRpb25zKQorICAgICAgICBpZiBub3QgcG9ydF9vYmouY2hl
Y2tfYnVpbGQoVHJ1ZSkgb3Igbm90IHBvcnRfb2JqLmNoZWNrX3N5c19kZXBzKFRydWUpOgorICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcG9ydF9vYmouX29wdGlvbnMucmVzdWx0c19k
aXJlY3RvcnkgPSBwb3J0X29iai5yZXN1bHRzX2RpcmVjdG9yeSgpCisgICAgICAgIHJldHVybiBw
b3J0X29iagorCiAgICAgZGVmIHRlc3RfaHR0cF9zZXJ2ZXIoc2VsZik6CiAgICAgICAgIHBvcnQg
PSBzZWxmLm1ha2VfcG9ydCgpCiAgICAgICAgIGlmIG5vdCBwb3J0OgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CmluZGV4
IGRkOGY2MThhOGVhOWVjZGQyZjYxNTE0YWUwYzAzYTE2YzFhNjZjNTIuLmUyMTk5NDFlYmM2Yzcw
Njg3YmJkMWQwMTdhNmVjNTMyOGRmNTc1MjQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKQEAgLTEzOCw2ICsxMzgs
OSBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgIGRlZiBjaGVja19idWlsZChzZWxm
LCBuZWVkc19odHRwKToKICAgICAgICAgcmV0dXJuIFRydWUKIAorICAgIGRlZiBjaGVja19pbWFn
ZV9kaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCiAgICAgZGVmIGRpZmZfaW1hZ2Uo
c2VsZiwgZXhwZWN0ZWRfY29udGVudHMsIGFjdHVhbF9jb250ZW50cywKICAgICAgICAgICAgICAg
ICAgICBkaWZmX2ZpbGVuYW1lPU5vbmUpOgogICAgICAgICBkaWZmZWQgPSBhY3R1YWxfY29udGVu
dHMgIT0gZXhwZWN0ZWRfY29udGVudHMKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdF91bml0dGVzdC5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdF91bml0dGVzdC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44ZjM1NmVjYTY0YjUzYmM4OWU5M2NiOTg4ZWQxMmUwYWNmMGU5NDU2Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC90ZXN0X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNDkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQgdW5pdHRlc3QKKworaW1wb3J0IHRlc3QKK2ltcG9ydCBwb3J0X3Rlc3RjYXNlCisKKworY2xh
c3MgVGVzdFBvcnRUZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKKyAgICBkZWYgbWFr
ZV9wb3J0KHNlbGYpOgorICAgICAgICByZXR1cm4gIHNlbGYuX21ha2VfcG9ydF9vbl9wbGF0Zm9y
bXMoTm9uZSwgdGVzdC5UZXN0UG9ydCkKKworICAgIGRlZiB0ZXN0X2ltYWdlX2RpZmYoc2VsZik6
CisgICAgICAgICMgV2Ugb3ZlcnJpZGUgdGhpcyB0ZXN0IGJlY2F1c2UgaXQgZGVwZW5kcyBvbiB0
aGUgZmlsZXMgaW4gdGhlIHRyZWUsCisgICAgICAgICMgd2hpY2ggdGhlIFRlc3QgZmlsZXN5c3Rl
bSBkb2Vzbid0IHVzZS4KKyAgICAgICAgIworICAgICAgICAjIE9mIGNvdXJzZSwgd2UgZG9uJ3Qg
ZG8gcmVhbCBpbWFnZSBkaWZmcyBpbiB0aGUgVGVzdCBwb3J0IGFueXdheSwgc28KKyAgICAgICAg
IyB3ZSdyZSBub3QgbWlzc2luZyBtdWNoLgorICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQo
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5jaGVja19pbWFnZV9kaWZmKCkpCisKK2lm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0
dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
d2luX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiMGJjZDg2YTQzZjBmNDQxZTc0ODA3ZDVlOWFi
YWYwMzQ5NmYxNmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0dGVzdC5weQpAQCAtMCwwICsxLDQxIEBACisj
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2ltcG9ydCBwb3J0X3Rlc3RjYXNlCitp
bXBvcnQgd2luCisKKworY2xhc3MgV2luVGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6
CisgICAgZGVmIG1ha2VfcG9ydChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX21ha2VfcG9y
dF9vbl9wbGF0Zm9ybXMoKCdjeWd3aW4nLCksIHdpbi5XaW5Qb3J0KQorCisKK2lmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>