<?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>211249</bug_id>
          
          <creation_ts>2020-04-30 13:08:06 -0700</creation_ts>
          <short_desc>Python3: Support Python3 in Tools/webkitpy/benchmark_runner</short_desc>
          <delta_ts>2020-05-06 08:40:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211514</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pablo Saavedra">psaavedra</reporter>
          <assigned_to name="Pablo Saavedra">psaavedra</assigned_to>
          <cc>aperez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1647514</commentid>
    <comment_count>0</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-04-30 13:08:06 -0700</bug_when>
    <thetext>Provide support for Python3 in Tools/webkitpy/benchmark_runner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647550</commentid>
    <comment_count>1</comment_count>
      <attachid>398089</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-04-30 14:21:51 -0700</bug_when>
    <thetext>Created attachment 398089
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647576</commentid>
    <comment_count>2</comment_count>
      <attachid>398089</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-04-30 15:09:13 -0700</bug_when>
    <thetext>Comment on attachment 398089
patch

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

Just a heads up: webkitpy EWS will run both Python 2 and Python 3 tests, so as long as the Python code you are changing is tested, you can trust EWS.

&gt; Tools/Scripts/run-benchmark:-1
&gt; -#!/usr/bin/env python

We aren&apos;t ready to take the dive of only supporting Python 3 yet, let&apos;s keep these she-bangs &apos;python&apos;.

We still have machines without Python 3, so we&apos;re holding off transitioning existing scripts.

&gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py:1
&gt; +#!/usr/bin/env python3

Ditto.

&gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py:6
&gt; +import urllib.request

Let&apos;s make sure we have Python 2 compatible imports as well...if you grep for urllib imports in webkitpy, you&apos;ll see us using two different import calls, one for Python 2 and one for Python 3.

&gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py:1
&gt; +#!/usr/bin/env python3

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647909</commentid>
    <comment_count>3</comment_count>
      <attachid>398201</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-05-01 10:40:37 -0700</bug_when>
    <thetext>Created attachment 398201
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647911</commentid>
    <comment_count>4</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-05-01 10:41:55 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #2)
&gt; Comment on attachment 398089 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=398089&amp;action=review
&gt; 
&gt; Just a heads up: webkitpy EWS will run both Python 2 and Python 3 tests, so
&gt; as long as the Python code you are changing is tested, you can trust EWS.
&gt; 
&gt; &gt; Tools/Scripts/run-benchmark:-1
&gt; &gt; -#!/usr/bin/env python
&gt; 
&gt; We aren&apos;t ready to take the dive of only supporting Python 3 yet, let&apos;s keep
&gt; these she-bangs &apos;python&apos;.
&gt; 
&gt; We still have machines without Python 3, so we&apos;re holding off transitioning
&gt; existing scripts.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py:1
&gt; &gt; +#!/usr/bin/env python3
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py:6
&gt; &gt; +import urllib.request
&gt; 
&gt; Let&apos;s make sure we have Python 2 compatible imports as well...if you grep
&gt; for urllib imports in webkitpy, you&apos;ll see us using two different import
&gt; calls, one for Python 2 and one for Python 3.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py:1
&gt; &gt; +#!/usr/bin/env python3
&gt; 
&gt; Ditto.

Thanks for your kindly review. I just uploaded a new version compatible with both python versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649145</commentid>
    <comment_count>5</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-05-05 04:01:29 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #2)
&gt; Comment on attachment 398089 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=398089&amp;action=review
&gt; 
&gt; Just a heads up: webkitpy EWS will run both Python 2 and Python 3 tests, so
&gt; as long as the Python code you are changing is tested, you can trust EWS.
&gt; 
&gt; &gt; Tools/Scripts/run-benchmark:-1
&gt; &gt; -#!/usr/bin/env python
&gt; 
&gt; We aren&apos;t ready to take the dive of only supporting Python 3 yet, let&apos;s keep
&gt; these she-bangs &apos;python&apos;.
&gt; 
&gt; We still have machines without Python 3, so we&apos;re holding off transitioning
&gt; existing scripts.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py:1
&gt; &gt; +#!/usr/bin/env python3
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py:6
&gt; &gt; +import urllib.request
&gt; 
&gt; Let&apos;s make sure we have Python 2 compatible imports as well...if you grep
&gt; for urllib imports in webkitpy, you&apos;ll see us using two different import
&gt; calls, one for Python 2 and one for Python 3.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py:1
&gt; &gt; +#!/usr/bin/env python3
&gt; 
&gt; Ditto.

Could you take a look again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649175</commentid>
    <comment_count>6</comment_count>
      <attachid>398201</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-05-05 06:56:51 -0700</bug_when>
    <thetext>Comment on attachment 398201
patch

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

Before landing, I need to do some brief testing on Apple&apos;s side since there is some mission-critical Apple Internal infrastructure that uses this code.

&gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py:-145
&gt; -        if arg_type == types.ListType and len(a) and (type(a[0]) == types.StringType or type(a[0]) == types.UnicodeType):

Seems like we were treating unicode as a string type in Python 2 also

&gt; Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py:79
&gt; +        print((&quot;\t%s&quot; % plan))

Is this change actually needed? It would surprise me if it is.

&gt; Tools/Scripts/webkitpy/style/checker.py:723
&gt; +            python3_paths = [&apos;Tools/resultsdbpy&apos;, &apos;Tools/Scripts/webkitpy/benchmark_runner&apos;]

We shouldn&apos;t add it here, since this file is also a Python 2 path. resultsdbpy is somewhat unique in that it is exclusively Python 3 (since it doesn&apos;t need to be run locally) and so we need to run it through a different style checker since it contains syntax illegal in Python 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649196</commentid>
    <comment_count>7</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-05-05 07:55:54 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #6)
&gt; Comment on attachment 398201 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=398201&amp;action=review
&gt; 
&gt; Before landing, I need to do some brief testing on Apple&apos;s side since there
&gt; is some mission-critical Apple Internal infrastructure that uses this code.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py:-145
&gt; &gt; -        if arg_type == types.ListType and len(a) and (type(a[0]) == types.StringType or type(a[0]) == types.UnicodeType):
&gt; 
&gt; Seems like we were treating unicode as a string type in Python 2 also
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py:79
&gt; &gt; +        print((&quot;\t%s&quot; % plan))
&gt; 
&gt; Is this change actually needed? It would surprise me if it is.

not at all. Sorry don&apos;t check it before.

&gt; 
&gt; &gt; Tools/Scripts/webkitpy/style/checker.py:723
&gt; &gt; +            python3_paths = [&apos;Tools/resultsdbpy&apos;, &apos;Tools/Scripts/webkitpy/benchmark_runner&apos;]
&gt; 
&gt; We shouldn&apos;t add it here, since this file is also a Python 2 path.
&gt; resultsdbpy is somewhat unique in that it is exclusively Python 3 (since it
&gt; doesn&apos;t need to be run locally) and so we need to run it through a different
&gt; style checker since it contains syntax illegal in Python 2.
ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649197</commentid>
    <comment_count>8</comment_count>
      <attachid>398506</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-05-05 07:58:29 -0700</bug_when>
    <thetext>Created attachment 398506
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649198</commentid>
    <comment_count>9</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-05-05 08:00:45 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #6)
&gt; Comment on attachment 398201 [details]
...
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/style/checker.py:723
&gt; &gt; +            python3_paths = [&apos;Tools/resultsdbpy&apos;, &apos;Tools/Scripts/webkitpy/benchmark_runner&apos;]
&gt; 
&gt; We shouldn&apos;t add it here, since this file is also a Python 2 path.
&gt; resultsdbpy is somewhat unique in that it is exclusively Python 3 (since it
&gt; doesn&apos;t need to be run locally) and so we need to run it through a different
&gt; style checker since it contains syntax illegal in Python 2.

Not adding this in the python3_paths, I got this error in the style checker:

  ERROR: Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py:15:  No name &apos;request&apos; in module &apos;urllib&apos;  [pylint/E0611] [5]


Who I should I proceed to ignore this error?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649200</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-05-05 08:09:38 -0700</bug_when>
    <thetext>(In reply to Pablo Saavedra from comment #9)
&gt; (In reply to Jonathan Bedard from comment #6)
&gt; &gt; Comment on attachment 398201 [details]
&gt; ...
&gt; &gt; 
&gt; &gt; &gt; Tools/Scripts/webkitpy/style/checker.py:723
&gt; &gt; &gt; +            python3_paths = [&apos;Tools/resultsdbpy&apos;, &apos;Tools/Scripts/webkitpy/benchmark_runner&apos;]
&gt; &gt; 
&gt; &gt; We shouldn&apos;t add it here, since this file is also a Python 2 path.
&gt; &gt; resultsdbpy is somewhat unique in that it is exclusively Python 3 (since it
&gt; &gt; doesn&apos;t need to be run locally) and so we need to run it through a different
&gt; &gt; style checker since it contains syntax illegal in Python 2.
&gt; 
&gt; Not adding this in the python3_paths, I got this error in the style checker:
&gt; 
&gt;   ERROR: Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py:15: 
&gt; No name &apos;request&apos; in module &apos;urllib&apos;  [pylint/E0611] [5]
&gt; 
&gt; 
&gt; Who I should I proceed to ignore this error?

Just ignore it, I think we have a pretty good case for getting rid of the E0611 because of this. This sort of style error was pretty common when converting webkitpy to Python 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649295</commentid>
    <comment_count>11</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-05-05 11:41:34 -0700</bug_when>
    <thetext>Doesn&apos;t break anything for python 2, but I tried running jetstream2 with Python 3 and starting the web server didn&apos;t work. That&apos;s not necessarily a deal-breaker, since I know we have some other issues with web servers and Python 3, but I want to make sure the current patch is compatible with whatever run-benchmark incantation you are using.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649339</commentid>
    <comment_count>12</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-05-05 13:05:10 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #11)
&gt; Doesn&apos;t break anything for python 2, but I tried running jetstream2 with
&gt; Python 3 and starting the web server didn&apos;t work. That&apos;s not necessarily a
&gt; deal-breaker, since I know we have some other issues with web servers and
&gt; Python 3, but I want to make sure the current patch is compatible with
&gt; whatever run-benchmark incantation you are using.

It&apos;s working in my local Linux environment (for Firefox, Epiphany and Chrome at least). Did you see something relevant in the logs output related the HTTP Server?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649597</commentid>
    <comment_count>13</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-05-06 07:40:34 -0700</bug_when>
    <thetext>It&apos;s psutil, we might need to add that to our auto-installers, (probably working for you locally because you have it installed for some other reason).

That should be a different change, though, r+ing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649618</commentid>
    <comment_count>14</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-05-06 08:15:51 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #13)
&gt; It&apos;s psutil, we might need to add that to our auto-installers, (probably
&gt; working for you locally because you have it installed for some other reason).
&gt; 
&gt; That should be a different change, though, r+ing.

Ok, great. Created https://bugs.webkit.org/show_bug.cgi?id=211514 to address this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649632</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-06 08:39:53 -0700</bug_when>
    <thetext>Committed r261231: &lt;https://trac.webkit.org/changeset/261231&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398506.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649633</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-06 08:40:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/62931875&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398089</attachid>
            <date>2020-04-30 14:21:51 -0700</date>
            <delta_ts>2020-05-01 10:38:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-211249-20200430232032.patch</filename>
            <type>text/plain</type>
            <size>24172</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTYyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmE1NGJmNDM4OWVkMGUwM2JjZDdjMTI5OGE0MzllYWU4
ZWY2MWQzYy4uZjllNzc0NDQ1MzZkMGE2MzM0ZGI2MGU1ODM3MDBiNzRhOWZmZTBiYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
IEBACisyMDIwLTA0LTMwICBQYWJsbyBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEuY29tPgor
CisgICAgICAgIFB5dGhvbjM6IFN1cHBvcnQgUHl0aG9uMyBpbiBUb29scy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTEyNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNjcmlwdHMvcnVuLWJlbmNobWFyazoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIucHk6CisgICAgICAgIChCZW5jaG1h
cmtCdWlsZGVyLl9mZXRjaF9yZW1vdGVfYXJjaGl2ZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19yZXN1bHRzLnB5OgorICAgICAgICAoQmVu
Y2htYXJrUmVzdWx0cy5fZm9ybWF0X3ZhbHVlcyk6CisgICAgICAgIChCZW5jaG1hcmtSZXN1bHRz
Ll9zdWJ0ZXN0X3ZhbHVlc19ieV9jb25maWdfaXRlcmF0aW9uKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX3Jlc3VsdHNfdW5pdHRlc3QucHk6
CisgICAgICAgIChCZW5jaG1hcmtSZXN1bHRzVGVzdC50ZXN0X2luaXQpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5OgorICAg
ICAgICAoQmVuY2htYXJrUnVubmVyLl9ydW5fYmVuY2htYXJrKToKKyAgICAgICAgKEJlbmNobWFy
a1J1bm5lci5fbWVyZ2UpOgorICAgICAgICAoQmVuY2htYXJrUnVubmVyLnNob3dfcmVzdWx0cyk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJp
dmVyL29zeF9zYWZhcmlfZHJpdmVyLnB5OgorICAgICAgICAoT1NYU2FmYXJpRHJpdmVyLmxhdW5j
aF91cmwpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRw
X3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5OgorICAgICAgICAoSFRUUFNlcnZl
ckRyaXZlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0
dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5OgorICAgICAgICAo
U2ltcGxlSFRUUFNlcnZlckRyaXZlci5zZXJ2ZSk6CisgICAgICAgIChTaW1wbGVIVFRQU2VydmVy
RHJpdmVyLl93YWl0X2Zvcl9odHRwX3NlcnZlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL3J1bl9iZW5jaG1hcmsucHk6CisgICAgICAgIChwYXJzZV9hcmdz
KToKKyAgICAgICAgKGxpc3RfYmVuY2htYXJrX3BsYW5zKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2JlbmNobWFya19ydW5uZXIvd2Vic2VydmVyX2JlbmNobWFya19ydW5uZXIucHk6CisK
IDIwMjAtMDQtMzAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBBZGQgU1BJIHRvIGNoYW5nZSBhIFdLV2ViVmlldydzIENPUlMgZGlzYWJsaW5n
IHBhdHRlcm4gYWZ0ZXIgaW5pdGlhbGl6YXRpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
cnVuLWJlbmNobWFyayBiL1Rvb2xzL1NjcmlwdHMvcnVuLWJlbmNobWFyawppbmRleCA5YWE2ZDNh
OWRmZDM4MThlZDI0Y2U1ZWI2NTk5MGRmYjM4ZDQzYjliLi45YzVkYTk2ZjRiODdiMWZkMjJjOTQ5
MTcyNzRkYjgxOWM5NDU5OGE2IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi1iZW5jaG1h
cmsKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tYmVuY2htYXJrCkBAIC0xLDQgKzEsNCBAQAotIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCisjIS91c3IvYmluL2VudiBweXRob24zCiAKIGltcG9ydCBsb2dn
aW5nCiBpbXBvcnQgc3lzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIucHkKaW5kZXggNzFhMDA2ZTNjNTRh
YzExMWU0OTUzZWJlNGRhYjlmYWIyNTVlNzdjYy4uMTdmMWVhZGM2NmUxNWMzZGU5ZmZlMDdiODk3
Yjk0MmNmNTQ1ZWRiNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci5weQpAQCAtMSw5ICsxLDExIEBA
Ci0jIS91c3IvYmluL2VudiBweXRob24KKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKIAogaW1wb3J0
IGxvZ2dpbmcKIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IG9zCi1pbXBvcnQgdXJsbGliCitpbXBv
cnQgdXJsbGliLnJlcXVlc3QKK2ltcG9ydCB1cmxsaWIucGFyc2UKK2ltcG9ydCB1cmxsaWIuZXJy
b3IKIGltcG9ydCBzaHV0aWwKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgdGFyZmlsZQpAQCAt
NzAsNyArNzIsNyBAQCBjbGFzcyBCZW5jaG1hcmtCdWlsZGVyKG9iamVjdCk6CiAKICAgICAgICAg
YXJjaGl2ZV9wYXRoID0gb3MucGF0aC5qb2luKHNlbGYuX3dlYl9yb290LCAnYXJjaGl2ZS4nICsg
YXJjaGl2ZV90eXBlKQogICAgICAgICBfbG9nLmluZm8oJ0Rvd25sb2FkaW5nICVzIHRvICVzJyAl
IChhcmNoaXZlX3VybCwgYXJjaGl2ZV9wYXRoKSkKLSAgICAgICAgdXJsbGliLnVybHJldHJpZXZl
KGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgpCisgICAgICAgIHVybGxpYi5yZXF1ZXN0LnVybHJl
dHJpZXZlKGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgpCiAKICAgICAgICAgaWYgYXJjaGl2ZV90
eXBlID09ICd6aXAnOgogICAgICAgICAgICAgd2l0aCBaaXBGaWxlKGFyY2hpdmVfcGF0aCwgJ3In
KSBhcyBhcmNoaXZlOgpAQCAtNzksNyArODEsNyBAQCBjbGFzcyBCZW5jaG1hcmtCdWlsZGVyKG9i
amVjdCk6CiAgICAgICAgICAgICB3aXRoIHRhcmZpbGUub3BlbihhcmNoaXZlX3BhdGgsICdyOmd6
JykgYXMgYXJjaGl2ZToKICAgICAgICAgICAgICAgICBhcmNoaXZlLmV4dHJhY3RhbGwoc2VsZi5f
ZGVzdCkKIAotICAgICAgICB1bmFyY2hpdmVkX2ZpbGVzID0gZmlsdGVyKGxhbWJkYSBuYW1lOiBu
b3QgbmFtZS5zdGFydHN3aXRoKCcuJyksIG9zLmxpc3RkaXIoc2VsZi5fZGVzdCkpCisgICAgICAg
IHVuYXJjaGl2ZWRfZmlsZXMgPSBbbmFtZSBmb3IgbmFtZSBpbiBvcy5saXN0ZGlyKHNlbGYuX2Rl
c3QpIGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoJy4nKV0KICAgICAgICAgaWYgbGVuKHVuYXJjaGl2
ZWRfZmlsZXMpID09IDE6CiAgICAgICAgICAgICBmaXJzdF9maWxlID0gb3MucGF0aC5qb2luKHNl
bGYuX2Rlc3QsIHVuYXJjaGl2ZWRfZmlsZXNbMF0pCiAgICAgICAgICAgICBpZiBvcy5wYXRoLmlz
ZGlyKGZpcnN0X2ZpbGUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2JlbmNobWFya19yZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19yZXN1bHRzLnB5CmluZGV4IDk4YTA2YmIzM2Jm
NzMyM2U0N2M4MTlmMGI5OTI5ZTRhYmEyODQ0Y2UuLjM5ZDUxYzE5MmE3ZmZlYzFmODFmZjg1OWIw
ZTEyZDM5OTY1MDBmNDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9iZW5jaG1hcmtfcmVzdWx0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX3Jlc3VsdHMucHkKQEAgLTg1LDcgKzg1LDcg
QEAgY2xhc3MgQmVuY2htYXJrUmVzdWx0cyhvYmplY3QpOgogICAgICAgICB2YWx1ZXMgPSBsaXN0
KG1hcChmbG9hdCwgdmFsdWVzKSkKICAgICAgICAgdG90YWwgPSBzdW0odmFsdWVzKQogICAgICAg
ICBtZWFuID0gdG90YWwgLyBsZW4odmFsdWVzKQotICAgICAgICBzcXVhcmVfc3VtID0gc3VtKG1h
cChsYW1iZGEgeDogeCAqIHgsIHZhbHVlcykpCisgICAgICAgIHNxdWFyZV9zdW0gPSBzdW0oW3gg
KiB4IGZvciB4IGluIHZhbHVlc10pCiAgICAgICAgIHNhbXBsZV9jb3VudCA9IGxlbih2YWx1ZXMp
CiAKICAgICAgICAgIyBXaXRoIHN1bSBhbmQgc3VtIG9mIHNxdWFyZXMsIHdlIGNhbiBjb21wdXRl
IHRoZSBzYW1wbGUgc3RhbmRhcmQgZGV2aWF0aW9uIGluIE8oMSkuCkBAIC0xMDEsMTMgKzEwMSwx
MyBAQCBjbGFzcyBCZW5jaG1hcmtSZXN1bHRzKG9iamVjdCk6CiAgICAgICAgIGlmIG5vdCBzY2Fs
ZV91bml0OgogICAgICAgICAgICAgZm9ybWF0dGVkX3ZhbHVlID0gJ3ttZWFuOi4zZn17dW5pdH0g
c3RkZXY9e2RlbHRhOi4xJX0nLmZvcm1hdChtZWFuPW1lYW4sIGRlbHRhPXNhbXBsZV9zdGRldiAv
IG1lYW4sIHVuaXQ9dW5pdCkKICAgICAgICAgICAgIGlmIHNob3dfaXRlcmF0aW9uX3ZhbHVlczoK
LSAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfdmFsdWUgKz0gJyBbJyArICcsICcuam9pbihtYXAo
bGFtYmRhIHZhbHVlOiAne3ZhbHVlOi4zZn0nLmZvcm1hdCh2YWx1ZT12YWx1ZSksIHZhbHVlcykp
ICsgJ10nCisgICAgICAgICAgICAgICAgZm9ybWF0dGVkX3ZhbHVlICs9ICcgWycgKyAnLCAnLmpv
aW4oWyd7dmFsdWU6LjNmfScuZm9ybWF0KHZhbHVlPXZhbHVlKSBmb3IgdmFsdWUgaW4gdmFsdWVz
XSkgKyAnXScKICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWRfdmFsdWUKIAogICAgICAgICBp
ZiB1bml0ID09ICdtcyc6CiAgICAgICAgICAgICB1bml0ID0gJ3MnCiAgICAgICAgICAgICBtZWFu
ID0gZmxvYXQobWVhbikgLyAxMDAwCi0gICAgICAgICAgICB2YWx1ZXMgPSBsaXN0KG1hcChsYW1i
ZGEgdmFsdWU6IGZsb2F0KHZhbHVlKSAvIDEwMDAsIHZhbHVlcykpCisgICAgICAgICAgICB2YWx1
ZXMgPSBsaXN0KFtmbG9hdCh2YWx1ZSkgLyAxMDAwIGZvciB2YWx1ZSBpbiB2YWx1ZXNdKQogICAg
ICAgICAgICAgc2FtcGxlX3N0ZGV2IC89IDEwMDAKIAogICAgICAgICBiYXNlID0gMTAyNCBpZiB1
bml0ID09ICdCJyBlbHNlIDEwMDAKQEAgLTEyNiw3ICsxMjYsNyBAQCBjbGFzcyBCZW5jaG1hcmtS
ZXN1bHRzKG9iamVjdCk6CiAKICAgICAgICAgZm9ybWF0dGVkX3ZhbHVlID0gJ3ttZWFufXtwcmVm
aXh9e3VuaXR9IHN0ZGV2PXtkZWx0YTouMSV9Jy5mb3JtYXQobWVhbj1mb3JtYXRfc2NhbGVkKHNj
YWxlZF9tZWFuKSwgZGVsdGE9c2FtcGxlX3N0ZGV2IC8gbWVhbiwgcHJlZml4PVNJX3ByZWZpeCwg
dW5pdD11bml0KQogICAgICAgICBpZiBzaG93X2l0ZXJhdGlvbl92YWx1ZXM6Ci0gICAgICAgICAg
ICBmb3JtYXR0ZWRfdmFsdWUgKz0gJyBbJyArICcsICcuam9pbihtYXAobGFtYmRhIHZhbHVlOiBm
b3JtYXRfc2NhbGVkKHZhbHVlICogc2NhbGluZ19mYWN0b3IpLCB2YWx1ZXMpKSArICddJworICAg
ICAgICAgICAgZm9ybWF0dGVkX3ZhbHVlICs9ICcgWycgKyAnLCAnLmpvaW4oW2Zvcm1hdF9zY2Fs
ZWQodmFsdWUgKiBzY2FsaW5nX2ZhY3RvcikgZm9yIHZhbHVlIGluIHZhbHVlc10pICsgJ10nCiAg
ICAgICAgIHJldHVybiBmb3JtYXR0ZWRfdmFsdWUKIAogICAgIEBjbGFzc21ldGhvZApAQCAtMTgy
LDcgKzE4Miw3IEBAIGNsYXNzIEJlbmNobWFya1Jlc3VsdHMob2JqZWN0KToKICAgICAgICAgICAg
ICAgICByZXN1bHRzX2Zvcl9hZ2dyZWdhdG9yID0gcmVzdWx0c19mb3JfbWV0cmljLmdldChhZ2dy
ZWdhdG9yKQogICAgICAgICAgICAgZWxpZiBOb25lIGluIHJlc3VsdHNfZm9yX21ldHJpYzoKICAg
ICAgICAgICAgICAgICByZXN1bHRzX2Zvcl9hZ2dyZWdhdG9yID0gcmVzdWx0c19mb3JfbWV0cmlj
LmdldChOb25lKQotICAgICAgICAgICAgZWxpZiBsZW4ocmVzdWx0c19mb3JfbWV0cmljLmtleXMo
KSkgPT0gMToKKyAgICAgICAgICAgIGVsaWYgbGVuKGxpc3QocmVzdWx0c19mb3JfbWV0cmljLmtl
eXMoKSkpID09IDE6CiAgICAgICAgICAgICAgICAgcmVzdWx0c19mb3JfYWdncmVnYXRvciA9IHJl
c3VsdHNfZm9yX21ldHJpYy5nZXQobGlzdChyZXN1bHRzX2Zvcl9tZXRyaWMua2V5cygpKVswXSkK
ICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmVzdWx0c19mb3JfYWdncmVnYXRv
ciA9IHt9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvYmVuY2htYXJrX3Jlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX3Jlc3VsdHNfdW5pdHRlc3QucHkKb2xkIG1vZGUg
MTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCBmYzlmZjAxNzJhNWJmNTY4OWU2NDg0MGFkMTI2
NTc1NmY4ZTUwMWE3Li5lMjAyZGRjZjVmYTNiMmZiNDU2ODk4ZDgxZTdiYTgzZDRlODZlMWY1Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcmVz
dWx0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvYmVuY2htYXJrX3Jlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTEsMyArMSw0IEBACisjIS91
c3IvYmluL2VudiBweXRob24zCiAjIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzAsNyArMzEsNyBAQCBjbGFzcyBC
ZW5jaG1hcmtSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHJlc3VsdHMg
PSBCZW5jaG1hcmtSZXN1bHRzKHsnU29tZVRlc3QnOiB7J21ldHJpY3MnOiB7J1RpbWUnOiB7J2N1
cnJlbnQnOiBbMSwgMiwgM119fX19KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdHMu
X3Jlc3VsdHMsIHsnU29tZVRlc3QnOiB7J21ldHJpY3MnOiB7J1RpbWUnOiB7Tm9uZTogeydjdXJy
ZW50JzogWzEsIDIsIDNdfX19LCAndGVzdHMnOiB7fX19KQogCi0gICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXNSZWdleHAoVHlwZUVycm9yLCByJyJUaW1lIiBtZXRyaWMgb2YgIlNvbWVUZXN0
IiBjb250YWlucyBub24tbnVtZXJpYyB2YWx1ZTogXFsxLCAyLCAiYSJcXScpOgorICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCByJyJUaW1lIiBtZXRyaWMgb2Yg
IlNvbWVUZXN0IiBjb250YWlucyBub24tbnVtZXJpYyB2YWx1ZTogXFsxLCAyLCAiYSJcXScpOgog
ICAgICAgICAgICAgQmVuY2htYXJrUmVzdWx0cyh7J1NvbWVUZXN0JzogeydtZXRyaWNzJzogeydU
aW1lJzogeydjdXJyZW50JzogWzEsIDIsICdhJ119fX19KQogCiAgICAgZGVmIHRlc3RfZm9ybWF0
KHNlbGYpOgpAQCAtMjY5LDU3ICsyNzAsNTcgQEAgU29tZVRlc3Q6VGltZTpBcml0aG1ldGljOiAz
LjBtcyBzdGRldj0zMy4zJQogICAgICAgICAgICAgICAgICAgICAnU3ViVGVzdDInOiB7J21ldHJp
Y3MnOiB7J1RpbWUnOiB7Tm9uZTogeydjdXJyZW50JzogWzksIDI0XX19fSwgJ3Rlc3RzJzoge319
fX19KQogCiAgICAgZGVmIHRlc3RfbGludF9yZXN1bHRzKHNlbGYpOgotICAgICAgICB3aXRoIHNl
bGYuYXNzZXJ0UmFpc2VzUmVnZXhwKFR5cGVFcnJvciwgciciU29tZVRlc3QiIGRvZXMgbm90IGNv
bnRhaW4gbWV0cmljcyBvciB0ZXN0cycpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2Vz
UmVnZXgoVHlwZUVycm9yLCByJyJTb21lVGVzdCIgZG9lcyBub3QgY29udGFpbiBtZXRyaWNzIG9y
IHRlc3RzJyk6CiAgICAgICAgICAgICBCZW5jaG1hcmtSZXN1bHRzLl9saW50X3Jlc3VsdHMoeydT
b21lVGVzdCc6IHt9fSkKIAotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXhwKFR5
cGVFcnJvciwgcidUaGUgbWV0cmljcyBpbiAiU29tZVRlc3QiIGlzIG5vdCBhIGRpY3Rpb25hcnkn
KToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgcidUaGUg
bWV0cmljcyBpbiAiU29tZVRlc3QiIGlzIG5vdCBhIGRpY3Rpb25hcnknKToKICAgICAgICAgICAg
IEJlbmNobWFya1Jlc3VsdHMuX2xpbnRfcmVzdWx0cyh7J1NvbWVUZXN0JzogeydtZXRyaWNzJzog
W119fSkKIAotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXhwKFR5cGVFcnJvciwg
cidUaGUgYWdncmVnYXRvciBsaXN0IGlzIGVtcHR5IGluICJUaW1lIiBtZXRyaWMgb2YgIlNvbWVU
ZXN0IicpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCBy
J1RoZSBhZ2dyZWdhdG9yIGxpc3QgaXMgZW1wdHkgaW4gIlRpbWUiIG1ldHJpYyBvZiAiU29tZVRl
c3QiJyk6CiAgICAgICAgICAgICBCZW5jaG1hcmtSZXN1bHRzLl9saW50X3Jlc3VsdHMoeydTb21l
VGVzdCc6IHsnbWV0cmljcyc6IHsnVGltZSc6IFtdfX19KQogCi0gICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXNSZWdleHAoVHlwZUVycm9yLCByJyJUaW1lIiBtZXRyaWMgb2YgIlNvbWVUZXN0
IiBpcyBub3Qgd3JhcHBlZCBieSBhIGNvbmZpZ3VyYXRpb247IGUuZy4gImN1cnJlbnQiJyk6Cisg
ICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsIHInIlRpbWUiIG1l
dHJpYyBvZiAiU29tZVRlc3QiIGlzIG5vdCB3cmFwcGVkIGJ5IGEgY29uZmlndXJhdGlvbjsgZS5n
LiAiY3VycmVudCInKToKICAgICAgICAgICAgIEJlbmNobWFya1Jlc3VsdHMuX2xpbnRfcmVzdWx0
cyh7J1NvbWVUZXN0JzogeydtZXRyaWNzJzogeydUaW1lJzogWzEsIDJdfX19KQogCiAgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShCZW5jaG1hcmtSZXN1bHRzLl9saW50X3Jlc3VsdHMoeydTb21lVGVz
dCc6IHsnbWV0cmljcyc6IHsnVGltZSc6IHsnY3VycmVudCc6IFsxLCAyXX19fX0pKQogCi0gICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleHAoVHlwZUVycm9yLCByJyJUaW1lIiBtZXRy
aWMgb2YgIlNvbWVUZXN0IiB3YXMgbm90IGFuIGFnZ3JlZ2F0b3IgbGlzdCBvciBhIGRpY3Rpb25h
cnkgb2YgY29uZmlndXJhdGlvbnM6IDEnKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
c1JlZ2V4KFR5cGVFcnJvciwgciciVGltZSIgbWV0cmljIG9mICJTb21lVGVzdCIgd2FzIG5vdCBh
biBhZ2dyZWdhdG9yIGxpc3Qgb3IgYSBkaWN0aW9uYXJ5IG9mIGNvbmZpZ3VyYXRpb25zOiAxJyk6
CiAgICAgICAgICAgICBCZW5jaG1hcmtSZXN1bHRzLl9saW50X3Jlc3VsdHMoeydTb21lVGVzdCc6
IHsnbWV0cmljcyc6IHsnVGltZSc6IDF9fX0pCiAKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJh
aXNlc1JlZ2V4cChUeXBlRXJyb3IsIHInIlRpbWUiIG1ldHJpYyBvZiAiU29tZVRlc3QiIGNvbnRh
aW5zIG5vbi1udW1lcmljIHZhbHVlOiBcWyJUb3RhbCJcXScpOgorICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCByJyJUaW1lIiBtZXRyaWMgb2YgIlNvbWVUZXN0
IiBjb250YWlucyBub24tbnVtZXJpYyB2YWx1ZTogXFsiVG90YWwiXF0nKToKICAgICAgICAgICAg
IEJlbmNobWFya1Jlc3VsdHMuX2xpbnRfcmVzdWx0cyh7J1NvbWVUZXN0JzogeydtZXRyaWNzJzog
eydUaW1lJzogeydjdXJyZW50JzogWydUb3RhbCddfX19fSkKIAotICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzUmVnZXhwKFR5cGVFcnJvciwgciciVGltZSIgbWV0cmljIG9mICJTb21lVGVz
dCIgY29udGFpbnMgbm9uLW51bWVyaWMgdmFsdWU6IFxbIlRvdGFsIiwgIkdlb21ldHJpYyJcXScp
OgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCByJyJUaW1l
IiBtZXRyaWMgb2YgIlNvbWVUZXN0IiBjb250YWlucyBub24tbnVtZXJpYyB2YWx1ZTogXFsiVG90
YWwiLCAiR2VvbWV0cmljIlxdJyk6CiAgICAgICAgICAgICBCZW5jaG1hcmtSZXN1bHRzLl9saW50
X3Jlc3VsdHMoeydTb21lVGVzdCc6IHsnbWV0cmljcyc6IHsnVGltZSc6IHsnY3VycmVudCc6IFtb
J1RvdGFsJywgJ0dlb21ldHJpYyddXX19fX0pCiAKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJh
aXNlc1JlZ2V4cChUeXBlRXJyb3IsIHInIlNvbWVUZXN0IiByZXF1aXJlcyBhZ2dyZWdhdGlvbiBi
dXQgaXQgaGFzIG5vIHN1YnRlc3RzJyk6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNS
ZWdleChUeXBlRXJyb3IsIHInIlNvbWVUZXN0IiByZXF1aXJlcyBhZ2dyZWdhdGlvbiBidXQgaXQg
aGFzIG5vIHN1YnRlc3RzJyk6CiAgICAgICAgICAgICBCZW5jaG1hcmtSZXN1bHRzLl9saW50X3Jl
c3VsdHMoeydTb21lVGVzdCc6IHsnbWV0cmljcyc6IHsnVGltZSc6IFsnVG90YWwnXX19fSkKIAot
ICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXhwKFR5cGVFcnJvciwgciciT3RoZXJU
ZXN0IiByZXF1aXJlcyBhZ2dyZWdhdGlvbiBidXQgaXQgaGFzIG5vIHN1YnRlc3RzJyk6CisgICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsIHInIk90aGVyVGVzdCIg
cmVxdWlyZXMgYWdncmVnYXRpb24gYnV0IGl0IGhhcyBubyBzdWJ0ZXN0cycpOgogICAgICAgICAg
ICAgQmVuY2htYXJrUmVzdWx0cy5fbGludF9yZXN1bHRzKHsnT3RoZXJUZXN0JzogeydtZXRyaWNz
JzogeydUaW1lJzogWydUb3RhbCddfX19KQogCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlz
ZXNSZWdleHAoVHlwZUVycm9yLCByJyJUaW1lIiBtZXRyaWMgb2YgIlNvbWVUZXN0IiBoYWQgaW52
YWxpZCBhZ2dyZWdhdG9yIGxpc3Q6IFxbIlRvdGFsIiwgIlRvdGFsIlxdJyk6CisgICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsIHInIlRpbWUiIG1ldHJpYyBvZiAi
U29tZVRlc3QiIGhhZCBpbnZhbGlkIGFnZ3JlZ2F0b3IgbGlzdDogXFsiVG90YWwiLCAiVG90YWwi
XF0nKToKICAgICAgICAgICAgIEJlbmNobWFya1Jlc3VsdHMuX2xpbnRfcmVzdWx0cyh7J1NvbWVU
ZXN0JzogeydtZXRyaWNzJzogeydUaW1lJzogWydUb3RhbCcsICdUb3RhbCddfSwgJ3Rlc3RzJzog
ewogICAgICAgICAgICAgICAgICdTdWJUZXN0MSc6IHsnbWV0cmljcyc6IHsnVGltZSc6IHsnY3Vy
cmVudCc6IFtdfX19fX19KQogCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleHAo
VHlwZUVycm9yLCByJyJUaW1lIiBtZXRyaWMgb2YgIlNvbWVUZXN0IiB1c2VzIHVua25vd24gYWdn
cmVnYXRvcjogS2l0dGVuTWVhbicpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVn
ZXgoVHlwZUVycm9yLCByJyJUaW1lIiBtZXRyaWMgb2YgIlNvbWVUZXN0IiB1c2VzIHVua25vd24g
YWdncmVnYXRvcjogS2l0dGVuTWVhbicpOgogICAgICAgICAgICAgQmVuY2htYXJrUmVzdWx0cy5f
bGludF9yZXN1bHRzKHsnU29tZVRlc3QnOiB7J21ldHJpY3MnOiB7J1RpbWUnOiBbJ0tpdHRlbk1l
YW4nXX0sICd0ZXN0cyc6IHsKICAgICAgICAgICAgICAgICAnU3ViVGVzdDEnOiB7J21ldHJpY3Mn
OiB7J1RpbWUnOiB7J2N1cnJlbnQnOiBbXX19fX19fSkKIAotICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzUmVnZXhwKFR5cGVFcnJvciwgciciVGltZSIgbWV0cmljIG9mICJTb21lVGVzdCIg
aGFkIGEgbWlzbWF0Y2hpbmcgc3VidGVzdCB2YWx1ZXMnKToKKyAgICAgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgciciVGltZSIgbWV0cmljIG9mICJTb21lVGVzdCIg
aGFkIGEgbWlzbWF0Y2hpbmcgc3VidGVzdCB2YWx1ZXMnKToKICAgICAgICAgICAgIEJlbmNobWFy
a1Jlc3VsdHMuX2xpbnRfcmVzdWx0cyh7J1NvbWVUZXN0JzogeydtZXRyaWNzJzogeydUaW1lJzog
WydUb3RhbCddfSwgJ3Rlc3RzJzogewogICAgICAgICAgICAgICAgICdTdWJUZXN0MSc6IHsnbWV0
cmljcyc6IHsnVGltZSc6IHsnY3VycmVudCc6IFsxLCAyLCAzXX19fSwKICAgICAgICAgICAgICAg
ICAnU3ViVGVzdDInOiB7J21ldHJpY3MnOiB7J1RpbWUnOiB7J2N1cnJlbnQnOiBbNCwgNSwgNiwg
N119fX19fX0pCiAKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4cChUeXBlRXJy
b3IsIHInIlRpbWUiIG1ldHJpYyBvZiAiU29tZVRlc3QiIGhhZCBhIG1pc21hdGNoaW5nIHN1YnRl
c3QgdmFsdWVzJyk6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJy
b3IsIHInIlRpbWUiIG1ldHJpYyBvZiAiU29tZVRlc3QiIGhhZCBhIG1pc21hdGNoaW5nIHN1YnRl
c3QgdmFsdWVzJyk6CiAgICAgICAgICAgICBCZW5jaG1hcmtSZXN1bHRzLl9saW50X3Jlc3VsdHMo
eydTb21lVGVzdCc6IHsnbWV0cmljcyc6IHsnVGltZSc6IFsnVG90YWwnXX0sICd0ZXN0cyc6IHsK
ICAgICAgICAgICAgICAgICAnU3ViVGVzdDEnOiB7J21ldHJpY3MnOiB7J1RpbWUnOiB7J2N1cnJl
bnQnOiBbWzEsIDJdLCBbM11dfX19LAogICAgICAgICAgICAgICAgICdTdWJUZXN0Mic6IHsnbWV0
cmljcyc6IHsnVGltZSc6IHsnY3VycmVudCc6IFtbNCwgNV0sIFs2LCA3XV19fX19fX0pCiAKLSAg
ICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4cChUeXBlRXJyb3IsIHInIlRpbWUiIG1l
dHJpYyBvZiAiU29tZVRlc3QiIGhhZCBtYWxmb3JtZWQgdmFsdWVzOiBcWzEsIFxbMlxdLCAzXF0n
KToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgciciVGlt
ZSIgbWV0cmljIG9mICJTb21lVGVzdCIgaGFkIG1hbGZvcm1lZCB2YWx1ZXM6IFxbMSwgXFsyXF0s
IDNcXScpOgogICAgICAgICAgICAgQmVuY2htYXJrUmVzdWx0cy5fbGludF9yZXN1bHRzKHsnU29t
ZVRlc3QnOiB7J21ldHJpY3MnOiB7J1RpbWUnOiB7J2N1cnJlbnQnOiBbMSwgWzJdLCAzXX19fX0p
CiAKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4cChUeXBlRXJyb3IsIHInIlRp
bWUiIG1ldHJpYyBvZiAiU29tZVRlc3QiIGhhcyBubyB2YWx1ZSB0byBhZ2dyZWdhdGUgYXMgIkFy
aXRobWV0aWMiIGluIGEgc3VidGVzdCAiU3ViVGVzdDEiJyk6CisgICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsIHInIlRpbWUiIG1ldHJpYyBvZiAiU29tZVRlc3Qi
IGhhcyBubyB2YWx1ZSB0byBhZ2dyZWdhdGUgYXMgIkFyaXRobWV0aWMiIGluIGEgc3VidGVzdCAi
U3ViVGVzdDEiJyk6CiAgICAgICAgICAgICBCZW5jaG1hcmtSZXN1bHRzLl9saW50X3Jlc3VsdHMo
eydTb21lVGVzdCc6IHsKICAgICAgICAgICAgICAgICAnbWV0cmljcyc6IHsnVGltZSc6IFsnQXJp
dGhtZXRpYyddfSwKICAgICAgICAgICAgICAgICAndGVzdHMnOiB7CkBAIC0zNDEsMyArMzQyLDcg
QEAgU29tZVRlc3Q6VGltZTpBcml0aG1ldGljOiAzLjBtcyBzdGRldj0zMy4zJQogICAgICAgICBz
ZWxmLmFzc2VydFRydWUoQmVuY2htYXJrUmVzdWx0cy5fbGludF9yZXN1bHRzKHsnU29tZVRlc3Qn
OiB7J21ldHJpY3MnOiB7J1RpbWUnOiBbJ1RvdGFsJ119LCAndGVzdHMnOiB7CiAgICAgICAgICAg
ICAnU3ViVGVzdDEnOiB7J21ldHJpY3MnOiB7J1RpbWUnOiB7J2N1cnJlbnQnOiBbWzEsIDJdLCBb
MywgNF1dfX19LAogICAgICAgICAgICAgJ1N1YlRlc3QyJzogeydtZXRyaWNzJzogeydUaW1lJzog
eydjdXJyZW50JzogW1s1LCA2XSwgWzcsIDhdXX19fX19fSkpCisKKworaWYgX19uYW1lX18gPT0g
J19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKaW5k
ZXggOTE5NDIyNjgzODhlMmMzMWUwMWM2NGIyOWJjZTk2ZWNkNDFjOTYwNS4uYjU4NWI0ZDlmMWFk
NTBjMDNiMzQ1NmRiYzQ5ZjA5OTk4YzZlZTU3OCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKQEAg
LTEsNCArMSw0IEBACi0jIS91c3IvYmluL2VudiBweXRob24KKyMhL3Vzci9iaW4vZW52IHB5dGhv
bjMKIAogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCkBAIC03OCw3ICs3OCw3IEBAIGNsYXNz
IEJlbmNobWFya1J1bm5lcihvYmplY3QpOgogICAgICAgICBkZWJ1Z19vdXRwdXRzID0gW10KICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5fYnJvd3Nlcl9kcml2ZXIucHJlcGFyZV9pbml0
aWFsX2VudihzZWxmLl9jb25maWcpCi0gICAgICAgICAgICBmb3IgaXRlcmF0aW9uIGluIHhyYW5n
ZSgxLCBjb3VudCArIDEpOgorICAgICAgICAgICAgZm9yIGl0ZXJhdGlvbiBpbiByYW5nZSgxLCBj
b3VudCArIDEpOgogICAgICAgICAgICAgICAgIF9sb2cuaW5mbygnU3RhcnQgdGhlIGl0ZXJhdGlv
biB7Y3VycmVudF9pdGVyYXRpb259IG9mIHtpdGVyYXRpb25zfSBmb3IgY3VycmVudCBiZW5jaG1h
cmsnLmZvcm1hdChjdXJyZW50X2l0ZXJhdGlvbj1pdGVyYXRpb24sIGl0ZXJhdGlvbnM9Y291bnQp
KQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fYnJvd3Nl
cl9kcml2ZXIucHJlcGFyZV9lbnYoc2VsZi5fY29uZmlnKQpAQCAtMTQyLDE2ICsxNDIsMTYgQEAg
Y2xhc3MgQmVuY2htYXJrUnVubmVyKG9iamVjdCk6CiAgICAgICAgIGFzc2VydChpc2luc3RhbmNl
KGEsIHR5cGUoYikpKQogICAgICAgICBhcmdfdHlwZSA9IHR5cGUoYSkKICAgICAgICAgIyBzcGVj
aWFsIGhhbmRsZSBmb3IgbGlzdCB0eXBlLCBhbmQgc2hvdWxkIGJlIGhhbmRsZSBiZWZvcmUgZXF1
YWwgY2hlY2sKLSAgICAgICAgaWYgYXJnX3R5cGUgPT0gdHlwZXMuTGlzdFR5cGUgYW5kIGxlbihh
KSBhbmQgKHR5cGUoYVswXSkgPT0gdHlwZXMuU3RyaW5nVHlwZSBvciB0eXBlKGFbMF0pID09IHR5
cGVzLlVuaWNvZGVUeXBlKToKKyAgICAgICAgaWYgYXJnX3R5cGUgPT0gbGlzdCBhbmQgbGVuKGEp
IGFuZCAodHlwZShhWzBdKSA9PSBieXRlcyBvciB0eXBlKGFbMF0pID09IHN0cik6CiAgICAgICAg
ICAgICByZXR1cm4gYQotICAgICAgICBpZiBhcmdfdHlwZSA9PSB0eXBlcy5EaWN0VHlwZToKKyAg
ICAgICAgaWYgYXJnX3R5cGUgPT0gZGljdDoKICAgICAgICAgICAgIHJlc3VsdCA9IHt9Ci0gICAg
ICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBhLml0ZW1zKCk6CisgICAgICAgICAgICBmb3Iga2V5
LCB2YWx1ZSBpbiBsaXN0KGEuaXRlbXMoKSk6CiAgICAgICAgICAgICAgICAgaWYga2V5IGluIGI6
CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gY2xzLl9tZXJnZSh2YWx1ZSwgYltr
ZXldKQogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtr
ZXldID0gdmFsdWUKLSAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGIuaXRlbXMoKToKKyAg
ICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGxpc3QoYi5pdGVtcygpKToKICAgICAgICAgICAg
ICAgICBpZiBrZXkgbm90IGluIHJlc3VsdDoKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tl
eV0gPSB2YWx1ZQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdApAQCAtMTYxLDQgKzE2MSw0IEBA
IGNsYXNzIEJlbmNobWFya1J1bm5lcihvYmplY3QpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRl
ZiBzaG93X3Jlc3VsdHMoY2xzLCByZXN1bHRzLCBzY2FsZV91bml0PVRydWUsIHNob3dfaXRlcmF0
aW9uX3ZhbHVlcz1GYWxzZSk6CiAgICAgICAgIHJlc3VsdHMgPSBCZW5jaG1hcmtSZXN1bHRzKHJl
c3VsdHMpCi0gICAgICAgIHByaW50KHJlc3VsdHMuZm9ybWF0KHNjYWxlX3VuaXQsIHNob3dfaXRl
cmF0aW9uX3ZhbHVlcykpCisgICAgICAgIHByaW50KChyZXN1bHRzLmZvcm1hdChzY2FsZV91bml0
LCBzaG93X2l0ZXJhdGlvbl92YWx1ZXMpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2RyaXZlci5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZl
ci9vc3hfc2FmYXJpX2RyaXZlci5weQppbmRleCBkMTY4NzI4NDcwNjY2NzM2ZTI3MDBiZjNiYzk3
MWI0NTVlNjNjMzgyLi5hZmM2MjhiNmMxZWFiODRiMzdlMzE0YzkxZGFiNDhkODU2MzUwYTE2IDEw
MDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nl
cl9kcml2ZXIvb3N4X3NhZmFyaV9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9zYWZhcmlfZHJpdmVyLnB5CkBA
IC0xLDQgKzEsNCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIS91c3IvYmluL2VudiBweXRo
b24zCiAKIGltcG9ydCBpdGVydG9vbHMKIGltcG9ydCBsb2dnaW5nCkBAIC0zMiw3ICszMiw3IEBA
IGNsYXNzIE9TWFNhZmFyaURyaXZlcihPU1hCcm93c2VyRHJpdmVyKToKICAgICAgICAgICAgIHNh
ZmFyaV9hcHBfaW5fYnVpbGRfcGF0aCA9IG9zLnBhdGguam9pbihicm93c2VyX2J1aWxkX2Fic29s
dXRlX3BhdGgsICdTYWZhcmkuYXBwL0NvbnRlbnRzL01hY09TL1NhZmFyaScpCiAgICAgICAgICAg
ICBoYXNfc2FmYXJpX2FwcCA9IG9zLnBhdGguZXhpc3RzKHNhZmFyaV9hcHBfaW5fYnVpbGRfcGF0
aCkKICAgICAgICAgICAgIGNvbnRlbnRfaW5fcGF0aCA9IG9zLmxpc3RkaXIoYnJvd3Nlcl9idWls
ZF9hYnNvbHV0ZV9wYXRoKQotICAgICAgICAgICAgY29udGFpbnNfZnJhbWV3b3JrcyA9IGFueShp
dGVydG9vbHMuaW1hcChsYW1iZGEgZW50cnk6IGVudHJ5LmVuZHN3aXRoKCcuZnJhbWV3b3JrJyks
IG9zLmxpc3RkaXIoYnJvd3Nlcl9idWlsZF9hYnNvbHV0ZV9wYXRoKSkpCisgICAgICAgICAgICBj
b250YWluc19mcmFtZXdvcmtzID0gYW55KG1hcChsYW1iZGEgZW50cnk6IGVudHJ5LmVuZHN3aXRo
KCcuZnJhbWV3b3JrJyksIG9zLmxpc3RkaXIoYnJvd3Nlcl9idWlsZF9hYnNvbHV0ZV9wYXRoKSkp
CiAKICAgICAgICAgICAgIGlmIGhhc19zYWZhcmlfYXBwOgogICAgICAgICAgICAgICAgIGFyZ3Mg
PSBbc2FmYXJpX2FwcF9pbl9idWlsZF9wYXRoXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9k
cml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9z
ZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlci5weQppbmRleCA1OTkxZTNiMzkzOGQ1MzE4
Yzg0YjY4YzA4NjU0MDU3YWM2MTM2NjcxLi4zM2QzZDNjZDU5NTU1NTBkYTU2MTkwZmU1ZjBjNTc2
NjYzM2ViZTIwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlci5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0
dHBfc2VydmVyX2RyaXZlci5weQpAQCAtMSwxMyArMSwxMSBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCisjIS91c3IvYmluL2VudiBweXRob24zCiAKIGZyb20gYWJjIGltcG9ydCBhYnN0cmFjdG1l
dGhvZCwgQUJDTWV0YQogCiAKLWNsYXNzIEhUVFBTZXJ2ZXJEcml2ZXIob2JqZWN0KToKK2NsYXNz
IEhUVFBTZXJ2ZXJEcml2ZXIob2JqZWN0LCBtZXRhY2xhc3M9QUJDTWV0YSk6CiAgICAgcGxhdGZv
cm1zID0gW10KIAotICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCi0KICAgICBAYWJzdHJhY3Rt
ZXRob2QKICAgICBkZWYgc2VydmUoc2VsZiwgd2ViUm9vdCk6CiAgICAgICAgIHBhc3MKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZl
cl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2Vy
dmVyX2RyaXZlci5weQppbmRleCBmMjQ2MTFkOGI2OGFkZGUxM2Q4YTM3ZjRlYzExNmUxZTY3NGU4
ZjNjLi40YTY5OWQwYmVjZjE2NDliYzUyMDk2YTRlYmJhNzc5ZmE1Y2Q2NzZhIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJp
dmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2
ZXJfZHJpdmVyLnB5CkBAIC0xLDQgKzEsNCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIS91
c3IvYmluL2VudiBweXRob24zCiAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKQEAgLTQwLDcg
KzQwLDcgQEAgY2xhc3MgU2ltcGxlSFRUUFNlcnZlckRyaXZlcihIVFRQU2VydmVyRHJpdmVyKToK
ICAgICAgICAgX2xvZy5pbmZvKCdTdGFydCB0byBmZXRjaGluZyB0aGUgcG9ydCBudW1iZXIgb2Yg
dGhlIGh0dHAgc2VydmVyJykKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgaW1wb3J0IHBzdXRp
bAotICAgICAgICAgICAgZm9yIGF0dGVtcHQgaW4geHJhbmdlKG1heF9hdHRlbXB0KToKKyAgICAg
ICAgICAgIGZvciBhdHRlbXB0IGluIHJhbmdlKG1heF9hdHRlbXB0KToKICAgICAgICAgICAgICAg
ICBjb25uZWN0aW9ucyA9IHBzdXRpbC5Qcm9jZXNzKHNlbGYuX3NlcnZlcl9wcm9jZXNzLnBpZCku
Y29ubmVjdGlvbnMoKQogICAgICAgICAgICAgICAgIGlmIGNvbm5lY3Rpb25zIGFuZCBjb25uZWN0
aW9uc1swXS5sYWRkciBhbmQgY29ubmVjdGlvbnNbMF0ubGFkZHJbMV0gYW5kIGNvbm5lY3Rpb25z
WzBdLnN0YXR1cyA9PSAnTElTVEVOJzoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VydmVy
X3BvcnQgPSBjb25uZWN0aW9uc1swXS5sYWRkclsxXQpAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBT
aW1wbGVIVFRQU2VydmVyRHJpdmVyKEhUVFBTZXJ2ZXJEcml2ZXIpOgogICAgICAgICAgICAgZWxz
ZToKICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIlNlcnZlciBpcyBub3QgbGlzdGVu
aW5nIG9uIHBvcnQsIG1heCB0cmllcyBleGNlZWRlZC4gSFRUUCBzZXJ2ZXIgbWF5IGJlIGluc3Rh
bGxpbmcgZGVwZW5kZW50IG1vZHVsZXMuIikKICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgot
ICAgICAgICAgICAgZm9yIGF0dGVtcHQgaW4geHJhbmdlKG1heF9hdHRlbXB0KToKKyAgICAgICAg
ICAgIGZvciBhdHRlbXB0IGluIHJhbmdlKG1heF9hdHRlbXB0KToKICAgICAgICAgICAgICAgICB0
cnk6CiAgICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0
KFsnL3Vzci9zYmluL2xzb2YnLCAnLWEnLCAnLVAnLCAnLWlUQ1AnLCAnLXNUQ1A6TElTVEVOJywg
Jy1wJywgc3RyKHNlbGYuX3NlcnZlcl9wcm9jZXNzLnBpZCldKQogICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9zZXJ2ZXJfcG9ydCA9IGludChyZS5zZWFyY2goJ1RDUCAuKjooXGQrKSBcKExJU1RF
TlwpJywgb3V0cHV0KS5ncm91cCgxKSkKQEAgLTcxLDcgKzcxLDcgQEAgY2xhc3MgU2ltcGxlSFRU
UFNlcnZlckRyaXZlcihIVFRQU2VydmVyRHJpdmVyKToKICAgICBkZWYgX3dhaXRfZm9yX2h0dHBf
c2VydmVyKHNlbGYpOgogICAgICAgICBtYXhfYXR0ZW1wdCA9IDUKICAgICAgICAgIyBXYWl0IGZv
ciBzZXJ2ZXIgdG8gYmUgdXAgY29tcGxldGVseSBiZWZvcmUgZXhpdGluZwotICAgICAgICBmb3Ig
YXR0ZW1wdCBpbiB4cmFuZ2UobWF4X2F0dGVtcHQpOgorICAgICAgICBmb3IgYXR0ZW1wdCBpbiBy
YW5nZShtYXhfYXR0ZW1wdCk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc3Vi
cHJvY2Vzcy5jaGVja19jYWxsKFsiY3VybCIsICItLXNpbGVudCIsICItLWhlYWQiLCAiLS1mYWls
IiwgIi0tb3V0cHV0IiwgIi9kZXYvbnVsbCIsIHNlbGYuYmFzZV91cmwoKV0pCiAgICAgICAgICAg
ICAgICAgcmV0dXJuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvcnVuX2JlbmNobWFyay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9ydW5fYmVuY2htYXJrLnB5CmluZGV4IGVhY2IzNjk4MmQzYjlkNWRmMTIzNjBk
MGE3MDFkZDkxNDM5MTAzM2QuLjNiZmY1OGVjMTdjMWIzZTg1MmYwZTI0NTg2M2VkOTM5ZTRhMGNi
MTAgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9y
dW5fYmVuY2htYXJrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9ydW5fYmVuY2htYXJrLnB5CkBAIC0xLDQgKzEsNCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCisjIS91c3IvYmluL2VudiBweXRob24zCiAKIGltcG9ydCBhcmdwYXJzZQogaW1wb3J0IGpz
b24KQEAgLTQxLDcgKzQxLDcgQEAgZGVmIHBhcnNlX2FyZ3MoKToKICAgICBtdXR1YWxfZ3JvdXAu
YWRkX2FyZ3VtZW50KCctLXJlYWQtcmVzdWx0cy1qc29uJywgZGVzdD0nanNvbl9maWxlJywgaGVs
cD0nSW5zdGVhZCBvZiBydW5uaW5nIGEgYmVuY2htYXJrLCBmb3JtYXQgdGhlIG91dHB1dCBzYXZl
ZCBpbiBKU09OX0ZJTEUuJykKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW91dHB1dC1maWxl
JywgZGVmYXVsdD1Ob25lLCBoZWxwPSdTYXZlIGRldGFpbGVkIHJlc3VsdHMgdG8gT1VUUFVUIGlu
IEpTT04gZm9ybWF0LiBCeSBkZWZhdWx0LCByZXN1bHRzIHdpbGwgbm90IGJlIHNhdmVkLicpCiAg
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1jb3VudCcsIHR5cGU9aW50LCBoZWxwPSdOdW1iZXIg
b2YgdGltZXMgdG8gcnVuIHRoZSBiZW5jaG1hcmsgKGUuZy4gNSkuJykKLSAgICBwYXJzZXIuYWRk
X2FyZ3VtZW50KCctLWRyaXZlcicsIGRlZmF1bHQ9V2ViU2VydmVyQmVuY2htYXJrUnVubmVyLm5h
bWUsIGNob2ljZXM9YmVuY2htYXJrX3J1bm5lcl9zdWJjbGFzc2VzLmtleXMoKSwgaGVscD0nVXNl
IHRoZSBzcGVjaWZpZWQgYmVuY2htYXJrIGRyaXZlci4gRGVmYXVsdHMgdG8gJXMuJyAlIFdlYlNl
cnZlckJlbmNobWFya1J1bm5lci5uYW1lKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tZHJp
dmVyJywgZGVmYXVsdD1XZWJTZXJ2ZXJCZW5jaG1hcmtSdW5uZXIubmFtZSwgY2hvaWNlcz1saXN0
KGJlbmNobWFya19ydW5uZXJfc3ViY2xhc3Nlcy5rZXlzKCkpLCBoZWxwPSdVc2UgdGhlIHNwZWNp
ZmllZCBiZW5jaG1hcmsgZHJpdmVyLiBEZWZhdWx0cyB0byAlcy4nICUgV2ViU2VydmVyQmVuY2ht
YXJrUnVubmVyLm5hbWUpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1icm93c2VyJywgZGVm
YXVsdD1kZWZhdWx0X2Jyb3dzZXIoKSwgY2hvaWNlcz1Ccm93c2VyRHJpdmVyRmFjdG9yeS5hdmFp
bGFibGVfYnJvd3NlcnMoKSwgaGVscD0nQnJvd3NlciB0byBydW4gdGhlIG5lY2htYXJrIGluLiBE
ZWZhdWx0cyB0byAlcy4nICUgZGVmYXVsdF9icm93c2VyKCkpCiAgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgnLS1wbGF0Zm9ybScsIGRlZmF1bHQ9ZGVmYXVsdF9wbGF0Zm9ybSgpLCBjaG9pY2VzPUJy
b3dzZXJEcml2ZXJGYWN0b3J5LmF2YWlsYWJsZV9wbGF0Zm9ybXMoKSwgaGVscD0nUGxhdGZvcm0g
dGhhdCB0aGlzIHNjcmlwdCBpcyBydW5uaW5nIG9uLiBEZWZhdWx0cyB0byAlcy4nICUgZGVmYXVs
dF9wbGF0Zm9ybSgpKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tbG9jYWwtY29weScsIGhl
bHA9J1BhdGggdG8gYSBsb2NhbCBjb3B5IG9mIHRoZSBiZW5jaG1hcmsgKGUuZy4gUGVyZm9ybWFu
Y2VUZXN0cy9TdW5TcGlkZXIvKS4nKQpAQCAtNzYsNyArNzYsNyBAQCBkZWYgcnVuX2JlbmNobWFy
a19wbGFuKGFyZ3MsIHBsYW4pOgogZGVmIGxpc3RfYmVuY2htYXJrX3BsYW5zKCk6CiAgICAgcHJp
bnQoIkF2YWlsYWJsZSBiZW5jaG1hcmsgcGxhbnM6ICIpCiAgICAgZm9yIHBsYW4gaW4gQmVuY2ht
YXJrUnVubmVyLmF2YWlsYWJsZV9wbGFucygpOgotICAgICAgICBwcmludCgiXHQlcyIgJSBwbGFu
KQorICAgICAgICBwcmludCgoIlx0JXMiICUgcGxhbikpCiAKIAogZGVmIHN0YXJ0KGFyZ3MpOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3dlYnNl
cnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5CmluZGV4IGFmOTlkMGE4M2Jj
ZWRlMWI5NmNlNjY2NGY2MmUyOWY1NDc4Zjk1OGEuLmM0ZDUzN2FhZWIyMjZhM2JhMTFlMDA1ZGRm
ZWNhNmVlYzcwYjdkODYgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci93ZWJzZXJ2ZXJfYmVuY2htYXJrX3J1bm5lci5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvd2Vic2VydmVyX2JlbmNobWFya19ydW5uZXIu
cHkKQEAgLTEsNCArMSw0IEBACi0jIS91c3IvYmluL2VudiBweXRob24KKyMhL3Vzci9iaW4vZW52
IHB5dGhvbjMKIAogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCkBAIC04LDEwICs4LDcgQEAg
ZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLmJlbmNobWFya19ydW5uZXIgaW1wb3J0IEJl
bmNobWFya1J1bm5lcgogZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLmh0dHBfc2VydmVy
X2RyaXZlci5odHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeSBpbXBvcnQgSFRUUFNlcnZlckRyaXZl
ckZhY3RvcnkKIGZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGlt
ZW91dAogCi1pZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApOgotICAgIGZyb20gdXJsbGliLnBh
cnNlIGltcG9ydCB1cmxqb2luCi1lbHNlOgotICAgIGZyb20gdXJscGFyc2UgaW1wb3J0IHVybGpv
aW4KK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCiAKIF9sb2cgPSBsb2dnaW5nLmdl
dExvZ2dlcihfX25hbWVfXykKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5
CmluZGV4IDhmY2VmN2EyNjFlNzA3YzE3OTA1MDdkZWU3ZjFhN2M4YWU5MDA4MDguLmExZjE4YTk2
ZDg3ZTMzODg3M2M1OWFmMzQ2NzcwYWY5Yzg2NzQ3Y2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXIucHkKQEAgLTcyMCw3ICs3MjAsNyBAQCBjbGFzcyBDaGVja2VyRGlzcGF0
Y2hlcihvYmplY3QpOgogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBjaGVja2Vy
ID0gSlNPTkNoZWNrZXIoZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3IpCiAgICAgICAgIGVs
aWYgZmlsZV90eXBlID09IEZpbGVUeXBlLlBZVEhPTjoKLSAgICAgICAgICAgIHB5dGhvbjNfcGF0
aHMgPSBbJ1Rvb2xzL3Jlc3VsdHNkYnB5J10KKyAgICAgICAgICAgIHB5dGhvbjNfcGF0aHMgPSBb
J1Rvb2xzL3Jlc3VsdHNkYnB5JywgJ1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lciddCiAgICAgICAgICAgICBmb3IgcGFydGlhbCBpbiBweXRob24zX3BhdGhzOgogICAgICAg
ICAgICAgICAgIGlmIGZpbGVfcGF0aC5zdGFydHN3aXRoKHBhcnRpYWwpOgogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gUHl0aG9uM0NoZWNrZXIoZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJy
b3IpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398201</attachid>
            <date>2020-05-01 10:40:37 -0700</date>
            <delta_ts>2020-05-05 07:58:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-211249-20200501193916.patch</filename>
            <type>text/plain</type>
            <size>15607</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTYyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmE1NGJmNDM4OWVkMGUwM2JjZDdjMTI5OGE0MzllYWU4
ZWY2MWQzYy4uMjkzNTU0OGFhZWI1ZTRjMWUzNDc4MGQ0ZjhlMWRkMTM4MjVhNGM2ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDIwLTA1LTAxICBQYWJsbyBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEuY29tPgor
CisgICAgICAgIFB5dGhvbjM6IFN1cHBvcnQgUHl0aG9uMyBpbiBUb29scy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTEyNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRl
ci5weToKKyAgICAgICAgKEJlbmNobWFya0J1aWxkZXIuX2ZldGNoX3JlbW90ZV9hcmNoaXZlKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX3Jl
c3VsdHMucHk6CisgICAgICAgIChCZW5jaG1hcmtSZXN1bHRzLl9mb3JtYXRfdmFsdWVzKToKKyAg
ICAgICAgKEJlbmNobWFya1Jlc3VsdHMuX3N1YnRlc3RfdmFsdWVzX2J5X2NvbmZpZ19pdGVyYXRp
b24pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1h
cmtfcnVubmVyLnB5OgorICAgICAgICAoaXN0ZXh0KToKKyAgICAgICAgKEJlbmNobWFya1J1bm5l
ci5fcnVuX2JlbmNobWFyayk6CisgICAgICAgIChCZW5jaG1hcmtSdW5uZXIuX21lcmdlKToKKyAg
ICAgICAgKEJlbmNobWFya1J1bm5lci5zaG93X3Jlc3VsdHMpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2RyaXZl
ci5weToKKyAgICAgICAgKE9TWFNhZmFyaURyaXZlci5sYXVuY2hfdXJsKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBf
c2VydmVyX2RyaXZlci5weToKKyAgICAgICAgKEhUVFBTZXJ2ZXJEcml2ZXIpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2lt
cGxlX2h0dHBfc2VydmVyX2RyaXZlci5weToKKyAgICAgICAgKFNpbXBsZUhUVFBTZXJ2ZXJEcml2
ZXIuc2VydmUpOgorICAgICAgICAoU2ltcGxlSFRUUFNlcnZlckRyaXZlci5fd2FpdF9mb3JfaHR0
cF9zZXJ2ZXIpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9y
dW5fYmVuY2htYXJrLnB5OgorICAgICAgICAocGFyc2VfYXJncyk6CisgICAgICAgIChsaXN0X2Jl
bmNobWFya19wbGFucyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
LnB5OgorICAgICAgICAoQ2hlY2tlckRpc3BhdGNoZXIuX2NyZWF0ZV9jaGVja2VyKToKKwogMjAy
MC0wNC0zMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIEFkZCBTUEkgdG8gY2hhbmdlIGEgV0tXZWJWaWV3J3MgQ09SUyBkaXNhYmxpbmcgcGF0
dGVybiBhZnRlciBpbml0aWFsaXphdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyLnB5CmluZGV4IDcx
YTAwNmUzYzU0YWMxMTFlNDk1M2ViZTRkYWI5ZmFiMjU1ZTc3Y2MuLjQyYTUxMzg4YTcxZDhlMDJl
MTJjZGJhMmNkNjM1ZjA4MjE0YjIzMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIucHkKQEAgLTMs
MTQgKzMsMTkgQEAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgdGVtcGZpbGUKIGltcG9ydCBvcwot
aW1wb3J0IHVybGxpYgogaW1wb3J0IHNodXRpbAogaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBz
eXMKIGltcG9ydCB0YXJmaWxlCiAKIGZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGls
cyBpbXBvcnQgZ2V0X3BhdGhfZnJvbV9wcm9qZWN0X3Jvb3QsIGZvcmNlX3JlbW92ZQogZnJvbSB6
aXBmaWxlIGltcG9ydCBaaXBGaWxlCiAKK2lmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6Cisg
ICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJscmV0cmlldmUKK2Vsc2U6CisgICAgZnJv
bSB1cmxsaWIgaW1wb3J0IHVybHJldHJpZXZlCisKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KF9fbmFtZV9fKQogCkBAIC03MCw3ICs3NSw3IEBAIGNsYXNzIEJlbmNobWFya0J1aWxkZXIob2Jq
ZWN0KToKIAogICAgICAgICBhcmNoaXZlX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jv
b3QsICdhcmNoaXZlLicgKyBhcmNoaXZlX3R5cGUpCiAgICAgICAgIF9sb2cuaW5mbygnRG93bmxv
YWRpbmcgJXMgdG8gJXMnICUgKGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgpKQotICAgICAgICB1
cmxsaWIudXJscmV0cmlldmUoYXJjaGl2ZV91cmwsIGFyY2hpdmVfcGF0aCkKKyAgICAgICAgdXJs
cmV0cmlldmUoYXJjaGl2ZV91cmwsIGFyY2hpdmVfcGF0aCkKIAogICAgICAgICBpZiBhcmNoaXZl
X3R5cGUgPT0gJ3ppcCc6CiAgICAgICAgICAgICB3aXRoIFppcEZpbGUoYXJjaGl2ZV9wYXRoLCAn
cicpIGFzIGFyY2hpdmU6CkBAIC03OSw3ICs4NCw3IEBAIGNsYXNzIEJlbmNobWFya0J1aWxkZXIo
b2JqZWN0KToKICAgICAgICAgICAgIHdpdGggdGFyZmlsZS5vcGVuKGFyY2hpdmVfcGF0aCwgJ3I6
Z3onKSBhcyBhcmNoaXZlOgogICAgICAgICAgICAgICAgIGFyY2hpdmUuZXh0cmFjdGFsbChzZWxm
Ll9kZXN0KQogCi0gICAgICAgIHVuYXJjaGl2ZWRfZmlsZXMgPSBmaWx0ZXIobGFtYmRhIG5hbWU6
IG5vdCBuYW1lLnN0YXJ0c3dpdGgoJy4nKSwgb3MubGlzdGRpcihzZWxmLl9kZXN0KSkKKyAgICAg
ICAgdW5hcmNoaXZlZF9maWxlcyA9IFtuYW1lIGZvciBuYW1lIGluIG9zLmxpc3RkaXIoc2VsZi5f
ZGVzdCkgaWYgbm90IG5hbWUuc3RhcnRzd2l0aCgnLicpXQogICAgICAgICBpZiBsZW4odW5hcmNo
aXZlZF9maWxlcykgPT0gMToKICAgICAgICAgICAgIGZpcnN0X2ZpbGUgPSBvcy5wYXRoLmpvaW4o
c2VsZi5fZGVzdCwgdW5hcmNoaXZlZF9maWxlc1swXSkKICAgICAgICAgICAgIGlmIG9zLnBhdGgu
aXNkaXIoZmlyc3RfZmlsZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX3Jlc3VsdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX3Jlc3VsdHMucHkKaW5kZXggOThhMDZiYjMz
YmY3MzIzZTQ3YzgxOWYwYjk5MjllNGFiYTI4NDRjZS4uMzlkNTFjMTkyYTdmZmVjMWY4MWZmODU5
YjBlMTJkMzk5NjUwMGY0OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2JlbmNobWFya19yZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcmVzdWx0cy5weQpAQCAtODUsNyArODUs
NyBAQCBjbGFzcyBCZW5jaG1hcmtSZXN1bHRzKG9iamVjdCk6CiAgICAgICAgIHZhbHVlcyA9IGxp
c3QobWFwKGZsb2F0LCB2YWx1ZXMpKQogICAgICAgICB0b3RhbCA9IHN1bSh2YWx1ZXMpCiAgICAg
ICAgIG1lYW4gPSB0b3RhbCAvIGxlbih2YWx1ZXMpCi0gICAgICAgIHNxdWFyZV9zdW0gPSBzdW0o
bWFwKGxhbWJkYSB4OiB4ICogeCwgdmFsdWVzKSkKKyAgICAgICAgc3F1YXJlX3N1bSA9IHN1bShb
eCAqIHggZm9yIHggaW4gdmFsdWVzXSkKICAgICAgICAgc2FtcGxlX2NvdW50ID0gbGVuKHZhbHVl
cykKIAogICAgICAgICAjIFdpdGggc3VtIGFuZCBzdW0gb2Ygc3F1YXJlcywgd2UgY2FuIGNvbXB1
dGUgdGhlIHNhbXBsZSBzdGFuZGFyZCBkZXZpYXRpb24gaW4gTygxKS4KQEAgLTEwMSwxMyArMTAx
LDEzIEBAIGNsYXNzIEJlbmNobWFya1Jlc3VsdHMob2JqZWN0KToKICAgICAgICAgaWYgbm90IHNj
YWxlX3VuaXQ6CiAgICAgICAgICAgICBmb3JtYXR0ZWRfdmFsdWUgPSAne21lYW46LjNmfXt1bml0
fSBzdGRldj17ZGVsdGE6LjElfScuZm9ybWF0KG1lYW49bWVhbiwgZGVsdGE9c2FtcGxlX3N0ZGV2
IC8gbWVhbiwgdW5pdD11bml0KQogICAgICAgICAgICAgaWYgc2hvd19pdGVyYXRpb25fdmFsdWVz
OgotICAgICAgICAgICAgICAgIGZvcm1hdHRlZF92YWx1ZSArPSAnIFsnICsgJywgJy5qb2luKG1h
cChsYW1iZGEgdmFsdWU6ICd7dmFsdWU6LjNmfScuZm9ybWF0KHZhbHVlPXZhbHVlKSwgdmFsdWVz
KSkgKyAnXScKKyAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfdmFsdWUgKz0gJyBbJyArICcsICcu
am9pbihbJ3t2YWx1ZTouM2Z9Jy5mb3JtYXQodmFsdWU9dmFsdWUpIGZvciB2YWx1ZSBpbiB2YWx1
ZXNdKSArICddJwogICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZF92YWx1ZQogCiAgICAgICAg
IGlmIHVuaXQgPT0gJ21zJzoKICAgICAgICAgICAgIHVuaXQgPSAncycKICAgICAgICAgICAgIG1l
YW4gPSBmbG9hdChtZWFuKSAvIDEwMDAKLSAgICAgICAgICAgIHZhbHVlcyA9IGxpc3QobWFwKGxh
bWJkYSB2YWx1ZTogZmxvYXQodmFsdWUpIC8gMTAwMCwgdmFsdWVzKSkKKyAgICAgICAgICAgIHZh
bHVlcyA9IGxpc3QoW2Zsb2F0KHZhbHVlKSAvIDEwMDAgZm9yIHZhbHVlIGluIHZhbHVlc10pCiAg
ICAgICAgICAgICBzYW1wbGVfc3RkZXYgLz0gMTAwMAogCiAgICAgICAgIGJhc2UgPSAxMDI0IGlm
IHVuaXQgPT0gJ0InIGVsc2UgMTAwMApAQCAtMTI2LDcgKzEyNiw3IEBAIGNsYXNzIEJlbmNobWFy
a1Jlc3VsdHMob2JqZWN0KToKIAogICAgICAgICBmb3JtYXR0ZWRfdmFsdWUgPSAne21lYW59e3By
ZWZpeH17dW5pdH0gc3RkZXY9e2RlbHRhOi4xJX0nLmZvcm1hdChtZWFuPWZvcm1hdF9zY2FsZWQo
c2NhbGVkX21lYW4pLCBkZWx0YT1zYW1wbGVfc3RkZXYgLyBtZWFuLCBwcmVmaXg9U0lfcHJlZml4
LCB1bml0PXVuaXQpCiAgICAgICAgIGlmIHNob3dfaXRlcmF0aW9uX3ZhbHVlczoKLSAgICAgICAg
ICAgIGZvcm1hdHRlZF92YWx1ZSArPSAnIFsnICsgJywgJy5qb2luKG1hcChsYW1iZGEgdmFsdWU6
IGZvcm1hdF9zY2FsZWQodmFsdWUgKiBzY2FsaW5nX2ZhY3RvciksIHZhbHVlcykpICsgJ10nCisg
ICAgICAgICAgICBmb3JtYXR0ZWRfdmFsdWUgKz0gJyBbJyArICcsICcuam9pbihbZm9ybWF0X3Nj
YWxlZCh2YWx1ZSAqIHNjYWxpbmdfZmFjdG9yKSBmb3IgdmFsdWUgaW4gdmFsdWVzXSkgKyAnXScK
ICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZF92YWx1ZQogCiAgICAgQGNsYXNzbWV0aG9kCkBAIC0x
ODIsNyArMTgyLDcgQEAgY2xhc3MgQmVuY2htYXJrUmVzdWx0cyhvYmplY3QpOgogICAgICAgICAg
ICAgICAgIHJlc3VsdHNfZm9yX2FnZ3JlZ2F0b3IgPSByZXN1bHRzX2Zvcl9tZXRyaWMuZ2V0KGFn
Z3JlZ2F0b3IpCiAgICAgICAgICAgICBlbGlmIE5vbmUgaW4gcmVzdWx0c19mb3JfbWV0cmljOgog
ICAgICAgICAgICAgICAgIHJlc3VsdHNfZm9yX2FnZ3JlZ2F0b3IgPSByZXN1bHRzX2Zvcl9tZXRy
aWMuZ2V0KE5vbmUpCi0gICAgICAgICAgICBlbGlmIGxlbihyZXN1bHRzX2Zvcl9tZXRyaWMua2V5
cygpKSA9PSAxOgorICAgICAgICAgICAgZWxpZiBsZW4obGlzdChyZXN1bHRzX2Zvcl9tZXRyaWMu
a2V5cygpKSkgPT0gMToKICAgICAgICAgICAgICAgICByZXN1bHRzX2Zvcl9hZ2dyZWdhdG9yID0g
cmVzdWx0c19mb3JfbWV0cmljLmdldChsaXN0KHJlc3VsdHNfZm9yX21ldHJpYy5rZXlzKCkpWzBd
KQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByZXN1bHRzX2Zvcl9hZ2dyZWdh
dG9yID0ge30KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKaW5kZXggOTE5NDIyNjgzODhlMmMzMWUwMWM2
NGIyOWJjZTk2ZWNkNDFjOTYwNS4uNjAzOTVhYzRmYTE5YWQyMGQ1NDhlMDBlZmM4NDc0NzFhMWZm
Mjc3NiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2JlbmNobWFya19ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKQEAgLTgsMTMgKzgsMjEgQEAgaW1wb3J0IHN1
YnByb2Nlc3MKIGltcG9ydCBzeXMKIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHRpbWUKLWltcG9y
dCB0eXBlcwogaW1wb3J0IG9zCiAKIGZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci5iZW5j
aG1hcmtfYnVpbGRlciBpbXBvcnQgQmVuY2htYXJrQnVpbGRlcgogZnJvbSB3ZWJraXRweS5iZW5j
aG1hcmtfcnVubmVyLmJlbmNobWFya19yZXN1bHRzIGltcG9ydCBCZW5jaG1hcmtSZXN1bHRzCiBm
cm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIuYnJvd3Nlcl9kcml2ZXIuYnJvd3Nlcl9kcml2
ZXJfZmFjdG9yeSBpbXBvcnQgQnJvd3NlckRyaXZlckZhY3RvcnkKIAorCitpZiBzeXMudmVyc2lv
bl9pbmZvID4gKDMsIDApOgorICAgIGRlZiBpc3RleHQoYSk6CisgICAgICAgIHJldHVybiBpc2lu
c3RhbmNlKGEsIGJ5dGVzKSBvciBpc2luc3RhbmNlKGEsIHN0cikKK2Vsc2U6CisgICAgZGVmIGlz
dGV4dChhKToKKyAgICAgICAgcmV0dXJuIGlzaW5zdGFuY2UoYSwgc3RyKSBvciBpc2luc3RhbmNl
KGEsIHVuaWNvZGUpCisKKwogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAK
QEAgLTc4LDcgKzg2LDcgQEAgY2xhc3MgQmVuY2htYXJrUnVubmVyKG9iamVjdCk6CiAgICAgICAg
IGRlYnVnX291dHB1dHMgPSBbXQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLl9icm93
c2VyX2RyaXZlci5wcmVwYXJlX2luaXRpYWxfZW52KHNlbGYuX2NvbmZpZykKLSAgICAgICAgICAg
IGZvciBpdGVyYXRpb24gaW4geHJhbmdlKDEsIGNvdW50ICsgMSk6CisgICAgICAgICAgICBmb3Ig
aXRlcmF0aW9uIGluIHJhbmdlKDEsIGNvdW50ICsgMSk6CiAgICAgICAgICAgICAgICAgX2xvZy5p
bmZvKCdTdGFydCB0aGUgaXRlcmF0aW9uIHtjdXJyZW50X2l0ZXJhdGlvbn0gb2Yge2l0ZXJhdGlv
bnN9IGZvciBjdXJyZW50IGJlbmNobWFyaycuZm9ybWF0KGN1cnJlbnRfaXRlcmF0aW9uPWl0ZXJh
dGlvbiwgaXRlcmF0aW9ucz1jb3VudCkpCiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9icm93c2VyX2RyaXZlci5wcmVwYXJlX2VudihzZWxmLl9jb25maWcp
CkBAIC0xNDIsMTYgKzE1MCwxNiBAQCBjbGFzcyBCZW5jaG1hcmtSdW5uZXIob2JqZWN0KToKICAg
ICAgICAgYXNzZXJ0KGlzaW5zdGFuY2UoYSwgdHlwZShiKSkpCiAgICAgICAgIGFyZ190eXBlID0g
dHlwZShhKQogICAgICAgICAjIHNwZWNpYWwgaGFuZGxlIGZvciBsaXN0IHR5cGUsIGFuZCBzaG91
bGQgYmUgaGFuZGxlIGJlZm9yZSBlcXVhbCBjaGVjawotICAgICAgICBpZiBhcmdfdHlwZSA9PSB0
eXBlcy5MaXN0VHlwZSBhbmQgbGVuKGEpIGFuZCAodHlwZShhWzBdKSA9PSB0eXBlcy5TdHJpbmdU
eXBlIG9yIHR5cGUoYVswXSkgPT0gdHlwZXMuVW5pY29kZVR5cGUpOgorICAgICAgICBpZiBhcmdf
dHlwZSA9PSBsaXN0IGFuZCBsZW4oYSkgYW5kIGlzdGV4dChhWzBdKToKICAgICAgICAgICAgIHJl
dHVybiBhCi0gICAgICAgIGlmIGFyZ190eXBlID09IHR5cGVzLkRpY3RUeXBlOgorICAgICAgICBp
ZiBhcmdfdHlwZSA9PSBkaWN0OgogICAgICAgICAgICAgcmVzdWx0ID0ge30KLSAgICAgICAgICAg
IGZvciBrZXksIHZhbHVlIGluIGEuaXRlbXMoKToKKyAgICAgICAgICAgIGZvciBrZXksIHZhbHVl
IGluIGxpc3QoYS5pdGVtcygpKToKICAgICAgICAgICAgICAgICBpZiBrZXkgaW4gYjoKICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBjbHMuX21lcmdlKHZhbHVlLCBiW2tleV0pCiAg
ICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2
YWx1ZQotICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gYi5pdGVtcygpOgorICAgICAgICAg
ICAgZm9yIGtleSwgdmFsdWUgaW4gbGlzdChiLml0ZW1zKCkpOgogICAgICAgICAgICAgICAgIGlm
IGtleSBub3QgaW4gcmVzdWx0OgogICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHZh
bHVlCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0CkBAIC0xNjEsNCArMTY5LDQgQEAgY2xhc3Mg
QmVuY2htYXJrUnVubmVyKG9iamVjdCk6CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHNob3df
cmVzdWx0cyhjbHMsIHJlc3VsdHMsIHNjYWxlX3VuaXQ9VHJ1ZSwgc2hvd19pdGVyYXRpb25fdmFs
dWVzPUZhbHNlKToKICAgICAgICAgcmVzdWx0cyA9IEJlbmNobWFya1Jlc3VsdHMocmVzdWx0cykK
LSAgICAgICAgcHJpbnQocmVzdWx0cy5mb3JtYXQoc2NhbGVfdW5pdCwgc2hvd19pdGVyYXRpb25f
dmFsdWVzKSkKKyAgICAgICAgcHJpbnQoKHJlc3VsdHMuZm9ybWF0KHNjYWxlX3VuaXQsIHNob3df
aXRlcmF0aW9uX3ZhbHVlcykpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9zYWZhcmlfZHJpdmVyLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9z
YWZhcmlfZHJpdmVyLnB5CmluZGV4IGQxNjg3Mjg0NzA2NjY3MzZlMjcwMGJmM2JjOTcxYjQ1NWU2
M2MzODIuLjJiYmY0MThmMTcxMjk1YTllN2UyNjA3NjU5MWE5ODkyYzc1ZGJkMTAgMTAwNzU1Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZl
ci9vc3hfc2FmYXJpX2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X3NhZmFyaV9kcml2ZXIucHkKQEAgLTMyLDcg
KzMyLDcgQEAgY2xhc3MgT1NYU2FmYXJpRHJpdmVyKE9TWEJyb3dzZXJEcml2ZXIpOgogICAgICAg
ICAgICAgc2FmYXJpX2FwcF9pbl9idWlsZF9wYXRoID0gb3MucGF0aC5qb2luKGJyb3dzZXJfYnVp
bGRfYWJzb2x1dGVfcGF0aCwgJ1NhZmFyaS5hcHAvQ29udGVudHMvTWFjT1MvU2FmYXJpJykKICAg
ICAgICAgICAgIGhhc19zYWZhcmlfYXBwID0gb3MucGF0aC5leGlzdHMoc2FmYXJpX2FwcF9pbl9i
dWlsZF9wYXRoKQogICAgICAgICAgICAgY29udGVudF9pbl9wYXRoID0gb3MubGlzdGRpcihicm93
c2VyX2J1aWxkX2Fic29sdXRlX3BhdGgpCi0gICAgICAgICAgICBjb250YWluc19mcmFtZXdvcmtz
ID0gYW55KGl0ZXJ0b29scy5pbWFwKGxhbWJkYSBlbnRyeTogZW50cnkuZW5kc3dpdGgoJy5mcmFt
ZXdvcmsnKSwgb3MubGlzdGRpcihicm93c2VyX2J1aWxkX2Fic29sdXRlX3BhdGgpKSkKKyAgICAg
ICAgICAgIGNvbnRhaW5zX2ZyYW1ld29ya3MgPSBhbnkobWFwKGxhbWJkYSBlbnRyeTogZW50cnku
ZW5kc3dpdGgoJy5mcmFtZXdvcmsnKSwgb3MubGlzdGRpcihicm93c2VyX2J1aWxkX2Fic29sdXRl
X3BhdGgpKSkKIAogICAgICAgICAgICAgaWYgaGFzX3NhZmFyaV9hcHA6CiAgICAgICAgICAgICAg
ICAgYXJncyA9IFtzYWZhcmlfYXBwX2luX2J1aWxkX3BhdGhdCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBf
c2VydmVyX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5l
ci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5CmluZGV4IDU5OTFlM2Iz
OTM4ZDUzMThjODRiNjhjMDg2NTQwNTdhYzYxMzY2NzEuLjdmNDk0MDU1ZjBjOTg5MjA1NTEwNzAy
ZjU2MTM2NDA3ZTQwZDY5M2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9k
cml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5CkBAIC0xLDEzICsxLDEyIEBACiAjIS91c3IvYmlu
L2VudiBweXRob24KIAogZnJvbSBhYmMgaW1wb3J0IGFic3RyYWN0bWV0aG9kLCBBQkNNZXRhCitm
cm9tIHNpeCBpbXBvcnQgd2l0aF9tZXRhY2xhc3MKIAogCi1jbGFzcyBIVFRQU2VydmVyRHJpdmVy
KG9iamVjdCk6CitjbGFzcyBIVFRQU2VydmVyRHJpdmVyKHdpdGhfbWV0YWNsYXNzKEFCQ01ldGEs
IG9iamVjdCkpOgogICAgIHBsYXRmb3JtcyA9IFtdCiAKLSAgICBfX21ldGFjbGFzc19fID0gQUJD
TWV0YQotCiAgICAgQGFic3RyYWN0bWV0aG9kCiAgICAgZGVmIHNlcnZlKHNlbGYsIHdlYlJvb3Qp
OgogICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJf
ZHJpdmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIucHkKaW5kZXggZjI0NjExZDhiNjhhZGRl
MTNkOGEzN2Y0ZWMxMTZlMWU2NzRlOGYzYy4uMDI4NDViODU0ZGIyNWZmZDFjNzJlZjY0ZjQxYzQx
MWVhMzk5MTdlNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9k
cml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weQpAQCAtNDAsNyArNDAsNyBAQCBjbGFz
cyBTaW1wbGVIVFRQU2VydmVyRHJpdmVyKEhUVFBTZXJ2ZXJEcml2ZXIpOgogICAgICAgICBfbG9n
LmluZm8oJ1N0YXJ0IHRvIGZldGNoaW5nIHRoZSBwb3J0IG51bWJlciBvZiB0aGUgaHR0cCBzZXJ2
ZXInKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpbXBvcnQgcHN1dGlsCi0gICAgICAgICAg
ICBmb3IgYXR0ZW1wdCBpbiB4cmFuZ2UobWF4X2F0dGVtcHQpOgorICAgICAgICAgICAgZm9yIGF0
dGVtcHQgaW4gcmFuZ2UobWF4X2F0dGVtcHQpOgogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25z
ID0gcHN1dGlsLlByb2Nlc3Moc2VsZi5fc2VydmVyX3Byb2Nlc3MucGlkKS5jb25uZWN0aW9ucygp
CiAgICAgICAgICAgICAgICAgaWYgY29ubmVjdGlvbnMgYW5kIGNvbm5lY3Rpb25zWzBdLmxhZGRy
IGFuZCBjb25uZWN0aW9uc1swXS5sYWRkclsxXSBhbmQgY29ubmVjdGlvbnNbMF0uc3RhdHVzID09
ICdMSVNURU4nOgogICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZXJ2ZXJfcG9ydCA9IGNvbm5l
Y3Rpb25zWzBdLmxhZGRyWzFdCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIFNpbXBsZUhUVFBTZXJ2
ZXJEcml2ZXIoSFRUUFNlcnZlckRyaXZlcik6CiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiU2VydmVyIGlzIG5vdCBsaXN0ZW5pbmcgb24gcG9ydCwg
bWF4IHRyaWVzIGV4Y2VlZGVkLiBIVFRQIHNlcnZlciBtYXkgYmUgaW5zdGFsbGluZyBkZXBlbmRl
bnQgbW9kdWxlcy4iKQogICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICBm
b3IgYXR0ZW1wdCBpbiB4cmFuZ2UobWF4X2F0dGVtcHQpOgorICAgICAgICAgICAgZm9yIGF0dGVt
cHQgaW4gcmFuZ2UobWF4X2F0dGVtcHQpOgogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAg
ICAgICAgICAgICAgb3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWycvdXNyL3NiaW4v
bHNvZicsICctYScsICctUCcsICctaVRDUCcsICctc1RDUDpMSVNURU4nLCAnLXAnLCBzdHIoc2Vs
Zi5fc2VydmVyX3Byb2Nlc3MucGlkKV0pCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlcnZl
cl9wb3J0ID0gaW50KHJlLnNlYXJjaCgnVENQIC4qOihcZCspIFwoTElTVEVOXCknLCBvdXRwdXQp
Lmdyb3VwKDEpKQpAQCAtNzEsNyArNzEsNyBAQCBjbGFzcyBTaW1wbGVIVFRQU2VydmVyRHJpdmVy
KEhUVFBTZXJ2ZXJEcml2ZXIpOgogICAgIGRlZiBfd2FpdF9mb3JfaHR0cF9zZXJ2ZXIoc2VsZik6
CiAgICAgICAgIG1heF9hdHRlbXB0ID0gNQogICAgICAgICAjIFdhaXQgZm9yIHNlcnZlciB0byBi
ZSB1cCBjb21wbGV0ZWx5IGJlZm9yZSBleGl0aW5nCi0gICAgICAgIGZvciBhdHRlbXB0IGluIHhy
YW5nZShtYXhfYXR0ZW1wdCk6CisgICAgICAgIGZvciBhdHRlbXB0IGluIHJhbmdlKG1heF9hdHRl
bXB0KToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzdWJwcm9jZXNzLmNoZWNr
X2NhbGwoWyJjdXJsIiwgIi0tc2lsZW50IiwgIi0taGVhZCIsICItLWZhaWwiLCAiLS1vdXRwdXQi
LCAiL2Rldi9udWxsIiwgc2VsZi5iYXNlX3VybCgpXSkKICAgICAgICAgICAgICAgICByZXR1cm4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9ydW5f
YmVuY2htYXJrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3J1
bl9iZW5jaG1hcmsucHkKaW5kZXggZWFjYjM2OTgyZDNiOWQ1ZGYxMjM2MGQwYTcwMWRkOTE0Mzkx
MDMzZC4uYTFiYzAyMmM4ZDJmMzNmMjhjN2FkZjY0NmU2NzJkZGEzOGE3NjU5YyAxMDA3NTUKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3J1bl9iZW5jaG1hcmsu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3J1bl9iZW5j
aG1hcmsucHkKQEAgLTQxLDcgKzQxLDcgQEAgZGVmIHBhcnNlX2FyZ3MoKToKICAgICBtdXR1YWxf
Z3JvdXAuYWRkX2FyZ3VtZW50KCctLXJlYWQtcmVzdWx0cy1qc29uJywgZGVzdD0nanNvbl9maWxl
JywgaGVscD0nSW5zdGVhZCBvZiBydW5uaW5nIGEgYmVuY2htYXJrLCBmb3JtYXQgdGhlIG91dHB1
dCBzYXZlZCBpbiBKU09OX0ZJTEUuJykKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW91dHB1
dC1maWxlJywgZGVmYXVsdD1Ob25lLCBoZWxwPSdTYXZlIGRldGFpbGVkIHJlc3VsdHMgdG8gT1VU
UFVUIGluIEpTT04gZm9ybWF0LiBCeSBkZWZhdWx0LCByZXN1bHRzIHdpbGwgbm90IGJlIHNhdmVk
LicpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1jb3VudCcsIHR5cGU9aW50LCBoZWxwPSdO
dW1iZXIgb2YgdGltZXMgdG8gcnVuIHRoZSBiZW5jaG1hcmsgKGUuZy4gNSkuJykKLSAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KCctLWRyaXZlcicsIGRlZmF1bHQ9V2ViU2VydmVyQmVuY2htYXJrUnVu
bmVyLm5hbWUsIGNob2ljZXM9YmVuY2htYXJrX3J1bm5lcl9zdWJjbGFzc2VzLmtleXMoKSwgaGVs
cD0nVXNlIHRoZSBzcGVjaWZpZWQgYmVuY2htYXJrIGRyaXZlci4gRGVmYXVsdHMgdG8gJXMuJyAl
IFdlYlNlcnZlckJlbmNobWFya1J1bm5lci5uYW1lKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
Jy0tZHJpdmVyJywgZGVmYXVsdD1XZWJTZXJ2ZXJCZW5jaG1hcmtSdW5uZXIubmFtZSwgY2hvaWNl
cz1saXN0KGJlbmNobWFya19ydW5uZXJfc3ViY2xhc3Nlcy5rZXlzKCkpLCBoZWxwPSdVc2UgdGhl
IHNwZWNpZmllZCBiZW5jaG1hcmsgZHJpdmVyLiBEZWZhdWx0cyB0byAlcy4nICUgV2ViU2VydmVy
QmVuY2htYXJrUnVubmVyLm5hbWUpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1icm93c2Vy
JywgZGVmYXVsdD1kZWZhdWx0X2Jyb3dzZXIoKSwgY2hvaWNlcz1Ccm93c2VyRHJpdmVyRmFjdG9y
eS5hdmFpbGFibGVfYnJvd3NlcnMoKSwgaGVscD0nQnJvd3NlciB0byBydW4gdGhlIG5lY2htYXJr
IGluLiBEZWZhdWx0cyB0byAlcy4nICUgZGVmYXVsdF9icm93c2VyKCkpCiAgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgnLS1wbGF0Zm9ybScsIGRlZmF1bHQ9ZGVmYXVsdF9wbGF0Zm9ybSgpLCBjaG9p
Y2VzPUJyb3dzZXJEcml2ZXJGYWN0b3J5LmF2YWlsYWJsZV9wbGF0Zm9ybXMoKSwgaGVscD0nUGxh
dGZvcm0gdGhhdCB0aGlzIHNjcmlwdCBpcyBydW5uaW5nIG9uLiBEZWZhdWx0cyB0byAlcy4nICUg
ZGVmYXVsdF9wbGF0Zm9ybSgpKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tbG9jYWwtY29w
eScsIGhlbHA9J1BhdGggdG8gYSBsb2NhbCBjb3B5IG9mIHRoZSBiZW5jaG1hcmsgKGUuZy4gUGVy
Zm9ybWFuY2VUZXN0cy9TdW5TcGlkZXIvKS4nKQpAQCAtNzYsNyArNzYsNyBAQCBkZWYgcnVuX2Jl
bmNobWFya19wbGFuKGFyZ3MsIHBsYW4pOgogZGVmIGxpc3RfYmVuY2htYXJrX3BsYW5zKCk6CiAg
ICAgcHJpbnQoIkF2YWlsYWJsZSBiZW5jaG1hcmsgcGxhbnM6ICIpCiAgICAgZm9yIHBsYW4gaW4g
QmVuY2htYXJrUnVubmVyLmF2YWlsYWJsZV9wbGFucygpOgotICAgICAgICBwcmludCgiXHQlcyIg
JSBwbGFuKQorICAgICAgICBwcmludCgoIlx0JXMiICUgcGxhbikpCiAKIAogZGVmIHN0YXJ0KGFy
Z3MpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IDhmY2VmN2Ey
NjFlNzA3YzE3OTA1MDdkZWU3ZjFhN2M4YWU5MDA4MDguLmExZjE4YTk2ZDg3ZTMzODg3M2M1OWFm
MzQ2NzcwYWY5Yzg2NzQ3Y2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIu
cHkKQEAgLTcyMCw3ICs3MjAsNyBAQCBjbGFzcyBDaGVja2VyRGlzcGF0Y2hlcihvYmplY3QpOgog
ICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBjaGVja2VyID0gSlNPTkNoZWNrZXIo
ZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3IpCiAgICAgICAgIGVsaWYgZmlsZV90eXBlID09
IEZpbGVUeXBlLlBZVEhPTjoKLSAgICAgICAgICAgIHB5dGhvbjNfcGF0aHMgPSBbJ1Rvb2xzL3Jl
c3VsdHNkYnB5J10KKyAgICAgICAgICAgIHB5dGhvbjNfcGF0aHMgPSBbJ1Rvb2xzL3Jlc3VsdHNk
YnB5JywgJ1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lciddCiAgICAgICAg
ICAgICBmb3IgcGFydGlhbCBpbiBweXRob24zX3BhdGhzOgogICAgICAgICAgICAgICAgIGlmIGZp
bGVfcGF0aC5zdGFydHN3aXRoKHBhcnRpYWwpOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
UHl0aG9uM0NoZWNrZXIoZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3IpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398506</attachid>
            <date>2020-05-05 07:58:29 -0700</date>
            <delta_ts>2020-05-06 08:39:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-211249-20200505165643.patch</filename>
            <type>text/plain</type>
            <size>14186</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMDA3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTY1YTAyMmFjOThkYTk1MGUyMjZjYWUxMWNiOTQ1NzVh
ZTMwYjM1Yi4uZGRjN2EzODEzMTgwMmUzY2FiZDZlZDBiN2JkYmQ5YWM1ZGJmZjcyNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDIwLTA1LTAxICBQYWJsbyBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEuY29tPgor
CisgICAgICAgIFB5dGhvbjM6IFN1cHBvcnQgUHl0aG9uMyBpbiBUb29scy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTEyNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRl
ci5weToKKyAgICAgICAgKEJlbmNobWFya0J1aWxkZXIuX2ZldGNoX3JlbW90ZV9hcmNoaXZlKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX3Jl
c3VsdHMucHk6CisgICAgICAgIChCZW5jaG1hcmtSZXN1bHRzLl9mb3JtYXRfdmFsdWVzKToKKyAg
ICAgICAgKEJlbmNobWFya1Jlc3VsdHMuX3N1YnRlc3RfdmFsdWVzX2J5X2NvbmZpZ19pdGVyYXRp
b24pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1h
cmtfcnVubmVyLnB5OgorICAgICAgICAoaXN0ZXh0KToKKyAgICAgICAgKEJlbmNobWFya1J1bm5l
ci5fcnVuX2JlbmNobWFyayk6CisgICAgICAgIChCZW5jaG1hcmtSdW5uZXIuX21lcmdlKToKKyAg
ICAgICAgKEJlbmNobWFya1J1bm5lci5zaG93X3Jlc3VsdHMpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2RyaXZl
ci5weToKKyAgICAgICAgKE9TWFNhZmFyaURyaXZlci5sYXVuY2hfdXJsKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBf
c2VydmVyX2RyaXZlci5weToKKyAgICAgICAgKEhUVFBTZXJ2ZXJEcml2ZXIpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2lt
cGxlX2h0dHBfc2VydmVyX2RyaXZlci5weToKKyAgICAgICAgKFNpbXBsZUhUVFBTZXJ2ZXJEcml2
ZXIuc2VydmUpOgorICAgICAgICAoU2ltcGxlSFRUUFNlcnZlckRyaXZlci5fd2FpdF9mb3JfaHR0
cF9zZXJ2ZXIpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9y
dW5fYmVuY2htYXJrLnB5OgorICAgICAgICAocGFyc2VfYXJncyk6CisgICAgICAgIChsaXN0X2Jl
bmNobWFya19wbGFucyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
LnB5OgorICAgICAgICAoQ2hlY2tlckRpc3BhdGNoZXIuX2NyZWF0ZV9jaGVja2VyKToKKwogMjAy
MC0wNS0wMSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAg
IFVzZSBleHBvcnQgbWFjcm9zIG9uIGFsbCBwbGF0Zm9ybXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci5w
eQppbmRleCA3MWEwMDZlM2M1NGFjMTExZTQ5NTNlYmU0ZGFiOWZhYjI1NWU3N2NjLi40MmE1MTM4
OGE3MWQ4ZTAyZTEyY2RiYTJjZDYzNWYwODIxNGIyMzE2IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVy
LnB5CkBAIC0zLDE0ICszLDE5IEBACiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHRlbXBmaWxlCiBp
bXBvcnQgb3MKLWltcG9ydCB1cmxsaWIKIGltcG9ydCBzaHV0aWwKIGltcG9ydCBzdWJwcm9jZXNz
CitpbXBvcnQgc3lzCiBpbXBvcnQgdGFyZmlsZQogCiBmcm9tIHdlYmtpdHB5LmJlbmNobWFya19y
dW5uZXIudXRpbHMgaW1wb3J0IGdldF9wYXRoX2Zyb21fcHJvamVjdF9yb290LCBmb3JjZV9yZW1v
dmUKIGZyb20gemlwZmlsZSBpbXBvcnQgWmlwRmlsZQogCitpZiBzeXMudmVyc2lvbl9pbmZvID4g
KDMsIDApOgorICAgIGZyb20gdXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybHJldHJpZXZlCitlbHNl
OgorICAgIGZyb20gdXJsbGliIGltcG9ydCB1cmxyZXRyaWV2ZQorCiAKIF9sb2cgPSBsb2dnaW5n
LmdldExvZ2dlcihfX25hbWVfXykKIApAQCAtNzAsNyArNzUsNyBAQCBjbGFzcyBCZW5jaG1hcmtC
dWlsZGVyKG9iamVjdCk6CiAKICAgICAgICAgYXJjaGl2ZV9wYXRoID0gb3MucGF0aC5qb2luKHNl
bGYuX3dlYl9yb290LCAnYXJjaGl2ZS4nICsgYXJjaGl2ZV90eXBlKQogICAgICAgICBfbG9nLmlu
Zm8oJ0Rvd25sb2FkaW5nICVzIHRvICVzJyAlIChhcmNoaXZlX3VybCwgYXJjaGl2ZV9wYXRoKSkK
LSAgICAgICAgdXJsbGliLnVybHJldHJpZXZlKGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgpCisg
ICAgICAgIHVybHJldHJpZXZlKGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgpCiAKICAgICAgICAg
aWYgYXJjaGl2ZV90eXBlID09ICd6aXAnOgogICAgICAgICAgICAgd2l0aCBaaXBGaWxlKGFyY2hp
dmVfcGF0aCwgJ3InKSBhcyBhcmNoaXZlOgpAQCAtNzksNyArODQsNyBAQCBjbGFzcyBCZW5jaG1h
cmtCdWlsZGVyKG9iamVjdCk6CiAgICAgICAgICAgICB3aXRoIHRhcmZpbGUub3BlbihhcmNoaXZl
X3BhdGgsICdyOmd6JykgYXMgYXJjaGl2ZToKICAgICAgICAgICAgICAgICBhcmNoaXZlLmV4dHJh
Y3RhbGwoc2VsZi5fZGVzdCkKIAotICAgICAgICB1bmFyY2hpdmVkX2ZpbGVzID0gZmlsdGVyKGxh
bWJkYSBuYW1lOiBub3QgbmFtZS5zdGFydHN3aXRoKCcuJyksIG9zLmxpc3RkaXIoc2VsZi5fZGVz
dCkpCisgICAgICAgIHVuYXJjaGl2ZWRfZmlsZXMgPSBbbmFtZSBmb3IgbmFtZSBpbiBvcy5saXN0
ZGlyKHNlbGYuX2Rlc3QpIGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoJy4nKV0KICAgICAgICAgaWYg
bGVuKHVuYXJjaGl2ZWRfZmlsZXMpID09IDE6CiAgICAgICAgICAgICBmaXJzdF9maWxlID0gb3Mu
cGF0aC5qb2luKHNlbGYuX2Rlc3QsIHVuYXJjaGl2ZWRfZmlsZXNbMF0pCiAgICAgICAgICAgICBp
ZiBvcy5wYXRoLmlzZGlyKGZpcnN0X2ZpbGUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19yZXN1bHRzLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19yZXN1bHRzLnB5CmluZGV4
IDk4YTA2YmIzM2JmNzMyM2U0N2M4MTlmMGI5OTI5ZTRhYmEyODQ0Y2UuLjM5ZDUxYzE5MmE3ZmZl
YzFmODFmZjg1OWIwZTEyZDM5OTY1MDBmNDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcmVzdWx0cy5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX3Jlc3VsdHMucHkKQEAg
LTg1LDcgKzg1LDcgQEAgY2xhc3MgQmVuY2htYXJrUmVzdWx0cyhvYmplY3QpOgogICAgICAgICB2
YWx1ZXMgPSBsaXN0KG1hcChmbG9hdCwgdmFsdWVzKSkKICAgICAgICAgdG90YWwgPSBzdW0odmFs
dWVzKQogICAgICAgICBtZWFuID0gdG90YWwgLyBsZW4odmFsdWVzKQotICAgICAgICBzcXVhcmVf
c3VtID0gc3VtKG1hcChsYW1iZGEgeDogeCAqIHgsIHZhbHVlcykpCisgICAgICAgIHNxdWFyZV9z
dW0gPSBzdW0oW3ggKiB4IGZvciB4IGluIHZhbHVlc10pCiAgICAgICAgIHNhbXBsZV9jb3VudCA9
IGxlbih2YWx1ZXMpCiAKICAgICAgICAgIyBXaXRoIHN1bSBhbmQgc3VtIG9mIHNxdWFyZXMsIHdl
IGNhbiBjb21wdXRlIHRoZSBzYW1wbGUgc3RhbmRhcmQgZGV2aWF0aW9uIGluIE8oMSkuCkBAIC0x
MDEsMTMgKzEwMSwxMyBAQCBjbGFzcyBCZW5jaG1hcmtSZXN1bHRzKG9iamVjdCk6CiAgICAgICAg
IGlmIG5vdCBzY2FsZV91bml0OgogICAgICAgICAgICAgZm9ybWF0dGVkX3ZhbHVlID0gJ3ttZWFu
Oi4zZn17dW5pdH0gc3RkZXY9e2RlbHRhOi4xJX0nLmZvcm1hdChtZWFuPW1lYW4sIGRlbHRhPXNh
bXBsZV9zdGRldiAvIG1lYW4sIHVuaXQ9dW5pdCkKICAgICAgICAgICAgIGlmIHNob3dfaXRlcmF0
aW9uX3ZhbHVlczoKLSAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfdmFsdWUgKz0gJyBbJyArICcs
ICcuam9pbihtYXAobGFtYmRhIHZhbHVlOiAne3ZhbHVlOi4zZn0nLmZvcm1hdCh2YWx1ZT12YWx1
ZSksIHZhbHVlcykpICsgJ10nCisgICAgICAgICAgICAgICAgZm9ybWF0dGVkX3ZhbHVlICs9ICcg
WycgKyAnLCAnLmpvaW4oWyd7dmFsdWU6LjNmfScuZm9ybWF0KHZhbHVlPXZhbHVlKSBmb3IgdmFs
dWUgaW4gdmFsdWVzXSkgKyAnXScKICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWRfdmFsdWUK
IAogICAgICAgICBpZiB1bml0ID09ICdtcyc6CiAgICAgICAgICAgICB1bml0ID0gJ3MnCiAgICAg
ICAgICAgICBtZWFuID0gZmxvYXQobWVhbikgLyAxMDAwCi0gICAgICAgICAgICB2YWx1ZXMgPSBs
aXN0KG1hcChsYW1iZGEgdmFsdWU6IGZsb2F0KHZhbHVlKSAvIDEwMDAsIHZhbHVlcykpCisgICAg
ICAgICAgICB2YWx1ZXMgPSBsaXN0KFtmbG9hdCh2YWx1ZSkgLyAxMDAwIGZvciB2YWx1ZSBpbiB2
YWx1ZXNdKQogICAgICAgICAgICAgc2FtcGxlX3N0ZGV2IC89IDEwMDAKIAogICAgICAgICBiYXNl
ID0gMTAyNCBpZiB1bml0ID09ICdCJyBlbHNlIDEwMDAKQEAgLTEyNiw3ICsxMjYsNyBAQCBjbGFz
cyBCZW5jaG1hcmtSZXN1bHRzKG9iamVjdCk6CiAKICAgICAgICAgZm9ybWF0dGVkX3ZhbHVlID0g
J3ttZWFufXtwcmVmaXh9e3VuaXR9IHN0ZGV2PXtkZWx0YTouMSV9Jy5mb3JtYXQobWVhbj1mb3Jt
YXRfc2NhbGVkKHNjYWxlZF9tZWFuKSwgZGVsdGE9c2FtcGxlX3N0ZGV2IC8gbWVhbiwgcHJlZml4
PVNJX3ByZWZpeCwgdW5pdD11bml0KQogICAgICAgICBpZiBzaG93X2l0ZXJhdGlvbl92YWx1ZXM6
Ci0gICAgICAgICAgICBmb3JtYXR0ZWRfdmFsdWUgKz0gJyBbJyArICcsICcuam9pbihtYXAobGFt
YmRhIHZhbHVlOiBmb3JtYXRfc2NhbGVkKHZhbHVlICogc2NhbGluZ19mYWN0b3IpLCB2YWx1ZXMp
KSArICddJworICAgICAgICAgICAgZm9ybWF0dGVkX3ZhbHVlICs9ICcgWycgKyAnLCAnLmpvaW4o
W2Zvcm1hdF9zY2FsZWQodmFsdWUgKiBzY2FsaW5nX2ZhY3RvcikgZm9yIHZhbHVlIGluIHZhbHVl
c10pICsgJ10nCiAgICAgICAgIHJldHVybiBmb3JtYXR0ZWRfdmFsdWUKIAogICAgIEBjbGFzc21l
dGhvZApAQCAtMTgyLDcgKzE4Miw3IEBAIGNsYXNzIEJlbmNobWFya1Jlc3VsdHMob2JqZWN0KToK
ICAgICAgICAgICAgICAgICByZXN1bHRzX2Zvcl9hZ2dyZWdhdG9yID0gcmVzdWx0c19mb3JfbWV0
cmljLmdldChhZ2dyZWdhdG9yKQogICAgICAgICAgICAgZWxpZiBOb25lIGluIHJlc3VsdHNfZm9y
X21ldHJpYzoKICAgICAgICAgICAgICAgICByZXN1bHRzX2Zvcl9hZ2dyZWdhdG9yID0gcmVzdWx0
c19mb3JfbWV0cmljLmdldChOb25lKQotICAgICAgICAgICAgZWxpZiBsZW4ocmVzdWx0c19mb3Jf
bWV0cmljLmtleXMoKSkgPT0gMToKKyAgICAgICAgICAgIGVsaWYgbGVuKGxpc3QocmVzdWx0c19m
b3JfbWV0cmljLmtleXMoKSkpID09IDE6CiAgICAgICAgICAgICAgICAgcmVzdWx0c19mb3JfYWdn
cmVnYXRvciA9IHJlc3VsdHNfZm9yX21ldHJpYy5nZXQobGlzdChyZXN1bHRzX2Zvcl9tZXRyaWMu
a2V5cygpKVswXSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmVzdWx0c19m
b3JfYWdncmVnYXRvciA9IHt9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5CmluZGV4IDkxOTQyMjY4Mzg4
ZTJjMzFlMDFjNjRiMjliY2U5NmVjZDQxYzk2MDUuLjY3MGFlNGQwZTM2NmYxZmZlMDMyYTY2MDVl
MDE4YzAyYTYzZjI3NTkgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5CkBAIC04LDEzICs4LDIxIEBA
IGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgc3lzCiBpbXBvcnQgdGVtcGZpbGUKIGltcG9ydCB0
aW1lCi1pbXBvcnQgdHlwZXMKIGltcG9ydCBvcwogCiBmcm9tIHdlYmtpdHB5LmJlbmNobWFya19y
dW5uZXIuYmVuY2htYXJrX2J1aWxkZXIgaW1wb3J0IEJlbmNobWFya0J1aWxkZXIKIGZyb20gd2Vi
a2l0cHkuYmVuY2htYXJrX3J1bm5lci5iZW5jaG1hcmtfcmVzdWx0cyBpbXBvcnQgQmVuY2htYXJr
UmVzdWx0cwogZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLmJyb3dzZXJfZHJpdmVyLmJy
b3dzZXJfZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEJyb3dzZXJEcml2ZXJGYWN0b3J5CiAKKworaWYg
c3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKKyAgICBkZWYgaXN0ZXh0KGEpOgorICAgICAgICBy
ZXR1cm4gaXNpbnN0YW5jZShhLCBieXRlcykgb3IgaXNpbnN0YW5jZShhLCBzdHIpCitlbHNlOgor
ICAgIGRlZiBpc3RleHQoYSk6CisgICAgICAgIHJldHVybiBpc2luc3RhbmNlKGEsIHN0cikgb3Ig
aXNpbnN0YW5jZShhLCB1bmljb2RlKQorCisKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25h
bWVfXykKIAogCkBAIC03OCw3ICs4Niw3IEBAIGNsYXNzIEJlbmNobWFya1J1bm5lcihvYmplY3Qp
OgogICAgICAgICBkZWJ1Z19vdXRwdXRzID0gW10KICAgICAgICAgdHJ5OgogICAgICAgICAgICAg
c2VsZi5fYnJvd3Nlcl9kcml2ZXIucHJlcGFyZV9pbml0aWFsX2VudihzZWxmLl9jb25maWcpCi0g
ICAgICAgICAgICBmb3IgaXRlcmF0aW9uIGluIHhyYW5nZSgxLCBjb3VudCArIDEpOgorICAgICAg
ICAgICAgZm9yIGl0ZXJhdGlvbiBpbiByYW5nZSgxLCBjb3VudCArIDEpOgogICAgICAgICAgICAg
ICAgIF9sb2cuaW5mbygnU3RhcnQgdGhlIGl0ZXJhdGlvbiB7Y3VycmVudF9pdGVyYXRpb259IG9m
IHtpdGVyYXRpb25zfSBmb3IgY3VycmVudCBiZW5jaG1hcmsnLmZvcm1hdChjdXJyZW50X2l0ZXJh
dGlvbj1pdGVyYXRpb24sIGl0ZXJhdGlvbnM9Y291bnQpKQogICAgICAgICAgICAgICAgIHRyeToK
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fYnJvd3Nlcl9kcml2ZXIucHJlcGFyZV9lbnYoc2Vs
Zi5fY29uZmlnKQpAQCAtMTQyLDE2ICsxNTAsMTYgQEAgY2xhc3MgQmVuY2htYXJrUnVubmVyKG9i
amVjdCk6CiAgICAgICAgIGFzc2VydChpc2luc3RhbmNlKGEsIHR5cGUoYikpKQogICAgICAgICBh
cmdfdHlwZSA9IHR5cGUoYSkKICAgICAgICAgIyBzcGVjaWFsIGhhbmRsZSBmb3IgbGlzdCB0eXBl
LCBhbmQgc2hvdWxkIGJlIGhhbmRsZSBiZWZvcmUgZXF1YWwgY2hlY2sKLSAgICAgICAgaWYgYXJn
X3R5cGUgPT0gdHlwZXMuTGlzdFR5cGUgYW5kIGxlbihhKSBhbmQgKHR5cGUoYVswXSkgPT0gdHlw
ZXMuU3RyaW5nVHlwZSBvciB0eXBlKGFbMF0pID09IHR5cGVzLlVuaWNvZGVUeXBlKToKKyAgICAg
ICAgaWYgYXJnX3R5cGUgPT0gbGlzdCBhbmQgbGVuKGEpIGFuZCBpc3RleHQoYVswXSk6CiAgICAg
ICAgICAgICByZXR1cm4gYQotICAgICAgICBpZiBhcmdfdHlwZSA9PSB0eXBlcy5EaWN0VHlwZToK
KyAgICAgICAgaWYgYXJnX3R5cGUgPT0gZGljdDoKICAgICAgICAgICAgIHJlc3VsdCA9IHt9Ci0g
ICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBhLml0ZW1zKCk6CisgICAgICAgICAgICBmb3Ig
a2V5LCB2YWx1ZSBpbiBsaXN0KGEuaXRlbXMoKSk6CiAgICAgICAgICAgICAgICAgaWYga2V5IGlu
IGI6CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gY2xzLl9tZXJnZSh2YWx1ZSwg
YltrZXldKQogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dFtrZXldID0gdmFsdWUKLSAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGIuaXRlbXMoKToK
KyAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGxpc3QoYi5pdGVtcygpKToKICAgICAgICAg
ICAgICAgICBpZiBrZXkgbm90IGluIHJlc3VsdDoKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
W2tleV0gPSB2YWx1ZQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9z
YWZhcmlfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2Jyb3dzZXJfZHJpdmVyL29zeF9zYWZhcmlfZHJpdmVyLnB5CmluZGV4IGQxNjg3Mjg0NzA2NjY3
MzZlMjcwMGJmM2JjOTcxYjQ1NWU2M2MzODIuLjJiYmY0MThmMTcxMjk1YTllN2UyNjA3NjU5MWE5
ODkyYzc1ZGJkMTAgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2RyaXZlci5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X3NhZmFy
aV9kcml2ZXIucHkKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgT1NYU2FmYXJpRHJpdmVyKE9TWEJy
b3dzZXJEcml2ZXIpOgogICAgICAgICAgICAgc2FmYXJpX2FwcF9pbl9idWlsZF9wYXRoID0gb3Mu
cGF0aC5qb2luKGJyb3dzZXJfYnVpbGRfYWJzb2x1dGVfcGF0aCwgJ1NhZmFyaS5hcHAvQ29udGVu
dHMvTWFjT1MvU2FmYXJpJykKICAgICAgICAgICAgIGhhc19zYWZhcmlfYXBwID0gb3MucGF0aC5l
eGlzdHMoc2FmYXJpX2FwcF9pbl9idWlsZF9wYXRoKQogICAgICAgICAgICAgY29udGVudF9pbl9w
YXRoID0gb3MubGlzdGRpcihicm93c2VyX2J1aWxkX2Fic29sdXRlX3BhdGgpCi0gICAgICAgICAg
ICBjb250YWluc19mcmFtZXdvcmtzID0gYW55KGl0ZXJ0b29scy5pbWFwKGxhbWJkYSBlbnRyeTog
ZW50cnkuZW5kc3dpdGgoJy5mcmFtZXdvcmsnKSwgb3MubGlzdGRpcihicm93c2VyX2J1aWxkX2Fi
c29sdXRlX3BhdGgpKSkKKyAgICAgICAgICAgIGNvbnRhaW5zX2ZyYW1ld29ya3MgPSBhbnkobWFw
KGxhbWJkYSBlbnRyeTogZW50cnkuZW5kc3dpdGgoJy5mcmFtZXdvcmsnKSwgb3MubGlzdGRpcihi
cm93c2VyX2J1aWxkX2Fic29sdXRlX3BhdGgpKSkKIAogICAgICAgICAgICAgaWYgaGFzX3NhZmFy
aV9hcHA6CiAgICAgICAgICAgICAgICAgYXJncyA9IFtzYWZhcmlfYXBwX2luX2J1aWxkX3BhdGhd
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0
cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJp
dmVyLnB5CmluZGV4IDU5OTFlM2IzOTM4ZDUzMThjODRiNjhjMDg2NTQwNTdhYzYxMzY2NzEuLjdm
NDk0MDU1ZjBjOTg5MjA1NTEwNzAyZjU2MTM2NDA3ZTQwZDY5M2IgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0
cF9zZXJ2ZXJfZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5CkBAIC0xLDEz
ICsxLDEyIEBACiAjIS91c3IvYmluL2VudiBweXRob24KIAogZnJvbSBhYmMgaW1wb3J0IGFic3Ry
YWN0bWV0aG9kLCBBQkNNZXRhCitmcm9tIHNpeCBpbXBvcnQgd2l0aF9tZXRhY2xhc3MKIAogCi1j
bGFzcyBIVFRQU2VydmVyRHJpdmVyKG9iamVjdCk6CitjbGFzcyBIVFRQU2VydmVyRHJpdmVyKHdp
dGhfbWV0YWNsYXNzKEFCQ01ldGEsIG9iamVjdCkpOgogICAgIHBsYXRmb3JtcyA9IFtdCiAKLSAg
ICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQotCiAgICAgQGFic3RyYWN0bWV0aG9kCiAgICAgZGVm
IHNlcnZlKHNlbGYsIHdlYlJvb3QpOgogICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBs
ZV9odHRwX3NlcnZlcl9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIucHkK
aW5kZXggZjI0NjExZDhiNjhhZGRlMTNkOGEzN2Y0ZWMxMTZlMWU2NzRlOGYzYy4uMDI4NDViODU0
ZGIyNWZmZDFjNzJlZjY0ZjQxYzQxMWVhMzk5MTdlNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0
cF9zZXJ2ZXJfZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weQpA
QCAtNDAsNyArNDAsNyBAQCBjbGFzcyBTaW1wbGVIVFRQU2VydmVyRHJpdmVyKEhUVFBTZXJ2ZXJE
cml2ZXIpOgogICAgICAgICBfbG9nLmluZm8oJ1N0YXJ0IHRvIGZldGNoaW5nIHRoZSBwb3J0IG51
bWJlciBvZiB0aGUgaHR0cCBzZXJ2ZXInKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpbXBv
cnQgcHN1dGlsCi0gICAgICAgICAgICBmb3IgYXR0ZW1wdCBpbiB4cmFuZ2UobWF4X2F0dGVtcHQp
OgorICAgICAgICAgICAgZm9yIGF0dGVtcHQgaW4gcmFuZ2UobWF4X2F0dGVtcHQpOgogICAgICAg
ICAgICAgICAgIGNvbm5lY3Rpb25zID0gcHN1dGlsLlByb2Nlc3Moc2VsZi5fc2VydmVyX3Byb2Nl
c3MucGlkKS5jb25uZWN0aW9ucygpCiAgICAgICAgICAgICAgICAgaWYgY29ubmVjdGlvbnMgYW5k
IGNvbm5lY3Rpb25zWzBdLmxhZGRyIGFuZCBjb25uZWN0aW9uc1swXS5sYWRkclsxXSBhbmQgY29u
bmVjdGlvbnNbMF0uc3RhdHVzID09ICdMSVNURU4nOgogICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9zZXJ2ZXJfcG9ydCA9IGNvbm5lY3Rpb25zWzBdLmxhZGRyWzFdCkBAIC01Miw3ICs1Miw3IEBA
IGNsYXNzIFNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIoSFRUUFNlcnZlckRyaXZlcik6CiAgICAgICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiU2VydmVyIGlzIG5v
dCBsaXN0ZW5pbmcgb24gcG9ydCwgbWF4IHRyaWVzIGV4Y2VlZGVkLiBIVFRQIHNlcnZlciBtYXkg
YmUgaW5zdGFsbGluZyBkZXBlbmRlbnQgbW9kdWxlcy4iKQogICAgICAgICBleGNlcHQgSW1wb3J0
RXJyb3I6Ci0gICAgICAgICAgICBmb3IgYXR0ZW1wdCBpbiB4cmFuZ2UobWF4X2F0dGVtcHQpOgor
ICAgICAgICAgICAgZm9yIGF0dGVtcHQgaW4gcmFuZ2UobWF4X2F0dGVtcHQpOgogICAgICAgICAg
ICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVj
a19vdXRwdXQoWycvdXNyL3NiaW4vbHNvZicsICctYScsICctUCcsICctaVRDUCcsICctc1RDUDpM
SVNURU4nLCAnLXAnLCBzdHIoc2VsZi5fc2VydmVyX3Byb2Nlc3MucGlkKV0pCiAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3NlcnZlcl9wb3J0ID0gaW50KHJlLnNlYXJjaCgnVENQIC4qOihcZCsp
IFwoTElTVEVOXCknLCBvdXRwdXQpLmdyb3VwKDEpKQpAQCAtNzEsNyArNzEsNyBAQCBjbGFzcyBT
aW1wbGVIVFRQU2VydmVyRHJpdmVyKEhUVFBTZXJ2ZXJEcml2ZXIpOgogICAgIGRlZiBfd2FpdF9m
b3JfaHR0cF9zZXJ2ZXIoc2VsZik6CiAgICAgICAgIG1heF9hdHRlbXB0ID0gNQogICAgICAgICAj
IFdhaXQgZm9yIHNlcnZlciB0byBiZSB1cCBjb21wbGV0ZWx5IGJlZm9yZSBleGl0aW5nCi0gICAg
ICAgIGZvciBhdHRlbXB0IGluIHhyYW5nZShtYXhfYXR0ZW1wdCk6CisgICAgICAgIGZvciBhdHRl
bXB0IGluIHJhbmdlKG1heF9hdHRlbXB0KToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAg
ICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoWyJjdXJsIiwgIi0tc2lsZW50IiwgIi0taGVhZCIs
ICItLWZhaWwiLCAiLS1vdXRwdXQiLCAiL2Rldi9udWxsIiwgc2VsZi5iYXNlX3VybCgpXSkKICAg
ICAgICAgICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
YmVuY2htYXJrX3J1bm5lci9ydW5fYmVuY2htYXJrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL3J1bl9iZW5jaG1hcmsucHkKaW5kZXggZWFjYjM2OTgyZDNiOWQ1
ZGYxMjM2MGQwYTcwMWRkOTE0MzkxMDMzZC4uNjFhZGI5MmM0ODJmZGJiY2E2Y2UwYjQ2YzE4ZGNl
YjZmNmUxYTliNCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL3J1bl9iZW5jaG1hcmsucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL3J1bl9iZW5jaG1hcmsucHkKQEAgLTQxLDcgKzQxLDcgQEAgZGVmIHBhcnNl
X2FyZ3MoKToKICAgICBtdXR1YWxfZ3JvdXAuYWRkX2FyZ3VtZW50KCctLXJlYWQtcmVzdWx0cy1q
c29uJywgZGVzdD0nanNvbl9maWxlJywgaGVscD0nSW5zdGVhZCBvZiBydW5uaW5nIGEgYmVuY2ht
YXJrLCBmb3JtYXQgdGhlIG91dHB1dCBzYXZlZCBpbiBKU09OX0ZJTEUuJykKICAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCctLW91dHB1dC1maWxlJywgZGVmYXVsdD1Ob25lLCBoZWxwPSdTYXZlIGRl
dGFpbGVkIHJlc3VsdHMgdG8gT1VUUFVUIGluIEpTT04gZm9ybWF0LiBCeSBkZWZhdWx0LCByZXN1
bHRzIHdpbGwgbm90IGJlIHNhdmVkLicpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1jb3Vu
dCcsIHR5cGU9aW50LCBoZWxwPSdOdW1iZXIgb2YgdGltZXMgdG8gcnVuIHRoZSBiZW5jaG1hcmsg
KGUuZy4gNSkuJykKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWRyaXZlcicsIGRlZmF1bHQ9
V2ViU2VydmVyQmVuY2htYXJrUnVubmVyLm5hbWUsIGNob2ljZXM9YmVuY2htYXJrX3J1bm5lcl9z
dWJjbGFzc2VzLmtleXMoKSwgaGVscD0nVXNlIHRoZSBzcGVjaWZpZWQgYmVuY2htYXJrIGRyaXZl
ci4gRGVmYXVsdHMgdG8gJXMuJyAlIFdlYlNlcnZlckJlbmNobWFya1J1bm5lci5uYW1lKQorICAg
IHBhcnNlci5hZGRfYXJndW1lbnQoJy0tZHJpdmVyJywgZGVmYXVsdD1XZWJTZXJ2ZXJCZW5jaG1h
cmtSdW5uZXIubmFtZSwgY2hvaWNlcz1saXN0KGJlbmNobWFya19ydW5uZXJfc3ViY2xhc3Nlcy5r
ZXlzKCkpLCBoZWxwPSdVc2UgdGhlIHNwZWNpZmllZCBiZW5jaG1hcmsgZHJpdmVyLiBEZWZhdWx0
cyB0byAlcy4nICUgV2ViU2VydmVyQmVuY2htYXJrUnVubmVyLm5hbWUpCiAgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgnLS1icm93c2VyJywgZGVmYXVsdD1kZWZhdWx0X2Jyb3dzZXIoKSwgY2hvaWNl
cz1Ccm93c2VyRHJpdmVyRmFjdG9yeS5hdmFpbGFibGVfYnJvd3NlcnMoKSwgaGVscD0nQnJvd3Nl
ciB0byBydW4gdGhlIG5lY2htYXJrIGluLiBEZWZhdWx0cyB0byAlcy4nICUgZGVmYXVsdF9icm93
c2VyKCkpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1wbGF0Zm9ybScsIGRlZmF1bHQ9ZGVm
YXVsdF9wbGF0Zm9ybSgpLCBjaG9pY2VzPUJyb3dzZXJEcml2ZXJGYWN0b3J5LmF2YWlsYWJsZV9w
bGF0Zm9ybXMoKSwgaGVscD0nUGxhdGZvcm0gdGhhdCB0aGlzIHNjcmlwdCBpcyBydW5uaW5nIG9u
LiBEZWZhdWx0cyB0byAlcy4nICUgZGVmYXVsdF9wbGF0Zm9ybSgpKQogICAgIHBhcnNlci5hZGRf
YXJndW1lbnQoJy0tbG9jYWwtY29weScsIGhlbHA9J1BhdGggdG8gYSBsb2NhbCBjb3B5IG9mIHRo
ZSBiZW5jaG1hcmsgKGUuZy4gUGVyZm9ybWFuY2VUZXN0cy9TdW5TcGlkZXIvKS4nKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>