<?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>54248</bug_id>
          
          <creation_ts>2011-02-10 14:51:21 -0800</creation_ts>
          <short_desc>new-run-webkit-tests: clean up version handling for the --platform argument</short_desc>
          <delta_ts>2011-02-14 16:03:18 -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>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>
          
          <blocked>54127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>koz</cc>
    
    <cc>mihaip</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>349404</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-10 14:51:21 -0800</bug_when>
    <thetext>new-run-webkit-tests: clean up version handling for the --platform argument</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349494</commentid>
    <comment_count>1</comment_count>
      <attachid>82069</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-10 16:30:36 -0800</bug_when>
    <thetext>Created attachment 82069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349502</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-10 16:41:28 -0800</bug_when>
    <thetext>In the course of testing all of the GPU expectation merges last week (and earlier when writing rebaselining unit tests), I realized that the way we&apos;re currently running with --platform arguments and checking system versions for baselines is almost completely busted. Namely, &apos;--platform chromium-win&apos; would tell part of the code to run as if there were no version-specific baselines, and the other part of the code *would* react correctly. This caused things to get out of sync, with the result that I don&apos;t think any of our version-specific baselines actually would&apos;ve worked right on the bots.

Fortunately (?) we never look at any versions other than the main ones :(

This patch cleans all of that mess up. It should make more for consistent and predictable behavior. However, It probably merits a good staring at by all the cc&apos;ed parties to make sure it&apos;s clear what I&apos;m doing and how things should work going forward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349748</commentid>
    <comment_count>3</comment_count>
      <attachid>82069</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-11 06:45:26 -0800</bug_when>
    <thetext>Comment on attachment 82069
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_win.py:52
&gt; +    version_strings = {
&gt; +        (6, 1): &apos;-7&apos;,
&gt; +        (6, 0): &apos;-vista&apos;,
&gt; +        (5, 1): &apos;-xp&apos;,
&gt; +        (5, 0): &apos;-xp&apos;,

5.0 is Windows 2000, so &quot;-xp&quot; seems strange. Do you need to include 5.2 (XP64, Server 2003) in here, too?

&gt; Tools/Scripts/webkitpy/layout_tests/port/mac.py:42
&gt; +def os_version(os_version_string=None, supported_versions=None):
&gt; +    # FIXME: It&apos;s strange that this string is -version, not just version.

Maybe the calling code should be prepending &quot;-&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349853</commentid>
    <comment_count>4</comment_count>
      <attachid>82069</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2011-02-11 11:08:47 -0800</bug_when>
    <thetext>Comment on attachment 82069
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:57
&gt; +            self._version = port_name[port_name.index(&apos;-mac&apos;) + 4:]

Should this assert that the resulting version is in SUPPORTED_OS_VERSIONS?

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:61
&gt; +        fallback_paths = {

Can this be moved to be a class-level attribute like SUPPORTED_OS_VERSIONS?

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:-91
&gt; -        # FIXME: It&apos;s strange that this string is -version, not just version.

I agree with Adam, if we&apos;re cleaning this up anyway, can we switch the convention for version to drop the leading dash?

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_win.py:52
&gt;&gt; +        (5, 0): &apos;-xp&apos;,
&gt; 
&gt; 5.0 is Windows 2000, so &quot;-xp&quot; seems strange. Do you need to include 5.2 (XP64, Server 2003) in here, too?

Agreed. We don&apos;t have any Win2K bots, so that version should be an error, the same way that Tiger is for chromium-mac.

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_win.py:69
&gt; +            self._version = port_name[port_name.index(&apos;-win&apos;) + 4:]

Ditto about asserting here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350220</commentid>
    <comment_count>5</comment_count>
      <attachid>82227</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-11 20:04:04 -0800</bug_when>
    <thetext>Created attachment 82227
update w/ feedback from aroben, mihaip - remove the leading dash from port.version()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350221</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-11 20:09:30 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 82069 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82069&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_win.py:52
&gt; &gt; +    version_strings = {
&gt; &gt; +        (6, 1): &apos;-7&apos;,
&gt; &gt; +        (6, 0): &apos;-vista&apos;,
&gt; &gt; +        (5, 1): &apos;-xp&apos;,
&gt; &gt; +        (5, 0): &apos;-xp&apos;,
&gt; 
&gt; 5.0 is Windows 2000, so &quot;-xp&quot; seems strange. Do you need to include 5.2 (XP64, Server 2003) in here, too?
&gt; 

Chromium has never directly supported 5.2, so unless you want to special-case it, no.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/mac.py:42
&gt; &gt; +def os_version(os_version_string=None, supported_versions=None):
&gt; &gt; +    # FIXME: It&apos;s strange that this string is -version, not just version.
&gt; 
&gt; Maybe the calling code should be prepending &quot;-&quot;?

Fixed.


(In reply to comment #4)
&gt; (From update of attachment 82069 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82069&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:57
&gt; &gt; +            self._version = port_name[port_name.index(&apos;-mac&apos;) + 4:]
&gt; 
&gt; Should this assert that the resulting version is in SUPPORTED_OS_VERSIONS?
&gt;

Done.
 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py:61
&gt; &gt; +        fallback_paths = {
&gt; 
&gt; Can this be moved to be a class-level attribute like SUPPORTED_OS_VERSIONS?
&gt; 

Done.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_win.py:69
&gt; &gt; +            self._version = port_name[port_name.index(&apos;-win&apos;) + 4:]
&gt; 
&gt; Ditto about asserting here.

Done.

Also, I should note that there is a somewhat unfortunate side effect of this change that, in order to make things be consistent with port.version() and the version modifiers in the test_expectations file, I&apos;ve renamed the chromium win 7 port from &quot;chromium-win-7&quot; to &quot;chromium-win-win7&quot;. People don&apos;t specify the full version by hand that often, so I don&apos;t think this&apos;ll be a big deal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350767</commentid>
    <comment_count>7</comment_count>
      <attachid>82227</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2011-02-14 10:54:35 -0800</bug_when>
    <thetext>Comment on attachment 82227
update w/ feedback from aroben, mihaip - remove the leading dash from port.version()

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

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/test_expectations.py:495
&gt;                      # TODO(victorw): Remove WIN-VISTA and WIN-7 once we have

Update this comment to reference WIN-WIN7?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350953</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-14 16:03:18 -0800</bug_when>
    <thetext>Committed r78522: &lt;http://trac.webkit.org/changeset/78522&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82069</attachid>
            <date>2011-02-10 16:30:36 -0800</date>
            <delta_ts>2011-02-11 20:04:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54248-20110210163035.patch</filename>
            <type>text/plain</type>
            <size>34340</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgxNTkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyNTYxNjE1Y2VjN2Y5NmZjNDI1MThkYTg0NTY5ZWJiZjg3
MDRhNTVmLi44ZGQwNzFlNWYzMzEyNjUyOWMwZWVkNThmYTE2NjE2ZWNkZTEwM2Q4IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMg
QEAKKzIwMTEtMDItMTAgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4gdXAgdGhl
IHdheSB3ZSBoYW5kbGUgcGxhdGZvcm0gbmFtZXMgaW4KKyAgICAgICAgbmV3LXJ1bi13ZWJraXQt
dGVzdHMuIFByZXZpb3VzbHksIGlmIHlvdSBzcGVjaWZpZWQKKyAgICAgICAgJy0tcGxhdGZvcm0g
bWFjJyBvciAnLS1wbGF0Zm9ybSBjaHJvbWl1bS1tYWMnIG9uIHRoZSBjb21tYW5kCisgICAgICAg
IGxpbmUsIGl0IHdvdWxkIHVzZSB0aGF0IHBsYXRmb3JtIG5hbWUgdG8gZGV0ZXJtaW5lIGJhc2Vs
aW5lIHNlYXJjaAorICAgICAgICBwYXRocywgZXRjLiBUaGlzIGlzIGFsbW9zdCBuZXZlciB0aGUg
cmlnaHQgdGhpbmcgdG8gZG8sIGJlY2F1c2UKKyAgICAgICAgaXQgaWdub3JlcyB0aGUgZXhpc3Rl
bmNlIG9mIHZlcnNpb24tc3BlY2lmaWMgYmFzZWxpbmVzLgorICAgICAgICAKKyAgICAgICAgU28s
IEkgY2hhbmdlZCB0aGlzIHNvIHRoYXQgcG9ydHMgdGhhdCBzdXBwb3J0IHZlcnNpb25zIG11c3QK
KyAgICAgICAgYWx3YXlzIHVzZSBhIHZlcnNpb24sIGFuZCB0aGUgdmVyc2lvbiBzaG91bGQgZGVm
YXVsdCB0byB0aGUKKyAgICAgICAgdmVyc2lvbiBvZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSB0aGF0
IHRoZSBwb3J0IGlzIGJlaW5nIHJ1biBvbgorICAgICAgICAoZS5nLiwgaWYgeW91J3JlIHJ1bm5p
bmcgb24gTGVvcGFyZCwgdGhlbiBwYXNzaW5nICctLXBsYXRmb3JtCisgICAgICAgIG1hYycgd2ls
bCBkZWZhdWx0IHRvIHRoZSAnbWFjLWxlb3BhcmQnIHBvcnQpLiBUaGlzIG1lYW5zIHRoYXQKKyAg
ICAgICAgcG9ydC5uYW1lKCkgc2hvdWxkIGFsd2F5cyBpbmNsdWRlIGEgdmVyc2lvbi1zcGVjaWZp
YyBzdWZmaXggaWYKKyAgICAgICAgdGhlIHBvcnQgc3VwcG9ydHMgdmVyc2lvbnMuCisKKyAgICAg
ICAgSG93ZXZlciwgd2Ugc3RpbGwgc3VwcG9ydCB0aGluZ3MgbGlrZSAnLS1wbGF0Zm9ybSBtYWMn
IGFzIGlucHV0CisgICAgICAgIHNvIHRoYXQgdGhlIHVzZXIgZG9lc24ndCBoYXZlIHRvIGV4cGxp
Y2l0bHkgc3BlY2lmeSBhIHZlcnNpb24sCisgICAgICAgIGJvdGggZm9yIGNvbnZlbmllbmNlIGFu
ZCBzbyB3ZSBkb24ndCBoYXZlIHRvIG1ha2UgYnVpbGRib3QKKyAgICAgICAgY29uZmlncyBtb3Jl
IGNvbXBsaWNhdGVkIHRoYW4gdGhleSBhbHJlYWR5IGFyZS4KKworICAgICAgICBBbHNvLCBJIGNs
ZWFuZWQgdXAgaG93IHRoZSBiYXNlbGluZXMgd2VyZSBiZWluZyBzZWFyY2hlZAorICAgICAgICBv
biB0aGUgY2hyb21pdW0tbWFjIHBvcnQgKHRoaXMgaXMgb25lIG9mIHRoZSB0d28gYnVncyB0aGF0
CisgICAgICAgIHByb21wdGVkIHRoaXMgcmVmYWN0b3JpbmcpLCBhbmQgbWFkZSB0aGUgbG9naWMg
ZWFzaWVyIHRvIGZvbGxvdworICAgICAgICBhbmQgbW9yZSBjb25zaXN0ZW50IGFjcm9zcyB0aGUg
bWFjIGFuZCBjaHJvbWl1bSBwb3J0cworICAgICAgICAKKyAgICAgICAgTGFzdGx5LCBJIGFkZGVk
IGEgcG9ydC5nZXRfYWxsX25hbWVzKCkgbWV0aG9kIHRoYXQgY291bGQgYmUgdXNlZAorICAgICAg
ICB0byBnZXQgdGhlIG5hbWVzIG9mIGFsbCBvZiB0aGUgcG9ydHMgdG8gc2VhcmNoLCByYXRoZXIg
dGhhbiBoYXZpbmcKKyAgICAgICAgdG8gZ3Vlc3MgKGluY29ycmVjdGx5KSBmcm9tIHRoZSBsaXN0
IG9mIGRpcmVjdG9yaWVzIHVuZGVyCisgICAgICAgIExheW91dFRlc3RzL3BsYXRmb3JtICh0aGlz
IGxhc3QgdGhpbmcgd2FzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZQorICAgICAgICBkZWR1cGxpY2F0
ZV90ZXN0cyB1bml0dGVzdCBicm9rZSBhcyB0aGUgZmFsbGJhY2sgZGlycyBjaGFuZ2VkKS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQyNDgKKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3Rz
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9y
eS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3Rv
cnlfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV9ncHVfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVz
dC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtX3dpbi5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX3dpbl91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L21hYy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHk6CisKIDIwMTEtMDItMDkgIERpcmsg
UHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9u
eSBDaGFuZy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2RlZHVwbGljYXRlX3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvZGVkdXBsaWNhdGVfdGVzdHMucHkKaW5kZXggODY2NDliNmVhYWViNTBkNTRlMDY5MjQwNGI3
YmNkMjQ1NzA0ZWJhNS4uNmUxNjFmY2JkZjBkZGVjYWEyYjJlMGFjZGQ1NGJjYmFiYjQwZjFlYSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNh
dGVfdGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVk
dXBsaWNhdGVfdGVzdHMucHkKQEAgLTU1LDkgKzU1LDcgQEAgZGVmIHBvcnRfZmFsbGJhY2tzKCk6
CiAgICAgICAgIGJhY2sgb24uICBBbGwgcGxhdGZvcm1zIGZhbGwgYmFjayBvbiAnYmFzZScuCiAg
ICAgIiIiCiAgICAgZmFsbGJhY2tzID0ge19CQVNFX1BMQVRGT1JNOiBbXX0KLSAgICBwbGF0Zm9y
bV9kaXIgPSBvcy5wYXRoLmpvaW4oc2NtLmZpbmRfY2hlY2tvdXRfcm9vdCgpLCAnTGF5b3V0VGVz
dHMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm0nKQotICAgIGZv
ciBwb3J0X25hbWUgaW4gb3MubGlzdGRpcihwbGF0Zm9ybV9kaXIpOgorICAgIGZvciBwb3J0X25h
bWUgaW4gcG9ydF9mYWN0b3J5LmFsbF9wb3J0X25hbWVzKCk6CiAgICAgICAgIHRyeToKICAgICAg
ICAgICAgIHBsYXRmb3JtcyA9IHBvcnRfZmFjdG9yeS5nZXQocG9ydF9uYW1lKS5iYXNlbGluZV9z
ZWFyY2hfcGF0aCgpCiAgICAgICAgIGV4Y2VwdCBOb3RJbXBsZW1lbnRlZEVycm9yOgpAQCAtNjcs
NiArNjUsNyBAQCBkZWYgcG9ydF9mYWxsYmFja3MoKToKICAgICAgICAgICAgIGNvbnRpbnVlCiAg
ICAgICAgIGZhbGxiYWNrc1twb3J0X25hbWVdID0gW29zLnBhdGguYmFzZW5hbWUocCkgZm9yIHAg
aW4gcGxhdGZvcm1zXVsxOl0KICAgICAgICAgZmFsbGJhY2tzW3BvcnRfbmFtZV0uYXBwZW5kKF9C
QVNFX1BMQVRGT1JNKQorCiAgICAgcmV0dXJuIGZhbGxiYWNrcwogCiAKQEAgLTE5OSw2ICsxOTgs
OCBAQCBkZWYgZmluZF9kdXBzKGhhc2hlcywgcG9ydF9mYWxsYmFja3MsIHJlbGF0aXZlX3RvKToK
IAogICAgICAgICAjIFNlZSBpZiBhbnkgb2YgdGhlIHBsYXRmb3JtcyBhcmUgcmVkdW5kYW50IHdp
dGggZWFjaCBvdGhlci4KICAgICAgICAgZm9yIHBsYXRmb3JtIGluIHBsYXRmb3Jtcy5rZXlzKCk6
CisgICAgICAgICAgICBpZiBwbGF0Zm9ybSBub3QgaW4gcG9ydF9mYWN0b3J5LmFsbF9wb3J0X25h
bWVzKCk6CisgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGZvciBmYWxsYmFj
ayBpbiBwb3J0X2ZhbGxiYWNrc1twbGF0Zm9ybV06CiAgICAgICAgICAgICAgICAgaWYgZmFsbGJh
Y2sgbm90IGluIHBsYXRmb3Jtcy5rZXlzKCk6CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX2dwdV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fZ3B1X3VuaXR0ZXN0LnB5CmluZGV4IDk2OTYyZWNhMzA4Y2Q3ZDI5
MDU0MjI1NmYzZGQ3ZDJhYzMyNzRiN2IuLmI3MmIxZTYxMTgwZTk0MDljOWU0YjI3MjIxOWNmYzNi
YzE4MGMzNzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fZ3B1X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1X3VuaXR0ZXN0LnB5CkBAIC02Niw4ICs2
Niw3IEBAIGNsYXNzIENocm9taXVtR3B1VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcygpLCAxKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuX29wdGlvbnMuYnVpbGRlcl9uYW1lLCAnZm9vIC0g
R1BVJykKIAotICAgICAgICAjIFdlIGRvbid0IHN1cHBvcnQgcGxhdGZvcm0tc3BlY2lmaWMgdmVy
c2lvbnMgb2YgdGhlIEdQVSBwb3J0IHlldC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0
Lm5hbWUoKSwgcG9ydF9uYW1lKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5uYW1lKCku
c3RhcnRzd2l0aChwb3J0X25hbWUpKQogCiAgICAgICAgICMgdGVzdCB0aGF0IGl0IGhhcyB0aGUg
cmlnaHQgZGlyZWN0b3JpZXMgaW4gZnJvbnQgb2YgdGhlIHNlYXJjaCBwYXRoLgogICAgICAgICBw
YXRocyA9IHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weQppbmRleCAx
Nzg2MmEyNTc3MTgzOTkxMzQzMzc2ODVmMWM0M2Q5OTZmM2FiYWFiLi4wMjc4ODVkODQ0YjlhM2E2
ZDY5OWYyNzBhYjE0NmIwMDA3ODQxYTE3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weQpAQCAtMzEsMTAgKzMx
LDEwIEBACiAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKLWltcG9ydCBwbGF0Zm9ybQogaW1w
b3J0IHNpZ25hbAogCi1pbXBvcnQgY2hyb21pdW0KK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
LnBvcnQgaW1wb3J0IG1hYworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQg
Y2hyb21pdW0KIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQg
RXhlY3V0aXZlCiAKQEAgLTQzLDIwICs0MywyOSBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIo
IndlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmNocm9taXVtX21hYyIpCiAKIGNsYXNzIENocm9t
aXVtTWFjUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICIiIkNocm9taXVtIE1hYyBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgUG9ydCBjbGFzcy4iIiIKKyAgICBTVVBQT1JURURfT1NfVkVS
U0lPTlMgPSAoJy1sZW9wYXJkJywgJy1zbm93bGVvcGFyZCcpCiAKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgKiprd2FyZ3MpOgotICAgICAgICBrd2FyZ3Muc2V0ZGVmYXVsdCgncG9ydF9uYW1lJywg
J2Nocm9taXVtLW1hYycpCi0gICAgICAgIGNocm9taXVtLkNocm9taXVtUG9ydC5fX2luaXRfXyhz
ZWxmLCAqKmt3YXJncykKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsIG9z
X3ZlcnNpb25fc3RyaW5nPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgIyBXZSdyZSBhIGxpdHRs
ZSBnZW5lcmljIGhlcmUgYmVjYXVzZSB0aGlzIGNvZGUgaXMgcmV1c2VkIGJ5IHRoZQorICAgICAg
ICAjICdnb29nbGUtY2hyb21lJyBwb3J0IGFzIHdlbGwgYXMgdGhlICdtb2NrLScgYW5kICdkcnly
dW4tJyBwb3J0cy4KKyAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lIG9yICdjaHJvbWl1bS1t
YWMnCisKKyAgICAgICAgaWYgcG9ydF9uYW1lLmVuZHN3aXRoKCctbWFjJyk6CisgICAgICAgICAg
ICBzZWxmLl92ZXJzaW9uID0gbWFjLm9zX3ZlcnNpb24ob3NfdmVyc2lvbl9zdHJpbmcsIHNlbGYu
U1VQUE9SVEVEX09TX1ZFUlNJT05TKQorICAgICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1l
ICsgc2VsZi5fdmVyc2lvbgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fdmVyc2lv
biA9IHBvcnRfbmFtZVtwb3J0X25hbWUuaW5kZXgoJy1tYWMnKSArIDQ6XQorICAgICAgICBjaHJv
bWl1bS5DaHJvbWl1bVBvcnQuX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKipr
d2FyZ3MpCiAKICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6Ci0gICAgICAgIHBv
cnRfbmFtZXMgPSBbCi0gICAgICAgICAgICAiY2hyb21pdW0tbWFjIiArIHNlbGYudmVyc2lvbigp
LAotICAgICAgICAgICAgImNocm9taXVtLW1hYyIsCi0gICAgICAgICAgICAiY2hyb21pdW0iLAot
ICAgICAgICAgICAgIm1hYyIgKyBzZWxmLnZlcnNpb24oKSwKLSAgICAgICAgICAgICJtYWMiLAot
ICAgICAgICBdCi0gICAgICAgIHJldHVybiBtYXAoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgs
IHBvcnRfbmFtZXMpCisgICAgICAgIGZhbGxiYWNrX3BhdGhzID0geworICAgICAgICAgICAgJy1s
ZW9wYXJkJzogWydjaHJvbWl1bS1tYWMtbGVvcGFyZCcsICdjaHJvbWl1bS1tYWMtc25vd2xlb3Bh
cmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdjaHJvbWl1bS1tYWMnLCAnY2hyb21pdW0n
LAorICAgICAgICAgICAgICAgICAgICAgICAgICdtYWMtbGVvcGFyZCcsICdtYWMtc25vd2xlb3Bh
cmQnLCAnbWFjJ10sCisgICAgICAgICAgICAnLXNub3dsZW9wYXJkJzogWydjaHJvbWl1bS1tYWMt
c25vd2xlb3BhcmQnLCAnY2hyb21pdW0tbWFjJywgJ2Nocm9taXVtJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ21hYy1zbm93bGVvcGFyZCcsICdtYWMnXSwKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gbWFwKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBmYWxsYmFja19wYXRo
c1tzZWxmLl92ZXJzaW9uXSkKIAogICAgIGRlZiBjaGVja19idWlsZChzZWxmLCBuZWVkc19odHRw
KToKICAgICAgICAgcmVzdWx0ID0gY2hyb21pdW0uQ2hyb21pdW1Qb3J0LmNoZWNrX2J1aWxkKHNl
bGYsIG5lZWRzX2h0dHApCkBAIC04NSwyMCArOTQsMTIgQEAgY2xhc3MgQ2hyb21pdW1NYWNQb3J0
KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAKICAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNl
bGYpOgogICAgICAgICAjIFdlIHVzZSAnbWFjJyBpbnN0ZWFkIG9mICdjaHJvbWl1bS1tYWMnCisK
KyAgICAgICAgIyBGSVhNRTogR2V0IHJpZCBvZiB0aGlzIG1ldGhvZCBhZnRlciByZWJhc2VsaW5l
X2Nocm9taXVtX3dlYmtpdF90ZXN0cyBkaWVzLgogICAgICAgICByZXR1cm4gJ21hYycKIAogICAg
IGRlZiB2ZXJzaW9uKHNlbGYpOgotICAgICAgICAjIEZJWE1FOiBJdCdzIHN0cmFuZ2UgdGhhdCB0
aGlzIHN0cmluZyBpcyAtdmVyc2lvbiwgbm90IGp1c3QgdmVyc2lvbi4KLSAgICAgICAgb3NfdmVy
c2lvbl9zdHJpbmcgPSBwbGF0Zm9ybS5tYWNfdmVyKClbMF0gICMgZS5nLiAiMTAuNS42IgotICAg
ICAgICBpZiBub3Qgb3NfdmVyc2lvbl9zdHJpbmc6Ci0gICAgICAgICAgICByZXR1cm4gJy1sZW9w
YXJkJwotICAgICAgICByZWxlYXNlX3ZlcnNpb24gPSBpbnQob3NfdmVyc2lvbl9zdHJpbmcuc3Bs
aXQoJy4nKVsxXSkKLSAgICAgICAgIyB3ZSBkb24ndCBzdXBwb3J0ICd0aWdlcicgb3IgZWFybGll
ciByZWxlYXNlcwotICAgICAgICBpZiByZWxlYXNlX3ZlcnNpb24gPT0gNToKLSAgICAgICAgICAg
IHJldHVybiAnLWxlb3BhcmQnCi0gICAgICAgIGVsaWYgcmVsZWFzZV92ZXJzaW9uID09IDY6Ci0g
ICAgICAgICAgICByZXR1cm4gJy1zbm93bGVvcGFyZCcKLSAgICAgICAgcmV0dXJuICcnCisgICAg
ICAgIHJldHVybiBzZWxmLl92ZXJzaW9uCiAKICAgICAjCiAgICAgIyBQUk9URUNURUQgTUVUSE9E
UwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV9tYWNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX21hY191bml0dGVzdC5weQppbmRleCBkNjNmYWEwMGI5NmQ3N2Y1
NDE1M2Q4OGJhOTljNzA2NjNhYmU5NWVlLi41MzM1NmJjYTNlODU5ZGE2YjEwNjM5NDdjMTM0MWM5
MWM1NDFhODFlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX21hY191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hY191bml0dGVzdC5weQpAQCAtMjYsMTUg
KzI2LDQ5IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgY2hyb21p
dW1fbWFjCiBpbXBvcnQgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5Lm1vY2sg
aW1wb3J0IE1vY2sKIAorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgY2hy
b21pdW1fbWFjCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBwb3J0X3Rl
c3RjYXNlCiAKLWNsYXNzIENocm9taXVtTWFjUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgor
CitjbGFzcyBDaHJvbWl1bU1hY1BvcnRUZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToK
KyAgICBkZWYgcG9ydF9tYWtlcihzZWxmLCBwbGF0Zm9ybSk6CisgICAgICAgIGlmIHBsYXRmb3Jt
ICE9ICdkYXJ3aW4nOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIGNo
cm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQKIAogICAgIGRlZiB0ZXN0X2NoZWNrX3dkaWZmX2lu
c3RhbGwoc2VsZik6CiAgICAgICAgIHBvcnQgPSBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0
KCkKKwogICAgICAgICAjIEN1cnJlbnRseSBpcyBhbHdheXMgdHJ1ZSwganVzdCBsb2dzIGlmIG1p
c3NpbmcuCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Ll9jaGVja193ZGlmZl9pbnN0YWxs
KCkpCisKKyAgICBkZWYgYXNzZXJ0X25hbWUoc2VsZiwgcG9ydF9uYW1lLCBvc192ZXJzaW9uX3N0
cmluZywgZXhwZWN0ZWQpOgorICAgICAgICBwb3J0ID0gY2hyb21pdW1fbWFjLkNocm9taXVtTWFj
UG9ydChwb3J0X25hbWU9cG9ydF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvc192ZXJzaW9uX3N0cmluZz1vc192ZXJzaW9uX3N0cmluZykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWQsIHBvcnQubmFtZSgpKQorCisgICAgZGVmIHRl
c3RfdmVyc2lvbnMoc2VsZik6CisgICAgICAgIHBvcnQgPSBjaHJvbWl1bV9tYWMuQ2hyb21pdW1N
YWNQb3J0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQudmVyc2lvbigpIGluICgnLWxl
b3BhcmQnLCAnLXNub3dsZW9wYXJkJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Lm5h
bWUoKSBpbiAoJ2Nocm9taXVtLW1hYy1sZW9wYXJkJywgJ2Nocm9taXVtLW1hYy1zbm93bGVvcGFy
ZCcpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoTm9uZSwgJzEwLjUuMycsICdjaHJvbWl1
bS1tYWMtbGVvcGFyZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLW1hYycs
ICcxMC41LjMnLCAnY2hyb21pdW0tbWFjLWxlb3BhcmQnKQorICAgICAgICBzZWxmLmFzc2VydF9u
YW1lKCdjaHJvbWl1bS1tYWMtbGVvcGFyZCcsICcxMC41LjMnLCAnY2hyb21pdW0tbWFjLWxlb3Bh
cmQnKQorICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS1tYWMtbGVvcGFyZCcsICcx
MC42LjMnLCAnY2hyb21pdW0tbWFjLWxlb3BhcmQnKQorCisgICAgICAgIHNlbGYuYXNzZXJ0X25h
bWUoTm9uZSwgJzEwLjYuMycsICdjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQnKQorICAgICAgICBz
ZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS1tYWMnLCAnMTAuNi4zJywgJ2Nocm9taXVtLW1hYy1z
bm93bGVvcGFyZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLW1hYy1zbm93
bGVvcGFyZCcsICcxMC41LjMnLCAnY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJykKKyAgICAgICAg
c2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJywgJzEwLjYuMycsICdj
aHJvbWl1bS1tYWMtc25vd2xlb3BhcmQnKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtl
eUVycm9yLCBzZWxmLmFzc2VydF9uYW1lLCBOb25lLCAnMTAuNy4xJywgJ2Nocm9taXVtLW1hYy1s
ZW9wYXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIHNlbGYu
YXNzZXJ0X25hbWUsIE5vbmUsICcxMC40LjEnLCAnY2hyb21pdW0tbWFjLWxlb3BhcmQnKQorCisK
K2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV91bml0dGVzdC5weQppbmRleCBiODljOGNjMzFlMTI2YzE3NWY2MDRiMmQxMDIwMTE0YjBm
Y2JkZTdhLi42ODE1ZTVkOWE4N2Y5ZGEyOTNmZTBiZTUzM2JiYTYzZWRhODMwZjE0IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fdW5pdHRlc3QucHkKQEAgLTkwLDcgKzkwLDYgQEAgY2xhc3MgQ2hyb21pdW1Qb3J0
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgY2xhc3MgVGVzdE1hY1BvcnQoY2hyb21pdW1f
bWFjLkNocm9taXVtTWFjUG9ydCk6CiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25z
KToKICAgICAgICAgICAgIGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQuX19pbml0X18oc2Vs
ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9y
dF9uYW1lPSd0ZXN0LXBvcnQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcHRpb25zPW9wdGlvbnMpCiAKICAgICAgICAgZGVmIGRlZmF1bHRfY29u
ZmlndXJhdGlvbihzZWxmKToKQEAgLTEwMCw3ICs5OSw2IEBAIGNsYXNzIENocm9taXVtUG9ydFRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGNsYXNzIFRlc3RMaW51eFBvcnQoY2hyb21pdW1f
bGludXguQ2hyb21pdW1MaW51eFBvcnQpOgogICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0
aW9ucyk6CiAgICAgICAgICAgICBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydC5fX2lu
aXRfXyhzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcG9ydF9uYW1lPSd0ZXN0LXBvcnQnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz1vcHRpb25zLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXN5c3RlbT1m
aWxlc3lzdGVtX21vY2suTW9ja0ZpbGVTeXN0ZW0oKSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQppbmRleCAw
OTFiMjczZjkzM2JkNmY1ZjMyNWUxOGVkYzU5YjAzYzUyNWYyMGVkLi41N2IwM2M3MjlmZDI4YjZk
MWM0Y2M1ZDgwYzQwMTM4NTJiOTFkZTU5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQpAQCAtMzcsMTIgKzM3
LDM3IEBAIGltcG9ydCBjaHJvbWl1bQogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ3ZWJraXRw
eS5sYXlvdXRfdGVzdHMucG9ydC5jaHJvbWl1bV93aW4iKQogCiAKK2RlZiBvc192ZXJzaW9uKHdp
bmRvd3NfdmVyc2lvbj1Ob25lKToKKyAgICBpZiBub3Qgd2luZG93c192ZXJzaW9uOgorICAgICAg
ICBpZiBoYXNhdHRyKHN5cywgJ2dldHdpbmRvd3N2ZXJzaW9uJyk6CisgICAgICAgICAgICB3aW5k
b3dzX3ZlcnNpb24gPSBzeXMuZ2V0d2luZG93c3ZlcnNpb24oKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgIyBNYWtlIHVwIHNvbWV0aGluZyBmb3IgdGVzdGluZy4KKyAgICAgICAgICAgIHdp
bmRvd3NfdmVyc2lvbiA9ICg1LCAwKQorCisgICAgdmVyc2lvbl9zdHJpbmdzID0geworICAgICAg
ICAoNiwgMSk6ICctNycsCisgICAgICAgICg2LCAwKTogJy12aXN0YScsCisgICAgICAgICg1LCAx
KTogJy14cCcsCisgICAgICAgICg1LCAwKTogJy14cCcsCisgICAgfQorICAgIHJldHVybiB2ZXJz
aW9uX3N0cmluZ3Nbd2luZG93c192ZXJzaW9uXQorCisKIGNsYXNzIENocm9taXVtV2luUG9ydChj
aHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICIiIkNocm9taXVtIFdpbiBpbXBsZW1lbnRhdGlv
biBvZiB0aGUgUG9ydCBjbGFzcy4iIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJn
cyk6Ci0gICAgICAgIGt3YXJncy5zZXRkZWZhdWx0KCdwb3J0X25hbWUnLCAnY2hyb21pdW0td2lu
JyArIHNlbGYudmVyc2lvbigpKQotICAgICAgICBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuX19pbml0
X18oc2VsZiwgKiprd2FyZ3MpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1Ob25l
LCB3aW5kb3dzX3ZlcnNpb249Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAjIFdlJ3JlIGEgbGl0
dGxlIGdlbmVyaWMgaGVyZSBiZWNhdXNlIHRoaXMgY29kZSBpcyByZXVzZWQgYnkgdGhlCisgICAg
ICAgICMgJ2dvb2dsZS1jaHJvbWUnIHBvcnQgYXMgd2VsbCBhcyB0aGUgJ21vY2stJyBhbmQgJ2Ry
eXJ1bi0nIHBvcnRzLgorICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgb3IgJ2Nocm9taXVt
LXdpbicKKworICAgICAgICBpZiBwb3J0X25hbWUuZW5kc3dpdGgoJy13aW4nKToKKyAgICAgICAg
ICAgIHNlbGYuX3ZlcnNpb24gPSBvc192ZXJzaW9uKHdpbmRvd3NfdmVyc2lvbikKKyAgICAgICAg
ICAgIHBvcnRfbmFtZSA9IHBvcnRfbmFtZSArIHNlbGYuX3ZlcnNpb24KKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBwb3J0X25hbWVbcG9ydF9uYW1lLmluZGV4KCct
d2luJykgKyA0Ol0KKyAgICAgICAgY2hyb21pdW0uQ2hyb21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYs
IHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQogCiAgICAgZGVmIHNldHVwX2Vudmlyb25f
Zm9yX3NlcnZlcihzZWxmKToKICAgICAgICAgZW52ID0gY2hyb21pdW0uQ2hyb21pdW1Qb3J0LnNl
dHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxmKQpAQCAtNjMsMTAgKzg4LDEyIEBAIGNsYXNzIENo
cm9taXVtV2luUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogCiAgICAgZGVmIGJhc2VsaW5l
X3NlYXJjaF9wYXRoKHNlbGYpOgogICAgICAgICBwb3J0X25hbWVzID0gW10KLSAgICAgICAgaWYg
c2VsZi5fbmFtZS5lbmRzd2l0aCgnLXdpbi14cCcpOgotICAgICAgICAgICAgcG9ydF9uYW1lcy5h
cHBlbmQoImNocm9taXVtLXdpbi14cCIpCi0gICAgICAgIGlmIHNlbGYuX25hbWUuZW5kc3dpdGgo
Jy13aW4teHAnKSBvciBzZWxmLl9uYW1lLmVuZHN3aXRoKCctd2luLXZpc3RhJyk6Ci0gICAgICAg
ICAgICBwb3J0X25hbWVzLmFwcGVuZCgiY2hyb21pdW0td2luLXZpc3RhIikKKyAgICAgICAgZmFs
bGJhY2tfcGF0aHMgPSB7CisgICAgICAgICAgICAnLXhwJzogWydjaHJvbWl1bS13aW4teHAnLCAn
Y2hyb21pdW0td2luLXZpc3RhJywgJ2Nocm9taXVtLXdpbiddLAorICAgICAgICAgICAgJy12aXN0
YSc6IFsnY2hyb21pdW0td2luLXZpc3RhJywgJ2Nocm9taXVtLXdpbiddLAorICAgICAgICAgICAg
Jy03JzogWydjaHJvbWl1bS13aW4nXSwKKyAgICAgICAgfQorICAgICAgICBwb3J0X25hbWVzID0g
ZmFsbGJhY2tfcGF0aHNbc2VsZi52ZXJzaW9uKCldCiAgICAgICAgICMgRklYTUU6IFRoaXMgbWF5
IG5lZWQgdG8gaW5jbHVkZSBtYWMtc25vd2xlb3BhcmQgbGlrZSB3aW4ucHkuCiAgICAgICAgIHBv
cnRfbmFtZXMuZXh0ZW5kKFsiY2hyb21pdW0td2luIiwgImNocm9taXVtIiwgIndpbiIsICJtYWMi
XSkKICAgICAgICAgcmV0dXJuIG1hcChzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCwgcG9ydF9u
YW1lcykKQEAgLTg3LDE5ICsxMTQsMTIgQEAgY2xhc3MgQ2hyb21pdW1XaW5Qb3J0KGNocm9taXVt
LkNocm9taXVtUG9ydCk6CiAKICAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgogICAg
ICAgICAjIFdlIHJldHVybiAnd2luLXhwJywgbm90ICdjaHJvbWl1bS13aW4teHAnIGhlcmUsIGZv
ciBjb252ZW5pZW5jZS4KKworICAgICAgICAjIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgbWV0aG9k
IGFmdGVyIHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzIGRpZXMuCiAgICAgICAgIHJl
dHVybiAnd2luJyArIHNlbGYudmVyc2lvbigpCiAKICAgICBkZWYgdmVyc2lvbihzZWxmKToKLSAg
ICAgICAgaWYgbm90IGhhc2F0dHIoc3lzLCAnZ2V0d2luZG93c3ZlcnNpb24nKToKLSAgICAgICAg
ICAgIHJldHVybiAnJwotICAgICAgICB3aW52ZXIgPSBzeXMuZ2V0d2luZG93c3ZlcnNpb24oKQot
ICAgICAgICBpZiB3aW52ZXJbMF0gPT0gNiBhbmQgKHdpbnZlclsxXSA9PSAxKToKLSAgICAgICAg
ICAgIHJldHVybiAnLTcnCi0gICAgICAgIGlmIHdpbnZlclswXSA9PSA2IGFuZCAod2ludmVyWzFd
ID09IDApOgotICAgICAgICAgICAgcmV0dXJuICctdmlzdGEnCi0gICAgICAgIGlmIHdpbnZlclsw
XSA9PSA1IGFuZCAod2ludmVyWzFdID09IDEgb3Igd2ludmVyWzFdID09IDIpOgotICAgICAgICAg
ICAgcmV0dXJuICcteHAnCi0gICAgICAgIHJldHVybiAnJworICAgICAgICByZXR1cm4gc2VsZi5f
dmVyc2lvbgogCiAgICAgIwogICAgICMgUFJPVEVDVEVEIFJPVVRJTkVTCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fd2luX3VuaXR0ZXN0LnB5CmluZGV4IGQ2Nzc1ODlhNTFhMDc5NjBhOTRkNzYzMjhiMTllNTIx
NGM2ZDM2MjIuLjc2OTQ2MjVhNTlhMzcyNjNjNzJlMTFhZmMyMTQ1MjA1MTE5N2RlMWIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1f
d2luX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fd2luX3VuaXR0ZXN0LnB5CkBAIC0yOSwxMyArMjksMTUgQEAKIGltcG9y
dCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgY2hyb21pdW1fd2luCisK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgb3V0cHV0Y2FwdHVyZQogZnJvbSB3
ZWJraXRweS50b29sIGltcG9ydCBtb2NrdG9vbAogCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0
cy5wb3J0IGltcG9ydCBjaHJvbWl1bV93aW4KK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBv
cnQgaW1wb3J0IHBvcnRfdGVzdGNhc2UKIAotY2xhc3MgQ2hyb21pdW1XaW5UZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKIAorY2xhc3MgQ2hyb21pdW1XaW5UZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRl
c3RDYXNlKToKICAgICBjbGFzcyBSZWdpc3RlckN5Z3dpbk9wdGlvbihvYmplY3QpOgogICAgICAg
ICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgICAgICBzZWxmLnJlZ2lzdGVyX2N5Z3dpbiA9
IFRydWUKQEAgLTQ3LDExICs0OSwxOSBAQCBjbGFzcyBDaHJvbWl1bVdpblRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICBzeXMucGxhdGZvcm0gPSBzZWxmLm9yaWdfcGxhdGZvcm0KICAg
ICAgICAgc2VsZi5fcG9ydCA9IE5vbmUKIAorICAgIGRlZiBwb3J0X21ha2VyKHNlbGYsIHBsYXRm
b3JtKToKKyAgICAgICAgaWYgcGxhdGZvcm0gbm90IGluICgnY3lnd2luJywgJ3dpbjMyJyk6Cisg
ICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gY2hyb21pdW1fd2luLkNocm9t
aXVtV2luUG9ydAorCiAgICAgZGVmIF9tb2NrX3BhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKHNlbGYs
ICpjb21wcyk6CiAgICAgICAgIHJldHVybiBzZWxmLl9wb3J0Ll9maWxlc3lzdGVtLmpvaW4oIi9j
aHJvbWl1bS9zcmMiLCAqY29tcHMpCiAKICAgICBkZWYgdGVzdF9zZXR1cF9lbnZpcm9uX2Zvcl9z
ZXJ2ZXIoc2VsZik6Ci0gICAgICAgIHBvcnQgPSBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0
KCkKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKKyAgICAgICAgaWYgbm90IHBvcnQ6
CisgICAgICAgICAgICByZXR1cm4KKwogICAgICAgICBwb3J0Ll9leGVjdXRpdmUgPSBtb2NrdG9v
bC5Nb2NrRXhlY3V0aXZlKHNob3VsZF9sb2c9VHJ1ZSkKICAgICAgICAgc2VsZi5fcG9ydCA9IHBv
cnQKICAgICAgICAgcG9ydC5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSA9IHNlbGYuX21vY2tfcGF0
aF9mcm9tX2Nocm9taXVtX2Jhc2UKQEAgLTYyLDE2ICs3Miw1MyBAQCBjbGFzcyBDaHJvbWl1bVdp
blRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGVu
dlsiUEFUSCJdLCBvcy5lbnZpcm9uWyJQQVRIIl0pCiAKICAgICBkZWYgdGVzdF9zZXR1cF9lbnZp
cm9uX2Zvcl9zZXJ2ZXJfcmVnaXN0ZXJfY3lnd2luKHNlbGYpOgotICAgICAgICBzeXMucGxhdGZv
cm0gPSAid2luMzIiCi0gICAgICAgIHBvcnQgPSBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0
KAotICAgICAgICAgICAgb3B0aW9ucz1DaHJvbWl1bVdpblRlc3QuUmVnaXN0ZXJDeWd3aW5PcHRp
b24oKSkKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9Q2hyb21pdW1XaW5U
ZXN0LlJlZ2lzdGVyQ3lnd2luT3B0aW9uKCkpCisgICAgICAgIGlmIG5vdCBwb3J0OgorICAgICAg
ICAgICAgcmV0dXJuCisKICAgICAgICAgcG9ydC5fZXhlY3V0aXZlID0gbW9ja3Rvb2wuTW9ja0V4
ZWN1dGl2ZShzaG91bGRfbG9nPVRydWUpCiAgICAgICAgIHBvcnQucGF0aF9mcm9tX2Nocm9taXVt
X2Jhc2UgPSBzZWxmLl9tb2NrX3BhdGhfZnJvbV9jaHJvbWl1bV9iYXNlCiAgICAgICAgIHNlbGYu
X3BvcnQgPSBwb3J0CiAgICAgICAgIHNldHVwX21vdW50ID0gc2VsZi5fbW9ja19wYXRoX2Zyb21f
Y2hyb21pdW1fYmFzZSgidGhpcmRfcGFydHkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImN5Z3dpbiIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2V0dXBfbW91bnQuYmF0
IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImN5Z3dpbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzZXR1cF9tb3VudC5iYXQiKQogICAgICAgICBleHBlY3RlZF9zdGRlcnIg
PSAiTU9DSyBydW5fY29tbWFuZDogJXNcbiIgJSBbc2V0dXBfbW91bnRdCiAgICAgICAgIG91dHB1
dCA9IG91dHB1dGNhcHR1cmUuT3V0cHV0Q2FwdHVyZSgpCiAgICAgICAgIG91dHB1dC5hc3NlcnRf
b3V0cHV0cyhzZWxmLCBwb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCisKKyAg
ICBkZWYgYXNzZXJ0X25hbWUoc2VsZiwgcG9ydF9uYW1lLCB3aW5kb3dzX3ZlcnNpb24sIGV4cGVj
dGVkKToKKyAgICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQocG9ydF9u
YW1lPXBvcnRfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2luZG93c192ZXJzaW9uPXdpbmRvd3NfdmVyc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoZXhwZWN0ZWQsIHBvcnQubmFtZSgpKQorCisgICAgZGVmIHRlc3RfdmVyc2lvbnMoc2Vs
Zik6CisgICAgICAgIHBvcnQgPSBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQudmVyc2lvbigpIGluICgnLXhwJywgJy12aXN0YScsICct
NycpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5uYW1lKCkgaW4gKCdjaHJvbWl1bS13
aW4teHAnLCAnY2hyb21pdW0td2luLXZpc3RhJywgJ2Nocm9taXVtLXdpbi03JykpCisKKyAgICAg
ICAgc2VsZi5hc3NlcnRfbmFtZShOb25lLCAoNSwgMCksICdjaHJvbWl1bS13aW4teHAnKQorICAg
ICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS13aW4nLCAoNSwgMCksICdjaHJvbWl1bS13
aW4teHAnKQorICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS13aW4teHAnLCAoNSwg
MCksICdjaHJvbWl1bS13aW4teHAnKQorICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1
bS13aW4teHAnLCAoNiwgMCksICdjaHJvbWl1bS13aW4teHAnKQorICAgICAgICBzZWxmLmFzc2Vy
dF9uYW1lKCdjaHJvbWl1bS13aW4teHAnLCAoNiwgMSksICdjaHJvbWl1bS13aW4teHAnKQorCisg
ICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoTm9uZSwgKDYsIDApLCAnY2hyb21pdW0td2luLXZpc3Rh
JykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0td2luJywgKDYsIDApLCAnY2hy
b21pdW0td2luLXZpc3RhJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0td2lu
LXZpc3RhJywgKDUsIDApLCAnY2hyb21pdW0td2luLXZpc3RhJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRfbmFtZSgnY2hyb21pdW0td2luLXZpc3RhJywgKDYsIDApLCAnY2hyb21pdW0td2luLXZpc3Rh
JykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0td2luLXZpc3RhJywgKDYsIDEp
LCAnY2hyb21pdW0td2luLXZpc3RhJykKKworICAgICAgICBzZWxmLmFzc2VydF9uYW1lKE5vbmUs
ICg2LCAxKSwgJ2Nocm9taXVtLXdpbi03JykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hy
b21pdW0td2luJywgKDYsIDEpLCAnY2hyb21pdW0td2luLTcnKQorICAgICAgICBzZWxmLmFzc2Vy
dF9uYW1lKCdjaHJvbWl1bS13aW4tNycsICg1LCAwKSwgJ2Nocm9taXVtLXdpbi03JykKKyAgICAg
ICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0td2luLTcnLCAoNiwgMCksICdjaHJvbWl1bS13
aW4tNycpCisgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLXdpbi03JywgKDYsIDEp
LCAnY2hyb21pdW0td2luLTcnKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9y
LCBzZWxmLmFzc2VydF9uYW1lLCBOb25lLCAoNCwgMCksICdjaHJvbWl1bS13aW4teHAnKQorICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgc2VsZi5hc3NlcnRfbmFtZSwgTm9uZSwg
KDUsIDIpLCAnY2hyb21pdW0td2luLXhwJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5
RXJyb3IsIHNlbGYuYXNzZXJ0X25hbWUsIE5vbmUsICg3LCAxKSwgJ2Nocm9taXVtLXdpbi14cCcp
CisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9y
eS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5w
eQppbmRleCA3YWU2ZWI2NzFjZmNiYzExZTY5NWNmY2YxNDZjMWNlZjVmNTFmMGJjLi4yYmFiM2Vm
MzI4ODM4YjhhZjBlOGIyMWQ1MDdlYTkyYmJhN2QwZTllIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5LnB5CkBAIC0zMiw5ICszMiwy
OCBAQAogCiBpbXBvcnQgc3lzCiAKLUFMTF9QT1JUX05BTUVTID0gWyd0ZXN0JywgJ2RyeXJ1bics
ICdtYWMnLCAnd2luJywgJ2d0aycsICdxdCcsICdjaHJvbWl1bS1tYWMnLAotICAgICAgICAgICAg
ICAgICAgJ2Nocm9taXVtLWxpbnV4JywgJ2Nocm9taXVtLXdpbicsICdnb29nbGUtY2hyb21lLXdp
bicsCi0gICAgICAgICAgICAgICAgICAnZ29vZ2xlLWNocm9tZS1tYWMnLCAnZ29vZ2xlLWNocm9t
ZS1saW51eDMyJywgJ2dvb2dsZS1jaHJvbWUtbGludXg2NCddCisKK2RlZiBhbGxfcG9ydF9uYW1l
cygpOgorICAgICIiIlJldHVybiBhIGxpc3Qgb2YgYWxsIHZhbGlkLCBmdWxseS1zcGVjaWZpZWQs
ICJyZWFsIiBwb3J0IG5hbWVzLgorCisgICAgVGhpcyBpcyB0aGUgbGlzdCBvZiBuYW1lcyB0aGF0
IGNhbiBiZSBzcGVjaWZpZWQgZGlyZWN0bHkgYW5kIGNhbiBiZQorICAgIHJldHVybmVkIGFzIGEg
dmFsdWUgZnJvbSBwb3J0Lm5hbWUoKS4gVGhpcyBkb2VzIG5vdCBpbmNsdWRlIGFueQorICAgICJm
YWtlIiBuYW1lcyBsaWtlICJ0ZXN0IiBvciAibW9jay1tYWMiLCBhbmQgaXQgZG9lcyBub3QgaW5j
bHVkZSBhbnkKKyAgICBzaG9ydGN1dCBuYW1lcyBsaWtlICJjaHJvbWl1bS13aW4iIHRoYXQgd291
bGQgZ2V0IGV4cGFuZGVkIHRvCisgICAgImNocm9taXVtLXdpbi14cCIuIiIiCisgICAgIyBGSVhN
RTogVGhlcmUncyBwcm9iYWJseSBhIGJldHRlciB3YXkgdG8gZ2VuZXJhdGUgdGhpcyBsaXN0IC4u
LgorICAgIHJldHVybiBbJ2Nocm9taXVtLWdwdS1saW51eCcsCisgICAgICAgICAgICAnY2hyb21p
dW0tZ3B1LW1hYy1zbm93bGVvcGFyZCcsICdjaHJvbWl1bS1ncHUtbWFjLWxlb3BhcmQnLAorICAg
ICAgICAgICAgJ2Nocm9taXVtLWdwdS13aW4teHAnLCAnY2hyb21pdW0tZ3B1LXdpbi12aXN0YScs
ICdjaHJvbWl1bS1ncHUtd2luLTcnLAorICAgICAgICAgICAgJ2Nocm9taXVtLWxpbnV4JywKKyAg
ICAgICAgICAgICdjaHJvbWl1bS1tYWMtbGVvcGFyZCcsICdjaHJvbWl1bS1tYWMtc25vd2xlb3Bh
cmQnLAorICAgICAgICAgICAgJ2Nocm9taXVtLXdpbi14cCcsICdjaHJvbWl1bS13aW4tdmlzdGEn
LCAnY2hyb21pdW0td2luLTcnLAorICAgICAgICAgICAgJ2dvb2dsZS1jaHJvbWUtbGludXgzMics
ICdnb29nbGUtY2hyb21lLWxpbnV4NjQnLAorICAgICAgICAgICAgJ2d0aycsCisgICAgICAgICAg
ICAnbWFjLXRpZ2VyJywgJ21hYy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFyZCcsICdtYWMtd2sy
JywKKyAgICAgICAgICAgICdxdC1saW51eCcsICdxdC1tYWMnLCAncXQtd2luJywgJ3F0LXdrMics
CisgICAgICAgICAgICAnd2luLXhwJywgJ3dpbicsICd3aW4td2syJywKKyAgICBdCiAKIAogZGVm
IGdldChwb3J0X25hbWU9Tm9uZSwgb3B0aW9ucz1Ob25lLCAqKmt3YXJncyk6CkBAIC0xMDksOCAr
MTI4LDMgQEAgZGVmIF9nZXRfa3dhcmdzKCoqa3dhcmdzKToKICAgICBlbHNlOgogICAgICAgICBy
YWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCd1bnN1cHBvcnRlZCBwb3J0OiAlcycgJSBwb3J0X3Rv
X3VzZSkKICAgICByZXR1cm4gbWFrZXIoKiprd2FyZ3MpCi0KLWRlZiBnZXRfYWxsKG9wdGlvbnM9
Tm9uZSk6Ci0gICAgIiIiUmV0dXJucyBhbGwgdGhlIG9iamVjdHMgaW1wbGVtZW50aW5nIHRoZSBQ
b3J0IGludGVyZmFjZS4iIiIKLSAgICByZXR1cm4gZGljdChbKHBvcnRfbmFtZSwgZ2V0KHBvcnRf
bmFtZSwgb3B0aW9ucz1vcHRpb25zKSkKLSAgICAgICAgICAgICAgICAgZm9yIHBvcnRfbmFtZSBp
biBBTExfUE9SVF9OQU1FU10pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHkKaW5kZXggOTc4YTU1N2E1
N2IyMGEzYjhiNDBlOTk5OThlMzVhODVlZWUyOTY2ZS4uZTRhMmNkNDNmODg1ZTVlMDkzNTgwNGQ5
YWQ3NTE1ZGIxYjI2MDZhOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeV91bml0dGVzdC5weQpAQCAtMTUyLDI0ICsx
NTIsNiBAQCBjbGFzcyBGYWN0b3J5VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNl
bGYuYXNzZXJ0X3BsYXRmb3JtX3BvcnQoImN5Z3dpbiIsIHNlbGYuY2hyb21pdW1fb3B0aW9ucywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHJvbWl1bV93aW4uQ2hyb21pdW1X
aW5Qb3J0KQogCi0gICAgZGVmIHRlc3RfZ2V0X2FsbF9wb3J0cyhzZWxmKToKLSAgICAgICAgcG9y
dHMgPSBmYWN0b3J5LmdldF9hbGwoKQotICAgICAgICBmb3IgbmFtZSBpbiBmYWN0b3J5LkFMTF9Q
T1JUX05BTUVTOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5hbWUgaW4gcG9ydHMua2V5
cygpKQotICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJ0ZXN0IiwgdGVzdC5UZXN0UG9ydCwgcG9y
dHNbInRlc3QiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgiZHJ5cnVuLXRlc3QiLCBkcnly
dW4uRHJ5UnVuUG9ydCwgcG9ydHNbImRyeXJ1biJdKQotICAgICAgICBzZWxmLmFzc2VydF9wb3J0
KCJkcnlydW4tbWFjIiwgZHJ5cnVuLkRyeVJ1blBvcnQsIHBvcnRzWyJkcnlydW4iXSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRfcG9ydCgibWFjIiwgbWFjLk1hY1BvcnQsIHBvcnRzWyJtYWMiXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRfcG9ydCgid2luIiwgd2luLldpblBvcnQsIHBvcnRzWyJ3aW4iXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgiZ3RrIiwgZ3RrLkd0a1BvcnQsIHBvcnRzWyJndGsi
XSkKLSAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgicXQiLCBxdC5RdFBvcnQsIHBvcnRzWyJxdCJd
KQotICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJjaHJvbWl1bS1tYWMiLCBjaHJvbWl1bV9tYWMu
Q2hyb21pdW1NYWNQb3J0LAotICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRzWyJjaHJvbWl1
bS1tYWMiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgiY2hyb21pdW0tbGludXgiLCBjaHJv
bWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBw
b3J0c1siY2hyb21pdW0tbGludXgiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgiY2hyb21p
dW0td2luIiwgY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBwb3J0c1siY2hyb21pdW0td2luIl0pCi0KICAgICBkZWYgdGVzdF91bmtub3duX3Nw
ZWNpZmllZChzZWxmKToKICAgICAgICAgIyBUZXN0IHdoYXQgaGFwcGVucyB3aGVuIHlvdSBzcGVj
aWZ5IGFuIHVua25vd24gcG9ydC4KICAgICAgICAgb3JpZ19wbGF0Zm9ybSA9IHN5cy5wbGF0Zm9y
bQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9t
YWMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQpp
bmRleCAxMzk4ZWQzMmE4OGRhNGVmMDY3NGIyZGY3MWI1Y2UxNjNmNzQxOWJmLi43MDM4OTY0ZmY1
MjFlZWY3ZmY2M2VlOWQxMGVkODllYjExYTg2MWQ5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQpAQCAtMzgsMTIgKzM4LDQwIEBAIGZyb20g
d2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQud2Via2l0IGltcG9ydCBXZWJLaXRQb3J0CiBfbG9n
ID0gbG9nZ2luZy5nZXRMb2dnZXIoIndlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0Lm1hYyIpCiAK
IAorZGVmIG9zX3ZlcnNpb24ob3NfdmVyc2lvbl9zdHJpbmc9Tm9uZSwgc3VwcG9ydGVkX3ZlcnNp
b25zPU5vbmUpOgorICAgICMgRklYTUU6IEl0J3Mgc3RyYW5nZSB0aGF0IHRoaXMgc3RyaW5nIGlz
IC12ZXJzaW9uLCBub3QganVzdCB2ZXJzaW9uLgorCisgICAgIyBXZSBvbmx5IHN1cHBvcnQgVGln
ZXIsIExlb3BhcmQsIGFuZCBTbm93IExlb3BhcmQuCisgICAgaWYgbm90IG9zX3ZlcnNpb25fc3Ry
aW5nOgorICAgICAgICBpZiBoYXNhdHRyKHBsYXRmb3JtLCAnbWFjX3ZlcicpOgorICAgICAgICAg
ICAgb3NfdmVyc2lvbl9zdHJpbmcgPSBwbGF0Zm9ybS5tYWNfdmVyKClbMF0KKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICMgTWFrZSB1cCBzb21ldGhpbmcgZm9yIHRlc3RpbmcuCisgICAgICAg
ICAgICBvc192ZXJzaW9uX3N0cmluZyA9ICIxMC41LjYiCisgICAgcmVsZWFzZV92ZXJzaW9uID0g
aW50KG9zX3ZlcnNpb25fc3RyaW5nLnNwbGl0KCcuJylbMV0pCisgICAgdmVyc2lvbl9zdHJpbmdz
ID0geworICAgICAgICA0OiAnLXRpZ2VyJywKKyAgICAgICAgNTogJy1sZW9wYXJkJywKKyAgICAg
ICAgNjogJy1zbm93bGVvcGFyZCcsCisgICAgfQorICAgIHZlcnNpb25fc3RyaW5nID0gdmVyc2lv
bl9zdHJpbmdzW3JlbGVhc2VfdmVyc2lvbl0KKyAgICBpZiBzdXBwb3J0ZWRfdmVyc2lvbnM6Cisg
ICAgICAgIGFzc2VydCB2ZXJzaW9uX3N0cmluZyBpbiBzdXBwb3J0ZWRfdmVyc2lvbnMKKyAgICBy
ZXR1cm4gdmVyc2lvbl9zdHJpbmcKKworCiBjbGFzcyBNYWNQb3J0KFdlYktpdFBvcnQpOgogICAg
ICIiIldlYktpdCBNYWMgaW1wbGVtZW50YXRpb24gb2YgdGhlIFBvcnQgY2xhc3MuIiIiCiAKLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgotICAgICAgICBrd2FyZ3Muc2V0ZGVmYXVs
dCgncG9ydF9uYW1lJywgJ21hYycgKyBzZWxmLnZlcnNpb24oKSkKLSAgICAgICAgV2ViS2l0UG9y
dC5fX2luaXRfXyhzZWxmLCAqKmt3YXJncykKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9u
YW1lPU5vbmUsIG9zX3ZlcnNpb25fc3RyaW5nPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgcG9y
dF9uYW1lID0gcG9ydF9uYW1lIG9yICdtYWMnCisKKyAgICAgICAgaWYgcG9ydF9uYW1lID09ICdt
YWMnOgorICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IG9zX3ZlcnNpb24ob3NfdmVyc2lvbl9z
dHJpbmcpCisgICAgICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgKyBzZWxmLl92ZXJzaW9u
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl92ZXJzaW9uID0gcG9ydF9uYW1lWzM6
XQorICAgICAgICBXZWJLaXRQb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUs
ICoqa3dhcmdzKQogCiAgICAgZGVmIGRlZmF1bHRfY2hpbGRfcHJvY2Vzc2VzKHNlbGYpOgogICAg
ICAgICAjIEZJWE1FOiBuZXctcnVuLXdlYmtpdC10ZXN0cyBpcyB1bnN0YWJsZSBvbiBNYWMgcnVu
bmluZyBtb3JlIHRoYW4KQEAgLTU1LDE1ICs4MywxMyBAQCBjbGFzcyBNYWNQb3J0KFdlYktpdFBv
cnQpOgogICAgICAgICByZXR1cm4gY2hpbGRfcHJvY2Vzc2VzCiAKICAgICBkZWYgYmFzZWxpbmVf
c2VhcmNoX3BhdGgoc2VsZik6Ci0gICAgICAgIHBvcnRfbmFtZXMgPSBbXQotICAgICAgICBpZiBz
ZWxmLl9uYW1lID09ICdtYWMtdGlnZXInOgotICAgICAgICAgICAgcG9ydF9uYW1lcy5hcHBlbmQo
Im1hYy10aWdlciIpCi0gICAgICAgIGlmIHNlbGYuX25hbWUgaW4gKCdtYWMtdGlnZXInLCAnbWFj
LWxlb3BhcmQnKToKLSAgICAgICAgICAgIHBvcnRfbmFtZXMuYXBwZW5kKCJtYWMtbGVvcGFyZCIp
Ci0gICAgICAgIGlmIHNlbGYuX25hbWUgaW4gKCdtYWMtdGlnZXInLCAnbWFjLWxlb3BhcmQnLCAn
bWFjLXNub3dsZW9wYXJkJyk6Ci0gICAgICAgICAgICBwb3J0X25hbWVzLmFwcGVuZCgibWFjLXNu
b3dsZW9wYXJkIikKLSAgICAgICAgcG9ydF9uYW1lcy5hcHBlbmQoIm1hYyIpCi0gICAgICAgIHJl
dHVybiBtYXAoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgsIHBvcnRfbmFtZXMpCisgICAgICAg
IGZhbGxiYWNrX3BhdGhzID0geworICAgICAgICAgICAgJy10aWdlcic6IFsnbWFjLXRpZ2VyJywg
J21hYy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFyZCcsICdtYWMnXSwKKyAgICAgICAgICAgICct
bGVvcGFyZCc6IFsnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLAorICAg
ICAgICAgICAgJy1zbm93bGVvcGFyZCc6IFsnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLAorICAg
ICAgICAgICAgJy13azInOiBbJ21hYy13azInLCAnbWFjJ10sCisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIG1hcChzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCwgZmFsbGJhY2tfcGF0aHNbc2Vs
Zi5fdmVyc2lvbl0pCiAKICAgICBkZWYgcGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKHNl
bGYpOgogICAgICAgICByZXR1cm4gc2VsZi5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoJ0xheW91dFRl
c3RzJywgJ3BsYXRmb3JtJywKQEAgLTczLDcgKzk5LDcgQEAgY2xhc3MgTWFjUG9ydChXZWJLaXRQ
b3J0KToKICAgICAgICAgIyBGSVhNRTogVGhpcyBtZXRob2Qgd2lsbCBuZWVkIHRvIGJlIG1hZGUg
d29yayBmb3Igbm9uLW1hYwogICAgICAgICAjIHBsYXRmb3JtcyBhbmQgbW92ZWQgaW50byBiYXNl
LlBvcnQuCiAgICAgICAgIHNraXBwZWRfZmlsZXMgPSBbXQotICAgICAgICBpZiBzZWxmLl9uYW1l
IGluICgnbWFjLXRpZ2VyJywgJ21hYy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFyZCcpOgorICAg
ICAgICBpZiBzZWxmLl9uYW1lIGluICgnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJyk6
CiAgICAgICAgICAgICBza2lwcGVkX2ZpbGVzLmFwcGVuZChzZWxmLl9maWxlc3lzdGVtLmpvaW4o
CiAgICAgICAgICAgICAgICAgc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoc2VsZi5fbmFtZSks
ICdTa2lwcGVkJykpCiAgICAgICAgIHNraXBwZWRfZmlsZXMuYXBwZW5kKHNlbGYuX2ZpbGVzeXN0
ZW0uam9pbihzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCgnbWFjJyksCkBAIC04NCwxNyArMTEw
LDcgQEAgY2xhc3MgTWFjUG9ydChXZWJLaXRQb3J0KToKICAgICAgICAgcmV0dXJuICdtYWMnICsg
c2VsZi52ZXJzaW9uKCkKIAogICAgIGRlZiB2ZXJzaW9uKHNlbGYpOgotICAgICAgICBvc192ZXJz
aW9uX3N0cmluZyA9IHBsYXRmb3JtLm1hY192ZXIoKVswXSAgIyBlLmcuICIxMC41LjYiCi0gICAg
ICAgIGlmIG5vdCBvc192ZXJzaW9uX3N0cmluZzoKLSAgICAgICAgICAgIHJldHVybiAnLWxlb3Bh
cmQnCi0gICAgICAgIHJlbGVhc2VfdmVyc2lvbiA9IGludChvc192ZXJzaW9uX3N0cmluZy5zcGxp
dCgnLicpWzFdKQotICAgICAgICBpZiByZWxlYXNlX3ZlcnNpb24gPT0gNDoKLSAgICAgICAgICAg
IHJldHVybiAnLXRpZ2VyJwotICAgICAgICBlbGlmIHJlbGVhc2VfdmVyc2lvbiA9PSA1OgotICAg
ICAgICAgICAgcmV0dXJuICctbGVvcGFyZCcKLSAgICAgICAgZWxpZiByZWxlYXNlX3ZlcnNpb24g
PT0gNjoKLSAgICAgICAgICAgIHJldHVybiAnLXNub3dsZW9wYXJkJwotICAgICAgICByZXR1cm4g
JycKKyAgICAgICAgcmV0dXJuIHNlbGYuX3ZlcnNpb24KIAogICAgIGRlZiBfYnVpbGRfamF2YV90
ZXN0X3N1cHBvcnQoc2VsZik6CiAgICAgICAgIGphdmFfdGVzdHNfcGF0aCA9IHNlbGYuX2ZpbGVz
eXN0ZW0uam9pbihzZWxmLmxheW91dF90ZXN0c19kaXIoKSwgImphdmEiKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5w
eQppbmRleCBlZjA0Njc5N2E0ZDNhNjU0MzI3YmI5YmQ4YzM2OGM2ZmYwNDcwYzJkLi43YTA5Mjcw
MmJjOGM2OGZmYWU2ZmExY2MyOTgyMWVjNjNkOTU5ZDQxIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weQpAQCAt
MjcsMjYgKzI3LDIwIEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBTdHJpbmdJTwotaW1wb3J0
IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiAKLWltcG9ydCBtYWMKLWltcG9ydCBwb3J0X3Rlc3RjYXNl
Citmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBtYWMKK2Zyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IHBvcnRfdGVzdGNhc2UKIAogCiBjbGFzcyBNYWNU
ZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKLSAgICBkZWYgbWFrZV9wb3J0KHNlbGYs
IHBvcnRfbmFtZT1Ob25lLCBvcHRpb25zPXBvcnRfdGVzdGNhc2UubW9ja19vcHRpb25zKToKLSAg
ICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICdkYXJ3aW4nOgorICAgIGRlZiBwb3J0X21ha2VyKHNl
bGYsIHBsYXRmb3JtKToKKyAgICAgICAgaWYgcGxhdGZvcm0gIT0gJ2Rhcndpbic6CiAgICAgICAg
ICAgICByZXR1cm4gTm9uZQotICAgICAgICBwb3J0X29iaiA9IG1hYy5NYWNQb3J0KHBvcnRfbmFt
ZT1wb3J0X25hbWUsIG9wdGlvbnM9b3B0aW9ucykKLSAgICAgICAgcG9ydF9vYmouX29wdGlvbnMu
cmVzdWx0c19kaXJlY3RvcnkgPSBwb3J0X29iai5yZXN1bHRzX2RpcmVjdG9yeSgpCi0gICAgICAg
IHBvcnRfb2JqLl9vcHRpb25zLmNvbmZpZ3VyYXRpb24gPSAnUmVsZWFzZScKLSAgICAgICAgcmV0
dXJuIHBvcnRfb2JqCisgICAgICAgIHJldHVybiBtYWMuTWFjUG9ydAogCiAgICAgZGVmIGFzc2Vy
dF9za2lwcGVkX2ZpbGVzX2Zvcl92ZXJzaW9uKHNlbGYsIHBvcnRfbmFtZSwgZXhwZWN0ZWRfcGF0
aHMpOgotICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQocG9ydF9uYW1lKQotICAgICAgICBp
ZiBub3QgcG9ydDoKLSAgICAgICAgICAgIHJldHVybgorICAgICAgICBwb3J0ID0gbWFjLk1hY1Bv
cnQocG9ydF9uYW1lPXBvcnRfbmFtZSkKICAgICAgICAgc2tpcHBlZF9wYXRocyA9IHBvcnQuX3Nr
aXBwZWRfZmlsZV9wYXRocygpCiAgICAgICAgICMgRklYTUU6IF9za2lwcGVkX2ZpbGVfcGF0aHMg
c2hvdWxkIHJldHVybiBXZWJLaXQtcmVsYXRpdmUgcGF0aHMuCiAgICAgICAgICMgU28gdG8gbWFr
ZSBpdCB1bml0IHRlc3RhYmxlLCB3ZSBzdHJpcCB0aGUgV2ViS2l0IGRpcmVjdG9yeSBmcm9tIHRo
ZSBwYXRoLgpAQCAtNTQsOCArNDgsNiBAQCBjbGFzcyBNYWNUZXN0KHBvcnRfdGVzdGNhc2UuUG9y
dFRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWxhdGl2ZV9wYXRocywgZXhw
ZWN0ZWRfcGF0aHMpCiAKICAgICBkZWYgdGVzdF9za2lwcGVkX2ZpbGVfcGF0aHMoc2VsZik6Ci0g
ICAgICAgIHNlbGYuYXNzZXJ0X3NraXBwZWRfZmlsZXNfZm9yX3ZlcnNpb24oJ21hYycsCi0gICAg
ICAgICAgICBbJy9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCddKQogICAgICAgICBz
ZWxmLmFzc2VydF9za2lwcGVkX2ZpbGVzX2Zvcl92ZXJzaW9uKCdtYWMtc25vd2xlb3BhcmQnLAog
ICAgICAgICAgICAgWycvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBw
ZWQnLCAnL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkJ10pCiAgICAgICAgIHNlbGYu
YXNzZXJ0X3NraXBwZWRfZmlsZXNfZm9yX3ZlcnNpb24oJ21hYy1sZW9wYXJkJywKQEAgLTc4LDEx
ICs3MCwzMyBAQCBzdmcvYmF0aWsvdGV4dC9zbWFsbEZvbnRzLnN2ZwogICAgIF0KIAogICAgIGRl
ZiB0ZXN0X3Rlc3RzX2Zyb21fc2tpcHBlZF9maWxlX2NvbnRlbnRzKHNlbGYpOgotICAgICAgICBw
b3J0ID0gc2VsZi5tYWtlX3BvcnQoKQotICAgICAgICBpZiBub3QgcG9ydDoKLSAgICAgICAgICAg
IHJldHVybgorICAgICAgICBwb3J0ID0gbWFjLk1hY1BvcnQoKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHBvcnQuX3Rlc3RzX2Zyb21fc2tpcHBlZF9maWxlX2NvbnRlbnRzKHNlbGYuZXhhbXBs
ZV9za2lwcGVkX2ZpbGUpLCBzZWxmLmV4YW1wbGVfc2tpcHBlZF90ZXN0cykKIAorICAgIGRlZiBh
c3NlcnRfbmFtZShzZWxmLCBwb3J0X25hbWUsIG9zX3ZlcnNpb25fc3RyaW5nLCBleHBlY3RlZCk6
CisgICAgICAgIHBvcnQgPSBtYWMuTWFjUG9ydChwb3J0X25hbWU9cG9ydF9uYW1lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3NfdmVyc2lvbl9zdHJpbmc9b3NfdmVyc2lvbl9zdHJpbmcp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkLCBwb3J0Lm5hbWUoKSkKKworICAg
IGRlZiB0ZXN0X3ZlcnNpb25zKHNlbGYpOgorICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQo
KQorICAgICAgICBpZiBwb3J0OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQudmVy
c2lvbigpIGluICgnLWxlb3BhcmQnLCAnLXNub3dsZW9wYXJkJykpCisgICAgICAgICAgICBzZWxm
LmFzc2VydFRydWUocG9ydC5uYW1lKCkgaW4gKCdtYWMtbGVvcGFyZCcsICdtYWMtc25vd2xlb3Bh
cmQnKSkKKworICAgICAgICBzZWxmLmFzc2VydF9uYW1lKE5vbmUsICcxMC41LjMnLCAnbWFjLWxl
b3BhcmQnKQorICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdtYWMnLCAnMTAuNS4zJywgJ21hYy1s
ZW9wYXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnbWFjLWxlb3BhcmQnLCAnMTAuNS4z
JywgJ21hYy1sZW9wYXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnbWFjLWxlb3BhcmQn
LCAnMTAuNi4zJywgJ21hYy1sZW9wYXJkJykKKworICAgICAgICBzZWxmLmFzc2VydF9uYW1lKE5v
bmUsICcxMC42LjMnLCAnbWFjLXNub3dsZW9wYXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFt
ZSgnbWFjJywgJzEwLjYuMycsICdtYWMtc25vd2xlb3BhcmQnKQorICAgICAgICBzZWxmLmFzc2Vy
dF9uYW1lKCdtYWMtc25vd2xlb3BhcmQnLCAnMTAuNS4zJywgJ21hYy1zbm93bGVvcGFyZCcpCisg
ICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ21hYy1zbm93bGVvcGFyZCcsICcxMC42LjMnLCAnbWFj
LXNub3dsZW9wYXJkJykKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgc2Vs
Zi5hc3NlcnRfbmFtZSwgTm9uZSwgJzEwLjcuMScsICdtYWMtbGVvcGFyZCcpCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBzZWxmLmFzc2VydF9uYW1lLCBOb25lLCAnMTAuMy4x
JywgJ21hYy1sZW9wYXJkJykKKwogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHVu
aXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CmluZGV4IDQxNDZkNDA4YTE1YTY3ODk1YWE4
MWRmOTcyYmU3NGIwM2E2NWMzNTguLmNhNTIzODVjYjZkYzk0YjZmZWNmZjYwNTkxOGVkYWJiMzg0
YmZmMDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvcG9ydF90ZXN0Y2FzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkKQEAgLTI4LDYgKzI4LDcgQEAKIAogIiIiVW5pdCB0
ZXN0aW5nIGJhc2UgY2xhc3MgZm9yIFBvcnQgaW1wbGVtZW50YXRpb25zLiIiIgogCitpbXBvcnQg
c3lzCiBpbXBvcnQgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS50b29sIGltcG9ydCBtb2NrdG9v
bApAQCAtNDAsMTAgKzQxLDIzIEBAIG1vY2tfb3B0aW9ucyA9IG1vY2t0b29sLk1vY2tPcHRpb25z
KHJlc3VsdHNfZGlyZWN0b3J5PSdsYXlvdXQtdGVzdC1yZXN1bHRzJywKIAogY2xhc3MgUG9ydFRl
c3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAiIiJUZXN0cyB0aGUgV2ViS2l0IHBvcnQg
aW1wbGVtZW50YXRpb24uIiIiCi0gICAgZGVmIG1ha2VfcG9ydChzZWxmLCBvcHRpb25zPW1vY2tf
b3B0aW9ucyk6Ci0gICAgICAgICIiIk92ZXJyaWRlIGluIHN1YmNsYXNzLiIiIgorICAgIGRlZiBw
b3J0X21ha2VyKHNlbGYsIHBsYXRmb3JtKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgdG8gcmV0dXJu
IHRoZSBjbGFzcyBvYmplY3Qgb2YgdGhlIHBvcnQgdG8gYmUgdGVzdGVkLAorICAgICAgICBvciBO
b25lIGlmIGEgdmFsaWQgcG9ydCBvYmplY3QgY2Fubm90IGJlIGNvbnN0cnVjdGVkIG9uIHRoZSBz
cGVjaWZpZWQKKyAgICAgICAgcGxhdGZvcm0uIiIiCiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVu
dGVkRXJyb3IoKQogCisgICAgZGVmIG1ha2VfcG9ydChzZWxmLCBvcHRpb25zPW1vY2tfb3B0aW9u
cyk6CisgICAgICAgICIiIlRoaXMgcm91dGluZSBzaG91bGQgYmUgdXNlZCBmb3IgdGVzdHMgdGhh
dCBzaG91bGQgb25seSBiZSBydW4KKyAgICAgICAgd2hlbiB3ZSBjYW4gY3JlYXRlIGEgZnVsbCwg
dmFsaWQgcG9ydCBvYmplY3QuIiIiCisgICAgICAgIG1ha2VyID0gc2VsZi5wb3J0X21ha2VyKHN5
cy5wbGF0Zm9ybSkKKyAgICAgICAgaWYgbm90IG1ha2VyOgorICAgICAgICAgICAgcmV0dXJuIE5v
bmUKKworICAgICAgICBwb3J0ID0gbWFrZXIob3B0aW9ucz1tb2NrX29wdGlvbnMpCisgICAgICAg
IHBvcnQuX29wdGlvbnMucmVzdWx0c19kaXJlY3RvcnkgPSBwb3J0LnJlc3VsdHNfZGlyZWN0b3J5
KCkKKyAgICAgICAgcmV0dXJuIHBvcnQKKwogICAgIGRlZiB0ZXN0X2RyaXZlcl9jbWRfbGluZShz
ZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKICAgICAgICAgaWYgbm90IHBv
cnQ6CkBAIC0xMDAsMyArMTE0LDkgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgaWYgbm90IHBvcnQ6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGxlbihwb3J0LmFsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKCkpID4gMCkK
KworICAgIGRlZiB0ZXN0X2Jhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgorICAgICAgICBwb3J0
ID0gc2VsZi5tYWtlX3BvcnQoKQorICAgICAgICBpZiBub3QgcG9ydDoKKyAgICAgICAgICAgIHJl
dHVybgorICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5iYXNlbGluZV9wYXRoKCkgaW4gcG9y
dC5iYXNlbGluZV9zZWFyY2hfcGF0aCgpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82227</attachid>
            <date>2011-02-11 20:04:04 -0800</date>
            <delta_ts>2011-02-14 10:54:35 -0800</delta_ts>
            <desc>update w/ feedback from aroben, mihaip - remove the leading dash from port.version()</desc>
            <filename>bug-54248-20110211200403.patch</filename>
            <type>text/plain</type>
            <size>39194</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgxNTkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyNTYxNjE1Y2VjN2Y5NmZjNDI1MThkYTg0NTY5ZWJiZjg3
MDRhNTVmLi44ZGQwNzFlNWYzMzEyNjUyOWMwZWVkNThmYTE2NjE2ZWNkZTEwM2Q4IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMg
QEAKKzIwMTEtMDItMTAgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4gdXAgdGhl
IHdheSB3ZSBoYW5kbGUgcGxhdGZvcm0gbmFtZXMgaW4KKyAgICAgICAgbmV3LXJ1bi13ZWJraXQt
dGVzdHMuIFByZXZpb3VzbHksIGlmIHlvdSBzcGVjaWZpZWQKKyAgICAgICAgJy0tcGxhdGZvcm0g
bWFjJyBvciAnLS1wbGF0Zm9ybSBjaHJvbWl1bS1tYWMnIG9uIHRoZSBjb21tYW5kCisgICAgICAg
IGxpbmUsIGl0IHdvdWxkIHVzZSB0aGF0IHBsYXRmb3JtIG5hbWUgdG8gZGV0ZXJtaW5lIGJhc2Vs
aW5lIHNlYXJjaAorICAgICAgICBwYXRocywgZXRjLiBUaGlzIGlzIGFsbW9zdCBuZXZlciB0aGUg
cmlnaHQgdGhpbmcgdG8gZG8sIGJlY2F1c2UKKyAgICAgICAgaXQgaWdub3JlcyB0aGUgZXhpc3Rl
bmNlIG9mIHZlcnNpb24tc3BlY2lmaWMgYmFzZWxpbmVzLgorICAgICAgICAKKyAgICAgICAgU28s
IEkgY2hhbmdlZCB0aGlzIHNvIHRoYXQgcG9ydHMgdGhhdCBzdXBwb3J0IHZlcnNpb25zIG11c3QK
KyAgICAgICAgYWx3YXlzIHVzZSBhIHZlcnNpb24sIGFuZCB0aGUgdmVyc2lvbiBzaG91bGQgZGVm
YXVsdCB0byB0aGUKKyAgICAgICAgdmVyc2lvbiBvZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSB0aGF0
IHRoZSBwb3J0IGlzIGJlaW5nIHJ1biBvbgorICAgICAgICAoZS5nLiwgaWYgeW91J3JlIHJ1bm5p
bmcgb24gTGVvcGFyZCwgdGhlbiBwYXNzaW5nICctLXBsYXRmb3JtCisgICAgICAgIG1hYycgd2ls
bCBkZWZhdWx0IHRvIHRoZSAnbWFjLWxlb3BhcmQnIHBvcnQpLiBUaGlzIG1lYW5zIHRoYXQKKyAg
ICAgICAgcG9ydC5uYW1lKCkgc2hvdWxkIGFsd2F5cyBpbmNsdWRlIGEgdmVyc2lvbi1zcGVjaWZp
YyBzdWZmaXggaWYKKyAgICAgICAgdGhlIHBvcnQgc3VwcG9ydHMgdmVyc2lvbnMuCisKKyAgICAg
ICAgSG93ZXZlciwgd2Ugc3RpbGwgc3VwcG9ydCB0aGluZ3MgbGlrZSAnLS1wbGF0Zm9ybSBtYWMn
IGFzIGlucHV0CisgICAgICAgIHNvIHRoYXQgdGhlIHVzZXIgZG9lc24ndCBoYXZlIHRvIGV4cGxp
Y2l0bHkgc3BlY2lmeSBhIHZlcnNpb24sCisgICAgICAgIGJvdGggZm9yIGNvbnZlbmllbmNlIGFu
ZCBzbyB3ZSBkb24ndCBoYXZlIHRvIG1ha2UgYnVpbGRib3QKKyAgICAgICAgY29uZmlncyBtb3Jl
IGNvbXBsaWNhdGVkIHRoYW4gdGhleSBhbHJlYWR5IGFyZS4KKworICAgICAgICBBbHNvLCBJIGNs
ZWFuZWQgdXAgaG93IHRoZSBiYXNlbGluZXMgd2VyZSBiZWluZyBzZWFyY2hlZAorICAgICAgICBv
biB0aGUgY2hyb21pdW0tbWFjIHBvcnQgKHRoaXMgaXMgb25lIG9mIHRoZSB0d28gYnVncyB0aGF0
CisgICAgICAgIHByb21wdGVkIHRoaXMgcmVmYWN0b3JpbmcpLCBhbmQgbWFkZSB0aGUgbG9naWMg
ZWFzaWVyIHRvIGZvbGxvdworICAgICAgICBhbmQgbW9yZSBjb25zaXN0ZW50IGFjcm9zcyB0aGUg
bWFjIGFuZCBjaHJvbWl1bSBwb3J0cworICAgICAgICAKKyAgICAgICAgTGFzdGx5LCBJIGFkZGVk
IGEgcG9ydC5nZXRfYWxsX25hbWVzKCkgbWV0aG9kIHRoYXQgY291bGQgYmUgdXNlZAorICAgICAg
ICB0byBnZXQgdGhlIG5hbWVzIG9mIGFsbCBvZiB0aGUgcG9ydHMgdG8gc2VhcmNoLCByYXRoZXIg
dGhhbiBoYXZpbmcKKyAgICAgICAgdG8gZ3Vlc3MgKGluY29ycmVjdGx5KSBmcm9tIHRoZSBsaXN0
IG9mIGRpcmVjdG9yaWVzIHVuZGVyCisgICAgICAgIExheW91dFRlc3RzL3BsYXRmb3JtICh0aGlz
IGxhc3QgdGhpbmcgd2FzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZQorICAgICAgICBkZWR1cGxpY2F0
ZV90ZXN0cyB1bml0dGVzdCBicm9rZSBhcyB0aGUgZmFsbGJhY2sgZGlycyBjaGFuZ2VkKS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQyNDgKKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3Rz
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9y
eS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3Rv
cnlfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV9ncHVfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVz
dC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtX3dpbi5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX3dpbl91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L21hYy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHk6CisKIDIwMTEtMDItMDkgIERpcmsg
UHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9u
eSBDaGFuZy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2RlZHVwbGljYXRlX3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvZGVkdXBsaWNhdGVfdGVzdHMucHkKaW5kZXggODY2NDliNmVhYWViNTBkNTRlMDY5MjQwNGI3
YmNkMjQ1NzA0ZWJhNS4uNmUxNjFmY2JkZjBkZGVjYWEyYjJlMGFjZGQ1NGJjYmFiYjQwZjFlYSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNh
dGVfdGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVk
dXBsaWNhdGVfdGVzdHMucHkKQEAgLTU1LDkgKzU1LDcgQEAgZGVmIHBvcnRfZmFsbGJhY2tzKCk6
CiAgICAgICAgIGJhY2sgb24uICBBbGwgcGxhdGZvcm1zIGZhbGwgYmFjayBvbiAnYmFzZScuCiAg
ICAgIiIiCiAgICAgZmFsbGJhY2tzID0ge19CQVNFX1BMQVRGT1JNOiBbXX0KLSAgICBwbGF0Zm9y
bV9kaXIgPSBvcy5wYXRoLmpvaW4oc2NtLmZpbmRfY2hlY2tvdXRfcm9vdCgpLCAnTGF5b3V0VGVz
dHMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm0nKQotICAgIGZv
ciBwb3J0X25hbWUgaW4gb3MubGlzdGRpcihwbGF0Zm9ybV9kaXIpOgorICAgIGZvciBwb3J0X25h
bWUgaW4gcG9ydF9mYWN0b3J5LmFsbF9wb3J0X25hbWVzKCk6CiAgICAgICAgIHRyeToKICAgICAg
ICAgICAgIHBsYXRmb3JtcyA9IHBvcnRfZmFjdG9yeS5nZXQocG9ydF9uYW1lKS5iYXNlbGluZV9z
ZWFyY2hfcGF0aCgpCiAgICAgICAgIGV4Y2VwdCBOb3RJbXBsZW1lbnRlZEVycm9yOgpAQCAtNjcs
NiArNjUsNyBAQCBkZWYgcG9ydF9mYWxsYmFja3MoKToKICAgICAgICAgICAgIGNvbnRpbnVlCiAg
ICAgICAgIGZhbGxiYWNrc1twb3J0X25hbWVdID0gW29zLnBhdGguYmFzZW5hbWUocCkgZm9yIHAg
aW4gcGxhdGZvcm1zXVsxOl0KICAgICAgICAgZmFsbGJhY2tzW3BvcnRfbmFtZV0uYXBwZW5kKF9C
QVNFX1BMQVRGT1JNKQorCiAgICAgcmV0dXJuIGZhbGxiYWNrcwogCiAKQEAgLTE5OSw2ICsxOTgs
OCBAQCBkZWYgZmluZF9kdXBzKGhhc2hlcywgcG9ydF9mYWxsYmFja3MsIHJlbGF0aXZlX3RvKToK
IAogICAgICAgICAjIFNlZSBpZiBhbnkgb2YgdGhlIHBsYXRmb3JtcyBhcmUgcmVkdW5kYW50IHdp
dGggZWFjaCBvdGhlci4KICAgICAgICAgZm9yIHBsYXRmb3JtIGluIHBsYXRmb3Jtcy5rZXlzKCk6
CisgICAgICAgICAgICBpZiBwbGF0Zm9ybSBub3QgaW4gcG9ydF9mYWN0b3J5LmFsbF9wb3J0X25h
bWVzKCk6CisgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGZvciBmYWxsYmFj
ayBpbiBwb3J0X2ZhbGxiYWNrc1twbGF0Zm9ybV06CiAgICAgICAgICAgICAgICAgaWYgZmFsbGJh
Y2sgbm90IGluIHBsYXRmb3Jtcy5rZXlzKCk6CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRf
cGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CmluZGV4IDQ5NDM5
NWFjNjc2NWQ3ZmNiYjc3MDQwYmI3ODgzYTQ4N2QyMmRlNmMuLmZkMzA2ZmFlMDFiMzhiZTQ0ZWU5
YjE2NGNkYTlmOThlN2RiNjdhYmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhw
ZWN0YXRpb25zLnB5CkBAIC0yNDIsMTAgKzI0Miw2IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnNG
aWxlOgogICAgIFNLSVA6IERvZXNuJ3QgcnVuIHRoZSB0ZXN0LgogICAgIFNMT1c6IFRoZSB0ZXN0
IHRha2VzIGEgbG9uZyB0aW1lIHRvIHJ1biwgYnV0IGRvZXMgbm90IHRpbWVvdXQgaW5kZWZpbml0
ZWx5LgogICAgIFdPTlRGSVg6IEZvciB0ZXN0cyB0aGF0IHdlIG5ldmVyIGludGVuZCB0byBwYXNz
IG9uIGEgZ2l2ZW4gcGxhdGZvcm0uCi0gICAgREVCVUc6IEV4cGVjdGF0aW9ucyBhcHBseSBvbmx5
IHRvIHRoZSBkZWJ1ZyBidWlsZC4KLSAgICBSRUxFQVNFOiBFeHBlY3RhdGlvbnMgYXBwbHkgb25s
eSB0byByZWxlYXNlIGJ1aWxkLgotICAgIExJTlVYL1dJTi9XSU4tWFAvV0lOLVZJU1RBL1dJTi03
L01BQzogRXhwZWN0YXRpb25zIGFwcGx5IG9ubHkgdG8gdGhlc2UKLSAgICAgICAgcGxhdGZvcm1z
LgogCiAgICAgTm90ZXM6CiAgICAgICAtQSB0ZXN0IGNhbm5vdCBiZSBib3RoIFNMT1cgYW5kIFRJ
TUVPVVQKQEAgLTQ5OCw3ICs0OTQsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zRmlsZToKICAg
ICAgICAgICAgICAgICAgICAgIyBvcHRpb24uCiAgICAgICAgICAgICAgICAgICAgICMgVE9ETyh2
aWN0b3J3KTogUmVtb3ZlIFdJTi1WSVNUQSBhbmQgV0lOLTcgb25jZSB3ZSBoYXZlCiAgICAgICAg
ICAgICAgICAgICAgICMgcmVsaWFibGUgV2luIDcgYW5kIFdpbiBWaXN0YSBidWlsZGJvdHMgc2V0
dXAuCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBwIGluIChwbGF0Zm9ybS51cHBlcigpLCAn
V0lOLVZJU1RBJywgJ1dJTi03Jyk6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBwIGluIChw
bGF0Zm9ybS51cHBlcigpLCAnV0lOLVZJU1RBJywgJ1dJTi1XSU43Jyk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBuZXdfb3B0aW9ucyA9IHBhcnRzWzBdICsgcCArICcgJwogICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3X2xpbmUgPSAoJyVzOiVzJyAlIChuZXdfb3B0aW9ucywgcGFydHNbMV0p
KQogICAgICAgICAgICAgICAgICAgICAgICAgZl9uZXcuYXBwZW5kKG5ld19saW5lKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CmluZGV4IGUz
ZDVmOGU5YTQ1OGYxOWQxOTMwNjY4MTEzNzEwOWM4ZGNlNzRmZmUuLmQ5NTNkMTdmMmUyZDk4NDM3
YzUyZjg0NDdmYmUzNzNjMzBlYmEwMWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTY0NSw3ICs2NDUsNyBAQCBjbGFzcyBQb3J0
KG9iamVjdCk6CiAKICAgICBkZWYgdmVyc2lvbihzZWxmKToKICAgICAgICAgIiIiUmV0dXJucyBh
IHN0cmluZyBpbmRpY2F0aW5nIHRoZSB2ZXJzaW9uIG9mIGEgZ2l2ZW4gcGxhdGZvcm0sIGUuZy4K
LSAgICAgICAgJy1sZW9wYXJkJyBvciAnLXhwJy4KKyAgICAgICAgJ2xlb3BhcmQnIG9yICd4cCcu
CiAKICAgICAgICAgVGhpcyBpcyB1c2VkIHRvIGhlbHAgaWRlbnRpZnkgdGhlIGV4YWN0IHBvcnQg
d2hlbiBwYXJzaW5nIHRlc3QKICAgICAgICAgZXhwZWN0YXRpb25zLCBkZXRlcm1pbmluZyBzZWFy
Y2ggcGF0aHMsIGFuZCBsb2dnaW5nIGluZm9ybWF0aW9uLiIiIgpAQCAtOTMwLDEyICs5MzAsMTEg
QEAgY2xhc3MgVGVzdENvbmZpZ3VyYXRpb24ob2JqZWN0KToKICAgICAgICAgIyBGSVhNRTogV2Ug
Y2FuIGdldCB0aGUgTy9TIGFuZCB2ZXJzaW9uIGZyb20gdGVzdF9wbGF0Zm9ybV9uYW1lKCkKICAg
ICAgICAgIyBhbmQgdmVyc2lvbigpIGZvciBub3csIGJ1dCB0aG9zZSBzaG91bGQgZ28gYXdheSBh
bmQgYmUgY2xlYW5lZCB1cAogICAgICAgICAjIHdpdGggbW9yZSBnZW5lcmljIG1ldGhvZHMgbGlr
ZSBvcGVyYXRpb25fc3lzdGVtKCkgYW5kIG9zX3ZlcnNpb24oKQotICAgICAgICAjIG9yIHNvbWV0
aGluZy4gTm90ZSB0aGF0IHdlIG5lZWQgdG8gc3RyaXAgdGhlIGxlYWRpbmcgJy0nIG9mZiB0aGUK
LSAgICAgICAgIyB2ZXJzaW9uIHN0cmluZyBpZiBpdCBpcyBwcmVzZW50LgorICAgICAgICAjIG9y
IHNvbWV0aGluZy4KICAgICAgICAgaWYgcG9ydDoKICAgICAgICAgICAgIHBvcnRfdmVyc2lvbiA9
IHBvcnQudmVyc2lvbigpCi0gICAgICAgIHNlbGYub3MgPSBvcyBvciBwb3J0LnRlc3RfcGxhdGZv
cm1fbmFtZSgpLnJlcGxhY2UocG9ydF92ZXJzaW9uLCAnJykKLSAgICAgICAgc2VsZi52ZXJzaW9u
ID0gdmVyc2lvbiBvciBwb3J0X3ZlcnNpb25bMTpdCisgICAgICAgIHNlbGYub3MgPSBvcyBvciBw
b3J0LnRlc3RfcGxhdGZvcm1fbmFtZSgpLnJlcGxhY2UoJy0nICsgcG9ydF92ZXJzaW9uLCAnJykK
KyAgICAgICAgc2VsZi52ZXJzaW9uID0gdmVyc2lvbiBvciBwb3J0X3ZlcnNpb24KICAgICAgICAg
c2VsZi5hcmNoaXRlY3R1cmUgPSBhcmNoaXRlY3R1cmUgb3IgJ3g4NicKICAgICAgICAgc2VsZi5i
dWlsZF90eXBlID0gYnVpbGRfdHlwZSBvciBwb3J0Ll9vcHRpb25zLmNvbmZpZ3VyYXRpb24ubG93
ZXIoKQogICAgICAgICBzZWxmLmdyYXBoaWNzX3R5cGUgPSBncmFwaGljc190eXBlIG9yIHBvcnQu
Z3JhcGhpY3NfdHlwZSgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1X3VuaXR0ZXN0LnB5CmluZGV4IDk2
OTYyZWNhMzA4Y2Q3ZDI5MDU0MjI1NmYzZGQ3ZDJhYzMyNzRiN2IuLmI3MmIxZTYxMTgwZTk0MDlj
OWU0YjI3MjIxOWNmYzNiYzE4MGMzNzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1X3VuaXR0ZXN0
LnB5CkBAIC02Niw4ICs2Niw3IEBAIGNsYXNzIENocm9taXVtR3B1VGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kZWZhdWx0X2NoaWxkX3Byb2Nl
c3NlcygpLCAxKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuX29wdGlvbnMuYnVpbGRl
cl9uYW1lLCAnZm9vIC0gR1BVJykKIAotICAgICAgICAjIFdlIGRvbid0IHN1cHBvcnQgcGxhdGZv
cm0tc3BlY2lmaWMgdmVyc2lvbnMgb2YgdGhlIEdQVSBwb3J0IHlldC4KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwb3J0Lm5hbWUoKSwgcG9ydF9uYW1lKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUocG9ydC5uYW1lKCkuc3RhcnRzd2l0aChwb3J0X25hbWUpKQogCiAgICAgICAgICMgdGVzdCB0
aGF0IGl0IGhhcyB0aGUgcmlnaHQgZGlyZWN0b3JpZXMgaW4gZnJvbnQgb2YgdGhlIHNlYXJjaCBw
YXRoLgogICAgICAgICBwYXRocyA9IHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9t
YWMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
X21hYy5weQppbmRleCAxNzg2MmEyNTc3MTgzOTkxMzQzMzc2ODVmMWM0M2Q5OTZmM2FiYWFiLi4x
MjVhZGE1MGFkMjU4OTkxODQzZmEzMjMyMmJkOWYwYmViOGU5Zjk2IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5w
eQpAQCAtMzEsMTAgKzMxLDEwIEBACiAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKLWltcG9y
dCBwbGF0Zm9ybQogaW1wb3J0IHNpZ25hbAogCi1pbXBvcnQgY2hyb21pdW0KK2Zyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IG1hYworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMucG9ydCBpbXBvcnQgY2hyb21pdW0KIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4
ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlCiAKQEAgLTQzLDIwICs0MywzMSBAQCBfbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoIndlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmNocm9taXVtX21hYyIp
CiAKIGNsYXNzIENocm9taXVtTWFjUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICIi
IkNocm9taXVtIE1hYyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUG9ydCBjbGFzcy4iIiIKKyAgICBT
VVBQT1JURURfT1NfVkVSU0lPTlMgPSAoJ2xlb3BhcmQnLCAnc25vd2xlb3BhcmQnKQorCisgICAg
RkFMTEJBQ0tfUEFUSFMgPSB7CisgICAgICAgICdsZW9wYXJkJzogWydjaHJvbWl1bS1tYWMtbGVv
cGFyZCcsICdjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQnLCAnY2hyb21pdW0tbWFjJywgJ2Nocm9t
aXVtJywKKyAgICAgICAgICAgICAgICAgICAgJ21hYy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFy
ZCcsICdtYWMnXSwKKyAgICAgICAgJ3Nub3dsZW9wYXJkJzogWydjaHJvbWl1bS1tYWMtc25vd2xl
b3BhcmQnLCAnY2hyb21pdW0tbWFjJywgJ2Nocm9taXVtJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10sCisgICAgfQorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHBvcnRfbmFtZT1Ob25lLCBvc192ZXJzaW9uX3N0cmluZz1Ob25lLCAqKmt3YXJncyk6
CisgICAgICAgICMgV2UncmUgYSBsaXR0bGUgZ2VuZXJpYyBoZXJlIGJlY2F1c2UgdGhpcyBjb2Rl
IGlzIHJldXNlZCBieSB0aGUKKyAgICAgICAgIyAnZ29vZ2xlLWNocm9tZScgcG9ydCBhcyB3ZWxs
IGFzIHRoZSAnbW9jay0nIGFuZCAnZHJ5cnVuLScgcG9ydHMuCisgICAgICAgIHBvcnRfbmFtZSA9
IHBvcnRfbmFtZSBvciAnY2hyb21pdW0tbWFjJworCisgICAgICAgIGlmIHBvcnRfbmFtZS5lbmRz
d2l0aCgnLW1hYycpOgorICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IG1hYy5vc192ZXJzaW9u
KG9zX3ZlcnNpb25fc3RyaW5nLCBzZWxmLlNVUFBPUlRFRF9PU19WRVJTSU9OUykKKyAgICAgICAg
ICAgIHBvcnRfbmFtZSA9IHBvcnRfbmFtZSArICctJyArIHNlbGYuX3ZlcnNpb24KKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBwb3J0X25hbWVbcG9ydF9uYW1lLmlu
ZGV4KCctbWFjLScpICsgNTpdCisgICAgICAgICAgICBhc3NlcnQgc2VsZi5fdmVyc2lvbiBpbiBz
ZWxmLlNVUFBPUlRFRF9PU19WRVJTSU9OUwogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dh
cmdzKToKLSAgICAgICAga3dhcmdzLnNldGRlZmF1bHQoJ3BvcnRfbmFtZScsICdjaHJvbWl1bS1t
YWMnKQotICAgICAgICBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuX19pbml0X18oc2VsZiwgKiprd2Fy
Z3MpCisgICAgICAgIGNocm9taXVtLkNocm9taXVtUG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25h
bWU9cG9ydF9uYW1lLCAqKmt3YXJncykKIAogICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChz
ZWxmKToKLSAgICAgICAgcG9ydF9uYW1lcyA9IFsKLSAgICAgICAgICAgICJjaHJvbWl1bS1tYWMi
ICsgc2VsZi52ZXJzaW9uKCksCi0gICAgICAgICAgICAiY2hyb21pdW0tbWFjIiwKLSAgICAgICAg
ICAgICJjaHJvbWl1bSIsCi0gICAgICAgICAgICAibWFjIiArIHNlbGYudmVyc2lvbigpLAotICAg
ICAgICAgICAgIm1hYyIsCi0gICAgICAgIF0KLSAgICAgICAgcmV0dXJuIG1hcChzZWxmLl93ZWJr
aXRfYmFzZWxpbmVfcGF0aCwgcG9ydF9uYW1lcykKKyAgICAgICAgcmV0dXJuIG1hcChzZWxmLl93
ZWJraXRfYmFzZWxpbmVfcGF0aCwgc2VsZi5GQUxMQkFDS19QQVRIU1tzZWxmLl92ZXJzaW9uXSkK
IAogICAgIGRlZiBjaGVja19idWlsZChzZWxmLCBuZWVkc19odHRwKToKICAgICAgICAgcmVzdWx0
ID0gY2hyb21pdW0uQ2hyb21pdW1Qb3J0LmNoZWNrX2J1aWxkKHNlbGYsIG5lZWRzX2h0dHApCkBA
IC04NSwyMCArOTYsMTIgQEAgY2xhc3MgQ2hyb21pdW1NYWNQb3J0KGNocm9taXVtLkNocm9taXVt
UG9ydCk6CiAKICAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgogICAgICAgICAjIFdl
IHVzZSAnbWFjJyBpbnN0ZWFkIG9mICdjaHJvbWl1bS1tYWMnCisKKyAgICAgICAgIyBGSVhNRTog
R2V0IHJpZCBvZiB0aGlzIG1ldGhvZCBhZnRlciByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90
ZXN0cyBkaWVzLgogICAgICAgICByZXR1cm4gJ21hYycKIAogICAgIGRlZiB2ZXJzaW9uKHNlbGYp
OgotICAgICAgICAjIEZJWE1FOiBJdCdzIHN0cmFuZ2UgdGhhdCB0aGlzIHN0cmluZyBpcyAtdmVy
c2lvbiwgbm90IGp1c3QgdmVyc2lvbi4KLSAgICAgICAgb3NfdmVyc2lvbl9zdHJpbmcgPSBwbGF0
Zm9ybS5tYWNfdmVyKClbMF0gICMgZS5nLiAiMTAuNS42IgotICAgICAgICBpZiBub3Qgb3NfdmVy
c2lvbl9zdHJpbmc6Ci0gICAgICAgICAgICByZXR1cm4gJy1sZW9wYXJkJwotICAgICAgICByZWxl
YXNlX3ZlcnNpb24gPSBpbnQob3NfdmVyc2lvbl9zdHJpbmcuc3BsaXQoJy4nKVsxXSkKLSAgICAg
ICAgIyB3ZSBkb24ndCBzdXBwb3J0ICd0aWdlcicgb3IgZWFybGllciByZWxlYXNlcwotICAgICAg
ICBpZiByZWxlYXNlX3ZlcnNpb24gPT0gNToKLSAgICAgICAgICAgIHJldHVybiAnLWxlb3BhcmQn
Ci0gICAgICAgIGVsaWYgcmVsZWFzZV92ZXJzaW9uID09IDY6Ci0gICAgICAgICAgICByZXR1cm4g
Jy1zbm93bGVvcGFyZCcKLSAgICAgICAgcmV0dXJuICcnCisgICAgICAgIHJldHVybiBzZWxmLl92
ZXJzaW9uCiAKICAgICAjCiAgICAgIyBQUk9URUNURUQgTUVUSE9EUwpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
X21hY191bml0dGVzdC5weQppbmRleCBkNjNmYWEwMGI5NmQ3N2Y1NDE1M2Q4OGJhOTljNzA2NjNh
YmU5NWVlLi40Y2FiMmYwODAwYzg5ZWM4NTM3NGJhYjA1ZTIwY2QyYWM1MmIxYTg1IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21h
Y191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtX21hY191bml0dGVzdC5weQpAQCAtMjYsMTUgKzI2LDQ4IEBACiAjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgY2hyb21pdW1fbWFjCiBpbXBvcnQgdW5p
dHRlc3QKIAogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5Lm1vY2sgaW1wb3J0IE1vY2sKIAorZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgY2hyb21pdW1fbWFjCitmcm9tIHdl
YmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBwb3J0X3Rlc3RjYXNlCiAKLWNsYXNzIENo
cm9taXVtTWFjUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCitjbGFzcyBDaHJvbWl1bU1h
Y1BvcnRUZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKKyAgICBkZWYgcG9ydF9tYWtl
cihzZWxmLCBwbGF0Zm9ybSk6CisgICAgICAgIGlmIHBsYXRmb3JtICE9ICdkYXJ3aW4nOgorICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIGNocm9taXVtX21hYy5DaHJvbWl1
bU1hY1BvcnQKIAogICAgIGRlZiB0ZXN0X2NoZWNrX3dkaWZmX2luc3RhbGwoc2VsZik6CiAgICAg
ICAgIHBvcnQgPSBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KCkKKwogICAgICAgICAjIEN1
cnJlbnRseSBpcyBhbHdheXMgdHJ1ZSwganVzdCBsb2dzIGlmIG1pc3NpbmcuCiAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShwb3J0Ll9jaGVja193ZGlmZl9pbnN0YWxsKCkpCisKKyAgICBkZWYgYXNz
ZXJ0X25hbWUoc2VsZiwgcG9ydF9uYW1lLCBvc192ZXJzaW9uX3N0cmluZywgZXhwZWN0ZWQpOgor
ICAgICAgICBwb3J0ID0gY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9ydChwb3J0X25hbWU9cG9y
dF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvc192
ZXJzaW9uX3N0cmluZz1vc192ZXJzaW9uX3N0cmluZykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoZXhwZWN0ZWQsIHBvcnQubmFtZSgpKQorCisgICAgZGVmIHRlc3RfdmVyc2lvbnMoc2VsZik6
CisgICAgICAgIHBvcnQgPSBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KCkKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHBvcnQubmFtZSgpIGluICgnY2hyb21pdW0tbWFjLWxlb3BhcmQnLCAn
Y2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZShO
b25lLCAnMTAuNS4zJywgJ2Nocm9taXVtLW1hYy1sZW9wYXJkJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRfbmFtZSgnY2hyb21pdW0tbWFjJywgJzEwLjUuMycsICdjaHJvbWl1bS1tYWMtbGVvcGFyZCcp
CisgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLW1hYy1sZW9wYXJkJywgJzEwLjUu
MycsICdjaHJvbWl1bS1tYWMtbGVvcGFyZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2No
cm9taXVtLW1hYy1sZW9wYXJkJywgJzEwLjYuMycsICdjaHJvbWl1bS1tYWMtbGVvcGFyZCcpCisK
KyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZShOb25lLCAnMTAuNi4zJywgJ2Nocm9taXVtLW1hYy1z
bm93bGVvcGFyZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLW1hYycsICcx
MC42LjMnLCAnY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnRf
bmFtZSgnY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJywgJzEwLjUuMycsICdjaHJvbWl1bS1tYWMt
c25vd2xlb3BhcmQnKQorICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS1tYWMtc25v
d2xlb3BhcmQnLCAnMTAuNi4zJywgJ2Nocm9taXVtLW1hYy1zbm93bGVvcGFyZCcpCisKKyAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHNlbGYuYXNzZXJ0X25hbWUsIE5vbmUsICcx
MC43LjEnLCAnY2hyb21pdW0tbWFjLWxlb3BhcmQnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhBc3NlcnRpb25FcnJvciwgc2VsZi5hc3NlcnRfbmFtZSwgTm9uZSwgJzEwLjQuMScsICdjaHJv
bWl1bS1tYWMtbGVvcGFyZCcpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1
bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5CmluZGV4IGI4OWM4Y2MzMWUx
MjZjMTc1ZjYwNGIyZDEwMjAxMTRiMGZjYmRlN2EuLjY4MTVlNWQ5YTg3ZjlkYTI5M2ZlMGJlNTMz
YmJhNjNlZGE4MzBmMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weQpAQCAtOTAsNyArOTAs
NiBAQCBjbGFzcyBDaHJvbWl1bVBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBjbGFz
cyBUZXN0TWFjUG9ydChjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KToKICAgICAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgogICAgICAgICAgICAgY2hyb21pdW1fbWFjLkNocm9t
aXVtTWFjUG9ydC5fX2luaXRfXyhzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwb3J0X25hbWU9J3Rlc3QtcG9ydCcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9b3B0aW9ucykKIAog
ICAgICAgICBkZWYgZGVmYXVsdF9jb25maWd1cmF0aW9uKHNlbGYpOgpAQCAtMTAwLDcgKzk5LDYg
QEAgY2xhc3MgQ2hyb21pdW1Qb3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgY2xhc3Mg
VGVzdExpbnV4UG9ydChjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCk6CiAgICAgICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKICAgICAgICAgICAgIGNocm9taXVtX2xpbnV4
LkNocm9taXVtTGludXhQb3J0Ll9faW5pdF9fKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0X25hbWU9J3Rlc3QtcG9ydCcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRp
b25zPW9wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaWxlc3lzdGVtPWZpbGVzeXN0ZW1fbW9jay5Nb2NrRmlsZVN5c3RlbSgpKQog
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX3dpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fd2luLnB5CmluZGV4IDA5MWIyNzNmOTMzYmQ2ZjVmMzI1ZTE4ZWRjNTliMDNjNTI1
ZjIwZWQuLjY5M2NhNzAzYmJiMDgzMDExZDc5YThiNjA5ZGZiNzAwMjUzYzc4OGEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2lu
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fd2luLnB5CkBAIC0zNywxMiArMzcsNDcgQEAgaW1wb3J0IGNocm9taXVtCiBfbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoIndlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmNocm9taXVtX3dpbiIp
CiAKIAorZGVmIG9zX3ZlcnNpb24od2luZG93c192ZXJzaW9uPU5vbmUpOgorICAgIGlmIG5vdCB3
aW5kb3dzX3ZlcnNpb246CisgICAgICAgIGlmIGhhc2F0dHIoc3lzLCAnZ2V0d2luZG93c3ZlcnNp
b24nKToKKyAgICAgICAgICAgIHdpbmRvd3NfdmVyc2lvbiA9IHR1cGxlKHN5cy5nZXR3aW5kb3dz
dmVyc2lvbigpWzoyXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgTWFrZSB1cCBzb21l
dGhpbmcgZm9yIHRlc3RpbmcuCisgICAgICAgICAgICB3aW5kb3dzX3ZlcnNpb24gPSAoNSwgMSkK
KworICAgIHZlcnNpb25fc3RyaW5ncyA9IHsKKyAgICAgICAgKDYsIDEpOiAnd2luNycsCisgICAg
ICAgICg2LCAwKTogJ3Zpc3RhJywKKyAgICAgICAgKDUsIDEpOiAneHAnLAorICAgIH0KKyAgICBy
ZXR1cm4gdmVyc2lvbl9zdHJpbmdzW3dpbmRvd3NfdmVyc2lvbl0KKworCiBjbGFzcyBDaHJvbWl1
bVdpblBvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAiIiJDaHJvbWl1bSBXaW4gaW1w
bGVtZW50YXRpb24gb2YgdGhlIFBvcnQgY2xhc3MuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgKiprd2FyZ3MpOgotICAgICAgICBrd2FyZ3Muc2V0ZGVmYXVsdCgncG9ydF9uYW1lJywgJ2No
cm9taXVtLXdpbicgKyBzZWxmLnZlcnNpb24oKSkKLSAgICAgICAgY2hyb21pdW0uQ2hyb21pdW1Q
b3J0Ll9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQorICAgICMgRklYTUU6IEZpZ3VyZSBvdXQgaG93
IHRvIHVuaWZ5IHRoaXMgd2l0aCBiYXNlLlRlc3RDb25maWd1cmF0aW9uLmFsbF9zeXN0ZW1zKCk/
CisgICAgU1VQUE9SVEVEX1ZFUlNJT05TID0gKCd4cCcsICd2aXN0YScsICd3aW43JykKKworICAg
ICMgRklYTUU6IERvIHdlIG5lZWQgbWFjLXNub3dsZW9wYXJkIGhlcmUsIGxpa2UgdGhlIGJhc2Ug
d2luIHBvcnQ/CisgICAgRkFMTEJBQ0tfUEFUSFMgPSB7CisgICAgICAgICd4cCc6IFsnY2hyb21p
dW0td2luLXhwJywgJ2Nocm9taXVtLXdpbi12aXN0YScsICdjaHJvbWl1bS13aW4nLCAnY2hyb21p
dW0nLCAnd2luJywgJ21hYyddLAorICAgICAgICAndmlzdGEnOiBbJ2Nocm9taXVtLXdpbi12aXN0
YScsICdjaHJvbWl1bS13aW4nLCAnY2hyb21pdW0nLCAnd2luJywgJ21hYyddLAorICAgICAgICAn
d2luNyc6IFsnY2hyb21pdW0td2luJywgJ2Nocm9taXVtJywgJ3dpbicsICdtYWMnXSwKKyAgICB9
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsIHdpbmRvd3NfdmVyc2lv
bj1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICMgV2UncmUgYSBsaXR0bGUgZ2VuZXJpYyBoZXJl
IGJlY2F1c2UgdGhpcyBjb2RlIGlzIHJldXNlZCBieSB0aGUKKyAgICAgICAgIyAnZ29vZ2xlLWNo
cm9tZScgcG9ydCBhcyB3ZWxsIGFzIHRoZSAnbW9jay0nIGFuZCAnZHJ5cnVuLScgcG9ydHMuCisg
ICAgICAgIHBvcnRfbmFtZSA9IHBvcnRfbmFtZSBvciAnY2hyb21pdW0td2luJworCisgICAgICAg
IGlmIHBvcnRfbmFtZS5lbmRzd2l0aCgnLXdpbicpOgorICAgICAgICAgICAgc2VsZi5fdmVyc2lv
biA9IG9zX3ZlcnNpb24od2luZG93c192ZXJzaW9uKQorICAgICAgICAgICAgcG9ydF9uYW1lID0g
cG9ydF9uYW1lICsgJy0nICsgc2VsZi5fdmVyc2lvbgorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgc2VsZi5fdmVyc2lvbiA9IHBvcnRfbmFtZVtwb3J0X25hbWUuaW5kZXgoJy13aW4tJykgKyA1
Ol0KKyAgICAgICAgICAgIGFzc2VydCBzZWxmLl92ZXJzaW9uIGluIHNlbGYuU1VQUE9SVEVEX1ZF
UlNJT05TCisKKyAgICAgICAgY2hyb21pdW0uQ2hyb21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYsIHBv
cnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQogCiAgICAgZGVmIHNldHVwX2Vudmlyb25fZm9y
X3NlcnZlcihzZWxmKToKICAgICAgICAgZW52ID0gY2hyb21pdW0uQ2hyb21pdW1Qb3J0LnNldHVw
X2Vudmlyb25fZm9yX3NlcnZlcihzZWxmKQpAQCAtNjIsMTMgKzk3LDcgQEAgY2xhc3MgQ2hyb21p
dW1XaW5Qb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgIHJldHVybiBlbnYKIAog
ICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKLSAgICAgICAgcG9ydF9uYW1lcyA9
IFtdCi0gICAgICAgIGlmIHNlbGYuX25hbWUuZW5kc3dpdGgoJy13aW4teHAnKToKLSAgICAgICAg
ICAgIHBvcnRfbmFtZXMuYXBwZW5kKCJjaHJvbWl1bS13aW4teHAiKQotICAgICAgICBpZiBzZWxm
Ll9uYW1lLmVuZHN3aXRoKCctd2luLXhwJykgb3Igc2VsZi5fbmFtZS5lbmRzd2l0aCgnLXdpbi12
aXN0YScpOgotICAgICAgICAgICAgcG9ydF9uYW1lcy5hcHBlbmQoImNocm9taXVtLXdpbi12aXN0
YSIpCi0gICAgICAgICMgRklYTUU6IFRoaXMgbWF5IG5lZWQgdG8gaW5jbHVkZSBtYWMtc25vd2xl
b3BhcmQgbGlrZSB3aW4ucHkuCi0gICAgICAgIHBvcnRfbmFtZXMuZXh0ZW5kKFsiY2hyb21pdW0t
d2luIiwgImNocm9taXVtIiwgIndpbiIsICJtYWMiXSkKKyAgICAgICAgcG9ydF9uYW1lcyA9IHNl
bGYuRkFMTEJBQ0tfUEFUSFNbc2VsZi52ZXJzaW9uKCldCiAgICAgICAgIHJldHVybiBtYXAoc2Vs
Zi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgsIHBvcnRfbmFtZXMpCiAKICAgICBkZWYgY2hlY2tfYnVp
bGQoc2VsZiwgbmVlZHNfaHR0cCk6CkBAIC04NywxOSArMTE2LDEyIEBAIGNsYXNzIENocm9taXVt
V2luUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogCiAgICAgZGVmIHRlc3RfcGxhdGZvcm1f
bmFtZShzZWxmKToKICAgICAgICAgIyBXZSByZXR1cm4gJ3dpbi14cCcsIG5vdCAnY2hyb21pdW0t
d2luLXhwJyBoZXJlLCBmb3IgY29udmVuaWVuY2UuCi0gICAgICAgIHJldHVybiAnd2luJyArIHNl
bGYudmVyc2lvbigpCisKKyAgICAgICAgIyBGSVhNRTogR2V0IHJpZCBvZiB0aGlzIG1ldGhvZCBh
ZnRlciByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cyBkaWVzLgorICAgICAgICByZXR1
cm4gJ3dpbi0nICsgc2VsZi52ZXJzaW9uKCkKIAogICAgIGRlZiB2ZXJzaW9uKHNlbGYpOgotICAg
ICAgICBpZiBub3QgaGFzYXR0cihzeXMsICdnZXR3aW5kb3dzdmVyc2lvbicpOgotICAgICAgICAg
ICAgcmV0dXJuICcnCi0gICAgICAgIHdpbnZlciA9IHN5cy5nZXR3aW5kb3dzdmVyc2lvbigpCi0g
ICAgICAgIGlmIHdpbnZlclswXSA9PSA2IGFuZCAod2ludmVyWzFdID09IDEpOgotICAgICAgICAg
ICAgcmV0dXJuICctNycKLSAgICAgICAgaWYgd2ludmVyWzBdID09IDYgYW5kICh3aW52ZXJbMV0g
PT0gMCk6Ci0gICAgICAgICAgICByZXR1cm4gJy12aXN0YScKLSAgICAgICAgaWYgd2ludmVyWzBd
ID09IDUgYW5kICh3aW52ZXJbMV0gPT0gMSBvciB3aW52ZXJbMV0gPT0gMik6Ci0gICAgICAgICAg
ICByZXR1cm4gJy14cCcKLSAgICAgICAgcmV0dXJuICcnCisgICAgICAgIHJldHVybiBzZWxmLl92
ZXJzaW9uCiAKICAgICAjCiAgICAgIyBQUk9URUNURUQgUk9VVElORVMKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV93aW5fdW5pdHRlc3QucHkKaW5kZXggZDY3NzU4OWE1MWEwNzk2MGE5NGQ3NjMyOGIxOWU1MjE0
YzZkMzYyMi4uOTBiYzM4YWJkZTIzOTRhOTI4YTNlY2E0MDRkZDRlNmQ2OGQ2Yjg2YSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93
aW5fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkKQEAgLTI5LDEzICsyOSwxNSBAQAogaW1wb3J0
IG9zCiBpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QKLWltcG9ydCBjaHJvbWl1bV93aW4KKwog
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBvdXRwdXRjYXB0dXJlCiBmcm9tIHdl
YmtpdHB5LnRvb2wgaW1wb3J0IG1vY2t0b29sCiAKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
LnBvcnQgaW1wb3J0IGNocm9taXVtX3dpbgorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9y
dCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQogCi1jbGFzcyBDaHJvbWl1bVdpblRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogCitjbGFzcyBDaHJvbWl1bVdpblRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVz
dENhc2UpOgogICAgIGNsYXNzIFJlZ2lzdGVyQ3lnd2luT3B0aW9uKG9iamVjdCk6CiAgICAgICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgICAgIHNlbGYucmVnaXN0ZXJfY3lnd2luID0g
VHJ1ZQpAQCAtNDcsMTEgKzQ5LDE5IEBAIGNsYXNzIENocm9taXVtV2luVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgIHN5cy5wbGF0Zm9ybSA9IHNlbGYub3JpZ19wbGF0Zm9ybQogICAg
ICAgICBzZWxmLl9wb3J0ID0gTm9uZQogCisgICAgZGVmIHBvcnRfbWFrZXIoc2VsZiwgcGxhdGZv
cm0pOgorICAgICAgICBpZiBwbGF0Zm9ybSBub3QgaW4gKCdjeWd3aW4nLCAnd2luMzInKToKKyAg
ICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBjaHJvbWl1bV93aW4uQ2hyb21p
dW1XaW5Qb3J0CisKICAgICBkZWYgX21vY2tfcGF0aF9mcm9tX2Nocm9taXVtX2Jhc2Uoc2VsZiwg
KmNvbXBzKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0uam9pbigiL2No
cm9taXVtL3NyYyIsICpjb21wcykKIAogICAgIGRlZiB0ZXN0X3NldHVwX2Vudmlyb25fZm9yX3Nl
cnZlcihzZWxmKToKLSAgICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQo
KQorICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQorICAgICAgICBpZiBub3QgcG9ydDoK
KyAgICAgICAgICAgIHJldHVybgorCiAgICAgICAgIHBvcnQuX2V4ZWN1dGl2ZSA9IG1vY2t0b29s
Lk1vY2tFeGVjdXRpdmUoc2hvdWxkX2xvZz1UcnVlKQogICAgICAgICBzZWxmLl9wb3J0ID0gcG9y
dAogICAgICAgICBwb3J0LnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlID0gc2VsZi5fbW9ja19wYXRo
X2Zyb21fY2hyb21pdW1fYmFzZQpAQCAtNjIsMTYgKzcyLDUzIEBAIGNsYXNzIENocm9taXVtV2lu
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoZW52
WyJQQVRIIl0sIG9zLmVudmlyb25bIlBBVEgiXSkKIAogICAgIGRlZiB0ZXN0X3NldHVwX2Vudmly
b25fZm9yX3NlcnZlcl9yZWdpc3Rlcl9jeWd3aW4oc2VsZik6Ci0gICAgICAgIHN5cy5wbGF0Zm9y
bSA9ICJ3aW4zMiIKLSAgICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQo
Ci0gICAgICAgICAgICBvcHRpb25zPUNocm9taXVtV2luVGVzdC5SZWdpc3RlckN5Z3dpbk9wdGlv
bigpKQorICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1DaHJvbWl1bVdpblRl
c3QuUmVnaXN0ZXJDeWd3aW5PcHRpb24oKSkKKyAgICAgICAgaWYgbm90IHBvcnQ6CisgICAgICAg
ICAgICByZXR1cm4KKwogICAgICAgICBwb3J0Ll9leGVjdXRpdmUgPSBtb2NrdG9vbC5Nb2NrRXhl
Y3V0aXZlKHNob3VsZF9sb2c9VHJ1ZSkKICAgICAgICAgcG9ydC5wYXRoX2Zyb21fY2hyb21pdW1f
YmFzZSA9IHNlbGYuX21vY2tfcGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UKICAgICAgICAgc2VsZi5f
cG9ydCA9IHBvcnQKICAgICAgICAgc2V0dXBfbW91bnQgPSBzZWxmLl9tb2NrX3BhdGhfZnJvbV9j
aHJvbWl1bV9iYXNlKCJ0aGlyZF9wYXJ0eSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3lnd2luIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXR1cF9tb3VudC5iYXQi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiY3lnd2luIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInNldHVwX21vdW50LmJhdCIpCiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9
ICJNT0NLIHJ1bl9jb21tYW5kOiAlc1xuIiAlIFtzZXR1cF9tb3VudF0KICAgICAgICAgb3V0cHV0
ID0gb3V0cHV0Y2FwdHVyZS5PdXRwdXRDYXB0dXJlKCkKICAgICAgICAgb3V0cHV0LmFzc2VydF9v
dXRwdXRzKHNlbGYsIHBvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKworICAg
IGRlZiBhc3NlcnRfbmFtZShzZWxmLCBwb3J0X25hbWUsIHdpbmRvd3NfdmVyc2lvbiwgZXhwZWN0
ZWQpOgorICAgICAgICBwb3J0ID0gY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydChwb3J0X25h
bWU9cG9ydF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB3aW5kb3dzX3ZlcnNpb249d2luZG93c192ZXJzaW9uKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhleHBlY3RlZCwgcG9ydC5uYW1lKCkpCisKKyAgICBkZWYgdGVzdF92ZXJzaW9ucyhzZWxm
KToKKyAgICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQoKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUocG9ydC5uYW1lKCkgaW4gKCdjaHJvbWl1bS13aW4teHAnLCAnY2hy
b21pdW0td2luLXZpc3RhJywgJ2Nocm9taXVtLXdpbi03JykpCisKKyAgICAgICAgc2VsZi5hc3Nl
cnRfbmFtZShOb25lLCAoNSwgMSksICdjaHJvbWl1bS13aW4teHAnKQorICAgICAgICBzZWxmLmFz
c2VydF9uYW1lKCdjaHJvbWl1bS13aW4nLCAoNSwgMSksICdjaHJvbWl1bS13aW4teHAnKQorICAg
ICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS13aW4teHAnLCAoNSwgMSksICdjaHJvbWl1
bS13aW4teHAnKQorICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJvbWl1bS13aW4teHAnLCAo
NiwgMCksICdjaHJvbWl1bS13aW4teHAnKQorICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdjaHJv
bWl1bS13aW4teHAnLCAoNiwgMSksICdjaHJvbWl1bS13aW4teHAnKQorCisgICAgICAgIHNlbGYu
YXNzZXJ0X25hbWUoTm9uZSwgKDYsIDApLCAnY2hyb21pdW0td2luLXZpc3RhJykKKyAgICAgICAg
c2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0td2luJywgKDYsIDApLCAnY2hyb21pdW0td2luLXZp
c3RhJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0td2luLXZpc3RhJywgKDUs
IDEpLCAnY2hyb21pdW0td2luLXZpc3RhJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hy
b21pdW0td2luLXZpc3RhJywgKDYsIDApLCAnY2hyb21pdW0td2luLXZpc3RhJykKKyAgICAgICAg
c2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0td2luLXZpc3RhJywgKDYsIDEpLCAnY2hyb21pdW0t
d2luLXZpc3RhJykKKworICAgICAgICBzZWxmLmFzc2VydF9uYW1lKE5vbmUsICg2LCAxKSwgJ2No
cm9taXVtLXdpbi13aW43JykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0td2lu
JywgKDYsIDEpLCAnY2hyb21pdW0td2luLXdpbjcnKQorICAgICAgICBzZWxmLmFzc2VydF9uYW1l
KCdjaHJvbWl1bS13aW4td2luNycsICg1LCAxKSwgJ2Nocm9taXVtLXdpbi13aW43JykKKyAgICAg
ICAgc2VsZi5hc3NlcnRfbmFtZSgnY2hyb21pdW0td2luLXdpbjcnLCAoNiwgMCksICdjaHJvbWl1
bS13aW4td2luNycpCisgICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ2Nocm9taXVtLXdpbi13aW43
JywgKDYsIDEpLCAnY2hyb21pdW0td2luLXdpbjcnKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKEtleUVycm9yLCBzZWxmLmFzc2VydF9uYW1lLCBOb25lLCAoNCwgMCksICdjaHJvbWl1bS13
aW4teHAnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgc2VsZi5hc3NlcnRf
bmFtZSwgTm9uZSwgKDUsIDApLCAnY2hyb21pdW0td2luLXhwJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoS2V5RXJyb3IsIHNlbGYuYXNzZXJ0X25hbWUsIE5vbmUsICg1LCAyKSwgJ2Nocm9t
aXVtLXdpbi14cCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBzZWxmLmFz
c2VydF9uYW1lLCBOb25lLCAoNywgMSksICdjaHJvbWl1bS13aW4teHAnKQorCisKK2lmIF9fbmFt
ZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHkKaW5kZXggN2FlNmVi
NjcxY2ZjYmMxMWU2OTVjZmNmMTQ2YzFjZWY1ZjUxZjBiYy4uYTE5NzFlNGNlZjNlNjE1ZDBjZjFm
OGQ0OGE1ODM5ODNiY2I1Y2M4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5weQpAQCAtMzIsOSArMzIsMjggQEAKIAogaW1wb3J0
IHN5cwogCi1BTExfUE9SVF9OQU1FUyA9IFsndGVzdCcsICdkcnlydW4nLCAnbWFjJywgJ3dpbics
ICdndGsnLCAncXQnLCAnY2hyb21pdW0tbWFjJywKLSAgICAgICAgICAgICAgICAgICdjaHJvbWl1
bS1saW51eCcsICdjaHJvbWl1bS13aW4nLCAnZ29vZ2xlLWNocm9tZS13aW4nLAotICAgICAgICAg
ICAgICAgICAgJ2dvb2dsZS1jaHJvbWUtbWFjJywgJ2dvb2dsZS1jaHJvbWUtbGludXgzMicsICdn
b29nbGUtY2hyb21lLWxpbnV4NjQnXQorCitkZWYgYWxsX3BvcnRfbmFtZXMoKToKKyAgICAiIiJS
ZXR1cm4gYSBsaXN0IG9mIGFsbCB2YWxpZCwgZnVsbHktc3BlY2lmaWVkLCAicmVhbCIgcG9ydCBu
YW1lcy4KKworICAgIFRoaXMgaXMgdGhlIGxpc3Qgb2YgbmFtZXMgdGhhdCBjYW4gYmUgc3BlY2lm
aWVkIGRpcmVjdGx5IGFuZCBjYW4gYmUKKyAgICByZXR1cm5lZCBhcyBhIHZhbHVlIGZyb20gcG9y
dC5uYW1lKCkuIFRoaXMgZG9lcyBub3QgaW5jbHVkZSBhbnkKKyAgICAiZmFrZSIgbmFtZXMgbGlr
ZSAidGVzdCIgb3IgIm1vY2stbWFjIiwgYW5kIGl0IGRvZXMgbm90IGluY2x1ZGUgYW55CisgICAg
c2hvcnRjdXQgbmFtZXMgbGlrZSAiY2hyb21pdW0td2luIiB0aGF0IHdvdWxkIGdldCBleHBhbmRl
ZCB0bworICAgICJjaHJvbWl1bS13aW4teHAiLiIiIgorICAgICMgRklYTUU6IFRoZXJlJ3MgcHJv
YmFibHkgYSBiZXR0ZXIgd2F5IHRvIGdlbmVyYXRlIHRoaXMgbGlzdCAuLi4KKyAgICByZXR1cm4g
WydjaHJvbWl1bS1ncHUtbGludXgnLAorICAgICAgICAgICAgJ2Nocm9taXVtLWdwdS1tYWMtc25v
d2xlb3BhcmQnLCAnY2hyb21pdW0tZ3B1LW1hYy1sZW9wYXJkJywKKyAgICAgICAgICAgICdjaHJv
bWl1bS1ncHUtd2luLXhwJywgJ2Nocm9taXVtLWdwdS13aW4tdmlzdGEnLCAnY2hyb21pdW0tZ3B1
LXdpbi13aW43JywKKyAgICAgICAgICAgICdjaHJvbWl1bS1saW51eCcsCisgICAgICAgICAgICAn
Y2hyb21pdW0tbWFjLWxlb3BhcmQnLCAnY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJywKKyAgICAg
ICAgICAgICdjaHJvbWl1bS13aW4teHAnLCAnY2hyb21pdW0td2luLXZpc3RhJywgJ2Nocm9taXVt
LXdpbi13aW43JywKKyAgICAgICAgICAgICdnb29nbGUtY2hyb21lLWxpbnV4MzInLCAnZ29vZ2xl
LWNocm9tZS1saW51eDY0JywKKyAgICAgICAgICAgICdndGsnLAorICAgICAgICAgICAgJ21hYy10
aWdlcicsICdtYWMtbGVvcGFyZCcsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjLXdrMicsCisgICAg
ICAgICAgICAncXQtbGludXgnLCAncXQtbWFjJywgJ3F0LXdpbicsICdxdC13azInLAorICAgICAg
ICAgICAgJ3dpbi14cCcsICd3aW4nLCAnd2luLXdrMicsCisgICAgXQogCiAKIGRlZiBnZXQocG9y
dF9uYW1lPU5vbmUsIG9wdGlvbnM9Tm9uZSwgKiprd2FyZ3MpOgpAQCAtMTA5LDggKzEyOCwzIEBA
IGRlZiBfZ2V0X2t3YXJncygqKmt3YXJncyk6CiAgICAgZWxzZToKICAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcigndW5zdXBwb3J0ZWQgcG9ydDogJXMnICUgcG9ydF90b191c2UpCiAg
ICAgcmV0dXJuIG1ha2VyKCoqa3dhcmdzKQotCi1kZWYgZ2V0X2FsbChvcHRpb25zPU5vbmUpOgot
ICAgICIiIlJldHVybnMgYWxsIHRoZSBvYmplY3RzIGltcGxlbWVudGluZyB0aGUgUG9ydCBpbnRl
cmZhY2UuIiIiCi0gICAgcmV0dXJuIGRpY3QoWyhwb3J0X25hbWUsIGdldChwb3J0X25hbWUsIG9w
dGlvbnM9b3B0aW9ucykpCi0gICAgICAgICAgICAgICAgIGZvciBwb3J0X25hbWUgaW4gQUxMX1BP
UlRfTkFNRVNdKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0LnB5CmluZGV4IDk3OGE1NTdhNTdiMjBhM2I4
YjQwZTk5OTk4ZTM1YTg1ZWVlMjk2NmUuLmU0YTJjZDQzZjg4NWU1ZTA5MzU4MDRkOWFkNzUxNWRi
MWIyNjA2YTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvZmFjdG9yeV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHkKQEAgLTE1MiwyNCArMTUyLDYgQEAg
Y2xhc3MgRmFjdG9yeVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2Vy
dF9wbGF0Zm9ybV9wb3J0KCJjeWd3aW4iLCBzZWxmLmNocm9taXVtX29wdGlvbnMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCkK
IAotICAgIGRlZiB0ZXN0X2dldF9hbGxfcG9ydHMoc2VsZik6Ci0gICAgICAgIHBvcnRzID0gZmFj
dG9yeS5nZXRfYWxsKCkKLSAgICAgICAgZm9yIG5hbWUgaW4gZmFjdG9yeS5BTExfUE9SVF9OQU1F
UzoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShuYW1lIGluIHBvcnRzLmtleXMoKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRfcG9ydCgidGVzdCIsIHRlc3QuVGVzdFBvcnQsIHBvcnRzWyJ0ZXN0
Il0pCi0gICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoImRyeXJ1bi10ZXN0IiwgZHJ5cnVuLkRyeVJ1
blBvcnQsIHBvcnRzWyJkcnlydW4iXSkKLSAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgiZHJ5cnVu
LW1hYyIsIGRyeXJ1bi5EcnlSdW5Qb3J0LCBwb3J0c1siZHJ5cnVuIl0pCi0gICAgICAgIHNlbGYu
YXNzZXJ0X3BvcnQoIm1hYyIsIG1hYy5NYWNQb3J0LCBwb3J0c1sibWFjIl0pCi0gICAgICAgIHNl
bGYuYXNzZXJ0X3BvcnQoIndpbiIsIHdpbi5XaW5Qb3J0LCBwb3J0c1sid2luIl0pCi0gICAgICAg
IHNlbGYuYXNzZXJ0X3BvcnQoImd0ayIsIGd0ay5HdGtQb3J0LCBwb3J0c1siZ3RrIl0pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0X3BvcnQoInF0IiwgcXQuUXRQb3J0LCBwb3J0c1sicXQiXSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRfcG9ydCgiY2hyb21pdW0tbWFjIiwgY2hyb21pdW1fbWFjLkNocm9taXVt
TWFjUG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0c1siY2hyb21pdW0tbWFjIl0p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoImNocm9taXVtLWxpbnV4IiwgY2hyb21pdW1fbGlu
dXguQ2hyb21pdW1MaW51eFBvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcG9ydHNbImNo
cm9taXVtLWxpbnV4Il0pCi0gICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoImNocm9taXVtLXdpbiIs
IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
cG9ydHNbImNocm9taXVtLXdpbiJdKQotCiAgICAgZGVmIHRlc3RfdW5rbm93bl9zcGVjaWZpZWQo
c2VsZik6CiAgICAgICAgICMgVGVzdCB3aGF0IGhhcHBlbnMgd2hlbiB5b3Ugc3BlY2lmeSBhbiB1
bmtub3duIHBvcnQuCiAgICAgICAgIG9yaWdfcGxhdGZvcm0gPSBzeXMucGxhdGZvcm0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKaW5kZXggMTM5
OGVkMzJhODhkYTRlZjA2NzRiMmRmNzFiNWNlMTYzZjc0MTliZi4uY2RkOGVlYjBjODc3NzE0NWQ2
ZDY2YzlhNjE5ZTRhYTQyNWJlNTE0MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKQEAgLTM4LDEyICszOCw1MCBAQCBmcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5wb3J0LndlYmtpdCBpbXBvcnQgV2ViS2l0UG9ydAogX2xvZyA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKCJ3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC5tYWMiKQogCiAKK2RlZiBv
c192ZXJzaW9uKG9zX3ZlcnNpb25fc3RyaW5nPU5vbmUsIHN1cHBvcnRlZF92ZXJzaW9ucz1Ob25l
KToKKyAgICAjIFdlIG9ubHkgc3VwcG9ydCBUaWdlciwgTGVvcGFyZCwgYW5kIFNub3cgTGVvcGFy
ZC4KKyAgICBpZiBub3Qgb3NfdmVyc2lvbl9zdHJpbmc6CisgICAgICAgIGlmIGhhc2F0dHIocGxh
dGZvcm0sICdtYWNfdmVyJyk6CisgICAgICAgICAgICBvc192ZXJzaW9uX3N0cmluZyA9IHBsYXRm
b3JtLm1hY192ZXIoKVswXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBNYWtlIHVwIHNv
bWV0aGluZyBmb3IgdGVzdGluZy4KKyAgICAgICAgICAgIG9zX3ZlcnNpb25fc3RyaW5nID0gIjEw
LjUuNiIKKyAgICByZWxlYXNlX3ZlcnNpb24gPSBpbnQob3NfdmVyc2lvbl9zdHJpbmcuc3BsaXQo
Jy4nKVsxXSkKKyAgICB2ZXJzaW9uX3N0cmluZ3MgPSB7CisgICAgICAgIDQ6ICd0aWdlcicsCisg
ICAgICAgIDU6ICdsZW9wYXJkJywKKyAgICAgICAgNjogJ3Nub3dsZW9wYXJkJywKKyAgICB9Cisg
ICAgdmVyc2lvbl9zdHJpbmcgPSB2ZXJzaW9uX3N0cmluZ3NbcmVsZWFzZV92ZXJzaW9uXQorICAg
IGlmIHN1cHBvcnRlZF92ZXJzaW9uczoKKyAgICAgICAgYXNzZXJ0IHZlcnNpb25fc3RyaW5nIGlu
IHN1cHBvcnRlZF92ZXJzaW9ucworICAgIHJldHVybiB2ZXJzaW9uX3N0cmluZworCisKIGNsYXNz
IE1hY1BvcnQoV2ViS2l0UG9ydCk6CiAgICAgIiIiV2ViS2l0IE1hYyBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgUG9ydCBjbGFzcy4iIiIKKyAgICAjIEZJWE1FOiAnd2syJyBwcm9iYWJseSBzaG91bGRu
J3QgYmUgYSB2ZXJzaW9uLCBpdCBzaG91bGQgcHJvYmFibHkgYmUKKyAgICAjIGEgbW9kaWZpZXIs
IGxpa2UgJ2Nocm9taXVtLWdwdScgaXMgdG8gJ2Nocm9taXVtJy4KKyAgICBTVVBQT1JURURfVkVS
U0lPTlMgPSAoJ3RpZ2VyJywgJ2xlb3BhcmQnLCAnc25vd2xlb3BhcmQnLCAnd2syJykKKworICAg
IEZBTExCQUNLX1BBVEhTID0geworICAgICAgICAndGlnZXInOiBbJ21hYy10aWdlcicsICdtYWMt
bGVvcGFyZCcsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10sCisgICAgICAgICdsZW9wYXJkJzog
WydtYWMtbGVvcGFyZCcsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10sCisgICAgICAgICdzbm93
bGVvcGFyZCc6IFsnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLAorICAgICAgICAnd2syJzogWydt
YWMtd2syJywgJ21hYyddLAorICAgIH0KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25h
bWU9Tm9uZSwgb3NfdmVyc2lvbl9zdHJpbmc9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBwb3J0
X25hbWUgPSBwb3J0X25hbWUgb3IgJ21hYycKKworICAgICAgICBpZiBwb3J0X25hbWUgPT0gJ21h
Yyc6CisgICAgICAgICAgICBzZWxmLl92ZXJzaW9uID0gb3NfdmVyc2lvbihvc192ZXJzaW9uX3N0
cmluZykKKyAgICAgICAgICAgIHBvcnRfbmFtZSA9IHBvcnRfbmFtZSArICctJyArIHNlbGYuX3Zl
cnNpb24KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBwb3J0X25h
bWVbNDpdCisgICAgICAgICAgICBhc3NlcnQgc2VsZi5fdmVyc2lvbiBpbiBzZWxmLlNVUFBPUlRF
RF9WRVJTSU9OUwogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAg
a3dhcmdzLnNldGRlZmF1bHQoJ3BvcnRfbmFtZScsICdtYWMnICsgc2VsZi52ZXJzaW9uKCkpCi0g
ICAgICAgIFdlYktpdFBvcnQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCisgICAgICAgIFdlYktp
dFBvcnQuX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCiAKICAg
ICBkZWYgZGVmYXVsdF9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CiAgICAgICAgICMgRklYTUU6IG5l
dy1ydW4td2Via2l0LXRlc3RzIGlzIHVuc3RhYmxlIG9uIE1hYyBydW5uaW5nIG1vcmUgdGhhbgpA
QCAtNTUsMTUgKzkzLDcgQEAgY2xhc3MgTWFjUG9ydChXZWJLaXRQb3J0KToKICAgICAgICAgcmV0
dXJuIGNoaWxkX3Byb2Nlc3NlcwogCiAgICAgZGVmIGJhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYp
OgotICAgICAgICBwb3J0X25hbWVzID0gW10KLSAgICAgICAgaWYgc2VsZi5fbmFtZSA9PSAnbWFj
LXRpZ2VyJzoKLSAgICAgICAgICAgIHBvcnRfbmFtZXMuYXBwZW5kKCJtYWMtdGlnZXIiKQotICAg
ICAgICBpZiBzZWxmLl9uYW1lIGluICgnbWFjLXRpZ2VyJywgJ21hYy1sZW9wYXJkJyk6Ci0gICAg
ICAgICAgICBwb3J0X25hbWVzLmFwcGVuZCgibWFjLWxlb3BhcmQiKQotICAgICAgICBpZiBzZWxm
Ll9uYW1lIGluICgnbWFjLXRpZ2VyJywgJ21hYy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFyZCcp
OgotICAgICAgICAgICAgcG9ydF9uYW1lcy5hcHBlbmQoIm1hYy1zbm93bGVvcGFyZCIpCi0gICAg
ICAgIHBvcnRfbmFtZXMuYXBwZW5kKCJtYWMiKQotICAgICAgICByZXR1cm4gbWFwKHNlbGYuX3dl
YmtpdF9iYXNlbGluZV9wYXRoLCBwb3J0X25hbWVzKQorICAgICAgICByZXR1cm4gbWFwKHNlbGYu
X3dlYmtpdF9iYXNlbGluZV9wYXRoLCBzZWxmLkZBTExCQUNLX1BBVEhTW3NlbGYuX3ZlcnNpb25d
KQogCiAgICAgZGVmIHBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZShzZWxmKToKICAgICAg
ICAgcmV0dXJuIHNlbGYucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCdMYXlvdXRUZXN0cycsICdwbGF0
Zm9ybScsCkBAIC03Myw3ICsxMDMsNyBAQCBjbGFzcyBNYWNQb3J0KFdlYktpdFBvcnQpOgogICAg
ICAgICAjIEZJWE1FOiBUaGlzIG1ldGhvZCB3aWxsIG5lZWQgdG8gYmUgbWFkZSB3b3JrIGZvciBu
b24tbWFjCiAgICAgICAgICMgcGxhdGZvcm1zIGFuZCBtb3ZlZCBpbnRvIGJhc2UuUG9ydC4KICAg
ICAgICAgc2tpcHBlZF9maWxlcyA9IFtdCi0gICAgICAgIGlmIHNlbGYuX25hbWUgaW4gKCdtYWMt
dGlnZXInLCAnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJyk6CisgICAgICAgIGlmIHNl
bGYuX25hbWUgaW4gKCdtYWMtbGVvcGFyZCcsICdtYWMtc25vd2xlb3BhcmQnKToKICAgICAgICAg
ICAgIHNraXBwZWRfZmlsZXMuYXBwZW5kKHNlbGYuX2ZpbGVzeXN0ZW0uam9pbigKICAgICAgICAg
ICAgICAgICBzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aChzZWxmLl9uYW1lKSwgJ1NraXBwZWQn
KSkKICAgICAgICAgc2tpcHBlZF9maWxlcy5hcHBlbmQoc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNl
bGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdtYWMnKSwKQEAgLTgxLDIwICsxMTEsMTAgQEAgY2xh
c3MgTWFjUG9ydChXZWJLaXRQb3J0KToKICAgICAgICAgcmV0dXJuIHNraXBwZWRfZmlsZXMKIAog
ICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAnbWFjJyAr
IHNlbGYudmVyc2lvbigpCisgICAgICAgIHJldHVybiAnbWFjLScgKyBzZWxmLnZlcnNpb24oKQog
CiAgICAgZGVmIHZlcnNpb24oc2VsZik6Ci0gICAgICAgIG9zX3ZlcnNpb25fc3RyaW5nID0gcGxh
dGZvcm0ubWFjX3ZlcigpWzBdICAjIGUuZy4gIjEwLjUuNiIKLSAgICAgICAgaWYgbm90IG9zX3Zl
cnNpb25fc3RyaW5nOgotICAgICAgICAgICAgcmV0dXJuICctbGVvcGFyZCcKLSAgICAgICAgcmVs
ZWFzZV92ZXJzaW9uID0gaW50KG9zX3ZlcnNpb25fc3RyaW5nLnNwbGl0KCcuJylbMV0pCi0gICAg
ICAgIGlmIHJlbGVhc2VfdmVyc2lvbiA9PSA0OgotICAgICAgICAgICAgcmV0dXJuICctdGlnZXIn
Ci0gICAgICAgIGVsaWYgcmVsZWFzZV92ZXJzaW9uID09IDU6Ci0gICAgICAgICAgICByZXR1cm4g
Jy1sZW9wYXJkJwotICAgICAgICBlbGlmIHJlbGVhc2VfdmVyc2lvbiA9PSA2OgotICAgICAgICAg
ICAgcmV0dXJuICctc25vd2xlb3BhcmQnCi0gICAgICAgIHJldHVybiAnJworICAgICAgICByZXR1
cm4gc2VsZi5fdmVyc2lvbgogCiAgICAgZGVmIF9idWlsZF9qYXZhX3Rlc3Rfc3VwcG9ydChzZWxm
KToKICAgICAgICAgamF2YV90ZXN0c19wYXRoID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYu
bGF5b3V0X3Rlc3RzX2RpcigpLCAiamF2YSIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CmluZGV4IGVmMDQ2Nzk3
YTRkM2E2NTQzMjdiYjliZDhjMzY4YzZmZjA0NzBjMmQuLmY2OWVkNmViNDk2MDVkNTQ5MDczYjJj
OWI3YTk0Y2IyZDVjNGI2NmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CkBAIC0yNywyNiArMjcsMjAgQEAK
ICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IFN0cmluZ0lPCi1pbXBvcnQgc3lzCiBpbXBvcnQgdW5p
dHRlc3QKIAotaW1wb3J0IG1hYwotaW1wb3J0IHBvcnRfdGVzdGNhc2UKK2Zyb20gd2Via2l0cHku
bGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IG1hYworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMu
cG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQogCiAKIGNsYXNzIE1hY1Rlc3QocG9ydF90ZXN0Y2Fz
ZS5Qb3J0VGVzdENhc2UpOgotICAgIGRlZiBtYWtlX3BvcnQoc2VsZiwgcG9ydF9uYW1lPU5vbmUs
IG9wdGlvbnM9cG9ydF90ZXN0Y2FzZS5tb2NrX29wdGlvbnMpOgotICAgICAgICBpZiBzeXMucGxh
dGZvcm0gIT0gJ2Rhcndpbic6CisgICAgZGVmIHBvcnRfbWFrZXIoc2VsZiwgcGxhdGZvcm0pOgor
ICAgICAgICBpZiBwbGF0Zm9ybSAhPSAnZGFyd2luJzoKICAgICAgICAgICAgIHJldHVybiBOb25l
Ci0gICAgICAgIHBvcnRfb2JqID0gbWFjLk1hY1BvcnQocG9ydF9uYW1lPXBvcnRfbmFtZSwgb3B0
aW9ucz1vcHRpb25zKQotICAgICAgICBwb3J0X29iai5fb3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9y
eSA9IHBvcnRfb2JqLnJlc3VsdHNfZGlyZWN0b3J5KCkKLSAgICAgICAgcG9ydF9vYmouX29wdGlv
bnMuY29uZmlndXJhdGlvbiA9ICdSZWxlYXNlJwotICAgICAgICByZXR1cm4gcG9ydF9vYmoKKyAg
ICAgICAgcmV0dXJuIG1hYy5NYWNQb3J0CiAKICAgICBkZWYgYXNzZXJ0X3NraXBwZWRfZmlsZXNf
Zm9yX3ZlcnNpb24oc2VsZiwgcG9ydF9uYW1lLCBleHBlY3RlZF9wYXRocyk6Ci0gICAgICAgIHBv
cnQgPSBzZWxmLm1ha2VfcG9ydChwb3J0X25hbWUpCi0gICAgICAgIGlmIG5vdCBwb3J0OgotICAg
ICAgICAgICAgcmV0dXJuCisgICAgICAgIHBvcnQgPSBtYWMuTWFjUG9ydChwb3J0X25hbWU9cG9y
dF9uYW1lKQogICAgICAgICBza2lwcGVkX3BhdGhzID0gcG9ydC5fc2tpcHBlZF9maWxlX3BhdGhz
KCkKICAgICAgICAgIyBGSVhNRTogX3NraXBwZWRfZmlsZV9wYXRocyBzaG91bGQgcmV0dXJuIFdl
YktpdC1yZWxhdGl2ZSBwYXRocy4KICAgICAgICAgIyBTbyB0byBtYWtlIGl0IHVuaXQgdGVzdGFi
bGUsIHdlIHN0cmlwIHRoZSBXZWJLaXQgZGlyZWN0b3J5IGZyb20gdGhlIHBhdGguCkBAIC01NCw4
ICs0OCw2IEBAIGNsYXNzIE1hY1Rlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHJlbGF0aXZlX3BhdGhzLCBleHBlY3RlZF9wYXRocykKIAog
ICAgIGRlZiB0ZXN0X3NraXBwZWRfZmlsZV9wYXRocyhzZWxmKToKLSAgICAgICAgc2VsZi5hc3Nl
cnRfc2tpcHBlZF9maWxlc19mb3JfdmVyc2lvbignbWFjJywKLSAgICAgICAgICAgIFsnL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkJ10pCiAgICAgICAgIHNlbGYuYXNzZXJ0X3NraXBw
ZWRfZmlsZXNfZm9yX3ZlcnNpb24oJ21hYy1zbm93bGVvcGFyZCcsCiAgICAgICAgICAgICBbJy9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZCcsICcvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQnXSkKICAgICAgICAgc2VsZi5hc3NlcnRfc2tpcHBlZF9m
aWxlc19mb3JfdmVyc2lvbignbWFjLWxlb3BhcmQnLApAQCAtNzgsMTEgKzcwLDQwIEBAIHN2Zy9i
YXRpay90ZXh0L3NtYWxsRm9udHMuc3ZnCiAgICAgXQogCiAgICAgZGVmIHRlc3RfdGVzdHNfZnJv
bV9za2lwcGVkX2ZpbGVfY29udGVudHMoc2VsZik6Ci0gICAgICAgIHBvcnQgPSBzZWxmLm1ha2Vf
cG9ydCgpCi0gICAgICAgIGlmIG5vdCBwb3J0OgotICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
IHBvcnQgPSBtYWMuTWFjUG9ydCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5fdGVz
dHNfZnJvbV9za2lwcGVkX2ZpbGVfY29udGVudHMoc2VsZi5leGFtcGxlX3NraXBwZWRfZmlsZSks
IHNlbGYuZXhhbXBsZV9za2lwcGVkX3Rlc3RzKQogCisgICAgZGVmIGFzc2VydF9uYW1lKHNlbGYs
IHBvcnRfbmFtZSwgb3NfdmVyc2lvbl9zdHJpbmcsIGV4cGVjdGVkKToKKyAgICAgICAgcG9ydCA9
IG1hYy5NYWNQb3J0KHBvcnRfbmFtZT1wb3J0X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvc192ZXJzaW9uX3N0cmluZz1vc192ZXJzaW9uX3N0cmluZykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoZXhwZWN0ZWQsIHBvcnQubmFtZSgpKQorCisgICAgZGVmIHRlc3RfdmVyc2lv
bnMoc2VsZik6CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCisgICAgICAgIGlmIHBv
cnQ6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5uYW1lKCkgaW4gKCdtYWMtdGln
ZXInLCAnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJykpCisKKyAgICAgICAgc2VsZi5h
c3NlcnRfbmFtZShOb25lLCAnMTAuNC44JywgJ21hYy10aWdlcicpCisgICAgICAgIHNlbGYuYXNz
ZXJ0X25hbWUoJ21hYycsICcxMC40LjgnLCAnbWFjLXRpZ2VyJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRfbmFtZSgnbWFjLXRpZ2VyJywgJzEwLjQuOCcsICdtYWMtdGlnZXInKQorICAgICAgICBzZWxm
LmFzc2VydF9uYW1lKCdtYWMtdGlnZXInLCAnMTAuNS4zJywgJ21hYy10aWdlcicpCisgICAgICAg
IHNlbGYuYXNzZXJ0X25hbWUoJ21hYy10aWdlcicsICcxMC42LjMnLCAnbWFjLXRpZ2VyJykKKwor
ICAgICAgICBzZWxmLmFzc2VydF9uYW1lKE5vbmUsICcxMC41LjMnLCAnbWFjLWxlb3BhcmQnKQor
ICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdtYWMnLCAnMTAuNS4zJywgJ21hYy1sZW9wYXJkJykK
KyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnbWFjLWxlb3BhcmQnLCAnMTAuNC44JywgJ21hYy1s
ZW9wYXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnbWFjLWxlb3BhcmQnLCAnMTAuNS4z
JywgJ21hYy1sZW9wYXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnbWFjLWxlb3BhcmQn
LCAnMTAuNi4zJywgJ21hYy1sZW9wYXJkJykKKworICAgICAgICBzZWxmLmFzc2VydF9uYW1lKE5v
bmUsICcxMC42LjMnLCAnbWFjLXNub3dsZW9wYXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFt
ZSgnbWFjJywgJzEwLjYuMycsICdtYWMtc25vd2xlb3BhcmQnKQorICAgICAgICBzZWxmLmFzc2Vy
dF9uYW1lKCdtYWMtc25vd2xlb3BhcmQnLCAnMTAuNC4zJywgJ21hYy1zbm93bGVvcGFyZCcpCisg
ICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ21hYy1zbm93bGVvcGFyZCcsICcxMC41LjMnLCAnbWFj
LXNub3dsZW9wYXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnbWFjLXNub3dsZW9wYXJk
JywgJzEwLjYuMycsICdtYWMtc25vd2xlb3BhcmQnKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKEtleUVycm9yLCBzZWxmLmFzc2VydF9uYW1lLCBOb25lLCAnMTAuNy4xJywgJ21hYy1sZW9w
YXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHNlbGYuYXNzZXJ0X25h
bWUsIE5vbmUsICcxMC4zLjEnLCAnbWFjLWxlb3BhcmQnKQorCiAKIGlmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6CiAgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkKaW5kZXggNDE0
NmQ0MDhhMTVhNjc4OTVhYTgxZGY5NzJiZTc0YjAzYTY1YzM1OC4uY2E1MjM4NWNiNmRjOTRiNmZl
Y2ZmNjA1OTE4ZWRhYmIzODRiZmYwNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weQpAQCAtMjgsNiArMjgs
NyBAQAogCiAiIiJVbml0IHRlc3RpbmcgYmFzZSBjbGFzcyBmb3IgUG9ydCBpbXBsZW1lbnRhdGlv
bnMuIiIiCiAKK2ltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LnRv
b2wgaW1wb3J0IG1vY2t0b29sCkBAIC00MCwxMCArNDEsMjMgQEAgbW9ja19vcHRpb25zID0gbW9j
a3Rvb2wuTW9ja09wdGlvbnMocmVzdWx0c19kaXJlY3Rvcnk9J2xheW91dC10ZXN0LXJlc3VsdHMn
LAogCiBjbGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICIiIlRlc3Rz
IHRoZSBXZWJLaXQgcG9ydCBpbXBsZW1lbnRhdGlvbi4iIiIKLSAgICBkZWYgbWFrZV9wb3J0KHNl
bGYsIG9wdGlvbnM9bW9ja19vcHRpb25zKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgaW4gc3ViY2xh
c3MuIiIiCisgICAgZGVmIHBvcnRfbWFrZXIoc2VsZiwgcGxhdGZvcm0pOgorICAgICAgICAiIiJP
dmVycmlkZSB0byByZXR1cm4gdGhlIGNsYXNzIG9iamVjdCBvZiB0aGUgcG9ydCB0byBiZSB0ZXN0
ZWQsCisgICAgICAgIG9yIE5vbmUgaWYgYSB2YWxpZCBwb3J0IG9iamVjdCBjYW5ub3QgYmUgY29u
c3RydWN0ZWQgb24gdGhlIHNwZWNpZmllZAorICAgICAgICBwbGF0Zm9ybS4iIiIKICAgICAgICAg
cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCiAKKyAgICBkZWYgbWFrZV9wb3J0KHNlbGYsIG9w
dGlvbnM9bW9ja19vcHRpb25zKToKKyAgICAgICAgIiIiVGhpcyByb3V0aW5lIHNob3VsZCBiZSB1
c2VkIGZvciB0ZXN0cyB0aGF0IHNob3VsZCBvbmx5IGJlIHJ1bgorICAgICAgICB3aGVuIHdlIGNh
biBjcmVhdGUgYSBmdWxsLCB2YWxpZCBwb3J0IG9iamVjdC4iIiIKKyAgICAgICAgbWFrZXIgPSBz
ZWxmLnBvcnRfbWFrZXIoc3lzLnBsYXRmb3JtKQorICAgICAgICBpZiBub3QgbWFrZXI6CisgICAg
ICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHBvcnQgPSBtYWtlcihvcHRpb25zPW1vY2tf
b3B0aW9ucykKKyAgICAgICAgcG9ydC5fb3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSA9IHBvcnQu
cmVzdWx0c19kaXJlY3RvcnkoKQorICAgICAgICByZXR1cm4gcG9ydAorCiAgICAgZGVmIHRlc3Rf
ZHJpdmVyX2NtZF9saW5lKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQog
ICAgICAgICBpZiBub3QgcG9ydDoKQEAgLTEwMCwzICsxMTQsOSBAQCBjbGFzcyBQb3J0VGVzdENh
c2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBpZiBub3QgcG9ydDoKICAgICAgICAgICAg
IHJldHVybgogICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKHBvcnQuYWxsX3Rlc3RfY29uZmln
dXJhdGlvbnMoKSkgPiAwKQorCisgICAgZGVmIHRlc3RfYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2Vs
Zik6CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCisgICAgICAgIGlmIG5vdCBwb3J0
OgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0LmJhc2Vs
aW5lX3BhdGgoKSBpbiBwb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKCkpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKaW5kZXggYjk0YzM3OGVi
M2EzYmIwODZlOTQ2ZmIxNWRhZTg4ZTI3N2ZjMjE3MC4uZDMyM2VkNWVhY2FhZjlmMTQ1Yjc0MWQz
YzY5YThkZWFlNzE4MmE3YSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC90ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtMzQ4LDkgKzM0OCw5IEBAIGNsYXNzIFRlc3RQb3J0KGJh
c2UuUG9ydCk6CiAKICAgICBkZWYgdmVyc2lvbihzZWxmKToKICAgICAgICAgdmVyc2lvbl9tYXAg
PSB7Ci0gICAgICAgICAgICAndGVzdC13aW4teHAnOiAnLXhwJywKLSAgICAgICAgICAgICd0ZXN0
LXdpbic6ICctNycsCi0gICAgICAgICAgICAndGVzdC1tYWMnOiAnLWxlb3BhcmQnLAorICAgICAg
ICAgICAgJ3Rlc3Qtd2luLXhwJzogJ3hwJywKKyAgICAgICAgICAgICd0ZXN0LXdpbic6ICd3aW43
JywKKyAgICAgICAgICAgICd0ZXN0LW1hYyc6ICdsZW9wYXJkJywKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gdmVyc2lvbl9tYXBbc2VsZi5fbmFtZV0KIAo=
</data>
<flag name="review"
          id="73870"
          type_id="1"
          status="+"
          setter="mihaip"
    />
          </attachment>
      

    </bug>

</bugzilla>